From e518785dc58b9c6c0af868ad0f8e265e49448f39 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 25 Jun 2015 18:01:43 -0700 Subject: [PATCH 01/70] Prompt for password --- Gruntfile.js | 19 ++++++++++++++++--- package.json | 1 + 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 15565958c9..be4d85423c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -21,7 +21,6 @@ module.exports = function (grunt) { env.NODE_ENV = target; var certificateFile = grunt.option('certificateFile'); - var certificatePassword = grunt.option('certificatePassword'); var version = function (str) { var match = str.match(/(\d+\.\d+\.\d+)/); @@ -103,6 +102,20 @@ module.exports = function (grunt) { } }, + prompt: { + 'create-windows-installer': { + options: { + questions: [ + { + config: 'certificatePassword', + type: 'password', + message: 'Certificate Password: ' + } + ] + } + } + }, + rcedit: { exes: { files: [{ @@ -137,7 +150,7 @@ module.exports = function (grunt) { title: APPNAME, exe: BASENAME + '.exe', version: packagejson.version, - signWithParams: '/f ' + certificateFile + ' /p ' + certificatePassword + ' /tr http://timestamp.comodoca.com/rfc3161' + signWithParams: '/f ' + certificateFile + ' /p <%= certificatePassword %> /tr http://timestamp.comodoca.com/rfc3161' }, // docker binaries @@ -372,7 +385,7 @@ module.exports = function (grunt) { } if (process.platform === 'win32') { - grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'create-windows-installer', 'rename:installer']); + grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); } else { grunt.registerTask('release', ['clean:release', 'download-binary', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'plistbuddy', 'shell:sign', 'shell:zip']); } diff --git a/package.json b/package.json index e49b7c56a2..8ed9724ce5 100644 --- a/package.json +++ b/package.json @@ -81,6 +81,7 @@ "grunt-if-missing": "^1.0.0", "grunt-newer": "^1.1.1", "grunt-plistbuddy": "^0.1.1", + "grunt-prompt": "^1.3.0", "grunt-rcedit": "^0.3.1", "grunt-rename": "^0.1.4", "grunt-shell": "^1.1.2", From 49f64abbbd1886016275bd0b7f5f38d8a96b6b8a Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 25 Jun 2015 19:43:41 -0700 Subject: [PATCH 02/70] Removing mac-specific Finder string --- src/components/ContainerHomeFolders.react.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js index 53ba985fe5..c1761666b4 100644 --- a/src/components/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -20,7 +20,7 @@ var ContainerHomeFolder = React.createClass({ if (hostVolume.indexOf(util.windowsToLinuxPath(util.home())) === -1) { dialog.showMessageBox({ - message: 'Enable all volumes to edit files via Finder? This may not work with all database containers.', + message: `Enable all volumes to edit files? This may not work with all database containers.`, buttons: ['Enable Volumes', 'Cancel'] }, (index) => { if (index === 0) { From fe4e0ae474079940873a84f9f5c76c06d792b94c Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 25 Jun 2015 19:59:49 -0700 Subject: [PATCH 03/70] Fetch more container data on first load --- src/utils/DockerUtil.js | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/src/utils/DockerUtil.js b/src/utils/DockerUtil.js index 393786e5d2..58619597de 100644 --- a/src/utils/DockerUtil.js +++ b/src/utils/DockerUtil.js @@ -120,9 +120,9 @@ export default { }, fetchContainer (id) { - this.client.getContainer(id).inspect((error, container) => { + this.client.getContainer(id).inspect((error, container) => { if (error) { - containerServerActions.error({name: id, error}); + containerServerActions.error({name: id, error}); } else { container.Name = container.Name.replace('/', ''); containerServerActions.updated({container}); @@ -135,26 +135,23 @@ export default { if (err) { return; } - - let modifiedContainers = _.map(containers, container => { - container.Name = container.Names[0].replace('/', ''); - delete container.Names; - - // HACK: fill in some data based on simple list data - container.State = {}; - container.Config = { - Image: container.Image - }; - if (container.Status.indexOf('Exited') !== -1) { - container.State.Stopped = true; - } else if (container.Status.indexOf('Paused') !== -1) { - container.State.Stopped = true; - } else if (container.Status.indexOf('Up') !== -1) { - container.State.Running = true; + async.map(containers, (container, callback) => { + this.client.getContainer(container.Id).inspect((error, container) => { + if (error) { + callback(null, null); + return; + } + container.Name = container.Name.replace('/', ''); + callback(null, container); + }); + }, (err, containers) => { + containers = containers.filter(c => c !== null); + if (err) { + // TODO: add a global error handler for this + return; } - return container; + containerServerActions.allUpdated({containers: _.indexBy(containers.concat(_.values(this.placeholders)), 'Name')}); }); - containerServerActions.allUpdated({containers: _.indexBy(modifiedContainers.concat(_.values(this.placeholders)), 'Name')}); }); }, From 688f2c9263f284492d17f98aaf67f163f7655354 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Thu, 25 Jun 2015 20:00:09 -0700 Subject: [PATCH 04/70] Bump to 0.7.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8ed9724ce5..658293acb3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.7.3", + "version": "0.7.4", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 56e8cc04b4135b22240411d4e0b24fa41d10f473 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 30 Jun 2015 18:04:52 -0700 Subject: [PATCH 05/70] Update ROADMAP.md --- ROADMAP.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ROADMAP.md b/ROADMAP.md index 3417331b8c..c2e83843a0 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -29,3 +29,8 @@ **June 2015** * Microsoft Windows port + +**July 2015** + +* Refactor to Flux Architecture +* Stability & code quality improvements From 1acc08608909872adb683d2cebcf30937e7579e1 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 30 Jun 2015 18:05:01 -0700 Subject: [PATCH 06/70] Update ROADMAP.md --- ROADMAP.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ROADMAP.md b/ROADMAP.md index c2e83843a0..8eeb8d6ec7 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -28,7 +28,7 @@ **June 2015** -* Microsoft Windows port +* Microsoft Windows alpha **July 2015** From 4339ba81956c352123ba95da7c2515687d0e7053 Mon Sep 17 00:00:00 2001 From: TeckniX Date: Mon, 6 Jul 2015 13:02:38 -0400 Subject: [PATCH 07/70] Fixed Tty and Stdin save Signed-off-by: TeckniX --- src/utils/DockerUtil.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/utils/DockerUtil.js b/src/utils/DockerUtil.js index 58619597de..e2b0e36c61 100644 --- a/src/utils/DockerUtil.js +++ b/src/utils/DockerUtil.js @@ -220,6 +220,11 @@ export default { existingData.Env = existingData.Config.Env; } + if ((!existingData.Tty || !existingData.OpenStdin) && existingData.Config && (existingData.Config.Tty || existingData.Config.OpenStdin)) { + existingData.Tty = existingData.Config.Tty; + existingData.OpenStdin = existingData.Config.OpenStdin; + } + var fullData = _.extend(existingData, data); this.createContainer(name, fullData); }); From aee335bc9e4e976bbf0992ef2a5f899a3f045d69 Mon Sep 17 00:00:00 2001 From: TeckniX Date: Wed, 8 Jul 2015 18:29:43 -0400 Subject: [PATCH 08/70] Migrated all require to ES6 imports Signed-off-by: TeckniX --- src/app.js | 33 +++++++++-------- src/browser.js | 16 ++++----- src/components/Account.react.js | 14 ++++---- src/components/AccountLogin.react.js | 14 ++++---- src/components/AccountSignup.react.js | 12 +++---- src/components/ContainerDetails.react.js | 14 ++++---- .../ContainerDetailsHeader.react.js | 2 +- .../ContainerDetailsSubheader.react.js | 16 ++++----- src/components/ContainerHome.react.js | 22 ++++++------ src/components/ContainerHomeFolders.react.js | 21 +++++------ src/components/ContainerHomeLogs.react.js | 10 +++--- src/components/ContainerHomePreview.react.js | 10 +++--- src/components/ContainerList.react.js | 4 +-- src/components/ContainerListItem.react.js | 15 ++++---- src/components/ContainerLogs.react.js | 6 ++-- src/components/ContainerProgress.react.js | 2 +- src/components/ContainerSettings.react.js | 8 ++--- .../ContainerSettingsAdvanced.react.js | 8 ++--- .../ContainerSettingsGeneral.react.js | 14 ++++---- .../ContainerSettingsPorts.react.js | 12 +++---- .../ContainerSettingsVolumes.react.js | 14 ++++---- src/components/Containers.react.js | 20 +++++------ src/components/Header.react.js | 21 ++++++----- src/components/ImageCard.react.js | 20 +++++------ src/components/NewContainerPull.react.js | 12 +++---- src/components/NewContainerSearch.react.js | 24 ++++++------- src/components/Preferences.react.js | 6 ++-- src/components/Radial.react.js | 4 +-- src/components/Setup.react.js | 16 ++++----- src/routes.js | 36 +++++++++---------- src/stores/LogStore.js | 10 +++--- src/stores/SetupStore.js | 26 +++++++------- src/utils/ContainerUtil.js | 4 +-- src/utils/DockerMachineUtil.js | 12 +++---- src/utils/HubUtil.js | 8 ++--- src/utils/MetricsUtil.js | 16 ++++----- src/utils/RegHubUtil.js | 14 ++++---- src/utils/ResourcesUtil.js | 4 +-- src/utils/SetupUtil.js | 18 +++++----- src/utils/URLUtil.js | 6 ++-- src/utils/Util.js | 14 ++++---- src/utils/VirtualBoxUtil.js | 6 ++-- src/utils/WebUtil.js | 13 +++---- 43 files changed, 288 insertions(+), 289 deletions(-) diff --git a/src/app.js b/src/app.js index fa6d1c840d..6c300f2dc9 100644 --- a/src/app.js +++ b/src/app.js @@ -1,24 +1,23 @@ require.main.paths.splice(0, 0, process.env.NODE_PATH); -var remote = require('remote'); +import remote from 'remote'; var Menu = remote.require('menu'); -var React = require('react'); -var SetupStore = require('./stores/SetupStore'); -var ipc = require('ipc'); -var machine = require('./utils/DockerMachineUtil'); -var metrics = require('./utils/MetricsUtil'); -var router = require('./router'); -var template = require('./menutemplate'); -var webUtil = require('./utils/WebUtil'); -var hubUtil = require('./utils/HubUtil'); +import React from 'react'; +import SetupStore from './stores/SetupStore'; +import ipc from 'ipc'; +import machine from './utils/DockerMachineUtil'; +import metrics from './utils/MetricsUtil'; +import template from './menutemplate'; +import webUtil from './utils/WebUtil'; +import hubUtil from './utils/HubUtil'; var urlUtil = require ('./utils/URLUtil'); var app = remote.require('app'); -var request = require('request'); -var docker = require('./utils/DockerUtil'); -var hub = require('./utils/HubUtil'); -var Router = require('react-router'); -var routes = require('./routes'); -var routerContainer = require('./router'); -var repositoryActions = require('./actions/RepositoryActions'); +import request from 'request'; +import docker from './utils/DockerUtil'; +import hub from './utils/HubUtil'; +import Router from 'react-router'; +import routes from './routes'; +import routerContainer from './router'; +import repositoryActions from './actions/RepositoryActions'; hubUtil.init(); diff --git a/src/browser.js b/src/browser.js index feba1af5ca..9ff97d3011 100644 --- a/src/browser.js +++ b/src/browser.js @@ -1,11 +1,11 @@ -var app = require('app'); -var autoUpdater = require('auto-updater'); -var BrowserWindow = require('browser-window'); -var fs = require('fs'); -var os = require('os'); -var ipc = require('ipc'); -var path = require('path'); -var child_process = require('child_process'); +import app from 'app'; +import autoUpdater from 'auto-updater'; +import BrowserWindow from 'browser-window'; +import fs from 'fs'; +import os from 'os'; +import ipc from 'ipc'; +import path from 'path'; +import child_process from 'child_process'; process.env.NODE_PATH = path.join(__dirname, 'node_modules'); process.env.RESOURCES_PATH = path.join(__dirname, '/../resources'); diff --git a/src/components/Account.react.js b/src/components/Account.react.js index bf5c486d4c..eed1b87aec 100644 --- a/src/components/Account.react.js +++ b/src/components/Account.react.js @@ -1,10 +1,10 @@ -var React = require('react/addons'); -var Router = require('react-router'); -var RetinaImage = require('react-retina-image'); -var Header = require('./Header.react'); -var metrics = require('../utils/MetricsUtil'); -var accountStore = require('../stores/AccountStore'); -var accountActions = require('../actions/AccountActions'); +import React from 'react/addons'; +import Router from 'react-router'; +import RetinaImage from 'react-retina-image'; +import Header from './Header.react'; +import metrics from '../utils/MetricsUtil'; +import accountStore from '../stores/AccountStore'; +import accountActions from '../actions/AccountActions'; module.exports = React.createClass({ mixins: [Router.Navigation], diff --git a/src/components/AccountLogin.react.js b/src/components/AccountLogin.react.js index 427c272511..4c9bf66e98 100644 --- a/src/components/AccountLogin.react.js +++ b/src/components/AccountLogin.react.js @@ -1,10 +1,10 @@ -var _ = require('underscore'); -var React = require('react/addons'); -var Router = require('react-router'); -var validator = require('validator'); -var accountActions = require('../actions/AccountActions'); -var metrics = require('../utils/MetricsUtil'); -var shell = require('shell'); +import _ from 'underscore'; +import React from 'react/addons'; +import Router from 'react-router'; +import validator from 'validator'; +import accountActions from '../actions/AccountActions'; +import metrics from '../utils/MetricsUtil'; +import shell from 'shell'; module.exports = React.createClass({ mixins: [Router.Navigation, React.addons.LinkedStateMixin], diff --git a/src/components/AccountSignup.react.js b/src/components/AccountSignup.react.js index 6c4b85da11..f1a23ff478 100644 --- a/src/components/AccountSignup.react.js +++ b/src/components/AccountSignup.react.js @@ -1,9 +1,9 @@ -var _ = require('underscore'); -var React = require('react/addons'); -var Router = require('react-router'); -var validator = require('validator'); -var accountActions = require('../actions/AccountActions'); -var metrics = require('../utils/MetricsUtil'); +import _ from 'underscore'; +import React from 'react/addons'; +import Router from 'react-router'; +import validator from 'validator'; +import accountActions from '../actions/AccountActions'; +import metrics from '../utils/MetricsUtil'; module.exports = React.createClass({ mixins: [Router.Navigation, React.addons.LinkedStateMixin], diff --git a/src/components/ContainerDetails.react.js b/src/components/ContainerDetails.react.js index 793de1cbd2..e1d5668760 100644 --- a/src/components/ContainerDetails.react.js +++ b/src/components/ContainerDetails.react.js @@ -1,10 +1,10 @@ -var React = require('react/addons'); -var Router = require('react-router'); -var ContainerDetailsHeader = require('./ContainerDetailsHeader.react'); -var ContainerDetailsSubheader = require('./ContainerDetailsSubheader.react'); -var containerUtil = require('../utils/ContainerUtil'); -var util = require('../utils/Util'); -var _ = require('underscore'); +import React from 'react/addons'; +import Router from 'react-router'; +import ContainerDetailsHeader from './ContainerDetailsHeader.react'; +import ContainerDetailsSubheader from './ContainerDetailsSubheader.react'; +import containerUtil from '../utils/ContainerUtil'; +import util from '../utils/Util'; +import _ from 'underscore'; var ContainerDetails = React.createClass({ contextTypes: { diff --git a/src/components/ContainerDetailsHeader.react.js b/src/components/ContainerDetailsHeader.react.js index 363e55a3d7..70e90e3ef8 100644 --- a/src/components/ContainerDetailsHeader.react.js +++ b/src/components/ContainerDetailsHeader.react.js @@ -1,4 +1,4 @@ -var React = require('react/addons'); +import React from 'react/addons'; var ContainerDetailsHeader = React.createClass({ render: function () { diff --git a/src/components/ContainerDetailsSubheader.react.js b/src/components/ContainerDetailsSubheader.react.js index e53204bd90..b793e8332b 100644 --- a/src/components/ContainerDetailsSubheader.react.js +++ b/src/components/ContainerDetailsSubheader.react.js @@ -1,11 +1,11 @@ -var _ = require('underscore'); -var React = require('react'); -var shell = require('shell'); -var metrics = require('../utils/MetricsUtil'); -var ContainerUtil = require('../utils/ContainerUtil'); -var classNames = require('classnames'); -var containerActions = require('../actions/ContainerActions'); -var dockerMachineUtil = require('../utils/DockerMachineUtil'); +import _ from 'underscore'; +import React from 'react'; +import shell from 'shell'; +import metrics from '../utils/MetricsUtil'; +import ContainerUtil from '../utils/ContainerUtil'; +import classNames from 'classnames'; +import containerActions from '../actions/ContainerActions'; +import dockerMachineUtil from '../utils/DockerMachineUtil'; var ContainerDetailsSubheader = React.createClass({ contextTypes: { diff --git a/src/components/ContainerHome.react.js b/src/components/ContainerHome.react.js index 198730eeb1..a0af212ed5 100644 --- a/src/components/ContainerHome.react.js +++ b/src/components/ContainerHome.react.js @@ -1,12 +1,12 @@ -var _ = require('underscore'); -var $ = require('jquery'); -var React = require('react/addons'); -var Radial = require('./Radial.react'); -var ContainerProgress = require('./ContainerProgress.react'); -var ContainerHomePreview = require('./ContainerHomePreview.react'); -var ContainerHomeLogs = require('./ContainerHomeLogs.react'); -var ContainerHomeFolders = require('./ContainerHomeFolders.react'); -var shell = require('shell'); +import _ from 'underscore'; +import $ from 'jquery'; +import React from 'react/addons'; +import Radial from './Radial.react'; +import ContainerProgress from './ContainerProgress.react'; +import ContainerHomePreview from './ContainerHomePreview.react'; +import ContainerHomeLogs from './ContainerHomeLogs.react'; +import ContainerHomeFolders from './ContainerHomeFolders.react'; +import shell from 'shell'; var ContainerHome = React.createClass({ contextTypes: { @@ -39,11 +39,11 @@ var ContainerHome = React.createClass({ showWeb: function () { return _.keys(this.props.ports).length > 0; }, - + showFolders: function () { return this.props.container.Volumes && _.keys(this.props.container.Volumes).length > 0 && this.props.container.State.Running; }, - + render: function () { if (!this.props.container) { return; diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js index c1761666b4..2755663d79 100644 --- a/src/components/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -1,13 +1,14 @@ -var _ = require('underscore'); -var React = require('react/addons'); -var RetinaImage = require('react-retina-image'); -var path = require('path'); -var shell = require('shell'); -var util = require('../utils/Util'); -var metrics = require('../utils/MetricsUtil'); -var containerActions = require('../actions/ContainerActions'); -var dialog = require('remote').require('dialog'); -var mkdirp = require('mkdirp'); +import _ from 'underscore'; +import React from 'react/addons'; +import RetinaImage from 'react-retina-image'; +import path from 'path'; +import shell from 'shell'; +import util from '../utils/Util'; +import metrics from '../utils/MetricsUtil'; +import containerActions from '../actions/ContainerActions'; +import remote from 'remote'; +var dialog = remote.require('dialog'); +import mkdirp from 'mkdirp'; var ContainerHomeFolder = React.createClass({ contextTypes: { diff --git a/src/components/ContainerHomeLogs.react.js b/src/components/ContainerHomeLogs.react.js index d673c82db3..0853f98692 100644 --- a/src/components/ContainerHomeLogs.react.js +++ b/src/components/ContainerHomeLogs.react.js @@ -1,8 +1,8 @@ -var $ = require('jquery'); -var React = require('react/addons'); -var LogStore = require('../stores/LogStore'); -var Router = require('react-router'); -var metrics = require('../utils/MetricsUtil'); +import $ from 'jquery'; +import React from 'react/addons'; +import LogStore from '../stores/LogStore'; +import Router from 'react-router'; +import metrics from '../utils/MetricsUtil'; var _prevBottom = 0; diff --git a/src/components/ContainerHomePreview.react.js b/src/components/ContainerHomePreview.react.js index c4d7818d4f..74efe462df 100644 --- a/src/components/ContainerHomePreview.react.js +++ b/src/components/ContainerHomePreview.react.js @@ -1,8 +1,8 @@ -var _ = require('underscore'); -var React = require('react/addons'); -var request = require('request'); -var shell = require('shell'); -var metrics = require('../utils/MetricsUtil'); +import _ from 'underscore'; +import React from 'react/addons'; +import request from 'request'; +import shell from 'shell'; +import metrics from '../utils/MetricsUtil'; var ContainerHomePreview = React.createClass({ contextTypes: { diff --git a/src/components/ContainerList.react.js b/src/components/ContainerList.react.js index 4a042b4c81..ee557c0110 100644 --- a/src/components/ContainerList.react.js +++ b/src/components/ContainerList.react.js @@ -1,5 +1,5 @@ -var React = require('react/addons'); -var ContainerListItem = require('./ContainerListItem.react'); +import React from 'react/addons'; +import ContainerListItem from './ContainerListItem.react'; var ContainerList = React.createClass({ componentWillMount: function () { diff --git a/src/components/ContainerListItem.react.js b/src/components/ContainerListItem.react.js index 0955ef2f74..589ff6ef3c 100644 --- a/src/components/ContainerListItem.react.js +++ b/src/components/ContainerListItem.react.js @@ -1,12 +1,11 @@ -var $ = require('jquery'); -var React = require('react/addons'); -var Router = require('react-router'); -var remote = require('remote'); +import $ from 'jquery'; +import React from 'react/addons'; +import Router from 'react-router'; +import remote from 'remote'; var dialog = remote.require('dialog'); -var metrics = require('../utils/MetricsUtil'); -var OverlayTrigger = require('react-bootstrap').OverlayTrigger; -var Tooltip = require('react-bootstrap').Tooltip; -var containerActions = require('../actions/ContainerActions'); +import metrics from '../utils/MetricsUtil'; +import {OverlayTrigger, Tooltip} from 'react-bootstrap'; +import containerActions from '../actions/ContainerActions'; var ContainerListItem = React.createClass({ handleItemMouseEnter: function () { diff --git a/src/components/ContainerLogs.react.js b/src/components/ContainerLogs.react.js index 6355154ee4..7da5e84129 100644 --- a/src/components/ContainerLogs.react.js +++ b/src/components/ContainerLogs.react.js @@ -1,6 +1,6 @@ -var $ = require('jquery'); -var React = require('react/addons'); -var LogStore = require('../stores/LogStore'); +import $ from 'jquery'; +import React from 'react/addons'; +import LogStore from '../stores/LogStore'; var _prevBottom = 0; diff --git a/src/components/ContainerProgress.react.js b/src/components/ContainerProgress.react.js index 175fb4d72a..ba51d4564d 100644 --- a/src/components/ContainerProgress.react.js +++ b/src/components/ContainerProgress.react.js @@ -1,4 +1,4 @@ -var React = require('react'); +import React from 'react'; /* diff --git a/src/components/ContainerSettings.react.js b/src/components/ContainerSettings.react.js index def09db363..6a9f191781 100644 --- a/src/components/ContainerSettings.react.js +++ b/src/components/ContainerSettings.react.js @@ -1,7 +1,7 @@ -var $ = require('jquery'); -var _ = require('underscore'); -var React = require('react/addons'); -var Router = require('react-router'); +import $ from 'jquery'; +import _ from 'underscore'; +import React from 'react/addons'; +import Router from 'react-router'; var ContainerSettings = React.createClass({ contextTypes: { diff --git a/src/components/ContainerSettingsAdvanced.react.js b/src/components/ContainerSettingsAdvanced.react.js index c041445472..6120498c3c 100644 --- a/src/components/ContainerSettingsAdvanced.react.js +++ b/src/components/ContainerSettingsAdvanced.react.js @@ -1,7 +1,7 @@ -var React = require('react/addons'); -var metrics = require('../utils/MetricsUtil'); -var ContainerUtil = require('../utils/ContainerUtil'); -var containerActions = require('../actions/ContainerActions'); +import React from 'react/addons'; +import metrics from '../utils/MetricsUtil'; +import ContainerUtil from '../utils/ContainerUtil'; +import containerActions from '../actions/ContainerActions'; var ContainerSettingsAdvanced = React.createClass({ mixins: [React.addons.LinkedStateMixin], diff --git a/src/components/ContainerSettingsGeneral.react.js b/src/components/ContainerSettingsGeneral.react.js index e95bee4b06..a9650d43ce 100644 --- a/src/components/ContainerSettingsGeneral.react.js +++ b/src/components/ContainerSettingsGeneral.react.js @@ -1,11 +1,11 @@ -var _ = require('underscore'); -var React = require('react/addons'); -var remote = require('remote'); -var metrics = require('../utils/MetricsUtil'); +import _ from 'underscore'; +import React from 'react/addons'; +import metrics from '../utils/MetricsUtil'; +import remote from 'remote'; var dialog = remote.require('dialog'); -var ContainerUtil = require('../utils/ContainerUtil'); -var containerActions = require('../actions/ContainerActions'); -var util = require('../utils/Util'); +import ContainerUtil from '../utils/ContainerUtil'; +import containerActions from '../actions/ContainerActions'; +import util from '../utils/Util'; var ContainerSettingsGeneral = React.createClass({ mixins: [React.addons.LinkedStateMixin], diff --git a/src/components/ContainerSettingsPorts.react.js b/src/components/ContainerSettingsPorts.react.js index 1738db5a5b..bfd2537b4b 100644 --- a/src/components/ContainerSettingsPorts.react.js +++ b/src/components/ContainerSettingsPorts.react.js @@ -1,9 +1,9 @@ -var _ = require('underscore'); -var React = require('react/addons'); -var shell = require('shell'); -var ContainerUtil = require('../utils/ContainerUtil'); -var metrics = require('../utils/MetricsUtil'); -var webPorts = require('../utils/Util').webPorts; +import _ from 'underscore'; +import React from 'react/addons'; +import shell from 'shell'; +import ContainerUtil from '../utils/ContainerUtil'; +import metrics from '../utils/MetricsUtil'; +import {webPorts} from '../utils/Util'; var ContainerSettingsPorts = React.createClass({ contextTypes: { diff --git a/src/components/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js index 154bc87666..2ebae2f44a 100644 --- a/src/components/ContainerSettingsVolumes.react.js +++ b/src/components/ContainerSettingsVolumes.react.js @@ -1,11 +1,11 @@ -var _ = require('underscore'); -var React = require('react/addons'); -var remote = require('remote'); +import _ from 'underscore'; +import React from 'react/addons'; +import remote from 'remote'; var dialog = remote.require('dialog'); -var shell = require('shell'); -var util = require('../utils/Util'); -var metrics = require('../utils/MetricsUtil'); -var containerActions = require('../actions/ContainerActions'); +import shell from 'shell'; +import util from '../utils/Util'; +import metrics from '../utils/MetricsUtil'; +import containerActions from '../actions/ContainerActions'; var ContainerSettingsVolumes = React.createClass({ handleChooseVolumeClick: function (dockerVol) { diff --git a/src/components/Containers.react.js b/src/components/Containers.react.js index 449afb4835..b7058b28df 100644 --- a/src/components/Containers.react.js +++ b/src/components/Containers.react.js @@ -1,13 +1,13 @@ -var $ = require('jquery'); -var _ = require('underscore'); -var React = require('react'); -var Router = require('react-router'); -var containerStore = require('../stores/ContainerStore'); -var ContainerList = require('./ContainerList.react'); -var Header = require('./Header.react'); -var metrics = require('../utils/MetricsUtil'); -var shell = require('shell'); -var machine = require('../utils/DockerMachineUtil'); +import $ from 'jquery'; +import _ from 'underscore'; +import React from 'react'; +import Router from 'react-router'; +import containerStore from '../stores/ContainerStore'; +import ContainerList from './ContainerList.react'; +import Header from './Header.react'; +import metrics from '../utils/MetricsUtil'; +import shell from 'shell'; +import machine from '../utils/DockerMachineUtil'; var Containers = React.createClass({ contextTypes: { diff --git a/src/components/Header.react.js b/src/components/Header.react.js index 826b8a4124..e69c14ea80 100644 --- a/src/components/Header.react.js +++ b/src/components/Header.react.js @@ -1,17 +1,16 @@ -var React = require('react/addons'); -var remote = require('remote'); -var RetinaImage = require('react-retina-image'); -var remote = require('remote'); -var ipc = require('ipc'); +import React from 'react/addons'; +import remote from 'remote'; +import RetinaImage from 'react-retina-image'; +import ipc from 'ipc'; var autoUpdater = remote.require('auto-updater'); -var util = require('../utils/Util'); -var metrics = require('../utils/MetricsUtil'); +import util from '../utils/Util'; +import metrics from '../utils/MetricsUtil'; var Menu = remote.require('menu'); var MenuItem = remote.require('menu-item'); -var accountStore = require('../stores/AccountStore'); -var accountActions = require('../actions/AccountActions'); -var Router = require('react-router'); -var classNames = require('classnames'); +import accountStore from '../stores/AccountStore'; +import accountActions from '../actions/AccountActions'; +import Router from 'react-router'; +import classNames from 'classnames'; var Header = React.createClass({ mixins: [Router.Navigation], diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index a92d69b19b..0e54e59770 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -1,13 +1,13 @@ -var $ = require('jquery'); -var React = require('react/addons'); -var Router = require('react-router'); -var shell = require('shell'); -var RetinaImage = require('react-retina-image'); -var metrics = require('../utils/MetricsUtil'); -var containerActions = require('../actions/ContainerActions'); -var containerStore = require('../stores/ContainerStore'); -var tagStore = require('../stores/TagStore'); -var tagActions = require('../actions/TagActions'); +import $ from 'jquery'; +import React from 'react/addons'; +import Router from 'react-router'; +import shell from 'shell'; +import RetinaImage from 'react-retina-image'; +import metrics from '../utils/MetricsUtil'; +import containerActions from '../actions/ContainerActions'; +import containerStore from '../stores/ContainerStore'; +import tagStore from '../stores/TagStore'; +import tagActions from '../actions/TagActions'; var ImageCard = React.createClass({ mixins: [Router.Navigation], diff --git a/src/components/NewContainerPull.react.js b/src/components/NewContainerPull.react.js index 24dbc63a13..c8e5bdd74c 100644 --- a/src/components/NewContainerPull.react.js +++ b/src/components/NewContainerPull.react.js @@ -1,9 +1,9 @@ -var React = require('react/addons'); -var Router = require('react-router'); -var shell = require('shell'); -var containerActions = require('../actions/ContainerActions'); -var containerStore = require('../stores/ContainerStore'); -var metrics = require('../utils/MetricsUtil'); +import React from 'react/addons'; +import Router from 'react-router'; +import shell from 'shell'; +import containerActions from '../actions/ContainerActions'; +import containerStore from '../stores/ContainerStore'; +import metrics from '../utils/MetricsUtil'; module.exports = React.createClass({ mixins: [Router.Navigation], diff --git a/src/components/NewContainerSearch.react.js b/src/components/NewContainerSearch.react.js index 9b19739aef..e5ad237d6c 100644 --- a/src/components/NewContainerSearch.react.js +++ b/src/components/NewContainerSearch.react.js @@ -1,15 +1,15 @@ -var _ = require('underscore'); -var React = require('react/addons'); -var Router = require('react-router'); -var RetinaImage = require('react-retina-image'); -var ImageCard = require('./ImageCard.react'); -var Promise = require('bluebird'); -var metrics = require('../utils/MetricsUtil'); -var classNames = require('classnames'); -var repositoryActions = require('../actions/RepositoryActions'); -var repositoryStore = require('../stores/RepositoryStore'); -var accountStore = require('../stores/AccountStore'); -var accountActions = require('../actions/AccountActions'); +import _ from 'underscore'; +import React from 'react/addons'; +import Router from 'react-router'; +import RetinaImage from 'react-retina-image'; +import ImageCard from './ImageCard.react'; +import Promise from 'bluebird'; +import metrics from '../utils/MetricsUtil'; +import classNames from 'classnames'; +import repositoryActions from '../actions/RepositoryActions'; +import repositoryStore from '../stores/RepositoryStore'; +import accountStore from '../stores/AccountStore'; +import accountActions from '../actions/AccountActions'; var _searchPromise = null; diff --git a/src/components/Preferences.react.js b/src/components/Preferences.react.js index fc96ce7dff..0fcbabfb54 100644 --- a/src/components/Preferences.react.js +++ b/src/components/Preferences.react.js @@ -1,6 +1,6 @@ -var React = require('react/addons'); -var metrics = require('../utils/MetricsUtil'); -var Router = require('react-router'); +import React from 'react/addons'; +import metrics from '../utils/MetricsUtil'; +import Router from 'react-router'; var Preferences = React.createClass({ mixins: [Router.Navigation], diff --git a/src/components/Radial.react.js b/src/components/Radial.react.js index bdc9ea1773..0989ea01b6 100644 --- a/src/components/Radial.react.js +++ b/src/components/Radial.react.js @@ -1,5 +1,5 @@ -var React = require('react'); -var classNames = require('classnames'); +import React from 'react'; +import classNames from 'classnames'; var Radial = React.createClass({ render: function () { diff --git a/src/components/Setup.react.js b/src/components/Setup.react.js index fb0cfab3e2..0d42839562 100644 --- a/src/components/Setup.react.js +++ b/src/components/Setup.react.js @@ -1,11 +1,11 @@ -var React = require('react/addons'); -var Router = require('react-router'); -var Radial = require('./Radial.react.js'); -var SetupStore = require('../stores/SetupStore'); -var RetinaImage = require('react-retina-image'); -var Header = require('./Header.react'); -var Util = require('../utils/Util'); -var metrics = require('../utils/MetricsUtil'); +import React from 'react/addons'; +import Router from 'react-router'; +import Radial from './Radial.react.js'; +import SetupStore from '../stores/SetupStore'; +import RetinaImage from 'react-retina-image'; +import Header from './Header.react'; +import Util from '../utils/Util'; +import metrics from '../utils/MetricsUtil'; var Setup = React.createClass({ mixins: [ Router.Navigation ], diff --git a/src/routes.js b/src/routes.js index ca86453266..086c34347d 100644 --- a/src/routes.js +++ b/src/routes.js @@ -1,21 +1,21 @@ -var React = require('react/addons'); -var Setup = require('./components/Setup.react'); -var Account = require('./components/Account.react'); -var AccountSignup = require('./components/AccountSignup.react'); -var AccountLogin = require('./components/AccountLogin.react'); -var Containers = require('./components/Containers.react'); -var ContainerDetails = require('./components/ContainerDetails.react'); -var ContainerHome = require('./components/ContainerHome.react'); -var ContainerLogs = require('./components/ContainerLogs.react'); -var ContainerSettings = require('./components/ContainerSettings.react'); -var ContainerSettingsGeneral = require('./components/ContainerSettingsGeneral.react'); -var ContainerSettingsPorts = require('./components/ContainerSettingsPorts.react'); -var ContainerSettingsVolumes = require('./components/ContainerSettingsVolumes.react'); -var ContainerSettingsAdvanced = require('./components/ContainerSettingsAdvanced.react'); -var Preferences = require('./components/Preferences.react'); -var NewContainerSearch = require('./components/NewContainerSearch.react'); -var NewContainerPull = require('./components/NewContainerPull.react'); -var Router = require('react-router'); +import React from 'react/addons'; +import Setup from './components/Setup.react'; +import Account from './components/Account.react'; +import AccountSignup from './components/AccountSignup.react'; +import AccountLogin from './components/AccountLogin.react'; +import Containers from './components/Containers.react'; +import ContainerDetails from './components/ContainerDetails.react'; +import ContainerHome from './components/ContainerHome.react'; +import ContainerLogs from './components/ContainerLogs.react'; +import ContainerSettings from './components/ContainerSettings.react'; +import ContainerSettingsGeneral from './components/ContainerSettingsGeneral.react'; +import ContainerSettingsPorts from './components/ContainerSettingsPorts.react'; +import ContainerSettingsVolumes from './components/ContainerSettingsVolumes.react'; +import ContainerSettingsAdvanced from './components/ContainerSettingsAdvanced.react'; +import Preferences from './components/Preferences.react'; +import NewContainerSearch from './components/NewContainerSearch.react'; +import NewContainerPull from './components/NewContainerPull.react'; +import Router from 'react-router'; var Route = Router.Route; var DefaultRoute = Router.DefaultRoute; diff --git a/src/stores/LogStore.js b/src/stores/LogStore.js index 5f81580d78..89ed09cebd 100644 --- a/src/stores/LogStore.js +++ b/src/stores/LogStore.js @@ -1,8 +1,8 @@ -var EventEmitter = require('events').EventEmitter; -var assign = require('object-assign'); -var Convert = require('ansi-to-html'); -var docker = require('../utils/DockerUtil'); -var stream = require('stream'); +import {EventEmitter} from 'events'; +import assign from 'object-assign'; +import Convert from 'ansi-to-html'; +import docker from '../utils/DockerUtil'; +import stream from 'stream'; var _convert = new Convert(); var _logs = {}; diff --git a/src/stores/SetupStore.js b/src/stores/SetupStore.js index 7d8061bb55..b1f15f00c5 100644 --- a/src/stores/SetupStore.js +++ b/src/stores/SetupStore.js @@ -1,16 +1,16 @@ -var EventEmitter = require('events').EventEmitter; -var _ = require('underscore'); -var path = require('path'); -var fs = require('fs'); -var Promise = require('bluebird'); -var machine = require('../utils/DockerMachineUtil'); -var virtualBox = require('../utils/VirtualBoxUtil'); -var setupUtil = require('../utils/SetupUtil'); -var util = require('../utils/Util'); -var assign = require('object-assign'); -var metrics = require('../utils/MetricsUtil'); -var bugsnag = require('bugsnag-js'); -var docker = require('../utils/DockerUtil'); +import {EventEmitter} from 'events'; +import _ from 'underscore'; +import path from 'path'; +import fs from 'fs'; +import Promise from 'bluebird'; +import machine from '../utils/DockerMachineUtil'; +import virtualBox from '../utils/VirtualBoxUtil'; +import setupUtil from '../utils/SetupUtil'; +import util from '../utils/Util'; +import assign from 'object-assign'; +import metrics from '../utils/MetricsUtil'; +import bugsnag from 'bugsnag-js'; +import docker from '../utils/DockerUtil'; var _currentStep = null; var _error = null; diff --git a/src/utils/ContainerUtil.js b/src/utils/ContainerUtil.js index b94c1632c5..129e77e0ad 100644 --- a/src/utils/ContainerUtil.js +++ b/src/utils/ContainerUtil.js @@ -1,5 +1,5 @@ -var _ = require('underscore'); -var docker = require('../utils/DockerUtil'); +import _ from 'underscore'; +import docker from '../utils/DockerUtil'; var ContainerUtil = { env: function (container) { diff --git a/src/utils/DockerMachineUtil.js b/src/utils/DockerMachineUtil.js index 9037fa76ce..c307c49c7d 100644 --- a/src/utils/DockerMachineUtil.js +++ b/src/utils/DockerMachineUtil.js @@ -1,9 +1,9 @@ -var _ = require('underscore'); -var path = require('path'); -var Promise = require('bluebird'); -var fs = require('fs'); -var util = require('./Util'); -var resources = require('./ResourcesUtil'); +import _ from 'underscore'; +import path from 'path'; +import Promise from 'bluebird'; +import fs from 'fs'; +import util from './Util'; +import resources from './ResourcesUtil'; var NAME = util.isWindows () ? 'kitematic' : 'dev'; diff --git a/src/utils/HubUtil.js b/src/utils/HubUtil.js index 6f02d03975..f88b4d51a6 100644 --- a/src/utils/HubUtil.js +++ b/src/utils/HubUtil.js @@ -1,7 +1,7 @@ -var _ = require('underscore'); -var request = require('request'); -var accountServerActions = require('../actions/AccountServerActions'); -var metrics = require('./MetricsUtil'); +import _ from 'underscore'; +import request from 'request'; +import accountServerActions from '../actions/AccountServerActions'; +import metrics from './MetricsUtil'; let HUB2_ENDPOINT = process.env.HUB2_ENDPOINT || 'https://hub.docker.com/v2'; diff --git a/src/utils/MetricsUtil.js b/src/utils/MetricsUtil.js index a608ce1ea3..be8be4e7f3 100644 --- a/src/utils/MetricsUtil.js +++ b/src/utils/MetricsUtil.js @@ -1,11 +1,11 @@ -var assign = require('object-assign'); -var Mixpanel = require('mixpanel'); -var uuid = require('node-uuid'); -var fs = require('fs'); -var path = require('path'); -var util = require('./Util'); -var os = require('os'); -var osxRelease = require('osx-release'); +import assign from 'object-assign'; +import Mixpanel from 'mixpanel'; +import uuid from 'node-uuid'; +import fs from 'fs'; +import path from 'path'; +import util from './Util'; +import os from 'os'; +import osxRelease from 'osx-release'; var settings; try { diff --git a/src/utils/RegHubUtil.js b/src/utils/RegHubUtil.js index a10ed54a1d..ed24c136e9 100644 --- a/src/utils/RegHubUtil.js +++ b/src/utils/RegHubUtil.js @@ -1,10 +1,10 @@ -var _ = require('underscore'); -var request = require('request'); -var async = require('async'); -var util = require('../utils/Util'); -var hubUtil = require('../utils/HubUtil'); -var repositoryServerActions = require('../actions/RepositoryServerActions'); -var tagServerActions = require('../actions/TagServerActions'); +import _ from 'underscore'; +import request from 'request'; +import async from 'async'; +import util from '../utils/Util'; +import hubUtil from '../utils/HubUtil'; +import repositoryServerActions from '../actions/RepositoryServerActions'; +import tagServerActions from '../actions/TagServerActions'; let REGHUB2_ENDPOINT = process.env.REGHUB2_ENDPOINT || 'https://registry.hub.docker.com/v2'; let searchReq = null; diff --git a/src/utils/ResourcesUtil.js b/src/utils/ResourcesUtil.js index 3aaed0e6fe..5fd652ef93 100644 --- a/src/utils/ResourcesUtil.js +++ b/src/utils/ResourcesUtil.js @@ -1,5 +1,5 @@ -var util = require('./Util'); -var path = require('path'); +import util from './Util'; +import path from 'path'; module.exports = { resourceDir: function () { diff --git a/src/utils/SetupUtil.js b/src/utils/SetupUtil.js index f22e7a4c33..80b0edc6f2 100644 --- a/src/utils/SetupUtil.js +++ b/src/utils/SetupUtil.js @@ -1,12 +1,12 @@ -var _ = require('underscore'); -var crypto = require('crypto'); -var fs = require('fs'); -var path = require('path'); -var request = require('request'); -var progress = require('request-progress'); -var Promise = require('bluebird'); -var util = require('./Util'); -var resources = require('./ResourcesUtil'); +import _ from 'underscore'; +import crypto from 'crypto'; +import fs from 'fs'; +import path from 'path'; +import request from 'request'; +import progress from 'request-progress'; +import Promise from 'bluebird'; +import util from './Util'; +import resources from './ResourcesUtil'; var virtualBox = require ('./VirtualBoxUtil'); var SetupUtil = { diff --git a/src/utils/URLUtil.js b/src/utils/URLUtil.js index 2b4e8a8933..68b102fd22 100644 --- a/src/utils/URLUtil.js +++ b/src/utils/URLUtil.js @@ -1,6 +1,6 @@ -var util = require('./Util'); -var parseUri = require('parseUri'); -var containerServerActions = require('../actions/ContainerServerActions'); +import util from './Util'; +import parseUri from 'parseUri'; +import containerServerActions from '../actions/ContainerServerActions'; module.exports = { TYPE_WHITELIST: ['repository'], diff --git a/src/utils/Util.js b/src/utils/Util.js index 1dc83a6178..a3c59b6342 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -1,10 +1,10 @@ -var exec = require('exec'); -var child_process = require('child_process'); -var Promise = require('bluebird'); -var fs = require('fs'); -var path = require('path'); -var crypto = require('crypto'); -var remote = require('remote'); +import exec from 'exec'; +import child_process from 'child_process'; +import Promise from 'bluebird'; +import fs from 'fs'; +import path from 'path'; +import crypto from 'crypto'; +import remote from 'remote'; var app = remote.require('app'); module.exports = { diff --git a/src/utils/VirtualBoxUtil.js b/src/utils/VirtualBoxUtil.js index b6729cef60..b4b3094157 100644 --- a/src/utils/VirtualBoxUtil.js +++ b/src/utils/VirtualBoxUtil.js @@ -1,6 +1,6 @@ -var fs = require('fs'); -var util = require('./Util'); -var Promise = require('bluebird'); +import fs from 'fs'; +import util from './Util'; +import Promise from 'bluebird'; var VirtualBox = { command: function () { diff --git a/src/utils/WebUtil.js b/src/utils/WebUtil.js index 318d529764..c146e0eb9f 100644 --- a/src/utils/WebUtil.js +++ b/src/utils/WebUtil.js @@ -1,9 +1,10 @@ -var app = require('remote').require('app'); -var fs = require('fs'); -var util = require('./Util'); -var path = require('path'); -var bugsnag = require('bugsnag-js'); -var metrics = require('./MetricsUtil'); +import remote from 'remote'; +var app = remote.require('app'); +import fs from 'fs'; +import util from './Util'; +import path from 'path'; +import bugsnag from 'bugsnag-js'; +import metrics from './MetricsUtil'; var WebUtil = { addWindowSizeSaving: function () { From 19d53e58dc849997bc60d4a5f19ab09cde849a02 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 10 Jul 2015 10:09:02 -0700 Subject: [PATCH 09/70] Create MAINTAINERS --- MAINTAINERS | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 MAINTAINERS diff --git a/MAINTAINERS b/MAINTAINERS new file mode 100644 index 0000000000..f863c81756 --- /dev/null +++ b/MAINTAINERS @@ -0,0 +1,4 @@ +Jeff Morgan (@jeffdm) +Sean Li (@elesant) +Michael Chiang (@mchiang0610) +Ben French (@FrenchBen) From 0c0bb4915417ce3363ce209ab2e28bb42f16a577 Mon Sep 17 00:00:00 2001 From: Razzi Abuissa Date: Tue, 14 Jul 2015 11:06:05 -0700 Subject: [PATCH 10/70] Fix some typos and minor grammatical issues --- docs/userguide.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/docs/userguide.md b/docs/userguide.md index a281109b0e..73d0c89651 100755 --- a/docs/userguide.md +++ b/docs/userguide.md @@ -2,7 +2,7 @@ +++ title = "Kitematic User Guide: Intro & Overview" description = "Documentation that provides an overview of Kitematic and installation instructions" -keywords = ["docker, documentation, about, technology, kitematic, gui"] +keywords = ["docker, documentation, about, technology, kitematic, gui"] [menu.main] parent="smn_workw_kitematic" +++ @@ -21,7 +21,7 @@ and install the Docker Engine locally on your machine. Once installed, the Kitematic GUI launches and from the home screen you will be presented with curated images that you can run instantly. You can search for any -public images on Docker Hub from Kitematic just by typing in the search bar. +public images on Docker Hub from Kitematic just by typing in the search bar. You can use the GUI to create, run and manage your containers just by clicking on buttons. Kitematic allows you to switch back and forth between the Docker CLI and the GUI. Kitematic also automates advanced features such as managing ports @@ -78,17 +78,17 @@ The currently detected "web" ports are, `80`, `8000`, `8080`, `3000`, `5000`, ### Viewing container logs -You can view the entire main container process' log output either by cicking on the "Logs" +You can view the entire main container process' log output either by clicking on the "Logs" preview image, or by clicking on the "Logs" tab. You can then scroll through the logs from the current running container. Note that -if you make changes to the container Settings, then the container will be restarted, -so will reset this log view. +if you make changes to the container settings, then the container will be restarted, +so this will reset this log view. ### Starting a terminal in a container The "Terminal" icon at the top of the container summary will `docker exec sh `. -This will allow you to make quick changes, or to debug a problem. +This will allow you to make quick changes, or to debug a problem. > **Note**: Your exec'ed `sh` process will not have the same environment settings > as the main container process and its children. @@ -117,7 +117,7 @@ use the default directory created for the website_files volume. Instead, you already have the HTML, Javascript, and CSS for your website under `~/workspace/website`. -Navigate to the "Settings" tab of the container, and goto the "Volumes". This +Navigate to the "Settings" tab of the container, and go to the "Volumes". This screen allows you to set the mappings individually. ![screen shot 2015-02-28 at 2 48 01 pm](../images/change-folder.png) @@ -142,12 +142,12 @@ Many images use environment variables to let you customise them. The "General" "Settings" tab allows you to add and modify the environment variables used to start a container. -The list of Environment variables will show any that have been set on the image +The list of environment variables will show any that have been set on the image metadata - for example, using the `ENV` instruction in the Dockerfile. -Wen you "Save" the changed environment variables, the container will be stopped +When you "Save" the changed environment variables, the container will be stopped, removed and re-created. ### Delete container @@ -155,14 +155,14 @@ removed and re-created. On the "General" "Settings" tab, you can delete the container. Clicking "Delete Container" will also stop the container if necessary. -You can also delete a container clicking the `X` icon in the container list. +You can also delete a container by clicking the `X` icon in the container list. Kitematic will prompt you to confirm that you want to delete. #### List the exposed Ports and how to access them To see the complete list of exposed ports, go to "Settings" then "Ports". This -page lists all the container ports exposed, and the IP address and host only +page lists all the container ports exposed, and the IP address and host-only network port that you can access use to access that container from your OS X system. @@ -172,7 +172,7 @@ You can interact with existing containers in Kitematic or create new containers via the Docker Command Line Interface (CLI). Any changes you make on the CLI are directly reflected in Kitematic. -To open a terminal via Kitematic, just press whale button at the bottom left, as +To open a terminal via Kitematic, just press the whale button at the bottom left, as shown below: ![CLI access button](../images/cli-access-button.png) @@ -185,9 +185,9 @@ will pull and run a new Redis container via the Docker CLI. ![Docker CLI terminal window](../images/cli-terminal.png) -> **Note**: If you're creating containers from the commandline, use `docker run -d` +> **Note**: If you're creating containers from the command line, use `docker run -d` > so that Kitematic can re-create the container when settings are changed via the -> Kitematic user interface. containers started without `-d` will fail to re-start. +> Kitematic user interface. Containers started without `-d` will fail to re-start. Now, go back to Kitematic. The Redis container should now be visible. @@ -196,4 +196,4 @@ Now, go back to Kitematic. The Redis container should now be visible. ## Next Steps For an example using Kitematic to run a Minecraft server, take a look at -the [Mincraft server](./minecraft-server.md) page. +the [Minecraft server](./minecraft-server.md) page. From 53d08470b00b485c6eba7668b6749174514f466a Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 15 Jul 2015 13:37:56 -0700 Subject: [PATCH 11/70] Fix VBox for 5.0.0 Signed-off-by: Jeffrey Morgan --- __tests__/VirtualBoxUtil-test.js | 4 ---- package.json | 10 +++++----- src/utils/VirtualBoxUtil.js | 4 ++-- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/__tests__/VirtualBoxUtil-test.js b/__tests__/VirtualBoxUtil-test.js index 3bf9a4427b..575d97e0db 100644 --- a/__tests__/VirtualBoxUtil-test.js +++ b/__tests__/VirtualBoxUtil-test.js @@ -3,10 +3,6 @@ var virtualBox = require('../src/utils/VirtualBoxUtil'); var util = require('../src/utils/Util'); describe('VirtualBox', function () { - it('returns the right command', function () { - expect(virtualBox.command()).toBe('/usr/bin/VBoxManage'); - }); - describe('version 4.3.20r96996', function () { pit('correctly parses virtualbox version', function () { util.exec.mockImplementation(function () { diff --git a/package.json b/package.json index 658293acb3..9203f0bece 100644 --- a/package.json +++ b/package.json @@ -26,11 +26,11 @@ "docker-machine-version": "0.3.0-rc2", "docker-compose-version": "1.3.0", "electron-version": "0.27.2", - "virtualbox-version": "4.3.28", - "virtualbox-filename": "VirtualBox-4.3.28.pkg", - "virtualbox-filename-win": "VirtualBox-4.3.28.exe", - "virtualbox-checksum": "60521caff652fc32ad733eee2eea27f03d0b4f7239af3bf4b21dc6f0251cf47a", - "virtualbox-checksum-win": "82039b615bf18dfff92ac1d9a15b2cbd5c59c608631ccf77e2371d0fd67a6cf7", + "virtualbox-version": "5.0.0", + "virtualbox-filename": "VirtualBox-5.0.0.pkg", + "virtualbox-filename-win": "VirtualBox-5.0.0.exe", + "virtualbox-checksum": "9aa3746c508643cfd70093f484ac0a64e02438d740020e294d65a7fd409bdb3d", + "virtualbox-checksum-win": "0ca898eb23e20506a28bf84514536ba5455cc6a35234ea096245e42ee113e617", "dependencies": { "alt": "^0.16.2", "ansi-to-html": "0.3.0", diff --git a/src/utils/VirtualBoxUtil.js b/src/utils/VirtualBoxUtil.js index b4b3094157..338717676a 100644 --- a/src/utils/VirtualBoxUtil.js +++ b/src/utils/VirtualBoxUtil.js @@ -7,7 +7,7 @@ var VirtualBox = { if(util.isWindows()) { return 'C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe'; } else { - return '/usr/bin/VBoxManage'; + return '/Applications/VirtualBox.app/Contents/MacOS/VBoxManage'; } }, filename: function () { @@ -23,7 +23,7 @@ var VirtualBox = { if(util.isWindows()) { return fs.existsSync('C:\\Program Files\\Oracle\\VirtualBox\\VBoxManage.exe') && fs.existsSync('C:\\Program Files\\Oracle\\VirtualBox\\VirtualBox.exe'); } else { - return fs.existsSync('/usr/bin/VBoxManage') && fs.existsSync('/Applications/VirtualBox.app') && fs.existsSync('/Applications/VirtualBox.app/Contents/MacOS/VBoxManage'); + return fs.existsSync('/Applications/VirtualBox.app') && fs.existsSync('/Applications/VirtualBox.app/Contents/MacOS/VBoxManage'); } }, active: function () { From 83dbcff97cabbc071cc02c458031f9426cdf9041 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 15 Jul 2015 13:40:53 -0700 Subject: [PATCH 12/70] Bump to 0.7.5 Signed-off-by: Jeffrey Morgan --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 658293acb3..8085f34733 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.7.4", + "version": "0.7.5", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 23010796e64c0cfdd83b066b2be24d6aa5f1ac8d Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 15 Jul 2015 14:45:09 -0700 Subject: [PATCH 13/70] Temporary bump of docker-machine Signed-off-by: Jeffrey Morgan --- Gruntfile.js | 6 ++++-- package.json | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index be4d85423c..6c6396dd4d 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -6,8 +6,10 @@ var electron = require('electron-prebuilt'); var WINDOWS_DOCKER_URL = 'https://get.docker.com/builds/Windows/x86_64/docker-' + packagejson['docker-version'] + '.exe'; var DARWIN_DOCKER_URL = 'https://get.docker.com/builds/Darwin/x86_64/docker-' + packagejson['docker-version']; -var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_windows-amd64.exe'; -var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_darwin-amd64'; +// var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_windows-amd64.exe'; +// var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_darwin-amd64'; +var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/kitematic/kitematic/releases/download/v' + packagejson.version + '/docker-machine_windows-amd64.exe'; +var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/kitematic/kitematic/releases/download/v' + packagejson.version + '/docker-machine_darwin-amd64'; var DARWIN_COMPOSE_URL = 'https://github.com/docker/compose/releases/download/' + packagejson['docker-compose-version'] + '/docker-compose-Darwin-x86_64'; var BOOT2DOCKER_ISO_URL = 'https://github.com/boot2docker/boot2docker/releases/download/v' + packagejson['docker-version'] + '/boot2docker.iso'; diff --git a/package.json b/package.json index 22f61d0082..519d566462 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,10 @@ } ], "docker-version": "1.7.0", - "docker-machine-version": "0.3.0-rc2", + "docker-machine-version": "0.4.0-dev", "docker-compose-version": "1.3.0", "electron-version": "0.27.2", - "virtualbox-version": "5.0.0", + "virtualbox-version": "v5.0.0", "virtualbox-filename": "VirtualBox-5.0.0.pkg", "virtualbox-filename-win": "VirtualBox-5.0.0.exe", "virtualbox-checksum": "9aa3746c508643cfd70093f484ac0a64e02438d740020e294d65a7fd409bdb3d", From 396074d23507a615a02ff602bde018fe80c2f80b Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 15 Jul 2015 14:49:39 -0700 Subject: [PATCH 14/70] Revert "Temporary bump of docker-machine" This reverts commit 23010796e64c0cfdd83b066b2be24d6aa5f1ac8d. --- Gruntfile.js | 6 ++---- package.json | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 6c6396dd4d..be4d85423c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -6,10 +6,8 @@ var electron = require('electron-prebuilt'); var WINDOWS_DOCKER_URL = 'https://get.docker.com/builds/Windows/x86_64/docker-' + packagejson['docker-version'] + '.exe'; var DARWIN_DOCKER_URL = 'https://get.docker.com/builds/Darwin/x86_64/docker-' + packagejson['docker-version']; -// var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_windows-amd64.exe'; -// var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_darwin-amd64'; -var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/kitematic/kitematic/releases/download/v' + packagejson.version + '/docker-machine_windows-amd64.exe'; -var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/kitematic/kitematic/releases/download/v' + packagejson.version + '/docker-machine_darwin-amd64'; +var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_windows-amd64.exe'; +var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_darwin-amd64'; var DARWIN_COMPOSE_URL = 'https://github.com/docker/compose/releases/download/' + packagejson['docker-compose-version'] + '/docker-compose-Darwin-x86_64'; var BOOT2DOCKER_ISO_URL = 'https://github.com/boot2docker/boot2docker/releases/download/v' + packagejson['docker-version'] + '/boot2docker.iso'; diff --git a/package.json b/package.json index 519d566462..22f61d0082 100644 --- a/package.json +++ b/package.json @@ -23,10 +23,10 @@ } ], "docker-version": "1.7.0", - "docker-machine-version": "0.4.0-dev", + "docker-machine-version": "0.3.0-rc2", "docker-compose-version": "1.3.0", "electron-version": "0.27.2", - "virtualbox-version": "v5.0.0", + "virtualbox-version": "5.0.0", "virtualbox-filename": "VirtualBox-5.0.0.pkg", "virtualbox-filename-win": "VirtualBox-5.0.0.exe", "virtualbox-checksum": "9aa3746c508643cfd70093f484ac0a64e02438d740020e294d65a7fd409bdb3d", From ae7535723d0a5fe96e49a0415a0b8cac554711ab Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 15 Jul 2015 15:14:44 -0700 Subject: [PATCH 15/70] Bump machine to 0.3.1 rc1 Signed-off-by: Jeffrey Morgan --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 22f61d0082..8f6de0ca65 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ } ], "docker-version": "1.7.0", - "docker-machine-version": "0.3.0-rc2", + "docker-machine-version": "0.3.1-rc1", "docker-compose-version": "1.3.0", "electron-version": "0.27.2", "virtualbox-version": "5.0.0", From 5827b065580b2ad5054f241943640031bb2ebde5 Mon Sep 17 00:00:00 2001 From: cclauss Date: Fri, 17 Jul 2015 15:29:30 +0200 Subject: [PATCH 16/70] Correct the local directory path in Managing Volumes Added Documents/ to path. This should close issue https://github.com/kitematic/kitematic/issues/830 Signed-off-by: Christian Clauss cclauss@bluewin.ch --- docs/userguide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide.md b/docs/userguide.md index 73d0c89651..b89247e6b8 100755 --- a/docs/userguide.md +++ b/docs/userguide.md @@ -100,7 +100,7 @@ on your Mac by clicking on the folders in the "Edit Files" section of the container summary screen. This allows you to manage files in volumes via the Finder. -Kitematic exposes a container's volume data under `~/Kitematic//`. +Kitematic exposes a container's volume data under `~/Kitematic/Documents//`. Quick access to this folder (or directory) is available via the app: ![Accessing the volumes directory](../images/volumes-dir.png) From c2a4bedeb38bad0fc7685f89b53dcbb278d50bfe Mon Sep 17 00:00:00 2001 From: cclauss Date: Fri, 17 Jul 2015 19:31:37 +0200 Subject: [PATCH 17/70] Reversed order of Documents and Kitematic in path You are correct. Thanks for catching my mistake. --- docs/userguide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide.md b/docs/userguide.md index b89247e6b8..672f65dc78 100755 --- a/docs/userguide.md +++ b/docs/userguide.md @@ -100,7 +100,7 @@ on your Mac by clicking on the folders in the "Edit Files" section of the container summary screen. This allows you to manage files in volumes via the Finder. -Kitematic exposes a container's volume data under `~/Kitematic/Documents//`. +Kitematic exposes a container's volume data under `~/Documents/Kitematic//`. Quick access to this folder (or directory) is available via the app: ![Accessing the volumes directory](../images/volumes-dir.png) From 56c39c9c7f97141c47ea09e0d454bb53712f56ad Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 18 Jul 2015 10:56:59 -0400 Subject: [PATCH 18/70] Fix update to tags API Signed-off-by: Jeffrey Morgan --- src/utils/RegHubUtil.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/utils/RegHubUtil.js b/src/utils/RegHubUtil.js index ed24c136e9..bcf0136560 100644 --- a/src/utils/RegHubUtil.js +++ b/src/utils/RegHubUtil.js @@ -103,11 +103,11 @@ module.exports = { }, (error, response, body) => { if (response.statusCode === 200) { let data = JSON.parse(body); - tagServerActions.tagsUpdated({repo, tags: data}); - if (callback) { callback(null, data); } - } else if (error || response.statusCode === 401) { + tagServerActions.tagsUpdated({repo, tags: data.results || []}); + if (callback) { callback(null, data.results || []); } + } else { repositoryServerActions.error({repo}); - if (callback) { callback(new Error('Failed to fetch repos')); } + if (callback) { callback(new Error('Failed to fetch tags for repo')); } } }); }, From 7c557955820384c0e00b2bccaabc1743b88585f2 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 18 Jul 2015 11:03:23 -0400 Subject: [PATCH 19/70] Fix scrubbing windows user data Signed-off-by: Jeffrey Morgan --- __tests__/Util-test.js | 6 ++++++ src/utils/Util.js | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/__tests__/Util-test.js b/__tests__/Util-test.js index 932185ca33..6b4367a8ee 100644 --- a/__tests__/Util-test.js +++ b/__tests__/Util-test.js @@ -30,6 +30,12 @@ describe('Util', function () { expect(util.removeSensitiveData(testdata).indexOf('/Users//.docker')).toNotEqual(-1); }); + it('filters Windows username data', function () { + var testdata = String.raw`C:\\Users\\johnappleseed\\.docker\\machine`; + expect(util.removeSensitiveData(testdata).indexOf('johnappleseed')).toEqual(-1); + expect(util.removeSensitiveData(testdata).indexOf('')).toNotEqual(-1); + }); + it ('returns input if empty or not a string', function () { expect(util.removeSensitiveData('')).toBe(''); expect(util.removeSensitiveData(1)).toBe(1); diff --git a/src/utils/Util.js b/src/utils/Util.js index a3c59b6342..d7cd809326 100644 --- a/src/utils/Util.js +++ b/src/utils/Util.js @@ -71,7 +71,8 @@ module.exports = { } return str.replace(/-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----/mg, '') .replace(/-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----/mg, '') - .replace(/\/Users\/[^\/]*\//mg, '/Users//'); + .replace(/\/Users\/[^\/]*\//mg, '/Users//') + .replace(/\\Users\\[^\/]*\\/mg, '\\Users\\\\'); }, packagejson: function () { return JSON.parse(fs.readFileSync(path.join(__dirname, '..', 'package.json'), 'utf8')); From 796d2e1838c436378f4d2d8898adfd5ffec51f57 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 18 Jul 2015 11:07:02 -0400 Subject: [PATCH 20/70] Bump Docker version to 1.7.1 Signed-off-by: Jeffrey Morgan --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 8f6de0ca65..6e93a43b22 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.7.5", + "version": "0.7.6", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", @@ -22,7 +22,7 @@ "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } ], - "docker-version": "1.7.0", + "docker-version": "1.7.1", "docker-machine-version": "0.3.1-rc1", "docker-compose-version": "1.3.0", "electron-version": "0.27.2", From fb7186a3469ef237c8d15e5e6d9a88c48fb34171 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 18 Jul 2015 11:26:32 -0400 Subject: [PATCH 21/70] Bump electron to 0.30.0 Signed-off-by: Jeffrey Morgan --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 6e93a43b22..ed381dd807 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "docker-version": "1.7.1", "docker-machine-version": "0.3.1-rc1", "docker-compose-version": "1.3.0", - "electron-version": "0.27.2", + "electron-version": "0.30.0", "virtualbox-version": "5.0.0", "virtualbox-filename": "VirtualBox-5.0.0.pkg", "virtualbox-filename-win": "VirtualBox-5.0.0.exe", @@ -65,7 +65,7 @@ "devDependencies": { "babel": "^5.1.10", "babel-jest": "^5.2.0", - "electron-prebuilt": "^0.27.3", + "electron-prebuilt": "^0.30.0", "grunt": "^0.4.5", "grunt-babel": "^5.0.1", "grunt-chmod": "^1.0.3", From 345fa9c26b089e252ea62ccc566879db1acfbcb8 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 18 Jul 2015 09:54:55 -0700 Subject: [PATCH 22/70] Revert "Bump electron to 0.30.0" This reverts commit fb7186a3469ef237c8d15e5e6d9a88c48fb34171. Signed-off-by: Jeffrey Morgan --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index ed381dd807..6e93a43b22 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "docker-version": "1.7.1", "docker-machine-version": "0.3.1-rc1", "docker-compose-version": "1.3.0", - "electron-version": "0.30.0", + "electron-version": "0.27.2", "virtualbox-version": "5.0.0", "virtualbox-filename": "VirtualBox-5.0.0.pkg", "virtualbox-filename-win": "VirtualBox-5.0.0.exe", @@ -65,7 +65,7 @@ "devDependencies": { "babel": "^5.1.10", "babel-jest": "^5.2.0", - "electron-prebuilt": "^0.30.0", + "electron-prebuilt": "^0.27.3", "grunt": "^0.4.5", "grunt-babel": "^5.0.1", "grunt-chmod": "^1.0.3", From b8e795ab19047124c40bf63e4b4add139b45816c Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Mon, 20 Jul 2015 17:13:55 -0400 Subject: [PATCH 23/70] Added proper about page with tools versions Signed-off-by: FrenchBen --- images/banner.png | Bin 0 -> 7571 bytes images/banner@2x.png | Bin 0 -> 7571 bytes src/components/About.react.js | 67 ++++++++++++++++++++++++++++++++++ src/menutemplate.js | 13 ++++++- src/routes.js | 2 + 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 images/banner.png create mode 100644 images/banner@2x.png create mode 100644 src/components/About.react.js diff --git a/images/banner.png b/images/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca04897cf5a7d47e174f29a35236780ce673566 GIT binary patch literal 7571 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 pZY2Z%RQ2n@Rzb8Da)(Nfn?0T{69Pb)K~xj literal 0 HcmV?d00001 diff --git a/images/banner@2x.png b/images/banner@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca04897cf5a7d47e174f29a35236780ce673566 GIT binary patch literal 7571 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 pZY2Z%RQ2n@Rzb8Da)(Nfn?0T{69Pb)K~xj literal 0 HcmV?d00001 diff --git a/src/components/About.react.js b/src/components/About.react.js new file mode 100644 index 0000000000..914b24a338 --- /dev/null +++ b/src/components/About.react.js @@ -0,0 +1,67 @@ +import React from 'react/addons'; +import metrics from '../utils/MetricsUtil'; +import utils from '../utils/Util'; +import Router from 'react-router'; +import RetinaImage from 'react-retina-image'; +var packages; + +try { + packages = utils.packagejson(); +} catch (err) { + packages = {}; +} + +var Preferences = React.createClass({ + mixins: [Router.Navigation], + getInitialState: function () { + return { + metricsEnabled: metrics.enabled() + }; + }, + handleGoBackClick: function () { + this.goBack(); + metrics.track('Went Back From About'); + }, + render: function () { + return ( +
+
+ Go Back + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
APP NAMEVERSION
{packages.name}{packages.version}
Docker{packages["docker-version"]}
Docker Machine{packages["docker-machine-version"]}
Docker Compose{packages["docker-compose-version"]}
VirtualBox{packages["virtualbox-version"]}
+
+
+ ); + } +}); + +module.exports = Preferences; diff --git a/src/menutemplate.js b/src/menutemplate.js index df41ffa201..5365cd827c 100644 --- a/src/menutemplate.js +++ b/src/menutemplate.js @@ -17,7 +17,13 @@ var MenuTemplate = function () { submenu: [ { label: 'About Kitematic', - selector: 'orderFrontStandardAboutPanel:' + //selector: 'orderFrontStandardAboutPanel:' + click: function () { + metrics.track('Opened About', { + from: 'menu' + }); + router.get().transitionTo('about'); + } }, { type: 'separator' @@ -94,6 +100,11 @@ var MenuTemplate = function () { { label: 'File', submenu: [ + { + label: 'Open File', + accelerator: util.CommandOrCtrl() + '+O', + selector: 'openDocument:' + }, { type: 'separator' }, diff --git a/src/routes.js b/src/routes.js index 086c34347d..bce15a611a 100644 --- a/src/routes.js +++ b/src/routes.js @@ -13,6 +13,7 @@ import ContainerSettingsPorts from './components/ContainerSettingsPorts.react'; import ContainerSettingsVolumes from './components/ContainerSettingsVolumes.react'; import ContainerSettingsAdvanced from './components/ContainerSettingsAdvanced.react'; import Preferences from './components/Preferences.react'; +import About from './components/About.react'; import NewContainerSearch from './components/NewContainerSearch.react'; import NewContainerPull from './components/NewContainerPull.react'; import Router from 'react-router'; @@ -51,6 +52,7 @@ var routes = ( + From 07249eac6c9c7cd09acfe09b09515e59f503ae8d Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Mon, 20 Jul 2015 18:43:14 -0400 Subject: [PATCH 24/70] Removed previous OSX about call --- src/menutemplate.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/menutemplate.js b/src/menutemplate.js index 5365cd827c..46784125de 100644 --- a/src/menutemplate.js +++ b/src/menutemplate.js @@ -17,7 +17,6 @@ var MenuTemplate = function () { submenu: [ { label: 'About Kitematic', - //selector: 'orderFrontStandardAboutPanel:' click: function () { metrics.track('Opened About', { from: 'menu' From 26249ecaff8ca8a5f800ac0064daf6704efadbb8 Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Mon, 20 Jul 2015 18:44:07 -0400 Subject: [PATCH 25/70] Cleaned up menu --- src/menutemplate.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/menutemplate.js b/src/menutemplate.js index 46784125de..9c264d1d79 100644 --- a/src/menutemplate.js +++ b/src/menutemplate.js @@ -99,11 +99,6 @@ var MenuTemplate = function () { { label: 'File', submenu: [ - { - label: 'Open File', - accelerator: util.CommandOrCtrl() + '+O', - selector: 'openDocument:' - }, { type: 'separator' }, From 1c9434eb997059db32d44dadb1f6cc95e4cfe965 Mon Sep 17 00:00:00 2001 From: tellel Date: Wed, 22 Jul 2015 15:04:26 +0900 Subject: [PATCH 26/70] fix volume data path volume data path is `~/Documents/Kitematic//` --- docs/userguide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide.md b/docs/userguide.md index 73d0c89651..672f65dc78 100755 --- a/docs/userguide.md +++ b/docs/userguide.md @@ -100,7 +100,7 @@ on your Mac by clicking on the folders in the "Edit Files" section of the container summary screen. This allows you to manage files in volumes via the Finder. -Kitematic exposes a container's volume data under `~/Kitematic//`. +Kitematic exposes a container's volume data under `~/Documents/Kitematic//`. Quick access to this folder (or directory) is available via the app: ![Accessing the volumes directory](../images/volumes-dir.png) From 628b991947000e95a44f3b9363e052c804d10213 Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Wed, 22 Jul 2015 11:40:03 -0400 Subject: [PATCH 27/70] Updated about look and feel to match design --- images/banner.png | Bin 7571 -> 0 bytes images/banner@2x.png | Bin 7571 -> 0 bytes images/cartoon-docker-compose.png | Bin 0 -> 26045 bytes images/cartoon-docker-compose@2x.png | Bin 0 -> 71051 bytes images/cartoon-docker-machine.png | Bin 0 -> 30800 bytes images/cartoon-docker-machine@2x.png | Bin 0 -> 94779 bytes images/cartoon-docker.png | Bin 0 -> 16414 bytes images/cartoon-docker@2x.png | Bin 0 -> 45521 bytes images/cartoon-kitematic.png | Bin 0 -> 15922 bytes images/cartoon-kitematic@2x.png | Bin 0 -> 47400 bytes src/components/About.react.js | 65 ++++++++++++++------------- styles/preferences.less | 20 ++++++++- 12 files changed, 52 insertions(+), 33 deletions(-) delete mode 100644 images/banner.png delete mode 100644 images/banner@2x.png create mode 100644 images/cartoon-docker-compose.png create mode 100644 images/cartoon-docker-compose@2x.png create mode 100644 images/cartoon-docker-machine.png create mode 100644 images/cartoon-docker-machine@2x.png create mode 100644 images/cartoon-docker.png create mode 100644 images/cartoon-docker@2x.png create mode 100644 images/cartoon-kitematic.png create mode 100644 images/cartoon-kitematic@2x.png diff --git a/images/banner.png b/images/banner.png deleted file mode 100644 index 4ca04897cf5a7d47e174f29a35236780ce673566..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7571 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 pZY2Z%RQ2n@Rzb8Da)(Nfn?0T{69Pb)K~xj diff --git a/images/banner@2x.png b/images/banner@2x.png deleted file mode 100644 index 4ca04897cf5a7d47e174f29a35236780ce673566..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7571 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 pZY2Z%RQ2n@Rzb8Da)(Nfn?0T{69Pb)K~xj diff --git a/images/cartoon-docker-compose.png b/images/cartoon-docker-compose.png new file mode 100644 index 0000000000000000000000000000000000000000..26594ae27b0ac00d0ca4f680d49bb17caf258ff0 GIT binary patch literal 26045 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

HI>heZ*9N}+jsxln{B zCVr9G%#aiQgpBVKhh%96@^K_83HOh58Pm!|c*tC~<$qZrgi#FdY4bSV>BkVkRW8=P z|L$4V;&pb_iKyj}5V8|2_NRG+9ho=??}DzU4<%?C&9pmj^^^?+bsyInFxv4kpdSs~DmyM%$)cFT*4PuuaLQh#KC zjCL78)H1Vbn(@2wG@uMa&+p)F;_a3niL=zfaK9H&p(XN5sFFaS!n5jJ;QJPNC`bLR zDwnEdIO;Ju@O1sKx*Pa%9Xl9w@JJlo@{o8xjwq5zB_RARc`H};bC&0$(k720%cK_u z1<&Dg7!k+o?jy%uwbcL*xV`Pu&w$VEroc3((>Vkgr!dTcgBwhC;2~q%5qmj=R320 zY$?@$%f|Tb1z{7b#MF$yeR5%i5}{Lns7CfsLL??*)^%wgBQj~O4%Qu1s!lVQcOLoM zykd7C-Gf=nb9zA!o<0$y?&(s!*w@$(Y3w>|;Sr_Z5@Xr4teC|Z42_L95QH3$Pb?to zTxn<^oe+iv0eXnLHZ8VNgS_%(jy+0y^m1w5P@Jt(@g>Tb{xGkDp6ES5_KxM%0KLli zV_3~o1#0`7BOJ6eRUY0#6^oy0p$QiFNHQcK9UouT)Dz(-h6ea&{Wl1`Z)B+(w%A3~ z*b;~wWB}{a1}`10ok6*czp5(dS(C1@^AR9L1;XifKaWg;_1BZx6u^1m< z;|)1KVsiE4X-sQ&IGz3M#?e^QB23&E+Y1D>@_ap%U3-Don|o|t&$i;u>u)<%?`m4F zfBBZV-wlb}hMg=f(!7H03^b_tE(yW%xD%5NMX7j{L$JD`46+t|QalcmTCyvx(7P_` zoV$K5jten{l+lCg24eU$AMVi&Z+1h?bXkqw=xdIv;xt^HqcqZsli8+J>d3YgOjK$? zh_sjsAEtfJ>Fyoni3$IuGK9Id&v3*aLd@p4l@%1`EW*Tqf(Lz9p^a%Uw%+VYjp^t4 zm)Nt{pGO~`HdO3{D1Bt^#{1}ksA8D9Qe8xX6!>q%OO5rEd`JmC-4i9iBhoN~C&jO7-_ioFRP%AbJJySoVl7dF^foOI2r;qEB85j-CrDKE5znr= zp2D7~OzWlqeB3nGEu}gk>Xm{9keatCnVbTY(pg(v@!f)AWes{wwSwLzWoY-aFf8}`5@}5zVGaY& zXq|tOeatPdF#4AEu|j|w_|)Y93b3Xq9CgcC^M6Oj`)-Gc5ctjx#4n#GpM%~`;OUBr zjx{cCc?49$MqXTj)ELT+z%x>UVyS7)qbzc=k#k!y0gv*ZW|}|S=1^hU6~M`a)9b3B zGK8}1SRY|63CWq>U#QG$ibBnF>e#veTOVX*DfHKL6`ugaz^(brq#Z}!Fdr4 zgI9p+<`RQyDz$VGDviWwA6g6sgCee#l^l^hQFXbG5(hmZQ4%|&Xl^Qpf1f~4Rf~a~ zD1avAYo8#)ZzY@>!s3u&FCG)u3#j7kP(jQO=HhY<164#*${phI*K0_{F3yccXd%AT zNstCu_e*Df=A~%5AvhtE;}!`Pv!e7$c%LKY>luq|P>13NuOCoE4`21YIW?4W285`T z3}8iZHH1_L5#Egnyrt?i0Yb=GOb9;U!mmF$24Pz(838sL>Akt?hqSxS&9~vNeXw<; zG|1f2IT>N14HSPkYtf4qh%}9L^=Qsm@wTCD;=;GSTDl+qhS$>2uWLdIL$X1s`+pY& z4V{2(tY3Ruw0_wcVa)NI;wyI{Cro2HhCPKCPK_$eU$pZwNunqa2>VV!Q>i-&w56?z|b>@~evz!Yh-#ccNXQwWTK zMM^c>WRaQ?C0Ihu{5h>&>Ae3z2o7AzyQvLW12PC!d{D=b54@rTet_38V4xiVAMgET z%1vSWF9QA`DEzXbeThctrl3<xgGSkEp@woO(@`M-QEgGJ5#*pjs(z`ZLl$h&U7Ip>(w*<_ zX@|ZbOsC&{dM!I9qV(*IPf!GI5=Ou4XHxFyN>n^_rVnmgs=FwYU`*7Ln|qI9^eroF zg!pyadjK-8rdoqXFi_(tc&7jqp$&@?7T988j?xfqkEh8{$j;<-f>+_h^~AnFPtucp`6@N za*Y`m6_|N+2>%(E;!g$Q*>(ufnUr8&Swp!lS=6Awk;=5Z69%?T4jllcsjOK6PPNw{ zld55I)V8EAYY^w4q)fJ0;yIy0=OPrIO%R7f4J{;m@M1yl=@w>7s7*(&1AAR zia;n<^|eq%58);XiF`%MsXB8RpXbx&-L~Uu^>$IQJ}ueDwKUM<6I)3=0PzzM@0xT| zJo{ZSE`#C{Av;n42s>KBtY@3Nut^7{I(EXip@VHB>JrrBE%CEW?f%IK| zD>JJ>U)z&5M5CgRo;Ha+Rdh~j(X>VdSxQq)!^IR2_2~$t-^dyhCD|94N>8X9x+m?2 zyjYN0=!xrVp6m~(+w7#;FRv~;4)vxlsB@kZx?gp(Zw;{4gH)PKe5aMHf9$=E<#|O} zF6e$E$XGg#kn)kXHugk^foRfz^02$z;DZ)hA5z?>R;;)aJfxi>0(_GA1H!*)yw+vB z+?(d?UQ6PnU^-B+uSPN^mN;N<|0xcv_<3>ay^@38jMdCYPg7>)T~-#^QobzCbI3*RTLW|NK@ z@+l_>bE$I}wP?zrpNL{Jxv#0%vd95wBaT7_VLdNBTTYIw2Fj93}Hw^bD~-V#BtdRY{PW{t7c;zN_jYEShrewfP=bH5a?>Pdu%?aZ>yX zP*msXGG_T_7>&OMuA{W|CcQ8|cgt3^NXW>sj0QAhgIQ|tp3S5_SFQ}Jp#xFBptjki z<{XTdnr;p#873!P>=P%-znabVZXC)=wIiXer{Zg%N#Wt69;Z?*iK0(@L&py;^s6TR zT}O6pacG4pLtC`isgs*N6HSeo%$-(`8%6S|5)~u}EL_N>fUM@dZUj#_h`@uj8T>RQ zfie2>cseQ49kv|I_vwN?mL%0>Y~odvcb#6{Uq)60x=_xY-22V4~9E08toKgE=`( zspgd8uv`Y*lQ0QkLvMlHsam4MsX7nei`9^0hTub@UrvBMKrf>oiJWKlLcTXD1V*oB zL78NbzoQ51oA&$f{L+G8xrHdn)pk)6_)0`5Sz$qFGT4$1sRWUPwu0ri;3#tvO8&5V&krs_v8zy8&6`?=qliVFY^=}(Q z(_V%E3?%H03DqRQ4<*k1Ff^*aW_rX*z3LWRF?q*NXI;_f5(Y5Y;gk}gPBHYG?2~uL zGsgePT&I5;L8+-U3=9lySaz1RnuTq~qachD>ua-1qR;A~ffp#32QxU!*nB<5jKlA} z9N?}7N<{p59Xuf2_Ev=Zsiw4>$6!^xHZSUNt$Dsyl!Um;5`Rmz#4WrZQgrBGN%@gk zrY8u2BxXo}*?=|y6t)70I7yocTS=CIf2=1s zAga^2-+3n;M7jw|qx3U*u$rYP5bp@n!?vpWtCc&3fc z1_E$C8iuzKO>h70-xNv4GM`MA%KM#sp3V#s5@@C#uK~(Re@zX#NVQ+g*SQ$kpwM_*&9)VW4;(+>#j6zBhNgig+!`qw|WpIto-Md*T?&%7> za6cQ?r0_m)D_H^^miOr%JywMTDKYGbNe(Xo8lJWLMM+vrg&OTrVc00W&3Fv`Tukq& z*gRKrl^ZqJ92OC6CRByM&^`I)1i3M@5kC=9Gh(|XJ%b~IVMB!c?vU2pttN9>8f@4R zQz^b2Yv?Ox`NSIpu2n&lACyrjSkJVw*@{|oY;p7xWIwMl#CLzqbpOYQ)E*K>sHW&K z4$0^u6OE}BqU}$QUoKBLB=6q*Yg0*ADc{r`aqi34+5IWtZ2%N$HF?An9uxpNO_>6v zwo=kmk?1&>En*`r-Ocd`=o^`7h-Q16ep^;cw1lO zP=>_rFdA^bMyH{j48_}SWwWT{yw-Wv)V}i)YsJX1nsg|Un(`4Kj zxPjnx7?Z@9;~A-^yHgauAt?@%9;m~`8j3kP;d$+!lU1mY%&Fzsd*Zx80h7h!w9r5s z6BE;S3~Uv<cghMr`(DBYEzu2#cas##2!!&GnsYZ5Er$cUG( zJX**-uE@{Ll*XpmU?0=QH9I@21q4j*t5G`3=etu|`g`%OZW!e`W`EnqC(qu|=Cr5L z#L10Dgwk4q5<4z_Ia%~)?jC7M-QuGyLv#aS>5oW=G78cmn#-w4W8ZY@QjmdE?e6^Ej*)xTOCP9vLqF=Wo?{hS53=A|v-)4c?c{;9HoM}~6 z1yZY3sg~?stb?1Tgq!@}6ku%bn}eaJu(3?$#Sl>1IMDe2@?H?TP2dvox?6;mSJD6e z5wdgnqMn!!Hf{RS8gSOSZ?UHk#j_amjnF4MIy!(30**W>AeFy_U;kII<%kU?=^R2FTJzqEfboj*~E1w-RQ%7JC@H6GmQ(Glqw`}%p^_@Q}rHb zAsNbGoiMn>zOvclMG%@o=$)HKcK@2!PQA98v2H|n3-X~9jt5a7?1 zU(@ya=k62-THUm9^4QU8O&lwK>}yDvhOw&NrrlI+GB$h-(_TAR**wptLT2Z$*G9NZ zMwB3gH$Mv1&l7f7xr+~$1)M%Vtt>aQ!yN=PLfipR|r` z=FZtwlWWU?U9U$$*tmrBkd7e{r1ARHP_-feiS+3!dhNB7DiXwlArG;YltP(Sp&?*C zJxDy2r}G!HBL32&tdId&UO#aWi>-GDy|=lWLs;}-h&Jp>N_q$3IgH@G0%)hsdZp9S z=%@z6LPL*PLTd4W2w-@8eEbp14CCs7xehB^KPMEVZ&;ly22ui1++k4j+VJr3;J(6V zM{n3pB$q@!B_=y^F{Mg_Flq>bH~=^8@!M54camH&Q0CU9 znB%gh89GNz(bTjH4gua)sS<(T;J7r08Ul|doS+0=(<4NAkF3MP!^?@s@frtWV^z0m za_=y53&8z?9Su(Mb?f!jK6b*y)JY5ew6T^^((}aJMj{4zwY5^;sn2w7}v+^aG(DQ7SK~`2av-sj-s~-eWFjO~x$?Tq= zv-$7)(tL0{{`5G?KcF5AlHW*&ydmHjG38Mt&_A{(%v@py#aBc=wMBs3A{~=&DiN*stKnLQ%K< ztgq+%d3v=wZh3n&&%boO(QS<0hmdcil*DWO<0Ici&Jnd7&T4x69pb`<^Os)BB#IJ@ zK&y?3(-u~d8vW)3ibSqEnTiODe&6ln6yPYsAU?x(BH!Z;#X7g4Jr}5Fn(Rg zl8g0HUdUaE+a{XK{Xv=%6DgI~Mn*!_x{5xS!dgj_wUMp!ovLRv`4l&0dB8+Zqw(R& zwQe1u`2* zo0+?TM}Sli6JJ>P1@cI#LE!aCtn1lhMt;o;LhnZ1In3iS23txUb=0W9c~_-37jS<; zwp|P|2WtjL3ju{1XaSdl1XmLR=OYk0DZB}FVwEq}3!Kbbxo?GyD3sv;is=#WvW&rv zBvLGyc)l(VDSWgY=2kiLh!NppR2MiCLlp~@1ubG!F2(2}is7&V0w(<=h`z%zOA6p^ z4o1MBbGHc;EhWM$9_3#L?o}tgi!vIzv56`Yi;XkGwrsV@JC>}uk|wAD@fuc8l)A@m zQe09*^U-RHGU!)+0rhUkyPp!jlyqf-M8&8qzpskNL%-X4y=j%;!z{%ZThL>$;M>Dr zkAp#Oo5_ED)qds1hlv~`m7i9V>D@28Y`#*9JY}we9QG3WU9n!(YO3A7- zCHl$*xYL#IDv~C{vJf)>ocNKmx@JoG*NS?WoBYo~!+rq>7WL{=_72 z(zN@}@o)Szk3CuHP(r6YONqNFIE}to zB81DecCX6bOb|SxX_s5%#P{y9D1j~sU(vO=v(BfnTGhWL8~LVkfCdR~Qy-~_{^-*N zdD7;hk5A%irbR3fYS<36v?_kdI(POP%qu)K8C*;mVqEFeaj*GLacUWK8is<7;H@P@ zO=p9JDl3ZrG(Nt47QYwdN6T3EhlOQFx`SRQbvfVFAD=hgS^ssfYjfK}y?rf4jE@>`zpzZ;jiy?*;FpRrDiz#;E?COrfM6mTNY8WtT`)(ZscS zvGjHssUAJ)u(j9b!n@ZlY1kf?c0iYf$3~%Ld>IESrxnBcS-w|SfxH1?TK>;mW~v;i z3gwKI!2^<4l=yPFfNA=j=C-RLiqUV#DRbNsJZqWRZnro^(;~2*S{oTx#O(^NfyuzAM`@_HSa0QV(oMymYK)DO7pP^qPb)A*CUT3Jfox zRa(A+&n@P!oJ{;het2R#N?;cpb98oCQxFT9WgEQq3lwW_gfQmJhg-*pl(c5#1sUwU zJUb}%i)$a6_DAL%)!Kij1VFGn4krrC&o9408AiUcUC(C%X}sC|0UpMKqRT|N8f(v} zN%CynVo&I#U|1ToiAL4&ivb|%?v!RS?-jr!iMQnkHw$x*`b&T))fjW*a=q!I2apzB zUxgU;)cE~eUAO50W%;LFSuS;u6)AEI4UX!g7`=kWNM3_7iX2?V@E^cn8Jo1YBO%~#kIwxckyjE+ewoA2t^zwh63d)j*~5Ev)rk* zUK#cq4O)8>fy&r-rzzN*^32QhC6}L>u#AFMCM~y9V>PR!7B@a~fhW-E$Wmp_Uz2H0 z)~Z_D_j+o{2?)GOf1fmaMngJ2fsTXU9%H`(p9gT1%R?3_+P%O(c$Wq}PFV?z0%K9h z{K!F=2ldpJOLUCF@!qg*U^G!k00c>LA#xglt#_N3Kzpgiw>@7g=& zza%{IdzR`s{nT*h_vE>!7}3+=bG`GGsT%XkP)TM4YwHcocFP%hO`cnsA*J@)0p+2P zH>bNoHIPK@>#}yVFD?W@DFJh_IUDJs74lDM8;(P@|q zE17_de0MK3pi?pF3Pi>CpJ45C;N$i1!= zozqKD+Q7jqh9Ucr9je!2#}t!VNF+8X+G&p!z&@9Fb%zk=D6h;^5I>(pcznyWoNb#2 zWoI)pX;-I0_UOIN@|wDX)%c%(+Q{j?9?$squ8TgDtDO|(Bl~Z*OcRlOc6V1-Ne{WN zyQO})Nn%A4VKjZaWfPq8tzlyBB>-#+AhZ<~{9AgO_6Huri4Kyp)XoCA>)S{k4HTz= zbR&JCXY^3{bDhh(%Sa(=)q1RD<&)b8x21N!_8$^Ee%9XM?otW0v*zbiu#u=4u(c61 zA5UgEuOYs~w9?G;)mAqYnSS(|x_{Pq`|uT;cLl?@KXx^v5TDc!&DR5>oj4i{6qJY@ z^REVPMaEQJ)E^?!&eOLBcFFzn09Uo0n*jY2n@!;o}Ldwg_V1c+j%lR68Z%K-qKscQZ4{KZa zg3>ACFP1uay*za#;`D9VYxcRZYEB%%X-cO z-=I0X9|)Hr&e&2R21dqo$bB6)KY)qkLfMsn`~?0vKXVK(hJ+14h$(=sx2I#x>6wJD z{_bR!oR7bFl`Gg$+8LE<&Z|Q|| zf(y{8t!*)#(>_poNkU;_hO%^6_93z1On-iY2Vm{e09_sHDTZ!f=15$Yq>{W)$+eHQ z*d%(ZbPhx3KGA^*8DiLtqOgBMXfe)_l*R97%P$Vw12GP83+LDhV1tkn76H`%aZr_;Oysn(to%Q@2X8Y_QR_k>K|!=+&ldrRjKgh(FE(t9Ma z!X&lP;4&!u!So^xi@-*-`+7sf4o9vdWC5}JA06a_kfQS}-4=sM3HAHhsOdmR>bq_} z4A~UiPCC@P<%Z&uHMH`i;jXN!{wvsrEf-3hJ@oeBg*` zdR`XwO0#3Q?=Qtg-Dby}yH9~H-kRSVsemUc$N%i`WTHP6yJR*Gri=6tJo+QihOuu| z0|v)@L>{)*I9#_iOdVn)t(9OdgSAuH=H%(P_rPXzzJ?vOyyocPm8>P`f3%Mz#OcVj z<=>QK5FlDQ^GNS&d&3@*TcQhg&rYm{`eUIz`)DX5qZKuDYpc&lk7?1)MFDIy({h0b zmdwYIVywWvaAavJrJg?r?N~sP&RRtez2;Td*ac=fn<5Rnh9I&@NBopPo z-3po5PATY!r*rm?pF0+B?&xQ!kRcZg2 zr!h7YH}bcjw`+>uV0jGEGP&?THCP$N&>NSG3E|d`0%BTB^b67hS==()RPhc$(jykD z0{VR{XTPDuBu=0xCnyTgC4nMiDzNWccGO(O_BUS{qp}M&3h4NS5sc$FY!QqHNX|gb z)lyg>oGr;35Z~2Y`zVh55z4muV99$)u}e(xUJy;8*fe19D;{Hnq?A;n$HSk~M~H~D zB5&M{V`WrqSJSD*q2d)9hJhmLBX&Anxq;bww%;u+nrU1WE1Yu{ZN0L&smyAo#7Nw- z*0RYNZ={FHO(V;@A&c)1Z>Aqafk7KT3r~| z0{~5Ar>=0z@aIz@MiT;V0`ZAPRy%cR0Hj~mKl6Q%mCQ|?IhNznVi2rCr=v*ie%~dk z!s;VFnkPArxn_L|S-nYl27_hO!5W!KNdT`^mnc#}@7kxMyViJs2{w?VHA&Hj`2As6 zWGAEhrQ{3*i%6U3xYj;ee$6IhHXw_(?c%Zh=sZ$3g#~pOVx+S`i~%i2^)|96Pqmy# zd{V&>MQO=zTSF01ro|DrS45|vroDN@C?{7qt>X4+_DYY&c4sG)kzKCxW-jZK`B0si zcD&ckf}8q3`%S8Kb4Y-tl~v^;o}HreMg9#W9Acpa#@9H^&+F=C1cVbR>80* zaKZhu(K9tsc(`A)%D(C!w#EUfD2kAB|QpIH0 zXU~44?G_3MRmZ6paJ4gfiZ{dUv(BAnmy*$VsdNOPmD9)sJj)%kt8=p*B74KEUgj#X z6o%TixKvr^Pad)bdnw0k7W1FRAa*xVb02pDZI-ANT48c>-Go(Lg}xT=Ey2h0A6{aN zM#E&NF;Vw}iDyqGs6^aqOq8ym-bJRGj>38R#Fd_|23xoj8~gc;8XJtj#cD(GTTL-B zXoN_P+lj57z%5H2Sq1-^NNq#DRwPt$?1JXh#!{(#LUPZ3nLO&|w;SOcW)&8x8s@zT zJzl4D=|aD3Q7R2P1cazDG_O_aPcE0lIDM8KR)Md_#^Zk)?XvD@?49EOIYElVR_^!% z_j9}~&euE98`FmTyyYb=vQY`88pGWhoR+S&;E~%(_cbdkhNo*WIsKe0lO(0%@@NPq zTlCbgX3Ld0mb#r1JMQlZ3ML>qqw)xG40!hzCOvYRBzZ8Cm6uoZiB`jM4I(gSHs(J) z-L-oBn^gW9{S*qWP8;F32lKTWb;aGVKUmtY2hhkp_9w zB>#mUy42lI^EKca+dO>+NS&>^>EpUJ?Y2lwo)vU2d%T1T=0D*;NRVAH9@bj6jhC85I>UM<)9r{qHOvFf+01y z;H{E=Fdu~3hVCnLVxJ=s+9OReVMe(ka+xY|_sV?avS5yqrBL)}RPN5>fWxU@c#5kG zEXP4I^7=wKGBKKdzwWQg@i_s!;&@9A1Vl*Da_r97(eQE_gvm2h&15B3yz?>CE%^R} zhnl7`6Jl(uo0epm6vLyRXVEkq zyW8WIFFpi4-_B|yoQqgU7Qou+B*p4he|L+gb1Ztlfkp|8LqG%Q=KSXcrz_2ssyW9x zb~*pZuZiOY3mL^CzVY-Kw3OeoI3fP)>l_v*k96>$`Tcw#_IykqLGoV*p%UMK3)^Z3 z2Gte`O)iH$4{UPsf|L((B{VOC#=p`eke>%+saTUVu1y5l#QAZhTQG<}8AZlPO3D3@ zhbcgL$mVlvcyV#dNjz;1gbX`}(aqh>B~-)l`7>AOx3^bl2qLw8@tJA77p)?i#)L}B z98uOJrCkR`5`N|1nK(zQ!#FP5!pz5=De@Be&iz+zp4-(`jDd>pFyH^NTe)D{o#rQv zs)ePc#8J6QUw*vBOal`QBfqq!At%@^rz|f}uk)Gs45_ND^xqxj6-kZ}&!!!SpUBqrJ zq0=~v9#C_JQDDwTgW^v)G@wvUy1byL5Nru(xxZ?inw`@Z>p$OB4*wL<72^*(rP{wk zs5h{c)~&~>+qewmT6c|$z6kVfyq`WlvwFa{5%}WJimZCzd=7NZ`Dc5Yya!BZ1a4`C3>LYl^Z@-_L)8NXz-l7X(M+eYw zDhw&NsUX6&Ei7^zJTlk}y13wN0ZYhJxQpXa%f=r3{n+ehCQ zOO_MAu4`+^Pu=zQh(V}aA`Y`3TE*rLNciSdF>@t#%HV!N)9MlnmSIgp6ML)`l|tU2 zKMIQPO4uehe8^^h|KNf0GW?#*2jI*E?QNKq28WP8oX0L2`6=@H)GhG;yJL@Rv0^mw zs;YT?X3RBJ7)YacU1VjPW5e&E-FuNrmAu(1;_%mLV&j(Vvxee$0#vUv;dlUeY%;eA z_PIccTD0-Y@Q5`LzZvRC|EDebemL_vLe7B5#g4yXhKXdIk62|9mX_E$gk;({{q`xnbbePSjeV)O}YwEMIaIp3s^1R zHUwLyTdco?+JL=szmw`y5^f)C2aVu}I`wepR-}AI_>gnkj+&y>3=+l_2)!4Q$n>K= z$y^((N-r^;CoesmVPoPlm!L9+>&03m)mjOdMI6|8{0~j%z+Kn(b>XB*W81v38{1~X z#%$8qc4OOiW3xeH+qP{d@A>`5c)!5CXWX;*zH_fN=d<4SdfZ{ws*F`D5QurdH*dSB zrZDQZ%@v|hNin9*tgW3BQ?Exi~4P1P}=BKXQ3(O-+*t1QJQyxiwD+ z?AvZl-X^bV4~0h%RTSx0zDt2BczZDbqb~=rp&4FZ*q*2D)t>;{EFt{K4g?`4I{7uf z2O*Vrrkg<`wG=4R@+Qj#>CpAV6m2jpv@z@QZqC@^(_d8bSD3bkvHi{W)Ep}FKP5gq zyfCP_h!ho~g<=B(<+9an5xYcd&9*tk-nP8djpM8=U(7QW8z;=1ueOAjo2)ZV8l@@c zY+s+gO1a`pJ=LUZm}SM zX_l9hOZ?9@R?IM?qJ_;CvPS0jv_jo|nkA;cK23nOWq(Y4< z&`U!+PG^NP&{V|W;NbDjY~n!XDN#wGkuc>uT-fC@al8$7R?V*kh&4}mEc)2BHP)6d zIaQ+C8vuX9pAC1eaTWFb7@3d72W=te-3MA z>9y%Yo9RoY&J#3bcymmb4BE%XhX-+yP>`B3rlM0@eF0+7L*w@Dgo-EZCI3c1g=oFo z_0Fud>8Li?mrbfmTX5*v4P^iO{4StItJz|gC$WFSYe}Otcy@SL!rBIS5J&#`L;M6J z<2R4HU&nK$DgixBR?Bt9Wwa}T?H%5QuAkjfi`Fxe0bkY!cy{?uqR5ORVV4`d>+$*^ zARvk`(5z5FD86pLvP$h=k6LV`zFv~{ONH$m?-z;Pbwd*m0iS67#gXzV{hAZ7T|(yk zEgqb0-t?i1z+zC&Vxj=!2>kJ9J8h%ND^BVuU$xF;7|s2^j3FbVg6UXlUNwM=DDC@a zeY(PRYaB;hMoy6CN*DJ?t4hY>#Am8nZMoT`yDIq)lW`q*L&<=#%$xxFR{JZtPw2f6 z+v*K2$sg+K*okS~yGFA?ESf=%cIdQ?z)7iQoArsB#`ig$|6T^m4MC>nKmt@xb=QZM zdZi9ch@qo_W5`Cc%Ay|HOl23OxC`p$mJ-d#c-&fHhq7`kUD|7ta7iXDg_3RUb@$7t z{s&og`%O3kv4Boh=Zi%e5RXujDU}@^8bZOFHs?BwjBSm6g9zBp#?3F1I-M!8p6x_2 z;0xtd&2ehkdQV76ArAop=RaEf;YGt0R#9SMdPu@zg)%MX0A7ZLQyc1#xxeKCG4Qtm z<|BiNFj3$UT3G8mYC7zf!qAI_Wqeoo~Z5F>6qDJu_DmUeP-ikgf?gL&QQ zm4)#5DNaFj^yAu(C(i@SFp9SUa~1PTrqfhbN}1w@>{GZEL{)rFLaB)ZC36b{=h3ol zY=vIiQ7T@NxziCQm*c@0tF=uRJNlOi!?HA&O&3>LPBF9rfcQ~NTP7NUv_sk>`Wp*l zT6!l~K6YvPP6n4&&#U|@8^}B9n}R1b(negkg(1$xpO1z29^4t{8w6>+`y`MTyW|7otH=z} znSb}HAtxy*K(_c?SWIOx-b>cDnNHJjb9%1m0->I~Z8F?6}JTzj9T}qlQc)8Lj%X&9+ zU{?7PuzDy@o^}f-lRW@8nUZ_fBb(8K^X=$6B=DKiO}j9`L*+1h$4FKgr zPEv+VoAgD?Zgc`)3l4-x5;(CB8qB;VxLtK0Bfvj06Zd=6f+^fcU1F?r-)*B+!&0r* zOiL#pg?LOXE1Q@?FId?9`xt*umvW@lj$MxuJ9Ib#vxo4HeO6I|#2G9**bb@b_F!CP zXDJe6t{S7m$cq(QQ`SIDXt_EP25$>=jG>z;>Ufp@9?_oCPVYOOGX<^z3s#uwf7X1 z$h@eMQfy$bG-@OrJ$SvC*`7e{r{C$fxsZ2R@C>d?t;faWfqp@K0*_DHwBEH^{vx!&woH}nieVLPCKeVm*)@QBVy?!I%&8l*r#6Y6} zYVo%Vc$v?J&#Sexl+;wn?+wa02ubPYu-PJ3zLNalNK}ovzEVHb%)al$_o|3U$C2fB z?Ns))t)AqpHk$$@2_^khWq&Jt?m2&)T!HOE0G=}+-5B4@8E7-_Iely_tWw#7Wz(oZ zo*LwHB5-Uj9cI>QDiCU!XaH&dP3Mm6eWjUjXac6q#^}H2 zgH#T%>~4wL{CH??D<<9{dzomFf6? zS=VQbl_&0^gf=j#zPkyMOyPwomYatJ4kvyWEzM+`u)!H3UgN7^_WkZe47$r*@aqoC6$>lAKu)_xifvvsKt`r9+T{5t!(67ygvu5|qQN9=aN}E( zOpqzRMIrM`7ZxLT))RZ$cEQ+PU9NP5(0@MAsTqFV`WO)w{>GCwx0W?2ZnPCC;;haB z!m&j`88)8G=1-m}3|iNcASr1jaT@=x$@>!(4Ic{wi)%q7Fz2#`uAjUq2czm$=O%_I z&Q|ZK$SV824Wa#{1m@x|M0{9R+akw9Zp5{25hBr#mrn0G%Wla!>kZzkmK92(@B9=` zW%|-n?u+3XR-496X)=7h``k)QN(?~E|^TwctT7?Q6OylW;B+%M%+5L%eO!b=wXq5d?cJ8V2rO z++X+pYnXdpv`WS&B>bESO0jS{gSPFW#O(j7tf>sjz7FUooRQjonJjYpl#o_jBi9%7 z?Xr5l>@u0NMwX3{W;MXSb}1w=->OZSfzqdNr>J|(`1~IO!n5lG16K~duYOc0%xfzL zjcr@T9{x^El&4^Yu58VV#-+vcwbZ0LBt9x|+e($)4lEa*vO~8nmt)JrOg8XvZDRuw zT!HHs@2<6YFZXQ|OB&fOw*~!g18uxrb7r$I-ycNHQ!VH%8Q_5f4801PeArgh3KG#( zu=CKc^`j|gIGCL-5OU{>h8PW9T-|Rz`yiGT*SC4)4evq>YhC&xXsYVzg z0@B{9E^Uu&U))g0sz{uFwiMs~?Js7n^)l^Ipcmv@u>NTDr(%75M(dg_d-VYSFmXFO6zk=iRU@{vFZk^LW_ z3d`ap1^R5z2H813aX1}pn!h5O;;x0?lh5wd50w`cb_Pm7;+gCMzi)uNz%2e(9oCoFP0Qp|Udyp~S9*%P!JyWHQ^_N^iv^A-^tO^+*(p`0kc z_hA8d51^&>8WwNoW0Nev%7fcoCuG8EHz!_A>TkeqODwn~D8m+oRAlmCJr6tS0h{ji z6$lOw9oJ6`SrtnWfAeb4@t##=hM=9*j3MrjE}P>`Dw4YQ&%poInAo%0$2uf$c0@GY z(NEYEa)Y31u-YLb^H7a4Sy6p|XiKha%e1VpY1P^D znPA<0Li66yz)xi*9Wnvta96HJJXiwPpce9Lf_Y^S(hBFqN=+3VkBh*-{Jh3m@-TL3 zr^7+-h!|YB4#<43*K!<%3;&B#*Ls(03W1E=)M4;rJXImI;Gg`pZ7jXnf!7)Q1RP>W zGSfn0HQ2yMl1o`&G5V+L&nG*tA^Nc8c-@3i3Kdp4A2f1W5|yK=s_aIco}N}GJ%>kZ zZD{F)5}eh*Z5fvKowXBi1Slia=}~9){4o#I^#1&r zX1Ay^%9VL&jsr1_z@9gSS?S>@bk6wbtSHjiDnmd>)IhTZba~ebvFMf? zB-fS7{jgaulT5SR)ba5+ERNOh)Y$n37FH(MuoJoxRVzqkmAiBsesUB8`QGdD>dvx1 z$OJqh!7+F-d$tPXtdIytj#*@G;)YEv!9Cir>BPmlTS_|q&JnDv1fbve*}-DXxzRiP zPU&v{w)E;Ozk=fLs;ZuCw|8rTZ!!hZug5<@k z=)f8+W8gXm+xo$Y#&zs*9eErCCUl0r`$Th&&)#l^Gum_3mZUV!z2-#ty>qSI_wxe{ z6O)3zNOl#5UDutPx>UQj)4K5?3M?lM(Ne?wMpQvWirQb;f2amOFHqUhiB|1*-b*Sc z>7@!;d;P8KIOPM7}@%=?i$!E|nugwDY@kEW}O0DWj z*`$;{?MfK0*Gmb&Pbo*`{WW9~)_IS2jX%B=rPNYyppn`>T~MZnD7OU%+t*Ksh7g(P z#msH&)D#y0&*ml(*f=#;MV+q}UDv!F-OCZ8*K-dJ(0ZolQ^SsV;l{abI^r z+!bQ@R!yyuLABvMAibBx6lU86Yllt*VnhH7Y54B0Uf_0aLp=evO$b570xrPxc4Ps$X^99dEUmr|l;J(d&>E?9M?9!@~JKiny!}{rN%YVh%xS zU$aI>fe;^LnKUk>rj_b`{74JizpO~3D(r^VN5L%OB{3eGi;GM~Qri_Td4znCT;;1p zpO>;pqo<^8FDXN?$t%VExAc*B_XmM{n2u_f98KRcmnA|_UoUiOj(tmfa5`B9_25t7 zK%6BN@)S4fA=0cjT4tFP7(n?-;+jbe@<5d0Umu{NKTHgMK=b%A6P5Bvr0;Z7vrvcf z>k+aigAKe?#x20*a#{OJK!Bq1vK{k%AY?vbXA3>kDF_~K#$3Z-HU#pN=Okp8{@SrVehzNIcZ=Mq8XO%c@65vpEkt7QxXX&^;ovd zsQUKq0BB1haz?6F(Ag#(H2Q-G9*g08SVBimB(NzUULU#U6k_|H*D)V`RjoAmRPqL; z_V*YR^+aI1AeEUeryXSO-D=Yy9loiLcNDIp!`zq6Jv&yo`X{}pLQqgd$D$0Lm3*;j zXG{cYApdCQO6p7ef!o0Y4@E(H_nci%isM zsC@YXaKrH`Wo;U1r7zp)g>6)8k8Sz8OoDZ`x{4_Qs?2`8QqVc;1jykZbCABYsF`0; zr5~MW|3dNC<`)#)cmI4j6KP+l)bYsFs)j|Hb(s!F$!&=HTHQTAnj&SMRL)4Tl)A)q z3^`vdN><$u>(2!Tpsk|KBC|E_;!S*$!s6J$t)a>~aB7>Va8-X>zd|l!NKuV8y{ucn0i522 z35m1BI8m&9=#%W3;2oFi#x&5^H`fBMU2FcowW-Oai%3K3 zSlq|*(KjIOCACBgJml928sRCM{Jp%cE98X=GFaU`5EL35gyd3-Jf^VPZ@ym%T$JNn z3%@eET4v;2l^fuZAkoO$4A? zm(whS4x+R>>|+t(FLNWfj#!D4;fXLX$62&zf~{LHJL)qxlc=1yVa0saj*Be5meP+n zN)b;85D2n8>0{fe{`~G==zC=*?Y?g|810X2a{pU-f>1F>K-aS9w!M^RNGx`51yj~J z*RIO=G8has*C{sY&~#nKLw}m`M=4`_Mbw7bmK}xv3Q2#MCL4!@rY>LuHT*$6sUb#B*_IE>=!}R(k$xm0;4$ECPWwgh)j*6si=*yqSV%mS z0Ph)*s`K|9JFOw%Z#sju;4j0Hh|Xm-7TG&_7Q1*I-&OX%%*spmxNyJqAxL|l>&?;9 za8b(Zy6-3PfMqT%x7hDGHA%t(yfQ&SUuj{r-m?mXLHDc{e{b7nm?@!7pLy5+Xp{ny z6=G7NJl4Tk`G2YN=AZ}^dXN0oLYJuHQ7P~`k9uT>2ed{-a@WzN+}v7<&$r~LAc!@zD_^;)2T90OizVw{A>D3 zf%K~AOWHB{IVqX?ONe%HSh*-LFnDOlK0#@bPe;0lpA9a?+5ZkaHEG-G&glU$T!v##`u(+4Cn9CSI0-B(^Agm}nTohKSRlwsRR!_@V5gKOpl!Y*r}&Pwvvam-bJ zGM)C~KiHkp3y8ag+Y@!hTF352FWdRTdE~h3<(4R0R)`c2r7`z&2_9XCP{m$t(~?0z z169)9rOm|W={HEwExK_0BO%eWq}v<8NRUXZn7Z}-VfE+3+448%GIIQ@vQ z(eO8Q!*3i4-R^x0-Ilxh8<|Ddyx#i=tCgRsEIaJcpoti*)j-PP#A;)|^_{>$7!(O* z&Zl<1Q$l+FTmLd!ZHKy{2V_SqAEmG3-go-LLt$FCgYg58PXOGo_;{0c!g?$l z4!Q_zV9xT=X{`XL*E6lGXy3Ff?O`(cl$%;at=1rR=uZGHv}ypM?ISx~@~;mn zGatIcjbn8jOnjy;_Xi4GW|KfuSO)nu+GlwEl>EjVQilaKFJAEoDu+*Ig}!bS1vJu} zOewUxAO5Gzrxmm8Ey+;;D`u_TIf4R}Bf1d#BDSZG(BjbVC*a|CU3X4d;CepQ|D-LD ztS^>4Uy0(}paz)I)9FZTe`d9#l%Vv@4S!@VC|w6{u>-Tl1A z=wXg8BUAg;Z>Q6R%3|G|20bsY_OVQE6=D;k-7pM#Pgk1+z$@)T{KI`ly(zbnTu3rp zOo})Hdu-N?nkU!J0Tm66{yjJ{{z@T>Jw)x?&Y-^=ZMn(t9{BcnXm&^iHH-6?`o@ee zK-4u?PO(Cku~iHCCA9pl~LvE_Y2e`G!8O#!OF2WGZ0WuG9) zNQx{`N~aDvOfe*S2kKD+3NAS>xK)ONC!$OOiv$@P8R3ncIbUVPApEh1&~pFkvMNrr zE1k@J^b;b&z1A(yh-@BOrC2TwfH%u-ct7gmvRkMIjII3QB#l$TmUopY=19BW$gtpZ zE;Kd|U!8lHjz=-Lnc^mXL*G!A#yK0ETj=%-aEb6IAK;}FYfQzsUORG&hn-iGHp~_X z(HStS)bH|n*>MFn8&EYVv%ICN9NLnu4LB+^NgY9T);C?PR0XH@v>#^xZ zD(U1_-T7B6?#Us21234=2Tdunu!DRZD?;|~EOH$Yhgpb@b|Q;cqpIzsEFt=Fj(^e0 z9Pmi(-;6S8(1=Mx9@hFkB0bw&i-e@ekGIt}uE2b0@CNO+E;X12@nl?axIn%*$9{+o zO8pR{B7CwecgTOS*sQ8_ATcDq(AQueNl5&!>mna9Be7-aShD?qqm{v1&Xb8^c7>6G zP5%STz8xc*B7|Lt7R92B3uoduNQ^zYzSIm0VP1~tkeGlmKq4|JI;()<_6W5-I^2Xf zZYD5FSud76J8MS>G;|OVQi*`Njd{gre=8gwG6pK8ABvxny$l51cD>Um->?6}Df9dIEE2pN= z^$uq4DrL<(G?iv8MV+7jQ%T^LMJ?FsD$5xeU41K9XFOH`&^I4y~ z&UC>;-SO6ek3XG8S6hHF%F@t>!;%3Vc*PcrKc{kqUzBRv8SdL6VKqBV;wDoRb&C_)$)#M()Dv6e_A)Eb6vLF2-!woBId-7$1^m&P`>+!g{29u5 z{Vza0cwbqInsnC3AyP<+AV~=x!$y-<^V3Z#`s0*Sxz76dv)&a8Oj%8rK+wtcab}%# zeaTOEXGlMs{Ic5T;OP)UF#EQL7*uFPEuU zejVoVlQR1Z!_EChC5*A@voQ`XwT%icC{Ag)cA`V4SDYWi+QKP9$d*1pnN}_F{!za0 zD16=>P_>Tsbo~zk8B{Joc#=vs7{mdA3Wa8!y@Y^>$7XlH;`v}@hCqMeJc5YJZk0Qp z$urDqyG$aKVG@TGM=I)()ILsq?3KZa3aX)P#QRaJT!fid*Xwe=Wbrr2s?m3zkGIA! z=qC#Luxd?<7x}UE=Z&VzuUkBp*j0LOMsv^(s;6mmQxx%rIewRWw+mA`qk55;fG#pg zZ$5>LR-V!Kg$ij=Pawv*?u26fMDv2GeFx||tLc1k8$G|YO5KhbJa*e%(@wiEiEt#2 z8TYzLuvfp6MBA>nLhH2}1y9JQ9H;0aCwb=6rNFf^5ge!1O)Zg~-(`W1;CkI2Lq9AI<+Tk1bjL3m zwMOFSYZ29$7i#7)`M=!*$>pX7U0{EBcfK!$IuwFmX_l$d^fJL#C=|ZCnvwJf8M$*< zeF^=Kq|wnb6OKt|HJ;ASNO+BpTc>)Q!DU*As6zi%SnIozt~TnmYoflVCNZys3`SjC zD zK?!PQ>Z6telGVQP^w@I23OM9q;g3?XYX}Byc>G>9-qYvSi#$I*$IK~VwfAY~YoNv_ z9qQ3LLVEeQh)Ul2SVYe+HC6bV;cl6G@VKSUx};uhCxrt2`)<8r1O4v6UIL`3EWWAu z!I^y{4Q7LxRmuMXL%WqYXjFy8pfR)Z%{MYnVZ0FWuJ^mqc<|@`FpVc07Sr59i7JUGoRpw zw?bMaNIpAvpu=eA^|ZPRp%~8Ut5C$8ob60q)&;A|5+tZKWC91)ZHPJyw+sDG6~HXv zAtQ`9GLL+#^3T4jrF`rt5%Wz=;jq>*v+aBmd{o&wbv(#(A0sC%dEe)xj^qmoEdS>N zV}`&-mo1-jDS!&shh;_pS?8C1HAEiMf`z8w8)vNehVZAo*+sc9hz|nj-8!;P0OL8L zCQ+0@-_E+NU^eVcO%{qR++8HgsZ?j^H6b0z?g`8-SCgZ{FYtbnhy&DaM_WVzgKPDen~YIu|CWu!YQu4F6)~yWFT={@wCx)E@~2`ct+% zZMhtQ0)|x9`OcG%U`u9ylle%OUPR6%Akc)qBn#_|_WWKr0jva&!^<)=S7M1=no$C! zyh8=e8-pai7 z-&Xiz1a>L8K*xK(_#XX)d`@T|_i!0fIajk=E-BNhI9e9E+rJm*#^%aYb-nr~^K1Al zRur(t{Oh3d+B}~BbV~E`^nSRA1B+zqjQ+hM>A)8vMNA_I5hr(NlD-Q>Ab1Hz0Kt5* z0)s+=VMDftT0gQSu(@n2=(XKslnM=r{g$Y+wT_mEKA|V#R zP4W0Sl%){#KKyR=qicdk@ILpDm2}TQ5AI3eoAx}9JiYdWm&e6mMwOjk$V@7{Tr=0C zIrFMP;^zC~Cb0~5obd-aD@kmml45Vl@To+t$Vesx^HI+pK6{~}j6 zVv4yKF_jt`JO;JV--ok$wQ_aM=bQb4PcIPxjXz4=^;29s2(cDq zt#6|l@|=gAC+>Czz@V+jm_Gb=ceJ{wFmJM&_KKM(kl^}YBs(5StS;pFc3yr_ z_!eV0=wPDLYGF zGF&$HYRN0aX9v`a<wF+%3}fy=xZ*&2FaLp%&++UqZk;bk2U%y?3Je&c}J?GiYNaZ>Sw!&^YC^M+E!GueFrp3a)?_t%l`4KaiosrE^zTX?j) z98qY^9KD>?n`hPvrR+2HzaBsFx!;g8cs-M`DYcv2^5oG?=cfF<)yzx_GZ;n_%W6e=l&7GRDxeRiq?xc>{%Ol z`#1uZ6tF`?bM(D<&a+O!RecG8@c-TV07TZ?DA8^+hc-XgaYLD7F?=`zDVoe@2Sm|; zQBUO#Ijh#^W&7&+PVN*i1B!pp@bEJ1!$Ga-^R(L5NoD++QBxc9nqbOc)~(ufb_1>?BuSBvR#)3c->)&q zosN1B6`F~xcNycU-@0k3yQqBgdL*qry9*R9cprnf8zXw0L+&omS1^0PRwM@^aVwmb z;TCGL3< zfMk1NVYYP8d-<4}MY7TTS>170!5SUzkQO{hbZT|b*@Zp6ac(gTB_66N?x=r zRHJLR`lTLbhjz6#>yD&6Kh)bmjeIkui%r4hj8mq@pT}>g`G#3OV9^E#2LsE3Ea&5B zCfDTdK{)4C>oX0O=6O>|c0QNk4+FvNKZyXFI#UNs+fXGMBob6Y{j{K=6d~M)SO5^;&db6-5T9w zIMlzRzruyb@%J`~(tr5f64h8?FUQywp9tny^tZlc=D=jMB393nCy*}TfqyFu`j~It zb|U34%ArRMfW6}1Xp;7gl5q-Dx#}dj0&tmiVaAd_2BWbdyA&2&8v^5tWZE{3&QE+z z9+5#IXfE%=p4BVP8oEZU4>oITebO|=$Pb%S!hSnoh*0(J89!epD)%%>e6#Q&anmGed0_u1gPeDx?Zj%L+ za;*;ggae;BNwT_llA=$?tCN)$&&oYSf7v!}ORc2YrO>vi&&0v{XB7p{i)B+)YPM|+ zqtzMpE%bfvqGeyZHx=f1#k_jk8Xw+_U8Q&N40zSz!6bqY;wWTIA7vYO9*uYlp3@|S zk#_O$E#owFqAV+wu7+9!L)`922Yaj-JMNTO_7YK{cJO5PUiY$qWhlMzjL^ziIG@Q~ z$BRajcD&8O@uDuh7e3_*ZP#*GvUlybwT+%>eV%m@|QoD!AEe*(ih0G*z@Y&_Vt;)Rn9E=lkQu?Y~D6HoY;Id0;$J z<)vZ3ORF(q*qa!;7wTNO`@#0Ab$fpA1GN=4D^?&8W$44S*wtC%SCt-~2*rAXu{WYc z7H0UsP(wH#0|gc{2YMfx)L#y1oQiX6;#H1s2!V>N(Sm|E8f0dEHLJz)c)Xd?cxm-L z)&{)Wer*xr%#87$BG#|IF=%wo-U}Z9i@`bw zk`&#%H_`Er%>z*&vE+n`MnpmpagmRB%(BC+vHbAn;eO5x80Kb;lQ%x+~q;1tFBPSHO4wZ(J`N3=zH_69F=Wo3h>FUR$du-K<3rgmKXQw8MjR z0B(0w11@-)`mf!A{`c2;LGtstoc|82ut~d&F3NNT9@lkr7X^=1pqxy>W0y( zOkmN{tj8@RS+DJ0pp>)WonnuuJIvQedDvcv$2AfR-|Kkwh4FyAu_cu*c zhCweIEE{~v9!l%U<~EU-;L?9J2{T8wS+wd%C+|^yw2y8LxTgf;7<<2^c==6%YqY|S z<65I;(7YTFs7$i3_h7&Sp=OwYD18JuLJ|FBY*4 zc_v5E3J{yL{_qO-fCXb!6v&`*i|+}7D^ATK`urjXDOcJ!GNBMj!2~RY7t?bmke|#Z#In8jpuD^);_PsmcmEX{A_l4aid$)}QOsP2e zHM(Ke7>Z2s1|%>DR5Ub$!Z9iKv0&UWP}be+ikq20K#bKC?^Bh(qXiJ?Bvfy%4Bk zv}g{3#oE9#1%gW2fclb?XDG7228qnbH->1dp(h1nZ1chzRXXOQDNK)(e=&ry%&E+v zlqJjrxE~#4be;c>Y0#;^7igVu2eKzlG{FaiT7+D)=QoC$;BmK9Tj*lc;-mZBgjQFh zzvJhXgYb-c{9wk^VH_u8HX2tid_~a8sHs)i{M9SOXz;0oWY~iCT>gn5z;+d7O*bUr zIJyM2R@Jjws7V{BO26V-$4e9{-&`Z7RrIC$wSFoM$CP6*j;(aF1uchfKKwy5P<<|Q z*`9Cq2$F5c-TU>VhE+y;czNTB%IA+;FBM0&&}gY)IrrzgRLYj-KZ0V#oC^xHWO~gV z-%kKxr-#UvS}wAO^N#*4n@L}w`ctG2e_r%-u5|Z{tk^27`3SnV5^!1dIEi;5`)N2^ zIC&NbXEJMK1QU@$?+nY&I184M@Z+Wb_HYSZk#GBcC4nOx-IGHY0>%79w-@pw7PrbM z>15$y4W0sbFvbs_+BoT?@hpJd@*E)8yB6;55qN)oyj%bC15c)NC9-rbo-!5B{9^Zd zO*KXF69MDkx01&;OA@033>+xYQkdC2>dn~C`4nx6$AAdsXM#%Xy`J#w|m+ zMKdT7g!A5(iJx)+9BC^~IUJNn@8pH3kC2YoKrhDJ2FFW_t_6B+%;Z*DdDDXpS2S^fTTHrDQ+;le2p{vyh%95Iz9c zLcPPqxY_fT(=f3=0z1K?O6z!qfCazlO#XC{HovGjiTXPk*k9D!T$QcMg-UIFcH)o6 zuFqD%!VVLPaL7|IQu}{c#ucegT$@}-XG!`S~TFg zJOmNh@L~c*c#HjqUxZ9VVE*Mrf+t{#H7=&`2U_0eSvngi2>ZcG2a_HsJ@2^?R-w>) zdYeH)Qi3FVRU0i!t{MbPBhyY$;)5ZGVRY5upuEYUHTNmt3H6JR6=@>*G37*M> zYQK|69b@8-*K}_xX-s*_QbZ_wAmP1owp?E+asJ|RFYh|K?E8;A9}b4ab-yf0xcgIE{!vpo7W{Wp-zc<-k4W>TA22Yh&9=8AX{wW6 zkL#|wKm6jv#IP_*mY3>3PCv}h#97BFAfyVh*T#Y1gq07~i{Iq24Yg?fEkQSovGd;)(nlU3=RrZ}m!IttfD^($Jt) z_+g0;ycB6{nz-`6MTYzhewEXNP80Jhq5FQR`7>F?2dlUnKL4a^R8i@#u(74{#{P_u z!(SK73+EkPq6Fnly_}U_!ucrS2;aNJh6aQh1`%%lZNE=T@+Xqtw2?J)X13$~s-V6@rhUVwP^-e_B;ZPRg|XhyV# z9ZQOWlgs)rx-2vB_{T6{EwlHsmOcLUhSunOV=$+FT)UYY^@yA@J~g<5kbu(bThVB8 zvt+iX=tn9ZxLFfV;Iu}$=AyjZ?jRN7-M6OeC=^;IOH#?`Oc$5e2=pRvH**uzm0I5q zL*lO4Wn87H3TTM#?o2908{Wg;qZQVJ3dszTRVHRcFr2%Rh_%wcJ-1hwW0D!PJ^qQw z9k7Uhw>jT~_Iw|&a+zI^Sqb6yt%Yaons`@8Ei_mIk0SRv=qBiO;vzl|?{pZ^Sv<&u zKP%PPXvF?|SK~p8mCWzSAsF0R5{u(5^UFUjxdk^ABT;6po#Lb-3ZIilVMddXsTnFN zIas2KjDt#G3 zv6CL!+xn4Mtcy|@zU%&CzmK0=_*07HE0g8%OwqzaW_0i-#R6LGG&K5dJ-TJsvMTah z&8RF<{^;5jzlda$l_utT%Ai)}{PYPsuWZ^r?oQ?`j_%+K)r|KT)NN|D-HouI@BSEk zu)5+94D-)y@w3PqUH*h_W^L?anvaCm)ha`Wp=!ASlsKPk;L0C zW*E0x9S*GrmRZJrQMjxF0pF&?jH0<)2kdzs(OC?${*`#fj8TveM%Ht-d3(?Gp)Bq% z*YIKleREhsIlVq`{H9{kKq?xXnH=Owa)jZD76jBv^$d{t-%q}8D(T#cIuHbIB|L7b z7Ipdf{Ma8!S}RnmH)SxB6XT5I^%HdlX1Yr3t*V+6g@8)2R1}8AHP*M-r|LsB2eHD$ zn!Hj{vTM3$qJxp}55WBFqp0RC<6>?9o^vdA0*y8+CaG_Xg|xn0Euz+GCVJYGyq{*o z?WJco-^;3NM;j4wK+2!s(p%quj%Y_XGS<~4S%!f_jfvzv5Rce1FE;kfz3g;M*r?S72C z=7t3ACO`;t&xrh|l3~58;+^(@bfg8go|}JRbrqcU`O$aKwKEKaKM9}RC}#GQ1RMOy z;PDbODcHHZxFG0AGTVK8!pb*J11$2=$KOp-B`xnLqn7;hiiZgPD>JSJxmdHv{z+YH z&VDOVkXk*VBeWQQlf>tq5}(%~yLy`{EEAN3f~XOGURjL5%O73`AVX`S=;E_zvB1Bp zpRVZjo*=F;-$$g&``YFg_swTa4dt3X{HRR5IZjW$qEIs7oj0GU=|j^t?}gBA$yTR% zp!4jZZA(Uds4#s2my=T3fjPe!h^)^G9DUUCKRakF-V6zHFEbnw<2`%&?hm)04fQ?A zqj2eY9CvOSXZ=45fC9ReZ`qhntqQ1aQ*B9Gqb(=}K;1K#b@n{0c;@^?CeIrWM{ho) zx-5;I#%Gj|A>jU|{^JUr`3>D6445$P_I`snlFV3Cv!NmQG;@PZy%#;{22IkFA`Ch1 zEw0T0Z|)Lwt~56em)6@vP2~?$==BV*Wh3r}35?suJ?N*e54{q=k%UoZo-{nl)juzy zx=_(vNq@K=%mIzq$F!d0g%H(klx66t?zTK$A66R9E*P>Pr}mp{Yj(VjsEib7o(q2s z#P1dIqY#$mFYo=SUaC$$N)V!sxv3M}BSz97#)CRl>(;GviDV%58=MwSjnpF`ul?$V z?!q@TJ_lBC(6`9GI(6#+uIeBPo9I?~7>22#B->-8H|CSh_?;<+dFlol>%i}o% zy1b&I9XSkGm#jz>A2O}d2HlZM=CxYcd;@g$iIwyI6e86tz66Ky2;}M8+12L9U>X!RzMqEC!l7^K8k2GznAcB`40g$k{UucOTNhzYInn_9FuU=rx& z_LD+l5MiD+@%z}BPS#q@b&vN1gP>$@lCyl`PPkM^;7nGWHy_HHGB0_% z+%rMJWwn^2MqR;sIKy8TnH5ofnjj@htv8j=GU49Kj-@AAmvx`_8Cd~8Sr2Q2mNRPyPCFs--e z7m_*6$>$T!W0hNtBJP8r0q^ZZs?7iiMwmxJlk~hh^b?k`OOLcYn1F0v%Qnl(v28$Z zo^>PTJtW}80F^WhuM-dl_-3tDzl`T;fu2m_Xi9G4ppo9wqm}1f)#+a5nh{`}ss;24 z(^tvo%@aIH*S{|3i3G_5JhbLl#hye75;vR7-v3BkLb=~c#X90dp_kXvRNis>*#myX z_sb^LnpRFUESNPm*Eys^i>mGNP#rvS-J~$-{Q_De8NmH=?i~?@6Eb{FhObg}7omK! zqVnfxHtU&GRqA5+sVxkT7E##m*@4f}$&gC9<+`e$VodX+&&;Du)>_*AT2bc%yu@!B z*(y4VTb^EY=KWkh9#4PfL%=vRe}R08j$P{!k2uY~F4Bq1iRbCZN2Kh zZSun@{n-0In$9siuD1R9v27b|Y};&X+iq;TvE3w%Z98c=v2AP882`DS<9)x*r#<_a z+50-rwbpMTC7&SM4t9ujkG2i%Bze65w=B5>CRGRafM7n?9R7!ETG*A|8ZtTXHfXYL z&V2>g7&<$5Ss}dS<9zL3&Q@XV7}ILy&gco+^fYiO&c9Pt@0Sx}*ki^qcW(g`7T0#* zd}eopeLcg@pfS(l4} zg8Y4vHIg;AwU@P4n4(gFzzi2czIj`wiZVTg2{Jg6#4!PafOX~JkSlgoRJoOFpr*db z&fXOFln@p24!CK^wCy-%Ae%bf++JpRYMN2B4#b$wYEZQqQ)e1_^SLv0t8h8VH zJfg))o`!=dam?|~!Wh8fK5(G3-b>H33;btCxT=j#w%AgPjV&~GWrNG_HA@`j<#Ra8 z7>VwxKG@B=iMJcZZRs*fKB)7mf4$4{x*dBIsFpwBxLpqPMY~e60*`2~Gq_rYvZQ_d zGkVOa_1dg!iPu|}Tu=Twwzz*0^ZoppVyEz>RA0AvO9IC)gY4-Oa&vc-VWdg1%hd(k zv$9|YB$2J#J9~-4{`(hBh>dN*sM`z|kXO0=UC14@wB*%XKHU=+up{kLR*e?F|MAF<=w@2;#C`2neQAqbU`J_+M>56=$_%<$&}_nIaUb&4 zSCbvYvjCV-9DXICz{$%=ev`l4jrG!XckvIm*8wOP-~sy|S~*PSBqggP!&nQhY+j4p z8p9U3bqScN#ge=u29<4Bt!jtxs>POE$zlez8372LMUCOI3w`e#2er@fhnudo<^rL{ zant%Edab4(+*=lky3N>XxTarG`nYi zLaX^D8ljMFAu_3u*m!nFwR8fB2M8`f`OO29H^z)AR=={O+E=pxuF+ ze18l^ulHxtmj4GeTT)3Is2{L@2wu(Dt4t!pnq0k}68-jtyG!Tb*kLF}mygBbYY)0lSp|GtJ1636csruCM-DS{RuZk^;Xcn)$N;Drf>)55`Y1bCQxwr6Dt$!_>CsD&h3B_6l#f0 zKBL!|yCmF|f?c!r*ENH|$y-jNUV*pKXC<;kfGCb|N!WP`eKfhsE49V@oS1&6GBo~m z7vH1;*@bk}0ac(Po9V>&Rx+>5_xcVl@s+C3h2^V|_&Z}DNA-HGIGE4D8J8#soSJ9b}GLV$aNY=-0 zyZglkUI$}Fof6t?^c4t5;xhWBNXIIsfGLhP*l|5Bu-pQHTqwPwWuF$sGNWf$Gt)Cn z(8jj`uP3)HyaN0Cux>B3W(T#P>ojl_-wICfsn{zEc4UA?A#)eJtw-o|1~j`X6{kg&`MPn?4SacNTwIW7mY40R`C zvra)L%+jQvn)4@eHbAXyud)~e7%&{O-0a-~GAs`Jqa9r zVvhhVC)VmzMbDlLpz3dqcazn(2G`O;-ieNi{hxWbVzO^v^OH0moD*3VG#^{9-SRay zdVUB|M{}1v;{x#2+zM7^5va{VJN|TKKY!Tm^!D`JPtgC$CHip9T!L%+^uIOE5wQ8K zn8P>1<*;q4gJqjjY|kl~uhBfHL8$$Czr^5lCYP==@5h&wd&tZkB}7vJIgXd*uk3G; zSkSOU>7<*#e`G(L^R!V$+Iw^iAjFc3lch_wu0MT(E2b$g{h-#`D44g0fKc$6{3fg( zA$IhWvNNHl>pj}oQt|)Y08~<;&C%~0?Ox-mOdVjhxN>GL38aF9#2!3HWVuN=L4IS8 zLf-dO;qJ9f<&D@1%drcMqSY)feoLU&?$mt8LPtQ8$GpJI-Dc8iCagq(mO>5Hv!{LE z2&cC`>G9o0f>9@Cr_I8j{7@|Rjev@Gl>fwscw+wLMr=k0=n3`KkWe8N3bCK;G;IvTm5G{8axSBx&*h^qRCV^+~Nu@$&X9ba=Rkh`osFc+B$s&|dI!p3ctLu~xkC zUz)de^8d2%d=s5h&pgIh$h6vh3?4A4ZFAZ&*$DjFL~(O^gUE)p{#((Km(PDsC7}3Q zxqo)N$Y*l(hq#0J&P*2XG#8>o;^=XFvl%-YRhR@Yw^m9pc~5G>Mo~l5B1Id%=rrGb zKqEgGc`hVs?+bngdZ(xbM!x4h3l}1`kMxD;oiIWIF`qQo;B)kg%kj|o;>%2l8#Q_O zWdzq~ctU{3X{P%nz=uFXRA11o`(I~K7P8kqiJov^(kMN-!OvGXVMN2@;a*bKgr%-W z!z#BW|5oWgeNIAe{nH^+ZtciT94)4mOO*$}94Xx>#(Z%dJ>2#a*CPU@~b7ymk10m3PUZ$|YJo%2u$0C^*s7C$_ zSMC{dT{w;Oj-4w5RO5za&^LrMAx2O(*}3qaqk%9BcT`e5465yT@L>tSzlSsk&IKGW z%`m-)Y}8>HN#X%5;KEPpfmxTwdX6sT-b7C>Eo9XSo$u6)ZlyG>zN0KT>lgkx3pesr zv)33^>z@SN78Wz2+cUDWVtDPfvBwMdMJx6|jH8@5lHC?Hx^G5QIULcuexvRQbA48| z<$d!dM><@N4>AQ8NUC*@Kk&a{E_(=b42t{)Xdk+*vWo~J8h7essvObzz>#H2!*fQB z{fWOgDj_`Nx=}5a%Ue#of}fVQ?`z^EPuIgP_28={dnTC`!T}VNx%NO`RqB!6dM=|L zPlE(b9nFE_Aaw;CJ}!Uf!9jGOP6i7$-rsydUu?%N`6=5rWDJh+LZe>vCf;%iEpBZP z*RoUR&;+cmr$e)x z&MkCt`Az%&O3ovhIIRFNyUO$f|#wVTBL2*{a zJ=n<{?gTt(oIWQilkA+jXCfMG%bEedaza%OHI=uQF6JKouYN`3-i=o~>mS!zt1ZY1rsKa&C^~5MWV5(VeD@gAyMHqO* zq%*)~DerXXn@E*Ogd8AeO78G~~GL$i?gjnV$pH)~SJ`^G)8rHP#zO&W3 zvPW8?)h-XmHX&g@hoy_fw)J>j(8YrKiVsm(kXfe>?L`IXz!3Xh5B=$N8pHgbO}Lk? zc$ljv6H9-{r(DA|cU)7ZWWEWpCVycT)L5y@q&v87?MGZ^ilT(8={WdP>wTCa?H z`j@A&L9M!5M)mWGfCgLQTK8!x|3A&?WR#){iGJa&!7xqUBc^(M9`zrBxBMF{cHO`G z9(C3Qpc!tmR&cRo=q&- zb)C6jX?m@O z_>N4?T`iM;z;$L-abU9BSi^ELv_V!K%duzK`L8{}rmz0+L zQ`SEz0I$j`#ZKFo9NbOEmbYJP7q%am-EMU}HcB`7`oW*d+I3X^-E!_$Y*P2heo~uZ zVp=ouuEQ8<7G`q$P<7*3&r`1^Z1Ju*Qm=w-kGj;5fI$b_Oz< z1Jz?w0BC^xZsSjZ$)8ey48*bRiHTaGYt;7!Fgs8^mV2J;^y z#a=f;Qvo^V74lA@%TscqBx-^TPJq$20ylf1Z@g6Ah{0f%nu5So6B3NRmch=RrL}<9 zNA@w?xBXb=PmK_+#W$3CL>n+RHRAPR2|f!;(ukzL`G-h`fn^#$wWNwzE;m{w=lhhs zIG63~QlaXRmn-ti-6K~efKh|Yi!7ekkVq-?WRkg<`YjoX8@$TyJBREAc&}~#* zHQS6+=F{BtW?H5{lO!eYa&v+mF}vdAiRF#o2bVaZWJBl-vZD#Dm5i+-_5 zftqe@KqGKtHK~suNnp^h9FTkPjb34o2})>LJ5G=c4dwwZ^5SoG*e z%7hZlVe@2U{gn0@>i{b}Wxu_Yq6cq2;-O=x{sc|AY+}i5F{_#2EHVY`#0h`7`C{|4 zYz=w=l>}?5DA->|Q!&mHRo{w2!ecvMk`lEuLH^$;0L{?{gEDyO+viiVMM`llE48OQ z{qJ8~?@1g91tS78LT~oW3%cE2cM?W)RwzqpT0_ABUIiGZ^Cv%RAma}bZ+|C(zLHIe z$=#NyMv4OSU~Ke7|8-uvkeO4N3r=*qP{OMkkmWx~0P#ruzem(y%9s#pGb9E) zk0LL%d$=6jw}lRs%1@898wns;4(Fm<3d^C|@git>t_`vajA*m#HE~%%E60m}bC~=? zQwBcm_!u|tquBD#?(=ST=^Y`38t^+YQxav5eXg9iLFylMdTgONt_i(LV_c?e5>_5< z<~qbcj+#oH9H%6+P4)Ozd2F!M!ci%$eN^F|Q_nw5Ur_ZY;}|+j;_3x4=Sum_km-~S z`*`!W6KI{CvH6+Ow7*J0Llny2K}B3Gqb5Yw)c9$!4W1j8Ss6d`Gxa0%!x`N^G14n+ z-B?rHUHh3EmtxB*oz=CFfr%DXOQZM8!jp|l{L)23X$%fHmpam!ppL*u*DUJFPKVjI z?Vc`&(NuUtX{dPWMJX&}3u^4o<+rZlbyG{$v{kl8@hhOZFcWA5yM+=Z8!3vwQZ2D| z;ZBMo2-`Gc5hDE^85a7TVIG40_PXn)GgYfoL5DT53G;#8goa!-!e>2H9mQ)u6MbHY zP5TNa{wnzgw@zV7EL|>?$tuRy$t2g=tx!uE4^ri=k=H55m@mm>3k=xNCs#)DU zCpOL6i8kV_$m-MO)}lQx$g|;vV<0AsOw6~4ix%xjee?wvxho>!alIOlYU9il%Q`jhA;7 zM^+kRqSBJ0L*R0p^DX@RM;{5TTXoErztbZ_fm87k&Uj~@s-bRM(q}N#*J(f@{5(0d zm2m3lFMbgyX>2@`lyJ#y`U%>(nw18t+!6;~7;Y(rAb>qBZ!~nIAsS9GX#?JarZk8G zW$HQcvE6ACI$!7Bqh5G`G85|KacK?C-zN=gBOD5Nbz3eoyqIKo0?>{V8x90cI!t(X zb)+!hQ|#PJe+RUFWA_0a_j|K~`2I34$Q06eSf>QFs+4HMXIVDB!VEHz#GS*{L@of! zspZq#JD}m~tmjOZ?;7ozZOjsSAtoTdyNVRtTt(IitC0M_?*a~#RVPo0p-~4QN>_#Q zgt_^d7J$)Ibt31`-Txr3Bd~Ji+}&NN(QyC>dt`u`B1T}Un2`SoBsXDyR~>denqhp# z&MGwj43%YZn)1|T4HeIJ^DMXXFH4icGe!X)1c4}j?#DstmpLx`)m=i0F4G<0F*6ztYrjsc8dK!updOb)v*5b= zLsmB7+B-YR=OqDx$KUubCss0DLrL0=K5G{YKb!eX4$syxED|GkJG2=MmO`sUqSs=p!4`M9c)9;Kg^v?9 zkWCu-)o~UjTkV_+KFmdSq9Go0JXUH%jICxZ^I2WhPOrfkcWIg4feZOFpJ9O`-#Ih2-{a*kGG4l){su;5+)h;_i( zPklDQtOXl6u`XOVVj5Z;6(Pwdo{2Jfy`nq-4b^#>a>IVBjxt*L;Gtl>Xp+6E8l?#u z-W@s}?3AUsT7KXeXF9D@fTuO=3B;}_#Y$)IeX}CI@VcYc)di5bR~1Ue<4j!_8|9eQ z@{n}71(@Qo)8n}TDh)cG+1kyee&Rxwl>8AfT_%iV8pz6OVB_#e7yUs~bS}`2!=_V* zYsgUhs_$?+Sx?h4Jj;evVFZ0*;2XmuFtittX1hrE6?cQW3QivIw_WM4l3+!d9>VZEXR#1^mce%AAR z?R$k_#bA9uhagpe8gK&1GA{XUonL63pB|k6iOeV52Q9SqNcH_c*qYWniiE{}Y3I_| zendc-y^2y$4KE;NWA>O#jDeo9^ zjg*J_oOF}lFOa{1M@lwx&iuMvD&uMga6k4?EdPK48f)(gVSiI5WBDN|Q#uex226{* z+VA3Ngw8Fp&SinpB{&lFPK2kSyu!2+;bZ_7rGN+M$DlnZyA&w0&!2_s|H<#FaN03aH~-q)Fi3xc+xu8BPH~%cn`sD0?oOKn{~7D>BMKyG4aMO0ZE3 z6$?LB$~jP5{ZQmGyv-6TZfyOA^J!X%y zy>b1robecebn4hoj~aToT6}%TDb(m-Dw$+nzzIOuZ-c8g*D3H_XqbS@7E6F*WGDEl z+_0zfO%&y3{ZBc4_-1AEl_B=XdYgNb9pYxJ9X5fd2)oO&^I;bmCAyo76oxS$xG0(P z=3LILezKXu+38dCN8vT9J-Xu-dTE3)BB@c-2WzLu5UT6n8ko#_77OY!C3>$kwLL-5 zR%uvmz34Yvc@4v>;Ik;3jheh_%-OACxgCx{F9ft;iQCKkNPZ%R)eMpEK|Hs>3w;q# zX=I0$Sm5=vSn9(IkJXZX%F|*(tA2yjN4Mor{x2$)4D-x4U;cV@fS_yH@oS>s=f0k1 zhc4q<-T~l*2m1utB+R-=sK;kLjeChRduXnSQm zM@=niB2q*}u>;TJLg2%|n78tb=WQd3@83GS7|+o@KB+NiMO{O;+`3_wl+E^cL+mBh zX$;faM!Q^S1Z+(>7i)CwfeTF6xTWAxb~DriTvJ0;Gx-SGl-EDVir|A|qsHiWYo3ax zf5iNog{pewVm~d_xxz97K3`5eKr9VCklhM%;UMslXwdDZ_sx+KJO!t|G)K&xek~7G z7#D6$aF7U&O1s6cqUZ5)2qA0J6jf+#&34J*n+@uT!#y_~SX~OWECi!rhb`m9#}zJ@ z_AKRen!m7Qoaww#Am8PvFnz{%QRj;}LaXYXZ?Y_w;^Jgl#kwuF%ODdttWq^7f!7FQ z2?nn8PfY1|4)4?>W0s}Pd7e{NarrDQ4A~erFIiXkQ+NSn1R7brDaK_^4@-I>48&eq zQLNdsl2CF`sDTk_a)RifPIg@IeLL$7XKr6Z?v+8y>SN9O#+b+|J2qM96kTdB-uDYg zhb$2Y1!MJ?Fqo2M922r=ulrSjia?YDuqvAbk^MnginsvTOqKA7rJ8gFogtX7V5&9KKO4~GTbz7rtyHq}C>pveMjXnw0zp(1TrRVE0JHY-j*=-M^q9FBh-&IjSg^HuFmQK0mdIe(Ppo2{P<`5(tZ|ilZ&l!*aW(-5S1BB4~HLvT@(#y)|gJ& zATsomo6>8X)SyAfIHF>|6H8%mJEkGtwT%pg0t!S8`K3|uCGcv!&1YLeBw6C`d-wt# zZr0~wHfk#V%zl#g-h&I@e^Pj~S2h*eepu+NNu4DtO}eu)3CbLOU7z@~fSY{_98D5Q z-^XJP2wd&YbhcN{uR)k(VNEQ$Xc}dNlBNGRp}!!dt*o`jlX%eSi0^h~R9UXed6kHZ`@pdexAzqd2O zjrxF^J`r!|hX!+X9qz4QUFCLbmn=C{x<(BRhL#^JPe~%}qIiacSo?9ytu_Y{U@8ll z+GXOYNkX8)@QeAUx0_?7c4yc7Y%u#`X;;+TuT9Lt$;>|N7tpAwEwH z3=NB4KsWWajFi8+w{yZ~kjgI>LM4IzWoi$)e{W*t9pR}a0e$!O2vj+#uy_4!_kam( zF4NmOG0iKBn$)n>dT+agdU!1gWTt{pp9nK`tKUmmC!_|113MT#PrjOk{TFO2HJ?^# zxZf(b3ZwHp2P_a~%XilR;HG8y650l;3ELIDA&FOM-cBjD)oLZSo8=}bxPAIlAgDr( zZt)v2?;hxyTZBKKhh`;eJB|qg$z^H(wAioBXLHz?Rs;UiR|T344tNS(TVd5Fxcmp^ z(<@XlCkxry@Lj9e3g1a!4*>(+;YJ6EQ4Kk@!=Sg(cbJ=atHU?>F;ex##eu6FM)6NE zQvs7WRfSNwux^xV^r1AeCZ}`btOBZsGhyd>xKNa`fyk)A!Id*~{a3=kZ#3egxdeKk zG{JsFN*GqE$b2*lMHe~1=y z<13mE)e<4;e6yp;EZoH)6E<6#23v80I{Fpl2Wrr?a(Cv7!osz;A2g^;y7z8t+ssw3 z6{X}awxPG09WYD2C-Jis4gh9N=L;+&98WrERIW7JId!a1zZNQ^U320+1)!&mA4qk< z$LOB?KoUQN13^eev3#$xBJHQo1FL^SMdw`mte(S3;?eQ}Lm#o_7V+con^#S#<#-WT zPZ%)HZyv@EE}uU8c!J1q2sx~$O4JwLUoYwm7J5#9$6`=JnZ!_i+pnyuz1O7-G7do> z`yf?qDBrqBU;PxbV90AuiW?b`LBL&bny0}wahF+NaJ2csl7z%Y9D@LB8Rt2r-x*lP zzmI=Iu0Rucy4b7=ff{XdX~;6-@q^H$YwW3|+t-3qyH|pjjIH>L1<#Ga`nl$mZcSDCLCbboLgHYnGhIS$v*c9gmD6(iG z4)Yul5&hrQ=Nmsy(ATxYQ+Uk;p5?vZ6%pZ#K7*p|uP|nQXm}-DV$PGPb@tp_ALSZp zJCFl&%$x}`qE{1@-?_Jc;04l;e)jszvl0i;zi*_gCHn%!o2$NUL0 zTQL^Css005o;N^HuG3GZnBXGsL7B&jUg+n%Ek++WBvAQG=`8$FZ2CpazfSDAX#xtPD#e%(k8ssK_nJY1 zcuxI7@3-PsWJHJyK|BM-(c0rR%12dB9b?(e*0d=ahBjCYm{Rwq5#!av-63AOO*8l= zPWP*$G2^z$&7qD?J=WYi&Usq_V^?y<0%IUghPq@PT_n}k*z!%oO-ZozrOYxj|<{VMIwdm^+ZpL!qyj1|>xcG1@R!-CTFtQDYSqiYN0{UhVbNMLOq zS4DEL(VfwMuQ8o9qi{n*l_eBG@hatKpv*<+zFPKF5UM2b{M>e`!MbumWZ(h#xg_r} z*`MI>R1zG6kV9@+@=;M>jK}MK14>z-UTVS9w48H3tRIU?5jJhKe@a2>e2+-zz|bb1 zp>1gVc{cBo=eiyUa_>fa4TmFO-@_qce1eHng}}nnNu(&|q{5KXX*E;|J}g!}j=$A) zNuVTIQr6G8g#G85Uj}gqb}m6CZ~2KM40om{P|1mc@5jFthx5e>$HpLKausnb)()c8 zz`w31(`Kb|TJ`^#mE32nD{mf&Pi~?DT!;n(0r@5iH1R1$obktnF(6{gU`xj7Som9( zv*HxD0l#o*j9=ZxRojkZ z)!MA+$0q8}3|Hg(@flKFw~rOhp?3(d{vNgqwA)|+EYHgtgz@`p6RQ2d=GqS=^2VEP z;IBv>5GiqTxkx;crOx&876euBJ+CO!-v#-ijQplCdav-YbYWq&X1Mg&cOK2huVx;R zO6~MI^`RNuz>h4;P073|BF#-P5EC&46LAlF>}vCDPCtSkx31UB?BAkp>~9{5TAdd7 zJX4fkxtibvil#sX@fEbkzwzHl=J{$=+LFvx!cB1mJfwq_4)=^}QEELO1qc*v9sYYC z(<)U94r7SL40jmp#jL6}Ri+0^R7gB{y?O85BWdb?*5-bJRzdIsk4Lq)>B&A|1@-SvDqA;X(xEML2P zM#qf>N+EQQ?}Im=S8~X%#7a%qeLxzO)O;uKCFy(=@mSm+)Nim++rE#mA`t~8pgYP{ zLdgFKs_(mBo95oR6iU837$cm5O1T6bThy5i258?_*0%A*ulfh!(`l4cSW~joi_AHn z0%sRYB%NRKLtJ)sF__o*eY>v+R#v!>zJ8#*m7*yAjyzqm3D%0dQ<11@5zEkN3uA54 z@>cN(Hdp_>I%pTupKLj7NQ)OH!-FRc8d7@1OuYQ_grucG`-yz&b3td6)pyx%x}DZV z=ZGpehPv6JA`ww5{7)p5mOg6zSvcpcpg6kPU>F){n@xq{GvYAJ-B+)S=#>c+g zq$n~Rw5Bp2v(Qn-D{1VbS2Gb()Q=GXAgEcLSM0yvU4eO!5=9Sa@;a&m!G9LS13|c} zi@~TjOizclpIu+AkQX>>121Nb29lCa*x$%4D{?a!=(?$;y37VeHuw$^H@M9*Cw6V~ zqs!;{hF^YxErEy^0QU;5y6w4~Pmow<4h+@Y^tuYI(1Nd0)yy9rGYzp2}C_;6JEFkUpqc!6-Aq@-lWTD;H9Y6UN@ zn4%cf3OOQ)w!8fjOKhophEEaEJ)AWQA{TL7=vyQlg}0TuIra|aQVahV1%I)uozie9 zd6?}l(ch!*;`3ygrg6xGZl-A+L2f?LJ#;5OLH71d8i1hjNdb$=Z-an^kBPcO=Hn>0 zfV#}jUgAjmG6ezNrjj=MN_|{gGa)$me1T(BTpF1m23;ay8L(@L)&L%>m*jASH3ORy zqo3i}466FsdYjoe$?VU@uvpcsZiCKQ7EE*Ox)vXOq>fd~)mk>2mH8b%9D{T8g3@968OJOAy{C7-PR4HIq<<0FWazs_OG9$W(M;9IrP1Lt6I~ycCsIn} z#~e)BXjrVZEqTO!jiVehG1QMjw(eb=2!#4Qg^bT!qMnn$8-D-uFCIvWOf&%RKJ7Z^xw> zhHUjmXxX#Ba$5N|Y**~C8jUf5LNX5)A2(}FD_JriSw)bX{n(}A>;`18I9#X&0g0Fu zsL*k+GbK|s8Ncm>%ezNka@Q_|_~S6>4m@r&^8SAPB#KjGO-wh;8))OGiHi!F4n+6uRd47FduUNHc_z z5A3i*76uV4RQl)j@9jX{=HC9Ee(Y4tjWh>#LGBd04VG*C*jNrLhEtsF3H$uq$4-|C zc^HckaK)E}exw8bArVHPMxD&avdTV6B&wu@9IqEX_w&_umjfzZtGmu)bL9fhxisC9 z?~u=9%8-O2DBS`to8;QPs_xr;iux)cW8P*)Yi)^JxUc%yHshAe!uI)ZBZ@l)M#DLi73MAhi9pUP5= zg!_u3goT4jp~MA`?GFU$q6_Tk7c8NFoBcsg@2QDS3GbH2hC=`ZVLpo)oO!sdJ3|WD z+yN*4S#^ym1%8@vA~og|`>%`h$b!^VuaoJO&NY@MS9}(E=sDd3p2~qq>3i8QmZlR>BM6*Yczg(L(~gv{ZT*!|(OBHP;+)A3 z0fo)w)cJ-k+;%c{!%I0h^#USrbZW|>*QZ)PUxV3pgNW1dBFG92nbC6c3%hRL9Og@8 z^A`r)%51W);*PJdI`xjr*Vs}6LdM9xO@U}h&=M0$uvxh1i7e%do2pM+w0q;?xc~v6 z0wKF)T#kox`3D7uxb_f^tJPMG|#FP%g>t}{|rDI*q|*B1UXgfmeNv{i7A2Z$S) z&X8%Pr_RQmr@)xm#Rbp&JtOyG^*m|Wgdwxi6;U;8R`#Bwa>a%WB6sBNkI`%7I9e}U zsBBCG+J>SFsdt*X6wW^si&ru2l_+qSOhbFC;ZNcKOrjH>W|!4{?b3n6=-!EJ&e*gH z^&x!QOF^PHoIl{03ajnWX_BRg{kdMj@BAWcii5@4Tj{JqzEzkEMR=R+}`SCZ-Hqi5D zaKUM zGrn894Re8^mbAafB&Zw5Om5=rqG&dqH>hQOZY!uUi+nui4x-km zwdW<|@(TlHJq9OIs}6xA8}4K?k}+ww@2JKKx?yMhX8A1aXU!&?3$gNdC7+0efj z909(tN0gy$rV7AnXN{tWOR$^ga?+-EFt18rOr1pUk^J@#G{G}e<^BPwT2BiykD#XV zzCb3`?o_r$ASjlkT<|w-^Rf414A1SB=ooQ$v*JM77fSi|ZJ$~lNgjyO0MAyp>om9H zE%c%uyUzeFhjI!G^%E8|PM5-zJIHcSI}-Mz^%Q=OYY}=f4HvL#Dvime6iAPv>c_B= z*zgA#SJ;lWY(XTqPIvD;7w)@oAI8_+mtyz*{=UcMx7=|cak5Z3Tv+lK?s_t{{N@R# z#RS$)WTxi$OZ&;(Nlk8Z&oB$>H6r5&peXe4LiMqG`5PeLYEmF$7Wm`pKj(ivM51dD z-I%?InaPzVNk8pP-yZhi;99vXp44EOlo^=)=c*yRXR@m_ivS!~SQ>K7&q#dhsvJ)- zz2C#nb)Qz@=NeARj^YEwCd<15=;;dia?6(;M0&Ar3015p1k$(Ob!_LH)d#vhSrfOO z*i!{siN{O7J|ot`Bf!AHW9tSAnY)fH*N)^j^q2*|OO=-J)f9vgAenR_8A_X zb1l5feBYpUjq)xd@bOcqUr4G+b%R5~L21W)cc`#oTfjq$f#sm6f8cEk7^DdRNFfqx zm9(yB-NoJlP!)JmTH;>xjxy>mN*_(1_?oSmjLmeI#$`4fe1i8J8rd z_ZexVrhtRT)SyA!?~k9_;u=k1?qf7DYw3AfZ*p{vPN;9{)%>mn z)1G0;rf7;V$=sfK9&+5iw@q6!-GST5CHD6|!zkdaKPPN_pR&kt3!ovEFHis5V)7utm!uQGMgT|?vj}@g7Kad}^`hwGNFWTi-qas} ziMAlwL|uPXmh7Ge+2^4VrV6WzL5Bk`io5alldpA7&?^}~9}a^QMZIxY$6TGBkoRX{ zqLGpF60eY0GE#o*cxvLg4H_30-LD7bZ~^=S0gPWj@|h{#4~!)7;sPW( z3M>TikmxAG*GYiJj-RxdJ{0x4pjD@V^FVkobHcm4HtpYPI}5p?tb{C<-UxLgb(7h; z-luT98HBeTLGD#K(O+tBp|hvO+;sz(Wc?pMeJ`l1iUm-`evoQ(y zVS)et=B=z>00hrf`EycvH>=ERKc5Hi-+wbK z{$=7oalfmh63(Zb(~7zMXK&jFIwAgj9lH^s#0@7R7)3V{kC|b1n*=)j)Z+5OFNjsz z_7#saZ*XHdmNkZI)t>ta5cDal(E}z#uCPgS;1T?V%$y>-MWwV$f@? zjuBeFL2)9wbezFNCt`OkcOj0*n8hnjApIk)F${Vhk0|oK!_?ErM$rCdH0)mG{O*Tl ztvLlrQ~Le_)KNcce9YW^0q}k8Q^7VA&OLtY(OX?UAGN~};JT~nHe0(;IQ~m*m!d+T z&mvg>@yV}}KnD&69xkro79}5Udj+<2TtISl*wYq3RB&-ni=0CIaQm>hPu%I5G<_-qxj32S0h zfxBc7hjFx5jbzd&5M{{+JzeLxnnXbaz1Rl?%Af>vGvVQ|#!(KypeeI;CdHYMu^=AT zFXKz?l%t{Q>hr5TzmAOZwx8;AJ66}= zZy|#eg)9=@c~2$*Vt?Dmu)FOh)8iRr-vpq)6A8c+N@mK`i`J(z>XNBxm<09?+=Skk z_fl41Oh1kV8C6HX<#;+vn8A_Y0`vX_$yT<~p)V_wpk%$!r!(DK*AaCxlYNeV1;N8) z!TR@${9Plzx9?Jr+oazakjWfE(6H6%nBcU(ka7(@rel_2?n!Z;U^NPS4c?t5)P^Qb zAqy2`I}KVam}62--Y+i--NJ(TL%>1>#zG@)CKOc-0g>;+Zfv=?VM5H>2WJBZO( zu@-VfyNI_(^<4;cH2%!?B7ItFd(wwhuQvP2NS9_-9_vk~hLJ~4# ztodNC2K3cMMDs_lmvP^#{U6*LSrEj-!P$!=`G?>IK`6$B)-d)HpM4LYH507cl#~#- z$sCJOeK#4}>JoSKZ7DXoXZ3X^t>haaDI8Eiug9l_e`X+lpP!bCjtc57dhIuR+$l$X z?J1*L1Q_HV_v<<(MXS2|XjOr)I`i`rV9nI}~_kH2fTS>nuW~m+zgA2r0l`iKcqV0LMXakm~hSGRy=3 zMYk(sqUdG|y(2hQC`QO!trJ8S;cFes3WH;7+YM!#B?a^a`ON;MfM(Z!14Mmaqi%-z zc!&^ou+zms$_cD$W33T`-BUL1ULfTVcrYCO3fecc6Ze8Bs?x-r_VN_5oqZpTRxKW# zcT9EQ14k+YN@b%ol#AFld2!D!#gV>OvDheNcw{j43Q-VokY$IQEBXf#u`KGjO=v77 z&(ITePUT2%$^`!N#sczbxU6=|34*gLgs6q%gyR1_Yud(O?>X%1XC1m=uk)9ZMg@3Tt z*X3BUGWvsjBfo5*#Z8EVX8T*XowhGSzylYIaU_0B7YOeRU}iDr?hWklMttf}GKHNv zz3Y3Y35&BSkxP9m~V znP6N_>((i0=G?Zc##SV|YI9_8-K&`zmFg}w*v3M~VK4_#BwK?|dfYX*E^?UzgGfPU zq6Cp}d-kQbI4j~AU@_FUS@gtq??mxsdD(fMBSi4SwDhtTeOwG8uymgWwq|?Y*=5Dt%Acq=U_t>WqY$QG?DRttQ%6A+3+QXQ#ZO z3F9KnvY4lOi2$DZSuW<2SwocwR~>Tkoim4j^T`5@+ z5ilg)on!>yiu%+`H^{$e_8%D%h$kaC0{dbB1e_NOvh(i;l-*cw-^aikzDnE84#ZZ6-Czvt z#r*<~G_lnN6CLVeJL*0<%{KW#^1SLn9tvVsR9Hy{NJtQ3W@ypiK&+4i5y8+<#0Zq3 zyilg}P}#-TaVZo?Rm4Sz@Gl-CVg)A7oD-wiuXIBr(iVkd(7#(^m=?;o!j7^qtGek#B%V3?6l2L=WPLqv?ziWc_FbVg6Y|X>>hiBI&rl@Fz5lSs%wb z_UTiZY$~QjU@@>!0zt!R>et$-!!H5Y5ZC=7-yvqeSmn_LaWV;59Tny57e&zfDxKbN zFFX@GBSafME}33NBtN!J*Gp?~G;l1Y>%L~!i(H=Y6xC6(!!U_ffquMlfr_ zh@&Q;f&qhQT9EzU974?u582e$)4i+gpYw_uQLR9(DY9$sq*DKJG7d z4k@rzqLX`GcepTpyhKf-E$AN>3cJ6H7hm&+LG^y&gEJfSCO@h`Q5`|h zX<7`~QORVXzTOItk&@*30V}_oaabM8;C}JyTrQJG$bu(0$IWpYX^WeRN2S>ivPU72 z`=|K7+B94ob+SF#{F;IIU|iu0#gGPw_LFx3^-`Nvf$VYeB#i`d{L^N-Eu*+CUSq@) zdU4{b@%=PZ%m{qdLHywzX-lUVBrqqOokg z@^2HR9F zJp&5Q$Jq6(gdLA_C@aQEV0Yk#1z3*z;JMdL6%$60KB+46Wdf+F7!}tUiPs1vGQb#v4`xBZ zOhxie1YdgNrvu9&*}nf_zG?A*WIAWyserWVABO}y%GT|eiUQH(PVy-&iKyC(3KCs< zRXIdTLrVydlq`7ima_zINe0$%G>1b{fNk`A4}(sV;HmJ@sy0NuOy);6)LT297<|0B zCuU@-4I-jEA^0n``=l8V5@(NaaKFB0k$%Jb#>>(dM>2aFVIamo8iRElr zy_nN)wc%d^D~gm*ofh57G#UUwf@xC_Sc6|0<%mBgQk#o}6QsYec~?SgNF&4ytY6tM zf0X~0FIKQkyOmSo72WpLBSCf_by7oP2s3_jir-Fi*%;BL9N_(ml>6Y)Cd|trVq4n1 z!=8xKr1(BsxIacDmyjXz3Xu3=jOy=w z#GxW71<(9`glomv(LW$4XMON1C2)2%^)QSA4`4=LQ1yO)LKyq8Pv`)M;|x>I3Y8Cn z%p85W-PaM5ohIg0)OS0HG;r&RW5hjkjZzrADS|N?f@kT*CWOe*Z03_6o>1*c80rjN z#Bo7$H9;eJ80LXp-Zy#NW}Hkz#8m+Z_Dw{3(ov%q^o%jS2R6if(eeqLQ36RWiSLwO zPfQY|!*RE*43#|~$oy5q66O9-*woaZpkje<)$0+(C47^lK;^DGHR0|LXpnoru7VgqP2^T;vv}nr% z&H`Vyl=NW*`}zGUA{N{9)C9rflIdtx=G@fNnIO{;7_fU+V=`bJa>czIf5wXzQ6l&q z79V+tlW?NaDrh2+hGnx&_me>P8P&`(8pent0WZsz__@U@AB%Z+73ecC2-%RJFU)3vD6?6V`~XzlTeKZDZ!ii`yX5!@?O3da+{1t+i+O7sW}Ti+cB zeXqb@grfPa>xj)jio`*n`YDCMaOdU^6o?#i^N%kcHOU>g$Pe1W3nDX!;(MV1zPnmOks}v2C0Ga-5QJ$uh(iKgPGqFU6}B%gw^sti*dhe&jeV z9vjNo89m7vp%(gzz;<`uU3XWlSS-sI|6c1M)M!;%#hIjHrFi zkUY)>MYcg)``$~SThCKz*HTMycnG+3`Y(*l=J9NiKZKe2=%-jfMQPW9^DA3lLek9` zohFPn#>s3I<)1k)7;-w3LX~Rd#2jKH&YgIzb;2>L+1q&PqMbC^k3?hu5&%TPf4gg; zOLzsI)GsNkYl!C&O&Ow*GMo#)SDH^KzUNCQ3YNt>jCJA zEGBlyCoCF`h3+d>Eksm9V3X~-?kyWhA5t#M?|vbDr*TNRO$Bd(^3^;2m>rRh1!){` zd>-}_wL()JtGpoZMxV43t_<91%ev<- zP!%5Aj9`=EhUpm5PFbqf0`9u;h^=QD`2jnOhF z5)^3bm`_77pngexIu!dt)B%`yzdtXp2xnVWjp0WDjlo zF;4n~9oXd{+1v@^Ky7Tc#N8d(j|(VaHwDJ&`vzfYtZT}?$N(wE-+d7n=i=_tx2{0_ zptlHu{zVO>4nWW^1u{Af10;p9Bb&{dXA14NpA=0LY9<(~A3u$=9{YH9Q;0HMhW(Y! zDRa3NkW|Y$fab*hM#HeSRJGoBG@WL>!SW{JxUONOn`+)XK@6h9v!#)RlP#ApCicE% ze9dNObgXlS;l4%n8QwJxkh_xciFUA2(Q9(+ABaWcQ&Qr1b&mp@IfwwYI8vHbN4r9z zdZ`~$uF;mDW&{12@2(Aq8iP{u^L5j!1N*9i2Vp6ZQx*QSdb(U;@Nxj3TAc|U#?{Eu zahhVIM}_!wi*{C;0p6^EANe=X_;(opE>Zua`R43U^FDA9$>WTvx_9}Vp5 z7k#-Px{Kf7pakncDe7@gD-BLC*JrqnaZ_PWe%j|Nq;h*Gs6T=rGXiSHw#6BRhrlGu zvg5c{kje%JUOtFBZwQ8`RshJuBOC1EI!!|NeU)Zr2(|U-bZBwp|Gi3D zO3^V~C(g_RckA{LR1HKox+0YWgWrcM)n+SiaQXhilq0NKWq; z?msozEtrbiu^vGeiYLnAu_dkK*v*_1v?_(|vRh|d9O@aA`Jq_yZph5d5qKMJQMEfy zY^ZQBphwhmw=eqNIZE9@yKmI(L&TX+mO<9v+sln5L!PjRVsgd6S8ezz z7fAj_nj(~Vf(svqwWBM@V*1M0`mScfM1hCC zIRvu_^9T(e{HM=)$^A!RX@Aa#^Rr)G{W1|R%{Z)Rb~JL;5lyweT?b)Ur`15oYPmeq z`~A?q_gdWFX07SgYUmwlGHT(wj2r|7z*71fY=7}v7vrn=E0((s8Eiqd*qY}w-Eyre zS-bVTBl4*PRoM$vZ7MNkxyvyodcRceYl(~}MowD!472#BMZrOspM8I37X1M?A|sPa z7HXcW0`?4`1?_EcMNVaSMhvkLMp0oZm8MCmd~L)>&-~<-@Et(ko^&PhxLzoRm(QB1cIoL4n$5WmG&Vuco9!J35oDmx1Aw__}Yt>rcOVmz9l1a z8j8eQ7j=Hi&_B*+Kg8_KNcfV;?F}$FWAmht(~k-T%Yj>ofU$EuyA9Q;>j`P|r2{C&oeKQL;viR4(=(CJ|k@TsM|HKZcrvB&LHg#1gw4^kzo z_CkF3%-u}wgH2Vw3+F51%6^Ck%~fcTq?-ls-W8zI@Mhiy5RdFqOGRYDN5?wk#q4h# zF3U?X)B6Pup`Deb|0`WXN~Cbx#C6O!7|3%#xHHKQF~P|b!bQvjK_;1s_oQpm5%UKS z2IsMP*e!@vts!Smq{`hW7WuaAVVlhJ_5J&O4bOSkNy}jSuyCnxeuY;gZ18??eP>my_4rWT{59zQtTk7cJ_m}-q8x2W2s_&G)7?G(DQQ@Dmy;D z8Lion7ly>?JkiE&Ovhme4Id#obh)yEMRuCi8W)^sp7)0hrMU?Nq+hy} zfQA{9Du28rtODZWf$1vXcsl2_LJM8;Uy1Ysby5~&*(@eUZ#vDk8wx1u$~fhgNQs#s zWs{Dazu+V2{0C5R?ey({$w@<$w$2nm+H=70ZNKm4aL67JG8CCxgXA7k_IIgzgo)jB z!G7kL#csMPt+QNLI*ndslfLWb*E4&6UT!7|-pT3j7LGT%9EprX%}>P$+?W)uJlMpaPu_#LiJ>b`{+7;Kl3AG3qP3fpLaACzGrB*F)# z0Ov>JI;FfMlE$>FaVvtcUE7UWuJ=(*(@B|oKedWv)4!S5Kpn5w#TuOL+acO;u3N+U z2$K1?L?XLYHAe$&TGOy|;D!l%&BlxOs{waOXjDF1SA4ynCY1$2u#! zZoNGDSG7ro+MfLW3#@;a83MWI^V)yx0Hn%fNrv5LZ|mMFnOX#lyN{r8s6#<AQm*Yqrc z7Ov9~$2y6isQ~Ly=5er5#+bbiP@M09@RSx!pJD#dxPx`>Iw4@Q5EjeJ_!#tW+69R@ z!Ew(-oNS~yL7x3&b2UpPKVi!O@5tRWDk}LnWfH2b=I4d$Ac~keuz39(!2Pw}2po8k zPQUj@O34$@{L=oVF_k_4{_Fko(Dyl&QSu(o%vFRx3Ikm(gG=F7Ir(?+Bs z{KO;>Yujx7aReySSyf4WQ1y-z znHJ?fh+04V2i7)JpSUosqCFaq}jlwQ>b zTYH%tvH2r_?jX%APg8d$Xg!6+btdEE^LHwvmL zV@+sMv=J;{qb25|L8U8&e$&EG!c%ki^fVs2UMMZXQgnK;PZTl$F>aS8?g4Ykow z-y>WWZeICzoQl5liSTEc#L+^1opEtCieWT$tgIh56OoI8fyXOFDnc^X&~3W(d2nzU z+P0&0M4?cYuT&L}E;&om{;nH9Y%Gz<#8wmm0&G49II-ESPZS}~$^rPDZ)23{=MaEZ z7#)p%zQ+Zn=~;bA%qfP>H^`Z{2!BsGb4KAb&BTM0r`XJQtSx;TBy$Ff)6_0SMxzD0 zBFDbX+icgZTeQ6##xHYt%mN1q(<(;iqBsv~>&5Eag6 z#Ryyp+d!MhuNY;Yxps(GQI&s%%Mvb{*Kl5sGi?qcCB!7d*PDxB3PhdvKw9FyVpw1W zW*0b(lGajCdW-b1@J!3K%4+X~&Ub&mfA*c8v{sAK|E&D;!FQDx@_ zVw#;XIt|{3u8wc?8+dSv#!(|VYwKUm%On+2-cf*9_?C(?ig56fNwbTUdVGNUl7`tT zkR0v0i+SIJD(DS#)xT3?p}|k$gVBKak_ynmCmL-vpD#W;fk2xJ8u5JEY_yGuB7V;f zM|};Fbll@_PCpa!Wv{&(@>~fsgAKloJOa_QGf(p^ZYh`JA+QJ}tP*_juxSE^{_WrI z1a5JU?ajH=+AZiiL-R+dF4hlHQPYEVBW=o}LUrQVsw?~h?w&{xpneBVwTyy>$cGTd zDjItJ0lpu-{53q&$4%K65w8OnCPSIq5c)CT(QMWU)@qyfrBO4n+eC!myb z0)!LnXW-IPM#mU!Ei1KQ+*Y))MmlZ4>8_>2OfS@0#rLI&6-{n1RE!&~jh{6!3P~ zmp3Ewp6KhiX4)u6-$xrR3Bx&gV@oG_kQpNn7ebLo)?{4k%-Kul(GSe#|IVJ)ZY>zr zQD{$><^AN9gZZ6(`Ii-wq6wb}Dv%B~rO;sX(1-Z2j=&5|Tjq81HEsZo>{Qr@WVSx* zZ68ZQtzoi#{3CK4J|qG)lGRW7m*i~$IIie&WKa9D@e^6=k_^Y@L9laCt=~P* z4(A>xD617Uf3*{x0F>rj$_Z0aGrX2Khm(HGDC+?FitT)U<7UJ(RLCk2@)J>hR_i~g zxc4IAN1{ePgH*eSI&9?~*`Bv1E`LwWc=$Fur(&ts1bEk#BfHM#w{-tLP4is;an_mh zKrp+O0d~U)Bb&q%^kmw%)yF2hM@9cG?Upx*R11?mvl2j~V23}p^1j#3!E)k#e7niQ zL!?&}*AA<+=ePQW{zQ3UqL9WH2xaKX=b z*=)?H1Jb*wA_;U*aKQvk3RNr9PCSQ&+okscfzD12xSwy-HKMxJvC7O({yg7@r^0om zLhG|nc(CArv3=cMV2<_Eh``qz77fGEW2=DvNS0d%rtH@kO5v4$Q;|`xT;+DXp4XA# zXYTih*$irgl+knu!cHUue=CQs??BJHPlGephdIxEmq1wjB5i`N&$N|ruYvX6TF!iy zbuU2|m%Ig;Db@D;%(NRcbYQ%g-(L=CsFMFEfZwdik>qUi3eNS}D$Y#}$J{F#D!s$BYB=Z=V;fkjKI9m!=sJqRnMfwV=c>Cq!ySZ*OaH@mS1SZmCYcKY(47O%d zx5cTVqSf)tC)u^@v2X-I!ahh<)WK~xD5fE-UycU$N(z+4QKurxwL3cl1r?$XdA2}@ zn=4ZEl~H~spKN-BoD5nZ=`f%65a9I^izI1(dI z+DEQimmzsCE13h@_T2lAC<8DDKGpVnnn_}~hMZ6pC`;QG5a$2}0Kk~&Aq6)7flVf_ zL6uA{_t^RGy6j;luL3Tf!0|J{j()R56^JxqHvdS$HzcxwOPM<0=hLxu6;K-piac+& zkld<#{M&Pl%=a@i&HV7f>WH_Nv9}(q`}OYr=^)UxofKxkbYt-84-gFAxYJM&s=@MA z0b1j`v9TP(`3COq>J=HB9Sx_otSZ3`cQn&-{O#1sJSF>QEaIGqNl-0^MUd<*yHU1iXeuaH+b&it z_Glhq`uY0_`wSesgkXswa5J@>{H(46;m3q~xA5Utj3&t3r4pfx`}4-tt2R08zvU{M z7xBh$!6Eo{T8DIz-}!a89FunQ9~RgFdj&a;RU$v2B7uvH!^*%_;H_&>8QDEt799mwO^@xj*~k74B%Z*i4K^vTA`?>{jrwVFesH2MjBL$gnOus1;= zEnpDx^>K{xshmPCftJj+_w$35kc81sN#SLd?CR?+HkUv`^V%*f&-YKA7obthvNWq} zKE&%K-ur&>hn15)MtiX;ohk{B)8wf5GdCQti_F4X>rSQ9WgO|jc`p8B6iG%g`!u&w zz7GI*t4gu(1Hi{4?eszI_}$*(`NPA<8nr>v7~hH3$7UclA12M#OL3G#_?k@_dxn*| z3{ICnos+a}sjemh0{)ndA2whyi~VdAg#DOc=-pTpj&h$1czxPaLRxih-Mrp6lNGUf z071T?MZsKc@una{*S6Y@dDWI6D7ENklBMreRI|7ZuyWAg`;8h5Dj&D9F)(3~oww7Q z;W%Prfq*TQ>}Kw2wa^s&wmBmNVITg?MK_t%mdlC9`+X27In>jibN($2i2aLv$Kfao zh|{(u719H8PJ>cYxsM<$7$YF=kKd?HnodjWs#6x|e7hcgWD3~j$fPlEs+uj@QreQE zfc-d~9U{c0Xl)>$(yTNU?Vupey4zHTTHrGL1B5WoW^gLak4YXzDE{STYNOLcU=i!; z&|j!J7~?pc@6fI49m6hnw@{4Z6+wrv*@sVZnS_S3Mao8o%>Wol^UVv zehu(`_b(RDEt~|_X1iDrcqmtV3|wc}QHfon2g-XQ(X9^FSQ4~N;$$e-?e2J~8&&CS zw(~2H@LrqgZ$dgqbP4{O)woPbViyUT#_!x(_tC`eDmI4)|HjCqYTgrDR=3&0;sznfHhM=%a6c*AC1|m2(WdBU289n%$z#;g^Tg?xt z7{ki_>QSa9yh7{J6SInJZs zS{$`s>xN_GdbPSR?`t1k&lyFrR~NpUg72-5*hBd9%ccYFmNiSMO!K>K?-n9gTjhUd zJ&}Ye*Ad*mY>~O3w+xk$-)o-Mu?h`*X+)0%OI5muG<|MRQ8m5k%B+kkyb1b}LyL6; z8_vggs?^TSeD^EfJ)k0Vjg90{_Ot4(7L{~*sg@JIvW>|CcJ(Uftt+sfx;^wy8l4KK zvhys1Z#tQe0-JwN05C<=s?);mEMjJUpjbWwS$NWa;4Rq!A;2-7LuUt5%4-E?n=U(D z&CE6}@|~nr?As-9!``H2*S&~!u-04&jDwTRc-&WxymQ9o27s-v`= z*~2H%=W$(v?>tell1*rfId;us-7jg>kSHCalQqPQkjECB+8p-Z|EDJ zZc^!V1AaZO0{ZyTqQ!CmeZ9a?5+LV8M?opvTX_93y`KCY=h24bM*xr0x2ZvmqPl`4 z@KIM(3$IlXpxmnGT8s$BfQfq}Qt)Yntv3NyAMpx7T~p_C4*oFZvV2 z31|_+42TxF{o`KQEE7n|<(G}3H|$2dU(=TnD3*v7&ktRFroH_j{rcP(qhi0`oIKwb zk8Sc4v%B8c;Mn&P4O**%x@w?QgH;E%weK;L*{I}1RX20gsk zEQ28)4~+JJM#WNAkJv!3rB8Vz*;R7*D>rrM_NZ{ zqz>T`>d9JTr zR=zh)Hora?&h3YTQ#LN$wA%G+yzj?6*)3N*BWAEF{bnAoypu^|8yX^5h~Mob*hpCc z2al;a^`TciW7uqEc7e%HWDBp9R1w$RpOApD!>!vpc}=zmd2$@<)Zd-&a9IQcEA=#( z;$mbFS%p!l!te&d&b&O*xpBC*L6F>?R<8Pwc9Npel_F6fzfsBqp-qn~zG1%ZgQI5 zDRsUU!nfT($Hw0mTh?qk)g$ps)e{F|8;e9ivEu1|tLq|PDp3vP!9v;W&x^1-$opo# zEwQwC|Knb#7Nk(@wrEs!`LHlsR~X5zYGPzFQY-~!*#~YK@6&k=x)8js95P9rHJAGyi+QXS@YIAO3Bk|E)+4a`Pte6taX%ZcLV}%tJsHLX!J)&r{o5 z#Clfw*kI;1{sJUDZam&WT(Z>ehZkHsT{b^eDV7v^@H|KOYGj8@MI_u+Fx z`MMz`*^>ign&l|8R4Jowdf*mn?zg#|HBTK5O_tJZL;T#oUo4Zmc%{I%=i}xP7k&l? zvaHQjC@5%0GyOn*z8OH$Fkx!Br$0A>dgh%gOpDAQWX!j=sMM+cz_(H!fsQKuSySru z8?GfjxYhUj>uOY9ox8NCs4aBMX@=KCsr1v_SrcC$fg9g6+W4hrIX_dSMumag0)UO; z%5X8{$i)DfAhIvEzOie!(lxVHkKl+Zo(cvrqq+%+aJe%O(}XWsv(ljhRenMJ8URIT zAkY_|(4c^CQfOVapi=Z;C*Pa%c`E1o#M}n16oO8P%mDlnTm&gD+~m1{D?-mrE^m3{ z;w{~)w?38En@KqxZpG`l$DZ13l#UCsn7fa@}V zrpjmki2rLtwUnpRrD(iDm#e>mJi*k<%en87-A})3Ahcy#aK$t z0978`j(R`R;@NqSs-CJh)BHpX)fhUHpvP+~QUJ}1$AOqA+hbhTVtcj9yq}|CH(4P} zrj1#|-gQe*YO(T-%XS^ptNMNXdjr933K+8ZG2q(Wwv-Tj-zC06@MRyamNQ9H$J}Za zYV-e3;{H3Z-*hgSred792Q0>-wdW_E+7_E)YUmhTsR z*gVW1IF$1Cu;2_;*|Sv&g`%sA59&5{iW-`K&a#pCe&w(P>-m83vyIAXwf4v)VS_MW zHvoQ?%5Nx&1Hb9rGcZ4U8Z}san=F3zs!qkew&Y^&`ZS;OkWfdl{_-ONG4+%juz7Bb z4P9}fUPEnfZ9q8PH$>y>0BT`yxPV!_IkEg`d=HRT^3$5v0|K4%SF8Y%UnXJJjK zR%1?YW6>M)9vtcX60K{hUQHl)aJS9F$(-)5)FFr&H(;$6oDXakIm<*>RjmpCTVy5E zX=s{#bBb^uP3K(kNc!T7sr7OfWkqG+B%RnzV&rzz;Fp9xt4Uz8)bAq0~CKy4EpHGIe*v)z{0lv!MU0U3jOCc905 zu%hwVwI?1pApAZ@i6Hm}#Us%7RwPsOp~L7SB|Y z3k>6MH;tTfw>9tuLfp1S3!DF(DrT~n#Vm__8~jyczwE5lp#$_ z;>CcVynkIiP`;(sYx+*6(#^)jwzZX(4#Dxl;89K#}86c41CmfS1;FFYoP|wpxo>UhGPk? z>HCs1S{erjX2L+AdD<2YXAhOVnaYn}@2sWj77MqU%CEbPX-eekiacbhBsYhz=$d&{ zwD^^y6II)Fy(|Bfcd}hOw+t_@D5iWHYc1ERu4US=E4{7(65>fr*5ievV38&0n*{wg z{*yIuR2(!$o0}?T)hTK65FdR9|2R~*YhL_9qd zkKub#Z}mT52{POksVUs*_S8};XJFh*95$&;gE@aPfjgFLek_)Gc~jDAH})^K)@CR# zN+B&CSM6@F)Eo`Nr_e?B*wD2v_X=P>uc?3D_8Q9ZIk80=mR^R%z5zgkxB}WlBGGk6 zz<3lLT3+vuJ1a`P=vKpHx^9+RRTV|4nARk-W10q^x@m20X~Uf)|AFi>`ZK*R1@0+6kdD_U&YGo^w})8F(n? zl8kLP#%@!TbZ-TE$#Fj$OF`OR8ZqXiB*km)=UfukO{UX6DfbRdR>yIGMUE6 zqj5~OrIk8!u%sGx9sZfGwbxf#cB7SdT zw{VlxrunHr?L3R7uC5l`rh8Bod|T6gGn!_eps+u(IHp1Y@^+b5P0yR9Z@<2|IC9mJ zzPZdnj_1ahnK}>Fs+HuYl8Q5~ei$j+Mqb#i#CCKeM$)u#azUU59~d=7_MZe6!LDK# zR}!lm-|u%l4qT;w+3ifjnEUkmvfu|$m6gd>pQ18V&g(HQv;CV%q2=K!N{RyJ0BGdx zzwPl%Tg7O?nY8u6U$YP?s;ZiAr3&;IacQguS>6Ssry3Put-7p60z2UHw>aEF*Q(W; z8oB)58!iW*?hHfkGlp21o#p5+84VIkFAC*T2gW-tab5HS9YUCmDiX-cz29x0yk{!w zqVT*($m1z z_y16UP-=KY0@V`nka)6N)&EoJ-X*r(0Oc&Lo>%Q+AX*b%WbjT#BGSJr%8JK>l#{^( z*{i-+onMTPgJa3Z%@O^O4?iYZX4LywjZf@SSHBl~p$DExi}C{=mSnv-wlP%tntyHc!ih zWZ;~7yS`B>UM7{>SPOl!;gNvX_B`aN)ke|~`g1MIt*80gyM0lKp3b29QkIa24Hg(; zc1wTXgIO>W+H&(=dqAu+JicIQS^OYvr^C8g8mW11oQw!fCr=0vXW|1>Dv_@D`Fz7F z;J@l&)Wjt7*oPG}2 zA2x|0*ChT+@Nr1Hl3KhzVtn*hB=fF>cE{YIj(LlF#}1B=ysX9*6{Y!c)5x2sSr(6}+x8leW9nf-41dFZo(g>t=>j%WPF zBs+ly_*MIHE0DQ8bBPKw9oy(m7YvN;V8H?_gG2-ENQ#*H^6MUR7BTo1Ivn38i{$F< zaq6ZkQxhBl{dLvJR+-#~RMrH8>)!94Y>%_@TUkEbXPgpXb!FJq&d9kZ9QH6|W%l-P zs;kClSi_i)`IBzH9(F~MF(Z+!6?lDzI1>`iVIgHNpy?a*ydRUr*!N$9GN?6BBUwm1uK6@DWGtKm2}uw>57+WL9PM+VG#x7AL;mmU}x8Dh^Cv&vURQ z6vXf>fSQg*(dXy}NxbCo5@hENNf?3K;Wc8y)dvS(t>>Zjp13kn3+ndwF_)e8Z?ou* zKc&;kV-lnqef2sj|%==d!P^{F22Ek&>#R|l(EV%%Qt}Q^! z03y$%W{Y+E`l$1|O{=@I=YSTZ)_lB~rm2AqhT)DlDb~1K8nem0vRIoAhJH(ueV={LWcc506_r0A7pR*5_E>JM}H2=XEvz{1|f(#E094z zawKscP}I=54g!U%zYxUG%yq=3c5=J(NlG4Lta2LmkGB3iJcZdO%m(wVsdyUGDsdY} zpM@Xam@bxY0+IJ#ZmCXchIn0k7Pp{6lk>|7M_@;2l{4h+MoOj15JrYa{ntc|YK0@6 z1QAocWu0PMkoj`K!Q{o42UBszh9X*~G2 zzB&k$Lqzl0I9Ypc!81RYUF^svAy!^$UO!OzeihWX)qmJR&L)y3nr|H{H_Fe_)bp5) ze&D%V<9suyaaq=xzAy7jy^AyKavuvmn0F0R-xoSoj)UP#yC0Q?6?8fnFvMG;Ak^>= z6D2-&+X!AOKDb{cQfOrr;~dw6&|OJ| z3#swHU`km#)fIa`rc~qH71?Axc28k`rF=dtiY;A?{;QrS=1|`RTf1&*;oi~{$D=X( zF#idTE6#eFNhV`%^sDl>39i7Pq}u=0cBO$(u5X{QG$#8QvSg<$(P|W7?E7v^VzOk2 z4B4|DgmALYaD z?^m(znysKZ3PUKEzj*Ai2uTe|(Sv8_PNFk$`%iMO1W1fftjN?VsSW$v+ncJrw&8yk?seV`c%Krh^NEy5li7&IO0v@E!PP` z-8giK{!!rLBYfK*UG5Jg|1mY6an;2wWIUK;X?Wpo51q%YS+s8Ma&K z^kavGG`sf0cR4lDfk?Qbz7bMRGDVu!-8@CR!zFPrM0^sEhO4?kjR7j%NwnZ+Z-cfM zNfG@S+~T5n=SgmAC||vo8Ute=iahBeO5bO)TFItAJ+Reo<-HM^je&3MZJe5uAUg5+ zo54TMFzHNh%;A~w3myI`j`>coMWtcQg}Rb#%HR|&`ft#?v@nU5eYd5=VxW-2a{Z^+ zdR=Ek4~ZtRPF6J9amXyXj}g>XaUR%znuzMyGAU4{j&V1B9-4iFd)(+~P`UJifH8Aw zz2Aayexu(O5R3B<`r9b;w$8wp#`m_!>bg|Z@|>3tEL{;%8!UHJX?XVo5)|8o>9SsPSznp@p?zijGR;io$YmRgPsF-=#F9${yq}5q0~x9ggSJd^?a5 zlq9t^lEvkghWB?JUKbT_+Wc8lmo`o%)!XO6OqHT7<74COWlLUtDPs$w&T${F?qvK; zREz|xgx@Q4zCS$dq3^ORqS8F~9|-SFJQJf|c;hrH1R4*TFA96YXx-VoVwYLOIVhT> z<#w`Kqt~{JD-0)?H7hroEH!0^@TM$lU+pD||A=h0Pdwy7N>1vK&|iHfO5MHCIF+*c z>5%3(X)FQ=PI>o5zWvL0@h@9+(E=J@Mv(`s#+R_;5}7s~?ELmOEK@f!!Mkd4Qf9rQ(S{%rLz_dtz$R#?b zFgHv>-yk;E4<%^<4BG1bwtotFmDFhFwTU7dqn>9J8iyKjGso&Nx$<>@qPt@{N9+$m zlT(->zqWc5$~}nu^iaBjQbql*{E4AT?26uD>uCV+%4A*MN%nkwWsE)XdGwwLKUz77Xe}ooY+gVY3A@#iuK=%lhtG<@PGF zOO2PdqHMERL2bOEwzpJT1eV9hAGnm1qq~GS)Gi*+;@ih}pDZ4Do@SEOUP_1t(q4Eb z;Y3DnceOp0VDbmj8|`OOi&a~zNsAt+A4w_x3Y!iPOI-M~+wOTGf?Lw2=&Mlb)eD(@ zy$FP{aNztljW5C@Bx$P_by3b^Mp^E&i}VQje7>K;(=GA`fgmx?p3*2_m|*4p{>HAB zIdBX7+W5$0cis_F2o&XRz55=2QpMT;Kti{NPX6pE#>^bfk3T+JUAKkSb}Wa8=<(5X z$#yRaY!wd@lKIM?pFUS-kK`7iDwtU#6?C2xJ^W5wfchE_zNj*N>vC&*0q4#k)D0E|aI=ihE+ zmsQcQxqf$X13rhDXMIPNyQx3P5@gPc-iiW(B(&>nsZ@yT?qr#08+~k9^frEa0w6{! z8x1vcYBIE0#8sLnrsi4~=Q;=X-55{cv2WbDHc|R>-d?_QE&#Cjh;mP&7x11la{%ao zKwFsuZm7Hz#2LWEhDB`MX`0P8>-=cuL^OvK`<=yWFhCNz@rMiw*Yq&#SBT z!z)0NeLK5PAOBELzD9;oVKC0x2*blUY?va!;q^(J!tOvE)DT?WFhuei9}A~V^hOS3 z^{sy-MISDKOk`Ao!BBT)&pmkq4mW_CLL>{Klx;|=s5uqNZSRD}@l*gqjT-rTS+eOz zxiB;#+ZPjf(i8~gRsnXz+OTio-Q4O6c>d>x3p-?n2hf_>Bs5opw3+Pu!z$RD)k@j6 z)87&q5i+`B96hh)bY3QMe9PZmrBy?yF{p@;-t!@K5MK8T=fK*SS84$2St@>%3dbNa zWwMrM0pI=8IQX8q$kY>uLS%U$+KNAg5DcIRMAD5(z-}{7F)FJD`8Ar>cvb~Chs*Vb zZ+{*~YixbeL%;auN8I%)@Uo~;4SVXg{O$e?qHGB&BjK;+uK2<0Qi5V@aOsqeoHOnh zkUy}iwkVvy9eW>&J(A*6&?@dx?$Y8(vKdN;v-4^!5^{VOK0Vvno5^UZI#b=3xEcq# z1`O-Vo>grJP9~Ij+)Re{H?5<++f6g+8d2|C-Cm8DE<22GdQ~?F>=xej*0xN3pEkQ& zD((FVY9mf>Xn$_WaWky%y~~ZZ_{R_pqecSHwBDt9%<#4tNMEBw9l(ioPZcs>3DqXzGl-lBMLNfz{zTxg?exc}vK$l`51dU!zf4ILU0BwsF zWMPz`Rt;C}!+lEnxYV|Pd?t*kQ)9#ru)e3uUydoFOgOli(*r^LRM^nGWsQZzQ8&rl zHb6=EQx9*HOKYSUwqJACIZuBFBAuYK_8kgV9o*e>g0jD^wsYNCq54$|UAdEq$s;@H z<_|eIJne)%yqQ>hz6P?I@#^VO_}}PU6{TI8eo%@Y`(|D0iEA^DE^{IfO`)qhA(xW& z^BA!RmdQphFAntHg1NbZokx7dX6mx%hvX6j@}N7EUQVPe-v1T;&RkBrFis{n64~HA z+@-rOolkl^RDiE>p@DK4x*pe!yHtF?0@aiY zz!JG3U7|xSWUd1=dHxdaOqp*Fxs$%H=Rn)&yNrniiI}~2^R(vhpk)AS0~Ja|zk|0} zY4J6A4Kc$*dA@caSlCj{AeivBw$|3$6)PpFz|8m0*pWTvHcc^E^s)oJ#)AUvzGiV1;8;`XTlf53i&O-_s$H5=vLkH#lwFK40t{s zInoDUfVYYv@?hW(Xu{1Y3Ow$&_%gb^&lv3S0T#lL|5FjBY>U(lnSYkWOENN8ygrGy zS^m+ij$zCN&?%#Tm(^i}^^zlyZuWmP^I+HpOrbsF-(}+&sUDpd0_j};X!ajQ>ciJI xLE_*2voR`7@zzTJwOxj0nHIqQ{~sR6kwjz^(eImV|OM@ut*}hzkBA1t$!38bWGdj25jZ!+};17?c^iNSH5>~aWUA;jh6A} zb|%0da+?#Z1)|$A(?8lD@{^Ux7xI%RgCF;M=KEK=;s4GJl|M88zgZ75Up?M=)7&z|pnS4wDmmuAI3;LI*mK0i#yRm_6c!GmCm~rC_Kb^0XgEBy$jr>O zaE3#(^)pPI%1pC)YlFf3_3Iw9_Il@PD+@$Ga(iga1`+@j`+IeQF}L~3yW;8;NO56} z%an=D0S3qiqND-<$CHtbA&-i!5@kcfp&N(En)Wk!G5wleA7NFGf5N-!JBEk7!({a# z#lp3Ogc7T@GmX=#80+9xj=bFJ1Kf*L2eFmsVD_X0@MkEoGjm=s+QB`GNR zYVYo(aKi>%T;a7;R9co+Tr{W+c4`k!hgW=?(_Eb1Io@WvFp2d6gEha2paKcQrAyU zLv)>Ofxh1g%NwEAPM-!DhKT+Xa(?lhOOZ+aU%5YBD}J91e9HhumSc*I7{Ec8cIrlF zs8rRf5IcY1=-|Z*GkE%}Vgr!5;XnfCY7gpp;{XY-E^ynhsG!U2BV|1nbeBiw)8D*Q!NTX-0+w` zIeXb>()%iT^l0D%qzw%hOB*7}%3YFVu@m$oG@SlRKp zu<9_-%?W+0Htd<2Ie;2_GrKCbO?jTW;Ww}CRyKVbI(r_`?^>+s?q2OD?a$I6?;^qu za7OV|zJJKReQD)GZ?ed_v>zZwMzQIDnA%#H--3cX zAAZV4GMHt~*}(W7vU2F1v$cJ9ENDjsUWdm&Yq0aPywL1ELjAESp}wyFy=KZuajk!nP#30 zBhYM~{tEJiC`%O&STs&eH{--;atuqVJKMrhzUEnnx~$=8S+DhLpI~Tj?ft&CuWb;6 zQ*O;=MY^-owQ))r_E zQjCW-AID(YALQEw1s#RQcEAc=;{;ylm=zeme@u=ek(MB2vMoCjOk-gjFkj_(m#*vQ zc>Ey@FFf0cZaxa}Y52IkW-Jso`BSFb2playEx1&oGw{}{1|}xDpucNOj%Q5@Y}-Jx zKcKyaPj=|Po)@~!%(!VAsdau$_4v%zbmwEkDV0GHO(p_Rox*aap^&GFoN=a^im$O_ z)5O?0R&3UU8{7isx4y+E(naf=F&lzw(^bxiXlQmVq@MLzr!t%?o zHTUdB=AW8+{Bu=RUDpYH%~prH;n2A#mUpNEAAZPs!T-l%^D0jqt)-{ zK4$YYotu6c>Jf$fZ~@)>YO8-&a`w9Zo5XqLo$S^F+?{ob=tvo~y)~OYSNnhEJw3*) zul$@#@i?^hh0bNY2>xIh9e4AD)xGMD3Ln!^k8fQdN zI=O+@`W%k$-GoM|^M2jFO}>6G0V0FkdWIoG1DdP;8qD#X*2r5%)u;5pgq#^ifYe7! zKl6B8J!6)+AqWY&cttB&?1)$IRhJ>OO}-D-w4dm1M>hB$F;E@PDbNoZFDVs~+Aj=} zE7EDx6Aq9Ugh-WW$iWgU!4t}H1RZq%n1QDnGvC4*GJG4Wb^vnXC6U9F zVr=+UMcxm#X5wX#tV>}4IP&z74mciIg_8HXI^)I!<7LZfD|RLt;lU%)6|LYjqdai5 zRnmJu4XXOyCA?ZA#}ww&==(10*Xm^h(c94R!1K({V(4u#{q^>JUAr1PE9q>um)|h$SK+FX@HxXcD^h z?Fs;iCH@KPm*w6ibNW+q;)(w8zJRv?gSFSm*O|DMlYxW=&3Gd$r0S z?atoq|6UUdfH9Er%rzm53|R>0l$29V^1Z=z-w?FO*?Npo(0rN`X};*oU6)a~X`Z|^ znMS*aMQiOG|FlFM@bjAS)2<_0;&)guijH~&Gkx#uhA=dGzrOjJxxxo~?z*uD7DD0b z9A1Ce=~^i%p%C=%-4%t0$o!d~yw%Jye3#izH1Wys@+MYhgqoYQ=;;&U1ig`onp&=9 z>o6jXW&`&>aHfpBAc5q}Ev3|KtjNRYWB=nx^iN-V?4e z1kkW}js81duLd^boBB^W5{N-~-`FS5X5{`@G$25juijhRHJ-krPw2N#ADbL)#HKxK zi|B4#aK;H@V&d53zTHz~b}%hnzwW7(jw(zZ9?pTipWbrG-xGoZu2+@qoYTx!M__0b zq+;9$Pd^bAO^bR1M_ET@O4Ls(1JdKi;UfpHHnxyB0n%iZ-q=Q+5r6a}%18?VzxFX6 ztwBvJr0aN&?Vij%Yoqp zoEE;wKe@igMzsAGbj;?+1!>L-hyy5RH37nvRcWs?5qEaQwWg*!;VG8L4Yuf_^d$0A zMn@8xNJ7#ms}VLpKTcTqaYx8E@zj)FIe7qdjht4;5P(A099-V1J>zS&=jb<{O~y%9 zJ&*8?Mxpo>;rF?a_hlcJt^74;W``kucY@MI*buMFjm-1KM{d)M&r{*^oPw^ow?3EA z8QhA7lNzG5SKb28rf1PDQ~P>{Cj+bk`2G({fv41E;&$WrzHrC)^OD<7ocrof5w!oI z$OMySA=z8_8@wcBxcJp|?p2ctMz!04g!)=o3GU+QU=jF8n^?Y?vqw z$Y^D&%w$1bB*I;gJbr|zju(P^FU_fm zQ^ulh9+WDSIy?b`)YPlJ-+WtUlnU@`l|1s=*Y{7&d&?X2+|)~f);>P4dA~Q#L^`hW zr+BJrN|xHaN9b*rAdQ*@YXu$5LPEq^jnJ|~N?qLl;$l0)=&+zuP3lDly8Vn2Rsq4t zoW5Rjx|*#_Q>!&n&orqzDevdpb3w+?W|B9i=`m6z`CmT->S2LY%g=Tv>fr{5U(;g& zoG8x7b306V#3!?8P!S@3qQb2u;gi1SmV#X%=c4nV_FxMGs&l?3Xn3=T5`0y->_G$K zzZKI*+5j=V9JTSzAWV_^QNZyq(lHh_L`APXyM0m1F~f8-Qk&l-u;!-mat=rYp?tl^ zMa3Hx7xvAGG3sl9Cj`LmYqNX+VHL~Xu3%AcJy z#-=y8MCLij*4fyjs%sJ*6yPHiWl$Cm1ajseSztacUw+$C6(U(6o5=$En^%C>3I-gGvU0hT@(MvWws zG<#Urw+B#TLczt#nk@4J9T_#8)b6+ELsE$6iIKRC6m`0~qCu+M6AF@OO#uS`_DRGm z{umgxHHHo^VsLcJQX+Wz#t)uq*ST^`Nx>5(mKQwD{b%%Umc^vIsI=mipLY<&5%)Ykz`PHNb`QYNihPT_OhSLG(cDv!a;+6b$R6+zk6G z__)z63;m{g) zY7^>o^_!ib*n;T`!H9MD6WTjSjHHb8H zEib>sF3G(vYhXTDEeRk_luH5J=~QPB&=OnXC4cB={yuuW2kpt&eGd@n(e zIg4MZ{JohQ43xRhs=FR7VbhelVt_6K2t3%J?G!^#Eqh`36M-k4s;-gCpF%f3$lM`EGw7 zXxS%u9;-kv#H>+>S@{BZb&2M}TIU}pmP4_x1$zXJR2 zG8m|RzX!<=DaVe;)k;3*1@^6QSk9!OP}NoLlM%I>yaIh6gK;lU;w~Fk57A{LCtN>b z``mEkQ%SqYHQ1vR0cO8LKf_75#})IO&p$yc0;s0h$6hQ0RQFA-gGad8{gwWiDvfxI zbaQ_wdiTr(iNcLm;Z=L2#icc^VzUf=4rwAwr>jU8&kh@XCD`TVb40SBTB7IF%!pL& zlVr89x^#1Rf0Z~#YCvFvsCh+z1-;mBKfSaWHjSktTgjxF|2vOkV|!tt-0qseJ0!Jlz$7!p zuwB+#5d#?0rC_4jSP%_%=bQa@`ImfVnDB(%mP>t(HDf(TLb zC`$JXVt|N7>Kx!ztw5v19*lCLk?4G+f|Nbna(7w4^p!FFRW(pt zcuI#KAUZw1p9l}tn?$)`V-SzP&zb(d#uZCoUw>T#lG#H;Xs!{`#P)C?Qk8g-tvq?c zflK0rQYtLf2>S9AtAPs=RPBLgZJk-&RzCGlo4Xn*&6UHjugl{G5|}R!T#p4_S}(;! zC`N}G^kNL2H~=tZ(zX>B3%RR zeGZaR5kYy0=~)HZZt2ikdUrzo$dVlPKG9il2d*qEX=gZXfXpXVOsu(9YPQ)aLSjrWQz@=4I|?j^fBIr0r#UP`wN1lyj^V^OxEMdX8M!2+B&6ja z2McUp30e`BphYY1xWN!wFV#DGR}SkS7sW29w%(?FkH;y*hI?IN5ly>Nv6;qvfegK| zZC2>MaNOT)urwIq3<{0-kVL`Oq2vRCs-KWo$Slo;5mRwt3Y?)XfyI@W74O+$2dBS^ z`z9f_U|ZSffv3)!MlN|HVed+itw4gw4sNyKa3&fq(SU13P?iB>H2MsS!75Mk&Y6bf zPhmI_JD%ts=Nt(<)3M?e4Re`bzScK#?Pi-mUEd`LztsKbi9ijA`#}3iWJ$Z^1SibH=I*b1xq~OLRbbn!aOF zQw~i76oJq1@yracpy2a?pzst7!dUw8{A^x~32K1v9cs8L##1%B1~~)T*Wy3eznki$ z-4XZ5W9tTsB)w2jjS!i~c8Kg88I)us$}27FJ8rhjz8uM$_mJ#_K=08@&=Okr9eU6T zZZ-136D2Pjl%fXAvmjEs4Mrbn6+Lb~t~TRZWqq_N=(k;}@jX5XHtJ1tO_7t(VvJP< zIo&OiGASMM-t|F^#4%qWIJN!(SPJw<-_-s&E3nIa=cLF8qb1Z1q?e`z49+50gh28Uv12*SiHaJadTK21Y_OI4X-0~j}l=x<5&)5{|SIcj+v*OD&pa&#tZEUXw z{^MS&E_f+@9B!a#` zy7MaVNZAx)y1=H<_bq0T(IlaXGS-P;&@7In)#cTK{0iH{Y)p+6;aJwF z91Vm^{sDW`8m~=m!^if2H?=DQsve6JGbe`NZ8ClKSvW@6zp>`?bBXCNn(bawGwxHq zcDX_PNJAoO+LiN6?y7v?R%DUE9)ie5V*s?M*BCWUzl@_p;r+t@!Bf(ui9|>WiM&0I z(7*BW{GNkCB6e|oTsKkVEScA|JbmCj&F~kAFWhHs0BXf(iHN`zpx-aTQ_UIWr(u!3 zJD5r9bNJWtywQCds|AVrf{4I)Uk!=S34|DBH70V$%YHDED?jcI5#+*#P<^}0hNcPP zt7irVlx}@*{EU)Pm>v`JL!j}^25z%+lfEQdP)HPo9oxkt8Wd7p!2n^a6A-pqhO2b= zgI`TCU}(Dr&nQ4)pcAMcH&dL!Lrt?LDXw0AYygm4tP&A3Y3h1eOz;YR9_V}2pe=eg z!&ilMh`W!ok)qHzlE2$6grn~2q{SV{nm9;ZZ>VMFc>xILW3!XC8{!)czBBk zqd5Hf=kKHDP$bKOMt8<$_x3_sLP8{rw)#QK(m$QUO2h#uioy=vku-l^HQk?WRYGM>6?X+o75|=F)V>x|$U`1YM&N3yQ#z zbN#mr-Da8vySMw6QN&62m*x3+BL%*<^sSd$j%xF_E48|NE%l7MY=GEE7)l>D4w}sE zNx%s6X*TptH7iF2GHITo-fA%?5@N4yw$#>v`~CGf?M(wJS^1+9TpWDEb2G?A{?al<^`K>2BZS27jxIWnByXp9`KUVv^;0X?74l(K>gBB%#E7&>&rpu|xQXB(oCk zVNhxCG0S^;Hjd|bd)BiGuCUN4=|sTyr`gQ$wH@)0*z^7~|)7riP!MlqBxD1Xd`JX~waJ>~ExGeQh(0I9f;NGx6{zbKB3EL(u9FnE42<;)5LL>ZhqzCbc zgG<#Yr&!#7JkT!~6BnZilL&6qoJg(3#LQw?9Wogns?h2|hT)|0*zO)tNrrsSy*?u? zMfZh{o25F|F>rILt5ei=V%}Bw*WB~cy7tXaD^$P~1@WMq#a43ZK|0-F7+pG@I3D$)A}@j@8**n(Y=F)@)!OIIqcgjD6QP}?f$6fLAly!{q*|0WK$9MMea`k9@dRP zV@^$-kPA~WLO3khLRjwxgt1Do58JOOGegUYn@0BYGa_??FECq*BM95fp3ay4W3hc_)N07| zbu|sl#c`#-_+GyIk0-nO_vi1sGIyRkqI_SP*)+YcEI-8}v>)3MQ;R2f(xL9lsqFSL z{(*BciZjvD+qzKHc)CD5EQJ;R_nNRgC4-Anri0HoUk&6gDkD}&Dw9taqudlFNelb5 ze2_GciG^>*{Et6Fkg`L(#N>ylyHc`4oT)9r2PeB0@}3q~k7DKyQ+ zy1ub-Y2WieyA|x081@k*S8sLvKu7*}NPz{A(-V`3Nb@Rhf8hk-` zrY8Qf4_ElT0UU^FK7-YQCJWK9<S5<5E$RKCbk^7cL*Y!fP*|POFKI$NB z>UljGu_<`br*7qpg|M3x-gmO?8}gS%*rui9#ET03w{z|5aigAEq4J?$JpSot{;uoY z$6^In83liG_|`~NW}J2`wh>XnF>h`2p;j@p%hdK-AS@%BN01a3tBH{K=DdeY+fbb) z?8+#hE*`$-GchJt7yN?eGunnkG<*gd- z=4k)*7#`PEoA zC1=&166r;Q(6tkkLi1r5=$8Ts1N z#l3Ccehj<29j4fhFkQe!GTUC= zV?Cfz8@)z)Fu!n$WKI4BwOk7*P@XM5`hmA(XM~`H2b&(t?&}k>b=ul%o~JwiWf#Vb zP4dy(W;5RYAb)iiDo6XuXVL+B=|Wm~Ep%pV!} zkw!XD7gYshO>qg{-T3Rut51Q0S6i`)40#IEu1ersZ0BRLD>BnBx#~RYnr*?Sq!ro8 zeUd-YP3@4Jw3!VLTqWMKIo|b)$ADNFh77n7h$nttGd{^b-WQPX-}pkF{?}v1ZbvcE zRStT;!3iyjF-CWOol?LMK=9MD_HDaA6uX@We5GwYEa-bi@MjtfeEz1Tl68iWj8zle ztLiUsxsh-rjnwukmuwbvye1-A!x&CIETEC-S?G(AGfLrn{UlxXYTpd))OUM>X!aXG zjn1p>NQ*90^zbYmnQM0-&%zKm9_ZmUTpGc-G=A)unUMi3dP(o#SCKaOZ~Ev0>4iDY zY|eq^1YD4Pk87K69y^go$~}TZ&XI`8_D%;+X{%97(Y7niThFt;3d$}WXraFf2(t^4 zt}|9Q@2Ylem`2%2Q_OJ+Al4|WFD1Q}E zEBy04U8bdvp&-+O8jm*+A?|9jC(3x}Bjd@W_grcRr`b<7CnB88KxhWgs`7Tb^t zPz9PXCFuOg-$(*X(Y`}J$iVv6z7PJ-$ybt0;5RWzUt6RTVS~?uO-_hZud5b>dgNl18x#PEyLm0)4bc zjZn~83|~G^7%FM(O>@-Hh$^g7Z+3-tLM7gJoTC1p3dVso`nzRw_U4}d-ua+9)~mS~ z3ip&_-h!OA-ezvza4g4)jY)LSQY?p~jutWJnqO;abAa@FUk_wB0hd(oP#or*5$o&i2AE)V(EC3Jsie}BiE6Zyrb&MGi?84|Wk58NdiE3vpy&8HFdh3L^fnuSM8kAf| zq6MAwdC+*lzI^nn{v$0pB+!k^-CtPht4-?kL@XIeAK~thK1gI<_nlcDEB9}seO}%v zdN<6-?+|J6`a;_5BxBXUwF5>X;#n>*73F=Kf%l`|>%SV3j!LP$R?NL$2!MRGc!wV_ zG82-HYRrx_wGl_zdmP^3D4fo9Rl3H=tXm|!y2q>6t+Q=VxqEmA#sg~IFBlt6Ge1qn z8#zt{{;pfnBb^@*k8uL;k0110lT`M<)gncv=1o}5dzID`tMG_(@!TwMle_!bR1+;hYuEf6!$d5IG&OiT60* zqjt2}H)+9?7`Z3GerFVQF<_yz1))nY;U!;fTJa!PBl5pk<6hZH_`?>E+Lvv)EEGSl z_ya{UwJ^?>m;+*i*>(#ZF*iNYVnQwXztGFrI5dH&#f?Wn z^Y1thj}nnIt^t3+cwG5{D9bNm zQONVD5cr!;k9&sye$V;}$BTG)Sd3>POP*Gq3=AA(v>6OPM1DCn!M1tN={gB8{PX^j zb}8_^=Qkl_^4atAE~VW?vSL3qKiK2AdAvY0=hN7Pw3hbsN$q{89uAX$)KcsFV%6~; zhRUOfV+HjhxNr(fn-=w8@CEyT-1-QTLblcXmB;t==(cfp4`Q8X+9b*d!6!c7_xta4 zt0vd4>H0s4>DHd1T&W2e;y!=qQnY#bRt7AoY5`IpCVv%8BAv4j8`M=7HTYnaZC$~_ zf)>?c>T-JOX6@RJoaTL3v|-zbqfnf84|G7o<+Z#}X_x)tkSqwE zC)h6Lgu*OX-Wwz?yE}68p@)?}R(J#~ac>DjUoC_&Sf4V7Z8esCy%$$fwQdjHeBcq5 zH{;EAzSdQe0r)N2{Egrc?3;RGvTJV@BRGw25Qc|EO;JQ*RV#X3%j`Oh@JQcM-sk0M zmZrX=G`lQczQGK@^Fg2!PyJ1q97qn4O*aZSb_GBLdq3gbcW_uVNt#!jR~`B0(W;ct zM?ii;C^lF5lm7$Upd41%43_xb195*7mUB^p-wEM(%hY3@RF~@Okwpr1stm*q3K7lm zFQMpWrG=ru{)*m5OON-ud`hZu=V*QMpx?)V0)3sSjPfVo4FUPqQocagL7?*?m!6F@ z2BRZUog?RzE;_wol>gxgX^oP0 z&zl`}E5-p$M8fL2^K)_O``OrkRlNYWu zR)YYHDQ$}fOuELRLs9R&HFLTMlayM&C+m>=nJ)yB{RRDxn${&r=(nqu9r+5Y5?#M1 zHe`GZjF+qCY)1PAX`MOJKa^`8Pe*QB^ed}DiE!oM8Ro8~BDz6p>}S;z$odh#Trd!e zS7k=xrwi)yP`x2vDXc=oM&RY}O^@CrH*GC&}9GU+lU6u(B66qWXDSGja z(Q9T<4=N6=_lH7|@f>OR>7|mBiPs@v0Te-lYDjg)dRRoWx6S$$tmIc#W3wr3Mq%@YhA zlgi4pYuHl>Sv~q1bX|fM_)GhR_CZZUwlDxk~1rOd(W%e)$?N zF5#PJR%s+Tl|Z0kh~po|*YEeQFEU~(LP5yY-#In~U% zFM4~tvb-(u`wRj7$F5WoOvvn#aFUCJS|s^j>TwXJvlLLL*$KjvG1RVu#CK$j1kL?V zVGal4mIP-$M*^T4Z`wJkf8ST*VE(EZ$#+pcIdvUPfj{yHPChmFXL!KZCR%~!x~nRA zM3cGjj2IgQ1x6C@sx4P9gx8NEmz|%uZ&}BIxYpIK7z4Pxw6uPvQmV0}U6r51`~1(= ztzuuy`}|H(?b2}sAHAmF!Rtb6OsafIJA@V#3q_$-fdvL~>@$(e|}H(*iD(gF#bC0hCw zIB(VVz7yYv3g6(ja3+q)?A(^om<%pNPXs5?H~eskh7s&6L9Midc^P5J+9++%Hn3AV zH>moL_pxd&AqfeFQQO6ek|aZF)!N~$XfduKPyp;GoI$8JX!q=pDQk5Ch!PRqSaGJ0t`4AFd|xMkpq z0;4;KiPz9*P>>Hv!9`Z2wgGPLbLaNSbCY{6c%&9?gye~$3YDa$wETp}RVh|qGdo98 z4bNrrvqmC=@Z4nA8-`Y&#Mt!t)tQ@gO}nWW={9^Kg|@aX*c=3xalj*_X06F~Ogh1D z=sU0Qh}8igc*Ks~DW0BiS~`dQH|UF~%4TVV&dow!!3i42(tTc-5DE$bP);2yEh;k7 zQHL2t#St4(L7$Kx2GtR4DLZlB%TBSNmz4Fk@9QI*icNASF?|(#Vsx~T4E^2%{Q=x1 z!~=HKl(;s$_t)^O;klI+6%{^G;1G9od@M{n|L&i^E02F0a$kw$o!oB!%QJx1FlFb> z_z4U^IdXI1kUO=xEnKRoY6edKfnh2^KI&&WDlz(=0*K~kspFxH_VZQFRgwV1OwCNP znhcii;h_-m>WXRA@+Z}`y}ZIIRd@%AeXWudf<$S}(T#@NDvOfWC_X7`uh(o1AMueB z!htN-(4k@JJh>7NjcFc~B)6``cJm94UOmmT- zA)J2?bbL|^_@mVMK)c8Qb|rO5e=q4WIqU=BEInEOyR37kJ;qfWq_};aq9ng8WF>8r z>ZnZ8qHEV*SJ#$?-zK>zd(@KBHUx+T>Lqe=D&PrNrP-_oh|vx>PTHn-`hOzUWg=H;D*VgqhaGOFrZzzfl5Ke`wNVHhozod!O>@p!0aG?$L6Nk7% zPldZimKmDM*lFf+$%OdT^bKT*8g@T}l;v=#{(9}n8pX3I_}VSpOh}3UC82~2$Hr4q z)3f${SW$Oe_)ZRbcO5)-_%}XxzufrLDiez*sxJo}Nir$RSlzOhdilEFrtIte^K|R) zST0V!W#R~$XMB!XJw6(yy$QP?LluI^Ko)B7?BzGPz>vRA>t9_Ig+)tNk&Wa`jPQqL zaWPSi9j8p2Pc(|@NnkGCvzW$!zv5YIYnyPG%4v#&H&gZI*SW5BW}VY# z5bi?%7Bc_m5Qc_Pbtxv?uoYW`k&@{YjP&ggMhR|m2$F-%6 zWLuWwb%`R{4nHwI(NJ$Zf{c{8OTdW)EQ{=r0)KEorQSnx`@97yNN7N5ioy%`c)ydl z@?Ft4Z`t;$-10oh9t@>#5(!5{)>*UMd411agA}cEX#4s)xP*TtlhpIrgP^6YBr+4gcyq8hHLQrlpa+x<`?? zRS)eZSCLI&wciPStXzO%{myo8tnMU_$0F#B7VlayiJ`Ur#1#1#Xu&EgOPf5eZ#_CY z)Ei!+xeif5>Q@%n&$AN&37PQB>{Ci0ONi6G6Q18$w0>ig^~yU)0Su4%E1u+`t^aNy z)L0U1y_?z|)J@ll-DmHIrIpI)qO5Qc@Ht=Lwe`qmra^b3Wh0U_94{?$xD7K7s>7gj zDhQF^U~0+xD)R5qv&T0oTvW-8kw<*7;!m2MAZEFRUZkOc2|B}q$f7qR22tjRgl$={ zo6V90UA|4U7#p5MBd+)eb{?We550a{)HpeW{3Mt9qB43wzv>~dmfI6{M;5YO8C!nB zjZXXElsgIvuAc}c*l62-IhWMo3?oKUJ;$5+N_ssiio_)MV1Ts$OjWpnw5R+9&!Y3W zbSBV*Cq#c`_HSIs{_>h9gU0QMz&i??6JtFBE=OBQjw99Vip~#z$Km`$7IkCdYqd&< zZudZ$wU5{GrQ2`fAs^C?(^e30%(vMI)z-^_{ z1e8{tD8oNc==IO761;Rzr zb#3fOplYX{PArx!jrFk#vUL~R?n%xh+b=r;?taPC(4OGczJF6T+0+Gp%19o{%Zry1 z8;y28K_)26r4U5L9$7$STyRDtP^a04)W@*$IcYMYP4Sa@3e&RCG;^)2Dq#x92q6@{ zIn`RCYg^|XLt&@A-bepE;o5u$g${;8 z5EFP#_U9;~^ouc}RW@8l8v7zU5jI71l(o(WsnoA%d8Cocyb#Nz;DwMoG#ptkJN2OE z4`;DD1+3C$BtcZn&O*Zq8HfR@-u0CF#?#W&`S5`(h@tvK7AOB0ZP$cvjY4(3hE&yj z-y0v=EBTstDxSmxETRXOk>WNTuW^dXbdCIr4^=GJe2Ohvdif?+!`hR#oEo_XA3y_Z&rW zhLpz+FUJ^(vqG$+MUban+w~<+Py~-I;`xE_mD;?5TOH2f4Qd$ZM;$)cOB;#6d_smb zF@`8nP7qpt<}plq{j;}B4>~rslpjid{;~bn8aP0<@Ct0emCu=s{@{YZjqA$G&)t6o zZRnC@NfV5ys8KsXT=DSyzgJIOk_NF+%amEAOvW2AQM1E{PsJ`cv~bjF*XxZj!-i;j z92nSqM5^=hdQm(DQb__SP`@a61ZJuaxy_ZW{^>@$YkP$-EJj8+!_%%oABnThAq7R^ zUI^>|BFSV*XNReN;zS)&&EE|Gi=jl{-pcD3VdflODoAmw@OQx~@F53(Q-QfV!FEQ#mICW?7^j$fjzyJf*Q#x=le+Znm$z^4Q~|og8avJ9HZ*%IlSQV?|GNx;JSXI+|?y zOf*fFxGEmFp=F2UG*+si1O`ygDk}}|Q|;lM+|}mkI}n(1hapb~0m6@>ZA9S_=1tMX zci=|JRzjV7Kpf&Ey|~>V8tZS8qbZXRi}w2O`(UtL<>kneOpgxtTJc)4dEB}9#JMB? zV|S2Ho%oT3Mt}USL#x@NBEXf2e7G-!W$A_&=Z%iS(G?AW$V2 zrhONts_H^=PViOXY8juxVDETko08ZaP5ozps8(*_JZFWx`3kYv+t zj5HHKR{BTN^BaaV-{r~s;7%(dAe+jNF#u3rqV$cO3v-Pk66TuAfar0MKbMvO@70WWW%ghuWeNDJy%gBJ_BUj zHYac7k|HKr#uOPyfTB^a^wfMbidQZa8CAihDWf3ClVUhd}Q2YRqMGL=0fNEj3RcL0fT3_8Zn zVTM`VJEhGyK@-JWFtLH;eYW-Ojg8o*rXT`p*OYAJQwz#@p)itub@@o4;t4A9%@;5P zcot#vkO(4+AKh$qDPuE2qd zVde`E;SR`|y1{o5yfWy+XR@XLo#46Uyf-|)! zGqRGyYHNB<1qWr~Ot(YBQVf1|RpA%YSGEgUtB>!$6jvF+*6!4$ zOXkqs0f?m5b{O+34XO>W%(N9=N4i-%hLJKCS4&!I#Vt@qM|_9V7+>)+ZJ5)P6)po2 zaX8+wuTwO$I`u=%b)RWgy3^i^L&te4i&>fqWkJwqDzkz}$MC)dz!7UCq813v4T||i zV&A-A*Ro(mo^Edhu|&AESeo4RfPU-e`CM@|4lo45H8?5^I~zB$e%yl2=#aOV(irE`{)w zFxxmq#v)EM(IB%EL5dM^MUscWLHi^o0K!0~c7zoA7+QLY%3^xBf+HI0Hd(wt6gwsC z5eIS*sda)w;uPKT_>*Q-N&mI~oh3}@!eveG1be0^B@t?8#C?(sV~a5~^4hh&pe#J6 z*s)b9Y_kuYUN%D?m{Lru8UpI)9Eg!3jSAgethH3%T>#S`>eYQP8n(i@XG8qt3r;&H z?t8e%orWW^NwR7t@ah!VL4x6+k$uM(6IB{{*?(X-5iZKdvjkwqY%7hXn$7F;^x~e+ zP&2f4m2k;mJ-}{ZV1r6TB5b53lFg6FX$tQKSNUR!A z`0W6R+o2POW(uJQaJq{eh(_!qZ&6BEa0!i{8ZPdinBi1c7H1qE=1)-oWejFo#{g(8QN#)fU&#ecYrZ;jdwm!xMnN&&yR;!yB0gw27>k0 zhXoJ*IKBN8L{}!Q9%{IsmP1#_1_w#wJ7bGDk*{{Gq&(kqJL=@L!IN;BOA zHs&5S31WZ;yKYzb9}CB!#$sp?m-rvHLXBb2AZ+n{vrKDRD$ipd*86LuHceu24)KBP zYW;%aFaF_O>IFk{U-yAtjf|}W<_GklN&5<<$17|1{GcYr8#5DA7!Pa6KCcjb$g9cM{3&`-YH(v!(G=Dk z4@sOc?^*Wtu%~kxo%^QYPMvOm;Tjexp_G(FlCw~Xvr-4yUUzh~g=9*Q=Z~#K`-H2Y zpNF7uGCjruS+vuaQ@eWA!we-wdDj}_GOV)>T!4pkz5M$8CvR;>-9qnehu~eCZU#rw zk5H23$!@#*uTk-!jha$Ut)5Cy5v~z91b)~)gj5_n$#o?rKXG^}+mxHVe`4Nc-tyOQ zq;c!r#D5^NVd#QI#?V@PW& z<{V9#KpL(rj2A~CRLR#R+GKPaY_lA1JQ-exHuzuXH!w5XOe;js^PA zDWm4ZIc;`LsA9Se-?{X(>vpoG5Gu4~O>Kj3ms`R@wv9DIXHwBFe8c956Jk!B+!LW` zjxmPM*)Zq5Ca#qNXcd2*Q8dkX3Z3?$bgq0cdj1#J50mGVd)1sMABo?>ULBQ-Mnfd( zf|KbH!LD@{sV*0koD-ymSsIf0qCK$5m#%^)BV;73#EjG_+5W?o@3c%)uPgtKzN?Xm zSG*owF(-5dw*NNiKo5j~KrF%HmGbz+xKl@SWGk7PjNXpbdYVZ_OpA+93pAxSoM)lD z#$W5oJ|J~CRANs=rMpB1|YdmYrmO~yUBv5>KAT+|au!E1$+Q*=D9+KN zs~RD<)-^ON>~h!tHeU%k{F6vFOa`fKr=4?wS|KD92}Cna8Aulrd|ntOjPMU&;j8C? zPp9F%UT@e^*Yn_Z@(x3feZKUV$D-2>Wo=l?>I%Cuv8LQKN`NZ<)q2<2(Q1C7Vs|t< zoge)qx$QauZKz($s~czmoP=;eVf4U&BI4~^lP5`H|5Md!)nU4Km$oN_d9G%|fYxJd zP%!&;S5~j39<#k*%V_u4DjFMe-ImjCFqqJIY?9XYfoygIHlnAZeK_K8}+1SdCsapFU7i8S7 zT2?!a*1v2OecQY!E|C*%roN-| z1Xy(1acy1WaRlqu*&Mo3OU4BRynYk=#-cW^44&kL!s>dfX60eUwqFY^D?0yyqAV)T z95e(#u3HW_8gi-V)O?`o9sQS9CX{ZkER@mt2aw&~JQtD`r?83mKq9LttIJ1yPT^?jkiphe3{8GnLT_8%tXQ{%BVm1z(J z1c0B{&w|r0VaR5dwB0eX+zuN)tkWLS$j2Z`2cuEsd;=GS`l5=SntA-|B+vWmZj7+$ z3Q#>dH0{7C zH^%5@$Y{eE({8-lY8g3Z(6SBoj@RC9Le?BO`HqK7r4tWv%nH|S1}x;QFB+&gH-h|4 zK<^{H(}f5JqA+bNHMG?!0tf4@0OhM_ys)q5f% zhCrb-nQWa~*$+#3R+jDtldO$$bCbJG;BN*CEJP*k6rx~oRV6h@W2I_>>L}^GAYH#k zmgljj8omu6`x(eY5~q<*t&aXsPFZ1g5;oElCZeYaSNd;aa}|f~IN;m2Raq3gUd@S^ zoH&XAAwB?I;)^e}ScCO%fl_l5trr~K0xp57>XD#3_4wFbK~N9*MT%)gY6grTf-z1h zUHu4I!gCT}>BN2UDXMC+gg%N8&BTO_-xl?MupasWLj!jM6mrQtdRqSKAgidB@iPzAqf9Wvu(}!jamNN%Z8`?yi z#E|;)hfc&bfY=YqrxH0QLbBj-t}JUkjXSO8sBTVXRx^{+@^IlXBo7Z3Sfx!ECbpL^ z8JscQh4feSt}+pNM8^6hOeK-;qe$1$j6(0tSz8H*8$2z>*E_(A4Y|3$2s@|-QwBI( zg+=SC+CQDqz=Vkxdvq$09Ul%V;qoNDYG7#(v!W1y#;zG!#zw?cjW$#ij7K%1$7NR@|CVqsWTQ4v zYq-9P6#B2ti+Puz@NqT(^Y}=c;FZ?|+BM=AjD7Q-e~<9-af{)ks4N?5_Ek_EiAkP79ipih^!aOsYs?Kc_o;1p!v3L6 zMbVP-#Gw+iuuMIXDN^*vmQQXxPRbur*-$HGuRLwAt=t>1Ts7L3t`Mpgo z^G=lkeTJW6Ga?$IpLJx*;Z)(k0~`Ii=PUzz&s;M$h@`9O9G%GibJWua-f%b%vDX){6&_ZdMe24Vk(QD{(hG^=%$_$x6WvOCXJf>&Mp_A4vw5#swo)flrxr0|g8NBf{9*bLgR?yOLOe*v zg`y%-1Y`+jFgBhZ@;HOhr5cfV(iz7g2M%l#Da8|FNE%fUsi$t$Nm`hToPhfdMxSwk ze}UPTwEAC37k{clM>Ixjz$5+I5zs=PFE`>_s4|6yqcOCP)IDn-t7KXb7HbAYbsp&o zly~;|MKiGqNjnDLi*ZQ+;Dog!Zd4L#_N;#wA7u^Jcpq?%T zP*ITnienKHKd5ldp|RB%NcZJOWQbsmumBBR2{FElj*T}ZxeIxwl~pnQZv+uMl0yCK zv*+b|;Wf7RVe5vgI-Lk`Gym(9)IniiS>K(JepXsHDQT*a^w3~9T@(8ooQ$zs0+>86ynI&rLAxhSoYikbIC00L;4+0TBRvV=uKh#kxi7VP_M-6p z2v2d-%^0IKB9%vZaJzH!g^Y*K{9kt#&7Hm^y1TG&Wly5!Mmy66AILl>u5?{gIJleR%-kROt{aV6o*5-&9SG>? zhWn^Rx7#(TnHm}fQZohZdXNg^5ll3+yV-(|Hnt@#3Fqb+1 z5tJ|uKvCf!xcLMI62U-LUn59m-ZptKl*u#SwH;{YhAQbyLQutfA#YJ(6G&w)AD9#D zhETFmwX}4yEFh_q6mZ_V8Ql=r4Tq@IK`eGxHS1+<%_}7QC2@!v2(L(%VJGpXc4@dE za@R!#^59@udL{9gB%yDlz!GV&eytodkm0bh{5L2A(qcDcUvj}d<*ovUL#65`3lJZrWFE50I}O^vcs(S>E0_;73M_gxYzXalafl&ufC`)RP14#K03e zOrUl_*(Va)Q51+6roy&?A(7@xB-~vmAr6aJOCiO>%a37YAeb+m=aKT1lb>y=`GCRh zWC1iW@Bm3bgHaRregsEi4QW)x5Hv^TR5^M9wxxe7-omLMHH%W!?JZ`g&zb1Wxfi;$ zl~0;yUHi`{!=z(Q(~Wtw}v;Xc)%tvFO};B!3RHH$uH=lt+X6Mys0`so)Mu|Kj*k1?m{9wGo73 z1{*4W<6cz{|JJR)gfKvKSm8>C?sHzX+YnoFGNTY zoe2MEo!mDVIltkKJh&f4H_Skaijb^ilZUM+>RWlHCpORSS3u)shwqCeHyzYzdNp2& zGo2>myr+tt(UMR|iV|<|a#(8(wna2(JpvBGiJ`{NmA%NdN2a6z&((8|aG_a$0;$Z% zqm$EAutED<9vMcokF`8Is;LHb|5LmApxzfxL~Y2SU8dgT83ROp-NF>1(t61l$94&h zXi)2uqspTomMedCcIr{%dV->Yp>8$}^FcBp8B|W_J0(6Dnw;`EE}3%ZwfprS?Hv(1C?4H81~4jf7~CDjhXBM&MG6AV)i zr-0c%RCBuq$Mc`#7t$ppMr}hNX_DwBnShHg z`yR7FCB41devidOiPSiTv6EQVBePEIMRV7p2JsS_v>54>`=;|_;>Joxs zV5hQ0d(@#X==!M`csF_UgecYE>h9*%(Kr^srMFX}uSixt8_#P;Yj8l-!$p*J6ITuu z|8@KN7}Zj`C^sp8I07i{!hyhTAacLw9kpX03p{Nd9X8Xcedsn&`Br3qv)A|CW+V#J zT*VjikWgr4HN1WNL4qtRYO)=2Jol$G&w674zCU*a+t4W|Y^K8|BWiMI;{)9P3xSnD zQ3PmrM3G0pUfZ|wE|v|`MR?|{QI!r`{q%m`K(@gH#ZjLqk}L%=2X=6 z^)I9ot2(=i%%6gJ#nRm!t3ZT~xuE;{&^bb=!fq?syU_Q2O)ucni3--YqgGrfWGk|BP`UXZXp^laICeXA~$`|OknJRdtp|61S6ZJdm zx{QxJN55Z-&f>b5JpuQ-Oe%070Fg>oV%Wfs4JA55-A4xTk_&awMXA+d0d{VzfZeXd zdv@DX??Ce)yWvjkNZ%^Ohd$44N@3+V$g|4wJU6F17$KIQ zjVI~p_dZZU484{ZTK*Zf=&Ev+(8T31#)aOPsw_Y(1L!Dk{1EiOjKZobJ=R)v_elAD zit}8;UB0adSDWNIVqXBp41_5c@wk7Hoo1K5-~1W#oyX9~)wz|t@^kZ0VBez|` zOT5f?pH;sh6yQuizNBwCUKyb)Et7Uy{%CNfzpCd>5X!^?I`E0)V7*%F?Aiz5u(B|e z8d5A=AF*OVgv60kFQ1)b)pONxL(;PD)B8#NkZo zSpG3D^@~3M(pxAcJ05-8-{|CbRXy3ODZybnRwpt0@#zgeUWOpI#jY#o z4>!q2lD=Qx1MkWEr_N4(_7#ha2^Nl`3X}a5OP2j|(b-*g*K{NF>Et}XwEhr=7fcg)0hV^EYOhI50wgW0o< z7QPZz?3l-VqTV2_;UYCNP#wVO+S(EfT!ui~Nx7h$-$Om4IE9PESm)fIOz}hu?1g@N zhh5ptuCmIG|B8*LBEx^%+L|b3%z27&+p21LBez^kqj`~lo9chDtk(<7Q)bRy(EPEb zMJ@nqX1L?s8LRo9^d631KACv!uVfTwLj3|GzyyW)7^4rGE&Gb2uRH?%cRdRLdKj{%@F z0e=+?^jILZh=m4f_451l1j>?q9dz5-7|}ok*C#uM#M0jCPI%P+onukWi_;ndg+y#7U(J01`CO2(56TEU2$q!70BdHFmp;jx!2p|lCf7f#pX-uD&g zK>d=s5n+BSa=A8p{&t*S;=tL=sH~vD+0hWbw*F9<^xloM+W+QNx5g>Q1R~$iTI5}f z_imt+iZA%_lUSsxo=nJmn=DsWJ8@?DqaxY)V=0b9t)iu^PEI5=d`a(_f_B)KMV55% zUMf4DxJT?Y=C+ezA|}z(h(H_k1EI-FN$b777}fFb1}BhCc^Lvp(1aQQm~H zAKTl(XCyU3GEiv>kSr~XDdE4qNf)wA3BqIwQQnqogX#{EOO*l;CsG&R5!z)ae?P}g zCa@5F-seBj6pLbKlzJctn#20GN0`Q}d0EhDwRxg5BW)CvJs`vr@WL@qDfqpvF($hi zp*;kayFTfEz3fnMG%~%^6c>|ypq@-{Dn{Ey*6{~_uaPXuE9Rblo=bRcY2g+9;Y!%= zsY z+fGHLq)7)in&I;e?_r+iI6pPH7tME)Ye$E~v$r}~FlH2Kdct+9cjm9_cIBAX2msC9 zUr?AmqNf{U!^4CPf1g+#P&y(lE&qvfwT}=Rb@Hz#NUqzQp+obdrpXT-UA#+Id~TdG zzcO=Sd6~f4k!w<9;yl@+Gn8Usb1>)Ly!gn9P;g_%{=WM-MwpXqARow0R8E`>N4DPR(SVii@0nt^piLFO5I zl;L#5_4dHtVzi@d_Eq-YnLIm9Ly;*|1*?DV-`rYX{wZ&aQhA(OmXf4Ts&a0sEQkZ+ zEH!>EK32ibasO{j;*sBz9&hGBe22VekZoOFI|7J0r&EF zUVq5%Xv_quDfv{?lu?<)sn*^3y10KZc=X`9ViQ>tyro*8vUBp_;{A6kJzxiDM!gM-u6OEF+HyJ^cY`%PcdMHHR%$*?jm-QBnZ;Pozk- zlrc8DX;SRPDQ)s%eJhxUmXtJ}Yd_j6Q{1k8?oXbEFa^p5-q&Uoolmw*lB&sLt!r0ESG#{ z4>-BU^)J~>P#z{bRx{x#37j>r$A=R}U^Wpd&4q%MAx~m;okILz%1t`(1e_l>z#9> z#Q5u#th#0D0iH3xv!|;{T8xX9-LYt?F-;Rj%S=_t%6uCDK}_%-OLyt>F)rmyw2@J; z)Rg)xNhl96Bl74d=G?-9v*dwRc1v@$z@~u)8Z8dDa>CjNd^hAXjiqM!8m3J$)Z zthJ>de|~p|SWmTNomM3=zq$K?AH)8xgjSl;PcV~S)CGd7t2~EJV6U#Cj_+hXqjB+K ze2HbMG@vbNu*en|jL?vSXMnGc6{)WeGKXTy_)wGcz@rL$HPHk4dl+WLzgx)rqq6FzAR@qPgPywu-ByRixb6r8OAI z0dq6@tmzb~(?XPev`n(d6XT6 zngw!bp#B@5UfIjuUa^=87*fm19Xca3*201a4?hCC=%*y(ZkS^MX8!@l)Aa=}fvl1Y z{?KYGDa6-R=}wsXhCG%%qTG|6VH#rc{te*wP&ktKckQt{OSWMR84mx$7qU3Dqc-d&r&F~1(@YJQpt+5eE%`V*l+8rS7y!- ziY$)`tf<%RLX$hRa_F37if5^CMpEX-iW;+@G{(F-yAnXnH}nl%&B$~bVB;ebovs!l zkR)i!)V7NC%dx$f#RDayV@IM0yn9NO9oJZZS~%`0V6W0x2I^G6p_h7!!I%9y#(%kF ztASFg+$)rvW=3ystH-YO=BZr&lk<<837I%3u+R5>TTajWX_<+)M~}TkcxF1gZLXk* zM0Rl~9C@$UbzZKNp$zRu>%k+c16}6z(J&@itA+JalX=9hAZI8(fWZ>grUiM~Wn{^Z zJFz11%2K>P*f-?=lOR)L3-}2Ym&#Ok+(BBr(n0A|PrNA>MQTcoQS?5sCkyMg=c^>@ zXROIazeF2`?(&==UJAm9Rpp8*D2CnVQxb)MnS(jO)L?K=K$PDNVV2c6^O9LoeqpdF zsTl!*6?Zu^^%m=^$zPl0FV8p7=Pk)5xQ9w`-k;c#Wb-!jB{^Br!tkGXO`cCZX>1_0 z&b|Y;ITG)Ba%{57r7tEgo~Y%;s@U2|o1opb_H7yBE^(nU)y#pek&hPz|5+S$Mg@`v)nlA>VALUi#b)zzpY660(q6g)I^ulY%HxtHCZvA-eU=nTlm>ffw_KGny3{y-0GlQx z?@RiJ6&Wx^&!`d?T*OMD`PK&w31u5EcL z4N1YogvHhV`0hS<$u(n4vjha<1FOZCrzbHNUomIve{6#dSsp8`l1pF^y)zH*gvgf4 z`J_JNnreuYD)NK<(9eDF#c~uEtL{*&gYZf_cHnn5wQQoZ313bz+DVfxTlE}Q;Scl$ zzv(*XRXR6T)|2?2mQ?1yJ#01`+?j6I=LWN8$}GH4SS}GY0cyy#)so z?E>n@h^p?C_fe1pfNp_i2AH_2-@p`^h>d*14WYdt>cuvQa2z@Jk5)>wq&!j(s>af1 zc91h}Z=u~OEW5$T`X~`v+{*!PBkQiG~0I(-6&cLv^~HKrN3&O$a6V-h4ekn`R$%2QMAFgR7Z#LBz?zc^|Dx~Ztw zBRX5hzOx}nA8>j9X29Ta35K)5ZnBOs3t$H2I^8w##B=4FK<}Em* z_u?~lvHah{+{m1&I#Lz$lB9V+%zxV2M(vdigC)e1@~01+r%{sFAG9bf@K6$VZ;-Y4Hq6FiG*h& z?4%~GI2}z$T0pc&;+l7aKXV6s>VnDDuu_Q6?ZXAr1s}<<@T|d0bl7dFT$s#pMB4rU+S64TehxW#0mJ2RUkk23X_#MHbeW4ZO>=Dae;4HFEDZn2Gs~V~=A_ud& zD?}8z?G%8=)Jb6mnNU}uM(+AB4~?*>a>d5anuwsc%PMg?IGAPkHGd35Y&4(E>xvRK z$@z&M?KD|I;1_H_efK?_iu22X|CEe6t8gn=zL-UGm6curD~mXalLaDM%z79ir-o&S z=J;u$OycK%+7c_&S;I-H*3w?y@`j^Y*!geJSs3eIqXGyf(%qKY9$8+6mgX%5s4k28 zHh5K$#h&bruN1Yh3}MF(bVF6k)yc@nL?I}`t8n5?E2WC5|r`xDsnGva{x>v7EJi zK*_AP$B|eIqH9kETy)wx*3$DZ}SYK2hyGr8kyB&28&njH6%=Bw{6d| zRn=9%>qn^2D62`yCmBP9Rm$4f{fGXlVns$aBE1?hF7)TQ5iXl3Y;Gkza0$o?jAx&Z z5#I^9l^x)`w==W-4^Iv^Ve^?}_9tX0}uhBmIlv#h&`z~oX{&}lXQ{i=6Ttxs!elo>H21i>U*xwSthp^4?DS0J9h4aasj z;%T1ub;sfBNj~y}jLNWRq`fu4mDA!j_N{Ipuobr^F*GXoV5T;+>E(S(J!60?Qo@v=U07Pmo*_|d;N0%(y;G*+ zmZNo%3wjlGd>6?wC}$rK^h2Me}JJKpBL&Mamr7UEeY6VdocE z)^F*~(Uos&7Bp|CBs?$Nca>gRHW$)~hf)=z-aB@H94ys)Hp%JsCs&B%!Q~ru&hIK|nL4cdy@M|kO!;k2I zG83t{v6hT&#gi?jH-UVxdP5^zU8yUxkhafrYEPyN)AyWzE8FLBKKvgBD_d1-a|VQP zNne(-ZDCWbne5o?fCCIDZw42at4)g5efPHB(Bv(3h!v5?E+v4?E-Dc=%R978a`l7v z>wCyF$^Ji(J&i=t$pC05s0=ZW=j!~>wA8xV+S+kgX$yV-&nJs3;|Wi>Pot?qHuk=d zDoJA|@wzJrBi&B9Ew;?j@zl5aHa{Z7&WqEk_7JR6k$H}QcDVgAD2J6lMl+V8VROp= zU|FtEAm#b_xAs(U{%0@?3mXr0zl2q!gw{USM6n6sO6!)=*0?ayhqUY1GHgae+-Cb8 zUDDITZ}e-Y6>H>S#}e{dfa0~xR7pgpMCmJ9{FZ6=<+5p(qE%@*W%7gIo8nHJ)9&FM z5&-?CsbnY(J>Agoq~PlWI5P*fP~*PwuuN`tkpH7eE~%U23TzLi(oXZOey}&I4fdyD z_QxMq0d=7zt2(*_=Lr2yJwE?w({=hU7pW5 z-}KMBhkWb2h`_)=fr(QcU*EqtfBtKTq0l{X5fN=1>?s_+Mk-MMwZI*mKceh86#ih1 z-v1am5ZRj?DbldJ;RonH*6Z@_AXLWeIiuVDk6~cJ2_}R{GMlXaH^h|p-GTZeV(a#Q zpA`vBDl1NrUVHlA5Z0V`N0`Qdvk$WOe=I~23LW?-tm8HOQ78j1Oi?sk+71j7b;tKpOddl!0|qPp zd&$Ver>61fd0E%$NroKjDmhlB=GeJ|F;5kgVjKAy*_rt1$70#3`RBe{(CArxE0U6t z(REeNp#lzsV8Z$82*DYDe7`SW9gj|HUGr#JSy@f1tA(@;mhEs;t39_}Qc3vr?SB9w zf@SQgx*7&MI=)rc)=ujibW8#;q6;`+d>|ZxoN&hrrf2~uzhyjA3Z;& z;S+2OXXW_GL318(+D>Ev?m_@+=yGa0p}s@P=BjS*4o6)R3w)ClXQ@y^ypNE;!P(ij zOj(?JF1sB8p#;Se1Aeg~3ayj{^>{(g0n&iSjI%X^&j&xUP|Xogi4S9eT2^ilGOZAP7vnI0y7LlXanLe>iB_)|TuEn4NfOAkXnu;NoRzN*pGl1+P zEbs%#(%Pn!J?6G*57%e&az=Y`t|e!!)Je~4m*&)*vc{|vJo_qp8KWh_BOQ_DbWX}h zYtWW@wp=V8p)Fk|Qj5D|jFH>OC(~4iY!_h(3@eMV z%S)?PZ!c==a?7?o9R)09(6snW2@#>ARY&C*VA3+MtShyrn_7EpGdH|nptJdeUb@_u zc~0nDNZ%i8Ul41V#}6L)nvH`+%IJFh$qS4g&@g#RR@U^&+}0B_j|CO-@#jxGTx>@T zHvL)vr*<_%18ya`6OmFCC*@ojI#Ik<0^YXe$6|!dh)|{qd z1cqvZP4lD_So#8EoYbrO!gYTL)>E&K&T3I8UlV1?<)FrP(7%L+@`|TahbHgWd|{gU za-B!wdBNhPN4Kes#_Lk;q45nBoJdgTrm9lC$~w$#%(10i!_Z_qug*mD@c|Bj*nA_O zyw1k^*~#Iw{-sml?06Ur%n?u4(9iqfx@iX!58+WZ2ikQ02XO6!&UB-Q&l{0J=eIB_ z>VY^9+<(7UET1iTkC!>nO>1Ziro;ZY3PBxAEM9$xo#|>MAcc?*I4+tdJ7I+?{>W=?J+RKJx;cd>=+PAPIY( z&oh;!i{yoOSmzxUe)!Aa2*W(6MiIu62aQkqj#P%;cNS(hvH;hN?cTSC9qp%8mKFmk zx(W8Q<92T|7C?|Py`y}Rk>{eI&v>UcSl()zuDpJVZ#+|q8jsJIo5;2q7%}?s^k_%l z=ZMGW^wp;oEJuu%1HLR^qT-_3bn5sV=yx9sap>1ar)8lm+G@jizefAwZ7A6F=t-pV z<3wkjTU%x#0Ld|hFB@8@p_+oS zYSL+l#3=OR`e%PdNb5{q9V*YZ)SNbqR@7l>WgW`P|9V20qR*UPPuLCG1>d+%a(iNa z^k)2HSk#fep$T*|3k$Y)B6ZW@LI8>GSx4qQGT0j*AYJt-U4DzMeGE_|E# zp#?Vmvxy*_F~YxuN)jPl$h;cddA>wqdHcX3XcpjmzdgR7`*#3TML{+4B;3`Lf0Qb9e$q z-4cEXXbAWF+s<#e5gF-X-8B`H{$KB+Z}%=7Tja~JKUompCXd%8B<4SO%o5)i+PPURB1g&c_przDP}( z9dTtpn|r-%EZ)|%*8Yih{7{^|CHVXOz`IV#@dtiPp@)!a>X|%VnmgTyMI%UJ@R()5 z)fyVukiCUN9L~ZhAS5x8WXi};ApoElSw?}Vq|{S*8o7;4j~Si;RPwD_Nmk)+rJ=1p zf)sh}z~{c!y!y_!-+cDYRQ3Q{D|R_VI<4g&uU5qd?)L0+!|@MXh5rC8WCDAe;sAH@ z*7>b{wEHD@(&@~t^$=cNmVSI@^ZF3?c2>oBke|#JcIKyR9W?9#84d^-C{$eSUGq&0 z1F5CRF;EWMRQ$DHhZue7<5hN;A)4gcoCkH*Pw6>19qV)GOa_*!8HDhuoxp(q&D znl`f*zvH*fBfMpzWaaLlAEHP9$_oBT>McU5(%4(Ll7zR{d?r>J-n2G>Jn@Ht(C5|R znxjP_AZsys{)YdJZU*$=%emx2rSrUR?Of+E;rUb-8Z)px*sB3Aw(o#Mxt{PKsV;X_ z5T(G2CvR)V>a#=G*noA)&M2ReWY^*ysyEvOs&Fjn4xf7s)zsnCVKt}1+DCuAB79m! zSM{iOaN(3LJ1Eh5_+?$w_^~E8;FHJd9n~}4Hc0ZK{2lmNib0|lcir+&N5dD5CJC1t zfryP8yzDc^U-!hH9`81-AW(^$n4*#sCh*sq1X;jD9fMwU9dS4eIpw6JF{p%ZX7}36 zT;R4%2V~I(KaPCsM9rhOO1)c{$=OQ&x5YWD`-h~ulvDO}TnZ8Y<;C04fR0u5IjlN^ z8*mFr>FsRKYwSx>uk<^rOmV@@=s&$*6)d=v6AQ?##%+AQ-w0_y5HH*kNBT%2=v#(!BIg zGA=LmW-zp~b85B+9lc(%cFa>6Pa7-EsfWUt9(uG=0N@3Epp)z}$#1EYEC%6EdG4GH zb)7P6JU#a^m9_Tu#WavJjkiDKw<*FtA1m1(7q0h!WwqSY?;sK*S2U_o7@d(olgDpI z_5|Kq*^%IKp(I5YY*g1XJpKUGdxmt@G{#(qs2TadQP>8PQ^+u|8Td`LM9fC*$iECo z3hYyG#XC@#Rh==uDL}c?b=rFl+OS-u zg3?;GVdJPVno3^I8UngN3S;jFdLMqnC@$a!jv8$KoNGW*eZCZVo|4xyc)gGO_B22f zU|xElbc@7}7Fw6`4LfN--M_sGU=%(;?{zd6>=C+#zLlzM}CNS1ydylnFFU8 z+3qCsicm9J94LR60HC2UqnLpOo0h>Ie{rb1Fi&I z%iaX-z2${yq5xjJ&y9I1oy@EWFC9w^$WKk3^_vbKxif#0hF5`>`D0!niDndlbiAcU zqQC1poSvQnoHev*mR%>0aJRKvewEc7?sy~X&Z!=bw;LCN_98v#lGpFppr!tf4V6IC zw*1ZbO`GLS@FLdV(Y);ZbbGoS{RJh-LnaO~q za%w&{0fwSxWplE1`DV{w{<1z(N$(4JVlJr3sK94*o&byVvv@vgVNZ0m@RL`=PLsSc zS+RI%TGBbPZ?1+y;p(_m>QT?dENFHZ*TMD`<~(MT!n0yrG7pnB{$+23E=hNCU~nu0 zC#h9`5MuFuZGTRybb~cpiCToaMSt^U80947#11tt(S8V@e(n3XJxx_lV{7pH@+H3n zh ze5i&1%Q4?$$CnMVm|i@UWqC`XY!lw6fLm%c+Ut~*7IOkY6bJ(ZR*4k$ z1osJ}>Fjblkem@XBX5r@hY(e;mm4USY<#kDFTT1)zyQN1d%}69lg$+aT3ixiZCulJ#%{>&zsy>7OuI|hOjdTcThDr`IH zwQ9);kAKJ^O<5ESOpca2@?K7NYR+tgF?Egb*nOL}ezO64nsxnsKW>cwC^usSH>NV5 z){=$E;|aE8l}I>S)-d2jhJru4(%Hx?;N=)n7da4HF*SFO%}XVx_=gyeiw48ijQg!Z zy(ngehHX|8n5^{?8su6rcKX-4sYOsMN*0J|*tmukS&4+ofiShxk}sB-6yj~vl$H52 z@ab9hypHbOZu{x0R*gxWBWT$bH`8(Ha5CGcJLcHu->=7}1(H;?MqA_D-&dcl zYp|`A`}h3lEyEFI+Zneg7L_m$f5D=J+yx9Y5ld8kANZo^yll)i{Cc9H)93013S#7vE_nMOh|GLRsts{AW+Gc4fG|#o{=@1gMs`Y zC8e0(yay|m$tYH`-+!r`NNeq*=ka{@NqP>fezw6Wk4V6r{~t1u);$DeT|wEl)1*+( z;m(>?fldEl$Xn*oC;kBdb-D@H^6O=?4wxr`!`AV<$#DSP?{8&1*z4`Zb9`dpXfOIl zFYmvGYEDQN?II3C!$W&=SySGCH!9B_QUsNm-;37ODTm3|U|bx_I3gMfBH7f`2|m+N zK8DLFik4}8(*bMwk7Vw}sq*sejr&q*1E<2c7!hLXh(Tiv{L=X(_o$xwik`?PRUdTr zhN7=s09+}WD(V_sJcXV_MHR>`rL_L#jb=NwgMfaV1p`7*)Ph!@dVGa~Q{NSGefC5z zn(Ksv$eDRo-NX1~)FJsKD$zl3McsD0xu5;%i=WW#Zd(7X$X44jsm~umU?gd@xZug> zY?uK4XC*Z|3G3NGi*HGUzPwx1xnw0%1^ zQs+PAeO#Hzh;HP*P%yFXa|A{_0(sUp3^F&!J^;;dTt=i>i!lra*fRt?5e`y`$4a=O z@#k@pYimEO@HYT32V)1INuy2w@C_uMmTbVE$eyqQ%*r;z{X)V8B4Lanni`j|C{vFf zv7V<4mcx8pTy<}K!x*j_t7L)GE#W&Mfv(>X2NT9N zDBOnD<*R%xkl8JR(LDUBa<(!5fN4r@>(7Og2CA>a7q3t>6e(mf>K?)7wqcB1Pu< z%e-TYO`oQZ0Hp7oQ?ZgF=P2Z{=0P6#YboKB`xsw?HUCUIGKaxL@7;o%Y;A8hdsa*t zbf$SJBWzshG1Rtq_~=}$VUd6DGF()>?*&2gE|c+k$jK2b#}kDpfGZIinM#b7ysipX zYtFYZdI`>f08Nosg}HOMPUmzj=q$8@UDX;I2%S%*ICS90MK$bjmbw6rw*ZpwbQMa0 zKCyn%==6YsMZtrsfUW%`(bd(i?3ybHQff)2s)S)4{^EenI#ZZ5KGQP%SY3aY7=F-h z?FkkMcr?(~*0)EgZChRH`g@ip5x3i#k&(eQ(G&6%b?-)}E_dga%H##vEmLE}3MHdoy?tPf>l-b3%% z#7QvP*Xdcc7qMy~%xJkY_$D8;ahaCt3CSHdf*#_yVT+?V$O%NmpBv~(7BMexT%cj= zq%MIY?9}OdW-)R0JSJ+iujTCAvAeWnl3+@eoY^S^thg7@B-6_RR5jot1mo#Z5A#wj zxpCzr&xkjJ-CKMxFl=XCI+FZ*A3K2^DqtTVJH2VPgQ#FEJG#@)4u?U7;fQ z&&461k>suNSmbd;T9NAL+=(Ed+Rdo0`PKINDnhfJVEdSvk=q#krzEE`Tq>qAScSoe zkYQzJawKzBfkF<7G0Jqmp?pM`A}l{9)`HKD8cKma?7|#0$_-3ME5Rjkwng=wX6Ed~ zoWcBKDCuYU%EW-y20&1PN+MOCFH?EykH!)?oB+svM*t}eFY>G^({QW(RWP$c_xu2%(V=q`R6($ zg)>{s={X|=$KJ-F1wU`Y(jaej2lc9t-}-UMo3cKc$%Jo1_`aTjk&X-MxDvrHRqAWVtS!|wn;=uX5A5>5Sv=n10~d$KTF#Ys8g;x9%M>NVX_ zreyj}Z@5xV(x$)qzVQQl)yJ^Q8}Er~q>#1!R$FThGHwwYeXQNKy{X~vqSLX-f~xoK zF~cH5>It4guz>Q_KwBUoc@hzQ01B%)vlRYxVy z_(Y>lN#8|kFBQ`de1&j2y!8l&L{{v0J7~{H$uqrb7j)xpjPuasI&+81XlyIfDr~8B z(0mK&Bx`9-uO?sCU28jKpV|x=?px$xuA@Y#JVSW9!MROB>->H0*y12p^Yg%Sfa|@I zlm1uqt08izdFp64uc%zCI!!wXBY7Qo_K*HhQmFR|u=!c7%e6N_4vkqdCqGbw0gJ}Q z?1#g`mI6he+mVrIwZ2wcGcJHUg&mwe{7dDjt|MrG)T4 z`M~vJ_$SK{hdPl!NLH#>tOqzuhfI@L?`MjdSl8gR-6Ex>8OndUqj^@&u`&b{``A{adqCXbO5j6!PW2HcLVP2~?Q*A>}Jf!>%#SGZESP!C0a zMI!*ssUaHqYZYNSnk4q&Lwt>_S^juUqjgYrjVU)r`O1slk7x z>r7Gbuq@&0#nzg|VwKR2rheTMAIjBf?*2?vbgXMMJ6t$}G(8}2n$JUtlEZN@`nu2M z-~k9<9Dl;cEN}D|ht1h5W`ln#5T!>;sqq^dq(ge$6TMFVGj2hjFqN!e&=-CpIWeq$ zcY@mm+e=b$XlU|~ub8Y)g;H2bq}v)AVe-gNGOVQLHYCd|Q(DTE&46A!kfgLn`y>1l z#Z$=DdJ=#1-!hgY#u+rd)ltxb8{ci3@ljp08#Yum6(D)&Z^N(llb%PWk0a%~$WIr} z>*nBma4guFSP5O%*DkGe2Wu(biHWGb3_rb&d+GHIGK4YJ9e3-*AZB;JsT1HZE&NJ> zg!@M9vA~W%9ov@S_{}$)i`!#0DRx=kY3Dgn%%V;sarR3Z(q$>u`kbLo@SR?|mezuc zgz*xDjmMp(S$gy`_2G8OtG3?R_u+G;{YjI_t1G@|8Fc3?%c21F2O4uYbRhP1&A0+2 zFdS`_GM+R{z%6^$U|(6Ondj$~S+)Sn6K4b>!9Y{0eMJ?pS5YN5M6My=Wsr4&4yphn za|M@{Uj_^cLfuL-UWgNw#02vbz-FSYF@@_fDAX95a}`@PoW~se(J&)3{Y3-K;X|d9 z!X%EODktUHVU*Dp1G#L8I?&fo84H9rsih5Go}TOj^hDh!{9M3LoiT>-rcX@+s4OQ; zN^TnF%2Gr<@Olt);r4!SmfwHi!i_AiTFF63d!#amCa7kJQLE{PPGt5CQX#FZ50(XH zhK$HiGUHZt&1rAmQ^>{zJf#Z1v0bumJ+$ z7Kn;!U?Q&v3UI}O|3;i01d=?VD&5K8LHQmX()&G`0*FcLDIvv;02O*0 zsS?Qs2~SouZA#*YWqhy9OAaTbPcle(Ww7Fb(AB!Mol)H$dFlxZJ7Y6F-}U1)4Vu$Gu#Ey9XjU1N@*e9mw(m$tD!j1}ri44<3B;0G`A zcM5SRvO*F~fogJ6?hv8Y^lWCZx+YvS-{ZO*pvQ-K0%0-voO-~O z26|;lMU)R*DGNnGl(le=mvqLL(6mxFBc^Ynhrp`tvK8gS_ln-ZfY(uOlm`6}c$y|J zf{N&FH_=V(!qK!F&i$eteRfh_F!r9do)6%?;@HL8HcIg$I{#vbb zE`$IGenx*r^FCteOo)A=4kFRodGsa#)jx7SMz1sZ2Ta>QS2s)FW&taaS}; z@GaptQ8H+$x-^~TpO|5Uf>z(iSz{oeC|4aK*yMy2-Qk|pdm1$ET5a!DPixk1>9&DW*qvw+t< zxk}*o{qCo`6{h8B8bT`Cv-h+|{!g2!lPL^eyzo4)smp&RcAp9Q=rTBQE!lbAQrhB* zE9St;!*LR$jxHPfIjWk3?2hnd1KBn7g2P z;>FlQRZq)NyM~SJ4v_G>kpfU0OTM^l543{J;D6f{(#hc^DZ^6yK=DW!wm+EbeJDMU zHO(btI2Lgm{pE`fh`N~{E~&|s8q>w z23bZT|96z&M4#%6by)x_DMbaz*RRJ0F=M!FtS^U@E(t%2@U)Up|6Hb3gl5{qlW|5t za<<#w^&`cBUIRkyKN%%RtD>4Jq6MZ>glimg2*VP7!`Ba<04!dvKk0s1fhq`!R{IE# z6|eAOzqE?t%oLdoqL~n~QUMfNi%|WYNrH!N##1<}21O3qeVjhG<)yd72>BtIJkT?a zco%6R#NTEU19}#Q5f!EipW!;pQvzQ}?S~^4rY6rqd%sk% zPH;sI|y=Pll*PCsuF z>GS7qoRK(pkEAhAkreB^{;?Ek*htebe4=l z6jpvpH|jY#WY~E|Et-2(-y<-p>~SDl&}E(kIKX2HM-)P6&>?}%klNBpN64Y%e0}fN zccw5Rj_XV{on^;=)~Iald>3)Mn+VE*E9h@R<^Q@=&>OE-1^OaFEL0jLiZ;?9A{vTCFOcST@GrXFS0_wLkNLRM3dT+#Znz}Mj=QH-uL-td{v&$;x*VmM)nf#q!r(p#HH<30+`;OeJ!D+FSU28bK?j=Z_)l&t-fy|ZQopey za6}3D@z7)i6g}Jdu7+VNv@Ipso-gLsJoI+SE1wm~ZkwhMB5j|>0jEpHj1%;1bh=a9 zh_-RV!0nmH=bHnnGyxROVi6XG>n+@=FPvedV})d&Iz(Cg6p$n8fd(m^c>Eu9q35!O zs=lYFf5-3mAexORJoFHuM2;M5h(wAEyHJkEGcCqpK^0IA zGIW{~>ljMNmX3o`f0O&BKE<}0Y#~$eOHVu+bTim&@UkOe0T7N$!GrpM?YO69UsdLk zRU9mR1gupHqtCMW%u#6pP-xIQ=qwt~k^cR}b8H7hf}iS{KD!5%tV6p>jDiV#=rU8qkSk zQeX*|9400xT(vh4TI4{EtCQR`dn7cFUY^AG&L>mo z$k!%lNo%VH7)DuP86p;J!+Laxd@?+Y(URICsJg&65!`ZWa|+(L>!blB)0`%Kyg-~G zi=;r-{~<99e9UHJGBsE0Nd{oCxj_Nnj0*Yg1iUZy6${MUHDGQeP0EY1pi;wzB*%$$ zos9%xo;(FX)_PG)1}%V5_Axn7Al~%zvYf7==odCPSyz@*QP&MJ-7H<}leKy4@8A#4 zhE_hFxfELd=|X=O*tGqtT34kC;#rcjpt}ycLj>Ty)yER^s|RyJ%a4pe>5P*HLrQff zTIg1hrno7%lA+HLzo8At{yArO=}>5gTE=R`ZA|(gMUNH;A}~;mLOgkFHUSmrwKx!q z;p!P_01`@^@d0wUREHJc%%a%0$34|Jh5jhM*?qSa=&orVp0{NY8ojLR>Dp~M)5^yY z-|I&$)}*MiW&_tN=oh4+E=bl#hr%|npI8>Ukl+hF8zWu!}Ti)`Nvw4lrtsO z6nv2Q_-Roz-p`4b6)yfEvKtw7d!aj%YkFb$mD#Q5U%f)|lD}!oEjEJ$1?n0HCM&k$X(N`<@teg3#mvDa6eJFmQy93Raz_P38T5tquTH~C$5p&mJzjUD@2|5K8Dp#V<_+bj!I$AV?j zzGh1JDeQJ-NQ$z4(Nxp3W@iv59fD`NzK2Bk%Wa_Ftra`W^oUH%jpf|CI4YO1^^NMc zfbqI%kHswgT}!`^x`w&qVuyIPamG$Y66(6V#2jc+94pKLs}ThTRhFD`@Ah&KYCfvV zTfdhQDiAq5*KQn%|9PouwYUP%WdO>+~C`r9>DtM{Ye?4n!a+Z8N% z4Tr>Q+j*Y_t`|H0sAT!xV8j74<6hS(Z3D*y{Qx&-e5M~3jhnjcgxAQ8^4mhF*f<5^ zvkut{Hb|?bLX7{55Pm##W6cg_b2doAlQIy+cTG;as1_t4)k3y`P9ox&(*cMO9Dz-m zcZE?eDZzqjdaT|4rFs5EHVJQe{@BCtHz4@~aqoI@i4Rl14@r}{G8>ch5k6f-2cf?{&IjY_MXe(~(uxjmVl#_k2J+N%`l({H!i8h>C!mtOU2x zZ*$gn-2g;7Rt+}J$E6ZcQ%Z2kBPMaUKRS~bk_0{kfi;EJ`z{YelT(t1c3vsCv!)-B z&j*zN(5F``Sg-o3=Ltht(xc$H%`e!N_qAr_HD=*TF4Ax%T~6+OeC)G7xOsDgjFfLA z3*SZLT7L9MFwIEa)D2(J168w8o{6V2g>*^)p;>n4I-Ou*W(WNc&pqr`HzP9YKAs?- zft94Zu}LLHRw_y1M+tt*;E}s(MLkM&+4M;^#Vrr}*R&T4gt^EdB3z03kD_$pt1KBP z0P=R5<4se}pXR@ED!IcrEVvkKdv_{rdRrC(U6s=CGZ*Zl@-Ybn(yhE5X&AJlr2QDL z*#Ub9_ElscFX5D6cdbr4#-J9|M`>685`VAyc*j}&J5ekP!sUc4#XHdxj&ho2?r7K0 zQ7ExJmzw#eACaMt6<4r0mrK|Q^ffYmnpQ9edda|&n8}7r+QTv=4DBKXC=GUsnTi`J z&*^v#UFh~nG_o>Rg{v9^Bhm40Md^0{LfY%x3?0AlhsMYcNaXRGIq;JAY%uydDTq1> z6;IM0o0bP^@5ivnnY6Ylhs!3OCu8>guO9xea0z+;v3SM%}ILb07+Ela66 z!Y5%OY5Dk~5t3NDFSrO+^Sv)=6Bk^{crE>6TlAtYPj|UOL=J(j$Fdlmd;R;x+L{vAx2gY8L?b6bdti z&3>WznjS)9Iie%#E+RUT8@6TsT(B;Zz|b7L9?Y>!p7WUNMGjnsM%`6XD%bXH8$N%V zWcd?kSI^b@vtM0${7)qWHkuhwb|dZHx6cDU?Ch~_j2b!eeadF?8ZxUqFh-ey{UheJ ziw97mLPnDC!!ENGOsWC~(qDlde@Nyg%^l*wQ4`yl>!WefS;YY292^=CC16e}6jn7f zP8;kG!QY3`49pGEvnLi7nkXj!COoho)ApL5E3~N>d~ey{{!I2|9Wa$Jm9=fp!UT*1 zq?;_@sB5L<2DOu?(v~UFe=HXWQ=oKu-bLG^{X;S=*D)xWxzTajJRYtqeINxcjb2|ss=XZc*LjK9w{}NQBu*fbO>2f5BNoWvgV_WJl=F*c zUxsFc%1C4U>tg5MFi8E@=G#a6K9t>#ySHYl-8c_^0oJn^U7Jo^$X%ck`jydVrBO`o z+OpM}pWNG`le9TzAQ zIXzPo%8J@ctgaV4@)Q?AQkF1F{K>lG#)hhWmu3PQ(H8VtwK*3dlfrLR{s;?swOz5guE+cv5 zbdtvA#GcEDbGcMy4!1eSp36o7@Lur^BErvIKksM!JRc0UexyCb7{cnm6o~psg)ZWd zQPEi>DSev$NpYfOv7T;ccl-?6koVKtS_t67v&nI#NzV-!us1Zf)ltQnF2vtHrofFP^9cGk)a?a=>HjsfS36#7o7 z#S53Ke;#Q$8CCrlM_>J^pWyEgkQz4t7w*HDdm*ClS$eFT`O>Lz6Rr#I5Xy82 zerL|-tR0jxl78!a0xt}~1*^Iv_9Q`MgQ`hk`V5!qnieaD zjh@LhS!29u{XcLMXvoM{M){myXI|72Nod2^B1(V2*u}L%e&P7F*P}VbFUTzF4E$6- zV>pyHua?j^U&U#4udhi>%Ccct##?m`sPE6x?{pl$8uad8ETn)@^2^l3nGx7lAW$zr z>l{G=%flGPwDNP&O;z(GrQty`LW)Wmcp2eoo0m|jtL3Aya{SQA8VD2;*w93%zZX)- z!9I0AMTjZwW0i#4P-O8LAh@Tb6zX+!<1$c!gVZM(&Z1$`#r`CGqm^x)Jt}Ew)SJHB zxM)vZN$>{0+`}xX8Xt<JI)suRi#v zWx*dkP=JIf0xl;#Y{h-{@~iSLvGLuaQ>Amm1MP@rZ}}ItxY{%nRxx1SKn|JJ0h{M`ch~lFeW=0my{<^wy>k|z0_c* ziY^W*SKA(wtWd8Z35VWad}3Qss!@wDqx6*snV(-NFx(8-onwHE2ujieK;{(E4fMaU z8++=GlQ{HT@^{eaCkv&O`Xamo_Bv~MfrX?9OK1!3Hf{Qs-)DnYg{O#0zu4lA+hvuN z>!=v4>bhKFnp^hb;x?4U8oCvkk#lNgTwK-ua*s!i_(2~wgYB4L^}Yg}z?+t=}glO&%dIb_S-?wGQMO;?#2 zCt9Ml8C!5pfojDB74KsTBk@TFocT}dDtR^Eo^ERMdI>ghbmw2!J;s|$o~k1w)Hidq zo&P$FXk%$Q4;H=A_qs8lv~C%b=3UN7tG9!=yA|pG^R+ zOfz!+?t0!}^`9gj^xjV_F6dBoYFaQz5>26&IIo@Zyd;{Fds#x&<#4=<-MPQ!ekyTI zgb9p`E-ZhYnYLe9)bXQ>rGoz$^3h&1hN{kg)J7^sh?;rzQa6l;N?@5k(#7|=p6NDp zI$%1Ej75mWw8(#y6d3%oh9x_jo$AOSIYSmcAv-;YGiICsJDa*>f8&X@cX!A5y z>cAj(YiOvuY=4DZJWkcSdQ?*cHoT2CS*mRfa8N`_2$^H8#_#Kn%vz#|J`E;#$w)J4 zmK$T7+ag;2n&uUc$n6_WwAkTQPSt5dtplzDO~0Z{`m1URqCCj%&LHcRf zUu_+()k7tL)6IMli(z_!(~7$-K0C4n9;y1@(c)trOX=U!ooyM;?EGhzVtfuTBu$X8q> zQ{!j~_+xF8{m~>c(0xOO3i|f@&t#OBz~3~ja|bM&R?9WCw2eNHtLx7e<_hY`KZ~cp z#JMj0J|mCRL9>-SA<9auD$;8$1_vrI>LH~HvXbn@3x@O0^dZR>Ws=ZP4{;cmeu$*D z>&k9ExpJ5~CFCV@*E2Tej^PfsZ{71v2viEXvel_X9@}JT%YBe6?aJv2SVDc8`C>Vmcw0-?|&@D%Uh#4F}2t0J+!4BX^2L8}(*VW$mApswPZ zJt$M4NmLRcgV_HbOioS;eh@GBmYmGUL^<16-k7d;SoUY(&$SYDrnjG`cJW7MZgcde z<>YCmV7oDp@Z%`gR&KwD8q){%bH_|G0iCNXGuO2d!hTA+4Y3|FQxH>*CZ>&jYf<3Y zbYQ6QgE1nN1U~ZX&(`hAWwe;SST1eOS#-YsajX1nwCCf034$36cw7(PxNFZ4bfNnp zuL;{VS4@kjQF9QblEuv-YW6NNRXL1LD1WZL8v^C-OEQVFn>T&Be|eWVNo9YXhAm-7 zw1vy=rk_&&4@~JTF0M|;xz%d%y1)c? zedXB-uZAY4W2xQcZSis=RIMIRDdv~Gf-2}1h+DTrh{Nxh@=E~79fv* zZuiH-OBowgKpcb89}QdQaE;UfJ8{7y2o>yyI&l-)J-j?3OJ%3#FPsFkleWh)IexF?DAd&HF)Z(v zr`rCs-ogFhG&n%BmXm54x-cCN765xh+M)Ko(DtfAsi!_r@ z!PQ-OQZ0>%0l# z@KGK|ENdQk-B+R%KFSbQk8BdkD(lJGUE7tj9aK0<4EI`_KKGk3UTFZI=vuKt50N0v zbjDZj4ffj*;*I_A-78ebAA0e{oX6^y6qI#ywAp8LFeg?;;7l!z`)2edOd2M?#Rutd)G_(9Y zT4>vZG&1;|k&NbvyJI>qeo)`i+B5CP4j3S4$3CsCPpPqq+N9-eYbP3B1yPu!f{^fA zFpm}9m*QqFT{NDlHilnOlFmrL;l9v*NIfD>>A1N87bLB(r)ZcV3SdY&;1-DujZXW& zcj2#0q@Ni$Xa5r`jnM~>Q+TsV=G-d6jPx-;)n3BiU}TPl1qp*TxLn)|?FsRZZ!R5I zVqW+vG?YvxO}&lxKDqPvr)(_>%@&76RW0~=Rl|kq)V5G4jeygYRgFqhMIsqjJ#+SXxatlyjFJ*Y`>BZ&+ob|qaB{q zc%&E)+mOW?AWzyRq@TT2;kz2H(fm4l_f9|<3LC*%Mc8{Ln{rZr!sH0 zb3hXV;-DRmB~MvcL<@Oglw!CKD+Tl`+n#qBOX;e*HgD}db;2pydXy!#12tfHQx(6> z_x0rYDAb^T20(jbeE;G{>EJ(W#1HL|yCP^$>rpiw$z+5D(A1j~l)C_MJmvHW{{O`Z2dv|Zjqq8Wbzhu` zx!cfS`_dVH)KSL03>~b$#Hr$j(WXS{8V79~C)0w<)rvJupRag~bza{(lNl@;wQiRX z*oirs?xErFO!6gLaFAn1x#%K-Oy(S5E7SRh8U69`jpXIV8C&k~+0Xm>2_KV{WfD6j z3CahnP+$PZA~}f%7~|uja7TF-!>2nam>8aEIREXSl0CO(G+LFHL0c0mHD`d_oehx= zw>8$2l8OxyC2# z^XtaPW||38FYO+Zkw@}!)jXG2t+uU;S5+4|fDrMh*k{Yl))zsG)KD~$hYaMo1962` zmh!`wL&wr1=loAPc;i8hQ4bWjuGZj1zCsrFdlKZ8E=twq+Lk{RE{aUTm%bR2&^>sV zm-YJUmF#s5gYl|XmYJ$!(0#&fa3#^59F|UBR3wGU)-G@j@hqPEhhKZVq2rifez9B= z4g~9|%F>S7u9o9FRgRRvO67{B|B|!wVBFD?(2B-+1POJuPn>Ge5?DnPYtlEY?b87N@ubM&V=hfWo zj`|Ka1TRp9p76PC`@$oraWFd4dv%i?s2F*i;{7*?R0Odu5YFV?pp1&SEOxNwioV@; z|J%k5@`=$zShxG6HL48Z6(VH-1#6t*X-i8IVTT#RX`=GK{{ z#H!ZY@mgIvJj>pGQXZ88!VL@aHKAjR=r*x83cO@O9-Xv;EZez5hQ4oQY{~;1;`?_M zU;v?1#MnSh8WRpAwVLWsRM@&ezgf~WMx|bnhp1FRkDUEKO`uWpNR%srhuas3`PMLw!cD4$+ExM$Bm`?=I z2^vyI#VQOyojrdI$W|#bg^1q6_{p@b)Aw<)QP0maEZ?j4la(5No0)8wL_foHZCQu` z^PnR#+)s3vvHCn7aw7n&34se48S%NC&n~q5%$EPa;URc)0?j%cvoiDY#1ykJ$L*%! zUR#PBzausMr)-gCnSTqtNMMN1lQQISaBcb$;Dn1yuHov54GQw|1|hPFs|%RI)u9h~ zvRqwL;3B}O?kIbL_7HxdQj~_&rNbv(-#fLjnGD*jR6I1E4;W{~Un8vOG{Clq={J}a z1w!dvQl9_&G>;9)dK-nhq27EJ=DE4OKV^{eLC79QAOp-s3sjykc-XRt3UaKQ`-4eK zTj*A!03OUSoT2&PY6m@e{LKeK|5=@AXrbsFlGfRsb!=(_4`(DZ>V{vCJA^>H zq$&%w%C<0^(~&IPS@To&;UT}W9IyKS0R-{$voOvbeLg@6een{+KAaNNV#&C=M|j9D z0lj=m>caZd^>8u^^}@4EOfU01(bnW#2TG}lDC3R#S+vzj!YhfDYbjy>5fgUZW8CcC zchU4QdXW~0OqXXqd-sXG%CqYlSXrCb7t)xtIB(+4UcGijf&Y9QOi29z!xQ}Y;@v#AD4Rs%n8_XuL9Zork|aF6=Pvi~RAeGM!IV@9AYjpsId zwoU4Z96M0xVwZm1Gu2dcUp60#1So^Kmnuj+SPVY3a5Y&{2=Rn=Nvh9Z@*T^Womqj- zn@stTR)NP-JG5CKKva}d9iMlv0)Ijng`?`&T4sFGrE&~PEc4D;CBafG>?Jhu z!QD9-J@ao%(RHuDw&i%vuCDAP^4i_PS~$n5I^cK4-Jek>5-ICiec(M5Pj*$1TtdFj zo?l)ZjUe>x7-9_Ue^h-MY)mqbWpN^;O$)n$V4{@QuMxOlZgho^?eJ1!FR~+?lYx1~ z%TQJa{ikIp4B}mMZ&v4C-3|SlILNa~{$%sDehv+Z*3Y1-;d!O~(B=MnX0FUEe%hu+ z#*2(49sSXIks6JIt&FM8b#PYb7T!5a8i9yfQz|OLDt`5*=UtCn6I&R;Jz#`WwBQpI zv1D%*d3oUCO-u~8P=2oNO^G^^@?qhodm9r@h)Fxm-U_Qc5&KT~3mjd6wBXw5d%>5# z$wY@y|6FhzJ~+#Rp?sd8%8-xF%lzr;HK5y5eViU5IU&UA zC@2KRien|Cf_Ot-gDe}UO|-_L=05cft>uh%BjfCz8g38~*OX`cydc*>qwB4}#TQkc zzLjBJ@ZwP!n<_ZWOfpgzepmHd5oa}*gckBpGON*(_7utZXo2|1ffoF)|7%ZeAeNn! zJcYGOQ@xJRd``Gio-AB-rdC5iOFIQl2tkT;TG{BnsTwH|nTvlkH@l^`DMn%yRRPJT z20QRO^tZUlqY?SVOVjqcAMLZoWLVZrZBAhXa%FqLBCxoKbsVaeW96il1DC}zebWoz zA!VtwyXU0Xgdn^yAc3h^9W3suGne1Ws$h|oSzS+pP6nIMQI#Jg^yC$(vVp8q{%C{93sKg`;s zC@vObn6Y>BXByk89>zhiZFWvx919w2rSNF}fK>H?f(jMZM;f@ELm`1S>e1da?F9wn z4nyjrH~1cE@Zmj;_m>jtLv7_nS^7_dRv+>*-94|+KbB6ztr?=$_+ZyT4pyC#iUSFC z1oJ$4LqPR9DZ9J6eKNZ1CY0wp!>2a%2>A&e-?ewk!Zd*M}w zjjB70!lI#iW9JGMwp-Q&$ijls`7)|>%hNl}V~zmnMa*Du0`*pzb2IYDU1s9zbc~`T zEr57wHT$8q=gI)b)o0LZCO@FKe)NgYDdzI+68&PXk^1t9i`Vjexw?6^-Xvzl%x&7p z$Y^z_ysB=|Vrk{FdE5H?j{aL;_Uj};S)p#3&g!Rj~~*U|b^XU#|>O01PV=PcN{{PRTb{-2V*Gl{Fmw z7YbUPM1NLYDY`IeVU&rcG2AYaNUI#irMhG z#?4wh_^N;jV?m=&-qmuXJCLN?;q2v8-=|LPSCjj?&rYmW=Q$mQRrk*X*~C@L{x6U3 z_w8%_KO$J7Nas^q_T#jyHe1~93&mekc``vNR^Ji51u@)2|wB$znaD9g+<04i~$&L!Tp zZGBy~*{Nv0?+c?r(X4_~fBO4vd`aD-uM`*omlK7(XZ!BXe!bhLdp!N!55aTi;VaI2 zB8zL8_dadfek$Z*#G!l0x^C*I(yc$p!1tJ!3xQ8D^)s}*&dC%c?>i6W_>HTib?!bn zatXmojXz=VqackWN-2r90b5TTV-?oeIB>3`8hZ$3$L@wylOi?|#f0hJ%>y(OsOF^p ztW5bFm>p0=STv*0EC?78nVUGUt;pAux;^RMgLby8DsA|IOe`;{9tYjq`PrLTBwc## zkvrQj7ZmRk`5V9-FhtaZhr_%dv2~lp@O`=7%!F>2b=&R=ysvkE20k{atY?dU_BZJHWr5GIJ*b{m$Z-4uuaCsPGU zEK&u3a!)psU61c$7vYawj+<7Lt7*$wyyQi4hD}{?nSrvCXS;)M%kPuL^?5z`!@;H1 zxyW|hO&#;bNVNbPO)2Rg;*30~cqO>5P`w~5l>#yPNX!BhCUKrLKJLXR z1NOv>pHkzp&8;S*mNYeZ)EC2Q@zouj7SwL5hHamDoQD2Tx+DS}yxi_r5UAM?wQ;6q zq?j~sK0!ppoYX12XFJzF{E_9HMs>V?cju}sZ3DS(kh#FBmBLX~$$}n8%Z^C->CPd# zW&^h5S(s;(4ZJ<&+^I&I~_rsBBRwBb4352{MM!k@b93d)_W!FncucI9S?|EIkAbRX_#i! za;I6RXYuxrG~(XKwiLhrA%&6AQgw#*z&ED1!s(jEG<0kz&JPTyjQ;)4Av@+69LjT$ z&i?U!mbgc2-UaczGp($*`2AsBk$AoUA1?-oGW)f{JIy|}ut1{GVj3;XIBCcj_Q_A4 zb(?s@J(3F6^;4x>@u!ku>YarkUKh2uuZtl4xA3GY{D`djPWeyqz#&tW|K#muX z-0qz1sx~6>P-=*}ZIg4dgg;&8a-z#Rx~BHBmqHl}D5`s3{qSt6$* zp&7zdBdK5K9V+WP7o#sdXVcHAvdU;8#h9w9!i%4uA5~2pXziFNK8DqhM*b#K^hFm8 z==#Zo5~D&t6+I1^yT}gNt+|yF6>Z1hR#w(Ri-y~i#DPi5$~H|*Fkjgmr1E23BnJLs zJW-wB`4EV&=5FedsyvGXUZNj^F^aRz!OTLq$Ta03)^dMYOIr2Lln+He5cs(iGbLRhpk5mao?06(%pmit!p^JDFs zky%(0?rKQj+TMOEP)>ftC(0HU-Mn2dZ@5rRb575hFN?>`e3C0{0e zJ9p)HT8(%v<@v7{u>brmLwnk(*=>{MDRZ-J?3Vc-Z%hu^tTGpE0g04BPLZo16%u>o z)EP<$hOsQP90ie;Qib`MYZDC>$;u?$HEd%=Odl6wA_Lk#PB78X`}Y)Mlaq}ZHeHxX zGb?`(D=RCV4@UGbteXo>45-DW@X_n>e69s6pi{1o2~P~&e1SXYh+<9mV^jA=o0B9U zcI@=QDCF(fEHVdbo<<+iPFc$ds0XIr&UU5z{;f!| zBbezwYf+O<>7-gwR`4EsdZgVo?X)^w=<-JqH3nqRj^Ry5Dr9TW41dk-2@=POP7sii z0x$1LS<=xedws+KwJLP`sB=OR+QVaynze9lWC=(Rt^SBX|6 zxRI%xv^Som=aVa^(Kr?S5+aAF_(u1~GK9pB=X_81V#?bO3_lqjrbsNTmqMw0(Q)A_ zjW9gIns`I%-YB6y=d88otHiGR+Ci*PrX~j z;q0g8#k@l=B_Y{ZZeF`}cyJ84K1Yc_G| z>4T>c!EM_D7bo4jm{U7$ikHw7-arhE#>Jxg@p-a#$z}8hnpR2Y&@@3fagNE8PQ{IAQc?p?dbgm6BZ}u}@H#dhB@Agzfu(*PhY-#Im zEin!X&A(WrEaYfT%P&Yf0$Ookn5Cq|0!jk>J~B559Lqai^*-Mh`(MrIrbyhX#u1vn ze1qDp-H4oWa7E3tVhuP9=~UWCe#GNaUjUF?Qt1FZOdO5&6~0EC{z%Ly2AB5tz@bwq zi~A_@N*@oo)KnQaB~h5SqH&@s35#sX&2aFR)??)EaQyP^yt+B(^TOmQF2-{J{3eR! ztE`Mlckq^apjG0Ihwi{)Fsde5Qz_~ zbk_n)avIMYUywjPDX)yNFdee*Yde>opi1T!k~5c2h*tBc|N8=za+CrsXs);4`#Lc% zt67~wXVmJR2Exdp#Eul0ALT!?TJ54Px!!Sj>|<|>3B6gh$Ttft3oFaX`QG;~%!)nM zeZnYzELM9PZGT?5&{Eq(YdOyAsGlWvEVJnmKg&mUCH2JYb*=+VP>_3xgJkej_n=MW zuvB?aO_t7Gh&2}GA5&#OhZC)VC))3nR9iLwfOuE@0HR&2tD^D>9bP2-wWIgTk|cVr z)j!Hf&DMiG-Z?IBluyHAZE{?DLYEA6ymp8eqe|$bENLEKKkQNy<__aGVulucG}O%Q z)}GJM32&#)>(hbQ&XjjKdrG^5MkR&YDvFfZR&aJ`@X@^f=HJ(!X#_!m0y2UTyjm6 zh5CFQKRs4^O%}%BtGfWU;|0E+eZH5iJ0H>BhkZWymX}!{GMwVSY zJh(FBI*SY7bKv9)bZHcf1IWY z@~TVbNyy+PV>?%w#;G^c(cAmC^XPL%jwh{?fcOKFUTbR%dfIG2pD`Gxk`Y5V{Sr-~GXcP=k1g&@x19WWs4QTXUSp=QJd*!EklmyJ^IE443@0 z7a;v}^H!NUX4=-;#O79hAxnY(*3r+^51zF%Yq~glR<&2o=J_m;T`lJOG<)ww@X=-4 zaxKvExOB4ar4lY1Pu*GosAefN8I7ZP-1I_TydLY+u(O|U{4ieYuzAgc#;fh28Hdp` z?Y>ITfa0vFxmH`;1FJUV^V zSkNJaXF9^`JVUvLRXp6rAbSNx@9V8WaOS3;B)xuq*P0MSN^L-Ok zR*g$!tw1AZD7$8(2yJqR#q|XfeW(c(fjuKNOHroMwp&79?^mywg@nx719-&cSo0?( zDuh=)WIOFB2_w~(v5seg(a~hR7J|?8FUz*|uD3;>TA%l3AL2zwecZpEfMJr8s(H>r zynLa&_0g>MA!W_yV^)jD$z&nlf;t+V-{71LKQ^1_o6v%S%j{1Db?zd45+$dNdbCxG z<6x>eZIqzonM5V2nKDush?WTo*n;}nvhd8|mKLhB>Mb$5mlUbf^rFhdk-FlO(cFL6 z4luUuX*)e$+d$TzJZtB99OLPXzNh5Zo69GbEGZn%6Ap;|GPyxwdrl0QdHyN^kBSL1 zy=P%UTb5oQGbzKDaoqW_%AI$5h@Zs)jNGdPWW}$!yMi)qw{=j5V!lPtf81k&j z7ZLnG%u6z=5y75!IDV|Yl(@j;k0;%71HjT8qP|(OH>a)nOV{1XEeR^c@0fLTjWNOjZo5a<0%wrN)@;3{0cKYdk}*L{R;w=g<9 z+E$y@9-NLIdH_W1xKo$zJo&c;5%d8nI9Xg=nt8bjZR4b@&G3qh^73Vd7{98;s&Itm z>>D)=58JjdM+9{HBV{1}aV>jTz!Nx5`i(^6oHXa!+nzr4)@QyF&XyVNBTLEC7)?ZA zpo*qPp_cb%Qj@2h-{CRI8X`&UTtQ^Yy}uRwWz`ckmBv%lLkH1#y7quD$)KJFfr?U~ zFmbC;U8+K$L4~}Icwf6NAa+N$#pROr(b@1^VQF?n_aB%SoNWS^nq_CKN1Og(U+t#1 zncx>{ArzKG6cIsKZ%g(M*Z#L+gGzRD!Z6mw>i6`PThFPM^6Qrrh17pM2A(?%q~b;V4h4cCqDJJIsNw&Z-#&zFCoij5pC-nkr+I3d4)qdv7}!D4cci2 zY&d#u&&#nlWu+pF4&`Xu6#sYZV|@C$#6(e7#Q@eAY~{rXZ+6NWi8We+#OLr_kn{TY zR|~Bs^ZY*m@|x|cLMM+k*$LMMSKF6bFut7PKxrP)Aiw|JS7Qmk1I@)F?&tC+t=lM8 zDLsAtnZY|PCFv5W?o1$h*oSlH-p(;L;-NXH*N(jDMY(yv8w@}PD2^Sg`HV;CI58h2Sm0hQak z``0JGn95xLv`xcw`sZ%5mOibkO3c-+BO!U5f{?c3!rahgy3zW0e?|)%3!`VBjV+gJ z_$R+-O%rULEi2iNQ@i#14IP@;hZ->Fo3PbZw1h;xf6(G+3Gsg3X?xBC3AZ`07y#cu z6z@XMH6FM5=KgDP_AMDgTv`om3#}zpEw?|`MfMiK^kwapVZ6HuyJ6uCr%d&iYb-8n z8^W+wYnf`Sw8U#f{bXFiZt=MF&WrL@Ado?pvkqoFW6o`)!?yT+~1+_ z&W);E)>Gmj0u}K)Bf1*3_K0Sae`Kai(z_18MO5`h8H~8AwPJBqOyR0%tr#D)l#?1) z>SOQ&q3mb;^R&|12?mpChYW9r0+W0pNm5=^s`si70l?FlX}Y4j>x>)p(qNm-U7DuN zTdk=(ZlPg}!dqC3Zdr^a#ba8^qnVfn8l>{McD1!lSHb0%rzYCFnSW6nnyp;#gx@z( zcnz;TmRX$FX{jqq087z$ly#r)(Q042pH1JZA-hj!wYn*UEYLyt;Pcif)`TyWC%`yD zH|p@o4VUowX~KM!I^=$if{q>)lvB;o$z(nGs}Q4g@`gT)s7Z0Rw}#lHYke%^6h-4h zd#RF-j&-Eu0^AsMNCG*Bgcf<#G3foExF>Rw;lD*N`=e~6fnc&z?brYtkg-OKw*?n$>}7ys_CY&rzLCD|8zU6$_N>?@os%xd-Y>7QYYf0Pbi4_-uR2U> z&#NmVv60du;kyeu*(dHBNX$iTH6oiN0GW&H9;h9ia=O$3v4I*GSA%EMi{=7L!`=rKH*~mK>mG=!Qt{Kh`huN zi@G+D1ju@MHy+^qbR7J2=46<{X4GhZ)fh1$)Xq?m_GuzC4-+30C8Z;pXLM<>m#B=2 z!!3YCUD%KhbGGn#T-UwGsKxA(Zr3WNM+5nlwAA8oS8g!sE*hVl4I^{?i)4CfQO&8V zGHvEf0JkoG)FrArmz)%9)a5`7n0<)DqhfV*#Z~LeMB_I|$J@@F*KZ~W-?|Z0bw?D( z19ERGnKfwpouw&3%7R_QCs2Uq`PENAL|L z>{!f)skmF`8Z{M2XE&Cs0x0(wjK5P!_}RSgrOR_gw#}R}<#gtC5%?Y&4kxp%OJljp zs0*+uQbS7;2@~5GL zRvWl=YP9Muf?n*duOzr?5FF4PWr~tdE1M_#IS=@4q)ee}u5X44>3|=HvZE}{qcx6p z_W6l(wcKa2-P6QHUB;lE3 zQtBlq#Q}*4@A>~-?G?aA3B20}fr)(9HF9*h?RRJ`bCmvcDaylyo8D^>e8}#JW$&b( zN<0>>9-fbtlpKhJ)N$_}d$Rh038)d%ro4Xj|2fYWf7NQW&znrm<~2U6*FpOg3FPG$ z>blCzV5!wsy=U>$yzAs-rIh8X%TXTWsj5|fdQfdQrTs4 zxziB9z=_2o($Wz;cQf8Ap6yyQitu4Y_uri;W!^#=_E6|4&X)%8xCxn=Kjvne7Nwq4 z!^kX3DN)Jbw8MYh5_V}o)daqq%`@gN9Z|UeGcG7t@8Y(GS>u^O9v0-b=1?#U-ED9% z3SdKhC#i5a8%O1ewo>|JQ_;b{Z#;@_3jiO8;cZZgiWqSZe_mCWQ7Z!07=N$YuN8b< z94!)y&-%#x2Wnmu~6wxmzxL8_Wjx9Z;PUl|FA1rm+fx2a~$6-cM zl^xBsWl4hfy_OC0Ca!$C(D@Y)H+xB|5zgCmD z#V}L9czg75v+@ez`CQSnu)bmGln-KzB=4fZ=@HVDfTaA3*gU5y@z**^Y_97k(K8?J zb&4+%Tia9yA?tphEcl6v!mtl)R5DDf(s6e|3Q&hJU5--5a{NFM(Uf$QEvLUObS__- zQbqx1wrDvgdhWMsW2A1AXXCmQVqC?NlBKi55hd8Au2xKc=dz?T2DhOID&8OEXIflD z3p+VAeJLyqKi||?B`@Z;Zb*E=xCt;teIWJ})5ZBhxsrqn$~YT*Px=wAC>qJ}H?L6w z5(DaNkrcG+CBnxiq7P!=NxW}EZ?2OyR5T2wNYYwC!D>d~xYSL54qkvNZ_mK(-(kq zsuAhf74M<{F`*yv800adVTjJ}mG`ui0Z`91O7hDyX0p8YJrd!0ll*zXyGLn%HMO%) zSPtgceHr8AF~Fbrtvf zsv&hX7ZC67-!#Z-lqqYrKqDO*=CUgh-LGl5-naBO#=;3R466cS_gNeX>iL+Maz~oh zI-h5v;%PGMTtTpXO1fU(dR5|W)rOUcI)(33L;8>1SAm_kg~!qT$I6^I*wA&4Y_3Zq zg-_4-+dMi5Vqfi~AAFu(Mz)hV8HU$B$Ba3neh^p#vstoZM}pst32zaE$4e69cSd%v zNo8xdR{^A|lwXn3Gl5|^Cr2&54h3{Y&MjZ+;%LTNsWU7*|-S7 z?3#G{?O#ga#uL5K>}=$dykEC2az@#wzdK$+o-QOZ;`%y&&n&vsco-r1 zPzQubk~#Xbn3F|GnWe;kG&6QGO$s{T2~<563O_x_c3G_By`o-p;Z7kbvTCs}jWlE` zmMt;aacLX*e6PCvlVp61v_o{kuUg%(Y%<8H2F<_9!*4Xo4r1B!sq`k+(4lKO#v7J8 zw4q4ti$9dh>v*^R(*1c#x{3dp1Jc;rJ4TrNF6^brIt?2l3=qE@W+8k`6%RcK?~`V( zEQCxVQ^`r@AL?hbd28#9%<5EU*A}S(DixJB5;(}_(-I3swGx`tjULpp8a{aJT`}MD z1H}6i+t>UVrBo^>D*PiGBQx?K&<;kR{HG1y30)A~E5d`Ly3v<+IZqcpUOgRuTS$7G zckvB*t)N`zNM&FlVZKJKtm!&+bk_9|zU)JA{i>xwB4VKO$&9*)O}OVDJDVlQRpO8l45ZmW?H=NBr=(2U=?rdzBQR zw{k53a_Y5GfN$Xo3Q}hGlS)(n4z)B&W#!#+SM=Btb*)UPS5X+N=_gP$;kFycx-bw1 zNah$ehZFn$NCtx`yN6C@lh%tHD9nvm<>lxk2;1n!uG!-++0NueX66+O@OGU>bnhpg zw+IvhHs!GcP=i*3u1A>Wn*)X@Et z^OMOHH~;d*eraX#JdNN#t$u#nB!H^VK2>X`S$uyiI-%{V5u2dh4SXJ)EO&oBhWzOG z*at{2Pl1+{qc0kDsrO6Ln?C&SD*L1pF5vTN9aTk^iDd-o@3tZe&ETBO?l|MW+WfLU zJv)44uz}OW*xy!|zuED46~WjSxsZfA>G{oy1m~Q~wz=|>b3_#ie@l$Z{*tKd3;iZ&Jw_t}1Vy6(GD?1cY7Dt0*J{fur={I9LH~vqIjHMD*eY8zw4AgWI4{tirCWB;Jry7HuiW}?y08UM`Z=3y{T#W z{Z(mF*%+2-`ztdJ*WiB_m*iEmJAYm*9JDJxW3b%Np~fupftYMelXP{WdISnsufibn z8MVeKGLm6Lir$}GRa4A8pa6MrwnQQ-hOoX6Jai`3R4IMftV|rqoLFw>7KMu&Jx_Aq zQ2zmi&>V`#my=zPIfZdr=&h=Q19p8>lOyl8RC?di94za5-n%G;oXoEQ1TxO9+WTrK zvWdl31icGX)Q=`n{Dw~1FGS14u)ppscEv(%3R77L`}%UTo|rD(`w;IR$6Hp=$EJ#f zsOKJ5L@ixzTxsh4P69Nm`7c#wwx>NpbkevgLYfEL-M5jrTymG1>iW;0E5p@9n=YmA zn#(`&mfyes0^&sep-V~1tH2h9bj_f(2zpfZIiVmH&bGG;Av0LBoUmjj+9gObxsnH8 zmIi*8-c#)}iG^%*5w|n3A&3P2Gx2x@{oHbd#w;#`e-ZwCI=cRc1rt@Jh94K(b~CIU zHA#_q&KXhia4w#tHgvfsu!#cPIeGhvm(gOG?UL4XMV?#7Inz8-?r_iOz9UJCi)&y3 z*9lK!g3oG$dUK_L_Wa@ucClbBbq8n{LuHcrY0Dm0or}D;x9zbOBWjy!ZOuz7V=m38 zF3C9{!ab$NO0e|Lh3{=GP!6UgHjVGzHKW-c4+KS6(xVKk)~!z2UZ3O3af>0j|CwmZ z{}kS&Idt4E4`FZjD5u)w)gqxrZDn!Vl#V36zXG zhTMr22|YD&b|fzan4DbA-Iyrr1&ynQJzK{=A6p1IfAS?Ro>%<)#*@?haxJor!_dTZgO<2;LNb7wd{AWv;qI;q{vgeD&U^ z6kCf%~0+uPNBHENO~#Hm*qQ^*_d&quz4pm>kh? z+t6rmt=9i-d5_ferD)CBB4E*pp7+gV! zIkvt5vDL4r>OH%5Ma3DHtP(GJ>xNNP+Sz}400IOx;a6xVAeW3DG9tz~#=3Z#*dbMs z@y$PUTyLy4YZi``^-w6(y}I@6{B?y~J)vy%rrT}X4H>8LnhL;Iety=}E4Sf1&-Xs{ zAGFizE?gAwbx`am8ZbSI{}jr+*(Zhk>avrEw_m4BOp$9g$P6~K5JDSZgldHDZkgZw z{yng@GI{kn@hp2nj8v_389P8Qm(ZuJSBQS<8NO( zv%QqQTt|;o#zRwle}$*y){McP*K)dBQjQTrT{*S#4U8&9v}ayb%G5doQH7_CObVxL zEUS^VIRGV#SbBo##s^tv3c%O`cYRjvQeE((91>hBBu&b+x8yEpuXaSB^#)Nqj3y_? zU0hX$ewvmaUzFc@olPMEWls0@54RYEO#h3}DFiQH0+i$P{+Y{hlEx)2^r-CzhU)#y z^W$As@wyl6uFHzyGrfdwR7F>45e3Tq8{<9^Kv0LB_%RcO8lRnP`h8P~uu{zX>io7e z+_pcZOrHM=%?w7Q;Q~YiK7sAI6e}Fhv3XHfzKh)tGJoSYV)wq3l0z`+uLY7E%13wC z`%H6>d+_;0V(a|#EbN_MBd2A_3(S!A`k|U2)*~*2gzNLH+~|cP4#6}$2;DpO&NNXF zlIH()={IuHAp3ONV2oFGjUFH61LruXMg3gg&|)~eYn@3Q*3F}!BMR0Xl#-jIU~t}& z5d_t*S;XT~&=)-!Vc|oAJ5fIbRtf0|l z8pDczW`#R+)s*xpEyDtOVA&EMo#J!6_b3kyovpT7`m=r96BZR#Fa#P6Ej<&#_pKe) zu;pH_@zPVSh>~?t>571gIBtQ+r%}1&aKqn%#WBl+2NCGpD_Ja#>4$(QueYjXs5d$% zS-+mXSM$*E8`tVUC|*vF{TIpDbTNK-z1xpo4dHKKABjKu4Y%TZ8d(7X*<*2$bi0L^esF4 ztHV8sS{}iHphO|BHu#?5Q4SqenYAX^G9!f2;rmJ_dytzZraIkD0(Px{e zXf{ru#cF3}z_#cW+HyEQP~6snuoPc$bCcr*7jvB@)apo>P(u*%&p1$OKhiI=ytP*M zB$lS73aZ;ZK7v}8VJv%inSP9wIhRw>HI(@WECtS#!Nw3VVaXC|vSi=Il*)CNuh26R zMPkU~12Gx0&7nOjS^R`$BZgT;}pe+sGeVlZnuvc_s$-{%YvX2_=S|(w9SLY!^W<- zayK+otaiOk9$)xDI>#f7E32zx1toCNZgqWBW?a5CA8;H}@>5c?u75FpO0EGzCMKaE zj|w$e#;xwPQqU(Zq$TD!4;@&m9fm=?kLze39fMO-mfGtQ+?)^*8K=+)*8=M{>32KP$q5+4~n#IcB7pB4&P|?as5*V%B|oic^9zV+9jx$ zP#~iRf)qsa8y`g^pWUKZftF!^+2~S}8e+Yd0`K^Y=*Kx)~HI zF8b*ie_Q*BZYVer!9V;5K%%Nft$vu-325^V<)I2R#i6x!gXE=T zFZ6(xY@533wzd92>y)d!)I4wJ2GirfPqakJ9S}gDZB)l z^Q8p(5g+(>qehMZ-5tRQ$+Jq}IXWL8Ev|3Frj!zz)#3`y-DaX_-yq(|ut-gvv)A1p zM`6&XZxYP>ZFk!&O=jwC*5spjAA}#eknDU5>+OdKQ9>a?G&95E-Ub;;`q-Kt-L?i% zUR73WrSYu#?=NO$h^(rD0n@RJ{*-#ihD!LK*~Z@q!onHSQC3Sr|E5qpb<_r8lIe47 zES9ycEmY_WA;m(=&Pi@Yyk$uJ>xVl+5v$dN zh73)V39XudRF-ZqPp>t?3oNf4|+m^h}Zr(-^3;CI4e}b&Q(reA-N&~v0IB|npC7hag3Q3M^^~r|XZDk=BpR+gTYigfn*@F3jBQC`aP9 z^6T$Ii_th9HC;vSSyu)Y+8I{M2|wK=x{pT62*5$+6`-jNPt6yj?*Zwwb@N)X91!$X)A}zrLFUNYu)m8k2`~f zI>KqbH6C;tou7n%RI;jKj}af0TONjIkx(T{rvawt9UqS;(a;Dua?;0@AO@7aL-= zYC#s}Dy>x_%PppA$|e8&AEwSSD#}0X)sOs z7=BJy6L3?;g0M$_#0<$q#2Znt%ZvGTH$dk?f9?Z(rP4F85`=cPKdZ&<%cNz)SP5JGJ~mVvheUEay`?n&8J(izJcxB3&Kad# zWdysW)B0Ca!SCQ&pcJ|@n9%9N!)^Hw?;#(!d_z|h6g!d}V;+R^prI?aAuWP@ilz5C zu6E+`9vWPz1w73bSanPBj^zKv)+yd%!anvn$#IDs-7(8CE;jyB4kaYfB%_n_Y!$md z-FBZitIQ@e!;9y{FwN#{)oZDCuh@3JYK8uQyY$4vfl>iPPD&6@BopL?80I5lh92dQ zTzj*uAnIf^RM8wk-xMPnaB$e~q`q|IHKLyN5IpJWu8`hoR^zt^H}Gs>omgA;PhT&ry-R5Um-KL*tL785@ zOwOUd0}&1bBR}&S-n||dxjvXBEsXiTILXQVnc4aG#M8nbC>BM#tu1J7E(ILQYd7}2 z|3ljECtK^e>dh*!NZs&b&h8052sA=!IGnKvhuK(ZwklKK5z439;TU~tc&SLZJz&*0 zPvOIntmZ}^JVu7t&Eap-8b-&b2P@J#8`b9QXmLiReyEaRM|0C&BR79$W|YXLkXS^4 znHs4Sknn-th1&-uWUFJ5Fa-n@5blut4g$VAFsxNQ2R%o!#mXo+p7QzsF%6;b>i!}s z_G>_tD0|E+YO89J5Kn;53~aC3#uMnm8Kk8G+%|@k)IoeR%JvD#9}%JtiFD{rf1~)- z9uG1SET+R?`D5R8J**J@Z6x9W^yPQN0RBYmI=e(;lJj&DzVEK*bf?|3`$L8B!uG5B(J8B6q$6g!BMpAqgL@uqb=ek{b@|9Uy z<$mggOIgmm_5}WtdPZd;v#7xr&3eV%y+aqawzi`gHxFaJpQ(xMj_g_|X4igVpqqD| ztS)8$Ua9`8zI6ZJm4>ENy@0kxJNd|Ge~Tz&^$GFk6hu45 zPSFXPwUg8!iRaLB2XgxVrkoH65dTBWx)Wu5N2Hyl$vcualp{@M~maf!tn`4^xfKw5_tnVh~i}YT64Z zGDk@LrCgKQ0gLpc7W|}RiJSPNAZTnU3}RcwK@e+`U3Vbl=0z5ism(Wa0%6odq`=r$ zkM-->wDvt-db^KV`CeNMY`^mL?mF&vvsP(|xpCRp;Bhj^J|V3A`&%C458D~+iOI?P zn-VxURE+056o5;3d1e1s7e0!nVE;%+Oe6%46qC67fv>-Mo`nb>0z>qK2p4Cpg;!>0 zjZwN4^bwV<9FjQwfk>vDGDUBZ1ITR$Q&Obt-Ebs+%uTKt7xYlm=z6=b)m>aa6yJrZ z_C5MjQ%{&@n3@|MW&dPVJ7|7z@TJ$+W<~;Dx;WonOrh;_<%H5|8yUgMKAr_ST;5+e z3P?ss*@7vnu~1G?$)nzxqYBTY=5T6w6(IHS+jx#tLYUUoz;87Jw(Y7&F>HpB%{7351NpfNxnN7SP+z;t`Sh6juw3u z!m-=r(lCSM$F#|>n!;z*mULZw7w_}dS|vmlc7%QZDH!mrRo~Oq zu5s=8k|1)BhMXLSFpY*|+k!aYtmMzZOnZW7=X3K7>HF1CX#^mbK z2UYlIEZ=eN7EK!%l5On{fyv9Odv3bz28*N~6Ku4*~u--6z|u zZ$GVroocfLyH*#Ip#1tfB^?6Okj3 z1yU=H`#S!0VOhXWxnG&EAYMuH>f+R z?8rQuM9t4*Ic`h;37<;;d!<=Tmd1_NweE`~fkWN^O^tW{TCSUPDD(>xf6SOKZq)+j zYQK+Fr?}VJ2%hGz28OhRTH3%ga^&RV)*8B{S-Lu8JOv@74yAm!nwM_K% z4uis9DFX0YQ;3-qymrY8O5-)@r?#inT6Q8^jvtAB)TE~B2)J%nk?{TOJXB7-=~kVF zDV^fHM^NDr?DuTG)$u;@iO)j6%`V1L%4cIGVk94@FfP>gxTUynhKolg_0r;!j2#@B zBJDTiHC$Ta>t8G5-TMjcXA#c6Q1dv^yL?i6QQyb;)!F9iwD-XF{oLlG$j?6+MfDe% zP%KpZ)-xzkMmDL?w4kS_3|DXc4AO!YrQgDc$w=6TZd3Gy^2RMi0YzH{N{2LA^DcGu zL|k18yr1)vac1m6WRNncjT%Bkor!+A?+bibPzNxXL?t2+ zu{xe6+=9ZN%3=Msctiw0)D!S-_k@K^v7R3_Pk)F?WXd!(y)ymkcX;o@>dwu~ zGq*cpU?Kc;5C!%+2_~|$@5v+0N=5E=7S3O3_5a=JgCVf80+=1&X(2kog z_R71Cl`P?_4kf@DPOX{@ZPig!eCzT{UuJr)Z|ky~SWn;N^gxY#Sc)z)r} z`cD(|P57z;%0&AFO`Vq!(9mde5>{7>pH!#`5*1z+o?d-tpI+0ktwCsA3;{0~#_bcA zH1(>DL`lKM;vLWK_nr3Gi})v@xrb^xDi#(sL` z8Ezugmt6aN6B@Q2i0!eVn+&5Raq}hWiz0P8g_fuBsE{=;tiHZr@ndUO8Ty0kt?Juq z%;E&EhQDO0bIcM5e_MltCy3q`kf`{WSL{1ym?*MlUW|o#{)~TCRG*k)dJO z*rkTsROqhbD2G>Aqz%8GZdC+V71CODsp;YLUn$Tra)-P>2j(W}mSEjY_usU+xyP zg{KAbH6G2sW0K$5Dm+Sfo1X?hRtmW0|HvtF)? z8eEPvIJOB-NY1>H%E9o!0hXkNvPzr!2>9}Z#BF&4%JAya)))3~+d?z$R%v*M6Q2+- zfm;#Yy{+blOo)Smw7MR>NmAm4_tU`PhN0!Mv}}c?HG<|mVJCs*JJ~AKOV3yWrO!dP zBsv-h1}I#hz&g6K@ILmZ0}xQMP>}aQ@fvney6z2Fml%w=YS$?x#{Rp64m>d+jdt`I5vg2N z;3=Of>uVkYy1x~WIq=T|8b&xkYq|*{ZoFG~bmZXdC3X>m*Uun83y+z;SGs*d^)b0y ze$wB?**Vo#(f__^YTt3_^nP^BS1)r)vzWcWY5

)XXH-v;ptx*m$A>1F7VwKUR#H%~*cMEwBJB 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%0A@|=<Yy(2=5!!~NcoHw<66Y7qE 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 @r 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 literal 0 HcmV?d00001 diff --git a/images/cartoon-kitematic.png b/images/cartoon-kitematic.png new file mode 100644 index 0000000000000000000000000000000000000000..495aabae1d4cbaa01c4c9496d086eb9390cfa529 GIT binary patch literal 15922 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�MK^Q(QRHZ?n) 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 P2#2 -

+
Go Back - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
APP NAMEVERSION
{packages.name}{packages.version}
Docker{packages["docker-version"]}
Docker Machine{packages["docker-machine-version"]}
Docker Compose{packages["docker-compose-version"]}
VirtualBox{packages["virtualbox-version"]}
+

Installed Software

+
+
+ +

{packages.name}

+

{packages.version}

+
+
+ +

Docker

+

{packages["docker-version"]}

+
+
+
+
+ +

Docker Machine

+

{packages["docker-machine-version"]}

+
+
+ +

Docker Compose

+

{packages["docker-compose-version"]}

+
+
+

Third-Party Software

+
+
+

VirtualBox

+

{packages["virtualbox-version"]}

+
+
); diff --git a/styles/preferences.less b/styles/preferences.less index 189d46bf55..f41544d652 100644 --- a/styles/preferences.less +++ b/styles/preferences.less @@ -6,7 +6,7 @@ align-items: flex-start; justify-content: center; - .preferences-content { + .preferences-content, .about-content { flex: 1 auto; margin-top: 45px; padding: 50px; @@ -37,4 +37,22 @@ } } } + .about-content { + margin-top: 0px; + h2 { + font-size: 3rem; + text-align: center; + } + .row { + text-align: center; + } + h3 { + font-size: 2rem; + text-align: center; + } + p { + color: @gray-normal; + font-size: 1.5rem; + } + } } From 27dc94586b9aa4b6c7099cf0d4492a79edf142d4 Mon Sep 17 00:00:00 2001 From: TeckniX Date: Wed, 22 Jul 2015 21:32:42 -0400 Subject: [PATCH 28/70] Added highlight for VM error Signed-off-by: TeckniX --- styles/setup.less | 1 + 1 file changed, 1 insertion(+) diff --git a/styles/setup.less b/styles/setup.less index 6d29178240..321df2edab 100644 --- a/styles/setup.less +++ b/styles/setup.less @@ -197,6 +197,7 @@ border-radius: 4px; max-height: 400px; overflow: auto; + -webkit-user-select: initial; } } .setup-actions { From 298ed22c84223436376c16c2f848e66586b35c58 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 22 Jul 2015 19:04:51 -0700 Subject: [PATCH 29/70] Changing VM name to docker-dev --- src/utils/DockerMachineUtil.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/DockerMachineUtil.js b/src/utils/DockerMachineUtil.js index c307c49c7d..79d3c6d259 100644 --- a/src/utils/DockerMachineUtil.js +++ b/src/utils/DockerMachineUtil.js @@ -5,7 +5,7 @@ import fs from 'fs'; import util from './Util'; import resources from './ResourcesUtil'; -var NAME = util.isWindows () ? 'kitematic' : 'dev'; +var NAME = 'docker-vm'; var DockerMachine = { command: function () { From 47cd30fdf98b18a30c266b6f6d1c0270df47fe4f Mon Sep 17 00:00:00 2001 From: Michael Chiang Date: Thu, 23 Jul 2015 10:41:00 -0700 Subject: [PATCH 30/70] Fix grammar - Search text --- src/components/NewContainerSearch.react.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/NewContainerSearch.react.js b/src/components/NewContainerSearch.react.js index e5ad237d6c..db72833fb4 100644 --- a/src/components/NewContainerSearch.react.js +++ b/src/components/NewContainerSearch.react.js @@ -222,7 +222,7 @@ module.exports = React.createClass({
- +
From 2bf509348ffcea413f06aaa44453876cf56d8047 Mon Sep 17 00:00:00 2001 From: Michael Chiang Date: Thu, 23 Jul 2015 10:43:09 -0700 Subject: [PATCH 31/70] Text fix: Shut Down -> Shutdown Reference: http://dictionary.reference.com/browse/shutdown?s=t --- src/components/Preferences.react.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/Preferences.react.js b/src/components/Preferences.react.js index 0fcbabfb54..2326d11d7b 100644 --- a/src/components/Preferences.react.js +++ b/src/components/Preferences.react.js @@ -42,7 +42,7 @@ var Preferences = React.createClass({
VM Settings
- Shut Down Linux VM on closing Kitematic + Shutdown Linux VM on closing Kitematic
From 8445b13e9ca365a31c98cc6b48b39f6ce53bbe0d Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 24 Jul 2015 13:07:33 -0700 Subject: [PATCH 32/70] Removing install cmd feature Signed-off-by: Jeffrey Morgan --- Gruntfile.js | 26 ++------------------------ package.json | 3 +-- resources/terminal | 3 +-- src/menutemplate.js | 28 +--------------------------- 4 files changed, 5 insertions(+), 55 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index be4d85423c..34bc73e196 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -155,20 +155,10 @@ module.exports = function (grunt) { // docker binaries 'download-binary': { - docker: { - version: packagejson['docker-version'], - binary: path.join('resources', 'docker'), - download: 'curl:docker' - }, 'docker-machine': { version: packagejson['docker-machine-version'], binary: path.join('resources', 'docker-machine'), download: 'curl:docker-machine' - }, - 'docker-compose': { - version: packagejson['docker-compose-version'], - binary: path.join('resources', 'docker-compose'), - download: 'curl:docker-compose' } }, @@ -233,18 +223,10 @@ module.exports = function (grunt) { // download binaries curl: { - docker: { - src: process.platform === 'win32' ? WINDOWS_DOCKER_URL : DARWIN_DOCKER_URL, - dest: process.platform === 'win32' ? path.join('resources', 'docker.exe') : path.join('resources', 'docker') - }, 'docker-machine': { src: process.platform === 'win32' ? WINDOWS_DOCKER_MACHINE_URL : DARWIN_DOCKER_MACHINE_URL, dest: process.platform === 'win32' ? path.join('resources', 'docker-machine.exe') : path.join('resources', 'docker-machine') }, - 'docker-compose': { - src: DARWIN_COMPOSE_URL, - dest: 'resources/docker-compose' - }, 'boot2docker-iso': { src: BOOT2DOCKER_ISO_URL, dest: path.join('resources', 'boot2docker.iso') @@ -378,14 +360,10 @@ module.exports = function (grunt) { } }); - if (process.platform === 'win32') { - grunt.registerTask('default', ['download-binary:docker', 'download-binary:docker-machine', 'download-boot2docker-iso', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); - } else { - grunt.registerTask('default', ['download-binary', 'download-boot2docker-iso', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); - } + grunt.registerTask('default', ['download-binary', 'download-boot2docker-iso', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); if (process.platform === 'win32') { - grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); + grunt.registerTask('release', ['clean:release', 'download-binary', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); } else { grunt.registerTask('release', ['clean:release', 'download-binary', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'plistbuddy', 'shell:sign', 'shell:zip']); } diff --git a/package.json b/package.json index 6e93a43b22..c46f9f2ca1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.7.6", + "version": "0.8.0", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", @@ -24,7 +24,6 @@ ], "docker-version": "1.7.1", "docker-machine-version": "0.3.1-rc1", - "docker-compose-version": "1.3.0", "electron-version": "0.27.2", "virtualbox-version": "5.0.0", "virtualbox-filename": "VirtualBox-5.0.0.pkg", diff --git a/resources/terminal b/resources/terminal index af5af69872..3fb48c26c8 100755 --- a/resources/terminal +++ b/resources/terminal @@ -1,8 +1,7 @@ #!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -PATH=$DIR:$PATH -CMD="export PATH='$PATH' && clear && $*" +CMD="$*" ITERM_EXISTS=`osascript < { - dialog.showMessageBox({ - message: 'Docker binaries have been installed under /usr/local/bin', - buttons: ['OK'] - }); - }).catch((err) => { - console.log(err); - }); - }, + type: 'separator' }, { - type: 'separator' - }, { label: 'Hide Kitematic', accelerator: util.CommandOrCtrl() + '+H', selector: 'hide:' From dbc3f399ddfd269efde0b48809f067185d12291e Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 24 Jul 2015 13:12:23 -0700 Subject: [PATCH 33/70] Revert Gruntfile --- Gruntfile.js | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 34bc73e196..be4d85423c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -155,10 +155,20 @@ module.exports = function (grunt) { // docker binaries 'download-binary': { + docker: { + version: packagejson['docker-version'], + binary: path.join('resources', 'docker'), + download: 'curl:docker' + }, 'docker-machine': { version: packagejson['docker-machine-version'], binary: path.join('resources', 'docker-machine'), download: 'curl:docker-machine' + }, + 'docker-compose': { + version: packagejson['docker-compose-version'], + binary: path.join('resources', 'docker-compose'), + download: 'curl:docker-compose' } }, @@ -223,10 +233,18 @@ module.exports = function (grunt) { // download binaries curl: { + docker: { + src: process.platform === 'win32' ? WINDOWS_DOCKER_URL : DARWIN_DOCKER_URL, + dest: process.platform === 'win32' ? path.join('resources', 'docker.exe') : path.join('resources', 'docker') + }, 'docker-machine': { src: process.platform === 'win32' ? WINDOWS_DOCKER_MACHINE_URL : DARWIN_DOCKER_MACHINE_URL, dest: process.platform === 'win32' ? path.join('resources', 'docker-machine.exe') : path.join('resources', 'docker-machine') }, + 'docker-compose': { + src: DARWIN_COMPOSE_URL, + dest: 'resources/docker-compose' + }, 'boot2docker-iso': { src: BOOT2DOCKER_ISO_URL, dest: path.join('resources', 'boot2docker.iso') @@ -360,10 +378,14 @@ module.exports = function (grunt) { } }); - grunt.registerTask('default', ['download-binary', 'download-boot2docker-iso', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); + if (process.platform === 'win32') { + grunt.registerTask('default', ['download-binary:docker', 'download-binary:docker-machine', 'download-boot2docker-iso', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); + } else { + grunt.registerTask('default', ['download-binary', 'download-boot2docker-iso', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); + } if (process.platform === 'win32') { - grunt.registerTask('release', ['clean:release', 'download-binary', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); + grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); } else { grunt.registerTask('release', ['clean:release', 'download-binary', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'plistbuddy', 'shell:sign', 'shell:zip']); } From 5eb90aaacd3b69e88cc0ea10496c21ff72801b07 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 24 Jul 2015 13:14:35 -0700 Subject: [PATCH 34/70] Revert terminal & compose version --- package.json | 1 + resources/terminal | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c46f9f2ca1..e808272197 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ ], "docker-version": "1.7.1", "docker-machine-version": "0.3.1-rc1", + "docker-compose-version": "1.4.0rc2", "electron-version": "0.27.2", "virtualbox-version": "5.0.0", "virtualbox-filename": "VirtualBox-5.0.0.pkg", diff --git a/resources/terminal b/resources/terminal index 3fb48c26c8..af5af69872 100755 --- a/resources/terminal +++ b/resources/terminal @@ -1,7 +1,8 @@ #!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -CMD="$*" +PATH=$DIR:$PATH +CMD="export PATH='$PATH' && clear && $*" ITERM_EXISTS=`osascript < Date: Fri, 24 Jul 2015 16:58:10 -0700 Subject: [PATCH 35/70] Dropped image logo gradients. --- src/components/ImageCard.react.js | 3 ++- styles/new-container.less | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/ImageCard.react.js b/src/components/ImageCard.react.js index 0e54e59770..6d77201f9f 100644 --- a/src/components/ImageCard.react.js +++ b/src/components/ImageCard.react.js @@ -108,7 +108,8 @@ var ImageCard = React.createClass({ description = "No description."; } var logoStyle = { - backgroundImage: `linear-gradient(-180deg, ${this.props.image.gradient_start} 4%, ${this.props.image.gradient_end} 100%)` + //backgroundImage: `linear-gradient(-180deg, ${this.props.image.gradient_start} 4%, ${this.props.image.gradient_end} 100%)` + backgroundColor: this.props.image.gradient_start }; var imgsrc; if (this.props.image.img) { diff --git a/styles/new-container.less b/styles/new-container.less index 0202a08910..30fa2ce62d 100644 --- a/styles/new-container.less +++ b/styles/new-container.less @@ -284,7 +284,7 @@ border-bottom-left-radius: @border-radius; justify-content: center; text-align: center; - box-shadow: inset 0px 0px 0px 1px rgba(0,0,0,0.2); + box-shadow: inset 0px 0px 0px 1px rgba(0,0,0,0.1); img { width: 35px; height: auto; @@ -293,7 +293,7 @@ } .card { position: relative; - border: 1px solid darken(@gray-lightest, 5%); + border: 1px solid darken(@gray-lightest, 0%); border-left: 0; border-top-right-radius: @border-radius; border-bottom-right-radius: @border-radius; From ced2df16f2f97bd0141e2a8a48ee6c0d97d02f81 Mon Sep 17 00:00:00 2001 From: Sean Li Date: Fri, 24 Jul 2015 17:18:16 -0700 Subject: [PATCH 36/70] Polished about page. --- src/components/About.react.js | 30 ++++++++++++++---------------- styles/preferences.less | 28 ++++++++++++++++++++-------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/components/About.react.js b/src/components/About.react.js index 45c2e40228..f027926c1f 100644 --- a/src/components/About.react.js +++ b/src/components/About.react.js @@ -27,35 +27,33 @@ var Preferences = React.createClass({
Go Back -

Installed Software

-
-
+

Installed Software

+
+
-

{packages.name}

+

Docker {packages.name}

{packages.version}

-
+
-

Docker

+

Docker Engine

{packages["docker-version"]}

-
-
-
+
-

Docker Machine

+

Docker Machine

{packages["docker-machine-version"]}

-
+
-

Docker Compose

+

Docker Compose

{packages["docker-compose-version"]}

-

Third-Party Software

-
-
-

VirtualBox

+

Third-Party Software

+
+
+

VirtualBox

{packages["virtualbox-version"]}

diff --git a/styles/preferences.less b/styles/preferences.less index f41544d652..0294fd2a38 100644 --- a/styles/preferences.less +++ b/styles/preferences.less @@ -39,19 +39,31 @@ } .about-content { margin-top: 0px; - h2 { - font-size: 3rem; - text-align: center; - } - .row { - text-align: center; + height: 100%; + overflow: auto; + .items { + display: flex; + .item { + flex: 1 auto; + margin-right: 1rem; + text-align: center; + } } h3 { - font-size: 2rem; + color: @gray-normal; + font-weight: 400; + font-size: 18px; text-align: center; } + img { + height: 100px; + width: auto; + } + h4 { + margin-bottom: 0.5rem; + } p { - color: @gray-normal; + color: @gray-light; font-size: 1.5rem; } } From e64ebb207b9f2b376367ac881e898d1b73a40fad Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sun, 26 Jul 2015 21:48:18 -0700 Subject: [PATCH 37/70] Bump to Docker machine 0.4.0 RC Signed-off-by: Jeffrey Morgan --- package.json | 2 +- src/utils/DockerMachineUtil.js | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index e808272197..d16d620d44 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ } ], "docker-version": "1.7.1", - "docker-machine-version": "0.3.1-rc1", + "docker-machine-version": "0.4.0-rc1", "docker-compose-version": "1.4.0rc2", "electron-version": "0.27.2", "virtualbox-version": "5.0.0", diff --git a/src/utils/DockerMachineUtil.js b/src/utils/DockerMachineUtil.js index 79d3c6d259..016e0ef053 100644 --- a/src/utils/DockerMachineUtil.js +++ b/src/utils/DockerMachineUtil.js @@ -56,11 +56,7 @@ var DockerMachine = { }); }, create: function () { - if (util.isWindows()) { - return util.exec([this.command(), '-D', 'create', '-d', 'virtualbox', '--virtualbox-memory', '2048', NAME]); - } else { - return util.exec([this.command(), '-D', 'create', '-d', 'virtualbox' ,'--virtualbox-boot2docker-url', path.join(process.env.RESOURCES_PATH, 'boot2docker.iso'), '--virtualbox-memory', '2048', NAME]); - } + return util.exec([this.command(), '-D', 'create', '-d', 'virtualbox', '--virtualbox-memory', '2048', NAME]); }, start: function () { return util.exec([this.command(), '-D', 'start', NAME]); From 6e6b247221bc21594784d5c1bcf29663684ba655 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sun, 26 Jul 2015 22:36:43 -0700 Subject: [PATCH 38/70] Do not package boot2docker iso Signed-off-by: Jeffrey Morgan --- Gruntfile.js | 30 ++++++------------------------ package.json | 2 +- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index be4d85423c..406bf0ffff 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -9,7 +9,6 @@ var DARWIN_DOCKER_URL = 'https://get.docker.com/builds/Darwin/x86_64/docker-' + var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_windows-amd64.exe'; var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_darwin-amd64'; var DARWIN_COMPOSE_URL = 'https://github.com/docker/compose/releases/download/' + packagejson['docker-compose-version'] + '/docker-compose-Darwin-x86_64'; -var BOOT2DOCKER_ISO_URL = 'https://github.com/boot2docker/boot2docker/releases/download/v' + packagejson['docker-version'] + '/boot2docker.iso'; module.exports = function (grunt) { require('load-grunt-tasks')(grunt); @@ -27,18 +26,6 @@ module.exports = function (grunt) { return match ? match[1] : null; }; - grunt.registerTask('download-boot2docker-iso', 'Downloads provided boot2docker version', function () { - try { - var data = fs.readFileSync(path.join('resources', 'boot2docker.iso'), {encoding: 'utf-8'}); - var match = data.match(/Boot2Docker-v(\d+\.\d+\.\d+)/); - if (match && match[1] !== packagejson['docker-version']) { - grunt.task.run('curl:boot2docker-iso'); - } - } catch (err) { - grunt.task.run('curl:boot2docker-iso'); - } - }); - grunt.registerMultiTask('download-binary', 'Downloads binary unless version up to date', function () { var target = grunt.task.current.target; var done = this.async(); @@ -201,7 +188,7 @@ module.exports = function (grunt) { files: [{ expand: true, cwd: 'resources', - src: ['docker*', 'boot2docker.iso', 'ssh.exe', 'OPENSSH_LICENSE', 'msys-*'], + src: ['docker*', 'ssh.exe', 'OPENSSH_LICENSE', 'msys-*'], dest: 'dist/' + BASENAME + '-win32/resources/resources/' }], options: { @@ -212,7 +199,7 @@ module.exports = function (grunt) { files: [{ expand: true, cwd: 'resources', - src: ['docker*', 'boot2docker.iso', 'macsudo', 'terminal'], + src: ['docker*', 'macsudo', 'terminal'], dest: '<%= OSX_FILENAME %>/Contents/Resources/resources/' }, { src: 'util/kitematic.icns', @@ -244,10 +231,6 @@ module.exports = function (grunt) { 'docker-compose': { src: DARWIN_COMPOSE_URL, dest: 'resources/docker-compose' - }, - 'boot2docker-iso': { - src: BOOT2DOCKER_ISO_URL, - dest: path.join('resources', 'boot2docker.iso') } }, @@ -351,7 +334,6 @@ module.exports = function (grunt) { clean: { release: ['build/', 'dist/', 'installer/'], - isos: ['resources/boot2docker*'] }, // livereload @@ -379,15 +361,15 @@ module.exports = function (grunt) { }); if (process.platform === 'win32') { - grunt.registerTask('default', ['download-binary:docker', 'download-binary:docker-machine', 'download-boot2docker-iso', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); + grunt.registerTask('default', ['download-binary:docker', 'download-binary:docker-machine', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); } else { - grunt.registerTask('default', ['download-binary', 'download-boot2docker-iso', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); + grunt.registerTask('default', ['download-binary', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); } if (process.platform === 'win32') { - grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); + grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); } else { - grunt.registerTask('release', ['clean:release', 'download-binary', 'download-boot2docker-iso', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'plistbuddy', 'shell:sign', 'shell:zip']); + grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'plistbuddy', 'shell:sign', 'shell:zip']); } process.on('SIGINT', function () { diff --git a/package.json b/package.json index d16d620d44..6bedf03552 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.0", + "version": "0.8.0-rc1", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 34ea0be9cce2707a91bd7bee01dc07b4107de12b Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sun, 26 Jul 2015 22:50:17 -0700 Subject: [PATCH 39/70] Bump to Docker to 1.8.0-rc1 --- Gruntfile.js | 7 ++++--- package.json | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 406bf0ffff..6ee9d204ef 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -1,11 +1,12 @@ var path = require('path'); -var fs = require('fs'); var execFile = require('child_process').execFile; var packagejson = require('./package.json'); var electron = require('electron-prebuilt'); -var WINDOWS_DOCKER_URL = 'https://get.docker.com/builds/Windows/x86_64/docker-' + packagejson['docker-version'] + '.exe'; -var DARWIN_DOCKER_URL = 'https://get.docker.com/builds/Darwin/x86_64/docker-' + packagejson['docker-version']; +var dockerHostname = packagejson['docker-version'].indexOf('rc') !== -1 ? 'test.docker.com' : 'get.docker.com'; + +var WINDOWS_DOCKER_URL = 'https://' + dockerHostname + '/builds/Windows/x86_64/docker-' + packagejson['docker-version'] + '.exe'; +var DARWIN_DOCKER_URL = 'https://' + dockerHostname + '/builds/Darwin/x86_64/docker-' + packagejson['docker-version']; var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_windows-amd64.exe'; var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_darwin-amd64'; var DARWIN_COMPOSE_URL = 'https://github.com/docker/compose/releases/download/' + packagejson['docker-compose-version'] + '/docker-compose-Darwin-x86_64'; diff --git a/package.json b/package.json index 6bedf03552..e5731e0220 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } ], - "docker-version": "1.7.1", + "docker-version": "1.8.0-rc1", "docker-machine-version": "0.4.0-rc1", "docker-compose-version": "1.4.0rc2", "electron-version": "0.27.2", From e58eba9646d47ab355e888b389eeeefa37454996 Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Tue, 28 Jul 2015 16:42:36 -0400 Subject: [PATCH 40/70] Fixed iso and version issues Signed-off-by: FrenchBen --- src/utils/DockerMachineUtil.js | 66 +++++++++++++++++----------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/utils/DockerMachineUtil.js b/src/utils/DockerMachineUtil.js index 016e0ef053..0d37f9f48f 100644 --- a/src/utils/DockerMachineUtil.js +++ b/src/utils/DockerMachineUtil.js @@ -14,10 +14,10 @@ var DockerMachine = { name: function () { return NAME; }, - isoversion: function () { + isoversion: function (machineName = this.name()) { try { - var data = fs.readFileSync(path.join(util.home(), '.docker', 'machine', 'machines', NAME, 'boot2docker.iso'), 'utf8'); - var match = data.match(/Boot2Docker-v(\d+\.\d+\.\d+)/); + var data = fs.readFileSync(path.join(util.home(), '.docker', 'machine', 'machines', machineName, 'boot2docker-virtualbox.iso'), 'utf8'); + var match = data.match(/Docker v(\d+\.\d+\.\d+)/); if (match) { return match[1]; } else { @@ -27,7 +27,7 @@ var DockerMachine = { return null; } }, - info: function () { + info: function (machineName = this.name()) { return util.exec([this.command(), 'ls']).then(stdout => { var lines = stdout.trim().split('\n').filter(line => line.indexOf('time=') === -1); var machines = {}; @@ -41,50 +41,50 @@ var DockerMachine = { }; machines[machine.name] = machine; }); - if (machines[NAME]) { - return Promise.resolve(machines[NAME]); + if (machines[machineName]) { + return Promise.resolve(machines[machineName]); } else { return Promise.reject(new Error('Machine does not exist.')); } }); }, - exists: function () { - return this.info().then(() => { + exists: function (machineName = this.name()) { + return this.info(machineName).then(() => { return true; }).catch(() => { return false; }); }, - create: function () { - return util.exec([this.command(), '-D', 'create', '-d', 'virtualbox', '--virtualbox-memory', '2048', NAME]); + create: function (machineName = this.name()) { + return util.exec([this.command(), '-D', 'create', '-d', 'virtualbox', '--virtualbox-memory', '2048', machineName]); }, - start: function () { - return util.exec([this.command(), '-D', 'start', NAME]); + start: function (machineName = this.name()) { + return util.exec([this.command(), '-D', 'start', machineName]); }, - stop: function () { - return util.exec([this.command(), 'stop', NAME]); + stop: function (machineName = this.name()) { + return util.exec([this.command(), 'stop', machineName]); }, - upgrade: function () { - return util.exec([this.command(), 'upgrade', NAME]); + upgrade: function (machineName = this.name()) { + return util.exec([this.command(), 'upgrade', machineName]); }, - rm: function () { - return util.exec([this.command(), 'rm', '-f', NAME]); + rm: function (machineName = this.name()) { + return util.exec([this.command(), 'rm', '-f', machineName]); }, - ip: function () { - return util.exec([this.command(), 'ip', NAME]).then(stdout => { + ip: function (machineName = this.name()) { + return util.exec([this.command(), 'ip', machineName]).then(stdout => { return Promise.resolve(stdout.trim().replace('\n', '')); }); }, - regenerateCerts: function () { - return util.exec([this.command(), 'tls-regenerate-certs', '-f', NAME]); + regenerateCerts: function (machineName = this.name()) { + return util.exec([this.command(), 'tls-regenerate-certs', '-f', machineName]); }, - state: function () { - return this.info().then(info => { + state: function (machineName = this.name()) { + return this.info(machineName).then(info => { return info ? info.state : null; }); }, - disk: function () { - return util.exec([this.command(), 'ssh', NAME, 'df']).then(stdout => { + disk: function (machineName = this.name()) { + return util.exec([this.command(), 'ssh', machineName, 'df']).then(stdout => { try { var lines = stdout.split('\n'); var dataline = _.find(lines, function (line) { @@ -107,8 +107,8 @@ var DockerMachine = { } }); }, - memory: function () { - return util.exec([this.command(), 'ssh', NAME, 'free -m']).then(stdout => { + memory: function (machineName = this.name()) { + return util.exec([this.command(), 'ssh', machineName, 'free -m']).then(stdout => { try { var lines = stdout.split('\n'); var dataline = _.find(lines, function (line) { @@ -133,8 +133,8 @@ var DockerMachine = { } }); }, - stats: function () { - this.state().then(state => { + stats: function (machineName = this.name()) { + this.state(machineName).then(state => { if (state === 'Stopped') { return Promise.resolve({state: state}); } @@ -148,10 +148,10 @@ var DockerMachine = { }); }); }, - dockerTerminal: function (cmd) { + dockerTerminal: function (cmd, machineName = this.name()) { if(util.isWindows()) { cmd = cmd || ''; - this.info().then(machine => { + this.info(machineName).then(machine => { util.exec('start powershell.exe ' + cmd, {env: { 'DOCKER_HOST' : machine.url, @@ -162,7 +162,7 @@ var DockerMachine = { }); } else { cmd = cmd || process.env.SHELL; - this.info().then(machine => { + this.info(machineName).then(machine => { util.exec([resources.terminal(), `DOCKER_HOST=${machine.url} DOCKER_CERT_PATH=${path.join(util.home(), '.docker/machine/machines/' + machine.name)} DOCKER_TLS_VERIFY=1 ${cmd}`]).then(() => {}); }); } From 1cbd0619b9c1e6e5d5d87e34e67eea62afad266c Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 28 Jul 2015 14:51:16 -0700 Subject: [PATCH 41/70] Bump to 0.8.0-rc2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e5731e0220..f025dffe3f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.0-rc1", + "version": "0.8.0-rc2", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 40824e98388e9b6a358d55b76aad5c1764ef527a Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 29 Jul 2015 15:19:59 -0700 Subject: [PATCH 42/70] On windows, use Docker in Quick Start Signed-off-by: Jeffrey Morgan --- Gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gruntfile.js b/Gruntfile.js index 6ee9d204ef..b354171234 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -116,7 +116,7 @@ module.exports = function (grunt) { 'file-version': packagejson.version, 'product-version': packagejson.version, 'version-string': { - 'CompanyName': 'Docker Inc', + 'CompanyName': 'Docker', 'ProductVersion': packagejson.version, 'ProductName': APPNAME, 'FileDescription': APPNAME, From f8d89bc755d6624c6cfe79176733cac066781c2f Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 29 Jul 2015 15:30:45 -0700 Subject: [PATCH 43/70] Bump to 0.8.0 rc3 Signed-off-by: Jeffrey Morgan --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f025dffe3f..f76476b0bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.0-rc2", + "version": "0.8.0-rc3", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 619a4a7384c5b24c581ca2d9d4c80879b710cc6b Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 29 Jul 2015 15:33:40 -0700 Subject: [PATCH 44/70] Fix missing babel task Signed-off-by: Jeffrey Morgan --- Gruntfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gruntfile.js b/Gruntfile.js index 6ee9d204ef..cc07282795 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -368,7 +368,7 @@ module.exports = function (grunt) { } if (process.platform === 'win32') { - grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); + grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); } else { grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'plistbuddy', 'shell:sign', 'shell:zip']); } From 6fc3f6f179d64e9b361441aff412da0b05841508 Mon Sep 17 00:00:00 2001 From: Mary Anthony Date: Thu, 30 Jul 2015 10:52:13 -0700 Subject: [PATCH 45/70] - Fixes #877 to update the install for toolbox - Updates to the documentaiton infrasturture now can build entire public projects from kitematic - Updates to the FAQ to make clear Windows is now supported Signed-off-by: Mary Anthony --- docs/Dockerfile | 33 +++++++++++------------- docs/faq.md | 6 ++--- docs/index.md | 43 +++----------------------------- docs/pre-process.sh | 61 +++++++++++++++++++++++++++++++++++++++++++++ docs/userguide.md | 2 +- 5 files changed, 82 insertions(+), 63 deletions(-) create mode 100755 docs/pre-process.sh diff --git a/docs/Dockerfile b/docs/Dockerfile index ac3cf79880..041cd99d5f 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -1,30 +1,27 @@ -FROM docs/base:hugo +FROM docs/base:latest MAINTAINER Mary Anthony (@moxiegirl) -# to get the git info for this repo +# To get the git info for this repo COPY . /src COPY . /docs/content/kitematic/ +RUN svn checkout https://github.com/docker/compose/trunk/docs /docs/content/compose +RUN svn checkout https://github.com/docker/docker/trunk/docs /docs/content/docker +RUN svn checkout https://github.com/docker/swarm/trunk/docs /docs/content/swarm +RUN svn checkout https://github.com/docker/distribution/trunk/docs /docs/content/registry +RUN svn checkout https://github.com/docker/tutorials/trunk/docs /docs/content +RUN svn checkout https://github.com/docker/opensource/trunk/docs /docs/content/opensource +RUN svn checkout https://github.com/docker/machine/trunk/docs /docs/content/machine + + # Sed to process GitHub Markdown # 1-2 Remove comment code from metadata block # 3 Change ](/word to ](/project/ in links # 4 Change ](word.md) to ](/project/word) # 5 Remove .md extension from link text -# 6 Change ](./ to ](/project/word) -# 7 Change ](../../ to ](/project/ -# 8 Change ](../ to ](/project/ -# 9 Change ](# to ](/project/ +# 6 Change ](../ to ](/project/word) +# 7 Change ](../../ to ](/project/ --> not implemented # -RUN find /docs/content/kitematic -type f -name "*.md" -exec sed -i.old \ - -e '/^/g' \ - -e '/^/g' \ - -e 's/\(\]\)\([(]\)\(\/\)/\1\2\/kitematic\//g' \ - -e 's/\(\][(]\)\([A-z].*\)\(\.md\)/\1\/kitematic\/\2/g' \ - -e 's/\([(]\)\(.*\)\(\.md\)/\1\2/g' \ - -e 's/\(\][(]\)\(\.\/\)/\1\/kitematic\//g' \ - -e 's/\(\][(]\)\(\.\.\/\.\.\/\)/\1\/kitematic\//g' \ - -e 's/\(\][(]\)\(\.\.\/\)/\1\/kitematic\//g' {} \; - - - \ No newline at end of file +# +RUN /src/pre-process.sh /docs diff --git a/docs/faq.md b/docs/faq.md index 69a7290e91..06efb92e7a 100755 --- a/docs/faq.md +++ b/docs/faq.md @@ -31,10 +31,8 @@ the Docker Remote API. ### Which platforms does Kitematic support? -Right now Kitematic only works on Mac OS X. That said, Windows is on the -short-term -[roadmap](https://github.com/kitematic/kitematic/blob/master/ROADMAP.md) (coming -soon!) and a Linux version is in high demand. +Right now Kitematic works on Mac OS X and Windows. Linux is planned in the future. Review our product +[roadmap](https://github.com/kitematic/kitematic/blob/master/ROADMAP.md) for more information. ### Why does Kitematic collect usage analytics and bug reports? diff --git a/docs/index.md b/docs/index.md index ef3fd45ec3..2d81b7c047 100755 --- a/docs/index.md +++ b/docs/index.md @@ -9,45 +9,8 @@ weight=2 +++ -# Kitematic: Install Kitematic +# Kitematic -You install Kitematic much the same way you install any application on a Mac or -Windows PC: download an image and run an installer. +Kitematic, the Docker GUI, runs on Mac OS X and Windows operating systems. Beginning with the 1.8 Docker release, you use the Docker Toolbox to install Kitematic. See the [Mac OS X installation guide]({{% thebaseurl %}}mac) or the [Windows installation guide]({{% thebaseurl %}}installation/windows) for details on installing with Docker Toolbox. -## Download Kitematic - -[Download the Kitematic zip file](https://kitematic.com/download/), unzip the -file by double-clicking it, and then double-click the application to run it. -You'll probably also want to put the application in your Applications folder. - -## Initial Setup - -Opening Kitematic for the first time sets up everything you need to run Docker -containers. If you don't already have VirtualBox installed, Kitematic will -download and install the latest version. - -![Installing](../images/installing.png) - -All Done! Within a minute you should be ready to start running your first -container! - -![containers](../images/containers.png) - -## Technical Details - -Kitematic is a self-contained .app, with an exception: - -- It will install VirtualBox if it's not already installed. - -### Why does Kitematic need my root password? - -Kitematic needs your root password for two reasons: - -- Installing VirtualBox requires root access as it includes Mac OS X kernel extensions. -- Copying `docker` and `docker-machine` to `/usr/local/bin` may require root - permission if the default permissions for this directory have been changed - prior to installing Kitematic. - -## Next Steps - -For information about using Kitematic, take a look at the [User Guide](/userguide). +For information about using Kitematic, take a look at the [User Guide](userguide). diff --git a/docs/pre-process.sh b/docs/pre-process.sh new file mode 100755 index 0000000000..75e9611f2f --- /dev/null +++ b/docs/pre-process.sh @@ -0,0 +1,61 @@ +#!/bin/bash -e + +# Populate an array with just docker dirs and one with content dirs +docker_dir=(`ls -d /docs/content/docker/*`) +content_dir=(`ls -d /docs/content/*`) + +# Loop content not of docker/ +# +# Sed to process GitHub Markdown +# 1-2 Remove comment code from metadata block +# 3 Remove .md extension from link text +# 4 Change ](/ to ](/project/ in links +# 5 Change ](word) to ](/project/word) +# 6 Change ](../../ to ](/project/ +# 7 Change ](../ to ](/project/word) +# +for i in "${content_dir[@]}" +do + : + case $i in + "/docs/content/windows") + ;; + "/docs/content/mac") + ;; + "/docs/content/linux") + ;; + "/docs/content/docker") + y=${i##*/} + find $i -type f -name "*.md" -exec sed -i.old \ + -e '/^/g' \ + -e '/^/g' {} \; + ;; + *) + y=${i##*/} + find $i -type f -name "*.md" -exec sed -i.old \ + -e '/^/g' \ + -e '/^/g' \ + -e 's/\(\]\)\([(]\)\(\/\)/\1\2\/'$y'\//g' \ + -e 's/\(\][(]\)\([A-z].*\)\(\.md\)/\1\/'$y'\/\2/g' \ + -e 's/\([(]\)\(.*\)\(\.md\)/\1\2/g' \ + -e 's/\(\][(]\)\(\.\/\)/\1\/'$y'\//g' \ + -e 's/\(\][(]\)\(\.\.\/\.\.\/\)/\1\/'$y'\//g' \ + -e 's/\(\][(]\)\(\.\.\/\)/\1\/'$y'\//g' {} \; + ;; + esac +done + +# +# Move docker directories to content +# +for i in "${docker_dir[@]}" +do + : + if [ -d $i ] + then + mv $i /docs/content/ + fi +done + +rm -rf /docs/content/docker + diff --git a/docs/userguide.md b/docs/userguide.md index 672f65dc78..7085922b44 100755 --- a/docs/userguide.md +++ b/docs/userguide.md @@ -16,7 +16,7 @@ Kitematic is an open source project built to simplify and streamline using Docker on a Mac or Windows (coming soon) PC. Kitematic automates the Docker installation and setup process and provides an intuitive graphical user interface (GUI) for running Docker containers. Kitematic integrates with -[Docker Machine](http://docs.docker.com/machine/) to provision a VirtualBox VM +[Docker Machine]({{% thebaseurl %}}machine/) to provision a VirtualBox VM and install the Docker Engine locally on your machine. Once installed, the Kitematic GUI launches and from the home screen you will be From dcd8f398dd52ca986cf6a5c3d21533fc130a31e0 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 4 Aug 2015 21:27:46 -0700 Subject: [PATCH 46/70] Fix issues so Kitematic 0.8 works with Docker Toolbox --- Gruntfile.js | 63 ++++++++++------------------------ package.json | 5 ++- resources/terminal | 3 +- src/stores/SetupStore.js | 3 +- src/utils/DockerMachineUtil.js | 8 ++--- 5 files changed, 26 insertions(+), 56 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index b354171234..6c61a18c68 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -3,13 +3,8 @@ var execFile = require('child_process').execFile; var packagejson = require('./package.json'); var electron = require('electron-prebuilt'); -var dockerHostname = packagejson['docker-version'].indexOf('rc') !== -1 ? 'test.docker.com' : 'get.docker.com'; - -var WINDOWS_DOCKER_URL = 'https://' + dockerHostname + '/builds/Windows/x86_64/docker-' + packagejson['docker-version'] + '.exe'; -var DARWIN_DOCKER_URL = 'https://' + dockerHostname + '/builds/Darwin/x86_64/docker-' + packagejson['docker-version']; var WINDOWS_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_windows-amd64.exe'; var DARWIN_DOCKER_MACHINE_URL = 'https://github.com/docker/machine/releases/download/v' + packagejson['docker-machine-version'] + '/docker-machine_darwin-amd64'; -var DARWIN_COMPOSE_URL = 'https://github.com/docker/compose/releases/download/' + packagejson['docker-compose-version'] + '/docker-compose-Darwin-x86_64'; module.exports = function (grunt) { require('load-grunt-tasks')(grunt); @@ -143,20 +138,10 @@ module.exports = function (grunt) { // docker binaries 'download-binary': { - docker: { - version: packagejson['docker-version'], - binary: path.join('resources', 'docker'), - download: 'curl:docker' - }, 'docker-machine': { version: packagejson['docker-machine-version'], binary: path.join('resources', 'docker-machine'), download: 'curl:docker-machine' - }, - 'docker-compose': { - version: packagejson['docker-compose-version'], - binary: path.join('resources', 'docker-compose'), - download: 'curl:docker-compose' } }, @@ -221,17 +206,9 @@ module.exports = function (grunt) { // download binaries curl: { - docker: { - src: process.platform === 'win32' ? WINDOWS_DOCKER_URL : DARWIN_DOCKER_URL, - dest: process.platform === 'win32' ? path.join('resources', 'docker.exe') : path.join('resources', 'docker') - }, 'docker-machine': { src: process.platform === 'win32' ? WINDOWS_DOCKER_MACHINE_URL : DARWIN_DOCKER_MACHINE_URL, dest: process.platform === 'win32' ? path.join('resources', 'docker-machine.exe') : path.join('resources', 'docker-machine') - }, - 'docker-compose': { - src: DARWIN_COMPOSE_URL, - dest: 'resources/docker-compose' } }, @@ -256,22 +233,6 @@ module.exports = function (grunt) { } }, - // javascript - babel: { - options: { - sourceMap: 'inline', - blacklist: 'regenerator' - }, - dist: { - files: [{ - expand: true, - cwd: 'src/', - src: ['**/*.js'], - dest: 'build/', - }] - } - }, - plistbuddy: { addBundleURLTypes: { method: 'Add', @@ -307,6 +268,22 @@ module.exports = function (grunt) { } }, + // javascript + babel: { + options: { + sourceMap: 'inline', + blacklist: 'regenerator' + }, + dist: { + files: [{ + expand: true, + cwd: 'src/', + src: ['**/*.js'], + dest: 'build/', + }] + } + }, + shell: { electron: { command: electron + ' ' + 'build', @@ -361,14 +338,10 @@ module.exports = function (grunt) { } }); - if (process.platform === 'win32') { - grunt.registerTask('default', ['download-binary:docker', 'download-binary:docker-machine', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); - } else { - grunt.registerTask('default', ['download-binary', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); - } + grunt.registerTask('default', ['download-binary', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); if (process.platform === 'win32') { - grunt.registerTask('release', ['clean:release', 'download-binary:docker', 'download-binary:docker-machine', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); + grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); } else { grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'plistbuddy', 'shell:sign', 'shell:zip']); } diff --git a/package.json b/package.json index f76476b0bd..8b41e88ef6 100644 --- a/package.json +++ b/package.json @@ -22,9 +22,8 @@ "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } ], - "docker-version": "1.8.0-rc1", - "docker-machine-version": "0.4.0-rc1", - "docker-compose-version": "1.4.0rc2", + "docker-version": "1.8.0-rc2", + "docker-machine-version": "0.4.0-rc2", "electron-version": "0.27.2", "virtualbox-version": "5.0.0", "virtualbox-filename": "VirtualBox-5.0.0.pkg", diff --git a/resources/terminal b/resources/terminal index af5af69872..ea55c18810 100755 --- a/resources/terminal +++ b/resources/terminal @@ -1,8 +1,7 @@ #!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -PATH=$DIR:$PATH -CMD="export PATH='$PATH' && clear && $*" +CMD="clear && $*" ITERM_EXISTS=`osascript < Date: Tue, 4 Aug 2015 23:16:54 -0700 Subject: [PATCH 47/70] Bump to 0.8.0-rc4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8b41e88ef6..b916722b2a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.0-rc3", + "version": "0.8.0-rc4", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 349452bf1b0d95a9db93f817d07ecc3816df9c36 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 7 Aug 2015 16:38:57 -0700 Subject: [PATCH 48/70] Change default VM name to default Signed-off-by: Jeffrey Morgan --- src/utils/DockerMachineUtil.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/DockerMachineUtil.js b/src/utils/DockerMachineUtil.js index 915bb8326c..f3764e0fca 100644 --- a/src/utils/DockerMachineUtil.js +++ b/src/utils/DockerMachineUtil.js @@ -10,7 +10,7 @@ var DockerMachine = { return resources.dockerMachine(); }, name: function () { - return 'docker-vm'; + return 'default'; }, isoversion: function (machineName = this.name()) { try { From c60ffc4c1410af6f95a3f898ac250c4190e02135 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 7 Aug 2015 16:39:21 -0700 Subject: [PATCH 49/70] Bump to rc5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b916722b2a..68bcd2e8c0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.0-rc4", + "version": "0.8.0-rc5", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From cdb60f7d7708cacbb1a43acd6764d19b6c7dd52d Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Fri, 7 Aug 2015 16:40:30 -0700 Subject: [PATCH 50/70] Remove plistbuddy entry Signed-off-by: Jeffrey Morgan --- Gruntfile.js | 37 +------------------------------------ 1 file changed, 1 insertion(+), 36 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 6c61a18c68..51b9d69c85 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -233,41 +233,6 @@ module.exports = function (grunt) { } }, - plistbuddy: { - addBundleURLTypes: { - method: 'Add', - entry: 'CFBundleURLTypes', - type: 'array', - src: '<%= OSX_FILENAME %>/Contents/Info.plist' - }, - addBundleURLTypesDict: { - method: 'Add', - entry: 'CFBundleURLTypes:0', - type: 'dict', - src: '<%= OSX_FILENAME %>/Contents/Info.plist' - }, - addBundleURLTypesDictName: { - method: 'Add', - entry: 'CFBundleURLTypes:0:CFBundleURLName', - type: 'string', - value: 'Docker App Protocol', - src: '<%= OSX_FILENAME %>/Contents/Info.plist' - }, - addBundleURLTypesDictSchemes: { - method: 'Add', - entry: 'CFBundleURLTypes:0:CFBundleURLSchemes', - type: 'array', - src: '<%= OSX_FILENAME %>/Contents/Info.plist' - }, - addBundleURLTypesDictSchemesDocker: { - method: 'Add', - entry: 'CFBundleURLTypes:0:CFBundleURLSchemes:0', - type: 'string', - value: 'docker', - src: '<%= OSX_FILENAME %>/Contents/Info.plist' - } - }, - // javascript babel: { options: { @@ -343,7 +308,7 @@ module.exports = function (grunt) { if (process.platform === 'win32') { grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); } else { - grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'plistbuddy', 'shell:sign', 'shell:zip']); + grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'shell:sign', 'shell:zip']); } process.on('SIGINT', function () { From 11245f22ddb4b06d7950e59bb8a2ea9516441b95 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 8 Aug 2015 00:02:22 -0700 Subject: [PATCH 51/70] Update README.md --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index d8aa568120..e32e44cc81 100644 --- a/README.md +++ b/README.md @@ -11,12 +11,6 @@ Kitematic is a simple application for managing Docker containers on Mac and Wind [Download the latest version](https://kitematic.com/download) of Kitematic. -On the Mac, Kitematic can copy the binaries for Docker, Docker Machine and Docker Compose into `/usr/local/bin` for command line use outside of Kitematic. - -To do so please click on the Kitematic dropdown menu and select `Install Docker Commands` - -![Install Docker Commands](https://cloud.githubusercontent.com/assets/3325447/8246881/fa5f1ee0-15fa-11e5-936b-147bd53ec5a0.png) - ## Documentation Kitematic's documentation and other information can be found at [http://kitematic.com/docs](http://kitematic.com/docs). From 9cc702e94be8460c7bfcae910695be550053b884 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 8 Aug 2015 13:49:28 -0700 Subject: [PATCH 52/70] Bump docker version to 1.8.0-rc3 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 68bcd2e8c0..e91a1c3b23 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } ], - "docker-version": "1.8.0-rc2", + "docker-version": "1.8.0-rc3", "docker-machine-version": "0.4.0-rc2", "electron-version": "0.27.2", "virtualbox-version": "5.0.0", From aeb1f7cdc64ecd4ad90dd5a125968607d0666b56 Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Mon, 10 Aug 2015 14:58:02 -0400 Subject: [PATCH 53/70] Update VB test version Signed-off-by: FrenchBen --- __tests__/VirtualBoxUtil-test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/__tests__/VirtualBoxUtil-test.js b/__tests__/VirtualBoxUtil-test.js index 575d97e0db..12976e016e 100644 --- a/__tests__/VirtualBoxUtil-test.js +++ b/__tests__/VirtualBoxUtil-test.js @@ -3,13 +3,13 @@ var virtualBox = require('../src/utils/VirtualBoxUtil'); var util = require('../src/utils/Util'); describe('VirtualBox', function () { - describe('version 4.3.20r96996', function () { + describe('version 5.0.0r101573', function () { pit('correctly parses virtualbox version', function () { util.exec.mockImplementation(function () { - return Promise.resolve('4.3.20r96996'); + return Promise.resolve('5.0.0r101573'); }); return virtualBox.version().then(function (version) { - expect(version).toBe('4.3.20'); + expect(version).toBe('5.0.0'); }); }); }); From 5b388080bd672711a0218c53d9d35648442f572f Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Mon, 10 Aug 2015 15:11:27 -0700 Subject: [PATCH 54/70] Update about page for Toolbox Signed-off-by: Jeffrey Morgan --- src/components/About.react.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/components/About.react.js b/src/components/About.react.js index f027926c1f..7ddd23ba36 100644 --- a/src/components/About.react.js +++ b/src/components/About.react.js @@ -27,13 +27,15 @@ var Preferences = React.createClass({
Go Back -

Installed Software

Docker {packages.name}

{packages.version}

+
+

Kitematic is built with:

+

Docker Engine

@@ -44,11 +46,6 @@ var Preferences = React.createClass({

Docker Machine

{packages["docker-machine-version"]}

-
- -

Docker Compose

-

{packages["docker-compose-version"]}

-

Third-Party Software

@@ -57,6 +54,12 @@ var Preferences = React.createClass({

{packages["virtualbox-version"]}

+
+
+

Electron

+

{packages["electron-version"]}

+
+
); From 6d27e165ad4f617a562b66b7d29024940b5ae704 Mon Sep 17 00:00:00 2001 From: Mary Anthony Date: Tue, 11 Aug 2015 08:38:17 -0700 Subject: [PATCH 55/70] Fixing links here so they work OOB Signed-off-by: Mary Anthony --- docs/faq.md | 8 ++++---- docs/known-issues.md | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/faq.md b/docs/faq.md index 06efb92e7a..3b9cd4cfc5 100755 --- a/docs/faq.md +++ b/docs/faq.md @@ -21,8 +21,7 @@ software released under the Apache 2.0 license. ### How can I contribute to Kitematic? We always welcome (and deeply appreciate!) new contributions to the project. The -best way to start contributing to Kitematic is to review our doc on -[contributing](https://github.com/kitematic/kitematic/blob/master/CONTRIBUTING.md). +best way to start contributing to Kitematic is to review our doc on contributing. ### How does Kitematic work with Docker? @@ -31,8 +30,9 @@ the Docker Remote API. ### Which platforms does Kitematic support? -Right now Kitematic works on Mac OS X and Windows. Linux is planned in the future. Review our product -[roadmap](https://github.com/kitematic/kitematic/blob/master/ROADMAP.md) for more information. +Right now Kitematic works on Mac OS X and Windows. Linux is planned in the +future. Review our product roadmap. ### Why does Kitematic collect usage analytics and bug reports? diff --git a/docs/known-issues.md b/docs/known-issues.md index a6dd7dbf3b..a12c9bbe1b 100755 --- a/docs/known-issues.md +++ b/docs/known-issues.md @@ -29,8 +29,8 @@ commands on the command line: - `docker-machine create -d virtualbox dev` Then re-open Kitematic. This usually fixes the issue, but if it persists, feel -free to view our [existing GitHub -issues](https://github.com/kitematic/kitematic/issues?q=is%3Aopen+is%3Aissue+label%3Abug). +free to view our existing GitHub +issues. ## Contributing Fixes @@ -46,6 +46,5 @@ if you're looking to help fix specific issues around VM provisioning. ## View All Issues -For a full list of Kitematic bugs or issues see our [GitHub -issues](https://github.com/kitematic/kitematic/issues?q=is%3Aopen+is%3Aissue+label%3Abug) -labelled as `bug`. +For a full list of Kitematic bugs or issues see our existing GitHub +issues labelled as `bug`. From 799a64f5c93f373b6e7dc30118cf21e2d24fee56 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 11 Aug 2015 12:23:10 -0700 Subject: [PATCH 56/70] Bump to 0.8 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e91a1c3b23..32d8333b33 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.0-rc5", + "version": "0.8.0", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 40370ea967588984916e993f8f0d77f6e3121bc9 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 11 Aug 2015 12:28:52 -0700 Subject: [PATCH 57/70] Bump versions --- Gruntfile.js | 52 +++++++++++++++++++++++++++++++++++----------------- package.json | 11 ++++++----- 2 files changed, 41 insertions(+), 22 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 51b9d69c85..4ece1f1bbd 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -62,7 +62,7 @@ module.exports = function (grunt) { options: { name: BASENAME, dir: 'build/', - out: 'dist/', + out: 'dist/windows', version: packagejson['electron-version'], platform: 'win32', arch: 'x64', @@ -103,7 +103,7 @@ module.exports = function (grunt) { exes: { files: [{ expand: true, - cwd: 'dist/' + BASENAME + '-win32', + cwd: 'dist/windows/' + BASENAME + '-win32-x64', src: [BASENAME + '.exe'] }], options: { @@ -124,16 +124,19 @@ module.exports = function (grunt) { }, 'create-windows-installer': { - appDirectory: 'dist/' + BASENAME + '-win32/', - authors: 'Docker Inc.', - loadingGif: 'util/loading.gif', - setupIcon: 'util/setup.ico', - iconUrl: 'https://raw.githubusercontent.com/kitematic/kitematic/master/util/kitematic.ico', - description: APPNAME, - title: APPNAME, - exe: BASENAME + '.exe', - version: packagejson.version, - signWithParams: '/f ' + certificateFile + ' /p <%= certificatePassword %> /tr http://timestamp.comodoca.com/rfc3161' + config: { + appDirectory: path.join(__dirname, 'dist/windows/' + BASENAME + '-win32-x64'), + outputDirectory: path.join(__dirname, 'dist/windows'), + authors: 'Docker Inc.', + loadingGif: 'util/loading.gif', + setupIcon: 'util/setup.ico', + iconUrl: 'https://raw.githubusercontent.com/kitematic/kitematic/master/util/kitematic.ico', + description: APPNAME, + title: APPNAME, + exe: BASENAME + '.exe', + version: packagejson.version, + signWithParams: '/f ' + certificateFile + ' /p <%= certificatePassword %> /tr http://timestamp.comodoca.com/rfc3161' + } }, // docker binaries @@ -175,7 +178,7 @@ module.exports = function (grunt) { expand: true, cwd: 'resources', src: ['docker*', 'ssh.exe', 'OPENSSH_LICENSE', 'msys-*'], - dest: 'dist/' + BASENAME + '-win32/resources/resources/' + dest: 'dist/windows/' + BASENAME + '-win32-x64/resources/resources' }], options: { mode: true @@ -199,8 +202,8 @@ module.exports = function (grunt) { rename: { installer: { - src: 'installer/Setup.exe', - dest: 'installer/' + BASENAME + 'Setup-' + packagejson.version + '-Windows-Alpha.exe' + src: 'dist/windows/Setup.exe', + dest: 'dist/windows/' + BASENAME + 'Setup-' + packagejson.version + '-Windows-Alpha.exe' } }, @@ -276,7 +279,22 @@ module.exports = function (grunt) { }, clean: { - release: ['build/', 'dist/', 'installer/'], + release: ['build/', 'dist/'], + }, + + compress: { + windows: { + options: { + archive: './dist/windows/' + BASENAME + '-' + packagejson.version + '-Windows-Alpha.zip', + mode: 'zip' + }, + files: [{ + expand: true, + dot: true, + cwd: './dist/windows/Kitematic-win32-x64', + src: '**/*' + }] + }, }, // livereload @@ -306,7 +324,7 @@ module.exports = function (grunt) { grunt.registerTask('default', ['download-binary', 'newer:babel', 'less', 'newer:copy:dev', 'shell:electron', 'watchChokidar']); if (process.platform === 'win32') { - grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); + grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:windows', 'copy:windows', 'rcedit:exes', 'compress', 'prompt:create-windows-installer', 'create-windows-installer', 'rename:installer']); } else { grunt.registerTask('release', ['clean:release', 'download-binary', 'babel', 'less', 'copy:dev', 'electron:osx', 'copy:osx', 'shell:sign', 'shell:zip']); } diff --git a/package.json b/package.json index e91a1c3b23..dc89fc9acf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.0-rc5", + "version": "0.8.0", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", @@ -22,8 +22,8 @@ "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } ], - "docker-version": "1.8.0-rc3", - "docker-machine-version": "0.4.0-rc2", + "docker-version": "1.8.0", + "docker-machine-version": "0.4.0", "electron-version": "0.27.2", "virtualbox-version": "5.0.0", "virtualbox-filename": "VirtualBox-5.0.0.pkg", @@ -70,13 +70,14 @@ "grunt-chmod": "^1.0.3", "grunt-cli": "^0.1.13", "grunt-contrib-clean": "^0.6.0", + "grunt-contrib-compress": "^0.13.0", "grunt-contrib-copy": "^0.8.0", "grunt-contrib-less": "^1.0.1", "grunt-contrib-watch-chokidar": "^1.0.0", "grunt-curl": "^2.2.0", "grunt-download-electron": "^2.1.1", - "grunt-electron": "^1.0.0", - "grunt-electron-installer": "^0.33.0", + "grunt-electron": "^2.0.0", + "grunt-electron-installer": "^0.37.0", "grunt-if-missing": "^1.0.0", "grunt-newer": "^1.1.1", "grunt-plistbuddy": "^0.1.1", From 1725f92c4e1ec81ade1051e6011da920429bdba4 Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Tue, 11 Aug 2015 19:23:34 -0400 Subject: [PATCH 58/70] Updated store to match VB version --- __tests__/SetupStore-test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__tests__/SetupStore-test.js b/__tests__/SetupStore-test.js index 5c693c7331..7436f140a8 100644 --- a/__tests__/SetupStore-test.js +++ b/__tests__/SetupStore-test.js @@ -20,7 +20,7 @@ describe('SetupStore', function () { pit('downloads virtualbox if it is installed but has an outdated version', function () { virtualBox.installed.mockReturnValue(true); - virtualBox.version.mockReturnValue(Promise.resolve('4.3.16')); + virtualBox.version.mockReturnValue(Promise.resolve('5.0.0')); util.compareVersions.mockReturnValue(-1); setupUtil.download.mockReturnValue(Promise.resolve()); virtualBox.filename.mockReturnValue(''); From 36373d091db26866267c144942e4614ede03a174 Mon Sep 17 00:00:00 2001 From: FrenchBen Date: Tue, 11 Aug 2015 20:06:32 -0400 Subject: [PATCH 59/70] mock package version for test to pass --- __tests__/SetupStore-test.js | 1 + 1 file changed, 1 insertion(+) diff --git a/__tests__/SetupStore-test.js b/__tests__/SetupStore-test.js index 7436f140a8..184a2f3185 100644 --- a/__tests__/SetupStore-test.js +++ b/__tests__/SetupStore-test.js @@ -55,6 +55,7 @@ describe('SetupStore', function () { machine.stop.mockReturnValue(Promise.resolve()); machine.start.mockReturnValue(Promise.resolve()); machine.upgrade.mockReturnValue(Promise.resolve()); + util.packagejson.mockReturnValue({'docker-version':'1.8.0'}); util.compareVersions.mockReturnValue(-1); machine.create.mockClear(); machine.upgrade.mockClear(); From 5d1a55386cf13a79e21b00335bb0642816d12a9f Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 11 Aug 2015 17:52:02 -0700 Subject: [PATCH 60/70] Fix bug with change in 1.8.0 remote volumes API Signed-off-by: Jeffrey Morgan --- src/components/ContainerHome.react.js | 2 +- src/components/ContainerHomeFolders.react.js | 39 +++++++++------ .../ContainerSettingsVolumes.react.js | 50 ++++++++++++------- 3 files changed, 55 insertions(+), 36 deletions(-) diff --git a/src/components/ContainerHome.react.js b/src/components/ContainerHome.react.js index a0af212ed5..f47cd9620b 100644 --- a/src/components/ContainerHome.react.js +++ b/src/components/ContainerHome.react.js @@ -41,7 +41,7 @@ var ContainerHome = React.createClass({ }, showFolders: function () { - return this.props.container.Volumes && _.keys(this.props.container.Volumes).length > 0 && this.props.container.State.Running; + return this.props.container.Mounts && this.props.container.Mounts.length > 0 && this.props.container.State.Running; }, render: function () { diff --git a/src/components/ContainerHomeFolders.react.js b/src/components/ContainerHomeFolders.react.js index 2755663d79..0aecb10622 100644 --- a/src/components/ContainerHomeFolders.react.js +++ b/src/components/ContainerHomeFolders.react.js @@ -14,30 +14,36 @@ var ContainerHomeFolder = React.createClass({ contextTypes: { router: React.PropTypes.func }, - handleClickFolder: function (hostVolume, containerVolume) { + handleClickFolder: function (source, destination) { metrics.track('Opened Volume Directory', { from: 'home' }); - if (hostVolume.indexOf(util.windowsToLinuxPath(util.home())) === -1) { + if (source.indexOf(util.windowsToLinuxPath(util.home())) === -1) { dialog.showMessageBox({ message: `Enable all volumes to edit files? This may not work with all database containers.`, buttons: ['Enable Volumes', 'Cancel'] }, (index) => { if (index === 0) { - var volumes = _.clone(this.props.container.Volumes); - var newHostVolume = util.escapePath(path.join(util.home(), util.documents(), 'Kitematic', this.props.container.Name, containerVolume)); - volumes[containerVolume] = newHostVolume; - var binds = _.pairs(volumes).map(function (pair) { - if(util.isWindows()) { - return util.windowsToLinuxPath(pair[1]) + ':' + pair[0]; + var mounts = _.clone(this.props.container.Mounts); + var newSource = util.escapePath(path.join(util.home(), util.documents(), 'Kitematic', this.props.container.Name, destination)); + var binds = mounts.map(function (m) { + let source = m.Source; + if (m.Destination === destination) { + source = newSource; } - return pair[1] + ':' + pair[0]; + + if(util.isWindows()) { + return util.windowsToLinuxPath(source) + ':' + m.Destination; + } + + return source + ':' + m.Destination; }); - mkdirp(newHostVolume, function (err) { + + mkdirp(newSource, function (err) { console.log(err); if (!err) { - shell.showItemInFolder(newHostVolume); + shell.showItemInFolder(newSource); } }); @@ -45,7 +51,7 @@ var ContainerHomeFolder = React.createClass({ } }); } else { - let path = util.isWindows() ? util.linuxToWindowsPath(hostVolume) : hostVolume; + let path = util.isWindows() ? util.linuxToWindowsPath(source) : source; shell.showItemInFolder(path); } }, @@ -60,12 +66,13 @@ var ContainerHomeFolder = React.createClass({ return false; } - var folders = _.map(_.omit(this.props.container.Volumes, (v, k) => k.indexOf('/Users/') !== -1), (val, key) => { - var firstFolder = key; + var folders = _.map(this.props.container.Mounts, (m, i) => { + let destination = m.Destination; + let source = m.Source; return ( -
+
-
{firstFolder}
+
{destination}
); }); diff --git a/src/components/ContainerSettingsVolumes.react.js b/src/components/ContainerSettingsVolumes.react.js index 2ebae2f44a..4a3a920ec3 100644 --- a/src/components/ContainerSettingsVolumes.react.js +++ b/src/components/ContainerSettingsVolumes.react.js @@ -26,16 +26,23 @@ var ContainerSettingsVolumes = React.createClass({ } metrics.track('Choose Directory for Volume'); + if(util.isWindows()) { directory = util.escapePath(util.windowsToLinuxPath(directory)); } - var volumes = _.clone(this.props.container.Volumes); - volumes[dockerVol] = directory; - var binds = _.pairs(volumes).map(function (pair) { - return pair[1] + ':' + pair[0]; + + var mounts = _.clone(this.props.container.Mounts); + _.each(mounts, m => { + if (m.Destination === dockerVol) { + m.Source = directory; + } }); - containerActions.update(this.props.container.Name, {Binds: binds, Volumes: volumes}); + var binds = mounts.map(m => { + return m.Source + ':' + m.Destination; + }); + + containerActions.update(this.props.container.Name, {Binds: binds, Mounts: mounts}); }); }, handleRemoveVolumeClick: function (dockerVol) { @@ -45,13 +52,17 @@ var ContainerSettingsVolumes = React.createClass({ var hostConfig = _.clone(this.props.container.HostConfig); var binds = hostConfig.Binds; - var volumes = _.clone(this.props.container.Volumes); - volumes[dockerVol] = null; + var mounts = _.clone(this.props.container.Mounts); + _.each(mounts, m => { + if (m.Destination === dockerVol) { + m.Source = null; + } + }); var index = _.findIndex(binds, bind => bind.indexOf(`:${dockerVol}`) !== -1); if (index >= 0) { binds.splice(index, 1); } - containerActions.update(this.props.container.Name, {HostConfig: hostConfig, Binds: binds, Volumes: volumes}); + containerActions.update(this.props.container.Name, {HostConfig: hostConfig, Binds: binds, Mounts: mounts}); }, handleOpenVolumeClick: function (path) { metrics.track('Opened Volume Directory', { @@ -69,24 +80,25 @@ var ContainerSettingsVolumes = React.createClass({ } var homeDir = util.isWindows() ? util.windowsToLinuxPath(util.home()) : util.home(); - var volumes = _.map(this.props.container.Volumes, (val, key) => { - if (!val || val.indexOf(homeDir) === -1) { - val = ( + var mounts= _.map(this.props.container.Mounts, (m, i) => { + let source = m.Source, destination = m.Destination; + if (!m.Source || m.Source.indexOf(homeDir) === -1) { + source = ( No Folder ); } else { - let local = util.isWindows() ? util.linuxToWindowsPath(val) : val; - val = ( - {local.replace(process.env.HOME, '~')} + let local = util.isWindows() ? util.linuxToWindowsPath(source) : source; + source = ( + {local.replace(process.env.HOME, '~')} ); } return ( - {key} - {val} + {destination} + {source} - Change - Remove + Change + Remove ); @@ -104,7 +116,7 @@ var ContainerSettingsVolumes = React.createClass({ - {volumes} + {mounts}
From 1a17f5de2374222d5e632bb9e80d4b28fa438f64 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 11 Aug 2015 17:52:17 -0700 Subject: [PATCH 61/70] Fix electron packager update for os x Signed-off-by: Jeffrey Morgan --- Gruntfile.js | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 4ece1f1bbd..abf1ae62b8 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -46,15 +46,19 @@ module.exports = function (grunt) { APPNAME += ' (Beta)'; } - var OSX_OUT = './dist/osx'; - var OSX_FILENAME = OSX_OUT + '/' + APPNAME + '.app'; + var OSX_OUT = './dist'; + var OSX_OUT_X64 = OSX_OUT + '/' + APPNAME + '-darwin-x64'; + var OSX_FILENAME = OSX_OUT_X64 + '/' + APPNAME + '.app'; grunt.initConfig({ IDENTITY: 'Developer ID Application: Docker Inc', APPNAME: APPNAME, + APPNAME_ESCAPED: APPNAME.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'), OSX_OUT: OSX_OUT, + OSX_OUT_ESCAPED: OSX_OUT.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'), + OSX_OUT_X64: OSX_OUT_X64, OSX_FILENAME: OSX_FILENAME, - OSX_FILENAME_ESCAPED: OSX_FILENAME.replace(' ', '\\ ').replace('(','\\(').replace(')','\\)'), + OSX_FILENAME_ESCAPED: OSX_FILENAME.replace(/ /g, '\\ ').replace(/\(/g,'\\(').replace(/\)/g,'\\)'), // electron electron: { @@ -62,7 +66,7 @@ module.exports = function (grunt) { options: { name: BASENAME, dir: 'build/', - out: 'dist/windows', + out: 'dist', version: packagejson['electron-version'], platform: 'win32', arch: 'x64', @@ -74,7 +78,7 @@ module.exports = function (grunt) { options: { name: APPNAME, dir: 'build/', - out: '<%= OSX_OUT %>', + out: 'dist', version: packagejson['electron-version'], platform: 'darwin', arch: 'x64', @@ -103,7 +107,7 @@ module.exports = function (grunt) { exes: { files: [{ expand: true, - cwd: 'dist/windows/' + BASENAME + '-win32-x64', + cwd: 'dist/' + BASENAME + '-win32-x64', src: [BASENAME + '.exe'] }], options: { @@ -125,8 +129,8 @@ module.exports = function (grunt) { 'create-windows-installer': { config: { - appDirectory: path.join(__dirname, 'dist/windows/' + BASENAME + '-win32-x64'), - outputDirectory: path.join(__dirname, 'dist/windows'), + appDirectory: path.join(__dirname, 'dist/' + BASENAME + '-win32-x64'), + outputDirectory: path.join(__dirname, 'dist'), authors: 'Docker Inc.', loadingGif: 'util/loading.gif', setupIcon: 'util/setup.ico', @@ -178,7 +182,7 @@ module.exports = function (grunt) { expand: true, cwd: 'resources', src: ['docker*', 'ssh.exe', 'OPENSSH_LICENSE', 'msys-*'], - dest: 'dist/windows/' + BASENAME + '-win32-x64/resources/resources' + dest: 'dist/' + BASENAME + '-win32-x64/resources/resources' }], options: { mode: true @@ -202,8 +206,8 @@ module.exports = function (grunt) { rename: { installer: { - src: 'dist/windows/Setup.exe', - dest: 'dist/windows/' + BASENAME + 'Setup-' + packagejson.version + '-Windows-Alpha.exe' + src: 'dist/Setup.exe', + dest: 'dist/' + BASENAME + 'Setup-' + packagejson.version + '-Windows-Alpha.exe' } }, @@ -274,7 +278,7 @@ module.exports = function (grunt) { ].join(' && '), }, zip: { - command: 'ditto -c -k --sequesterRsrc --keepParent <%= OSX_FILENAME_ESCAPED %> <%= OSX_OUT %>/' + BASENAME + '-' + packagejson.version + '-Mac.zip', + command: 'ditto -c -k --sequesterRsrc --keepParent <%= OSX_FILENAME_ESCAPED %> dist/' + BASENAME + '-' + packagejson.version + '-Mac.zip', } }, @@ -285,13 +289,13 @@ module.exports = function (grunt) { compress: { windows: { options: { - archive: './dist/windows/' + BASENAME + '-' + packagejson.version + '-Windows-Alpha.zip', + archive: './dist/' + BASENAME + '-' + packagejson.version + '-Windows-Alpha.zip', mode: 'zip' }, files: [{ expand: true, dot: true, - cwd: './dist/windows/Kitematic-win32-x64', + cwd: './dist/Kitematic-win32-x64', src: '**/*' }] }, From 0489c8a7cabbfe3c02748ac7d81c26d63b993d5a Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 11 Aug 2015 17:52:34 -0700 Subject: [PATCH 62/70] Bump to 0.8.1 Signed-off-by: Jeffrey Morgan --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dc89fc9acf..6ac02227e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.0", + "version": "0.8.1", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 2af6a595a927cbef8f63f0648cfb2ee929f7106d Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Tue, 11 Aug 2015 18:09:11 -0700 Subject: [PATCH 63/70] Fix bug where destroying a stopped container would fail Signed-off-by: Jeffrey Morgan --- src/utils/DockerUtil.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/utils/DockerUtil.js b/src/utils/DockerUtil.js index e2b0e36c61..70b8f297d3 100644 --- a/src/utils/DockerUtil.js +++ b/src/utils/DockerUtil.js @@ -307,12 +307,12 @@ export default { let container = this.client.getContainer(name); container.unpause(function () { - container.kill(function (error) { - if (error) { - containerServerActions.error({name, error}); - return; - } - container.remove(function () { + container.kill(function () { + container.remove(function (error) { + if (error) { + containerServerActions.error({name, error}); + return; + } containerServerActions.destroyed({id: name}); var volumePath = path.join(util.home(), 'Kitematic', name); if (fs.existsSync(volumePath)) { From f63c122bd0de0714ba22c80bb2d883c062820314 Mon Sep 17 00:00:00 2001 From: moxiegirl Date: Wed, 12 Aug 2015 19:29:56 -0700 Subject: [PATCH 64/70] Update index.md Removing a go template checked in by mistake. Fixes #921 Signed-off-by: Mary Anthony --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 2d81b7c047..0fbbf1dd1b 100755 --- a/docs/index.md +++ b/docs/index.md @@ -11,6 +11,6 @@ weight=2 # Kitematic -Kitematic, the Docker GUI, runs on Mac OS X and Windows operating systems. Beginning with the 1.8 Docker release, you use the Docker Toolbox to install Kitematic. See the [Mac OS X installation guide]({{% thebaseurl %}}mac) or the [Windows installation guide]({{% thebaseurl %}}installation/windows) for details on installing with Docker Toolbox. +Kitematic, the Docker GUI, runs on Mac OS X and Windows operating systems. Beginning with the 1.8 Docker release, you use the Docker Toolbox to install Kitematic. See the [Mac OS X installation guide](https://docs.docker.com/mac) or the [Windows installation guide](https://docs.docker.com/installation/windows) for details on installing with Docker Toolbox. For information about using Kitematic, take a look at the [User Guide](userguide). From 6f2e7351e0400eff7594eeec4265c3b61c6f3663 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 12 Aug 2015 20:37:21 -0700 Subject: [PATCH 65/70] Bump docker to 1.8.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6ac02227e2..520119c63b 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "url": "http://www.apache.org/licenses/LICENSE-2.0.html" } ], - "docker-version": "1.8.0", + "docker-version": "1.8.1", "docker-machine-version": "0.4.0", "electron-version": "0.27.2", "virtualbox-version": "5.0.0", From 41d14104757b8266623df67823038e67d45d4377 Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Wed, 12 Aug 2015 20:37:46 -0700 Subject: [PATCH 66/70] Bump to 0.8.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 520119c63b..5ceb9d7103 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.1", + "version": "0.8.2", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", From 61635889abf5fb77b4e6de2b130e3d8ef0f6c3ba Mon Sep 17 00:00:00 2001 From: Warun Kietduriyakul Date: Fri, 14 Aug 2015 23:18:18 +0700 Subject: [PATCH 67/70] Bug: Incorrect Reset Password URL Signed-off-by: Warun Kietduriyakul --- src/components/AccountLogin.react.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/AccountLogin.react.js b/src/components/AccountLogin.react.js index 4c9bf66e98..7aeae351e7 100644 --- a/src/components/AccountLogin.react.js +++ b/src/components/AccountLogin.react.js @@ -60,7 +60,7 @@ module.exports = React.createClass({ }, handleClickForgotPassword: function () { - shell.openExternal('https://hub.docker.com/account/forgot-password/'); + shell.openExternal('https://hub.docker.com/reset-password/'); }, render: function () { From 9dccc768828cb9154d2c43fc85969b008521082a Mon Sep 17 00:00:00 2001 From: Jeffrey Morgan Date: Sat, 15 Aug 2015 17:43:53 -0700 Subject: [PATCH 68/70] Bump to 0.8.3 --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index 5ceb9d7103..0163b80a3a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Kitematic", - "version": "0.8.2", + "version": "0.8.3", "author": "Kitematic", "description": "Simple Docker Container management for Mac OS X.", "homepage": "https://kitematic.com/", @@ -23,13 +23,13 @@ } ], "docker-version": "1.8.1", - "docker-machine-version": "0.4.0", + "docker-machine-version": "0.4.1", "electron-version": "0.27.2", - "virtualbox-version": "5.0.0", - "virtualbox-filename": "VirtualBox-5.0.0.pkg", - "virtualbox-filename-win": "VirtualBox-5.0.0.exe", - "virtualbox-checksum": "9aa3746c508643cfd70093f484ac0a64e02438d740020e294d65a7fd409bdb3d", - "virtualbox-checksum-win": "0ca898eb23e20506a28bf84514536ba5455cc6a35234ea096245e42ee113e617", + "virtualbox-version": "5.0.2", + "virtualbox-filename": "VirtualBox-5.0.2.pkg", + "virtualbox-filename-win": "VirtualBox-5.0.2.exe", + "virtualbox-checksum": "384414edab277c376a2ac3d02e5f316434fa4d54d31db44dc85b6e560eda4143", + "virtualbox-checksum-win": "a8183d21566fc6cb327e4b71303fa0d04fc6cd079ba83d66818d18c5ef427037", "dependencies": { "alt": "^0.16.2", "ansi-to-html": "0.3.0", From 75a11424a40eb04907d08cc52078f6422fb730c3 Mon Sep 17 00:00:00 2001 From: Mary Anthony Date: Wed, 26 Aug 2015 16:50:44 -0700 Subject: [PATCH 69/70] Fixing problem reported by Sabine Signed-off-by: Mary Anthony --- docs/userguide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/userguide.md b/docs/userguide.md index 7085922b44..6589d5c1a6 100755 --- a/docs/userguide.md +++ b/docs/userguide.md @@ -16,7 +16,7 @@ Kitematic is an open source project built to simplify and streamline using Docker on a Mac or Windows (coming soon) PC. Kitematic automates the Docker installation and setup process and provides an intuitive graphical user interface (GUI) for running Docker containers. Kitematic integrates with -[Docker Machine]({{% thebaseurl %}}machine/) to provision a VirtualBox VM +[Docker Machine](https://docs.docker.com/machine/) to provision a VirtualBox VM and install the Docker Engine locally on your machine. Once installed, the Kitematic GUI launches and from the home screen you will be From de29461219abb064fd05056123ce54f93119b506 Mon Sep 17 00:00:00 2001 From: Morton Fox Date: Thu, 27 Aug 2015 01:31:25 -0400 Subject: [PATCH 70/70] Fix link to Kitematic forum --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e32e44cc81..4de3a967c7 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Please read through our [Contributing Guidelines](https://github.com/kitematic/k ## Community - [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/kitematic/kitematic?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -- Ask questions on our [user forum](https://forums.docker.com/c/kitematic). +- Ask questions on our [user forum](https://forums.docker.com/c/open-source-projects/kitematic). - **#kitematic** on IRC. [Join the channel](http://webchat.freenode.net/?channels=%23kitematic&uio=d4). - Follow [@kitematic on Twitter](https://twitter.com/kitematic).