Compare commits

..

1 Commits

Author SHA1 Message Date
Piotr Sarnacki
c1d6674d04 [WIP] Don't wait for downloading user data when opening the app 2016-03-22 16:53:44 +01:00
147 changed files with 1000 additions and 656 deletions

View File

@ -39,6 +39,9 @@ install:
- npm install
- bower install
before_script:
- ruby ci/prepare_testem.rb
script:
- ember try $EMBER_VERSION

View File

@ -19,8 +19,12 @@ var App = Ember.Application.extend(Ember.Evented, {
podModulePrefix: config.podModulePrefix,
Resolver: Resolver,
lookup() {
return this.__container__.lookup.apply(this.__container__, arguments);
},
flash(options) {
return Ember.getOwner(Travis).lookup('controller:flash').loadFlashes([options]);
return Travis.lookup('controller:flash').loadFlashes([options]);
},
toggleSidebar() {

View File

@ -5,6 +5,8 @@ import config from 'travis/config/environment';
export default Ember.Component.extend({
routing: Ember.inject.service('-routing'),
permissions: Ember.inject.service(),
tagName: 'li',
classNameBindings: ['build.last_build.state'],
classNames: ['branch-row', 'row-li'],
@ -54,18 +56,8 @@ export default Ember.Component.extend({
}.property(),
canTrigger: function() {
var permissions;
if (!this.get('auth.signedIn')) {
return false;
} else {
permissions = this.get('auth.currentUser.permissions');
if (permissions.contains(parseInt(this.get('build.repository.id')))) {
return true;
} else {
return false;
}
}
}.property(),
return this.get('permissions').hasPermission(this.get('build.repository'));
}.property('permissions.all', 'build.repository'),
triggerBuild: function() {
var apiEndpoint, options, repoId;

View File

@ -4,6 +4,8 @@ import config from 'travis/config/environment';
import { hasAdminPermission, hasPushPermission } from 'travis/utils/permission';
export default Ember.Component.extend({
permissions: Ember.inject.service(),
tagName: 'li',
classNameBindings: ['repo.default_branch.last_build.state'],
classNames: ['rows', 'rows--dashboard'],
@ -16,13 +18,13 @@ export default Ember.Component.extend({
return githubCommitUrl(this.get('repo.slug'), this.get('repo.default_branch.last_build.commit.sha'));
}.property('repo'),
displayMenuTofu: function() {
return hasPushPermission(this.get('currentUser'), this.get('repo.id'));
},
displayMenuTofu: Ember.computed('permissions.all', 'repo', function() {
return this.get('permissions').hasPushPermission(this.get('repo'));
}),
displayActivateLink: function() {
return hasAdminPermission(this.get('currentUser'), this.get('repo.id'));
},
displayActivateLink: Ember.computed('permissions.all', 'repo', function() {
return this.get('permissions').hasAdminPermission(this.get('repo'));
}),
actions: {
tiggerBuild(branch) {

View File

@ -0,0 +1,10 @@
import Ember from 'ember';
import { githubCommit as githubCommitUrl } from 'travis/utils/urls';
import TravisRoute from 'travis/routes/basic';
import config from 'travis/config/environment';
export default Ember.Component.extend({
tagName: 'li',
classNameBindings: ['repo.lastBuildState'],
classNames: ['landing-row', 'row-li']
});

View File

@ -60,6 +60,8 @@ Object.defineProperty(Log.Limit.prototype, 'limited', {
export default Ember.Component.extend({
popup: Ember.inject.service(),
permissions: Ember.inject.service(),
classNameBindings: ['logIsVisible:is-open'],
logIsVisible: false,
currentUserBinding: 'auth.currentUser',
@ -190,11 +192,8 @@ export default Ember.Component.extend({
}.property('job.log.id', 'job.log.token'),
hasPermission: function() {
var permissions;
if (permissions = this.get('currentUser.permissions')) {
return permissions.contains(parseInt(this.get('job.repo.id')));
}
}.property('currentUser.permissions.length', 'job.repo.id'),
return this.get('permissions').hasPermission(this.get('job.repo'));
}.property('permissions.all', 'job.repo'),
canRemoveLog: function() {
var job;

View File

@ -1,9 +1,10 @@
import Ember from 'ember';
import config from 'travis/config/environment';
import { hasPermission, hasPushPermission } from 'travis/utils/permission';
export default Ember.Component.extend({
popup: Ember.inject.service(),
permissions: Ember.inject.service(),
classNames: ['option-button'],
classNameBindings: ['isOpen:display'],
isOpen: false,
@ -24,15 +25,15 @@ export default Ember.Component.extend({
}
},
displaySettingsLink: function() {
return hasPushPermission(this.get('currentUser'), this.get('repo.id'));
}.property('currentUser.pushPermissions.length', 'repo'),
return this.get('permissions').hasPushPermission(this.get('repo'));
}.property('permissions.all', 'repo'),
displayCachesLink: function() {
return hasPushPermission(this.get('currentUser'), this.get('repo.id')) && config.endpoints.caches;
}.property('currentUser.pushPermissions.length', 'repo'),
return this.get('permissions').hasPushPermission(this.get('repo')) && config.endpoints.caches;
}.property('permissions.all', 'repo'),
displayStatusImages: function() {
return hasPermission(this.get('currentUser'), this.get('repo.id'));
}.property('currentUser.permissions.length', 'repo.id')
return this.get('permissions').hasPermission(this.get('repo'));
}.property('permissions.all', 'repo'),
});

View File

@ -11,7 +11,7 @@ export default Ember.Controller.extend({
var user;
if ((user = this.get('model')) && user.get('isSyncing') && !user.get('syncedAt')) {
return Ember.run.scheduleOnce('routerTransitions', this, function() {
return Ember.getOwner(this).lookup('router:main').send('renderFirstSync');
return this.container.lookup('router:main').send('renderFirstSync');
});
}
}.observes('isSyncing', 'auth.currentUser')

View File

@ -76,7 +76,7 @@ var Controller = Ember.Controller.extend({
possiblyRedirectToGettingStartedPage() {
return Ember.run.scheduleOnce('routerTransitions', this, function() {
if (this.get('tab') === 'owned' && this.get('isLoaded') && this.get('repos.length') === 0) {
return Ember.getOwner(this).lookup('router:main').send('redirectToGettingStarted');
return this.container.lookup('router:main').send('redirectToGettingStarted');
}
});
},

View File

@ -2,6 +2,5 @@ import { timeAgoInWords, safe } from 'travis/utils/helpers';
import Ember from "ember";
export default Ember.Helper.helper(function(params) {
let date = new Date(params[0]);
return safe(moment(date).format('MMMM D, YYYY H:mm:ss') || '-');
return safe(moment(params[0]).format('MMMM D, YYYY H:mm:ss') || '-');
});

View File

@ -2,15 +2,16 @@ import config from 'travis/config/environment';
import TravisPusher from 'travis/utils/pusher';
var PusherInitializer, initialize;
initialize = function(applicationInstance) {
const app = applicationInstance.application;
initialize = function(data) {
var application;
application = data.application;
if (config.pusher.key) {
app.pusher = new TravisPusher(config.pusher, applicationInstance.lookup('service:ajax'));
app.register('pusher:main', app.pusher, {
application.pusher = new TravisPusher(config.pusher, data.container.lookup('service:ajax'));
application.register('pusher:main', application.pusher, {
instantiate: false
});
app.inject('route', 'pusher', 'pusher:main');
return app.pusher.store = applicationInstance.lookup('service:store');
application.inject('route', 'pusher', 'pusher:main');
return application.pusher.store = data.container.lookup('service:store');
}
};

View File

@ -30,7 +30,7 @@ var Broadcast = Model.extend({
Broadcast.reopenClass({
seen: function() {
var seenBroadcasts;
seenBroadcasts = Ember.getOwner(Travis).lookup('service:storage').getItem('travis.seen_broadcasts');
seenBroadcasts = Travis.lookup('service:storage').getItem('travis.seen_broadcasts');
if (seenBroadcasts != null) {
seenBroadcasts = JSON.parse(seenBroadcasts);
}

View File

@ -14,7 +14,7 @@ var Router = Ember.Router.extend({
// we should probably think about a more general way to
// do this, location should not know about auth status
return Location.create({
auth: Ember.getOwner(this).lookup('service:auth')
auth: this.container.lookup('service:auth')
});
}
}.property(),

View File

@ -1,7 +1,6 @@
import TravisRoute from 'travis/routes/basic';
import config from 'travis/config/environment';
import BuildFaviconMixin from 'travis/mixins/build-favicon';
import Ember from 'ember';
export default TravisRoute.extend(BuildFaviconMixin, {
needsAuth: false,
@ -100,7 +99,7 @@ export default TravisRoute.extend(BuildFaviconMixin, {
error(error) {
var authController;
if (error === 'needs-auth') {
authController = Ember.getOwner(this).lookup('controller:auth');
authController = this.container.lookup('controller:auth');
authController.set('redirected', true);
return this.transitionTo('auth');
} else {

View File

@ -1,8 +1,7 @@
import TravisRoute from 'travis/routes/basic';
import Ember from 'ember';
export default TravisRoute.extend({
setupController(controller) {
return Ember.getOwner(this).lookup('controller:repos').activate('owned');
return this.container.lookup('controller:repos').activate('owned');
}
});

View File

@ -1,13 +1,61 @@
import BasicRoute from 'travis/routes/basic';
import config from 'travis/config/environment';
import limit from 'travis/utils/computed-limit';
import Ember from 'ember';
export default BasicRoute.extend({
init: function() {
var repos, store;
store = this.store;
repos = Ember.ArrayProxy.extend({
isLoadedBinding: 'repos.isLoaded',
repos: [],
sorted: Ember.computed.sort('repos', 'sortedReposKeys'),
content: limit('sorted', 'limit'),
sortedReposKeys: ['sortOrderForLandingPage:desc'],
limit: 3
}).create();
this.set('repos', repos);
this.loadMoreRepos();
return this._super.apply(this, arguments);
},
loadMoreRepos() {
return this.store.findAll('build').then( (builds) => {
var repoIds, repos;
repoIds = builds.mapBy('data.repo').uniq();
repos = this.get('repos.repos');
return this.store.query('repo', {
ids: repoIds
}).then(function(reposFromRequest) {
return reposFromRequest.toArray().forEach(function(repo) {
if (!repos.contains(repo)) {
return repos.pushObject(repo);
}
});
});
});
},
activate() {
var interval;
this._super.apply(this, arguments);
interval = setInterval(() => {
return this.loadMoreRepos();
}, 60000);
this.set('interval', interval);
return this.controllerFor('top').set('landingPage', true);
},
deactivate() {
var interval;
this._super.apply(this, arguments);
if (interval = this.get('interval')) {
clearInterval(interval);
}
return this.controllerFor('top').set('landingPage', false);
},

View File

@ -17,7 +17,7 @@ export default TravisRoute.extend(ScrollResetMixin, {
},
setupController(controller, model) {
this.controllerFor('repos').activate('owned');
this.container.lookup('controller:repos').activate('owned');
if (model && !model.get) {
model = this.get('store').find('repo', model.id);
}

View File

@ -3,7 +3,7 @@ import TravisRoute from 'travis/routes/basic';
export default TravisRoute.extend({
setupController: function() {
$('body').attr('id', 'simple');
this.controllerFor('repos').activate('owned');
this.container.lookup('controller:repos').activate('owned');
return this._super.apply(this, arguments);
},
renderTemplate: function() {

View File

@ -172,12 +172,6 @@ export default TravisRoute.extend({
nationality: 'italy',
country: 'austria',
image: 'laura'
}, {
name: 'Maren Brechler',
title: 'Number Juggler',
nationality: 'germany',
country: 'germany',
image: 'maren'
}, {
name: 'Ana Rosas',
title: 'Software Baker',
@ -185,20 +179,6 @@ export default TravisRoute.extend({
nationality: 'mexico',
country: 'mexico',
image: 'ana'
}, {
name: 'Igor Wiedler',
title: 'webmaster',
handle: 'igorwhilefalse',
nationality: 'ukswitzerland',
country: 'germany',
image: 'igor'
}, {
name: 'Carmen Andoh',
title: 'SRE- Snazzy Rsync Empress',
handle: 'caelestisca',
nationality: 'usa',
country: 'usa',
image: 'carmen'
}
];
}

View File

@ -64,7 +64,7 @@ export default Ember.Service.extend({
success = options.success || (function() {});
options.success = (data, status, xhr) => {
if (data != null ? data.flash : void 0) {
Ember.getOwner(Travis).lookup('controller:flash').loadFlashes(data.flash);
Travis.lookup('controller:flash').loadFlashes(data.flash);
}
if (data != null) {
delete data.flash;
@ -75,7 +75,7 @@ export default Ember.Service.extend({
options.error = (data, status, xhr) => {
console.log("[ERROR] API responded with an error (" + status + "): " + (JSON.stringify(data)));
if (data != null ? data.flash : void 0) {
Ember.getOwner(Travis).lookup('controller:flash').pushObject(data.flash);
Travis.lookup('controller:flash').pushObject(data.flash);
}
if (data != null) {
delete data.flash;

View File

@ -214,7 +214,7 @@ export default Ember.Service.extend({
// as a direct response to either manual sign in or autoSignIn (right now
// we treat both cases behave the same in terms of sent events which I think
// makes it more complicated than it should be).
router = Ember.getOwner(this).lookup('router:main');
router = this.container.lookup('router:main');
try {
return router.send(name);
} catch (error1) {

View File

@ -0,0 +1,29 @@
import Ember from 'ember';
import { hasPermission, hasPushPermission, hasAdminPermission } from 'travis/utils/permission';
export default Ember.Service.extend({
auth: Ember.inject.service(),
currentUser: Ember.computed.alias('auth.currentUser'),
// This is computed property that can be used to allow any properties that
// use permissions service to add dependencies easier. So instead of depending
// on each of these things separately, we can depend on all
all: Ember.computed('currentUser.permissions', 'currentUser.permissions.[]',
'currentUser.pushPermissions', 'currentUser.pushPermissions.[]',
'currentUser.adminPermissions', 'currentUser.adminPermissions.[]',
function() {
return;
}),
hasPermission(repo) {
return hasPermission(this.get('currentUser'), repo);
},
hasPushPermission(repo) {
return hasPushPermission(this.get('currentUser'), repo);
},
hasAdminPermission(repo) {
return hasAdminPermission(this.get('currentUser'), repo);
}
});

View File

@ -46,7 +46,7 @@
font-size: .9em
word-wrap: break-word
a:not(.icon-close)
display: block
line-height: 1.45
text-decoration: underline
@ -57,15 +57,14 @@
height: auto
.icon-close
@extend %icon-line-cross
@extend %icon-line-failed
position: absolute
bottom: 0
right: 0
display: inline-block
width: 1em
height: 1em
width: 1.2em
height: 1.2em
background-repeat: no-repeat
cursor: pointer
@media #{$medium-up}
position: absolute
@ -73,7 +72,7 @@
left: 145px
width: 27em
height: auto
margin-left: -0.4em
margin-left: -0.7em
.centered &
left: 133px
&:after

View File

@ -16,9 +16,8 @@
background-color: $oxide-blue
.sync-last
position: absolute
right: 9em
left: -15em
top: 0
width: 170%
z-index: -1
transition: transform 150ms ease, opacity 250ms ease
transform: translateX(80%)

View File

@ -3,17 +3,18 @@
max-width: 900px
margin: auto
h1
color: $cement-grey
color: #808080
font-size: 36px
margin-bottom: 1em
font-weight: 300
line-height: 1.1
h2
color: $turf-green
color: #35a764
font-size: 22px
margin-bottom: 1em
font-weight: 300
p, li
color: #666
font-size: $font-size-m
line-height: 25px
@ -75,3 +76,10 @@
strong
text-transform: uppercase
font-style: normal
.note--info
background-color: #e7eeee
color: #3e8987
code
color: #267c8d
background-color: white

View File

@ -1,3 +1,8 @@
$teal: #40A3AD
$green: #39A85B
$red: #DB4242
$yellow: #E5C025
$grey: #858585
.landing-pro
@ -39,10 +44,10 @@
border-radius: 2px
font-size: 27px
text-decoration: none
background-color: $turf-green
background-color: $green
&:hover
color: white
background-color: lighten($turf-green, .2)
background-color: #73c78d
.hero-button
@extend .landing-button
@ -194,22 +199,22 @@
.h1--grey
@extend %h1
@include linkStyle
color: $asphalt-grey !important
color: $grey !important
a
color: $asphalt-grey
color: $grey
.h1--teal
@extend %h1
font-size: 64px
color: $oxide-blue !important
color: #408692 !important
.h1--green
@extend %h1
color: $turf-green !important
color: $green !important
.h1--red
@extend %h1
color: $brick-red !important
color: $red !important
%h2
margin: 0 0 .5em
@ -219,19 +224,19 @@
.h2--grey
@extend %h2
color: $asphalt-grey
color: $grey
.h2--green
@extend %h2
color: $turf-green
color: $green
.h2--red
@extend %h2
color: $brick-red
color: $red
.h2--teal
@extend %h2
color: $oxide-blue
color: $teal
%h3
margin: .5em 0
@ -249,19 +254,19 @@
.h3--teal
@extend %h3
color: $oxide-blue
color: $teal
.h3--red
@extend %h3
color: $brick-red
color: $red
.h3--green
@extend %h3
color: $turf-green
color: $green
.h3--yellow
@extend %h3
color: $dozer-yellow
color: $yellow
.text-big
@include linkStyle

View File

@ -11,14 +11,14 @@
background-color: #ffffff
background-image: inline-image('landing-page/signingithub.svg')
background-size: 16px 16px
border: 2px solid rgba($cement-grey, .4)
color: $cement-grey
border: 2px solid #e4e7e7
color: #a0a8a8
.button--signingin
border: 2px solid $turf-green
border: 2px solid #3FA75F
.button--signin:hover
background-color: $turf-green
background-color: #73c78d
background-image: inline-image('landing-page/signingithub-hover.svg')
border: 2px solid $turf-green
border: 2px solid #73c78d
color: #fff
.landing-centered-wrapper
@ -37,7 +37,7 @@
font-size: 5em
line-height: 1em
font-weight: 300
color: $cement-grey
color: #8f9294
margin-bottom: 0
.hero, .oss-testing, .customers, .recent-builds, .free-for-oss, .private-repos, .features-list, .build-flows, .user-testimonials
@ -52,10 +52,11 @@
font-size: 3.3em
line-height: 1.15em
font-weight: 300
color: $turf-green
color: #39a85b
p
line-height: 1.5em
font-color: #606162
font-size: 1.7em
.hero.z-1
@ -77,13 +78,13 @@
margin-bottom: -192px
#laptop img
border: 2px solid lighten($cement-grey, 20)
border: 2px solid #d8dadc
border-radius: 2px
.hero
background-color: $pebble-grey
background-color: #f6f6f6
h1
color: $oxide-blue
color: #339999
line-height: 1.2em
margin-bottom: 0
@ -95,7 +96,7 @@
display: none
.button
background-color: $turf-green
background-color: #39a85b
color: #fff
font-size: 2em
font-weight: 300
@ -105,7 +106,7 @@
border: 0
&:hover
background-color: lighten($turf-green, 20)
background-color: #73c78d
.sign-in-mascot
padding-right: 10px
@ -129,10 +130,6 @@
br.mobile-break
display: none
.os-numbers
width: 80%
@media #{$medium-up}
width: 60%
.customers
text-align: center
@ -141,6 +138,44 @@
text-align: left
padding: 0 0 0 12%
.recent-builds
background-color: #f6f6f6
min-height: 44rem
.recent-builds-text
text-align: center
h2
color: #db4141
text-align: right
margin: 0
a
color: #828282
p
text-align: right
margin-top: 0.5em
margin-bottom: 2em
img
margin-bottom: 20px
ul
padding-left: 0
li
background-color: #fff
border-radius: 4px
color: #828282
font-weight: 400
margin-bottom: 20px
list-style-type: none
position: relative
height: 120px
width: 100%
padding: 10px 0 0 60px
text-align: left
.free-for-oss
text-align: center
@ -157,16 +192,11 @@
br.mobile-no-break
display: inline-block
.os-numbers
width: 80%
@media #{$medium-up}
width: 60%
.private-repos
text-align: center
h2
color: $oxide-blue
color: #339999
margin: 0
text-align: right
@ -185,12 +215,15 @@
display: inline-block
.features-list
background-color: #f6f6f6
h2
margin: 0
h3
font-size: 1.4em
font-weight: 300
color: #413c3c
text-align: center
margin-bottom: 35px
padding-top: 40px
@ -198,6 +231,7 @@
p
font-size: 1.15em
font-weight: 300
color: #606162
text-align: center
br.mobile-break
@ -244,6 +278,7 @@
margin-top: 1.6rem;
li
font-color: #606162
font-size: 1.7em
line-height: 1.7em
&:before
@ -258,7 +293,7 @@
text-align: center
h2
color: $cement-grey
color: #909295
h2#pr-bf-margin
margin-top: 90px
@ -269,14 +304,14 @@
width: 120px
p
font-size: 13px
font-size: 1em
line-height: 1.5em
color: $asphalt-grey
color: #5f6062
.divider-line-horizontal
width: 50px
height: 3px
background: lighten($cement-grey, 30)
background: #eaeaec
display: inline-block
margin-bottom: 75px
@ -287,11 +322,13 @@
margin-bottom: 50px
h2
color: $oxide-blue
color: #418793
text-align: right
p
font-size: 1.2em
font-weight: 300
color: #606162
margin: 0
display: inline-block
@ -370,7 +407,7 @@
.build-flows .branch-bf .divider-line-vertical
width: 3px
height: 40px
background: lighten($cement-grey, 30)
background: #eaeaec
display: inline-block
margin-bottom: 10px
@ -422,6 +459,20 @@
.navigation-nested
background-color: white
.landing-rows
list-style: none
margin: 0
@media #{$small-only}
padding: 0
.landing-row
.two-line
padding-left: 2rem
h2
padding-left: .5rem
font-size: 18px
.landing,
.landing-pro
background-color: white

View File

@ -19,13 +19,13 @@
margin: .5em 0 0
.font-light
font-weight: 300
color: $oxide-blue
color: $teal
.font-regular
font-weight: 400
color: $dozer-yellow
color: #D3B01E
.font-semibold
font-weight: 600
color: $asphalt-grey
color: $grey
.list--colors
@extend %list
@ -39,15 +39,15 @@
height: 3em
margin-bottom: .5em
.colors-sample--teal
background-color: $oxide-blue
background-color: $teal
.colors-sample--green
background-color: $turf-green
background-color: $green
.colors-sample--yellow
background-color: $canary-yellow
background-color: $yellow
.colors-sample--red
background-color: $brick-red
background-color: $red
.colors-sample--grey
background-color: $asphalt-grey
background-color: #666
.list--mascot
@extend %list
@ -91,6 +91,3 @@
margin-bottom: 3em
@media #{$medium-up}
margin-bottom: 0
.text-logo
margin: 0 auto 3em

View File

@ -12,7 +12,7 @@
margin-bottom: 2em
border:
width: 2px
color: rgba($cement-grey, .2)
color: #E8E8E8
style: solid
@media #{$medium-up}
@ -52,19 +52,19 @@
color: $color
.plan--red
+colorPlans($brick-red, lighten($brick-red, 40), false)
+colorPlans($red, #FCF0F0, false)
.list--check li:before
background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjREI0MjQyIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+")
.plan--green
+colorPlans($turf-green, lighten($turf-green, 10))
+colorPlans($green, #73c78d)
.list--check li:before
background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjMzlBODVCIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+")
.plan--teal
+colorPlans($oxide-blue, lighten($oxide-blue, 10))
+colorPlans($teal, #8CC8CE)
.list--check li:before
background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjNDBBM0FEIiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+")
.plan--yellow
+colorPlans($dozer-yellow, lighten($dozer-yellow, 10))
+colorPlans($yellow, #EFD97C)
.list--check li:before
background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKCSB2aWV3Qm94PSIwIDAgMjAgMjAiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDIwIDIwIiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IlBhc3NlZCI+Cgk8Zz4KCQk8cGF0aCBmaWxsPSIjRTVDMDI1IiBkPSJNOS42LDE0LjRjLTAuMSwwLTAuMy0wLjEtMC40LTAuMWwtNC0zLjNjLTAuMy0wLjItMC4zLTAuNi0wLjEtMC45UzUuOCw5LjgsNi4xLDEwbDMuNCwyLjhsNC45LTcuNQoJCQlDMTQuNiw1LDE1LDQuOSwxNS4zLDUuMWMwLjMsMC4yLDAuNCwwLjYsMC4yLDAuOWwtNS4zLDguMUMxMC4xLDE0LjMsOS45LDE0LjQsOS42LDE0LjRDOS43LDE0LjQsOS43LDE0LjQsOS42LDE0LjR6Ii8+Cgk8L2c+CjwvZz4KPC9zdmc+")
@ -129,7 +129,7 @@
flex: 0 0 100%
padding: 1em 1.5em 1.7em
margin-bottom: 2em
border: solid 1px rgba($cement-grey, .2)
border: solid 1px #E8E8E8
@media #{$medium-up}
flex: 0 0 48%

View File

@ -43,11 +43,11 @@ $color-bg-log-fold-highlight: #777
$ansi-black: #4E4E4E
$ansi-black-bold: #7C7C7C
$ansi-red: #FF6C60
$ansi-red-bold: #FF9B93
$ansi-red-bold: #FFB6B0
$ansi-green: #00AA00
$ansi-green-bold: #B1FD79
$ansi-green-bold: #CEFFAB
$ansi-yellow: #FFFFB6
$ansi-yellow-bold: #FFFF91
$ansi-yellow-bold: #FFFFCB
$ansi-blue: #96CBFE
$ansi-blue-bold: #B5DCFE
$ansi-magenta: #FF73FD

View File

@ -1,7 +1,6 @@
{{#if allHooks.isLoaded}}
<header>
{{#unless config.enterprise}}
<header>
{{#if config.billingEndpoint}}
<div class="cta-btn">
{{#if subscribeButtonInfo.subscribed}}
@ -15,7 +14,6 @@
{{/if}}
</div>
{{/if}}
{{/unless}}
<div class="profile-header">
<h1>{{accountName}}</h1>

View File

@ -0,0 +1,108 @@
<div class="two-line row-header fade-out">
<div class="row-name row-color">
<h3>{{#link-to "owner" repo.owner}}
{{status-icon status=repo.lastBuildState}}
<span class="label-align">{{repo.owner}}</span>{{/link-to}}
</h3>
<h2>{{#link-to "repo" repo.owner repo.name}}
<span class="label-align">{{repo.name}}</span>
{{/link-to}}
</h2>
</div>
</div>
<div class="two-line">
<div class="row-number">
<div class="row-item row-color">
{{#link-to "build" repo repo.lastBuildId}}
<span class="icon">
<svg version="1.1" id="Layer_1" x="0px" y="0px"
viewBox="-289 191 20 20" style="enable-background:new -289 191 20 20;" xml:space="preserve">
<path fill="#A5ACAD" class="st0" d="M-272.4,198.4C-272.4,198.4-272.4,198.4-272.4,198.4l-3.4,0l0.3-3.3c0-0.3-0.2-0.6-0.5-0.6
c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.4l-3.2,0l0.3-3.6c0-0.3-0.2-0.6-0.5-0.6c-0.3,0-0.6,0.2-0.6,0.5l-0.3,3.7l-3.2,0
c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5c0,0,0,0,0,0l3.1,0l-0.2,2.9l-3.5,0c-0.3,0-0.5,0.2-0.5,0.6c0,0.3,0.2,0.5,0.5,0.5
c0,0,0,0,0,0l3.4,0l-0.3,3.3c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.4l3.2,0l-0.3,3.6
c0,0.3,0.2,0.6,0.5,0.6c0,0,0,0,0,0c0.3,0,0.5-0.2,0.5-0.5l0.3-3.7l3.2,0c0.3,0,0.5-0.2,0.5-0.6c0-0.3-0.2-0.5-0.5-0.5c0,0,0,0,0,0
l-3.1,0l0.2-2.9l3.5,0c0.3,0,0.5-0.2,0.5-0.6C-271.8,198.7-272.1,198.4-272.4,198.4z M-277.2,202.4l-3.2,0l0.2-2.9l3.2,0
L-277.2,202.4z"/>
</svg>
</span>
<span class="label-align">
{{repo.lastBuildNumber}} {{repo.lastBuildState}}</span>
{{/link-to}}
</div>
</div>
<div class="row-calendar">
<div class="row-item" title="{{repo.lastBuildFinishedAt}}">
<span class="icon">
<svg viewBox="0 0 20 20">
<g id="Cal">
<path fill="#A7AEAE" d="M16.7,2.5H3.3C3,2.5,2.8,2.7,2.8,3V17c0,0.3,0.2,0.5,0.5,0.5h13.4c0.3,0,0.5-0.2,0.5-0.5V3
C17.2,2.7,17,2.5,16.7,2.5z M16.2,3.4v3.1H3.8V3.4H16.2z M3.8,16.6v-9h12.5v9H3.8z"/>
<path fill="#A7AEAE" d="M8.7,13.4c-0.1,0-0.3,0-0.4,0c0.2-0.2,0.4-0.4,0.5-0.6c0.2-0.2,0.3-0.4,0.5-0.6c0.1-0.2,0.2-0.4,0.3-0.6
c0.1-0.2,0.1-0.4,0.1-0.6c0-0.2,0-0.4-0.1-0.6c-0.1-0.2-0.2-0.3-0.3-0.4C9.2,10,9.1,9.9,8.9,9.8C8.7,9.7,8.5,9.7,8.3,9.7
C8,9.7,7.7,9.8,7.5,9.9C7.2,10,7,10.2,6.8,10.4L7.3,11c0.1-0.1,0.2-0.2,0.4-0.3c0.1-0.1,0.3-0.1,0.4-0.1c0.2,0,0.4,0.1,0.5,0.2
c0.1,0.1,0.2,0.3,0.2,0.5c0,0.2,0,0.3-0.1,0.5c-0.1,0.2-0.2,0.4-0.4,0.6c-0.2,0.2-0.4,0.4-0.6,0.7c-0.2,0.2-0.5,0.5-0.8,0.8v0.6
H10v-0.9H9.1C9,13.4,8.8,13.4,8.7,13.4z"/>
<path fill="#A7AEAE" d="M10.6,10.7h2c-0.2,0.3-0.4,0.6-0.5,0.8c-0.1,0.3-0.3,0.6-0.4,0.8c-0.1,0.3-0.2,0.6-0.2,0.9
c0,0.3-0.1,0.7-0.1,1h1c0-0.4,0-0.8,0.1-1.2c0-0.3,0.1-0.7,0.2-0.9c0.1-0.3,0.2-0.6,0.4-0.9c0.2-0.3,0.4-0.6,0.6-0.9V9.8h-3.1
V10.7z"/>
</g>
</svg>
</span>
<time class="label-align" datetime="{{repo.lastBuildFinishedAt}}">
{{landing-page-last-build-time repo.lastBuildFinishedAt}}</time>
</div>
</div>
</div>
<div class="two-line">
<div class="row-commit">
<div class="row-item">
<span class="icon">
<svg x="0px" y="0px" viewBox="2 0 20 20" xml:space="preserve">
<g id="Commit">
<path fill="#A7AEAE" d="M7.8,17.5c-0.3,0-0.5-0.2-0.5-0.5l0-1c-0.4,0-1,0.1-1.4-0.1c-0.4-0.1-1.3-0.5-1.8-1.7
c-0.1-0.2-0.3-0.4-0.4-0.6c-0.1-0.1-0.2-0.3-0.3-0.4C3,12.8,3,12,3.3,11.5c0.3-0.4,0.7-0.5,1.2-0.3c0.7,0.2,1.1,0.9,1.4,1.3
c0.1,0.1,0.1,0.2,0.2,0.2c0.4,0.4,1,0.3,1.4,0.1c0.1-0.1,0.2-0.2,0.3-0.3c-0.1,0-0.1,0-0.2,0c-0.7-0.1-1.3-0.4-1.9-0.7
c-0.2-0.2-0.6-0.4-0.8-0.7c-0.3-0.3-0.5-0.7-0.7-1.2C4.1,9.4,4,9,3.9,8.5c0-0.4-0.1-0.9,0-1.4C4,6.5,4.2,6,4.5,5.5
c0.1-0.1,0.1-0.2,0.2-0.3c0,0,0-0.1,0-0.1c-0.1-0.3-0.1-0.6-0.1-1c0-0.4,0.1-0.8,0.3-1.2C5,2.6,5.2,2.5,5.5,2.5
c0.3,0,0.8,0.1,1.2,0.3c0.4,0.2,0.8,0.4,1.2,0.7c0.5-0.1,1-0.2,1.6-0.2c0.4,0,1.6,0,2,0c0.5,0,1,0.1,1.4,0.2l0.2-0.1
c0.2-0.1,0.5-0.3,0.7-0.4c0.4-0.2,0.7-0.3,1.1-0.3c0.1,0,0.2,0,0.3,0c0.3,0,0.5,0.1,0.6,0.4c0.2,0.6,0.4,1.2,0.2,2l0,0.1
c0,0.1,0,0.2-0.1,0.3c0.5,0.6,0.7,1.3,0.8,2.1c0,0.3,0,0.6,0,0.9c0,0.5-0.1,1-0.2,1.4c-0.2,0.5-0.4,1-0.7,1.4
c-0.3,0.4-0.7,0.6-1,0.8c-0.6,0.3-1.2,0.6-1.8,0.7c0.2,0.4,0.3,0.8,0.3,1.3c0,0,0,0,0,0c0,0.8,0,3.2,0,3.2c0,0.3-0.2,0.5-0.5,0.5
L7.8,17.5L7.8,17.5z M7.8,15.1c0.1,0,0.2,0,0.3,0.1c0.1,0.1,0.2,0.2,0.2,0.3l0,1l4.2,0c0-0.7,0-2.1,0-2.7c0-0.4-0.1-0.7-0.2-1
c-0.1-0.2-0.1-0.3-0.2-0.3l0.3-0.4l0,0L12,12.5c-0.1-0.1-0.1-0.3-0.1-0.5c0.1-0.2,0.2-0.3,0.4-0.3l0.3,0c0.7-0.1,1.3-0.3,1.9-0.7
c0.3-0.2,0.6-0.4,0.7-0.6c0.2-0.3,0.4-0.6,0.5-1C15.9,9,15.9,8.6,16,8.1c0-0.2,0-0.5,0-0.7c-0.1-0.7-0.3-1.2-0.7-1.7
c-0.2-0.2-0.2-0.4-0.1-0.6c0-0.1,0.1-0.2,0.1-0.3l0-0.1c0.1-0.4,0-0.8-0.1-1.2c0,0,0,0-0.1,0c-0.2,0-0.5,0.1-0.7,0.2
c-0.2,0.1-0.4,0.2-0.7,0.4l-0.4,0.2c-0.1,0.1-0.3,0.1-0.4,0.1c-0.5-0.1-0.9-0.2-1.4-0.2c-0.4,0-1.5,0-1.9,0C9,4.1,8.5,4.2,8,4.4
c-0.1,0-0.3,0-0.5-0.1C7.1,4,6.7,3.8,6.3,3.6C6.1,3.5,5.9,3.5,5.7,3.5C5.6,3.7,5.6,4,5.6,4.2c0,0.3,0,0.5,0.1,0.7
c0,0.1,0,0.1,0.1,0.2c0.1,0.2,0,0.4-0.1,0.5L5.5,5.8C5.5,5.9,5.4,6,5.3,6.1C5.1,6.4,4.9,6.8,4.8,7.3c-0.1,0.4,0,0.8,0,1.1
c0,0.4,0.1,0.8,0.2,1.2c0.1,0.4,0.3,0.7,0.5,0.9C5.8,10.7,6,10.9,6.2,11c0.5,0.3,1,0.5,1.6,0.6c0.2,0,0.7,0.1,0.7,0.1
c0.1,0,0.3,0.1,0.3,0.2c0.1,0.1,0.1,0.2,0.1,0.4c0,0.1-0.3,1-0.9,1.4c-0.7,0.4-1.8,0.5-2.5-0.3c-0.1-0.1-0.2-0.2-0.3-0.3
c-0.2-0.3-0.6-0.8-1-1c-0.1,0-0.1,0-0.1,0c0,0,0,0-0.1,0.1c0,0.2,0,0.4,0.1,0.6c0.1,0.1,0.2,0.2,0.3,0.4c0.2,0.3,0.4,0.5,0.5,0.8
c0.4,0.8,1,1.1,1.2,1.2C6.6,15.2,7.4,15.1,7.8,15.1C7.7,15.1,7.7,15.1,7.8,15.1z"/>
</g>
</svg>
</span>
<span class="label-align">
{{format-sha repo.lastBuild.commit.sha}}</span>
</div>
</div>
<div class="row-commiter">
<div class="row-item">
<span class="icon">
<svg version="1.1" id="Layer_1" x="0px" y="0px"
viewBox="0 0 20 20" enable-background="new 0 0 20 20" xml:space="preserve">
<g id="Push">
<path fill="#A7AEAE" d="M16.9,9.4h-3.5c-0.3-1.6-1.7-2.8-3.4-2.8S6.9,7.8,6.6,9.4H3.1c-0.3,0-0.6,0.3-0.6,0.6s0.3,0.6,0.6,0.6h3.5
c0.3,1.6,1.7,2.8,3.4,2.8s3.1-1.2,3.4-2.8h3.5c0.3,0,0.6-0.3,0.6-0.6S17.2,9.4,16.9,9.4z M10,12.2c-1.2,0-2.2-1-2.2-2.2
c0-1.2,1-2.2,2.2-2.2c1.2,0,2.2,1,2.2,2.2c0,0,0,0,0,0c0,0,0,0,0,0C12.2,11.2,11.2,12.2,10,12.2z"/>
</g>
</svg>
</span><span class="label-align">{{repo.lastBuild.commit.branch}}</span>
</div>
</div>
</div>

View File

@ -13,6 +13,16 @@
<span class="label-align">This job is running on our legacy infrastructure. Please read <a href="http://docs.travis-ci.com/user/migrating-from-legacy/?utm_source=legacy-notice&utm_medium=banner&utm_campaign=legacy-upgrade" title="Migrating from legacy">our docs on how to upgrade</a>.</span></p>
{{/if}}
{{/if}}
{{#if job.displayGceNotice}}
{{#if job.isFinished}}
<p class="notice--blue"><span class="icon-flag"></span>
<span class="label-align">This job ran on our new platform for Precise builds. Please read <a href="https://blog.travis-ci.com/2015-11-27-moving-to-a-more-elastic-future" title="Blog post on infrastructure migration">our blog post for more information</a>.</span></p>
{{else}}
<p class="notice--blue"><span class="icon-flag"></span>
<span class="label-align">This job is running on our new platform for Legacy Precise builds. Please read <a href="https://blog.travis-ci.com/2015-11-27-moving-to-a-more-elastic-future" title="Blog post on infrastructure migration">our blog post for more information</a>.</span></p>
{{/if}}
{{/if}}
{{/if}}
{{/unless}}

View File

@ -1,6 +1,6 @@
<figure class="team-image">
<img class="front" src="../images/team/team-{{member.image}}.png" alt="{{member.name}}">
<img class="back" src="../images/team/{{member.image}}-animated.gif" alt="{{member.name}} gif">
<img class="front" src="../images/team/team-{{member.image}}.png" alt="">
<img class="back" src="../images/team/{{member.image}}-animated.gif" alt="">
</figure>
<h3 class="team-name">{{member.name}}</h3>
<p class="team-title">{{member.title}}</p>
@ -8,7 +8,7 @@
<p class="team-handle"><a href="https://twitter.com/{{member.handle}}" title="{{member.name}} on Twitter">@{{member.handle}}</a></p>
{{/if}}
<div class="team-flags">
<img src="../images/pro-landing/flag-{{member.nationality}}.svg" alt="flag {{member.nationality}}" title="is from {{member.nationality}}">
<img src="../images/pro-landing/flag-{{member.nationality}}.svg" alt="flag {{member.nationality}}">
<span class="flag-divider">/</span>
<img src="../images/pro-landing/flag-{{member.country}}.svg" alt="flag {{member.country}}" title="lives in {{member.country}}">
<img src="../images/pro-landing/flag-{{member.country}}.svg" alt="flag {{member.country}}">
</div>

View File

@ -22,6 +22,9 @@
<h2>Add .travis.yml file to your repository</h2>
<p>In order for Travis CI to build your project, you need to tell the systems a little bit about it. You'll need to add a file named .travis.yml to the root of your repository.</p>
<p>If .travis.yml is not in the repository, is misspelled or is not valid YAML, Travis CI will ignore it.</p>
<p class="note note--info">
<strong>Note:</strong> The <code>language</code> value is case-sensitive. If you set <code>language: C</code>, for example, your project will be considered a Ruby project.
</p>
<p>Here you can find some of our basic <a href="http://docs.travis-ci.com/user/language-specific/" title="">language examples</a>.</p>
</div>
</li>

View File

@ -1,7 +1,7 @@
{{#travis-layout layoutName="layouts/landing-page"}}
<div id="landing" class="landing">
<div class="row hero z-1">
<section class="landing-centered-wrapper">
<div class="landing-centered-wrapper">
<div class="large-12 columns" id="hero-copy">
<h1>Test and Deploy with Confidence</h1>
<p>Easily sync your GitHub projects with Travis CI<br class="mobile-break"> and youll be testing your code in minutes!</p>
@ -16,26 +16,26 @@
</div>
<div class="large-12 columns laptop-wrapper">
<div id="laptop">
<img src="../images/landing-page/laptop.png" alt="Travis CI screenshot">
<img src="../images/landing-page/laptop.png">
</div>
</div>
</div>
</section>
</div>
<div class="row oss-testing">
<section class="landing-centered-wrapper">
<div class="landing-centered-wrapper">
<div class="large-12 columns">
<h2>The home of<br class="mobile-break"> open source testing</h2>
<p>Over 300k open source projects<br class="mobile-break"> and 235k users are testing on Travis CI.</p>
<img src="../images/landing-page/customer-numbers.svg" alt="Open source project numbers" class="os-numbers">
<p>Over 200k open source projects<br class="mobile-break"> and 126k users are testing on Travis CI.</p>
<img src="../images/landing-page/customer-numbers.svg">
</div>
</div>
</section>
</div>
<div class="row customers">
<div class="landing-centered-wrapper">
<div class="medium-6 columns">
<img src="../images/landing-page/customers-temp-together.svg" alt="customer logos">
<img src="../images/landing-page/customers-temp-together.svg">
</div>
<div class="medium-6 columns">
<p class="left">Some pretty awesome companies<br> and projects are using us.</p>
@ -43,17 +43,37 @@
</div>
</div>
<div class="row recent-builds">
<div class="landing-centered-wrapper">
<div class="medium-6 columns recent-builds-text">
<div class="landing-vert-center-m">
<h2>Every minute theres<br>a new build being run</h2>
<p>Here are just a few projects<br>currently running on Travis CI</p>
</div>
</div>
<div class="medium-6 columns">
<ul class="landing-rows">
{{#each repos as |repo|}}
{{landing-row repo=repo}}
{{else}}
{{loading-indicator}}
{{/each}}
</ul>
</div>
</div>
</div>
<div class="row free-for-oss">
<section class="landing-centered-wrapper">
<div class="landing-centered-wrapper">
<div class="large-12 columns">
<h1>Testing your open source<br class="mobile-no-break"> project is 10000% free</h1>
<p><span class="bold-italic">Seriously. Always.</span> We like to think of it as our way of giving<br>back to a community that gives us so much as well.</p>
</div>
</section>
</div>
</div>
<div class="row private-repos">
<section class="landing-centered-wrapper">
<div class="landing-centered-wrapper">
<div class="medium-6 columns mobile-envelope">
<img src="../images/landing-page/envelope.svg">
</div>
@ -65,13 +85,13 @@
</div>
</div>
<div class="medium-6 columns desktop-envelope">
<img src="../images/landing-page/envelope.svg" alt="envelope">
<img src="../images/landing-page/envelope.svg">
</div>
</div>
</section>
</div>
<div class="row features-list">
<section class="landing-centered-wrapper">
<div class="landing-centered-wrapper">
<div class="large-6 columns features-callouts">
<div class="landing-vert-center-s">
<div class="medium-6 columns">
@ -105,16 +125,16 @@
<li>Did we say free for Open Source already?</li>
</ul>
</div>
</section>
</div>
</div>
<div class="row build-flows">
<section class="landing-centered-wrapper">
<div class="landing-centered-wrapper">
<div class="large-12 columns">
<h2>Branch build flow</h2>
<div class="branch-bf">
<div class="bf">
<img src="../images/landing-page/push-icon-1.svg" alt="GitHub logo">
<img src="../images/landing-page/push-icon-1.svg">
<p>You push your<br>code to GitHub</p>
</div>
<div class="divider-line-horizontal">
@ -122,7 +142,7 @@
<div class="divider-line-vertical">
</div>
<div class="bf">
<img src="../images/landing-page/push-icon-2.svg" alt="Trigger build">
<img src="../images/landing-page/push-icon-2.svg">
<p>GitHub triggers<br>Travis CI to build</p>
</div>
<div class="divider-line-horizontal">
@ -130,7 +150,7 @@
<div class="divider-line-vertical">
</div>
<div class="bf">
<img src="../images/landing-page/push-icon-3.svg" alt="Travis logo">
<img src="../images/landing-page/push-icon-3.svg">
<p>Hooray!<br>Your build passes!</p>
</div>
<div class="divider-line-horizontal">
@ -138,7 +158,7 @@
<div class="divider-line-vertical">
</div>
<div class="bf">
<img src="../images/landing-page/push-icon-4.svg" alt="Heroku logo">
<img src="../images/landing-page/push-icon-4.svg">
<p>Travis CI deploys<br>to Heroku</p>
</div>
<div class="divider-line-horizontal">
@ -146,14 +166,14 @@
<div class="divider-line-vertical">
</div>
<div class="bf">
<img src="../images/landing-page/push-icon-5.svg" alt="Slack logo">
<img src="../images/landing-page/push-icon-5.svg">
<p>Travis CI tells the<br>team all is well</p>
</div>
</div>
<h2 id="pr-bf-margin">Pull request build flow</h2>
<div class="branch-bf">
<div class="bf">
<img src="../images/landing-page/pull-icon-1.svg" alt="PR icon">
<img src="../images/landing-page/pull-icon-1.svg">
<p>A pull request<br>is created</p>
</div>
<div class="divider-line-horizontal">
@ -161,7 +181,7 @@
<div class="divider-line-vertical">
</div>
<div class="bf">
<img src="../images/landing-page/pull-icon-2.svg" alt="Check test">
<img src="../images/landing-page/pull-icon-2.svg">
<p>GitHub tells Travis CI the build is mergeable</p>
</div>
<div class="divider-line-horizontal">
@ -169,7 +189,7 @@
<div class="divider-line-vertical">
</div>
<div class="bf">
<img src="../images/landing-page/push-icon-3.svg" alt="Tavis logo">
<img src="../images/landing-page/push-icon-3.svg">
<p>Hooray!<br>Your build passes!</p>
</div>
<div class="divider-line-horizontal">
@ -177,7 +197,7 @@
<div class="divider-line-vertical">
</div>
<div class="bf">
<img src="../images/landing-page/pull-icon-4.svg" alt="Build status">
<img src="../images/landing-page/pull-icon-4.svg">
<p>Travis CI updates the PR that it passed</p>
</div>
<div class="divider-line-horizontal">
@ -185,22 +205,22 @@
<div class="divider-line-vertical">
</div>
<div class="bf">
<img src="../images/landing-page/pull-icon-5.svg" alt="Merge icon">
<img src="../images/landing-page/pull-icon-5.svg">
<p>You merge in<br>the PR goodness</p>
</div>
</div>
</div>
</section>
</div>
</div>
<div class="row user-testimonials">
<section class="landing-centered-wrapper">
<div class="landing-centered-wrapper">
<div class="medium-6 columns">
<h2>Some people have said some pretty nice things about us</h2>
</div>
<div class="medium-6 columns">
<div class="small-3 columns">
<img src="../images/landing-page/dhh.png" class="home-avatar" alt="image DHH">
<img src="../images/landing-page/dhh.png" class="home-avatar">
</div>
<div class="small-9 columns">
<p>Travis CI makes it so much easier for us to coordinate the thousands of commits and contributors that flow through the Rails code base. The test suite for such a large project is vast, and we wouldnt be catching issues as quickly or smoothly without the help of Travis.</p>
@ -209,7 +229,7 @@
</div>
<div class="small-3 columns">
<img src="../images/landing-page/chris.png" class="home-avatar" alt="image Chris Aniszczyk">
<img src="../images/landing-page/chris.png" class="home-avatar">
</div>
<div class="small-9 columns">
<p>We love Travis CI at @TwitterOSS and use it for the majority of our open source projects on GitHub. Travis CI is simple to use, we love their API to build tooling and adore the new container infrastructure for speedier builds.</p>
@ -218,7 +238,7 @@
</div>
<div class="small-3 columns">
<img src="../images/landing-page/alex.png" class="home-avatar" alt="Alex Gaynor">
<img src="../images/landing-page/alex.png" class="home-avatar">
</div>
<div class="small-9 columns">
<p>Not only is Travis CI the best way to test your software, it is the right way. rm -rf jenkins &amp;&amp; touch .travis.yml</p>
@ -226,7 +246,7 @@
<p class="title">PyPy and Python Core Team Member</p>
</div>
</div>
</section>
</div>
</div>
</div>
{{/travis-layout}}

View File

@ -46,19 +46,19 @@
<ul class="list--colors">
<li>
<div class="colors-sample--teal" aria-hidden="true"></div>
<p class="text-small"><strong>Oxide blue</strong> #3EAAAF</p>
<p class="text-small"><strong>Turbo Teal</strong> #40A3AD</p>
</li>
<li>
<div class="colors-sample--green" aria-hidden="true"></div>
<p class="text-small"><strong>Turf green</strong> #39AA56</p>
<p class="text-small"><strong>Passing green</strong> #44A662</p>
</li>
<li>
<div class="colors-sample--yellow" aria-hidden="true"></div>
<p class="text-small"><strong>Canary yellow</strong> #EDDE3F</p>
<p class="text-small"><strong>Building yellow</strong> #E5DA3F</p>
</li>
<li>
<div class="colors-sample--red" aria-hidden="true"></div>
<p class="text-small"><strong>Brick red</strong> #DB4545</p>
<p class="text-small"><strong>Failing red</strong> #D94341</p>
</li>
<li>
<div class="colors-sample--grey" aria-hidden="true"></div>

View File

@ -14,7 +14,7 @@
{{#each broadcasts.content as |broadcast|}}
<li><p><span class="broadcast-status {{broadcast.category}}" title="Transmitted on {{broadcast.updated_at}}"></span> {{{broadcast.message}}} <a {{action 'markBroadcastAsSeen' broadcast}} class="icon-close"></a></p></li>
{{else}}
<li><p>There are no broadcasts</p></li>
<li><p>There are no broadcasts transmitted</p></li>
{{/each}}
</ul>
{{/if}}

View File

@ -1,31 +1,22 @@
var hasPermission = function(user, repoId) {
var id = parseInt(repoId);
var permissions;
if (user) {
if (permissions = user.get('permissions')) {
return permissions.contains(id);
}
var hasPermission = function(user, repo) {
let id = isNaN(repo) ? repo.get('id') : parseInt(repo);
if(user) {
return user.get('permissions').contains(id);
}
};
var hasPushPermission = function(user, repoId) {
var id = parseInt(repoId);
var permissions;
if (user) {
if (permissions = user.get('pushPermissions')) {
return permissions.contains(id);
}
var hasPushPermission = function(user, repo) {
let id = isNaN(repo) ? repo.get('id') : parseInt(repo);
if(user) {
return user.get('pushPermissions').contains(id);
}
};
var hasAdminPermission = function(user, repoId) {
var id = parseInt(repoId);
var permissions;
if (user) {
if (permissions = user.get('adminPermissions')) {
return permissions.contains(id);
}
var hasAdminPermission = function(user, repo) {
let id = isNaN(repo) ? repo.get('id') : parseInt(repo);
if(user) {
return user.get('adminPermissions').contains(id);
}
};

View File

@ -27,7 +27,7 @@ rstStatusImage = (function(url, slug, branch) {
});
podStatusImage = (function(url, slug, branch) {
return "=for html <a href=\"" + url + "\"><img src=\"" + (statusImageUrl(slug, branch)) + "\"></a>";
return "=for HTML <a href=\"" + url + "\"><img src=\"" + (statusImageUrl(slug, branch)) + "\"></a>";
});
ccxmlStatusUrl = (function(slug, branch) {

View File

@ -1,6 +1,4 @@
import config from 'travis/config/environment';
import Ember from 'ember';
var ccXml, email, githubAdmin, githubCommit, githubNetwork, githubPullRequest,
githubRepo, githubWatchers, gravatarImage, plainTextLog, statusImage;

View File

@ -1,8 +1,8 @@
{
"name": "travis",
"dependencies": {
"ember": "2.4.5",
"ember-cli-shims": "0.1.1",
"ember": "2.2.1",
"ember-cli-shims": "0.1.0",
"ember-cli-test-loader": "0.2.2",
"ember-load-initializers": "0.1.7",
"ember-qunit": "0.4.16",
@ -22,6 +22,7 @@
"ceibo": "1.0.0"
},
"resolutions": {
"ember": "2.4.5"
"ember": "2.2.1",
"ember-qunit-notifications": "0.1.0"
}
}

10
ci/prepare_testem.rb Normal file
View File

@ -0,0 +1,10 @@
require 'json'
pull_request = ENV['TRAVIS_PULL_REQUEST'] != 'false'
testem = JSON.parse(File.read('testem.json'))
testem['launch_in_ci'] = ['PhantomJS']
testem['launch_in_ci'] = ['SL_chrome', 'SL_firefox'] unless pull_request
File.open('testem.json', 'w') { |f| f.write testem.to_json }

View File

@ -1,4 +1,30 @@
window.deprecationWorkflow = window.deprecationWorkflow || {};
window.deprecationWorkflow.config = {
workflow: []
workflow: [
// DONE
{ handler: "log", matchMessage: "Ember.LinkView is deprecated. Please use Ember.LinkComponent." },
{ handler: "log", matchMessage: "Calling store.find() with a query object is deprecated. Use store.query() instead." },
{ handler: "log", matchMessage: new RegExp("A property of .*? was modified inside the didInsertElement hook. You should never change properties on components, services or models during didInsertElement because it causes significant performance degradation.") },
{ handler: "log", matchMessage: "Ember.arrayComputed is deprecated. Replace it with plain array methods" },
// this will still emit deprecations, because we use state property in
// request-icon compoenent, that makes Ember.js think that we're using
// internal component's state
{ handler: "log", matchMessage: "Usage of `state` is deprecated, use `_state` instead." },
{ handler: "log", matchMessage: "RestAdapter#find has been deprecated and renamed to `findRecord`." },
{ handler: "log", matchMessage: "Usage of `typeKey` has been deprecated and will be removed in Ember Data 2.0. It has been replaced by `modelName` on the model class." },
{ handler: "log", matchMessage: "Using store.dematerializeRecord() has been deprecated since it was intended for private use only. You should use store.unloadRecord() instead." },
{ handler: "log", matchMessage: "Using the same function as getter and setter is deprecated." },
{ handler: "log", matchMessage: "`Ember.ArrayController` is deprecated." },
{ handler: "log", matchMessage: "The default behavior of `shouldBackgroundReloadRecord` will change in Ember Data 2.0 to always return true. If you would like to preserve the current behavior please override `shouldBackgroundReloadRecord` in your adapter:application and return false." },
{ handler: "log", matchMessage: "Function#observesBefore is deprecated and will be removed in the near future." },
{ handler: "log", matchMessage: "Ember.addBeforeObserver is deprecated and will be removed in the near future." },
{ handler: "log", matchMessage: "Ember.removeBeforeObserver is deprecated and will be removed in the near future." },
{ handler: "log", matchMessage: "Using DS.Snapshot.get() is deprecated. Use .attr(), .belongsTo() or .hasMany() instead." },
{ handler: "log", matchMessage: "The filter API will be moved into a plugin soon. To enable store.filter using an environment flag, or to use an alternative, you can visit the ember-data-filter addon page" },
{ handler: "log", matchMessage: "Ember.View is deprecated. Consult the Deprecations Guide for a migration strategy." },
// TODO
{ handler: "silence", matchMessage: "Using `ApplicationInstance.container.lookup` is deprecated. Please use `ApplicationInstance.lookup` instead." },
{ handler: "silence", matchMessage: new RegExp("the component:.*? test module is implicitly running in unit test mode, which will change to integration test mode by default in an upcoming version of ember-test-helpers. Add `unit: true` or a `needs:[]` list to explicitly opt in to unit test mode.") },
]
};

View File

@ -10,7 +10,6 @@ module.exports = function(defaults) {
fingerprint = false;
} else {
fingerprint = {
exclude: ['images/emoji'],
extensions: ['js', 'css', 'png', 'jpg', 'gif', 'map', 'svg']
};

View File

@ -20,38 +20,37 @@
"license": "MIT",
"devDependencies": {
"active-model-adapter": "2.0.3",
"broccoli-asset-rev": "^2.4.2",
"broccoli-asset-rev": "^2.2.0",
"broccoli-sass": "0.6.6",
"ember-ajax": "0.7.1",
"ember-cli": "^2.4.3",
"ember-cli": "^2.3.0",
"ember-cli-app-version": "^1.0.0",
"ember-cli-autoprefixer": "^0.5.0",
"ember-cli-babel": "^5.1.6",
"ember-cli-babel": "^5.1.5",
"ember-cli-dependency-checker": "^1.2.0",
"ember-cli-deprecation-workflow": "0.1.6",
"ember-cli-document-title": "0.3.1",
"ember-cli-htmlbars": "^1.0.3",
"ember-cli-document-title": "0.2.0",
"ember-cli-htmlbars": "^1.0.1",
"ember-cli-htmlbars-inline-precompile": "^0.3.1",
"ember-cli-inject-live-reload": "^1.4.0",
"ember-cli-inject-live-reload": "^1.3.1",
"ember-cli-inline-images": "^0.0.4",
"ember-cli-mirage": "0.2.0-beta.7",
"ember-cli-page-object": "1.0.0",
"ember-cli-pendo": "drogus/ember-cli-pendo",
"ember-cli-pretender": "0.3.1",
"ember-cli-qunit": "^1.4.0",
"ember-cli-qunit": "^1.2.1",
"ember-cli-release": "0.2.8",
"ember-cli-sauce": "^1.1.0",
"ember-cli-sri": "^2.1.0",
"ember-cli-sri": "^2.0.0",
"ember-cli-uglify": "^1.2.0",
"ember-data": "^2.3.0",
"ember-data-filter": "1.13.0",
"ember-disable-proxy-controllers": "^1.0.1",
"ember-export-application-global": "^1.0.5",
"ember-load-initializers": "^0.5.1",
"ember-getowner-polyfill": "1.0.1",
"ember-export-application-global": "^1.0.4",
"ember-load-initializers": "^0.5.0",
"ember-resolver": "^2.0.3",
"ember-try": "0.0.7",
"emberx-select": "2.0.2",
"loader.js": "^4.0.1"
"loader.js": "^4.0.0"
}
}

View File

@ -1,151 +1,222 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!-- Generator: Adobe Illustrator 16.0.4, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 503.2 128.7" style="enable-background:new 0 0 503.2 128.7;" xml:space="preserve">
<style type="text/css">
.st0{opacity:0.2;}
.st1{fill:#DCDDDE;}
.st2{fill:#D0E8CF;}
.st3{fill:#B3DBB2;}
.st4{fill:#39A85B;}
.st5{fill:none;}
.st6{fill:#FFFFFF;}
</style>
<g class="st0">
<path class="st1" d="M72.4,7.6c3.3,0,6.1,2.7,6.1,6.1v47.7H53.4h-6.1H7.6V13.7c0-3.3,2.7-6.1,6.1-6.1L72.4,7.6 M72.4,0H13.7
C6.2,0,0,6.2,0,13.7v47.7v7.6h7.6h39.6h6.1h25.1h7.6v-7.6V13.7C86.1,6.2,80,0,72.4,0L72.4,0z"/>
<path class="st1" d="M155.8,7.6c3.3,0,6.1,2.7,6.1,6.1v47.7h-16.6h-8.4h-21.7h-8.6H91.1V13.7c0-3.3,2.7-6.1,6.1-6.1L155.8,7.6
M155.8,0H97.1c-7.6,0-13.7,6.2-13.7,13.7v47.7v7.6h7.6h15.6h8.6h21.7h8.4h16.6h7.6v-7.6V13.7C169.6,6.2,163.4,0,155.8,0L155.8,0z"
/>
<path class="st1" d="M239.2,7.6c3.3,0,6.1,2.7,6.1,6.1v47.7h-11h-6.1h-35.1h-6.1h-12.5V13.7c0-3.3,2.7-6.1,6.1-6.1L239.2,7.6
M239.2,0h-58.7c-7.6,0-13.7,6.2-13.7,13.7v47.7v7.6h7.6h12.5h6.1h35.1h6.1h11h7.6v-7.6V13.7C253,6.2,246.8,0,239.2,0L239.2,0z"/>
<path class="st1" d="M322.7,7.6c3.3,0,6.1,2.7,6.1,6.1v47.7h-12h-6.1h-35.1h-6.1h-11.5V13.7c0-3.3,2.7-6.1,6.1-6.1L322.7,7.6
M322.7,0h-58.7c-7.6,0-13.7,6.2-13.7,13.7v47.7v7.6h7.6h11.5h6.1h35.1h6.1h12h7.6v-7.6V13.7C336.4,6.2,330.2,0,322.7,0L322.7,0z"
/>
<path class="st1" d="M406.1,7.6c3.3,0,6.1,2.7,6.1,6.1v47.7h-11.1h-6.1h-35.1h-6.1h-12.4V13.7c0-3.3,2.7-6.1,6.1-6.1L406.1,7.6
M406.1,0h-58.7c-7.6,0-13.7,6.2-13.7,13.7v47.7v7.6h7.6h12.4h6.1h35.1h6.1h11.1h7.6v-7.6V13.7C419.8,6.2,413.6,0,406.1,0L406.1,0z
width="503.188px" height="128.655px" viewBox="0 0 503.188 128.655" enable-background="new 0 0 503.188 128.655"
xml:space="preserve">
<g opacity="0.2">
<path fill="#DCDDDE" d="M72.426,7.641c3.342,0,6.073,2.734,6.073,6.074v47.733H53.36h-6.134H7.641V13.715
c0-3.34,2.733-6.074,6.074-6.074H72.426 M72.426,0H13.715C6.153,0,0,6.153,0,13.715v47.733v7.641h7.641h39.585h6.134H78.5h7.641
v-7.641V13.715C86.141,6.153,79.988,0,72.426,0L72.426,0z"/>
<path fill="#DCDDDE" d="M155.836,7.641c3.341,0,6.074,2.734,6.074,6.074v47.733h-16.611h-8.354h-21.707h-8.633H91.052V13.715
c0-3.34,2.731-6.074,6.073-6.074H155.836 M155.836,0H97.125c-7.562,0-13.714,6.153-13.714,13.715v47.733v7.641h7.641h15.554h8.633
h21.707h8.354h16.611h7.641v-7.641V13.715C169.552,6.153,163.399,0,155.836,0L155.836,0z"/>
<path fill="#DCDDDE" d="M239.246,7.641c3.341,0,6.073,2.734,6.073,6.074v47.733h-10.971h-6.143h-35.127h-6.142H174.46V13.715
c0-3.34,2.733-6.074,6.073-6.074H239.246 M239.246,0h-58.712c-7.562,0-13.714,6.153-13.714,13.715v47.733v7.641h7.641h12.477h6.142
h35.127h6.143h10.971h7.641v-7.641V13.715C252.959,6.153,246.808,0,239.246,0L239.246,0z"/>
<path fill="#DCDDDE" d="M322.655,7.641c3.341,0,6.074,2.734,6.074,6.074v47.733h-11.992h-6.142h-35.127h-6.142h-11.455V13.715
c0-3.34,2.731-6.074,6.072-6.074H322.655 M322.655,0h-58.711c-7.562,0-13.713,6.153-13.713,13.715v47.733v7.641h7.641h11.455h6.142
h35.127h6.142h11.992h7.641v-7.641V13.715C336.37,6.153,330.217,0,322.655,0L322.655,0z"/>
<path fill="#DCDDDE" d="M406.064,7.641c3.341,0,6.073,2.734,6.073,6.074v47.733h-11.063h-6.142h-35.127h-6.142H341.28V13.715
c0-3.34,2.732-6.074,6.073-6.074H406.064 M406.064,0h-58.711c-7.562,0-13.714,6.153-13.714,13.715v47.733v7.641h7.641h12.384h6.142
h35.127h6.142h11.063h7.641v-7.641V13.715C419.778,6.153,413.626,0,406.064,0L406.064,0z"/>
<path fill="#DCDDDE" d="M489.474,7.641c3.341,0,6.073,2.734,6.073,6.074v47.733h-12.083h-6.142h-35.127h-6.141H424.69V13.715
c0-3.34,2.732-6.074,6.073-6.074H489.474 M489.474,0h-58.711c-7.562,0-13.714,6.153-13.714,13.715v47.733v7.641h7.641h11.365h6.141
h35.127h6.142h12.083h7.641v-7.641V13.715C503.188,6.153,497.037,0,489.474,0L489.474,0z"/>
<path fill="#DCDDDE" d="M78.5,65.686v49.255c0,3.341-2.731,6.073-6.073,6.073H13.715c-3.341,0-6.074-2.732-6.074-6.073V65.686
h39.585h6.134H78.5 M86.141,58.045H78.5H53.36h-6.134H7.641H0v7.641v49.255c0,7.562,6.153,13.714,13.715,13.714h58.711
c7.562,0,13.714-6.151,13.714-13.714V65.686V58.045L86.141,58.045z"/>
<path fill="#DCDDDE" d="M161.911,65.686v49.255c0,3.341-2.733,6.073-6.074,6.073H97.125c-3.342,0-6.073-2.732-6.073-6.073V65.686
h49.759h6.876H161.911 M169.552,58.045h-7.641h-14.224h-6.876H91.052h-7.641v7.641v49.255c0,7.562,6.152,13.714,13.714,13.714
h58.711c7.562,0,13.715-6.151,13.715-13.714V65.686V58.045L169.552,58.045z"/>
<path fill="#DCDDDE" d="M245.319,65.686v49.255c0,3.341-2.732,6.073-6.073,6.073h-58.712c-3.34,0-6.073-2.732-6.073-6.073V65.686
h12.448h6.131h35.204h6.13H245.319 M252.959,58.045h-7.641h-10.945h-6.13H193.04h-6.131H174.46h-7.641v7.641v49.255
c0,7.562,6.152,13.714,13.714,13.714h58.712c7.562,0,13.714-6.151,13.714-13.714V65.686V58.045L252.959,58.045z"/>
<path fill="#DCDDDE" d="M328.729,65.686v49.255c0,3.341-2.733,6.073-6.074,6.073h-58.711c-3.341,0-6.072-2.732-6.072-6.073V65.686
h11.427h6.132h35.203h6.131H328.729 M336.37,58.045h-7.641h-11.965h-6.131H275.43h-6.132h-11.427h-7.641v7.641v49.255
c0,7.562,6.152,13.714,13.713,13.714h58.711c7.562,0,13.715-6.151,13.715-13.714V65.686V58.045L336.37,58.045z"/>
<path fill="#DCDDDE" d="M412.137,65.686v49.255c0,3.341-2.732,6.073-6.073,6.073h-58.711c-3.341,0-6.073-2.732-6.073-6.073V65.686
h12.355h6.131h35.204h6.13H412.137 M419.778,58.045h-7.641H401.1h-6.13h-35.204h-6.131H341.28h-7.641v7.641v49.255
c0,7.562,6.151,13.714,13.714,13.714h58.711c7.562,0,13.714-6.151,13.714-13.714V65.686V58.045L419.778,58.045z"/>
<path fill="#DCDDDE" d="M495.547,65.686v49.255c0,3.341-2.732,6.073-6.073,6.073h-58.711c-3.341,0-6.073-2.732-6.073-6.073V65.686
h11.337h6.13h35.204h6.13H495.547 M503.188,58.045h-7.641h-12.057h-6.13h-35.204h-6.13H424.69h-7.641v7.641v49.255
c0,7.562,6.151,13.714,13.714,13.714h58.711c7.562,0,13.714-6.151,13.714-13.714V65.686V58.045L503.188,58.045z"/>
</g>
<g>
<path fill="#D0E8CF" d="M78.5,13.715c0-3.34-2.731-6.074-6.073-6.074H13.715c-3.341,0-6.074,2.734-6.074,6.074v47.733H78.5V13.715z
"/>
<path class="st1" d="M489.5,7.6c3.3,0,6.1,2.7,6.1,6.1v47.7h-12.1h-6.1h-35.1h-6.1h-11.4V13.7c0-3.3,2.7-6.1,6.1-6.1L489.5,7.6
M489.5,0h-58.7C423.2,0,417,6.2,417,13.7v47.7v7.6h7.6h11.4h6.1h35.1h6.1h12.1h7.6v-7.6V13.7C503.2,6.2,497,0,489.5,0L489.5,0z"/>
<path class="st1" d="M78.5,65.7v49.3c0,3.3-2.7,6.1-6.1,6.1H13.7c-3.3,0-6.1-2.7-6.1-6.1V65.7h39.6h6.1H78.5 M86.1,58h-7.6H53.4
h-6.1H7.6H0v7.6v49.3c0,7.6,6.2,13.7,13.7,13.7h58.7c7.6,0,13.7-6.2,13.7-13.7V65.7L86.1,58L86.1,58z"/>
<path class="st1" d="M161.9,65.7v49.3c0,3.3-2.7,6.1-6.1,6.1H97.1c-3.3,0-6.1-2.7-6.1-6.1V65.7h49.8h6.9H161.9 M169.6,58h-7.6
h-14.2h-6.9H91.1h-7.6v7.6v49.3c0,7.6,6.2,13.7,13.7,13.7h58.7c7.6,0,13.7-6.2,13.7-13.7V65.7L169.6,58L169.6,58z"/>
<path class="st1" d="M245.3,65.7v49.3c0,3.3-2.7,6.1-6.1,6.1h-58.7c-3.3,0-6.1-2.7-6.1-6.1V65.7h12.4h6.1h35.2h6.1H245.3 M253,58
h-7.6h-10.9h-6.1H193h-6.1h-12.4h-7.6v7.6v49.3c0,7.6,6.2,13.7,13.7,13.7h58.7c7.6,0,13.7-6.2,13.7-13.7V65.7L253,58L253,58z"/>
<path class="st1" d="M328.7,65.7v49.3c0,3.3-2.7,6.1-6.1,6.1h-58.7c-3.3,0-6.1-2.7-6.1-6.1V65.7h11.4h6.1h35.2h6.1H328.7 M336.4,58
h-7.6h-12h-6.1h-35.2h-6.1h-11.4h-7.6v7.6v49.3c0,7.6,6.2,13.7,13.7,13.7h58.7c7.6,0,13.7-6.2,13.7-13.7V65.7L336.4,58L336.4,58z"
<path fill="#B3DBB2" d="M7.641,114.941c0,3.341,2.733,6.073,6.074,6.073h58.711c3.342,0,6.073-2.732,6.073-6.073V65.686H7.641
V114.941z"/>
<path fill="#D0E8CF" d="M161.911,13.715c0-3.34-2.733-6.074-6.074-6.074H97.125c-3.342,0-6.073,2.734-6.073,6.074v47.733h70.858
V13.715z"/>
<path fill="#B3DBB2" d="M91.052,114.941c0,3.341,2.731,6.073,6.073,6.073h58.711c3.341,0,6.074-2.732,6.074-6.073V65.686H91.052
V114.941z"/>
<path fill="#D0E8CF" d="M245.319,13.715c0-3.34-2.732-6.074-6.073-6.074h-58.712c-3.34,0-6.073,2.734-6.073,6.074v47.733h70.858
V13.715z"/>
<path fill="#B3DBB2" d="M174.46,114.941c0,3.341,2.733,6.073,6.073,6.073h58.712c3.341,0,6.073-2.732,6.073-6.073V65.686H174.46
V114.941z"/>
<path fill="#B3DBB2" d="M257.872,114.941c0,3.341,2.731,6.073,6.072,6.073h58.711c3.341,0,6.074-2.732,6.074-6.073V65.686h-70.857
V114.941z"/>
<path fill="#D0E8CF" d="M328.729,13.715c0-3.34-2.733-6.074-6.074-6.074h-58.711c-3.341,0-6.072,2.734-6.072,6.074v47.733h70.857
V13.715z"/>
<path fill="#B3DBB2" d="M341.28,114.941c0,3.341,2.732,6.073,6.073,6.073h58.711c3.341,0,6.073-2.732,6.073-6.073V65.686H341.28
V114.941z"/>
<path fill="#D0E8CF" d="M412.137,13.715c0-3.34-2.732-6.074-6.073-6.074h-58.711c-3.341,0-6.073,2.734-6.073,6.074v47.733h70.857
V13.715z"/>
<path fill="#D0E8CF" d="M495.547,13.715c0-3.34-2.732-6.074-6.073-6.074h-58.711c-3.341,0-6.073,2.734-6.073,6.074v47.733h70.857
V13.715z"/>
<path fill="#B3DBB2" d="M424.69,114.941c0,3.341,2.732,6.073,6.073,6.073h58.711c3.341,0,6.073-2.732,6.073-6.073V65.686H424.69
V114.941z"/>
</g>
<path fill="none" d="M360.328,73.917c0.39,3.474,1.185,6.719,2.386,9.737c1.2,3.02,2.97,5.536,5.308,7.547
c2.336,2.013,5.452,3.019,9.348,3.019c3.895,0,7.011-1.006,9.349-3.019c2.336-2.011,4.104-4.527,5.306-7.547
c1.201-3.019,1.997-6.264,2.386-9.737c0.328-2.919,0.51-5.655,0.562-8.23h-35.204C359.819,68.261,360,70.998,360.328,73.917z"/>
<path fill="none" d="M392.023,44.85c-1.202-2.984-2.97-5.485-5.306-7.498c-2.338-2.012-5.454-3.018-9.349-3.018
c-3.896,0-7.012,1.006-9.348,3.018c-2.338,2.013-4.107,4.514-5.308,7.498c-1.201,2.987-1.996,6.232-2.386,9.737
c-0.271,2.431-0.439,4.712-0.522,6.861h35.127c-0.083-2.149-0.253-4.431-0.523-6.861C394.02,51.083,393.224,47.837,392.023,44.85z"
/>
<path class="st1" d="M412.1,65.7v49.3c0,3.3-2.7,6.1-6.1,6.1h-58.7c-3.3,0-6.1-2.7-6.1-6.1V65.7h12.4h6.1H395h6.1H412.1 M419.8,58
h-7.6h-11H395h-35.2h-6.1h-12.4h-7.6v7.6v49.3c0,7.6,6.2,13.7,13.7,13.7h58.7c7.6,0,13.7-6.2,13.7-13.7V65.7L419.8,58L419.8,58z"/>
<path class="st1" d="M495.5,65.7v49.3c0,3.3-2.7,6.1-6.1,6.1h-58.7c-3.3,0-6.1-2.7-6.1-6.1V65.7H436h6.1h35.2h6.1H495.5 M503.2,58
h-7.6h-12.1h-6.1h-35.2H436h-11.3H417v7.6v49.3c0,7.6,6.2,13.7,13.7,13.7h58.7c7.6,0,13.7-6.2,13.7-13.7V65.7V58L503.2,58z"/>
</g>
<path fill="#39A85B" d="M360.328,54.587c0.39-3.505,1.185-6.75,2.386-9.737c1.2-2.984,2.97-5.485,5.308-7.498
c2.336-2.012,5.452-3.018,9.348-3.018c3.895,0,7.011,1.006,9.349,3.018c2.336,2.013,4.104,4.514,5.306,7.498
c1.201,2.987,1.997,6.232,2.386,9.737c0.271,2.431,0.44,4.712,0.523,6.861h6.142c-0.11-3.073-0.398-6.204-0.871-9.393
c-0.617-4.153-1.785-7.919-3.505-11.296c-1.721-3.375-4.123-6.149-7.207-8.325c-3.083-2.174-7.124-3.262-12.122-3.262
c-4.935,0-8.959,1.088-12.074,3.262c-3.116,2.176-5.535,4.95-7.255,8.325c-1.722,3.377-2.89,7.143-3.506,11.296
c-0.472,3.169-0.758,6.3-0.87,9.393h6.142C359.888,59.299,360.057,57.018,360.328,54.587z"/>
<path fill="#39A85B" d="M394.409,73.917c-0.389,3.474-1.185,6.719-2.386,9.737c-1.202,3.02-2.97,5.536-5.306,7.547
c-2.338,2.013-5.454,3.019-9.349,3.019c-3.896,0-7.012-1.006-9.348-3.019c-2.338-2.011-4.107-4.527-5.308-7.547
c-1.201-3.019-1.996-6.264-2.386-9.737c-0.327-2.919-0.509-5.655-0.562-8.23h-6.131c0.062,3.529,0.352,7.131,0.898,10.812
c0.616,4.155,1.784,7.921,3.506,11.295c1.72,3.377,4.139,6.136,7.255,8.277c3.115,2.142,7.14,3.214,12.074,3.214
c4.998,0,9.039-1.072,12.122-3.214c3.084-2.142,5.486-4.9,7.207-8.277c1.72-3.374,2.888-7.14,3.505-11.295
c0.542-3.655,0.832-7.257,0.897-10.812h-6.13C394.918,68.261,394.737,70.998,394.409,73.917z"/>
<path fill="#39A85B" d="M64.526,56.537c0.959-2.384,1.441-5.032,1.441-7.947c0-3.243-0.547-6.092-1.64-8.542
s-2.616-4.486-4.569-6.109c-1.954-1.622-4.238-2.847-6.854-3.676c-2.617-0.827-5.449-1.242-8.494-1.242
c-3.774,0-7.069,0.614-9.883,1.838c-2.816,1.227-5.15,2.931-7.004,5.116c-1.854,2.185-3.229,4.785-4.122,7.798
c-0.894,3.014-1.308,6.308-1.241,9.884h6.258c-0.066-2.583,0.182-5.032,0.745-7.351c0.562-2.317,1.473-4.371,2.731-6.159
c1.258-1.788,2.896-3.211,4.917-4.271c2.019-1.06,4.453-1.59,7.302-1.59c2.118,0,4.122,0.314,6.009,0.943
c1.888,0.631,3.542,1.557,4.967,2.781c1.423,1.227,2.549,2.717,3.378,4.47c0.827,1.756,1.241,3.76,1.241,6.011
c0,2.78-0.481,5.182-1.44,7.201c-0.935,1.967-2.328,3.886-4.172,5.757h7.785C62.939,59.917,63.823,58.282,64.526,56.537z"/>
<path fill="#39A85B" d="M47.441,67.016c-2.418,1.688-4.852,3.345-7.302,4.967c-2.45,1.623-4.834,3.312-7.151,5.066
c-2.319,1.755-4.405,3.691-6.258,5.811c-1.854,2.12-3.345,4.504-4.47,7.152c-1.127,2.649-1.724,5.696-1.789,9.139h45.793v-5.762
H27.624c0.397-2.317,1.391-4.453,2.98-6.407c1.589-1.952,3.427-3.758,5.513-5.413s4.255-3.162,6.507-4.52
c2.25-1.357,4.205-2.599,5.86-3.726c2.317-1.456,4.52-3.029,6.605-4.718c1.145-0.927,2.212-1.903,3.218-2.92h-9.048
C48.668,66.137,48.064,66.581,47.441,67.016z"/>
<polygon fill="#39A85B" points="134.352,38.755 134.55,38.755 134.55,61.449 140.312,61.449 140.312,29.617 134.649,29.617
112.469,61.449 118.627,61.449 "/>
<polygon fill="#39A85B" points="134.55,76.602 108.127,76.602 115.691,65.686 109.517,65.686 102.465,75.807 102.465,81.867
134.55,81.867 134.55,99.151 140.312,99.151 140.312,81.867 150.742,81.867 150.742,76.602 140.312,76.602 140.312,65.686
134.55,65.686 "/>
<g>
<path class="st2" d="M78.5,13.7c0-3.3-2.7-6.1-6.1-6.1H13.7c-3.3,0-6.1,2.7-6.1,6.1v47.7h70.9V13.7z"/>
<path class="st3" d="M7.6,114.9c0,3.3,2.7,6.1,6.1,6.1h58.7c3.3,0,6.1-2.7,6.1-6.1V65.7H7.6V114.9z"/>
<path class="st2" d="M161.9,13.7c0-3.3-2.7-6.1-6.1-6.1H97.1c-3.3,0-6.1,2.7-6.1,6.1v47.7h70.9L161.9,13.7L161.9,13.7z"/>
<path class="st3" d="M91.1,114.9c0,3.3,2.7,6.1,6.1,6.1h58.7c3.3,0,6.1-2.7,6.1-6.1V65.7H91.1V114.9z"/>
<path class="st2" d="M245.3,13.7c0-3.3-2.7-6.1-6.1-6.1h-58.7c-3.3,0-6.1,2.7-6.1,6.1v47.7h70.9V13.7z"/>
<path class="st3" d="M174.5,114.9c0,3.3,2.7,6.1,6.1,6.1h58.7c3.3,0,6.1-2.7,6.1-6.1V65.7h-70.9V114.9z"/>
<path class="st3" d="M257.9,114.9c0,3.3,2.7,6.1,6.1,6.1h58.7c3.3,0,6.1-2.7,6.1-6.1V65.7h-70.9V114.9z"/>
<path class="st2" d="M328.7,13.7c0-3.3-2.7-6.1-6.1-6.1h-58.7c-3.3,0-6.1,2.7-6.1,6.1v47.7h70.9V13.7z"/>
<path class="st3" d="M341.3,114.9c0,3.3,2.7,6.1,6.1,6.1h58.7c3.3,0,6.1-2.7,6.1-6.1V65.7h-70.9V114.9z"/>
<path class="st2" d="M412.1,13.7c0-3.3-2.7-6.1-6.1-6.1h-58.7c-3.3,0-6.1,2.7-6.1,6.1v47.7h70.9V13.7z"/>
<path class="st2" d="M495.5,13.7c0-3.3-2.7-6.1-6.1-6.1h-58.7c-3.3,0-6.1,2.7-6.1,6.1v47.7h70.9V13.7z"/>
<path class="st3" d="M424.7,114.9c0,3.3,2.7,6.1,6.1,6.1h58.7c3.3,0,6.1-2.7,6.1-6.1V65.7h-70.9V114.9z"/>
</g>
<g>
<path class="st4" d="M34.8,66.7h1c20,0,24.1,8.5,24.1,15.7c0,8.8-6.5,14.9-15.8,14.9c-9.8,0-15.2-4.5-19.2-8.9l-0.8-0.9l-4.2,5.1
l0.6,0.6c4.3,4.5,11.4,10.5,23.6,10.5c13.5,0,23-8.8,23-21.4c0-7-3.5-13-9.4-16.6H34.8V66.7z"/>
<path class="st4" d="M64.5,45.3c0-11-8.3-18.4-20.7-18.4c-7.3,0-14,3-20.2,9.1l-0.7,0.7l4.3,4.9l0.8-0.8c4.6-4.9,10.3-7.6,15.8-7.6
c8.2,0,13.5,4.9,13.5,12.4c0,9.6-7.5,14.7-21.5,14.7h-1v1.1h20.9C61.4,57.8,64.5,52.3,64.5,45.3z"/>
<polygon class="st4" points="123.4,96 106.5,96 106.5,102.4 146.1,102.4 146.1,96 130.5,96 130.5,65.7 123.4,65.7 "/>
<path class="st4" d="M130.5,28.3h-5.3l-0.2,0.1c-3.5,2-8,3.4-13.5,4.4l-0.8,0.1v5.2h12.9v23.2h7.1V28.3z"/>
<path class="st4" d="M197.5,45.6c0-7.2,5.4-12.4,12.9-12.4c8.1,0,13.8,5.7,13.8,13.8c0,5.1-2.5,10-7.5,14.5h8.1
c3.4-4,6.2-9.2,6.2-14.6c0-11.9-8.2-19.8-20.5-19.8c-11.3,0-19.8,8-19.8,18.6c0,7.3,4.3,12.5,8.7,15.9H213
C204.1,57.7,197.5,53.8,197.5,45.6z"/>
<path class="st4" d="M206.1,65.9c10.8,4.2,20.1,7.9,20.1,17.9c0,8-6.6,13.8-15.8,13.8c-9.6,0-16.9-6.4-16.9-14.9
c0-6.6,3.9-12.3,11.7-17h-9.6c-4.3,3.6-9.1,9.3-9.1,17.2c0,11.9,10.3,20.8,23.9,20.8c13.3,0,22.9-8.3,22.9-19.8
c0-9.4-5.7-14.4-11.5-18.2h-16.3L206.1,65.9z"/>
<path class="st4" d="M283.8,66.7h1c20,0,24.1,8.5,24.1,15.7c0,8.8-6.5,14.9-15.8,14.9c-9.8,0-15.2-4.5-19.2-8.9l-0.8-0.9l-4.2,5.1
l0.6,0.6c4.3,4.5,11.4,10.5,23.6,10.5c13.5,0,23-8.8,23-21.4c0-7-3.5-13-9.4-16.6h-22.9V66.7z"/>
<path class="st4" d="M313.6,45.3c0-11-8.3-18.4-20.7-18.4c-7.3,0-14,3-20.2,9.1l-0.7,0.7l4.3,4.9l0.8-0.8
c4.6-4.9,10.3-7.6,15.8-7.6c8.2,0,13.5,4.9,13.5,12.4c0,9.6-7.5,14.7-21.5,14.7h-1v1.1h20.9C310.5,57.8,313.6,52.3,313.6,45.3z"/>
<path class="st4" d="M372.7,97.3c-4.5,0-8.6-2-11.5-5.6l-0.7-0.9l-4.4,4.9l0.6,0.7c4.2,4.9,9.6,7.3,16,7.3c7.9,0,14.6-3.3,19.3-9.5
c5-6.5,7.7-16.1,8.1-28.6h-7C392.2,86.1,385.1,97.3,372.7,97.3z"/>
<path class="st4" d="M376.5,67.6c-3.3,0-5.9-0.7-7.9-1.9h-9.8c3.5,5.2,9.3,8.1,17,8.1c5.9,0,11.9-2.9,17-8.1h-9.3
C381.1,66.9,378.8,67.6,376.5,67.6z"/>
<path class="st4" d="M361.8,50.4c0-9.8,5.8-17.2,13.5-17.2c13.9,0,17,14.9,17.6,24.1c-1.2,1.5-2.4,2.9-3.7,4.1H400
c-0.1-21.6-9.2-34.5-24.4-34.5c-11.6,0-20.7,10.3-20.7,23.4c0,4.2,0.6,7.9,1.8,11h7.7C362.3,58,361.8,53.6,361.8,50.4z"/>
<path class="st4" d="M445.8,50.4c0-9.8,5.8-17.2,13.5-17.2c13.9,0,17,14.9,17.6,24.1c-1.2,1.5-2.4,2.9-3.7,4.1H484
c-0.1-21.6-9.2-34.5-24.4-34.5c-11.6,0-20.7,10.3-20.7,23.4c0,4.2,0.6,7.9,1.8,11h7.7C446.3,58,445.8,53.6,445.8,50.4z"/>
<path class="st4" d="M460.5,67.6c-3.3,0-5.9-0.7-7.9-1.9h-9.8c3.5,5.2,9.3,8.1,17,8.1c5.9,0,11.9-2.9,17-8.1h-9.3
C465.1,66.9,462.8,67.6,460.5,67.6z"/>
<path class="st4" d="M456.7,97.3c-4.5,0-8.6-2-11.5-5.6l-0.7-0.9l-4.4,4.9l0.6,0.7c4.2,4.9,9.6,7.3,16,7.3c7.9,0,14.6-3.3,19.3-9.5
c5-6.5,7.7-16.1,8.1-28.6h-7C476.2,86.1,469.1,97.3,456.7,97.3z"/>
</g>
<path class="st5" d="M360.3,73.9c0.4,3.5,1.2,6.7,2.4,9.7c1.2,3,3,5.5,5.3,7.5c2.3,2,5.5,3,9.3,3c3.9,0,7-1,9.3-3
c2.3-2,4.1-4.5,5.3-7.5c1.2-3,2-6.3,2.4-9.7c0.3-2.9,0.5-5.7,0.6-8.2h-35.2C359.8,68.3,360,71,360.3,73.9z"/>
<path class="st5" d="M392,44.8c-1.2-3-3-5.5-5.3-7.5c-2.3-2-5.5-3-9.3-3c-3.9,0-7,1-9.3,3c-2.3,2-4.1,4.5-5.3,7.5
c-1.2,3-2,6.2-2.4,9.7c-0.3,2.4-0.4,4.7-0.5,6.9h35.1c-0.1-2.1-0.3-4.4-0.5-6.9C394,51.1,393.2,47.8,392,44.8z"/>
<g>
<path class="st5" d="M195.4,70.4c-0.8,2.2-1.1,4.6-1.1,7.2c0,2.5,0.3,4.8,1,7c0.7,2.2,1.7,4.1,3.1,5.8c1.4,1.6,3.2,2.9,5.4,3.8
c2.2,0.9,4.8,1.4,7.9,1.4c2.5,0,4.8-0.5,6.9-1.4c2-1,3.8-2.3,5.3-3.9c1.5-1.6,2.6-3.6,3.4-5.8c0.8-2.2,1.2-4.5,1.2-6.9
c0-2.5-0.4-4.9-1.1-7.2c-0.6-1.9-1.5-3.5-2.6-5h-26.7C197,66.9,196.1,68.5,195.4,70.4z"/>
<path class="st5" d="M461.5,59.1c-2.7,0-5.2,0.5-7.4,1.5c-0.6,0.3-1.1,0.5-1.7,0.8h17.8c-0.5-0.3-1-0.6-1.6-0.8
C466.6,59.6,464.2,59.1,461.5,59.1z"/>
<path class="st5" d="M294,58.3c-3.2,0-6.2,0.7-8.9,2.1c-0.6,0.3-1.1,0.6-1.6,1h20.8c-1-0.7-2-1.2-3.1-1.7
C299,58.8,296.6,58.3,294,58.3z"/>
<path class="st5" d="M211.7,59.1c-2.7,0-5.2,0.5-7.4,1.5c-0.6,0.3-1.1,0.5-1.7,0.8h17.8c-0.5-0.3-1-0.6-1.6-0.8
C216.7,59.6,214.4,59.1,211.7,59.1z"/>
<path fill="none" d="M195.434,70.351c-0.768,2.234-1.15,4.649-1.15,7.25c0,2.467,0.333,4.8,1,7c0.666,2.2,1.716,4.117,3.15,5.75
c1.433,1.634,3.25,2.917,5.45,3.85c2.2,0.935,4.833,1.4,7.899,1.4c2.533,0,4.816-0.483,6.851-1.45c2.032-0.966,3.8-2.266,5.3-3.9
c1.5-1.633,2.65-3.55,3.45-5.75c0.8-2.199,1.2-4.5,1.2-6.899c0-2.533-0.385-4.933-1.15-7.2c-0.635-1.875-1.512-3.534-2.603-5
h-26.727C196.968,66.862,196.067,68.503,195.434,70.351z"/>
<path fill="none" d="M461.549,59.101c-2.734,0-5.185,0.484-7.35,1.45c-0.576,0.257-1.126,0.543-1.655,0.85H470.3
c-0.511-0.307-1.042-0.593-1.601-0.85C466.599,59.585,464.215,59.101,461.549,59.101z"/>
<path fill="none" d="M294.008,58.301c-3.2,0-6.167,0.717-8.9,2.149c-0.552,0.289-1.077,0.61-1.588,0.95h20.799
c-0.956-0.656-1.991-1.225-3.11-1.7C299.008,58.768,296.608,58.301,294.008,58.301z"/>
<path fill="none" d="M211.684,59.101c-2.734,0-5.185,0.484-7.35,1.45c-0.577,0.257-1.125,0.543-1.655,0.85h17.755
c-0.511-0.307-1.042-0.593-1.601-0.85C216.734,59.585,214.35,59.101,211.684,59.101z"/>
<path fill="#39A85B" d="M193.684,55.151c0.466-3.633,1.4-7.016,2.8-10.15c1.4-3.133,3.366-5.732,5.9-7.8
c2.532-2.065,5.833-3.1,9.899-3.1s7.383,1.2,9.95,3.6c2.565,2.4,4.116,5.534,4.65,9.4h6.3c-0.734-6.2-2.935-10.8-6.6-13.8
c-3.668-3-8.635-4.5-14.9-4.5c-3.8,0-7.067,0.667-9.8,2c-2.734,1.334-5.018,3.066-6.851,5.199c-1.834,2.135-3.3,4.518-4.399,7.15
c-1.101,2.635-1.95,5.234-2.55,7.8c-0.601,2.567-0.984,4.984-1.15,7.25c-0.087,1.188-0.15,2.25-0.192,3.2h6.367
C193.221,59.391,193.406,57.315,193.684,55.151z"/>
<path fill="#39A85B" d="M227.434,70.713c0.766,2.268,1.15,4.667,1.15,7.2c0,2.399-0.4,4.7-1.2,6.899c-0.8,2.2-1.95,4.117-3.45,5.75
c-1.5,1.635-3.268,2.935-5.3,3.9c-2.034,0.967-4.317,1.45-6.851,1.45c-3.066,0-5.699-0.466-7.899-1.4
c-2.2-0.933-4.018-2.216-5.45-3.85c-1.435-1.633-2.484-3.55-3.15-5.75c-0.667-2.2-1-4.533-1-7c0-2.601,0.383-5.016,1.15-7.25
c0.633-1.848,1.534-3.489,2.671-4.95h-4.921h-0.2h-6.285c0.075,6.122,0.549,11.346,1.435,15.65c0.966,4.699,2.45,8.517,4.45,11.449
c2,2.935,4.532,5.051,7.6,6.351c3.065,1.3,6.732,1.95,11,1.95c3.466,0,6.65-0.585,9.55-1.75c2.9-1.166,5.4-2.801,7.5-4.9
c2.101-2.1,3.733-4.6,4.9-7.5c1.165-2.9,1.75-6.05,1.75-9.45c0-3.399-0.55-6.532-1.65-9.399c-0.321-0.838-0.693-1.631-1.091-2.4
h-7.311C225.922,67.179,226.799,68.838,227.434,70.713z"/>
<path fill="#39A85B" d="M204.334,60.551c2.165-0.966,4.615-1.45,7.35-1.45c2.666,0,5.05,0.484,7.15,1.45
c0.559,0.257,1.089,0.543,1.601,0.85h9.021c-0.287-0.337-0.563-0.682-0.871-1c-2-2.065-4.418-3.683-7.25-4.85
c-2.835-1.166-6.018-1.75-9.551-1.75c-4,0-7.684,1.066-11.05,3.199c-1.956,1.24-3.616,2.711-4.998,4.4h6.943
C203.209,61.094,203.758,60.808,204.334,60.551z"/>
<path fill="#39A85B" d="M285.108,60.451c2.733-1.433,5.7-2.149,8.9-2.149c2.6,0,5,0.467,7.2,1.399
c1.119,0.476,2.154,1.044,3.11,1.7h8.909c-0.432-0.556-0.886-1.091-1.37-1.6c-2.034-2.133-4.5-3.801-7.399-5
c-2.9-1.2-6.15-1.801-9.75-1.801c-2.801,0-5.535,0.567-8.2,1.7c-2.667,1.135-4.867,2.734-6.601,4.8l-0.199-0.199l4.5-23.2h30.6
v-5.8h-35l-5.826,31.1h9.538C284.031,61.061,284.556,60.74,285.108,60.451z"/>
<path fill="#39A85B" d="M310.558,69.583c0.9,2.199,1.35,4.6,1.35,7.199c0,2.535-0.399,4.95-1.199,7.25
c-0.801,2.301-1.968,4.335-3.5,6.101c-1.535,1.767-3.367,3.167-5.5,4.2c-2.135,1.034-4.567,1.55-7.301,1.55
c-2.399,0-4.634-0.383-6.699-1.15c-2.067-0.766-3.867-1.865-5.4-3.3c-1.534-1.433-2.75-3.15-3.65-5.15
c-0.899-2-1.384-4.199-1.449-6.6h-6.301c0.066,3.334,0.7,6.334,1.9,9c1.2,2.667,2.815,4.917,4.85,6.75
c2.033,1.834,4.434,3.234,7.2,4.2c2.766,0.966,5.783,1.45,9.05,1.45c3.333,0,6.483-0.585,9.45-1.75
c2.966-1.166,5.55-2.801,7.75-4.9s3.933-4.6,5.2-7.5c1.266-2.9,1.9-6.05,1.9-9.45c0-3.532-0.551-6.782-1.65-9.75
c-0.263-0.708-0.556-1.39-0.871-2.05h-7.31C309.239,66.868,309.976,68.16,310.558,69.583z"/>
<path fill="#39A85B" d="M479.301,70.713c0.766,2.268,1.15,4.667,1.15,7.2c0,2.399-0.4,4.7-1.2,6.899c-0.8,2.2-1.95,4.117-3.45,5.75
c-1.5,1.635-3.268,2.935-5.3,3.9c-2.034,0.967-4.317,1.45-6.851,1.45c-3.066,0-5.699-0.466-7.899-1.4
c-2.2-0.933-4.018-2.216-5.45-3.85c-1.435-1.633-2.484-3.55-3.15-5.75c-0.667-2.2-1-4.533-1-7c0-2.601,0.383-5.016,1.15-7.25
c0.634-1.848,1.534-3.489,2.671-4.95h-4.921h-0.2h-6.284c0.074,6.122,0.548,11.346,1.435,15.65c0.966,4.699,2.45,8.517,4.45,11.449
c2,2.935,4.532,5.051,7.6,6.351c3.065,1.3,6.732,1.95,11,1.95c3.466,0,6.65-0.585,9.55-1.75c2.9-1.166,5.4-2.801,7.5-4.9
c2.101-2.1,3.733-4.6,4.9-7.5c1.165-2.9,1.75-6.05,1.75-9.45c0-3.399-0.55-6.532-1.65-9.399c-0.321-0.838-0.693-1.631-1.092-2.4
h-7.311C477.79,67.179,478.666,68.838,479.301,70.713z"/>
<path fill="#39A85B" d="M445.551,55.151c0.466-3.633,1.4-7.016,2.8-10.15c1.4-3.133,3.366-5.732,5.9-7.8
c2.532-2.065,5.833-3.1,9.899-3.1s7.383,1.2,9.95,3.6c2.565,2.4,4.116,5.534,4.65,9.4h6.3c-0.734-6.2-2.935-10.8-6.6-13.8
c-3.668-3-8.635-4.5-14.9-4.5c-3.8,0-7.067,0.667-9.8,2c-2.734,1.334-5.018,3.066-6.851,5.199c-1.834,2.135-3.3,4.518-4.399,7.15
c-1.101,2.635-1.95,5.234-2.55,7.8c-0.601,2.567-0.984,4.984-1.15,7.25c-0.088,1.188-0.15,2.25-0.192,3.2h6.367
C445.088,59.391,445.273,57.315,445.551,55.151z"/>
<path fill="#39A85B" d="M454.2,60.551c2.165-0.966,4.615-1.45,7.35-1.45c2.666,0,5.05,0.484,7.15,1.45
c0.559,0.257,1.09,0.543,1.601,0.85h9.021c-0.286-0.337-0.563-0.682-0.871-1c-2-2.065-4.418-3.683-7.25-4.85
c-2.835-1.166-6.018-1.75-9.551-1.75c-4,0-7.684,1.066-11.05,3.199c-1.956,1.24-3.615,2.711-4.997,4.4h6.942
C453.074,61.094,453.624,60.808,454.2,60.551z"/>
</g>
<g>
<g>
<path class="st6" d="M21.8,66.7c0,1.6-0.9,2.9-2,2.9s-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9s2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M21.776,66.719c0,1.577-0.896,2.867-1.993,2.867s-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.896-2.867,1.993-2.867s1.993,1.29,1.993,2.867V66.719z"/>
</g>
<g>
<path class="st6" d="M69.5,66.7c0,1.6-0.9,2.9-2,2.9s-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9s2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M69.522,66.719c0,1.577-0.896,2.867-1.993,2.867s-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.896-2.867,1.993-2.867s1.993,1.29,1.993,2.867V66.719z"/>
</g>
</g>
<g>
<g>
<path class="st6" d="M104.4,66.7c0,1.6-0.9,2.9-2,2.9c-1.1,0-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9c1.1,0,2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M104.366,66.719c0,1.577-0.897,2.867-1.994,2.867c-1.096,0-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.897-2.867,1.993-2.867c1.097,0,1.994,1.29,1.994,2.867V66.719z"/>
</g>
<g>
<path class="st6" d="M152.1,66.7c0,1.6-0.9,2.9-2,2.9c-1.1,0-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9c1.1,0,2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M152.112,66.719c0,1.577-0.897,2.867-1.994,2.867c-1.096,0-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.897-2.867,1.993-2.867c1.097,0,1.994,1.29,1.994,2.867V66.719z"/>
</g>
</g>
<g>
<g>
<path class="st6" d="M271.1,66.7c0,1.6-0.9,2.9-2,2.9s-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9s2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M271.071,66.719c0,1.577-0.896,2.867-1.993,2.867s-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.896-2.867,1.993-2.867s1.993,1.29,1.993,2.867V66.719z"/>
</g>
<g>
<path class="st6" d="M318.8,66.7c0,1.6-0.9,2.9-2,2.9s-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9s2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M318.817,66.719c0,1.577-0.896,2.867-1.993,2.867s-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.896-2.867,1.993-2.867s1.993,1.29,1.993,2.867V66.719z"/>
</g>
</g>
<g>
<g>
<path class="st6" d="M355.2,66.7c0,1.6-0.9,2.9-2,2.9s-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9s2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M355.188,66.719c0,1.577-0.896,2.867-1.993,2.867s-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.896-2.867,1.993-2.867s1.993,1.29,1.993,2.867V66.719z"/>
</g>
<g>
<path class="st6" d="M402.9,66.7c0,1.6-0.9,2.9-2,2.9c-1.1,0-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9c1.1,0,2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M402.935,66.719c0,1.577-0.897,2.867-1.993,2.867c-1.097,0-1.994-1.29-1.994-2.867v-7.713
c0-1.577,0.897-2.867,1.994-2.867c1.096,0,1.993,1.29,1.993,2.867V66.719z"/>
</g>
</g>
<g>
<g>
<path class="st6" d="M438.5,66.7c0,1.6-0.9,2.9-2,2.9c-1.1,0-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9c1.1,0,2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M438.542,66.719c0,1.577-0.897,2.867-1.994,2.867c-1.096,0-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.897-2.867,1.993-2.867c1.097,0,1.994,1.29,1.994,2.867V66.719z"/>
</g>
<g>
<path class="st6" d="M486.3,66.7c0,1.6-0.9,2.9-2,2.9c-1.1,0-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9c1.1,0,2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M486.288,66.719c0,1.577-0.897,2.867-1.994,2.867c-1.096,0-1.993-1.29-1.993-2.867v-7.713
c0-1.577,0.897-2.867,1.993-2.867c1.097,0,1.994,1.29,1.994,2.867V66.719z"/>
</g>
</g>
<g>
<g>
<path class="st6" d="M187.7,66.7c0,1.6-0.9,2.9-2,2.9c-1.1,0-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9c1.1,0,2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M187.717,66.719c0,1.577-0.896,2.867-1.992,2.867c-1.097,0-1.994-1.29-1.994-2.867v-7.713
c0-1.577,0.897-2.867,1.994-2.867c1.096,0,1.992,1.29,1.992,2.867V66.719z"/>
</g>
<g>
<path class="st6" d="M235.5,66.7c0,1.6-0.9,2.9-2,2.9c-1.1,0-2-1.3-2-2.9V59c0-1.6,0.9-2.9,2-2.9c1.1,0,2,1.3,2,2.9V66.7z"/>
<path fill="#FFFFFF" d="M235.464,66.719c0,1.577-0.897,2.867-1.993,2.867c-1.098,0-1.994-1.29-1.994-2.867v-7.713
c0-1.577,0.896-2.867,1.994-2.867c1.096,0,1.993,1.29,1.993,2.867V66.719z"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="norway" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 25.5 17" style="enable-background:new 0 0 25.5 17;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F7F7F7;}
</style>
<path class="st0" d="M25.5,0H0v17h25.5V0L25.5,0z"/>
</svg>

Before

Width:  |  Height:  |  Size: 461 B

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 1141.312 600.312" style="enable-background:new 0 0 1141.312 600.312;" xml:space="preserve">
<style type="text/css">
.st0{fill:#273476;}
.st1{fill:#FFFFFF;}
.st2{fill:#D0202D;}
.st3{fill:#ED2224;}
.st4{fill:none;stroke:#D1D3D4;stroke-width:7;stroke-miterlimit:10;}
</style>
<g>
<g>
<polygon class="st0" points="0.001,400.156 0.001,360.156 0.001,240.156 0.001,200.156 288.509,200.156 0,55.902 0,544.41
288.509,400.156 "/>
<polygon class="st0" points="500.313,0 111.803,0 500.313,194.255 "/>
<polygon class="st0" points="112.429,600 500.313,600 500.313,406.057 "/>
<polygon class="st0" points="0,0 0,0 0,0 "/>
<rect y="544.41" class="st1" width="0" height="55.59"/>
<rect x="0" y="0" class="st1" width="0" height="55.902"/>
<rect x="500.313" y="600" class="st1" width="40" height="0.312"/>
<polygon class="st1" points="0.001,200.156 0.001,240.156 540.313,240.156 540.313,0 500.313,0 500.313,194.255 111.803,0
0.001,0 400.315,200.156 333.232,200.156 0.001,33.541 0.001,0 0,0 0,0 0,55.902 288.509,200.156 "/>
<polygon class="st1" points="540.313,360.156 0.001,360.156 0.001,400.156 288.509,400.156 0,544.41 0,600 0.626,600
400.315,400.156 467.396,400.156 67.709,600 112.429,600 500.313,406.057 500.313,600 540.313,600 "/>
<rect x="540.313" y="600" class="st2" width="54.999" height="0.312"/>
<polygon class="st2" points="0.001,240.156 0.001,360.156 540.313,360.156 540.313,600 595.312,600 595.312,0 540.313,0
540.313,240.156 "/>
<polygon class="st2" points="400.315,400.156 0.626,600 67.709,600 467.396,400.156 "/>
<polygon class="st2" points="333.232,200.156 400.315,200.156 0.001,0 0.001,33.541 "/>
<rect x="595.312" y="600" class="st1" width="10" height="0.312"/>
</g>
<g>
<polygon class="st3" points="1141.312,0 696.312,0 696.312,112.5 747.562,112.5 747.562,243.75 878.812,243.75 878.812,356.25
747.562,356.25 747.562,487.5 696.312,487.5 696.312,600 1141.312,600 "/>
<polygon class="st1" points="747.562,487.5 747.562,356.25 878.812,356.25 878.812,243.75 747.562,243.75 747.562,112.5
696.312,112.5 696.312,487.5 "/>
</g>
</g>
<line class="st4" x1="643.625" y1="0" x2="643.625" y2="600.312"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 817 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

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