Remove Fuel UI

It's been moved to a separate repo

Implements: blueprint separate-fuel-ui-repo

Change-Id: Ie1b22c1d56fa07df555561119ba40f6e87bb6fe3
This commit is contained in:
Vitaly Kramskikh 2016-02-26 20:36:43 +07:00 committed by Vladimir Kozhukalov
parent 32bb68f501
commit d04d909d59
164 changed files with 0 additions and 57449 deletions

3
.gitignore vendored
View File

@ -20,9 +20,6 @@ nosetests.xml
nailgun.log
lock
node_modules
nailgun/static/build
*.egg
.testrepository
.tox

View File

@ -1,42 +0,0 @@
---
root: true
extends: openstack
rules:
# disabled rules from openstack config
no-empty: 0 # we use empty blocks with try-catch
no-extra-parens: 0 # extra parens are preferred with JSX
operator-linebreak: 0 # disabled due to heavy use of ternary operator in JSX
no-warning-comments: 0 # we're ok with FIXMEs
no-undefined: 0 # we're ok with using undefined
no-process-env: 0 # we use it in a few places and are ok with it
# overridden rules from openstack config
curly: [2, multi-line, consistent] # openstack config uses 'all' mode, but we're ok with braceless one-liners
# extra rules
no-unexpected-multiline: 2
dot-location: [2, property]
no-empty-pattern: 2
no-useless-call: 2
yoda: 2
no-undef: 2
no-use-before-define: 2
array-bracket-spacing: 2
comma-spacing: 2
computed-property-spacing: 2
id-match: [2, '^([A-Za-z\d_$]+)$', {properties: true}]
jsx-quotes: [2, prefer-single]
key-spacing: 2
new-cap: [2, {newIsCap: true, capIsNew: false}]
no-array-constructor: 2
no-lonely-if: 2
no-new-object: 2
no-spaced-func: 2
object-curly-spacing: 2
padded-blocks: [2, never]
quote-props: [2, as-needed]
quotes: [2, single, avoid-escape]
space-before-function-paren: [2, never]
space-before-keywords: 2
env:
node: true

View File

@ -1,41 +0,0 @@
/*eslint-disable strict*/
'use strict';
var gutil = require('gulp-util');
var _ = require('lodash');
function validate(translations, locales) {
var processedTranslations = {};
var baseLocale = 'en-US';
var existingLocales = _.keys(translations);
if (!locales) locales = existingLocales;
function processTranslations(translations) {
function processPiece(base, piece) {
return _.map(piece, function(value, key) {
var localBase = base ? base + '.' + key : key;
return _.isPlainObject(value) ? processPiece(localBase, value) : localBase;
});
}
return _.uniq(_.flatten(processPiece(null, translations.translation), true)).sort();
}
_.each(_.union(locales, [baseLocale]), function(locale) {
processedTranslations[locale] = processTranslations(translations[locale]);
});
function compareLocales(locale1, locale2) {
return _.without.apply(null, [processedTranslations[locale1]]
.concat(processedTranslations[locale2]));
}
_.each(_.without(locales, baseLocale), function(locale) {
gutil.log(gutil.colors.red('The list of keys present in',
baseLocale, 'but absent in', locale, ':\n') + compareLocales(baseLocale, locale).join('\n'));
gutil.log(gutil.colors.red('The list of keys missing in', baseLocale, ':\n') +
compareLocales(locale, baseLocale).join('\n'));
});
}
module.exports = {validate: validate};

View File

@ -1,340 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
/*eslint-disable strict*/
'use strict';
var argv = require('minimist')(process.argv.slice(2));
var fs = require('fs');
var path = require('path');
var glob = require('glob');
var rimraf = require('rimraf');
var _ = require('lodash');
var webpack = require('webpack');
var gulp = require('gulp');
var gutil = require('gulp-util');
var shell = require('gulp-shell');
var runSequence = require('run-sequence');
var filter = require('gulp-filter');
var replace = require('gulp-replace');
var jison = require('gulp-jison');
var validateTranslations = require('./gulp/i18n').validate;
gulp.task('i18n:validate', function() {
fs.readFile('static/translations/core.json', function(err, data) {
if (err) throw err;
var tranlations = JSON.parse(data);
var locales = argv.locales ? argv.locales.split(',') : null;
validateTranslations(tranlations, locales);
});
});
var seleniumProcess = null;
function shutdownSelenium() {
if (seleniumProcess) {
seleniumProcess.kill();
seleniumProcess = null;
}
}
var SELENIUM_VERSION = '2.52.0';
var SELENIUM_DRIVERS = {chrome: {version: '2.20'}};
gulp.task('selenium:fetch', function(cb) {
var selenium = require('selenium-standalone');
selenium.install({
version: process.env.SELENIUM_VERSION || SELENIUM_VERSION,
dirvers: SELENIUM_DRIVERS
}, cb);
});
gulp.task('selenium', ['selenium:fetch'], function(cb) {
var selenium = require('selenium-standalone');
var port = process.env.SELENIUM_SERVER_PORT || 4444;
selenium.start(
{
version: process.env.SELENIUM_VERSION || SELENIUM_VERSION,
dirvers: SELENIUM_DRIVERS,
seleniumArgs: ['--port', port],
spawnOptions: {stdio: 'pipe'}
},
function(err, child) {
if (err) throw err;
child.on('exit', function() {
if (seleniumProcess) {
gutil.log(gutil.colors.yellow('Selenium process died unexpectedly. Probably port',
port, 'is already in use.'));
}
});
['exit', 'uncaughtException', 'SIGTERM', 'SIGINT'].forEach(function(event) {
process.on(event, shutdownSelenium);
});
seleniumProcess = child;
cb();
}
);
});
gulp.task('karma', function(cb) {
var Server = require('karma').Server;
new Server({
configFile: path.join(__dirname, '/karma.config.js'),
browsers: [argv.browser || process.env.BROWSER || 'firefox']
}, cb).start();
});
function runIntern(params) {
return function() {
var baseDir = 'static';
var runner = './node_modules/.bin/intern-runner';
var browser = argv.browser || process.env.BROWSER || 'firefox';
var options = [['config', 'tests/functional/config/intern-' + browser + '.js']];
var suiteOptions = [];
['suites', 'functionalSuites'].forEach(function(suiteType) {
if (params[suiteType]) {
var suiteFiles = glob.sync(path.relative(baseDir, params[suiteType]), {cwd: baseDir});
suiteOptions = suiteOptions.concat(suiteFiles.map(function(suiteFile) {
return [suiteType, suiteFile.replace(/\.js$/, '')];
}));
}
});
if (!suiteOptions.length) {
throw new Error('No matching suites');
}
options = options.concat(suiteOptions);
var command = [path.relative(baseDir, runner)].concat(options.map(function(o) {
return o.join('=');
})).join(' ');
gutil.log('Executing', command);
return shell.task(command, {cwd: baseDir})();
};
}
gulp.task('intern:functional', runIntern({
functionalSuites: argv.suites || 'static/tests/functional/**/test_*.js'
}));
gulp.task('unit-tests', function(cb) {
runSequence('selenium', 'karma', function(err) {
shutdownSelenium();
cb(err);
});
});
gulp.task('functional-tests', function(cb) {
runSequence('selenium', 'intern:functional', function(err) {
shutdownSelenium();
cb(err);
});
});
gulp.task('jison', function() {
return gulp.src('static/expression/parser.jison')
.pipe(jison({moduleType: 'js'}))
.pipe(gulp.dest('static/expression/'));
});
gulp.task('license', function(cb) {
require('nlf').find({production: true, depth: 0}, function(err, data) {
if (err) return cb(err);
// https://github.com/openstack/requirements#for-new-requirements
// Is the library license compatible?
// Preferably Apache2, BSD, MIT licensed. LGPL is ok.
var licenseRegexp = /(Apache.*?2)|\bBSD\b|\bMIT\b|\bLGPL\b/i;
var errors = [];
_.each(data, function(moduleInfo) {
var name = moduleInfo.name;
var version = moduleInfo.version;
var license = _.pluck(moduleInfo.licenseSources.package.sources, 'license').join(', ') ||
'unknown';
var licenseOk = license.match(licenseRegexp);
if (!licenseOk) errors.push({libraryName: name, license: license});
gutil.log(
gutil.colors.cyan(name),
gutil.colors.yellow(version),
gutil.colors[licenseOk ? 'green' : 'red'](license)
);
});
if (errors.length) {
_.each(errors, function(error) {
gutil.log(gutil.colors.red(error.libraryName, 'has', error.license, 'license'));
});
return cb('Issues with licenses found');
} else {
return cb();
}
});
});
var jsFiles = [
'*.js',
'gulp/*.js',
'static/**/*.js',
'!static/build/**',
'!static/vendor/**',
'!static/expression/parser.js'
];
var styleFiles = [
'static/**/*.less',
'static/**/*.css',
'!static/build/**'
];
gulp.task('eslint', function() {
var eslint = require('gulp-eslint');
return gulp.src(jsFiles)
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
});
gulp.task('lintspaces:styles', function() {
var lintspaces = require('gulp-lintspaces');
return gulp.src(styleFiles)
.pipe(lintspaces({
showValid: true,
newline: true,
trailingspaces: true,
indentation: 'spaces',
ignores: ['js-comments'],
spaces: 2,
newlineMaximum: 2
}))
.pipe(lintspaces.reporter());
});
gulp.task('lint', [
'eslint',
'lintspaces:styles'
]);
var WEBPACK_STATS_OPTIONS = {
colors: true,
hash: false,
version: false,
assets: false,
chunks: false
};
gulp.task('dev-server', function() {
var devServerHost = argv['dev-server-host'] || '127.0.0.1';
var devServerPort = argv['dev-server-port'] || 8080;
var devServerUrl = 'http://' + devServerHost + ':' + devServerPort;
var nailgunHost = argv['nailgun-host'] || '127.0.0.1';
var nailgunPort = argv['nailgun-port'] || 8000;
var nailgunUrl = 'http://' + nailgunHost + ':' + nailgunPort;
var hotReload = !argv['no-hot'];
var config = require('./webpack.config');
config.entry.push('webpack-dev-server/client?' + devServerUrl);
if (hotReload) {
config.entry.push('webpack/hot/dev-server');
config.plugins.push(new webpack.HotModuleReplacementPlugin());
config.plugins.push(new webpack.NoErrorsPlugin());
}
var WebpackDevServer = require('webpack-dev-server');
var options = {
hot: hotReload,
stats: WEBPACK_STATS_OPTIONS,
proxy: [
{path: '/', target: devServerUrl, rewrite: function(req) {
req.url = '/static/index.html';
}},
{path: /^\/(?!static\/).+/, target: nailgunUrl}
]
};
_.extend(options, config.output);
new WebpackDevServer(webpack(config), options).listen(devServerPort, devServerHost,
function(err) {
if (err) throw err;
gutil.log('Development server started at ' + devServerUrl);
});
});
gulp.task('build', function(cb) {
var sourceDir = path.resolve('static');
var targetDir = argv['static-dir'] ? path.resolve(argv['static-dir']) : sourceDir;
var config = require('./webpack.config');
config.output.path = path.join(targetDir, 'build');
if (!argv.dev) {
config.plugins.push(
new webpack.DefinePlugin({'process.env': {NODE_ENV: '"production"'}})
);
}
if (argv['extra-entries']) {
config.entry = config.entry.concat(argv['extra-entries'].split(','));
}
if (argv.uglify !== false) {
config.devtool = 'source-map';
config.plugins.push(
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
mangle: false,
compress: {warnings: false}
})
);
}
if (argv.sourcemaps === false) {
delete config.devtool;
}
if (argv.watch) {
config.watch = true;
}
rimraf.sync(config.output.path);
var compiler = webpack(config);
var run = config.watch ? compiler.watch.bind(compiler, config.watchOptions) :
compiler.run.bind(compiler);
run(function(err, stats) {
if (err) return cb(err);
gutil.log(stats.toString(WEBPACK_STATS_OPTIONS));
if (stats.hasErrors()) return cb('Build failed');
if (targetDir !== sourceDir) {
var indexFilter = filter('index.html');
gulp
.src([
'index.html',
'favicon.ico',
'img/loader-bg.svg',
'img/loader-logo.svg',
'styles/layout.css'
], {cwd: sourceDir, base: sourceDir})
.pipe(indexFilter)
.pipe(replace('__CACHE_BUST__', Date.now()))
.pipe(indexFilter.restore())
.pipe(gulp.dest(targetDir))
.on('end', cb);
} else if (!config.watch) {
return cb();
}
});
});
gulp.task('default', ['build']);

View File

@ -1,50 +0,0 @@
/*eslint-disable strict*/
module.exports = function(config) {
config.set({
browsers: ['firefox'],
files: [
'static/tests/unit/**/*.js'
],
frameworks: [
'chai',
'mocha',
'sinon'
],
plugins: [
'karma-webdriver-launcher',
'karma-chai',
'karma-mocha',
'karma-sinon',
'karma-webpack'
],
preprocessors: {
'static/tests/unit/**/*.js': ['webpack']
},
reporters: ['dots'],
singleRun: true,
client: {
mocha: {
ui: 'tdd'
}
},
customLaunchers: {
chrome: {
base: 'WebDriver',
browserName: 'chrome'
},
firefox: {
base: 'WebDriver',
browserName: 'firefox'
},
phantomjs: {
base: 'WebDriver',
browserName: 'phantomjs'
}
},
webpack: require('./webpack.config'),
webpackMiddleware: {
noInfo: true
}
});
};

File diff suppressed because it is too large Load Diff

View File

@ -1,88 +0,0 @@
{
"name": "fuel-web",
"version": "0.0.1",
"license": "Apache-2.0",
"repository": {
"type": "git",
"url": "https://github.com/openstack/fuel-web.git"
},
"engines": {
"node": ">=0.10.0"
},
"scripts": {
"start": "gulp dev-server",
"lint": "gulp lint",
"test": "npm run unit-tests && npm run func-tests",
"unit-tests": "gulp unit-tests",
"func-tests": "./run_ui_func_tests.sh",
"prepublish": "gulp build"
},
"dependencies": {
"autoprefixer": "5.2.0",
"babel-core": "5.8.23",
"babel-loader": "5.3.2",
"backbone": "1.2.1",
"bootstrap": "3.3.4",
"classnames": "1.1.4",
"css-loader": "0.17.0",
"exports-loader": "0.6.2",
"expose-loader": "0.7.0",
"file-loader": "0.8.4",
"gulp": "3.8.11",
"gulp-filter": "2.0.1",
"gulp-jison": "1.2.0",
"gulp-replace": "0.5.3",
"gulp-util": "3.0.4",
"i18next-client": "1.11.1",
"imports-loader": "0.6.4",
"ip": "git://github.com/indutny/node-ip.git#8659ae73dba8ee5a508c63c07cdd83b05ec5793b",
"javascript-natural-sort": "0.7.1",
"jquery": "1.11.3",
"js-cookie": "1.5.1",
"json-loader": "0.5.3",
"less": "2.4.0",
"less-loader": "2.2.1",
"lodash": "3.9.3",
"minimist": "1.1.1",
"open-sans-fontface": "1.4.0",
"postcss-loader": "0.5.1",
"raw-loader": "0.5.1",
"react": "0.14.3",
"react-addons-create-fragment": "0.14.3",
"react-addons-css-transition-group": "0.14.3",
"react-addons-linked-state-mixin": "0.14.3",
"react-addons-pure-render-mixin": "0.14.3",
"react-addons-transition-group": "0.14.3",
"react-dnd": "2.0.2",
"react-dnd-html5-backend": "2.0.0",
"react-dom": "0.14.3",
"rimraf": "2.2.8",
"run-sequence": "1.0.2",
"style-loader": "0.12.4",
"webpack": "1.12.9"
},
"devDependencies": {
"chai": "~3.2.0",
"es5-shim": "4.1.11",
"eslint": "1.10.3",
"eslint-config-openstack": "1.2.3",
"eslint-plugin-react": "3.15.0",
"glob": "~5.0.5",
"gulp-eslint": "1.0.0",
"gulp-lintspaces": "0.3.2",
"gulp-shell": "0.4.1",
"intern": "3.0.6",
"karma": "~0.13.9",
"karma-chai": "~0.1.0",
"karma-mocha": "~0.2.0",
"karma-sinon": "~1.0.4",
"karma-webdriver-launcher": "1.0.0",
"karma-webpack": "~1.7.0",
"mocha": "~2.3.2",
"nlf": "~1.3.2",
"react-addons-test-utils": "0.14.3",
"selenium-standalone": "~4.4.0",
"sinon": "1.17.2",
"webpack-dev-server": "1.14.0"
}
}

View File

@ -1,145 +0,0 @@
#!/bin/bash
# Copyright 2016 Mirantis, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
set -eu
function usage {
echo "Usage: $0 [OPTION]..."
echo "Run Fuel UI functional tests"
echo ""
echo " -h, --help Print this usage message"
echo " --no-ui-compression Skip UI compression"
echo " --no-nailgun-start Skip Nailgun start"
exit
}
no_ui_compression=0
no_nailgun_start=0
tests=
function process_options {
for arg in $@; do
case "$arg" in
-h|--help) usage;;
--no-ui-compression) no_ui_compression=1;;
--no-nailgun-start) no_nailgun_start=1;;
-*);;
*) tests="$tests $arg"
esac
done
}
FUEL_WEB_ROOT=$(readlink -f ${FUEL_WEB_ROOT:-$(dirname $0)/..})
NAILGUN_ROOT=$FUEL_WEB_ROOT/nailgun
ARTIFACTS=${ARTIFACTS:-`pwd`/test_run/ui_func}
mkdir -p $ARTIFACTS
export NAILGUN_STATIC=$ARTIFACTS/static
export NAILGUN_TEMPLATES=$NAILGUN_STATIC
export NAILGUN_PORT=${NAILGUN_PORT:-5544}
export NAILGUN_START_MAX_WAIT_TIME=${NAILGUN_START_MAX_WAIT_TIME:-30}
export NAILGUN_DB_HOST=${NAILGUN_DB_HOST:-/var/run/postgresql}
export NAILGUN_DB=${NAILGUN_DB:-nailgun}
export NAILGUN_DB_USER=${NAILGUN_DB_USER:-nailgun}
export NAILGUN_DB_USERPW=${NAILGUN_DB_USERPW:-nailgun}
export DB_ROOT=${DB_ROOT:-postgres}
export NAILGUN_FIXTURE_FILES="${NAILGUN_ROOT}/nailgun/fixtures/sample_environment.json ${NAILGUN_ROOT}/nailgun/fixtures/sample_plugins.json"
export NAILGUN_CHECK_URL='/api/version'
# Run UI functional tests.
#
# Arguments:
#
# $@ -- tests to be run; with no arguments all tests will be run
function run_ui_func_tests {
local GULP="./node_modules/.bin/gulp"
local TESTS_DIR=static/tests/functional # FIXME(vkramskikh): absolute path should be used
local TESTS=$TESTS_DIR/test_*.js
pushd "$FUEL_WEB_ROOT" > /dev/null
tox -e cleanup
popd > /dev/null
if [ $# -ne 0 ]; then
TESTS=$@
fi
if [ $no_ui_compression -ne 1 ]; then
echo "Compressing UI... "
${GULP} build --no-sourcemaps --extra-entries=sinon --static-dir=$NAILGUN_STATIC
if [ $? -ne 0 ]; then
return 1
fi
else
echo "Using compressed UI from $NAILGUN_STATIC"
if [ ! -f "$NAILGUN_STATIC/index.html" ]; then
echo "Cannot find compressed UI. Don't use --no-ui-compression key"
return 1
fi
fi
if [ $no_nailgun_start -ne 1 ]; then
pushd "$FUEL_WEB_ROOT" > /dev/null
tox -e stop
popd > /dev/null
fi
local result=0
for testcase in $TESTS; do
pushd "$FUEL_WEB_ROOT" > /dev/null
tox -e cleanup
popd > /dev/null
local server_log=`mktemp /tmp/test_nailgun_ui_server.XXXX`
if [ $no_nailgun_start -ne 1 ]; then
pushd "$FUEL_WEB_ROOT" > /dev/null
tox -e start
popd > /dev/null
fi
SERVER_PORT=$NAILGUN_PORT \
ARTIFACTS=$ARTIFACTS \
${GULP} functional-tests --suites=$testcase || result=1
if [ $no_nailgun_start -ne 1 ]; then
pushd "$FUEL_WEB_ROOT" > /dev/null
tox -e stop
popd > /dev/null
fi
if [ $result -ne 0 ]; then
mv $server_log $ARTIFACTS/app.log
break
fi
rm $server_log
done
return $result
}
# parse command line arguments and run the tests
process_options $@
run_ui_func_tests $tests

View File

@ -1,57 +0,0 @@
---
plugins:
- react
ecmaFeatures:
arrowFunctions: true
classes: true
defaultParams: true
destructuring: true
jsx: true
modules: true
objectLiteralComputedProperties: true
objectLiteralShorthandMethods: true
objectLiteralShorthandProperties: true
restParams: true
spread: true
superInFunctions: true
rules:
# es6
arrow-parens: 2
arrow-spacing: 2
constructor-super: 2
no-class-assign: 2
no-const-assign: 2
no-dupe-class-members: 2
no-this-before-super: 2
no-var: 0
object-shorthand: [2, methods]
prefer-arrow-callback: 2
prefer-const: 0
prefer-spread: 2
prefer-template: 0
# react
react/jsx-boolean-value: [2, never]
react/jsx-closing-bracket-location: [2, {nonEmpty: false, selfClosing: line-aligned}]
react/jsx-curly-spacing: [2, never]
react/jsx-indent: [2, 2]
react/jsx-indent-props: [2, 2]
react/jsx-key: 2
react/jsx-no-duplicate-props: 2
react/jsx-no-literals: 0
react/jsx-no-undef: 2
react/jsx-pascal-case: 2
react/jsx-uses-react: 2
react/jsx-uses-vars: 2
react/no-deprecated: 2
react/no-unknown-property: 2
react/prefer-es6-class: [2, never]
react/prop-types: 0
react/react-in-jsx-scope: 2
react/self-closing-comp: 2
react/sort-comp: 0
env:
browser: true
node: false
globals:
app: false

View File

@ -1,280 +0,0 @@
/*
* Copyright 2013 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import $ from 'jquery';
import _ from 'underscore';
import i18n from 'i18n';
import Backbone from 'backbone';
import React from 'react';
import ReactDOM from 'react-dom';
import models from 'models';
import {NailgunUnavailabilityDialog} from 'views/dialogs';
import KeystoneClient from 'keystone_client';
import RootComponent from 'views/root';
import LoginPage from 'views/login_page.js';
import WelcomePage from 'views/welcome_page';
import ClusterPage from 'views/cluster_page';
import ClustersPage from 'views/clusters_page';
import EquipmentPage from 'views/equipment_page';
import ReleasesPage from 'views/releases_page';
import PluginsPage from 'views/plugins_page';
import NotificationsPage from 'views/notifications_page';
import SupportPage from 'views/support_page';
import CapacityPage from 'views/capacity_page';
import 'backbone.routefilter';
import 'bootstrap';
import './styles/main.less';
class Router extends Backbone.Router {
routes() {
return {
login: 'login',
logout: 'logout',
welcome: 'welcome',
clusters: 'listClusters',
'cluster/:id(/:tab)(/:opt1)(/:opt2)': 'showCluster',
equipment: 'showEquipmentPage',
releases: 'listReleases',
plugins: 'listPlugins',
notifications: 'showNotifications',
support: 'showSupportPage',
capacity: 'showCapacityPage',
'*default': 'default'
};
}
// pre-route hook
before(currentRouteName) {
var currentUrl = Backbone.history.getHash();
var preventRouting = false;
// remove trailing slash
if (_.endsWith(currentUrl, '/')) {
this.navigate(currentUrl.substr(0, currentUrl.length - 1), {trigger: true, replace: true});
preventRouting = true;
}
// handle special routes
if (!preventRouting) {
var specialRoutes = [
{name: 'login', condition: () => {
var result = app.version.get('auth_required') && !app.user.get('authenticated');
if (result && currentUrl !== 'login' && currentUrl !== 'logout') {
this.returnUrl = currentUrl;
}
return result;
}},
{name: 'welcome', condition: (previousUrl) => {
return previousUrl !== 'logout' &&
!app.fuelSettings.get('statistics.user_choice_saved.value');
}}
];
_.each(specialRoutes, (route) => {
if (route.condition(currentRouteName)) {
if (currentRouteName !== route.name) {
preventRouting = true;
this.navigate(route.name, {trigger: true, replace: true});
}
return false;
} else if (currentRouteName === route.name) {
preventRouting = true;
this.navigate('', {trigger: true});
return false;
}
});
}
return !preventRouting;
}
// routes
default() {
this.navigate('clusters', {trigger: true, replace: true});
}
login() {
app.loadPage(LoginPage);
}
logout() {
app.logout();
}
welcome() {
app.loadPage(WelcomePage);
}
showCluster(clusterId, tab) {
var tabs = _.pluck(ClusterPage.getTabs(), 'url');
if (!tab || !_.contains(tabs, tab)) {
this.navigate('cluster/' + clusterId + '/' + tabs[0], {trigger: true, replace: true});
} else {
app.loadPage(ClusterPage, arguments).fail(() => this.default());
}
}
listClusters() {
app.loadPage(ClustersPage);
}
showEquipmentPage() {
app.loadPage(EquipmentPage);
}
listReleases() {
app.loadPage(ReleasesPage);
}
listPlugins() {
app.loadPage(PluginsPage);
}
showNotifications() {
app.loadPage(NotificationsPage);
}
showSupportPage() {
app.loadPage(SupportPage);
}
showCapacityPage() {
app.loadPage(CapacityPage);
}
}
class App {
constructor() {
this.initialized = false;
// this is needed for IE,
// which caches requests resulting in wrong results (e.g /ostf/testruns/last/1)
$.ajaxSetup({cache: false});
this.router = new Router();
this.keystoneClient = new KeystoneClient('/keystone', {
cacheTokenFor: 10 * 60 * 1000,
tenant: 'admin'
});
this.version = new models.FuelVersion();
this.fuelSettings = new models.FuelSettings();
this.user = new models.User();
this.statistics = new models.NodesStatistics();
this.notifications = new models.Notifications();
this.releases = new models.Releases();
}
initialize() {
this.initialized = true;
this.mountNode = $('#main-container');
document.title = i18n('common.title');
return this.version.fetch()
.then(() => {
this.user.set({authenticated: !this.version.get('auth_required')});
this.overrideBackboneSyncMethod();
if (this.version.get('auth_required')) {
_.extend(this.keystoneClient, this.user.pick('token'));
return this.keystoneClient.authenticate()
.done(() => this.user.set({authenticated: true}));
}
return $.Deferred().resolve();
})
.then(() => {
return this.fuelSettings.fetch();
})
.then(null, () => {
if (this.version.get('auth_required') && !this.user.get('authenticated')) {
return $.Deferred().resolve();
} else {
this.mountNode.empty();
NailgunUnavailabilityDialog.show({}, {preventDuplicate: true});
}
})
.then(() => Backbone.history.start());
}
renderLayout() {
var wrappedRootComponent = ReactDOM.render(
React.createElement(
RootComponent,
_.pick(this, 'version', 'user', 'fuelSettings', 'statistics', 'notifications')
),
this.mountNode[0]
);
// RootComponent is wrapped with React-DnD, extracting link to it using ref
this.rootComponent = wrappedRootComponent.refs.child;
}
loadPage(Page, options = []) {
return (Page.fetchData ? Page.fetchData(...options) : $.Deferred().resolve())
.done((pageOptions) => {
if (!this.rootComponent) this.renderLayout();
this.setPage(Page, pageOptions);
});
}
setPage(Page, options) {
this.page = this.rootComponent.setPage(Page, options);
}
navigate(...args) {
return this.router.navigate(...args);
}
logout() {
if (this.user.get('authenticated') && this.version.get('auth_required')) {
this.user.set('authenticated', false);
this.user.unset('username');
this.user.unset('token');
this.keystoneClient.deauthenticate();
}
_.defer(() => this.navigate('login', {trigger: true, replace: true}));
}
overrideBackboneSyncMethod() {
var originalSyncMethod = Backbone.sync;
if (originalSyncMethod.patched) return;
Backbone.sync = function(method, model, options = {}) {
// our server doesn't support PATCH, so use PUT instead
if (method === 'patch') {
method = 'update';
}
// add auth token to header if auth is enabled
if (app.version.get('auth_required') && !this.authExempt) {
return app.keystoneClient.authenticate()
.fail(() => app.logout())
.then(() => {
options.headers = options.headers || {};
options.headers['X-Auth-Token'] = app.keystoneClient.token;
return originalSyncMethod.call(this, method, model, options);
})
.fail((response) => {
if (response && response.status === 401) {
app.logout();
}
});
}
return originalSyncMethod.call(this, method, model, options);
};
Backbone.sync.patched = true;
}
}
window.app = new App();
$(() => app.initialize());
export default app;

View File

@ -1,165 +0,0 @@
/*
* Copyright 2014 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import $ from 'jquery';
import _ from 'underscore';
import Backbone from 'backbone';
import i18n from 'i18n';
import React from 'react';
import ReactDOM from 'react-dom';
import dispatcher from 'dispatcher';
import {DiscardSettingsChangesDialog} from 'views/dialogs';
import 'react.backbone';
export var backboneMixin = React.BackboneMixin;
export function dispatcherMixin(events, callback) {
return {
componentDidMount() {
dispatcher.on(events, _.isString(callback) ? this[callback] : callback, this);
},
componentWillUnmount() {
dispatcher.off(null, null, this);
}
};
}
export var unsavedChangesMixin = {
onBeforeunloadEvent() {
if (this.hasChanges()) {
return _.result(this, 'getStayMessage') || i18n('dialog.dismiss_settings.default_message');
}
},
componentWillMount() {
this.eventName = _.uniqueId('unsavedchanges');
$(window).on('beforeunload.' + this.eventName, this.onBeforeunloadEvent);
$('body').on('click.' + this.eventName, 'a[href^=#]:not(.no-leave-check)', this.onLeave);
},
componentWillUnmount() {
$(window).off('beforeunload.' + this.eventName);
$('body').off('click.' + this.eventName);
},
onLeave(e) {
var href = $(e.currentTarget).attr('href');
if (Backbone.history.getHash() !== href.substr(1) && _.result(this, 'hasChanges')) {
e.preventDefault();
DiscardSettingsChangesDialog
.show({
isDiscardingPossible: _.result(this, 'isDiscardingPossible'),
isSavingPossible: _.result(this, 'isSavingPossible'),
applyChanges: this.applyChanges,
revertChanges: this.revertChanges
}).done(() => {
app.navigate(href, {trigger: true});
});
}
}
};
export function pollingMixin(updateInterval, delayedStart) {
updateInterval = updateInterval * 1000;
return {
scheduleDataFetch() {
var shouldDataBeFetched = !_.isFunction(this.shouldDataBeFetched) ||
this.shouldDataBeFetched();
if (this.isMounted() && !this.activeTimeout && shouldDataBeFetched) {
this.activeTimeout = _.delay(this.startPolling, updateInterval);
}
},
startPolling(force) {
var shouldDataBeFetched = force || !_.isFunction(this.shouldDataBeFetched) ||
this.shouldDataBeFetched();
if (shouldDataBeFetched) {
this.stopPolling();
return this.fetchData().always(this.scheduleDataFetch);
}
},
stopPolling() {
if (this.activeTimeout) clearTimeout(this.activeTimeout);
delete this.activeTimeout;
},
componentDidMount() {
if (delayedStart) {
this.scheduleDataFetch();
} else {
this.startPolling();
}
},
componentWillUnmount() {
this.stopPolling();
}
};
}
export var outerClickMixin = {
propTypes: {
toggle: React.PropTypes.func
},
getInitialState() {
return {
clickEventName: 'click.' + _.uniqueId('outer-click')
};
},
handleBodyClick(e) {
if (!$(e.target).closest(ReactDOM.findDOMNode(this)).length) {
_.defer(_.partial(this.props.toggle, false));
}
},
componentDidMount() {
if (this.props.toggle) {
$('html').on(this.state.clickEventName, this.handleBodyClick);
Backbone.history.on('route', _.partial(this.props.toggle, false), this);
}
},
componentWillUnmount() {
if (this.props.toggle) {
$('html').off(this.state.clickEventName);
Backbone.history.off('route', null, this);
}
}
};
export function renamingMixin(refname) {
return {
getInitialState() {
return {
isRenaming: false,
renamingMixinEventName: 'click.' + _.uniqueId('rename')
};
},
componentWillUnmount() {
$('html').off(this.state.renamingMixinEventName);
},
startRenaming(e) {
e.preventDefault();
$('html').on(this.state.renamingMixinEventName, (e) => {
if (e && !$(e.target).closest(ReactDOM.findDOMNode(this.refs[refname])).length) {
this.endRenaming();
} else {
e.preventDefault();
}
});
this.setState({isRenaming: true});
},
endRenaming() {
$('html').off(this.state.renamingMixinEventName);
this.setState({
isRenaming: false,
actionInProgress: false
});
}
};
}

View File

@ -1,22 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import _ from 'underscore';
import Backbone from 'backbone';
var dispatcher = _.clone(Backbone.Events);
_.bindAll(dispatcher);
export default dispatcher;

View File

@ -1,55 +0,0 @@
/*
* Copyright 2014 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import _ from 'underscore';
import ExpressionParser from 'expression/parser';
import * as expressionObjects from 'expression/objects';
var expressionCache = {};
class Expression {
constructor(expressionText, models = {}, {strict = true} = {}) {
this.strict = strict;
this.expressionText = expressionText;
this.models = models;
this.compiledExpression = this.getCompiledExpression();
return this;
}
evaluate(extraModels) {
// FIXME(vkramskikh): currently Jison supports sharing state
// only via ExpressionParser.yy. It is unsafe and could lead to
// issues in case we start to use webworkers
ExpressionParser.yy.expression = this;
this.modelPaths = {};
this.extraModels = extraModels;
var value = this.compiledExpression.evaluate();
delete this.extraModels;
return value;
}
getCompiledExpression() {
var cacheEntry = expressionCache[this.expressionText];
if (!cacheEntry) {
cacheEntry = expressionCache[this.expressionText] =
ExpressionParser.parse(this.expressionText);
}
return cacheEntry;
}
}
_.extend(ExpressionParser.yy, expressionObjects);
export default Expression;

View File

@ -1,109 +0,0 @@
/*
* Copyright 2014 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import _ from 'underscore';
import ExpressionParser from 'expression/parser';
export class ModelPath {
constructor(path) {
var pathParts = path.split(':');
if (_.isUndefined(pathParts[1])) {
this.modelName = 'default';
this.attribute = pathParts[0];
} else {
this.modelName = pathParts[0];
this.attribute = pathParts[1];
}
return this;
}
setModel(models, extraModels = {}) {
this.model = extraModels[this.modelName] || models[this.modelName];
if (!this.model) {
throw new Error('No model with name "' + this.modelName + '" defined');
}
return this;
}
get(options) {
return this.model.get(this.attribute, options);
}
set(value, options) {
return this.model.set(this.attribute, value, options);
}
change(callback, context) {
return this.model.on('change:' + this.attribute, callback, context);
}
}
export class ScalarWrapper {
constructor(value) {
this.value = value;
}
evaluate() {
return this.value;
}
getValue() {
return this.value;
}
}
export class SubexpressionWrapper {
constructor(subexpression) {
this.subexpression = subexpression;
}
evaluate() {
return this.subexpression();
}
getValue() {
return this.subexpression();
}
}
export class ModelPathWrapper {
constructor(modelPathText) {
this.modelPath = new ModelPath(modelPathText);
this.modelPathText = modelPathText;
}
evaluate() {
var expression = ExpressionParser.yy.expression;
this.modelPath.setModel(expression.models, expression.extraModels);
var result = this.modelPath.get();
if (_.isUndefined(result)) {
if (expression.strict) {
throw new TypeError(
'Value of ' + this.modelPathText +
' is undefined. Set options.strict to false to allow undefined values.'
);
}
result = null;
}
this.lastResult = result;
expression.modelPaths[this.modelPathText] = this.modelPath;
return this.modelPath;
}
getValue() {
this.evaluate();
return this.lastResult;
}
}

View File

@ -1,81 +0,0 @@
%lex
%%
\s+ /* skip whitespace */
\-?[0-9]+("."[0-9]+)?\b return 'NUMBER';
\"(.*?)\" return 'STRING';
\'(.*?)\' return 'STRING';
true return 'TRUE';
false return 'FALSE';
null return 'NULL';
"in" return 'IN';
"and" return 'AND';
"or" return 'OR';
"not" return 'NOT';
(\w*?\:)?[\w\.\-]+\?? return 'MODELPATH';
"==" return 'EQUALS';
"!=" return 'NOT_EQUALS';
"(" return 'LPAREN';
")" return 'RPAREN';
<<EOF>> return 'EOF';
/lex
/* operator associations and precedence */
%left 'OR'
%left 'AND'
%left 'EQUALS' 'NOT_EQUALS'
%left 'IN' 'NOT'
%start expressions
%% /* language grammar */
expressions
: e EOF
{return $1;}
;
e
: e EQUALS e
{$$ = new yy.SubexpressionWrapper(function() {
return $1.getValue() === $3.getValue();
})}
| e NOT_EQUALS e
{$$ = new yy.SubexpressionWrapper(function() {
return $1.getValue() !== $3.getValue();
})}
| LPAREN e RPAREN
{$$ = new yy.SubexpressionWrapper(function() {
return $2.getValue();
})}
| e AND e
{$$ = new yy.SubexpressionWrapper(function() {
return $1.getValue() && $3.getValue();
})}
| e OR e
{$$ = new yy.SubexpressionWrapper(function() {
return $1.getValue() || $3.getValue();
})}
| NOT e
{$$ = new yy.SubexpressionWrapper(function() {
return !($2.getValue());
})}
| e IN e
{$$ = new yy.SubexpressionWrapper(function() {
return $3.getValue().indexOf($1.getValue()) != -1;
})}
| NUMBER
{$$ = new yy.ScalarWrapper(Number(yytext))}
| STRING
{$$ = new yy.ScalarWrapper(yytext.slice(1, -1))}
| TRUE
{$$ = new yy.ScalarWrapper(true)}
| FALSE
{$$ = new yy.ScalarWrapper(false)}
| NULL
{$$ = new yy.ScalarWrapper(null)}
| MODELPATH
{$$ = new yy.ModelPathWrapper(yytext)}
;

View File

@ -1,665 +0,0 @@
/* parser generated by jison 0.4.15 */
/*
Returns a Parser object of the following structure:
Parser: {
yy: {}
}
Parser.prototype: {
yy: {},
trace: function(),
symbols_: {associative list: name ==> number},
terminals_: {associative list: number ==> name},
productions_: [...],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
table: [...],
defaultActions: {...},
parseError: function(str, hash),
parse: function(input),
lexer: {
EOF: 1,
parseError: function(str, hash),
setInput: function(input),
input: function(),
unput: function(str),
more: function(),
less: function(n),
pastInput: function(),
upcomingInput: function(),
showPosition: function(),
test_match: function(regex_match_array, rule_index),
next: function(),
lex: function(),
begin: function(condition),
popState: function(),
_currentRules: function(),
topState: function(),
pushState: function(condition),
options: {
ranges: boolean (optional: true ==> token location info will include a .range[] member)
flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
},
performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
rules: [...],
conditions: {associative list: name ==> set},
}
}
token location info (@$, _$, etc.): {
first_line: n,
last_line: n,
first_column: n,
last_column: n,
range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
}
the parseError function receives a 'hash' object with these members for lexer and parser errors: {
text: (matched text)
token: (the produced terminal token, if any)
line: (yylineno)
}
while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
loc: (yylloc)
expected: (string describing the set of expected tokens)
recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
}
*/
var parser = (function(){
var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,3],$V1=[1,4],$V2=[1,5],$V3=[1,6],$V4=[1,7],$V5=[1,8],$V6=[1,9],$V7=[1,10],$V8=[1,12],$V9=[1,13],$Va=[1,14],$Vb=[1,15],$Vc=[1,16],$Vd=[5,6,7,9,10,11,13],$Ve=[5,6,7,9,10,11];
var parser = {trace: function trace() { },
yy: {},
symbols_: {"error":2,"expressions":3,"e":4,"EOF":5,"EQUALS":6,"NOT_EQUALS":7,"LPAREN":8,"RPAREN":9,"AND":10,"OR":11,"NOT":12,"IN":13,"NUMBER":14,"STRING":15,"TRUE":16,"FALSE":17,"NULL":18,"MODELPATH":19,"$accept":0,"$end":1},
terminals_: {2:"error",5:"EOF",6:"EQUALS",7:"NOT_EQUALS",8:"LPAREN",9:"RPAREN",10:"AND",11:"OR",12:"NOT",13:"IN",14:"NUMBER",15:"STRING",16:"TRUE",17:"FALSE",18:"NULL",19:"MODELPATH"},
productions_: [0,[3,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,2],[4,3],[4,1],[4,1],[4,1],[4,1],[4,1],[4,1]],
performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
/* this == yyval */
var $0 = $$.length - 1;
switch (yystate) {
case 1:
return $$[$0-1];
break;
case 2:
this.$ = new yy.SubexpressionWrapper(function() {
return $$[$0-2].getValue() === $$[$0].getValue();
})
break;
case 3:
this.$ = new yy.SubexpressionWrapper(function() {
return $$[$0-2].getValue() !== $$[$0].getValue();
})
break;
case 4:
this.$ = new yy.SubexpressionWrapper(function() {
return $$[$0-1].getValue();
})
break;
case 5:
this.$ = new yy.SubexpressionWrapper(function() {
return $$[$0-2].getValue() && $$[$0].getValue();
})
break;
case 6:
this.$ = new yy.SubexpressionWrapper(function() {
return $$[$0-2].getValue() || $$[$0].getValue();
})
break;
case 7:
this.$ = new yy.SubexpressionWrapper(function() {
return !($$[$0].getValue());
})
break;
case 8:
this.$ = new yy.SubexpressionWrapper(function() {
return $$[$0].getValue().indexOf($$[$0-2].getValue()) != -1;
})
break;
case 9:
this.$ = new yy.ScalarWrapper(Number(yytext))
break;
case 10:
this.$ = new yy.ScalarWrapper(yytext.slice(1, -1))
break;
case 11:
this.$ = new yy.ScalarWrapper(true)
break;
case 12:
this.$ = new yy.ScalarWrapper(false)
break;
case 13:
this.$ = new yy.ScalarWrapper(null)
break;
case 14:
this.$ = new yy.ModelPathWrapper(yytext)
break;
}
},
table: [{3:1,4:2,8:$V0,12:$V1,14:$V2,15:$V3,16:$V4,17:$V5,18:$V6,19:$V7},{1:[3]},{5:[1,11],6:$V8,7:$V9,10:$Va,11:$Vb,13:$Vc},{4:17,8:$V0,12:$V1,14:$V2,15:$V3,16:$V4,17:$V5,18:$V6,19:$V7},{4:18,8:$V0,12:$V1,14:$V2,15:$V3,16:$V4,17:$V5,18:$V6,19:$V7},o($Vd,[2,9]),o($Vd,[2,10]),o($Vd,[2,11]),o($Vd,[2,12]),o($Vd,[2,13]),o($Vd,[2,14]),{1:[2,1]},{4:19,8:$V0,12:$V1,14:$V2,15:$V3,16:$V4,17:$V5,18:$V6,19:$V7},{4:20,8:$V0,12:$V1,14:$V2,15:$V3,16:$V4,17:$V5,18:$V6,19:$V7},{4:21,8:$V0,12:$V1,14:$V2,15:$V3,16:$V4,17:$V5,18:$V6,19:$V7},{4:22,8:$V0,12:$V1,14:$V2,15:$V3,16:$V4,17:$V5,18:$V6,19:$V7},{4:23,8:$V0,12:$V1,14:$V2,15:$V3,16:$V4,17:$V5,18:$V6,19:$V7},{6:$V8,7:$V9,9:[1,24],10:$Va,11:$Vb,13:$Vc},o($Vd,[2,7]),o($Ve,[2,2],{13:$Vc}),o($Ve,[2,3],{13:$Vc}),o([5,9,10,11],[2,5],{6:$V8,7:$V9,13:$Vc}),o([5,9,11],[2,6],{6:$V8,7:$V9,10:$Va,13:$Vc}),o($Vd,[2,8]),o($Vd,[2,4])],
defaultActions: {11:[2,1]},
parseError: function parseError(str, hash) {
if (hash.recoverable) {
this.trace(str);
} else {
throw new Error(str);
}
},
parse: function parse(input) {
var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
var args = lstack.slice.call(arguments, 1);
var lexer = Object.create(this.lexer);
var sharedState = { yy: {} };
for (var k in this.yy) {
if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
sharedState.yy[k] = this.yy[k];
}
}
lexer.setInput(input, sharedState.yy);
sharedState.yy.lexer = lexer;
sharedState.yy.parser = this;
if (typeof lexer.yylloc == 'undefined') {
lexer.yylloc = {};
}
var yyloc = lexer.yylloc;
lstack.push(yyloc);
var ranges = lexer.options && lexer.options.ranges;
if (typeof sharedState.yy.parseError === 'function') {
this.parseError = sharedState.yy.parseError;
} else {
this.parseError = Object.getPrototypeOf(this).parseError;
}
function popStack(n) {
stack.length = stack.length - 2 * n;
vstack.length = vstack.length - n;
lstack.length = lstack.length - n;
}
_token_stack:
function lex() {
var token;
token = lexer.lex() || EOF;
if (typeof token !== 'number') {
token = self.symbols_[token] || token;
}
return token;
}
var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
while (true) {
state = stack[stack.length - 1];
if (this.defaultActions[state]) {
action = this.defaultActions[state];
} else {
if (symbol === null || typeof symbol == 'undefined') {
symbol = lex();
}
action = table[state] && table[state][symbol];
}
if (typeof action === 'undefined' || !action.length || !action[0]) {
var errStr = '';
expected = [];
for (p in table[state]) {
if (this.terminals_[p] && p > TERROR) {
expected.push('\'' + this.terminals_[p] + '\'');
}
}
if (lexer.showPosition) {
errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
} else {
errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
}
this.parseError(errStr, {
text: lexer.match,
token: this.terminals_[symbol] || symbol,
line: lexer.yylineno,
loc: yyloc,
expected: expected
});
}
if (action[0] instanceof Array && action.length > 1) {
throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
}
switch (action[0]) {
case 1:
stack.push(symbol);
vstack.push(lexer.yytext);
lstack.push(lexer.yylloc);
stack.push(action[1]);
symbol = null;
if (!preErrorSymbol) {
yyleng = lexer.yyleng;
yytext = lexer.yytext;
yylineno = lexer.yylineno;
yyloc = lexer.yylloc;
if (recovering > 0) {
recovering--;
}
} else {
symbol = preErrorSymbol;
preErrorSymbol = null;
}
break;
case 2:
len = this.productions_[action[1]][1];
yyval.$ = vstack[vstack.length - len];
yyval._$ = {
first_line: lstack[lstack.length - (len || 1)].first_line,
last_line: lstack[lstack.length - 1].last_line,
first_column: lstack[lstack.length - (len || 1)].first_column,
last_column: lstack[lstack.length - 1].last_column
};
if (ranges) {
yyval._$.range = [
lstack[lstack.length - (len || 1)].range[0],
lstack[lstack.length - 1].range[1]
];
}
r = this.performAction.apply(yyval, [
yytext,
yyleng,
yylineno,
sharedState.yy,
action[1],
vstack,
lstack
].concat(args));
if (typeof r !== 'undefined') {
return r;
}
if (len) {
stack = stack.slice(0, -1 * len * 2);
vstack = vstack.slice(0, -1 * len);
lstack = lstack.slice(0, -1 * len);
}
stack.push(this.productions_[action[1]][0]);
vstack.push(yyval.$);
lstack.push(yyval._$);
newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
stack.push(newState);
break;
case 3:
return true;
}
}
return true;
}};
/* generated by jison-lex 0.3.4 */
var lexer = (function(){
var lexer = ({
EOF:1,
parseError:function parseError(str, hash) {
if (this.yy.parser) {
this.yy.parser.parseError(str, hash);
} else {
throw new Error(str);
}
},
// resets the lexer, sets new input
setInput:function (input, yy) {
this.yy = yy || this.yy || {};
this._input = input;
this._more = this._backtrack = this.done = false;
this.yylineno = this.yyleng = 0;
this.yytext = this.matched = this.match = '';
this.conditionStack = ['INITIAL'];
this.yylloc = {
first_line: 1,
first_column: 0,
last_line: 1,
last_column: 0
};
if (this.options.ranges) {
this.yylloc.range = [0,0];
}
this.offset = 0;
return this;
},
// consumes and returns one char from the input
input:function () {
var ch = this._input[0];
this.yytext += ch;
this.yyleng++;
this.offset++;
this.match += ch;
this.matched += ch;
var lines = ch.match(/(?:\r\n?|\n).*/g);
if (lines) {
this.yylineno++;
this.yylloc.last_line++;
} else {
this.yylloc.last_column++;
}
if (this.options.ranges) {
this.yylloc.range[1]++;
}
this._input = this._input.slice(1);
return ch;
},
// unshifts one char (or a string) into the input
unput:function (ch) {
var len = ch.length;
var lines = ch.split(/(?:\r\n?|\n)/g);
this._input = ch + this._input;
this.yytext = this.yytext.substr(0, this.yytext.length - len);
//this.yyleng -= len;
this.offset -= len;
var oldLines = this.match.split(/(?:\r\n?|\n)/g);
this.match = this.match.substr(0, this.match.length - 1);
this.matched = this.matched.substr(0, this.matched.length - 1);
if (lines.length - 1) {
this.yylineno -= lines.length - 1;
}
var r = this.yylloc.range;
this.yylloc = {
first_line: this.yylloc.first_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.first_column,
last_column: lines ?
(lines.length === oldLines.length ? this.yylloc.first_column : 0)
+ oldLines[oldLines.length - lines.length].length - lines[0].length :
this.yylloc.first_column - len
};
if (this.options.ranges) {
this.yylloc.range = [r[0], r[0] + this.yyleng - len];
}
this.yyleng = this.yytext.length;
return this;
},
// When called from action, caches matched text and appends it on next action
more:function () {
this._more = true;
return this;
},
// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
reject:function () {
if (this.options.backtrack_lexer) {
this._backtrack = true;
} else {
return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
text: "",
token: null,
line: this.yylineno
});
}
return this;
},
// retain first n characters of the match
less:function (n) {
this.unput(this.match.slice(n));
},
// displays already matched input, i.e. for error messages
pastInput:function () {
var past = this.matched.substr(0, this.matched.length - this.match.length);
return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
},
// displays upcoming input, i.e. for error messages
upcomingInput:function () {
var next = this.match;
if (next.length < 20) {
next += this._input.substr(0, 20-next.length);
}
return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
},
// displays the character position where the lexing error occurred, i.e. for error messages
showPosition:function () {
var pre = this.pastInput();
var c = new Array(pre.length + 1).join("-");
return pre + this.upcomingInput() + "\n" + c + "^";
},
// test the lexed token: return FALSE when not a match, otherwise return token
test_match:function (match, indexed_rule) {
var token,
lines,
backup;
if (this.options.backtrack_lexer) {
// save context
backup = {
yylineno: this.yylineno,
yylloc: {
first_line: this.yylloc.first_line,
last_line: this.last_line,
first_column: this.yylloc.first_column,
last_column: this.yylloc.last_column
},
yytext: this.yytext,
match: this.match,
matches: this.matches,
matched: this.matched,
yyleng: this.yyleng,
offset: this.offset,
_more: this._more,
_input: this._input,
yy: this.yy,
conditionStack: this.conditionStack.slice(0),
done: this.done
};
if (this.options.ranges) {
backup.yylloc.range = this.yylloc.range.slice(0);
}
}
lines = match[0].match(/(?:\r\n?|\n).*/g);
if (lines) {
this.yylineno += lines.length;
}
this.yylloc = {
first_line: this.yylloc.last_line,
last_line: this.yylineno + 1,
first_column: this.yylloc.last_column,
last_column: lines ?
lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
this.yylloc.last_column + match[0].length
};
this.yytext += match[0];
this.match += match[0];
this.matches = match;
this.yyleng = this.yytext.length;
if (this.options.ranges) {
this.yylloc.range = [this.offset, this.offset += this.yyleng];
}
this._more = false;
this._backtrack = false;
this._input = this._input.slice(match[0].length);
this.matched += match[0];
token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
if (this.done && this._input) {
this.done = false;
}
if (token) {
return token;
} else if (this._backtrack) {
// recover context
for (var k in backup) {
this[k] = backup[k];
}
return false; // rule action called reject() implying the next rule should be tested instead.
}
return false;
},
// return next match in input
next:function () {
if (this.done) {
return this.EOF;
}
if (!this._input) {
this.done = true;
}
var token,
match,
tempMatch,
index;
if (!this._more) {
this.yytext = '';
this.match = '';
}
var rules = this._currentRules();
for (var i = 0; i < rules.length; i++) {
tempMatch = this._input.match(this.rules[rules[i]]);
if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
match = tempMatch;
index = i;
if (this.options.backtrack_lexer) {
token = this.test_match(tempMatch, rules[i]);
if (token !== false) {
return token;
} else if (this._backtrack) {
match = false;
continue; // rule action called reject() implying a rule MISmatch.
} else {
// else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
return false;
}
} else if (!this.options.flex) {
break;
}
}
}
if (match) {
token = this.test_match(match, rules[index]);
if (token !== false) {
return token;
}
// else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
return false;
}
if (this._input === "") {
return this.EOF;
} else {
return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
text: "",
token: null,
line: this.yylineno
});
}
},
// return next match that has a token
lex:function lex() {
var r = this.next();
if (r) {
return r;
} else {
return this.lex();
}
},
// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
begin:function begin(condition) {
this.conditionStack.push(condition);
},
// pop the previously active lexer condition state off the condition stack
popState:function popState() {
var n = this.conditionStack.length - 1;
if (n > 0) {
return this.conditionStack.pop();
} else {
return this.conditionStack[0];
}
},
// produce the lexer rule set which is active for the currently active lexer condition state
_currentRules:function _currentRules() {
if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
} else {
return this.conditions["INITIAL"].rules;
}
},
// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
topState:function topState(n) {
n = this.conditionStack.length - 1 - Math.abs(n || 0);
if (n >= 0) {
return this.conditionStack[n];
} else {
return "INITIAL";
}
},
// alias for begin(condition)
pushState:function pushState(condition) {
this.begin(condition);
},
// return the number of states currently on the stack
stateStackSize:function stateStackSize() {
return this.conditionStack.length;
},
options: {},
performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
var YYSTATE=YY_START;
switch($avoiding_name_collisions) {
case 0:/* skip whitespace */
break;
case 1:return 14;
break;
case 2:return 15;
break;
case 3:return 15;
break;
case 4:return 16;
break;
case 5:return 17;
break;
case 6:return 18;
break;
case 7:return 13;
break;
case 8:return 10;
break;
case 9:return 11;
break;
case 10:return 12;
break;
case 11:return 19;
break;
case 12:return 6;
break;
case 13:return 7;
break;
case 14:return 8;
break;
case 15:return 9;
break;
case 16:return 5;
break;
}
},
rules: [/^(?:\s+)/,/^(?:-?[0-9]+(\.[0-9]+)?\b)/,/^(?:"(.*?)")/,/^(?:'(.*?)')/,/^(?:true\b)/,/^(?:false\b)/,/^(?:null\b)/,/^(?:in\b)/,/^(?:and\b)/,/^(?:or\b)/,/^(?:not\b)/,/^(?:(\w*?:)?[\w\.\-]+\??)/,/^(?:==)/,/^(?:!=)/,/^(?:\()/,/^(?:\))/,/^(?:$)/],
conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"inclusive":true}}
});
return lexer;
})();
parser.lexer = lexer;
function Parser () {
this.yy = {};
}
Parser.prototype = parser;parser.Parser = Parser;
return new Parser;
})();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 111 KiB

View File

@ -1,53 +0,0 @@
/*
* Copyright 2014 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import _ from 'underscore';
import i18next from 'i18next-client';
import translations from './translations/core.json';
var defaultLocale = 'en-US';
var i18n = _.extend(_.bind(i18next.t, i18next), {
getLocaleName(locale) {
return i18n('language', {lng: locale});
},
getLanguageName(locale) {
return i18n('language_name', {lng: locale});
},
getAvailableLocales() {
return _.keys(translations).sort();
},
getCurrentLocale() {
return i18next.lng();
},
setLocale(locale) {
i18next.setLng(locale, {});
},
addTranslations(extraTranslations) {
_.merge(i18next.options.resStore, extraTranslations);
}
});
i18next.init({resStore: translations, fallbackLng: defaultLocale});
// reset locale to default if current locale is not available
if (!_.contains(i18n.getAvailableLocales(), i18n.getCurrentLocale())) {
i18n.setLocale(defaultLocale);
}
// export global i18n variable to use in templates
window.i18n = i18n;
export default i18n;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View File

@ -1,157 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, 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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="200px"
height="260px" viewBox="0 0 200 260" enable-background="new 0 0 200 260" xml:space="preserve">
<g id="Layer_1" display="none">
<g id="zbi7Av_1_" display="inline">
<image overflow="visible" width="180" height="239" id="zbi7Av" xlink:href="BA2734BBA17565C.jpg" transform="matrix(1 0 0 1 10 11)">
</image>
</g>
</g>
<g id="Layer_2">
<path d="M99.732,132.14c-1.964,0-3.95-0.12-5.909-0.355l-3.68-10.351c-0.085-0.237-0.281-0.419-0.524-0.483
c-3.291-0.879-6.468-2.197-9.442-3.918c-0.118-0.069-0.251-0.104-0.385-0.104c-0.111,0-0.226,0.025-0.329,0.074l-9.926,4.719
c-3.11-2.438-5.918-5.248-8.359-8.359l4.719-9.926c0.107-0.229,0.098-0.494-0.029-0.714c-1.721-2.972-3.038-6.149-3.917-9.441
c-0.066-0.243-0.247-0.439-0.484-0.524l-10.351-3.682c-0.236-1.954-0.355-3.939-0.355-5.909c0-1.969,0.119-3.955,0.355-5.908
l10.351-3.681c0.237-0.085,0.418-0.281,0.484-0.525c0.879-3.291,2.196-6.469,3.917-9.441c0.127-0.22,0.137-0.485,0.029-0.715
l-4.719-9.924c2.441-3.111,5.249-5.92,8.359-8.36l9.926,4.718c0.104,0.05,0.218,0.075,0.329,0.075c0.134,0,0.267-0.034,0.385-0.104
c2.634-1.523,5.433-2.733,8.332-3.602v24.366l-14.182,31.897c-0.388,0.873-0.309,1.872,0.212,2.674
c0.521,0.801,1.402,1.279,2.357,1.279h45.674c0.954,0,1.836-0.479,2.356-1.279c0.521-0.802,0.6-1.801,0.212-2.674l-14.181-31.897
V45.698c2.9,0.868,5.698,2.079,8.332,3.602c0.118,0.069,0.251,0.104,0.384,0.104c0.113,0,0.226-0.024,0.33-0.073l9.925-4.719
c3.112,2.44,5.921,5.249,8.359,8.359l-4.718,9.925c-0.109,0.229-0.098,0.495,0.029,0.715c1.721,2.976,3.039,6.151,3.917,9.44
c0.064,0.244,0.247,0.44,0.483,0.525l10.351,3.68c0.235,1.959,0.355,3.944,0.355,5.909s-0.12,3.951-0.355,5.91L138,92.756
c-0.236,0.085-0.419,0.281-0.483,0.524c-0.879,3.293-2.196,6.47-3.917,9.441c-0.127,0.219-0.139,0.485-0.029,0.714l4.718,9.926
c-2.438,3.109-5.247,5.918-8.359,8.359l-9.925-4.719c-0.104-0.049-0.217-0.074-0.33-0.074c-0.133,0-0.266,0.035-0.384,0.104
c-2.974,1.721-6.149,3.038-9.442,3.916c-0.243,0.066-0.44,0.247-0.524,0.484l-3.68,10.352
C103.684,132.02,101.698,132.14,99.732,132.14z"/>
<circle fill="#D12F27" cx="95.582" cy="33.17" r="6.987"/>
<polygon fill="#D12F27" points="108.146,70.661 108.146,45.591 91.32,45.591 91.32,70.661 76.896,103.104 122.57,103.104 "/>
<circle fill="#D12F27" cx="108.577" cy="25.311" r="4.528"/>
<circle fill="#D12F27" cx="98.425" cy="14.481" r="3.37"/>
<g>
<g>
<path fill="#959595" d="M14.487,225.121h2.174v-1.013c0-2.229,0.319-3.857,0.959-4.85c0.649-1.004,1.744-1.491,3.288-1.491
c0.622,0,1.182,0.031,1.682,0.105c0.501,0.064,1.012,0.224,1.529,0.466l-0.637,2.208c-0.43-0.189-0.828-0.316-1.194-0.369
c-0.37-0.062-0.718-0.096-1.054-0.096c-0.48,0-0.848,0.096-1.104,0.275c-0.267,0.189-0.462,0.496-0.592,0.897
c-0.138,0.413-0.22,0.919-0.253,1.553c-0.035,0.634-0.053,1.395-0.053,2.313h3.714v2.316h-3.714v15.53h-2.571v-15.53h-2.174
V225.121z"/>
<path fill="#959595" d="M24.452,234.04c0-3.223,0.552-5.568,1.656-7.09c1.105-1.51,2.68-2.271,4.736-2.271
c2.188,0,3.802,0.781,4.836,2.334c1.03,1.533,1.555,3.891,1.555,7.027c0,3.244-0.562,5.602-1.676,7.111
c-1.128,1.5-2.699,2.241-4.715,2.241c-2.193,0-3.804-0.772-4.843-2.315C24.967,239.524,24.452,237.188,24.452,234.04z
M27.129,234.04c0,1.047,0.067,1.997,0.191,2.854c0.138,0.866,0.35,1.597,0.65,2.218c0.293,0.615,0.681,1.101,1.156,1.438
c0.476,0.351,1.046,0.528,1.718,0.528c1.228,0,2.16-0.56,2.782-1.658c0.622-1.109,0.926-2.895,0.926-5.379
c0-1.025-0.061-1.966-0.197-2.843c-0.131-0.865-0.339-1.605-0.643-2.229c-0.293-0.612-0.681-1.088-1.156-1.447
c-0.484-0.339-1.043-0.509-1.712-0.509c-1.215,0-2.135,0.561-2.772,1.67C27.438,229.804,27.129,231.589,27.129,234.04z"/>
<path fill="#959595" d="M40.48,225.121h1.818l0.46,1.892h0.113c0.33-0.696,0.77-1.235,1.307-1.637
c0.526-0.38,1.176-0.581,1.94-0.581c0.549,0,1.162,0.105,1.854,0.326l-0.503,2.59c-0.615-0.211-1.164-0.316-1.638-0.316
c-0.763,0-1.377,0.231-1.857,0.664c-0.472,0.444-0.783,1.025-0.927,1.776v13.133H40.48V225.121z"/>
<path fill="#959595" d="M57.261,230.469c0-4.236,0.677-7.449,2.033-9.637c1.359-2.187,3.425-3.285,6.215-3.285
c1.5,0,2.774,0.295,3.819,0.907c1.047,0.613,1.896,1.48,2.547,2.589c0.654,1.131,1.136,2.484,1.452,4.078
c0.303,1.587,0.466,3.372,0.466,5.348c0,4.238-0.688,7.459-2.056,9.647c-1.368,2.187-3.449,3.276-6.229,3.276
c-1.479,0-2.737-0.297-3.789-0.909c-1.046-0.603-1.896-1.469-2.566-2.578c-0.667-1.131-1.152-2.483-1.449-4.08
C57.403,234.241,57.261,232.435,57.261,230.469z M60.082,230.469c0,1.406,0.096,2.736,0.302,3.993
c0.201,1.27,0.511,2.38,0.951,3.329c0.417,0.951,0.987,1.712,1.674,2.282c0.693,0.581,1.518,0.857,2.5,0.857
c1.785,0,3.138-0.857,4.072-2.568c0.919-1.723,1.391-4.353,1.391-7.894c0-1.385-0.106-2.704-0.308-3.963
c-0.201-1.257-0.518-2.376-0.939-3.338c-0.434-0.963-0.994-1.733-1.681-2.292c-0.696-0.583-1.537-0.866-2.535-0.866
c-1.759,0-3.112,0.866-4.031,2.565C60.548,224.299,60.082,226.918,60.082,230.469z"/>
<path fill="#959595" d="M77.386,225.121h1.812l0.407,1.913h0.136c0.89-1.562,2.269-2.355,4.149-2.355
c1.88,0,3.286,0.706,4.226,2.113c0.947,1.406,1.416,3.698,1.416,6.891c0,1.51-0.163,2.852-0.469,4.057
c-0.302,1.204-0.745,2.219-1.327,3.063c-0.56,0.846-1.263,1.5-2.082,1.935c-0.818,0.433-1.728,0.655-2.73,0.655
c-0.688,0-1.242-0.042-1.644-0.117c-0.406-0.083-0.846-0.265-1.321-0.518v7.355h-2.572V225.121z M79.958,240.139
c0.333,0.295,0.708,0.516,1.126,0.687c0.418,0.158,0.972,0.252,1.658,0.252c1.263,0,2.262-0.644,2.996-1.933
c0.739-1.279,1.104-3.107,1.104-5.484c0-1.015-0.059-1.924-0.19-2.737c-0.133-0.803-0.339-1.5-0.618-2.081
c-0.296-0.582-0.65-1.025-1.1-1.352c-0.438-0.328-0.982-0.478-1.621-0.478c-1.738,0-2.854,1.046-3.355,3.17V240.139z"/>
<path fill="#959595" d="M103.58,241.754c-0.57,0.519-1.3,0.92-2.177,1.214c-0.877,0.276-1.807,0.425-2.784,0.425
c-1.115,0-2.091-0.223-2.905-0.655c-0.824-0.435-1.502-1.068-2.035-1.891c-0.544-0.826-0.936-1.808-1.184-2.949
c-0.253-1.141-0.37-2.43-0.37-3.857c0-3.044,0.561-5.357,1.676-6.963c1.12-1.584,2.699-2.398,4.743-2.398
c0.673,0,1.326,0.086,1.988,0.253c0.655,0.17,1.241,0.509,1.764,0.993c0.523,0.519,0.945,1.215,1.273,2.114
c0.317,0.908,0.475,2.081,0.475,3.538c0,0.403-0.01,0.848-0.052,1.311c-0.036,0.456-0.079,0.94-0.122,1.438h-9.071
c0,1.026,0.08,1.957,0.243,2.79c0.174,0.824,0.439,1.533,0.793,2.114c0.354,0.59,0.818,1.046,1.372,1.362
c0.562,0.317,1.254,0.485,2.094,0.485c0.645,0,1.272-0.125,1.907-0.357c0.629-0.233,1.114-0.519,1.437-0.856L103.58,241.754z
M101.583,232.192c0.047-1.798-0.206-3.108-0.745-3.933c-0.554-0.834-1.3-1.247-2.251-1.247c-1.104,0-1.972,0.413-2.615,1.247
c-0.639,0.824-1.015,2.135-1.141,3.933H101.583z"/>
<path fill="#959595" d="M116.387,242.968v-10.881c0-1.798-0.2-3.087-0.624-3.889c-0.416-0.794-1.156-1.186-2.229-1.186
c-0.952,0-1.743,0.276-2.356,0.847c-0.623,0.581-1.078,1.277-1.353,2.112v12.996h-2.58v-17.847h1.855l0.472,1.892h0.1
c0.459-0.644,1.072-1.193,1.844-1.647c0.766-0.455,1.696-0.687,2.763-0.687c0.767,0,1.438,0.116,2.019,0.327
c0.587,0.221,1.067,0.571,1.464,1.087c0.396,0.519,0.691,1.196,0.903,2.062c0.19,0.856,0.291,1.935,0.291,3.233v11.579H116.387z"
/>
<path fill="#959595" d="M122.796,239.642c0.443,0.316,1.088,0.603,1.901,0.876c0.824,0.274,1.755,0.413,2.807,0.413
c1.324,0,2.413-0.317,3.249-0.973c0.834-0.666,1.252-1.679,1.252-3.107c0-0.919-0.243-1.721-0.72-2.419
c-0.479-0.687-1.071-1.32-1.78-1.912c-0.724-0.57-1.49-1.153-2.308-1.702c-0.82-0.569-1.586-1.184-2.304-1.87
c-0.709-0.665-1.306-1.447-1.781-2.336c-0.48-0.888-0.713-1.943-0.713-3.18c0-1.997,0.597-3.475,1.801-4.438
c1.194-0.973,2.769-1.447,4.692-1.447c1.189,0,2.251,0.115,3.175,0.326c0.931,0.211,1.682,0.487,2.256,0.813l-0.865,2.356
c-0.423-0.264-1.035-0.496-1.834-0.718c-0.799-0.2-1.718-0.315-2.764-0.315c-1.288,0-2.24,0.315-2.863,0.949
c-0.612,0.624-0.92,1.426-0.92,2.377c0,0.835,0.233,1.564,0.708,2.21c0.481,0.644,1.078,1.246,1.787,1.817
c0.713,0.57,1.483,1.151,2.308,1.733c0.813,0.58,1.582,1.235,2.294,1.942c0.723,0.719,1.315,1.532,1.785,2.43
c0.481,0.9,0.724,1.966,0.724,3.214c0,2.092-0.622,3.729-1.864,4.923c-1.231,1.195-2.991,1.787-5.246,1.787
c-1.428,0-2.594-0.127-3.52-0.392c-0.908-0.254-1.644-0.561-2.192-0.887L122.796,239.642z"/>
<path fill="#959595" d="M135.777,225.121h2.176v-3.538l2.568-0.813v4.352h3.857v2.316h-3.857v10.64
c0,1.046,0.127,1.808,0.38,2.26c0.243,0.466,0.656,0.698,1.23,0.698c0.471,0,0.883-0.052,1.232-0.157
c0.348-0.106,0.718-0.254,1.12-0.413l0.501,2.04c-0.518,0.253-1.105,0.463-1.733,0.634c-0.623,0.148-1.289,0.212-1.97,0.212
c-1.194,0-2.056-0.383-2.568-1.153c-0.502-0.77-0.761-2.027-0.761-3.772v-10.987h-2.176V225.121z"/>
<path fill="#959595" d="M147.495,226.189c0.681-0.433,1.521-0.762,2.51-1.004c0.992-0.243,2.039-0.359,3.127-0.359
c0.998,0,1.801,0.159,2.415,0.444c0.603,0.307,1.077,0.718,1.421,1.214c0.345,0.519,0.576,1.099,0.687,1.745
c0.106,0.665,0.153,1.352,0.153,2.06c0,1.428-0.026,2.822-0.089,4.173c-0.064,1.363-0.09,2.653-0.09,3.87
c0,0.897,0.025,1.741,0.09,2.515c0.062,0.771,0.18,1.5,0.337,2.188h-2.007l-0.63-2.104h-0.141
c-0.354,0.622-0.867,1.162-1.554,1.615c-0.687,0.455-1.605,0.667-2.77,0.667c-1.272,0-2.313-0.443-3.132-1.332
c-0.819-0.897-1.221-2.124-1.221-3.698c0-1.025,0.168-1.882,0.507-2.567c0.343-0.697,0.835-1.259,1.453-1.682
c0.634-0.421,1.379-0.738,2.23-0.907c0.86-0.18,1.833-0.264,2.889-0.264c0.237,0,0.476,0,0.704,0c0.241,0,0.49,0.01,0.743,0.021
c0.079-0.729,0.112-1.395,0.112-1.966c0-1.353-0.195-2.303-0.608-2.843c-0.396-0.549-1.126-0.823-2.192-0.823
c-0.656,0-1.385,0.106-2.149,0.306c-0.782,0.191-1.433,0.456-1.939,0.772L147.495,226.189z M155.166,234.832
c-0.237-0.031-0.464-0.053-0.701-0.062c-0.238-0.01-0.466-0.021-0.709-0.021c-0.565,0-1.12,0.053-1.659,0.148
c-0.543,0.094-1.02,0.264-1.447,0.507c-0.417,0.242-0.756,0.549-0.999,0.951c-0.248,0.412-0.369,0.93-0.369,1.543
c0,0.94,0.228,1.691,0.681,2.219c0.461,0.508,1.057,0.783,1.78,0.783c0.994,0,1.76-0.245,2.289-0.721
c0.549-0.474,0.924-0.992,1.135-1.562V234.832z"/>
<path fill="#959595" d="M171.544,242.07c-0.591,0.444-1.272,0.793-2.027,1.004c-0.767,0.213-1.569,0.318-2.41,0.318
c-1.13,0-2.097-0.223-2.879-0.655c-0.787-0.435-1.422-1.068-1.912-1.891c-0.492-0.826-0.851-1.819-1.073-2.96
c-0.228-1.164-0.343-2.452-0.343-3.847c0-3.044,0.543-5.357,1.632-6.963c1.078-1.584,2.632-2.398,4.659-2.398
c0.931,0,1.729,0.086,2.383,0.253c0.667,0.17,1.247,0.391,1.723,0.646l-0.718,2.249c-0.951-0.547-1.986-0.813-3.102-0.813
c-1.284,0-2.261,0.561-2.912,1.692c-0.654,1.13-0.987,2.916-0.987,5.335c0,0.984,0.079,1.892,0.217,2.749
c0.148,0.865,0.375,1.595,0.718,2.229c0.328,0.644,0.757,1.141,1.28,1.5c0.533,0.382,1.183,0.56,1.965,0.56
c0.623,0,1.2-0.105,1.728-0.317c0.544-0.211,0.978-0.476,1.314-0.749L171.544,242.07z"/>
<path fill="#959595" d="M178.17,234.938h-1.357v8.03h-2.571v-24.989h2.571v15.217l1.173-0.519l4.179-7.556h2.963l-4.215,7.207
l-1.241,1.141l1.463,1.385l4.603,8.114h-3.076L178.17,234.938z"/>
</g>
<g>
<path fill="#959595" d="M187.146,221.308c0-0.528,0.085-0.993,0.26-1.404c0.174-0.392,0.406-0.729,0.707-1.015
c0.296-0.286,0.64-0.488,1.042-0.634c0.384-0.14,0.808-0.212,1.245-0.212c0.455,0,0.889,0.072,1.29,0.212
c0.392,0.146,0.74,0.348,1.031,0.634c0.293,0.285,0.522,0.623,0.701,1.015c0.164,0.411,0.254,0.876,0.254,1.404
c0,0.519-0.09,1.004-0.264,1.405c-0.181,0.402-0.417,0.749-0.715,1.025c-0.295,0.286-0.633,0.485-1.029,0.634
c-0.396,0.138-0.819,0.212-1.269,0.212c-0.454,0-0.892-0.074-1.277-0.212c-0.396-0.148-0.734-0.348-1.025-0.634
c-0.292-0.276-0.534-0.623-0.698-1.025C187.231,222.312,187.146,221.826,187.146,221.308z M187.929,221.308
c0,0.422,0.068,0.804,0.195,1.109c0.138,0.316,0.318,0.593,0.534,0.803c0.231,0.212,0.491,0.37,0.786,0.486
c0.297,0.096,0.618,0.147,0.956,0.147c0.36,0,0.692-0.052,0.994-0.147c0.301-0.116,0.561-0.274,0.781-0.476
c0.217-0.211,0.397-0.485,0.518-0.793c0.134-0.316,0.19-0.696,0.19-1.13c0-0.423-0.062-0.783-0.195-1.109
c-0.126-0.308-0.312-0.571-0.533-0.781c-0.223-0.222-0.486-0.38-0.794-0.488c-0.3-0.094-0.617-0.146-0.961-0.146
c-0.354,0-0.686,0.052-0.997,0.146c-0.296,0.108-0.556,0.267-0.777,0.488c-0.222,0.21-0.396,0.474-0.513,0.781
C187.992,220.524,187.929,220.885,187.929,221.308z M189.132,219.712c0.128-0.031,0.318-0.062,0.562-0.095
c0.242-0.021,0.46-0.032,0.682-0.032c0.332,0,0.629,0.074,0.881,0.213c0.245,0.146,0.371,0.4,0.371,0.749
c0,0.264-0.085,0.466-0.243,0.603c-0.174,0.148-0.38,0.223-0.634,0.242l0.348,0.158l0.904,1.364h-0.755l-0.872-1.289l-0.604-0.19
v1.479h-0.64V219.712z M190.231,220.146c-0.09,0-0.169,0-0.253,0c-0.09,0-0.159,0.032-0.207,0.053v0.877h0.429
c0.497,0,0.745-0.168,0.745-0.497C190.945,220.283,190.702,220.146,190.231,220.146z"/>
</g>
</g>
<g>
<path fill="#D12F27" d="M46.009,155.759c1.855,0.3,2.934,1.379,3.235,3.236v3.912c-0.302,2.006-1.405,3.06-3.311,3.158H28.026
c-1.003,0.1-1.556,0.655-1.655,1.656v9.706c0.1,1.003,0.652,1.529,1.655,1.58h11.362c1.854,0.25,2.883,1.277,3.083,3.083v4.063
c-0.2,1.957-1.254,2.961-3.159,3.009H28.026c-1.003,0.149-1.556,0.73-1.655,1.731v8.353v9.778
c-0.15,1.909-1.179,2.962-3.085,3.161H19.45c-1.806-0.099-2.811-1.026-3.01-2.784v-10.155v-0.979v-35.813v-3.537
c0.049-1.754,0.928-2.808,2.633-3.159H46.009z"/>
<path fill="#D12F27" d="M90.898,155.832c1.654,0.303,2.681,1.282,3.083,2.937v37.996c-0.149,2.759-0.903,5.341-2.257,7.748
c-3.362,5.419-8.126,8.126-14.296,8.126c-6.168,0-10.937-2.707-14.294-8.126c-1.405-2.407-2.106-4.989-2.106-7.748v-37.996
c0.25-1.704,1.253-2.684,3.01-2.937h3.91c1.907,0.303,2.937,1.382,3.086,3.236c0,12.592,0.024,25.156,0.075,37.696
c0.151,3.86,2.206,5.865,6.169,6.016c4.113,0,6.294-1.979,6.547-5.942c0-12.539,0.023-25.129,0.074-37.77
c0.151-1.854,1.179-2.934,3.085-3.236H90.898z"/>
<path fill="#D12F27" d="M118.665,166.065c-0.953,0.15-1.479,0.677-1.58,1.58v10.157c0.15,0.903,0.677,1.405,1.58,1.505h11.359
c1.908,0.15,2.961,1.183,3.161,3.087v3.911c-0.2,1.956-1.279,2.985-3.236,3.084h-11.284c-0.903,0.101-1.43,0.602-1.58,1.505v9.631
c0.101,1.004,0.627,1.53,1.58,1.58h18.133c1.805,0.252,2.884,1.305,3.234,3.158v3.914c-0.351,1.907-1.479,2.91-3.384,3.009
h-26.486c-1.856-0.049-2.859-1.026-3.009-2.934v-3.536v-43.262v-3.46c0.049-1.755,0.953-2.834,2.708-3.236h26.937
c1.805,0.352,2.884,1.43,3.234,3.236v3.986c-0.351,1.907-1.479,2.932-3.384,3.084H118.665z"/>
<path fill="#D12F27" d="M182.521,212.187h-26.934c-1.757-0.249-2.71-1.278-2.86-3.085v-3.385v-46.948
c0.25-1.755,1.279-2.734,3.084-2.937h3.913c1.955,0.202,3.009,1.256,3.16,3.163V169v31.449c0.1,0.955,0.627,1.482,1.579,1.582
h17.983c1.854,0.202,2.934,1.253,3.233,3.158v3.912C185.38,211.01,184.327,212.035,182.521,212.187z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,93 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, 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="88px" height="176px" viewBox="0 0 88 176" enable-background="new 0 0 88 176" xml:space="preserve">
<circle fill="#E0E0E0" cx="66" cy="66" r="22"/>
<circle fill="#E0E0E0" cx="66" cy="154" r="22"/>
<circle fill="#E0E0E0" cx="66" cy="110" r="22"/>
<circle fill="#E0E0E0" cx="66" cy="22" r="22"/>
<g>
<path fill="#5988A5" d="M22,5c9.374,0,17,7.626,17,17s-7.626,17-17,17S5,31.374,5,22S12.626,5,22,5 M22,2C10.954,2,2,10.954,2,22
s8.954,20,20,20c11.045,0,20-8.954,20-20S33.045,2,22,2L22,2z"/>
</g>
<g>
<g>
<path fill="#5988A5" d="M22,49c9.374,0,17,7.626,17,17s-7.626,17-17,17S5,75.374,5,66S12.626,49,22,49 M22,46
C10.954,46,2,54.954,2,66s8.954,20,20,20c11.045,0,20-8.954,20-20S33.045,46,22,46L22,46z"/>
</g>
</g>
<path fill="#5988A5" d="M55.241,163.967c0.008,0,0.017-0.002,0.022-0.002l0.016-0.023C55.27,163.948,55.256,163.957,55.241,163.967z
"/>
<path d="M55.18,164.008c0.02-0.015,0.041-0.027,0.062-0.041c-0.014,0-0.024,0.002-0.037,0.002L55.18,164.008z"/>
<g>
<g>
<g>
<path fill="#5988A5" d="M22,137c9.374,0,17,7.626,17,17s-7.626,17-17,17s-17-7.626-17-17S12.626,137,22,137 M22,134
c-11.046,0-20,8.954-20,20s8.954,20,20,20c11.045,0,20-8.954,20-20S33.045,134,22,134L22,134z"/>
</g>
</g>
<g>
<path fill="#5988A5" d="M22,160.215c5.128,0,9.418,0.631,10.5,1.475l-3.663-5.797c0.011-0.136,0.015-0.271,0.015-0.406v-5.68
c0-3.224-2.416-5.928-5.582-6.508c0-0.023,0.004-0.045,0.004-0.07C23.271,142.551,22.702,142,22,142s-1.272,0.551-1.272,1.229
c0,0.024,0.003,0.047,0.003,0.07c-3.167,0.579-5.582,3.284-5.582,6.508v5.678c0,0.137,0.005,0.271,0.015,0.406l-3.664,5.797
C12.582,160.848,16.871,160.215,22,160.215z"/>
<path fill="#5988A5" d="M19.065,161.232C19.106,162.768,20.403,164,22,164c1.598,0,2.895-1.232,2.936-2.768
c-0.934-0.045-1.916-0.072-2.936-0.072C20.982,161.16,19.999,161.188,19.065,161.232z"/>
</g>
</g>
<g>
<g>
<path fill="#5988A5" d="M22,93c9.374,0,17,7.626,17,17s-7.626,17-17,17s-17-7.626-17-17S12.626,93,22,93 M22,90
c-11.046,0-20,8.954-20,20s8.954,20,20,20c11.045,0,20-8.954,20-20S33.045,90,22,90L22,90z"/>
</g>
<path fill="#5988A5" d="M25.105,114.211c0-1.396,1.131-0.941,1.627-3.498c0.205-1.061,1.205-0.018,1.396-2.438
c0-0.965-0.544-1.207-0.544-1.207s0.274-1.426,0.383-2.524c0.136-1.368-0.827-4.905-5.968-4.905c-5.143,0-6.104,3.537-5.971,4.906
c0.109,1.1,0.386,2.525,0.386,2.525s-0.544,0.24-0.544,1.205c0.189,2.42,1.189,1.379,1.395,2.438
c0.496,2.559,1.627,2.102,1.627,3.498c0,2.325-1.183,3.412-4.887,4.698c-0.729,0.254-1.386,0.507-2.006,0.76
c2.561,2.449,6.098,3.97,10,3.97s7.439-1.521,9.999-3.97c-0.62-0.252-1.276-0.506-2.006-0.76
C26.29,117.623,25.105,116.536,25.105,114.211z"/>
</g>
<path fill="#5988A5" d="M66,5c9.374,0,17,7.626,17,17s-7.626,17-17,17s-17-7.626-17-17S56.626,5,66,5 M66,2
c-11.046,0-20,8.954-20,20s8.954,20,20,20c11.045,0,20-8.954,20-20S77.045,2,66,2L66,2z"/>
<g>
<g>
<path fill="#5988A5" d="M66,49c9.374,0,17,7.626,17,17s-7.626,17-17,17s-17-7.626-17-17S56.626,49,66,49 M66,46
c-11.046,0-20,8.954-20,20s8.954,20,20,20c11.045,0,20-8.954,20-20S77.045,46,66,46L66,46z"/>
</g>
</g>
<g>
<g>
<g>
<path fill="#5988A5" d="M66,137c9.374,0,17,7.626,17,17s-7.626,17-17,17s-17-7.626-17-17S56.626,137,66,137 M66,134
c-11.046,0-20,8.954-20,20s8.954,20,20,20c11.045,0,20-8.954,20-20S77.045,134,66,134L66,134z"/>
</g>
</g>
<g>
<g>
<path fill="#5988A5" d="M66,160.871c5.594,0,10.273,0.688,11.454,1.607l-3.996-6.324c0.013-0.146,0.017-0.295,0.017-0.442v-6.194
c0-3.518-2.636-6.468-6.09-7.101c0-0.024,0.006-0.049,0.006-0.077C67.387,141.602,66.766,141,66,141s-1.387,0.602-1.387,1.34
c0,0.027,0.002,0.053,0.002,0.077c-3.454,0.632-6.09,3.583-6.09,7.101v6.192c0,0.147,0.007,0.297,0.018,0.442l-3.997,6.324
C55.727,161.562,60.404,160.871,66,160.871z"/>
</g>
<g>
<path fill="#5988A5" d="M62.798,161.98C62.843,163.654,64.257,165,66,165s3.157-1.346,3.202-3.02
c-1.019-0.049-2.091-0.078-3.202-0.078C64.891,161.902,63.816,161.932,62.798,161.98z"/>
</g>
</g>
</g>
<g>
<g>
<path fill="#5988A5" d="M66,93c9.374,0,17,7.626,17,17s-7.626,17-17,17s-17-7.626-17-17S56.626,93,66,93 M66,90
c-11.046,0-20,8.954-20,20s8.954,20,20,20c11.045,0,20-8.954,20-20S77.045,90,66,90L66,90z"/>
</g>
<path fill="#5988A5" d="M69.363,114.426c0-1.514,1.227-1.021,1.764-3.79c0.223-1.149,1.307-0.019,1.514-2.641
c0-1.045-0.59-1.308-0.59-1.308s0.297-1.545,0.414-2.734c0.146-1.482-0.896-5.314-6.465-5.314c-5.57,0-6.611,3.832-6.468,5.315
c0.118,1.19,0.417,2.735,0.417,2.735s-0.59,0.261-0.59,1.306c0.205,2.622,1.289,1.494,1.512,2.642
c0.537,2.771,1.763,2.275,1.763,3.79c0,2.519-1.28,3.696-5.294,5.089c-0.789,0.275-1.501,0.551-2.173,0.823
c2.772,2.653,6.604,4.3,10.833,4.3s8.061-1.646,10.832-4.3c-0.672-0.272-1.383-0.548-2.173-0.823
C70.646,118.122,69.363,116.943,69.363,114.426z"/>
</g>
<rect x="8" y="65" fill="#5988A5" width="28" height="2"/>
<rect x="52" y="65" fill="#5988A5" width="28" height="2"/>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -1,901 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.1.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="80px" height="920px" viewBox="0 0 80 920" enable-background="new 0 0 80 920" xml:space="preserve">
<g>
<circle fill="#48A565" cx="20.5" cy="819.5" r="7.5"/>
</g>
<polygon fill="#FFFFFF" points="65,700 65,705 57,705 57,695 63,695 63,694 56,694 56,706 66,706 66,700 "/>
<path fill="#FFFFFF" d="M66.445,100.045c0.027-0.179,0.055-0.357,0.055-0.545c0-1.934-1.566-3.5-3.5-3.5
c-0.718,0-1.385,0.218-1.939,0.589C60.34,95.063,58.799,94,57,94c-2.484,0-4.5,2.015-4.5,4.5c0,0.614,0.125,1.199,0.348,1.732
C51.766,100.686,51,101.757,51,103c0,1.65,1.35,3,3,3h12c1.65,0,3-1.35,3-3C69,101.502,67.883,100.264,66.445,100.045"/>
<path fill="#8C8C8C" d="M28.577,20.979h2.244C30.938,20.337,31,19.674,31,19c0-0.675-0.062-1.338-0.18-1.979h-2.244
c-0.223-0.966-0.604-1.87-1.113-2.685l1.589-1.587c-0.757-1.094-1.706-2.043-2.801-2.801l-1.587,1.588
c-0.814-0.511-1.719-0.893-2.686-1.113V8.177C21.338,8.061,20.676,8,20,8s-1.338,0.06-1.98,0.177v2.247
c-0.965,0.223-1.869,0.604-2.684,1.113L13.75,9.949c-1.094,0.757-2.043,1.707-2.801,2.801l1.588,1.587
c-0.51,0.815-0.891,1.718-1.113,2.684H9.179C9.062,17.663,9,18.325,9,19c0,0.674,0.061,1.338,0.178,1.978h2.246
c0.222,0.968,0.603,1.869,1.113,2.688l-1.588,1.587c0.757,1.096,1.707,2.044,2.801,2.801l1.587-1.589
c0.815,0.513,1.719,0.895,2.684,1.113v2.242C18.663,29.937,19.325,30,20,30s1.338-0.063,1.979-0.18v-2.244
c0.967-0.224,1.869-0.605,2.687-1.113l1.587,1.588c1.096-0.756,2.044-1.706,2.801-2.8l-1.589-1.587
C27.975,22.851,28.354,21.944,28.577,20.979 M20,24.278c-2.916,0-5.28-2.362-5.28-5.278s2.364-5.281,5.28-5.281
s5.28,2.366,5.28,5.281C25.28,21.917,22.917,24.278,20,24.278"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_1_" x="9" y="8" width="22" height="17.817"/>
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_2_)" d="M12.175,24.024l-1.226,1.227c0.136,0.196,0.284,0.381,0.432,0.566l1.156-1.153
C12.409,24.458,12.288,24.245,12.175,24.024"/>
<path clip-path="url(#SVGID_2_)" d="M21.979,11.423c0.967,0.222,1.871,0.604,2.687,1.113l1.587-1.588
c0.898,0.622,1.691,1.378,2.368,2.231l0.433-0.432c-0.757-1.094-1.705-2.043-2.801-2.801l-1.587,1.588
c-0.813-0.51-1.72-0.891-2.687-1.113V11.423z"/>
<path clip-path="url(#SVGID_2_)" d="M25.28,20c0-0.171-0.034-0.333-0.051-0.5c-0.256,2.678-2.483,4.778-5.229,4.778
c-2.745,0-4.974-2.103-5.229-4.778c-0.016,0.167-0.05,0.329-0.05,0.5c0,2.916,2.364,5.278,5.28,5.278S25.28,22.916,25.28,20"/>
<path clip-path="url(#SVGID_2_)" d="M27.826,14.975l-0.362,0.361c0.51,0.816,0.891,1.72,1.113,2.686h2.244
c0.088,0.48,0.134,0.977,0.156,1.478C30.985,19.333,31,19.167,31,19c0-0.675-0.062-1.337-0.18-1.978h-2.244
C28.411,16.3,28.155,15.615,27.826,14.975"/>
<path clip-path="url(#SVGID_2_)" d="M27.463,24.664l1.156,1.153c0.148-0.188,0.297-0.37,0.433-0.566l-1.226-1.227
C27.714,24.244,27.593,24.457,27.463,24.664"/>
<path clip-path="url(#SVGID_2_)" d="M9.179,18.021h2.245c0.222-0.966,0.603-1.869,1.113-2.685l-0.363-0.362
c-0.33,0.643-0.584,1.326-0.75,2.047H9.179C9.062,17.664,9,18.326,9,19c0,0.167,0.015,0.333,0.022,0.5
C9.045,18.999,9.09,18.501,9.179,18.021"/>
<path clip-path="url(#SVGID_2_)" d="M21.979,9.178v-1C21.338,8.061,20.676,8,20,8s-1.338,0.061-1.98,0.178v1
C18.663,9.061,19.325,9,20,9S21.338,9.061,21.979,9.178"/>
<path clip-path="url(#SVGID_2_)" d="M13.75,10.949l1.587,1.588c0.815-0.51,1.719-0.891,2.684-1.113v-1
c-0.965,0.223-1.869,0.604-2.684,1.113L13.75,9.949c-1.094,0.757-2.043,1.707-2.801,2.801l0.433,0.431
C12.059,12.328,12.852,11.57,13.75,10.949"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_3_" x="9" y="13.182" width="22" height="17.818"/>
</defs>
<clipPath id="SVGID_4_">
<use xlink:href="#SVGID_3_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_4_)" fill="#FFFFFF" d="M27.826,14.975l1.227-1.226c-0.136-0.196-0.284-0.381-0.433-0.567
l-1.156,1.154C27.593,14.542,27.713,14.756,27.826,14.975"/>
<path clip-path="url(#SVGID_4_)" fill="#FFFFFF" d="M12.537,14.337l-1.155-1.155c-0.148,0.188-0.297,0.373-0.433,0.568
l1.225,1.225C12.287,14.757,12.408,14.544,12.537,14.337"/>
<path clip-path="url(#SVGID_4_)" fill="#FFFFFF" d="M12.175,24.024l0.362-0.36c-0.51-0.816-0.891-1.72-1.113-2.688H9.179
C9.091,20.499,9.046,20,9.023,19.499C9.016,19.667,9,19.831,9,20c0,0.675,0.061,1.337,0.178,1.978h2.246
C11.59,22.7,11.844,23.385,12.175,24.024"/>
<path clip-path="url(#SVGID_4_)" fill="#FFFFFF" d="M20,13.72c-2.916,0-5.28,2.364-5.28,5.28c0,0.171,0.035,0.333,0.05,0.5
c0.256-2.677,2.485-4.78,5.229-4.78c2.745,0,4.974,2.104,5.229,4.78c0.017-0.167,0.051-0.329,0.051-0.5
C25.28,16.085,22.917,13.72,20,13.72"/>
<path clip-path="url(#SVGID_4_)" fill="#FFFFFF" d="M26.251,28.052l-1.587-1.589c-0.816,0.51-1.719,0.891-2.686,1.113v1
c0.967-0.223,1.869-0.604,2.686-1.113l1.587,1.589c1.095-0.757,2.044-1.706,2.801-2.801l-0.433-0.433
C27.944,26.674,27.149,27.432,26.251,28.052"/>
<path clip-path="url(#SVGID_4_)" fill="#FFFFFF" d="M30.821,20.979h-2.244c-0.223,0.968-0.602,1.871-1.113,2.688l0.363,0.362
c0.33-0.642,0.584-1.326,0.75-2.05h2.244C30.938,21.336,31,20.675,31,20c0-0.168-0.016-0.333-0.021-0.5
C30.955,20.001,30.909,20.499,30.821,20.979"/>
<path clip-path="url(#SVGID_4_)" fill="#FFFFFF" d="M18.021,27.576c-0.965-0.221-1.869-0.603-2.684-1.113l-1.587,1.589
c-0.898-0.621-1.692-1.378-2.369-2.23l-0.432,0.432c0.757,1.096,1.707,2.044,2.801,2.801l1.587-1.589
c0.815,0.514,1.719,0.895,2.684,1.113V27.576z"/>
<path clip-path="url(#SVGID_4_)" fill="#FFFFFF" d="M18.021,29.82v1C18.663,30.938,19.325,31,20,31s1.338-0.063,1.979-0.18v-1
C21.338,29.938,20.676,30,20,30S18.663,29.938,18.021,29.82"/>
</g>
</g>
<path fill="#5988A5" d="M68.576,20.979h2.244C70.938,20.337,71,19.674,71,19c0-0.675-0.062-1.338-0.18-1.979h-2.244
c-0.223-0.966-0.604-1.87-1.113-2.685l1.589-1.587c-0.757-1.094-1.706-2.043-2.801-2.801l-1.587,1.588
c-0.814-0.511-1.719-0.893-2.686-1.113V8.177C61.337,8.061,60.675,8,59.999,8s-1.338,0.06-1.979,0.177v2.247
c-0.965,0.223-1.869,0.604-2.685,1.113l-1.587-1.588c-1.096,0.757-2.043,1.707-2.803,2.801l1.59,1.587
c-0.512,0.815-0.893,1.718-1.113,2.684H49.18c-0.118,0.642-0.181,1.304-0.181,1.979c0,0.674,0.062,1.338,0.181,1.978h2.243
c0.224,0.968,0.604,1.869,1.113,2.688l-1.588,1.587c0.757,1.096,1.706,2.044,2.801,2.801l1.587-1.589
c0.814,0.513,1.721,0.895,2.686,1.113v2.242C58.662,29.937,59.324,30,60,30s1.338-0.063,1.979-0.18v-2.244
c0.967-0.224,1.869-0.605,2.688-1.113l1.587,1.588c1.098-0.756,2.044-1.706,2.803-2.8l-1.591-1.587
C67.975,22.851,68.354,21.944,68.576,20.979 M60,24.278c-2.916,0-5.279-2.362-5.279-5.278s2.363-5.281,5.279-5.281
s5.279,2.366,5.279,5.281C65.279,21.917,62.916,24.278,60,24.278"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_5_" x="49" y="8" width="21.999" height="17.817"/>
</defs>
<clipPath id="SVGID_6_">
<use xlink:href="#SVGID_5_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_6_)" d="M52.175,24.024l-1.226,1.227c0.136,0.196,0.283,0.381,0.432,0.566l1.156-1.153
C52.408,24.458,52.287,24.245,52.175,24.024"/>
<path clip-path="url(#SVGID_6_)" d="M61.979,11.423c0.967,0.222,1.871,0.604,2.688,1.113l1.588-1.588
c0.896,0.622,1.689,1.378,2.368,2.231l0.435-0.432c-0.759-1.094-1.705-2.043-2.803-2.801l-1.588,1.588
c-0.811-0.51-1.721-0.891-2.688-1.113V11.423z"/>
<path clip-path="url(#SVGID_6_)" d="M65.279,20c0-0.171-0.034-0.333-0.051-0.5c-0.256,2.678-2.483,4.778-5.229,4.778
c-2.745,0-4.974-2.103-5.229-4.778c-0.016,0.167-0.049,0.329-0.049,0.5c0,2.916,2.363,5.278,5.279,5.278S65.279,22.916,65.279,20"
/>
<path clip-path="url(#SVGID_6_)" d="M67.825,14.975l-0.362,0.361c0.51,0.816,0.891,1.72,1.113,2.686h2.244
c0.088,0.48,0.134,0.977,0.156,1.478c0.008-0.167,0.022-0.332,0.022-0.5c0-0.675-0.062-1.337-0.181-1.978h-2.243
C68.41,16.3,68.154,15.615,67.825,14.975"/>
<path clip-path="url(#SVGID_6_)" d="M67.463,24.664l1.156,1.153c0.148-0.188,0.297-0.37,0.433-0.566l-1.226-1.227
C67.714,24.244,67.593,24.457,67.463,24.664"/>
<path clip-path="url(#SVGID_6_)" d="M49.18,18.021h2.243c0.224-0.966,0.604-1.869,1.113-2.685l-0.363-0.362
c-0.33,0.643-0.584,1.326-0.75,2.047H49.18C49.062,17.664,49,18.326,49,19c0,0.167,0.016,0.333,0.021,0.5
C49.045,18.999,49.09,18.501,49.18,18.021"/>
<path clip-path="url(#SVGID_6_)" d="M61.979,9.178v-1C61.338,8.061,60.676,8,59.999,8c-0.675,0-1.337,0.061-1.979,0.178v1
C58.663,9.061,59.325,9,59.999,9C60.675,9,61.338,9.061,61.979,9.178"/>
<path clip-path="url(#SVGID_6_)" d="M53.749,10.949l1.587,1.588c0.814-0.51,1.719-0.891,2.684-1.113v-1
c-0.965,0.223-1.869,0.604-2.684,1.113l-1.587-1.588c-1.095,0.757-2.043,1.707-2.801,2.801l0.433,0.431
C52.059,12.328,52.852,11.57,53.749,10.949"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_7_" x="49.001" y="13.182" width="21.999" height="17.818"/>
</defs>
<clipPath id="SVGID_8_">
<use xlink:href="#SVGID_7_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_8_)" fill="#FFFFFF" d="M67.825,14.975l1.227-1.226c-0.136-0.196-0.284-0.381-0.433-0.567
l-1.156,1.154C67.593,14.542,67.713,14.756,67.825,14.975"/>
<path clip-path="url(#SVGID_8_)" fill="#FFFFFF" d="M52.536,14.337l-1.155-1.155c-0.146,0.188-0.297,0.373-0.433,0.568
l1.225,1.225C52.286,14.757,52.407,14.544,52.536,14.337"/>
<path clip-path="url(#SVGID_8_)" fill="#FFFFFF" d="M52.175,24.024l0.362-0.36c-0.51-0.816-0.891-1.72-1.113-2.688H49.18
c-0.09-0.478-0.135-0.977-0.156-1.478c-0.008,0.168-0.022,0.332-0.022,0.501c0,0.675,0.062,1.337,0.181,1.978h2.243
C51.59,22.7,51.844,23.385,52.175,24.024"/>
<path clip-path="url(#SVGID_8_)" fill="#FFFFFF" d="M60,13.72c-2.916,0-5.279,2.364-5.279,5.28c0,0.171,0.034,0.333,0.049,0.5
c0.256-2.677,2.485-4.78,5.229-4.78c2.745,0,4.974,2.104,5.229,4.78c0.017-0.167,0.051-0.329,0.051-0.5
C65.279,16.085,62.916,13.72,60,13.72"/>
<path clip-path="url(#SVGID_8_)" fill="#FFFFFF" d="M66.251,28.052l-1.587-1.589c-0.816,0.51-1.719,0.891-2.686,1.113v1
c0.967-0.223,1.869-0.604,2.686-1.113l1.587,1.589c1.095-0.757,2.044-1.706,2.802-2.801l-0.434-0.433
C67.943,26.674,67.148,27.432,66.251,28.052"/>
<path clip-path="url(#SVGID_8_)" fill="#FFFFFF" d="M70.82,20.979h-2.244c-0.223,0.968-0.602,1.871-1.113,2.688l0.363,0.362
c0.33-0.642,0.584-1.326,0.75-2.05h2.244C70.938,21.336,71,20.675,71,20c0-0.168-0.016-0.333-0.021-0.5
C70.954,20.001,70.908,20.499,70.82,20.979"/>
<path clip-path="url(#SVGID_8_)" fill="#FFFFFF" d="M58.021,27.576c-0.965-0.221-1.869-0.603-2.688-1.113l-1.588,1.589
c-0.896-0.621-1.688-1.378-2.369-2.23l-0.434,0.432c0.759,1.096,1.705,2.044,2.803,2.801l1.588-1.589
c0.811,0.514,1.723,0.895,2.688,1.113V27.576z"/>
<path clip-path="url(#SVGID_8_)" fill="#FFFFFF" d="M58.021,29.82v1c0.641,0.117,1.303,0.18,1.979,0.18
c0.675,0,1.337-0.063,1.978-0.18v-1C61.338,29.938,60.676,30,60.001,30C59.324,30,58.662,29.938,58.021,29.82"/>
</g>
</g>
<path fill="#E7E7E8" d="M19.73,50.818c-4.561,0-8.271,3.67-8.271,8.182H10l2.676,3.85L15.352,59h-1.545
c0-3.231,2.657-5.86,5.923-5.86s5.924,2.629,5.924,5.86s-2.658,5.86-5.924,5.86c-1.971,0-3.769-0.952-4.866-2.532l-1.394,2.004
c1.559,1.802,3.815,2.85,6.26,2.85c4.56,0,8.27-3.67,8.27-8.182S24.29,50.818,19.73,50.818"/>
<path fill="#E7E7E8" d="M20.946,58.501v-3.66c-0.387-0.11-0.793-0.174-1.216-0.174c-0.423,0-0.83,0.063-1.217,0.174v2.415V59.3
v0.199l0.143,0.141l1.459,1.444l1.727,1.708c0.723-0.395,1.32-0.986,1.72-1.701L20.946,58.501z"/>
<path fill="#5988A5" d="M59.73,50.818c-4.562,0-8.271,3.67-8.271,8.182h-1.459l2.675,3.85L55.352,59h-1.545
c0-3.231,2.657-5.86,5.924-5.86c3.271,0,5.924,2.629,5.924,5.86s-2.652,5.86-5.924,5.86c-1.972,0-3.77-0.952-4.867-2.532
l-1.393,2.004c1.559,1.802,3.814,2.85,6.26,2.85c4.562,0,8.271-3.67,8.271-8.182S64.29,50.818,59.73,50.818"/>
<path fill="#5988A5" d="M60.945,58.501v-3.66c-0.387-0.11-0.793-0.174-1.215-0.174c-0.424,0-0.83,0.063-1.217,0.174v2.415V59.3
v0.199l0.143,0.141l1.459,1.444l1.728,1.708c0.724-0.395,1.32-0.986,1.72-1.701L60.945,58.501z"/>
<path fill="#C17417" d="M66.76,145.128l-6.232-11.356c-0.566-1.028-1.489-1.028-2.057,0l-6.23,11.356
c-0.567,1.03-0.097,1.873,1.044,1.873h12.433C66.854,147.001,67.326,146.158,66.76,145.128 M59.499,145.501c-0.549,0-1-0.45-1-1
s0.451-1.001,1-1.001c0.551,0,1,0.451,1,1.001S60.05,145.501,59.499,145.501 M60.604,141.504c-0.049,0.548-0.539,0.996-1.088,0.996
c-0.551,0-1.043-0.448-1.095-0.996l-0.327-3.508C58.041,137.448,58.45,137,58.999,137h1c0.551,0,0.962,0.448,0.913,0.996
L60.604,141.504z"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_9_" x="4" y="186" width="32" height="8"/>
</defs>
<clipPath id="SVGID_10_">
<use xlink:href="#SVGID_9_" overflow="visible"/>
</clipPath>
<rect x="4" y="186" clip-path="url(#SVGID_10_)" fill="#FFFFFF" width="6" height="1"/>
<rect x="10" y="190" clip-path="url(#SVGID_10_)" fill="#FFFFFF" width="3" height="1"/>
<rect x="30" y="186" clip-path="url(#SVGID_10_)" fill="#FFFFFF" width="6" height="1"/>
<rect x="27" y="190" clip-path="url(#SVGID_10_)" fill="#FFFFFF" width="3" height="1"/>
<rect x="13" y="193" clip-path="url(#SVGID_10_)" fill="#FFFFFF" width="14" height="1"/>
</g>
</g>
<polygon fill="#297434" points="30,167 30,171 28,171 28,167 27,167 27,171 25,171 25,167 24,167 24,171 22,171 22,167 21,167
21,171 19,171 19,167 18,167 18,171 16,171 16,167 15,167 15,171 13,171 13,167 12,167 12,171 10,171 10,167 4,167 4,186 10,186
10,190 13,190 13,193 27,193 27,190 30,190 30,186 36,186 36,167 "/>
<g opacity="0.15">
<g>
<defs>
<rect id="SVGID_11_" x="4" y="167" width="32" height="5"/>
</defs>
<clipPath id="SVGID_12_">
<use xlink:href="#SVGID_11_" overflow="visible"/>
</clipPath>
<rect x="22" y="171" clip-path="url(#SVGID_12_)" width="2" height="1"/>
<rect x="19" y="171" clip-path="url(#SVGID_12_)" width="2" height="1"/>
<rect x="24" y="167" clip-path="url(#SVGID_12_)" width="1" height="1"/>
<rect x="18" y="167" clip-path="url(#SVGID_12_)" width="1" height="1"/>
<rect x="28" y="171" clip-path="url(#SVGID_12_)" width="2" height="1"/>
<rect x="27" y="167" clip-path="url(#SVGID_12_)" width="1" height="1"/>
<rect x="25" y="171" clip-path="url(#SVGID_12_)" width="2" height="1"/>
<rect x="21" y="167" clip-path="url(#SVGID_12_)" width="1" height="1"/>
<rect x="4" y="167" clip-path="url(#SVGID_12_)" width="6" height="1"/>
<rect x="16" y="171" clip-path="url(#SVGID_12_)" width="2" height="1"/>
<rect x="30" y="167" clip-path="url(#SVGID_12_)" width="6" height="1"/>
<rect x="10" y="171" clip-path="url(#SVGID_12_)" width="2" height="1"/>
<rect x="12" y="167" clip-path="url(#SVGID_12_)" width="1" height="1"/>
<rect x="15" y="167" clip-path="url(#SVGID_12_)" width="1" height="1"/>
<rect x="13" y="171" clip-path="url(#SVGID_12_)" width="2" height="1"/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_13_" x="44" y="186" width="32" height="8"/>
</defs>
<clipPath id="SVGID_14_">
<use xlink:href="#SVGID_13_" overflow="visible"/>
</clipPath>
<rect x="44" y="186" clip-path="url(#SVGID_14_)" fill="#FFFFFF" width="6" height="1"/>
<rect x="50" y="190" clip-path="url(#SVGID_14_)" fill="#FFFFFF" width="3" height="1"/>
<rect x="70" y="186" clip-path="url(#SVGID_14_)" fill="#FFFFFF" width="6" height="1"/>
<rect x="67" y="190" clip-path="url(#SVGID_14_)" fill="#FFFFFF" width="3" height="1"/>
<rect x="53" y="193" clip-path="url(#SVGID_14_)" fill="#FFFFFF" width="14" height="1"/>
</g>
</g>
<polygon fill="#6D6E71" points="70,167 70,171 68,171 68,167 67,167 67,171 65,171 65,167 64,167 64,171 62,171 62,167 61,167
61,171 59,171 59,167 58,167 58,171 56,171 56,167 55,167 55,171 53,171 53,167 52,167 52,171 50,171 50,167 44,167 44,186 50,186
50,190 53,190 53,193 67,193 67,190 70,190 70,186 76,186 76,167 "/>
<g opacity="0.2">
<g>
<defs>
<rect id="SVGID_15_" x="44" y="167" width="32" height="5"/>
</defs>
<clipPath id="SVGID_16_">
<use xlink:href="#SVGID_15_" overflow="visible"/>
</clipPath>
<rect x="62" y="171" clip-path="url(#SVGID_16_)" width="2" height="1"/>
<rect x="59" y="171" clip-path="url(#SVGID_16_)" width="2" height="1"/>
<rect x="64" y="167" clip-path="url(#SVGID_16_)" width="1" height="1"/>
<rect x="58" y="167" clip-path="url(#SVGID_16_)" width="1" height="1"/>
<rect x="68" y="171" clip-path="url(#SVGID_16_)" width="2" height="1"/>
<rect x="67" y="167" clip-path="url(#SVGID_16_)" width="1" height="1"/>
<rect x="65" y="171" clip-path="url(#SVGID_16_)" width="2" height="1"/>
<rect x="61" y="167" clip-path="url(#SVGID_16_)" width="1" height="1"/>
<rect x="44" y="167" clip-path="url(#SVGID_16_)" width="6" height="1"/>
<rect x="56" y="171" clip-path="url(#SVGID_16_)" width="2" height="1"/>
<rect x="70" y="167" clip-path="url(#SVGID_16_)" width="6" height="1"/>
<rect x="50" y="171" clip-path="url(#SVGID_16_)" width="2" height="1"/>
<rect x="52" y="167" clip-path="url(#SVGID_16_)" width="1" height="1"/>
<rect x="55" y="167" clip-path="url(#SVGID_16_)" width="1" height="1"/>
<rect x="53" y="171" clip-path="url(#SVGID_16_)" width="2" height="1"/>
</g>
</g>
<path fill="#5988A5" d="M25,213.969L23.031,212l-2-2h-1H13v18h14v-11.031v-1L25,213.969z M25,226H15v-14h5.031v4.969H25V226z"/>
<g opacity="0.6" enable-background="new ">
<g>
<defs>
<rect id="SVGID_17_" x="17" y="219" width="6" height="2"/>
</defs>
<clipPath id="SVGID_18_">
<use xlink:href="#SVGID_17_" overflow="visible"/>
</clipPath>
<rect x="17" y="219" clip-path="url(#SVGID_18_)" fill="#5988A5" width="6" height="2"/>
</g>
</g>
<g opacity="0.6" enable-background="new ">
<g>
<defs>
<rect id="SVGID_19_" x="17" y="222" width="6" height="2"/>
</defs>
<clipPath id="SVGID_20_">
<use xlink:href="#SVGID_19_" overflow="visible"/>
</clipPath>
<rect x="17" y="222" clip-path="url(#SVGID_20_)" fill="#5988A5" width="6" height="2"/>
</g>
</g>
<path fill="#FFFFFF" d="M26.445,100.045c0.028-0.179,0.055-0.357,0.055-0.545c0-1.934-1.567-3.5-3.5-3.5
c-0.718,0-1.385,0.218-1.94,0.589C20.34,95.063,18.8,94,17,94c-2.485,0-4.5,2.015-4.5,4.5c0,0.614,0.125,1.199,0.348,1.732
C11.766,100.686,11,101.757,11,103c0,1.65,1.35,3,3,3h4v-3h-1l3-4l3,4h-1v3h4c1.65,0,3-1.35,3-3
C29,101.502,27.884,100.264,26.445,100.045"/>
<rect x="12" y="252" fill="#8C8C8C" width="4" height="4"/>
<rect x="24" y="252" fill="#8C8C8C" width="4" height="4"/>
<rect x="18" y="252" fill="#8C8C8C" width="4" height="4"/>
<rect x="12" y="258" fill="#8C8C8C" width="4" height="4"/>
<rect x="24" y="258" fill="#8C8C8C" width="4" height="4"/>
<rect x="18" y="258" fill="#8C8C8C" width="4" height="4"/>
<rect x="12" y="264" fill="#8C8C8C" width="4" height="4"/>
<rect x="24" y="264" fill="#8C8C8C" width="4" height="4"/>
<rect x="18" y="264" fill="#8C8C8C" width="4" height="4"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_21_" x="12" y="252" width="16" height="13"/>
</defs>
<clipPath id="SVGID_22_">
<use xlink:href="#SVGID_21_" overflow="visible"/>
</clipPath>
<rect x="12" y="252" clip-path="url(#SVGID_22_)" width="4" height="1"/>
<rect x="18" y="252" clip-path="url(#SVGID_22_)" width="4" height="1"/>
<rect x="24" y="252" clip-path="url(#SVGID_22_)" width="4" height="1"/>
<rect x="12" y="258" clip-path="url(#SVGID_22_)" width="4" height="1"/>
<rect x="18" y="258" clip-path="url(#SVGID_22_)" width="4" height="1"/>
<rect x="24" y="258" clip-path="url(#SVGID_22_)" width="4" height="1"/>
<rect x="12" y="264" clip-path="url(#SVGID_22_)" width="4" height="1"/>
<rect x="18" y="264" clip-path="url(#SVGID_22_)" width="4" height="1"/>
<rect x="24" y="264" clip-path="url(#SVGID_22_)" width="4" height="1"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_23_" x="12" y="256" width="16" height="13"/>
</defs>
<clipPath id="SVGID_24_">
<use xlink:href="#SVGID_23_" overflow="visible"/>
</clipPath>
<rect x="12" y="256" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="18" y="256" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="24" y="256" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="12" y="262" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="18" y="262" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="24" y="262" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="12" y="268" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="18" y="268" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="24" y="268" clip-path="url(#SVGID_24_)" fill="#FFFFFF" width="4" height="1"/>
</g>
</g>
<rect x="52" y="252" fill="#5988A5" width="4" height="4"/>
<rect x="64" y="252" fill="#5988A5" width="4" height="4"/>
<rect x="58" y="252" fill="#5988A5" width="4" height="4"/>
<rect x="52" y="258" fill="#5988A5" width="4" height="4"/>
<rect x="64" y="258" fill="#5988A5" width="4" height="4"/>
<rect x="58" y="258" fill="#5988A5" width="4" height="4"/>
<rect x="52" y="264" fill="#5988A5" width="4" height="4"/>
<rect x="64" y="264" fill="#5988A5" width="4" height="4"/>
<rect x="58" y="264" fill="#5988A5" width="4" height="4"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_25_" x="52" y="252" width="16" height="13"/>
</defs>
<clipPath id="SVGID_26_">
<use xlink:href="#SVGID_25_" overflow="visible"/>
</clipPath>
<rect x="52" y="252" clip-path="url(#SVGID_26_)" width="4" height="1"/>
<rect x="58" y="252" clip-path="url(#SVGID_26_)" width="4" height="1"/>
<rect x="64" y="252" clip-path="url(#SVGID_26_)" width="4" height="1"/>
<rect x="52" y="258" clip-path="url(#SVGID_26_)" width="4" height="1"/>
<rect x="58" y="258" clip-path="url(#SVGID_26_)" width="4" height="1"/>
<rect x="64" y="258" clip-path="url(#SVGID_26_)" width="4" height="1"/>
<rect x="52" y="264" clip-path="url(#SVGID_26_)" width="4" height="1"/>
<rect x="58" y="264" clip-path="url(#SVGID_26_)" width="4" height="1"/>
<rect x="64" y="264" clip-path="url(#SVGID_26_)" width="4" height="1"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_27_" x="52" y="256" width="16" height="13"/>
</defs>
<clipPath id="SVGID_28_">
<use xlink:href="#SVGID_27_" overflow="visible"/>
</clipPath>
<rect x="52" y="256" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="58" y="256" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="64" y="256" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="52" y="262" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="58" y="262" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="64" y="262" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="52" y="268" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="58" y="268" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
<rect x="64" y="268" clip-path="url(#SVGID_28_)" fill="#FFFFFF" width="4" height="1"/>
</g>
</g>
<rect x="12" y="292" fill="#8C8C8C" width="16" height="4"/>
<rect x="12" y="298" fill="#8C8C8C" width="16" height="4"/>
<rect x="12" y="304" fill="#8C8C8C" width="16" height="4"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_29_" x="12" y="292" width="16" height="1"/>
</defs>
<clipPath id="SVGID_30_">
<use xlink:href="#SVGID_29_" overflow="visible"/>
</clipPath>
<rect x="12" y="292" clip-path="url(#SVGID_30_)" width="16" height="1"/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_31_" x="12" y="298" width="16" height="1"/>
</defs>
<clipPath id="SVGID_32_">
<use xlink:href="#SVGID_31_" overflow="visible"/>
</clipPath>
<rect x="12" y="298" clip-path="url(#SVGID_32_)" width="16" height="1"/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_33_" x="12" y="304" width="16" height="1"/>
</defs>
<clipPath id="SVGID_34_">
<use xlink:href="#SVGID_33_" overflow="visible"/>
</clipPath>
<rect x="12" y="304" clip-path="url(#SVGID_34_)" width="16" height="1"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_35_" x="12" y="296" width="16" height="1"/>
</defs>
<clipPath id="SVGID_36_">
<use xlink:href="#SVGID_35_" overflow="visible"/>
</clipPath>
<rect x="12" y="296" clip-path="url(#SVGID_36_)" fill="#FFFFFF" width="16" height="1"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_37_" x="12" y="302" width="16" height="1"/>
</defs>
<clipPath id="SVGID_38_">
<use xlink:href="#SVGID_37_" overflow="visible"/>
</clipPath>
<rect x="12" y="302" clip-path="url(#SVGID_38_)" fill="#FFFFFF" width="16" height="1"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_39_" x="12" y="308" width="16" height="1"/>
</defs>
<clipPath id="SVGID_40_">
<use xlink:href="#SVGID_39_" overflow="visible"/>
</clipPath>
<rect x="12" y="308" clip-path="url(#SVGID_40_)" fill="#FFFFFF" width="16" height="1"/>
</g>
</g>
<rect x="52" y="292" fill="#5988A5" width="16" height="4"/>
<rect x="52" y="298" fill="#5988A5" width="16" height="4"/>
<rect x="52" y="304" fill="#5988A5" width="16" height="4"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_41_" x="52" y="292" width="16" height="1"/>
</defs>
<clipPath id="SVGID_42_">
<use xlink:href="#SVGID_41_" overflow="visible"/>
</clipPath>
<rect x="52" y="292" clip-path="url(#SVGID_42_)" width="16" height="1"/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_43_" x="52" y="298" width="16" height="1"/>
</defs>
<clipPath id="SVGID_44_">
<use xlink:href="#SVGID_43_" overflow="visible"/>
</clipPath>
<rect x="52" y="298" clip-path="url(#SVGID_44_)" width="16" height="1"/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_45_" x="52" y="304" width="16" height="1"/>
</defs>
<clipPath id="SVGID_46_">
<use xlink:href="#SVGID_45_" overflow="visible"/>
</clipPath>
<rect x="52" y="304" clip-path="url(#SVGID_46_)" width="16" height="1"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_47_" x="52" y="296" width="16" height="1"/>
</defs>
<clipPath id="SVGID_48_">
<use xlink:href="#SVGID_47_" overflow="visible"/>
</clipPath>
<rect x="52" y="296" clip-path="url(#SVGID_48_)" fill="#FFFFFF" width="16" height="1"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_49_" x="52" y="302" width="16" height="1"/>
</defs>
<clipPath id="SVGID_50_">
<use xlink:href="#SVGID_49_" overflow="visible"/>
</clipPath>
<rect x="52" y="302" clip-path="url(#SVGID_50_)" fill="#FFFFFF" width="16" height="1"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_51_" x="52" y="308" width="16" height="1"/>
</defs>
<clipPath id="SVGID_52_">
<use xlink:href="#SVGID_51_" overflow="visible"/>
</clipPath>
<rect x="52" y="308" clip-path="url(#SVGID_52_)" fill="#FFFFFF" width="16" height="1"/>
</g>
</g>
<path fill="#8C8C8C" d="M28,335.062L24.939,332l-4.648,0.818L12,341.109L18.89,348l8.292-8.292L28,335.062z M23.713,336.287
c-0.76-0.762-1.07-1.687-0.689-2.068c0.381-0.381,1.306-0.073,2.068,0.689c0.76,0.762,1.069,1.686,0.689,2.066
C25.399,337.357,24.475,337.047,23.713,336.287"/>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_53_" x="12" y="334.056" width="16" height="14.944"/>
</defs>
<clipPath id="SVGID_54_">
<use xlink:href="#SVGID_53_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_54_)" fill="#FFFFFF" d="M25.092,334.908c-0.762-0.762-1.687-1.07-2.068-0.689
c-0.214,0.213-0.203,0.602-0.023,1.035c0.009-0.011,0.013-0.026,0.023-0.035c0.381-0.381,1.306-0.073,2.068,0.689
c0.333,0.333,0.572,0.695,0.712,1.031C26.139,336.542,25.832,335.65,25.092,334.908"/>
<polygon clip-path="url(#SVGID_54_)" fill="#FFFFFF" points="27.182,339.708 18.89,348 12.5,341.609 12,342.109 18.89,349
27.182,340.708 28,336.062 27.85,335.913 "/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_55_" x="12" y="332" width="16" height="9.609"/>
</defs>
<clipPath id="SVGID_56_">
<use xlink:href="#SVGID_55_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_56_)" points="20.291,333.818 24.939,333 27.85,335.914 28,335.062 24.939,332 20.291,332.818
12,341.109 12.5,341.609 "/>
<path clip-path="url(#SVGID_56_)" d="M23.713,337.287c0.762,0.76,1.686,1.07,2.068,0.687c0.214-0.213,0.203-0.602,0.023-1.035
c-0.009,0.011-0.013,0.026-0.023,0.036c-0.382,0.382-1.306,0.072-2.068-0.688c-0.333-0.333-0.572-0.696-0.712-1.033
C22.665,335.652,22.973,336.546,23.713,337.287"/>
</g>
</g>
<path fill="#5988A5" d="M68,335.062L64.939,332l-4.648,0.818L52,341.109L58.891,348l8.291-8.292L68,335.062z M63.713,336.287
c-0.76-0.762-1.07-1.687-0.689-2.068c0.381-0.381,1.307-0.073,2.068,0.689c0.76,0.762,1.068,1.686,0.689,2.066
C65.398,337.357,64.475,337.047,63.713,336.287"/>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_57_" x="52" y="334.056" width="16" height="14.944"/>
</defs>
<clipPath id="SVGID_58_">
<use xlink:href="#SVGID_57_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_58_)" fill="#FFFFFF" d="M65.092,334.908c-0.762-0.762-1.687-1.07-2.068-0.689
c-0.214,0.213-0.203,0.602-0.023,1.035c0.01-0.011,0.014-0.026,0.023-0.035c0.382-0.381,1.307-0.073,2.068,0.689
c0.332,0.333,0.572,0.695,0.712,1.031C66.139,336.542,65.832,335.65,65.092,334.908"/>
<polygon clip-path="url(#SVGID_58_)" fill="#FFFFFF" points="67.182,339.708 58.891,348 52.5,341.609 52,342.109 58.891,349
67.182,340.708 68,336.062 67.85,335.913 "/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_59_" x="52" y="332" width="16" height="9.609"/>
</defs>
<clipPath id="SVGID_60_">
<use xlink:href="#SVGID_59_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_60_)" points="60.291,333.818 64.939,333 67.85,335.914 68,335.062 64.939,332 60.291,332.818
52,341.109 52.5,341.609 "/>
<path clip-path="url(#SVGID_60_)" d="M63.713,337.287c0.762,0.76,1.686,1.07,2.068,0.687c0.213-0.213,0.203-0.602,0.022-1.035
c-0.009,0.011-0.013,0.026-0.022,0.036c-0.383,0.382-1.307,0.072-2.068-0.688c-0.332-0.333-0.572-0.696-0.713-1.033
C62.665,335.652,62.973,336.546,63.713,337.287"/>
</g>
</g>
<polygon fill="#8C8C8C" points="18,374 15,374 15,382 13,382 16.5,388 20,382 18,382 "/>
<polygon fill="#8C8C8C" points="27,378 23.5,372 20,378 22,378 22,386 25,386 25,378 "/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_61_" x="13" y="374" width="7" height="9"/>
</defs>
<clipPath id="SVGID_62_">
<use xlink:href="#SVGID_61_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_62_)" points="18,383 19.417,383 20,382 18,382 "/>
<rect x="15" y="374" clip-path="url(#SVGID_62_)" width="3" height="1"/>
<polygon clip-path="url(#SVGID_62_)" points="15,383 15,382 13,382 13.583,383 "/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_63_" x="20" y="372" width="7" height="6"/>
</defs>
<clipPath id="SVGID_64_">
<use xlink:href="#SVGID_63_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_64_)" points="23.5,373 26.417,378 27,378 23.5,372 20,378 20.583,378 "/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_65_" x="13" y="378" width="14" height="11"/>
</defs>
<clipPath id="SVGID_66_">
<use xlink:href="#SVGID_65_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_66_)" fill="#FFFFFF" points="16.5,388 13.583,383 13,383 16.5,389 20,383 19.417,383 "/>
<rect x="22" y="386" clip-path="url(#SVGID_66_)" fill="#FFFFFF" width="3" height="1"/>
<polygon clip-path="url(#SVGID_66_)" fill="#FFFFFF" points="22,378 20.583,378 20,379 22,379 "/>
<polygon clip-path="url(#SVGID_66_)" fill="#FFFFFF" points="25,378 25,379 27,379 26.417,378 "/>
</g>
</g>
<polygon fill="#5988A5" points="58,374 55,374 55,382 53,382 56.5,388 60,382 58,382 "/>
<polygon fill="#5988A5" points="67,378 63.5,372 60,378 62,378 62,386 65,386 65,378 "/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_67_" x="53" y="374" width="7" height="9"/>
</defs>
<clipPath id="SVGID_68_">
<use xlink:href="#SVGID_67_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_68_)" points="58,383 59.416,383 60,382 58,382 "/>
<rect x="55" y="374" clip-path="url(#SVGID_68_)" width="3" height="1"/>
<polygon clip-path="url(#SVGID_68_)" points="55,383 55,382 53,382 53.584,383 "/>
</g>
</g>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_69_" x="60" y="372" width="7" height="6"/>
</defs>
<clipPath id="SVGID_70_">
<use xlink:href="#SVGID_69_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_70_)" points="63.5,373 66.416,378 67,378 63.5,372 60,378 60.584,378 "/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_71_" x="53" y="378" width="14" height="11"/>
</defs>
<clipPath id="SVGID_72_">
<use xlink:href="#SVGID_71_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_72_)" fill="#FFFFFF" points="56.5,388 53.584,383 53,383 56.5,389 60,383 59.416,383 "/>
<rect x="62" y="386" clip-path="url(#SVGID_72_)" fill="#FFFFFF" width="3" height="1"/>
<polygon clip-path="url(#SVGID_72_)" fill="#FFFFFF" points="62,378 60.584,378 60,379 62,379 "/>
<polygon clip-path="url(#SVGID_72_)" fill="#FFFFFF" points="65,378 65,379 67,379 66.416,378 "/>
</g>
</g>
<polygon fill="#8C8C8C" points="28,412 22,412 18,412 12,412 18,419.5 18,428.001 18.249,428.001 22,424 22,419.5 "/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_73_" x="12" y="412" width="16" height="1"/>
</defs>
<clipPath id="SVGID_74_">
<use xlink:href="#SVGID_73_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_74_)" points="18,413 22,413 27.2,413 28,412 22,412 18,412 12,412 12.8,413 "/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_75_" x="12" y="413" width="16" height="16"/>
</defs>
<clipPath id="SVGID_76_">
<use xlink:href="#SVGID_75_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_76_)" fill="#FFFFFF" points="18,419.5 12.8,413 12,413 18,420.5 "/>
<polygon clip-path="url(#SVGID_76_)" fill="#FFFFFF" points="18,428 18,429 18.249,429 22,425 22,424 18.249,428 "/>
<polygon clip-path="url(#SVGID_76_)" fill="#FFFFFF" points="22,419.5 22,420.5 28,413 27.2,413 "/>
</g>
</g>
<polygon fill="#5988A5" points="68,412 62,412 58,412 52,412 58,419.5 58,428.001 58.249,428.001 62,424 62,419.5 "/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_77_" x="52" y="412" width="16" height="1"/>
</defs>
<clipPath id="SVGID_78_">
<use xlink:href="#SVGID_77_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_78_)" points="58,413 62,413 67.2,413 68,412 62,412 58,412 52,412 52.8,413 "/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_79_" x="52" y="413" width="16" height="16"/>
</defs>
<clipPath id="SVGID_80_">
<use xlink:href="#SVGID_79_" overflow="visible"/>
</clipPath>
<polygon clip-path="url(#SVGID_80_)" fill="#FFFFFF" points="58,419.5 52.8,413 52,413 58,420.5 "/>
<polygon clip-path="url(#SVGID_80_)" fill="#FFFFFF" points="58,428 58,429 58.249,429 62,425 62,424 58.249,428 "/>
<polygon clip-path="url(#SVGID_80_)" fill="#FFFFFF" points="62,419.5 62,420.5 68,413 67.2,413 "/>
</g>
</g>
<path fill="#8C8C8C" d="M27.634,465.866l-3.74-3.739C24.593,461.091,25,459.844,25,458.5c0-3.591-2.909-6.5-6.5-6.5
c-1.344,0-2.591,0.407-3.627,1.105c-0.697,0.47-1.298,1.07-1.768,1.768C12.407,455.909,12,457.156,12,458.5
c0,3.591,2.909,6.5,6.5,6.5c1.344,0,2.591-0.407,3.627-1.105l3.739,3.739C26.11,467.878,26.429,468,26.75,468
c0.32,0,0.639-0.122,0.884-0.366C28.122,467.146,28.122,466.354,27.634,465.866 M20.657,462.425C20.013,462.78,19.285,463,18.5,463
c-2.482,0-4.5-2.019-4.5-4.5c0-0.785,0.22-1.514,0.575-2.157c0.412-0.745,1.022-1.354,1.768-1.768
C16.986,454.22,17.715,454,18.5,454c2.481,0,4.5,2.019,4.5,4.5c0,0.785-0.22,1.514-0.575,2.157
C22.012,461.402,21.402,462.013,20.657,462.425"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_81_" x="12" y="452" width="15.996" height="15.25"/>
</defs>
<clipPath id="SVGID_82_">
<use xlink:href="#SVGID_81_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_82_)" d="M23.895,463.127l3.739,3.739c0.114,0.114,0.195,0.245,0.255,0.384
c0.201-0.458,0.12-1.009-0.255-1.384l-3.375-3.375C24.146,462.709,24.03,462.925,23.895,463.127"/>
<path clip-path="url(#SVGID_82_)" d="M13.105,455.873c0.47-0.697,1.07-1.298,1.768-1.768C15.91,453.407,17.157,453,18.5,453
c3.388,0,6.167,2.592,6.469,5.901C24.979,458.767,25,458.637,25,458.5c0-3.591-2.91-6.5-6.5-6.5c-1.344,0-2.591,0.407-3.627,1.105
c-0.698,0.47-1.298,1.07-1.768,1.768C12.408,455.909,12,457.156,12,458.5c0,0.202,0.012,0.401,0.03,0.599
C12.104,457.91,12.479,456.804,13.105,455.873"/>
<path clip-path="url(#SVGID_82_)" d="M18.5,464c0.785,0,1.514-0.22,2.157-0.575c0.745-0.412,1.356-1.022,1.768-1.768
C22.78,461.014,23,460.285,23,459.5c0-0.142-0.029-0.275-0.042-0.413c-0.079,0.562-0.268,1.091-0.533,1.57
c-0.412,0.745-1.023,1.355-1.768,1.768C20.014,462.78,19.285,463,18.5,463c-2.34,0-4.246-1.802-4.458-4.087
C14.015,459.104,14,459.301,14,459.5C14,461.981,16.019,464,18.5,464"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_83_" x="12" y="454" width="15.996" height="15"/>
</defs>
<clipPath id="SVGID_84_">
<use xlink:href="#SVGID_83_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_84_)" fill="#FFFFFF" d="M18.5,454c-0.785,0-1.514,0.22-2.157,0.575
c-0.745,0.412-1.356,1.022-1.768,1.768C14.22,456.986,14,457.715,14,458.5c0,0.142,0.029,0.275,0.042,0.413
c0.079-0.562,0.268-1.09,0.533-1.57c0.412-0.745,1.023-1.355,1.768-1.768C16.986,455.22,17.715,455,18.5,455
c2.34,0,4.246,1.802,4.458,4.087c0.027-0.19,0.042-0.388,0.042-0.587C23,456.019,20.981,454,18.5,454"/>
<path clip-path="url(#SVGID_84_)" fill="#FFFFFF" d="M27.634,467.634C27.39,467.878,27.071,468,26.75,468
c-0.32,0-0.639-0.122-0.884-0.366l-3.739-3.739C21.091,464.593,19.844,465,18.5,465c-3.388,0-6.167-2.592-6.47-5.901
c-0.008,0.135-0.03,0.265-0.03,0.401c0,3.591,2.909,6.5,6.5,6.5c1.344,0,2.591-0.407,3.627-1.105l3.739,3.739
C26.111,468.878,26.43,469,26.75,469c0.321,0,0.64-0.122,0.884-0.366c0.375-0.375,0.456-0.926,0.255-1.384
C27.828,467.389,27.747,467.521,27.634,467.634"/>
<path clip-path="url(#SVGID_84_)" fill="#FFFFFF" d="M24.259,462.491C24.726,461.596,25,460.582,25,459.5
c0-0.202-0.012-0.401-0.03-0.599c-0.073,1.188-0.448,2.295-1.075,3.226L24.259,462.491z"/>
</g>
</g>
<path fill="#5988A5" d="M67.634,465.866l-3.739-3.739C64.593,461.091,65,459.844,65,458.5c0-3.591-2.909-6.5-6.5-6.5
c-1.344,0-2.591,0.407-3.627,1.105c-0.697,0.47-1.298,1.07-1.768,1.768C52.407,455.909,52,457.156,52,458.5
c0,3.591,2.909,6.5,6.5,6.5c1.344,0,2.591-0.407,3.627-1.105l3.739,3.739C66.11,467.878,66.43,468,66.75,468s0.64-0.122,0.884-0.366
C68.122,467.146,68.122,466.354,67.634,465.866 M60.657,462.425C60.014,462.78,59.285,463,58.5,463c-2.481,0-4.5-2.019-4.5-4.5
c0-0.785,0.22-1.514,0.575-2.157c0.412-0.745,1.022-1.354,1.768-1.768C56.986,454.22,57.715,454,58.5,454c2.481,0,4.5,2.019,4.5,4.5
c0,0.785-0.22,1.514-0.575,2.157C62.012,461.402,61.402,462.013,60.657,462.425"/>
<g opacity="0.25">
<g>
<defs>
<rect id="SVGID_85_" x="52" y="452" width="15.996" height="15.25"/>
</defs>
<clipPath id="SVGID_86_">
<use xlink:href="#SVGID_85_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_86_)" d="M63.895,463.127l3.739,3.739c0.113,0.114,0.194,0.245,0.255,0.384
c0.201-0.458,0.12-1.009-0.255-1.384l-3.375-3.375C64.146,462.709,64.031,462.925,63.895,463.127"/>
<path clip-path="url(#SVGID_86_)" d="M53.105,455.873c0.47-0.697,1.07-1.298,1.768-1.768c1.036-0.698,2.283-1.105,3.628-1.105
c3.388,0,6.167,2.592,6.469,5.901c0.009-0.135,0.031-0.265,0.031-0.401c0-3.591-2.91-6.5-6.5-6.5
c-1.345,0-2.592,0.407-3.628,1.105c-0.697,0.47-1.298,1.07-1.768,1.768c-0.698,1.036-1.104,2.283-1.104,3.627
c0,0.202,0.011,0.401,0.029,0.599C52.104,457.91,52.479,456.804,53.105,455.873"/>
<path clip-path="url(#SVGID_86_)" d="M58.5,464c0.785,0,1.514-0.22,2.157-0.575c0.745-0.412,1.355-1.022,1.768-1.768
C62.78,461.014,63,460.285,63,459.5c0-0.142-0.029-0.275-0.042-0.413c-0.079,0.562-0.269,1.091-0.533,1.57
c-0.412,0.745-1.022,1.355-1.768,1.768C60.014,462.78,59.285,463,58.5,463c-2.34,0-4.246-1.802-4.458-4.087
C54.015,459.104,54,459.301,54,459.5C54,461.981,56.019,464,58.5,464"/>
</g>
</g>
<g opacity="0.4">
<g>
<defs>
<rect id="SVGID_87_" x="52" y="454" width="15.996" height="15"/>
</defs>
<clipPath id="SVGID_88_">
<use xlink:href="#SVGID_87_" overflow="visible"/>
</clipPath>
<path clip-path="url(#SVGID_88_)" fill="#FFFFFF" d="M58.5,454c-0.785,0-1.514,0.22-2.157,0.575
c-0.745,0.412-1.355,1.022-1.768,1.768C54.22,456.986,54,457.715,54,458.5c0,0.142,0.029,0.275,0.042,0.413
c0.079-0.562,0.269-1.09,0.533-1.57c0.412-0.745,1.022-1.355,1.768-1.768C56.986,455.22,57.715,455,58.5,455
c2.34,0,4.246,1.802,4.458,4.087c0.027-0.19,0.042-0.388,0.042-0.587C63,456.019,60.981,454,58.5,454"/>
<path clip-path="url(#SVGID_88_)" fill="#FFFFFF" d="M67.634,467.634C67.39,467.878,67.07,468,66.75,468s-0.64-0.122-0.884-0.366
l-3.739-3.739C61.091,464.593,59.844,465,58.5,465c-3.389,0-6.167-2.592-6.47-5.901c-0.009,0.135-0.03,0.265-0.03,0.401
c0,3.591,2.909,6.5,6.5,6.5c1.344,0,2.591-0.407,3.627-1.105l3.739,3.739C66.11,468.878,66.43,469,66.75,469
s0.64-0.122,0.884-0.366c0.375-0.375,0.456-0.926,0.255-1.384C67.828,467.389,67.747,467.521,67.634,467.634"/>
<path clip-path="url(#SVGID_88_)" fill="#FFFFFF" d="M64.259,462.491C64.727,461.596,65,460.582,65,459.5
c0-0.202-0.012-0.401-0.03-0.599c-0.073,1.188-0.448,2.295-1.075,3.226L64.259,462.491z"/>
</g>
</g>
<path fill="#BDBEC0" d="M55,212c-0.55,0-1,0.45-1,1v12c0,0.55,0.45,1,1,1h9c0.55,0,1-0.45,1-1v-8l-5-5H55z"/>
<path fill="#949598" d="M61,217h4l-5-5v4C60,216.55,60.45,217,61,217"/>
<rect x="19" y="504" fill="#8C8C8C" width="7" height="1"/>
<rect x="18.404" y="497.348" transform="matrix(-0.7071 -0.7071 0.7071 -0.7071 -319.8112 868.3746)" fill="#8C8C8C" width="3.073" height="6.149"/>
<path fill="#8C8C8C" d="M24.288,496.074c-0.598-0.597-1.413-0.76-1.812-0.362l-0.724,0.725l2.174,2.174l0.724-0.725
C25.048,497.487,24.886,496.673,24.288,496.074"/>
<polygon fill="#8C8C8C" points="14.868,505.494 18.129,504.407 15.955,502.234 "/>
<rect x="59" y="504" fill="#5988A5" width="7" height="1"/>
<rect x="58.404" y="497.348" transform="matrix(-0.7073 -0.7069 0.7069 -0.7073 -251.4383 896.7286)" fill="#5988A5" width="3.074" height="6.149"/>
<path fill="#5988A5" d="M64.288,496.074c-0.599-0.597-1.413-0.76-1.812-0.362l-0.725,0.725l2.174,2.174l0.725-0.725
C65.049,497.487,64.886,496.673,64.288,496.074"/>
<polygon fill="#5988A5" points="54.868,505.494 58.129,504.407 55.955,502.234 "/>
<path fill="#C94B4B" d="M20.5,532c-4.142,0-7.5,3.356-7.5,7.5c0,4.143,3.358,7.5,7.5,7.5s7.5-3.357,7.5-7.5
C28,535.356,24.642,532,20.5,532 M20.5,544.499c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S21.05,544.499,20.5,544.499
M21.604,540.503c-0.049,0.548-0.539,0.996-1.088,0.996c-0.551,0-1.043-0.448-1.095-0.996l-0.327-3.507
C19.042,536.447,19.45,536,20,536h1c0.55,0,0.961,0.447,0.912,0.996L21.604,540.503z"/>
<path fill="#C17417" d="M60.499,532c-4.142,0-7.5,3.356-7.5,7.5c0,4.143,3.358,7.5,7.5,7.5c4.144,0,7.5-3.357,7.5-7.5
C67.999,535.356,64.643,532,60.499,532 M60.499,544.499c-0.549,0-1-0.45-1-1s0.451-1,1-1c0.551,0,1,0.45,1,1
S61.05,544.499,60.499,544.499 M61.604,540.503c-0.049,0.548-0.539,0.996-1.088,0.996c-0.551,0-1.043-0.448-1.095-0.996
l-0.327-3.507C59.041,536.447,59.45,536,59.999,536h1c0.551,0,0.962,0.447,0.913,0.996L61.604,540.503z"/>
<path fill="#5988A5" d="M25.804,574.196c-2.93-2.929-7.678-2.929-10.607,0c-2.929,2.93-2.929,7.678,0,10.607
c2.929,2.929,7.678,2.929,10.607,0C28.733,581.874,28.733,577.126,25.804,574.196 M24.743,581.621l-2.121,2.121l-2.122-2.121
l-2.121,2.121l-2.121-2.121l2.121-2.121l-2.121-2.121l2.121-2.121l2.121,2.121l2.122-2.121l2.121,2.121l-2.121,2.121L24.743,581.621
z"/>
<path fill="#4D7289" d="M65.805,574.196c-2.931-2.929-7.679-2.929-10.607,0c-2.93,2.93-2.93,7.678,0,10.607
c2.929,2.929,7.678,2.929,10.607,0C68.732,581.874,68.732,577.126,65.805,574.196 M64.742,581.621l-2.121,2.121l-2.121-2.121
l-2.121,2.121l-2.121-2.121l2.121-2.121l-2.121-2.121l2.121-2.121l2.121,2.121l2.121-2.121l2.121,2.121l-2.121,2.121L64.742,581.621
z"/>
<path fill="#525960" d="M20.5,612c-4.142,0-7.5,3.357-7.5,7.5s3.358,7.5,7.5,7.5s7.5-3.357,7.5-7.5S24.642,612,20.5,612
M22.049,623.605c-0.387,0.152-0.695,0.269-0.926,0.348c-0.23,0.081-0.498,0.121-0.803,0.121c-0.468,0-0.833-0.114-1.092-0.343
c-0.26-0.229-0.39-0.519-0.39-0.87c0-0.137,0.01-0.276,0.029-0.419c0.02-0.143,0.051-0.304,0.094-0.483l0.484-1.711
c0.043-0.164,0.08-0.319,0.109-0.466c0.029-0.146,0.044-0.28,0.044-0.401c0-0.22-0.046-0.371-0.135-0.457
c-0.091-0.086-0.263-0.129-0.518-0.129c-0.125,0-0.253,0.02-0.384,0.059c-0.132,0.039-0.244,0.076-0.338,0.111l0.129-0.527
c0.317-0.129,0.62-0.239,0.909-0.331s0.563-0.138,0.821-0.138c0.466,0,0.824,0.112,1.077,0.337c0.252,0.225,0.378,0.517,0.378,0.876
c0,0.074-0.009,0.205-0.026,0.393c-0.018,0.188-0.05,0.359-0.097,0.516l-0.482,1.705c-0.039,0.137-0.074,0.293-0.106,0.469
c-0.031,0.176-0.047,0.309-0.047,0.397c0,0.228,0.051,0.382,0.152,0.464c0.102,0.082,0.278,0.123,0.527,0.123
c0.117,0,0.25-0.021,0.398-0.062s0.255-0.077,0.322-0.108L22.049,623.605z M21.964,616.683c-0.225,0.209-0.495,0.313-0.812,0.313
c-0.316,0-0.587-0.104-0.814-0.313s-0.34-0.462-0.34-0.759s0.113-0.551,0.34-0.763c0.227-0.21,0.498-0.315,0.814-0.315
c0.317,0,0.587,0.105,0.812,0.315c0.225,0.212,0.337,0.466,0.337,0.763S22.189,616.474,21.964,616.683"/>
<path fill="#5988A5" d="M60.5,612c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5s7.5-3.357,7.5-7.5S64.643,612,60.5,612
M62.049,623.605c-0.387,0.152-0.695,0.269-0.926,0.348c-0.23,0.081-0.498,0.121-0.803,0.121c-0.469,0-0.833-0.114-1.093-0.343
s-0.39-0.519-0.39-0.87c0-0.137,0.01-0.276,0.029-0.419s0.051-0.304,0.094-0.483l0.484-1.711c0.043-0.164,0.079-0.319,0.108-0.466
s0.044-0.28,0.044-0.401c0-0.22-0.045-0.371-0.135-0.457c-0.091-0.086-0.263-0.129-0.518-0.129c-0.125,0-0.253,0.02-0.385,0.059
c-0.131,0.039-0.243,0.076-0.338,0.111l0.129-0.527c0.316-0.129,0.62-0.239,0.909-0.331c0.29-0.092,0.563-0.138,0.821-0.138
c0.466,0,0.824,0.112,1.076,0.337s0.379,0.517,0.379,0.876c0,0.074-0.009,0.205-0.026,0.393s-0.05,0.359-0.097,0.516l-0.482,1.705
c-0.039,0.137-0.074,0.293-0.105,0.469s-0.047,0.309-0.047,0.397c0,0.228,0.051,0.382,0.152,0.464s0.277,0.123,0.526,0.123
c0.117,0,0.249-0.021,0.397-0.062s0.256-0.077,0.322-0.108L62.049,623.605z M61.964,616.683c-0.225,0.209-0.495,0.313-0.812,0.313
s-0.588-0.104-0.814-0.313s-0.34-0.462-0.34-0.759s0.113-0.551,0.34-0.763c0.227-0.21,0.498-0.315,0.814-0.315
s0.587,0.105,0.812,0.315c0.225,0.212,0.337,0.466,0.337,0.763S62.188,616.474,61.964,616.683"/>
<path fill="#5988A5" d="M66.167,662.951L66.167,662.951l0.084-1.979c0.007,0,0.023-0.122,0.023-0.281
c0-3.749-1.916-6.813-4.467-7.635c-0.112-0.653-0.653-1.104-1.308-1.104c-0.655,0-1.196,0.52-1.31,1.173
c-2.55,0.822-4.466,3.805-4.466,7.555c0,0.158,0.016,0.292,0.023,0.292l0.085,1.979c-1.03,0.325-1.831,0.74-1.831,1.198
c0,0.28,0.229,0.542,0.674,0.781c1.534-0.473,4.013-0.781,6.837-0.781s5.311,0.309,6.844,0.781c0.444-0.239,0.646-0.501,0.646-0.781
C68.002,663.691,67.197,663.276,66.167,662.951"/>
<path fill="#5988A5" d="M58.341,665.148c0.229,1.033,1.104,1.805,2.159,1.805c1.053,0,1.928-0.771,2.158-1.805
c-0.691-0.041-1.411-0.064-2.158-0.064C59.751,665.084,59.032,665.107,58.341,665.148"/>
<path fill="#525960" d="M26.167,662.951L26.167,662.951l0.084-1.979c0.008,0,0.024-0.122,0.024-0.281
c0-3.749-1.916-6.813-4.466-7.635c-0.113-0.653-0.655-1.104-1.309-1.104c-0.655,0-1.196,0.52-1.309,1.173
c-2.55,0.822-4.466,3.805-4.466,7.555c0,0.158,0.016,0.292,0.023,0.292l0.086,1.979c-1.031,0.325-1.832,0.74-1.832,1.198
c0,0.28,0.23,0.542,0.675,0.781c1.533-0.473,4.011-0.781,6.837-0.781c2.824,0,5.31,0.309,6.842,0.781
c0.445-0.239,0.646-0.501,0.646-0.781C28.001,663.691,27.196,663.276,26.167,662.951"/>
<path fill="#525960" d="M18.341,665.148c0.23,1.033,1.105,1.805,2.159,1.805c1.052,0,1.928-0.771,2.158-1.805
c-0.691-0.041-1.41-0.064-2.158-0.064C19.752,665.084,19.032,665.107,18.341,665.148"/>
<path fill="#FFFFFF" d="M23,695v-1c0-0.55-0.45-1-1-1h-4c-0.55,0-1,0.45-1,1v1h-3v2h1v8c0,0.55,0.45,1,1,1h8c0.55,0,1-0.45,1-1v-8h1
v-2H23z M17,704.5c0,0.275-0.225,0.5-0.5,0.5s-0.5-0.225-0.5-0.5v-6c0-0.275,0.225-0.5,0.5-0.5s0.5,0.225,0.5,0.5V704.5z M21,704
c0,0.55-0.45,1-1,1s-1-0.45-1-1v-5c0-0.55,0.45-1,1-1s1,0.45,1,1V704z M22,695h-4v-1h4V695z M24,704.5c0,0.275-0.225,0.5-0.5,0.5
s-0.5-0.225-0.5-0.5v-6c0-0.275,0.225-0.5,0.5-0.5s0.5,0.225,0.5,0.5V704.5z"/>
<rect x="61.404" y="695.348" transform="matrix(-0.7073 -0.7069 0.7069 -0.7073 -386.2922 1236.8881)" fill="#FFFFFF" width="3.074" height="6.149"/>
<path fill="#FFFFFF" d="M67.288,694.074c-0.599-0.597-1.413-0.76-1.812-0.362l-0.725,0.725l2.174,2.174l0.725-0.725
C68.049,695.487,67.886,694.673,67.288,694.074"/>
<polygon fill="#FFFFFF" points="57.868,703.494 61.129,702.407 58.955,700.234 "/>
<path fill="#AFAFAF" d="M21.2,746c0.823-0.822,1.186-1.949,1.117-3.118c-0.013-0.215-0.038-0.431-0.08-0.646L21.2,741.2l2.4-2.4
l1.201,1.2L26,738.8l-4.8-4.8l-1.2,1.2l1.2,1.199l-2.399,2.4l-1.037-1.036c-0.083-0.016-0.166-0.028-0.249-0.04
c-1.308-0.185-2.6,0.161-3.515,1.076l3,3.001l-1.8,1.8L14,746l2.4-1.2l1.8-1.8L21.2,746z"/>
<path fill="#AFAFAF" d="M66,736.297L63.704,734l-3.485,0.613L54,740.832L59.168,746l6.218-6.219L66,736.297z M62.785,737.215
c-0.57-0.57-0.803-1.266-0.518-1.551c0.286-0.285,0.98-0.055,1.551,0.518c0.571,0.57,0.803,1.263,0.518,1.549
C64.049,738.018,63.355,737.785,62.785,737.215"/>
<path fill="#AFAFAF" d="M20,774c-3.313,0-6,2.687-6,6s2.687,6,6,6s6-2.687,6-6S23.313,774,20,774 M20,784c-2.209,0-4-1.791-4-4
s1.791-4,4-4s4,1.791,4,4S22.209,784,20,784"/>
<polygon fill="#AFAFAF" points="22,777.75 19.5,780.25 18,778.75 17,779.75 19.5,782.25 23,778.75 "/>
<polygon fill="#FFFFFF" points="23,816.688 19.875,819.812 18,817.938 16.75,819.188 19.875,822.312 24.25,817.938 "/>
<rect x="19" y="136" fill="#FFFFFF" width="3" height="10"/>
<path fill="#B33131" d="M27.759,145.128l-6.231-11.356c-0.567-1.028-1.49-1.028-2.057,0l-6.23,11.356
c-0.568,1.03-0.096,1.873,1.044,1.873h12.431C27.854,147.001,28.327,146.158,27.759,145.128 M20.5,145.501c-0.55,0-1-0.45-1-1
s0.45-1.001,1-1.001s1,0.451,1,1.001S21.05,145.501,20.5,145.501 M21.604,141.504c-0.049,0.548-0.539,0.996-1.088,0.996
c-0.551,0-1.043-0.448-1.095-0.996l-0.327-3.508C19.042,137.448,19.45,137,20,137h1c0.55,0,0.961,0.448,0.912,0.996L21.604,141.504z
"/>
<path fill="#FFFFFF" d="M72.502,764h-24c-2.2,0-4,1.8-4,4v24c0,2.2,1.8,4,4,4h24c2.2,0,4-1.8,4-4v-24
C76.502,765.8,74.702,764,72.502,764z M64.061,784l-3.559-4.447L56.943,784h-3.842l7.4-9.25l7.4,9.25H64.061z"/>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" points="15.243,858.039 17.906,860.646 25.757,853 28.5,855.671
17.92,866 12.5,860.71 "/>
<polygon fill-rule="evenodd" clip-rule="evenodd" fill="#48A565" points="55.242,858.039 57.906,860.646 65.758,853 68.5,855.671
57.92,866 52.5,860.71 "/>
<rect x="14" y="898" fill-rule="evenodd" clip-rule="evenodd" fill="#FFFFFF" width="13" height="4"/>
<rect x="54" y="898" fill-rule="evenodd" clip-rule="evenodd" fill="#48A565" width="13" height="4"/>
</svg>

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="240px" height="136px" viewBox="0 0 240 136" enable-background="new 0 0 240 136" xml:space="preserve">
<path fill="#4E85AA" d="M167.031,56.633c0.104-0.912,0.277-1.8,0.277-2.734c0-13.082-10.59-23.688-23.655-23.688
c-6.182,0-11.762,2.43-15.979,6.319C123.446,24.579,112.095,16,98.712,16c-16.983,0-30.751,13.79-30.751,30.794
c0,4.046,0.8,7.892,2.214,11.431C63.14,62.884,58.5,70.872,58.5,79.951c0,13.588,10.393,24.734,23.654,25.928V106h72.477v-0.042
c0.286,0.009,0.562,0.042,0.851,0.042c14.368,0,26.018-11.661,26.018-26.049C181.499,69.726,175.597,60.896,167.031,56.633z M140,76
h-15v15h-10V76h-15V66h15V51h10v15h15V76z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1006 B

View File

@ -1,284 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, 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="120px" height="720px" viewBox="0 0 120 720" enable-background="new 0 0 120 720" xml:space="preserve">
<path opacity="0.2" d="M79,80H35c-1.65,0-3-1.35-3-3v2c0,1.65,1.35,3,3,3h44c1.65,0,3-1.35,3-3v-2C82,78.65,80.65,80,79,80z"/>
<path opacity="0.75" fill="#FFFFFF" d="M79,48H61v1c0,2.206-1.794,4-4,4c-2.206,0-4-1.794-4-4v-1H35c-1.65,0-3,1.35-3,3v26
c0,1.65,1.35,3,3,3h44c1.65,0,3-1.35,3-3V51C82,49.35,80.65,48,79,48z"/>
<path opacity="0.75" fill="#FFFFFF" d="M57,42c-1.65,0-3,1.35-3,3v4c0,1.65,1.35,3,3,3c1.65,0,3-1.35,3-3v-4
C60,43.35,58.65,42,57,42z M57,50c-0.552,0-1-0.447-1-1s0.448-1,1-1c0.553,0,1,0.447,1,1S57.553,50,57,50z"/>
<path fill="#DD7A4F" d="M50,56H38c-0.55,0-1,0.45-1,1v16c0,0.55,0.45,1,1,1h12c0.55,0,1-0.45,1-1V57C51,56.45,50.55,56,50,56z
M38.002,73c0-0.012-0.002-0.02-0.002-0.031c0,0,0.107-3.281,1.025-4.754c0,0,0.263-0.388,0.882-0.646c0,0,1.416-0.465,2.012-0.96
c0.074-0.09,0.149-0.188,0.225-0.296c0.176-0.375,0.109-0.732,0.109-0.732c0.001,0.002,0.003,0.003,0.004,0.004
c-0.339-0.519-0.58-1.146-0.636-1.763c-0.003-0.011-0.007-0.021-0.01-0.033c-0.002,0.001-0.003,0.001-0.005,0.001
c-0.167,0.029-0.364-0.347-0.44-0.837c-0.069-0.447-0.014-0.833,0.122-0.921c0-0.002,0-0.005,0-0.008H41.28
c0.001-0.021,0.004-0.045,0.006-0.066c0-0.155,0.005-0.319,0.019-0.492c0,0,0.141-0.949,0.771-1.618
C42.852,58.962,43.901,59,43.901,59s0.84-0.012,1.617,0.541c0.811,0.415,0.97,1.188,0.97,1.188c0.186,0.341,0.253,0.717,0.265,1.061
c0.013,0.091,0.023,0.188,0.032,0.285l-0.024,0.007c0.166,0.031,0.239,0.45,0.164,0.939c-0.076,0.492-0.274,0.866-0.441,0.839
c-0.029-0.005-0.057-0.022-0.081-0.052c-0.063,0.625-0.339,1.306-0.735,1.854c0.01-0.011,0.016-0.019,0.016-0.019
c-0.013,0.267,0.032,0.476,0.103,0.64c0-0.009,0.001-0.017,0.002-0.025c0,0,0.001,0.006,0.005,0.016
c0.001-0.004,0.002-0.006,0.003-0.01c0,0,0.001,0.018,0.01,0.046c0.005,0.017,0.012,0.032,0.02,0.05
c0.066,0.143,0.287,0.424,1.025,0.706c0,0,1.966,0.673,2.288,1.445c0,0,0.922,2.281,0.855,4.489H38.002z"/>
<g>
<path fill="#4E85AA" d="M56,57.71c1.711-2.161,4.655-2.034,5.564-0.907c-0.543-0.359-1.344-0.635-1.969-0.544
c0.986,0.123,1.302,0.579,1.453,0.793c-0.344-0.243-1.214-0.774-2.099-0.612c0.621,0.076,1.335,0.37,1.628,0.891
c-0.5-0.371-1.338-0.843-2.133-0.66c0.686,0.093,1.374,0.387,1.683,0.953C59.572,57.236,57.573,56.431,56,57.71"/>
<path fill="#4E85AA" d="M66,57.154c-1.711,2.167-4.724,2.02-5.633,0.892c0.543,0.361,1.567,0.769,2.184,0.635
c-0.972-0.166-1.521-0.667-1.667-0.883c0.338,0.244,1.223,0.798,2.108,0.636c-0.623-0.077-1.346-0.393-1.644-0.912
c0.499,0.369,1.357,0.863,2.153,0.686c-0.686-0.098-1.391-0.414-1.703-0.98C62.359,57.613,64.428,58.439,66,57.154"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#4E85AA" d="M64.291,56l0.029,0.202c-0.678,0.004-1.327,0.111-1.948,0.317
c-0.521,0.174-1.101,0.452-1.745,0.837c-0.807,0.491-1.365,0.808-1.672,0.95c-0.658,0.312-1.324,0.489-2.001,0.531
c0.781,0.029,1.521-0.071,2.231-0.304c0.522-0.174,1.11-0.456,1.763-0.849c0.715-0.422,1.266-0.719,1.656-0.893
c0.562-0.242,1.133-0.424,1.723-0.546l0.028,0.2l0.64-0.322L64.291,56z"/>
<polygon fill="#4E85AA" points="57.051,59.375 57.225,59.375 57.422,60.363 57.617,59.375 57.783,59.375 57.908,60.801
57.729,60.801 57.673,59.799 57.48,60.801 57.351,60.801 57.164,59.799 57.104,60.801 56.93,60.801 "/>
<rect x="58.375" y="59.375" fill="#4E85AA" width="0.197" height="1.426"/>
<path fill="#4E85AA" d="M59.24,60.801h-0.195v-1.427h0.234c0.131,0,0.234,0.022,0.312,0.073c0.077,0.049,0.115,0.146,0.115,0.291
c0,0.098-0.02,0.18-0.059,0.242c-0.038,0.062-0.107,0.1-0.209,0.117l0.339,0.703h-0.21l-0.323-0.693H59.24V60.801z M59.24,59.996
c0.08,0,0.145-0.011,0.195-0.034c0.049-0.023,0.075-0.083,0.077-0.181v-0.025c0-0.102-0.021-0.161-0.067-0.181
c-0.042-0.022-0.11-0.031-0.205-0.031V59.996z"/>
<path fill="#4E85AA" d="M60.45,59.374h0.181l0.33,1.427h-0.188l-0.073-0.283h-0.323l-0.067,0.283h-0.194L60.45,59.374z
M60.542,59.742l-0.131,0.615h0.259L60.542,59.742z"/>
<polygon fill="#4E85AA" points="61.449,59.375 61.63,59.375 62.008,60.363 62.008,59.375 62.188,59.375 62.188,60.801
62.008,60.801 61.635,59.801 61.635,60.801 61.449,60.801 "/>
<polygon fill="#4E85AA" points="62.895,59.552 62.633,59.552 62.633,59.374 63.352,59.374 63.352,59.552 63.088,59.552
63.088,60.801 62.895,60.801 "/>
<rect x="63.742" y="59.375" fill="#4E85AA" width="0.195" height="1.426"/>
<path fill="#4E85AA" d="M64.392,60.56c0.007,0.003,0.012,0.006,0.019,0.009c0.02,0.012,0.042,0.022,0.064,0.032
c0.023,0.011,0.048,0.02,0.072,0.027c0.013,0.002,0.025,0.004,0.039,0.007c0.015,0.002,0.027,0.002,0.04,0.002h0.01h0.012
c0.027-0.002,0.056-0.012,0.082-0.029c0.026-0.016,0.046-0.041,0.06-0.074c0.004-0.007,0.007-0.014,0.01-0.021
c0.002-0.008,0.003-0.017,0.005-0.024c0-0.007,0.001-0.015,0.001-0.022c0.001-0.006,0.001-0.014,0.001-0.021
c0-0.051-0.017-0.098-0.051-0.141c-0.034-0.044-0.072-0.083-0.115-0.119c-0.015-0.013-0.028-0.022-0.04-0.033
c-0.014-0.012-0.027-0.022-0.04-0.032c-0.048-0.041-0.091-0.085-0.132-0.135c-0.038-0.05-0.063-0.107-0.076-0.174
c0-0.004-0.001-0.01-0.002-0.017c-0.003-0.005-0.003-0.012-0.003-0.017c-0.001,0-0.002-0.001-0.002-0.001v-0.005
c-0.002-0.006-0.003-0.014-0.005-0.021c0-0.008,0-0.014,0-0.02c0-0.053,0.012-0.105,0.034-0.155
c0.022-0.049,0.054-0.093,0.095-0.129c0.029-0.027,0.06-0.048,0.096-0.061c0.035-0.013,0.07-0.021,0.105-0.023h0.014h0.014
c0.019,0,0.036,0,0.056,0.003c0.02,0.001,0.039,0.005,0.059,0.01c0.024,0.005,0.047,0.011,0.068,0.02
c0.023,0.007,0.046,0.016,0.067,0.025v0.191c-0.002-0.001-0.006-0.003-0.01-0.006c-0.004-0.002-0.007-0.005-0.01-0.005
c-0.019-0.01-0.039-0.02-0.062-0.029c-0.021-0.01-0.045-0.017-0.068-0.022c-0.013-0.004-0.025-0.006-0.039-0.008
c-0.013-0.003-0.026-0.005-0.039-0.005h-0.006h-0.007c-0.029,0.003-0.058,0.01-0.085,0.025c-0.027,0.014-0.05,0.038-0.065,0.071
c-0.004,0.009-0.009,0.019-0.013,0.03c-0.003,0.01-0.006,0.021-0.007,0.033c0,0.005,0,0.011-0.001,0.017
c-0.002,0.005-0.002,0.012-0.002,0.018s0,0.011,0.002,0.018c0.001,0.006,0.001,0.011,0.001,0.016
c0.001,0.012,0.004,0.022,0.007,0.034c0.004,0.011,0.009,0.021,0.013,0.03c0.023,0.045,0.053,0.084,0.089,0.117
c0.037,0.032,0.074,0.064,0.113,0.097c0.043,0.035,0.086,0.07,0.125,0.109c0.04,0.037,0.071,0.083,0.092,0.137
c0.007,0.013,0.011,0.028,0.015,0.045c0.003,0.017,0.005,0.033,0.006,0.049c0,0.009,0.001,0.018,0.001,0.024
c0.001,0.009,0.001,0.018,0.001,0.026c0,0.008,0,0.018-0.001,0.026c0,0.01-0.001,0.02-0.004,0.03
c-0.002,0.023-0.007,0.049-0.013,0.073c-0.007,0.024-0.017,0.048-0.025,0.067c-0.032,0.065-0.077,0.112-0.136,0.138
c-0.058,0.028-0.119,0.042-0.184,0.042c-0.012,0-0.025-0.001-0.039-0.004c-0.014,0-0.028-0.002-0.043-0.003
c-0.029-0.003-0.062-0.011-0.091-0.02c-0.031-0.011-0.059-0.022-0.085-0.036v-0.197C64.381,60.553,64.387,60.557,64.392,60.56"/>
</g>
<rect x="57" y="64" opacity="0.2" width="9" height="2"/>
<rect x="57" y="68" opacity="0.2" width="14" height="2"/>
<rect x="57" y="72" opacity="0.2" width="7" height="2"/>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="46.811" y1="45.5" x2="46.811" y2="28.5415">
<stop offset="0" style="stop-color:#FFFFFF"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M54,45c0-0.229,0.032-0.451,0.081-0.667l-13.663-15.62c-0.183-0.209-0.499-0.229-0.706-0.047
c-0.208,0.182-0.229,0.497-0.047,0.705l13.958,15.958C53.719,45.438,53.856,45.5,54,45.5V45z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="67.2305" y1="45.5" x2="67.2305" y2="28.501">
<stop offset="0" style="stop-color:#FFFFFF"/>
<stop offset="1" style="stop-color:#FFFFFF;stop-opacity:0"/>
</linearGradient>
<path fill="url(#SVGID_2_)" d="M74.372,28.625c-0.207-0.182-0.524-0.161-0.706,0.046L59.919,44.334C59.969,44.549,60,44.771,60,45
v0.5c0.144,0,0.281-0.062,0.376-0.17l14.042-15.999C74.6,29.123,74.579,28.808,74.372,28.625z"/>
</g>
<path opacity="0.75" fill="#FFFFFF" d="M57,156.167l-25,12.5v16.667v13.332C32,200.5,33.5,202,35.333,202H57h21.667
C80.5,202,82,200.5,82,198.666v-13.332v-16.667L57,156.167z M57,179.304l-21.273-10.637L57,158.03l21.272,10.637L57,179.304z"/>
<g opacity="0.2">
<path opacity="0.75" d="M78.667,202H57H35.334C33.5,202,32,200.5,32,198.666v2C32,202.5,33.5,204,35.334,204H57h21.667
C80.5,204,82,202.5,82,200.666v-2C82,200.5,80.5,202,78.667,202z"/>
<polygon opacity="0.75" points="35.863,168.735 37.727,169.667 57,160.03 76.272,169.667 78.137,168.734 57,158.167 "/>
</g>
<path opacity="0.05" enable-background="new " d="M57,156.167v1.863l21.272,10.637L57,179.304V202h21.667
C80.5,202,82,200.5,82,198.666v-13.332v-16.667L57,156.167z"/>
<polygon fill="#FFFFFF" points="43,150.182 43,159.348 43,161.211 43,169.152 57.001,175.818 71,169.152 71,161.211 71,159.348
71,150.182 "/>
<g>
<rect x="46" y="153" fill="#DD7A4F" width="10" height="2"/>
<rect x="46" y="157" fill="#DD7A4F" width="16" height="2"/>
<rect x="46" y="161" fill="#DD7A4F" width="8" height="2"/>
<rect x="46" y="165" fill="#DD7A4F" width="10" height="2"/>
</g>
<path opacity="0.75" fill="#FFFFFF" d="M57,271c7.701,0,14.524,3.808,18.701,9.636l3.253-2.323C74.051,271.471,66.04,267,57,267
s-17.051,4.471-21.954,11.312l3.253,2.323C42.476,274.808,49.299,271,57,271z"/>
<path opacity="0.5" fill="#FFFFFF" d="M33,295.977V294c0-5.198,1.667-10.011,4.486-13.945l-1.627-1.161
C32.805,283.154,31,288.369,31,294v2.905C31.584,296.461,32.257,296.129,33,295.977z"/>
<path opacity="0.5" fill="#FFFFFF" d="M81,295.977c0.743,0.152,1.415,0.484,2,0.929V294c0-5.631-1.805-10.846-4.859-15.106
l-1.626,1.161C79.334,283.989,81,288.802,81,294V295.977z"/>
<path opacity="0.5" fill="#FFFFFF" d="M85,300.875v12c1.65,0,3-1.012,3-2.25v-7.5C88,301.887,86.65,300.875,85,300.875z"/>
<path opacity="0.75" fill="#FFFFFF" d="M80,295.875h-3v22h3c2.75,0,5-2.25,5-5v-12C85,298.125,82.75,295.875,80,295.875z"/>
<path opacity="0.5" fill="#FFFFFF" d="M26,303.125v7.5c0,1.238,1.35,2.25,3,2.25v-12C27.35,300.875,26,301.887,26,303.125z"/>
<path opacity="0.75" fill="#FFFFFF" d="M37,295.875h-3c-2.75,0-5,2.25-5,5v12c0,2.75,2.25,5,5,5h3V295.875z"/>
<rect x="35" y="294.875" fill="#DD7A4F" width="2" height="24"/>
<rect x="77" y="294.875" fill="#DD7A4F" width="2" height="24"/>
<g opacity="0.2">
<path d="M75.701,282.636l0.813-0.581c2.815,3.929,4.479,8.732,4.484,13.922H81V294c0-5.198-1.666-10.011-4.485-13.945l-0.813,0.581
C71.524,274.808,64.701,271,57,271s-14.524,3.808-18.701,9.636l-0.812-0.58C34.666,283.989,33,288.802,33,294v1.977h0.001
c0.005-5.189,1.669-9.993,4.485-13.921l0.812,0.58C42.476,276.808,49.299,273,57,273S71.524,276.808,75.701,282.636z"/>
<path d="M80,317.875h-1v1h-2v1v1h2v-1h1c0.342,0,0.677-0.035,1-0.102v-2C80.677,317.84,80.342,317.875,80,317.875z"/>
<path d="M35,317.875h-1c-2.75,0-5-2.25-5-5c-1.65,0-3-1.012-3-2.25v2c0,1.238,1.35,2.25,3,2.25c0,2.75,2.25,5,5,5h1v1h2v-1v-1h-2
V317.875z"/>
<path d="M85,312.875c0,1.621-0.794,3.055-2,3.97v2c1.206-0.915,2-2.349,2-3.97c1.65,0,3-1.012,3-2.25v-2
C88,311.863,86.65,312.875,85,312.875z"/>
<path d="M78.604,328.939C78.409,328.979,78.207,329,78,329H60.721c-0.349,0.594-0.986,1-1.721,1h-4c-0.734,0-1.372-0.406-1.721-1
c-0.173,0.296-0.279,0.635-0.279,1c0,1.1,0.9,2,2,2h4c0.734,0,1.372-0.406,1.721-1H78c2.757,0,5-2.243,5-5v-2
C83,326.55,81.073,328.637,78.604,328.939z"/>
</g>
<path opacity="0.5" fill="#FFFFFF" d="M81,312.875V324c0,1.654-1.346,3-3,3H57v2h21c2.757,0,5-2.243,5-5v-11.125H81z"/>
<path fill="#DD7A4F" d="M61,328c0,1.1-0.9,2-2,2h-4c-1.1,0-2-0.9-2-2l0,0c0-1.1,0.9-2,2-2h4C60.1,326,61,326.9,61,328L61,328z"/>
<polygon opacity="0.75" fill="#FFFFFF" points="79,397 79,441 51,441 51,445 53.667,445 62.89,445 79,445 83,445 83,441 83,397 "/>
<path opacity="0.75" fill="#FFFFFF" d="M59.917,389H53H37c-3.3,0-6,2.7-6,6v44c0,3.3,2.7,6,6,6h4v-4h-3c-1.65,0-3-1.35-3-3
s1.35-3,3-3h37v-46H59.917z"/>
<polygon fill="#DD7A4F" points="43,437 43,452 46,450 49,452 49,437 "/>
<g>
<polygon opacity="0.08" enable-background="new " points="79,397 79,441 51,441 51,445 53.666,445 62.89,445 79,445 83,445
83,441 83,397 "/>
<path opacity="0.08" enable-background="new " d="M39,441h-1c-1.65,0-3-1.35-3-3s1.35-3,3-3h1v-46h-2c-3.3,0-6,2.7-6,6v44
c0,3.3,2.7,6,6,6h2h2v-4H39z"/>
</g>
<g opacity="0.2">
<polygon points="62.89,445 53.666,445 51,445 51,447 53.666,447 62.89,447 79,447 83,447 83,445 79,445 "/>
<g>
<path d="M31,439v2c0,3.3,2.7,6,6,6h4v-2h-4C33.7,445,31,442.3,31,439z"/>
<path d="M35,438c0,0.352,0.072,0.686,0.186,1c0.415-1.16,1.517-2,2.814-2h37v-2H38C36.35,435,35,436.35,35,438z"/>
</g>
<polygon points="43,452 43,454 46,452 49,454 49,452 46,450 "/>
</g>
<g opacity="0.2">
<rect x="55" y="413" width="10" height="2"/>
<rect x="55" y="417" width="16" height="2"/>
<rect x="55" y="421" width="8" height="2"/>
<rect x="55" y="425" width="10" height="2"/>
<rect x="55" y="429" width="12" height="2"/>
</g>
<polygon opacity="0.5" fill="#FFFFFF" points="77,515 77,550.1 89.953,518.83 61.391,507 58.076,515 "/>
<polygon opacity="0.5" fill="#FFFFFF" points="37,559 37,529.186 23.953,534.591 37.099,566.326 54.787,559 "/>
<polygon opacity="0.08" enable-background="new " points="37,559 37,531.975 27.319,535.984 37.178,559.787 39.078,559 "/>
<g opacity="0.2">
<polygon points="29.563,537.106 29.892,537.901 30.877,540.281 31.672,539.952 30.686,537.571 33.065,536.586 32.737,535.792
30.357,536.777 "/>
<polygon points="37.13,554.421 36.793,554.562 37.13,555.375 "/>
<polygon points="84.343,520.544 84.014,521.339 83.028,523.719 82.234,523.39 83.221,521.009 80.841,520.023 81.17,519.23
83.55,520.216 "/>
<polygon points="63.603,514.514 64.18,513.123 66.56,514.108 66.888,513.314 64.509,512.329 63.714,512 63.385,512.794
62.672,514.514 "/>
</g>
<path fill="#FFFFFF" d="M80.497,562.47c0-0.012-0.001-0.024-0.001-0.037c-0.026,0.015-0.052,0.028-0.078,0.043
C80.445,562.473,80.471,562.472,80.497,562.47z"/>
<path fill="#FFFFFF" d="M33.512,562.47c0.026,0.002,0.052,0.003,0.078,0.006c-0.026-0.015-0.052-0.028-0.077-0.043
C33.513,562.445,33.513,562.458,33.512,562.47z"/>
<g opacity="0.08" enable-background="new ">
<polygon enable-background="new " points="77,516.253 77,543.37 86.587,520.225 "/>
<polygon enable-background="new " points="73.976,515 62.784,510.365 60.864,515 "/>
</g>
<rect x="37" y="515" opacity="0.75" fill="#FFFFFF" width="40" height="44"/>
<rect x="37" y="559" opacity="0.2" width="40" height="2"/>
<rect x="40" y="518" opacity="0.08" enable-background="new " width="34" height="34"/>
<path fill="#DD7A4F" d="M58,529c1.814,0,3.275,1.423,3.327,3.24l0.042,1.479l1.428,0.393C64.094,534.469,65,535.656,65,537
c0,1.654-1.346,3-3,3H52c-1.654,0-3-1.346-3-3s1.346-3,3-3c0.112,0,0.243,0.011,0.412,0.033l2.153,0.293l0.113-2.17
C54.771,530.387,56.23,529,58,529 M58,527c-2.85,0-5.172,2.238-5.319,5.052C52.458,532.021,52.232,532,52,532c-2.762,0-5,2.238-5,5
s2.238,5,5,5h10c2.762,0,5-2.238,5-5c0-2.302-1.558-4.235-3.674-4.816C63.245,529.307,60.895,527,58,527L58,527z"/>
<g opacity="0.2">
<polygon points="71,549 68,549 68,550 71,550 72,550 72,549 72,546 71,546 "/>
<polygon points="71,520 68,520 68,521 71,521 71,524 72,524 72,521 72,520 "/>
<polygon points="43,546 42,546 42,549 42,550 43,550 46,550 46,549 43,549 "/>
<polygon points="42,520 42,521 42,524 43,524 43,521 46,521 46,520 43,520 "/>
</g>
<path opacity="0.75" fill="#FFFFFF" d="M82,645H61v-13c0-1.65-1.35-3-3-3H32c-1.65,0-3,1.35-3,3v34c0,1.65,1.35,3,3,3h21v13
c0,1.65,1.35,3,3,3h26c1.65,0,3-1.35,3-3v-34C85,646.35,83.65,645,82,645z"/>
<g opacity="0.2">
<rect x="56" y="648" width="10" height="2"/>
<rect x="56" y="652" width="16" height="2"/>
<rect x="56" y="656" width="8" height="2"/>
<rect x="56" y="660" width="10" height="2"/>
<rect x="56" y="664" width="12" height="2"/>
<rect x="56" y="668" width="10" height="2"/>
<rect x="56" y="672" width="16" height="2"/>
<rect x="56" y="676" width="8" height="2"/>
<rect x="56" y="680" width="10" height="2"/>
</g>
<g opacity="0.2">
<rect x="32" y="632" width="10" height="2"/>
<rect x="32" y="636" width="16" height="2"/>
<rect x="32" y="640" width="8" height="2"/>
<rect x="32" y="644" width="10" height="2"/>
<rect x="32" y="648" width="12" height="2"/>
<rect x="32" y="652" width="10" height="2"/>
<rect x="32" y="656" width="16" height="2"/>
<rect x="32" y="660" width="8" height="2"/>
<rect x="32" y="664" width="10" height="2"/>
</g>
<path opacity="0.2" d="M77.435,676.606l-8.485-8.485c-0.389-0.389-1.025-0.389-1.414,0l-1.379-1.379
c3.995-4.715,3.777-11.78-0.671-16.229c-4.685-4.685-12.284-4.685-16.971,0.002s-4.686,12.285,0,16.97
c4.447,4.448,11.513,4.666,16.228,0.671l1.379,1.379c-0.389,0.389-0.389,1.025,0,1.414l8.485,8.485c0.389,0.389,1.025,0.389,1.414,0
l1.414-1.414C77.823,677.632,77.824,676.995,77.435,676.606z M50.211,665.789c-3.742-3.743-3.742-9.834,0-13.577
c3.743-3.743,9.835-3.743,13.578,0c3.742,3.743,3.742,9.834,0,13.577C60.046,669.532,53.954,669.532,50.211,665.789z"/>
<circle fill="#FFFFFF" cx="57" cy="657" r="11.4"/>
<g>
<polygon fill="#DD7A4F" points="51,652 51,648 50,648 50,649 49,649 49,650 50,650 50,652 49,652 49,653 50,653 51,653 52,653
52,652 "/>
<g>
<rect x="53" y="649" fill="#DD7A4F" width="1" height="3"/>
<rect x="56" y="649" fill="#DD7A4F" width="1" height="3"/>
<rect x="54" y="648" fill="#DD7A4F" width="2" height="1"/>
<rect x="54" y="652" fill="#DD7A4F" width="2" height="1"/>
</g>
<polygon fill="#DD7A4F" points="60,652 60,648 59,648 59,649 58,649 58,650 59,650 59,652 58,652 58,653 59,653 60,653 61,653
61,652 "/>
<g>
<rect x="62" y="649" fill="#DD7A4F" width="1" height="3"/>
<rect x="65" y="649" fill="#DD7A4F" width="1" height="3"/>
<rect x="63" y="648" fill="#DD7A4F" width="2" height="1"/>
<rect x="63" y="652" fill="#DD7A4F" width="2" height="1"/>
</g>
<polygon fill="#DD7A4F" points="49,658 49,654 48,654 48,655 47,655 47,656 48,656 48,658 47,658 47,659 48,659 49,659 50,659
50,658 "/>
<g>
<rect x="51" y="655" fill="#DD7A4F" width="1" height="3"/>
<rect x="54" y="655" fill="#DD7A4F" width="1" height="3"/>
<rect x="52" y="654" fill="#DD7A4F" width="2" height="1"/>
<rect x="52" y="658" fill="#DD7A4F" width="2" height="1"/>
</g>
<polygon fill="#DD7A4F" points="58,658 58,654 57,654 57,655 56,655 56,656 57,656 57,658 56,658 56,659 57,659 58,659 59,659
59,658 "/>
<polygon fill="#DD7A4F" points="67,658 67,654 66,654 66,655 65,655 65,656 66,656 66,658 65,658 65,659 66,659 67,659 68,659
68,658 "/>
<g>
<rect x="60" y="655" fill="#DD7A4F" width="1" height="3"/>
<rect x="63" y="655" fill="#DD7A4F" width="1" height="3"/>
<rect x="61" y="654" fill="#DD7A4F" width="2" height="1"/>
<rect x="61" y="658" fill="#DD7A4F" width="2" height="1"/>
</g>
<polygon fill="#DD7A4F" points="51,664 51,660 50,660 50,661 49,661 49,662 50,662 50,664 49,664 49,665 50,665 51,665 52,665
52,664 "/>
<g>
<rect x="53" y="661" fill="#DD7A4F" width="1" height="3"/>
<rect x="56" y="661" fill="#DD7A4F" width="1" height="3"/>
<rect x="54" y="660" fill="#DD7A4F" width="2" height="1"/>
<rect x="54" y="664" fill="#DD7A4F" width="2" height="1"/>
</g>
<polygon fill="#DD7A4F" points="60,664 60,660 59,660 59,661 58,661 58,662 59,662 59,664 58,664 58,665 59,665 60,665 61,665
61,664 "/>
<g>
<rect x="62" y="661" fill="#DD7A4F" width="1" height="3"/>
<rect x="65" y="661" fill="#DD7A4F" width="1" height="3"/>
<rect x="63" y="660" fill="#DD7A4F" width="2" height="1"/>
<rect x="63" y="664" fill="#DD7A4F" width="2" height="1"/>
</g>
</g>
<path fill="#7B94A5" d="M77.435,674.606l-8.485-8.485c-0.389-0.389-1.025-0.389-1.414,0l-1.379-1.379
c3.995-4.715,3.777-11.78-0.671-16.229c-4.685-4.685-12.285-4.685-16.971,0.002c-4.687,4.687-4.686,12.285,0,16.97
c4.447,4.448,11.513,4.666,16.228,0.671l1.379,1.379c-0.389,0.389-0.389,1.025,0,1.414l8.485,8.485c0.389,0.389,1.025,0.389,1.414,0
l1.414-1.414C77.823,675.632,77.824,674.995,77.435,674.606z M50.211,663.789c-3.743-3.743-3.743-9.834,0-13.577
c3.743-3.743,9.834-3.743,13.578,0c3.742,3.743,3.742,9.834,0,13.577C60.046,667.532,53.954,667.532,50.211,663.789z"/>
<g opacity="0.2">
<path d="M82,685H56c-1.65,0-3-1.35-3-3v2c0,1.65,1.35,3,3,3h26c1.65,0,3-1.35,3-3v-2C85,683.65,83.65,685,82,685z"/>
<path d="M53,669H32c-1.65,0-3-1.35-3-3v2c0,1.65,1.35,3,3,3h21V669z"/>
</g>
<path fill="#FFFFFF" d="M62.797,534.112l-1.428-0.393l-0.042-1.479C61.275,530.423,59.814,529,58,529
c-1.77,0-3.229,1.387-3.322,3.156l-0.113,2.17l-2.152-0.293C52.243,534.011,52.112,534,52,534c-1.654,0-3,1.346-3,3s1.346,3,3,3h10
c1.654,0,3-1.346,3-3C65,535.656,64.094,534.469,62.797,534.112z"/>
</svg>

Before

Width:  |  Height:  |  Size: 21 KiB

View File

@ -1,26 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, 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="98px" height="98px" viewBox="0 0 98 98" enable-background="new 0 0 98 98" xml:space="preserve">
<path fill="#FFFFFF" d="M97.498,43.062l-10.425-3.683c-0.236-0.085-0.455-0.282-0.52-0.526c-0.878-3.292-2.215-6.471-3.936-9.45
c-0.061-0.104-0.101-0.221-0.108-0.337c0-0.114,0.015-0.228,0.064-0.334l4.716-9.935c-0.004-0.005-0.01-0.01-0.014-0.016
l0.013-0.027c-2.438-3.114-5.248-5.925-8.36-8.368l-9.925,4.723c-0.104,0.049-0.217,0.073-0.33,0.073
c-0.133,0-0.244-0.034-0.362-0.104C65.678,13.555,63,12.343,60,11.474v0.063c0-0.111-0.758-0.237-1.133-0.337
c-0.242-0.064-0.449-0.246-0.534-0.484l-3.686-10.36C52.688,0.12,50.7,0,48.736,0c-1.966,0-3.952,0.12-5.912,0.356l-3.681,10.361
c-0.084,0.238-0.036,0.418-0.279,0.485C38.491,11.302,38,11.428,38,11.539v-0.064c-3,0.869-5.944,2.08-8.578,3.605
c-0.118,0.069-0.374,0.104-0.507,0.104c-0.111,0-0.287-0.025-0.391-0.075l-9.957-4.722c-3.11,2.443-5.934,5.254-8.375,8.369
l0.006,0.027c-0.004,0.005-0.013,0.01-0.017,0.016l4.716,9.935c0.051,0.106,0.068,0.222,0.068,0.335
c-0.008,0.116-0.038,0.231-0.098,0.335c-1.721,2.976-3.039,6.156-3.917,9.451c-0.066,0.244-0.247,0.441-0.484,0.526l-10.23,3.684
C-0.001,45.019,0,47.007,0,48.978C0,48.985,0,48.992,0,49s0,0.015,0,0.022c0,1.967,0,3.954,0.235,5.915l10.291,3.684
c0.236,0.085,0.389,0.281,0.454,0.525c0.878,3.292,2.181,6.472,3.902,9.45c0.061,0.104,0.083,0.22,0.09,0.337
c0,0.113-0.021,0.229-0.071,0.334l-4.721,9.936c0.004,0.005,0.008,0.011,0.012,0.016l-0.014,0.027
c2.438,3.113,5.247,5.925,8.359,8.368l9.925-4.724c0.104-0.049,0.217-0.073,0.33-0.073c0.133,0,0.512,0.034,0.63,0.104
C32.056,84.444,35,85.657,38,86.526v-0.064c0,0.112,0.491,0.238,0.865,0.338c0.243,0.064,0.316,0.246,0.401,0.483l3.618,10.361
C44.844,97.88,46.799,98,48.763,98c1.965,0,3.936-0.12,5.896-0.355l3.672-10.362c0.084-0.237,0.299-0.418,0.542-0.484
c0.373-0.1,1.127-0.225,1.127-0.337v0.065c3-0.869,5.677-2.081,8.311-3.605c0.118-0.069,0.24-0.104,0.374-0.104
c0.111,0,0.22,0.025,0.323,0.075l9.924,4.723c3.11-2.443,5.916-5.255,8.357-8.369l-0.013-0.027c0.004-0.005,0.008-0.011,0.012-0.016
l-4.718-9.936c-0.051-0.106-0.069-0.221-0.068-0.335c0.007-0.116,0.037-0.231,0.097-0.335c1.721-2.976,3.038-6.157,3.917-9.451
c0.066-0.244,0.247-0.44,0.484-0.525l10.498-3.685C97.734,52.981,98,50.993,98,49.022c0-0.008,0-0.015,0-0.022s0-0.015,0-0.022
C98,47.011,97.732,45.023,97.498,43.062z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.4, 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="98px" height="98px" viewBox="0 0 98 98" enable-background="new 0 0 98 98" xml:space="preserve">
<path fill="#415766" d="M79.271,36.387c-0.006-0.005-0.015-0.01-0.021-0.015l1.052-0.543c0,0-7.029-5.242-15.771-8.287L70.051,20
H27.447l5.657,7.727c-8.439,2.993-15.26,8.305-15.26,8.305l3.488,1.804l7.17,3.755c0.104,0.055,0.219,0.083,0.331,0.083
c0.068,0,0.13-0.04,0.196-0.06c2.789-1.803,5.8-3.227,8.971-4.234v2.48v4v18.064L23.572,93.822c-0.387,0.873-0.431,1.984,0.09,2.785
S24.941,98,25.896,98H71.57c0.953,0,1.836-0.592,2.354-1.393c0.521-0.801,0.62-1.855,0.233-2.729L60,61.925V43.86v-4v-2.37
c0.225,0.073,0.445,0.151,0.669,0.229c0.384,0.13,0.767,0.262,1.146,0.403c2.371,0.919,4.643,2.077,6.781,3.455
c0.104,0.054,0.213,0.097,0.324,0.097c0.114,0,0.229-0.028,0.332-0.081l7.268-3.809l1.472-0.761l1.237-0.628l0.041,0.021
c-0.014-0.011-0.025-0.022-0.041-0.033l0.02-0.009L79.271,36.387z"/>
<circle fill="#DA3C3B" cx="44.682" cy="25.03" r="6.987"/>
<polygon fill="#DA3C3B" points="57.486,62.521 57.486,37.451 40.661,37.451 40.661,62.521 26.237,94.964 71.91,94.964 "/>
<circle fill="#DA3C3B" cx="57.676" cy="17.171" r="4.527"/>
<circle fill="#DA3C3B" cx="47.525" cy="6.342" r="3.37"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1,165 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="50px" height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1_1_" display="none">
<g display="inline" opacity="0.55">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.395,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.483,2.36-5.541,4.149-10.152,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.603-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.755,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.01c2.061-0.101,3.846-0.562,5.324-1.311
c2.899-1.463,5.188-3.718,6.451-6.83c0.641-1.572,1.124-3.396,1.02-5.6c-0.195-4.172-1.892-7.002-4.125-9.16
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.018,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#ACACAC" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.395,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.483,2.36-5.541,4.149-10.152,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.603-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.01c2.061-0.101,3.846-0.562,5.324-1.311
c2.899-1.463,5.188-3.718,6.451-6.83c0.641-1.572,1.124-3.396,1.02-5.598c-0.195-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#ACACAC" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.018,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#ACACAC" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g id="Layer_2" display="none">
<g display="inline" opacity="0.55">
<path fill="#FFFFFF" d="M37.562,16.313l-12.082-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
c-0.005,0-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324
l0.025,0.015c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286
c0,0.004,0,0.009,0,0.013c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.117-0.012,0.234-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.032,0-0.063-0.001-0.098c-0.06,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.267l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.436-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.047c0-0.002-0.001-0.003-0.002-0.004
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111s0.325-0.037,0.448-0.11l10.441-6.232l0.726-0.433
L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.034,5.533c-0.123,0.075-0.224,0.252-0.224,0.395l-0.021,9.268
c0,0.142,0.096,0.188,0.209,0.104l8.426-6.123c0.115-0.084,0.22-0.27,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.667
c0.009,0.142,0.112,0.326,0.229,0.41l8.489,6.209c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g display="inline">
<path fill="#ACACAC" d="M37.562,15.313l-12.082-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
c-0.005,0-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324
l0.025,0.015c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286
c0,0.004,0,0.009,0,0.013c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.117-0.012,0.234-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.032,0-0.063-0.001-0.098c-0.06,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.267l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.436-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.047c0-0.002-0.001-0.003-0.002-0.004
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111s0.325-0.037,0.448-0.11l10.441-6.232l0.726-0.433
L35.666,28.549z"/>
<path fill="#ACACAC" d="M35.427,18.699l-9.034,5.533c-0.123,0.075-0.224,0.252-0.224,0.395l-0.021,9.268
c0,0.142,0.096,0.188,0.209,0.104l8.426-6.123c0.115-0.084,0.22-0.27,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#ACACAC" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.667
c0.009,0.142,0.112,0.326,0.229,0.41l8.489,6.209c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
</g>
<g opacity="0.3">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.096c-0.054-0.029-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.394,1.44,1.394c0.618,0,1.052-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.021-2.775-2.7c0-1.557,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.096z"/>
<path fill="#FFFFFF" d="M16.677,30.096c-0.053-0.029-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.394,1.441,1.394c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.021-2.775-2.7c0-1.557,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.096z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.149,2.699-2.754,2.699s-2.753-1.206-2.753-2.699c0-1.488,1.148-2.697,2.753-2.697
C36.148,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.78,0-1.36,0.614-1.36,1.371c0,0.76,0.58,1.374,1.36,1.374
c0.779,0,1.358-0.614,1.358-1.374C35.904,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.006-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.179-0.816,0.427
c0,0.318,0.387,0.43,0.603,0.499l0.364,0.114c0.854,0.271,1.244,0.855,1.244,1.491c0,1.31-1.152,1.747-2.16,1.747
c-0.701,0-1.355-0.125-1.42-0.141v-1.199c0.117,0.027,0.669,0.191,1.243,0.191c0.653,0,0.956-0.189,0.956-0.484
c0-0.266-0.261-0.418-0.589-0.521c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.522
c0-0.976,0.731-1.632,1.944-1.632c0.641,0,1.244,0.156,1.283,0.166L24.79,29.785L24.79,29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.359,0.294,0.65,0.656,0.65c0.359,0,0.653-0.291,0.653-0.65V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.357,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.291,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.649-0.651c-0.361,0-0.652,0.292-0.652,0.651v6.923
c0,0.359,0.291,0.65,0.652,0.65c0.357,0,0.649-0.291,0.649-0.65V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.356,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.293,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.648-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.357,0,0.648-0.292,0.648-0.654V22.998z"/>
</g>
<g>
<rect x="18.484" y="27.602" fill="#8C8C90" width="1.316" height="5.213"/>
<path fill="#8C8C90" d="M30.407,29.096c-0.054-0.029-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.394,1.44,1.394c0.618,0,1.052-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.021-2.775-2.7c0-1.557,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.096z"/>
<path fill="#8C8C90" d="M16.677,29.096c-0.053-0.029-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.394,1.441,1.394c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.021-2.775-2.7c0-1.557,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.096z"/>
<path fill="#8C8C90" d="M37.3,30.205c0,1.493-1.149,2.699-2.754,2.699s-2.753-1.206-2.753-2.699c0-1.488,1.148-2.697,2.753-2.697
C36.148,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.78,0-1.36,0.614-1.36,1.371c0,0.76,0.58,1.374,1.36,1.374
c0.779,0,1.358-0.614,1.358-1.374C35.904,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#8C8C90" d="M24.79,28.785c-0.02-0.006-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.179-0.816,0.427
c0,0.318,0.387,0.43,0.603,0.499l0.364,0.114c0.854,0.271,1.244,0.855,1.244,1.491c0,1.31-1.152,1.747-2.16,1.747
c-0.701,0-1.355-0.125-1.42-0.141v-1.199c0.117,0.027,0.669,0.191,1.243,0.191c0.653,0,0.956-0.189,0.956-0.484
c0-0.266-0.261-0.418-0.589-0.521c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166L24.79,28.785L24.79,28.785z"/>
<path fill="#8C8C90" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#8C8C90" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#8C8C90" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#8C8C90" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C90" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#8C8C90" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.357,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.291,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C90" d="M32.829,17.745c0-0.359-0.292-0.651-0.649-0.651c-0.361,0-0.652,0.292-0.652,0.651v6.923
c0,0.36,0.291,0.651,0.652,0.651c0.357,0,0.649-0.291,0.649-0.651V17.745z"/>
<path fill="#8C8C90" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.356,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.293,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#8C8C90" d="M40,21.998c0-0.358-0.291-0.65-0.648-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.357,0,0.648-0.292,0.648-0.654V21.998z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,50 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="50px" height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g opacity="0.35">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.756,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.599c-0.196-4.173-1.892-7.003-4.125-9.161
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g>
<path fill="#8C8C94" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.598c-0.196-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#8C8C94" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#8C8C94" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 4.8 KiB

View File

@ -1,144 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="125px" height="60px" viewBox="0 0 125 60" enable-background="new 0 0 125 60" xml:space="preserve">
<path d="M22.116,52.275c-0.768,0-1.543-0.047-2.309-0.14l-1.437-4.043c-0.033-0.094-0.11-0.163-0.205-0.188
c-1.285-0.344-2.526-0.857-3.688-1.529c-0.046-0.027-0.099-0.041-0.151-0.041c-0.043,0-0.088,0.01-0.128,0.027l-3.877,1.845
c-1.215-0.952-2.312-2.052-3.266-3.267l1.843-3.877c0.042-0.088,0.038-0.191-0.012-0.278c-0.672-1.16-1.187-2.402-1.53-3.688
c-0.026-0.095-0.096-0.171-0.189-0.205l-4.043-1.438c-0.093-0.764-0.139-1.54-0.139-2.309c0-0.771,0.046-1.547,0.139-2.31
L7.167,29.4c0.093-0.034,0.163-0.11,0.189-0.206c0.343-1.285,0.858-2.526,1.53-3.688c0.05-0.086,0.054-0.19,0.012-0.279
l-1.843-3.876c0.954-1.215,2.051-2.312,3.266-3.266l3.877,1.843c0.041,0.02,0.085,0.029,0.128,0.029c0.052,0,0.104-0.013,0.151-0.04
c1.028-0.595,2.122-1.068,3.254-1.407v9.519l-5.54,12.459c-0.151,0.341-0.121,0.729,0.083,1.045c0.203,0.312,0.547,0.5,0.92,0.5
h17.842c0.373,0,0.717-0.188,0.92-0.5s0.234-0.704,0.083-1.045l-5.54-12.459V18.51c1.133,0.339,2.226,0.812,3.254,1.407
c0.046,0.027,0.098,0.04,0.149,0.04c0.045,0,0.089-0.009,0.129-0.028l3.877-1.843c1.216,0.954,2.313,2.05,3.265,3.266l-1.842,3.876
c-0.043,0.089-0.039,0.193,0.011,0.279c0.672,1.162,1.187,2.403,1.53,3.688c0.025,0.096,0.096,0.172,0.189,0.206l4.043,1.437
c0.092,0.766,0.139,1.542,0.139,2.309c0,0.769-0.047,1.545-0.139,2.311l-4.043,1.438c-0.093,0.033-0.164,0.109-0.189,0.205
c-0.343,1.285-0.857,2.526-1.53,3.688c-0.05,0.086-0.055,0.188-0.011,0.278l1.842,3.877c-0.952,1.216-2.049,2.312-3.265,3.267
l-3.877-1.844c-0.041-0.021-0.084-0.028-0.129-0.028c-0.051,0-0.103,0.016-0.149,0.041c-1.162,0.672-2.402,1.188-3.688,1.528
c-0.095,0.024-0.172,0.098-0.205,0.188l-1.437,4.043C23.659,52.229,22.883,52.275,22.116,52.275z"/>
<circle fill="#C63926" cx="20.494" cy="13.616" r="2.729"/>
<polygon fill="#C63926" points="25.402,28.261 25.402,18.468 18.83,18.468 18.83,28.261 13.195,40.936 31.037,40.936 "/>
<circle fill="#C63926" cx="25.57" cy="10.546" r="1.769"/>
<circle fill="#C63926" cx="21.605" cy="6.316" r="1.316"/>
<g>
<g>
<path d="M47.02,45.236h0.849V44.84c0-0.869,0.125-1.507,0.375-1.896c0.254-0.391,0.682-0.582,1.285-0.582
c0.242,0,0.461,0.014,0.657,0.041c0.195,0.025,0.396,0.089,0.597,0.184l-0.249,0.862c-0.167-0.073-0.323-0.123-0.466-0.146
c-0.145-0.023-0.28-0.037-0.412-0.037c-0.188,0-0.332,0.037-0.432,0.107c-0.104,0.072-0.181,0.193-0.231,0.352
c-0.054,0.16-0.085,0.357-0.099,0.605s-0.021,0.545-0.021,0.902h1.451v0.906h-1.451v6.064h-1.004v-6.064H47.02V45.236z"/>
<path d="M50.912,48.723c0-1.26,0.215-2.177,0.647-2.771c0.431-0.591,1.046-0.888,1.85-0.888c0.854,0,1.485,0.305,1.889,0.912
c0.403,0.599,0.608,1.521,0.608,2.744c0,1.268-0.22,2.188-0.655,2.776c-0.44,0.586-1.054,0.876-1.842,0.876
c-0.857,0-1.486-0.303-1.891-0.905C51.113,50.863,50.912,49.951,50.912,48.723z M51.958,48.723c0,0.408,0.026,0.779,0.075,1.113
c0.054,0.338,0.136,0.624,0.254,0.866c0.114,0.239,0.265,0.431,0.452,0.562c0.186,0.139,0.408,0.207,0.67,0.207
c0.479,0,0.844-0.219,1.087-0.647c0.242-0.435,0.361-1.13,0.361-2.101c0-0.402-0.024-0.769-0.078-1.111
c-0.05-0.338-0.132-0.627-0.25-0.869c-0.115-0.238-0.266-0.426-0.452-0.565c-0.189-0.132-0.408-0.196-0.669-0.196
c-0.475,0-0.833,0.219-1.083,0.65C52.078,47.066,51.958,47.764,51.958,48.723z"/>
<path d="M57.172,45.236h0.71l0.18,0.74h0.044c0.129-0.271,0.301-0.482,0.51-0.642c0.206-0.147,0.459-0.228,0.758-0.228
c0.214,0,0.454,0.041,0.724,0.127l-0.196,1.013c-0.241-0.082-0.455-0.124-0.64-0.124c-0.299,0-0.538,0.091-0.726,0.26
c-0.184,0.176-0.306,0.4-0.362,0.693v5.131h-1.003L57.172,45.236L57.172,45.236z"/>
<path d="M63.729,47.326c0-1.654,0.266-2.91,0.793-3.764c0.53-0.854,1.338-1.285,2.431-1.285c0.586,0,1.084,0.117,1.489,0.354
c0.41,0.239,0.74,0.577,0.996,1.013c0.256,0.439,0.442,0.971,0.565,1.592c0.119,0.621,0.183,1.318,0.183,2.09
c0,1.656-0.269,2.914-0.804,3.77c-0.534,0.854-1.347,1.279-2.432,1.279c-0.578,0-1.069-0.116-1.481-0.355
c-0.408-0.233-0.74-0.574-1.003-1.006c-0.26-0.44-0.448-0.972-0.563-1.595C63.782,48.801,63.729,48.094,63.729,47.326z
M64.829,47.326c0,0.55,0.037,1.068,0.119,1.561c0.077,0.496,0.198,0.93,0.37,1.301c0.162,0.371,0.387,0.668,0.654,0.893
c0.271,0.229,0.592,0.335,0.978,0.335c0.696,0,1.226-0.335,1.59-1.003c0.358-0.676,0.544-1.701,0.544-3.084
c0-0.541-0.043-1.059-0.121-1.549s-0.201-0.928-0.367-1.305c-0.17-0.375-0.388-0.678-0.656-0.896
c-0.271-0.228-0.601-0.339-0.987-0.339c-0.688,0-1.218,0.339-1.576,1.003C65.012,44.916,64.829,45.939,64.829,47.326z"/>
<path d="M71.589,45.236h0.708l0.159,0.748h0.052c0.35-0.61,0.889-0.92,1.621-0.92c0.734,0,1.284,0.273,1.65,0.826
c0.371,0.549,0.554,1.442,0.554,2.689c0,0.59-0.063,1.111-0.183,1.584c-0.118,0.472-0.291,0.865-0.521,1.195
c-0.219,0.33-0.491,0.586-0.813,0.758c-0.317,0.168-0.674,0.256-1.064,0.256c-0.27,0-0.484-0.018-0.643-0.046
c-0.158-0.032-0.33-0.104-0.519-0.202V55h-1.004L71.589,45.236L71.589,45.236z M72.593,51.104c0.13,0.115,0.276,0.203,0.441,0.271
c0.161,0.062,0.379,0.099,0.647,0.099c0.491,0,0.881-0.25,1.17-0.756c0.287-0.499,0.432-1.213,0.432-2.144
c0-0.396-0.021-0.75-0.075-1.068c-0.052-0.312-0.132-0.586-0.24-0.812c-0.116-0.229-0.254-0.399-0.43-0.527
c-0.171-0.128-0.386-0.188-0.634-0.188c-0.68,0-1.114,0.407-1.312,1.237L72.593,51.104L72.593,51.104z"/>
<path d="M81.82,51.734c-0.223,0.201-0.508,0.358-0.853,0.475c-0.342,0.107-0.702,0.166-1.087,0.166
c-0.438,0-0.816-0.088-1.135-0.256c-0.322-0.17-0.587-0.418-0.796-0.739c-0.211-0.321-0.364-0.706-0.464-1.151
c-0.098-0.443-0.143-0.949-0.143-1.506c0-1.188,0.219-2.094,0.653-2.722c0.438-0.618,1.054-0.937,1.853-0.937
c0.266,0,0.52,0.033,0.776,0.1c0.256,0.064,0.485,0.197,0.69,0.389c0.203,0.201,0.367,0.473,0.496,0.824
C81.938,46.73,82,47.189,82,47.759c0,0.158-0.003,0.332-0.02,0.513c-0.017,0.18-0.031,0.367-0.049,0.562h-3.543
c0,0.4,0.028,0.766,0.096,1.09c0.064,0.321,0.17,0.6,0.31,0.826c0.138,0.229,0.317,0.408,0.535,0.531
c0.22,0.123,0.489,0.189,0.817,0.189c0.252,0,0.498-0.051,0.744-0.142c0.246-0.093,0.438-0.202,0.562-0.334L81.82,51.734z
M81.04,48c0.021-0.703-0.08-1.215-0.29-1.537c-0.216-0.324-0.508-0.486-0.88-0.486c-0.433,0-0.771,0.162-1.021,0.486
c-0.252,0.322-0.397,0.834-0.447,1.537H81.04z"/>
<path d="M86.822,52.209v-4.25c0-0.703-0.077-1.206-0.242-1.52c-0.162-0.312-0.452-0.463-0.87-0.463
c-0.373,0-0.683,0.105-0.922,0.33c-0.242,0.228-0.421,0.5-0.526,0.823v5.077h-1.01v-6.973h0.727l0.186,0.738h0.039
c0.179-0.252,0.418-0.467,0.719-0.644c0.301-0.179,0.663-0.269,1.079-0.269c0.3,0,0.562,0.045,0.79,0.127
c0.229,0.086,0.416,0.224,0.57,0.426c0.154,0.201,0.271,0.467,0.354,0.806c0.075,0.335,0.114,0.757,0.114,1.263v4.523h-1.006
L86.822,52.209L86.822,52.209z"/>
<path d="M89.326,50.91c0.174,0.123,0.427,0.234,0.744,0.342c0.322,0.107,0.685,0.161,1.095,0.161c0.519,0,0.944-0.124,1.271-0.38
c0.326-0.26,0.489-0.655,0.489-1.215c0-0.357-0.096-0.672-0.28-0.943c-0.188-0.27-0.42-0.518-0.694-0.748
c-0.283-0.223-0.583-0.449-0.901-0.664c-0.32-0.223-0.619-0.463-0.898-0.73c-0.276-0.26-0.51-0.563-0.696-0.912
c-0.188-0.348-0.278-0.76-0.278-1.24c0-0.781,0.234-1.355,0.703-1.732c0.467-0.382,1.082-0.566,1.834-0.566
c0.464,0,0.879,0.047,1.24,0.129c0.363,0.082,0.656,0.189,0.881,0.318l-0.339,0.92c-0.164-0.104-0.403-0.194-0.716-0.281
c-0.312-0.077-0.672-0.123-1.08-0.123c-0.502,0-0.875,0.123-1.117,0.371c-0.239,0.244-0.359,0.557-0.359,0.929
c0,0.326,0.092,0.61,0.276,0.862c0.187,0.252,0.421,0.488,0.698,0.711s0.578,0.449,0.9,0.677c0.316,0.228,0.616,0.483,0.896,0.759
c0.282,0.281,0.514,0.6,0.696,0.949c0.188,0.352,0.281,0.768,0.281,1.256c0,0.816-0.242,1.457-0.728,1.924
c-0.481,0.467-1.169,0.697-2.05,0.697c-0.56,0-1.014-0.05-1.375-0.152c-0.354-0.101-0.643-0.22-0.855-0.348L89.326,50.91z"/>
<path d="M94.396,45.236h0.851v-1.381l1.005-0.318v1.699h1.505v0.906h-1.505v4.153c0,0.408,0.049,0.706,0.146,0.886
c0.096,0.182,0.256,0.271,0.479,0.271c0.185,0,0.347-0.021,0.479-0.062c0.138-0.041,0.281-0.101,0.438-0.16l0.195,0.797
c-0.202,0.099-0.433,0.181-0.679,0.246c-0.244,0.06-0.502,0.084-0.771,0.084c-0.466,0-0.803-0.149-1.003-0.451
c-0.196-0.301-0.298-0.793-0.298-1.473v-4.293h-0.851v-0.904H94.396z"/>
<path d="M98.975,45.654c0.269-0.168,0.594-0.297,0.981-0.394c0.387-0.095,0.796-0.141,1.222-0.141
c0.391,0,0.702,0.062,0.943,0.174c0.234,0.119,0.42,0.28,0.555,0.476c0.135,0.203,0.225,0.43,0.268,0.683
c0.043,0.259,0.062,0.526,0.062,0.804c0,0.559-0.01,1.104-0.032,1.631c-0.027,0.532-0.037,1.036-0.037,1.512
c0,0.353,0.01,0.682,0.037,0.981c0.022,0.302,0.068,0.586,0.131,0.854h-0.783l-0.246-0.821h-0.057
c-0.139,0.243-0.338,0.454-0.605,0.631c-0.268,0.179-0.627,0.261-1.081,0.261c-0.498,0-0.905-0.174-1.224-0.521
c-0.321-0.351-0.479-0.829-0.479-1.444c0-0.4,0.063-0.734,0.199-1.003c0.133-0.272,0.323-0.491,0.565-0.657
c0.248-0.164,0.537-0.287,0.871-0.354c0.336-0.07,0.717-0.104,1.129-0.104c0.092,0,0.187,0,0.274,0
c0.095,0,0.19,0.004,0.289,0.008c0.03-0.283,0.044-0.545,0.044-0.769c0-0.526-0.076-0.899-0.236-1.108
c-0.154-0.215-0.438-0.322-0.855-0.322c-0.256,0-0.54,0.041-0.842,0.119c-0.303,0.074-0.56,0.179-0.756,0.303L98.975,45.654z
M101.971,49.031c-0.093-0.014-0.181-0.021-0.272-0.025c-0.093-0.004-0.183-0.009-0.275-0.009c-0.222,0-0.438,0.021-0.646,0.06
c-0.215,0.037-0.399,0.104-0.566,0.198c-0.163,0.095-0.295,0.214-0.391,0.371c-0.098,0.161-0.146,0.362-0.146,0.603
c0,0.367,0.091,0.66,0.267,0.867c0.182,0.197,0.414,0.307,0.697,0.307c0.387,0,0.686-0.096,0.893-0.28
c0.216-0.187,0.361-0.39,0.443-0.608v-1.48h-0.004V49.031z"/>
<path d="M108.369,51.857c-0.23,0.174-0.496,0.311-0.793,0.394c-0.299,0.083-0.611,0.124-0.939,0.124
c-0.441,0-0.818-0.088-1.125-0.256c-0.309-0.17-0.556-0.418-0.748-0.739c-0.19-0.321-0.332-0.71-0.418-1.155
c-0.09-0.455-0.135-0.959-0.135-1.502c0-1.188,0.213-2.094,0.639-2.722c0.422-0.618,1.027-0.937,1.818-0.937
c0.363,0,0.676,0.033,0.932,0.1c0.26,0.064,0.486,0.15,0.672,0.251l-0.278,0.879c-0.371-0.213-0.776-0.317-1.211-0.317
c-0.503,0-0.886,0.219-1.14,0.662c-0.254,0.439-0.386,1.139-0.386,2.084c0,0.385,0.031,0.738,0.085,1.072
c0.059,0.34,0.146,0.623,0.28,0.871c0.128,0.251,0.296,0.445,0.499,0.586c0.209,0.148,0.463,0.219,0.77,0.219
c0.243,0,0.469-0.041,0.676-0.125c0.211-0.082,0.382-0.186,0.514-0.291L108.369,51.857z"/>
<path d="M110.957,49.072h-0.529v3.137h-1.006v-9.762h1.006v5.943l0.459-0.203l1.631-2.951h1.157l-1.646,2.815l-0.485,0.444
l0.571,0.542l1.799,3.169h-1.201L110.957,49.072z"/>
</g>
<g>
<path d="M114.463,43.748c0-0.206,0.034-0.389,0.104-0.548c0.067-0.153,0.158-0.286,0.275-0.397
c0.116-0.111,0.249-0.188,0.407-0.246c0.149-0.056,0.313-0.084,0.485-0.084c0.179,0,0.348,0.028,0.504,0.084
c0.152,0.058,0.289,0.135,0.404,0.246c0.111,0.111,0.203,0.244,0.271,0.397c0.062,0.159,0.1,0.342,0.1,0.548
c0,0.202-0.035,0.393-0.104,0.549c-0.07,0.157-0.163,0.293-0.278,0.4c-0.115,0.111-0.248,0.188-0.4,0.246
c-0.154,0.055-0.32,0.084-0.496,0.084c-0.178,0-0.351-0.029-0.498-0.084c-0.155-0.058-0.287-0.135-0.4-0.246
c-0.113-0.107-0.209-0.243-0.273-0.4C114.497,44.141,114.463,43.95,114.463,43.748z M114.77,43.748
c0,0.165,0.027,0.312,0.076,0.434c0.055,0.123,0.123,0.23,0.209,0.312c0.09,0.084,0.191,0.146,0.307,0.189
c0.115,0.037,0.242,0.06,0.373,0.06c0.144,0,0.271-0.021,0.391-0.06c0.117-0.045,0.221-0.105,0.307-0.187
c0.086-0.083,0.154-0.188,0.201-0.312c0.053-0.123,0.073-0.271,0.073-0.439c0-0.166-0.022-0.307-0.075-0.436
c-0.05-0.119-0.122-0.224-0.208-0.305c-0.088-0.087-0.188-0.148-0.312-0.189c-0.116-0.039-0.24-0.059-0.377-0.059
s-0.268,0.02-0.389,0.059c-0.115,0.041-0.217,0.104-0.304,0.189c-0.088,0.081-0.155,0.186-0.2,0.305
C114.793,43.441,114.77,43.582,114.77,43.748z M115.238,43.125c0.052-0.014,0.125-0.023,0.221-0.037
c0.096-0.009,0.18-0.014,0.266-0.014c0.131,0,0.246,0.029,0.346,0.082c0.097,0.059,0.146,0.158,0.146,0.294
c0,0.104-0.032,0.183-0.096,0.235c-0.065,0.058-0.147,0.086-0.247,0.096l0.137,0.062l0.354,0.531h-0.293l-0.342-0.503
l-0.236-0.075v0.578h-0.249v-1.25L115.238,43.125L115.238,43.125z M115.669,43.294c-0.036,0-0.065,0-0.101,0
c-0.033,0-0.062,0.013-0.08,0.021v0.345h0.168c0.195,0,0.291-0.063,0.291-0.194C115.947,43.348,115.854,43.294,115.669,43.294z"/>
</g>
</g>
<g>
<path fill="#C63926" d="M59.333,18.143c0.725,0.117,1.146,0.539,1.264,1.264v1.528c-0.118,0.783-0.549,1.195-1.293,1.233h-6.996
c-0.392,0.039-0.607,0.256-0.646,0.647v3.791c0.039,0.392,0.254,0.598,0.646,0.617h4.438c0.724,0.098,1.126,0.499,1.205,1.204
v1.587c-0.078,0.765-0.49,1.157-1.234,1.175h-4.409c-0.392,0.059-0.607,0.285-0.646,0.676v3.263v3.819
c-0.059,0.746-0.461,1.158-1.206,1.236h-1.498c-0.706-0.039-1.098-0.402-1.176-1.088V35.13v-0.382V20.759v-1.382
c0.02-0.685,0.363-1.097,1.028-1.234H59.333z"/>
<path fill="#C63926" d="M76.867,18.172c0.646,0.118,1.046,0.501,1.203,1.147v14.842c-0.059,1.077-0.354,2.086-0.881,3.026
c-1.313,2.117-3.174,3.174-5.586,3.174c-2.408,0-4.271-1.057-5.582-3.174c-0.549-0.94-0.824-1.949-0.824-3.026V19.319
c0.099-0.666,0.49-1.048,1.178-1.147h1.527c0.744,0.118,1.146,0.54,1.205,1.264c0,4.918,0.011,9.826,0.029,14.725
c0.059,1.508,0.859,2.291,2.407,2.351c1.606,0,2.46-0.772,2.56-2.322c0-4.896,0.01-9.814,0.027-14.751
c0.061-0.725,0.46-1.146,1.206-1.264L76.867,18.172L76.867,18.172z"/>
<path fill="#C63926" d="M87.713,22.169c-0.372,0.059-0.576,0.264-0.615,0.618v3.967c0.06,0.353,0.264,0.549,0.615,0.588h4.438
c0.746,0.059,1.158,0.462,1.236,1.206v1.528c-0.078,0.765-0.5,1.167-1.266,1.205h-4.408c-0.354,0.039-0.559,0.234-0.615,0.587
v3.763c0.039,0.393,0.243,0.598,0.615,0.617h7.084c0.704,0.1,1.126,0.509,1.264,1.232v1.528c-0.138,0.744-0.578,1.138-1.321,1.177
H84.393c-0.726-0.021-1.117-0.401-1.177-1.146v-1.381v-16.9v-1.352c0.021-0.686,0.373-1.107,1.06-1.264h10.521
c0.704,0.137,1.126,0.559,1.264,1.264v1.557c-0.138,0.745-0.578,1.145-1.322,1.205L87.713,22.169L87.713,22.169z"/>
<path fill="#C63926" d="M112.656,40.186h-10.521c-0.686-0.098-1.059-0.5-1.117-1.205v-1.32V19.32c0.1-0.686,0.5-1.068,1.205-1.147
h1.528c0.763,0.079,1.175,0.49,1.233,1.235v3.908V35.6c0.039,0.373,0.246,0.58,0.617,0.619h7.022
c0.728,0.077,1.146,0.487,1.265,1.231v1.528C113.773,39.725,113.361,40.125,112.656,40.186z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 14 KiB

View File

@ -1,216 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.756,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.599c-0.196-4.173-1.892-7.003-4.125-9.161
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.598c-0.196-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#8C8C94" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#8C8C94" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g id="Layer_2" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M37.562,16.313l-12.081-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M37.562,15.313l-12.081-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,28.549z"/>
<path fill="#8C8C94" d="M35.427,18.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#8C8C94" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
</g>
<g id="Layer_4" display="none">
<g display="inline" opacity="0.35">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.095z"/>
<path fill="#FFFFFF" d="M16.677,30.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.095z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V22.998z"/>
</g>
<g display="inline">
<rect x="18.484" y="27.602" fill="#8C8C94" width="1.316" height="5.213"/>
<path fill="#8C8C94" d="M30.407,29.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.095z"/>
<path fill="#8C8C94" d="M16.677,29.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.095z"/>
<path fill="#8C8C94" d="M37.3,30.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#8C8C94" d="M24.79,28.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V28.785z"/>
<path fill="#8C8C94" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#8C8C94" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#8C8C94" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#8C8C94" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#8C8C94" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M32.829,17.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V17.745z"/>
<path fill="#8C8C94" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#8C8C94" d="M40,21.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V21.998z"/>
</g>
</g>
<g id="Layer_5" display="none">
<path display="inline" opacity="0.35" fill="#FFFFFF" d="M13.146,20.878c-0.378-0.826-1.31-1.201-2.18-0.812
c-0.873,0.385-1.193,1.352-0.8,2.18l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9
c0,0,3.188-6.94,3.22-7.014c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79
c0,1.048,0.582,1.906,1.697,1.906c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765
c1.047,0,1.741,0.719,1.741,1.765v5.555c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555
c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765v5.555c0,1.048,0.58,1.906,1.697,1.906
c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951c-2.246,0-3.652,1.553-3.652,1.553
c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551c-0.749-0.968-2.021-1.551-3.076-1.551
c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,20.878z"/>
<path display="inline" fill="#8C8C94" d="M13.146,19.878c-0.378-0.826-1.31-1.201-2.18-0.812c-0.873,0.385-1.193,1.352-0.8,2.18
l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9c0,0,3.188-6.94,3.22-7.014
c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79c0,1.048,0.582,1.906,1.697,1.906
c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765c1.047,0,1.741,0.719,1.741,1.765v5.555
c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765
v5.555c0,1.048,0.58,1.906,1.697,1.906c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951
c-2.246,0-3.652,1.553-3.652,1.553c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551
c-0.749-0.968-2.021-1.551-3.076-1.551c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,19.878z"/>
</g>
<g id="Layer_6">
<g opacity="0.35">
<path fill="#FFFFFF" d="M24.999,12c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,14.936,11,20.031,11,26c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,19.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,39.998,24.934,40,24.999,40
C32.732,40,39,33.732,39,26C39,18.268,32.732,12,24.999,12z"/>
<path fill="#FFFFFF" d="M29.656,30.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,30.317z"/>
</g>
<g>
<path fill="#8C8C94" d="M24.999,11c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,13.936,11,19.031,11,25c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,18.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,38.998,24.934,39,24.999,39
C32.732,39,39,32.732,39,25C39,17.268,32.732,11,24.999,11z"/>
<path fill="#8C8C94" d="M29.656,29.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,29.317z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 20 KiB

View File

@ -1,416 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.756,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.599c-0.196-4.173-1.892-7.003-4.125-9.161
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.598c-0.196-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#8C8C94" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#8C8C94" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g id="Layer_2" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M37.562,16.313l-12.081-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M37.562,15.313l-12.081-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,28.549z"/>
<path fill="#8C8C94" d="M35.427,18.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#8C8C94" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
</g>
<g id="Layer_4" display="none">
<g display="inline" opacity="0.35">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.095z"/>
<path fill="#FFFFFF" d="M16.677,30.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.095z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V22.998z"/>
</g>
<g display="inline">
<rect x="18.484" y="27.602" fill="#8C8C94" width="1.316" height="5.213"/>
<path fill="#8C8C94" d="M30.407,29.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.095z"/>
<path fill="#8C8C94" d="M16.677,29.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.095z"/>
<path fill="#8C8C94" d="M37.3,30.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#8C8C94" d="M24.79,28.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V28.785z"/>
<path fill="#8C8C94" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#8C8C94" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#8C8C94" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#8C8C94" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#8C8C94" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M32.829,17.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V17.745z"/>
<path fill="#8C8C94" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#8C8C94" d="M40,21.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V21.998z"/>
</g>
</g>
<g id="Layer_5" display="none">
<path display="inline" opacity="0.35" fill="#FFFFFF" d="M13.146,20.878c-0.378-0.826-1.31-1.201-2.18-0.812
c-0.873,0.385-1.193,1.352-0.8,2.18l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9
c0,0,3.188-6.94,3.22-7.014c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79
c0,1.048,0.582,1.906,1.697,1.906c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765
c1.047,0,1.741,0.719,1.741,1.765v5.555c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555
c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765v5.555c0,1.048,0.58,1.906,1.697,1.906
c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951c-2.246,0-3.652,1.553-3.652,1.553
c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551c-0.749-0.968-2.021-1.551-3.076-1.551
c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,20.878z"/>
<path display="inline" fill="#8C8C94" d="M13.146,19.878c-0.378-0.826-1.31-1.201-2.18-0.812c-0.873,0.385-1.193,1.352-0.8,2.18
l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9c0,0,3.188-6.94,3.22-7.014
c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79c0,1.048,0.582,1.906,1.697,1.906
c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765c1.047,0,1.741,0.719,1.741,1.765v5.555
c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765
v5.555c0,1.048,0.58,1.906,1.697,1.906c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951
c-2.246,0-3.652,1.553-3.652,1.553c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551
c-0.749-0.968-2.021-1.551-3.076-1.551c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,19.878z"/>
</g>
<g id="Layer_6" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.999,12c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,14.936,11,20.031,11,26c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,19.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,39.998,24.934,40,24.999,40
C32.732,40,39,33.732,39,26C39,18.268,32.732,12,24.999,12z"/>
<path fill="#FFFFFF" d="M29.656,30.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,30.317z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.999,11c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,13.936,11,19.031,11,25c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,18.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,38.998,24.934,39,24.999,39
C32.732,39,39,32.732,39,25C39,17.268,32.732,11,24.999,11z"/>
<path fill="#8C8C94" d="M29.656,29.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,29.317z"/>
</g>
</g>
<g id="Layer_7" display="none">
<g display="inline" opacity="0.35">
<g>
<path fill="#FFFFFF" d="M17.232,34.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,30.213,9.102,28.171,9.102,26
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,33.284,19.403,34.131,17.232,34.131z
M17.232,18.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,22.15,9.801,24.016,9.801,26c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,19.342,19.217,18.569,17.232,18.569z"/>
</g>
<path fill="#FFFFFF" d="M28.412,26.061c0.168-0.721-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,27.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#FFFFFF" d="M32.588,26.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.331h-3.594l0.697-2.987
c0.192-0.82-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.465-1.482,1.321l-0.651,2.776h-3.594L32.588,26.083z"/>
<polygon fill="#FFFFFF" points="14.989,26.189 11.143,21.449 15.856,21.458 17.897,24.22 21.292,21.449 26.747,21.449
19.938,26.677 23.767,31.605 19.017,31.605 17.066,28.735 13.437,31.605 8,31.605 "/>
</g>
<g display="inline">
<g>
<path fill="#8C8C94" d="M17.232,33.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,29.213,9.102,27.171,9.102,25
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,32.284,19.403,33.131,17.232,33.131z
M17.232,17.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,21.15,9.801,23.016,9.801,25c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,18.342,19.217,17.569,17.232,17.569z"/>
</g>
<path fill="#8C8C94" d="M28.412,25.061c0.168-0.722-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,26.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#8C8C94" d="M32.588,25.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.332h-3.594l0.697-2.987
c0.192-0.821-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.466-1.482,1.321l-0.651,2.776h-3.594L32.588,25.083z"/>
<polygon fill="#8C8C94" points="14.989,25.189 11.143,20.449 15.856,20.458 17.897,23.22 21.292,20.449 26.747,20.449
19.938,25.677 23.767,30.605 19.017,30.605 17.066,27.735 13.437,30.605 8,30.605 "/>
</g>
</g>
<g id="Layer_8" display="none">
<g display="inline">
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M9.568,21.873v2.055H9.411c-0.053-0.393-0.148-0.706-0.284-0.938
c-0.137-0.233-0.332-0.417-0.584-0.555c-0.253-0.137-0.515-0.205-0.785-0.205c-0.306,0-0.559,0.093-0.758,0.28
s-0.3,0.398-0.3,0.637c0,0.182,0.063,0.348,0.189,0.498c0.182,0.22,0.615,0.514,1.299,0.881c0.557,0.3,0.938,0.529,1.143,0.689
s0.361,0.349,0.472,0.566c0.11,0.217,0.166,0.444,0.166,0.682c0,0.453-0.176,0.843-0.527,1.17c-0.351,0.327-0.803,0.49-1.356,0.49
c-0.173,0-0.337-0.013-0.489-0.04c-0.091-0.015-0.28-0.068-0.567-0.162c-0.287-0.093-0.468-0.14-0.544-0.14
c-0.074,0-0.132,0.022-0.174,0.066c-0.043,0.045-0.074,0.137-0.095,0.275H6.057v-2.055h0.157c0.077,0.431,0.18,0.753,0.309,0.967
c0.129,0.215,0.327,0.393,0.593,0.533c0.266,0.142,0.558,0.213,0.875,0.213c0.367,0,0.658-0.098,0.871-0.291
c0.213-0.194,0.32-0.424,0.32-0.688c0-0.146-0.041-0.296-0.121-0.445s-0.206-0.29-0.375-0.419
c-0.115-0.089-0.427-0.274-0.938-0.561c-0.511-0.285-0.875-0.513-1.09-0.684c-0.216-0.171-0.379-0.359-0.491-0.565
C6.056,23.922,6,23.696,6,23.449c0-0.429,0.165-0.8,0.494-1.11c0.329-0.311,0.748-0.466,1.256-0.466
c0.317,0,0.654,0.078,1.009,0.233c0.165,0.073,0.281,0.11,0.348,0.11c0.077,0,0.139-0.022,0.188-0.068
c0.048-0.045,0.087-0.137,0.117-0.275H9.568L9.568,21.873z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M13.029,24.148v-0.104h1.398v0.104h-0.149
c-0.156,0-0.276,0.066-0.36,0.199c-0.041,0.062-0.062,0.205-0.062,0.429v1.615c0,0.399-0.04,0.709-0.119,0.929
c-0.079,0.221-0.235,0.409-0.467,0.566c-0.233,0.158-0.549,0.236-0.949,0.236c-0.436,0-0.766-0.075-0.991-0.226
c-0.226-0.151-0.385-0.354-0.479-0.609c-0.063-0.174-0.094-0.502-0.094-0.982v-1.558c0-0.246-0.034-0.407-0.1-0.484
s-0.174-0.115-0.323-0.115h-0.148v-0.104h1.702v0.104h-0.15c-0.162,0-0.278,0.052-0.348,0.157
c-0.048,0.071-0.072,0.218-0.072,0.442v1.736c0,0.154,0.014,0.332,0.043,0.531c0.028,0.2,0.08,0.355,0.155,0.468
c0.075,0.111,0.183,0.203,0.324,0.275c0.141,0.073,0.314,0.109,0.519,0.109c0.262,0,0.497-0.058,0.704-0.171
c0.207-0.113,0.349-0.259,0.424-0.436c0.076-0.178,0.114-0.478,0.114-0.9v-1.613c0-0.25-0.027-0.406-0.082-0.469
c-0.076-0.086-0.189-0.13-0.34-0.13H13.029L13.029,24.148z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M15.73,26.168v1.166c0,0.252,0.027,0.408,0.082,0.47
c0.074,0.086,0.187,0.13,0.336,0.13h0.152v0.104h-1.702v-0.104h0.15c0.168,0,0.289-0.056,0.362-0.166
c0.039-0.061,0.059-0.205,0.059-0.434v-2.586c0-0.252-0.026-0.408-0.08-0.469c-0.076-0.086-0.19-0.13-0.341-0.13h-0.15v-0.104
h1.456c0.355,0,0.636,0.037,0.841,0.11s0.377,0.198,0.519,0.373c0.141,0.175,0.211,0.382,0.211,0.622
c0,0.326-0.107,0.591-0.321,0.796c-0.214,0.204-0.516,0.306-0.906,0.306c-0.096,0-0.199-0.007-0.31-0.021
C15.977,26.216,15.857,26.195,15.73,26.168L15.73,26.168z M15.73,26.001c0.103,0.02,0.194,0.034,0.273,0.044
s0.147,0.015,0.204,0.015c0.202,0,0.376-0.079,0.522-0.237s0.22-0.363,0.22-0.615c0-0.173-0.035-0.333-0.105-0.482
s-0.168-0.259-0.296-0.333c-0.128-0.073-0.274-0.11-0.437-0.11c-0.099,0-0.226,0.019-0.381,0.056V26.001L15.73,26.001z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M19.097,24.272v1.569h0.855c0.228,0,0.38-0.033,0.457-0.102
c0.102-0.088,0.159-0.245,0.171-0.469h0.104v1.379h-0.104c-0.028-0.192-0.055-0.316-0.083-0.371
c-0.036-0.067-0.093-0.121-0.174-0.16s-0.205-0.059-0.372-0.059h-0.855v1.307c0,0.175,0.007,0.281,0.023,0.319l0.082,0.091
c0.039,0.022,0.114,0.033,0.223,0.033H20.1c0.225,0,0.388-0.016,0.49-0.046c0.102-0.031,0.199-0.092,0.293-0.183
c0.121-0.12,0.245-0.301,0.373-0.542h0.124l-0.344,0.999h-3.07v-0.104h0.141c0.094,0,0.183-0.022,0.268-0.068
c0.062-0.031,0.105-0.079,0.128-0.143s0.034-0.192,0.034-0.389v-2.586c0-0.259-0.025-0.418-0.076-0.479
c-0.071-0.08-0.188-0.12-0.353-0.12h-0.141v-0.104h3.062l0.038,0.875h-0.124c-0.041-0.207-0.086-0.349-0.135-0.426
s-0.123-0.136-0.219-0.177c-0.077-0.029-0.214-0.044-0.41-0.044H19.097L19.097,24.272z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M25.589,28.038h-1.067l-1.353-1.864
c-0.099,0.004-0.18,0.006-0.243,0.006l-0.082-0.001l-0.09-0.005v1.16c0,0.252,0.027,0.408,0.082,0.47
c0.074,0.086,0.185,0.13,0.333,0.13h0.155v0.104h-1.702v-0.104h0.149c0.167,0,0.288-0.056,0.36-0.166
c0.041-0.061,0.061-0.205,0.061-0.434v-2.586c0-0.252-0.027-0.408-0.082-0.469c-0.076-0.086-0.189-0.13-0.339-0.13h-0.149v-0.104
h1.452c0.423,0,0.735,0.031,0.936,0.093c0.201,0.062,0.371,0.176,0.511,0.342s0.21,0.364,0.21,0.594
c0,0.246-0.08,0.459-0.241,0.64c-0.16,0.181-0.409,0.309-0.745,0.383l0.828,1.145c0.188,0.265,0.35,0.441,0.485,0.528
c0.135,0.087,0.311,0.142,0.529,0.166V28.038L25.589,28.038z M22.754,25.993l0.096,0.002l0.067,0.001
c0.377,0,0.661-0.083,0.853-0.249s0.287-0.378,0.287-0.635c0-0.251-0.077-0.456-0.232-0.613c-0.154-0.158-0.359-0.236-0.613-0.236
c-0.113,0-0.265,0.022-0.458,0.066V25.993L22.754,25.993z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M27.995,28.038l-1.54-3.361v2.667
c0,0.248,0.026,0.403,0.08,0.465c0.073,0.083,0.189,0.125,0.348,0.125h0.143v0.104h-1.397v-0.104h0.143
c0.17,0,0.291-0.052,0.362-0.155c0.044-0.063,0.065-0.208,0.065-0.435v-2.605c0-0.179-0.02-0.308-0.06-0.387
c-0.027-0.058-0.079-0.106-0.153-0.145s-0.193-0.058-0.357-0.058v-0.104h1.143l1.44,3.118l1.429-3.118h1.123v0.104h-0.14
c-0.172,0-0.294,0.052-0.365,0.155c-0.044,0.064-0.065,0.208-0.065,0.435v2.605c0,0.248,0.027,0.403,0.083,0.465
c0.073,0.083,0.189,0.125,0.348,0.125h0.14v0.104h-1.702v-0.104h0.143c0.173,0,0.293-0.052,0.362-0.155
c0.044-0.063,0.065-0.208,0.065-0.435v-2.667l-1.54,3.361H27.995L27.995,28.038z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M32.738,27.934v0.104h-1.702v-0.104h0.142
c0.164,0,0.284-0.048,0.358-0.145c0.047-0.063,0.07-0.215,0.07-0.455v-2.586c0-0.203-0.013-0.336-0.038-0.401
c-0.02-0.049-0.06-0.092-0.12-0.127c-0.087-0.047-0.177-0.071-0.271-0.071h-0.142v-0.104h1.702v0.104h-0.143
c-0.162,0-0.28,0.048-0.354,0.145c-0.049,0.063-0.073,0.215-0.073,0.455v2.586c0,0.203,0.013,0.337,0.038,0.401
c0.02,0.05,0.061,0.092,0.123,0.127c0.084,0.048,0.173,0.071,0.267,0.071H32.738L32.738,27.934z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M36.045,23.958l0.096,1.369h-0.096
c-0.12-0.412-0.293-0.708-0.517-0.889c-0.225-0.181-0.493-0.271-0.807-0.271c-0.263,0-0.5,0.067-0.713,0.202
c-0.212,0.134-0.379,0.348-0.501,0.643c-0.121,0.294-0.183,0.659-0.183,1.097c0,0.36,0.058,0.673,0.173,0.938
c0.115,0.264,0.289,0.467,0.521,0.608c0.231,0.141,0.495,0.212,0.793,0.212c0.257,0,0.484-0.056,0.683-0.167
c0.197-0.11,0.413-0.331,0.65-0.661l0.091,0.058c-0.199,0.355-0.433,0.615-0.699,0.78c-0.266,0.164-0.582,0.246-0.948,0.246
c-0.659,0-1.171-0.244-1.532-0.734c-0.271-0.363-0.405-0.793-0.405-1.286c0-0.397,0.089-0.763,0.267-1.096
c0.178-0.333,0.422-0.591,0.733-0.774c0.311-0.183,0.651-0.274,1.02-0.274c0.287,0,0.57,0.07,0.85,0.211
c0.081,0.043,0.14,0.064,0.175,0.064c0.053,0,0.099-0.019,0.138-0.056c0.051-0.053,0.087-0.126,0.108-0.22H36.045L36.045,23.958z"
/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M40.212,28.038h-1.066l-1.354-1.864
c-0.099,0.004-0.18,0.006-0.242,0.006l-0.082-0.001l-0.091-0.005v1.16c0,0.252,0.027,0.408,0.083,0.47
c0.073,0.086,0.185,0.13,0.333,0.13h0.155v0.104h-1.702v-0.104h0.148c0.168,0,0.288-0.056,0.36-0.166
c0.041-0.061,0.062-0.205,0.062-0.434v-2.586c0-0.252-0.027-0.408-0.082-0.469c-0.076-0.086-0.189-0.13-0.34-0.13h-0.148v-0.104
h1.452c0.423,0,0.734,0.031,0.936,0.093c0.201,0.062,0.371,0.176,0.512,0.342c0.14,0.166,0.21,0.364,0.21,0.594
c0,0.246-0.08,0.459-0.24,0.64c-0.161,0.181-0.409,0.309-0.745,0.383l0.828,1.145c0.188,0.265,0.35,0.441,0.484,0.528
c0.136,0.087,0.312,0.142,0.529,0.166V28.038L40.212,28.038z M37.377,25.993l0.097,0.002l0.067,0.001
c0.377,0,0.661-0.083,0.853-0.249s0.287-0.378,0.287-0.635c0-0.251-0.077-0.456-0.232-0.613c-0.154-0.158-0.358-0.236-0.613-0.236
c-0.112,0-0.266,0.022-0.458,0.066V25.993L37.377,25.993z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C23E32" d="M39.831,26.043c0-1.151,0.934-2.084,2.085-2.084
c1.15,0,2.084,0.933,2.084,2.084c0,1.15-0.934,2.084-2.084,2.084C40.765,28.127,39.831,27.193,39.831,26.043L39.831,26.043z"/>
</g>
</g>
<g id="Layer_9" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M36.353,38.704c-1.297,0-3.031-0.544-5.299-1.661c-0.167-0.081-0.329-0.163-0.491-0.244
c-3.177,1.122-7.697,1.842-11.62,1.842c-3.211,0-7.18-0.464-7.85-2.669c-0.492-1.619,0.962-3.539,4.447-5.87
c0.154-0.103,0.306-0.204,0.458-0.304c0.583-3.136,2.066-7.104,3.905-10.435c1.251-2.266,3.703-6.067,6.059-6.067
c1.921,0,3.046,2.302,3.346,6.842c0.013,0.184,0.023,0.366,0.034,0.546c4.643,3.977,10.766,12.961,9.486,16.5
C38.578,37.877,37.944,38.704,36.353,38.704z M32.152,36.15c1.803,0.846,3.214,1.273,4.2,1.273c0.911,0,1.158-0.36,1.271-0.675
c0.85-2.353-3.571-9.87-8.208-14.274c0.031,1.234,0.018,2.417-0.039,3.531v0.002l-0.001,0.021c0.096,0.347,0.068,0.747-0.08,1.188
v0.006c-0.026,0.305-0.056,0.604-0.089,0.895l0.005,0.002l-0.001,0.002c0.101,0.037,0.202,0.076,0.304,0.114
c3.821,1.445,5.676,2.959,5.669,4.627C35.179,34.097,34.16,35.201,32.152,36.15z M15.765,31.499
c-3.482,2.429-3.577,3.67-3.447,4.101c0.325,1.069,2.925,1.761,6.625,1.761c3.33,0,7.096-0.534,10.03-1.395
c-1.085-0.589-2.101-1.19-3.035-1.797h-0.001l-0.019-0.012c-0.349-0.091-0.681-0.313-0.99-0.664l-0.004-0.004
c-0.25-0.174-0.495-0.349-0.729-0.522L24.19,32.97l-0.002-0.002c-0.083,0.069-0.166,0.137-0.25,0.206
c-2.391,1.956-4.228,2.906-5.617,2.906c-0.738,0-1.362-0.276-1.803-0.8C15.874,34.518,15.623,33.248,15.765,31.499z M27.48,33.628
c0.979,0.601,2.039,1.195,3.163,1.776c2.045-0.794,3.257-1.738,3.261-2.547c0.002-0.479-0.467-1.771-4.842-3.426
c-0.013-0.004-0.024-0.009-0.036-0.014C28.753,31.066,28.284,32.767,27.48,33.628z M17.166,30.566
c-0.291,1.882-0.174,3.29,0.331,3.888c0.199,0.237,0.46,0.346,0.824,0.346c0.733,0,2.162-0.454,4.807-2.616
c0.01-0.009,0.02-0.017,0.029-0.025c-1.24-1.021-2.52-2.298-2.869-3.445C19.277,29.261,18.231,29.882,17.166,30.566z
M25.801,32.54c0.177,0.122,0.36,0.246,0.547,0.368c0.304-0.124,0.903-1.012,1.33-3.221c-0.605,0.683-1.362,1.429-2.264,2.23
C25.543,32.167,25.672,32.373,25.801,32.54z M21.476,28.093c-0.002,0.024-0.002,0.057,0.003,0.097
c0.06,0.482,0.662,1.406,2.12,2.668c-0.289-0.865-0.557-1.894-0.801-3.077c-0.279-0.012-0.524-0.004-0.731,0.024
C21.873,27.896,21.675,27.993,21.476,28.093z M24.142,27.948c0.23,1.057,0.479,1.967,0.746,2.723
c0.8-0.729,1.463-1.399,1.983-2.007C25.841,28.335,24.928,28.096,24.142,27.948z M25.962,14.577c-2.364,0-6.904,7.849-8.45,14.262
c1.052-0.644,2.082-1.224,3.074-1.73l0-0.001l0.019-0.009c0.254-0.258,0.613-0.435,1.072-0.526l0.004-0.002
c0.277-0.131,0.55-0.254,0.818-0.37l-0.001-0.005l0.003-0.002c-0.018-0.104-0.036-0.211-0.053-0.318
c-0.558-3.413-0.37-5.611,0.573-6.722c0.443-0.521,1.056-0.797,1.769-0.797c0.896,0,1.967,0.429,3.195,1.277
C27.597,15.084,26.451,14.577,25.962,14.577z M24.626,26.739c0.893,0.182,1.917,0.464,3.062,0.845
c0.151-0.236,0.267-0.452,0.346-0.646c0.016-0.213,0.032-0.432,0.046-0.652c-0.105-0.076-0.343-0.141-0.71-0.141
C26.695,26.145,25.744,26.353,24.626,26.739z M24.791,19.636c-0.34,0-0.592,0.11-0.793,0.347
c-0.381,0.448-0.924,1.782-0.287,5.686c0.002,0.012,0.005,0.025,0.007,0.038c1.474-0.552,2.728-0.842,3.652-0.842
c0.296,0,0.55,0.029,0.767,0.08c0.031-1.15,0.016-2.367-0.044-3.633C26.746,20.229,25.58,19.636,24.791,19.636z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M36.353,37.704c-1.297,0-3.031-0.544-5.299-1.661c-0.167-0.081-0.329-0.163-0.491-0.244
c-3.177,1.122-7.697,1.842-11.62,1.842c-3.211,0-7.18-0.464-7.85-2.669c-0.492-1.619,0.962-3.539,4.447-5.87
c0.154-0.103,0.306-0.204,0.458-0.304c0.583-3.136,2.066-7.104,3.905-10.435c1.251-2.266,3.703-6.067,6.059-6.067
c1.921,0,3.046,2.302,3.346,6.842c0.013,0.184,0.023,0.366,0.034,0.546c4.643,3.977,10.766,12.961,9.486,16.5
C38.578,36.877,37.944,37.704,36.353,37.704z M32.152,35.15c1.803,0.846,3.214,1.273,4.2,1.273c0.911,0,1.158-0.36,1.271-0.675
c0.85-2.353-3.571-9.87-8.208-14.274c0.031,1.234,0.018,2.417-0.039,3.531v0.001l-0.001,0.021c0.096,0.347,0.068,0.747-0.08,1.188
v0.006c-0.026,0.305-0.056,0.604-0.089,0.895l0.005,0.002l-0.001,0.002c0.101,0.037,0.202,0.076,0.304,0.114
c3.821,1.445,5.676,2.959,5.669,4.627C35.179,33.097,34.16,34.201,32.152,35.15z M15.765,30.499
c-3.482,2.429-3.577,3.67-3.447,4.101c0.325,1.069,2.925,1.761,6.625,1.761c3.33,0,7.096-0.534,10.03-1.395
c-1.085-0.589-2.101-1.19-3.035-1.797h-0.001l-0.019-0.012c-0.349-0.091-0.681-0.313-0.99-0.664l-0.004-0.004
c-0.25-0.174-0.495-0.349-0.729-0.522L24.19,31.97l-0.002-0.002c-0.083,0.069-0.166,0.137-0.25,0.206
c-2.391,1.956-4.228,2.906-5.617,2.906c-0.738,0-1.362-0.276-1.803-0.8C15.874,33.518,15.623,32.248,15.765,30.499z M27.48,32.628
c0.979,0.601,2.039,1.195,3.163,1.776c2.045-0.794,3.257-1.738,3.261-2.547c0.002-0.479-0.467-1.771-4.842-3.426
c-0.013-0.004-0.024-0.009-0.036-0.014C28.753,30.066,28.284,31.767,27.48,32.628z M17.166,29.566
c-0.291,1.882-0.174,3.29,0.331,3.888c0.199,0.237,0.46,0.346,0.824,0.346c0.733,0,2.162-0.454,4.807-2.616
c0.01-0.009,0.02-0.017,0.029-0.025c-1.24-1.021-2.52-2.298-2.869-3.445C19.277,28.261,18.231,28.882,17.166,29.566z
M25.801,31.54c0.177,0.122,0.36,0.246,0.547,0.368c0.304-0.124,0.903-1.012,1.33-3.221c-0.605,0.683-1.362,1.429-2.264,2.23
C25.543,31.167,25.672,31.373,25.801,31.54z M21.476,27.093c-0.002,0.024-0.002,0.057,0.003,0.097
c0.06,0.482,0.662,1.406,2.12,2.668c-0.289-0.865-0.557-1.894-0.801-3.077c-0.279-0.012-0.524-0.004-0.731,0.024
C21.873,26.896,21.675,26.993,21.476,27.093z M24.142,26.948c0.23,1.057,0.479,1.967,0.746,2.723
c0.8-0.729,1.463-1.399,1.983-2.007C25.841,27.335,24.928,27.096,24.142,26.948z M25.962,13.577c-2.364,0-6.904,7.849-8.45,14.262
c1.052-0.644,2.082-1.224,3.074-1.73l0-0.001l0.019-0.009c0.254-0.258,0.613-0.435,1.072-0.526l0.004-0.002
c0.277-0.13,0.55-0.253,0.818-0.37l-0.001-0.005l0.003-0.001c-0.018-0.105-0.036-0.211-0.053-0.319
c-0.558-3.412-0.37-5.611,0.573-6.722c0.443-0.521,1.056-0.797,1.769-0.797c0.896,0,1.967,0.429,3.195,1.277
C27.597,14.084,26.451,13.577,25.962,13.577z M24.626,25.739c0.893,0.182,1.917,0.464,3.062,0.845
c0.151-0.236,0.267-0.452,0.346-0.646c0.016-0.213,0.032-0.432,0.046-0.652c-0.105-0.076-0.343-0.141-0.71-0.141
C26.695,25.145,25.744,25.353,24.626,25.739z M24.791,18.636c-0.34,0-0.592,0.11-0.793,0.347
c-0.381,0.448-0.924,1.782-0.287,5.686c0.002,0.012,0.005,0.025,0.007,0.038c1.474-0.552,2.728-0.842,3.652-0.842
c0.296,0,0.55,0.029,0.767,0.08c0.031-1.15,0.016-2.367-0.044-3.633C26.746,19.229,25.58,18.636,24.791,18.636z"/>
</g>
</g>
<g id="Layer_10">
<g opacity="0.35">
<path fill="#FFFFFF" d="M11,30.826v-9.652h1.949v4.286l3.937-4.286h2.621l-3.635,3.759l3.832,5.893h-2.521l-2.653-4.529
l-1.58,1.612v2.917H11z"/>
<path fill="#FFFFFF" d="M23.173,30.826l-3.45-9.652h2.114l2.442,7.143l2.364-7.143h2.067l-3.457,9.652H23.173z"/>
<path fill="#FFFFFF" d="M29.678,30.826v-9.652h2.917l1.75,6.583l1.732-6.583H39v9.652h-1.811v-7.598l-1.915,7.598h-1.877
l-1.91-7.598v7.598H29.678z"/>
</g>
<g>
<path fill="#8C8C94" d="M11,29.826v-9.652h1.949v4.286l3.937-4.286h2.621l-3.635,3.759l3.832,5.893h-2.521l-2.653-4.53
l-1.58,1.613v2.917H11z"/>
<path fill="#8C8C94" d="M23.173,29.826l-3.45-9.652h2.114l2.442,7.143l2.364-7.143h2.067l-3.457,9.652H23.173z"/>
<path fill="#8C8C94" d="M29.678,29.826v-9.652h2.917l1.75,6.583l1.732-6.583H39v9.652h-1.811v-7.598l-1.915,7.598h-1.877
l-1.91-7.598v7.598H29.678z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 38 KiB

View File

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="184px" height="90px" viewBox="0 0 184 90" enable-background="new 0 0 184 90" xml:space="preserve">
<g>
<path d="M2,32.566C32.808-6.066,85.788-3.797,102.168,16.361C92.387,9.92,77.99,5.007,66.728,6.619
c17.766,2.205,23.419,10.355,26.146,14.18C86.698,16.461,71.031,6.961,55.1,9.852c11.189,1.369,24.046,6.617,29.32,15.931
c-9.011-6.623-24.091-15.078-38.41-11.81c12.339,1.664,24.741,6.916,30.286,17.066C66.319,24.094,30.311,9.701,2,32.566"/>
<path d="M182,22.66C151.223,61.376,96.992,58.748,80.611,38.58c9.785,6.453,28.208,13.74,39.299,11.352
c-17.494-2.981-27.367-11.934-30.006-15.783c6.084,4.363,22.023,14.261,37.956,11.371c-11.191-1.369-24.223-7.039-29.59-16.324
c9.01,6.611,24.448,15.443,38.778,12.263c-12.349-1.748-25.021-7.403-30.655-17.528C116.461,30.854,153.715,45.609,182,22.66"/>
<path fill="#B5432C" d="M151.234,2l0.522,3.604c-12.188,0.07-23.884,1.996-35.063,5.679c-9.338,3.112-19.803,8.079-31.396,14.967
c-14.511,8.802-24.581,14.435-30.09,17.015c-11.855,5.567-23.853,8.737-36.031,9.475c14.037,0.527,27.364-1.26,40.142-5.432
c9.41-3.109,20.01-8.15,31.734-15.168c12.857-7.547,22.794-12.848,29.823-15.963c10.098-4.334,20.395-7.587,30.999-9.74
l0.522,3.576l11.49-5.759L151.234,2z"/>
<polygon points="20.91,62.338 24.046,62.338 27.608,80.012 31.13,62.338 34.111,62.338 36.342,87.832 33.127,87.832 32.116,69.916
28.665,87.832 26.315,87.832 22.945,69.916 21.888,87.832 18.748,87.832 "/>
<rect x="44.769" y="62.338" width="3.528" height="25.494"/>
<path d="M60.319,87.832H56.83v-25.51h4.198c2.353,0,4.216,0.428,5.602,1.303c1.388,0.878,2.074,2.621,2.074,5.215
c0,1.768-0.351,3.211-1.037,4.325c-0.696,1.117-1.955,1.808-3.776,2.103L70,87.832h-3.764l-5.833-12.398h-0.085L60.319,87.832
L60.319,87.832z M60.319,73.443c1.442,0,2.608-0.189,3.514-0.604c0.894-0.401,1.354-1.472,1.388-3.219v-0.47
c0-1.797-0.388-2.875-1.182-3.237c-0.78-0.371-2.017-0.554-3.72-0.554V73.443z"/>
<path d="M82.104,62.322h3.252l5.952,25.51h-3.404l-1.293-5.07h-5.84l-1.213,5.07h-3.491L82.104,62.322z M83.751,68.914
l-2.353,11.008h4.659L83.751,68.914z"/>
<polygon points="100.086,62.338 103.34,62.338 110.162,80.012 110.162,62.338 113.372,62.338 113.372,87.832 110.162,87.832
103.424,69.969 103.424,87.832 100.086,87.832 "/>
<polygon points="126.104,65.494 121.406,65.494 121.406,62.322 134.337,62.322 134.337,65.494 129.594,65.494 129.594,87.832
126.104,87.832 "/>
<rect x="141.361" y="62.338" width="3.521" height="25.494"/>
<path d="M153.061,83.523c0.11,0.045,0.211,0.102,0.314,0.149c0.369,0.212,0.766,0.404,1.177,0.587
c0.419,0.184,0.849,0.338,1.296,0.477c0.231,0.039,0.471,0.087,0.725,0.133c0.248,0.031,0.49,0.055,0.722,0.055h0.177h0.186
c0.515-0.055,1.015-0.229,1.484-0.521c0.471-0.305,0.816-0.752,1.059-1.344c0.08-0.136,0.134-0.262,0.174-0.397
c0.035-0.134,0.07-0.269,0.102-0.425c0-0.131,0.008-0.264,0.015-0.391c0.018-0.125,0.024-0.262,0.024-0.385
c0-0.908-0.313-1.754-0.922-2.521c-0.615-0.762-1.301-1.469-2.068-2.121c-0.252-0.207-0.506-0.411-0.731-0.603
c-0.233-0.194-0.476-0.384-0.71-0.575c-0.866-0.724-1.646-1.521-2.355-2.404c-0.703-0.887-1.17-1.914-1.399-3.086
c0-0.096-0.019-0.198-0.035-0.312c-0.04-0.095-0.04-0.202-0.04-0.309c-0.031,0-0.047-0.014-0.047-0.034v-0.07
c-0.016-0.106-0.047-0.228-0.062-0.362c-0.006-0.117-0.016-0.237-0.016-0.345c0-0.946,0.207-1.879,0.607-2.768
c0.406-0.892,0.978-1.663,1.703-2.31c0.525-0.492,1.1-0.859,1.721-1.092c0.635-0.232,1.27-0.375,1.922-0.426h0.23h0.244
c0.332,0,0.672,0.012,1.012,0.055c0.348,0.041,0.701,0.102,1.062,0.178c0.427,0.101,0.83,0.219,1.229,0.349
c0.404,0.132,0.808,0.295,1.199,0.471v3.414c-0.045-0.024-0.107-0.053-0.179-0.093c-0.062-0.049-0.125-0.079-0.171-0.105
c-0.346-0.174-0.708-0.354-1.121-0.517c-0.398-0.177-0.811-0.306-1.229-0.409c-0.235-0.061-0.476-0.104-0.709-0.143
c-0.232-0.043-0.473-0.062-0.703-0.062h-0.103h-0.131c-0.521,0.031-1.037,0.173-1.536,0.435c-0.484,0.256-0.882,0.682-1.174,1.277
c-0.074,0.159-0.146,0.332-0.209,0.528c-0.07,0.19-0.117,0.39-0.141,0.601c0,0.098-0.006,0.198-0.016,0.31
c-0.016,0.101-0.021,0.208-0.021,0.308c0,0.106,0.007,0.213,0.021,0.309c0.01,0.105,0.016,0.195,0.016,0.275
c0.022,0.208,0.068,0.408,0.141,0.611c0.062,0.191,0.135,0.371,0.209,0.55c0.424,0.804,0.949,1.498,1.607,2.086
c0.656,0.586,1.334,1.16,2.039,1.734c0.779,0.622,1.537,1.28,2.252,1.946c0.715,0.683,1.273,1.498,1.664,2.459
c0.107,0.23,0.179,0.494,0.24,0.797c0.049,0.302,0.088,0.591,0.11,0.88c0,0.157,0.015,0.305,0.022,0.446
c0.018,0.14,0.023,0.293,0.023,0.449c0,0.15-0.007,0.313-0.023,0.486c-0.01,0.171-0.031,0.344-0.062,0.527
c-0.049,0.436-0.135,0.879-0.248,1.322c-0.115,0.443-0.268,0.848-0.453,1.201c-0.578,1.172-1.389,1.996-2.435,2.482
c-1.041,0.486-2.138,0.719-3.286,0.719c-0.23,0-0.482-0.014-0.725-0.041c-0.239-0.023-0.502-0.05-0.763-0.073
c-0.547-0.054-1.103-0.173-1.645-0.353c-0.55-0.182-1.058-0.395-1.529-0.625v-3.543C152.869,83.418,152.967,83.467,153.061,83.523"
/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -1,104 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="184px" height="180px" viewBox="0 0 184 180" enable-background="new 0 0 184 180" xml:space="preserve">
<g>
<path fill="#FFFFFF" d="M2,32.566C32.808-6.065,85.788-3.797,102.168,16.361C92.387,9.92,77.99,5.008,66.728,6.619
c17.766,2.206,23.419,10.355,26.146,14.18C86.697,16.461,71.03,6.961,55.099,9.851c11.189,1.369,24.046,6.618,29.32,15.931
c-9.011-6.623-24.091-15.079-38.41-11.809c12.339,1.663,24.741,6.915,30.286,17.065C66.319,24.094,30.311,9.701,2,32.566"/>
<path fill="#FFFFFF" d="M182,22.66C151.223,61.376,96.992,58.748,80.611,38.58c9.785,6.453,28.208,13.74,39.299,11.352
c-17.494-2.982-27.367-11.934-30.006-15.784c6.084,4.364,22.023,14.26,37.956,11.371c-11.192-1.37-24.224-7.039-29.59-16.323
c9.009,6.61,24.448,15.442,38.778,12.261c-12.349-1.748-25.021-7.403-30.655-17.528C116.461,30.853,153.715,45.61,182,22.66"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B5432C" d="M151.235,2l0.522,3.603c-12.188,0.071-23.884,1.996-35.063,5.679
c-9.339,3.112-19.804,8.08-31.397,14.966c-14.511,8.802-24.581,14.434-30.09,17.013C43.352,48.83,31.354,52,19.176,52.736
c14.037,0.528,27.364-1.26,40.142-5.431c9.41-3.11,20.01-8.152,31.734-15.169c12.857-7.545,22.794-12.846,29.823-15.961
c10.097-4.334,20.395-7.587,30.999-9.741l0.523,3.576l11.49-5.758L151.235,2z"/>
<polygon fill="#FFFFFF" points="20.91,62.338 24.046,62.338 27.608,80.011 31.13,62.338 34.111,62.338 36.342,87.832
33.127,87.832 32.116,69.916 28.665,87.832 26.315,87.832 22.945,69.916 21.888,87.832 18.748,87.832 "/>
<rect x="44.769" y="62.338" fill="#FFFFFF" width="3.528" height="25.494"/>
<path fill="#FFFFFF" d="M60.319,87.832h-3.489v-25.51h4.198c2.353,0,4.216,0.428,5.602,1.303c1.388,0.878,2.074,2.621,2.074,5.215
c0,1.768-0.351,3.211-1.037,4.325c-0.696,1.117-1.955,1.808-3.776,2.103l6.109,12.564h-3.764l-5.833-12.399h-0.085V87.832z
M60.319,73.443c1.442,0,2.608-0.189,3.514-0.604c0.894-0.401,1.354-1.472,1.388-3.219v-0.469c0-1.797-0.388-2.875-1.182-3.238
c-0.78-0.371-2.017-0.553-3.72-0.553V73.443z"/>
<path fill="#FFFFFF" d="M82.104,62.322h3.252l5.952,25.51h-3.404l-1.293-5.07h-5.84l-1.213,5.07h-3.491L82.104,62.322z
M83.751,68.914l-2.353,11.008h4.659L83.751,68.914z"/>
<polygon fill="#FFFFFF" points="100.086,62.338 103.34,62.338 110.162,80.011 110.162,62.338 113.372,62.338 113.372,87.832
110.162,87.832 103.424,69.969 103.424,87.832 100.086,87.832 "/>
<polygon fill="#FFFFFF" points="126.103,65.494 121.406,65.494 121.406,62.322 134.337,62.322 134.337,65.494 129.594,65.494
129.594,87.832 126.103,87.832 "/>
<rect x="141.361" y="62.338" fill="#FFFFFF" width="3.522" height="25.494"/>
<path fill="#FFFFFF" d="M153.061,83.524c0.11,0.045,0.211,0.101,0.314,0.149c0.369,0.212,0.766,0.404,1.177,0.587
c0.419,0.184,0.848,0.338,1.296,0.477c0.231,0.038,0.471,0.086,0.724,0.132c0.249,0.031,0.491,0.055,0.722,0.055h0.176h0.186
c0.515-0.055,1.015-0.228,1.484-0.522c0.471-0.305,0.817-0.752,1.059-1.344c0.08-0.135,0.134-0.261,0.174-0.397
c0.035-0.133,0.071-0.269,0.102-0.425c0-0.131,0.007-0.263,0.014-0.391c0.018-0.124,0.024-0.261,0.024-0.384
c0-0.908-0.313-1.754-0.921-2.522c-0.615-0.761-1.301-1.469-2.068-2.121c-0.253-0.207-0.506-0.411-0.732-0.602
c-0.233-0.195-0.476-0.384-0.71-0.576c-0.866-0.723-1.646-1.521-2.355-2.403c-0.704-0.887-1.17-1.914-1.4-3.086
c0-0.097-0.018-0.199-0.035-0.313c-0.04-0.095-0.04-0.202-0.04-0.309c-0.031,0-0.047-0.014-0.047-0.034v-0.07
c-0.016-0.107-0.047-0.227-0.062-0.363c-0.006-0.116-0.016-0.237-0.016-0.344c0-0.947,0.207-1.879,0.608-2.768
c0.406-0.891,0.977-1.663,1.702-2.309c0.526-0.492,1.1-0.859,1.721-1.092c0.635-0.233,1.27-0.375,1.922-0.426h0.23h0.244
c0.333,0,0.673,0.012,1.012,0.055c0.348,0.041,0.702,0.102,1.062,0.178c0.427,0.1,0.83,0.218,1.229,0.348
c0.404,0.132,0.808,0.295,1.199,0.471v3.414c-0.045-0.025-0.107-0.053-0.178-0.093c-0.062-0.048-0.125-0.079-0.171-0.105
c-0.345-0.174-0.708-0.355-1.121-0.517c-0.399-0.176-0.81-0.305-1.229-0.409c-0.235-0.06-0.475-0.103-0.708-0.142
c-0.233-0.043-0.473-0.062-0.704-0.062h-0.102h-0.131c-0.521,0.031-1.037,0.172-1.536,0.434c-0.485,0.256-0.882,0.682-1.174,1.277
c-0.075,0.16-0.147,0.332-0.209,0.529c-0.071,0.19-0.117,0.389-0.14,0.601c0,0.097-0.007,0.198-0.016,0.309
c-0.016,0.101-0.022,0.208-0.022,0.308c0,0.106,0.007,0.212,0.022,0.309c0.009,0.105,0.016,0.194,0.016,0.275
c0.022,0.208,0.068,0.408,0.14,0.611c0.062,0.191,0.134,0.371,0.209,0.55c0.424,0.803,0.949,1.498,1.608,2.086
c0.655,0.586,1.334,1.16,2.038,1.734c0.78,0.623,1.538,1.28,2.253,1.947c0.714,0.682,1.273,1.498,1.664,2.459
c0.107,0.23,0.178,0.494,0.24,0.797c0.049,0.301,0.088,0.59,0.11,0.879c0,0.157,0.014,0.305,0.022,0.446
c0.018,0.14,0.024,0.293,0.024,0.45c0,0.15-0.007,0.313-0.024,0.486c-0.009,0.171-0.031,0.344-0.062,0.528
c-0.049,0.435-0.135,0.879-0.248,1.322c-0.115,0.443-0.267,0.847-0.453,1.201c-0.579,1.172-1.389,1.996-2.435,2.482
C159.696,87.768,158.6,88,157.451,88c-0.231,0-0.482-0.014-0.725-0.041c-0.239-0.024-0.502-0.05-0.762-0.073
c-0.547-0.054-1.103-0.173-1.645-0.353c-0.55-0.181-1.057-0.395-1.529-0.625v-3.543C152.869,83.418,152.967,83.467,153.061,83.524"
/>
</g>
<g>
<path d="M2,122.566c30.808-38.632,83.788-36.363,100.168-16.205c-9.781-6.441-24.178-11.354-35.44-9.742
c17.766,2.205,23.419,10.355,26.146,14.18c-6.176-4.338-21.843-13.838-37.774-10.948c11.189,1.369,24.046,6.618,29.32,15.931
c-9.011-6.623-24.091-15.078-38.41-11.809c12.339,1.663,24.741,6.916,30.286,17.066C66.319,114.094,30.311,99.701,2,122.566"/>
<path d="M182,112.66c-30.777,38.716-85.008,36.088-101.389,15.92c9.785,6.453,28.208,13.74,39.299,11.352
c-17.494-2.982-27.367-11.934-30.006-15.783c6.084,4.363,22.023,14.26,37.956,11.371c-11.192-1.37-24.224-7.039-29.59-16.324
c9.009,6.611,24.448,15.443,38.778,12.262c-12.349-1.748-25.021-7.403-30.655-17.528C116.461,120.853,153.715,135.61,182,112.66"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#B5432C" d="M151.235,92l0.522,3.604c-12.188,0.07-23.884,1.995-35.063,5.678
c-9.339,3.113-19.804,8.08-31.397,14.967c-14.511,8.802-24.581,14.434-30.09,17.014c-11.855,5.568-23.853,8.738-36.031,9.475
c14.037,0.528,27.364-1.26,40.142-5.431c9.41-3.11,20.01-8.151,31.734-15.169c12.857-7.546,22.794-12.847,29.823-15.962
c10.097-4.334,20.395-7.587,30.999-9.741l0.523,3.576l11.49-5.758L151.235,92z"/>
<polygon points="20.91,152.338 24.046,152.338 27.608,170.011 31.13,152.338 34.111,152.338 36.342,177.832 33.127,177.832
32.116,159.916 28.665,177.832 26.315,177.832 22.945,159.916 21.888,177.832 18.748,177.832 "/>
<rect x="44.769" y="152.338" width="3.528" height="25.494"/>
<path d="M60.319,177.832h-3.489v-25.51h4.198c2.353,0,4.216,0.428,5.602,1.303c1.388,0.878,2.074,2.621,2.074,5.215
c0,1.768-0.351,3.211-1.037,4.325c-0.696,1.117-1.955,1.808-3.776,2.103l6.109,12.564h-3.764l-5.833-12.399h-0.085V177.832z
M60.319,163.443c1.442,0,2.608-0.189,3.514-0.604c0.894-0.401,1.354-1.472,1.388-3.219v-0.469c0-1.797-0.388-2.875-1.182-3.238
c-0.78-0.371-2.017-0.553-3.72-0.553V163.443z"/>
<path d="M82.104,152.322h3.252l5.952,25.51h-3.404l-1.293-5.07h-5.84l-1.213,5.07h-3.491L82.104,152.322z M83.751,158.914
l-2.353,11.008h4.659L83.751,158.914z"/>
<polygon points="100.086,152.338 103.34,152.338 110.162,170.011 110.162,152.338 113.372,152.338 113.372,177.832
110.162,177.832 103.424,159.969 103.424,177.832 100.086,177.832 "/>
<polygon points="126.103,155.494 121.406,155.494 121.406,152.322 134.337,152.322 134.337,155.494 129.594,155.494
129.594,177.832 126.103,177.832 "/>
<rect x="141.361" y="152.338" width="3.522" height="25.494"/>
<path d="M153.061,173.524c0.11,0.045,0.211,0.101,0.314,0.149c0.369,0.212,0.766,0.404,1.177,0.587
c0.419,0.184,0.848,0.338,1.296,0.477c0.231,0.038,0.471,0.086,0.724,0.132c0.249,0.031,0.491,0.055,0.722,0.055h0.176h0.186
c0.515-0.055,1.015-0.228,1.484-0.522c0.471-0.305,0.817-0.752,1.059-1.344c0.08-0.135,0.134-0.261,0.174-0.397
c0.035-0.133,0.071-0.269,0.102-0.425c0-0.131,0.007-0.263,0.014-0.391c0.018-0.124,0.024-0.261,0.024-0.384
c0-0.908-0.313-1.754-0.921-2.522c-0.615-0.761-1.301-1.469-2.068-2.121c-0.253-0.207-0.506-0.411-0.732-0.602
c-0.233-0.195-0.476-0.384-0.71-0.576c-0.866-0.723-1.646-1.521-2.355-2.403c-0.704-0.887-1.17-1.914-1.4-3.086
c0-0.097-0.018-0.199-0.035-0.313c-0.04-0.095-0.04-0.202-0.04-0.309c-0.031,0-0.047-0.014-0.047-0.034v-0.07
c-0.016-0.107-0.047-0.227-0.062-0.363c-0.006-0.116-0.016-0.237-0.016-0.344c0-0.947,0.207-1.879,0.608-2.768
c0.406-0.891,0.977-1.663,1.702-2.309c0.526-0.492,1.1-0.859,1.721-1.092c0.635-0.233,1.27-0.375,1.922-0.426h0.23h0.244
c0.333,0,0.673,0.012,1.012,0.055c0.348,0.041,0.702,0.102,1.062,0.178c0.427,0.1,0.83,0.218,1.229,0.348
c0.404,0.132,0.808,0.295,1.199,0.471v3.414c-0.045-0.025-0.107-0.053-0.178-0.093c-0.062-0.048-0.125-0.079-0.171-0.105
c-0.345-0.174-0.708-0.355-1.121-0.517c-0.399-0.176-0.81-0.305-1.229-0.409c-0.235-0.06-0.475-0.103-0.708-0.142
c-0.233-0.043-0.473-0.062-0.704-0.062h-0.102h-0.131c-0.521,0.031-1.037,0.172-1.536,0.434c-0.485,0.256-0.882,0.682-1.174,1.277
c-0.075,0.16-0.147,0.332-0.209,0.529c-0.071,0.19-0.117,0.389-0.14,0.601c0,0.097-0.007,0.198-0.016,0.309
c-0.016,0.101-0.022,0.208-0.022,0.308c0,0.106,0.007,0.212,0.022,0.309c0.009,0.105,0.016,0.194,0.016,0.275
c0.022,0.208,0.068,0.408,0.14,0.611c0.062,0.191,0.134,0.371,0.209,0.55c0.424,0.803,0.949,1.498,1.608,2.086
c0.655,0.586,1.334,1.16,2.038,1.734c0.78,0.623,1.538,1.28,2.253,1.947c0.714,0.682,1.273,1.498,1.664,2.459
c0.107,0.23,0.178,0.494,0.24,0.797c0.049,0.301,0.088,0.59,0.11,0.879c0,0.157,0.014,0.305,0.022,0.446
c0.018,0.14,0.024,0.293,0.024,0.45c0,0.15-0.007,0.313-0.024,0.486c-0.009,0.171-0.031,0.344-0.062,0.528
c-0.049,0.435-0.135,0.879-0.248,1.322c-0.115,0.443-0.267,0.847-0.453,1.201c-0.579,1.172-1.389,1.996-2.435,2.482
c-1.041,0.486-2.138,0.719-3.286,0.719c-0.231,0-0.482-0.014-0.725-0.041c-0.239-0.024-0.502-0.05-0.762-0.073
c-0.547-0.054-1.103-0.173-1.645-0.353c-0.55-0.181-1.057-0.395-1.529-0.625v-3.543
C152.869,173.418,152.967,173.467,153.061,173.524"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,400 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.756,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.599c-0.196-4.173-1.892-7.003-4.125-9.161
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.598c-0.196-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#8C8C94" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#8C8C94" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g id="Layer_2" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M37.562,16.313l-12.081-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M37.562,15.313l-12.081-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,28.549z"/>
<path fill="#8C8C94" d="M35.427,18.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#8C8C94" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
</g>
<g id="Layer_4" display="none">
<g display="inline" opacity="0.35">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.095z"/>
<path fill="#FFFFFF" d="M16.677,30.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.095z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V22.998z"/>
</g>
<g display="inline">
<rect x="18.484" y="27.602" fill="#8C8C94" width="1.316" height="5.213"/>
<path fill="#8C8C94" d="M30.407,29.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.095z"/>
<path fill="#8C8C94" d="M16.677,29.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.095z"/>
<path fill="#8C8C94" d="M37.3,30.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#8C8C94" d="M24.79,28.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V28.785z"/>
<path fill="#8C8C94" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#8C8C94" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#8C8C94" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#8C8C94" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#8C8C94" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M32.829,17.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V17.745z"/>
<path fill="#8C8C94" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#8C8C94" d="M40,21.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V21.998z"/>
</g>
</g>
<g id="Layer_5" display="none">
<path display="inline" opacity="0.35" fill="#FFFFFF" d="M13.146,20.878c-0.378-0.826-1.31-1.201-2.18-0.812
c-0.873,0.385-1.193,1.352-0.8,2.18l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9
c0,0,3.188-6.94,3.22-7.014c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79
c0,1.048,0.582,1.906,1.697,1.906c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765
c1.047,0,1.741,0.719,1.741,1.765v5.555c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555
c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765v5.555c0,1.048,0.58,1.906,1.697,1.906
c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951c-2.246,0-3.652,1.553-3.652,1.553
c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551c-0.749-0.968-2.021-1.551-3.076-1.551
c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,20.878z"/>
<path display="inline" fill="#8C8C94" d="M13.146,19.878c-0.378-0.826-1.31-1.201-2.18-0.812c-0.873,0.385-1.193,1.352-0.8,2.18
l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9c0,0,3.188-6.94,3.22-7.014
c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79c0,1.048,0.582,1.906,1.697,1.906
c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765c1.047,0,1.741,0.719,1.741,1.765v5.555
c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765
v5.555c0,1.048,0.58,1.906,1.697,1.906c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951
c-2.246,0-3.652,1.553-3.652,1.553c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551
c-0.749-0.968-2.021-1.551-3.076-1.551c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,19.878z"/>
</g>
<g id="Layer_6" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.999,12c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,14.936,11,20.031,11,26c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,19.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,39.998,24.934,40,24.999,40
C32.732,40,39,33.732,39,26C39,18.268,32.732,12,24.999,12z"/>
<path fill="#FFFFFF" d="M29.656,30.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,30.317z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.999,11c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,13.936,11,19.031,11,25c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,18.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,38.998,24.934,39,24.999,39
C32.732,39,39,32.732,39,25C39,17.268,32.732,11,24.999,11z"/>
<path fill="#8C8C94" d="M29.656,29.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,29.317z"/>
</g>
</g>
<g id="Layer_7" display="none">
<g display="inline" opacity="0.35">
<g>
<path fill="#FFFFFF" d="M17.232,34.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,30.213,9.102,28.171,9.102,26
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,33.284,19.403,34.131,17.232,34.131z
M17.232,18.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,22.15,9.801,24.016,9.801,26c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,19.342,19.217,18.569,17.232,18.569z"/>
</g>
<path fill="#FFFFFF" d="M28.412,26.061c0.168-0.721-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,27.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#FFFFFF" d="M32.588,26.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.331h-3.594l0.697-2.987
c0.192-0.82-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.465-1.482,1.321l-0.651,2.776h-3.594L32.588,26.083z"/>
<polygon fill="#FFFFFF" points="14.989,26.189 11.143,21.449 15.856,21.458 17.897,24.22 21.292,21.449 26.747,21.449
19.938,26.677 23.767,31.605 19.017,31.605 17.066,28.735 13.437,31.605 8,31.605 "/>
</g>
<g display="inline">
<g>
<path fill="#8C8C94" d="M17.232,33.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,29.213,9.102,27.171,9.102,25
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,32.284,19.403,33.131,17.232,33.131z
M17.232,17.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,21.15,9.801,23.016,9.801,25c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,18.342,19.217,17.569,17.232,17.569z"/>
</g>
<path fill="#8C8C94" d="M28.412,25.061c0.168-0.722-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,26.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#8C8C94" d="M32.588,25.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.332h-3.594l0.697-2.987
c0.192-0.821-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.466-1.482,1.321l-0.651,2.776h-3.594L32.588,25.083z"/>
<polygon fill="#8C8C94" points="14.989,25.189 11.143,20.449 15.856,20.458 17.897,23.22 21.292,20.449 26.747,20.449
19.938,25.677 23.767,30.605 19.017,30.605 17.066,27.735 13.437,30.605 8,30.605 "/>
</g>
</g>
<g id="Layer_8" display="none">
<g display="inline">
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M9.568,21.873v2.055H9.411c-0.053-0.393-0.148-0.706-0.284-0.938
c-0.137-0.233-0.332-0.417-0.584-0.555c-0.253-0.137-0.515-0.205-0.785-0.205c-0.306,0-0.559,0.093-0.758,0.28
s-0.3,0.398-0.3,0.637c0,0.182,0.063,0.348,0.189,0.498c0.182,0.22,0.615,0.514,1.299,0.881c0.557,0.3,0.938,0.529,1.143,0.689
s0.361,0.349,0.472,0.566c0.11,0.217,0.166,0.444,0.166,0.682c0,0.453-0.176,0.843-0.527,1.17c-0.351,0.327-0.803,0.49-1.356,0.49
c-0.173,0-0.337-0.013-0.489-0.04c-0.091-0.015-0.28-0.068-0.567-0.162c-0.287-0.093-0.468-0.14-0.544-0.14
c-0.074,0-0.132,0.022-0.174,0.066c-0.043,0.045-0.074,0.137-0.095,0.275H6.057v-2.055h0.157c0.077,0.431,0.18,0.753,0.309,0.967
c0.129,0.215,0.327,0.393,0.593,0.533c0.266,0.142,0.558,0.213,0.875,0.213c0.367,0,0.658-0.098,0.871-0.291
c0.213-0.194,0.32-0.424,0.32-0.688c0-0.146-0.041-0.296-0.121-0.445s-0.206-0.29-0.375-0.419
c-0.115-0.089-0.427-0.274-0.938-0.561c-0.511-0.285-0.875-0.513-1.09-0.684c-0.216-0.171-0.379-0.359-0.491-0.565
C6.056,23.922,6,23.696,6,23.449c0-0.429,0.165-0.8,0.494-1.11c0.329-0.311,0.748-0.466,1.256-0.466
c0.317,0,0.654,0.078,1.009,0.233c0.165,0.073,0.281,0.11,0.348,0.11c0.077,0,0.139-0.022,0.188-0.068
c0.048-0.045,0.087-0.137,0.117-0.275H9.568L9.568,21.873z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M13.029,24.148v-0.104h1.398v0.104h-0.149
c-0.156,0-0.276,0.066-0.36,0.199c-0.041,0.062-0.062,0.205-0.062,0.429v1.615c0,0.399-0.04,0.709-0.119,0.929
c-0.079,0.221-0.235,0.409-0.467,0.566c-0.233,0.158-0.549,0.236-0.949,0.236c-0.436,0-0.766-0.075-0.991-0.226
c-0.226-0.151-0.385-0.354-0.479-0.609c-0.063-0.174-0.094-0.502-0.094-0.982v-1.558c0-0.246-0.034-0.407-0.1-0.484
s-0.174-0.115-0.323-0.115h-0.148v-0.104h1.702v0.104h-0.15c-0.162,0-0.278,0.052-0.348,0.157
c-0.048,0.071-0.072,0.218-0.072,0.442v1.736c0,0.154,0.014,0.332,0.043,0.531c0.028,0.2,0.08,0.355,0.155,0.468
c0.075,0.111,0.183,0.203,0.324,0.275c0.141,0.073,0.314,0.109,0.519,0.109c0.262,0,0.497-0.058,0.704-0.171
c0.207-0.113,0.349-0.259,0.424-0.436c0.076-0.178,0.114-0.478,0.114-0.9v-1.613c0-0.25-0.027-0.406-0.082-0.469
c-0.076-0.086-0.189-0.13-0.34-0.13H13.029L13.029,24.148z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M15.73,26.168v1.166c0,0.252,0.027,0.408,0.082,0.47
c0.074,0.086,0.187,0.13,0.336,0.13h0.152v0.104h-1.702v-0.104h0.15c0.168,0,0.289-0.056,0.362-0.166
c0.039-0.061,0.059-0.205,0.059-0.434v-2.586c0-0.252-0.026-0.408-0.08-0.469c-0.076-0.086-0.19-0.13-0.341-0.13h-0.15v-0.104
h1.456c0.355,0,0.636,0.037,0.841,0.11s0.377,0.198,0.519,0.373c0.141,0.175,0.211,0.382,0.211,0.622
c0,0.326-0.107,0.591-0.321,0.796c-0.214,0.204-0.516,0.306-0.906,0.306c-0.096,0-0.199-0.007-0.31-0.021
C15.977,26.216,15.857,26.195,15.73,26.168L15.73,26.168z M15.73,26.001c0.103,0.02,0.194,0.034,0.273,0.044
s0.147,0.015,0.204,0.015c0.202,0,0.376-0.079,0.522-0.237s0.22-0.363,0.22-0.615c0-0.173-0.035-0.333-0.105-0.482
s-0.168-0.259-0.296-0.333c-0.128-0.073-0.274-0.11-0.437-0.11c-0.099,0-0.226,0.019-0.381,0.056V26.001L15.73,26.001z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M19.097,24.272v1.569h0.855c0.228,0,0.38-0.033,0.457-0.102
c0.102-0.088,0.159-0.245,0.171-0.469h0.104v1.379h-0.104c-0.028-0.192-0.055-0.316-0.083-0.371
c-0.036-0.067-0.093-0.121-0.174-0.16s-0.205-0.059-0.372-0.059h-0.855v1.307c0,0.175,0.007,0.281,0.023,0.319l0.082,0.091
c0.039,0.022,0.114,0.033,0.223,0.033H20.1c0.225,0,0.388-0.016,0.49-0.046c0.102-0.031,0.199-0.092,0.293-0.183
c0.121-0.12,0.245-0.301,0.373-0.542h0.124l-0.344,0.999h-3.07v-0.104h0.141c0.094,0,0.183-0.022,0.268-0.068
c0.062-0.031,0.105-0.079,0.128-0.143s0.034-0.192,0.034-0.389v-2.586c0-0.259-0.025-0.418-0.076-0.479
c-0.071-0.08-0.188-0.12-0.353-0.12h-0.141v-0.104h3.062l0.038,0.875h-0.124c-0.041-0.207-0.086-0.349-0.135-0.426
s-0.123-0.136-0.219-0.177c-0.077-0.029-0.214-0.044-0.41-0.044H19.097L19.097,24.272z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M25.589,28.038h-1.067l-1.353-1.864
c-0.099,0.004-0.18,0.006-0.243,0.006l-0.082-0.001l-0.09-0.005v1.16c0,0.252,0.027,0.408,0.082,0.47
c0.074,0.086,0.185,0.13,0.333,0.13h0.155v0.104h-1.702v-0.104h0.149c0.167,0,0.288-0.056,0.36-0.166
c0.041-0.061,0.061-0.205,0.061-0.434v-2.586c0-0.252-0.027-0.408-0.082-0.469c-0.076-0.086-0.189-0.13-0.339-0.13h-0.149v-0.104
h1.452c0.423,0,0.735,0.031,0.936,0.093c0.201,0.062,0.371,0.176,0.511,0.342s0.21,0.364,0.21,0.594
c0,0.246-0.08,0.459-0.241,0.64c-0.16,0.181-0.409,0.309-0.745,0.383l0.828,1.145c0.188,0.265,0.35,0.441,0.485,0.528
c0.135,0.087,0.311,0.142,0.529,0.166V28.038L25.589,28.038z M22.754,25.993l0.096,0.002l0.067,0.001
c0.377,0,0.661-0.083,0.853-0.249s0.287-0.378,0.287-0.635c0-0.251-0.077-0.456-0.232-0.613c-0.154-0.158-0.359-0.236-0.613-0.236
c-0.113,0-0.265,0.022-0.458,0.066V25.993L22.754,25.993z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M27.995,28.038l-1.54-3.361v2.667
c0,0.248,0.026,0.403,0.08,0.465c0.073,0.083,0.189,0.125,0.348,0.125h0.143v0.104h-1.397v-0.104h0.143
c0.17,0,0.291-0.052,0.362-0.155c0.044-0.063,0.065-0.208,0.065-0.435v-2.605c0-0.179-0.02-0.308-0.06-0.387
c-0.027-0.058-0.079-0.106-0.153-0.145s-0.193-0.058-0.357-0.058v-0.104h1.143l1.44,3.118l1.429-3.118h1.123v0.104h-0.14
c-0.172,0-0.294,0.052-0.365,0.155c-0.044,0.064-0.065,0.208-0.065,0.435v2.605c0,0.248,0.027,0.403,0.083,0.465
c0.073,0.083,0.189,0.125,0.348,0.125h0.14v0.104h-1.702v-0.104h0.143c0.173,0,0.293-0.052,0.362-0.155
c0.044-0.063,0.065-0.208,0.065-0.435v-2.667l-1.54,3.361H27.995L27.995,28.038z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M32.738,27.934v0.104h-1.702v-0.104h0.142
c0.164,0,0.284-0.048,0.358-0.145c0.047-0.063,0.07-0.215,0.07-0.455v-2.586c0-0.203-0.013-0.336-0.038-0.401
c-0.02-0.049-0.06-0.092-0.12-0.127c-0.087-0.047-0.177-0.071-0.271-0.071h-0.142v-0.104h1.702v0.104h-0.143
c-0.162,0-0.28,0.048-0.354,0.145c-0.049,0.063-0.073,0.215-0.073,0.455v2.586c0,0.203,0.013,0.337,0.038,0.401
c0.02,0.05,0.061,0.092,0.123,0.127c0.084,0.048,0.173,0.071,0.267,0.071H32.738L32.738,27.934z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M36.045,23.958l0.096,1.369h-0.096
c-0.12-0.412-0.293-0.708-0.517-0.889c-0.225-0.181-0.493-0.271-0.807-0.271c-0.263,0-0.5,0.067-0.713,0.202
c-0.212,0.134-0.379,0.348-0.501,0.643c-0.121,0.294-0.183,0.659-0.183,1.097c0,0.36,0.058,0.673,0.173,0.938
c0.115,0.264,0.289,0.467,0.521,0.608c0.231,0.141,0.495,0.212,0.793,0.212c0.257,0,0.484-0.056,0.683-0.167
c0.197-0.11,0.413-0.331,0.65-0.661l0.091,0.058c-0.199,0.355-0.433,0.615-0.699,0.78c-0.266,0.164-0.582,0.246-0.948,0.246
c-0.659,0-1.171-0.244-1.532-0.734c-0.271-0.363-0.405-0.793-0.405-1.286c0-0.397,0.089-0.763,0.267-1.096
c0.178-0.333,0.422-0.591,0.733-0.774c0.311-0.183,0.651-0.274,1.02-0.274c0.287,0,0.57,0.07,0.85,0.211
c0.081,0.043,0.14,0.064,0.175,0.064c0.053,0,0.099-0.019,0.138-0.056c0.051-0.053,0.087-0.126,0.108-0.22H36.045L36.045,23.958z"
/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#303490" d="M40.212,28.038h-1.066l-1.354-1.864
c-0.099,0.004-0.18,0.006-0.242,0.006l-0.082-0.001l-0.091-0.005v1.16c0,0.252,0.027,0.408,0.083,0.47
c0.073,0.086,0.185,0.13,0.333,0.13h0.155v0.104h-1.702v-0.104h0.148c0.168,0,0.288-0.056,0.36-0.166
c0.041-0.061,0.062-0.205,0.062-0.434v-2.586c0-0.252-0.027-0.408-0.082-0.469c-0.076-0.086-0.189-0.13-0.34-0.13h-0.148v-0.104
h1.452c0.423,0,0.734,0.031,0.936,0.093c0.201,0.062,0.371,0.176,0.512,0.342c0.14,0.166,0.21,0.364,0.21,0.594
c0,0.246-0.08,0.459-0.24,0.64c-0.161,0.181-0.409,0.309-0.745,0.383l0.828,1.145c0.188,0.265,0.35,0.441,0.484,0.528
c0.136,0.087,0.312,0.142,0.529,0.166V28.038L40.212,28.038z M37.377,25.993l0.097,0.002l0.067,0.001
c0.377,0,0.661-0.083,0.853-0.249s0.287-0.378,0.287-0.635c0-0.251-0.077-0.456-0.232-0.613c-0.154-0.158-0.358-0.236-0.613-0.236
c-0.112,0-0.266,0.022-0.458,0.066V25.993L37.377,25.993z"/>
<path fill-rule="evenodd" clip-rule="evenodd" fill="#C23E32" d="M39.831,26.043c0-1.151,0.934-2.084,2.085-2.084
c1.15,0,2.084,0.933,2.084,2.084c0,1.15-0.934,2.084-2.084,2.084C40.765,28.127,39.831,27.193,39.831,26.043L39.831,26.043z"/>
</g>
</g>
<g id="Layer_9">
<g opacity="0.35">
<path fill="#FFFFFF" d="M36.353,38.704c-1.297,0-3.031-0.544-5.299-1.661c-0.167-0.081-0.329-0.163-0.491-0.244
c-3.177,1.122-7.697,1.842-11.62,1.842c-3.211,0-7.18-0.464-7.85-2.669c-0.492-1.619,0.962-3.539,4.447-5.87
c0.154-0.103,0.306-0.204,0.458-0.304c0.583-3.136,2.066-7.104,3.905-10.435c1.251-2.266,3.703-6.067,6.059-6.067
c1.921,0,3.046,2.302,3.346,6.842c0.013,0.184,0.023,0.366,0.034,0.546c4.643,3.977,10.766,12.961,9.486,16.5
C38.578,37.877,37.944,38.704,36.353,38.704z M32.152,36.15c1.803,0.846,3.214,1.273,4.2,1.273c0.911,0,1.158-0.36,1.271-0.675
c0.85-2.353-3.571-9.87-8.208-14.274c0.031,1.234,0.018,2.417-0.039,3.531v0.002l-0.001,0.021c0.096,0.347,0.068,0.747-0.08,1.188
v0.006c-0.026,0.305-0.056,0.604-0.089,0.895l0.005,0.002l-0.001,0.002c0.101,0.037,0.202,0.076,0.304,0.114
c3.821,1.445,5.676,2.959,5.669,4.627C35.179,34.097,34.16,35.201,32.152,36.15z M15.765,31.499
c-3.482,2.429-3.577,3.67-3.447,4.101c0.325,1.069,2.925,1.761,6.625,1.761c3.33,0,7.096-0.534,10.03-1.395
c-1.085-0.589-2.101-1.19-3.035-1.797h-0.001l-0.019-0.012c-0.349-0.091-0.681-0.313-0.99-0.664l-0.004-0.004
c-0.25-0.174-0.495-0.349-0.729-0.522L24.19,32.97l-0.002-0.002c-0.083,0.069-0.166,0.137-0.25,0.206
c-2.391,1.956-4.228,2.906-5.617,2.906c-0.738,0-1.362-0.276-1.803-0.8C15.874,34.518,15.623,33.248,15.765,31.499z M27.48,33.628
c0.979,0.601,2.039,1.195,3.163,1.776c2.045-0.794,3.257-1.738,3.261-2.547c0.002-0.479-0.467-1.771-4.842-3.426
c-0.013-0.004-0.024-0.009-0.036-0.014C28.753,31.066,28.284,32.767,27.48,33.628z M17.166,30.566
c-0.291,1.882-0.174,3.29,0.331,3.888c0.199,0.237,0.46,0.346,0.824,0.346c0.733,0,2.162-0.454,4.807-2.616
c0.01-0.009,0.02-0.017,0.029-0.025c-1.24-1.021-2.52-2.298-2.869-3.445C19.277,29.261,18.231,29.882,17.166,30.566z
M25.801,32.54c0.177,0.122,0.36,0.246,0.547,0.368c0.304-0.124,0.903-1.012,1.33-3.221c-0.605,0.683-1.362,1.429-2.264,2.23
C25.543,32.167,25.672,32.373,25.801,32.54z M21.476,28.093c-0.002,0.024-0.002,0.057,0.003,0.097
c0.06,0.482,0.662,1.406,2.12,2.668c-0.289-0.865-0.557-1.894-0.801-3.077c-0.279-0.012-0.524-0.004-0.731,0.024
C21.873,27.896,21.675,27.993,21.476,28.093z M24.142,27.948c0.23,1.057,0.479,1.967,0.746,2.723
c0.8-0.729,1.463-1.399,1.983-2.007C25.841,28.335,24.928,28.096,24.142,27.948z M25.962,14.577c-2.364,0-6.904,7.849-8.45,14.262
c1.052-0.644,2.082-1.224,3.074-1.73l0-0.001l0.019-0.009c0.254-0.258,0.613-0.435,1.072-0.526l0.004-0.002
c0.277-0.131,0.55-0.254,0.818-0.37l-0.001-0.005l0.003-0.002c-0.018-0.104-0.036-0.211-0.053-0.318
c-0.558-3.413-0.37-5.611,0.573-6.722c0.443-0.521,1.056-0.797,1.769-0.797c0.896,0,1.967,0.429,3.195,1.277
C27.597,15.084,26.451,14.577,25.962,14.577z M24.626,26.739c0.893,0.182,1.917,0.464,3.062,0.845
c0.151-0.236,0.267-0.452,0.346-0.646c0.016-0.213,0.032-0.432,0.046-0.652c-0.105-0.076-0.343-0.141-0.71-0.141
C26.695,26.145,25.744,26.353,24.626,26.739z M24.791,19.636c-0.34,0-0.592,0.11-0.793,0.347
c-0.381,0.448-0.924,1.782-0.287,5.686c0.002,0.012,0.005,0.025,0.007,0.038c1.474-0.552,2.728-0.842,3.652-0.842
c0.296,0,0.55,0.029,0.767,0.08c0.031-1.15,0.016-2.367-0.044-3.633C26.746,20.229,25.58,19.636,24.791,19.636z"/>
</g>
<g>
<path fill="#8C8C94" d="M36.353,37.704c-1.297,0-3.031-0.544-5.299-1.661c-0.167-0.081-0.329-0.163-0.491-0.244
c-3.177,1.122-7.697,1.842-11.62,1.842c-3.211,0-7.18-0.464-7.85-2.669c-0.492-1.619,0.962-3.539,4.447-5.87
c0.154-0.103,0.306-0.204,0.458-0.304c0.583-3.136,2.066-7.104,3.905-10.435c1.251-2.266,3.703-6.067,6.059-6.067
c1.921,0,3.046,2.302,3.346,6.842c0.013,0.184,0.023,0.366,0.034,0.546c4.643,3.977,10.766,12.961,9.486,16.5
C38.578,36.877,37.944,37.704,36.353,37.704z M32.152,35.15c1.803,0.846,3.214,1.273,4.2,1.273c0.911,0,1.158-0.36,1.271-0.675
c0.85-2.353-3.571-9.87-8.208-14.274c0.031,1.234,0.018,2.417-0.039,3.531v0.001l-0.001,0.021c0.096,0.347,0.068,0.747-0.08,1.188
v0.006c-0.026,0.305-0.056,0.604-0.089,0.895l0.005,0.002l-0.001,0.002c0.101,0.037,0.202,0.076,0.304,0.114
c3.821,1.445,5.676,2.959,5.669,4.627C35.179,33.097,34.16,34.201,32.152,35.15z M15.765,30.499
c-3.482,2.429-3.577,3.67-3.447,4.101c0.325,1.069,2.925,1.761,6.625,1.761c3.33,0,7.096-0.534,10.03-1.395
c-1.085-0.589-2.101-1.19-3.035-1.797h-0.001l-0.019-0.012c-0.349-0.091-0.681-0.313-0.99-0.664l-0.004-0.004
c-0.25-0.174-0.495-0.349-0.729-0.522L24.19,31.97l-0.002-0.002c-0.083,0.069-0.166,0.137-0.25,0.206
c-2.391,1.956-4.228,2.906-5.617,2.906c-0.738,0-1.362-0.276-1.803-0.8C15.874,33.518,15.623,32.248,15.765,30.499z M27.48,32.628
c0.979,0.601,2.039,1.195,3.163,1.776c2.045-0.794,3.257-1.738,3.261-2.547c0.002-0.479-0.467-1.771-4.842-3.426
c-0.013-0.004-0.024-0.009-0.036-0.014C28.753,30.066,28.284,31.767,27.48,32.628z M17.166,29.566
c-0.291,1.882-0.174,3.29,0.331,3.888c0.199,0.237,0.46,0.346,0.824,0.346c0.733,0,2.162-0.454,4.807-2.616
c0.01-0.009,0.02-0.017,0.029-0.025c-1.24-1.021-2.52-2.298-2.869-3.445C19.277,28.261,18.231,28.882,17.166,29.566z
M25.801,31.54c0.177,0.122,0.36,0.246,0.547,0.368c0.304-0.124,0.903-1.012,1.33-3.221c-0.605,0.683-1.362,1.429-2.264,2.23
C25.543,31.167,25.672,31.373,25.801,31.54z M21.476,27.093c-0.002,0.024-0.002,0.057,0.003,0.097
c0.06,0.482,0.662,1.406,2.12,2.668c-0.289-0.865-0.557-1.894-0.801-3.077c-0.279-0.012-0.524-0.004-0.731,0.024
C21.873,26.896,21.675,26.993,21.476,27.093z M24.142,26.948c0.23,1.057,0.479,1.967,0.746,2.723
c0.8-0.729,1.463-1.399,1.983-2.007C25.841,27.335,24.928,27.096,24.142,26.948z M25.962,13.577c-2.364,0-6.904,7.849-8.45,14.262
c1.052-0.644,2.082-1.224,3.074-1.73l0-0.001l0.019-0.009c0.254-0.258,0.613-0.435,1.072-0.526l0.004-0.002
c0.277-0.13,0.55-0.253,0.818-0.37l-0.001-0.005l0.003-0.001c-0.018-0.105-0.036-0.211-0.053-0.319
c-0.558-3.412-0.37-5.611,0.573-6.722c0.443-0.521,1.056-0.797,1.769-0.797c0.896,0,1.967,0.429,3.195,1.277
C27.597,14.084,26.451,13.577,25.962,13.577z M24.626,25.739c0.893,0.182,1.917,0.464,3.062,0.845
c0.151-0.236,0.267-0.452,0.346-0.646c0.016-0.213,0.032-0.432,0.046-0.652c-0.105-0.076-0.343-0.141-0.71-0.141
C26.695,25.145,25.744,25.353,24.626,25.739z M24.791,18.636c-0.34,0-0.592,0.11-0.793,0.347
c-0.381,0.448-0.924,1.782-0.287,5.686c0.002,0.012,0.005,0.025,0.007,0.038c1.474-0.552,2.728-0.842,3.652-0.842
c0.296,0,0.55,0.029,0.767,0.08c0.031-1.15,0.016-2.367-0.044-3.633C26.746,19.229,25.58,18.636,24.791,18.636z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 37 KiB

View File

@ -1,632 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.756,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.599c-0.196-4.173-1.892-7.003-4.125-9.161
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.598c-0.196-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#8C8C94" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#8C8C94" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g id="Layer_2" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M37.562,16.313l-12.081-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M37.562,15.313l-12.081-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,28.549z"/>
<path fill="#8C8C94" d="M35.427,18.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#8C8C94" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
</g>
<g id="Layer_4" display="none">
<g display="inline" opacity="0.35">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.095z"/>
<path fill="#FFFFFF" d="M16.677,30.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.095z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V22.998z"/>
</g>
<g display="inline">
<rect x="18.484" y="27.602" fill="#8C8C94" width="1.316" height="5.213"/>
<path fill="#8C8C94" d="M30.407,29.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.095z"/>
<path fill="#8C8C94" d="M16.677,29.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.095z"/>
<path fill="#8C8C94" d="M37.3,30.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#8C8C94" d="M24.79,28.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V28.785z"/>
<path fill="#8C8C94" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#8C8C94" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#8C8C94" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#8C8C94" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#8C8C94" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M32.829,17.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V17.745z"/>
<path fill="#8C8C94" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#8C8C94" d="M40,21.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V21.998z"/>
</g>
</g>
<g id="Layer_5" display="none">
<path display="inline" opacity="0.35" fill="#FFFFFF" d="M13.146,20.878c-0.378-0.826-1.31-1.201-2.18-0.812
c-0.873,0.385-1.193,1.352-0.8,2.18l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9
c0,0,3.188-6.94,3.22-7.014c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79
c0,1.048,0.582,1.906,1.697,1.906c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765
c1.047,0,1.741,0.719,1.741,1.765v5.555c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555
c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765v5.555c0,1.048,0.58,1.906,1.697,1.906
c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951c-2.246,0-3.652,1.553-3.652,1.553
c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551c-0.749-0.968-2.021-1.551-3.076-1.551
c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,20.878z"/>
<path display="inline" fill="#8C8C94" d="M13.146,19.878c-0.378-0.826-1.31-1.201-2.18-0.812c-0.873,0.385-1.193,1.352-0.8,2.18
l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9c0,0,3.188-6.94,3.22-7.014
c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79c0,1.048,0.582,1.906,1.697,1.906
c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765c1.047,0,1.741,0.719,1.741,1.765v5.555
c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765
v5.555c0,1.048,0.58,1.906,1.697,1.906c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951
c-2.246,0-3.652,1.553-3.652,1.553c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551
c-0.749-0.968-2.021-1.551-3.076-1.551c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,19.878z"/>
</g>
<g id="Layer_6" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.999,12c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,14.936,11,20.031,11,26c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,19.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,39.998,24.934,40,24.999,40
C32.732,40,39,33.732,39,26C39,18.268,32.732,12,24.999,12z"/>
<path fill="#FFFFFF" d="M29.656,30.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,30.317z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.999,11c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,13.936,11,19.031,11,25c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,18.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,38.998,24.934,39,24.999,39
C32.732,39,39,32.732,39,25C39,17.268,32.732,11,24.999,11z"/>
<path fill="#8C8C94" d="M29.656,29.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,29.317z"/>
</g>
</g>
<g id="Layer_7" display="none">
<g display="inline" opacity="0.35">
<g>
<path fill="#FFFFFF" d="M17.232,34.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,30.213,9.102,28.171,9.102,26
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,33.284,19.403,34.131,17.232,34.131z
M17.232,18.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,22.15,9.801,24.016,9.801,26c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,19.342,19.217,18.569,17.232,18.569z"/>
</g>
<path fill="#FFFFFF" d="M28.412,26.061c0.168-0.721-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,27.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#FFFFFF" d="M32.588,26.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.331h-3.594l0.697-2.987
c0.192-0.82-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.465-1.482,1.321l-0.651,2.776h-3.594L32.588,26.083z"/>
<polygon fill="#FFFFFF" points="14.989,26.189 11.143,21.449 15.856,21.458 17.897,24.22 21.292,21.449 26.747,21.449
19.938,26.677 23.767,31.605 19.017,31.605 17.066,28.735 13.437,31.605 8,31.605 "/>
</g>
<g display="inline">
<g>
<path fill="#8C8C94" d="M17.232,33.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,29.213,9.102,27.171,9.102,25
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,32.284,19.403,33.131,17.232,33.131z
M17.232,17.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,21.15,9.801,23.016,9.801,25c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,18.342,19.217,17.569,17.232,17.569z"/>
</g>
<path fill="#8C8C94" d="M28.412,25.061c0.168-0.722-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,26.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#8C8C94" d="M32.588,25.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.332h-3.594l0.697-2.987
c0.192-0.821-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.466-1.482,1.321l-0.651,2.776h-3.594L32.588,25.083z"/>
<polygon fill="#8C8C94" points="14.989,25.189 11.143,20.449 15.856,20.458 17.897,23.22 21.292,20.449 26.747,20.449
19.938,25.677 23.767,30.605 19.017,30.605 17.066,27.735 13.437,30.605 8,30.605 "/>
</g>
</g>
<g id="Layer_8" display="none">
<g display="inline">
<path fill="#FFFFFF" d="M10.105,20.082c0.354,0.28,0.954,0.656,1.782,1.118c0.859,0.482,1.339,0.769,1.514,0.904
c0.26,0.196,0.457,0.414,0.582,0.648c0.124,0.227,0.186,0.455,0.186,0.677c0,0.4-0.165,0.752-0.488,1.046
c-0.327,0.296-0.78,0.447-1.35,0.447c-0.499,0-0.962-0.113-1.378-0.335c-0.413-0.218-0.724-0.496-0.925-0.828
c-0.204-0.337-0.368-0.854-0.49-1.538l-0.014-0.079H9.092v3.528h0.434l0.012-0.081c0.039-0.256,0.092-0.357,0.128-0.396
c0.052-0.052,0.122-0.078,0.215-0.078c0.078,0,0.291,0.039,0.855,0.223c0.465,0.151,0.779,0.24,0.933,0.266
c0.238,0.045,0.504,0.067,0.812,0.067c0.92,0,1.683-0.276,2.268-0.821c0.588-0.55,0.887-1.212,0.887-1.97
c0-0.398-0.094-0.785-0.279-1.151c-0.185-0.365-0.452-0.685-0.793-0.952c-0.335-0.262-0.964-0.642-1.869-1.127
c-1.096-0.589-1.796-1.064-2.081-1.409c-0.19-0.225-0.286-0.477-0.286-0.747c0-0.355,0.154-0.679,0.457-0.962
c0.303-0.285,0.695-0.429,1.165-0.429c0.419,0,0.833,0.108,1.229,0.322c0.391,0.211,0.697,0.501,0.911,0.863
c0.214,0.365,0.366,0.865,0.45,1.488l0.011,0.083h0.437V15.33h-0.43l-0.017,0.076c-0.056,0.254-0.119,0.357-0.161,0.396
c-0.062,0.057-0.141,0.085-0.239,0.085c-0.065,0-0.209-0.029-0.528-0.171c-0.586-0.256-1.15-0.386-1.675-0.386
c-0.845,0-1.553,0.263-2.107,0.782C9.28,16.635,9,17.265,9,17.985c0,0.416,0.095,0.802,0.283,1.149
C9.47,19.48,9.747,19.798,10.105,20.082z"/>
<path fill="#FFFFFF" d="M16.584,19.372c0.063,0.072,0.138,0.256,0.138,0.722v2.528c0,0.802,0.053,1.334,0.16,1.629
c0.159,0.433,0.434,0.782,0.815,1.036c0.38,0.255,0.939,0.384,1.662,0.384c0.668,0,1.205-0.134,1.596-0.399
c0.393-0.268,0.66-0.593,0.795-0.968c0.135-0.369,0.2-0.874,0.2-1.54v-2.622c0-0.452,0.052-0.596,0.084-0.645
c0.119-0.188,0.283-0.279,0.502-0.279h0.339v-0.362h-2.461v0.362h0.337c0.217,0,0.373,0.058,0.479,0.177
c0.04,0.047,0.108,0.2,0.108,0.7v2.618c0,0.67-0.059,1.15-0.176,1.425c-0.114,0.265-0.333,0.486-0.648,0.659
c-0.323,0.178-0.691,0.268-1.095,0.268c-0.315,0-0.584-0.057-0.798-0.167c-0.213-0.11-0.377-0.25-0.488-0.416
c-0.114-0.167-0.193-0.409-0.238-0.718c-0.046-0.319-0.069-0.605-0.069-0.851v-2.818c0-0.426,0.054-0.597,0.101-0.666
c0.094-0.142,0.253-0.211,0.483-0.211h0.342v-0.362h-2.957v0.362h0.336C16.344,19.217,16.497,19.269,16.584,19.372z"/>
<path fill="#FFFFFF" d="M25.917,25.17h-0.343c-0.215,0-0.37-0.058-0.473-0.179c-0.033-0.037-0.109-0.177-0.109-0.697v-1.775
c0.156,0.031,0.317,0.059,0.472,0.076c0.176,0.022,0.351,0.034,0.516,0.034c0.658,0,1.175-0.176,1.539-0.522
c0.364-0.352,0.55-0.809,0.55-1.362c0-0.409-0.122-0.769-0.364-1.07c-0.239-0.295-0.538-0.508-0.884-0.634
c-0.342-0.123-0.812-0.185-1.398-0.185h-2.46v0.362h0.34c0.216,0,0.377,0.06,0.48,0.178c0.04,0.044,0.105,0.195,0.105,0.699v4.2
c0,0.459-0.05,0.605-0.079,0.65c-0.1,0.152-0.266,0.226-0.507,0.226h-0.34v0.363h2.955V25.17z M24.992,22.049v-2.544
c0.21-0.046,0.387-0.07,0.524-0.07c0.244,0,0.467,0.055,0.66,0.165c0.191,0.11,0.335,0.273,0.44,0.499
c0.107,0.229,0.162,0.479,0.162,0.742c0,0.388-0.109,0.693-0.33,0.932c-0.221,0.239-0.476,0.355-0.778,0.355
c-0.097,0-0.203-0.007-0.32-0.023C25.252,22.093,25.137,22.075,24.992,22.049z"/>
<path fill="#FFFFFF" d="M34.204,23.719h-0.396l-0.027,0.052c-0.199,0.381-0.397,0.668-0.586,0.854
c-0.142,0.137-0.284,0.227-0.435,0.275c-0.155,0.045-0.414,0.068-0.769,0.068h-1.096c-0.188,0-0.27-0.019-0.306-0.033
l-0.104-0.121c-0.012-0.039-0.025-0.151-0.025-0.469V22.32h1.291c0.256,0,0.444,0.029,0.562,0.085
c0.11,0.053,0.189,0.125,0.238,0.216c0.019,0.04,0.068,0.175,0.125,0.574l0.011,0.083h0.35v-2.432H32.68l-0.004,0.091
c-0.021,0.336-0.103,0.57-0.247,0.696c-0.104,0.092-0.331,0.139-0.678,0.139H30.46v-2.352h1.655c0.308,0,0.521,0.021,0.628,0.061
c0.14,0.06,0.246,0.145,0.313,0.251c0.072,0.115,0.142,0.336,0.206,0.659l0.016,0.078h0.381l-0.071-1.613h-5.159v0.362h0.324
c0.237,0,0.405,0.055,0.5,0.161c0.036,0.044,0.1,0.197,0.1,0.716v4.2c0,0.315-0.016,0.511-0.047,0.598
c-0.03,0.08-0.083,0.139-0.164,0.178c-0.118,0.066-0.249,0.1-0.389,0.1h-0.324v0.363h5.15L34.204,23.719z"/>
<path fill="#FFFFFF" d="M40.914,25.17c-0.34-0.036-0.615-0.122-0.819-0.253c-0.209-0.137-0.465-0.417-0.761-0.833l-1.26-1.742
c0.493-0.128,0.869-0.336,1.118-0.618c0.276-0.307,0.416-0.678,0.416-1.102c0-0.394-0.122-0.74-0.365-1.027
c-0.243-0.286-0.528-0.478-0.876-0.585c-0.334-0.104-0.855-0.155-1.547-0.155h-2.452v0.362h0.337c0.213,0,0.375,0.06,0.479,0.178
c0.04,0.045,0.107,0.196,0.107,0.699v4.2c0,0.457-0.053,0.603-0.085,0.65c-0.1,0.151-0.264,0.226-0.502,0.226h-0.337v0.363h2.954
V25.17h-0.347c-0.214,0-0.367-0.058-0.471-0.179c-0.04-0.045-0.108-0.195-0.108-0.697v-1.782l0.184,0.005
c0.076,0,0.173-0.004,0.287-0.008l0.059-0.002l2.195,3.026H41V25.18L40.914,25.17z M38.319,20.686
c0,0.393-0.142,0.706-0.435,0.958c-0.29,0.253-0.733,0.382-1.318,0.382l-0.17-0.002v-2.531c0.269-0.058,0.486-0.088,0.646-0.088
c0.393,0,0.695,0.116,0.927,0.354C38.201,19.992,38.319,20.304,38.319,20.686z"/>
<path fill="#FFFFFF" d="M13.557,33.681l-2.401-5.199l-0.026-0.055H9V28.8h0.096c0.328,0,0.493,0.048,0.572,0.088
c0.111,0.058,0.185,0.127,0.224,0.212c0.062,0.118,0.094,0.328,0.094,0.622v4.5c0,0.484-0.061,0.644-0.098,0.695
c-0.104,0.151-0.282,0.227-0.544,0.227H9v0.376h2.605v-0.376h-0.343c-0.243,0-0.419-0.062-0.526-0.184
c-0.043-0.049-0.116-0.21-0.116-0.738v-4.164l2.476,5.406l0.026,0.056h0.291l2.502-5.463v4.165c0,0.483-0.061,0.644-0.098,0.696
c-0.102,0.15-0.28,0.226-0.544,0.226h-0.343v0.376h3.133v-0.376h-0.34c-0.243,0-0.421-0.062-0.529-0.185
c-0.043-0.048-0.117-0.207-0.117-0.737v-4.5c0-0.46,0.052-0.634,0.094-0.696c0.105-0.15,0.29-0.226,0.552-0.226h0.34v-0.373h-2.1
L13.557,33.681z"/>
<path fill="#FFFFFF" d="M20.718,35.032c-0.092-0.053-0.148-0.106-0.171-0.169c-0.027-0.071-0.06-0.242-0.06-0.656v-4.471
c0-0.508,0.067-0.672,0.107-0.725c0.107-0.141,0.287-0.212,0.535-0.212h0.343v-0.373h-3.133V28.8h0.342
c0.141,0,0.28,0.036,0.418,0.106c0.086,0.053,0.141,0.108,0.166,0.173c0.022,0.059,0.06,0.223,0.06,0.657v4.471
c0,0.485-0.056,0.662-0.103,0.725c-0.108,0.142-0.286,0.212-0.541,0.212h-0.342v0.376h3.133v-0.376h-0.343
C20.98,35.144,20.846,35.106,20.718,35.032z"/>
<path fill="#FFFFFF" d="M27.546,33.764l-0.309-0.2l-0.055,0.074c-0.4,0.56-0.77,0.936-1.093,1.118
c-0.326,0.183-0.706,0.275-1.132,0.275c-0.497,0-0.928-0.116-1.319-0.353c-0.384-0.238-0.674-0.577-0.861-1.01
c-0.192-0.443-0.29-0.975-0.29-1.58c0-0.738,0.104-1.363,0.309-1.856c0.199-0.487,0.477-0.847,0.828-1.066
c0.347-0.223,0.732-0.332,1.178-0.332c0.523,0,0.958,0.146,1.331,0.447c0.372,0.299,0.662,0.798,0.863,1.482l0.019,0.07h0.34
l-0.171-2.465l-0.005-0.09h-0.346l-0.019,0.073c-0.036,0.148-0.089,0.259-0.158,0.331c-0.051,0.047-0.108,0.069-0.176,0.069
c-0.019,0-0.082-0.01-0.257-0.098c-0.492-0.25-1.001-0.376-1.511-0.376c-0.65,0-1.259,0.164-1.811,0.487
c-0.548,0.321-0.986,0.783-1.301,1.373c-0.314,0.587-0.474,1.239-0.474,1.939c0,0.868,0.243,1.636,0.72,2.278
c0.642,0.867,1.559,1.306,2.725,1.306c0.65,0,1.217-0.146,1.688-0.438c0.474-0.291,0.893-0.755,1.242-1.381L27.546,33.764z"/>
<path fill="#FFFFFF" d="M33.42,34.871c-0.22-0.143-0.491-0.439-0.807-0.885l-1.344-1.86c0.524-0.137,0.926-0.356,1.194-0.658
c0.29-0.329,0.438-0.722,0.438-1.169c0-0.416-0.13-0.781-0.386-1.086c-0.252-0.3-0.564-0.509-0.93-0.622
c-0.358-0.109-0.911-0.164-1.646-0.164H27.34V28.8h0.352c0.232,0,0.4,0.062,0.515,0.191c0.043,0.049,0.117,0.211,0.117,0.745
v4.471c0,0.489-0.055,0.643-0.09,0.692c-0.104,0.164-0.283,0.244-0.542,0.244H27.34v0.376h3.132v-0.376h-0.367
c-0.225,0-0.393-0.063-0.501-0.194c-0.036-0.038-0.12-0.188-0.12-0.742v-1.902l0.201,0.004c0.094,0,0.208-0.004,0.34-0.009
l0.031-0.001l2.31,3.181l0.029,0.04h1.986v-0.366l-0.087-0.01C33.939,35.106,33.645,35.015,33.42,34.871z M31.544,30.367
c0,0.417-0.15,0.752-0.461,1.022c-0.312,0.272-0.788,0.411-1.408,0.411l-0.191-0.006v-2.701c0.287-0.063,0.521-0.097,0.697-0.097
c0.415,0,0.738,0.124,0.989,0.379C31.418,29.626,31.544,29.959,31.544,30.367z"/>
<path fill="#FFFFFF" d="M37.229,28.279c-2.039,0-3.698,1.658-3.698,3.694c0,2.039,1.659,3.696,3.698,3.696
c2.038,0,3.694-1.657,3.694-3.696C40.923,29.938,39.267,28.279,37.229,28.279z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M10.105,19.582c0.354,0.28,0.954,0.656,1.782,1.118c0.859,0.482,1.339,0.769,1.514,0.904
c0.26,0.196,0.457,0.414,0.582,0.648c0.124,0.227,0.186,0.455,0.186,0.677c0,0.4-0.165,0.752-0.488,1.046
c-0.327,0.296-0.78,0.447-1.35,0.447c-0.499,0-0.962-0.113-1.378-0.335c-0.413-0.218-0.724-0.496-0.925-0.828
c-0.204-0.337-0.368-0.854-0.49-1.538l-0.014-0.079H9.092v3.528h0.434l0.012-0.082c0.039-0.255,0.092-0.356,0.128-0.396
c0.052-0.052,0.122-0.078,0.215-0.078c0.078,0,0.291,0.039,0.855,0.222c0.465,0.151,0.779,0.241,0.933,0.266
c0.238,0.045,0.504,0.067,0.812,0.067c0.92,0,1.683-0.276,2.268-0.821c0.588-0.55,0.887-1.212,0.887-1.97
c0-0.398-0.094-0.785-0.279-1.151c-0.185-0.365-0.452-0.685-0.793-0.952c-0.335-0.262-0.964-0.642-1.869-1.127
c-1.096-0.589-1.796-1.064-2.081-1.409c-0.19-0.225-0.286-0.477-0.286-0.747c0-0.355,0.154-0.679,0.457-0.962
c0.303-0.285,0.695-0.429,1.165-0.429c0.419,0,0.833,0.108,1.229,0.322c0.391,0.211,0.697,0.501,0.911,0.863
c0.214,0.365,0.366,0.865,0.45,1.488l0.011,0.083h0.437V14.83h-0.43l-0.017,0.076c-0.056,0.254-0.119,0.357-0.161,0.396
c-0.062,0.057-0.141,0.085-0.239,0.085c-0.065,0-0.209-0.029-0.528-0.171c-0.586-0.256-1.15-0.386-1.675-0.386
c-0.845,0-1.553,0.263-2.107,0.782C9.28,16.135,9,16.765,9,17.485c0,0.416,0.095,0.802,0.283,1.149
C9.47,18.98,9.747,19.298,10.105,19.582z"/>
<path fill="#8C8C94" d="M16.584,18.872c0.063,0.072,0.138,0.256,0.138,0.722v2.528c0,0.802,0.053,1.334,0.16,1.629
c0.159,0.433,0.434,0.782,0.815,1.036c0.38,0.254,0.939,0.383,1.662,0.383c0.668,0,1.205-0.134,1.596-0.399
c0.393-0.268,0.66-0.593,0.795-0.968c0.135-0.369,0.2-0.874,0.2-1.54v-2.622c0-0.452,0.052-0.596,0.084-0.645
c0.119-0.188,0.283-0.279,0.502-0.279h0.339v-0.362h-2.461v0.362h0.337c0.217,0,0.373,0.058,0.479,0.177
c0.04,0.047,0.108,0.2,0.108,0.7v2.618c0,0.67-0.059,1.15-0.176,1.425c-0.114,0.265-0.333,0.486-0.648,0.659
c-0.323,0.178-0.691,0.268-1.095,0.268c-0.315,0-0.584-0.056-0.798-0.167c-0.213-0.11-0.377-0.25-0.488-0.416
c-0.114-0.167-0.193-0.409-0.238-0.718c-0.046-0.319-0.069-0.605-0.069-0.851v-2.818c0-0.426,0.054-0.597,0.101-0.666
c0.094-0.142,0.253-0.211,0.483-0.211h0.342v-0.362h-2.957v0.362h0.336C16.344,18.717,16.497,18.769,16.584,18.872z"/>
<path fill="#8C8C94" d="M25.917,24.67h-0.343c-0.215,0-0.37-0.058-0.473-0.179c-0.033-0.037-0.109-0.177-0.109-0.697v-1.775
c0.156,0.031,0.317,0.059,0.472,0.076c0.176,0.022,0.351,0.034,0.516,0.034c0.658,0,1.175-0.176,1.539-0.522
c0.364-0.352,0.55-0.809,0.55-1.362c0-0.409-0.122-0.769-0.364-1.07c-0.239-0.295-0.538-0.508-0.884-0.634
c-0.342-0.123-0.812-0.185-1.398-0.185h-2.46v0.362h0.34c0.216,0,0.377,0.06,0.48,0.178c0.04,0.044,0.105,0.195,0.105,0.699v4.2
c0,0.459-0.05,0.605-0.079,0.65c-0.1,0.152-0.266,0.226-0.507,0.226h-0.34v0.364h2.955V24.67z M24.992,21.549v-2.544
c0.21-0.046,0.387-0.07,0.524-0.07c0.244,0,0.467,0.055,0.66,0.165c0.191,0.11,0.335,0.273,0.44,0.499
c0.107,0.229,0.162,0.479,0.162,0.742c0,0.388-0.109,0.693-0.33,0.932c-0.221,0.239-0.476,0.355-0.778,0.355
c-0.097,0-0.203-0.007-0.32-0.023C25.252,21.593,25.137,21.575,24.992,21.549z"/>
<path fill="#8C8C94" d="M34.204,23.219h-0.396l-0.027,0.052c-0.199,0.381-0.397,0.668-0.586,0.854
c-0.142,0.137-0.284,0.227-0.435,0.275c-0.155,0.045-0.414,0.068-0.769,0.068h-1.096c-0.188,0-0.27-0.019-0.306-0.033
l-0.104-0.121c-0.012-0.039-0.025-0.151-0.025-0.469V21.82h1.291c0.256,0,0.444,0.029,0.562,0.085
c0.11,0.053,0.189,0.125,0.238,0.216c0.019,0.04,0.068,0.175,0.125,0.574l0.011,0.083h0.35v-2.432H32.68l-0.004,0.091
c-0.021,0.336-0.103,0.57-0.247,0.696c-0.104,0.092-0.331,0.139-0.678,0.139H30.46v-2.352h1.655c0.308,0,0.521,0.021,0.628,0.061
c0.14,0.06,0.246,0.145,0.313,0.251c0.072,0.115,0.142,0.336,0.206,0.659l0.016,0.078h0.381l-0.071-1.613h-5.159v0.362h0.324
c0.237,0,0.405,0.055,0.5,0.161c0.036,0.044,0.1,0.197,0.1,0.716v4.2c0,0.315-0.016,0.511-0.047,0.598
c-0.03,0.08-0.083,0.14-0.164,0.178c-0.118,0.066-0.249,0.1-0.389,0.1h-0.324v0.364h5.15L34.204,23.219z"/>
<path fill="#8C8C94" d="M40.914,24.67c-0.34-0.037-0.615-0.123-0.819-0.253C39.886,24.28,39.63,24,39.334,23.583l-1.26-1.742
c0.493-0.128,0.869-0.336,1.118-0.618c0.276-0.307,0.416-0.678,0.416-1.102c0-0.394-0.122-0.74-0.365-1.027
c-0.243-0.286-0.528-0.478-0.876-0.585c-0.334-0.104-0.855-0.155-1.547-0.155h-2.452v0.362h0.337c0.213,0,0.375,0.06,0.479,0.178
c0.04,0.045,0.107,0.196,0.107,0.699v4.2c0,0.457-0.053,0.603-0.085,0.65c-0.1,0.152-0.264,0.226-0.502,0.226h-0.337v0.364h2.954
V24.67h-0.347c-0.214,0-0.367-0.058-0.471-0.179c-0.04-0.045-0.108-0.195-0.108-0.697v-1.782l0.184,0.005
c0.076,0,0.173-0.004,0.287-0.008l0.059-0.002l2.195,3.027H41V24.68L40.914,24.67z M38.319,20.186
c0,0.393-0.142,0.706-0.435,0.958c-0.29,0.253-0.733,0.382-1.318,0.382l-0.17-0.002v-2.531c0.269-0.058,0.486-0.088,0.646-0.088
c0.393,0,0.695,0.116,0.927,0.354C38.201,19.492,38.319,19.804,38.319,20.186z"/>
<path fill="#8C8C94" d="M13.557,33.181l-2.401-5.199l-0.026-0.055H9V28.3h0.096c0.328,0,0.493,0.048,0.572,0.088
c0.111,0.058,0.185,0.127,0.224,0.212c0.062,0.118,0.094,0.328,0.094,0.622v4.5c0,0.484-0.061,0.644-0.098,0.695
c-0.104,0.151-0.282,0.227-0.544,0.227H9v0.376h2.605v-0.376h-0.343c-0.243,0-0.419-0.062-0.526-0.184
c-0.043-0.049-0.116-0.21-0.116-0.738v-4.164l2.476,5.406l0.026,0.056h0.291l2.502-5.463v4.165c0,0.483-0.061,0.644-0.098,0.696
c-0.102,0.15-0.28,0.226-0.544,0.226h-0.343v0.376h3.133v-0.376h-0.34c-0.243,0-0.421-0.062-0.529-0.185
c-0.043-0.048-0.117-0.207-0.117-0.737v-4.5c0-0.46,0.052-0.634,0.094-0.696c0.105-0.15,0.29-0.226,0.552-0.226h0.34v-0.373h-2.1
L13.557,33.181z"/>
<path fill="#8C8C94" d="M20.718,34.532c-0.092-0.053-0.148-0.106-0.171-0.169c-0.027-0.071-0.06-0.242-0.06-0.656v-4.471
c0-0.508,0.067-0.672,0.107-0.725c0.107-0.141,0.287-0.212,0.535-0.212h0.343v-0.373h-3.133V28.3h0.342
c0.141,0,0.28,0.036,0.418,0.106c0.086,0.053,0.141,0.108,0.166,0.173c0.022,0.059,0.06,0.223,0.06,0.657v4.471
c0,0.485-0.056,0.662-0.103,0.725c-0.108,0.142-0.286,0.212-0.541,0.212h-0.342v0.376h3.133v-0.376h-0.343
C20.98,34.644,20.846,34.606,20.718,34.532z"/>
<path fill="#8C8C94" d="M27.546,33.264l-0.309-0.2l-0.055,0.074c-0.4,0.56-0.77,0.936-1.093,1.118
c-0.326,0.183-0.706,0.275-1.132,0.275c-0.497,0-0.928-0.116-1.319-0.353c-0.384-0.238-0.674-0.577-0.861-1.01
c-0.192-0.443-0.29-0.975-0.29-1.58c0-0.738,0.104-1.363,0.309-1.856c0.199-0.487,0.477-0.847,0.828-1.066
c0.347-0.223,0.732-0.332,1.178-0.332c0.523,0,0.958,0.146,1.331,0.447c0.372,0.299,0.662,0.798,0.863,1.482l0.019,0.07h0.34
l-0.171-2.465l-0.005-0.09h-0.346l-0.019,0.073c-0.036,0.148-0.089,0.259-0.158,0.331c-0.051,0.047-0.108,0.069-0.176,0.069
c-0.019,0-0.082-0.01-0.257-0.098c-0.492-0.25-1.001-0.376-1.511-0.376c-0.65,0-1.259,0.164-1.811,0.487
c-0.548,0.321-0.986,0.783-1.301,1.373c-0.314,0.587-0.474,1.239-0.474,1.939c0,0.868,0.243,1.636,0.72,2.278
c0.642,0.867,1.559,1.306,2.725,1.306c0.65,0,1.217-0.146,1.688-0.438c0.474-0.291,0.893-0.755,1.242-1.381L27.546,33.264z"/>
<path fill="#8C8C94" d="M33.42,34.371c-0.22-0.143-0.491-0.439-0.807-0.885l-1.344-1.86c0.524-0.137,0.926-0.356,1.194-0.658
c0.29-0.329,0.438-0.722,0.438-1.169c0-0.416-0.13-0.781-0.386-1.086c-0.252-0.3-0.564-0.509-0.93-0.622
c-0.358-0.109-0.911-0.164-1.646-0.164H27.34V28.3h0.352c0.232,0,0.4,0.062,0.515,0.191c0.043,0.049,0.117,0.211,0.117,0.745
v4.471c0,0.489-0.055,0.643-0.09,0.692c-0.104,0.164-0.283,0.244-0.542,0.244H27.34v0.376h3.132v-0.376h-0.367
c-0.225,0-0.393-0.063-0.501-0.194c-0.036-0.038-0.12-0.188-0.12-0.742v-1.902l0.201,0.004c0.094,0,0.208-0.004,0.34-0.009
l0.031-0.001l2.31,3.181l0.029,0.04h1.986v-0.366l-0.087-0.01C33.939,34.606,33.645,34.515,33.42,34.371z M31.544,29.867
c0,0.417-0.15,0.752-0.461,1.022c-0.312,0.272-0.788,0.411-1.408,0.411l-0.191-0.006v-2.701c0.287-0.063,0.521-0.097,0.697-0.097
c0.415,0,0.738,0.124,0.989,0.379C31.418,29.126,31.544,29.459,31.544,29.867z"/>
<path fill="#8C8C94" d="M37.229,27.779c-2.039,0-3.698,1.658-3.698,3.694c0,2.039,1.659,3.696,3.698,3.696
c2.038,0,3.694-1.657,3.694-3.696C40.923,29.438,39.267,27.779,37.229,27.779z"/>
</g>
</g>
<g id="Layer_9" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M36.353,38.704c-1.297,0-3.031-0.544-5.299-1.661c-0.167-0.081-0.329-0.163-0.491-0.244
c-3.177,1.122-7.697,1.842-11.62,1.842c-3.211,0-7.18-0.464-7.85-2.669c-0.492-1.619,0.962-3.539,4.447-5.87
c0.154-0.103,0.306-0.204,0.458-0.304c0.583-3.136,2.066-7.104,3.905-10.435c1.251-2.266,3.703-6.067,6.059-6.067
c1.921,0,3.046,2.302,3.346,6.842c0.013,0.184,0.023,0.366,0.034,0.546c4.643,3.977,10.766,12.961,9.486,16.5
C38.578,37.877,37.944,38.704,36.353,38.704z M32.152,36.15c1.803,0.846,3.214,1.273,4.2,1.273c0.911,0,1.158-0.36,1.271-0.675
c0.85-2.353-3.571-9.87-8.208-14.274c0.031,1.234,0.018,2.417-0.039,3.531v0.002l-0.001,0.021c0.096,0.347,0.068,0.747-0.08,1.188
v0.006c-0.026,0.305-0.056,0.604-0.089,0.895l0.005,0.002l-0.001,0.002c0.101,0.037,0.202,0.076,0.304,0.114
c3.821,1.445,5.676,2.959,5.669,4.627C35.179,34.097,34.16,35.201,32.152,36.15z M15.765,31.499
c-3.482,2.429-3.577,3.67-3.447,4.101c0.325,1.069,2.925,1.761,6.625,1.761c3.33,0,7.096-0.534,10.03-1.395
c-1.085-0.589-2.101-1.19-3.035-1.797h-0.001l-0.019-0.012c-0.349-0.091-0.681-0.313-0.99-0.664l-0.004-0.004
c-0.25-0.174-0.495-0.349-0.729-0.522L24.19,32.97l-0.002-0.002c-0.083,0.069-0.166,0.137-0.25,0.206
c-2.391,1.956-4.228,2.906-5.617,2.906c-0.738,0-1.362-0.276-1.803-0.8C15.874,34.518,15.623,33.248,15.765,31.499z M27.48,33.628
c0.979,0.601,2.039,1.195,3.163,1.776c2.045-0.794,3.257-1.738,3.261-2.547c0.002-0.479-0.467-1.771-4.842-3.426
c-0.013-0.004-0.024-0.009-0.036-0.014C28.753,31.066,28.284,32.767,27.48,33.628z M17.166,30.566
c-0.291,1.882-0.174,3.29,0.331,3.888c0.199,0.237,0.46,0.346,0.824,0.346c0.733,0,2.162-0.454,4.807-2.616
c0.01-0.009,0.02-0.017,0.029-0.025c-1.24-1.021-2.52-2.298-2.869-3.445C19.277,29.261,18.231,29.882,17.166,30.566z
M25.801,32.54c0.177,0.122,0.36,0.246,0.547,0.368c0.304-0.124,0.903-1.012,1.33-3.221c-0.605,0.683-1.362,1.429-2.264,2.23
C25.543,32.167,25.672,32.373,25.801,32.54z M21.476,28.093c-0.002,0.024-0.002,0.057,0.003,0.097
c0.06,0.482,0.662,1.406,2.12,2.668c-0.289-0.865-0.557-1.894-0.801-3.077c-0.279-0.012-0.524-0.004-0.731,0.024
C21.873,27.896,21.675,27.993,21.476,28.093z M24.142,27.948c0.23,1.057,0.479,1.967,0.746,2.723
c0.8-0.729,1.463-1.399,1.983-2.007C25.841,28.335,24.928,28.096,24.142,27.948z M25.962,14.577c-2.364,0-6.904,7.849-8.45,14.262
c1.052-0.644,2.082-1.224,3.074-1.73l0-0.001l0.019-0.009c0.254-0.258,0.613-0.435,1.072-0.526l0.004-0.002
c0.277-0.131,0.55-0.254,0.818-0.37l-0.001-0.005l0.003-0.002c-0.018-0.104-0.036-0.211-0.053-0.318
c-0.558-3.413-0.37-5.611,0.573-6.722c0.443-0.521,1.056-0.797,1.769-0.797c0.896,0,1.967,0.429,3.195,1.277
C27.597,15.084,26.451,14.577,25.962,14.577z M24.626,26.739c0.893,0.182,1.917,0.464,3.062,0.845
c0.151-0.236,0.267-0.452,0.346-0.646c0.016-0.213,0.032-0.432,0.046-0.652c-0.105-0.076-0.343-0.141-0.71-0.141
C26.695,26.145,25.744,26.353,24.626,26.739z M24.791,19.636c-0.34,0-0.592,0.11-0.793,0.347
c-0.381,0.448-0.924,1.782-0.287,5.686c0.002,0.012,0.005,0.025,0.007,0.038c1.474-0.552,2.728-0.842,3.652-0.842
c0.296,0,0.55,0.029,0.767,0.08c0.031-1.15,0.016-2.367-0.044-3.633C26.746,20.229,25.58,19.636,24.791,19.636z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M36.353,37.704c-1.297,0-3.031-0.544-5.299-1.661c-0.167-0.081-0.329-0.163-0.491-0.244
c-3.177,1.122-7.697,1.842-11.62,1.842c-3.211,0-7.18-0.464-7.85-2.669c-0.492-1.619,0.962-3.539,4.447-5.87
c0.154-0.103,0.306-0.204,0.458-0.304c0.583-3.136,2.066-7.104,3.905-10.435c1.251-2.266,3.703-6.067,6.059-6.067
c1.921,0,3.046,2.302,3.346,6.842c0.013,0.184,0.023,0.366,0.034,0.546c4.643,3.977,10.766,12.961,9.486,16.5
C38.578,36.877,37.944,37.704,36.353,37.704z M32.152,35.15c1.803,0.846,3.214,1.273,4.2,1.273c0.911,0,1.158-0.36,1.271-0.675
c0.85-2.353-3.571-9.87-8.208-14.274c0.031,1.234,0.018,2.417-0.039,3.531v0.001l-0.001,0.021c0.096,0.347,0.068,0.747-0.08,1.188
v0.006c-0.026,0.305-0.056,0.604-0.089,0.895l0.005,0.002l-0.001,0.002c0.101,0.037,0.202,0.076,0.304,0.114
c3.821,1.445,5.676,2.959,5.669,4.627C35.179,33.097,34.16,34.201,32.152,35.15z M15.765,30.499
c-3.482,2.429-3.577,3.67-3.447,4.101c0.325,1.069,2.925,1.761,6.625,1.761c3.33,0,7.096-0.534,10.03-1.395
c-1.085-0.589-2.101-1.19-3.035-1.797h-0.001l-0.019-0.012c-0.349-0.091-0.681-0.313-0.99-0.664l-0.004-0.004
c-0.25-0.174-0.495-0.349-0.729-0.522L24.19,31.97l-0.002-0.002c-0.083,0.069-0.166,0.137-0.25,0.206
c-2.391,1.956-4.228,2.906-5.617,2.906c-0.738,0-1.362-0.276-1.803-0.8C15.874,33.518,15.623,32.248,15.765,30.499z M27.48,32.628
c0.979,0.601,2.039,1.195,3.163,1.776c2.045-0.794,3.257-1.738,3.261-2.547c0.002-0.479-0.467-1.771-4.842-3.426
c-0.013-0.004-0.024-0.009-0.036-0.014C28.753,30.066,28.284,31.767,27.48,32.628z M17.166,29.566
c-0.291,1.882-0.174,3.29,0.331,3.888c0.199,0.237,0.46,0.346,0.824,0.346c0.733,0,2.162-0.454,4.807-2.616
c0.01-0.009,0.02-0.017,0.029-0.025c-1.24-1.021-2.52-2.298-2.869-3.445C19.277,28.261,18.231,28.882,17.166,29.566z
M25.801,31.54c0.177,0.122,0.36,0.246,0.547,0.368c0.304-0.124,0.903-1.012,1.33-3.221c-0.605,0.683-1.362,1.429-2.264,2.23
C25.543,31.167,25.672,31.373,25.801,31.54z M21.476,27.093c-0.002,0.024-0.002,0.057,0.003,0.097
c0.06,0.482,0.662,1.406,2.12,2.668c-0.289-0.865-0.557-1.894-0.801-3.077c-0.279-0.012-0.524-0.004-0.731,0.024
C21.873,26.896,21.675,26.993,21.476,27.093z M24.142,26.948c0.23,1.057,0.479,1.967,0.746,2.723
c0.8-0.729,1.463-1.399,1.983-2.007C25.841,27.335,24.928,27.096,24.142,26.948z M25.962,13.577c-2.364,0-6.904,7.849-8.45,14.262
c1.052-0.644,2.082-1.224,3.074-1.73l0-0.001l0.019-0.009c0.254-0.258,0.613-0.435,1.072-0.526l0.004-0.002
c0.277-0.13,0.55-0.253,0.818-0.37l-0.001-0.005l0.003-0.001c-0.018-0.105-0.036-0.211-0.053-0.319
c-0.558-3.412-0.37-5.611,0.573-6.722c0.443-0.521,1.056-0.797,1.769-0.797c0.896,0,1.967,0.429,3.195,1.277
C27.597,14.084,26.451,13.577,25.962,13.577z M24.626,25.739c0.893,0.182,1.917,0.464,3.062,0.845
c0.151-0.236,0.267-0.452,0.346-0.646c0.016-0.213,0.032-0.432,0.046-0.652c-0.105-0.076-0.343-0.141-0.71-0.141
C26.695,25.145,25.744,25.353,24.626,25.739z M24.791,18.636c-0.34,0-0.592,0.11-0.793,0.347
c-0.381,0.448-0.924,1.782-0.287,5.686c0.002,0.012,0.005,0.025,0.007,0.038c1.474-0.552,2.728-0.842,3.652-0.842
c0.296,0,0.55,0.029,0.767,0.08c0.031-1.15,0.016-2.367-0.044-3.633C26.746,19.229,25.58,18.636,24.791,18.636z"/>
</g>
</g>
<g id="Layer_10" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M11,30.826v-9.652h1.949v4.286l3.937-4.286h2.621l-3.635,3.759l3.832,5.893h-2.521l-2.653-4.529
l-1.58,1.612v2.917H11z"/>
<path fill="#FFFFFF" d="M23.173,30.826l-3.45-9.652h2.114l2.442,7.143l2.364-7.143h2.067l-3.457,9.652H23.173z"/>
<path fill="#FFFFFF" d="M29.678,30.826v-9.652h2.917l1.75,6.583l1.732-6.583H39v9.652h-1.811v-7.598l-1.915,7.598h-1.877
l-1.91-7.598v7.598H29.678z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M11,29.826v-9.652h1.949v4.286l3.937-4.286h2.621l-3.635,3.759l3.832,5.893h-2.521l-2.653-4.53
l-1.58,1.613v2.917H11z"/>
<path fill="#8C8C94" d="M23.173,29.826l-3.45-9.652h2.114l2.442,7.143l2.364-7.143h2.067l-3.457,9.652H23.173z"/>
<path fill="#8C8C94" d="M29.678,29.826v-9.652h2.917l1.75,6.583l1.732-6.583H39v9.652h-1.811v-7.598l-1.915,7.598h-1.877
l-1.91-7.598v7.598H29.678z"/>
</g>
</g>
<g id="Layer_11">
<g opacity="0.35">
<path fill="#FFFFFF" d="M13.729,28.605c0.379,0.08,0.731,0.232,1.055,0.458s0.626,0.453,0.909,0.684s0.551,0.437,0.803,0.618
c0.252,0.181,0.502,0.271,0.75,0.271c0.124,0,0.239-0.021,0.345-0.06c0.106-0.04,0.204-0.061,0.292-0.061
c0.044,0,0.066,0.022,0.066,0.066c-0.026,0.106-0.093,0.202-0.199,0.286c-0.105,0.084-0.225,0.154-0.357,0.211
c-0.133,0.059-0.268,0.101-0.405,0.127s-0.25,0.04-0.338,0.04c-0.31,0-0.604-0.056-0.883-0.167
c-0.279-0.109-0.546-0.251-0.803-0.424c-0.256-0.173-0.506-0.363-0.749-0.57c-0.244-0.209-0.476-0.407-0.697-0.598
c-0.221-0.191-0.438-0.36-0.65-0.51c-0.212-0.151-0.416-0.254-0.61-0.307c-0.575-0.062-1.093-0.213-1.553-0.451
c-0.461-0.238-0.854-0.551-1.182-0.936c-0.327-0.386-0.58-0.837-0.757-1.354C8.588,25.414,8.5,24.845,8.5,24.226
c0-0.61,0.111-1.186,0.332-1.725c0.221-0.541,0.522-1.014,0.902-1.421c0.381-0.407,0.823-0.73,1.328-0.969
c0.504-0.239,1.035-0.358,1.592-0.358c0.77,0,1.442,0.122,2.018,0.365c0.575,0.243,1.051,0.57,1.427,0.982
c0.375,0.412,0.656,0.888,0.842,1.427c0.186,0.54,0.279,1.106,0.279,1.699c0,0.576-0.084,1.108-0.252,1.6
c-0.167,0.491-0.404,0.922-0.709,1.294c-0.306,0.371-0.673,0.682-1.102,0.93c-0.429,0.247-0.905,0.415-1.426,0.503V28.605z
M13.065,28.062c0.416,0,0.796-0.08,1.142-0.24c0.345-0.159,0.641-0.38,0.889-0.664c0.248-0.282,0.44-0.619,0.577-1.008
c0.138-0.389,0.206-0.814,0.206-1.274c0-0.638-0.066-1.228-0.199-1.771c-0.133-0.544-0.334-1.018-0.604-1.421
c-0.27-0.402-0.61-0.718-1.021-0.949c-0.412-0.23-0.892-0.345-1.44-0.345c-0.363,0-0.709,0.068-1.042,0.205
s-0.624,0.337-0.876,0.597c-0.252,0.262-0.454,0.582-0.604,0.962c-0.151,0.381-0.227,0.819-0.227,1.314
c0,0.655,0.071,1.263,0.213,1.825c0.141,0.562,0.347,1.048,0.617,1.461c0.27,0.41,0.604,0.731,1.002,0.961
C12.097,27.947,12.553,28.062,13.065,28.062z"/>
<path fill="#FFFFFF" d="M23.041,27.305c0.062-0.062,0.128-0.093,0.199-0.093c0.088,0,0.172,0.075,0.251,0.226
c-0.115,0.16-0.248,0.314-0.398,0.465c-0.151,0.151-0.331,0.285-0.538,0.404c-0.208,0.121-0.445,0.215-0.71,0.286
c-0.266,0.071-0.571,0.105-0.916,0.105c-0.354,0-0.69-0.058-1.009-0.172c-0.318-0.114-0.599-0.291-0.842-0.531
c-0.244-0.239-0.438-0.536-0.584-0.89c-0.146-0.353-0.219-0.77-0.219-1.246c0-0.452,0.086-0.868,0.258-1.248
c0.173-0.382,0.396-0.707,0.67-0.977c0.274-0.269,0.577-0.48,0.909-0.63c0.332-0.151,0.653-0.226,0.962-0.226
c0.824,0,1.423,0.239,1.798,0.717c0.376,0.479,0.564,1.102,0.564,1.872c0,0.053-0.026,0.08-0.08,0.08l-3.835,0.172
c0,0.346,0.049,0.664,0.146,0.956c0.097,0.292,0.234,0.544,0.411,0.757c0.176,0.211,0.39,0.378,0.642,0.497
c0.251,0.119,0.536,0.179,0.853,0.179c0.282,0,0.553-0.066,0.813-0.198C22.646,27.678,22.864,27.509,23.041,27.305z
M20.896,23.256c-0.44,0-0.784,0.173-1.03,0.518c-0.247,0.346-0.37,0.797-0.37,1.355l2.496-0.12c0.132,0,0.198-0.058,0.198-0.173
c0-0.167-0.026-0.344-0.079-0.53c-0.053-0.186-0.132-0.357-0.238-0.511c-0.106-0.155-0.24-0.283-0.403-0.386
C21.308,23.308,21.116,23.256,20.896,23.256z"/>
<path fill="#FFFFFF" d="M29.85,24.12c0.037-0.027,0.114-0.11,0.24-0.253c0.124-0.141,0.287-0.292,0.485-0.45
c0.201-0.16,0.432-0.306,0.694-0.439c0.261-0.132,0.544-0.199,0.844-0.199c0.534,0,0.912,0.157,1.133,0.471
c0.222,0.314,0.335,0.75,0.335,1.307v3.228c0,0.131,0.077,0.23,0.237,0.297c0.16,0.067,0.336,0.117,0.53,0.154
c0.081,0.017,0.119,0.069,0.119,0.158c0,0.053-0.008,0.124-0.025,0.212c-0.231-0.018-0.455-0.032-0.679-0.046
c-0.223-0.015-0.462-0.021-0.721-0.021c-0.233,0-0.47,0.006-0.709,0.021c-0.24,0.014-0.471,0.028-0.691,0.046
c-0.019-0.088-0.027-0.159-0.027-0.212c0-0.089,0.041-0.142,0.12-0.158c0.078-0.009,0.16-0.027,0.244-0.054
c0.085-0.027,0.162-0.059,0.233-0.094c0.069-0.034,0.129-0.077,0.18-0.126c0.048-0.049,0.071-0.108,0.071-0.178v-2.735
c0-0.549-0.064-0.918-0.199-1.108c-0.132-0.19-0.35-0.285-0.649-0.285c-0.23,0-0.45,0.038-0.657,0.112
c-0.208,0.076-0.392,0.186-0.552,0.332c-0.158,0.147-0.286,0.325-0.385,0.538c-0.096,0.213-0.146,0.456-0.146,0.73v2.417
c0,0.131,0.075,0.23,0.227,0.297c0.149,0.067,0.318,0.117,0.503,0.154c0.08,0.017,0.121,0.069,0.121,0.158
c0,0.053-0.011,0.124-0.027,0.212c-0.229-0.018-0.454-0.032-0.67-0.046c-0.217-0.015-0.445-0.021-0.683-0.021
c-0.24,0-0.478,0.006-0.712,0.021c-0.234,0.014-0.466,0.028-0.697,0.046c-0.017-0.088-0.025-0.159-0.025-0.212
c0-0.089,0.041-0.142,0.118-0.158c0.16-0.027,0.322-0.073,0.486-0.142c0.163-0.065,0.244-0.17,0.244-0.31v-2.735
c0-0.549-0.062-0.918-0.19-1.108c-0.127-0.19-0.341-0.285-0.641-0.285c-0.229,0-0.447,0.038-0.652,0.112
c-0.207,0.076-0.394,0.186-0.556,0.332c-0.164,0.147-0.294,0.325-0.389,0.538c-0.098,0.213-0.147,0.456-0.147,0.73v2.417
c0,0.131,0.078,0.23,0.233,0.297c0.156,0.067,0.32,0.117,0.497,0.154c0.08,0.017,0.121,0.069,0.121,0.158
c0,0.053-0.011,0.124-0.028,0.212c-0.229-0.018-0.455-0.032-0.678-0.046c-0.221-0.015-0.459-0.021-0.709-0.021
c-0.26,0-0.505,0.006-0.735,0.021c-0.23,0.014-0.457,0.028-0.678,0.046c-0.018-0.088-0.026-0.159-0.026-0.212
c0-0.089,0.04-0.142,0.119-0.158c0.194-0.037,0.372-0.087,0.531-0.154c0.16-0.066,0.239-0.171,0.239-0.311v-3.611
c0-0.265-0.046-0.455-0.14-0.571c-0.093-0.115-0.294-0.186-0.604-0.212c-0.115-0.019-0.172-0.08-0.172-0.186
c0-0.044,0.009-0.102,0.027-0.173c0.115,0,0.276-0.006,0.484-0.02c0.208-0.014,0.378-0.029,0.512-0.046
c0.206-0.036,0.389-0.074,0.551-0.113c0.16-0.04,0.276-0.06,0.347-0.06c0.126,0,0.188,0.066,0.188,0.199
c0,0.125-0.013,0.272-0.039,0.445c-0.025,0.172-0.041,0.4-0.041,0.684c0.028-0.027,0.103-0.111,0.225-0.253
c0.126-0.141,0.286-0.292,0.484-0.451c0.199-0.159,0.426-0.302,0.681-0.431c0.254-0.128,0.538-0.192,0.847-0.192
c0.458,0,0.799,0.117,1.024,0.352C29.671,23.366,29.806,23.695,29.85,24.12z"/>
<path fill="#FFFFFF" d="M35.635,24.159c0-0.292-0.043-0.489-0.128-0.591c-0.084-0.102-0.276-0.166-0.577-0.192
c-0.113-0.019-0.169-0.075-0.169-0.172c0-0.053,0.008-0.115,0.025-0.186c0.114,0,0.266-0.006,0.458-0.02
c0.189-0.014,0.35-0.034,0.483-0.061c0.194-0.026,0.365-0.06,0.51-0.099c0.147-0.04,0.255-0.06,0.327-0.06
c0.122,0,0.186,0.066,0.186,0.199v3.319c0,0.221,0.013,0.424,0.038,0.609c0.028,0.186,0.075,0.348,0.147,0.485
c0.071,0.137,0.172,0.243,0.304,0.318c0.135,0.076,0.301,0.112,0.507,0.112c0.22,0,0.436-0.036,0.649-0.112
c0.212-0.075,0.399-0.187,0.563-0.331c0.165-0.146,0.294-0.325,0.392-0.538c0.097-0.213,0.147-0.46,0.147-0.743v-1.938
c0-0.282-0.045-0.478-0.128-0.584c-0.084-0.106-0.28-0.173-0.59-0.199c-0.115-0.019-0.173-0.075-0.173-0.172
c0-0.053,0.008-0.115,0.025-0.186c0.115,0,0.269-0.006,0.459-0.02c0.188-0.014,0.355-0.034,0.498-0.061
c0.197-0.026,0.367-0.06,0.511-0.099c0.144-0.04,0.25-0.06,0.323-0.06c0.125,0,0.188,0.066,0.188,0.199v4.314
c0,0.15,0.009,0.271,0.026,0.365c0.017,0.092,0.055,0.167,0.106,0.226c0.054,0.057,0.127,0.102,0.22,0.132
c0.094,0.032,0.214,0.052,0.363,0.061c0.116,0.017,0.173,0.075,0.173,0.173c0,0.053-0.009,0.115-0.025,0.186
c-0.169,0-0.347,0.013-0.532,0.039s-0.363,0.054-0.534,0.079c-0.168,0.028-0.318,0.054-0.448,0.081
c-0.13,0.026-0.223,0.039-0.274,0.039c-0.126,0-0.188-0.066-0.188-0.199V27.37c-0.029,0.028-0.104,0.112-0.229,0.254
c-0.122,0.143-0.284,0.291-0.483,0.451c-0.198,0.16-0.43,0.303-0.691,0.432c-0.259,0.128-0.541,0.191-0.842,0.191
c-0.541,0-0.944-0.155-1.214-0.463c-0.27-0.312-0.404-0.749-0.404-1.315V24.159z"/>
</g>
<g>
<path fill="#8C8C94" d="M13.729,28.105c0.379,0.08,0.731,0.232,1.055,0.458s0.626,0.453,0.909,0.684s0.551,0.437,0.803,0.618
c0.252,0.181,0.502,0.271,0.75,0.271c0.124,0,0.239-0.021,0.345-0.06c0.106-0.04,0.204-0.061,0.292-0.061
c0.044,0,0.066,0.022,0.066,0.066c-0.026,0.106-0.093,0.202-0.199,0.286c-0.105,0.084-0.225,0.154-0.357,0.211
c-0.133,0.059-0.268,0.101-0.405,0.127s-0.25,0.04-0.338,0.04c-0.31,0-0.604-0.056-0.883-0.167
c-0.279-0.109-0.546-0.251-0.803-0.424c-0.256-0.173-0.506-0.363-0.749-0.57c-0.244-0.209-0.476-0.407-0.697-0.598
c-0.221-0.191-0.438-0.36-0.65-0.51c-0.212-0.151-0.416-0.254-0.61-0.307c-0.575-0.062-1.093-0.213-1.553-0.451
c-0.461-0.238-0.854-0.551-1.182-0.936c-0.327-0.386-0.58-0.837-0.757-1.354C8.588,24.914,8.5,24.345,8.5,23.726
c0-0.61,0.111-1.186,0.332-1.725c0.221-0.541,0.522-1.014,0.902-1.421c0.381-0.407,0.823-0.73,1.328-0.969
c0.504-0.239,1.035-0.358,1.592-0.358c0.77,0,1.442,0.122,2.018,0.365c0.575,0.243,1.051,0.57,1.427,0.982
c0.375,0.412,0.656,0.888,0.842,1.427c0.186,0.54,0.279,1.106,0.279,1.699c0,0.576-0.084,1.108-0.252,1.6
c-0.167,0.491-0.404,0.922-0.709,1.294c-0.306,0.371-0.673,0.682-1.102,0.93c-0.429,0.247-0.905,0.415-1.426,0.503V28.105z
M13.065,27.562c0.416,0,0.796-0.08,1.142-0.24c0.345-0.159,0.641-0.38,0.889-0.664c0.248-0.282,0.44-0.619,0.577-1.008
c0.138-0.389,0.206-0.815,0.206-1.274c0-0.638-0.066-1.228-0.199-1.771c-0.133-0.544-0.334-1.018-0.604-1.421
c-0.27-0.402-0.61-0.718-1.021-0.949c-0.412-0.23-0.892-0.345-1.44-0.345c-0.363,0-0.709,0.068-1.042,0.205
s-0.624,0.337-0.876,0.597c-0.252,0.262-0.454,0.582-0.604,0.962c-0.151,0.381-0.227,0.819-0.227,1.314
c0,0.655,0.071,1.263,0.213,1.825c0.141,0.562,0.347,1.048,0.617,1.461c0.27,0.41,0.604,0.731,1.002,0.961
C12.097,27.447,12.553,27.562,13.065,27.562z"/>
<path fill="#8C8C94" d="M23.041,26.805c0.062-0.062,0.128-0.093,0.199-0.093c0.088,0,0.172,0.075,0.251,0.226
c-0.115,0.16-0.248,0.314-0.398,0.465c-0.151,0.151-0.331,0.285-0.538,0.404c-0.208,0.121-0.445,0.215-0.71,0.286
c-0.266,0.071-0.571,0.105-0.916,0.105c-0.354,0-0.69-0.058-1.009-0.172c-0.318-0.114-0.599-0.291-0.842-0.531
c-0.244-0.239-0.438-0.536-0.584-0.89c-0.146-0.353-0.219-0.77-0.219-1.247c0-0.452,0.086-0.868,0.258-1.248
c0.173-0.382,0.396-0.707,0.67-0.977c0.274-0.269,0.577-0.48,0.909-0.63c0.332-0.151,0.653-0.226,0.962-0.226
c0.824,0,1.423,0.239,1.798,0.717c0.376,0.479,0.564,1.102,0.564,1.872c0,0.053-0.026,0.08-0.08,0.08l-3.835,0.172
c0,0.346,0.049,0.665,0.146,0.957c0.097,0.292,0.234,0.544,0.411,0.757c0.176,0.211,0.39,0.378,0.642,0.497
c0.251,0.119,0.536,0.179,0.853,0.179c0.282,0,0.553-0.066,0.813-0.198C22.646,27.178,22.864,27.009,23.041,26.805z
M20.896,22.756c-0.44,0-0.784,0.173-1.03,0.518c-0.247,0.346-0.37,0.797-0.37,1.354l2.496-0.12c0.132,0,0.198-0.058,0.198-0.173
c0-0.167-0.026-0.344-0.079-0.53c-0.053-0.186-0.132-0.357-0.238-0.511c-0.106-0.155-0.24-0.283-0.403-0.386
C21.308,22.808,21.116,22.756,20.896,22.756z"/>
<path fill="#8C8C94" d="M29.85,23.62c0.037-0.027,0.114-0.11,0.24-0.253c0.124-0.141,0.287-0.292,0.485-0.45
c0.201-0.16,0.432-0.306,0.694-0.439c0.261-0.132,0.544-0.199,0.844-0.199c0.534,0,0.912,0.157,1.133,0.471
c0.222,0.314,0.335,0.75,0.335,1.307v3.228c0,0.131,0.077,0.23,0.237,0.297c0.16,0.067,0.336,0.117,0.53,0.154
c0.081,0.017,0.119,0.069,0.119,0.158c0,0.053-0.008,0.124-0.025,0.212c-0.231-0.018-0.455-0.032-0.679-0.046
c-0.223-0.015-0.462-0.021-0.721-0.021c-0.233,0-0.47,0.006-0.709,0.021c-0.24,0.014-0.471,0.028-0.691,0.046
c-0.019-0.088-0.027-0.159-0.027-0.212c0-0.089,0.041-0.142,0.12-0.158c0.078-0.009,0.16-0.027,0.244-0.054
c0.085-0.027,0.162-0.059,0.233-0.094c0.069-0.034,0.129-0.077,0.18-0.126c0.048-0.049,0.071-0.108,0.071-0.178v-2.736
c0-0.548-0.064-0.918-0.199-1.108c-0.132-0.19-0.35-0.285-0.649-0.285c-0.23,0-0.45,0.038-0.657,0.112
c-0.208,0.076-0.392,0.186-0.552,0.332c-0.158,0.147-0.286,0.325-0.385,0.538c-0.096,0.213-0.146,0.456-0.146,0.73v2.417
c0,0.131,0.075,0.23,0.227,0.297c0.149,0.067,0.318,0.117,0.503,0.154c0.08,0.017,0.121,0.069,0.121,0.158
c0,0.053-0.011,0.124-0.027,0.212c-0.229-0.018-0.454-0.032-0.67-0.046c-0.217-0.015-0.445-0.021-0.683-0.021
c-0.24,0-0.478,0.006-0.712,0.021c-0.234,0.014-0.466,0.028-0.697,0.046c-0.017-0.088-0.025-0.159-0.025-0.212
c0-0.089,0.041-0.142,0.118-0.158c0.16-0.027,0.322-0.073,0.486-0.142c0.163-0.065,0.244-0.17,0.244-0.31v-2.736
c0-0.548-0.062-0.918-0.19-1.108c-0.127-0.19-0.341-0.285-0.641-0.285c-0.229,0-0.447,0.038-0.652,0.112
c-0.207,0.076-0.394,0.186-0.556,0.332c-0.164,0.147-0.294,0.325-0.389,0.538c-0.098,0.213-0.147,0.456-0.147,0.73v2.417
c0,0.131,0.078,0.23,0.233,0.297c0.156,0.067,0.32,0.117,0.497,0.154c0.08,0.017,0.121,0.069,0.121,0.158
c0,0.053-0.011,0.124-0.028,0.212c-0.229-0.018-0.455-0.032-0.678-0.046c-0.221-0.015-0.459-0.021-0.709-0.021
c-0.26,0-0.505,0.006-0.735,0.021c-0.23,0.014-0.457,0.028-0.678,0.046c-0.018-0.088-0.026-0.159-0.026-0.212
c0-0.089,0.04-0.142,0.119-0.158c0.194-0.037,0.372-0.087,0.531-0.154c0.16-0.066,0.239-0.171,0.239-0.311v-3.611
c0-0.265-0.046-0.455-0.14-0.571c-0.093-0.115-0.294-0.186-0.604-0.212c-0.115-0.019-0.172-0.08-0.172-0.186
c0-0.044,0.009-0.102,0.027-0.173c0.115,0,0.276-0.006,0.484-0.02c0.208-0.014,0.378-0.029,0.512-0.046
c0.206-0.036,0.389-0.074,0.551-0.113c0.16-0.04,0.276-0.06,0.347-0.06c0.126,0,0.188,0.066,0.188,0.199
c0,0.125-0.013,0.272-0.039,0.445c-0.025,0.172-0.041,0.4-0.041,0.684c0.028-0.027,0.103-0.111,0.225-0.253
c0.126-0.141,0.286-0.292,0.484-0.451c0.199-0.159,0.426-0.302,0.681-0.431c0.254-0.128,0.538-0.192,0.847-0.192
c0.458,0,0.799,0.117,1.024,0.352C29.671,22.866,29.806,23.195,29.85,23.62z"/>
<path fill="#8C8C94" d="M35.635,23.659c0-0.292-0.043-0.489-0.128-0.591c-0.084-0.102-0.276-0.166-0.577-0.192
c-0.113-0.019-0.169-0.075-0.169-0.172c0-0.053,0.008-0.115,0.025-0.186c0.114,0,0.266-0.006,0.458-0.02
c0.189-0.014,0.35-0.034,0.483-0.061c0.194-0.026,0.365-0.06,0.51-0.099c0.147-0.04,0.255-0.06,0.327-0.06
c0.122,0,0.186,0.066,0.186,0.199v3.319c0,0.221,0.013,0.424,0.038,0.609c0.028,0.186,0.075,0.348,0.147,0.485
c0.071,0.137,0.172,0.243,0.304,0.318c0.135,0.076,0.301,0.112,0.507,0.112c0.22,0,0.436-0.036,0.649-0.112
c0.212-0.075,0.399-0.187,0.563-0.331c0.165-0.146,0.294-0.325,0.392-0.538c0.097-0.213,0.147-0.46,0.147-0.743v-1.938
c0-0.282-0.045-0.478-0.128-0.584c-0.084-0.106-0.28-0.173-0.59-0.199c-0.115-0.019-0.173-0.075-0.173-0.172
c0-0.053,0.008-0.115,0.025-0.186c0.115,0,0.269-0.006,0.459-0.02c0.188-0.014,0.355-0.034,0.498-0.061
c0.197-0.026,0.367-0.06,0.511-0.099c0.144-0.04,0.25-0.06,0.323-0.06c0.125,0,0.188,0.066,0.188,0.199v4.314
c0,0.15,0.009,0.271,0.026,0.365c0.017,0.092,0.055,0.167,0.106,0.226c0.054,0.057,0.127,0.102,0.22,0.132
c0.094,0.032,0.214,0.052,0.363,0.061c0.116,0.017,0.173,0.075,0.173,0.173c0,0.053-0.009,0.115-0.025,0.186
c-0.169,0-0.347,0.013-0.532,0.039s-0.363,0.054-0.534,0.079c-0.168,0.028-0.318,0.054-0.448,0.081
c-0.13,0.026-0.223,0.039-0.274,0.039c-0.126,0-0.188-0.066-0.188-0.199V26.87c-0.029,0.028-0.104,0.112-0.229,0.254
c-0.122,0.143-0.284,0.291-0.483,0.451c-0.198,0.16-0.43,0.303-0.691,0.432c-0.259,0.128-0.541,0.191-0.842,0.191
c-0.541,0-0.944-0.155-1.214-0.463c-0.27-0.312-0.404-0.749-0.404-1.315V23.659z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 60 KiB

View File

@ -1,490 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.756,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.599c-0.196-4.173-1.892-7.003-4.125-9.161
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.598c-0.196-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#8C8C94" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#8C8C94" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g id="Layer_2" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M37.562,16.313l-12.081-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M37.562,15.313l-12.081-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,28.549z"/>
<path fill="#8C8C94" d="M35.427,18.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#8C8C94" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
</g>
<g id="Layer_4" display="none">
<g display="inline" opacity="0.35">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.095z"/>
<path fill="#FFFFFF" d="M16.677,30.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.095z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V22.998z"/>
</g>
<g display="inline">
<rect x="18.484" y="27.602" fill="#8C8C94" width="1.316" height="5.213"/>
<path fill="#8C8C94" d="M30.407,29.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.095z"/>
<path fill="#8C8C94" d="M16.677,29.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.095z"/>
<path fill="#8C8C94" d="M37.3,30.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#8C8C94" d="M24.79,28.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V28.785z"/>
<path fill="#8C8C94" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#8C8C94" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#8C8C94" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#8C8C94" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#8C8C94" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M32.829,17.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V17.745z"/>
<path fill="#8C8C94" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#8C8C94" d="M40,21.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V21.998z"/>
</g>
</g>
<g id="Layer_5" display="none">
<path display="inline" opacity="0.35" fill="#FFFFFF" d="M13.146,20.878c-0.378-0.826-1.31-1.201-2.18-0.812
c-0.873,0.385-1.193,1.352-0.8,2.18l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9
c0,0,3.188-6.94,3.22-7.014c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79
c0,1.048,0.582,1.906,1.697,1.906c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765
c1.047,0,1.741,0.719,1.741,1.765v5.555c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555
c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765v5.555c0,1.048,0.58,1.906,1.697,1.906
c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951c-2.246,0-3.652,1.553-3.652,1.553
c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551c-0.749-0.968-2.021-1.551-3.076-1.551
c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,20.878z"/>
<path display="inline" fill="#8C8C94" d="M13.146,19.878c-0.378-0.826-1.31-1.201-2.18-0.812c-0.873,0.385-1.193,1.352-0.8,2.18
l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9c0,0,3.188-6.94,3.22-7.014
c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79c0,1.048,0.582,1.906,1.697,1.906
c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765c1.047,0,1.741,0.719,1.741,1.765v5.555
c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765
v5.555c0,1.048,0.58,1.906,1.697,1.906c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951
c-2.246,0-3.652,1.553-3.652,1.553c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551
c-0.749-0.968-2.021-1.551-3.076-1.551c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,19.878z"/>
</g>
<g id="Layer_6" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.999,12c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,14.936,11,20.031,11,26c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,19.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,39.998,24.934,40,24.999,40
C32.732,40,39,33.732,39,26C39,18.268,32.732,12,24.999,12z"/>
<path fill="#FFFFFF" d="M29.656,30.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,30.317z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.999,11c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,13.936,11,19.031,11,25c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,18.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,38.998,24.934,39,24.999,39
C32.732,39,39,32.732,39,25C39,17.268,32.732,11,24.999,11z"/>
<path fill="#8C8C94" d="M29.656,29.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,29.317z"/>
</g>
</g>
<g id="Layer_7" display="none">
<g display="inline" opacity="0.35">
<g>
<path fill="#FFFFFF" d="M17.232,34.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,30.213,9.102,28.171,9.102,26
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,33.284,19.403,34.131,17.232,34.131z
M17.232,18.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,22.15,9.801,24.016,9.801,26c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,19.342,19.217,18.569,17.232,18.569z"/>
</g>
<path fill="#FFFFFF" d="M28.412,26.061c0.168-0.721-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,27.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#FFFFFF" d="M32.588,26.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.331h-3.594l0.697-2.987
c0.192-0.82-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.465-1.482,1.321l-0.651,2.776h-3.594L32.588,26.083z"/>
<polygon fill="#FFFFFF" points="14.989,26.189 11.143,21.449 15.856,21.458 17.897,24.22 21.292,21.449 26.747,21.449
19.938,26.677 23.767,31.605 19.017,31.605 17.066,28.735 13.437,31.605 8,31.605 "/>
</g>
<g display="inline">
<g>
<path fill="#8C8C94" d="M17.232,33.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,29.213,9.102,27.171,9.102,25
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,32.284,19.403,33.131,17.232,33.131z
M17.232,17.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,21.15,9.801,23.016,9.801,25c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,18.342,19.217,17.569,17.232,17.569z"/>
</g>
<path fill="#8C8C94" d="M28.412,25.061c0.168-0.722-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,26.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#8C8C94" d="M32.588,25.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.332h-3.594l0.697-2.987
c0.192-0.821-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.466-1.482,1.321l-0.651,2.776h-3.594L32.588,25.083z"/>
<polygon fill="#8C8C94" points="14.989,25.189 11.143,20.449 15.856,20.458 17.897,23.22 21.292,20.449 26.747,20.449
19.938,25.677 23.767,30.605 19.017,30.605 17.066,27.735 13.437,30.605 8,30.605 "/>
</g>
</g>
<g id="Layer_8">
<g>
<path fill="#FFFFFF" d="M10.105,20.082c0.354,0.28,0.954,0.656,1.782,1.118c0.859,0.482,1.339,0.769,1.514,0.904
c0.26,0.196,0.457,0.414,0.582,0.648c0.124,0.227,0.186,0.455,0.186,0.677c0,0.4-0.165,0.752-0.488,1.046
c-0.327,0.296-0.78,0.447-1.35,0.447c-0.499,0-0.962-0.113-1.378-0.335c-0.413-0.218-0.724-0.496-0.925-0.828
c-0.204-0.337-0.368-0.854-0.49-1.538l-0.014-0.079H9.092v3.528h0.434l0.012-0.081c0.039-0.256,0.092-0.357,0.128-0.396
c0.052-0.052,0.122-0.078,0.215-0.078c0.078,0,0.291,0.039,0.855,0.223c0.465,0.151,0.779,0.24,0.933,0.266
c0.238,0.045,0.504,0.067,0.812,0.067c0.92,0,1.683-0.276,2.268-0.821c0.588-0.55,0.887-1.212,0.887-1.97
c0-0.398-0.094-0.785-0.279-1.151c-0.185-0.365-0.452-0.685-0.793-0.952c-0.335-0.262-0.964-0.642-1.869-1.127
c-1.096-0.589-1.796-1.064-2.081-1.409c-0.19-0.225-0.286-0.477-0.286-0.747c0-0.355,0.154-0.679,0.457-0.962
c0.303-0.285,0.695-0.429,1.165-0.429c0.419,0,0.833,0.108,1.229,0.322c0.391,0.211,0.697,0.501,0.911,0.863
c0.214,0.365,0.366,0.865,0.45,1.488l0.011,0.083h0.437V15.33h-0.43l-0.017,0.076c-0.056,0.254-0.119,0.357-0.161,0.396
c-0.062,0.057-0.141,0.085-0.239,0.085c-0.065,0-0.209-0.029-0.528-0.171c-0.586-0.256-1.15-0.386-1.675-0.386
c-0.845,0-1.553,0.263-2.107,0.782C9.28,16.635,9,17.265,9,17.985c0,0.416,0.095,0.802,0.283,1.149
C9.47,19.48,9.747,19.798,10.105,20.082z"/>
<path fill="#FFFFFF" d="M16.584,19.372c0.063,0.072,0.138,0.256,0.138,0.722v2.528c0,0.802,0.053,1.334,0.16,1.629
c0.159,0.433,0.434,0.782,0.815,1.036c0.38,0.255,0.939,0.384,1.662,0.384c0.668,0,1.205-0.134,1.596-0.399
c0.393-0.268,0.66-0.593,0.795-0.968c0.135-0.369,0.2-0.874,0.2-1.54v-2.622c0-0.452,0.052-0.596,0.084-0.645
c0.119-0.188,0.283-0.279,0.502-0.279h0.339v-0.362h-2.461v0.362h0.337c0.217,0,0.373,0.058,0.479,0.177
c0.04,0.047,0.108,0.2,0.108,0.7v2.618c0,0.67-0.059,1.15-0.176,1.425c-0.114,0.265-0.333,0.486-0.648,0.659
c-0.323,0.178-0.691,0.268-1.095,0.268c-0.315,0-0.584-0.057-0.798-0.167c-0.213-0.11-0.377-0.25-0.488-0.416
c-0.114-0.167-0.193-0.409-0.238-0.718c-0.046-0.319-0.069-0.605-0.069-0.851v-2.818c0-0.426,0.054-0.597,0.101-0.666
c0.094-0.142,0.253-0.211,0.483-0.211h0.342v-0.362h-2.957v0.362h0.336C16.344,19.217,16.497,19.269,16.584,19.372z"/>
<path fill="#FFFFFF" d="M25.917,25.17h-0.343c-0.215,0-0.37-0.058-0.473-0.179c-0.033-0.037-0.109-0.177-0.109-0.697v-1.775
c0.156,0.031,0.317,0.059,0.472,0.076c0.176,0.022,0.351,0.034,0.516,0.034c0.658,0,1.175-0.176,1.539-0.522
c0.364-0.352,0.55-0.809,0.55-1.362c0-0.409-0.122-0.769-0.364-1.07c-0.239-0.295-0.538-0.508-0.884-0.634
c-0.342-0.123-0.812-0.185-1.398-0.185h-2.46v0.362h0.34c0.216,0,0.377,0.06,0.48,0.178c0.04,0.044,0.105,0.195,0.105,0.699v4.2
c0,0.459-0.05,0.605-0.079,0.65c-0.1,0.152-0.266,0.226-0.507,0.226h-0.34v0.363h2.955V25.17z M24.992,22.049v-2.544
c0.21-0.046,0.387-0.07,0.524-0.07c0.244,0,0.467,0.055,0.66,0.165c0.191,0.11,0.335,0.273,0.44,0.499
c0.107,0.229,0.162,0.479,0.162,0.742c0,0.388-0.109,0.693-0.33,0.932c-0.221,0.239-0.476,0.355-0.778,0.355
c-0.097,0-0.203-0.007-0.32-0.023C25.252,22.093,25.137,22.075,24.992,22.049z"/>
<path fill="#FFFFFF" d="M34.204,23.719h-0.396l-0.027,0.052c-0.199,0.381-0.397,0.668-0.586,0.854
c-0.142,0.137-0.284,0.227-0.435,0.275c-0.155,0.045-0.414,0.068-0.769,0.068h-1.096c-0.188,0-0.27-0.019-0.306-0.033
l-0.104-0.121c-0.012-0.039-0.025-0.151-0.025-0.469V22.32h1.291c0.256,0,0.444,0.029,0.562,0.085
c0.11,0.053,0.189,0.125,0.238,0.216c0.019,0.04,0.068,0.175,0.125,0.574l0.011,0.083h0.35v-2.432H32.68l-0.004,0.091
c-0.021,0.336-0.103,0.57-0.247,0.696c-0.104,0.092-0.331,0.139-0.678,0.139H30.46v-2.352h1.655c0.308,0,0.521,0.021,0.628,0.061
c0.14,0.06,0.246,0.145,0.313,0.251c0.072,0.115,0.142,0.336,0.206,0.659l0.016,0.078h0.381l-0.071-1.613h-5.159v0.362h0.324
c0.237,0,0.405,0.055,0.5,0.161c0.036,0.044,0.1,0.197,0.1,0.716v4.2c0,0.315-0.016,0.511-0.047,0.598
c-0.03,0.08-0.083,0.139-0.164,0.178c-0.118,0.066-0.249,0.1-0.389,0.1h-0.324v0.363h5.15L34.204,23.719z"/>
<path fill="#FFFFFF" d="M40.914,25.17c-0.34-0.036-0.615-0.122-0.819-0.253c-0.209-0.137-0.465-0.417-0.761-0.833l-1.26-1.742
c0.493-0.128,0.869-0.336,1.118-0.618c0.276-0.307,0.416-0.678,0.416-1.102c0-0.394-0.122-0.74-0.365-1.027
c-0.243-0.286-0.528-0.478-0.876-0.585c-0.334-0.104-0.855-0.155-1.547-0.155h-2.452v0.362h0.337c0.213,0,0.375,0.06,0.479,0.178
c0.04,0.045,0.107,0.196,0.107,0.699v4.2c0,0.457-0.053,0.603-0.085,0.65c-0.1,0.151-0.264,0.226-0.502,0.226h-0.337v0.363h2.954
V25.17h-0.347c-0.214,0-0.367-0.058-0.471-0.179c-0.04-0.045-0.108-0.195-0.108-0.697v-1.782l0.184,0.005
c0.076,0,0.173-0.004,0.287-0.008l0.059-0.002l2.195,3.026H41V25.18L40.914,25.17z M38.319,20.686
c0,0.393-0.142,0.706-0.435,0.958c-0.29,0.253-0.733,0.382-1.318,0.382l-0.17-0.002v-2.531c0.269-0.058,0.486-0.088,0.646-0.088
c0.393,0,0.695,0.116,0.927,0.354C38.201,19.992,38.319,20.304,38.319,20.686z"/>
<path fill="#FFFFFF" d="M13.557,33.681l-2.401-5.199l-0.026-0.055H9V28.8h0.096c0.328,0,0.493,0.048,0.572,0.088
c0.111,0.058,0.185,0.127,0.224,0.212c0.062,0.118,0.094,0.328,0.094,0.622v4.5c0,0.484-0.061,0.644-0.098,0.695
c-0.104,0.151-0.282,0.227-0.544,0.227H9v0.376h2.605v-0.376h-0.343c-0.243,0-0.419-0.062-0.526-0.184
c-0.043-0.049-0.116-0.21-0.116-0.738v-4.164l2.476,5.406l0.026,0.056h0.291l2.502-5.463v4.165c0,0.483-0.061,0.644-0.098,0.696
c-0.102,0.15-0.28,0.226-0.544,0.226h-0.343v0.376h3.133v-0.376h-0.34c-0.243,0-0.421-0.062-0.529-0.185
c-0.043-0.048-0.117-0.207-0.117-0.737v-4.5c0-0.46,0.052-0.634,0.094-0.696c0.105-0.15,0.29-0.226,0.552-0.226h0.34v-0.373h-2.1
L13.557,33.681z"/>
<path fill="#FFFFFF" d="M20.718,35.032c-0.092-0.053-0.148-0.106-0.171-0.169c-0.027-0.071-0.06-0.242-0.06-0.656v-4.471
c0-0.508,0.067-0.672,0.107-0.725c0.107-0.141,0.287-0.212,0.535-0.212h0.343v-0.373h-3.133V28.8h0.342
c0.141,0,0.28,0.036,0.418,0.106c0.086,0.053,0.141,0.108,0.166,0.173c0.022,0.059,0.06,0.223,0.06,0.657v4.471
c0,0.485-0.056,0.662-0.103,0.725c-0.108,0.142-0.286,0.212-0.541,0.212h-0.342v0.376h3.133v-0.376h-0.343
C20.98,35.144,20.846,35.106,20.718,35.032z"/>
<path fill="#FFFFFF" d="M27.546,33.764l-0.309-0.2l-0.055,0.074c-0.4,0.56-0.77,0.936-1.093,1.118
c-0.326,0.183-0.706,0.275-1.132,0.275c-0.497,0-0.928-0.116-1.319-0.353c-0.384-0.238-0.674-0.577-0.861-1.01
c-0.192-0.443-0.29-0.975-0.29-1.58c0-0.738,0.104-1.363,0.309-1.856c0.199-0.487,0.477-0.847,0.828-1.066
c0.347-0.223,0.732-0.332,1.178-0.332c0.523,0,0.958,0.146,1.331,0.447c0.372,0.299,0.662,0.798,0.863,1.482l0.019,0.07h0.34
l-0.171-2.465l-0.005-0.09h-0.346l-0.019,0.073c-0.036,0.148-0.089,0.259-0.158,0.331c-0.051,0.047-0.108,0.069-0.176,0.069
c-0.019,0-0.082-0.01-0.257-0.098c-0.492-0.25-1.001-0.376-1.511-0.376c-0.65,0-1.259,0.164-1.811,0.487
c-0.548,0.321-0.986,0.783-1.301,1.373c-0.314,0.587-0.474,1.239-0.474,1.939c0,0.868,0.243,1.636,0.72,2.278
c0.642,0.867,1.559,1.306,2.725,1.306c0.65,0,1.217-0.146,1.688-0.438c0.474-0.291,0.893-0.755,1.242-1.381L27.546,33.764z"/>
<path fill="#FFFFFF" d="M33.42,34.871c-0.22-0.143-0.491-0.439-0.807-0.885l-1.344-1.86c0.524-0.137,0.926-0.356,1.194-0.658
c0.29-0.329,0.438-0.722,0.438-1.169c0-0.416-0.13-0.781-0.386-1.086c-0.252-0.3-0.564-0.509-0.93-0.622
c-0.358-0.109-0.911-0.164-1.646-0.164H27.34V28.8h0.352c0.232,0,0.4,0.062,0.515,0.191c0.043,0.049,0.117,0.211,0.117,0.745
v4.471c0,0.489-0.055,0.643-0.09,0.692c-0.104,0.164-0.283,0.244-0.542,0.244H27.34v0.376h3.132v-0.376h-0.367
c-0.225,0-0.393-0.063-0.501-0.194c-0.036-0.038-0.12-0.188-0.12-0.742v-1.902l0.201,0.004c0.094,0,0.208-0.004,0.34-0.009
l0.031-0.001l2.31,3.181l0.029,0.04h1.986v-0.366l-0.087-0.01C33.939,35.106,33.645,35.015,33.42,34.871z M31.544,30.367
c0,0.417-0.15,0.752-0.461,1.022c-0.312,0.272-0.788,0.411-1.408,0.411l-0.191-0.006v-2.701c0.287-0.063,0.521-0.097,0.697-0.097
c0.415,0,0.738,0.124,0.989,0.379C31.418,29.626,31.544,29.959,31.544,30.367z"/>
<path fill="#FFFFFF" d="M37.229,28.279c-2.039,0-3.698,1.658-3.698,3.694c0,2.039,1.659,3.696,3.698,3.696
c2.038,0,3.694-1.657,3.694-3.696C40.923,29.938,39.267,28.279,37.229,28.279z"/>
</g>
<g>
<path fill="#8C8C94" d="M10.105,19.582c0.354,0.28,0.954,0.656,1.782,1.118c0.859,0.482,1.339,0.769,1.514,0.904
c0.26,0.196,0.457,0.414,0.582,0.648c0.124,0.227,0.186,0.455,0.186,0.677c0,0.4-0.165,0.752-0.488,1.046
c-0.327,0.296-0.78,0.447-1.35,0.447c-0.499,0-0.962-0.113-1.378-0.335c-0.413-0.218-0.724-0.496-0.925-0.828
c-0.204-0.337-0.368-0.854-0.49-1.538l-0.014-0.079H9.092v3.528h0.434l0.012-0.082c0.039-0.255,0.092-0.356,0.128-0.396
c0.052-0.052,0.122-0.078,0.215-0.078c0.078,0,0.291,0.039,0.855,0.222c0.465,0.151,0.779,0.241,0.933,0.266
c0.238,0.045,0.504,0.067,0.812,0.067c0.92,0,1.683-0.276,2.268-0.821c0.588-0.55,0.887-1.212,0.887-1.97
c0-0.398-0.094-0.785-0.279-1.151c-0.185-0.365-0.452-0.685-0.793-0.952c-0.335-0.262-0.964-0.642-1.869-1.127
c-1.096-0.589-1.796-1.064-2.081-1.409c-0.19-0.225-0.286-0.477-0.286-0.747c0-0.355,0.154-0.679,0.457-0.962
c0.303-0.285,0.695-0.429,1.165-0.429c0.419,0,0.833,0.108,1.229,0.322c0.391,0.211,0.697,0.501,0.911,0.863
c0.214,0.365,0.366,0.865,0.45,1.488l0.011,0.083h0.437V14.83h-0.43l-0.017,0.076c-0.056,0.254-0.119,0.357-0.161,0.396
c-0.062,0.057-0.141,0.085-0.239,0.085c-0.065,0-0.209-0.029-0.528-0.171c-0.586-0.256-1.15-0.386-1.675-0.386
c-0.845,0-1.553,0.263-2.107,0.782C9.28,16.135,9,16.765,9,17.485c0,0.416,0.095,0.802,0.283,1.149
C9.47,18.98,9.747,19.298,10.105,19.582z"/>
<path fill="#8C8C94" d="M16.584,18.872c0.063,0.072,0.138,0.256,0.138,0.722v2.528c0,0.802,0.053,1.334,0.16,1.629
c0.159,0.433,0.434,0.782,0.815,1.036c0.38,0.254,0.939,0.383,1.662,0.383c0.668,0,1.205-0.134,1.596-0.399
c0.393-0.268,0.66-0.593,0.795-0.968c0.135-0.369,0.2-0.874,0.2-1.54v-2.622c0-0.452,0.052-0.596,0.084-0.645
c0.119-0.188,0.283-0.279,0.502-0.279h0.339v-0.362h-2.461v0.362h0.337c0.217,0,0.373,0.058,0.479,0.177
c0.04,0.047,0.108,0.2,0.108,0.7v2.618c0,0.67-0.059,1.15-0.176,1.425c-0.114,0.265-0.333,0.486-0.648,0.659
c-0.323,0.178-0.691,0.268-1.095,0.268c-0.315,0-0.584-0.056-0.798-0.167c-0.213-0.11-0.377-0.25-0.488-0.416
c-0.114-0.167-0.193-0.409-0.238-0.718c-0.046-0.319-0.069-0.605-0.069-0.851v-2.818c0-0.426,0.054-0.597,0.101-0.666
c0.094-0.142,0.253-0.211,0.483-0.211h0.342v-0.362h-2.957v0.362h0.336C16.344,18.717,16.497,18.769,16.584,18.872z"/>
<path fill="#8C8C94" d="M25.917,24.67h-0.343c-0.215,0-0.37-0.058-0.473-0.179c-0.033-0.037-0.109-0.177-0.109-0.697v-1.775
c0.156,0.031,0.317,0.059,0.472,0.076c0.176,0.022,0.351,0.034,0.516,0.034c0.658,0,1.175-0.176,1.539-0.522
c0.364-0.352,0.55-0.809,0.55-1.362c0-0.409-0.122-0.769-0.364-1.07c-0.239-0.295-0.538-0.508-0.884-0.634
c-0.342-0.123-0.812-0.185-1.398-0.185h-2.46v0.362h0.34c0.216,0,0.377,0.06,0.48,0.178c0.04,0.044,0.105,0.195,0.105,0.699v4.2
c0,0.459-0.05,0.605-0.079,0.65c-0.1,0.152-0.266,0.226-0.507,0.226h-0.34v0.364h2.955V24.67z M24.992,21.549v-2.544
c0.21-0.046,0.387-0.07,0.524-0.07c0.244,0,0.467,0.055,0.66,0.165c0.191,0.11,0.335,0.273,0.44,0.499
c0.107,0.229,0.162,0.479,0.162,0.742c0,0.388-0.109,0.693-0.33,0.932c-0.221,0.239-0.476,0.355-0.778,0.355
c-0.097,0-0.203-0.007-0.32-0.023C25.252,21.593,25.137,21.575,24.992,21.549z"/>
<path fill="#8C8C94" d="M34.204,23.219h-0.396l-0.027,0.052c-0.199,0.381-0.397,0.668-0.586,0.854
c-0.142,0.137-0.284,0.227-0.435,0.275c-0.155,0.045-0.414,0.068-0.769,0.068h-1.096c-0.188,0-0.27-0.019-0.306-0.033
l-0.104-0.121c-0.012-0.039-0.025-0.151-0.025-0.469V21.82h1.291c0.256,0,0.444,0.029,0.562,0.085
c0.11,0.053,0.189,0.125,0.238,0.216c0.019,0.04,0.068,0.175,0.125,0.574l0.011,0.083h0.35v-2.432H32.68l-0.004,0.091
c-0.021,0.336-0.103,0.57-0.247,0.696c-0.104,0.092-0.331,0.139-0.678,0.139H30.46v-2.352h1.655c0.308,0,0.521,0.021,0.628,0.061
c0.14,0.06,0.246,0.145,0.313,0.251c0.072,0.115,0.142,0.336,0.206,0.659l0.016,0.078h0.381l-0.071-1.613h-5.159v0.362h0.324
c0.237,0,0.405,0.055,0.5,0.161c0.036,0.044,0.1,0.197,0.1,0.716v4.2c0,0.315-0.016,0.511-0.047,0.598
c-0.03,0.08-0.083,0.14-0.164,0.178c-0.118,0.066-0.249,0.1-0.389,0.1h-0.324v0.364h5.15L34.204,23.219z"/>
<path fill="#8C8C94" d="M40.914,24.67c-0.34-0.037-0.615-0.123-0.819-0.253C39.886,24.28,39.63,24,39.334,23.583l-1.26-1.742
c0.493-0.128,0.869-0.336,1.118-0.618c0.276-0.307,0.416-0.678,0.416-1.102c0-0.394-0.122-0.74-0.365-1.027
c-0.243-0.286-0.528-0.478-0.876-0.585c-0.334-0.104-0.855-0.155-1.547-0.155h-2.452v0.362h0.337c0.213,0,0.375,0.06,0.479,0.178
c0.04,0.045,0.107,0.196,0.107,0.699v4.2c0,0.457-0.053,0.603-0.085,0.65c-0.1,0.152-0.264,0.226-0.502,0.226h-0.337v0.364h2.954
V24.67h-0.347c-0.214,0-0.367-0.058-0.471-0.179c-0.04-0.045-0.108-0.195-0.108-0.697v-1.782l0.184,0.005
c0.076,0,0.173-0.004,0.287-0.008l0.059-0.002l2.195,3.027H41V24.68L40.914,24.67z M38.319,20.186
c0,0.393-0.142,0.706-0.435,0.958c-0.29,0.253-0.733,0.382-1.318,0.382l-0.17-0.002v-2.531c0.269-0.058,0.486-0.088,0.646-0.088
c0.393,0,0.695,0.116,0.927,0.354C38.201,19.492,38.319,19.804,38.319,20.186z"/>
<path fill="#8C8C94" d="M13.557,33.181l-2.401-5.199l-0.026-0.055H9V28.3h0.096c0.328,0,0.493,0.048,0.572,0.088
c0.111,0.058,0.185,0.127,0.224,0.212c0.062,0.118,0.094,0.328,0.094,0.622v4.5c0,0.484-0.061,0.644-0.098,0.695
c-0.104,0.151-0.282,0.227-0.544,0.227H9v0.376h2.605v-0.376h-0.343c-0.243,0-0.419-0.062-0.526-0.184
c-0.043-0.049-0.116-0.21-0.116-0.738v-4.164l2.476,5.406l0.026,0.056h0.291l2.502-5.463v4.165c0,0.483-0.061,0.644-0.098,0.696
c-0.102,0.15-0.28,0.226-0.544,0.226h-0.343v0.376h3.133v-0.376h-0.34c-0.243,0-0.421-0.062-0.529-0.185
c-0.043-0.048-0.117-0.207-0.117-0.737v-4.5c0-0.46,0.052-0.634,0.094-0.696c0.105-0.15,0.29-0.226,0.552-0.226h0.34v-0.373h-2.1
L13.557,33.181z"/>
<path fill="#8C8C94" d="M20.718,34.532c-0.092-0.053-0.148-0.106-0.171-0.169c-0.027-0.071-0.06-0.242-0.06-0.656v-4.471
c0-0.508,0.067-0.672,0.107-0.725c0.107-0.141,0.287-0.212,0.535-0.212h0.343v-0.373h-3.133V28.3h0.342
c0.141,0,0.28,0.036,0.418,0.106c0.086,0.053,0.141,0.108,0.166,0.173c0.022,0.059,0.06,0.223,0.06,0.657v4.471
c0,0.485-0.056,0.662-0.103,0.725c-0.108,0.142-0.286,0.212-0.541,0.212h-0.342v0.376h3.133v-0.376h-0.343
C20.98,34.644,20.846,34.606,20.718,34.532z"/>
<path fill="#8C8C94" d="M27.546,33.264l-0.309-0.2l-0.055,0.074c-0.4,0.56-0.77,0.936-1.093,1.118
c-0.326,0.183-0.706,0.275-1.132,0.275c-0.497,0-0.928-0.116-1.319-0.353c-0.384-0.238-0.674-0.577-0.861-1.01
c-0.192-0.443-0.29-0.975-0.29-1.58c0-0.738,0.104-1.363,0.309-1.856c0.199-0.487,0.477-0.847,0.828-1.066
c0.347-0.223,0.732-0.332,1.178-0.332c0.523,0,0.958,0.146,1.331,0.447c0.372,0.299,0.662,0.798,0.863,1.482l0.019,0.07h0.34
l-0.171-2.465l-0.005-0.09h-0.346l-0.019,0.073c-0.036,0.148-0.089,0.259-0.158,0.331c-0.051,0.047-0.108,0.069-0.176,0.069
c-0.019,0-0.082-0.01-0.257-0.098c-0.492-0.25-1.001-0.376-1.511-0.376c-0.65,0-1.259,0.164-1.811,0.487
c-0.548,0.321-0.986,0.783-1.301,1.373c-0.314,0.587-0.474,1.239-0.474,1.939c0,0.868,0.243,1.636,0.72,2.278
c0.642,0.867,1.559,1.306,2.725,1.306c0.65,0,1.217-0.146,1.688-0.438c0.474-0.291,0.893-0.755,1.242-1.381L27.546,33.264z"/>
<path fill="#8C8C94" d="M33.42,34.371c-0.22-0.143-0.491-0.439-0.807-0.885l-1.344-1.86c0.524-0.137,0.926-0.356,1.194-0.658
c0.29-0.329,0.438-0.722,0.438-1.169c0-0.416-0.13-0.781-0.386-1.086c-0.252-0.3-0.564-0.509-0.93-0.622
c-0.358-0.109-0.911-0.164-1.646-0.164H27.34V28.3h0.352c0.232,0,0.4,0.062,0.515,0.191c0.043,0.049,0.117,0.211,0.117,0.745
v4.471c0,0.489-0.055,0.643-0.09,0.692c-0.104,0.164-0.283,0.244-0.542,0.244H27.34v0.376h3.132v-0.376h-0.367
c-0.225,0-0.393-0.063-0.501-0.194c-0.036-0.038-0.12-0.188-0.12-0.742v-1.902l0.201,0.004c0.094,0,0.208-0.004,0.34-0.009
l0.031-0.001l2.31,3.181l0.029,0.04h1.986v-0.366l-0.087-0.01C33.939,34.606,33.645,34.515,33.42,34.371z M31.544,29.867
c0,0.417-0.15,0.752-0.461,1.022c-0.312,0.272-0.788,0.411-1.408,0.411l-0.191-0.006v-2.701c0.287-0.063,0.521-0.097,0.697-0.097
c0.415,0,0.738,0.124,0.989,0.379C31.418,29.126,31.544,29.459,31.544,29.867z"/>
<path fill="#8C8C94" d="M37.229,27.779c-2.039,0-3.698,1.658-3.698,3.694c0,2.039,1.659,3.696,3.698,3.696
c2.038,0,3.694-1.657,3.694-3.696C40.923,29.438,39.267,27.779,37.229,27.779z"/>
</g>
</g>
<g id="Layer_9" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M36.353,38.704c-1.297,0-3.031-0.544-5.299-1.661c-0.167-0.081-0.329-0.163-0.491-0.244
c-3.177,1.122-7.697,1.842-11.62,1.842c-3.211,0-7.18-0.464-7.85-2.669c-0.492-1.619,0.962-3.539,4.447-5.87
c0.154-0.103,0.306-0.204,0.458-0.304c0.583-3.136,2.066-7.104,3.905-10.435c1.251-2.266,3.703-6.067,6.059-6.067
c1.921,0,3.046,2.302,3.346,6.842c0.013,0.184,0.023,0.366,0.034,0.546c4.643,3.977,10.766,12.961,9.486,16.5
C38.578,37.877,37.944,38.704,36.353,38.704z M32.152,36.15c1.803,0.846,3.214,1.273,4.2,1.273c0.911,0,1.158-0.36,1.271-0.675
c0.85-2.353-3.571-9.87-8.208-14.274c0.031,1.234,0.018,2.417-0.039,3.531v0.002l-0.001,0.021c0.096,0.347,0.068,0.747-0.08,1.188
v0.006c-0.026,0.305-0.056,0.604-0.089,0.895l0.005,0.002l-0.001,0.002c0.101,0.037,0.202,0.076,0.304,0.114
c3.821,1.445,5.676,2.959,5.669,4.627C35.179,34.097,34.16,35.201,32.152,36.15z M15.765,31.499
c-3.482,2.429-3.577,3.67-3.447,4.101c0.325,1.069,2.925,1.761,6.625,1.761c3.33,0,7.096-0.534,10.03-1.395
c-1.085-0.589-2.101-1.19-3.035-1.797h-0.001l-0.019-0.012c-0.349-0.091-0.681-0.313-0.99-0.664l-0.004-0.004
c-0.25-0.174-0.495-0.349-0.729-0.522L24.19,32.97l-0.002-0.002c-0.083,0.069-0.166,0.137-0.25,0.206
c-2.391,1.956-4.228,2.906-5.617,2.906c-0.738,0-1.362-0.276-1.803-0.8C15.874,34.518,15.623,33.248,15.765,31.499z M27.48,33.628
c0.979,0.601,2.039,1.195,3.163,1.776c2.045-0.794,3.257-1.738,3.261-2.547c0.002-0.479-0.467-1.771-4.842-3.426
c-0.013-0.004-0.024-0.009-0.036-0.014C28.753,31.066,28.284,32.767,27.48,33.628z M17.166,30.566
c-0.291,1.882-0.174,3.29,0.331,3.888c0.199,0.237,0.46,0.346,0.824,0.346c0.733,0,2.162-0.454,4.807-2.616
c0.01-0.009,0.02-0.017,0.029-0.025c-1.24-1.021-2.52-2.298-2.869-3.445C19.277,29.261,18.231,29.882,17.166,30.566z
M25.801,32.54c0.177,0.122,0.36,0.246,0.547,0.368c0.304-0.124,0.903-1.012,1.33-3.221c-0.605,0.683-1.362,1.429-2.264,2.23
C25.543,32.167,25.672,32.373,25.801,32.54z M21.476,28.093c-0.002,0.024-0.002,0.057,0.003,0.097
c0.06,0.482,0.662,1.406,2.12,2.668c-0.289-0.865-0.557-1.894-0.801-3.077c-0.279-0.012-0.524-0.004-0.731,0.024
C21.873,27.896,21.675,27.993,21.476,28.093z M24.142,27.948c0.23,1.057,0.479,1.967,0.746,2.723
c0.8-0.729,1.463-1.399,1.983-2.007C25.841,28.335,24.928,28.096,24.142,27.948z M25.962,14.577c-2.364,0-6.904,7.849-8.45,14.262
c1.052-0.644,2.082-1.224,3.074-1.73l0-0.001l0.019-0.009c0.254-0.258,0.613-0.435,1.072-0.526l0.004-0.002
c0.277-0.131,0.55-0.254,0.818-0.37l-0.001-0.005l0.003-0.002c-0.018-0.104-0.036-0.211-0.053-0.318
c-0.558-3.413-0.37-5.611,0.573-6.722c0.443-0.521,1.056-0.797,1.769-0.797c0.896,0,1.967,0.429,3.195,1.277
C27.597,15.084,26.451,14.577,25.962,14.577z M24.626,26.739c0.893,0.182,1.917,0.464,3.062,0.845
c0.151-0.236,0.267-0.452,0.346-0.646c0.016-0.213,0.032-0.432,0.046-0.652c-0.105-0.076-0.343-0.141-0.71-0.141
C26.695,26.145,25.744,26.353,24.626,26.739z M24.791,19.636c-0.34,0-0.592,0.11-0.793,0.347
c-0.381,0.448-0.924,1.782-0.287,5.686c0.002,0.012,0.005,0.025,0.007,0.038c1.474-0.552,2.728-0.842,3.652-0.842
c0.296,0,0.55,0.029,0.767,0.08c0.031-1.15,0.016-2.367-0.044-3.633C26.746,20.229,25.58,19.636,24.791,19.636z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M36.353,37.704c-1.297,0-3.031-0.544-5.299-1.661c-0.167-0.081-0.329-0.163-0.491-0.244
c-3.177,1.122-7.697,1.842-11.62,1.842c-3.211,0-7.18-0.464-7.85-2.669c-0.492-1.619,0.962-3.539,4.447-5.87
c0.154-0.103,0.306-0.204,0.458-0.304c0.583-3.136,2.066-7.104,3.905-10.435c1.251-2.266,3.703-6.067,6.059-6.067
c1.921,0,3.046,2.302,3.346,6.842c0.013,0.184,0.023,0.366,0.034,0.546c4.643,3.977,10.766,12.961,9.486,16.5
C38.578,36.877,37.944,37.704,36.353,37.704z M32.152,35.15c1.803,0.846,3.214,1.273,4.2,1.273c0.911,0,1.158-0.36,1.271-0.675
c0.85-2.353-3.571-9.87-8.208-14.274c0.031,1.234,0.018,2.417-0.039,3.531v0.001l-0.001,0.021c0.096,0.347,0.068,0.747-0.08,1.188
v0.006c-0.026,0.305-0.056,0.604-0.089,0.895l0.005,0.002l-0.001,0.002c0.101,0.037,0.202,0.076,0.304,0.114
c3.821,1.445,5.676,2.959,5.669,4.627C35.179,33.097,34.16,34.201,32.152,35.15z M15.765,30.499
c-3.482,2.429-3.577,3.67-3.447,4.101c0.325,1.069,2.925,1.761,6.625,1.761c3.33,0,7.096-0.534,10.03-1.395
c-1.085-0.589-2.101-1.19-3.035-1.797h-0.001l-0.019-0.012c-0.349-0.091-0.681-0.313-0.99-0.664l-0.004-0.004
c-0.25-0.174-0.495-0.349-0.729-0.522L24.19,31.97l-0.002-0.002c-0.083,0.069-0.166,0.137-0.25,0.206
c-2.391,1.956-4.228,2.906-5.617,2.906c-0.738,0-1.362-0.276-1.803-0.8C15.874,33.518,15.623,32.248,15.765,30.499z M27.48,32.628
c0.979,0.601,2.039,1.195,3.163,1.776c2.045-0.794,3.257-1.738,3.261-2.547c0.002-0.479-0.467-1.771-4.842-3.426
c-0.013-0.004-0.024-0.009-0.036-0.014C28.753,30.066,28.284,31.767,27.48,32.628z M17.166,29.566
c-0.291,1.882-0.174,3.29,0.331,3.888c0.199,0.237,0.46,0.346,0.824,0.346c0.733,0,2.162-0.454,4.807-2.616
c0.01-0.009,0.02-0.017,0.029-0.025c-1.24-1.021-2.52-2.298-2.869-3.445C19.277,28.261,18.231,28.882,17.166,29.566z
M25.801,31.54c0.177,0.122,0.36,0.246,0.547,0.368c0.304-0.124,0.903-1.012,1.33-3.221c-0.605,0.683-1.362,1.429-2.264,2.23
C25.543,31.167,25.672,31.373,25.801,31.54z M21.476,27.093c-0.002,0.024-0.002,0.057,0.003,0.097
c0.06,0.482,0.662,1.406,2.12,2.668c-0.289-0.865-0.557-1.894-0.801-3.077c-0.279-0.012-0.524-0.004-0.731,0.024
C21.873,26.896,21.675,26.993,21.476,27.093z M24.142,26.948c0.23,1.057,0.479,1.967,0.746,2.723
c0.8-0.729,1.463-1.399,1.983-2.007C25.841,27.335,24.928,27.096,24.142,26.948z M25.962,13.577c-2.364,0-6.904,7.849-8.45,14.262
c1.052-0.644,2.082-1.224,3.074-1.73l0-0.001l0.019-0.009c0.254-0.258,0.613-0.435,1.072-0.526l0.004-0.002
c0.277-0.13,0.55-0.253,0.818-0.37l-0.001-0.005l0.003-0.001c-0.018-0.105-0.036-0.211-0.053-0.319
c-0.558-3.412-0.37-5.611,0.573-6.722c0.443-0.521,1.056-0.797,1.769-0.797c0.896,0,1.967,0.429,3.195,1.277
C27.597,14.084,26.451,13.577,25.962,13.577z M24.626,25.739c0.893,0.182,1.917,0.464,3.062,0.845
c0.151-0.236,0.267-0.452,0.346-0.646c0.016-0.213,0.032-0.432,0.046-0.652c-0.105-0.076-0.343-0.141-0.71-0.141
C26.695,25.145,25.744,25.353,24.626,25.739z M24.791,18.636c-0.34,0-0.592,0.11-0.793,0.347
c-0.381,0.448-0.924,1.782-0.287,5.686c0.002,0.012,0.005,0.025,0.007,0.038c1.474-0.552,2.728-0.842,3.652-0.842
c0.296,0,0.55,0.029,0.767,0.08c0.031-1.15,0.016-2.367-0.044-3.633C26.746,19.229,25.58,18.636,24.791,18.636z"/>
</g>
</g>
<g id="Layer_10" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M11,30.826v-9.652h1.949v4.286l3.937-4.286h2.621l-3.635,3.759l3.832,5.893h-2.521l-2.653-4.529
l-1.58,1.612v2.917H11z"/>
<path fill="#FFFFFF" d="M23.173,30.826l-3.45-9.652h2.114l2.442,7.143l2.364-7.143h2.067l-3.457,9.652H23.173z"/>
<path fill="#FFFFFF" d="M29.678,30.826v-9.652h2.917l1.75,6.583l1.732-6.583H39v9.652h-1.811v-7.598l-1.915,7.598h-1.877
l-1.91-7.598v7.598H29.678z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M11,29.826v-9.652h1.949v4.286l3.937-4.286h2.621l-3.635,3.759l3.832,5.893h-2.521l-2.653-4.53
l-1.58,1.613v2.917H11z"/>
<path fill="#8C8C94" d="M23.173,29.826l-3.45-9.652h2.114l2.442,7.143l2.364-7.143h2.067l-3.457,9.652H23.173z"/>
<path fill="#8C8C94" d="M29.678,29.826v-9.652h2.917l1.75,6.583l1.732-6.583H39v9.652h-1.811v-7.598l-1.915,7.598h-1.877
l-1.91-7.598v7.598H29.678z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 46 KiB

View File

@ -1,163 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="50px" height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1_1_" display="none">
<g display="inline" opacity="0.55">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.395,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.483,2.36-5.541,4.149-10.152,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.603-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.755,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.01c2.061-0.101,3.846-0.562,5.324-1.311
c2.899-1.463,5.188-3.718,6.451-6.83c0.641-1.572,1.124-3.396,1.02-5.6c-0.195-4.172-1.892-7.002-4.125-9.16
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.018,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#ACACAC" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.395,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.483,2.36-5.541,4.149-10.152,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.603-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.01c2.061-0.101,3.846-0.562,5.324-1.311
c2.899-1.463,5.188-3.718,6.451-6.83c0.641-1.572,1.124-3.396,1.02-5.598c-0.195-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#ACACAC" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.018,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#ACACAC" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g opacity="0.35">
<path fill="#FFFFFF" d="M37.562,16.313l-12.082-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
c-0.005,0-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324
l0.025,0.015c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286
c0,0.004,0,0.009,0,0.013c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.117-0.012,0.234-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.032,0-0.063-0.001-0.098c-0.06,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.267l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.436-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.047c0-0.002-0.001-0.003-0.002-0.004l-0.958-12.054
l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111s0.325-0.037,0.448-0.11l10.441-6.232l0.726-0.433L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.034,5.533c-0.123,0.075-0.224,0.252-0.224,0.395l-0.021,9.268
c0,0.142,0.096,0.188,0.209,0.104l8.426-6.123c0.115-0.084,0.22-0.27,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.667
c0.009,0.142,0.112,0.326,0.229,0.41l8.489,6.209c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g>
<path fill="#8C8C94" d="M37.562,15.313l-12.082-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
c-0.005,0-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324
l0.025,0.015c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286
c0,0.004,0,0.009,0,0.013c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.117-0.012,0.234-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.032,0-0.063-0.001-0.098c-0.06,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.267l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.436-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.047c0-0.002-0.001-0.003-0.002-0.004l-0.958-12.054
l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111s0.325-0.037,0.448-0.11l10.441-6.232l0.726-0.433L35.666,28.549z"/>
<path fill="#8C8C94" d="M35.427,18.699l-9.034,5.533c-0.123,0.075-0.224,0.252-0.224,0.395l-0.021,9.268
c0,0.142,0.096,0.188,0.209,0.104l8.426-6.123c0.115-0.084,0.22-0.27,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#8C8C94" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.667
c0.009,0.142,0.112,0.326,0.229,0.41l8.489,6.209c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
<g id="Layer_4" display="none">
<g display="inline" opacity="0.55">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.096c-0.054-0.029-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.394,1.44,1.394c0.618,0,1.052-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.021-2.775-2.7c0-1.557,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.096z"/>
<path fill="#FFFFFF" d="M16.677,30.096c-0.053-0.029-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.394,1.441,1.394c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.021-2.775-2.7c0-1.557,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.096z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.149,2.699-2.754,2.699s-2.753-1.206-2.753-2.699c0-1.488,1.148-2.697,2.753-2.697
C36.148,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.78,0-1.36,0.614-1.36,1.371c0,0.76,0.58,1.374,1.36,1.374
c0.779,0,1.358-0.614,1.358-1.374C35.904,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.006-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.179-0.816,0.427
c0,0.318,0.387,0.43,0.603,0.499l0.364,0.114c0.854,0.271,1.244,0.855,1.244,1.491c0,1.31-1.152,1.747-2.16,1.747
c-0.701,0-1.355-0.125-1.42-0.141v-1.199c0.117,0.027,0.669,0.191,1.243,0.191c0.653,0,0.956-0.189,0.956-0.484
c0-0.266-0.261-0.418-0.589-0.521c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.522
c0-0.976,0.731-1.632,1.944-1.632c0.641,0,1.244,0.156,1.283,0.166L24.79,29.785L24.79,29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.359,0.294,0.65,0.656,0.65c0.359,0,0.653-0.291,0.653-0.65V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.357,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.291,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.649-0.651c-0.361,0-0.652,0.292-0.652,0.651v6.923
c0,0.359,0.291,0.65,0.652,0.65c0.357,0,0.649-0.291,0.649-0.65V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.356,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.293,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.648-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.357,0,0.648-0.292,0.648-0.654V22.998z"/>
</g>
<g display="inline">
<rect x="18.484" y="27.602" fill="#ACACAC" width="1.316" height="5.213"/>
<path fill="#ACACAC" d="M30.407,29.096c-0.054-0.029-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.394,1.44,1.394c0.618,0,1.052-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.021-2.775-2.7c0-1.557,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.096z"/>
<path fill="#ACACAC" d="M16.677,29.096c-0.053-0.029-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.394,1.441,1.394c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.021-2.775-2.7c0-1.557,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.096z"/>
<path fill="#ACACAC" d="M37.3,30.205c0,1.493-1.149,2.699-2.754,2.699s-2.753-1.206-2.753-2.699c0-1.488,1.148-2.697,2.753-2.697
C36.148,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.78,0-1.36,0.614-1.36,1.371c0,0.76,0.58,1.374,1.36,1.374
c0.779,0,1.358-0.614,1.358-1.374C35.904,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#ACACAC" d="M24.79,28.785c-0.02-0.006-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.179-0.816,0.427
c0,0.318,0.387,0.43,0.603,0.499l0.364,0.114c0.854,0.271,1.244,0.855,1.244,1.491c0,1.31-1.152,1.747-2.16,1.747
c-0.701,0-1.355-0.125-1.42-0.141v-1.199c0.117,0.027,0.669,0.191,1.243,0.191c0.653,0,0.956-0.189,0.956-0.484
c0-0.266-0.261-0.418-0.589-0.521c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166L24.79,28.785L24.79,28.785z"/>
<path fill="#ACACAC" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#ACACAC" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#ACACAC" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#ACACAC" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#ACACAC" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#ACACAC" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.357,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.291,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#ACACAC" d="M32.829,17.745c0-0.359-0.292-0.651-0.649-0.651c-0.361,0-0.652,0.292-0.652,0.651v6.923
c0,0.36,0.291,0.651,0.652,0.651c0.357,0,0.649-0.291,0.649-0.651V17.745z"/>
<path fill="#ACACAC" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.356,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.293,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#ACACAC" d="M40,21.998c0-0.358-0.291-0.65-0.648-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.357,0,0.648-0.292,0.648-0.654V21.998z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

View File

@ -1,185 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.756,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.599c-0.196-4.173-1.892-7.003-4.125-9.161
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.598c-0.196-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#8C8C94" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#8C8C94" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g id="Layer_2" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M37.562,16.313l-12.081-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M37.562,15.313l-12.081-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,28.549z"/>
<path fill="#8C8C94" d="M35.427,18.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#8C8C94" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
</g>
<g id="Layer_4" display="none">
<g display="inline" opacity="0.35">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.095z"/>
<path fill="#FFFFFF" d="M16.677,30.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.095z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V22.998z"/>
</g>
<g display="inline">
<rect x="18.484" y="27.602" fill="#8C8C94" width="1.316" height="5.213"/>
<path fill="#8C8C94" d="M30.407,29.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.095z"/>
<path fill="#8C8C94" d="M16.677,29.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.095z"/>
<path fill="#8C8C94" d="M37.3,30.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#8C8C94" d="M24.79,28.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V28.785z"/>
<path fill="#8C8C94" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#8C8C94" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#8C8C94" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#8C8C94" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#8C8C94" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M32.829,17.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V17.745z"/>
<path fill="#8C8C94" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#8C8C94" d="M40,21.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V21.998z"/>
</g>
</g>
<g id="Layer_5">
<path opacity="0.35" fill="#FFFFFF" d="M13.146,20.878c-0.378-0.826-1.31-1.201-2.18-0.812c-0.873,0.385-1.193,1.352-0.8,2.18
l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9c0,0,3.188-6.94,3.22-7.014
c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79c0,1.048,0.582,1.906,1.697,1.906
c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765c1.047,0,1.741,0.719,1.741,1.765v5.555
c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765
v5.555c0,1.048,0.58,1.906,1.697,1.906c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951
c-2.246,0-3.652,1.553-3.652,1.553c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551
c-0.749-0.968-2.021-1.551-3.076-1.551c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,20.878z"/>
<path fill="#8C8C94" d="M13.146,19.878c-0.378-0.826-1.31-1.201-2.18-0.812c-0.873,0.385-1.193,1.352-0.8,2.18l3.655,7.944
c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9c0,0,3.188-6.94,3.22-7.014c0.033-0.073,0.134-0.297,0.457-0.294
c0.275,0.001,0.507,0.219,0.507,0.512v6.79c0,1.048,0.582,1.906,1.697,1.906c1.116,0,1.72-0.858,1.72-1.906v-5.555
c0-1.07,0.765-1.765,1.812-1.765c1.047,0,1.741,0.719,1.741,1.765v5.555c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906
v-5.555c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765v5.555c0,1.048,0.58,1.906,1.697,1.906
c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951c-2.246,0-3.652,1.553-3.652,1.553
c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551c-0.749-0.968-2.021-1.551-3.076-1.551
c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,19.878z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,254 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="50px"
height="50px" viewBox="0 0 50 50" enable-background="new 0 0 50 50" xml:space="preserve">
<g id="Layer_3" display="none">
<rect display="inline" fill="#6B2000" width="50" height="50"/>
</g>
<g id="Layer_1" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.535,11c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.029
c0.226-4.54,2.003-7.756,4.38-10.141C16.783,12.983,20.041,11.248,24.535,11z M21.595,13.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.599c-0.196-4.173-1.892-7.003-4.125-9.161
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,12.779,22.493,12.91,21.595,13.152z"/>
<path fill="#FFFFFF" d="M23.62,22.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.64,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,23.778,22.324,22.936,23.62,22.104z M16.12,24.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,24.453,16.119,24.475,16.12,24.496z"/>
<path fill="#FFFFFF" d="M32.261,22.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,22.504,32.243,22.482,32.261,22.479z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.535,10c0.311,0,0.62,0,0.93,0c4.523,0.256,7.749,1.979,10.141,4.393
c2.394,2.415,4.158,5.6,4.396,10.156c0,0.301,0,0.602,0,0.902c-0.229,4.63-2.027,7.685-4.396,10.171
c-2.484,2.36-5.541,4.149-10.153,4.378c-0.306,0-0.61,0-0.915,0c-4.523-0.257-7.748-1.979-10.14-4.393
c-2.392-2.416-4.159-5.602-4.396-10.156c0-0.301,0-0.602,0-0.902c0.012-0.004,0.018-0.013,0.016-0.03
c0.226-4.539,2.003-7.757,4.38-10.14C16.783,11.983,20.041,10.248,24.535,10z M21.595,12.152c-0.892,0.238-1.69,0.542-2.415,0.902
c-2.205,1.093-4.022,2.657-5.295,4.664c-1.24,1.957-2.315,4.476-2.16,7.777c0.099,2.082,0.572,3.834,1.32,5.325
c1.478,2.947,3.727,5.121,6.841,6.438c1.538,0.653,3.446,1.111,5.595,1.009c2.061-0.1,3.846-0.562,5.324-1.31
c2.899-1.463,5.187-3.718,6.451-6.83c0.641-1.573,1.124-3.396,1.02-5.598c-0.196-4.174-1.892-7.004-4.125-9.162
c-1.104-1.068-2.437-1.977-4.004-2.633c-1.521-0.637-3.504-1.109-5.625-1.008C23.478,11.779,22.493,11.91,21.595,12.152z"/>
<path fill="#8C8C94" d="M23.62,21.104c0.476,0.315,0.962,0.62,1.41,0.963c-1.013,0.639-2.007,1.297-3.015,1.94
c0.152,0.118,0.326,0.214,0.479,0.331c1.017-0.646,2.033-1.291,3.046-1.941c0.453,0.282,0.899,0.571,1.319,0.889
c-1.017,0.643-1.995,1.319-3,1.971c0.148,0.121,0.332,0.209,0.495,0.316c1.039-0.639,2.053-1.303,3.074-1.957
c0-0.711,0-1.424,0-2.136c0.75,0,1.5,0,2.25,0c0,1.419,0,2.839,0,4.258c0.637,0.033,1.336,0.005,1.996,0.015
c0,0.668,0,1.334,0,2.001c-1.416,0-2.83,0-4.246,0c0-0.677,0-1.354,0-2.029c-1.246,0.76-2.525,1.618-3.779,2.422
c-1.307-0.852-2.566-1.75-3.87-2.604c-0.378,1.201-1.275,2.104-2.76,2.212c-0.927,0.065-1.979-0.05-3.045,0
c0-2.091,0-4.183,0-6.273c1.333,0.089,2.797-0.179,3.854,0.149c0.935,0.292,1.598,1.041,1.905,1.973
C21.041,22.778,22.324,21.936,23.62,21.104z M16.12,23.496c0,0.752,0,1.504,0,2.256c0.536,0.003,0.943,0.034,1.26-0.211
c0.471-0.363,0.565-1.265,0.15-1.744c-0.277-0.321-0.746-0.389-1.396-0.347C16.118,23.453,16.119,23.475,16.12,23.496z"/>
<path fill="#8C8C94" d="M32.261,21.479c0.75,0,1.5,0,2.25,0c0,1.425,0,2.849,0,4.272c0.659,0,1.319,0,1.979,0
c0,0.668,0,1.334,0,2.001c-1.415,0-2.83,0-4.245,0c0-2.075,0-4.151,0-6.229C32.244,21.504,32.243,21.482,32.261,21.479z"/>
</g>
</g>
<g id="Layer_2" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M37.562,16.313l-12.081-5.229C25.35,11.028,25.178,11,25.006,11c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,16.752,37.823,16.428,37.562,16.313z M24.975,12.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,12.994z
M35.666,29.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,29.549z"/>
<path fill="#FFFFFF" d="M35.427,19.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,19.679,35.548,19.624,35.427,19.699z"/>
<path fill="#FFFFFF" d="M23.676,25.274L14.642,19.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,25.527,23.797,25.35,23.676,25.274z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M37.562,15.313l-12.081-5.229C25.35,10.028,25.178,10,25.006,10c-0.005,0-0.011,0-0.016,0
s-0.011,0-0.017,0c-0.176,0-0.351,0.029-0.483,0.088l-4.673,2.058l-7.41,3.262c-0.14,0.062-0.26,0.182-0.34,0.324l0.025,0.015
c-0.065,0.122-0.1,0.259-0.09,0.386l1,12.581c0.023,0.283,0.228,0.656,0.457,0.828l4.367,3.286c0,0.004,0,0.009,0,0.013
c0,0.119,0.004,0.236,0.012,0.354c-0.008,0.118-0.012,0.235-0.012,0.354c0,3.562,3.286,6.451,7.339,6.451
c4.052,0,7.337-2.889,7.337-6.451c0-0.119-0.003-0.236-0.011-0.354c0.008-0.118,0.011-0.235,0.011-0.354
c0-0.033,0-0.064-0.001-0.098c-0.059,3.519-3.319,6.354-7.336,6.354c-3.983,0-7.224-2.789-7.335-6.266l6.754,5.082
c0.114,0.086,0.265,0.129,0.416,0.129c0.152,0,0.303-0.043,0.417-0.129l11.093-8.371c0.229-0.172,0.435-0.545,0.457-0.828
l1.031-12.678C38.021,15.752,37.823,15.428,37.562,15.313z M24.975,11.994l8.994,3.893l-8.941,5.336l-8.909-5.33L24.975,11.994z
M35.666,28.549c-0.001,0.002-0.001,0.004-0.003,0.006l-10.664,8.047l-10.694-8.048c0-0.001-0.001-0.002-0.002-0.003
l-0.958-12.054l0.656,0.392l10.577,6.33c0.123,0.074,0.285,0.111,0.448,0.111c0.163,0,0.325-0.037,0.448-0.11l10.441-6.232
l0.725-0.433L35.666,28.549z"/>
<path fill="#8C8C94" d="M35.427,18.699l-9.035,5.533c-0.122,0.075-0.223,0.252-0.223,0.395l-0.021,9.267
c0,0.142,0.096,0.188,0.21,0.104l8.425-6.123c0.116-0.084,0.22-0.269,0.229-0.41l0.619-8.645
C35.641,18.679,35.548,18.624,35.427,18.699z"/>
<path fill="#8C8C94" d="M23.676,24.274L14.642,18.7c-0.124-0.075-0.215-0.021-0.206,0.12l0.577,8.666
c0.009,0.142,0.112,0.326,0.229,0.411l8.489,6.208c0.115,0.084,0.211,0.037,0.21-0.104l-0.042-9.332
C23.898,24.527,23.797,24.35,23.676,24.274z"/>
</g>
</g>
<g id="Layer_4" display="none">
<g display="inline" opacity="0.35">
<rect x="18.484" y="28.602" fill="#FFFFFF" width="1.316" height="5.213"/>
<path fill="#FFFFFF" d="M30.407,30.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V30.095z"/>
<path fill="#FFFFFF" d="M16.677,30.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V30.095z"/>
<path fill="#FFFFFF" d="M37.3,31.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,28.508,37.3,29.717,37.3,31.205z M34.546,29.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,30.448,35.325,29.834,34.546,29.834z"/>
<path fill="#FFFFFF" d="M24.79,29.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V29.785z"/>
<path fill="#FFFFFF" d="M11.307,22.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V22.998z"/>
<path fill="#FFFFFF" d="M14.894,21.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.202z"/>
<path fill="#FFFFFF" d="M18.482,18.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V18.745z"/>
<path fill="#FFFFFF" d="M22.067,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M25.652,22.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V22.998z"/>
<path fill="#FFFFFF" d="M29.241,21.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V21.202z"/>
<path fill="#FFFFFF" d="M32.829,18.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V18.745z"/>
<path fill="#FFFFFF" d="M36.418,21.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V21.202z"/>
<path fill="#FFFFFF" d="M40,22.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V22.998z"/>
</g>
<g display="inline">
<rect x="18.484" y="27.602" fill="#8C8C94" width="1.316" height="5.213"/>
<path fill="#8C8C94" d="M30.407,29.095c-0.054-0.028-0.478-0.279-1.107-0.279c-0.849,0-1.44,0.593-1.44,1.39
c0,0.776,0.566,1.393,1.44,1.393c0.618,0,1.051-0.244,1.107-0.276v1.399c-0.167,0.047-0.614,0.185-1.2,0.185
c-1.479,0-2.775-1.02-2.775-2.7c0-1.556,1.174-2.697,2.775-2.697c0.62,0,1.076,0.15,1.2,0.188V29.095z"/>
<path fill="#8C8C94" d="M16.677,29.095c-0.053-0.028-0.476-0.279-1.106-0.279c-0.852,0-1.441,0.593-1.441,1.39
c0,0.776,0.564,1.393,1.441,1.393c0.619,0,1.047-0.244,1.106-0.276v1.399c-0.165,0.047-0.613,0.185-1.201,0.185
c-1.478,0-2.775-1.02-2.775-2.7c0-1.556,1.175-2.697,2.775-2.697c0.619,0,1.076,0.15,1.201,0.188V29.095z"/>
<path fill="#8C8C94" d="M37.3,30.205c0,1.493-1.15,2.7-2.754,2.7c-1.604,0-2.753-1.207-2.753-2.7c0-1.488,1.148-2.697,2.753-2.697
C36.149,27.508,37.3,28.717,37.3,30.205z M34.546,28.834c-0.781,0-1.361,0.614-1.361,1.371c0,0.76,0.58,1.374,1.361,1.374
c0.779,0,1.359-0.614,1.359-1.374C35.905,29.448,35.325,28.834,34.546,28.834z"/>
<path fill="#8C8C94" d="M24.79,28.785c-0.02-0.005-0.574-0.159-1.027-0.159c-0.53,0-0.816,0.178-0.816,0.427
c0,0.318,0.387,0.429,0.603,0.499l0.364,0.114c0.854,0.272,1.244,0.855,1.244,1.491c0,1.31-1.152,1.748-2.16,1.748
c-0.701,0-1.355-0.126-1.42-0.141v-1.2c0.117,0.028,0.669,0.192,1.243,0.192c0.653,0,0.956-0.189,0.956-0.485
c0-0.265-0.261-0.417-0.589-0.52c-0.079-0.026-0.199-0.063-0.28-0.092c-0.734-0.229-1.344-0.661-1.344-1.523
c0-0.975,0.731-1.631,1.944-1.631c0.641,0,1.244,0.156,1.283,0.166V28.785z"/>
<path fill="#8C8C94" d="M11.307,21.998c0-0.358-0.294-0.65-0.654-0.65c-0.359,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V21.998z"/>
<path fill="#8C8C94" d="M14.894,20.202c0-0.358-0.294-0.651-0.654-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.36,0,0.654-0.292,0.654-0.654V20.202z"/>
<path fill="#8C8C94" d="M18.482,17.745c0-0.359-0.294-0.651-0.653-0.651c-0.362,0-0.656,0.292-0.656,0.651v6.923
c0,0.36,0.294,0.651,0.656,0.651c0.359,0,0.653-0.291,0.653-0.651V17.745z"/>
<path fill="#8C8C94" d="M22.067,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.653,0.293-0.653,0.651v3.165
c0,0.362,0.294,0.654,0.653,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M25.652,21.998c0-0.358-0.294-0.65-0.649-0.65c-0.362,0-0.653,0.292-0.653,0.65v1.369
c0,0.362,0.291,0.654,0.653,0.654c0.355,0,0.649-0.292,0.649-0.654V21.998z"/>
<path fill="#8C8C94" d="M29.241,20.202c0-0.358-0.291-0.651-0.653-0.651c-0.358,0-0.648,0.293-0.648,0.651v3.165
c0,0.362,0.29,0.654,0.648,0.654c0.362,0,0.653-0.292,0.653-0.654V20.202z"/>
<path fill="#8C8C94" d="M32.829,17.745c0-0.359-0.292-0.651-0.65-0.651c-0.36,0-0.651,0.292-0.651,0.651v6.923
c0,0.36,0.291,0.651,0.651,0.651c0.358,0,0.65-0.291,0.65-0.651V17.745z"/>
<path fill="#8C8C94" d="M36.418,20.202c0-0.358-0.291-0.651-0.659-0.651c-0.357,0-0.649,0.293-0.649,0.651v3.165
c0,0.362,0.292,0.654,0.649,0.654c0.368,0,0.659-0.292,0.659-0.654V20.202z"/>
<path fill="#8C8C94" d="M40,21.998c0-0.358-0.291-0.65-0.649-0.65c-0.36,0-0.652,0.292-0.652,0.65v1.369
c0,0.362,0.292,0.654,0.652,0.654c0.358,0,0.649-0.292,0.649-0.654V21.998z"/>
</g>
</g>
<g id="Layer_5" display="none">
<path display="inline" opacity="0.35" fill="#FFFFFF" d="M13.146,20.878c-0.378-0.826-1.31-1.201-2.18-0.812
c-0.873,0.385-1.193,1.352-0.8,2.18l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9
c0,0,3.188-6.94,3.22-7.014c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79
c0,1.048,0.582,1.906,1.697,1.906c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765
c1.047,0,1.741,0.719,1.741,1.765v5.555c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555
c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765v5.555c0,1.048,0.58,1.906,1.697,1.906
c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951c-2.246,0-3.652,1.553-3.652,1.553
c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551c-0.749-0.968-2.021-1.551-3.076-1.551
c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,20.878z"/>
<path display="inline" fill="#8C8C94" d="M13.146,19.878c-0.378-0.826-1.31-1.201-2.18-0.812c-0.873,0.385-1.193,1.352-0.8,2.18
l3.655,7.944c0.576,1.242,1.182,1.9,2.317,1.9c1.215,0,1.745-0.714,2.318-1.9c0,0,3.188-6.94,3.22-7.014
c0.033-0.073,0.134-0.297,0.457-0.294c0.275,0.001,0.507,0.219,0.507,0.512v6.79c0,1.048,0.582,1.906,1.697,1.906
c1.116,0,1.72-0.858,1.72-1.906v-5.555c0-1.07,0.765-1.765,1.812-1.765c1.047,0,1.741,0.719,1.741,1.765v5.555
c0,1.048,0.581,1.906,1.696,1.906s1.722-0.858,1.722-1.906v-5.555c0-1.07,0.766-1.765,1.812-1.765c1.046,0,1.742,0.719,1.742,1.765
v5.555c0,1.048,0.58,1.906,1.697,1.906c1.114,0,1.72-0.858,1.72-1.906v-6.322c0-2.324-1.869-3.951-4.113-3.951
c-2.246,0-3.652,1.553-3.652,1.553c-0.75-0.968-1.78-1.551-3.522-1.551c-1.839,0-3.449,1.551-3.449,1.551
c-0.749-0.968-2.021-1.551-3.076-1.551c-1.628,0-2.924,0.716-3.715,2.524l-2.333,5.499L13.146,19.878z"/>
</g>
<g id="Layer_6" display="none">
<g display="inline" opacity="0.35">
<path fill="#FFFFFF" d="M24.999,12c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,14.936,11,20.031,11,26c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,19.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,39.998,24.934,40,24.999,40
C32.732,40,39,33.732,39,26C39,18.268,32.732,12,24.999,12z"/>
<path fill="#FFFFFF" d="M29.656,30.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,30.317z"/>
</g>
<g display="inline">
<path fill="#8C8C94" d="M24.999,11c-0.446,0-0.889,0.022-1.326,0.063l-2.538,7.166c-0.061,0.17,0.039,0.312,0.222,0.312h1.314
c0.184,0,0.54,0.007,1.228,0.007c0.689,0,2.193,0.859,1.669,2.589c-0.526,1.729-3.391,9.603-3.391,9.603
c-0.062,0.17-0.262,0.311-0.446,0.311h-2.77c-0.184,0-0.286-0.142-0.224-0.312l3.222-9.062l0.347-0.984
c0,0,0.071-0.422-0.393-0.422l-1.14-0.001c-0.185,0-0.384,0.141-0.445,0.31l-3.632,10.159c-0.06,0.171-0.261,0.31-0.443,0.31
l-2.655-0.002c-0.184,0-0.283-0.141-0.224-0.312l6.621-18.812C14.735,13.936,11,19.031,11,25c0,6.564,4.518,12.072,10.615,13.587
l3.082-8.841L28.513,18.8l0,0l0.108-0.312l5.439,0.003c1.636,0.002,3.331,0.871,2.453,3.245l-0.11,0.31
c0,0.002,0,0.002-0.002,0.002l-0.998,2.802l-1.409,3.948c-0.468,1.33-0.877,2.257-3.335,2.256h-0.33c-0.001,0-0.003,0-0.003,0
l-1.203-0.001l-1.206-0.001c-0.184,0-0.382,0.139-0.441,0.309l-1.631,4.668l-1.039,2.969C24.871,38.998,24.934,39,24.999,39
C32.732,39,39,32.732,39,25C39,17.268,32.732,11,24.999,11z"/>
<path fill="#8C8C94" d="M29.656,29.317h0.01c0.585,0,0.88-0.638,0.937-0.984c0.06-0.349,2.521-7.238,2.521-7.238
c0.174-0.462-0.043-0.649-0.043-0.649c-0.139-0.12-0.4-0.218-0.586-0.218l-0.396,0h-0.397c-0.184,0-0.383,0.14-0.442,0.311
l-2.959,8.465c-0.06,0.171,0.041,0.312,0.225,0.312L29.656,29.317z"/>
</g>
</g>
<g id="Layer_7">
<g opacity="0.35">
<g>
<path fill="#FFFFFF" d="M17.232,34.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,30.213,9.102,28.171,9.102,26
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,33.284,19.403,34.131,17.232,34.131z
M17.232,18.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,22.15,9.801,24.016,9.801,26c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,19.342,19.217,18.569,17.232,18.569z"/>
</g>
<path fill="#FFFFFF" d="M28.412,26.061c0.168-0.721-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,27.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#FFFFFF" d="M32.588,26.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.331h-3.594l0.697-2.987
c0.192-0.82-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.465-1.482,1.321l-0.651,2.776h-3.594L32.588,26.083z"/>
<polygon fill="#FFFFFF" points="14.989,26.189 11.143,21.449 15.856,21.458 17.897,24.22 21.292,21.449 26.747,21.449
19.938,26.677 23.767,31.605 19.017,31.605 17.066,28.735 13.437,31.605 8,31.605 "/>
</g>
<g>
<g>
<path fill="#8C8C94" d="M17.232,33.131c-2.171,0-4.213-0.847-5.749-2.382C9.947,29.213,9.102,27.171,9.102,25
c0-2.171,0.846-4.213,2.381-5.749c1.536-1.536,3.578-2.381,5.749-2.381s4.213,0.845,5.749,2.381
c1.536,1.536,2.381,3.578,2.381,5.749c0,2.171-0.846,4.213-2.381,5.749C21.445,32.284,19.403,33.131,17.232,33.131z
M17.232,17.569c-1.984,0-3.851,0.773-5.255,2.177C10.574,21.15,9.801,23.016,9.801,25c0,1.985,0.773,3.851,2.176,5.256
c1.404,1.402,3.271,2.176,5.255,2.176c1.985,0,3.852-0.773,5.255-2.176c1.403-1.405,2.175-3.271,2.175-5.256
c0-1.986-0.772-3.85-2.175-5.254C21.083,18.342,19.217,17.569,17.232,17.569z"/>
</g>
<path fill="#8C8C94" d="M28.412,25.061c0.168-0.722-0.099-1.2-0.917-1.2c-0.771,0-1.308,0.467-1.479,1.2H28.412z M25.767,26.126
c-0.223,0.945,0.092,1.378,0.913,1.378c0.695,0,1.045-0.289,1.226-0.645h3.521c-0.329,0.935-1.797,1.822-4.962,1.822
c-2.874,0-4.619-0.855-4.125-2.965c0.507-2.167,2.715-3.032,5.429-3.032c2.349,0,4.562,0.677,3.983,3.142l-0.069,0.3H25.767z"/>
<path fill="#8C8C94" d="M32.588,25.083c0.174-0.744,0.333-1.478,0.438-2.188h3.546l-0.18,0.978h0.024
c0.772-0.79,1.831-1.188,3.077-1.188c1.102,0,2.918,0.332,2.421,2.454l-0.778,3.332h-3.594l0.697-2.987
c0.192-0.821-0.095-1.11-0.718-1.11c-0.831,0-1.283,0.466-1.482,1.321l-0.651,2.776h-3.594L32.588,25.083z"/>
<polygon fill="#8C8C94" points="14.989,25.189 11.143,20.449 15.856,20.458 17.897,23.22 21.292,20.449 26.747,20.449
19.938,25.677 23.767,30.605 19.017,30.605 17.066,27.735 13.437,30.605 8,30.605 "/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="28px" height="50px" viewBox="0 0 28 50" enable-background="new 0 0 28 50" xml:space="preserve">
<polygon fill="#FFFFFF" points="19,34 9,24.5 19,15 "/>
</svg>

Before

Width:  |  Height:  |  Size: 533 B

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="28px" height="50px" viewBox="0 0 28 50" enable-background="new 0 0 28 50" xml:space="preserve">
<polygon fill="#FFFFFF" points="9,34 19,24.5 9,15 "/>
</svg>

Before

Width:  |  Height:  |  Size: 532 B

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 94 KiB

View File

@ -1,82 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.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="66px" height="44px" viewBox="0 0 66 44" enable-background="new 0 0 66 44" xml:space="preserve">
<g>
<path fill="#EDEDED" d="M4,20.5c-1.378,0-2.5-1.121-2.5-2.5V4c0-1.378,1.122-2.5,2.5-2.5h14c1.379,0,2.5,1.122,2.5,2.5v14
c0,1.379-1.121,2.5-2.5,2.5H4z"/>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="315" y1="-235.5" x2="315" y2="-216.5" gradientTransform="matrix(1 0 0 -1 -304 -215)">
<stop offset="0" style="stop-color:#ECEDEE;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D1D2D3"/>
</linearGradient>
<path fill="url(#SVGID_1_)" d="M4,20.5c-1.378,0-2.5-1.121-2.5-2.5V4c0-1.378,1.122-2.5,2.5-2.5h14c1.379,0,2.5,1.122,2.5,2.5v14
c0,1.379-1.121,2.5-2.5,2.5H4z"/>
<path fill="#AFAFAF" d="M18,2c1.104,0,2,0.897,2,2v14c0,1.104-0.896,2-2,2H4c-1.103,0-2-0.896-2-2V4c0-1.103,0.897-2,2-2H18 M18,1
H4C2.35,1,1,2.35,1,4v14c0,1.65,1.35,3,3,3h14c1.65,0,3-1.35,3-3V4C21,2.35,19.65,1,18,1L18,1z"/>
<path opacity="0.4" fill="#FFFFFF" enable-background="new " d="M18,21H4c-1.65,0-3-1.35-3-3v1c0,1.65,1.35,3,3,3h14
c1.65,0,3-1.35,3-3v-1C21,19.65,19.65,21,18,21z"/>
</g>
<g>
<path fill="#EDEDED" d="M26,20.5c-1.378,0-2.5-1.121-2.5-2.5V4c0-1.378,1.122-2.5,2.5-2.5h14c1.379,0,2.5,1.122,2.5,2.5v14
c0,1.379-1.121,2.5-2.5,2.5H26z"/>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="337" y1="-235.5" x2="337" y2="-216.5" gradientTransform="matrix(1 0 0 -1 -304 -215)">
<stop offset="0" style="stop-color:#ECEDEE;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D1D2D3"/>
</linearGradient>
<path fill="url(#SVGID_2_)" d="M26,20.5c-1.378,0-2.5-1.121-2.5-2.5V4c0-1.378,1.122-2.5,2.5-2.5h14c1.379,0,2.5,1.122,2.5,2.5v14
c0,1.379-1.121,2.5-2.5,2.5H26z"/>
<path fill="#AFAFAF" d="M40,2c1.104,0,2,0.897,2,2v14c0,1.104-0.896,2-2,2H26c-1.103,0-2-0.896-2-2V4c0-1.103,0.897-2,2-2H40 M40,1
H26c-1.65,0-3,1.35-3,3v14c0,1.65,1.35,3,3,3h14c1.65,0,3-1.35,3-3V4C43,2.35,41.65,1,40,1L40,1z"/>
<path opacity="0.4" fill="#FFFFFF" enable-background="new " d="M40,21H26c-1.65,0-3-1.35-3-3v1c0,1.65,1.35,3,3,3h14
c1.65,0,3-1.35,3-3v-1C43,19.65,41.65,21,40,21z"/>
<polygon opacity="0.5" fill="#FFFFFF" enable-background="new " points="37.316,7.562 31.5,13.379 28.684,10.562 25.439,10.562
25.439,11.561 31.5,17.621 40.561,8.561 40.561,7.562 "/>
<g>
<polygon fill="#333333" points="31.5,16.591 25.439,10.53 27.561,8.409 31.5,12.35 38.439,5.409 40.561,7.53 "/>
</g>
</g>
<g>
<path fill="#EDEDED" d="M48,20.5c-1.378,0-2.5-1.121-2.5-2.5V4c0-1.378,1.122-2.5,2.5-2.5h14c1.379,0,2.5,1.122,2.5,2.5v14
c0,1.379-1.121,2.5-2.5,2.5H48z"/>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="654" y1="732.5" x2="654" y2="713.5" gradientTransform="matrix(1 0 0 1 -599 -712)">
<stop offset="0" style="stop-color:#ECEDEE;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D1D2D3"/>
</linearGradient>
<path fill="url(#SVGID_3_)" d="M48,20.5c-1.378,0-2.5-1.121-2.5-2.5V4c0-1.378,1.122-2.5,2.5-2.5h14c1.379,0,2.5,1.122,2.5,2.5v14
c0,1.379-1.121,2.5-2.5,2.5H48z"/>
<path fill="#AFAFAF" d="M62,2c1.104,0,2,0.897,2,2v14c0,1.104-0.896,2-2,2H48c-1.104,0-2-0.896-2-2V4c0-1.103,0.896-2,2-2H62 M62,1
H48c-1.65,0-3,1.35-3,3v14c0,1.65,1.35,3,3,3h14c1.65,0,3-1.35,3-3V4C65,2.35,63.65,1,62,1L62,1z"/>
<path opacity="0.4" fill="#FFFFFF" enable-background="new " d="M62,21H48c-1.65,0-3-1.35-3-3v1c0,1.65,1.35,3,3,3h14
c1.65,0,3-1.35,3-3v-1C65,19.65,63.65,21,62,21z"/>
<rect x="49" y="9" fill="#333333" width="12" height="3"/>
<rect x="49" y="12" opacity="0.5" fill="#FFFFFF" enable-background="new " width="12" height="1"/>
</g>
<g>
<circle opacity="0.4" fill="#FFFFFF" enable-background="new " cx="11" cy="34" r="10"/>
<circle fill="#AFAFAF" cx="11" cy="33" r="10"/>
<circle fill="#EDEDED" cx="11" cy="33" r="9"/>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="609.999" y1="755" x2="609.999" y2="737" gradientTransform="matrix(1 0 0 1 -599 -713)">
<stop offset="0" style="stop-color:#ECEDEE;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D1D2D3"/>
</linearGradient>
<circle fill="url(#SVGID_4_)" cx="11" cy="33" r="9"/>
</g>
<g>
<circle opacity="0.4" fill="#FFFFFF" enable-background="new " cx="33" cy="34" r="10"/>
<circle fill="#AFAFAF" cx="33" cy="33" r="10"/>
<circle fill="#EDEDED" cx="33" cy="33" r="9"/>
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="337" y1="-256.9995" x2="337" y2="-238.9995" gradientTransform="matrix(1 0 0 -1 -304 -215)">
<stop offset="0" style="stop-color:#ECEDEE;stop-opacity:0"/>
<stop offset="1" style="stop-color:#D1D2D3"/>
</linearGradient>
<circle fill="url(#SVGID_5_)" cx="33" cy="33" r="9"/>
<circle opacity="0.5" fill="#FFFFFF" enable-background="new " cx="33" cy="34" r="4"/>
<circle fill="#333333" cx="33" cy="33" r="4"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.2 KiB

View File

@ -1,82 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="theme-color" content="#394c59">
<meta name="description" content="">
<meta name="author" content="">
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="pragma" content="no-cache" />
<link rel="shortcut icon" href="static/favicon.ico" type="image/x-icon">
<link rel="stylesheet" type="text/css" href="static/styles/layout.css">
<script type="text/javascript">
(function() {
'use strict';
var mainContainer, loadingErrors = [];
function showError(error) {
if (error) loadingErrors.push(error);
if (mainContainer && loadingErrors.length) mainContainer.textContent = loadingErrors.join('; ');
}
function loadScript(src, errorMessage) {
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = src;
script.onerror = showError.bind(null, errorMessage);
document.head.appendChild(script);
}
document.addEventListener('DOMContentLoaded', function() {
mainContainer = document.getElementById('main-container');
mainContainer.style.display = 'block';
showError();
});
// checks code taken from https://github.com/Modernizr/Modernizr
var hasCookies = (function() {
try {
document.cookie = 'cookietest=1';
var ret = document.cookie.indexOf('cookietest=') != -1;
document.cookie = 'cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT';
return ret;
} catch (e) {
return false;
}
}());
var hasStorage = (function() {
try {
localStorage.setItem('storagetest', 'storagetest');
localStorage.removeItem('storagetest');
return true;
} catch (e) {
return false;
}
}());
if (hasCookies && hasStorage) {
loadScript(
'static/build/bundle.js?__CACHE_BUST__',
'Failed to load compressed Fuel UI bundle. ' +
'If you are using development environment, ' +
'please run "gulp build" to compile Fuel UI.'
);
} else {
showError('Fuel UI requires Cookies and LocalStorage to work');
}
}());
</script>
</head>
<body>
<div id="main-container">
<div class="loading"></div>
</div>
<div id="modal-container"></div>
<noscript>Fuel UI requires JavaScript to work</noscript>
</body>
</html>

View File

@ -1,128 +0,0 @@
/*
* Copyright 2014 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import $ from 'jquery';
import _ from 'underscore';
import Cookies from 'js-cookie';
class KeystoneClient {
constructor(url, options) {
this.DEFAULT_PASSWORD = 'admin';
_.extend(this, {
url: url,
cacheTokenFor: 10 * 60 * 1000
}, options);
}
authenticate(username, password, options = {}) {
if (this.tokenUpdateRequest) return this.tokenUpdateRequest;
if (
!options.force &&
this.tokenUpdateTime &&
(this.cacheTokenFor > (new Date() - this.tokenUpdateTime))
) {
return $.Deferred().resolve();
}
var data = {auth: {}};
if (username && password) {
data.auth.passwordCredentials = {
username: username,
password: password
};
} else if (this.token) {
data.auth.token = {id: this.token};
} else {
return $.Deferred().reject();
}
if (this.tenant) {
data.auth.tenantName = this.tenant;
}
this.tokenUpdateRequest = $.ajax(this.url + '/v2.0/tokens', {
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(data)
}).then((result, state, deferred) => {
try {
this.userId = result.access.user.id;
this.token = result.access.token.id;
this.tokenUpdateTime = new Date();
Cookies.set('token', result.access.token.id);
return deferred;
} catch (e) {
return $.Deferred().reject();
}
})
.fail(() => delete this.tokenUpdateTime)
.always(() => delete this.tokenUpdateRequest);
return this.tokenUpdateRequest;
}
changePassword(currentPassword, newPassword) {
var data = {
user: {
password: newPassword,
original_password: currentPassword
}
};
return $.ajax(this.url + '/v2.0/OS-KSCRUD/users/' + this.userId, {
type: 'PATCH',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(data),
headers: {'X-Auth-Token': this.token}
}).then((result, state, deferred) => {
try {
this.token = result.access.token.id;
this.tokenUpdateTime = new Date();
Cookies.set('token', result.access.token.id);
return deferred;
} catch (e) {
return $.Deferred().reject();
}
});
}
deauthenticate() {
var token = this.token;
if (this.tokenUpdateRequest) return this.tokenUpdateRequest;
if (!token) return $.Deferred().reject();
delete this.userId;
delete this.token;
delete this.tokenUpdateTime;
Cookies.remove('token');
this.tokenRemoveRequest = $.ajax(this.url + '/v2.0/tokens/' + token, {
type: 'DELETE',
dataType: 'json',
contentType: 'application/json',
headers: {'X-Auth-Token': token}
})
.always(() => delete this.tokenRemoveRequest);
return this.tokenRemoveRequest;
}
}
export default KeystoneClient;

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 829 B

View File

@ -1,23 +0,0 @@
.vmware-tab {
.nova-compute {
h4 .btn-group {
margin-right: 10px;
.btn-link {
padding: 0;
}
}
}
.glyphicon {
margin-left: 3px;
}
.alert {
margin-left: 10px;
margin-right: 10px;
.unassigned-node-list {
list-style: none;
}
.unassigned-node-name {
font-weight: bold;
}
}
}

View File

@ -1,28 +0,0 @@
{
"en-US": {
"translation": {
"cluster_page": {
"tabs": {
"vmware": "VMware"
}
},
"vmware": {
"title": "VMware vCenter Settings",
"availability_zones": "vCenter",
"network": "Network",
"glance": "Glance",
"cinder": "Cinder",
"reset_to_defaults": "Load Defaults",
"cancel": "Cancel Changes",
"apply": "Save Changes",
"nova_computes": "Nova Computes",
"nova_compute": "Nova Compute Instance",
"has_errors": "VMware settings are invalid. For more information please visit the",
"tab_name": "VMware tab",
"duplicate_value": "Duplicate values are not allowed",
"unassigned_nodes": "The following compute-vmware nodes are not assigned to any vCenter cluster:",
"invalid_target_node" : "Invalid target node"
}
}
}
}

View File

@ -1,24 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import VmWareTab from 'plugins/vmware/vmware_tab';
import VmWareModels from 'plugins/vmware/vmware_models';
import translations from 'plugins/vmware/translations.json';
import i18n from 'i18n';
import './styles.less';
i18n.addTranslations(translations);
export {VmWareTab, VmWareModels};

View File

@ -1,308 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import _ from 'underscore';
import i18n from 'i18n';
import Backbone from 'backbone';
import models from 'models';
var VmWareModels = {};
VmWareModels.isRegularField = (field) => {
return _.contains(['text', 'password', 'checkbox', 'select'], field.type);
};
// models for testing restrictions
var restrictionModels = {};
// Test regex using regex cache
var regexCache = {};
function testRegex(regexText, value) {
if (!regexCache[regexText]) {
regexCache[regexText] = new RegExp(regexText);
}
return regexCache[regexText].test(value);
}
var BaseModel = Backbone.Model
.extend(models.superMixin)
.extend(models.cacheMixin)
.extend(models.restrictionMixin)
.extend({
constructorName: 'BaseModel',
cacheFor: 60 * 1000,
toJSON() {
return _.omit(this.attributes, 'metadata');
},
validate() {
var result = {};
_.each(this.attributes.metadata, (field) => {
if (!VmWareModels.isRegularField(field) || field.type === 'checkbox') {
return;
}
var isDisabled = this.checkRestrictions(restrictionModels, undefined, field);
if (isDisabled.result) {
return;
}
var value = this.get(field.name);
if (field.regex) {
if (!testRegex(field.regex.source, value)) {
result[field.name] = field.regex.error;
}
}
});
return _.isEmpty(result) ? null : result;
},
testRestrictions() {
var results = {
hide: {},
disable: {}
};
var metadata = this.get('metadata');
_.each(metadata, (field) => {
var disableResult = this.checkRestrictions(restrictionModels, undefined, field);
results.disable[field.name] = disableResult;
var hideResult = this.checkRestrictions(restrictionModels, 'hide', field);
results.hide[field.name] = hideResult;
});
return results;
}
});
var BaseCollection = Backbone.Collection
.extend(models.superMixin)
.extend(models.cacheMixin)
.extend({
constructorName: 'BaseCollection',
model: BaseModel,
cacheFor: 60 * 1000,
isValid() {
this.validationError = this.validate();
return this.validationError;
},
validate() {
var errors = _.compact(this.models.map((model) => {
model.isValid();
return model.validationError;
}));
return _.isEmpty(errors) ? null : errors;
},
testRestrictions() {
_.invoke(this.models, 'testRestrictions', restrictionModels);
}
});
VmWareModels.NovaCompute = BaseModel.extend({
constructorName: 'NovaCompute',
checkEmptyTargetNode() {
var targetNode = this.get('target_node');
if (targetNode.current && targetNode.current.id === 'invalid') {
this.validationError = this.validationError || {};
this.validationError.target_node = i18n('vmware.invalid_target_node');
}
},
checkDuplicateField(keys, fieldName) {
/*jshint validthis:true */
var fieldValue = this.get(fieldName);
if (fieldValue.length > 0 && keys[fieldName] && keys[fieldName][fieldValue]) {
this.validationError = this.validationError || {};
this.validationError[fieldName] = i18n('vmware.duplicate_value');
}
keys[fieldName] = keys[fieldName] || {};
keys[fieldName][fieldValue] = true;
},
checkDuplicates(keys) {
this.checkDuplicateField(keys, 'vsphere_cluster');
this.checkDuplicateField(keys, 'service_name');
var targetNode = this.get('target_node') || {};
if (targetNode.current) {
if (targetNode.current.id && targetNode.current.id !== 'controllers' &&
keys.target_node && keys.target_node[targetNode.current.id]) {
this.validationError = this.validationError || {};
this.validationError.target_node = i18n('vmware.duplicate_value');
}
keys.target_node = keys.target_node || {};
keys.target_node[targetNode.current.id] = true;
}
}
});
var NovaComputes = BaseCollection.extend({
constructorName: 'NovaComputes',
model: VmWareModels.NovaCompute,
validate() {
this._super('validate', arguments);
var keys = {vsphere_clusters: {}, service_names: {}};
this.invoke('checkDuplicates', keys);
this.invoke('checkEmptyTargetNode');
var errors = _.compact(_.pluck(this.models, 'validationError'));
return _.isEmpty(errors) ? null : errors;
}
});
var AvailabilityZone = BaseModel.extend({
constructorName: 'AvailabilityZone',
constructor(data) {
Backbone.Model.apply(this, arguments);
if (data) {
this.set(this.parse(data));
}
},
parse(response) {
var result = {};
var metadata = response.metadata;
result.metadata = metadata;
// regular fields
_.each(metadata, (field) => {
if (VmWareModels.isRegularField(field)) {
result[field.name] = response[field.name];
}
}, this);
// nova_computes
var novaMetadata = _.find(metadata, {name: 'nova_computes'});
var novaValues = _.clone(response.nova_computes);
novaValues = _.map(novaValues, (value) => {
value.metadata = novaMetadata.fields;
return new VmWareModels.NovaCompute(value);
});
result.nova_computes = new NovaComputes(novaValues);
return result;
},
toJSON() {
var result = _.omit(this.attributes, 'metadata', 'nova_computes');
result.nova_computes = this.get('nova_computes').toJSON();
return result;
},
validate() {
var errors = _.merge({}, BaseModel.prototype.validate.call(this));
var novaComputes = this.get('nova_computes');
novaComputes.isValid();
if (novaComputes.validationError) {
errors.nova_computes = novaComputes.validationError;
}
return _.isEmpty(errors) ? null : errors;
}
});
var AvailabilityZones = BaseCollection.extend({
constructorName: 'AvailabilityZones',
model: AvailabilityZone
});
VmWareModels.Glance = BaseModel.extend({constructorName: 'Glance'});
VmWareModels.VCenter = BaseModel.extend({
constructorName: 'VCenter',
url() {
return '/api/v1/clusters/' + this.id + '/vmware_attributes' +
(this.loadDefaults ? '/defaults' : '');
},
parse(response) {
if (!response.editable || !response.editable.metadata || !response.editable.value) {
return null;
}
var metadata = response.editable.metadata || [];
var value = response.editable.value || {};
// Availability Zone(s)
var azMetadata = _.find(metadata, {name: 'availability_zones'});
var azValues = _.clone(value.availability_zones);
azValues = _.map(azValues, (value) => {
value.metadata = azMetadata.fields;
return value;
});
// Glance
var glanceMetadata = _.find(metadata, {name: 'glance'});
var glanceValue = _.extend(_.clone(value.glance), {metadata: glanceMetadata.fields});
return {
metadata: metadata,
availability_zones: new AvailabilityZones(azValues),
glance: new VmWareModels.Glance(glanceValue)
};
},
isFilled() {
var result = this.get('availability_zones') && this.get('glance');
return !!result;
},
toJSON() {
if (!this.isFilled()) {
return {};
}
return {
editable: {
value: {
availability_zones: this.get('availability_zones').toJSON(),
glance: this.get('glance').toJSON()
}
}
};
},
validate() {
if (!this.isFilled()) {
return null;
}
var errors = {};
_.each(this.get('metadata'), (field) => {
var model = this.get(field.name);
// do not validate disabled restrictions
var isDisabled = this.checkRestrictions(restrictionModels, undefined, field);
if (isDisabled.result) {
return;
}
model.isValid();
if (model.validationError) {
errors[field.name] = model.validationError;
}
});
// check unassigned nodes exist
var assignedNodes = {};
var availabilityZones = this.get('availability_zones') || [];
availabilityZones.each((zone) => {
var novaComputes = zone.get('nova_computes') || [];
novaComputes.each((compute) => {
var targetNode = compute.get('target_node');
assignedNodes[targetNode.current.id] = targetNode.current.label;
});
});
var unassignedNodes = restrictionModels.cluster.get('nodes').filter((node) => {
return _.contains(node.get('pending_roles'), 'compute-vmware') &&
!assignedNodes[node.get('hostname')];
});
if (unassignedNodes.length > 0) {
errors.unassigned_nodes = unassignedNodes;
}
return _.isEmpty(errors) ? null : errors;
},
setModels(models) {
restrictionModels = models;
return this;
}
});
export default VmWareModels;

View File

@ -1,455 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
import React from 'react';
import $ from 'jquery';
import i18n from 'i18n';
import _ from 'underscore';
import dispatcher from 'dispatcher';
import {Input, Tooltip} from 'views/controls';
import {unsavedChangesMixin} from 'component_mixins';
import VmWareModels from 'plugins/vmware/vmware_models';
var Field = React.createClass({
onChange(name, value) {
var currentValue = this.props.model.get(name);
if (currentValue.current) {
currentValue.current.id = value;
currentValue.current.label = value;
} else {
currentValue = value;
}
this.props.model.set(name, currentValue);
this.setState({model: this.props.model});
_.defer(() => dispatcher.trigger('vcenter_model_update'));
},
render() {
var metadata = this.props.metadata;
var value = this.props.model.get(metadata.name);
return (
<Input
{... _.pick(metadata, 'name', 'type', 'label', 'description')}
value={metadata.type === 'select' ? value.current.id : value}
checked={value}
toggleable={metadata.type === 'password'}
onChange={this.onChange}
disabled={this.props.disabled}
error={(this.props.model.validationError || {})[metadata.name]}
>
{metadata.type === 'select' && value.options.map((value) => {
return <option key={value.id} value={value.id}>{value.label}</option>;
})}
</Input>
);
}
});
var FieldGroup = React.createClass({
render() {
var restrictions = this.props.model.testRestrictions();
var metadata = _.filter(this.props.model.get('metadata'), VmWareModels.isRegularField);
var fields = metadata.map((meta) => {
return (
<Field
key={meta.name}
model={this.props.model}
metadata={meta}
disabled={this.props.disabled}
disableWarning={restrictions.disable[meta.name]}
/>
);
});
return (
<div>
{fields}
</div>
);
}
});
var GenericSection = React.createClass({
render() {
if (!this.props.model) return null;
return (
<div className='col-xs-12 forms-box'>
<h3>
{this.props.title}
{this.props.tooltipText &&
<Tooltip text={this.props.tooltipText} placement='right'>
<i className='glyphicon glyphicon-warning-sign tooltip-icon' />
</Tooltip>
}
</h3>
<FieldGroup model={this.props.model} disabled={this.props.disabled}/>
</div>
);
}
});
var NovaCompute = React.createClass({
render() {
if (!this.props.model) return null;
// add nodes of 'compute-vmware' type to targetNode select
var targetNode = this.props.model.get('target_node') || {};
var nodes = this.props.cluster.get('nodes').filter((node) => node.hasRole('compute-vmware'));
targetNode.options = [];
if (targetNode.current.id === 'controllers' || !this.props.isLocked) {
targetNode.options.push({id: 'controllers', label: 'controllers'});
} else {
targetNode.options.push({id: 'invalid', label: 'Select node'});
}
nodes.forEach((node) => {
targetNode.options.push({
id: node.get('hostname'),
label: node.get('name') + ' (' + node.get('mac').substr(9) + ')'
});
});
this.props.model.set('target_node', targetNode);
return (
<div className='nova-compute'>
<h4>
<div className='btn-group'>
<button
className='btn btn-link'
disabled={this.props.disabled}
onClick={() => {
this.props.onAdd(this.props.model);
}}
>
<i className='glyphicon glyphicon-plus-sign' />
</button>
{!this.props.isRemovable &&
<button
className='btn btn-link'
disabled={this.props.disabled}
onClick={() => {
this.props.onRemove(this.props.model);
}}
>
<i className='glyphicon glyphicon-minus-sign' />
</button>
}
</div>
{i18n('vmware.nova_compute')}
</h4>
<FieldGroup model={this.props.model} disabled={this.props.disabled}/>
</div>
);
}
});
var AvailabilityZone = React.createClass({
addNovaCompute(current) {
var collection = this.props.model.get('nova_computes');
var index = collection.indexOf(current);
var newItem = current.clone();
var targetNode = _.cloneDeep(newItem.get('target_node'));
if (this.props.isLocked) {
targetNode.current = {id: 'invalid'};
}
newItem.set('target_node', targetNode);
collection.add(newItem, {at: index + 1});
this.setState({model: this.props.model});
_.defer(() => dispatcher.trigger('vcenter_model_update'));
},
removeNovaCompute(current) {
var collection = this.props.model.get('nova_computes');
collection.remove(current);
this.setState({model: this.props.model});
_.defer(() => dispatcher.trigger('vcenter_model_update'));
},
renderFields() {
var model = this.props.model;
var meta = model.get('metadata');
meta = _.filter(meta, VmWareModels.isRegularField);
return (
<FieldGroup model={model} disabled={this.props.isLocked || this.props.disabled}/>
);
},
renderComputes(actions) {
var novaComputes = this.props.model.get('nova_computes');
var isSingleInstance = novaComputes.length === 1;
var disabled = actions.disable.nova_computes;
var cluster = this.props.cluster;
return (
<div className='col-xs-offset-1'>
<h3>
{i18n('vmware.nova_computes')}
</h3>
{novaComputes.map((compute) => {
return (
<NovaCompute
key={compute.cid}
model={compute}
onAdd={this.addNovaCompute}
onRemove={this.removeNovaCompute}
isRemovable={isSingleInstance}
disabled={disabled.result || this.props.disabled}
isLocked={this.props.isLocked}
cluster={cluster}
/>
);
})}
</div>
);
},
render() {
var restrictActions = this.props.model.testRestrictions();
return (
<div>
{this.renderFields(restrictActions)}
{this.renderComputes(restrictActions)}
</div>
);
}
});
var AvailabilityZones = React.createClass({
render() {
if (!this.props.collection) return null;
return (
<div className='col-xs-12 forms-box'>
<h3>
{i18n('vmware.availability_zones')}
{this.props.tooltipText &&
<Tooltip text={this.props.tooltipText} placement='right'>
<i className='glyphicon glyphicon-warning-sign tooltip-icon' />
</Tooltip>
}
</h3>
{this.props.collection.map((model) => {
return <AvailabilityZone
key={model.cid}
model={model}
disabled={this.props.disabled}
cluster={this.props.cluster}
isLocked={this.props.isLocked}
/>;
})}
</div>
);
}
});
var UnassignedNodesWarning = React.createClass({
render() {
if (!this.props.errors || !this.props.errors.unassigned_nodes) return null;
return (
<div className='alert alert-danger'>
<div>
{i18n('vmware.unassigned_nodes')}
</div>
<ul className='unassigned-node-list'>
{
this.props.errors.unassigned_nodes.map((node) => {
return (
<li key={node.id}
className='unassigned-node'>
<span
className='unassigned-node-name'>{node.get('name')}</span>
&nbsp;
({node.get('mac')})
</li>
);
})
}
</ul>
</div>
);
}
});
var VmWareTab = React.createClass({
mixins: [
unsavedChangesMixin
],
statics: {
breadcrumbsPath() {
return [
[i18n('vmware.title'), null, {active: true}]
];
},
isVisible(cluster) {
return cluster.get('settings').get('common.use_vcenter').value;
},
fetchData(options) {
if (!options.cluster.get('vcenter_defaults')) {
var defaultModel = new VmWareModels.VCenter({id: options.cluster.id});
defaultModel.loadDefaults = true;
options.cluster.set({vcenter_defaults: defaultModel});
}
return $.when(
options.cluster.get('vcenter').fetch({cache: true}),
options.cluster.get('vcenter_defaults').fetch({cache: true})
);
}
},
onModelSync() {
this.actions = this.model.testRestrictions();
if (!this.model.loadDefaults) {
this.json = JSON.stringify(this.model.toJSON());
}
this.model.loadDefaults = false;
this.setState({model: this.model});
},
componentDidMount() {
this.clusterId = this.props.cluster.id;
this.model = this.props.cluster.get('vcenter');
this.model.on('sync', this.onModelSync, this); // eslint-disable-line no-sync
this.defaultModel = this.props.cluster.get('vcenter_defaults');
this.defaultsJson = JSON.stringify(this.defaultModel.toJSON());
this.setState({model: this.model, defaultModel: this.defaultModel});
this.model.setModels({
cluster: this.props.cluster,
settings: this.props.cluster.get('settings'),
networking_parameters: this.props.cluster.get('networkConfiguration')
.get('networking_parameters')
});
this.onModelSync(); // eslint-disable-line no-sync
dispatcher.on('vcenter_model_update', () => {
if (this.isMounted()) {
this.forceUpdate();
}
});
},
componentWillUnmount() {
this.model.off('sync', null, this);
dispatcher.off('vcenter_model_update');
},
getInitialState() {
return {model: null};
},
readData() {
return this.model.fetch();
},
onLoadDefaults() {
this.model.loadDefaults = true;
this.model.fetch().done(() => {
this.model.loadDefaults = false;
});
},
applyChanges() {
return this.model.save();
},
revertChanges() {
return this.readData();
},
hasChanges() {
return this.detectChanges(this.json, JSON.stringify(this.model.toJSON()));
},
detectChanges(oldJson, currentJson) {
var old, current;
try {
old = JSON.parse(oldJson);
current = JSON.parse(currentJson);
} catch (error) {
return false;
}
var oldData = JSON.stringify(old, (key, data) => {
if (key === 'target_node') {
delete data.options;
}
return data;
});
var currentData = JSON.stringify(current, (key, data) => {
if (key === 'target_node') {
delete data.options;
}
return data;
});
return oldData !== currentData;
},
isSavingPossible() {
return !this.state.model.validationError;
},
render() {
if (!this.state.model || !this.actions) {
return null;
}
var model = this.state.model;
var currentJson = JSON.stringify(this.model.toJSON());
var editable = this.props.cluster.isAvailableForSettingsChanges();
var hide = this.actions.hide || {};
var disable = this.actions.disable || {};
model.isValid();
var hasChanges = this.detectChanges(this.json, currentJson);
var hasDefaultsChanges = this.detectChanges(this.defaultsJson, currentJson);
var saveDisabled = !hasChanges || !this.isSavingPossible();
var defaultsDisabled = !hasDefaultsChanges;
return (
<div className='row'>
<div className='title'>{i18n('vmware.title')}</div>
<UnassignedNodesWarning errors={model.validationError}/>
{!hide.availability_zones.result &&
<AvailabilityZones
collection={model.get('availability_zones')}
disabled={disable.availability_zones.result}
tooltipText={disable.availability_zones.message}
isLocked={!editable}
cluster={this.props.cluster}
/>
}
{!hide.glance.result &&
<GenericSection
model={model.get('glance')}
title={i18n('vmware.glance')}
disabled={!editable || disable.glance.result}
tooltipText={disable.glance.message}
/>
}
<div className='col-xs-12 page-buttons content-elements'>
<div className='well clearfix'>
<div className='btn-group pull-right'>
<button
className='btn btn-default btn-load-defaults'
onClick={this.onLoadDefaults}
disabled={!editable || defaultsDisabled}
>
{i18n('vmware.reset_to_defaults')}
</button>
<button
className='btn btn-default btn-revert-changes'
onClick={this.revertChanges}
disabled={!hasChanges}
>
{i18n('vmware.cancel')}
</button>
<button
className='btn btn-success btn-apply-changes'
onClick={this.applyChanges}
disabled={saveDisabled}
>
{i18n('vmware.apply')}
</button>
</div>
</div>
</div>
</div>
);
}
});
export default VmWareTab;

View File

@ -1,38 +0,0 @@
html, body {
background-color: #415766; /* @base-dark-color from main.less */
color: white; /* for loading errors, overridden in main.less */
}
body {
overflow-y: scroll;
}
#main-container {
display: none;
}
@keyframes loading {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
.loading:before {
content: "";
display: block;
width: 98px;
height: 98px;
overflow: hidden;
margin: 200px auto 0;
background: url(../img/loader-bg.svg);
animation: loading 6s linear infinite;
}
.loading:after {
content: "";
display: block;
width: 98px;
height: 98px;
margin: -124px auto 0;
position: relative;
z-index: 9999;
background: url(../img/loader-logo.svg);
}

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +0,0 @@
---
ecmaFeatures:
modules: false
rules:
prefer-arrow-callback: 0
object-shorthand: 0
env:
amd: true
node: true
globals:
sinon: false

View File

@ -1,21 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define(['./intern'], function(config) {
'use strict';
config.environments = [{browserName: 'chrome'}];
return config;
});

View File

@ -1,21 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define(['./intern'], function(config) {
'use strict';
config.environments = [{browserName: 'firefox'}];
return config;
});

View File

@ -1,21 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define(['./intern'], function(config) {
'use strict';
config.environments = [{browserName: 'phantomjs'}];
return config;
});

View File

@ -1,28 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define(function() {
'use strict';
return {
proxyPort: 9057,
proxyUrl: 'http://localhost:9057/',
maxConcurrency: 1,
grep: /^/,
excludeInstrumentation: /^/,
reporters: ['Runner', 'tests/functional/screenshot_on_fail']
};
});

View File

@ -1,517 +0,0 @@
/*
* Copyright 2014 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern/dojo/node!lodash',
'intern/chai!assert',
'intern/dojo/node!leadfoot/Command'
], function(_, assert, Command) {
'use strict';
_.defaults(Command.prototype, {
clickLinkByText: function(text) {
return new this.constructor(this, function() {
return this.parent
.findByLinkText(text)
.click()
.end();
});
},
clickByCssSelector: function(cssSelector) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.click()
.end();
});
},
waitForCssSelector: function(cssSelector, timeout) {
return new this.constructor(this, function() {
var self = this;
var currentTimeout;
return this.parent
.getFindTimeout()
.then(function(value) {
currentTimeout = value;
})
.setFindTimeout(timeout)
.findByCssSelector(cssSelector)
.catch(function(error) {
self.parent.setFindTimeout(currentTimeout);
throw error;
})
.end()
.then(function() {
self.parent.setFindTimeout(currentTimeout);
});
});
},
waitForElementDeletion: function(cssSelector, timeout) {
return new this.constructor(this, function() {
var self = this;
var currentTimeout;
return this.parent
.getFindTimeout()
.then(function(value) {
currentTimeout = value;
})
.setFindTimeout(timeout)
.waitForDeletedByCssSelector(cssSelector)
.catch(function(error) {
self.parent.setFindTimeout(currentTimeout);
if (error.name !== 'Timeout') throw error;
})
.then(function() {
self.parent.setFindTimeout(currentTimeout);
});
});
},
setInputValue: function(cssSelector, value) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.clearValue()
.type(value)
.end();
});
},
// Drag-n-drop helpers
// Taken from not yet accepted pull request to leadfoot from
// https://github.com/theintern/leadfoot/pull/16
dragFrom: function(element, x, y) {
if (typeof element === 'number') {
y = x;
x = element;
element = null;
}
return new this.constructor(this, function() {
this._session._dragSource = {
element: element || this.parent._context[0],
x: x,
y: y
};
});
},
dragTo: function(element, x, y) {
if (typeof element === 'number') {
y = x;
x = element;
element = null;
}
return new this.constructor(this, function() {
var dragTarget = {
element: element || this.parent._context[0],
x: x,
y: y
};
var dragSource = this._session._dragSource;
this._session._dragSource = null;
return this.parent.executeAsync(function(dragFrom, dragTo, done) {
var dragAndDrop = (function() {
var dispatchEvent, createEvent;
// Setup methods to call the proper event creation and
// dispatch functions for the current platform.
if (document.createEvent) {
dispatchEvent = function(element, eventName, event) {
element.dispatchEvent(event);
return event;
};
createEvent = function(eventName) {
return document.createEvent(eventName);
};
} else if (document.createEventObject) {
dispatchEvent = function(element, eventName, event) {
element.fireEvent('on' + eventName, event);
return event;
};
createEvent = function(eventType) {
return document.createEventObject(eventType);
};
}
function createCustomEvent(eventName, screenX, screenY, clientX, clientY) {
var event = createEvent('CustomEvent');
if (event.initCustomEvent) {
event.initCustomEvent(eventName, true, true, null);
}
event.view = window;
event.detail = 0;
event.screenX = screenX;
event.screenY = screenY;
event.clientX = clientX;
event.clientY = clientY;
event.ctrlKey = false;
event.altKey = false;
event.shiftKey = false;
event.metaKey = false;
event.button = 0;
event.relatedTarget = null;
return event;
}
function createDragEvent(eventName, options, dataTransfer) {
var screenX = window.screenX + options.clientX;
var screenY = window.screenY + options.clientY;
var clientX = options.clientX;
var clientY = options.clientY;
var event;
if (!dataTransfer) {
dataTransfer = {
data: options.dragData || {},
setData: function(eventName, val) {
if (typeof val === 'string') {
this.data[eventName] = val;
}
},
getData: function(eventName) {
return this.data[eventName];
},
clearData: function() {
this.data = {};
return true;
},
setDragImage: function() {}
};
}
try {
event = createEvent('DragEvent');
event.initDragEvent(eventName, true, true, window, 0, screenX, screenY, clientX,
clientY, false, false, false, false, 0, null, dataTransfer);
} catch (error) {
event = createCustomEvent(eventName, screenX, screenY, clientX, clientY);
event.dataTransfer = dataTransfer;
}
return event;
}
function createMouseEvent(eventName, options, dataTransfer) {
var screenX = window.screenX + options.clientX;
var screenY = window.screenY + options.clientY;
var clientX = options.clientX;
var clientY = options.clientY;
var event;
try {
event = createEvent('MouseEvent');
event.initMouseEvent(eventName, true, true, window, 0, screenX, screenY, clientX,
clientY, false, false, false, false, 0, null);
} catch (error) {
event = createCustomEvent(eventName, screenX, screenY, clientX, clientY);
}
if (dataTransfer) {
event.dataTransfer = dataTransfer;
}
return event;
}
function simulateEvent(element, eventName, dragStartEvent, options) {
var dataTransfer = dragStartEvent ? dragStartEvent.dataTransfer : null;
var createEvent = eventName.indexOf('mouse') !== -1 ? createMouseEvent :
createDragEvent;
var event = createEvent(eventName, options, dataTransfer);
return dispatchEvent(element, eventName, event);
}
function getClientOffset(elementInfo) {
var bounds = elementInfo.element.getBoundingClientRect();
var xOffset = bounds.left + (elementInfo.x || ((bounds.right - bounds.left) / 2));
var yOffset = bounds.top + (elementInfo.y || ((bounds.bottom - bounds.top) / 2));
return {clientX: xOffset, clientY: yOffset};
}
function doDragAndDrop(source, target, sourceOffset, targetOffset) {
simulateEvent(source, 'mousedown', null, sourceOffset);
var start = simulateEvent(source, 'dragstart', null, sourceOffset);
simulateEvent(target, 'dragenter', start, targetOffset);
simulateEvent(target, 'dragover', start, targetOffset);
simulateEvent(target, 'drop', start, targetOffset);
simulateEvent(source, 'dragend', start, targetOffset);
}
return function(dragFrom, dragTo) {
var fromOffset = getClientOffset(dragFrom);
var toOffset = getClientOffset(dragTo);
doDragAndDrop(dragFrom.element, dragTo.element, fromOffset, toOffset);
};
})();
try {
dragAndDrop(dragFrom, dragTo);
done(null);
} catch (error) {
done(error.message);
}
}, [dragSource, dragTarget]).finally(function(result) {
if (result) {
var error = new Error(result);
error.name = 'DragAndDropError';
throw error;
}
});
});
},
// assertion helpers
assertElementsExist: function(cssSelector, amount, message) {
return new this.constructor(this, function() {
return this.parent
.findAllByCssSelector(cssSelector)
.then(function(elements) {
if (!_.isNumber(amount)) {
// no amount given - check if any amount of such elements exist
message = amount;
return assert.ok(elements.length, message);
} else {
return assert.equal(elements.length, amount, message);
}
})
.end();
});
},
assertElementExists: function(cssSelector, message) {
return new this.constructor(this, function() {
return this.parent.assertElementsExist(cssSelector, 1, message);
});
},
assertElementNotExists: function(cssSelector, message) {
return new this.constructor(this, function() {
return this.parent.assertElementsExist(cssSelector, 0, message);
});
},
assertElementAppears: function(cssSelector, timeout, message) {
return new this.constructor(this, function() {
return this.parent
.waitForCssSelector(cssSelector, timeout)
.catch(_.constant(true))
.assertElementExists(cssSelector, message);
});
},
assertElementsAppear: function(cssSelector, timeout, message) {
return new this.constructor(this, function() {
return this.parent
.waitForCssSelector(cssSelector, timeout)
.catch(_.constant(true))
.assertElementsExist(cssSelector, message);
});
},
assertElementDisappears: function(cssSelector, timeout, message) {
return new this.constructor(this, function() {
return this.parent
.waitForElementDeletion(cssSelector, timeout)
.catch(_.constant(true))
.assertElementNotExists(cssSelector, message);
});
},
assertElementEnabled: function(cssSelector, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.isEnabled()
.then(function(isEnabled) {
return assert.isTrue(isEnabled, message);
})
.end();
});
},
assertElementDisabled: function(cssSelector, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.isEnabled()
.then(function(isEnabled) {
return assert.isFalse(isEnabled, message);
})
.end();
});
},
assertElementDisplayed: function(cssSelector, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.isDisplayed()
.then(function(isDisplayed) {
return assert.isTrue(isDisplayed, message);
})
.end();
});
},
assertElementNotDisplayed: function(cssSelector, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.isDisplayed()
.then(function(isDisplayed) {
return assert.isFalse(isDisplayed, message);
})
.end();
});
},
assertElementTextEquals: function(cssSelector, expectedText, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getVisibleText()
.then(function(actualText) {
assert.equal(actualText, expectedText, message);
})
.end();
});
},
assertElementContainsText: function(cssSelector, text, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getVisibleText()
.then(function(actualText) {
assert.include(actualText, text, message);
})
.end();
});
},
assertElementMatchesRegExp: function(cssSelector, regExp, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getVisibleText()
.then(function(actualText) {
assert.match(actualText, regExp, message);
})
.end();
});
},
assertElementNotContainsText: function(cssSelector, text, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getVisibleText()
.then(function(actualText) {
assert.notInclude(actualText, text, message);
})
.end();
});
},
assertElementAttributeEquals: function(cssSelector, attribute, expectedText, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getAttribute(attribute)
.then(function(actualText) {
assert.equal(actualText, expectedText, message);
})
.end();
});
},
assertElementAttributeContains: function(cssSelector, attribute, text, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getAttribute(attribute)
.then(function(actualText) {
assert.include(actualText, text, message);
})
.end();
});
},
assertElementPropertyEquals: function(cssSelector, attribute, expectedText, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getProperty(attribute)
.then(function(actualText) {
assert.equal(actualText, expectedText, message);
})
.end();
});
},
assertElementPropertyNotEquals: function(cssSelector, attribute, textToCheck, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getProperty(attribute)
.then(function(actualText) {
assert.notEqual(actualText, textToCheck, message);
})
.end();
});
},
assertElementPropertyContains: function(cssSelector, attribute, text, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getProperty(attribute)
.then(function(actualText) {
assert.include(actualText, text, message);
})
.end();
});
},
assertElementSelected: function(cssSelector, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.isSelected()
.then(function(isSelected) {
assert.isTrue(isSelected, message);
})
.end();
});
},
assertElementNotSelected: function(cssSelector, message) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.isSelected()
.then(function(isSelected) {
assert.isFalse(isSelected, message);
})
.end();
});
},
assertIsIntegerContentPositive: function(cssSelector, attributeName) {
return new this.constructor(this, function() {
return this.parent
.findByCssSelector(cssSelector)
.getVisibleText().then(function(text) {
return assert.isTrue(parseInt(text, 10) > 0, attributeName + ' is greater than 0');
})
.end();
});
}
});
var serverHost = '127.0.0.1';
var serverPort = process.env.NAILGUN_PORT || 5544;
var serverUrl = 'http://' + serverHost + ':' + serverPort;
var username = 'admin';
var password = 'admin';
return {
username: username,
password: password,
serverUrl: serverUrl
};
});

View File

@ -1,165 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/nightly/library/generic',
'tests/functional/helpers'
], function(GenericLib) {
'use strict';
function EquipmentLib(remote) {
this.remote = remote;
this.generic = new GenericLib(remote);
}
EquipmentLib.prototype = {
constructor: EquipmentLib,
nodeSelector: 'div.node',
checkNodesSegmentation: function(nodeView, nodesQuantity, provisioningFlag) {
// Input array: Nodes quantity by groups.
// [Total, Pending Addition (Provisioning), Discover, Error, Offline]
var nodeSel = this.nodeSelector;
var tempSelector = '.';
var clusterSelector = 'pending_addition';
if (nodeView === 'compact') {
nodeSel = 'div.compact-node';
tempSelector = ' div.';
} else if (nodeView !== 'standard') {
throw new Error('Invalid input value. Check nodeView: "' + nodeView +
'" parameter and restart test.');
}
if (provisioningFlag) {
clusterSelector = 'provisioning';
}
return this.remote
.assertElementsAppear(nodeSel, 1000, '"' + nodeView + ' Node" view is loaded')
.assertElementsExist(nodeSel, nodesQuantity[0],
'Default nodes quantity is observed')
.assertElementsExist(nodeSel + tempSelector + clusterSelector, nodesQuantity[1],
'"Pending Addition/Provisioning" nodes are observed in "' + nodeView + '"" view')
.assertElementsExist(nodeSel + tempSelector + 'discover', nodesQuantity[2],
'"Discovered" nodes are observed in "' + nodeView + '"" view')
.assertElementsExist(nodeSel + tempSelector + 'error', nodesQuantity[3],
'"Error" nodes are observed in "' + nodeView + '"" view')
.assertElementsExist(nodeSel + tempSelector + 'offline', nodesQuantity[4],
'"Offline" nodes are observed in "' + nodeView + '"" view');
},
renameNode: function(nodeSelector, newName) {
var nodeNameSelector = 'div.name p';
var inputSelector = 'input.node-name-input';
return this.remote
.assertElementsExist(nodeSelector, 'Node to rename exists')
.findByCssSelector(nodeSelector)
.assertElementsExist(nodeNameSelector, 'Node name textlink exists')
.clickByCssSelector(nodeNameSelector)
.assertElementsAppear(inputSelector, 500, 'Rename textfield appears')
.findByCssSelector(inputSelector)
.clearValue()
.type(newName)
.pressKeys('\uE007')
.end()
.assertElementsAppear(nodeNameSelector, 1000, 'Node new name textlink appears')
.assertElementTextEquals(nodeNameSelector, newName, 'Node name is changed successfully')
.end();
},
checkSearchPageSwitching: function(pageName, nodeName) {
var self = this;
return this.remote
.then(function() {
return self.generic.gotoPage(pageName);
})
.then(function() {
return self.generic.gotoPage('Equipment');
})
.assertElementsExist(this.nodeSelector, 1,
'Search result saved after switching to "' + pageName + '"" page')
.assertElementContainsText(this.nodeSelector + ' div.name p', nodeName,
'Search result is correct after switching to "' + pageName + '"" page');
},
checkSortingPageSwitching: function(pageName, nodesQuantity) {
// Input array: Nodes quantity by groups.
// [Total, Pending Addition, Discover]
var self = this;
var groupSelector = 'div.nodes-group';
return this.remote
.then(function() {
return self.generic.gotoPage(pageName);
})
.then(function() {
return self.generic.gotoPage('Equipment');
})
.assertElementsExist(this.nodeSelector, nodesQuantity[0],
'Filtered nodes quantity is observed after switching to "' + pageName + '"" page')
.assertElementsExist(groupSelector, 2, 'Only "Pending Addition" and "Discovered"' +
'node groups are correctly filtered after switching to "' + pageName + '"" page')
.assertElementContainsText(groupSelector + ':nth-child(2) h4', 'Pending Addition',
'"Pending Addition" node group is correctly sorted after' +
'switching to "' + pageName + '"" page')
.assertElementsExist(groupSelector + ':nth-child(2) div.node.pending_addition',
nodesQuantity[1], 'Default quantity of "Pending Addition" nodes is observed after' +
'switching to "' + pageName + '"" page')
.assertElementContainsText(groupSelector + ':nth-child(1) h4', 'Discovered',
'"Discovered" node group is correctly sorted after switching to "' + pageName + '"" page')
.assertElementsExist(groupSelector + ':nth-child(1) div.node.discover',
nodesQuantity[2], 'Default quantity of "Discovered" nodes is observed after' +
'switching to "' + pageName + '"" page');
},
checkDefaultSorting: function(sortDirection, nodesQuantity) {
// Input array: Nodes quantity by groups.
// [Total, Pending Addition, Discover, Error, Offline]
var groupSelector = 'div.nodes-group:nth-child(';
var orderName, sortOrder, sortSelector;
if (sortDirection === 'down') {
sortOrder = [1, 2, 3, 4];
orderName = 'asc';
} else if (sortDirection === 'up') {
sortOrder = [4, 3, 2, 1];
orderName = 'desc';
} else {
throw new Error('Invalid sort direction value. Check sortDirection: "' + sortDirection +
'" parameter and restart test.');
}
sortSelector = 'div.sort-by-status-' + orderName;
return this.remote
.assertElementsExist(sortSelector, 'Status sorting block is observed')
.findByCssSelector(sortSelector)
.assertElementContainsText('button.btn-default', 'Status', 'Sorting by status is default')
.assertElementsExist('i.glyphicon-arrow-' + sortDirection,
'Sorting in ' + orderName + ' order is observed')
.end()
.assertElementsExist(this.nodeSelector, nodesQuantity[0],
'Default nodes quantity is observed')
.assertElementContainsText(groupSelector + sortOrder[0] + ') h4', 'Pending Addition',
'"Pending Addition" node group is correctly sorted')
.assertElementsExist(groupSelector + sortOrder[0] + ') div.node.pending_addition',
nodesQuantity[1], 'Default quantity of "Pending Addition" nodes is observed')
.assertElementContainsText(groupSelector + sortOrder[1] + ') h4', 'Discovered',
'"Discovered" node group is correctly sorted')
.assertElementsExist(groupSelector + sortOrder[1] + ') div.node.discover',
nodesQuantity[2], 'Default quantity of "Discovered" nodes is observed')
.assertElementContainsText(groupSelector + sortOrder[2] + ') h4', 'Error',
'"Error" node group is correctly sorted')
.assertElementsExist(groupSelector + sortOrder[2] + ') div.node.error',
nodesQuantity[3], 'Default quantity of "Error" nodes is observed')
.assertElementContainsText(groupSelector + sortOrder[3] + ') h4', 'Offline',
'"Offline" node group is correctly sorted')
.assertElementsExist(groupSelector + sortOrder[3] + ') div.node.offline',
nodesQuantity[4], 'Default quantity of "Offline" nodes is observed');
}
};
return EquipmentLib;
});

View File

@ -1,50 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/helpers'
], function() {
'use strict';
function GenericLib(remote) {
this.remote = remote;
}
GenericLib.prototype = {
constructor: GenericLib,
gotoPage: function(pageName) {
var pageSelector = {Environments: 'clusters-page', Equipment: 'equipment-page',
Releases: 'releases-page', Plugins: 'plugins-page', Support: 'support-page'};
var pageTitle = {Environments: /My OpenStack Environments/i, Equipment: /Equipment/i,
Releases: /Releases/i, Plugins: /Installed Plugins/i, Support: /Support/i};
var activeName = RegExp(pageName, 'i');
if (!(pageName in pageSelector)) {
throw new Error('Invalid input value. Check pageName: "' + pageName +
'" parameter and restart test.');
}
return this.remote
.clickLinkByText(pageName)
.assertElementsAppear('div.' + pageSelector[pageName], 5000, '"' + pageName +
'" page is loaded')
.assertElementMatchesRegExp('li.active a', activeName, '"' + pageName +
'" page is selected')
.assertElementMatchesRegExp('h1.title', pageTitle[pageName], '"' + pageName +
'" page is opened');
}
};
return GenericLib;
});

View File

@ -1,756 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/pages/modal',
'tests/functional/helpers'
], function(ModalWindow) {
'use strict';
function NetworksLib(remote) {
this.remote = remote;
this.modal = new ModalWindow(remote);
}
NetworksLib.prototype = {
constructor: NetworksLib,
btnSaveSelector: 'button.apply-btn',
btnCancelSelector: 'button.btn-revert-changes',
btnVerifySelector: 'button.verify-networks-btn',
defaultPlaceholder: '127.0.0.1',
gotoNodeNetworkGroup: function(groupName) {
return this.remote
.assertElementContainsText('ul.node-network-groups-list', groupName,
'"' + groupName + '" link is existed')
.findByCssSelector('ul.node-network-groups-list')
.clickLinkByText(groupName)
.end();
},
checkNetworkInitialState: function(networkName) {
var chain = this.remote;
var self = this;
var mainDiv = 'div.' + networkName.toLowerCase() + ' ';
var properNames = ['Public', 'Storage', 'Management', 'Baremetal', 'Private'];
if (properNames.indexOf(networkName) === -1) {
throw new Error('Invalid input value. Check networkName: "' + networkName +
'" parameter and restart test.');
}
// Generic components
chain = chain.then(function() {
return self.gotoNodeNetworkGroup('default');
})
.assertElementDisabled(this.btnSaveSelector, '"Save Settings" button is disabled')
.assertElementDisabled(this.btnCancelSelector, '"Cancel Changes" button is disabled')
.assertElementNotExists('div.has-error', 'No Network errors are observed')
// CIDR
.assertElementEnabled(mainDiv + 'div.cidr input[type="text"]',
networkName + ' "CIDR" textfield is enabled')
.assertElementEnabled(mainDiv + 'div.cidr input[type="checkbox"]',
networkName + ' "Use the whole CIDR" checkbox is enabled')
// IP Ranges
.assertElementsExist(mainDiv + 'div.ip_ranges div.range-row', 1,
'Only default IP range is observed for ' + networkName + ' network')
// VLAN
.assertElementEnabled(mainDiv + 'div.vlan_start input[type="checkbox"]',
networkName + ' "Use VLAN tagging" checkbox is enabled');
// Individual components
if (networkName === 'Public' || networkName === 'Baremetal') {
// CIDR
chain = chain.assertElementNotSelected(mainDiv + 'div.cidr input[type="checkbox"]',
networkName + ' "Use the whole CIDR" checkbox is not selected')
// IP Ranges
.assertElementEnabled(mainDiv + 'div.ip_ranges input[name*="range-start"]',
networkName + ' "Start IP Range" textfield is enabled')
.assertElementEnabled(mainDiv + 'div.ip_ranges input[name*="range-end"]',
networkName + ' "End IP Range" textfield is enabled')
.assertElementEnabled(mainDiv + 'div.ip_ranges button.ip-ranges-add',
networkName + ' "Add new IP range" button is enabled');
if (networkName === 'Public') {
// CIDR
chain = chain.assertElementPropertyEquals(mainDiv + 'div.cidr input[type="text"]',
'value', '172.16.0.0/24', networkName + ' "CIDR" textfield has default value')
// IP Ranges
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-start"]',
'value', '172.16.0.2', networkName + ' "Start IP Range" textfield has default value')
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-end"]',
'value', '172.16.0.126', networkName + ' "End IP Range" textfield has default value')
// Gateway
.assertElementEnabled(mainDiv + 'input[name="gateway"][type="text"]',
networkName + ' "Gateway" textfield is enabled')
.assertElementPropertyEquals(mainDiv + 'input[name="gateway"][type="text"]',
'value', '172.16.0.1', networkName + ' "Gateway" textfield has default value')
// VLAN
.assertElementNotSelected(mainDiv + 'div.vlan_start input[type="checkbox"]',
networkName + ' "Use VLAN tagging" checkbox is not selected')
.assertElementNotExists(mainDiv + 'div.vlan_start input[type="text"]',
networkName + ' "Use VLAN tagging" textfield is not exist');
} else if (networkName === 'Baremetal') {
// CIDR
chain = chain.assertElementPropertyEquals(mainDiv + 'div.cidr input[type="text"]',
'value', '192.168.3.0/24', networkName + ' "CIDR" textfield has default value')
// IP Ranges
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-start"]',
'value', '192.168.3.1', networkName + ' "Start IP Range" textfield has default value')
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-end"]',
'value', '192.168.3.50', networkName + ' "End IP Range" textfield has default value')
// VLAN
.assertElementSelected(mainDiv + 'div.vlan_start input[type="checkbox"]',
networkName + ' "Use VLAN tagging" checkbox is selected')
.assertElementEnabled(mainDiv + 'div.vlan_start input[type="text"]',
networkName + ' "Use VLAN tagging" textfield is enabled')
.assertElementPropertyEquals(mainDiv + 'div.vlan_start input[type="text"]', 'value',
'104', networkName + ' "Use VLAN tagging" textfield has default value');
}
} else {
// CIDR
chain = chain.assertElementSelected(mainDiv + 'div.cidr input[type="checkbox"]',
'Baremetal "Use the whole CIDR" checkbox is selected')
// IP Ranges
.assertElementDisabled(mainDiv + 'div.ip_ranges input[name*="range-start"]',
networkName + ' "Start IP Range" textfield is disabled')
.assertElementDisabled(mainDiv + 'div.ip_ranges input[name*="range-end"]',
networkName + ' "End IP Range" textfield is disabled')
.assertElementDisabled(mainDiv + 'div.ip_ranges button.ip-ranges-add',
networkName + ' "Add new IP range" button is disabled')
// VLAN
.assertElementSelected(mainDiv + 'div.vlan_start input[type="checkbox"]',
networkName + ' "Use VLAN tagging" checkbox is selected')
.assertElementEnabled(mainDiv + 'div.vlan_start input[type="text"]',
networkName + ' "Use VLAN tagging" textfield is enabled');
if (networkName === 'Storage') {
// CIDR
chain = chain.assertElementPropertyEquals(mainDiv + 'div.cidr input[type="text"]',
'value', '192.168.1.0/24', networkName + ' "CIDR" textfield has default value')
// IP Ranges
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-start"]',
'value', '192.168.1.1', networkName + ' "Start IP Range" textfield has default value')
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-end"]',
'value', '192.168.1.254', networkName + ' "End IP Range" textfield has default value')
// VLAN
.assertElementPropertyEquals(mainDiv + 'div.vlan_start input[type="text"]', 'value',
'102', networkName + ' "Use VLAN tagging" textfield has default value');
} else if (networkName === 'Management') {
// CIDR
chain = chain.assertElementPropertyEquals(mainDiv + 'div.cidr input[type="text"]',
'value', '192.168.0.0/24', networkName + ' "CIDR" textfield has default value')
// IP Ranges
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-start"]',
'value', '192.168.0.1', networkName + ' "Start IP Range" textfield has default value')
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-end"]',
'value', '192.168.0.254', networkName + ' "End IP Range" textfield has default value')
// VLAN
.assertElementPropertyEquals(mainDiv + 'div.vlan_start input[type="text"]', 'value',
'101', networkName + ' "Use VLAN tagging" textfield has default value');
} else if (networkName === 'Private') {
// CIDR
chain = chain.assertElementPropertyEquals(mainDiv + 'div.cidr input[type="text"]',
'value', '192.168.2.0/24', networkName + ' "CIDR" textfield has default value')
// IP Ranges
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-start"]',
'value', '192.168.2.1', networkName + ' "Start IP Range" textfield has default value')
.assertElementPropertyEquals(mainDiv + 'div.ip_ranges input[name*="range-end"]',
'value', '192.168.2.254', networkName + ' "End IP Range" textfield has default value')
// VLAN
.assertElementPropertyEquals(mainDiv + 'div.vlan_start input[type="text"]', 'value',
'103', networkName + ' "Use VLAN tagging" textfield has default value');
}
}
return chain;
},
checkNetrworkSettingsSegment: function(neutronType) {
var chain = this.remote;
// Check Neutron L2 subtab
chain = chain.clickByCssSelector('.subtab-link-neutron_l2')
.assertElementExists('li.active a.subtab-link-neutron_l2', '"Neutron L2" subtab is selected')
.assertElementTextEquals('h3.networks', 'Neutron L2 Configuration',
'"Neutron L2" subtab is opened');
if (neutronType === 'VLAN') {
chain = chain.assertElementContainsText('div.network-description',
'Neutron supports different types of network segmentation such as VLAN, GRE, VXLAN ' +
'etc. This section is specific to VLAN segmentation related parameters such as VLAN ID ' +
'ranges for tenant separation and the Base MAC address',
'"Neutron L2" description is correct')
.assertElementEnabled('input[name="range-start_vlan_range"]',
'"VLAN ID range" start textfield enabled')
.assertElementEnabled('input[name="range-end_vlan_range"]',
'"VLAN ID range" end textfield enabled');
} else {
chain = chain.assertElementContainsText('div.network-description',
'Neutron supports different types of network segmentation such as VLAN, GRE, VXLAN ' +
'etc. This section is specific to a tunneling segmentation related parameters such as ' +
'Tunnel ID ranges for tenant separation and the Base MAC address',
'"Neutron L2" description is correct')
.assertElementEnabled('input[name="range-start_gre_id_range"]',
'"Tunnel ID range" start textfield enabled')
.assertElementEnabled('input[name="range-end_gre_id_range"]',
'"Tunnel ID range" end textfield enabled');
}
chain = chain.assertElementEnabled('input[name="base_mac"]',
'"Base MAC address" textfield enabled')
// Check Neutron L3 subtab
.clickByCssSelector('.subtab-link-neutron_l3')
.assertElementExists('li.active a.subtab-link-neutron_l3', '"Neutron L3" subtab is selected')
.findByCssSelector('div.form-floating-network')
.assertElementTextEquals('h3', 'Floating Network Parameters',
'Default subgroup name is observed')
.assertElementContainsText('div.network-description',
'This network is used to assign Floating IPs to tenant VMs',
'Default subgroup description is observed')
.assertElementEnabled('input[name^="range-start"]',
'"Floating IP range" start textfield enabled')
.assertElementEnabled('input[name^="range-end"]',
'"Floating IP range" end textfield enabled')
.assertElementEnabled('input[name="floating_name"]',
'"Floating network name" textfield enabled')
.end()
.findByCssSelector('div.form-internal-network')
.assertElementTextEquals('h3', 'Internal Network Parameters',
'Default subgroup name is observed')
.assertElementContainsText('div.network-description',
'The Internal network connects all OpenStack nodes in the environment. All components ' +
'of an OpenStack environment communicate with each other using this network',
'Default subgroup description is observed')
.assertElementEnabled('input[name="internal_cidr"]',
'"Internal network CIDR" textfield enabled')
.assertElementEnabled('input[name="internal_gateway"]',
'"Internal network gateway" textfield enabled')
.assertElementEnabled('input[name="internal_name"]',
'"Internal network name" textfield enabled')
.end()
.findByCssSelector('div.form-dns-nameservers')
.assertElementTextEquals('h3', 'Guest OS DNS Servers', 'Default subgroup name is observed')
.assertElementContainsText('div.network-description', 'This setting is used to specify ' +
'the upstream name servers for the environment. These servers will be used to forward ' +
'DNS queries for external DNS names to DNS servers outside the environment',
'Default subgroup description is observed')
.assertElementsExist('input[name=dns_nameservers]', 2,
'"Guest OS DNS Servers" both textfields are exists')
.end()
// Check Other subtab
.clickByCssSelector('.subtab-link-network_settings')
.assertElementExists('li.active a.subtab-link-network_settings', '"Other" subtab is selected')
.assertElementTextEquals('span.subtab-group-public_network_assignment',
'Public network assignment', 'Default subgroup name is observed')
.assertElementEnabled('input[name="assign_to_all_nodes"]',
'"Assign public network to all nodes" checkbox enabled')
.assertElementTextEquals('span.subtab-group-neutron_advanced_configuration',
'Neutron Advanced Configuration', 'Default subgroup name is observed')
.assertElementEnabled('input[name="neutron_l3_ha"]', '"Neutron L3 HA" checkbox enabled');
if (neutronType === 'VLAN') {
chain = chain.assertElementEnabled('input[name="neutron_dvr"]',
'"Neutron DVR" checkbox enabled');
} else {
chain = chain.assertElementDisabled('input[name="neutron_dvr"]',
'"Neutron DVR" checkbox disabled')
.assertElementEnabled('input[name="neutron_l2_pop"]',
'"Neutron L2 population" checkbox enabled');
}
chain = chain.assertElementTextEquals('span.subtab-group-external_dns', 'Host OS DNS Servers',
'Default subgroup name is observed')
.assertElementEnabled('input[name="dns_list"]', '"DNS list" textfield enabled')
.assertElementTextEquals('span.subtab-group-external_ntp', 'Host OS NTP Servers',
'Default subgroup name is observed')
.assertElementEnabled('input[name="ntp_list"]', '"NTP server list" textfield enabled');
return chain;
},
checkNetrworkVerificationSegment: function() {
var connectSelector = 'div.connect-';
var verifyNodeSelector = 'div.verification-node-';
var descriptionConnectivityCheck = RegExp(
'Network verification checks the following[\\s\\S]*' +
'L2 connectivity checks between nodes in the environment[\\s\\S]*' +
'DHCP discover check on all nodes[\\s\\S]*' +
'Repository connectivity check from the Fuel Master node[\\s\\S]*' +
'Repository connectivity check from the Fuel Slave nodes through the public & ' +
'admin.*PXE.*networks[\\s\\S]*', 'i');
return this.remote
.clickByCssSelector('.subtab-link-network_verification')
.assertElementExists('li.active .subtab-link-network_verification',
'"Connectivity Check" subtab is selected')
.assertElementTextEquals('h3', 'Connectivity Check',
'"Connectivity Check" subtab is opened')
// Check default picture router scheme
.findByCssSelector('div.verification-network-placeholder')
.assertElementExists('div.verification-router', 'Main router picture is observed')
.assertElementExists(connectSelector + '1',
'Connection line picture for "left" node #1 is observed')
.assertElementExists(connectSelector + '2',
'Connection line picture for "center" node #2 is observed')
.assertElementExists(connectSelector + '3',
'Connection line picture for "right" node #3 is observed')
.assertElementExists(verifyNodeSelector + '1', '"Left" node #1 picture is observed')
.assertElementExists(verifyNodeSelector + '2', '"Center" node #2 picture is observed')
.assertElementExists(verifyNodeSelector + '3', '"Right" node #3 picture is observed')
.end()
// Check default verification description
.assertElementExists('ol.verification-description',
'"Connectivity check" description is observed')
.assertElementMatchesRegExp('ol.verification-description', descriptionConnectivityCheck,
'Default "Connectivity check" description is observed')
.assertElementExists(this.btnVerifySelector, '"Verify Networks" is disabled')
.assertElementExists(this.btnCancelSelector, '"Cancel Changes" button is disabled')
.assertElementExists(this.btnSaveSelector, '"Save Settings" button is disabled');
},
checkNetrworkIpRanges: function(networkName, correctIpRange, newIpRange) {
var self = this;
var netSelector = 'div.' + networkName.toLowerCase() + ' ';
var ipStartSelector = netSelector + 'div.ip_ranges input[name*="range-start"]';
var ipEndSelector = netSelector + 'div.ip_ranges input[name*="range-end"]';
var properNames = ['Public', 'Storage', 'Management', 'Baremetal', 'Private'];
if (properNames.indexOf(networkName) === -1) {
throw new Error('Invalid input value. Check networkName: "' + networkName +
'" parameter and restart test.');
}
return this.remote
// "Use the whole CIDR" option works
.then(function() {
return self.checkCidrOption(networkName);
})
.then(function() {
return self.saveSettings();
})
// Correct changing of "IP Ranges" works
.setInputValue(ipStartSelector, correctIpRange[0])
.setInputValue(ipEndSelector, correctIpRange[1])
.then(function() {
return self.saveSettings();
})
.assertElementPropertyEquals(ipStartSelector, 'value', correctIpRange[0],
networkName + ' "Start IP Range" textfield has correct new value')
.assertElementPropertyEquals(ipEndSelector, 'value', correctIpRange[1],
networkName + ' "End IP Range" textfield has correct new value')
// Adding and deleting additional "IP Ranges" fields
.then(function() {
return self.addNewIpRange(networkName, newIpRange);
})
.then(function() {
return self.saveSettings();
})
.then(function() {
return self.deleteIpRange(networkName);
})
.then(function() {
return self.saveSettings();
})
// Check "IP Ranges" Start and End validation
.then(function() {
return self.checkIpRanges(networkName);
});
},
checkIncorrectValueInput: function() {
var self = this;
return this.remote
.assertElementDisabled(this.btnSaveSelector, '"Save Settings" button is disabled')
.assertElementExists('a[class$="network_verification"]',
'"Connectivity Check" link is existed')
.clickByCssSelector('a[class$="network_verification"]')
.assertElementDisabled(this.btnVerifySelector, '"Verify Networks" button is disabled')
.then(function() {
return self.gotoNodeNetworkGroup('default');
});
},
saveSettings: function() {
return this.remote
.assertElementEnabled(this.btnSaveSelector, '"Save Settings" button is enabled')
.clickByCssSelector(this.btnSaveSelector)
.assertElementDisabled(this.btnSaveSelector, '"Save Settings" button is disabled')
.assertElementNotExists('div.has-error', 'Settings saved successfully');
},
cancelChanges: function() {
return this.remote
.assertElementEnabled(this.btnCancelSelector, '"Cancel Changes" button is enabled')
.clickByCssSelector(this.btnCancelSelector)
.assertElementDisabled(this.btnCancelSelector, '"Cancel Changes" button is disabled')
.assertElementNotExists('div.has-error', 'Settings canceled successfully');
},
createNetworkGroup: function(groupName) {
var self = this;
return this.remote
.assertElementEnabled('button.add-nodegroup-btn',
'"Add New Node Network Group" button is enabled')
.clickByCssSelector('button.add-nodegroup-btn')
.then(function() {
return self.modal.waitToOpen();
})
.then(function() {
return self.modal.checkTitle('Add New Node Network Group');
})
.assertElementEnabled('input.node-group-input-name', '"Name" textfield is enabled')
.setInputValue('input.node-group-input-name', groupName)
.then(function() {
return self.modal.clickFooterButton('Add Group');
})
.then(function() {
return self.modal.waitToClose();
})
.assertElementDisappears('.network-group-name .explanation', 1000, 'New subtab is shown')
.findByCssSelector('ul.node_network_groups li.active')
.assertElementTextEquals('a', groupName,
'New network group is appears, selected and name is correct')
.end()
.assertElementTextEquals('div.network-group-name button.btn-link', groupName,
'"' + groupName + '" node network group title appears')
.catch(function(error) {
self.remote.then(function() {
return self.modal.close();
});
throw new Error('Unexpected error via network group creation: ' + error);
});
},
deleteNetworkGroup: function(groupName) {
var self = this;
return this.remote
.assertElementContainsText('ul.node_network_groups', groupName,
'"' + groupName + '" network group is shown and name is correct')
.then(function() {
return self.gotoNodeNetworkGroup(groupName);
})
.assertElementAppears('.glyphicon-remove', 1000, 'Remove icon is shown')
.clickByCssSelector('.glyphicon-remove')
.then(function() {
return self.modal.waitToOpen();
})
.then(function() {
return self.modal.checkTitle('Remove Node Network Group');
})
.then(function() {
return self.modal.clickFooterButton('Delete');
})
.then(function() {
return self.modal.waitToClose();
})
.assertElementAppears('.network-group-name .explanation', 1000, 'Default subtab is shown')
.assertElementNotContainsText('ul.node_network_groups', groupName,
'"' + groupName + '" node network group disappears from network group list')
.assertElementNotContainsText('div.network-group-name button.btn-link', groupName,
'"' + groupName + '" node network group title disappears from "Networks" tab')
.catch(function(error) {
throw new Error('Unexpected error via network group deletion: ' + error);
});
},
checkNeutronL3ForBaremetal: function() {
return this.remote
.assertElementNotExists('div.baremetal div.has-error', 'No Baremetal errors are observed')
.assertElementExists('a[class$="neutron_l3"]', '"Neutron L3" link is existed')
.clickByCssSelector('a[class$="neutron_l3"]')
.assertElementEnabled('input[name="range-start_baremetal_range"]',
'"Ironic IP range" Start textfield is enabled')
.assertElementEnabled('input[name="range-end_baremetal_range"]',
'"Ironic IP range" End textfield is enabled')
.assertElementEnabled('input[name="baremetal_gateway"]',
'"Ironic gateway " textfield is enabled');
},
checkBaremetalIntersection: function(networkName) {
var self = this;
var networkAlertSelector = 'div.network-alert';
return this.remote
.assertElementEnabled(this.btnSaveSelector, '"Save Settings" button is enabled')
.clickByCssSelector(this.btnSaveSelector)
.assertElementEnabled('div.' + networkName + ' div.cidr div.has-error input[type="text"]',
networkName + ' "CIDR" textfield is "red" marked')
.assertElementEnabled('div.baremetal div.cidr div.has-error input[type="text"]',
'Baremetal "CIDR" textfield is "red" marked')
.assertElementExists(networkAlertSelector, 'Error message is observed')
.assertElementContainsText(networkAlertSelector,
'Address space intersection between networks', 'True error message is displayed')
.assertElementContainsText(networkAlertSelector, networkName,
'True error message is displayed')
.assertElementContainsText(networkAlertSelector, 'baremetal',
'True error message is displayed')
.then(function() {
return self.cancelChanges();
});
},
checkDefaultNetGroup: function() {
return this.remote
.assertElementContainsText('ul.node_network_groups', 'default',
'"default" network group is shown and name is correct')
.assertElementPropertyEquals('ul.node_network_groups li[role="presentation"]',
'offsetTop', '50', 'First node network group is found')
.assertElementTextEquals('ul.node_network_groups li[role="presentation"]', 'default',
'"default" network group is on top');
},
checkGateways: function(groupName, neutronType) {
var chain = this.remote;
chain = chain.assertElementDisabled('div.storage input[name="gateway"]',
'Storage "Gateway" field exists and disabled for "' + groupName + '" network group')
.assertElementDisabled('div.management input[name="gateway"]',
'Management "Gateway" field exists and disabled for "' + groupName + '" network group');
if (neutronType === 'VLAN') {
chain = chain.assertElementDisabled('div.private input[name="gateway"]',
'Private "Gateway" field exists and disabled for "' + groupName + '" network group');
}
return chain;
},
checkVLANs: function(groupName, neutronType) {
var chain = this.remote;
chain = chain.assertElementPropertyEquals('div.storage div.vlan_start input[type="text"]',
'value', '102', 'Storage "Use VLAN tagging" textfield has default value for "' +
groupName + '" network group')
.assertElementPropertyEquals('div.management div.vlan_start input[type="text"]',
'value', '101', 'Management "Use VLAN tagging" textfield has default value for "' +
groupName + '" network group');
if (neutronType === 'VLAN') {
chain = chain.assertElementPropertyEquals('div.private div.vlan_start input[type="text"]',
'value', '103', 'Private "Use VLAN tagging" textfield has default value for "' +
groupName + '" network group');
}
chain = chain.assertElementDisabled(this.btnSaveSelector, '"Save Settings" btn is disabled')
.assertElementDisabled(this.btnCancelSelector, '"Cancel Changes" button is disabled')
.assertElementNotExists('div.has-error', 'No errors are observed');
return chain;
},
checkCidrOption: function(networkName) {
var self = this;
var netSelector = 'div.' + networkName.toLowerCase() + ' ';
var cidrSelector = netSelector + 'div.cidr input[type="checkbox"]';
var ipStartSelector = netSelector + 'div.ip_ranges input[name*="range-start"]';
var ipEndSelector = netSelector + 'div.ip_ranges input[name*="range-end"]';
var defaultIpRange = {Storage: '1', Management: '0', Private: '2'};
return this.remote
.assertElementEnabled(cidrSelector,
networkName + ' "Use the whole CIDR" checkbox is enabled before changing')
.findByCssSelector(cidrSelector)
.isSelected()
.then(function(cidrStatus) {
return self.selectCidrWay(networkName, cidrStatus, cidrSelector, ipStartSelector,
ipEndSelector);
})
.end()
.assertElementPropertyEquals(ipStartSelector, 'value',
'192.168.' + defaultIpRange[networkName] + '.1',
networkName + ' "Start IP Range" textfield has default value')
.assertElementPropertyEquals(ipEndSelector, 'value',
'192.168.' + defaultIpRange[networkName] + '.254',
networkName + ' "End IP Range" textfield has default value')
.assertElementNotExists(netSelector + 'div.has-error',
'No ' + networkName + ' errors are observed');
},
selectCidrWay: function(networkName, cidrStatus, cidrSelector, ipStartSelector, ipEndSelector) {
var chain = this.remote;
chain = chain.clickByCssSelector(cidrSelector)
.assertElementEnabled(cidrSelector,
networkName + ' "Use the whole CIDR" checkbox is enabled after changing');
if (cidrStatus) {
chain = chain.assertElementNotSelected(cidrSelector,
networkName + ' "Use the whole CIDR" checkbox is not selected')
.assertElementEnabled(ipStartSelector,
networkName + ' "Start IP Range" textfield is enabled')
.assertElementEnabled(ipEndSelector,
networkName + ' "End IP Range" textfield is enabled');
} else {
chain = chain.assertElementSelected(cidrSelector,
networkName + ' "Use the whole CIDR" checkbox is selected')
.assertElementDisabled(ipStartSelector,
networkName + ' "Start IP Range" textfield is disabled')
.assertElementDisabled(ipEndSelector,
networkName + ' "End IP Range" textfield is disabled');
}
return chain;
},
addNewIpRange: function(networkName, newIpRange) {
// Works only with last range!
// Input array "newIpRange": [Start IP, End IP]
var self = this;
var chain = this.remote;
var netSelector = 'div.' + networkName.toLowerCase() + ' ';
var rowRangeSelector = netSelector + 'div.range-row';
var lastRangeSelector = rowRangeSelector + ':last-child ';
var addRangeSelector = lastRangeSelector + 'button.ip-ranges-add ';
var ipStartSelector = 'input[name*="range-start"]';
var ipEndSelector = 'input[name*="range-end"]';
chain = chain.assertElementEnabled(addRangeSelector, 'IP range add button enabled')
.findAllByCssSelector(rowRangeSelector)
.then(function(elements) {
return self.checkIpRange(addRangeSelector, rowRangeSelector, elements.length + 1);
})
.end()
.assertElementEnabled(lastRangeSelector + ipStartSelector,
networkName + ' new "Start IP Range" textfield is enabled')
.assertElementEnabled(lastRangeSelector + ipEndSelector,
networkName + ' new "End IP Range" textfield is enabled')
.assertElementPropertyEquals(lastRangeSelector + ipStartSelector, 'placeholder',
this.defaultPlaceholder,
networkName + ' new "Start IP Range" textfield has default placeholder')
.assertElementPropertyEquals(lastRangeSelector + ipEndSelector, 'placeholder',
this.defaultPlaceholder,
networkName + ' new "End IP Range" textfield has default placeholder');
if (newIpRange) {
chain = chain.setInputValue(lastRangeSelector + ipStartSelector, newIpRange[0])
.setInputValue(lastRangeSelector + ipEndSelector, newIpRange[1])
.assertElementPropertyEquals(lastRangeSelector + ipStartSelector, 'value', newIpRange[0],
networkName + ' new "Start IP Range" textfield has new value')
.assertElementPropertyEquals(lastRangeSelector + ipEndSelector, 'value', newIpRange[1],
networkName + ' new "End IP Range" textfield has new value');
}
chain = chain.assertElementNotExists(netSelector + 'div.has-error',
'No ' + networkName + ' errors are observed');
return chain;
},
deleteIpRange: function(networkName, rangeRow) {
var self = this;
var netSelector = 'div.' + networkName.toLowerCase() + ' ';
var rowRangeSelector = netSelector + 'div.range-row';
var rowSelector = rowRangeSelector + ':last-child ';
if (rangeRow) {
rowSelector = rowRangeSelector + ':nth-child(' + (rangeRow + 1).toString() + ') ';
}
var delRangeSelector = rowSelector + 'button.ip-ranges-delete';
return this.remote
.assertElementsExist(rowSelector, networkName + ' IP Range to delete exists')
.assertElementEnabled(delRangeSelector, networkName + ' IP Range delete button enabled')
.findAllByCssSelector(rowRangeSelector)
.then(function(elements) {
return self.checkIpRange(delRangeSelector, rowRangeSelector, elements.length - 1);
})
.end()
// Add more powerfull check of range deletion (values disappears)
.assertElementNotExists(netSelector + 'div.has-error',
'No ' + networkName + ' errors are observed');
},
checkIpRange: function(addremoveRangeSelector, rowRangeSelector, numRanges) {
return this.remote
.clickByCssSelector(addremoveRangeSelector)
.sleep(500)
.assertElementsExist(rowRangeSelector, numRanges, 'Correct number of IP ranges exists');
},
checkIpRanges: function(networkName) {
var self = this;
var netSelector = 'div.' + networkName.toLowerCase() + ' ';
var cidrSelector = netSelector + 'div.cidr input[type="text"]';
var ipStartSelector = netSelector + 'div.ip_ranges input[name*="range-start"]';
var ipStartErrorSel = netSelector + 'div.ip_ranges div.has-error input[name*="range-start"]';
var ipEndSelector = netSelector + 'div.ip_ranges input[name*="range-end"]';
var ipEndErrorSel = netSelector + 'div.ip_ranges div.has-error input[name*="range-end"]';
var networkAlertSelector = netSelector + 'div.ip_ranges div.validation-error';
var initValue = '192.168.';
var errorValue = '192.168.5.0/24';
var errorValues = ['.*', '.279', '.254', '.1', '.5'];
var defaultIpRange = {Storage: '1', Management: '0', Private: '2'};
return this.remote
.assertElementEnabled(cidrSelector, networkName + ' "CIDR" textfield is enabled')
.assertElementEnabled(ipStartSelector, networkName + ' "Start IP Range" txtfld is enabled')
.assertElementEnabled(ipEndSelector, networkName + ' "End IP Range" textfield is enabled')
// Check #1
.setInputValue(ipStartSelector, initValue + defaultIpRange[networkName] + errorValues[0])
.assertElementsExist(ipStartErrorSel,
networkName + ' "Start IP Range" textfield is "red" marked')
.assertElementMatchesRegExp(networkAlertSelector, /Invalid IP address/i,
'True error message is displayed')
.then(function() {
return self.cancelChanges();
})
// Check #2
.setInputValue(ipEndSelector, initValue + defaultIpRange[networkName] + errorValues[1])
.assertElementsExist(ipEndErrorSel,
networkName + ' "End IP Range" textfield is "red" marked')
.assertElementMatchesRegExp(networkAlertSelector, /Invalid IP address/i,
'True error message is displayed')
.then(function() {
return self.cancelChanges();
})
// Check #3
.setInputValue(cidrSelector, errorValue)
.assertElementsExist(ipStartErrorSel,
networkName + ' "Start IP Range" textfield is "red" marked')
.assertElementsExist(ipEndErrorSel,
networkName + ' "End IP Range" textfield is "red" marked')
.assertElementMatchesRegExp(networkAlertSelector,
/IP address does not match the network CIDR/i, 'True error message is displayed')
.then(function() {
return self.cancelChanges();
})
// Check #4
.setInputValue(ipStartSelector, initValue + defaultIpRange[networkName] + errorValues[2])
.setInputValue(ipEndSelector, initValue + defaultIpRange[networkName] + errorValues[3])
.assertElementsExist(ipStartErrorSel,
networkName + ' "Start IP Range" textfield is "red" marked')
.assertElementsExist(ipEndErrorSel,
networkName + ' "End IP Range" textfield is "red" marked')
.assertElementMatchesRegExp(networkAlertSelector,
/Start IP address must be less than end IP address/i, 'True error message is displayed')
.then(function() {
return self.cancelChanges();
})
// Check #5
.setInputValue(ipStartSelector, initValue + defaultIpRange[networkName] + errorValues[4])
.setInputValue(ipEndSelector, initValue + defaultIpRange[networkName] + errorValues[4])
.then(function() {
return self.saveSettings();
})
// Check #6
.setInputValue(ipStartSelector, ' ')
.assertElementsExist(ipStartErrorSel,
networkName + ' "Start IP Range" textfield is "red" marked')
.assertElementMatchesRegExp(networkAlertSelector, /Invalid IP address/i,
'True error message is displayed')
.then(function() {
return self.cancelChanges();
})
// Check #7
.setInputValue(ipEndSelector, ' ')
.assertElementsExist(ipEndErrorSel,
networkName + ' "End IP Range" textfield is "red" marked')
.assertElementMatchesRegExp(networkAlertSelector, /Invalid IP address/i,
'True error message is displayed')
.then(function() {
return self.cancelChanges();
});
},
checkNerworksIntersection: function(networkNameToEdit, networkName, editValues) {
// Input array "editValues": [CIDR, Start IP, End IP]
var self = this;
var netSelector1 = 'div.' + networkNameToEdit.toLowerCase() + ' ';
var cidrSelector = netSelector1 + 'div.cidr input[type="text"]';
var cidrErrorSelector = 'div.cidr div.has-error input[type="text"]';
var ipStartSelector = netSelector1 + 'div.ip_ranges input[name*="range-start"]';
var ipEndSelector = netSelector1 + 'div.ip_ranges input[name*="range-end"]';
var netSelector2 = 'div.' + networkName.toLowerCase() + ' ';
var networkAlertSelector = 'div.network-alert';
var networkAlertMessage = RegExp(
'Address space intersection between networks[\\s\\S]*' +
'(' + networkNameToEdit + '.*|' + networkName + '.*){2}[\\s\\S]*', 'i');
return this.remote
.assertElementEnabled(cidrSelector,
networkNameToEdit + ' "CIDR" textfield is enabled')
.assertElementEnabled(ipStartSelector,
networkNameToEdit + ' "Start IP Range" textfield is enabled')
.assertElementEnabled(ipEndSelector,
networkNameToEdit + ' "End IP Range" textfield is enabled')
.setInputValue(cidrSelector, editValues[0])
.setInputValue(ipStartSelector, editValues[1])
.setInputValue(ipEndSelector, editValues[2])
.assertElementEnabled(this.btnSaveSelector, '"Save Settings" button is enabled')
.clickByCssSelector(this.btnSaveSelector)
.assertElementsExist(netSelector1 + cidrErrorSelector,
networkNameToEdit + ' "CIDR" textfield is "red" marked')
.assertElementsExist(netSelector2 + cidrErrorSelector,
networkName + ' "CIDR" textfield is "red" marked')
.assertElementsExist(networkAlertSelector, 'Error message is observed')
.assertElementMatchesRegExp(networkAlertSelector, networkAlertMessage,
'True error message is displayed for intersection between' +
networkNameToEdit + ' and ' + networkName + ' networks')
.then(function() {
return self.cancelChanges();
});
}
};
return NetworksLib;
});

View File

@ -1,311 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/helpers'
], function() {
'use strict';
function SettingsLib(remote) {
this.remote = remote;
}
SettingsLib.prototype = {
constructor: SettingsLib,
gotoOpenStackSettings: function(settingsSegmentName) {
var segmentName = (settingsSegmentName.toLowerCase()).replace(' ', '_') + ' ';
var listSelector = 'ul.nav-pills.nav-stacked ';
var segmentSelector = 'a.subtab-link-' + segmentName;
var pageSelector = 'div.' + segmentName;
var activeSelector = 'li.active ';
var segmentDescription = RegExp(settingsSegmentName, 'i');
return this.remote
.assertElementsExist(listSelector, 'Default settings segment list exists')
.assertElementsExist(segmentSelector, settingsSegmentName +
' settings segment link exists')
.clickByCssSelector(segmentSelector)
.assertElementsAppear(pageSelector, 2000, settingsSegmentName +
' settings segment page is loaded')
.assertElementsExist(activeSelector + segmentSelector, settingsSegmentName +
' settings segment link exists and active')
.assertElementMatchesRegExp(activeSelector + segmentSelector, segmentDescription,
settingsSegmentName + ' settings segment link name is correct');
},
checkGeneralSegment: function() {
var accessSelector = 'div.setting-section-access';
var repositoriesSelector = 'div.setting-section-repo_setup';
var kernelSelector = 'div.setting-section-kernel_params';
var provisionSelector = 'div.setting-section-provision';
return this.remote
// Check Access subgroup
.assertElementsExist(accessSelector, 'Access subgroup exists')
.findByCssSelector(accessSelector)
.assertElementMatchesRegExp('h3', /Access/i, 'Default subgroup name is observed')
.assertElementEnabled('input[name="user"]', '"Username" textfield enabled')
.assertElementEnabled('input[name="password"]', '"Password" textfield enabled')
.assertElementEnabled('input[name="tenant"]', '"Tenant" textfield enabled')
.assertElementEnabled('input[name="email"]', '"Email" textfield enabled')
.end()
// Check Repositories subgroup
.assertElementsExist(repositoriesSelector, 'Repositories subgroup exists')
.findByCssSelector(repositoriesSelector)
.assertElementMatchesRegExp('h3', /Repositories/i, 'Default subgroup name is observed')
.assertElementContainsText('span.help-block',
'Please note: the first repository will be considered the operating system mirror ' +
'that will be used during node provisioning.\nTo create a local repository mirror on ' +
'the Fuel master node, please follow the instructions provided by running ' +
'"fuel-createmirror --help" on the Fuel master node.\nPlease make sure your Fuel ' +
'master node has Internet access to the repository before attempting to create a ' +
'mirror.\nFor more details, please refer to the documentation (https://docs.mirantis' +
'.com/openstack/fuel/fuel-9.0/operations.html#external-ubuntu-ops).',
'Default subgroup description is observed')
.assertElementsExist('div.repo-name', 8,
'Default quantity of Name textfields is observed')
.assertElementsExist('div.repo-uri', 8,
'Default quantity of URI textfields is observed')
.assertElementsExist('div.repo-priority', 8,
'Default quantity of Priority textfields is observed')
.assertElementEnabled('button.btn-add-repo', '"Add Extra Repo" button enabled')
.end()
// Check Kernel parameters subgroup
.assertElementsExist(kernelSelector, 'Kernel parameters subgroup exists')
.findByCssSelector(kernelSelector)
.assertElementMatchesRegExp('h3', /Kernel parameters/i,
'Default subgroup name is observed')
.assertElementEnabled('input[name="kernel"]', '"Initial parameters" textfield enabled')
.end()
// Check Provision subgroup
.assertElementsExist(provisionSelector, 'Provision subgroup exists')
.findByCssSelector(provisionSelector)
.assertElementMatchesRegExp('h3', /Provision/i, 'Default subgroup name is observed')
.assertElementEnabled('textarea[name="packages"]', '"Initial packages" textarea enabled')
.end();
},
checkSecuritySegment: function() {
var commonSelector = 'div.setting-section-common';
var publicTlsSelector = 'div.setting-section-public_ssl';
var servicesName = 'TLS for OpenStack public endpoints';
var horizonName = 'HTTPS for Horizon';
return this.remote
// Check Common subgroup
.assertElementsExist(commonSelector, 'Common subgroup exists')
.findByCssSelector(commonSelector)
.assertElementMatchesRegExp('h3', /Common/i, 'Default subgroup name is observed')
.assertElementEnabled('textarea[name="auth_key"]', '"Public Key" textarea enabled')
.end()
// Check Public TLS subgroup
.assertElementsExist(publicTlsSelector, 'Public TLS subgroup exists')
.findByCssSelector(publicTlsSelector)
.assertElementMatchesRegExp('h3', /Public TLS/i, 'Default subgroup name is observed')
.findByCssSelector('div.checkbox-group')
.assertElementEnabled('input[label="' + servicesName + '"]', '"' + servicesName +
'" checkbox is enabled')
.assertElementNotSelected('input[label="' + servicesName + '"]', '"' + servicesName +
'" checkbox is not selected')
.assertElementContainsText('label', servicesName, '"' + servicesName +
'" label has default description')
.assertElementContainsText('span.help-block',
'Enable TLS termination on HAProxy for OpenStack services', '"' + servicesName +
'" description has default value')
.end()
.findByCssSelector('div.checkbox-group.disabled')
.assertElementDisabled('input[label="' + horizonName + '"]', '"' + horizonName +
'" checkbox is disabled')
.assertElementNotSelected('input[label="' + horizonName + '"]', '"' + horizonName +
'" checkbox is not selected')
.assertElementContainsText('label', horizonName, '"' + horizonName +
'" label has default description')
.assertElementContainsText('span.help-block',
'Secure access to Horizon enabling HTTPS instead of HTTP', '"' + horizonName +
'" description has default value')
.end()
.end();
},
checkComputeSegment: function() {
var commonSelector = 'div.setting-section-common';
var kvmSelector = 'input[value="kvm"]';
var qemuSelector = 'input[value="qemu"]';
var novaSelector = 'input[name="nova_quota"]';
var stateSelector = 'input[name="resume_guests_state_on_host_boot"]';
return this.remote
// Check Common subgroup
.assertElementsExist(commonSelector, 'Common subgroup exists')
.findByCssSelector(commonSelector)
.assertElementMatchesRegExp('h3', /Common/i, 'Default subgroup name is observed')
.assertElementMatchesRegExp('h4', /Hypervisor type/i, 'Default name is observed')
.assertElementEnabled(kvmSelector, '"KVM" radiobutton is enabled')
.assertElementNotSelected(kvmSelector, '"KVM" radiobutton is not selected')
.assertElementEnabled(qemuSelector, '"QEMU" radiobutton is enabled')
.assertElementSelected(qemuSelector, '"QEMU" radiobutton is selected')
.assertElementEnabled(novaSelector, '"Nova quotas" checkbox is enabled')
.assertElementNotSelected(novaSelector, '"Nova quotas" checkbox is not selected')
.assertElementEnabled(stateSelector,
'"Resume guests state on host boot" checkbox is enabled')
.assertElementSelected(stateSelector,
'"Resume guests state on host boot" checkbox is selected')
.end();
},
checkStorageSegment: function() {
var commonSelector = 'div.setting-section-common';
var storageSelector = 'div.setting-section-storage';
var lvmSelector = 'input[name="volumes_lvm"]';
var blockSelector = 'input[name="volumes_block_device"]';
var cephSelector = 'input[name="volumes_ceph"]';
var imagesSelector = 'input[name="images_ceph"]';
var ephemeralSelector = 'input[name="ephemeral_ceph"]';
var objectsSelector = 'input[name="objects_ceph"]';
return this.remote
// Check Common subgroup
.assertElementsExist(commonSelector, 'Common subgroup exists')
.findByCssSelector(commonSelector)
.assertElementMatchesRegExp('h3', /Common/i, 'Default subgroup name is observed')
.assertElementEnabled('input[name="use_cow_images"]',
'"Use qcow format for images" checkbox is enabled')
.assertElementSelected('input[name="use_cow_images"]',
'"Use qcow format for images" checkbox is selected')
.end()
// Check Storage Backends subgroup
.assertElementsExist(storageSelector, 'Storage Backends subgroup exists')
.findByCssSelector(storageSelector)
.assertElementMatchesRegExp('h3', /Storage Backends/i,
'Default subgroup name is observed')
.assertElementEnabled(lvmSelector,
'"Cinder LVM over iSCSI for volumes" checkbox is enabled')
.assertElementSelected(lvmSelector,
'"Cinder LVM over iSCSI for volumes" checkbox is selected')
.assertElementEnabled(blockSelector, '"Cinder Block device driver" checkbox is enabled')
.assertElementNotSelected(blockSelector,
'"Cinder Block device driver" checkbox is not selected')
.assertElementDisabled(cephSelector,
'"Ceph RBD for volumes (Cinder)" checkbox is disabled')
.assertElementNotSelected(cephSelector,
'"Ceph RBD for volumes (Cinder)" checkbox is not selected')
.assertElementEnabled(imagesSelector,
'"Ceph RBD for images (Glance)" checkbox is enabled')
.assertElementNotSelected(imagesSelector,
'"Ceph RBD for images (Glance)" checkbox is not selected')
.assertElementEnabled(ephemeralSelector,
'"Ceph RBD for ephemeral volumes (Nova)" checkbox is enabled')
.assertElementNotSelected(ephemeralSelector,
'"Ceph RBD for ephemeral volumes (Nova)" checkbox is not selected')
.assertElementEnabled(objectsSelector,
'"Ceph RadosGW for objects (Swift API)" checkbox is enabled')
.assertElementNotSelected(objectsSelector,
'"Ceph RadosGW for objects (Swift API)" checkbox is not selected')
.assertElementEnabled('input[name="osd_pool_size"]',
'"Ceph object replication factor" textfield is enabled')
.end();
},
checkLoggingSegment: function() {
var commonSelector = 'div.setting-section-common';
var syslogSelector = 'div.setting-section-syslog';
var puppetSelector = 'input[name="puppet_debug"]';
var debugSelector = 'input[name="debug"]';
var metadataSelector = 'input[name="metadata"]';
var udpSelector = 'input[value="udp"]';
var tcpSelector = 'input[value="tcp"]';
return this.remote
// Check Common subgroup
.assertElementsExist(commonSelector, 'Common subgroup exists')
.findByCssSelector(commonSelector)
.assertElementMatchesRegExp('h3', /Common/i, 'Default subgroup name is observed')
.assertElementEnabled(puppetSelector, '"Puppet debug logging" checkbox is enabled')
.assertElementSelected(puppetSelector, '"Puppet debug logging" checkbox is selected')
.assertElementEnabled(debugSelector, '"OpenStack debug logging" checkbox is enabled')
.assertElementNotSelected(debugSelector,
'"OpenStack debug logging" checkbox is not selected')
.end()
// Check Syslog subgroup
.assertElementsExist(syslogSelector, 'Syslog subgroup exists')
.findByCssSelector(syslogSelector)
.assertElementMatchesRegExp('h3', /Syslog/i, 'Default subgroup name is observed')
.assertElementEnabled(metadataSelector, '"Syslog" checkbox is enabled')
.assertElementNotSelected(metadataSelector, '"Syslog" checkbox is not selected')
.assertElementDisabled('input[name="syslog_server"]', '"Hostname" textfield is disabled')
.assertElementDisabled('input[name="syslog_port"]', '"Port" textfield is disabled')
.assertElementDisabled(udpSelector, '"UDP" radiobutton is disabled')
.assertElementNotSelected(udpSelector, '"UDP" radiobutton is not selected')
.assertElementDisabled(tcpSelector, '"TCP" radiobutton is disabled')
.assertElementSelected(tcpSelector, '"TCP" radiobutton is selected')
.end();
},
checkOpenStackServicesSegment: function() {
var componentsSelector = 'div.setting-section-additional_components';
var saharaSelector = 'input[name="sahara"]';
var ceilometerSelector = 'input[name="ceilometer"]';
var mongoSelector = 'input[name="mongo"]';
var ironicSelector = 'input[name="ironic"]';
return this.remote
// Check Additional Components subgroup
.assertElementsExist(componentsSelector, 'Additional Components subgroup exists')
.findByCssSelector(componentsSelector)
.assertElementMatchesRegExp('h3', /Additional Components/i,
'Default subgroup name is observed')
.assertElementEnabled(saharaSelector, '"Install Sahara" checkbox is enabled')
.assertElementNotSelected(saharaSelector, '"Install Sahara" checkbox is not selected')
.assertElementEnabled(ceilometerSelector, '"Install Ceilometer" checkbox is enabled')
.assertElementNotSelected(ceilometerSelector,
'"Install Ceilometer" checkbox is not selected')
.assertElementDisabled(mongoSelector, '"Use external Mongo DB" checkbox is disabled')
.assertElementNotSelected(mongoSelector,
'"Use external Mongo DB" checkbox is not selected')
.assertElementEnabled(ironicSelector, '"Install Ironic" checkbox is enabled')
.assertElementNotSelected(ironicSelector, '"Install Ironic" checkbox is not selected')
.end();
},
checkOtherSegment: function() {
var vpnSelector = 'div.setting-section-VPNaaS';
var zabbixSelector = 'div.setting-section-zabbix_monitoring';
var loggingSelector = 'div.setting-section-logging';
return this.remote
// Check VPNaaS plugin for Neutron subgroup
.assertElementsExist(vpnSelector, '"VPNaaS plugin" for Neutron subgroup exists')
.findByCssSelector(vpnSelector)
.assertElementMatchesRegExp('label', /VPNaaS plugin for Neutron/i,
'Default subgroup name is observed')
.assertElementDisabled('input[name="VPNaaS"]', '"Versions 1.1.0" radiobutton is disabled')
.assertElementSelected('input[name="VPNaaS"]', '"Versions 1.1.0" radiobutton is selected')
.end()
// Check Zabbix for Fuel subgroup
.assertElementsExist(zabbixSelector, 'Zabbix for Fuel subgroup exists')
.findByCssSelector(zabbixSelector)
.assertElementMatchesRegExp('label', /Zabbix for Fuel/i,
'Default subgroup name is observed')
.assertElementDisabled('input[label="1.0.0"]', '"Versions 1.0.0" radiobutton is disabled')
.assertElementSelected('input[label="1.0.0"]', '"Versions 1.0.0" radiobutton is selected')
.assertElementDisabled('input[label="2.0.0"]', '"Versions 2.0.0" radiobutton is disabled')
.assertElementNotSelected('input[label="2.0.0"]',
'"Versions 2.0.0" radiobutton is not selected')
.assertElementDisabled('input[name="zabbix_text_1"]', '"label 1.1" textfield is disabled')
.end()
// Check The Logging, Monitoring and Alerting (LMA) Collector Plugin subgroup
.assertElementsExist(loggingSelector,
'"The Logging, Monitoring and Alerting (LMA) Collector Plugin" subgroup exists')
.findByCssSelector(loggingSelector)
.assertElementMatchesRegExp('label',
/.*The Logging, Monitoring and Alerting.*LMA.*Collector Plugin.*/i,
'Default subgroup name is observed')
.assertElementDisabled('input[name="logging"]',
'"Versions 0.7.0" radiobutton is disabled')
.assertElementSelected('input[name="logging"]',
'"Versions 0.7.0" radiobutton is selected')
.assertElementDisabled('input[name="logging_text"]', '"label" textfield is disabled')
.end();
}
};
return SettingsLib;
});

View File

@ -1,207 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern!object',
'tests/functional/pages/common',
'tests/functional/pages/cluster',
'tests/functional/nightly/library/settings'
], function(registerSuite, Common, ClusterPage, SettingsLib) {
'use strict';
registerSuite(function() {
var common,
clusterPage,
clusterName,
settingsLib;
return {
name: 'Settings Tab Segment',
setup: function() {
common = new Common(this.remote);
clusterPage = new ClusterPage(this.remote);
settingsLib = new SettingsLib(this.remote);
clusterName = common.pickRandomName('VLAN Cluster');
return this.remote
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(clusterName);
})
.then(function() {
return clusterPage.goToTab('Settings');
});
},
'Check "General" segment': function() {
var pageTitleSelector = 'div.title';
var segmentSelector = 'li.active a.subtab-link-general';
return this.remote
.assertElementMatchesRegExp(pageTitleSelector, /OpenStack Settings/i,
'OpenStack Settings page has default name')
.assertElementsExist(segmentSelector, 'General Settings segment link exists and active')
.assertElementMatchesRegExp(segmentSelector, /General/i,
'General Settings segment link name is correct')
.then(function() {
return settingsLib.checkGeneralSegment();
})
.assertElementEnabled('button.btn-load-defaults', '"Load Defaults" button is enabled')
.assertElementDisabled('button.btn-revert-changes', '"Cancel Changes" button is disabled')
.assertElementDisabled('button.btn-apply-changes', '"Save Settings" button is disabled');
},
'Check "Security" segment': function() {
var segmentName = 'Security';
return this.remote
.then(function() {
return settingsLib.gotoOpenStackSettings(segmentName);
})
.then(function() {
return settingsLib.checkSecuritySegment();
});
},
'Check "Compute" segment': function() {
var segmentName = 'Compute';
return this.remote
.then(function() {
return settingsLib.gotoOpenStackSettings(segmentName);
})
.then(function() {
return settingsLib.checkComputeSegment();
});
},
'Check "Storage" segment': function() {
var segmentName = 'Storage';
return this.remote
.then(function() {
return settingsLib.gotoOpenStackSettings(segmentName);
})
.then(function() {
return settingsLib.checkStorageSegment();
});
},
'Check "Logging" segment': function() {
var segmentName = 'Logging';
return this.remote
.then(function() {
return settingsLib.gotoOpenStackSettings(segmentName);
})
.then(function() {
return settingsLib.checkLoggingSegment();
});
},
'Check "OpenStack Services" segment': function() {
var segmentName = 'OpenStack Services';
return this.remote
.then(function() {
return settingsLib.gotoOpenStackSettings(segmentName);
})
.then(function() {
return settingsLib.checkOpenStackServicesSegment();
});
},
'Check "Other" segment': function() {
var segmentName = 'Other';
return this.remote
.then(function() {
return settingsLib.gotoOpenStackSettings(segmentName);
})
.then(function() {
return settingsLib.checkOtherSegment();
});
},
'User returns to the selected segment on "Settings" tab': function() {
return this.remote
.then(function() {
return clusterPage.goToTab('Nodes');
})
.assertElementsAppear('a.nodes.active', 2000, '"Nodes" tab is opened')
.then(function() {
return clusterPage.goToTab('Settings');
})
.assertElementsAppear('a.settings.active', 2000, '"Settings" tab is opened')
.assertElementsExist('div.other', '"Other" settings segment page is opened')
.assertElementsExist('li.active a.subtab-link-other',
'"Other" settings segment link exists and active')
.assertElementMatchesRegExp('li.active a.subtab-link-other', /Other/i,
'"Other" settings segment link name is correct')
.then(function() {
return settingsLib.checkOtherSegment();
});
},
'No "Node network group" item via sorting/filtering for unallocated nodes': function() {
var itemName = 'Node network group';
var itemRegExp = RegExp('[\\s\\S]*[^(' + itemName + ')][\\s\\S]*', 'i');
var btnSortSelector = 'button.btn-sorters';
var btnFilterSelector = 'button.btn-filters';
var btnMoreSelector = 'div.more-control button.btn-link';
var popoverSelector = 'div.popover ';
var popContentSelector = popoverSelector + 'div.popover-content div';
return this.remote
.then(function() {
return clusterPage.goToTab('Nodes');
})
.assertElementsAppear('a.nodes.active', 2000, '"Nodes" tab is opened')
.assertElementsExist('button.btn-add-nodes', '"Add Nodes" button exists')
.clickByCssSelector('button.btn-add-nodes')
// Check sorting
.assertElementsExist(btnSortSelector, '"Sort Nodes" button is exists')
.clickByCssSelector(btnSortSelector)
.assertElementsAppear('div.sorters', 1000, '"Sort" pane is appears')
.assertElementsExist(btnMoreSelector, '"More" sort button exists')
.clickByCssSelector(btnMoreSelector)
.assertElementsAppear(popoverSelector, 1000, '"More" sort popover is appears')
.assertElementNotExists('input[label="' + itemName + '"]', 'No "' + itemName +
'" item checkbox via sorting for unallocated nodes')
.assertElementMatchesRegExp(popContentSelector, itemRegExp, 'No "' + itemName +
'" item label via sorting for unallocated nodes')
// Check filtering
.assertElementsExist(btnFilterSelector, '"Filter Nodes" button is exists')
.clickByCssSelector(btnFilterSelector)
.assertElementsAppear('div.filters', 1000, '"Filter" pane is appears')
.assertElementsExist(btnMoreSelector, '"More" filter button exists')
.clickByCssSelector(btnMoreSelector)
.assertElementsAppear(popoverSelector, 1000, '"More" filter popover is appears')
.assertElementNotExists('input[label="' + itemName + '"]', 'No "' + itemName +
'" item checkbox via filtering for unallocated nodes')
.assertElementMatchesRegExp(popContentSelector, itemRegExp, 'No "' + itemName +
'" item label via filtering for unallocated nodes');
},
'Check node roles edition': function() {
var nodeSelector = 'div.node ';
var btnEditSelector = 'button.btn-edit-roles';
var btnApplySelector = 'button.btn-apply';
var rolesRegExp = RegExp('[\\s\\S]*(controller.*|base-os.*){2}[\\s\\S]*', 'i');
return this.remote
.then(function() {
return common.addNodesToCluster(1, ['Controller']);
})
.assertElementsExist(nodeSelector + 'input', '"Controller" node exists')
.clickByCssSelector(nodeSelector + 'input')
.assertElementsExist(btnEditSelector, '"Edit Roles" button exists')
.clickByCssSelector(btnEditSelector)
.then(function() {
return clusterPage.checkNodeRoles('Operating System');
})
.assertElementsExist(btnApplySelector, '"Apply Changes" button exists')
.clickByCssSelector(btnApplySelector)
.waitForElementDeletion(btnApplySelector, 2000)
.assertElementMatchesRegExp(nodeSelector + 'div.role-list', rolesRegExp,
'"Controller" and "Operating System" node roles are observed');
}
};
});
});

View File

@ -1,400 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern!object',
'tests/functional/pages/common',
'tests/functional/pages/clusters',
'tests/functional/pages/dashboard',
'tests/functional/pages/modal',
'intern/dojo/node!leadfoot/Command',
'tests/functional/nightly/library/generic',
'tests/functional/nightly/library/equipment'
], function(registerSuite, Common, ClusterPage, DashboardPage, ModalWindow, Command, GenericLib,
EquipmentLib) {
'use strict';
registerSuite(function() {
var common,
clusterPage,
clusterName,
dashboardPage,
modal,
command,
genericLib,
equipmentLib;
var controllerName = '###EpicBoost###_Node_1';
var computeName = '###EpicBoost###_Node_2';
var correlationName = '###EpicBoost###';
var computeMac = '';
var computeIp = '';
var nodesController = 2;
var nodesCompute = 1;
var nodesDiscover = 3;
var nodesError = 1;
var nodesOffline = 1;
var nodesCluster = nodesController + nodesCompute;
var totalNodes = nodesCluster + nodesDiscover + nodesError + nodesOffline;
var inputArray = [totalNodes, nodesCluster, nodesDiscover, nodesError, nodesOffline];
var filterArray = [nodesCluster + nodesDiscover, nodesCluster, nodesDiscover, 0, 0];
var nodeSelector = 'div.node';
var clusterSelector = nodeSelector + '.pending_addition';
return {
name: 'Nodes across environment',
setup: function() {
common = new Common(this.remote);
clusterPage = new ClusterPage(this.remote);
clusterName = common.pickRandomName('VLAN Cluster');
dashboardPage = new DashboardPage(this.remote);
modal = new ModalWindow(this.remote);
command = new Command(this.remote);
genericLib = new GenericLib(this.remote);
equipmentLib = new EquipmentLib(this.remote);
return this.remote
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(clusterName);
})
.then(function() {
return common.addNodesToCluster(nodesController, ['Controller']);
})
.then(function() {
return common.addNodesToCluster(nodesCompute, ['Compute']);
});
},
'Node settings pop-up contains environment and node network group names': function() {
var ipSelector = 'div[aria-labelledby="headinginterfaces"] .node-details-row:nth-child(3)';
var sumSelector = 'div.node-summary';
var descriptionClusterNode = RegExp(
'Environment.*' + clusterName + '[\\s\\S]*' +
'Node network group.*default[\\s\\S]*', 'i');
var descriptionDiscoveredNode = RegExp(
'[\\s\\S]*[^(Environment)].*[^(' + clusterName + ')]' +
'[\\s\\S]*[^(Node network group)].*[^(default)][\\s\\S]*', 'i');
return this.remote
.then(function() {
return genericLib.gotoPage('Equipment');
})
.assertElementsExist('div.nodes-group div.node', '"Equipment" page is not empty')
// Check correct nodes addiction
.then(function() {
return equipmentLib.checkNodesSegmentation('standard', inputArray, false);
})
.assertElementContainsText(clusterSelector + ':nth-child(1)', 'CONTROLLER',
'"Controller" node #1 was successfully added to cluster')
.assertElementContainsText(clusterSelector + ':nth-child(2)', 'CONTROLLER',
'"Controller" node #2 was successfully added to cluster')
.assertElementContainsText(clusterSelector + ':nth-child(3)', 'COMPUTE',
'"Compute" node was successfully added to cluster')
// Precondition
.then(function() {
return equipmentLib.renameNode(clusterSelector + ':first-child', controllerName);
})
.then(function() {
return equipmentLib.renameNode(clusterSelector + ':last-child', computeName);
})
// Check "Pending Addition" node
.assertElementsExist(clusterSelector + ':last-child div.node-settings',
'Node settings button for Compute node exists')
.clickByCssSelector(clusterSelector + ':last-child div.node-settings')
.then(function() {
return modal.waitToOpen();
})
.then(function() {
return modal.checkTitle(computeName);
})
.assertElementMatchesRegExp(sumSelector, descriptionClusterNode,
'Environment name and "default" node network group name are exist and correct')
// Get IP and MAC for next tests
.findByCssSelector(sumSelector + ' div:nth-child(4) > span')
.getVisibleText()
.then(function(visibleText) {
computeMac = visibleText;
})
.end()
.clickByCssSelector('div[id="headinginterfaces"] i')
.findByCssSelector(ipSelector + ' span')
.getVisibleText()
.then(function(visibleText) {
computeIp = visibleText;
})
.end()
.then(function() {
return modal.close();
})
// Check clean "Discovered" node
.clickByCssSelector(nodeSelector + '.discover div.node-settings')
.then(function() {
return modal.waitToOpen();
})
.assertElementMatchesRegExp(sumSelector, descriptionDiscoveredNode,
'Environment name and "default" node network group name are not observed')
.then(function() {
return modal.close();
});
},
'Standard and Compact Node view support': function() {
var preSelector = 'input[name="view_mode"][value="';
var compactSelector = preSelector + 'compact"]';
var standardSelector = preSelector + 'standard"]';
return this.remote
// Check Compact Node view
.assertElementsExist(compactSelector, '"Compact Node" button is available')
.findByCssSelector(compactSelector)
.type('\uE00D')
.end()
.then(function() {
return equipmentLib.checkNodesSegmentation('compact', inputArray, false);
})
// Check Standard Node view
.assertElementsExist(standardSelector, '"Standard Node" button is available')
.findByCssSelector(standardSelector)
.type('\uE00D')
.end()
.then(function() {
return equipmentLib.checkNodesSegmentation('standard', inputArray, false);
});
},
'Quick Search support for "Equipment" page': function() {
var nodeNameSelector = clusterSelector + ' div.name p';
var btnClearSelector = 'button.btn-clear-search';
var txtSearchSelector = 'input[name="search"]';
return this.remote
.assertElementsExist('button.btn-search', '"Quick Search" button is exists')
.clickByCssSelector('button.btn-search')
.assertElementsAppear(txtSearchSelector, 1000, 'Textfield for search value appears')
// Controller search
.setInputValue(txtSearchSelector, controllerName)
.sleep(500)
.assertElementsExist(nodeSelector, 1, 'Only one node with correct Controller name "' +
controllerName + '" is observed')
.assertElementTextEquals(nodeNameSelector, controllerName,
'Controller node is searched correctly')
.assertElementsExist(btnClearSelector, '"Clear Search" button is exists')
.clickByCssSelector(btnClearSelector)
.assertElementsExist(nodeSelector, totalNodes, 'Default nodes quantity is observed')
.assertElementPropertyEquals(txtSearchSelector, 'value', '',
'Textfield for search value is cleared')
// "Empty" search
.setInputValue(txtSearchSelector, '><+_')
.sleep(500)
.assertElementNotExists(nodeSelector, 'No nodes are observed')
.assertElementMatchesRegExp('div.alert-warning',
/.*No nodes found matching the selected filters.*/i,
'Default warning message is observed')
.clickByCssSelector(btnClearSelector)
// Compute MAC address search
.setInputValue(txtSearchSelector, computeMac)
.sleep(500)
.assertElementsExist(nodeSelector, 1, 'Only one node with correct Compute MAC address "' +
computeMac + '" is observed')
.assertElementTextEquals(nodeNameSelector, computeName,
'Compute node is searched correctly')
.clickByCssSelector(btnClearSelector)
// Correlation of controller and compute search
.setInputValue(txtSearchSelector, correlationName)
.sleep(500)
.assertElementsExist(nodeSelector, 2, 'Only two nodes with correlation of their names "' +
correlationName + '" are observed')
.assertElementTextEquals(clusterSelector + ':first-child div.name p', controllerName,
'Controller node is searched correctly')
.assertElementTextEquals(clusterSelector + ':last-child div.name p', computeName,
'Compute node is searched correctly')
.clickByCssSelector(btnClearSelector)
// Compute IP address search
.setInputValue(txtSearchSelector, computeIp)
.sleep(500)
.assertElementsExist(nodeSelector, 1, 'Only one node with correct Compute IP address "' +
computeIp + '" is observed')
.assertElementTextEquals(nodeNameSelector, computeName,
'Compute node is searched correctly');
},
'Quick Search results saved after refreshing of page': function() {
return this.remote
.then(function() {
return command.refresh();
})
.then(function() {
return equipmentLib.checkSearchPageSwitching('Equipment', computeName);
});
},
'Quick Search results saved after switching to other page': function() {
return this.remote
.then(function() {
return equipmentLib.checkSearchPageSwitching('Environments', computeName);
})
.then(function() {
return equipmentLib.checkSearchPageSwitching('Releases', computeName);
})
.then(function() {
return equipmentLib.checkSearchPageSwitching('Plugins', computeName);
})
.then(function() {
return equipmentLib.checkSearchPageSwitching('Support', computeName);
})
.clickByCssSelector('button.btn-clear-search');
},
'Labels support for "Equipment" page': function() {
var labelName = 'Boost_label';
var labelValue = '1.5';
var btnLabelsSelector = 'button.btn-labels';
var btnAddLabelSelector = 'button.btn-add-label';
var btnApplySelector = 'button.btn-success';
var nameSelector = 'input[label="Name"]';
var valueSelector = 'input[label="Value"]';
var labelSelector = nodeSelector + ' div.node-labels button.btn-link';
var popoverSelector = 'div.popover ';
var labelPaneSelector = 'div.labels ';
var labelCheckboxSelector = labelPaneSelector + 'input[type="checkbox"]';
return this.remote
.assertElementsExist(nodeSelector + 'input', '"Controller" node exists')
.clickByCssSelector(nodeSelector + 'input')
// Add label
.assertElementEnabled(btnLabelsSelector, '"Manage Labels" button is enabled')
.clickByCssSelector(btnLabelsSelector)
.assertElementsAppear(labelPaneSelector, 1000, '"Manage Labels" pane appears')
.assertElementEnabled(btnAddLabelSelector, '"Add Label" button is enabled')
.clickByCssSelector(btnAddLabelSelector)
.assertElementEnabled(nameSelector, '"Name" textfield is enabled')
.assertElementEnabled(valueSelector, '"Value" textfield is enabled')
.setInputValue(nameSelector, labelName)
.setInputValue(valueSelector, labelValue)
.assertElementEnabled(btnApplySelector, '"Apply" button is enabled')
.clickByCssSelector(btnApplySelector)
.assertElementsAppear(labelSelector, 2000, '"Controller" node label appears')
.clickByCssSelector(labelSelector)
.assertElementsAppear(popoverSelector, 1000, 'Node label appears')
.assertElementContainsText(popoverSelector + 'li.label',
labelName + ' "' + labelValue + '"', 'True label message is observed')
// Remove label
.clickByCssSelector(btnLabelsSelector)
.assertElementsAppear(labelCheckboxSelector, 1000, '"Current label" checkbox appears')
.clickByCssSelector(labelCheckboxSelector)
.clickByCssSelector(btnApplySelector)
.assertElementDisappears(labelSelector, 2000, '"Controller" node label dissappears');
},
'Sorting support for "Equipment" page': function() {
return this.remote
.assertElementsExist('button.btn-sorters', '"Sort Nodes" button is exists')
.clickByCssSelector('button.btn-sorters')
.assertElementsAppear('div.sorters', 1000, '"Sort" pane is appears')
.then(function() {
return equipmentLib.checkDefaultSorting('down', inputArray);
})
.clickByCssSelector('div.sort-by-status-asc .btn-default')
.then(function() {
return equipmentLib.checkDefaultSorting('up', inputArray);
});
},
'Filtering support for "Equipment" page': function() {
var filterSelector = 'div.filter-by-status';
return this.remote
.assertElementsExist('button.btn-filters', '"Filter Nodes" button is exists')
.clickByCssSelector('button.btn-filters')
.assertElementsAppear('div.filters', 1000, '"Filter" pane is appears')
.then(function() {
return equipmentLib.checkNodesSegmentation('standard', inputArray, false);
})
.assertElementsExist(filterSelector, 'Filter sorting block is observed')
.assertElementContainsText(filterSelector + ' .btn-default', 'Status',
'Filter by status is default')
.clickByCssSelector(filterSelector + ' .btn-default')
.assertElementsAppear('div.popover', 1000, '"Status" filter popover is appears')
.clickByCssSelector('input[name="discover"]')
.clickByCssSelector('input[name="pending_addition"]')
.assertElementsAppear(filterSelector, 1000, 'Filter by status is appears')
.then(function() {
return equipmentLib.checkSortingPageSwitching('Equipment', filterArray);
});
},
'Sorting and Filtering results saved after refreshing of page': function() {
return this.remote
.then(function() {
return command.refresh();
})
.then(function() {
return equipmentLib.checkSortingPageSwitching('Equipment', filterArray);
});
},
'Sorting and Filtering results saved after switching to other page': function() {
return this.remote
.then(function() {
return equipmentLib.checkSortingPageSwitching('Environments', filterArray);
})
.then(function() {
return equipmentLib.checkSortingPageSwitching('Releases', filterArray);
})
.then(function() {
return equipmentLib.checkSortingPageSwitching('Plugins', filterArray);
})
.then(function() {
return equipmentLib.checkSortingPageSwitching('Support', filterArray);
})
.clickByCssSelector('button.btn-reset-filters');
},
'Node groups segmentation on "Equipment" page': function() {
return this.remote
.then(function() {
return genericLib.gotoPage('Environments');
})
// Start deployment
.then(function() {
return clusterPage.goToEnvironment(clusterName);
})
.then(function() {
return dashboardPage.startDeployment();
})
.assertElementExists('.dashboard-block .progress', 'Deployment is started')
// Check node groups segmentation
.then(function() {
return genericLib.gotoPage('Equipment');
})
.assertElementNotExists(clusterSelector, '"Pending Addition" node group is gone')
.then(function() {
return equipmentLib.checkNodesSegmentation('standard', inputArray, true);
});
},
'"Offline" node deletion from "Equipment" page': function() {
var offlineSelector = nodeSelector + '.offline';
return this.remote
.assertElementsExist(offlineSelector, '"Offline" node is observed')
.assertElementsExist(offlineSelector + ' button.node-remove-button',
'Remove offline node button is exists')
.clickByCssSelector(offlineSelector + ' button.node-remove-button')
.then(function() {
return modal.waitToOpen();
})
.then(function() {
return modal.checkTitle('Remove Node');
})
.assertElementsExist('button.btn-danger.btn-delete', 'Remove button is exists')
.clickByCssSelector('button.btn-danger.btn-delete')
.then(function() {
return modal.waitToClose();
})
.then(function() {
return command.refresh();
})
.assertElementsAppear('div.equipment-page', 5000, 'Page refreshed successfully')
.assertElementNotExists(offlineSelector, '"Offline" node is gone');
}
};
});
});

View File

@ -1,347 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern!object',
'tests/functional/pages/common',
'tests/functional/pages/cluster',
'tests/functional/nightly/library/networks'
], function(registerSuite, Common, ClusterPage, NetworksLib) {
'use strict';
registerSuite(function() {
var div,
divIp,
common,
clusterPage,
clusterName,
networksLib;
return {
name: 'GUI support for Ironic',
setup: function() {
// Create cluster with additional service "Ironic"
div = 'div.baremetal ';
divIp = 'div.baremetal div.ip_ranges ';
common = new Common(this.remote);
clusterPage = new ClusterPage(this.remote);
networksLib = new NetworksLib(this.remote);
clusterName = common.pickRandomName('Ironic Cluster');
return this.remote
// Enabling Ironic when creating environment
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(
clusterName,
{
'Additional Services': function() {
return this.remote
.clickByCssSelector('input[value$="ironic"]');
}
}
);
});
},
'Check Ironic item on Settings tab': function() {
return this.remote
// Check Ironic item on Settings tab
.then(function() {
return clusterPage.goToTab('Settings');
})
.clickLinkByText('OpenStack Services')
.assertElementEnabled('input[name=ironic]', 'Ironic item is enabled')
.assertElementSelected('input[name=ironic]', 'Ironic item is selected')
// Check "Baremetal Network" initial state
.then(function() {
return clusterPage.goToTab('Networks');
})
.then(function() {
return networksLib.checkNetworkInitialState('Baremetal');
});
},
'Baremetal Network "IP Ranges" correct changing': function() {
var ipRangeStart = '192.168.3.15';
var ipRangeEnd = '192.168.3.100';
return this.remote
// Change network settings
.setInputValue(divIp + 'input[name*="range-start"]', ipRangeStart)
.setInputValue(divIp + 'input[name*="range-end"]', ipRangeEnd)
.assertElementNotExists(div + 'div.has-error', 'No Baremetal errors are observed')
.then(function() {
return networksLib.saveSettings();
});
},
'Baremetal Network "IP Ranges" adding and deleting additional fields': function() {
var ipRangeStart = ['192.168.3.1', '192.168.3.55'];
var ipRangeEnd = ['192.168.3.50', '192.168.3.70'];
return this.remote
// Change network settings
.setInputValue(divIp + 'input[name*="range-start"]', ipRangeStart[0])
.setInputValue(divIp + 'input[name*="range-end"]', ipRangeEnd[0])
// Add new IP range
.clickByCssSelector(divIp + 'button.ip-ranges-add')
.assertElementsExist(divIp + 'div.range-row', 2, 'New IP range is appears')
.assertElementEnabled(divIp + 'div.range-row:nth-child(3) input[name*="range-start"]',
'Baremetal new "Start IP Range" textfield is enabled')
.assertElementEnabled(divIp + 'div.range-row:nth-child(3) input[name*="range-end"]',
'Baremetal new "End IP Range" textfield is enabled')
.setInputValue(divIp + 'div.range-row:nth-child(3) input[name*="range-start"]',
ipRangeStart[1])
.setInputValue(divIp + 'div.range-row:nth-child(3) input[name*="range-end"]',
ipRangeEnd[1])
.assertElementNotExists(div + 'div.has-error', 'No Baremetal errors are observed')
.then(function() {
return networksLib.saveSettings();
})
// Remove just added IP range
.assertElementEnabled(divIp + 'div.range-row:nth-child(3) .ip-ranges-delete',
'Delete IP range button is enabled')
.clickByCssSelector(divIp + 'div.range-row:nth-child(3) .ip-ranges-delete')
.assertElementNotExists(divIp + 'div.range-row:nth-child(3)',
'Baremetal new IP range is disappeared')
.assertElementsExist(divIp + 'div.range-row', 1, 'Only default IP range is exists')
.assertElementNotExists(div + 'div.has-error', 'No Baremetal errors are observed')
.then(function() {
return networksLib.saveSettings();
});
},
'Baremetal and other networks intersections': function() {
this.timeout = 45000;
var ipRangeStart = ['192.168.1.1', '192.168.0.1', '172.16.0.1'];
var ipRangeEnd = ['192.168.1.50', '192.168.0.50', '172.16.0.50'];
var cidrArray = ['192.168.1.0/24', '192.168.0.0/24', '172.16.0.0/24'];
var ipBaremetalStart = ['192.168.1.52', '192.168.0.52', '172.16.0.51'];
var ipBaremetalEnd = ['192.168.1.254', '192.168.0.254', '172.16.0.254'];
var gatewayArray = ['192.168.1.51', '192.168.0.51', '172.16.0.52'];
return this.remote
// Check Storage and Baremetal intersection
.setInputValue(div + 'div.cidr input[type="text"]', cidrArray[0])
.setInputValue(divIp + 'input[name*="range-start"]', ipRangeStart[0])
.setInputValue(divIp + 'input[name*="range-end"]', ipRangeEnd[0])
.then(function() {
return networksLib.checkNeutronL3ForBaremetal();
})
.setInputValue('input[name="range-start_baremetal_range"]', ipBaremetalStart[0])
.setInputValue('input[name="range-end_baremetal_range"]', ipBaremetalEnd[0])
.setInputValue('input[name="baremetal_gateway"]', gatewayArray[0])
.assertElementNotExists('div.form-baremetal-network div.has-error',
'No Ironic errors are observed for Storage and Baremetal intersection')
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.then(function() {
return networksLib.checkBaremetalIntersection('storage');
})
// Check Management and Baremetal intersection
.setInputValue(div + 'div.cidr input[type="text"]', cidrArray[1])
.setInputValue(divIp + 'input[name*="range-start"]', ipRangeStart[1])
.setInputValue(divIp + 'input[name*="range-end"]', ipRangeEnd[1])
.then(function() {
return networksLib.checkNeutronL3ForBaremetal();
})
.setInputValue('input[name="range-start_baremetal_range"]', ipBaremetalStart[1])
.setInputValue('input[name="range-end_baremetal_range"]', ipBaremetalEnd[1])
.setInputValue('input[name="baremetal_gateway"]', gatewayArray[1])
.assertElementNotExists('div.form-baremetal-network div.has-error',
'No Ironic errors are observed for Management and Baremetal intersection')
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.then(function() {
return networksLib.checkBaremetalIntersection('management');
})
// Check Public and Baremetal intersection
.setInputValue(div + 'div.cidr input[type="text"]', cidrArray[2])
.setInputValue(divIp + 'input[name*="range-start"]', ipRangeStart[2])
.setInputValue(divIp + 'input[name*="range-end"]', ipRangeEnd[2])
.then(function() {
return networksLib.checkNeutronL3ForBaremetal();
})
.setInputValue('input[name="range-start_baremetal_range"]', ipBaremetalStart[2])
.setInputValue('input[name="range-end_baremetal_range"]', ipBaremetalEnd[2])
.setInputValue('input[name="baremetal_gateway"]', gatewayArray[2])
.assertElementNotExists('div.form-baremetal-network div.has-error',
'No Ironic errors are observed for Public and Baremetal intersection')
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.then(function() {
return networksLib.checkBaremetalIntersection('public');
});
},
'Baremetal Network "Use VLAN tagging" option works': function() {
var vlanTag = '104';
return this.remote
// Unselect "Use VLAN tagging" option
.clickByCssSelector(div + 'div.vlan_start input[type="checkbox"]')
.assertElementEnabled(div + 'div.vlan_start input[type="checkbox"]',
'Baremetal "Use VLAN tagging" checkbox is enabled')
.assertElementNotSelected(div + 'div.vlan_start input[type="checkbox"]',
'Baremetal "Use VLAN tagging" checkbox is not selected')
.assertElementNotExists(div + 'div.vlan_start input[type="text"]',
'Baremetal "Use VLAN tagging" textfield does not exist')
.assertElementNotExists(div + 'div.has-error', 'No Baremetal errors are observed')
.then(function() {
return networksLib.saveSettings();
})
// Select back "Use VLAN tagging" option
.assertElementEnabled(div + 'div.vlan_start input[type="checkbox"]',
'Baremetal "Use VLAN tagging" checkbox is enabled')
.clickByCssSelector(div + 'div.vlan_start input[type="checkbox"]')
.assertElementEnabled(div + 'div.vlan_start input[type="checkbox"]',
'Baremetal "Use VLAN tagging" checkbox is enabled')
.assertElementSelected(div + 'div.vlan_start input[type="checkbox"]',
'Baremetal "Use VLAN tagging" checkbox is selected')
.assertElementEnabled(div + 'div.vlan_start input[type="text"]',
'Baremetal "Use VLAN tagging" textfield is enabled')
.assertElementContainsText(div + 'div.vlan_start div.has-error span[class^="help"]',
'Invalid VLAN ID', 'True error message is displayed')
.setInputValue(div + 'div.vlan_start input[type="text"]', vlanTag)
.assertElementNotExists(div + 'div.has-error', 'No Baremetal errors are observed')
.then(function() {
return networksLib.saveSettings();
});
},
'Baremetal Network "Use VLAN tagging" option validation': function() {
var vlanTag = ['0', '10000', '4095', '', '1', '4094'];
return this.remote
// Check "Use VLAN tagging" text field
.setInputValue(div + 'div.vlan_start input[type="text"]', vlanTag[0])
.assertElementContainsText(div + 'div.vlan_start div.has-error span[class^="help"]',
'Invalid VLAN ID', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.vlan_start input[type="text"]', vlanTag[1])
.assertElementContainsText(div + 'div.vlan_start div.has-error span[class^="help"]',
'Invalid VLAN ID', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.vlan_start input[type="text"]', vlanTag[2])
.assertElementContainsText(div + 'div.vlan_start div.has-error span[class^="help"]',
'Invalid VLAN ID', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.vlan_start input[type="text"]', vlanTag[3])
.assertElementContainsText(div + 'div.vlan_start div.has-error span[class^="help"]',
'Invalid VLAN ID', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.vlan_start input[type="text"]', vlanTag[4])
.assertElementNotExists(div + 'div.has-error', 'No Baremetal errors are observed')
.assertElementEnabled('button.apply-btn', 'Save Settings button is enabled')
.setInputValue(div + 'div.vlan_start input[type="text"]', vlanTag[5])
.assertElementNotExists(div + 'div.has-error', 'No Baremetal errors are observed')
.assertElementEnabled('button.apply-btn', 'Save Settings button is enabled')
// Cancel changes
.then(function() {
return networksLib.cancelChanges();
})
.then(function() {
return networksLib.checkNetworkInitialState('Baremetal');
});
},
'Baremetal Network "CIDR" field validation': function() {
var cidrPart1 = '192.168.3.0/';
var cidrPart2 = ['245', '0', '1', '31', '33', '25'];
return this.remote
// Check "CIDR" text field
.setInputValue(div + 'div.cidr input[type="text"]', cidrPart1 + cidrPart2[0])
.assertElementContainsText(div + 'div.cidr div.has-error span[class^="help"]',
'Invalid CIDR', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.cidr input[type="text"]', cidrPart1 + cidrPart2[1])
.assertElementContainsText(div + 'div.cidr div.has-error span[class^="help"]',
'Invalid CIDR', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.cidr input[type="text"]', cidrPart1 + cidrPart2[2])
.assertElementContainsText(div + 'div.cidr div.has-error span[class^="help"]',
'Network is too large', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.cidr input[type="text"]', cidrPart1 + cidrPart2[3])
.assertElementContainsText(div + 'div.cidr div.has-error span[class^="help"]',
'Network is too small', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.cidr input[type="text"]', cidrPart1 + cidrPart2[4])
.assertElementContainsText(div + 'div.cidr div.has-error span[class^="help"]',
'Invalid CIDR', 'True error message is displayed')
.then(function() {
return networksLib.checkIncorrectValueInput();
})
.setInputValue(div + 'div.cidr input[type="text"]', cidrPart1 + cidrPart2[5])
.assertElementExists('a[class$="neutron_l3"]', '"Neutron L3" link is existed')
.assertElementExists('a[class$="neutron_l3"] i.glyphicon-danger-sign',
'Error icon is observed before Neutron L3 link')
.clickByCssSelector('a[class$="neutron_l3"]')
.assertElementExists('div.has-error input[name="range-end_baremetal_range"]',
'"Ironic IP range" End textfield is "red" marked')
.assertElementContainsText('div.form-baremetal-network div.validation-error ' +
'span[class^="help"]', 'IP address does not match the network CIDR',
'True error message is displayed')
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.then(function() {
return networksLib.checkIncorrectValueInput();
})
// Cancel changes
.then(function() {
return networksLib.cancelChanges();
})
.then(function() {
return networksLib.checkNetworkInitialState('Baremetal');
});
},
'Baremetal Network "Use the whole CIDR" option works': function() {
var ipRangeStart = '192.168.3.1';
var ipRangeEnd = '192.168.3.254';
return this.remote
// Select "Use the whole CIDR" option
.clickByCssSelector(div + 'div.cidr input[type="checkbox"]')
.assertElementEnabled(div + 'div.cidr input[type="checkbox"]',
'Baremetal "Use the whole CIDR" checkbox is enabled')
.assertElementSelected(div + 'div.cidr input[type="checkbox"]',
'Baremetal "Use the whole CIDR" checkbox is selected')
.assertElementDisabled(divIp + 'input[name*="range-start"]',
'Baremetal "Start IP Range" textfield is disabled')
.assertElementDisabled(divIp + 'input[name*="range-end"]',
'Baremetal "End IP Range" textfield is disabled')
.assertElementPropertyEquals(divIp + 'input[name*="range-start"]', 'value', ipRangeStart,
'Baremetal "Start IP Range" textfield has true value')
.assertElementPropertyEquals(divIp + 'input[name*="range-end"]', 'value', ipRangeEnd,
'Baremetal "End IP Range" textfield has true value')
.assertElementNotExists(div + 'div.has-error', 'No Baremetal errors are observed')
.then(function() {
return networksLib.saveSettings();
});
}
};
});
});

View File

@ -1,620 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern!object',
'tests/functional/pages/modal',
'tests/functional/pages/common',
'tests/functional/pages/cluster',
'tests/functional/pages/dashboard',
'intern/dojo/node!leadfoot/Command',
'tests/functional/nightly/library/networks'
], function(registerSuite, ModalWindow, Common, ClusterPage, DashboardPage, Command, NetworksLib) {
'use strict';
registerSuite(function() {
var common,
clusterPage,
clusterName,
networksLib;
return {
name: 'Neutron tunneling segmentation',
setup: function() {
common = new Common(this.remote);
clusterPage = new ClusterPage(this.remote);
networksLib = new NetworksLib(this.remote);
clusterName = common.pickRandomName('Tunneling Cluster');
return this.remote
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(
clusterName,
{
'Networking Setup': function() {
return this.remote
.clickByCssSelector('input[value*="neutron"][value$=":vlan"]')
.clickByCssSelector('input[value*="neutron"][value$=":tun"]');
}
}
);
})
.then(function() {
return common.addNodesToCluster(1, ['Controller']);
})
.then(function() {
return common.addNodesToCluster(1, ['Compute']);
})
.then(function() {
return clusterPage.goToTab('Networks');
});
},
'The same VLAN for different node network groups': function() {
return this.remote
.then(function() {
return networksLib.createNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.createNetworkGroup('Network_Group_2');
})
.then(function() {
return networksLib.checkVLANs('Network_Group_2', 'VLAN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.checkVLANs('Network_Group_1', 'VLAN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.then(function() {
return networksLib.checkVLANs('default', 'VLAN');
});
},
'Gateways appear for two or more node network groups': function() {
return this.remote
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_2');
})
.then(function() {
return networksLib.checkGateways('Network_Group_2', 'VLAN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.checkGateways('Network_Group_1', 'VLAN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.then(function() {
return networksLib.checkGateways('default', 'VLAN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.deleteNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.checkDefaultNetGroup();
})
.then(function() {
return networksLib.checkGateways('default', 'VLAN');
})
.assertElementEnabled('div.public input[name="gateway"]',
'Public "Gateway" field exists and enabled for "default" network group');
}
};
});
registerSuite(function() {
var common,
command,
modal,
clusterPage,
clusterName,
networksLib,
dashboardPage;
return {
name: 'Neutron VLAN segmentation',
setup: function() {
common = new Common(this.remote);
command = new Command(this.remote);
modal = new ModalWindow(this.remote);
clusterPage = new ClusterPage(this.remote);
networksLib = new NetworksLib(this.remote);
dashboardPage = new DashboardPage(this.remote);
clusterName = common.pickRandomName('VLAN Cluster');
return this.remote
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(clusterName);
})
.then(function() {
return common.addNodesToCluster(1, ['Controller']);
})
.then(function() {
return common.addNodesToCluster(1, ['Compute']);
})
.then(function() {
return clusterPage.goToTab('Networks');
});
},
'Can not create node network group with the name of already existing group': function() {
return this.remote
.then(function() {
return networksLib.createNetworkGroup('Network_Group_1');
})
.assertElementEnabled('button.add-nodegroup-btn',
'"Add New Node Network Group" button is enabled')
.clickByCssSelector('button.add-nodegroup-btn')
.then(function() {
return modal.waitToOpen();
})
.then(function() {
return modal.checkTitle('Add New Node Network Group');
})
.findByCssSelector('input.node-group-input-name')
.clearValue()
.type('Network_Group_1')
.type('\uE007')
.end()
.assertElementAppears('div.has-error.node-group-name span.help-block', 1000,
'Error message appears')
.assertElementContainsText('div.has-error.node-group-name span.help-block',
'This node network group name is already taken', 'True error message presents')
.then(function() {
return modal.close();
});
},
'Node network group deletion': function() {
return this.remote
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.assertElementNotExists('.glyphicon-remove',
'It is not possible to delete default node network group')
.assertElementContainsText('span.explanation',
'This node network group uses a shared admin network and cannot be deleted',
'Default node network group description presented')
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_1');
})
.assertElementAppears('.glyphicon-remove', 1000, 'Remove icon is shown')
.clickByCssSelector('.glyphicon-remove')
.then(function() {
return modal.waitToOpen();
})
.assertElementContainsText('h4.modal-title', 'Remove Node Network Group',
'Remove Node Network Group modal expected')
.then(function() {
return modal.clickFooterButton('Delete');
})
.then(function() {
return modal.waitToClose();
})
.assertElementAppears('.network-group-name .explanation', 2000, 'Default subtab is shown')
.assertElementNotContainsText('ul.node_network_groups', 'Network_Group_1',
'Node network group disappears from network group list')
.assertElementNotContainsText('.network-group-name .btn-link', 'Network_Group_1',
'Node network group title disappears from "Networks" tab');
},
'Default network group the first in a list': function() {
this.timeout = 60000;
return this.remote
.then(function() {
return networksLib.createNetworkGroup('test');
})
.then(function() {
return networksLib.checkDefaultNetGroup();
})
.then(function() {
return networksLib.createNetworkGroup('abc');
})
.then(function() {
return networksLib.checkDefaultNetGroup();
})
.then(function() {
return networksLib.createNetworkGroup('1234');
})
.then(function() {
return networksLib.checkDefaultNetGroup();
})
.then(function() {
return networksLib.createNetworkGroup('yrter');
})
.then(function() {
return networksLib.checkDefaultNetGroup();
})
.then(function() {
return networksLib.createNetworkGroup('+-934847fdjfjdbh');
})
.then(function() {
return networksLib.checkDefaultNetGroup();
});
},
'Deletion of several node network groups one after another': function() {
this.timeout = 60000;
return this.remote
.assertElementDisplayed('ul.node_network_groups', 'Node network groups list displayed')
.then(function() {
return networksLib.deleteNetworkGroup('+-934847fdjfjdbh');
})
.then(function() {
return networksLib.deleteNetworkGroup('yrter');
})
.then(function() {
return networksLib.deleteNetworkGroup('1234');
})
.then(function() {
return networksLib.deleteNetworkGroup('abc');
})
.then(function() {
return command.refresh();
})
.assertElementsAppear('.network-group-name .explanation', 5000,
'Page refreshed successfully')
.assertElementNotContainsText('ul.node_network_groups', '+-934847fdjfjdbh',
'Network group deleted successfully')
.assertElementNotContainsText('ul.node_network_groups', 'yrter',
'Network group deleted successfully')
.assertElementNotContainsText('ul.node_network_groups', '1234',
'Network group deleted successfully')
.assertElementNotContainsText('ul.node_network_groups', 'abc',
'Network group deleted successfully')
.then(function() {
return networksLib.deleteNetworkGroup('test');
})
.then(function() {
return command.refresh();
})
.assertElementsAppear('.network-group-name .explanation', 5000,
'Page refreshed successfully')
.assertElementNotContainsText('ul.node_network_groups', 'test',
'Deletion of several node network groups one after another is successfull');
},
'Can not create node network group without saving changes': function() {
var ipRangeStart = '172.16.0.25';
return this.remote
.assertElementEnabled('div.public div.ip_ranges input[name*="range-start"]',
'Public "Start IP Range" textfield is enabled')
.setInputValue('div.public div.ip_ranges input[name*="range-start"]', ipRangeStart)
.assertElementAppears('button.add-nodegroup-btn i.glyphicon-danger-sign', 1000,
'Error icon appears')
.assertElementEnabled('button.add-nodegroup-btn',
'"Add New Node Network Group" button is enabled')
.clickByCssSelector('button.add-nodegroup-btn')
.then(function() {
return modal.waitToOpen();
})
.then(function() {
return modal.checkTitle('Node Network Group Creation Error');
})
.assertElementDisplayed('div.text-error', 'Error message exists')
.assertElementContainsText('div.text-error',
'It is necessary to save changes before creating a new node network group',
'True error message presents')
.then(function() {
return modal.close();
})
.then(function() {
return networksLib.cancelChanges();
});
},
'Switching between node network groups without saved changes': function() {
var ipRangeStartChanged = '172.16.0.26';
var ipRangeStartDefault = '172.16.0.2';
return this.remote
.then(function() {
return networksLib.createNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.createNetworkGroup('Network_Group_2');
})
.assertElementEnabled('div.public div.ip_ranges input[name*="range-start"]',
'Public "Start IP Range" textfield is enabled')
.setInputValue('div.public div.ip_ranges input[name*="range-start"]', ipRangeStartChanged)
.assertElementEnabled('button.apply-btn',
'"Save Settings" button is enabled for "Network_Group_2"')
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_1');
})
.assertElementNotExists('div.modal-dialog',
'No new dialogs appear for "Network_Group_1"')
.assertElementNotExists('div.has-error', 'No errors are observed for "Network_Group_1"')
.assertElementPropertyEquals('div.public div.ip_ranges input[name*="range-start"]',
'value', ipRangeStartDefault,
'Public "Start IP Range" textfield has default value for "Network_Group_1"')
.assertElementEnabled('button.apply-btn',
'"Save Settings" button is enabled for "Network_Group_1"')
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.assertElementNotExists('div.modal-dialog',
'No new dialogs appear for "default" node network group')
.assertElementNotExists('div.has-error',
'No errors are observed for "default" node network group')
.assertElementPropertyEquals('div.public div.ip_ranges input[name*="range-start"]',
'value', ipRangeStartDefault,
'Public "Start IP Range" textfield has default value for "default" node network group')
.assertElementEnabled('button.apply-btn',
'"Save Settings" button is enabled for "default" node network group')
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_2');
})
.assertElementNotExists('div.modal-dialog', 'No new dialogs appear for "Network_Group_2"')
.assertElementNotExists('div.has-error', 'No errors are observed for "Network_Group_2"')
.assertElementPropertyEquals('div.public div.ip_ranges input[name*="range-start"]',
'value', ipRangeStartChanged, 'Public "Start IP Range" textfield has changed value')
.assertElementEnabled('button.apply-btn', '"Save Settings" button is enabled')
.then(function() {
return networksLib.cancelChanges();
});
},
'The same VLAN for different node network groups': function() {
return this.remote
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.checkGateways('Network_Group_1', 'TUN');
})
.then(function() {
return networksLib.checkVLANs('Network_Group_1', 'TUN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_2');
})
.then(function() {
return networksLib.checkVLANs('Network_Group_2', 'TUN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.then(function() {
return networksLib.checkVLANs('default', 'TUN');
});
},
'Gateways appear for two or more node network groups': function() {
return this.remote
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_2');
})
.then(function() {
return networksLib.checkGateways('Network_Group_2', 'TUN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.checkGateways('Network_Group_1', 'TUN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.then(function() {
return networksLib.checkGateways('default', 'TUN');
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.deleteNetworkGroup('Network_Group_1');
})
.then(function() {
return networksLib.checkDefaultNetGroup();
})
.then(function() {
return networksLib.checkGateways('default', 'TUN');
})
.assertElementEnabled('div.public input[name="gateway"]',
'Public "Gateway" field exists and enabled for "default" network group');
},
'Validation between default and non-default groups': function() {
var networkAlertSelector = 'div.network-alert';
var cidrValue = '192.168.12.0/24';
var ipRangeStart = '192.168.12.2';
var ipRangeEnd = '192.168.12.254';
var gatewayArray = '192.168.12.1';
return this.remote
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.assertElementEnabled('div.management div.cidr input[type="text"]',
'Management "CIDR" textfield is enabled')
.setInputValue('div.management div.cidr input[type="text"]', cidrValue)
.assertElementPropertyEquals('div.management div.ip_ranges input[name*="range-start"]',
'value', ipRangeStart, 'Management "Start IP Range" textfield has true value')
.assertElementPropertyEquals('div.management div.ip_ranges input[name*="range-end"]',
'value', ipRangeEnd, 'Management "End IP Range" textfield has true value')
.assertElementPropertyEquals('div.management input[name="gateway"]',
'value', gatewayArray, 'Management "Gateway" textfield has true value')
.then(function() {
return networksLib.saveSettings();
})
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_2');
})
.assertElementEnabled('div.storage div.cidr input[type="text"]',
'Storage "CIDR" textfield is enabled')
.setInputValue('div.storage div.cidr input[type="text"]', cidrValue)
.assertElementPropertyEquals('div.storage div.ip_ranges input[name*="range-start"]',
'value', ipRangeStart, 'Storage "Start IP Range" textfield has true value')
.assertElementPropertyEquals('div.storage div.ip_ranges input[name*="range-end"]',
'value', ipRangeEnd, 'Storage "End IP Range" textfield has true value')
.assertElementPropertyEquals('div.storage input[name="gateway"]',
'value', gatewayArray, 'Storage "Gateway" textfield has true value')
.assertElementEnabled('button.apply-btn', '"Save Settings" button is enabled')
.clickByCssSelector('button.apply-btn')
.assertElementExists(networkAlertSelector, 'Error message is observed')
.assertElementContainsText(networkAlertSelector,
'Address space intersection between networks', 'True error message is displayed')
.assertElementContainsText(networkAlertSelector, 'management',
'True error message is displayed')
.assertElementContainsText(networkAlertSelector, 'storage',
'True error message is displayed')
.then(function() {
return networksLib.cancelChanges();
});
},
'Validation Floating IP range with non-default group with other CIDR': function() {
var cidrArray = ['172.16.5.0/24', '172.16.6.0/24', '172.16.7.0/24'];
var ipRangeStart = ['172.16.5.2', '172.16.5.130'];
var ipRangeEnd = ['172.16.5.126', '172.16.5.254'];
var gatewayValue = '172.16.5.1';
return this.remote
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_2');
})
.assertElementEnabled('div.public div.cidr input[type="text"]',
'Public "CIDR" textfield is enabled')
.setInputValue('div.public div.cidr input[type="text"]', cidrArray[0])
.assertElementEnabled('div.public div.ip_ranges input[name*="range-start"]',
'Public "Start IP Range" textfield is enabled')
.setInputValue('div.public div.ip_ranges input[name*="range-start"]', ipRangeStart[0])
.assertElementEnabled('div.public div.ip_ranges input[name*="range-end"]',
'Public "End IP Range" textfield is enabled')
.setInputValue('div.public div.ip_ranges input[name*="range-end"]', ipRangeEnd[0])
.assertElementEnabled('div.public input[name="gateway"]',
'Public "Gateway" textfield is enabled')
.setInputValue('div.public input[name="gateway"]', gatewayValue)
.assertElementEnabled('div.storage div.cidr input[type="text"]',
'Storage "CIDR" textfield is enabled')
.setInputValue('div.storage div.cidr input[type="text"]', cidrArray[1])
.assertElementEnabled('div.management div.cidr input[type="text"]',
'Management "CIDR" textfield is enabled')
.setInputValue('div.management div.cidr input[type="text"]', cidrArray[2])
.clickByCssSelector('a.subtab-link-neutron_l3')
.assertElementEnabled('div.floating_ranges input[name*="start"]',
'Floating IP ranges "Start" textfield is enabled')
.setInputValue('div.floating_ranges input[name*="start"]', ipRangeStart[1])
.assertElementEnabled('div.floating_ranges input[name*="end"]',
'Floating IP ranges "End" textfield is enabled')
.setInputValue('div.floating_ranges input[name*="end"]', ipRangeEnd[1])
.assertElementNotExists('div.has-error', 'No errors are observed')
.then(function() {
return networksLib.saveSettings();
});
},
'Renaming of Default and non-default network groups': function() {
return this.remote
// Can rename "default" node network group
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.clickByCssSelector('.glyphicon-pencil')
.assertElementAppears('div.network-group-name input[type="text"]', 1000,
'Rename network group textfield appears')
.findByCssSelector('div.network-group-name input[type="text"]')
.clearValue()
.type('new_default')
.type('\uE007')
.end()
.assertElementContainsText('ul.node_network_groups', 'new_default',
'New subtab title is shown')
.assertElementTextEquals('div.network-group-name button.btn-link', 'new_default',
'It is possible to rename "default" node network group')
// Can not rename non-default node network group to "default" name
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_2');
})
.clickByCssSelector('.glyphicon-pencil')
.assertElementAppears('.network-group-name input[type=text]', 1000,
'Node network group renaming control is rendered')
.findByCssSelector('.node-group-renaming input[type=text]')
.clearValue()
.type('new_default')
.type('\uE007')
.end()
.assertElementAppears('.has-error.node-group-renaming', 1000,
'Error is displayed in case of duplicate name')
.assertElementContainsText('div.has-error.node-group-renaming span.help-block',
'This node network group name is already taken', 'True error message presents')
// Rename non-default node network group
.findByCssSelector('.node-group-renaming input[type=text]')
.clearValue()
.type('Network_Group_3')
.type('\uE007')
.end()
.assertElementContainsText('ul.node_network_groups', 'Network_Group_3',
'New subtab title is shown')
.assertElementTextEquals('div.network-group-name button.btn-link', 'Network_Group_3',
'New network group name "link" is shown');
},
'Correct bahaviour of long name for node network group': function() {
return this.remote
.then(function() {
return networksLib.gotoNodeNetworkGroup('Network_Group_3');
})
.assertElementTextEquals('ul.node_network_groups li.active', 'Network_Group_3',
'"Network_Group_3" node network group is selected')
.assertElementPropertyEquals('ul.node_network_groups li.active', 'offsetHeight', '37',
'"Network_Group_3" node network group has default height')
.assertElementPropertyEquals('ul.node_network_groups li.active', 'offsetWidth', '163',
'"Network_Group_3" node network group has default width')
.clickByCssSelector('.glyphicon-pencil')
.assertElementAppears('div.network-group-name input[type="text"]', 1000,
'Node network group Rename textfield appears')
.findByCssSelector('.node-group-renaming input[type=text]')
.clearValue()
.type('fgbhsjdkgbhsdjkbhsdjkbhfjkbhfbjhgjbhsfjgbhsfjgbhsg')
.type('\uE007')
.end()
.assertElementTextEquals('ul.node_network_groups li.active',
'fgbhsjdkgbhsdjkbhsdjkbhfjkbhfbjhgjbhsfjgbhsfjgbhsg',
'New node network group is shown and selected')
.assertElementTextEquals('div.network-group-name button.btn-link',
'fgbhsjdkgbhsdjkbhsdjkbhfjkbhfbjhgjbhsfjgbhsfjgbhsg',
'New node network group name "link" is shown')
.assertElementPropertyEquals('ul.node_network_groups li.active', 'offsetHeight', '87',
'Renamed node network group has correct height')
.assertElementPropertyEquals('ul.node_network_groups li.active', 'offsetWidth', '163',
'Renamed node network group has correct width');
},
'User can add and cannot rename new node network group after deployment': function() {
this.timeout = 60000;
return this.remote
.then(function() {
return clusterPage.goToTab('Dashboard');
})
.then(function() {
return dashboardPage.startDeployment();
})
.assertElementExists('.dashboard-block .progress', 'Deployment is started')
.waitForElementDeletion('.dashboard-block .progress', 45000)
.then(function() {
return clusterPage.goToTab('Networks');
})
.then(function() {
return networksLib.createNetworkGroup('Network_Group_1');
})
.assertElementNotExists('.glyphicon-pencil',
'It is not possible to rename new node network group after deployment');
}
};
});
});

View File

@ -1,239 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern!object',
'tests/functional/pages/common',
'tests/functional/pages/cluster',
'tests/functional/nightly/library/networks'
], function(registerSuite, Common, ClusterPage, NetworksLib) {
'use strict';
registerSuite(function() {
var common,
clusterPage,
clusterName,
networksLib;
return {
name: 'Neutron VLAN segmentation',
setup: function() {
common = new Common(this.remote);
clusterPage = new ClusterPage(this.remote);
networksLib = new NetworksLib(this.remote);
clusterName = common.pickRandomName('VLAN Cluster');
return this.remote
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(clusterName);
})
.then(function() {
return common.addNodesToCluster(1, ['Controller']);
})
.then(function() {
return common.addNodesToCluster(1, ['Compute']);
})
.then(function() {
return clusterPage.goToTab('Networks');
});
},
'Storage Network "IP Ranges" testing': function() {
this.timeout = 45000;
var networkName = 'Storage';
var correctIpRange = ['192.168.1.5', '192.168.1.10'];
var newIpRange = ['192.168.1.25', '192.168.1.30'];
return this.remote
.then(function() {
return networksLib.checkNetworkInitialState(networkName);
})
.then(function() {
return networksLib.checkNetrworkIpRanges(networkName, correctIpRange, newIpRange);
});
},
'Management Network "IP Ranges" testing': function() {
this.timeout = 45000;
var networkName = 'Management';
var correctIpRange = ['192.168.0.55', '192.168.0.100'];
var newIpRange = ['192.168.0.120', '192.168.0.170'];
return this.remote
.then(function() {
return networksLib.checkNetworkInitialState(networkName);
})
.then(function() {
return networksLib.checkNetrworkIpRanges(networkName, correctIpRange, newIpRange);
});
},
'Check intersections between all networks': function() {
this.timeout = 45000;
return this.remote
// Storage and Management
.then(function() {
return networksLib.checkNerworksIntersection('Storage', 'Management',
['192.168.0.0/24', '192.168.0.1', '192.168.0.254']);
})
// Storage and Public
.then(function() {
return networksLib.checkNerworksIntersection('Storage', 'Public',
['172.16.0.0/24', '172.16.0.5', '172.16.0.120']);
})
// Storage and Floating IP
.then(function() {
return networksLib.checkNerworksIntersection('Storage', 'Public',
['172.16.0.0/24', '172.16.0.135', '172.16.0.170']);
})
// Management and Public
.then(function() {
return networksLib.checkNerworksIntersection('Management', 'Public',
['172.16.0.0/24', '172.16.0.5', '172.16.0.120']);
})
// Management and Floating IP
.then(function() {
return networksLib.checkNerworksIntersection('Management', 'Public',
['172.16.0.0/24', '172.16.0.135', '172.16.0.170']);
});
}
};
});
registerSuite(function() {
var common,
clusterPage,
clusterName,
networksLib;
return {
name: 'Neutron tunneling segmentation',
setup: function() {
common = new Common(this.remote);
clusterPage = new ClusterPage(this.remote);
networksLib = new NetworksLib(this.remote);
clusterName = common.pickRandomName('Tunneling Cluster');
return this.remote
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(
clusterName,
{
'Networking Setup': function() {
return this.remote
.clickByCssSelector('input[value*="neutron"][value$=":vlan"]')
.clickByCssSelector('input[value*="neutron"][value$=":tun"]');
}
}
);
})
.then(function() {
return common.addNodesToCluster(1, ['Controller']);
})
.then(function() {
return common.addNodesToCluster(1, ['Compute']);
})
.then(function() {
return clusterPage.goToTab('Networks');
});
},
'Storage Network "IP Ranges" testing': function() {
this.timeout = 45000;
var networkName = 'Storage';
var correctIpRange = ['192.168.1.5', '192.168.1.10'];
var newIpRange = ['192.168.1.25', '192.168.1.30'];
return this.remote
.then(function() {
return networksLib.checkNetworkInitialState(networkName);
})
.then(function() {
return networksLib.checkNetrworkIpRanges(networkName, correctIpRange, newIpRange);
});
},
'Management Network "IP Ranges" testing': function() {
this.timeout = 45000;
var networkName = 'Management';
var correctIpRange = ['192.168.0.55', '192.168.0.100'];
var newIpRange = ['192.168.0.120', '192.168.0.170'];
return this.remote
.then(function() {
return networksLib.checkNetworkInitialState(networkName);
})
.then(function() {
return networksLib.checkNetrworkIpRanges(networkName, correctIpRange, newIpRange);
});
},
'Private Network "IP Ranges" testing': function() {
this.timeout = 45000;
var networkName = 'Private';
var correctIpRange = ['192.168.2.190', '192.168.2.200'];
var newIpRange = ['192.168.2.200', '192.168.2.230'];
return this.remote
.then(function() {
return networksLib.checkNetworkInitialState(networkName);
})
.then(function() {
return networksLib.checkNetrworkIpRanges(networkName, correctIpRange, newIpRange);
});
},
'Check intersections between all networks': function() {
this.timeout = 60000;
return this.remote
// Storage and Management
.then(function() {
return networksLib.checkNerworksIntersection('Storage', 'Management',
['192.168.0.0/24', '192.168.0.1', '192.168.0.254']);
})
// Storage and Private
.then(function() {
return networksLib.checkNerworksIntersection('Storage', 'Private',
['192.168.2.0/24', '192.168.2.1', '192.168.2.254']);
})
// Storage and Public
.then(function() {
return networksLib.checkNerworksIntersection('Storage', 'Public',
['172.16.0.0/24', '172.16.0.5', '172.16.0.120']);
})
// Storage and Floating IP
.then(function() {
return networksLib.checkNerworksIntersection('Storage', 'Public',
['172.16.0.0/24', '172.16.0.135', '172.16.0.170']);
})
// Management and Public
.then(function() {
return networksLib.checkNerworksIntersection('Management', 'Public',
['172.16.0.0/24', '172.16.0.5', '172.16.0.120']);
})
// Management and Floating IP
.then(function() {
return networksLib.checkNerworksIntersection('Management', 'Public',
['172.16.0.0/24', '172.16.0.135', '172.16.0.170']);
})
// Private and Public
.then(function() {
return networksLib.checkNerworksIntersection('Private', 'Public',
['172.16.0.0/24', '172.16.0.5', '172.16.0.120']);
})
// Private and Floating IP
.then(function() {
return networksLib.checkNerworksIntersection('Private', 'Public',
['172.16.0.0/24', '172.16.0.135', '172.16.0.170']);
});
}
};
});
});

View File

@ -1,273 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern!object',
'tests/functional/pages/common',
'tests/functional/pages/cluster',
'tests/functional/nightly/library/networks'
], function(registerSuite, Common, ClusterPage, NetworksLib) {
'use strict';
registerSuite(function() {
var common,
clusterPage,
clusterName,
networksLib;
return {
name: 'Neutron VLAN segmentation',
setup: function() {
common = new Common(this.remote);
clusterPage = new ClusterPage(this.remote);
networksLib = new NetworksLib(this.remote);
clusterName = common.pickRandomName('VLAN Cluster');
return this.remote
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(clusterName);
})
.then(function() {
return common.addNodesToCluster(1, ['Controller']);
})
.then(function() {
return common.addNodesToCluster(1, ['Compute']);
})
.then(function() {
return clusterPage.goToTab('Settings');
});
},
'Check no network settings on "Settings" tab': function() {
return this.remote
.assertElementExists('div.settings-tab div.general', '"Settings" tab is not empty')
.assertElementNotExists('div.network-tab div.network-tab-content',
'"Network" segment is not presented on "Settings" tab')
.assertElementEnabled('button.btn-load-defaults', 'Load defaults button is enabled')
.assertElementDisabled('button.btn-revert-changes', 'Cancel Changes button is disabled')
.assertElementDisabled('button.btn-apply-changes', 'Save Settings button is disabled');
},
'User returns to the selected segment on "Networks" tab': function() {
return this.remote
.then(function() {
return clusterPage.goToTab('Networks');
})
.assertElementExists('a[class*="network"][class*="active"]', '"Networks" tab is opened')
.assertElementExists('div.network-tab div.network-tab-content',
'"Networks" tab is not empty')
.assertElementTextEquals('ul.node_network_groups li.group-title',
'Node Network Groups', '"Node Network Groups" segment opens by default')
.assertElementTextEquals('ul.node_network_groups li.active', 'default',
'"default" node network group opens by default')
.clickByCssSelector('.subtab-link-neutron_l2')
.assertElementExists('li.active a.subtab-link-neutron_l2',
'"Neutron L2" subtab is selected')
.assertElementTextEquals('h3.networks', 'Neutron L2 Configuration',
'"Neutron L2" subtab is opened')
.then(function() {
return clusterPage.goToTab('Nodes');
})
.assertElementExists('a[class*="nodes"][class*="active"]', '"Nodes" tab is opened')
.then(function() {
return clusterPage.goToTab('Networks');
})
.assertElementExists('a[class*="network"][class*="active"]', '"Networks" tab is opened')
.assertElementExists('li.active a.subtab-link-neutron_l2',
'"Neutron L2" subtab is selected')
.assertElementTextEquals('h3.networks', 'Neutron L2 Configuration',
'"Neutron L2" subtab is opened');
},
'Check "Node Network Groups" segment on "Networks" tab': function() {
return this.remote
.then(function() {
return networksLib.checkNetworkInitialState('Public');
})
.then(function() {
return networksLib.checkNetworkInitialState('Storage');
})
.then(function() {
return networksLib.checkNetworkInitialState('Management');
});
},
'Check "Settings" segment on "Networks" tab': function() {
return this.remote
.then(function() {
return networksLib.checkNetrworkSettingsSegment('VLAN');
});
},
'Check "Network Verification" segment on "Networks" tab': function() {
return this.remote
.then(function() {
return networksLib.checkNetrworkVerificationSegment();
});
},
'Success network verification exists only on "Network Verification" segment': function() {
return this.remote
.clickByCssSelector('.subtab-link-network_verification')
.assertElementEnabled('.verify-networks-btn', '"Verify Networks" is enabled')
.clickByCssSelector('.verify-networks-btn')
.assertElementAppears('div.alert-success', 15000,
'Verification success is shown on "Connectivity Check" subtab')
.assertElementContainsText('div.alert-success', 'Verification succeeded',
'True message is observed')
.assertElementContainsText('div.alert-success', 'Your network is configured correctly',
'True msg observed')
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.assertElementNotExists('div.alert-success',
'No message about result of network verification on "default" subtab')
.clickByCssSelector('.subtab-link-neutron_l2')
.assertElementNotExists('div.alert-success',
'No message about result of network verification on "Neutron L2" subtab')
.clickByCssSelector('.subtab-link-neutron_l3')
.assertElementNotExists('div.alert-success',
'No message about result of network verification on "Neutron L3" subtab')
.clickByCssSelector('.subtab-link-network_settings')
.assertElementNotExists('div.alert-success',
'No message about result of network verification on "Other" subtab')
.clickByCssSelector('.subtab-link-network_verification')
.assertElementExists('div.alert-success',
'Verification success is again observed on "Connectivity Check" subtab')
.assertElementContainsText('div.alert-success', 'Verification succeeded',
'True message is observed')
.assertElementContainsText('div.alert-success', 'Your network is configured correctly',
'True msg observed');
},
'Failed network verification presents on each subtab on "Networks" tab': function() {
var gatewayValue = '172.16.0.2';
return this.remote
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.setInputValue('div.public input[name=gateway]', gatewayValue)
.clickByCssSelector('.subtab-link-network_verification')
.assertElementEnabled('.verify-networks-btn', '"Verify Networks" is enabled')
.clickByCssSelector('.verify-networks-btn')
.assertElementAppears('div.alert-danger', 5000,
'Verification failed is shown on "Connectivity Check" subtab')
.assertElementContainsText('div.alert-danger',
'Address intersection between public gateway and IP range of public network',
'True message is observed')
.then(function() {
return networksLib.gotoNodeNetworkGroup('default');
})
.assertElementExists('div.alert-danger',
'Message about result of network verification on "default" subtab')
.assertElementContainsText('div.alert-danger',
'Address intersection between public gateway and IP range of public network',
'True message is observed')
.clickByCssSelector('.subtab-link-neutron_l2')
.assertElementExists('div.alert-danger',
'Message about result of network verification on "default" subtab')
.assertElementContainsText('div.alert-danger',
'Address intersection between public gateway and IP range of public network',
'True message is observed')
.clickByCssSelector('.subtab-link-neutron_l3')
.assertElementExists('div.alert-danger',
'Message about result of network verification on "default" subtab')
.assertElementContainsText('div.alert-danger',
'Address intersection between public gateway and IP range of public network',
'True message is observed')
.clickByCssSelector('.subtab-link-network_settings')
.assertElementExists('div.alert-danger',
'Message about result of network verification on "default" subtab')
.assertElementContainsText('div.alert-danger',
'Address intersection between public gateway and IP range of public network',
'True message is observed')
.clickByCssSelector('.subtab-link-network_verification')
.assertElementExists('div.alert-danger',
'Message about result of network verification on "default" subtab')
.assertElementContainsText('div.alert-danger',
'Address intersection between public gateway and IP range of public network',
'True message is observed');
}
};
});
registerSuite(function() {
var common,
clusterPage,
clusterName,
networksLib;
return {
name: 'Neutron tunneling segmentation',
setup: function() {
common = new Common(this.remote);
clusterPage = new ClusterPage(this.remote);
clusterName = common.pickRandomName('Tunneling Cluster');
networksLib = new NetworksLib(this.remote);
return this.remote
.then(function() {
return common.getIn();
})
.then(function() {
return common.createCluster(
clusterName,
{
'Networking Setup': function() {
return this.remote
.clickByCssSelector('input[value*="neutron"][value$=":vlan"]')
.clickByCssSelector('input[value*="neutron"][value$=":tun"]');
}
}
);
})
.then(function() {
return clusterPage.goToTab('Networks');
});
},
'Check "Node Network Groups" segment on "Networks" tab': function() {
return this.remote
.assertElementExists('a[class*="network"][class*="active"]', '"Networks" tab is opened')
.assertElementExists('div.network-tab div.network-tab-content',
'"Networks" tab is not empty')
.assertElementTextEquals('ul.node_network_groups li.group-title',
'Node Network Groups', '"Node Network Groups" segment opens by default')
.assertElementTextEquals('ul.node_network_groups li.active', 'default',
'"default" node network group opens by default')
.then(function() {
return networksLib.checkNetworkInitialState('Public');
})
.then(function() {
return networksLib.checkNetworkInitialState('Storage');
})
.then(function() {
return networksLib.checkNetworkInitialState('Management');
})
.then(function() {
return networksLib.checkNetworkInitialState('Private');
});
},
'Check "Settings" segment on "Networks" tab': function() {
return this.remote
.then(function() {
return networksLib.checkNetrworkSettingsSegment('Tunnel');
});
},
'Check "Network Verification" segment on "Networks" tab': function() {
return this.remote
.then(function() {
return networksLib.checkNetrworkVerificationSegment();
});
}
};
});
});

View File

@ -1,167 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern/dojo/node!lodash',
'tests/functional/pages/modal',
'tests/functional/pages/dashboard',
'intern/dojo/node!leadfoot/helpers/pollUntil',
'tests/functional/helpers'
], function(_, ModalWindow, DashboardPage, pollUntil) {
'use strict';
function ClusterPage(remote) {
this.remote = remote;
this.modal = new ModalWindow(remote);
this.dashboardPage = new DashboardPage(remote);
}
ClusterPage.prototype = {
constructor: ClusterPage,
goToTab: function(tabName) {
return this.remote
.findByCssSelector('.cluster-page .tabs')
.clickLinkByText(tabName)
.end()
.then(pollUntil(function(textToFind) {
return window.$('.cluster-tab.active').text() === textToFind || null;
}, [tabName], 3000));
},
removeCluster: function(clusterName) {
var self = this;
return this.remote
.clickLinkByText('Dashboard')
.clickByCssSelector('button.delete-environment-btn')
.then(function() {
return self.modal.waitToOpen();
})
.then(function() {
return self.modal.clickFooterButton('Delete');
})
.findAllByCssSelector('div.confirm-deletion-form input[type=text]')
.then(function(confirmInputs) {
if (confirmInputs.length) {
return confirmInputs[0]
.type(clusterName)
.then(function() {
return self.modal.clickFooterButton('Delete');
});
}
})
.end()
.then(function() {
return self.modal.waitToClose();
})
.waitForCssSelector('.clusters-page', 2000)
.waitForDeletedByCssSelector('.clusterbox', 20000);
},
searchForNode: function(nodeName) {
return this.remote
.clickByCssSelector('button.btn-search')
.setInputValue('input[name=search]', nodeName);
},
checkNodeRoles: function(assignRoles) {
return this.remote
.findAllByCssSelector('.role-panel .role-block .role')
.then(function(roles) {
return roles.reduce(
function(result, role) {
return role
.getVisibleText()
.then(function(label) {
var index = assignRoles.indexOf(label);
if (index >= 0) {
role.click();
assignRoles.splice(index, 1);
return !assignRoles.length;
}
});
},
false
);
});
},
checkNodes: function(amount, status) {
var self = this;
status = status || 'discover';
return this.remote
.then(function() {
return _.range(amount).reduce(
function(result, index) {
return self.remote
.findAllByCssSelector('.node' + '.' + status + ' > label')
.then(function(nodes) {
return nodes[index].click();
})
.catch(function(e) {
throw new Error('Failed to add ' + amount + ' nodes to the cluster: ' + e);
});
},
true);
});
},
resetEnvironment: function(clusterName) {
var self = this;
return this.remote
.clickByCssSelector('button.reset-environment-btn')
.then(function() {
return self.modal.waitToOpen();
})
.then(function() {
return self.modal.checkTitle('Reset Environment');
})
.then(function() {
return self.modal.clickFooterButton('Reset');
})
.findAllByCssSelector('div.confirm-reset-form input[type=text]')
.then(function(confirmationInputs) {
if (confirmationInputs.length) {
return confirmationInputs[0]
.type(clusterName)
.then(function() {
return self.modal.clickFooterButton('Reset');
});
}
})
.end()
.then(function() {
return self.modal.waitToClose();
})
.waitForElementDeletion('div.progress-bar', 20000);
},
isTabLocked: function(tabName) {
var self = this;
return this.remote
.then(function() {
return self.goToTab(tabName);
})
.waitForCssSelector('div.tab-content div.row.changes-locked', 2000)
.then(_.constant(true), _.constant(false));
},
deployEnvironment: function() {
var self = this;
return this.remote
.then(function() {
return self.goToTab('Dashboard');
})
.then(function() {
return self.dashboardPage.startDeployment();
})
.waitForElementDeletion('.dashboard-block .progress', 60000)
.waitForCssSelector('.links-block', 5000);
}
};
return ClusterPage;
});

View File

@ -1,95 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern/dojo/node!lodash',
'tests/functional/pages/modal',
'tests/functional/helpers'
], function(_, ModalWindow) {
'use strict';
function ClustersPage(remote) {
this.remote = remote;
this.modal = new ModalWindow(remote);
}
ClustersPage.prototype = {
constructor: ClustersPage,
createCluster: function(clusterName, stepsMethods) {
var self = this;
var stepMethod = function(stepName) {
return _.bind(_.get(stepsMethods, stepName, _.noop), self);
};
return this.remote
.clickByCssSelector('.create-cluster')
.then(function() {
return self.modal.waitToOpen();
})
// Name and release
.setInputValue('[name=name]', clusterName)
.then(stepMethod('Name and Release'))
.pressKeys('\uE007')
// Compute
.then(stepMethod('Compute'))
.pressKeys('\uE007')
// Networking Setup
.then(stepMethod('Networking Setup'))
.pressKeys('\uE007')
//Storage Backends
.then(stepMethod('Storage Backends'))
.pressKeys('\uE007')
// Additional Services
.then(stepMethod('Additional Services'))
.pressKeys('\uE007')
// Finish
.pressKeys('\uE007')
.then(function() {
return self.modal.waitToClose();
});
},
clusterSelector: '.clusterbox div.name',
goToEnvironment: function(clusterName) {
var self = this;
return this.remote
.waitForCssSelector(self.clusterSelector, 5000)
.findAllByCssSelector(self.clusterSelector)
.then(function(divs) {
return divs.reduce(
function(matchFound, element) {
return element.getVisibleText().then(
function(name) {
if (name === clusterName) {
element.click();
return true;
}
return matchFound;
}
);
},
false
);
})
.then(function(result) {
if (!result) {
throw new Error('Cluster ' + clusterName + ' not found');
}
return true;
})
.end()
.waitForCssSelector('.dashboard-tab', 1000);
}
};
return ClustersPage;
});

View File

@ -1,137 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern/dojo/node!lodash',
'intern/chai!assert',
'tests/functional/helpers',
'intern/dojo/node!leadfoot/helpers/pollUntil',
'tests/functional/pages/login',
'tests/functional/pages/welcome',
'tests/functional/pages/cluster',
'tests/functional/pages/clusters'
],
function(_, assert, Helpers, pollUntil, LoginPage, WelcomePage, ClusterPage, ClustersPage) {
'use strict';
function CommonMethods(remote) {
this.remote = remote;
this.loginPage = new LoginPage(remote);
this.welcomePage = new WelcomePage(remote);
this.clusterPage = new ClusterPage(remote);
this.clustersPage = new ClustersPage(remote);
}
CommonMethods.prototype = {
constructor: CommonMethods,
pickRandomName: function(prefix) {
return _.uniqueId((prefix || 'Item') + ' #');
},
getOut: function() {
var self = this;
return this.remote
.then(function() {
return self.welcomePage.skip();
})
.then(function() {
return self.loginPage.logout();
});
},
getIn: function() {
var self = this;
return this.remote
.then(function() {
return self.loginPage.logout();
})
.then(function() {
return self.loginPage.login();
})
.waitForElementDeletion('.login-btn', 2000)
.then(function() {
return self.welcomePage.skip();
})
.waitForCssSelector('.navbar-nav', 1000)
.clickByCssSelector('.global-alert.alert-warning .close');
},
createCluster: function(clusterName, stepsMethods) {
var self = this;
return this.remote
.clickLinkByText('Environments')
.waitForCssSelector('.clusters-page', 2000)
.then(function() {
return self.clustersPage.createCluster(clusterName, stepsMethods);
});
},
removeCluster: function(clusterName, suppressErrors) {
var self = this;
return this.remote
.clickLinkByText('Environments')
.waitForCssSelector('.clusters-page', 2000)
.then(function() {
return self.clustersPage.goToEnvironment(clusterName);
})
.then(function() {
return self.clusterPage.removeCluster(clusterName);
})
.catch(function(e) {
if (!suppressErrors) {
throw new Error('Unable to delete cluster ' + clusterName + ': ' + e);
}
});
},
doesClusterExist: function(clusterName) {
var self = this;
return this.remote
.clickLinkByText('Environments')
.waitForCssSelector('.clusters-page', 2000)
.findAllByCssSelector(self.clustersPage.clusterSelector)
.then(function(divs) {
return divs.reduce(function(matchFound, element) {
return element.getVisibleText().then(
function(name) {
return (name === clusterName) || matchFound;
}
);
}, false);
});
},
addNodesToCluster: function(nodesAmount, nodesRoles, nodeStatus, nodeNameFilter) {
var self = this;
return this.remote
.then(function() {
return self.clusterPage.goToTab('Nodes');
})
.waitForCssSelector('button.btn-add-nodes', 3000)
.clickByCssSelector('button.btn-add-nodes')
.waitForCssSelector('.node', 3000)
.then(pollUntil(function() {
return window.$('.node-list-management-buttons').is(':visible') &&
window.$('.role-panel').is(':visible') || null;
}, 3000))
.then(function() {
if (nodeNameFilter) return self.clusterPage.searchForNode(nodeNameFilter);
})
.then(function() {
return self.clusterPage.checkNodeRoles(nodesRoles);
})
.then(function() {
return self.clusterPage.checkNodes(nodesAmount, nodeStatus);
})
.clickByCssSelector('.btn-apply')
.waitForElementDeletion('.btn-apply', 3000);
}
};
return CommonMethods;
});

View File

@ -1,97 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/pages/modal',
'tests/functional/helpers'
], function(ModalWindow) {
'use strict';
function DashboardPage(remote) {
this.remote = remote;
this.modal = new ModalWindow(remote);
this.deployButtonSelector = '.actions-panel .deploy-btn';
}
DashboardPage.prototype = {
constructor: DashboardPage,
startDeployment: function() {
var self = this;
return this.remote
.clickByCssSelector(this.deployButtonSelector)
.then(function() {
return self.modal.waitToOpen();
})
.then(function() {
return self.modal.checkTitle('Deploy Changes');
})
.then(function() {
return self.modal.clickFooterButton('Deploy');
})
.then(function() {
return self.modal.waitToClose();
});
},
stopDeployment: function() {
var self = this;
return this.remote
.clickByCssSelector('button.stop-deployment-btn')
.then(function() {
return self.modal.waitToOpen();
})
.then(function() {
return self.modal.checkTitle('Stop Deployment');
})
.then(function() {
return self.modal.clickFooterButton('Stop');
})
.then(function() {
return self.modal.waitToClose();
});
},
startClusterRenaming: function() {
return this.remote
.clickByCssSelector('.cluster-info-value.name .glyphicon-pencil');
},
setClusterName: function(name) {
var self = this;
return this.remote
.then(function() {
return self.startClusterRenaming();
})
.findByCssSelector('.rename-block input[type=text]')
.clearValue()
.type(name)
// Enter
.type('\uE007')
.end();
},
discardChanges: function() {
var self = this;
return this.remote
.clickByCssSelector('.btn-discard-changes')
.then(function() {
return self.modal.waitToOpen();
})
.then(function() {
return self.modal.clickFooterButton('Discard');
})
.then(function() {
return self.modal.waitToClose();
});
}
};
return DashboardPage;
});

View File

@ -1,551 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the 'License'); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/helpers'
], function() {
'use strict';
function HealthcheckPage(remote) {
this.remote = remote;
}
HealthcheckPage.prototype = {
constructor: HealthcheckPage,
createFakeServerForNotRunnedTests: function() {
return this.remote
.execute(function() {
window.server = sinon.fakeServer.create();
window.server.autoRespond = true;
window.server.respondWith('GET', /\/ostf\/testsets\/.*/, [
200, {'Content-Type': 'application/json'}, JSON.stringify([
// @FIXME(morale): multiple testsets don't seem to work as expected
{
id: 'general_test',
name: 'General fake tests. Duration - 10s'
}]
)
]);
window.server.respondWith('GET', /\/ostf\/tests\/.*/, [
200, {'Content-Type': 'application/json'}, JSON.stringify([
{
status: null,
step: null,
taken: null,
testset: 'general_test',
name: 'Check disk space outage on controller and compute nodes',
duration: '20s',
message: null,
id: 'fuel_health.tests.check_disk',
description: 'Target component: Nova ' +
'Scenario: 1. Check outage on controller and compute nodes'
},
{
status: null,
step: null,
taken: null,
testset: 'general_test',
name: 'Stopped test',
duration: '20s',
message: null,
id: 'fuel_health.tests.stopped',
description: 'Testing test stop'
},
{
status: null,
taken: null,
step: null,
testset: 'general_test',
name: 'Check log rotation configuration on all nodes',
duration: '30s.',
message: null,
id: 'fuel_health.tests.general',
description: 'Target component: Logging ' +
'Scenario: 1. Check logrotate cron job on all controller and compute nodes'
},
{
status: null,
taken: null,
step: null,
testset: 'general_test',
name: 'Check usage of default credentials on master node',
duration: '1sec',
message: null,
id: 'fuel_health.tests.credentials',
description: 'Target component: Configuration ' +
'Scenario: 1. Check user can not ssh on master node with default credentials.'
},
{
status: null,
taken: null,
step: null,
testset: 'general_test',
name: 'Check if default credentials for OpenStack cluster have changed',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_change',
description: 'Target component: Configuration ' +
'Scenario: 1. Check if default credentials for OpenStack cluster have changed.'
},
{
status: null,
taken: null,
step: null,
testset: 'general_test',
name: 'Checking common credentials',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_common',
description: 'Checking common'
},
{
status: null,
taken: null,
step: null,
testset: 'general_test',
name: 'Checking error credentials',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_erros',
description: 'Target component: Configuration ' +
'Scenario: 1. Check if default credentials for OpenStack cluster have changed. '
}]
)
]);
window.server.respondWith('GET', /\ostf\/testruns\/last.*/, [
200, {'Content-Type': 'application/json'},
'[]'
]);
});
},
createFakeServerForRunningTests: function() {
return this.remote
// running tests
.execute(function() {
window.server = sinon.fakeServer.create();
window.server.autoRespond = true;
window.server.respondWith('GET', /\/ostf\/testsets\/.*/, [
200, {'Content-Type': 'application/json'}, JSON.stringify([
{
id: 'general_test',
name: 'General fake tests. Duration - 10s'
}]
)
]);
// All possible statuses covered at once
window.server.respondWith('GET', /\/ostf\/tests\/.*/, [
200, {'Content-Type': 'application/json'}, JSON.stringify([
{
status: 'running',
taken: null,
step: null,
testset: 'general_test',
name: 'Check disk space outage on controller and compute nodes',
duration: '20s',
message: null,
id: 'fuel_health.tests.check_disk',
description: 'Target component: Nova ' +
'Scenario: 1. Check outage on controller and compute nodes'
},
{
status: 'stopped',
step: null,
taken: 2.123123123,
testset: 'general_test',
name: 'Stopped test',
duration: '20s',
message: 'Successfully stopped',
id: 'fuel_health.tests.stopped',
description: 'Testing test stop'
},
{
status: 'skipped',
taken: null,
step: null,
testset: 'general_test',
name: 'Check log rotation configuration on all nodes',
duration: '30s.',
message: 'Fast fail with message',
id: 'fuel_health.tests.general',
description: 'Target component: Logging ' +
'Scenario: 1. Check logrotate cron job on all controller and compute nodes'
},
{
status: 'wait_running',
taken: null,
step: null,
testset: 'general_test',
name: 'Check usage of default credentials on master node',
duration: '1sec',
message: 'failure text message',
id: 'fuel_health.tests.credentials',
description: 'Target component: Configuration ' +
'Scenario: 1. Check user can not ssh on master node with default credentials.'
},
{
status: 'running',
taken: '3s',
step: null,
testset: 'general_test',
name: 'Check if default credentials for OpenStack cluster have changed',
duration: '',
message: 'Error message',
id: 'fuel_health.tests.credentials_change',
description: ' Target component: Configuration ' +
'Scenario: 1. Check if default credentials for OpenStack cluster have changed.'
},
{
status: 'wait_running',
taken: null,
step: null,
testset: 'general_test',
name: 'Checking common credentials',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_common',
description: 'Checking common'
},
{
status: 'running',
taken: '3s',
step: null,
testset: 'general_test',
name: 'Checking error credentials',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_erros',
description: 'Target component: Configuration ' +
'Scenario: 1. Check if error credentials for OpenStack cluster not suit.'
}]
)
]);
window.server.respondWith('GET', /\ostf\/testruns\/last.*/, [
200, {'Content-Type': 'application/json'}, JSON.stringify([
{
status: 'running',
cluster_id: 3,
ended_at: '2015-09-24 12:15:33.262275',
id: 1,
meta: null,
started_at: '2015-09-24 12:15:21.590927',
testset: 'general_test',
tests: [
{
status: 'running',
taken: null,
step: null,
testset: 'general_test',
name: 'Check disk space outage on controller and compute nodes',
duration: '20s',
message: null,
id: 'fuel_health.tests.check_disk',
description: 'Target component: Nova ' +
'Scenario: 1. Check outage on controller and compute nodes'
},
{
status: 'stopped',
step: null,
taken: 2.123123123,
testset: 'general_test',
name: 'Stopped test',
duration: '20s',
message: 'Successfully stopped',
id: 'fuel_health.tests.stopped',
description: 'Testing test stop'
},
{
status: 'skipped',
taken: null,
step: null,
testset: 'general_test',
name: 'Check log rotation configuration on all nodes',
duration: '30s.',
message: 'Fast fail with message',
id: 'fuel_health.tests.general',
description: 'Target component: Logging ' +
'Scenario: 1. Check logrotate cron job on all controller and compute nodes'
},
{
status: 'wait_running',
taken: null,
step: null,
testset: 'general_test',
name: 'Check usage of default credentials on master node',
duration: '1sec',
message: 'failure text message',
id: 'fuel_health.tests.credentials',
description: 'Target component: Configuration ' +
'Scenario: 1. Check user can not ssh on master node with default credentials.'
},
{
status: 'running',
taken: '3s',
step: null,
testset: 'general_test',
name: 'Check if default credentials for OpenStack cluster have changed',
duration: '',
message: 'Error message',
id: 'fuel_health.tests.credentials_change',
description: ' Target component: Configuration ' +
'Scenario: ' +
'1. Check if default credentials for OpenStack cluster have changed.'
},
{
status: 'wait_running',
taken: null,
step: null,
testset: 'general_test',
name: 'Checking common credentials',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_common',
description: 'Checking common'
},
{
status: 'running',
taken: '3s',
step: null,
testset: 'general_test',
name: 'Checking error credentials',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_erros',
description: 'Target component: Configuration ' +
'Scenario: 1. Check if error credentials for OpenStack cluster not suit.'
}
]
}]
)
]);
});
},
createFakeServerForFinishedTests: function() {
return this.remote
// running tests
.execute(function() {
window.server = sinon.fakeServer.create();
window.server.autoRespond = true;
window.server.respondWith('GET', /\/ostf\/testsets\/.*/, [
200, {'Content-Type': 'application/json'}, JSON.stringify([
{
id: 'general_test',
name: 'General fake tests. Duration - 10s'
}]
)
]);
// All possible statuses covered at once
window.server.respondWith('GET', /\/ostf\/tests\/.*/, [
200, {'Content-Type': 'application/json'}, JSON.stringify([
{
status: 'success',
taken: 1.71715784072876,
step: null,
testset: 'general_test',
name: 'Check disk space outage on controller and compute nodes',
duration: '20s',
message: null,
id: 'fuel_health.tests.check_disk',
description: 'Target component: Nova ' +
'Scenario: 1. Check outage on controller and compute nodes'
},
{
status: 'stopped',
step: null,
taken: 2.123123123,
testset: 'general_test',
name: 'Stopped test',
duration: '20s',
message: 'Successfully stopped',
id: 'fuel_health.tests.stopped',
description: 'Testing test stop'
},
{
status: 'failure',
taken: 2.7339019775390598,
step: null,
testset: 'general_test',
name: 'Check log rotation configuration on all nodes',
duration: '30s.',
message: 'Fast fail with message',
id: 'fuel_health.tests.general',
description: 'Target component: Logging ' +
'Scenario: ' +
'1. Check logrotate cron job on all controller and compute nodes'
},
{
status: 'skipped',
taken: null,
step: null,
testset: 'general_test',
name: 'Check usage of default credentials on master node',
duration: '1sec',
message: 'failure text message',
id: 'fuel_health.tests.credentials',
description: 'Target component: Configuration ' +
'Scenario: 1. Check user can not ssh on master node with default credentials.'
},
{
status: 'success',
taken: '3s',
step: null,
testset: 'general_test',
name: 'Check if default credentials for OpenStack cluster have changed',
duration: '',
message: 'Error message',
id: 'fuel_health.tests.credentials_change',
description: ' Target component: Configuration ' +
'Scenario: ' +
'1. Check if default credentials for OpenStack cluster have changed. '
},
{
status: 'failure',
taken: 3.89809381,
step: null,
testset: 'general_test',
name: 'Checking common credentials',
duration: '',
message: 'Failure message',
id: 'fuel_health.tests.credentials_common',
description: 'Checking common'
},
{
status: 'error',
taken: '3s',
step: null,
testset: 'general_test',
name: 'Checking error credentials',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_erros',
description: 'Target component: Configuration ' +
'Scenario: 1. Check if error credentials for OpenStack cluster not suit.'
}
])
]);
window.server.respondWith('GET', /\ostf\/testruns\/last.*/, [
200, {'Content-Type': 'application/json'}, JSON.stringify([
{
status: 'finished',
cluster_id: 4,
ended_at: '2015-09-24 12:15:33.262275',
id: 1,
meta: null,
started_at: '2015-09-24 12:15:21.590927',
testset: 'general_test',
tests: [
{
status: 'success',
taken: 1.71715784072876,
step: null,
testset: 'general_test',
name: 'Check disk space outage on controller and compute nodes',
duration: '20s',
message: null,
id: 'fuel_health.tests.check_disk',
description: 'Target component: Nova ' +
'Scenario: 1. Check outage on controller and compute nodes'
},
{
status: 'stopped',
step: null,
taken: 2.123123123,
testset: 'general_test',
name: 'Stopped test',
duration: '20s',
message: 'Successfully stopped',
id: 'fuel_health.tests.stopped',
description: 'Testing test stop'
},
{
status: 'failure',
taken: 2.7339019775390598,
step: null,
testset: 'general_test',
name: 'Check log rotation configuration on all nodes',
duration: '30s.',
message: 'Fast fail with message',
id: 'fuel_health.tests.general',
description: 'Target component: Logging ' +
'Scenario: ' +
'1. Check logrotate cron job on all controller and compute nodes'
},
{
status: 'skipped',
taken: null,
step: null,
testset: 'general_test',
name: 'Check usage of default credentials on master node',
duration: '1sec',
message: 'failure text message',
id: 'fuel_health.tests.credentials',
description: 'Target component: Configuration ' +
'Scenario: ' +
'1. Check user can not ssh on master node with default credentials. '
},
{
status: 'success',
taken: '3s',
step: null,
testset: 'general_test',
name: 'Check if default credentials for OpenStack cluster have changed',
duration: '',
message: 'Error message',
id: 'fuel_health.tests.credentials_change',
description: ' Target component: Configuration ' +
'Scenario: ' +
'1. Check if default credentials for OpenStack cluster have changed. '
},
{
status: 'failure',
taken: 3.89809381,
step: null,
testset: 'general_test',
name: 'Checking common credentials',
duration: '',
message: 'Failure message',
id: 'fuel_health.tests.credentials_common',
description: 'Checking common'
},
{
status: 'error',
taken: '3s',
step: null,
testset: 'general_test',
name: 'Checking error credentials',
duration: '',
message: null,
id: 'fuel_health.tests.credentials_erros',
description: 'Target component: Configuration ' +
'Scenario: 1. Check if error credentials for OpenStack cluster not suit.'
}
]
}]
)
]);
});
},
restoreServer: function() {
return this.remote
.execute(function() {
window.server.restore();
});
}
};
return HealthcheckPage;
});

View File

@ -1,155 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern/dojo/node!lodash',
'intern/chai!assert'
], function(_, assert) {
'use strict';
function InterfacesPage(remote) {
this.remote = remote;
}
InterfacesPage.prototype = {
constructor: InterfacesPage,
findInterfaceElement: function(ifcName) {
return this.remote
.findAllByCssSelector('div.ifc-inner-container')
.then(function(ifcElements) {
return ifcElements.reduce(function(result, ifcElement) {
return ifcElement
.findByCssSelector('.ifc-name')
.then(function(ifcDiv) {
return ifcDiv
.getVisibleText()
.then(function(currentIfcName) {
return _.trim(currentIfcName) === ifcName ? ifcElement : result;
});
});
}, null);
});
},
findInterfaceElementInBond: function(ifcName) {
return this.remote
.findAllByCssSelector('.ifc-info-block')
.then(function(ifcsElements) {
return ifcsElements.reduce(function(result, ifcElement) {
return ifcElement
.findByCssSelector('.ifc-name')
.then(function(ifcNameElement) {
return ifcNameElement
.getVisibleText()
.then(function(foundIfcName) {
return ifcName === foundIfcName ? ifcElement : result;
});
});
}, null);
});
},
removeInterfaceFromBond: function(ifcName) {
var self = this;
return this.remote
.then(function() {
return self.findInterfaceElementInBond(ifcName);
})
.then(function(ifcElement) {
return ifcElement
.findByCssSelector('.ifc-info > .btn-link')
.then(function(btnRemove) {
return btnRemove.click();
});
});
},
assignNetworkToInterface: function(networkName, ifcName) {
var self = this;
return this.remote
.findAllByCssSelector('div.network-block')
.then(function(networkElements) {
return networkElements.reduce(function(result, networkElement) {
return networkElement
.getVisibleText()
.then(function(currentNetworkName) {
return currentNetworkName === networkName ? networkElement : result;
});
}, null);
})
.then(function(networkElement) {
return this.parent.dragFrom(networkElement);
})
.then(function() {
return self.findInterfaceElement(ifcName);
})
.then(function(ifcElement) {
return this.parent.dragTo(ifcElement);
});
},
selectInterface: function(ifcName) {
var self = this;
return this.remote
.then(function() {
return self.findInterfaceElement(ifcName);
})
.then(function(ifcElement) {
if (!ifcElement) throw new Error('Unable to select interface ' + ifcName);
return ifcElement
.findByCssSelector('input[type=checkbox]:not(:checked)')
.then(function(ifcCheckbox) {
return ifcCheckbox.click();
});
});
},
bondInterfaces: function(ifc1, ifc2) {
var self = this;
return this.remote
.then(function() {
return self.selectInterface(ifc1);
})
.then(function() {
return self.selectInterface(ifc2);
})
.clickByCssSelector('.btn-bond');
},
checkBondInterfaces: function(bondName, ifcsNames) {
var self = this;
return this.remote
.then(function() {
return self.findInterfaceElement(bondName);
})
.then(function(bondElement) {
ifcsNames.push(bondName);
return bondElement
.findAllByCssSelector('.ifc-name')
.then(function(ifcNamesElements) {
assert.equal(ifcNamesElements.length, ifcsNames.length,
'Unexpected number of interfaces in bond');
return ifcNamesElements.forEach(
function(ifcNameElement) {
return ifcNameElement
.getVisibleText()
.then(function(name) {
name = _.trim(name);
if (!_.contains(ifcsNames, name)) {
throw new Error('Unexpected name in bond: ' + name);
}
});
});
});
});
}
};
return InterfacesPage;
});

View File

@ -1,73 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/helpers'
], function(Helpers) {
'use strict';
function LoginPage(remote) {
this.remote = remote;
}
LoginPage.prototype = {
constructor: LoginPage,
login: function(username, password) {
username = username || Helpers.username;
password = password || Helpers.password;
var self = this;
return this.remote
.setFindTimeout(500)
.setWindowSize(1280, 1024)
.getCurrentUrl()
.then(function(url) {
if (url !== Helpers.serverUrl + '/#login') {
return self.logout();
}
})
.setInputValue('[name=username]', username)
.setInputValue('[name=password]', password)
.clickByCssSelector('.login-btn');
},
logout: function() {
return this.remote
.getCurrentUrl()
.then(function(url) {
if (url.indexOf(Helpers.serverUrl) !== 0) {
return this.parent
.get(Helpers.serverUrl + '/#logout')
.findByClassName('login-btn')
.then(function() {
return true;
});
}
})
.clickByCssSelector('li.user-icon')
.clickByCssSelector('.user-popover button.btn-logout')
.findByCssSelector('.login-btn')
.then(
function() {
return true;
},
function() {
return true;
}
);
}
};
return LoginPage;
});

View File

@ -1,77 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'intern/dojo/node!leadfoot/helpers/pollUntil',
'tests/functional/helpers'
], function(pollUntil) {
'use strict';
function ModalWindow(remote) {
this.remote = remote;
}
ModalWindow.prototype = {
constructor: ModalWindow,
modalSelector: '#modal-container > .modal',
waitToOpen: function() {
return this.remote
.waitForCssSelector(this.modalSelector, 2000)
.then(pollUntil(function(modalSelector) {
return window.$(modalSelector).css('opacity') === '1' || null;
}, [this.modalSelector], 3000));
},
checkTitle: function(expectedTitle) {
return this.remote
.assertElementContainsText(this.modalSelector + ' h4.modal-title', expectedTitle,
'Unexpected modal window title');
},
close: function() {
var self = this;
return this.remote
.clickByCssSelector(this.modalSelector + ' .modal-header button.close')
.then(function() {
return self.waitToClose();
});
},
clickFooterButton: function(buttonText) {
return this.remote
.findAllByCssSelector(this.modalSelector + ' .modal-footer button')
.then(function(buttons) {
return buttons.reduce(function(result, button) {
return button.getVisibleText()
.then(function(buttonTitle) {
if (buttonTitle === buttonText) {
return button.isEnabled()
.then(function(isEnabled) {
if (isEnabled) {
return button.click();
} else {
throw Error('Unable to click disabled button "' + buttonText + '"');
}
});
}
return result;
});
}, null);
});
},
waitToClose: function() {
return this.remote
.waitForElementDeletion(this.modalSelector, 5000);
}
};
return ModalWindow;
});

View File

@ -1,87 +0,0 @@
/*
* Copyright 2016 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/pages/modal',
'tests/functional/helpers'
], function(ModalWindow) {
'use strict';
function NetworkPage(remote) {
this.remote = remote;
this.modal = new ModalWindow(this.remote);
}
NetworkPage.prototype = {
constructor: NetworkPage,
addNodeNetworkGroup: function(name) {
var self = this;
return this.remote
.clickByCssSelector('.add-nodegroup-btn')
.then(function() {
return self.modal.waitToOpen();
})
.setInputValue('[name=node-network-group-name]', name)
.then(function() {
return self.modal.clickFooterButton('Add Group');
})
.then(function() {
return self.modal.waitToClose();
})
.waitForCssSelector('.network-group-name[data-name=' + name + ']', 2000);
},
renameNodeNetworkGroup: function(oldName, newName) {
var self = this;
return this.remote
.then(function() {
return self.goToNodeNetworkGroup(oldName);
})
.clickByCssSelector('.glyphicon-pencil')
.waitForCssSelector('.network-group-name input[type=text]', 2000)
.findByCssSelector('.node-group-renaming input[type=text]')
.clearValue()
.type(newName)
// Enter
.type('\uE007')
.end()
.waitForCssSelector('.network-group-name[data-name=' + newName + ']', 2000);
},
goToNodeNetworkGroup: function(name) {
return this.remote
.findByCssSelector('ul.node_network_groups')
.clickLinkByText(name)
.end()
.waitForCssSelector('.network-group-name[data-name=' + name + ']', 2000);
},
removeNodeNetworkGroup: function(name) {
var self = this;
return this.remote
.clickByCssSelector('.network-group-name[data-name=' + name + '] .glyphicon-remove')
.then(function() {
return self.modal.waitToOpen();
})
.then(function() {
return self.modal.clickFooterButton('Delete');
})
.then(function() {
return self.modal.waitToClose();
})
.waitForElementDeletion('.network-group-name[data-name=' + name + ']', 2000)
.sleep(3000); // unconditionally sleep to wait until update_dnsmasq task is finished
}
};
return NetworkPage;
});

View File

@ -1,89 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/pages/modal',
'tests/functional/helpers'
], function(ModalWindow) {
'use strict';
function NodeComponent(remote) {
this.remote = remote;
this.modal = new ModalWindow(this.remote);
}
NodeComponent.prototype = {
constructor: NodeComponent,
openCompactNodeExtendedView: function() {
var self = this;
return this.remote
.findByCssSelector('div.compact-node .node-hardware p:not(.btn)')
.then(function(element) {
return self.remote.moveMouseTo(element);
})
.end()
// the following timeout as we have 0.3s transition for the button
.sleep(500)
.clickByCssSelector('div.compact-node .node-hardware p.btn')
.waitForCssSelector('.node-popover', 1000)
// the following timeout as we have 0.3s transition for the popover
.sleep(300);
},
openNodePopup: function(fromExtendedView) {
var self = this;
var cssSelector = fromExtendedView ? '.node-popover' : '.node';
return this.remote
.findByCssSelector(cssSelector)
.clickByCssSelector('.node-settings')
.end()
.then(function() {
return self.modal.waitToOpen();
});
},
discardNode: function(fromExtendedView) {
var self = this;
var cssSelector = fromExtendedView ? '.node-popover' : '.node';
return this.remote
.findByCssSelector(cssSelector)
.clickByCssSelector('.btn-discard')
.end()
.then(function() {
// deletion confirmation shows up
return self.modal.waitToOpen();
})
// confirm deletion
.clickByCssSelector('div.modal-content button.btn-delete')
.then(function() {
return self.modal.waitToClose();
});
},
renameNode: function(newName, fromExtendedView) {
var cssSelector = fromExtendedView ? '.node-popover' : '.node';
return this.remote
.findByCssSelector(cssSelector)
.clickByCssSelector('.name p')
.findByCssSelector('input.node-name-input')
// node name gets editable upon clicking on it
.clearValue()
.type(newName)
.pressKeys('\uE007')
.end()
.waitForCssSelector('.name p', 1000)
.end();
}
};
return NodeComponent;
});

View File

@ -1,36 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define([
'tests/functional/helpers'
], function() {
'use strict';
function SettingsPage(remote) {
this.remote = remote;
}
SettingsPage.prototype = {
constructor: SettingsPage,
waitForRequestCompleted: function() {
return this.remote
// Load Defaults button is locked during any request is in progress on the tab
// so this is a hacky way to track request state
.waitForElementDeletion('.btn-load-defaults:disabled', 2000);
}
};
return SettingsPage;
});

View File

@ -1,49 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define(['tests/functional/helpers'], function() {
'use strict';
function WelcomePage(remote) {
this.remote = remote;
}
WelcomePage.prototype = {
constructor: WelcomePage,
skip: function(strictCheck) {
return this.remote
.waitForCssSelector('.welcome-page', 3000)
.then(
function() {
return this.parent
.clickByCssSelector('.welcome-button-box button')
.waitForDeletedByCssSelector('.welcome-button-box button', 2000)
.then(
function() {
return true;
},
function() {
return !strictCheck;
}
);
},
function() {
return !strictCheck;
}
);
}
};
return WelcomePage;
});

View File

@ -1,53 +0,0 @@
/*
* Copyright 2015 Mirantis, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
**/
define(['intern/dojo/node!fs'], function(fs) {
'use strict';
var ScreenshotOnFailReporter = function() {
this.remotes = {};
};
ScreenshotOnFailReporter.prototype = {
saveScreenshot: function(testOrSuite) {
var remote = this.remotes[testOrSuite.sessionId];
if (remote) {
remote.takeScreenshot().then(function(buffer) {
var targetDir = process.env.ARTIFACTS || process.cwd();
var filename = testOrSuite.id + ' - ' + new Date().toTimeString();
filename = filename.replace(/[\s\*\?\\\/]/g, '_');
filename = targetDir + '/' + filename + '.png';
fs.writeFile(filename, buffer, function(err) {
if (err) throw err;
console.log('Saved screenshot to', filename); // eslint-disable-line no-console
});
});
}
},
sessionStart: function(remote) {
var sessionId = remote._session._sessionId;
this.remotes[sessionId] = remote;
},
suiteError: function(suite) {
this.saveScreenshot(suite);
},
testFail: function(test) {
this.saveScreenshot(test);
}
};
return ScreenshotOnFailReporter;
});

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