Remove Fuel UI
It's been moved to a separate repo Implements: blueprint separate-fuel-ui-repo Change-Id: Ie1b22c1d56fa07df555561119ba40f6e87bb6fe3
|
@ -20,9 +20,6 @@ nosetests.xml
|
|||
nailgun.log
|
||||
lock
|
||||
|
||||
node_modules
|
||||
nailgun/static/build
|
||||
|
||||
*.egg
|
||||
.testrepository
|
||||
.tox
|
||||
|
|
|
@ -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
|
|
@ -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};
|
|
@ -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']);
|
|
@ -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
|
||||
}
|
||||
});
|
||||
};
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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;
|
|
@ -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
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
|
@ -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;
|
|
@ -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;
|
|
@ -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;
|
||||
}
|
||||
}
|
|
@ -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)}
|
||||
;
|
|
@ -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;
|
||||
})();
|
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 111 KiB |
|
@ -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;
|
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 16 KiB |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
|
@ -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 |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.5 KiB |
|
@ -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 |
|
@ -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 |
Before Width: | Height: | Size: 94 KiB |
|
@ -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 |
|
@ -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>
|
|
@ -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;
|
Before Width: | Height: | Size: 829 B |
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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};
|
|
@ -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;
|
|
@ -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>
|
||||
|
||||
({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;
|
|
@ -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);
|
||||
}
|
|
@ -1,11 +0,0 @@
|
|||
---
|
||||
ecmaFeatures:
|
||||
modules: false
|
||||
rules:
|
||||
prefer-arrow-callback: 0
|
||||
object-shorthand: 0
|
||||
env:
|
||||
amd: true
|
||||
node: true
|
||||
globals:
|
||||
sinon: false
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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']
|
||||
};
|
||||
});
|
|
@ -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
|
||||
};
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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');
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
|
@ -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');
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
|
@ -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();
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
|
@ -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');
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
|
@ -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']);
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
|
@ -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();
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|
|
@ -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;
|
||||
});
|