Merge branch 'master' into calendar_sharing
This commit is contained in:
commit
a3b8d54576
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
/**
|
||||
* ownCloud - Addressbook
|
||||
*
|
||||
* @author Thomas Tanghus
|
||||
* @copyright 2012 Thomas Tanghus <thomas@tanghus.net>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
// Init owncloud
|
||||
require_once('../../../lib/base.php');
|
||||
function bailOut($msg) {
|
||||
OC_JSON::error(array('data' => array('message' => $msg)));
|
||||
OC_Log::write('contacts','ajax/loadintro.php: '.$msg, OC_Log::DEBUG);
|
||||
exit();
|
||||
}
|
||||
function debug($msg) {
|
||||
OC_Log::write('contacts','ajax/loadintro.php: '.$msg, OC_Log::DEBUG);
|
||||
}
|
||||
// foreach ($_POST as $key=>$element) {
|
||||
// debug('_POST: '.$key.'=>'.$element);
|
||||
// }
|
||||
|
||||
// Check if we are a user
|
||||
OC_JSON::checkLoggedIn();
|
||||
OC_JSON::checkAppEnabled('contacts');
|
||||
|
||||
// $addressbooks = OC_Contacts_Addressbook::all(OC_USER::getUser());
|
||||
//
|
||||
// $upload_max_filesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
|
||||
// $post_max_size = OC_Helper::computerFileSize(ini_get('post_max_size'));
|
||||
// $maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
||||
//
|
||||
// $freeSpace=OC_Filesystem::free_space('/');
|
||||
// $freeSpace=max($freeSpace,0);
|
||||
// $maxUploadFilesize = min($maxUploadFilesize ,$freeSpace);
|
||||
// $adr_types = OC_Contacts_App::getTypesOfProperty('ADR');
|
||||
// $phone_types = OC_Contacts_App::getTypesOfProperty('TEL');
|
||||
|
||||
$tmpl = new OC_Template('contacts','part.no_contacts');
|
||||
// $tmpl->assign('uploadMaxFilesize', $maxUploadFilesize);
|
||||
// $tmpl->assign('uploadMaxHumanFilesize', OC_Helper::humanFileSize($maxUploadFilesize));
|
||||
// $tmpl->assign('adr_types',$adr_types);
|
||||
// $tmpl->assign('phone_types',$phone_types);
|
||||
// $tmpl->assign('addressbooks',$addressbooks);
|
||||
// $tmpl->assign('id','');
|
||||
$page = $tmpl->fetchPage();
|
||||
|
||||
OC_JSON::success(array('data' => array( 'page' => $page )));
|
|
@ -1,62 +0,0 @@
|
|||
<?php
|
||||
require_once('../../lib/base.php');
|
||||
|
||||
// Check if we are a user
|
||||
OC_Util::checkLoggedIn();
|
||||
// Get active address books. This creates a default one if none exists.
|
||||
$ids = OC_Contacts_Addressbook::activeIds(OC_User::getUser());
|
||||
$contacts = OC_Contacts_VCard::all($ids);
|
||||
|
||||
$addressbooks = OC_Contacts_Addressbook::active(OC_User::getUser());
|
||||
|
||||
// Load the files we need
|
||||
OC_App::setActiveNavigationEntry( 'contacts_index' );
|
||||
|
||||
// Load a specific user?
|
||||
$id = isset( $_GET['id'] ) ? $_GET['id'] : null;
|
||||
$details = array();
|
||||
|
||||
// FIXME: This cannot work..?
|
||||
if(is_null($id) && count($contacts) > 0) {
|
||||
$id = $contacts[0]['id'];
|
||||
}
|
||||
if(!is_null($id)) {
|
||||
$vcard = OC_Contacts_App::getContactVCard($id);
|
||||
$details = OC_Contacts_VCard::structureContact($vcard);
|
||||
}
|
||||
$property_types = OC_Contacts_App::getAddPropertyOptions();
|
||||
$phone_types = OC_Contacts_App::getTypesOfProperty('TEL');
|
||||
|
||||
$upload_max_filesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
|
||||
$post_max_size = OC_Helper::computerFileSize(ini_get('post_max_size'));
|
||||
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
||||
|
||||
$freeSpace=OC_Filesystem::free_space('/');
|
||||
$freeSpace=max($freeSpace,0);
|
||||
$maxUploadFilesize = min($maxUploadFilesize ,$freeSpace);
|
||||
|
||||
OC_Util::addScript('','jquery.multiselect');
|
||||
//OC_Util::addScript('contacts','interface');
|
||||
OC_Util::addScript('contacts','contacts');
|
||||
OC_Util::addScript('contacts','jquery.combobox');
|
||||
OC_Util::addScript('contacts','jquery.inview');
|
||||
OC_Util::addScript('contacts','jquery.Jcrop');
|
||||
OC_Util::addScript('contacts','jquery.jec-1.3.3');
|
||||
OC_Util::addStyle('','jquery.multiselect');
|
||||
//OC_Util::addStyle('contacts','styles');
|
||||
OC_Util::addStyle('contacts','jquery.combobox');
|
||||
OC_Util::addStyle('contacts','jquery.Jcrop');
|
||||
OC_Util::addStyle('contacts','contacts');
|
||||
|
||||
$tmpl = new OC_Template( "contacts", "index2", "user" );
|
||||
$tmpl->assign('uploadMaxFilesize', $maxUploadFilesize);
|
||||
$tmpl->assign('uploadMaxHumanFilesize', OC_Helper::humanFileSize($maxUploadFilesize));
|
||||
$tmpl->assign('property_types',$property_types);
|
||||
$tmpl->assign('phone_types',$phone_types);
|
||||
$tmpl->assign('addressbooks', $addressbooks);
|
||||
$tmpl->assign('contacts', $contacts);
|
||||
$tmpl->assign('details', $details );
|
||||
$tmpl->assign('id',$id);
|
||||
$tmpl->printPage();
|
||||
|
||||
?>
|
|
@ -7,8 +7,8 @@
|
|||
#chooseaddressbook {margin-right: 170px; float: right;}
|
||||
#contacts_deletecard {position:absolute;top:15px;right:25px;}
|
||||
#contacts_downloadcard {position:absolute;top:15px;right:50px;}
|
||||
#contacts_propertymenu_button { position:absolute;top:15px;right:150px; height: 20px; width: 150px; background:url('../../../core/img/actions/add.svg') no-repeat center; }
|
||||
#contacts_propertymenu { position:absolute;top:40px;right:150px; overflow:hidden; text-overflow:ellipsis; /*border: thin solid #1d2d44;*/ -moz-box-shadow:0 0 10px #000; -webkit-box-shadow:0 0 10px #000; box-shadow:0 0 10px #000; -moz-border-radius:0.5em; -webkit-border-radius:0.5em; border-radius:0.5em; -moz-border-radius:0.5em; -webkit-border-radius:0.5em; border-radius:0.5em; }
|
||||
#contacts_propertymenu_button { position:absolute;top:15px;right:150px; background:url('../../../core/img/actions/add.svg') no-repeat center; }
|
||||
#contacts_propertymenu { background-color: #fff; position:absolute;top:40px;right:150px; overflow:hidden; text-overflow:ellipsis; /*border: thin solid #1d2d44;*/ -moz-box-shadow:0 0 10px #000; -webkit-box-shadow:0 0 10px #000; box-shadow:0 0 10px #000; -moz-border-radius:0.5em; -webkit-border-radius:0.5em; border-radius:0.5em; -moz-border-radius:0.5em; -webkit-border-radius:0.5em; border-radius:0.5em; }
|
||||
#contacts_propertymenu li { display: block; font-weight: bold; height: 20px; width: 100px; }
|
||||
/*#contacts_propertymenu li:first-child { border-top: thin solid #1d2d44; -moz-border-radius-topleft:0.5em; -webkit-border-top-left-radius:0.5em; border-top-left-radius:0.5em; -moz-border-radius-topright:0.5em; -webkit-border-top-right-radius:0.5em; border-top-right-radius:0.5em; }
|
||||
#contacts_propertymenu li:last-child { border-bottom: thin solid #1d2d44; -moz-border-radius-bottomleft:0.5em; -webkit-border-bottom-left-radius:0.5em; border-bottom-left-radius:0.5em; -moz-border-radius-bottomright:0.5em; -webkit-border-bottom-right-radius:0.5em; border-bottom-right-radius:0.5em; }*/
|
||||
|
@ -20,6 +20,7 @@
|
|||
#firstrun { /*border: thin solid lightgray;*/ width: 80%; margin: 5em auto auto auto; text-align: center; font-weight:bold; font-size:1.5em; color:#777;}
|
||||
#firstrun #selections { /*border: thin solid lightgray;*/ font-size:0.8em; width: 100%; margin: 2em auto auto auto; clear: both; }
|
||||
|
||||
#card input[type="text"].contacts_property,input[type="email"].contacts_property { width: 16em; }
|
||||
#card input[type="text"],input[type="email"],input[type="tel"],input[type="date"], select { background-color: #f8f8f8; border: 0 !important; -webkit-appearance:none !important; -moz-appearance:none !important; -webkit-box-sizing:none !important; -moz-box-sizing:none !important; box-sizing:none !important; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; -moz-border-radius: 0px; -webkit-border-radius: 0px; border-radius: 0px; float: left; }
|
||||
#card input[type="text"]:hover, input[type="text"]:focus, input[type="text"]:active,input[type="email"]:hover,input[type="tel"]:hover,input[type="date"]:hover,input[type="date"],input[type="date"]:hover,input[type="date"]:active,input[type="date"]:active,input[type="date"]:active,input[type="email"]:active,input[type="tel"]:active, select:hover, select:focus, select:active { border: 0 !important; -webkit-appearance:textfield; -moz-appearance:textfield; -webkit-box-sizing:content-box; -moz-box-sizing:content-box; box-sizing:content-box; background:#fff; color:#333; border:1px solid #ddd; -moz-box-shadow:0 1px 1px #fff, 0 2px 0 #bbb inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; box-shadow:0 1px 1px #fff, 0 1px 0 #bbb inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; outline:none; float: left; }
|
||||
input[type="text"]:invalid,input[type="email"]:invalid,input[type="tel"]:invalid,input[type="date"]:invalid { background-color: #ffc0c0 !important; }
|
||||
|
@ -77,7 +78,8 @@ dl.form
|
|||
.delete { background:url('../../../core/img/actions/delete.svg') no-repeat center; }
|
||||
.edit { background:url('../../../core/img/actions/rename.svg') no-repeat center; }
|
||||
.mail { background:url('../../../core/img/actions/mail.svg') no-repeat center; }
|
||||
.globe { background:url('../img/globe.svg') no-repeat center; }
|
||||
/*.globe { background:url('../img/globe.svg') no-repeat center; }*/
|
||||
.globe { background:url('../../../core/img/actions/public.svg') no-repeat center; }
|
||||
|
||||
#messagebox_msg { font-weight: bold; font-size: 1.2em; }
|
||||
|
||||
|
@ -96,21 +98,8 @@ dl.form
|
|||
#edit_address_dialog > input {
|
||||
width: 15em;
|
||||
}
|
||||
#edit_photo_dialog_img {
|
||||
display: block;
|
||||
width: 150;
|
||||
height: 200;
|
||||
border: thin solid black;
|
||||
}
|
||||
#fn {
|
||||
float: left;
|
||||
}
|
||||
.jecEditableOption {
|
||||
margin: 2px;
|
||||
border-radius: 0.5em;
|
||||
border: thin solid #bbb;
|
||||
content: 'Custom';
|
||||
}
|
||||
#edit_photo_dialog_img { display: block; width: 150; height: 200; border: thin solid black; }
|
||||
#fn { float: left; }
|
||||
/**
|
||||
* Create classes form, floateven and floatodd which flows left and right respectively.
|
||||
*/
|
||||
|
@ -161,13 +150,8 @@ width:auto; padding:.3em; border:1px solid #ddd; font-weight:bold; cursor:pointe
|
|||
background: url(../../../core/img/loading.gif) no-repeat center center;
|
||||
clear: right;
|
||||
}
|
||||
#contacts_details_photo:hover {
|
||||
background: #fff;
|
||||
}
|
||||
#contacts_details_photo_progress {
|
||||
margin: 0.3em 0.3em 0.3em 7em;
|
||||
clear: left;
|
||||
}
|
||||
#contacts_details_photo:hover { background: #fff; }
|
||||
#contacts_details_photo_progress { margin: 0.3em 0.3em 0.3em 7em; clear: left; }
|
||||
/* Address editor */
|
||||
#addressdisplay { padding: 0.5em; }
|
||||
dl.addresscard { background-color: #fff; float: left; width: 45%; margin: 0 0.3em 0.3em 0.3em; padding: 0; border: thin solid lightgray; }
|
||||
|
@ -187,15 +171,6 @@ dl.addresscard dd > ul { margin: 0.3em; padding: 0.3em; }
|
|||
height: 10px;
|
||||
clear: both;
|
||||
}
|
||||
.updatebar {
|
||||
height: 30px;
|
||||
clear: both;
|
||||
padding-right: 170px;
|
||||
border: thin solid lightgray;
|
||||
}
|
||||
.updatebar button {
|
||||
float: left; margin: 1em;
|
||||
}
|
||||
|
||||
/*input[type="text"] { float: left; max-width: 15em; }
|
||||
input[type="radio"] { float: left; -khtml-appearance: none; width: 20px; height: 20px; vertical-align: middle; }*/
|
||||
|
|
|
@ -1,36 +1,15 @@
|
|||
<?php
|
||||
/**
|
||||
* ownCloud - Addressbook
|
||||
*
|
||||
* @author Jakob Sack
|
||||
* @copyright 2011 Jakob Sack mail@jakobsack.de
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Affero General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* Copyright (c) 2012 Thomas Tanghus <thomas@tanghus.net>
|
||||
* Copyright (c) 2011 Jakob Sack mail@jakobsack.de
|
||||
* This file is licensed under the Affero General Public License version 3 or
|
||||
* later.
|
||||
* See the COPYING-README file.
|
||||
*/
|
||||
|
||||
function contacts_namesort($a,$b){
|
||||
return strcmp($a['fullname'],$b['fullname']);
|
||||
}
|
||||
|
||||
// Init owncloud
|
||||
require_once('../../lib/base.php');
|
||||
|
||||
// Check if we are a user
|
||||
OC_Util::checkLoggedIn();
|
||||
OC_Util::checkAppEnabled('contacts');
|
||||
|
||||
// Get active address books. This creates a default one if none exists.
|
||||
$ids = OC_Contacts_Addressbook::activeIds(OC_User::getUser());
|
||||
$contacts = OC_Contacts_VCard::all($ids);
|
||||
|
@ -47,33 +26,41 @@ $details = array();
|
|||
if(is_null($id) && count($contacts) > 0) {
|
||||
$id = $contacts[0]['id'];
|
||||
}
|
||||
$vcard = null;
|
||||
$details = null;
|
||||
if(!is_null($id)) {
|
||||
$vcard = OC_Contacts_App::getContactVCard($id);
|
||||
if(!is_null($vcard)) {
|
||||
$details = OC_Contacts_VCard::structureContact($vcard);
|
||||
}
|
||||
$details = OC_Contacts_VCard::structureContact($vcard);
|
||||
}
|
||||
|
||||
// Include Style and Script
|
||||
OC_Util::addScript('contacts','interface');
|
||||
OC_Util::addScript('contacts','jquery.inview');
|
||||
OC_Util::addScript('', 'jquery.multiselect');
|
||||
OC_Util::addStyle('contacts','styles');
|
||||
//OC_Util::addStyle('contacts','formtastic');
|
||||
|
||||
$property_types = OC_Contacts_App::getAddPropertyOptions();
|
||||
$adr_types = OC_Contacts_App::getTypesOfProperty('ADR');
|
||||
$phone_types = OC_Contacts_App::getTypesOfProperty('TEL');
|
||||
|
||||
// Process the template
|
||||
$tmpl = new OC_Template( 'contacts', 'index', 'user' );
|
||||
$upload_max_filesize = OC_Helper::computerFileSize(ini_get('upload_max_filesize'));
|
||||
$post_max_size = OC_Helper::computerFileSize(ini_get('post_max_size'));
|
||||
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
|
||||
|
||||
$freeSpace=OC_Filesystem::free_space('/');
|
||||
$freeSpace=max($freeSpace,0);
|
||||
$maxUploadFilesize = min($maxUploadFilesize ,$freeSpace);
|
||||
|
||||
OC_Util::addScript('','jquery.multiselect');
|
||||
OC_Util::addScript('contacts','contacts');
|
||||
OC_Util::addScript('contacts','jquery.combobox');
|
||||
OC_Util::addScript('contacts','jquery.inview');
|
||||
OC_Util::addScript('contacts','jquery.Jcrop');
|
||||
OC_Util::addStyle('','jquery.multiselect');
|
||||
//OC_Util::addStyle('contacts','styles');
|
||||
OC_Util::addStyle('contacts','jquery.combobox');
|
||||
OC_Util::addStyle('contacts','jquery.Jcrop');
|
||||
OC_Util::addStyle('contacts','contacts');
|
||||
|
||||
$tmpl = new OC_Template( "contacts", "index", "user" );
|
||||
$tmpl->assign('uploadMaxFilesize', $maxUploadFilesize);
|
||||
$tmpl->assign('uploadMaxHumanFilesize', OC_Helper::humanFileSize($maxUploadFilesize));
|
||||
$tmpl->assign('property_types',$property_types);
|
||||
$tmpl->assign('adr_types',$adr_types);
|
||||
$tmpl->assign('phone_types',$phone_types);
|
||||
$tmpl->assign('addressbooks', $addressbooks);
|
||||
$tmpl->assign('contacts', $contacts);
|
||||
$tmpl->assign('details', $details );
|
||||
$tmpl->assign('id',$id);
|
||||
$tmpl->printPage();
|
||||
|
||||
?>
|
||||
|
|
|
@ -117,7 +117,10 @@ Contacts={
|
|||
$('#carddav_url_close').show();
|
||||
},
|
||||
messageBox:function(title, msg) {
|
||||
//alert(msg);
|
||||
if(msg.toLowerCase().indexOf('auth') > 0) {
|
||||
// fugly hack, I know
|
||||
alert(msg);
|
||||
}
|
||||
if($('#messagebox').dialog('isOpen') == true){
|
||||
// NOTE: Do we ever get here?
|
||||
$('#messagebox').dialog('moveToTop');
|
||||
|
@ -233,11 +236,93 @@ Contacts={
|
|||
honpre:'',
|
||||
honsuf:'',
|
||||
data:undefined,
|
||||
update:function() {
|
||||
// Make sure proper DOM is loaded.
|
||||
console.log('Card.update(), #n: ' + $('#n').length);
|
||||
console.log('Card.update(), #contacts: ' + $('#contacts li').length);
|
||||
if($('#n').length == 0 && $('#contacts li').length > 0) {
|
||||
$.getJSON(OC.filePath('contacts', 'ajax', 'loadcard.php'),{},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
$('#rightcontent').html(jsondata.data.page);
|
||||
Contacts.UI.loadHandlers();
|
||||
if($('#contacts li').length > 0) {
|
||||
var firstid = $('#contacts li:first-child').data('id');
|
||||
console.log('trying to load: ' + firstid);
|
||||
$.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':firstid},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
Contacts.UI.Card.loadContact(jsondata.data);
|
||||
} else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
if($('#contacts li').length == 0) {
|
||||
// load intro page
|
||||
$.getJSON(OC.filePath('contacts', 'ajax', 'loadintro.php'),{},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
id = '';
|
||||
$('#rightcontent').data('id','');
|
||||
$('#rightcontent').html(jsondata.data.page);
|
||||
} else {
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
export:function() {
|
||||
document.location.href = OC.linkTo('contacts', 'export.php') + '?contactid=' + this.id;
|
||||
//$.get(OC.linkTo('contacts', 'export.php'),{'contactid':this.id},function(jsondata){
|
||||
//});
|
||||
},
|
||||
import:function(){
|
||||
Contacts.UI.notImplemented();
|
||||
},
|
||||
add:function(n, fn, aid){ // add a new contact
|
||||
console.log('Add contact: ' + n + ', ' + fn + ' ' + aid);
|
||||
$.post(OC.filePath('contacts', 'ajax', 'addcontact.php'), { n: n, fn: fn, aid: aid },
|
||||
function(jsondata) {
|
||||
if (jsondata.status == 'success'){
|
||||
$('#rightcontent').data('id',jsondata.data.id);
|
||||
var id = jsondata.data.id;
|
||||
$.getJSON('ajax/contactdetails.php',{'id':id},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
Contacts.UI.loadHandlers();
|
||||
Contacts.UI.Card.loadContact(jsondata.data);
|
||||
$('#leftcontent .active').removeClass('active');
|
||||
var item = '<li data-id="'+jsondata.data.id+'" class="active"><a href="index.php?id='+jsondata.data.id+'" style="background: url(thumbnail.php?id='+jsondata.data.id+') no-repeat scroll 0% 0% transparent;">'+Contacts.UI.Card.fn+'</a></li>';
|
||||
var added = false;
|
||||
$('#leftcontent ul li').each(function(){
|
||||
if ($(this).text().toLowerCase() > Contacts.UI.Card.fn.toLowerCase()) {
|
||||
$(this).before(item).fadeIn('fast');
|
||||
added = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
if(!added) {
|
||||
$('#leftcontent ul').append(item);
|
||||
}
|
||||
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
//alert(jsondata.data.message);
|
||||
}
|
||||
});
|
||||
$('#contact_identity').show();
|
||||
$('#actionbar').show();
|
||||
// TODO: Add to contacts list.
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
//alert(jsondata.data.message);
|
||||
}
|
||||
});
|
||||
},
|
||||
delete:function() {
|
||||
$('#contacts_deletecard').tipsy('hide');
|
||||
$.getJSON('ajax/deletecard.php',{'id':this.id},function(jsondata){
|
||||
|
@ -247,17 +332,33 @@ Contacts={
|
|||
//$('#rightcontent').empty();
|
||||
this.id = this.fn = this.fullname = this.shortname = this.famname = this.givname = this.addname = this.honpre = this.honsuf = '';
|
||||
this.data = undefined;
|
||||
// Load empty page.
|
||||
var firstid = $('#contacts li:first-child').data('id');
|
||||
console.log('trying to load: ' + firstid);
|
||||
$.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':firstid},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
Contacts.UI.Card.loadContact(jsondata.data);
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
}
|
||||
});
|
||||
// Load first in list.
|
||||
if($('#contacts li').length > 0) {
|
||||
Contacts.UI.Card.update();
|
||||
/*
|
||||
var firstid = $('#contacts li:first-child').data('id');
|
||||
console.log('trying to load: ' + firstid);
|
||||
$.getJSON(OC.filePath('contacts', 'ajax', 'contactdetails.php'),{'id':firstid},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
Contacts.UI.Card.loadContact(jsondata.data);
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
}
|
||||
});*/
|
||||
} else {
|
||||
// load intro page
|
||||
$.getJSON('ajax/loadintro.php',{},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
id = '';
|
||||
$('#rightcontent').data('id','');
|
||||
$('#rightcontent').html(jsondata.data.page);
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
|
@ -270,6 +371,7 @@ Contacts={
|
|||
$('#contact_communication').hide();
|
||||
this.data = jsondata;
|
||||
this.id = this.data.id;
|
||||
$('#rightcontent').data('id',this.id);
|
||||
//console.log('loaded: ' + this.data.FN[0]['value']);
|
||||
this.populateNameFields();
|
||||
this.loadPhoto();
|
||||
|
@ -370,6 +472,7 @@ Contacts={
|
|||
$('#reverse_comma').text(this.famname + ', ' + this.givname);*/
|
||||
$('#contact_identity').find('*[data-element="N"]').data('checksum', this.data.N[0]['checksum']);
|
||||
$('#contact_identity').find('*[data-element="FN"]').data('checksum', this.data.FN[0]['checksum']);
|
||||
$('#contact_identity').show();
|
||||
},
|
||||
editNew:function(){ // add a new contact
|
||||
//Contacts.UI.notImplemented();
|
||||
|
@ -382,47 +485,6 @@ Contacts={
|
|||
$('#rightcontent').html(jsondata.data.page);
|
||||
Contacts.UI.Card.editName();
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
alert(jsondata.data.message);
|
||||
}
|
||||
});
|
||||
},
|
||||
add:function(n, fn, aid){ // add a new contact
|
||||
console.log('Add contact: ' + n + ', ' + fn + ' ' + aid);
|
||||
$.post(OC.filePath('contacts', 'ajax', 'addcontact.php'), { n: n, fn: fn, aid: aid },
|
||||
function(jsondata) {
|
||||
if (jsondata.status == 'success'){
|
||||
$('#rightcontent').data('id',jsondata.data.id);
|
||||
var id = jsondata.data.id;
|
||||
$.getJSON('ajax/contactdetails.php',{'id':id},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
Contacts.UI.loadHandlers();
|
||||
Contacts.UI.Card.loadContact(jsondata.data);
|
||||
$('#leftcontent .active').removeClass('active');
|
||||
var item = '<li data-id="'+jsondata.data.id+'" class="active"><a href="index.php?id='+jsondata.data.id+'" style="background: url(thumbnail.php?id='+jsondata.data.id+') no-repeat scroll 0% 0% transparent;">'+Contacts.UI.Card.fn+'</a></li>';
|
||||
var added = false;
|
||||
$('#leftcontent ul li').each(function(){
|
||||
if ($(this).text().toLowerCase() > Contacts.UI.Card.fn.toLowerCase()) {
|
||||
$(this).before(item).fadeIn('fast');
|
||||
added = true;
|
||||
return false;
|
||||
}
|
||||
});
|
||||
if(!added) {
|
||||
$('#leftcontent ul').append(item);
|
||||
}
|
||||
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
//alert(jsondata.data.message);
|
||||
}
|
||||
});
|
||||
$('#contact_identity').show();
|
||||
$('#actionbar').show();
|
||||
// TODO: Add to contacts list.
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'), jsondata.data.message);
|
||||
//alert(jsondata.data.message);
|
||||
|
@ -1043,9 +1105,11 @@ Contacts={
|
|||
* Reload the contacts list.
|
||||
*/
|
||||
update:function(){
|
||||
console.log('Contacts.update, start');
|
||||
$.getJSON('ajax/contacts.php',{},function(jsondata){
|
||||
if(jsondata.status == 'success'){
|
||||
$('#contacts').html(jsondata.data.page);
|
||||
Contacts.UI.Card.update();
|
||||
}
|
||||
else{
|
||||
Contacts.UI.messageBox(t('contacts', 'Error'),jsondata.data.message);
|
||||
|
@ -1258,7 +1322,7 @@ $(document).ready(function(){
|
|||
}
|
||||
|
||||
$('#contacts_propertymenu_button').live('click',function(){
|
||||
$('#contacts_propertymenu').is(':hidden') && $('#contacts_propertymenu').show() || $('#contacts_propertymenu').hide();
|
||||
$('#contacts_propertymenu').is(':hidden') && $('#contacts_propertymenu').slideDown() || $('#contacts_propertymenu').slideUp();
|
||||
});
|
||||
$('#contacts_propertymenu a').live('click',function(){
|
||||
Contacts.UI.Card.addProperty(this);
|
||||
|
|
|
@ -1,863 +0,0 @@
|
|||
/**
|
||||
* jQuery jEC (jQuery Editable Combobox) 1.3.3
|
||||
* http://code.google.com/p/jquery-jec
|
||||
*
|
||||
* Copyright (c) 2008-2009 Lukasz Rajchel (lukasz@rajchel.pl | http://rajchel.pl)
|
||||
* Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
|
||||
* and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
|
||||
*
|
||||
* Documentation : http://code.google.com/p/jquery-jec/wiki/Documentation
|
||||
* Changelog : http://code.google.com/p/jquery-jec/wiki/Changelog
|
||||
*
|
||||
* Contributors : Lukasz Rajchel, Artem Orlov
|
||||
*/
|
||||
|
||||
/*jslint maxerr: 50, indent: 4, maxlen: 120*/
|
||||
/*global Array, Math, String, clearInterval, document, jQuery, setInterval*/
|
||||
/*members ':', Handle, Remove, Set, acceptedKeys, addClass, all, append, appendTo, array, attr, before, bind,
|
||||
blinkingCursor, blinkingCursorInterval, blur, bool, browser, ceil, change, charCode, classes, clearCursor, click, css,
|
||||
cursorState, data, destroy, disable, each, editable, enable, eq, expr, extend, filter, find, floor, fn, focus,
|
||||
focusOnNewOption, fromCharCode, get, getId, handleCursor, ignoredKeys, ignoreOptGroups, inArray, init, initJS, integer,
|
||||
isArray, isPlainObject, jEC, jECTimer, jec, jecKill, jecOff, jecOn, jecPref, jecValue, keyCode, keyDown, keyPress,
|
||||
keyRange, keyUp, keys, length, max, maxLength, min, msie, object, openedState, optionClasses, optionStyles, parent,
|
||||
position, pref, prop, push, random, remove, removeAttr, removeClass, removeData, removeProp, safari, setEditableOption,
|
||||
styles, substring, text, trigger, triggerChangeEvent, unbind, uneditable, useExistingOptions, val, value,
|
||||
valueIsEditable, which*/
|
||||
(function ($) {
|
||||
'use strict';
|
||||
|
||||
$.jEC = (function () {
|
||||
var pluginClass = 'jecEditableOption', cursorClass = 'hasCursor', options = {}, values = {}, lastKeyCode,
|
||||
defaults, Validators, EventHandlers, Combobox, activeCombobox;
|
||||
|
||||
if ($.fn.prop === undefined) {
|
||||
$.fn.extend({
|
||||
'prop': function (key, valueSet) {
|
||||
if (valueSet) {
|
||||
$(this).attr(key, key);
|
||||
} else {
|
||||
$(this).removeAttr(key);
|
||||
}
|
||||
},
|
||||
'removeProp': function (key) {
|
||||
$(this).removeAttr(key);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
defaults = {
|
||||
position: 0,
|
||||
ignoreOptGroups: false,
|
||||
maxLength: 255,
|
||||
classes: [],
|
||||
styles: {},
|
||||
optionClasses: [],
|
||||
optionStyles: {},
|
||||
triggerChangeEvent: false,
|
||||
focusOnNewOption: false,
|
||||
useExistingOptions: false,
|
||||
blinkingCursor: false,
|
||||
blinkingCursorInterval: 1000,
|
||||
ignoredKeys: [],
|
||||
acceptedKeys: [[32, 126], [191, 382]]
|
||||
};
|
||||
|
||||
Validators = (function () {
|
||||
return {
|
||||
integer: function (value) {
|
||||
return typeof value === 'number' && Math.ceil(value) === Math.floor(value);
|
||||
},
|
||||
|
||||
keyRange: function (value) {
|
||||
var min, max;
|
||||
if ($.isPlainObject(value)) {
|
||||
min = value.min;
|
||||
max = value.max;
|
||||
} else if ($.isArray(value) && value.length === 2) {
|
||||
min = value[0];
|
||||
max = value[1];
|
||||
}
|
||||
return Validators.integer(min) && Validators.integer(max) && min <= max;
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
EventHandlers = (function () {
|
||||
var getKeyCode;
|
||||
|
||||
getKeyCode = function (event) {
|
||||
var charCode = event.charCode;
|
||||
if (charCode !== undefined && charCode !== 0) {
|
||||
return charCode;
|
||||
} else {
|
||||
return event.keyCode;
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
// focus event handler
|
||||
// enables blinking cursor
|
||||
focus: function () {
|
||||
var opt = options[Combobox.getId($(this))];
|
||||
if (opt.blinkingCursor && $.jECTimer === undefined) {
|
||||
activeCombobox = $(this);
|
||||
$.jECTimer = setInterval($.jEC.handleCursor, opt.blinkingCursorInterval);
|
||||
}
|
||||
},
|
||||
|
||||
// blur event handler
|
||||
// disables blinking cursor
|
||||
blur: function () {
|
||||
if ($.jECTimer !== undefined) {
|
||||
clearInterval($.jECTimer);
|
||||
$.jECTimer = undefined;
|
||||
activeCombobox = undefined;
|
||||
Combobox.clearCursor($(this));
|
||||
}
|
||||
Combobox.openedState($(this), false);
|
||||
},
|
||||
|
||||
// keydown event handler
|
||||
// handles keys pressed on select (backspace and delete must be handled
|
||||
// in keydown event in order to work in IE)
|
||||
keyDown: function (event) {
|
||||
var keyCode = getKeyCode(event), option, value;
|
||||
|
||||
lastKeyCode = keyCode;
|
||||
|
||||
switch (keyCode) {
|
||||
case 8: // backspace
|
||||
case 46: // delete
|
||||
option = $(this).find('option.' + pluginClass);
|
||||
if (option.val().length >= 1) {
|
||||
value = option.text().substring(0, option.text().length - 1);
|
||||
option.val(value).text(value).prop('selected', true);
|
||||
}
|
||||
return (keyCode !== 8);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
// keypress event handler
|
||||
// handles the rest of the keys (keypress event gives more informations
|
||||
// about pressed keys)
|
||||
keyPress: function (event) {
|
||||
var keyCode = getKeyCode(event), opt = options[Combobox.getId($(this))],
|
||||
option, value, specialKeys, exit = false, text;
|
||||
|
||||
Combobox.clearCursor($(this));
|
||||
if (keyCode !== 9 && keyCode !== 13 && keyCode !== 27) {
|
||||
// special keys codes
|
||||
specialKeys = [37, 38, 39, 40, 46];
|
||||
// handle special keys
|
||||
$.each(specialKeys, function (i, val) {
|
||||
if (keyCode === val && keyCode === lastKeyCode) {
|
||||
exit = true;
|
||||
}
|
||||
});
|
||||
|
||||
// don't handle ignored keys
|
||||
if (!exit && $.inArray(keyCode, opt.ignoredKeys) === -1) {
|
||||
// remove selection from all options
|
||||
$(this).find('option:selected').removeProp('selected');
|
||||
|
||||
if ($.inArray(keyCode, opt.acceptedKeys) !== -1) {
|
||||
option = $(this).find('option.' + pluginClass);
|
||||
text = option.text();
|
||||
|
||||
if (text.length < opt.maxLength) {
|
||||
value = text + String.fromCharCode(getKeyCode(event));
|
||||
option.val(value).text(value);
|
||||
}
|
||||
|
||||
option.prop('selected', true);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
keyUp: function () {
|
||||
var opt = options[Combobox.getId($(this))];
|
||||
if (opt.triggerChangeEvent) {
|
||||
$(this).trigger('change');
|
||||
}
|
||||
},
|
||||
|
||||
// change event handler
|
||||
// handles editable option changing based on a pre-existing values
|
||||
change: function () {
|
||||
var opt = options[Combobox.getId($(this))];
|
||||
if (opt.useExistingOptions) {
|
||||
Combobox.setEditableOption($(this));
|
||||
}
|
||||
},
|
||||
|
||||
click: function () {
|
||||
if (!$.browser.safari) {
|
||||
Combobox.openedState($(this), !Combobox.openedState($(this)));
|
||||
}
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
// Combobox
|
||||
Combobox = (function () {
|
||||
var Parameters, EditableOption, generateId, setup;
|
||||
|
||||
// validates and set combobox parameters
|
||||
Parameters = (function () {
|
||||
var Set, Remove, Handle;
|
||||
|
||||
Set = (function () {
|
||||
var parseKeys, Handles;
|
||||
|
||||
parseKeys = function (value) {
|
||||
var keys = [];
|
||||
if ($.isArray(value)) {
|
||||
$.each(value, function (i, val) {
|
||||
var j, min, max;
|
||||
if (Validators.keyRange(val)) {
|
||||
if ($.isArray(val)) {
|
||||
min = val[0];
|
||||
max = val[1];
|
||||
} else {
|
||||
min = val.min;
|
||||
max = val.max;
|
||||
}
|
||||
for (j = min; j <= max; j += 1) {
|
||||
keys.push(j);
|
||||
}
|
||||
} else if (typeof val === 'number' && Validators.integer(val)) {
|
||||
keys.push(val);
|
||||
}
|
||||
});
|
||||
}
|
||||
return keys;
|
||||
};
|
||||
|
||||
Handles = (function () {
|
||||
return {
|
||||
integer: function (elem, name, value) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined && Validators.integer(value)) {
|
||||
opt[name] = value;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
bool: function (elem, name, value) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined && typeof value === 'boolean') {
|
||||
opt[name] = value;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
array: function (elem, name, value) {
|
||||
if (typeof value === 'string') {
|
||||
value = [value];
|
||||
}
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined && $.isArray(value)) {
|
||||
opt[name] = value;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
object: function (elem, name, value) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined && value !== null && $.isPlainObject(value)) {
|
||||
opt[name] = value;
|
||||
}
|
||||
},
|
||||
keys: function (elem, name, value) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined && $.isArray(value)) {
|
||||
opt[name] = parseKeys(value);
|
||||
}
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
return {
|
||||
position: function (elem, value) {
|
||||
if (Handles.integer(elem, 'position', value)) {
|
||||
var id = Combobox.getId(elem), opt = options[id], optionsCount;
|
||||
optionsCount =
|
||||
elem.find('option:not(.' + pluginClass + ')').length;
|
||||
if (value > optionsCount) {
|
||||
opt.position = optionsCount;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
ignoreOptGroups: function (elem, value) {
|
||||
Handles.bool(elem, 'ignoreOptGroups', value);
|
||||
},
|
||||
|
||||
maxLength: function (elem, value) {
|
||||
if (Handles.integer(elem, 'maxLength', value)) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (value < 0 || value > 255) {
|
||||
opt.maxLength = 255;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
classes: function (elem, value) {
|
||||
Handles.array(elem, 'classes', value);
|
||||
},
|
||||
|
||||
optionClasses: function (elem, value) {
|
||||
Handles.array(elem, 'optionClasses', value);
|
||||
},
|
||||
|
||||
styles: function (elem, value) {
|
||||
Handles.object(elem, 'styles', value);
|
||||
},
|
||||
|
||||
optionStyles: function (elem, value) {
|
||||
Handles.object(elem, 'optionStyles', value);
|
||||
},
|
||||
|
||||
triggerChangeEvent: function (elem, value) {
|
||||
Handles.bool(elem, 'triggerChangeEvent', value);
|
||||
},
|
||||
|
||||
focusOnNewOption: function (elem, value) {
|
||||
Handles.bool(elem, 'focusOnNewOption', value);
|
||||
},
|
||||
|
||||
useExistingOptions: function (elem, value) {
|
||||
Handles.bool(elem, 'useExistingOptions', value);
|
||||
},
|
||||
|
||||
blinkingCursor: function (elem, value) {
|
||||
Handles.bool(elem, 'blinkingCursor', value);
|
||||
},
|
||||
|
||||
blinkingCursorInterval: function (elem, value) {
|
||||
Handles.integer(elem, 'blinkingCursorInterval', value);
|
||||
},
|
||||
|
||||
ignoredKeys: function (elem, value) {
|
||||
Handles.keys(elem, 'ignoredKeys', value);
|
||||
},
|
||||
|
||||
acceptedKeys: function (elem, value) {
|
||||
Handles.keys(elem, 'acceptedKeys', value);
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
Remove = (function () {
|
||||
var removeClasses, removeStyles;
|
||||
|
||||
removeClasses = function (elem, classes) {
|
||||
$.each(classes, function (i, val) {
|
||||
elem.removeClass(val);
|
||||
});
|
||||
};
|
||||
|
||||
removeStyles = function (elem, styles) {
|
||||
$.each(styles, function (key) {
|
||||
elem.css(key, '');
|
||||
});
|
||||
};
|
||||
|
||||
return {
|
||||
classes: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined) {
|
||||
removeClasses(elem, opt.classes);
|
||||
}
|
||||
},
|
||||
|
||||
optionClasses: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined) {
|
||||
removeClasses(elem.find('option.' + pluginClass),
|
||||
opt.optionClasses);
|
||||
}
|
||||
},
|
||||
|
||||
styles: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined) {
|
||||
removeStyles(elem, opt.styles);
|
||||
}
|
||||
},
|
||||
|
||||
optionStyles: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined) {
|
||||
removeStyles(elem.find('option.' + pluginClass),
|
||||
opt.optionStyles);
|
||||
}
|
||||
},
|
||||
|
||||
all: function (elem) {
|
||||
Remove.classes(elem);
|
||||
Remove.optionClasses(elem);
|
||||
Remove.styles(elem);
|
||||
Remove.optionStyles(elem);
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
Handle = (function () {
|
||||
var setClasses, setStyles;
|
||||
|
||||
setClasses = function (elem, classes) {
|
||||
$.each(classes, function (i, val) {
|
||||
elem.addClass(String(val));
|
||||
});
|
||||
};
|
||||
|
||||
setStyles = function (elem, styles) {
|
||||
$.each(styles, function (key, val) {
|
||||
elem.css(key, val);
|
||||
});
|
||||
};
|
||||
|
||||
return {
|
||||
position: function (elem) {
|
||||
var opt = options[Combobox.getId(elem)], option, uneditableOptions, container;
|
||||
option = elem.find('option.' + pluginClass);
|
||||
|
||||
uneditableOptions = elem.find('option:not(.' + pluginClass + ')');
|
||||
if (opt.position < uneditableOptions.length) {
|
||||
container = uneditableOptions.eq(opt.position);
|
||||
|
||||
if (!opt.ignoreOptGroups && container.parent('optgroup').length > 0) {
|
||||
uneditableOptions.eq(opt.position).parent().before(option);
|
||||
} else {
|
||||
uneditableOptions.eq(opt.position).before(option);
|
||||
}
|
||||
} else {
|
||||
elem.append(option);
|
||||
}
|
||||
},
|
||||
|
||||
classes: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined) {
|
||||
setClasses(elem, opt.classes);
|
||||
}
|
||||
},
|
||||
|
||||
optionClasses: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined) {
|
||||
setClasses(elem.find('option.' + pluginClass), opt.optionClasses);
|
||||
}
|
||||
},
|
||||
|
||||
styles: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined) {
|
||||
setStyles(elem, opt.styles);
|
||||
}
|
||||
},
|
||||
|
||||
optionStyles: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined) {
|
||||
setStyles(elem.find('option.' + pluginClass), opt.optionStyles);
|
||||
}
|
||||
},
|
||||
|
||||
focusOnNewOption: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined && opt.focusOnNewOption) {
|
||||
elem.find(':not(option.' + pluginClass + ')').removeProp('selected');
|
||||
elem.find('option.' + pluginClass).prop('selected', true);
|
||||
}
|
||||
},
|
||||
|
||||
useExistingOptions: function (elem) {
|
||||
var id = Combobox.getId(elem), opt = options[id];
|
||||
if (opt !== undefined && opt.useExistingOptions) {
|
||||
Combobox.setEditableOption(elem);
|
||||
}
|
||||
},
|
||||
|
||||
all: function (elem) {
|
||||
Handle.position(elem);
|
||||
Handle.classes(elem);
|
||||
Handle.optionClasses(elem);
|
||||
Handle.styles(elem);
|
||||
Handle.optionStyles(elem);
|
||||
Handle.focusOnNewOption(elem);
|
||||
Handle.useExistingOptions(elem);
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
return {
|
||||
Set: Set,
|
||||
Remove: Remove,
|
||||
Handle: Handle
|
||||
};
|
||||
}());
|
||||
|
||||
EditableOption = (function () {
|
||||
return {
|
||||
init: function (elem) {
|
||||
if (!elem.find('option.' + pluginClass).length) {
|
||||
var editableOption = $('<option>');
|
||||
editableOption.addClass(pluginClass);
|
||||
elem.append(editableOption);
|
||||
}
|
||||
|
||||
elem.bind('keydown', EventHandlers.keyDown);
|
||||
elem.bind('keypress', EventHandlers.keyPress);
|
||||
elem.bind('keyup', EventHandlers.keyUp);
|
||||
elem.bind('change', EventHandlers.change);
|
||||
elem.bind('focus', EventHandlers.focus);
|
||||
elem.bind('blur', EventHandlers.blur);
|
||||
elem.bind('click', EventHandlers.click);
|
||||
},
|
||||
|
||||
destroy: function (elem) {
|
||||
elem.find('option.' + pluginClass).remove();
|
||||
|
||||
elem.unbind('keydown', EventHandlers.keyDown);
|
||||
elem.unbind('keypress', EventHandlers.keyPress);
|
||||
elem.unbind('keyup', EventHandlers.keyUp);
|
||||
elem.unbind('change', EventHandlers.change);
|
||||
elem.unbind('focus', EventHandlers.focus);
|
||||
elem.unbind('blur', EventHandlers.blur);
|
||||
elem.unbind('click', EventHandlers.click);
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
// generates unique identifier
|
||||
generateId = function () {
|
||||
while (true) {
|
||||
var random = Math.floor(Math.random() * 100000);
|
||||
|
||||
if (options[random] === undefined) {
|
||||
return random;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// sets combobox
|
||||
setup = function (elem) {
|
||||
EditableOption.init(elem);
|
||||
Parameters.Handle.all(elem);
|
||||
};
|
||||
|
||||
// Combobox public members
|
||||
return {
|
||||
// create editable combobox
|
||||
init: function (settings) {
|
||||
return $(this).filter(':uneditable').each(function () {
|
||||
var id = generateId(), elem = $(this);
|
||||
|
||||
elem.data('jecId', id);
|
||||
|
||||
// override passed default options
|
||||
options[id] = $.extend(true, {}, defaults);
|
||||
|
||||
// parse keys
|
||||
Parameters.Set.ignoredKeys(elem, options[id].ignoredKeys);
|
||||
Parameters.Set.acceptedKeys(elem, options[id].acceptedKeys);
|
||||
|
||||
if ($.isPlainObject(settings)) {
|
||||
$.each(settings, function (key, val) {
|
||||
if (val !== undefined) {
|
||||
switch (key) {
|
||||
case 'position':
|
||||
Parameters.Set.position(elem, val);
|
||||
break;
|
||||
case 'ignoreOptGroups':
|
||||
Parameters.Set.ignoreOptGroups(elem, val);
|
||||
break;
|
||||
case 'maxLength':
|
||||
Parameters.Set.maxLength(elem, val);
|
||||
break;
|
||||
case 'classes':
|
||||
Parameters.Set.classes(elem, val);
|
||||
break;
|
||||
case 'optionClasses':
|
||||
Parameters.Set.optionClasses(elem, val);
|
||||
break;
|
||||
case 'styles':
|
||||
Parameters.Set.styles(elem, val);
|
||||
break;
|
||||
case 'optionStyles':
|
||||
Parameters.Set.optionStyles(elem, val);
|
||||
break;
|
||||
case 'triggerChangeEvent':
|
||||
Parameters.Set.triggerChangeEvent(elem, val);
|
||||
break;
|
||||
case 'focusOnNewOption':
|
||||
Parameters.Set.focusOnNewOption(elem, val);
|
||||
break;
|
||||
case 'useExistingOptions':
|
||||
Parameters.Set.useExistingOptions(elem, val);
|
||||
break;
|
||||
case 'blinkingCursor':
|
||||
Parameters.Set.blinkingCursor(elem, val);
|
||||
break;
|
||||
case 'blinkingCursorInterval':
|
||||
Parameters.Set.blinkingCursorInterval(elem, val);
|
||||
break;
|
||||
case 'ignoredKeys':
|
||||
Parameters.Set.ignoredKeys(elem, val);
|
||||
break;
|
||||
case 'acceptedKeys':
|
||||
Parameters.Set.acceptedKeys(elem, val);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
setup($(this));
|
||||
});
|
||||
},
|
||||
|
||||
// creates editable combobox without using existing select elements
|
||||
initJS: function (options, settings) {
|
||||
var select, addOptions;
|
||||
|
||||
select = $('<select>');
|
||||
|
||||
addOptions = function (elem, options) {
|
||||
if ($.isArray(options)) {
|
||||
$.each(options, function (i, val) {
|
||||
if ($.isPlainObject(val)) {
|
||||
$.each(val, function (key, value) {
|
||||
if ($.isArray(value)) {
|
||||
var og = $('<optgroup>').attr('label', key);
|
||||
addOptions(og, value);
|
||||
og.appendTo(select);
|
||||
} else if (typeof value === 'number' || typeof value === 'string') {
|
||||
$('<option>').text(value).attr('value', key)
|
||||
.appendTo(elem);
|
||||
}
|
||||
});
|
||||
} else if (typeof val === 'string' || typeof val === 'number') {
|
||||
$('<option>').text(val).attr('value', val).appendTo(elem);
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
addOptions(select, options);
|
||||
|
||||
return select.jec(settings);
|
||||
},
|
||||
|
||||
// destroys editable combobox
|
||||
destroy: function () {
|
||||
return $(this).filter(':editable').each(function () {
|
||||
$(this).jecOff();
|
||||
$.removeData($(this).get(0), 'jecId');
|
||||
$.removeData($(this).get(0), 'jecCursorState');
|
||||
$.removeData($(this).get(0), 'jecOpenedState');
|
||||
});
|
||||
},
|
||||
|
||||
// enable editablecombobox
|
||||
enable: function () {
|
||||
return $(this).filter(':editable').each(function () {
|
||||
var id = Combobox.getId($(this)), value = values[id];
|
||||
|
||||
setup($(this));
|
||||
|
||||
if (value !== undefined) {
|
||||
$(this).jecValue(value);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// disable editable combobox
|
||||
disable: function () {
|
||||
return $(this).filter(':editable').each(function () {
|
||||
var val = $(this).find('option.' + pluginClass).val();
|
||||
values[Combobox.getId($(this))] = val;
|
||||
Parameters.Remove.all($(this));
|
||||
EditableOption.destroy($(this));
|
||||
});
|
||||
},
|
||||
|
||||
// gets or sets editable option's value
|
||||
value: function (value, setFocus) {
|
||||
if ($(this).filter(':editable').length > 0) {
|
||||
if (value === null || value === undefined) {
|
||||
// get value
|
||||
return $(this).find('option.' + pluginClass).val();
|
||||
} else if (typeof value === 'string' || typeof value === 'number') {
|
||||
// set value
|
||||
return $(this).filter(':editable').each(function () {
|
||||
var option = $(this).find('option.' + pluginClass);
|
||||
option.val(value).text(value);
|
||||
if (typeof setFocus !== 'boolean' || setFocus) {
|
||||
option.prop('selected', true);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// gets or sets editable option's preference
|
||||
pref: function (name, value) {
|
||||
if ($(this).filter(':editable').length > 0) {
|
||||
if (typeof name === 'string') {
|
||||
if (value === null || value === undefined) {
|
||||
// get preference
|
||||
return options[Combobox.getId($(this))][name];
|
||||
} else {
|
||||
// set preference
|
||||
return $(this).filter(':editable').each(function () {
|
||||
switch (name) {
|
||||
case 'position':
|
||||
Parameters.Set.position($(this), value);
|
||||
Parameters.Handle.position($(this));
|
||||
break;
|
||||
case 'classes':
|
||||
Parameters.Remove.classes($(this));
|
||||
Parameters.Set.classes($(this), value);
|
||||
Parameters.Handle.position($(this));
|
||||
break;
|
||||
case 'optionClasses':
|
||||
Parameters.Remove.optionClasses($(this));
|
||||
Parameters.Set.optionClasses($(this), value);
|
||||
Parameters.Set.optionClasses($(this));
|
||||
break;
|
||||
case 'styles':
|
||||
Parameters.Remove.styles($(this));
|
||||
Parameters.Set.styles($(this), value);
|
||||
Parameters.Set.styles($(this));
|
||||
break;
|
||||
case 'optionStyles':
|
||||
Parameters.Remove.optionStyles($(this));
|
||||
Parameters.Set.optionStyles($(this), value);
|
||||
Parameters.Handle.optionStyles($(this));
|
||||
break;
|
||||
case 'focusOnNewOption':
|
||||
Parameters.Set.focusOnNewOption($(this), value);
|
||||
Parameters.Handle.focusOnNewOption($(this));
|
||||
break;
|
||||
case 'useExistingOptions':
|
||||
Parameters.Set.useExistingOptions($(this), value);
|
||||
Parameters.Handle.useExistingOptions($(this));
|
||||
break;
|
||||
case 'blinkingCursor':
|
||||
Parameters.Set.blinkingCursor($(this), value);
|
||||
break;
|
||||
case 'blinkingCursorInterval':
|
||||
Parameters.Set.blinkingCursorInterval($(this), value);
|
||||
break;
|
||||
case 'ignoredKeys':
|
||||
Parameters.Set.ignoredKeys($(this), value);
|
||||
break;
|
||||
case 'acceptedKeys':
|
||||
Parameters.Set.acceptedKeys($(this), value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// sets editable option to the value of currently selected option
|
||||
setEditableOption: function (elem) {
|
||||
var value = elem.find('option:selected').text();
|
||||
elem.find('option.' + pluginClass).attr('value', elem.val()).text(value).prop('selected', true);
|
||||
},
|
||||
|
||||
// get combobox id
|
||||
getId: function (elem) {
|
||||
return elem.data('jecId');
|
||||
},
|
||||
|
||||
valueIsEditable: function (elem) {
|
||||
return elem.find('option.' + pluginClass).get(0) === elem.find('option:selected').get(0);
|
||||
},
|
||||
|
||||
clearCursor: function (elem) {
|
||||
$(elem).find('option.' + cursorClass).each(function () {
|
||||
var text = $(this).text();
|
||||
$(this).removeClass(cursorClass).text(text.substring(0, text.length - 1));
|
||||
});
|
||||
},
|
||||
|
||||
cursorState: function (elem, state) {
|
||||
return elem.data('jecCursorState', state);
|
||||
},
|
||||
|
||||
openedState: function (elem, state) {
|
||||
return elem.data('jecOpenedState', state);
|
||||
},
|
||||
|
||||
//handles editable cursor
|
||||
handleCursor: function () {
|
||||
if (activeCombobox !== undefined && activeCombobox !== null) {
|
||||
if ($.browser.msie && Combobox.openedState(activeCombobox)) {
|
||||
return;
|
||||
}
|
||||
|
||||
var state = Combobox.cursorState(activeCombobox), elem;
|
||||
if (state) {
|
||||
Combobox.clearCursor(activeCombobox);
|
||||
} else if (Combobox.valueIsEditable(activeCombobox)) {
|
||||
elem = activeCombobox.find('option:selected');
|
||||
elem.addClass(cursorClass).text(elem.text() + '|');
|
||||
}
|
||||
Combobox.cursorState(activeCombobox, !state);
|
||||
}
|
||||
}
|
||||
};
|
||||
}());
|
||||
|
||||
// jEC public members
|
||||
return {
|
||||
init: Combobox.init,
|
||||
enable: Combobox.enable,
|
||||
disable: Combobox.disable,
|
||||
destroy: Combobox.destroy,
|
||||
value: Combobox.value,
|
||||
pref: Combobox.pref,
|
||||
initJS: Combobox.initJS,
|
||||
handleCursor: Combobox.handleCursor
|
||||
};
|
||||
}());
|
||||
|
||||
// register functions
|
||||
$.fn.extend({
|
||||
jec: $.jEC.init,
|
||||
jecOn: $.jEC.enable,
|
||||
jecOff: $.jEC.disable,
|
||||
jecKill: $.jEC.destroy,
|
||||
jecValue: $.jEC.value,
|
||||
jecPref: $.jEC.pref
|
||||
});
|
||||
|
||||
$.extend({
|
||||
jec: $.jEC.initJS
|
||||
});
|
||||
|
||||
// register selectors
|
||||
$.extend($.expr[':'], {
|
||||
editable: function (a) {
|
||||
var data = $(a).data('jecId');
|
||||
return data !== null && data !== undefined;
|
||||
},
|
||||
|
||||
uneditable: function (a) {
|
||||
var data = $(a).data('jecId');
|
||||
return data === null || data === undefined;
|
||||
}
|
||||
});
|
||||
|
||||
}(jQuery));
|
|
@ -47,6 +47,7 @@ class OC_Contacts_VCard{
|
|||
* ['carddata']
|
||||
*/
|
||||
public static function all($id){
|
||||
$result = null;
|
||||
if(is_array($id)) {
|
||||
$id_sql = join(',', array_fill(0, count($id), '?'));
|
||||
$prep = 'SELECT * FROM *PREFIX*contacts_cards WHERE addressbookid IN ('.$id_sql.') ORDER BY fullname';
|
||||
|
@ -58,13 +59,20 @@ class OC_Contacts_VCard{
|
|||
OC_Log::write('contacts','OC_Contacts_VCard:all, ids: '.join(',', $id),OC_Log::DEBUG);
|
||||
OC_Log::write('contacts','SQL:'.$prep,OC_Log::DEBUG);
|
||||
}
|
||||
} else {
|
||||
$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*contacts_cards WHERE addressbookid = ? ORDER BY fullname' );
|
||||
$result = $stmt->execute(array($id));
|
||||
} elseif($id) {
|
||||
try {
|
||||
$stmt = OC_DB::prepare( 'SELECT * FROM *PREFIX*contacts_cards WHERE addressbookid = ? ORDER BY fullname' );
|
||||
$result = $stmt->execute(array($id));
|
||||
} catch(Exception $e) {
|
||||
OC_Log::write('contacts','OC_Contacts_VCard:all:, exception: '.$e->getMessage(),OC_Log::DEBUG);
|
||||
OC_Log::write('contacts','OC_Contacts_VCard:all, ids: '. $id,OC_Log::DEBUG);
|
||||
}
|
||||
}
|
||||
$cards = array();
|
||||
while( $row = $result->fetchRow()){
|
||||
$cards[] = $row;
|
||||
if(!is_null($result)) {
|
||||
while( $row = $result->fetchRow()){
|
||||
$cards[] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
return $cards;
|
||||
|
@ -124,10 +132,9 @@ class OC_Contacts_VCard{
|
|||
OC_Log::write('contacts','OC_Contacts_VCard::add. Added missing \'N\' field: '.$n,OC_Log::DEBUG);
|
||||
}
|
||||
$uid = $card->getAsString('UID');
|
||||
if(is_null($uid)){
|
||||
if(!$uid){
|
||||
$card->setUID();
|
||||
$uid = $card->getAsString('UID');
|
||||
//$data = $card->serialize();
|
||||
};
|
||||
$uri = $uid.'.vcf';
|
||||
|
||||
|
@ -176,7 +183,7 @@ class OC_Contacts_VCard{
|
|||
* @return insertid
|
||||
*/
|
||||
public static function addFromDAVData($id,$uri,$data){
|
||||
$fn = $n = null;
|
||||
$fn = $n = $uid = null;
|
||||
$email = null;
|
||||
$card = OC_VObject::parse($data);
|
||||
if(!is_null($card)){
|
||||
|
@ -187,6 +194,9 @@ class OC_Contacts_VCard{
|
|||
if($property->name == 'N'){
|
||||
$n = $property->value;
|
||||
}
|
||||
if($property->name == 'UID'){
|
||||
$uid = $property->value;
|
||||
}
|
||||
if($property->name == 'EMAIL' && is_null($email)){
|
||||
$email = $property->value;
|
||||
}
|
||||
|
@ -210,6 +220,10 @@ class OC_Contacts_VCard{
|
|||
$data = $card->serialize();
|
||||
OC_Log::write('contacts','OC_Contacts_VCard::add. Added missing \'N\' field: '.$n,OC_Log::DEBUG);
|
||||
}
|
||||
if(!$uid) {
|
||||
$card->setUID();
|
||||
$data = $card->serialize();
|
||||
}
|
||||
|
||||
$stmt = OC_DB::prepare( 'INSERT INTO *PREFIX*contacts_cards (addressbookid,fullname,carddata,uri,lastmodified) VALUES(?,?,?,?,?)' );
|
||||
$result = $stmt->execute(array($id,$fn,$data,$uri,time()));
|
||||
|
@ -384,4 +398,43 @@ class OC_Contacts_VCard{
|
|||
}
|
||||
return $temp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Move card(s) to an address book
|
||||
* @param integer $aid Address book id
|
||||
* @param $id Array or integer of cards to be moved.
|
||||
* @return boolean
|
||||
*
|
||||
*/
|
||||
public static function moveToAddressBook($aid, $id){
|
||||
OC_Contacts_App::getAddressbook($aid); // check for user ownership.
|
||||
if(is_array($id)) {
|
||||
$id_sql = join(',', array_fill(0, count($id), '?'));
|
||||
$prep = 'UPDATE *PREFIX*contacts_cards SET addressbookid = ? WHERE id IN ('.$id_sql.')';
|
||||
try {
|
||||
$stmt = OC_DB::prepare( $prep );
|
||||
//$aid = array($aid);
|
||||
$vals = array_merge((array)$aid, $id);
|
||||
$result = $stmt->execute($vals);
|
||||
} catch(Exception $e) {
|
||||
OC_Log::write('contacts','OC_Contacts_VCard::moveToAddressBook:, exception: '.$e->getMessage(),OC_Log::DEBUG);
|
||||
OC_Log::write('contacts','OC_Contacts_VCard::moveToAddressBook, ids: '.join(',', $vals),OC_Log::DEBUG);
|
||||
OC_Log::write('contacts','SQL:'.$prep,OC_Log::DEBUG);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
$stmt = OC_DB::prepare( 'UPDATE *PREFIX*contacts_cards SET addressbookid = ? WHERE id = ?' );
|
||||
$result = $stmt->execute(array($aid, $id));
|
||||
} catch(Exception $e) {
|
||||
OC_Log::write('contacts','OC_Contacts_VCard::moveToAddressBook:, exception: '.$e->getMessage(),OC_Log::DEBUG);
|
||||
OC_Log::write('contacts','OC_Contacts_VCard::moveToAddressBook, id: '.$id,OC_Log::DEBUG);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
OC_Contacts_Addressbook::touch($aid);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ $image = new OC_Image();
|
|||
if( is_null($contact)) {
|
||||
OC_Log::write('contacts','photo.php. The VCard for ID '.$id.' is not RFC compatible',OC_Log::ERROR);
|
||||
} else {
|
||||
OC_Response::enableCaching();
|
||||
OC_Contacts_App::setLastModifiedHeader($contact);
|
||||
|
||||
// Photo :-)
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
<div id="rightcontent" class="rightcontent" data-id="<?php echo $_['id']; ?>">
|
||||
<?php
|
||||
if ($_['id']){
|
||||
echo $this->inc("part.details");
|
||||
echo $this->inc('part.contact');
|
||||
}
|
||||
else{
|
||||
echo $this->inc("part.addcardform");
|
||||
echo $this->inc('part.no_contacts');
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
<script type='text/javascript'>
|
||||
var totalurl = '<?php echo OC_Helper::linkTo('contacts', 'carddav.php', null, true); ?>/addressbooks';
|
||||
</script>
|
||||
<div id="controls">
|
||||
<form>
|
||||
<input type="button" id="contacts_newcontact" value="<?php echo $l->t('Add Contact'); ?>">
|
||||
<input type="button" id="chooseaddressbook" value="<?php echo $l->t('Addressbooks'); ?>">
|
||||
</form>
|
||||
</div>
|
||||
<div id="leftcontent" class="leftcontent">
|
||||
<ul id="contacts">
|
||||
<?php echo $this->inc("part.contacts"); ?>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="rightcontent" class="rightcontent" data-id="<?php echo $_['id']; ?>">
|
||||
<?php
|
||||
if ($_['id']){
|
||||
echo $this->inc('part.contact');
|
||||
}
|
||||
else{
|
||||
echo $this->inc('part.no_contacts');
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<!-- Dialogs -->
|
||||
<div id="dialog_holder"></div>
|
||||
<!-- End of Dialogs -->
|
|
@ -45,10 +45,6 @@ $id = isset($_['id']) ? $_['id'] : '';
|
|||
<dt><label for="fn"><?php echo $l->t('Display name'); ?></label></dt>
|
||||
<dd class="propertycontainer" data-element="FN">
|
||||
<select id="fn_select" title="<?php echo $l->t('Format custom, Short name, Full name, Reverse or Reverse with comma'); ?>" style="width:16em;">
|
||||
<option id="short" title="Short name"></option>
|
||||
<option id="full" title="Full name"></option>
|
||||
<option id="reverse" title="Reverse"></option>
|
||||
<option id="reverse_comma" title="Reverse with comma"></option>
|
||||
</select><a id="edit_name" class="edit" title="<?php echo $l->t('Edit name details'); ?>"></a>
|
||||
</dd>
|
||||
<dt style="display:none;" id="org_label" data-element="ORG"><label for="org"><?php echo $l->t('Organization'); ?></label></dt>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
You have no contacts in your list.
|
||||
<div id="selections">
|
||||
<input type="button" value="Import contacts" onclick="Contacts.UI.Addressbooks.import()" />
|
||||
<input type="button" value="Add contact" onclick="Contacts.UI.Card.add()" />
|
||||
<input type="button" value="Add contact" onclick="Contacts.UI.Card.editNew()" />
|
||||
<input type="button" value="Edit addressbooks" onclick="Contacts.UI.Addressbooks.overview()" />
|
||||
</div>
|
||||
</div>
|
|
@ -48,6 +48,7 @@ if(is_null($contact)){
|
|||
getStandardImage();
|
||||
exit();
|
||||
}
|
||||
OC_Response::enableCaching();
|
||||
OC_Contacts_App::setLastModifiedHeader($contact);
|
||||
|
||||
$thumbnail_size = 23;
|
||||
|
@ -55,25 +56,26 @@ $thumbnail_size = 23;
|
|||
// Find the photo from VCard.
|
||||
$image = new OC_Image();
|
||||
$photo = $contact->getAsString('PHOTO');
|
||||
if($photo) {
|
||||
OC_Response::setETagHeader(md5($photo));
|
||||
|
||||
OC_Response::setETagHeader(md5($photo));
|
||||
|
||||
if($image->loadFromBase64($photo)) {
|
||||
if($image->centerCrop()) {
|
||||
if($image->resize($thumbnail_size)) {
|
||||
if($image->show()) {
|
||||
// done
|
||||
exit();
|
||||
if($image->loadFromBase64($photo)) {
|
||||
if($image->centerCrop()) {
|
||||
if($image->resize($thumbnail_size)) {
|
||||
if($image->show()) {
|
||||
// done
|
||||
exit();
|
||||
} else {
|
||||
OC_Log::write('contacts','thumbnail.php. Couldn\'t display thumbnail for ID '.$id,OC_Log::ERROR);
|
||||
}
|
||||
} else {
|
||||
OC_Log::write('contacts','thumbnail.php. Couldn\'t display thumbnail for ID '.$id,OC_Log::ERROR);
|
||||
OC_Log::write('contacts','thumbnail.php. Couldn\'t resize thumbnail for ID '.$id,OC_Log::ERROR);
|
||||
}
|
||||
} else {
|
||||
OC_Log::write('contacts','thumbnail.php. Couldn\'t resize thumbnail for ID '.$id,OC_Log::ERROR);
|
||||
}else{
|
||||
OC_Log::write('contacts','thumbnail.php. Couldn\'t crop thumbnail for ID '.$id,OC_Log::ERROR);
|
||||
}
|
||||
}else{
|
||||
OC_Log::write('contacts','thumbnail.php. Couldn\'t crop thumbnail for ID '.$id,OC_Log::ERROR);
|
||||
} else {
|
||||
OC_Log::write('contacts','thumbnail.php. Couldn\'t load image string for ID '.$id,OC_Log::ERROR);
|
||||
}
|
||||
} else {
|
||||
OC_Log::write('contacts','thumbnail.php. Couldn\'t load image string for ID '.$id,OC_Log::ERROR);
|
||||
}
|
||||
getStandardImage();
|
||||
|
|
|
@ -23,12 +23,7 @@
|
|||
|
||||
require_once('../../lib/base.php');
|
||||
|
||||
// Check if we are a user
|
||||
if( !OC_User::isLoggedIn()){
|
||||
header( "Location: ".OC_Helper::linkTo( '', 'index.php' ));
|
||||
exit();
|
||||
}
|
||||
|
||||
OC_Util::checkLoggedIn();
|
||||
|
||||
if(isset($_GET['id'])){
|
||||
|
||||
|
|
|
@ -67,9 +67,7 @@ if ($source !== false) {
|
|||
//get time mimetype and set the headers
|
||||
$mimetype = OC_Filesystem::getMimeType($source);
|
||||
header("Content-Transfer-Encoding: binary");
|
||||
header("Expires: 0");
|
||||
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
||||
header("Pragma: public");
|
||||
OC_Response::disableCaching();
|
||||
header('Content-Disposition: filename="'.basename($source).'"');
|
||||
header("Content-Type: " . $mimetype);
|
||||
header("Content-Length: " . OC_Filesystem::filesize($source));
|
||||
|
|
|
@ -56,18 +56,16 @@ function setSyntaxMode(ext){
|
|||
|
||||
function showControls(filename,writeperms){
|
||||
// Loads the control bar at the top.
|
||||
$('.actions,#file_action_panel').fadeOut('slow').promise().done(function() {
|
||||
// Load the new toolbar.
|
||||
var editorcontrols;
|
||||
if(writeperms=="true"){
|
||||
var editorcontrols = '<button id="editor_save">'+t('files_texteditor','Save')+'</button><div class="separator"></div><label for="gotolineval">Go to line:</label><input type="text" id="gotolineval"><div class="separator"></div>';
|
||||
}
|
||||
var html = '<label for="editorseachval">Search:</label><input type="text" name="editorsearchval" id="editorsearchval"><div class="separator"></div><button id="editor_close">'+t('files_texteditor','Close')+'</button>';
|
||||
$('#controls').append(html);
|
||||
$('#editorbar').fadeIn('slow');
|
||||
var breadcrumbhtml = '<div class="crumb svg" id="breadcrumb_file" style="background-image:url("../core/img/breadcrumb.png")"><p>'+filename+'</p></div>';
|
||||
$('.actions').before(breadcrumbhtml).before(editorcontrols);
|
||||
});
|
||||
// Load the new toolbar.
|
||||
var editorbarhtml = '<div id="editorcontrols" style="display: none;"><div class="crumb svg last" id="breadcrumb_file" style="background-image:url("../core/img/breadcrumb.png")"><p>'+filename+'</p></div>';
|
||||
if(writeperms=="true"){
|
||||
editorbarhtml += '<button id="editor_save">'+t('files_texteditor','Save')+'</button><div class="separator"></div>';
|
||||
}
|
||||
editorbarhtml += '<label for="gotolineval">Go to line:</label><input stype="text" id="gotolineval"><label for="editorseachval">Search:</label><input type="text" name="editorsearchval" id="editorsearchval"><div class="separator"></div><button id="editor_close">'+t('files_texteditor','Close')+'</button></div>';
|
||||
// Change breadcrumb classes
|
||||
$('#controls .last').removeClass('last');
|
||||
$('#controls').append(editorbarhtml);
|
||||
$('#editorcontrols').fadeIn('slow');
|
||||
}
|
||||
|
||||
function bindControlEvents(){
|
||||
|
@ -182,8 +180,10 @@ function showFileEditor(dir,filename){
|
|||
// Save mtime
|
||||
$('#editor').attr('data-mtime', result.data.mtime);
|
||||
// Initialise the editor
|
||||
showControls(filename,result.data.write);
|
||||
$('.actions,#file_action_panel').fadeOut('slow');
|
||||
$('table').fadeOut('slow', function() {
|
||||
// Show the control bar
|
||||
showControls(filename,result.data.write);
|
||||
// Update document title
|
||||
document.title = filename;
|
||||
$('#editor').text(result.data.filecontents);
|
||||
|
@ -215,8 +215,9 @@ function showFileEditor(dir,filename){
|
|||
// Fades out the editor.
|
||||
function hideFileEditor(){
|
||||
// Fades out editor controls
|
||||
$('#controls > :not(.actions,#file_access_panel,.crumb),#breadcrumb_file').fadeOut('slow',function(){
|
||||
$('#editorcontrols').fadeOut('slow',function(){
|
||||
$(this).remove();
|
||||
$(".crumb:last").addClass('last');
|
||||
});
|
||||
// Fade out editor
|
||||
$('#editor').fadeOut('slow', function(){
|
||||
|
|
|
@ -1,81 +0,0 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* ownCloud - gallery application
|
||||
*
|
||||
* @author Bartek Przybylski
|
||||
* @copyright 2012 Bartek Przybylski bart.p.pl@gmail.com
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 3 of the License, or any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
require_once('../../../lib/base.php');
|
||||
OC_JSON::checkLoggedIn();
|
||||
OC_JSON::checkAppEnabled('gallery');
|
||||
|
||||
function CroppedThumbnail($imgSrc,$thumbnail_width,$thumbnail_height) { //$imgSrc is a FILE - Returns an image resource.
|
||||
//getting the image dimensions
|
||||
list($width_orig, $height_orig) = getimagesize($imgSrc);
|
||||
switch (strtolower(substr($imgSrc, strrpos($imgSrc, '.')+1))) {
|
||||
case "jpeg":
|
||||
case "jpg":
|
||||
$myImage = imagecreatefromjpeg($imgSrc);
|
||||
break;
|
||||
default:
|
||||
exit();
|
||||
}
|
||||
$ratio_orig = $width_orig/$height_orig;
|
||||
|
||||
if ($thumbnail_width/$thumbnail_height > $ratio_orig) {
|
||||
$new_height = $thumbnail_width/$ratio_orig;
|
||||
$new_width = $thumbnail_width;
|
||||
} else {
|
||||
$new_width = $thumbnail_height*$ratio_orig;
|
||||
$new_height = $thumbnail_height;
|
||||
}
|
||||
|
||||
$x_mid = $new_width/2; //horizontal middle
|
||||
$y_mid = $new_height/2; //vertical middle
|
||||
|
||||
$process = imagecreatetruecolor(round($new_width), round($new_height));
|
||||
|
||||
imagecopyresampled($process, $myImage, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);
|
||||
$thumb = imagecreatetruecolor($thumbnail_width, $thumbnail_height);
|
||||
imagecopyresampled($thumb, $process, 0, 0, ($x_mid-($thumbnail_width/2)), ($y_mid-($thumbnail_height/2)), $thumbnail_width, $thumbnail_height, $thumbnail_width, $thumbnail_height);
|
||||
|
||||
imagedestroy($process);
|
||||
imagedestroy($myImage);
|
||||
return $thumb;
|
||||
}
|
||||
|
||||
$box_size = 200;
|
||||
$album_name = $_GET['album'];
|
||||
$x = $_GET['x'];
|
||||
|
||||
$stmt = OC_DB::prepare('SELECT `file_path` FROM *PREFIX*gallery_photos,*PREFIX*gallery_albums WHERE *PREFIX*gallery_albums.`uid_owner` = ? AND `album_name` = ? AND *PREFIX*gallery_photos.`album_id` == *PREFIX*gallery_albums.`album_id`');
|
||||
$result = $stmt->execute(array(OC_User::getUser(), $album_name));
|
||||
$x = min((int)($x/($box_size/$result->numRows())), $result->numRows()-1); // get image to display
|
||||
$result->seek($x); // never throws
|
||||
$path = $result->fetchRow();
|
||||
$path = $path['file_path'];
|
||||
$imagePath = OC_Filesystem::getLocalFile($img);
|
||||
$imagesize = getimagesize($imagePath);
|
||||
|
||||
header('Content-Type: image/png');
|
||||
$image = CroppedThumbnail($imagePath, $box_size, $box_size);
|
||||
|
||||
imagepng($image);
|
||||
imagedestroy($image);
|
||||
?>
|
|
@ -22,18 +22,16 @@
|
|||
*/
|
||||
|
||||
require_once('../../../lib/base.php');
|
||||
require_once(OC::$CLASSPATH['OC_Gallery_Album']);
|
||||
require_once(OC::$CLASSPATH['OC_Gallery_Scanner']);
|
||||
|
||||
OC_JSON::checkLoggedIn();
|
||||
OC_JSON::checkAppEnabled('gallery');
|
||||
|
||||
function handleRename($oldname, $newname) {
|
||||
OC_JSON::checkLoggedIn();
|
||||
OC_Gallery_Album::rename($oldname, $newname, OC_User::getUser());
|
||||
OC_Gallery_Album::changeThumbnailPath($oldname, $newname);
|
||||
}
|
||||
|
||||
function handleRemove($name) {
|
||||
OC_JSON::checkLoggedIn();
|
||||
$album_id = OC_Gallery_Album::find(OC_User::getUser(), $name);
|
||||
$album_id = $album_id->fetchRow();
|
||||
$album_id = $album_id['album_id'];
|
||||
|
@ -42,25 +40,18 @@ function handleRemove($name) {
|
|||
}
|
||||
|
||||
function handleGetThumbnails($albumname) {
|
||||
OC_JSON::checkLoggedIn();
|
||||
$photo = new OC_Image();
|
||||
$photo->loadFromFile(OC::$CONFIG_DATADIRECTORY.'/../gallery/'.$albumname.'.png');
|
||||
$offset = 3600 * 24; // 24 hour
|
||||
// calc the string in GMT not localtime and add the offset
|
||||
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
|
||||
header('Cache-Control: max-age='.$offset.', must-revalidate');
|
||||
header('Pragma: public');
|
||||
$photo->show();
|
||||
OC_Response::enableCaching(3600 * 24); // 24 hour
|
||||
$thumbnail = OC::$CONFIG_DATADIRECTORY.'/../gallery/'.$albumname.'.png';
|
||||
header('Content-Type: '.OC_Image::getMimeTypeForFile($thumbnail));
|
||||
OC_Response::sendFile($thumbnail);
|
||||
}
|
||||
|
||||
function handleGalleryScanning() {
|
||||
OC_JSON::checkLoggedIn();
|
||||
OC_Gallery_Scanner::cleanup();
|
||||
OC_JSON::success(array('albums' => OC_Gallery_Scanner::scan('/')));
|
||||
}
|
||||
|
||||
function handleFilescan($cleanup) {
|
||||
OC_JSON::checkLoggedIn();
|
||||
if ($cleanup) OC_Gallery_Album::cleanup();
|
||||
$root = OC_Preferences::getValue(OC_User::getUser(), 'gallery', 'root', '').'/';
|
||||
$pathlist = OC_Gallery_Scanner::find_paths($root);
|
||||
|
@ -69,7 +60,6 @@ function handleFilescan($cleanup) {
|
|||
}
|
||||
|
||||
function handlePartialCreate($path) {
|
||||
OC_JSON::checkLoggedIn();
|
||||
if (empty($path)) OC_JSON::error(array('cause' => 'No path specified'));
|
||||
if (!OC_Filesystem::is_dir($path)) OC_JSON::error(array('cause' => 'Invalid path given'));
|
||||
|
||||
|
@ -80,7 +70,6 @@ function handlePartialCreate($path) {
|
|||
}
|
||||
|
||||
function handleStoreSettings($root, $order) {
|
||||
OC_JSON::checkLoggedIn();
|
||||
if (!OC_Filesystem::file_exists($root)) {
|
||||
OC_JSON::error(array('cause' => 'No such file or directory'));
|
||||
return;
|
||||
|
|
|
@ -29,10 +29,6 @@ $img = $_GET['img'];
|
|||
|
||||
$image = OC_Gallery_Photo::getThumbnail($img);
|
||||
if ($image) {
|
||||
$offset = 3600 * 24; // 24 hour
|
||||
// calc the string in GMT not localtime and add the offset
|
||||
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT");
|
||||
header('Cache-Control: max-age='.$offset.', must-revalidate');
|
||||
header('Pragma: public');
|
||||
OC_Response::enableCaching(3600 * 24); // 24 hour
|
||||
$image->show();
|
||||
}
|
||||
|
|
|
@ -67,10 +67,6 @@ class OC_Gallery_Photo {
|
|||
}
|
||||
|
||||
public static function getThumbnail($image_name) {
|
||||
$imagePath = OC_Filesystem::getLocalFile($image_name);
|
||||
if(!file_exists($imagePath)) {
|
||||
return null;
|
||||
}
|
||||
$save_dir = OC_Config::getValue("datadirectory").'/'. OC_User::getUser() .'/gallery/';
|
||||
$save_dir .= dirname($image_name). '/';
|
||||
$image_name = basename($image_name);
|
||||
|
@ -78,6 +74,10 @@ class OC_Gallery_Photo {
|
|||
if (file_exists($thumb_file)) {
|
||||
$image = new OC_Image($thumb_file);
|
||||
} else {
|
||||
$imagePath = OC_Filesystem::getLocalFile($image_name);
|
||||
if(!file_exists($imagePath)) {
|
||||
return null;
|
||||
}
|
||||
$image = new OC_Image($imagePath);
|
||||
if ($image->valid()) {
|
||||
$image->centerCrop();
|
||||
|
@ -90,7 +90,6 @@ class OC_Gallery_Photo {
|
|||
}
|
||||
}
|
||||
if ($image->valid()) {
|
||||
//var_dump($image, $image->resource());
|
||||
return $image;
|
||||
}
|
||||
return null;
|
||||
|
|
|
@ -111,18 +111,11 @@ if($arguments['action']){
|
|||
OC_MEDIA_COLLECTION::registerPlay($songId);
|
||||
|
||||
header('Content-Type:'.$ftype);
|
||||
// calc an offset of 24 hours
|
||||
$offset = 3600 * 24;
|
||||
// calc the string in GMT not localtime and add the offset
|
||||
$expire = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
|
||||
//output the HTTP header
|
||||
header($expire);
|
||||
header('Cache-Control: max-age=3600, must-revalidate');
|
||||
header('Pragma: public');
|
||||
OC_Response::enableCaching(3600 * 24); // 24 hour
|
||||
header('Accept-Ranges: bytes');
|
||||
header('Content-Length: '.OC_Filesystem::filesize($arguments['path']));
|
||||
$gmt_mtime = gmdate('D, d M Y H:i:s', OC_Filesystem::filemtime($arguments['path']) ) . ' GMT';
|
||||
header("Last-Modified: " . $gmt_mtime );
|
||||
$mtime = OC_Filesystem::filemtime($arguments['path']);
|
||||
OC_Response::setLastModifiedHeader($mtime);
|
||||
|
||||
OC_Filesystem::readfile($arguments['path']);
|
||||
exit;
|
||||
|
|
|
@ -43,9 +43,7 @@ if(isset($_POST['play']) and $_POST['play']=='true'){
|
|||
$song=OC_MEDIA_COLLECTION::getSong($_POST['song']);
|
||||
$ftype=OC_Filesystem::getMimeType( $song['song_path'] );
|
||||
header('Content-Type:'.$ftype);
|
||||
header('Expires: 0');
|
||||
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
||||
header('Pragma: public');
|
||||
OC_Response::disableCaching();
|
||||
header('Content-Length: '.OC_Filesystem::filesize($song['song_path']));
|
||||
|
||||
OC_Filesystem::readfile($song['song_path']);
|
||||
|
|
|
@ -41,9 +41,7 @@ $ftype=OC_Filesystem::getMimeType( $filename );
|
|||
|
||||
header('Content-Type:'.$ftype);
|
||||
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
|
||||
header('Expires: 0');
|
||||
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
||||
header('Pragma: public');
|
||||
OC_Response::disableCaching();
|
||||
header('Content-Length: '.OC_Filesystem::filesize($filename));
|
||||
|
||||
@ob_end_clean();
|
||||
|
|
|
@ -97,12 +97,8 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr
|
|||
* in the second parameter or to now if the second param is empty.
|
||||
* Even if the modification time is set to a custom value the access time is set to now.
|
||||
*/
|
||||
public function setLastModifiedTime($mtime) {
|
||||
OC_Filesystem::setFileMtime($this->path, $mtime);
|
||||
}
|
||||
|
||||
public function endsWith( $str, $sub ) {
|
||||
return ( substr( $str, strlen( $str ) - strlen( $sub ) ) === $sub );
|
||||
public function touch($mtime) {
|
||||
OC_Filesystem::touch($this->path, $mtime);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -123,8 +119,8 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr
|
|||
}
|
||||
}
|
||||
else {
|
||||
if( $this->endsWith( $propertyName, "modificationTime")) {
|
||||
$this->setLastModifiedTime($propertyValue);
|
||||
if( strcmp( $propertyName, "lastmodified")) {
|
||||
$this->touch($propertyValue);
|
||||
} else {
|
||||
if(!array_key_exists( $propertyName, $existing )){
|
||||
$query = OC_DB::prepare( 'INSERT INTO *PREFIX*properties (userid,propertypath,propertyname,propertyvalue) VALUES(?,?,?,?)' );
|
||||
|
|
|
@ -380,8 +380,7 @@ class OC_FileCache{
|
|||
$fullOldPath=$root.$oldPath;
|
||||
$fullNewPath=$root.$newPath;
|
||||
if(($id=self::getFileId($fullOldPath))!=-1){
|
||||
$oldInfo=self::get($fullOldPath);
|
||||
$oldSize=$oldInfo['size'];
|
||||
$oldSize=self::getCachedSize($oldPath,$root);
|
||||
}else{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -91,9 +91,7 @@ class OC_Files {
|
|||
if($zip or OC_Filesystem::is_readable($filename)){
|
||||
header('Content-Disposition: attachment; filename="'.basename($filename).'"');
|
||||
header('Content-Transfer-Encoding: binary');
|
||||
header('Expires: 0');
|
||||
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
|
||||
header('Pragma: public');
|
||||
OC_Response::disableCaching();
|
||||
if($zip){
|
||||
header('Content-Type: application/zip');
|
||||
header('Content-Length: ' . filesize($filename));
|
||||
|
|
|
@ -12,14 +12,10 @@ class OC_Filestorage_Local extends OC_Filestorage{
|
|||
}
|
||||
}
|
||||
public function mkdir($path){
|
||||
if($return=mkdir($this->datadir.$path)){
|
||||
}
|
||||
return $return;
|
||||
return @mkdir($this->datadir.$path);
|
||||
}
|
||||
public function rmdir($path){
|
||||
if($return=rmdir($this->datadir.$path)){
|
||||
}
|
||||
return $return;
|
||||
return @rmdir($this->datadir.$path);
|
||||
}
|
||||
public function opendir($path){
|
||||
return opendir($this->datadir.$path);
|
||||
|
@ -65,13 +61,16 @@ class OC_Filestorage_Local extends OC_Filestorage{
|
|||
public function filemtime($path){
|
||||
return filemtime($this->datadir.$path);
|
||||
}
|
||||
public function touch($path, $mtime){
|
||||
// sets the modification time of the file to the given value.
|
||||
// If mtime is nil the current time is set.
|
||||
// note that the access time of the file always changes to the current time.
|
||||
if( touch( $this->datadir.$path, $mtime ) ) {
|
||||
clearstatcache( true, $this->datadir.$path );
|
||||
}
|
||||
|
||||
public function setFileMtime($path, $mtime){
|
||||
// sets the modification time of the file to the given value. If mtime is nil the current time is set.
|
||||
// note that the access time of the file always changes to the current time.
|
||||
return touch($this->datadir.$path, $mtime);
|
||||
}
|
||||
|
||||
return touch($this->datadir.$path, $mtime);
|
||||
}
|
||||
public function file_get_contents($path){
|
||||
return file_get_contents($this->datadir.$path);
|
||||
}
|
||||
|
@ -80,8 +79,7 @@ class OC_Filestorage_Local extends OC_Filestorage{
|
|||
}
|
||||
}
|
||||
public function unlink($path){
|
||||
$return=$this->delTree($path);
|
||||
return $return;
|
||||
return $this->delTree($path);
|
||||
}
|
||||
public function rename($path1,$path2){
|
||||
if(! $this->file_exists($path1)){
|
||||
|
@ -168,6 +166,8 @@ class OC_Filestorage_Local extends OC_Filestorage{
|
|||
$mimeType=(isset(self::$mimetypes[$extention]))?self::$mimetypes[$extention]:'application/octet-stream';
|
||||
}
|
||||
return $mimeType;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -345,8 +345,8 @@ class OC_Filesystem{
|
|||
static public function filemtime($path){
|
||||
return self::$defaultInstance->filemtime($path);
|
||||
}
|
||||
static public function setFileMtime($path, $mtime){
|
||||
return self::$defaultInstance->setFileMtime($path, $mtime);
|
||||
static public function touch($path, $mtime){
|
||||
return self::$defaultInstance->touch($path, $mtime);
|
||||
}
|
||||
static public function file_get_contents($path){
|
||||
return self::$defaultInstance->file_get_contents($path);
|
||||
|
|
|
@ -156,8 +156,8 @@ class OC_FilesystemView {
|
|||
public function filemtime($path){
|
||||
return $this->basicOperation('filemtime',$path);
|
||||
}
|
||||
public function setFileMtime($path, $mtime){
|
||||
return $this->basicOperation('setFileMtime',$path, array('write'), $mtime);
|
||||
public function touch($path, $mtime){
|
||||
return $this->basicOperation('touch', $path, array('write'), $mtime);
|
||||
}
|
||||
public function file_get_contents($path){
|
||||
return $this->basicOperation('file_get_contents',$path,array('read'));
|
||||
|
|
|
@ -75,18 +75,25 @@ class OC_Helper {
|
|||
*
|
||||
* Returns the path to the image.
|
||||
*/
|
||||
public static function imagePath( $app, $image ){
|
||||
// Check if the app is in the app folder
|
||||
if( file_exists( OC::$SERVERROOT."/apps/$app/img/$image" )){
|
||||
return OC::$WEBROOT."/apps/$app/img/$image";
|
||||
}
|
||||
elseif( !empty( $app )){
|
||||
return OC::$WEBROOT."/$app/img/$image";
|
||||
}
|
||||
else{
|
||||
return OC::$WEBROOT."/core/img/$image";
|
||||
}
|
||||
}
|
||||
public static function imagePath( $app, $image ){
|
||||
// Read the selected theme from the config file
|
||||
$theme=OC_Config::getValue( "theme" );
|
||||
|
||||
// Check if the app is in the app folder
|
||||
if( file_exists( OC::$SERVERROOT."/themes/$theme/apps/$app/img/$image" )){
|
||||
return OC::$WEBROOT."/themes/$theme/apps/$app/img/$image";
|
||||
}elseif( file_exists( OC::$SERVERROOT."/apps/$app/img/$image" )){
|
||||
return OC::$WEBROOT."/apps/$app/img/$image";
|
||||
}elseif( !empty( $app ) and file_exists( OC::$SERVERROOT."/themes/$theme/$app/img/$image" )){
|
||||
return OC::$WEBROOT."/themes/$theme/$app/img/$image";
|
||||
}elseif( !empty( $app ) and file_exists( OC::$SERVERROOT."/$app/img/$image" )){
|
||||
return OC::$WEBROOT."/$app/img/$image";
|
||||
}elseif( file_exists( OC::$SERVERROOT."/themes/$theme/core/img/$image" )){
|
||||
return OC::$WEBROOT."/themes/$theme/core/img/$image";
|
||||
}else{
|
||||
return OC::$WEBROOT."/core/img/$image";
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get path to icon of file type
|
||||
|
|
|
@ -48,6 +48,16 @@ class OC_Image {
|
|||
protected $imagetype = IMAGETYPE_PNG; // Default to png if file type isn't evident.
|
||||
protected $filepath = null;
|
||||
|
||||
/**
|
||||
* @brief Get mime type for an image file.
|
||||
* @param $filepath The path to a local image file.
|
||||
* @returns string The mime type if the it could be determined, otherwise an empty string.
|
||||
*/
|
||||
static public function getMimeTypeForFile($filepath) {
|
||||
$imagetype = exif_imagetype($filepath);
|
||||
return $imagetype ? image_type_to_mime_type($imagetype) : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Constructor.
|
||||
* @param $imageref The path to a local file, a base64 encoded string or a resource created by an imagecreate* function.
|
||||
|
@ -102,6 +112,7 @@ class OC_Image {
|
|||
* @returns bool
|
||||
*/
|
||||
public function show() {
|
||||
header('Content-Type: '.$this->mimeType());
|
||||
return $this->_output();
|
||||
}
|
||||
|
||||
|
@ -117,17 +128,14 @@ class OC_Image {
|
|||
} elseif($filepath === null && $this->filepath !== null) {
|
||||
$filepath = $this->filepath;
|
||||
}
|
||||
return $this->_output($filepath, true);
|
||||
return $this->_output($filepath);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Outputs/saves the image.
|
||||
*/
|
||||
private function _output($filepath=null, $really=false) {
|
||||
if($really === false) {
|
||||
header('Content-Type: '.$this->mimeType());
|
||||
$filepath = null; // Just being cautious ;-)
|
||||
} else {
|
||||
private function _output($filepath=null) {
|
||||
if($filepath) {
|
||||
if(!is_writable(dirname($filepath))) {
|
||||
OC_Log::write('core',__METHOD__.'(): Directory \''.dirname($filepath).'\' is not writable.', OC_Log::ERROR);
|
||||
return false;
|
||||
|
@ -278,24 +286,46 @@ class OC_Image {
|
|||
|
||||
/**
|
||||
* @brief Loads an image from a local file, a base64 encoded string or a resource created by an imagecreate* function.
|
||||
* @param $imageref The path to a local file, a base64 encoded string or a resource created by an imagecreate* function.
|
||||
* @param $imageref The path to a local file, a base64 encoded string or a resource created by an imagecreate* function or a file resource (file handle ).
|
||||
* @returns An image resource or false on error
|
||||
*/
|
||||
public function load($imageref) {
|
||||
if($this->loadFromFile($imageref) !== false) {
|
||||
if(is_resource($imageref)) {
|
||||
if(get_resource_type($imageref) == 'gd') {
|
||||
$this->resource = $res;
|
||||
return $this->resource;
|
||||
} elseif(in_array(get_resource_type($imageref), array('file','stream'))) {
|
||||
return $this->loadFromFileHandle($imageref);
|
||||
}
|
||||
} elseif($this->loadFromFile($imageref) !== false) {
|
||||
return $this->resource;
|
||||
} elseif($this->loadFromBase64($imageref) !== false) {
|
||||
return $this->resource;
|
||||
} elseif($this->loadFromData($imageref) !== false) {
|
||||
return $this->resource;
|
||||
} elseif($this->loadFromResource($imageref) !== false) {
|
||||
return $this->resource;
|
||||
} else {
|
||||
OC_Log::write('core',__METHOD__.'(): couldn\'t load anything. Giving up!', OC_Log::DEBUG);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Loads an image from an open file handle.
|
||||
* It is the responsibility of the caller to position the pointer at the correct place and to close the handle again.
|
||||
* @param $handle
|
||||
* @returns An image resource or false on error
|
||||
*/
|
||||
public function loadFromFileHandle($handle) {
|
||||
OC_Log::write('core',__METHOD__.'(): Trying', OC_Log::DEBUG);
|
||||
$contents = '';
|
||||
while (!feof($handle)) {
|
||||
$contents .= fread($handle, 8192);
|
||||
}
|
||||
if($this->loadFromData($contents)) {
|
||||
return $this->resource;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Loads an image from a local file.
|
||||
* @param $imageref The path to a local file.
|
||||
|
@ -421,18 +451,6 @@ class OC_Image {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Checks if image resource is valid and assigns it to $this->resource.
|
||||
* @param $res An image resource.
|
||||
* @returns An image resource or false on error
|
||||
*/
|
||||
public function loadFromResource($res) {
|
||||
if(!is_resource($res)) {
|
||||
return false;
|
||||
}
|
||||
$this->resource = $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Resizes the image preserving ratio.
|
||||
* @param $maxsize The maximum size of either the width or height.
|
||||
|
|
|
@ -10,10 +10,28 @@ class OC_Response {
|
|||
const STATUS_FOUND = 304;
|
||||
const STATUS_NOT_MODIFIED = 304;
|
||||
const STATUS_TEMPORARY_REDIRECT = 307;
|
||||
const STATUS_NOT_FOUND = 404;
|
||||
|
||||
static public function enableCaching() {
|
||||
header('Cache-Control: cache');
|
||||
header('Pragma: cache');
|
||||
static public function enableCaching($cache_time = null) {
|
||||
if (is_numeric($cache_time)) {
|
||||
header('Pragma: public');// enable caching in IE
|
||||
if ($cache_time > 0) {
|
||||
self::setExpiresHeader('PT'.$cache_time.'S');
|
||||
header('Cache-Control: max-age='.$cache_time.', must-revalidate');
|
||||
}
|
||||
else {
|
||||
self::setExpiresHeader(0);
|
||||
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
|
||||
}
|
||||
}
|
||||
else {
|
||||
header('Cache-Control: cache');
|
||||
header('Pragma: cache');
|
||||
}
|
||||
|
||||
}
|
||||
static public function disableCaching() {
|
||||
self::enableCaching(0);
|
||||
}
|
||||
|
||||
static public function setStatus($status) {
|
||||
|
@ -33,6 +51,9 @@ class OC_Response {
|
|||
case self::STATUS_FOUND;
|
||||
$status = $status . ' Found';
|
||||
break;
|
||||
case self::STATUS_NOT_FOUND;
|
||||
$status = $status . ' Not Found';
|
||||
break;
|
||||
}
|
||||
header($protocol.' '.$status);
|
||||
}
|
||||
|
@ -46,19 +67,19 @@ class OC_Response {
|
|||
if (is_string($expires) && $expires[0] == 'P') {
|
||||
$interval = $expires;
|
||||
$expires = new DateTime('now');
|
||||
$expires->add(new DateInterval(expires));
|
||||
$expires->add(new DateInterval($interval));
|
||||
}
|
||||
if ($expires instanceof DateTime) {
|
||||
$expires->setTimezone(new DateTimeZone('GMT'));
|
||||
$expires = $expires->format(DateTime::RFC2822);
|
||||
}
|
||||
header('Expires: '.expires);
|
||||
header('Expires: '.$expires);
|
||||
}
|
||||
|
||||
static public function setETagHeader($etag) {
|
||||
if (empty($etag)) {
|
||||
return;
|
||||
}
|
||||
self::enableCaching();
|
||||
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) &&
|
||||
trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
|
||||
self::setStatus(self::STATUS_NOT_MODIFIED);
|
||||
|
@ -71,10 +92,12 @@ class OC_Response {
|
|||
if (empty($lastModified)) {
|
||||
return;
|
||||
}
|
||||
if (is_int($lastModified)) {
|
||||
$lastModified = gmdate(DateTime::RFC2822, $lastModified);
|
||||
}
|
||||
if ($lastModified instanceof DateTime) {
|
||||
$lastModified = $lastModified->format(DateTime::RFC2822);
|
||||
}
|
||||
self::enableCaching();
|
||||
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) &&
|
||||
trim($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModified) {
|
||||
self::setStatus(self::STATUS_NOT_MODIFIED);
|
||||
|
@ -82,4 +105,18 @@ class OC_Response {
|
|||
}
|
||||
header('Last-Modified: '.$lastModified);
|
||||
}
|
||||
|
||||
static public function sendFile($filepath=null) {
|
||||
$fp = fopen($filepath, 'rb');
|
||||
if ($fp) {
|
||||
self::setLastModifiedHeader(filemtime($filepath));
|
||||
self::setETagHeader(md5_file($filepath));
|
||||
|
||||
header('Content-Length: '.filesize($filepath));
|
||||
fpassthru($fp);
|
||||
}
|
||||
else {
|
||||
self::setStatus(self::STATUS_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 3.5 KiB |
|
@ -0,0 +1,875 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 13.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="140"
|
||||
height="32"
|
||||
viewBox="0 0 139.99999 32"
|
||||
enable-background="new 0 0 595.275 311.111"
|
||||
xml:space="preserve"
|
||||
inkscape:version="0.48.1 r9760"
|
||||
sodipodi:docname="logo-wide.svg"><metadata
|
||||
id="metadata327"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs325"><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_1_"
|
||||
id="linearGradient3353"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="288.49411"
|
||||
y1="55.888199"
|
||||
x2="288.49411"
|
||||
y2="339.22189" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_2_"
|
||||
id="linearGradient3355"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="251.2114"
|
||||
y1="55.888199"
|
||||
x2="251.2114"
|
||||
y2="339.22159" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_3_"
|
||||
id="linearGradient3357"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="293.22461"
|
||||
y1="55.888199"
|
||||
x2="293.22461"
|
||||
y2="339.22171" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_4_"
|
||||
id="linearGradient3359"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="375.33401"
|
||||
y1="55.888199"
|
||||
x2="375.33401"
|
||||
y2="339.22159" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_5_"
|
||||
id="linearGradient3361"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="334.49411"
|
||||
y1="55.888199"
|
||||
x2="334.49411"
|
||||
y2="339.22159" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_6_"
|
||||
id="linearGradient3363"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="458.42679"
|
||||
y1="55.8867"
|
||||
x2="458.42679"
|
||||
y2="339.2236" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_7_"
|
||||
id="linearGradient3365"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="413.16309"
|
||||
y1="55.888199"
|
||||
x2="413.16309"
|
||||
y2="339.22131" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_8_"
|
||||
id="linearGradient3367"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="290.76169"
|
||||
y1="55.8867"
|
||||
x2="290.76169"
|
||||
y2="339.2236" /><linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#SVGID_9_"
|
||||
id="linearGradient3369"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="346.77341"
|
||||
y1="55.888199"
|
||||
x2="346.77341"
|
||||
y2="339.22119" />
|
||||
<linearGradient
|
||||
y2="339.22189"
|
||||
x2="288.49411"
|
||||
y1="55.888199"
|
||||
x1="288.49411"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_1_">
|
||||
<stop
|
||||
id="stop261"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop263"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient
|
||||
y2="339.22159"
|
||||
x2="251.2114"
|
||||
y1="55.888199"
|
||||
x1="251.2114"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_2_">
|
||||
<stop
|
||||
id="stop268"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop270"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient
|
||||
y2="339.22171"
|
||||
x2="293.22461"
|
||||
y1="55.888199"
|
||||
x1="293.22461"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_3_">
|
||||
<stop
|
||||
id="stop275"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop277"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient
|
||||
y2="339.22159"
|
||||
x2="375.33401"
|
||||
y1="55.888199"
|
||||
x1="375.33401"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_4_">
|
||||
<stop
|
||||
id="stop282"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop284"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient
|
||||
y2="339.22159"
|
||||
x2="334.49411"
|
||||
y1="55.888199"
|
||||
x1="334.49411"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_5_">
|
||||
<stop
|
||||
id="stop289"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop291"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient
|
||||
y2="339.2236"
|
||||
x2="458.42679"
|
||||
y1="55.8867"
|
||||
x1="458.42679"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_6_">
|
||||
<stop
|
||||
id="stop296"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop298"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient
|
||||
y2="339.22131"
|
||||
x2="413.16309"
|
||||
y1="55.888199"
|
||||
x1="413.16309"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_7_">
|
||||
<stop
|
||||
id="stop303"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop305"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient
|
||||
y2="339.2236"
|
||||
x2="290.76169"
|
||||
y1="55.8867"
|
||||
x1="290.76169"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_8_">
|
||||
<stop
|
||||
id="stop310"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop312"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
<linearGradient
|
||||
y2="339.22119"
|
||||
x2="346.77341"
|
||||
y1="55.888199"
|
||||
x1="346.77341"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="SVGID_9_">
|
||||
<stop
|
||||
id="stop317"
|
||||
style="stop-color:#BED5E1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop319"
|
||||
style="stop-color:#567B8F"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
|
||||
</defs><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1280"
|
||||
inkscape:window-height="776"
|
||||
id="namedview323"
|
||||
showgrid="false"
|
||||
inkscape:zoom="3.4068286"
|
||||
inkscape:cx="79.998916"
|
||||
inkscape:cy="32.107419"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Layer_1"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true" />
|
||||
<pattern
|
||||
y="565.223"
|
||||
width="69"
|
||||
height="69"
|
||||
patternUnits="userSpaceOnUse"
|
||||
id="Polka_Dot_Pattern"
|
||||
viewBox="2.125 -70.896 69 69"
|
||||
overflow="visible">
|
||||
<g
|
||||
id="g4">
|
||||
<polygon
|
||||
fill="none"
|
||||
points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "
|
||||
id="polygon6" />
|
||||
<polygon
|
||||
fill="#F6BB60"
|
||||
points="71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896 "
|
||||
id="polygon8" />
|
||||
<g
|
||||
id="g10">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path12" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path14" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path16" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path18" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path20" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path22" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path24" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path26" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335 c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path28" />
|
||||
</g>
|
||||
<g
|
||||
id="g30">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128 c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path32" />
|
||||
</g>
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128 c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path34" />
|
||||
<g
|
||||
id="g36">
|
||||
<g
|
||||
id="g38">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path40" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path42" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path44" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path46" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path48" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path50" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path52" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path54" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path56" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path58" />
|
||||
</g>
|
||||
<g
|
||||
id="g60">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path62" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path64" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path66" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path68" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path70" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path72" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path74" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path76" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path78" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path80" />
|
||||
</g>
|
||||
<g
|
||||
id="g82">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path84" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path86" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path88" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path90" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path92" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path94" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path96" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path98" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path100" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path102" />
|
||||
</g>
|
||||
<g
|
||||
id="g104">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path106" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path108" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path110" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path112" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path114" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path116" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path118" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path120" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 C8.15-41.004,8.149-41.02,8.14-41.04"
|
||||
id="path122" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path124" />
|
||||
</g>
|
||||
<g
|
||||
id="g126">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path128" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path130" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path132" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path134" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path136" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path138" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path140" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path142" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path144" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path146" />
|
||||
</g>
|
||||
<g
|
||||
id="g148">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path150" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path152" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path154" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path156" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path158" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path160" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path162" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path164" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path166" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path168" />
|
||||
</g>
|
||||
<g
|
||||
id="g170">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path172" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path174" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path176" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path178" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path180" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path182" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path184" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path186" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path188" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-18.11,0.503-18.175,0.51-18.057 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path190" />
|
||||
</g>
|
||||
<g
|
||||
id="g192">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362C69-9.692,69.159-9.523,69.154-9.4c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path194" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path196" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path198" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path200" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path202" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path204" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path206" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053C17.933-7.969,17.839-8.227,18-8.34 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path208" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 C7.915-10.05,7.866-9.836,7.886-9.75C7.717-9.692,7.876-9.523,7.871-9.4C7.868-9.351,7.83-9.295,7.826-9.239 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C9.114-7.652,9.321-7.799,9.48-7.837c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path210" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 C0.254-10.05,0.205-9.836,0.225-9.75C0.056-9.692,0.215-9.523,0.21-9.4c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-8.671,0.501-8.456,0.668-8.325c0.19,0.148,0.365,0.572,0.608,0.631 C1.454-7.652,1.66-7.799,1.819-7.837C2-7.88,2.217-7.827,2.391-7.89c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46C3.477-8.933,3.471-8.995,3.5-9.071 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path212" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g214">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M69.439-2.778c0.018,0.072,0.008,0.127-0.026,0.19C69.361-2.487,69.3-2.525,69.248-2.46 c-0.051,0.062-0.099,0.276-0.079,0.362C69-2.04,69.159-1.871,69.154-1.748c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C70.397,0,70.604-0.146,70.763-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path216" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M61.778-2.778c0.018,0.072,0.007,0.127-0.026,0.19C61.7-2.487,61.64-2.525,61.587-2.46 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C62.737,0,62.943-0.146,63.103-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C61.915-3.117,61.78-3.02,61.781-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path218" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M54.118-2.778c0.018,0.072,0.007,0.127-0.026,0.19C54.04-2.487,53.98-2.525,53.927-2.46 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C55.077,0,55.283-0.146,55.442-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C54.255-3.117,54.12-3.02,54.121-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path220" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M46.458-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C47.416,0,47.623-0.146,47.782-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C46.594-3.117,46.459-3.02,46.46-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path222" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M38.797-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C39.756,0,39.962-0.146,40.122-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C38.934-3.117,38.799-3.02,38.8-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path224" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M31.137-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C32.095,0,32.302-0.146,32.461-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C31.273-3.117,31.139-3.02,31.14-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path226" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M23.477-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C24.435,0,24.642-0.146,24.801-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025"
|
||||
id="path228" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M15.816-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C16.774,0,16.981-0.146,17.14-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 C15.81-2.74,15.809-2.756,15.8-2.776"
|
||||
id="path230" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M8.156-2.778c0.018,0.072,0.007,0.127-0.026,0.19C8.077-2.487,8.018-2.525,7.965-2.46 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35C7.868-1.698,7.83-1.643,7.826-1.587 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C9.114,0,9.321-0.146,9.48-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C8.954-3.54,8.847-3.448,8.692-3.367 c-0.17,0.088-0.139,0.166-0.318,0.224C8.292-3.117,8.158-3.02,8.159-2.92C8.16-2.805,8.164-2.869,8.17-2.751 C8.15-2.74,8.149-2.756,8.14-2.776"
|
||||
id="path232" />
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M0.495-2.778c0.018,0.072,0.008,0.127-0.026,0.19C0.417-2.487,0.356-2.525,0.304-2.46 C0.253-2.397,0.205-2.184,0.225-2.098C0.056-2.04,0.215-1.871,0.21-1.748c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-1.019,0.501-0.804,0.668-0.673c0.19,0.148,0.365,0.572,0.608,0.631 C1.454,0,1.66-0.146,1.819-0.185C2-0.228,2.217-0.175,2.391-0.237c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46C3.477-1.28,3.471-1.343,3.5-1.419 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C1.293-3.54,1.187-3.448,1.031-3.367 c-0.17,0.088-0.139,0.166-0.318,0.224C0.632-3.117,0.498-3.02,0.498-2.92C0.5-2.805,0.503-2.869,0.51-2.751 C0.489-2.74,0.488-2.756,0.479-2.776"
|
||||
id="path234" />
|
||||
</g>
|
||||
</g>
|
||||
</pattern>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<g
|
||||
style="display:inline"
|
||||
id="g3154"
|
||||
transform="matrix(0.21384268,0,0,0.21384268,31.655324,-22.278409)"><circle
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="circle238"
|
||||
r="21.999001"
|
||||
cy="225.17101"
|
||||
cx="97.311996"
|
||||
sodipodi:cx="97.311996"
|
||||
sodipodi:cy="225.17101"
|
||||
sodipodi:rx="21.999001"
|
||||
sodipodi:ry="21.999001"
|
||||
d="m 119.311,225.17101 c 0,12.14971 -9.84929,21.999 -21.999004,21.999 -12.149712,0 -21.999,-9.84929 -21.999,-21.999 0,-12.14972 9.849288,-21.99901 21.999,-21.99901 12.149714,0 21.999004,9.84929 21.999004,21.99901 z" /><circle
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="circle240"
|
||||
r="22.000999"
|
||||
cy="225.17101"
|
||||
cx="364.82501"
|
||||
sodipodi:cx="364.82501"
|
||||
sodipodi:cy="225.17101"
|
||||
sodipodi:rx="22.000999"
|
||||
sodipodi:ry="22.000999"
|
||||
d="m 386.82601,225.17101 c 0,12.15081 -9.85018,22.00099 -22.001,22.00099 -12.15081,0 -22.001,-9.85018 -22.001,-22.00099 0,-12.15082 9.85019,-22.001 22.001,-22.001 12.15082,0 22.001,9.85018 22.001,22.001 z" /><path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="path242"
|
||||
d="m 135.313,202.966 v 30.074 c 0,7.801 6.324,14.123 14.123,14.123 7.803,0 14.125,-6.322 14.125,-14.123 0,-0.004 0,-30.074 0,-30.074"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="path244"
|
||||
d="m 163.561,202.966 v 30.074 c 0,7.801 6.324,14.123 14.125,14.123 7.801,0 14.125,-6.322 14.125,-14.123 0,-0.004 0,-30.074 0,-30.074"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="path246"
|
||||
d="m 319.578,162.962 v 70.078 c 0,7.801 6.322,14.123 14.123,14.123"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="path248"
|
||||
d="m 208.317,247.169 v -22.201 c 0,-12.15 9.85,-22 22,-22 12.152,0 22.002,9.85 22.002,22 0,0.006 0,22.201 0,22.201"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="path250"
|
||||
d="m 401.322,202.966 v 22.205 c 0,12.148 9.85,21.998 22,21.998 12.15,0 22.002,-9.85 22.002,-21.998 0,-0.008 0,-22.205 0,-22.205"
|
||||
inkscape:connector-curvature="0" /><path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="path252"
|
||||
d="m 303.146,176.839 c -19.421,0 -35.167,15.744 -35.167,35.166 0,19.422 15.746,35.164 35.167,35.164"
|
||||
inkscape:connector-curvature="0" /><polyline
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="polyline254"
|
||||
points="504.596,162.962 504.596,203.134 504.596,202.155 " /><path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:4;stroke-opacity:1"
|
||||
id="path256"
|
||||
d="m 490.236,247.157 c -4.275,0 -7.844,0 -7.848,0 -12.15,0 -22,-9.85 -22,-21.998 0,-12.15 9.85,-22 22,-22 l 22.207,-0.025 c 0,0 0.137,22.342 0,29.895 -0.138,7.552 -7.968,14.128 -14.359,14.128 z"
|
||||
inkscape:connector-curvature="0" /></g><circle
|
||||
sodipodi:ry="20.332001"
|
||||
sodipodi:rx="20.332001"
|
||||
sodipodi:cy="78.911003"
|
||||
sodipodi:cx="288.49399"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#1d2d44;stroke-width:4;stroke-opacity:1;display:inline"
|
||||
id="circle265"
|
||||
r="20.332001"
|
||||
cy="78.911003"
|
||||
cx="288.49399"
|
||||
transform="matrix(0.21384268,0,0,0.21384268,-45.328041,-8.5924791)" /><circle
|
||||
sodipodi:ry="37.242001"
|
||||
sodipodi:rx="37.242001"
|
||||
sodipodi:cy="149.577"
|
||||
sodipodi:cx="251.211"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#1d2d44;stroke-width:4;stroke-opacity:1;display:inline"
|
||||
id="circle272"
|
||||
r="37.242001"
|
||||
cy="149.577"
|
||||
cx="251.211"
|
||||
transform="matrix(0.21384268,0,0,0.21384268,-45.328041,-8.5924791)" /><circle
|
||||
sodipodi:ry="40.261002"
|
||||
sodipodi:rx="40.261002"
|
||||
sodipodi:cy="124.796"
|
||||
sodipodi:cx="293.22501"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#1d2d44;stroke-width:4;stroke-opacity:1;display:inline"
|
||||
id="circle279"
|
||||
r="40.261002"
|
||||
cy="124.796"
|
||||
cx="293.22501"
|
||||
transform="matrix(0.21384268,0,0,0.21384268,-45.328041,-8.5924791)" /><circle
|
||||
sodipodi:ry="37.242001"
|
||||
sodipodi:rx="37.242001"
|
||||
sodipodi:cy="108.472"
|
||||
sodipodi:cx="375.33401"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#1d2d44;stroke-width:4;stroke-opacity:1;display:inline"
|
||||
id="circle286"
|
||||
r="37.242001"
|
||||
cy="108.472"
|
||||
cx="375.33401"
|
||||
transform="matrix(0.21384268,0,0,0.21384268,-45.328041,-8.5924791)" /><circle
|
||||
sodipodi:ry="37.241001"
|
||||
sodipodi:rx="37.241001"
|
||||
sodipodi:cy="79.503998"
|
||||
sodipodi:cx="334.49301"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#1d2d44;stroke-width:4;stroke-opacity:1;display:inline"
|
||||
id="circle293"
|
||||
r="37.241001"
|
||||
cy="79.503998"
|
||||
cx="334.49301"
|
||||
transform="matrix(0.21384268,0,0,0.21384268,-45.328041,-8.5924791)" /><circle
|
||||
sodipodi:ry="40.261002"
|
||||
sodipodi:rx="40.261002"
|
||||
sodipodi:cy="147.563"
|
||||
sodipodi:cx="413.16299"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#1d2d44;stroke-width:4;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||
id="circle307"
|
||||
r="40.261002"
|
||||
cy="147.563"
|
||||
cx="413.16299"
|
||||
transform="matrix(0.21384268,0,0,0.21384268,-45.328041,-8.5924791)" /><circle
|
||||
sodipodi:ry="21.299"
|
||||
sodipodi:rx="21.299"
|
||||
sodipodi:cy="166.011"
|
||||
sodipodi:cx="290.76199"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#1d2d44;stroke-width:4;stroke-opacity:1;display:inline"
|
||||
id="circle314"
|
||||
r="21.299"
|
||||
cy="166.011"
|
||||
cx="290.76199"
|
||||
transform="matrix(0.21384268,0,0,0.21384268,-45.328041,-8.5924791)" /><path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#1d2d44;stroke-width:0.8553707;stroke-opacity:1;display:inline"
|
||||
id="path321"
|
||||
d="m 39.804227,20.419344 c 0,6.062012 -4.91496,10.976117 -10.9774,10.976117 -6.06244,0 -10.977185,-4.914105 -10.977185,-10.976117 0,-6.062654 4.914959,-10.9771861 10.977185,-10.9771861 6.062226,0 10.9774,4.9145321 10.9774,10.9771861 z" /></svg>
|
After Width: | Height: | Size: 108 KiB |
|
@ -0,0 +1,4 @@
|
|||
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
|
||||
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
|
||||
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
|
|
@ -34,11 +34,42 @@ abstract class Test_FileStorage extends UnitTestCase {
|
|||
$this->assertTrue($this->instance->is_readable('/'),'Root folder is not readable');
|
||||
$this->assertTrue($this->instance->is_dir('/'),'Root folder is not a directory');
|
||||
$this->assertFalse($this->instance->is_file('/'),'Root folder is a file');
|
||||
$this->assertEqual('dir',$this->instance->filetype('/'));
|
||||
|
||||
//without this, any further testing would be useless, not an acutal requirement for filestorage though
|
||||
$this->assertTrue($this->instance->is_writable('/'),'Root folder is not writable');
|
||||
}
|
||||
|
||||
public function testDirectories(){
|
||||
$this->assertFalse($this->instance->file_exists('/folder'));
|
||||
|
||||
$this->assertTrue($this->instance->mkdir('/folder'));
|
||||
|
||||
$this->assertTrue($this->instance->file_exists('/folder'));
|
||||
$this->assertTrue($this->instance->is_dir('/folder'));
|
||||
$this->assertFalse($this->instance->is_file('/folder'));
|
||||
$this->assertEqual('dir',$this->instance->filetype('/folder'));
|
||||
$this->assertEqual(0,$this->instance->filesize('/folder'));
|
||||
$this->assertTrue($this->instance->is_readable('/folder'));
|
||||
$this->assertTrue($this->instance->is_writable('/folder'));
|
||||
|
||||
$dh=$this->instance->opendir('/');
|
||||
$content=array();
|
||||
while($file=readdir($dh)){
|
||||
if($file!='.' and $file!='..'){
|
||||
$content[]=$file;
|
||||
}
|
||||
}
|
||||
$this->assertEqual(array('folder'),$content);
|
||||
|
||||
$this->assertFalse($this->instance->mkdir('/folder'));//cant create existing folders
|
||||
$this->assertTrue($this->instance->rmdir('/folder'));
|
||||
|
||||
$this->assertFalse($this->instance->file_exists('/folder'));
|
||||
|
||||
$this->assertFalse($this->instance->rmdir('/folder'));//cant remove non existing folders
|
||||
}
|
||||
|
||||
/**
|
||||
* test the various uses of file_get_contents and file_put_contents
|
||||
*/
|
||||
|
@ -58,6 +89,26 @@ abstract class Test_FileStorage extends UnitTestCase {
|
|||
$this->instance->file_put_contents('/lorem.txt','');
|
||||
$this->assertEqual('',$this->instance->file_get_contents('/lorem.txt'),'file not emptied');
|
||||
}
|
||||
|
||||
/**
|
||||
* test various known mimetypes
|
||||
*/
|
||||
public function testMimeType(){
|
||||
$this->assertEqual('httpd/unix-directory',$this->instance->getMimeType('/'));
|
||||
$this->assertEqual(false,$this->instance->getMimeType('/non/existing/file'));
|
||||
|
||||
$textFile=OC::$SERVERROOT.'/tests/data/lorem.txt';
|
||||
$this->instance->file_put_contents('/lorem.txt',fopen($textFile,'r'));
|
||||
$this->assertEqual('text/plain',$this->instance->getMimeType('/lorem.txt'));
|
||||
|
||||
$pngFile=OC::$SERVERROOT.'/tests/data/logo-wide.png';
|
||||
$this->instance->file_put_contents('/logo-wide.png',fopen($pngFile,'r'));
|
||||
$this->assertEqual('image/png',$this->instance->getMimeType('/logo-wide.png'));
|
||||
|
||||
$svgFile=OC::$SERVERROOT.'/tests/data/logo-wide.svg';
|
||||
$this->instance->file_put_contents('/logo-wide.svg',fopen($svgFile,'r'));
|
||||
$this->assertEqual('image/svg+xml',$this->instance->getMimeType('/logo-wide.svg'));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue