From 1eb0e6a1c5272858ef2173f2142ae86beb7355b3 Mon Sep 17 00:00:00 2001 From: nikitam Date: Fri, 19 Jan 2018 17:17:44 +0530 Subject: [PATCH 001/419] schema-custom-api-to-static-api --- client/src/api/schema/index.js | 8 ++ client/src/pages/schema/New.vue | 31 +++-- client/src/pages/schema/mapping/New.vue | 47 ++++--- client/src/pages/schema/schemaList.vue | 123 +++++++++++------- client/src/store/actions.js | 2 +- service/src/services/schema/schema.hooks.js | 16 ++- service/src/services/schema/schema.service.js | 67 ++++++---- 7 files changed, 194 insertions(+), 100 deletions(-) diff --git a/client/src/api/schema/index.js b/client/src/api/schema/index.js index 33fdb41..07c0685 100644 --- a/client/src/api/schema/index.js +++ b/client/src/api/schema/index.js @@ -24,6 +24,14 @@ export default { return api.request('get', '/' + model + '/' + id) } }, + getCustom: (string) => { + // console.log('string', string) + if (!string) { + return api.request('get', '/' + model + '?isdeleted=false') + } else { + return api.request('get', '/' + model + string) + } + }, getAll: getAllEntity, getThis: (id) => { return api.request('get', '/' + model + '/' + id) diff --git a/client/src/pages/schema/New.vue b/client/src/pages/schema/New.vue index aec239f..e668133 100644 --- a/client/src/pages/schema/New.vue +++ b/client/src/pages/schema/New.vue @@ -46,7 +46,7 @@
@@ -192,8 +192,8 @@ prop="database" :label-width="115" :rules="{required: true, message: 'Please select Database'}"> - - + + @@ -492,8 +492,8 @@ @@ -764,7 +764,7 @@ export default { }, validateTitle: async function(title) { var res = await (api.request('get', '/schema')) - for (let [inx, obj] of res.data.entries()) { + for (let [inx, obj] of res.data.data.entries()) { if (obj.title === title) { return 'yes' } @@ -918,9 +918,9 @@ export default { }) // let checkType = ''; this.$store.getters.allSchema.forEach((schema) => { - if (id !== schema._id) { + if (id !== schema.id) { type.push({ - value: schema._id, + value: schema.id, label: schema.title }) } @@ -933,12 +933,15 @@ export default { if (valid) { /* Making API call to authenticate a user */ this.loading = true - if (this.formSchema._id === undefined) { + if (this.formSchema.id === undefined) { this.formSchema['viewTemplate'] = this.viewtemplate this.formSchema['createTemplate'] = this.createtemplate this.formSchema['emailTemplate'] = this.mjmlUpload + this.formSchema['createdAt'] = new Date() + this.formSchema['isdeleted'] = false api.request('post', '/schema', this.formSchema) .then(response => { + // console.log('response', response) // this.toggleLoading() // this.$router.push(data.redirect) // console.log('Response Schema ... ', response.data) @@ -948,7 +951,7 @@ export default { this.viewTemplate = [] this.createTemplate = [] this.mjmlUpload = [] - this.$store.dispatch('getSchema') + // this.$store.dispatch('getSchema') this.$router.go(-1) // this.$router.push('/') }) @@ -962,7 +965,7 @@ export default { // this.formSchema['createTemplate'] = this.createtemplate // this.formSchema['_id'] = this.formSchema._id // console.log('aaa', this.formSchema) - api.request('put', '/schema/' + this.formSchema._id, this.formSchema).then(response => { + api.request('put', '/schema/' + this.formSchema.id, this.formSchema).then(response => { // this.toggleLoading() // this.$router.push(data.redirect) console.log(response) @@ -1161,9 +1164,9 @@ export default { }, '$store.getters.allSchema': function() { this.$store.getters.allSchema.forEach((schema) => { - if (this.$route.params.id !== schema._id) { + if (this.$route.params.id !== schema.id) { this.types.push({ - value: schema._id, + value: schema.id, label: schema.title }) } diff --git a/client/src/pages/schema/mapping/New.vue b/client/src/pages/schema/mapping/New.vue index 90d1945..a0d733c 100644 --- a/client/src/pages/schema/mapping/New.vue +++ b/client/src/pages/schema/mapping/New.vue @@ -1,24 +1,24 @@ @@ -117,7 +117,7 @@ @@ -198,7 +198,7 @@ export default { }, asyncComputed: { async html () { - if (this.selectedProcess.inputProperty && this.selectedProcess.inputProperty[0].createTemplate) { + if (this.selectedProcess.inputProperty && this.selectedProcess.inputProperty.length > 0 && this.selectedProcess.inputProperty[0].createTemplate) { let index = await _.findIndex(this.selectedProcess.inputProperty[0].entityschema.createTemplate, ['filename', this.selectedProcess.inputProperty[0].createTemplate]) var url = this.selectedProcess.inputProperty[0].entityschema.createTemplate[index].url url = url.substr(0, 4) + url.substr(5) @@ -345,13 +345,18 @@ export default { return _.size(log) }, getInputColumns (entity) { - return _.map(entity, m => { - return {title: m.name, key: m.name} - }) + if (this.selectedProcess.inputProperty && this.selectedProcess.inputProperty.length > 0 && this.selectedProcess.inputProperty[0].entityschema.entity) { + return _.map(entity, m => { + return {title: m.name, key: m.name} + }) + } else { + return _.map(this.getLastLog(this.selectedLogs).input[0], (m, k) => { + return {title: k, key: k} + }) + } }, async handleProcessClick (item, log) { this.showProp = true - console.log('item ', item) this.selectedProcess = item this.selectedLogs = log this.lastLog = this.getLastLog(this.selectedLogs) From 47b50c09ed5c71cbaaee72bd86197aa1c8370acf Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Wed, 24 Jan 2018 19:37:21 +0530 Subject: [PATCH 010/419] Resolved mapping edit issue --- client/src/api/instance/index.js | 1 - client/src/api/schema/index.js | 1 + client/src/components/SchemaInstance.vue | 41 +++++++-- client/src/pages/approval/FormReply.vue | 1 + client/src/pages/flow/instance/New.vue | 3 +- client/src/pages/schema/mapping/New.vue | 110 +++++------------------ 6 files changed, 57 insertions(+), 100 deletions(-) diff --git a/client/src/api/instance/index.js b/client/src/api/instance/index.js index e0c0a8b..0e430e5 100644 --- a/client/src/api/instance/index.js +++ b/client/src/api/instance/index.js @@ -12,7 +12,6 @@ export default { return api.request('get', '/' + model + '/' + id + '?schemaid=' + Schemaid) }, post: (data) => { - console.log('data', data) return api.request('post', '/' + model, data) }, put: (id, data) => { diff --git a/client/src/api/schema/index.js b/client/src/api/schema/index.js index 2d2663f..fd36a25 100644 --- a/client/src/api/schema/index.js +++ b/client/src/api/schema/index.js @@ -2,6 +2,7 @@ import api from '../../api' let model = 'schema' let getAllEntity = async(id) => { let response = await api.request('get', '/' + model + '/' + id) + console.log('response', response) for (let [index, item] of response.data.entity.entries()) { if (item.customtype) { response.data.entity[index] = await getAllEntity(item.type) diff --git a/client/src/components/SchemaInstance.vue b/client/src/components/SchemaInstance.vue index c4062bd..32ca6ea 100644 --- a/client/src/components/SchemaInstance.vue +++ b/client/src/components/SchemaInstance.vue @@ -166,18 +166,43 @@ export default { this.handleAdd() // } }, + deleteId (obj) { + let self = this + return _.map(obj, (entry) => { + entry.Schemaid = self.schema.id + return _.chain(entry).omit(['id', '_id']).reduce((result, value, key) => { + if (_.isArray(value)) { + result[key] = self.deleteId(value) + } else { + result[key] = value + } + return result + }, {}).value() + }) + }, handleAdd () { var self = this var obj = {} if (this.lastLog !== undefined && this.lastLog.input.length !== 0) { - _.forEach(self.lastLog.input, (obj) => { - // obj = this.lastLog.input[0] - // obj.database = this.schema.database - obj.Schemaid = self.schema.id - delete obj.id - delete obj._id - self.formSchemaInstance.data.push(obj) + self.formSchemaInstance.data = _.map(self.lastLog.input, (entry) => { + entry.Schemaid = self.schema.id + return _.chain(entry).omit(['id', '_id']).reduce((result, value, key) => { + if (_.isArray(value)) { + result[key] = self.deleteId(value) + } else { + result[key] = value + } + return result + }, {}).value() }) + // _.forEach(self.lastLog.input, (obj) => { + // // obj = this.lastLog.input[0] + // // obj.database = this.schema.database + // obj.Schemaid = self.schema.id + // delete obj.id + // delete obj._id + // self.formSchemaInstance.data.push(obj) + // }) } else { // obj.database = this.schema.database obj.Schemaid = this.schema.id @@ -208,7 +233,6 @@ export default { }, handleSubmit (name) { var obj = this.makeObj() - console.log('QQQQQQQQQQQQ', obj.data) this.validFlag = true this.validErr = [] var check = this.checkValidation(obj.data[0], this.entity) @@ -235,7 +259,6 @@ export default { var self = this // var flag = true _.forEach(ent, function (v) { - console.log(JSON.stringify(v)) if (v.customtype) { // console.log('data[v.name]', data[v.name]) _.forEach(data[v.name], (d) => { diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index 3c4bf96..e8078cd 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -52,6 +52,7 @@ export default { await flowInstance.getThis(self.$route.params.fiid) .then(async function (response) { + console.log('self.selectedProcess.inputProperty[0].entityschema', self.selectedProcess.inputProperty[0].entityschema) self.selectedProcess = await _.find(response.data.processList, ['id', self.$route.params.pid]) self.entitySchema = await self.getSchema(self.selectedProcess.inputProperty[0].entityschema._id) self.log = await _.chain(response.data.process_log).orderBy(['lastModified'], ['asc']).findLast((f) => { return f.job === self.$route.params.pid }).value() diff --git a/client/src/pages/flow/instance/New.vue b/client/src/pages/flow/instance/New.vue index e76bbc2..356f5f2 100644 --- a/client/src/pages/flow/instance/New.vue +++ b/client/src/pages/flow/instance/New.vue @@ -345,8 +345,9 @@ export default { return _.size(log) }, getInputColumns (entity) { + let self = this if (this.selectedProcess.inputProperty && this.selectedProcess.inputProperty.length > 0 && this.selectedProcess.inputProperty[0].entityschema.entity) { - return _.map(entity, m => { + return _.map(self.selectedProcess.inputProperty[0].entityschema.entity, m => { return {title: m.name, key: m.name} }) } else { diff --git a/client/src/pages/schema/mapping/New.vue b/client/src/pages/schema/mapping/New.vue index a0d733c..b3e3d41 100644 --- a/client/src/pages/schema/mapping/New.vue +++ b/client/src/pages/schema/mapping/New.vue @@ -52,7 +52,7 @@ - - - diff --git a/client/src/layout/user/Master.vue b/client/src/layout/user/Master.vue index 39d101f..482bcb0 100644 --- a/client/src/layout/user/Master.vue +++ b/client/src/layout/user/Master.vue @@ -1,6 +1,5 @@ - --> + diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index ba30979..4e59965 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -69,6 +69,12 @@ methods: { async save () { let xmlData + let svgData = '' + console.log('this.bpmnModeler', this.bpmnModeler) + this.bpmnModeler.saveSVG({ format: true }, + function (e, svg) { + svgData = svg + }) this.bpmnModeler.saveXML({ format: true }, function (e, xml) { xmlData = xml @@ -80,6 +86,7 @@ flowObject.ProcessName = data.definitions.process._name flowObject.xml = xmlData flowObject.json = await this.generateJson(xmlData) + flowObject.svg = svgData // console.log('xmlData', flowObject.json) let result = null if (this.$route.params.id !== undefined) { diff --git a/client/src/pages/user/dashboard.vue b/client/src/pages/user/dashboard.vue index 5d33bbb..1c5a4d2 100644 --- a/client/src/pages/user/dashboard.vue +++ b/client/src/pages/user/dashboard.vue @@ -1,56 +1,138 @@ - @@ -39,7 +48,10 @@ export default { URL: '', err: [], log: {}, - isdefault: false + isdefault: false, + status: 'waiting', + showOutput: [], + cols: [] } }, computed: { @@ -74,10 +86,26 @@ export default { await flowInstance.getThis(self.$route.params.fiid) .then(async function (response) { // console.log('self.selectedProcess.inputProperty[0].entityschema', self.selectedProcess.inputProperty[0].entityschema) - self.selectedProcess = await _.find(response.data.processList, ['id', self.$route.params.pid]) - // console.log('response.data.process_log', self.selectedProcess.inputProperty[0].entityschema.id) - self.entitySchema = await self.getSchema(self.selectedProcess.inputProperty[0].entityschema.id) - self.log = await _.chain(response.data.process_log).orderBy(['lastModified'], ['asc']).findLast((f) => { return f.job === self.$route.params.pid }).value() + let getlastlog = _.chain(response.data.process_log).orderBy(['lastModified'], ['desc']).head().value() + console.log('getlastlog', getlastlog) + if (getlastlog !== undefined && getlastlog.status === 'inputRequired') { + self.status = 'inputRequired' + self.selectedProcess = await _.find(response.data.processList, ['id', getlastlog.job]) + // console.log('response.data.process_log', self.selectedProcess.inputProperty[0].entityschema.id) + self.entitySchema = await self.getSchema(self.selectedProcess.inputProperty[0].entityschema.id) + self.log = getlastlog + // self.log = await _.chain(response.data.process_log).orderBy(['lastModified'], ['asc']).findLast((f) => { return f.job === self.$route.params.pid }).value() + } + if (getlastlog !== undefined && getlastlog.status === 'completed') { + self.status = 'completed' + self.log = getlastlog + self.status = 'completed' + self.showOutput = getlastlog.output + let obj = _.omit(getlastlog.output[0], ['_id', 'Schemaid']) + self.cols = _.map(obj, (v, k) => { + return { title: k, key: k } + }) + } }) .catch(function (error) { self.$Notice.error({title: 'Error..!', desc: error}) @@ -142,7 +170,7 @@ export default { let dataObject1 = { 'instanceid': this.$route.params.fiid, 'data': maindata, - 'processid': this.$route.params.pid, + 'processid': this.log.job, 'jobId': this.log.jobId } // console.log(validated, maindata.length) @@ -327,19 +355,44 @@ export default { .catch(function (error) { console.log('Error', error) self.$Notice.error({title: 'Error..!', desc: error}) - return [] + return {data: []} }) - self.selectedProcess = _.find(response.data.processList, ['id', self.$route.params.pid]) - // console.log('self.selectedProcess', self.selectedProcess) - // console.log('self.log', self.log) - self.entitySchema = await self.getSchema(self.selectedProcess.inputProperty[0].entityschema.id) - // console.log('Schema', self.entitySchema) - // console.log('createTemplate length', self.selectedProcess.inputProperty[0].entityschema.createTemplate, self.selectedProcess.inputProperty[0].entityschema.createTemplate.length) - let index = _.findIndex(this.selectedProcess.inputProperty[0].entityschema.createTemplate, ['filename', self.selectedProcess.inputProperty[0].createTemplate]) - // console.log('index................', index) - if (index < 0) { - this.isdefault = true + let getlastlog = _.chain(response.data.process_log).orderBy(['lastModified'], ['desc']).head().value() + console.log('getlastlog', getlastlog) + if (getlastlog !== undefined && getlastlog.status === 'inputRequired') { + self.status = 'inputRequired' + self.selectedProcess = _.find(response.data.processList, ['id', getlastlog.job]) + // console.log('self.selectedProcess', self.selectedProcess) + // console.log('self.log', self.log) + self.entitySchema = await self.getSchema(self.selectedProcess.inputProperty[0].entityschema.id) + self.log = getlastlog + // console.log('Schema', self.entitySchema) + // console.log('createTemplate length', self.selectedProcess.inputProperty[0].entityschema.createTemplate, self.selectedProcess.inputProperty[0].entityschema.createTemplate.length) + let index = _.findIndex(this.selectedProcess.inputProperty[0].entityschema.createTemplate, ['filename', self.selectedProcess.inputProperty[0].createTemplate]) + // console.log('index................', index) + if (index < 0) { + this.isdefault = true + } + } + if (getlastlog !== undefined && getlastlog.status === 'completed') { + self.status = 'completed' + self.showOutput = getlastlog.output + let obj = _.omit(getlastlog.output[0], ['_id', 'Schemaid']) + self.cols = _.map(obj, (v, k) => { + return { title: k, key: k } + }) } + // self.selectedProcess = _.find(response.data.processList, ['id', self.$route.params.pid]) + // // console.log('self.selectedProcess', self.selectedProcess) + // // console.log('self.log', self.log) + // self.entitySchema = await self.getSchema(self.selectedProcess.inputProperty[0].entityschema.id) + // // console.log('Schema', self.entitySchema) + // // console.log('createTemplate length', self.selectedProcess.inputProperty[0].entityschema.createTemplate, self.selectedProcess.inputProperty[0].entityschema.createTemplate.length) + // let index = _.findIndex(this.selectedProcess.inputProperty[0].entityschema.createTemplate, ['filename', self.selectedProcess.inputProperty[0].createTemplate]) + // // console.log('index................', index) + // if (index < 0) { + // this.isdefault = true + // } } }, async mounted () { diff --git a/client/src/router/index.js b/client/src/router/index.js index 14f1487..378c0fd 100644 --- a/client/src/router/index.js +++ b/client/src/router/index.js @@ -272,7 +272,7 @@ const routes = [{ name: 'mail/reply', component: Reply }, { - path: '/form/reply/:pid/:fiid', + path: '/form/reply/:fiid', name: 'form/reply', component: FormReply }] From 19c352063acbe00ea102024b74ade88521ca108e Mon Sep 17 00:00:00 2001 From: nikitam Date: Wed, 7 Feb 2018 11:53:37 +0530 Subject: [PATCH 032/419] added socket to from reply page --- JobQue/seneca-job-queue/logs | 1 + client/src/pages/approval/FormReply.vue | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/JobQue/seneca-job-queue/logs b/JobQue/seneca-job-queue/logs index e69de29..8258999 100644 --- a/JobQue/seneca-job-queue/logs +++ b/JobQue/seneca-job-queue/logs @@ -0,0 +1 @@ +{"level":30,"time":1517983491512,"msg":"End Process","pid":7161,"hostname":"OBLAP-93","fId":"e3f728a2-3a9b-455a-aca2-22daa6c1107c","jobId":"EndEvent_1wkncym","v":1} diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index f746481..6610d2b 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -412,6 +412,13 @@ export default { self.handleSubmit(event.data) } }) + }, + feathers: { + 'flowz-instance': { + updated (data) { + this.init(this.$route.params.fiid) + } + } } } From e030c0ca40fe76e47348cf802f2338563e49263d Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Wed, 7 Feb 2018 15:38:39 +0530 Subject: [PATCH 033/419] increase json request size --- client/src/pages/schema/New.vue | 5 ++++- service/src/app.js | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/client/src/pages/schema/New.vue b/client/src/pages/schema/New.vue index ea30a2b..d048d8e 100644 --- a/client/src/pages/schema/New.vue +++ b/client/src/pages/schema/New.vue @@ -346,7 +346,7 @@ -
+
Date: Wed, 7 Feb 2018 17:40:14 +0530 Subject: [PATCH 034/419] change user layout --- client/src/router/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/router/index.js b/client/src/router/index.js index 378c0fd..7430500 100644 --- a/client/src/router/index.js +++ b/client/src/router/index.js @@ -4,7 +4,7 @@ import VueRouter from 'vue-router' import Layout from '@/layout/Master' import userLayout from '@/layout/user/Master' -import commonLayout from '@/layout/user/Common.vue' +// import commonLayout from '@/layout/user/Common.vue' // userLayout // import userLayout from '@/userLayout/Master' import UserDashboard from '@/pages/user/dashboard' @@ -266,7 +266,7 @@ const routes = [{ }, { path: '/', name: 'Reply', - component: commonLayout, + component: userLayout, children: [{ path: '/mail/reply/:mailid/:pid/:jobid/:fiid', name: 'mail/reply', From 13081142b725cd4535baa5eddfe57013311b08c1 Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Wed, 7 Feb 2018 18:47:18 +0530 Subject: [PATCH 035/419] add userId in schema store --- client/src/pages/schema/New.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/client/src/pages/schema/New.vue b/client/src/pages/schema/New.vue index d048d8e..5b14ead 100644 --- a/client/src/pages/schema/New.vue +++ b/client/src/pages/schema/New.vue @@ -972,6 +972,7 @@ export default { if (valid) { /* Making API call to authenticate a user */ this.loading = true + this.formSchema.userID = this.$store.state.user._id if (this.formSchema.id === undefined) { this.formSchema['viewTemplate'] = this.vtemplate.viewtemplate this.formSchema['createTemplate'] = this.etemplate.createtemplate From d978e8c89b14191485b0b3e62ea7ec1b24da39bb Mon Sep 17 00:00:00 2001 From: nikitam Date: Wed, 7 Feb 2018 20:16:51 +0530 Subject: [PATCH 036/419] added model for input and output showing data --- JobQue/seneca-job-queue/logs | 1 - client/src/pages/approval/FormReply.vue | 309 ++++++++++++++---- .../src/pages/approval/expand-FormReply.vue | 38 +++ client/src/pages/flow/instance/New.vue | 1 + 4 files changed, 282 insertions(+), 67 deletions(-) create mode 100644 client/src/pages/approval/expand-FormReply.vue diff --git a/JobQue/seneca-job-queue/logs b/JobQue/seneca-job-queue/logs index 8258999..e69de29 100644 --- a/JobQue/seneca-job-queue/logs +++ b/JobQue/seneca-job-queue/logs @@ -1 +0,0 @@ -{"level":30,"time":1517983491512,"msg":"End Process","pid":7161,"hostname":"OBLAP-93","fId":"e3f728a2-3a9b-455a-aca2-22daa6c1107c","jobId":"EndEvent_1wkncym","v":1} diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index 6610d2b..d0f1122 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -3,6 +3,7 @@

Make Request

Notes : {{ notes }}

+
@@ -15,31 +16,45 @@
  • {{item}}
  • -
    - Process Completed + +
    - Waiting.... + +
    - diff --git a/client/src/pages/approval/expand-FormReply.vue b/client/src/pages/approval/expand-FormReply.vue new file mode 100644 index 0000000..45cbb18 --- /dev/null +++ b/client/src/pages/approval/expand-FormReply.vue @@ -0,0 +1,38 @@ + + diff --git a/client/src/pages/flow/instance/New.vue b/client/src/pages/flow/instance/New.vue index 07226f2..5d51c52 100644 --- a/client/src/pages/flow/instance/New.vue +++ b/client/src/pages/flow/instance/New.vue @@ -313,6 +313,7 @@ export default { _.forEach(self.flowInstance.processList, function (process) { var lastProcess = process.log[_.findLastKey(process.log)] if (lastProcess) { + console.log('>>>>>>>>>>>>>>>>>>>>......', process.id, self.getCurrentStatus(lastProcess)) viewer.get('canvas').addMarker(process.id, self.getCurrentStatus(lastProcess)) } }) From f3a0b7704a22907d191caee77beb87b28c4c97ab Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 8 Feb 2018 10:52:05 +0530 Subject: [PATCH 037/419] added form reply with socket --- JobQue/seneca-job-queue/logs | 1 + client/src/pages/approval/FormReply.vue | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/JobQue/seneca-job-queue/logs b/JobQue/seneca-job-queue/logs index e69de29..e355855 100644 --- a/JobQue/seneca-job-queue/logs +++ b/JobQue/seneca-job-queue/logs @@ -0,0 +1 @@ +{"level":40,"time":1518066909811,"msg":"mapping required","pid":11924,"hostname":"OBLAP-93","fId":"b8cd52fe-8783-4efb-a11c-af7aec4878ac","jobId":"Task_034j2b5","v":1} diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index d0f1122..4add88c 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -390,14 +390,14 @@ export default { this.isdefault = true } } - if (getlastlog !== undefined && getlastlog.status === 'completed') { - self.status = 'completed' - self.showOutput = getlastlog.output - let obj = _.omit(getlastlog.output[0], ['_id', 'Schemaid']) - self.cols = _.map(obj, (v, k) => { - return { title: k, key: k } - }) - } + // if (getlastlog !== undefined && getlastlog.status === 'completed') { + // self.status = 'completed' + // self.showOutput = getlastlog.output + // let obj = _.omit(getlastlog.output[0], ['_id', 'Schemaid']) + // self.cols = _.map(obj, (v, k) => { + // return { title: k, key: k } + // }) + // } // Get Flow var bpmnXML = await flowz.get(response.data.fid) From a7f97568f4a750ba604c4ed5e1781dbc12d361e7 Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Thu, 8 Feb 2018 12:03:31 +0530 Subject: [PATCH 038/419] solved redirect issue --- client/src/pages/approval/FormReply.vue | 6 ++++-- client/src/pages/user/flowInstance.vue | 13 ++++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index 4add88c..4a1ce52 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -79,8 +79,10 @@ export default { let url = '' if (index !== -1) { var temp = this.selectedProcess.inputProperty[0].entityschema.createTemplate[index] + console.log('this.selectedProcess', this.selectedProcess) + url = 'http://' + this.selectedProcess.inputProperty[0].entityschema.userID + '.' + temp.url[0] + '.' + config.grapesDomain + '/' + temp.url[1] + '.html' // console.log('this.selectedProcess.inputProperty[0].entityschema.createTemplate[index]', this.selectedProcess.inputProperty[0].entityschema.createTemplate[index]) - url = 'http://' + this.$store.state.user._id + '.' + temp.url[0] + '.' + config.grapesDomain + '/' + temp.url[1] + '.html' + // url = 'http://' + this.$store.state.user._id + '.' + temp.url[0] + '.' + config.grapesDomain + '/' + temp.url[1] + '.html' // url = this.selectedProcess.inputProperty[0].entityschema.createTemplate[index].url // url = url.substr(0, 4) + url.substr(5) // url = 'http://172.16.230.133/websites/59a8e0dd41dc17001aeb1e67/c6f938a9-41f0-49e1-aaf1-65f8ce94b4e9/public/index.html' @@ -572,7 +574,7 @@ export default { color: red; } iframe { - min-height: 460px; + min-height: 405px; width: 100%; background: #FFFFFF; padding: 0px; diff --git a/client/src/pages/user/flowInstance.vue b/client/src/pages/user/flowInstance.vue index 3aa88c0..0812954 100644 --- a/client/src/pages/user/flowInstance.vue +++ b/client/src/pages/user/flowInstance.vue @@ -11,6 +11,7 @@ From cb01ddca82d346c9dca623a877106af1e17f7137 Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Mon, 12 Feb 2018 12:29:46 +0530 Subject: [PATCH 049/419] Resolved sorting issue in flow-instance api --- JobQue/seneca-job-queue/logs | 2 +- client/src/pages/flow/table-expand.vue | 32 +++++++++++-------- client/src/pages/user/flowInstance.vue | 2 +- service/package.json | 1 + .../flowz-instance/flowz-instance.hooks.js | 22 +++++-------- 5 files changed, 30 insertions(+), 29 deletions(-) diff --git a/JobQue/seneca-job-queue/logs b/JobQue/seneca-job-queue/logs index c353a0e..502d7ce 100644 --- a/JobQue/seneca-job-queue/logs +++ b/JobQue/seneca-job-queue/logs @@ -1 +1 @@ -{"level":40,"time":1518097046466,"msg":"mapping required","pid":13146,"hostname":"OBLAP-93","fId":"d7e544e2-eb7d-45b2-8610-298eed0b68da","jobId":"Task_034j2b5","v":1} +{"level":40,"time":1518418270452,"msg":"mapping required","pid":14660,"hostname":"OBLAP20","fId":"85a61446-5c57-4e98-a708-de478e055a4b","jobId":"Task_034j2b5","v":1} diff --git a/client/src/pages/flow/table-expand.vue b/client/src/pages/flow/table-expand.vue index 8d75dcc..014d748 100644 --- a/client/src/pages/flow/table-expand.vue +++ b/client/src/pages/flow/table-expand.vue @@ -14,7 +14,7 @@ @@ -635,24 +483,6 @@ iframe { background: #FFFFFF; padding: 0px; } -/*.created { - color: rgba(255, 251, 0, 0.56) !important; -} - -.processing { - color: #1DA8D3 !important; -} - -.running { - color: #d5d835 !important; -} -.completed { - color: #1AE75E !important; -} -.inputRequired { - color: #E71A24 !important; -}*/ - .running:not(.djs-connection) .djs-visual > :nth-child(1) { fill: #d5d835 !important; } diff --git a/client/src/pages/approval/FormReply1.vue b/client/src/pages/approval/FormReply1.vue new file mode 100644 index 0000000..77f66bb --- /dev/null +++ b/client/src/pages/approval/FormReply1.vue @@ -0,0 +1,457 @@ + + + From 72f2aa4188c936262742c636f21555173322dade Mon Sep 17 00:00:00 2001 From: rbajaniya Date: Fri, 16 Feb 2018 15:27:37 +0530 Subject: [PATCH 061/419] Change webbuilder preview url --- client/src/pages/approval/FormReply.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index 8241ba5..ddf6fb9 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -68,7 +68,7 @@ export default { // console.log('this.selectedProcess', this.selectedProcess) // url = 'http://' + this.selectedProcess.inputProperty[0].entityschema.userID + '.' + temp.url[0] + '.' + config.grapesDomain + '/' + temp.url[1] + '.html' // console.log('this.selectedProcess.inputProperty[0].entityschema.createTemplate[index]', this.selectedProcess.inputProperty[0].entityschema.createTemplate[index]) - url = 'http://' + this.$store.state.user._id + '.' + temp.url[0] + '.' + config.grapesDomain + '/' + temp.url[1] + '.html' + url = 'http://' + this.$store.state.user._id + '.' + temp.url[0] + '.' + config.grapesDomain + '/Preview/' + temp.url[1] + '.html' // url = 'http://localhost/person.html' url = 'http://localhost/multifile2.html' } From 1f93937ed79fa3fe5f57e56d49da5c62a30b6ebf Mon Sep 17 00:00:00 2001 From: rbajaniya Date: Fri, 16 Feb 2018 15:29:05 +0530 Subject: [PATCH 062/419] ignore logs file --- JobQue/.gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/JobQue/.gitignore b/JobQue/.gitignore index d4177dc..f89a3ba 100644 --- a/JobQue/.gitignore +++ b/JobQue/.gitignore @@ -10,7 +10,7 @@ selenium-debug.log package-lock.json worker/ example/worker/ -seneca-job-queue/log +seneca-job-queue/logs # Editor directories and files .idea From ae1ba9a476947498001a5ee62bf12c626715b9ef Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Fri, 16 Feb 2018 15:39:28 +0530 Subject: [PATCH 063/419] commit log file --- JobQue/seneca-job-queue/logs | 1 - 1 file changed, 1 deletion(-) delete mode 100644 JobQue/seneca-job-queue/logs diff --git a/JobQue/seneca-job-queue/logs b/JobQue/seneca-job-queue/logs deleted file mode 100644 index 5031ca6..0000000 --- a/JobQue/seneca-job-queue/logs +++ /dev/null @@ -1 +0,0 @@ -{"level":40,"time":1518700801496,"msg":"mapping required","pid":1396,"hostname":"OBLAP20","fId":"5a400aa1-9d9f-4038-be9e-3d075579b2a5","jobId":"Task_09f29bv","v":1} From e239cda04be0e34055c4eb13083a6bd7ef510d35 Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Fri, 16 Feb 2018 15:46:32 +0530 Subject: [PATCH 064/419] removed formreply1.vue --- client/src/pages/approval/FormReply.vue | 2 +- client/src/pages/approval/FormReply1.vue | 457 ----------------------- 2 files changed, 1 insertion(+), 458 deletions(-) delete mode 100644 client/src/pages/approval/FormReply1.vue diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index ddf6fb9..58030df 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -70,7 +70,7 @@ export default { // console.log('this.selectedProcess.inputProperty[0].entityschema.createTemplate[index]', this.selectedProcess.inputProperty[0].entityschema.createTemplate[index]) url = 'http://' + this.$store.state.user._id + '.' + temp.url[0] + '.' + config.grapesDomain + '/Preview/' + temp.url[1] + '.html' // url = 'http://localhost/person.html' - url = 'http://localhost/multifile2.html' + // url = 'http://localhost/multifile2.html' } return url } diff --git a/client/src/pages/approval/FormReply1.vue b/client/src/pages/approval/FormReply1.vue deleted file mode 100644 index 77f66bb..0000000 --- a/client/src/pages/approval/FormReply1.vue +++ /dev/null @@ -1,457 +0,0 @@ - - - From 41cfb1f77a6306e97006084a6f2d2bbaff3343c7 Mon Sep 17 00:00:00 2001 From: nikitam Date: Fri, 16 Feb 2018 18:38:42 +0530 Subject: [PATCH 065/419] socketio-in-form-reply-page --- client/src/pages/approval/FormReply.vue | 180 ++++++++++++++---------- 1 file changed, 106 insertions(+), 74 deletions(-) diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index ddf6fb9..67d023d 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -4,12 +4,15 @@

    Make Request

    Notes : {{ notes }}

    + Found Template
    + Component render
    + Canvas Here
    @@ -19,7 +22,7 @@
    From b3f33139eb394c2072485a4c7549bf59db35fc40 Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Tue, 20 Feb 2018 10:58:11 +0530 Subject: [PATCH 066/419] Resolve socket issue in form replay page --- JobQue/seneca-job-queue/logs | 1 - client/src/pages/approval/FormReply.vue | 358 +++++++++--------------- 2 files changed, 127 insertions(+), 232 deletions(-) diff --git a/JobQue/seneca-job-queue/logs b/JobQue/seneca-job-queue/logs index 1db1edd..e69de29 100644 --- a/JobQue/seneca-job-queue/logs +++ b/JobQue/seneca-job-queue/logs @@ -1 +0,0 @@ -{"level":40,"time":1518700801496,"msg":"mapping required","pid":1396,"hostname":"OBLAP20","fId":"5a400aa1-9d9f-4038-be9e-3d075579b2a5","jobId":"Task_09f29bv","v":1} \ No newline at end of file diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index 67d023d..61021d5 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -1,24 +1,35 @@ - From 36813d60334cfc393e5958042c64096f930de9e9 Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Wed, 21 Feb 2018 14:41:27 +0530 Subject: [PATCH 080/419] change webbuilder url --- client/src/pages/approval/FormReply.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index 0d64965..6bdf16c 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -81,8 +81,8 @@ export default { return f.filename === this.isTemplate }).reduce((result, value, key) => { if (key === 'url') { - // result = 'http://' + this.currentEntitySchema.userID + '.' + value[0] + '.' + config.grapesDomain + '/' + value[1] + '.html' - result = 'http://172.16.230.87/' + value[1] + '.html' + result = 'https://' + this.currentEntitySchema.userID + '.' + value[0] + '.' + config.grapesDomain + '/' + value[1] + '.html' + // result = 'http://172.16.230.87/' + value[1] + '.html' } return result }, '').value() From 569859d984a6ab69b07cee38f10d2f73fe8f3140 Mon Sep 17 00:00:00 2001 From: 80017 Date: Wed, 21 Feb 2018 14:41:44 +0530 Subject: [PATCH 081/419] Update vhost_ssl_qa.conf --- client/vhost_ssl_qa.conf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/client/vhost_ssl_qa.conf b/client/vhost_ssl_qa.conf index 89c1e45..6bb4cc3 100644 --- a/client/vhost_ssl_qa.conf +++ b/client/vhost_ssl_qa.conf @@ -1,12 +1,12 @@ -ServerName www.engine.qaflowz.tk -ServerAlias *.qaflowz.tk -Redirect / https://www.engine.qaflowz.tk +ServerName www.engine.flowzqa.tk +ServerAlias *.flowzqa.tk +Redirect / https://www.engine.flowzqa.tk -ServerName www.engine.qaflowz.tk -ServerAlias *.qaflowz.tk +ServerName www.engine.flowzqa.tk +ServerAlias *.flowzqa.tk DocumentRoot "/var/www/html/" Options Indexes FollowSymLinks From 728219c27cf6c8a7553254c53ef31b6dcc05de1e Mon Sep 17 00:00:00 2001 From: 80017 Date: Wed, 21 Feb 2018 14:42:28 +0530 Subject: [PATCH 082/419] Update cert_qa.pem --- client/cert/cert_qa.pem | 58 ++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/client/cert/cert_qa.pem b/client/cert/cert_qa.pem index 38aa3e1..fea0e1e 100644 --- a/client/cert/cert_qa.pem +++ b/client/cert/cert_qa.pem @@ -1,30 +1,34 @@ -----BEGIN CERTIFICATE----- -MIIFKjCCBBKgAwIBAgISA7nzBz1Cw70rV+S/OlgDQ6S/MA0GCSqGSIb3DQEBCwUA +MIIF+TCCBOGgAwIBAgISAwUOPp71YcPoPhL/PXcYwihoMA0GCSqGSIb3DQEBCwUA MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD -ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAyMjAxMTE3NTBaFw0x -ODA1MjExMTE3NTBaMCMxITAfBgNVBAMTGHd3dy52c2hvcGRhdGEucWFmbG93ei50 -azCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN3YO1no+aVI3jshZ1sB -X1iZ3yMflYB5Zm8xt4LGfqZFt902S5yafvEcdfTvJ1OY+Xr7wTXwr6pBdkeUFrP6 -8UkAEy2yQN9iHkhuetqk5HXBTuSl/VPdDhpa1cQOF0sJ5XzsVtVBY2juGvIQP2Vk -tjt/sfyvbdQziDdXLUdMK9os7iVTuGjh+u6EibTvJ2iYj5dP5qKp/JSqRujLdoji -xOesqh0TVe0Ln07/YR+/ZmEXXPVXTVh9h2Dw6t0b80WB+xtgYMEslDDrOSBjK0LF -N4OBXmCw/2WAzbWOYfY1dI506r54ThJy5+5yzY5zcj5IU9bpXB97rEgcxSHcYpMK -u3UCAwEAAaOCAi8wggIrMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEF -BQcDAQYIKwYBBQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQU/XJhLzujkUM0 -Lu+P873t3SLJl6cwHwYDVR0jBBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYI -KwYBBQUHAQEEYzBhMC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0 -c2VuY3J5cHQub3JnMC8GCCsGAQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0 -c2VuY3J5cHQub3JnLzA6BgNVHREEMzAxghV3d3cuZW5naW5lLnFhZmxvd3oudGuC -GHd3dy52c2hvcGRhdGEucWFmbG93ei50azCB/gYDVR0gBIH2MIHzMAgGBmeBDAEC -ATCB5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEWGmh0dHA6Ly9jcHMubGV0 -c2VuY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1RoaXMgQ2VydGlmaWNhdGUg -bWF5IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWluZyBQYXJ0aWVzIGFuZCBv -bmx5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlmaWNhdGUgUG9saWN5IGZv -dW5kIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3JlcG9zaXRvcnkvMA0GCSqG -SIb3DQEBCwUAA4IBAQAJEebdbn+YU30Il1OTJl9TodWZW5nkBLRYt3ZqibxXJVPr -PUZpnP9VxDVJTygsbeSqfssdh4zm/kCNBwE7BInAC+Q2YChhIm52DK19G5ByGEC8 -XTSNpySv2hb5mTnzoXnucSjCw6C4kBSsSwTKoKYDkjR3vPm1FHZ/8sS10lMSPfge -iyufdSbtChKMifAcBilc5VIdwA68i+9iylm8+D53xsGvBurlBQOnd7DR8x/21Atg -/eScvDvVWN+EnAIpXnCdbZtVq6A7asnbTY2HO1sNmPi1BH3WsDp2rlQEyC3yVdk1 -2NxV/N8ruzMK03CKpMy2eVx7CWiTytZQDdkQNOsc +ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xODAyMjEwNjU0MDRaFw0x +ODA1MjIwNjU0MDRaMBoxGDAWBgNVBAMTD2F1dGguZmxvd3pxYS50azCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAO/HEw/MM3nhZ6t+iTCpT3fJn+bTV0QV +T3bg2vqFqVHnqeBBH2JTeOqd4XC6GrVR1XdypWrrW9VWWCyDezLDUFV80M5vWt4D +HvIjArf5nUPn7gYjr001h1k5B6C7qZJygkcSODb+FgnBQ8dOcRtDFfBdsTYy7gKf +I+piYh+ffJUQudLtellOL4GQjLgmnhVEY2oT2LQcIztnG5aX2MihGOaItNWyX+KV +H+FmMh0ILNHLT8G+yWR6Vt0o2h3Qs9sMWdOc1cNIIgF0+8Zm5V9kYzFDymw8k15P +M0fVP9Sk0nvCmkS7Ey4hFEoGTydRO0tysw6MpUVCBQO+w7uS5grKxf0CAwEAAaOC +AwcwggMDMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYB +BQUHAwIwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUpl/iyYYWKv2C9CC/Zm1AEHCZ +JI0wHwYDVR0jBBgwFoAUqEpqYwR93brm0Tm3pkVl7/Oo7KEwbwYIKwYBBQUHAQEE +YzBhMC4GCCsGAQUFBzABhiJodHRwOi8vb2NzcC5pbnQteDMubGV0c2VuY3J5cHQu +b3JnMC8GCCsGAQUFBzAChiNodHRwOi8vY2VydC5pbnQteDMubGV0c2VuY3J5cHQu +b3JnLzCCARAGA1UdEQSCAQcwggEDgg5hcGkuZmxvd3pxYS50a4IPYXV0aC5mbG93 +enFhLnRrgg13cy5mbG93enFhLnRrghJ3d3cuY3JtLmZsb3d6cWEudGuCGHd3dy5k +YXNoYm9hcmQuZmxvd3pxYS50a4IUd3d3LmRiZXRsLmZsb3d6cWEudGuCFXd3dy5l +bmdpbmUuZmxvd3pxYS50a4ISd3d3Lm1vbS5mbG93enFhLnRrghd3d3cudXBsb2Fk +ZXIuZmxvd3pxYS50a4IUd3d3LnZtYWlsLmZsb3d6cWEudGuCGHd3dy52c2hvcGRh +dGEuZmxvd3pxYS50a4IZd3d3LndlYmJ1aWxkZXIuZmxvd3pxYS50azCB/gYDVR0g +BIH2MIHzMAgGBmeBDAECATCB5gYLKwYBBAGC3xMBAQEwgdYwJgYIKwYBBQUHAgEW +Gmh0dHA6Ly9jcHMubGV0c2VuY3J5cHQub3JnMIGrBggrBgEFBQcCAjCBngyBm1Ro +aXMgQ2VydGlmaWNhdGUgbWF5IG9ubHkgYmUgcmVsaWVkIHVwb24gYnkgUmVseWlu +ZyBQYXJ0aWVzIGFuZCBvbmx5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQ2VydGlm +aWNhdGUgUG9saWN5IGZvdW5kIGF0IGh0dHBzOi8vbGV0c2VuY3J5cHQub3JnL3Jl +cG9zaXRvcnkvMA0GCSqGSIb3DQEBCwUAA4IBAQCIIJfWnHOIJVyfEzTdkfdRj8px +V5mO4jEnVBb6HQLShuGbKtnLEKYgWIJ4IkXHUfx4D4b6sK45t1s1lybU44zY7WhF +iP7QLdduF71L9z+UVpjgeiOdLru/I7iYwZlq/8AvLEOZtcOfzw1O65tQxHPlgO5N +1oCEPtJnkkz7fmuGztWIjmjNTmHesKe0YgKcaIkbh82Vna68J46qGg8AlyR34p/+ +OGXiA9fyMwkUxbufxJMWQ0sPMGGWTSDONK7ZF5CHDtvaePyQJ8B4sP8fxSM2Um/l +l/gvX5mtZoc7sy8rhpK2anrCex9Ob9c08hygrjMN0sFHJNtbteCItnIQTaIb -----END CERTIFICATE----- From a8e95abe271b5115518fb9801f129fe4c4546338 Mon Sep 17 00:00:00 2001 From: 80017 Date: Wed, 21 Feb 2018 14:43:01 +0530 Subject: [PATCH 083/419] Update privkey_qa.pem --- client/privkey/privkey_qa.pem | 52 +++++++++++++++++------------------ 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/client/privkey/privkey_qa.pem b/client/privkey/privkey_qa.pem index dbdad70..f9f4563 100644 --- a/client/privkey/privkey_qa.pem +++ b/client/privkey/privkey_qa.pem @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDd2DtZ6PmlSN47 -IWdbAV9Ymd8jH5WAeWZvMbeCxn6mRbfdNkucmn7xHHX07ydTmPl6+8E18K+qQXZH -lBaz+vFJABMtskDfYh5IbnrapOR1wU7kpf1T3Q4aWtXEDhdLCeV87FbVQWNo7hry -ED9lZLY7f7H8r23UM4g3Vy1HTCvaLO4lU7ho4fruhIm07ydomI+XT+aiqfyUqkbo -y3aI4sTnrKodE1XtC59O/2Efv2ZhF1z1V01YfYdg8OrdG/NFgfsbYGDBLJQw6zkg -YytCxTeDgV5gsP9lgM21jmH2NXSOdOq+eE4Scufucs2Oc3I+SFPW6Vwfe6xIHMUh -3GKTCrt1AgMBAAECggEAHBbG3Ql8oorpaH9AQOuZkPRapm3XVh8I80dOPwa2/oKR -VzcKt9dv/0NlRBAL4K/b1tCNlDDXbS1AtqtvfHZnmqChzQVm5WHdB7rFX23FZ4uE -W7sQqk+w+3FI47wNAvlLz1d1XycaWSzcyI16GXJ5CGuQs7fapiWoN6mYGBDy9HrD -fkYJCfOngO+fHqwcUWkA9VfFEpE5+vWS6LLorQ2A22+VO4y7c3K/fWcd/BxXzoC7 -XLrdrIxONY8vDAPO1uZHm2GiW27FZKvzWq2jfEgJ0MAkGm9XSbR/RXe8RfnN99OQ -tYENOFu3cHC0JVjwzlT6P7FcKLaL8lqHiMJA8he4QQKBgQD4RvtEwPya/sO5H3i+ -VWyfZ+FrG31Kcb9PXQ/oPnwoGsegl8utxSI7CjPMMLXGCyQsklXkOAyJfGhay6ed -CzEueIi7O1Q8DGyVCt5Wej8QA/Aa/Kq3SEIbe+jxqO8c20Hzi8VdcqE+QFdHmOD4 -CT/WG0backDAEzBUbIJDzw/ZmQKBgQDkvsTSLuCzxVRXdFo+dC//yPwDYnPxvrpp -cEfyP5j2u3syw5mBCBFInytcj/H/RLf1qdT5GDxWQOtj2lQaK5iaut4iII7VCzef -IOctsqJ464vuOYd+UVPkNF7cKkmdT5C8TTzxsQE9soutwVbOoy1e7FRVzfjR5OHE -8/xXxGQyPQKBgESfSd/s/2TPucU3H6Zr8gP1MGbsSCsFWX1UGYt1ideD311R12gG -Lrnmzf5IEFXWyn7PS5Iys7RkgGtoEsHjUAqqIhCuC1A1luVzBZUdYMTKcdjjsUPL -Ywo5q17v9HcjWw03uqtjfZG5MuaFKNklpVFGZMUIA0GTjC4pd6/KUXUxAoGAFOkX -hvtAEU79qcz6HvFyHdjaqNiMLtI3qkHYYd3MdummlnppAvGg2tmqFhkWjzZR9sQi -su6zPVNL8WHZBFdt6N8iRU5ioDkZSZOxbm0BCzrFHO7nYvW+TIM5FLlM53OJkJ0i -8Bk1OtWijSy6acNi92V1RC7DCzT4Ko//RmqumiUCgYEAiSTfQi+y/SZo3VmyMkdZ -k6wsm/IBX4u6hiDD+zOnQ7c6qxz8jwbjqb2aE1zAyk9o3Z753+R7J1w3FpD0QHBE -sETPDEkLooXPDoUSwv8PZaHKMlTaaHHx7WoS8jLzw+0jAH4ulzveGpaLOGfvxtop -GIF3yciYOQi+/b32lE3liVQ= +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDvxxMPzDN54Wer +fokwqU93yZ/m01dEFU924Nr6halR56ngQR9iU3jqneFwuhq1UdV3cqVq61vVVlgs +g3syw1BVfNDOb1reAx7yIwK3+Z1D5+4GI69NNYdZOQegu6mScoJHEjg2/hYJwUPH +TnEbQxXwXbE2Mu4CnyPqYmIfn3yVELnS7XpZTi+BkIy4Jp4VRGNqE9i0HCM7ZxuW +l9jIoRjmiLTVsl/ilR/hZjIdCCzRy0/BvslkelbdKNod0LPbDFnTnNXDSCIBdPvG +ZuVfZGMxQ8psPJNeTzNH1T/UpNJ7wppEuxMuIRRKBk8nUTtLcrMOjKVFQgUDvsO7 +kuYKysX9AgMBAAECggEAYa69YkMzeWTNwjzjkRJ40Hkwjm3s8EyqOejy7PrE9xwk +xbpiGcGd0h8Nt8nplZLIH0hygXNuzyPE+iV6bDzLnngh7OfKogWtdsGymtazLfXv +r0qcYRz8jenA5MdvFr1Vu7R9eFHdEo5MmYaoZ43WAz14M3deJW1FyXfZN77WlzcW +RN2a1ms2+V02jXj/5/y7s8Rf7UT2tF1hylqnsuk68B1rCmr1/oHOJS/kQBx+gNBs +pIWsQjPntQlPPs0dIWSIeFFar0WwXUQaGggOd84v2xFIQO2UB/VnRWMZv8MHleYm +UFJXn+eUw/ZtVqNvqWJbzHSGF4WbEybWdZEtVX5eNQKBgQD8nTPFEczYUUW+4aJe +fFBvzPy9RU+cwmR2tMdtMHScJe4mOWwVap1hDKte5faFsq7t7NbocioN5n73U6xS +kgeeTiREYPLyanWGDeLenoBpv9Z4GAwdKRGZQQCDGV1qq15ADzh7/MbELHHHvUTc +9hWkeSQQa/g0iwEGCGV4UrWDxwKBgQDy/dOPrGmsNnmTsnMNhvCZQfFDyLq12IAH +nbkLF3NWVoiiiWKtmSyZkhSlDoDEP4BHb3UvRnDAimuY3LiPNWxOtE/WIubuw2Wt +j+rC0jhTmaE4a0ebxSOHV0iStQArj7YcQ3vSXDriqyt8RZ1Z9n71rzUuuPp5cyvR +vFjxC2sgGwKBgH0IejVSqCdxoqnmGG3X7iBIP9iW097tQLiYphTfZPhctdFpnpvD +F36PvMrN3AU0+ex9y6llyHb03WchnSuJaAfs+Xp22gkutFjTyrURktHEyCzNCkHs +r+9BAzXgeiJwC8h9QCHubZtvvCl2/vy3OOMdqsIODt5C5xDLWx4BIiLFAoGAZn7i +ymuzd0zTI5XWKhKNUlgaaLk26JWWC6Bf+Wm+4OBHaigBU7CUu4J+6tCfSChw97Dw +ASz5Sn4YvLX9s4qZUOmF85FtT7FkJj3ajKsXz0uyUZYO8onJXsFWf2uR0s4fxvRA +Oo9k10/UW+sRYG01SHTLPhYQsUH/bczAx4xFd5kCgYEAwi0wLAVbwWp8oRS4saqn +cWhSkl9r7NRJhC0ly6ocvdZJuPhtFrI/IL9KIYiUZxlu5tpQGzuDmedI5uK1EG+l +/B/j351nuizw9xPCoYtxuRaY7yJbWRbcGUArnpsLpC3COEKJTfsEAFmR/V0crFjX +DK38EMp+Apln9Ol2p/nGkbc= -----END PRIVATE KEY----- From f968914d6a903aa98d5f94a84eecd11d47fd585b Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Wed, 21 Feb 2018 15:53:28 +0530 Subject: [PATCH 084/419] replace webuilder url & write static url --- client/src/pages/approval/FormReply.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index 6bdf16c..7878f26 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -81,8 +81,8 @@ export default { return f.filename === this.isTemplate }).reduce((result, value, key) => { if (key === 'url') { - result = 'https://' + this.currentEntitySchema.userID + '.' + value[0] + '.' + config.grapesDomain + '/' + value[1] + '.html' - // result = 'http://172.16.230.87/' + value[1] + '.html' + // result = 'https://' + this.currentEntitySchema.userID + '.' + value[0] + '.' + config.grapesDomain + '/' + value[1] + '.html' + result = 'https://work247.flowzcluster.tk/' + value[1] + '.html' } return result }, '').value() From d6354e54060ec499b6874edfed0682b517b5057b Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Wed, 21 Feb 2018 18:35:13 +0530 Subject: [PATCH 085/419] get all schema in entity types --- client/src/store/actions.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/store/actions.js b/client/src/store/actions.js index 7517d20..254a35a 100644 --- a/client/src/store/actions.js +++ b/client/src/store/actions.js @@ -6,10 +6,10 @@ import modelUser from '@/api/user' export default { getSchema ({ commit }) { commit('SET_SCHEMA', []) - api.request('get', '/schema') + api.request('get', '/schema?$paginate=false') .then(response => { // console.log('hdhd::', _.reject(response.data, { 'isdeleted': true })) - commit('SET_SCHEMA', response.data.data) + commit('SET_SCHEMA', response.data) }) .catch(error => { console.log(error) From 2afe892e694da5af221f2284456d352f72ed1871 Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Wed, 21 Feb 2018 19:10:02 +0530 Subject: [PATCH 086/419] Add dynamic grapseUrl key --- client/src/config/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/config/index.js b/client/src/config/index.js index 6245435..8b67113 100644 --- a/client/src/config/index.js +++ b/client/src/config/index.js @@ -18,7 +18,7 @@ var temp = { loginWithLinkedinUrl: 'http://auth.' + process.env.domainkey + '/auth/linkedin', githubSuccessCallbackUrl: 'http://localhost:8000', loginWithGithubUrl: 'http://auth.' + process.env.domainkey + '/auth/github', - grapesUrl: 'http://webbuilder.qaflowz.tk/', + grapesUrl: 'https://webbuilder.' + process.env.domainkey + '/', grapesAPI: 'http://api.' + process.env.domainkey + '/serverapi', grapesDomain: process.env.domainkey } @@ -39,7 +39,7 @@ if (process.env.NODE_ENV !== 'development') { loginWithLinkedinUrl: 'https://auth.' + process.env.domainkey + '/auth/linkedin', githubSuccessCallbackUrl: 'https://engine.' + process.env.domainkey + '/', loginWithGithubUrl: 'https://auth.' + process.env.domainkey + '/auth/github', - grapesUrl: 'https://webbuilder.qaflowz.tk/', + grapesUrl: 'https://webbuilder.' + process.env.domainkey + '/', grapesAPI: 'https://api.' + process.env.domainkey + '/serverapi', grapesDomain: process.env.domainkey } From 675045fb42eb41251c0bddd649d92bb3aa9632dd Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Wed, 21 Feb 2018 19:11:28 +0530 Subject: [PATCH 087/419] Add dynamic grapseUrl key --- client/src/config/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/config/index.js b/client/src/config/index.js index 8b67113..bbbe6d1 100644 --- a/client/src/config/index.js +++ b/client/src/config/index.js @@ -18,7 +18,7 @@ var temp = { loginWithLinkedinUrl: 'http://auth.' + process.env.domainkey + '/auth/linkedin', githubSuccessCallbackUrl: 'http://localhost:8000', loginWithGithubUrl: 'http://auth.' + process.env.domainkey + '/auth/github', - grapesUrl: 'https://webbuilder.' + process.env.domainkey + '/', + grapesUrl: 'https://www.webbuilder.' + process.env.domainkey + '/', grapesAPI: 'http://api.' + process.env.domainkey + '/serverapi', grapesDomain: process.env.domainkey } @@ -39,7 +39,7 @@ if (process.env.NODE_ENV !== 'development') { loginWithLinkedinUrl: 'https://auth.' + process.env.domainkey + '/auth/linkedin', githubSuccessCallbackUrl: 'https://engine.' + process.env.domainkey + '/', loginWithGithubUrl: 'https://auth.' + process.env.domainkey + '/auth/github', - grapesUrl: 'https://webbuilder.' + process.env.domainkey + '/', + grapesUrl: 'https://www.webbuilder.' + process.env.domainkey + '/', grapesAPI: 'https://api.' + process.env.domainkey + '/serverapi', grapesDomain: process.env.domainkey } From 38763b3363dd5bc745681920990e614e60ac27d5 Mon Sep 17 00:00:00 2001 From: nikitam Date: Wed, 21 Feb 2018 19:30:29 +0530 Subject: [PATCH 088/419] showing-filelist-in-schema-component --- client/src/components/SchemaForm.vue | 126 +++++++++----- client/src/components/SchemaInstance.vue | 201 ++++++++++++++++------- 2 files changed, 230 insertions(+), 97 deletions(-) diff --git a/client/src/components/SchemaForm.vue b/client/src/components/SchemaForm.vue index 328ea83..d25e2d5 100644 --- a/client/src/components/SchemaForm.vue +++ b/client/src/components/SchemaForm.vue @@ -1,14 +1,15 @@ @@ -299,4 +340,9 @@ AWS.config.region = 'us-west-2' } } } - \ No newline at end of file + + \ No newline at end of file diff --git a/client/src/components/SchemaInstance.vue b/client/src/components/SchemaInstance.vue index 560b5e2..7d8268e 100644 --- a/client/src/components/SchemaInstance.vue +++ b/client/src/components/SchemaInstance.vue @@ -1,6 +1,6 @@ diff --git a/client/src/pages/dbSettings/New.vue b/client/src/pages/dbSettings/New.vue index 58e0bb1..11ee5a8 100644 --- a/client/src/pages/dbSettings/New.vue +++ b/client/src/pages/dbSettings/New.vue @@ -2,77 +2,102 @@

    Add New Connection

    - - - - - - - - - - - - - - - -
    - -
    - - - - - -
    - - -
    -
    - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    + + + + + +
    + + +
    +
    + + + + Enable + + is Default + + + is Default + + + +
    + - Enable - - is Default - - - is Default - + - - - - - - - +
    @@ -86,6 +111,7 @@ import mongo from '../../assets/images/mongo.png' import rethink from '../../assets/images/rethink.png' import elastic from '../../assets/images/elasticsearch.png' import nedb from '../../assets/images/nedb.png' +import databasesModel from '@/api/databases' export default{ components: {'input-tag': InputTag}, @@ -107,7 +133,6 @@ export default{ password: '', selectedDb: '', upldIcn: '', - rdoCrt: '', notes: '', isdefault: false }, @@ -148,23 +173,27 @@ export default{ handleSubmit(name) { this.$refs[name].validate((valid) => { if (valid) { - let guid = (this.S4() + this.S4() + "-" + this.S4() + "-4" + this.S4().substr(0,3) + "-" + this.S4() + "-" + this.S4() + this.S4() + this.S4()).toLowerCase(); - let obj = this.frmSettings; - obj.id = guid; - api.request('post', '/settings', obj) + // let guid = (this.S4() + this.S4() + "-" + this.S4() + "-4" + this.S4().substr(0,3) + "-" + this.S4() + "-" + this.S4() + this.S4() + this.S4()).toLowerCase(); + // let obj = this.frmSettings; + // obj.id = guid; + // api.request('post', '/settings', this.frmSettings) + databasesModel.post(this.frmSettings) .then(response => { // this.$Message.success('Success'); - if(response.data == 'Exist'){ - this.$Notice.error({duration: 5, title:'Alredy Exist!!', desc:'Connection Alredy exist...'}) - } - else { - this.$Notice.success({duration: 3, title:'Success!!', desc:'Connection Created...'}) - this.$router.push({name: 'list'}); - } + // if(response.data == 'Exist'){ + // this.$Notice.error({duration: 5, title:'Alredy Exist!!', desc:'Connection Alredy exist...'}) + // } + // else { + this.$Notice.success({duration: 3, title:'Success!!', desc:'Connection Created...'}) + this.$router.push({name: 'list'}); + // } }) .catch(error => { - // this.$Message.error('Error!!'); - this.$Notice.error({duration: 3, title:'Error!!'}) + if (error.response.data.errors.hasOwnProperty('message')) { + this.$Notice.error({duration: 3, title:'Error!!', desc: error.response.data.errors.message}) + } else { + this.$Notice.error({duration: 3, title:'Error!!'}) + } console.log(error) this.loading = false }) @@ -173,10 +202,10 @@ export default{ this.$Notice.error({duration: 2, title:'Error!!', desc:'Please enter inputs!'}) } }) - }, - S4() { - return (((1+Math.random())*0x10000)|0).toString(16).substring(1); } + // S4() { + // return (((1+Math.random())*0x10000)|0).toString(16).substring(1); + // } }, mounted() { this.checkdefaultfun() diff --git a/service/src/services/DBConnection/elasticapi.js b/service/src/services/DBConnection/elasticapi.js index 30bb889..0b9ca7f 100644 --- a/service/src/services/DBConnection/elasticapi.js +++ b/service/src/services/DBConnection/elasticapi.js @@ -19,48 +19,48 @@ var dclient = []; // client.indices.create({ // index: db // }) -db1.elastic.dbinstance.forEach(function (instance, inx) { - if (instance.isenable) { - var connection = new elasticsearch.Client({ - host: instance.host + ':' + instance.port, - log: 'error' - // hosts: [ - // 'https://[username]:[password]@[localhost]:[9200]/', - // 'https://[username]:[password]@[localhost]:[9200]/' - // ] - }); - // var db = ((instance.dbname == '') ? databasename : instance.dbname); - var db = instance.dbname; - connection.indices.create({ - index: db - }, function (err, resp) { - if(resp) { - //console.log(JSON.stringify(resp, null, '\t'), resp.status); - } - }) - client.push({ id: instance.id, conn: connection, dbname: db }) - } - if (instance.isdefault) { - var connection = new elasticsearch.Client({ - host: instance.host + ':' + instance.port, - log: 'error' - // hosts: [ - // 'https://[username]:[password]@[localhost]:[9200]/', - // 'https://[username]:[password]@[localhost]:[9200]/' - // ] - }); - // var db = ((instance.dbname == '') ? databasename : instance.dbname); - var db = instance.dbname; - connection.indices.create({ - index: db - }, function (err, resp) { - if(resp) { - //console.log(JSON.stringify(resp, null, '\t'), resp.status); - } - }) - dclient.push({ id: instance.id, conn: connection, dbname: db }) - } - }) +// db1.elastic.dbinstance.forEach(function (instance, inx) { +// if (instance.isenable) { +// var connection = new elasticsearch.Client({ +// host: instance.host + ':' + instance.port, +// log: 'error' +// // hosts: [ +// // 'https://[username]:[password]@[localhost]:[9200]/', +// // 'https://[username]:[password]@[localhost]:[9200]/' +// // ] +// }); +// // var db = ((instance.dbname == '') ? databasename : instance.dbname); +// var db = instance.dbname; +// connection.indices.create({ +// index: db +// }, function (err, resp) { +// if(resp) { +// //console.log(JSON.stringify(resp, null, '\t'), resp.status); +// } +// }) +// client.push({ id: instance.id, conn: connection, dbname: db }) +// } +// if (instance.isdefault) { +// var connection = new elasticsearch.Client({ +// host: instance.host + ':' + instance.port, +// log: 'error' +// // hosts: [ +// // 'https://[username]:[password]@[localhost]:[9200]/', +// // 'https://[username]:[password]@[localhost]:[9200]/' +// // ] +// }); +// // var db = ((instance.dbname == '') ? databasename : instance.dbname); +// var db = instance.dbname; +// connection.indices.create({ +// index: db +// }, function (err, resp) { +// if(resp) { +// //console.log(JSON.stringify(resp, null, '\t'), resp.status); +// } +// }) +// dclient.push({ id: instance.id, conn: connection, dbname: db }) +// } +// }) // console.log('client',client) // var check = client.indices.exists({ @@ -76,6 +76,21 @@ db1.elastic.dbinstance.forEach(function (instance, inx) { // index: db // }); // } + var getConnection = async (function(data) { + var connection = new elasticsearch.Client({ + host: data.host + ':' + data.port + }); + return connection + }) + + var trygetConnection = async (function(data) { + var connection = new elasticsearch.Client({ + host: data.host + ':' + data.port + '/' + data.dbname + }).ping({ + requestTimeout: 1000 + }); + return connection + }) module.exports = { generateInstanceTable: async(function (ins_id, title){ @@ -92,9 +107,226 @@ module.exports = { }), choose: function () { - console.log('===================ELASTIC_DB================='); + console.log('=================== ELASTIC_DB ================='); }, - //***********************get cuustom methods****************** + + //************************ get methods ******************************** + + getflowsInstance: async(function (typeName, inst_id) { + console.log('elastic get flowsInstance'); + var flowsInstance = async(function () { + var result1 = []; + for (let [i, inst] of client.entries()) { + if ( inst.id == inst_id ) { + var res = await (inst.conn.search({ + index: client[i].dbname, + type: typeName, + body: { + query: { + match_all: {} + }, + } + })) + // console.log('rethink r', res.hits.hits) + res.hits.hits.forEach(function (hit) { + var item = hit._source; + item._id = hit._id; + result1.push(item); + }) + // return res + } + } + return result1 + // var result1 = []; + // for (var i = 0; i < client.length; i++) { + // // var r = await (db[i].conn.collection('schema').find().toArray()) + // var data = []; + // var result = await ( + // client[i].conn.search({ + // index: client[i].dbname, + // type: 'instance', + // body: { + // query: { + // match_all: {} + // }, + // } + // })) + // result.hits.hits.forEach(function (hit) { + // var item = hit._source; + // item._id = hit._id; + // data.push(item); + // }) + // // console.log(client[i].id) + // for (var j = 0; j < data.length; j++) { + // result1.push(data[j]) + // } + // } + // return result1; + }); + var res = await (flowsInstance()) + return res; + }), + + getThisflowsInstance: async(function (id, typeName, conndata) { + console.log('elastic get flowsInstanceCurrent'); + var conn = await( getConnection(conndata).then(res => { + return res + }).catch(err => { + return {iserror: true, msg: err} + })) + if (conn.hasOwnProperty('iserror') && conn.iserror) { + return conn + } else { + var result = await(conn.search({ + index: conndata.dbname, + type: typeName, + body: { + query: { + match: { + '_id': id + } + }, + } + }).then(res => { + conn.close() + return _.map(res, (d) => { + let item = d._source + item._id = d._id + return item + }) + }).catch(err => { + return {iserror: true, msg: err} + })) + return result + } + // var flowsInstance = async(function () { + // var result1 = []; + // for (var i = 0; i < client.length; i++) { + // if ( client[i].id == inst_id ) { + // var data = []; + // var result = await ( + // client[i].conn.search({ + // index: client[i].dbname, + // type: typeName, + // body: { + // query: { + // match: { + // '_id': id + // } + // }, + // } + // })) + // result.hits.hits.forEach(function (hit) { + // var item = hit._source; + // item._id = hit._id; + // data.push(item); + // }) + // // console.log(client[i].id) + // for (var j = 0; j < data.length; j++) { + // result1.push(data[j]) + // } + // } + // } + // return result1; + // }); + // var res = await (flowsInstance()) + // // console.log('elastic r...', res) + // return res[0]; + }), + + //************************* post methods **************************** + + postflowsInstance: async(function (data, conndata, typeName) { + console.log('........................elastic post flowsInstance....................'); + var conn = await( getConnection(conndata).then(res => { + return res + }).catch(err => { + return {iserror: true, msg: err} + })) + if (conn.hasOwnProperty('iserror') && conn.iserror) { + return conn + } else { + var result = await(conn.index({ + index: conndata.dbname, + type: typeName, + body: data + }).then(res => { + conn.close() + return res + }).catch(err => { + return {iserror: true, msg: err} + })) + return result._id + } + // // data.Schemaid = data._id + // // delete data._id + // // delete data.id + // // var selectedDB = _.find(client, (d) => { + // // return d.id == dbid + // // }) + // var selectedDB; + // for(let i = 0; i < client.length; i++ ){ + // // console.log('connid', db[i].id) + // if(client[i].id == dbid) { + // selectedDB = client[i] + // } + // } + // var result = await ( + // selectedDB.conn.index({ + // index: selectedDB.dbname, + // type: typeName, + // body: data + // })) + // return result._id; + }), + + //*************************** put methods ***************************** + + putflowsInstance: async(function (id, data, tableName, inst_id) { + var instanceid = id; + delete data._id + // console.log('DATA:',data); + // var schemaid = id; + var selectedDB = _.find(client, (d) => { + return d.id == inst_id + }) + var result = await ( + selectedDB.conn.index({ + index: selectedDB.dbname, + type: tableName, + id: instanceid, + body: data + })) + return result; + // var schemadata = await (client.index({ + // index: db, + // type: 'instance', + // id: instanceid, + // body: data + // })) + // return schemadata; + }), + + //****************************** delete methods ************************* + + deleteThisflowsInstance: async(function (id, tableName, inst_id) { + console.log('elastic delete this flowsInstance'); + var selectedDB = _.find(client, (d) => { + return d.id == inst_id + }) + var instanceid = id; + var result = await ( + selectedDB.conn.delete({ + index: selectedDB.dbname, + type: tableName, + id: instanceid + })) + // console.log('result',result); + return result; + }), + + + //*****************************get custom methods************************ getSchemaName: async(function (name) { console.log('elastic get SchemaName'); var schemadata = async(function () { @@ -152,7 +384,6 @@ module.exports = { // }) // return data; }), - getThisSchemaType: async(function (id, type) { console.log('elastic get SchemaCurrent Type'); var schemadata = async(function () { @@ -210,7 +441,6 @@ module.exports = { // }) // return data; }), - getThisSchemaFieldName: async(function (id, fieldname) { console.log('elastic get SchemaCurrent fieldname'); var schemadata = async(function () { @@ -268,7 +498,6 @@ module.exports = { // }) // return data; }), - getSchemaByDbid: async(function(dbid) { console.log('elastic get Schema By dbid...........................'); var schemadata = async(function () { @@ -317,8 +546,6 @@ module.exports = { // var res = await (schemadata()) // return res; }), - - //*************get methods*************** getSchema: async(function () { console.log('elastic get Schema'); // var schemadata = async(function () { @@ -368,7 +595,6 @@ module.exports = { data.push(item); }) return data; - }), getThisSchema: async(function (id) { console.log('elastic get SchemaCurrent'); @@ -403,98 +629,6 @@ module.exports = { var res = await (schemadata()) return res; }), - getflowsInstance: async(function (typeName, inst_id) { - console.log('elastic get flowsInstance'); - var flowsInstance = async(function () { - var result1 = []; - for (let [i, inst] of client.entries()) { - if ( inst.id == inst_id ) { - var res = await (inst.conn.search({ - index: client[i].dbname, - type: typeName, - body: { - query: { - match_all: {} - }, - } - })) - // console.log('rethink r', res.hits.hits) - res.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - result1.push(item); - }) - // return res - } - } - return result1 - // var result1 = []; - // for (var i = 0; i < client.length; i++) { - // // var r = await (db[i].conn.collection('schema').find().toArray()) - // var data = []; - // var result = await ( - // client[i].conn.search({ - // index: client[i].dbname, - // type: 'instance', - // body: { - // query: { - // match_all: {} - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // // console.log(client[i].id) - // for (var j = 0; j < data.length; j++) { - // result1.push(data[j]) - // } - // } - // return result1; - }); - var res = await (flowsInstance()) - return res; - }), - getThisflowsInstance: async(function (id, typeName, inst_id) { - console.log('elastic get flowsInstanceCurrent'); - var flowsInstance = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - if ( client[i].id == inst_id ) { - var data = []; - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: typeName, - body: { - query: { - match: { - '_id': id - } - }, - } - })) - result.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - } - return result1; - }); - var res = await (flowsInstance()) - // console.log('elastic r...', res) - return res[0]; - }), - - //********************post methods*********************** postSchema: async(function (data) { console.log('elastic post Schema', JSON.stringify(data)); // var selectedDB = _.find(client, (d) => { @@ -516,31 +650,6 @@ module.exports = { })) return result._id; }), - postflowsInstance: async(function (data, dbid, typeName) { - console.log('........................elastic post flowsInstance....................'); - // data.Schemaid = data._id - // delete data._id - // delete data.id - // var selectedDB = _.find(client, (d) => { - // return d.id == dbid - // }) - var selectedDB; - for(let i = 0; i < client.length; i++ ){ - // console.log('connid', db[i].id) - if(client[i].id == dbid) { - selectedDB = client[i] - } - } - var result = await ( - selectedDB.conn.index({ - index: selectedDB.dbname, - type: typeName, - body: data - })) - return result._id; - }), - - //**********************put methods************************ putSchema: async(function (data, id) { console.log('elastic put schema') delete data._id @@ -566,52 +675,6 @@ module.exports = { // return schemadata; }), - putflowsInstance: async(function (id, data, tableName, inst_id) { - var instanceid = id; - delete data._id - // console.log('DATA:',data); - // var schemaid = id; - var selectedDB = _.find(client, (d) => { - return d.id == inst_id - }) - var result = await ( - selectedDB.conn.index({ - index: selectedDB.dbname, - type: tableName, - id: instanceid, - body: data - })) - return result; - // var schemadata = await (client.index({ - // index: db, - // type: 'instance', - // id: instanceid, - // body: data - // })) - // return schemadata; - }), - - //******************************delete methods************************* - // deleteSchema: async(function() { - // // var _data = JSON.parse(data); - // // console.log('elastic delete Schema'); - // // var id = new mongoose.Types.ObjectId(id); - // // console.log('id from putSchema:',id); - // // db.collection('schema').updateOne({ _id: id }, { $set: _data }, function(err, result) { - // // if (err) { - // // return {success: false} - // // } else { - // // return {success: true} - // // } - // // }); - // db.collection('schema').drop(function(err, result) { - // if (err) { - // return {success: false} - // } else { - // return {success: true} - // } - // }); - // }) deleteThisSchema: function (id, type) { console.log('elastic delete this schema'); var schemaid = id; @@ -658,58 +721,5 @@ module.exports = { } }) return _data - }, - // deleteThisSchema: async(function (id, type) { - // console.log('elastic delete this schema', type); - // var schemaid = id; - // if(type == 'softdel') { - // for (var i = 0; i < client.length; i++) { - // console.log(client[i].id, client[i].dbname) - // var result = await ( - // client[i].conn.update({ - // index: client[i].dbname, - // type: 'schema', - // id: schemaid, - // body: { - // doc: { - // isdeleted: true - // } - // } - // } - // // , function(err, resp){ - // // console.log(JSON.stringify(resp)) - // // } - // ) - // ) - // console.log('elastic delete: ', result) - // } - // } - // // return result; - - // // var result = await ( - // // client.delete({ - // // index: db, - // // type: 'schema', - // // id: schemaid - // // })) - // // // console.log('result',result); - // // return result; - - // }), - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('elastic delete this flowsInstance'); - var selectedDB = _.find(client, (d) => { - return d.id == inst_id - }) - var instanceid = id; - var result = await ( - selectedDB.conn.delete({ - index: selectedDB.dbname, - type: tableName, - id: instanceid - })) - // console.log('result',result); - return result; - }) - + } } diff --git a/service/src/services/DBConnection/mongoapi.js b/service/src/services/DBConnection/mongoapi.js index 7168144..264b83e 100644 --- a/service/src/services/DBConnection/mongoapi.js +++ b/service/src/services/DBConnection/mongoapi.js @@ -1,4 +1,5 @@ var mongoose = require('mongoose'); +var MongoClient = require('mongodb').MongoClient; let _ = require('lodash'); var db1 = require('./db'); let async = require('asyncawait/async'); @@ -7,32 +8,32 @@ var endecrypt = require('../encryption/security') var db = []; var defaultDb = [] -db1.mongo.dbinstance.forEach(function (instance, inx) { - if (instance.isenable) { - // console.log('instance', instance) - var pass = endecrypt.decrypt(instance.password) - // console.log(pass) - var mongoDB = 'mongodb://' + instance.username + ':' + pass + '@' + instance.host + ':' + instance.port + '/' + instance.dbname; - // var mongoDB = 'mongodb://'+instance.host+':'+instance.port+'/'+((instance.dbname == '') ? databasename : instance.dbname); - console.log('database::::', mongoDB); - var connection = mongoose.createConnection(mongoDB); - connection.on('error', console.error.bind(console, 'MongoDB connection error:')); +// db1.mongo.dbinstance.forEach(function (instance, inx) { +// if (instance.isenable) { +// // console.log('instance', instance) +// var pass = endecrypt.decrypt(instance.password) +// // console.log(pass) +// var mongoDB = 'mongodb://' + instance.username + ':' + pass + '@' + instance.host + ':' + instance.port + '/' + instance.dbname; +// // var mongoDB = 'mongodb://'+instance.host+':'+instance.port+'/'+((instance.dbname == '') ? databasename : instance.dbname); +// console.log('database::::', mongoDB); +// var connection = mongoose.createConnection(mongoDB); +// connection.on('error', console.error.bind(console, 'MongoDB connection error:')); - db.push({ id: instance.id, conn: connection }) - } - if (instance.isdefault) { - // console.log('instance', instance) - var pass = endecrypt.decrypt(instance.password) - // console.log(pass) - var mongoDB = 'mongodb://' + instance.username + ':' + pass + '@' + instance.host + ':' + instance.port + '/' + instance.dbname; - // var mongoDB = 'mongodb://'+instance.host+':'+instance.port+'/'+((instance.dbname == '') ? databasename : instance.dbname); - console.log('database::::', mongoDB); - var connection = mongoose.createConnection(mongoDB); - connection.on('error', console.error.bind(console, 'MongoDB connection error:')); +// db.push({ id: instance.id, conn: connection }) +// } +// if (instance.isdefault) { +// // console.log('instance', instance) +// var pass = endecrypt.decrypt(instance.password) +// // console.log(pass) +// var mongoDB = 'mongodb://' + instance.username + ':' + pass + '@' + instance.host + ':' + instance.port + '/' + instance.dbname; +// // var mongoDB = 'mongodb://'+instance.host+':'+instance.port+'/'+((instance.dbname == '') ? databasename : instance.dbname); +// console.log('database::::', mongoDB); +// var connection = mongoose.createConnection(mongoDB); +// connection.on('error', console.error.bind(console, 'MongoDB connection error:')); - defaultDb.push({ id: instance.id, conn: connection }) - } -}) +// defaultDb.push({ id: instance.id, conn: connection }) +// } +// }) // db1.mongo.username+':'+db1.mongo.password+'@'+ // var mongoDB = 'mongodb://'+db1.mongo.host+':'+db1.mongo.port+'/'+((db1.mongo.dbname == '') ? databasename : db1.mongo.dbname); @@ -54,6 +55,19 @@ db1.mongo.dbinstance.forEach(function (instance, inx) { // db.on('error', console.error.bind(console, 'MongoDB connection error:')); // console.log('Success!!!!!!!!!!!!! Mongo'); +let getConnection = async (function(data) { + // console.log(data) + let uri = 'mongodb://' + ((data.username != '' ? data.username + ':' + data.password + '@' : '')) + data.host + ':' + data.port + '/' + data.dbname; + // console.log(uri) + let _data = await (MongoClient.connect(uri).then(res=> { + return res + }).catch(err=> { + let obj = {iserror: true, msg: err} + return obj + })) + return _data +}) + module.exports = { generateInstanceTable: async(function (ins_id, title){ console.log('Mongo generate instance collection..........', ins_id, title); @@ -69,9 +83,166 @@ module.exports = { }), choose: async(function () { - console.log('===================MONGODB================='); + console.log('=================== MONGODB ================='); }), + //get methods + + + getflowsInstance: async(function (collName, inst_id) { + console.log('mongo get flowsInstance'); + // var flowsInstance = async(function (collName, inst_id) { + for (let [i, inst] of db.entries()) { + if ( inst.id == inst_id ) { + var r = await (inst.conn.collection(collName).find().toArray()) + // console.log('mongo r', r) + return r + } + } + // var result = [] + // _.forEach(db, function (dbinstance) { + // var r = await (dbinstance.conn.collection('flows-instance').find().toArray()) + // _.forEach(r, function (instance) { + // result.push(instance) + // }) + // }) + // return result; + // }); + // var res = await (flowsInstance(collName, inst_id)) + // return res; + // var flowsInstance = await (db.collection('flows-instance').find().toArray()); + // // console.log('flowsInstance',flowsInstance); + // return flowsInstance; + }), + + getThisflowsInstance: async(function (id, collName, conndata) { + console.log('mongo get flowsInstanceCurrent'); + var id = new mongoose.Types.ObjectId(id); + // for (let [i, inst] of db.entries()) { + // if ( inst.id == inst_id ) { + // var r = await (inst.conn.collection(collName).find({_id: id}).toArray()) + // // console.log('mongo r', r) + // return r[0] + // // for(let [inx, obj] of r.entries()) { + // // if (obj._id == id) { + // // return obj + // // } + // // } + // } + // } + var conn = await( getConnection(conndata).then(res => { + return res + }).catch(err => { + return {iserror: true, msg: err} + })) + if (conn.hasOwnProperty('iserror') && conn.iserror) { + return conn + } else { + var schema = await (conn.collection(collName).find({_id: id}).toArray()); + // console.log('Generated Id:', schema.ops[0]._id) + conn.close() + return schema[0]; + } + // if (id.length != 24) { + // return []; + // } else { + // var id = new mongoose.Types.ObjectId(id); + // var flowsInstance = async(function () { + // var result = [] + // _.forEach(db, function (dbinstance) { + // var r = await (dbinstance.conn.collection('flows-instance').find({ _id: id }).toArray()) + // _.forEach(r, function (instance) { + // result.push(instance) + // }) + // }) + // return result; + // }); + // var res = await (flowsInstance()) + // return res; + // } + // var id = new mongoose.Types.ObjectId(id); + // var flowsInstance = await (db.collection('flows-instance').find({ _id: id }).toArray()); + // // console.log('flowsInstance',flowsInstance); + // return flowsInstance[0]; + }), + + //post methods + + postflowsInstance: async(function (data, conndata, collName) { + console.log('...................mongo post flowsInstance...................'); + // data.Schemaid = data._id + // delete data._id + // delete data.id + // console.log('guid', data.database[1]) + // console.log('dbid', dbid) + // var selectedDB = _.find(db, async(function(d){ + // return d.id == dbid + // })) + // var selectedDB; + // for(let i = 0; i < db.length; i++ ){ + // // console.log('connid', db[i].id) + // if(db[i].id == dbid) { + // selectedDB = db[i] + // } + // } + // console.log('selectedDB', selectedDB) + var conn = await( getConnection(conndata).then(res => { + // console.log('conndata', conndata) + return res + }).catch(err => { + return {iserror: true, msg: err} + })) + if (conn.hasOwnProperty('iserror') && conn.iserror) { + return conn + } else { + var schema = await (conn.collection(collName).insert(data)); + // console.log('Generated Id:', schema.ops[0]._id) + conn.close() + return schema.ops[0]._id; + } + // var flowsInstance = await (db.collection('flows-instance').insert(data)); + // // var flowsInstance = await (db.collection('flows-instance').insert(data, function(err, result) { + // // if (err) { + // // console.log('Error!! from mongo post flowsInstance'); + // // return {success: false} + // // } else { + // // console.log('Success!! from mongo post flowsInstance'); + // // return {success: true} + // // } + // // })); + // return flowsInstance.ops; + }), + + //put methods + + putflowsInstance: async(function (id, data, tableName, inst_id) { + console.log('mongo put flowsInstance'); + delete data._id + delete data.id + var id = new mongoose.Types.ObjectId(id); + // console.log('id from putflowsInstance:',id); + var selectedDB = _.find(db, (d) => { + return d.id == inst_id + }) + var flowsInstance = await (selectedDB.conn.collection(tableName).updateOne({ _id: id }, { $set: data })); + return flowsInstance.result; + }), + + //delete methods + + deleteThisflowsInstance: async(function (id, tableName, inst_id) { + console.log('mongo delete this flowsInstance'); + var id = new mongoose.Types.ObjectId(id); + var selectedDB = _.find(db, (d) => { + return d.id == inst_id + }) + var flowsInstance = await (selectedDB.conn.collection(tableName).deleteOne({ _id: id })); + return flowsInstance; + }), + + + +/////////////////////////////////////////////////////////////////////////////////////////////////////////////// getSchemaName: async(function (name) { console.log('mongo get SchemaName.............................'); var schemadata = async(function () { @@ -213,6 +384,7 @@ module.exports = { // console.log('schemadata getSchema',res); return res; }), + getThisSchema: async(function (id) { console.log('mongo get SchemaCurrent'); if (id.length != 24) { @@ -238,70 +410,6 @@ module.exports = { return res; } }), - getflowsInstance: async(function (collName, inst_id) { - console.log('mongo get flowsInstance'); - // var flowsInstance = async(function (collName, inst_id) { - for (let [i, inst] of db.entries()) { - if ( inst.id == inst_id ) { - var r = await (inst.conn.collection(collName).find().toArray()) - // console.log('mongo r', r) - return r - } - } - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('flows-instance').find().toArray()) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance(collName, inst_id)) - // return res; - // var flowsInstance = await (db.collection('flows-instance').find().toArray()); - // // console.log('flowsInstance',flowsInstance); - // return flowsInstance; - }), - getThisflowsInstance: async(function (id, collName, inst_id) { - console.log('mongo get flowsInstanceCurrent'); - var id = new mongoose.Types.ObjectId(id); - for (let [i, inst] of db.entries()) { - if ( inst.id == inst_id ) { - var r = await (inst.conn.collection(collName).find({_id: id}).toArray()) - // console.log('mongo r', r) - return r[0] - // for(let [inx, obj] of r.entries()) { - // if (obj._id == id) { - // return obj - // } - // } - } - } - // if (id.length != 24) { - // return []; - // } else { - // var id = new mongoose.Types.ObjectId(id); - // var flowsInstance = async(function () { - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('flows-instance').find({ _id: id }).toArray()) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance()) - // return res; - // } - // var id = new mongoose.Types.ObjectId(id); - // var flowsInstance = await (db.collection('flows-instance').find({ _id: id }).toArray()); - // // console.log('flowsInstance',flowsInstance); - // return flowsInstance[0]; - }), - - //post methods postSchema: async(function (data) { console.log('mongo post Schemax'); // console.log('guid', data.database[1]) @@ -313,41 +421,6 @@ module.exports = { // console.log(schema) return schema.ops[0]._id; }), - postflowsInstance: async(function (data, dbid, collName) { - console.log('...................mongo post flowsInstance...................', collName); - // data.Schemaid = data._id - // delete data._id - // delete data.id - // console.log('guid', data.database[1]) - console.log('dbid', dbid) - // var selectedDB = _.find(db, async(function(d){ - // return d.id == dbid - // })) - var selectedDB; - for(let i = 0; i < db.length; i++ ){ - // console.log('connid', db[i].id) - if(db[i].id == dbid) { - selectedDB = db[i] - } - } - // console.log('selectedDB', selectedDB) - var schema = await (selectedDB.conn.collection(collName).insert(data)); - console.log('Generated Id:', schema.ops[0]._id) - return schema.ops[0]._id; - // var flowsInstance = await (db.collection('flows-instance').insert(data)); - // // var flowsInstance = await (db.collection('flows-instance').insert(data, function(err, result) { - // // if (err) { - // // console.log('Error!! from mongo post flowsInstance'); - // // return {success: false} - // // } else { - // // console.log('Success!! from mongo post flowsInstance'); - // // return {success: true} - // // } - // // })); - // return flowsInstance.ops; - }), - - //put methods putSchema: async(function (data, id) { console.log('mongo put Schema'); // delete data._id @@ -359,40 +432,6 @@ module.exports = { var schema = await (defaultDb[0].conn.collection('schema').updateOne({ _id: id }, { $set: data })); return schema; }), - putflowsInstance: async(function (id, data, tableName, inst_id) { - console.log('mongo put flowsInstance'); - delete data._id - delete data.id - var id = new mongoose.Types.ObjectId(id); - // console.log('id from putflowsInstance:',id); - var selectedDB = _.find(db, (d) => { - return d.id == inst_id - }) - var flowsInstance = await (selectedDB.conn.collection(tableName).updateOne({ _id: id }, { $set: data })); - return flowsInstance.result; - }), - - //delete methods - // deleteSchema: async(function() { - // // var _data = JSON.parse(data); - // // console.log('mongo delete Schema'); - // // var id = new mongoose.Types.ObjectId(id); - // // console.log('id from putSchema:',id); - // // db.collection('schema').updateOne({ _id: id }, { $set: _data }, function(err, result) { - // // if (err) { - // // return {success: false} - // // } else { - // // return {success: true} - // // } - // // }); - // db.collection('schema').drop(function(err, result) { - // if (err) { - // return {success: false} - // } else { - // return {success: true} - // } - // }); - // }) deleteThisSchema: async(function (id, type) { console.log('mongo delete schema'); if (id.length != 24) { @@ -422,15 +461,5 @@ module.exports = { } } // // var schema = await (db.collection('schema').deleteOne({ _id: id })); - }), - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('mongo delete this flowsInstance'); - var id = new mongoose.Types.ObjectId(id); - var selectedDB = _.find(db, (d) => { - return d.id == inst_id - }) - var flowsInstance = await (selectedDB.conn.collection(tableName).deleteOne({ _id: id })); - return flowsInstance; }) - } diff --git a/service/src/services/DBConnection/rethinkapi.js b/service/src/services/DBConnection/rethinkapi.js index e0dccfe..b3def22 100644 --- a/service/src/services/DBConnection/rethinkapi.js +++ b/service/src/services/DBConnection/rethinkapi.js @@ -7,80 +7,108 @@ var fs = require('fs') var r = [] var dr = [] -db.rethink.dbinstance.forEach(function (instance, inx) { - var connection; - if (instance.isenable) { - if(instance.hasOwnProperty('authKey') && instance.hasOwnProperty('ssl')) { - connection = require('rethinkdbdash')({ - port: instance.port, - host: instance.host, - db: instance.dbname, - authKey: instance.authKey, - ssl: process.env.cert ? { ca: fs.readFileSync(__dirname+process.env.cert) } : null - }); - } else { - connection = require('rethinkdbdash')({ - username: instance.username, - password: endecrypt.decrypt(instance.password), - port: instance.port, - host: instance.host, - db: instance.dbname - }); - } +// db.rethink.dbinstance.forEach(function (instance, inx) { +// var connection; +// if (instance.isenable) { +// if(instance.hasOwnProperty('authKey') && instance.hasOwnProperty('ssl')) { +// connection = require('rethinkdbdash')({ +// port: instance.port, +// host: instance.host, +// db: instance.dbname, +// authKey: instance.authKey, +// ssl: process.env.cert ? { ca: fs.readFileSync(__dirname+process.env.cert) } : null +// }); +// } else { +// connection = require('rethinkdbdash')({ +// username: instance.username, +// password: endecrypt.decrypt(instance.password), +// port: instance.port, +// host: instance.host, +// db: instance.dbname +// }); +// } - var yes = connection.dbList().contains(instance.dbname) // create db if not exists - .do(function (dbExists) { - return connection.branch(dbExists, { created: 0 }, connection.dbCreate(instance.dbname)); - }).run().then(function () { - return connection.db(instance.dbname).tableList().contains('schema') // create table if not exists - .do(function (tableExists) { - return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('schema')); - }).run().then(function () { - return connection.db(instance.dbname).tableList().contains('flowsinstance') // create table if not exists - .do(function (tableExists) { - return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('flowsinstance')); - }).run(); - }); - }); - r.push({ id: instance.id, conn: connection ,dbname: instance.dbname}) - } - if (instance.isdefault) { +// var yes = connection.dbList().contains(instance.dbname) // create db if not exists +// .do(function (dbExists) { +// return connection.branch(dbExists, { created: 0 }, connection.dbCreate(instance.dbname)); +// }).run().then(function () { +// return connection.db(instance.dbname).tableList().contains('schema') // create table if not exists +// .do(function (tableExists) { +// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('schema')); +// }).run().then(function () { +// return connection.db(instance.dbname).tableList().contains('flowsinstance') // create table if not exists +// .do(function (tableExists) { +// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('flowsinstance')); +// }).run(); +// }); +// }); +// r.push({ id: instance.id, conn: connection ,dbname: instance.dbname}) +// } +// if (instance.isdefault) { - if(instance.hasOwnProperty('authKey') && instance.hasOwnProperty('ssl')) { - connection = require('rethinkdbdash')({ - port: instance.port, - host: instance.host, - db: instance.dbname, - authKey: instance.authKey, - ssl: process.env.cert ? { ca: fs.readFileSync(__dirname+process.env.cert) } : null - }); - } else { - connection = require('rethinkdbdash')({ - username: instance.username, - password: endecrypt.decrypt(instance.password), - port: instance.port, - host: instance.host, - db: instance.dbname - }); - } +// if(instance.hasOwnProperty('authKey') && instance.hasOwnProperty('ssl')) { +// connection = require('rethinkdbdash')({ +// port: instance.port, +// host: instance.host, +// db: instance.dbname, +// authKey: instance.authKey, +// ssl: process.env.cert ? { ca: fs.readFileSync(__dirname+process.env.cert) } : null +// }); +// } else { +// connection = require('rethinkdbdash')({ +// username: instance.username, +// password: endecrypt.decrypt(instance.password), +// port: instance.port, +// host: instance.host, +// db: instance.dbname +// }); +// } - var yes = connection.dbList().contains(instance.dbname) // create db if not exists - .do(function (dbExists) { - return connection.branch(dbExists, { created: 0 }, connection.dbCreate(instance.dbname)); - }).run().then(function () { - return connection.db(instance.dbname).tableList().contains('schema') // create table if not exists - .do(function (tableExists) { - return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('schema')); - }).run().then(function () { - return connection.db(instance.dbname).tableList().contains('flowsinstance') // create table if not exists - .do(function (tableExists) { - return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('flowsinstance')); - }).run(); - }); - }); - dr.push({ id: instance.id, conn: connection }) - } - }) +// var yes = connection.dbList().contains(instance.dbname) // create db if not exists +// .do(function (dbExists) { +// return connection.branch(dbExists, { created: 0 }, connection.dbCreate(instance.dbname)); +// }).run().then(function () { +// return connection.db(instance.dbname).tableList().contains('schema') // create table if not exists +// .do(function (tableExists) { +// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('schema')); +// }).run().then(function () { +// return connection.db(instance.dbname).tableList().contains('flowsinstance') // create table if not exists +// .do(function (tableExists) { +// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('flowsinstance')); +// }).run(); +// }); +// }); +// dr.push({ id: instance.id, conn: connection }) +// } +// }) + +let getConnection = async (function(data) { + let connection = require('rethinkdbdash')({ + username: data.username, + password: data.password, + port: data.port, + host: data.host, + db: data.dbname + }); + return connection +}) + +let trygetConnection = async (function(data) { + let connection = require('rethinkdbdash')({ + username: data.username, + password: data.password, + port: data.port, + host: data.host, + db: data.dbname + }).connect({ + username: data.username, + password: data.password, + port: data.port, + host: data.host, + db: data.dbname + }); + return connection +}) module.exports = { generateInstanceTable: async(function (data){ @@ -108,8 +136,157 @@ module.exports = { }), choose: async(function () { - console.log('===================RETHINKDB================='); + console.log('=================== RETHINKDB ================='); + }), + + // get methods + getflowsInstance: async(function (tableName, inst_id) { + console.log('rethink get flowsInstance'); + for (let [i, inst] of r.entries()) { + if ( inst.id == inst_id ) { + var res = await (inst.conn.table(tableName).run()) + // console.log('rethink r', res) + return res + } + } + // var flowsInstance = async(function () { + // var result = [] + // _.forEach(r, function (dbinstance) { + // var data = await (dbinstance.conn.table('flowsinstance').run()) + // _.forEach(data, function (instance) { + // result.push(instance) + // }) + // }) + // return result; + // }); + // var res = await (flowsInstance()) + // return res; + // // var flowsInstance = await (r.table('flowsinstance') + // // .run() + // // .then(function (response) { + // // // console.log('getflowsInstance:',response); + // // return response; + // // }) + // // .error(function (err) { + // // console.log('Error:', err); + // // })); + // // return flowsInstance; + }), + + getThisflowsInstance: async(function (id, tableName, conndata) { + console.log('rethink get flowsInstanceCurrent'); + var conn = await( getConnection(conndata).then(res => { + return res + }).catch(err => { + return {iserror: true, msg: err} + })) + if (conn.hasOwnProperty('iserror') && conn.iserror) { + return conn + } else { + var result = await(conn.table(tableName).filter({ 'id': id }).run()) + conn.getPoolMaster().drain() + return result[0]; + } + // for (let [i, inst] of r.entries()) { + // if ( inst.id == inst_id ) { + // var res = await (inst.conn.table(tableName).filter({ 'id': id }).run()) + // // for(let [inx, obj] of res.entries()) { + // // if (obj._id == id) { + // // return obj + // // } + // // } + // // console.log('rethink r', res) + // return res[0] + // } + // } + // // var flowsInstance = async(function () { + // // var result = [] + // // _.forEach(r, function (dbinstance) { + // // var data = await (dbinstance.conn.table('flowsinstance').filter({ 'id': id }).run()) + // // _.forEach(data, function (instance) { + // // result.push(instance) + // // }) + // // }) + // // return result; + // // }); + // // var res = await (flowsInstance()) + // // return res; + // // var flowsInstance = await (r.table('flowsinstance').filter({ 'id': id }).run()); + // // // console.log('flowsInstance',flowsInstance); + // // return flowsInstance[0]; + }), + + // post methods + + postflowsInstance: async(function (data, conndata, tableName) { + console.log('....................rethink post flowsInstance........................'); + var conn = await( getConnection(conndata).then(res => { + return res + }).catch(err => { + return {iserror: true, msg: err} + })) + if (conn.hasOwnProperty('iserror') && conn.iserror) { + return conn + } else { + var result = await(selectedDB.conn.table(tableName).insert(data).run()) + conn.getPoolMaster().drain() + return result.generated_keys[0]; + } + // console.log('guid', dbid) + // // var selectedDB = _.find(r, (d) => { + // // return d.id == dbid + // // }) + // var selectedDB; + // for(let i = 0; i < r.length; i++ ){ + // // console.log('connid', db[i].id) + // if(r[i].id == dbid) { + // selectedDB = r[i] + // } + // } + // // var _data = JSON.parse(data); + // // console.log('data:',_data); + // var flowsInstance = await (selectedDB.conn.table(tableName).insert(data).run()); + // // console.log('########## from postSchema',flowsInstance); + + // var _id = flowsInstance.generated_keys[0]; + // selectedDB.conn.table(tableName).get(_id).update({ '_id': _id }).run(); + // return flowsInstance.generated_keys[0]; + }), + + // put methods + + putflowsInstance: async(function (id, data, tableName, inst_id) { + console.log('rethink put flowsInstance'); + var selectedDB = _.find(r, (d) => { + return d.id == inst_id + }) + var flowsinstance = await (selectedDB.conn.table(tableName).get(id).replace(data).run()); + return flowsinstance; }), + + // *******************delete methods******************** + + // deleteSchema: async(function () { + // console.log('rethink delete allSchema'); + // var schema = await (r.table('schema').delete().run()); + // return schema; + // }), + + // deleteflowsInstance: async(function () { + // console.log('rethink delete allSchema'); + // var flowsinstance = await (r.table('flowsinstance').delete().run()); + // return flowsinstance; + // }), + + deleteThisflowsInstance: async(function (id, tableName, inst_id) { + console.log('rethink delete this flowsInstance'); + var selectedDB = _.find(r, (d) => { + return d.id == inst_id + }) + var flowsinstance = await (selectedDB.conn.table(tableName).filter({ 'id': id }).delete().run()); + return flowsinstance; + }), + getSchemaName: async(function (name) { console.log('rethink get SchemaName'); var schemadata = await (r.table('schema').filter({ 'title': name }) @@ -291,71 +468,6 @@ module.exports = { // return res; }), - getflowsInstance: async(function (tableName, inst_id) { - console.log('rethink get flowsInstance'); - for (let [i, inst] of r.entries()) { - if ( inst.id == inst_id ) { - var res = await (inst.conn.table(tableName).run()) - // console.log('rethink r', res) - return res - } - } - // var flowsInstance = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('flowsinstance').run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance()) - // return res; - // // var flowsInstance = await (r.table('flowsinstance') - // // .run() - // // .then(function (response) { - // // // console.log('getflowsInstance:',response); - // // return response; - // // }) - // // .error(function (err) { - // // console.log('Error:', err); - // // })); - // // return flowsInstance; - }), - - getThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('rethink get flowsInstanceCurrent'); - for (let [i, inst] of r.entries()) { - if ( inst.id == inst_id ) { - var res = await (inst.conn.table(tableName).filter({ 'id': id }).run()) - // for(let [inx, obj] of res.entries()) { - // if (obj._id == id) { - // return obj - // } - // } - // console.log('rethink r', res) - return res[0] - } - } - // var flowsInstance = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('flowsinstance').filter({ 'id': id }).run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance()) - // return res; - // var flowsInstance = await (r.table('flowsinstance').filter({ 'id': id }).run()); - // // console.log('flowsInstance',flowsInstance); - // return flowsInstance[0]; - }), - - //post methods postSchema: async(function (data) { console.log('rethink post Schema'); console.log('guid', data.database[1]) @@ -380,31 +492,7 @@ module.exports = { // r.table("schema").get(_id).update({'_id': _id}).run(); // return schema; }), - - postflowsInstance: async(function (data, dbid, tableName) { - console.log('....................rethink post flowsInstance........................'); - console.log('guid', dbid) - // var selectedDB = _.find(r, (d) => { - // return d.id == dbid - // }) - var selectedDB; - for(let i = 0; i < r.length; i++ ){ - // console.log('connid', db[i].id) - if(r[i].id == dbid) { - selectedDB = r[i] - } - } - // var _data = JSON.parse(data); - // console.log('data:',_data); - var flowsInstance = await (selectedDB.conn.table(tableName).insert(data).run()); - // console.log('########## from postSchema',flowsInstance); - - var _id = flowsInstance.generated_keys[0]; - selectedDB.conn.table(tableName).get(_id).update({ '_id': _id }).run(); - return flowsInstance.generated_keys[0]; - }), - //put methods putSchema: async(function (data, id) { console.log('rethink put Schema'); // var selectedDB = _.find(r, (d) => { @@ -416,22 +504,7 @@ module.exports = { // var schema = await (r.table('schema').get(id).replace(data).run()); // return schema;dr[0] }), - putflowsInstance: async(function (id, data, tableName, inst_id) { - console.log('rethink put flowsInstance'); - var selectedDB = _.find(r, (d) => { - return d.id == inst_id - }) - var flowsinstance = await (selectedDB.conn.table(tableName).get(id).replace(data).run()); - return flowsinstance; - }), - // *******************delete methods******************** - - // deleteSchema: async(function () { - // console.log('rethink delete allSchema'); - // var schema = await (r.table('schema').delete().run()); - // return schema; - // }), deleteThisSchema: async(function (id, type) { console.log('rethink delete schema'); @@ -454,18 +527,4 @@ module.exports = { } // // var schema = await (r.table('schema').filter({ 'id': id }).delete().run()); }), - - // deleteflowsInstance: async(function () { - // console.log('rethink delete allSchema'); - // var flowsinstance = await (r.table('flowsinstance').delete().run()); - // return flowsinstance; - // }), - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('rethink delete this flowsInstance'); - var selectedDB = _.find(r, (d) => { - return d.id == inst_id - }) - var flowsinstance = await (selectedDB.conn.table(tableName).filter({ 'id': id }).delete().run()); - return flowsinstance; - }) } diff --git a/service/src/services/databases/databases.filters.js b/service/src/services/databases/databases.filters.js new file mode 100644 index 0000000..04a6812 --- /dev/null +++ b/service/src/services/databases/databases.filters.js @@ -0,0 +1,6 @@ +/* eslint no-console: 1 */ +// console.warn('You are using the default filter for the databases service.'); // eslint-disable-line no-console + +module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars + return data; +}; diff --git a/service/src/services/databases/databases.hooks.js b/service/src/services/databases/databases.hooks.js new file mode 100644 index 0000000..8d10870 --- /dev/null +++ b/service/src/services/databases/databases.hooks.js @@ -0,0 +1,109 @@ +let async = require('asyncawait/async'); +let await = require('asyncawait/await'); +var endecrypt = require('../encryption/security') +const errors = require('feathers-errors'); +let config = require('config'); +var axios = require('axios'); +var _ = require('lodash'); + +module.exports = { + before: { + all: [], + find: [ + hook => beforeFind(hook) + ], + get: [], + create: [ + hook => beforeCreate(hook) + ], + update: [], + patch: [ + hook => beforePatch(hook) + ], + remove: [] + }, + + after: { + all: [ + hook => afterFind(hook) + ], + find: [], + get: [ + hook => afterGet(hook) + ], + create: [], + update: [], + patch: [], + remove: [] + }, + + error: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + } +}; + +let beforeCreate = async( function(hook) { + // console.log('Hook.data', hook.data) + hook.params.query.selectedDb = hook.data.selectedDb; + hook.params.query.dbname = hook.data.dbname; + hook.params.query.username = hook.data.username; + hook.data.createdAt = new Date(); + if (hook.data.password !== '') { + hook.params.query.password = endecrypt.encrypt(hook.data.password); + } else { + hook.params.query.password = hook.data.password; + } + const query = Object.assign({}, hook.params.query); + return hook.app.service('databases').find({ query }).then(response => { + if (response.data.length > 0) { + throw new errors.BadRequest('Connection exist', { + errors: { message: 'connection already exist with connection name as ' + response.data[0].connection_name } + }); + } else { + hook.data.password = endecrypt.encrypt(hook.data.password); + } + return hook; + }); +}) + +let beforeFind = function(hook) { + if (hook.params.query && hook.params.query.$paginate) { + hook.params.paginate = hook.params.query.$paginate === 'false' || hook.params.query.$paginate === false; + delete hook.params.query.$paginate; + } +} + +let beforePatch = async(function(hook) { + // hook.params.query.$paginate = false; + // const query = Object.assign({}, hook.params.query); + // return hook.app.service('databases').find({ query }).then(response => { + // console.log('response.data', response.data) + // for (let mschema of response.data) { + // if (mschema.id !== hook.id) { + + // } + // } + // return hook; + // }); +}) + +let afterGet = function(hook) { + if(hook.id) { + hook.result.password = endecrypt.decrypt(hook.result.password); + } +} + +let afterFind = function(hook) { + //console.log('afterFind') + // if(hook.id === undefined) { + // hook.result.data = _.map(hook.result.data, (d) => { + // return _.omit(d, ['username', 'password']) + // }) + // } +} \ No newline at end of file diff --git a/service/src/services/databases/databases.service.js b/service/src/services/databases/databases.service.js new file mode 100644 index 0000000..8cc674b --- /dev/null +++ b/service/src/services/databases/databases.service.js @@ -0,0 +1,28 @@ +// Initializes the `databases` service on path `/databases` +const createService = require('feathers-rethinkdb'); +const hooks = require('./databases.hooks'); +const filters = require('./databases.filters'); + +module.exports = function () { + const app = this; + const Model = app.get('rethinkdbClient'); + const paginate = app.get('paginate'); + + const options = { + name: 'databases', + Model, + paginate + }; + + // Initialize our service with any options it requires + app.use('/databases', createService(options)); + + // Get our initialized service so that we can register hooks and filters + const service = app.service('databases'); + + service.hooks(hooks); + + if (service.filter) { + service.filter(filters); + } +}; diff --git a/service/src/services/index.js b/service/src/services/index.js index 67cb314..a8076ac 100644 --- a/service/src/services/index.js +++ b/service/src/services/index.js @@ -13,6 +13,7 @@ const addInputToJobQue = require('./addInputToJobQue/addInputToJobQue.service.js const bpmnplugins = require('./bpmnplugins/bpmnplugins.service.js'); const usermaster = require('./usermaster/usermaster.service.js'); const receiveform = require('./receive-form/receive-form.service.js'); +const databases = require('./databases/databases.service.js'); module.exports = function() { const app = this; // eslint-disable-line no-unused-vars app.configure(schema); @@ -30,4 +31,5 @@ module.exports = function() { app.configure(bpmnplugins); app.configure(usermaster); app.configure(receiveform); + app.configure(databases); }; \ No newline at end of file diff --git a/service/src/services/instance/instance.class.js b/service/src/services/instance/instance.class.js index 61b7a61..78b65bf 100644 --- a/service/src/services/instance/instance.class.js +++ b/service/src/services/instance/instance.class.js @@ -10,48 +10,50 @@ var chokidar = require('chokidar'); var db = '../DBConnection/db.json'; var file = require(db); var dbapi = []; - -_.forEach(file, function (dbs, i) { - var flag = false - _.forEach(dbs.dbinstance, function (instance) { - if (instance.isenable) { - flag = true - } - }) - if (flag) { - var api = require('../DBConnection/' + i + 'api') - dbapi.push({ db: i, api: api }); - api.choose() - } -}) - -let readfile = async(function () { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - // console.log('reading file' + data) - // console.log('reading file form instance' + data) - if (err) return console.log(err); - if (data == '') { - console.log('BLANCK DATA'); - return 'nodata'; - } - file = JSON.parse(data); - dbapi = []; - _.forEach(file, function (dbs, i) { - var flag = false - _.forEach(dbs.dbinstance, function (instance) { - if (instance.isenable) { - flag = true - } - }) - if (flag) { - var api = require('../DBConnection/' + i + 'api') - dbapi.push({ db: i, api: api }); - // console.log('From..........................................instance') - api.choose() - } - }) - }); -}) +let databasesUrl = 'http://' + config.get('host') + ':' + config.get('port') + '/databases' +let allapi = '../DBConnection/' + +// _.forEach(file, function (dbs, i) { +// var flag = false +// _.forEach(dbs.dbinstance, function (instance) { +// if (instance.isenable) { +// flag = true +// } +// }) +// if (flag) { +// var api = require('../DBConnection/' + i + 'api') +// dbapi.push({ db: i, api: api }); +// api.choose() +// } +// }) + +// let readfile = async(function () { +// fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { +// // console.log('reading file' + data) +// // console.log('reading file form instance' + data) +// if (err) return console.log(err); +// if (data == '') { +// console.log('BLANCK DATA'); +// return 'nodata'; +// } +// file = JSON.parse(data); +// dbapi = []; +// _.forEach(file, function (dbs, i) { +// var flag = false +// _.forEach(dbs.dbinstance, function (instance) { +// if (instance.isenable) { +// flag = true +// } +// }) +// if (flag) { +// var api = require('../DBConnection/' + i + 'api') +// dbapi.push({ db: i, api: api }); +// // console.log('From..........................................instance') +// api.choose() +// } +// }) +// }); +// }) var getQuery = async(function (dbName, type, queryFor) { let result = new Promise((resolve, reject) => { @@ -76,39 +78,39 @@ var getQuery = async(function (dbName, type, queryFor) { }); // One-liner for current directory, ignores .dotfiles -chokidar.watch(path.join(__dirname, '../DBConnection/db.json'), { ignored: /(^|[\/\\])\../ }).on('change', async(function (path) { - // console.log('From..........................................instance111') - // console.log('File', path, 'has been changed'); - delete require.cache[require.resolve('../DBConnection/db')]; - delete require.cache[require.resolve('../DBConnection/mongoapi')]; - delete require.cache[require.resolve('../DBConnection/rethinkapi')]; - delete require.cache[require.resolve('../DBConnection/elasticapi')]; - // delete require.cache[require.resolve('../DBConnection/mysqlapi')]; - var checking = await (readfile()); - if (checking == 'nodata') { - await (readfile); - } -})) - -var checkFlag = async(function (data) { - var flag = false - _.forEach(data, async(function (obj, index) { - // console.log('Obj', obj, '..k..', k)la - _.forEach(obj, async(function (val, key) { - // console.log(key, val) - if (key == 'database') {} else { - if (Array.isArray(val)) { - _.forEach(val, async(function (obj) { - if (!obj.hasOwnProperty('refid')) { - flag = true - } - })) - } - } - })) - })) - return flag -}) +// chokidar.watch(path.join(__dirname, '../DBConnection/db.json'), { ignored: /(^|[\/\\])\../ }).on('change', async(function (path) { +// // console.log('From..........................................instance111') +// // console.log('File', path, 'has been changed'); +// delete require.cache[require.resolve('../DBConnection/db')]; +// delete require.cache[require.resolve('../DBConnection/mongoapi')]; +// delete require.cache[require.resolve('../DBConnection/rethinkapi')]; +// delete require.cache[require.resolve('../DBConnection/elasticapi')]; +// // delete require.cache[require.resolve('../DBConnection/mysqlapi')]; +// var checking = await (readfile()); +// if (checking == 'nodata') { +// await (readfile); +// } +// })) + +// var checkFlag = async(function (data) { +// var flag = false +// _.forEach(data, async(function (obj, index) { +// // console.log('Obj', obj, '..k..', k)la +// _.forEach(obj, async(function (val, key) { +// // console.log(key, val) +// if (key == 'database') {} else { +// if (Array.isArray(val)) { +// _.forEach(val, async(function (obj) { +// if (!obj.hasOwnProperty('refid')) { +// flag = true +// } +// })) +// } +// } +// })) +// })) +// return flag +// }) var checkFlagforGet = async(function (mObj) { var flag = false @@ -310,6 +312,11 @@ var giveDatabase = async(function (schemaid) { return res.data.data.database }) +var getConnectionData = async( function(id) { + let res = await(axios.get(databasesUrl + '/' + id)) + return res.data +}) + var saveData = async(function (data, res) { // console.log('save calling...................', data, res) // var database; @@ -329,17 +336,18 @@ var saveData = async(function (data, res) { // database = res.database // } - var _dbindex = _.findIndex(dbapi, { 'db': res.database[0] }); + // var _dbindex = _.findIndex(dbapi, { 'db': res.database[0] }); // for(let [i, obj] of dbapi.entries()) { // if(obj.db == database[0]) { // _dbindex = i // } // } - + let selectapi = require(allapi + res.database[0] + 'api') + let conn = await (getConnectionData(res.database[1])) if (typeof res.id !== 'undefined') { - var dbdata = await (dbapi[_dbindex].api.postflowsInstance(data, res.database[1], res.title)); + var dbdata = await (selectapi.postflowsInstance(data, conn, res.title)); } else { - var dbdata = await (dbapi[_dbindex].api.postflowsInstance(data, res.database[1])); + var dbdata = await (selectapi.postflowsInstance(data, conn)); } console.log('Return Instance id .........', dbdata) return dbdata; @@ -779,28 +787,44 @@ var newgetFunction = async( function(id, res) { } if (!status) { // No custom type found - for (let [i, db] of dbapi.entries()) { - if (db.db == res.database[0]) { - var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) - return _res - } - } + // for (let [i, db] of dbapi.entries()) { + // if (db.db == res.database[0]) { + // var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) + // return _res + // } + // } + let selectapi = require(allapi + res.database[0] + 'api') + let conndata = await (getConnectionData(res.database[1])) + let _res = await (selectapi.getThisflowsInstance(id, res.title, conndata)) + return _res } else { // Now get custom data also - for (let [i, db] of dbapi.entries()) { - if (db.db == res.database[0]) { - var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) - for (let e of res.entity) { - if (e.customtype) { - let mschema = await (getSchemaData(e.type)) - for (let [i, mObj] of _res[e.name].entries()) { - _res[e.name][i] = await (newgetFunction(mObj.refid, mschema)) - } - } + // for (let [i, db] of dbapi.entries()) { + // if (db.db == res.database[0]) { + // var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) + // for (let e of res.entity) { + // if (e.customtype) { + // let mschema = await (getSchemaData(e.type)) + // for (let [i, mObj] of _res[e.name].entries()) { + // _res[e.name][i] = await (newgetFunction(mObj.refid, mschema)) + // } + // } + // } + // return _res + // } + // } + let selectapi = require(allapi + res.database[0] + 'api') + let conndata = await (getConnectionData(res.database[1])) + let _res = await (selectapi.getThisflowsInstance(id, res.title, conndata)) + for (let e of res.entity) { + if (e.customtype) { + let mschema = await (getSchemaData(e.type)) + for (let [i, mObj] of _res[e.name].entries()) { + _res[e.name][i] = await (newgetFunction(mObj.refid, mschema)) } - return _res } - } + } + return _res } }) From f3fe669ffd1649d2db4e04e59c4e1b14097f2c71 Mon Sep 17 00:00:00 2001 From: 80017 Date: Wed, 28 Feb 2018 14:23:18 +0530 Subject: [PATCH 100/419] Update vhost_ssl_develop.conf --- client/vhost_ssl_develop.conf | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/client/vhost_ssl_develop.conf b/client/vhost_ssl_develop.conf index c160586..1249950 100644 --- a/client/vhost_ssl_develop.conf +++ b/client/vhost_ssl_develop.conf @@ -1,8 +1,8 @@ - -ServerName www.engine.flowzcluster.tk -ServerAlias *.flowzcluster.tk -Redirect / https://www.engine.flowzcluster.tk - +# +#ServerName www.engine.flowzcluster.tk +#ServerAlias *.flowzcluster.tk +#Redirect / https://www.engine.flowzcluster.tk +# ServerName www.engine.flowzcluster.tk @@ -17,3 +17,16 @@ SSLEngine On SSLCertificateFile /etc/ssl/cert/cert_develop.pem SSLCertificateKeyFile /etc/ssl/privkey/privkey_develop.pem + + + +ServerName www.engine.flowzflowzcluster.tk +ServerAlias *.flowzcluster.tk +#Redirect / https://www.engine.flowzcluster.tk +DocumentRoot "/var/www/html/" + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + From 06054db14147f57b1368fd4230716415c414a2cc Mon Sep 17 00:00:00 2001 From: 80017 Date: Wed, 28 Feb 2018 14:24:27 +0530 Subject: [PATCH 101/419] Update vhost_ssl_master.conf --- client/vhost_ssl_master.conf | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/client/vhost_ssl_master.conf b/client/vhost_ssl_master.conf index 424886b..af1cc11 100644 --- a/client/vhost_ssl_master.conf +++ b/client/vhost_ssl_master.conf @@ -1,8 +1,8 @@ - -ServerName www.engine.flowztech.tk -ServerAlias *.flowztech.tk -Redirect / https://www.engine.flowztech.tk - +# +#ServerName www.engine.flowztech.tk +#ServerAlias *.flowztech.tk +#Redirect / https://www.engine.flowztech.tk +# ServerName www.engine.flowztech.tk @@ -17,3 +17,16 @@ SSLEngine on SSLCertificateFile /etc/ssl/cert/cert_master.pem SSLCertificateKeyFile /etc/ssl/privkey/privkey_master.pem + + + +ServerName www.engine.flowztech.tk +ServerAlias *.flowztech.tk +#Redirect / https://www.engine.flowztech.tk +DocumentRoot "/var/www/html/" + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + From 24061da93cf1482fefab3a7fcb2da1848eef92fc Mon Sep 17 00:00:00 2001 From: 80017 Date: Wed, 28 Feb 2018 14:30:15 +0530 Subject: [PATCH 102/419] Update vhost_ssl_qa.conf --- client/vhost_ssl_qa.conf | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/client/vhost_ssl_qa.conf b/client/vhost_ssl_qa.conf index 6bb4cc3..70e7b78 100644 --- a/client/vhost_ssl_qa.conf +++ b/client/vhost_ssl_qa.conf @@ -1,8 +1,8 @@ - -ServerName www.engine.flowzqa.tk -ServerAlias *.flowzqa.tk -Redirect / https://www.engine.flowzqa.tk - +# +#ServerName www.engine.flowzqa.tk +#ServerAlias *.flowzqa.tk +#Redirect / https://www.engine.flowzqa.tk +# ServerName www.engine.flowzqa.tk @@ -17,3 +17,16 @@ SSLEngine on SSLCertificateFile /etc/ssl/cert/cert_qa.pem SSLCertificateKeyFile /etc/ssl/privkey/privkey_qa.pem + + + +ServerName www.engine.flowzqa.tk +ServerAlias *.flowzqa.tk +#Redirect / https://www.engine.flowzqa.tk +DocumentRoot "/var/www/html/" + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted + + From 081c47927652f7dcaaa9de2454b9f0c9c48b480e Mon Sep 17 00:00:00 2001 From: 80017 Date: Wed, 28 Feb 2018 14:33:33 +0530 Subject: [PATCH 103/419] Update upgrade.sh --- upgrade.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/upgrade.sh b/upgrade.sh index 7464746..132bfd4 100644 --- a/upgrade.sh +++ b/upgrade.sh @@ -6,6 +6,7 @@ then echo $ENV_ID USERNAME="$DOCKER_USERNAME_FLOWZ"; TAG="latest"; + FRONT_HOST="$FRONT_HOST_MASTER"; } elif [ "$TRAVIS_BRANCH" = "develop" ] then @@ -15,6 +16,7 @@ then echo $ENV_ID USERNAME="$DOCKER_USERNAME"; TAG="dev"; + FRONT_HOST="$FRONT_HOST_DEVELOP"; } else { @@ -23,6 +25,7 @@ else echo $ENV_ID USERNAME="$DOCKER_USERNAME"; TAG="qa"; + FRONT_HOST="$FRONT_HOST_QA"; } fi @@ -48,7 +51,7 @@ curl -u ""$RANCHER_USER":"$RANCHER_PASS"" \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ - "inServiceStrategy":{"launchConfig": {"imageUuid":"docker:'$USERNAME'/flowz_frontend_flowz:'$TAG'","kind": "container","labels":{"io.rancher.container.pull_image": "always","io.rancher.scheduler.affinity:host_label": "machine=engine-front","io.rancher.scheduler.affinity:container_label_soft_ne": "io.rancher.stack_service.name=front-flowz/engine-fronted-flowz"},"ports": ["80:80/tcp","443:443/tcp"],"healthCheck": {"type": "instanceHealthCheck","healthyThreshold": 2,"initializingTimeout": 60000,"interval": 2000,"name": null,"port": 80,"recreateOnQuorumStrategyConfig": {"type": "recreateOnQuorumStrategyConfig","quorum": 1},"reinitializingTimeout": 60000,"requestLine": "GET \"http://localhost\" \"HTTP/1.0\"","responseTimeout": 60000,"strategy": "recreateOnQuorum","unhealthyThreshold": 3},"networkMode": "managed"}},"toServiceStrategy":null}' \ + "inServiceStrategy":{"launchConfig": {"imageUuid":"docker:'$USERNAME'/flowz_frontend_flowz:'$TAG'","kind": "container","labels":{"io.rancher.container.pull_image": "always","io.rancher.scheduler.affinity:host_label": "'"$FRONT_HOST"'","io.rancher.scheduler.affinity:container_label_soft_ne": "io.rancher.stack_service.name=front-flowz/engine-fronted-flowz"},"healthCheck": {"type": "instanceHealthCheck","healthyThreshold": 2,"initializingTimeout": 60000,"interval": 2000,"name": null,"port": 80,"recreateOnQuorumStrategyConfig": {"type": "recreateOnQuorumStrategyConfig","quorum": 1},"reinitializingTimeout": 60000,"requestLine": "GET \"http://localhost\" \"HTTP/1.0\"","responseTimeout": 60000,"strategy": "recreateOnQuorum","unhealthyThreshold": 3},"networkMode": "managed"}},"toServiceStrategy":null}' \ http://rancher.flowz.com:8080/v2-beta/projects/$ENV_ID/services/$SERVICE_ID_FRONTEND?action=upgrade curl -u ""$RANCHER_USER":"$RANCHER_PASS"" \ From 7d73c3cdb807b516f77823160f0bb2c0e2808466 Mon Sep 17 00:00:00 2001 From: 80017 Date: Wed, 28 Feb 2018 18:59:13 +0530 Subject: [PATCH 104/419] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 231cc4f..f593b00 100644 --- a/README.md +++ b/README.md @@ -2,3 +2,4 @@ Flowz working on flow base programming + From 603479ffe8e3cdfa33960c8387bb7a607cd8f7dd Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 1 Mar 2018 18:41:10 +0530 Subject: [PATCH 105/419] resolved-modeldata-and-canvas-access-and-sidebar-issues --- client/src/config/index.js | 2 + client/src/layout/SideBar.vue | 357 +++++++++--------- client/src/layout/user/SideBar.vue | 2 +- client/src/pages/approval/FormReply.vue | 43 +-- .../src/pages/approval/expand-FormReply.vue | 43 ++- client/src/pages/dbSettings/New.vue | 1 + client/src/pages/flow/List.vue | 2 +- client/src/store/actions.js | 9 +- service/src/services/flowz/flowz.hooks.js | 13 +- 9 files changed, 260 insertions(+), 212 deletions(-) diff --git a/client/src/config/index.js b/client/src/config/index.js index bbbe6d1..e9f6185 100644 --- a/client/src/config/index.js +++ b/client/src/config/index.js @@ -2,6 +2,8 @@ console.log('process.env.NODE_ENV', process.env.NODE_ENV) var temp = { serverURI: 'http://localhost:3030', // 'http://172.16.230.86:3030' socketURI: 'http://localhost:4033', + // serverURI: 'https://api.' + process.env.domainkey + '/eng', + // socketURI: 'wss://ws.' + process.env.domainkey + ':4033', workerRegisterURL: 'http://localhost:4001', approvalRoleURI: 'http://api.' + process.env.domainkey + '/authldap/', fixedLayout: false, diff --git a/client/src/layout/SideBar.vue b/client/src/layout/SideBar.vue index 3fad9e8..8b2e044 100644 --- a/client/src/layout/SideBar.vue +++ b/client/src/layout/SideBar.vue @@ -169,7 +169,8 @@ if(_flowz.length > 0) { console.log('flowz data', _flowz) this.loading = false - return _.orderBy(_flowz, [checkcase => checkcase.ProcessName.toLowerCase()], [this.orderby]) + this.flowzList = _.orderBy(this.flowzList, [checkcase => checkcase.ProcessName.toLowerCase()], [this.orderby]) + return _.orderBy(this.flowzList, [checkcase => checkcase.ProcessName.toLowerCase()], [this.orderby]) } else { this.loading = false return [] @@ -296,8 +297,24 @@ this.orderby = name }, async createNewInstance (index, id) { - let generatedJson = await this.generateJson(this.flowzList[index].xml) + // let generatedJson = await this.generateJson(this.flowzList[index].xml) + // generatedJson.fid = id + // instanceModel.post(generatedJson) + // .then(response => { + // // console.log('response.data', response.data) + // this.$router.push('/admin/flow/instance/' + response.data.id) + // }) + // .catch(error => { + // console.log(error) + // }) + let generatedJson = this.flowzList[index].json + // console.log('this.flowzList[index]', this.flowzList[index]) + generatedJson.allowedusers = this.flowzList[index].allowedusers ? this.flowzList[index].allowedusers : [] + // console.log('generatedJson', JSON.stringify(generatedJson)) + // console.log('generatedJson', generatedJson) generatedJson.fid = id + generatedJson.createdOn = Date() + // console.log('instanceModel', instanceModel) instanceModel.post(generatedJson) .then(response => { // console.log('response.data', response.data) @@ -379,185 +396,185 @@ processRef.push(result) await self.getAllProcess(jsonXML, result, processRef) } - }, - async getStartProcess (process) { - let self = this - return await Promise.all(_.chain(process.startEvent) - .map(async (m) => { - return { - id: m._id, - capacity: 1, - name: m._name, - type: 'start', - target: self.getTargetId(m, process), - mapping: [], - inputProperty: await self.getProperties(m), - outputProperty: await self.getOutputProperties(m) - } - }).value()) - }, - getTargetId (event, process) { - if (!_.isArray(event.outgoing)) { - event.outgoing = [event.outgoing] - } - return _.map(event.outgoing, (targetMap) => { - return _.chain(process.sequenceFlow).filter((ftr) => { - return ftr._id === targetMap.__text - }).map((m) => { - return { - id: m._targetRef - } - }).value()[0] - // return { id: targetMap.__text } - }) - }, - async getProperties (proccess) { - if (proccess.extensionElements && proccess.extensionElements.myProperty) { - if (!_.isArray(proccess.extensionElements.myProperty.property)) { - proccess.extensionElements.myProperty.property = [proccess.extensionElements.myProperty.property] - } - return await Promise.all(_.map(proccess.extensionElements.myProperty.property, async (m) => { + }, + async getStartProcess (process) { + let self = this + return await Promise.all(_.chain(process.startEvent) + .map(async (m) => { return { id: m._id, - entityschema: await schemaModel.getAll(m._entityschema), - approvalClass: m._approvalClass !== undefined && m._approvalClass !== '0' ? await approvalModel.get(m._approvalClass).then(content => { - return content.data - }) : undefined, - cancelLabel: m._cancelLabel, - choice: m._choice, - createTemplate: m._createTemplate, - emailTemplate: m._emailTemplate, - notes: m._notes, - submitLabel: m._submitLabel, - viewTemplate: m._viewTemplate + capacity: 1, + name: m._name, + type: 'start', + target: self.getTargetId(m, process), + mapping: [], + inputProperty: await self.getProperties(m), + outputProperty: await self.getOutputProperties(m) } - })) - } else { - return [] - } - }, - async getOutputProperties (proccess) { - if (proccess.extensionElements && proccess.extensionElements.myOutputs) { - if (!_.isArray(proccess.extensionElements.myOutputs.output)) { - proccess.extensionElements.myOutputs.output = [proccess.extensionElements.myOutputs.output] + }).value()) + }, + getTargetId (event, process) { + if (!_.isArray(event.outgoing)) { + event.outgoing = [event.outgoing] } - return await Promise.all(_.map(proccess.extensionElements.myOutputs.output, async (m) => { - return { - id: m._id, - entityschema: await schemaModel.getAll(m._entityschema), - approvalClass: m._approvalClass !== undefined && m._approvalClass !== '0' ? await approvalModel.get(m._approvalClass).then(content => { - return content.data - }) : undefined, - cancelLabel: m._cancelLabel, - choice: m._choice, - createTemplate: m._createTemplate, - emailTemplate: m._emailTemplate, - notes: m._notes, - submitLabel: m._submitLabel, - viewTemplate: m._viewTemplate - } - })) - } else { - return [] - } - }, - async getMapping (event, mergeModules) { - var self = this - if (!_.isArray(event.incoming)) { - event.incoming = [event.incoming] - } - return await Promise.all(_.chain(_.union(...mergeModules)) - .filter((f) => { - return _.filter(event.incoming, (i) => { return i.__text === f._id }).length > 0 - }).map(async (m) => { - let sourceRef = m._sourceRef - if (m.extensionElements && m.extensionElements.myIOMapping) { - if (!_.isArray(m.extensionElements.myIOMapping.mapping)) { - m.extensionElements.myIOMapping.mapping = [m.extensionElements.myIOMapping.mapping] + return _.map(event.outgoing, (targetMap) => { + return _.chain(process.sequenceFlow).filter((ftr) => { + return ftr._id === targetMap.__text + }).map((m) => { + return { + id: m._targetRef } - return await Promise.all(_.map(m.extensionElements.myIOMapping.mapping, async (m) => { - var content = await schemamappingModel.get(m._schemamapping) - content.data['sourceid'] = sourceRef // _.chain(_.union(...mergeModules)).find((fnd) => { return fnd._id === event.incoming.__text }).value()._sourceRef - content.data.MapData = await Promise.all(_.map(content.data.MapData, async (schema) => { - return { - producerField: schema.producerField, - transform: schema.transform, - consumerField: schema.ctype ? (await self.getMapData(schema.consumerField)) : _.first(schema.consumerField) - } - })) - content.data.MapData = self.mapDataConvertToSquenceFlow(content.data.MapData) - return content.data - })) - } else { - return [] + }).value()[0] + // return { id: targetMap.__text } + }) + }, + async getProperties (proccess) { + if (proccess.extensionElements && proccess.extensionElements.myProperty) { + if (!_.isArray(proccess.extensionElements.myProperty.property)) { + proccess.extensionElements.myProperty.property = [proccess.extensionElements.myProperty.property] } - }).value()) - // temp = await Promise.all(temp) - // return temp - }, - mapDataConvertToSquenceFlow (MapData) { - let newMapData = [] - _.map(MapData, (m) => { - if (_.isArray(m.consumerField)) { - _.forEach(m.consumerField, (fe) => { - if (!_.isArray(fe.consumerField)) { - newMapData.push({ - consumerField: _.reduceRight([fe.consumerTitle], function (memo, arrayValue) { - var obj = {} - obj[arrayValue] = memo - return obj - }, fe.consumerField), - transform: fe.transform, - producerField: _.reduceRight([fe.producerTitle], function (memo, arrayValue) { - var obj = {} - obj[arrayValue] = memo - return obj - }, fe.producerField) - }) + return await Promise.all(_.map(proccess.extensionElements.myProperty.property, async (m) => { + return { + id: m._id, + entityschema: await schemaModel.getAll(m._entityschema), + approvalClass: m._approvalClass !== undefined && m._approvalClass !== '0' ? await approvalModel.get(m._approvalClass).then(content => { + return content.data + }) : undefined, + cancelLabel: m._cancelLabel, + choice: m._choice, + createTemplate: m._createTemplate, + emailTemplate: m._emailTemplate, + notes: m._notes, + submitLabel: m._submitLabel, + viewTemplate: m._viewTemplate } - }) + })) } else { - newMapData.push(m) + return [] } - }) - return newMapData - }, - async getMapData (mapId) { - var content = await schemamappingModel.get(mapId) - let producer = await schemaModel.get(content.data.producer) - let consumer = await schemaModel.get(content.data.consumer) - return await Promise.all(_.map(content.data.MapData, async (schema) => { - var obj = { - consumerTitle: consumer.data.title, - producerTitle: producer.data.title, - transform: schema.transform, - producerField: schema.producerField, - consumerField: schema.ctype ? (await self.getMapData(schema.consumerField)) : _.first(schema.consumerField) + }, + async getOutputProperties (proccess) { + if (proccess.extensionElements && proccess.extensionElements.myOutputs) { + if (!_.isArray(proccess.extensionElements.myOutputs.output)) { + proccess.extensionElements.myOutputs.output = [proccess.extensionElements.myOutputs.output] + } + return await Promise.all(_.map(proccess.extensionElements.myOutputs.output, async (m) => { + return { + id: m._id, + entityschema: await schemaModel.getAll(m._entityschema), + approvalClass: m._approvalClass !== undefined && m._approvalClass !== '0' ? await approvalModel.get(m._approvalClass).then(content => { + return content.data + }) : undefined, + cancelLabel: m._cancelLabel, + choice: m._choice, + createTemplate: m._createTemplate, + emailTemplate: m._emailTemplate, + notes: m._notes, + submitLabel: m._submitLabel, + viewTemplate: m._viewTemplate + } + })) + } else { + return [] } - // obj[producer.data.title] = schema.producerField - // obj[consumer.data.title] = schema.ctype ? (await self.getMapData(schema.consumerField)) : _.first(schema.consumerField) - return obj - })) - }, - deleteFlow (id, inx) { - this.$Modal.confirm({ - title: 'Confirm', - content: '

    Are you sure you want to delete?

    ', - onOk: () => { - flowz.delete(id) - .then(response => { - this.$Notice.success({title: 'Success!!', desc: 'Flowz Deleted...'}) - this.flowzList.splice(inx, 1) - }) - .catch(error => { - this.$Notice.error({title: 'Error!!', desc: 'Flowz Not Deleted...'}) - console.log(error) - }) - }, - onCancel: () => { + }, + async getMapping (event, mergeModules) { + var self = this + if (!_.isArray(event.incoming)) { + event.incoming = [event.incoming] } - }) - }, + return await Promise.all(_.chain(_.union(...mergeModules)) + .filter((f) => { + return _.filter(event.incoming, (i) => { return i.__text === f._id }).length > 0 + }).map(async (m) => { + let sourceRef = m._sourceRef + if (m.extensionElements && m.extensionElements.myIOMapping) { + if (!_.isArray(m.extensionElements.myIOMapping.mapping)) { + m.extensionElements.myIOMapping.mapping = [m.extensionElements.myIOMapping.mapping] + } + return await Promise.all(_.map(m.extensionElements.myIOMapping.mapping, async (m) => { + var content = await schemamappingModel.get(m._schemamapping) + content.data['sourceid'] = sourceRef // _.chain(_.union(...mergeModules)).find((fnd) => { return fnd._id === event.incoming.__text }).value()._sourceRef + content.data.MapData = await Promise.all(_.map(content.data.MapData, async (schema) => { + return { + producerField: schema.producerField, + transform: schema.transform, + consumerField: schema.ctype ? (await self.getMapData(schema.consumerField)) : _.first(schema.consumerField) + } + })) + content.data.MapData = self.mapDataConvertToSquenceFlow(content.data.MapData) + return content.data + })) + } else { + return [] + } + }).value()) + // temp = await Promise.all(temp) + // return temp + }, + mapDataConvertToSquenceFlow (MapData) { + let newMapData = [] + _.map(MapData, (m) => { + if (_.isArray(m.consumerField)) { + _.forEach(m.consumerField, (fe) => { + if (!_.isArray(fe.consumerField)) { + newMapData.push({ + consumerField: _.reduceRight([fe.consumerTitle], function (memo, arrayValue) { + var obj = {} + obj[arrayValue] = memo + return obj + }, fe.consumerField), + transform: fe.transform, + producerField: _.reduceRight([fe.producerTitle], function (memo, arrayValue) { + var obj = {} + obj[arrayValue] = memo + return obj + }, fe.producerField) + }) + } + }) + } else { + newMapData.push(m) + } + }) + return newMapData + }, + async getMapData (mapId) { + var content = await schemamappingModel.get(mapId) + let producer = await schemaModel.get(content.data.producer) + let consumer = await schemaModel.get(content.data.consumer) + return await Promise.all(_.map(content.data.MapData, async (schema) => { + var obj = { + consumerTitle: consumer.data.title, + producerTitle: producer.data.title, + transform: schema.transform, + producerField: schema.producerField, + consumerField: schema.ctype ? (await self.getMapData(schema.consumerField)) : _.first(schema.consumerField) + } + // obj[producer.data.title] = schema.producerField + // obj[consumer.data.title] = schema.ctype ? (await self.getMapData(schema.consumerField)) : _.first(schema.consumerField) + return obj + })) + }, + deleteFlow (id, inx) { + this.$Modal.confirm({ + title: 'Confirm', + content: '

    Are you sure you want to delete?

    ', + onOk: () => { + flowz.delete(id) + .then(response => { + this.$Notice.success({title: 'Success!!', desc: 'Flowz Deleted...'}) + this.flowzList.splice(inx, 1) + }) + .catch(error => { + this.$Notice.error({title: 'Error!!', desc: 'Flowz Not Deleted...'}) + console.log(error) + }) + }, + onCancel: () => { + } + }) + }, } } diff --git a/client/src/layout/user/SideBar.vue b/client/src/layout/user/SideBar.vue index 697dd72..3d3a7a9 100644 --- a/client/src/layout/user/SideBar.vue +++ b/client/src/layout/user/SideBar.vue @@ -36,7 +36,7 @@ data () { }, created () { - this.$store.dispatch('getFlowzdata') + // this.$store.dispatch('getFlowzdata') }, computed: { stylesPin () { diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index de70ec6..b4801ba 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -1,6 +1,7 @@ - From 71ab28b70044e238ef35216de86b12aca808f850 Mon Sep 17 00:00:00 2001 From: nikitam Date: Mon, 30 Jul 2018 11:05:16 +0530 Subject: [PATCH 121/419] schema-cascader-data-changes --- client/src/pages/schema/New.vue | 79 ++++++++++++++++++++++----------- 1 file changed, 53 insertions(+), 26 deletions(-) diff --git a/client/src/pages/schema/New.vue b/client/src/pages/schema/New.vue index b44e261..edf4b15 100644 --- a/client/src/pages/schema/New.vue +++ b/client/src/pages/schema/New.vue @@ -220,7 +220,7 @@
    -
    +
    @@ -310,7 +310,7 @@
    -
    +
    @@ -429,7 +429,7 @@
    -
    +
    @@ -687,41 +687,68 @@ export default { }, { validator: validateEditTemplateTitle, trigger: 'blur' - }] + }], + databases: { + 'mongo': [], + 'rethink': [], + 'elastic': [], + 'nebb': [] + } } }, - mounted () { + async mounted () { this.$store.state.editTemplate = undefined // console.log('------->>>', this.$store.state.viewTemplate) this.fetch(this.$route.params.id) // this.mjmlUpload = this.$store.state.emailTemplate // console.log(this.mjmlUpload) - api.request('get', '/settings') + await api.request('get', '/databases', null, {$paginate: false}) .then(response => { - var result = response.data + // var result = response.data // console.log('settings',result) + let result = _.filter(response.data, {isenable: true}) - for(var db in result){ - var obj = {} - // if(result[db].dbdefault == 'true'){ - // console.log('aaaaaaa',db) - obj.value = db, - obj.label = db, - obj.children = [] - // console.log(result[db].dbinstance) - result[db].dbinstance.forEach(function(instance, i){ - if(instance.isenable){ - // console.log(instance.cname) - obj.children.push({label: instance.connection_name, value:instance.id}) - } - }) - if(obj.children.length == 0 && obj.label != 'nedb'){ - obj.disabled = true + for (let db in this.databases) { + this.databases[db] = _.filter(result, {selectedDb: db}) + } + + for (let db in this.databases) { + if (this.databases[db].length > 0) { + let childrens = [] + for (let item of this.databases[db]) { + childrens.push({ + label: item.connection_name, + value: item.id + }) } - // } - // console.log(obj) - this.CascaderData.push(obj) + this.CascaderData.push({ + label: db, + value: db, + children: childrens + }) + } } + // for(var db in result){ + // var obj = {} + // // if(result[db].dbdefault == 'true'){ + // // console.log('aaaaaaa',db) + // obj.value = db, + // obj.label = db, + // obj.children = [] + // // console.log(result[db].dbinstance) + // result[db].dbinstance.forEach(function(instance, i){ + // if(instance.isenable){ + // // console.log(instance.cname) + // obj.children.push({label: instance.connection_name, value:instance.id}) + // } + // }) + // if(obj.children.length == 0 && obj.label != 'nedb'){ + // obj.disabled = true + // } + // // } + // // console.log(obj) + // this.CascaderData.push(obj) + // } // this.$Loading.finish() }) .catch(error => { From 31933f3538dde61b1a05b5b8117aa52c116adc60 Mon Sep 17 00:00:00 2001 From: chirag Date: Mon, 30 Jul 2018 14:25:38 +0530 Subject: [PATCH 122/419] update uws --- service/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/package.json b/service/package.json index aeed8c9..4877610 100644 --- a/service/package.json +++ b/service/package.json @@ -66,7 +66,7 @@ "rethinkdb-job-queue": "^3.1.6", "rethinkdbdash": "^2.3.31", "serve-favicon": "^2.4.4", - "uws": "^10.148.1", + "uws": "10.148.1", "winston": "^2.3.1" }, "devDependencies": { From d24d21289c9db120e1aeee7f1be3ffe57baad145 Mon Sep 17 00:00:00 2001 From: Rohit Bajaniya Date: Mon, 30 Jul 2018 21:38:19 +0530 Subject: [PATCH 123/419] Removed pagination --- client/src/api/schemamapping/index.js | 30 ++++++++++++------------ client/src/pages/approval/FormReply.vue | 2 ++ client/src/pages/flow/New.vue | 4 ++-- client/src/pages/schema/mapping/List.vue | 6 ++--- client/src/pages/schema/mapping/New.vue | 8 +++---- 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/client/src/api/schemamapping/index.js b/client/src/api/schemamapping/index.js index 9e6b8e2..9547dea 100644 --- a/client/src/api/schemamapping/index.js +++ b/client/src/api/schemamapping/index.js @@ -1,32 +1,32 @@ import api from '../../api' let model = 'schemamapping' export default { - get: (id) => { - if (id === undefined) { - return api.request('get', '/' + model) + get: (id = null, params = null) => { + if (id === null) { + return api.request('get', '/' + model, null, params) } else { return api.request('get', '/' + model + '/' + id) } }, post: (data) => { return api.request('post', '/' + model, data) - .then(response => { - return ({'status': 'success', 'message': 'Mapping Inserted sucessfully;'}) - }) - .catch(error => { - return ({'status': 'error', 'message': error}) - }) + .then(response => { + return ({ 'status': 'success', 'message': 'Mapping Inserted sucessfully;' }) + }) + .catch(error => { + return ({ 'status': 'error', 'message': error }) + }) }, deleteThis: (id) => { return api.request('delete', '/' + model + '/' + id) }, update: (data, id) => { return api.request('put', '/' + model + '/' + id, data) - .then(response => { - return ({'status': 'success', 'message': 'Schema Mapping updated sucessfully;'}) - }) - .catch(error => { - return ({'status': 'error', 'message': error}) - }) + .then(response => { + return ({ 'status': 'success', 'message': 'Schema Mapping updated sucessfully;' }) + }) + .catch(error => { + return ({ 'status': 'error', 'message': error }) + }) } } diff --git a/client/src/pages/approval/FormReply.vue b/client/src/pages/approval/FormReply.vue index d8762c0..28cf4ef 100644 --- a/client/src/pages/approval/FormReply.vue +++ b/client/src/pages/approval/FormReply.vue @@ -12,6 +12,7 @@
    + {{isTemplate}}
    @@ -156,6 +157,7 @@ export default { }, '*') // handle Listener Event messageEvent = function (event) { + console.log('event', event.data) if (_.isArray(event.data)) { self.handleSubmit(event.data) } diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index cbd1f1f..ca47d66 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -473,8 +473,8 @@ }) }), new Promise((resolve, reject) => { - schemamappingModel.get().then((response) => { - resolve(response.data.data) + schemamappingModel.get(null, {$paginate: false}).then((response) => { + resolve(response.data) }).catch(error => { reject(error) }) diff --git a/client/src/pages/schema/mapping/List.vue b/client/src/pages/schema/mapping/List.vue index 65b3a1c..89391db 100644 --- a/client/src/pages/schema/mapping/List.vue +++ b/client/src/pages/schema/mapping/List.vue @@ -121,11 +121,11 @@ export default { fetch (id) { var self = this // alert(id) - schemamapping.get() + schemamapping.get(null, {$paginate: false}) .then(response => { - // console.log('response', response.data.data) + // console.log('response', response.data) self.data5 = [] - response.data.data.forEach(function (result, i) { + response.data.forEach(function (result, i) { if (result.producer === self.$route.params.id) { Schema.getThis(result.producer) .then(res => { diff --git a/client/src/pages/schema/mapping/New.vue b/client/src/pages/schema/mapping/New.vue index dc4c086..39ebf00 100644 --- a/client/src/pages/schema/mapping/New.vue +++ b/client/src/pages/schema/mapping/New.vue @@ -265,9 +265,9 @@ export default { _.forEach(self._sourceSchema.entity, function (ent) { if (ent.customtype) { var data5 = [] - schemamapping.get() + schemamapping.get(null, {$paginate: false}) .then(response => { - response.data.data.forEach(function (result, i) { + response.data.forEach(function (result, i) { if (result.producer === ent.type) { data5.push({value: result.id, label: result.title}) } @@ -309,9 +309,9 @@ export default { } if (ent.customtype) { var data5 = [] - schemamapping.get() + schemamapping.get(null, {$paginate: false}) .then(response => { - response.data.data.forEach(function (result, i) { + response.data.forEach(function (result, i) { if (result.producer === ent.type) { data5.push({value: result.id, label: result.title}) } From 218726f213b67251beea5c45e475ab59b801e828 Mon Sep 17 00:00:00 2001 From: nikitam Date: Tue, 7 Aug 2018 17:26:44 +0530 Subject: [PATCH 124/419] list-and-uniq-stage-component --- client/package.json | 2 +- client/src/api/flowz/index.js | 2 +- client/src/api/schema/index.js | 2 +- client/src/layout/user/Master.vue | 21 ++-- client/src/layout/user/SideBar.vue | 68 ++++++++++- client/src/pages/user/List.vue | 33 +++++ client/src/pages/user/SchemaList.vue | 172 +++++++++++++++++++++++++++ client/src/pages/user/dashboard.vue | 9 +- client/src/router/index.js | 11 +- client/src/store/actions.js | 13 ++ client/src/store/getters.js | 3 + client/src/store/mutations.js | 3 + client/src/store/state.js | 3 +- 13 files changed, 326 insertions(+), 16 deletions(-) create mode 100644 client/src/pages/user/List.vue create mode 100644 client/src/pages/user/SchemaList.vue diff --git a/client/package.json b/client/package.json index 7f80d10..4cb4776 100644 --- a/client/package.json +++ b/client/package.json @@ -65,7 +65,7 @@ "vue-router": "^2.7.0", "vue-split-panel": "^1.0.4", "vue2-codemirror-lite-js": "^3.5.2", - "vue2-dropzone": "^3.0.3", + "vue2-dropzone": "^3.2.2", "vuedraggable": "^2.16.0", "vuex": "^2.4.0", "vuex-persistedstate": "^2.4.2", diff --git a/client/src/api/flowz/index.js b/client/src/api/flowz/index.js index 48c8806..5338baa 100644 --- a/client/src/api/flowz/index.js +++ b/client/src/api/flowz/index.js @@ -5,7 +5,7 @@ export default { if (id === null) { return api.request('get', '/' + model, null, params) } else { - return api.request('get', '/' + model + '/' + id) + return api.request('get', '/' + model + '/' + id, null, params) } }, getCustom: (string) => { diff --git a/client/src/api/schema/index.js b/client/src/api/schema/index.js index cd6b48d..7f22edd 100644 --- a/client/src/api/schema/index.js +++ b/client/src/api/schema/index.js @@ -2,7 +2,7 @@ import api from '../../api' let model = 'schema' let getAllEntity = async(id) => { let response = await api.request('get', '/' + model + '/' + id) - console.log('response', response) + // console.log('response', response) for (let [index, item] of response.data.entity.entries()) { if (item.customtype) { response.data.entity[index] = await getAllEntity(item.type) diff --git a/client/src/layout/user/Master.vue b/client/src/layout/user/Master.vue index b4d598e..5c7ad71 100644 --- a/client/src/layout/user/Master.vue +++ b/client/src/layout/user/Master.vue @@ -1,10 +1,10 @@ -
    + +
    +
    +

    No Data

    +
    +
    @@ -325,6 +331,9 @@ export default { size: 'large', icon: 'arrow-right-b' }, + domProps: { + title: 'Start Instance' + }, style: { marginRight: '3px', padding: '0px', @@ -343,6 +352,9 @@ export default { size: 'large', icon: 'settings' }, + domProps: { + title: 'Set Permission' + }, style: { color: '#008080', marginRight: '3px', @@ -361,6 +373,9 @@ export default { size: 'large', icon: 'edit' }, + domProps: { + title: 'Edit Flow' + }, style: { color: '#7DE144', marginRight: '3px', @@ -379,6 +394,9 @@ export default { size: 'large', icon: 'android-delete' }, + domProps: { + title: 'Delete Flow' + }, style: { marginRight: '3px', padding: '0px', From 72fdd31a68f66af24e6a4c97f5ac296fddeb4eb2 Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 16 Aug 2018 18:00:29 +0530 Subject: [PATCH 141/419] invite for flow --- client/package.json | 3 +- client/src/config/index.js | 10 +- client/src/pages/flow/List.vue | 384 +++++++++++++++++- .../flow/assigned_invite_table-expand.vue | 214 ++++++++++ client/src/pages/flow/emailTemplate.js | 4 + client/src/pages/flow/own_assign.vue | 58 +++ 6 files changed, 662 insertions(+), 11 deletions(-) create mode 100644 client/src/pages/flow/assigned_invite_table-expand.vue create mode 100644 client/src/pages/flow/emailTemplate.js create mode 100644 client/src/pages/flow/own_assign.vue diff --git a/client/package.json b/client/package.json index e5d0f61..cb3b43f 100644 --- a/client/package.json +++ b/client/package.json @@ -46,6 +46,7 @@ "jQuery": "^1.7.4", "jquery": "^3.3.1", "jquery-ui": "^1.12.1", + "js-cookie": "^2.2.0", "jsdom": "^11.6.2", "json-daex": "0.0.13", "location": "0.0.1", @@ -54,7 +55,7 @@ "navigator": "^1.0.1", "net": "^1.0.2", "papaparse": "^4.3.7", - "psl": "^1.1.22", + "psl": "^1.1.29", "split.js": "^1.3.5", "tls": "0.0.1", "vue": "^2.5.13", diff --git a/client/src/config/index.js b/client/src/config/index.js index b37e30c..d3b7ac5 100644 --- a/client/src/config/index.js +++ b/client/src/config/index.js @@ -29,11 +29,11 @@ if (process.env.NODE_ENV === 'development') { temp = { // serverURI: 'http://localhost:3030', // 'http://172.16.230.86:3030' // socketURI: 'http://localhost:4033', - serverURI: 'https://api.' + process.env.domainkey + '/eng', - socketURI: 'wss://ws.' + process.env.domainkey + ':4033', - workerRegisterURL: 'https://api.' + process.env.domainkey + '/jobqueue1', - approvalRoleURI: 'https://api.' + process.env.domainkey + '/authldap/', - loginURL: 'https://api.' + process.env.domainkey + '/auth/api', + serverURI: 'https://api.' + process.env.domainKey + '/eng', + socketURI: 'wss://ws.' + process.env.domainKey + ':4033', + workerRegisterURL: 'https://api.' + process.env.domainKey + '/jobqueue1', + approvalRoleURI: 'https://api.' + process.env.domainKey + '/authldap/', + loginURL: 'https://api.' + process.env.domainKey + '/auth/api', fixedLayout: false, hideLogoOnMobile: false, facebookSuccessCallbackUrl: 'https://engine.' + process.env.domainKey + '/', diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index ffd77b1..988a26a 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -102,6 +102,60 @@
    + + +
    +
    +
    +
    + +
    +
    + + + + +
    +
    +
    + + + + + +
    +
    + Invite Now +
    +
    +
    + + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    No one is assigned
    +
    +
    + + + \ No newline at end of file diff --git a/client/src/pages/flow/emailTemplate.js b/client/src/pages/flow/emailTemplate.js new file mode 100644 index 0000000..5833076 --- /dev/null +++ b/client/src/pages/flow/emailTemplate.js @@ -0,0 +1,4 @@ +let sendemail = { + sendInviteemail: 'Hello' +} +module.exports = sendemail diff --git a/client/src/pages/flow/own_assign.vue b/client/src/pages/flow/own_assign.vue new file mode 100644 index 0000000..1f3ca79 --- /dev/null +++ b/client/src/pages/flow/own_assign.vue @@ -0,0 +1,58 @@ + + + From 02c7e32c8921c6c57d43cbb7e09669e868d3eb6a Mon Sep 17 00:00:00 2001 From: 80017 Date: Thu, 16 Aug 2018 20:19:11 +0530 Subject: [PATCH 142/419] Update upgrade.sh --- upgrade.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/upgrade.sh b/upgrade.sh index 98f95b5..63fef9b 100644 --- a/upgrade.sh +++ b/upgrade.sh @@ -11,6 +11,9 @@ then RANCHER_SECRETKEY="$RANCHER_SECRETKEY_MASTER"; RANCHER_URL="$RANCHER_URL_MASTER"; DOMAINKEY="$DOMAINKEY_MASTER"; + SMTP_USER="$SMTP_USER_MASTER"; + SMTP_PASS="$SMTP_PASS_MASTER"; + SMTP_HOST="$SMTP_HOST_MASTER"; } elif [ "$TRAVIS_BRANCH" = "develop" ] then @@ -25,6 +28,9 @@ then RANCHER_SECRETKEY="$RANCHER_SECRETKEY_DEVELOP"; RANCHER_URL="$RANCHER_URL_DEVELOP"; DOMAINKEY="$DOMAINKEY_DEVELOP"; + SMTP_USER="$SMTP_USER_DEVELOP"; + SMTP_PASS="$SMTP_PASS_DEVELOP"; + SMTP_HOST="$SMTP_HOST_DEVELOP"; } elif [ "$TRAVIS_BRANCH" = "staging" ] then @@ -39,6 +45,9 @@ then RANCHER_SECRETKEY="$RANCHER_SECRETKEY_STAGING"; RANCHER_URL="$RANCHER_URL_STAGING"; DOMAINKEY="$DOMAINKEY_STAGING"; + SMTP_USER="$SMTP_USER_STAGING"; + SMTP_PASS="$SMTP_PASS_STAGING"; + SMTP_HOST="$SMTP_HOST_STAGING"; } else { @@ -52,6 +61,9 @@ else RANCHER_SECRETKEY="$RANCHER_SECRETKEY_QA"; RANCHER_URL="$RANCHER_URL_QA"; DOMAINKEY="$DOMAINKEY_QA"; + SMTP_USER="$SMTP_USER_QA"; + SMTP_PASS="$SMTP_PASS_QA"; + SMTP_HOST="$SMTP_HOST_QA"; } fi @@ -85,5 +97,5 @@ curl -u ""$RANCHER_ACCESSKEY":"$RANCHER_SECRETKEY"" \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -d '{ - "inServiceStrategy":{"launchConfig": {"imageUuid":"docker:'$USERNAME'/flowz_backend_flowz:'$TAG'","kind": "container","labels":{"io.rancher.container.pull_image": "always","io.rancher.scheduler.affinity:host_label": "machine=cluster-flowz"},"ports": ["3033:3033/tcp","4033:4033/tcp"],"environment": {"rauth":"'"$RAUTH"'","cert":"'"$CERT_FLOWZ_BACKEND_FLOWZ"'","RDB_HOST":"'"$RDB_HOST"'","RDB_PORT":"'"$RDB_PORT"'","domainKey":"'"$DOMAINKEY"'"},"healthCheck": {"type": "instanceHealthCheck","healthyThreshold": 2,"initializingTimeout": 60000,"interval": 2000,"name": null,"port": 3033,"recreateOnQuorumStrategyConfig": {"type": "recreateOnQuorumStrategyConfig","quorum": 1},"reinitializingTimeout": 60000,"responseTimeout": 60000,"strategy": "recreateOnQuorum","unhealthyThreshold": 3},"networkMode": "managed"}},"toServiceStrategy":null}' \ + "inServiceStrategy":{"launchConfig": {"imageUuid":"docker:'$USERNAME'/flowz_backend_flowz:'$TAG'","kind": "container","labels":{"io.rancher.container.pull_image": "always","io.rancher.scheduler.affinity:host_label": "machine=cluster-flowz"},"ports": ["3033:3033/tcp","4033:4033/tcp"],"environment": {"rauth":"'"$RAUTH"'","cert":"'"$CERT_FLOWZ_BACKEND_FLOWZ"'","RDB_HOST":"'"$RDB_HOST"'","RDB_PORT":"'"$RDB_PORT"'","domainKey":"'"$DOMAINKEY"'","SMTP_USER":"'"$SMTP_USER"'","SMTP_PASS":"'"$SMTP_PASS"'","SMTP_HOST":"'"$SMTP_HOST"'"},"healthCheck": {"type": "instanceHealthCheck","healthyThreshold": 2,"initializingTimeout": 60000,"interval": 2000,"name": null,"port": 3033,"recreateOnQuorumStrategyConfig": {"type": "recreateOnQuorumStrategyConfig","quorum": 1},"reinitializingTimeout": 60000,"responseTimeout": 60000,"strategy": "recreateOnQuorum","unhealthyThreshold": 3},"networkMode": "managed"}},"toServiceStrategy":null}' \ $RANCHER_URL/v2-beta/projects/$ENV_ID/services/$SERVICE_ID_BACKEND?action=upgrade From 018118d9c0c1bf3cdcf8fefd31dd13fc478b832b Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Fri, 17 Aug 2018 18:04:19 +0530 Subject: [PATCH 143/419] Done with analytics view. Sidebar icons fixed --- client/src/layout/SideBar.vue | 36 +++-- client/src/pages/flow/List.vue | 39 +++-- client/src/pages/flow/analytics.vue | 222 ++++++++++++++++++++++++++++ client/src/router/index.js | 10 ++ 4 files changed, 288 insertions(+), 19 deletions(-) create mode 100644 client/src/pages/flow/analytics.vue diff --git a/client/src/layout/SideBar.vue b/client/src/layout/SideBar.vue index dd34e7d..93189bb 100644 --- a/client/src/layout/SideBar.vue +++ b/client/src/layout/SideBar.vue @@ -1,6 +1,6 @@ \ No newline at end of file + diff --git a/client/src/config/index.js b/client/src/config/index.js index ebaada4..90bf55f 100644 --- a/client/src/config/index.js +++ b/client/src/config/index.js @@ -3,10 +3,10 @@ console.log('process.env.NODE_ENV', process.env.NODE_ENV) console.log('process.env.domain', process.env.domainKey) // console.log('process.env', process.env) var temp = { - serverURI: 'http://localhost:3030', // 'http://172.16.230.86:3030' - socketURI: 'http://localhost:4033', - // serverURI: 'https://api.' + process.env.domainKey + '/eng', - // socketURI: 'wss://ws.' + process.env.domainKey + ':4033', + // serverURI: 'http://localhost:3030', // 'http://172.16.230.86:3030' + // socketURI: 'http://localhost:4033', + serverURI: 'https://api.' + process.env.domainKey + '/eng', + socketURI: 'wss://ws.' + process.env.domainKey + ':4033', workerRegisterURL: 'http://localhost:4001', approvalRoleURI: 'http://api.' + process.env.domainKey + '/authldap/', fixedLayout: false, diff --git a/service/src/middleware/index.js b/service/src/middleware/index.js index 56c1d91..af1dd3d 100644 --- a/service/src/middleware/index.js +++ b/service/src/middleware/index.js @@ -14,7 +14,7 @@ module.exports = function () { let registerAppModule = { 'flowz': ['create','update', 'patch'], 'finstance': ['create','update'], - 'flowzdata': ['create','update', 'patch'], + 'flowzdata': ['update', 'patch'], 'schema': ['create','update', 'patch', 'find', 'get', 'remove'] }; diff --git a/service/src/services/email-receive/email-receive.class.js b/service/src/services/email-receive/email-receive.class.js index 77fb75a..99c6931 100644 --- a/service/src/services/email-receive/email-receive.class.js +++ b/service/src/services/email-receive/email-receive.class.js @@ -30,7 +30,7 @@ class Service { let lastIndex = fInstance.stageReference.length - 1 // get Flowz data let flowzData = await this.app.service('flowzdata').get(fInstance.stageReference[lastIndex].stageRecordId); - + let flowzDataRecord = await this.app.service('flowzdata').create({ data: flowzData.data, fid: fInstance.fid, @@ -47,7 +47,7 @@ class Service { if (Array.isArray(data)) { return Promise.all(data.map(current => this.create(current, params))); } - + return {msg:"your response saved"}; } From cee6dae3e56193f36f8e17fed035d697a483c45f Mon Sep 17 00:00:00 2001 From: chirag Date: Thu, 23 Aug 2018 00:06:19 +0530 Subject: [PATCH 172/419] email issue resolved --- .../services/email-receive/email-receive.class.js | 5 +++-- service/src/services/flowzdata/flowzdata.hooks.js | 13 +++++-------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/service/src/services/email-receive/email-receive.class.js b/service/src/services/email-receive/email-receive.class.js index 99c6931..091ae83 100644 --- a/service/src/services/email-receive/email-receive.class.js +++ b/service/src/services/email-receive/email-receive.class.js @@ -30,12 +30,13 @@ class Service { let lastIndex = fInstance.stageReference.length - 1 // get Flowz data let flowzData = await this.app.service('flowzdata').get(fInstance.stageReference[lastIndex].stageRecordId); - + let flowzDataRecord = await this.app.service('flowzdata').create({ data: flowzData.data, fid: fInstance.fid, iid: data.finstanceId, - state: stageId + state: fInstance.currentStatus, + nextTarget: stageId }).catch((err)=> { throw new Error(err.message) }); diff --git a/service/src/services/flowzdata/flowzdata.hooks.js b/service/src/services/flowzdata/flowzdata.hooks.js index 92b3aff..f037a15 100644 --- a/service/src/services/flowzdata/flowzdata.hooks.js +++ b/service/src/services/flowzdata/flowzdata.hooks.js @@ -59,19 +59,16 @@ function afterCreate (hook) { return hook.app.service('finstance').get(hook.data.iid).then(finstRes => { let mdata = { currentStatus: nextTargetObj.id, - stageReference: finstRes.stageReference, - createdAt: new Date().toISOString(), - userId: hook.params.userPackageDetails + stageReference: finstRes.stageReference }; if (hook.params.hasOwnProperty('nextTarget')) { mdata.currentStatus = hook.params.nextTarget; } - console.log('mdata', mdata); mdata.stageReference.push({ StageName: finstRes.currentStatus, stageRecordId: hook.result.id, createdAt: new Date().toISOString(), - userId: hook.params.userPackageDetails + userId: (hook.params.userPackageDetails !== undefined ? hook.params.userPackageDetails.id:null) }); if (nextTargetObj.type === 'endevent') { mdata.mainStatus = 'completed'; @@ -80,18 +77,18 @@ function afterCreate (hook) { return hook; }).catch(err => { throw new errors.BadRequest('Error', { - errors: { message: err.toString() } + errors: { message: err.message } }); }); }).catch(err => { throw new errors.BadRequest('Error', { - errors: { message: err.toString() } + errors: { message: err.message } }); }); return hook; }).catch(err => { throw new errors.BadRequest('Error', { - errors: { message: err.toString() } + errors: { message: err.message } }); }); } From f7a35fe27b20f39b0dd829cc547005ebc86bd19a Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 23 Aug 2018 09:07:47 +0530 Subject: [PATCH 173/419] socket-resolved --- client/src/config/index.js | 8 +- client/src/main.js | 23 +- client/src/masterLayout/SideBar.vue | 20 +- service/package-lock.json | 1940 +++++++++-------- service/package.json | 4 + service/src/app.js | 27 +- .../email-receive/email-receive.service.js | 42 +- 7 files changed, 1115 insertions(+), 949 deletions(-) diff --git a/client/src/config/index.js b/client/src/config/index.js index 90bf55f..ebaada4 100644 --- a/client/src/config/index.js +++ b/client/src/config/index.js @@ -3,10 +3,10 @@ console.log('process.env.NODE_ENV', process.env.NODE_ENV) console.log('process.env.domain', process.env.domainKey) // console.log('process.env', process.env) var temp = { - // serverURI: 'http://localhost:3030', // 'http://172.16.230.86:3030' - // socketURI: 'http://localhost:4033', - serverURI: 'https://api.' + process.env.domainKey + '/eng', - socketURI: 'wss://ws.' + process.env.domainKey + ':4033', + serverURI: 'http://localhost:3030', // 'http://172.16.230.86:3030' + socketURI: 'http://localhost:4033', + // serverURI: 'https://api.' + process.env.domainKey + '/eng', + // socketURI: 'wss://ws.' + process.env.domainKey + ':4033', workerRegisterURL: 'http://localhost:4001', approvalRoleURI: 'http://api.' + process.env.domainKey + '/authldap/', fixedLayout: false, diff --git a/client/src/main.js b/client/src/main.js index d25a501..23b627b 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -22,6 +22,12 @@ const hooks = require('feathers-hooks') const socketio = require('feathers-socketio/client') const io = require('socket.io-client') let socket = io(config.socketURI) +socket.on('connect', function () { + console.log('Socket Connected') +}) +socket.on('disconnect', function () { + console.log('Socket Disconnect') +}) // if (process.env.NODE_ENV !== 'development') { // socket = io(config.serverURI, {path: '/eng/socket.io'}) // } else { @@ -33,7 +39,7 @@ const feathers = Feathers() // .configure(authentication({storage: window.localStorage})) // Include it as a CommonJS module const vueFeathers = require('vue-feathers') - // And plug it in + // And plug it in] Vue.use(vueFeathers, feathers) import ElementUI from 'element-ui' @@ -96,10 +102,21 @@ var router = new VueRouter({ } }) +// iView.LoadingBar.config({ +// color: '#5cb85c', +// height: 5 +// }) +iView.LoadingBar.config({ + color: '#5cb85c', + failedColor: '#f0ad4e', + height: 5 +}) + import axios from 'axios' import psl from 'psl' // Some middleware to help us ensure the user is authenticated. router.beforeEach((to, from, next) => { + iView.LoadingBar.start() iView.LoadingBar.config({ color: '#0e406d' }) // window.console.log('Transition', transition) // router.app.$store.state.token @@ -312,6 +329,10 @@ router.beforeEach((to, from, next) => { } }) +router.afterEach(route => { + iView.LoadingBar.finish() +}) + sync(store, router) // console.log('process.env.accesskey', process.env.accesskey) new Vue({ diff --git a/client/src/masterLayout/SideBar.vue b/client/src/masterLayout/SideBar.vue index 86828ee..cbca23f 100644 --- a/client/src/masterLayout/SideBar.vue +++ b/client/src/masterLayout/SideBar.vue @@ -45,7 +45,7 @@ - + @@ -58,12 +58,12 @@ :key="inx" > @@ -98,9 +98,12 @@ export default { methods: { createInstance (item) { // console.log('item', item) + this.$Loading.start() finstanceModal.post({fid: item.id}).then(res => { this.$Notice.success({title: 'Instance Generated'}) + this.$Loading.finish() }).catch(e => { + this.$Loading.error() console.log('error', e) this.$Notice.error({title: 'Error', desc: 'Instace Not Generated'}) }) @@ -119,10 +122,10 @@ export default { this.$router.push('/schemaview/' + node[0] + '/' + node[1]) } }, - handleSubmenu (item, subitem) { - // console.log(item, subitem) - this.$router.push('/schemaview/' + item.id + '/' + subitem.id) - }, + // handleSubmenu (item, subitem) { + // // console.log(item, subitem) + // this.$router.push('/schemaview/' + item.id + '/' + subitem.id) + // }, async getModuleRoles (moduleId) { if (this.roles[moduleId]) { return this.roles[moduleId] @@ -287,7 +290,7 @@ export default { fid: sitem.id }).then(res => { // console.log('res count', res.data) - // sitem.count = res.data.length + sitem.count = 0 for (let pitem of sitem.json.processList) { pitem.count = _.filter(res.data, {currentStatus: pitem.id}).length sitem.count += pitem.count @@ -298,6 +301,7 @@ export default { } else { let once = false let mdata = [] + sitem.count = 0 for (let pitem of sitem.json.processList) { if (!once) { finstanceModal.get(null, { diff --git a/service/package-lock.json b/service/package-lock.json index e353a69..45d652b 100644 --- a/service/package-lock.json +++ b/service/package-lock.json @@ -19,8 +19,8 @@ "resolved": "https://registry.npmjs.org/@feathersjs/configuration/-/configuration-2.0.0.tgz", "integrity": "sha512-ZaByFEu2FC2IrTf1QL4AbFhKlR657GKWkOEUOgNs2Te1MeAA+wskL4uXvmRuELQvdSjk/FoNdJxI8MXFIo5Umw==", "requires": { - "config": "^2.0.0", - "debug": "^3.1.0" + "config": "2.0.1", + "debug": "3.1.0" }, "dependencies": { "config": { @@ -28,7 +28,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-2.0.1.tgz", "integrity": "sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==", "requires": { - "json5": "^1.0.1" + "json5": "1.0.1" } }, "json5": { @@ -36,16 +36,15 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "^1.2.0" + "minimist": "1.2.0" } } } }, "@feathersjs/errors": { "version": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", - "from": "github:feathersjs/errors", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "@feathersjs/express": { @@ -53,18 +52,17 @@ "resolved": "https://registry.npmjs.org/@feathersjs/express/-/express-1.2.3.tgz", "integrity": "sha512-DXKeQoCG0iro5qEASyun/zPsx7gilWXCmKrFAcupk0yXruoOw1CHdtuyAo8nx+1Emw5lUi8i48Xj0MfuGeUi3g==", "requires": { - "@feathersjs/commons": "^1.4.0", - "@feathersjs/errors": "^3.0.0", - "debug": "^3.1.0", - "express": "^4.16.2", - "uberproto": "^2.0.0" + "@feathersjs/commons": "1.4.4", + "@feathersjs/errors": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", + "debug": "3.1.0", + "express": "4.16.3", + "uberproto": "2.0.4" }, "dependencies": { "@feathersjs/errors": { - "version": "3.3.0", - "resolved": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", + "version": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "uberproto": { @@ -79,10 +77,10 @@ "resolved": "https://registry.npmjs.org/@feathersjs/feathers/-/feathers-3.1.7.tgz", "integrity": "sha512-4h8ymAw/yK0jnF9xFgeWi2zhj51VHoE94K3y65TLORN7KVUpHMlgaOtSLHNKEDCcFeordOpBGw/Z0Fq58i0+WA==", "requires": { - "@feathersjs/commons": "^1.4.1", - "debug": "^3.1.0", - "events": "^3.0.0", - "uberproto": "^2.0.2" + "@feathersjs/commons": "1.4.4", + "debug": "3.1.0", + "events": "3.0.0", + "uberproto": "2.0.4" }, "dependencies": { "uberproto": { @@ -97,10 +95,10 @@ "resolved": "https://registry.npmjs.org/@feathersjs/socketio/-/socketio-3.2.2.tgz", "integrity": "sha512-3m8pWaCNEQxE2DoAboeuRra1jCy7ARWHXIKljeXjIj7lL8iVNgOBV7qPlIgwWbmK65GpaPutZv8LtIFwNZCwZA==", "requires": { - "@feathersjs/transport-commons": "^4.0.0", - "debug": "^3.1.0", - "socket.io": "^2.1.0", - "uberproto": "^2.0.1" + "@feathersjs/transport-commons": "4.1.1", + "debug": "3.1.0", + "socket.io": "2.1.1", + "uberproto": "2.0.4" }, "dependencies": { "uberproto": { @@ -115,18 +113,17 @@ "resolved": "https://registry.npmjs.org/@feathersjs/transport-commons/-/transport-commons-4.1.1.tgz", "integrity": "sha512-9Zf3OuKAmG6dSPgdgmGRAjvqzD7cGj+KsDJUVbV+xcnP5yCSX2Y2BOIZvC9NvFugyke/dbRcnAE/SPSHOYCWXw==", "requires": { - "@feathersjs/commons": "^1.4.0", - "@feathersjs/errors": "^3.0.0", - "debug": "^3.1.0", - "lodash": "^4.17.10", - "radix-router": "^3.0.1" + "@feathersjs/commons": "1.4.4", + "@feathersjs/errors": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", + "debug": "3.1.0", + "lodash": "4.17.10", + "radix-router": "3.0.1" }, "dependencies": { "@feathersjs/errors": { - "version": "3.3.0", - "resolved": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", + "version": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } } } @@ -141,12 +138,25 @@ "resolved": "https://registry.npmjs.org/@types/inline-style-prefixer/-/inline-style-prefixer-3.0.1.tgz", "integrity": "sha512-+kbOcYW1/noncDwRryRoB9tH87IYcMfdBGvw98iocK39LtTA2DFL7agmk4UHW/GxjzVfwrxfjlLrqrgA7MCtmg==" }, + "@types/node": { + "version": "10.7.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.7.1.tgz", + "integrity": "sha512-EGoI4ylB/lPOaqXqtzAyL8HcgOuCtH2hkEaLmkueOYufsTFWBn4VCvlCDC2HW8Q+9iF+QVC3sxjDKQYjHQeZ9w==" + }, "@types/react": { "version": "16.4.1", "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.1.tgz", "integrity": "sha512-uZP8Fd4f7rwHKztnOhFJYEJsKXO7opmcyKk5P9vRC8UJAx3AiWaGFiLxDqPJqzO3n3IhF/v6rdscxadarEXnag==", "requires": { - "csstype": "^2.2.0" + "csstype": "2.5.5" + } + }, + "@types/socket.io": { + "version": "1.4.37", + "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-1.4.37.tgz", + "integrity": "sha512-GhDfR8U0KO+0khxfxgs/XodCw32vKRdt391h2G7JfZj3fegludA0cltsNaKoHncHjYq8xnNUhYoPpG9ytViC1g==", + "requires": { + "@types/node": "10.7.1" } }, "accepts": { @@ -154,7 +164,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "~2.1.18", + "mime-types": "2.1.18", "negotiator": "0.6.1" } }, @@ -170,7 +180,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "^3.0.4" + "acorn": "3.3.0" }, "dependencies": { "acorn": { @@ -201,10 +211,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" + "co": "4.6.0", + "fast-deep-equal": "1.1.0", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.3.1" } }, "ajv-keywords": { @@ -250,8 +260,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "requires": { - "micromatch": "^2.1.5", - "normalize-path": "^2.0.0" + "micromatch": "2.3.11", + "normalize-path": "2.1.1" } }, "argparse": { @@ -259,7 +269,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "~1.0.2" + "sprintf-js": "1.0.3" } }, "arr-diff": { @@ -267,7 +277,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { - "arr-flatten": "^1.0.1" + "arr-flatten": "1.1.0" } }, "arr-flatten": { @@ -291,7 +301,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "^1.0.1" + "array-uniq": "1.0.3" } }, "array-uniq": { @@ -325,7 +335,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "~2.1.0" + "safer-buffer": "2.1.2" } }, "assert-plus": { @@ -338,7 +348,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "^4.17.10" + "lodash": "4.17.10" } }, "async-each": { @@ -356,9 +366,9 @@ "resolved": "https://registry.npmjs.org/asyncawait/-/asyncawait-1.0.7.tgz", "integrity": "sha512-jWRlXdzpj90/bbgA6cy4BbTHFEBk+RQpFQHiCuy9/rp0OB07pBYWVRWoT4Garf0fZRC/nzA6OhN5xC0wpoxKjw==", "requires": { - "bluebird": "^3.1.1", - "fibers": "^2.0.2", - "lodash": "^4.17.10" + "bluebird": "3.5.1", + "fibers": "2.0.2", + "lodash": "4.17.10" } }, "asynckit": { @@ -386,8 +396,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz", "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=", "requires": { - "follow-redirects": "^1.2.3", - "is-buffer": "^1.1.5" + "follow-redirects": "1.5.0", + "is-buffer": "1.1.6" } }, "babel-code-frame": { @@ -396,9 +406,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "^1.1.3", - "esutils": "^2.0.2", - "js-tokens": "^3.0.2" + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" } }, "babel-polyfill": { @@ -406,9 +416,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" + "babel-runtime": "6.26.0", + "core-js": "2.5.7", + "regenerator-runtime": "0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -423,8 +433,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" + "core-js": "2.5.7", + "regenerator-runtime": "0.11.1" } }, "backo2": { @@ -464,7 +474,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "^0.14.3" + "tweetnacl": "0.14.5" } }, "better-assert": { @@ -490,7 +500,7 @@ "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=", "requires": { - "underscore": "~1.4.4" + "underscore": "1.4.4" }, "dependencies": { "underscore": { @@ -516,15 +526,15 @@ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "~1.6.3", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.23", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "~1.6.16" + "type-is": "1.6.16" }, "dependencies": { "debug": { @@ -543,12 +553,12 @@ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "optional": true, "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "multicast-dns": "6.2.3", + "multicast-dns-service-types": "1.1.0" }, "dependencies": { "array-flatten": { @@ -577,7 +587,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "^1.0.0", + "balanced-match": "1.0.0", "concat-map": "0.0.1" } }, @@ -586,9 +596,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "expand-range": "^1.8.1", - "preserve": "^0.2.0", - "repeat-element": "^1.1.2" + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" } }, "browser-stdout": { @@ -612,8 +622,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "1.3.0", + "ieee754": "1.1.12" } }, "buffer-from": { @@ -649,7 +659,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "^0.2.0" + "callsites": "0.2.0" } }, "callsite": { @@ -675,8 +685,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "optional": true, "requires": { - "camelcase": "^2.0.0", - "map-obj": "^1.0.0" + "camelcase": "2.1.1", + "map-obj": "1.0.1" } }, "camelize": { @@ -694,11 +704,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" } }, "chardet": { @@ -712,14 +722,14 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "requires": { - "anymatch": "^1.3.0", - "async-each": "^1.0.0", - "glob-parent": "^2.0.0", - "inherits": "^2.0.1", - "is-binary-path": "^1.0.0", - "is-glob": "^2.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.0.0" + "anymatch": "1.3.2", + "async-each": "1.0.1", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" } }, "circular-json": { @@ -739,7 +749,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "^2.0.0" + "restore-cursor": "2.0.0" } }, "cli-width": { @@ -754,9 +764,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "optional": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" } }, "co": { @@ -794,7 +804,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "~1.0.0" + "delayed-stream": "1.0.0" } }, "commander": { @@ -803,7 +813,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": ">= 1.0.0" + "graceful-readlink": "1.0.1" } }, "commonmark": { @@ -811,10 +821,10 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", "integrity": "sha1-Buq41SM4uDn6Gi11rwCF7tGxvq4=", "requires": { - "entities": "~ 1.1.1", - "mdurl": "~ 1.0.1", - "minimist": "~ 1.2.0", - "string.prototype.repeat": "^0.2.0" + "entities": "1.1.1", + "mdurl": "1.0.1", + "minimist": "1.2.0", + "string.prototype.repeat": "0.2.0" } }, "commonmark-react-renderer": { @@ -822,10 +832,10 @@ "resolved": "https://registry.npmjs.org/commonmark-react-renderer/-/commonmark-react-renderer-4.3.4.tgz", "integrity": "sha512-+/Rzo3sI37NR8LaVdkUiqBH3+CEW75hc86shwY4E9eEERg78VCy4rSkaP/p7OG5bTvosUMkvhn5d1ZJ5iyt/ag==", "requires": { - "lodash.assign": "^4.2.0", - "lodash.isplainobject": "^4.0.6", - "pascalcase": "^0.1.1", - "xss-filters": "^1.2.6" + "lodash.assign": "4.2.0", + "lodash.isplainobject": "4.0.6", + "pascalcase": "0.1.1", + "xss-filters": "1.2.7" } }, "component-bind": { @@ -838,7 +848,7 @@ "resolved": "https://registry.npmjs.org/component-clone/-/component-clone-0.2.2.tgz", "integrity": "sha1-x/WXmCKID62M+wliuikYbQYe4E8=", "requires": { - "component-type": "*" + "component-type": "1.1.0" } }, "component-emitter": { @@ -884,7 +894,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "requires": { - "mime-db": ">= 1.34.0 < 2" + "mime-db": "1.36.0" }, "dependencies": { "mime-db": { @@ -899,13 +909,13 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "bytes": "3.0.0", - "compressible": "~2.0.14", + "compressible": "2.0.14", "debug": "2.6.9", - "on-headers": "~1.0.1", + "on-headers": "1.0.1", "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "vary": "1.1.2" }, "dependencies": { "debug": { @@ -929,10 +939,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" + "buffer-from": "1.1.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" } }, "config": { @@ -940,7 +950,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-2.0.1.tgz", "integrity": "sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==", "requires": { - "json5": "^1.0.1" + "json5": "1.0.1" } }, "connect-history-api-fallback": { @@ -989,8 +999,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", "requires": { - "object-assign": "^4", - "vary": "^1" + "object-assign": "4.1.1", + "vary": "1.1.2" } }, "create-react-class": { @@ -998,9 +1008,9 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "requires": { - "fbjs": "^0.8.9", - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "fbjs": "0.8.17", + "loose-envify": "1.3.1", + "object-assign": "4.1.1" } }, "cross-fetch": { @@ -1025,9 +1035,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" + "lru-cache": "4.1.3", + "shebang-command": "1.2.0", + "which": "1.3.1" } }, "crypto": { @@ -1045,8 +1055,8 @@ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", "requires": { - "hyphenate-style-name": "^1.0.2", - "isobject": "^3.0.1" + "hyphenate-style-name": "1.0.2", + "isobject": "3.0.1" }, "dependencies": { "isobject": { @@ -1072,7 +1082,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "optional": true, "requires": { - "array-find-index": "^1.0.1" + "array-find-index": "1.0.2" } }, "cycle": { @@ -1085,7 +1095,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "^0.10.9" + "es5-ext": "0.10.45" } }, "dashdash": { @@ -1093,7 +1103,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "dasherize": { @@ -1140,8 +1150,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "^2.0.5", - "object-keys": "^1.0.8" + "foreach": "2.0.5", + "object-keys": "1.0.12" } }, "del": { @@ -1150,12 +1160,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "optional": true, "requires": { - "globby": "^6.1.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "p-map": "^1.1.1", - "pify": "^3.0.0", - "rimraf": "^2.2.8" + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "p-map": "1.2.0", + "pify": "3.0.0", + "rimraf": "2.6.2" } }, "delayed-stream": { @@ -1197,8 +1207,8 @@ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "optional": true, "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" + "ip": "1.1.5", + "safe-buffer": "5.1.2" } }, "dns-prefetch-control": { @@ -1212,7 +1222,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "optional": true, "requires": { - "buffer-indexof": "^1.0.0" + "buffer-indexof": "1.1.1" } }, "doctrine": { @@ -1221,7 +1231,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "^2.0.2" + "esutils": "2.0.2" } }, "dompurify": { @@ -1245,8 +1255,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "jsbn": "0.1.1", + "safer-buffer": "2.1.2" } }, "ee-first": { @@ -1259,12 +1269,12 @@ "resolved": "https://registry.npmjs.org/elasticsearch/-/elasticsearch-13.3.1.tgz", "integrity": "sha1-xTCuqa+xfqkcPQpW8fERukm8kjk=", "requires": { - "agentkeepalive": "^2.2.0", - "chalk": "^1.0.0", + "agentkeepalive": "2.2.0", + "chalk": "1.1.3", "lodash": "2.4.2", - "lodash.get": "^4.4.2", - "lodash.isempty": "^4.4.0", - "lodash.trimend": "^4.5.1" + "lodash.get": "4.4.2", + "lodash.isempty": "4.4.0", + "lodash.trimend": "4.5.1" }, "dependencies": { "lodash": { @@ -1279,8 +1289,8 @@ "resolved": "https://registry.npmjs.org/emailjs/-/emailjs-2.2.0.tgz", "integrity": "sha1-ulsj5KSwpFEPZS6HOxVOlAe2ygM=", "requires": { - "addressparser": "^0.3.2", - "emailjs-mime-codec": "^2.0.7" + "addressparser": "0.3.2", + "emailjs-mime-codec": "2.0.7" } }, "emailjs-base64": { @@ -1293,9 +1303,9 @@ "resolved": "https://registry.npmjs.org/emailjs-mime-codec/-/emailjs-mime-codec-2.0.7.tgz", "integrity": "sha512-Jeg3L2/39Bpi8bFfnVEPm1iGPSyYCrPmMkjhimmy9ao/PFtcXJaGcANQWvWciH+jUcOn5Pto+MMCYOI1h7pNxA==", "requires": { - "emailjs-base64": "^1.1.4", - "ramda": "^0.25.0", - "text-encoding": "^0.6.4" + "emailjs-base64": "1.1.4", + "ramda": "0.25.0", + "text-encoding": "0.6.4" } }, "emojis-list": { @@ -1318,7 +1328,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "~0.4.13" + "iconv-lite": "0.4.23" } }, "engine.io": { @@ -1326,12 +1336,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" + "debug": "3.1.0", + "engine.io-parser": "2.1.2", + "ws": "3.3.3" } }, "engine.io-client": { @@ -1341,14 +1351,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", + "debug": "3.1.0", + "engine.io-parser": "2.1.2", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", + "ws": "3.3.3", + "xmlhttprequest-ssl": "1.5.5", "yeast": "0.1.2" } }, @@ -1358,10 +1368,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", + "arraybuffer.slice": "0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "~1.0.2" + "has-binary2": "1.0.3" } }, "entities": { @@ -1375,7 +1385,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "optional": true, "requires": { - "prr": "~1.0.1" + "prr": "1.0.1" } }, "error-ex": { @@ -1383,7 +1393,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "^0.2.1" + "is-arrayish": "0.2.1" } }, "es-abstract": { @@ -1391,11 +1401,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "^1.1.1", - "function-bind": "^1.1.1", - "has": "^1.0.1", - "is-callable": "^1.1.3", - "is-regex": "^1.0.4" + "es-to-primitive": "1.1.1", + "function-bind": "1.1.1", + "has": "1.0.3", + "is-callable": "1.1.3", + "is-regex": "1.0.4" } }, "es-to-primitive": { @@ -1403,9 +1413,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "^1.1.1", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" } }, "es5-ext": { @@ -1413,9 +1423,9 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.1", - "next-tick": "1" + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1", + "next-tick": "1.0.0" } }, "es6-iterator": { @@ -1423,9 +1433,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-symbol": "3.1.1" } }, "es6-promise": { @@ -1438,8 +1448,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.45" } }, "es6-weak-map": { @@ -1447,10 +1457,10 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "requires": { - "d": "1", - "es5-ext": "^0.10.14", - "es6-iterator": "^2.0.1", - "es6-symbol": "^3.1.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-iterator": "2.0.3", + "es6-symbol": "3.1.1" } }, "escape-html": { @@ -1469,44 +1479,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "^5.3.0", - "babel-code-frame": "^6.22.0", - "chalk": "^2.1.0", - "concat-stream": "^1.6.0", - "cross-spawn": "^5.1.0", - "debug": "^3.1.0", - "doctrine": "^2.1.0", - "eslint-scope": "^3.7.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^3.5.4", - "esquery": "^1.0.0", - "esutils": "^2.0.2", - "file-entry-cache": "^2.0.0", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.0.1", - "ignore": "^3.3.3", - "imurmurhash": "^0.1.4", - "inquirer": "^3.0.6", - "is-resolvable": "^1.0.0", - "js-yaml": "^3.9.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.4", - "minimatch": "^3.0.2", - "mkdirp": "^0.5.1", - "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "pluralize": "^7.0.0", - "progress": "^2.0.0", - "regexpp": "^1.0.1", - "require-uncached": "^1.0.3", - "semver": "^5.3.0", - "strip-ansi": "^4.0.0", - "strip-json-comments": "~2.0.1", + "ajv": "5.5.2", + "babel-code-frame": "6.26.0", + "chalk": "2.4.1", + "concat-stream": "1.6.2", + "cross-spawn": "5.1.0", + "debug": "3.1.0", + "doctrine": "2.1.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "1.0.0", + "espree": "3.5.4", + "esquery": "1.0.1", + "esutils": "2.0.2", + "file-entry-cache": "2.0.0", + "functional-red-black-tree": "1.0.1", + "glob": "7.1.2", + "globals": "11.7.0", + "ignore": "3.3.8", + "imurmurhash": "0.1.4", + "inquirer": "3.3.0", + "is-resolvable": "1.1.0", + "js-yaml": "3.12.0", + "json-stable-stringify-without-jsonify": "1.0.1", + "levn": "0.3.0", + "lodash": "4.17.10", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "natural-compare": "1.4.0", + "optionator": "0.8.2", + "path-is-inside": "1.0.2", + "pluralize": "7.0.0", + "progress": "2.0.0", + "regexpp": "1.1.0", + "require-uncached": "1.0.3", + "semver": "5.5.0", + "strip-ansi": "4.0.0", + "strip-json-comments": "2.0.1", "table": "4.0.2", - "text-table": "~0.2.0" + "text-table": "0.2.0" }, "dependencies": { "ansi-regex": { @@ -1521,7 +1531,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "chalk": { @@ -1530,9 +1540,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "has-flag": { @@ -1547,7 +1557,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "supports-color": { @@ -1556,7 +1566,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -1567,8 +1577,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "4.2.1", + "estraverse": "4.2.0" } }, "eslint-visitor-keys": { @@ -1583,8 +1593,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "^5.5.0", - "acorn-jsx": "^3.0.0" + "acorn": "5.7.1", + "acorn-jsx": "3.0.1" } }, "esprima": { @@ -1598,7 +1608,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "^4.0.0" + "estraverse": "4.2.0" } }, "esrecurse": { @@ -1607,7 +1617,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "^4.1.0" + "estraverse": "4.2.0" } }, "estraverse": { @@ -1632,8 +1642,8 @@ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "d": "1.0.0", + "es5-ext": "0.10.45" } }, "eventemitter3": { @@ -1653,7 +1663,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "optional": true, "requires": { - "original": ">=0.0.5" + "original": "1.0.1" } }, "expand-brackets": { @@ -1661,7 +1671,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { - "is-posix-bracket": "^0.1.0" + "is-posix-bracket": "0.1.1" } }, "expand-range": { @@ -1669,7 +1679,7 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { - "fill-range": "^2.1.0" + "fill-range": "2.2.4" } }, "expect": { @@ -1677,13 +1687,13 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-1.20.2.tgz", "integrity": "sha1-1Fj+TFYAQDa64yMkFqP2Nh8E+WU=", "requires": { - "define-properties": "~1.1.2", - "has": "^1.0.1", - "is-equal": "^1.5.1", - "is-regex": "^1.0.3", - "object-inspect": "^1.1.0", - "object-keys": "^1.0.9", - "tmatch": "^2.0.1" + "define-properties": "1.1.2", + "has": "1.0.3", + "is-equal": "1.5.5", + "is-regex": "1.0.4", + "object-inspect": "1.6.0", + "object-keys": "1.0.12", + "tmatch": "2.0.1" } }, "expect-ct": { @@ -1696,36 +1706,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "~1.3.5", + "accepts": "1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "~1.0.4", + "content-type": "1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", + "proxy-addr": "2.0.3", "qs": "6.5.1", - "range-parser": "~1.2.0", + "range-parser": "1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "~1.4.0", - "type-is": "~1.6.16", + "statuses": "1.4.0", + "type-is": "1.6.16", "utils-merge": "1.0.1", - "vary": "~1.1.2" + "vary": "1.1.2" }, "dependencies": { "body-parser": { @@ -1734,15 +1744,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "~1.0.4", + "content-type": "1.0.4", "debug": "2.6.9", - "depd": "~1.1.1", - "http-errors": "~1.6.2", + "depd": "1.1.2", + "http-errors": "1.6.3", "iconv-lite": "0.4.19", - "on-finished": "~2.3.0", + "on-finished": "2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "~1.6.15" + "type-is": "1.6.16" } }, "debug": { @@ -1787,7 +1797,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": ">= 1.3.1 < 2" + "statuses": "1.4.0" } }, "setprototypeof": { @@ -1820,9 +1830,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "^0.4.0", - "iconv-lite": "^0.4.17", - "tmp": "^0.0.33" + "chardet": "0.4.2", + "iconv-lite": "0.4.23", + "tmp": "0.0.33" } }, "extglob": { @@ -1830,7 +1840,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "extsprintf": { @@ -1853,7 +1863,7 @@ "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.0.6.tgz", "integrity": "sha1-hv/4+GYjkaqBlyKGTWMuYD5u5gU=", "requires": { - "deep-equal": "^1.0.1" + "deep-equal": "1.0.1" } }, "fast-json-stable-stringify": { @@ -1873,7 +1883,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "optional": true, "requires": { - "websocket-driver": ">=0.5.1" + "websocket-driver": "0.7.0" } }, "fbjs": { @@ -1881,13 +1891,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "core-js": "^1.0.0", - "isomorphic-fetch": "^2.1.1", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.18" + "core-js": "1.2.7", + "isomorphic-fetch": "2.2.1", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "promise": "7.3.1", + "setimmediate": "1.0.5", + "ua-parser-js": "0.7.18" }, "dependencies": { "core-js": { @@ -1897,17 +1907,57 @@ } } }, + "feathers": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/feathers/-/feathers-2.2.4.tgz", + "integrity": "sha512-9IYKbxRKoDuerLCkYmFkQuKOwyB2SMM1kSUswDzlE0AmdzDrcfocVYb87/BsQx2j6hFkdCVFYkXq3+YPSDMT3w==", + "requires": { + "babel-runtime": "6.26.0", + "debug": "3.1.0", + "events": "1.1.1", + "express": "4.16.3", + "feathers-commons": "0.8.7", + "rubberduck": "1.1.1", + "uberproto": "1.2.0" + }, + "dependencies": { + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + } + } + }, "feathers-commons": { "version": "0.8.7", "resolved": "https://registry.npmjs.org/feathers-commons/-/feathers-commons-0.8.7.tgz", "integrity": "sha1-EcbyW1N3RamD6NYVUtfbiTLVN4I=" }, + "feathers-configuration": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/feathers-configuration/-/feathers-configuration-0.4.2.tgz", + "integrity": "sha512-T+lqgSRGnYhB/+pedL4xkZ3z7SYGtsrlX9uImkyxMCLLKWOuGPkkqyT9sy09isOMU9I2MZpmJCzQxZ1y8f6TUA==", + "requires": { + "config": "1.31.0", + "debug": "3.1.0" + }, + "dependencies": { + "config": { + "version": "1.31.0", + "resolved": "https://registry.npmjs.org/config/-/config-1.31.0.tgz", + "integrity": "sha512-Ep/l9Rd1J9IPueztJfpbOqVzuKHQh4ZODMNt9xqTYdBBNRXbV4oTu34kCkkfdRVcDq0ohtpaeXGgb+c0LQxFRA==", + "requires": { + "json5": "1.0.1" + } + } + } + }, "feathers-errors": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/feathers-errors/-/feathers-errors-2.9.2.tgz", "integrity": "sha512-qwIX97bNW7+1tWVG073+omUA0rCYKJtTtwuzTrrvfrtdr8J8Dk1Fy4iaV9Fa6/YBD5AZu0lsplPE0iu4u/d4GQ==", "requires": { - "debug": "^3.0.0" + "debug": "3.1.0" } }, "feathers-hooks": { @@ -1915,8 +1965,8 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-2.1.2.tgz", "integrity": "sha512-XQKhbo4d4TuXyco+tbHmKn5wo8QhdSNslJ/+zckNYfUzLmrN8L3uB4Utf0/ivcgwWxJtS1kVhEETBN4TDxuWFg==", "requires": { - "feathers-commons": "^0.8.6", - "uberproto": "^1.2.0" + "feathers-commons": "0.8.7", + "uberproto": "1.2.0" } }, "feathers-hooks-common": { @@ -1924,11 +1974,11 @@ "resolved": "https://registry.npmjs.org/feathers-hooks-common/-/feathers-hooks-common-3.10.0.tgz", "integrity": "sha512-xuyTH69e0bs9r7ntQJiayBy8uC47mbGXeAsO7nkMXLGn+nYhjuw6z/ekQywnY+DeqvRWAgmy+LC4SzieIjIUiw==", "requires": { - "ajv": "^5.2.0", - "debug": "^3.0.0", - "feathers-errors": "^2.4.0", - "feathers-hooks": "^2.0.1", - "traverse": "^0.6.6" + "ajv": "5.5.2", + "debug": "3.1.0", + "feathers-errors": "2.9.2", + "feathers-hooks": "2.1.2", + "traverse": "0.6.6" } }, "feathers-mongodb": { @@ -1936,12 +1986,12 @@ "resolved": "https://registry.npmjs.org/feathers-mongodb/-/feathers-mongodb-2.9.1.tgz", "integrity": "sha512-PpG0Xdo3/3yvGiE42aLUXYWmwF/TViaYFOkriuk0k1MaM4aztZO5tlmbQlvV03QH7VO6svaWJhZWRx5n9Uejqg==", "requires": { - "babel-polyfill": "^6.7.4", - "feathers-commons": "^0.8.4", - "feathers-errors": "^2.0.1", - "feathers-query-filters": "^2.0.0", - "lodash.omit": "^4.3.0", - "uberproto": "^1.2.0" + "babel-polyfill": "6.26.0", + "feathers-commons": "0.8.7", + "feathers-errors": "2.9.2", + "feathers-query-filters": "2.1.2", + "lodash.omit": "4.5.0", + "uberproto": "1.2.0" } }, "feathers-query-filters": { @@ -1949,7 +1999,18 @@ "resolved": "https://registry.npmjs.org/feathers-query-filters/-/feathers-query-filters-2.1.2.tgz", "integrity": "sha1-zbGCJNteGcwBQNUoEI4JCNXrBlQ=", "requires": { - "feathers-commons": "^0.8.0" + "feathers-commons": "0.8.7" + } + }, + "feathers-rest": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/feathers-rest/-/feathers-rest-1.8.1.tgz", + "integrity": "sha512-FYVcBQLGocSdpjxEf+E/9Cb0QAX0S+biqRgB5KAGpoAF51cou9LV0WW1IwqwHzAT67KRyS4dT7fVCrE4kisM2w==", + "requires": { + "debug": "3.1.0", + "feathers-commons": "0.8.7", + "feathers-errors": "2.9.2", + "qs": "6.5.2" } }, "feathers-rethinkdb": { @@ -1957,12 +2018,12 @@ "resolved": "https://registry.npmjs.org/feathers-rethinkdb/-/feathers-rethinkdb-0.4.3.tgz", "integrity": "sha1-GBpxVdgpvYsUJRRyYL8BywPcK6I=", "requires": { - "debug": "^2.2.0", - "feathers-commons": "^0.8.4", - "feathers-errors": "^2.0.2", - "feathers-hooks": "^1.8.1", - "feathers-query-filters": "^2.0.0", - "uberproto": "^1.2.0" + "debug": "2.6.9", + "feathers-commons": "0.8.7", + "feathers-errors": "2.9.2", + "feathers-hooks": "1.8.1", + "feathers-query-filters": "2.1.2", + "uberproto": "1.2.0" }, "dependencies": { "debug": { @@ -1978,9 +2039,9 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-1.8.1.tgz", "integrity": "sha1-y6DEbzCc1uNo+utJV6LeydfyiY8=", "requires": { - "feathers-commons": "^0.8.6", - "feathers-hooks-common": "^2.0.3", - "uberproto": "^1.2.0" + "feathers-commons": "0.8.7", + "feathers-hooks-common": "2.0.3", + "uberproto": "1.2.0" } }, "feathers-hooks-common": { @@ -1988,23 +2049,55 @@ "resolved": "https://registry.npmjs.org/feathers-hooks-common/-/feathers-hooks-common-2.0.3.tgz", "integrity": "sha1-6fEqvr28Fj8o1MtMhQlOKaokY10=", "requires": { - "debug": "^2.2.0", - "feathers-errors": "^2.4.0", + "debug": "2.6.9", + "feathers-errors": "2.9.2", "traverse": "0.6.6" } } } }, + "feathers-socket-commons": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/feathers-socket-commons/-/feathers-socket-commons-2.4.0.tgz", + "integrity": "sha1-Bi79V/mocWZEFFuZOl9ycJlp8eE=", + "requires": { + "debug": "2.6.9", + "feathers-commons": "0.8.7", + "feathers-errors": "2.9.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + } + } + }, + "feathers-socketio": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/feathers-socketio/-/feathers-socketio-2.0.1.tgz", + "integrity": "sha512-3ByXVr6UGyGN6TPRN+U5IhENYrSgeuADhbKWLG5cq2WvYH9h2N1l3cj7WBVsfRektUgVw/HkGNAoExy8yuknMA==", + "requires": { + "@types/socket.io": "1.4.37", + "debug": "3.1.0", + "feathers-socket-commons": "2.4.0", + "socket.io": "2.1.1", + "uberproto": "1.2.0" + } + }, "feathers-swagger": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/feathers-swagger/-/feathers-swagger-0.5.1.tgz", "integrity": "sha512-2lv9nNTb5lIljQ3Dgy0IgUWTyrGT+pXFg7mYffKtETQtL0QzUvq4xjuhVfeAFUUdvXRjITUu0BQM303qiGYTDg==", "requires": { - "debug": "^3.1.0", - "feathers-errors": "^2.5.0", - "serve-static": "^1.12.4", - "swagger-ui": "^3.2.0", - "swagger-ui-dist": "^3.2.0" + "debug": "3.1.0", + "feathers-errors": "2.9.2", + "serve-static": "1.13.2", + "swagger-ui": "3.17.1", + "swagger-ui-dist": "3.17.1" } }, "fibers": { @@ -2018,7 +2111,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "escape-string-regexp": "1.0.5" } }, "file-entry-cache": { @@ -2027,8 +2120,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "^1.2.1", - "object-assign": "^4.0.1" + "flat-cache": "1.3.0", + "object-assign": "4.1.1" } }, "filename-regex": { @@ -2041,11 +2134,11 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "requires": { - "is-number": "^2.1.0", - "isobject": "^2.0.0", - "randomatic": "^3.0.0", - "repeat-element": "^1.1.2", - "repeat-string": "^1.5.2" + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "3.0.0", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" } }, "finalhandler": { @@ -2054,12 +2147,12 @@ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.2", - "statuses": "~1.4.0", - "unpipe": "~1.0.0" + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.2", + "statuses": "1.4.0", + "unpipe": "1.0.0" }, "dependencies": { "debug": { @@ -2082,8 +2175,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "^2.0.0", - "pinkie-promise": "^2.0.0" + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" } }, "flat-cache": { @@ -2092,10 +2185,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "^0.3.1", - "del": "^2.0.2", - "graceful-fs": "^4.1.2", - "write": "^0.2.1" + "circular-json": "0.3.3", + "del": "2.2.2", + "graceful-fs": "4.1.11", + "write": "0.2.1" }, "dependencies": { "del": { @@ -2104,13 +2197,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.1", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.2" } }, "globby": { @@ -2119,12 +2212,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" } }, "pify": { @@ -2140,8 +2233,8 @@ "resolved": "https://registry.npmjs.org/flowz-error-handler/-/flowz-error-handler-0.0.3.tgz", "integrity": "sha512-bc/qmTTAKUiTUP9sEtYnrv7CZZ+BIhdm88CKmAWhN1PeGbOoQNicIG+23Bg1G28pHrIoJ93z0NiGIk/CxQOZ2Q==", "requires": { - "feathers-errors": "^2.9.2", - "jsonfile": "^4.0.0" + "feathers-errors": "2.9.2", + "jsonfile": "4.0.0" }, "dependencies": { "jsonfile": { @@ -2149,7 +2242,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.11" } } } @@ -2159,8 +2252,8 @@ "resolved": "https://registry.npmjs.org/flowz-subscription/-/flowz-subscription-0.2.5.tgz", "integrity": "sha512-jlep0ITwYy0C6K5c399s2SxT2VVM3wZ+8cWudMQeIXV2/PwDMtk9eM7lUofxSaJbChPdBvBSDpGRXaK12dFPbA==", "requires": { - "request": "^2.83.0", - "request-promise": "^4.2.2" + "request": "2.88.0", + "request-promise": "4.2.2" } }, "follow-redirects": { @@ -2168,7 +2261,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "^3.1.0" + "debug": "3.1.0" } }, "for-in": { @@ -2181,7 +2274,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { - "for-in": "^1.0.1" + "for-in": "1.0.2" } }, "foreach": { @@ -2199,9 +2292,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "^0.4.0", + "asynckit": "0.4.0", "combined-stream": "1.0.6", - "mime-types": "^2.1.12" + "mime-types": "2.1.18" } }, "forwarded": { @@ -2253,7 +2346,7 @@ "requires": { "is-node": "0.0.0", "jsonp": "0.0.4", - "phin": "^2.2.6" + "phin": "2.9.0" } }, "get-stdin": { @@ -2272,7 +2365,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "^1.0.0" + "assert-plus": "1.0.0" } }, "glob": { @@ -2280,12 +2373,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "glob-base": { @@ -2293,8 +2386,8 @@ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { - "glob-parent": "^2.0.0", - "is-glob": "^2.0.0" + "glob-parent": "2.0.0", + "is-glob": "2.0.1" } }, "glob-parent": { @@ -2302,7 +2395,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "^2.0.0" + "is-glob": "2.0.1" } }, "globals": { @@ -2317,11 +2410,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "optional": true, "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -2365,8 +2458,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "requires": { - "ajv": "^5.3.0", - "har-schema": "^2.0.0" + "ajv": "5.5.2", + "har-schema": "2.0.0" } }, "has": { @@ -2374,7 +2467,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "^1.1.1" + "function-bind": "1.1.1" } }, "has-ansi": { @@ -2382,7 +2475,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "has-binary2": { @@ -2478,10 +2571,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "optional": true, "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "inherits": "2.0.3", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "wbuf": "1.7.3" } }, "hpkp": { @@ -2511,10 +2604,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "~1.1.2", + "depd": "1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "statuses": "1.5.0" } }, "http-parser-js": { @@ -2528,9 +2621,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "optional": true, "requires": { - "eventemitter3": "^3.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "eventemitter3": "3.1.0", + "follow-redirects": "1.5.0", + "requires-port": "1.0.0" } }, "http-proxy-middleware": { @@ -2539,10 +2632,10 @@ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "optional": true, "requires": { - "http-proxy": "^1.16.2", - "is-glob": "^3.1.0", - "lodash": "^4.17.2", - "micromatch": "^2.3.11" + "http-proxy": "1.17.0", + "is-glob": "3.1.0", + "lodash": "4.17.10", + "micromatch": "2.3.11" }, "dependencies": { "is-extglob": { @@ -2557,7 +2650,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "optional": true, "requires": { - "is-extglob": "^2.1.0" + "is-extglob": "2.1.1" } } } @@ -2567,9 +2660,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "assert-plus": "1.0.0", + "jsprim": "1.4.1", + "sshpk": "1.14.2" } }, "hyphenate-style-name": { @@ -2582,7 +2675,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": "2.1.2" } }, "ieee754": { @@ -2623,7 +2716,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "optional": true, "requires": { - "repeating": "^2.0.0" + "repeating": "2.0.1" } }, "indexof": { @@ -2636,8 +2729,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "^1.3.0", - "wrappy": "1" + "once": "1.4.0", + "wrappy": "1.0.2" } }, "inherits": { @@ -2650,8 +2743,8 @@ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=", "requires": { - "bowser": "^1.7.3", - "css-in-js-utils": "^2.0.0" + "bowser": "1.9.3", + "css-in-js-utils": "2.0.1" } }, "inquirer": { @@ -2660,20 +2753,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "^3.0.0", - "chalk": "^2.0.0", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^2.0.4", - "figures": "^2.0.0", - "lodash": "^4.3.0", + "ansi-escapes": "3.1.0", + "chalk": "2.4.1", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.2.0", + "figures": "2.0.0", + "lodash": "4.17.10", "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rx-lite": "^4.0.8", - "rx-lite-aggregates": "^4.0.8", - "string-width": "^2.1.0", - "strip-ansi": "^4.0.0", - "through": "^2.3.6" + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" }, "dependencies": { "ansi-regex": { @@ -2688,7 +2781,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "chalk": { @@ -2697,9 +2790,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "has-flag": { @@ -2720,8 +2813,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "strip-ansi": { @@ -2730,7 +2823,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "supports-color": { @@ -2739,7 +2832,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -2750,7 +2843,7 @@ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "optional": true, "requires": { - "meow": "^3.3.0" + "meow": "3.7.0" } }, "invariant": { @@ -2758,7 +2851,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "^1.0.0" + "loose-envify": "1.3.1" } }, "invert-kv": { @@ -2788,7 +2881,7 @@ "resolved": "https://registry.npmjs.org/is-arrow-function/-/is-arrow-function-2.0.3.tgz", "integrity": "sha1-Kb4sLY2UUIUri7r7Y1unuNjofsI=", "requires": { - "is-callable": "^1.0.4" + "is-callable": "1.1.3" } }, "is-binary-path": { @@ -2796,7 +2889,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "^1.0.0" + "binary-extensions": "1.11.0" } }, "is-boolean-object": { @@ -2814,7 +2907,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "^1.0.0" + "builtin-modules": "1.1.1" } }, "is-callable": { @@ -2837,17 +2930,17 @@ "resolved": "https://registry.npmjs.org/is-equal/-/is-equal-1.5.5.tgz", "integrity": "sha1-XoXxlX4FKIMkf+s4aWWju6Ffuz0=", "requires": { - "has": "^1.0.1", - "is-arrow-function": "^2.0.3", - "is-boolean-object": "^1.0.0", - "is-callable": "^1.1.3", - "is-date-object": "^1.0.1", - "is-generator-function": "^1.0.6", - "is-number-object": "^1.0.3", - "is-regex": "^1.0.3", - "is-string": "^1.0.4", - "is-symbol": "^1.0.1", - "object.entries": "^1.0.4" + "has": "1.0.3", + "is-arrow-function": "2.0.3", + "is-boolean-object": "1.0.0", + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-generator-function": "1.0.7", + "is-number-object": "1.0.3", + "is-regex": "1.0.4", + "is-string": "1.0.4", + "is-symbol": "1.0.1", + "object.entries": "1.0.4" } }, "is-equal-shallow": { @@ -2855,7 +2948,7 @@ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { - "is-primitive": "^2.0.0" + "is-primitive": "2.0.0" } }, "is-extendable": { @@ -2874,7 +2967,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "optional": true, "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-fullwidth-code-point": { @@ -2882,7 +2975,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "^1.0.0" + "number-is-nan": "1.0.1" } }, "is-generator-function": { @@ -2895,7 +2988,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "^1.0.0" + "is-extglob": "1.0.0" } }, "is-node": { @@ -2908,7 +3001,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { - "kind-of": "^3.0.2" + "kind-of": "3.2.2" } }, "is-number-object": { @@ -2926,7 +3019,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "^1.0.0" + "is-path-inside": "1.0.1" } }, "is-path-inside": { @@ -2934,7 +3027,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "^1.0.1" + "path-is-inside": "1.0.2" } }, "is-posix-bracket": { @@ -2957,7 +3050,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "^1.0.1" + "has": "1.0.3" } }, "is-resolvable": { @@ -3015,8 +3108,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "^1.0.1", - "whatwg-fetch": ">=0.10.0" + "node-fetch": "1.7.3", + "whatwg-fetch": "0.11.1" } }, "isomorphic-form-data": { @@ -3024,7 +3117,7 @@ "resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-0.0.1.tgz", "integrity": "sha1-Am9ifgMrDNhBPsyHVZKLlKRosGI=", "requires": { - "form-data": "^1.0.0-rc3" + "form-data": "1.0.1" }, "dependencies": { "form-data": { @@ -3032,9 +3125,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", "requires": { - "async": "^2.0.1", - "combined-stream": "^1.0.5", - "mime-types": "^2.1.11" + "async": "2.6.1", + "combined-stream": "1.0.6", + "mime-types": "2.1.18" } } } @@ -3059,8 +3152,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "argparse": "1.0.10", + "esprima": "4.0.0" } }, "jsbn": { @@ -3100,7 +3193,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "^1.2.0" + "minimist": "1.2.0" } }, "jsonfile": { @@ -3108,7 +3201,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "requires": { - "graceful-fs": "^4.1.6" + "graceful-fs": "4.1.11" } }, "jsonp": { @@ -3116,7 +3209,7 @@ "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.0.4.tgz", "integrity": "sha1-lGZaS3caq+y4qshBNbmVlHVpGL0=", "requires": { - "debug": "*" + "debug": "3.1.0" } }, "jsprim": { @@ -3140,7 +3233,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "^1.1.5" + "is-buffer": "1.1.6" } }, "lcid": { @@ -3149,7 +3242,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "optional": true, "requires": { - "invert-kv": "^1.0.0" + "invert-kv": "1.0.0" } }, "levn": { @@ -3158,8 +3251,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "prelude-ls": "1.1.2", + "type-check": "0.3.2" } }, "lie": { @@ -3167,7 +3260,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "requires": { - "immediate": "~3.0.5" + "immediate": "3.0.6" } }, "load-json-file": { @@ -3175,11 +3268,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^2.2.0", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "strip-bom": "^2.0.0" + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" }, "dependencies": { "pify": { @@ -3194,10 +3287,10 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "requires": { - "big.js": "^3.1.3", - "emojis-list": "^2.0.0", - "json5": "^0.5.0", - "object-assign": "^4.0.1" + "big.js": "3.2.0", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" }, "dependencies": { "json5": { @@ -3220,7 +3313,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", "requires": { - "immediate": "~3.0.5" + "immediate": "3.0.6" } } } @@ -3241,8 +3334,8 @@ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "dev": true, "requires": { - "lodash._basecopy": "^3.0.0", - "lodash.keys": "^3.0.0" + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" } }, "lodash._basecopy": { @@ -3279,9 +3372,9 @@ "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", "dev": true, "requires": { - "lodash._baseassign": "^3.0.0", - "lodash._basecreate": "^3.0.0", - "lodash._isiterateecall": "^3.0.0" + "lodash._baseassign": "3.2.0", + "lodash._basecreate": "3.0.3", + "lodash._isiterateecall": "3.0.9" } }, "lodash.debounce": { @@ -3319,9 +3412,9 @@ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "requires": { - "lodash._getnative": "^3.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isarray": "^3.0.0" + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" } }, "lodash.omit": { @@ -3339,7 +3432,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "^3.0.0" + "js-tokens": "3.0.2" } }, "loud-rejection": { @@ -3348,8 +3441,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "optional": true, "requires": { - "currently-unhandled": "^0.4.1", - "signal-exit": "^3.0.0" + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" } }, "lru-cache": { @@ -3358,8 +3451,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "pseudomap": "1.0.2", + "yallist": "2.1.2" } }, "lru-queue": { @@ -3367,7 +3460,7 @@ "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", "requires": { - "es5-ext": "~0.10.2" + "es5-ext": "0.10.45" } }, "map-obj": { @@ -3380,7 +3473,7 @@ "resolved": "https://registry.npmjs.org/matcher/-/matcher-0.1.2.tgz", "integrity": "sha1-7yDL3mTCTFDMYa9bg+4LG4/wAQE=", "requires": { - "escape-string-regexp": "^1.0.4" + "escape-string-regexp": "1.0.5" } }, "math-random": { @@ -3403,14 +3496,14 @@ "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.1.tgz", "integrity": "sha1-aT9TgM2ASjmR662gAXnGtWWjr6s=", "requires": { - "d": "1", - "es5-ext": "^0.10.12", - "es6-weak-map": "^2.0.1", - "event-emitter": "^0.3.4", - "is-promise": "^2.1", - "lru-queue": "0.1", - "next-tick": "1", - "timers-ext": "0.1" + "d": "1.0.0", + "es5-ext": "0.10.45", + "es6-weak-map": "2.0.2", + "event-emitter": "0.3.5", + "is-promise": "2.1.0", + "lru-queue": "0.1.0", + "next-tick": "1.0.0", + "timers-ext": "0.1.5" } }, "memory-fs": { @@ -3419,8 +3512,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "optional": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "errno": "0.1.7", + "readable-stream": "2.3.6" } }, "meow": { @@ -3429,16 +3522,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "optional": true, "requires": { - "camelcase-keys": "^2.0.0", - "decamelize": "^1.1.2", - "loud-rejection": "^1.0.0", - "map-obj": "^1.0.1", - "minimist": "^1.1.3", - "normalize-package-data": "^2.3.4", - "object-assign": "^4.0.1", - "read-pkg-up": "^1.0.1", - "redent": "^1.0.0", - "trim-newlines": "^1.0.0" + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" } }, "merge-descriptors": { @@ -3456,19 +3549,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { - "arr-diff": "^2.0.0", - "array-unique": "^0.2.1", - "braces": "^1.8.2", - "expand-brackets": "^0.1.4", - "extglob": "^0.3.1", - "filename-regex": "^2.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.1", - "kind-of": "^3.0.2", - "normalize-path": "^2.0.1", - "object.omit": "^2.0.0", - "parse-glob": "^3.0.4", - "regex-cache": "^0.4.2" + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" } }, "mime": { @@ -3486,7 +3579,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "~1.33.0" + "mime-db": "1.33.0" } }, "mimic-fn": { @@ -3505,7 +3598,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "^1.1.7" + "brace-expansion": "1.1.11" } }, "minimist": { @@ -3563,12 +3656,12 @@ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.2", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" } }, "supports-color": { @@ -3577,7 +3670,7 @@ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -3607,13 +3700,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } }, "string_decoder": { @@ -3621,7 +3714,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } } } @@ -3631,8 +3724,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz", "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==", "requires": { - "bson": "~1.0.4", - "require_optional": "~1.0.0" + "bson": "1.0.9", + "require_optional": "1.0.1" } }, "mongoose": { @@ -3641,7 +3734,7 @@ "integrity": "sha512-rcbVI915IzeLFzayATSUQRZkcEkqUoUcvuGTMWcVgQwYibWq1rSvNBTGhCJvmAEGA8e9ygAJS3y9gZFQPjRxBA==", "requires": { "async": "2.6.0", - "bson": "~1.0.4", + "bson": "1.0.9", "hooks-fixed": "2.0.2", "kareem": "1.5.0", "lodash.get": "4.4.2", @@ -3660,7 +3753,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "^4.14.0" + "lodash": "4.17.10" } }, "mongodb": { @@ -3678,8 +3771,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", "requires": { - "bson": "~1.0.4", - "require_optional": "~1.0.0" + "bson": "1.0.9", + "require_optional": "1.0.1" } }, "process-nextick-args": { @@ -3692,13 +3785,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "~1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~1.0.0", - "util-deprecate": "~1.0.1" + "buffer-shims": "1.0.0", + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" } }, "string_decoder": { @@ -3706,7 +3799,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } } } @@ -3763,8 +3856,8 @@ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "optional": true, "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" + "dns-packet": "1.3.1", + "thunky": "1.0.2" } }, "multicast-dns-service-types": { @@ -3797,9 +3890,9 @@ "requires": { "async": "0.2.10", "binary-search-tree": "0.2.5", - "localforage": "^1.3.0", - "mkdirp": "~0.5.1", - "underscore": "~1.4.4" + "localforage": "1.7.2", + "mkdirp": "0.5.1", + "underscore": "1.4.4" }, "dependencies": { "async": { @@ -3819,8 +3912,8 @@ "resolved": "https://registry.npmjs.org/nedb-promise/-/nedb-promise-2.0.1.tgz", "integrity": "sha1-g5suSQlxb99pUAt/aLK4ciWCzWU=", "requires": { - "nedb": "^1.8.0", - "thenify": "^3.2.0" + "nedb": "1.8.0", + "thenify": "3.3.0" } }, "negotiator": { @@ -3843,8 +3936,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "^0.1.11", - "is-stream": "^1.0.1" + "encoding": "0.1.12", + "is-stream": "1.1.0" } }, "node-forge": { @@ -3858,10 +3951,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { - "hosted-git-info": "^2.1.4", - "is-builtin-module": "^1.0.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "hosted-git-info": "2.6.0", + "is-builtin-module": "1.0.0", + "semver": "5.5.0", + "validate-npm-package-license": "3.0.3" } }, "normalize-path": { @@ -3869,7 +3962,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "^1.0.1" + "remove-trailing-separator": "1.1.0" } }, "number-is-nan": { @@ -3907,10 +4000,10 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "requires": { - "define-properties": "^1.1.2", - "es-abstract": "^1.6.1", - "function-bind": "^1.1.0", - "has": "^1.0.1" + "define-properties": "1.1.2", + "es-abstract": "1.12.0", + "function-bind": "1.1.1", + "has": "1.0.3" } }, "object.omit": { @@ -3918,8 +4011,8 @@ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { - "for-own": "^0.1.4", - "is-extendable": "^0.1.1" + "for-own": "0.1.5", + "is-extendable": "0.1.1" } }, "obuf": { @@ -3945,7 +4038,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1" + "wrappy": "1.0.2" } }, "onetime": { @@ -3954,7 +4047,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "1.2.0" } }, "opn": { @@ -3963,8 +4056,8 @@ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "optional": true, "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" } }, "optionator": { @@ -3973,12 +4066,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" } }, "original": { @@ -3987,7 +4080,7 @@ "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", "optional": true, "requires": { - "url-parse": "~1.4.0" + "url-parse": "1.4.1" } }, "os-locale": { @@ -3996,7 +4089,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "optional": true, "requires": { - "lcid": "^1.0.0" + "lcid": "1.0.0" } }, "os-tmpdir": { @@ -4016,10 +4109,10 @@ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { - "glob-base": "^0.3.0", - "is-dotfile": "^1.0.0", - "is-extglob": "^1.0.0", - "is-glob": "^2.0.0" + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" } }, "parse-json": { @@ -4027,7 +4120,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "^1.2.0" + "error-ex": "1.3.2" } }, "parseqs": { @@ -4035,7 +4128,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseuri": { @@ -4043,7 +4136,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "~1.0.0" + "better-assert": "1.0.2" } }, "parseurl": { @@ -4061,8 +4154,8 @@ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", "requires": { - "process": "^0.11.1", - "util": "^0.10.3" + "process": "0.11.10", + "util": "0.10.4" } }, "path-exists": { @@ -4070,7 +4163,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "^2.0.0" + "pinkie-promise": "2.0.1" } }, "path-is-absolute": { @@ -4093,9 +4186,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "^4.1.2", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" }, "dependencies": { "pify": { @@ -4131,7 +4224,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "^2.0.0" + "pinkie": "2.0.4" } }, "platform": { @@ -4151,9 +4244,9 @@ "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", "optional": true, "requires": { - "async": "^1.5.2", - "debug": "^2.2.0", - "mkdirp": "0.5.x" + "async": "1.5.2", + "debug": "2.6.9", + "mkdirp": "0.5.1" }, "dependencies": { "async": { @@ -4205,7 +4298,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "~2.0.3" + "asap": "2.0.6" } }, "promise-worker": { @@ -4213,8 +4306,8 @@ "resolved": "https://registry.npmjs.org/promise-worker/-/promise-worker-1.1.1.tgz", "integrity": "sha1-wrddBF0kliXAImTi3/mtIuAxxps=", "requires": { - "is-promise": "^2.1.0", - "lie": "^3.0.2" + "is-promise": "2.1.0", + "lie": "3.3.0" } }, "prop-types": { @@ -4222,8 +4315,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "^1.3.1", - "object-assign": "^4.1.1" + "loose-envify": "1.3.1", + "object-assign": "4.1.1" } }, "proxy-addr": { @@ -4231,7 +4324,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { - "forwarded": "~0.1.2", + "forwarded": "0.1.2", "ipaddr.js": "1.6.0" } }, @@ -4287,7 +4380,7 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", "requires": { - "performance-now": "^2.1.0" + "performance-now": "2.1.0" }, "dependencies": { "performance-now": { @@ -4307,9 +4400,9 @@ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "requires": { - "is-number": "^4.0.0", - "kind-of": "^6.0.0", - "math-random": "^1.0.1" + "is-number": "4.0.0", + "kind-of": "6.0.2", + "math-random": "1.0.1" }, "dependencies": { "is-number": { @@ -4345,11 +4438,11 @@ "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", "requires": { - "create-react-class": "^15.6.0", - "fbjs": "^0.8.9", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" + "create-react-class": "15.6.3", + "fbjs": "0.8.17", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.2" } }, "react-addons-perf": { @@ -4357,8 +4450,8 @@ "resolved": "https://registry.npmjs.org/react-addons-perf/-/react-addons-perf-15.4.2.tgz", "integrity": "sha1-EQvc9cRZxPd8uF7WNLzTOXU2ODs=", "requires": { - "fbjs": "^0.8.4", - "object-assign": "^4.1.0" + "fbjs": "0.8.17", + "object-assign": "4.1.1" } }, "react-addons-shallow-compare": { @@ -4376,7 +4469,7 @@ "resolved": "https://registry.npmjs.org/react-collapse/-/react-collapse-4.0.3.tgz", "integrity": "sha512-OO4NhtEqFtz+1ma31J1B7+ezdRnzHCZiTGSSd/Pxoks9hxrZYhzFEddeYt05A/1477xTtdrwo7xEa2FLJyWGCQ==", "requires": { - "prop-types": "^15.5.8" + "prop-types": "15.6.2" } }, "react-debounce-input": { @@ -4384,8 +4477,8 @@ "resolved": "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.0.tgz", "integrity": "sha1-aXjGBh2Jj1SfQEF/sNLrvs9Qqqo=", "requires": { - "lodash.debounce": "^4", - "prop-types": "^15" + "lodash.debounce": "4.0.8", + "prop-types": "15.6.2" } }, "react-dom": { @@ -4393,10 +4486,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", "requires": { - "fbjs": "^0.8.9", - "loose-envify": "^1.1.0", - "object-assign": "^4.1.0", - "prop-types": "^15.5.10" + "fbjs": "0.8.17", + "loose-envify": "1.3.1", + "object-assign": "4.1.1", + "prop-types": "15.6.2" } }, "react-height": { @@ -4413,8 +4506,8 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.5.2.tgz", "integrity": "sha1-aodYNI32YLiDJqDnZNVp8nSq1oE=", "requires": { - "fbjs": "^0.8.9", - "object-assign": "^4.1.1" + "fbjs": "0.8.17", + "object-assign": "4.1.1" } }, "prop-types": { @@ -4422,7 +4515,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.8.tgz", "integrity": "sha1-a3suFBCDvjjIWVqlH8VXdccZk5Q=", "requires": { - "fbjs": "^0.8.9" + "fbjs": "0.8.17" } } } @@ -4437,8 +4530,8 @@ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-1.3.1.tgz", "integrity": "sha1-yVZHrni3Pfzv9uxx/8sEGC/22vk=", "requires": { - "react-hot-api": "^0.4.5", - "source-map": "^0.4.4" + "react-hot-api": "0.4.7", + "source-map": "0.4.4" } }, "react-immutable-proptypes": { @@ -4456,9 +4549,9 @@ "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-2.5.1.tgz", "integrity": "sha512-N5xMde42RrclLIdF16bckTApFM56vkn4q3GoZlLkuE8IK23GOIqJsuE62RTrkgq//pAt4dovVgZcgawh7YtN4w==", "requires": { - "commonmark": "^0.24.0", - "commonmark-react-renderer": "^4.3.4", - "prop-types": "^15.5.1" + "commonmark": "0.24.0", + "commonmark-react-renderer": "4.3.4", + "prop-types": "15.6.2" }, "dependencies": { "commonmark": { @@ -4466,9 +4559,9 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.24.0.tgz", "integrity": "sha1-uA3gGCxUY1VkOqFdsSv7KCNoJ48=", "requires": { - "entities": "~ 1.1.1", - "mdurl": "~ 1.0.1", - "string.prototype.repeat": "^0.2.0" + "entities": "1.1.1", + "mdurl": "1.0.1", + "string.prototype.repeat": "0.2.0" } } } @@ -4478,9 +4571,9 @@ "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", "requires": { - "performance-now": "^0.2.0", - "prop-types": "^15.5.8", - "raf": "^3.1.0" + "performance-now": "0.2.0", + "prop-types": "15.6.2", + "raf": "3.4.0" } }, "react-object-inspector": { @@ -4493,12 +4586,12 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.9.tgz", "integrity": "sha512-3XS7mjTOcvaP2H5OE/LxEgDHRuEyTZxBRlwvXHzNqYkZdYd7Ra98AimWoDSHP9OcLoydjA1ocgiZxxcqeXj0Sw==", "requires": { - "create-react-class": "^15.5.1", - "hoist-non-react-statics": "^2.5.0", - "invariant": "^2.0.0", - "lodash": "^4.2.0", - "loose-envify": "^1.1.0", - "prop-types": "^15.5.4" + "create-react-class": "15.6.3", + "hoist-non-react-statics": "2.5.5", + "invariant": "2.2.4", + "lodash": "4.17.10", + "loose-envify": "1.3.1", + "prop-types": "15.6.2" } }, "react-split-pane": { @@ -4506,11 +4599,11 @@ "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.70.tgz", "integrity": "sha512-vXLE4gTI9gTFXEaX2pKKyZilwDsxGVmAQi7yombplzzj2oBY/fmd3o4DlNSMN43m9XchtStcWri9mOrBx3yMiQ==", "requires": { - "@types/inline-style-prefixer": "^3.0.0", - "@types/react": "^16.0.18", - "inline-style-prefixer": "^3.0.6", - "prop-types": "^15.5.10", - "react-style-proptype": "^3.0.0" + "@types/inline-style-prefixer": "3.0.1", + "@types/react": "16.4.1", + "inline-style-prefixer": "3.0.8", + "prop-types": "15.6.2", + "react-style-proptype": "3.2.1" } }, "react-style-proptype": { @@ -4518,7 +4611,7 @@ "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.1.tgz", "integrity": "sha512-Z02QsgmdZ4wYNxJsHhNGGZsIF8+MO93fYmdPaC+ljdqX3rq8tl/fSMXOGBbofGJNzq5W/2LFcONllmV6vzyYHA==", "requires": { - "prop-types": "^15.5.4" + "prop-types": "15.6.2" } }, "read-pkg": { @@ -4526,9 +4619,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "^1.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^1.0.0" + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" } }, "read-pkg-up": { @@ -4536,8 +4629,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "^1.0.0", - "read-pkg": "^1.0.0" + "find-up": "1.1.2", + "read-pkg": "1.1.0" } }, "readable-stream": { @@ -4545,13 +4638,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" } }, "readdirp": { @@ -4559,10 +4652,10 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "requires": { - "graceful-fs": "^4.1.2", - "minimatch": "^3.0.2", - "readable-stream": "^2.0.2", - "set-immediate-shim": "^1.0.1" + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.6", + "set-immediate-shim": "1.0.1" } }, "redent": { @@ -4571,8 +4664,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "optional": true, "requires": { - "indent-string": "^2.1.0", - "strip-indent": "^1.0.1" + "indent-string": "2.1.0", + "strip-indent": "1.0.1" } }, "redux": { @@ -4580,10 +4673,10 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "requires": { - "lodash": "^4.2.1", - "lodash-es": "^4.2.1", - "loose-envify": "^1.1.0", - "symbol-observable": "^1.0.3" + "lodash": "4.17.10", + "lodash-es": "4.17.10", + "loose-envify": "1.3.1", + "symbol-observable": "1.2.0" } }, "redux-immutable": { @@ -4591,7 +4684,7 @@ "resolved": "https://registry.npmjs.org/redux-immutable/-/redux-immutable-3.0.8.tgz", "integrity": "sha1-31pdYByIInujj0dM+C99AOVvjBQ=", "requires": { - "immutable": "^3.7.6" + "immutable": "3.8.2" } }, "redux-logger": { @@ -4599,7 +4692,7 @@ "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-3.0.6.tgz", "integrity": "sha1-91VZZvMJjzyIYExEnPC69XeCdL8=", "requires": { - "deep-diff": "^0.3.5" + "deep-diff": "0.3.8" } }, "referrer-policy": { @@ -4617,7 +4710,7 @@ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "is-equal-shallow": "^0.1.3" + "is-equal-shallow": "0.1.3" } }, "regexp-clone": { @@ -4636,8 +4729,8 @@ "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz", "integrity": "sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=", "requires": { - "argparse": "~0.1.15", - "autolinker": "~0.15.0" + "argparse": "0.1.16", + "autolinker": "0.15.3" }, "dependencies": { "argparse": { @@ -4645,8 +4738,8 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", "requires": { - "underscore": "~1.7.0", - "underscore.string": "~2.4.0" + "underscore": "1.7.0", + "underscore.string": "2.4.0" } } } @@ -4672,7 +4765,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "optional": true, "requires": { - "is-finite": "^1.0.0" + "is-finite": "1.0.2" } }, "request": { @@ -4680,26 +4773,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.0", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.4.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" + "aws-sign2": "0.7.0", + "aws4": "1.8.0", + "caseless": "0.12.0", + "combined-stream": "1.0.6", + "extend": "3.0.2", + "forever-agent": "0.6.1", + "form-data": "2.3.2", + "har-validator": "5.1.0", + "http-signature": "1.2.0", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.19", + "oauth-sign": "0.9.0", + "performance-now": "2.1.0", + "qs": "6.5.2", + "safe-buffer": "5.1.2", + "tough-cookie": "2.4.3", + "tunnel-agent": "0.6.0", + "uuid": "3.3.2" }, "dependencies": { "mime-db": { @@ -4712,7 +4805,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "~1.35.0" + "mime-db": "1.35.0" } }, "performance-now": { @@ -4730,8 +4823,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { - "psl": "^1.1.24", - "punycode": "^1.4.1" + "psl": "1.1.29", + "punycode": "1.4.1" } }, "uuid": { @@ -4746,10 +4839,10 @@ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", "requires": { - "bluebird": "^3.5.0", + "bluebird": "3.5.1", "request-promise-core": "1.1.1", - "stealthy-require": "^1.1.0", - "tough-cookie": ">=2.3.3" + "stealthy-require": "1.1.1", + "tough-cookie": "2.3.4" } }, "request-promise-core": { @@ -4757,7 +4850,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "^4.13.1" + "lodash": "4.17.10" } }, "require-directory": { @@ -4778,8 +4871,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "^0.1.0", - "resolve-from": "^1.0.0" + "caller-path": "0.1.0", + "resolve-from": "1.0.1" }, "dependencies": { "resolve-from": { @@ -4795,8 +4888,8 @@ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { - "resolve-from": "^2.0.0", - "semver": "^5.1.0" + "resolve-from": "2.0.0", + "semver": "5.5.0" } }, "requires-port": { @@ -4820,8 +4913,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" + "onetime": "2.0.1", + "signal-exit": "3.0.2" } }, "rethinkdb": { @@ -4829,7 +4922,7 @@ "resolved": "https://registry.npmjs.org/rethinkdb/-/rethinkdb-2.3.3.tgz", "integrity": "sha1-PcZYbiL6HavuDSVOZL0ON5+tL3I=", "requires": { - "bluebird": ">= 2.3.2 < 3" + "bluebird": "2.11.0" }, "dependencies": { "bluebird": { @@ -4844,11 +4937,11 @@ "resolved": "https://registry.npmjs.org/rethinkdb-job-queue/-/rethinkdb-job-queue-3.1.7.tgz", "integrity": "sha512-/mb6AnUtomLCCEqZ3Z2L+PM8Bclx8n5h3oRb9rIjHps5GFO4ch7Gps1qJXpvOda7D+bX0c+6yZVuGQmBW8Ef8Q==", "requires": { - "bluebird": "^3.5.1", - "debug": "^3.1.0", - "rethinkdbdash": "^2.3.31", - "serialize-error": "^2.1.0", - "uuid": "^3.2.1" + "bluebird": "3.5.1", + "debug": "3.1.0", + "rethinkdbdash": "2.3.31", + "serialize-error": "2.1.0", + "uuid": "3.2.1" }, "dependencies": { "serialize-error": { @@ -4868,7 +4961,7 @@ "resolved": "https://registry.npmjs.org/rethinkdbdash/-/rethinkdbdash-2.3.31.tgz", "integrity": "sha512-6nXrKFjdg2Ug0YpdmPWSvyD/2EisHnFNt4FWZ74dcXGK48ievSv+cNFTmVv+KjLi6I9CCf6w4CKZ6yCYTfMfdQ==", "requires": { - "bluebird": ">= 3.0.1" + "bluebird": "3.5.1" } }, "rimraf": { @@ -4876,16 +4969,21 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "^7.0.5" + "glob": "7.1.2" } }, + "rubberduck": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/rubberduck/-/rubberduck-1.1.1.tgz", + "integrity": "sha1-zSzaS4ZxeBNer8mVpxOE9fdD2wI=" + }, "run-async": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "^2.1.0" + "is-promise": "2.1.0" } }, "rx-lite": { @@ -4900,7 +4998,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "*" + "rx-lite": "4.0.8" } }, "safe-buffer": { @@ -4956,18 +5054,18 @@ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", + "depd": "1.1.2", + "destroy": "1.0.4", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "etag": "1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", + "http-errors": "1.6.3", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.4.0" }, "dependencies": { "debug": { @@ -4995,10 +5093,10 @@ "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", "requires": { - "etag": "~1.8.1", + "etag": "1.8.1", "fresh": "0.5.2", "ms": "2.1.1", - "parseurl": "~1.3.2", + "parseurl": "1.3.2", "safe-buffer": "5.1.1" }, "dependencies": { @@ -5020,13 +5118,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "optional": true, "requires": { - "accepts": "~1.3.4", + "accepts": "1.3.5", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "escape-html": "1.0.3", + "http-errors": "1.6.3", + "mime-types": "2.1.18", + "parseurl": "1.3.2" }, "dependencies": { "debug": { @@ -5045,9 +5143,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.2", + "encodeurl": "1.0.2", + "escape-html": "1.0.3", + "parseurl": "1.3.2", "send": "0.16.2" } }, @@ -5077,7 +5175,7 @@ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", "requires": { - "lodash.keys": "^3.1.2" + "lodash.keys": "3.1.2" } }, "shebang-command": { @@ -5086,7 +5184,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "1.0.0" } }, "shebang-regex": { @@ -5106,7 +5204,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0" + "is-fullwidth-code-point": "2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -5127,12 +5225,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", + "debug": "3.1.0", + "engine.io": "3.2.0", + "has-binary2": "1.0.3", + "socket.io-adapter": "1.1.1", "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" + "socket.io-parser": "3.2.0" } }, "socket.io-adapter": { @@ -5149,15 +5247,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", + "debug": "3.1.0", + "engine.io-client": "3.2.1", + "has-binary2": "1.0.3", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", + "socket.io-parser": "3.2.0", "to-array": "0.1.4" } }, @@ -5167,7 +5265,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "~3.1.0", + "debug": "3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -5184,8 +5282,8 @@ "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "optional": true, "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^2.0.2" + "faye-websocket": "0.10.0", + "uuid": "2.0.3" } }, "sockjs-client": { @@ -5194,12 +5292,12 @@ "integrity": "sha1-8CEqhVDkyUaMjM6u79LjSTwDOtU=", "optional": true, "requires": { - "debug": "^2.2.0", + "debug": "2.6.9", "eventsource": "0.1.6", - "faye-websocket": "~0.11.0", - "inherits": "^2.0.1", - "json3": "^3.3.2", - "url-parse": "^1.1.1" + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.4.1" }, "dependencies": { "debug": { @@ -5217,7 +5315,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "optional": true, "requires": { - "websocket-driver": ">=0.5.1" + "websocket-driver": "0.7.0" } } } @@ -5227,7 +5325,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": ">=0.0.4" + "amdefine": "1.0.1" } }, "spdx-correct": { @@ -5235,8 +5333,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" + "spdx-expression-parse": "3.0.0", + "spdx-license-ids": "3.0.0" } }, "spdx-exceptions": { @@ -5249,8 +5347,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "spdx-exceptions": "2.1.0", + "spdx-license-ids": "3.0.0" } }, "spdx-license-ids": { @@ -5264,12 +5362,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "optional": true, "requires": { - "debug": "^2.6.8", - "handle-thing": "^1.2.5", - "http-deceiver": "^1.2.7", - "safe-buffer": "^5.0.1", - "select-hose": "^2.0.0", - "spdy-transport": "^2.0.18" + "debug": "2.6.9", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.2", + "select-hose": "2.0.0", + "spdy-transport": "2.1.0" }, "dependencies": { "debug": { @@ -5289,13 +5387,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "optional": true, "requires": { - "debug": "^2.6.8", - "detect-node": "^2.0.3", - "hpack.js": "^2.1.6", - "obuf": "^1.1.1", - "readable-stream": "^2.2.9", - "safe-buffer": "^5.0.1", - "wbuf": "^1.7.2" + "debug": "2.6.9", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.2", + "readable-stream": "2.3.6", + "safe-buffer": "5.1.2", + "wbuf": "1.7.3" }, "dependencies": { "debug": { @@ -5319,15 +5417,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "asn1": "0.2.4", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.2", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.2", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "safer-buffer": "2.1.2", + "tweetnacl": "0.14.5" } }, "stack-trace": { @@ -5350,9 +5448,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" } }, "string.prototype.repeat": { @@ -5365,7 +5463,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "~5.1.0" + "safe-buffer": "5.1.2" } }, "strip-ansi": { @@ -5373,7 +5471,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "2.1.1" } }, "strip-bom": { @@ -5381,7 +5479,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "^0.2.0" + "is-utf8": "0.2.1" } }, "strip-indent": { @@ -5390,7 +5488,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "optional": true, "requires": { - "get-stdin": "^4.0.1" + "get-stdin": "4.0.1" } }, "strip-json-comments": { @@ -5409,23 +5507,23 @@ "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.8.6.tgz", "integrity": "sha1-TxiDhEkYwNEjgC1bThBp/jRCUlQ=", "requires": { - "@kyleshockey/object-assign-deep": "^0.4.0", - "babel-runtime": "^6.23.0", + "@kyleshockey/object-assign-deep": "0.4.2", + "babel-runtime": "6.26.0", "btoa": "1.1.2", - "buffer": "^5.1.0", - "cookie": "^0.3.1", + "buffer": "5.1.0", + "cookie": "0.3.1", "cross-fetch": "0.0.8", - "deep-extend": "^0.5.1", - "encode-3986": "^1.0.0", - "fast-json-patch": "^2.0.6", + "deep-extend": "0.5.1", + "encode-3986": "1.0.0", + "fast-json-patch": "2.0.6", "isomorphic-form-data": "0.0.1", - "js-yaml": "^3.8.1", - "lodash": "^4.16.2", - "qs": "^6.3.0", - "querystring-browser": "^1.0.4", - "url": "^0.11.0", + "js-yaml": "3.12.0", + "lodash": "4.17.10", + "qs": "6.5.2", + "querystring-browser": "1.0.4", + "url": "0.11.0", "utf8-bytes": "0.0.1", - "utfstring": "^2.0.0" + "utfstring": "2.0.0" } }, "swagger-ui": { @@ -5433,57 +5531,57 @@ "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-3.17.1.tgz", "integrity": "sha1-XXwxckK4VvOO3c1f8sMKtO24jpQ=", "requires": { - "@braintree/sanitize-url": "^2.0.2", - "base64-js": "^1.2.0", + "@braintree/sanitize-url": "2.1.0", + "base64-js": "1.3.0", "brace": "0.7.0", - "classnames": "^2.2.5", - "commonmark": "^0.28.1", - "core-js": "^2.5.1", + "classnames": "2.2.6", + "commonmark": "0.28.1", + "core-js": "2.5.7", "css.escape": "1.5.1", "deep-extend": "0.5.1", - "dompurify": "^1.0.4", + "dompurify": "1.0.5", "expect": "1.20.2", - "getbase": "^2.8.2", - "ieee754": "^1.1.8", - "immutable": "^3.x.x", - "js-file-download": "^0.4.1", - "js-yaml": "^3.5.5", + "getbase": "2.8.2", + "ieee754": "1.1.12", + "immutable": "3.8.2", + "js-file-download": "0.4.1", + "js-yaml": "3.12.0", "lodash": "4.17.5", - "matcher": "^0.1.2", + "matcher": "0.1.2", "memoizee": "0.4.1", - "promise-worker": "^1.1.1", - "prop-types": "^15.5.10", - "react": "^15.6.2", - "react-addons-perf": "^15.4.0", + "promise-worker": "1.1.1", + "prop-types": "15.6.2", + "react": "15.6.2", + "react-addons-perf": "15.4.2", "react-addons-shallow-compare": "0.14.8", - "react-addons-test-utils": "^15.6.2", - "react-collapse": "^4.0.3", - "react-debounce-input": "^3.2.0", - "react-dom": "^15.6.2", - "react-height": "^2.0.0", + "react-addons-test-utils": "15.6.2", + "react-collapse": "4.0.3", + "react-debounce-input": "3.2.0", + "react-dom": "15.6.2", + "react-height": "2.2.1", "react-hot-loader": "1.3.1", "react-immutable-proptypes": "2.1.0", - "react-immutable-pure-component": "^1.1.1", - "react-markdown": "^2.5.0", - "react-motion": "^0.5.2", + "react-immutable-pure-component": "1.2.0", + "react-markdown": "2.5.1", + "react-motion": "0.5.2", "react-object-inspector": "0.2.1", - "react-redux": "^4.x.x", + "react-redux": "4.4.9", "react-split-pane": "0.1.70", - "redux": "^3.x.x", + "redux": "3.7.2", "redux-immutable": "3.0.8", - "redux-logger": "*", - "remarkable": "^1.7.1", + "redux-logger": "3.0.6", + "remarkable": "1.7.1", "reselect": "2.5.3", - "scroll-to-element": "^2.0.0", + "scroll-to-element": "2.0.0", "serialize-error": "2.0.0", "shallowequal": "0.2.2", - "swagger-client": "^3.8.5", - "url-parse": "^1.1.8", + "swagger-client": "3.8.6", + "url-parse": "1.4.1", "webpack-dev-server": "2.5.0", "whatwg-fetch": "0.11.1", - "worker-loader": "^0.7.1", + "worker-loader": "0.7.1", "xml": "1.0.1", - "xml-but-prettier": "^1.0.1", + "xml-but-prettier": "1.0.1", "yaml-js": "0.2.0", "zenscroll": "4.0.1" }, @@ -5511,12 +5609,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "^5.2.3", - "ajv-keywords": "^2.1.0", - "chalk": "^2.1.0", - "lodash": "^4.17.4", + "ajv": "5.5.2", + "ajv-keywords": "2.1.1", + "chalk": "2.4.1", + "lodash": "4.17.10", "slice-ansi": "1.0.0", - "string-width": "^2.1.1" + "string-width": "2.1.1" }, "dependencies": { "ansi-regex": { @@ -5531,7 +5629,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "^1.9.0" + "color-convert": "1.9.2" } }, "chalk": { @@ -5540,9 +5638,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.4.0" } }, "has-flag": { @@ -5563,8 +5661,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" } }, "strip-ansi": { @@ -5573,7 +5671,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "ansi-regex": "3.0.0" } }, "supports-color": { @@ -5582,7 +5680,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "has-flag": "3.0.0" } } } @@ -5603,7 +5701,7 @@ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "requires": { - "any-promise": "^1.0.0" + "any-promise": "1.3.0" } }, "through": { @@ -5629,8 +5727,8 @@ "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", "requires": { - "es5-ext": "~0.10.14", - "next-tick": "1" + "es5-ext": "0.10.45", + "next-tick": "1.0.0" } }, "tmatch": { @@ -5644,7 +5742,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "os-tmpdir": "1.0.2" } }, "to-array": { @@ -5657,7 +5755,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "^1.4.1" + "punycode": "1.4.1" }, "dependencies": { "punycode": { @@ -5683,7 +5781,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "^5.0.1" + "safe-buffer": "5.1.2" } }, "tweetnacl": { @@ -5698,7 +5796,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "~1.1.2" + "prelude-ls": "1.1.2" } }, "type-is": { @@ -5707,7 +5805,7 @@ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "~2.1.18" + "mime-types": "2.1.18" } }, "typedarray": { @@ -5760,8 +5858,8 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz", "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==", "requires": { - "querystringify": "^2.0.0", - "requires-port": "^1.0.0" + "querystringify": "2.0.0", + "requires-port": "1.0.0" } }, "utf8-bytes": { @@ -5808,8 +5906,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" + "spdx-correct": "3.0.0", + "spdx-expression-parse": "3.0.0" } }, "vary": { @@ -5822,9 +5920,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "^1.0.0", + "assert-plus": "1.0.0", "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "extsprintf": "1.3.0" } }, "w3c-blob": { @@ -5837,7 +5935,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "requires": { - "minimalistic-assert": "^1.0.0" + "minimalistic-assert": "1.0.1" } }, "webpack-dev-middleware": { @@ -5846,11 +5944,11 @@ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", "optional": true, "requires": { - "memory-fs": "~0.4.1", - "mime": "^1.5.0", - "path-is-absolute": "^1.0.0", - "range-parser": "^1.0.3", - "time-stamp": "^2.0.0" + "memory-fs": "0.4.1", + "mime": "1.6.0", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0", + "time-stamp": "2.0.0" }, "dependencies": { "mime": { @@ -5868,26 +5966,26 @@ "optional": true, "requires": { "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^1.6.0", - "compression": "^1.5.2", - "connect-history-api-fallback": "^1.3.0", - "del": "^3.0.0", - "express": "^4.13.3", - "html-entities": "^1.2.0", - "http-proxy-middleware": "~0.17.4", - "internal-ip": "^1.2.0", + "bonjour": "3.5.0", + "chokidar": "1.7.0", + "compression": "1.7.3", + "connect-history-api-fallback": "1.5.0", + "del": "3.0.0", + "express": "4.16.3", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.17.4", + "internal-ip": "1.2.0", "opn": "4.0.2", - "portfinder": "^1.0.9", - "selfsigned": "^1.9.1", - "serve-index": "^1.7.2", + "portfinder": "1.0.13", + "selfsigned": "1.10.3", + "serve-index": "1.9.1", "sockjs": "0.3.18", "sockjs-client": "1.1.2", - "spdy": "^3.4.1", - "strip-ansi": "^3.0.0", - "supports-color": "^3.1.1", - "webpack-dev-middleware": "^1.10.2", - "yargs": "^6.0.0" + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "3.2.3", + "webpack-dev-middleware": "1.12.2", + "yargs": "6.6.0" }, "dependencies": { "supports-color": { @@ -5896,7 +5994,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "optional": true, "requires": { - "has-flag": "^1.0.0" + "has-flag": "1.0.0" } } } @@ -5906,8 +6004,8 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": ">=0.4.0", - "websocket-extensions": ">=0.1.1" + "http-parser-js": "0.4.13", + "websocket-extensions": "0.1.3" } }, "websocket-extensions": { @@ -5926,7 +6024,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "^2.0.0" + "isexe": "2.0.0" } }, "which-module": { @@ -5940,12 +6038,12 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.3.tgz", "integrity": "sha512-GYKuysPz2pxYAVJD2NPsDLP5Z79SDEzPm9/j4tCjkF/n89iBNGBMJcR+dMUqxgPNgoSs6fVygPi+Vl2oxIpBuw==", "requires": { - "async": "~1.0.0", - "colors": "1.0.x", - "cycle": "1.0.x", - "eyes": "0.1.x", - "isstream": "0.1.x", - "stack-trace": "0.0.x" + "async": "1.0.0", + "colors": "1.0.3", + "cycle": "1.0.3", + "eyes": "0.1.8", + "isstream": "0.1.2", + "stack-trace": "0.0.10" }, "dependencies": { "async": { @@ -5966,7 +6064,7 @@ "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-0.7.1.tgz", "integrity": "sha1-kf/S4vv3aSGkPoyjdm0S6VN/XXA=", "requires": { - "loader-utils": "0.2.x" + "loader-utils": "0.2.17" } }, "wrap-ansi": { @@ -5975,8 +6073,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "optional": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "string-width": "1.0.2", + "strip-ansi": "3.0.1" } }, "wrappy": { @@ -5990,7 +6088,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "^0.5.1" + "mkdirp": "0.5.1" } }, "ws": { @@ -5998,9 +6096,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" + "async-limiter": "1.0.0", + "safe-buffer": "5.1.2", + "ultron": "1.1.1" } }, "x-xss-protection": { @@ -6018,7 +6116,7 @@ "resolved": "https://registry.npmjs.org/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz", "integrity": "sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM=", "requires": { - "repeat-string": "^1.5.2" + "repeat-string": "1.6.1" } }, "xmlhttprequest-ssl": { @@ -6054,19 +6152,19 @@ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "optional": true, "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^4.2.0" + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" }, "dependencies": { "camelcase": { @@ -6083,7 +6181,7 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "optional": true, "requires": { - "camelcase": "^3.0.0" + "camelcase": "3.0.0" }, "dependencies": { "camelcase": { diff --git a/service/package.json b/service/package.json index 68cd83e..86ab5a1 100644 --- a/service/package.json +++ b/service/package.json @@ -45,9 +45,13 @@ "elasticsearch": "^13.3.1", "emailjs": "^2.2.0", "express": "^4.15.5", + "feathers": "^2.2.4", + "feathers-configuration": "^0.4.2", "feathers-hooks-common": "^3.7.3", "feathers-mongodb": "^2.9.0", + "feathers-rest": "^1.8.1", "feathers-rethinkdb": "^0.4.3", + "feathers-socketio": "^2.0.1", "feathers-swagger": "^0.5.0", "fibers": "^2.0.0", "flowz-error-handler": "0.0.3", diff --git a/service/src/app.js b/service/src/app.js index 474e8f8..c6af535 100644 --- a/service/src/app.js +++ b/service/src/app.js @@ -5,13 +5,20 @@ const cors = require('cors'); const helmet = require('helmet'); const bodyParser = require('body-parser'); -const feathers = require('@feathersjs/feathers'); -const express = require('@feathersjs/express'); -const configuration = require('@feathersjs/configuration'); -const rest = require('@feathersjs/express/rest'); -const socketio = require('@feathersjs/socketio'); +const feathers = require('feathers'); +const configuration = require('feathers-configuration'); +const hooks = require('feathers-hooks'); +const rest = require('feathers-rest'); +const socketio = require('feathers-socketio'); -const handler = require('@feathersjs/express/errors'); +const handler = require('feathers-errors/handler'); +// const feathers = require('@feathersjs/feathers'); +// const express = require('@feathersjs/express'); +// const configuration = require('@feathersjs/configuration'); +// const rest = require('@feathersjs/express/rest'); +// const socketio = require('@feathersjs/socketio'); + +// const handler = require('@feathersjs/express/errors'); const notFound = require('feathers-errors/not-found'); const middleware = require('./middleware'); @@ -21,7 +28,8 @@ const appHooks = require('./app.hooks'); const rethinkdb = require('./rethinkdb'); const subscription = require('flowz-subscription'); -const app = express(feathers()); +const app = feathers(); +// const app = express(feathers()); // Load app configuration app.configure(configuration()); @@ -33,13 +41,16 @@ app.use(bodyParser.json({ limit: '100mb' })); app.use(bodyParser.urlencoded({ limit: '100mb', extended: true })); app.use(favicon(path.join(app.get('public'), 'favicon.ico'))); // Host the public folder -app.use('/', express.static(app.get('public'))); +app.use('/', feathers.static(app.get('public'))); +// app.use('/', express.static(app.get('public'))); app.use(function(req, res, next) { this.apiHeaders = req.headers ; next(); }); +// Set up Plugins and providers +app.configure(hooks()); app.configure(rethinkdb); app.configure(rest()); // app.configure(socketio()); diff --git a/service/src/services/email-receive/email-receive.service.js b/service/src/services/email-receive/email-receive.service.js index 15cc16c..e00ed33 100644 --- a/service/src/services/email-receive/email-receive.service.js +++ b/service/src/services/email-receive/email-receive.service.js @@ -1,19 +1,45 @@ // Initializes the `email-receive` service on path `/email-receive` +// const createService = require('./email-receive.class.js'); +// const hooks = require('./email-receive.hooks'); + +// module.exports = function (app) { +// // const app = this; +// const paginate = app.get('paginate'); + +// const options = { +// paginate, +// app +// }; + +// const serviceObj = createService(options); +// // Initialize our service with any options it requires +// app.use('/email-receive', serviceObj); + +// app.use('/email-receive/:finstanceId/:taskid', { +// find (data, params) { +// // do complex stuff here +// return serviceObj.updateStatus(data.route, params); +// } +// }); +// // Get our initialized service so that we can register hooks +// const service = app.service('email-receive'); + +// service.hooks(hooks); +// }; const createService = require('./email-receive.class.js'); const hooks = require('./email-receive.hooks'); -module.exports = function (app) { - +module.exports = function () { + const app = this; const paginate = app.get('paginate'); const options = { - paginate, - app + name: 'email-receive', + paginate }; - const serviceObj = createService(options); // Initialize our service with any options it requires - app.use('/email-receive', serviceObj); + app.use('/email-receive', createService(options)); app.use('/email-receive/:finstanceId/:taskid', { find (data, params) { @@ -21,8 +47,10 @@ module.exports = function (app) { return serviceObj.updateStatus(data.route, params); } }); - // Get our initialized service so that we can register hooks + + // Get our initialized service so that we can register hooks and filters const service = app.service('email-receive'); service.hooks(hooks); }; + From 1fce64ffdec581734f3d1bd4b2830177caf5f656 Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 23 Aug 2018 09:52:11 +0530 Subject: [PATCH 174/419] Remove roles table and remove console logs --- client/src/components/Schema.vue | 6 - client/src/components/SchemaForm.vue | 3 +- client/src/components/SchemaSubForm.vue | 1 - client/src/components/SchemaView.vue | 2 - client/src/components/subscription.vue | 3 - .../lib/provider/camunda/parts/AddRoles.js | 282 +++++++++--------- 6 files changed, 142 insertions(+), 155 deletions(-) diff --git a/client/src/components/Schema.vue b/client/src/components/Schema.vue index 5aa0791..efa7512 100644 --- a/client/src/components/Schema.vue +++ b/client/src/components/Schema.vue @@ -515,7 +515,6 @@ export default { } }, mounted () { - console.log('mounted Called') this.$store.state.editTemplate = undefined // console.log('------->>>', this.$store.state.viewTemplate) this.fetch(this.$route.params.id) @@ -581,7 +580,6 @@ export default { else { this.formSchema.entity[index].customtype = false } - console.log('defaultType', val) // alert(type) }, deleteViewTemplate(index) { @@ -730,7 +728,6 @@ export default { api.request('put', '/schema/' + this.formSchema._id, this.formSchema).then(response => { // this.toggleLoading() // this.$router.push(data.redirect) - console.log(response) this.$Message.success('success!') this.loading = false this.$router.push('/') @@ -844,7 +841,6 @@ export default { }, handleCloseMjmlClick (self) { // this.mjmlUpload.push(self) - console.log('hgys',self) this.isMjmlEditor = !this.isMjmlEditor }, savegriddata(index, template, isViewTemplate) { @@ -886,14 +882,12 @@ export default { let bucket = new AWS.S3({ params: { Bucket: 'airflowbucket1/obexpense/expenses' } }); var params = { Key: filename + ".html", ContentType: "html", Body: bodycontent}; let result = bucket.upload(params).on('httpUploadProgress', function (evt) { - console.log("Uploaded :: " + parseInt((evt.loaded * 100) / evt.total) + '%'); }).send(function (err, data) { if(err) { // return null; } else { let template = {'filename':filename, 'url':data.Location, 'usingGrapesManager':isUsingGridmanager}; self.savegriddata(index, template, isViewTemplate) - //console.log('after', templatearray) } }) }, diff --git a/client/src/components/SchemaForm.vue b/client/src/components/SchemaForm.vue index d25e2d5..9ea96b0 100644 --- a/client/src/components/SchemaForm.vue +++ b/client/src/components/SchemaForm.vue @@ -155,7 +155,6 @@ AWS.config.region = 'us-west-2' Body: files[i] } bucket.upload(params).on('httpUploadProgress', function (evt) { - console.log('Uploaded :: ' + parseInt((evt.loaded * 100) / evt.total) + '%') }).send(function (err, data) { if (err) { alert(err) @@ -217,7 +216,7 @@ AWS.config.region = 'us-west-2' // console.log('response', arrObj) }) .catch(error => { - console.log('Errorrr') + console.log('Error', error) }) return arrObj }, diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index f5dd654..de944de 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -118,7 +118,6 @@ export default { Body: files[i] } bucket.upload(params).on('httpUploadProgress', function (evt) { - console.log('Uploaded :: ' + parseInt((evt.loaded * 100) / evt.total) + '%') }).send(function (err, data) { if (err) { alert(err) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index ad56f03..51546c9 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -329,7 +329,6 @@ export default { }, methods: { emailService (item) { - console.log("item", item) this.isEmailDone = true this.handleSubmit('formSchemaInstance') }, @@ -420,7 +419,6 @@ export default { // const result = await Schema.getAll(id) // console.log('result', result) var response = await axios.get('https://api.flowzcluster.tk/eng/schema/' + id).catch(function (error) { console.log(error) }) - console.log('Cluster response: ', response) // this.formTitle = response.data.title // console.log('this.lastLog', JSON.stringify(this.lastLog)) // if (this.lastLog === undefined) { diff --git a/client/src/components/subscription.vue b/client/src/components/subscription.vue index e56125b..e99a622 100644 --- a/client/src/components/subscription.vue +++ b/client/src/components/subscription.vue @@ -21,7 +21,6 @@ } }, mounted () { - console.log('Value', this.value) this.subid = this.value this.init() }, @@ -32,7 +31,6 @@ authorization: this.token } }).then(res => { - // console.log('res', res.data.data) if (res.data.data.package) { this.packages = res.data.data.package } else { @@ -44,7 +42,6 @@ }) }, handleChange (value) { - console.log('child value', value) // this.value = value this.subid = value this.$emit('on-change', value) diff --git a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/AddRoles.js b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/AddRoles.js index e5875e0..2a07116 100644 --- a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/AddRoles.js +++ b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/AddRoles.js @@ -18,76 +18,76 @@ let nameProps = require('../../bpmn/parts/NameProps'); */ module.exports = function (group, element, translate, options) { // Get all roles - let arr_roles = ["flow"] - if(options.cdata){ - if(options.cdata.roles){ - let roles = options.cdata.roles.split(',') - for (let index = 0; index < roles.length; index++) { - arr_roles.push(roles[index]) - } - - // Get all process - let process = [] - for (let index = 0; index < options.cdata.json.processList.length; index++) { - if (options.cdata.json.processList[index].name != undefined) { - process.push({ name: options.cdata.json.processList[index].name, type: options.cdata.json.processList[index].type}) - } - } - //id : camunda-addRoles + // let arr_roles = ["flow"] + // if(options.cdata){ + // if(options.cdata.roles){ + // let roles = options.cdata.roles.split(',') + // for (let index = 0; index < roles.length; index++) { + // arr_roles.push(roles[index]) + // } + + // // Get all process + // let process = [] + // for (let index = 0; index < options.cdata.json.processList.length; index++) { + // if (options.cdata.json.processList[index].name != undefined) { + // process.push({ name: options.cdata.json.processList[index].name, type: options.cdata.json.processList[index].type}) + // } + // } + // //id : camunda-addRoles - setTimeout(() => { - let x = document.getElementById('camunda-addRoles') - var t = document.createTextNode("This is a paragraph."); // Create a text node - - let tab1 = null - tab1 = document.getElementsByClassName('tab1') - - if(tab1.length == 0){ - var div1 = document.createElement('div'); - var para1 = document.createElement('p'); - var table1 = document.createElement('table'); - table1.setAttribute('id', 'tab1'); - para1.appendChild(table1); - div1.appendChild(para1); - document.body.appendChild(div1); - var p1 = ``; - var d = new Date(); - - for (var i = 0; i < arr_roles.length; i++) { - p1 += `` + arr_roles[i] + `` - } - - for (var i = 0; i < process.length; i++) { - if(process[i].type !== 'start' || process[i].type !== 'endevent' || process[i].type !== 'intermediatethrowevent'){ - p1 += `` + process[i].name - for (var j = 1; j < arr_roles.length; j++) { - p1 += ` R:
    W: ` - } - p1 += `` - } - } + // setTimeout(() => { + // let x = document.getElementById('camunda-addRoles') + // var t = document.createTextNode("This is a paragraph."); // Create a text node + + // let tab1 = null + // tab1 = document.getElementsByClassName('tab1') + + // if(tab1.length == 0){ + // var div1 = document.createElement('div'); + // var para1 = document.createElement('p'); + // var table1 = document.createElement('table'); + // table1.setAttribute('id', 'tab1'); + // para1.appendChild(table1); + // div1.appendChild(para1); + // document.body.appendChild(div1); + // var p1 = ``; + // var d = new Date(); + + // for (var i = 0; i < arr_roles.length; i++) { + // p1 += `` + arr_roles[i] + `` + // } + + // for (var i = 0; i < process.length; i++) { + // if(process[i].type !== 'start' || process[i].type !== 'endevent' || process[i].type !== 'intermediatethrowevent'){ + // p1 += `` + process[i].name + // for (var j = 1; j < arr_roles.length; j++) { + // p1 += ` R:
    W: ` + // } + // p1 += `` + // } + // } - $("" + p1 + "

    " + "").insertAfter(x); + // $("" + p1 + "

    " + "").insertAfter(x); - $("#tab1").css({"border": "1px solid blue","border - collapse": "collapse"}); - $("th").css({ "border": "1px solid blue", "padding": "5px"}); - $("td").css({ "border": "1px solid blue", "padding": "5px", "text - align": "center"}); - } + // $("#tab1").css({"border": "1px solid blue","border - collapse": "collapse"}); + // $("th").css({ "border": "1px solid blue", "padding": "5px"}); + // $("td").css({ "border": "1px solid blue", "padding": "5px", "text - align": "center"}); + // } - // let obj_save = { - // "roles" : arr_roles, - // "process" : process, - // "permission" : { - // //array store permission - // } - // } - // } - // x.appendChild(t); - }, 1000); + // // let obj_save = { + // // "roles" : arr_roles, + // // "process" : process, + // // "permission" : { + // // //array store permission + // // } + // // } + // // } + // // x.appendChild(t); + // }, 1000); var bo = getBusinessObject(element); @@ -103,95 +103,95 @@ module.exports = function (group, element, translate, options) { }); group.entries.push(versionTagEntry); } - } else { - - // let roles = options.cdata.roles.split(',') - // for (let index = 0; index < roles.length; index++) { - // arr_roles.push(roles[index]) - // } - - // Get all process - let process = [] - for (let index = 0; index < options.cdata.json.processList.length; index++) { - if (options.cdata.json.processList[index].name != undefined) { - process.push({ name: options.cdata.json.processList[index].name, type: options.cdata.json.processList[index].type}) - } - } - - //id : camunda-addRoles + // } else { + + // // let roles = options.cdata.roles.split(',') + // // for (let index = 0; index < roles.length; index++) { + // // arr_roles.push(roles[index]) + // // } + + // // Get all process + // let process = [] + // for (let index = 0; index < options.cdata.json.processList.length; index++) { + // if (options.cdata.json.processList[index].name != undefined) { + // process.push({ name: options.cdata.json.processList[index].name, type: options.cdata.json.processList[index].type}) + // } + // } + + // //id : camunda-addRoles - setTimeout(() => { - let x = document.getElementById('camunda-addRoles') - var t = document.createTextNode("This is a paragraph."); // Create a text node - - let tab1 = null - tab1 = document.getElementsByClassName('tab1') - - if(tab1.length == 0){ - var div1 = document.createElement('div'); - var para1 = document.createElement('p'); - var table1 = document.createElement('table'); - table1.setAttribute('id', 'tab1'); - para1.appendChild(table1); - div1.appendChild(para1); - document.body.appendChild(div1); - var p1 = ``; - var d = new Date(); - - for (var i = 0; i < arr_roles.length; i++) { - p1 += `` + arr_roles[i] + `` - } - - for (var i = 0; i < process.length; i++) { - if(process[i].type !== 'start' || process[i].type !== 'endevent' || process[i].type !== 'intermediatethrowevent'){ - p1 += `` + process[i].name - for (var j = 1; j < arr_roles.length; j++) { - p1 += ` R:
    W: ` - } - p1 += `` - } - } + // setTimeout(() => { + // let x = document.getElementById('camunda-addRoles') + // var t = document.createTextNode("This is a paragraph."); // Create a text node + + // let tab1 = null + // tab1 = document.getElementsByClassName('tab1') + + // if(tab1.length == 0){ + // var div1 = document.createElement('div'); + // var para1 = document.createElement('p'); + // var table1 = document.createElement('table'); + // table1.setAttribute('id', 'tab1'); + // para1.appendChild(table1); + // div1.appendChild(para1); + // document.body.appendChild(div1); + // var p1 = ``; + // var d = new Date(); + + // for (var i = 0; i < arr_roles.length; i++) { + // p1 += `` + arr_roles[i] + `` + // } + + // for (var i = 0; i < process.length; i++) { + // if(process[i].type !== 'start' || process[i].type !== 'endevent' || process[i].type !== 'intermediatethrowevent'){ + // p1 += `` + process[i].name + // for (var j = 1; j < arr_roles.length; j++) { + // p1 += ` R:
    W: ` + // } + // p1 += `` + // } + // } - $("" + p1 + "

    " + "").insertAfter(x); + // $("" + p1 + "

    " + "").insertAfter(x); - $("#tab1").css({"border": "1px solid blue","border - collapse": "collapse"}); - $("th").css({ "border": "1px solid blue", "padding": "5px"}); - $("td").css({ "border": "1px solid blue", "padding": "5px", "text - align": "center"}); - } + // $("#tab1").css({"border": "1px solid blue","border - collapse": "collapse"}); + // $("th").css({ "border": "1px solid blue", "padding": "5px"}); + // $("td").css({ "border": "1px solid blue", "padding": "5px", "text - align": "center"}); + // } - // let obj_save = { - // "roles" : arr_roles, - // "process" : process, - // "permission" : { - // //array store permission - // } - // } - // } - // x.appendChild(t); - }, 1000); + // // let obj_save = { + // // "roles" : arr_roles, + // // "process" : process, + // // "permission" : { + // // //array store permission + // // } + // // } + // // } + // // x.appendChild(t); + // }, 1000); - var bo = getBusinessObject(element); - if (!bo) { - return; - } - - if (is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && bo.get('processRef')) { - var versionTagEntry = entryFactory.textField({ - id: 'addRoles', - label: translate('Add Roles'), - modelProperty: 'addedRoles' - }); - group.entries.push(versionTagEntry); - } - } - } else { - - } + // var bo = getBusinessObject(element); + // if (!bo) { + // return; + // } + + // if (is(element, 'bpmn:Process') || is(element, 'bpmn:Participant') && bo.get('processRef')) { + // var versionTagEntry = entryFactory.textField({ + // id: 'addRoles', + // label: translate('Add Roles'), + // modelProperty: 'addedRoles' + // }); + // group.entries.push(versionTagEntry); + // } + // } + // } else { + + // } }; From d3fc64cb8080197db0bb44277f94e1d0457285b0 Mon Sep 17 00:00:00 2001 From: chirag Date: Thu, 23 Aug 2018 10:33:04 +0530 Subject: [PATCH 175/419] email-receive-issue-resolve --- .../src/services/email-receive/email-receive.service.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/service/src/services/email-receive/email-receive.service.js b/service/src/services/email-receive/email-receive.service.js index e00ed33..a0f2649 100644 --- a/service/src/services/email-receive/email-receive.service.js +++ b/service/src/services/email-receive/email-receive.service.js @@ -35,16 +35,18 @@ module.exports = function () { const options = { name: 'email-receive', - paginate + paginate, + app }; + const serviceObj = createService(options); // Initialize our service with any options it requires app.use('/email-receive', createService(options)); app.use('/email-receive/:finstanceId/:taskid', { find (data, params) { // do complex stuff here - return serviceObj.updateStatus(data.route, params); + return serviceObj.updateStatus(data, params); } }); @@ -53,4 +55,3 @@ module.exports = function () { service.hooks(hooks); }; - From 5700afecad19cc5f85e66f5a0534baa8a7118f12 Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 23 Aug 2018 10:33:59 +0530 Subject: [PATCH 176/419] remove console logs --- client/build/build.js | 6 - client/build/check-versions.js | 5 - client/build/dev-server.js | 2 - client/pluginWatcher/bpmnpluginwatcher.js | 13 -- client/src/api/approvalrole/index.js | 1 - client/src/api/flowzdata/index.js | 1 - client/src/api/index.js | 1 - client/src/area/Dashboard.vue | 1 - client/src/assets/js/deepstream/deepRecord.js | 3 - client/src/assets/js/deepstream/recordRun.js | 2 - .../src/assets/js/deepstream/recordStart.js | 3 - .../contextPad/CustomContextPadProvider.js | 1 - client/src/components/GrapesComponent.vue | 5 +- client/src/components/ListInstances.vue | 19 +- client/src/components/MjmlEditor.vue | 2 - client/src/components/Schema.vue | 10 - client/src/components/SchemaForm.vue | 10 - client/src/components/SchemaInstance.vue | 15 -- client/src/components/SchemaSubForm.vue | 13 -- client/src/components/SchemaTemplate.vue | 1 - client/src/components/SchemaView.vue | 115 ----------- client/src/components/Tab.vue | 1 - client/src/components/email.vue | 2 - client/src/components/erow_instancelist.vue | 3 - client/src/components/gridmanager.vue | 1 - client/src/config/index.js | 4 - client/src/layout/Header.vue | 1 - client/src/layout/Master.vue | 2 - client/src/layout/SideBar.vue | 11 - client/src/layout/user/Master.vue | 1 - client/src/main.js | 4 - client/src/masterLayout/SideBar.vue | 4 - client/src/pages/EmailVerification.vue | 2 - client/src/pages/Login.vue | 3 - client/src/pages/approval/FormReply.vue | 5 - client/src/pages/approval/List.vue | 1 - client/src/pages/approval/MailReply.vue | 5 - client/src/pages/dbSettings/New.vue | 1 - client/src/pages/flow/List.vue | 44 ---- client/src/pages/flow/New.vue | 10 - client/src/pages/flow/analytics.vue | 2 - .../flow/assigned_invite_table-expand.vue | 1 - client/src/pages/flow/instance/New.vue | 7 - .../pages/flow/instance/formdata-expand.vue | 1 - client/src/pages/flow/permissions.vue | 14 -- client/src/pages/flow/systemLog.vue | 6 - client/src/pages/schema/New.vue | 3 - client/src/pages/schema/expandInstance.vue | 6 - client/src/pages/schema/mapping/List.vue | 1 - client/src/pages/user/SchemaList.vue | 5 - client/src/pages/user/UserConfig.vue | 1 - .../lib/provider/camunda/parts/AddRoles.js | 189 ++---------------- .../lib/provider/camunda/parts/MySMTPProps.js | 7 +- client/static/bpmnpluginwatcher.js | 2 - 54 files changed, 16 insertions(+), 563 deletions(-) diff --git a/client/build/build.js b/client/build/build.js index 6b8add1..854263f 100644 --- a/client/build/build.js +++ b/client/build/build.js @@ -25,11 +25,5 @@ rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { chunks: false, chunkModules: false }) + '\n\n') - - console.log(chalk.cyan(' Build complete.\n')) - console.log(chalk.yellow( - ' Tip: built files are meant to be served over an HTTP server.\n' + - ' Opening index.html over file:// won\'t work.\n' - )) }) }) diff --git a/client/build/check-versions.js b/client/build/check-versions.js index 100f3a0..df01d19 100644 --- a/client/build/check-versions.js +++ b/client/build/check-versions.js @@ -35,14 +35,9 @@ module.exports = function () { } if (warnings.length) { - console.log('') - console.log(chalk.yellow('To use this template, you must update following to modules:')) - console.log() for (var i = 0; i < warnings.length; i++) { var warning = warnings[i] - console.log(' ' + warning) } - console.log() process.exit(1) } } diff --git a/client/build/dev-server.js b/client/build/dev-server.js index 8541fbe..213baa8 100644 --- a/client/build/dev-server.js +++ b/client/build/dev-server.js @@ -75,9 +75,7 @@ var readyPromise = new Promise(resolve => { _resolve = resolve }) -console.log('> Starting dev server...') devMiddleware.waitUntilValid(() => { - console.log('> Listening at ' + uri + '\n') // when env is testing, don't need open it if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { opn(uri) diff --git a/client/pluginWatcher/bpmnpluginwatcher.js b/client/pluginWatcher/bpmnpluginwatcher.js index c259cd2..e54cfaa 100644 --- a/client/pluginWatcher/bpmnpluginwatcher.js +++ b/client/pluginWatcher/bpmnpluginwatcher.js @@ -5,42 +5,31 @@ var fs = require('fs'); var spath = require('path'); var chokidar = require('chokidar'); var config = require('./config') -console.log('Connected............to plugin Watcher.') chokidar.watch(spath.join(__dirname, config.watcherPath), { ignored: /(^|[\/\\])\../ }).on('addDir', async(function(path12) { - console.log('Dirrr', path12, 'has been addedd..'); if (path12 == spath.join(__dirname, config.watcherPath)) {} else { // var data = require(path12) - console.log('path', spath.join(path12 + '/index.json')) let result = new Promise((resolve, reject) => { fs.readFile(spath.join(path12 + '/index.json'), function(err, data) { if (err) return console.log(err); - console.log('data', JSON.parse(data)) resolve(JSON.parse(data)); }); }); var data = Promise.resolve(result).then(async function(dbdata) { - // console.log('result', JSON.parse(dbdata)) - // console.log('>>>>>>>>>>>>>>>>>>>>>>>', data) var res = await (checkData(dbdata)) // var d = await (savePlugin(data)) // var r = Promise.resolve(d) - console.log('33 :::::::::::::: ', res) return dbdata }); } })) var checkData = async(function(_data) { - console.log('111 """"""""""""""""""""', _data) var s = await (axios.get(config.serverURI + '/bpmnplugins')) - // console.log('222 /////////// SSSSSSSSSSSSSSS ////////', s.data.id) var flag = false; for (let i = 0; i < s.data.data.length; i++) { - // console.log('type ===== ',) if (_data.pluginType == s.data.data[i]['pluginType']) { flag = true; } } - // console.log('flag === ', flag) if (!flag) { var res = await (savePlugin(_data)) return res @@ -50,8 +39,6 @@ var checkData = async(function(_data) { // return s.data }) var savePlugin = async(function(data) { - console.log('Data', data) var s = await (axios.post(config.serverURI + '/bpmnplugins', data)) - // console.log('222 /////////// SSSSSSSSSSSSSSS ////////', s.data.id) return s.data.id }) \ No newline at end of file diff --git a/client/src/api/approvalrole/index.js b/client/src/api/approvalrole/index.js index e986591..f2e17da 100644 --- a/client/src/api/approvalrole/index.js +++ b/client/src/api/approvalrole/index.js @@ -13,7 +13,6 @@ export default { } else { return axios.get(config.approvalRoleURI + 'userslist/' + roleName) .then(response => { - console.log(':::', response.data.data.roles) return response.data.data.roles }) .catch(error => { diff --git a/client/src/api/flowzdata/index.js b/client/src/api/flowzdata/index.js index 03a4e10..92bd013 100644 --- a/client/src/api/flowzdata/index.js +++ b/client/src/api/flowzdata/index.js @@ -2,7 +2,6 @@ import api from '../../api' let model = 'flowzdata' export default { get: (id = null, params = null, headers = null) => { - // console.log('headers', headers) if (id === null) { return api.request('get', '/' + model, null, params, headers).then(response => { return response.data diff --git a/client/src/api/index.js b/client/src/api/index.js index 6c35889..401532a 100644 --- a/client/src/api/index.js +++ b/client/src/api/index.js @@ -31,7 +31,6 @@ export default { } var url = config.serverURI + uri - // console.log('Final header ==> ', headers) return axios({ method, url, data, params, headers }) } } diff --git a/client/src/area/Dashboard.vue b/client/src/area/Dashboard.vue index a185a86..cbe4dd5 100644 --- a/client/src/area/Dashboard.vue +++ b/client/src/area/Dashboard.vue @@ -69,7 +69,6 @@ export default { this.$refs[name].resetFields() }, handleAdd (name) { - // console.log('this.$refs[name]', this.$refs[name]) this.$refs[name].validate((valid) => { // alert(valid) if (valid) { diff --git a/client/src/assets/js/deepstream/deepRecord.js b/client/src/assets/js/deepstream/deepRecord.js index d7dd373..dbfd3b4 100644 --- a/client/src/assets/js/deepstream/deepRecord.js +++ b/client/src/assets/js/deepstream/deepRecord.js @@ -17,11 +17,9 @@ export const deepRecord = { let recordObj = dpClient.record.getRecord(id) recordObj.whenReady((record) => { record.set(payload) - console.log('=====recordId:', id) resolve({recordId: id, recordObj: record}) }) } catch (err) { - console.log(err) reject(err) } }) @@ -142,7 +140,6 @@ export const deepRecord = { let stageListObj = dpClient.record.getList(stageListName) stageListObj.addEntry(returnObj.recordId) await this.setNextStage(dpClient, instanceRecordId, returnObj.recordId) - console.log('Completed') resolve({stageListName, stageListObj, recordId: returnObj.recordId, recordObj: returnObj.recordObj}) }) } diff --git a/client/src/assets/js/deepstream/recordRun.js b/client/src/assets/js/deepstream/recordRun.js index dbd3832..bab313b 100644 --- a/client/src/assets/js/deepstream/recordRun.js +++ b/client/src/assets/js/deepstream/recordRun.js @@ -5,7 +5,6 @@ const DeepRecord = require('./deepRecord') let id = 0 async function startFlow () { - console.log('======Id ', id++) let instanceId = '39c53741-ec14-4ceb-a9db-97d7066cd424' let instanceRecordId = '39c53741_ec14_4ceb_a9db_97d7066cd424/jkkuymzw-2pe2i4djunm' let payload = { @@ -15,7 +14,6 @@ async function startFlow () { } // ==================Flow initiated============================== let instanceObj = await DeepRecord.instanceStageSubmit(client, instanceRecordId, payload) - console.log('=====recordId===', instanceObj.recordId) // // ==================OrderEntry============================== // let StageName = 'OrderEntry' // payload = { diff --git a/client/src/assets/js/deepstream/recordStart.js b/client/src/assets/js/deepstream/recordStart.js index eddf167..3e60b2a 100644 --- a/client/src/assets/js/deepstream/recordStart.js +++ b/client/src/assets/js/deepstream/recordStart.js @@ -5,14 +5,11 @@ const DeepRecord = require('./deepRecord') let id = 0 async function startFlow () { - console.log('======Id ', id++) let instanceId = '39c53741-ec14-4ceb-a9db-97d7066cd424' // ==================Flow initiated============================== let instanceObj = await DeepRecord.startInstance(client, instanceId) instanceObj.recordObj.subscribe((data) => { - console.log('instance Record changed: ', data) }) - console.log('=====recordId===', instanceObj.recordId) // // ==================OrderEntry============================== // let StageName = 'OrderEntry' // payload = { diff --git a/client/src/bpmn-custom-module/contextPad/CustomContextPadProvider.js b/client/src/bpmn-custom-module/contextPad/CustomContextPadProvider.js index 1821f11..5168c82 100644 --- a/client/src/bpmn-custom-module/contextPad/CustomContextPadProvider.js +++ b/client/src/bpmn-custom-module/contextPad/CustomContextPadProvider.js @@ -91,7 +91,6 @@ CustomContextPadProvider.prototype.getContextPadEntries = function (element) { // if (popupMenu._providers['bpmn-replace']) { // replaceMenu = popupMenu.create('bpmn-replace', element) // } - // console.log('element', element) // if (is(element, 'camunda:Custom')) { if ((element.type).match(/flowz:/gi)) { assign(actions, { diff --git a/client/src/components/GrapesComponent.vue b/client/src/components/GrapesComponent.vue index 688c09f..128ea50 100644 --- a/client/src/components/GrapesComponent.vue +++ b/client/src/components/GrapesComponent.vue @@ -538,7 +538,6 @@ export default { // var end = ' + \ No newline at end of file From 923fe31b3f5e42cbed36f3476954efedf5d10d2d Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 23 Aug 2018 12:31:51 +0530 Subject: [PATCH 180/419] instanceID undefined error resolve --- service/src/services/flowzdata/flowzdata.hooks.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/service/src/services/flowzdata/flowzdata.hooks.js b/service/src/services/flowzdata/flowzdata.hooks.js index ef0c3c8..dfded1e 100644 --- a/service/src/services/flowzdata/flowzdata.hooks.js +++ b/service/src/services/flowzdata/flowzdata.hooks.js @@ -38,7 +38,6 @@ module.exports = { }; function beforeCreate (hook) { - console.log('here1') hook.data.createdAt = new Date().toISOString(); hook.params.isdone = true; if (hook.data.hasOwnProperty('nextTarget')) { @@ -48,10 +47,7 @@ function beforeCreate (hook) { } function afterCreate (hook) { - console.log('here') - // console.log('_________________________', hook.result.id) if (hook.params.hasOwnProperty('isdone') && hook.params.isdone) { - // console.log('------', hook.result.id, '------'); hook.params.query = {}; hook.params.query.$select = ['json']; const query = Object.assign({}, hook.params.query); From 4c5acee64b9f169700d4eedbc4a093c68015f2b8 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Thu, 23 Aug 2018 12:37:41 +0530 Subject: [PATCH 181/419] Removed consolelogs --- client/src/components/SchemaView.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 7e6011f..837dc91 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -990,7 +990,6 @@ export default { await flowzModel.get(this.$route.params.id, { $select: ['json'] }).then(async res => { - console.log('res: ', res) this.flowzData = res.data // if (this.$route.params.stateid) { // let m = _.find(this.flowzData.json.processList, {id: this.$route.params.stateid}) From 685a253f10de9600e3fba7b7d02ffac063ed25c0 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Thu, 23 Aug 2018 12:39:42 +0530 Subject: [PATCH 182/419] Removed logs --- client/src/components/SchemaView.vue | 3 --- 1 file changed, 3 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 844e1d5..3e9a360 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -894,7 +894,6 @@ export default { // } // } await finstanceModal.get(null, query).then(async resp => { - console.log('>>>>>>>>>>>', resp) if (resp.data.length === 0) { this.itsFirstState = true this.$Spin.hide() @@ -902,12 +901,10 @@ export default { this.itsFirstState = false this.instanceEntries = resp.data for ( let i = 0; i < this.instanceEntries.length; i++) { - console.log('this.instanceEntries[i]: ', this.instanceEntries[i]) this.instanceEntries[i]['lastData'] = await this.getFData(this.instanceEntries[i].stageReference) this.instanceEntries[i].lastData['id'] = this.instanceEntries[i].id } this.dataData = _.map(this.instanceEntries, (o) => { return o.lastData }) - console.log('###########: ', this.dataData) this.$Spin.hide() } }).catch(err => { From 3b0228cbf9db80782e106955a51c93f78bdfae89 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Thu, 23 Aug 2018 12:40:44 +0530 Subject: [PATCH 183/419] removed consoles from schema list --- client/src/pages/user/SchemaList.vue | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index 89a25e7..bbf8e18 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -171,10 +171,10 @@ // currentState: currentState } // console.log('_____________values', item) - console.log('this.instanceEntries[indexFind].stageReference.length: ', this.instanceEntries[indexFind].stageReference.length) + // console.log('this.instanceEntries[indexFind].stageReference.length: ', this.instanceEntries[indexFind].stageReference.length) if (this.instanceEntries[indexFind].stageReference.length > 0) { let lastObj = this.instanceEntries[indexFind].stageReference[this.instanceEntries[indexFind].stageReference.length - 1] - console.log('last obj: ', lastObj) + // console.log('last obj: ', lastObj) await flowzdataModal.get(lastObj.stageRecordId).then(res => { values.formData = res.data.data this.$Spin.hide() @@ -183,7 +183,7 @@ console.log(err) }) } - console.log('Values emitted: ', values) + // console.log('Values emitted: ', values) await this.$emit('setValues', values) } } From f755b82e34e682f86d5c5396e03958dc44a339ea Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 23 Aug 2018 13:54:02 +0530 Subject: [PATCH 184/419] Footer change --- service/package-lock.json | 2354 ++++++++++++++++++++++--------------- 1 file changed, 1413 insertions(+), 941 deletions(-) diff --git a/service/package-lock.json b/service/package-lock.json index 45d652b..b5e7f45 100644 --- a/service/package-lock.json +++ b/service/package-lock.json @@ -19,8 +19,8 @@ "resolved": "https://registry.npmjs.org/@feathersjs/configuration/-/configuration-2.0.0.tgz", "integrity": "sha512-ZaByFEu2FC2IrTf1QL4AbFhKlR657GKWkOEUOgNs2Te1MeAA+wskL4uXvmRuELQvdSjk/FoNdJxI8MXFIo5Umw==", "requires": { - "config": "2.0.1", - "debug": "3.1.0" + "config": "^2.0.0", + "debug": "^3.1.0" }, "dependencies": { "config": { @@ -28,7 +28,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-2.0.1.tgz", "integrity": "sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==", "requires": { - "json5": "1.0.1" + "json5": "^1.0.1" } }, "json5": { @@ -36,15 +36,16 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } } } }, "@feathersjs/errors": { "version": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", + "from": "github:feathersjs/errors", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "@feathersjs/express": { @@ -52,17 +53,18 @@ "resolved": "https://registry.npmjs.org/@feathersjs/express/-/express-1.2.3.tgz", "integrity": "sha512-DXKeQoCG0iro5qEASyun/zPsx7gilWXCmKrFAcupk0yXruoOw1CHdtuyAo8nx+1Emw5lUi8i48Xj0MfuGeUi3g==", "requires": { - "@feathersjs/commons": "1.4.4", - "@feathersjs/errors": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", - "debug": "3.1.0", - "express": "4.16.3", - "uberproto": "2.0.4" + "@feathersjs/commons": "^1.4.0", + "@feathersjs/errors": "^3.0.0", + "debug": "^3.1.0", + "express": "^4.16.2", + "uberproto": "^2.0.0" }, "dependencies": { "@feathersjs/errors": { - "version": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", + "version": "3.3.0", + "resolved": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "uberproto": { @@ -77,10 +79,10 @@ "resolved": "https://registry.npmjs.org/@feathersjs/feathers/-/feathers-3.1.7.tgz", "integrity": "sha512-4h8ymAw/yK0jnF9xFgeWi2zhj51VHoE94K3y65TLORN7KVUpHMlgaOtSLHNKEDCcFeordOpBGw/Z0Fq58i0+WA==", "requires": { - "@feathersjs/commons": "1.4.4", - "debug": "3.1.0", - "events": "3.0.0", - "uberproto": "2.0.4" + "@feathersjs/commons": "^1.4.1", + "debug": "^3.1.0", + "events": "^3.0.0", + "uberproto": "^2.0.2" }, "dependencies": { "uberproto": { @@ -95,10 +97,10 @@ "resolved": "https://registry.npmjs.org/@feathersjs/socketio/-/socketio-3.2.2.tgz", "integrity": "sha512-3m8pWaCNEQxE2DoAboeuRra1jCy7ARWHXIKljeXjIj7lL8iVNgOBV7qPlIgwWbmK65GpaPutZv8LtIFwNZCwZA==", "requires": { - "@feathersjs/transport-commons": "4.1.1", - "debug": "3.1.0", - "socket.io": "2.1.1", - "uberproto": "2.0.4" + "@feathersjs/transport-commons": "^4.0.0", + "debug": "^3.1.0", + "socket.io": "^2.1.0", + "uberproto": "^2.0.1" }, "dependencies": { "uberproto": { @@ -113,17 +115,18 @@ "resolved": "https://registry.npmjs.org/@feathersjs/transport-commons/-/transport-commons-4.1.1.tgz", "integrity": "sha512-9Zf3OuKAmG6dSPgdgmGRAjvqzD7cGj+KsDJUVbV+xcnP5yCSX2Y2BOIZvC9NvFugyke/dbRcnAE/SPSHOYCWXw==", "requires": { - "@feathersjs/commons": "1.4.4", - "@feathersjs/errors": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", - "debug": "3.1.0", - "lodash": "4.17.10", - "radix-router": "3.0.1" + "@feathersjs/commons": "^1.4.0", + "@feathersjs/errors": "^3.0.0", + "debug": "^3.1.0", + "lodash": "^4.17.10", + "radix-router": "^3.0.1" }, "dependencies": { "@feathersjs/errors": { - "version": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", + "version": "3.3.0", + "resolved": "github:feathersjs/errors#c89ecec6b8d0da20988c1caef9f013a2448fdd6d", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } } } @@ -148,7 +151,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.1.tgz", "integrity": "sha512-uZP8Fd4f7rwHKztnOhFJYEJsKXO7opmcyKk5P9vRC8UJAx3AiWaGFiLxDqPJqzO3n3IhF/v6rdscxadarEXnag==", "requires": { - "csstype": "2.5.5" + "csstype": "^2.2.0" } }, "@types/socket.io": { @@ -156,7 +159,7 @@ "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-1.4.37.tgz", "integrity": "sha512-GhDfR8U0KO+0khxfxgs/XodCw32vKRdt391h2G7JfZj3fegludA0cltsNaKoHncHjYq8xnNUhYoPpG9ytViC1g==", "requires": { - "@types/node": "10.7.1" + "@types/node": "*" } }, "accepts": { @@ -164,7 +167,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -180,7 +183,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -211,10 +214,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -260,8 +263,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -269,7 +272,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -277,7 +280,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -301,7 +304,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -335,7 +338,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert-plus": { @@ -348,7 +351,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.10" } }, "async-each": { @@ -366,9 +369,9 @@ "resolved": "https://registry.npmjs.org/asyncawait/-/asyncawait-1.0.7.tgz", "integrity": "sha512-jWRlXdzpj90/bbgA6cy4BbTHFEBk+RQpFQHiCuy9/rp0OB07pBYWVRWoT4Garf0fZRC/nzA6OhN5xC0wpoxKjw==", "requires": { - "bluebird": "3.5.1", - "fibers": "2.0.2", - "lodash": "4.17.10" + "bluebird": "^3.1.1", + "fibers": "^2.0.2", + "lodash": "^4.17.10" } }, "asynckit": { @@ -396,8 +399,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz", "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=", "requires": { - "follow-redirects": "1.5.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.3", + "is-buffer": "^1.1.5" } }, "babel-code-frame": { @@ -406,9 +409,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-polyfill": { @@ -416,9 +419,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -433,8 +436,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "backo2": { @@ -474,7 +477,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "better-assert": { @@ -500,7 +503,7 @@ "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=", "requires": { - "underscore": "1.4.4" + "underscore": "~1.4.4" }, "dependencies": { "underscore": { @@ -526,15 +529,15 @@ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "debug": { @@ -553,12 +556,12 @@ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "optional": true, "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" }, "dependencies": { "array-flatten": { @@ -587,7 +590,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -596,9 +599,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -622,8 +625,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-from": { @@ -659,7 +662,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -685,8 +688,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "optional": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "camelize": { @@ -704,11 +707,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "chardet": { @@ -722,14 +725,15 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "circular-json": { @@ -749,7 +753,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -764,9 +768,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "optional": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "co": { @@ -804,7 +808,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -813,7 +817,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "commonmark": { @@ -821,10 +825,10 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", "integrity": "sha1-Buq41SM4uDn6Gi11rwCF7tGxvq4=", "requires": { - "entities": "1.1.1", - "mdurl": "1.0.1", - "minimist": "1.2.0", - "string.prototype.repeat": "0.2.0" + "entities": "~ 1.1.1", + "mdurl": "~ 1.0.1", + "minimist": "~ 1.2.0", + "string.prototype.repeat": "^0.2.0" } }, "commonmark-react-renderer": { @@ -832,10 +836,10 @@ "resolved": "https://registry.npmjs.org/commonmark-react-renderer/-/commonmark-react-renderer-4.3.4.tgz", "integrity": "sha512-+/Rzo3sI37NR8LaVdkUiqBH3+CEW75hc86shwY4E9eEERg78VCy4rSkaP/p7OG5bTvosUMkvhn5d1ZJ5iyt/ag==", "requires": { - "lodash.assign": "4.2.0", - "lodash.isplainobject": "4.0.6", - "pascalcase": "0.1.1", - "xss-filters": "1.2.7" + "lodash.assign": "^4.2.0", + "lodash.isplainobject": "^4.0.6", + "pascalcase": "^0.1.1", + "xss-filters": "^1.2.6" } }, "component-bind": { @@ -848,7 +852,7 @@ "resolved": "https://registry.npmjs.org/component-clone/-/component-clone-0.2.2.tgz", "integrity": "sha1-x/WXmCKID62M+wliuikYbQYe4E8=", "requires": { - "component-type": "1.1.0" + "component-type": "*" } }, "component-emitter": { @@ -894,7 +898,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "requires": { - "mime-db": "1.36.0" + "mime-db": ">= 1.34.0 < 2" }, "dependencies": { "mime-db": { @@ -909,13 +913,13 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "bytes": "3.0.0", - "compressible": "2.0.14", + "compressible": "~2.0.14", "debug": "2.6.9", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.2", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "debug": { @@ -939,10 +943,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.1.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "config": { @@ -950,7 +954,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-2.0.1.tgz", "integrity": "sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==", "requires": { - "json5": "1.0.1" + "json5": "^1.0.1" } }, "connect-history-api-fallback": { @@ -999,8 +1003,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", "requires": { - "object-assign": "4.1.1", - "vary": "1.1.2" + "object-assign": "^4", + "vary": "^1" } }, "create-react-class": { @@ -1008,9 +1012,9 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "requires": { - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "cross-fetch": { @@ -1035,9 +1039,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto": { @@ -1055,8 +1059,8 @@ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", "requires": { - "hyphenate-style-name": "1.0.2", - "isobject": "3.0.1" + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -1082,7 +1086,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "optional": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "cycle": { @@ -1095,7 +1099,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "0.10.45" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -1103,7 +1107,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "dasherize": { @@ -1150,8 +1154,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.12" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "del": { @@ -1160,12 +1164,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "optional": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } }, "delayed-stream": { @@ -1207,8 +1211,8 @@ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "optional": true, "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-prefetch-control": { @@ -1222,7 +1226,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "optional": true, "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -1231,7 +1235,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dompurify": { @@ -1255,8 +1259,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -1269,12 +1273,12 @@ "resolved": "https://registry.npmjs.org/elasticsearch/-/elasticsearch-13.3.1.tgz", "integrity": "sha1-xTCuqa+xfqkcPQpW8fERukm8kjk=", "requires": { - "agentkeepalive": "2.2.0", - "chalk": "1.1.3", + "agentkeepalive": "^2.2.0", + "chalk": "^1.0.0", "lodash": "2.4.2", - "lodash.get": "4.4.2", - "lodash.isempty": "4.4.0", - "lodash.trimend": "4.5.1" + "lodash.get": "^4.4.2", + "lodash.isempty": "^4.4.0", + "lodash.trimend": "^4.5.1" }, "dependencies": { "lodash": { @@ -1289,8 +1293,8 @@ "resolved": "https://registry.npmjs.org/emailjs/-/emailjs-2.2.0.tgz", "integrity": "sha1-ulsj5KSwpFEPZS6HOxVOlAe2ygM=", "requires": { - "addressparser": "0.3.2", - "emailjs-mime-codec": "2.0.7" + "addressparser": "^0.3.2", + "emailjs-mime-codec": "^2.0.7" } }, "emailjs-base64": { @@ -1303,9 +1307,9 @@ "resolved": "https://registry.npmjs.org/emailjs-mime-codec/-/emailjs-mime-codec-2.0.7.tgz", "integrity": "sha512-Jeg3L2/39Bpi8bFfnVEPm1iGPSyYCrPmMkjhimmy9ao/PFtcXJaGcANQWvWciH+jUcOn5Pto+MMCYOI1h7pNxA==", "requires": { - "emailjs-base64": "1.1.4", - "ramda": "0.25.0", - "text-encoding": "0.6.4" + "emailjs-base64": "^1.1.4", + "ramda": "^0.25.0", + "text-encoding": "^0.6.4" } }, "emojis-list": { @@ -1328,7 +1332,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.23" + "iconv-lite": "~0.4.13" } }, "engine.io": { @@ -1336,12 +1340,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { @@ -1351,14 +1355,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -1368,10 +1372,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "entities": { @@ -1385,7 +1389,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "optional": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -1393,7 +1397,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -1401,11 +1405,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.3", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -1413,9 +1417,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -1423,9 +1427,9 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-iterator": { @@ -1433,9 +1437,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-promise": { @@ -1448,8 +1452,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -1457,10 +1461,10 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -1479,44 +1483,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -1531,7 +1535,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -1540,9 +1544,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -1557,7 +1561,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -1566,7 +1570,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1577,8 +1581,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -1593,8 +1597,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -1608,7 +1612,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -1617,7 +1621,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -1642,8 +1646,8 @@ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "eventemitter3": { @@ -1663,7 +1667,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "optional": true, "requires": { - "original": "1.0.1" + "original": ">=0.0.5" } }, "expand-brackets": { @@ -1671,7 +1675,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -1679,7 +1683,7 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "expect": { @@ -1687,13 +1691,13 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-1.20.2.tgz", "integrity": "sha1-1Fj+TFYAQDa64yMkFqP2Nh8E+WU=", "requires": { - "define-properties": "1.1.2", - "has": "1.0.3", - "is-equal": "1.5.5", - "is-regex": "1.0.4", - "object-inspect": "1.6.0", - "object-keys": "1.0.12", - "tmatch": "2.0.1" + "define-properties": "~1.1.2", + "has": "^1.0.1", + "is-equal": "^1.5.1", + "is-regex": "^1.0.3", + "object-inspect": "^1.1.0", + "object-keys": "^1.0.9", + "tmatch": "^2.0.1" } }, "expect-ct": { @@ -1706,36 +1710,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -1744,15 +1748,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "debug": { @@ -1797,7 +1801,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -1830,9 +1834,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -1840,7 +1844,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -1863,7 +1867,7 @@ "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.0.6.tgz", "integrity": "sha1-hv/4+GYjkaqBlyKGTWMuYD5u5gU=", "requires": { - "deep-equal": "1.0.1" + "deep-equal": "^1.0.1" } }, "fast-json-stable-stringify": { @@ -1883,7 +1887,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "optional": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fbjs": { @@ -1891,13 +1895,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.18" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" }, "dependencies": { "core-js": { @@ -1912,13 +1916,13 @@ "resolved": "https://registry.npmjs.org/feathers/-/feathers-2.2.4.tgz", "integrity": "sha512-9IYKbxRKoDuerLCkYmFkQuKOwyB2SMM1kSUswDzlE0AmdzDrcfocVYb87/BsQx2j6hFkdCVFYkXq3+YPSDMT3w==", "requires": { - "babel-runtime": "6.26.0", - "debug": "3.1.0", - "events": "1.1.1", - "express": "4.16.3", - "feathers-commons": "0.8.7", - "rubberduck": "1.1.1", - "uberproto": "1.2.0" + "babel-runtime": "^6.26.0", + "debug": "^3.1.0", + "events": "^1.1.1", + "express": "^4.16.1", + "feathers-commons": "^0.8.7", + "rubberduck": "^1.1.1", + "uberproto": "^1.2.0" }, "dependencies": { "events": { @@ -1938,8 +1942,8 @@ "resolved": "https://registry.npmjs.org/feathers-configuration/-/feathers-configuration-0.4.2.tgz", "integrity": "sha512-T+lqgSRGnYhB/+pedL4xkZ3z7SYGtsrlX9uImkyxMCLLKWOuGPkkqyT9sy09isOMU9I2MZpmJCzQxZ1y8f6TUA==", "requires": { - "config": "1.31.0", - "debug": "3.1.0" + "config": "^1.21.0", + "debug": "^3.0.1" }, "dependencies": { "config": { @@ -1947,7 +1951,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-1.31.0.tgz", "integrity": "sha512-Ep/l9Rd1J9IPueztJfpbOqVzuKHQh4ZODMNt9xqTYdBBNRXbV4oTu34kCkkfdRVcDq0ohtpaeXGgb+c0LQxFRA==", "requires": { - "json5": "1.0.1" + "json5": "^1.0.1" } } } @@ -1957,7 +1961,7 @@ "resolved": "https://registry.npmjs.org/feathers-errors/-/feathers-errors-2.9.2.tgz", "integrity": "sha512-qwIX97bNW7+1tWVG073+omUA0rCYKJtTtwuzTrrvfrtdr8J8Dk1Fy4iaV9Fa6/YBD5AZu0lsplPE0iu4u/d4GQ==", "requires": { - "debug": "3.1.0" + "debug": "^3.0.0" } }, "feathers-hooks": { @@ -1965,8 +1969,8 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-2.1.2.tgz", "integrity": "sha512-XQKhbo4d4TuXyco+tbHmKn5wo8QhdSNslJ/+zckNYfUzLmrN8L3uB4Utf0/ivcgwWxJtS1kVhEETBN4TDxuWFg==", "requires": { - "feathers-commons": "0.8.7", - "uberproto": "1.2.0" + "feathers-commons": "^0.8.6", + "uberproto": "^1.2.0" } }, "feathers-hooks-common": { @@ -1974,11 +1978,11 @@ "resolved": "https://registry.npmjs.org/feathers-hooks-common/-/feathers-hooks-common-3.10.0.tgz", "integrity": "sha512-xuyTH69e0bs9r7ntQJiayBy8uC47mbGXeAsO7nkMXLGn+nYhjuw6z/ekQywnY+DeqvRWAgmy+LC4SzieIjIUiw==", "requires": { - "ajv": "5.5.2", - "debug": "3.1.0", - "feathers-errors": "2.9.2", - "feathers-hooks": "2.1.2", - "traverse": "0.6.6" + "ajv": "^5.2.0", + "debug": "^3.0.0", + "feathers-errors": "^2.4.0", + "feathers-hooks": "^2.0.1", + "traverse": "^0.6.6" } }, "feathers-mongodb": { @@ -1986,12 +1990,12 @@ "resolved": "https://registry.npmjs.org/feathers-mongodb/-/feathers-mongodb-2.9.1.tgz", "integrity": "sha512-PpG0Xdo3/3yvGiE42aLUXYWmwF/TViaYFOkriuk0k1MaM4aztZO5tlmbQlvV03QH7VO6svaWJhZWRx5n9Uejqg==", "requires": { - "babel-polyfill": "6.26.0", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "feathers-query-filters": "2.1.2", - "lodash.omit": "4.5.0", - "uberproto": "1.2.0" + "babel-polyfill": "^6.7.4", + "feathers-commons": "^0.8.4", + "feathers-errors": "^2.0.1", + "feathers-query-filters": "^2.0.0", + "lodash.omit": "^4.3.0", + "uberproto": "^1.2.0" } }, "feathers-query-filters": { @@ -1999,7 +2003,7 @@ "resolved": "https://registry.npmjs.org/feathers-query-filters/-/feathers-query-filters-2.1.2.tgz", "integrity": "sha1-zbGCJNteGcwBQNUoEI4JCNXrBlQ=", "requires": { - "feathers-commons": "0.8.7" + "feathers-commons": "^0.8.0" } }, "feathers-rest": { @@ -2007,10 +2011,10 @@ "resolved": "https://registry.npmjs.org/feathers-rest/-/feathers-rest-1.8.1.tgz", "integrity": "sha512-FYVcBQLGocSdpjxEf+E/9Cb0QAX0S+biqRgB5KAGpoAF51cou9LV0WW1IwqwHzAT67KRyS4dT7fVCrE4kisM2w==", "requires": { - "debug": "3.1.0", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "qs": "6.5.2" + "debug": "^3.0.0", + "feathers-commons": "^0.8.0", + "feathers-errors": "^2.0.1", + "qs": "^6.4.0" } }, "feathers-rethinkdb": { @@ -2018,12 +2022,12 @@ "resolved": "https://registry.npmjs.org/feathers-rethinkdb/-/feathers-rethinkdb-0.4.3.tgz", "integrity": "sha1-GBpxVdgpvYsUJRRyYL8BywPcK6I=", "requires": { - "debug": "2.6.9", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "feathers-hooks": "1.8.1", - "feathers-query-filters": "2.1.2", - "uberproto": "1.2.0" + "debug": "^2.2.0", + "feathers-commons": "^0.8.4", + "feathers-errors": "^2.0.2", + "feathers-hooks": "^1.8.1", + "feathers-query-filters": "^2.0.0", + "uberproto": "^1.2.0" }, "dependencies": { "debug": { @@ -2039,9 +2043,9 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-1.8.1.tgz", "integrity": "sha1-y6DEbzCc1uNo+utJV6LeydfyiY8=", "requires": { - "feathers-commons": "0.8.7", - "feathers-hooks-common": "2.0.3", - "uberproto": "1.2.0" + "feathers-commons": "^0.8.6", + "feathers-hooks-common": "^2.0.3", + "uberproto": "^1.2.0" } }, "feathers-hooks-common": { @@ -2049,8 +2053,8 @@ "resolved": "https://registry.npmjs.org/feathers-hooks-common/-/feathers-hooks-common-2.0.3.tgz", "integrity": "sha1-6fEqvr28Fj8o1MtMhQlOKaokY10=", "requires": { - "debug": "2.6.9", - "feathers-errors": "2.9.2", + "debug": "^2.2.0", + "feathers-errors": "^2.4.0", "traverse": "0.6.6" } } @@ -2061,9 +2065,9 @@ "resolved": "https://registry.npmjs.org/feathers-socket-commons/-/feathers-socket-commons-2.4.0.tgz", "integrity": "sha1-Bi79V/mocWZEFFuZOl9ycJlp8eE=", "requires": { - "debug": "2.6.9", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2" + "debug": "^2.2.0", + "feathers-commons": "^0.8.0", + "feathers-errors": "^2.2.0" }, "dependencies": { "debug": { @@ -2081,11 +2085,11 @@ "resolved": "https://registry.npmjs.org/feathers-socketio/-/feathers-socketio-2.0.1.tgz", "integrity": "sha512-3ByXVr6UGyGN6TPRN+U5IhENYrSgeuADhbKWLG5cq2WvYH9h2N1l3cj7WBVsfRektUgVw/HkGNAoExy8yuknMA==", "requires": { - "@types/socket.io": "1.4.37", - "debug": "3.1.0", - "feathers-socket-commons": "2.4.0", - "socket.io": "2.1.1", - "uberproto": "1.2.0" + "@types/socket.io": "~1.4.27", + "debug": "^3.0.0", + "feathers-socket-commons": "^2.0.0", + "socket.io": "^2.0.1", + "uberproto": "^1.2.0" } }, "feathers-swagger": { @@ -2093,11 +2097,11 @@ "resolved": "https://registry.npmjs.org/feathers-swagger/-/feathers-swagger-0.5.1.tgz", "integrity": "sha512-2lv9nNTb5lIljQ3Dgy0IgUWTyrGT+pXFg7mYffKtETQtL0QzUvq4xjuhVfeAFUUdvXRjITUu0BQM303qiGYTDg==", "requires": { - "debug": "3.1.0", - "feathers-errors": "2.9.2", - "serve-static": "1.13.2", - "swagger-ui": "3.17.1", - "swagger-ui-dist": "3.17.1" + "debug": "^3.1.0", + "feathers-errors": "^2.5.0", + "serve-static": "^1.12.4", + "swagger-ui": "^3.2.0", + "swagger-ui-dist": "^3.2.0" } }, "fibers": { @@ -2111,7 +2115,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2120,8 +2124,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2134,11 +2138,11 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -2147,12 +2151,12 @@ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -2175,8 +2179,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "flat-cache": { @@ -2185,10 +2189,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" }, "dependencies": { "del": { @@ -2197,13 +2201,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, "globby": { @@ -2212,12 +2216,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -2233,8 +2237,8 @@ "resolved": "https://registry.npmjs.org/flowz-error-handler/-/flowz-error-handler-0.0.3.tgz", "integrity": "sha512-bc/qmTTAKUiTUP9sEtYnrv7CZZ+BIhdm88CKmAWhN1PeGbOoQNicIG+23Bg1G28pHrIoJ93z0NiGIk/CxQOZ2Q==", "requires": { - "feathers-errors": "2.9.2", - "jsonfile": "4.0.0" + "feathers-errors": "^2.9.2", + "jsonfile": "^4.0.0" }, "dependencies": { "jsonfile": { @@ -2242,7 +2246,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } } } @@ -2252,8 +2256,8 @@ "resolved": "https://registry.npmjs.org/flowz-subscription/-/flowz-subscription-0.2.5.tgz", "integrity": "sha512-jlep0ITwYy0C6K5c399s2SxT2VVM3wZ+8cWudMQeIXV2/PwDMtk9eM7lUofxSaJbChPdBvBSDpGRXaK12dFPbA==", "requires": { - "request": "2.88.0", - "request-promise": "4.2.2" + "request": "^2.83.0", + "request-promise": "^4.2.2" } }, "follow-redirects": { @@ -2261,7 +2265,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -2274,7 +2278,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -2292,9 +2296,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "forwarded": { @@ -2322,6 +2326,468 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2346,7 +2812,7 @@ "requires": { "is-node": "0.0.0", "jsonp": "0.0.4", - "phin": "2.9.0" + "phin": "^2.2.6" } }, "get-stdin": { @@ -2365,7 +2831,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -2373,12 +2839,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -2386,8 +2852,8 @@ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -2395,7 +2861,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -2410,11 +2876,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "optional": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -2458,8 +2924,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has": { @@ -2467,7 +2933,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -2475,7 +2941,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -2571,10 +3037,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "optional": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "hpkp": { @@ -2604,10 +3070,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "http-parser-js": { @@ -2621,9 +3087,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "optional": true, "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.5.0", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-middleware": { @@ -2632,10 +3098,10 @@ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "optional": true, "requires": { - "http-proxy": "1.17.0", - "is-glob": "3.1.0", - "lodash": "4.17.10", - "micromatch": "2.3.11" + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" }, "dependencies": { "is-extglob": { @@ -2650,7 +3116,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "optional": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -2660,9 +3126,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "hyphenate-style-name": { @@ -2675,7 +3141,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -2716,7 +3182,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "optional": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexof": { @@ -2729,8 +3195,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2743,8 +3209,8 @@ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=", "requires": { - "bowser": "1.9.3", - "css-in-js-utils": "2.0.1" + "bowser": "^1.7.3", + "css-in-js-utils": "^2.0.0" } }, "inquirer": { @@ -2753,20 +3219,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -2781,7 +3247,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -2790,9 +3256,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -2813,8 +3279,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -2823,7 +3289,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -2832,7 +3298,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -2843,7 +3309,7 @@ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "optional": true, "requires": { - "meow": "3.7.0" + "meow": "^3.3.0" } }, "invariant": { @@ -2851,7 +3317,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -2881,7 +3347,7 @@ "resolved": "https://registry.npmjs.org/is-arrow-function/-/is-arrow-function-2.0.3.tgz", "integrity": "sha1-Kb4sLY2UUIUri7r7Y1unuNjofsI=", "requires": { - "is-callable": "1.1.3" + "is-callable": "^1.0.4" } }, "is-binary-path": { @@ -2889,7 +3355,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-boolean-object": { @@ -2907,7 +3373,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -2930,17 +3396,17 @@ "resolved": "https://registry.npmjs.org/is-equal/-/is-equal-1.5.5.tgz", "integrity": "sha1-XoXxlX4FKIMkf+s4aWWju6Ffuz0=", "requires": { - "has": "1.0.3", - "is-arrow-function": "2.0.3", - "is-boolean-object": "1.0.0", - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-generator-function": "1.0.7", - "is-number-object": "1.0.3", - "is-regex": "1.0.4", - "is-string": "1.0.4", - "is-symbol": "1.0.1", - "object.entries": "1.0.4" + "has": "^1.0.1", + "is-arrow-function": "^2.0.3", + "is-boolean-object": "^1.0.0", + "is-callable": "^1.1.3", + "is-date-object": "^1.0.1", + "is-generator-function": "^1.0.6", + "is-number-object": "^1.0.3", + "is-regex": "^1.0.3", + "is-string": "^1.0.4", + "is-symbol": "^1.0.1", + "object.entries": "^1.0.4" } }, "is-equal-shallow": { @@ -2948,7 +3414,7 @@ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -2967,7 +3433,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -2975,7 +3441,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-generator-function": { @@ -2988,7 +3454,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-node": { @@ -3001,7 +3467,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-number-object": { @@ -3019,7 +3485,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -3027,7 +3493,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-posix-bracket": { @@ -3050,7 +3516,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -3108,8 +3574,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "0.11.1" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isomorphic-form-data": { @@ -3117,7 +3583,7 @@ "resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-0.0.1.tgz", "integrity": "sha1-Am9ifgMrDNhBPsyHVZKLlKRosGI=", "requires": { - "form-data": "1.0.1" + "form-data": "^1.0.0-rc3" }, "dependencies": { "form-data": { @@ -3125,9 +3591,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", "requires": { - "async": "2.6.1", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" } } } @@ -3152,8 +3618,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -3193,7 +3659,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "jsonfile": { @@ -3201,7 +3667,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonp": { @@ -3209,7 +3675,7 @@ "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.0.4.tgz", "integrity": "sha1-lGZaS3caq+y4qshBNbmVlHVpGL0=", "requires": { - "debug": "3.1.0" + "debug": "*" } }, "jsprim": { @@ -3233,7 +3699,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -3242,7 +3708,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "optional": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -3251,8 +3717,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lie": { @@ -3260,7 +3726,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "requires": { - "immediate": "3.0.6" + "immediate": "~3.0.5" } }, "load-json-file": { @@ -3268,11 +3734,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "pify": { @@ -3287,10 +3753,10 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" }, "dependencies": { "json5": { @@ -3313,7 +3779,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", "requires": { - "immediate": "3.0.6" + "immediate": "~3.0.5" } } } @@ -3334,8 +3800,8 @@ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" } }, "lodash._basecopy": { @@ -3372,9 +3838,9 @@ "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", "dev": true, "requires": { - "lodash._baseassign": "3.2.0", - "lodash._basecreate": "3.0.3", - "lodash._isiterateecall": "3.0.9" + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" } }, "lodash.debounce": { @@ -3412,9 +3878,9 @@ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, "lodash.omit": { @@ -3432,7 +3898,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -3441,8 +3907,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "optional": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -3451,8 +3917,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "lru-queue": { @@ -3460,7 +3926,7 @@ "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", "requires": { - "es5-ext": "0.10.45" + "es5-ext": "~0.10.2" } }, "map-obj": { @@ -3473,7 +3939,7 @@ "resolved": "https://registry.npmjs.org/matcher/-/matcher-0.1.2.tgz", "integrity": "sha1-7yDL3mTCTFDMYa9bg+4LG4/wAQE=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "math-random": { @@ -3496,14 +3962,14 @@ "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.1.tgz", "integrity": "sha1-aT9TgM2ASjmR662gAXnGtWWjr6s=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-weak-map": "2.0.2", - "event-emitter": "0.3.5", - "is-promise": "2.1.0", - "lru-queue": "0.1.0", - "next-tick": "1.0.0", - "timers-ext": "0.1.5" + "d": "1", + "es5-ext": "^0.10.12", + "es6-weak-map": "^2.0.1", + "event-emitter": "^0.3.4", + "is-promise": "^2.1", + "lru-queue": "0.1", + "next-tick": "1", + "timers-ext": "0.1" } }, "memory-fs": { @@ -3512,8 +3978,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "optional": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "meow": { @@ -3522,16 +3988,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "optional": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, "merge-descriptors": { @@ -3549,19 +4015,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -3579,7 +4045,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -3598,7 +4064,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3656,12 +4122,12 @@ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "supports-color": { @@ -3670,7 +4136,7 @@ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -3700,13 +4166,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -3714,7 +4180,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -3724,8 +4190,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz", "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==", "requires": { - "bson": "1.0.9", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "mongoose": { @@ -3734,7 +4200,7 @@ "integrity": "sha512-rcbVI915IzeLFzayATSUQRZkcEkqUoUcvuGTMWcVgQwYibWq1rSvNBTGhCJvmAEGA8e9ygAJS3y9gZFQPjRxBA==", "requires": { "async": "2.6.0", - "bson": "1.0.9", + "bson": "~1.0.4", "hooks-fixed": "2.0.2", "kareem": "1.5.0", "lodash.get": "4.4.2", @@ -3753,7 +4219,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.14.0" } }, "mongodb": { @@ -3771,8 +4237,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", "requires": { - "bson": "1.0.9", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "process-nextick-args": { @@ -3785,13 +4251,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -3799,7 +4265,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -3856,8 +4322,8 @@ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "optional": true, "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -3877,6 +4343,12 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "optional": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3890,9 +4362,9 @@ "requires": { "async": "0.2.10", "binary-search-tree": "0.2.5", - "localforage": "1.7.2", - "mkdirp": "0.5.1", - "underscore": "1.4.4" + "localforage": "^1.3.0", + "mkdirp": "~0.5.1", + "underscore": "~1.4.4" }, "dependencies": { "async": { @@ -3912,8 +4384,8 @@ "resolved": "https://registry.npmjs.org/nedb-promise/-/nedb-promise-2.0.1.tgz", "integrity": "sha1-g5suSQlxb99pUAt/aLK4ciWCzWU=", "requires": { - "nedb": "1.8.0", - "thenify": "3.3.0" + "nedb": "^1.8.0", + "thenify": "^3.2.0" } }, "negotiator": { @@ -3936,8 +4408,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-forge": { @@ -3951,10 +4423,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -3962,7 +4434,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "number-is-nan": { @@ -4000,10 +4472,10 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0", - "function-bind": "1.1.1", - "has": "1.0.3" + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" } }, "object.omit": { @@ -4011,8 +4483,8 @@ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "obuf": { @@ -4038,7 +4510,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -4047,7 +4519,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "opn": { @@ -4056,8 +4528,8 @@ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "optional": true, "requires": { - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" } }, "optionator": { @@ -4066,12 +4538,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "original": { @@ -4080,7 +4552,7 @@ "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", "optional": true, "requires": { - "url-parse": "1.4.1" + "url-parse": "~1.4.0" } }, "os-locale": { @@ -4089,7 +4561,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "optional": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -4109,10 +4581,10 @@ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -4120,7 +4592,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -4128,7 +4600,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -4136,7 +4608,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -4154,8 +4626,8 @@ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", "requires": { - "process": "0.11.10", - "util": "0.10.4" + "process": "^0.11.1", + "util": "^0.10.3" } }, "path-exists": { @@ -4163,7 +4635,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -4186,9 +4658,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -4224,7 +4696,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "platform": { @@ -4244,9 +4716,9 @@ "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", "optional": true, "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { "async": { @@ -4298,7 +4770,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-worker": { @@ -4306,8 +4778,8 @@ "resolved": "https://registry.npmjs.org/promise-worker/-/promise-worker-1.1.1.tgz", "integrity": "sha1-wrddBF0kliXAImTi3/mtIuAxxps=", "requires": { - "is-promise": "2.1.0", - "lie": "3.3.0" + "is-promise": "^2.1.0", + "lie": "^3.0.2" } }, "prop-types": { @@ -4315,8 +4787,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "proxy-addr": { @@ -4324,7 +4796,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, @@ -4380,7 +4852,7 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", "requires": { - "performance-now": "2.1.0" + "performance-now": "^2.1.0" }, "dependencies": { "performance-now": { @@ -4400,9 +4872,9 @@ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -4438,11 +4910,11 @@ "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", "requires": { - "create-react-class": "15.6.3", - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.2" + "create-react-class": "^15.6.0", + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" } }, "react-addons-perf": { @@ -4450,8 +4922,8 @@ "resolved": "https://registry.npmjs.org/react-addons-perf/-/react-addons-perf-15.4.2.tgz", "integrity": "sha1-EQvc9cRZxPd8uF7WNLzTOXU2ODs=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.4", + "object-assign": "^4.1.0" } }, "react-addons-shallow-compare": { @@ -4469,7 +4941,7 @@ "resolved": "https://registry.npmjs.org/react-collapse/-/react-collapse-4.0.3.tgz", "integrity": "sha512-OO4NhtEqFtz+1ma31J1B7+ezdRnzHCZiTGSSd/Pxoks9hxrZYhzFEddeYt05A/1477xTtdrwo7xEa2FLJyWGCQ==", "requires": { - "prop-types": "15.6.2" + "prop-types": "^15.5.8" } }, "react-debounce-input": { @@ -4477,8 +4949,8 @@ "resolved": "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.0.tgz", "integrity": "sha1-aXjGBh2Jj1SfQEF/sNLrvs9Qqqo=", "requires": { - "lodash.debounce": "4.0.8", - "prop-types": "15.6.2" + "lodash.debounce": "^4", + "prop-types": "^15" } }, "react-dom": { @@ -4486,10 +4958,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", "requires": { - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.2" + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" } }, "react-height": { @@ -4506,8 +4978,8 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.5.2.tgz", "integrity": "sha1-aodYNI32YLiDJqDnZNVp8nSq1oE=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "object-assign": "^4.1.1" } }, "prop-types": { @@ -4515,7 +4987,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.8.tgz", "integrity": "sha1-a3suFBCDvjjIWVqlH8VXdccZk5Q=", "requires": { - "fbjs": "0.8.17" + "fbjs": "^0.8.9" } } } @@ -4530,8 +5002,8 @@ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-1.3.1.tgz", "integrity": "sha1-yVZHrni3Pfzv9uxx/8sEGC/22vk=", "requires": { - "react-hot-api": "0.4.7", - "source-map": "0.4.4" + "react-hot-api": "^0.4.5", + "source-map": "^0.4.4" } }, "react-immutable-proptypes": { @@ -4549,9 +5021,9 @@ "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-2.5.1.tgz", "integrity": "sha512-N5xMde42RrclLIdF16bckTApFM56vkn4q3GoZlLkuE8IK23GOIqJsuE62RTrkgq//pAt4dovVgZcgawh7YtN4w==", "requires": { - "commonmark": "0.24.0", - "commonmark-react-renderer": "4.3.4", - "prop-types": "15.6.2" + "commonmark": "^0.24.0", + "commonmark-react-renderer": "^4.3.4", + "prop-types": "^15.5.1" }, "dependencies": { "commonmark": { @@ -4559,9 +5031,9 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.24.0.tgz", "integrity": "sha1-uA3gGCxUY1VkOqFdsSv7KCNoJ48=", "requires": { - "entities": "1.1.1", - "mdurl": "1.0.1", - "string.prototype.repeat": "0.2.0" + "entities": "~ 1.1.1", + "mdurl": "~ 1.0.1", + "string.prototype.repeat": "^0.2.0" } } } @@ -4571,9 +5043,9 @@ "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", "requires": { - "performance-now": "0.2.0", - "prop-types": "15.6.2", - "raf": "3.4.0" + "performance-now": "^0.2.0", + "prop-types": "^15.5.8", + "raf": "^3.1.0" } }, "react-object-inspector": { @@ -4586,12 +5058,12 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.9.tgz", "integrity": "sha512-3XS7mjTOcvaP2H5OE/LxEgDHRuEyTZxBRlwvXHzNqYkZdYd7Ra98AimWoDSHP9OcLoydjA1ocgiZxxcqeXj0Sw==", "requires": { - "create-react-class": "15.6.3", - "hoist-non-react-statics": "2.5.5", - "invariant": "2.2.4", - "lodash": "4.17.10", - "loose-envify": "1.3.1", - "prop-types": "15.6.2" + "create-react-class": "^15.5.1", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.0.0", + "lodash": "^4.2.0", + "loose-envify": "^1.1.0", + "prop-types": "^15.5.4" } }, "react-split-pane": { @@ -4599,11 +5071,11 @@ "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.70.tgz", "integrity": "sha512-vXLE4gTI9gTFXEaX2pKKyZilwDsxGVmAQi7yombplzzj2oBY/fmd3o4DlNSMN43m9XchtStcWri9mOrBx3yMiQ==", "requires": { - "@types/inline-style-prefixer": "3.0.1", - "@types/react": "16.4.1", - "inline-style-prefixer": "3.0.8", - "prop-types": "15.6.2", - "react-style-proptype": "3.2.1" + "@types/inline-style-prefixer": "^3.0.0", + "@types/react": "^16.0.18", + "inline-style-prefixer": "^3.0.6", + "prop-types": "^15.5.10", + "react-style-proptype": "^3.0.0" } }, "react-style-proptype": { @@ -4611,7 +5083,7 @@ "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.1.tgz", "integrity": "sha512-Z02QsgmdZ4wYNxJsHhNGGZsIF8+MO93fYmdPaC+ljdqX3rq8tl/fSMXOGBbofGJNzq5W/2LFcONllmV6vzyYHA==", "requires": { - "prop-types": "15.6.2" + "prop-types": "^15.5.4" } }, "read-pkg": { @@ -4619,9 +5091,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -4629,8 +5101,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -4638,13 +5110,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -4652,10 +5124,10 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -4664,8 +5136,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "optional": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "redux": { @@ -4673,10 +5145,10 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "requires": { - "lodash": "4.17.10", - "lodash-es": "4.17.10", - "loose-envify": "1.3.1", - "symbol-observable": "1.2.0" + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" } }, "redux-immutable": { @@ -4684,7 +5156,7 @@ "resolved": "https://registry.npmjs.org/redux-immutable/-/redux-immutable-3.0.8.tgz", "integrity": "sha1-31pdYByIInujj0dM+C99AOVvjBQ=", "requires": { - "immutable": "3.8.2" + "immutable": "^3.7.6" } }, "redux-logger": { @@ -4692,7 +5164,7 @@ "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-3.0.6.tgz", "integrity": "sha1-91VZZvMJjzyIYExEnPC69XeCdL8=", "requires": { - "deep-diff": "0.3.8" + "deep-diff": "^0.3.5" } }, "referrer-policy": { @@ -4710,7 +5182,7 @@ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexp-clone": { @@ -4729,8 +5201,8 @@ "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz", "integrity": "sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=", "requires": { - "argparse": "0.1.16", - "autolinker": "0.15.3" + "argparse": "~0.1.15", + "autolinker": "~0.15.0" }, "dependencies": { "argparse": { @@ -4738,8 +5210,8 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", "requires": { - "underscore": "1.7.0", - "underscore.string": "2.4.0" + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" } } } @@ -4765,7 +5237,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "optional": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -4773,26 +5245,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.19", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "mime-db": { @@ -4805,7 +5277,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "performance-now": { @@ -4823,8 +5295,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "uuid": { @@ -4839,10 +5311,10 @@ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", "requires": { - "bluebird": "3.5.1", + "bluebird": "^3.5.0", "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.4" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "request-promise-core": { @@ -4850,7 +5322,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "4.17.10" + "lodash": "^4.13.1" } }, "require-directory": { @@ -4871,8 +5343,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "resolve-from": { @@ -4888,8 +5360,8 @@ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { - "resolve-from": "2.0.0", - "semver": "5.5.0" + "resolve-from": "^2.0.0", + "semver": "^5.1.0" } }, "requires-port": { @@ -4913,8 +5385,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "rethinkdb": { @@ -4922,7 +5394,7 @@ "resolved": "https://registry.npmjs.org/rethinkdb/-/rethinkdb-2.3.3.tgz", "integrity": "sha1-PcZYbiL6HavuDSVOZL0ON5+tL3I=", "requires": { - "bluebird": "2.11.0" + "bluebird": ">= 2.3.2 < 3" }, "dependencies": { "bluebird": { @@ -4937,11 +5409,11 @@ "resolved": "https://registry.npmjs.org/rethinkdb-job-queue/-/rethinkdb-job-queue-3.1.7.tgz", "integrity": "sha512-/mb6AnUtomLCCEqZ3Z2L+PM8Bclx8n5h3oRb9rIjHps5GFO4ch7Gps1qJXpvOda7D+bX0c+6yZVuGQmBW8Ef8Q==", "requires": { - "bluebird": "3.5.1", - "debug": "3.1.0", - "rethinkdbdash": "2.3.31", - "serialize-error": "2.1.0", - "uuid": "3.2.1" + "bluebird": "^3.5.1", + "debug": "^3.1.0", + "rethinkdbdash": "^2.3.31", + "serialize-error": "^2.1.0", + "uuid": "^3.2.1" }, "dependencies": { "serialize-error": { @@ -4961,7 +5433,7 @@ "resolved": "https://registry.npmjs.org/rethinkdbdash/-/rethinkdbdash-2.3.31.tgz", "integrity": "sha512-6nXrKFjdg2Ug0YpdmPWSvyD/2EisHnFNt4FWZ74dcXGK48ievSv+cNFTmVv+KjLi6I9CCf6w4CKZ6yCYTfMfdQ==", "requires": { - "bluebird": "3.5.1" + "bluebird": ">= 3.0.1" } }, "rimraf": { @@ -4969,7 +5441,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "rubberduck": { @@ -4983,7 +5455,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -4998,7 +5470,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -5054,18 +5526,18 @@ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -5093,10 +5565,10 @@ "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", "requires": { - "etag": "1.8.1", + "etag": "~1.8.1", "fresh": "0.5.2", "ms": "2.1.1", - "parseurl": "1.3.2", + "parseurl": "~1.3.2", "safe-buffer": "5.1.1" }, "dependencies": { @@ -5118,13 +5590,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "optional": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.18", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { "debug": { @@ -5143,9 +5615,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -5175,7 +5647,7 @@ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", "requires": { - "lodash.keys": "3.1.2" + "lodash.keys": "^3.1.2" } }, "shebang-command": { @@ -5184,7 +5656,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -5204,7 +5676,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -5225,12 +5697,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -5247,15 +5719,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, @@ -5265,7 +5737,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -5282,8 +5754,8 @@ "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "optional": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "2.0.3" + "faye-websocket": "^0.10.0", + "uuid": "^2.0.2" } }, "sockjs-client": { @@ -5292,12 +5764,12 @@ "integrity": "sha1-8CEqhVDkyUaMjM6u79LjSTwDOtU=", "optional": true, "requires": { - "debug": "2.6.9", + "debug": "^2.2.0", "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.1" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.1" }, "dependencies": { "debug": { @@ -5315,7 +5787,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "optional": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } } } @@ -5325,7 +5797,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "spdx-correct": { @@ -5333,8 +5805,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -5347,8 +5819,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -5362,12 +5834,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "optional": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -5387,13 +5859,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "optional": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -5417,15 +5889,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stack-trace": { @@ -5448,9 +5920,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string.prototype.repeat": { @@ -5463,7 +5935,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -5471,7 +5943,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -5479,7 +5951,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -5488,7 +5960,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "optional": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -5507,23 +5979,23 @@ "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.8.6.tgz", "integrity": "sha1-TxiDhEkYwNEjgC1bThBp/jRCUlQ=", "requires": { - "@kyleshockey/object-assign-deep": "0.4.2", - "babel-runtime": "6.26.0", + "@kyleshockey/object-assign-deep": "^0.4.0", + "babel-runtime": "^6.23.0", "btoa": "1.1.2", - "buffer": "5.1.0", - "cookie": "0.3.1", + "buffer": "^5.1.0", + "cookie": "^0.3.1", "cross-fetch": "0.0.8", - "deep-extend": "0.5.1", - "encode-3986": "1.0.0", - "fast-json-patch": "2.0.6", + "deep-extend": "^0.5.1", + "encode-3986": "^1.0.0", + "fast-json-patch": "^2.0.6", "isomorphic-form-data": "0.0.1", - "js-yaml": "3.12.0", - "lodash": "4.17.10", - "qs": "6.5.2", - "querystring-browser": "1.0.4", - "url": "0.11.0", + "js-yaml": "^3.8.1", + "lodash": "^4.16.2", + "qs": "^6.3.0", + "querystring-browser": "^1.0.4", + "url": "^0.11.0", "utf8-bytes": "0.0.1", - "utfstring": "2.0.0" + "utfstring": "^2.0.0" } }, "swagger-ui": { @@ -5531,57 +6003,57 @@ "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-3.17.1.tgz", "integrity": "sha1-XXwxckK4VvOO3c1f8sMKtO24jpQ=", "requires": { - "@braintree/sanitize-url": "2.1.0", - "base64-js": "1.3.0", + "@braintree/sanitize-url": "^2.0.2", + "base64-js": "^1.2.0", "brace": "0.7.0", - "classnames": "2.2.6", - "commonmark": "0.28.1", - "core-js": "2.5.7", + "classnames": "^2.2.5", + "commonmark": "^0.28.1", + "core-js": "^2.5.1", "css.escape": "1.5.1", "deep-extend": "0.5.1", - "dompurify": "1.0.5", + "dompurify": "^1.0.4", "expect": "1.20.2", - "getbase": "2.8.2", - "ieee754": "1.1.12", - "immutable": "3.8.2", - "js-file-download": "0.4.1", - "js-yaml": "3.12.0", + "getbase": "^2.8.2", + "ieee754": "^1.1.8", + "immutable": "^3.x.x", + "js-file-download": "^0.4.1", + "js-yaml": "^3.5.5", "lodash": "4.17.5", - "matcher": "0.1.2", + "matcher": "^0.1.2", "memoizee": "0.4.1", - "promise-worker": "1.1.1", - "prop-types": "15.6.2", - "react": "15.6.2", - "react-addons-perf": "15.4.2", + "promise-worker": "^1.1.1", + "prop-types": "^15.5.10", + "react": "^15.6.2", + "react-addons-perf": "^15.4.0", "react-addons-shallow-compare": "0.14.8", - "react-addons-test-utils": "15.6.2", - "react-collapse": "4.0.3", - "react-debounce-input": "3.2.0", - "react-dom": "15.6.2", - "react-height": "2.2.1", + "react-addons-test-utils": "^15.6.2", + "react-collapse": "^4.0.3", + "react-debounce-input": "^3.2.0", + "react-dom": "^15.6.2", + "react-height": "^2.0.0", "react-hot-loader": "1.3.1", "react-immutable-proptypes": "2.1.0", - "react-immutable-pure-component": "1.2.0", - "react-markdown": "2.5.1", - "react-motion": "0.5.2", + "react-immutable-pure-component": "^1.1.1", + "react-markdown": "^2.5.0", + "react-motion": "^0.5.2", "react-object-inspector": "0.2.1", - "react-redux": "4.4.9", + "react-redux": "^4.x.x", "react-split-pane": "0.1.70", - "redux": "3.7.2", + "redux": "^3.x.x", "redux-immutable": "3.0.8", - "redux-logger": "3.0.6", - "remarkable": "1.7.1", + "redux-logger": "*", + "remarkable": "^1.7.1", "reselect": "2.5.3", - "scroll-to-element": "2.0.0", + "scroll-to-element": "^2.0.0", "serialize-error": "2.0.0", "shallowequal": "0.2.2", - "swagger-client": "3.8.6", - "url-parse": "1.4.1", + "swagger-client": "^3.8.5", + "url-parse": "^1.1.8", "webpack-dev-server": "2.5.0", "whatwg-fetch": "0.11.1", - "worker-loader": "0.7.1", + "worker-loader": "^0.7.1", "xml": "1.0.1", - "xml-but-prettier": "1.0.1", + "xml-but-prettier": "^1.0.1", "yaml-js": "0.2.0", "zenscroll": "4.0.1" }, @@ -5609,12 +6081,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ansi-regex": { @@ -5629,7 +6101,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -5638,9 +6110,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -5661,8 +6133,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -5671,7 +6143,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -5680,7 +6152,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5701,7 +6173,7 @@ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.0.0" } }, "through": { @@ -5727,8 +6199,8 @@ "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", "requires": { - "es5-ext": "0.10.45", - "next-tick": "1.0.0" + "es5-ext": "~0.10.14", + "next-tick": "1" } }, "tmatch": { @@ -5742,7 +6214,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -5755,7 +6227,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -5781,7 +6253,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -5796,7 +6268,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { @@ -5805,7 +6277,7 @@ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -5858,8 +6330,8 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz", "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==", "requires": { - "querystringify": "2.0.0", - "requires-port": "1.0.0" + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" } }, "utf8-bytes": { @@ -5906,8 +6378,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vary": { @@ -5920,9 +6392,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "w3c-blob": { @@ -5935,7 +6407,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "webpack-dev-middleware": { @@ -5944,11 +6416,11 @@ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", "optional": true, "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" }, "dependencies": { "mime": { @@ -5966,26 +6438,26 @@ "optional": true, "requires": { "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "1.7.0", - "compression": "1.7.3", - "connect-history-api-fallback": "1.5.0", - "del": "3.0.0", - "express": "4.16.3", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "internal-ip": "1.2.0", + "bonjour": "^3.5.0", + "chokidar": "^1.6.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "del": "^3.0.0", + "express": "^4.13.3", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.17.4", + "internal-ip": "^1.2.0", "opn": "4.0.2", - "portfinder": "1.0.13", - "selfsigned": "1.10.3", - "serve-index": "1.9.1", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", "sockjs": "0.3.18", "sockjs-client": "1.1.2", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "3.2.3", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^3.1.1", + "webpack-dev-middleware": "^1.10.2", + "yargs": "^6.0.0" }, "dependencies": { "supports-color": { @@ -5994,7 +6466,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "optional": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -6004,8 +6476,8 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -6024,7 +6496,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -6038,12 +6510,12 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.3.tgz", "integrity": "sha512-GYKuysPz2pxYAVJD2NPsDLP5Z79SDEzPm9/j4tCjkF/n89iBNGBMJcR+dMUqxgPNgoSs6fVygPi+Vl2oxIpBuw==", "requires": { - "async": "1.0.0", - "colors": "1.0.3", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "stack-trace": "0.0.10" + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" }, "dependencies": { "async": { @@ -6064,7 +6536,7 @@ "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-0.7.1.tgz", "integrity": "sha1-kf/S4vv3aSGkPoyjdm0S6VN/XXA=", "requires": { - "loader-utils": "0.2.17" + "loader-utils": "0.2.x" } }, "wrap-ansi": { @@ -6073,8 +6545,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "optional": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -6088,7 +6560,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -6096,9 +6568,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "x-xss-protection": { @@ -6116,7 +6588,7 @@ "resolved": "https://registry.npmjs.org/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz", "integrity": "sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM=", "requires": { - "repeat-string": "1.6.1" + "repeat-string": "^1.5.2" } }, "xmlhttprequest-ssl": { @@ -6152,19 +6624,19 @@ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "optional": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" }, "dependencies": { "camelcase": { @@ -6181,7 +6653,7 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "optional": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { From acf4a8b829ff36f5a38e2c938fbe4966b53b424a Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Thu, 23 Aug 2018 14:00:38 +0530 Subject: [PATCH 185/419] Fixed stagerefid error --- client/src/components/SchemaView.vue | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 3e9a360..1fbf825 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -898,13 +898,20 @@ export default { this.itsFirstState = true this.$Spin.hide() } else { + // console.log('resp data: ', resp.data) this.itsFirstState = false this.instanceEntries = resp.data for ( let i = 0; i < this.instanceEntries.length; i++) { - this.instanceEntries[i]['lastData'] = await this.getFData(this.instanceEntries[i].stageReference) - this.instanceEntries[i].lastData['id'] = this.instanceEntries[i].id + if (this.instanceEntries[i].stageReference.length > 0) { + this.instanceEntries[i]['lastData'] = await this.getFData(this.instanceEntries[i].stageReference) + this.instanceEntries[i].lastData['id'] = this.instanceEntries[i].id + } else { + this.itsFirstState = true + } + } + if (this.itsFirstState === false) { + this.dataData = _.map(this.instanceEntries, (o) => { return o.lastData }) } - this.dataData = _.map(this.instanceEntries, (o) => { return o.lastData }) this.$Spin.hide() } }).catch(err => { From 5ab0af41c28ba12aee7711586ce1a8ea3f6be34d Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 23 Aug 2018 14:01:47 +0530 Subject: [PATCH 186/419] Footer change --- client/src/layout/Footer.vue | 2 +- client/src/layout/user/Footer.vue | 2 +- client/src/masterLayout/Footer.vue | 2 +- client/src/pages/EmailVerification.vue | 2 +- client/src/pages/Login.vue | 2 +- client/src/pages/Register.vue | 2 +- client/src/userLayout/Footer.vue | 2 +- client/static/js/product-plugin-old.js | 8 ++++---- client/static/js/product-plugin.js | 10 +++++----- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/client/src/layout/Footer.vue b/client/src/layout/Footer.vue index 58b68f4..f281287 100644 --- a/client/src/layout/Footer.vue +++ b/client/src/layout/Footer.vue @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/client/src/layout/user/Footer.vue b/client/src/layout/user/Footer.vue index 65f2018..710a73b 100644 --- a/client/src/layout/user/Footer.vue +++ b/client/src/layout/user/Footer.vue @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/client/src/masterLayout/Footer.vue b/client/src/masterLayout/Footer.vue index 65f2018..710a73b 100644 --- a/client/src/masterLayout/Footer.vue +++ b/client/src/masterLayout/Footer.vue @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/client/src/pages/EmailVerification.vue b/client/src/pages/EmailVerification.vue index 10027a7..63621ee 100644 --- a/client/src/pages/EmailVerification.vue +++ b/client/src/pages/EmailVerification.vue @@ -36,7 +36,7 @@
    -

    © 2017. Flowz technology. All Rights Reserved.

    +

    © 2018. Flowz technology. All Rights Reserved.

    diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index f552493..f1587f5 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -96,7 +96,7 @@
    -

    © 2017. Flowz technology. All Rights Reserved.

    +

    © 2018. Flowz technology. All Rights Reserved.

    diff --git a/client/src/pages/Register.vue b/client/src/pages/Register.vue index 3aa0484..340b189 100644 --- a/client/src/pages/Register.vue +++ b/client/src/pages/Register.vue @@ -50,7 +50,7 @@
    -

    © 2017. Flowz technology. All Rights Reserved.

    +

    © 2018. Flowz technology. All Rights Reserved.

    diff --git a/client/src/userLayout/Footer.vue b/client/src/userLayout/Footer.vue index 368342c..31230e1 100644 --- a/client/src/userLayout/Footer.vue +++ b/client/src/userLayout/Footer.vue @@ -1,5 +1,5 @@ \ No newline at end of file diff --git a/client/static/js/product-plugin-old.js b/client/static/js/product-plugin-old.js index f8b6106..35623ee 100644 --- a/client/static/js/product-plugin-old.js +++ b/client/static/js/product-plugin-old.js @@ -23,7 +23,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ bm.add('homepage', { label: 'Homepage', content: ''+ - '

    Looking for something else? Request a Quote or Call (800) 654-3889

    pulsar bluetooth speaker
    business card magnet w/small bag of jelly beans
    cape cod tumbler
    reply lunch cooler tote
    ', + '

    Looking for something else? Request a Quote or Call (800) 654-3889

    pulsar bluetooth speaker
    business card magnet w/small bag of jelly beans
    cape cod tumbler
    reply lunch cooler tote
    ', attributes: { class: 'fa fa-home', title: 'Homepage' @@ -68,7 +68,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ bm.add('siteHeader', { label: 'Header', content: ''+ - '
    ', + '
    ', attributes: { class: 'fa fa-file-text', title: 'Header' @@ -82,7 +82,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ content: ''+ ''+ - '
    ', + '
    ', attributes: { class: 'fa fa-file-code-o', title: 'Ecommerce Navbar' @@ -94,7 +94,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ bm.add('footer',{ label: 'Footer & Copyright', content: ''+ - '
    ', + '
    ', attributes: { class: 'fa fa-html5', title: 'Footer & Copyright' diff --git a/client/static/js/product-plugin.js b/client/static/js/product-plugin.js index edea1fc..aed236e 100644 --- a/client/static/js/product-plugin.js +++ b/client/static/js/product-plugin.js @@ -23,7 +23,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ bm.add('homepage', { label: 'Homepage', content: ''+ - '

    Looking for something else? Request a Quote or Call (800) 654-3889

    pulsar bluetooth speaker
    business card magnet w/small bag of jelly beans
    cape cod tumbler
    reply lunch cooler tote
    ', + '

    Looking for something else? Request a Quote or Call (800) 654-3889

    pulsar bluetooth speaker
    business card magnet w/small bag of jelly beans
    cape cod tumbler
    reply lunch cooler tote
    ', attributes: { class: 'fa fa-home', title: 'Homepage' @@ -89,7 +89,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ // Footer Layout bm.add('Footer-1', { label: 'Footer-1', - content: 'Distributed Footer', + content: 'Distributed Footer', attributes: { class: 'fa fa-square-o', title: 'Footer-1' @@ -232,7 +232,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ bm.add('siteHeader', { label: 'Header', content: ''+ - '
    ', + '
    ', attributes: { class: 'fa fa-file-text', title: 'Header' @@ -246,7 +246,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ content: ''+ ''+ - '
    ', + '
    ', attributes: { class: 'fa fa-file-code-o', title: 'Ecommerce Navbar' @@ -258,7 +258,7 @@ grapesjs.plugins.add('product-plugin', function(editor, options){ bm.add('footer',{ label: 'Footer & Copyright', content: ''+ - '
    ', + '
    ', attributes: { class: 'fa fa-html5', title: 'Footer & Copyright' From a873b6a6a5db76f5e65e614bf8f202fc2c2a65ca Mon Sep 17 00:00:00 2001 From: chirag Date: Thu, 23 Aug 2018 14:09:28 +0530 Subject: [PATCH 187/419] set email response message --- service/src/services/email-receive/email-receive.class.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/src/services/email-receive/email-receive.class.js b/service/src/services/email-receive/email-receive.class.js index 091ae83..e11be6d 100644 --- a/service/src/services/email-receive/email-receive.class.js +++ b/service/src/services/email-receive/email-receive.class.js @@ -40,7 +40,7 @@ class Service { }).catch((err)=> { throw new Error(err.message) }); - return flowzDataRecord + return "Your response saved successfully" } async create (data, params) { From cf010c3befcca36d82157de1565f1d3a156ab666 Mon Sep 17 00:00:00 2001 From: chirag Date: Thu, 23 Aug 2018 15:01:23 +0530 Subject: [PATCH 188/419] update for multiple trget --- client/src/components/SchemaView.vue | 34 ++++++++++++++-------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 7ffa3a8..1a59949 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -625,28 +625,28 @@ export default { if(!this.isEmailDone){ let currentStageObject = _.find(this.flowData.json.processList, {'id': currentStateId}) let nextTargetId - if (currentStageObject.target.length > 1) { - //nextTargetId = _.find(this.flowData.json.processList, {'id': currentStageObject}) + if (this.isMultiple) { + nextTargetId = _.find(this.flowData.json.processList, {'id': this.nextTarget.value}) } else { nextTargetId = _.find(this.flowData.json.processList, {'id': currentStageObject.target[0].id}) - if (nextTargetId.type === 'sendproofmail') { - this.id = null - this.email = true - if (nextTargetId.target.length > 1) { - let arr = {} - for (let index = 0; index < nextTargetId.target.length; index++) { - let target = _.find(this.flowData.json.processList, {'id': nextTargetId.target[index].id}) - arr[target.name] = target.id - } - this.btnArr = arr - } else { - let arr = {} - arr['approve'] = nextTargetId.target[0].id - this.btnArr = arr + } + if (nextTargetId.type === 'sendproofmail') { + this.id = null + this.email = true + if (nextTargetId.target.length > 1) { + let arr = {} + for (let index = 0; index < nextTargetId.target.length; index++) { + let target = _.find(this.flowData.json.processList, {'id': nextTargetId.target[index].id}) + arr[target.name] = target.id } + this.btnArr = arr } else { - this.saveDataMethod() + let arr = {} + arr['approve'] = nextTargetId.target[0].id + this.btnArr = arr } + } else { + this.saveDataMethod() } } else{ this.saveDataMethod(); From 47f33d66151e1671df69639ec60aa3030b4f6fde Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 23 Aug 2018 15:37:13 +0530 Subject: [PATCH 189/419] email issue resolve --- client/src/components/SchemaView.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index b354e76..e445ae9 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -332,7 +332,6 @@ export default { async emailService (item) { this.isEmailDone = true await this.handleSubmit('formSchemaInstance') - this.email = false }, info (item, index, button) { this.modalInfo.title = `Row index: ${index}` @@ -690,10 +689,14 @@ export default { this.$Notice.success({title: 'success!', desc: 'Instance saved...'}) this.$Loading.finish() this.bLoading = false + this.email = false + this.isEmailDone = false }).catch(err => { console.log('Error', err) this.$Loading.finish() this.bLoading = false + this.email = false + this.isEmailDone = false this.$Notice.error({title: 'Not Saved!'}) }) From 45bfc702368888adf1cef1cba213b06fc5301e88 Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 23 Aug 2018 15:50:21 +0530 Subject: [PATCH 190/419] role module name change --- client/src/pages/flow/List.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index 219f430..1b69535 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -715,7 +715,7 @@ export default { }, showInviteDialog (query) { if (query.row.roles !== undefined) { - this.flowId = 'Workflow_' + query.row.id + this.flowId = 'workflow_' + query.row.id let temp1 = query.row.roles.split(',') let roles = [] for (let index = 0; index < temp1.length; index++) { From ae18917e900a202679adaa0a90e41dab2efce360 Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 23 Aug 2018 16:33:25 +0530 Subject: [PATCH 191/419] client-instance-create-functionality --- client/src/api/finstance/index.js | 4 ++-- client/src/masterLayout/Header.vue | 9 +++++++++ client/src/masterLayout/SideBar.vue | 25 ++++++++++++++++++++++--- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/client/src/api/finstance/index.js b/client/src/api/finstance/index.js index 140278f..2db0898 100644 --- a/client/src/api/finstance/index.js +++ b/client/src/api/finstance/index.js @@ -11,8 +11,8 @@ export default { // getThis: (id) => { // return api.request('get', '/' + model + '/' + id) // }, - post: (data) => { - return api.request('post', '/' + model, data) + post: (data, params = null, headers) => { + return api.request('post', '/' + model, data, params, headers) }, put: (id, data) => { return api.request('put', '/' + model + '/' + id, data) diff --git a/client/src/masterLayout/Header.vue b/client/src/masterLayout/Header.vue index 364f207..d9e7c2b 100644 --- a/client/src/masterLayout/Header.vue +++ b/client/src/masterLayout/Header.vue @@ -10,7 +10,9 @@ @@ -104,6 +106,13 @@ } }, methods: { + gotoDashboard () { + if (this.$store.state.role === 1) { + this.$router.push('/admin/dashboard') + } else { + this.$router.push('/dashboard') + } + }, handleRemove () { let location = psl.parse(window.location.hostname) location = location.domain === null ? location.input : location.domain diff --git a/client/src/masterLayout/SideBar.vue b/client/src/masterLayout/SideBar.vue index 9414296..f2fabeb 100644 --- a/client/src/masterLayout/SideBar.vue +++ b/client/src/masterLayout/SideBar.vue @@ -63,6 +63,9 @@ + + + @@ -96,10 +99,17 @@ export default { // console.log('this.$store.state.activeFlow', this.$store.state.activeFlow) }, methods: { - createInstance (item) { + createInstance (item, subItemID) { // console.log('item', item) this.$Loading.start() - finstanceModal.post({fid: item.id}).then(res => { + let fheaders = null + if (subItemID !== undefined) { + fheaders = { + workflowid: 'workflow_' + item.id, + stateid: subItemID + } + } + finstanceModal.post({fid: item.id}, null, fheaders).then(res => { this.$Notice.success({title: 'Instance Generated'}) this.$Loading.finish() }).catch(e => { @@ -253,7 +263,16 @@ export default { } } } - } else { + } + let firstTarget = _.find(item.json.processList, {type: 'start'}) + if (firstTarget !== null && firstTarget !== undefined && Object.keys(firstTarget).length > 0) { + let nextTId = firstTarget.target[0].id + _.map(item.json.processList, (m) => { + if (m.id === nextTId) { + m.isfirst = true + } + return m + }) } _.remove(item.json.processList, (m) => { if (!m.hasOwnProperty('permission')) { From d1a4fca25374cf3d958cb690fba3424cfa298287 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Thu, 23 Aug 2018 17:22:13 +0530 Subject: [PATCH 192/419] Added socket for instance data table view --- client/src/components/SchemaView.vue | 28 +++++++++++++++++++++++++++- client/src/pages/user/SchemaList.vue | 17 +++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index e445ae9..0bb1a82 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -973,7 +973,33 @@ export default { '$route.params': function (value) { this.init() } - } + }, + feathers: { + 'finstance': { + created (data) { + // console.log('created called from parent: ', data) + // this.init() + // let findIndex = _.findIndex(this.data, (o) => { return o.id }) + // if (findIndex !== -1) { + // this.data.push(data) + // } + }, + async updated (data) { + // console.log('called on parent: ', data) + if (data.currentStatus === this.$route.params.stateid) { + data['lastData'] = await this.getFData(data.stageReference) + data.lastData['id'] = data.id + this.instanceEntries.push(data) + this.dataData.push(data.lastData) + } + // this.init() + // console.log('updated called: ', data) + // _.remove(this.data, (o) => { return o.id === data.id }) + }, + removed (data) { + } + } + } } diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index bbf8e18..7f04ea8 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -252,6 +252,23 @@ handleConfiguration () { this.isShow = !this.isShow } + }, + feathers: { + 'finstance': { + created (data) { + // console.log('created called: ', data) + // let findIndex = _.findIndex(this.data, (o) => { return o.id }) + // if (findIndex !== -1) { + // this.data.push(data) + // } + }, + updated (data) { + // console.log('updated called: ', data) + _.remove(this.data, (o) => { return o.id === data.id }) + }, + removed (data) { + } + } } } From 8dd35e3eb303d2165d789fb557fdf9cdb9c61db2 Mon Sep 17 00:00:00 2001 From: chirag Date: Thu, 23 Aug 2018 17:29:20 +0530 Subject: [PATCH 193/419] remove find permission from schema --- service/src/middleware/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/src/middleware/index.js b/service/src/middleware/index.js index af1dd3d..e5c2936 100644 --- a/service/src/middleware/index.js +++ b/service/src/middleware/index.js @@ -15,7 +15,7 @@ module.exports = function () { 'flowz': ['create','update', 'patch'], 'finstance': ['create','update'], 'flowzdata': ['update', 'patch'], - 'schema': ['create','update', 'patch', 'find', 'get', 'remove'] + 'schema': ['create','update', 'patch', 'remove'] }; subscription.moduleResource.registerAppModule = registerAppModule; From d410454e92a3367a00774a181036c15deaf5836d Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 23 Aug 2018 17:52:03 +0530 Subject: [PATCH 194/419] role in lowercase --- client/src/pages/flow/List.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index 1b69535..606bd0d 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -809,7 +809,7 @@ export default { subscriptionId: this.value2, name: obj.label2, role: { - [this.flowId]: this.value1 + [this.flowId]: this.value1.toLowerCase() }, fromEmail: this.$store.state.user.email } From b6385103e1c13a05667f6566a13b9d46404fe7f1 Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 23 Aug 2018 18:10:30 +0530 Subject: [PATCH 195/419] permission-notification-changes --- client/src/masterLayout/SideBar.vue | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/client/src/masterLayout/SideBar.vue b/client/src/masterLayout/SideBar.vue index f2fabeb..6573d9d 100644 --- a/client/src/masterLayout/SideBar.vue +++ b/client/src/masterLayout/SideBar.vue @@ -114,8 +114,12 @@ export default { this.$Loading.finish() }).catch(e => { this.$Loading.error() - console.log('error', e) - this.$Notice.error({title: 'Error', desc: 'Instace Not Generated'}) + console.log('error', e.response) + if (e.response.data.message) { + this.$Notice.error({title: 'Error', desc: e.response.data.message.toString()}) + } else { + this.$Notice.error({title: 'Error', desc: 'Instace Not Generated'}) + } }) }, viewProgress (item) { From 7150b5aa40aacdef73eaf290f94c9ed417b3260d Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 24 Aug 2018 18:35:53 +0530 Subject: [PATCH 196/419] email body change --- client/src/components/SchemaSubFormView.vue | 396 ++++++++++++++++++++ client/src/components/SchemaView.vue | 20 +- client/src/components/email.vue | 9 +- 3 files changed, 417 insertions(+), 8 deletions(-) create mode 100644 client/src/components/SchemaSubFormView.vue diff --git a/client/src/components/SchemaSubFormView.vue b/client/src/components/SchemaSubFormView.vue new file mode 100644 index 0000000..8e34ffb --- /dev/null +++ b/client/src/components/SchemaSubFormView.vue @@ -0,0 +1,396 @@ + + + + + + diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index e445ae9..9d754b7 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -240,7 +240,8 @@ -->
    - + +
    @@ -252,6 +253,7 @@ import axios from 'axios' import ListInstances from './ListInstances' import SchemaSubForm from './SchemaSubForm' +import SchemaSubFormView from './SchemaSubFormView' import email from './email' import flowzdataModal from '@/api/flowzdata' @@ -284,6 +286,7 @@ export default { }, data () { return { + htmlcontent: false, flowzData: null, email: false, loading: false, @@ -319,14 +322,16 @@ export default { dynamicData: true, instanceEntries: null, isEmailDone: false, - itsFirstState: false + itsFirstState: false, + sendDataEmail: null } }, components: { 'list-instances': ListInstances, 'schemasubform': SchemaSubForm, 'schemalist': schemalist, - 'email' : email + 'email' : email, + 'schemasubformview': SchemaSubFormView }, methods: { async emailService (item) { @@ -636,6 +641,9 @@ export default { if (nextTargetId.type === 'sendproofmail') { this.id = null this.email = true + setTimeout(() => { + this.sendDataEmail = this.$refs.schemasubformview.$el.outerHTML + }, 5000) if (nextTargetId.target.length > 1) { let arr = {} for (let index = 0; index < nextTargetId.target.length; index++) { @@ -929,8 +937,6 @@ export default { } }, mounted () { - // console.log('DeepRecord: ', DeepRecord) - // console.log('ROuter params: ', this.$route.params) flowzModel.get(null, { id: this.$route.params.id }) @@ -1075,4 +1081,8 @@ export default { max-height: 550px !important; overflow-y: auto !important; } + + #schemasubformview{ + display: none; + } diff --git a/client/src/components/email.vue b/client/src/components/email.vue index d98cb0d..31fa3c4 100644 --- a/client/src/components/email.vue +++ b/client/src/components/email.vue @@ -62,7 +62,8 @@ import config from '@/config' }, props: { 'btnArr': Object, - 'iid': String + 'iid': String, + 'sendDataEmail': String }, mounted () { }, @@ -83,6 +84,7 @@ import config from '@/config' }, methods: { sendEmail() { + console.log("sendDataEmail", this.sendDataEmail) this.emailForm.subject = this.emailForm.type let config11 = config let btn = '' @@ -91,19 +93,20 @@ import config from '@/config' btn = btn + `

    + ${idx.toUpperCase()} : Move To ${idx.toUpperCase()}

    ` } this.emailForm.html = ` Email Proof
    + ` + this.sendDataEmail +`

    Customer Proof:

    ${btn}

    While we strongly you to take advantage of this time saving option, your proof may still be fixed back to company name at: Toll Free Fax: 800-238-0082 Local Fax: 716-773-2332

    ` - + console.log('this.emailForm',this.emailForm) sendmailModal.post(this.emailForm) .then((res)=>{ this.$emit('on-done', true) From 9076dcd625ebf46ab87296a93277631dc849de38 Mon Sep 17 00:00:00 2001 From: harshp Date: Mon, 27 Aug 2018 09:54:43 +0530 Subject: [PATCH 197/419] Code optimization --- client/src/components/SchemaSubFormView.vue | 118 +------------------- client/src/components/email.vue | 2 - 2 files changed, 2 insertions(+), 118 deletions(-) diff --git a/client/src/components/SchemaSubFormView.vue b/client/src/components/SchemaSubFormView.vue index 8e34ffb..354760c 100644 --- a/client/src/components/SchemaSubFormView.vue +++ b/client/src/components/SchemaSubFormView.vue @@ -12,7 +12,6 @@ - @@ -22,7 +21,7 @@ - - @@ -129,9 +121,6 @@ export default { } self.schemainstance.data[index][fieldName] = allFiles }, - getValidationProps (index, fieldName) { - return 'data[' + index + '][' + fieldName + ']' - }, async getChildData (id) { // alert(id) var arrObj = [] @@ -191,111 +180,8 @@ export default { } return obj }, - async handleAdd (eIndex, dataIndex, ent, data, fname) { - var self = this - // var self.$refs['formSchema'][0].validate() - // self.$refs['formSchema'][0].validate((valid) => { - // alert(1) - // if (valid) { - // this.$Message.success('Success!') - // } else { - // this.$Message.error('Error!') - // } - // }) - var obj = {} - // obj.id = this.getGuid(); - // alert(ent.database) - // obj.database = ent.database - // obj.Schemaid = ent._id - for (let v of ent.entity) { - if (v.customtype) { - obj[v.name] = await self.getChildData(v.type) - } else { - if (v.type === 'number') { - if (v.property.defaultValue !== '') { - obj[v.name] = v.property.defaultValue - } else { - if (v.property.min !== 0 && v.property.min !== '') { - obj[v.name] = v.property.min - } else { - obj[v.name] = 1 - } - } - } else if (v.type === 'boolean') { - if (v.property.defaultValue !== '' || v.property.defaultValue === 'true') { - obj[v.name] = true - } else { - obj[v.name] = false - } - } else if (v.type === 'file') { - obj[v.name] = [] - } else { - if (v.property.defaultValue !== '') { - obj[v.name] = v.property.defaultValue - } else { - obj[v.name] = '' - } - } - } - } - this.schemainstance.data[dataIndex][fname].push(obj) - // console.log('schemainstance: ', this.schemainstance.data) - }, - // getGuid () { - // return (this.S4() + this.S4() + "-" + this.S4() + "-4" + this.S4().substr(0,3) + "-" + this.S4() + "-" + this.S4() + this.S4() + this.S4()).toLowerCase() - // }, - // S4() { - // return (((1+Math.random())*0x10000)|0).toString(16).substring(1); - // }, getObjectType (type) { return ['text', 'email', 'number', 'phone', 'boolean', 'date', 'dropdown', 'file'].indexOf(type) === -1 - }, - createRules (row) { - let rules = [] - if (row.type === 'email') { - rules.push({ type: 'email', message: 'This field is email type.' }) - } - if (row.type === 'phone') { - rules.push({ - type: 'number', - validator: (rule, value, callback) => { - if (!value) { - return callback(new Error('Please input the value')) - } - if (value.match(/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/)) { - callback() - } else { - callback(new Error('Please input phone no')) - } - } - }) - } - if (row.property.optional === false) { - rules.push({required: true, message: 'This field is required.', trigger: 'blur'}) - } - if (row.property.min > 0 && row.type === 'text') { - rules.push({ type: 'string', min: row.property.min, message: 'min' + row.property.min + ' length req' }) - } - if (row.property.max > 0 && row.type === 'text') { - rules.push({ type: 'string', max: row.property.max, message: 'max length ' + row.property.max + ' required.' }) - } - if (row.property.allowedValue.length > 0) { - rules.push({type: 'enum', enum: row.property.allowedValue}) - } - return rules - }, - handleEdit (row) { - }, - handleRemove (index) { - this.$Modal.confirm({ - title: 'Confirm', - content: '

    Are you sure you want to delete?

    ', - onOk: () => { - this.schemainstance.data.splice(index, 1) - }, - onCancel: () => { - } - }) } }, mounted () { diff --git a/client/src/components/email.vue b/client/src/components/email.vue index 31fa3c4..d9873a8 100644 --- a/client/src/components/email.vue +++ b/client/src/components/email.vue @@ -84,7 +84,6 @@ import config from '@/config' }, methods: { sendEmail() { - console.log("sendDataEmail", this.sendDataEmail) this.emailForm.subject = this.emailForm.type let config11 = config let btn = '' @@ -106,7 +105,6 @@ import config from '@/config'

    While we strongly you to take advantage of this time saving option, your proof may still be fixed back to company name at: Toll Free Fax: 800-238-0082 Local Fax: 716-773-2332

    ` - console.log('this.emailForm',this.emailForm) sendmailModal.post(this.emailForm) .then((res)=>{ this.$emit('on-done', true) From a23f302909ed872fe1fb0070e6a9835af37ad384 Mon Sep 17 00:00:00 2001 From: harshp Date: Mon, 27 Aug 2018 10:45:57 +0530 Subject: [PATCH 198/419] Code optimization --- client/src/components/SchemaSubFormView.vue | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/client/src/components/SchemaSubFormView.vue b/client/src/components/SchemaSubFormView.vue index 354760c..955a4ea 100644 --- a/client/src/components/SchemaSubFormView.vue +++ b/client/src/components/SchemaSubFormView.vue @@ -71,11 +71,10 @@ + - - \ No newline at end of file + }, + mounted () { + flowzModal.get(this.fid, { + $select: ['json'] + }).then(res => { + console.log('res: ', res) + let cols = [] + for (let col of res.data.json.processList) { + if (col.type !== 'start' && col.type !== 'endevent') { + cols.push({ + title: col.name || col.id, + key: col.id, + firstColumn: false, + show: true, + width: 150 + }) + } + } + this.anotherBinding = _.cloneDeep(cols) + this.configuration.fields = _.cloneDeep(cols) + + finstanceModal.get(null, { + fid: this.fid, + $paginate: false + }).then(resp => { + console.log('resp: ', resp) + // for (let i = 0; i < resp.data.length; i++) { + // for(let j = 0; j < resp.data[i].stageReference; j++) { + // let value = { + // id: resp.data[i].stageReference[j].id + // } + // this.tableData.push(value) + // } + // } + this.tableData = resp.data + }) + }) + } +} + + \ No newline at end of file diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index 17ffc68..8fec5ea 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -182,12 +182,14 @@ export default { return arrObj }, getObject (eIndex, dataIndex, fname, ftype) { + console.log('get obj called: ', dataIndex) var obj = {} obj.data = this.schemainstance.data[dataIndex][fname] obj.entity = this.schemainstance.entity[eIndex].entity[0].entity let indexx = $.inArray(fname, this.jumperLinks) if (indexx === -1) { this.jumperLinks.push(fname) + this.$emit('updateJumperList', this.jumperLinks) } return obj }, diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 0bb1a82..a3e9a87 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -161,9 +161,9 @@ -
    +
    -
    +
    @@ -174,7 +174,7 @@
    - +
    @@ -307,7 +307,7 @@ export default { processid: null, lastLog: null, formTitle: null, - jumperLinks: SchemaSubForm.jumperLinks, + jumperLinks: [], flowData: null, bLoading: false, isMultiple: false, @@ -926,6 +926,10 @@ export default { console.log('....', err) this.$Spin.hide() }) + }, + + updateJumperList (objectArr) { + this.jumperLinks = objectArr } }, mounted () { @@ -1087,6 +1091,7 @@ export default { .fixed-div{ position: fixed; right: 0; + /*top: 250px;*/ } .ivu-form-item-content{ diff --git a/client/src/components/cellRender.vue b/client/src/components/cellRender.vue new file mode 100644 index 0000000..72a42de --- /dev/null +++ b/client/src/components/cellRender.vue @@ -0,0 +1,218 @@ + + + + + + diff --git a/client/src/components/configExpand.vue b/client/src/components/configExpand.vue new file mode 100644 index 0000000..c8bc67b --- /dev/null +++ b/client/src/components/configExpand.vue @@ -0,0 +1,50 @@ + + + + + + diff --git a/client/src/main.js b/client/src/main.js index 155cc5a..0692319 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -15,6 +15,9 @@ import 'bootstrap/dist/css/bootstrap.css' import 'bootstrap-vue/dist/bootstrap-vue.css' Vue.use(BootstrapVue) +// import CellRender from '@/components/cellRender' +// Vue.use(CellRender) + // Include and set up feathers client const Feathers = require('feathers/client') const hooks = require('feathers-hooks') diff --git a/client/src/pages/flow/analytics.vue b/client/src/pages/flow/analytics.vue index 71dde41..e47e0e7 100644 --- a/client/src/pages/flow/analytics.vue +++ b/client/src/pages/flow/analytics.vue @@ -8,23 +8,101 @@
      -
    • Legend:
    • -
    • Completed
    • -
    • Current
    • -
    • Pending
    • - - -
    +
  • Legend:
  • +
  • Completed
  • +
  • Current
  • +
  • Pending
  • + + + + + + + + + + + +
    + + + + August 27th 2018, 5:10:26 pm + + + Aug 27th 18 + + + 2018-08-27T17:11:16+05:30 + + + + + Select Fields to show: +
    + + + + + + + +
    + + +
    -
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    +
    + +
    + - @@ -39,8 +117,39 @@ - - + {{field.name}} - + @@ -38,7 +38,8 @@ - {{field.name}} + + @@ -328,6 +329,8 @@ export default { border-bottom-right-radius: 5px; margin-left: -20px; margin-bottom: 10px; + position: relative; + z-index: 999; } .btnAdd{ @@ -389,7 +392,15 @@ export default { right: 0; } + + + + + + .ivu-table td:nth-child(2){ + padding-left: 10px; + } + \ No newline at end of file diff --git a/client/src/components/SchemaSubFormView.vue b/client/src/components/SchemaSubFormView.vue index 8bd9346..3ad16d6 100644 --- a/client/src/components/SchemaSubFormView.vue +++ b/client/src/components/SchemaSubFormView.vue @@ -193,6 +193,7 @@ export default { // setTimeout(() => { // console.log('HTML CONTENT', this.$el.outerHTML) // }, 5000) + console.log('Data: ', this.schemainstance) }, created () { } diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 6b98c09..6ab2b52 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -7,7 +7,7 @@
    -
    +
    @@ -54,14 +54,13 @@
    -
    + -
    +
    -->
    @@ -163,7 +162,7 @@
    -
    +
    @@ -206,13 +205,13 @@
    -
    +
    diff --git a/client/src/components/cellRender.vue b/client/src/components/cellRender.vue index 6c5035e..308b2c7 100644 --- a/client/src/components/cellRender.vue +++ b/client/src/components/cellRender.vue @@ -1,6 +1,7 @@ @@ -334,7 +369,7 @@ export default { overflow-y: auto !important; } - .inprocessTask{ + .inprocessTaskDot{ position: absolute; right: 10px; margin-top: 5px; @@ -344,17 +379,17 @@ export default { border-radius: 10px; } - .completedTask{ + .completedTaskDot{ position: absolute; right: 10px; - margin-top: 5px; + margin-top: 0px; min-width: 10px; min-height: 10px; background-color: #00FF00; border-radius: 10px; } - .otherTask{ + .otherTaskDot{ position: absolute; right: 10px; margin-top: 5px; @@ -363,4 +398,17 @@ export default { background-color: #FF0000; border-radius: 10px; } + + .ivu-table td{ + height: 40px; + } + + .ivu-table td:first-child{ + padding-left: 10px; + } + + .ivu-table-cell{ + padding-left: 0; + padding-right: 0; + } \ No newline at end of file From 7b7e893a314233ba90d274baf559486b92a26c60 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 3 Sep 2018 10:19:28 +0530 Subject: [PATCH 226/419] Resolved this issue. Now after the roles are saved, then only flow will be saved --- client/src/pages/flow/List.vue | 6 +++- client/src/pages/flow/New.vue | 55 ++++++++++++++++++---------------- 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index 740f4c5..6b7cd9e 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -100,7 +100,7 @@
    Instance + {{items.name}}
    - + + + + + {{ getAgoStatus(items, headerItem.id) }} + + + + + + +
    +
    + +
    + {{key}} : {{dataitems}}
    +
    +
    + +
    +
    +
    +
    + {{loadingText}} +
    +
    +
    +
    + + @@ -57,8 +166,12 @@ - - + + \ No newline at end of file + + .inprocessTask{ + position: absolute; + right: 10px; + margin-top: 5px; + min-width: 10px; + min-height: 10px; + background-color: #0000FF; + border-radius: 10px; + } + + .completedTask{ + position: absolute; + right: 10px; + margin-top: 5px; + min-width: 10px; + min-height: 10px; + background-color: #00FF00; + border-radius: 10px; + } + + .otherTask{ + position: absolute; + right: 10px; + margin-top: 5px; + min-width: 10px; + min-height: 10px; + background-color: #FF0000; + border-radius: 10px; + } + \ No newline at end of file diff --git a/client/src/pages/flow/analytics.vue.BAK b/client/src/pages/flow/analytics.vue.BAK new file mode 100644 index 0000000..7602cb6 --- /dev/null +++ b/client/src/pages/flow/analytics.vue.BAK @@ -0,0 +1,659 @@ + + + + + + + + \ No newline at end of file From 797ebd631c0951a10ed51b7098fbc39920cadf46 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Thu, 30 Aug 2018 14:18:11 +0530 Subject: [PATCH 214/419] UI fix --- client/src/components/cellRender.vue | 4 +++- client/src/pages/flow/analytics.vue | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/client/src/components/cellRender.vue b/client/src/components/cellRender.vue index adfe3ab..6c5035e 100644 --- a/client/src/components/cellRender.vue +++ b/client/src/components/cellRender.vue @@ -65,6 +65,7 @@ v-model="dataModal" title="Data" @on-ok="ok" + width="1000" @on-cancel="cancel">
    @@ -235,6 +236,7 @@ export default { min-height: 3px; background-color: #00FF00; margin-top: 2px; + margin-left: 11px; } .pendingTask{ @@ -242,7 +244,7 @@ export default { position: relative; min-width: 100%; min-height: 3px; - background-color: #EEEEEE; + background-color: #DADADA; margin-top: 2px; } diff --git a/client/src/pages/flow/analytics.vue b/client/src/pages/flow/analytics.vue index 94110c9..afd9e1c 100644 --- a/client/src/pages/flow/analytics.vue +++ b/client/src/pages/flow/analytics.vue @@ -183,7 +183,7 @@ export default { } } tableCols.splice(0, 0, { - title: 'instanceId', + title: 'Instance Id', key: 'id', firstColumn: true, width: 270, From 5fa765d0b42e3ad345e0d9b1a54dd9e8cbc5116e Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 30 Aug 2018 14:27:22 +0530 Subject: [PATCH 215/419] demo-chart-at-dashboard --- client/index.html | 3 + client/src/area/Dashboard.vue | 217 +++++++++++++++++++++------------ client/src/pages/flow/List.vue | 6 +- 3 files changed, 147 insertions(+), 79 deletions(-) diff --git a/client/index.html b/client/index.html index f37bb35..3c7222c 100644 --- a/client/index.html +++ b/client/index.html @@ -32,6 +32,9 @@ + + +
    @@ -44,6 +48,7 @@ import flowzModel from '../api/flowz' import finstanceModel from '../api/finstance' import flowzDataModel from '../api/flowzdata' +// import CanvasJS from 'canvasjs' export default { name: 'dashboard', data () { @@ -51,7 +56,107 @@ export default { countFlowz: null, countInstances: null, countData: null, - countUsers: null + countUsers: null, + // chart: { + totalVisitors: 883000, + visitorsData: { + "New vs Returning Visitors": [{ + click: this.visitorsChartDrilldownHandler, + cursor: "pointer", + explodeOnClick: false, + innerRadius: "75%", + legendMarkerType: "square", + name: "New vs Returning Visitors", + radius: "100%", + showInLegend: true, + startAngle: 90, + type: "doughnut", + dataPoints: [ + { y: 519960, name: "New Visitors", color: "#E7823A" }, + { y: 363040, name: "Returning Visitors", color: "#546BC1" } + ] + }], + "New Visitors": [{ + color: "#E7823A", + name: "New Visitors", + type: "column", + dataPoints: [ + { x: new Date("1 Jan 2015"), y: 33000 }, + { x: new Date("1 Feb 2015"), y: 35960 }, + { x: new Date("1 Mar 2015"), y: 42160 }, + { x: new Date("1 Apr 2015"), y: 42240 }, + { x: new Date("1 May 2015"), y: 43200 }, + { x: new Date("1 Jun 2015"), y: 40600 }, + { x: new Date("1 Jul 2015"), y: 42560 }, + { x: new Date("1 Aug 2015"), y: 44280 }, + { x: new Date("1 Sep 2015"), y: 44800 }, + { x: new Date("1 Oct 2015"), y: 48720 }, + { x: new Date("1 Nov 2015"), y: 50840 }, + { x: new Date("1 Dec 2015"), y: 51600 } + ] + }], + "Returning Visitors": [{ + color: "#546BC1", + name: "Returning Visitors", + type: "column", + dataPoints: [ + { x: new Date("1 Jan 2015"), y: 22000 }, + { x: new Date("1 Feb 2015"), y: 26040 }, + { x: new Date("1 Mar 2015"), y: 25840 }, + { x: new Date("1 Apr 2015"), y: 23760 }, + { x: new Date("1 May 2015"), y: 28800 }, + { x: new Date("1 Jun 2015"), y: 29400 }, + { x: new Date("1 Jul 2015"), y: 33440 }, + { x: new Date("1 Aug 2015"), y: 37720 }, + { x: new Date("1 Sep 2015"), y: 35200 }, + { x: new Date("1 Oct 2015"), y: 35280 }, + { x: new Date("1 Nov 2015"), y: 31160 }, + { x: new Date("1 Dec 2015"), y: 34400 } + ] + }] + }, + // }, + newVSReturningVisitorsOptions: { + animationEnabled: true, + theme: "light2", + title: { + text: "New VS Returning Visitors" + }, + subtitles: [{ + text: "Click on Any Segment to Drilldown", + backgroundColor: "#2eacd1", + fontSize: 16, + fontColor: "white", + padding: 5 + }], + legend: { + fontFamily: "calibri", + fontSize: 14, + itemTextFormatter: (e) => { + return e.dataPoint.name + ": " + Math.round(e.dataPoint.y / this.totalVisitors * 100) + "%"; + } + }, + data: [] + }, + visitorsDrilldownedChartOptions: { + animationEnabled: true, + theme: "light2", + axisX: { + labelFontColor: "#717171", + lineColor: "#a2a2a2", + tickColor: "#a2a2a2" + }, + axisY: { + gridThickness: 0, + includeZero: false, + labelFontColor: "#717171", + lineColor: "#a2a2a2", + tickColor: "#a2a2a2", + lineThickness: 1 + }, + data: [] + }, + chart: null } }, methods: { @@ -71,10 +176,25 @@ export default { console.log('resp data:', res) this.countData = res.total }) + }, + visitorsChartDrilldownHandler(e) { + this.chart = new CanvasJS.Chart("chartContainer", this.visitorsDrilldownedChartOptions); + this.chart.options.data = this.visitorsData[e.dataPoint.name]; + this.chart.options.title = { text: e.dataPoint.name } + this.chart.render(); + // $("#backButton").toggleClass("invisiblex") + }, + backButton () { + this.chart = new CanvasJS.Chart("chartContainer", this.newVSReturningVisitorsOptions); + this.chart.options.data = this.visitorsData["New vs Returning Visitors"]; + this.chart.render() } }, mounted () { this.init() + this.chart = new CanvasJS.Chart("chartContainer", this.newVSReturningVisitorsOptions); + this.chart.options.data = this.visitorsData["New vs Returning Visitors"]; + this.chart.render(); } } @@ -138,80 +258,21 @@ export default { font-size: 18px; } - \ No newline at end of file + \ No newline at end of file diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index 606bd0d..ae6a2b2 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -381,6 +381,10 @@ export default { title: 'Name', key: 'ProcessName' }, + { + title: 'Id', + key: 'id' + }, { title: 'Notes', key: 'notes' @@ -388,7 +392,7 @@ export default { { title: 'Action', key: 'action', - width: 400, + width: 300, align: 'center', render: (h, params) => { return h('div', [ From 96c44c3f8e37928a308dbe427629fa9c9b9dc99e Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 30 Aug 2018 14:42:20 +0530 Subject: [PATCH 216/419] resolve-eslint --- client/src/pages/flow/List.vue | 2 +- client/src/pages/flow/New.vue | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index 6761ae5..740f4c5 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -859,7 +859,7 @@ export default { subscriptionId: this.value2, name: obj.label2, role: { - [this.flowId]: this.value1.toLowerCase() + [this.flowId]: this.value1.toLowerCase() }, fromEmail: this.$store.state.user.email } diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 7438a1e..2c28094 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -313,15 +313,12 @@ executeAny: m['_camunda:executeIfAny'] !== undefined ? ((m['_camunda:executeIfAny']) ? m['_camunda:countany'] : false) : false, // isProcessTask: m.workerType.toLowerCase() === 'tweet' ? 'true' : false, target: m.outgoing ? self.getTargetId(m, jsonXML) : [], - // mapping: (_.union(..._mapping)), // configurations: self.getConfigurationsProperties(m), smtp: self.getSMTPProperties(m), emailbutton: self.emailButton(m, jsonXML) // inputProperty: await self.getInputProperties(m), // outputProperty: await self.getOutputProperties(m) - - } } else { return { @@ -333,7 +330,6 @@ executeAny: m['_camunda:executeIfAny'] !== undefined ? ((m['_camunda:executeIfAny']) ? m['_camunda:countany'] : false) : false, // isProcessTask: m.workerType.toLowerCase() === 'tweet' ? 'true' : false, target: m.outgoing ? self.getTargetId(m, jsonXML) : [], - // mapping: (_.union(..._mapping)), emailbutton: self.emailButton(m, jsonXML) // configurations: self.getConfigurationsProperties(m), From ec3c4936b2a74a867960765957d9a4c23709ed66 Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 30 Aug 2018 16:19:14 +0530 Subject: [PATCH 217/419] button-label-issue-resolved --- client/src/components/SchemaView.vue | 4 +++- client/src/pages/flow/New.vue | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 6b98c09..7a62caa 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -662,7 +662,9 @@ export default { let arr = {} for (let index = 0; index < nextTargetId.target.length; index++) { let target = _.find(this.flowData.json.processList, {'id': nextTargetId.target[index].id}) - arr[target.emailbutton.buttonLabel] = target.id + if (target.hasOwnProperty('emailbutton')) { + arr[target.emailbutton.buttonLabel] = target.id + } } this.btnArr = arr } else { diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 2c28094..328a56c 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -363,7 +363,6 @@ }).value()) }, getTargetId (event, process) { - let buttonLabel = null if (!_.isArray(event.outgoing)) { event.outgoing = [event.outgoing] } @@ -373,8 +372,7 @@ }).map((m) => { return { id: m._targetRef, - outputid: m.extensionElements !== undefined ? m.extensionElements.myIOMapping.mapping._producer : '', - buttonLabel: buttonLabel + outputid: m.extensionElements !== undefined ? m.extensionElements.myIOMapping.mapping._producer : '' } }).value()[0] // return { id: targetMap.__text } From 65e581f39be10d9532a6bbb277e2739616570088 Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 30 Aug 2018 18:32:21 +0530 Subject: [PATCH 218/419] files name shows if file is attached --- client/src/components/SchemaSubFormView.vue | 100 +++++++++++++------- client/src/components/SchemaView.vue | 2 + 2 files changed, 66 insertions(+), 36 deletions(-) diff --git a/client/src/components/SchemaSubFormView.vue b/client/src/components/SchemaSubFormView.vue index 8bd9346..acc36a8 100644 --- a/client/src/components/SchemaSubFormView.vue +++ b/client/src/components/SchemaSubFormView.vue @@ -48,23 +48,49 @@ -
    -
    +
    +
    +
    +
    + {{field.name}} +
    +
    +
    +
    +
    +
    + +
    + {{field.name}}
    -
    -
    +
    -->
    @@ -78,7 +104,7 @@ // import $ from 'jquery' import SchemaSubFormView from './SchemaSubFormView' import axios from 'axios' -import moment from 'moment' +// import moment from 'moment' var AWS = require('aws-sdk') AWS.config.update({ @@ -101,35 +127,37 @@ export default { getStyle (field) { if (field.customtype) { return 'display: inline-block; width: 97%; margin-top: 20px; background-color: rgba(0,0,0,0.2)' + } else if (field.type === 'file') { + return 'display: block; width: 97%; margin-top: 20px;' } else { return 'display: inline-block; width: 49%; margin-top: 20px;' } }, - handleFileChange (e, index, fieldName) { - let self = this - var files = e.target.files || e.dataTransfer.files - let allFiles = [] - if (files.length > 0) { - // console.log('files', files[0]) - for (let i = 0; i < files.length; i++) { - let bucket = new AWS.S3({ params: { Bucket: 'airflowbucket1/obexpense/expenses' } }) - var params = { - Key: moment().valueOf().toString() + i + files[i].name, - ContentType: files[i].type, - Body: files[i] - } - bucket.upload(params).on('httpUploadProgress', function (evt) { - }).send(function (err, data) { - if (err) { - alert(err) - } else { - allFiles.push(data.Location) - } - }) - } - } - self.schemainstance.data[index][fieldName] = allFiles - }, + // handleFileChange (e, index, fieldName) { + // let self = this + // var files = e.target.files || e.dataTransfer.files + // let allFiles = [] + // if (files.length > 0) { + // // console.log('files', files[0]) + // for (let i = 0; i < files.length; i++) { + // let bucket = new AWS.S3({ params: { Bucket: 'airflowbucket1/obexpense/expenses' } }) + // var params = { + // Key: moment().valueOf().toString() + i + files[i].name, + // ContentType: files[i].type, + // Body: files[i] + // } + // bucket.upload(params).on('httpUploadProgress', function (evt) { + // }).send(function (err, data) { + // if (err) { + // alert(err) + // } else { + // allFiles.push(data.Location) + // } + // }) + // } + // } + // self.schemainstance.data[index][fieldName] = allFiles + // }, async getChildData (id) { // alert(id) var arrObj = [] diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 6b98c09..856f729 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -957,6 +957,8 @@ export default { } }, mounted () { + this.schemabinding = false + this.email = false flowzModel.get(null, { id: this.$route.params.id }) From 760440f283ddd1bd9b2ba1f14023b259499daec0 Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 31 Aug 2018 09:44:54 +0530 Subject: [PATCH 219/419] change name of attachment --- client/src/components/SchemaSubFormView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/SchemaSubFormView.vue b/client/src/components/SchemaSubFormView.vue index acc36a8..147bd14 100644 --- a/client/src/components/SchemaSubFormView.vue +++ b/client/src/components/SchemaSubFormView.vue @@ -60,7 +60,7 @@ From 9ce88bb0926f2648d61355c1c8a13e9c2a698d5f Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 31 Aug 2018 09:47:58 +0530 Subject: [PATCH 220/419] Code optimization --- client/src/components/SchemaSubFormView.vue | 110 -------------------- 1 file changed, 110 deletions(-) diff --git a/client/src/components/SchemaSubFormView.vue b/client/src/components/SchemaSubFormView.vue index 147bd14..53f3892 100644 --- a/client/src/components/SchemaSubFormView.vue +++ b/client/src/components/SchemaSubFormView.vue @@ -32,22 +32,8 @@
    - - - - - -
    @@ -56,7 +42,6 @@
    - @@ -101,10 +63,8 @@ - - From 0e1661911c84379ce5e72c623de2cc7e6d20bdf3 Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 31 Aug 2018 17:02:54 +0530 Subject: [PATCH 221/419] dynamic button generation based on relation and process name --- client/src/components/SchemaView.vue | 23 ++++++++- client/src/pages/flow/New.vue | 73 +++++++--------------------- 2 files changed, 39 insertions(+), 57 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 0779d1e..7cac74a 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -652,18 +652,22 @@ export default { nextTargetId = _.find(this.flowData.json.processList, {'id': currentStageObject.target[0].id}) } if (nextTargetId.type === 'sendproofmail') { + console.log('nextTargetId', nextTargetId) this.id = null this.schemabinding = true + console.log(this.formSchemaInstance) setTimeout(() => { this.sendDataEmail = '' + ' ' + this.$refs.schemasubformview.$el.outerHTML this.email = true }, 1000) + let flag = false if (nextTargetId.target.length > 1) { let arr = {} for (let index = 0; index < nextTargetId.target.length; index++) { let target = _.find(this.flowData.json.processList, {'id': nextTargetId.target[index].id}) - if (target.hasOwnProperty('emailbutton')) { - arr[target.emailbutton.buttonLabel] = target.id + if (nextTargetId.target[index].hasOwnProperty('label')) { + arr[nextTargetId.target[index].label] = target.id + flag = true } } this.btnArr = arr @@ -672,6 +676,21 @@ export default { arr['approve'] = nextTargetId.target[0].id this.btnArr = arr } + if (flag == false) { + if (nextTargetId.target.length > 1) { + let arr = {} + for (let index = 0; index < nextTargetId.target.length; index++) { + let target = _.find(this.flowData.json.processList, {'id': nextTargetId.target[index].id}) + console.log('target', target) + arr[target.name] = target.id + } + this.btnArr = arr + } else { + let arr = {} + arr['approve'] = nextTargetId.target[0].id + this.btnArr = arr + } + } } else { this.saveDataMethod() } diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 328a56c..3ea0fc0 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -67,6 +67,8 @@ permissions: ['read', 'write'], loading: true, processData: [], + buttonArray: [], + buttonArrayTemp: [], btnLoading: false, processVar: null, bpmnModeler: null, @@ -315,8 +317,8 @@ target: m.outgoing ? self.getTargetId(m, jsonXML) : [], // mapping: (_.union(..._mapping)), // configurations: self.getConfigurationsProperties(m), - smtp: self.getSMTPProperties(m), - emailbutton: self.emailButton(m, jsonXML) + smtp: self.getSMTPProperties(m) + // emailbutton: self.emailButton(m, jsonXML) // inputProperty: await self.getInputProperties(m), // outputProperty: await self.getOutputProperties(m) } @@ -329,9 +331,9 @@ type: m.workerType.toLowerCase(), executeAny: m['_camunda:executeIfAny'] !== undefined ? ((m['_camunda:executeIfAny']) ? m['_camunda:countany'] : false) : false, // isProcessTask: m.workerType.toLowerCase() === 'tweet' ? 'true' : false, - target: m.outgoing ? self.getTargetId(m, jsonXML) : [], + target: m.outgoing ? self.getTargetId(m, jsonXML) : [] // mapping: (_.union(..._mapping)), - emailbutton: self.emailButton(m, jsonXML) + // emailbutton: self.emailButton(m, jsonXML) // configurations: self.getConfigurationsProperties(m), // inputProperty: await self.getInputProperties(m), // outputProperty: await self.getOutputProperties(m) @@ -368,11 +370,20 @@ } return _.map(event.outgoing, (targetMap) => { return _.chain(process.sequenceFlow).filter((ftr) => { + // console.log('ftr._id', ftr._id) return ftr._id === targetMap.__text }).map((m) => { - return { - id: m._targetRef, - outputid: m.extensionElements !== undefined ? m.extensionElements.myIOMapping.mapping._producer : '' + if (m._name !== undefined && m._name !== '') { + return { + label: m._name, + id: m._targetRef, + outputid: m.extensionElements !== undefined ? m.extensionElements.myIOMapping.mapping._producer : '' + } + } else { + return { + id: m._targetRef, + outputid: m.extensionElements !== undefined ? m.extensionElements.myIOMapping.mapping._producer : '' + } } }).value()[0] // return { id: targetMap.__text } @@ -406,54 +417,6 @@ return null } }, - emailButton (process, xml) { - this.processData.push({'process': process}) - if (process['_camunda:buttonLabel'] !== undefined && process['_camunda:buttonLabel'] !== null && process['_camunda:isButton'] === 'true') { - return { - buttonLabel: process['_camunda:buttonLabel'] - } - } else { - let flag = false - if ((process['_camunda:buttonLabel'] === undefined || process['_camunda:buttonLabel'] === null) && process['_camunda:isButton'] === 'true') { - let dummyVar = [] - for (let i = 0; i < process.incoming.length; i++) { - dummyVar.push({'name': process.incoming[i].__text}) - } - for (let i = 0; i < this.processData.length; i++) { - for (let j = 0; j < dummyVar.length; j++) { - if (this.processData[i].process.outgoing !== undefined) { - for (let k = 0; k < this.processData[i].process.outgoing.length; k++) { - if (dummyVar[j].name === this.processData[i].process.outgoing[k].__text && this.processData[i].process.workerType === 'sendproofmail') { - for (let index = 0; index < xml.sequenceFlow.length; index++) { - if (xml.sequenceFlow[index]._id === dummyVar[j].name) { - if (xml.sequenceFlow[index]._name.length > 0) { - flag = true - return { - buttonLabel: xml.sequenceFlow[index]._name - } - } - } - } - } - } - } - } - } - if (flag === false) { - if (process._name !== undefined && process._name !== null) { - return { - buttonLabel: process._name - } - } else { - return { - buttonLabel: process._id - } - } - } - flag = false - } - } - }, async getInputProperties (proccess) { if (proccess.extensionElements && proccess.extensionElements.myInputs) { if (!_.isArray(proccess.extensionElements.myInputs.input)) { From 46a40377481d8fb468508c31d6006901e3c81abc Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 31 Aug 2018 18:18:51 +0530 Subject: [PATCH 222/419] Code Optimization --- .../provider/bpmn/BpmnPropertiesProvider.js | 12 +- .../provider/bpmn/parts/ExecutableProps.js | 36 +-- .../camunda/CamundaPropertiesProvider.js | 278 +++++++++--------- .../provider/camunda/parts/CapacityProps.js | 100 +++---- .../camunda/parts/SequenceFlowProps.js | 278 +++++++++--------- .../resources/camunda.json | 4 - 6 files changed, 352 insertions(+), 356 deletions(-) diff --git a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/bpmn/BpmnPropertiesProvider.js b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/bpmn/BpmnPropertiesProvider.js index a608f97..ce749ff 100644 --- a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/bpmn/BpmnPropertiesProvider.js +++ b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/bpmn/BpmnPropertiesProvider.js @@ -33,13 +33,13 @@ function createGeneralTabGroups(element, bpmnFactory, elementRegistry, translate linkProps(detailsGroup, element, translate); eventProps(detailsGroup, element, bpmnFactory, elementRegistry, translate); - var documentationGroup = { - id: 'documentation', - label: translate('Documentation'), - entries: [] - }; + // var documentationGroup = { + // id: 'documentation', + // label: translate('Documentation'), + // entries: [] + // }; - documentationProps(documentationGroup, element, bpmnFactory, translate); + // documentationProps(documentationGroup, element, bpmnFactory, translate); return [ generalGroup, diff --git a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js index e3dc6f5..4cb9501 100644 --- a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js +++ b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/bpmn/parts/ExecutableProps.js @@ -17,24 +17,24 @@ module.exports = function(group, element, translate) { if (is(element, 'bpmn:Process') || (is(element, 'bpmn:Participant') && bo.get('processRef'))) { - var executableEntry = entryFactory.checkbox({ - id: 'process-is-executable', - label: translate('Executable'), - modelProperty: 'isExecutable' - }); - - // in participants we have to change the default behavior of set and get - if (is(element, 'bpmn:Participant')) { - executableEntry.get = function(element) { - return participantHelper.getProcessBusinessObject(element, 'isExecutable'); - }; - - executableEntry.set = function(element, values) { - return participantHelper.modifyProcessBusinessObject(element, 'isExecutable', values); - }; - } - - group.entries.push(executableEntry); + // var executableEntry = entryFactory.checkbox({ + // id: 'process-is-executable', + // label: translate('Executable'), + // modelProperty: 'isExecutable' + // }); + + // // in participants we have to change the default behavior of set and get + // if (is(element, 'bpmn:Participant')) { + // executableEntry.get = function(element) { + // return participantHelper.getProcessBusinessObject(element, 'isExecutable'); + // }; + + // executableEntry.set = function(element, values) { + // return participantHelper.modifyProcessBusinessObject(element, 'isExecutable', values); + // }; + // } + + // group.entries.push(executableEntry); } }; diff --git a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js index 11f1008..53647d2 100644 --- a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js +++ b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/CamundaPropertiesProvider.js @@ -8,24 +8,24 @@ var is = require('bpmn-js/lib/util/ModelUtil').is; var processProps = require('../bpmn/parts/ProcessProps'), eventProps = require('../bpmn/parts/EventProps'), linkProps = require('../bpmn/parts/LinkProps'), - documentationProps = require('../bpmn/parts/DocumentationProps'), + // documentationProps = require('../bpmn/parts/DocumentationProps'), idProps = require('../bpmn/parts/IdProps'), - nameProps = require('../bpmn/parts/NameProps'), - executableProps = require('../bpmn/parts/ExecutableProps'); + nameProps = require('../bpmn/parts/NameProps'); + // executableProps = require('../bpmn/parts/ExecutableProps') // camunda properties var serviceTaskDelegateProps = require('./parts/ServiceTaskDelegateProps'), userTaskProps = require('./parts/UserTaskProps'), - asynchronousContinuationProps = require('./parts/AsynchronousContinuationProps'), + // asynchronousContinuationProps = require('./parts/AsynchronousContinuationProps'), callActivityProps = require('./parts/CallActivityProps'), multiInstanceProps = require('./parts/MultiInstanceLoopProps'), sequenceFlowProps = require('./parts/SequenceFlowProps'), scriptProps = require('./parts/ScriptTaskProps'), formProps = require('./parts/FormProps'), - myInputProps = require('./parts/MyInputProps'), + // myInputProps = require('./parts/MyInputProps'), myPropertiesIOProps = require('./parts/myPropertiesIOProps'), schemaProps = require('./parts/schemaProps'), myOutputProps = require('./parts/myOutputProps'), - myConfigProps = require('./parts/MyConfigProps'), + // myConfigProps = require('./parts/MyConfigProps'), mySMTPProps = require('./parts/MySMTPProps'), // myRoles = require('./parts/MyRoles'), capacityProps = require('./parts/CapacityProps'), @@ -48,11 +48,11 @@ var connectorDetails = require('./parts/ConnectorDetailProps'), // properties var properties = require('./parts/PropertiesProps'); // job configuration -var jobConfiguration = require('./parts/JobConfigurationProps'); +// var jobConfiguration = require('./parts/JobConfigurationProps'); // history time to live -var historyTimeToLive = require('./parts/HistoryTimeToLiveProps'); +// var historyTimeToLive = require('./parts/HistoryTimeToLiveProps'); // external task configuration -var externalTaskConfiguration = require('./parts/ExternalTaskConfigurationProps'); +// var externalTaskConfiguration = require('./parts/ExternalTaskConfigurationProps'); // field injection var fieldInjections = require('./parts/FieldInjectionProps'); var getBusinessObject = require('bpmn-js/lib/util/ModelUtil').getBusinessObject, @@ -117,7 +117,7 @@ function createGeneralTabGroups(element, bpmnFactory, elementRegistry, elementTe capacityProps(generalGroup, element, translate); processProps(generalGroup, element, translate); versionTag(generalGroup, element, translate); - executableProps(generalGroup, element, translate); + // executableProps(generalGroup, element, translate); elementTemplateChooserProps(generalGroup, element, elementTemplates, translate); var customFieldsGroup = { id: 'customField', @@ -144,48 +144,48 @@ function createGeneralTabGroups(element, bpmnFactory, elementRegistry, elementTe entries: [] }; multiInstanceProps(multiInstanceGroup, element, bpmnFactory, translate); - var asyncGroup = { - id: 'async', - label: translate('Asynchronous Continuations'), - entries: [] - }; - asynchronousContinuationProps(asyncGroup, element, bpmnFactory, translate); - var jobConfigurationGroup = { - id: 'jobConfiguration', - label: translate('Job Configuration'), - entries: [], - enabled: isJobConfigEnabled - }; - jobConfiguration(jobConfigurationGroup, element, bpmnFactory, translate); - var externalTaskGroup = { - id: 'externalTaskConfiguration', - label: translate('External Task Configuration'), - entries: [], - enabled: isExternalTaskPriorityEnabled - }; - externalTaskConfiguration(externalTaskGroup, element, bpmnFactory, translate); - var documentationGroup = { - id: 'documentation', - label: translate('Documentation'), - entries: [] - }; - documentationProps(documentationGroup, element, bpmnFactory, translate); - var historyTimeToLiveGroup = { - id: 'historyConfiguration', - label: translate('History Configuration'), - entries: [] - }; - historyTimeToLive(historyTimeToLiveGroup, element, bpmnFactory, translate); + // var asyncGroup = { + // id: 'async', + // label: translate('Asynchronous Continuations'), + // entries: [] + // }; + // asynchronousContinuationProps(asyncGroup, element, bpmnFactory, translate); + // var jobConfigurationGroup = { + // id: 'jobConfiguration', + // label: translate('Job Configuration'), + // entries: [], + // enabled: isJobConfigEnabled + // }; + // jobConfiguration(jobConfigurationGroup, element, bpmnFactory, translate); + // var externalTaskGroup = { + // id: 'externalTaskConfiguration', + // label: translate('External Task Configuration'), + // entries: [], + // enabled: isExternalTaskPriorityEnabled + // }; + // externalTaskConfiguration(externalTaskGroup, element, bpmnFactory, translate); + // var documentationGroup = { + // id: 'documentation', + // label: translate('Documentation'), + // entries: [] + // }; + // documentationProps(documentationGroup, element, bpmnFactory, translate); + // var historyTimeToLiveGroup = { + // id: 'historyConfiguration', + // label: translate('History Configuration'), + // entries: [] + // }; + // historyTimeToLive(historyTimeToLiveGroup, element, bpmnFactory, translate); return [ generalGroup, customFieldsGroup, detailsGroup, - externalTaskGroup, + // externalTaskGroup, multiInstanceGroup, - asyncGroup, - jobConfigurationGroup, - documentationGroup, - historyTimeToLiveGroup + // asyncGroup, + // jobConfigurationGroup, + // documentationGroup, + // historyTimeToLiveGroup ]; } @@ -214,35 +214,35 @@ function createFormsTabGroups(element, bpmnFactory, elementRegistry, translate) } var options = null -function createMyPropertiesTabGroups(element, bpmnFactory, elementRegistry, translate, data) { - if (data != undefined) { - options = data - } - var inputGroup = { - id: 'Input', - label: translate('Input'), - entries: [] - }; - myInputProps(inputGroup, element, bpmnFactory, translate, options); - return [ - inputGroup - ]; -} +// function createMyPropertiesTabGroups(element, bpmnFactory, elementRegistry, translate, data) { +// if (data != undefined) { +// options = data +// } +// var inputGroup = { +// id: 'Input', +// label: translate('Input'), +// entries: [] +// }; +// myInputProps(inputGroup, element, bpmnFactory, translate, options); +// return [ +// inputGroup +// ]; +// } -function createIOMappingGroups(element, bpmnFactory, elementRegistry, translate, data) { - if (data != undefined) { - options = data - } - var propertiesGroup = { - id: 'ioMapping', - label: translate('IO Mapping'), - entries: [] - }; - myPropertiesIOProps(propertiesGroup, element, bpmnFactory, translate, options); - return [ - propertiesGroup - ]; -} +// function createIOMappingGroups(element, bpmnFactory, elementRegistry, translate, data) { +// if (data != undefined) { +// options = data +// } +// var propertiesGroup = { +// id: 'ioMapping', +// label: translate('IO Mapping'), +// entries: [] +// }; +// myPropertiesIOProps(propertiesGroup, element, bpmnFactory, translate, options); +// return [ +// propertiesGroup +// ]; +// } function createOutputGroups(element, bpmnFactory, elementRegistry, translate, data) { if (data != undefined) { @@ -278,17 +278,17 @@ function createAddRolesTabGroups(element, bpmnFactory, elementRegistry, translat ]; } -function createConfigGroups(element, bpmnFactory, elementRegistry, translate, data) { - var configGroup = { - id: 'configs', - label: translate('Config'), - entries: [] - } - myConfigProps(configGroup, element, bpmnFactory, translate) - return [ - configGroup - ] -} +// function createConfigGroups(element, bpmnFactory, elementRegistry, translate, data) { +// var configGroup = { +// id: 'configs', +// label: translate('Config'), +// entries: [] +// } +// myConfigProps(configGroup, element, bpmnFactory, translate) +// return [ +// configGroup +// ] +// } function createsmtpConfig(element, bpmnFactory, elementRegistry, translate, data) { var configGroup = { @@ -349,30 +349,30 @@ function createListenersTabGroups(element, bpmnFactory, elementRegistry, transla ]; } -function createInputOutputTabGroups(element, bpmnFactory, elementRegistry, translate) { - var inputOutputGroup = { - id: 'input-output', - label: translate('Parameters'), - entries: [] - }; - var options = inputOutput(inputOutputGroup, element, bpmnFactory, translate); - var inputOutputParameterGroup = { - id: 'input-output-parameter', - entries: [], - enabled: function (element, node) { - return options.getSelectedParameter(element, node); - }, - label: function (element, node) { - var param = options.getSelectedParameter(element, node); - return getInputOutputParameterLabel(param, translate); - } - }; - inputOutputParameter(inputOutputParameterGroup, element, bpmnFactory, options, translate); - return [ - inputOutputGroup, - inputOutputParameterGroup - ]; -} +// function createInputOutputTabGroups(element, bpmnFactory, elementRegistry, translate) { +// var inputOutputGroup = { +// id: 'input-output', +// label: translate('Parameters'), +// entries: [] +// }; +// var options = inputOutput(inputOutputGroup, element, bpmnFactory, translate); +// var inputOutputParameterGroup = { +// id: 'input-output-parameter', +// entries: [], +// enabled: function (element, node) { +// return options.getSelectedParameter(element, node); +// }, +// label: function (element, node) { +// var param = options.getSelectedParameter(element, node); +// return getInputOutputParameterLabel(param, translate); +// } +// }; +// inputOutputParameter(inputOutputParameterGroup, element, bpmnFactory, options, translate); +// return [ +// inputOutputGroup, +// inputOutputParameterGroup +// ]; +// } function createConnectorTabGroups(element, bpmnFactory, elementRegistry, translate) { var connectorDetailsGroup = { @@ -461,16 +461,16 @@ function CamundaPropertiesProvider(eventBus, bpmnFactory, elementRegistry, eleme // label: translate('Roles'), // groups: createRoles(element, bpmnFactory, elementRegistry, translate) // }; - var ioMapping = { - id: 'IOMapping', - label: translate('I/O Mapping'), - groups: createIOMappingGroups(element, bpmnFactory, elementRegistry, translate) - }; - var propertiesTab = { - id: 'Input', - label: translate('Input'), - groups: createMyPropertiesTabGroups(element, bpmnFactory, elementRegistry, translate, data) - }; + // var ioMapping = { + // id: 'IOMapping', + // label: translate('I/O Mapping'), + // groups: createIOMappingGroups(element, bpmnFactory, elementRegistry, translate) + // }; + // var propertiesTab = { + // id: 'Input', + // label: translate('Input'), + // groups: createMyPropertiesTabGroups(element, bpmnFactory, elementRegistry, translate, data) + // }; var variablesTab = { id: 'variables', label: translate('Variables'), @@ -491,11 +491,11 @@ function CamundaPropertiesProvider(eventBus, bpmnFactory, elementRegistry, eleme eventDefinitionHelper.getLinkEventDefinition(element)); } }; - var inputOutputTab = { - id: 'input-output', - label: translate('Input/Output'), - groups: createInputOutputTabGroups(element, bpmnFactory, elementRegistry, translate) - }; + // var inputOutputTab = { + // id: 'input-output', + // label: translate('Input/Output'), + // groups: createInputOutputTabGroups(element, bpmnFactory, elementRegistry, translate) + // }; var connectorTab = { id: 'connector', label: translate('Connector'), @@ -515,21 +515,21 @@ function CamundaPropertiesProvider(eventBus, bpmnFactory, elementRegistry, eleme label: translate('Extensions'), groups: createExtensionElementsGroups(element, bpmnFactory, elementRegistry, translate) }; - var outputTab = { - id: 'Output', - label: translate('Output'), - groups: createOutputGroups(element, bpmnFactory, elementRegistry, translate) - }; + // var outputTab = { + // id: 'Output', + // label: translate('Output'), + // groups: createOutputGroups(element, bpmnFactory, elementRegistry, translate) + // }; var addRoles = { id: 'addRoles', label: translate('Add Roles'), groups: createAddRolesTabGroups(element, bpmnFactory,elementRegistry, translate) }; - var configTab = { - id: 'Configuration', - label: translate('Config'), - groups: createConfigGroups(element, bpmnFactory, elementRegistry, translate) - } + // var configTab = { + // id: 'Configuration', + // label: translate('Config'), + // groups: createConfigGroups(element, bpmnFactory, elementRegistry, translate) + // } var smtpTab = { id: 'ConfigurationSMTP', label: translate('smtp'), @@ -537,14 +537,14 @@ function CamundaPropertiesProvider(eventBus, bpmnFactory, elementRegistry, eleme } return [ generalTab, - ioMapping, + // ioMapping, // roles, addRoles, // variablesTab, // connectorTab, - propertiesTab, - outputTab, - configTab, + // propertiesTab, + // outputTab, + // configTab, smtpTab // formsTab, // listenersTab, diff --git a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/CapacityProps.js b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/CapacityProps.js index c3f5735..663dcf5 100644 --- a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/CapacityProps.js +++ b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/CapacityProps.js @@ -11,57 +11,57 @@ module.exports = function(group, element, translate) { return; } // capacity - group.entries.push(entryFactory.checkbox({ - id: 'is-form-input', - label: translate('Is Form Input'), - modelProperty: 'isFormInput' - })) - group.entries.push(entryFactory.textField({ - id: 'capacity', - label: 'Capacity', - modelProperty: 'capacity', - hidden: function(element, node) { - var bo = getBusinessObject(element); - var isFormInput = bo.get('camunda:isFormInput'); - return !isFormInput - } - })) + // group.entries.push(entryFactory.checkbox({ + // id: 'is-form-input', + // label: translate('Is Form Input'), + // modelProperty: 'isFormInput' + // })) + // group.entries.push(entryFactory.textField({ + // id: 'capacity', + // label: 'Capacity', + // modelProperty: 'capacity', + // hidden: function(element, node) { + // var bo = getBusinessObject(element); + // var isFormInput = bo.get('camunda:isFormInput'); + // return !isFormInput + // } + // })) // button label - group.entries.push(entryFactory.checkbox({ - id: 'isButton', - label: translate('Is Button'), - modelProperty: 'isButton' - })) - group.entries.push(entryFactory.textField({ - id: 'buttonLabel', - label: 'Button Label', - modelProperty: 'buttonLabel', - hidden: function (element, node) { - var bo = getBusinessObject(element); - var isFormInput = bo.get('camunda:isButton'); - return !isFormInput - } - })) + // group.entries.push(entryFactory.checkbox({ + // id: 'isButton', + // label: translate('Is Button'), + // modelProperty: 'isButton' + // })) + // group.entries.push(entryFactory.textField({ + // id: 'buttonLabel', + // label: 'Button Label', + // modelProperty: 'buttonLabel', + // hidden: function (element, node) { + // var bo = getBusinessObject(element); + // var isFormInput = bo.get('camunda:isButton'); + // return !isFormInput + // } + // })) //Execute Any - group.entries.push(entryFactory.checkbox({ - id: 'execute-if-any', - label: translate('Execute if Any'), - modelProperty: 'executeIfAny' - })) - group.entries.push(entryFactory.textField({ - id: 'countany', - label: 'Countany', - modelProperty: 'countany', - hidden: function(element, node) { - var bo = getBusinessObject(element); - var executeIfAny = bo.get('camunda:executeIfAny'); - return !executeIfAny - } - })) + // group.entries.push(entryFactory.checkbox({ + // id: 'execute-if-any', + // label: translate('Execute if Any'), + // modelProperty: 'executeIfAny' + // })) + // group.entries.push(entryFactory.textField({ + // id: 'countany', + // label: 'Countany', + // modelProperty: 'countany', + // hidden: function(element, node) { + // var bo = getBusinessObject(element); + // var executeIfAny = bo.get('camunda:executeIfAny'); + // return !executeIfAny + // } + // })) // is Process Task - group.entries.push(entryFactory.checkbox({ - id: 'is-task-process', - label: translate('Task Process'), - modelProperty: 'isProcessTask' - })) + // group.entries.push(entryFactory.checkbox({ + // id: 'is-task-process', + // label: translate('Task Process'), + // modelProperty: 'isProcessTask' + // })) } \ No newline at end of file diff --git a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/SequenceFlowProps.js b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/SequenceFlowProps.js index 87a0ba2..2fca45e 100644 --- a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/SequenceFlowProps.js +++ b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/SequenceFlowProps.js @@ -24,145 +24,145 @@ module.exports = function(group, element, bpmnFactory, translate) { return; } - group.entries.push({ - id: 'condition', - label: translate('Condition'), - html: '
    ' + - '' + - '
    ' + - '' + - '
    ' + - '
    ' + - - // expression - '
    ' + - '' + - '
    ' + - '' + - '' + - '
    ' + - '
    ' + - script.template + - '
    ' + - '
    ', - - get: function(element, propertyName) { - - // read values from xml: - var conditionExpression = bo.conditionExpression; - - var values = {}, - conditionType = ''; - - if (conditionExpression) { - var conditionLanguage = conditionExpression.language; - if (typeof conditionLanguage !== 'undefined') { - conditionType = 'script'; - values = script.get(element, conditionExpression); - } - else { - conditionType = 'expression'; - values.condition = conditionExpression.get('body'); - } - } - - values.conditionType = conditionType; - - return values; - - }, - - set: function(element, values, containerElement) { - var conditionType = values.conditionType; - var commands = []; - - var conditionProps = { - body: undefined - }; - - if (conditionType === 'script') { - conditionProps = script.set(element, values, containerElement); - } - else { - var condition = values.condition; - conditionProps.body = condition; - } - - var update = { - 'conditionExpression': undefined - }; - - if (conditionType) { - update.conditionExpression = elementHelper.createElement( - 'bpmn:FormalExpression', - conditionProps, - bo, - bpmnFactory - ); - - var source = element.source; - - // if default-flow, remove default-property from source - if (source.businessObject.default === bo) { - commands.push(cmdHelper.updateProperties(source, { 'default': undefined })); - } - } - - commands.push(cmdHelper.updateBusinessObject(element, bo, update)); - - return commands; - }, - - validate: function(element, values) { - var validationResult = {}; - - if (!values.condition && values.conditionType === 'expression') { - validationResult.condition = 'Must provide a value'; - } - else if (values.conditionType === 'script') { - validationResult = script.validate(element, values); - } - - return validationResult; - }, - - isExpression: function(element, inputNode) { - var conditionType = domQuery('select[name=conditionType]', inputNode); - if (conditionType.selectedIndex >= 0) { - return conditionType.options[conditionType.selectedIndex].value === 'expression'; - } - }, - - isScript: function(element, inputNode) { - var conditionType = domQuery('select[name=conditionType]', inputNode); - if (conditionType.selectedIndex >= 0) { - return conditionType.options[conditionType.selectedIndex].value === 'script'; - } - }, - - clear: function(element, inputNode) { - // clear text input - domQuery('input[name=condition]', inputNode).value=''; - - return true; - }, - - canClear: function(element, inputNode) { - var input = domQuery('input[name=condition]', inputNode); - - return input.value !== ''; - }, - - script : script, - - cssClasses: [ 'bpp-textfield' ] - }); + // group.entries.push({ + // id: 'condition', + // label: translate('Condition'), + // html: '
    ' + + // '' + + // '
    ' + + // '' + + // '
    ' + + // '
    ' + + + // // expression + // '
    ' + + // '' + + // '
    ' + + // '' + + // '' + + // '
    ' + + // '
    ' + + // script.template + + // '
    ' + + // '
    ', + + // get: function(element, propertyName) { + + // // read values from xml: + // var conditionExpression = bo.conditionExpression; + + // var values = {}, + // conditionType = ''; + + // if (conditionExpression) { + // var conditionLanguage = conditionExpression.language; + // if (typeof conditionLanguage !== 'undefined') { + // conditionType = 'script'; + // values = script.get(element, conditionExpression); + // } + // else { + // conditionType = 'expression'; + // values.condition = conditionExpression.get('body'); + // } + // } + + // values.conditionType = conditionType; + + // return values; + + // }, + + // set: function(element, values, containerElement) { + // var conditionType = values.conditionType; + // var commands = []; + + // var conditionProps = { + // body: undefined + // }; + + // if (conditionType === 'script') { + // conditionProps = script.set(element, values, containerElement); + // } + // else { + // var condition = values.condition; + // conditionProps.body = condition; + // } + + // var update = { + // 'conditionExpression': undefined + // }; + + // if (conditionType) { + // update.conditionExpression = elementHelper.createElement( + // 'bpmn:FormalExpression', + // conditionProps, + // bo, + // bpmnFactory + // ); + + // var source = element.source; + + // // if default-flow, remove default-property from source + // if (source.businessObject.default === bo) { + // commands.push(cmdHelper.updateProperties(source, { 'default': undefined })); + // } + // } + + // commands.push(cmdHelper.updateBusinessObject(element, bo, update)); + + // return commands; + // }, + + // validate: function(element, values) { + // var validationResult = {}; + + // if (!values.condition && values.conditionType === 'expression') { + // validationResult.condition = 'Must provide a value'; + // } + // else if (values.conditionType === 'script') { + // validationResult = script.validate(element, values); + // } + + // return validationResult; + // }, + + // isExpression: function(element, inputNode) { + // var conditionType = domQuery('select[name=conditionType]', inputNode); + // if (conditionType.selectedIndex >= 0) { + // return conditionType.options[conditionType.selectedIndex].value === 'expression'; + // } + // }, + + // isScript: function(element, inputNode) { + // var conditionType = domQuery('select[name=conditionType]', inputNode); + // if (conditionType.selectedIndex >= 0) { + // return conditionType.options[conditionType.selectedIndex].value === 'script'; + // } + // }, + + // clear: function(element, inputNode) { + // // clear text input + // domQuery('input[name=condition]', inputNode).value=''; + + // return true; + // }, + + // canClear: function(element, inputNode) { + // var input = domQuery('input[name=condition]', inputNode); + + // return input.value !== ''; + // }, + + // script : script, + + // cssClasses: [ 'bpp-textfield' ] + // }); }; diff --git a/client/static/bpmn/camunda-bpmn-moddle/resources/camunda.json b/client/static/bpmn/camunda-bpmn-moddle/resources/camunda.json index 6259cbf..4de852d 100644 --- a/client/static/bpmn/camunda-bpmn-moddle/resources/camunda.json +++ b/client/static/bpmn/camunda-bpmn-moddle/resources/camunda.json @@ -975,10 +975,6 @@ "name": "capacity", "type": "String", "isAttr": true - },{ - "name": "isButton", - "isAttr": true, - "type": "Boolean" }, { "name": "buttonLabel", From 450636865dcfb675d7f7f8845b076d2fa21e03db Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 31 Aug 2018 18:22:28 +0530 Subject: [PATCH 223/419] remove console.log and unused variables --- client/src/components/SchemaView.vue | 2 -- client/src/pages/flow/New.vue | 2 -- 2 files changed, 4 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 7cac74a..4ba6c75 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -652,10 +652,8 @@ export default { nextTargetId = _.find(this.flowData.json.processList, {'id': currentStageObject.target[0].id}) } if (nextTargetId.type === 'sendproofmail') { - console.log('nextTargetId', nextTargetId) this.id = null this.schemabinding = true - console.log(this.formSchemaInstance) setTimeout(() => { this.sendDataEmail = '' + ' ' + this.$refs.schemasubformview.$el.outerHTML this.email = true diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 3ea0fc0..e627232 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -67,8 +67,6 @@ permissions: ['read', 'write'], loading: true, processData: [], - buttonArray: [], - buttonArrayTemp: [], btnLoading: false, processVar: null, bpmnModeler: null, From b4ea25555b73df256d6ae26dbf052cc6591346b9 Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 31 Aug 2018 18:38:13 +0530 Subject: [PATCH 224/419] editr height issue resolve and hide email template if re click on instance --- client/src/components/SchemaView.vue | 2 ++ client/src/components/email.vue | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 4ba6c75..a435dc6 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -860,6 +860,8 @@ export default { }, setValues (values) { + this.email = false + this.schemabinding = false this.nextTarget.value = '' this.nextTarget.options = [] this.isMultiple = false diff --git a/client/src/components/email.vue b/client/src/components/email.vue index 4aef752..a187d5d 100644 --- a/client/src/components/email.vue +++ b/client/src/components/email.vue @@ -133,3 +133,8 @@ import config from '@/config' } } + From edc93eba12266654cc0bc322794b72d17a6b7699 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 3 Sep 2018 09:52:23 +0530 Subject: [PATCH 225/419] Issue #322 resolced --- client/src/components/SchemaSubForm.vue | 23 +- client/src/components/SchemaSubFormView.vue | 1 + client/src/components/SchemaView.vue | 13 +- client/src/components/cellRender.vue | 220 ++++++++++---------- client/src/pages/flow/analytics.vue | 156 +++++++++----- 5 files changed, 232 insertions(+), 181 deletions(-) diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index 8fec5ea..01b8540 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -12,7 +12,7 @@ - + @@ -24,10 +24,10 @@
    -

    No Data

    +

    {{waitingText}}

    @@ -574,6 +574,7 @@ export default { roleValue1: '', input: '', // loading :false, + waitingText: '', data2: [], data3: [], data4: [], @@ -1277,6 +1278,7 @@ export default { getRoles: async function (newValue) { // this.tableData = {} var self = this + self.waitingText = 'Loading...' await axios.get(config.subscriptionUrl + 'register-roles?module=' + newValue, { headers: { 'Content-Type': 'application/x-www-form-urlencoded;' @@ -1297,6 +1299,7 @@ export default { self.callTaskList(newValue) } else { self.loadingPermisions = false + self.waitingText = 'No Data' } return response.data.data }) @@ -1314,6 +1317,7 @@ export default { } else { self.loadingPermisions = false } + self.waitingText = 'No Data' }) }, callTaskList: async function (newValue) { diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index e627232..5d15b95 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -136,32 +136,35 @@ let registerAppModuleNew = actionsObj subscriptionNew.moduleResource.registerAppModule = registerAppModuleNew subscriptionNew.moduleResource.appRoles = userRolesArr - subscriptionNew.registeredAppModulesRole() - - flowObject.svg = svgData - // console.log('xmlData', flowObject.json) - // flowObject.allowedusers = _.union(...(_.chain(_.union(...(_.map(flowObject.json.processList, m => { - // return _.filter(m.configurations, f => { - // return f.key === 'allowedusers' - // }) - // })))).map(m => { - // return m.value.split(',') - // }).value())) - let result = null - if (this.$route.params.id !== undefined) { - result = flowz.put(this.$route.params.id, flowObject) - } else { - result = flowz.post(flowObject) - } - result.then(response => { - this.$Notice.success({title: 'Success..!', desc: 'Flow Saved..'}) - this.$router.push({name: 'flow/list'}) - localStorage.removeItem('BPMNXml') - this.btnLoading = false - }).catch(error => { - console.log(error) - this.$Notice.error({title: 'Error..!', desc: 'Flow Not Saved...'}) - this.btnLoading = false + subscriptionNew.registeredAppModulesRole().then(resp => { + flowObject.svg = svgData + // console.log('xmlData', flowObject.json) + // flowObject.allowedusers = _.union(...(_.chain(_.union(...(_.map(flowObject.json.processList, m => { + // return _.filter(m.configurations, f => { + // return f.key === 'allowedusers' + // }) + // })))).map(m => { + // return m.value.split(',') + // }).value())) + let result = null + if (this.$route.params.id !== undefined) { + result = flowz.put(this.$route.params.id, flowObject) + } else { + result = flowz.post(flowObject) + } + result.then(response => { + this.$Notice.success({title: 'Success..!', desc: 'Flow Saved..'}) + this.$router.push({name: 'flow/list'}) + localStorage.removeItem('BPMNXml') + this.btnLoading = false + }).catch(error => { + console.log(error) + this.$Notice.error({title: 'Error..!', desc: 'Flow Not Saved...'}) + this.btnLoading = false + }) + }).catch(err => { + this.$Notice.error({title: 'Error..!', desc: 'Flow Not Saved. Try again.'}) + console.log('Error: ', err) }) } else { this.$Message.error('Please Add Schema for Flow !') From b7808bd0dde7eec49e2a8f83ce1b193b1ddbdcc5 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 3 Sep 2018 10:30:26 +0530 Subject: [PATCH 227/419] Save/Update button on top, Issue #343 --- client/src/pages/schema/New.vue | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/client/src/pages/schema/New.vue b/client/src/pages/schema/New.vue index 4ed9ed7..cb0b009 100644 --- a/client/src/pages/schema/New.vue +++ b/client/src/pages/schema/New.vue @@ -32,7 +32,7 @@
    - + @@ -46,6 +46,19 @@
    +
    + + + + + + +
    + - - - - +
    From 17f0118b313115400b658b3040cb1312507bf7bc Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 3 Sep 2018 12:36:02 +0530 Subject: [PATCH 228/419] Fixed sidebar refresh issue --- client/src/components/SchemaView.vue | 3 +++ client/src/masterLayout/SideBar.vue | 16 +++++++++++++++- client/src/pages/flow/analytics.vue | 1 - client/src/store/state.js | 3 ++- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 0304000..e7595e1 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -1018,6 +1018,9 @@ export default { watch: { '$route.params': function (value) { this.init() + }, + '$store.state.updateView': function (value) { + this.init() } }, feathers: { diff --git a/client/src/masterLayout/SideBar.vue b/client/src/masterLayout/SideBar.vue index 6573d9d..ae60094 100644 --- a/client/src/masterLayout/SideBar.vue +++ b/client/src/masterLayout/SideBar.vue @@ -129,12 +129,26 @@ export default { handleopenChange (node) { node = node.split('/') if (this.$store.state.role === 1) { - this.$router.push({name: 'schemaview', params: {id: node[0], stateid: node[1]}}) + if (this.$route.params.stateid === node[1]) { + let randomStr = this.makeid() + this.$store.state.updateView = randomStr + } else { + this.$router.push({name: 'schemaview', params: {id: node[0], stateid: node[1]}}) + } // this.$router.push('/admin/schemaview/' + node[0] + '/' + node[1]) } else { this.$router.push('/schemaview/' + node[0] + '/' + node[1]) } }, + + makeid () { + var text = '' + var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' + + for (var i = 0; i < 8; i++) { text += possible.charAt(Math.floor(Math.random() * possible.length)) } + + return text + }, // handleSubmenu (item, subitem) { // // console.log(item, subitem) // this.$router.push('/schemaview/' + item.id + '/' + subitem.id) diff --git a/client/src/pages/flow/analytics.vue b/client/src/pages/flow/analytics.vue index 5210e43..961b613 100644 --- a/client/src/pages/flow/analytics.vue +++ b/client/src/pages/flow/analytics.vue @@ -265,7 +265,6 @@ export default { $select: ['json', 'schema'], $paginate: false }).then(res => { - console.log('res.data: ', res.data.schema) this.schemaId = res.data.schema this.flowName = res.data.json.name let cols = [] diff --git a/client/src/store/state.js b/client/src/store/state.js index 13be4dc..06cc209 100644 --- a/client/src/store/state.js +++ b/client/src/store/state.js @@ -23,5 +23,6 @@ export default { limitPage: 5, activeFlow: null, activeList: null, - subscription: '' + subscription: '', + updateView: '' } From c93cb48db6f9aa10823a0ffb5e49e6aaf7cc4112 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 3 Sep 2018 15:32:15 +0530 Subject: [PATCH 229/419] Socket when add/updated flowz added --- client/src/components/SchemaSubForm.vue | 6 +- client/src/masterLayout/SideBar.vue | 44 ++++++++++++ client/src/pages/flow/analytics.vue | 92 ++++++++++++++++++++++++- 3 files changed, 137 insertions(+), 5 deletions(-) diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index 01b8540..ed386dc 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -392,15 +392,13 @@ export default { right: 0; } - - \ No newline at end of file diff --git a/client/src/masterLayout/SideBar.vue b/client/src/masterLayout/SideBar.vue index ae60094..2732a9a 100644 --- a/client/src/masterLayout/SideBar.vue +++ b/client/src/masterLayout/SideBar.vue @@ -467,6 +467,50 @@ export default { this.setCounters(this.flowzList[finx]) } } + }, + 'flowz': { + created (data) { + // console.log('Created Data: ', data) + this.$Notice.success({ + title: 'Flowz Updated.', + duration: 0, + render: h => { + return h('Button', { + props: { + type: 'ghost' + }, + on: { + 'click': (value) => { + window.location.reload() + } + } + }, 'Update View') + } + }) + }, + updated (data) { + // console.log('Updated Data: ', data) + this.$Notice.success({ + title: 'Flowz Updated.', + duration: 0, + render: h => { + return h('Button', { + props: { + type: 'ghost' + }, + on: { + 'click': (value) => { + window.location.reload() + } + } + }, 'Update View') + } + }) + // this.init() + }, + removed (data) { + console.log('Removed Data: ', data) + } } } } diff --git a/client/src/pages/flow/analytics.vue b/client/src/pages/flow/analytics.vue index 961b613..497a793 100644 --- a/client/src/pages/flow/analytics.vue +++ b/client/src/pages/flow/analytics.vue @@ -25,6 +25,45 @@
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    + +
    + +
    +
    + +
    +
    +
    +
    + +
    +
    + + +
    +
    + +
    + { return o.id === this.searchQuery }) + }, ok () { this.$Message.success('Saved') this.configuration.fields = _.cloneDeep(this.anotherBinding) @@ -410,4 +496,8 @@ export default { padding-left: 0; padding-right: 0; } + + .searchQueries{ + margin: 5px 0; + } \ No newline at end of file From 16815c4c70985a86f97cd5091d01cf23a26bc4c4 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 3 Sep 2018 16:02:50 +0530 Subject: [PATCH 230/419] Search component --- client/src/pages/flow/analytics.vue | 8 +-- client/src/pages/user/SchemaList.vue | 94 +++++++++++++++++++++++++++- 2 files changed, 97 insertions(+), 5 deletions(-) diff --git a/client/src/pages/flow/analytics.vue b/client/src/pages/flow/analytics.vue index 497a793..f3433de 100644 --- a/client/src/pages/flow/analytics.vue +++ b/client/src/pages/flow/analytics.vue @@ -200,11 +200,11 @@ export default { searchQuery: null, filterBy: [ { - 'label': 'Today', - 'value': 'today' + 'label': 'Last 12 Hours', + 'value': '12hours' }, { - 'label': 'Yesterday', - 'value': 'yesterday' + 'label': 'Last 24 Hours', + 'value': '24hours' }, { 'label': 'Last 7 Days', 'value': '7days' diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index 4e4f212..79bf20b 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -1,5 +1,8 @@ + + + diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index 17ffc68..a2ddcc2 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -16,6 +16,7 @@ + @@ -49,13 +50,23 @@ - + {{field.name}} + + + + + -
    -
    - {{val}} + + +
    +
    + {{val}} + +
    @@ -76,13 +87,13 @@
    - diff --git a/service/src/services/dataquery/dataquery.class.js b/service/src/services/dataquery/dataquery.class.js new file mode 100644 index 0000000..72a19f9 --- /dev/null +++ b/service/src/services/dataquery/dataquery.class.js @@ -0,0 +1,42 @@ +/* eslint-disable no-unused-vars */ +class Service { + constructor (options) { + this.options = options || {}; + } + + find (params) { + return Promise.resolve([]); + } + + get (id, params) { + return Promise.resolve({ + id, text: `A new message with ID: ${id}!` + }); + } + + create (data, params) { + if (Array.isArray(data)) { + return Promise.all(data.map(current => this.create(current))); + } + + return Promise.resolve(data); + } + + update (id, data, params) { + return Promise.resolve(data); + } + + patch (id, data, params) { + return Promise.resolve(data); + } + + remove (id, params) { + return Promise.resolve({ id }); + } +} + +module.exports = function (options) { + return new Service(options); +}; + +module.exports.Service = Service; diff --git a/service/src/services/dataquery/dataquery.filters.js b/service/src/services/dataquery/dataquery.filters.js new file mode 100644 index 0000000..c3b648c --- /dev/null +++ b/service/src/services/dataquery/dataquery.filters.js @@ -0,0 +1,6 @@ +/* eslint no-console: 1 */ +console.warn('You are using the default filter for the dataquery service. For more information about event filters see https://docs.feathersjs.com/api/events.html#event-filtering'); // eslint-disable-line no-console + +module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars + return data; +}; diff --git a/service/src/services/dataquery/dataquery.hooks.js b/service/src/services/dataquery/dataquery.hooks.js new file mode 100644 index 0000000..e4fea74 --- /dev/null +++ b/service/src/services/dataquery/dataquery.hooks.js @@ -0,0 +1,74 @@ + + +module.exports = { + before: { + all: [], + find: [ + hook => beforeFind(hook) + ], + get: [], + create: [], + update: [], + patch: [], + remove: [] + }, + + after: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + }, + + error: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + } +}; + + +function beforeFind(hook) { + let query = {}; + // console.log('__________________________________________________') + if (hook.params.query.hasOwnProperty('$all')) { + delete hook.params.query.$all + + // ----------------------------- || Get Last Record Data || -------------------------- + query = hook.app.services.finstance.createQuery(hook.params.query) + hook.params.rethinkdb = query.hasFields('stageReference').filter(function(mdoc) { + return mdoc("stageReference").count().gt(0) + }).map(function(item) { + return item.merge({ + 'stageReference': item('stageReference').map(function(doc1) { + return doc1.merge(function(doc) { + // return {data: doc1.getField('stageRecordId')} + // return {data: r.db('FlowzEngine').table('flowzdata').get(doc1.getField('stageRecordId')).getField('data')} + return {data: hook.app.services.flowzdata.table.get(doc1.getField('stageRecordId')).getField('data')} + }) + }) + }) + }) + } else if (hook.params.query.hasOwnProperty("$last")) { + delete hook.params.query.$last + + // ----------------------------- || Get Last Record Data || -------------------------- + query = hook.app.services.finstance.createQuery(hook.params.query) + hook.params.rethinkdb = query.outerJoin(hook.app.services.flowzdata.table ,function(instance,data){ + return instance.hasFields('stageReference').and( + instance('stageReference').count().gt(0).and( + data('id').eq(instance('stageReference').nth(-1).getField('stageRecordId')) + )) + }).without({"right": {"id": true}}) + .zip() + } + // console.log('__________________________________________________') + // console.log('hook.params.rethinkdb', hook.params.rethinkdb) +} \ No newline at end of file diff --git a/service/src/services/dataquery/dataquery.service.js b/service/src/services/dataquery/dataquery.service.js new file mode 100644 index 0000000..522a4fc --- /dev/null +++ b/service/src/services/dataquery/dataquery.service.js @@ -0,0 +1,50 @@ +// // Initializes the `dataquery` service on path `/dataquery` +// const createService = require('./dataquery.class.js'); +// const hooks = require('./dataquery.hooks'); +// const filters = require('./dataquery.filters'); + +// module.exports = function () { +// const app = this; +// const paginate = app.get('paginate'); + +// const options = { +// name: 'dataquery', +// paginate +// }; + +// // Initialize our service with any options it requires +// app.use('/dataquery', createService(options)); + +// // Get our initialized service so that we can register hooks and filters +// const service = app.service('dataquery'); + +// service.hooks(hooks); + +// if (service.filter) { +// service.filter(filters); +// } +// }; + +// Initializes the `databases` service on path `/databases` +const createService = require('feathers-rethinkdb'); +const hooks = require('./dataquery.hooks'); + +module.exports = function () { + const app = this; + const Model = app.get('rethinkdbClient'); + const paginate = app.get('paginate'); + + const options = { + name: 'dataquery', + Model, + paginate + }; + + // Initialize our service with any options it requires + app.use('/dataquery', createService(options)); + + // Get our initialized service so that we can register hooks and filters + const service = app.service('dataquery'); + + service.hooks(hooks); +}; diff --git a/service/src/services/finstance/finstance.hooks.js b/service/src/services/finstance/finstance.hooks.js index 5bda07f..4025c3d 100644 --- a/service/src/services/finstance/finstance.hooks.js +++ b/service/src/services/finstance/finstance.hooks.js @@ -7,7 +7,9 @@ let _ = require('lodash'); module.exports = { before: { all: [], - find: [], + find: [ + hook => beforeFind(hook) + ], get: [], create: [ hook => beforeCreate(hook) @@ -42,6 +44,40 @@ module.exports = { } }; +function beforeFind (hook) { + console.log('hook.params', hook.params) + const query = hook.service.createQuery(hook.params.query); + + // const searchString = "my search string"; + // console.log('__________________________________________________') + // console.log('hook.service', hook.app.services.flowzdata.table) + console.log('__________________________________________________') + // ----------------------------- || Get Last Record Data || -------------------------- + // hook.params.rethinkdb = query.outerJoin(hook.app.services.flowzdata.table ,function(instance,data){ + // return instance.hasFields('stageReference').and( + // instance('stageReference').count().gt(0).and( + // data('id').eq(instance('stageReference').nth(-1).getField('stageRecordId')) + // )) + // }).without({"right": {"id": true}}) + // .zip() + + // ----------------------------- || Get Last Record Data || -------------------------- + // hook.params.rethinkdb = query.hasFields('stageReference').filter(function(mdoc) { + // return mdoc("stageReference").count().gt(0) + // }).map(function(item) { + // return item.merge({ + // 'stageReference': item('stageReference').map(function(doc1) { + // return doc1.merge(function(doc) { + // // return {data: doc1.getField('stageRecordId')} + // // return {data: r.db('FlowzEngine').table('flowzdata').get(doc1.getField('stageRecordId')).getField('data')} + // return {data: hook.app.services.flowzdata.table.get(doc1.getField('stageRecordId')).getField('data')} + // }) + // }) + // }) + // }) + console.log('__________________________________________________') + // console.log('hook.params.rethinkdb', hook.params.rethinkdb) +} function beforeUpdate (hook) { hook.data.modifiedAt = new Date().toISOString(); diff --git a/service/src/services/index.js b/service/src/services/index.js index 27da941..fc9e12e 100644 --- a/service/src/services/index.js +++ b/service/src/services/index.js @@ -18,6 +18,7 @@ const finstance = require('./finstance/finstance.service.js'); const flowzdata = require('./flowzdata/flowzdata.service.js'); const sendmail = require('./sendmail/sendmail.service.js'); const emailReceive = require('./email-receive/email-receive.service.js'); +const dataquery = require('./dataquery/dataquery.service.js'); module.exports = function() { const app = this; // eslint-disable-line no-unused-vars app.configure(schema); @@ -40,4 +41,5 @@ module.exports = function() { app.configure(flowzdata); app.configure(sendmail); app.configure(emailReceive); + app.configure(dataquery); }; \ No newline at end of file diff --git a/service/test/services/dataquery.test.js b/service/test/services/dataquery.test.js new file mode 100644 index 0000000..c2e7063 --- /dev/null +++ b/service/test/services/dataquery.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const app = require('../../src/app'); + +describe('\'dataquery\' service', () => { + it('registered the service', () => { + const service = app.service('dataquery'); + + assert.ok(service, 'Registered the service'); + }); +}); From 560d7e1275f882f453ee447510a4933b47dcd70f Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Wed, 5 Sep 2018 14:01:27 +0530 Subject: [PATCH 238/419] Added view for grid/list view --- client/src/pages/flow/analytics.vue | 90 +++++++++++++++++++++++++++-- 1 file changed, 86 insertions(+), 4 deletions(-) diff --git a/client/src/pages/flow/analytics.vue b/client/src/pages/flow/analytics.vue index af6f972..86b2af9 100644 --- a/client/src/pages/flow/analytics.vue +++ b/client/src/pages/flow/analytics.vue @@ -17,9 +17,17 @@ - - - +
    + + + +
    + + + + +
    +
    @@ -76,7 +84,14 @@ -
    +
    + +
    +
    +
    +
    +
    +
    @@ -84,6 +99,7 @@ diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index 92dbede..cf53a0a 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -35,12 +35,11 @@ - + {{field.name}} - @@ -52,26 +51,15 @@ {{field.name}} - - - - - -
    - - - - @@ -94,71 +82,54 @@
    - - + + + diff --git a/client/src/main.js b/client/src/main.js index 0692319..311112b 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -334,6 +334,7 @@ router.afterEach(route => { sync(store, router) // console.log('process.env.accesskey', process.env.accesskey) + new Vue({ el: '#app', router, diff --git a/client/src/masterLayout/Header.vue b/client/src/masterLayout/Header.vue index d9e7c2b..ffd8e46 100644 --- a/client/src/masterLayout/Header.vue +++ b/client/src/masterLayout/Header.vue @@ -23,6 +23,12 @@ Home --> + + + + Email Template + + diff --git a/client/src/router/index.js b/client/src/router/index.js index cd1ba94..e032efd 100644 --- a/client/src/router/index.js +++ b/client/src/router/index.js @@ -68,6 +68,7 @@ import FlowOverview from '@/pages/flow/FlowOverview' import ManageBPMNPlugin from '@/pages/BPMNPlugins/Manage' import SchemaView from '@/components/SchemaView' +import emailtemplate from '@/components/emailtemplate' Vue.use(VueRouter) @@ -167,6 +168,12 @@ const mroutes = [ } ] }, + { // Schema + path: 'emailtemplate', + component: emailtemplate, + name: 'emailtemplate', + meta: { description: 'emailtemplate' } + }, { // Flow path: 'flow', component: Flow, diff --git a/service/src/services/email-templates/email-templates.filters.js b/service/src/services/email-templates/email-templates.filters.js new file mode 100644 index 0000000..31945d7 --- /dev/null +++ b/service/src/services/email-templates/email-templates.filters.js @@ -0,0 +1,6 @@ +/* eslint no-console: 1 */ +console.warn('You are using the default filter for the email-templates service. For more information about event filters see https://docs.feathersjs.com/api/events.html#event-filtering'); // eslint-disable-line no-console + +module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars + return data; +}; diff --git a/service/src/services/email-templates/email-templates.hooks.js b/service/src/services/email-templates/email-templates.hooks.js new file mode 100644 index 0000000..1022974 --- /dev/null +++ b/service/src/services/email-templates/email-templates.hooks.js @@ -0,0 +1,33 @@ + + +module.exports = { + before: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + }, + + after: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + }, + + error: { + all: [], + find: [], + get: [], + create: [], + update: [], + patch: [], + remove: [] + } +}; diff --git a/service/src/services/email-templates/email-templates.service.js b/service/src/services/email-templates/email-templates.service.js new file mode 100644 index 0000000..aada60d --- /dev/null +++ b/service/src/services/email-templates/email-templates.service.js @@ -0,0 +1,28 @@ +// Initializes the `email-templates` service on path `/email-templates` +const createService = require('feathers-rethinkdb'); +const hooks = require('./email-templates.hooks'); +const filters = require('./email-templates.filters'); + +module.exports = function () { + const app = this; + const Model = app.get('rethinkdbClient'); + const paginate = app.get('paginate'); + + const options = { + name: 'email_templates', + Model, + paginate + }; + + // Initialize our service with any options it requires + app.use('/email-templates', createService(options)); + + // Get our initialized service so that we can register hooks and filters + const service = app.service('email-templates'); + + service.hooks(hooks); + + if (service.filter) { + service.filter(filters); + } +}; diff --git a/service/src/services/index.js b/service/src/services/index.js index fc9e12e..8b3e2f6 100644 --- a/service/src/services/index.js +++ b/service/src/services/index.js @@ -19,6 +19,7 @@ const flowzdata = require('./flowzdata/flowzdata.service.js'); const sendmail = require('./sendmail/sendmail.service.js'); const emailReceive = require('./email-receive/email-receive.service.js'); const dataquery = require('./dataquery/dataquery.service.js'); +const emailTemplates = require('./email-templates/email-templates.service.js'); module.exports = function() { const app = this; // eslint-disable-line no-unused-vars app.configure(schema); @@ -42,4 +43,5 @@ module.exports = function() { app.configure(sendmail); app.configure(emailReceive); app.configure(dataquery); + app.configure(emailTemplates); }; \ No newline at end of file diff --git a/service/test/services/email-templates.test.js b/service/test/services/email-templates.test.js new file mode 100644 index 0000000..7381d83 --- /dev/null +++ b/service/test/services/email-templates.test.js @@ -0,0 +1,10 @@ +const assert = require('assert'); +const app = require('../../src/app'); + +describe('\'email-templates\' service', () => { + it('registered the service', () => { + const service = app.service('email-templates'); + + assert.ok(service, 'Registered the service'); + }); +}); From 12553c8c550d1d4b61f91f301c003025d51a189f Mon Sep 17 00:00:00 2001 From: Vishal-Dhimmar Date: Thu, 6 Sep 2018 19:06:39 +0530 Subject: [PATCH 251/419] Resolve Name --- client/src/pages/flow/List.vue | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index 3e5dde0..b145ccc 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -423,16 +423,12 @@ export default { }, { title: 'Name', - key: 'ProcessName' + key: 'name' }, { title: 'Id', key: 'id' }, - { - title: 'Notes', - key: 'notes' - }, { title: 'Action', key: 'action', From 4b50d667d30b9b5a7562547adad229b519dc661d Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Thu, 6 Sep 2018 19:07:50 +0530 Subject: [PATCH 252/419] Fixes after flow definition change --- client/src/components/ListInstances.vue | 19 +++++++++---------- client/src/components/SchemaView.vue | 12 +++++------- client/src/pages/user/SchemaList.vue | 2 +- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/client/src/components/ListInstances.vue b/client/src/components/ListInstances.vue index 5e70079..732ecb6 100644 --- a/client/src/components/ListInstances.vue +++ b/client/src/components/ListInstances.vue @@ -106,10 +106,10 @@ export default { component: { }, methods: { - valueStatus (value) { - if (!value) return '' - return _.find(this.flowzData.json.processList, {id: value}).name - }, + // valueStatus (value) { + // if (!value) return '' + // return _.find(this.flowzData.json.processList, {id: value}).name + // }, async getRecord (item) { // DeepRecord.deepRecord.getRecord(client, item, async (err, resp) => { // let stageRecordId = resp.stageReference[(resp.stageReference.length) - 1].stageRecordId @@ -120,7 +120,7 @@ export default { // let result = await DeepRecord.deepRecord.getCurrentTraget(instanceId, resp.currentStatus) // // let currentState = resp.currentStatus.toLowerCase() // // let schemaId = resp[currentState].schemaId - let currentObj = _.find(this.flowzData.json.processList, {id: item.currentStatus}) + let currentObj = this.flowzData.processList[item.currentStatus] // console.log('this.flowzData.schema', this.flowzData) let values = { id: this.flowzData.schema, @@ -158,13 +158,12 @@ export default { if (stateid) { query.currentStatus = stateid } - await flowzModal.get(id, { - $select: ['json', 'schema'] - }).then(async res => { + await flowzModal.get(id).then(async res => { this.flowzData = res.data - this.breadItem.name = this.flowzData.json.name + this.breadItem.name = this.flowzData.name if (stateid) { - let m = _.find(this.flowzData.json.processList, {id: stateid}) + // let m = _.find(this.flowzData.json.processList, {id: stateid}) + let m = this.flowzData.processList[stateid] if (m && m !== null && Object.keys(m).length > 0) { this.breadItem.state = m.name } diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index d9e3976..15d73f8 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -748,12 +748,12 @@ export default { this.item = values.item this.formTitle = values.formName this.flowData = values.flowzData - let targetObj = _.find(values.flowzData.json.processList, {id: values.currentState}) + let targetObj = values.flowzData.processList[values.currentState] if (Object.keys(targetObj).length > 0) { if (targetObj.target.length > 1) { let opts = [] for (let m of targetObj.target) { - let label = _.find(values.flowzData.json.processList, {id: m.id}).name + let label = values.flowzData.processList[m.id].name opts.push({ label: label, value: m.id @@ -801,8 +801,8 @@ export default { id: this.$route.params.id }) .then( (res) => { - // console.log('res flowz get call: ', res.data.data[0]) - let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) + console.log('res flowz get call: ', res.data.data[0]) + // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) let inputschemaId = res.data.data[0].schema schemaModel.getAll(inputschemaId).then(async res => { this.dataSchema = res @@ -827,9 +827,7 @@ export default { // console.error('Error: ', err) // }) - await flowzModel.get(this.$route.params.id, { - $select: ['json', 'schema'] - }).then(async res => { + await flowzModel.get(this.$route.params.id).then(async res => { this.flowzData = res.data // if (this.$route.params.stateid) { // let m = _.find(this.flowzData.json.processList, {id: this.$route.params.stateid}) diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index fb3ba6e..f6977b7 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -240,7 +240,7 @@ // console.log('indexfind: ', indexFind) // this.$emit('setValues', this.instanceEntries[indexFind]) // console.log('Click: ', params.row, params.index) - let currentObj = _.find(this.flowzData.json.processList, {id: this.instanceEntries[indexFind].currentStatus}) + let currentObj = this.flowzData.processList[this.instanceEntries[indexFind].currentStatus] // console.log('this.flowzData.schema SchemaList', this.flowzData.schema) let values = { id: this.flowzData.schema, From 6814f70ec9d56eb5bfdb2c81ca8df78ff033fadc Mon Sep 17 00:00:00 2001 From: nikitam Date: Thu, 6 Sep 2018 19:11:40 +0530 Subject: [PATCH 253/419] back-end-changes-based-on-flows-change --- .../src/services/finstance/finstance.hooks.js | 52 ++++++++++--------- .../src/services/flowzdata/flowzdata.hooks.js | 19 ++----- 2 files changed, 33 insertions(+), 38 deletions(-) diff --git a/service/src/services/finstance/finstance.hooks.js b/service/src/services/finstance/finstance.hooks.js index 4025c3d..4321234 100644 --- a/service/src/services/finstance/finstance.hooks.js +++ b/service/src/services/finstance/finstance.hooks.js @@ -84,23 +84,29 @@ function beforeUpdate (hook) { } function beforeCreate (hook) { - hook.params.query.$select = ['json']; hook.data.createdAt = new Date().toISOString(); - // const query = Object.assign({}, hook.params.query); - // console.log('___________________________________________________________________________') - // console.log('hook.params.userPackageDetails', hook.params) - // console.log('___________________________________________________________________________') if (hook.data.fid) { - // hook.params.headers = hook.params.headers return hook.app.service('flowz').get(hook.data.fid, hook.params).then(res => { - // console.log('res++++++++++++++++++++++++++++++', res) - let startObj = _.find(res.json.processList, {"type": "start"}); - let nextTargetObj = getNextTarget(res.json.processList, startObj.target[0].id); - // console.log('nextTargetObj', nextTargetObj) - hook.data.currentStatus = nextTargetObj.id; - hook.data.mainStatus = 'inprocess'; - hook.data.stageReference = []; - return hook; + if (res.startId.length > 0) { + let startObj = getStartObject(res.startId, res.processList) + if (startObj !== 0) { + // let nextTargetObj = getNextTarget(res.processList, startObj.target[0].id); + let nextTargetObj = res.processList[startObj.target[0].id]; + // console.log('nextTargetObj', nextTargetObj) + hook.data.currentStatus = nextTargetObj.id; + hook.data.mainStatus = 'inprocess'; + hook.data.stageReference = []; + return hook; + } else { + throw new errors.BadRequest('Error', { + errors: { message: err.toString() } + }); + } + } else { + throw new errors.BadRequest('Error', { + errors: { message: err.toString() } + }); + } }).catch(err => { console.log('err', err) throw new errors.BadRequest('Error', { @@ -110,13 +116,11 @@ function beforeCreate (hook) { } }; -function getNextTarget (processList, targetId) { - let targetObj = _.find(processList,{"id": targetId}) - // if (targetObj.type === 'start' || targetObj.type === 'endevent' || targetObj.type === 'intermediatethrowevent') { - // return targetObj; - // } - // if(targetObj.inputProperty.length === 0) { - // targetObj = getNextTarget(processList, targetObj.target[0].id) - // } - return targetObj; -}; +function getStartObject (startStates, processList) { + for (let item of startStates) { + if (processList[item].target.length > 0) { + return processList[item] + } + } + return 0 +} diff --git a/service/src/services/flowzdata/flowzdata.hooks.js b/service/src/services/flowzdata/flowzdata.hooks.js index f7407c4..924395f 100644 --- a/service/src/services/flowzdata/flowzdata.hooks.js +++ b/service/src/services/flowzdata/flowzdata.hooks.js @@ -49,14 +49,16 @@ function beforeCreate (hook) { function afterCreate (hook) { if (hook.params.hasOwnProperty('isdone') && hook.params.isdone) { hook.params.query = {}; - hook.params.query.$select = ['json']; + // hook.params.query.$select = ['json']; const query = Object.assign({}, hook.params.query); // console.log('++++++++++++++++++++++++++++++++++++++++++++++++++++++') // console.log('hook.params', hook.params) // console.log('++++++++++++++++++++++++++++++++++++++++++++++++++++++') return hook.app.service('flowz').get(hook.data.fid, {query}).then(res => { - let cuurentObj = _.find(res.json.processList, {id: hook.data.state}); - let nextTargetObj = getNextTarget(res.json.processList, cuurentObj.target[0].id); + // let cuurentObj = _.find(res.json.processList, {id: hook.data.state}); + let cuurentObj = res.processList[hook.data.state]; + // let nextTargetObj = getNextTarget(res.json.processList, cuurentObj.target[0].id); + let nextTargetObj = res.processList[cuurentObj.target[0].id]; return hook.app.service('finstance').get(hook.data.iid).then(finstRes => { let mdata = { currentStatus: nextTargetObj.id, @@ -114,14 +116,3 @@ function afterCreate (hook) { }); } } - -function getNextTarget (processList, targetId) { - let targetObj = _.find(processList,{'id': targetId}); - // if (targetObj.type === 'start' || targetObj.type === 'endevent' || targetObj.type === 'intermediatethrowevent') { - // return targetObj; - // } - // // if(targetObj.inputProperty.length === 0) { - // targetObj = getNextTarget(processList, targetObj.target[0].id); - // // } - return targetObj; -} From bbead817fe7d9c00834f9b1f95bd302561604711 Mon Sep 17 00:00:00 2001 From: harshp Date: Thu, 6 Sep 2018 19:37:46 +0530 Subject: [PATCH 254/419] smtp config added to sendproofmail --- client/src/pages/flow/New.vue | 86 ++++++++++++++++++++++------------- 1 file changed, 54 insertions(+), 32 deletions(-) diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 341984a..533c561 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -34,6 +34,7 @@ diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 43a0e24..6dcfb4a 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -808,93 +808,197 @@ export default { return(returnData) }, - async init () { - this.isFlowzLoaded = false - this.$Loading.start() - this.schemabinding = false - this.email = false - await flowzModel.get(null, { + async getFlowz () { + return await flowzModel.get(null, { id: this.$route.params.id }) - .then( async (res) => { - // console.log('res flowz get call: ', res.data.data[0]) - this.flowzData = res.data.data[0] - - let startId = this.flowzData.startId - let firstState = '' - for (let startItems of startId) { - // console.log('startItems: ', startItems) - if (this.flowzData.processList[startItems].target.length > 0) { - firstState = this.flowzData.processList[startItems].target[0].id - break - } + .then((res) => { + return (res.data.data[0]) + }).catch(err => { + console.log('Error: ', err) + return + }) + }, + + async getSchema (id) { + return await schemaModel.getAll(id).then(res => { + return res + }).catch(err => { + console.log('Error: ', err) + return + }) + }, + + flowzLogic () { + let startId = this.flowzData.startId + let firstState = '' + for (let startItems of startId) { + // console.log('startItems: ', startItems) + if (this.flowzData.processList[startItems].target.length > 0) { + firstState = this.flowzData.processList[startItems].target[0].id + break } - if (firstState === this.$route.params.stateid) { - this.itsFirstState = true + } + if (firstState === this.$route.params.stateid) { + this.itsFirstState = true + } else { + this.itsFirstState = false + } + // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) + let inputschemaId = this.flowzData.schema + }, + + async schemaLogic (schema) { + console.log('Schema Logic called: ', schema) + this.dataSchema = schema + this.email = false + this.htmlcontent = false + this.id = null + + let query = { + fid: this.$route.params.id, + currentStatus: this.$route.params.stateid, + '$paginate': false + } + + await dataQuerymodel.get(null, { + $last: true, + fid: this.$route.params.id, + currentStatus: this.$route.params.stateid + }).then(queryresp => { + if (queryresp.data.data.length > 0) { + this.instanceEntries = queryresp.data.data + + this.dataData = this.instanceEntries + // this.$Spin.hide() + this.$Loading.finish() } else { - this.itsFirstState = false + this.instanceEntries = null + this.dataData = [] + this.itsFirstState = true + // this.$Spin.hide() + this.$Loading.finish() } - // console.log('target : ', firstState) - - // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) - let inputschemaId = res.data.data[0].schema - await schemaModel.getAll(inputschemaId).then(async res => { - this.dataSchema = res - this.email = false - this.htmlcontent = false - this.id = null - // this.$Spin.show() - - let query = { - fid: this.$route.params.id, - currentStatus: this.$route.params.stateid, - '$paginate': false - } - await dataQuerymodel.get(null, { - $last: true, - fid: this.$route.params.id, - currentStatus: this.$route.params.stateid - }).then(queryresp => { - if (queryresp.data.data.length > 0) { - // console.log('Response DataQuery: ', queryresp) - this.instanceEntries = queryresp.data.data - - // for (let i = 0; i < this.instanceEntries.length; i++) { - // if (this.instanceEntries[i].data) { - // this.itsFirstState = false - // this.instanceEntries[i].data['iid'] = this.instanceEntries[i].id - // } else { - // this.itsFirstState = true - // } - // } - // this.dataData = _.map(this.instanceEntries, (o) => { return o.data }) - // this.dataData = _.map(this.instanceEntries, (o) => { - // for (let k in o.data) { - // o[k] = o.data[k] - // } - // return o - // }) - this.dataData = this.instanceEntries - // this.$Spin.hide() - this.$Loading.finish() - } else { - this.itsFirstState = true - // this.$Spin.hide() - this.$Loading.finish() - } - }).catch(err => { - console.error('Error: ', err) - // this.$Spin.hide() - this.$Loading.error() - }) - }).catch(err => { - console.error('Error: ', err) - this.$Loading.error() - }) }).catch(err => { console.error('Error: ', err) + // this.$Spin.hide() this.$Loading.error() }) + }, + + async init () { + this.isFlowzLoaded = false + this.$Loading.start() + this.schemabinding = false + this.email = false + + let cachedFlowz = _.find(this.$store.state.flowz, (o) => { return o.id === this.$route.params.id}) + let cachedSchema = _.find(this.$store.state.schema, (o) => { return o.id === cachedFlowz.schema}) + if (cachedFlowz) { + this.flowzData = cachedFlowz + await this.flowzLogic() + + // check cached schema + if (cachedSchema) { + await this.schemaLogic(cachedSchema) + } else { + let unCachedSchema = await this.getSchema(cachedFlowz.schema) + await this.schemaLogic(unCachedSchema) + } + } else { + this.flowzData = await this.getFlowz() + await this.flowzLogic() + if (cachedSchema) { + await this.schemaLogic() + } else { + let unCachedSchema = await this.getSchema(this.flowzData.schema) + await this.schemaLogic(unCachedSchema) + } + + } + + // await flowzModel.get(null, { + // id: this.$route.params.id + // }) + // .then( async (res) => { + // // console.log('res flowz get call: ', res.data.data[0]) + // this.flowzData = res.data.data[0] + + // let startId = this.flowzData.startId + // let firstState = '' + // for (let startItems of startId) { + // // console.log('startItems: ', startItems) + // if (this.flowzData.processList[startItems].target.length > 0) { + // firstState = this.flowzData.processList[startItems].target[0].id + // break + // } + // } + // if (firstState === this.$route.params.stateid) { + // this.itsFirstState = true + // } else { + // this.itsFirstState = false + // } + // // console.log('target : ', firstState) + + // // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) + // let inputschemaId = res.data.data[0].schema + // await schemaModel.getAll(inputschemaId).then(async res => { + // this.dataSchema = res + // this.email = false + // this.htmlcontent = false + // this.id = null + // // this.$Spin.show() + + // let query = { + // fid: this.$route.params.id, + // currentStatus: this.$route.params.stateid, + // '$paginate': false + // } + // await dataQuerymodel.get(null, { + // $last: true, + // fid: this.$route.params.id, + // currentStatus: this.$route.params.stateid + // }).then(queryresp => { + // if (queryresp.data.data.length > 0) { + // // console.log('Response DataQuery: ', queryresp) + // this.instanceEntries = queryresp.data.data + + // // for (let i = 0; i < this.instanceEntries.length; i++) { + // // if (this.instanceEntries[i].data) { + // // this.itsFirstState = false + // // this.instanceEntries[i].data['iid'] = this.instanceEntries[i].id + // // } else { + // // this.itsFirstState = true + // // } + // // } + // // this.dataData = _.map(this.instanceEntries, (o) => { return o.data }) + // // this.dataData = _.map(this.instanceEntries, (o) => { + // // for (let k in o.data) { + // // o[k] = o.data[k] + // // } + // // return o + // // }) + // this.dataData = this.instanceEntries + // // this.$Spin.hide() + // this.$Loading.finish() + // } else { + // this.itsFirstState = true + // // this.$Spin.hide() + // this.$Loading.finish() + // } + // }).catch(err => { + // console.error('Error: ', err) + // // this.$Spin.hide() + // this.$Loading.error() + // }) + // }).catch(err => { + // console.error('Error: ', err) + // this.$Loading.error() + // }) + // }).catch(err => { + // console.error('Error: ', err) + // this.$Loading.error() + // }) this.isFlowzLoaded = true }, From fc35871ba5e9caa9227c0973bd4a410a41dfebde Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 10 Sep 2018 12:31:58 +0530 Subject: [PATCH 272/419] Schema cached in app.vue --- client/src/App.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/App.vue b/client/src/App.vue index 808a877..ebf9165 100644 --- a/client/src/App.vue +++ b/client/src/App.vue @@ -9,10 +9,10 @@ export default { name: 'app', mounted () { - this.$store.state.schema = [] + // this.$store.state.schema = [] this.$store.dispatch('getSchema') this.$store.state.flowz = [] - this.$store.dispatch('getFlowzdata') + // this.$store.dispatch('getFlowzdata') } } From 09a72f51e1399223f0d0fab6af07f9cb1356e268 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 10 Sep 2018 12:33:31 +0530 Subject: [PATCH 273/419] Removed console --- client/src/components/SchemaView.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 6dcfb4a..5dce3e8 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -849,7 +849,6 @@ export default { }, async schemaLogic (schema) { - console.log('Schema Logic called: ', schema) this.dataSchema = schema this.email = false this.htmlcontent = false From 756331217fe5a0df4db5a274691d8b6f818daa17 Mon Sep 17 00:00:00 2001 From: harshp Date: Mon, 10 Sep 2018 17:03:14 +0530 Subject: [PATCH 274/419] table pagination --- client/src/components/ListInstances.vue | 1 - client/src/components/SchemaView.vue | 19 ++++++++++++--- client/src/pages/user/SchemaList.vue | 32 +++++++++++++++++++++++-- 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/client/src/components/ListInstances.vue b/client/src/components/ListInstances.vue index e3e06d8..1db5648 100644 --- a/client/src/components/ListInstances.vue +++ b/client/src/components/ListInstances.vue @@ -67,7 +67,6 @@ import flowzdataModal from '@/api/flowzdata' import _ from 'lodash' // const DeepRecord = require('@/assets/js/deepstream/deepRecord') - // const client = deepstream('ws://204.48.26.167:6020').login() // let instanceId = '39c53741_ec14_4ceb_a9db_97d7066cd424' // let instanceId1 = '39c53741-ec14-4ceb-a9db-97d7066cd424' diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index ed8d0dc..f3869f8 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -66,7 +66,7 @@ - +
    @@ -198,6 +198,10 @@ export default { }, data () { return { + skip: 0, + limit: 10, + dataTotal: 0, + pageno: 1, isFlowzLoaded: false, htmlcontent: false, schemabinding: false, @@ -255,6 +259,13 @@ export default { this.isEmailDone = true await this.handleSubmit('formSchemaInstance') }, + async pagination (skip, limit, page){ + console.log(skip,limit,page) + this.skip = skip + this.limit = limit + this.pageno = page + this.init() + }, info (item, index, button) { this.modalInfo.title = `Row index: ${index}` this.modalInfo.content = JSON.stringify(item, null, 2) @@ -853,10 +864,12 @@ export default { await dataQuerymodel.get(null, { $last: true, fid: this.$route.params.id, - currentStatus: this.$route.params.stateid + currentStatus: this.$route.params.stateid, + $skip: this.skip, + $limit: this.limit }).then(queryresp => { + this.dataTotal = queryresp.data.total if (queryresp.data.data.length > 0) { - console.log('Response DataQuery: ', queryresp) this.instanceEntries = queryresp.data.data // for (let i = 0; i < this.instanceEntries.length; i++) { diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index fcd1195..252065e 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -57,7 +57,12 @@
    -
    +
    +
    +
    + +
    +
    @@ -74,10 +79,15 @@ 'configuration': Boolean, 'dynamicData': Boolean, 'flowzData': Object, - 'instanceEntries': Array + 'instanceEntries': Array, + 'dataTotal': Number, + 'pageno': Number }, data () { return { + limit: 10, + skip: 0, + total: 0, searchQuery: null, filterBy: [ { @@ -323,6 +333,8 @@ } }, mounted () { + console.log('this.page1 ', this.pageno) + this.total = this.dataTotal this.mdata = this.data // if (this.dynamicData) { // await flowzModal.get(id, { @@ -344,6 +356,22 @@ methods: { handleConfiguration () { this.isShow = !this.isShow + }, + // mockTableData1 () { + // console.log('this.data ', this.data) + // let data = [] + // for (let i = 0; i < 10; i++) { + // data.push(this.data[i]) + // } + // return data + // }, + handlePage (page) { + this.skip = (page * this.limit) - this.limit + this.$emit('on-paginate', this.skip, this.limit, page) + }, + handlePagesize (size) { + this.limit = size + this.skip = 0 } }, feathers: { From 82345314fd8017de3ff8bffd3b50e0304f6394a4 Mon Sep 17 00:00:00 2001 From: harshp Date: Mon, 10 Sep 2018 17:04:11 +0530 Subject: [PATCH 275/419] remove logs --- client/src/pages/user/SchemaList.vue | 1 - 1 file changed, 1 deletion(-) diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index 252065e..8530861 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -333,7 +333,6 @@ } }, mounted () { - console.log('this.page1 ', this.pageno) this.total = this.dataTotal this.mdata = this.data // if (this.dynamicData) { From 664e1c2e6d6c1ce598d1a09ba0393a57315e3796 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed <33310500+fsaiyedOB@users.noreply.github.com> Date: Mon, 10 Sep 2018 17:38:21 +0530 Subject: [PATCH 276/419] Update SchemaView.vue --- client/src/components/SchemaView.vue | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 28d46b6..dca2e3d 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -874,8 +874,11 @@ export default { await dataQuerymodel.get(null, { $last: true, fid: this.$route.params.id, - currentStatus: this.$route.params.stateid + currentStatus: this.$route.params.stateid, + $skip: this.skip, + $limit: this.limit }).then(queryresp => { + this.dataTotal = queryresp.data.total if (queryresp.data.data.length > 0) { this.instanceEntries = queryresp.data.data From f90d1dbf7da076215f3b295f2397f9cc83fee9f4 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Mon, 10 Sep 2018 17:39:13 +0530 Subject: [PATCH 277/419] Last task added in flowzdata --- client/src/components/SchemaView.vue | 34 +++++++++++----------------- client/src/pages/flow/New.vue | 11 ++++++++- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 5dce3e8..c063d6c 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -494,7 +494,7 @@ export default { }, makeObj () { - var obj = this.schema + const obj = this.schema obj.Schemaid = this.schema.id obj.data = this.formSchemaInstance.data return obj @@ -829,26 +829,15 @@ export default { }) }, - flowzLogic () { - let startId = this.flowzData.startId - let firstState = '' - for (let startItems of startId) { - // console.log('startItems: ', startItems) - if (this.flowzData.processList[startItems].target.length > 0) { - firstState = this.flowzData.processList[startItems].target[0].id - break - } - } + async populateTables (schema) { + + let firstState = this.flowzData.first if (firstState === this.$route.params.stateid) { this.itsFirstState = true } else { this.itsFirstState = false } - // let taskData = _.find(res.data.data[0].json.processList, (o) => { return o.id == this.$route.params.stateid}) - let inputschemaId = this.flowzData.schema - }, - async schemaLogic (schema) { this.dataSchema = schema this.email = false this.htmlcontent = false @@ -887,31 +876,34 @@ export default { async init () { this.isFlowzLoaded = false + this.itsFirstState = true this.$Loading.start() this.schemabinding = false this.email = false let cachedFlowz = _.find(this.$store.state.flowz, (o) => { return o.id === this.$route.params.id}) let cachedSchema = _.find(this.$store.state.schema, (o) => { return o.id === cachedFlowz.schema}) + + // this.flowzData = cachedFlowz ? cachedFlowz : await this.getFlowz() + // this.populateTables(cachedSchema ? cachedSchema : await this.getSchema(this.flowzData.schema)) + if (cachedFlowz) { this.flowzData = cachedFlowz - await this.flowzLogic() // check cached schema if (cachedSchema) { - await this.schemaLogic(cachedSchema) + await this.populateTables(cachedSchema) } else { let unCachedSchema = await this.getSchema(cachedFlowz.schema) - await this.schemaLogic(unCachedSchema) + await this.populateTables(unCachedSchema) } } else { this.flowzData = await this.getFlowz() - await this.flowzLogic() if (cachedSchema) { - await this.schemaLogic() + await this.populateTables() } else { let unCachedSchema = await this.getSchema(this.flowzData.schema) - await this.schemaLogic(unCachedSchema) + await this.populateTables(unCachedSchema) } } diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 18e800b..137e600 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -81,7 +81,8 @@ intermediateId: [], processList: {}, xml: '', - svg: '' + svg: '', + first: '' } } }, @@ -206,6 +207,14 @@ } } } + + for (let startItems of this.flowObject.startId) { + // console.log('startItems: ', startItems) + if (this.flowObject.processList[startItems].target.length > 0) { + this.flowObject.first = this.flowObject.processList[startItems].target[0].id + break + } + } let actions = [] let filteredProcesses = _.filter(allProcess, (o) => { if (o.type !== 'startevent' && o.type !== 'endevent' && o.type !== 'intermediatethrowevent') { From bae6f23d4775580679bf935ba21d9e30d7d7374c Mon Sep 17 00:00:00 2001 From: nikitam Date: Mon, 10 Sep 2018 18:52:18 +0530 Subject: [PATCH 278/419] schema-new-optimized --- client/index.html | 22 +- client/src/pages/schema/New.vue | 1205 ++++--------------- service/src/services/schema/schema.hooks.js | 8 +- 3 files changed, 250 insertions(+), 985 deletions(-) diff --git a/client/index.html b/client/index.html index 7829335..8fd5bc3 100644 --- a/client/index.html +++ b/client/index.html @@ -4,7 +4,7 @@ flowz-schema - + @@ -17,11 +17,11 @@ - - + + - + - + - - - + + + - - + + diff --git a/client/src/pages/schema/New.vue b/client/src/pages/schema/New.vue index 2c5da3a..28664fc 100644 --- a/client/src/pages/schema/New.vue +++ b/client/src/pages/schema/New.vue @@ -30,35 +30,29 @@ diff --git a/client/src/area/Dashboard.vue b/client/src/area/Dashboard.vue index 8269eb3..86347b2 100644 --- a/client/src/area/Dashboard.vue +++ b/client/src/area/Dashboard.vue @@ -161,19 +161,25 @@ export default { }, methods: { init () { - flowzModel.get(null, {}) + flowzModel.get(null, { + $limit: 0 + }) .then((res) => { this.countFlowz = res.data.total }) - finstanceModel.get(null, {}) + finstanceModel.get(null, { + $limit: 0 + }) .then((res) => { this.countInstances = res.data.total }) - flowzDataModel.get(null, {}) + flowzDataModel.get(null, { + $limit: 0 + }) .then((res) => { - console.log('resp data:', res) + // console.log('resp data:', res) this.countData = res.total }) }, diff --git a/client/static/img/favicon.ico b/client/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..44da78e4ce75fbfe863ff19c7da249947e4341b5 GIT binary patch literal 1150 zcma)+yG{Z@6owCKymVB=4q{=bL@PUA!I;=snkXT5Jb@-A`T|Dq3AC`b)(#V0)=RQc z+?7O0G{M*)Y|!O*&MdPGyLeeLJ23Nq|C~8<2BMhw#N#C1DawryC5R|3nivuz{rHTSR5W6B?lX3fwOPC1D@5 zAx~;p8)k18&ZO>cN#gR=`2>ul#&^9~t9#gDUA2bJvx&1Fp8$oM|ox=`CC*G`+aRE%BgsnZI~J8=T}Yvov)rprwu%B1NLgjr+a=} z1A6_icm1%(t8d}_GoxylYf;rN^A`!A^`J<<*Yh8)U-t2uV{meXU@w=Gz}s>fIz!b&TkAm}o2JxA1?2`mN?! H%M7#MO(`hF literal 0 HcmV?d00001 From 30b65d7a235f872d1c867757b973e365b262306f Mon Sep 17 00:00:00 2001 From: harshp Date: Tue, 11 Sep 2018 11:24:41 +0530 Subject: [PATCH 280/419] remove ununsed npm packages --- client/package.json | 17 +- client/src/assets/js/deepstream/deepRecord.js | 146 - client/src/assets/js/deepstream/recordRun.js | 84 - .../src/assets/js/deepstream/recordStart.js | 80 - client/static/css/grapes.min.css | 4 - client/static/css/select2.min.css | 1 - client/static/grapes.min.css | 6675 ----- client/static/grapes.min.js | 21169 ---------------- client/static/grapesjs-mjml.min.js | 108 - client/static/gridmanager.js | 1585 -- client/static/js/aviary-editor.js | 4 - client/static/js/grapesjs-aviary.min.js | 2 - .../js/grapesjs-component-countdown.min.js | 2 - client/static/js/grapesjs-navbar.min.js | 2 - .../static/js/grapesjs-plugin-export.min.js | 18 - client/static/js/grapesjs-plugin-forms.min.js | 1173 - client/static/js/grapesjs-preset-webpage.js | 151 - client/static/js/product-plugin-old.js | 284 - client/static/js/product-plugin.js | 1047 - client/static/js/select2.min.js | 3 - 20 files changed, 4 insertions(+), 32551 deletions(-) delete mode 100644 client/src/assets/js/deepstream/deepRecord.js delete mode 100644 client/src/assets/js/deepstream/recordRun.js delete mode 100644 client/src/assets/js/deepstream/recordStart.js delete mode 100644 client/static/css/grapes.min.css delete mode 100644 client/static/css/select2.min.css delete mode 100644 client/static/grapes.min.css delete mode 100644 client/static/grapes.min.js delete mode 100644 client/static/grapesjs-mjml.min.js delete mode 100644 client/static/gridmanager.js delete mode 100644 client/static/js/aviary-editor.js delete mode 100644 client/static/js/grapesjs-aviary.min.js delete mode 100644 client/static/js/grapesjs-component-countdown.min.js delete mode 100644 client/static/js/grapesjs-navbar.min.js delete mode 100644 client/static/js/grapesjs-plugin-export.min.js delete mode 100644 client/static/js/grapesjs-plugin-forms.min.js delete mode 100644 client/static/js/grapesjs-preset-webpage.js delete mode 100644 client/static/js/product-plugin-old.js delete mode 100644 client/static/js/product-plugin.js delete mode 100644 client/static/js/select2.min.js diff --git a/client/package.json b/client/package.json index 8c88892..36dbe86 100644 --- a/client/package.json +++ b/client/package.json @@ -17,7 +17,6 @@ "@deveodk/vue-tinymce": "^1.0.0", "@feathersjs/errors": "^3.3.2", "@tinymce/tinymce-vue": "^1.0.9", - "FormData": "^0.10.1", "animate.css": "^3.7.0", "aws": "0.0.3-2", "aws-sdk": "^2.309.0", @@ -31,25 +30,19 @@ "camunda-bpmn-moddle": "^0.13.0", "child_process": "^1.0.2", "codemirror": "^5.40.0", - "deepstream.io-client-js": "^2.3.0", "diagram-js": "^0.21.1", "element-ui": "^1.4.13", "feathers-hooks": "^2.1.0", "feathers-socketio": "^2.0.0", + "file-loader": "^2.0.0", "flowz-subscription": "^0.2.8", "fs": "0.0.1-security", - "grapesjs": "^0.10.8", - "grapesjs-blocks-basic": "^0.1.3", - "grapesjs-mjml": "0.0.8", - "grapesjs-plugin-forms": "^0.2.5", "inherits": "^2.0.3", "iview": "^2.9.2", "jQuery": "^1.7.4", "jquery": "^3.3.1", "jquery-ui": "^1.12.1", "js-cookie": "^2.2.0", - "jsdom": "^11.12.0", - "json-daex": "0.0.13", "location": "0.0.1", "lodash": "^4.17.4", "moment": "^2.20.1", @@ -58,6 +51,8 @@ "papaparse": "^4.6.0", "psl": "^1.1.29", "split.js": "^1.3.5", + "strip-ansi": "^4.0.0", + "timers-browserify": "^2.0.10", "tls": "0.0.1", "vue": "^2.5.17", "vue-async-computed": "^3.4.1", @@ -109,11 +104,9 @@ "eventsource-polyfill": "^0.9.6", "express": "^4.16.2", "extract-text-webpack-plugin": "^2.1.2", - "file-loader": "^0.11.1", "friendly-errors-webpack-plugin": "^1.1.3", "html-webpack-plugin": "^2.28.0", "http-proxy-middleware": "^0.17.3", - "inject-loader": "^3.0.0", "karma": "^1.4.1", "karma-coverage": "^1.1.1", "karma-mocha": "^1.3.0", @@ -125,13 +118,11 @@ "karma-webpack": "^2.0.6", "less": "^2.7.2", "less-loader": "^4.0.5", - "lolex": "^1.5.2", "mocha": "^3.2.0", "nightwatch": "^0.9.12", "opn": "^5.2.0", "optimize-css-assets-webpack-plugin": "^2.0.0", "ora": "^1.4.0", - "phantomjs-prebuilt": "^2.1.14", "rimraf": "^2.6.0", "selenium-server": "^3.14.0", "semver": "^5.5.1", @@ -143,7 +134,7 @@ "vue-particles": "^1.0.9", "vue-style-loader": "^3.1.2", "vue-template-compiler": "^2.5.17", - "webpack": "^2.6.1", + "webpack": "^2.7.0", "webpack-bundle-analyzer": "^2.10.0", "webpack-dev-middleware": "^1.12.2", "webpack-hot-middleware": "^2.23.1", diff --git a/client/src/assets/js/deepstream/deepRecord.js b/client/src/assets/js/deepstream/deepRecord.js deleted file mode 100644 index dbfd3b4..0000000 --- a/client/src/assets/js/deepstream/deepRecord.js +++ /dev/null @@ -1,146 +0,0 @@ - // - // -import axios from 'axios' -import _ from 'lodash' - -let options = { - flowzApiURL: 'https://api.flowzcluster.tk/eng/flowz/', - cacheAPIURL: 1000 * 60 -} -let flowCache = [] - -export const deepRecord = { - addRecord: async function (dpClient, instanceId, recordName, payload) { - return new Promise(async (resolve, reject) => { - try { - let id = instanceId + recordName + '/' + dpClient.getUid() - let recordObj = dpClient.record.getRecord(id) - recordObj.whenReady((record) => { - record.set(payload) - resolve({recordId: id, recordObj: record}) - }) - } catch (err) { - reject(err) - } - }) - }, - getRecord: async function (dpClient, recordName, callback) { - dpClient.record.snapshot(recordName, callback) - }, - recordSubscribe: async function (dpClient, recordName, callback) { - return new Promise(async (resolve, reject) => { - try { - let recordObj = dpClient.record.getRecord(recordName) - recordObj.subscribe(callback) - } catch (err) { - reject(err) - } - }) - }, - getRecordObject: async function (dpClient, recordName) { - return new Promise(async (resolve, reject) => { - try { - let recordObj = dpClient.record.getRecord(recordName) - recordObj.whenReady((record) => { - resolve(record) - }) - } catch (err) { - reject(err) - } - }) - }, - // removeRecord: async function (dpClient, recordName, recordObj) { - // dpClient.record.getRecord( recordName ).delete(); - // let listName = recordName.substring(0,recordName.indexOf('/')) - // dpClient.record.getList(recordName).removeEntry(id); - // }, - getFlow: async function (instanceId) { - if (flowCache[instanceId] !== undefined) { - return flowCache[instanceId] - } - let orignalInstanceId = await this.replaceAll(instanceId, '_', '-') - let flowData = await axios.get(options.flowzApiURL + orignalInstanceId + '?$select[]=json') - flowCache[instanceId] = { - timeStamp: new Date(), - dataObj: flowData.data.json - } - return flowCache[instanceId] - }, - getNextTraget: async function (instanceId, targetId) { - let flowData = await this.getFlow(instanceId) - flowData = flowData.dataObj - let targetObj = _.find(flowData.processList, {'id': targetId}) - if (targetObj.type === 'start' || - targetObj.type === 'endevent' || - targetObj.type === 'intermediatethrowevent') { - return targetObj - } - if (targetObj.inputProperty.length === 0) { - targetObj = this.getNextTraget(instanceId, targetObj.target[0].id) - } - return targetObj - }, - getCurrentTraget: async function (instanceId, targetId) { - let flowData = await this.getFlow(instanceId) - flowData = flowData.dataObj - let targetObj = _.find(flowData.processList, {'id': targetId}) - return targetObj - }, - replaceAll: function replaceAll (str, find, replace) { - return str.replace(new RegExp(find, 'g'), replace) - }, - startInstance: async function (dpClient, instanceId) { - return new Promise(async (resolve, reject) => { - instanceId = await this.replaceAll(instanceId, '-', '_') - let flowData = await this.getFlow(instanceId) - flowData = flowData.dataObj - let startObj = _.find(flowData.processList, {'type': 'start'}) - let nextTargetObj = await this.getNextTraget(instanceId, startObj.target[0].id) - let payload = { - instanceId, - 'currentStatus': nextTargetObj.id, - stageReference: [], - 'mainStatus': 'inprocess' - } - let instanceListName = instanceId + 'List' - let returnObj = await this.addRecord(dpClient, instanceId, '', payload).catch((err) => { console.log(err) }) - let instanceListObj = dpClient.record.getList(instanceListName) - instanceListObj.addEntry(returnObj.recordId) - resolve({instanceListName, instanceListObj, recordId: returnObj.recordId, recordObj: returnObj.recordObj}) - }) - }, - setNextStage: async function (dpClient, instanceRecordId, stageRecordId) { - return new Promise(async (resolve, reject) => { - let getRecordData = await this.getRecordObject(dpClient, instanceRecordId) - let instanceId = getRecordData.get('instanceId') - let currentStatus = getRecordData.get('currentStatus') - let currentTargetObj = await this.getCurrentTraget(instanceId, currentStatus) - let nextTargetObj = await this.getNextTraget(instanceId, currentTargetObj.target[0].id) - let stageReference = getRecordData.get('stageReference') - stageReference.push({StageName: currentStatus, stageRecordId}) - - let updateInstance = getRecordData.get() - updateInstance.currentStatus = nextTargetObj.id - updateInstance.stageReference = stageReference - if (nextTargetObj.type === 'endevent') { - updateInstance.mainStatus = 'completed' - } - getRecordData.set(updateInstance) - resolve('completed') - }) - }, - instanceStageSubmit: async function (dpClient, instanceRecordId, payload) { - return new Promise(async (resolve, reject) => { - let getRecordData = await this.getRecordObject(dpClient, instanceRecordId) - let instanceId = getRecordData.get('instanceId') - let StageName = getRecordData.get('currentStatus') - let stageListName = StageName + 'List' - payload[instanceId] = instanceId - let returnObj = await this.addRecord(dpClient, instanceId, StageName, payload).catch((err) => { console.log(err) }) - let stageListObj = dpClient.record.getList(stageListName) - stageListObj.addEntry(returnObj.recordId) - await this.setNextStage(dpClient, instanceRecordId, returnObj.recordId) - resolve({stageListName, stageListObj, recordId: returnObj.recordId, recordObj: returnObj.recordObj}) - }) - } -} diff --git a/client/src/assets/js/deepstream/recordRun.js b/client/src/assets/js/deepstream/recordRun.js deleted file mode 100644 index bab313b..0000000 --- a/client/src/assets/js/deepstream/recordRun.js +++ /dev/null @@ -1,84 +0,0 @@ -const deepstream = require('deepstream.io-client-js') -const client = deepstream('ws://167.99.233.211:6020').login() -const DeepRecord = require('./deepRecord') - -let id = 0 - -async function startFlow () { - let instanceId = '39c53741-ec14-4ceb-a9db-97d7066cd424' - let instanceRecordId = '39c53741_ec14_4ceb_a9db_97d7066cd424/jkkuymzw-2pe2i4djunm' - let payload = { - 'firstName': 'Test', - 'lastName': 'Xyz', - 'po_number': Math.random() - } - // ==================Flow initiated============================== - let instanceObj = await DeepRecord.instanceStageSubmit(client, instanceRecordId, payload) - // // ==================OrderEntry============================== - // let StageName = 'OrderEntry' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random() - // }; - // let returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','ArtWork') - // // ==================OrderEntry============================== - // // ==================ArtWork============================== - // StageName = 'ArtWork' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded" - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','Proof') - // // ================================================ - // // ==================Proof============================== - // StageName = 'Proof' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'Print' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','Print') - // // ================================================ - // // ==================Proof============================== - // StageName = 'Print' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'completed' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','completed') - // // ================================================ - // // ==================completed============================== - // StageName = 'Print' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'End' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','End') - // // ================================================ -} - -startFlow() - -// setInterval(() => { -// startFlow() -// },20) -// -// setInterval(() => { -// startFlow() -// },20) diff --git a/client/src/assets/js/deepstream/recordStart.js b/client/src/assets/js/deepstream/recordStart.js deleted file mode 100644 index 3e60b2a..0000000 --- a/client/src/assets/js/deepstream/recordStart.js +++ /dev/null @@ -1,80 +0,0 @@ -const deepstream = require('deepstream.io-client-js') -const client = deepstream('ws://167.99.233.211:6020').login() -const DeepRecord = require('./deepRecord') - -let id = 0 - -async function startFlow () { - let instanceId = '39c53741-ec14-4ceb-a9db-97d7066cd424' - // ==================Flow initiated============================== - let instanceObj = await DeepRecord.startInstance(client, instanceId) - instanceObj.recordObj.subscribe((data) => { - }) - // // ==================OrderEntry============================== - // let StageName = 'OrderEntry' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random() - // }; - // let returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','ArtWork') - // // ==================OrderEntry============================== - // // ==================ArtWork============================== - // StageName = 'ArtWork' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded" - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','Proof') - // // ================================================ - // // ==================Proof============================== - // StageName = 'Proof' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'Print' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','Print') - // // ================================================ - // // ==================Proof============================== - // StageName = 'Print' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'completed' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','completed') - // // ================================================ - // // ==================completed============================== - // StageName = 'Print' - // payload = { - // 'firstName': 'Test', - // "lastName": "Xyz", - // "po_number": Math.random(), - // "ArtFile":"Art File uploaded", - // "moveTo": 'End' - // }; - // returnObj = await DeepRecord.instanceStageSubmit(client, instanceName, StageName, payload); - // instanceObj.recordObj.set('currentStatus','End') - // // ================================================ -} - -startFlow() - -// setInterval(() => { -// startFlow() -// },20) -// -// setInterval(() => { -// startFlow() -// },20) diff --git a/client/static/css/grapes.min.css b/client/static/css/grapes.min.css deleted file mode 100644 index 4ccd388..0000000 --- a/client/static/css/grapes.min.css +++ /dev/null @@ -1,4 +0,0 @@ -.sp-container{position:absolute;top:0;left:0;display:inline-block;*display:inline;*zoom:1;z-index:9999994;overflow:hidden}.sp-container.sp-flat{position:relative}.sp-container,.sp-container *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.sp-top{position:relative;width:100%;display:inline-block}.sp-top-inner{position:absolute;top:0;left:0;bottom:0;right:0}.sp-color{position:absolute;top:0;left:0;bottom:0;right:20%}.sp-hue{position:absolute;top:0;right:0;bottom:0;left:84%;height:100%}.sp-clear-enabled .sp-hue{top:33px;height:77.5%}.sp-fill{padding-top:80%}.sp-sat,.sp-val{position:absolute;top:0;left:0;right:0;bottom:0}.sp-alpha-enabled .sp-top{margin-bottom:18px}.sp-alpha-enabled .sp-alpha{display:block}.sp-alpha-handle{position:absolute;top:-4px;bottom:-4px;width:6px;left:50%;cursor:pointer;border:1px solid black;background:white;opacity:.8}.sp-alpha{display:none;position:absolute;bottom:-14px;right:0;left:0;height:8px}.sp-alpha-inner{border:solid 1px #333}.sp-clear{display:none}.sp-clear.sp-clear-display{background-position:center}.sp-clear-enabled .sp-clear{display:block;position:absolute;top:0px;right:0;bottom:0;left:84%;height:28px}.sp-container,.sp-replacer,.sp-preview,.sp-dragger,.sp-slider,.sp-alpha,.sp-clear,.sp-alpha-handle,.sp-container.sp-dragging .sp-input,.sp-container button{-webkit-user-select:none;-moz-user-select:-moz-none;-o-user-select:none;user-select:none}.sp-container.sp-input-disabled .sp-input-container{display:none}.sp-container.sp-buttons-disabled .sp-button-container{display:none}.sp-container.sp-palette-buttons-disabled .sp-palette-button-container{display:none}.sp-palette-only .sp-picker-container{display:none}.sp-palette-disabled .sp-palette-container{display:none}.sp-initial-disabled .sp-initial{display:none}.sp-sat{background-image:-webkit-gradient(linear, 0 0, 100% 0, from(#fff), to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(left, #fff, rgba(204,154,129,0));background-image:-moz-linear-gradient(left, #fff, rgba(204,154,129,0));background-image:-o-linear-gradient(left, #fff, rgba(204,154,129,0));background-image:-ms-linear-gradient(left, #fff, rgba(204,154,129,0));background-image:linear-gradient(to right, #fff, rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)";filter:progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81')}.sp-val{background-image:-webkit-gradient(linear, 0 100%, 0 0, from(#000), to(rgba(204,154,129,0)));background-image:-webkit-linear-gradient(bottom, #000, rgba(204,154,129,0));background-image:-moz-linear-gradient(bottom, #000, rgba(204,154,129,0));background-image:-o-linear-gradient(bottom, #000, rgba(204,154,129,0));background-image:-ms-linear-gradient(bottom, #000, rgba(204,154,129,0));background-image:linear-gradient(to top, #000, rgba(204,154,129,0));-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000')}.sp-hue{background:-moz-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%);background:-ms-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%);background:-o-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%);background:-webkit-gradient(linear, left top, left bottom, from(red), color-stop(0.17, #ff0), color-stop(0.33, lime), color-stop(0.5, cyan), color-stop(0.67, blue), color-stop(0.83, #f0f), to(red));background:-webkit-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%);background:linear-gradient(to bottom, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%)}.sp-1{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00')}.sp-2{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00')}.sp-3{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff')}.sp-4{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff')}.sp-5{height:16%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff')}.sp-6{height:17%;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000')}.sp-hidden{display:none !important}.sp-cf:before,.sp-cf:after{content:"";display:table}.sp-cf:after{clear:both}.sp-cf{*zoom:1}@media (max-device-width: 480px){.sp-color{right:40%}.sp-hue{left:63%}.sp-fill{padding-top:60%}}.sp-dragger{border-radius:5px;height:5px;width:5px;border:1px solid #fff;background:#000;cursor:pointer;position:absolute;top:0;left:0}.sp-slider{position:absolute;top:0;cursor:pointer;height:3px;left:-1px;right:-1px;border:1px solid #000;background:white;opacity:.8}.sp-container{border-radius:0;background-color:#ECECEC;border:solid 1px #f0c49B;padding:0}.sp-container,.sp-container button,.sp-container input,.sp-color,.sp-hue,.sp-clear{font:normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.sp-top{margin-bottom:3px}.sp-color,.sp-hue,.sp-clear{border:solid 1px #666}.sp-input-container{float:right;width:100px;margin-bottom:4px}.sp-initial-disabled .sp-input-container{width:100%}.sp-input{font-size:12px !important;border:1px inset;padding:4px 5px;margin:0;width:100%;background:transparent;border-radius:3px;color:#222}.sp-input:focus{border:1px solid orange}.sp-input.sp-validation-error{border:1px solid red;background:#fdd}.sp-picker-container,.sp-palette-container{float:left;position:relative;padding:10px;padding-bottom:300px;margin-bottom:-290px}.sp-picker-container{width:172px;border-left:solid 1px #fff}.sp-palette-container{border-right:solid 1px #ccc}.sp-palette-only .sp-palette-container{border:0}.sp-palette .sp-thumb-el{display:block;position:relative;float:left;width:24px;height:15px;margin:3px;cursor:pointer;border:solid 2px transparent}.sp-palette .sp-thumb-el:hover,.sp-palette .sp-thumb-el.sp-thumb-active{border-color:orange}.sp-thumb-el{position:relative}.sp-initial{float:left;border:solid 1px #333}.sp-initial span{width:30px;height:25px;border:none;display:block;float:left;margin:0}.sp-initial .sp-clear-display{background-position:center}.sp-palette-button-container,.sp-button-container{float:right}.sp-replacer{margin:0;overflow:hidden;cursor:pointer;padding:4px;display:inline-block;*zoom:1;*display:inline;border:solid 1px #91765d;background:#eee;color:#333;vertical-align:middle}.sp-replacer:hover,.sp-replacer.sp-active{border-color:#F0C49B;color:#111}.sp-replacer.sp-disabled{cursor:default;border-color:silver;color:silver}.sp-dd{padding:2px 0;height:16px;line-height:16px;float:left;font-size:10px}.sp-preview{position:relative;width:25px;height:20px;border:solid 1px #222;margin-right:5px;float:left;z-index:0}.sp-palette{*width:220px;max-width:220px}.sp-palette .sp-thumb-el{width:16px;height:16px;margin:2px 1px;border:solid 1px #d0d0d0}.sp-container{padding-bottom:0}.sp-container button{background-color:#eeeeee;background-image:-webkit-linear-gradient(top, #eee, #ccc);background-image:-moz-linear-gradient(top, #eee, #ccc);background-image:-ms-linear-gradient(top, #eee, #ccc);background-image:-o-linear-gradient(top, #eee, #ccc);background-image:linear-gradient(to bottom, #eee, #ccc);border:1px solid #ccc;border-bottom:1px solid #bbb;border-radius:3px;color:#333;font-size:14px;line-height:1;padding:5px 4px;text-align:center;text-shadow:0 1px 0 #eee;vertical-align:middle}.sp-container button:hover{background-color:#dddddd;background-image:-webkit-linear-gradient(top, #ddd, #bbb);background-image:-moz-linear-gradient(top, #ddd, #bbb);background-image:-ms-linear-gradient(top, #ddd, #bbb);background-image:-o-linear-gradient(top, #ddd, #bbb);background-image:linear-gradient(to bottom, #ddd, #bbb);border:1px solid #bbb;border-bottom:1px solid #999;cursor:pointer;text-shadow:0 1px 0 #ddd}.sp-container button:active{border:1px solid #aaa;border-bottom:1px solid #888;-webkit-box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;-moz-box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;-ms-box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;-o-box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee;box-shadow:inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee}.sp-cancel{font-size:11px;color:#d93f3f !important;margin:0;padding:2px;margin-right:5px;vertical-align:middle;text-decoration:none}.sp-cancel:hover{color:#d93f3f !important;text-decoration:underline}.sp-palette span:hover,.sp-palette span.sp-thumb-active{border-color:#000}.sp-preview,.sp-alpha,.sp-thumb-el{position:relative;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.sp-preview-inner,.sp-alpha-inner,.sp-thumb-inner{display:block;position:absolute;top:0;left:0;bottom:0;right:0}.sp-palette .sp-thumb-inner{background-position:50% 50%;background-repeat:no-repeat}.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=)}.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=)}.sp-clear-display{background-repeat:no-repeat;background-position:center;background-image:url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==)}/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.CodeMirror{font-family:monospace;height:300px;color:black}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0 !important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{0%{}50%{background-color:transparent}100%{}}@-webkit-keyframes blink{0%{}50%{background-color:transparent}100%{}}@keyframes blink{0%{}50%{background-color:transparent}100%{}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:bold}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:#f00}.cm-invalidchar{color:#f00}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0f0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#f22}.CodeMirror-matchingtag{background:rgba(255,150,0,0.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:white}.CodeMirror-scroll{overflow:scroll !important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none !important;border:none !important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper{-webkit-user-select:none;-moz-user-select:none;user-select:none}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:none;font-variant-ligatures:none}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;overflow:auto}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background:#ffa;background:rgba(255,255,0,0.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:none}.cm-s-hopscotch.CodeMirror{background:#322931;color:#d5d3d5}.cm-s-hopscotch div.CodeMirror-selected{background:#433b42 !important}.cm-s-hopscotch .CodeMirror-gutters{background:#322931;border-right:0px}.cm-s-hopscotch .CodeMirror-linenumber{color:#797379}.cm-s-hopscotch .CodeMirror-cursor{border-left:1px solid #989498 !important}.cm-s-hopscotch span.cm-comment{color:#b33508}.cm-s-hopscotch span.cm-atom{color:#c85e7c}.cm-s-hopscotch span.cm-number{color:#c85e7c}.cm-s-hopscotch span.cm-property,.cm-s-hopscotch span.cm-attribute{color:#8fc13e}.cm-s-hopscotch span.cm-keyword{color:#dd464c}.cm-s-hopscotch span.cm-string{color:#fdcc59}.cm-s-hopscotch span.cm-variable{color:#8fc13e}.cm-s-hopscotch span.cm-variable-2{color:#1290bf}.cm-s-hopscotch span.cm-def{color:#fd8b19}.cm-s-hopscotch span.cm-error{background:#dd464c;color:#989498}.cm-s-hopscotch span.cm-bracket{color:#d5d3d5}.cm-s-hopscotch span.cm-tag{color:#dd464c}.cm-s-hopscotch span.cm-link{color:#c85e7c}.cm-s-hopscotch .CodeMirror-matchingbracket{text-decoration:underline;color:white !important}.cm-s-hopscotch .CodeMirror-activeline-background{background:#302020}@font-face{font-family:'font3336';src:url("../fonts/main-fonts.eot?v=20");src:url("../fonts/main-fonts.woff?v=20") format("woff"),url("../fonts/main-fonts.ttf?v=20") format("truetype"),url("../fonts/main-fonts.svg?v=20") format("svg"),url("../fonts/main-fonts.eot?v=20") format("embedded-opentype");font-weight:normal;font-style:normal}.gjs-active-color{color:#71b7f1}.gjs-warn-color{color:#ffca6f}.gjs-fonts::before{display:block;font:normal normal normal 14px font3336;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:5em}.gjs-f-b1::before{content:'Q'}.gjs-f-b2::before{content:'W'}.gjs-f-b3::before{content:'E'}.gjs-f-b37::before{content:'R'}.gjs-f-hero::before{content:'T'}.gjs-f-h1p::before{content:'y'}.gjs-f-3ba::before{content:'u'}.gjs-f-image::before{content:'I'}.gjs-f-text::before{content:'o'}.gjs-f-quo::before{content:'p'}.gjs-f-button::before{content:'B'}.gjs-f-divider::before{content:'D'}.gjs-invis-invis,.gjs-clm-tags #gjs-clm-new,.gjs-no-app{background-color:transparent;border:none;color:inherit}.gjs-no-app{height:10px}.gjs-test::btn{color:'#fff'}.opac50,.gjs-clm-tags #gjs-clm-close{opacity:.5;filter:alpha(opacity=50)}.gjs-checker-bg,.gjs-field-colorp-c,.checker-bg,.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==")}.gjs-no-user-select,.gjs-grabbing,.gjs-grabbing *,.gjs-nav-comp-name{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.gjs-no-pointer-events,.gjs-resizer-c,.gjs-margin-v-el,.gjs-padding-v-el,.gjs-fixedmargin-v-el,.gjs-fixedpadding-v-el{pointer-events:none}.gjs-bg-main,.gjs-off-prv,.gjs-select option,.gjs-clm-select option,.gjs-sm-select option,.gjs-sm-unit option,.gjs-pn-panel,.gjs-nv-item .gjs-nv-title-c,.gjs-field-select option,.gjs-sm-sector .gjs-sm-colorp-c,.gjs-clm-tags .gjs-sm-colorp-c,.gjs-block,.gjs-mdl-dialog,#gjs-rte-toolbar,.sp-container{background-color:#444}.gjs-color-main,.gjs-off-prv,.gjs-btn-prim,.gjs-pn-panel,.gjs-pn-btn,.gjs-btnt,.gjs-sm-sector .gjs-sm-field.gjs-sm-composite,.gjs-clm-tags .gjs-sm-field.gjs-sm-composite,.gjs-sm-sector .gjs-sm-composite.gjs-clm-field,.gjs-clm-tags .gjs-sm-composite.gjs-clm-field,.gjs-sm-sector .gjs-sm-stack #gjs-sm-add,.gjs-clm-tags .gjs-sm-stack #gjs-sm-add,.gjs-block-svg-path,.gjs-mdl-dialog,#gjs-rte-toolbar .gjs-rte-btn{color:#ddd;fill:#ddd}.gjs-color-active,.gjs-pn-btn.gjs-pn-active,.gjs-btnt.gjs-pn-active{color:#f8f8f8;fill:#f8f8f8}.gjs-bdrag{pointer-events:none !important;position:absolute !important;z-index:10 !important;width:auto}.gjs-drag-helper{background-color:#3b97e3 !important;pointer-events:none !important;position:absolute !important;z-index:10 !important;transform:scale(0.3) !important;transform-origin:top left !important;-webkit-transform-origin:top left !important;margin:15px !important;transition:none !important;outline:none !important}.gjs-grabbing,.gjs-grabbing *{cursor:grabbing !important;cursor:-webkit-grabbing !important}.gjs-grabbing{overflow:hidden}.gjs-off-prv{position:relative;z-index:10;padding:5px;cursor:pointer}.gjs-editor-cont ::-webkit-scrollbar-track{background:rgba(0,0,0,0.1)}.gjs-editor-cont ::-webkit-scrollbar-thumb{background-color:rgba(255,255,255,0.2)}.gjs-editor-cont ::-webkit-scrollbar{width:8px}.clear{clear:both}.no-select,.gjs-com-no-select,.gjs-com-no-select img,.gjs-category-title,.gjs-sm-sector .gjs-sm-title,.gjs-clm-tags .gjs-sm-title,.gjs-block-category .gjs-title,.gjs-clm-tags #gjs-clm-close,.gjs-clm-tags #gjs-clm-tag-label{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.gjs-editor{font-family:Helvetica,sans-serif;background-color:#444;position:relative;box-sizing:border-box;height:100%}.gjs-freezed,.gjs-nv-freezed{opacity:.5;filter:alpha(opacity=50);pointer-events:none}.gjs-btn-prim{background-color:rgba(255,255,255,0.1);border-radius:2px;padding:3px 6px;cursor:pointer;padding:0.5em;border:none}.gjs-btn-prim:active{background-color:rgba(255,255,255,0.1)}.gjs-input,.gjs-select{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.1);border-radius:2px;box-shadow:1px 1px 0 rgba(255,255,255,0.1);box-sizing:border-box;color:#ddd;padding:0.5em 1em}div.gjs-select{padding:0}.gjs-select select{padding-right:10px}.gjs-select:-moz-focusring,.gjs-select select:-moz-focusring{color:transparent;text-shadow:0 0 0 rgba(255,255,255,0.7)}.gjs-input:focus,.gjs-select:focus,.gjs-button:focus,.gjs-btn-prim:focus,.gjs-select:focus,.gjs-select select:focus{outline:none}.gjs-traits-label{border-bottom:1px solid rgba(0,0,0,0.3);font-size:13px;font-weight:lighter;margin-bottom:5px;padding:10px;text-align:left}.gjs-trt-trait{display:flex;justify-content:start;padding:5px 10px;font-size:0.75em;font-weight:lighter}.gjs-trt-trait .gjs-label{width:30%;text-align:left}.gjs-trt-trait .gjs-field{width:70%}.gjs-cv-canvas{background-color:rgba(0,0,0,0.15);box-sizing:border-box;position:absolute;width:85%;height:100%;bottom:0;left:0;overflow:hidden;padding-top:40px;z-index:1}.gjs-cv-canvas>iframe{height:100%;outline:medium none;width:100%;border:none;margin:0 auto;display:block}.gjs-cv-canvas .gjs-ghost{display:none;pointer-events:none;background-color:#5b5b5b;border:2px dashed #ccc;position:absolute;z-index:10;opacity:.55;filter:alpha(opacity=55)}.gjs-cv-canvas .gjs-highlighter,.gjs-cv-canvas .gjs-highlighter-sel{position:absolute;outline:1px solid #3b97e3;pointer-events:none}.gjs-cv-canvas .gjs-highlighter-warning{outline:3px solid #ffca6f}.gjs-cv-canvas .gjs-highlighter-sel{outline:3px solid #3b97e3}.gjs-cv-canvas #gjs-tools{width:100%;position:absolute;top:0;left:0;outline:none}.gjs-cv-canvas>div:first-child{background-color:#fff;position:relative;height:100%;overflow:auto;width:100%}.gjs-cv-canvas *{box-sizing:border-box}.gjs-frame{transition:width 0.35s ease}.gjs-toolbar{position:absolute;background-color:#3b97e3;color:white;z-index:10}.gjs-toolbar-item{padding:5px 7px;font-size:0.8rem;cursor:pointer}.gjs-resizer-c{position:absolute;z-index:9}.gjs-margin-v-el,.gjs-padding-v-el,.gjs-fixedmargin-v-el,.gjs-fixedpadding-v-el{opacity:.1;filter:alpha(opacity=10);position:absolute;background-color:yellow}.gjs-fixedmargin-v-el,.gjs-fixedpadding-v-el{opacity:.2;filter:alpha(opacity=20)}.gjs-padding-v-el,.gjs-fixedpadding-v-el{background-color:navy}.gjs-resizer-h{pointer-events:all;position:absolute;border:3px solid #3b97e3;width:10px;height:10px;background-color:#fff;margin:-5px}.gjs-resizer-h-tl{top:0;left:0;cursor:nwse-resize}.gjs-resizer-h-tr{top:0;right:0;cursor:nesw-resize}.gjs-resizer-h-tc{top:0;margin:-5px auto;left:0;right:0;cursor:ns-resize}.gjs-resizer-h-cl{left:0;margin:auto -5px;top:0;bottom:0;cursor:ew-resize}.gjs-resizer-h-cr{margin:auto -5px;top:0;bottom:0;right:0;cursor:ew-resize}.gjs-resizer-h-bl{bottom:0;left:0;cursor:nesw-resize}.gjs-resizer-h-bc{bottom:0;margin:-5px auto;left:0;right:0;cursor:ns-resize}.gjs-resizer-h-br{bottom:0;right:0;cursor:nwse-resize}.gjs-pn-panel .gjs-resizer-h{background-color:rgba(0,0,0,0.2);border:none;opacity:0;transition:opacity 0.25s}.gjs-pn-panel .gjs-resizer-h:hover{opacity:1}.gjs-pn-panel .gjs-resizer-h-tc,.gjs-pn-panel .gjs-resizer-h-bc{margin:0 auto;width:100%}.gjs-pn-panel .gjs-resizer-h-cr,.gjs-pn-panel .gjs-resizer-h-cl{margin:auto 0;height:100%}.gjs-resizing .gjs-highlighter,.gjs-resizing .gjs-badge{display:none !important}.gjs-resizing-tl *{cursor:nwse-resize !important}.gjs-resizing-tr *{cursor:nesw-resize !important}.gjs-resizing-tc *{cursor:ns-resize !important}.gjs-resizing-cl *{cursor:ew-resize !important}.gjs-resizing-cr *{cursor:ew-resize !important}.gjs-resizing-bl *{cursor:nesw-resize !important}.gjs-resizing-bc *{cursor:ns-resize !important}.gjs-resizing-br *{cursor:nwse-resize !important}.btn-cl,.gjs-mdl-dialog .gjs-mdl-btn-close,.gjs-am-assets-cont #gjs-am-close{opacity:.3;filter:alpha(opacity=30);font-size:25px;cursor:pointer}.btn-cl:hover,.gjs-mdl-dialog .gjs-mdl-btn-close:hover,.gjs-am-assets-cont #gjs-am-close:hover{opacity:.7;filter:alpha(opacity=70)}#commands.panel{min-width:35px;height:100%;z-index:3}#options.panel{z-index:4;bottom:0}#views.panel{width:16.5%;font-weight:lighter;color:#ddd;right:0;top:0;z-index:3;height:100%;padding:0}#views.panel .c{height:100%}#commands.panel,#options.panel{width:3.5%;left:0}#options .c{display:table;margin:0 auto}body.dragging,body.dragging *{cursor:move !important}.dragged{position:absolute;opacity:.5;filter:alpha(opacity=50);z-index:2000}ol.example li.placeholder{position:relative}ol.example li.placeholder:before{position:absolute}.no-dots,.ui-resizable-handle{border:none !important;margin:0 !important;outline:none !important}.gjs-com-dashed *{outline:1px dashed #888;outline-offset:-2px;box-sizing:border-box}.gjs-cv-canvas .gjs-comp-selected{outline:3px solid #3b97e3 !important}*.gjs-com-hover,div.gjs-com-hover{outline:1px solid #3b97e3}*.gjs-com-hover-delete,div.gjs-com-hover-delete{outline:2px solid #dd3636;opacity:.5;filter:alpha(opacity=50)}*.gjs-com-hover-move,div.gjs-com-hover-move{outline:3px solid #ffca6f}.gjs-com-badge,.gjs-com-badge-red,.gjs-badge{pointer-events:none;background-color:#3b97e3;color:#fff;padding:2px 5px;position:absolute;z-index:1;font-size:12px;outline:none;display:none}.gjs-com-badge-red{background-color:#dd3636}.gjs-badge-warning{background-color:#ffca6f}.gjs-placeholder,.gjs-com-placeholder,.gjs-nv-placeholder{position:absolute;z-index:10;pointer-events:none;display:none}.gjs-placeholder,.gjs-nv-placeholder{border-style:solid !important;border-color:#62c462;outline:none;box-sizing:border-box}.gjs-placeholder-int,.gjs-com-placeholder-int,.gjs-nv-placeholder-int{background-color:#62c462;box-shadow:0 0 3px rgba(0,0,0,0.2);height:100%;width:100%;pointer-events:none;padding:1.5px;outline:none}.gjs-pn-panel{display:inline-block;padding:5px;position:absolute;box-sizing:border-box;text-align:center;z-index:3}.gjs-pn-panel#gjs-pn-commands,.gjs-pn-panel#gjs-pn-options2{width:85%;left:0;top:0;box-shadow:0 0 5px rgba(0,0,0,0.3)}.gjs-pn-panel#gjs-pn-options{right:15%;top:0}.gjs-pn-panel#gjs-pn-options2{bottom:150px;height:auto}.gjs-pn-panel .icon-undo,.gjs-pn-panel .icon-redo{font-size:20px;height:30px;width:25px}.gjs-pn-panel#gjs-pn-views{border-bottom:2px solid rgba(0,0,0,0.3);right:0;width:15%;z-index:4}.gjs-pn-panel#gjs-pn-views-container{height:100%;padding:42px 0 0;right:0;width:15%;overflow:auto;box-shadow:0 0 5px rgba(0,0,0,0.3)}.gjs-pn-buttons{align-items:center;display:flex;justify-content:center}.gjs-pn-btn,.gjs-btnt{box-sizing:border-box;height:30px;width:30px;line-height:21px;background-color:transparent;border:none;font-size:18px;margin-right:5px;border-radius:2px;cursor:pointer;padding:5px;position:relative}.gjs-pn-btn.gjs-pn-active,.gjs-btnt.gjs-pn-active{background-color:rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.25) inset}.gjs-pn-btn>.gjs-pn-arrow-rd,.gjs-btnt>.gjs-pn-arrow-rd{border-bottom:5px solid rgba(255,255,255,0.7);border-left:5px solid transparent;bottom:2px;right:2px;position:absolute}.gjs-pn-btn>.gjs-pn-buttons,.gjs-btnt>.gjs-pn-buttons{background-color:#444;border-radius:2px;position:absolute;display:none;left:50px;top:0;padding:5px}.gjs-pn-btn>.gjs-pn-buttons.gjs-pn-visible,.gjs-btnt>.gjs-pn-buttons.gjs-pn-visible{display:block}.gjs-pn-btn>.gjs-pn-buttons>.gjs-pn-arrow-l,.gjs-btnt>.gjs-pn-buttons>.gjs-pn-arrow-l{border-bottom:5px solid transparent;border-right:5px solid #444;border-top:5px solid transparent;left:-5px;top:15px;position:absolute}.gjs-nv-selected-parent{border:1px solid #ffca6f}.gjs-nv-opac50{opacity:.5;filter:alpha(opacity=50)}.gjs-nv-navigator{position:relative;height:100%}.gjs-nv-navigator #gjs-nv-placeholder{width:100%;position:absolute}.gjs-nv-navigator #gjs-nv-placeholder #gjs-nv-plh-int{height:100%;padding:1px}.gjs-nv-navigator #gjs-nv-placeholder #gjs-nv-plh-int.gjs-nv-insert{background-color:#62c462}.gjs-nv-navigator .gjs-nv-item{font-weight:lighter;text-align:left;position:relative;background-color:rgba(0,0,0,0.1)}.gjs-nv-navigator .gjs-nv-item.gjs-nv-hide{opacity:.55;filter:alpha(opacity=55)}.gjs-nv-navigator .gjs-nv-item #gjs-nv-counter{font-size:10px;position:absolute;right:27px;top:9px}.gjs-nv-navigator .gjs-nv-item #gjs-nv-btn-eye{height:auto !important;width:auto !important;font-size:13px;left:0;top:0;padding:7px 5px 7px 10px;position:absolute;cursor:pointer;z-index:1}.gjs-nv-item #gjs-nv-caret{font-size:7px;width:8px;padding:5px;cursor:pointer;opacity:.7;filter:alpha(opacity=70)}.gjs-nv-item #gjs-nv-caret:hover{opacity:1;filter:alpha(opacity=100)}.gjs-nv-title{background-color:rgba(0,0,0,0.1);font-size:11px;letter-spacing:1px;padding:3px 10px 5px 30px;border-bottom:1px solid rgba(0,0,0,0.3);border-top:1px solid rgba(255,255,255,0.1);display:flex;align-items:center}.gjs-nv-item .gjs-nv-children .gjs-nv-title{border-left:1px solid rgba(5,5,5,0.3)}.gjs-nv-item>.gjs-nv-children{margin-left:7px;display:none}.gjs-nv-item.open>.gjs-nv-children{display:block}.gjs-nv-item>.gjs-nv-no-chld>#gjs-nv-caret::before{content:''}.gjs-nv-no-chld>#gjs-nv-caret{display:none}.gjs-nv-item>#gjs-nv-move{position:absolute;cursor:move;font-size:12px;right:0;top:0;padding:7px 10px 7px 5px}.gjs-nv-selected .gjs-nv-title{background-color:rgba(255,255,255,0.1)}.gjs-nv-nav-item-edit{visibility:hidden;padding:5px;font-size:10px;opacity:.7;filter:alpha(opacity=70)}.gjs-nv-nav-item-edit:hover{opacity:1;filter:alpha(opacity=100)}.gjs-nv-title-c:hover .gjs-nv-nav-item-edit{visibility:visible;cursor:pointer}.gjs-nav-comp-name{padding:5px;box-sizing:content-box}.btn.expand,.gjs-nv-navigator .gjs-nv-item .expand#gjs-nv-btn-eye{background-image:none}.gjs-comp-image-placeholder{display:block;background-color:#f5f5f5;color:#777;height:50px;width:50px;line-height:50px;outline:3px solid #ffca6f;outline-offset:-3px;text-align:center;font-size:16.66667px;cursor:pointer}.gjs-comp-image-placeholder.fa-picture-o::after{content:"\f03e"}.gjs-label{line-height:18px}.gjs-field{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.1);box-shadow:1px 1px 0 rgba(255,255,255,0.1);border-radius:2px;box-sizing:border-box;padding:0;position:relative}.gjs-field input,.gjs-field select,.gjs-field textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:rgba(255,255,255,0.7);border:none;background-color:transparent;box-sizing:border-box;width:100%;position:relative;padding:3px 4px 4px;z-index:1}.gjs-field textarea{resize:vertical}.gjs-field select{height:20px;padding-right:12px}.gjs-field option{padding:3px 0}.gjs-field .gjs-sel-arrow{height:100%;width:9px;position:absolute;right:0;top:0;z-index:0}.gjs-field .gjs-d-s-arrow{bottom:7px;border-top:4px solid rgba(255,255,255,0.7);position:absolute;height:0;width:0;border-left:3px solid transparent;border-right:4px solid transparent;cursor:pointer}.gjs-field-color input{padding-right:22px;box-sizing:border-box}.gjs-field-colorp{border-left:1px solid rgba(0,0,0,0.3);box-sizing:border-box;height:100%;padding:2px;position:absolute;right:0;top:0;width:22px;z-index:10}.gjs-field-colorp .gjs-checker-bg,.gjs-field-colorp .gjs-field-colorp-c{height:100%;width:100%;border-radius:1px}.gjs-field-colorp-c{height:100%;position:relative;width:100%}.gjs-field-color-picker{background-color:#ddd;cursor:pointer;height:100%;width:100%;box-shadow:0 0 1px rgba(0,0,0,0.3);border-radius:1px;position:absolute;top:0}.gjs-field-radio{float:left;overflow:hidden;padding:0;width:auto}.gjs-field-checkbox{padding:0;width:auto !important}.gjs-field-checkbox input{display:none}.gjs-field-checkbox input:checked+.gjs-chk-icon{border-color:rgba(255,255,255,0.5);border-width:0 2px 2px 0;border-style:solid}.gjs-radio-item{float:left;border-left:1px solid rgba(0,0,0,0.3)}.gjs-radio-item:first-child{border:none}.gjs-radio-item:hover{background:rgba(0,0,0,0.3)}.gjs-radio-item input{display:none}.gjs-radio-item input:checked+.gjs-radio-item-label{background-color:rgba(255,255,255,0.2)}.gjs-radio-item-label{cursor:pointer;display:block;padding:5px}.gjs-field-units{position:absolute;right:0;top:0}.gjs-field-units select{padding:0 12px 0 0}.gjs-field-unit{position:absolute;right:10px;top:3px;font-size:10px;color:rgba(255,255,255,0.7);cursor:pointer}.gjs-field-arrows{z-index:10;cursor:ns-resize;height:100%;position:absolute;right:0;top:0;width:9px}.gjs-field-arrow-u,.gjs-field-arrow-d{position:absolute;height:0;width:0;border-left:3px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(255,255,255,0.7);bottom:4px;cursor:pointer}.gjs-field-arrow-u{border-bottom:4px solid rgba(255,255,255,0.7);border-top:none;top:4px}.gjs-field-select{padding:0}.gjs-field-range{background-color:transparent;border:none;box-shadow:none;padding:0}.gjs-field-range input{margin:0}.gjs-field-range input::-moz-range-thumb{height:10px;width:10px;border:1px solid rgba(0,0,0,0.3);border-radius:100%;background-color:#ddd;cursor:pointer}.gjs-field-range input::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-5px;height:10px;width:10px;border:1px solid rgba(0,0,0,0.3);border-radius:100%;background-color:#ddd;cursor:pointer}.gjs-field-range input::-ms-thumb{height:10px;width:10px;border:1px solid rgba(0,0,0,0.3);border-radius:100%;background-color:#ddd;cursor:pointer}.gjs-field-range input::-moz-range-track{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.15);border-radius:1px;height:2px}.gjs-field-range input::-webkit-slider-runnable-track{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.15);border-radius:1px;height:2px}.gjs-field-range input::-ms-track{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.15);border-radius:1px;height:2px}.gjs-chk-icon{-ms-transform:rotate(45deg);-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);transform:rotate(45deg);box-sizing:border-box;display:block;height:14px;margin:0 5px;width:6px;cursor:pointer}.gjs-add-trasp{background:none;border:none;color:#ddd;cursor:pointer;font-size:1em;border-radius:2px;opacity:.75;filter:alpha(opacity=75)}.gjs-add-trasp:hover{opacity:1;filter:alpha(opacity=100)}.gjs-add-trasp:active{background-color:rgba(0,0,0,0.2)}.gjs-devices-c{display:flex;align-items:center;padding:4px}.gjs-devices-c .gjs-device-label{flex-grow:2;font-size:0.7em;text-align:left;margin-right:10px}.gjs-devices-c .gjs-select{flex-grow:20}.gjs-devices-c .gjs-add-trasp{flex-grow:1;margin-left:5px}.gjs-category-open,.gjs-sm-sector.gjs-sm-open,.gjs-sm-open.gjs-clm-tags,.gjs-block-category.gjs-open{border-bottom:1px solid rgba(0,0,0,0.25)}.gjs-category-title,.gjs-sm-sector .gjs-sm-title,.gjs-clm-tags .gjs-sm-title,.gjs-block-category .gjs-title{font-weight:lighter;background-color:rgba(0,0,0,0.1);font-size:13px;letter-spacing:1px;padding:9px 10px 9px 20px;border-bottom:1px solid rgba(0,0,0,0.25);text-align:left;position:relative;cursor:pointer}.gjs-sm-clear{font-size:1rem;line-height:0;cursor:pointer}.gjs-sm-close-btn,.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close{display:block;font-size:23px;position:absolute;cursor:pointer;right:5px;top:0;opacity:.2;filter:alpha(opacity=20)}.gjs-sm-close-btn:hover,.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close:hover,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close:hover{opacity:.7;filter:alpha(opacity=70)}.gjs-sm-header{font-size:11px;font-weight:lighter;padding:10px}.gjs-sm-sector,.gjs-clm-tags{clear:both;font-weight:lighter;text-align:left}.gjs-sm-sector #gjs-sm-caret,.gjs-clm-tags #gjs-sm-caret{padding-right:5px;font-size:11px}.gjs-sm-sector .gjs-sm-label,.gjs-clm-tags .gjs-sm-label{margin:5px 5px 2px 0}.gjs-sm-sector .gjs-sm-field,.gjs-clm-tags .gjs-sm-field,.gjs-sm-sector .gjs-clm-field,.gjs-clm-tags .gjs-clm-field{width:100%;position:relative}.gjs-sm-sector .gjs-sm-field input,.gjs-clm-tags .gjs-sm-field input,.gjs-sm-sector .gjs-clm-field input,.gjs-clm-tags .gjs-clm-field input,.gjs-sm-sector .gjs-sm-field select,.gjs-clm-tags .gjs-sm-field select,.gjs-sm-sector .gjs-clm-field select,.gjs-clm-tags .gjs-clm-field select{background-color:transparent;color:rgba(255,255,255,0.7);border:none;width:100%}.gjs-sm-sector .gjs-sm-field input,.gjs-clm-tags .gjs-sm-field input,.gjs-sm-sector .gjs-clm-field input,.gjs-clm-tags .gjs-clm-field input{box-sizing:border-box}.gjs-sm-sector .gjs-sm-field select,.gjs-clm-tags .gjs-sm-field select,.gjs-sm-sector .gjs-clm-field select,.gjs-clm-tags .gjs-clm-field select{position:relative;z-index:1;-webkit-appearance:none;-moz-appearance:none;appearance:none}.gjs-sm-sector .gjs-sm-field select::-ms-expand,.gjs-clm-tags .gjs-sm-field select::-ms-expand,.gjs-sm-sector .gjs-clm-field select::-ms-expand,.gjs-clm-tags .gjs-clm-field select::-ms-expand{display:none}.gjs-sm-sector .gjs-sm-field select:-moz-focusring,.gjs-clm-tags .gjs-sm-field select:-moz-focusring,.gjs-sm-sector .gjs-clm-field select:-moz-focusring,.gjs-clm-tags .gjs-clm-field select:-moz-focusring{color:transparent;text-shadow:0 0 0 rgba(255,255,255,0.7)}.gjs-sm-sector .gjs-sm-field input:focus,.gjs-clm-tags .gjs-sm-field input:focus,.gjs-sm-sector .gjs-clm-field input:focus,.gjs-clm-tags .gjs-clm-field input:focus,.gjs-sm-sector .gjs-sm-field select:focus,.gjs-clm-tags .gjs-sm-field select:focus,.gjs-sm-sector .gjs-clm-field select:focus,.gjs-clm-tags .gjs-clm-field select:focus{outline:none}.gjs-sm-sector .gjs-sm-field .gjs-sm-unit,.gjs-clm-tags .gjs-sm-field .gjs-sm-unit,.gjs-sm-sector .gjs-clm-field .gjs-sm-unit,.gjs-clm-tags .gjs-clm-field .gjs-sm-unit{position:absolute;right:10px;top:3px;font-size:10px;color:rgba(255,255,255,0.7);cursor:pointer}.gjs-sm-sector .gjs-sm-field .gjs-clm-sel-arrow,.gjs-clm-tags .gjs-sm-field .gjs-clm-sel-arrow,.gjs-sm-sector .gjs-clm-field .gjs-clm-sel-arrow,.gjs-clm-tags .gjs-clm-field .gjs-clm-sel-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-int-arrows,.gjs-clm-tags .gjs-sm-field .gjs-sm-int-arrows,.gjs-sm-sector .gjs-clm-field .gjs-sm-int-arrows,.gjs-clm-tags .gjs-clm-field .gjs-sm-int-arrows,.gjs-sm-sector .gjs-sm-field .gjs-sm-sel-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-sel-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-sel-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-sel-arrow{height:100%;width:9px;position:absolute;right:0;top:0;cursor:ns-resize}.gjs-sm-sector .gjs-sm-field .gjs-sm-sel-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-sel-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-sel-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-sel-arrow{cursor:pointer}.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-u-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-u-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-u-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-u-arrow{position:absolute;height:0;width:0;border-left:3px solid transparent;border-right:4px solid transparent;cursor:pointer}.gjs-sm-sector .gjs-sm-field .gjs-sm-u-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-u-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-u-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-u-arrow{border-bottom:4px solid rgba(255,255,255,0.7);top:4px}.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow{border-top:4px solid rgba(255,255,255,0.7);bottom:4px}.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow,.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow,.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow,.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow{bottom:7px}.gjs-sm-sector .gjs-sm-field.gjs-sm-color,.gjs-clm-tags .gjs-sm-field.gjs-sm-color,.gjs-sm-sector .gjs-sm-color.gjs-clm-field,.gjs-clm-tags .gjs-sm-color.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-input,.gjs-clm-tags .gjs-sm-field.gjs-sm-input,.gjs-sm-sector .gjs-sm-input.gjs-clm-field,.gjs-clm-tags .gjs-sm-input.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-integer,.gjs-clm-tags .gjs-sm-field.gjs-sm-integer,.gjs-sm-sector .gjs-sm-integer.gjs-clm-field,.gjs-clm-tags .gjs-sm-integer.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-list,.gjs-clm-tags .gjs-sm-field.gjs-sm-list,.gjs-sm-sector .gjs-sm-list.gjs-clm-field,.gjs-clm-tags .gjs-sm-list.gjs-clm-field,.gjs-sm-sector .gjs-sm-field.gjs-sm-select,.gjs-clm-tags .gjs-sm-field.gjs-sm-select,.gjs-sm-sector .gjs-sm-select.gjs-clm-field,.gjs-clm-tags .gjs-sm-select.gjs-clm-field,.gjs-sm-sector .gjs-clm-select,.gjs-clm-tags .gjs-clm-select{background-color:rgba(0,0,0,0.3);border:1px solid rgba(0,0,0,0.1);box-shadow:1px 1px 0 rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);border-radius:2px;box-sizing:border-box;padding:0 5px}.gjs-sm-sector .gjs-sm-field.gjs-sm-composite,.gjs-clm-tags .gjs-sm-field.gjs-sm-composite,.gjs-sm-sector .gjs-sm-composite.gjs-clm-field,.gjs-clm-tags .gjs-sm-composite.gjs-clm-field{border-radius:2px}.gjs-sm-sector .gjs-sm-field.gjs-sm-select,.gjs-clm-tags .gjs-sm-field.gjs-sm-select,.gjs-sm-sector .gjs-sm-select.gjs-clm-field,.gjs-clm-tags .gjs-sm-select.gjs-clm-field,.gjs-sm-sector .gjs-clm-select,.gjs-clm-tags .gjs-clm-select{padding:0}.gjs-sm-sector .gjs-sm-field.gjs-sm-select select,.gjs-clm-tags .gjs-sm-field.gjs-sm-select select,.gjs-sm-sector .gjs-sm-select.gjs-clm-field select,.gjs-clm-tags .gjs-sm-select.gjs-clm-field select,.gjs-sm-sector .gjs-clm-select select,.gjs-clm-tags .gjs-clm-select select{height:20px}.gjs-sm-sector .gjs-sm-field.gjs-sm-select option,.gjs-clm-tags .gjs-sm-field.gjs-sm-select option,.gjs-sm-sector .gjs-sm-select.gjs-clm-field option,.gjs-clm-tags .gjs-sm-select.gjs-clm-field option,.gjs-sm-sector .gjs-clm-select option,.gjs-clm-tags .gjs-clm-select option{padding:3px 0}.gjs-sm-sector .gjs-sm-field.gjs-sm-composite,.gjs-clm-tags .gjs-sm-field.gjs-sm-composite,.gjs-sm-sector .gjs-sm-composite.gjs-clm-field,.gjs-clm-tags .gjs-sm-composite.gjs-clm-field{background-color:rgba(0,0,0,0.1);border:1px solid rgba(0,0,0,0.25)}.gjs-sm-sector .gjs-sm-field.gjs-sm-list,.gjs-clm-tags .gjs-sm-field.gjs-sm-list,.gjs-sm-sector .gjs-sm-list.gjs-clm-field,.gjs-clm-tags .gjs-sm-list.gjs-clm-field{width:auto;padding:0;overflow:hidden;float:left}.gjs-sm-sector .gjs-sm-field.gjs-sm-list input,.gjs-clm-tags .gjs-sm-field.gjs-sm-list input,.gjs-sm-sector .gjs-sm-list.gjs-clm-field input,.gjs-clm-tags .gjs-sm-list.gjs-clm-field input{display:none}.gjs-sm-sector .gjs-sm-field.gjs-sm-list label,.gjs-clm-tags .gjs-sm-field.gjs-sm-list label,.gjs-sm-sector .gjs-sm-list.gjs-clm-field label,.gjs-clm-tags .gjs-sm-list.gjs-clm-field label{cursor:pointer;padding:5px;display:block}.gjs-sm-sector .gjs-sm-field.gjs-sm-list .gjs-sm-radio:checked+label,.gjs-clm-tags .gjs-sm-field.gjs-sm-list .gjs-sm-radio:checked+label,.gjs-sm-sector .gjs-sm-list.gjs-clm-field .gjs-sm-radio:checked+label,.gjs-clm-tags .gjs-sm-list.gjs-clm-field .gjs-sm-radio:checked+label{background-color:rgba(255,255,255,0.2)}.gjs-sm-sector .gjs-sm-field.gjs-sm-list .gjs-sm-icon,.gjs-clm-tags .gjs-sm-field.gjs-sm-list .gjs-sm-icon,.gjs-sm-sector .gjs-sm-list.gjs-clm-field .gjs-sm-icon,.gjs-clm-tags .gjs-sm-list.gjs-clm-field .gjs-sm-icon{background-repeat:no-repeat;background-position:center;text-shadow:none;line-height:normal}.gjs-sm-sector .gjs-sm-field.gjs-sm-integer select,.gjs-clm-tags .gjs-sm-field.gjs-sm-integer select,.gjs-sm-sector .gjs-sm-integer.gjs-clm-field select,.gjs-clm-tags .gjs-sm-integer.gjs-clm-field select{width:auto;padding:0}.gjs-sm-sector .gjs-sm-list .gjs-sm-el,.gjs-clm-tags .gjs-sm-list .gjs-sm-el{float:left;border-left:1px solid rgba(0,0,0,0.3)}.gjs-sm-sector .gjs-sm-list .gjs-sm-el:first-child,.gjs-clm-tags .gjs-sm-list .gjs-sm-el:first-child{border:none}.gjs-sm-sector .gjs-sm-list .gjs-sm-el:hover,.gjs-clm-tags .gjs-sm-list .gjs-sm-el:hover{background:rgba(0,0,0,0.3)}.gjs-sm-sector .gjs-sm-properties,.gjs-clm-tags .gjs-sm-properties{font-size:11px;padding:10px 5px}.gjs-sm-sector .gjs-sm-property,.gjs-clm-tags .gjs-sm-property{box-sizing:border-box;float:left;width:50%;margin-bottom:5px;padding:0 5px}.gjs-sm-sector .gjs-sm-property.gjs-sm-composite,.gjs-clm-tags .gjs-sm-property.gjs-sm-composite,.gjs-sm-sector .gjs-sm-property.gjs-sm-file,.gjs-clm-tags .gjs-sm-property.gjs-sm-file,.gjs-sm-sector .gjs-sm-property.gjs-sm-list,.gjs-clm-tags .gjs-sm-property.gjs-sm-list,.gjs-sm-sector .gjs-sm-property.gjs-sm-stack,.gjs-clm-tags .gjs-sm-property.gjs-sm-stack{width:100%}.gjs-sm-sector .gjs-sm-property .gjs-sm-btn,.gjs-clm-tags .gjs-sm-property .gjs-sm-btn{background-color:rgba(33,33,33,0.3);border-radius:2px;box-shadow:1px 1px 0 rgba(5,5,5,0.3),1px 1px 0 rgba(43,43,43,0.3) inset;padding:5px;position:relative;text-align:center;height:auto;width:100%;cursor:pointer;color:#ddd;box-sizing:border-box;text-shadow:-1px -1px 0 rgba(0,0,0,0.3);border:none;opacity:.85;filter:alpha(opacity=85)}.gjs-sm-sector .gjs-sm-property .gjs-sm-btn-c,.gjs-clm-tags .gjs-sm-property .gjs-sm-btn-c{box-sizing:border-box;float:left;width:100%;padding:0 5px}.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box{background-color:rgba(255,255,255,0.05);border-radius:2px;margin-top:5px;position:relative;overflow:hidden}.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box.gjs-sm-show,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box.gjs-sm-show{border:1px solid rgba(252,252,252,0.05);padding:3px 5px}.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close{display:block}.gjs-sm-sector .gjs-sm-property.gjs-sm-file .gjs-sm-show #gjs-sm-preview-file,.gjs-clm-tags .gjs-sm-property.gjs-sm-file .gjs-sm-show #gjs-sm-preview-file{height:50px}.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-file,.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-file{background-size:auto 100%;background-repeat:no-repeat;background-position:center center}.gjs-sm-sector .gjs-sm-property .gjs-sm-layers,.gjs-clm-tags .gjs-sm-property .gjs-sm-layers{margin-top:5px;min-height:30px}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer{background-color:rgba(255,255,255,0.055);border-radius:2px;box-shadow:1px 1px 0 rgba(0,0,0,0.2),1px 1px 0 rgba(255,255,255,0.055) inset;margin:2px;padding:7px;position:relative;cursor:pointer}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box{height:15px;position:absolute;right:27px;top:6px;width:15px}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-preview,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-preview,.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-preview-box{border-radius:2px}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer{display:block;font-size:23px;position:absolute;cursor:pointer;right:5px;top:0;opacity:.5;filter:alpha(opacity=50)}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer:hover,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer:hover{opacity:.8;filter:alpha(opacity=80)}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box #gjs-sm-preview,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box #gjs-sm-preview{background-color:white;height:100%;width:100%;background-size:cover !important}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-active,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-active{background-color:rgba(255,255,255,0.12)}.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-no-preview #gjs-sm-preview-box,.gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-no-preview #gjs-sm-preview-box{display:none}.gjs-sm-sector #gjs-sm-text-shadow #gjs-sm-preview::after,.gjs-clm-tags #gjs-sm-text-shadow #gjs-sm-preview::after{color:#000;content:"T";font-weight:900;line-height:17px;padding:0 4px}.gjs-sm-sector .gjs-sm-stack .gjs-sm-properties,.gjs-clm-tags .gjs-sm-stack .gjs-sm-properties{padding-top:5px}.gjs-sm-sector .gjs-sm-stack #gjs-sm-add,.gjs-clm-tags .gjs-sm-stack #gjs-sm-add{background:none;border:none;cursor:pointer;font-size:22px;line-height:10px;position:absolute;right:0;top:-20px;opacity:0.75}.gjs-sm-sector .gjs-sm-stack #gjs-sm-add:hover,.gjs-clm-tags .gjs-sm-stack #gjs-sm-add:hover{opacity:1;filter:alpha(opacity=100)}.gjs-sm-sector .gjs-sm-colorp-c,.gjs-clm-tags .gjs-sm-colorp-c{height:100%;width:20px;position:absolute;right:0;top:0;box-sizing:border-box;border-radius:2px;padding:2px}.gjs-sm-sector .gjs-sm-colorp-c .gjs-checker-bg,.gjs-clm-tags .gjs-sm-colorp-c .gjs-checker-bg,.gjs-sm-sector .gjs-sm-colorp-c .gjs-field-colorp-c,.gjs-clm-tags .gjs-sm-colorp-c .gjs-field-colorp-c{height:100%;width:100%;border-radius:1px}.gjs-sm-sector .gjs-sm-color-picker,.gjs-clm-tags .gjs-sm-color-picker{background-color:#ddd;cursor:pointer;height:16px;width:100%;margin-top:-16px;box-shadow:0 0 1px rgba(0,0,0,0.3);border-radius:1px}.gjs-sm-sector .gjs-sm-btn-upload #gjs-sm-upload,.gjs-clm-tags .gjs-sm-btn-upload #gjs-sm-upload{left:0;top:0;position:absolute;width:100%;opacity:0;cursor:pointer}.gjs-sm-sector .gjs-sm-btn-upload #gjs-sm-label,.gjs-clm-tags .gjs-sm-btn-upload #gjs-sm-label{padding:2px 0}.gjs-sm-layer>#gjs-sm-move{opacity:.7;filter:alpha(opacity=70);cursor:move;font-size:12px;float:left;margin:0 5px 0 0}.gjs-sm-layer>#gjs-sm-move:hover{opacity:.9;filter:alpha(opacity=90)}.gjs-blocks-c{display:flex;flex-wrap:wrap;justify-content:flex-start}.gjs-block-category{width:100%}.gjs-block-category .gjs-caret-icon{margin-right:5px}.gjs-block{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;width:45%;padding:1em;box-sizing:border-box;height:90px;cursor:all-scroll;font-size:11px;font-weight:lighter;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid rgba(0,0,0,0.2);border-radius:3px;margin:10px 2.5% 5px;box-shadow:0 1px 0 0 rgba(0,0,0,0.15);transition:all 0.2s ease 0s;transition-property:box-shadow, color}.gjs-block:hover{box-shadow:0 3px 4px 0 rgba(0,0,0,0.15)}.gjs-block-svg{width:61%}.gjs-block.fa{font-size:2em;line-height:2em;padding:11px}.gjs-block-label{line-height:normal;font-size:0.65rem;font-weight:normal;font-family:Helvetica, sans-serif}.gjs-block.gjs-bdrag{width:auto;padding:0}.gjs-clm-tags{font-size:11px;padding:10px 5px}.gjs-clm-tags #gjs-clm-label,.gjs-clm-tags #gjs-clm-sel{padding:7px 0;float:left}.gjs-clm-tags #gjs-clm-sel{font-style:italic;margin-left:5px}.gjs-clm-tags #gjs-clm-status-c{float:right}.gjs-clm-tags #gjs-clm-tags-field{clear:both;padding:5px;margin-bottom:5px}.gjs-clm-tags #gjs-clm-tags-c{display:inline-block;vertical-align:top}.gjs-clm-tags #gjs-clm-add-tag{background-color:rgba(255,255,255,0.15);border-radius:2px;padding:5px 6px;box-shadow:1px 1px 0 rgba(255,255,255,0.2) inset;border:1px solid rgba(0,0,0,0.15);cursor:pointer}.gjs-clm-tags #gjs-clm-new{color:#ddd;padding:5px 6px;display:none}.gjs-clm-tags .gjs-clm-tag{background-color:#804f7b;border:1px solid #5a3857;box-shadow:1px 1px #9c6196 inset;text-shadow:1px 1px #6a4166;display:inline-block;border-radius:3px;margin:0 3px 3px 0;padding:4px;cursor:default}.gjs-clm-tags #gjs-clm-close{font-size:20px;line-height:0;cursor:pointer;color:rgba(255,255,255,0.9)}.gjs-clm-tags #gjs-clm-close:hover{opacity:.7;filter:alpha(opacity=70)}.gjs-clm-tags #gjs-clm-checkbox{color:rgba(255,255,255,0.9);vertical-align:middle;cursor:pointer;font-size:9px}.gjs-clm-tags #gjs-clm-tag-label{cursor:text}.gjs-clm-tags #gjs-clm-tag-label input{width:auto;padding:0 4px}.gjs-mdl-backlayer{background-color:#000;position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;opacity:.5;filter:alpha(opacity=50)}.gjs-mdl-container{font-family:Helvetica,sans-serif;position:absolute;top:0;left:0;z-index:10;width:100%;height:100%}.gjs-mdl-dialog{text-shadow:-1px -1px 0 rgba(0,0,0,0.05);animation:gjs-slide-down 0.215s;margin:30px auto 0;max-width:850px;width:90%;border-radius:3px;font-weight:lighter;position:relative;z-index:2}.gjs-mdl-dialog .gjs-mdl-btn-close{position:absolute;right:15px;top:5px}.gjs-mdl-active .gjs-mdl-dialog{animation:gjs-mdl-slide-down 0.216s}.gjs-mdl-header,.gjs-mdl-content{padding:10px 15px;clear:both}.gjs-mdl-header{position:relative;border-bottom:1px solid rgba(0,0,0,0.3);padding:15px 15px 7px}.gjs-mdl-content{border-top:1px solid rgba(255,255,255,0.1)}.gjs-export-dl::after{content:"";clear:both;display:block;margin-bottom:10px}.gjs-am-assets{height:290px;overflow:auto;clear:both}.gjs-am-assets-header{padding:5px}.gjs-am-add-asset .gjs-am-add-field{width:70%;float:left}.gjs-am-add-asset button{width:25%;float:right}.gjs-am-add-field input{padding:6px}.gjs-am-assets-cont{background-color:rgba(0,0,0,0.1);border-radius:3px;box-sizing:border-box;padding:10px;width:45%;float:right;height:325px;overflow:hidden}.gjs-am-assets-cont #gjs-am-preview-cont{position:relative;height:70px;width:30%;background-color:#444;border-radius:2px;float:left;overflow:hidden}.gjs-am-assets-cont #gjs-am-preview{position:absolute;background-position:center center;background-size:cover;background-repeat:no-repeat;height:100%;width:100%;z-index:1}.gjs-am-assets-cont #gjs-am-preview-bg{position:absolute;height:100%;width:100%;opacity:.5;filter:alpha(opacity=50);z-index:0}.gjs-am-assets-cont .gjs-am-highlight{background-color:rgba(255,255,255,0.1)}.gjs-am-assets-cont .gjs-am-asset{border-bottom:1px solid rgba(0,0,0,0.3);padding:5px;cursor:pointer;position:relative}.gjs-am-assets-cont .gjs-am-asset:hover #gjs-am-close{display:block}.gjs-am-assets-cont #gjs-am-close{position:absolute;right:5px;top:0;display:none}.gjs-am-assets-cont #gjs-am-meta{width:70%;float:left;font-size:12px;padding:5px 0 0 5px;box-sizing:border-box}.gjs-am-assets-cont #gjs-am-meta>div{margin-bottom:5px}.gjs-am-assets-cont #gjs-am-meta #gjs-am-dimensions{font-size:10px;opacity:.5;filter:alpha(opacity=50)}.gjs-am-file-uploader{width:55%;float:left}.gjs-am-file-uploader>form{background-color:rgba(0,0,0,0.1);border:2px dashed;border-radius:3px;position:relative;text-align:center;margin-bottom:15px}.gjs-am-file-uploader>form.gjs-am-hover{border:2px solid #62c462;color:#75cb75}.gjs-am-file-uploader>form.gjs-am-disabled{border-color:red}.gjs-am-file-uploader>form #gjs-am-uploadFile{opacity:0;filter:alpha(opacity=0);padding:150px 10px;width:100%;box-sizing:border-box}.gjs-am-file-uploader #gjs-am-title{position:absolute;padding:150px 10px;width:100%}.gjs-cm-editor-c{float:left;box-sizing:border-box;width:50%}.gjs-cm-editor-c .CodeMirror{height:450px}.gjs-cm-editor{font-size:12px}.gjs-cm-editor#gjs-cm-htmlmixed{padding-right:10px;border-right:1px solid rgba(0,0,0,0.3)}.gjs-cm-editor#gjs-cm-htmlmixed #gjs-cm-title{color:#a97d44}.gjs-cm-editor#gjs-cm-css{padding-left:10px;border-left:1px solid rgba(255,255,255,0.1)}.gjs-cm-editor#gjs-cm-css #gjs-cm-title{color:#ddca7e}.gjs-cm-editor #gjs-cm-title{background-color:rgba(0,0,0,0.3);font-size:12px;padding:5px 10px 3px;text-align:right}#gjs-rte-toolbar{display:none;border:1px solid rgba(0,0,0,0.3);position:absolute;border-radius:3px;z-index:10}#gjs-rte-toolbar .gjs-rte-btn{display:inline-block;padding:5px;min-width:25px;border-right:1px solid rgba(0,0,0,0.3);text-align:center;cursor:pointer;outline:none}#gjs-rte-toolbar .gjs-rte-btn:last-child{border-right:none}#gjs-rte-toolbar .gjs-rte-btn.btn-info{background-color:rgba(0,0,0,0.3)}#gjs-rte-toolbar .gjs-rte-btn:hover{background-color:rgba(255,255,255,0.1)}#gjs-rte-toolbar select{height:16px}.sp-hue,.sp-slider{cursor:row-resize}.sp-color,.sp-dragger{cursor:crosshair}.sp-alpha-inner,.sp-alpha-handle{cursor:col-resize}.sp-hue{left:90%}.sp-color{right:15%}.sp-container{border:1px solid rgba(0,0,0,0.3);box-shadow:0 0 7px rgba(0,0,0,0.3);border-radius:3px}.sp-picker-container{border:none}.colpick_dark .colpick_color{outline:1px solid rgba(0,0,0,0.3)}.sp-cancel,.sp-cancel:hover{bottom:-8px;color:#777 !important;font-size:25px;left:0;position:absolute;text-decoration:none}.sp-alpha-handle{background-color:#ccc;border:1px solid #555;width:4px}.sp-color,.sp-hue{border:1px solid #333333}.sp-slider{background-color:#ccc;border:1px solid #555;height:3px;left:-4px;width:22px}.sp-dragger{background:transparent;box-shadow:0 0 0 1px #111}.sp-button-container{float:none;width:100%;position:relative;text-align:right}.sp-container button,.sp-container button:hover,.sp-container button:active{background:rgba(0,0,0,0.3);border-color:rgba(0,0,0,0.3);color:#ddd;text-shadow:none;box-shadow:none;padding:3px 5px}.sp-palette-container{border:none;float:none;margin:0;padding:5px 10px 0}.sp-palette .sp-thumb-el,.sp-palette .sp-thumb-el:hover{border:1px solid rgba(0,0,0,0.9)}.sp-palette .sp-thumb-el:hover,.sp-palette .sp-thumb-el.sp-thumb-active{border-color:rgba(0,0,0,0.9)}.gjs-hidden{display:none}@keyframes gjs-slide-down{0%{transform:translate(0, -3rem);opacity:0}100%{transform:translate(0, 0);opacity:1}}@keyframes gjs-slide-up{0%{transform:translate(0, 0);opacity:1}100%{transform:translate(0, -3rem);opacity:0}} diff --git a/client/static/css/select2.min.css b/client/static/css/select2.min.css deleted file mode 100644 index 76de04d..0000000 --- a/client/static/css/select2.min.css +++ /dev/null @@ -1 +0,0 @@ -.select2-container{box-sizing:border-box;display:inline-block;margin:0;position:relative;vertical-align:middle}.select2-container .select2-selection--single{box-sizing:border-box;cursor:pointer;display:block;height:28px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--single .select2-selection__rendered{display:block;padding-left:8px;padding-right:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-selection--single .select2-selection__clear{position:relative}.select2-container[dir="rtl"] .select2-selection--single .select2-selection__rendered{padding-right:8px;padding-left:20px}.select2-container .select2-selection--multiple{box-sizing:border-box;cursor:pointer;display:block;min-height:32px;user-select:none;-webkit-user-select:none}.select2-container .select2-selection--multiple .select2-selection__rendered{display:inline-block;overflow:hidden;padding-left:8px;text-overflow:ellipsis;white-space:nowrap}.select2-container .select2-search--inline{float:left}.select2-container .select2-search--inline .select2-search__field{box-sizing:border-box;border:none;font-size:100%;margin-top:5px;padding:0}.select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-dropdown{background-color:white;border:1px solid #aaa;border-radius:4px;box-sizing:border-box;display:block;position:absolute;left:-100000px;width:100%;z-index:1051}.select2-results{display:block}.select2-results__options{list-style:none;margin:0;padding:0}.select2-results__option{padding:6px;user-select:none;-webkit-user-select:none}.select2-results__option[aria-selected]{cursor:pointer}.select2-container--open .select2-dropdown{left:0}.select2-container--open .select2-dropdown--above{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--open .select2-dropdown--below{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-search--dropdown{display:block;padding:4px}.select2-search--dropdown .select2-search__field{padding:4px;width:100%;box-sizing:border-box}.select2-search--dropdown .select2-search__field::-webkit-search-cancel-button{-webkit-appearance:none}.select2-search--dropdown.select2-search--hide{display:none}.select2-close-mask{border:0;margin:0;padding:0;display:block;position:fixed;left:0;top:0;min-height:100%;min-width:100%;height:auto;width:auto;opacity:0;z-index:99;background-color:#fff;filter:alpha(opacity=0)}.select2-hidden-accessible{border:0 !important;clip:rect(0 0 0 0) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important}.select2-container--default .select2-selection--single{background-color:#fff;border:1px solid #aaa;border-radius:4px}.select2-container--default .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--default .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold}.select2-container--default .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--default .select2-selection--single .select2-selection__arrow{height:26px;position:absolute;top:1px;right:1px;width:20px}.select2-container--default .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--default[dir="rtl"] .select2-selection--single .select2-selection__arrow{left:1px;right:auto}.select2-container--default.select2-container--disabled .select2-selection--single{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear{display:none}.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--default .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text}.select2-container--default .select2-selection--multiple .select2-selection__rendered{box-sizing:border-box;list-style:none;margin:0;padding:0 5px;width:100%}.select2-container--default .select2-selection--multiple .select2-selection__rendered li{list-style:none}.select2-container--default .select2-selection--multiple .select2-selection__placeholder{color:#999;margin-top:5px;float:left}.select2-container--default .select2-selection--multiple .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-top:5px;margin-right:10px}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:#999;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:#333}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__placeholder,.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-search--inline{float:right}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--default[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--default.select2-container--focus .select2-selection--multiple{border:solid black 1px;outline:0}.select2-container--default.select2-container--disabled .select2-selection--multiple{background-color:#eee;cursor:default}.select2-container--default.select2-container--disabled .select2-selection__choice__remove{display:none}.select2-container--default.select2-container--open.select2-container--above .select2-selection--single,.select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple{border-top-left-radius:0;border-top-right-radius:0}.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,.select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--default .select2-search--dropdown .select2-search__field{border:1px solid #aaa}.select2-container--default .select2-search--inline .select2-search__field{background:transparent;border:none;outline:0;box-shadow:none;-webkit-appearance:textfield}.select2-container--default .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--default .select2-results__option[role=group]{padding:0}.select2-container--default .select2-results__option[aria-disabled=true]{color:#999}.select2-container--default .select2-results__option[aria-selected=true]{background-color:#ddd}.select2-container--default .select2-results__option .select2-results__option{padding-left:1em}.select2-container--default .select2-results__option .select2-results__option .select2-results__group{padding-left:0}.select2-container--default .select2-results__option .select2-results__option .select2-results__option{margin-left:-1em;padding-left:2em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-2em;padding-left:3em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-3em;padding-left:4em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-4em;padding-left:5em}.select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option{margin-left:-5em;padding-left:6em}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:#5897fb;color:white}.select2-container--default .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic .select2-selection--single{background-color:#f7f7f7;border:1px solid #aaa;border-radius:4px;outline:0;background-image:-webkit-linear-gradient(top, #fff 50%, #eee 100%);background-image:-o-linear-gradient(top, #fff 50%, #eee 100%);background-image:linear-gradient(to bottom, #fff 50%, #eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic .select2-selection--single:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--single .select2-selection__rendered{color:#444;line-height:28px}.select2-container--classic .select2-selection--single .select2-selection__clear{cursor:pointer;float:right;font-weight:bold;margin-right:10px}.select2-container--classic .select2-selection--single .select2-selection__placeholder{color:#999}.select2-container--classic .select2-selection--single .select2-selection__arrow{background-color:#ddd;border:none;border-left:1px solid #aaa;border-top-right-radius:4px;border-bottom-right-radius:4px;height:26px;position:absolute;top:1px;right:1px;width:20px;background-image:-webkit-linear-gradient(top, #eee 50%, #ccc 100%);background-image:-o-linear-gradient(top, #eee 50%, #ccc 100%);background-image:linear-gradient(to bottom, #eee 50%, #ccc 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0)}.select2-container--classic .select2-selection--single .select2-selection__arrow b{border-color:#888 transparent transparent transparent;border-style:solid;border-width:5px 4px 0 4px;height:0;left:50%;margin-left:-4px;margin-top:-2px;position:absolute;top:50%;width:0}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__clear{float:left}.select2-container--classic[dir="rtl"] .select2-selection--single .select2-selection__arrow{border:none;border-right:1px solid #aaa;border-radius:0;border-top-left-radius:4px;border-bottom-left-radius:4px;left:1px;right:auto}.select2-container--classic.select2-container--open .select2-selection--single{border:1px solid #5897fb}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow{background:transparent;border:none}.select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b{border-color:transparent transparent #888 transparent;border-width:0 4px 5px 4px}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single{border-top:none;border-top-left-radius:0;border-top-right-radius:0;background-image:-webkit-linear-gradient(top, #fff 0%, #eee 50%);background-image:-o-linear-gradient(top, #fff 0%, #eee 50%);background-image:linear-gradient(to bottom, #fff 0%, #eee 50%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0)}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0;background-image:-webkit-linear-gradient(top, #eee 50%, #fff 100%);background-image:-o-linear-gradient(top, #eee 50%, #fff 100%);background-image:linear-gradient(to bottom, #eee 50%, #fff 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0)}.select2-container--classic .select2-selection--multiple{background-color:white;border:1px solid #aaa;border-radius:4px;cursor:text;outline:0}.select2-container--classic .select2-selection--multiple:focus{border:1px solid #5897fb}.select2-container--classic .select2-selection--multiple .select2-selection__rendered{list-style:none;margin:0;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__clear{display:none}.select2-container--classic .select2-selection--multiple .select2-selection__choice{background-color:#e4e4e4;border:1px solid #aaa;border-radius:4px;cursor:default;float:left;margin-right:5px;margin-top:5px;padding:0 5px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove{color:#888;cursor:pointer;display:inline-block;font-weight:bold;margin-right:2px}.select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover{color:#555}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{float:right}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice{margin-left:5px;margin-right:auto}.select2-container--classic[dir="rtl"] .select2-selection--multiple .select2-selection__choice__remove{margin-left:2px;margin-right:auto}.select2-container--classic.select2-container--open .select2-selection--multiple{border:1px solid #5897fb}.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple{border-top:none;border-top-left-radius:0;border-top-right-radius:0}.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple{border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.select2-container--classic .select2-search--dropdown .select2-search__field{border:1px solid #aaa;outline:0}.select2-container--classic .select2-search--inline .select2-search__field{outline:0;box-shadow:none}.select2-container--classic .select2-dropdown{background-color:#fff;border:1px solid transparent}.select2-container--classic .select2-dropdown--above{border-bottom:none}.select2-container--classic .select2-dropdown--below{border-top:none}.select2-container--classic .select2-results>.select2-results__options{max-height:200px;overflow-y:auto}.select2-container--classic .select2-results__option[role=group]{padding:0}.select2-container--classic .select2-results__option[aria-disabled=true]{color:grey}.select2-container--classic .select2-results__option--highlighted[aria-selected]{background-color:#3875d7;color:#fff}.select2-container--classic .select2-results__group{cursor:default;display:block;padding:6px}.select2-container--classic.select2-container--open .select2-dropdown{border-color:#5897fb} diff --git a/client/static/grapes.min.css b/client/static/grapes.min.css deleted file mode 100644 index 9529e82..0000000 --- a/client/static/grapes.min.css +++ /dev/null @@ -1,6675 +0,0 @@ -.sp-container { - position: absolute; - top: 0; - left: 0; - display: inline-block; - *display: inline; - *zoom: 1; - z-index: 9999994; - overflow: hidden -} - -.sp-container.sp-flat { - position: relative -} - -.sp-container, -.sp-container * { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box -} - -.sp-top { - position: relative; - width: 100%; - display: inline-block -} - -.sp-top-inner { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0 -} - -.sp-color { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 20% -} - -.sp-hue { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 84%; - height: 100% -} - -.sp-clear-enabled .sp-hue { - top: 33px; - height: 77.5% -} - -.sp-fill { - padding-top: 80% -} - -.sp-sat, -.sp-val { - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0 -} - -.sp-alpha-enabled .sp-top { - margin-bottom: 18px -} - -.sp-alpha-enabled .sp-alpha { - display: block -} - -.sp-alpha-handle { - position: absolute; - top: -4px; - bottom: -4px; - width: 6px; - left: 50%; - cursor: pointer; - border: 1px solid black; - background: white; - opacity: .8 -} - -.sp-alpha { - display: none; - position: absolute; - bottom: -14px; - right: 0; - left: 0; - height: 8px -} - -.sp-alpha-inner { - border: solid 1px #333 -} - -.sp-clear { - display: none -} - -.sp-clear.sp-clear-display { - background-position: center -} - -.sp-clear-enabled .sp-clear { - display: block; - position: absolute; - top: 0px; - right: 0; - bottom: 0; - left: 84%; - height: 28px -} - -.sp-container, -.sp-replacer, -.sp-preview, -.sp-dragger, -.sp-slider, -.sp-alpha, -.sp-clear, -.sp-alpha-handle, -.sp-container.sp-dragging .sp-input, -.sp-container button { - -webkit-user-select: none; - -moz-user-select: -moz-none; - -o-user-select: none; - user-select: none -} - -.sp-container.sp-input-disabled .sp-input-container { - display: none -} - -.sp-container.sp-buttons-disabled .sp-button-container { - display: none -} - -.sp-container.sp-palette-buttons-disabled .sp-palette-button-container { - display: none -} - -.sp-palette-only .sp-picker-container { - display: none -} - -.sp-palette-disabled .sp-palette-container { - display: none -} - -.sp-initial-disabled .sp-initial { - display: none -} - -.sp-sat { - background-image: -webkit-gradient(linear, 0 0, 100% 0, from(#fff), to(rgba(204, 154, 129, 0))); - background-image: -webkit-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: -moz-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: -o-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: -ms-linear-gradient(left, #fff, rgba(204, 154, 129, 0)); - background-image: linear-gradient(to right, #fff, rgba(204, 154, 129, 0)); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType = 1, startColorstr=#FFFFFFFF, endColorstr=#00CC9A81)"; - filter: progid: DXImageTransform.Microsoft.gradient(GradientType=1, startColorstr='#FFFFFFFF', endColorstr='#00CC9A81') -} - -.sp-val { - background-image: -webkit-gradient(linear, 0 100%, 0 0, from(#000), to(rgba(204, 154, 129, 0))); - background-image: -webkit-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: -moz-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: -o-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: -ms-linear-gradient(bottom, #000, rgba(204, 154, 129, 0)); - background-image: linear-gradient(to top, #000, rgba(204, 154, 129, 0)); - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#00CC9A81, endColorstr=#FF000000)"; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00CC9A81', endColorstr='#FF000000') -} - -.sp-hue { - background: -moz-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%); - background: -ms-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%); - background: -o-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%); - background: -webkit-gradient(linear, left top, left bottom, from(red), color-stop(0.17, #ff0), color-stop(0.33, lime), color-stop(0.5, cyan), color-stop(0.67, blue), color-stop(0.83, #f0f), to(red)); - background: -webkit-linear-gradient(top, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%); - background: linear-gradient(to bottom, red 0%, #ff0 17%, lime 33%, cyan 50%, blue 67%, #f0f 83%, red 100%) -} - -.sp-1 { - height: 17%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ff0000', endColorstr='#ffff00') -} - -.sp-2 { - height: 16%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ffff00', endColorstr='#00ff00') -} - -.sp-3 { - height: 17%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00ff00', endColorstr='#00ffff') -} - -.sp-4 { - height: 17%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00ffff', endColorstr='#0000ff') -} - -.sp-5 { - height: 16%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#0000ff', endColorstr='#ff00ff') -} - -.sp-6 { - height: 17%; - filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#ff00ff', endColorstr='#ff0000') -} - -.sp-hidden { - display: none !important -} - -.sp-cf:before, -.sp-cf:after { - content: ""; - display: table -} - -.sp-cf:after { - clear: both -} - -.sp-cf { - *zoom: 1 -} - -@media (max-device-width: 480px) { - .sp-color { - right: 40% - } - .sp-hue { - left: 63% - } - .sp-fill { - padding-top: 60% - } -} - -.sp-dragger { - border-radius: 5px; - height: 5px; - width: 5px; - border: 1px solid #fff; - background: #000; - cursor: pointer; - position: absolute; - top: 0; - left: 0 -} - -.sp-slider { - position: absolute; - top: 0; - cursor: pointer; - height: 3px; - left: -1px; - right: -1px; - border: 1px solid #000; - background: white; - opacity: .8 -} - -.sp-container { - border-radius: 0; - background-color: #ECECEC; - border: solid 1px #f0c49B; - padding: 0 -} - -.sp-container, -.sp-container button, -.sp-container input, -.sp-color, -.sp-hue, -.sp-clear { - font: normal 12px "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box -} - -.sp-top { - margin-bottom: 3px -} - -.sp-color, -.sp-hue, -.sp-clear { - border: solid 1px #666 -} - -.sp-input-container { - float: right; - width: 100px; - margin-bottom: 4px -} - -.sp-initial-disabled .sp-input-container { - width: 100% -} - -.sp-input { - font-size: 12px !important; - border: 1px inset; - padding: 4px 5px; - margin: 0; - width: 100%; - background: transparent; - border-radius: 3px; - color: #222 -} - -.sp-input:focus { - border: 1px solid orange -} - -.sp-input.sp-validation-error { - border: 1px solid red; - background: #fdd -} - -.sp-picker-container, -.sp-palette-container { - float: left; - position: relative; - padding: 10px; - padding-bottom: 300px; - margin-bottom: -290px -} - -.sp-picker-container { - width: 172px; - border-left: solid 1px #fff -} - -.sp-palette-container { - border-right: solid 1px #ccc -} - -.sp-palette-only .sp-palette-container { - border: 0 -} - -.sp-palette .sp-thumb-el { - display: block; - position: relative; - float: left; - width: 24px; - height: 15px; - margin: 3px; - cursor: pointer; - border: solid 2px transparent -} - -.sp-palette .sp-thumb-el:hover, -.sp-palette .sp-thumb-el.sp-thumb-active { - border-color: orange -} - -.sp-thumb-el { - position: relative -} - -.sp-initial { - float: left; - border: solid 1px #333 -} - -.sp-initial span { - width: 30px; - height: 25px; - border: none; - display: block; - float: left; - margin: 0 -} - -.sp-initial .sp-clear-display { - background-position: center -} - -.sp-palette-button-container, -.sp-button-container { - float: right -} - -.sp-replacer { - margin: 0; - overflow: hidden; - cursor: pointer; - padding: 4px; - display: inline-block; - *zoom: 1; - *display: inline; - border: solid 1px #91765d; - background: #eee; - color: #333; - vertical-align: middle -} - -.sp-replacer:hover, -.sp-replacer.sp-active { - border-color: #F0C49B; - color: #111 -} - -.sp-replacer.sp-disabled { - cursor: default; - border-color: silver; - color: silver -} - -.sp-dd { - padding: 2px 0; - height: 16px; - line-height: 16px; - float: left; - font-size: 10px -} - -.sp-preview { - position: relative; - width: 25px; - height: 20px; - border: solid 1px #222; - margin-right: 5px; - float: left; - z-index: 0 -} - -.sp-palette { - *width: 220px; - max-width: 220px -} - -.sp-palette .sp-thumb-el { - width: 16px; - height: 16px; - margin: 2px 1px; - border: solid 1px #d0d0d0 -} - -.sp-container { - padding-bottom: 0 -} - -.sp-container button { - background-color: #eeeeee; - background-image: -webkit-linear-gradient(top, #eee, #ccc); - background-image: -moz-linear-gradient(top, #eee, #ccc); - background-image: -ms-linear-gradient(top, #eee, #ccc); - background-image: -o-linear-gradient(top, #eee, #ccc); - background-image: linear-gradient(to bottom, #eee, #ccc); - border: 1px solid #ccc; - border-bottom: 1px solid #bbb; - border-radius: 3px; - color: #333; - font-size: 14px; - line-height: 1; - padding: 5px 4px; - text-align: center; - text-shadow: 0 1px 0 #eee; - vertical-align: middle -} - -.sp-container button:hover { - background-color: #dddddd; - background-image: -webkit-linear-gradient(top, #ddd, #bbb); - background-image: -moz-linear-gradient(top, #ddd, #bbb); - background-image: -ms-linear-gradient(top, #ddd, #bbb); - background-image: -o-linear-gradient(top, #ddd, #bbb); - background-image: linear-gradient(to bottom, #ddd, #bbb); - border: 1px solid #bbb; - border-bottom: 1px solid #999; - cursor: pointer; - text-shadow: 0 1px 0 #ddd -} - -.sp-container button:active { - border: 1px solid #aaa; - border-bottom: 1px solid #888; - -webkit-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -moz-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -ms-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - -o-box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee; - box-shadow: inset 0 0 5px 2px #aaaaaa, 0 1px 0 0 #eeeeee -} - -.sp-cancel { - font-size: 11px; - color: #d93f3f !important; - margin: 0; - padding: 2px; - margin-right: 5px; - vertical-align: middle; - text-decoration: none -} - -.sp-cancel:hover { - color: #d93f3f !important; - text-decoration: underline -} - -.sp-palette span:hover, -.sp-palette span.sp-thumb-active { - border-color: #000 -} - -.sp-preview, -.sp-alpha, -.sp-thumb-el { - position: relative; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==) -} - -.sp-preview-inner, -.sp-alpha-inner, -.sp-thumb-inner { - display: block; - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0 -} - -.sp-palette .sp-thumb-inner { - background-position: 50% 50%; - background-repeat: no-repeat -} - -.sp-palette .sp-thumb-light.sp-thumb-active .sp-thumb-inner { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAIVJREFUeNpiYBhsgJFMffxAXABlN5JruT4Q3wfi/0DsT64h8UD8HmpIPCWG/KemIfOJCUB+Aoacx6EGBZyHBqI+WsDCwuQ9mhxeg2A210Ntfo8klk9sOMijaURm7yc1UP2RNCMbKE9ODK1HM6iegYLkfx8pligC9lCD7KmRof0ZhjQACDAAceovrtpVBRkAAAAASUVORK5CYII=) -} - -.sp-palette .sp-thumb-dark.sp-thumb-active .sp-thumb-inner { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAMdJREFUOE+tkgsNwzAMRMugEAahEAahEAZhEAqlEAZhEAohEAYh81X2dIm8fKpEspLGvudPOsUYpxE2BIJCroJmEW9qJ+MKaBFhEMNabSy9oIcIPwrB+afvAUFoK4H0tMaQ3XtlrggDhOVVMuT4E5MMG0FBbCEYzjYT7OxLEvIHQLY2zWwQ3D+9luyOQTfKDiFD3iUIfPk8VqrKjgAiSfGFPecrg6HN6m/iBcwiDAo7WiBeawa+Kwh7tZoSCGLMqwlSAzVDhoK+6vH4G0P5wdkAAAAASUVORK5CYII=) -} - -.sp-clear-display { - background-repeat: no-repeat; - background-position: center; - background-image: url(data:image/gif;base64,R0lGODlhFAAUAPcAAAAAAJmZmZ2dnZ6enqKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq/Hx8fLy8vT09PX19ff39/j4+Pn5+fr6+vv7+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAP8ALAAAAAAUABQAAAihAP9FoPCvoMGDBy08+EdhQAIJCCMybCDAAYUEARBAlFiQQoMABQhKUJBxY0SPICEYHBnggEmDKAuoPMjS5cGYMxHW3IiT478JJA8M/CjTZ0GgLRekNGpwAsYABHIypcAgQMsITDtWJYBR6NSqMico9cqR6tKfY7GeBCuVwlipDNmefAtTrkSzB1RaIAoXodsABiZAEFB06gIBWC1mLVgBa0AAOw==) -} - - -/*! - * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@font-face { - font-family: 'FontAwesome'; - src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); - src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg"); - font-weight: normal; - font-style: normal -} - -.fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale -} - -.fa-lg { - font-size: 1.33333em; - line-height: .75em; - vertical-align: -15% -} - -.fa-2x { - font-size: 2em -} - -.fa-3x { - font-size: 3em -} - -.fa-4x { - font-size: 4em -} - -.fa-5x { - font-size: 5em -} - -.fa-fw { - width: 1.28571em; - text-align: center -} - -.fa-ul { - padding-left: 0; - margin-left: 2.14286em; - list-style-type: none -} - -.fa-ul>li { - position: relative -} - -.fa-li { - position: absolute; - left: -2.14286em; - width: 2.14286em; - top: .14286em; - text-align: center -} - -.fa-li.fa-lg { - left: -1.85714em -} - -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em -} - -.fa-pull-left { - float: left -} - -.fa-pull-right { - float: right -} - -.fa.fa-pull-left { - margin-right: .3em -} - -.fa.fa-pull-right { - margin-left: .3em -} - -.pull-right { - float: right -} - -.pull-left { - float: left -} - -.fa.pull-left { - margin-right: .3em -} - -.fa.pull-right { - margin-left: .3em -} - -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear -} - -.fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8) -} - -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg) - } -} - -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg) - } -} - -.fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg) -} - -.fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg) -} - -.fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg) -} - -.fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1) -} - -.fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1) -} - -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none -} - -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle -} - -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center -} - -.fa-stack-1x { - line-height: inherit -} - -.fa-stack-2x { - font-size: 2em -} - -.fa-inverse { - color: #fff -} - -.fa-glass:before { - content: "" -} - -.fa-music:before { - content: "" -} - -.fa-search:before { - content: "" -} - -.fa-envelope-o:before { - content: "" -} - -.fa-heart:before { - content: "" -} - -.fa-star:before { - content: "" -} - -.fa-star-o:before { - content: "" -} - -.fa-user:before { - content: "" -} - -.fa-film:before { - content: "" -} - -.fa-th-large:before { - content: "" -} - -.fa-th:before { - content: "" -} - -.fa-th-list:before { - content: "" -} - -.fa-check:before { - content: "" -} - -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "" -} - -.fa-search-plus:before { - content: "" -} - -.fa-search-minus:before { - content: "" -} - -.fa-power-off:before { - content: "" -} - -.fa-signal:before { - content: "" -} - -.fa-gear:before, -.fa-cog:before { - content: "" -} - -.fa-trash-o:before { - content: "" -} - -.fa-home:before { - content: "" -} - -.fa-file-o:before { - content: "" -} - -.fa-clock-o:before { - content: "" -} - -.fa-road:before { - content: "" -} - -.fa-download:before { - content: "" -} - -.fa-arrow-circle-o-down:before { - content: "" -} - -.fa-arrow-circle-o-up:before { - content: "" -} - -.fa-inbox:before { - content: "" -} - -.fa-play-circle-o:before { - content: "" -} - -.fa-rotate-right:before, -.fa-repeat:before { - content: "" -} - -.fa-refresh:before { - content: "" -} - -.fa-list-alt:before { - content: "" -} - -.fa-lock:before { - content: "" -} - -.fa-flag:before { - content: "" -} - -.fa-headphones:before { - content: "" -} - -.fa-volume-off:before { - content: "" -} - -.fa-volume-down:before { - content: "" -} - -.fa-volume-up:before { - content: "" -} - -.fa-qrcode:before { - content: "" -} - -.fa-barcode:before { - content: "" -} - -.fa-tag:before { - content: "" -} - -.fa-tags:before { - content: "" -} - -.fa-book:before { - content: "" -} - -.fa-bookmark:before { - content: "" -} - -.fa-print:before { - content: "" -} - -.fa-camera:before { - content: "" -} - -.fa-font:before { - content: "" -} - -.fa-bold:before { - content: "" -} - -.fa-italic:before { - content: "" -} - -.fa-text-height:before { - content: "" -} - -.fa-text-width:before { - content: "" -} - -.fa-align-left:before { - content: "" -} - -.fa-align-center:before { - content: "" -} - -.fa-align-right:before { - content: "" -} - -.fa-align-justify:before { - content: "" -} - -.fa-list:before { - content: "" -} - -.fa-dedent:before, -.fa-outdent:before { - content: "" -} - -.fa-indent:before { - content: "" -} - -.fa-video-camera:before { - content: "" -} - -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "" -} - -.fa-pencil:before { - content: "" -} - -.fa-map-marker:before { - content: "" -} - -.fa-adjust:before { - content: "" -} - -.fa-tint:before { - content: "" -} - -.fa-edit:before, -.fa-pencil-square-o:before { - content: "" -} - -.fa-share-square-o:before { - content: "" -} - -.fa-check-square-o:before { - content: "" -} - -.fa-arrows:before { - content: "" -} - -.fa-step-backward:before { - content: "" -} - -.fa-fast-backward:before { - content: "" -} - -.fa-backward:before { - content: "" -} - -.fa-play:before { - content: "" -} - -.fa-pause:before { - content: "" -} - -.fa-stop:before { - content: "" -} - -.fa-forward:before { - content: "" -} - -.fa-fast-forward:before { - content: "" -} - -.fa-step-forward:before { - content: "" -} - -.fa-eject:before { - content: "" -} - -.fa-chevron-left:before { - content: "" -} - -.fa-chevron-right:before { - content: "" -} - -.fa-plus-circle:before { - content: "" -} - -.fa-minus-circle:before { - content: "" -} - -.fa-times-circle:before { - content: "" -} - -.fa-check-circle:before { - content: "" -} - -.fa-question-circle:before { - content: "" -} - -.fa-info-circle:before { - content: "" -} - -.fa-crosshairs:before { - content: "" -} - -.fa-times-circle-o:before { - content: "" -} - -.fa-check-circle-o:before { - content: "" -} - -.fa-ban:before { - content: "" -} - -.fa-arrow-left:before { - content: "" -} - -.fa-arrow-right:before { - content: "" -} - -.fa-arrow-up:before { - content: "" -} - -.fa-arrow-down:before { - content: "" -} - -.fa-mail-forward:before, -.fa-share:before { - content: "" -} - -.fa-expand:before { - content: "" -} - -.fa-compress:before { - content: "" -} - -.fa-plus:before { - content: "" -} - -.fa-minus:before { - content: "" -} - -.fa-asterisk:before { - content: "" -} - -.fa-exclamation-circle:before { - content: "" -} - -.fa-gift:before { - content: "" -} - -.fa-leaf:before { - content: "" -} - -.fa-fire:before { - content: "" -} - -.fa-eye:before { - content: "" -} - -.fa-eye-slash:before { - content: "" -} - -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "" -} - -.fa-plane:before { - content: "" -} - -.fa-calendar:before { - content: "" -} - -.fa-random:before { - content: "" -} - -.fa-comment:before { - content: "" -} - -.fa-magnet:before { - content: "" -} - -.fa-chevron-up:before { - content: "" -} - -.fa-chevron-down:before { - content: "" -} - -.fa-retweet:before { - content: "" -} - -.fa-shopping-cart:before { - content: "" -} - -.fa-folder:before { - content: "" -} - -.fa-folder-open:before { - content: "" -} - -.fa-arrows-v:before { - content: "" -} - -.fa-arrows-h:before { - content: "" -} - -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "" -} - -.fa-twitter-square:before { - content: "" -} - -.fa-facebook-square:before { - content: "" -} - -.fa-camera-retro:before { - content: "" -} - -.fa-key:before { - content: "" -} - -.fa-gears:before, -.fa-cogs:before { - content: "" -} - -.fa-comments:before { - content: "" -} - -.fa-thumbs-o-up:before { - content: "" -} - -.fa-thumbs-o-down:before { - content: "" -} - -.fa-star-half:before { - content: "" -} - -.fa-heart-o:before { - content: "" -} - -.fa-sign-out:before { - content: "" -} - -.fa-linkedin-square:before { - content: "" -} - -.fa-thumb-tack:before { - content: "" -} - -.fa-external-link:before { - content: "" -} - -.fa-sign-in:before { - content: "" -} - -.fa-trophy:before { - content: "" -} - -.fa-github-square:before { - content: "" -} - -.fa-upload:before { - content: "" -} - -.fa-lemon-o:before { - content: "" -} - -.fa-phone:before { - content: "" -} - -.fa-square-o:before { - content: "" -} - -.fa-bookmark-o:before { - content: "" -} - -.fa-phone-square:before { - content: "" -} - -.fa-twitter:before { - content: "" -} - -.fa-facebook-f:before, -.fa-facebook:before { - content: "" -} - -.fa-github:before { - content: "" -} - -.fa-unlock:before { - content: "" -} - -.fa-credit-card:before { - content: "" -} - -.fa-feed:before, -.fa-rss:before { - content: "" -} - -.fa-hdd-o:before { - content: "" -} - -.fa-bullhorn:before { - content: "" -} - -.fa-bell:before { - content: "" -} - -.fa-certificate:before { - content: "" -} - -.fa-hand-o-right:before { - content: "" -} - -.fa-hand-o-left:before { - content: "" -} - -.fa-hand-o-up:before { - content: "" -} - -.fa-hand-o-down:before { - content: "" -} - -.fa-arrow-circle-left:before { - content: "" -} - -.fa-arrow-circle-right:before { - content: "" -} - -.fa-arrow-circle-up:before { - content: "" -} - -.fa-arrow-circle-down:before { - content: "" -} - -.fa-globe:before { - content: "" -} - -.fa-wrench:before { - content: "" -} - -.fa-tasks:before { - content: "" -} - -.fa-filter:before { - content: "" -} - -.fa-briefcase:before { - content: "" -} - -.fa-arrows-alt:before { - content: "" -} - -.fa-group:before, -.fa-users:before { - content: "" -} - -.fa-chain:before, -.fa-link:before { - content: "" -} - -.fa-cloud:before { - content: "" -} - -.fa-flask:before { - content: "" -} - -.fa-cut:before, -.fa-scissors:before { - content: "" -} - -.fa-copy:before, -.fa-files-o:before { - content: "" -} - -.fa-paperclip:before { - content: "" -} - -.fa-save:before, -.fa-floppy-o:before { - content: "" -} - -.fa-square:before { - content: "" -} - -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "" -} - -.fa-list-ul:before { - content: "" -} - -.fa-list-ol:before { - content: "" -} - -.fa-strikethrough:before { - content: "" -} - -.fa-underline:before { - content: "" -} - -.fa-table:before { - content: "" -} - -.fa-magic:before { - content: "" -} - -.fa-truck:before { - content: "" -} - -.fa-pinterest:before { - content: "" -} - -.fa-pinterest-square:before { - content: "" -} - -.fa-google-plus-square:before { - content: "" -} - -.fa-google-plus:before { - content: "" -} - -.fa-money:before { - content: "" -} - -.fa-caret-down:before { - content: "" -} - -.fa-caret-up:before { - content: "" -} - -.fa-caret-left:before { - content: "" -} - -.fa-caret-right:before { - content: "" -} - -.fa-columns:before { - content: "" -} - -.fa-unsorted:before, -.fa-sort:before { - content: "" -} - -.fa-sort-down:before, -.fa-sort-desc:before { - content: "" -} - -.fa-sort-up:before, -.fa-sort-asc:before { - content: "" -} - -.fa-envelope:before { - content: "" -} - -.fa-linkedin:before { - content: "" -} - -.fa-rotate-left:before, -.fa-undo:before { - content: "" -} - -.fa-legal:before, -.fa-gavel:before { - content: "" -} - -.fa-dashboard:before, -.fa-tachometer:before { - content: "" -} - -.fa-comment-o:before { - content: "" -} - -.fa-comments-o:before { - content: "" -} - -.fa-flash:before, -.fa-bolt:before { - content: "" -} - -.fa-sitemap:before { - content: "" -} - -.fa-umbrella:before { - content: "" -} - -.fa-paste:before, -.fa-clipboard:before { - content: "" -} - -.fa-lightbulb-o:before { - content: "" -} - -.fa-exchange:before { - content: "" -} - -.fa-cloud-download:before { - content: "" -} - -.fa-cloud-upload:before { - content: "" -} - -.fa-user-md:before { - content: "" -} - -.fa-stethoscope:before { - content: "" -} - -.fa-suitcase:before { - content: "" -} - -.fa-bell-o:before { - content: "" -} - -.fa-coffee:before { - content: "" -} - -.fa-cutlery:before { - content: "" -} - -.fa-file-text-o:before { - content: "" -} - -.fa-building-o:before { - content: "" -} - -.fa-hospital-o:before { - content: "" -} - -.fa-ambulance:before { - content: "" -} - -.fa-medkit:before { - content: "" -} - -.fa-fighter-jet:before { - content: "" -} - -.fa-beer:before { - content: "" -} - -.fa-h-square:before { - content: "" -} - -.fa-plus-square:before { - content: "" -} - -.fa-angle-double-left:before { - content: "" -} - -.fa-angle-double-right:before { - content: "" -} - -.fa-angle-double-up:before { - content: "" -} - -.fa-angle-double-down:before { - content: "" -} - -.fa-angle-left:before { - content: "" -} - -.fa-angle-right:before { - content: "" -} - -.fa-angle-up:before { - content: "" -} - -.fa-angle-down:before { - content: "" -} - -.fa-desktop:before { - content: "" -} - -.fa-laptop:before { - content: "" -} - -.fa-tablet:before { - content: "" -} - -.fa-mobile-phone:before, -.fa-mobile:before { - content: "" -} - -.fa-circle-o:before { - content: "" -} - -.fa-quote-left:before { - content: "" -} - -.fa-quote-right:before { - content: "" -} - -.fa-spinner:before { - content: "" -} - -.fa-circle:before { - content: "" -} - -.fa-mail-reply:before, -.fa-reply:before { - content: "" -} - -.fa-github-alt:before { - content: "" -} - -.fa-folder-o:before { - content: "" -} - -.fa-folder-open-o:before { - content: "" -} - -.fa-smile-o:before { - content: "" -} - -.fa-frown-o:before { - content: "" -} - -.fa-meh-o:before { - content: "" -} - -.fa-gamepad:before { - content: "" -} - -.fa-keyboard-o:before { - content: "" -} - -.fa-flag-o:before { - content: "" -} - -.fa-flag-checkered:before { - content: "" -} - -.fa-terminal:before { - content: "" -} - -.fa-code:before { - content: "" -} - -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "" -} - -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "" -} - -.fa-location-arrow:before { - content: "" -} - -.fa-crop:before { - content: "" -} - -.fa-code-fork:before { - content: "" -} - -.fa-unlink:before, -.fa-chain-broken:before { - content: "" -} - -.fa-question:before { - content: "" -} - -.fa-info:before { - content: "" -} - -.fa-exclamation:before { - content: "" -} - -.fa-superscript:before { - content: "" -} - -.fa-subscript:before { - content: "" -} - -.fa-eraser:before { - content: "" -} - -.fa-puzzle-piece:before { - content: "" -} - -.fa-microphone:before { - content: "" -} - -.fa-microphone-slash:before { - content: "" -} - -.fa-shield:before { - content: "" -} - -.fa-calendar-o:before { - content: "" -} - -.fa-fire-extinguisher:before { - content: "" -} - -.fa-rocket:before { - content: "" -} - -.fa-maxcdn:before { - content: "" -} - -.fa-chevron-circle-left:before { - content: "" -} - -.fa-chevron-circle-right:before { - content: "" -} - -.fa-chevron-circle-up:before { - content: "" -} - -.fa-chevron-circle-down:before { - content: "" -} - -.fa-html5:before { - content: "" -} - -.fa-css3:before { - content: "" -} - -.fa-anchor:before { - content: "" -} - -.fa-unlock-alt:before { - content: "" -} - -.fa-bullseye:before { - content: "" -} - -.fa-ellipsis-h:before { - content: "" -} - -.fa-ellipsis-v:before { - content: "" -} - -.fa-rss-square:before { - content: "" -} - -.fa-play-circle:before { - content: "" -} - -.fa-ticket:before { - content: "" -} - -.fa-minus-square:before { - content: "" -} - -.fa-minus-square-o:before { - content: "" -} - -.fa-level-up:before { - content: "" -} - -.fa-level-down:before { - content: "" -} - -.fa-check-square:before { - content: "" -} - -.fa-pencil-square:before { - content: "" -} - -.fa-external-link-square:before { - content: "" -} - -.fa-share-square:before { - content: "" -} - -.fa-compass:before { - content: "" -} - -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "" -} - -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "" -} - -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "" -} - -.fa-euro:before, -.fa-eur:before { - content: "" -} - -.fa-gbp:before { - content: "" -} - -.fa-dollar:before, -.fa-usd:before { - content: "" -} - -.fa-rupee:before, -.fa-inr:before { - content: "" -} - -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "" -} - -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "" -} - -.fa-won:before, -.fa-krw:before { - content: "" -} - -.fa-bitcoin:before, -.fa-btc:before { - content: "" -} - -.fa-file:before { - content: "" -} - -.fa-file-text:before { - content: "" -} - -.fa-sort-alpha-asc:before { - content: "" -} - -.fa-sort-alpha-desc:before { - content: "" -} - -.fa-sort-amount-asc:before { - content: "" -} - -.fa-sort-amount-desc:before { - content: "" -} - -.fa-sort-numeric-asc:before { - content: "" -} - -.fa-sort-numeric-desc:before { - content: "" -} - -.fa-thumbs-up:before { - content: "" -} - -.fa-thumbs-down:before { - content: "" -} - -.fa-youtube-square:before { - content: "" -} - -.fa-youtube:before { - content: "" -} - -.fa-xing:before { - content: "" -} - -.fa-xing-square:before { - content: "" -} - -.fa-youtube-play:before { - content: "" -} - -.fa-dropbox:before { - content: "" -} - -.fa-stack-overflow:before { - content: "" -} - -.fa-instagram:before { - content: "" -} - -.fa-flickr:before { - content: "" -} - -.fa-adn:before { - content: "" -} - -.fa-bitbucket:before { - content: "" -} - -.fa-bitbucket-square:before { - content: "" -} - -.fa-tumblr:before { - content: "" -} - -.fa-tumblr-square:before { - content: "" -} - -.fa-long-arrow-down:before { - content: "" -} - -.fa-long-arrow-up:before { - content: "" -} - -.fa-long-arrow-left:before { - content: "" -} - -.fa-long-arrow-right:before { - content: "" -} - -.fa-apple:before { - content: "" -} - -.fa-windows:before { - content: "" -} - -.fa-android:before { - content: "" -} - -.fa-linux:before { - content: "" -} - -.fa-dribbble:before { - content: "" -} - -.fa-skype:before { - content: "" -} - -.fa-foursquare:before { - content: "" -} - -.fa-trello:before { - content: "" -} - -.fa-female:before { - content: "" -} - -.fa-male:before { - content: "" -} - -.fa-gittip:before, -.fa-gratipay:before { - content: "" -} - -.fa-sun-o:before { - content: "" -} - -.fa-moon-o:before { - content: "" -} - -.fa-archive:before { - content: "" -} - -.fa-bug:before { - content: "" -} - -.fa-vk:before { - content: "" -} - -.fa-weibo:before { - content: "" -} - -.fa-renren:before { - content: "" -} - -.fa-pagelines:before { - content: "" -} - -.fa-stack-exchange:before { - content: "" -} - -.fa-arrow-circle-o-right:before { - content: "" -} - -.fa-arrow-circle-o-left:before { - content: "" -} - -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "" -} - -.fa-dot-circle-o:before { - content: "" -} - -.fa-wheelchair:before { - content: "" -} - -.fa-vimeo-square:before { - content: "" -} - -.fa-turkish-lira:before, -.fa-try:before { - content: "" -} - -.fa-plus-square-o:before { - content: "" -} - -.fa-space-shuttle:before { - content: "" -} - -.fa-slack:before { - content: "" -} - -.fa-envelope-square:before { - content: "" -} - -.fa-wordpress:before { - content: "" -} - -.fa-openid:before { - content: "" -} - -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "" -} - -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "" -} - -.fa-yahoo:before { - content: "" -} - -.fa-google:before { - content: "" -} - -.fa-reddit:before { - content: "" -} - -.fa-reddit-square:before { - content: "" -} - -.fa-stumbleupon-circle:before { - content: "" -} - -.fa-stumbleupon:before { - content: "" -} - -.fa-delicious:before { - content: "" -} - -.fa-digg:before { - content: "" -} - -.fa-pied-piper-pp:before { - content: "" -} - -.fa-pied-piper-alt:before { - content: "" -} - -.fa-drupal:before { - content: "" -} - -.fa-joomla:before { - content: "" -} - -.fa-language:before { - content: "" -} - -.fa-fax:before { - content: "" -} - -.fa-building:before { - content: "" -} - -.fa-child:before { - content: "" -} - -.fa-paw:before { - content: "" -} - -.fa-spoon:before { - content: "" -} - -.fa-cube:before { - content: "" -} - -.fa-cubes:before { - content: "" -} - -.fa-behance:before { - content: "" -} - -.fa-behance-square:before { - content: "" -} - -.fa-steam:before { - content: "" -} - -.fa-steam-square:before { - content: "" -} - -.fa-recycle:before { - content: "" -} - -.fa-automobile:before, -.fa-car:before { - content: "" -} - -.fa-cab:before, -.fa-taxi:before { - content: "" -} - -.fa-tree:before { - content: "" -} - -.fa-spotify:before { - content: "" -} - -.fa-deviantart:before { - content: "" -} - -.fa-soundcloud:before { - content: "" -} - -.fa-database:before { - content: "" -} - -.fa-file-pdf-o:before { - content: "" -} - -.fa-file-word-o:before { - content: "" -} - -.fa-file-excel-o:before { - content: "" -} - -.fa-file-powerpoint-o:before { - content: "" -} - -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "" -} - -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "" -} - -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "" -} - -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "" -} - -.fa-file-code-o:before { - content: "" -} - -.fa-vine:before { - content: "" -} - -.fa-codepen:before { - content: "" -} - -.fa-jsfiddle:before { - content: "" -} - -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "" -} - -.fa-circle-o-notch:before { - content: "" -} - -.fa-ra:before, -.fa-resistance:before, -.fa-rebel:before { - content: "" -} - -.fa-ge:before, -.fa-empire:before { - content: "" -} - -.fa-git-square:before { - content: "" -} - -.fa-git:before { - content: "" -} - -.fa-y-combinator-square:before, -.fa-yc-square:before, -.fa-hacker-news:before { - content: "" -} - -.fa-tencent-weibo:before { - content: "" -} - -.fa-qq:before { - content: "" -} - -.fa-wechat:before, -.fa-weixin:before { - content: "" -} - -.fa-send:before, -.fa-paper-plane:before { - content: "" -} - -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "" -} - -.fa-history:before { - content: "" -} - -.fa-circle-thin:before { - content: "" -} - -.fa-header:before { - content: "" -} - -.fa-paragraph:before { - content: "" -} - -.fa-sliders:before { - content: "" -} - -.fa-share-alt:before { - content: "" -} - -.fa-share-alt-square:before { - content: "" -} - -.fa-bomb:before { - content: "" -} - -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "" -} - -.fa-tty:before { - content: "" -} - -.fa-binoculars:before { - content: "" -} - -.fa-plug:before { - content: "" -} - -.fa-slideshare:before { - content: "" -} - -.fa-twitch:before { - content: "" -} - -.fa-yelp:before { - content: "" -} - -.fa-newspaper-o:before { - content: "" -} - -.fa-wifi:before { - content: "" -} - -.fa-calculator:before { - content: "" -} - -.fa-paypal:before { - content: "" -} - -.fa-google-wallet:before { - content: "" -} - -.fa-cc-visa:before { - content: "" -} - -.fa-cc-mastercard:before { - content: "" -} - -.fa-cc-discover:before { - content: "" -} - -.fa-cc-amex:before { - content: "" -} - -.fa-cc-paypal:before { - content: "" -} - -.fa-cc-stripe:before { - content: "" -} - -.fa-bell-slash:before { - content: "" -} - -.fa-bell-slash-o:before { - content: "" -} - -.fa-trash:before { - content: "" -} - -.fa-copyright:before { - content: "" -} - -.fa-at:before { - content: "" -} - -.fa-eyedropper:before { - content: "" -} - -.fa-paint-brush:before { - content: "" -} - -.fa-birthday-cake:before { - content: "" -} - -.fa-area-chart:before { - content: "" -} - -.fa-pie-chart:before { - content: "" -} - -.fa-line-chart:before { - content: "" -} - -.fa-lastfm:before { - content: "" -} - -.fa-lastfm-square:before { - content: "" -} - -.fa-toggle-off:before { - content: "" -} - -.fa-toggle-on:before { - content: "" -} - -.fa-bicycle:before { - content: "" -} - -.fa-bus:before { - content: "" -} - -.fa-ioxhost:before { - content: "" -} - -.fa-angellist:before { - content: "" -} - -.fa-cc:before { - content: "" -} - -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "" -} - -.fa-meanpath:before { - content: "" -} - -.fa-buysellads:before { - content: "" -} - -.fa-connectdevelop:before { - content: "" -} - -.fa-dashcube:before { - content: "" -} - -.fa-forumbee:before { - content: "" -} - -.fa-leanpub:before { - content: "" -} - -.fa-sellsy:before { - content: "" -} - -.fa-shirtsinbulk:before { - content: "" -} - -.fa-simplybuilt:before { - content: "" -} - -.fa-skyatlas:before { - content: "" -} - -.fa-cart-plus:before { - content: "" -} - -.fa-cart-arrow-down:before { - content: "" -} - -.fa-diamond:before { - content: "" -} - -.fa-ship:before { - content: "" -} - -.fa-user-secret:before { - content: "" -} - -.fa-motorcycle:before { - content: "" -} - -.fa-street-view:before { - content: "" -} - -.fa-heartbeat:before { - content: "" -} - -.fa-venus:before { - content: "" -} - -.fa-mars:before { - content: "" -} - -.fa-mercury:before { - content: "" -} - -.fa-intersex:before, -.fa-transgender:before { - content: "" -} - -.fa-transgender-alt:before { - content: "" -} - -.fa-venus-double:before { - content: "" -} - -.fa-mars-double:before { - content: "" -} - -.fa-venus-mars:before { - content: "" -} - -.fa-mars-stroke:before { - content: "" -} - -.fa-mars-stroke-v:before { - content: "" -} - -.fa-mars-stroke-h:before { - content: "" -} - -.fa-neuter:before { - content: "" -} - -.fa-genderless:before { - content: "" -} - -.fa-facebook-official:before { - content: "" -} - -.fa-pinterest-p:before { - content: "" -} - -.fa-whatsapp:before { - content: "" -} - -.fa-server:before { - content: "" -} - -.fa-user-plus:before { - content: "" -} - -.fa-user-times:before { - content: "" -} - -.fa-hotel:before, -.fa-bed:before { - content: "" -} - -.fa-viacoin:before { - content: "" -} - -.fa-train:before { - content: "" -} - -.fa-subway:before { - content: "" -} - -.fa-medium:before { - content: "" -} - -.fa-yc:before, -.fa-y-combinator:before { - content: "" -} - -.fa-optin-monster:before { - content: "" -} - -.fa-opencart:before { - content: "" -} - -.fa-expeditedssl:before { - content: "" -} - -.fa-battery-4:before, -.fa-battery:before, -.fa-battery-full:before { - content: "" -} - -.fa-battery-3:before, -.fa-battery-three-quarters:before { - content: "" -} - -.fa-battery-2:before, -.fa-battery-half:before { - content: "" -} - -.fa-battery-1:before, -.fa-battery-quarter:before { - content: "" -} - -.fa-battery-0:before, -.fa-battery-empty:before { - content: "" -} - -.fa-mouse-pointer:before { - content: "" -} - -.fa-i-cursor:before { - content: "" -} - -.fa-object-group:before { - content: "" -} - -.fa-object-ungroup:before { - content: "" -} - -.fa-sticky-note:before { - content: "" -} - -.fa-sticky-note-o:before { - content: "" -} - -.fa-cc-jcb:before { - content: "" -} - -.fa-cc-diners-club:before { - content: "" -} - -.fa-clone:before { - content: "" -} - -.fa-balance-scale:before { - content: "" -} - -.fa-hourglass-o:before { - content: "" -} - -.fa-hourglass-1:before, -.fa-hourglass-start:before { - content: "" -} - -.fa-hourglass-2:before, -.fa-hourglass-half:before { - content: "" -} - -.fa-hourglass-3:before, -.fa-hourglass-end:before { - content: "" -} - -.fa-hourglass:before { - content: "" -} - -.fa-hand-grab-o:before, -.fa-hand-rock-o:before { - content: "" -} - -.fa-hand-stop-o:before, -.fa-hand-paper-o:before { - content: "" -} - -.fa-hand-scissors-o:before { - content: "" -} - -.fa-hand-lizard-o:before { - content: "" -} - -.fa-hand-spock-o:before { - content: "" -} - -.fa-hand-pointer-o:before { - content: "" -} - -.fa-hand-peace-o:before { - content: "" -} - -.fa-trademark:before { - content: "" -} - -.fa-registered:before { - content: "" -} - -.fa-creative-commons:before { - content: "" -} - -.fa-gg:before { - content: "" -} - -.fa-gg-circle:before { - content: "" -} - -.fa-tripadvisor:before { - content: "" -} - -.fa-odnoklassniki:before { - content: "" -} - -.fa-odnoklassniki-square:before { - content: "" -} - -.fa-get-pocket:before { - content: "" -} - -.fa-wikipedia-w:before { - content: "" -} - -.fa-safari:before { - content: "" -} - -.fa-chrome:before { - content: "" -} - -.fa-firefox:before { - content: "" -} - -.fa-opera:before { - content: "" -} - -.fa-internet-explorer:before { - content: "" -} - -.fa-tv:before, -.fa-television:before { - content: "" -} - -.fa-contao:before { - content: "" -} - -.fa-500px:before { - content: "" -} - -.fa-amazon:before { - content: "" -} - -.fa-calendar-plus-o:before { - content: "" -} - -.fa-calendar-minus-o:before { - content: "" -} - -.fa-calendar-times-o:before { - content: "" -} - -.fa-calendar-check-o:before { - content: "" -} - -.fa-industry:before { - content: "" -} - -.fa-map-pin:before { - content: "" -} - -.fa-map-signs:before { - content: "" -} - -.fa-map-o:before { - content: "" -} - -.fa-map:before { - content: "" -} - -.fa-commenting:before { - content: "" -} - -.fa-commenting-o:before { - content: "" -} - -.fa-houzz:before { - content: "" -} - -.fa-vimeo:before { - content: "" -} - -.fa-black-tie:before { - content: "" -} - -.fa-fonticons:before { - content: "" -} - -.fa-reddit-alien:before { - content: "" -} - -.fa-edge:before { - content: "" -} - -.fa-credit-card-alt:before { - content: "" -} - -.fa-codiepie:before { - content: "" -} - -.fa-modx:before { - content: "" -} - -.fa-fort-awesome:before { - content: "" -} - -.fa-usb:before { - content: "" -} - -.fa-product-hunt:before { - content: "" -} - -.fa-mixcloud:before { - content: "" -} - -.fa-scribd:before { - content: "" -} - -.fa-pause-circle:before { - content: "" -} - -.fa-pause-circle-o:before { - content: "" -} - -.fa-stop-circle:before { - content: "" -} - -.fa-stop-circle-o:before { - content: "" -} - -.fa-shopping-bag:before { - content: "" -} - -.fa-shopping-basket:before { - content: "" -} - -.fa-hashtag:before { - content: "" -} - -.fa-bluetooth:before { - content: "" -} - -.fa-bluetooth-b:before { - content: "" -} - -.fa-percent:before { - content: "" -} - -.fa-gitlab:before { - content: "" -} - -.fa-wpbeginner:before { - content: "" -} - -.fa-wpforms:before { - content: "" -} - -.fa-envira:before { - content: "" -} - -.fa-universal-access:before { - content: "" -} - -.fa-wheelchair-alt:before { - content: "" -} - -.fa-question-circle-o:before { - content: "" -} - -.fa-blind:before { - content: "" -} - -.fa-audio-description:before { - content: "" -} - -.fa-volume-control-phone:before { - content: "" -} - -.fa-braille:before { - content: "" -} - -.fa-assistive-listening-systems:before { - content: "" -} - -.fa-asl-interpreting:before, -.fa-american-sign-language-interpreting:before { - content: "" -} - -.fa-deafness:before, -.fa-hard-of-hearing:before, -.fa-deaf:before { - content: "" -} - -.fa-glide:before { - content: "" -} - -.fa-glide-g:before { - content: "" -} - -.fa-signing:before, -.fa-sign-language:before { - content: "" -} - -.fa-low-vision:before { - content: "" -} - -.fa-viadeo:before { - content: "" -} - -.fa-viadeo-square:before { - content: "" -} - -.fa-snapchat:before { - content: "" -} - -.fa-snapchat-ghost:before { - content: "" -} - -.fa-snapchat-square:before { - content: "" -} - -.fa-pied-piper:before { - content: "" -} - -.fa-first-order:before { - content: "" -} - -.fa-yoast:before { - content: "" -} - -.fa-themeisle:before { - content: "" -} - -.fa-google-plus-circle:before, -.fa-google-plus-official:before { - content: "" -} - -.fa-fa:before, -.fa-font-awesome:before { - content: "" -} - -.fa-handshake-o:before { - content: "" -} - -.fa-envelope-open:before { - content: "" -} - -.fa-envelope-open-o:before { - content: "" -} - -.fa-linode:before { - content: "" -} - -.fa-address-book:before { - content: "" -} - -.fa-address-book-o:before { - content: "" -} - -.fa-vcard:before, -.fa-address-card:before { - content: "" -} - -.fa-vcard-o:before, -.fa-address-card-o:before { - content: "" -} - -.fa-user-circle:before { - content: "" -} - -.fa-user-circle-o:before { - content: "" -} - -.fa-user-o:before { - content: "" -} - -.fa-id-badge:before { - content: "" -} - -.fa-drivers-license:before, -.fa-id-card:before { - content: "" -} - -.fa-drivers-license-o:before, -.fa-id-card-o:before { - content: "" -} - -.fa-quora:before { - content: "" -} - -.fa-free-code-camp:before { - content: "" -} - -.fa-telegram:before { - content: "" -} - -.fa-thermometer-4:before, -.fa-thermometer:before, -.fa-thermometer-full:before { - content: "" -} - -.fa-thermometer-3:before, -.fa-thermometer-three-quarters:before { - content: "" -} - -.fa-thermometer-2:before, -.fa-thermometer-half:before { - content: "" -} - -.fa-thermometer-1:before, -.fa-thermometer-quarter:before { - content: "" -} - -.fa-thermometer-0:before, -.fa-thermometer-empty:before { - content: "" -} - -.fa-shower:before { - content: "" -} - -.fa-bathtub:before, -.fa-s15:before, -.fa-bath:before { - content: "" -} - -.fa-podcast:before { - content: "" -} - -.fa-window-maximize:before { - content: "" -} - -.fa-window-minimize:before { - content: "" -} - -.fa-window-restore:before { - content: "" -} - -.fa-times-rectangle:before, -.fa-window-close:before { - content: "" -} - -.fa-times-rectangle-o:before, -.fa-window-close-o:before { - content: "" -} - -.fa-bandcamp:before { - content: "" -} - -.fa-grav:before { - content: "" -} - -.fa-etsy:before { - content: "" -} - -.fa-imdb:before { - content: "" -} - -.fa-ravelry:before { - content: "" -} - -.fa-eercast:before { - content: "" -} - -.fa-microchip:before { - content: "" -} - -.fa-snowflake-o:before { - content: "" -} - -.fa-superpowers:before { - content: "" -} - -.fa-wpexplorer:before { - content: "" -} - -.fa-meetup:before { - content: "" -} - -.sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0 -} - -.sr-only-focusable:active, -.sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto -} - -.CodeMirror { - font-family: monospace; - height: 300px; - color: black -} - -.CodeMirror-lines { - padding: 4px 0 -} - -.CodeMirror pre { - padding: 0 4px -} - -.CodeMirror-scrollbar-filler, -.CodeMirror-gutter-filler { - background-color: white -} - -.CodeMirror-gutters { - border-right: 1px solid #ddd; - background-color: #f7f7f7; - white-space: nowrap -} - -.CodeMirror-linenumber { - padding: 0 3px 0 5px; - min-width: 20px; - text-align: right; - color: #999; - white-space: nowrap -} - -.CodeMirror-guttermarker { - color: black -} - -.CodeMirror-guttermarker-subtle { - color: #999 -} - -.CodeMirror-cursor { - border-left: 1px solid black; - border-right: none; - width: 0 -} - -.CodeMirror div.CodeMirror-secondarycursor { - border-left: 1px solid silver -} - -.cm-fat-cursor .CodeMirror-cursor { - width: auto; - border: 0 !important; - background: #7e7 -} - -.cm-fat-cursor div.CodeMirror-cursors { - z-index: 1 -} - -.cm-animate-fat-cursor { - width: auto; - border: 0; - -webkit-animation: blink 1.06s steps(1) infinite; - -moz-animation: blink 1.06s steps(1) infinite; - animation: blink 1.06s steps(1) infinite; - background-color: #7e7 -} - -@-moz-keyframes blink { - 0% {} - 50% { - background-color: transparent - } - 100% {} -} - -@-webkit-keyframes blink { - 0% {} - 50% { - background-color: transparent - } - 100% {} -} - -@keyframes blink { - 0% {} - 50% { - background-color: transparent - } - 100% {} -} - -.cm-tab { - display: inline-block; - text-decoration: inherit -} - -.CodeMirror-rulers { - position: absolute; - left: 0; - right: 0; - top: -50px; - bottom: -20px; - overflow: hidden -} - -.CodeMirror-ruler { - border-left: 1px solid #ccc; - top: 0; - bottom: 0; - position: absolute -} - -.cm-s-default .cm-header { - color: blue -} - -.cm-s-default .cm-quote { - color: #090 -} - -.cm-negative { - color: #d44 -} - -.cm-positive { - color: #292 -} - -.cm-header, -.cm-strong { - font-weight: bold -} - -.cm-em { - font-style: italic -} - -.cm-link { - text-decoration: underline -} - -.cm-strikethrough { - text-decoration: line-through -} - -.cm-s-default .cm-keyword { - color: #708 -} - -.cm-s-default .cm-atom { - color: #219 -} - -.cm-s-default .cm-number { - color: #164 -} - -.cm-s-default .cm-def { - color: #00f -} - -.cm-s-default .cm-variable-2 { - color: #05a -} - -.cm-s-default .cm-variable-3 { - color: #085 -} - -.cm-s-default .cm-comment { - color: #a50 -} - -.cm-s-default .cm-string { - color: #a11 -} - -.cm-s-default .cm-string-2 { - color: #f50 -} - -.cm-s-default .cm-meta { - color: #555 -} - -.cm-s-default .cm-qualifier { - color: #555 -} - -.cm-s-default .cm-builtin { - color: #30a -} - -.cm-s-default .cm-bracket { - color: #997 -} - -.cm-s-default .cm-tag { - color: #170 -} - -.cm-s-default .cm-attribute { - color: #00c -} - -.cm-s-default .cm-hr { - color: #999 -} - -.cm-s-default .cm-link { - color: #00c -} - -.cm-s-default .cm-error { - color: #f00 -} - -.cm-invalidchar { - color: #f00 -} - -.CodeMirror-composing { - border-bottom: 2px solid -} - -div.CodeMirror span.CodeMirror-matchingbracket { - color: #0f0 -} - -div.CodeMirror span.CodeMirror-nonmatchingbracket { - color: #f22 -} - -.CodeMirror-matchingtag { - background: rgba(255, 150, 0, 0.3) -} - -.CodeMirror-activeline-background { - background: #e8f2ff -} - -.CodeMirror { - position: relative; - overflow: hidden; - background: white -} - -.CodeMirror-scroll { - overflow: scroll !important; - margin-bottom: -30px; - margin-right: -30px; - padding-bottom: 30px; - height: 100%; - outline: none; - position: relative -} - -.CodeMirror-sizer { - position: relative; - border-right: 30px solid transparent -} - -.CodeMirror-vscrollbar, -.CodeMirror-hscrollbar, -.CodeMirror-scrollbar-filler, -.CodeMirror-gutter-filler { - position: absolute; - z-index: 6; - display: none -} - -.CodeMirror-vscrollbar { - right: 0; - top: 0; - overflow-x: hidden; - overflow-y: scroll -} - -.CodeMirror-hscrollbar { - bottom: 0; - left: 0; - overflow-y: hidden; - overflow-x: scroll -} - -.CodeMirror-scrollbar-filler { - right: 0; - bottom: 0 -} - -.CodeMirror-gutter-filler { - left: 0; - bottom: 0 -} - -.CodeMirror-gutters { - position: absolute; - left: 0; - top: 0; - min-height: 100%; - z-index: 3 -} - -.CodeMirror-gutter { - white-space: normal; - height: 100%; - display: inline-block; - vertical-align: top; - margin-bottom: -30px -} - -.CodeMirror-gutter-wrapper { - position: absolute; - z-index: 4; - background: none !important; - border: none !important -} - -.CodeMirror-gutter-background { - position: absolute; - top: 0; - bottom: 0; - z-index: 4 -} - -.CodeMirror-gutter-elt { - position: absolute; - cursor: default; - z-index: 4 -} - -.CodeMirror-gutter-wrapper { - -webkit-user-select: none; - -moz-user-select: none; - user-select: none -} - -.CodeMirror-lines { - cursor: text; - min-height: 1px -} - -.CodeMirror pre { - -moz-border-radius: 0; - -webkit-border-radius: 0; - border-radius: 0; - border-width: 0; - background: transparent; - font-family: inherit; - font-size: inherit; - margin: 0; - white-space: pre; - word-wrap: normal; - line-height: inherit; - color: inherit; - z-index: 2; - position: relative; - overflow: visible; - -webkit-tap-highlight-color: transparent; - -webkit-font-variant-ligatures: none; - font-variant-ligatures: none -} - -.CodeMirror-wrap pre { - word-wrap: break-word; - white-space: pre-wrap; - word-break: normal -} - -.CodeMirror-linebackground { - position: absolute; - left: 0; - right: 0; - top: 0; - bottom: 0; - z-index: 0 -} - -.CodeMirror-linewidget { - position: relative; - z-index: 2; - overflow: auto -} - -.CodeMirror-code { - outline: none -} - -.CodeMirror-scroll, -.CodeMirror-sizer, -.CodeMirror-gutter, -.CodeMirror-gutters, -.CodeMirror-linenumber { - -moz-box-sizing: content-box; - box-sizing: content-box -} - -.CodeMirror-measure { - position: absolute; - width: 100%; - height: 0; - overflow: hidden; - visibility: hidden -} - -.CodeMirror-cursor { - position: absolute; - pointer-events: none -} - -.CodeMirror-measure pre { - position: static -} - -div.CodeMirror-cursors { - visibility: hidden; - position: relative; - z-index: 3 -} - -div.CodeMirror-dragcursors { - visibility: visible -} - -.CodeMirror-focused div.CodeMirror-cursors { - visibility: visible -} - -.CodeMirror-selected { - background: #d9d9d9 -} - -.CodeMirror-focused .CodeMirror-selected { - background: #d7d4f0 -} - -.CodeMirror-crosshair { - cursor: crosshair -} - -.CodeMirror-line::selection, -.CodeMirror-line>span::selection, -.CodeMirror-line>span>span::selection { - background: #d7d4f0 -} - -.CodeMirror-line::-moz-selection, -.CodeMirror-line>span::-moz-selection, -.CodeMirror-line>span>span::-moz-selection { - background: #d7d4f0 -} - -.cm-searching { - background: #ffa; - background: rgba(255, 255, 0, 0.4) -} - -.cm-force-border { - padding-right: .1px -} - -@media print { - .CodeMirror div.CodeMirror-cursors { - visibility: hidden - } -} - -.cm-tab-wrap-hack:after { - content: '' -} - -span.CodeMirror-selectedtext { - background: none -} - -.cm-s-hopscotch.CodeMirror { - background: #322931; - color: #d5d3d5 -} - -.cm-s-hopscotch div.CodeMirror-selected { - background: #433b42 !important -} - -.cm-s-hopscotch .CodeMirror-gutters { - background: #322931; - border-right: 0px -} - -.cm-s-hopscotch .CodeMirror-linenumber { - color: #797379 -} - -.cm-s-hopscotch .CodeMirror-cursor { - border-left: 1px solid #989498 !important -} - -.cm-s-hopscotch span.cm-comment { - color: #b33508 -} - -.cm-s-hopscotch span.cm-atom { - color: #c85e7c -} - -.cm-s-hopscotch span.cm-number { - color: #c85e7c -} - -.cm-s-hopscotch span.cm-property, -.cm-s-hopscotch span.cm-attribute { - color: #8fc13e -} - -.cm-s-hopscotch span.cm-keyword { - color: #dd464c -} - -.cm-s-hopscotch span.cm-string { - color: #fdcc59 -} - -.cm-s-hopscotch span.cm-variable { - color: #8fc13e -} - -.cm-s-hopscotch span.cm-variable-2 { - color: #1290bf -} - -.cm-s-hopscotch span.cm-def { - color: #fd8b19 -} - -.cm-s-hopscotch span.cm-error { - background: #dd464c; - color: #989498 -} - -.cm-s-hopscotch span.cm-bracket { - color: #d5d3d5 -} - -.cm-s-hopscotch span.cm-tag { - color: #dd464c -} - -.cm-s-hopscotch span.cm-link { - color: #c85e7c -} - -.cm-s-hopscotch .CodeMirror-matchingbracket { - text-decoration: underline; - color: white !important -} - -.cm-s-hopscotch .CodeMirror-activeline-background { - background: #302020 -} - -@font-face { - font-family: 'font3336'; - src: url("../fonts/main-fonts.eot?v=20"); - src: url("../fonts/main-fonts.woff?v=20") format("woff"), url("../fonts/main-fonts.ttf?v=20") format("truetype"), url("../fonts/main-fonts.svg?v=20") format("svg"), url("../fonts/main-fonts.eot?v=20") format("embedded-opentype"); - font-weight: normal; - font-style: normal -} - -.gjs-active-color { - color: #71b7f1 -} - -.gjs-warn-color { - color: #ffca6f -} - -.gjs-fonts::before { - display: block; - font: normal normal normal 14px font3336; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-size: 5em -} - -.gjs-f-b1::before { - content: 'Q' -} - -.gjs-f-b2::before { - content: 'W' -} - -.gjs-f-b3::before { - content: 'E' -} - -.gjs-f-b37::before { - content: 'R' -} - -.gjs-f-hero::before { - content: 'T' -} - -.gjs-f-h1p::before { - content: 'y' -} - -.gjs-f-3ba::before { - content: 'u' -} - -.gjs-f-image::before { - content: 'I' -} - -.gjs-f-text::before { - content: 'o' -} - -.gjs-f-quo::before { - content: 'p' -} - -.gjs-f-button::before { - content: 'B' -} - -.gjs-f-divider::before { - content: 'D' -} - -.gjs-invis-invis, -.gjs-clm-tags #gjs-clm-new, -.gjs-no-app { - background-color: transparent; - border: none; - color: inherit -} - -.gjs-no-app { - height: 10px -} - -.gjs-test::btn { - color: '#fff' -} - -.opac50, -.gjs-clm-tags #gjs-clm-close { - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-checker-bg, -.gjs-field-colorp-c, -.checker-bg, -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==") -} - -.gjs-no-user-select, -.gjs-grabbing, -.gjs-grabbing *, -.gjs-nav-comp-name { - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none -} - -.gjs-no-pointer-events, -.gjs-resizer-c, -.gjs-margin-v-el, -.gjs-padding-v-el, -.gjs-fixedmargin-v-el, -.gjs-fixedpadding-v-el { - pointer-events: none -} - -.gjs-bg-main, -.gjs-off-prv, -.gjs-select option, -.gjs-clm-select option, -.gjs-sm-select option, -.gjs-sm-unit option, -.gjs-pn-panel, -.gjs-nv-item .gjs-nv-title-c, -.gjs-field-select option, -.gjs-sm-sector .gjs-sm-colorp-c, -.gjs-clm-tags .gjs-sm-colorp-c, -.gjs-block, -.gjs-mdl-dialog, -#gjs-rte-toolbar, -.sp-container { - background-color: #444 -} - -.gjs-color-main, -.gjs-off-prv, -.gjs-btn-prim, -.gjs-pn-panel, -.gjs-pn-btn, -.gjs-btnt, -.gjs-sm-sector .gjs-sm-field.gjs-sm-composite, -.gjs-clm-tags .gjs-sm-field.gjs-sm-composite, -.gjs-sm-sector .gjs-sm-composite.gjs-clm-field, -.gjs-clm-tags .gjs-sm-composite.gjs-clm-field, -.gjs-sm-sector .gjs-sm-stack #gjs-sm-add, -.gjs-clm-tags .gjs-sm-stack #gjs-sm-add, -.gjs-block-svg-path, -.gjs-mdl-dialog, -#gjs-rte-toolbar .gjs-rte-btn { - color: #ddd; - fill: #ddd -} - -.gjs-color-active, -.gjs-pn-btn.gjs-pn-active, -.gjs-btnt.gjs-pn-active { - color: #f8f8f8; - fill: #f8f8f8 -} - -.gjs-bdrag { - pointer-events: none !important; - position: absolute !important; - z-index: 10 !important; - width: auto -} - -.gjs-drag-helper { - background-color: #3b97e3 !important; - pointer-events: none !important; - position: absolute !important; - z-index: 10 !important; - transform: scale(0.3) !important; - transform-origin: top left !important; - -webkit-transform-origin: top left !important; - margin: 15px !important; - transition: none !important; - outline: none !important -} - -.gjs-grabbing, -.gjs-grabbing * { - cursor: grabbing !important; - cursor: -webkit-grabbing !important -} - -.gjs-grabbing { - overflow: hidden -} - -.gjs-off-prv { - position: relative; - z-index: 10; - padding: 5px; - cursor: pointer -} - -.gjs-editor-cont::-webkit-scrollbar-track { - background: rgba(0, 0, 0, 0.1) -} - -.gjs-editor-cont::-webkit-scrollbar-thumb { - background-color: rgba(255, 255, 255, 0.2) -} - -.gjs-editor-cont::-webkit-scrollbar { - width: 8px -} - -.clear { - clear: both -} - -.no-select, -.gjs-com-no-select, -.gjs-com-no-select img, -.gjs-category-title, -.gjs-sm-sector .gjs-sm-title, -.gjs-clm-tags .gjs-sm-title, -.gjs-block-category .gjs-title, -.gjs-clm-tags #gjs-clm-close, -.gjs-clm-tags #gjs-clm-tag-label { - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none -} - -.gjs-editor { - font-family: Helvetica, sans-serif; - background-color: #444; - position: relative; - box-sizing: border-box; - height: 100% -} - -.gjs-freezed, -.gjs-nv-freezed { - opacity: .5; - filter: alpha(opacity=50); - pointer-events: none -} - -.gjs-btn-prim { - background-color: rgba(255, 255, 255, 0.1); - border-radius: 2px; - padding: 3px 6px; - cursor: pointer; - padding: 0.5em; - border: none -} - -.gjs-btn-prim:active { - background-color: rgba(255, 255, 255, 0.1) -} - -.gjs-input, -.gjs-select { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.1); - border-radius: 2px; - box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.1); - box-sizing: border-box; - color: #ddd; - padding: 0.5em 1em -} - -div.gjs-select { - padding: 0 -} - -.gjs-select select { - padding-right: 10px -} - -.gjs-select:-moz-focusring, -.gjs-select select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 rgba(255, 255, 255, 0.7) -} - -.gjs-input:focus, -.gjs-select:focus, -.gjs-button:focus, -.gjs-btn-prim:focus, -.gjs-select:focus, -.gjs-select select:focus { - outline: none -} - -.gjs-traits-label { - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - font-size: 13px; - font-weight: lighter; - margin-bottom: 5px; - padding: 10px; - text-align: left -} - -.gjs-trt-trait { - display: flex; - justify-content: start; - padding: 5px 10px; - font-size: 0.75em; - font-weight: lighter -} - -.gjs-trt-trait .gjs-label { - width: 30%; - text-align: left -} - -.gjs-trt-trait .gjs-field { - width: 70% -} - -.gjs-cv-canvas { - background-color: rgba(0, 0, 0, 0.15); - box-sizing: border-box; - position: absolute; - width: 85%; - height: 100%; - bottom: 0; - left: 0; - overflow: hidden; - padding-top: 40px; - z-index: 1 -} - -.gjs-cv-canvas>iframe { - height: 100%; - outline: medium none; - width: 100%; - border: none; - margin: 0 auto; - display: block -} - -.gjs-cv-canvas .gjs-ghost { - display: none; - pointer-events: none; - background-color: #5b5b5b; - border: 2px dashed #ccc; - position: absolute; - z-index: 10; - opacity: .55; - filter: alpha(opacity=55) -} - -.gjs-cv-canvas .gjs-highlighter, -.gjs-cv-canvas .gjs-highlighter-sel { - position: absolute; - outline: 1px solid #3b97e3; - pointer-events: none -} - -.gjs-cv-canvas .gjs-highlighter-warning { - outline: 3px solid #ffca6f -} - -.gjs-cv-canvas .gjs-highlighter-sel { - outline: 3px solid #3b97e3 -} - -.gjs-cv-canvas #gjs-tools { - width: 100%; - position: absolute; - top: 0; - left: 0; - outline: none -} - -.gjs-cv-canvas>div:first-child { - background-color: #fff; - position: relative; - height: 100%; - overflow: auto; - width: 100% -} - -.gjs-cv-canvas * { - box-sizing: border-box -} - -.gjs-frame { - transition: width 0.35s ease -} - -.gjs-toolbar { - position: absolute; - background-color: #3b97e3; - color: white; - z-index: 10 -} - -.gjs-toolbar-item { - padding: 5px 7px; - font-size: 0.8rem; - cursor: pointer -} - -.gjs-resizer-c { - position: absolute; - z-index: 9 -} - -.gjs-margin-v-el, -.gjs-padding-v-el, -.gjs-fixedmargin-v-el, -.gjs-fixedpadding-v-el { - opacity: .1; - filter: alpha(opacity=10); - position: absolute; - background-color: yellow -} - -.gjs-fixedmargin-v-el, -.gjs-fixedpadding-v-el { - opacity: .2; - filter: alpha(opacity=20) -} - -.gjs-padding-v-el, -.gjs-fixedpadding-v-el { - background-color: navy -} - -.gjs-resizer-h { - pointer-events: all; - position: absolute; - border: 3px solid #3b97e3; - width: 10px; - height: 10px; - background-color: #fff; - margin: -5px -} - -.gjs-resizer-h-tl { - top: 0; - left: 0; - cursor: nwse-resize -} - -.gjs-resizer-h-tr { - top: 0; - right: 0; - cursor: nesw-resize -} - -.gjs-resizer-h-tc { - top: 0; - margin: -5px auto; - left: 0; - right: 0; - cursor: ns-resize -} - -.gjs-resizer-h-cl { - left: 0; - margin: auto -5px; - top: 0; - bottom: 0; - cursor: ew-resize -} - -.gjs-resizer-h-cr { - margin: auto -5px; - top: 0; - bottom: 0; - right: 0; - cursor: ew-resize -} - -.gjs-resizer-h-bl { - bottom: 0; - left: 0; - cursor: nesw-resize -} - -.gjs-resizer-h-bc { - bottom: 0; - margin: -5px auto; - left: 0; - right: 0; - cursor: ns-resize -} - -.gjs-resizer-h-br { - bottom: 0; - right: 0; - cursor: nwse-resize -} - -.gjs-pn-panel .gjs-resizer-h { - background-color: rgba(0, 0, 0, 0.2); - border: none; - opacity: 0; - transition: opacity 0.25s -} - -.gjs-pn-panel .gjs-resizer-h:hover { - opacity: 1 -} - -.gjs-pn-panel .gjs-resizer-h-tc, -.gjs-pn-panel .gjs-resizer-h-bc { - margin: 0 auto; - width: 100% -} - -.gjs-pn-panel .gjs-resizer-h-cr, -.gjs-pn-panel .gjs-resizer-h-cl { - margin: auto 0; - height: 100% -} - -.gjs-resizing .gjs-highlighter, -.gjs-resizing .gjs-badge { - display: none !important -} - -.gjs-resizing-tl * { - cursor: nwse-resize !important -} - -.gjs-resizing-tr * { - cursor: nesw-resize !important -} - -.gjs-resizing-tc * { - cursor: ns-resize !important -} - -.gjs-resizing-cl * { - cursor: ew-resize !important -} - -.gjs-resizing-cr * { - cursor: ew-resize !important -} - -.gjs-resizing-bl * { - cursor: nesw-resize !important -} - -.gjs-resizing-bc * { - cursor: ns-resize !important -} - -.gjs-resizing-br * { - cursor: nwse-resize !important -} - -.btn-cl, -.gjs-mdl-dialog .gjs-mdl-btn-close, -.gjs-am-assets-cont #gjs-am-close { - opacity: .3; - filter: alpha(opacity=30); - font-size: 25px; - cursor: pointer -} - -.btn-cl:hover, -.gjs-mdl-dialog .gjs-mdl-btn-close:hover, -.gjs-am-assets-cont #gjs-am-close:hover { - opacity: .7; - filter: alpha(opacity=70) -} - -#commands.panel { - min-width: 35px; - height: 100%; - z-index: 3 -} - -#options.panel { - z-index: 4; - bottom: 0 -} - -#views.panel { - width: 16.5%; - font-weight: lighter; - color: #ddd; - right: 0; - top: 0; - z-index: 3; - height: 100%; - padding: 0 -} - -#views.panel .c { - height: 100% -} - -#commands.panel, -#options.panel { - width: 3.5%; - left: 0 -} - -#options .c { - display: table; - margin: 0 auto -} - -body.dragging, -body.dragging * { - cursor: move !important -} - -.dragged { - position: absolute; - opacity: .5; - filter: alpha(opacity=50); - z-index: 2000 -} - -ol.example li.placeholder { - position: relative -} - -ol.example li.placeholder:before { - position: absolute -} - -.no-dots, -.ui-resizable-handle { - border: none !important; - margin: 0 !important; - outline: none !important -} - -.gjs-com-dashed * { - outline: 1px dashed #888; - outline-offset: -2px; - box-sizing: border-box -} - -.gjs-cv-canvas .gjs-comp-selected { - outline: 3px solid #3b97e3 !important -} - -*.gjs-com-hover, -div.gjs-com-hover { - outline: 1px solid #3b97e3 -} - -*.gjs-com-hover-delete, -div.gjs-com-hover-delete { - outline: 2px solid #dd3636; - opacity: .5; - filter: alpha(opacity=50) -} - -*.gjs-com-hover-move, -div.gjs-com-hover-move { - outline: 3px solid #ffca6f -} - -.gjs-com-badge, -.gjs-com-badge-red, -.gjs-badge { - pointer-events: none; - background-color: #3b97e3; - color: #fff; - padding: 2px 5px; - position: absolute; - z-index: 1; - font-size: 12px; - outline: none; - display: none -} - -.gjs-com-badge-red { - background-color: #dd3636 -} - -.gjs-badge-warning { - background-color: #ffca6f -} - -.gjs-placeholder, -.gjs-com-placeholder, -.gjs-nv-placeholder { - position: absolute; - z-index: 10; - pointer-events: none; - display: none -} - -.gjs-placeholder, -.gjs-nv-placeholder { - border-style: solid !important; - border-color: #62c462; - outline: none; - box-sizing: border-box -} - -.gjs-placeholder-int, -.gjs-com-placeholder-int, -.gjs-nv-placeholder-int { - background-color: #62c462; - box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); - height: 100%; - width: 100%; - pointer-events: none; - padding: 1.5px; - outline: none -} - -.gjs-pn-panel { - display: inline-block; - padding: 5px; - position: absolute; - box-sizing: border-box; - text-align: center; - z-index: 3 -} - -.gjs-pn-panel#gjs-pn-commands, -.gjs-pn-panel#gjs-pn-options2 { - width: 85%; - left: 0; - top: 0; - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3) -} - -.gjs-pn-panel#gjs-pn-options { - right: 15%; - top: 0 -} - -.gjs-pn-panel#gjs-pn-options2 { - bottom: 150px; - height: auto -} - -.gjs-pn-panel .icon-undo, -.gjs-pn-panel .icon-redo { - font-size: 20px; - height: 30px; - width: 25px -} - -.gjs-pn-panel#gjs-pn-views { - border-bottom: 2px solid rgba(0, 0, 0, 0.3); - right: 0; - width: 15%; - z-index: 4 -} - -.gjs-pn-panel#gjs-pn-views-container { - height: 100%; - padding: 42px 0 0; - right: 0; - width: 15%; - overflow: auto; - box-shadow: 0 0 5px rgba(0, 0, 0, 0.3) -} - -.gjs-pn-buttons { - align-items: center; - display: flex; - justify-content: center -} - -.gjs-pn-btn, -.gjs-btnt { - box-sizing: border-box; - height: 30px; - width: 30px; - line-height: 21px; - background-color: transparent; - border: none; - font-size: 18px; - margin-right: 5px; - border-radius: 2px; - cursor: pointer; - padding: 5px; - position: relative -} - -.gjs-pn-btn.gjs-pn-active, -.gjs-btnt.gjs-pn-active { - background-color: rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.25) inset -} - -.gjs-pn-btn>.gjs-pn-arrow-rd, -.gjs-btnt>.gjs-pn-arrow-rd { - border-bottom: 5px solid rgba(255, 255, 255, 0.7); - border-left: 5px solid transparent; - bottom: 2px; - right: 2px; - position: absolute -} - -.gjs-pn-btn>.gjs-pn-buttons, -.gjs-btnt>.gjs-pn-buttons { - background-color: #444; - border-radius: 2px; - position: absolute; - display: none; - left: 50px; - top: 0; - padding: 5px -} - -.gjs-pn-btn>.gjs-pn-buttons.gjs-pn-visible, -.gjs-btnt>.gjs-pn-buttons.gjs-pn-visible { - display: block -} - -.gjs-pn-btn>.gjs-pn-buttons>.gjs-pn-arrow-l, -.gjs-btnt>.gjs-pn-buttons>.gjs-pn-arrow-l { - border-bottom: 5px solid transparent; - border-right: 5px solid #444; - border-top: 5px solid transparent; - left: -5px; - top: 15px; - position: absolute -} - -.gjs-nv-selected-parent { - border: 1px solid #ffca6f -} - -.gjs-nv-opac50 { - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-nv-navigator { - position: relative; - height: 100% -} - -.gjs-nv-navigator #gjs-nv-placeholder { - width: 100%; - position: absolute -} - -.gjs-nv-navigator #gjs-nv-placeholder #gjs-nv-plh-int { - height: 100%; - padding: 1px -} - -.gjs-nv-navigator #gjs-nv-placeholder #gjs-nv-plh-int.gjs-nv-insert { - background-color: #62c462 -} - -.gjs-nv-navigator .gjs-nv-item { - font-weight: lighter; - text-align: left; - position: relative; - background-color: rgba(0, 0, 0, 0.1) -} - -.gjs-nv-navigator .gjs-nv-item.gjs-nv-hide { - opacity: .55; - filter: alpha(opacity=55) -} - -.gjs-nv-navigator .gjs-nv-item #gjs-nv-counter { - font-size: 10px; - position: absolute; - right: 27px; - top: 9px -} - -.gjs-nv-navigator .gjs-nv-item #gjs-nv-btn-eye { - height: auto !important; - width: auto !important; - font-size: 13px; - left: 0; - top: 0; - padding: 7px 5px 7px 10px; - position: absolute; - cursor: pointer; - z-index: 1 -} - -.gjs-nv-item #gjs-nv-caret { - font-size: 7px; - width: 8px; - padding: 5px; - cursor: pointer; - opacity: .7; - filter: alpha(opacity=70) -} - -.gjs-nv-item #gjs-nv-caret:hover { - opacity: 1; - filter: alpha(opacity=100) -} - -.gjs-nv-title { - background-color: rgba(0, 0, 0, 0.1); - font-size: 11px; - letter-spacing: 1px; - padding: 3px 10px 5px 30px; - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - border-top: 1px solid rgba(255, 255, 255, 0.1); - display: flex; - align-items: center -} - -.gjs-nv-item .gjs-nv-children .gjs-nv-title { - border-left: 1px solid rgba(5, 5, 5, 0.3) -} - -.gjs-nv-item>.gjs-nv-children { - margin-left: 7px; - display: none -} - -.gjs-nv-item.open>.gjs-nv-children { - display: block -} - -.gjs-nv-item>.gjs-nv-no-chld>#gjs-nv-caret::before { - content: '' -} - -.gjs-nv-no-chld>#gjs-nv-caret { - display: none -} - -.gjs-nv-item>#gjs-nv-move { - position: absolute; - cursor: move; - font-size: 12px; - right: 0; - top: 0; - padding: 7px 10px 7px 5px -} - -.gjs-nv-selected .gjs-nv-title { - background-color: rgba(255, 255, 255, 0.1) -} - -.gjs-nv-nav-item-edit { - visibility: hidden; - padding: 5px; - font-size: 10px; - opacity: .7; - filter: alpha(opacity=70) -} - -.gjs-nv-nav-item-edit:hover { - opacity: 1; - filter: alpha(opacity=100) -} - -.gjs-nv-title-c:hover .gjs-nv-nav-item-edit { - visibility: visible; - cursor: pointer -} - -.gjs-nav-comp-name { - padding: 5px; - box-sizing: content-box -} - -.btn.expand, -.gjs-nv-navigator .gjs-nv-item .expand#gjs-nv-btn-eye { - background-image: none -} - -.gjs-comp-image-placeholder { - display: block; - background-color: #f5f5f5; - color: #777; - height: 50px; - width: 50px; - line-height: 50px; - outline: 3px solid #ffca6f; - outline-offset: -3px; - text-align: center; - font-size: 16.66667px; - cursor: pointer -} - -.gjs-comp-image-placeholder.fa-picture-o::after { - content: "\f03e" -} - -.gjs-label { - line-height: 18px -} - -.gjs-field { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.1); - box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.1); - border-radius: 2px; - box-sizing: border-box; - padding: 0; - position: relative -} - -.gjs-field input, -.gjs-field select, -.gjs-field textarea { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - color: rgba(255, 255, 255, 0.7); - border: none; - background-color: transparent; - box-sizing: border-box; - width: 100%; - position: relative; - padding: 3px 4px 4px; - z-index: 1 -} - -.gjs-field textarea { - resize: vertical -} - -.gjs-field select { - height: 20px; - padding-right: 12px -} - -.gjs-field option { - padding: 3px 0 -} - -.gjs-field .gjs-sel-arrow { - height: 100%; - width: 9px; - position: absolute; - right: 0; - top: 0; - z-index: 0 -} - -.gjs-field .gjs-d-s-arrow { - bottom: 7px; - border-top: 4px solid rgba(255, 255, 255, 0.7); - position: absolute; - height: 0; - width: 0; - border-left: 3px solid transparent; - border-right: 4px solid transparent; - cursor: pointer -} - -.gjs-field-color input { - padding-right: 22px; - box-sizing: border-box -} - -.gjs-field-colorp { - border-left: 1px solid rgba(0, 0, 0, 0.3); - box-sizing: border-box; - height: 100%; - padding: 2px; - position: absolute; - right: 0; - top: 0; - width: 22px; - z-index: 10 -} - -.gjs-field-colorp .gjs-checker-bg, -.gjs-field-colorp .gjs-field-colorp-c { - height: 100%; - width: 100%; - border-radius: 1px -} - -.gjs-field-colorp-c { - height: 100%; - position: relative; - width: 100% -} - -.gjs-field-color-picker { - background-color: #ddd; - cursor: pointer; - height: 100%; - width: 100%; - box-shadow: 0 0 1px rgba(0, 0, 0, 0.3); - border-radius: 1px; - position: absolute; - top: 0 -} - -.gjs-field-radio { - float: left; - overflow: hidden; - padding: 0; - width: auto -} - -.gjs-field-checkbox { - padding: 0; - width: auto !important -} - -.gjs-field-checkbox input { - display: none -} - -.gjs-field-checkbox input:checked+.gjs-chk-icon { - border-color: rgba(255, 255, 255, 0.5); - border-width: 0 2px 2px 0; - border-style: solid -} - -.gjs-radio-item { - float: left; - border-left: 1px solid rgba(0, 0, 0, 0.3) -} - -.gjs-radio-item:first-child { - border: none -} - -.gjs-radio-item:hover { - background: rgba(0, 0, 0, 0.3) -} - -.gjs-radio-item input { - display: none -} - -.gjs-radio-item input:checked+.gjs-radio-item-label { - background-color: rgba(255, 255, 255, 0.2) -} - -.gjs-radio-item-label { - cursor: pointer; - display: block; - padding: 5px -} - -.gjs-field-units { - position: absolute; - right: 0; - top: 0 -} - -.gjs-field-units select { - padding: 0 12px 0 0 -} - -.gjs-field-unit { - position: absolute; - right: 10px; - top: 3px; - font-size: 10px; - color: rgba(255, 255, 255, 0.7); - cursor: pointer -} - -.gjs-field-arrows { - z-index: 10; - cursor: ns-resize; - height: 100%; - position: absolute; - right: 0; - top: 0; - width: 9px -} - -.gjs-field-arrow-u, -.gjs-field-arrow-d { - position: absolute; - height: 0; - width: 0; - border-left: 3px solid transparent; - border-right: 4px solid transparent; - border-top: 4px solid rgba(255, 255, 255, 0.7); - bottom: 4px; - cursor: pointer -} - -.gjs-field-arrow-u { - border-bottom: 4px solid rgba(255, 255, 255, 0.7); - border-top: none; - top: 4px -} - -.gjs-field-select { - padding: 0 -} - -.gjs-field-range { - background-color: transparent; - border: none; - box-shadow: none; - padding: 0 -} - -.gjs-field-range input { - margin: 0 -} - -.gjs-field-range input::-moz-range-thumb { - height: 10px; - width: 10px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 100%; - background-color: #ddd; - cursor: pointer -} - -.gjs-field-range input::-webkit-slider-thumb { - -webkit-appearance: none; - margin-top: -5px; - height: 10px; - width: 10px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 100%; - background-color: #ddd; - cursor: pointer -} - -.gjs-field-range input::-ms-thumb { - height: 10px; - width: 10px; - border: 1px solid rgba(0, 0, 0, 0.3); - border-radius: 100%; - background-color: #ddd; - cursor: pointer -} - -.gjs-field-range input::-moz-range-track { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 1px; - height: 2px -} - -.gjs-field-range input::-webkit-slider-runnable-track { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 1px; - height: 2px -} - -.gjs-field-range input::-ms-track { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.15); - border-radius: 1px; - height: 2px -} - -.gjs-chk-icon { - -ms-transform: rotate(45deg); - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - transform: rotate(45deg); - box-sizing: border-box; - display: block; - height: 14px; - margin: 0 5px; - width: 6px; - cursor: pointer -} - -.gjs-add-trasp { - background: none; - border: none; - color: #ddd; - cursor: pointer; - font-size: 1em; - border-radius: 2px; - opacity: .75; - filter: alpha(opacity=75) -} - -.gjs-add-trasp:hover { - opacity: 1; - filter: alpha(opacity=100) -} - -.gjs-add-trasp:active { - background-color: rgba(0, 0, 0, 0.2) -} - -.gjs-devices-c { - display: flex; - align-items: center; - padding: 4px -} - -.gjs-devices-c .gjs-device-label { - flex-grow: 2; - font-size: 0.7em; - text-align: left; - margin-right: 10px -} - -.gjs-devices-c .gjs-select { - flex-grow: 20 -} - -.gjs-devices-c .gjs-add-trasp { - flex-grow: 1; - margin-left: 5px -} - -.gjs-category-open, -.gjs-sm-sector.gjs-sm-open, -.gjs-sm-open.gjs-clm-tags, -.gjs-block-category.gjs-open { - border-bottom: 1px solid rgba(0, 0, 0, 0.25) -} - -.gjs-category-title, -.gjs-sm-sector .gjs-sm-title, -.gjs-clm-tags .gjs-sm-title, -.gjs-block-category .gjs-title { - font-weight: lighter; - background-color: rgba(0, 0, 0, 0.1); - font-size: 13px; - letter-spacing: 1px; - padding: 9px 10px 9px 20px; - border-bottom: 1px solid rgba(0, 0, 0, 0.25); - text-align: left; - position: relative; - cursor: pointer -} - -.gjs-sm-clear { - font-size: 1rem; - line-height: 0; - cursor: pointer -} - -.gjs-sm-close-btn, -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close { - display: block; - font-size: 23px; - position: absolute; - cursor: pointer; - right: 5px; - top: 0; - opacity: .2; - filter: alpha(opacity=20) -} - -.gjs-sm-close-btn:hover, -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close:hover, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close:hover { - opacity: .7; - filter: alpha(opacity=70) -} - -.gjs-sm-header { - font-size: 11px; - font-weight: lighter; - padding: 10px -} - -.gjs-sm-sector, -.gjs-clm-tags { - clear: both; - font-weight: lighter; - text-align: left -} - -.gjs-sm-sector #gjs-sm-caret, -.gjs-clm-tags #gjs-sm-caret { - padding-right: 5px; - font-size: 11px -} - -.gjs-sm-sector .gjs-sm-label, -.gjs-clm-tags .gjs-sm-label { - margin: 5px 5px 2px 0 -} - -.gjs-sm-sector .gjs-sm-field, -.gjs-clm-tags .gjs-sm-field, -.gjs-sm-sector .gjs-clm-field, -.gjs-clm-tags .gjs-clm-field { - width: 100%; - position: relative -} - -.gjs-sm-sector .gjs-sm-field input, -.gjs-clm-tags .gjs-sm-field input, -.gjs-sm-sector .gjs-clm-field input, -.gjs-clm-tags .gjs-clm-field input, -.gjs-sm-sector .gjs-sm-field select, -.gjs-clm-tags .gjs-sm-field select, -.gjs-sm-sector .gjs-clm-field select, -.gjs-clm-tags .gjs-clm-field select { - background-color: transparent; - color: rgba(255, 255, 255, 0.7); - border: none; - width: 100% -} - -.gjs-sm-sector .gjs-sm-field input, -.gjs-clm-tags .gjs-sm-field input, -.gjs-sm-sector .gjs-clm-field input, -.gjs-clm-tags .gjs-clm-field input { - box-sizing: border-box -} - -.gjs-sm-sector .gjs-sm-field select, -.gjs-clm-tags .gjs-sm-field select, -.gjs-sm-sector .gjs-clm-field select, -.gjs-clm-tags .gjs-clm-field select { - position: relative; - z-index: 1; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none -} - -.gjs-sm-sector .gjs-sm-field select::-ms-expand, -.gjs-clm-tags .gjs-sm-field select::-ms-expand, -.gjs-sm-sector .gjs-clm-field select::-ms-expand, -.gjs-clm-tags .gjs-clm-field select::-ms-expand { - display: none -} - -.gjs-sm-sector .gjs-sm-field select:-moz-focusring, -.gjs-clm-tags .gjs-sm-field select:-moz-focusring, -.gjs-sm-sector .gjs-clm-field select:-moz-focusring, -.gjs-clm-tags .gjs-clm-field select:-moz-focusring { - color: transparent; - text-shadow: 0 0 0 rgba(255, 255, 255, 0.7) -} - -.gjs-sm-sector .gjs-sm-field input:focus, -.gjs-clm-tags .gjs-sm-field input:focus, -.gjs-sm-sector .gjs-clm-field input:focus, -.gjs-clm-tags .gjs-clm-field input:focus, -.gjs-sm-sector .gjs-sm-field select:focus, -.gjs-clm-tags .gjs-sm-field select:focus, -.gjs-sm-sector .gjs-clm-field select:focus, -.gjs-clm-tags .gjs-clm-field select:focus { - outline: none -} - -.gjs-sm-sector .gjs-sm-field .gjs-sm-unit, -.gjs-clm-tags .gjs-sm-field .gjs-sm-unit, -.gjs-sm-sector .gjs-clm-field .gjs-sm-unit, -.gjs-clm-tags .gjs-clm-field .gjs-sm-unit { - position: absolute; - right: 10px; - top: 3px; - font-size: 10px; - color: rgba(255, 255, 255, 0.7); - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-field .gjs-clm-sel-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-clm-sel-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-clm-sel-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-clm-sel-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-int-arrows, -.gjs-clm-tags .gjs-sm-field .gjs-sm-int-arrows, -.gjs-sm-sector .gjs-clm-field .gjs-sm-int-arrows, -.gjs-clm-tags .gjs-clm-field .gjs-sm-int-arrows, -.gjs-sm-sector .gjs-sm-field .gjs-sm-sel-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-sel-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-sel-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-sel-arrow { - height: 100%; - width: 9px; - position: absolute; - right: 0; - top: 0; - cursor: ns-resize -} - -.gjs-sm-sector .gjs-sm-field .gjs-sm-sel-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-sel-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-sel-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-sel-arrow { - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-u-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-u-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-u-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-u-arrow { - position: absolute; - height: 0; - width: 0; - border-left: 3px solid transparent; - border-right: 4px solid transparent; - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-field .gjs-sm-u-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-u-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-u-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-u-arrow { - border-bottom: 4px solid rgba(255, 255, 255, 0.7); - top: 4px -} - -.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow { - border-top: 4px solid rgba(255, 255, 255, 0.7); - bottom: 4px -} - -.gjs-sm-sector .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-clm-d-s-arrow, -.gjs-sm-sector .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-sm-field .gjs-sm-d-s-arrow, -.gjs-sm-sector .gjs-clm-field .gjs-sm-d-s-arrow, -.gjs-clm-tags .gjs-clm-field .gjs-sm-d-s-arrow { - bottom: 7px -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-color, -.gjs-clm-tags .gjs-sm-field.gjs-sm-color, -.gjs-sm-sector .gjs-sm-color.gjs-clm-field, -.gjs-clm-tags .gjs-sm-color.gjs-clm-field, -.gjs-sm-sector .gjs-sm-field.gjs-sm-input, -.gjs-clm-tags .gjs-sm-field.gjs-sm-input, -.gjs-sm-sector .gjs-sm-input.gjs-clm-field, -.gjs-clm-tags .gjs-sm-input.gjs-clm-field, -.gjs-sm-sector .gjs-sm-field.gjs-sm-integer, -.gjs-clm-tags .gjs-sm-field.gjs-sm-integer, -.gjs-sm-sector .gjs-sm-integer.gjs-clm-field, -.gjs-clm-tags .gjs-sm-integer.gjs-clm-field, -.gjs-sm-sector .gjs-sm-field.gjs-sm-list, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field, -.gjs-sm-sector .gjs-sm-field.gjs-sm-select, -.gjs-clm-tags .gjs-sm-field.gjs-sm-select, -.gjs-sm-sector .gjs-sm-select.gjs-clm-field, -.gjs-clm-tags .gjs-sm-select.gjs-clm-field, -.gjs-sm-sector .gjs-clm-select, -.gjs-clm-tags .gjs-clm-select { - background-color: rgba(0, 0, 0, 0.3); - border: 1px solid rgba(0, 0, 0, 0.1); - box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.1); - color: rgba(255, 255, 255, 0.7); - border-radius: 2px; - box-sizing: border-box; - padding: 0 5px -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-composite, -.gjs-clm-tags .gjs-sm-field.gjs-sm-composite, -.gjs-sm-sector .gjs-sm-composite.gjs-clm-field, -.gjs-clm-tags .gjs-sm-composite.gjs-clm-field { - border-radius: 2px -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-select, -.gjs-clm-tags .gjs-sm-field.gjs-sm-select, -.gjs-sm-sector .gjs-sm-select.gjs-clm-field, -.gjs-clm-tags .gjs-sm-select.gjs-clm-field, -.gjs-sm-sector .gjs-clm-select, -.gjs-clm-tags .gjs-clm-select { - padding: 0 -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-select select, -.gjs-clm-tags .gjs-sm-field.gjs-sm-select select, -.gjs-sm-sector .gjs-sm-select.gjs-clm-field select, -.gjs-clm-tags .gjs-sm-select.gjs-clm-field select, -.gjs-sm-sector .gjs-clm-select select, -.gjs-clm-tags .gjs-clm-select select { - height: 20px -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-select option, -.gjs-clm-tags .gjs-sm-field.gjs-sm-select option, -.gjs-sm-sector .gjs-sm-select.gjs-clm-field option, -.gjs-clm-tags .gjs-sm-select.gjs-clm-field option, -.gjs-sm-sector .gjs-clm-select option, -.gjs-clm-tags .gjs-clm-select option { - padding: 3px 0 -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-composite, -.gjs-clm-tags .gjs-sm-field.gjs-sm-composite, -.gjs-sm-sector .gjs-sm-composite.gjs-clm-field, -.gjs-clm-tags .gjs-sm-composite.gjs-clm-field { - background-color: rgba(0, 0, 0, 0.1); - border: 1px solid rgba(0, 0, 0, 0.25) -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field { - width: auto; - padding: 0; - overflow: hidden; - float: left -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list input, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list input, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field input, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field input { - display: none -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list label, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list label, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field label, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field label { - cursor: pointer; - padding: 5px; - display: block -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list .gjs-sm-radio:checked+label, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list .gjs-sm-radio:checked+label, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field .gjs-sm-radio:checked+label, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field .gjs-sm-radio:checked+label { - background-color: rgba(255, 255, 255, 0.2) -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-list .gjs-sm-icon, -.gjs-clm-tags .gjs-sm-field.gjs-sm-list .gjs-sm-icon, -.gjs-sm-sector .gjs-sm-list.gjs-clm-field .gjs-sm-icon, -.gjs-clm-tags .gjs-sm-list.gjs-clm-field .gjs-sm-icon { - background-repeat: no-repeat; - background-position: center; - text-shadow: none; - line-height: normal -} - -.gjs-sm-sector .gjs-sm-field.gjs-sm-integer select, -.gjs-clm-tags .gjs-sm-field.gjs-sm-integer select, -.gjs-sm-sector .gjs-sm-integer.gjs-clm-field select, -.gjs-clm-tags .gjs-sm-integer.gjs-clm-field select { - width: auto; - padding: 0 -} - -.gjs-sm-sector .gjs-sm-list .gjs-sm-el, -.gjs-clm-tags .gjs-sm-list .gjs-sm-el { - float: left; - border-left: 1px solid rgba(0, 0, 0, 0.3) -} - -.gjs-sm-sector .gjs-sm-list .gjs-sm-el:first-child, -.gjs-clm-tags .gjs-sm-list .gjs-sm-el:first-child { - border: none -} - -.gjs-sm-sector .gjs-sm-list .gjs-sm-el:hover, -.gjs-clm-tags .gjs-sm-list .gjs-sm-el:hover { - background: rgba(0, 0, 0, 0.3) -} - -.gjs-sm-sector .gjs-sm-properties, -.gjs-clm-tags .gjs-sm-properties { - font-size: 11px; - padding: 10px 5px -} - -.gjs-sm-sector .gjs-sm-property, -.gjs-clm-tags .gjs-sm-property { - box-sizing: border-box; - float: left; - width: 80%; - margin-bottom: 5px; - padding: 0 5px -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-composite, -.gjs-clm-tags .gjs-sm-property.gjs-sm-composite, -.gjs-sm-sector .gjs-sm-property.gjs-sm-file, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file, -.gjs-sm-sector .gjs-sm-property.gjs-sm-list, -.gjs-clm-tags .gjs-sm-property.gjs-sm-list, -.gjs-sm-sector .gjs-sm-property.gjs-sm-stack, -.gjs-clm-tags .gjs-sm-property.gjs-sm-stack { - width: 100% -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-btn, -.gjs-clm-tags .gjs-sm-property .gjs-sm-btn { - background-color: rgba(33, 33, 33, 0.3); - border-radius: 2px; - box-shadow: 1px 1px 0 rgba(5, 5, 5, 0.3), 1px 1px 0 rgba(43, 43, 43, 0.3) inset; - padding: 5px; - position: relative; - text-align: center; - height: auto; - width: 100%; - cursor: pointer; - color: #ddd; - box-sizing: border-box; - text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.3); - border: none; - opacity: .85; - filter: alpha(opacity=85) -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-btn-c, -.gjs-clm-tags .gjs-sm-property .gjs-sm-btn-c { - box-sizing: border-box; - float: left; - width: 100%; - padding: 0 5px -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box { - background-color: rgba(255, 255, 255, 0.05); - border-radius: 2px; - margin-top: 5px; - position: relative; - overflow: hidden -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box.gjs-sm-show, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box.gjs-sm-show { - border: 1px solid rgba(252, 252, 252, 0.05); - padding: 3px 5px -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-box #gjs-sm-close { - display: block -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file .gjs-sm-show #gjs-sm-preview-file, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file .gjs-sm-show #gjs-sm-preview-file { - height: 50px -} - -.gjs-sm-sector .gjs-sm-property.gjs-sm-file #gjs-sm-preview-file, -.gjs-clm-tags .gjs-sm-property.gjs-sm-file #gjs-sm-preview-file { - background-size: auto 100%; - background-repeat: no-repeat; - background-position: center center -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layers, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layers { - margin-top: 5px; - min-height: 30px -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer { - background-color: rgba(255, 255, 255, 0.055); - border-radius: 2px; - box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2), 1px 1px 0 rgba(255, 255, 255, 0.055) inset; - margin: 2px; - padding: 7px; - position: relative; - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box { - height: 15px; - position: absolute; - right: 27px; - top: 6px; - width: 15px -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-preview, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-preview, -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-preview-box { - border-radius: 2px -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer { - display: block; - font-size: 23px; - position: absolute; - cursor: pointer; - right: 5px; - top: 0; - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer:hover, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer #gjs-sm-close-layer:hover { - opacity: .8; - filter: alpha(opacity=80) -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box #gjs-sm-preview, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer>#gjs-sm-preview-box #gjs-sm-preview { - background-color: white; - height: 100%; - width: 100%; - background-size: cover !important -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-active, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-active { - background-color: rgba(255, 255, 255, 0.12) -} - -.gjs-sm-sector .gjs-sm-property .gjs-sm-layer.gjs-sm-no-preview #gjs-sm-preview-box, -.gjs-clm-tags .gjs-sm-property .gjs-sm-layer.gjs-sm-no-preview #gjs-sm-preview-box { - display: none -} - -.gjs-sm-sector #gjs-sm-text-shadow #gjs-sm-preview::after, -.gjs-clm-tags #gjs-sm-text-shadow #gjs-sm-preview::after { - color: #000; - content: "T"; - font-weight: 900; - line-height: 17px; - padding: 0 4px -} - -.gjs-sm-sector .gjs-sm-stack .gjs-sm-properties, -.gjs-clm-tags .gjs-sm-stack .gjs-sm-properties { - padding-top: 5px -} - -.gjs-sm-sector .gjs-sm-stack #gjs-sm-add, -.gjs-clm-tags .gjs-sm-stack #gjs-sm-add { - background: none; - border: none; - cursor: pointer; - font-size: 22px; - line-height: 10px; - position: absolute; - right: 0; - top: -20px; - opacity: 0.75 -} - -.gjs-sm-sector .gjs-sm-stack #gjs-sm-add:hover, -.gjs-clm-tags .gjs-sm-stack #gjs-sm-add:hover { - opacity: 1; - filter: alpha(opacity=100) -} - -.gjs-sm-sector .gjs-sm-colorp-c, -.gjs-clm-tags .gjs-sm-colorp-c { - height: 100%; - width: 20px; - position: absolute; - right: 0; - top: 0; - box-sizing: border-box; - border-radius: 2px; - padding: 2px -} - -.gjs-sm-sector .gjs-sm-colorp-c .gjs-checker-bg, -.gjs-clm-tags .gjs-sm-colorp-c .gjs-checker-bg, -.gjs-sm-sector .gjs-sm-colorp-c .gjs-field-colorp-c, -.gjs-clm-tags .gjs-sm-colorp-c .gjs-field-colorp-c { - height: 100%; - width: 100%; - border-radius: 1px -} - -.gjs-sm-sector .gjs-sm-color-picker, -.gjs-clm-tags .gjs-sm-color-picker { - background-color: #ddd; - cursor: pointer; - height: 16px; - width: 100%; - margin-top: -16px; - box-shadow: 0 0 1px rgba(0, 0, 0, 0.3); - border-radius: 1px -} - -.gjs-sm-sector .gjs-sm-btn-upload #gjs-sm-upload, -.gjs-clm-tags .gjs-sm-btn-upload #gjs-sm-upload { - left: 0; - top: 0; - position: absolute; - width: 100%; - opacity: 0; - cursor: pointer -} - -.gjs-sm-sector .gjs-sm-btn-upload #gjs-sm-label, -.gjs-clm-tags .gjs-sm-btn-upload #gjs-sm-label { - padding: 2px 0 -} - -.gjs-sm-layer>#gjs-sm-move { - opacity: .7; - filter: alpha(opacity=70); - cursor: move; - font-size: 12px; - float: left; - margin: 0 5px 0 0 -} - -.gjs-sm-layer>#gjs-sm-move:hover { - opacity: .9; - filter: alpha(opacity=90) -} - -.gjs-blocks-c { - display: flex; - flex-wrap: wrap; - justify-content: flex-start -} - -.gjs-block-category { - width: 100% -} - -.gjs-block-category .gjs-caret-icon { - margin-right: 5px -} - -.gjs-block { - -moz-user-select: none; - -khtml-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - -o-user-select: none; - user-select: none; - width: 45%; - padding: 1em; - box-sizing: border-box; - height: 90px; - cursor: all-scroll; - font-size: 11px; - font-weight: lighter; - display: flex; - flex-direction: column; - justify-content: flex-end; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 3px; - margin: 10px 2.5% 5px; - box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.15); - transition: all 0.2s ease 0s; - transition-property: box-shadow, color -} - -.gjs-block:hover { - box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.15) -} - -.gjs-block-svg { - width: 61% -} - -.gjs-block.fa { - font-size: 2em; - line-height: 2em; - padding: 11px -} - -.gjs-block-label { - line-height: normal; - font-size: 0.65rem; - font-weight: normal; - font-family: Helvetica, sans-serif -} - -.gjs-block.gjs-bdrag { - width: auto; - padding: 0 -} - -.gjs-clm-tags { - font-size: 11px; - padding: 10px 5px -} - -.gjs-clm-tags #gjs-clm-label, -.gjs-clm-tags #gjs-clm-sel { - padding: 7px 0; - float: left -} - -.gjs-clm-tags #gjs-clm-sel { - font-style: italic; - margin-left: 5px -} - -.gjs-clm-tags #gjs-clm-status-c { - float: right -} - -.gjs-clm-tags #gjs-clm-tags-field { - clear: both; - padding: 5px; - margin-bottom: 5px -} - -.gjs-clm-tags #gjs-clm-tags-c { - display: inline-block; - vertical-align: top -} - -.gjs-clm-tags #gjs-clm-add-tag { - background-color: rgba(255, 255, 255, 0.15); - border-radius: 2px; - padding: 5px 6px; - box-shadow: 1px 1px 0 rgba(255, 255, 255, 0.2) inset; - border: 1px solid rgba(0, 0, 0, 0.15); - cursor: pointer -} - -.gjs-clm-tags #gjs-clm-new { - color: #ddd; - padding: 5px 6px; - display: none -} - -.gjs-clm-tags .gjs-clm-tag { - background-color: #804f7b; - border: 1px solid #5a3857; - box-shadow: 1px 1px #9c6196 inset; - text-shadow: 1px 1px #6a4166; - display: inline-block; - border-radius: 3px; - margin: 0 3px 3px 0; - padding: 4px; - cursor: default -} - -.gjs-clm-tags #gjs-clm-close { - font-size: 20px; - line-height: 0; - cursor: pointer; - color: rgba(255, 255, 255, 0.9) -} - -.gjs-clm-tags #gjs-clm-close:hover { - opacity: .7; - filter: alpha(opacity=70) -} - -.gjs-clm-tags #gjs-clm-checkbox { - color: rgba(255, 255, 255, 0.9); - vertical-align: middle; - cursor: pointer; - font-size: 9px -} - -.gjs-clm-tags #gjs-clm-tag-label { - cursor: text -} - -.gjs-clm-tags #gjs-clm-tag-label input { - width: auto; - padding: 0 4px -} - -.gjs-mdl-backlayer { - background-color: #000; - position: absolute; - top: 0; - left: 0; - z-index: 1; - width: 100%; - height: 100%; - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-mdl-container { - font-family: Helvetica, sans-serif; - position: absolute; - top: 0; - left: 0; - z-index: 10; - width: 100%; - height: 100% -} - -.gjs-mdl-dialog { - text-shadow: -1px -1px 0 rgba(0, 0, 0, 0.05); - animation: gjs-slide-down 0.215s; - margin: 30px auto 0; - max-width: 850px; - width: 90%; - border-radius: 3px; - font-weight: lighter; - position: relative; - z-index: 2 -} - -.gjs-mdl-dialog .gjs-mdl-btn-close { - position: absolute; - right: 15px; - top: 5px -} - -.gjs-mdl-active .gjs-mdl-dialog { - animation: gjs-mdl-slide-down 0.216s -} - -.gjs-mdl-header, -.gjs-mdl-content { - padding: 10px 15px; - clear: both -} - -.gjs-mdl-header { - position: relative; - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - padding: 15px 15px 7px -} - -.gjs-mdl-content { - border-top: 1px solid rgba(255, 255, 255, 0.1) -} - -.gjs-export-dl::after { - content: ""; - clear: both; - display: block; - margin-bottom: 10px -} - -.gjs-am-assets { - height: 290px; - overflow: auto; - clear: both -} - -.gjs-am-assets-header { - padding: 5px -} - -.gjs-am-add-asset .gjs-am-add-field { - width: 70%; - float: left -} - -.gjs-am-add-asset button { - width: 25%; - float: right -} - -.gjs-am-add-field input { - padding: 6px -} - -.gjs-am-assets-cont { - background-color: rgba(0, 0, 0, 0.1); - border-radius: 3px; - box-sizing: border-box; - padding: 10px; - width: 45%; - float: right; - height: 325px; - overflow: hidden -} - -.gjs-am-assets-cont #gjs-am-preview-cont { - position: relative; - height: 70px; - width: 30%; - background-color: #444; - border-radius: 2px; - float: left; - overflow: hidden -} - -.gjs-am-assets-cont #gjs-am-preview { - position: absolute; - background-position: center center; - background-size: cover; - background-repeat: no-repeat; - height: 100%; - width: 100%; - z-index: 1 -} - -.gjs-am-assets-cont #gjs-am-preview-bg { - position: absolute; - height: 100%; - width: 100%; - opacity: .5; - filter: alpha(opacity=50); - z-index: 0 -} - -.gjs-am-assets-cont .gjs-am-highlight { - background-color: rgba(255, 255, 255, 0.1) -} - -.gjs-am-assets-cont .gjs-am-asset { - border-bottom: 1px solid rgba(0, 0, 0, 0.3); - padding: 5px; - cursor: pointer; - position: relative -} - -.gjs-am-assets-cont .gjs-am-asset:hover #gjs-am-close { - display: block -} - -.gjs-am-assets-cont #gjs-am-close { - position: absolute; - right: 5px; - top: 0; - display: none -} - -.gjs-am-assets-cont #gjs-am-meta { - width: 70%; - float: left; - font-size: 12px; - padding: 5px 0 0 5px; - box-sizing: border-box -} - -.gjs-am-assets-cont #gjs-am-meta>div { - margin-bottom: 5px -} - -.gjs-am-assets-cont #gjs-am-meta #gjs-am-dimensions { - font-size: 10px; - opacity: .5; - filter: alpha(opacity=50) -} - -.gjs-am-file-uploader { - width: 55%; - float: left -} - -.gjs-am-file-uploader>form { - background-color: rgba(0, 0, 0, 0.1); - border: 2px dashed; - border-radius: 3px; - position: relative; - text-align: center; - margin-bottom: 15px -} - -.gjs-am-file-uploader>form.gjs-am-hover { - border: 2px solid #62c462; - color: #75cb75 -} - -.gjs-am-file-uploader>form.gjs-am-disabled { - border-color: red -} - -.gjs-am-file-uploader>form #gjs-am-uploadFile { - opacity: 0; - filter: alpha(opacity=0); - padding: 150px 10px; - width: 100%; - box-sizing: border-box -} - -.gjs-am-file-uploader #gjs-am-title { - position: absolute; - padding: 150px 10px; - width: 100% -} - -.gjs-cm-editor-c { - float: left; - box-sizing: border-box; - width: 50% -} - -.gjs-cm-editor-c .CodeMirror { - height: 450px -} - -.gjs-cm-editor { - font-size: 12px -} - -.gjs-cm-editor#gjs-cm-htmlmixed { - padding-right: 10px; - border-right: 1px solid rgba(0, 0, 0, 0.3) -} - -.gjs-cm-editor#gjs-cm-htmlmixed #gjs-cm-title { - color: #a97d44 -} - -.gjs-cm-editor#gjs-cm-css { - padding-left: 10px; - border-left: 1px solid rgba(255, 255, 255, 0.1) -} - -.gjs-cm-editor#gjs-cm-css #gjs-cm-title { - color: #ddca7e -} - -.gjs-cm-editor #gjs-cm-title { - background-color: rgba(0, 0, 0, 0.3); - font-size: 12px; - padding: 5px 10px 3px; - text-align: right -} - -#gjs-rte-toolbar { - display: none; - border: 1px solid rgba(0, 0, 0, 0.3); - position: absolute; - border-radius: 3px; - z-index: 10 -} - -#gjs-rte-toolbar .gjs-rte-btn { - display: inline-block; - padding: 5px; - min-width: 25px; - border-right: 1px solid rgba(0, 0, 0, 0.3); - text-align: center; - cursor: pointer; - outline: none -} - -#gjs-rte-toolbar .gjs-rte-btn:last-child { - border-right: none -} - -#gjs-rte-toolbar .gjs-rte-btn.btn-info { - background-color: rgba(0, 0, 0, 0.3) -} - -#gjs-rte-toolbar .gjs-rte-btn:hover { - background-color: rgba(255, 255, 255, 0.1) -} - -#gjs-rte-toolbar select { - height: 16px -} - -.sp-hue, -.sp-slider { - cursor: row-resize -} - -.sp-color, -.sp-dragger { - cursor: crosshair -} - -.sp-alpha-inner, -.sp-alpha-handle { - cursor: col-resize -} - -.sp-hue { - left: 90% -} - -.sp-color { - right: 15% -} - -.sp-container { - border: 1px solid rgba(0, 0, 0, 0.3); - box-shadow: 0 0 7px rgba(0, 0, 0, 0.3); - border-radius: 3px -} - -.sp-picker-container { - border: none -} - -.colpick_dark .colpick_color { - outline: 1px solid rgba(0, 0, 0, 0.3) -} - -.sp-cancel, -.sp-cancel:hover { - bottom: -8px; - color: #777 !important; - font-size: 25px; - left: 0; - position: absolute; - text-decoration: none -} - -.sp-alpha-handle { - background-color: #ccc; - border: 1px solid #555; - width: 4px -} - -.sp-color, -.sp-hue { - border: 1px solid #333333 -} - -.sp-slider { - background-color: #ccc; - border: 1px solid #555; - height: 3px; - left: -4px; - width: 22px -} - -.sp-dragger { - background: transparent; - box-shadow: 0 0 0 1px #111 -} - -.sp-button-container { - float: none; - width: 100%; - position: relative; - text-align: right -} - -.sp-container button, -.sp-container button:hover, -.sp-container button:active { - background: rgba(0, 0, 0, 0.3); - border-color: rgba(0, 0, 0, 0.3); - color: #ddd; - text-shadow: none; - box-shadow: none; - padding: 3px 5px -} - -.sp-palette-container { - border: none; - float: none; - margin: 0; - padding: 5px 10px 0 -} - -.sp-palette .sp-thumb-el, -.sp-palette .sp-thumb-el:hover { - border: 1px solid rgba(0, 0, 0, 0.9) -} - -.sp-palette .sp-thumb-el:hover, -.sp-palette .sp-thumb-el.sp-thumb-active { - border-color: rgba(0, 0, 0, 0.9) -} - -.gjs-hidden { - display: none -} - -@keyframes gjs-slide-down { - 0% { - transform: translate(0, -3rem); - opacity: 0 - } - 100% { - transform: translate(0, 0); - opacity: 1 - } -} - -@keyframes gjs-slide-up { - 0% { - transform: translate(0, 0); - opacity: 1 - } - 100% { - transform: translate(0, -3rem); - opacity: 0 - } -} diff --git a/client/static/grapes.min.js b/client/static/grapes.min.js deleted file mode 100644 index 9148b2b..0000000 --- a/client/static/grapes.min.js +++ /dev/null @@ -1,21169 +0,0 @@ -/*! grapesjs - 0.9.8 */ ! function(t, e) { - "object" == typeof exports && "object" == typeof module ? module.exports = e(require("jQuery")) : "function" == typeof define && define.amd ? define(["jQuery"], e) : "object" == typeof exports ? exports.grapesjs = e(require("jQuery")) : t.grapesjs = e(t.jQuery) -}(this, function(t) { - return function(t) { - function e(n) { - if (i[n]) return i[n].exports; - var r = i[n] = { - i: n, - l: !1, - exports: {} - }; - return t[n].call(r.exports, r, r.exports, e), r.l = !0, r.exports - } - var i = {}; - return e.m = t, e.c = i, e.i = function(t) { - return t - }, e.d = function(t, i, n) { - e.o(t, i) || Object.defineProperty(t, i, { - configurable: !1, - enumerable: !0, - get: n - }) - }, e.n = function(t) { - var i = t && t.__esModule ? function() { - return t.default - } : function() { - return t - }; - return e.d(i, "a", i), i - }, e.o = function(t, e) { - return Object.prototype.hasOwnProperty.call(t, e) - }, e.p = "", e(e.s = 133) - }([function(t, e, i) { - (function(n) { - var r, s; - ! function(o) { - var a = "object" == typeof self && self.self === self && self || "object" == typeof n && n.global === n && n; - r = [i(1), i(11), e], void 0 !== (s = function(t, e, i) { - a.Backbone = o(a, i, t, e) - }.apply(e, r)) && (t.exports = s) - }(function(t, e, i, n) { - var r = t.Backbone, - s = Array.prototype.slice; - e.VERSION = "1.3.3", e.$ = n, e.noConflict = function() { - return t.Backbone = r, this - }, e.emulateHTTP = !1, e.emulateJSON = !1; - var o = function(t, e, n) { - switch (t) { - case 1: - return function() { - return i[e](this[n]) - }; - case 2: - return function(t) { - return i[e](this[n], t) - }; - case 3: - return function(t, r) { - return i[e](this[n], l(t, this), r) - }; - case 4: - return function(t, r, s) { - return i[e](this[n], l(t, this), r, s) - }; - default: - return function() { - var t = s.call(arguments); - return t.unshift(this[n]), i[e].apply(i, t) - } - } - }, - a = function(t, e, n) { - i.each(e, function(e, r) { - i[r] && (t.prototype[r] = o(e, r, n)) - }) - }, - l = function(t, e) { - return i.isFunction(t) ? t : i.isObject(t) && !e._isModel(t) ? c(t) : i.isString(t) ? function(e) { - return e.get(t) - } : t - }, - c = function(t) { - var e = i.matches(t); - return function(t) { - return e(t.attributes) - } - }, - u = e.Events = {}, - h = /\s+/, - d = function(t, e, n, r, s) { - var o, a = 0; - if (n && "object" == typeof n) { - void 0 !== r && "context" in s && void 0 === s.context && (s.context = r); - for (o = i.keys(n); a < o.length; a++) e = d(t, e, o[a], n[o[a]], s) - } else if (n && h.test(n)) - for (o = n.split(h); a < o.length; a++) e = t(e, o[a], r, s); - else e = t(e, n, r, s); - return e - }; - u.on = function(t, e, i) { - return f(this, t, e, i) - }; - var f = function(t, e, i, n, r) { - if (t._events = d(p, t._events || {}, e, i, { - context: n, - ctx: t, - listening: r - }), r) { - (t._listeners || (t._listeners = {}))[r.id] = r - } - return t - }; - u.listenTo = function(t, e, n) { - if (!t) return this; - var r = t._listenId || (t._listenId = i.uniqueId("l")), - s = this._listeningTo || (this._listeningTo = {}), - o = s[r]; - if (!o) { - var a = this._listenId || (this._listenId = i.uniqueId("l")); - o = s[r] = { - obj: t, - objId: r, - id: a, - listeningTo: s, - count: 0 - } - } - return f(t, e, n, this, o), this - }; - var p = function(t, e, i, n) { - if (i) { - var r = t[e] || (t[e] = []), - s = n.context, - o = n.ctx, - a = n.listening; - a && a.count++, r.push({ - callback: i, - context: s, - ctx: s || o, - listening: a - }) - } - return t - }; - u.off = function(t, e, i) { - return this._events ? (this._events = d(g, this._events, t, e, { - context: i, - listeners: this._listeners - }), this) : this - }, u.stopListening = function(t, e, n) { - var r = this._listeningTo; - if (!r) return this; - for (var s = t ? [t._listenId] : i.keys(r), o = 0; o < s.length; o++) { - var a = r[s[o]]; - if (!a) break; - a.obj.off(e, n, this) - } - return this - }; - var g = function(t, e, n, r) { - if (t) { - var s, o = 0, - a = r.context, - l = r.listeners; - if (e || n || a) { - for (var c = e ? [e] : i.keys(t); o < c.length; o++) { - e = c[o]; - var u = t[e]; - if (!u) break; - for (var h = [], d = 0; d < u.length; d++) { - var f = u[d]; - n && n !== f.callback && n !== f.callback._callback || a && a !== f.context ? h.push(f) : (s = f.listening) && 0 == --s.count && (delete l[s.id], delete s.listeningTo[s.objId]) - } - h.length ? t[e] = h : delete t[e] - } - return t - } - for (var p = i.keys(l); o < p.length; o++) s = l[p[o]], delete l[s.id], delete s.listeningTo[s.objId] - } - }; - u.once = function(t, e, n) { - var r = d(m, {}, t, e, i.bind(this.off, this)); - return "string" == typeof t && null == n && (e = void 0), this.on(r, e, n) - }, u.listenToOnce = function(t, e, n) { - var r = d(m, {}, e, n, i.bind(this.stopListening, this, t)); - return this.listenTo(t, r) - }; - var m = function(t, e, n, r) { - if (n) { - var s = t[e] = i.once(function() { - r(e, s), n.apply(this, arguments) - }); - s._callback = n - } - return t - }; - u.trigger = function(t) { - if (!this._events) return this; - for (var e = Math.max(0, arguments.length - 1), i = Array(e), n = 0; n < e; n++) i[n] = arguments[n + 1]; - return d(v, this._events, t, void 0, i), this - }; - var v = function(t, e, i, n) { - if (t) { - var r = t[e], - s = t.all; - r && s && (s = s.slice()), r && y(r, n), s && y(s, [e].concat(n)) - } - return t - }, - y = function(t, e) { - var i, n = -1, - r = t.length, - s = e[0], - o = e[1], - a = e[2]; - switch (e.length) { - case 0: - for (; ++n < r;)(i = t[n]).callback.call(i.ctx); - return; - case 1: - for (; ++n < r;)(i = t[n]).callback.call(i.ctx, s); - return; - case 2: - for (; ++n < r;)(i = t[n]).callback.call(i.ctx, s, o); - return; - case 3: - for (; ++n < r;)(i = t[n]).callback.call(i.ctx, s, o, a); - return; - default: - for (; ++n < r;)(i = t[n]).callback.apply(i.ctx, e); - return - } - }; - u.bind = u.on, u.unbind = u.off, i.extend(e, u); - var b = e.Model = function(t, e) { - var n = t || {}; - e || (e = {}), this.cid = i.uniqueId(this.cidPrefix), this.attributes = {}, e.collection && (this.collection = e.collection), e.parse && (n = this.parse(n, e) || {}); - var r = i.result(this, "defaults"); - n = i.defaults(i.extend({}, r, n), r), this.set(n, e), this.changed = {}, this.initialize.apply(this, arguments) - }; - i.extend(b.prototype, u, { - changed: null, - validationError: null, - idAttribute: "id", - cidPrefix: "c", - initialize: function() {}, - toJSON: function(t) { - return i.clone(this.attributes) - }, - sync: function() { - return e.sync.apply(this, arguments) - }, - get: function(t) { - return this.attributes[t] - }, - escape: function(t) { - return i.escape(this.get(t)) - }, - has: function(t) { - return null != this.get(t) - }, - matches: function(t) { - return !!i.iteratee(t, this)(this.attributes) - }, - set: function(t, e, n) { - if (null == t) return this; - var r; - if ("object" == typeof t ? (r = t, n = e) : (r = {})[t] = e, n || (n = {}), !this._validate(r, n)) return !1; - var s = n.unset, - o = n.silent, - a = [], - l = this._changing; - this._changing = !0, l || (this._previousAttributes = i.clone(this.attributes), this.changed = {}); - var c = this.attributes, - u = this.changed, - h = this._previousAttributes; - for (var d in r) e = r[d], i.isEqual(c[d], e) || a.push(d), i.isEqual(h[d], e) ? delete u[d] : u[d] = e, s ? delete c[d] : c[d] = e; - if (this.idAttribute in r && (this.id = this.get(this.idAttribute)), !o) { - a.length && (this._pending = n); - for (var f = 0; f < a.length; f++) this.trigger("change:" + a[f], this, c[a[f]], n) - } - if (l) return this; - if (!o) - for (; this._pending;) n = this._pending, this._pending = !1, this.trigger("change", this, n); - return this._pending = !1, this._changing = !1, this - }, - unset: function(t, e) { - return this.set(t, void 0, i.extend({}, e, { - unset: !0 - })) - }, - clear: function(t) { - var e = {}; - for (var n in this.attributes) e[n] = void 0; - return this.set(e, i.extend({}, t, { - unset: !0 - })) - }, - hasChanged: function(t) { - return null == t ? !i.isEmpty(this.changed) : i.has(this.changed, t) - }, - changedAttributes: function(t) { - if (!t) return !!this.hasChanged() && i.clone(this.changed); - var e = this._changing ? this._previousAttributes : this.attributes, - n = {}; - for (var r in t) { - var s = t[r]; - i.isEqual(e[r], s) || (n[r] = s) - } - return !!i.size(n) && n - }, - previous: function(t) { - return null != t && this._previousAttributes ? this._previousAttributes[t] : null - }, - previousAttributes: function() { - return i.clone(this._previousAttributes) - }, - fetch: function(t) { - t = i.extend({ - parse: !0 - }, t); - var e = this, - n = t.success; - return t.success = function(i) { - var r = t.parse ? e.parse(i, t) : i; - if (!e.set(r, t)) return !1; - n && n.call(t.context, e, i, t), e.trigger("sync", e, i, t) - }, H(this, t), this.sync("read", this, t) - }, - save: function(t, e, n) { - var r; - null == t || "object" == typeof t ? (r = t, n = e) : (r = {})[t] = e, n = i.extend({ - validate: !0, - parse: !0 - }, n); - var s = n.wait; - if (r && !s) { - if (!this.set(r, n)) return !1 - } else if (!this._validate(r, n)) return !1; - var o = this, - a = n.success, - l = this.attributes; - n.success = function(t) { - o.attributes = l; - var e = n.parse ? o.parse(t, n) : t; - if (s && (e = i.extend({}, r, e)), e && !o.set(e, n)) return !1; - a && a.call(n.context, o, t, n), o.trigger("sync", o, t, n) - }, H(this, n), r && s && (this.attributes = i.extend({}, l, r)); - var c = this.isNew() ? "create" : n.patch ? "patch" : "update"; - "patch" !== c || n.attrs || (n.attrs = r); - var u = this.sync(c, this, n); - return this.attributes = l, u - }, - destroy: function(t) { - t = t ? i.clone(t) : {}; - var e = this, - n = t.success, - r = t.wait, - s = function() { - e.stopListening(), e.trigger("destroy", e, e.collection, t) - }; - t.success = function(i) { - r && s(), n && n.call(t.context, e, i, t), e.isNew() || e.trigger("sync", e, i, t) - }; - var o = !1; - return this.isNew() ? i.defer(t.success) : (H(this, t), o = this.sync("delete", this, t)), r || s(), o - }, - url: function() { - var t = i.result(this, "urlRoot") || i.result(this.collection, "url") || F(); - if (this.isNew()) return t; - var e = this.get(this.idAttribute); - return t.replace(/[^\/]$/, "$&/") + encodeURIComponent(e) - }, - parse: function(t, e) { - return t - }, - clone: function() { - return new this.constructor(this.attributes) - }, - isNew: function() { - return !this.has(this.idAttribute) - }, - isValid: function(t) { - return this._validate({}, i.extend({}, t, { - validate: !0 - })) - }, - _validate: function(t, e) { - if (!e.validate || !this.validate) return !0; - t = i.extend({}, this.attributes, t); - var n = this.validationError = this.validate(t, e) || null; - return !n || (this.trigger("invalid", this, n, i.extend(e, { - validationError: n - })), !1) - } - }), a(b, { - keys: 1, - values: 1, - pairs: 1, - invert: 1, - pick: 0, - omit: 0, - chain: 1, - isEmpty: 1 - }, "attributes"); - var x = e.Collection = function(t, e) { - e || (e = {}), e.model && (this.model = e.model), void 0 !== e.comparator && (this.comparator = e.comparator), this._reset(), this.initialize.apply(this, arguments), t && this.reset(t, i.extend({ - silent: !0 - }, e)) - }, - w = { - add: !0, - remove: !0, - merge: !0 - }, - C = { - add: !0, - remove: !1 - }, - k = function(t, e, i) { - i = Math.min(Math.max(i, 0), t.length); - var n, r = Array(t.length - i), - s = e.length; - for (n = 0; n < r.length; n++) r[n] = t[n + i]; - for (n = 0; n < s; n++) t[n + i] = e[n]; - for (n = 0; n < r.length; n++) t[n + s + i] = r[n] - }; - i.extend(x.prototype, u, { - model: b, - initialize: function() {}, - toJSON: function(t) { - return this.map(function(e) { - return e.toJSON(t) - }) - }, - sync: function() { - return e.sync.apply(this, arguments) - }, - add: function(t, e) { - return this.set(t, i.extend({ - merge: !1 - }, e, C)) - }, - remove: function(t, e) { - e = i.extend({}, e); - var n = !i.isArray(t); - t = n ? [t] : t.slice(); - var r = this._removeModels(t, e); - return !e.silent && r.length && (e.changes = { - added: [], - merged: [], - removed: r - }, this.trigger("update", this, e)), n ? r[0] : r - }, - set: function(t, e) { - if (null != t) { - e = i.extend({}, w, e), e.parse && !this._isModel(t) && (t = this.parse(t, e) || []); - var n = !i.isArray(t); - t = n ? [t] : t.slice(); - var r = e.at; - null != r && (r = +r), r > this.length && (r = this.length), r < 0 && (r += this.length + 1); - var s, o, a = [], - l = [], - c = [], - u = [], - h = {}, - d = e.add, - f = e.merge, - p = e.remove, - g = !1, - m = this.comparator && null == r && !1 !== e.sort, - v = i.isString(this.comparator) ? this.comparator : null; - for (o = 0; o < t.length; o++) { - s = t[o]; - var y = this.get(s); - if (y) { - if (f && s !== y) { - var b = this._isModel(s) ? s.attributes : s; - e.parse && (b = y.parse(b, e)), y.set(b, e), c.push(y), m && !g && (g = y.hasChanged(v)) - } - h[y.cid] || (h[y.cid] = !0, a.push(y)), t[o] = y - } else d && (s = t[o] = this._prepareModel(s, e)) && (l.push(s), this._addReference(s, e), h[s.cid] = !0, a.push(s)) - } - if (p) { - for (o = 0; o < this.length; o++) s = this.models[o], h[s.cid] || u.push(s); - u.length && this._removeModels(u, e) - } - var x = !1, - C = !m && d && p; - if (a.length && C ? (x = this.length !== a.length || i.some(this.models, function(t, e) { - return t !== a[e] - }), this.models.length = 0, k(this.models, a, 0), this.length = this.models.length) : l.length && (m && (g = !0), k(this.models, l, null == r ? this.length : r), this.length = this.models.length), g && this.sort({ - silent: !0 - }), !e.silent) { - for (o = 0; o < l.length; o++) null != r && (e.index = r + o), s = l[o], s.trigger("add", s, this, e); - (g || x) && this.trigger("sort", this, e), (l.length || u.length || c.length) && (e.changes = { - added: l, - removed: u, - merged: c - }, this.trigger("update", this, e)) - } - return n ? t[0] : t - } - }, - reset: function(t, e) { - e = e ? i.clone(e) : {}; - for (var n = 0; n < this.models.length; n++) this._removeReference(this.models[n], e); - return e.previousModels = this.models, this._reset(), t = this.add(t, i.extend({ - silent: !0 - }, e)), e.silent || this.trigger("reset", this, e), t - }, - push: function(t, e) { - return this.add(t, i.extend({ - at: this.length - }, e)) - }, - pop: function(t) { - var e = this.at(this.length - 1); - return this.remove(e, t) - }, - unshift: function(t, e) { - return this.add(t, i.extend({ - at: 0 - }, e)) - }, - shift: function(t) { - var e = this.at(0); - return this.remove(e, t) - }, - slice: function() { - return s.apply(this.models, arguments) - }, - get: function(t) { - if (null != t) return this._byId[t] || this._byId[this.modelId(t.attributes || t)] || t.cid && this._byId[t.cid] - }, - has: function(t) { - return null != this.get(t) - }, - at: function(t) { - return t < 0 && (t += this.length), this.models[t] - }, - where: function(t, e) { - return this[e ? "find" : "filter"](t) - }, - findWhere: function(t) { - return this.where(t, !0) - }, - sort: function(t) { - var e = this.comparator; - if (!e) throw new Error("Cannot sort a set without a comparator"); - t || (t = {}); - var n = e.length; - return i.isFunction(e) && (e = i.bind(e, this)), 1 === n || i.isString(e) ? this.models = this.sortBy(e) : this.models.sort(e), t.silent || this.trigger("sort", this, t), this - }, - pluck: function(t) { - return this.map(t + "") - }, - fetch: function(t) { - t = i.extend({ - parse: !0 - }, t); - var e = t.success, - n = this; - return t.success = function(i) { - var r = t.reset ? "reset" : "set"; - n[r](i, t), e && e.call(t.context, n, i, t), n.trigger("sync", n, i, t) - }, H(this, t), this.sync("read", this, t) - }, - create: function(t, e) { - e = e ? i.clone(e) : {}; - var n = e.wait; - if (!(t = this._prepareModel(t, e))) return !1; - n || this.add(t, e); - var r = this, - s = e.success; - return e.success = function(t, e, i) { - n && r.add(t, i), s && s.call(i.context, t, e, i) - }, t.save(null, e), t - }, - parse: function(t, e) { - return t - }, - clone: function() { - return new this.constructor(this.models, { - model: this.model, - comparator: this.comparator - }) - }, - modelId: function(t) { - return t[this.model.prototype.idAttribute || "id"] - }, - _reset: function() { - this.length = 0, this.models = [], this._byId = {} - }, - _prepareModel: function(t, e) { - if (this._isModel(t)) return t.collection || (t.collection = this), t; - e = e ? i.clone(e) : {}, e.collection = this; - var n = new this.model(t, e); - return n.validationError ? (this.trigger("invalid", this, n.validationError, e), !1) : n - }, - _removeModels: function(t, e) { - for (var i = [], n = 0; n < t.length; n++) { - var r = this.get(t[n]); - if (r) { - var s = this.indexOf(r); - this.models.splice(s, 1), this.length--, delete this._byId[r.cid]; - var o = this.modelId(r.attributes); - null != o && delete this._byId[o], e.silent || (e.index = s, r.trigger("remove", r, this, e)), i.push(r), this._removeReference(r, e) - } - } - return i - }, - _isModel: function(t) { - return t instanceof b - }, - _addReference: function(t, e) { - this._byId[t.cid] = t; - var i = this.modelId(t.attributes); - null != i && (this._byId[i] = t), t.on("all", this._onModelEvent, this) - }, - _removeReference: function(t, e) { - delete this._byId[t.cid]; - var i = this.modelId(t.attributes); - null != i && delete this._byId[i], this === t.collection && delete t.collection, t.off("all", this._onModelEvent, this) - }, - _onModelEvent: function(t, e, i, n) { - if (e) { - if (("add" === t || "remove" === t) && i !== this) return; - if ("destroy" === t && this.remove(e, n), "change" === t) { - var r = this.modelId(e.previousAttributes()), - s = this.modelId(e.attributes); - r !== s && (null != r && delete this._byId[r], null != s && (this._byId[s] = e)) - } - } - this.trigger.apply(this, arguments) - } - }), a(x, { - forEach: 3, - each: 3, - map: 3, - collect: 3, - reduce: 0, - foldl: 0, - inject: 0, - reduceRight: 0, - foldr: 0, - find: 3, - detect: 3, - filter: 3, - select: 3, - reject: 3, - every: 3, - all: 3, - some: 3, - any: 3, - include: 3, - includes: 3, - contains: 3, - invoke: 0, - max: 3, - min: 3, - toArray: 1, - size: 1, - first: 3, - head: 3, - take: 3, - initial: 3, - rest: 3, - tail: 3, - drop: 3, - last: 3, - without: 0, - difference: 0, - indexOf: 3, - shuffle: 1, - lastIndexOf: 3, - isEmpty: 1, - chain: 1, - sample: 3, - partition: 3, - groupBy: 3, - countBy: 3, - sortBy: 3, - indexBy: 3, - findIndex: 3, - findLastIndex: 3 - }, "models"); - var S = e.View = function(t) { - this.cid = i.uniqueId("view"), i.extend(this, i.pick(t, M)), this._ensureElement(), this.initialize.apply(this, arguments) - }, - T = /^(\S+)\s*(.*)$/, - M = ["model", "collection", "el", "id", "attributes", "className", "tagName", "events"]; - i.extend(S.prototype, u, { - tagName: "div", - $: function(t) { - return this.$el.find(t) - }, - initialize: function() {}, - render: function() { - return this - }, - remove: function() { - return this._removeElement(), this.stopListening(), this - }, - _removeElement: function() { - this.$el.remove() - }, - setElement: function(t) { - return this.undelegateEvents(), this._setElement(t), this.delegateEvents(), this - }, - _setElement: function(t) { - this.$el = t instanceof e.$ ? t : e.$(t), this.el = this.$el[0] - }, - delegateEvents: function(t) { - if (t || (t = i.result(this, "events")), !t) return this; - this.undelegateEvents(); - for (var e in t) { - var n = t[e]; - if (i.isFunction(n) || (n = this[n]), n) { - var r = e.match(T); - this.delegate(r[1], r[2], i.bind(n, this)) - } - } - return this - }, - delegate: function(t, e, i) { - return this.$el.on(t + ".delegateEvents" + this.cid, e, i), this - }, - undelegateEvents: function() { - return this.$el && this.$el.off(".delegateEvents" + this.cid), this - }, - undelegate: function(t, e, i) { - return this.$el.off(t + ".delegateEvents" + this.cid, e, i), this - }, - _createElement: function(t) { - return document.createElement(t) - }, - _ensureElement: function() { - if (this.el) this.setElement(i.result(this, "el")); - else { - var t = i.extend({}, i.result(this, "attributes")); - this.id && (t.id = i.result(this, "id")), this.className && (t.class = i.result(this, "className")), this.setElement(this._createElement(i.result(this, "tagName"))), this._setAttributes(t) - } - }, - _setAttributes: function(t) { - this.$el.attr(t) - } - }), e.sync = function(t, n, r) { - var s = E[t]; - i.defaults(r || (r = {}), { - emulateHTTP: e.emulateHTTP, - emulateJSON: e.emulateJSON - }); - var o = { - type: s, - dataType: "json" - }; - if (r.url || (o.url = i.result(n, "url") || F()), null != r.data || !n || "create" !== t && "update" !== t && "patch" !== t || (o.contentType = "application/json", o.data = JSON.stringify(r.attrs || n.toJSON(r))), r.emulateJSON && (o.contentType = "application/x-www-form-urlencoded", o.data = o.data ? { - model: o.data - } : {}), r.emulateHTTP && ("PUT" === s || "DELETE" === s || "PATCH" === s)) { - o.type = "POST", r.emulateJSON && (o.data._method = s); - var a = r.beforeSend; - r.beforeSend = function(t) { - if (t.setRequestHeader("X-HTTP-Method-Override", s), a) return a.apply(this, arguments) - } - } - "GET" === o.type || r.emulateJSON || (o.processData = !1); - var l = r.error; - r.error = function(t, e, i) { - r.textStatus = e, r.errorThrown = i, l && l.call(r.context, t, e, i) - }; - var c = r.xhr = e.ajax(i.extend(o, r)); - return n.trigger("request", n, c, r), c - }; - var E = { - create: "POST", - update: "PUT", - patch: "PATCH", - delete: "DELETE", - read: "GET" - }; - e.ajax = function() { - return e.$.ajax.apply(e.$, arguments) - }; - var P = e.Router = function(t) { - t || (t = {}), t.routes && (this.routes = t.routes), this._bindRoutes(), this.initialize.apply(this, arguments) - }, - $ = /\((.*?)\)/g, - L = /(\(\?)?:\w+/g, - A = /\*\w+/g, - N = /[\-{}\[\]+?.,\\\^$|#\s]/g; - i.extend(P.prototype, u, { - initialize: function() {}, - route: function(t, n, r) { - i.isRegExp(t) || (t = this._routeToRegExp(t)), i.isFunction(n) && (r = n, n = ""), r || (r = this[n]); - var s = this; - return e.history.route(t, function(i) { - var o = s._extractParameters(t, i); - !1 !== s.execute(r, o, n) && (s.trigger.apply(s, ["route:" + n].concat(o)), s.trigger("route", n, o), e.history.trigger("route", s, n, o)) - }), this - }, - execute: function(t, e, i) { - t && t.apply(this, e) - }, - navigate: function(t, i) { - return e.history.navigate(t, i), this - }, - _bindRoutes: function() { - if (this.routes) { - this.routes = i.result(this, "routes"); - for (var t, e = i.keys(this.routes); null != (t = e.pop());) this.route(t, this.routes[t]) - } - }, - _routeToRegExp: function(t) { - return t = t.replace(N, "\\$&").replace($, "(?:$1)?").replace(L, function(t, e) { - return e ? t : "([^/?]+)" - }).replace(A, "([^?]*?)"), new RegExp("^" + t + "(?:\\?([\\s\\S]*))?$") - }, - _extractParameters: function(t, e) { - var n = t.exec(e).slice(1); - return i.map(n, function(t, e) { - return e === n.length - 1 ? t || null : t ? decodeURIComponent(t) : null - }) - } - }); - var O = e.History = function() { - this.handlers = [], this.checkUrl = i.bind(this.checkUrl, this), "undefined" != typeof window && (this.location = window.location, this.history = window.history) - }, - I = /^[#\/]|\s+$/g, - D = /^\/+|\/+$/g, - _ = /#.*$/; - O.started = !1, i.extend(O.prototype, u, { - interval: 50, - atRoot: function() { - return this.location.pathname.replace(/[^\/]$/, "$&/") === this.root && !this.getSearch() - }, - matchRoot: function() { - return this.decodeFragment(this.location.pathname).slice(0, this.root.length - 1) + "/" === this.root - }, - decodeFragment: function(t) { - return decodeURI(t.replace(/%25/g, "%2525")) - }, - getSearch: function() { - var t = this.location.href.replace(/#.*/, "").match(/\?.+/); - return t ? t[0] : "" - }, - getHash: function(t) { - var e = (t || this).location.href.match(/#(.*)$/); - return e ? e[1] : "" - }, - getPath: function() { - var t = this.decodeFragment(this.location.pathname + this.getSearch()).slice(this.root.length - 1); - return "/" === t.charAt(0) ? t.slice(1) : t - }, - getFragment: function(t) { - return null == t && (t = this._usePushState || !this._wantsHashChange ? this.getPath() : this.getHash()), t.replace(I, "") - }, - start: function(t) { - if (O.started) throw new Error("Backbone.history has already been started"); - if (O.started = !0, this.options = i.extend({ - root: "/" - }, this.options, t), this.root = this.options.root, this._wantsHashChange = !1 !== this.options.hashChange, this._hasHashChange = "onhashchange" in window && (void 0 === document.documentMode || document.documentMode > 7), this._useHashChange = this._wantsHashChange && this._hasHashChange, this._wantsPushState = !!this.options.pushState, this._hasPushState = !(!this.history || !this.history.pushState), this._usePushState = this._wantsPushState && this._hasPushState, this.fragment = this.getFragment(), this.root = ("/" + this.root + "/").replace(D, "/"), this._wantsHashChange && this._wantsPushState) { - if (!this._hasPushState && !this.atRoot()) { - var e = this.root.slice(0, -1) || "/"; - return this.location.replace(e + "#" + this.getPath()), !0 - } - this._hasPushState && this.atRoot() && this.navigate(this.getHash(), { - replace: !0 - }) - } - if (!this._hasHashChange && this._wantsHashChange && !this._usePushState) { - this.iframe = document.createElement("iframe"), this.iframe.src = "javascript:0", this.iframe.style.display = "none", this.iframe.tabIndex = -1; - var n = document.body, - r = n.insertBefore(this.iframe, n.firstChild).contentWindow; - r.document.open(), r.document.close(), r.location.hash = "#" + this.fragment - } - var s = window.addEventListener || function(t, e) { - return attachEvent("on" + t, e) - }; - if (this._usePushState ? s("popstate", this.checkUrl, !1) : this._useHashChange && !this.iframe ? s("hashchange", this.checkUrl, !1) : this._wantsHashChange && (this._checkUrlInterval = setInterval(this.checkUrl, this.interval)), !this.options.silent) return this.loadUrl() - }, - stop: function() { - var t = window.removeEventListener || function(t, e) { - return detachEvent("on" + t, e) - }; - this._usePushState ? t("popstate", this.checkUrl, !1) : this._useHashChange && !this.iframe && t("hashchange", this.checkUrl, !1), this.iframe && (document.body.removeChild(this.iframe), this.iframe = null), this._checkUrlInterval && clearInterval(this._checkUrlInterval), O.started = !1 - }, - route: function(t, e) { - this.handlers.unshift({ - route: t, - callback: e - }) - }, - checkUrl: function(t) { - var e = this.getFragment(); - if (e === this.fragment && this.iframe && (e = this.getHash(this.iframe.contentWindow)), e === this.fragment) return !1; - this.iframe && this.navigate(e), this.loadUrl() - }, - loadUrl: function(t) { - return !!this.matchRoot() && (t = this.fragment = this.getFragment(t), i.some(this.handlers, function(e) { - if (e.route.test(t)) return e.callback(t), !0 - })) - }, - navigate: function(t, e) { - if (!O.started) return !1; - e && !0 !== e || (e = { - trigger: !!e - }), t = this.getFragment(t || ""); - var i = this.root; - "" !== t && "?" !== t.charAt(0) || (i = i.slice(0, -1) || "/"); - var n = i + t; - if (t = this.decodeFragment(t.replace(_, "")), this.fragment !== t) { - if (this.fragment = t, this._usePushState) this.history[e.replace ? "replaceState" : "pushState"]({}, document.title, n); - else { - if (!this._wantsHashChange) return this.location.assign(n); - if (this._updateHash(this.location, t, e.replace), this.iframe && t !== this.getHash(this.iframe.contentWindow)) { - var r = this.iframe.contentWindow; - e.replace || (r.document.open(), r.document.close()), this._updateHash(r.location, t, e.replace) - } - } - return e.trigger ? this.loadUrl(t) : void 0 - } - }, - _updateHash: function(t, e, i) { - if (i) { - var n = t.href.replace(/(javascript:|#).*$/, ""); - t.replace(n + "#" + e) - } else t.hash = "#" + e - } - }), e.history = new O; - var z = function(t, e) { - var n, r = this; - return n = t && i.has(t, "constructor") ? t.constructor : function() { - return r.apply(this, arguments) - }, i.extend(n, r, e), n.prototype = i.create(r.prototype, t), n.prototype.constructor = n, n.__super__ = r.prototype, n - }; - b.extend = x.extend = P.extend = S.extend = O.extend = z; - var F = function() { - throw new Error('A "url" property or function must be specified') - }, - H = function(t, e) { - var i = e.error; - e.error = function(n) { - i && i.call(e.context, t, n, e), t.trigger("error", t, n, e) - } - }; - return e - }) - }).call(e, i(42)) - }, function(t, e, i) { - var n, r; - (function() { - function i(t) { - function e(e, i, n, r, s, o) { - for (; s >= 0 && s < o; s += t) { - var a = r ? r[s] : s; - n = i(n, e[a], a, e) - } - return n - } - return function(i, n, r, s) { - n = k(n, s, 4); - var o = !L(i) && C.keys(i), - a = (o || i).length, - l = t > 0 ? 0 : a - 1; - return arguments.length < 3 && (r = i[o ? o[l] : l], l += t), e(i, n, r, o, l, a) - } - } - - function s(t) { - return function(e, i, n) { - i = S(i, n); - for (var r = $(e), s = t > 0 ? 0 : r - 1; s >= 0 && s < r; s += t) - if (i(e[s], s, e)) return s; - return -1 - } - } - - function o(t, e, i) { - return function(n, r, s) { - var o = 0, - a = $(n); - if ("number" == typeof s) t > 0 ? o = s >= 0 ? s : Math.max(s + a, o) : a = s >= 0 ? Math.min(s + 1, a) : s + a + 1; - else if (i && s && a) return s = i(n, r), n[s] === r ? s : -1; - if (r !== r) return s = e(p.call(n, o, a), C.isNaN), s >= 0 ? s + o : -1; - for (s = t > 0 ? o : a - 1; s >= 0 && s < a; s += t) - if (n[s] === r) return s; - return -1 - } - } - - function a(t, e) { - var i = D.length, - n = t.constructor, - r = C.isFunction(n) && n.prototype || h, - s = "constructor"; - for (C.has(t, s) && !C.contains(e, s) && e.push(s); i--;)(s = D[i]) in t && t[s] !== r[s] && !C.contains(e, s) && e.push(s) - } - var l = this, - c = l._, - u = Array.prototype, - h = Object.prototype, - d = Function.prototype, - f = u.push, - p = u.slice, - g = h.toString, - m = h.hasOwnProperty, - v = Array.isArray, - y = Object.keys, - b = d.bind, - x = Object.create, - w = function() {}, - C = function(t) { - return t instanceof C ? t : this instanceof C ? void(this._wrapped = t) : new C(t) - }; - void 0 !== t && t.exports && (e = t.exports = C), e._ = C, C.VERSION = "1.8.3"; - var k = function(t, e, i) { - if (void 0 === e) return t; - switch (null == i ? 3 : i) { - case 1: - return function(i) { - return t.call(e, i) - }; - case 2: - return function(i, n) { - return t.call(e, i, n) - }; - case 3: - return function(i, n, r) { - return t.call(e, i, n, r) - }; - case 4: - return function(i, n, r, s) { - return t.call(e, i, n, r, s) - } - } - return function() { - return t.apply(e, arguments) - } - }, - S = function(t, e, i) { - return null == t ? C.identity : C.isFunction(t) ? k(t, e, i) : C.isObject(t) ? C.matcher(t) : C.property(t) - }; - C.iteratee = function(t, e) { - return S(t, e, 1 / 0) - }; - var T = function(t, e) { - return function(i) { - var n = arguments.length; - if (n < 2 || null == i) return i; - for (var r = 1; r < n; r++) - for (var s = arguments[r], o = t(s), a = o.length, l = 0; l < a; l++) { - var c = o[l]; - e && void 0 !== i[c] || (i[c] = s[c]) - } - return i - } - }, - M = function(t) { - if (!C.isObject(t)) return {}; - if (x) return x(t); - w.prototype = t; - var e = new w; - return w.prototype = null, e - }, - E = function(t) { - return function(e) { - return null == e ? void 0 : e[t] - } - }, - P = Math.pow(2, 53) - 1, - $ = E("length"), - L = function(t) { - var e = $(t); - return "number" == typeof e && e >= 0 && e <= P - }; - C.each = C.forEach = function(t, e, i) { - e = k(e, i); - var n, r; - if (L(t)) - for (n = 0, r = t.length; n < r; n++) e(t[n], n, t); - else { - var s = C.keys(t); - for (n = 0, r = s.length; n < r; n++) e(t[s[n]], s[n], t) - } - return t - }, C.map = C.collect = function(t, e, i) { - e = S(e, i); - for (var n = !L(t) && C.keys(t), r = (n || t).length, s = Array(r), o = 0; o < r; o++) { - var a = n ? n[o] : o; - s[o] = e(t[a], a, t) - } - return s - }, C.reduce = C.foldl = C.inject = i(1), C.reduceRight = C.foldr = i(-1), C.find = C.detect = function(t, e, i) { - var n; - if (void 0 !== (n = L(t) ? C.findIndex(t, e, i) : C.findKey(t, e, i)) && -1 !== n) return t[n] - }, C.filter = C.select = function(t, e, i) { - var n = []; - return e = S(e, i), C.each(t, function(t, i, r) { - e(t, i, r) && n.push(t) - }), n - }, C.reject = function(t, e, i) { - return C.filter(t, C.negate(S(e)), i) - }, C.every = C.all = function(t, e, i) { - e = S(e, i); - for (var n = !L(t) && C.keys(t), r = (n || t).length, s = 0; s < r; s++) { - var o = n ? n[s] : s; - if (!e(t[o], o, t)) return !1 - } - return !0 - }, C.some = C.any = function(t, e, i) { - e = S(e, i); - for (var n = !L(t) && C.keys(t), r = (n || t).length, s = 0; s < r; s++) { - var o = n ? n[s] : s; - if (e(t[o], o, t)) return !0 - } - return !1 - }, C.contains = C.includes = C.include = function(t, e, i, n) { - return L(t) || (t = C.values(t)), ("number" != typeof i || n) && (i = 0), C.indexOf(t, e, i) >= 0 - }, C.invoke = function(t, e) { - var i = p.call(arguments, 2), - n = C.isFunction(e); - return C.map(t, function(t) { - var r = n ? e : t[e]; - return null == r ? r : r.apply(t, i) - }) - }, C.pluck = function(t, e) { - return C.map(t, C.property(e)) - }, C.where = function(t, e) { - return C.filter(t, C.matcher(e)) - }, C.findWhere = function(t, e) { - return C.find(t, C.matcher(e)) - }, C.max = function(t, e, i) { - var n, r, s = -1 / 0, - o = -1 / 0; - if (null == e && null != t) { - t = L(t) ? t : C.values(t); - for (var a = 0, l = t.length; a < l; a++)(n = t[a]) > s && (s = n) - } else e = S(e, i), C.each(t, function(t, i, n) { - ((r = e(t, i, n)) > o || r === -1 / 0 && s === -1 / 0) && (s = t, o = r) - }); - return s - }, C.min = function(t, e, i) { - var n, r, s = 1 / 0, - o = 1 / 0; - if (null == e && null != t) { - t = L(t) ? t : C.values(t); - for (var a = 0, l = t.length; a < l; a++)(n = t[a]) < s && (s = n) - } else e = S(e, i), C.each(t, function(t, i, n) { - ((r = e(t, i, n)) < o || r === 1 / 0 && s === 1 / 0) && (s = t, o = r) - }); - return s - }, C.shuffle = function(t) { - for (var e, i = L(t) ? t : C.values(t), n = i.length, r = Array(n), s = 0; s < n; s++) e = C.random(0, s), e !== s && (r[s] = r[e]), r[e] = i[s]; - return r - }, C.sample = function(t, e, i) { - return null == e || i ? (L(t) || (t = C.values(t)), t[C.random(t.length - 1)]) : C.shuffle(t).slice(0, Math.max(0, e)) - }, C.sortBy = function(t, e, i) { - return e = S(e, i), C.pluck(C.map(t, function(t, i, n) { - return { - value: t, - index: i, - criteria: e(t, i, n) - } - }).sort(function(t, e) { - var i = t.criteria, - n = e.criteria; - if (i !== n) { - if (i > n || void 0 === i) return 1; - if (i < n || void 0 === n) return -1 - } - return t.index - e.index - }), "value") - }; - var A = function(t) { - return function(e, i, n) { - var r = {}; - return i = S(i, n), C.each(e, function(n, s) { - var o = i(n, s, e); - t(r, n, o) - }), r - } - }; - C.groupBy = A(function(t, e, i) { - C.has(t, i) ? t[i].push(e) : t[i] = [e] - }), C.indexBy = A(function(t, e, i) { - t[i] = e - }), C.countBy = A(function(t, e, i) { - C.has(t, i) ? t[i]++ : t[i] = 1 - }), C.toArray = function(t) { - return t ? C.isArray(t) ? p.call(t) : L(t) ? C.map(t, C.identity) : C.values(t) : [] - }, C.size = function(t) { - return null == t ? 0 : L(t) ? t.length : C.keys(t).length - }, C.partition = function(t, e, i) { - e = S(e, i); - var n = [], - r = []; - return C.each(t, function(t, i, s) { - (e(t, i, s) ? n : r).push(t) - }), [n, r] - }, C.first = C.head = C.take = function(t, e, i) { - if (null != t) return null == e || i ? t[0] : C.initial(t, t.length - e) - }, C.initial = function(t, e, i) { - return p.call(t, 0, Math.max(0, t.length - (null == e || i ? 1 : e))) - }, C.last = function(t, e, i) { - if (null != t) return null == e || i ? t[t.length - 1] : C.rest(t, Math.max(0, t.length - e)) - }, C.rest = C.tail = C.drop = function(t, e, i) { - return p.call(t, null == e || i ? 1 : e) - }, C.compact = function(t) { - return C.filter(t, C.identity) - }; - var N = function(t, e, i, n) { - for (var r = [], s = 0, o = n || 0, a = $(t); o < a; o++) { - var l = t[o]; - if (L(l) && (C.isArray(l) || C.isArguments(l))) { - e || (l = N(l, e, i)); - var c = 0, - u = l.length; - for (r.length += u; c < u;) r[s++] = l[c++] - } else i || (r[s++] = l) - } - return r - }; - C.flatten = function(t, e) { - return N(t, e, !1) - }, C.without = function(t) { - return C.difference(t, p.call(arguments, 1)) - }, C.uniq = C.unique = function(t, e, i, n) { - C.isBoolean(e) || (n = i, i = e, e = !1), null != i && (i = S(i, n)); - for (var r = [], s = [], o = 0, a = $(t); o < a; o++) { - var l = t[o], - c = i ? i(l, o, t) : l; - e ? (o && s === c || r.push(l), s = c) : i ? C.contains(s, c) || (s.push(c), r.push(l)) : C.contains(r, l) || r.push(l) - } - return r - }, C.union = function() { - return C.uniq(N(arguments, !0, !0)) - }, C.intersection = function(t) { - for (var e = [], i = arguments.length, n = 0, r = $(t); n < r; n++) { - var s = t[n]; - if (!C.contains(e, s)) { - for (var o = 1; o < i && C.contains(arguments[o], s); o++); - o === i && e.push(s) - } - } - return e - }, C.difference = function(t) { - var e = N(arguments, !0, !0, 1); - return C.filter(t, function(t) { - return !C.contains(e, t) - }) - }, C.zip = function() { - return C.unzip(arguments) - }, C.unzip = function(t) { - for (var e = t && C.max(t, $).length || 0, i = Array(e), n = 0; n < e; n++) i[n] = C.pluck(t, n); - return i - }, C.object = function(t, e) { - for (var i = {}, n = 0, r = $(t); n < r; n++) e ? i[t[n]] = e[n] : i[t[n][0]] = t[n][1]; - return i - }, C.findIndex = s(1), C.findLastIndex = s(-1), C.sortedIndex = function(t, e, i, n) { - i = S(i, n, 1); - for (var r = i(e), s = 0, o = $(t); s < o;) { - var a = Math.floor((s + o) / 2); - i(t[a]) < r ? s = a + 1 : o = a - } - return s - }, C.indexOf = o(1, C.findIndex, C.sortedIndex), C.lastIndexOf = o(-1, C.findLastIndex), C.range = function(t, e, i) { - null == e && (e = t || 0, t = 0), i = i || 1; - for (var n = Math.max(Math.ceil((e - t) / i), 0), r = Array(n), s = 0; s < n; s++, t += i) r[s] = t; - return r - }; - var O = function(t, e, i, n, r) { - if (!(n instanceof e)) return t.apply(i, r); - var s = M(t.prototype), - o = t.apply(s, r); - return C.isObject(o) ? o : s - }; - C.bind = function(t, e) { - if (b && t.bind === b) return b.apply(t, p.call(arguments, 1)); - if (!C.isFunction(t)) throw new TypeError("Bind must be called on a function"); - var i = p.call(arguments, 2), - n = function() { - return O(t, n, e, this, i.concat(p.call(arguments))) - }; - return n - }, C.partial = function(t) { - var e = p.call(arguments, 1), - i = function() { - for (var n = 0, r = e.length, s = Array(r), o = 0; o < r; o++) s[o] = e[o] === C ? arguments[n++] : e[o]; - for (; n < arguments.length;) s.push(arguments[n++]); - return O(t, i, this, this, s) - }; - return i - }, C.bindAll = function(t) { - var e, i, n = arguments.length; - if (n <= 1) throw new Error("bindAll must be passed function names"); - for (e = 1; e < n; e++) i = arguments[e], t[i] = C.bind(t[i], t); - return t - }, C.memoize = function(t, e) { - var i = function(n) { - var r = i.cache, - s = "" + (e ? e.apply(this, arguments) : n); - return C.has(r, s) || (r[s] = t.apply(this, arguments)), r[s] - }; - return i.cache = {}, i - }, C.delay = function(t, e) { - var i = p.call(arguments, 2); - return setTimeout(function() { - return t.apply(null, i) - }, e) - }, C.defer = C.partial(C.delay, C, 1), C.throttle = function(t, e, i) { - var n, r, s, o = null, - a = 0; - i || (i = {}); - var l = function() { - a = !1 === i.leading ? 0 : C.now(), o = null, s = t.apply(n, r), o || (n = r = null) - }; - return function() { - var c = C.now(); - a || !1 !== i.leading || (a = c); - var u = e - (c - a); - return n = this, r = arguments, u <= 0 || u > e ? (o && (clearTimeout(o), o = null), a = c, s = t.apply(n, r), o || (n = r = null)) : o || !1 === i.trailing || (o = setTimeout(l, u)), s - } - }, C.debounce = function(t, e, i) { - var n, r, s, o, a, l = function() { - var c = C.now() - o; - c < e && c >= 0 ? n = setTimeout(l, e - c) : (n = null, i || (a = t.apply(s, r), n || (s = r = null))) - }; - return function() { - s = this, r = arguments, o = C.now(); - var c = i && !n; - return n || (n = setTimeout(l, e)), c && (a = t.apply(s, r), s = r = null), a - } - }, C.wrap = function(t, e) { - return C.partial(e, t) - }, C.negate = function(t) { - return function() { - return !t.apply(this, arguments) - } - }, C.compose = function() { - var t = arguments, - e = t.length - 1; - return function() { - for (var i = e, n = t[e].apply(this, arguments); i--;) n = t[i].call(this, n); - return n - } - }, C.after = function(t, e) { - return function() { - if (--t < 1) return e.apply(this, arguments) - } - }, C.before = function(t, e) { - var i; - return function() { - return --t > 0 && (i = e.apply(this, arguments)), t <= 1 && (e = null), i - } - }, C.once = C.partial(C.before, 2); - var I = !{ - toString: null - }.propertyIsEnumerable("toString"), - D = ["valueOf", "isPrototypeOf", "toString", "propertyIsEnumerable", "hasOwnProperty", "toLocaleString"]; - C.keys = function(t) { - if (!C.isObject(t)) return []; - if (y) return y(t); - var e = []; - for (var i in t) C.has(t, i) && e.push(i); - return I && a(t, e), e - }, C.allKeys = function(t) { - if (!C.isObject(t)) return []; - var e = []; - for (var i in t) e.push(i); - return I && a(t, e), e - }, C.values = function(t) { - for (var e = C.keys(t), i = e.length, n = Array(i), r = 0; r < i; r++) n[r] = t[e[r]]; - return n - }, C.mapObject = function(t, e, i) { - e = S(e, i); - for (var n, r = C.keys(t), s = r.length, o = {}, a = 0; a < s; a++) n = r[a], o[n] = e(t[n], n, t); - return o - }, C.pairs = function(t) { - for (var e = C.keys(t), i = e.length, n = Array(i), r = 0; r < i; r++) n[r] = [e[r], t[e[r]]]; - return n - }, C.invert = function(t) { - for (var e = {}, i = C.keys(t), n = 0, r = i.length; n < r; n++) e[t[i[n]]] = i[n]; - return e - }, C.functions = C.methods = function(t) { - var e = []; - for (var i in t) C.isFunction(t[i]) && e.push(i); - return e.sort() - }, C.extend = T(C.allKeys), C.extendOwn = C.assign = T(C.keys), C.findKey = function(t, e, i) { - e = S(e, i); - for (var n, r = C.keys(t), s = 0, o = r.length; s < o; s++) - if (n = r[s], e(t[n], n, t)) return n - }, C.pick = function(t, e, i) { - var n, r, s = {}, - o = t; - if (null == o) return s; - C.isFunction(e) ? (r = C.allKeys(o), n = k(e, i)) : (r = N(arguments, !1, !1, 1), n = function(t, e, i) { - return e in i - }, o = Object(o)); - for (var a = 0, l = r.length; a < l; a++) { - var c = r[a], - u = o[c]; - n(u, c, o) && (s[c] = u) - } - return s - }, C.omit = function(t, e, i) { - if (C.isFunction(e)) e = C.negate(e); - else { - var n = C.map(N(arguments, !1, !1, 1), String); - e = function(t, e) { - return !C.contains(n, e) - } - } - return C.pick(t, e, i) - }, C.defaults = T(C.allKeys, !0), C.create = function(t, e) { - var i = M(t); - return e && C.extendOwn(i, e), i - }, C.clone = function(t) { - return C.isObject(t) ? C.isArray(t) ? t.slice() : C.extend({}, t) : t - }, C.tap = function(t, e) { - return e(t), t - }, C.isMatch = function(t, e) { - var i = C.keys(e), - n = i.length; - if (null == t) return !n; - for (var r = Object(t), s = 0; s < n; s++) { - var o = i[s]; - if (e[o] !== r[o] || !(o in r)) return !1 - } - return !0 - }; - var _ = function(t, e, i, n) { - if (t === e) return 0 !== t || 1 / t == 1 / e; - if (null == t || null == e) return t === e; - t instanceof C && (t = t._wrapped), e instanceof C && (e = e._wrapped); - var r = g.call(t); - if (r !== g.call(e)) return !1; - switch (r) { - case "[object RegExp]": - case "[object String]": - return "" + t == "" + e; - case "[object Number]": - return +t != +t ? +e != +e : 0 == +t ? 1 / +t == 1 / e : +t == +e; - case "[object Date]": - case "[object Boolean]": - return +t == +e - } - var s = "[object Array]" === r; - if (!s) { - if ("object" != typeof t || "object" != typeof e) return !1; - var o = t.constructor, - a = e.constructor; - if (o !== a && !(C.isFunction(o) && o instanceof o && C.isFunction(a) && a instanceof a) && "constructor" in t && "constructor" in e) return !1 - } - i = i || [], n = n || []; - for (var l = i.length; l--;) - if (i[l] === t) return n[l] === e; - if (i.push(t), n.push(e), s) { - if ((l = t.length) !== e.length) return !1; - for (; l--;) - if (!_(t[l], e[l], i, n)) return !1 - } else { - var c, u = C.keys(t); - if (l = u.length, C.keys(e).length !== l) return !1; - for (; l--;) - if (c = u[l], !C.has(e, c) || !_(t[c], e[c], i, n)) return !1 - } - return i.pop(), n.pop(), !0 - }; - C.isEqual = function(t, e) { - return _(t, e) - }, C.isEmpty = function(t) { - return null == t || (L(t) && (C.isArray(t) || C.isString(t) || C.isArguments(t)) ? 0 === t.length : 0 === C.keys(t).length) - }, C.isElement = function(t) { - return !(!t || 1 !== t.nodeType) - }, C.isArray = v || function(t) { - return "[object Array]" === g.call(t) - }, C.isObject = function(t) { - var e = typeof t; - return "function" === e || "object" === e && !!t - }, C.each(["Arguments", "Function", "String", "Number", "Date", "RegExp", "Error"], function(t) { - C["is" + t] = function(e) { - return g.call(e) === "[object " + t + "]" - } - }), C.isArguments(arguments) || (C.isArguments = function(t) { - return C.has(t, "callee") - }), "function" != typeof /./ && "object" != typeof Int8Array && (C.isFunction = function(t) { - return "function" == typeof t || !1 - }), C.isFinite = function(t) { - return isFinite(t) && !isNaN(parseFloat(t)) - }, C.isNaN = function(t) { - return C.isNumber(t) && t !== +t - }, C.isBoolean = function(t) { - return !0 === t || !1 === t || "[object Boolean]" === g.call(t) - }, C.isNull = function(t) { - return null === t - }, C.isUndefined = function(t) { - return void 0 === t - }, C.has = function(t, e) { - return null != t && m.call(t, e) - }, C.noConflict = function() { - return l._ = c, this - }, C.identity = function(t) { - return t - }, C.constant = function(t) { - return function() { - return t - } - }, C.noop = function() {}, C.property = E, C.propertyOf = function(t) { - return null == t ? function() {} : function(e) { - return t[e] - } - }, C.matcher = C.matches = function(t) { - return t = C.extendOwn({}, t), - function(e) { - return C.isMatch(e, t) - } - }, C.times = function(t, e, i) { - var n = Array(Math.max(0, t)); - e = k(e, i, 1); - for (var r = 0; r < t; r++) n[r] = e(r); - return n - }, C.random = function(t, e) { - return null == e && (e = t, t = 0), t + Math.floor(Math.random() * (e - t + 1)) - }, C.now = Date.now || function() { - return (new Date).getTime() - }; - var z = { - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'", - "`": "`" - }, - F = C.invert(z), - H = function(t) { - var e = function(e) { - return t[e] - }, - i = "(?:" + C.keys(t).join("|") + ")", - n = RegExp(i), - r = RegExp(i, "g"); - return function(t) { - return t = null == t ? "" : "" + t, n.test(t) ? t.replace(r, e) : t - } - }; - C.escape = H(z), C.unescape = H(F), C.result = function(t, e, i) { - var n = null == t ? void 0 : t[e]; - return void 0 === n && (n = i), C.isFunction(n) ? n.call(t) : n - }; - var R = 0; - C.uniqueId = function(t) { - var e = ++R + ""; - return t ? t + e : e - }, C.templateSettings = { - evaluate: /<%([\s\S]+?)%>/g, - interpolate: /<%=([\s\S]+?)%>/g, - escape: /<%-([\s\S]+?)%>/g - }; - var V = /(.)^/, - W = { - "'": "'", - "\\": "\\", - "\r": "r", - "\n": "n", - "\u2028": "u2028", - "\u2029": "u2029" - }, - B = /\\|'|\r|\n|\u2028|\u2029/g, - j = function(t) { - return "\\" + W[t] - }; - C.template = function(t, e, i) { - !e && i && (e = i), e = C.defaults({}, e, C.templateSettings); - var n = RegExp([(e.escape || V).source, (e.interpolate || V).source, (e.evaluate || V).source].join("|") + "|$", "g"), - r = 0, - s = "__p+='"; - t.replace(n, function(e, i, n, o, a) { - return s += t.slice(r, a).replace(B, j), r = a + e.length, i ? s += "'+\n((__t=(" + i + "))==null?'':_.escape(__t))+\n'" : n ? s += "'+\n((__t=(" + n + "))==null?'':__t)+\n'" : o && (s += "';\n" + o + "\n__p+='"), e - }), s += "';\n", e.variable || (s = "with(obj||{}){\n" + s + "}\n"), s = "var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n" + s + "return __p;\n"; - try { - var o = new Function(e.variable || "obj", "_", s) - } catch (t) { - throw t.source = s, t - } - var a = function(t) { - return o.call(this, t, C) - }; - return a.source = "function(" + (e.variable || "obj") + "){\n" + s + "}", a - }, C.chain = function(t) { - var e = C(t); - return e._chain = !0, e - }; - var U = function(t, e) { - return t._chain ? C(e).chain() : e - }; - C.mixin = function(t) { - C.each(C.functions(t), function(e) { - var i = C[e] = t[e]; - C.prototype[e] = function() { - var t = [this._wrapped]; - return f.apply(t, arguments), U(this, i.apply(C, t)) - } - }) - }, C.mixin(C), C.each(["pop", "push", "reverse", "shift", "sort", "splice", "unshift"], function(t) { - var e = u[t]; - C.prototype[t] = function() { - var i = this._wrapped; - return e.apply(i, arguments), "shift" !== t && "splice" !== t || 0 !== i.length || delete i[0], U(this, i) - } - }), C.each(["concat", "join", "slice"], function(t) { - var e = u[t]; - C.prototype[t] = function() { - return U(this, e.apply(this._wrapped, arguments)) - } - }), C.prototype.value = function() { - return this._wrapped - }, C.prototype.valueOf = C.prototype.toJSON = C.prototype.value, C.prototype.toString = function() { - return "" + this._wrapped - }, n = [], void 0 !== (r = function() { - return C - }.apply(e, n)) && (t.exports = r) - }).call(this) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(t) { - return typeof t - } : function(t) { - return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? "symbol" : typeof t - }, - r = i(22), - s = function(t) { - return t && t.__esModule ? t : { - default: t - } - }(r), - o = i(0), - a = i(112), - l = i(33), - c = i(39), - u = function(t) { - return t.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&") - }; - t.exports = o.Model.extend(s.default).extend({ - defaults: { - tagName: "div", - type: "", - removable: !0, - draggable: !0, - droppable: !0, - badgable: !0, - stylable: !0, - highlightable: !0, - copyable: !0, - resizable: !1, - editable: !1, - hiddenLayer: !1, - void: !1, - state: "", - status: "", - content: "", - icon: "", - style: {}, - attributes: "", - classes: "", - script: "", - traits: ["id", "title"], - toolbar: null, - previousModel: "", - mirror: "" - }, - initialize: function(t, e) { - e && e.config && e.config.voidElements.indexOf(this.get("tagName")) >= 0 && this.set("void", !0), this.opt = e, this.sm = e ? e.sm || {} : {}, this.config = t || {}, this.defaultC = this.config.components || [], this.defaultCl = this.normalizeClasses(this.get("classes") || this.config.classes || []), this.components = new a(this.defaultC, e), this.components.parent = this, this.listenTo(this, "change:script", this.scriptUpdated), this.set("attributes", this.get("attributes") || {}), this.set("components", this.components), this.set("classes", new l(this.defaultCl)); - var i = new c; - i.setTarget(this), i.add(this.get("traits")), this.set("traits", i), this.initToolbar(), ["stylable"].forEach(function(t) { - var e = this.get(t); - if ("string" == typeof e) { - var i = e.split(",").map(function(t) { - return t.trim() - }); - this.set(t, i) - } - }, this), this.set("status", ""), this.init() - }, - init: function() {}, - scriptUpdated: function() { - this.set("scriptUpdated", 1) - }, - initToolbar: function() { - var t = this; - if (!t.get("toolbar")) { - var e = []; - t.get("draggable") && e.push({ - attributes: { - class: "fa fa-arrows" - }, - command: "tlb-move" - }), t.get("copyable") && e.push({ - attributes: { - class: "fa fa-clone" - }, - command: "tlb-clone" - }), t.get("removable") && e.push({ - attributes: { - class: "fa fa-trash-o" - }, - command: "tlb-delete" - }), t.set("toolbar", e) - } - }, - loadTraits: function(t) { - var e = new c; - e.setTarget(this), e.add(t), this.set("traits", e) - }, - normalizeClasses: function(t) { - var e = []; - if (this.sm.get) { - var i = this.sm.get("SelectorManager"); - if (i) return t.forEach(function(t) { - var n = ""; - n = "string" == typeof t ? t : t.name; - var r = i.add(n); - e.push(r) - }), e - } - }, - clone: function(t) { - var i = e.clone(this.attributes), - n = this.get("components"), - r = this.get("traits"), - s = this.get("classes"); - return i.components = [], i.classes = [], i.traits = [], n.each(function(t, e) { - i.components[e] = t.clone(1) - }), r.each(function(t, e) { - i.traits[e] = t.clone() - }), s.each(function(t, e) { - i.classes[e] = t.get("name") - }), i.status = "", i.view = "", t && (this.opt.collection = null), new this.constructor(i, this.opt) - }, - getName: function() { - var t = this.get("custom-name"), - e = this.get("tagName"); - e = "div" == e ? "box" : e; - var i = this.get("type") || e; - return i = i.charAt(0).toUpperCase() + i.slice(1), t || i - }, - getIcon: function() { - var t = this.get("icon"); - return t ? t + " " : "" - }, - toHTML: function(t) { - var i = "", - r = this, - s = r.get("tagName"), - o = 0, - a = r.get("void"), - l = "", - c = "", - u = this.getAttrToHTML(); - for (var h in u) { - "id" == h && (o = 1); - var d = u[h]; - c += void 0 !== (void 0 === d ? "undefined" : n(d)) && "" !== d ? " " + h + '="' + d + '"' : "" - } - var f = ""; - return r.get("classes").each(function(t) { - f += " " + t.get("name") - }), f = "" !== f ? ' class="' + f.trim() + '"' : "", e.isEmpty(r.get("style")) || o || (l = ' id="' + r.getId() + '" '), i += "<" + s + f + l + c + (a ? "/" : "") + ">" + r.get("content"), r.get("components").each(function(t) { - i += t.toHTML() - }), a || (i += ""), i - }, - getAttrToHTML: function() { - var t = this.get("attributes") || {}; - return delete t.style, t - }, - toJSON: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - var n = o.Model.prototype.toJSON.apply(this, e), - r = this.getScriptString(); - return delete n.toolbar, r && (n.script = r), n - }, - getId: function() { - return (this.get("attributes") || {}).id || this.cid - }, - getScriptString: function(t) { - var e = this, - i = t || this.get("script"); - if (!i) return i; - if ("function" == typeof i) { - var n = i.toString().trim(); - n = n.replace(/^function[\s\w]*\(\)\s?\{/, "").replace(/\}$/, ""), i = n.trim() - } - var r = this.sm.config || {}, - s = u(r.tagVarStart || "{[ "), - o = u(r.tagVarEnd || " ]}"), - a = new RegExp(s + "(\\w+)" + o, "g"); - return i = i.replace(a, function(t, i) { - return e.scriptUpdated(), e.attributes[i] - }) - } - }, { - isComponent: function(t) { - return { - tagName: t.tagName ? t.tagName.toLowerCase() : "" - } - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(124); - t.exports = n.View.extend({ - events: { - click: "initResize" - }, - className: function() { - return this.getClasses() - }, - tagName: function() { - return this.model.get("tagName") - }, - initialize: function(t) { - var e = this.model; - this.opts = t || {}, this.config = this.opts.config || {}, this.em = this.config.em || "", this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.components = e.get("components"), this.attr = e.get("attributes"), this.classe = this.attr.class || [], this.listenTo(e, "destroy remove", this.remove), this.listenTo(e, "change:style", this.updateStyle), this.listenTo(e, "change:attributes", this.updateAttributes), this.listenTo(e, "change:status", this.updateStatus), this.listenTo(e, "change:state", this.updateState), this.listenTo(e, "change:script", this.render), this.listenTo(e, "change", this.handleChange), this.listenTo(e.get("classes"), "add remove change", this.updateClasses), this.$el.data("model", e), e.view = this, this.$el.data("collection", this.components), e.get("classes").length && this.importClasses(), this.init() - }, - init: function() {}, - handleChange: function() { - var t = this.em; - if (t) { - var e = this.model; - t.trigger("component:update", e); - for (var i in e.changed) t.trigger("component:update:" + i, e) - } - }, - importClasses: function() { - var t = this.config.em.get("SelectorManager"); - t && this.model.get("classes").each(function(e) { - t.add(e.get("name")) - }) - }, - updateState: function(t) { - var e = "hc-state"; - this.model.get("state") ? this.$el.addClass(e) : this.$el.removeClass(e) - }, - updateStatus: function(t) { - var e = this.el, - i = this.model.get("status"), - n = this.pfx, - r = this.ppfx, - s = n + "selected", - o = s + "-parent", - a = r + "freezed", - l = e.getAttribute("class") || "", - c = ""; - switch (i) { - case "selected": - c = l + " " + s; - break; - case "selected-parent": - c = l + " " + o; - break; - case "freezed": - c = l + " " + a; - break; - default: - this.$el.removeClass(s + " " + o + " " + a) - }(c = c.trim()) && e.setAttribute("class", c) - }, - getClasses: function() { - var t = this.model.get("attributes"), - e = t.class || []; - return e.length ? e.join(" ") : null - }, - updateAttributes: function() { - var t = this.model, - e = {}, - i = t.get("attributes"); - for (var n in i) i.hasOwnProperty(n) && (e[n] = i[n]); - t.get("src") && (e.src = t.get("src")), t.get("highlightable") && (e["data-highlightable"] = 1); - var r = this.getStyleString(); - r && (e.style = r), this.$el.attr(e) - }, - updateStyle: function() { - this.$el.attr("style", this.getStyleString()) - }, - getStyleString: function() { - var t = ""; - this.style = this.model.get("style"); - for (var e in this.style) this.style.hasOwnProperty(e) && (t += e + ":" + this.style[e] + ";"); - return t - }, - updateClasses: function() { - var t = ""; - this.model.get("classes").each(function(e) { - t += e.get("name") + " " - }), t = t.trim(), t ? this.$el.attr("class", t) : this.$el.removeAttr("class"), this.updateStatus() - }, - eventCall: function(t) { - t.viewResponse = this - }, - initResize: function() { - var t, i = this.opts.config.em, - n = i ? i.get("Editor") : "", - r = i ? i.get("Config") : "", - s = r.stylePrefix || "", - o = "data-" + s + "handler", - a = s + "resizing", - l = this.model, - c = function(t, e, i) { - var n = (e.target.getAttribute(o), a); - i.docs && i.docs.find("body")[t](n) - }; - n && this.model.get("resizable") && n.runCommand("resize", { - el: this.el, - options: { - onStart: function(e, n) { - c("addClass", e, n), t = i.get("StyleManager").getModelToStyle(l) - }, - onMove: function() { - n.trigger("change:canvasOffset") - }, - onEnd: function(t, e) { - c("removeClass", t, e), n.trigger("change:canvasOffset") - }, - updateTarget: function(n, r, s) { - if (t) { - var o = e.clone(t.get("style")), - a = r.w + (s ? 1 : 0); - if (o.width = a + "px", o.height = r.h + "px", t.set("style", o, { - avoidStore: 1 - }), i.trigger("targetStyleUpdated"), s) { - var l = e.clone(o); - l.width = a - 1 + "px", t.set("style", l) - } - } - } - } - }) - }, - prevDef: function(t) { - t.preventDefault() - }, - updateScript: function() { - if (this.model.get("script")) { - var t = this.em; - if (t) { - t.get("Canvas").getCanvasView().updateScript(this) - } - } - }, - getChildrenContainer: function() { - var t = this.el; - return "function" == typeof this.getChildrenSelector ? t = this.el.querySelector(this.getChildrenSelector()) : this.getTemplate, t - }, - renderChildren: function() { - var t = new r({ - collection: this.model.get("components"), - config: this.config, - defaultTypes: this.opts.defaultTypes, - componentTypes: this.opts.componentTypes - }), - e = this.getChildrenContainer(), - i = t.render($(e)).el.childNodes; - i = Array.prototype.slice.call(i); - for (var n = 0, s = i.length; n < s; n++) e.appendChild(i.shift()); - if (e !== this.el) { - ! function t(i) { - Array.prototype.slice.call(i.children).forEach(function(i) { - i.style["pointer-events"] = "none", e !== i && t(i) - }) - }(this.el) - } - }, - renderAttributes: function() { - this.updateAttributes(), this.updateClasses() - }, - render: function() { - this.renderAttributes(); - var t = this.model; - return this.getChildrenContainer().innerHTML = t.get("content"), this.renderChildren(), this.updateScript(), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - template: e.template('\n
    \n input-holder\'>\n
    \n
    '), - templateLabel: e.template('\n
    \n \n <%= label %>\n \n \n
    '), - events: { - change: "valueUpdated" - }, - initialize: function(t) { - this.config = t.config || {}, this.em = this.config.em, this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.target = t.target || {}, this.propTarget = t.propTarget || {}, this.onChange = t.onChange || {}, this.onInputRender = t.onInputRender || {}, this.customValue = t.customValue || {}, this.defaultValue = this.model.get("defaults"), this.property = this.model.get("property"), this.input = this.$input = null; - var e = this.pfx; - this.className = e + "property", this.inputHolderId = "#" + e + "input-holder", this.sector = this.model.collection && this.model.collection.sector, this.model.get("value") || this.model.set("value", this.model.get("defaults")), this.listenTo(this.propTarget, "update", this.targetUpdated), this.listenTo(this.model, "destroy remove", this.remove), this.listenTo(this.model, "change:value", this.valueChanged), this.listenTo(this.model, "targetUpdated", this.targetUpdated), this.listenTo(this.model, "change:visible", this.updateVisibility), this.listenTo(this.model, "change:status", this.updateStatus), this.events["click ." + e + "clear"] = "clear", this.delegateEvents() - }, - updateStatus: function() { - var t = this.model.get("status"), - e = this.pfx, - i = this.ppfx, - n = this.config, - r = i + "active-color", - s = i + "warn-color", - o = this.$el.find("> ." + e + "label"), - a = this.getClearEl().style; - switch (o.removeClass(r + " " + s), a.display = "none", t) { - case "updated": - o.addClass(r), n.clearProperties && (a.display = "inline"); - break; - case "computed": - o.addClass(s) - } - }, - clear: function() { - this.getTargetModel().removeStyle(this.model.get("property")), this.targetUpdated() - }, - getClearEl: function() { - return this.el.querySelector("." + this.pfx + "clear") - }, - getTarget: function() { - return this.propTarget && this.propTarget.model - }, - getTargetModel: function() { - return this.propTarget && this.propTarget.model - }, - getHelperModel: function() { - return this.propTarget && this.propTarget.helper - }, - valueUpdated: function() { - this.model.set("value", this.getInputValue()), this.elementUpdated() - }, - elementUpdated: function() { - this.model.set("status", "updated") - }, - targetUpdated: function() { - if (this.checkVisibility()) { - var t = "", - e = "", - i = this.getTargetValue({ - ignoreDefault: 1 - }), - n = this.getDefaultValue(), - r = this.getComputedValue(), - s = this.config, - o = s.em, - a = this.model; - i ? (t = i, s.highlightChanged && (e = "updated")) : r && s.showComputed && r != n ? (t = r, s.highlightComputed && (e = "computed")) : (t = n, e = ""), this.setValue(t, 1), this.model.set("status", e), o && (o.trigger("styleManager:change", this), o.trigger("styleManager:change:" + a.get("property"), this)) - } - }, - checkVisibility: function() { - var t = 1; - return this.config.hideNotStylable && (this.isTargetStylable() && this.isComponentStylable() ? this.show() : (this.hide(), t = 0), this.sector && this.sector.trigger("updateVisibility")), t - }, - sameValue: function() { - return this.getComponentValue() == this.getValueForTarget() - }, - getComponentValue: function() { - var t = this.model, - e = this.getTargetModel(); - if (e) { - var i = e.get("style")[this.property]; - if (this.componentValue = i || this.defaultValue + (this.unit || ""), t.get("functionName")) { - var n = this.fetchFromFunction(this.componentValue); - n && (this.componentValue = n) - } - if (this.customValue && "function" == typeof this.customValue) { - var r = t.collection.indexOf(t), - s = this.customValue(this, r); - s && (this.componentValue = s) - } - return this.componentValue - } - }, - getTargetValue: function() { - var t, e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - i = this.model, - n = this.getTargetModel(), - r = this.customValue; - if (!n) return t; - if (t = n.getStyle()[i.get("property")], t || e.ignoreDefault || (t = this.getDefaultValue()), "function" == typeof r && !e.ignoreCustomValue) { - var s = i.collection.indexOf(i), - o = r(this, s); - o && (t = o) - } - return t - }, - getDefaultValue: function() { - return this.model.get("defaults") - }, - getComputedValue: function() { - var t = this.propTarget.computed, - e = this.config.validComputed, - i = this.model.get("property"); - return t && e.indexOf(i) >= 0 && t[i] - }, - fetchFromFunction: function(t) { - return t.substring(t.indexOf("(") + 1, t.lastIndexOf(")")) - }, - tryFetchFromFunction: function(t) { - if (!this.model.get("functionName")) return t; - var e = t + "", - i = e.indexOf("(") + 1, - n = e.lastIndexOf(")"); - return e.substring(i, n) - }, - getValueForTarget: function() { - return this.model.get("value") - }, - getInputValue: function() { - return this.$input ? this.$input.val() : "" - }, - valueChanged: function(t, e, i) { - var n = this.getValueForTarget(), - r = this.config.em, - s = this.model; - if (this.$input && this.setValue(n), this.getTarget() && this.isTargetStylable() && this.isComponentStylable()) { - var o = this.getValueForTarget(), - a = s.get("functionName"); - a && (o = a + "(" + o + ")"); - var l = this.getTarget(), - c = this.onChange; - c && "function" == typeof c ? c(l, this, i) : this.updateTargetStyle(o, null, i), r && (r.trigger("component:update", s), r.trigger("component:styleUpdate", s), r.trigger("component:styleUpdate:" + s.get("property"), s)) - } - }, - updateTargetStyle: function(t, i, n) { - var r = i || this.property, - s = t || "", - o = n ? n.avoidStore : 0, - a = this.getTarget(), - l = e.clone(a.get("style")); - s ? l[r] = s : delete l[r], a.set("style", l, { - avoidStore: o - }); - var c = this.getHelperModel(); - c && c.setStyle(l, { - avoidStore: o - }) - }, - isTargetStylable: function() { - var t = this.getTarget().get("stylable"); - return t instanceof Array && (t = e.indexOf(t, this.property) >= 0), t - }, - isComponentStylable: function() { - var t = this.em, - i = t && t.get("selectedComponent"); - if (!i) return !0; - var n = i.get("stylable"); - return n instanceof Array && (n = e.indexOf(n, this.property) >= 0), n - }, - setValue: function(t, e) { - var i = 0 === e ? 0 : 1, - n = this.model.get("defaults"), - r = this.model.get("value") || n; - (t || i) && (r = t), this.$input && this.$input.val(r), this.model.set({ - value: r - }, { - silent: !0 - }) - }, - updateVisibility: function() { - this.el.style.display = this.model.get("visible") ? "block" : "none" - }, - show: function() { - this.model.set("visible", 1) - }, - hide: function() { - this.model.set("visible", 0) - }, - renderLabel: function() { - var t = this.model; - this.$el.html(this.templateLabel({ - pfx: this.pfx, - ppfx: this.ppfx, - icon: t.get("icon"), - info: t.get("info"), - label: t.get("name") - })) - }, - renderField: function() { - this.renderTemplate(), this.renderInput(), delete this.componentValue - }, - renderTemplate: function() { - this.$el.append(this.template({ - pfx: this.pfx, - ppfx: this.ppfx, - icon: this.model.get("icon"), - info: this.model.get("info"), - label: this.model.get("name") - })) - }, - renderInput: function() { - this.$input || (this.$input = $("", { - placeholder: this.model.get("defaults"), - type: "text" - }), this.$el.find(this.inputHolderId).html(this.$input)), this.setValue(this.componentValue, 0) - }, - renderInputRequest: function() { - this.renderInput() - }, - cleanValue: function() { - this.setValue("") - }, - render: function() { - return this.renderLabel(), this.renderField(), this.$el.attr("class", this.className), this.updateStatus(), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - ! function(e, i) { - t.exports = i() - }(0, function() { - "use strict"; - - function t(t) { - return new RegExp("(^|\\s)" + t + "(?:$|\\s)\\s*") - } - - function e(t) { - for (var e = t.childNodes.length; e > 0; --e) t.removeChild(t.firstChild); - return t - } - - function i(t, i) { - return e(t).appendChild(i) - } - - function n(t, e, i, n) { - var r = document.createElement(t); - if (i && (r.className = i), n && (r.style.cssText = n), "string" == typeof e) r.appendChild(document.createTextNode(e)); - else if (e) - for (var s = 0; s < e.length; ++s) r.appendChild(e[s]); - return r - } - - function r(t, e) { - if (3 == e.nodeType && (e = e.parentNode), t.contains) return t.contains(e); - do { - if (11 == e.nodeType && (e = e.host), e == t) return !0 - } while (e = e.parentNode) - } - - function s() { - var t; - try { - t = document.activeElement - } catch (e) { - t = document.body || null - } - for (; t && t.root && t.root.activeElement;) t = t.root.activeElement; - return t - } - - function o(e, i) { - var n = e.className; - t(i).test(n) || (e.className += (n ? " " : "") + i) - } - - function a(e, i) { - for (var n = e.split(" "), r = 0; r < n.length; r++) n[r] && !t(n[r]).test(i) && (i += " " + n[r]); - return i - } - - function l(t) { - var e = Array.prototype.slice.call(arguments, 1); - return function() { - return t.apply(null, e) - } - } - - function c(t, e, i) { - e || (e = {}); - for (var n in t) !t.hasOwnProperty(n) || !1 === i && e.hasOwnProperty(n) || (e[n] = t[n]); - return e - } - - function u(t, e, i, n, r) { - null == e && -1 == (e = t.search(/[^\s\u00a0]/)) && (e = t.length); - for (var s = n || 0, o = r || 0;;) { - var a = t.indexOf("\t", s); - if (a < 0 || a >= e) return o + (e - s); - o += a - s, o += i - o % i, s = a + 1 - } - } - - function h() { - this.id = null - } - - function d(t, e) { - for (var i = 0; i < t.length; ++i) - if (t[i] == e) return i; - return -1 - } - - function f(t, e, i) { - for (var n = 0, r = 0;;) { - var s = t.indexOf("\t", n); - 1 == s && (s = t.length); - var o = s - n; - if (s == t.length || r + o >= e) return n + Math.min(o, e - r); - if (r += s - n, r += i - r % i, n = s + 1, r >= e) return n - } - } - - function p(t) { - for (; Ao.length <= t;) Ao.push(g(Ao) + " "); - return Ao[t] - } - - function g(t) { - return t[t.length - 1] - } - - function m(t, e) { - for (var i = [], n = 0; n < t.length; n++) i[n] = e(t[n], n); - return i - } - - function v(t, e, i) { - for (var n = 0, r = i(e); n < t.length && i(t[n]) <= r;) n++; - t.splice(n, 0, e) - } - - function y() {} - - function b(t, e) { - var i; - return Object.create ? i = Object.create(t) : (y.prototype = t, i = new y), e && c(e, i), i - } - - function x(t) { - return /\w/.test(t) || t > "€" && (t.toUpperCase() != t.toLowerCase() || No.test(t)) - } - - function w(t, e) { - return e ? !!(e.source.indexOf("\\w") > -1 && x(t)) || e.test(t) : x(t) - } - - function C(t) { - for (var e in t) - if (t.hasOwnProperty(e) && t[e]) return !1; - return !0 - } - - function k(t) { - return t.charCodeAt(0) >= 768 && Oo.test(t) - } - - function S(t, e, i) { - var r = this; - this.input = i, r.scrollbarFiller = n("div", null, "CodeMirror-scrollbar-filler"), r.scrollbarFiller.setAttribute("cm-not-content", "true"), r.gutterFiller = n("div", null, "CodeMirror-gutter-filler"), r.gutterFiller.setAttribute("cm-not-content", "true"), r.lineDiv = n("div", null, "CodeMirror-code"), r.selectionDiv = n("div", null, null, "position: relative; z-index: 1"), r.cursorDiv = n("div", null, "CodeMirror-cursors"), r.measure = n("div", null, "CodeMirror-measure"), r.lineMeasure = n("div", null, "CodeMirror-measure"), r.lineSpace = n("div", [r.measure, r.lineMeasure, r.selectionDiv, r.cursorDiv, r.lineDiv], null, "position: relative; outline: none"), r.mover = n("div", [n("div", [r.lineSpace], "CodeMirror-lines")], null, "position: relative"), r.sizer = n("div", [r.mover], "CodeMirror-sizer"), r.sizerWidth = null, r.heightForcer = n("div", null, null, "position: absolute; height: " + Mo + "px; width: 1px;"), r.gutters = n("div", null, "CodeMirror-gutters"), r.lineGutter = null, r.scroller = n("div", [r.sizer, r.heightForcer, r.gutters], "CodeMirror-scroll"), r.scroller.setAttribute("tabIndex", "-1"), r.wrapper = n("div", [r.scrollbarFiller, r.gutterFiller, r.scroller], "CodeMirror"), no && ro < 8 && (r.gutters.style.zIndex = -1, r.scroller.style.paddingRight = 0), so || to && po || (r.scroller.draggable = !0), t && (t.appendChild ? t.appendChild(r.wrapper) : t(r.wrapper)), r.viewFrom = r.viewTo = e.first, r.reportedViewFrom = r.reportedViewTo = e.first, r.view = [], r.renderedView = null, r.externalMeasured = null, r.viewOffset = 0, r.lastWrapHeight = r.lastWrapWidth = 0, r.updateLineNumbers = null, r.nativeBarWidth = r.barHeight = r.barWidth = 0, r.scrollbarsClipped = !1, r.lineNumWidth = r.lineNumInnerWidth = r.lineNumChars = null, r.alignWidgets = !1, r.cachedCharWidth = r.cachedTextHeight = r.cachedPaddingH = null, r.maxLine = null, r.maxLineLength = 0, r.maxLineChanged = !1, r.wheelDX = r.wheelDY = r.wheelStartX = r.wheelStartY = null, r.shift = !1, r.selForContextMenu = null, r.activeTouch = null, i.init(r) - } - - function T(t, e) { - if ((e -= t.first) < 0 || e >= t.size) throw new Error("There is no line " + (e + t.first) + " in the document."); - for (var i = t; !i.lines;) - for (var n = 0;; ++n) { - var r = i.children[n], - s = r.chunkSize(); - if (e < s) { - i = r; - break - } - e -= s - } - return i.lines[e] - } - - function M(t, e, i) { - var n = [], - r = e.line; - return t.iter(e.line, i.line + 1, function(t) { - var s = t.text; - r == i.line && (s = s.slice(0, i.ch)), r == e.line && (s = s.slice(e.ch)), n.push(s), ++r - }), n - } - - function E(t, e, i) { - var n = []; - return t.iter(e, i, function(t) { - n.push(t.text) - }), n - } - - function P(t, e) { - var i = e - t.height; - if (i) - for (var n = t; n; n = n.parent) n.height += i - } - - function $(t) { - if (null == t.parent) return null; - for (var e = t.parent, i = d(e.lines, t), n = e.parent; n; e = n, n = n.parent) - for (var r = 0; n.children[r] != e; ++r) i += n.children[r].chunkSize(); - return i + e.first - } - - function L(t, e) { - var i = t.first; - t: do { - for (var n = 0; n < t.children.length; ++n) { - var r = t.children[n], - s = r.height; - if (e < s) { - t = r; - continue t - } - e -= s, i += r.chunkSize() - } - return i - } while (!t.lines); - for (var o = 0; o < t.lines.length; ++o) { - var a = t.lines[o], - l = a.height; - if (e < l) break; - e -= l - } - return i + o - } - - function A(t, e) { - return e >= t.first && e < t.first + t.size - } - - function N(t, e) { - return String(t.lineNumberFormatter(e + t.firstLineNumber)) - } - - function O(t, e) { - if (!(this instanceof O)) return new O(t, e); - this.line = t, this.ch = e - } - - function I(t, e) { - return t.line - e.line || t.ch - e.ch - } - - function D(t) { - return O(t.line, t.ch) - } - - function _(t, e) { - return I(t, e) < 0 ? e : t - } - - function z(t, e) { - return I(t, e) < 0 ? t : e - } - - function F(t, e) { - return Math.max(t.first, Math.min(e, t.first + t.size - 1)) - } - - function H(t, e) { - if (e.line < t.first) return O(t.first, 0); - var i = t.first + t.size - 1; - return e.line > i ? O(i, T(t, i).text.length) : R(e, T(t, e.line).text.length) - } - - function R(t, e) { - var i = t.ch; - return null == i || i > e ? O(t.line, e) : i < 0 ? O(t.line, 0) : t - } - - function V(t, e) { - for (var i = [], n = 0; n < e.length; n++) i[n] = H(t, e[n]); - return i - } - - function W() { - Io = !0 - } - - function B() { - Do = !0 - } - - function j(t, e, i) { - this.marker = t, this.from = e, this.to = i - } - - function U(t, e) { - if (t) - for (var i = 0; i < t.length; ++i) { - var n = t[i]; - if (n.marker == e) return n - } - } - - function q(t, e) { - for (var i, n = 0; n < t.length; ++n) t[n] != e && (i || (i = [])).push(t[n]); - return i - } - - function K(t, e) { - t.markedSpans = t.markedSpans ? t.markedSpans.concat([e]) : [e], e.marker.attachLine(t) - } - - function G(t, e, i) { - var n; - if (t) - for (var r = 0; r < t.length; ++r) { - var s = t[r], - o = s.marker, - a = null == s.from || (o.inclusiveLeft ? s.from <= e : s.from < e); - if (a || s.from == e && "bookmark" == o.type && (!i || !s.marker.insertLeft)) { - var l = null == s.to || (o.inclusiveRight ? s.to >= e : s.to > e); - (n || (n = [])).push(new j(o, s.from, l ? null : s.to)) - } - } - return n - } - - function Y(t, e, i) { - var n; - if (t) - for (var r = 0; r < t.length; ++r) { - var s = t[r], - o = s.marker, - a = null == s.to || (o.inclusiveRight ? s.to >= e : s.to > e); - if (a || s.from == e && "bookmark" == o.type && (!i || s.marker.insertLeft)) { - var l = null == s.from || (o.inclusiveLeft ? s.from <= e : s.from < e); - (n || (n = [])).push(new j(o, l ? null : s.from - e, null == s.to ? null : s.to - e)) - } - } - return n - } - - function X(t, e) { - if (e.full) return null; - var i = A(t, e.from.line) && T(t, e.from.line).markedSpans, - n = A(t, e.to.line) && T(t, e.to.line).markedSpans; - if (!i && !n) return null; - var r = e.from.ch, - s = e.to.ch, - o = 0 == I(e.from, e.to), - a = G(i, r, o), - l = Y(n, s, o), - c = 1 == e.text.length, - u = g(e.text).length + (c ? r : 0); - if (a) - for (var h = 0; h < a.length; ++h) { - var d = a[h]; - if (null == d.to) { - var f = U(l, d.marker); - f ? c && (d.to = null == f.to ? null : f.to + u) : d.to = r - } - } - if (l) - for (var p = 0; p < l.length; ++p) { - var m = l[p]; - if (null != m.to && (m.to += u), null == m.from) { - var v = U(a, m.marker); - v || (m.from = u, c && (a || (a = [])).push(m)) - } else m.from += u, c && (a || (a = [])).push(m) - } - a && (a = J(a)), l && l != a && (l = J(l)); - var y = [a]; - if (!c) { - var b, x = e.text.length - 2; - if (x > 0 && a) - for (var w = 0; w < a.length; ++w) null == a[w].to && (b || (b = [])).push(new j(a[w].marker, null, null)); - for (var C = 0; C < x; ++C) y.push(b); - y.push(l) - } - return y - } - - function J(t) { - for (var e = 0; e < t.length; ++e) { - var i = t[e]; - null != i.from && i.from == i.to && !1 !== i.marker.clearWhenEmpty && t.splice(e--, 1) - } - return t.length ? t : null - } - - function Z(t, e, i) { - var n = null; - if (t.iter(e.line, i.line + 1, function(t) { - if (t.markedSpans) - for (var e = 0; e < t.markedSpans.length; ++e) { - var i = t.markedSpans[e].marker; - !i.readOnly || n && -1 != d(n, i) || (n || (n = [])).push(i) - } - }), !n) return null; - for (var r = [{ - from: e, - to: i - }], s = 0; s < n.length; ++s) - for (var o = n[s], a = o.find(0), l = 0; l < r.length; ++l) { - var c = r[l]; - if (!(I(c.to, a.from) < 0 || I(c.from, a.to) > 0)) { - var u = [l, 1], - h = I(c.from, a.from), - f = I(c.to, a.to); - (h < 0 || !o.inclusiveLeft && !h) && u.push({ - from: c.from, - to: a.from - }), (f > 0 || !o.inclusiveRight && !f) && u.push({ - from: a.to, - to: c.to - }), r.splice.apply(r, u), l += u.length - 1 - } - } - return r - } - - function Q(t) { - var e = t.markedSpans; - if (e) { - for (var i = 0; i < e.length; ++i) e[i].marker.detachLine(t); - t.markedSpans = null - } - } - - function tt(t, e) { - if (e) { - for (var i = 0; i < e.length; ++i) e[i].marker.attachLine(t); - t.markedSpans = e - } - } - - function et(t) { - return t.inclusiveLeft ? -1 : 0 - } - - function it(t) { - return t.inclusiveRight ? 1 : 0 - } - - function nt(t, e) { - var i = t.lines.length - e.lines.length; - if (0 != i) return i; - var n = t.find(), - r = e.find(), - s = I(n.from, r.from) || et(t) - et(e); - if (s) return -s; - var o = I(n.to, r.to) || it(t) - it(e); - return o || e.id - t.id - } - - function rt(t, e) { - var i, n = Do && t.markedSpans; - if (n) - for (var r = void 0, s = 0; s < n.length; ++s) r = n[s], r.marker.collapsed && null == (e ? r.from : r.to) && (!i || nt(i, r.marker) < 0) && (i = r.marker); - return i - } - - function st(t) { - return rt(t, !0) - } - - function ot(t) { - return rt(t, !1) - } - - function at(t, e, i, n, r) { - var s = T(t, e), - o = Do && s.markedSpans; - if (o) - for (var a = 0; a < o.length; ++a) { - var l = o[a]; - if (l.marker.collapsed) { - var c = l.marker.find(0), - u = I(c.from, i) || et(l.marker) - et(r), - h = I(c.to, n) || it(l.marker) - it(r); - if (!(u >= 0 && h <= 0 || u <= 0 && h >= 0) && (u <= 0 && (l.marker.inclusiveRight && r.inclusiveLeft ? I(c.to, i) >= 0 : I(c.to, i) > 0) || u >= 0 && (l.marker.inclusiveRight && r.inclusiveLeft ? I(c.from, n) <= 0 : I(c.from, n) < 0))) return !0 - } - } - } - - function lt(t) { - for (var e; e = st(t);) t = e.find(-1, !0).line; - return t - } - - function ct(t) { - for (var e, i; e = ot(t);) t = e.find(1, !0).line, (i || (i = [])).push(t); - return i - } - - function ut(t, e) { - var i = T(t, e), - n = lt(i); - return i == n ? e : $(n) - } - - function ht(t, e) { - if (e > t.lastLine()) return e; - var i, n = T(t, e); - if (!dt(t, n)) return e; - for (; i = ot(n);) n = i.find(1, !0).line; - return $(n) + 1 - } - - function dt(t, e) { - var i = Do && e.markedSpans; - if (i) - for (var n = void 0, r = 0; r < i.length; ++r) - if (n = i[r], n.marker.collapsed) { - if (null == n.from) return !0; - if (!n.marker.widgetNode && 0 == n.from && n.marker.inclusiveLeft && ft(t, e, n)) return !0 - } - } - - function ft(t, e, i) { - if (null == i.to) { - var n = i.marker.find(1, !0); - return ft(t, n.line, U(n.line.markedSpans, i.marker)) - } - if (i.marker.inclusiveRight && i.to == e.text.length) return !0; - for (var r = void 0, s = 0; s < e.markedSpans.length; ++s) - if (r = e.markedSpans[s], r.marker.collapsed && !r.marker.widgetNode && r.from == i.to && (null == r.to || r.to != i.from) && (r.marker.inclusiveLeft || i.marker.inclusiveRight) && ft(t, e, r)) return !0 - } - - function pt(t) { - t = lt(t); - for (var e = 0, i = t.parent, n = 0; n < i.lines.length; ++n) { - var r = i.lines[n]; - if (r == t) break; - e += r.height - } - for (var s = i.parent; s; i = s, s = i.parent) - for (var o = 0; o < s.children.length; ++o) { - var a = s.children[o]; - if (a == i) break; - e += a.height - } - return e - } - - function gt(t) { - if (0 == t.height) return 0; - for (var e, i = t.text.length, n = t; e = st(n);) { - var r = e.find(0, !0); - n = r.from.line, i += r.from.ch - r.to.ch - } - for (n = t; e = ot(n);) { - var s = e.find(0, !0); - i -= n.text.length - s.from.ch, n = s.to.line, i += n.text.length - s.to.ch - } - return i - } - - function mt(t) { - var e = t.display, - i = t.doc; - e.maxLine = T(i, i.first), e.maxLineLength = gt(e.maxLine), e.maxLineChanged = !0, i.iter(function(t) { - var i = gt(t); - i > e.maxLineLength && (e.maxLineLength = i, e.maxLine = t) - }) - } - - function vt(t, e, i, n) { - if (!t) return n(e, i, "ltr"); - for (var r = !1, s = 0; s < t.length; ++s) { - var o = t[s]; - (o.from < i && o.to > e || e == i && o.to == e) && (n(Math.max(o.from, e), Math.min(o.to, i), 1 == o.level ? "rtl" : "ltr"), r = !0) - } - r || n(e, i, "ltr") - } - - function yt(t) { - return t.level % 2 ? t.to : t.from - } - - function bt(t) { - return t.level % 2 ? t.from : t.to - } - - function xt(t) { - var e = Et(t); - return e ? yt(e[0]) : 0 - } - - function wt(t) { - var e = Et(t); - return e ? bt(g(e)) : t.text.length - } - - function Ct(t, e, i) { - var n = t[0].level; - return e == n || i != n && e < i - } - - function kt(t, e) { - var i; - _o = null; - for (var n = 0; n < t.length; ++n) { - var r = t[n]; - if (r.from < e && r.to > e) return n; - if (r.from == e || r.to == e) { - if (null != i) return Ct(t, r.level, t[i].level) ? (r.from != r.to && (_o = i), n) : (r.from != r.to && (_o = n), i); - i = n - } - } - return i - } - - function St(t, e, i, n) { - if (!n) return e + i; - do { - e += i - } while (e > 0 && k(t.text.charAt(e))); - return e - } - - function Tt(t, e, i, n) { - var r = Et(t); - if (!r) return Mt(t, e, i, n); - for (var s = kt(r, e), o = r[s], a = St(t, e, o.level % 2 ? -i : i, n);;) { - if (a > o.from && a < o.to) return a; - if (a == o.from || a == o.to) return kt(r, a) == s ? a : (o = r[s += i], i > 0 == o.level % 2 ? o.to : o.from); - if (!(o = r[s += i])) return null; - a = i > 0 == o.level % 2 ? St(t, o.to, -1, n) : St(t, o.from, 1, n) - } - } - - function Mt(t, e, i, n) { - var r = e + i; - if (n) - for (; r > 0 && k(t.text.charAt(r));) r += i; - return r < 0 || r > t.text.length ? null : r - } - - function Et(t) { - var e = t.order; - return null == e && (e = t.order = zo(t.text)), e - } - - function Pt(t, e) { - return t._handlers && t._handlers[e] || Fo - } - - function $t(t, e, i) { - if (t.removeEventListener) t.removeEventListener(e, i, !1); - else if (t.detachEvent) t.detachEvent("on" + e, i); - else { - var n = t._handlers, - r = n && n[e]; - if (r) { - var s = d(r, i); - s > -1 && (n[e] = r.slice(0, s).concat(r.slice(s + 1))) - } - } - } - - function Lt(t, e) { - var i = Pt(t, e); - if (i.length) - for (var n = Array.prototype.slice.call(arguments, 2), r = 0; r < i.length; ++r) i[r].apply(null, n) - } - - function At(t, e, i) { - return "string" == typeof e && (e = { - type: e, - preventDefault: function() { - this.defaultPrevented = !0 - } - }), Lt(t, i || e.type, t, e), zt(e) || e.codemirrorIgnore - } - - function Nt(t) { - var e = t._handlers && t._handlers.cursorActivity; - if (e) - for (var i = t.curOp.cursorActivityHandlers || (t.curOp.cursorActivityHandlers = []), n = 0; n < e.length; ++n) - 1 == d(i, e[n]) && i.push(e[n]) - } - - function Ot(t, e) { - return Pt(t, e).length > 0 - } - - function It(t) { - t.prototype.on = function(t, e) { - Ho(this, t, e) - }, t.prototype.off = function(t, e) { - $t(this, t, e) - } - } - - function Dt(t) { - t.preventDefault ? t.preventDefault() : t.returnValue = !1 - } - - function _t(t) { - t.stopPropagation ? t.stopPropagation() : t.cancelBubble = !0 - } - - function zt(t) { - return null != t.defaultPrevented ? t.defaultPrevented : 0 == t.returnValue - } - - function Ft(t) { - Dt(t), _t(t) - } - - function Ht(t) { - return t.target || t.srcElement - } - - function Rt(t) { - var e = t.which; - return null == e && (1 & t.button ? e = 1 : 2 & t.button ? e = 3 : 4 & t.button && (e = 2)), go && t.ctrlKey && 1 == e && (e = 3), e - } - - function Vt(t) { - if (null == So) { - var e = n("span", "​"); - i(t, n("span", [e, document.createTextNode("x")])), 0 != t.firstChild.offsetHeight && (So = e.offsetWidth <= 1 && e.offsetHeight > 2 && !(no && ro < 8)) - } - var r = So ? n("span", "​") : n("span", " ", null, "display: inline-block; width: 1px; margin-right: -1px"); - return r.setAttribute("cm-text", ""), r - } - - function Wt(t) { - if (null != To) return To; - var n = i(t, document.createTextNode("AخA")), - r = bo(n, 0, 1).getBoundingClientRect(), - s = bo(n, 1, 2).getBoundingClientRect(); - return e(t), !(!r || r.left == r.right) && (To = s.right - r.right < 3) - } - - function Bt(t) { - if (null != jo) return jo; - var e = i(t, n("span", "x")), - r = e.getBoundingClientRect(), - s = bo(e, 0, 1).getBoundingClientRect(); - return jo = Math.abs(r.left - s.left) > 1 - } - - function jt(t, e) { - arguments.length > 2 && (e.dependencies = Array.prototype.slice.call(arguments, 2)), Uo[t] = e - } - - function Ut(t, e) { - qo[t] = e - } - - function qt(t) { - if ("string" == typeof t && qo.hasOwnProperty(t)) t = qo[t]; - else if (t && "string" == typeof t.name && qo.hasOwnProperty(t.name)) { - var e = qo[t.name]; - "string" == typeof e && (e = { - name: e - }), t = b(e, t), t.name = e.name - } else { - if ("string" == typeof t && /^[\w\-]+\/[\w\-]+\+xml$/.test(t)) return qt("application/xml"); - if ("string" == typeof t && /^[\w\-]+\/[\w\-]+\+json$/.test(t)) return qt("application/json") - } - return "string" == typeof t ? { - name: t - } : t || { - name: "null" - } - } - - function Kt(t, e) { - e = qt(e); - var i = Uo[e.name]; - if (!i) return Kt(t, "text/plain"); - var n = i(t, e); - if (Ko.hasOwnProperty(e.name)) { - var r = Ko[e.name]; - for (var s in r) r.hasOwnProperty(s) && (n.hasOwnProperty(s) && (n["_" + s] = n[s]), n[s] = r[s]) - } - if (n.name = e.name, e.helperType && (n.helperType = e.helperType), e.modeProps) - for (var o in e.modeProps) n[o] = e.modeProps[o]; - return n - } - - function Gt(t, e) { - c(e, Ko.hasOwnProperty(t) ? Ko[t] : Ko[t] = {}) - } - - function Yt(t, e) { - if (!0 === e) return e; - if (t.copyState) return t.copyState(e); - var i = {}; - for (var n in e) { - var r = e[n]; - r instanceof Array && (r = r.concat([])), i[n] = r - } - return i - } - - function Xt(t, e) { - for (var i; t.innerMode && (i = t.innerMode(e)) && i.mode != t;) e = i.state, t = i.mode; - return i || { - mode: t, - state: e - } - } - - function Jt(t, e, i) { - return !t.startState || t.startState(e, i) - } - - function Zt(t, e, i, n) { - var r = [t.state.modeGen], - s = {}; - oe(t, e.text, t.doc.mode, i, function(t, e) { - return r.push(t, e) - }, s, n); - for (var o = 0; o < t.state.overlays.length; ++o) ! function(i) { - var n = t.state.overlays[i], - o = 1, - a = 0; - oe(t, e.text, n.mode, !0, function(t, e) { - for (var i = o; a < t;) { - var s = r[o]; - s > t && r.splice(o, 1, t, r[o + 1], s), o += 2, a = Math.min(t, s) - } - if (e) - if (n.opaque) r.splice(i, o - i, t, "overlay " + e), o = i + 2; - else - for (; i < o; i += 2) { - var l = r[i + 1]; - r[i + 1] = (l ? l + " " : "") + "overlay " + e - } - }, s) - }(o); - return { - styles: r, - classes: s.bgClass || s.textClass ? s : null - } - } - - function Qt(t, e, i) { - if (!e.styles || e.styles[0] != t.state.modeGen) { - var n = te(t, $(e)), - r = Zt(t, e, e.text.length > t.options.maxHighlightLength ? Yt(t.doc.mode, n) : n); - e.stateAfter = n, e.styles = r.styles, r.classes ? e.styleClasses = r.classes : e.styleClasses && (e.styleClasses = null), i === t.doc.frontier && t.doc.frontier++ - } - return e.styles - } - - function te(t, e, i) { - var n = t.doc, - r = t.display; - if (!n.mode.startState) return !0; - var s = ae(t, e, i), - o = s > n.first && T(n, s - 1).stateAfter; - return o = o ? Yt(n.mode, o) : Jt(n.mode), n.iter(s, e, function(i) { - ee(t, i.text, o); - var a = s == e - 1 || s % 5 == 0 || s >= r.viewFrom && s < r.viewTo; - i.stateAfter = a ? Yt(n.mode, o) : null, ++s - }), i && (n.frontier = s), o - } - - function ee(t, e, i, n) { - var r = t.doc.mode, - s = new Go(e, t.options.tabSize); - for (s.start = s.pos = n || 0, "" == e && ie(r, i); !s.eol();) ne(r, s, i), s.start = s.pos - } - - function ie(t, e) { - if (t.blankLine) return t.blankLine(e); - if (t.innerMode) { - var i = Xt(t, e); - return i.mode.blankLine ? i.mode.blankLine(i.state) : void 0 - } - } - - function ne(t, e, i, n) { - for (var r = 0; r < 10; r++) { - n && (n[0] = Xt(t, i).mode); - var s = t.token(e, i); - if (e.pos > e.start) return s - } - throw new Error("Mode " + t.name + " failed to advance stream.") - } - - function re(t, e, i, n) { - var r, s = function(t) { - return { - start: h.start, - end: h.pos, - string: h.current(), - type: r || null, - state: t ? Yt(o.mode, u) : u - } - }, - o = t.doc, - a = o.mode; - e = H(o, e); - var l, c = T(o, e.line), - u = te(t, e.line, i), - h = new Go(c.text, t.options.tabSize); - for (n && (l = []); - (n || h.pos < e.ch) && !h.eol();) h.start = h.pos, r = ne(a, h, u), n && l.push(s(!0)); - return n ? l : s() - } - - function se(t, e) { - if (t) - for (;;) { - var i = t.match(/(?:^|\s+)line-(background-)?(\S+)/); - if (!i) break; - t = t.slice(0, i.index) + t.slice(i.index + i[0].length); - var n = i[1] ? "bgClass" : "textClass"; - null == e[n] ? e[n] = i[2] : new RegExp("(?:^|s)" + i[2] + "(?:$|s)").test(e[n]) || (e[n] += " " + i[2]) - } - return t - } - - function oe(t, e, i, n, r, s, o) { - var a = i.flattenSpans; - null == a && (a = t.options.flattenSpans); - var l, c = 0, - u = null, - h = new Go(e, t.options.tabSize), - d = t.options.addModeClass && [null]; - for ("" == e && se(ie(i, n), s); !h.eol();) { - if (h.pos > t.options.maxHighlightLength ? (a = !1, o && ee(t, e, n, h.pos), h.pos = e.length, l = null) : l = se(ne(i, h, n, d), s), d) { - var f = d[0].name; - f && (l = "m-" + (l ? f + " " + l : f)) - } - if (!a || u != l) { - for (; c < h.start;) c = Math.min(h.start, c + 5e3), r(c, u); - u = l - } - h.start = h.pos - } - for (; c < h.pos;) { - var p = Math.min(h.pos, c + 5e3); - r(p, u), c = p - } - } - - function ae(t, e, i) { - for (var n, r, s = t.doc, o = i ? -1 : e - (t.doc.mode.innerMode ? 1e3 : 100), a = e; a > o; --a) { - if (a <= s.first) return s.first; - var l = T(s, a - 1); - if (l.stateAfter && (!i || a <= s.frontier)) return a; - var c = u(l.text, null, t.options.tabSize); - (null == r || n > c) && (r = a - 1, n = c) - } - return r - } - - function le(t, e, i) { - this.text = t, tt(this, e), this.height = i ? i(this) : 1 - } - - function ce(t, e, i, n) { - t.text = e, t.stateAfter && (t.stateAfter = null), t.styles && (t.styles = null), null != t.order && (t.order = null), Q(t), tt(t, i); - var r = n ? n(t) : 1; - r != t.height && P(t, r) - } - - function ue(t) { - t.parent = null, Q(t) - } - - function he(t, e) { - if (!t || /^\s*$/.test(t)) return null; - var i = e.addModeClass ? Jo : Xo; - return i[t] || (i[t] = t.replace(/\S+/g, "cm-$&")) - } - - function de(t, e) { - var i = n("span", null, null, so ? "padding-right: .1px" : null), - r = { - pre: n("pre", [i], "CodeMirror-line"), - content: i, - col: 0, - pos: 0, - cm: t, - trailingSpace: !1, - splitSpaces: (no || so) && t.getOption("lineWrapping") - }; - e.measure = {}; - for (var s = 0; s <= (e.rest ? e.rest.length : 0); s++) { - var o = s ? e.rest[s - 1] : e.line, - l = void 0; - r.pos = 0, r.addToken = pe, Wt(t.display.measure) && (l = Et(o)) && (r.addToken = me(r.addToken, l)), r.map = []; - ye(o, r, Qt(t, o, e != t.display.externalMeasured && $(o))), o.styleClasses && (o.styleClasses.bgClass && (r.bgClass = a(o.styleClasses.bgClass, r.bgClass || "")), o.styleClasses.textClass && (r.textClass = a(o.styleClasses.textClass, r.textClass || ""))), 0 == r.map.length && r.map.push(0, 0, r.content.appendChild(Vt(t.display.measure))), 0 == s ? (e.measure.map = r.map, e.measure.cache = {}) : ((e.measure.maps || (e.measure.maps = [])).push(r.map), (e.measure.caches || (e.measure.caches = [])).push({})) - } - if (so) { - var c = r.content.lastChild; - (/\bcm-tab\b/.test(c.className) || c.querySelector && c.querySelector(".cm-tab")) && (r.content.className = "cm-tab-wrap-hack") - } - return Lt(t, "renderLine", t, e.line, r.pre), r.pre.className && (r.textClass = a(r.pre.className, r.textClass || "")), r - } - - function fe(t) { - var e = n("span", "•", "cm-invalidchar"); - return e.title = "\\u" + t.charCodeAt(0).toString(16), e.setAttribute("aria-label", e.title), e - } - - function pe(t, e, i, r, s, o, a) { - if (e) { - var l, c = t.splitSpaces ? ge(e, t.trailingSpace) : e, - u = t.cm.state.specialChars, - h = !1; - if (u.test(e)) { - l = document.createDocumentFragment(); - for (var d = 0;;) { - u.lastIndex = d; - var f = u.exec(e), - g = f ? f.index - d : e.length - d; - if (g) { - var m = document.createTextNode(c.slice(d, d + g)); - no && ro < 9 ? l.appendChild(n("span", [m])) : l.appendChild(m), t.map.push(t.pos, t.pos + g, m), t.col += g, t.pos += g - } - if (!f) break; - d += g + 1; - var v = void 0; - if ("\t" == f[0]) { - var y = t.cm.options.tabSize, - b = y - t.col % y; - v = l.appendChild(n("span", p(b), "cm-tab")), v.setAttribute("role", "presentation"), v.setAttribute("cm-text", "\t"), t.col += b - } else "\r" == f[0] || "\n" == f[0] ? (v = l.appendChild(n("span", "\r" == f[0] ? "␍" : "␤", "cm-invalidchar")), v.setAttribute("cm-text", f[0]), t.col += 1) : (v = t.cm.options.specialCharPlaceholder(f[0]), v.setAttribute("cm-text", f[0]), no && ro < 9 ? l.appendChild(n("span", [v])) : l.appendChild(v), t.col += 1); - t.map.push(t.pos, t.pos + 1, v), t.pos++ - } - } else t.col += e.length, l = document.createTextNode(c), t.map.push(t.pos, t.pos + e.length, l), no && ro < 9 && (h = !0), t.pos += e.length; - if (t.trailingSpace = 32 == c.charCodeAt(e.length - 1), i || r || s || h || a) { - var x = i || ""; - r && (x += r), s && (x += s); - var w = n("span", [l], x, a); - return o && (w.title = o), t.content.appendChild(w) - } - t.content.appendChild(l) - } - } - - function ge(t, e) { - if (t.length > 1 && !/ /.test(t)) return t; - for (var i = e, n = "", r = 0; r < t.length; r++) { - var s = t.charAt(r); - " " != s || !i || r != t.length - 1 && 32 != t.charCodeAt(r + 1) || (s = " "), n += s, i = " " == s - } - return n - } - - function me(t, e) { - return function(i, n, r, s, o, a, l) { - r = r ? r + " cm-force-border" : "cm-force-border"; - for (var c = i.pos, u = c + n.length;;) { - for (var h = void 0, d = 0; d < e.length && (h = e[d], !(h.to > c && h.from <= c)); d++); - if (h.to >= u) return t(i, n, r, s, o, a, l); - t(i, n.slice(0, h.to - c), r, s, null, a, l), s = null, n = n.slice(h.to - c), c = h.to - } - } - } - - function ve(t, e, i, n) { - var r = !n && i.widgetNode; - r && t.map.push(t.pos, t.pos + e, r), !n && t.cm.display.input.needsContentAttribute && (r || (r = t.content.appendChild(document.createElement("span"))), r.setAttribute("cm-marker", i.id)), r && (t.cm.display.input.setUneditable(r), t.content.appendChild(r)), t.pos += e, t.trailingSpace = !1 - } - - function ye(t, e, i) { - var n = t.markedSpans, - r = t.text, - s = 0; - if (n) - for (var o, a, l, c, u, h, d, f = r.length, p = 0, g = 1, m = "", v = 0;;) { - if (v == p) { - l = c = u = h = a = "", d = null, v = 1 / 0; - for (var y = [], b = void 0, x = 0; x < n.length; ++x) { - var w = n[x], - C = w.marker; - "bookmark" == C.type && w.from == p && C.widgetNode ? y.push(C) : w.from <= p && (null == w.to || w.to > p || C.collapsed && w.to == p && w.from == p) ? (null != w.to && w.to != p && v > w.to && (v = w.to, c = ""), C.className && (l += " " + C.className), C.css && (a = (a ? a + ";" : "") + C.css), C.startStyle && w.from == p && (u += " " + C.startStyle), C.endStyle && w.to == v && (b || (b = [])).push(C.endStyle, w.to), C.title && !h && (h = C.title), C.collapsed && (!d || nt(d.marker, C) < 0) && (d = w)) : w.from > p && v > w.from && (v = w.from) - } - if (b) - for (var k = 0; k < b.length; k += 2) b[k + 1] == v && (c += " " + b[k]); - if (!d || d.from == p) - for (var S = 0; S < y.length; ++S) ve(e, 0, y[S]); - if (d && (d.from || 0) == p) { - if (ve(e, (null == d.to ? f + 1 : d.to) - p, d.marker, null == d.from), null == d.to) return; - d.to == p && (d = !1) - } - } - if (p >= f) break; - for (var T = Math.min(f, v);;) { - if (m) { - var M = p + m.length; - if (!d) { - var E = M > T ? m.slice(0, T - p) : m; - e.addToken(e, E, o ? o + l : l, u, p + E.length == v ? c : "", h, a) - } - if (M >= T) { - m = m.slice(T - p), p = T; - break - } - p = M, u = "" - } - m = r.slice(s, s = i[g++]), o = he(i[g++], e.cm.options) - } - } else - for (var P = 1; P < i.length; P += 2) e.addToken(e, r.slice(s, s = i[P]), he(i[P + 1], e.cm.options)) - } - - function be(t, e, i) { - this.line = e, this.rest = ct(e), this.size = this.rest ? $(g(this.rest)) - i + 1 : 1, this.node = this.text = null, this.hidden = dt(t, e) - } - - function xe(t, e, i) { - for (var n, r = [], s = e; s < i; s = n) { - var o = new be(t.doc, T(t.doc, s), s); - n = s + o.size, r.push(o) - } - return r - } - - function we(t) { - Zo ? Zo.ops.push(t) : t.ownsGroup = Zo = { - ops: [t], - delayedCallbacks: [] - } - } - - function Ce(t) { - var e = t.delayedCallbacks, - i = 0; - do { - for (; i < e.length; i++) e[i].call(null); - for (var n = 0; n < t.ops.length; n++) { - var r = t.ops[n]; - if (r.cursorActivityHandlers) - for (; r.cursorActivityCalled < r.cursorActivityHandlers.length;) r.cursorActivityHandlers[r.cursorActivityCalled++].call(null, r.cm) - } - } while (i < e.length) - } - - function ke(t, e) { - var i = t.ownsGroup; - if (i) try { - Ce(i) - } finally { - Zo = null, e(i) - } - } - - function Se(t, e) { - var i = Pt(t, e); - if (i.length) { - var n, r = Array.prototype.slice.call(arguments, 2); - Zo ? n = Zo.delayedCallbacks : Qo ? n = Qo : (n = Qo = [], setTimeout(Te, 0)); - for (var s = 0; s < i.length; ++s) ! function(t) { - n.push(function() { - return i[t].apply(null, r) - }) - }(s) - } - } - - function Te() { - var t = Qo; - Qo = null; - for (var e = 0; e < t.length; ++e) t[e]() - } - - function Me(t, e, i, n) { - for (var r = 0; r < e.changes.length; r++) { - var s = e.changes[r]; - "text" == s ? Le(t, e) : "gutter" == s ? Ne(t, e, i, n) : "class" == s ? Ae(e) : "widget" == s && Oe(t, e, n) - } - e.changes = null - } - - function Ee(t) { - return t.node == t.text && (t.node = n("div", null, null, "position: relative"), t.text.parentNode && t.text.parentNode.replaceChild(t.node, t.text), t.node.appendChild(t.text), no && ro < 8 && (t.node.style.zIndex = 2)), t.node - } - - function Pe(t) { - var e = t.bgClass ? t.bgClass + " " + (t.line.bgClass || "") : t.line.bgClass; - if (e && (e += " CodeMirror-linebackground"), t.background) e ? t.background.className = e : (t.background.parentNode.removeChild(t.background), t.background = null); - else if (e) { - var i = Ee(t); - t.background = i.insertBefore(n("div", null, e), i.firstChild) - } - } - - function $e(t, e) { - var i = t.display.externalMeasured; - return i && i.line == e.line ? (t.display.externalMeasured = null, e.measure = i.measure, i.built) : de(t, e) - } - - function Le(t, e) { - var i = e.text.className, - n = $e(t, e); - e.text == e.node && (e.node = n.pre), e.text.parentNode.replaceChild(n.pre, e.text), e.text = n.pre, n.bgClass != e.bgClass || n.textClass != e.textClass ? (e.bgClass = n.bgClass, e.textClass = n.textClass, Ae(e)) : i && (e.text.className = i) - } - - function Ae(t) { - Pe(t), t.line.wrapClass ? Ee(t).className = t.line.wrapClass : t.node != t.text && (t.node.className = ""); - var e = t.textClass ? t.textClass + " " + (t.line.textClass || "") : t.line.textClass; - t.text.className = e || "" - } - - function Ne(t, e, i, r) { - if (e.gutter && (e.node.removeChild(e.gutter), e.gutter = null), e.gutterBackground && (e.node.removeChild(e.gutterBackground), e.gutterBackground = null), e.line.gutterClass) { - var s = Ee(e); - e.gutterBackground = n("div", null, "CodeMirror-gutter-background " + e.line.gutterClass, "left: " + (t.options.fixedGutter ? r.fixedPos : -r.gutterTotalWidth) + "px; width: " + r.gutterTotalWidth + "px"), s.insertBefore(e.gutterBackground, e.text) - } - var o = e.line.gutterMarkers; - if (t.options.lineNumbers || o) { - var a = Ee(e), - l = e.gutter = n("div", null, "CodeMirror-gutter-wrapper", "left: " + (t.options.fixedGutter ? r.fixedPos : -r.gutterTotalWidth) + "px"); - if (t.display.input.setUneditable(l), a.insertBefore(l, e.text), e.line.gutterClass && (l.className += " " + e.line.gutterClass), !t.options.lineNumbers || o && o["CodeMirror-linenumbers"] || (e.lineNumber = l.appendChild(n("div", N(t.options, i), "CodeMirror-linenumber CodeMirror-gutter-elt", "left: " + r.gutterLeft["CodeMirror-linenumbers"] + "px; width: " + t.display.lineNumInnerWidth + "px"))), o) - for (var c = 0; c < t.options.gutters.length; ++c) { - var u = t.options.gutters[c], - h = o.hasOwnProperty(u) && o[u]; - h && l.appendChild(n("div", [h], "CodeMirror-gutter-elt", "left: " + r.gutterLeft[u] + "px; width: " + r.gutterWidth[u] + "px")) - } - } - } - - function Oe(t, e, i) { - e.alignable && (e.alignable = null); - for (var n = e.node.firstChild, r = void 0; n; n = r) r = n.nextSibling, "CodeMirror-linewidget" == n.className && e.node.removeChild(n); - De(t, e, i) - } - - function Ie(t, e, i, n) { - var r = $e(t, e); - return e.text = e.node = r.pre, r.bgClass && (e.bgClass = r.bgClass), r.textClass && (e.textClass = r.textClass), Ae(e), Ne(t, e, i, n), De(t, e, n), e.node - } - - function De(t, e, i) { - if (_e(t, e.line, e, i, !0), e.rest) - for (var n = 0; n < e.rest.length; n++) _e(t, e.rest[n], e, i, !1) - } - - function _e(t, e, i, r, s) { - if (e.widgets) - for (var o = Ee(i), a = 0, l = e.widgets; a < l.length; ++a) { - var c = l[a], - u = n("div", [c.node], "CodeMirror-linewidget"); - c.handleMouseEvents || u.setAttribute("cm-ignore-events", "true"), ze(c, u, i, r), t.display.input.setUneditable(u), s && c.above ? o.insertBefore(u, i.gutter || i.text) : o.appendChild(u), Se(c, "redraw") - } - } - - function ze(t, e, i, n) { - if (t.noHScroll) { - (i.alignable || (i.alignable = [])).push(e); - var r = n.wrapperWidth; - e.style.left = n.fixedPos + "px", t.coverGutter || (r -= n.gutterTotalWidth, e.style.paddingLeft = n.gutterTotalWidth + "px"), e.style.width = r + "px" - } - t.coverGutter && (e.style.zIndex = 5, e.style.position = "relative", t.noHScroll || (e.style.marginLeft = -n.gutterTotalWidth + "px")) - } - - function Fe(t) { - if (null != t.height) return t.height; - var e = t.doc.cm; - if (!e) return 0; - if (!r(document.body, t.node)) { - var s = "position: relative;"; - t.coverGutter && (s += "margin-left: -" + e.display.gutters.offsetWidth + "px;"), t.noHScroll && (s += "width: " + e.display.wrapper.clientWidth + "px;"), i(e.display.measure, n("div", [t.node], null, s)) - } - return t.height = t.node.parentNode.offsetHeight - } - - function He(t, e) { - for (var i = Ht(e); i != t.wrapper; i = i.parentNode) - if (!i || 1 == i.nodeType && "true" == i.getAttribute("cm-ignore-events") || i.parentNode == t.sizer && i != t.mover) return !0 - } - - function Re(t) { - return t.lineSpace.offsetTop - } - - function Ve(t) { - return t.mover.offsetHeight - t.lineSpace.offsetHeight - } - - function We(t) { - if (t.cachedPaddingH) return t.cachedPaddingH; - var e = i(t.measure, n("pre", "x")), - r = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle, - s = { - left: parseInt(r.paddingLeft), - right: parseInt(r.paddingRight) - }; - return isNaN(s.left) || isNaN(s.right) || (t.cachedPaddingH = s), s - } - - function Be(t) { - return Mo - t.display.nativeBarWidth - } - - function je(t) { - return t.display.scroller.clientWidth - Be(t) - t.display.barWidth - } - - function Ue(t) { - return t.display.scroller.clientHeight - Be(t) - t.display.barHeight - } - - function qe(t, e, i) { - var n = t.options.lineWrapping, - r = n && je(t); - if (!e.measure.heights || n && e.measure.width != r) { - var s = e.measure.heights = []; - if (n) { - e.measure.width = r; - for (var o = e.text.firstChild.getClientRects(), a = 0; a < o.length - 1; a++) { - var l = o[a], - c = o[a + 1]; - Math.abs(l.bottom - c.bottom) > 2 && s.push((l.bottom + c.top) / 2 - i.top) - } - } - s.push(i.bottom - i.top) - } - } - - function Ke(t, e, i) { - if (t.line == e) return { - map: t.measure.map, - cache: t.measure.cache - }; - for (var n = 0; n < t.rest.length; n++) - if (t.rest[n] == e) return { - map: t.measure.maps[n], - cache: t.measure.caches[n] - }; - for (var r = 0; r < t.rest.length; r++) - if ($(t.rest[r]) > i) return { - map: t.measure.maps[r], - cache: t.measure.caches[r], - before: !0 - } - } - - function Ge(t, e) { - e = lt(e); - var n = $(e), - r = t.display.externalMeasured = new be(t.doc, e, n); - r.lineN = n; - var s = r.built = de(t, r); - return r.text = s.pre, i(t.display.lineMeasure, s.pre), r - } - - function Ye(t, e, i, n) { - return Ze(t, Je(t, e), i, n) - } - - function Xe(t, e) { - if (e >= t.display.viewFrom && e < t.display.viewTo) return t.display.view[ki(t, e)]; - var i = t.display.externalMeasured; - return i && e >= i.lineN && e < i.lineN + i.size ? i : void 0 - } - - function Je(t, e) { - var i = $(e), - n = Xe(t, i); - n && !n.text ? n = null : n && n.changes && (Me(t, n, i, yi(t)), t.curOp.forceUpdate = !0), n || (n = Ge(t, e)); - var r = Ke(n, e, i); - return { - line: e, - view: n, - rect: null, - map: r.map, - cache: r.cache, - before: r.before, - hasHeights: !1 - } - } - - function Ze(t, e, i, n, r) { - e.before && (i = -1); - var s, o = i + (n || ""); - return e.cache.hasOwnProperty(o) ? s = e.cache[o] : (e.rect || (e.rect = e.view.text.getBoundingClientRect()), e.hasHeights || (qe(t, e.view, e.rect), e.hasHeights = !0), s = ei(t, e, i, n), s.bogus || (e.cache[o] = s)), { - left: s.left, - right: s.right, - top: r ? s.rtop : s.top, - bottom: r ? s.rbottom : s.bottom - } - } - - function Qe(t, e, i) { - for (var n, r, s, o, a, l, c = 0; c < t.length; c += 3) - if (a = t[c], l = t[c + 1], e < a ? (r = 0, s = 1, o = "left") : e < l ? (r = e - a, s = r + 1) : (c == t.length - 3 || e == l && t[c + 3] > e) && (s = l - a, r = s - 1, e >= l && (o = "right")), null != r) { - if (n = t[c + 2], a == l && i == (n.insertLeft ? "left" : "right") && (o = i), "left" == i && 0 == r) - for (; c && t[c - 2] == t[c - 3] && t[c - 1].insertLeft;) n = t[2 + (c -= 3)], o = "left"; - if ("right" == i && r == l - a) - for (; c < t.length - 3 && t[c + 3] == t[c + 4] && !t[c + 5].insertLeft;) n = t[(c += 3) + 2], o = "right"; - break - } - return { - node: n, - start: r, - end: s, - collapse: o, - coverStart: a, - coverEnd: l - } - } - - function ti(t, e) { - var i = ta; - if ("left" == e) - for (var n = 0; n < t.length && (i = t[n]).left == i.right; n++); - else - for (var r = t.length - 1; r >= 0 && (i = t[r]).left == i.right; r--); - return i - } - - function ei(t, e, i, n) { - var r, s = Qe(e.map, i, n), - o = s.node, - a = s.start, - l = s.end, - c = s.collapse; - if (3 == o.nodeType) { - for (var u = 0; u < 4; u++) { - for (; a && k(e.line.text.charAt(s.coverStart + a));) --a; - for (; s.coverStart + l < s.coverEnd && k(e.line.text.charAt(s.coverStart + l));) ++l; - if (r = no && ro < 9 && 0 == a && l == s.coverEnd - s.coverStart ? o.parentNode.getBoundingClientRect() : ti(bo(o, a, l).getClientRects(), n), r.left || r.right || 0 == a) break; - l = a, a -= 1, c = "right" - } - no && ro < 11 && (r = ii(t.display.measure, r)) - } else { - a > 0 && (c = n = "right"); - var h; - r = t.options.lineWrapping && (h = o.getClientRects()).length > 1 ? h["right" == n ? h.length - 1 : 0] : o.getBoundingClientRect() - } - if (no && ro < 9 && !a && (!r || !r.left && !r.right)) { - var d = o.parentNode.getClientRects()[0]; - r = d ? { - left: d.left, - right: d.left + vi(t.display), - top: d.top, - bottom: d.bottom - } : ta - } - for (var f = r.top - e.rect.top, p = r.bottom - e.rect.top, g = (f + p) / 2, m = e.view.measure.heights, v = 0; v < m.length - 1 && !(g < m[v]); v++); - var y = v ? m[v - 1] : 0, - b = m[v], - x = { - left: ("right" == c ? r.right : r.left) - e.rect.left, - right: ("left" == c ? r.left : r.right) - e.rect.left, - top: y, - bottom: b - }; - return r.left || r.right || (x.bogus = !0), t.options.singleCursorHeightPerLine || (x.rtop = f, x.rbottom = p), x - } - - function ii(t, e) { - if (!window.screen || null == screen.logicalXDPI || screen.logicalXDPI == screen.deviceXDPI || !Bt(t)) return e; - var i = screen.logicalXDPI / screen.deviceXDPI, - n = screen.logicalYDPI / screen.deviceYDPI; - return { - left: e.left * i, - right: e.right * i, - top: e.top * n, - bottom: e.bottom * n - } - } - - function ni(t) { - if (t.measure && (t.measure.cache = {}, t.measure.heights = null, t.rest)) - for (var e = 0; e < t.rest.length; e++) t.measure.caches[e] = {} - } - - function ri(t) { - t.display.externalMeasure = null, e(t.display.lineMeasure); - for (var i = 0; i < t.display.view.length; i++) ni(t.display.view[i]) - } - - function si(t) { - ri(t), t.display.cachedCharWidth = t.display.cachedTextHeight = t.display.cachedPaddingH = null, t.options.lineWrapping || (t.display.maxLineChanged = !0), t.display.lineNumChars = null - } - - function oi() { - return window.pageXOffset || (document.documentElement || document.body).scrollLeft - } - - function ai() { - return window.pageYOffset || (document.documentElement || document.body).scrollTop - } - - function li(t, e, i, n, r) { - if (!r && e.widgets) - for (var s = 0; s < e.widgets.length; ++s) - if (e.widgets[s].above) { - var o = Fe(e.widgets[s]); - i.top += o, i.bottom += o - } - if ("line" == n) return i; - n || (n = "local"); - var a = pt(e); - if ("local" == n ? a += Re(t.display) : a -= t.display.viewOffset, "page" == n || "window" == n) { - var l = t.display.lineSpace.getBoundingClientRect(); - a += l.top + ("window" == n ? 0 : ai()); - var c = l.left + ("window" == n ? 0 : oi()); - i.left += c, i.right += c - } - return i.top += a, i.bottom += a, i - } - - function ci(t, e, i) { - if ("div" == i) return e; - var n = e.left, - r = e.top; - if ("page" == i) n -= oi(), r -= ai(); - else if ("local" == i || !i) { - var s = t.display.sizer.getBoundingClientRect(); - n += s.left, r += s.top - } - var o = t.display.lineSpace.getBoundingClientRect(); - return { - left: n - o.left, - top: r - o.top - } - } - - function ui(t, e, i, n, r) { - return n || (n = T(t.doc, e.line)), li(t, n, Ye(t, n, e.ch, r), i) - } - - function hi(t, e, i, n, r, s) { - function o(e, o) { - var a = Ze(t, r, e, o ? "right" : "left", s); - return o ? a.left = a.right : a.right = a.left, li(t, n, a, i) - } - - function a(t, e) { - var i = l[e], - n = i.level % 2; - return t == yt(i) && e && i.level < l[e - 1].level ? (i = l[--e], t = bt(i) - (i.level % 2 ? 0 : 1), n = !0) : t == bt(i) && e < l.length - 1 && i.level < l[e + 1].level && (i = l[++e], t = yt(i) - i.level % 2, n = !1), n && t == i.to && t > i.from ? o(t - 1) : o(t, n) - } - n = n || T(t.doc, e.line), r || (r = Je(t, n)); - var l = Et(n), - c = e.ch; - if (!l) return o(c); - var u = kt(l, c), - h = a(c, u); - return null != _o && (h.other = a(c, _o)), h - } - - function di(t, e) { - var i = 0; - e = H(t.doc, e), t.options.lineWrapping || (i = vi(t.display) * e.ch); - var n = T(t.doc, e.line), - r = pt(n) + Re(t.display); - return { - left: i, - right: i, - top: r, - bottom: r + n.height - } - } - - function fi(t, e, i, n) { - var r = O(t, e); - return r.xRel = n, i && (r.outside = !0), r - } - - function pi(t, e, i) { - var n = t.doc; - if ((i += t.display.viewOffset) < 0) return fi(n.first, 0, !0, -1); - var r = L(n, i), - s = n.first + n.size - 1; - if (r > s) return fi(n.first + n.size - 1, T(n, s).text.length, !0, 1); - e < 0 && (e = 0); - for (var o = T(n, r);;) { - var a = gi(t, o, r, e, i), - l = ot(o), - c = l && l.find(0, !0); - if (!l || !(a.ch > c.from.ch || a.ch == c.from.ch && a.xRel > 0)) return a; - r = $(o = c.to.line) - } - } - - function gi(t, e, i, n, r) { - function s(n) { - var r = hi(t, O(i, n), "line", e, c); - return a = !0, o > r.bottom ? r.left - l : o < r.top ? r.left + l : (a = !1, r.left) - } - var o = r - pt(e), - a = !1, - l = 2 * t.display.wrapper.clientWidth, - c = Je(t, e), - u = Et(e), - h = e.text.length, - d = xt(e), - f = wt(e), - p = s(d), - g = a, - m = s(f), - v = a; - if (n > m) return fi(i, f, v, 1); - for (;;) { - if (u ? f == d || f == Tt(e, d, 1) : f - d <= 1) { - var y = n < p || n - p <= m - n ? d : f, - b = y == d ? g : v, - x = n - (y == d ? p : m); - if (v && !u && !/\s/.test(e.text.charAt(y)) && x > 0 && y < e.text.length && c.view.measure.heights.length > 1) { - var w = Ze(t, c, y, "right"); - o <= w.bottom && o >= w.top && Math.abs(n - w.right) < x && (b = !1, y++, x = n - w.right) - } - for (; k(e.text.charAt(y));) ++y; - return fi(i, y, b, x < -1 ? -1 : x > 1 ? 1 : 0) - } - var C = Math.ceil(h / 2), - S = d + C; - if (u) { - S = d; - for (var T = 0; T < C; ++T) S = Tt(e, S, 1) - } - var M = s(S); - M > n ? (f = S, m = M, (v = a) && (m += 1e3), h = C) : (d = S, p = M, g = a, h -= C) - } - } - - function mi(t) { - if (null != t.cachedTextHeight) return t.cachedTextHeight; - if (null == Yo) { - Yo = n("pre"); - for (var r = 0; r < 49; ++r) Yo.appendChild(document.createTextNode("x")), Yo.appendChild(n("br")); - Yo.appendChild(document.createTextNode("x")) - } - i(t.measure, Yo); - var s = Yo.offsetHeight / 50; - return s > 3 && (t.cachedTextHeight = s), e(t.measure), s || 1 - } - - function vi(t) { - if (null != t.cachedCharWidth) return t.cachedCharWidth; - var e = n("span", "xxxxxxxxxx"), - r = n("pre", [e]); - i(t.measure, r); - var s = e.getBoundingClientRect(), - o = (s.right - s.left) / 10; - return o > 2 && (t.cachedCharWidth = o), o || 10 - } - - function yi(t) { - for (var e = t.display, i = {}, n = {}, r = e.gutters.clientLeft, s = e.gutters.firstChild, o = 0; s; s = s.nextSibling, ++o) i[t.options.gutters[o]] = s.offsetLeft + s.clientLeft + r, n[t.options.gutters[o]] = s.clientWidth; - return { - fixedPos: bi(e), - gutterTotalWidth: e.gutters.offsetWidth, - gutterLeft: i, - gutterWidth: n, - wrapperWidth: e.wrapper.clientWidth - } - } - - function bi(t) { - return t.scroller.getBoundingClientRect().left - t.sizer.getBoundingClientRect().left - } - - function xi(t) { - var e = mi(t.display), - i = t.options.lineWrapping, - n = i && Math.max(5, t.display.scroller.clientWidth / vi(t.display) - 3); - return function(r) { - if (dt(t.doc, r)) return 0; - var s = 0; - if (r.widgets) - for (var o = 0; o < r.widgets.length; o++) r.widgets[o].height && (s += r.widgets[o].height); - return i ? s + (Math.ceil(r.text.length / n) || 1) * e : s + e - } - } - - function wi(t) { - var e = t.doc, - i = xi(t); - e.iter(function(t) { - var e = i(t); - e != t.height && P(t, e) - }) - } - - function Ci(t, e, i, n) { - var r = t.display; - if (!i && "true" == Ht(e).getAttribute("cm-not-content")) return null; - var s, o, a = r.lineSpace.getBoundingClientRect(); - try { - s = e.clientX - a.left, o = e.clientY - a.top - } catch (e) { - return null - } - var l, c = pi(t, s, o); - if (n && 1 == c.xRel && (l = T(t.doc, c.line).text).length == c.ch) { - var h = u(l, l.length, t.options.tabSize) - l.length; - c = O(c.line, Math.max(0, Math.round((s - We(t.display).left) / vi(t.display)) - h)) - } - return c - } - - function ki(t, e) { - if (e >= t.display.viewTo) return null; - if ((e -= t.display.viewFrom) < 0) return null; - for (var i = t.display.view, n = 0; n < i.length; n++) - if ((e -= i[n].size) < 0) return n - } - - function Si(t) { - t.display.input.showSelection(t.display.input.prepareSelection()) - } - - function Ti(t, e) { - for (var i = t.doc, n = {}, r = n.cursors = document.createDocumentFragment(), s = n.selection = document.createDocumentFragment(), o = 0; o < i.sel.ranges.length; o++) - if (!1 !== e || o != i.sel.primIndex) { - var a = i.sel.ranges[o]; - if (!(a.from().line >= t.display.viewTo || a.to().line < t.display.viewFrom)) { - var l = a.empty(); - (l || t.options.showCursorWhenSelecting) && Mi(t, a.head, r), l || Ei(t, a, s) - } - } - return n - } - - function Mi(t, e, i) { - var r = hi(t, e, "div", null, null, !t.options.singleCursorHeightPerLine), - s = i.appendChild(n("div", " ", "CodeMirror-cursor")); - if (s.style.left = r.left + "px", s.style.top = r.top + "px", s.style.height = Math.max(0, r.bottom - r.top) * t.options.cursorHeight + "px", r.other) { - var o = i.appendChild(n("div", " ", "CodeMirror-cursor CodeMirror-secondarycursor")); - o.style.display = "", o.style.left = r.other.left + "px", o.style.top = r.other.top + "px", o.style.height = .85 * (r.other.bottom - r.other.top) + "px" - } - } - - function Ei(t, e, i) { - function r(t, e, i, r) { - e < 0 && (e = 0), e = Math.round(e), r = Math.round(r), l.appendChild(n("div", null, "CodeMirror-selected", "position: absolute; left: " + t + "px;\n top: " + e + "px; width: " + (null == i ? h - t : i) + "px;\n height: " + (r - e) + "px")) - } - - function s(e, i, n) { - function s(i, n) { - return ui(t, O(e, i), "div", c, n) - } - var o, l, c = T(a, e), - d = c.text.length; - return vt(Et(c), i || 0, null == n ? d : n, function(t, e, a) { - var c, f, p, g = s(t, "left"); - if (t == e) c = g, f = p = g.left; - else { - if (c = s(e - 1, "right"), "rtl" == a) { - var m = g; - g = c, c = m - } - f = g.left, p = c.right - } - null == i && 0 == t && (f = u), c.top - g.top > 3 && (r(f, g.top, null, g.bottom), f = u, g.bottom < c.top && r(f, g.bottom, null, c.top)), null == n && e == d && (p = h), (!o || g.top < o.top || g.top == o.top && g.left < o.left) && (o = g), (!l || c.bottom > l.bottom || c.bottom == l.bottom && c.right > l.right) && (l = c), f < u + 1 && (f = u), r(f, c.top, p - f, c.bottom) - }), { - start: o, - end: l - } - } - var o = t.display, - a = t.doc, - l = document.createDocumentFragment(), - c = We(t.display), - u = c.left, - h = Math.max(o.sizerWidth, je(t) - o.sizer.offsetLeft) - c.right, - d = e.from(), - f = e.to(); - if (d.line == f.line) s(d.line, d.ch, f.ch); - else { - var p = T(a, d.line), - g = T(a, f.line), - m = lt(p) == lt(g), - v = s(d.line, d.ch, m ? p.text.length + 1 : null).end, - y = s(f.line, m ? 0 : null, f.ch).start; - m && (v.top < y.top - 2 ? (r(v.right, v.top, null, v.bottom), r(u, y.top, y.left, y.bottom)) : r(v.right, v.top, y.left - v.right, v.bottom)), v.bottom < y.top && r(u, v.bottom, null, y.top) - } - i.appendChild(l) - } - - function Pi(t) { - if (t.state.focused) { - var e = t.display; - clearInterval(e.blinker); - var i = !0; - e.cursorDiv.style.visibility = "", t.options.cursorBlinkRate > 0 ? e.blinker = setInterval(function() { - return e.cursorDiv.style.visibility = (i = !i) ? "" : "hidden" - }, t.options.cursorBlinkRate) : t.options.cursorBlinkRate < 0 && (e.cursorDiv.style.visibility = "hidden") - } - } - - function $i(t) { - t.state.focused || (t.display.input.focus(), Ai(t)) - } - - function Li(t) { - t.state.delayingBlurEvent = !0, setTimeout(function() { - t.state.delayingBlurEvent && (t.state.delayingBlurEvent = !1, Ni(t)) - }, 100) - } - - function Ai(t, e) { - t.state.delayingBlurEvent && (t.state.delayingBlurEvent = !1), "nocursor" != t.options.readOnly && (t.state.focused || (Lt(t, "focus", t, e), t.state.focused = !0, o(t.display.wrapper, "CodeMirror-focused"), t.curOp || t.display.selForContextMenu == t.doc.sel || (t.display.input.reset(), so && setTimeout(function() { - return t.display.input.reset(!0) - }, 20)), t.display.input.receivedFocus()), Pi(t)) - } - - function Ni(t, e) { - t.state.delayingBlurEvent || (t.state.focused && (Lt(t, "blur", t, e), t.state.focused = !1, Co(t.display.wrapper, "CodeMirror-focused")), clearInterval(t.display.blinker), setTimeout(function() { - t.state.focused || (t.display.shift = !1) - }, 150)) - } - - function Oi(t) { - var e = t.display, - i = e.view; - if (e.alignWidgets || e.gutters.firstChild && t.options.fixedGutter) { - for (var n = bi(e) - e.scroller.scrollLeft + t.doc.scrollLeft, r = e.gutters.offsetWidth, s = n + "px", o = 0; o < i.length; o++) - if (!i[o].hidden) { - t.options.fixedGutter && (i[o].gutter && (i[o].gutter.style.left = s), i[o].gutterBackground && (i[o].gutterBackground.style.left = s)); - var a = i[o].alignable; - if (a) - for (var l = 0; l < a.length; l++) a[l].style.left = s - } - t.options.fixedGutter && (e.gutters.style.left = n + r + "px") - } - } - - function Ii(t) { - if (!t.options.lineNumbers) return !1; - var e = t.doc, - i = N(t.options, e.first + e.size - 1), - r = t.display; - if (i.length != r.lineNumChars) { - var s = r.measure.appendChild(n("div", [n("div", i)], "CodeMirror-linenumber CodeMirror-gutter-elt")), - o = s.firstChild.offsetWidth, - a = s.offsetWidth - o; - return r.lineGutter.style.width = "", r.lineNumInnerWidth = Math.max(o, r.lineGutter.offsetWidth - a) + 1, r.lineNumWidth = r.lineNumInnerWidth + a, r.lineNumChars = r.lineNumInnerWidth ? i.length : -1, r.lineGutter.style.width = r.lineNumWidth + "px", $n(t), !0 - } - return !1 - } - - function Di(t) { - for (var e = t.display, i = e.lineDiv.offsetTop, n = 0; n < e.view.length; n++) { - var r = e.view[n], - s = void 0; - if (!r.hidden) { - if (no && ro < 8) { - var o = r.node.offsetTop + r.node.offsetHeight; - s = o - i, i = o - } else { - var a = r.node.getBoundingClientRect(); - s = a.bottom - a.top - } - var l = r.line.height - s; - if (s < 2 && (s = mi(e)), (l > .001 || l < -.001) && (P(r.line, s), _i(r.line), r.rest)) - for (var c = 0; c < r.rest.length; c++) _i(r.rest[c]) - } - } - } - - function _i(t) { - if (t.widgets) - for (var e = 0; e < t.widgets.length; ++e) t.widgets[e].height = t.widgets[e].node.parentNode.offsetHeight - } - - function zi(t, e, i) { - var n = i && null != i.top ? Math.max(0, i.top) : t.scroller.scrollTop; - n = Math.floor(n - Re(t)); - var r = i && null != i.bottom ? i.bottom : n + t.wrapper.clientHeight, - s = L(e, n), - o = L(e, r); - if (i && i.ensure) { - var a = i.ensure.from.line, - l = i.ensure.to.line; - a < s ? (s = a, o = L(e, pt(T(e, a)) + t.wrapper.clientHeight)) : Math.min(l, e.lastLine()) >= o && (s = L(e, pt(T(e, l)) - t.wrapper.clientHeight), o = l) - } - return { - from: s, - to: Math.max(o, s + 1) - } - } - - function Fi(t, e) { - Math.abs(t.doc.scrollTop - e) < 2 || (t.doc.scrollTop = e, to || En(t, { - top: e - }), t.display.scroller.scrollTop != e && (t.display.scroller.scrollTop = e), t.display.scrollbars.setScrollTop(e), to && En(t), wn(t, 100)) - } - - function Hi(t, e, i) { - (i ? e == t.doc.scrollLeft : Math.abs(t.doc.scrollLeft - e) < 2) || (e = Math.min(e, t.display.scroller.scrollWidth - t.display.scroller.clientWidth), t.doc.scrollLeft = e, Oi(t), t.display.scroller.scrollLeft != e && (t.display.scroller.scrollLeft = e), t.display.scrollbars.setScrollLeft(e)) - } - - function Ri(t) { - var e = t.wheelDeltaX, - i = t.wheelDeltaY; - return null == e && t.detail && t.axis == t.HORIZONTAL_AXIS && (e = t.detail), null == i && t.detail && t.axis == t.VERTICAL_AXIS ? i = t.detail : null == i && (i = t.wheelDelta), { - x: e, - y: i - } - } - - function Vi(t) { - var e = Ri(t); - return e.x *= ia, e.y *= ia, e - } - - function Wi(t, e) { - var i = Ri(e), - n = i.x, - r = i.y, - s = t.display, - o = s.scroller, - a = o.scrollWidth > o.clientWidth, - l = o.scrollHeight > o.clientHeight; - if (n && a || r && l) { - if (r && go && so) t: for (var c = e.target, u = s.view; c != o; c = c.parentNode) - for (var h = 0; h < u.length; h++) - if (u[h].node == c) { - t.display.currentWheelTarget = c; - break t - } - if (n && !to && !lo && null != ia) return r && l && Fi(t, Math.max(0, Math.min(o.scrollTop + r * ia, o.scrollHeight - o.clientHeight))), Hi(t, Math.max(0, Math.min(o.scrollLeft + n * ia, o.scrollWidth - o.clientWidth))), (!r || r && l) && Dt(e), void(s.wheelStartX = null); - if (r && null != ia) { - var d = r * ia, - f = t.doc.scrollTop, - p = f + s.wrapper.clientHeight; - d < 0 ? f = Math.max(0, f + d - 50) : p = Math.min(t.doc.height, p + d + 50), En(t, { - top: f, - bottom: p - }) - } - ea < 20 && (null == s.wheelStartX ? (s.wheelStartX = o.scrollLeft, s.wheelStartY = o.scrollTop, s.wheelDX = n, s.wheelDY = r, setTimeout(function() { - if (null != s.wheelStartX) { - var t = o.scrollLeft - s.wheelStartX, - e = o.scrollTop - s.wheelStartY, - i = e && s.wheelDY && e / s.wheelDY || t && s.wheelDX && t / s.wheelDX; - s.wheelStartX = s.wheelStartY = null, i && (ia = (ia * ea + i) / (ea + 1), ++ea) - } - }, 200)) : (s.wheelDX += n, s.wheelDY += r)) - } - } - - function Bi(t) { - var e = t.display, - i = e.gutters.offsetWidth, - n = Math.round(t.doc.height + Ve(t.display)); - return { - clientHeight: e.scroller.clientHeight, - viewHeight: e.wrapper.clientHeight, - scrollWidth: e.scroller.scrollWidth, - clientWidth: e.scroller.clientWidth, - viewWidth: e.wrapper.clientWidth, - barLeft: t.options.fixedGutter ? i : 0, - docHeight: n, - scrollHeight: n + Be(t) + e.barHeight, - nativeBarWidth: e.nativeBarWidth, - gutterWidth: i - } - } - - function ji(t, e, i) { - this.cm = i; - var r = this.vert = n("div", [n("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"), - s = this.horiz = n("div", [n("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); - t(r), t(s), Ho(r, "scroll", function() { - r.clientHeight && e(r.scrollTop, "vertical") - }), Ho(s, "scroll", function() { - s.clientWidth && e(s.scrollLeft, "horizontal") - }), this.checkedZeroWidth = !1, no && ro < 8 && (this.horiz.style.minHeight = this.vert.style.minWidth = "18px") - } - - function Ui() {} - - function qi(t, e) { - e || (e = Bi(t)); - var i = t.display.barWidth, - n = t.display.barHeight; - Ki(t, e); - for (var r = 0; r < 4 && i != t.display.barWidth || n != t.display.barHeight; r++) i != t.display.barWidth && t.options.lineWrapping && Di(t), Ki(t, Bi(t)), i = t.display.barWidth, n = t.display.barHeight - } - - function Ki(t, e) { - var i = t.display, - n = i.scrollbars.update(e); - i.sizer.style.paddingRight = (i.barWidth = n.right) + "px", i.sizer.style.paddingBottom = (i.barHeight = n.bottom) + "px", i.heightForcer.style.borderBottom = n.bottom + "px solid transparent", n.right && n.bottom ? (i.scrollbarFiller.style.display = "block", i.scrollbarFiller.style.height = n.bottom + "px", i.scrollbarFiller.style.width = n.right + "px") : i.scrollbarFiller.style.display = "", n.bottom && t.options.coverGutterNextToScrollbar && t.options.fixedGutter ? (i.gutterFiller.style.display = "block", i.gutterFiller.style.height = n.bottom + "px", i.gutterFiller.style.width = e.gutterWidth + "px") : i.gutterFiller.style.display = "" - } - - function Gi(t) { - t.display.scrollbars && (t.display.scrollbars.clear(), t.display.scrollbars.addClass && Co(t.display.wrapper, t.display.scrollbars.addClass)), t.display.scrollbars = new na[t.options.scrollbarStyle](function(e) { - t.display.wrapper.insertBefore(e, t.display.scrollbarFiller), Ho(e, "mousedown", function() { - t.state.focused && setTimeout(function() { - return t.display.input.focus() - }, 0) - }), e.setAttribute("cm-not-content", "true") - }, function(e, i) { - "horizontal" == i ? Hi(t, e) : Fi(t, e) - }, t), t.display.scrollbars.addClass && o(t.display.wrapper, t.display.scrollbars.addClass) - } - - function Yi(t, e) { - if (!At(t, "scrollCursorIntoView")) { - var i = t.display, - r = i.sizer.getBoundingClientRect(), - s = null; - if (e.top + r.top < 0 ? s = !0 : e.bottom + r.top > (window.innerHeight || document.documentElement.clientHeight) && (s = !1), null != s && !ho) { - var o = n("div", "​", null, "position: absolute;\n top: " + (e.top - i.viewOffset - Re(t.display)) + "px;\n height: " + (e.bottom - e.top + Be(t) + i.barHeight) + "px;\n left: " + e.left + "px; width: 2px;"); - t.display.lineSpace.appendChild(o), o.scrollIntoView(s), t.display.lineSpace.removeChild(o) - } - } - } - - function Xi(t, e, i, n) { - null == n && (n = 0); - for (var r, s = 0; s < 5; s++) { - var o = !1; - r = hi(t, e); - var a = i && i != e ? hi(t, i) : r, - l = Zi(t, Math.min(r.left, a.left), Math.min(r.top, a.top) - n, Math.max(r.left, a.left), Math.max(r.bottom, a.bottom) + n), - c = t.doc.scrollTop, - u = t.doc.scrollLeft; - if (null != l.scrollTop && (Fi(t, l.scrollTop), Math.abs(t.doc.scrollTop - c) > 1 && (o = !0)), null != l.scrollLeft && (Hi(t, l.scrollLeft), Math.abs(t.doc.scrollLeft - u) > 1 && (o = !0)), !o) break - } - return r - } - - function Ji(t, e, i, n, r) { - var s = Zi(t, e, i, n, r); - null != s.scrollTop && Fi(t, s.scrollTop), null != s.scrollLeft && Hi(t, s.scrollLeft) - } - - function Zi(t, e, i, n, r) { - var s = t.display, - o = mi(t.display); - i < 0 && (i = 0); - var a = t.curOp && null != t.curOp.scrollTop ? t.curOp.scrollTop : s.scroller.scrollTop, - l = Ue(t), - c = {}; - r - i > l && (r = i + l); - var u = t.doc.height + Ve(s), - h = i < o, - d = r > u - o; - if (i < a) c.scrollTop = h ? 0 : i; - else if (r > a + l) { - var f = Math.min(i, (d ? u : r) - l); - f != a && (c.scrollTop = f) - } - var p = t.curOp && null != t.curOp.scrollLeft ? t.curOp.scrollLeft : s.scroller.scrollLeft, - g = je(t) - (t.options.fixedGutter ? s.gutters.offsetWidth : 0), - m = n - e > g; - return m && (n = e + g), e < 10 ? c.scrollLeft = 0 : e < p ? c.scrollLeft = Math.max(0, e - (m ? 0 : 10)) : n > g + p - 3 && (c.scrollLeft = n + (m ? 0 : 10) - g), c - } - - function Qi(t, e, i) { - null == e && null == i || en(t), null != e && (t.curOp.scrollLeft = (null == t.curOp.scrollLeft ? t.doc.scrollLeft : t.curOp.scrollLeft) + e), null != i && (t.curOp.scrollTop = (null == t.curOp.scrollTop ? t.doc.scrollTop : t.curOp.scrollTop) + i) - } - - function tn(t) { - en(t); - var e = t.getCursor(), - i = e, - n = e; - t.options.lineWrapping || (i = e.ch ? O(e.line, e.ch - 1) : e, n = O(e.line, e.ch + 1)), t.curOp.scrollToPos = { - from: i, - to: n, - margin: t.options.cursorScrollMargin, - isCursor: !0 - } - } - - function en(t) { - var e = t.curOp.scrollToPos; - if (e) { - t.curOp.scrollToPos = null; - var i = di(t, e.from), - n = di(t, e.to), - r = Zi(t, Math.min(i.left, n.left), Math.min(i.top, n.top) - e.margin, Math.max(i.right, n.right), Math.max(i.bottom, n.bottom) + e.margin); - t.scrollTo(r.scrollLeft, r.scrollTop) - } - } - - function nn(t) { - t.curOp = { - cm: t, - viewChanged: !1, - startHeight: t.doc.height, - forceUpdate: !1, - updateInput: null, - typing: !1, - changeObjs: null, - cursorActivityHandlers: null, - cursorActivityCalled: 0, - selectionChanged: !1, - updateMaxLine: !1, - scrollLeft: null, - scrollTop: null, - scrollToPos: null, - focus: !1, - id: ++ra - }, we(t.curOp) - } - - function rn(t) { - ke(t.curOp, function(t) { - for (var e = 0; e < t.ops.length; e++) t.ops[e].cm.curOp = null; - sn(t) - }) - } - - function sn(t) { - for (var e = t.ops, i = 0; i < e.length; i++) on(e[i]); - for (var n = 0; n < e.length; n++) an(e[n]); - for (var r = 0; r < e.length; r++) ln(e[r]); - for (var s = 0; s < e.length; s++) cn(e[s]); - for (var o = 0; o < e.length; o++) un(e[o]) - } - - function on(t) { - var e = t.cm, - i = e.display; - Sn(e), t.updateMaxLine && mt(e), t.mustUpdate = t.viewChanged || t.forceUpdate || null != t.scrollTop || t.scrollToPos && (t.scrollToPos.from.line < i.viewFrom || t.scrollToPos.to.line >= i.viewTo) || i.maxLineChanged && e.options.lineWrapping, t.update = t.mustUpdate && new kn(e, t.mustUpdate && { - top: t.scrollTop, - ensure: t.scrollToPos - }, t.forceUpdate) - } - - function an(t) { - t.updatedDisplay = t.mustUpdate && Tn(t.cm, t.update) - } - - function ln(t) { - var e = t.cm, - i = e.display; - t.updatedDisplay && Di(e), t.barMeasure = Bi(e), i.maxLineChanged && !e.options.lineWrapping && (t.adjustWidthTo = Ye(e, i.maxLine, i.maxLine.text.length).left + 3, e.display.sizerWidth = t.adjustWidthTo, t.barMeasure.scrollWidth = Math.max(i.scroller.clientWidth, i.sizer.offsetLeft + t.adjustWidthTo + Be(e) + e.display.barWidth), t.maxScrollLeft = Math.max(0, i.sizer.offsetLeft + t.adjustWidthTo - je(e))), (t.updatedDisplay || t.selectionChanged) && (t.preparedSelection = i.input.prepareSelection(t.focus)) - } - - function cn(t) { - var e = t.cm; - null != t.adjustWidthTo && (e.display.sizer.style.minWidth = t.adjustWidthTo + "px", t.maxScrollLeft < e.doc.scrollLeft && Hi(e, Math.min(e.display.scroller.scrollLeft, t.maxScrollLeft), !0), e.display.maxLineChanged = !1); - var i = t.focus && t.focus == s() && (!document.hasFocus || document.hasFocus()); - t.preparedSelection && e.display.input.showSelection(t.preparedSelection, i), (t.updatedDisplay || t.startHeight != e.doc.height) && qi(e, t.barMeasure), t.updatedDisplay && Ln(e, t.barMeasure), t.selectionChanged && Pi(e), e.state.focused && t.updateInput && e.display.input.reset(t.typing), i && $i(t.cm) - } - - function un(t) { - var e = t.cm, - i = e.display, - n = e.doc; - if (t.updatedDisplay && Mn(e, t.update), null == i.wheelStartX || null == t.scrollTop && null == t.scrollLeft && !t.scrollToPos || (i.wheelStartX = i.wheelStartY = null), null == t.scrollTop || i.scroller.scrollTop == t.scrollTop && !t.forceScroll || (n.scrollTop = Math.max(0, Math.min(i.scroller.scrollHeight - i.scroller.clientHeight, t.scrollTop)), i.scrollbars.setScrollTop(n.scrollTop), i.scroller.scrollTop = n.scrollTop), null == t.scrollLeft || i.scroller.scrollLeft == t.scrollLeft && !t.forceScroll || (n.scrollLeft = Math.max(0, Math.min(i.scroller.scrollWidth - i.scroller.clientWidth, t.scrollLeft)), i.scrollbars.setScrollLeft(n.scrollLeft), i.scroller.scrollLeft = n.scrollLeft, Oi(e)), t.scrollToPos) { - var r = Xi(e, H(n, t.scrollToPos.from), H(n, t.scrollToPos.to), t.scrollToPos.margin); - t.scrollToPos.isCursor && e.state.focused && Yi(e, r) - } - var s = t.maybeHiddenMarkers, - o = t.maybeUnhiddenMarkers; - if (s) - for (var a = 0; a < s.length; ++a) s[a].lines.length || Lt(s[a], "hide"); - if (o) - for (var l = 0; l < o.length; ++l) o[l].lines.length && Lt(o[l], "unhide"); - i.wrapper.offsetHeight && (n.scrollTop = e.display.scroller.scrollTop), t.changeObjs && Lt(e, "changes", e, t.changeObjs), t.update && t.update.finish() - } - - function hn(t, e) { - if (t.curOp) return e(); - nn(t); - try { - return e() - } finally { - rn(t) - } - } - - function dn(t, e) { - return function() { - if (t.curOp) return e.apply(t, arguments); - nn(t); - try { - return e.apply(t, arguments) - } finally { - rn(t) - } - } - } - - function fn(t) { - return function() { - if (this.curOp) return t.apply(this, arguments); - nn(this); - try { - return t.apply(this, arguments) - } finally { - rn(this) - } - } - } - - function pn(t) { - return function() { - var e = this.cm; - if (!e || e.curOp) return t.apply(this, arguments); - nn(e); - try { - return t.apply(this, arguments) - } finally { - rn(e) - } - } - } - - function gn(t, e, i, n) { - null == e && (e = t.doc.first), null == i && (i = t.doc.first + t.doc.size), n || (n = 0); - var r = t.display; - if (n && i < r.viewTo && (null == r.updateLineNumbers || r.updateLineNumbers > e) && (r.updateLineNumbers = e), t.curOp.viewChanged = !0, e >= r.viewTo) Do && ut(t.doc, e) < r.viewTo && vn(t); - else if (i <= r.viewFrom) Do && ht(t.doc, i + n) > r.viewFrom ? vn(t) : (r.viewFrom += n, r.viewTo += n); - else if (e <= r.viewFrom && i >= r.viewTo) vn(t); - else if (e <= r.viewFrom) { - var s = yn(t, i, i + n, 1); - s ? (r.view = r.view.slice(s.index), r.viewFrom = s.lineN, r.viewTo += n) : vn(t) - } else if (i >= r.viewTo) { - var o = yn(t, e, e, -1); - o ? (r.view = r.view.slice(0, o.index), r.viewTo = o.lineN) : vn(t) - } else { - var a = yn(t, e, e, -1), - l = yn(t, i, i + n, 1); - a && l ? (r.view = r.view.slice(0, a.index).concat(xe(t, a.lineN, l.lineN)).concat(r.view.slice(l.index)), r.viewTo += n) : vn(t) - } - var c = r.externalMeasured; - c && (i < c.lineN ? c.lineN += n : e < c.lineN + c.size && (r.externalMeasured = null)) - } - - function mn(t, e, i) { - t.curOp.viewChanged = !0; - var n = t.display, - r = t.display.externalMeasured; - if (r && e >= r.lineN && e < r.lineN + r.size && (n.externalMeasured = null), !(e < n.viewFrom || e >= n.viewTo)) { - var s = n.view[ki(t, e)]; - if (null != s.node) { - var o = s.changes || (s.changes = []); - 1 == d(o, i) && o.push(i) - } - } - } - - function vn(t) { - t.display.viewFrom = t.display.viewTo = t.doc.first, t.display.view = [], t.display.viewOffset = 0 - } - - function yn(t, e, i, n) { - var r, s = ki(t, e), - o = t.display.view; - if (!Do || i == t.doc.first + t.doc.size) return { - index: s, - lineN: i - }; - for (var a = t.display.viewFrom, l = 0; l < s; l++) a += o[l].size; - if (a != e) { - if (n > 0) { - if (s == o.length - 1) return null; - r = a + o[s].size - e, s++ - } else r = a - e; - e += r, i += r - } - for (; ut(t.doc, i) != i;) { - if (s == (n < 0 ? 0 : o.length - 1)) return null; - i += n * o[s - (n < 0 ? 1 : 0)].size, s += n - } - return { - index: s, - lineN: i - } - } - - function bn(t, e, i) { - var n = t.display; - 0 == n.view.length || e >= n.viewTo || i <= n.viewFrom ? (n.view = xe(t, e, i), n.viewFrom = e) : (n.viewFrom > e ? n.view = xe(t, e, n.viewFrom).concat(n.view) : n.viewFrom < e && (n.view = n.view.slice(ki(t, e))), n.viewFrom = e, n.viewTo < i ? n.view = n.view.concat(xe(t, n.viewTo, i)) : n.viewTo > i && (n.view = n.view.slice(0, ki(t, i)))), n.viewTo = i - } - - function xn(t) { - for (var e = t.display.view, i = 0, n = 0; n < e.length; n++) { - var r = e[n]; - r.hidden || r.node && !r.changes || ++i - } - return i - } - - function wn(t, e) { - t.doc.mode.startState && t.doc.frontier < t.display.viewTo && t.state.highlight.set(e, l(Cn, t)) - } - - function Cn(t) { - var e = t.doc; - if (e.frontier < e.first && (e.frontier = e.first), !(e.frontier >= t.display.viewTo)) { - var i = +new Date + t.options.workTime, - n = Yt(e.mode, te(t, e.frontier)), - r = []; - e.iter(e.frontier, Math.min(e.first + e.size, t.display.viewTo + 500), function(s) { - if (e.frontier >= t.display.viewFrom) { - var o = s.styles, - a = s.text.length > t.options.maxHighlightLength, - l = Zt(t, s, a ? Yt(e.mode, n) : n, !0); - s.styles = l.styles; - var c = s.styleClasses, - u = l.classes; - u ? s.styleClasses = u : c && (s.styleClasses = null); - for (var h = !o || o.length != s.styles.length || c != u && (!c || !u || c.bgClass != u.bgClass || c.textClass != u.textClass), d = 0; !h && d < o.length; ++d) h = o[d] != s.styles[d]; - h && r.push(e.frontier), s.stateAfter = a ? n : Yt(e.mode, n) - } else s.text.length <= t.options.maxHighlightLength && ee(t, s.text, n), s.stateAfter = e.frontier % 5 == 0 ? Yt(e.mode, n) : null; - if (++e.frontier, +new Date > i) return wn(t, t.options.workDelay), !0 - }), r.length && hn(t, function() { - for (var e = 0; e < r.length; e++) mn(t, r[e], "text") - }) - } - } - - function kn(t, e, i) { - var n = t.display; - this.viewport = e, this.visible = zi(n, t.doc, e), this.editorIsHidden = !n.wrapper.offsetWidth, this.wrapperHeight = n.wrapper.clientHeight, this.wrapperWidth = n.wrapper.clientWidth, this.oldDisplayWidth = je(t), this.force = i, this.dims = yi(t), this.events = [] - } - - function Sn(t) { - var e = t.display; - !e.scrollbarsClipped && e.scroller.offsetWidth && (e.nativeBarWidth = e.scroller.offsetWidth - e.scroller.clientWidth, e.heightForcer.style.height = Be(t) + "px", e.sizer.style.marginBottom = -e.nativeBarWidth + "px", e.sizer.style.borderRightWidth = Be(t) + "px", e.scrollbarsClipped = !0) - } - - function Tn(t, i) { - var n = t.display, - r = t.doc; - if (i.editorIsHidden) return vn(t), !1; - if (!i.force && i.visible.from >= n.viewFrom && i.visible.to <= n.viewTo && (null == n.updateLineNumbers || n.updateLineNumbers >= n.viewTo) && n.renderedView == n.view && 0 == xn(t)) return !1; - Ii(t) && (vn(t), i.dims = yi(t)); - var o = r.first + r.size, - a = Math.max(i.visible.from - t.options.viewportMargin, r.first), - l = Math.min(o, i.visible.to + t.options.viewportMargin); - n.viewFrom < a && a - n.viewFrom < 20 && (a = Math.max(r.first, n.viewFrom)), n.viewTo > l && n.viewTo - l < 20 && (l = Math.min(o, n.viewTo)), Do && (a = ut(t.doc, a), l = ht(t.doc, l)); - var c = a != n.viewFrom || l != n.viewTo || n.lastWrapHeight != i.wrapperHeight || n.lastWrapWidth != i.wrapperWidth; - bn(t, a, l), n.viewOffset = pt(T(t.doc, n.viewFrom)), t.display.mover.style.top = n.viewOffset + "px"; - var u = xn(t); - if (!c && 0 == u && !i.force && n.renderedView == n.view && (null == n.updateLineNumbers || n.updateLineNumbers >= n.viewTo)) return !1; - var h = s(); - return u > 4 && (n.lineDiv.style.display = "none"), Pn(t, n.updateLineNumbers, i.dims), u > 4 && (n.lineDiv.style.display = ""), n.renderedView = n.view, h && s() != h && h.offsetHeight && h.focus(), e(n.cursorDiv), e(n.selectionDiv), n.gutters.style.height = n.sizer.style.minHeight = 0, c && (n.lastWrapHeight = i.wrapperHeight, n.lastWrapWidth = i.wrapperWidth, wn(t, 400)), n.updateLineNumbers = null, !0 - } - - function Mn(t, e) { - for (var i = e.viewport, n = !0; - (n && t.options.lineWrapping && e.oldDisplayWidth != je(t) || (i && null != i.top && (i = { - top: Math.min(t.doc.height + Ve(t.display) - Ue(t), i.top) - }), e.visible = zi(t.display, t.doc, i), !(e.visible.from >= t.display.viewFrom && e.visible.to <= t.display.viewTo))) && Tn(t, e); n = !1) { - Di(t); - var r = Bi(t); - Si(t), qi(t, r), Ln(t, r) - } - e.signal(t, "update", t), t.display.viewFrom == t.display.reportedViewFrom && t.display.viewTo == t.display.reportedViewTo || (e.signal(t, "viewportChange", t, t.display.viewFrom, t.display.viewTo), t.display.reportedViewFrom = t.display.viewFrom, t.display.reportedViewTo = t.display.viewTo) - } - - function En(t, e) { - var i = new kn(t, e); - if (Tn(t, i)) { - Di(t), Mn(t, i); - var n = Bi(t); - Si(t), qi(t, n), Ln(t, n), i.finish() - } - } - - function Pn(t, i, n) { - function r(e) { - var i = e.nextSibling; - return so && go && t.display.currentWheelTarget == e ? e.style.display = "none" : e.parentNode.removeChild(e), i - } - for (var s = t.display, o = t.options.lineNumbers, a = s.lineDiv, l = a.firstChild, c = s.view, u = s.viewFrom, h = 0; h < c.length; h++) { - var f = c[h]; - if (f.hidden); - else if (f.node && f.node.parentNode == a) { - for (; l != f.node;) l = r(l); - var p = o && null != i && i <= u && f.lineNumber; - f.changes && (d(f.changes, "gutter") > -1 && (p = !1), Me(t, f, u, n)), p && (e(f.lineNumber), f.lineNumber.appendChild(document.createTextNode(N(t.options, u)))), l = f.node.nextSibling - } else { - var g = Ie(t, f, u, n); - a.insertBefore(g, l) - } - u += f.size - } - for (; l;) l = r(l) - } - - function $n(t) { - var e = t.display.gutters.offsetWidth; - t.display.sizer.style.marginLeft = e + "px" - } - - function Ln(t, e) { - t.display.sizer.style.minHeight = e.docHeight + "px", t.display.heightForcer.style.top = e.docHeight + "px", t.display.gutters.style.height = e.docHeight + t.display.barHeight + Be(t) + "px" - } - - function An(t) { - var i = t.display.gutters, - r = t.options.gutters; - e(i); - for (var s = 0; s < r.length; ++s) { - var o = r[s], - a = i.appendChild(n("div", null, "CodeMirror-gutter " + o)); - "CodeMirror-linenumbers" == o && (t.display.lineGutter = a, a.style.width = (t.display.lineNumWidth || 1) + "px") - } - i.style.display = s ? "" : "none", $n(t) - } - - function Nn(t) { - var e = d(t.gutters, "CodeMirror-linenumbers"); - 1 == e && t.lineNumbers ? t.gutters = t.gutters.concat(["CodeMirror-linenumbers"]) : e > -1 && !t.lineNumbers && (t.gutters = t.gutters.slice(0), t.gutters.splice(e, 1)) - } - - function On(t, e) { - this.ranges = t, this.primIndex = e - } - - function In(t, e) { - this.anchor = t, this.head = e - } - - function Dn(t, e) { - var i = t[e]; - t.sort(function(t, e) { - return I(t.from(), e.from()) - }), e = d(t, i); - for (var n = 1; n < t.length; n++) { - var r = t[n], - s = t[n - 1]; - if (I(s.to(), r.from()) >= 0) { - var o = z(s.from(), r.from()), - a = _(s.to(), r.to()), - l = s.empty() ? r.from() == r.head : s.from() == s.head; - n <= e && --e, t.splice(--n, 2, new In(l ? a : o, l ? o : a)) - } - } - return new On(t, e) - } - - function _n(t, e) { - return new On([new In(t, e || t)], 0) - } - - function zn(t) { - return t.text ? O(t.from.line + t.text.length - 1, g(t.text).length + (1 == t.text.length ? t.from.ch : 0)) : t.to - } - - function Fn(t, e) { - if (I(t, e.from) < 0) return t; - if (I(t, e.to) <= 0) return zn(e); - var i = t.line + e.text.length - (e.to.line - e.from.line) - 1, - n = t.ch; - return t.line == e.to.line && (n += zn(e).ch - e.to.ch), O(i, n) - } - - function Hn(t, e) { - for (var i = [], n = 0; n < t.sel.ranges.length; n++) { - var r = t.sel.ranges[n]; - i.push(new In(Fn(r.anchor, e), Fn(r.head, e))) - } - return Dn(i, t.sel.primIndex) - } - - function Rn(t, e, i) { - return t.line == e.line ? O(i.line, t.ch - e.ch + i.ch) : O(i.line + (t.line - e.line), t.ch) - } - - function Vn(t, e, i) { - for (var n = [], r = O(t.first, 0), s = r, o = 0; o < e.length; o++) { - var a = e[o], - l = Rn(a.from, r, s), - c = Rn(zn(a), r, s); - if (r = a.to, s = c, "around" == i) { - var u = t.sel.ranges[o], - h = I(u.head, u.anchor) < 0; - n[o] = new In(h ? c : l, h ? l : c) - } else n[o] = new In(l, l) - } - return new On(n, t.sel.primIndex) - } - - function Wn(t) { - t.doc.mode = Kt(t.options, t.doc.modeOption), Bn(t) - } - - function Bn(t) { - t.doc.iter(function(t) { - t.stateAfter && (t.stateAfter = null), t.styles && (t.styles = null) - }), t.doc.frontier = t.doc.first, wn(t, 100), t.state.modeGen++, t.curOp && gn(t) - } - - function jn(t, e) { - return 0 == e.from.ch && 0 == e.to.ch && "" == g(e.text) && (!t.cm || t.cm.options.wholeLineUpdateBefore) - } - - function Un(t, e, i, n) { - function r(t) { - return i ? i[t] : null - } - - function s(t, i, r) { - ce(t, i, r, n), Se(t, "change", t, e) - } - - function o(t, e) { - for (var i = [], s = t; s < e; ++s) i.push(new le(c[s], r(s), n)); - return i - } - var a = e.from, - l = e.to, - c = e.text, - u = T(t, a.line), - h = T(t, l.line), - d = g(c), - f = r(c.length - 1), - p = l.line - a.line; - if (e.full) t.insert(0, o(0, c.length)), t.remove(c.length, t.size - c.length); - else if (jn(t, e)) { - var m = o(0, c.length - 1); - s(h, h.text, f), p && t.remove(a.line, p), m.length && t.insert(a.line, m) - } else if (u == h) - if (1 == c.length) s(u, u.text.slice(0, a.ch) + d + u.text.slice(l.ch), f); - else { - var v = o(1, c.length - 1); - v.push(new le(d + u.text.slice(l.ch), f, n)), s(u, u.text.slice(0, a.ch) + c[0], r(0)), t.insert(a.line + 1, v) - } - else if (1 == c.length) s(u, u.text.slice(0, a.ch) + c[0] + h.text.slice(l.ch), r(0)), t.remove(a.line + 1, p); - else { - s(u, u.text.slice(0, a.ch) + c[0], r(0)), s(h, d + h.text.slice(l.ch), f); - var y = o(1, c.length - 1); - p > 1 && t.remove(a.line + 1, p - 1), t.insert(a.line + 1, y) - } - Se(t, "change", t, e) - } - - function qn(t, e, i) { - function n(t, r, s) { - if (t.linked) - for (var o = 0; o < t.linked.length; ++o) { - var a = t.linked[o]; - if (a.doc != r) { - var l = s && a.sharedHist; - i && !l || (e(a.doc, l), n(a.doc, t, l)) - } - } - } - n(t, null, !0) - } - - function Kn(t, e) { - if (e.cm) throw new Error("This document is already in use."); - t.doc = e, e.cm = t, wi(t), Wn(t), t.options.lineWrapping || mt(t), t.options.mode = e.modeOption, gn(t) - } - - function Gn(t) { - this.done = [], this.undone = [], this.undoDepth = 1 / 0, this.lastModTime = this.lastSelTime = 0, this.lastOp = this.lastSelOp = null, this.lastOrigin = this.lastSelOrigin = null, this.generation = this.maxGeneration = t || 1 - } - - function Yn(t, e) { - var i = { - from: D(e.from), - to: zn(e), - text: M(t, e.from, e.to) - }; - return ir(t, i, e.from.line, e.to.line + 1), qn(t, function(t) { - return ir(t, i, e.from.line, e.to.line + 1) - }, !0), i - } - - function Xn(t) { - for (; t.length;) { - if (!g(t).ranges) break; - t.pop() - } - } - - function Jn(t, e) { - return e ? (Xn(t.done), g(t.done)) : t.done.length && !g(t.done).ranges ? g(t.done) : t.done.length > 1 && !t.done[t.done.length - 2].ranges ? (t.done.pop(), g(t.done)) : void 0 - } - - function Zn(t, e, i, n) { - var r = t.history; - r.undone.length = 0; - var s, o, a = +new Date; - if ((r.lastOp == n || r.lastOrigin == e.origin && e.origin && ("+" == e.origin.charAt(0) && t.cm && r.lastModTime > a - t.cm.options.historyEventDelay || "*" == e.origin.charAt(0))) && (s = Jn(r, r.lastOp == n))) o = g(s.changes), 0 == I(e.from, e.to) && 0 == I(e.from, o.to) ? o.to = zn(e) : s.changes.push(Yn(t, e)); - else { - var l = g(r.done); - for (l && l.ranges || er(t.sel, r.done), s = { - changes: [Yn(t, e)], - generation: r.generation - }, r.done.push(s); r.done.length > r.undoDepth;) r.done.shift(), r.done[0].ranges || r.done.shift() - } - r.done.push(i), r.generation = ++r.maxGeneration, r.lastModTime = r.lastSelTime = a, r.lastOp = r.lastSelOp = n, r.lastOrigin = r.lastSelOrigin = e.origin, o || Lt(t, "historyAdded") - } - - function Qn(t, e, i, n) { - var r = e.charAt(0); - return "*" == r || "+" == r && i.ranges.length == n.ranges.length && i.somethingSelected() == n.somethingSelected() && new Date - t.history.lastSelTime <= (t.cm ? t.cm.options.historyEventDelay : 500) - } - - function tr(t, e, i, n) { - var r = t.history, - s = n && n.origin; - i == r.lastSelOp || s && r.lastSelOrigin == s && (r.lastModTime == r.lastSelTime && r.lastOrigin == s || Qn(t, s, g(r.done), e)) ? r.done[r.done.length - 1] = e : er(e, r.done), r.lastSelTime = +new Date, r.lastSelOrigin = s, r.lastSelOp = i, n && !1 !== n.clearRedo && Xn(r.undone) - } - - function er(t, e) { - var i = g(e); - i && i.ranges && i.equals(t) || e.push(t) - } - - function ir(t, e, i, n) { - var r = e["spans_" + t.id], - s = 0; - t.iter(Math.max(t.first, i), Math.min(t.first + t.size, n), function(i) { - i.markedSpans && ((r || (r = e["spans_" + t.id] = {}))[s] = i.markedSpans), ++s - }) - } - - function nr(t) { - if (!t) return null; - for (var e, i = 0; i < t.length; ++i) t[i].marker.explicitlyCleared ? e || (e = t.slice(0, i)) : e && e.push(t[i]); - return e ? e.length ? e : null : t - } - - function rr(t, e) { - var i = e["spans_" + t.id]; - if (!i) return null; - for (var n = [], r = 0; r < e.text.length; ++r) n.push(nr(i[r])); - return n - } - - function sr(t, e) { - var i = rr(t, e), - n = X(t, e); - if (!i) return n; - if (!n) return i; - for (var r = 0; r < i.length; ++r) { - var s = i[r], - o = n[r]; - if (s && o) t: for (var a = 0; a < o.length; ++a) { - for (var l = o[a], c = 0; c < s.length; ++c) - if (s[c].marker == l.marker) continue t; - s.push(l) - } else o && (i[r] = o) - } - return i - } - - function or(t, e, i) { - for (var n = [], r = 0; r < t.length; ++r) { - var s = t[r]; - if (s.ranges) n.push(i ? On.prototype.deepCopy.call(s) : s); - else { - var o = s.changes, - a = []; - n.push({ - changes: a - }); - for (var l = 0; l < o.length; ++l) { - var c = o[l], - u = void 0; - if (a.push({ - from: c.from, - to: c.to, - text: c.text - }), e) - for (var h in c)(u = h.match(/^spans_(\d+)$/)) && d(e, Number(u[1])) > -1 && (g(a)[h] = c[h], delete c[h]) - } - } - } - return n - } - - function ar(t, e, i, n) { - if (t.cm && t.cm.display.shift || t.extend) { - var r = e.anchor; - if (n) { - var s = I(i, r) < 0; - s != I(n, r) < 0 ? (r = i, i = n) : s != I(i, n) < 0 && (i = n) - } - return new In(r, i) - } - return new In(n || i, i) - } - - function lr(t, e, i, n) { - pr(t, new On([ar(t, t.sel.primary(), e, i)], 0), n) - } - - function cr(t, e, i) { - for (var n = [], r = 0; r < t.sel.ranges.length; r++) n[r] = ar(t, t.sel.ranges[r], e[r], null); - pr(t, Dn(n, t.sel.primIndex), i) - } - - function ur(t, e, i, n) { - var r = t.sel.ranges.slice(0); - r[e] = i, pr(t, Dn(r, t.sel.primIndex), n) - } - - function hr(t, e, i, n) { - pr(t, _n(e, i), n) - } - - function dr(t, e, i) { - var n = { - ranges: e.ranges, - update: function(e) { - var i = this; - this.ranges = []; - for (var n = 0; n < e.length; n++) i.ranges[n] = new In(H(t, e[n].anchor), H(t, e[n].head)) - }, - origin: i && i.origin - }; - return Lt(t, "beforeSelectionChange", t, n), t.cm && Lt(t.cm, "beforeSelectionChange", t.cm, n), n.ranges != e.ranges ? Dn(n.ranges, n.ranges.length - 1) : e - } - - function fr(t, e, i) { - var n = t.history.done, - r = g(n); - r && r.ranges ? (n[n.length - 1] = e, gr(t, e, i)) : pr(t, e, i) - } - - function pr(t, e, i) { - gr(t, e, i), tr(t, t.sel, t.cm ? t.cm.curOp.id : NaN, i) - } - - function gr(t, e, i) { - (Ot(t, "beforeSelectionChange") || t.cm && Ot(t.cm, "beforeSelectionChange")) && (e = dr(t, e, i)), mr(t, yr(t, e, i && i.bias || (I(e.primary().head, t.sel.primary().head) < 0 ? -1 : 1), !0)), i && !1 === i.scroll || !t.cm || tn(t.cm) - } - - function mr(t, e) { - e.equals(t.sel) || (t.sel = e, t.cm && (t.cm.curOp.updateInput = t.cm.curOp.selectionChanged = !0, Nt(t.cm)), Se(t, "cursorActivity", t)) - } - - function vr(t) { - mr(t, yr(t, t.sel, null, !1), Po) - } - - function yr(t, e, i, n) { - for (var r, s = 0; s < e.ranges.length; s++) { - var o = e.ranges[s], - a = e.ranges.length == t.sel.ranges.length && t.sel.ranges[s], - l = xr(t, o.anchor, a && a.anchor, i, n), - c = xr(t, o.head, a && a.head, i, n); - (r || l != o.anchor || c != o.head) && (r || (r = e.ranges.slice(0, s)), r[s] = new In(l, c)) - } - return r ? Dn(r, e.primIndex) : e - } - - function br(t, e, i, n, r) { - var s = T(t, e.line); - if (s.markedSpans) - for (var o = 0; o < s.markedSpans.length; ++o) { - var a = s.markedSpans[o], - l = a.marker; - if ((null == a.from || (l.inclusiveLeft ? a.from <= e.ch : a.from < e.ch)) && (null == a.to || (l.inclusiveRight ? a.to >= e.ch : a.to > e.ch))) { - if (r && (Lt(l, "beforeCursorEnter"), l.explicitlyCleared)) { - if (s.markedSpans) { - --o; - continue - } - break - } - if (!l.atomic) continue; - if (i) { - var c = l.find(n < 0 ? 1 : -1), - u = void 0; - if ((n < 0 ? l.inclusiveRight : l.inclusiveLeft) && (c = wr(t, c, -n, c && c.line == e.line ? s : null)), c && c.line == e.line && (u = I(c, i)) && (n < 0 ? u < 0 : u > 0)) return br(t, c, e, n, r) - } - var h = l.find(n < 0 ? -1 : 1); - return (n < 0 ? l.inclusiveLeft : l.inclusiveRight) && (h = wr(t, h, n, h.line == e.line ? s : null)), h ? br(t, h, e, n, r) : null - } - } - return e - } - - function xr(t, e, i, n, r) { - var s = n || 1, - o = br(t, e, i, s, r) || !r && br(t, e, i, s, !0) || br(t, e, i, -s, r) || !r && br(t, e, i, -s, !0); - return o || (t.cantEdit = !0, O(t.first, 0)) - } - - function wr(t, e, i, n) { - return i < 0 && 0 == e.ch ? e.line > t.first ? H(t, O(e.line - 1)) : null : i > 0 && e.ch == (n || T(t, e.line)).text.length ? e.line < t.first + t.size - 1 ? O(e.line + 1, 0) : null : new O(e.line, e.ch + i) - } - - function Cr(t) { - t.setSelection(O(t.firstLine(), 0), O(t.lastLine()), Po) - } - - function kr(t, e, i) { - var n = { - canceled: !1, - from: e.from, - to: e.to, - text: e.text, - origin: e.origin, - cancel: function() { - return n.canceled = !0 - } - }; - return i && (n.update = function(e, i, r, s) { - e && (n.from = H(t, e)), i && (n.to = H(t, i)), r && (n.text = r), void 0 !== s && (n.origin = s) - }), Lt(t, "beforeChange", t, n), t.cm && Lt(t.cm, "beforeChange", t.cm, n), n.canceled ? null : { - from: n.from, - to: n.to, - text: n.text, - origin: n.origin - } - } - - function Sr(t, e, i) { - if (t.cm) { - if (!t.cm.curOp) return dn(t.cm, Sr)(t, e, i); - if (t.cm.state.suppressEdits) return - } - if (!(Ot(t, "beforeChange") || t.cm && Ot(t.cm, "beforeChange")) || (e = kr(t, e, !0))) { - var n = Io && !i && Z(t, e.from, e.to); - if (n) - for (var r = n.length - 1; r >= 0; --r) Tr(t, { - from: n[r].from, - to: n[r].to, - text: r ? [""] : e.text - }); - else Tr(t, e) - } - } - - function Tr(t, e) { - if (1 != e.text.length || "" != e.text[0] || 0 != I(e.from, e.to)) { - var i = Hn(t, e); - Zn(t, e, i, t.cm ? t.cm.curOp.id : NaN), Pr(t, e, i, X(t, e)); - var n = []; - qn(t, function(t, i) { - i || -1 != d(n, t.history) || (Or(t.history, e), n.push(t.history)), Pr(t, e, null, X(t, e)) - }) - } - } - - function Mr(t, e, i) { - if (!t.cm || !t.cm.state.suppressEdits || i) { - for (var n, r = t.history, s = t.sel, o = "undo" == e ? r.done : r.undone, a = "undo" == e ? r.undone : r.done, l = 0; l < o.length && (n = o[l], i ? !n.ranges || n.equals(t.sel) : n.ranges); l++); - if (l != o.length) { - for (r.lastOrigin = r.lastSelOrigin = null; n = o.pop(), n.ranges;) { - if (er(n, a), i && !n.equals(t.sel)) return void pr(t, n, { - clearRedo: !1 - }); - s = n - } - var c = []; - er(s, a), a.push({ - changes: c, - generation: r.generation - }), r.generation = n.generation || ++r.maxGeneration; - for (var u = Ot(t, "beforeChange") || t.cm && Ot(t.cm, "beforeChange"), h = n.changes.length - 1; h >= 0; --h) { - var f = function(i) { - var r = n.changes[i]; - if (r.origin = e, u && !kr(t, r, !1)) return o.length = 0, {}; - c.push(Yn(t, r)); - var s = i ? Hn(t, r) : g(o); - Pr(t, r, s, sr(t, r)), !i && t.cm && t.cm.scrollIntoView({ - from: r.from, - to: zn(r) - }); - var a = []; - qn(t, function(t, e) { - e || -1 != d(a, t.history) || (Or(t.history, r), a.push(t.history)), Pr(t, r, null, sr(t, r)) - }) - }(h); - if (f) return f.v - } - } - } - } - - function Er(t, e) { - if (0 != e && (t.first += e, t.sel = new On(m(t.sel.ranges, function(t) { - return new In(O(t.anchor.line + e, t.anchor.ch), O(t.head.line + e, t.head.ch)) - }), t.sel.primIndex), t.cm)) { - gn(t.cm, t.first, t.first - e, e); - for (var i = t.cm.display, n = i.viewFrom; n < i.viewTo; n++) mn(t.cm, n, "gutter") - } - } - - function Pr(t, e, i, n) { - if (t.cm && !t.cm.curOp) return dn(t.cm, Pr)(t, e, i, n); - if (e.to.line < t.first) return void Er(t, e.text.length - 1 - (e.to.line - e.from.line)); - if (!(e.from.line > t.lastLine())) { - if (e.from.line < t.first) { - var r = e.text.length - 1 - (t.first - e.from.line); - Er(t, r), e = { - from: O(t.first, 0), - to: O(e.to.line + r, e.to.ch), - text: [g(e.text)], - origin: e.origin - } - } - var s = t.lastLine(); - e.to.line > s && (e = { - from: e.from, - to: O(s, T(t, s).text.length), - text: [e.text[0]], - origin: e.origin - }), e.removed = M(t, e.from, e.to), i || (i = Hn(t, e)), t.cm ? $r(t.cm, e, n) : Un(t, e, n), gr(t, i, Po) - } - } - - function $r(t, e, i) { - var n = t.doc, - r = t.display, - s = e.from, - o = e.to, - a = !1, - l = s.line; - t.options.lineWrapping || (l = $(lt(T(n, s.line))), n.iter(l, o.line + 1, function(t) { - if (t == r.maxLine) return a = !0, !0 - })), n.sel.contains(e.from, e.to) > -1 && Nt(t), Un(n, e, i, xi(t)), t.options.lineWrapping || (n.iter(l, s.line + e.text.length, function(t) { - var e = gt(t); - e > r.maxLineLength && (r.maxLine = t, r.maxLineLength = e, r.maxLineChanged = !0, a = !1) - }), a && (t.curOp.updateMaxLine = !0)), n.frontier = Math.min(n.frontier, s.line), wn(t, 400); - var c = e.text.length - (o.line - s.line) - 1; - e.full ? gn(t) : s.line != o.line || 1 != e.text.length || jn(t.doc, e) ? gn(t, s.line, o.line + 1, c) : mn(t, s.line, "text"); - var u = Ot(t, "changes"), - h = Ot(t, "change"); - if (h || u) { - var d = { - from: s, - to: o, - text: e.text, - removed: e.removed, - origin: e.origin - }; - h && Se(t, "change", t, d), u && (t.curOp.changeObjs || (t.curOp.changeObjs = [])).push(d) - } - t.display.selForContextMenu = null - } - - function Lr(t, e, i, n, r) { - if (n || (n = i), I(n, i) < 0) { - var s = n; - n = i, i = s - } - "string" == typeof e && (e = t.splitLines(e)), Sr(t, { - from: i, - to: n, - text: e, - origin: r - }) - } - - function Ar(t, e, i, n) { - i < t.line ? t.line += n : e < t.line && (t.line = e, t.ch = 0) - } - - function Nr(t, e, i, n) { - for (var r = 0; r < t.length; ++r) { - var s = t[r], - o = !0; - if (s.ranges) { - s.copied || (s = t[r] = s.deepCopy(), s.copied = !0); - for (var a = 0; a < s.ranges.length; a++) Ar(s.ranges[a].anchor, e, i, n), Ar(s.ranges[a].head, e, i, n) - } else { - for (var l = 0; l < s.changes.length; ++l) { - var c = s.changes[l]; - if (i < c.from.line) c.from = O(c.from.line + n, c.from.ch), c.to = O(c.to.line + n, c.to.ch); - else if (e <= c.to.line) { - o = !1; - break - } - } - o || (t.splice(0, r + 1), r = 0) - } - } - } - - function Or(t, e) { - var i = e.from.line, - n = e.to.line, - r = e.text.length - (n - i) - 1; - Nr(t.done, i, n, r), Nr(t.undone, i, n, r) - } - - function Ir(t, e, i, n) { - var r = e, - s = e; - return "number" == typeof e ? s = T(t, F(t, e)) : r = $(e), null == r ? null : (n(s, r) && t.cm && mn(t.cm, r, i), s) - } - - function Dr(t) { - var e = this; - this.lines = t, this.parent = null; - for (var i = 0, n = 0; n < t.length; ++n) t[n].parent = e, i += t[n].height; - this.height = i - } - - function _r(t) { - var e = this; - this.children = t; - for (var i = 0, n = 0, r = 0; r < t.length; ++r) { - var s = t[r]; - i += s.chunkSize(), n += s.height, s.parent = e - } - this.size = i, this.height = n, this.parent = null - } - - function zr(t, e, i) { - var n = this; - if (i) - for (var r in i) i.hasOwnProperty(r) && (n[r] = i[r]); - this.doc = t, this.node = e - } - - function Fr(t, e, i) { - pt(e) < (t.curOp && t.curOp.scrollTop || t.doc.scrollTop) && Qi(t, null, i) - } - - function Hr(t, e, i, n) { - var r = new zr(t, i, n), - s = t.cm; - return s && r.noHScroll && (s.display.alignWidgets = !0), Ir(t, e, "widget", function(e) { - var i = e.widgets || (e.widgets = []); - if (null == r.insertAt ? i.push(r) : i.splice(Math.min(i.length - 1, Math.max(0, r.insertAt)), 0, r), r.line = e, s && !dt(t, e)) { - var n = pt(e) < t.scrollTop; - P(e, e.height + Fe(r)), n && Qi(s, null, r.height), s.curOp.forceUpdate = !0 - } - return !0 - }), r - } - - function Rr(t, e) { - this.lines = [], this.type = e, this.doc = t, this.id = ++sa - } - - function Vr(t, e, i, r, s) { - if (r && r.shared) return Br(t, e, i, r, s); - if (t.cm && !t.cm.curOp) return dn(t.cm, Vr)(t, e, i, r, s); - var o = new Rr(t, s), - a = I(e, i); - if (r && c(r, o, !1), a > 0 || 0 == a && !1 !== o.clearWhenEmpty) return o; - if (o.replacedWith && (o.collapsed = !0, o.widgetNode = n("span", [o.replacedWith], "CodeMirror-widget"), r.handleMouseEvents || o.widgetNode.setAttribute("cm-ignore-events", "true"), r.insertLeft && (o.widgetNode.insertLeft = !0)), o.collapsed) { - if (at(t, e.line, e, i, o) || e.line != i.line && at(t, i.line, e, i, o)) throw new Error("Inserting collapsed marker partially overlapping an existing one"); - B() - } - o.addToHistory && Zn(t, { - from: e, - to: i, - origin: "markText" - }, t.sel, NaN); - var l, u = e.line, - h = t.cm; - if (t.iter(u, i.line + 1, function(t) { - h && o.collapsed && !h.options.lineWrapping && lt(t) == h.display.maxLine && (l = !0), o.collapsed && u != e.line && P(t, 0), K(t, new j(o, u == e.line ? e.ch : null, u == i.line ? i.ch : null)), ++u - }), o.collapsed && t.iter(e.line, i.line + 1, function(e) { - dt(t, e) && P(e, 0) - }), o.clearOnEnter && Ho(o, "beforeCursorEnter", function() { - return o.clear() - }), o.readOnly && (W(), (t.history.done.length || t.history.undone.length) && t.clearHistory()), o.collapsed && (o.id = ++sa, o.atomic = !0), h) { - if (l && (h.curOp.updateMaxLine = !0), o.collapsed) gn(h, e.line, i.line + 1); - else if (o.className || o.title || o.startStyle || o.endStyle || o.css) - for (var d = e.line; d <= i.line; d++) mn(h, d, "text"); - o.atomic && vr(h.doc), Se(h, "markerAdded", h, o) - } - return o - } - - function Wr(t, e) { - var i = this; - this.markers = t, this.primary = e; - for (var n = 0; n < t.length; ++n) t[n].parent = i - } - - function Br(t, e, i, n, r) { - n = c(n), n.shared = !1; - var s = [Vr(t, e, i, n, r)], - o = s[0], - a = n.widgetNode; - return qn(t, function(t) { - a && (n.widgetNode = a.cloneNode(!0)), s.push(Vr(t, H(t, e), H(t, i), n, r)); - for (var l = 0; l < t.linked.length; ++l) - if (t.linked[l].isParent) return; - o = g(s) - }), new Wr(s, o) - } - - function jr(t) { - return t.findMarks(O(t.first, 0), t.clipPos(O(t.lastLine())), function(t) { - return t.parent - }) - } - - function Ur(t, e) { - for (var i = 0; i < e.length; i++) { - var n = e[i], - r = n.find(), - s = t.clipPos(r.from), - o = t.clipPos(r.to); - if (I(s, o)) { - var a = Vr(t, s, o, n.primary, n.primary.type); - n.markers.push(a), a.parent = n - } - } - } - - function qr(t) { - for (var e = 0; e < t.length; e++) ! function(e) { - var i = t[e], - n = [i.primary.doc]; - qn(i.primary.doc, function(t) { - return n.push(t) - }); - for (var r = 0; r < i.markers.length; r++) { - var s = i.markers[r]; - 1 == d(n, s.doc) && (s.parent = null, i.markers.splice(r--, 1)) - } - }(e) - } - - function Kr(t) { - var e = this; - if (Xr(e), !At(e, t) && !He(e.display, t)) { - Dt(t), no && (la = +new Date); - var i = Ci(e, t, !0), - n = t.dataTransfer.files; - if (i && !e.isReadOnly()) - if (n && n.length && window.FileReader && window.File) - for (var r = n.length, s = Array(r), o = 0, a = 0; a < r; ++a) ! function(t, n) { - if (!e.options.allowDropFileTypes || -1 != d(e.options.allowDropFileTypes, t.type)) { - var a = new FileReader; - a.onload = dn(e, function() { - var t = a.result; - if (/[\x00-\x08\x0e-\x1f]{2}/.test(t) && (t = ""), s[n] = t, ++o == r) { - i = H(e.doc, i); - var l = { - from: i, - to: i, - text: e.doc.splitLines(s.join(e.doc.lineSeparator())), - origin: "paste" - }; - Sr(e.doc, l), fr(e.doc, _n(i, zn(l))) - } - }), a.readAsText(t) - } - }(n[a], a); - else { - if (e.state.draggingText && e.doc.sel.contains(i) > -1) return e.state.draggingText(t), void setTimeout(function() { - return e.display.input.focus() - }, 20); - try { - var l = t.dataTransfer.getData("Text"); - if (l) { - var c; - if (e.state.draggingText && !e.state.draggingText.copy && (c = e.listSelections()), gr(e.doc, _n(i, i)), c) - for (var u = 0; u < c.length; ++u) Lr(e.doc, "", c[u].anchor, c[u].head, "drag"); - e.replaceSelection(l, "around", "paste"), e.display.input.focus() - } - } catch (t) {} - } - } - } - - function Gr(t, e) { - if (no && (!t.state.draggingText || +new Date - la < 100)) return void Ft(e); - if (!At(t, e) && !He(t.display, e) && (e.dataTransfer.setData("Text", t.getSelection()), e.dataTransfer.effectAllowed = "copyMove", e.dataTransfer.setDragImage && !co)) { - var i = n("img", null, null, "position: fixed; left: 0; top: 0;"); - i.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==", lo && (i.width = i.height = 1, t.display.wrapper.appendChild(i), i._top = i.offsetTop), e.dataTransfer.setDragImage(i, 0, 0), lo && i.parentNode.removeChild(i) - } - } - - function Yr(t, e) { - var r = Ci(t, e); - if (r) { - var s = document.createDocumentFragment(); - Mi(t, r, s), t.display.dragCursor || (t.display.dragCursor = n("div", null, "CodeMirror-cursors CodeMirror-dragcursors"), t.display.lineSpace.insertBefore(t.display.dragCursor, t.display.cursorDiv)), i(t.display.dragCursor, s) - } - } - - function Xr(t) { - t.display.dragCursor && (t.display.lineSpace.removeChild(t.display.dragCursor), t.display.dragCursor = null) - } - - function Jr(t) { - if (document.body.getElementsByClassName) - for (var e = document.body.getElementsByClassName("CodeMirror"), i = 0; i < e.length; i++) { - var n = e[i].CodeMirror; - n && t(n) - } - } - - function Zr() { - ca || (Qr(), ca = !0) - } - - function Qr() { - var t; - Ho(window, "resize", function() { - null == t && (t = setTimeout(function() { - t = null, Jr(ts) - }, 100)) - }), Ho(window, "blur", function() { - return Jr(Ni) - }) - } - - function ts(t) { - var e = t.display; - e.lastWrapHeight == e.wrapper.clientHeight && e.lastWrapWidth == e.wrapper.clientWidth || (e.cachedCharWidth = e.cachedTextHeight = e.cachedPaddingH = null, e.scrollbarsClipped = !1, t.setSize()) - } - - function es(t) { - var e = t.split(/-(?!$)/); - t = e[e.length - 1]; - for (var i, n, r, s, o = 0; o < e.length - 1; o++) { - var a = e[o]; - if (/^(cmd|meta|m)$/i.test(a)) s = !0; - else if (/^a(lt)?$/i.test(a)) i = !0; - else if (/^(c|ctrl|control)$/i.test(a)) n = !0; - else { - if (!/^s(hift)?$/i.test(a)) throw new Error("Unrecognized modifier name: " + a); - r = !0 - } - } - return i && (t = "Alt-" + t), n && (t = "Ctrl-" + t), s && (t = "Cmd-" + t), r && (t = "Shift-" + t), t - } - - function is(t) { - var e = {}; - for (var i in t) - if (t.hasOwnProperty(i)) { - var n = t[i]; - if (/^(name|fallthrough|(de|at)tach)$/.test(i)) continue; - if ("..." == n) { - delete t[i]; - continue - } - for (var r = m(i.split(" "), es), s = 0; s < r.length; s++) { - var o = void 0, - a = void 0; - s == r.length - 1 ? (a = r.join(" "), o = n) : (a = r.slice(0, s + 1).join(" "), o = "..."); - var l = e[a]; - if (l) { - if (l != o) throw new Error("Inconsistent bindings for " + a) - } else e[a] = o - } - delete t[i] - } - for (var c in e) t[c] = e[c]; - return t - } - - function ns(t, e, i, n) { - e = os(e); - var r = e.call ? e.call(t, n) : e[t]; - if (!1 === r) return "nothing"; - if ("..." === r) return "multi"; - if (null != r && i(r)) return "handled"; - if (e.fallthrough) { - if ("[object Array]" != Object.prototype.toString.call(e.fallthrough)) return ns(t, e.fallthrough, i, n); - for (var s = 0; s < e.fallthrough.length; s++) { - var o = ns(t, e.fallthrough[s], i, n); - if (o) return o - } - } - } - - function rs(t) { - var e = "string" == typeof t ? t : ua[t.keyCode]; - return "Ctrl" == e || "Alt" == e || "Shift" == e || "Mod" == e - } - - function ss(t, e) { - if (lo && 34 == t.keyCode && t.char) return !1; - var i = ua[t.keyCode], - n = i; - return null != n && !t.altGraphKey && (t.altKey && "Alt" != i && (n = "Alt-" + n), (xo ? t.metaKey : t.ctrlKey) && "Ctrl" != i && (n = "Ctrl-" + n), (xo ? t.ctrlKey : t.metaKey) && "Cmd" != i && (n = "Cmd-" + n), !e && t.shiftKey && "Shift" != i && (n = "Shift-" + n), n) - } - - function os(t) { - return "string" == typeof t ? pa[t] : t - } - - function as(t, e) { - for (var i = t.doc.sel.ranges, n = [], r = 0; r < i.length; r++) { - for (var s = e(i[r]); n.length && I(s.from, g(n).to) <= 0;) { - var o = n.pop(); - if (I(o.from, s.from) < 0) { - s.from = o.from; - break - } - } - n.push(s) - } - hn(t, function() { - for (var e = n.length - 1; e >= 0; e--) Lr(t.doc, "", n[e].from, n[e].to, "+delete"); - tn(t) - }) - } - - function ls(t, e) { - var i = T(t.doc, e), - n = lt(i); - n != i && (e = $(n)); - var r = Et(n); - return O(e, r ? r[0].level % 2 ? wt(n) : xt(n) : 0) - } - - function cs(t, e) { - for (var i, n = T(t.doc, e); i = ot(n);) n = i.find(1, !0).line, e = null; - var r = Et(n), - s = r ? r[0].level % 2 ? xt(n) : wt(n) : n.text.length; - return O(null == e ? $(n) : e, s) - } - - function us(t, e) { - var i = ls(t, e.line), - n = T(t.doc, i.line), - r = Et(n); - if (!r || 0 == r[0].level) { - var s = Math.max(0, n.text.search(/\S/)), - o = e.line == i.line && e.ch <= s && e.ch; - return O(i.line, o ? 0 : s) - } - return i - } - - function hs(t, e, i) { - if ("string" == typeof e && !(e = va[e])) return !1; - t.display.input.ensurePolled(); - var n = t.display.shift, - r = !1; - try { - t.isReadOnly() && (t.state.suppressEdits = !0), i && (t.display.shift = !1), r = e(t) != Eo - } finally { - t.display.shift = n, t.state.suppressEdits = !1 - } - return r - } - - function ds(t, e, i) { - for (var n = 0; n < t.state.keyMaps.length; n++) { - var r = ns(e, t.state.keyMaps[n], i, t); - if (r) return r - } - return t.options.extraKeys && ns(e, t.options.extraKeys, i, t) || ns(e, t.options.keyMap, i, t) - } - - function fs(t, e, i, n) { - var r = t.state.keySeq; - if (r) { - if (rs(e)) return "handled"; - ya.set(50, function() { - t.state.keySeq == r && (t.state.keySeq = null, t.display.input.reset()) - }), e = r + " " + e - } - var s = ds(t, e, n); - return "multi" == s && (t.state.keySeq = e), "handled" == s && Se(t, "keyHandled", t, e, i), "handled" != s && "multi" != s || (Dt(i), Pi(t)), r && !s && /\'$/.test(e) ? (Dt(i), !0) : !!s - } - - function ps(t, e) { - var i = ss(e, !0); - return !!i && (e.shiftKey && !t.state.keySeq ? fs(t, "Shift-" + i, e, function(e) { - return hs(t, e, !0) - }) || fs(t, i, e, function(e) { - if ("string" == typeof e ? /^go[A-Z]/.test(e) : e.motion) return hs(t, e) - }) : fs(t, i, e, function(e) { - return hs(t, e) - })) - } - - function gs(t, e, i) { - return fs(t, "'" + i + "'", e, function(e) { - return hs(t, e, !0) - }) - } - - function ms(t) { - var e = this; - if (e.curOp.focus = s(), !At(e, t)) { - no && ro < 11 && 27 == t.keyCode && (t.returnValue = !1); - var i = t.keyCode; - e.display.shift = 16 == i || t.shiftKey; - var n = ps(e, t); - lo && (ba = n ? i : null, !n && 88 == i && !Bo && (go ? t.metaKey : t.ctrlKey) && e.replaceSelection("", null, "cut")), 18 != i || /\bCodeMirror-crosshair\b/.test(e.display.lineDiv.className) || vs(e) - } - } - - function vs(t) { - function e(t) { - 18 != t.keyCode && t.altKey || (Co(i, "CodeMirror-crosshair"), $t(document, "keyup", e), $t(document, "mouseover", e)) - } - var i = t.display.lineDiv; - o(i, "CodeMirror-crosshair"), Ho(document, "keyup", e), Ho(document, "mouseover", e) - } - - function ys(t) { - 16 == t.keyCode && (this.doc.sel.shift = !1), At(this, t) - } - - function bs(t) { - var e = this; - if (!(He(e.display, t) || At(e, t) || t.ctrlKey && !t.altKey || go && t.metaKey)) { - var i = t.keyCode, - n = t.charCode; - if (lo && i == ba) return ba = null, void Dt(t); - if (!lo || t.which && !(t.which < 10) || !ps(e, t)) { - var r = String.fromCharCode(null == n ? i : n); - "\b" != r && (gs(e, t, r) || e.display.input.onKeyPress(t)) - } - } - } - - function xs(t) { - var e = this, - i = e.display; - if (!(At(e, t) || i.activeTouch && i.input.supportsTouch())) { - if (i.input.ensurePolled(), i.shift = t.shiftKey, He(i, t)) return void(so || (i.scroller.draggable = !1, setTimeout(function() { - return i.scroller.draggable = !0 - }, 100))); - if (!Ts(e, t)) { - var n = Ci(e, t); - switch (window.focus(), Rt(t)) { - case 1: - e.state.selectingText ? e.state.selectingText(t) : n ? ws(e, t, n) : Ht(t) == i.scroller && Dt(t); - break; - case 2: - so && (e.state.lastMiddleDown = +new Date), n && lr(e.doc, n), setTimeout(function() { - return i.input.focus() - }, 20), Dt(t); - break; - case 3: - wo ? Ms(e, t) : Li(e) - } - } - } - } - - function ws(t, e, i) { - no ? setTimeout(l($i, t), 0) : t.curOp.focus = s(); - var n, r = +new Date; - ma && ma.time > r - 400 && 0 == I(ma.pos, i) ? n = "triple" : ga && ga.time > r - 400 && 0 == I(ga.pos, i) ? (n = "double", ma = { - time: r, - pos: i - }) : (n = "single", ga = { - time: r, - pos: i - }); - var o, a = t.doc.sel, - c = go ? e.metaKey : e.ctrlKey; - t.options.dragDrop && Ro && !t.isReadOnly() && "single" == n && (o = a.contains(i)) > -1 && (I((o = a.ranges[o]).from(), i) < 0 || i.xRel > 0) && (I(o.to(), i) > 0 || i.xRel < 0) ? Cs(t, e, i, c) : ks(t, e, i, n, c) - } - - function Cs(t, e, i, n) { - var r = t.display, - s = +new Date, - o = dn(t, function(a) { - so && (r.scroller.draggable = !1), t.state.draggingText = !1, $t(document, "mouseup", o), $t(r.scroller, "drop", o), Math.abs(e.clientX - a.clientX) + Math.abs(e.clientY - a.clientY) < 10 && (Dt(a), !n && +new Date - 200 < s && lr(t.doc, i), so || no && 9 == ro ? setTimeout(function() { - document.body.focus(), r.input.focus() - }, 20) : r.input.focus()) - }); - so && (r.scroller.draggable = !0), t.state.draggingText = o, o.copy = go ? e.altKey : e.ctrlKey, r.scroller.dragDrop && r.scroller.dragDrop(), Ho(document, "mouseup", o), Ho(r.scroller, "drop", o) - } - - function ks(t, e, i, n, r) { - function o(e) { - if (0 != I(b, e)) - if (b = e, "rect" == n) { - for (var r = [], s = t.options.tabSize, o = u(T(h, i.line).text, i.ch, s), a = u(T(h, e.line).text, e.ch, s), l = Math.min(o, a), c = Math.max(o, a), m = Math.min(i.line, e.line), v = Math.min(t.lastLine(), Math.max(i.line, e.line)); m <= v; m++) { - var y = T(h, m).text, - x = f(y, l, s); - l == c ? r.push(new In(O(m, x), O(m, x))) : y.length > x && r.push(new In(O(m, x), O(m, f(y, c, s)))) - } - r.length || r.push(new In(i, i)), pr(h, Dn(g.ranges.slice(0, p).concat(r), p), { - origin: "*mouse", - scroll: !1 - }), t.scrollIntoView(e) - } else { - var w = d, - C = w.anchor, - k = e; - if ("single" != n) { - var S; - S = "double" == n ? t.findWordAt(e) : new In(O(e.line, 0), H(h, O(e.line + 1, 0))), I(S.anchor, C) > 0 ? (k = S.head, C = z(w.from(), S.anchor)) : (k = S.anchor, C = _(w.to(), S.head)) - } - var M = g.ranges.slice(0); - M[p] = new In(H(h, C), k), pr(h, Dn(M, p), $o) - } - } - - function a(e) { - var i = ++w, - r = Ci(t, e, !0, "rect" == n); - if (r) - if (0 != I(r, b)) { - t.curOp.focus = s(), o(r); - var l = zi(c, h); - (r.line >= l.to || r.line < l.from) && setTimeout(dn(t, function() { - w == i && a(e) - }), 150) - } else { - var u = e.clientY < x.top ? -20 : e.clientY > x.bottom ? 20 : 0; - u && setTimeout(dn(t, function() { - w == i && (c.scroller.scrollTop += u, a(e)) - }), 50) - } - } - - function l(e) { - t.state.selectingText = !1, w = 1 / 0, Dt(e), c.input.focus(), $t(document, "mousemove", C), $t(document, "mouseup", k), h.history.lastSelOrigin = null - } - var c = t.display, - h = t.doc; - Dt(e); - var d, p, g = h.sel, - m = g.ranges; - if (r && !e.shiftKey ? (p = h.sel.contains(i), d = p > -1 ? m[p] : new In(i, i)) : (d = h.sel.primary(), p = h.sel.primIndex), mo ? e.shiftKey && e.metaKey : e.altKey) n = "rect", r || (d = new In(i, i)), i = Ci(t, e, !0, !0), p = -1; - else if ("double" == n) { - var v = t.findWordAt(i); - d = t.display.shift || h.extend ? ar(h, d, v.anchor, v.head) : v - } else if ("triple" == n) { - var y = new In(O(i.line, 0), H(h, O(i.line + 1, 0))); - d = t.display.shift || h.extend ? ar(h, d, y.anchor, y.head) : y - } else d = ar(h, d, i); - r ? -1 == p ? (p = m.length, pr(h, Dn(m.concat([d]), p), { - scroll: !1, - origin: "*mouse" - })) : m.length > 1 && m[p].empty() && "single" == n && !e.shiftKey ? (pr(h, Dn(m.slice(0, p).concat(m.slice(p + 1)), 0), { - scroll: !1, - origin: "*mouse" - }), g = h.sel) : ur(h, p, d, $o) : (p = 0, pr(h, new On([d], 0), $o), g = h.sel); - var b = i, - x = c.wrapper.getBoundingClientRect(), - w = 0, - C = dn(t, function(t) { - Rt(t) ? a(t) : l(t) - }), - k = dn(t, l); - t.state.selectingText = k, Ho(document, "mousemove", C), Ho(document, "mouseup", k) - } - - function Ss(t, e, i, n) { - var r, s; - try { - r = e.clientX, s = e.clientY - } catch (e) { - return !1 - } - if (r >= Math.floor(t.display.gutters.getBoundingClientRect().right)) return !1; - n && Dt(e); - var o = t.display, - a = o.lineDiv.getBoundingClientRect(); - if (s > a.bottom || !Ot(t, i)) return zt(e); - s -= a.top - o.viewOffset; - for (var l = 0; l < t.options.gutters.length; ++l) { - var c = o.gutters.childNodes[l]; - if (c && c.getBoundingClientRect().right >= r) { - return Lt(t, i, t, L(t.doc, s), t.options.gutters[l], e), zt(e) - } - } - } - - function Ts(t, e) { - return Ss(t, e, "gutterClick", !0) - } - - function Ms(t, e) { - He(t.display, e) || Es(t, e) || At(t, e, "contextmenu") || t.display.input.onContextMenu(e) - } - - function Es(t, e) { - return !!Ot(t, "gutterContextMenu") && Ss(t, e, "gutterContextMenu", !1) - } - - function Ps(t) { - t.display.wrapper.className = t.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + t.options.theme.replace(/(^|\s)\s*/g, " cm-s-"), si(t) - } - - function $s(t) { - An(t), gn(t), setTimeout(function() { - return Oi(t) - }, 20) - } - - function Ls(t, e, i) { - if (!e != !(i && i != xa)) { - var n = t.display.dragFunctions, - r = e ? Ho : $t; - r(t.display.scroller, "dragstart", n.start), r(t.display.scroller, "dragenter", n.enter), r(t.display.scroller, "dragover", n.over), r(t.display.scroller, "dragleave", n.leave), r(t.display.scroller, "drop", n.drop) - } - } - - function As(t) { - t.options.lineWrapping ? (o(t.display.wrapper, "CodeMirror-wrap"), t.display.sizer.style.minWidth = "", t.display.sizerWidth = null) : (Co(t.display.wrapper, "CodeMirror-wrap"), mt(t)), wi(t), gn(t), si(t), setTimeout(function() { - return qi(t) - }, 100) - } - - function Ns(t, e) { - var i = this; - if (!(this instanceof Ns)) return new Ns(t, e); - this.options = e = e ? c(e) : {}, c(wa, e, !1), Nn(e); - var n = e.value; - "string" == typeof n && (n = new aa(n, e.mode, null, e.lineSeparator)), this.doc = n; - var r = new Ns.inputStyles[e.inputStyle](this), - s = this.display = new S(t, n, r); - s.wrapper.CodeMirror = this, An(this), Ps(this), e.lineWrapping && (this.display.wrapper.className += " CodeMirror-wrap"), e.autofocus && !po && s.input.focus(), Gi(this), this.state = { - keyMaps: [], - overlays: [], - modeGen: 0, - overwrite: !1, - delayingBlurEvent: !1, - focused: !1, - suppressEdits: !1, - pasteIncoming: !1, - cutIncoming: !1, - selectingText: !1, - draggingText: !1, - highlight: new h, - keySeq: null, - specialChars: null - }, no && ro < 11 && setTimeout(function() { - return i.display.input.reset(!0) - }, 20), Os(this), Zr(), nn(this), this.curOp.forceUpdate = !0, Kn(this, n), e.autofocus && !po || this.hasFocus() ? setTimeout(l(Ai, this), 20) : Ni(this); - for (var o in Ca) Ca.hasOwnProperty(o) && Ca[o](i, e[o], xa); - Ii(this), e.finishInit && e.finishInit(this); - for (var a = 0; a < ka.length; ++a) ka[a](i); - rn(this), so && e.lineWrapping && "optimizelegibility" == getComputedStyle(s.lineDiv).textRendering && (s.lineDiv.style.textRendering = "auto") - } - - function Os(t) { - function e() { - r.activeTouch && (s = setTimeout(function() { - return r.activeTouch = null - }, 1e3), o = r.activeTouch, o.end = +new Date) - } - - function i(t) { - if (1 != t.touches.length) return !1; - var e = t.touches[0]; - return e.radiusX <= 1 && e.radiusY <= 1 - } - - function n(t, e) { - if (null == e.left) return !0; - var i = e.left - t.left, - n = e.top - t.top; - return i * i + n * n > 400 - } - var r = t.display; - Ho(r.scroller, "mousedown", dn(t, xs)), no && ro < 11 ? Ho(r.scroller, "dblclick", dn(t, function(e) { - if (!At(t, e)) { - var i = Ci(t, e); - if (i && !Ts(t, e) && !He(t.display, e)) { - Dt(e); - var n = t.findWordAt(i); - lr(t.doc, n.anchor, n.head) - } - } - })) : Ho(r.scroller, "dblclick", function(e) { - return At(t, e) || Dt(e) - }), wo || Ho(r.scroller, "contextmenu", function(e) { - return Ms(t, e) - }); - var s, o = { - end: 0 - }; - Ho(r.scroller, "touchstart", function(e) { - if (!At(t, e) && !i(e)) { - r.input.ensurePolled(), clearTimeout(s); - var n = +new Date; - r.activeTouch = { - start: n, - moved: !1, - prev: n - o.end <= 300 ? o : null - }, 1 == e.touches.length && (r.activeTouch.left = e.touches[0].pageX, r.activeTouch.top = e.touches[0].pageY) - } - }), Ho(r.scroller, "touchmove", function() { - r.activeTouch && (r.activeTouch.moved = !0) - }), Ho(r.scroller, "touchend", function(i) { - var s = r.activeTouch; - if (s && !He(r, i) && null != s.left && !s.moved && new Date - s.start < 300) { - var o, a = t.coordsChar(r.activeTouch, "page"); - o = !s.prev || n(s, s.prev) ? new In(a, a) : !s.prev.prev || n(s, s.prev.prev) ? t.findWordAt(a) : new In(O(a.line, 0), H(t.doc, O(a.line + 1, 0))), t.setSelection(o.anchor, o.head), t.focus(), Dt(i) - } - e() - }), Ho(r.scroller, "touchcancel", e), Ho(r.scroller, "scroll", function() { - r.scroller.clientHeight && (Fi(t, r.scroller.scrollTop), Hi(t, r.scroller.scrollLeft, !0), Lt(t, "scroll", t)) - }), Ho(r.scroller, "mousewheel", function(e) { - return Wi(t, e) - }), Ho(r.scroller, "DOMMouseScroll", function(e) { - return Wi(t, e) - }), Ho(r.wrapper, "scroll", function() { - return r.wrapper.scrollTop = r.wrapper.scrollLeft = 0 - }), r.dragFunctions = { - enter: function(e) { - At(t, e) || Ft(e) - }, - over: function(e) { - At(t, e) || (Yr(t, e), Ft(e)) - }, - start: function(e) { - return Gr(t, e) - }, - drop: dn(t, Kr), - leave: function(e) { - At(t, e) || Xr(t) - } - }; - var a = r.input.getField(); - Ho(a, "keyup", function(e) { - return ys.call(t, e) - }), Ho(a, "keydown", dn(t, ms)), Ho(a, "keypress", dn(t, bs)), Ho(a, "focus", function(e) { - return Ai(t, e) - }), Ho(a, "blur", function(e) { - return Ni(t, e) - }) - } - - function Is(t, e, i, n) { - var r, s = t.doc; - null == i && (i = "add"), "smart" == i && (s.mode.indent ? r = te(t, e) : i = "prev"); - var o = t.options.tabSize, - a = T(s, e), - l = u(a.text, null, o); - a.stateAfter && (a.stateAfter = null); - var c, h = a.text.match(/^\s*/)[0]; - if (n || /\S/.test(a.text)) { - if ("smart" == i && ((c = s.mode.indent(r, a.text.slice(h.length), a.text)) == Eo || c > 150)) { - if (!n) return; - i = "prev" - } - } else c = 0, i = "not"; - "prev" == i ? c = e > s.first ? u(T(s, e - 1).text, null, o) : 0 : "add" == i ? c = l + t.options.indentUnit : "subtract" == i ? c = l - t.options.indentUnit : "number" == typeof i && (c = l + i), c = Math.max(0, c); - var d = "", - f = 0; - if (t.options.indentWithTabs) - for (var g = Math.floor(c / o); g; --g) f += o, d += "\t"; - if (f < c && (d += p(c - f)), d != h) return Lr(s, d, O(e, 0), O(e, h.length), "+input"), a.stateAfter = null, !0; - for (var m = 0; m < s.sel.ranges.length; m++) { - var v = s.sel.ranges[m]; - if (v.head.line == e && v.head.ch < h.length) { - var y = O(e, h.length); - ur(s, m, new In(y, y)); - break - } - } - } - - function Ds(t) { - Sa = t - } - - function _s(t, e, i, n, r) { - var s = t.doc; - t.display.shift = !1, n || (n = s.sel); - var o = t.state.pasteIncoming || "paste" == r, - a = Vo(e), - l = null; - if (o && n.ranges.length > 1) - if (Sa && Sa.text.join("\n") == e) { - if (n.ranges.length % Sa.text.length == 0) { - l = []; - for (var c = 0; c < Sa.text.length; c++) l.push(s.splitLines(Sa.text[c])) - } - } else a.length == n.ranges.length && (l = m(a, function(t) { - return [t] - })); - for (var u, h = n.ranges.length - 1; h >= 0; h--) { - var d = n.ranges[h], - f = d.from(), - p = d.to(); - d.empty() && (i && i > 0 ? f = O(f.line, f.ch - i) : t.state.overwrite && !o ? p = O(p.line, Math.min(T(s, p.line).text.length, p.ch + g(a).length)) : Sa && Sa.lineWise && Sa.text.join("\n") == e && (f = p = O(f.line, 0))), u = t.curOp.updateInput; - var v = { - from: f, - to: p, - text: l ? l[h % l.length] : a, - origin: r || (o ? "paste" : t.state.cutIncoming ? "cut" : "+input") - }; - Sr(t.doc, v), Se(t, "inputRead", t, v) - } - e && !o && Fs(t, e), tn(t), t.curOp.updateInput = u, t.curOp.typing = !0, t.state.pasteIncoming = t.state.cutIncoming = !1 - } - - function zs(t, e) { - var i = t.clipboardData && t.clipboardData.getData("Text"); - if (i) return t.preventDefault(), e.isReadOnly() || e.options.disableInput || hn(e, function() { - return _s(e, i, 0, null, "paste") - }), !0 - } - - function Fs(t, e) { - if (t.options.electricChars && t.options.smartIndent) - for (var i = t.doc.sel, n = i.ranges.length - 1; n >= 0; n--) { - var r = i.ranges[n]; - if (!(r.head.ch > 100 || n && i.ranges[n - 1].head.line == r.head.line)) { - var s = t.getModeAt(r.head), - o = !1; - if (s.electricChars) { - for (var a = 0; a < s.electricChars.length; a++) - if (e.indexOf(s.electricChars.charAt(a)) > -1) { - o = Is(t, r.head.line, "smart"); - break - } - } else s.electricInput && s.electricInput.test(T(t.doc, r.head.line).text.slice(0, r.head.ch)) && (o = Is(t, r.head.line, "smart")); - o && Se(t, "electricInput", t, r.head.line) - } - } - } - - function Hs(t) { - for (var e = [], i = [], n = 0; n < t.doc.sel.ranges.length; n++) { - var r = t.doc.sel.ranges[n].head.line, - s = { - anchor: O(r, 0), - head: O(r + 1, 0) - }; - i.push(s), e.push(t.getRange(s.anchor, s.head)) - } - return { - text: e, - ranges: i - } - } - - function Rs(t, e) { - t.setAttribute("autocorrect", "off"), t.setAttribute("autocapitalize", "off"), t.setAttribute("spellcheck", !!e) - } - - function Vs() { - var t = n("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"), - e = n("div", [t], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); - return so ? t.style.width = "1000px" : t.setAttribute("wrap", "off"), fo && (t.style.border = "1px solid black"), Rs(t), e - } - - function Ws(t, e, i, n, r) { - function s() { - var e = a + i; - return !(e < t.first || e >= t.first + t.size) && (a = e, u = T(t, e)) - } - - function o(t) { - var e = (r ? Tt : Mt)(u, l, i, !0); - if (null == e) { - if (t || !s()) return !1; - l = r ? (i < 0 ? wt : xt)(u) : i < 0 ? u.text.length : 0 - } else l = e; - return !0 - } - var a = e.line, - l = e.ch, - c = i, - u = T(t, a); - if ("char" == n) o(); - else if ("column" == n) o(!0); - else if ("word" == n || "group" == n) - for (var h = null, d = "group" == n, f = t.cm && t.cm.getHelper(e, "wordChars"), p = !0; !(i < 0) || o(!p); p = !1) { - var g = u.text.charAt(l) || "\n", - m = w(g, f) ? "w" : d && "\n" == g ? "n" : !d || /\s/.test(g) ? null : "p"; - if (!d || p || m || (m = "s"), h && h != m) { - i < 0 && (i = 1, o()); - break - } - if (m && (h = m), i > 0 && !o(!p)) break - } - var v = xr(t, O(a, l), e, c, !0); - return I(e, v) || (v.hitSide = !0), v - } - - function Bs(t, e, i, n) { - var r, s = t.doc, - o = e.left; - if ("page" == n) { - var a = Math.min(t.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight), - l = Math.max(a - .5 * mi(t.display), 3); - r = (i > 0 ? e.bottom : e.top) + i * l - } else "line" == n && (r = i > 0 ? e.bottom + 3 : e.top - 3); - for (var c; c = pi(t, o, r), c.outside;) { - if (i < 0 ? r <= 0 : r >= s.height) { - c.hitSide = !0; - break - } - r += 5 * i - } - return c - } - - function js(t) { - this.cm = t, this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null, this.polling = new h, this.composing = null, this.gracePeriod = !1, this.readDOMTimeout = null - } - - function Us(t, e) { - var i = Xe(t, e.line); - if (!i || i.hidden) return null; - var n = T(t.doc, e.line), - r = Ke(i, n, e.line), - s = Et(n), - o = "left"; - if (s) { - o = kt(s, e.ch) % 2 ? "right" : "left" - } - var a = Qe(r.map, e.ch, o); - return a.offset = "right" == a.collapse ? a.end : a.start, a - } - - function qs(t, e) { - return e && (t.bad = !0), t - } - - function Ks(t, e, i, n, r) { - function s(t) { - return function(e) { - return e.id == t - } - } - - function o(e) { - if (1 == e.nodeType) { - var i = e.getAttribute("cm-text"); - if (null != i) return void(a += "" == i ? e.textContent.replace(/\u200b/g, "") : i); - var u, h = e.getAttribute("cm-marker"); - if (h) { - var d = t.findMarks(O(n, 0), O(r + 1, 0), s(+h)); - return void(d.length && (u = d[0].find()) && (a += M(t.doc, u.from, u.to).join(c))) - } - if ("false" == e.getAttribute("contenteditable")) return; - for (var f = 0; f < e.childNodes.length; f++) o(e.childNodes[f]); - /^(pre|div|p)$/i.test(e.nodeName) && (l = !0) - } else if (3 == e.nodeType) { - var p = e.nodeValue; - if (!p) return; - l && (a += c, l = !1), a += p - } - } - for (var a = "", l = !1, c = t.doc.lineSeparator(); o(e), e != i;) e = e.nextSibling; - return a - } - - function Gs(t, e, i) { - var n; - if (e == t.display.lineDiv) { - if (!(n = t.display.lineDiv.childNodes[i])) return qs(t.clipPos(O(t.display.viewTo - 1)), !0); - e = null, i = 0 - } else - for (n = e;; n = n.parentNode) { - if (!n || n == t.display.lineDiv) return null; - if (n.parentNode && n.parentNode == t.display.lineDiv) break - } - for (var r = 0; r < t.display.view.length; r++) { - var s = t.display.view[r]; - if (s.node == n) return Ys(s, e, i) - } - } - - function Ys(t, e, i) { - function n(e, i, n) { - for (var r = -1; r < (h ? h.length : 0); r++) - for (var s = r < 0 ? u.map : h[r], o = 0; o < s.length; o += 3) { - var a = s[o + 2]; - if (a == e || a == i) { - var l = $(r < 0 ? t.line : t.rest[r]), - c = s[o] + n; - return (n < 0 || a != e) && (c = s[o + (n ? 1 : 0)]), O(l, c) - } - } - } - var s = t.text.firstChild, - o = !1; - if (!e || !r(s, e)) return qs(O($(t.line), 0), !0); - if (e == s && (o = !0, e = s.childNodes[i], i = 0, !e)) { - var a = t.rest ? g(t.rest) : t.line; - return qs(O($(a), a.text.length), o) - } - var l = 3 == e.nodeType ? e : null, - c = e; - for (l || 1 != e.childNodes.length || 3 != e.firstChild.nodeType || (l = e.firstChild, i && (i = l.nodeValue.length)); c.parentNode != s;) c = c.parentNode; - var u = t.measure, - h = u.maps, - d = n(l, c, i); - if (d) return qs(d, o); - for (var f = c.nextSibling, p = l ? l.nodeValue.length - i : 0; f; f = f.nextSibling) { - if (d = n(f, f.firstChild, 0)) return qs(O(d.line, d.ch - p), o); - p += f.textContent.length - } - for (var m = c.previousSibling, v = i; m; m = m.previousSibling) { - if (d = n(m, m.firstChild, -1)) return qs(O(d.line, d.ch + v), o); - v += m.textContent.length - } - } - - function Xs(t) { - this.cm = t, this.prevInput = "", this.pollingFast = !1, this.polling = new h, this.inaccurateSelection = !1, this.hasSelection = !1, this.composing = null - } - - function Js(t, e) { - function i() { - t.value = l.getValue() - } - if (e = e ? c(e) : {}, e.value = t.value, !e.tabindex && t.tabIndex && (e.tabindex = t.tabIndex), !e.placeholder && t.placeholder && (e.placeholder = t.placeholder), null == e.autofocus) { - var n = s(); - e.autofocus = n == t || null != t.getAttribute("autofocus") && n == document.body - } - var r; - if (t.form && (Ho(t.form, "submit", i), !e.leaveSubmitMethodAlone)) { - var o = t.form; - r = o.submit; - try { - var a = o.submit = function() { - i(), o.submit = r, o.submit(), o.submit = a - } - } catch (t) {} - } - e.finishInit = function(e) { - e.save = i, e.getTextArea = function() { - return t - }, e.toTextArea = function() { - e.toTextArea = isNaN, i(), t.parentNode.removeChild(e.getWrapperElement()), t.style.display = "", t.form && ($t(t.form, "submit", i), "function" == typeof t.form.submit && (t.form.submit = r)) - } - }, t.style.display = "none"; - var l = Ns(function(e) { - return t.parentNode.insertBefore(e, t.nextSibling) - }, e); - return l - } - var Zs = navigator.userAgent, - Qs = navigator.platform, - to = /gecko\/\d/i.test(Zs), - eo = /MSIE \d/.test(Zs), - io = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Zs), - no = eo || io, - ro = no && (eo ? document.documentMode || 6 : io[1]), - so = /WebKit\//.test(Zs), - oo = so && /Qt\/\d+\.\d+/.test(Zs), - ao = /Chrome\//.test(Zs), - lo = /Opera\//.test(Zs), - co = /Apple Computer/.test(navigator.vendor), - uo = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(Zs), - ho = /PhantomJS/.test(Zs), - fo = /AppleWebKit/.test(Zs) && /Mobile\/\w+/.test(Zs), - po = fo || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(Zs), - go = fo || /Mac/.test(Qs), - mo = /\bCrOS\b/.test(Zs), - vo = /win/i.test(Qs), - yo = lo && Zs.match(/Version\/(\d*\.\d*)/); - yo && (yo = Number(yo[1])), yo && yo >= 15 && (lo = !1, so = !0); - var bo, xo = go && (oo || lo && (null == yo || yo < 12.11)), - wo = to || no && ro >= 9, - Co = function(e, i) { - var n = e.className, - r = t(i).exec(n); - if (r) { - var s = n.slice(r.index + r[0].length); - e.className = n.slice(0, r.index) + (s ? r[1] + s : "") - } - }; - bo = document.createRange ? function(t, e, i, n) { - var r = document.createRange(); - return r.setEnd(n || t, i), r.setStart(t, e), r - } : function(t, e, i) { - var n = document.body.createTextRange(); - try { - n.moveToElementText(t.parentNode) - } catch (t) { - return n - } - return n.collapse(!0), n.moveEnd("character", i), n.moveStart("character", e), n - }; - var ko = function(t) { - t.select() - }; - fo ? ko = function(t) { - t.selectionStart = 0, t.selectionEnd = t.value.length - } : no && (ko = function(t) { - try { - t.select() - } catch (t) {} - }), h.prototype.set = function(t, e) { - clearTimeout(this.id), this.id = setTimeout(e, t) - }; - var So, To, Mo = 30, - Eo = { - toString: function() { - return "CodeMirror.Pass" - } - }, - Po = { - scroll: !1 - }, - $o = { - origin: "*mouse" - }, - Lo = { - origin: "+move" - }, - Ao = [""], - No = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/, - Oo = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/, - Io = !1, - Do = !1, - _o = null, - zo = function() { - function t(t) { - return t <= 247 ? i.charAt(t) : 1424 <= t && t <= 1524 ? "R" : 1536 <= t && t <= 1773 ? n.charAt(t - 1536) : 1774 <= t && t <= 2220 ? "r" : 8192 <= t && t <= 8203 ? "w" : 8204 == t ? "b" : "L" - } - - function e(t, e, i) { - this.level = t, this.from = e, this.to = i - } - var i = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN", - n = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm", - r = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/, - s = /[stwN]/, - o = /[LRr]/, - a = /[Lb1n]/, - l = /[1n]/; - return function(i) { - if (!r.test(i)) return !1; - for (var n = i.length, c = [], u = 0; u < n; ++u) c.push(t(i.charCodeAt(u))); - for (var h = 0, d = "L"; h < n; ++h) { - var f = c[h]; - "m" == f ? c[h] = d : d = f - } - for (var p = 0, m = "L"; p < n; ++p) { - var v = c[p]; - "1" == v && "r" == m ? c[p] = "n" : o.test(v) && (m = v, "r" == v && (c[p] = "R")) - } - for (var y = 1, b = c[0]; y < n - 1; ++y) { - var x = c[y]; - "+" == x && "1" == b && "1" == c[y + 1] ? c[y] = "1" : "," != x || b != c[y + 1] || "1" != b && "n" != b || (c[y] = b), b = x - } - for (var w = 0; w < n; ++w) { - var C = c[w]; - if ("," == C) c[w] = "N"; - else if ("%" == C) { - var k = void 0; - for (k = w + 1; k < n && "%" == c[k]; ++k); - for (var S = w && "!" == c[w - 1] || k < n && "1" == c[k] ? "1" : "N", T = w; T < k; ++T) c[T] = S; - w = k - 1 - } - } - for (var M = 0, E = "L"; M < n; ++M) { - var P = c[M]; - "L" == E && "1" == P ? c[M] = "L" : o.test(P) && (E = P) - } - for (var $ = 0; $ < n; ++$) - if (s.test(c[$])) { - var L = void 0; - for (L = $ + 1; L < n && s.test(c[L]); ++L); - for (var A = "L" == ($ ? c[$ - 1] : "L"), N = "L" == (L < n ? c[L] : "L"), O = A || N ? "L" : "R", I = $; I < L; ++I) c[I] = O; - $ = L - 1 - } - for (var D, _ = [], z = 0; z < n;) - if (a.test(c[z])) { - var F = z; - for (++z; z < n && a.test(c[z]); ++z); - _.push(new e(0, F, z)) - } else { - var H = z, - R = _.length; - for (++z; z < n && "L" != c[z]; ++z); - for (var V = H; V < z;) - if (l.test(c[V])) { - H < V && _.splice(R, 0, new e(1, H, V)); - var W = V; - for (++V; V < z && l.test(c[V]); ++V); - _.splice(R, 0, new e(2, W, V)), H = V - } else ++V; - H < z && _.splice(R, 0, new e(1, H, z)) - } - return 1 == _[0].level && (D = i.match(/^\s+/)) && (_[0].from = D[0].length, _.unshift(new e(0, 0, D[0].length))), 1 == g(_).level && (D = i.match(/\s+$/)) && (g(_).to -= D[0].length, _.push(new e(0, n - D[0].length, n))), 2 == _[0].level && _.unshift(new e(1, _[0].to, _[0].to)), _[0].level != g(_).level && _.push(new e(_[0].level, n, n)), _ - } - }(), - Fo = [], - Ho = function(t, e, i) { - if (t.addEventListener) t.addEventListener(e, i, !1); - else if (t.attachEvent) t.attachEvent("on" + e, i); - else { - var n = t._handlers || (t._handlers = {}); - n[e] = (n[e] || Fo).concat(i) - } - }, - Ro = function() { - if (no && ro < 9) return !1; - var t = n("div"); - return "draggable" in t || "dragDrop" in t - }(), - Vo = 3 != "\n\nb".split(/\n/).length ? function(t) { - for (var e = 0, i = [], n = t.length; e <= n;) { - var r = t.indexOf("\n", e); - 1 == r && (r = t.length); - var s = t.slice(e, "\r" == t.charAt(r - 1) ? r - 1 : r), - o = s.indexOf("\r"); - 1 != o ? (i.push(s.slice(0, o)), e += o + 1) : (i.push(s), e = r + 1) - } - return i - } : function(t) { - return t.split(/\r\n?|\n/) - }, - Wo = window.getSelection ? function(t) { - try { - return t.selectionStart != t.selectionEnd - } catch (t) { - return !1 - } - } : function(t) { - var e; - try { - e = t.ownerDocument.selection.createRange() - } catch (t) {} - return !(!e || e.parentElement() != t) && 0 != e.compareEndPoints("StartToEnd", e) - }, - Bo = function() { - var t = n("div"); - return "oncopy" in t || (t.setAttribute("oncopy", "return;"), "function" == typeof t.oncopy) - }(), - jo = null, - Uo = {}, - qo = {}, - Ko = {}, - Go = function(t, e) { - this.pos = this.start = 0, this.string = t, this.tabSize = e || 8, this.lastColumnPos = this.lastColumnValue = 0, this.lineStart = 0 - }; - Go.prototype = { - eol: function() { - return this.pos >= this.string.length - }, - sol: function() { - return this.pos == this.lineStart - }, - peek: function() { - return this.string.charAt(this.pos) || void 0 - }, - next: function() { - if (this.pos < this.string.length) return this.string.charAt(this.pos++) - }, - eat: function(t) { - var e = this.string.charAt(this.pos); - if ("string" == typeof t ? e == t : e && (t.test ? t.test(e) : t(e))) return ++this.pos, e - }, - eatWhile: function(t) { - for (var e = this.pos; this.eat(t);); - return this.pos > e - }, - eatSpace: function() { - for (var t = this, e = this.pos; - /[\s\u00a0]/.test(this.string.charAt(this.pos));) ++t.pos; - return this.pos > e - }, - skipToEnd: function() { - this.pos = this.string.length - }, - skipTo: function(t) { - var e = this.string.indexOf(t, this.pos); - if (e > -1) return this.pos = e, !0 - }, - backUp: function(t) { - this.pos -= t - }, - column: function() { - return this.lastColumnPos < this.start && (this.lastColumnValue = u(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue), this.lastColumnPos = this.start), this.lastColumnValue - (this.lineStart ? u(this.string, this.lineStart, this.tabSize) : 0) - }, - indentation: function() { - return u(this.string, null, this.tabSize) - (this.lineStart ? u(this.string, this.lineStart, this.tabSize) : 0) - }, - match: function(t, e, i) { - if ("string" != typeof t) { - var n = this.string.slice(this.pos).match(t); - return n && n.index > 0 ? null : (n && !1 !== e && (this.pos += n[0].length), n) - } - var r = function(t) { - return i ? t.toLowerCase() : t - }; - if (r(this.string.substr(this.pos, t.length)) == r(t)) return !1 !== e && (this.pos += t.length), !0 - }, - current: function() { - return this.string.slice(this.start, this.pos) - }, - hideFirstChars: function(t, e) { - this.lineStart += t; - try { - return e() - } finally { - this.lineStart -= t - } - } - }, It(le), le.prototype.lineNo = function() { - return $(this) - }; - var Yo, Xo = {}, - Jo = {}, - Zo = null, - Qo = null, - ta = { - left: 0, - right: 0, - top: 0, - bottom: 0 - }, - ea = 0, - ia = null; - no ? ia = -.53 : to ? ia = 15 : ao ? ia = -.7 : co && (ia = -1 / 3), ji.prototype = c({ - update: function(t) { - var e = t.scrollWidth > t.clientWidth + 1, - i = t.scrollHeight > t.clientHeight + 1, - n = t.nativeBarWidth; - if (i) { - this.vert.style.display = "block", this.vert.style.bottom = e ? n + "px" : "0"; - var r = t.viewHeight - (e ? n : 0); - this.vert.firstChild.style.height = Math.max(0, t.scrollHeight - t.clientHeight + r) + "px" - } else this.vert.style.display = "", this.vert.firstChild.style.height = "0"; - if (e) { - this.horiz.style.display = "block", this.horiz.style.right = i ? n + "px" : "0", this.horiz.style.left = t.barLeft + "px"; - var s = t.viewWidth - t.barLeft - (i ? n : 0); - this.horiz.firstChild.style.width = t.scrollWidth - t.clientWidth + s + "px" - } else this.horiz.style.display = "", this.horiz.firstChild.style.width = "0"; - return !this.checkedZeroWidth && t.clientHeight > 0 && (0 == n && this.zeroWidthHack(), this.checkedZeroWidth = !0), { - right: i ? n : 0, - bottom: e ? n : 0 - } - }, - setScrollLeft: function(t) { - this.horiz.scrollLeft != t && (this.horiz.scrollLeft = t), this.disableHoriz && this.enableZeroWidthBar(this.horiz, this.disableHoriz) - }, - setScrollTop: function(t) { - this.vert.scrollTop != t && (this.vert.scrollTop = t), this.disableVert && this.enableZeroWidthBar(this.vert, this.disableVert) - }, - zeroWidthHack: function() { - var t = go && !uo ? "12px" : "18px"; - this.horiz.style.height = this.vert.style.width = t, this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none", this.disableHoriz = new h, this.disableVert = new h - }, - enableZeroWidthBar: function(t, e) { - function i() { - var n = t.getBoundingClientRect(); - document.elementFromPoint(n.left + 1, n.bottom - 1) != t ? t.style.pointerEvents = "none" : e.set(1e3, i) - } - t.style.pointerEvents = "auto", e.set(1e3, i) - }, - clear: function() { - var t = this.horiz.parentNode; - t.removeChild(this.horiz), t.removeChild(this.vert) - } - }, ji.prototype), Ui.prototype = c({ - update: function() { - return { - bottom: 0, - right: 0 - } - }, - setScrollLeft: function() {}, - setScrollTop: function() {}, - clear: function() {} - }, Ui.prototype); - var na = { - native: ji, - null: Ui - }, - ra = 0; - kn.prototype.signal = function(t, e) { - Ot(t, e) && this.events.push(arguments) - }, kn.prototype.finish = function() { - for (var t = this, e = 0; e < this.events.length; e++) Lt.apply(null, t.events[e]) - }, On.prototype = { - primary: function() { - return this.ranges[this.primIndex] - }, - equals: function(t) { - var e = this; - if (t == this) return !0; - if (t.primIndex != this.primIndex || t.ranges.length != this.ranges.length) return !1; - for (var i = 0; i < this.ranges.length; i++) { - var n = e.ranges[i], - r = t.ranges[i]; - if (0 != I(n.anchor, r.anchor) || 0 != I(n.head, r.head)) return !1 - } - return !0 - }, - deepCopy: function() { - for (var t = this, e = [], i = 0; i < this.ranges.length; i++) e[i] = new In(D(t.ranges[i].anchor), D(t.ranges[i].head)); - return new On(e, this.primIndex) - }, - somethingSelected: function() { - for (var t = this, e = 0; e < this.ranges.length; e++) - if (!t.ranges[e].empty()) return !0; - return !1 - }, - contains: function(t, e) { - var i = this; - e || (e = t); - for (var n = 0; n < this.ranges.length; n++) { - var r = i.ranges[n]; - if (I(e, r.from()) >= 0 && I(t, r.to()) <= 0) return n - } - return -1 - } - }, In.prototype = { - from: function() { - return z(this.anchor, this.head) - }, - to: function() { - return _(this.anchor, this.head) - }, - empty: function() { - return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch - } - }, Dr.prototype = { - chunkSize: function() { - return this.lines.length - }, - removeInner: function(t, e) { - for (var i = this, n = t, r = t + e; n < r; ++n) { - var s = i.lines[n]; - i.height -= s.height, ue(s), Se(s, "delete") - } - this.lines.splice(t, e) - }, - collapse: function(t) { - t.push.apply(t, this.lines) - }, - insertInner: function(t, e, i) { - var n = this; - this.height += i, this.lines = this.lines.slice(0, t).concat(e).concat(this.lines.slice(t)); - for (var r = 0; r < e.length; ++r) e[r].parent = n - }, - iterN: function(t, e, i) { - for (var n = this, r = t + e; t < r; ++t) - if (i(n.lines[t])) return !0 - } - }, _r.prototype = { - chunkSize: function() { - return this.size - }, - removeInner: function(t, e) { - var i = this; - this.size -= e; - for (var n = 0; n < this.children.length; ++n) { - var r = i.children[n], - s = r.chunkSize(); - if (t < s) { - var o = Math.min(e, s - t), - a = r.height; - if (r.removeInner(t, o), i.height -= a - r.height, s == o && (i.children.splice(n--, 1), r.parent = null), 0 == (e -= o)) break; - t = 0 - } else t -= s - } - if (this.size - e < 25 && (this.children.length > 1 || !(this.children[0] instanceof Dr))) { - var l = []; - this.collapse(l), this.children = [new Dr(l)], this.children[0].parent = this - } - }, - collapse: function(t) { - for (var e = this, i = 0; i < this.children.length; ++i) e.children[i].collapse(t) - }, - insertInner: function(t, e, i) { - var n = this; - this.size += e.length, this.height += i; - for (var r = 0; r < this.children.length; ++r) { - var s = n.children[r], - o = s.chunkSize(); - if (t <= o) { - if (s.insertInner(t, e, i), s.lines && s.lines.length > 50) { - for (var a = s.lines.length % 25 + 25, l = a; l < s.lines.length;) { - var c = new Dr(s.lines.slice(l, l += 25)); - s.height -= c.height, n.children.splice(++r, 0, c), c.parent = n - } - s.lines = s.lines.slice(0, a), n.maybeSpill() - } - break - } - t -= o - } - }, - maybeSpill: function() { - if (!(this.children.length <= 10)) { - var t = this; - do { - var e = t.children.splice(t.children.length - 5, 5), - i = new _r(e); - if (t.parent) { - t.size -= i.size, t.height -= i.height; - var n = d(t.parent.children, t); - t.parent.children.splice(n + 1, 0, i) - } else { - var r = new _r(t.children); - r.parent = t, t.children = [r, i], t = r - } - i.parent = t.parent - } while (t.children.length > 10); - t.parent.maybeSpill() - } - }, - iterN: function(t, e, i) { - for (var n = this, r = 0; r < this.children.length; ++r) { - var s = n.children[r], - o = s.chunkSize(); - if (t < o) { - var a = Math.min(e, o - t); - if (s.iterN(t, a, i)) return !0; - if (0 == (e -= a)) break; - t = 0 - } else t -= o - } - } - }, It(zr), zr.prototype.clear = function() { - var t = this, - e = this.doc.cm, - i = this.line.widgets, - n = this.line, - r = $(n); - if (null != r && i) { - for (var s = 0; s < i.length; ++s) i[s] == t && i.splice(s--, 1); - i.length || (n.widgets = null); - var o = Fe(this); - P(n, Math.max(0, n.height - o)), e && hn(e, function() { - Fr(e, n, -o), mn(e, r, "widget") - }) - } - }, zr.prototype.changed = function() { - var t = this.height, - e = this.doc.cm, - i = this.line; - this.height = null; - var n = Fe(this) - t; - n && (P(i, i.height + n), e && hn(e, function() { - e.curOp.forceUpdate = !0, Fr(e, i, n) - })) - }; - var sa = 0; - It(Rr), Rr.prototype.clear = function() { - var t = this; - if (!this.explicitlyCleared) { - var e = this.doc.cm, - i = e && !e.curOp; - if (i && nn(e), Ot(this, "clear")) { - var n = this.find(); - n && Se(this, "clear", n.from, n.to) - } - for (var r = null, s = null, o = 0; o < this.lines.length; ++o) { - var a = t.lines[o], - l = U(a.markedSpans, t); - e && !t.collapsed ? mn(e, $(a), "text") : e && (null != l.to && (s = $(a)), null != l.from && (r = $(a))), a.markedSpans = q(a.markedSpans, l), null == l.from && t.collapsed && !dt(t.doc, a) && e && P(a, mi(e.display)) - } - if (e && this.collapsed && !e.options.lineWrapping) - for (var c = 0; c < this.lines.length; ++c) { - var u = lt(t.lines[c]), - h = gt(u); - h > e.display.maxLineLength && (e.display.maxLine = u, e.display.maxLineLength = h, e.display.maxLineChanged = !0) - } - null != r && e && this.collapsed && gn(e, r, s + 1), this.lines.length = 0, this.explicitlyCleared = !0, this.atomic && this.doc.cantEdit && (this.doc.cantEdit = !1, e && vr(e.doc)), e && Se(e, "markerCleared", e, this), i && rn(e), this.parent && this.parent.clear() - } - }, Rr.prototype.find = function(t, e) { - var i = this; - null == t && "bookmark" == this.type && (t = 1); - for (var n, r, s = 0; s < this.lines.length; ++s) { - var o = i.lines[s], - a = U(o.markedSpans, i); - if (null != a.from && (n = O(e ? o : $(o), a.from), -1 == t)) return n; - if (null != a.to && (r = O(e ? o : $(o), a.to), 1 == t)) return r - } - return n && { - from: n, - to: r - } - }, Rr.prototype.changed = function() { - var t = this.find(-1, !0), - e = this, - i = this.doc.cm; - t && i && hn(i, function() { - var n = t.line, - r = $(t.line), - s = Xe(i, r); - if (s && (ni(s), i.curOp.selectionChanged = i.curOp.forceUpdate = !0), i.curOp.updateMaxLine = !0, !dt(e.doc, n) && null != e.height) { - var o = e.height; - e.height = null; - var a = Fe(e) - o; - a && P(n, n.height + a) - } - }) - }, Rr.prototype.attachLine = function(t) { - if (!this.lines.length && this.doc.cm) { - var e = this.doc.cm.curOp; - e.maybeHiddenMarkers && -1 != d(e.maybeHiddenMarkers, this) || (e.maybeUnhiddenMarkers || (e.maybeUnhiddenMarkers = [])).push(this) - } - this.lines.push(t) - }, Rr.prototype.detachLine = function(t) { - if (this.lines.splice(d(this.lines, t), 1), !this.lines.length && this.doc.cm) { - var e = this.doc.cm.curOp; - (e.maybeHiddenMarkers || (e.maybeHiddenMarkers = [])).push(this) - } - }, It(Wr), Wr.prototype.clear = function() { - var t = this; - if (!this.explicitlyCleared) { - this.explicitlyCleared = !0; - for (var e = 0; e < this.markers.length; ++e) t.markers[e].clear(); - Se(this, "clear") - } - }, Wr.prototype.find = function(t, e) { - return this.primary.find(t, e) - }; - var oa = 0, - aa = function(t, e, i, n) { - if (!(this instanceof aa)) return new aa(t, e, i, n); - null == i && (i = 0), _r.call(this, [new Dr([new le("", null)])]), this.first = i, this.scrollTop = this.scrollLeft = 0, this.cantEdit = !1, this.cleanGeneration = 1, this.frontier = i; - var r = O(i, 0); - this.sel = _n(r), this.history = new Gn(null), this.id = ++oa, this.modeOption = e, this.lineSep = n, this.extend = !1, "string" == typeof t && (t = this.splitLines(t)), Un(this, { - from: r, - to: r, - text: t - }), pr(this, _n(r), Po) - }; - aa.prototype = b(_r.prototype, { - constructor: aa, - iter: function(t, e, i) { - i ? this.iterN(t - this.first, e - t, i) : this.iterN(this.first, this.first + this.size, t) - }, - insert: function(t, e) { - for (var i = 0, n = 0; n < e.length; ++n) i += e[n].height; - this.insertInner(t - this.first, e, i) - }, - remove: function(t, e) { - this.removeInner(t - this.first, e) - }, - getValue: function(t) { - var e = E(this, this.first, this.first + this.size); - return !1 === t ? e : e.join(t || this.lineSeparator()) - }, - setValue: pn(function(t) { - var e = O(this.first, 0), - i = this.first + this.size - 1; - Sr(this, { - from: e, - to: O(i, T(this, i).text.length), - text: this.splitLines(t), - origin: "setValue", - full: !0 - }, !0), pr(this, _n(e)) - }), - replaceRange: function(t, e, i, n) { - e = H(this, e), i = i ? H(this, i) : e, Lr(this, t, e, i, n) - }, - getRange: function(t, e, i) { - var n = M(this, H(this, t), H(this, e)); - return !1 === i ? n : n.join(i || this.lineSeparator()) - }, - getLine: function(t) { - var e = this.getLineHandle(t); - return e && e.text - }, - getLineHandle: function(t) { - if (A(this, t)) return T(this, t) - }, - getLineNumber: function(t) { - return $(t) - }, - getLineHandleVisualStart: function(t) { - return "number" == typeof t && (t = T(this, t)), lt(t) - }, - lineCount: function() { - return this.size - }, - firstLine: function() { - return this.first - }, - lastLine: function() { - return this.first + this.size - 1 - }, - clipPos: function(t) { - return H(this, t) - }, - getCursor: function(t) { - var e = this.sel.primary(); - return null == t || "head" == t ? e.head : "anchor" == t ? e.anchor : "end" == t || "to" == t || !1 === t ? e.to() : e.from() - }, - listSelections: function() { - return this.sel.ranges - }, - somethingSelected: function() { - return this.sel.somethingSelected() - }, - setCursor: pn(function(t, e, i) { - hr(this, H(this, "number" == typeof t ? O(t, e || 0) : t), null, i) - }), - setSelection: pn(function(t, e, i) { - hr(this, H(this, t), H(this, e || t), i) - }), - extendSelection: pn(function(t, e, i) { - lr(this, H(this, t), e && H(this, e), i) - }), - extendSelections: pn(function(t, e) { - cr(this, V(this, t), e) - }), - extendSelectionsBy: pn(function(t, e) { - cr(this, V(this, m(this.sel.ranges, t)), e) - }), - setSelections: pn(function(t, e, i) { - var n = this; - if (t.length) { - for (var r = [], s = 0; s < t.length; s++) r[s] = new In(H(n, t[s].anchor), H(n, t[s].head)); - null == e && (e = Math.min(t.length - 1, this.sel.primIndex)), pr(this, Dn(r, e), i) - } - }), - addSelection: pn(function(t, e, i) { - var n = this.sel.ranges.slice(0); - n.push(new In(H(this, t), H(this, e || t))), pr(this, Dn(n, n.length - 1), i) - }), - getSelection: function(t) { - for (var e, i = this, n = this.sel.ranges, r = 0; r < n.length; r++) { - var s = M(i, n[r].from(), n[r].to()); - e = e ? e.concat(s) : s - } - return !1 === t ? e : e.join(t || this.lineSeparator()) - }, - getSelections: function(t) { - for (var e = this, i = [], n = this.sel.ranges, r = 0; r < n.length; r++) { - var s = M(e, n[r].from(), n[r].to()); - !1 !== t && (s = s.join(t || e.lineSeparator())), i[r] = s - } - return i - }, - replaceSelection: function(t, e, i) { - for (var n = [], r = 0; r < this.sel.ranges.length; r++) n[r] = t; - this.replaceSelections(n, e, i || "+input") - }, - replaceSelections: pn(function(t, e, i) { - for (var n = this, r = [], s = this.sel, o = 0; o < s.ranges.length; o++) { - var a = s.ranges[o]; - r[o] = { - from: a.from(), - to: a.to(), - text: n.splitLines(t[o]), - origin: i - } - } - for (var l = e && "end" != e && Vn(this, r, e), c = r.length - 1; c >= 0; c--) Sr(n, r[c]); - l ? fr(this, l) : this.cm && tn(this.cm) - }), - undo: pn(function() { - Mr(this, "undo") - }), - redo: pn(function() { - Mr(this, "redo") - }), - undoSelection: pn(function() { - Mr(this, "undo", !0) - }), - redoSelection: pn(function() { - Mr(this, "redo", !0) - }), - setExtending: function(t) { - this.extend = t - }, - getExtending: function() { - return this.extend - }, - historySize: function() { - for (var t = this.history, e = 0, i = 0, n = 0; n < t.done.length; n++) t.done[n].ranges || ++e; - for (var r = 0; r < t.undone.length; r++) t.undone[r].ranges || ++i; - return { - undo: e, - redo: i - } - }, - clearHistory: function() { - this.history = new Gn(this.history.maxGeneration) - }, - markClean: function() { - this.cleanGeneration = this.changeGeneration(!0) - }, - changeGeneration: function(t) { - return t && (this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null), this.history.generation - }, - isClean: function(t) { - return this.history.generation == (t || this.cleanGeneration) - }, - getHistory: function() { - return { - done: or(this.history.done), - undone: or(this.history.undone) - } - }, - setHistory: function(t) { - var e = this.history = new Gn(this.history.maxGeneration); - e.done = or(t.done.slice(0), null, !0), e.undone = or(t.undone.slice(0), null, !0) - }, - setGutterMarker: pn(function(t, e, i) { - return Ir(this, t, "gutter", function(t) { - var n = t.gutterMarkers || (t.gutterMarkers = {}); - return n[e] = i, !i && C(n) && (t.gutterMarkers = null), !0 - }) - }), - clearGutter: pn(function(t) { - var e = this, - i = this.first; - this.iter(function(n) { - n.gutterMarkers && n.gutterMarkers[t] && Ir(e, n, "gutter", function() { - return n.gutterMarkers[t] = null, C(n.gutterMarkers) && (n.gutterMarkers = null), !0 - }), ++i - }) - }), - lineInfo: function(t) { - var e; - if ("number" == typeof t) { - if (!A(this, t)) return null; - if (e = t, !(t = T(this, t))) return null - } else if (null == (e = $(t))) return null; - return { - line: e, - handle: t, - text: t.text, - gutterMarkers: t.gutterMarkers, - textClass: t.textClass, - bgClass: t.bgClass, - wrapClass: t.wrapClass, - widgets: t.widgets - } - }, - addLineClass: pn(function(e, i, n) { - return Ir(this, e, "gutter" == i ? "gutter" : "class", function(e) { - var r = "text" == i ? "textClass" : "background" == i ? "bgClass" : "gutter" == i ? "gutterClass" : "wrapClass"; - if (e[r]) { - if (t(n).test(e[r])) return !1; - e[r] += " " + n - } else e[r] = n; - return !0 - }) - }), - removeLineClass: pn(function(e, i, n) { - return Ir(this, e, "gutter" == i ? "gutter" : "class", function(e) { - var r = "text" == i ? "textClass" : "background" == i ? "bgClass" : "gutter" == i ? "gutterClass" : "wrapClass", - s = e[r]; - if (!s) return !1; - if (null == n) e[r] = null; - else { - var o = s.match(t(n)); - if (!o) return !1; - var a = o.index + o[0].length; - e[r] = s.slice(0, o.index) + (o.index && a != s.length ? " " : "") + s.slice(a) || null - } - return !0 - }) - }), - addLineWidget: pn(function(t, e, i) { - return Hr(this, t, e, i) - }), - removeLineWidget: function(t) { - t.clear() - }, - markText: function(t, e, i) { - return Vr(this, H(this, t), H(this, e), i, i && i.type || "range") - }, - setBookmark: function(t, e) { - var i = { - replacedWith: e && (null == e.nodeType ? e.widget : e), - insertLeft: e && e.insertLeft, - clearWhenEmpty: !1, - shared: e && e.shared, - handleMouseEvents: e && e.handleMouseEvents - }; - return t = H(this, t), Vr(this, t, t, i, "bookmark") - }, - findMarksAt: function(t) { - t = H(this, t); - var e = [], - i = T(this, t.line).markedSpans; - if (i) - for (var n = 0; n < i.length; ++n) { - var r = i[n]; - (null == r.from || r.from <= t.ch) && (null == r.to || r.to >= t.ch) && e.push(r.marker.parent || r.marker) - } - return e - }, - findMarks: function(t, e, i) { - t = H(this, t), e = H(this, e); - var n = [], - r = t.line; - return this.iter(t.line, e.line + 1, function(s) { - var o = s.markedSpans; - if (o) - for (var a = 0; a < o.length; a++) { - var l = o[a]; - null != l.to && r == t.line && t.ch >= l.to || null == l.from && r != t.line || null != l.from && r == e.line && l.from >= e.ch || i && !i(l.marker) || n.push(l.marker.parent || l.marker) - }++r - }), n - }, - getAllMarks: function() { - var t = []; - return this.iter(function(e) { - var i = e.markedSpans; - if (i) - for (var n = 0; n < i.length; ++n) null != i[n].from && t.push(i[n].marker) - }), t - }, - posFromIndex: function(t) { - var e, i = this.first, - n = this.lineSeparator().length; - return this.iter(function(r) { - var s = r.text.length + n; - if (s > t) return e = t, !0; - t -= s, ++i - }), H(this, O(i, e)) - }, - indexFromPos: function(t) { - t = H(this, t); - var e = t.ch; - if (t.line < this.first || t.ch < 0) return 0; - var i = this.lineSeparator().length; - return this.iter(this.first, t.line, function(t) { - e += t.text.length + i - }), e - }, - copy: function(t) { - var e = new aa(E(this, this.first, this.first + this.size), this.modeOption, this.first, this.lineSep); - return e.scrollTop = this.scrollTop, e.scrollLeft = this.scrollLeft, e.sel = this.sel, e.extend = !1, t && (e.history.undoDepth = this.history.undoDepth, e.setHistory(this.getHistory())), e - }, - linkedDoc: function(t) { - t || (t = {}); - var e = this.first, - i = this.first + this.size; - null != t.from && t.from > e && (e = t.from), null != t.to && t.to < i && (i = t.to); - var n = new aa(E(this, e, i), t.mode || this.modeOption, e, this.lineSep); - return t.sharedHist && (n.history = this.history), (this.linked || (this.linked = [])).push({ - doc: n, - sharedHist: t.sharedHist - }), n.linked = [{ - doc: this, - isParent: !0, - sharedHist: t.sharedHist - }], Ur(n, jr(this)), n - }, - unlinkDoc: function(t) { - var e = this; - if (t instanceof Ns && (t = t.doc), this.linked) - for (var i = 0; i < this.linked.length; ++i) { - var n = e.linked[i]; - if (n.doc == t) { - e.linked.splice(i, 1), t.unlinkDoc(e), qr(jr(e)); - break - } - } - if (t.history == this.history) { - var r = [t.id]; - qn(t, function(t) { - return r.push(t.id) - }, !0), t.history = new Gn(null), t.history.done = or(this.history.done, r), t.history.undone = or(this.history.undone, r) - } - }, - iterLinkedDocs: function(t) { - qn(this, t) - }, - getMode: function() { - return this.mode - }, - getEditor: function() { - return this.cm - }, - splitLines: function(t) { - return this.lineSep ? t.split(this.lineSep) : Vo(t) - }, - lineSeparator: function() { - return this.lineSep || "\n" - } - }), aa.prototype.eachLine = aa.prototype.iter; - for (var la = 0, ca = !1, ua = { - 3: "Enter", - 8: "Backspace", - 9: "Tab", - 13: "Enter", - 16: "Shift", - 17: "Ctrl", - 18: "Alt", - 19: "Pause", - 20: "CapsLock", - 27: "Esc", - 32: "Space", - 33: "PageUp", - 34: "PageDown", - 35: "End", - 36: "Home", - 37: "Left", - 38: "Up", - 39: "Right", - 40: "Down", - 44: "PrintScrn", - 45: "Insert", - 46: "Delete", - 59: ";", - 61: "=", - 91: "Mod", - 92: "Mod", - 93: "Mod", - 106: "*", - 107: "=", - 109: "-", - 110: ".", - 111: "/", - 127: "Delete", - 173: "-", - 186: ";", - 187: "=", - 188: ",", - 189: "-", - 190: ".", - 191: "/", - 192: "`", - 219: "[", - 220: "\\", - 221: "]", - 222: "'", - 63232: "Up", - 63233: "Down", - 63234: "Left", - 63235: "Right", - 63272: "Delete", - 63273: "Home", - 63275: "End", - 63276: "PageUp", - 63277: "PageDown", - 63302: "Insert" - }, ha = 0; ha < 10; ha++) ua[ha + 48] = ua[ha + 96] = String(ha); - for (var da = 65; da <= 90; da++) ua[da] = String.fromCharCode(da); - for (var fa = 1; fa <= 12; fa++) ua[fa + 111] = ua[fa + 63235] = "F" + fa; - var pa = {}; - pa.basic = { - Left: "goCharLeft", - Right: "goCharRight", - Up: "goLineUp", - Down: "goLineDown", - End: "goLineEnd", - Home: "goLineStartSmart", - PageUp: "goPageUp", - PageDown: "goPageDown", - Delete: "delCharAfter", - Backspace: "delCharBefore", - "Shift-Backspace": "delCharBefore", - Tab: "defaultTab", - "Shift-Tab": "indentAuto", - Enter: "newlineAndIndent", - Insert: "toggleOverwrite", - Esc: "singleSelection" - }, pa.pcDefault = { - "Ctrl-A": "selectAll", - "Ctrl-D": "deleteLine", - "Ctrl-Z": "undo", - "Shift-Ctrl-Z": "redo", - "Ctrl-Y": "redo", - "Ctrl-Home": "goDocStart", - "Ctrl-End": "goDocEnd", - "Ctrl-Up": "goLineUp", - "Ctrl-Down": "goLineDown", - "Ctrl-Left": "goGroupLeft", - "Ctrl-Right": "goGroupRight", - "Alt-Left": "goLineStart", - "Alt-Right": "goLineEnd", - "Ctrl-Backspace": "delGroupBefore", - "Ctrl-Delete": "delGroupAfter", - "Ctrl-S": "save", - "Ctrl-F": "find", - "Ctrl-G": "findNext", - "Shift-Ctrl-G": "findPrev", - "Shift-Ctrl-F": "replace", - "Shift-Ctrl-R": "replaceAll", - "Ctrl-[": "indentLess", - "Ctrl-]": "indentMore", - "Ctrl-U": "undoSelection", - "Shift-Ctrl-U": "redoSelection", - "Alt-U": "redoSelection", - fallthrough: "basic" - }, pa.emacsy = { - "Ctrl-F": "goCharRight", - "Ctrl-B": "goCharLeft", - "Ctrl-P": "goLineUp", - "Ctrl-N": "goLineDown", - "Alt-F": "goWordRight", - "Alt-B": "goWordLeft", - "Ctrl-A": "goLineStart", - "Ctrl-E": "goLineEnd", - "Ctrl-V": "goPageDown", - "Shift-Ctrl-V": "goPageUp", - "Ctrl-D": "delCharAfter", - "Ctrl-H": "delCharBefore", - "Alt-D": "delWordAfter", - "Alt-Backspace": "delWordBefore", - "Ctrl-K": "killLine", - "Ctrl-T": "transposeChars", - "Ctrl-O": "openLine" - }, pa.macDefault = { - "Cmd-A": "selectAll", - "Cmd-D": "deleteLine", - "Cmd-Z": "undo", - "Shift-Cmd-Z": "redo", - "Cmd-Y": "redo", - "Cmd-Home": "goDocStart", - "Cmd-Up": "goDocStart", - "Cmd-End": "goDocEnd", - "Cmd-Down": "goDocEnd", - "Alt-Left": "goGroupLeft", - "Alt-Right": "goGroupRight", - "Cmd-Left": "goLineLeft", - "Cmd-Right": "goLineRight", - "Alt-Backspace": "delGroupBefore", - "Ctrl-Alt-Backspace": "delGroupAfter", - "Alt-Delete": "delGroupAfter", - "Cmd-S": "save", - "Cmd-F": "find", - "Cmd-G": "findNext", - "Shift-Cmd-G": "findPrev", - "Cmd-Alt-F": "replace", - "Shift-Cmd-Alt-F": "replaceAll", - "Cmd-[": "indentLess", - "Cmd-]": "indentMore", - "Cmd-Backspace": "delWrappedLineLeft", - "Cmd-Delete": "delWrappedLineRight", - "Cmd-U": "undoSelection", - "Shift-Cmd-U": "redoSelection", - "Ctrl-Up": "goDocStart", - "Ctrl-Down": "goDocEnd", - fallthrough: ["basic", "emacsy"] - }, pa.default = go ? pa.macDefault : pa.pcDefault; - var ga, ma, va = { - selectAll: Cr, - singleSelection: function(t) { - return t.setSelection(t.getCursor("anchor"), t.getCursor("head"), Po) - }, - killLine: function(t) { - return as(t, function(e) { - if (e.empty()) { - var i = T(t.doc, e.head.line).text.length; - return e.head.ch == i && e.head.line < t.lastLine() ? { - from: e.head, - to: O(e.head.line + 1, 0) - } : { - from: e.head, - to: O(e.head.line, i) - } - } - return { - from: e.from(), - to: e.to() - } - }) - }, - deleteLine: function(t) { - return as(t, function(e) { - return { - from: O(e.from().line, 0), - to: H(t.doc, O(e.to().line + 1, 0)) - } - }) - }, - delLineLeft: function(t) { - return as(t, function(t) { - return { - from: O(t.from().line, 0), - to: t.from() - } - }) - }, - delWrappedLineLeft: function(t) { - return as(t, function(e) { - var i = t.charCoords(e.head, "div").top + 5; - return { - from: t.coordsChar({ - left: 0, - top: i - }, "div"), - to: e.from() - } - }) - }, - delWrappedLineRight: function(t) { - return as(t, function(e) { - var i = t.charCoords(e.head, "div").top + 5, - n = t.coordsChar({ - left: t.display.lineDiv.offsetWidth + 100, - top: i - }, "div"); - return { - from: e.from(), - to: n - } - }) - }, - undo: function(t) { - return t.undo() - }, - redo: function(t) { - return t.redo() - }, - undoSelection: function(t) { - return t.undoSelection() - }, - redoSelection: function(t) { - return t.redoSelection() - }, - goDocStart: function(t) { - return t.extendSelection(O(t.firstLine(), 0)) - }, - goDocEnd: function(t) { - return t.extendSelection(O(t.lastLine())) - }, - goLineStart: function(t) { - return t.extendSelectionsBy(function(e) { - return ls(t, e.head.line) - }, { - origin: "+move", - bias: 1 - }) - }, - goLineStartSmart: function(t) { - return t.extendSelectionsBy(function(e) { - return us(t, e.head) - }, { - origin: "+move", - bias: 1 - }) - }, - goLineEnd: function(t) { - return t.extendSelectionsBy(function(e) { - return cs(t, e.head.line) - }, { - origin: "+move", - bias: -1 - }) - }, - goLineRight: function(t) { - return t.extendSelectionsBy(function(e) { - var i = t.charCoords(e.head, "div").top + 5; - return t.coordsChar({ - left: t.display.lineDiv.offsetWidth + 100, - top: i - }, "div") - }, Lo) - }, - goLineLeft: function(t) { - return t.extendSelectionsBy(function(e) { - var i = t.charCoords(e.head, "div").top + 5; - return t.coordsChar({ - left: 0, - top: i - }, "div") - }, Lo) - }, - goLineLeftSmart: function(t) { - return t.extendSelectionsBy(function(e) { - var i = t.charCoords(e.head, "div").top + 5, - n = t.coordsChar({ - left: 0, - top: i - }, "div"); - return n.ch < t.getLine(n.line).search(/\S/) ? us(t, e.head) : n - }, Lo) - }, - goLineUp: function(t) { - return t.moveV(-1, "line") - }, - goLineDown: function(t) { - return t.moveV(1, "line") - }, - goPageUp: function(t) { - return t.moveV(-1, "page") - }, - goPageDown: function(t) { - return t.moveV(1, "page") - }, - goCharLeft: function(t) { - return t.moveH(-1, "char") - }, - goCharRight: function(t) { - return t.moveH(1, "char") - }, - goColumnLeft: function(t) { - return t.moveH(-1, "column") - }, - goColumnRight: function(t) { - return t.moveH(1, "column") - }, - goWordLeft: function(t) { - return t.moveH(-1, "word") - }, - goGroupRight: function(t) { - return t.moveH(1, "group") - }, - goGroupLeft: function(t) { - return t.moveH(-1, "group") - }, - goWordRight: function(t) { - return t.moveH(1, "word") - }, - delCharBefore: function(t) { - return t.deleteH(-1, "char") - }, - delCharAfter: function(t) { - return t.deleteH(1, "char") - }, - delWordBefore: function(t) { - return t.deleteH(-1, "word") - }, - delWordAfter: function(t) { - return t.deleteH(1, "word") - }, - delGroupBefore: function(t) { - return t.deleteH(-1, "group") - }, - delGroupAfter: function(t) { - return t.deleteH(1, "group") - }, - indentAuto: function(t) { - return t.indentSelection("smart") - }, - indentMore: function(t) { - return t.indentSelection("add") - }, - indentLess: function(t) { - return t.indentSelection("subtract") - }, - insertTab: function(t) { - return t.replaceSelection("\t") - }, - insertSoftTab: function(t) { - for (var e = [], i = t.listSelections(), n = t.options.tabSize, r = 0; r < i.length; r++) { - var s = i[r].from(), - o = u(t.getLine(s.line), s.ch, n); - e.push(p(n - o % n)) - } - t.replaceSelections(e) - }, - defaultTab: function(t) { - t.somethingSelected() ? t.indentSelection("add") : t.execCommand("insertTab") - }, - transposeChars: function(t) { - return hn(t, function() { - for (var e = t.listSelections(), i = [], n = 0; n < e.length; n++) - if (e[n].empty()) { - var r = e[n].head, - s = T(t.doc, r.line).text; - if (s) - if (r.ch == s.length && (r = new O(r.line, r.ch - 1)), r.ch > 0) r = new O(r.line, r.ch + 1), t.replaceRange(s.charAt(r.ch - 1) + s.charAt(r.ch - 2), O(r.line, r.ch - 2), r, "+transpose"); - else if (r.line > t.doc.first) { - var o = T(t.doc, r.line - 1).text; - o && (r = new O(r.line, 1), t.replaceRange(s.charAt(0) + t.doc.lineSeparator() + o.charAt(o.length - 1), O(r.line - 1, o.length - 1), r, "+transpose")) - } - i.push(new In(r, r)) - } - t.setSelections(i) - }) - }, - newlineAndIndent: function(t) { - return hn(t, function() { - for (var e = t.listSelections(), i = e.length - 1; i >= 0; i--) t.replaceRange(t.doc.lineSeparator(), e[i].anchor, e[i].head, "+input"); - e = t.listSelections(); - for (var n = 0; n < e.length; n++) t.indentLine(e[n].from().line, null, !0); - tn(t) - }) - }, - openLine: function(t) { - return t.replaceSelection("\n", "start") - }, - toggleOverwrite: function(t) { - return t.toggleOverwrite() - } - }, - ya = new h, - ba = null, - xa = { - toString: function() { - return "CodeMirror.Init" - } - }, - wa = {}, - Ca = {}; - Ns.defaults = wa, Ns.optionHandlers = Ca; - var ka = []; - Ns.defineInitHook = function(t) { - return ka.push(t) - }; - var Sa = null; - js.prototype = c({ - init: function(t) { - function e(t) { - if (!At(r, t)) { - if (r.somethingSelected()) Ds({ - lineWise: !1, - text: r.getSelections() - }), "cut" == t.type && r.replaceSelection("", null, "cut"); - else { - if (!r.options.lineWiseCopyCut) return; - var e = Hs(r); - Ds({ - lineWise: !0, - text: e.text - }), "cut" == t.type && r.operation(function() { - r.setSelections(e.ranges, 0, Po), r.replaceSelection("", null, "cut") - }) - } - if (t.clipboardData) { - t.clipboardData.clearData(); - var i = Sa.text.join("\n"); - if (t.clipboardData.setData("Text", i), t.clipboardData.getData("Text") == i) return void t.preventDefault() - } - var o = Vs(), - a = o.firstChild; - r.display.lineSpace.insertBefore(o, r.display.lineSpace.firstChild), a.value = Sa.text.join("\n"); - var l = document.activeElement; - ko(a), setTimeout(function() { - r.display.lineSpace.removeChild(o), l.focus(), l == s && n.showPrimarySelection() - }, 50) - } - } - var i = this, - n = this, - r = n.cm, - s = n.div = t.lineDiv; - Rs(s, r.options.spellcheck), Ho(s, "paste", function(t) { - At(r, t) || zs(t, r) || ro <= 11 && setTimeout(dn(r, function() { - n.pollContent() || gn(r) - }), 20) - }), Ho(s, "compositionstart", function(t) { - i.composing = { - data: t.data - } - }), Ho(s, "compositionupdate", function(t) { - i.composing || (i.composing = { - data: t.data - }) - }), Ho(s, "compositionend", function(t) { - i.composing && (t.data != i.composing.data && i.readFromDOMSoon(), i.composing = null) - }), Ho(s, "touchstart", function() { - return n.forceCompositionEnd() - }), Ho(s, "input", function() { - i.composing || i.readFromDOMSoon() - }), Ho(s, "copy", e), Ho(s, "cut", e) - }, - prepareSelection: function() { - var t = Ti(this.cm, !1); - return t.focus = this.cm.state.focused, t - }, - showSelection: function(t, e) { - t && this.cm.display.view.length && ((t.focus || e) && this.showPrimarySelection(), this.showMultipleSelections(t)) - }, - showPrimarySelection: function() { - var t = window.getSelection(), - e = this.cm.doc.sel.primary(), - i = Gs(this.cm, t.anchorNode, t.anchorOffset), - n = Gs(this.cm, t.focusNode, t.focusOffset); - if (!i || i.bad || !n || n.bad || 0 != I(z(i, n), e.from()) || 0 != I(_(i, n), e.to())) { - var r = Us(this.cm, e.from()), - s = Us(this.cm, e.to()); - if (r || s) { - var o = this.cm.display.view, - a = t.rangeCount && t.getRangeAt(0); - if (r) { - if (!s) { - var l = o[o.length - 1].measure, - c = l.maps ? l.maps[l.maps.length - 1] : l.map; - s = { - node: c[c.length - 1], - offset: c[c.length - 2] - c[c.length - 3] - } - } - } else r = { - node: o[0].measure.map[2], - offset: 0 - }; - var u; - try { - u = bo(r.node, r.offset, s.offset, s.node) - } catch (t) {} - u && (!to && this.cm.state.focused ? (t.collapse(r.node, r.offset), u.collapsed || (t.removeAllRanges(), t.addRange(u))) : (t.removeAllRanges(), t.addRange(u)), a && null == t.anchorNode ? t.addRange(a) : to && this.startGracePeriod()), this.rememberSelection() - } - } - }, - startGracePeriod: function() { - var t = this; - clearTimeout(this.gracePeriod), this.gracePeriod = setTimeout(function() { - t.gracePeriod = !1, t.selectionChanged() && t.cm.operation(function() { - return t.cm.curOp.selectionChanged = !0 - }) - }, 20) - }, - showMultipleSelections: function(t) { - i(this.cm.display.cursorDiv, t.cursors), i(this.cm.display.selectionDiv, t.selection) - }, - rememberSelection: function() { - var t = window.getSelection(); - this.lastAnchorNode = t.anchorNode, this.lastAnchorOffset = t.anchorOffset, this.lastFocusNode = t.focusNode, this.lastFocusOffset = t.focusOffset - }, - selectionInEditor: function() { - var t = window.getSelection(); - if (!t.rangeCount) return !1; - var e = t.getRangeAt(0).commonAncestorContainer; - return r(this.div, e) - }, - focus: function() { - "nocursor" != this.cm.options.readOnly && (this.selectionInEditor() || this.showSelection(this.prepareSelection(), !0), this.div.focus()) - }, - blur: function() { - this.div.blur() - }, - getField: function() { - return this.div - }, - supportsTouch: function() { - return !0 - }, - receivedFocus: function() { - function t() { - e.cm.state.focused && (e.pollSelection(), e.polling.set(e.cm.options.pollInterval, t)) - } - var e = this; - this.selectionInEditor() ? this.pollSelection() : hn(this.cm, function() { - return e.cm.curOp.selectionChanged = !0 - }), this.polling.set(this.cm.options.pollInterval, t) - }, - selectionChanged: function() { - var t = window.getSelection(); - return t.anchorNode != this.lastAnchorNode || t.anchorOffset != this.lastAnchorOffset || t.focusNode != this.lastFocusNode || t.focusOffset != this.lastFocusOffset - }, - pollSelection: function() { - if (!this.composing && null == this.readDOMTimeout && !this.gracePeriod && this.selectionChanged()) { - var t = window.getSelection(), - e = this.cm; - this.rememberSelection(); - var i = Gs(e, t.anchorNode, t.anchorOffset), - n = Gs(e, t.focusNode, t.focusOffset); - i && n && hn(e, function() { - pr(e.doc, _n(i, n), Po), (i.bad || n.bad) && (e.curOp.selectionChanged = !0) - }) - } - }, - pollContent: function() { - null != this.readDOMTimeout && (clearTimeout(this.readDOMTimeout), this.readDOMTimeout = null); - var t = this.cm, - e = t.display, - i = t.doc.sel.primary(), - n = i.from(), - r = i.to(); - if (0 == n.ch && n.line > t.firstLine() && (n = O(n.line - 1, T(t.doc, n.line - 1).length)), r.ch == T(t.doc, r.line).text.length && r.line < t.lastLine() && (r = O(r.line + 1, 0)), n.line < e.viewFrom || r.line > e.viewTo - 1) return !1; - var s, o, a; - n.line == e.viewFrom || 0 == (s = ki(t, n.line)) ? (o = $(e.view[0].line), a = e.view[0].node) : (o = $(e.view[s].line), a = e.view[s - 1].node.nextSibling); - var l, c, u = ki(t, r.line); - if (u == e.view.length - 1 ? (l = e.viewTo - 1, c = e.lineDiv.lastChild) : (l = $(e.view[u + 1].line) - 1, c = e.view[u + 1].node.previousSibling), !a) return !1; - for (var h = t.doc.splitLines(Ks(t, a, c, o, l)), d = M(t.doc, O(o, 0), O(l, T(t.doc, l).text.length)); h.length > 1 && d.length > 1;) - if (g(h) == g(d)) h.pop(), d.pop(), l--; - else { - if (h[0] != d[0]) break; - h.shift(), d.shift(), o++ - } - for (var f = 0, p = 0, m = h[0], v = d[0], y = Math.min(m.length, v.length); f < y && m.charCodeAt(f) == v.charCodeAt(f);) ++f; - for (var b = g(h), x = g(d), w = Math.min(b.length - (1 == h.length ? f : 0), x.length - (1 == d.length ? f : 0)); p < w && b.charCodeAt(b.length - p - 1) == x.charCodeAt(x.length - p - 1);) ++p; - h[h.length - 1] = b.slice(0, b.length - p).replace(/^\u200b+/, ""), h[0] = h[0].slice(f).replace(/\u200b+$/, ""); - var C = O(o, f), - k = O(l, d.length ? g(d).length - p : 0); - return h.length > 1 || h[0] || I(C, k) ? (Lr(t.doc, h, C, k, "+input"), !0) : void 0 - }, - ensurePolled: function() { - this.forceCompositionEnd() - }, - reset: function() { - this.forceCompositionEnd() - }, - forceCompositionEnd: function() { - this.composing && (this.composing = null, this.pollContent() || gn(this.cm), this.div.blur(), this.div.focus()) - }, - readFromDOMSoon: function() { - var t = this; - null == this.readDOMTimeout && (this.readDOMTimeout = setTimeout(function() { - t.readDOMTimeout = null, t.composing || !t.cm.isReadOnly() && t.pollContent() || hn(t.cm, function() { - return gn(t.cm) - }) - }, 80)) - }, - setUneditable: function(t) { - t.contentEditable = "false" - }, - onKeyPress: function(t) { - t.preventDefault(), this.cm.isReadOnly() || dn(this.cm, _s)(this.cm, String.fromCharCode(null == t.charCode ? t.keyCode : t.charCode), 0) - }, - readOnlyChanged: function(t) { - this.div.contentEditable = String("nocursor" != t) - }, - onContextMenu: y, - resetPosition: y, - needsContentAttribute: !0 - }, js.prototype), Xs.prototype = c({ - init: function(t) { - function e(t) { - if (!At(r, t)) { - if (r.somethingSelected()) Ds({ - lineWise: !1, - text: r.getSelections() - }), n.inaccurateSelection && (n.prevInput = "", n.inaccurateSelection = !1, o.value = Sa.text.join("\n"), ko(o)); - else { - if (!r.options.lineWiseCopyCut) return; - var e = Hs(r); - Ds({ - lineWise: !0, - text: e.text - }), "cut" == t.type ? r.setSelections(e.ranges, null, Po) : (n.prevInput = "", o.value = e.text.join("\n"), ko(o)) - } - "cut" == t.type && (r.state.cutIncoming = !0) - } - } - var i = this, - n = this, - r = this.cm, - s = this.wrapper = Vs(), - o = this.textarea = s.firstChild; - t.wrapper.insertBefore(s, t.wrapper.firstChild), fo && (o.style.width = "0px"), Ho(o, "input", function() { - no && ro >= 9 && i.hasSelection && (i.hasSelection = null), n.poll() - }), Ho(o, "paste", function(t) { - At(r, t) || zs(t, r) || (r.state.pasteIncoming = !0, n.fastPoll()) - }), Ho(o, "cut", e), Ho(o, "copy", e), Ho(t.scroller, "paste", function(e) { - He(t, e) || At(r, e) || (r.state.pasteIncoming = !0, n.focus()) - }), Ho(t.lineSpace, "selectstart", function(e) { - He(t, e) || Dt(e) - }), Ho(o, "compositionstart", function() { - var t = r.getCursor("from"); - n.composing && n.composing.range.clear(), n.composing = { - start: t, - range: r.markText(t, r.getCursor("to"), { - className: "CodeMirror-composing" - }) - } - }), Ho(o, "compositionend", function() { - n.composing && (n.poll(), n.composing.range.clear(), n.composing = null) - }) - }, - prepareSelection: function() { - var t = this.cm, - e = t.display, - i = t.doc, - n = Ti(t); - if (t.options.moveInputWithCursor) { - var r = hi(t, i.sel.primary().head, "div"), - s = e.wrapper.getBoundingClientRect(), - o = e.lineDiv.getBoundingClientRect(); - n.teTop = Math.max(0, Math.min(e.wrapper.clientHeight - 10, r.top + o.top - s.top)), n.teLeft = Math.max(0, Math.min(e.wrapper.clientWidth - 10, r.left + o.left - s.left)) - } - return n - }, - showSelection: function(t) { - var e = this.cm, - n = e.display; - i(n.cursorDiv, t.cursors), i(n.selectionDiv, t.selection), null != t.teTop && (this.wrapper.style.top = t.teTop + "px", this.wrapper.style.left = t.teLeft + "px") - }, - reset: function(t) { - if (!this.contextMenuPending) { - var e, i, n = this.cm, - r = n.doc; - if (n.somethingSelected()) { - this.prevInput = ""; - var s = r.sel.primary(); - e = Bo && (s.to().line - s.from().line > 100 || (i = n.getSelection()).length > 1e3); - var o = e ? "-" : i || n.getSelection(); - this.textarea.value = o, n.state.focused && ko(this.textarea), no && ro >= 9 && (this.hasSelection = o) - } else t || (this.prevInput = this.textarea.value = "", no && ro >= 9 && (this.hasSelection = null)); - this.inaccurateSelection = e - } - }, - getField: function() { - return this.textarea - }, - supportsTouch: function() { - return !1 - }, - focus: function() { - if ("nocursor" != this.cm.options.readOnly && (!po || s() != this.textarea)) try { - this.textarea.focus() - } catch (t) {} - }, - blur: function() { - this.textarea.blur() - }, - resetPosition: function() { - this.wrapper.style.top = this.wrapper.style.left = 0 - }, - receivedFocus: function() { - this.slowPoll() - }, - slowPoll: function() { - var t = this; - this.pollingFast || this.polling.set(this.cm.options.pollInterval, function() { - t.poll(), t.cm.state.focused && t.slowPoll() - }) - }, - fastPoll: function() { - function t() { - i.poll() || e ? (i.pollingFast = !1, i.slowPoll()) : (e = !0, i.polling.set(60, t)) - } - var e = !1, - i = this; - i.pollingFast = !0, i.polling.set(20, t) - }, - poll: function() { - var t = this, - e = this.cm, - i = this.textarea, - n = this.prevInput; - if (this.contextMenuPending || !e.state.focused || Wo(i) && !n && !this.composing || e.isReadOnly() || e.options.disableInput || e.state.keySeq) return !1; - var r = i.value; - if (r == n && !e.somethingSelected()) return !1; - if (no && ro >= 9 && this.hasSelection === r || go && /[\uf700-\uf7ff]/.test(r)) return e.display.input.reset(), !1; - if (e.doc.sel == e.display.selForContextMenu) { - var s = r.charCodeAt(0); - if (8203 != s || n || (n = "​"), 8666 == s) return this.reset(), this.cm.execCommand("undo") - } - for (var o = 0, a = Math.min(n.length, r.length); o < a && n.charCodeAt(o) == r.charCodeAt(o);) ++o; - return hn(e, function() { - _s(e, r.slice(o), n.length - o, null, t.composing ? "*compose" : null), r.length > 1e3 || r.indexOf("\n") > -1 ? i.value = t.prevInput = "" : t.prevInput = r, t.composing && (t.composing.range.clear(), t.composing.range = e.markText(t.composing.start, e.getCursor("to"), { - className: "CodeMirror-composing" - })) - }), !0 - }, - ensurePolled: function() { - this.pollingFast && this.poll() && (this.pollingFast = !1) - }, - onKeyPress: function() { - no && ro >= 9 && (this.hasSelection = null), this.fastPoll() - }, - onContextMenu: function(t) { - function e() { - if (null != o.selectionStart) { - var t = r.somethingSelected(), - e = "​" + (t ? o.value : ""); - o.value = "⇚", o.value = e, n.prevInput = t ? "" : "​", o.selectionStart = 1, o.selectionEnd = e.length, s.selForContextMenu = r.doc.sel - } - } - - function i() { - if (n.contextMenuPending = !1, n.wrapper.style.cssText = u, o.style.cssText = c, no && ro < 9 && s.scrollbars.setScrollTop(s.scroller.scrollTop = l), null != o.selectionStart) { - (!no || no && ro < 9) && e(); - var t = 0, - i = function() { - s.selForContextMenu == r.doc.sel && 0 == o.selectionStart && o.selectionEnd > 0 && "​" == n.prevInput ? dn(r, Cr)(r) : t++ < 10 ? s.detectingSelectAll = setTimeout(i, 500) : s.input.reset() - }; - s.detectingSelectAll = setTimeout(i, 200) - } - } - var n = this, - r = n.cm, - s = r.display, - o = n.textarea, - a = Ci(r, t), - l = s.scroller.scrollTop; - if (a && !lo) { - r.options.resetSelectionOnContextMenu && -1 == r.doc.sel.contains(a) && dn(r, pr)(r.doc, _n(a), Po); - var c = o.style.cssText, - u = n.wrapper.style.cssText; - n.wrapper.style.cssText = "position: absolute"; - var h = n.wrapper.getBoundingClientRect(); - o.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (t.clientY - h.top - 5) + "px; left: " + (t.clientX - h.left - 5) + "px;\n z-index: 1000; background: " + (no ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; - var d; - if (so && (d = window.scrollY), s.input.focus(), so && window.scrollTo(null, d), s.input.reset(), r.somethingSelected() || (o.value = n.prevInput = " "), n.contextMenuPending = !0, s.selForContextMenu = r.doc.sel, clearTimeout(s.detectingSelectAll), no && ro >= 9 && e(), wo) { - Ft(t); - var f = function() { - $t(window, "mouseup", f), setTimeout(i, 20) - }; - Ho(window, "mouseup", f) - } else setTimeout(i, 50) - } - }, - readOnlyChanged: function(t) { - t || this.reset() - }, - setUneditable: y, - needsContentAttribute: !1 - }, Xs.prototype), - function(t) { - function e(e, n, r, s) { - t.defaults[e] = n, r && (i[e] = s ? function(t, e, i) { - i != xa && r(t, e, i) - } : r) - } - var i = t.optionHandlers; - t.defineOption = e, t.Init = xa, e("value", "", function(t, e) { - return t.setValue(e) - }, !0), e("mode", null, function(t, e) { - t.doc.modeOption = e, Wn(t) - }, !0), e("indentUnit", 2, Wn, !0), e("indentWithTabs", !1), e("smartIndent", !0), e("tabSize", 4, function(t) { - Bn(t), si(t), gn(t) - }, !0), e("lineSeparator", null, function(t, e) { - if (t.doc.lineSep = e, e) { - var i = [], - n = t.doc.first; - t.doc.iter(function(t) { - for (var r = 0;;) { - var s = t.text.indexOf(e, r); - if (-1 == s) break; - r = s + e.length, i.push(O(n, s)) - } - n++ - }); - for (var r = i.length - 1; r >= 0; r--) Lr(t.doc, e, i[r], O(i[r].line, i[r].ch + e.length)) - } - }), e("specialChars", /[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(t, e, i) { - t.state.specialChars = new RegExp(e.source + (e.test("\t") ? "" : "|\t"), "g"), i != xa && t.refresh() - }), e("specialCharPlaceholder", fe, function(t) { - return t.refresh() - }, !0), e("electricChars", !0), e("inputStyle", po ? "contenteditable" : "textarea", function() { - throw new Error("inputStyle can not (yet) be changed in a running editor") - }, !0), e("spellcheck", !1, function(t, e) { - return t.getInputField().spellcheck = e - }, !0), e("rtlMoveVisually", !vo), e("wholeLineUpdateBefore", !0), e("theme", "default", function(t) { - Ps(t), $s(t) - }, !0), e("keyMap", "default", function(t, e, i) { - var n = os(e), - r = i != xa && os(i); - r && r.detach && r.detach(t, n), n.attach && n.attach(t, r || null) - }), e("extraKeys", null), e("lineWrapping", !1, As, !0), e("gutters", [], function(t) { - Nn(t.options), $s(t) - }, !0), e("fixedGutter", !0, function(t, e) { - t.display.gutters.style.left = e ? bi(t.display) + "px" : "0", t.refresh() - }, !0), e("coverGutterNextToScrollbar", !1, function(t) { - return qi(t) - }, !0), e("scrollbarStyle", "native", function(t) { - Gi(t), qi(t), t.display.scrollbars.setScrollTop(t.doc.scrollTop), t.display.scrollbars.setScrollLeft(t.doc.scrollLeft) - }, !0), e("lineNumbers", !1, function(t) { - Nn(t.options), $s(t) - }, !0), e("firstLineNumber", 1, $s, !0), e("lineNumberFormatter", function(t) { - return t - }, $s, !0), e("showCursorWhenSelecting", !1, Si, !0), e("resetSelectionOnContextMenu", !0), e("lineWiseCopyCut", !0), e("readOnly", !1, function(t, e) { - "nocursor" == e ? (Ni(t), t.display.input.blur(), t.display.disabled = !0) : t.display.disabled = !1, t.display.input.readOnlyChanged(e) - }), e("disableInput", !1, function(t, e) { - e || t.display.input.reset() - }, !0), e("dragDrop", !0, Ls), e("allowDropFileTypes", null), e("cursorBlinkRate", 530), e("cursorScrollMargin", 0), e("cursorHeight", 1, Si, !0), e("singleCursorHeightPerLine", !0, Si, !0), e("workTime", 100), e("workDelay", 100), e("flattenSpans", !0, Bn, !0), e("addModeClass", !1, Bn, !0), e("pollInterval", 100), e("undoDepth", 200, function(t, e) { - return t.doc.history.undoDepth = e - }), e("historyEventDelay", 1250), e("viewportMargin", 10, function(t) { - return t.refresh() - }, !0), e("maxHighlightLength", 1e4, Bn, !0), e("moveInputWithCursor", !0, function(t, e) { - e || t.display.input.resetPosition() - }), e("tabindex", null, function(t, e) { - return t.display.input.getField().tabIndex = e || "" - }), e("autofocus", null) - }(Ns), - function(t) { - var e = t.optionHandlers, - i = t.helpers = {}; - t.prototype = { - constructor: t, - focus: function() { - window.focus(), this.display.input.focus() - }, - setOption: function(t, i) { - var n = this.options, - r = n[t]; - n[t] == i && "mode" != t || (n[t] = i, e.hasOwnProperty(t) && dn(this, e[t])(this, i, r)) - }, - getOption: function(t) { - return this.options[t] - }, - getDoc: function() { - return this.doc - }, - addKeyMap: function(t, e) { - this.state.keyMaps[e ? "push" : "unshift"](os(t)) - }, - removeKeyMap: function(t) { - for (var e = this.state.keyMaps, i = 0; i < e.length; ++i) - if (e[i] == t || e[i].name == t) return e.splice(i, 1), !0 - }, - addOverlay: fn(function(e, i) { - var n = e.token ? e : t.getMode(this.options, e); - if (n.startState) throw new Error("Overlays may not be stateful."); - v(this.state.overlays, { - mode: n, - modeSpec: e, - opaque: i && i.opaque, - priority: i && i.priority || 0 - }, function(t) { - return t.priority - }), this.state.modeGen++, gn(this) - }), - removeOverlay: fn(function(t) { - for (var e = this, i = this.state.overlays, n = 0; n < i.length; ++n) { - var r = i[n].modeSpec; - if (r == t || "string" == typeof t && r.name == t) return i.splice(n, 1), e.state.modeGen++, void gn(e) - } - }), - indentLine: fn(function(t, e, i) { - "string" != typeof e && "number" != typeof e && (e = null == e ? this.options.smartIndent ? "smart" : "prev" : e ? "add" : "subtract"), A(this.doc, t) && Is(this, t, e, i) - }), - indentSelection: fn(function(t) { - for (var e = this, i = this.doc.sel.ranges, n = -1, r = 0; r < i.length; r++) { - var s = i[r]; - if (s.empty()) s.head.line > n && (Is(e, s.head.line, t, !0), n = s.head.line, r == e.doc.sel.primIndex && tn(e)); - else { - var o = s.from(), - a = s.to(), - l = Math.max(n, o.line); - n = Math.min(e.lastLine(), a.line - (a.ch ? 0 : 1)) + 1; - for (var c = l; c < n; ++c) Is(e, c, t); - var u = e.doc.sel.ranges; - 0 == o.ch && i.length == u.length && u[r].from().ch > 0 && ur(e.doc, r, new In(o, u[r].to()), Po) - } - } - }), - getTokenAt: function(t, e) { - return re(this, t, e) - }, - getLineTokens: function(t, e) { - return re(this, O(t), e, !0) - }, - getTokenTypeAt: function(t) { - t = H(this.doc, t); - var e, i = Qt(this, T(this.doc, t.line)), - n = 0, - r = (i.length - 1) / 2, - s = t.ch; - if (0 == s) e = i[2]; - else - for (;;) { - var o = n + r >> 1; - if ((o ? i[2 * o - 1] : 0) >= s) r = o; - else { - if (!(i[2 * o + 1] < s)) { - e = i[2 * o + 2]; - break - } - n = o + 1 - } - } - var a = e ? e.indexOf("overlay ") : -1; - return a < 0 ? e : 0 == a ? null : e.slice(0, a - 1) - }, - getModeAt: function(e) { - var i = this.doc.mode; - return i.innerMode ? t.innerMode(i, this.getTokenAt(e).state).mode : i - }, - getHelper: function(t, e) { - return this.getHelpers(t, e)[0] - }, - getHelpers: function(t, e) { - var n = this, - r = []; - if (!i.hasOwnProperty(e)) return r; - var s = i[e], - o = this.getModeAt(t); - if ("string" == typeof o[e]) s[o[e]] && r.push(s[o[e]]); - else if (o[e]) - for (var a = 0; a < o[e].length; a++) { - var l = s[o[e][a]]; - l && r.push(l) - } else o.helperType && s[o.helperType] ? r.push(s[o.helperType]) : s[o.name] && r.push(s[o.name]); - for (var c = 0; c < s._global.length; c++) { - var u = s._global[c]; - u.pred(o, n) && -1 == d(r, u.val) && r.push(u.val) - } - return r - }, - getStateAfter: function(t, e) { - var i = this.doc; - return t = F(i, null == t ? i.first + i.size - 1 : t), te(this, t + 1, e) - }, - cursorCoords: function(t, e) { - var i, n = this.doc.sel.primary(); - return i = null == t ? n.head : "object" == typeof t ? H(this.doc, t) : t ? n.from() : n.to(), hi(this, i, e || "page") - }, - charCoords: function(t, e) { - return ui(this, H(this.doc, t), e || "page") - }, - coordsChar: function(t, e) { - return t = ci(this, t, e || "page"), pi(this, t.left, t.top) - }, - lineAtHeight: function(t, e) { - return t = ci(this, { - top: t, - left: 0 - }, e || "page").top, L(this.doc, t + this.display.viewOffset) - }, - heightAtLine: function(t, e, i) { - var n, r = !1; - if ("number" == typeof t) { - var s = this.doc.first + this.doc.size - 1; - t < this.doc.first ? t = this.doc.first : t > s && (t = s, r = !0), n = T(this.doc, t) - } else n = t; - return li(this, n, { - top: 0, - left: 0 - }, e || "page", i).top + (r ? this.doc.height - pt(n) : 0) - }, - defaultTextHeight: function() { - return mi(this.display) - }, - defaultCharWidth: function() { - return vi(this.display) - }, - getViewport: function() { - return { - from: this.display.viewFrom, - to: this.display.viewTo - } - }, - addWidget: function(t, e, i, n, r) { - var s = this.display; - t = hi(this, H(this.doc, t)); - var o = t.bottom, - a = t.left; - if (e.style.position = "absolute", e.setAttribute("cm-ignore-events", "true"), this.display.input.setUneditable(e), s.sizer.appendChild(e), "over" == n) o = t.top; - else if ("above" == n || "near" == n) { - var l = Math.max(s.wrapper.clientHeight, this.doc.height), - c = Math.max(s.sizer.clientWidth, s.lineSpace.clientWidth); - ("above" == n || t.bottom + e.offsetHeight > l) && t.top > e.offsetHeight ? o = t.top - e.offsetHeight : t.bottom + e.offsetHeight <= l && (o = t.bottom), a + e.offsetWidth > c && (a = c - e.offsetWidth) - } - e.style.top = o + "px", e.style.left = e.style.right = "", "right" == r ? (a = s.sizer.clientWidth - e.offsetWidth, e.style.right = "0px") : ("left" == r ? a = 0 : "middle" == r && (a = (s.sizer.clientWidth - e.offsetWidth) / 2), e.style.left = a + "px"), i && Ji(this, a, o, a + e.offsetWidth, o + e.offsetHeight) - }, - triggerOnKeyDown: fn(ms), - triggerOnKeyPress: fn(bs), - triggerOnKeyUp: ys, - execCommand: function(t) { - if (va.hasOwnProperty(t)) return va[t].call(null, this) - }, - triggerElectric: fn(function(t) { - Fs(this, t) - }), - findPosH: function(t, e, i, n) { - var r = this, - s = 1; - e < 0 && (s = -1, e = -e); - for (var o = H(this.doc, t), a = 0; a < e && (o = Ws(r.doc, o, s, i, n), !o.hitSide); ++a); - return o - }, - moveH: fn(function(t, e) { - var i = this; - this.extendSelectionsBy(function(n) { - return i.display.shift || i.doc.extend || n.empty() ? Ws(i.doc, n.head, t, e, i.options.rtlMoveVisually) : t < 0 ? n.from() : n.to() - }, Lo) - }), - deleteH: fn(function(t, e) { - var i = this.doc.sel, - n = this.doc; - i.somethingSelected() ? n.replaceSelection("", null, "+delete") : as(this, function(i) { - var r = Ws(n, i.head, t, e, !1); - return t < 0 ? { - from: r, - to: i.head - } : { - from: i.head, - to: r - } - }) - }), - findPosV: function(t, e, i, n) { - var r = this, - s = 1, - o = n; - e < 0 && (s = -1, e = -e); - for (var a = H(this.doc, t), l = 0; l < e; ++l) { - var c = hi(r, a, "div"); - if (null == o ? o = c.left : c.left = o, a = Bs(r, c, s, i), a.hitSide) break - } - return a - }, - moveV: fn(function(t, e) { - var i = this, - n = this.doc, - r = [], - s = !this.display.shift && !n.extend && n.sel.somethingSelected(); - if (n.extendSelectionsBy(function(o) { - if (s) return t < 0 ? o.from() : o.to(); - var a = hi(i, o.head, "div"); - null != o.goalColumn && (a.left = o.goalColumn), r.push(a.left); - var l = Bs(i, a, t, e); - return "page" == e && o == n.sel.primary() && Qi(i, null, ui(i, l, "div").top - a.top), l - }, Lo), r.length) - for (var o = 0; o < n.sel.ranges.length; o++) n.sel.ranges[o].goalColumn = r[o] - }), - findWordAt: function(t) { - var e = this.doc, - i = T(e, t.line).text, - n = t.ch, - r = t.ch; - if (i) { - var s = this.getHelper(t, "wordChars"); - (t.xRel < 0 || r == i.length) && n ? --n : ++r; - for (var o = i.charAt(n), a = w(o, s) ? function(t) { - return w(t, s) - } : /\s/.test(o) ? function(t) { - return /\s/.test(t) - } : function(t) { - return !/\s/.test(t) && !w(t) - }; n > 0 && a(i.charAt(n - 1));) --n; - for (; r < i.length && a(i.charAt(r));) ++r - } - return new In(O(t.line, n), O(t.line, r)) - }, - toggleOverwrite: function(t) { - null != t && t == this.state.overwrite || ((this.state.overwrite = !this.state.overwrite) ? o(this.display.cursorDiv, "CodeMirror-overwrite") : Co(this.display.cursorDiv, "CodeMirror-overwrite"), Lt(this, "overwriteToggle", this, this.state.overwrite)) - }, - hasFocus: function() { - return this.display.input.getField() == s() - }, - isReadOnly: function() { - return !(!this.options.readOnly && !this.doc.cantEdit) - }, - scrollTo: fn(function(t, e) { - null == t && null == e || en(this), null != t && (this.curOp.scrollLeft = t), null != e && (this.curOp.scrollTop = e) - }), - getScrollInfo: function() { - var t = this.display.scroller; - return { - left: t.scrollLeft, - top: t.scrollTop, - height: t.scrollHeight - Be(this) - this.display.barHeight, - width: t.scrollWidth - Be(this) - this.display.barWidth, - clientHeight: Ue(this), - clientWidth: je(this) - } - }, - scrollIntoView: fn(function(t, e) { - if (null == t ? (t = { - from: this.doc.sel.primary().head, - to: null - }, null == e && (e = this.options.cursorScrollMargin)) : "number" == typeof t ? t = { - from: O(t, 0), - to: null - } : null == t.from && (t = { - from: t, - to: null - }), t.to || (t.to = t.from), t.margin = e || 0, null != t.from.line) en(this), this.curOp.scrollToPos = t; - else { - var i = Zi(this, Math.min(t.from.left, t.to.left), Math.min(t.from.top, t.to.top) - t.margin, Math.max(t.from.right, t.to.right), Math.max(t.from.bottom, t.to.bottom) + t.margin); - this.scrollTo(i.scrollLeft, i.scrollTop) - } - }), - setSize: fn(function(t, e) { - var i = this, - n = function(t) { - return "number" == typeof t || /^\d+$/.test(String(t)) ? t + "px" : t - }; - null != t && (this.display.wrapper.style.width = n(t)), null != e && (this.display.wrapper.style.height = n(e)), this.options.lineWrapping && ri(this); - var r = this.display.viewFrom; - this.doc.iter(r, this.display.viewTo, function(t) { - if (t.widgets) - for (var e = 0; e < t.widgets.length; e++) - if (t.widgets[e].noHScroll) { - mn(i, r, "widget"); - break - }++r - }), this.curOp.forceUpdate = !0, Lt(this, "refresh", this) - }), - operation: function(t) { - return hn(this, t) - }, - refresh: fn(function() { - var t = this.display.cachedTextHeight; - gn(this), this.curOp.forceUpdate = !0, si(this), this.scrollTo(this.doc.scrollLeft, this.doc.scrollTop), $n(this), (null == t || Math.abs(t - mi(this.display)) > .5) && wi(this), Lt(this, "refresh", this) - }), - swapDoc: fn(function(t) { - var e = this.doc; - return e.cm = null, Kn(this, t), si(this), this.display.input.reset(), this.scrollTo(t.scrollLeft, t.scrollTop), this.curOp.forceScroll = !0, Se(this, "swapDoc", this, e), e - }), - getInputField: function() { - return this.display.input.getField() - }, - getWrapperElement: function() { - return this.display.wrapper - }, - getScrollerElement: function() { - return this.display.scroller - }, - getGutterElement: function() { - return this.display.gutters - } - }, It(t), t.registerHelper = function(e, n, r) { - i.hasOwnProperty(e) || (i[e] = t[e] = { - _global: [] - }), i[e][n] = r - }, t.registerGlobalHelper = function(e, n, r, s) { - t.registerHelper(e, n, s), i[e]._global.push({ - pred: r, - val: s - }) - } - }(Ns); - var Ta = "iter insert remove copy getEditor constructor".split(" "); - for (var Ma in aa.prototype) aa.prototype.hasOwnProperty(Ma) && d(Ta, Ma) < 0 && (Ns.prototype[Ma] = function(t) { - return function() { - return t.apply(this.doc, arguments) - } - }(aa.prototype[Ma])); - return It(aa), Ns.inputStyles = { - textarea: Xs, - contenteditable: js - }, Ns.defineMode = function(t) { - Ns.defaults.mode || "null" == t || (Ns.defaults.mode = t), jt.apply(this, arguments) - }, Ns.defineMIME = Ut, Ns.defineMode("null", function() { - return { - token: function(t) { - return t.skipToEnd() - } - } - }), Ns.defineMIME("text/plain", "null"), Ns.defineExtension = function(t, e) { - Ns.prototype[t] = e - }, Ns.defineDocExtension = function(t, e) { - aa.prototype[t] = e - }, Ns.fromTextArea = Js, - function(t) { - t.off = $t, t.on = Ho, t.wheelEventPixels = Vi, t.Doc = aa, t.splitLines = Vo, t.countColumn = u, t.findColumn = f, t.isWordChar = x, t.Pass = Eo, t.signal = Lt, t.Line = le, t.changeEnd = zn, t.scrollbarModel = na, t.Pos = O, t.cmpPos = I, t.modes = Uo, t.mimeModes = qo, t.resolveMode = qt, t.getMode = Kt, t.modeExtensions = Ko, t.extendMode = Gt, t.copyState = Yt, t.startState = Jt, t.innerMode = Xt, t.commands = va, t.keyMap = pa, t.keyName = ss, t.isModifierKey = rs, t.lookupKey = ns, t.normalizeKeyMap = is, t.StringStream = Go, t.SharedTextMarker = Wr, t.TextMarker = Rr, t.LineWidget = zr, t.e_preventDefault = Dt, t.e_stopPropagation = _t, t.e_stop = Ft, t.addClass = o, t.contains = r, t.rmClass = Co, t.keyNames = ua - }(Ns), Ns.version = "5.21.0", Ns - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - events: { - change: "onChange" - }, - initialize: function(t) { - var e = this.model; - this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.target = e.target, this.className = this.pfx + "trait", this.labelClass = this.ppfx + "label", this.fieldClass = this.ppfx + "field " + this.ppfx + "field-" + e.get("type"), this.inputhClass = this.ppfx + "input-holder", e.off("change:value", this.onValueChange), this.listenTo(e, "change:value", this.onValueChange), this.tmpl = '
    ' - }, - onChange: function() { - this.model.set("value", this.getInputEl().value) - }, - getValueForTarget: function() { - return this.model.get("value") - }, - onValueChange: function() { - var t = this.model, - i = this.target, - n = t.get("name"), - r = this.getValueForTarget(); - if (t.get("changeProp")) i.set(n, r); - else { - var s = e.clone(i.get("attributes")); - s[n] = r, i.set("attributes", s) - } - }, - renderLabel: function() { - this.$el.html('
    ' + this.getLabel() + "
    ") - }, - getLabel: function() { - var t = this.model, - e = t.get("label") || t.get("name"); - return e.charAt(0).toUpperCase() + e.slice(1).replace(/-/g, " ") - }, - getInputEl: function() { - if (!this.$input) { - var t = this.model, - e = this.target, - i = t.get("name"), - n = { - placeholder: t.get("placeholder") || t.get("default"), - type: t.get("type") || "text" - }; - if (t.get("changeProp")) n.value = e.get(i); - else { - var r = e.get("attributes"); - n.value = t.get("value") || r[i] - } - t.get("min") && (n.min = t.get("min")), t.get("max") && (n.max = t.get("max")), this.$input = $("", n) - } - return this.$input.get(0) - }, - getModelValue: function() { - var t, e = this.model, - i = this.target, - n = e.get("name"); - if (e.get("changeProp")) t = i.get(n); - else { - var r = i.get("attributes"); - t = e.get("value") || r[n] - } - return t - }, - renderField: function() { - if (!this.$input) { - this.$el.append(this.tmpl); - var t = this.getInputEl(); - this.$el.find("." + this.inputhClass).prepend(t) - } - }, - render: function() { - return this.renderLabel(), this.renderField(), this.el.className = this.className, this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = (i(0), i(3)); - t.exports = n.extend({ - tagName: "img", - events: { - dblclick: "openModal", - click: "initResize" - }, - initialize: function(t) { - n.prototype.initialize.apply(this, arguments), this.listenTo(this.model, "change:src", this.updateSrc), this.listenTo(this.model, "dblclick active", this.openModal), this.classEmpty = this.ppfx + "plh-image", this.config.modal && (this.modal = this.config.modal), this.config.am && (this.am = this.config.am) - }, - updateSrc: function() { - var t = this.model.get("src"); - this.$el.attr("src", t), t ? this.$el.removeClass(this.classEmpty) : this.$el.addClass(this.classEmpty) - }, - openModal: function(t) { - var e = this.opts.config.em, - i = e ? e.get("Editor") : ""; - i && i.runCommand("open-assets", { - target: this.model, - onSelect: function() { - i.Modal.close(), i.AssetManager.setTarget(null) - } - }) - }, - render: function() { - this.updateAttributes(), this.updateClasses(); - var t = this.$el.attr("class") || ""; - return this.model.get("src") || this.$el.attr("class", (t + " " + this.classEmpty).trim()), this.$el.attr("onmousedown", "return false"), this - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(17)); - t.exports = e.extend({}, n, { - init: function(t) { - e.bindAll(this, "startDraw", "draw", "endDraw", "rollback"), this.config = t || {}, this.hType = this.config.newFixedH ? "height" : "min-height", this.allowDraw = 1 - }, - enable: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - n.enable.apply(this, e), this.$wr.css("cursor", "crosshair"), this.allowDraw && this.$wr.on("mousedown", this.startDraw), this.ghost = this.canvas.getGhostEl() - }, - startDraw: function(t) { - t.preventDefault(), this.stopSelectPosition(), this.ghost.style.display = "block", this.frameOff = this.getOffsetDim(), this.startPos = { - top: t.pageY + this.frameOff.top, - left: t.pageX + this.frameOff.left - }, this.isDragged = !1, this.tempComponent = { - style: {} - }, this.beforeDraw(this.tempComponent), this.updateSize(this.startPos.top, this.startPos.left, 0, 0), this.toggleEvents(1) - }, - toggleEvents: function(t) { - var e = t ? "on" : "off"; - this.$wr[e]("mousemove", this.draw), this.$wr[e]("mouseup", this.endDraw), this.$canvas[e]("mousemove", this.draw), $(document)[e]("mouseup", this.endDraw), $(document)[e]("keypress", this.rollback) - }, - draw: function(t) { - this.isDragged = !0, this.updateComponentSize(t) - }, - endDraw: function(t) { - this.toggleEvents(); - var e = {}; - if (this.isDragged) { - this.updateComponentSize(t), this.setRequirements(this.tempComponent); - var i = this.sorter.lastPos; - e = this.create(this.sorter.target, this.tempComponent, i.index, i.method), this.sorter.prevTarget = null - } - this.ghost.style.display = "none", this.startSelectPosition(), this.afterDraw(e) - }, - create: function(t, e, i, n, r) { - i = "after" === n ? i + 1 : i; - var s = r || {}, - o = $(t), - a = o.data("model"), - l = o.data("collection"), - c = a ? a.get("droppable") : 1; - if (s.at = i, l && c) return l.add(e, s); - console.warn("Invalid target position") - }, - setRequirements: function(t) { - var e = this.config, - i = t.style; - i.width.replace(/\D/g, "") < e.minComponentW && (i.width = e.minComponentW + "px"), i[this.hType].replace(/\D/g, "") < e.minComponentH && (i[this.hType] = e.minComponentH + "px"), e.newFixedH && (i.overflow = "auto"), this.absoluteMode ? i.position = "absolute" : (delete i.left, delete i.top); - var n = this.sorter.lastPos; - return this.nearFloat(n.index, n.method, this.sorter.lastDims) && (i.float = "left"), this.config.firstCentered && this.getCanvasWrapper() == this.sorter.target && (i.margin = "0 auto"), t - }, - updateComponentSize: function(t) { - var e = t.pageY + this.frameOff.top, - i = t.pageX + this.frameOff.left, - n = this.startPos, - r = n.top, - s = n.left, - o = e - r, - a = i - s; - i < s && (s = i, a = n.left - i), e < r && (r = e, o = n.top - e), this.updateSize(r, s, a, o) - }, - updateSize: function(t, e, i, n) { - var r = "px", - s = this.ghost.style, - o = this.tempComponent.style; - s.top = o.top = t + r, s.left = o.left = e + r, s.width = o.width = i + r, s[this.hType] = o[this.hType] = n + r - }, - rollback: function(t, e) { - ((t.which || t.keyCode) == this.config.ESCAPE_KEY || e) && (this.isDragged = !1, this.endDraw()) - }, - beforeDraw: function(t) { - t.editable = !1 - }, - afterDraw: function(t) {}, - run: function(t, e, i) { - this.editor = t, this.sender = e, this.$wr = this.$wrapper, this.enable() - }, - stop: function() { - this.stopSelectPosition(), this.$wrapper.css("cursor", ""), this.$wrapper.unbind() - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(126), - r = i(113), - s = i(41); - t.exports = { - init: function(t) { - e.bindAll(this, "onHover", "onOut", "onClick", "onKeyPress") - }, - enable: function() { - e.bindAll(this, "copyComp", "pasteComp", "onFrameScroll"), this.frameOff = this.canvasOff = this.adjScroll = null; - var t = this.config.em.get("Config"); - this.startSelectComponent(), this.toggleClipboard(t.copyPaste); - var i = this.config.em; - i.on("component:update", this.updateAttached, this), i.on("change:canvasOffset", this.updateAttached, this), i.on("change:selectedComponent", this.updateToolbar, this) - }, - toggleClipboard: function(t) { - t || 0 ? (s("⌘+c, ctrl+c", this.copyComp), s("⌘+v, ctrl+v", this.pasteComp)) : (s.unbind("⌘+c, ctrl+c"), s.unbind("⌘+v, ctrl+v")) - }, - copyComp: function() { - var t = this.editorModel.get("selectedComponent"); - t && t.get("copyable") && this.editorModel.set("clipboard", t) - }, - pasteComp: function() { - var t = this.editorModel.get("clipboard"), - e = this.editorModel.get("selectedComponent"); - if (t && e && e.collection) { - var i = e.collection.indexOf(e), - n = t.clone(); - e.collection.add(n, { - at: i + 1 - }) - } - }, - getCanvasBodyEl: function() { - return this.$bodyEl || (this.$bodyEl = $(this.getCanvasBody())), this.$bodyEl - }, - startSelectComponent: function() { - this.toggleSelectComponent(1) - }, - stopSelectComponent: function() { - this.toggleSelectComponent() - }, - toggleSelectComponent: function(t) { - var e = t ? "on" : "off"; - this.getCanvasBodyEl()[e]("mouseover", "*", this.onHover)[e]("mouseout", "*", this.onOut)[e]("click", "*", this.onClick); - var i = this.getContentWindow(); - i[e]("scroll", this.onFrameScroll), i[e]("keydown", this.onKeyPress) - }, - onKeyPress: function(t) { - var e = t.which || t.keyCode, - i = this.editorModel.get("selectedComponent"), - n = "BODY" !== this.frameEl.contentDocument.activeElement.tagName; - if ((8 == e || 46 == e) && (n || t.preventDefault(), i && !n)) { - if (!i.get("removable")) return; - i.set("status", ""), i.destroy(), this.hideBadge(), this.clean(), this.hideHighlighter(), this.editorModel.set("selectedComponent", null) - } - }, - onHover: function(t) { - t.stopPropagation(); - var e = t.target; - this.adjScroll || (this.adjScroll = 1, this.onFrameScroll(t), this.updateAttached()); - var i = this.getElementPos(e); - this.updateBadge(e, i), this.updateHighlighter(e, i), this.showElementOffset(e, i) - }, - onOut: function(t) { - t.stopPropagation(), this.hideBadge(), this.hideHighlighter(), this.hideElementOffset() - }, - showElementOffset: function(t, e) { - var i = $(t), - n = i.data("model"); - n && "selected" == n.get("status") || this.editor.runCommand("show-offset", { - el: t, - elPos: e - }) - }, - hideElementOffset: function(t, e) { - this.editor.stopCommand("show-offset") - }, - showFixedElementOffset: function(t, e) { - this.editor.runCommand("show-offset", { - el: t, - elPos: e, - state: "Fixed" - }) - }, - hideFixedElementOffset: function(t, e) { - this.editor && this.editor.stopCommand("show-offset", { - state: "Fixed" - }) - }, - hideHighlighter: function() { - this.canvas.getHighlighter().style.display = "none" - }, - onClick: function(t) { - var e = $(t.target).data("model"); - if (e) { - var i = e.get("stylable"); - (i instanceof Array || i) && this.onSelect(t, t.target) - } - }, - updateBadge: function(t, e) { - var i = $(t), - n = this.canvas, - r = n.getConfig(), - s = r.customBadgeLabel; - this.cacheEl = t; - var o = i.data("model"); - if (o && o.get("badgable")) { - var a = this.getBadge(), - l = o.getIcon() + o.getName(); - l = s ? s(o) : l, a.innerHTML = l; - var c = a.style; - c.display = "block"; - var u = n.getCanvasView().getPosition(), - h = a ? a.offsetHeight : 0, - d = a ? a.offsetWidth : 0, - f = e.top - h < u.top ? u.top : e.top - h, - p = e.left + d < u.left ? u.left : e.left; - c.top = f + "px", c.left = p + "px" - } - }, - updateHighlighter: function(t, e) { - var i = $(t), - n = i.data("model"); - if (n && (!n || "selected" != n.get("status"))) { - var r = this.canvas.getHighlighter(), - s = r.style; - s.left = e.left + "px", s.top = e.top + "px", s.height = e.height + "px", s.width = e.width + "px", s.display = "block" - } - }, - onSelect: function(t, e) { - t.stopPropagation(); - var i = this.editorModel.get("selectedComponent"); - this.cleanPrevious(i); - var n = $(e), - r = n.data("model"); - if (r) { - var s = this.em, - o = r.get("mirror"); - r = o || r; - var a = s.get("opened"); - for (var l in a) { - a[l].set("open", 0) - } - for (var c = r.collection ? r.collection.parent : null; c;) c.set("open", 1), a[c.cid] = c, c = c.collection ? c.collection.parent : null; - this.editorModel.set("selectedComponent", r), r.set("status", "selected"), this.showFixedElementOffset(e), this.hideElementOffset(), this.hideHighlighter() - } - }, - updateToolbar: function(t) { - var e = this.config.em, - i = t == e ? e.get("selectedComponent") : t; - if (i) { - var s = i.get("toolbar"), - o = (this.ppfx, e.get("Config").showToolbar), - a = this.canvas.getToolbarEl(), - l = a.style; - if (o && s && s.length) { - if (l.display = "flex", !this.toolbar) { - a.innerHTML = "", this.toolbar = new r(s); - var c = new n({ - collection: this.toolbar, - editor: this.editor - }); - a.appendChild(c.render().el) - } - this.toolbar.reset(s); - var u = i.view; - u && this.updateToolbarPos(u.el) - } else l.display = "none" - } - }, - updateToolbarPos: function(t, e) { - var i = this.canvas.getToolbarEl(), - n = i.style, - r = this.canvas.getTargetToElementDim(i, t, { - elPos: e, - event: "toolbarPosUpdate" - }), - s = r.left + r.elementWidth - r.targetWidth; - n.top = r.top + "px", n.left = s + "px" - }, - getCanvasPosition: function() { - return this.canvas.getCanvasView().getPosition() - }, - clean: function() { - this.selEl && this.selEl.removeClass(this.hoverClass) - }, - getBadge: function() { - return this.canvas.getBadgeEl() - }, - onFrameScroll: function(t) { - var e = this.cacheEl; - if (e) { - var i = this.getElementPos(e); - this.updateBadge(e, i); - var n = this.em.get("selectedComponent"); - n && this.updateToolbarPos(n.view.el) - } - }, - updateAttached: function() { - var t = this.em.get("selectedComponent"); - if (t) { - var e = t.view; - this.updateToolbarPos(e.el), this.showFixedElementOffset(e.el) - } - }, - getElementPos: function(t, e) { - return this.canvas.getCanvasView().getElementPos(t) - }, - hideBadge: function() { - this.getBadge().style.display = "none" - }, - cleanPrevious: function(t) { - t && t.set({ - status: "", - state: "" - }) - }, - getContentWindow: function() { - return this.contWindow || (this.contWindow = $(this.frameEl.contentWindow)), this.contWindow - }, - run: function(t) { - t && t.get && (this.editor = t.get("Editor")), this.enable() - }, - stop: function() { - this.stopSelectComponent(), this.cleanPrevious(this.em.get("selectedComponent")), this.clean(), this.em.set("selectedComponent", null), this.toggleClipboard(), this.hideBadge(), this.hideFixedElementOffset(), this.canvas.getToolbarEl().style.display = "none", this.em.off("component:update", this.updateAttached, this), this.em.off("change:canvasOffset", this.updateAttached, this), this.em.off("change:selectedComponent", this.updateToolbar, this) - } - } - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(2); - t.exports = n.extend({ - defaults: e.extend({}, n.prototype.defaults, { - type: "image", - tagName: "img", - src: "", - void: 1, - droppable: !1, - resizable: !0, - traits: ["alt"] - }), - initialize: function(t, e) { - n.prototype.initialize.apply(this, arguments); - var i = this.get("attributes"); - i.src && this.set("src", i.src) - }, - initToolbar: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - if (n.prototype.initToolbar.apply(this, e), this.sm && this.sm.get) { - var r = this.sm.get("Commands"); - if (r.has("image-editor")) { - var s = this.get("toolbar"); - s.push({ - attributes: { - class: "fa fa-pencil" - }, - command: "image-editor" - }), this.set("toolbar", s) - } - } - }, - getAttrToHTML: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - var r = n.prototype.getAttrToHTML.apply(this, e); - delete r.onmousedown; - var s = this.get("src"); - return s && (r.src = s), r - }, - parseUri: function(t) { - var e = document.createElement("a"); - e.href = t; - for (var i = {}, n = e.search.substring(1).split("&"), r = 0; r < n.length; r++) { - var s = n[r].split("="), - o = decodeURIComponent(s[0]); - o && (i[o] = decodeURIComponent(s[1])) - } - return { - hostname: e.hostname, - pathname: e.pathname, - protocol: e.protocol, - search: e.search, - hash: e.hash, - port: e.port, - query: i - } - } - }, { - isComponent: function(t) { - var e = ""; - return "IMG" == t.tagName && (e = { - type: "image" - }), e - } - }) - }).call(e, i(1)) - }, function(e, i) { - e.exports = t - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Model.extend({ - idAttribute: "src", - defaults: { - type: "", - src: "" - }, - getFilename: function() { - return this.get("src").split("/").pop() - }, - getExtension: function() { - return this.getFilename().split(".").pop() - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.View.extend({ - initialize: function(t) { - this.options = t, this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.className = this.pfx + "asset", this.listenTo(this.model, "destroy remove", this.remove) - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - template: e.template('\n
    \n
    <%= title %>
    \n multiple/>\n
    \n
    \n'), - events: {}, - initialize: function(t) { - this.options = t || {}, this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.target = this.collection || {}, this.uploadId = this.pfx + "uploadFile", this.disabled = !this.config.upload, this.events["change #" + this.uploadId] = "uploadFile"; - var e = this.config.uploadFile; - e && (this.uploadFile = e.bind(this)), this.delegateEvents() - }, - uploadFile: function(t) { - for (var e = t.dataTransfer ? t.dataTransfer.files : t.target.files, i = new FormData, n = 0; n < e.length; n++) i.append("files[]", e[n]); - var r = this.target; - $.ajax({ - url: this.config.upload, - type: "POST", - data: i, - beforeSend: this.config.beforeSend, - complete: this.config.onComplete, - xhrFields: { - onprogress: function(t) { - t.lengthComputable - }, - onload: function(t) {} - }, - cache: !1, - contentType: !1, - processData: !1 - }).done(function(t) { - r.add(t.data) - }).always(function() {}) - }, - initDrop: function() { - var t = this; - if (!this.uploadForm && (this.uploadForm = this.$el.find("form").get(0), "draggable" in this.uploadForm)) { - this.uploadFile; - this.uploadForm.ondragover = function() { - return this.className = t.pfx + "hover", !1 - }, this.uploadForm.ondragleave = function() { - return this.className = "", !1 - }, this.uploadForm.ondrop = function(e) { - this.className = "", e.preventDefault(), t.uploadFile(e) - } - } - }, - render: function() { - return this.$el.html(this.template({ - title: this.config.uploadText, - uploadId: this.uploadId, - disabled: this.disabled, - pfx: this.pfx - })), this.initDrop(), this.$el.attr("class", this.pfx + "file-uploader"), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Model.extend({ - defaults: { - id: "", - label: "", - open: !0, - attributes: {} - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(8)); - t.exports = e.extend({}, n, { - init: function() { - for (var t = arguments.length, i = Array(t), r = 0; r < t; r++) i[r] = arguments[r]; - n.init.apply(this, i), e.bindAll(this, "insertComponent"), this.allowDraw = 0 - }, - run: function(t, e, i) { - this.em = t, this.sender = e, this.opt = i || {}, this.$wr = this.$wrapper, this.enable() - }, - enable: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - n.enable.apply(this, e), this.$wr.on("click", this.insertComponent) - }, - insertComponent: function() { - this.$wr.off("click", this.insertComponent), this.stopSelectPosition(); - var t = this.buildContent(); - this.beforeInsert(t); - var e = this.sorter.lastPos.index, - i = this.create(this.sorter.target, t, e, null, { - silent: !1 - }); - this.opt.terminateAfterInsert && this.sender ? this.sender.set("active", !1) : this.enable(), i && (this.em && this.em.editor.initChildrenComp(i), this.afterInsert(i, this)) - }, - beforeInsert: function(t) {}, - afterInsert: function(t) {}, - buildContent: function() { - return this.opt.content || {} - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - t.exports = { - startSelectPosition: function(t, e) { - this.isPointed = !1; - var i = this.editorModel.get("Utils"); - i && !this.sorter && (this.sorter = new i.Sorter({ - container: this.getCanvasBody(), - placer: this.canvas.getPlacerEl(), - containerSel: "*", - itemSel: "*", - pfx: this.ppfx, - direction: "a", - document: e, - wmargin: 1, - nested: 1, - em: this.editorModel, - canvasRelative: 1 - })), this.sorter.startSort(t) - }, - getOffsetDim: function() { - var t = this.offset(this.canvas.getFrameEl()), - e = this.offset(this.canvas.getElement()); - return { - top: t.top - e.top, - left: t.left - e.left - } - }, - stopSelectPosition: function() { - this.posTargetCollection = null, this.posIndex = "after" == this.posMethod && 0 !== this.cDim.length ? this.posIndex + 1 : this.posIndex, this.sorter && (this.sorter.moved = 0, this.sorter.endMove()), this.cDim && (this.posIsLastEl = 0 !== this.cDim.length && "after" == this.posMethod && this.posIndex == this.cDim.length, this.posTargetEl = 0 === this.cDim.length ? $(this.outsideElem) : !this.posIsLastEl && this.cDim[this.posIndex] ? $(this.cDim[this.posIndex][5]).parent() : $(this.outsideElem), this.posTargetModel = this.posTargetEl.data("model"), this.posTargetCollection = this.posTargetEl.data("model-comp")) - }, - enable: function() { - this.startSelectPosition() - }, - nearFloat: function(t, e, i) { - var n = t || 0, - r = e || "before", - s = i.length, - o = 0 !== s && "after" == r && n == s; - return 0 !== s && (!o && !i[n][4] || i[n - 1] && !i[n - 1][4] || o && !i[n - 1][4]) ? 1 : 0 - }, - run: function() { - this.enable() - }, - stop: function() { - this.stopSelectPosition(), this.$wrapper.css("cursor", ""), this.$wrapper.unbind() - } - } - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(22), - r = function(t) { - return t && t.__esModule ? t : { - default: t - } - }(n), - s = i(0), - o = i(19); - t.exports = s.Model.extend(r.default).extend({ - defaults: { - selectors: {}, - selectorsAdd: "", - style: {}, - mediaText: "", - state: "", - stylable: !0 - }, - initialize: function(t, e) { - if (this.config = t || {}, this.sm = e ? e.sm || {} : {}, this.slct = this.config.selectors || [], this.sm.get) { - for (var i = [], n = 0; n < this.slct.length; n++) i.push(this.sm.get("SelectorManager").add(this.slct[n].name || this.slct[n])); - this.slct = i - } - this.set("selectors", new o(this.slct)) - }, - compare: function(t, i, n, r) { - var s = r || {}, - o = i || "", - a = n || "", - l = s.selectorsAdd || ""; - t instanceof Array || t.models || (t = [t]); - var c = e.map(t.models || t, function(t) { - return t.get("name") - }), - u = e.map(this.get("selectors").models, function(t) { - return t.get("name") - }); - if (c.length !== u.length) return !1; - for (var h = 0; h < c.length; h++) { - for (var d = 0, f = 0; f < u.length; f++) c[h] === u[f] && (d = 1); - if (0 === d) return !1 - } - return this.get("state") === o && (this.get("mediaText") === a && this.get("selectorsAdd") === l) - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Collection.extend({ - initialize: function(t, e) { - this.model = function(t, e) { - return this.ClassTag || (this.ClassTag = i(32)), new this.ClassTag(t, e) - } - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(2); - t.exports = n.extend({ - defaults: e.extend({}, n.prototype.defaults, { - type: "text", - droppable: !1, - editable: !0 - }) - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(3)); - t.exports = n.extend({ - events: { - dblclick: "enableEditing", - change: "parseRender" - }, - initialize: function(t) { - n.prototype.initialize.apply(this, arguments), e.bindAll(this, "disableEditing"), this.listenTo(this.model, "focus active", this.enableEditing), this.rte = this.config.rte || "", this.activeRte = null, this.em = this.config.em - }, - enableEditing: function(t) { - var e = this.model.get("editable"); - if (this.rte && e) try { - this.activeRte = this.rte.attach(this, this.activeRte), this.rte.focus(this, this.activeRte) - } catch (t) { - console.error(t) - } - this.toggleEvents(1) - }, - disableEditing: function(t) { - var e = this.model, - i = e.get("editable"); - if (this.rte && i) { - try { - this.rte.detach(this, this.activeRte) - } catch (t) { - console.error(t) - } - var n = this.getChildrenContainer(); - e.set("content", n.innerHTML) - }!this.rte.customRte && i && this.parseRender(), this.toggleEvents() - }, - disablePropagation: function(t) { - t.stopPropagation() - }, - parseRender: function() { - var t = this.getChildrenContainer(), - e = this.model.get("components"), - i = { - silent: !0 - }; - e.reset(null, i), e.add(t.innerHTML, i), this.model.set("content", ""), this.render(), e.trigger("resetNavigator") - }, - toggleEvents: function(t) { - var e = t ? "on" : "off", - i = [this.el.ownerDocument, document, this.rte]; - $(i).off("mousedown", this.disableEditing), $(i)[e]("mousedown", this.disableEditing), this.$el.off("mousedown", this.disablePropagation), this.$el[e]("mousedown", this.disablePropagation) - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - Object.defineProperty(e, "__esModule", { - value: !0 - }), e.default = { - extendStyle: function(t) { - return Object.assign({}, this.getStyle(), t) - }, - getStyle: function() { - return this.get("style") - }, - setStyle: function() { - var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - this.set("style", Object.assign({}, t), e) - }, - addStyle: function(t) { - var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", - i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; - "string" == typeof t ? t = { - prop: e - } : i = e || {}, t = this.extendStyle(t), this.setStyle(t, i) - }, - removeStyle: function(t) { - var e = Object.assign({}, this.getStyle()); - delete e[t], this.setStyle(e) - } - } - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(127)); - i(203); - t.exports = n.extend({ - template: e.template('\n
    input-holder\'>
    \n
    \n
    \n
    \n
    \n
    '), - initialize: function(t) { - n.prototype.initialize.apply(this, arguments); - var e = this.ppfx; - this.colorCls = e + "field-color-picker", this.inputClass = e + "field " + e + "field-color", this.colorHolderClass = e + "field-colorp-c", this.listenTo(this.model, "change:value", this.handleModelChange) - }, - handleModelChange: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - n.prototype.handleModelChange.apply(this, e); - var r = this.model.get("value"), - s = this.getColorEl(); - r = "none" === r ? "#fff" : r, s.spectrum("set", r), s.get(0).style.backgroundColor = r - }, - getColorEl: function() { - if (!this.colorEl) { - var t = this.model, - e = $("
    ", { - class: this.colorCls - }), - i = e.get(0).style, - n = this.target && this.target.config ? this.target.config.el : ""; - e.spectrum({ - appendTo: n || "body", - maxSelectionSize: 8, - showPalette: !0, - showAlpha: !0, - chooseText: "Ok", - cancelText: "⨯", - palette: [], - move: function(t) { - var e = 1 == t.getAlpha() ? t.toHexString() : t.toRgbString(); - i.backgroundColor = e - }, - change: function(e) { - var n = 1 == e.getAlpha() ? e.toHexString() : e.toRgbString(); - n = n.replace(/ /g, ""), i.backgroundColor = n, t.set("value", n) - } - }), this.colorEl = e - } - return this.colorEl - }, - render: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - return n.prototype.render.apply(this, e), this.$el.find("." + this.colorHolderClass).html(this.getColorEl()), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - events: {}, - template: e.template('\n input-holder\'>\n field-units\'>\n
    \n
    \n
    \n
    '), - initialize: function(t) { - e.bindAll(this, "moveIncrement", "upIncrement"); - var i = t || {}, - n = i.ppfx || "", - r = i.contClass || n + "field"; - this.ppfx = n, this.docEl = $(document), this.inputCls = n + "input-number", this.unitCls = n + "input-unit", this.contClass = r, this.events["click ." + n + "field-arrow-u"] = "upArrowClick", this.events["click ." + n + "field-arrow-d"] = "downArrowClick", this.events["mousedown ." + n + "field-arrows"] = "downIncrement", this.events["change ." + this.inputCls] = "handleChange", this.events["change ." + this.unitCls] = "handleUnitChange", this.listenTo(this.model, "change:unit change:value", this.handleModelChange), this.delegateEvents() - }, - setValue: function(t, e) { - var i = e || {}, - n = this.validateInputValue(t, { - deepCheck: 1 - }), - r = { - value: n.value - }; - (n.unit || n.force) && (r.unit = n.unit), this.model.set(r, i), i.silent && this.handleModelChange() - }, - handleChange: function(t) { - t.stopPropagation(), this.setValue(this.getInputEl().value), this.elementUpdated() - }, - handleUnitChange: function(t) { - t.stopPropagation(); - var e = this.getUnitEl().value; - this.model.set("unit", e), this.elementUpdated() - }, - elementUpdated: function() { - this.model.trigger("el:change") - }, - handleModelChange: function() { - var t = this.model; - this.getInputEl().value = t.get("value"); - var e = this.getUnitEl(); - e && (e.value = t.get("unit")) - }, - getInputEl: function() { - return this.inputEl || (this.inputEl = $("", { - type: "text", - class: this.inputCls, - placeholder: this.model.get("defaults") - })), this.inputEl.get(0) - }, - getUnitEl: function() { - if (!this.unitEl) { - var t = this.model, - i = t.get("units") || []; - if (i.length) { - var n = '", this.unitEl = $(n) - } - } - return this.unitEl && this.unitEl.get(0) - }, - upArrowClick: function() { - var t = this.model.get("value"); - t = isNaN(t) ? 1 : parseInt(t, 10) + 1; - var e = this.validateInputValue(t); - this.model.set("value", e.value) - }, - downArrowClick: function() { - var t = this.model.get("value"); - t = isNaN(t) ? 0 : parseInt(t, 10) - 1; - var e = this.validateInputValue(t); - this.model.set("value", e.value) - }, - downIncrement: function(t) { - t.preventDefault(), this.moved = 0; - var e = this.model.get("value"); - e = isNaN(e) ? 0 : parseInt(e, 10); - var i = { - y: t.pageY, - val: e - }; - this.docEl.mouseup(i, this.upIncrement), this.docEl.mousemove(i, this.moveIncrement) - }, - moveIncrement: function(t) { - this.moved = 1; - var e = parseInt(t.data.val - t.pageY + t.data.y, 10); - return this.prValue = this.validateInputValue(e).value, this.model.set("value", this.prValue, { - avoidStore: 1 - }), !1 - }, - upIncrement: function(t) { - if (this.docEl.off("mouseup", this.upIncrement), this.docEl.off("mousemove", this.moveIncrement), this.prValue && this.moved) { - var e = this.prValue - 1; - this.model.set("value", e, { - avoidStore: 1 - }).set("value", e + 1), this.elementUpdated() - } - }, - validateInputValue: function(t, i) { - var n = 0, - r = i || {}, - s = this.model, - o = t || s.get("defaults"), - a = s.get("units") || [], - l = s.get("unit") || a.length && a[0] || "", - c = s.get("max"), - u = s.get("min"); - if (r.deepCheck) { - var h = s.get("fixedValues") || []; - if (o) { - var d = new RegExp("^" + h.join("|"), "g"); - if (h.length && d.test(o)) o = o.match(d)[0], l = "", n = 1; - else { - var f = o + ""; - o += "", o = parseFloat(o.replace(",", ".")), o = isNaN(o) ? s.get("defaults") : o; - var p = f.replace(o, ""); - e.indexOf(a, p) >= 0 && (l = p) - } - } - } - return void 0 !== c && "" !== c && (o = o > c ? c : o), void 0 !== u && "" !== u && (o = o < u ? u : o), { - force: n, - value: o, - unit: l - } - }, - render: function() { - var t = this.ppfx; - return this.$el.html(this.template({ - ppfx: t - })), this.$el.find("." + t + "input-holder").html(this.getInputEl()), this.$el.find("." + t + "field-units").html(this.getUnitEl()), this.$el.addClass(this.contClass), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.View.extend({ - itemView: "", - itemsView: "", - itemType: "type", - initialize: function(t, e) { - this.config = e || {} - }, - addTo: function(t) { - this.add(t) - }, - add: function(t, e) { - var i = e || null, - n = this.itemView, - r = t.get(this.itemType); - this.itemsView && this.itemsView[r] && (n = this.itemsView[r]); - var s = new n({ - model: t, - config: this.config - }, this.config), - o = s.render().el; - i ? i.appendChild(o) : this.$el.append(o) - }, - render: function() { - var t = document.createDocumentFragment(); - return this.$el.empty(), this.collection.length && this.collection.each(function(e) { - this.add(e, t) - }, this), this.$el.append(t), this - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(140); - t.exports = n.View.extend({ - initialize: function(t) { - if (this.opt = t, this.config = t.config, this.preview = t.preview, this.ppfx = t.config.pStylePrefix || "", this.pfx = t.config.stylePrefix || "", this.parent = t.parent, this.listenTo(this.collection, "add", this.addTo), this.listenTo(this.collection, "reset resetNavigator", this.render), this.className = this.pfx + "items", this.config.sortable && !this.opt.sorter) { - var e = this.pfx, - i = this.config.em.get("Utils"); - this.opt.sorter = new i.Sorter({ - container: this.el, - containerSel: "." + e + "items", - itemSel: "." + e + "item", - ppfx: this.ppfx, - ignoreViewChildren: 1, - pfx: e, - nested: 1 - }) - } - this.sorter = this.opt.sorter || "", this.parent || (this.className += " " + this.pfx + this.config.containerId), this.$el.data("collection", this.collection), this.parent && this.$el.data("model", this.parent) - }, - addTo: function(t) { - var e = this.collection.indexOf(t); - this.addToCollection(t, null, e) - }, - addToCollection: function(t, e, i) { - var n = e || null, - s = r, - o = new s({ - model: t, - config: this.config, - sorter: this.sorter, - isCountable: this.isCountable, - opened: this.opt.opened - }), - a = o.render().el; - if (n) n.appendChild(a); - else if (void 0 !== i) { - var l = "before"; - this.$el.children().length == i && (i--, l = "after"), i < 0 ? this.$el.append(a) : this.$el.children().eq(i)[l](a) - } else this.$el.append(a); - return a - }, - isCountable: function(t, e) { - var i = t.get("type"), - n = t.get("tagName"); - return ("textnode" != i && "br" != n || !e) && !t.get("hiddenLayer") - }, - render: function() { - var t = document.createDocumentFragment(); - return this.$el.empty(), this.collection.each(function(e) { - this.isCountable(e, this.config.hideTextnode) && this.addToCollection(e, t) - }, this), this.$el.append(t), this.$el.attr("class", e.result(this, "className")), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(143); - t.exports = n.Collection.extend({ - model: r, - deactivateAllExceptOne: function(t, e) { - this.forEach(function(i, n) { - i !== t && (i.set("active", !1), e && i.get("buttons").length && i.get("buttons").deactivateAllExceptOne(t, e)) - }) - }, - deactivateAll: function(t) { - var e = t || ""; - this.forEach(function(t, i) { - t.get("context") == e && (t.set("active", !1), t.get("buttons").length && t.get("buttons").deactivateAll(e)) - }) - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(27); - t.exports = n.Model.extend({ - defaults: { - id: "", - content: "", - visible: !0, - buttons: [] - }, - initialize: function(t) { - this.btn = this.get("buttons") || [], this.buttons = new r(this.btn), this.set("buttons", this.buttons) - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(145); - t.exports = n.View.extend({ - initialize: function(t) { - this.opt = t || {}, this.config = this.opt.config || {}, this.pfx = this.config.stylePrefix || "", this.parentM = this.opt.parentM || null, this.listenTo(this.collection, "add", this.addTo), this.listenTo(this.collection, "reset", this.render), this.className = this.pfx + "buttons" - }, - addTo: function(t) { - this.addToCollection(t) - }, - addToCollection: function(t, e) { - var i = e || null, - n = r, - s = new n({ - model: t, - config: this.config, - parentM: this.parentM - }), - o = s.render().el; - return i ? i.appendChild(o) : this.$el.append(o), o - }, - render: function() { - var t = document.createDocumentFragment(); - return this.$el.empty(), this.collection.each(function(e) { - this.addToCollection(e, t) - }, this), this.$el.append(t), this.$el.attr("class", e.result(this, "className")), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(29); - t.exports = n.View.extend({ - initialize: function(t) { - this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.buttons = this.model.get("buttons"), this.className = this.pfx + "panel", this.id = this.pfx + this.model.get("id"), this.listenTo(this.model, "change:appendContent", this.appendContent), this.listenTo(this.model, "change:content", this.updateContent) - }, - appendContent: function() { - this.$el.append(this.model.get("appendContent")) - }, - updateContent: function() { - this.$el.html(this.model.get("content")) - }, - initResize: function() { - var t = this.config.em, - e = t ? t.get("Editor") : "", - i = this.model.get("resizable"); - if (e && i) { - var n, r, s, o = !0 === i ? [1, 1, 1, 1] : i, - a = o.length, - l = 0; - 2 == a ? (n = o[0], s = o[0], r = o[1], l = o[1]) : 4 == a && (n = o[0], r = o[1], s = o[2], l = o[3]); - var c = e.Utils.Resizer.init({ - tc: n, - cr: r, - bc: s, - cl: l, - tl: 0, - tr: 0, - bl: 0, - br: 0, - appendTo: this.el, - prefix: e.getConfig().stylePrefix, - posFetcher: function(t) { - var e = t.getBoundingClientRect(); - return { - left: 0, - top: 0, - width: e.width, - height: e.height - } - } - }); - c.blur = function() {}, c.focus(this.el) - } - }, - render: function() { - if (this.$el.attr("class", this.className), this.id && this.$el.attr("id", this.id), this.buttons.length) { - var t = new r({ - collection: this.buttons, - config: this.config - }); - this.$el.append(t.render().el) - } - return this.$el.append(this.model.get("content")), this - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.View.extend({ - tagName: "a", - initialize: function(t, e) { - this.config = e || {}, this.ppfx = this.config.pStylePrefix || "", this.className = this.config.stylePrefix + "btn " + this.model.get("class") - }, - render: function() { - return this.$el.addClass(this.className), this - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Model.extend({ - idAttribute: "name", - defaults: { - name: "", - label: "", - type: "class", - active: !0 - }, - initialize: function() { - this.set("name", this.escapeName(this.get("name"))), this.get("label").trim() || this.set("label", this.get("name")) - }, - escapeName: function(t) { - return t.replace(/([^a-z0-9\w]+)/gi, "-") - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(32); - t.exports = n.Collection.extend({ - model: r - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - t.exports = function() { - var t, n, r = {}, - s = i(168), - o = i(173), - a = i(183); - return { - name: "StyleManager", - getConfig: function() { - return r - }, - init: function(e) { - r = e || {}; - for (var i in s) i in r || (r[i] = s[i]); - var l = r.pStylePrefix; - return l && (r.stylePrefix = l + r.stylePrefix), t = new o(r.sectors), n = new a({ - collection: t, - target: r.em, - config: r - }), this - }, - addSector: function(e, i) { - var n = this.getSector(e); - return n || (i.id = e, n = t.add(i)), n - }, - getSector: function(e) { - var i = t.where({ - id: e - }); - return i.length ? i[0] : null - }, - getSectors: function() { - return t - }, - addProperty: function(t, e) { - var i = null, - n = this.getSector(t); - return n && (i = n.get("properties").add(e)), i - }, - getProperty: function(t, e) { - var i = null, - n = this.getSector(t); - return n && (i = n.get("properties").where({ - property: e - }), i = 1 == i.length ? i[0] : i), i - }, - getProperties: function(t) { - var e = null, - i = this.getSector(t); - return i && (e = i.get("properties")), e - }, - getModelToStyle: function(t) { - var i = t.get("classes"); - if (r.em && i && i.length) { - var n = r.em.get("Config").devicePreviewMode, - s = r.em.getDeviceModel(), - o = n ? "" : t.get("state"), - a = s && !n ? s.get("width") : "", - l = r.em.get("CssComposer"), - c = e.filter(i.models, function(t) { - return t.get("active") - }), - u = l.get(c, o, a); - if (u) return u - } - return t - }, - render: function() { - return n.render().el - } - } - } - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(169); - t.exports = n.Collection.extend({ - model: r, - initialize: function() { - this.idx = 1, this.on("add", this.onAdd), this.on("reset", this.onReset) - }, - onAdd: function(t, e, i) { - i.noIncrement || t.set("index", this.idx++) - }, - onReset: function() { - this.idx = 1 - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(170); - t.exports = n.Collection.extend({ - model: r - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(4), - s = i(178), - o = i(179), - a = i(180), - l = i(176), - c = i(177), - u = i(38), - h = i(181); - t.exports = n.View.extend({ - initialize: function(t) { - this.config = t.config || {}, this.pfx = this.config.stylePrefix || "", this.target = t.target || {}, this.propTarget = t.propTarget || {}, this.onChange = t.onChange || {}, this.onInputRender = t.onInputRender || {}, this.customValue = t.customValue || {} - }, - render: function() { - var t = document.createDocumentFragment(); - return this.collection.each(function(e) { - var i = r; - switch (e.get("type")) { - case "integer": - i = s; - break; - case "radio": - i = o; - break; - case "select": - i = a; - break; - case "color": - i = l; - break; - case "file": - i = c; - break; - case "composite": - i = u; - break; - case "stack": - i = h - } - var n = new i({ - model: e, - name: e.get("name"), - id: this.pfx + e.get("property"), - target: this.target, - propTarget: this.propTarget, - onChange: this.onChange, - onInputRender: this.onInputRender, - config: this.config - }); - "composite" != e.get("type") && (n.customValue = this.customValue), t.appendChild(n.render().el) - }, this), this.$el.append(t), this.$el.append($("
    ", { - class: "clear" - })), this.$el.attr("class", this.pfx + "properties"), this - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(4)); - t.exports = n.extend({ - template: e.template('\n
    \n \tinput-holder\'>\n
    \n
    '), - initialize: function(t) { - n.prototype.initialize.apply(this, arguments), e.bindAll(this, "build"), this.config = t.config || {}, this.className = this.className + " " + this.pfx + "composite" - }, - valueUpdated: function() { - for (var t = arguments.length, e = Array(t), i = 0; i < t; i++) e[i] = arguments[i]; - this.model.get("detached") || n.prototype.valueUpdated.apply(this, e) - }, - renderInput: function() { - var t = this.model, - e = t.get("properties") || []; - if (e.length && (this.$input || (this.$input = $("", { - value: 0, - type: "hidden" - })), this.props || (this.props = t.get("properties")), !this.$props)) { - this.props.each(function(e, i) { - e && "composite" == e.get("type") && (this.props.remove(e), console.warn("Nested composite types not yet allowed.")), e.parent = t - }, this); - var n = i(37), - r = new n(this.getPropsConfig()); - this.$props = r.render().$el, this.$el.find("#" + this.pfx + "input-holder").html(this.$props) - } - }, - getPropsConfig: function(t) { - var e = this, - i = { - config: this.config, - collection: this.props, - target: this.target, - propTarget: this.propTarget, - onChange: function(t, i, n) { - var r = e.build(); - e.model.set("value", r, n) - }, - customValue: function(t, i) { - return e.valueOnIndex(i, t) - } - }; - return this.model.get("detached") && delete i.onChange, i - }, - getDefaultValue: function() { - var t = ""; - return this.props.each(function(e, i) { - t += e.get("defaults") + e.get("unit") + " " - }), this.model.get("defaults") || t.replace(/ +$/, "") - }, - valueOnIndex: function(t, e) { - var i = null, - n = this.getComponentValue().split(" "); - if (n.length && n[t] && (i = n[t], e && e.model && e.model.get("functionName"))) { - var r = this.fetchFromFunction(i); - r && (i = r) - } - return i - }, - build: function(t, e, i) { - var n = ""; - return this.model.get("properties").each(function(t) { - var e = t.getValue(), - i = t.get("functionName"); - i && (e = i + "(" + e + ")"), n += e + " " - }), n.replace(/ +$/, "") - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(186), - s = i(187); - t.exports = n.Collection.extend({ - model: r, - setTarget: function(t) { - this.target = t - }, - add: function(t, e) { - if ("string" == typeof t || t instanceof Array) { - "string" == typeof t && (t = [t]); - for (var i = 0, r = t.length; i < r; i++) { - var o = t[i], - a = "string" == typeof o ? s.build(o)[0] : o; - a.target = this.target, t[i] = a - } - } - return n.Collection.prototype.add.apply(this, [t, e]) - } - }) - }, function(t, e, i) { - ! function(t) { - t(i(5)) - }(function(t) { - "use strict"; - - function e(t) { - for (var e = {}, i = 0; i < t.length; ++i) e[t[i].toLowerCase()] = !0; - return e - } - - function i(t, e) { - for (var i, n = !1; null != (i = t.next());) { - if (n && "/" == i) { - e.tokenize = null; - break - } - n = "*" == i - } - return ["comment", "comment"] - } - t.defineMode("css", function(e, i) { - function n(t, e) { - return p = e, t - } - - function r(t, e) { - var i = t.next(); - if (v[i]) { - var r = v[i](t, e); - if (!1 !== r) return r - } - return "@" == i ? (t.eatWhile(/[\w\\\-]/), n("def", t.current())) : "=" == i || ("~" == i || "|" == i) && t.eat("=") ? n(null, "compare") : '"' == i || "'" == i ? (e.tokenize = s(i), e.tokenize(t, e)) : "#" == i ? (t.eatWhile(/[\w\\\-]/), n("atom", "hash")) : "!" == i ? (t.match(/^\s*\w*/), n("keyword", "important")) : /\d/.test(i) || "." == i && t.eat(/\d/) ? (t.eatWhile(/[\w.%]/), n("number", "unit")) : "-" !== i ? /[,+>*\/]/.test(i) ? n(null, "select-op") : "." == i && t.match(/^-?[_a-z][_a-z0-9-]*/i) ? n("qualifier", "qualifier") : /[:;{}\[\]\(\)]/.test(i) ? n(null, i) : "u" == i && t.match(/rl(-prefix)?\(/) || "d" == i && t.match("omain(") || "r" == i && t.match("egexp(") ? (t.backUp(1), e.tokenize = o, n("property", "word")) : /[\w\\\-]/.test(i) ? (t.eatWhile(/[\w\\\-]/), n("property", "word")) : n(null, null) : /[\d.]/.test(t.peek()) ? (t.eatWhile(/[\w.%]/), n("number", "unit")) : t.match(/^-[\w\\\-]+/) ? (t.eatWhile(/[\w\\\-]/), t.match(/^\s*:/, !1) ? n("variable-2", "variable-definition") : n("variable-2", "variable")) : t.match(/^\w+-/) ? n("meta", "meta") : void 0 - } - - function s(t) { - return function(e, i) { - for (var r, s = !1; null != (r = e.next());) { - if (r == t && !s) { - ")" == t && e.backUp(1); - break - } - s = !s && "\\" == r - } - return (r == t || !s && ")" != t) && (i.tokenize = null), n("string", "string") - } - } - - function o(t, e) { - return t.next(), t.match(/\s*[\"\')]/, !1) ? e.tokenize = null : e.tokenize = s(")"), n(null, "(") - } - - function a(t, e, i) { - this.type = t, this.indent = e, this.prev = i - } - - function l(t, e, i, n) { - return t.context = new a(i, e.indentation() + (!1 === n ? 0 : m), t.context), i - } - - function c(t) { - return t.context.prev && (t.context = t.context.prev), t.context.type - } - - function u(t, e, i) { - return L[i.context.type](t, e, i) - } - - function h(t, e, i, n) { - for (var r = n || 1; r > 0; r--) i.context = i.context.prev; - return u(t, e, i) - } - - function d(t) { - var e = t.current().toLowerCase(); - g = E.hasOwnProperty(e) ? "atom" : M.hasOwnProperty(e) ? "keyword" : "variable" - } - var f = i.inline; - i.propertyKeywords || (i = t.resolveMode("text/css")); - var p, g, m = e.indentUnit, - v = i.tokenHooks, - y = i.documentTypes || {}, - b = i.mediaTypes || {}, - x = i.mediaFeatures || {}, - w = i.mediaValueKeywords || {}, - C = i.propertyKeywords || {}, - k = i.nonStandardPropertyKeywords || {}, - S = i.fontProperties || {}, - T = i.counterDescriptors || {}, - M = i.colorKeywords || {}, - E = i.valueKeywords || {}, - P = i.allowNested, - $ = !0 === i.supportsAtComponent, - L = {}; - return L.top = function(t, e, i) { - if ("{" == t) return l(i, e, "block"); - if ("}" == t && i.context.prev) return c(i); - if ($ && /@component/.test(t)) return l(i, e, "atComponentBlock"); - if (/^@(-moz-)?document$/.test(t)) return l(i, e, "documentTypes"); - if (/^@(media|supports|(-moz-)?document|import)$/.test(t)) return l(i, e, "atBlock"); - if (/^@(font-face|counter-style)/.test(t)) return i.stateArg = t, "restricted_atBlock_before"; - if (/^@(-(moz|ms|o|webkit)-)?keyframes$/.test(t)) return "keyframes"; - if (t && "@" == t.charAt(0)) return l(i, e, "at"); - if ("hash" == t) g = "builtin"; - else if ("word" == t) g = "tag"; - else { - if ("variable-definition" == t) return "maybeprop"; - if ("interpolation" == t) return l(i, e, "interpolation"); - if (":" == t) return "pseudo"; - if (P && "(" == t) return l(i, e, "parens") - } - return i.context.type - }, L.block = function(t, e, i) { - if ("word" == t) { - var n = e.current().toLowerCase(); - return C.hasOwnProperty(n) ? (g = "property", "maybeprop") : k.hasOwnProperty(n) ? (g = "string-2", "maybeprop") : P ? (g = e.match(/^\s*:(?:\s|$)/, !1) ? "property" : "tag", "block") : (g += " error", "maybeprop") - } - return "meta" == t ? "block" : P || "hash" != t && "qualifier" != t ? L.top(t, e, i) : (g = "error", "block") - }, L.maybeprop = function(t, e, i) { - return ":" == t ? l(i, e, "prop") : u(t, e, i) - }, L.prop = function(t, e, i) { - if (";" == t) return c(i); - if ("{" == t && P) return l(i, e, "propBlock"); - if ("}" == t || "{" == t) return h(t, e, i); - if ("(" == t) return l(i, e, "parens"); - if ("hash" != t || /^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(e.current())) { - if ("word" == t) d(e); - else if ("interpolation" == t) return l(i, e, "interpolation") - } else g += " error"; - return "prop" - }, L.propBlock = function(t, e, i) { - return "}" == t ? c(i) : "word" == t ? (g = "property", "maybeprop") : i.context.type - }, L.parens = function(t, e, i) { - return "{" == t || "}" == t ? h(t, e, i) : ")" == t ? c(i) : "(" == t ? l(i, e, "parens") : "interpolation" == t ? l(i, e, "interpolation") : ("word" == t && d(e), "parens") - }, L.pseudo = function(t, e, i) { - return "word" == t ? (g = "variable-3", i.context.type) : u(t, e, i) - }, L.documentTypes = function(t, e, i) { - return "word" == t && y.hasOwnProperty(e.current()) ? (g = "tag", i.context.type) : L.atBlock(t, e, i) - }, L.atBlock = function(t, e, i) { - if ("(" == t) return l(i, e, "atBlock_parens"); - if ("}" == t || ";" == t) return h(t, e, i); - if ("{" == t) return c(i) && l(i, e, P ? "block" : "top"); - if ("interpolation" == t) return l(i, e, "interpolation"); - if ("word" == t) { - var n = e.current().toLowerCase(); - g = "only" == n || "not" == n || "and" == n || "or" == n ? "keyword" : b.hasOwnProperty(n) ? "attribute" : x.hasOwnProperty(n) ? "property" : w.hasOwnProperty(n) ? "keyword" : C.hasOwnProperty(n) ? "property" : k.hasOwnProperty(n) ? "string-2" : E.hasOwnProperty(n) ? "atom" : M.hasOwnProperty(n) ? "keyword" : "error" - } - return i.context.type - }, L.atComponentBlock = function(t, e, i) { - return "}" == t ? h(t, e, i) : "{" == t ? c(i) && l(i, e, P ? "block" : "top", !1) : ("word" == t && (g = "error"), i.context.type) - }, L.atBlock_parens = function(t, e, i) { - return ")" == t ? c(i) : "{" == t || "}" == t ? h(t, e, i, 2) : L.atBlock(t, e, i) - }, L.restricted_atBlock_before = function(t, e, i) { - return "{" == t ? l(i, e, "restricted_atBlock") : "word" == t && "@counter-style" == i.stateArg ? (g = "variable", "restricted_atBlock_before") : u(t, e, i) - }, L.restricted_atBlock = function(t, e, i) { - return "}" == t ? (i.stateArg = null, c(i)) : "word" == t ? (g = "@font-face" == i.stateArg && !S.hasOwnProperty(e.current().toLowerCase()) || "@counter-style" == i.stateArg && !T.hasOwnProperty(e.current().toLowerCase()) ? "error" : "property", "maybeprop") : "restricted_atBlock" - }, L.keyframes = function(t, e, i) { - return "word" == t ? (g = "variable", "keyframes") : "{" == t ? l(i, e, "top") : u(t, e, i) - }, L.at = function(t, e, i) { - return ";" == t ? c(i) : "{" == t || "}" == t ? h(t, e, i) : ("word" == t ? g = "tag" : "hash" == t && (g = "builtin"), "at") - }, L.interpolation = function(t, e, i) { - return "}" == t ? c(i) : "{" == t || ";" == t ? h(t, e, i) : ("word" == t ? g = "variable" : "variable" != t && "(" != t && ")" != t && (g = "error"), "interpolation") - }, { - startState: function(t) { - return { - tokenize: null, - state: f ? "block" : "top", - stateArg: null, - context: new a(f ? "block" : "top", t || 0, null) - } - }, - token: function(t, e) { - if (!e.tokenize && t.eatSpace()) return null; - var i = (e.tokenize || r)(t, e); - return i && "object" == typeof i && (p = i[1], i = i[0]), g = i, e.state = L[e.state](p, t, e), g - }, - indent: function(t, e) { - var i = t.context, - n = e && e.charAt(0), - r = i.indent; - return "prop" != i.type || "}" != n && ")" != n || (i = i.prev), i.prev && ("}" != n || "block" != i.type && "top" != i.type && "interpolation" != i.type && "restricted_atBlock" != i.type ? (")" != n || "parens" != i.type && "atBlock_parens" != i.type) && ("{" != n || "at" != i.type && "atBlock" != i.type) || (r = Math.max(0, i.indent - m), i = i.prev) : (i = i.prev, r = i.indent)), r - }, - electricChars: "}", - blockCommentStart: "/*", - blockCommentEnd: "*/", - fold: "brace" - } - }); - var n = ["domain", "regexp", "url", "url-prefix"], - r = e(n), - s = ["all", "aural", "braille", "handheld", "print", "projection", "screen", "tty", "tv", "embossed"], - o = e(s), - a = ["width", "min-width", "max-width", "height", "min-height", "max-height", "device-width", "min-device-width", "max-device-width", "device-height", "min-device-height", "max-device-height", "aspect-ratio", "min-aspect-ratio", "max-aspect-ratio", "device-aspect-ratio", "min-device-aspect-ratio", "max-device-aspect-ratio", "color", "min-color", "max-color", "color-index", "min-color-index", "max-color-index", "monochrome", "min-monochrome", "max-monochrome", "resolution", "min-resolution", "max-resolution", "scan", "grid", "orientation", "device-pixel-ratio", "min-device-pixel-ratio", "max-device-pixel-ratio", "pointer", "any-pointer", "hover", "any-hover"], - l = e(a), - c = ["landscape", "portrait", "none", "coarse", "fine", "on-demand", "hover", "interlace", "progressive"], - u = e(c), - h = ["align-content", "align-items", "align-self", "alignment-adjust", "alignment-baseline", "anchor-point", "animation", "animation-delay", "animation-direction", "animation-duration", "animation-fill-mode", "animation-iteration-count", "animation-name", "animation-play-state", "animation-timing-function", "appearance", "azimuth", "backface-visibility", "background", "background-attachment", "background-blend-mode", "background-clip", "background-color", "background-image", "background-origin", "background-position", "background-repeat", "background-size", "baseline-shift", "binding", "bleed", "bookmark-label", "bookmark-level", "bookmark-state", "bookmark-target", "border", "border-bottom", "border-bottom-color", "border-bottom-left-radius", "border-bottom-right-radius", "border-bottom-style", "border-bottom-width", "border-collapse", "border-color", "border-image", "border-image-outset", "border-image-repeat", "border-image-slice", "border-image-source", "border-image-width", "border-left", "border-left-color", "border-left-style", "border-left-width", "border-radius", "border-right", "border-right-color", "border-right-style", "border-right-width", "border-spacing", "border-style", "border-top", "border-top-color", "border-top-left-radius", "border-top-right-radius", "border-top-style", "border-top-width", "border-width", "bottom", "box-decoration-break", "box-shadow", "box-sizing", "break-after", "break-before", "break-inside", "caption-side", "clear", "clip", "color", "color-profile", "column-count", "column-fill", "column-gap", "column-rule", "column-rule-color", "column-rule-style", "column-rule-width", "column-span", "column-width", "columns", "content", "counter-increment", "counter-reset", "crop", "cue", "cue-after", "cue-before", "cursor", "custom","custom-textbox","custom-type","direction", "display", "dominant-baseline", "drop-initial-after-adjust", "drop-initial-after-align", "drop-initial-before-adjust", "drop-initial-before-align", "drop-initial-size", "drop-initial-value", "elevation", "empty-cells", "fit", "fit-position", "flex", "flex-basis", "flex-direction", "flex-flow", "flex-grow", "flex-shrink", "flex-wrap", "float", "float-offset", "flow-from", "flow-into", "font", "font-feature-settings", "font-family", "font-kerning", "font-language-override", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-synthesis", "font-variant", "font-variant-alternates", "font-variant-caps", "font-variant-east-asian", "font-variant-ligatures", "font-variant-numeric", "font-variant-position", "font-weight", "grid", "grid-area", "grid-auto-columns", "grid-auto-flow", "grid-auto-rows", "grid-column", "grid-column-end", "grid-column-gap", "grid-column-start", "grid-gap", "grid-row", "grid-row-end", "grid-row-gap", "grid-row-start", "grid-template", "grid-template-areas", "grid-template-columns", "grid-template-rows", "hanging-punctuation", "height", "hyphens", "icon", "image-orientation", "image-rendering", "image-resolution", "inline-box-align", "justify-content", "left", "letter-spacing", "line-break", "line-height", "line-stacking", "line-stacking-ruby", "line-stacking-shift", "line-stacking-strategy", "list-style", "list-style-image", "list-style-position", "list-style-type", "margin", "margin-bottom", "margin-left", "margin-right", "margin-top", "marks", "marquee-direction", "marquee-loop", "marquee-play-count", "marquee-speed", "marquee-style", "max-height", "max-width", "min-height", "min-width", "move-to", "nav-down", "nav-index", "nav-left", "nav-right", "nav-up", "object-fit", "object-position", "opacity", "order", "orphans", "outline", "outline-color", "outline-offset", "outline-style", "outline-width", "overflow", "overflow-style", "overflow-wrap", "overflow-x", "overflow-y", "padding", "padding-bottom", "padding-left", "padding-right", "padding-top", "page", "page-break-after", "page-break-before", "page-break-inside", "page-policy", "pause", "pause-after", "pause-before", "perspective", "perspective-origin", "pitch", "pitch-range", "play-during", "position", "presentation-level", "punctuation-trim", "quotes", "region-break-after", "region-break-before", "region-break-inside", "region-fragment", "rendering-intent", "resize", "rest", "rest-after", "rest-before", "richness", "right", "rotation", "rotation-point", "ruby-align", "ruby-overhang", "ruby-position", "ruby-span", "shape-image-threshold", "shape-inside", "shape-margin", "shape-outside", "size", "speak", "speak-as", "speak-header", "speak-numeral", "speak-punctuation", "speech-rate", "stress", "string-set", "tab-size", "table-layout", "target", "target-name", "target-new", "target-position", "text-align", "text-align-last", "text-decoration", "text-decoration-color", "text-decoration-line", "text-decoration-skip", "text-decoration-style", "text-emphasis", "text-emphasis-color", "text-emphasis-position", "text-emphasis-style", "text-height", "text-indent", "text-justify", "text-outline", "text-overflow", "text-shadow", "text-size-adjust", "text-space-collapse", "text-transform", "text-underline-position", "text-wrap", "top", "transform", "transform-origin", "transform-style", "transition", "transition-delay", "transition-duration", "transition-property", "transition-timing-function", "unicode-bidi", "user-select", "vertical-align", "visibility", "voice-balance", "voice-duration", "voice-family", "voice-pitch", "voice-range", "voice-rate", "voice-stress", "voice-volume", "volume", "white-space", "widows", "width", "word-break", "word-spacing", "word-wrap", "z-index", "clip-path", "clip-rule", "mask", "enable-background", "filter", "flood-color", "flood-opacity", "lighting-color", "stop-color", "stop-opacity", "pointer-events", "color-interpolation", "color-interpolation-filters", "color-rendering", "fill", "fill-opacity", "fill-rule", "image-rendering", "marker", "marker-end", "marker-mid", "marker-start", "shape-rendering", "stroke", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke-width", "text-rendering", "baseline-shift", "dominant-baseline", "glyph-orientation-horizontal", "glyph-orientation-vertical", "text-anchor", "writing-mode"], - d = e(h), - f = ["scrollbar-arrow-color", "scrollbar-base-color", "scrollbar-dark-shadow-color", "scrollbar-face-color", "scrollbar-highlight-color", "scrollbar-shadow-color", "scrollbar-3d-light-color", "scrollbar-track-color", "shape-inside", "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button", "searchfield-results-decoration", "zoom"], - p = e(f), - g = ["font-family", "src", "unicode-range", "font-variant", "font-feature-settings", "font-stretch", "font-weight", "font-style"], - m = e(g), - v = ["additive-symbols", "fallback", "negative", "pad", "prefix", "range", "speak-as", "suffix", "symbols", "system"], - y = e(v), - b = ["aliceblue", "antiquewhite", "aqua", "aquamarine", "azure", "beige", "bisque", "black", "blanchedalmond", "blue", "blueviolet", "brown", "burlywood", "cadetblue", "chartreuse", "chocolate", "coral", "cornflowerblue", "cornsilk", "crimson", "cyan", "darkblue", "darkcyan", "darkgoldenrod", "darkgray", "darkgreen", "darkkhaki", "darkmagenta", "darkolivegreen", "darkorange", "darkorchid", "darkred", "darksalmon", "darkseagreen", "darkslateblue", "darkslategray", "darkturquoise", "darkviolet", "deeppink", "deepskyblue", "dimgray", "dodgerblue", "firebrick", "floralwhite", "forestgreen", "fuchsia", "gainsboro", "ghostwhite", "gold", "goldenrod", "gray", "grey", "green", "greenyellow", "honeydew", "hotpink", "indianred", "indigo", "ivory", "khaki", "lavender", "lavenderblush", "lawngreen", "lemonchiffon", "lightblue", "lightcoral", "lightcyan", "lightgoldenrodyellow", "lightgray", "lightgreen", "lightpink", "lightsalmon", "lightseagreen", "lightskyblue", "lightslategray", "lightsteelblue", "lightyellow", "lime", "limegreen", "linen", "magenta", "maroon", "mediumaquamarine", "mediumblue", "mediumorchid", "mediumpurple", "mediumseagreen", "mediumslateblue", "mediumspringgreen", "mediumturquoise", "mediumvioletred", "midnightblue", "mintcream", "mistyrose", "moccasin", "navajowhite", "navy", "oldlace", "olive", "olivedrab", "orange", "orangered", "orchid", "palegoldenrod", "palegreen", "paleturquoise", "palevioletred", "papayawhip", "peachpuff", "peru", "pink", "plum", "powderblue", "purple", "rebeccapurple", "red", "rosybrown", "royalblue", "saddlebrown", "salmon", "sandybrown", "seagreen", "seashell", "sienna", "silver", "skyblue", "slateblue", "slategray", "snow", "springgreen", "steelblue", "tan", "teal", "thistle", "tomato", "turquoise", "violet", "wheat", "white", "whitesmoke", "yellow", "yellowgreen"], - x = e(b), - w = ["above", "absolute", "activeborder", "additive", "activecaption", "afar", "after-white-space", "ahead", "alias", "all", "all-scroll", "alphabetic", "alternate", "always", "amharic", "amharic-abegede", "antialiased", "appworkspace", "arabic-indic", "armenian", "asterisks", "attr", "auto", "avoid", "avoid-column", "avoid-page", "avoid-region", "background", "backwards", "baseline", "below", "bidi-override", "binary", "bengali", "blink", "block", "block-axis", "bold", "bolder", "border", "border-box", "both", "bottom", "break", "break-all", "break-word", "bullets", "button", "button-bevel", "buttonface", "buttonhighlight", "buttonshadow", "buttontext", "calc", "cambodian", "capitalize", "caps-lock-indicator", "caption", "captiontext", "caret", "cell", "center", "checkbox", "circle", "cjk-decimal", "cjk-earthly-branch", "cjk-heavenly-stem", "cjk-ideographic", "clear", "clip", "close-quote", "col-resize", "collapse", "color", "color-burn", "color-dodge", "column", "column-reverse", "compact", "condensed", "contain", "content", "content-box", "context-menu", "continuous", "copy", "counter", "counters", "cover", "crop", "cross", "crosshair", "currentcolor", "cursive", "cyclic", "darken", "dashed", "decimal", "decimal-leading-zero", "default", "default-button", "dense", "destination-atop", "destination-in", "destination-out", "destination-over", "devanagari", "difference", "disc", "discard", "disclosure-closed", "disclosure-open", "document", "dot-dash", "dot-dot-dash", "dotted", "double", "down", "e-resize", "ease", "ease-in", "ease-in-out", "ease-out", "element", "ellipse", "ellipsis", "embed", "end", "ethiopic", "ethiopic-abegede", "ethiopic-abegede-am-et", "ethiopic-abegede-gez", "ethiopic-abegede-ti-er", "ethiopic-abegede-ti-et", "ethiopic-halehame-aa-er", "ethiopic-halehame-aa-et", "ethiopic-halehame-am-et", "ethiopic-halehame-gez", "ethiopic-halehame-om-et", "ethiopic-halehame-sid-et", "ethiopic-halehame-so-et", "ethiopic-halehame-ti-er", "ethiopic-halehame-ti-et", "ethiopic-halehame-tig", "ethiopic-numeric", "ew-resize", "exclusion", "expanded", "extends", "extra-condensed", "extra-expanded", "fantasy", "fast", "fill", "fixed", "flat", "flex", "flex-end", "flex-start", "footnotes", "forwards", "from", "geometricPrecision", "georgian", "graytext", "grid", "groove", "gujarati", "gurmukhi", "hand", "hangul", "hangul-consonant", "hard-light", "hebrew", "help", "hidden", "hide", "higher", "highlight", "highlighttext", "hiragana", "hiragana-iroha", "horizontal", "hsl", "hsla", "hue", "icon", "ignore", "inactiveborder", "inactivecaption", "inactivecaptiontext", "infinite", "infobackground", "infotext", "inherit", "initial", "inline", "inline-axis", "inline-block", "inline-flex", "inline-grid", "inline-table", "inset", "inside", "intrinsic", "invert", "italic", "japanese-formal", "japanese-informal", "justify", "kannada", "katakana", "katakana-iroha", "keep-all", "khmer", "korean-hangul-formal", "korean-hanja-formal", "korean-hanja-informal", "landscape", "lao", "large", "larger", "left", "level", "lighter", "lighten", "line-through", "linear", "linear-gradient", "lines", "list-item", "listbox", "listitem", "local", "logical", "loud", "lower", "lower-alpha", "lower-armenian", "lower-greek", "lower-hexadecimal", "lower-latin", "lower-norwegian", "lower-roman", "lowercase", "ltr", "luminosity", "malayalam", "match", "matrix", "matrix3d", "media-controls-background", "media-current-time-display", "media-fullscreen-button", "media-mute-button", "media-play-button", "media-return-to-realtime-button", "media-rewind-button", "media-seek-back-button", "media-seek-forward-button", "media-slider", "media-sliderthumb", "media-time-remaining-display", "media-volume-slider", "media-volume-slider-container", "media-volume-sliderthumb", "medium", "menu", "menulist", "menulist-button", "menulist-text", "menulist-textfield", "menutext", "message-box", "middle", "min-intrinsic", "mix", "mongolian", "monospace", "move", "multiple", "multiply", "myanmar", "n-resize", "narrower", "ne-resize", "nesw-resize", "no-close-quote", "no-drop", "no-open-quote", "no-repeat", "none", "normal", "not-allowed", "nowrap", "ns-resize", "numbers", "numeric", "nw-resize", "nwse-resize", "oblique", "octal", "open-quote", "optimizeLegibility", "optimizeSpeed", "oriya", "oromo", "outset", "outside", "outside-shape", "overlay", "overline", "padding", "padding-box", "painted", "page", "paused", "persian", "perspective", "plus-darker", "plus-lighter", "pointer", "polygon", "portrait", "pre", "pre-line", "pre-wrap", "preserve-3d", "progress", "push-button", "radial-gradient", "radio", "read-only", "read-write", "read-write-plaintext-only", "rectangle", "region", "relative", "repeat", "repeating-linear-gradient", "repeating-radial-gradient", "repeat-x", "repeat-y", "reset", "reverse", "rgb", "rgba", "ridge", "right", "rotate", "rotate3d", "rotateX", "rotateY", "rotateZ", "round", "row", "row-resize", "row-reverse", "rtl", "run-in", "running", "s-resize", "sans-serif", "saturation", "scale", "scale3d", "scaleX", "scaleY", "scaleZ", "screen", "scroll", "scrollbar", "se-resize", "searchfield", "searchfield-cancel-button", "searchfield-decoration", "searchfield-results-button", "searchfield-results-decoration", "semi-condensed", "semi-expanded", "separate", "serif", "show", "sidama", "simp-chinese-formal", "simp-chinese-informal", "single", "skew", "skewX", "skewY", "skip-white-space", "slide", "slider-horizontal", "slider-vertical", "sliderthumb-horizontal", "sliderthumb-vertical", "slow", "small", "small-caps", "small-caption", "smaller", "soft-light", "solid", "somali", "source-atop", "source-in", "source-out", "source-over", "space", "space-around", "space-between", "spell-out", "square", "square-button", "start", "static", "status-bar", "stretch", "stroke", "sub", "subpixel-antialiased", "super", "sw-resize", "symbolic", "symbols", "table", "table-caption", "table-cell", "table-column", "table-column-group", "table-footer-group", "table-header-group", "table-row", "table-row-group", "tamil", "telugu", "text", "text-bottom", "text-top", "textarea", "textfield", "thai", "thick", "thin", "threeddarkshadow", "threedface", "threedhighlight", "threedlightshadow", "threedshadow", "tibetan", "tigre", "tigrinya-er", "tigrinya-er-abegede", "tigrinya-et", "tigrinya-et-abegede", "to", "top", "trad-chinese-formal", "trad-chinese-informal", "translate", "translate3d", "translateX", "translateY", "translateZ", "transparent", "ultra-condensed", "ultra-expanded", "underline", "up", "upper-alpha", "upper-armenian", "upper-greek", "upper-hexadecimal", "upper-latin", "upper-norwegian", "upper-roman", "uppercase", "urdu", "url", "var", "vertical", "vertical-text", "visible", "visibleFill", "visiblePainted", "visibleStroke", "visual", "w-resize", "wait", "wave", "wider", "window", "windowframe", "windowtext", "words", "wrap", "wrap-reverse", "x-large", "x-small", "xor", "xx-large", "xx-small"], - C = e(w), - k = n.concat(s).concat(a).concat(c).concat(h).concat(f).concat(b).concat(w); - t.registerHelper("hintWords", "css", k), t.defineMIME("text/css", { - documentTypes: r, - mediaTypes: o, - mediaFeatures: l, - mediaValueKeywords: u, - propertyKeywords: d, - nonStandardPropertyKeywords: p, - fontProperties: m, - counterDescriptors: y, - colorKeywords: x, - valueKeywords: C, - tokenHooks: { - "/": function(t, e) { - return !!t.eat("*") && (e.tokenize = i, i(t, e)) - } - }, - name: "css" - }), t.defineMIME("text/x-scss", { - mediaTypes: o, - mediaFeatures: l, - mediaValueKeywords: u, - propertyKeywords: d, - nonStandardPropertyKeywords: p, - colorKeywords: x, - valueKeywords: C, - fontProperties: m, - allowNested: !0, - tokenHooks: { - "/": function(t, e) { - return t.eat("/") ? (t.skipToEnd(), ["comment", "comment"]) : t.eat("*") ? (e.tokenize = i, i(t, e)) : ["operator", "operator"] - }, - ":": function(t) { - return !!t.match(/\s*\{/) && [null, "{"] - }, - $: function(t) { - return t.match(/^[\w-]+/), t.match(/^\s*:/, !1) ? ["variable-2", "variable-definition"] : ["variable-2", "variable"] - }, - "#": function(t) { - return !!t.eat("{") && [null, "interpolation"] - } - }, - name: "css", - helperType: "scss" - }), t.defineMIME("text/x-less", { - mediaTypes: o, - mediaFeatures: l, - mediaValueKeywords: u, - propertyKeywords: d, - nonStandardPropertyKeywords: p, - colorKeywords: x, - valueKeywords: C, - fontProperties: m, - allowNested: !0, - tokenHooks: { - "/": function(t, e) { - return t.eat("/") ? (t.skipToEnd(), ["comment", "comment"]) : t.eat("*") ? (e.tokenize = i, i(t, e)) : ["operator", "operator"] - }, - "@": function(t) { - return t.eat("{") ? [null, "interpolation"] : !t.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/, !1) && (t.eatWhile(/[\w\\\-]/), t.match(/^\s*:/, !1) ? ["variable-2", "variable-definition"] : ["variable-2", "variable"]) - }, - "&": function() { - return ["atom", "atom"] - } - }, - name: "css", - helperType: "less" - }), t.defineMIME("text/x-gss", { - documentTypes: r, - mediaTypes: o, - mediaFeatures: l, - propertyKeywords: d, - nonStandardPropertyKeywords: p, - fontProperties: m, - counterDescriptors: y, - colorKeywords: x, - valueKeywords: C, - supportsAtComponent: !0, - tokenHooks: { - "/": function(t, e) { - return !!t.eat("*") && (e.tokenize = i, i(t, e)) - } - }, - name: "css", - helperType: "gss" - }) - }) - }, function(t, e, i) { - ! function(e) { - function i(t, e) { - for (var i = t.length; i--;) - if (t[i] === e) return i; - return -1 - } - - function n(t, e) { - if (t.length != e.length) return !1; - for (var i = 0; i < t.length; i++) - if (t[i] !== e[i]) return !1; - return !0 - } - - function r(t) { - for (x in C) C[x] = t[P[x]] - } - - function s(t) { - var e, n, s, o, a, c; - if (e = t.keyCode, -1 == i(E, e) && E.push(e), 93 != e && 224 != e || (e = 91), e in C) { - C[e] = !0; - for (s in S) S[s] == e && (l[s] = !0) - } else if (r(t), l.filter.call(this, t) && e in w) - for (c = p(), o = 0; o < w[e].length; o++) - if (n = w[e][o], n.scope == c || "all" == n.scope) { - a = n.mods.length > 0; - for (s in C)(!C[s] && i(n.mods, +s) > -1 || C[s] && -1 == i(n.mods, +s)) && (a = !1); - (0 != n.mods.length || C[16] || C[18] || C[17] || C[91]) && !a || !1 === n.method(t, n) && (t.preventDefault ? t.preventDefault() : t.returnValue = !1, t.stopPropagation && t.stopPropagation(), t.cancelBubble && (t.cancelBubble = !0)) - } - } - - function o(t) { - var e, n = t.keyCode, - r = i(E, n); - if (r >= 0 && E.splice(r, 1), 93 != n && 224 != n || (n = 91), n in C) { - C[n] = !1; - for (e in S) S[e] == n && (l[e] = !1) - } - } - - function a() { - for (x in C) C[x] = !1; - for (x in S) l[x] = !1 - } - - function l(t, e, i) { - var n, r; - n = m(t), void 0 === i && (i = e, e = "all"); - for (var s = 0; s < n.length; s++) r = [], t = n[s].split("+"), t.length > 1 && (r = v(t), t = [t[t.length - 1]]), t = t[0], t = M(t), t in w || (w[t] = []), w[t].push({ - shortcut: n[s], - scope: e, - method: i, - key: n[s], - mods: r - }) - } - - function c(t, e) { - var i, r, s, o, a, l = []; - for (i = m(t), o = 0; o < i.length; o++) { - if (r = i[o].split("+"), r.length > 1 && (l = v(r), t = r[r.length - 1]), t = M(t), void 0 === e && (e = p()), !w[t]) return; - for (s = 0; s < w[t].length; s++) a = w[t][s], a.scope === e && n(a.mods, l) && (w[t][s] = {}) - } - } - - function u(t) { - return "string" == typeof t && (t = M(t)), -1 != i(E, t) - } - - function h() { - return E.slice(0) - } - - function d(t) { - var e = (t.target || t.srcElement).tagName; - return !("INPUT" == e || "SELECT" == e || "TEXTAREA" == e) - } - - function f(t) { - k = t || "all" - } - - function p() { - return k || "all" - } - - function g(t) { - var e, i, n; - for (e in w) - for (i = w[e], n = 0; n < i.length;) i[n].scope === t ? i.splice(n, 1) : n++ - } - - function m(t) { - var e; - return t = t.replace(/\s/g, ""), e = t.split(","), "" == e[e.length - 1] && (e[e.length - 2] += ","), e - } - - function v(t) { - for (var e = t.slice(0, t.length - 1), i = 0; i < e.length; i++) e[i] = S[e[i]]; - return e - } - - function y(t, e, i) { - t.addEventListener ? t.addEventListener(e, i, !1) : t.attachEvent && t.attachEvent("on" + e, function() { - i(window.event) - }) - } - - function b() { - var t = e.key; - return e.key = $, t - } - var x, w = {}, - C = { - 16: !1, - 18: !1, - 17: !1, - 91: !1 - }, - k = "all", - S = { - "⇧": 16, - shift: 16, - "⌥": 18, - alt: 18, - option: 18, - "⌃": 17, - ctrl: 17, - control: 17, - "⌘": 91, - command: 91 - }, - T = { - backspace: 8, - tab: 9, - clear: 12, - enter: 13, - return: 13, - esc: 27, - escape: 27, - space: 32, - left: 37, - up: 38, - right: 39, - down: 40, - del: 46, - delete: 46, - home: 36, - end: 35, - pageup: 33, - pagedown: 34, - ",": 188, - ".": 190, - "/": 191, - "`": 192, - "-": 189, - "=": 187, - ";": 186, - "'": 222, - "[": 219, - "]": 221, - "\\": 220 - }, - M = function(t) { - return T[t] || t.toUpperCase().charCodeAt(0) - }, - E = []; - for (x = 1; x < 20; x++) T["f" + x] = 111 + x; - var P = { - 16: "shiftKey", - 18: "altKey", - 17: "ctrlKey", - 91: "metaKey" - }; - for (x in S) l[x] = !1; - y(document, "keydown", function(t) { - s(t) - }), y(document, "keyup", o), y(window, "focus", a); - var $ = e.key; - e.key = l, e.key.setScope = f, e.key.getScope = p, e.key.deleteScope = g, e.key.filter = d, e.key.isPressed = u, e.key.getPressedKeyCodes = h, e.key.noConflict = b, e.key.unbind = c, t.exports = l - }(this) - }, function(t, e) { - var i; - i = function() { - return this - }(); - try { - i = i || Function("return this")() || (0, eval)("this") - } catch (t) { - "object" == typeof window && (i = window) - } - t.exports = i - }, function(t, e, i) { - "use strict"; - t.exports = function(t) { - var e = i(132), - n = i(129), - r = i(152), - s = new r, - o = []; - return { - editors: o, - plugins: s, - init: function(t) { - var i = t || {}, - r = i.container; - for (var a in e) a in i || (i[a] = e[a]); - if (!r) throw new Error("'container' is required"); - i.el = document.querySelector(r); - var l = new n(i).init(); - s.getAll(); - return i.plugins.forEach(function(t) { - var e = s.get(t); - e ? e(l, i.pluginsOpts[t] || {}) : console.warn("Plugin " + t + " not found") - }), i.autorender && l.render(), o.push(l), l - } - } - }() - }, function(t, e, i) { - "use strict"; - t.exports = { - assets: [], - stylePrefix: "am-", - upload: "http://localhost/assets/upload", - uploadText: "Drop files here or click to upload", - addBtnText: "Add image", - uploadFile: "" - } - }, function(t, e, i) { - "use strict"; - t.exports = function() { - var t, e, n, r = {}, - s = i(47), - o = i(49), - a = i(14); - return { - name: "AssetManager", - storageKey: "assets", - init: function(l) { - r = l || {}; - var c = i(44); - for (var u in c) u in r || (r[u] = c[u]); - var h = r.pStylePrefix; - h && (r.stylePrefix = h + r.stylePrefix), t = new s(r.assets); - var d = { - collection: t, - config: r - }; - return e = new o(d), n = new a(d), this - }, - add: function(e) { - return t.add(e) - }, - get: function(e) { - return t.where({ - src: e - })[0] - }, - getAll: function() { - return t - }, - remove: function(t) { - var e = this.get(t); - return this.getAll().remove(e), this - }, - store: function(t) { - var e = {}, - i = JSON.stringify(this.getAll().toJSON()); - return e[this.storageKey] = i, !t && r.stm && r.stm.store(e), e - }, - load: function(t) { - var e = t || "", - i = this.storageKey; - !e && r.stm && (e = r.stm.load(i)); - var n = e[i] || []; - if ("string" == typeof n) try { - n = JSON.parse(e[i]) - } catch (t) {} - return n && n.length && this.getAll().reset(n), n - }, - render: function(t) { - return this.rendered && !t || (this.rendered = e.render().$el.add(n.render().$el)), this.rendered - }, - setTarget: function(t) { - e.collection.target = t - }, - onSelect: function(t) { - e.collection.onSelect = t - }, - onClick: function(t) { - r.onClick = t - }, - onDblClick: function(t) { - r.onDblClick = t - } - } - } - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = (i(0), i(12)); - t.exports = n.extend({ - defaults: e.extend({}, n.prototype.defaults, { - type: "image", - unitDim: "px", - height: 0, - width: 0 - }) - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = (i(12), i(46)); - t.exports = n.Collection.extend({ - model: r, - initialize: function(t, e) { - this.model = function(t, e) { - return t.type, new r(t, e) - } - }, - addImg: function(t, e) { - return this.add({ - type: "image", - src: t - }, e), this - }, - add: function(t, e) { - var i = []; - t = t instanceof Array ? t : [t]; - for (var r = 0, s = t.length; r < s; r++) { - var o = t[r]; - if ("string" == typeof o && (o = { - src: o, - type: "image" - }), o && o.src) { - this.where({ - src: o.src - }).length || i.push(o) - } - } - return 1 == i.length && (i = i[0]), n.Collection.prototype.add.apply(this, [i, e]) - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(13); - t.exports = n.extend({ - events: { - click: "handleClick", - dblclick: "handleDblClick" - }, - template: e.template('\n
    \n
    \n
    \n
    \n
    \n\t
    <%= name %>
    \n\t
    <%= dim %>
    \n
    \n
    \n
    \n'), - initialize: function(t) { - n.prototype.initialize.apply(this, arguments), this.className += " " + this.pfx + "asset-image", this.events["click #" + this.pfx + "close"] = "removeItem", this.delegateEvents() - }, - handleClick: function() { - var t = this.config.onClick, - e = this.model; - e.collection.trigger("deselectAll"), this.$el.addClass(this.pfx + "highlight"), "function" == typeof t ? t(e) : this.updateTarget(e.get("src")) - }, - handleDblClick: function() { - var t = this.config.onDblClick, - e = this.model; - "function" == typeof t ? t(e) : this.updateTarget(e.get("src")); - var i = e.collection.onSelect; - "function" == typeof i && i(this.model) - }, - updateTarget: function(t) { - var i = this.model.collection.target; - if (i && i.set) { - var n = e.clone(i.get("attributes")); - i.set("attributes", n), i.set("src", t) - } - }, - removeItem: function(t) { - t.stopPropagation(), this.model.collection.remove(this.model) - }, - render: function() { - var t = this.model.get("name"), - e = this.model.get("width") && this.model.get("height") ? this.model.get("width") + " x " + this.model.get("height") : ""; - return t = t || this.model.get("src").split("/").pop(), t = t && t.length > 30 ? t.substring(0, 30) + "..." : t, e = e ? e + (this.model.get("unitDim") ? this.model.get("unitDim") : " px") : "", this.$el.html(this.template({ - name: t, - src: this.model.get("src"), - dim: e, - pfx: this.pfx, - ppfx: this.ppfx - })), this.$el.attr("class", this.className), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(13), - s = i(48); - i(14); - t.exports = n.View.extend({ - template: e.template('\n
    \n
    \n
    \n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n'), - initialize: function(t) { - this.options = t, this.config = t.config, this.pfx = this.config.stylePrefix || "", this.ppfx = this.config.pStylePrefix || "", this.listenTo(this.collection, "add", this.addToAsset), this.listenTo(this.collection, "deselectAll", this.deselectAll), this.listenTo(this.collection, "reset", this.render), this.className = this.pfx + "assets", this.events = {}, this.events.submit = "addFromStr", this.delegateEvents() - }, - addFromStr: function(t) { - t.preventDefault(); - var e = this.getInputUrl(), - i = e.value.trim(); - if (i) return this.collection.addImg(i, { - at: 0 - }), this.getAssetsEl().scrollTop = 0, e.value = "", this - }, - getAssetsEl: function() { - return this.assets = this.el.querySelector("." + this.pfx + "assets"), this.assets - }, - getInputUrl: function() { - return this.inputUrl && this.inputUrl.value || (this.inputUrl = this.el.querySelector("." + this.pfx + "add-asset input")), this.inputUrl - }, - addToAsset: function(t) { - this.addAsset(t) - }, - addAsset: function(t, e) { - var i = e || null, - n = r; - t.get("type").indexOf("image") > -1 && (n = s); - var o = new n({ - model: t, - config: this.config - }), - a = o.render().el; - if (i) i.appendChild(a); - else { - var l = this.getAssetsEl(); - l && l.insertBefore(a, l.firstChild) - } - return a - }, - deselectAll: function() { - this.$el.find("." + this.pfx + "highlight").removeClass(this.pfx + "highlight") - }, - render: function() { - var t = document.createDocumentFragment(); - return this.$el.empty(), this.collection.each(function(e) { - this.addAsset(e, t) - }, this), this.$el.html(this.template({ - pfx: this.pfx, - ppfx: this.ppfx, - btnText: this.config.addBtnText - })), this.$el.find("." + this.pfx + "assets").append(t), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - t.exports = { - blocks: [], - appendTo: "" - } - }, function(t, e, i) { - "use strict"; - t.exports = function() { - var t, e, n = {}, - r = i(50), - s = i(53), - o = i(54), - a = i(56), - l = []; - return { - name: "BlockManager", - init: function(i) { - n = i || {}; - for (var c in r) c in n || (n[c] = r[c]); - return t = new s(n.blocks), l = new o, e = new a({ - collection: t, - categories: l - }, n), this - }, - add: function(e, i) { - var n = i || {}; - return n.id = e, t.add(n) - }, - get: function(e) { - return t.get(e) - }, - getAll: function() { - return t - }, - getCategories: function() { - return l - }, - render: function() { - return e.render().el - } - } - } - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(15); - t.exports = n.Model.extend({ - defaults: { - label: "", - content: "", - category: "", - attributes: {} - }, - initialize: function() { - var t = (arguments.length > 0 && void 0 !== arguments[0] && arguments[0], this.get("category")); - if (t && "string" == typeof t) { - new r({ - id: t, - label: t - }) - } - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(52); - t.exports = n.Collection.extend({ - model: r - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Collection.extend({ - model: i(15) - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - events: { - mousedown: "onDrag" - }, - initialize: function(t, i) { - e.bindAll(this, "onDrop"), this.config = i || {}, this.ppfx = this.config.pStylePrefix || "", this.listenTo(this.model, "destroy", this.remove), this.doc = $(document) - }, - onDrag: function(t) { - if (0 === t.button && this.config.getSorter) { - this.config.em.refreshCanvas(); - var e = this.config.getSorter(); - e.setDragHelper(this.el, t), e.startSort(this.el), e.setDropContent(this.model.get("content")), this.doc.on("mouseup", this.onDrop) - } - }, - onDrop: function() { - this.doc.off("mouseup", this.onDrop), this.config.getSorter().endMove() - }, - render: function() { - var t = this.ppfx + "block"; - return this.$el.addClass(t), this.el.innerHTML = '
    ' + this.model.get("label") + "
    ", this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(55), - s = i(57); - t.exports = n.View.extend({ - initialize: function(t, i) { - e.bindAll(this, "getSorter", "onDrag", "onDrop"), this.config = i || {}, this.categories = t.categories || "", this.renderedCategories = []; - var n = this.config.pStylePrefix || ""; - this.ppfx = n, this.noCatClass = n + "blocks-no-cat", this.blockContClass = n + "blocks-c", this.catsClass = n + "block-categories", this.listenTo(this.collection, "add", this.addTo), this.em = this.config.em, this.tac = "test-tac", this.grabbingCls = this.ppfx + "grabbing", this.em && (this.config.getSorter = this.getSorter, this.canvas = this.em.get("Canvas")) - }, - getSorter: function() { - if (this.em) { - if (!this.sorter) { - var t = this.em.get("Utils"), - e = this.canvas; - this.sorter = new t.Sorter({ - container: e.getBody(), - placer: e.getPlacerEl(), - containerSel: "*", - itemSel: "*", - pfx: this.ppfx, - onStart: this.onDrag, - onEndMove: this.onDrop, - onMove: this.onMove, - document: e.getFrameEl().contentDocument, - direction: "a", - wmargin: 1, - nested: 1, - em: this.em, - canvasRelative: 1 - }) - } - return this.sorter - } - }, - onDrag: function(t) { - this.em.stopDefault(), this.em.trigger("block:drag:start", t) - }, - onMove: function(t) { - this.em.trigger("block:drag:move", t) - }, - onDrop: function(t) { - this.em.runDefault(), t && t.get && (t.get("activeOnRender") && (t.trigger("active"), t.set("activeOnRender", 0)), this.em.initChildrenComp(t)), this.em.trigger("block:drag:stop", t) - }, - addTo: function(t) { - this.add(t) - }, - add: function(t, e) { - var i = e || null, - n = new r({ - model: t, - attributes: t.get("attributes") - }, this.config), - o = n.render().el, - a = t.get("category"); - if (a && this.categories) { - "string" == typeof a && (a = { - id: a, - label: a - }); - var l = this.categories.add(a), - c = l.get("id"), - u = this.renderedCategories[c], - h = this.getCategoriesEl(); - return t.set("category", l), !u && h && (u = new s({ - model: l - }, this.config).render(), this.renderedCategories[c] = u, h.appendChild(u.el)), void(u && u.append(o)) - } - i ? i.appendChild(o) : this.append(o) - }, - getCategoriesEl: function() { - return this.catsEl || (this.catsEl = this.el.querySelector("." + this.catsClass)), this.catsEl - }, - getBlocksEl: function() { - return this.blocksEl || (this.blocksEl = this.el.querySelector("." + this.noCatClass + " ." + this.blockContClass)), this.blocksEl - }, - append: function(t) { - var e = this.getBlocksEl(); - e && e.appendChild(t) - }, - render: function() { - var t = (this.ppfx, document.createDocumentFragment()); - return this.catsEl = null, this.blocksEl = null, this.renderedCategories = [], this.el.innerHTML = '\n
    \n
    \n
    \n
    \n ', this.collection.each(function(e) { - this.add(e, t) - }, this), this.append(t), this.$el.addClass(this.blockContClass + "s"), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0); - t.exports = n.View.extend({ - template: e.template('\n
    \n \n <%= label %>\n
    \n
    \n '), - events: {}, - initialize: function() { - var t = (arguments.length > 0 && void 0 !== arguments[0] && arguments[0], arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}); - this.config = t; - var e = this.config.pStylePrefix || ""; - this.pfx = e, this.caretR = "fa fa-caret-right", this.caretD = "fa fa-caret-down", this.iconClass = e + "caret-icon", this.activeClass = e + "open", this.className = e + "block-category", this.events["click ." + e + "title"] = "toggle", this.listenTo(this.model, "change:open", this.updateVisibility), this.delegateEvents() - }, - updateVisibility: function() { - this.model.get("open") ? this.open() : this.close() - }, - open: function() { - this.el.className = this.className + " " + this.activeClass, this.getIconEl().className = this.iconClass + " " + this.caretD, this.getBlocksEl().style.display = "" - }, - close: function() { - this.el.className = this.className, this.getIconEl().className = this.iconClass + " " + this.caretR, this.getBlocksEl().style.display = "none" - }, - toggle: function() { - var t = this.model; - t.set("open", !t.get("open")) - }, - getIconEl: function() { - return this.iconEl || (this.iconEl = this.el.querySelector("." + this.iconClass)), this.iconEl - }, - getBlocksEl: function() { - return this.blocksEl || (this.blocksEl = this.el.querySelector("." + this.pfx + "blocks-c")), this.blocksEl - }, - append: function(t) { - this.getBlocksEl().appendChild(t) - }, - render: function() { - return this.el.innerHTML = this.template({ - pfx: this.pfx, - label: this.model.get("label") - }), this.el.className = this.className, this.updateVisibility(), this - } - }) - }).call(e, i(1)) - }, function(t, e, i) { - "use strict"; - t.exports = { - stylePrefix: "cv-", - rulers: !1, - scripts: [], - styles: [], - customBadgeLabel: "" - } - }, function(t, e, i) { - "use strict"; - t.exports = function() { - var t, e, n = {}, - r = i(58), - s = i(60), - o = i(62); - return { - getCanvasView: function() { - return o - }, - name: "Canvas", - init: function(e) { - n = e || {}; - for (var i in r) i in n || (n[i] = r[i]); - var a = n.pStylePrefix; - a && (n.stylePrefix = a + n.stylePrefix), t = new s(e), o = new o({ - model: t, - config: n - }); - var l = n.em.get("DomComponents"); - return l && this.setWrapper(l), this.startAutoscroll = this.startAutoscroll.bind(this), this.stopAutoscroll = this.stopAutoscroll.bind(this), this.autoscroll = this.autoscroll.bind(this), this - }, - getConfig: function() { - return n - }, - setWrapper: function(e) { - t.set("wrapper", e) - }, - getElement: function() { - return o.el - }, - getFrameEl: function() { - return o.frame.el - }, - getBody: function() { - return o.frame.el.contentDocument.body - }, - getWrapperEl: function() { - return this.getBody().querySelector("#wrapper") - }, - getToolsEl: function() { - return o.toolsEl - }, - getHighlighter: function() { - return o.hlEl - }, - getBadgeEl: function() { - return o.badgeEl - }, - getPlacerEl: function() { - return o.placerEl - }, - getGhostEl: function() { - return o.ghostEl - }, - getToolbarEl: function() { - return o.toolbarEl - }, - getResizerEl: function() { - return o.resizerEl - }, - getOffsetViewerEl: function() { - return o.offsetEl - }, - getFixedOffsetViewerEl: function() { - return o.fixedOffsetEl - }, - render: function() { - return o.render().el - }, - getOffset: function() { - var t = this.offset(this.getFrameEl()), - e = this.offset(this.getElement()); - return { - top: t.top - e.top, - left: t.left - e.left - } - }, - offset: function(t) { - var e = t.getBoundingClientRect(); - return { - top: e.top + document.body.scrollTop, - left: e.left + document.body.scrollLeft - } - }, - setCustomBadgeLabel: function(t) { - n.customBadgeLabel = t - }, - getElementPos: function(t, e) { - return o.getElementPos(t, e) - }, - getTargetToElementDim: function(t, e, i) { - var r = i || {}, - s = o.getPosition(), - a = r.elPos || o.getElementPos(e), - l = i.toRight || 0, - c = r.targetHeight || t.offsetHeight, - u = r.targetWidth || t.offsetWidth, - h = r.event || null, - d = a.top - c, - f = a.left; - f += l ? a.width : 0, f = l ? f - u : f; - var p = f < s.left ? s.left : f, - g = d < s.top ? s.top : d; - g = g > a.top + a.height ? a.top + a.height : g; - var m = { - top: g, - left: p, - elementTop: a.top, - elementLeft: a.left, - elementWidth: a.width, - elementHeight: a.height, - targetWidth: t.offsetWidth, - targetHeight: t.offsetHeight, - canvasTop: s.top, - canvasLeft: s.left - }; - return h && n.em && n.em.trigger(h, m), m - }, - getMouseRelativePos: function(t, e) { - var i = e || {}, - n = 0, - r = 0, - s = i.subWinOffset, - o = t.target.ownerDocument, - a = o.defaultView || o.parentWindow, - l = a.frameElement, - c = s ? a.pageYOffset : 0, - u = s ? a.pageXOffset : 0; - if (l) { - var h = l.getBoundingClientRect(); - n = h.top || 0, r = h.left || 0 - } - return { - y: t.clientY + n - c, - x: t.clientX + r - u - } - }, - getMouseRelativeCanvas: function(t, e) { - var i = this.getFrameEl(), - n = this.getBody(), - r = i.offsetTop || 0, - s = i.offsetLeft || 0, - o = n.scrollTop || 0, - a = n.scrollLeft || 0; - return { - y: t.clientY + r + o, - x: t.clientX + s + a - } - }, - startAutoscroll: function() { - this.dragging = 1; - var t = this.getScrollListeners(); - e = o.getFrameOffset(1), t.on("mousemove", this.autoscroll), t.on("mouseup", this.stopAutoscroll) - }, - autoscroll: function(t) { - if (t.preventDefault(), this.dragging) { - var i = this.getFrameEl().contentWindow, - n = i.document.body.scrollTop, - r = n, - s = t.clientY, - o = e.height - 50; - s < 50 && (r -= 50 - s), s > o && (r += s - o), i.scrollTo(0, r) - } - }, - stopAutoscroll: function() { - this.dragging = 0; - var t = this.getScrollListeners(); - t.off("mousemove", this.autoscroll), t.off("mouseup", this.stopAutoscroll) - }, - getScrollListeners: function() { - return this.scrollListeners || (this.scrollListeners = $(this.getFrameEl().contentWindow, this.getElement())), this.scrollListeners - }, - getFrameWrapperEl: function() { - return o.frame.getWrapper() - } - } - } - }, function(t, e, i) { - "use strict"; - var n = i(0), - r = i(61); - t.exports = n.Model.extend({ - defaults: { - frame: "", - wrapper: "", - rulers: !1 - }, - initialize: function(t) { - var e = this.conf || {}; - this.set("frame", new r(e.frame)) - } - }) - }, function(t, e, i) { - "use strict"; - var n = i(0); - t.exports = n.Model.extend({ - defaults: { - wrapper: "", - width: "", - height: "", - attributes: {} - } - }) - }, function(t, e, i) { - "use strict"; - (function(e) { - var n = i(0), - r = i(63); - t.exports = n.View.extend({ - initialize: function(t) { - e.bindAll(this, "renderBody", "onFrameScroll", "clearOff"), this.config = t.config || {}, this.em = this.config.em || {}, this.ppfx = this.config.pStylePrefix || "", this.className = this.config.stylePrefix + "canvas", this.listenTo(this.em, "change:canvasOffset", this.clearOff), this.frame = new r({ - model: this.model.get("frame"), - config: this.config - }) - }, - onFrameScroll: function() { - var t = this.frame.el.contentDocument.body; - this.toolsEl.style.top = "-" + t.scrollTop + "px", this.toolsEl.style.left = "-" + t.scrollLeft + "px", this.em.trigger("canvasScroll") - }, - renderScripts: function() { - var t = this.frame, - e = this; - t.el.onload = function() { - function i(n) { - if (n.length > 0) { - var r = document.createElement("script"); - r.type = "text/javascript", r.src = n.shift(), r.onerror = r.onload = i.bind(null, n), t.el.contentDocument.head.appendChild(r) - } else e.renderBody() - } - var n = e.config.scripts.slice(0); - i(n) - } - }, - renderBody: function() { - var t = this.model.get("frame").get("wrapper"), - e = this.config.em; - if (t) { - var i = this.ppfx, - n = this.frame.$el.contents().find("body"), - r = e.get("CssComposer"), - s = e.get("Config"), - o = this.config, - a = s.protectedCss, - l = ""; - o.styles.forEach(function(t) { - l += '' - }); - var c = "\n ." + i + "comp-selected{\n outline: 3px solid #3b97e3 !important\n }\n ." + i + "comp-selected-parent{\n outline: 2px solid #ffca6f !important\n }\n ", - u = "\n * {\n box-sizing: border-box;\n }\n html, body, #wrapper {\n min-height: 100%;\n }\n html {\n height: 100%;\n }\n body {\n margin: 0;\n height: auto;\n background-color: #fff\n }\n #wrapper {\n overflow: auto\n }\n ." + i + "dashed :not([contenteditable]) > *[data-highlightable]{outline: 1px dashed rgba(170,170,170,0.7); outline-offset: -2px}" + c + "." + i + "no-select{user-select: none; -webkit-user-select:none; -moz-user-select: none}." + i + "freezed{opacity: 0.5; pointer-events: none}." + i + "no-pointer{pointer-events: none}." + i + "plh-image{background:#f5f5f5; border:none; height:50px; width:50px; display:block; outline:3px solid #ffca6f; cursor:pointer}." + i + "grabbing{cursor: grabbing; cursor: -webkit-grabbing}* ::-webkit-scrollbar-track {background: rgba(0, 0, 0, 0.1)}* ::-webkit-scrollbar-thumb {background: rgba(255, 255, 255, 0.2)}* ::-webkit-scrollbar {width: 10px}" + (s.canvasCss || ""); - u += a || "", l && n.append(l), n.append(""), n.append(t.render()).append(r.render()), n.append(this.getJsContainer()), e.trigger("loaded"), this.frame.el.contentWindow.onscroll = this.onFrameScroll, this.frame.udpateOffset(); - var h = document, - d = this.frame.el.contentDocument; - d.addEventListener("keydown", function(t) { - h.dispatchEvent(new KeyboardEvent(t.type, t)) - }), d.addEventListener("keyup", function(t) { - h.dispatchEvent(new KeyboardEvent(t.type, t)) - }) - } - }, - offset: function(t) { - var e = t.getBoundingClientRect(), - i = t.ownerDocument.body; - return { - top: e.top + i.scrollTop, - left: e.left + i.scrollLeft, - width: e.width, - height: e.height - } - }, - clearOff: function() { - this.frmOff = null, this.cvsOff = null - }, - getFrameOffset: function() { - var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; - return this.frmOff && !t || (this.frmOff = this.offset(this.frame.el)), this.frmOff - }, - getCanvasOffset: function() { - return this.cvsOff || (this.cvsOff = this.offset(this.el)), this.cvsOff - }, - getElementPos: function(t, e) { - var i = e || {}, - n = this.getFrameOffset(), - r = this.getCanvasOffset(), - s = this.offset(t), - o = i.avoidFrameOffset ? 0 : n.top, - a = i.avoidFrameOffset ? 0 : n.left; - return { - top: s.top + o - r.top, - left: s.left + a - r.left, - height: t.offsetHeight, - width: t.offsetWidth - } - }, - getPosition: function() { - var t = this.frame.el.contentDocument.body, - e = this.getFrameOffset(), - i = this.getCanvasOffset(); - return { - top: e.top + t.scrollTop - i.top, - left: e.left + t.scrollLeft - i.left - } - }, - updateScript: function(t) { - t.scriptContainer || (t.scriptContainer = $("
    "), this.getJsContainer().append(t.scriptContainer.get(0))); - var e = t.model, - i = e.getId(); - t.el.id = i, t.scriptContainer.html(""), t.scriptContainer.append("', - attributes: { - class: 'fa fa-home', - title: 'Homepage' - }, - category: 'Static Components' - }); - - // Simple logo component - bm.add('logoComponent',{ - label: 'Logo', - content: '', - attributes: { - class: 'fa fa-google', - title: 'Logo' - }, - category: 'Static Components' - }); - - // Static components for page - bm.add('productContents', { - label: 'Product Content', - content: ''+ - '
    Our Top Grossing Products
    Title one
    Subtitle one
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title two
    Subtitle two
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title three
    Subtitle three
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title four
    Subtitle four
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title five
    Subtitle five
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title six
    Subtitle six
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    BEST PRODUCT OF ALL TIME

    Apple iPhone 6s with Free Vodafone RED Plan (Gold, 16GB)

    iPhone 6s - Take everything that made the previous generation great, and advance it to a new level. They’re made with 7000 Series aluminium, the strongest alloy we’ve ever used in an iPhone. They both feature Retina HD displays made from the strongest cover glass used on any smartphone in the world. And now they’re available in an elegant new rose gold finish.

    A breakthrough design. Pushed even further.

    ', - attributes: { - class: 'fa fa-file-o', - title: 'Content Block' - }, - category: 'Static Components' - }); - - // bm.add('bootstrapSlider',{ - // label: 'Bootstrap Slider', - // content: '', - // attributes: { - // class: 'fa fa-user', - // title: 'Bootstrap Slider' - // }, - // category: 'Custom Components' - // }); - - // Pre Defined Site Header - bm.add('siteHeader', { - label: 'Header', - content: ''+ - '
    ', - attributes: { - class: 'fa fa-file-text', - title: 'Header' - }, - category: 'Ecommerce Components' - }); - - // Flipkart Like header - bm.add('siteHeaderNew', { - label: 'Ecommerce Navabr', - content: ''+ - ''+ - '
    ', - attributes: { - class: 'fa fa-file-code-o', - title: 'Ecommerce Navbar' - }, - category: 'Ecommerce Components' - }); - - // Predefined footer matching with Flipkart like Header - bm.add('footer',{ - label: 'Footer & Copyright', - content: ''+ - '
    ', - attributes: { - class: 'fa fa-html5', - title: 'Footer & Copyright' - }, - category: 'Ecommerce Components' - }); - - // Dynamic navigation menu from JSON created from menu builder - bm.add('navMenu',{ - label: 'Navbar Menu', - content: ''+ - '', - attributes: { - class: 'fa fa-bars', - title: 'Navigation Menu' - }, - category: 'Ecommerce Components' - }); - - // Lisiting Page sidebar filters - bm.add('filters', { - label: 'Product Filters', - content: ''+ - '', - attributes: { - class: 'fa fa-filter', - title: 'Product Filters' - }, - category: 'Ecommerce Components' - }); - - // Custom droppable block of product listing - bm.add('productListing', { - label: 'Product Listing', - content: ''+ - ''+ - '

    Product Title

    Product Sescription

    US

    Save 25% $ 10.99

    starting at $ 10.99

    '+ - ''+ - '
    ', - attributes: { - class: 'fa fa-home', - title: 'Homepage' - }, - category: 'Static Components' - }); - - // Header Layout - bm.add('Header-1', { - label: 'Header-1', - content: 'Header-1
    ', - attributes: { - class: 'fa fa-header', - title: 'Header-1' - }, - category: 'Header' - }); - - // Header Layout - bm.add('Header-2', { - label: 'Header-2', - content: 'Basic Header
    ', - attributes: { - class: 'fa fa-header', - title: 'Header-2' - }, - category: 'Header' - }); - - // Header Layout - bm.add('Header-3', { - label: 'Header-3', - content: 'Login, Sign up Header', - attributes: { - class: 'fa fa-header', - title: 'Header-3' - }, - category: 'Header' - }); - - // Header Layout - bm.add('Header-4', { - label: 'Header-4', - content: 'Second Bar Header
    ', - attributes: { - class: 'fa fa-header', - title: 'Header-4' - }, - category: 'Header' - }); - - // Header Layout - bm.add('Header-5', { - label: 'Header-5', - content: 'User Dropdown Header
    ', - attributes: { - class: 'fa fa-header', - title: 'Header-5' - }, - category: 'Header' - }); - - // Footer Layout - bm.add('Footer-1', { - label: 'Footer-1', - content: 'Distributed Footer', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-1' - }, - category: 'Footer' - }); - - // Footer Layout - bm.add('Footer-2', { - label: 'Footer-2', - content: 'Footer With Address And Phones
    ', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-2' - }, - category: 'Footer' - }); - - // Footer Layout - bm.add('Footer-3', { - label: 'Footer-3', - content: 'Footer Distributed With Contact Form', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-3' - }, - category: 'Footer' - }); - - // Footer Layout - bm.add('Footer-4', { - label: 'Footer-4', - content: 'Footer with a Search Form', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-4' - }, - category: 'Footer' - }); - - // Footer Layout - bm.add('Footer-5', { - label: 'Footer-5', - content: 'Basic, Centered Footer', - attributes: { - class: 'fa fa-square-o', - title: 'Footer-5' - }, - category: 'Footer' - }); -// Login Layout - bm.add('Login-1', { - label: 'Login-1', - content: ' Login Form ', - attributes: { - class: 'fa fa-user-o', - title: 'Login-1' - }, - category: 'Login' - }); - - // Login Layout - bm.add('Login-2', { - label: 'Login-2', - content: ' ', - attributes: { - class: 'fa fa-user-o', - title: 'Login-2' - }, - category: 'Login' - }); - - // Login Layout - bm.add('Login-3', { - label: 'Login-3', - content: '

    Dashboard

    Sign In
    Sign Up

    Forgot your password? Click Here!

    ', - attributes: { - class: 'fa fa-user-o', - title: 'Login-3' - }, - category: 'Login' - }); - - // Login Layout - bm.add('Login-4', { - label: 'Login-4', - content: ' Simple login form
    ', - attributes: { - class: 'fa fa-user-o', - title: 'Login-4' - }, - category: 'Login' - }); - - // Search Layout - bm.add('search', { - label: 'search', - content: 'search', - attributes: { - class: 'fa fa-search', - title: 'search' - }, - category: 'Search' - }); - - // Simple logo component - bm.add('logo',{ - label: 'Logo', - content: '', - attributes: { - class: 'fa fa-google', - title: 'Logo' - }, - category: 'Static Components' - }); - - // Static components for page - bm.add('productContents', { - label: 'Product Content', - content: ''+ - '
    Our Top Grossing Products
    Title one
    Subtitle one
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title two
    Subtitle two
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title three
    Subtitle three
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title four
    Subtitle four
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title five
    Subtitle five
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    Title six
    Subtitle six
    Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
    BEST PRODUCT OF ALL TIME

    Apple iPhone 6s with Free Vodafone RED Plan (Gold, 16GB)

    iPhone 6s - Take everything that made the previous generation great, and advance it to a new level. They’re made with 7000 Series aluminium, the strongest alloy we’ve ever used in an iPhone. They both feature Retina HD displays made from the strongest cover glass used on any smartphone in the world. And now they’re available in an elegant new rose gold finish.

    A breakthrough design. Pushed even further.

    ', - attributes: { - class: 'fa fa-file-o', - title: 'Content Block' - }, - category: 'Static Components' - }); - - // bm.add('bootstrapSlider',{ - // label: 'Bootstrap Slider', - // content: '', - // attributes: { - // class: 'fa fa-user', - // title: 'Bootstrap Slider' - // }, - // category: 'Custom Components' - // }); - - // Pre Defined Site Header - bm.add('siteHeader', { - label: 'Header', - content: ''+ - '
    ', - attributes: { - class: 'fa fa-file-text', - title: 'Header' - }, - category: 'Ecommerce Components' - }); - - // Flipkart Like header - bm.add('siteHeaderNew', { - label: 'Ecommerce Navabr', - content: ''+ - ''+ - '
    ', - attributes: { - class: 'fa fa-file-code-o', - title: 'Ecommerce Navbar' - }, - category: 'Ecommerce Components' - }); - - // Predefined footer matching with Flipkart like Header - bm.add('footer',{ - label: 'Footer & Copyright', - content: ''+ - '
    ', - attributes: { - class: 'fa fa-html5', - title: 'Footer & Copyright' - }, - category: 'Ecommerce Components' - }); - - // Dynamic navigation menu from JSON created from menu builder - bm.add('navMenu',{ - label: 'Navbar Menu', - content: ''+ - '', - attributes: { - class: 'fa fa-bars', - title: 'Navigation Menu' - }, - category: 'Ecommerce Components' - }); - - // Lisiting Page sidebar filters - bm.add('filters', { - label: 'Product Filters', - content: ''+ - '', - attributes: { - class: 'fa fa-filter', - title: 'Product Filters' - }, - category: 'Ecommerce Components' - }); - - // Custom droppable block of product listing - bm.add('productListing', { - label: 'Product Listing', - content: ''+ - ''+ - '

    Product Title

    Product Sescription

    US

    Save 25% $ 10.99

    starting at $ 10.99

    '+ - ''+ - '
    - - diff --git a/client/src/api/approval/index.js b/client/src/api/approval/index.js deleted file mode 100644 index bd4b0b8..0000000 --- a/client/src/api/approval/index.js +++ /dev/null @@ -1,69 +0,0 @@ -import api from '../../api' -let model = 'approval' -export default { - // let gets = async function (id) { - // return true; - // }, - // get: (id) => { - // if (id === undefined) { - // return api.request('get', '/' + model) - // } else { - // return api.request('get', '/' + model + '/' + id) - // } - // } - get: (rowId) => { - if (rowId === undefined) { - return api.request('get', '/' + model) - .then(response => { - return response.data.data - }) - .catch(error => { - throw error - }) - } else { - return api.request('get', '/' + model + '/' + rowId) - .then(response => { - return response.data - }) - .catch(error => { - console.log(error) - }) - } - }, - getOne: (rowId) => { - return api.request('get', '/' + model + '/' + rowId) - .then(response => { - return response.data - }) - .catch(error => { - console.log(error) - }) - }, - delete: (rowId) => { - return api.request('delete', '/' + model + '/' + rowId) - .then(response => { - return ({ 'status': 'success', 'message': 'Record deleted sucessfully;' }) - }) - .catch(error => { - return ({ 'status': 'error', 'message': error }) - }) - }, - add: (data) => { - return api.request('post', '/' + model, data) - .then(response => { - return ({ 'status': 'success', 'message': 'Record Inserted sucessfully;' }) - }) - .catch(error => { - console.log(error) - }) - }, - update: (data, id) => { - return api.request('put', '/' + model + '/' + id, data) - .then(response => { - return ({ 'status': 'success', 'message': 'Record updated sucessfully;' }) - }) - .catch(error => { - console.log(error) - }) - } -} diff --git a/client/src/api/approvalrole/index.js b/client/src/api/approvalrole/index.js deleted file mode 100644 index f2e17da..0000000 --- a/client/src/api/approvalrole/index.js +++ /dev/null @@ -1,23 +0,0 @@ -import axios from 'axios' -import config from '../../config' -export default { - get: (roleName) => { - if (!roleName) { - return axios.get(config.approvalRoleURI + 'getroles') - .then(response => { - return response.data.data.roles - }) - .catch(error => { - console.log('Error : ', error) - }) - } else { - return axios.get(config.approvalRoleURI + 'userslist/' + roleName) - .then(response => { - return response.data.data.roles - }) - .catch(error => { - console.log('Error : ', error) - }) - } - } -} diff --git a/client/src/api/databases/index.js b/client/src/api/databases/index.js deleted file mode 100644 index e2cec4c..0000000 --- a/client/src/api/databases/index.js +++ /dev/null @@ -1,26 +0,0 @@ -import api from '../../api' -let model = 'databases' -export default { - get: (id = null, params = null) => { - if (id === null) { - return api.request('get', '/' + model, null, params) - } else { - return api.request('get', '/' + model + '/' + id) - } - }, - getCustom: (string) => { - return api.request('get', '/' + model + string) - }, - post: (data) => { - return api.request('post', '/' + model, data) - }, - put: (id, data) => { - return api.request('put', '/' + model + '/' + id, data) - }, - patch: (id, data) => { - return api.request('patch', '/' + model + '/' + id, data) - }, - delete: (id) => { - return api.request('delete', '/' + model + '/' + id) - } -} diff --git a/client/src/api/flowzinstance/index.js b/client/src/api/flowzinstance/index.js deleted file mode 100644 index 4fc623f..0000000 --- a/client/src/api/flowzinstance/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import api from '../../api' -let model = 'flowz-instance' -export default { - get: (params = null, headers = null) => { - console.log('headers', headers) - return api.request('get', '/' + model, null, params, headers) - }, - getThis: (id, params = null, headers = null) => { - return api.request('get', '/' + model + '/' + id, null, params, headers) - }, - getByfid: (fid, params = null, headers = null) => { - return api.request('get', '/' + model + '?fid=' + fid, null, params, headers) - }, - post: (data, params = null, headers = null) => { - return api.request('post', '/' + model, data, null, params, headers) - }, - put: (id, data, params = null, headers = null) => { - return api.request('put', '/' + model + '/' + id, data, null, params, headers) - } -} diff --git a/client/src/api/instance/index.js b/client/src/api/instance/index.js deleted file mode 100644 index 0e430e5..0000000 --- a/client/src/api/instance/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import api from '../../api' -let model = 'instance' - // let model = 'instance-test' -export default { - // let gets = async function (id) { - // return true; - // }, - get: () => { - return api.request('get', '/' + model) - }, - getThis: (id, Schemaid) => { - return api.request('get', '/' + model + '/' + id + '?schemaid=' + Schemaid) - }, - post: (data) => { - return api.request('post', '/' + model, data) - }, - put: (id, data) => { - return api.request('pot', '/' + model + '/' + id, data) - } -} diff --git a/client/src/api/logs/index.js b/client/src/api/logs/index.js deleted file mode 100644 index 16f1ecf..0000000 --- a/client/src/api/logs/index.js +++ /dev/null @@ -1,20 +0,0 @@ -import api from '../../api' -let model = 'logs' -export default { - get: (id) => { - if (id === undefined) { - return api.request('get', '/' + model) - } else { - return api.request('get', '/' + model + '?fId=' + id) - } - }, - getThis: (id) => { - return api.request('get', '/' + model + '/' + id) - }, - post: (data) => { - return api.request('post', '/' + model, data) - }, - put: (id, data) => { - return api.request('put', '/' + model + '/' + id, data) - } -} diff --git a/client/src/api/schemamapping/index.js b/client/src/api/schemamapping/index.js deleted file mode 100644 index 36388a4..0000000 --- a/client/src/api/schemamapping/index.js +++ /dev/null @@ -1,35 +0,0 @@ -import api from '../../api' -let model = 'schemamapping' -export default { - get: (id = null, params = null) => { - if (id === null) { - return api.request('get', '/' + model, null, params) - } else { - return api.request('get', '/' + model + '/' + id) - } - }, - getAll: () => { - return api.request('get', '/' + model + '?$paginate=false') - }, - post: (data) => { - return api.request('post', '/' + model, data) - .then(response => { - return ({ 'status': 'success', 'message': 'Mapping Inserted sucessfully;' }) - }) - .catch(error => { - return ({ 'status': 'error', 'message': error }) - }) - }, - deleteThis: (id) => { - return api.request('delete', '/' + model + '/' + id) - }, - update: (data, id) => { - return api.request('put', '/' + model + '/' + id, data) - .then(response => { - return ({ 'status': 'success', 'message': 'Schema Mapping updated sucessfully;' }) - }) - .catch(error => { - return ({ 'status': 'error', 'message': error }) - }) - } -} diff --git a/client/src/api/user/index.js b/client/src/api/user/index.js deleted file mode 100644 index 7e84bab..0000000 --- a/client/src/api/user/index.js +++ /dev/null @@ -1,24 +0,0 @@ -import api from '../../api' -let model = 'usermaster' -export default { - get: (id) => { - if (id === undefined) { - return api.request('get', '/' + model) - } else { - return api.request('get', '/' + model + '/' + id) - } - }, - getByParam: (param) => { - // 'http://172.16.160.117:3030/usermaster?emailId='+self.formInline.Email - return api.request('get', '/' + model + '?email=' + param) - }, - post: (data) => { - return api.request('post', '/' + model, data) - }, - put: (id, data) => { - return api.request('put', '/' + model + '/' + id, data) - }, - delete: (id) => { - return api.request('delete', '/' + model + '/' + id) - } -} diff --git a/client/src/components/GrapesComponent.vue b/client/src/components/GrapesComponent.vue deleted file mode 100644 index 128ea50..0000000 --- a/client/src/components/GrapesComponent.vue +++ /dev/null @@ -1,626 +0,0 @@ - - - - - - - diff --git a/client/src/components/MjmlEditor.vue b/client/src/components/MjmlEditor.vue deleted file mode 100644 index 53510da..0000000 --- a/client/src/components/MjmlEditor.vue +++ /dev/null @@ -1,130 +0,0 @@ - - - - - - diff --git a/client/src/components/Tab.vue b/client/src/components/Tab.vue deleted file mode 100644 index 57cdc1c..0000000 --- a/client/src/components/Tab.vue +++ /dev/null @@ -1,80 +0,0 @@ - - diff --git a/client/src/components/erow_instancelist.vue b/client/src/components/erow_instancelist.vue deleted file mode 100644 index 40d0926..0000000 --- a/client/src/components/erow_instancelist.vue +++ /dev/null @@ -1,43 +0,0 @@ - - diff --git a/client/src/components/erow_mappinglist.vue b/client/src/components/erow_mappinglist.vue deleted file mode 100644 index 7acc902..0000000 --- a/client/src/components/erow_mappinglist.vue +++ /dev/null @@ -1,46 +0,0 @@ - - diff --git a/client/src/components/expand-process.vue b/client/src/components/expand-process.vue deleted file mode 100644 index 7a31e73..0000000 --- a/client/src/components/expand-process.vue +++ /dev/null @@ -1,22 +0,0 @@ - - - \ No newline at end of file diff --git a/client/src/components/gridmanager.vue b/client/src/components/gridmanager.vue deleted file mode 100644 index d5548e9..0000000 --- a/client/src/components/gridmanager.vue +++ /dev/null @@ -1,69 +0,0 @@ - - - diff --git a/client/src/components/mycustom.vue b/client/src/components/mycustom.vue deleted file mode 100644 index 563d418..0000000 --- a/client/src/components/mycustom.vue +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/client/src/components/subscription.vue b/client/src/components/subscription.vue index e99a622..6da42d9 100644 --- a/client/src/components/subscription.vue +++ b/client/src/components/subscription.vue @@ -6,8 +6,6 @@
    diff --git a/client/src/layout/Master.vue b/client/src/layout/Master.vue deleted file mode 100644 index 451423a..0000000 --- a/client/src/layout/Master.vue +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - diff --git a/client/src/layout/SideBar.vue b/client/src/layout/SideBar.vue deleted file mode 100644 index 1772393..0000000 --- a/client/src/layout/SideBar.vue +++ /dev/null @@ -1,812 +0,0 @@ - - - - \ No newline at end of file diff --git a/client/src/layout/user/Common.vue b/client/src/layout/user/Common.vue deleted file mode 100644 index e2febc6..0000000 --- a/client/src/layout/user/Common.vue +++ /dev/null @@ -1,45 +0,0 @@ - - - - diff --git a/client/src/layout/user/CommonHeader.vue b/client/src/layout/user/CommonHeader.vue deleted file mode 100644 index fe6320f..0000000 --- a/client/src/layout/user/CommonHeader.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - diff --git a/client/src/layout/user/Footer.vue b/client/src/layout/user/Footer.vue deleted file mode 100644 index 710a73b..0000000 --- a/client/src/layout/user/Footer.vue +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/client/src/layout/user/Header.vue b/client/src/layout/user/Header.vue deleted file mode 100644 index 4e93ec1..0000000 --- a/client/src/layout/user/Header.vue +++ /dev/null @@ -1,106 +0,0 @@ - - diff --git a/client/src/layout/user/Master.vue b/client/src/layout/user/Master.vue deleted file mode 100644 index a794b00..0000000 --- a/client/src/layout/user/Master.vue +++ /dev/null @@ -1,68 +0,0 @@ - - - - - \ No newline at end of file diff --git a/client/src/layout/user/SideBar.vue b/client/src/layout/user/SideBar.vue deleted file mode 100644 index b1ba40d..0000000 --- a/client/src/layout/user/SideBar.vue +++ /dev/null @@ -1,280 +0,0 @@ - - - - - diff --git a/client/src/main.js b/client/src/main.js index 311112b..16b0219 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -103,10 +103,6 @@ var router = new VueRouter({ } }) -// iView.LoadingBar.config({ -// color: '#5cb85c', -// height: 5 -// }) iView.LoadingBar.config({ color: '#5cb85c', failedColor: '#f0ad4e', diff --git a/client/src/masterLayout/SideBar.vue b/client/src/masterLayout/SideBar.vue index 2a26a79..df13f85 100644 --- a/client/src/masterLayout/SideBar.vue +++ b/client/src/masterLayout/SideBar.vue @@ -101,9 +101,7 @@ export default { for (let key in array) { allProcess.push(array[key]) } - return allProcess.sort((a, b) => { - return a.order - b.order - }) + return allProcess }, createInstance (item, subItemID) { // console.log('item', item) @@ -195,7 +193,7 @@ export default { // console.log('flowzList', this.flowzList) this.setCounters() } else { - await flowzModal.get(null, { + flowzModal.get(null, { $paginate: false }) .then(async (response) => { @@ -240,7 +238,7 @@ export default { mData.role = item.role fData.push(mData) } else { - await flowzModal.get(id, { + flowzModal.get(id, { $select: ['id', 'json'] }, { workflowid: 'workflow_' + id diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index f1587f5..4c3d922 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -103,10 +103,7 @@ - diff --git a/client/src/pages/approval/List.vue b/client/src/pages/approval/List.vue deleted file mode 100644 index 412d383..0000000 --- a/client/src/pages/approval/List.vue +++ /dev/null @@ -1,160 +0,0 @@ - - - - diff --git a/client/src/pages/approval/MailReply.vue b/client/src/pages/approval/MailReply.vue deleted file mode 100644 index 5f8bbcb..0000000 --- a/client/src/pages/approval/MailReply.vue +++ /dev/null @@ -1,302 +0,0 @@ - - - diff --git a/client/src/pages/approval/New.vue b/client/src/pages/approval/New.vue deleted file mode 100644 index 85619ee..0000000 --- a/client/src/pages/approval/New.vue +++ /dev/null @@ -1,332 +0,0 @@ - - - - - diff --git a/client/src/pages/approval/PropertyManage.vue b/client/src/pages/approval/PropertyManage.vue deleted file mode 100644 index 34afd21..0000000 --- a/client/src/pages/approval/PropertyManage.vue +++ /dev/null @@ -1,549 +0,0 @@ - - - diff --git a/client/src/pages/approval/View.vue b/client/src/pages/approval/View.vue deleted file mode 100644 index 7d3e137..0000000 --- a/client/src/pages/approval/View.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - - diff --git a/client/src/pages/approval/expand-FormReply.vue b/client/src/pages/approval/expand-FormReply.vue deleted file mode 100644 index 32267c3..0000000 --- a/client/src/pages/approval/expand-FormReply.vue +++ /dev/null @@ -1,61 +0,0 @@ - - diff --git a/client/src/pages/dbSettings/List.vue b/client/src/pages/dbSettings/List.vue deleted file mode 100644 index 2507e34..0000000 --- a/client/src/pages/dbSettings/List.vue +++ /dev/null @@ -1,672 +0,0 @@ - - diff --git a/client/src/pages/dbSettings/New.vue b/client/src/pages/dbSettings/New.vue deleted file mode 100644 index 415ba46..0000000 --- a/client/src/pages/dbSettings/New.vue +++ /dev/null @@ -1,317 +0,0 @@ - - - - diff --git a/client/src/pages/flow/FlowOverview.vue b/client/src/pages/flow/FlowOverview.vue deleted file mode 100644 index 9011ce4..0000000 --- a/client/src/pages/flow/FlowOverview.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index b145ccc..32d4f29 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -11,8 +11,7 @@
    - -

    {{titleCase(selectedFlowName)}}

    +

    {{titleCase(selectedFlowName)}}

    @@ -23,8 +22,7 @@ @@ -162,71 +121,6 @@ - - - - - - - @@ -237,97 +131,21 @@ - - - - - \ No newline at end of file diff --git a/client/src/pages/schema/Mapping.vue b/client/src/pages/schema/Mapping.vue deleted file mode 100644 index 8edce18..0000000 --- a/client/src/pages/schema/Mapping.vue +++ /dev/null @@ -1,11 +0,0 @@ - - - diff --git a/client/src/pages/schema/mapping/List.vue b/client/src/pages/schema/mapping/List.vue deleted file mode 100644 index a8794b2..0000000 --- a/client/src/pages/schema/mapping/List.vue +++ /dev/null @@ -1,183 +0,0 @@ - - \ No newline at end of file diff --git a/client/src/pages/schema/mapping/New.vue b/client/src/pages/schema/mapping/New.vue deleted file mode 100644 index 39ebf00..0000000 --- a/client/src/pages/schema/mapping/New.vue +++ /dev/null @@ -1,404 +0,0 @@ - - - - \ No newline at end of file diff --git a/client/src/pages/schema/schemaList.vue b/client/src/pages/schema/schemaList.vue index bbaf26e..919730b 100644 --- a/client/src/pages/schema/schemaList.vue +++ b/client/src/pages/schema/schemaList.vue @@ -15,9 +15,7 @@ diff --git a/client/src/userLayout/Master.vue b/client/src/userLayout/Master.vue deleted file mode 100644 index 3fbedc8..0000000 --- a/client/src/userLayout/Master.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - \ No newline at end of file diff --git a/client/src/userLayout/SideBar.vue b/client/src/userLayout/SideBar.vue deleted file mode 100644 index 9710518..0000000 --- a/client/src/userLayout/SideBar.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - diff --git a/service/src/app.js b/service/src/app.js index c6af535..789bdfa 100644 --- a/service/src/app.js +++ b/service/src/app.js @@ -12,13 +12,6 @@ const rest = require('feathers-rest'); const socketio = require('feathers-socketio'); const handler = require('feathers-errors/handler'); -// const feathers = require('@feathersjs/feathers'); -// const express = require('@feathersjs/express'); -// const configuration = require('@feathersjs/configuration'); -// const rest = require('@feathersjs/express/rest'); -// const socketio = require('@feathersjs/socketio'); - -// const handler = require('@feathersjs/express/errors'); const notFound = require('feathers-errors/not-found'); const middleware = require('./middleware'); @@ -29,7 +22,6 @@ const rethinkdb = require('./rethinkdb'); const subscription = require('flowz-subscription'); const app = feathers(); -// const app = express(feathers()); // Load app configuration app.configure(configuration()); diff --git a/service/src/services/DBConnection/DBConnection.js b/service/src/services/DBConnection/DBConnection.js deleted file mode 100644 index 0d69910..0000000 --- a/service/src/services/DBConnection/DBConnection.js +++ /dev/null @@ -1,55 +0,0 @@ -// let async = require('asyncawait/async'); -// let await = require('asyncawait/await'); -// var axios = require('axios'); -// var fs = require('fs'); -// var path = require('path'); -// var db = './db.json'; -// var file = require(db); -// let dbapi; - -// if (file.mongo.isdefault == 'true') { -// console.log('***************inside mongo api****************'); -// dbapi = require('./mongoapi') -// } else if (file.rethink.isdefault == 'true') { -// console.log('***************inside rethink api**************'); -// dbapi = require('./rethinkapi') -// } else if (file.elastic.isdefault == 'true') { -// console.log('***************inside elastic api**************'); -// dbapi = require('./elasticapi') -// } - -// var chokidar = require('chokidar'); - -// let readfile = async (function(){ -// fs.readFile(__dirname+ '/db.json', function (err, data) { -// if (err) return console.log(err); -// console.log('reading file' + data) -// let check = JSON.parse(data) -// if (check.mongo.isdefault == 'true') { -// // console.log('***************inside mongo api****************'); -// dbapi = require('./mongoapi') -// dbapi.choose(); -// } else if (check.rethink.isdefault == 'true') { -// // console.log('***************inside rethink api**************'); -// dbapi = require('./rethinkapi') -// dbapi.choose(); -// } else if (check.elastic.isdefault == 'true') { -// // console.log('***************inside rethink api**************'); -// dbapi = require('./elasticapi') -// dbapi.choose(); -// } -// }); -// }) - -// // One-liner for current directory, ignores .dotfiles -// chokidar.watch('.', {ignored: /(^|[\/\\])\../}).on('change',async (function(path) { -// console.log('File', path, 'has been changed'); -// delete require.cache[require.resolve('../schema/schema.class')]; -// delete require.cache[require.resolve('../instance/instance.class')]; -// delete require.cache[require.resolve('./mongoapi')]; -// delete require.cache[require.resolve('./rethinkapi')]; -// delete require.cache[require.resolve('./elasticapi')]; -// await(readfile); -// })) -// //console.log(api.get()) -// module.exports = dbapi; \ No newline at end of file diff --git a/service/src/services/DBConnection/bpmnplugins.json b/service/src/services/DBConnection/bpmnplugins.json deleted file mode 100644 index 15eb7e5..0000000 --- a/service/src/services/DBConnection/bpmnplugins.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "plugins": [{ - "name": "", - "icon": "", - "input": [{}], - "output": [ - {}, {}, {} - ] - }] -} \ No newline at end of file diff --git a/service/src/services/DBConnection/ca.crt b/service/src/services/DBConnection/ca.crt deleted file mode 100644 index e7f92d4..0000000 --- a/service/src/services/DBConnection/ca.crt +++ /dev/null @@ -1,21 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDbzCCAlegAwIBAgIEWiAURDANBgkqhkiG9w0BAQ0FADA5MTcwNQYDVQQDDC5G -bG93eiBEaWdpdGFsLWUyZDAwMmFkMzA1NzI0NzZiYWQxOTRiNTk1MTdhYWFjMB4X -DTE3MTEzMDE0MjMwMFoXDTM3MTEzMDE0MDAwMFowOTE3MDUGA1UEAwwuRmxvd3og -RGlnaXRhbC1lMmQwMDJhZDMwNTcyNDc2YmFkMTk0YjU5NTE3YWFhYzCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAN1+3KkM9hzxjJCPJTX5a9MieM0IJfrC -CUnaBD1Dlx8fzEYyg6+pKBcbMZ5jRe61vh0nE0KNqTTawQAo7sOZhezuHOsHuW+i -njfAA2dJ/Rni6oSUBvYXIF/oep8gcriRWYMAx3erP4t2fR/UPsdxe8RN9no6utio -yuAVCdkLix3tlI9/ezcJhhAS/viXYnkYShNn8LO1w38ZUbxodTGQab3YVCzvsmyH -V8fQYJuTJTjYNY0nf1SI32t7h8ZDWM85MPsbdH+orcGK3DQ2Uukh6XC4H4fcwKlh -T3OdNo5G09b6YuORMLEGImbHsbigi+gKJiI48zTCAHLAwvcopDTgAtsCAwEAAaN/ -MH0wHQYDVR0OBBYEFHi2Xx/LpGqIVJXEE//sMBfOMQ4pMA4GA1UdDwEB/wQEAwIC -BDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDAYDVR0TBAUwAwEB/zAf -BgNVHSMEGDAWgBR4tl8fy6RqiFSVxBP/7DAXzjEOKTANBgkqhkiG9w0BAQ0FAAOC -AQEA0CHWo1t2QEsCmFpdOXJjuyY4t8ChGVxucz/yIyCgk1e/8Wt4HC1yWNnqxjmY -GeHBqUzfGPDY5mpbufb2FeJwGfUp04PRvUqlmJUGEMaWSUtDxs4Orxrzvir8PsD4 -RCnAdgYfBeS7ryiBKFDHMsBGuAJLq2ILbz7HO5Wmbgt05hu99/cgR8XIReka1zuH -1O4bkD6iMBei9QuuFfjJMv1coWWIDjLaQDHswTWCh9+6mnEWeY3kqT7WIWuFri/E -xtT9GtO5Id3WGjJLCdanOP3AUyf0spnALjvbHKuH7gpz03LpbmcR22dcpPI7HAsQ -W0LD0cRNsBHnYTYMgW/ap9xWog== ------END CERTIFICATE----- diff --git a/service/src/services/DBConnection/db.json b/service/src/services/DBConnection/db.json deleted file mode 100644 index 25bdbc3..0000000 --- a/service/src/services/DBConnection/db.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "mongo": { - "dbinstance": [ - { - "isenable": true, - "connection_name": "FlowzEngineTest", - "host": "ds245218.mlab.com", - "port": "45218", - "dbname": "flowztest", - "username": "nik", - "password": "01d8c5c9ecb5", - "upldIcn": "", - "rdoCrt": "", - "notes": "", - "isdefault": true, - "id": "9750939e-3698-43da-8163-cb41bd65c478" - }, - { - "isenable": true, - "connection_name": "Flowenginwork247", - "host": "ds247178.mlab.com", - "port": "47178", - "dbname": "work247", - "username": "officebrain5510", - "password": "01d8c5c9ecb5", - "upldIcn": "", - "rdoCrt": "", - "notes": "", - "isdefault": false, - "id": "1aad0216-67f5-4803-3864-22dd01fa2ad7" - } - ] - }, - "rethink": { - "dbinstance": [] - }, - "elastic": { - "dbinstance": [] - }, - "nedb": { - "dbinstance": [] - } -} diff --git a/service/src/services/DBConnection/db1.json b/service/src/services/DBConnection/db1.json deleted file mode 100644 index 2dc9918..0000000 --- a/service/src/services/DBConnection/db1.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "mongo": { - "dbinstance": [] - }, - "rethink": { - "dbinstance": [] - }, - "elastic": { - "dbinstance": [] - }, - "nedb": { - "dbinstance": [] - } -} \ No newline at end of file diff --git a/service/src/services/DBConnection/elasticapi.js b/service/src/services/DBConnection/elasticapi.js deleted file mode 100644 index 0b9ca7f..0000000 --- a/service/src/services/DBConnection/elasticapi.js +++ /dev/null @@ -1,725 +0,0 @@ -var elasticsearch = require('elasticsearch'); -var db1 = require('./db'); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var endecrypt = require('../encryption/security') -var _ = require('lodash') - // var databasename = 'schema_builder'; -var client = []; -var dclient = []; -// var client = new elasticsearch.Client( { -// host: db1.elastic.host+':'+db1.elastic.port, -// log: 'error' -// // hosts: [ -// // 'https://[username]:[password]@[localhost]:[9200]/', -// // 'https://[username]:[password]@[localhost]:[9200]/' -// // ] -// }); -// var db = ((db1.elastic.dbname == '') ? databasename : db1.elastic.dbname); -// client.indices.create({ -// index: db -// }) -// db1.elastic.dbinstance.forEach(function (instance, inx) { -// if (instance.isenable) { -// var connection = new elasticsearch.Client({ -// host: instance.host + ':' + instance.port, -// log: 'error' -// // hosts: [ -// // 'https://[username]:[password]@[localhost]:[9200]/', -// // 'https://[username]:[password]@[localhost]:[9200]/' -// // ] -// }); -// // var db = ((instance.dbname == '') ? databasename : instance.dbname); -// var db = instance.dbname; -// connection.indices.create({ -// index: db -// }, function (err, resp) { -// if(resp) { -// //console.log(JSON.stringify(resp, null, '\t'), resp.status); -// } -// }) -// client.push({ id: instance.id, conn: connection, dbname: db }) -// } -// if (instance.isdefault) { -// var connection = new elasticsearch.Client({ -// host: instance.host + ':' + instance.port, -// log: 'error' -// // hosts: [ -// // 'https://[username]:[password]@[localhost]:[9200]/', -// // 'https://[username]:[password]@[localhost]:[9200]/' -// // ] -// }); -// // var db = ((instance.dbname == '') ? databasename : instance.dbname); -// var db = instance.dbname; -// connection.indices.create({ -// index: db -// }, function (err, resp) { -// if(resp) { -// //console.log(JSON.stringify(resp, null, '\t'), resp.status); -// } -// }) -// dclient.push({ id: instance.id, conn: connection, dbname: db }) -// } -// }) - - // console.log('client',client) - // var check = client.indices.exists({ - // index: db - // }) - // if(check){ - // console.log('!!!!!'); - // client.indices.create({ - // index: db - // }); - // }else{ - // client.indices.create({ - // index: db - // }); - // } - var getConnection = async (function(data) { - var connection = new elasticsearch.Client({ - host: data.host + ':' + data.port - }); - return connection - }) - - var trygetConnection = async (function(data) { - var connection = new elasticsearch.Client({ - host: data.host + ':' + data.port + '/' + data.dbname - }).ping({ - requestTimeout: 1000 - }); - return connection - }) - -module.exports = { - generateInstanceTable: async(function (ins_id, title){ - console.log('Elastic generate instance collection..........', ins_id, title); - // for(let [i, db_i] of client.entries()) { - // if(db_i.id == ins_id) { - // console.log(client[i].conn) - // var res = await (client[i].conn.tableCreate(title)) - // // console.log('res......generateInstanceTable........', res) - // return res - // } - // } - return 'success' - }), - - choose: function () { - console.log('=================== ELASTIC_DB ================='); - }, - - //************************ get methods ******************************** - - getflowsInstance: async(function (typeName, inst_id) { - console.log('elastic get flowsInstance'); - var flowsInstance = async(function () { - var result1 = []; - for (let [i, inst] of client.entries()) { - if ( inst.id == inst_id ) { - var res = await (inst.conn.search({ - index: client[i].dbname, - type: typeName, - body: { - query: { - match_all: {} - }, - } - })) - // console.log('rethink r', res.hits.hits) - res.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - result1.push(item); - }) - // return res - } - } - return result1 - // var result1 = []; - // for (var i = 0; i < client.length; i++) { - // // var r = await (db[i].conn.collection('schema').find().toArray()) - // var data = []; - // var result = await ( - // client[i].conn.search({ - // index: client[i].dbname, - // type: 'instance', - // body: { - // query: { - // match_all: {} - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // // console.log(client[i].id) - // for (var j = 0; j < data.length; j++) { - // result1.push(data[j]) - // } - // } - // return result1; - }); - var res = await (flowsInstance()) - return res; - }), - - getThisflowsInstance: async(function (id, typeName, conndata) { - console.log('elastic get flowsInstanceCurrent'); - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var result = await(conn.search({ - index: conndata.dbname, - type: typeName, - body: { - query: { - match: { - '_id': id - } - }, - } - }).then(res => { - conn.close() - return _.map(res, (d) => { - let item = d._source - item._id = d._id - return item - }) - }).catch(err => { - return {iserror: true, msg: err} - })) - return result - } - // var flowsInstance = async(function () { - // var result1 = []; - // for (var i = 0; i < client.length; i++) { - // if ( client[i].id == inst_id ) { - // var data = []; - // var result = await ( - // client[i].conn.search({ - // index: client[i].dbname, - // type: typeName, - // body: { - // query: { - // match: { - // '_id': id - // } - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // // console.log(client[i].id) - // for (var j = 0; j < data.length; j++) { - // result1.push(data[j]) - // } - // } - // } - // return result1; - // }); - // var res = await (flowsInstance()) - // // console.log('elastic r...', res) - // return res[0]; - }), - - //************************* post methods **************************** - - postflowsInstance: async(function (data, conndata, typeName) { - console.log('........................elastic post flowsInstance....................'); - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var result = await(conn.index({ - index: conndata.dbname, - type: typeName, - body: data - }).then(res => { - conn.close() - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - return result._id - } - // // data.Schemaid = data._id - // // delete data._id - // // delete data.id - // // var selectedDB = _.find(client, (d) => { - // // return d.id == dbid - // // }) - // var selectedDB; - // for(let i = 0; i < client.length; i++ ){ - // // console.log('connid', db[i].id) - // if(client[i].id == dbid) { - // selectedDB = client[i] - // } - // } - // var result = await ( - // selectedDB.conn.index({ - // index: selectedDB.dbname, - // type: typeName, - // body: data - // })) - // return result._id; - }), - - //*************************** put methods ***************************** - - putflowsInstance: async(function (id, data, tableName, inst_id) { - var instanceid = id; - delete data._id - // console.log('DATA:',data); - // var schemaid = id; - var selectedDB = _.find(client, (d) => { - return d.id == inst_id - }) - var result = await ( - selectedDB.conn.index({ - index: selectedDB.dbname, - type: tableName, - id: instanceid, - body: data - })) - return result; - // var schemadata = await (client.index({ - // index: db, - // type: 'instance', - // id: instanceid, - // body: data - // })) - // return schemadata; - }), - - //****************************** delete methods ************************* - - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('elastic delete this flowsInstance'); - var selectedDB = _.find(client, (d) => { - return d.id == inst_id - }) - var instanceid = id; - var result = await ( - selectedDB.conn.delete({ - index: selectedDB.dbname, - type: tableName, - id: instanceid - })) - // console.log('result',result); - return result; - }), - - - //*****************************get custom methods************************ - getSchemaName: async(function (name) { - console.log('elastic get SchemaName'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - // var r = await (db[i].conn.collection('schema').find().toArray()) - var data = []; - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: 'schema', - body: { - "query": { - "bool": { - "must": { - "query_string": { - "fields": ["title"], - "query": name - } - }, - } - }}} - )) - result.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - return result1; - }); - var res = await (schemadata()) - return res; - // var data = []; - // var result = await ( - // client.search({ - // index: db, - // type: 'schema', - // body: { - // query: { - // match: { - // 'title': name - // } - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // return data; - }), - getThisSchemaType: async(function (id, type) { - console.log('elastic get SchemaCurrent Type'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - // var r = await (db[i].conn.collection('schema').find().toArray()) - var data = []; - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: 'schema', - body: { - query: { - match: { - '_id': id - } - }, - } - })) - result.hits.hits.forEach(function (hit) { - hit._source.entity.forEach(function (item, i) { - if (item.type === type) { - data.push(item); - } - }); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - return result1; - }); - var res = await (schemadata()) - return res; - // var data = []; - // var result = await ( - // client.search({ - // index: db, - // type: 'schema', - // body: { - // query: { - // match: { - // '_id': id - // } - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // hit._source.entity.forEach(function (item, i) { - // if (item.type === type) { - // data.push(item); - // } - // }); - // }) - // return data; - }), - getThisSchemaFieldName: async(function (id, fieldname) { - console.log('elastic get SchemaCurrent fieldname'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - // var r = await (db[i].conn.collection('schema').find().toArray()) - var data = []; - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: 'schema', - body: { - query: { - match: { - '_id': id - } - }, - } - })) - result.hits.hits.forEach(function (hit) { - hit._source.entity.forEach(function (item, i) { - if (item.name === fieldname) { - data.push(item); - } - }); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - return result1; - }); - var res = await (schemadata()) - return res; - // var data = []; - // var result = await ( - // client.search({ - // index: db, - // type: 'schema', - // body: { - // query: { - // match: { - // '_id': id - // } - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // hit._source.entity.forEach(function (item, i) { - // if (item.name === fieldname) { - // data.push(item); - // } - // }); - // }) - // return data; - }), - getSchemaByDbid: async(function(dbid) { - console.log('elastic get Schema By dbid...........................'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < client.length; i++) { - // var r = await (db[i].conn.collection('schema').find().toArray()) - var data = []; - if (client[i].id == dbid) { - var result = await ( - client[i].conn.search({ - index: client[i].dbname, - type: 'schema', - body: { - query: { - match_all: {} - }, - } - })) - result.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - // console.log(client[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - } - return result1; - }); - var res = await (schemadata()) - return res; - // var schemadata = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // if (dbinstance.id == dbid) { - // var data = await (dbinstance.conn.table('schema').run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // } - // }) - // return result; - // }); - // var res = await (schemadata()) - // return res; - }), - getSchema: async(function () { - console.log('elastic get Schema'); - // var schemadata = async(function () { - // var result1 = []; - // for (var i = 0; i < client.length; i++) { - // // var r = await (db[i].conn.collection('schema').find().toArray()) - // var data = []; - // var result = await ( - // client[i].conn.search({ - // index: client[i].dbname, - // type: 'schema', - // body: { - // query: { - // match_all: {} - // }, - // } - // })) - // result.hits.hits.forEach(function (hit) { - // var item = hit._source; - // item._id = hit._id; - // data.push(item); - // }) - // // console.log(client[i].id) - // for (var j = 0; j < data.length; j++) { - // result1.push(data[j]) - // } - // } - // return result1; - // }); - // var res = await (schemadata()) - // return res; - - var data = []; - var result = await( - dclient[0].conn.search({ - index: dclient[0].dbname, - type: 'schema', - body: { - query: { - match_all: { } - }, - } - })) - result.hits.hits.forEach(function(hit){ - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - return data; - }), - getThisSchema: async(function (id) { - console.log('elastic get SchemaCurrent'); - var schemadata = async(function () { - var result1 = []; - for (var i = 0; i < dclient.length; i++) { - var data = []; - var result = await ( - dclient[i].conn.search({ - index: dclient[i].dbname, - type: 'schema', - body: { - query: { - match: { - '_id': id - } - }, - } - })) - result.hits.hits.forEach(function (hit) { - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - console.log(dclient[i].id) - for (var j = 0; j < data.length; j++) { - result1.push(data[j]) - } - } - return result1; - }); - var res = await (schemadata()) - return res; - }), - postSchema: async(function (data) { - console.log('elastic post Schema', JSON.stringify(data)); - // var selectedDB = _.find(client, (d) => { - // return d.id == data.database[1] - // }) - // var result = await ( - // selectedDB.conn.index({ - // index: selectedDB.dbname, - // type: 'schema', - // body: data - // })) - // return result; - - var result = await( - dclient[0].conn.index({ - index: dclient[0].dbname, - type: 'schema', - body: data - })) - return result._id; - }), - putSchema: async(function (data, id) { - console.log('elastic put schema') - delete data._id - var schemaid = id; - // var selectedDB = _.find(client, (d) => { - // return d.id == data.database[1] - // }) - var result = await ( - dclient[0].conn.index({ - index: dclient[0].dbname, - type: 'schema', - id: schemaid, - body: data - })) - return result; - // var schemadata = await ( - // client.index({ - // index: db, - // type: 'schema', - // id: schemaid, - // body: data - // })) - - // return schemadata; - }), - deleteThisSchema: function (id, type) { - console.log('elastic delete this schema'); - var schemaid = id; - let _promise = new Promise((resolve, reject) => { - if(type == 'softdel') { - for (var i = 0; i < dclient.length; i++) { - // console.log(client[i].id, client[i].dbname) - dclient[i].conn.update({ - index: dclient[i].dbname, - type: 'schema', - id: schemaid, - body: { - doc: { - isdeleted: true - } - } - }, function(err, res){ - // console.log(res) - if(res.status == 404){ - // console.log('if...') - if(i == dclient.length){ - var abc = [] - resolve(abc) - // console.log('Inside..') - } - } - else{ - // console.log('else',res) - resolve(res) - } - }) - } - } - }) - var _data = Promise.resolve(_promise).then(function(resp){ - // console.log('................',resp) - if(resp.length == 0){ - // console.log('elastic..') - return [] - } - else { - // console.log('elastic ', resp._shards) - return resp._shards; - } - }) - return _data - } -} diff --git a/service/src/services/DBConnection/mongoapi.js b/service/src/services/DBConnection/mongoapi.js deleted file mode 100644 index 264b83e..0000000 --- a/service/src/services/DBConnection/mongoapi.js +++ /dev/null @@ -1,465 +0,0 @@ -var mongoose = require('mongoose'); -var MongoClient = require('mongodb').MongoClient; -let _ = require('lodash'); -var db1 = require('./db'); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var endecrypt = require('../encryption/security') -var db = []; -var defaultDb = [] - -// db1.mongo.dbinstance.forEach(function (instance, inx) { -// if (instance.isenable) { -// // console.log('instance', instance) -// var pass = endecrypt.decrypt(instance.password) -// // console.log(pass) -// var mongoDB = 'mongodb://' + instance.username + ':' + pass + '@' + instance.host + ':' + instance.port + '/' + instance.dbname; -// // var mongoDB = 'mongodb://'+instance.host+':'+instance.port+'/'+((instance.dbname == '') ? databasename : instance.dbname); -// console.log('database::::', mongoDB); -// var connection = mongoose.createConnection(mongoDB); -// connection.on('error', console.error.bind(console, 'MongoDB connection error:')); - -// db.push({ id: instance.id, conn: connection }) -// } -// if (instance.isdefault) { -// // console.log('instance', instance) -// var pass = endecrypt.decrypt(instance.password) -// // console.log(pass) -// var mongoDB = 'mongodb://' + instance.username + ':' + pass + '@' + instance.host + ':' + instance.port + '/' + instance.dbname; -// // var mongoDB = 'mongodb://'+instance.host+':'+instance.port+'/'+((instance.dbname == '') ? databasename : instance.dbname); -// console.log('database::::', mongoDB); -// var connection = mongoose.createConnection(mongoDB); -// connection.on('error', console.error.bind(console, 'MongoDB connection error:')); - -// defaultDb.push({ id: instance.id, conn: connection }) -// } -// }) - -// db1.mongo.username+':'+db1.mongo.password+'@'+ -// var mongoDB = 'mongodb://'+db1.mongo.host+':'+db1.mongo.port+'/'+((db1.mongo.dbname == '') ? databasename : db1.mongo.dbname); -// var mongoDB = 'mongodb://localhost:27017,172.16.230.87:27017,172.16.160.117:27017/schema_builder?replicaSet=rs0&ssl=true&poolSize=10&authSource=admin&'; - -// console.log('database::::',mongoDB); - -// console.log('-----',mongoose.connection.readyState); -// if(mongoose.connection.readyState >0){ -// mongoose.disconnect(); -// } -// mongoose.connect(mongoDB); -// db = mongoose.connection; - -// mongoose.connect(mongoDB); -// db = mongoose.createConnection(mongoDB); -// console.log("---------db----------",db); -// console.log('-----after---',mongoose.connection.readyState); -// db.on('error', console.error.bind(console, 'MongoDB connection error:')); -// console.log('Success!!!!!!!!!!!!! Mongo'); - -let getConnection = async (function(data) { - // console.log(data) - let uri = 'mongodb://' + ((data.username != '' ? data.username + ':' + data.password + '@' : '')) + data.host + ':' + data.port + '/' + data.dbname; - // console.log(uri) - let _data = await (MongoClient.connect(uri).then(res=> { - return res - }).catch(err=> { - let obj = {iserror: true, msg: err} - return obj - })) - return _data -}) - -module.exports = { - generateInstanceTable: async(function (ins_id, title){ - console.log('Mongo generate instance collection..........', ins_id, title); - // for(let [i, db_i] of db.entries()) { - // if(db_i.id == ins_id) { - // console.log(db[i].conn) - // var res = await (db[i].conn.createCollection(title)) - // console.log('res......generateInstanceTable........', res) - // return res - // } - // } - return 'success' - }), - - choose: async(function () { - console.log('=================== MONGODB ================='); - }), - - //get methods - - - getflowsInstance: async(function (collName, inst_id) { - console.log('mongo get flowsInstance'); - // var flowsInstance = async(function (collName, inst_id) { - for (let [i, inst] of db.entries()) { - if ( inst.id == inst_id ) { - var r = await (inst.conn.collection(collName).find().toArray()) - // console.log('mongo r', r) - return r - } - } - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('flows-instance').find().toArray()) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance(collName, inst_id)) - // return res; - // var flowsInstance = await (db.collection('flows-instance').find().toArray()); - // // console.log('flowsInstance',flowsInstance); - // return flowsInstance; - }), - - getThisflowsInstance: async(function (id, collName, conndata) { - console.log('mongo get flowsInstanceCurrent'); - var id = new mongoose.Types.ObjectId(id); - // for (let [i, inst] of db.entries()) { - // if ( inst.id == inst_id ) { - // var r = await (inst.conn.collection(collName).find({_id: id}).toArray()) - // // console.log('mongo r', r) - // return r[0] - // // for(let [inx, obj] of r.entries()) { - // // if (obj._id == id) { - // // return obj - // // } - // // } - // } - // } - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var schema = await (conn.collection(collName).find({_id: id}).toArray()); - // console.log('Generated Id:', schema.ops[0]._id) - conn.close() - return schema[0]; - } - // if (id.length != 24) { - // return []; - // } else { - // var id = new mongoose.Types.ObjectId(id); - // var flowsInstance = async(function () { - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('flows-instance').find({ _id: id }).toArray()) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance()) - // return res; - // } - // var id = new mongoose.Types.ObjectId(id); - // var flowsInstance = await (db.collection('flows-instance').find({ _id: id }).toArray()); - // // console.log('flowsInstance',flowsInstance); - // return flowsInstance[0]; - }), - - //post methods - - postflowsInstance: async(function (data, conndata, collName) { - console.log('...................mongo post flowsInstance...................'); - // data.Schemaid = data._id - // delete data._id - // delete data.id - // console.log('guid', data.database[1]) - // console.log('dbid', dbid) - // var selectedDB = _.find(db, async(function(d){ - // return d.id == dbid - // })) - // var selectedDB; - // for(let i = 0; i < db.length; i++ ){ - // // console.log('connid', db[i].id) - // if(db[i].id == dbid) { - // selectedDB = db[i] - // } - // } - // console.log('selectedDB', selectedDB) - var conn = await( getConnection(conndata).then(res => { - // console.log('conndata', conndata) - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var schema = await (conn.collection(collName).insert(data)); - // console.log('Generated Id:', schema.ops[0]._id) - conn.close() - return schema.ops[0]._id; - } - // var flowsInstance = await (db.collection('flows-instance').insert(data)); - // // var flowsInstance = await (db.collection('flows-instance').insert(data, function(err, result) { - // // if (err) { - // // console.log('Error!! from mongo post flowsInstance'); - // // return {success: false} - // // } else { - // // console.log('Success!! from mongo post flowsInstance'); - // // return {success: true} - // // } - // // })); - // return flowsInstance.ops; - }), - - //put methods - - putflowsInstance: async(function (id, data, tableName, inst_id) { - console.log('mongo put flowsInstance'); - delete data._id - delete data.id - var id = new mongoose.Types.ObjectId(id); - // console.log('id from putflowsInstance:',id); - var selectedDB = _.find(db, (d) => { - return d.id == inst_id - }) - var flowsInstance = await (selectedDB.conn.collection(tableName).updateOne({ _id: id }, { $set: data })); - return flowsInstance.result; - }), - - //delete methods - - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('mongo delete this flowsInstance'); - var id = new mongoose.Types.ObjectId(id); - var selectedDB = _.find(db, (d) => { - return d.id == inst_id - }) - var flowsInstance = await (selectedDB.conn.collection(tableName).deleteOne({ _id: id })); - return flowsInstance; - }), - - - -/////////////////////////////////////////////////////////////////////////////////////////////////////////////// - getSchemaName: async(function (name) { - console.log('mongo get SchemaName.............................'); - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - var r = await (dbinstance.conn.collection('schema').find({ title: name }).toArray()) - _.forEach(r, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - // console.log('schemadata getSchema',res); - return res; - // var schemadata = await (db.collection('schema').find({ title: name }).toArray()); - // // console.log('SchemaName',schemadata); - // return schemadata; - }), - - getThisSchemaType: async(function (id, type) { - console.log('mongo get SchemaCurrent Type', type); - if (id.length != 24) { - return []; - } else { - var id = new mongoose.Types.ObjectId(id); - // // console.log('mongo get SchemaCurrent id:',id); {$and: [{_id: id}, {type: type}]} - // var schemadata = await (db.collection('schema').find({ _id: id }, { _id: 0, title: 0, templateType: 0, template: 0 }).toArray()); - // // console.log('SchemaCurrent',schemadata[0].entity); - // var result = []; - // schemadata[0].entity.forEach(function (item, i) { - // // console.log('item---',item); - // if (item.type === type) { - // result.push(item); - // } - // }); - // return result; - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - var r = await (dbinstance.conn.collection('schema').find({ _id: id }).toArray()) - // console.log('rrrrrrrrrrrrrrrrrrrrrrrrrr', r) - _.forEach(r, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - console.log('item---',res); - var result = []; - res[0].entity.forEach(function (item, i) { - if (item.type === type) { - result.push(item); - } - }); - return result; - // return res; - } - }), - - getThisSchemaFieldName: async(function (id, fieldname) { - console.log('mongo get SchemaCurrent fieldname'); - if (id.length != 24) { - return []; - } else { - var id = new mongoose.Types.ObjectId(id); - // // console.log('mongo get SchemaCurrent id:',id); {$and: [{_id: id}, {type: type}]} - // var schemadata = await (db.collection('schema').find({ _id: id }, { _id: 0, title: 0, templateType: 0, template: 0 }).toArray()); - // // console.log('SchemaCurrent',schemadata[0].entity); - // var result = []; - // schemadata[0].entity.forEach(function (item, i) { - // // console.log('item---',item); - // if (item.name === fieldname) { - // result.push(item); - // } - // }); - // return result; - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - // console.log('rrrrrrrrrrrrrrrrrrrrrrrrrr', dbinstance) - var r = await (dbinstance.conn.collection('schema').find({ _id: id }).toArray()) - _.forEach(r, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - console.log('schemadata getSchema',res); - var result = []; - res[0].entity.forEach(function (item, i) { - // console.log('item---',item); - if (item.name === fieldname) { - result.push(item); - } - }); - return result; - // return res; - } - }), - - getSchemaByDbid: async(function(dbid) { - console.log('mongo get Schema By dbid...........................'); - // console.log('dbid......................', dbid) - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - // console.log('..................', dbinstance) - if (dbinstance.id == dbid) { - var r = await (dbinstance.conn.collection('schema').find().toArray()) - _.forEach(r, function (instance) { - result.push(instance) - }) - } - }) - return result; - }); - var res = await (schemadata()) - // console.log('schemadata getSchema',res); - return res; - }), - - getSchema: async(function () { - console.log('mongo get Schema'); - // var schemadata = async(function () { - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('schema').find().toArray()) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - var res = await (defaultDb[0].conn.collection('schema').find().toArray()) - // console.log('schemadata getSchema',res); - return res; - }), - - getThisSchema: async(function (id) { - console.log('mongo get SchemaCurrent'); - if (id.length != 24) { - return []; - } else { - var id = new mongoose.Types.ObjectId(id); - // console.log('mongo get SchemaCurrent id2:',typeof id); - // var schemadata = await (db.collection('schema').find({ _id: id }).toArray()); - // // console.log('SchemaCurrent',schemadata); - // return schemadata[0]; - var schemadata = async(function () { - var result = [] - _.forEach(db, function (dbinstance) { - var r = await (dbinstance.conn.collection('schema').find({ _id: id }).toArray()) - _.forEach(r, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - // console.log('schemadata getSchema',res); - return res; - } - }), - postSchema: async(function (data) { - console.log('mongo post Schemax'); - // console.log('guid', data.database[1]) - // var selectedDB = _.find(db, (d) => { - // return d.id == data.database[1] - // }) - // console.log(selectedDB) - var schema = await (defaultDb[0].conn.collection('schema').insert(data)); - // console.log(schema) - return schema.ops[0]._id; - }), - putSchema: async(function (data, id) { - console.log('mongo put Schema'); - // delete data._id - // console.log('guid', data.database[1]) - var id = new mongoose.Types.ObjectId(id); - // var selectedDB = _.find(db, (d) => { - // return d.id == data.database[1] - // }) - var schema = await (defaultDb[0].conn.collection('schema').updateOne({ _id: id }, { $set: data })); - return schema; - }), - deleteThisSchema: async(function (id, type) { - console.log('mongo delete schema'); - if (id.length != 24) { - // console.log('mongo DeleteSchema _blank'); - return []; - } - else { - // console.log('111111') - var id = new mongoose.Types.ObjectId(id); - if(type == 'softdel') { - // console.log('2222') - // var schemadata = async(function () { - // var result = [] - // _.forEach(db, function (dbinstance) { - // var r = await (dbinstance.conn.collection('schema').updateOne({ _id: id }, {$set: {isdeleted: true}})) - // _.forEach(r, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - // // console.log('mongo DeleteSchema',res[0]); - // return res[0]; - var schema = await (defaultDb[0].conn.collection('schema').updateOne({ _id: id }, {$set: {isdeleted: true}})); - return schema; - } - } - // // var schema = await (db.collection('schema').deleteOne({ _id: id })); - }) -} diff --git a/service/src/services/DBConnection/nedbapi.js b/service/src/services/DBConnection/nedbapi.js deleted file mode 100644 index 199fad4..0000000 --- a/service/src/services/DBConnection/nedbapi.js +++ /dev/null @@ -1,135 +0,0 @@ -var db1 = require('./db'); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var databasename = 'schema_builder'; - -var Datastore = require('nedb-promise'); -var fname = (db1.nedb.dbname == '') ? databasename + '.db' : db1.nedb.dbname + '.db'; -// console.log(fname); -var db = new Datastore({ filename: fname, autoload: true }); -// db = {}; - -db.schema = new Datastore({ filename: 'schema.db', autoload: true }); -db.instance = new Datastore({ filename: 'instance.db', autoload: true }); - -module.exports = { - choose: async(function () { - console.log('===================NEDB================='); - }), - - //get methods - getSchemaName: async(function (name) { - console.log('NeDB get SchemaName'); - var schemadata = await (db.schema.cfind({ title: name }).exec()); - // console.log('SchemaName',schemadata); - return schemadata; - }), - - getThisSchemaType: async(function (id, type) { - console.log('NeDB get SchemaCurrent Type', type); - var schemadata = await (db.schema.cfindOne({ _id: id }).exec()); - var result = []; - schemadata.entity.forEach(function (item, i) { - if (item.type === type) { - result.push(item); - } - }); - return result; - }), - - getThisSchemaFieldName: async(function (id, fieldname) { - console.log('NeDB get SchemaCurrent fieldname'); - var schemadata = await (db.schema.cfindOne({ _id: id }).exec()); - var result = []; - schemadata.entity.forEach(function (item, i) { - if (item.name === fieldname) { - result.push(item); - } - }); - return result; - }), - - getSchema: async(function () { - console.log('NeDB get Schema'); - var schemadata = await (db.schema.cfind({}).exec()) - // console.log('schemadata',schemadata) - return schemadata; - }), - getThisSchema: async(function (id) { - console.log('NeDB get SchemaCurrent'); - var schemadata = await (db.schema.cfindOne({ _id: id }).exec()); - // console.log('SchemaCurrent',schemadata); - // return schemadata; - if(schemadata == null) { - return []; - } - else { - var arr=[] - arr.push(schemadata) - } - }), - getflowsInstance: async(function () { - console.log('NeDB get flowsInstance'); - var flowsInstance = await (db.instance.cfind({}).exec()); - // console.log('flowsInstance',flowsInstance); - return flowsInstance; - }), - getThisflowsInstance: async(function (id) { - console.log('NeDB get flowsInstanceCurrent'); - var flowsInstance = await (db.instance.cfindOne({ _id: id }).exec()); - // console.log('flowsInstance',flowsInstance); - return flowsInstance; - }), - - //post methods - postSchema: async(function (data) { - console.log('NeDB post Schema'); - var schemadata = await (db.schema.insert(data)); - console.log('schemadata', schemadata); - return schemadata; - }), - postflowsInstance: async(function (data) { - console.log('NeDB post flowsInstance'); - var flowsInstance = await (db.instance.insert(data)); - console.log('flowsInstance', flowsInstance); - return flowsInstance; - }), - - //put methods - putSchema: async(function (data, id) { - delete data._id - console.log('NeDB put Schema'); - var schemadata = await (db.schema.update({ _id: id }, { $set: data })); - console.log('schemadata', schemadata); - return schemadata; - }), - putflowsInstance: async(function (data, id) { - console.log('NeDB put flowsInstance'); - var flowsInstance = await (db.instance.update({ _id: id }, { $set: data })); - console.log('flowsInstance', flowsInstance); - return flowsInstance; - }), - - //delete methods - // deleteSchema: async(function() { - // var schemadata = await (db.schema.remove({}, { multi: true })); - // return schemadata; - // }), - deleteThisSchema: async(function (id, type) { - console.log('NeDB delete schema', type); - if(type == 'softdel'){ - var schemadata = await (db.schema.update({ _id: id }, { $set: {isdeleted: true}})); - // console.log('nedb ',schemadata) - return schemadata; - } - // var schemadata = await (db.schema.remove({ _id: id })); - // console.log('schemadata', schemadata); - }), - deleteThisflowsInstance: async(function (id) { - console.log('NeDB delete flowsInstance'); - var flowsInstance = await (db.instance.remove({ _id: id })); - console.log('flowsInstance', flowsInstance); - return flowsInstance; - }) - -} diff --git a/service/src/services/DBConnection/rethinkapi.js b/service/src/services/DBConnection/rethinkapi.js deleted file mode 100644 index b3def22..0000000 --- a/service/src/services/DBConnection/rethinkapi.js +++ /dev/null @@ -1,530 +0,0 @@ -var db = require('./db'); -let _ = require('lodash'); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var endecrypt = require('../encryption/security') -var fs = require('fs') -var r = [] -var dr = [] - -// db.rethink.dbinstance.forEach(function (instance, inx) { -// var connection; -// if (instance.isenable) { -// if(instance.hasOwnProperty('authKey') && instance.hasOwnProperty('ssl')) { -// connection = require('rethinkdbdash')({ -// port: instance.port, -// host: instance.host, -// db: instance.dbname, -// authKey: instance.authKey, -// ssl: process.env.cert ? { ca: fs.readFileSync(__dirname+process.env.cert) } : null -// }); -// } else { -// connection = require('rethinkdbdash')({ -// username: instance.username, -// password: endecrypt.decrypt(instance.password), -// port: instance.port, -// host: instance.host, -// db: instance.dbname -// }); -// } - -// var yes = connection.dbList().contains(instance.dbname) // create db if not exists -// .do(function (dbExists) { -// return connection.branch(dbExists, { created: 0 }, connection.dbCreate(instance.dbname)); -// }).run().then(function () { -// return connection.db(instance.dbname).tableList().contains('schema') // create table if not exists -// .do(function (tableExists) { -// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('schema')); -// }).run().then(function () { -// return connection.db(instance.dbname).tableList().contains('flowsinstance') // create table if not exists -// .do(function (tableExists) { -// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('flowsinstance')); -// }).run(); -// }); -// }); -// r.push({ id: instance.id, conn: connection ,dbname: instance.dbname}) -// } -// if (instance.isdefault) { - -// if(instance.hasOwnProperty('authKey') && instance.hasOwnProperty('ssl')) { -// connection = require('rethinkdbdash')({ -// port: instance.port, -// host: instance.host, -// db: instance.dbname, -// authKey: instance.authKey, -// ssl: process.env.cert ? { ca: fs.readFileSync(__dirname+process.env.cert) } : null -// }); -// } else { -// connection = require('rethinkdbdash')({ -// username: instance.username, -// password: endecrypt.decrypt(instance.password), -// port: instance.port, -// host: instance.host, -// db: instance.dbname -// }); -// } - -// var yes = connection.dbList().contains(instance.dbname) // create db if not exists -// .do(function (dbExists) { -// return connection.branch(dbExists, { created: 0 }, connection.dbCreate(instance.dbname)); -// }).run().then(function () { -// return connection.db(instance.dbname).tableList().contains('schema') // create table if not exists -// .do(function (tableExists) { -// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('schema')); -// }).run().then(function () { -// return connection.db(instance.dbname).tableList().contains('flowsinstance') // create table if not exists -// .do(function (tableExists) { -// return connection.branch(tableExists, { created: 0 }, connection.db(instance.dbname).tableCreate('flowsinstance')); -// }).run(); -// }); -// }); -// dr.push({ id: instance.id, conn: connection }) -// } -// }) - -let getConnection = async (function(data) { - let connection = require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }); - return connection -}) - -let trygetConnection = async (function(data) { - let connection = require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }).connect({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }); - return connection -}) - -module.exports = { - generateInstanceTable: async(function (data){ - // console.log('Rethink generate instance collection..........', ins_id, title); - var title = data.title - if(data.database[1] == undefined) { - data.database[1] = dr[0].id - } - var ins_id = data.database[1] - for(let [i, db_i] of r.entries()) { - if(db_i.id == ins_id) { - // console.log(r[i].conn) - var ii = await (r[i].conn.tableList().contains(title)) - // console.log('generateInstanceTable rethink ......... ', ii, title) - if(!ii) { - var res = await (r[i].conn.tableCreate(title)) - return 'created' - } else { - return 'exist' - } - // console.log('res......generateInstanceTable........', res) - // return res - } - } - }), - - choose: async(function () { - console.log('=================== RETHINKDB ================='); - }), - - // get methods - getflowsInstance: async(function (tableName, inst_id) { - console.log('rethink get flowsInstance'); - for (let [i, inst] of r.entries()) { - if ( inst.id == inst_id ) { - var res = await (inst.conn.table(tableName).run()) - // console.log('rethink r', res) - return res - } - } - // var flowsInstance = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('flowsinstance').run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (flowsInstance()) - // return res; - // // var flowsInstance = await (r.table('flowsinstance') - // // .run() - // // .then(function (response) { - // // // console.log('getflowsInstance:',response); - // // return response; - // // }) - // // .error(function (err) { - // // console.log('Error:', err); - // // })); - // // return flowsInstance; - }), - - getThisflowsInstance: async(function (id, tableName, conndata) { - console.log('rethink get flowsInstanceCurrent'); - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var result = await(conn.table(tableName).filter({ 'id': id }).run()) - conn.getPoolMaster().drain() - return result[0]; - } - // for (let [i, inst] of r.entries()) { - // if ( inst.id == inst_id ) { - // var res = await (inst.conn.table(tableName).filter({ 'id': id }).run()) - // // for(let [inx, obj] of res.entries()) { - // // if (obj._id == id) { - // // return obj - // // } - // // } - // // console.log('rethink r', res) - // return res[0] - // } - // } - // // var flowsInstance = async(function () { - // // var result = [] - // // _.forEach(r, function (dbinstance) { - // // var data = await (dbinstance.conn.table('flowsinstance').filter({ 'id': id }).run()) - // // _.forEach(data, function (instance) { - // // result.push(instance) - // // }) - // // }) - // // return result; - // // }); - // // var res = await (flowsInstance()) - // // return res; - // // var flowsInstance = await (r.table('flowsinstance').filter({ 'id': id }).run()); - // // // console.log('flowsInstance',flowsInstance); - // // return flowsInstance[0]; - }), - - // post methods - - postflowsInstance: async(function (data, conndata, tableName) { - console.log('....................rethink post flowsInstance........................'); - var conn = await( getConnection(conndata).then(res => { - return res - }).catch(err => { - return {iserror: true, msg: err} - })) - if (conn.hasOwnProperty('iserror') && conn.iserror) { - return conn - } else { - var result = await(selectedDB.conn.table(tableName).insert(data).run()) - conn.getPoolMaster().drain() - return result.generated_keys[0]; - } - // console.log('guid', dbid) - // // var selectedDB = _.find(r, (d) => { - // // return d.id == dbid - // // }) - // var selectedDB; - // for(let i = 0; i < r.length; i++ ){ - // // console.log('connid', db[i].id) - // if(r[i].id == dbid) { - // selectedDB = r[i] - // } - // } - // // var _data = JSON.parse(data); - // // console.log('data:',_data); - // var flowsInstance = await (selectedDB.conn.table(tableName).insert(data).run()); - // // console.log('########## from postSchema',flowsInstance); - - // var _id = flowsInstance.generated_keys[0]; - // selectedDB.conn.table(tableName).get(_id).update({ '_id': _id }).run(); - // return flowsInstance.generated_keys[0]; - }), - - // put methods - - putflowsInstance: async(function (id, data, tableName, inst_id) { - console.log('rethink put flowsInstance'); - var selectedDB = _.find(r, (d) => { - return d.id == inst_id - }) - var flowsinstance = await (selectedDB.conn.table(tableName).get(id).replace(data).run()); - return flowsinstance; - }), - - // *******************delete methods******************** - - // deleteSchema: async(function () { - // console.log('rethink delete allSchema'); - // var schema = await (r.table('schema').delete().run()); - // return schema; - // }), - - // deleteflowsInstance: async(function () { - // console.log('rethink delete allSchema'); - // var flowsinstance = await (r.table('flowsinstance').delete().run()); - // return flowsinstance; - // }), - - deleteThisflowsInstance: async(function (id, tableName, inst_id) { - console.log('rethink delete this flowsInstance'); - var selectedDB = _.find(r, (d) => { - return d.id == inst_id - }) - var flowsinstance = await (selectedDB.conn.table(tableName).filter({ 'id': id }).delete().run()); - return flowsinstance; - }), - - getSchemaName: async(function (name) { - console.log('rethink get SchemaName'); - var schemadata = await (r.table('schema').filter({ 'title': name }) - .run() - .then(function (response) { - // console.log('response',response); - return response; - }) - .error(function (err) { - console.log('Error:', err); - })) - return schemadata; - }), - - getThisSchemaType: async(function (id, type) { - console.log('rethink get Schema Type'); - // var schemadata = await (r.table('schema').filter({ 'id': id }) - // .run() - // .then(function (response) { - // // console.log('response',response); - // var result = []; - // response[0].entity.forEach(function (item, i) { - // // console.log('item---',item); - // if (item.type === type) { - // result.push(item); - // } - // }); - // return result; - // }) - // .error(function (err) { - // console.log('Error:', err); - // })) - // return schemadata; - var schemadata = async(function () { - var result = [] - _.forEach(r, function (dbinstance) { - var data = await (dbinstance.conn.table('schema').filter({ 'id': id }).run()) - _.forEach(data, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - console.log('res..................', res) - // return res; - if(res.length != 0) { - var result = []; - res[0].entity.forEach(function (item, i) { - if (item.type === type) { - result.push(item); - } - }); - console.log('item---',result); - return result; - } else { - var result = []; - return result - } - }), - - getThisSchemaFieldName: async(function (id, fieldname) { - console.log('rethink get Schema Type'); - // var schemadata = await (r.table('schema').filter({ 'id': id }) - // .run() - // .then(function (response) { - // // console.log('response',response); - // var result = []; - // response[0].entity.forEach(function (item, i) { - // // console.log('item---',item); - // if (item.name === fieldname) { - // result.push(item); - // } - // }); - // return result; - // }) - // .error(function (err) { - // console.log('Error:', err); - // })) - // return schemadata; - var schemadata = async(function () { - var result = [] - _.forEach(r, function (dbinstance) { - var data = await (dbinstance.conn.table('schema').filter({ 'id': id }).run()) - _.forEach(data, function (instance) { - result.push(instance) - }) - }) - return result; - }); - var res = await (schemadata()) - // return res; - if(res.length != 0) { - var result = []; - res[0].entity.forEach(function (item, i) { - if (item.name === fieldname) { - result.push(item); - } - }); - console.log('item---',result); - return result; - } else { - var result = []; - return result - } - }), - - getSchemaByDbid: async(function(dbid) { - console.log('rethink get Schema By dbid...........................'); - var schemadata = async(function () { - var result = [] - _.forEach(r, function (dbinstance) { - if (dbinstance.id == dbid) { - var data = await (dbinstance.conn.table('schema').run()) - _.forEach(data, function (instance) { - result.push(instance) - }) - } - }) - return result; - }); - var res = await (schemadata()) - return res; - }), - - getSchema: async(function () { - console.log('rethink get Schema...........................'); - // var schemadata = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('schema').run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - // return res; - var schemadata = await (dr[0].conn.table('schema').run()) - // var schemadata = await (r.table('schema').run()) - // .then(function(response){ - // // console.log('response getSchema::',response); - // return response; - // }) - // .error(function(err){ - // console.log('Error:',err); - // })) - return schemadata; - - // var schemadata = await (r.table('schema') - // .run() - // .then(function(response){ - // // console.log('response getSchema::',response); - // return response; - // }) - // .error(function(err){ - // console.log('Error:',err); - // })) - // return schemadata; - }), - - getThisSchema: async(function (id) { - console.log('rethink get SchemaCurrent'); - var schemadata = await (dr[0].conn.table('schema').filter({'id': id}).run()) - // console.log('SchemaCurrent',id, schemadata); - return schemadata[0]; - // var schemadata = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('schema').filter({ 'id': id }).run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - // return res; - }), - - postSchema: async(function (data) { - console.log('rethink post Schema'); - console.log('guid', data.database[1]) - if(data.database[1] == undefined) { - data.database[1] = dr[0].id - } - // var selectedDB = _.find(r, (d) => { - // return d.id == data.database[1] - // }) - // console.log(selectedDB) - var schema = await (dr[0].conn.table("schema").insert(data).run()); - - var _id = schema.generated_keys[0]; - var a = await (dr[0].conn.table("schema").get(_id).update({ '_id': _id }).run()); - return _id; - - - // var schema = await (r.table("schema").insert(data).run()); - // console.log('########## from postSchema',schema); - - // var _id = schema.generated_keys[0]; - // r.table("schema").get(_id).update({'_id': _id}).run(); - // return schema; - }), - - putSchema: async(function (data, id) { - console.log('rethink put Schema'); - // var selectedDB = _.find(r, (d) => { - // return d.id == data.database[1] - // }) - // console.log(selectedDB) - var schema = await (dr[0].conn.table("schema").get(id).replace(data).run()); - return schema; - // var schema = await (r.table('schema').get(id).replace(data).run()); - // return schema;dr[0] - }), - - - deleteThisSchema: async(function (id, type) { - console.log('rethink delete schema'); - if(type == 'softdel') { - // var schemadata = async(function () { - // var result = [] - // _.forEach(r, function (dbinstance) { - // var data = await (dbinstance.conn.table('schema').get(id).update({isdeleted: true}).run()) - // _.forEach(data, function (instance) { - // result.push(instance) - // }) - // }) - // return result; - // }); - // var res = await (schemadata()) - // // console.log('rethink delete res::', res); - // return res; - var schema = await (dr[0].conn.table('schema').get(id).update({isdeleted: true}).run()); - return schema; - } - // // var schema = await (r.table('schema').filter({ 'id': id }).delete().run()); - }), -} diff --git a/service/src/services/addInputToJobQue/addInputToJobQue.filters.js b/service/src/services/addInputToJobQue/addInputToJobQue.filters.js deleted file mode 100644 index ba2e354..0000000 --- a/service/src/services/addInputToJobQue/addInputToJobQue.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the addInputToJobQue service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/addInputToJobQue/addInputToJobQue.hooks.js b/service/src/services/addInputToJobQue/addInputToJobQue.hooks.js deleted file mode 100644 index 34bb7e4..0000000 --- a/service/src/services/addInputToJobQue/addInputToJobQue.hooks.js +++ /dev/null @@ -1,56 +0,0 @@ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -const app = require('config'); -const config = require('../config') - // const rdash = require('rethinkdbdash')(config) -const _ = require('lodash') -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [ - hook => beforeCreate(hook) - ], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -function beforeCreate(hook) { - // Create Job Que Scheduler Entry - const Queue = require('rethinkdb-job-queue') - const cxnOptions = config.rethinkdb - const qOptions = { - name: app.get('scheduler_table') - } - const q = new Queue(cxnOptions, qOptions) - var jobOptions = {} - jobOptions.data = {} - jobOptions.data = hook.data - // console.log('jobOptions.data--Hook', jobOptions.data) - jobOptions.timeout = app.get('qJobTimeout') - jobOptions.retryMax = app.get('qJobRetryMax') - const job = q.createJob(jobOptions) - q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) - hook.result = { "data": hook.data, code: 200 } -} \ No newline at end of file diff --git a/service/src/services/addInputToJobQue/addInputToJobQue.service.js b/service/src/services/addInputToJobQue/addInputToJobQue.service.js deleted file mode 100644 index 6e7804a..0000000 --- a/service/src/services/addInputToJobQue/addInputToJobQue.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./addInputToJobQue.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'addInputToJobQue', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/addInputToJobQue', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('addInputToJobQue'); - service.hooks(hooks); -}; \ No newline at end of file diff --git a/service/src/services/approval/approval.filters.js b/service/src/services/approval/approval.filters.js deleted file mode 100644 index 84e2c0b..0000000 --- a/service/src/services/approval/approval.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the approval service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/approval/approval.hooks.js b/service/src/services/approval/approval.hooks.js deleted file mode 100644 index 1022974..0000000 --- a/service/src/services/approval/approval.hooks.js +++ /dev/null @@ -1,33 +0,0 @@ - - -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; diff --git a/service/src/services/approval/approval.service.js b/service/src/services/approval/approval.service.js deleted file mode 100644 index b33a09e..0000000 --- a/service/src/services/approval/approval.service.js +++ /dev/null @@ -1,23 +0,0 @@ -// Initializes the `approval` service on path `/approval` -const createService = require('feathers-rethinkdb'); -const hooks = require('./approval.hooks'); - -module.exports = function () { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - - const options = { - name: 'approval', - Model, - paginate - }; - - // Initialize our service with any options it requires - app.use('/approval', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('approval'); - - service.hooks(hooks); -}; diff --git a/service/src/services/databases/databases.filters.js b/service/src/services/databases/databases.filters.js deleted file mode 100644 index 04a6812..0000000 --- a/service/src/services/databases/databases.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the databases service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/databases/databases.hooks.js b/service/src/services/databases/databases.hooks.js deleted file mode 100644 index 9507a9b..0000000 --- a/service/src/services/databases/databases.hooks.js +++ /dev/null @@ -1,137 +0,0 @@ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -var endecrypt = require('../encryption/security') -const errors = require('@feathersjs/errors'); -let config = require('config'); -var axios = require('axios'); -var _ = require('lodash'); - -module.exports = { - before: { - all: [], - find: [ - hook => beforeFind(hook) - ], - get: [], - create: [ - hook => beforeCreate(hook) - ], - update: [], - patch: [ - hook => beforePatch(hook) - ], - remove: [] - }, - - after: { - all: [ - hook => afterFind(hook) - ], - find: [], - get: [ - hook => afterGet(hook) - ], - create: [], - update: [], - patch: [], - remove: [] - }, - - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -let beforeCreate = async( function(hook) { - // console.log('Hook.data', hook.data) - hook.params.query.selectedDb = hook.data.selectedDb; - hook.params.query.dbname = hook.data.dbname; - hook.params.query.username = hook.data.username; - hook.data.createdAt = new Date(); - if (hook.data.password !== '') { - hook.params.query.password = endecrypt.encrypt(hook.data.password); - } else { - hook.params.query.password = hook.data.password; - } - const query = Object.assign({}, hook.params.query); - return hook.app.service('databases').find({ query }).then(response => { - if (response.data.length > 0) { - throw new errors.BadRequest('Connection exist', { - errors: { message: 'connection already exist with connection name as ' + response.data[0].connection_name } - }); - } else { - if (hook.data.isdefault) { - hook.app.service('databases').find({ - query: { - $paginate: 'false', - $select: [ 'id' ] - } - }).then(res => { - for (let item of res) { - hook.app.service('databases').patch(item.id, {isdefault: false}) - } - }) - } - hook.data.password = endecrypt.encrypt(hook.data.password); - } - return hook; - }); -}) - -let beforeFind = function(hook) { - if (hook.params.query && hook.params.query.$paginate) { - hook.params.paginate = hook.params.query.$paginate === 'false' || hook.params.query.$paginate === false; - delete hook.params.query.$paginate; - } -} - -let beforePatch = async(function(hook) { - // hook.params.query.$paginate = false; - // const query = Object.assign({}, hook.params.query); - // return hook.app.service('databases').find({ query }).then(response => { - // console.log('response.data', response.data) - // for (let mschema of response.data) { - // if (mschema.id !== hook.id) { - - // } - // } - // return hook; - // }); - if (hook.data.hasOwnProperty('isdefault') && hook.data.isdefault) { - hook.app.service('databases').find({ - query: { - $paginate: 'false', - $select: [ 'id' ] - } - }).then(res => { - if (res !== undefined && res.length > 0) { - for (let item of res) { - if (hook.id !== item.id) { - hook.app.service('databases').patch(item.id, {isdefault: false}) - } - } - } - }) - } -}) - -let afterGet = function(hook) { - if(hook.id) { - hook.result.password = endecrypt.decrypt(hook.result.password); - } -} - -let afterFind = function(hook) { - //console.log('afterFind') - // if(hook.id === undefined) { - // hook.result.data = _.map(hook.result.data, (d) => { - // return _.omit(d, ['username', 'password']) - // }) - // } -} \ No newline at end of file diff --git a/service/src/services/databases/databases.service.js b/service/src/services/databases/databases.service.js deleted file mode 100644 index fe822a7..0000000 --- a/service/src/services/databases/databases.service.js +++ /dev/null @@ -1,23 +0,0 @@ -// Initializes the `databases` service on path `/databases` -const createService = require('feathers-rethinkdb'); -const hooks = require('./databases.hooks'); - -module.exports = function () { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - - const options = { - name: 'databases', - Model, - paginate - }; - - // Initialize our service with any options it requires - app.use('/databases', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('databases'); - - service.hooks(hooks); -}; diff --git a/service/src/services/encryption/security.js b/service/src/services/encryption/security.js deleted file mode 100644 index 2b08db4..0000000 --- a/service/src/services/encryption/security.js +++ /dev/null @@ -1,19 +0,0 @@ -var crypto = require('crypto'), - algorithm = 'aes-256-ctr', - password = '@OfficeBe@con1_9$flows_serviceS'; - -module.exports = { - encrypt: function(text){ - var cipher = crypto.createCipher(algorithm,password) - var crypted = cipher.update(text,'utf8','hex') - crypted += cipher.final('hex'); - return crypted; - }, - - decrypt: function(text){ - var decipher = crypto.createDecipher(algorithm,password) - var dec = decipher.update(text,'hex','utf8') - dec += decipher.final('utf8'); - return dec; - } -} \ No newline at end of file diff --git a/service/src/services/flowz-instance/flowz-instance.filters.js b/service/src/services/flowz-instance/flowz-instance.filters.js deleted file mode 100644 index d47d6ec..0000000 --- a/service/src/services/flowz-instance/flowz-instance.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the flowz-instance service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/flowz-instance/flowz-instance.hooks.js b/service/src/services/flowz-instance/flowz-instance.hooks.js deleted file mode 100644 index 02bc7e6..0000000 --- a/service/src/services/flowz-instance/flowz-instance.hooks.js +++ /dev/null @@ -1,119 +0,0 @@ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -const app = require('config'); -const config = require('../config') -var serverUrl = 'http://' + app.host + ':' + app.port + '/' -const _ = require('lodash') -const axios = require('axios') -module.exports = { - before: { - all: [], - find: [ - hook => beforeFind(hook) - ], - get: [], - create: [ - hook => beforeCreate(hook) - ], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [ - hook => aftercreateInstance(hook) - ], - update: [], - patch: [ - hook => updateProcesslogforMappingRequired(hook) - ], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -let beforeCreate = function (hook) { - hook.data.createdOn = new Date(); -}; - -let beforeFind = function (hook) { - if (hook.params.query && hook.params.query.$sort && hook.params.query.$sort.createdOn) { - hook.params.query.$sort.createdOn = parseInt(hook.params.query.$sort.createdOn); - } - if (hook.params.query && hook.params.query.$paginate) { - hook.params.paginate = hook.params.query.$paginate === 'false' || hook.params.query.$paginate === false; - delete hook.params.query.$paginate; - } -}; - -var updateProcesslogforMappingRequired = async(function (hook) { - for (let [key, m] of hook.result.processList.entries()) { - m['log'] = _.chain(hook.result.process_log).filter(f => { - return f.job === m.id - }).sortBy(['lastModified'], ['desc']).reverse().groupBy('jobId').value() - await (handleMappingRequireStatus(m, hook.result.id)) - } -}) - -function getCurrentStatus(log) { - return (log.length > 0) ? _.head(log).status : '' -} - -function getLastLog(logs) { - return _.head(logs) -} -var handleMappingRequireStatus = async(function (data, fid) { - // handle mapping required - if (data.log && _.keys(data.log).length > 0) { - for (var [key, f] of _.values(data.log).entries()) { - // var f = data.log[inx] - // // var _allProcess = _.forEach(data.log, async(f => { - if (getCurrentStatus(f).toLowerCase() === 'mappingrequired') { - let _lastLog = getLastLog(f) - let dataObject = { - 'fId': fid, - 'input': _lastLog.input[0].inputs, - 'isExternalInput': true, - 'jobId': _lastLog.jobId, - 'job': _lastLog.job - } - let uri = serverUrl + 'addInputToJobQue' - await (axios.post(uri, dataObject)) - } - } - } -}) - -function aftercreateInstance(hook) { - let id = hook.data.id; - if (hook.data.id != undefined) { - const Queue = require('rethinkdb-job-queue') - //--------------- Connection Options ----------------- - const cxnOptions = config.rethinkdb - //--------------- Queue Options ----------------- - const qOptions = { - name: app.get('scheduler_table') - } - const q = new Queue(cxnOptions, qOptions) - var jobOptions = {} - jobOptions.data = {} - jobOptions.data.fId = id - jobOptions.timeout = app.get('qJobTimeout') - jobOptions.retryMax = app.get('qJobRetryMax') - //--------------- Create new job ----------------- - const job = q.createJob(jobOptions) - //--------------- Add job ----------------- - q.addJob(job).then((savedJobs) => {}).catch(err => console.error('Hook Errors', err)) - } -} diff --git a/service/src/services/flowz-instance/flowz-instance.service.js b/service/src/services/flowz-instance/flowz-instance.service.js deleted file mode 100644 index e5c567b..0000000 --- a/service/src/services/flowz-instance/flowz-instance.service.js +++ /dev/null @@ -1,34 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./flowz-instance.hooks'); -module.exports = function () { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'flowzinstance', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/flowz-instance', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('flowz-instance'); - service.hooks(hooks); - service.hooks({ - before: { - find(context) { - if (context.params.query.$useremail) { - let useremail = context.params.query.$useremail; - delete context.params.query.$useremail; - const query = this.createQuery(context.params.query); - context.params.rethinkdb = query.filter((row) => { - return row('allowedusers').setIntersection( - [useremail] - ).count().ge(1); - }); - } - } - } - }); -}; diff --git a/service/src/services/index.js b/service/src/services/index.js index 8b3e2f6..5800cc3 100644 --- a/service/src/services/index.js +++ b/service/src/services/index.js @@ -1,47 +1,21 @@ const schema = require('./schema/schema.service.js'); -const instance = require('./instance/instance.service.js'); -const settings = require('./settings/settings.service.js'); -const approval = require('./approval/approval.service.js'); const emailtemplate = require('./emailtemplate/emailtemplate.service.js'); -const schemamapping = require('./schemamapping/schemamapping.service.js'); const flowz = require('./flowz/flowz.service.js'); -const flowzinstance = require('./flowz-instance/flowz-instance.service.js'); -const instancetest = require('./instance-test/instance-test.service.js'); -const scheduler = require('./scheduler/scheduler.service.js'); -const logs = require('./logs/logs.service.js'); -const addInputToJobQue = require('./addInputToJobQue/addInputToJobQue.service.js'); const bpmnplugins = require('./bpmnplugins/bpmnplugins.service.js'); -const usermaster = require('./usermaster/usermaster.service.js'); -const receiveform = require('./receive-form/receive-form.service.js'); -const databases = require('./databases/databases.service.js'); const finstance = require('./finstance/finstance.service.js'); const flowzdata = require('./flowzdata/flowzdata.service.js'); const sendmail = require('./sendmail/sendmail.service.js'); const emailReceive = require('./email-receive/email-receive.service.js'); const dataquery = require('./dataquery/dataquery.service.js'); -const emailTemplates = require('./email-templates/email-templates.service.js'); module.exports = function() { const app = this; // eslint-disable-line no-unused-vars app.configure(schema); - app.configure(instance); - app.configure(settings); - app.configure(approval); app.configure(emailtemplate); - app.configure(schemamapping); app.configure(flowz); - app.configure(flowzinstance); - app.configure(instancetest); - app.configure(logs); - app.configure(addInputToJobQue); - //app.configure(scheduler); app.configure(bpmnplugins); - app.configure(usermaster); - app.configure(receiveform); - app.configure(databases); app.configure(finstance); app.configure(flowzdata); app.configure(sendmail); app.configure(emailReceive); app.configure(dataquery); - app.configure(emailTemplates); }; \ No newline at end of file diff --git a/service/src/services/instance-test/instance-test.filters.js b/service/src/services/instance-test/instance-test.filters.js deleted file mode 100644 index b32613b..0000000 --- a/service/src/services/instance-test/instance-test.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the instance-test service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/instance-test/instance-test.hooks.js b/service/src/services/instance-test/instance-test.hooks.js deleted file mode 100644 index 0c2d1f5..0000000 --- a/service/src/services/instance-test/instance-test.hooks.js +++ /dev/null @@ -1,137 +0,0 @@ -// let async = require('asyncawait/async'); -// let await = require('asyncawait/await'); -// const app = require('config'); -// const config = require('../config') -// const rdash = require('rethinkdbdash')(config) -// const _ = require('lodash') -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; -// var aftercreateInstance = async(function(hook) { -// //let id = hook.data.id; -// console.log('........................................................hook') -// //console.log('inserted id', hook.data.id) -// if (hook.data.id != undefined) { -// console.log('hook.data.id', hook.data) -// let inputData = hook.data.data -// // console.log('inputData', inputData) -// let instanceTable = app.get('instance_table') -// let instanceList = await (rdash.table(instanceTable).get(hook.data.instanceid).run()) -// let processlog = _.find(instanceList.process_log, { 'job': hook.data.processid }) -// let approvalClass = _.find(instanceList.processList, { 'id': hook.data.processid }).inputProperty[0].approvalClass -// if (approvalClass != undefined) { -// const Queue = require('rethinkdb-job-queue') -// //--------------- Connection Options ----------------- -// const cxnOptions = config -// //--------------- Queue Options ----------------- -// const qOptions = { -// name: app.get('approvar_table') -// } -// const q = new Queue(cxnOptions, qOptions) -// var jobOptions = {} -// jobOptions.data = {} -// // jobOptions.data.fId = id -// jobOptions.data = { -// "fId": hook.data.instanceid, -// "input": inputData, -// "isExternalInput": true, -// "jobId": hook.data.processid, -// } -// jobOptions.timeout = app.get('qJobTimeout') -// jobOptions.retryMax = app.get('qJobRetryMax') -// console.log('jobOptions', jobOptions) -// //--------------- Create new job ----------------- -// const job = q.createJob(jobOptions) -// //--------------- Add job ----------------- -// q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) -// } else { -// // if (_.isArray(inputData)) { -// // for (let arr in processlog.input) {} -// // } else { -// // var newObject = _.reduce(inputData, function(result, value, key) { -// // if (!_.has(processlog.input[0], key)) { -// // result[key] = value; -// // } -// // return result -// // }, {}); -// console.log('newObject', inputData) -// const Queue = require('rethinkdb-job-queue') -// //--------------- Connection Options ----------------- -// const cxnOptions = config -// //--------------- Queue Options ----------------- -// const qOptions = { -// name: app.get('scheduler_table') -// } -// const q = new Queue(cxnOptions, qOptions) -// var jobOptions = {} -// jobOptions.data = {} -// // jobOptions.data.fId = id -// jobOptions.data = { -// "fId": hook.data.instanceid, -// "input": inputData, -// "isExternalInput": true, -// "jobId": hook.data.processid, -// } -// jobOptions.timeout = app.get('qJobTimeout') -// jobOptions.retryMax = app.get('qJobRetryMax') -// console.log('jobOptions', jobOptions) -// //--------------- Create new job ----------------- -// const job = q.createJob(jobOptions) -// //--------------- Add job ----------------- -// q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) -// //} -// } -// } -// // if (hook.data.id != undefined) { -// // const Queue = require('rethinkdb-job-queue') -// // //--------------- Connection Options ----------------- -// // const cxnOptions = config -// // //--------------- Queue Options ----------------- -// // const qOptions = { -// // name: app.get('scheduler_table') -// // } -// // const q = new Queue(cxnOptions, qOptions) -// // var jobOptions = {} -// // jobOptions.data = {} -// // // jobOptions.data.fId = id -// // jobOptions.data = { -// // "fId": hook.data.instanceid, -// // "input": hook.data.data, -// // "isExternalInput": true, -// // "jobId": hook.data.processid, -// // } -// // jobOptions.timeout = app.get('qJobTimeout') -// // jobOptions.retryMax = app.get('qJobRetryMax') -// // console.log('jobOptions', jobOptions) -// // //--------------- Create new job ----------------- -// // const job = q.createJob(jobOptions) -// // //--------------- Add job ----------------- -// // q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) -// // } -// }) \ No newline at end of file diff --git a/service/src/services/instance-test/instance-test.service.js b/service/src/services/instance-test/instance-test.service.js deleted file mode 100644 index f7c5028..0000000 --- a/service/src/services/instance-test/instance-test.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./instance-test.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'instancetest', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/instance-test', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('instance-test'); - service.hooks(hooks); -}; \ No newline at end of file diff --git a/service/src/services/instance/instance.class.js b/service/src/services/instance/instance.class.js deleted file mode 100644 index 8142aae..0000000 --- a/service/src/services/instance/instance.class.js +++ /dev/null @@ -1,1015 +0,0 @@ -/* eslint-disable no-unused-vars */ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -let config = require('config'); -var axios = require('axios'); -var fs = require('fs'); -var path = require('path'); -var _ = require('lodash'); -var chokidar = require('chokidar'); -var db = '../DBConnection/db.json'; -var file = require(db); -var dbapi = []; -let databasesUrl = 'http://' + config.get('host') + ':' + config.get('port') + '/databases' -let allapi = '../DBConnection/' - -// _.forEach(file, function (dbs, i) { -// var flag = false -// _.forEach(dbs.dbinstance, function (instance) { -// if (instance.isenable) { -// flag = true -// } -// }) -// if (flag) { -// var api = require('../DBConnection/' + i + 'api') -// dbapi.push({ db: i, api: api }); -// api.choose() -// } -// }) - -// let readfile = async(function () { -// fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { -// // console.log('reading file' + data) -// // console.log('reading file form instance' + data) -// if (err) return console.log(err); -// if (data == '') { -// console.log('BLANCK DATA'); -// return 'nodata'; -// } -// file = JSON.parse(data); -// dbapi = []; -// _.forEach(file, function (dbs, i) { -// var flag = false -// _.forEach(dbs.dbinstance, function (instance) { -// if (instance.isenable) { -// flag = true -// } -// }) -// if (flag) { -// var api = require('../DBConnection/' + i + 'api') -// dbapi.push({ db: i, api: api }); -// // console.log('From..........................................instance') -// api.choose() -// } -// }) -// }); -// }) - -var getQuery = async(function (dbName, type, queryFor) { - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (dbdata) { - var instance; - _.forEach(dbdata[dbName][type], function (instances, db) { - if (Object.keys(instances)[0] == queryFor) { - var obj = _.find(instances) - if (obj != undefined) { - instance = obj - } - } - }) - return instance - }); - return _data -}); - -// One-liner for current directory, ignores .dotfiles -// chokidar.watch(path.join(__dirname, '../DBConnection/db.json'), { ignored: /(^|[\/\\])\../ }).on('change', async(function (path) { -// // console.log('From..........................................instance111') -// // console.log('File', path, 'has been changed'); -// delete require.cache[require.resolve('../DBConnection/db')]; -// delete require.cache[require.resolve('../DBConnection/mongoapi')]; -// delete require.cache[require.resolve('../DBConnection/rethinkapi')]; -// delete require.cache[require.resolve('../DBConnection/elasticapi')]; -// // delete require.cache[require.resolve('../DBConnection/mysqlapi')]; -// var checking = await (readfile()); -// if (checking == 'nodata') { -// await (readfile); -// } -// })) - -// var checkFlag = async(function (data) { -// var flag = false -// _.forEach(data, async(function (obj, index) { -// // console.log('Obj', obj, '..k..', k)la -// _.forEach(obj, async(function (val, key) { -// // console.log(key, val) -// if (key == 'database') {} else { -// if (Array.isArray(val)) { -// _.forEach(val, async(function (obj) { -// if (!obj.hasOwnProperty('refid')) { -// flag = true -// } -// })) -// } -// } -// })) -// })) -// return flag -// }) - -var checkFlagforGet = async(function (mObj) { - var flag = false - // _.forEach(data, async(function(obj, index){ - // console.log('Obj', obj, '..k..', k)la - _.forEach(mObj, async(function (val, key) { - // console.log(key, val) - if (key == 'database') {} else { - if (Array.isArray(val)) { - _.forEach(val, async(function (obj) { - if (obj.hasOwnProperty('refid')) { - flag = true - } - })) - } - } - })) - // })) alterTableAndAddField - return flag -}) - -var checkDataObj = async(function (data, id, res) { - // console.log('>>>>>>>>>>>>>>>>>>>>>>>> ', data, '\n..............>> ', res) - for (let [dIndex, dObj] of data.entries()) { - // if(dObj.hasOwnProperty('Schemaid')) { - // // console.log('{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{') - // var a = await (setSchemaData(dObj.Schemaid)) - // // console.log('}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}', a) - // } - // console.log('.......', dIndex, dObj) - for (let sKey in dObj) { - // console.log('.....', sObj) - // console.log('.....................................................................') - // console.log('obj', dObj, sKey, dObj[sKey], dIndex) - // console.log('.....................................................................') - // if (sKey == 'database') { - // } - // else { - let f = false - for (let ent of res.entity) { - if (ent.customtype) { - f = true - } - } - if (f) { - var status = await (checkFlag(dObj[sKey])) - console.log('...................................................', status) - // console.log('dObj[sKey]', dObj[sKey], 'sKey', sKey, 'dObj', dObj, 'res', res) - // console.log('...................................................') - // console.log('Status of Array.............................', status) - if (!status) { - // console.log('postSchemaData', postSchemaData) - // var entityType = await(FindEntitytype(sKey, postSchemaData)) - // console.log('}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}') - // console.log('entityType', entityType) - // var Database = await (giveDatabase(entityType)) - // console.log('|||||||||||||||||||||||||||||||||||||', entityType, Database) - // console.log('Val....not contain any array.......') - var entityType = await (FindEntitytype(sKey, res)) - var _res = await (getSchemaData(entityType)) - // console.log('_res', _res, '\nres...', res) - for (let [inx, obj] of dObj[sKey].entries()) { - // console.log('?????????????????????????', sKey) - var s = false - for (let k in obj) { - if (Array.isArray(obj[k])) { - s = true - } - } - if (!s) { - // console.log('<<<<<<<<<<<<<', _res) - schemaid = _res.id - objid = await (saveData(obj, _res)) - } else { - // console.log('@@@@.............', res) - schemaid = res.id - objid = await (saveData(obj, res)) - } - // console.log('res=====================================', res) - // var objid = await (saveData(obj, res.database)) - // console.log('jjksjdfkldsssssssssssssssssss', typeof objid, objid) - objid = objid.toString() - // console.log('?????????????????????????/////', objid, typeof objid) - for (let key in obj) { - delete obj[key] - } - obj.refid = objid - // obj.schemaid = schemaid - } - } else { - // console.log('..::::::::::::::::::..', dObj[sKey], sKey, dObj) - var entityType = await (FindEntitytype(sKey, res)) - // console.log('........', entityType) - var _res = await (getSchemaData(entityType)) - // console.log('_res', _res) - // var entityType = await(FindEntitytype(sKey, postSchemaData)) - // var res = await (setSchemaData(entityType)) - // console.log('entityType,,, ', entityType) - var resp = await (checkDataObj(dObj[sKey], entityType, _res)) - dObj[sKey] = resp - // console.log('contain array...............recursive.....', resp) - } - } - // } - } - } - for (let [inxx, object] of data.entries()) { - // console.log('>>>>>>>>>>>>>>> ', res) - var id = await (saveData(object, res)) - id = id.toString() - for (let okey in object) { - delete object[okey] - } - object.refid = id - // console.log('qqqqqqqqqqqqqqqqqqqqqqq', object) - } - return data -}) - -var mynewCreateFunction = async (function(data, res) { - // console.log('...', data) - let custom = false - for (let ent of res.entity) { - if (ent.customtype) { - custom = true - } - } - if (!custom) { - // No More Custom data - for (let sObj of data) { - let mydata = await (saveData(sObj, res)) - for (let k in sObj) { - delete sObj[k] - } - sObj.refid = mydata - } - } else { - // schema has Custom type inside - for (let sObj of data) { - for (let ent of res.entity) { - if (ent.customtype) { - var _res = await (getSchemaData(ent.type)) - let mydata = await (mynewCreateFunction(sObj[ent.name], _res)) - sObj[ent.name] = mydata - // console.log('sObj[ent.name] >>> ', ent.name, ' >>>> ', mydata) - } - } - var s = await (saveData(sObj, res)) - for (let k in sObj) { - delete sObj[k] - } - sObj.refid = s - } - } - return data -}) - -var FindEntitytype = async(function (fieldname, data) { - // console.log('FindEntitytype :::::::::::', fieldname) - for (let [inxx, object] of data.entity.entries()) { - // console.log('?///////////////', object) - if (object.name == fieldname) { - return object.type - } - // console.log('...', object, inxx) - } -}) - -var getSchemaData = async(function (id) { - // console.log('setSchemaData calling >>>>>>>>>>>') - var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema/' + id)) - // console.log('res', res) - // postSchemaData = res.data - return res.data -}) - -var getSchemaDataByName = async(function (title) { - // console.log('setSchemaData calling >>>>>>>>>>>') - var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema?title=' + title)) - // console.log('res', res.data) - if (res.data.data.length > 0) { - return res.data.data[0] - } else { - var err = new Error('Not Found') - return err - } - // postSchemaData = res.data -}) - -var getallSchemaData = async(function () { - var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema?$paginate=false')) - return res.data -}) - -var giveDatabase = async(function (schemaid) { - var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema/' + schemaid)) - console.log('response from giveDatabase', res.data) - // postSchemaData = res.data - return res.data.data.database -}) - -var getConnectionData = async( function(id) { - let res = await(axios.get(databasesUrl + '/' + id)) - return res.data -}) - -var saveData = async(function (data, res) { - // console.log('save calling...................', data, res) - // var database; - // if(data.Schemaid != undefined) { - // database = await (giveDatabase(data.Schemaid)) - // console.log('??????????????????????????', database) - // console.log('Database not undefined found....', database) - // } else { - /////////////////////// - // database = yes - // console.log('Database undefined found.......', database) - // } - // console.log('data', data, 'yes', yes) - // if(database == 'single') { - // var id = data.Schemaid - // var res = await (getSchemaData(id)) - // database = res.database - // } - - // var _dbindex = _.findIndex(dbapi, { 'db': res.database[0] }); - // for(let [i, obj] of dbapi.entries()) { - // if(obj.db == database[0]) { - // _dbindex = i - // } - // } - let selectapi = require(allapi + res.database[0] + 'api') - let conn = await (getConnectionData(res.database[1])) - if (typeof res.id !== 'undefined') { - var dbdata = await (selectapi.postflowsInstance(data, conn, res.title)); - } else { - var dbdata = await (selectapi.postflowsInstance(data, conn)); - } - console.log('Return Instance id .........', dbdata) - return dbdata; -}) - -var setData = async(function (data) { - // console.log('????????????????????????????????????????') - var id = data[0].Schemaid - var res = await (getSchemaData(id)) - // console.log('entity???????????', res) - // console.log('id.............', id) - var _res = await (checkDataObj(data, id, res)) - return _res -}) - -var getInstance = async(function (id, schemaid, columnname) { - var instance = [] - var isMysql = false; - dbapi.forEach(function (db) { - let _promise = new Promise((resolve, reject) => { - // console.log('????????????????????', db.db) - if (db.db == 'mysql') { - isMysql = true - } - if (typeof schemaid !== 'undefined') { - db.api.getThisflowsInstance(id, schemaid, columnname).then((data) => { - resolve(data); - }) - } else { - db.api.getThisflowsInstance(id).then((data) => { - resolve(data); - }) - } - }); - instance.push(_promise) - }); - // } - var _data = Promise.all(instance).then(async(function (response) { - var obj; - response.forEach(function (item) { - if (item[0] != undefined) { - obj = item[0] - } - }) - // console.log('????????????????????', obj) - var flag = await (checkFlagforGet(obj)) - // console.log(flag) - if (!flag) { - return obj - } else { - for (let okey in obj) { - // console.log(okey, '=', obj[okey]) - if (okey == 'database') {} else { - if (Array.isArray(obj[okey])) { - for (let [index, insideObj] of obj[okey].entries()) { - // console.log('11111111111okey1111111111111111111111', okey) - // console.log('isMysql', isMysql) - // console.log('111111111111OBJ111111111111111111111', obj) - if (isMysql) { - obj[okey][index] = await (getInstance(insideObj.refid, obj.Schemaid, okey)) - } else { - obj[okey][index] = await (getInstance(insideObj.refid)) - } - // console.log('222222222222222222222222222222222', obj[okey][index], insideObj) - } - } - } - } - return obj - } - })) - return _data; -}) - -var getallInstance = async(function (data) { - for (let [i, obj] of data.entries()) { - for (let k in obj) { - if (k == 'database') {} else { - if (Array.isArray(obj[k])) { - for (let [index, insideObj] of obj[k].entries()) { - // console.log('222222222222222222222222222222222', insideObj) - // console.log('111111111111111111111111111111111', k) - // console.log('111111111111111111111111111111111', obj.Schemaid) - if (/^\d+$/.test(obj.Schemaid)) { - obj[k][index] = await (getInstance(insideObj.refid, obj.Schemaid, k)) - } else { - obj[k][index] = await (getInstance(insideObj.refid)) - } - } - } - } - } - } - return data -}) - -var getActualInstance = async(function (id, res) { - var instance = [] - dbapi.forEach(function (db) { - if (db.db == res.database[0]) { - let _promise = new Promise((resolve, reject) => { - db.api.getThisflowsInstance(id, res.title, res.database[1]).then((data) => { - resolve(data); - }) - }); - instance.push(_promise) - } - }); - // } - var _data = Promise.all(instance).then(async(function (response) { - return response[0] - })) - return _data; -}) - -var updateData = async(function (id, data, res) { - console.log('update calling...................') - var _dbindex = _.findIndex(dbapi, { 'db': res.database[0] }); - var dbdata = await (dbapi[_dbindex].api.putflowsInstance(id, data, res.title, res.database[1])); - console.log('dbdata..........') - return dbdata; -}) - -var deleteData = async(function (id, res) { - console.log('delete calling...................') - var _dbindex = _.findIndex(dbapi, { 'db': res.database[0] }); - var dbdata = await (dbapi[_dbindex].api.deleteThisflowsInstance(id, res.title, res.database[1])); - console.log('dbdata..........') - return dbdata; -}) - -var checkUpdateData = async(function (id, data) { - var sid = data[0].Schemaid - var res = await (getSchemaData(sid)) - var old_data = await (getActualInstance(id, res)) - // console.log('old_data', data) - // var new_data = - var _res = await (compareData(id, old_data, data[0], res)) - return _res -}) - -var compareData = async(function (id, old_data, new_data, res) { - var new_status = await (checkFlagforGet(old_data)) - console.log('new_status...........................', new_status) - if (!new_status) { - // console.log('Here..................') - var dbdata = await (updateData(id, new_data, res)) - return dbdata - } else { - // for(let [inxx, object] of new_data.entries()) { - for (let sKey in old_data) { - // console.log(object, sKey) - if (Array.isArray(old_data[sKey])) { - console.log('....................') - // console.log(old_data[sKey], sKey) - var entityType = await (FindEntitytype(sKey, res)) - // var database = await (giveDatabase(entityType)) - var _res = await (getSchemaData(entityType)) - // console.log('Database', _res) - var flag = false - for (let [inx, ent] of _res.entity.entries()) { - if (ent.customtype) { - flag = true - } - } - - if (!flag) { - var s = [] - if (old_data[sKey].length == new_data[sKey].length) { - for (let [i, sObj] of old_data[sKey].entries()) { - // console.log(sObj.refid, new_data[sKey][i], _res) - var n = await (updateData(sObj.refid, new_data[sKey][i], _res)) - s.push(n) - new_data[sKey][i] = {} - new_data[sKey][i].refid = sObj.refid - // console.log(new_data[sKey][i]) - // new_data[sKey][i] = old_data[sKey][i] - } - } else if (old_data[sKey].length > new_data[sKey].length) { - var s = [] - var diff = old_data[sKey].length - new_data[sKey].length - var upLen = old_data[sKey].length - diff - for (let i = 0; i < upLen; i++) { - var n = await (updateData(old_data[sKey][i].refid, new_data[sKey][i], _res)) - s.push(n) - new_data[sKey][i] = {} - new_data[sKey][i].refid = old_data[sKey][i].refid - } - for (let j = upLen; j < old_data[sKey].length; j++) { - var n = await (deleteData(old_data[sKey][j].refid, _res)) - s.push(n) - } - } else if (old_data[sKey].length < new_data[sKey].length) { - for (let i = 0; i < old_data[sKey].length; i++) { - var n = await (updateData(old_data[sKey][i].refid, new_data[sKey][i], _res)) - s.push(n) - new_data[sKey][i] = {} - new_data[sKey][i].refid = old_data[sKey][i].refid - } - for (let j = old_data[sKey].length; j < new_data[sKey].length; j++) { - var sres = await (saveData(new_data[sKey][j], _res)) - new_data[sKey][j] = {} - new_data[sKey][j].refid = sres - s.push(n) - } - } - // old_data[sKey] = s; - } else { - var s = [] - // console.log('/////////////////////////////////////////////////////////////////////////////////////', new_data[sKey]) - for (let [i, sObj] of old_data[sKey].entries()) { - var oData = await (getActualInstance(sObj.refid, _res)) - var n = await (compareData(sObj.refid, oData, new_data[sKey][i], _res)) - new_data[sKey][i] = {} - new_data[sKey][i].refid = sObj.refid - s.push(n) - } - } - } - } - // } - var s = await (updateData(id, new_data, res)) - return s - } -}) - -var dataLevelCheking = async (function(data) { - var flag = false - var res = await (getSchemaData(data[0].Schemaid)) - // console.log('res, ', res) - for (let ent of res.entity) { - if (ent.customtype) { - flag = true - } - } - if (flag) { - console.log('Custom Data >>>>>>>>>>>>>>>>>>>>>') - var response = await (setData(data)) - return response - } else { - console.log('Single Level Data >>>>>>>>>>>>>>>>>>>>>') - var response = await (singleLevelsave(data)) - return response - } -}) - -var singleLevelsave = async(function (data) { - // console.log('singleLevelsave', data) - var id = data[0].Schemaid - var res = await (getSchemaData(id)) - var arr = [] - for (let [inx, sObj] of data.entries()) { - var _res = await (saveData(sObj, res)) - console.log('_res....................', _res) - arr.push({ refid: _res }) - } - return arr - }) - // var filterInst = async(function(data, id) { - // for (let [i, fObj] of data.entries()) { - // if (fObj._id == id) { - // for (let k in fObj) { - // if (Array.isArray(fObj[k])) { - // for (let [j, item] of fObj[k].entries()) { - // fObj[k][j] = await (filterInst(data, item.refid)) - // } - // } else { - // return fObj - // } - // } - // } - // } - // }) -var findAllInstance = async(function () { - // var res = await (axios.get('http://' + config.get('host') + ':' + config.get('port') + '/schema')) - var allschema = await (getallSchemaData()) - var Instance = [] - for (let [i, sObj] of allschema.entries()) { - for (let [inx, apiObj] of dbapi.entries()) { - if (apiObj.db == sObj.database[0]) { - var _res = await (dbapi[inx].api.getflowsInstance(sObj.title, sObj.database[1])) - Instance.push(_res) - } - } - } - // console.log(Instance) - var Extract = [] - for (let [i, obj] of Instance.entries()) { - // console.log(obj) - for (let [inx, item] of obj.entries()) { - Extract.push(obj[inx]) - } - } - var fExtract = [] - // Filter Only SchemaId Instances - for (let [inz, idObj] of Extract.entries()) { - if (idObj.hasOwnProperty('Schemaid')) { - fExtract.push(idObj) - } - } - console.log('Extract', fExtract) - - for (let [inxx, mObj] of fExtract.entries()) { - fExtract[inxx] = await (getIdbySchemaId(mObj._id, mObj.Schemaid)) - } - return fExtract - // // var fIns = [] - // for (let [inx, fObj] of Extract.entries()) { - // // if (fObj.hasOwnProperty('Schemaid')) { - // for (let k in fObj) { - // if (Array.isArray(fObj[k])) { - // // console.log(fObj) - // for (let [j, item] of fObj[k].entries()) { - // // console.log() - // fObj[k][j] = await (filterInst(Extract, item.refid)) - // } - // } - // } - // // } - // } - // return Extract - // // var instance = [] - // // // console.log('dbapi', dbapi) - // // for (let [inx, mObj] of dbapi.entries()) { - // // // console.log('\n???', Obj) - // // var _res = await (mObj.api.getflowsInstance()) - // // // console.log('_res', _res) - // // instance.push(_res) - // // } - // // var Extract = [] - // // for (let [i, arr] of instance.entries()) { - // // for (let [j, item] of instance[i].entries()) { - // // Extract.push(item) - // // } - // // } - // // return Extract -}) - -var getIdbySchemaId = async(function (id, schemaid) { - // console.log(id, schemaid) - var res = await (getSchemaData(schemaid)) - // console.log(res) - for (let [i, db] of dbapi.entries()) { - if (db.db == res.database[0]) { - var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) - // console.log('_res', _res) - var status = false - // for (let k in _res) { - // if (Array.isArray(_res[k])) { - // status = true - // } - // } - for (let ent of res.entity) { - if (ent.customtype) { - status = true - } - } - if (!status) { - return _res - } else { - // for (let k in _res) { - // if (Array.isArray(_res[k])) { - // for (let [inx, iObj] of _res[k].entries()) { - // var _typeid = await (FindEntitytype(k, res)) - // _res[k][inx] = await (getIdbySchemaId(iObj.refid, _typeid)) - // } - // } - // } - for (let ent in res.entity) { - if (ent.customtype) { - for (let sObj of _res[ent.name]) { - sObj = await (getIdbySchemaId(sObj.refid, ent.type)) - } - // _res[ent.name] = await (getIdbySchemaId()) - } - } - return _res - } - } - } -}) - -var getIdbySchemaName = async(function (id, name) { - var Schema = await (getallSchemaData()) - var Schemaid; - for (let [i, obj] of Schema.entries()) { - if (obj.title == name) { - Schemaid = obj._id - } - } - var _res = await (getIdbySchemaId(id, Schemaid)) - return _res; -}) - -var removeIdbySchemaId = async(function (id, schemaid) { - var res = await (getSchemaData(schemaid)) - var _res = await (deleteData(id, res)) - return _res -}) - -var removeIdbySchemaName = async(function (id, name) { - var Schema = await (getallSchemaData()) - var Schemaid; - for (let [i, obj] of Schema.entries()) { - if (obj.title == name) { - Schemaid = obj._id - } - } - var _res = await (removeIdbySchemaId(id, Schemaid)) - return _res; -}) - -var createFunction = async (function(data) { - let res = await (getSchemaData(data[0].Schemaid)) - let _data = await (mynewCreateFunction(data, res)) - return _data -}) - -var getIdFunction = async (function(id, schemaid) { - let res = await (getSchemaData(schemaid)) - let _res = await (newgetFunction(id, res)) - return _res -}) - -var getNameFunction = async (function(id, title) { - let res = await (getSchemaDataByName(title)) - let _res = await (newgetFunction(id, res)) - return _res -}) - -var newgetFunction = async( function(id, res) { - let status = false - for (let ent of res.entity) { - if (ent.customtype) { - status = true - } - } - if (!status) { - // No custom type found - // for (let [i, db] of dbapi.entries()) { - // if (db.db == res.database[0]) { - // var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) - // return _res - // } - // } - let selectapi = require(allapi + res.database[0] + 'api') - let conndata = await (getConnectionData(res.database[1])) - let _res = await (selectapi.getThisflowsInstance(id, res.title, conndata)) - return _res - } else { - // Now get custom data also - // for (let [i, db] of dbapi.entries()) { - // if (db.db == res.database[0]) { - // var _res = await (db.api.getThisflowsInstance(id, res.title, res.database[1])) - // for (let e of res.entity) { - // if (e.customtype) { - // let mschema = await (getSchemaData(e.type)) - // for (let [i, mObj] of _res[e.name].entries()) { - // _res[e.name][i] = await (newgetFunction(mObj.refid, mschema)) - // } - // } - // } - // return _res - // } - // } - let selectapi = require(allapi + res.database[0] + 'api') - let conndata = await (getConnectionData(res.database[1])) - let _res = await (selectapi.getThisflowsInstance(id, res.title, conndata)) - for (let e of res.entity) { - if (e.customtype) { - let mschema = await (getSchemaData(e.type)) - for (let [i, mObj] of _res[e.name].entries()) { - _res[e.name][i] = await (newgetFunction(mObj.refid, mschema)) - } - } - } - return _res - } -}) - -class Service { - constructor(options) { - this.options = options || {}; - } - find(params) { - console.log('find feathers instance...'); - // var instance = [] - var s = findAllInstance() - return Promise.resolve(s) - // dbapi.forEach(function (db) { - // let _promise = new Promise((resolve, reject) => { - // db.api.getflowsInstance().then((data) => { - // resolve(data); - // }) - // }); - // instance.push(_promise) - // }); - // var _data = Promise.all(instance).then(function (response) { - // var Extract = [] - // // console.log(response) - // response.forEach(function (item) { - // item.forEach(function (result) { - // Extract.push(result) - // }) - // }) - // // console.log('..........', Extract) - // // for(let [i, obj] of Extract.entries()) { - // // for(let k in obj) { - // // if(k == 'database') { - // // } - // // else { - // // if(Array.isArray(obj[k])) { - // // for(let [index, insideObj] of obj[k].entries()) { - // // obj[k][index] = getInstance(insideObj.refid) - // // } - // // } - // // } - // // } - // // } - // // console.log('Extract', Extract) - // Extract = getallInstance(Extract) - // return Promise.resolve(Extract).then(function(d){ - // // console.log('Hieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee') - // return d - // }) - // }) - // return _data - // if (params.query.name == undefined) { - // var dbdata = dbapi.getflowsInstance(); - // } - // if (params.query.name !== undefined) { - // var dbdata = dbapi.getSchemaName(params.query.name); - // } - // return Promise.resolve(dbdata); - } - get(id, params) { - console.log('Get Instance feathers...'); - if (params.query.schemaid != undefined) { - // console.log('id::: from Get Instance::: ', id) - // var res = getIdbySchemaId(id, params.query.schemaid) - var res = getIdFunction(id, params.query.schemaid) - return Promise.resolve(res) - } else if (params.query.schemaname != undefined) { - // var res = getIdbySchemaName(id, params.query.schemaname) - var res = getNameFunction(id, params.query.schemaname) - return Promise.resolve(res) - } else { - return Promise.resolve('You Must Enter schemaid Or schemaname as parameter for result..') - } - // // dbapi.forEach(function (db) { - // // let _promise = new Promise((resolve, reject) => { - // // db.api.getThisflowsInstance(id).then((data) => { - // // resolve(data); - // // }) - // // }); - // // instance.push(_promise) - // // }); - // if (params.query.Schemaid !== undefined) { - // var dbdata = getInstance(id, params.query.Schemaid) - // } else { - // var dbdata = getInstance(id) - // } - // // console.log('dbdata....', dbdata) - // return Promise.resolve(dbdata) - } - create(data, params) { - console.log('.................................Create feathers...............................'); - if (data.data && Array.isArray(data.data) && data.data.length > 0) { - let res = createFunction(data.data) - return res - } else { - let err = new Error('Bad Request') - return err - } - // var resp = dataLevelCheking(data.data) - // return Promise.resolve(resp) - // // var flag = false - // // //var mainDt = data.data - // // for (let value in data.data[0]) { - // // // console.log(value) - // // if (Array.isArray(data.data[0][value])) { - // // // console.log(data[0][value]) - // // flag = true - // // } - // // } - // // console.log('Flag create', flag) - // // if (!flag) { - // // // var response = saveData(data.data[0], 'single') - // // // var _data = Promise.resolve(response).then(function(d) { - // // // console.log('response... ', d) - // // // var arr = [] - // // // arr.push({refid: d}) - // // // return arr - // // // }) - // // // .catch(function(err){ - // // // console.log('Error', err) - // // // }) - // // // return _data - // // // return saveData(data.data[0]) - // // var response = singleLevelsave(data.data) - // // return Promise.resolve(response).then(res => { - // // console.log('response..............', res) - // // return res - // // }).catch(err => { - // // console.log('Error', err) - // // return err - // // }) - // // } else { - // // // var id = data.data[0].Schemaid - // // // console.log('.............id ', id) - // // // let _promise = new Promise((resolve, reject) => { - // // // getSchemaDataEnt(id).then((data) => { - // // // resolve(data); - // // // }) - // // // }); - // // var response = setData(data.data) - // // // var response = checkDataObj(data.data) - // // return Promise.resolve(response) - // // // .then(function(d) { - // // // console.log('response... ', d) - // // // return d - // // // }) - // // // .catch(function(err){ - // // // console.log('Error', err) - // // // }) - // // } - } - // create(data, params) { - // console.log('create feathers...'); - // var _dbindex = _.findIndex(dbapi, { 'db': data.database[0]}); - // // console.log('data', _dbindex, dbapi[0]) - // var dbdata = dbapi[_dbindex].api.postflowsInstance(data); - // return Promise.resolve(dbdata); - // } - update(id, data, params) { - console.log('-------------------------- Update Feathers Instacne ----------------------') - // console.log('update ...', id, data) - var response = checkUpdateData(id, data.data) - return Promise.resolve(response) - // var dbdata = dbapi.putflowsInstance(data, id); - // return Promise.resolve(dbdata); - } - patch(id, data, params) { - // var dbdata = dbapi.putSchema(data, id); - return Promise.resolve(data); - } - remove(id, params) { - if (params.query.schemaid != undefined) { - var res = removeIdbySchemaId(id, params.query.schemaid) - return Promise.resolve(res) - } else if (params.query.schemaname != undefined) { - var res = removeIdbySchemaName(id, params.query.schemaname) - return Promise.resolve(res) - } else { - return Promise.resolve('You Must Enter schemaid Or schemaname as parameter for result..') - } - // var dbdata = dbapi.deleteThisflowsInstance(id); - // return Promise.resolve(dbdata); - // return Promise.resolve({ id }); - } -} -module.exports = function (options) { - return new Service(options); -}; -module.exports.Service = Service; diff --git a/service/src/services/instance/instance.filters.js b/service/src/services/instance/instance.filters.js deleted file mode 100644 index b3c0c72..0000000 --- a/service/src/services/instance/instance.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the instance service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/instance/instance.hooks.js b/service/src/services/instance/instance.hooks.js deleted file mode 100644 index 5a97dd4..0000000 --- a/service/src/services/instance/instance.hooks.js +++ /dev/null @@ -1,132 +0,0 @@ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -let axios = require('axios') -const app = require('config'); -var serverUrl = 'http://' + app.host + ':' + app.port + '/' -const config = require('../config') -const _ = require('lodash') -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [ - hook => aftercreateInstance(hook) - ], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; -var aftercreateInstance = async(function(hook) { - console.log('hook....', hook.result) - let outputObject = []; - // console.log('hook.result', hook.result) - // console.log('hook.data', hook.data) - let flowinstace = await (axios.get(serverUrl + 'flowz-instance/' + hook.data.instanceid)) - let process = _.find(flowinstace.data.processList, function(o) { return o.id == hook.data.processid; }); - for (var element in hook.result) { - let object = await (getinstancevalue(hook.result[element].refid, process.inputProperty[0].entityschema.id)) - outputObject.push(object); - } - // console.log('hook.data.processid', hook.data.processid) - // console.log('hook.data.instanceid', hook.data.instanceid) - // console.log('process', process.inputProperty[0].entityschema._id) - if (process != undefined) { - if (process.inputProperty[0].approvalClass !== undefined) { - addtoApprovalClass(hook.data.instanceid, outputObject, hook.data.processid, hook.data.jobId) - } else { - AddValueToJobQue(hook.data.instanceid, outputObject, hook.data.processid, hook.data.jobId) - } - } else { - AddValueToJobQue(hook.data.instanceid, outputObject, hook.data.processid, hook.data.jobId) - } - // AddValueToJobQue(hook.data.instanceid, outputObject, hook.data.processid) -}); -var addtoApprovalClass = async(function(instanceid, inputdata, processid, jobId) { - const Queue = require('rethinkdb-job-queue') - //--------------- Connection Options ----------------- - const cxnOptions = config.rethinkdb - //--------------- Queue Options ----------------- - const qOptions = { - name: app.get('approvar_table') - } - const q = new Queue(cxnOptions, qOptions) - var jobOptions = {} - jobOptions.data = {} - // jobOptions.data.fId = id - jobOptions.data = { - "fId": instanceid, - "input": inputdata, - "isExternalInput": true, - "job": processid, - "jobId": jobId - } - jobOptions.timeout = app.get('qJobTimeout') - jobOptions.retryMax = app.get('qJobRetryMax') - //--------------- Create new job ----------------- - const job = q.createJob(jobOptions) - //--------------- Add job ----------------- - q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) - axios.get(serverUrl + 'flowz-instance/' + instanceid) - .then(response => { - let log = _.chain(response.data.process_log).orderBy(['lastModified'], ['asc']).findLast((f) => { return f.jobId === jobId }).clone().value() - log.status = 'sendForApproval' - log.lastModified = new Date() - response.data.process_log.push(log) - axios.put(serverUrl + 'flowz-instance/' + instanceid, response.data) - .then(res => { - console.log('Status updated for approval : sendForApproval') - }) - .catch(error => { - console.log('Error : ', error) - }) - }) -}) -var getinstancevalue = async(function(id, schemaid) { - console.log('id::: ', id, 'schemaid::: ', schemaid) - var response = await (axios.get(serverUrl + 'instance/' + id + '?schemaid=' + schemaid)) - // console.log('response', response) - return response.data -}); - -function AddValueToJobQue(flowid, data, processid, jobId) { - const Queue = require('rethinkdb-job-queue') - const cxnOptions = config.rethinkdb - const qOptions = { - name: app.get('scheduler_table') - } - const q = new Queue(cxnOptions, qOptions) - var jobOptions = {} - jobOptions.data = {} - jobOptions.data = { - "fId": flowid, - "input": data, - "isExternalInput": true, - "job": processid, - "jobId": jobId - } - console.log('jobOptions', jobOptions) - jobOptions.timeout = app.get('qJobTimeout') - jobOptions.retryMax = app.get('qJobRetryMax') - const job = q.createJob(jobOptions) - q.addJob(job).then((savedJobs) => {}).catch(err => console.error(err)) -} \ No newline at end of file diff --git a/service/src/services/instance/instance.service.js b/service/src/services/instance/instance.service.js deleted file mode 100644 index 28dee71..0000000 --- a/service/src/services/instance/instance.service.js +++ /dev/null @@ -1,21 +0,0 @@ -// Initializes the `instance` service on path `/instance` -const createService = require('./instance.class.js'); -const hooks = require('./instance.hooks'); - -module.exports = function () { - const app = this; - const paginate = app.get('paginate'); - - const options = { - name: 'instance', - paginate - }; - - // Initialize our service with any options it requires - app.use('/instance', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('instance'); - - service.hooks(hooks); -}; diff --git a/service/src/services/logs/logs.filters.js b/service/src/services/logs/logs.filters.js deleted file mode 100644 index a8694bb..0000000 --- a/service/src/services/logs/logs.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the logs service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/logs/logs.hooks.js b/service/src/services/logs/logs.hooks.js deleted file mode 100644 index 55553eb..0000000 --- a/service/src/services/logs/logs.hooks.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [ - hook => blockUpdate(hook) - ], - update: [ - hook => blockUpdate(hook) - ], - patch: [ - hook => blockUpdate(hook) - ], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -function blockUpdate(hook) { - hook.result = hook.data -} diff --git a/service/src/services/logs/logs.service.js b/service/src/services/logs/logs.service.js deleted file mode 100644 index 9875317..0000000 --- a/service/src/services/logs/logs.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./logs.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: app.get('system_logs_table'), - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/logs', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('logs'); - service.hooks(hooks); -}; diff --git a/service/src/services/receive-form/receive-form.class.js b/service/src/services/receive-form/receive-form.class.js deleted file mode 100644 index 5f3a3eb..0000000 --- a/service/src/services/receive-form/receive-form.class.js +++ /dev/null @@ -1,122 +0,0 @@ -/* eslint-disable no-unused-vars */ -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -let config = require('config'); -var axios = require('axios'); -// host=aws-us-east-1-portal.30.dblayer.com port=16868 -var tName = 'receive_form'; -var r = require('rethinkdbdash')({ - host: config.get('rdb_host').trim(), - port: config.get('rdb_port').trim(), - db: 'FlowzEngine' - // rauth: "51b2885598be1c2c1243a5c9c3548ad2", - // cert: "/ca.crt" -}); -// host: '159.203.134.27',port: '28015', -class Service { - constructor(options) { - this.options = options || {}; - } - find(params) { - console.log('find feathers...'); - var res = findFunction() - return Promise.resolve(res) - } - get(id, params) { - console.log('Get feathers...'); - var res = getFunction(id) - return Promise.resolve(res) - } - create(data, params) { - console.log('create feathers...'); - var res = createFunction(data) - return Promise.resolve(res) - } - update(id, data, params) { - console.log('Update feathers...'); - var res = updateFunction(id, data) - return Promise.resolve(res) - } - patch(id, data, params) { - var res = patchFunction(id, data) - return Promise.resolve(res) - } - remove(id, params) { - console.log('Delete feathers...') - var res = removeFunction(id) - return Promise.resolve(res) - } -} - -var findFunction = async function () { - let result - await r.table(tName) - .run() - .then(async function (response) { - console.log(response); - result = await response - }) - .error(function (err) { - console.log(err); - }) - return result -} - -var getFunction = async function (id) { - let result - await r.table(tName) - .get(id) - .run() - .then(async function (response) { - console.log(response); - result = await response - }) - .error(function (err) { - console.log(err); - }) - return result -} - -var createFunction = async function (data) { - r.table(tName) - .insert(data) - .run() - .then(function (response) { - console.log('Success ', response); - }) - .error(function (err) { - console.log('error occurred ', err); - }) - return data -} - -var updateFunction = async function (id, data) { - - return id -} - -var patchFunction = async function (id, data) { - - return id -} - -var removeFunction = async function (id) { - let result - await r.table(tName) - .get(id) - .delete() - .run() - .then(async function (response) { - console.log(response); - result = await response - }) - .error(function (err) { - console.log(err); - }) - return result -} - -module.exports = function (options) { - return new Service(options); -}; -module.exports.Service = Service; diff --git a/service/src/services/receive-form/receive-form.filters.js b/service/src/services/receive-form/receive-form.filters.js deleted file mode 100644 index c76b49c..0000000 --- a/service/src/services/receive-form/receive-form.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the receive-form service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/receive-form/receive-form.hooks.js b/service/src/services/receive-form/receive-form.hooks.js deleted file mode 100644 index 1022974..0000000 --- a/service/src/services/receive-form/receive-form.hooks.js +++ /dev/null @@ -1,33 +0,0 @@ - - -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; diff --git a/service/src/services/receive-form/receive-form.service.js b/service/src/services/receive-form/receive-form.service.js deleted file mode 100644 index 293ec50..0000000 --- a/service/src/services/receive-form/receive-form.service.js +++ /dev/null @@ -1,33 +0,0 @@ -// Initializes the `receive-form` service on path `/receive-form` -const createService = require('./receive-form.class.js'); -const hooks = require('./receive-form.hooks'); - -module.exports = function () { - const app = this; - const paginate = app.get('paginate'); - const swagger = require('feathers-swagger'); - - const options = { - name: 'receive-form', - paginate - }; - - app.configure(swagger({ - docsPath: '/docs', - prefix: /api\/v\d\//, - versionPrefix: /v\d/, - uiIndex: true, - info: { - title: 'A test', - description: 'A description', - } - })) - - // Initialize our service with any options it requires - app.use('/receive-form', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('receive-form'); - - service.hooks(hooks); -}; diff --git a/service/src/services/scheduler/scheduler.filters.js b/service/src/services/scheduler/scheduler.filters.js deleted file mode 100644 index 6c22dca..0000000 --- a/service/src/services/scheduler/scheduler.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the scheduler service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/scheduler/scheduler.hooks.js b/service/src/services/scheduler/scheduler.hooks.js deleted file mode 100644 index 43640fb..0000000 --- a/service/src/services/scheduler/scheduler.hooks.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; \ No newline at end of file diff --git a/service/src/services/scheduler/scheduler.service.js b/service/src/services/scheduler/scheduler.service.js deleted file mode 100644 index 4be6115..0000000 --- a/service/src/services/scheduler/scheduler.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./scheduler.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: app.get('scheduler_table'), - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/scheduler', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('scheduler'); - service.hooks(hooks); -}; diff --git a/service/src/services/schemamapping/schemamapping.filters.js b/service/src/services/schemamapping/schemamapping.filters.js deleted file mode 100644 index 522987d..0000000 --- a/service/src/services/schemamapping/schemamapping.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the schemamapping service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/schemamapping/schemamapping.hooks.js b/service/src/services/schemamapping/schemamapping.hooks.js deleted file mode 100644 index 5f0a280..0000000 --- a/service/src/services/schemamapping/schemamapping.hooks.js +++ /dev/null @@ -1,38 +0,0 @@ -module.exports = { - before: { - all: [], - find: [ - hooks => beforeFind(hooks) - ], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; - -function beforeFind(hook) { - if (hook.params.query && hook.params.query.$paginate) { - hook.params.paginate = hook.params.query.$paginate === 'false' || hook.params.query.$paginate === false; - delete hook.params.query.$paginate; - } -} diff --git a/service/src/services/schemamapping/schemamapping.service.js b/service/src/services/schemamapping/schemamapping.service.js deleted file mode 100644 index ba5fc24..0000000 --- a/service/src/services/schemamapping/schemamapping.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./schemamapping.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'schemamapping', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/schemamapping', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('schemamapping'); - service.hooks(hooks); -}; \ No newline at end of file diff --git a/service/src/services/settings/settings.class.js b/service/src/services/settings/settings.class.js deleted file mode 100644 index 2c1e2a5..0000000 --- a/service/src/services/settings/settings.class.js +++ /dev/null @@ -1,490 +0,0 @@ -/* eslint-disable no-unused-vars */ -var express = require('express'); -var path = require('path'); -var CryptoJS = require("crypto-js"); -let async = require('asyncawait/async'); -let await = require('asyncawait/await'); -// var db = require('../DBConnection/db'); -var fileName = '../DBConnection/db.json'; -var fs = require('fs'); -var jsonfile = require('jsonfile') -var _ = require('lodash') -var endecrypt = require('../encryption/security') - -// check_Connection -var mongodb = require('mongodb'); -var elasticsearch = require('elasticsearch'); -var MongoClient = require('mongodb').MongoClient; - -var check_Connection = async(function (db, data) { - // console.log('data..', data, 'db', db) - if (db == 'mongo') { - console.log("MongoDB.............."); - var _res; - if (data.username != undefined && data.password != undefined) { - // console.log('.............') - if (data.username != "" && data.password != "") { - _res = await (MongoClient.connect('mongodb://' + data.username + ':' + data.password + '@' + data.host + ':' + data.port + '/' + data.dbname)) - } else { - _res = await (MongoClient.connect('mongodb://' + data.host + ':' + data.port + '/' + data.dbname)) - } - } else { - // console.log('.............111') - if (data.dbname != undefined) {} else { - _res = await (MongoClient.connect('mongodb://' + data.host + ':' + data.port)) - } - } - return _res - } else if (db == 'rethink') { - // console.log("RethinkDB.............."); - var r = await (require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }).connect({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - })) - return r - } - // console.log('response>>>>>>>>>>>>', _res) - // , function(err, database) { - // if(err){ - // console.log('err', err) - // return 'false' - // } - // else { - // console.log('Mongo connected....',database); - // return 'true' - // } - // }); - else if (db == 'rethink') { - // console.log("RethinkDB.............."); - var r = await (require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }).connect({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - })) - return r - // ,function(err,response){ - // if(err){ - // console.log('XXXXXXXXXXXXXXXXXXXXXXXXX',err); - // return 'false' - // } - // else { - // console.log('EEEEEEEEEEEEEEEEEEEEEEEEEEE',response); - // return'true' - // } - // }) - } else if (db == 'elastic') { - // console.log("Elastic Search.............."); - var client = await (new elasticsearch.Client({ - host: data.host + ':' + data.port, - log: 'error' - }).ping({ - requestTimeout: 1000 - })) - // console.log(client) - return client - // , function (error) { - // if (error) { - // return 'false' - // } else { - // return 'true' - // } - // }); - } else if (db == 'mysql') { - return 'success' - } else { - var _res = new error() - return _res - } -}) - -var getConnectionData = async(function (db, data) { - // console.log('getConnectionData..............') - if (db == 'mongo') { - var mongoDB; - if (data.username != "" && data.password != "") { - mongoDB = 'mongodb://' + data.username + ':' + data.password + '@' + data.host + ':' + data.port + '/' + data.dbname; - } else { - mongoDB = 'mongodb://' + data.host + ':' + data.port + '/' + data.dbname; - } - var conn = await (MongoClient.connect(mongoDB)) - // console.log('conn', conn); - // var collections = await (conn.listCollections().toArray()); - // console.log('collections', collections) - - var result = await (conn.listCollections().toArray()) - for (let [inx, obj] of result.entries()) { - for (let k in obj) { - if (k !== 'name') { - delete obj[k] - } - var a = await (conn.collection(obj.name).find().toArray()) - var cols =[] - if(a[0] != undefined) { - for(let k in a[0]) { - cols.push({name: k}) - } - } - } - result[inx].columns = cols; - } - // console.log('Data........................', result) - return result - } else if (db == 'rethink') { - // console.log('match found rethink') - var connection = require('rethinkdbdash')({ - username: data.username, - password: data.password, - port: data.port, - host: data.host, - db: data.dbname - }); - // console.log('conn.......', connection) - // var result = await (connection.table('schema').run()) - var result = await (connection.db(data.dbname).tableList()) - for (let [inx, val] of result.entries()) { - var a = await (connection.db(data.dbname).table(val).run()) - var cols =[] - if(a[0] != undefined) { - for(let k in a[0]) { - cols.push({name: k}) - } - } - result[inx] = { name: val, columns: cols} - } - // console.log('result............', result) - return result - } else if (db == 'elastic') { - // console.log('match found rethink') - var connection = new elasticsearch.Client({ - host: data.host + ':' + data.port + '/' + data.dbname - }); - var data1 = []; - var result = await ( - connection.search({ - body: { - aggs: { - typesAgg: { - terms: { - field: '_type', - size: 200 - } - } - }, - size: 0 - } - })) - var conn = new elasticsearch.Client({ - host: data.host + ':' + data.port - }); - // console.log('result........', result.aggregations.typesAgg.buckets) - for (let [i, obj] of result.aggregations.typesAgg.buckets.entries()) { - // var mapping = await ( - // conn.indices.getMapping({ - // index: data.dbname, - // type: obj.key - // })) - // console.log('..............', mapping[data.dbname].mappings[obj.key].properties) - // data1.push({ name: obj.key, columns: mapping[data.dbname].mappings[obj.key].properties }) - var data = [] - var a = await (connection.search({ - index: data.dbname, - type: obj.key, - body: { - query: { - match_all: { } - }, - } - })) - a.hits.hits.forEach(function(hit){ - var item = hit._source; - item._id = hit._id; - data.push(item); - }) - var cols =[] - if(data[0] != undefined) { - for(let k in data[0]) { - cols.push({name: k}) - } - } - // result[inx] = { name: val, columns: cols} - data1.push({ name: obj.key, columns: cols }) - } - // console.log(data1) - return data1; - } else if (db == 'mysql') { - var s = [] - return s - } else { - return 'not_found_db' - } -}) - -var getAllSettings = async(function () { - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (dbdata) { - // console.log(dbdata) - _.forEach(dbdata, function (instances, db) { - // console.log(instances) - _.forEach(instances.dbinstance, function (item, i) { - // console.log(dbdata[db].dbinstance[i]) - delete dbdata[db].dbinstance[i].username - delete dbdata[db].dbinstance[i].password - }) - }) - return dbdata - }); - return _data -}) - -var getDbInstances = async(function (dbname) { - var _res = await (getAllSettings()) - var instances; - for (let db in _res) { - if (db == dbname) { - instances = _res[db].dbinstance - // console.log(_res[db].dbinstance) - } - } - return instances -}) - -class Service { - constructor(options) { - this.options = options || {}; - } - - find(params) { - if (params.query.dbname != undefined) { - var _res = getDbInstances(params.query.dbname) - return Promise.resolve(_res) - } else { - var _res = getAllSettings() - return Promise.resolve(_res) - } - // let result = new Promise((resolve, reject) => { - // fs.readFile(path.join(__dirname, '../DBConnection/db.json'),function (err, data) { - // if (err) return console.log(err); - // resolve(JSON.parse(data)); - // }); - // }); - // var _data = Promise.resolve(result).then(function(dbdata){ - // // console.log(dbdata) - // _.forEach(dbdata, function(instances, db){ - // // console.log(instances) - // _.forEach(instances.dbinstance, function(item, i){ - // // console.log(dbdata[db].dbinstance[i]) - // delete dbdata[db].dbinstance[i].username - // delete dbdata[db].dbinstance[i].password - // }) - // }) - // return dbdata - // }); - // return _data - } - - get(id, params) { - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (dbdata) { - // console.log(dbdata) - var instance; - _.forEach(dbdata, function (instances, db) { - var obj = _.find(instances.dbinstance, { id: id }) - if (obj != undefined) { - instance = obj - instance.selectedDb = db - } - }) - return instance - }); - return _data - } - - create(data, params) { - console.log('********* Inside Create Service *********\n'); - if (params.query.check != undefined) { - if (params.query.check == 'mysql') { - return Promise.resolve({ result: true, data: [] }) - } else { - var _res = check_Connection(params.query.check, data) - return Promise.resolve(_res).then(function (res) { - // console.log('result.................', res) - var abc = getConnectionData(params.query.check, data) - return Promise.resolve(abc).then(function (__res) { - return { result: true, data: __res } - }) - // return {result: true} - }) - .catch(function (err) { - // console.log('Error..............', err) - return { result: false } - }) - } - } else { - if (params.query.checkconn != undefined) { - var _res = check_Connection(params.query.checkconn, data) - return Promise.resolve(_res).then(function (res) { - return { result: true } - }).catch(function (err) { - // console.log('Error..............', err) - return { result: false } - }) - } else { - //encryption - data.password = endecrypt.encrypt(data.password); - // console.log(data) - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (res) { - var selectDB = data.selectedDb; - delete data.selectedDb; - - //check connection alredy exist or not - var check = '' - _.map(res[selectDB].dbinstance, function (instance) { - if (instance.host == data.host && instance.port == data.port && instance.dbname == data.dbname) { - check = 'Exist' - } - }) - if (check == 'Exist') { - return 'Exist' - } else { - //check connection is isdefault true - if (data.isdefault) { - _.forEach(res, (v, k) => { - _.forEach(res[k].dbinstance, function (inst) { - inst.isdefault = false - }) - }) - } - // console.log(res[selectDB].dbinstance) - res[selectDB].dbinstance.push(data) - let result1 = new Promise((resolve, reject) => { - jsonfile.writeFile(path.join(__dirname, '../DBConnection/db.json'), res, { spaces: 4 }, function (err) { - if (err) return 'Error'; - resolve(res); - }); - }); - Promise.resolve(result1); - return 'Success' - } - }); - return _data; - } - } - } - - update(id, data, params) { - console.log('Inside Update Settings...') - var updatedb = params.query.db - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (res) { - var index_instance = _.findKey(res[updatedb].dbinstance, { id: id }); - // console.log('instance', index_instance) - res[updatedb].dbinstance[index_instance].isenable = data.isenable - let result1 = new Promise((resolve, reject) => { - jsonfile.writeFile(path.join(__dirname, '../DBConnection/db.json'), res, { spaces: 4 }, function (err) { - if (err) return 'Error'; - resolve(res); - }); - }); - return Promise.resolve(result1); - }); - return _data; - } - - patch(id, data, params) { - console.log('Inside patch Settings...') - var updatedb = params.query.db - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (res) { - var index_instance = _.findKey(res[updatedb].dbinstance, { id: id }); - // console.log('instance', index_instance) - for (let db in res) { - for (let [inx, inst] of res[db].dbinstance.entries()) { - inst.isdefault = false - } - } - res[updatedb].dbinstance[index_instance].isdefault = data.isdefault - let result1 = new Promise((resolve, reject) => { - jsonfile.writeFile(path.join(__dirname, '../DBConnection/db.json'), res, { spaces: 4 }, function (err) { - if (err) return 'Error'; - resolve(res); - }); - }); - return Promise.resolve(result1); - }); - return _data; - } - - remove(id, params) { - console.log('Inside Delete Settings...') - var updatedb = params.query.db - let result = new Promise((resolve, reject) => { - fs.readFile(path.join(__dirname, '../DBConnection/db.json'), function (err, data) { - if (err) return console.log(err); - resolve(JSON.parse(data)); - }); - }); - var _data = Promise.resolve(result).then(function (res) { - var index_instance = _.findKey(res[updatedb].dbinstance, { id: id }); - // console.log('instance', index_instance) - res[updatedb].dbinstance.splice(index_instance, 1) - let result1 = new Promise((resolve, reject) => { - jsonfile.writeFile(path.join(__dirname, '../DBConnection/db.json'), res, { spaces: 4 }, function (err) { - if (err) return 'Error'; - resolve(res); - }); - }); - return Promise.resolve(result1); - }); - return _data; - // return Promise.resolve({ id }); - } -} - -module.exports = function (options) { - return new Service(options); -}; - -module.exports.Service = Service; diff --git a/service/src/services/settings/settings.filters.js b/service/src/services/settings/settings.filters.js deleted file mode 100644 index 68f5738..0000000 --- a/service/src/services/settings/settings.filters.js +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the settings service.'); // eslint-disable-line no-console - -module.exports = function (data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; diff --git a/service/src/services/settings/settings.hooks.js b/service/src/services/settings/settings.hooks.js deleted file mode 100644 index 1022974..0000000 --- a/service/src/services/settings/settings.hooks.js +++ /dev/null @@ -1,33 +0,0 @@ - - -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; diff --git a/service/src/services/settings/settings.service.js b/service/src/services/settings/settings.service.js deleted file mode 100644 index eb67acc..0000000 --- a/service/src/services/settings/settings.service.js +++ /dev/null @@ -1,21 +0,0 @@ -// Initializes the `settings` service on path `/settings` -const createService = require('./settings.class.js'); -const hooks = require('./settings.hooks'); - -module.exports = function () { - const app = this; - const paginate = app.get('paginate'); - - const options = { - name: 'settings', - paginate - }; - - // Initialize our service with any options it requires - app.use('/settings', createService(options)); - - // Get our initialized service so that we can register hooks and filters - const service = app.service('settings'); - - service.hooks(hooks); -}; diff --git a/service/src/services/usermaster/usermaster.filters.js b/service/src/services/usermaster/usermaster.filters.js deleted file mode 100644 index 5968061..0000000 --- a/service/src/services/usermaster/usermaster.filters.js +++ /dev/null @@ -1,5 +0,0 @@ -/* eslint no-console: 1 */ -// console.warn('You are using the default filter for the flowz service.'); // eslint-disable-line no-console -module.exports = function(data, connection, hook) { // eslint-disable-line no-unused-vars - return data; -}; \ No newline at end of file diff --git a/service/src/services/usermaster/usermaster.hooks.js b/service/src/services/usermaster/usermaster.hooks.js deleted file mode 100644 index 43640fb..0000000 --- a/service/src/services/usermaster/usermaster.hooks.js +++ /dev/null @@ -1,29 +0,0 @@ -module.exports = { - before: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - after: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - }, - error: { - all: [], - find: [], - get: [], - create: [], - update: [], - patch: [], - remove: [] - } -}; \ No newline at end of file diff --git a/service/src/services/usermaster/usermaster.service.js b/service/src/services/usermaster/usermaster.service.js deleted file mode 100644 index a330ba9..0000000 --- a/service/src/services/usermaster/usermaster.service.js +++ /dev/null @@ -1,18 +0,0 @@ -// Initializes the `emailtemplate` service on path `/emailtemplate` -const createService = require('feathers-rethinkdb'); -const hooks = require('./usermaster.hooks'); -module.exports = function() { - const app = this; - const Model = app.get('rethinkdbClient'); - const paginate = app.get('paginate'); - const options = { - name: 'usermaster', - Model, - paginate - }; - // Initialize our service with any options it requires - app.use('/usermaster', createService(options)); - // Get our initialized service so that we can register hooks and filters - const service = app.service('usermaster'); - service.hooks(hooks); -}; \ No newline at end of file diff --git a/service/test/services/approval.test.js b/service/test/services/approval.test.js deleted file mode 100644 index ce43833..0000000 --- a/service/test/services/approval.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'approval\' service', () => { - it('registered the service', () => { - const service = app.service('approval'); - - assert.ok(service, 'Registered the service'); - }); -}); diff --git a/service/test/services/email-receive.test.js b/service/test/services/email-receive.test.js deleted file mode 100644 index 695e00d..0000000 --- a/service/test/services/email-receive.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'email-receive\' service', () => { - it('registered the service', () => { - const service = app.service('email-receive'); - - assert.ok(service, 'Registered the service'); - }); -}); diff --git a/service/test/services/email-templates.test.js b/service/test/services/email-templates.test.js deleted file mode 100644 index 7381d83..0000000 --- a/service/test/services/email-templates.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'email-templates\' service', () => { - it('registered the service', () => { - const service = app.service('email-templates'); - - assert.ok(service, 'Registered the service'); - }); -}); diff --git a/service/test/services/instance.test.js b/service/test/services/instance.test.js deleted file mode 100644 index caeec05..0000000 --- a/service/test/services/instance.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'instance\' service', () => { - it('registered the service', () => { - const service = app.service('instance'); - - assert.ok(service, 'Registered the service'); - }); -}); diff --git a/service/test/services/settings.test.js b/service/test/services/settings.test.js deleted file mode 100644 index fdcb563..0000000 --- a/service/test/services/settings.test.js +++ /dev/null @@ -1,10 +0,0 @@ -const assert = require('assert'); -const app = require('../../src/app'); - -describe('\'settings\' service', () => { - it('registered the service', () => { - const service = app.service('settings'); - - assert.ok(service, 'Registered the service'); - }); -}); From 5bd332f41a159a8e9dd2f92c312d72f0c5395f9c Mon Sep 17 00:00:00 2001 From: chirag Date: Tue, 11 Sep 2018 12:50:58 +0530 Subject: [PATCH 285/419] remove await and update user details call --- client/src/main.js | 183 +-- client/src/pages/Login.vue | 20 +- client/src/store/actions.js | 19 +- client/src/store/mutations.js | 4 +- service/package-lock.json | 2350 ++++++++++++++++++++------------- service/package.json | 2 +- 6 files changed, 1469 insertions(+), 1109 deletions(-) diff --git a/client/src/main.js b/client/src/main.js index 311112b..fbe02a5 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -119,17 +119,11 @@ import psl from 'psl' router.beforeEach((to, from, next) => { iView.LoadingBar.start() iView.LoadingBar.config({ color: '#0e406d' }) - // window.console.log('Transition', transition) - // router.app.$store.state.token - let obId = false + // window.console.log('Transition', transition) + // router.app.$store.state.token let location = psl.parse(window.location.hostname) // get parent domain location = location.domain === null ? location.input : location.domain - if (to.query.ob_id) { - // let location = psl.parse(window.location.hostname) // get parent domain - // location = location.domain === null ? location.input : location.domain - // router.app.$cookie.set('auth_token', to.query.ob_id, { expires: 1, domain: location }) - obId = to.query.ob_id - } + if (to.query.token) { router.app.$cookie.set('auth_token', to.query.token, { expires: 1, domain: location }) } @@ -141,164 +135,36 @@ router.beforeEach((to, from, next) => { } else { delete axios.defaults.headers.common['authorization'] } - if (to.matched.some(record => record.meta.requiresAuth) && obId) { - next({ - path: '/email-verification', - query: { ob_id: obId } - }) - } else if (to.matched.some(record => record.meta.requiresAuth) && (!token || token === 'null')) { + + if (to.matched.some(record => record.meta.requiresAuth) && (!token || token === 'null')) { next({ path: '/login' // query: { redirect: to.fullPath } }) } else { if (to.matched.some(record => record.meta.requiresAuth) || (to.path === '/login')) { - // console.log('Hereeeeeeee', to.path) - // to.matched.some(record => { - // console.log(record.meta.role) - // }) - store.dispatch('authenticate', token).then(response => { - // console.log('authenticate', response) - // if (store.state.subscription !== '' && store.state.subscription !== null) { - if (response.hasOwnProperty('package')) { - // if (response.package[store.state.subscription] === undefined) { - if (store.state.subscription !== '' && store.state.subscription !== undefined) { - if (response.package[store.state.subscription].role === 'admin') { - store.commit('SET_ROLE', 1) - // next({ - // path: '/admin/dashboard' - // }) - } else { - store.commit('SET_ROLE', 2) - // next({ - // path: '/' - // }) - } + store.dispatch('authenticateToken', token).then(response => { + // get user role + if (to.path !== '/') { + if (to.matched.find(record => record.meta.role).meta.role.indexOf(parseInt(store.state.role)) === -1) { + next({ + path: '/' + }) } else { - if (response.hasOwnProperty('defaultSubscriptionId')) { - store.state.subscription = response.defaultSubscriptionId - if (response.package[store.state.subscription].role === 'admin') { - store.commit('SET_ROLE', 1) - // next({ - // path: '/admin/dashboard' - // }) - } else { - store.commit('SET_ROLE', 2) - // next({ - // path: '/' - // }) - } - } + next() } - // } } else { - store.commit('SET_ROLE', 2) - } - // } - - store.commit('SET_USER', response) - // get user role - if (to.matched.some(record => record.meta.role)) { - // console.log('1') - // if (store.state.subscription !== '' && store.state.subscription !== null) { - // console.log('2') - // if (response.hasOwnProperty('package')) { - // console.log('3') - // if (response.package[store.state.subscription].role === 'admin') { - // console.log('4') - // store.commit('SET_ROLE', 1) - // // next({ - // // path: '/admin/dashboard' - // // }) - // } else { - // console.log('5') - // store.commit('SET_ROLE', 2) - // // next({ - // // path: '/' - // // }) - // } - // } else { - // console.log('6') - // store.commit('SET_ROLE', 2) - // // next({ - // // path: '/' - // // }) - // } - // } else { - // // console.log('7') - // store.commit('SET_ROLE', 2) - // // next({ - // // path: '/' - // // }) - // } - // store.dispatch('getUser', response.email).then(user => { - // if (user) { - // console.log('8') - if (store.state.role !== null) { - // store.commit('SET_ROLE', 2) - // console.log('9') - // if (to.matched.find(record => record.meta.role).meta.role.indexOf(parseInt(store.state.role)) === -1) { - // console.log('10') - // next({ - // path: '/login' - // // query: { redirect: to.fullPath } - // }) - // // next() - // } else { - // console.log('11') - // next() - // } - // next({ - // path: parseInt(store.state.role) === 1 ? '/admin/dashboard' : '/' - // }) - // console.log('.........', to.path, store.state.role) - if (to.path === '/') { - if (store.state.role === 1) { - next({ - path: '/admin/dashboard' - }) - } else { - next({ - path: '/dashboard' - }) - } - } else { - if (to.matched.find(record => record.meta.role).meta.role.indexOf(parseInt(store.state.role)) === -1) { - next({ - path: '/' - }) - } else { - next() - } - } + if (store.state.role === 1) { + next({ + path: '/admin/dashboard' + }) } else { - // console.log('12') - store.commit('SET_ROLE', 2) next({ - path: '/' + path: '/dashboard' }) } - // } else { - // next() - // } - // }).catch(error => { - // console.log(error) - // // window.console.log('Not authenticated') - // next({ - // path: '/login' - // // query: { redirect: to.fullPath } - // }) - // }) - } else { - // console.log('13') - next({ - path: (to.path === '/login') ? (parseInt(store.state.role) === 1 ? '/admin/dashboard' : '/') : to.path - }) - // next() } - }).catch(error => { - console.log(error.message) - // window.console.log('Not authenticated') + }).catch(() => { router.app.$cookie.delete('auth_token', { domain: location }) store.commit('SET_TOKEN', null) store.commit('SET_USER', null) @@ -306,23 +172,12 @@ router.beforeEach((to, from, next) => { if (to.path !== '/login') { next({ path: '/login' - // query: { redirect: to.fullPath } }) } else { next() } }) } else { - // console.log('16') - // let path = token ? ((to.path === '/login') ? (parseInt(store.state.role) === 1 ? '/admin/dashboard' : '/') : to.path) : '/login' - // console.log(path) - // path: (token ? ((to.path === '/login') ? (parseInt(store.state.role) === 1 ? '/admin/dashboard' : '/') : to.path) : '/login') - - // console.log('login ===> ') - // next({ - // path: '/login' - // }) - next() } } diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index f1587f5..f5d8b05 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -147,7 +147,7 @@ export default { var auth = await modelAuthentication.login(this.formLogin).catch(error => { if (error.response) { this.$Message.error(error.response.data) - } else + } else { this.$Message.error("Fail login.") } @@ -159,7 +159,23 @@ export default { let location = psl.parse(window.location.hostname) // get parent domain location = location.domain === null ? location.input : location.domain this.$cookie.set('auth_token', auth.logintoken, {expires: 1, domain: location}) // Store in cookie - this.$store.commit('SET_ROLE', null) + let userData = await this.$store.dispatch('authenticate', auth.logintoken) + + this.$store.commit('SET_ROLE', 2) + if (userData.hasOwnProperty('package')) { + if (this.$store.state.subscription !== '' && this.$store.state.subscription !== undefined) { + if (userData.package[this.$store.state.subscription].role === 'admin') { + this.$store.commit('SET_ROLE', 1) + } + } else { + if (userData.hasOwnProperty('defaultSubscriptionId')) { + this.$store.state.subscription = userData.defaultSubscriptionId + if (userData.package[this.$store.state.subscription].role === 'admin') { + this.$store.commit('SET_ROLE', 1) + } + } + } + } this.$router.push({path: '/'}) // Redirect to dashbord } this.loading = false diff --git a/client/src/store/actions.js b/client/src/store/actions.js index 145849b..9ea316d 100644 --- a/client/src/store/actions.js +++ b/client/src/store/actions.js @@ -62,6 +62,10 @@ export default { commit('REMOVE_XML') }, authenticate ({ commit }, authToken) { + let userData = commit('GET_USER') + if (!userData) { + return userData + } return axios({ method: 'get', url: config.loginURL + '/userdetails', @@ -71,12 +75,25 @@ export default { }) .then(response => { if (response) { + commit('SET_USER', response.data.data) return response.data.data } else { - return + return null } }) }, + authenticateToken ({ commit }, authToken) { + return axios({ + method: 'post', + url: config.loginURL + '/validatetoken', + headers: { + 'authorization': authToken + } + }) + .then(response => { + return response.data.status + }) + }, getUser ({ commit }, email) { return modelUser.getByParam(email).then((response) => { if (response && response.data.data.length > 0) { diff --git a/client/src/store/mutations.js b/client/src/store/mutations.js index 6594ab0..890a382 100644 --- a/client/src/store/mutations.js +++ b/client/src/store/mutations.js @@ -6,6 +6,9 @@ export default { SET_USER (state, user) { state.user = user }, + GET_USER (state) { + return state.user + }, SET_TOKEN (state, token) { state.token = token }, @@ -49,4 +52,3 @@ export default { // state.activeFlow = data // } } - diff --git a/service/package-lock.json b/service/package-lock.json index 853b72c..e089ffb 100644 --- a/service/package-lock.json +++ b/service/package-lock.json @@ -19,14 +19,15 @@ "resolved": "https://registry.npmjs.org/@feathersjs/configuration/-/configuration-2.0.2.tgz", "integrity": "sha512-8UhUXFH7veSkQvfl5XBWn1VKR0o+RbVNrgXDPuTiFcR6XinVVQwX0m2OlzrZ2GvFXFCuqXh+60OubQGg3FAf4Q==", "requires": { - "config": "2.0.1", - "debug": "3.1.0" + "config": "^2.0.0", + "debug": "^3.1.0" } }, "@feathersjs/errors": { "version": "github:feathersjs/errors#219083f391f03fff98c92b0b313b9d6034737c71", + "from": "github:feathersjs/errors", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "@feathersjs/express": { @@ -34,11 +35,11 @@ "resolved": "https://registry.npmjs.org/@feathersjs/express/-/express-1.2.5.tgz", "integrity": "sha512-HnoIvp/f8vTPlanF7zkg0Sqk2ukrf58ck/P4t1z7JTT0SG3zqgmUAS7XemEx3ckfIvz9mFJMedz2hw8HdE1yKQ==", "requires": { - "@feathersjs/commons": "3.0.0", - "@feathersjs/errors": "3.3.2", - "debug": "3.1.0", - "express": "4.16.3", - "uberproto": "2.0.4" + "@feathersjs/commons": "^3.0.0", + "@feathersjs/errors": "^3.3.2", + "debug": "^3.1.0", + "express": "^4.16.2", + "uberproto": "^2.0.0" }, "dependencies": { "@feathersjs/errors": { @@ -46,7 +47,7 @@ "resolved": "https://registry.npmjs.org/@feathersjs/errors/-/errors-3.3.2.tgz", "integrity": "sha512-9a2KHFMPRQw6zTuDo06YbgWyqXiWOqCi6iXI8kMrLDKAmkRvJjrCq+SXEJuz44hTxqBJtJBaW164Mez8tQqJbw==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "uberproto": { @@ -61,10 +62,10 @@ "resolved": "https://registry.npmjs.org/@feathersjs/feathers/-/feathers-3.2.1.tgz", "integrity": "sha512-NX9YvKLg17H/2/PDS2YqhPAHskcSD2mcgyXRxcBi2zJSEjXRh+/gpAidaQzWF0SkwVsdq8ecasqRsHldS2GfxQ==", "requires": { - "@feathersjs/commons": "3.0.0", - "debug": "3.1.0", - "events": "3.0.0", - "uberproto": "2.0.4" + "@feathersjs/commons": "^3.0.0", + "debug": "^3.1.0", + "events": "^3.0.0", + "uberproto": "^2.0.2" }, "dependencies": { "uberproto": { @@ -79,10 +80,10 @@ "resolved": "https://registry.npmjs.org/@feathersjs/socketio/-/socketio-3.2.4.tgz", "integrity": "sha512-+icouEbD/wLl7Bc+SjiigmhwqjkWhJR2Uue65QILzAzxdo6GL01B+Eber1L61D0rCsOEYhjMM14J5uXnfXgfvQ==", "requires": { - "@feathersjs/transport-commons": "4.1.3", - "debug": "3.1.0", - "socket.io": "2.1.1", - "uberproto": "2.0.4" + "@feathersjs/transport-commons": "^4.1.3", + "debug": "^3.1.0", + "socket.io": "^2.1.0", + "uberproto": "^2.0.1" }, "dependencies": { "uberproto": { @@ -97,11 +98,11 @@ "resolved": "https://registry.npmjs.org/@feathersjs/transport-commons/-/transport-commons-4.1.3.tgz", "integrity": "sha512-D4WzS6B5QO0oQ8VI9sjCk2qqqDa3QwPjkooweg6BOati9si+H67FZpsw4ns7oDhWbB4WVt6Gd33bIdB5gjUwkA==", "requires": { - "@feathersjs/commons": "3.0.0", - "@feathersjs/errors": "3.3.2", - "debug": "3.1.0", - "lodash": "4.17.10", - "radix-router": "3.0.1" + "@feathersjs/commons": "^3.0.0", + "@feathersjs/errors": "^3.3.2", + "debug": "^3.1.0", + "lodash": "^4.17.10", + "radix-router": "^3.0.1" }, "dependencies": { "@feathersjs/errors": { @@ -109,7 +110,7 @@ "resolved": "https://registry.npmjs.org/@feathersjs/errors/-/errors-3.3.2.tgz", "integrity": "sha512-9a2KHFMPRQw6zTuDo06YbgWyqXiWOqCi6iXI8kMrLDKAmkRvJjrCq+SXEJuz44hTxqBJtJBaW164Mez8tQqJbw==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } } } @@ -134,7 +135,7 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.4.1.tgz", "integrity": "sha512-uZP8Fd4f7rwHKztnOhFJYEJsKXO7opmcyKk5P9vRC8UJAx3AiWaGFiLxDqPJqzO3n3IhF/v6rdscxadarEXnag==", "requires": { - "csstype": "2.5.5" + "csstype": "^2.2.0" } }, "@types/socket.io": { @@ -142,7 +143,7 @@ "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-1.4.37.tgz", "integrity": "sha512-GhDfR8U0KO+0khxfxgs/XodCw32vKRdt391h2G7JfZj3fegludA0cltsNaKoHncHjYq8xnNUhYoPpG9ytViC1g==", "requires": { - "@types/node": "10.7.1" + "@types/node": "*" } }, "accepts": { @@ -150,7 +151,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -166,7 +167,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -197,10 +198,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-keywords": { @@ -246,8 +247,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "argparse": { @@ -255,7 +256,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -263,7 +264,7 @@ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -287,7 +288,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -321,7 +322,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "assert-plus": { @@ -334,7 +335,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.10" } }, "async-each": { @@ -352,9 +353,9 @@ "resolved": "https://registry.npmjs.org/asyncawait/-/asyncawait-1.0.7.tgz", "integrity": "sha512-jWRlXdzpj90/bbgA6cy4BbTHFEBk+RQpFQHiCuy9/rp0OB07pBYWVRWoT4Garf0fZRC/nzA6OhN5xC0wpoxKjw==", "requires": { - "bluebird": "3.5.1", - "fibers": "2.0.2", - "lodash": "4.17.10" + "bluebird": "^3.1.1", + "fibers": "^2.0.2", + "lodash": "^4.17.10" } }, "asynckit": { @@ -382,8 +383,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz", "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=", "requires": { - "follow-redirects": "1.5.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.3", + "is-buffer": "^1.1.5" } }, "babel-code-frame": { @@ -392,9 +393,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" } }, "babel-polyfill": { @@ -402,9 +403,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" }, "dependencies": { "regenerator-runtime": { @@ -419,8 +420,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "backo2": { @@ -460,7 +461,7 @@ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "better-assert": { @@ -486,7 +487,7 @@ "resolved": "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz", "integrity": "sha1-fbs7IQ/coIJFDa0jNMMErzm9x4Q=", "requires": { - "underscore": "1.4.4" + "underscore": "~1.4.4" }, "dependencies": { "underscore": { @@ -512,15 +513,15 @@ "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.2", + "http-errors": "~1.6.3", "iconv-lite": "0.4.23", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.2", "raw-body": "2.3.3", - "type-is": "1.6.16" + "type-is": "~1.6.16" }, "dependencies": { "debug": { @@ -539,12 +540,12 @@ "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "optional": true, "requires": { - "array-flatten": "2.1.1", - "deep-equal": "1.0.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" }, "dependencies": { "array-flatten": { @@ -573,7 +574,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -582,9 +583,9 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "browser-stdout": { @@ -608,8 +609,8 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.12" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, "buffer-from": { @@ -645,7 +646,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -671,8 +672,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "optional": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "camelize": { @@ -690,11 +691,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "chardet": { @@ -708,14 +709,15 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "circular-json": { @@ -735,7 +737,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -750,9 +752,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "optional": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "co": { @@ -790,7 +792,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -799,7 +801,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "commonmark": { @@ -807,10 +809,10 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.28.1.tgz", "integrity": "sha1-Buq41SM4uDn6Gi11rwCF7tGxvq4=", "requires": { - "entities": "1.1.1", - "mdurl": "1.0.1", - "minimist": "1.2.0", - "string.prototype.repeat": "0.2.0" + "entities": "~ 1.1.1", + "mdurl": "~ 1.0.1", + "minimist": "~ 1.2.0", + "string.prototype.repeat": "^0.2.0" } }, "commonmark-react-renderer": { @@ -818,10 +820,10 @@ "resolved": "https://registry.npmjs.org/commonmark-react-renderer/-/commonmark-react-renderer-4.3.4.tgz", "integrity": "sha512-+/Rzo3sI37NR8LaVdkUiqBH3+CEW75hc86shwY4E9eEERg78VCy4rSkaP/p7OG5bTvosUMkvhn5d1ZJ5iyt/ag==", "requires": { - "lodash.assign": "4.2.0", - "lodash.isplainobject": "4.0.6", - "pascalcase": "0.1.1", - "xss-filters": "1.2.7" + "lodash.assign": "^4.2.0", + "lodash.isplainobject": "^4.0.6", + "pascalcase": "^0.1.1", + "xss-filters": "^1.2.6" } }, "component-bind": { @@ -834,7 +836,7 @@ "resolved": "https://registry.npmjs.org/component-clone/-/component-clone-0.2.2.tgz", "integrity": "sha1-x/WXmCKID62M+wliuikYbQYe4E8=", "requires": { - "component-type": "1.1.0" + "component-type": "*" } }, "component-emitter": { @@ -880,7 +882,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "requires": { - "mime-db": "1.36.0" + "mime-db": ">= 1.34.0 < 2" }, "dependencies": { "mime-db": { @@ -895,13 +897,13 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.3.tgz", "integrity": "sha512-HSjyBG5N1Nnz7tF2+O7A9XUhyjru71/fwgNb7oIsEVHR0WShfs2tIS/EySLgiTe98aOK18YDlMXpzjCXY/n9mg==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "bytes": "3.0.0", - "compressible": "2.0.14", + "compressible": "~2.0.14", "debug": "2.6.9", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.2", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "debug": { @@ -925,10 +927,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.1.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "config": { @@ -936,7 +938,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-2.0.1.tgz", "integrity": "sha512-aTaviJnC8ZjQYx8kQf4u6tWqIxWolyQQ3LqXgnCLAsIb78JrUshHG0YuzIarzTaVVe1Pazms3TXImfYra8UsyQ==", "requires": { - "json5": "1.0.1" + "json5": "^1.0.1" } }, "connect-history-api-fallback": { @@ -985,8 +987,8 @@ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.4.tgz", "integrity": "sha1-K9OB8usgECAQXNUOpZ2mMJBpRoY=", "requires": { - "object-assign": "4.1.1", - "vary": "1.1.2" + "object-assign": "^4", + "vary": "^1" } }, "create-react-class": { @@ -994,9 +996,9 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", "requires": { - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "cross-fetch": { @@ -1021,9 +1023,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "crypto": { @@ -1041,8 +1043,8 @@ "resolved": "https://registry.npmjs.org/css-in-js-utils/-/css-in-js-utils-2.0.1.tgz", "integrity": "sha512-PJF0SpJT+WdbVVt0AOYp9C8GnuruRlL/UFW7932nLWmFLQTaWEzTBQEx7/hn4BuV+WON75iAViSUJLiU3PKbpA==", "requires": { - "hyphenate-style-name": "1.0.2", - "isobject": "3.0.1" + "hyphenate-style-name": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -1068,7 +1070,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "optional": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "cycle": { @@ -1081,7 +1083,7 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "requires": { - "es5-ext": "0.10.45" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -1089,7 +1091,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "dasherize": { @@ -1136,8 +1138,8 @@ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.12" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "del": { @@ -1146,12 +1148,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "optional": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } }, "delayed-stream": { @@ -1193,8 +1195,8 @@ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "optional": true, "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-prefetch-control": { @@ -1208,7 +1210,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "optional": true, "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -1217,7 +1219,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dompurify": { @@ -1241,8 +1243,8 @@ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "optional": true, "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -1255,12 +1257,12 @@ "resolved": "https://registry.npmjs.org/elasticsearch/-/elasticsearch-13.3.1.tgz", "integrity": "sha1-xTCuqa+xfqkcPQpW8fERukm8kjk=", "requires": { - "agentkeepalive": "2.2.0", - "chalk": "1.1.3", + "agentkeepalive": "^2.2.0", + "chalk": "^1.0.0", "lodash": "2.4.2", - "lodash.get": "4.4.2", - "lodash.isempty": "4.4.0", - "lodash.trimend": "4.5.1" + "lodash.get": "^4.4.2", + "lodash.isempty": "^4.4.0", + "lodash.trimend": "^4.5.1" }, "dependencies": { "lodash": { @@ -1275,8 +1277,8 @@ "resolved": "https://registry.npmjs.org/emailjs/-/emailjs-2.2.0.tgz", "integrity": "sha1-ulsj5KSwpFEPZS6HOxVOlAe2ygM=", "requires": { - "addressparser": "0.3.2", - "emailjs-mime-codec": "2.0.7" + "addressparser": "^0.3.2", + "emailjs-mime-codec": "^2.0.7" } }, "emailjs-base64": { @@ -1289,9 +1291,9 @@ "resolved": "https://registry.npmjs.org/emailjs-mime-codec/-/emailjs-mime-codec-2.0.7.tgz", "integrity": "sha512-Jeg3L2/39Bpi8bFfnVEPm1iGPSyYCrPmMkjhimmy9ao/PFtcXJaGcANQWvWciH+jUcOn5Pto+MMCYOI1h7pNxA==", "requires": { - "emailjs-base64": "1.1.4", - "ramda": "0.25.0", - "text-encoding": "0.6.4" + "emailjs-base64": "^1.1.4", + "ramda": "^0.25.0", + "text-encoding": "^0.6.4" } }, "emojis-list": { @@ -1314,7 +1316,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.23" + "iconv-lite": "~0.4.13" } }, "engine.io": { @@ -1322,12 +1324,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { @@ -1337,14 +1339,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -1354,10 +1356,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "entities": { @@ -1371,7 +1373,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "optional": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -1379,7 +1381,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -1387,11 +1389,11 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "requires": { - "es-to-primitive": "1.1.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "is-callable": "1.1.3", - "is-regex": "1.0.4" + "es-to-primitive": "^1.1.1", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -1399,9 +1401,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { @@ -1409,9 +1411,9 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-iterator": { @@ -1419,9 +1421,9 @@ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-promise": { @@ -1434,8 +1436,8 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -1443,10 +1445,10 @@ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -1465,44 +1467,44 @@ "integrity": "sha512-bT3/1x1EbZB7phzYu7vCr1v3ONuzDtX8WjuM9c0iYxe+cq+pwcKEoQjl7zd3RpC6YOLgnSy3cTN58M2jcoPDIQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "babel-code-frame": "6.26.0", - "chalk": "2.4.1", - "concat-stream": "1.6.2", - "cross-spawn": "5.1.0", - "debug": "3.1.0", - "doctrine": "2.1.0", - "eslint-scope": "3.7.1", - "eslint-visitor-keys": "1.0.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "functional-red-black-tree": "1.0.1", - "glob": "7.1.2", - "globals": "11.7.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "3.3.0", - "is-resolvable": "1.1.0", - "js-yaml": "3.12.0", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "7.0.0", - "progress": "2.0.0", - "regexpp": "1.1.0", - "require-uncached": "1.0.3", - "semver": "5.5.0", - "strip-ansi": "4.0.0", - "strip-json-comments": "2.0.1", + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", "table": "4.0.2", - "text-table": "0.2.0" + "text-table": "~0.2.0" }, "dependencies": { "ansi-regex": { @@ -1517,7 +1519,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -1526,9 +1528,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -1543,7 +1545,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -1552,7 +1554,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1563,8 +1565,8 @@ "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", "dev": true, "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-visitor-keys": { @@ -1579,8 +1581,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.7.1", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -1594,7 +1596,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -1603,7 +1605,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -1628,8 +1630,8 @@ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "eventemitter3": { @@ -1649,7 +1651,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "optional": true, "requires": { - "original": "1.0.1" + "original": ">=0.0.5" } }, "expand-brackets": { @@ -1657,7 +1659,7 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -1665,7 +1667,7 @@ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "expect": { @@ -1673,13 +1675,13 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-1.20.2.tgz", "integrity": "sha1-1Fj+TFYAQDa64yMkFqP2Nh8E+WU=", "requires": { - "define-properties": "1.1.2", - "has": "1.0.3", - "is-equal": "1.5.5", - "is-regex": "1.0.4", - "object-inspect": "1.6.0", - "object-keys": "1.0.12", - "tmatch": "2.0.1" + "define-properties": "~1.1.2", + "has": "^1.0.1", + "is-equal": "^1.5.1", + "is-regex": "^1.0.3", + "object-inspect": "^1.1.0", + "object-keys": "^1.0.9", + "tmatch": "^2.0.1" } }, "expect-ct": { @@ -1692,36 +1694,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "body-parser": { @@ -1730,15 +1732,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" } }, "debug": { @@ -1783,7 +1785,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -1816,9 +1818,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.23", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -1826,7 +1828,7 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extsprintf": { @@ -1849,7 +1851,7 @@ "resolved": "https://registry.npmjs.org/fast-json-patch/-/fast-json-patch-2.0.6.tgz", "integrity": "sha1-hv/4+GYjkaqBlyKGTWMuYD5u5gU=", "requires": { - "deep-equal": "1.0.1" + "deep-equal": "^1.0.1" } }, "fast-json-stable-stringify": { @@ -1869,7 +1871,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "optional": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "fbjs": { @@ -1877,13 +1879,13 @@ "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", "requires": { - "core-js": "1.2.7", - "isomorphic-fetch": "2.2.1", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "promise": "7.3.1", - "setimmediate": "1.0.5", - "ua-parser-js": "0.7.18" + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" }, "dependencies": { "core-js": { @@ -1898,13 +1900,13 @@ "resolved": "https://registry.npmjs.org/feathers/-/feathers-2.2.4.tgz", "integrity": "sha512-9IYKbxRKoDuerLCkYmFkQuKOwyB2SMM1kSUswDzlE0AmdzDrcfocVYb87/BsQx2j6hFkdCVFYkXq3+YPSDMT3w==", "requires": { - "babel-runtime": "6.26.0", - "debug": "3.1.0", - "events": "1.1.1", - "express": "4.16.3", - "feathers-commons": "0.8.7", - "rubberduck": "1.1.1", - "uberproto": "1.2.0" + "babel-runtime": "^6.26.0", + "debug": "^3.1.0", + "events": "^1.1.1", + "express": "^4.16.1", + "feathers-commons": "^0.8.7", + "rubberduck": "^1.1.1", + "uberproto": "^1.2.0" }, "dependencies": { "events": { @@ -1924,8 +1926,8 @@ "resolved": "https://registry.npmjs.org/feathers-configuration/-/feathers-configuration-0.4.2.tgz", "integrity": "sha512-T+lqgSRGnYhB/+pedL4xkZ3z7SYGtsrlX9uImkyxMCLLKWOuGPkkqyT9sy09isOMU9I2MZpmJCzQxZ1y8f6TUA==", "requires": { - "config": "1.31.0", - "debug": "3.1.0" + "config": "^1.21.0", + "debug": "^3.0.1" }, "dependencies": { "config": { @@ -1933,7 +1935,7 @@ "resolved": "https://registry.npmjs.org/config/-/config-1.31.0.tgz", "integrity": "sha512-Ep/l9Rd1J9IPueztJfpbOqVzuKHQh4ZODMNt9xqTYdBBNRXbV4oTu34kCkkfdRVcDq0ohtpaeXGgb+c0LQxFRA==", "requires": { - "json5": "1.0.1" + "json5": "^1.0.1" } } } @@ -1943,7 +1945,7 @@ "resolved": "https://registry.npmjs.org/feathers-errors/-/feathers-errors-2.9.2.tgz", "integrity": "sha512-qwIX97bNW7+1tWVG073+omUA0rCYKJtTtwuzTrrvfrtdr8J8Dk1Fy4iaV9Fa6/YBD5AZu0lsplPE0iu4u/d4GQ==", "requires": { - "debug": "3.1.0" + "debug": "^3.0.0" } }, "feathers-hooks": { @@ -1951,8 +1953,8 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-2.1.2.tgz", "integrity": "sha512-XQKhbo4d4TuXyco+tbHmKn5wo8QhdSNslJ/+zckNYfUzLmrN8L3uB4Utf0/ivcgwWxJtS1kVhEETBN4TDxuWFg==", "requires": { - "feathers-commons": "0.8.7", - "uberproto": "1.2.0" + "feathers-commons": "^0.8.6", + "uberproto": "^1.2.0" } }, "feathers-hooks-common": { @@ -1960,11 +1962,11 @@ "resolved": "https://registry.npmjs.org/feathers-hooks-common/-/feathers-hooks-common-3.10.0.tgz", "integrity": "sha512-xuyTH69e0bs9r7ntQJiayBy8uC47mbGXeAsO7nkMXLGn+nYhjuw6z/ekQywnY+DeqvRWAgmy+LC4SzieIjIUiw==", "requires": { - "ajv": "5.5.2", - "debug": "3.1.0", - "feathers-errors": "2.9.2", - "feathers-hooks": "2.1.2", - "traverse": "0.6.6" + "ajv": "^5.2.0", + "debug": "^3.0.0", + "feathers-errors": "^2.4.0", + "feathers-hooks": "^2.0.1", + "traverse": "^0.6.6" } }, "feathers-mongodb": { @@ -1972,12 +1974,12 @@ "resolved": "https://registry.npmjs.org/feathers-mongodb/-/feathers-mongodb-2.9.1.tgz", "integrity": "sha512-PpG0Xdo3/3yvGiE42aLUXYWmwF/TViaYFOkriuk0k1MaM4aztZO5tlmbQlvV03QH7VO6svaWJhZWRx5n9Uejqg==", "requires": { - "babel-polyfill": "6.26.0", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "feathers-query-filters": "2.1.2", - "lodash.omit": "4.5.0", - "uberproto": "1.2.0" + "babel-polyfill": "^6.7.4", + "feathers-commons": "^0.8.4", + "feathers-errors": "^2.0.1", + "feathers-query-filters": "^2.0.0", + "lodash.omit": "^4.3.0", + "uberproto": "^1.2.0" } }, "feathers-query-filters": { @@ -1985,7 +1987,7 @@ "resolved": "https://registry.npmjs.org/feathers-query-filters/-/feathers-query-filters-2.1.2.tgz", "integrity": "sha1-zbGCJNteGcwBQNUoEI4JCNXrBlQ=", "requires": { - "feathers-commons": "0.8.7" + "feathers-commons": "^0.8.0" } }, "feathers-rest": { @@ -1993,10 +1995,10 @@ "resolved": "https://registry.npmjs.org/feathers-rest/-/feathers-rest-1.8.1.tgz", "integrity": "sha512-FYVcBQLGocSdpjxEf+E/9Cb0QAX0S+biqRgB5KAGpoAF51cou9LV0WW1IwqwHzAT67KRyS4dT7fVCrE4kisM2w==", "requires": { - "debug": "3.1.0", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "qs": "6.5.2" + "debug": "^3.0.0", + "feathers-commons": "^0.8.0", + "feathers-errors": "^2.0.1", + "qs": "^6.4.0" } }, "feathers-rethinkdb": { @@ -2004,12 +2006,12 @@ "resolved": "https://registry.npmjs.org/feathers-rethinkdb/-/feathers-rethinkdb-0.4.3.tgz", "integrity": "sha1-GBpxVdgpvYsUJRRyYL8BywPcK6I=", "requires": { - "debug": "2.6.9", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2", - "feathers-hooks": "1.8.1", - "feathers-query-filters": "2.1.2", - "uberproto": "1.2.0" + "debug": "^2.2.0", + "feathers-commons": "^0.8.4", + "feathers-errors": "^2.0.2", + "feathers-hooks": "^1.8.1", + "feathers-query-filters": "^2.0.0", + "uberproto": "^1.2.0" }, "dependencies": { "debug": { @@ -2025,9 +2027,9 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-1.8.1.tgz", "integrity": "sha1-y6DEbzCc1uNo+utJV6LeydfyiY8=", "requires": { - "feathers-commons": "0.8.7", - "feathers-hooks-common": "2.0.3", - "uberproto": "1.2.0" + "feathers-commons": "^0.8.6", + "feathers-hooks-common": "^2.0.3", + "uberproto": "^1.2.0" } }, "feathers-hooks-common": { @@ -2035,8 +2037,8 @@ "resolved": "https://registry.npmjs.org/feathers-hooks-common/-/feathers-hooks-common-2.0.3.tgz", "integrity": "sha1-6fEqvr28Fj8o1MtMhQlOKaokY10=", "requires": { - "debug": "2.6.9", - "feathers-errors": "2.9.2", + "debug": "^2.2.0", + "feathers-errors": "^2.4.0", "traverse": "0.6.6" } } @@ -2047,9 +2049,9 @@ "resolved": "https://registry.npmjs.org/feathers-socket-commons/-/feathers-socket-commons-2.4.0.tgz", "integrity": "sha1-Bi79V/mocWZEFFuZOl9ycJlp8eE=", "requires": { - "debug": "2.6.9", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2" + "debug": "^2.2.0", + "feathers-commons": "^0.8.0", + "feathers-errors": "^2.2.0" }, "dependencies": { "debug": { @@ -2067,11 +2069,11 @@ "resolved": "https://registry.npmjs.org/feathers-socketio/-/feathers-socketio-2.0.1.tgz", "integrity": "sha512-3ByXVr6UGyGN6TPRN+U5IhENYrSgeuADhbKWLG5cq2WvYH9h2N1l3cj7WBVsfRektUgVw/HkGNAoExy8yuknMA==", "requires": { - "@types/socket.io": "1.4.37", - "debug": "3.1.0", - "feathers-socket-commons": "2.4.0", - "socket.io": "2.1.1", - "uberproto": "1.2.0" + "@types/socket.io": "~1.4.27", + "debug": "^3.0.0", + "feathers-socket-commons": "^2.0.0", + "socket.io": "^2.0.1", + "uberproto": "^1.2.0" } }, "feathers-swagger": { @@ -2079,11 +2081,11 @@ "resolved": "https://registry.npmjs.org/feathers-swagger/-/feathers-swagger-0.5.1.tgz", "integrity": "sha512-2lv9nNTb5lIljQ3Dgy0IgUWTyrGT+pXFg7mYffKtETQtL0QzUvq4xjuhVfeAFUUdvXRjITUu0BQM303qiGYTDg==", "requires": { - "debug": "3.1.0", - "feathers-errors": "2.9.2", - "serve-static": "1.13.2", - "swagger-ui": "3.17.1", - "swagger-ui-dist": "3.17.1" + "debug": "^3.1.0", + "feathers-errors": "^2.5.0", + "serve-static": "^1.12.4", + "swagger-ui": "^3.2.0", + "swagger-ui-dist": "^3.2.0" } }, "fibers": { @@ -2097,7 +2099,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -2106,8 +2108,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "filename-regex": { @@ -2120,11 +2122,11 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -2133,12 +2135,12 @@ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -2161,8 +2163,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "flat-cache": { @@ -2171,10 +2173,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" }, "dependencies": { "del": { @@ -2183,13 +2185,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, "globby": { @@ -2198,12 +2200,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -2219,8 +2221,8 @@ "resolved": "https://registry.npmjs.org/flowz-error-handler/-/flowz-error-handler-0.0.3.tgz", "integrity": "sha512-bc/qmTTAKUiTUP9sEtYnrv7CZZ+BIhdm88CKmAWhN1PeGbOoQNicIG+23Bg1G28pHrIoJ93z0NiGIk/CxQOZ2Q==", "requires": { - "feathers-errors": "2.9.2", - "jsonfile": "4.0.0" + "feathers-errors": "^2.9.2", + "jsonfile": "^4.0.0" }, "dependencies": { "jsonfile": { @@ -2228,18 +2230,18 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } } } }, "flowz-subscription": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/flowz-subscription/-/flowz-subscription-0.2.7.tgz", - "integrity": "sha512-+5XSZfdr/w2ieWm2TpmuI3gvGcVGKqiXEtInscy22TCyI8I0aT2+8vcRFkpUZe4jcYMKY3ke0Q/LrAL8n0+Lwg==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/flowz-subscription/-/flowz-subscription-0.2.9.tgz", + "integrity": "sha512-0XZyfs6emHUS8vXGIP/dVcF9elZIVA7oxXYgOn+bRA7U2mfTA+JSD0Zu3WZEeZw7ciIRXh4PFG+JKC4jgQ1D+w==", "requires": { - "request": "2.88.0", - "request-promise": "4.2.2" + "request": "^2.83.0", + "request-promise": "^4.2.2" } }, "follow-redirects": { @@ -2247,7 +2249,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -2260,7 +2262,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -2278,9 +2280,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "forwarded": { @@ -2308,6 +2310,468 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2332,7 +2796,7 @@ "requires": { "is-node": "0.0.0", "jsonp": "0.0.4", - "phin": "2.9.0" + "phin": "^2.2.6" } }, "get-stdin": { @@ -2351,7 +2815,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -2359,12 +2823,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -2372,8 +2836,8 @@ "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -2381,7 +2845,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -2396,11 +2860,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "optional": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -2444,8 +2908,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.3.0", + "har-schema": "^2.0.0" } }, "has": { @@ -2453,7 +2917,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -2461,7 +2925,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { @@ -2557,10 +3021,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "optional": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "hpkp": { @@ -2590,10 +3054,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "http-parser-js": { @@ -2607,9 +3071,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "optional": true, "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.5.0", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-middleware": { @@ -2618,10 +3082,10 @@ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "optional": true, "requires": { - "http-proxy": "1.17.0", - "is-glob": "3.1.0", - "lodash": "4.17.10", - "micromatch": "2.3.11" + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" }, "dependencies": { "is-extglob": { @@ -2636,7 +3100,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "optional": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -2646,9 +3110,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "hyphenate-style-name": { @@ -2661,7 +3125,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ieee754": { @@ -2702,7 +3166,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "optional": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexof": { @@ -2715,8 +3179,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -2729,8 +3193,8 @@ "resolved": "https://registry.npmjs.org/inline-style-prefixer/-/inline-style-prefixer-3.0.8.tgz", "integrity": "sha1-hVG45bTVcyROZqNLBPfTIHaitTQ=", "requires": { - "bowser": "1.9.3", - "css-in-js-utils": "2.0.1" + "bowser": "^1.7.3", + "css-in-js-utils": "^2.0.0" } }, "inquirer": { @@ -2739,20 +3203,20 @@ "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx-lite": "4.0.8", - "rx-lite-aggregates": "4.0.8", - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -2767,7 +3231,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -2776,9 +3240,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -2799,8 +3263,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -2809,7 +3273,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -2818,7 +3282,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -2829,7 +3293,7 @@ "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", "optional": true, "requires": { - "meow": "3.7.0" + "meow": "^3.3.0" } }, "invariant": { @@ -2837,7 +3301,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -2867,7 +3331,7 @@ "resolved": "https://registry.npmjs.org/is-arrow-function/-/is-arrow-function-2.0.3.tgz", "integrity": "sha1-Kb4sLY2UUIUri7r7Y1unuNjofsI=", "requires": { - "is-callable": "1.1.3" + "is-callable": "^1.0.4" } }, "is-binary-path": { @@ -2875,7 +3339,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-boolean-object": { @@ -2893,7 +3357,7 @@ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -2916,17 +3380,17 @@ "resolved": "https://registry.npmjs.org/is-equal/-/is-equal-1.5.5.tgz", "integrity": "sha1-XoXxlX4FKIMkf+s4aWWju6Ffuz0=", "requires": { - "has": "1.0.3", - "is-arrow-function": "2.0.3", - "is-boolean-object": "1.0.0", - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-generator-function": "1.0.7", - "is-number-object": "1.0.3", - "is-regex": "1.0.4", - "is-string": "1.0.4", - "is-symbol": "1.0.1", - "object.entries": "1.0.4" + "has": "^1.0.1", + "is-arrow-function": "^2.0.3", + "is-boolean-object": "^1.0.0", + "is-callable": "^1.1.3", + "is-date-object": "^1.0.1", + "is-generator-function": "^1.0.6", + "is-number-object": "^1.0.3", + "is-regex": "^1.0.3", + "is-string": "^1.0.4", + "is-symbol": "^1.0.1", + "object.entries": "^1.0.4" } }, "is-equal-shallow": { @@ -2934,7 +3398,7 @@ "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -2953,7 +3417,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -2961,7 +3425,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-generator-function": { @@ -2974,7 +3438,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-node": { @@ -2987,7 +3451,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-number-object": { @@ -3005,7 +3469,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -3013,7 +3477,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-posix-bracket": { @@ -3036,7 +3500,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "requires": { - "has": "1.0.3" + "has": "^1.0.1" } }, "is-resolvable": { @@ -3094,8 +3558,8 @@ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", "requires": { - "node-fetch": "1.7.3", - "whatwg-fetch": "0.11.1" + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" } }, "isomorphic-form-data": { @@ -3103,7 +3567,7 @@ "resolved": "https://registry.npmjs.org/isomorphic-form-data/-/isomorphic-form-data-0.0.1.tgz", "integrity": "sha1-Am9ifgMrDNhBPsyHVZKLlKRosGI=", "requires": { - "form-data": "1.0.1" + "form-data": "^1.0.0-rc3" }, "dependencies": { "form-data": { @@ -3111,9 +3575,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-1.0.1.tgz", "integrity": "sha1-rjFduaSQf6BlUCMEpm13M0de43w=", "requires": { - "async": "2.6.1", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "async": "^2.0.1", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" } } } @@ -3138,8 +3602,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -3179,7 +3643,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" } }, "jsonfile": { @@ -3187,7 +3651,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonp": { @@ -3195,7 +3659,7 @@ "resolved": "https://registry.npmjs.org/jsonp/-/jsonp-0.0.4.tgz", "integrity": "sha1-lGZaS3caq+y4qshBNbmVlHVpGL0=", "requires": { - "debug": "3.1.0" + "debug": "*" } }, "jsprim": { @@ -3219,7 +3683,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "lcid": { @@ -3228,7 +3692,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "optional": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "levn": { @@ -3237,8 +3701,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lie": { @@ -3246,7 +3710,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "requires": { - "immediate": "3.0.6" + "immediate": "~3.0.5" } }, "load-json-file": { @@ -3254,11 +3718,11 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "pify": { @@ -3273,10 +3737,10 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" }, "dependencies": { "json5": { @@ -3299,7 +3763,7 @@ "resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz", "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", "requires": { - "immediate": "3.0.6" + "immediate": "~3.0.5" } } } @@ -3320,8 +3784,8 @@ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" } }, "lodash._basecopy": { @@ -3358,9 +3822,9 @@ "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", "dev": true, "requires": { - "lodash._baseassign": "3.2.0", - "lodash._basecreate": "3.0.3", - "lodash._isiterateecall": "3.0.9" + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" } }, "lodash.debounce": { @@ -3398,9 +3862,9 @@ "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, "lodash.omit": { @@ -3418,7 +3882,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -3427,8 +3891,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "optional": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lru-cache": { @@ -3437,8 +3901,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "lru-queue": { @@ -3446,7 +3910,7 @@ "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", "requires": { - "es5-ext": "0.10.45" + "es5-ext": "~0.10.2" } }, "map-obj": { @@ -3459,7 +3923,7 @@ "resolved": "https://registry.npmjs.org/matcher/-/matcher-0.1.2.tgz", "integrity": "sha1-7yDL3mTCTFDMYa9bg+4LG4/wAQE=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.4" } }, "math-random": { @@ -3482,14 +3946,14 @@ "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.1.tgz", "integrity": "sha1-aT9TgM2ASjmR662gAXnGtWWjr6s=", "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-weak-map": "2.0.2", - "event-emitter": "0.3.5", - "is-promise": "2.1.0", - "lru-queue": "0.1.0", - "next-tick": "1.0.0", - "timers-ext": "0.1.5" + "d": "1", + "es5-ext": "^0.10.12", + "es6-weak-map": "^2.0.1", + "event-emitter": "^0.3.4", + "is-promise": "^2.1", + "lru-queue": "0.1", + "next-tick": "1", + "timers-ext": "0.1" } }, "memory-fs": { @@ -3498,8 +3962,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "optional": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "meow": { @@ -3508,16 +3972,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "optional": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, "merge-descriptors": { @@ -3535,19 +3999,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "mime": { @@ -3565,7 +4029,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -3584,7 +4048,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -3642,12 +4106,12 @@ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "supports-color": { @@ -3656,7 +4120,7 @@ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -3686,13 +4150,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -3700,7 +4164,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -3710,8 +4174,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz", "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==", "requires": { - "bson": "1.0.9", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "mongoose": { @@ -3720,7 +4184,7 @@ "integrity": "sha512-VGeSP5O3k9HUXsNm9AocdAlVbfaHV/RHgHc8Jfvwr0D0ZyzgJ3JJ+MKSmz+omicNOhBsmpBEL1zVHM2uIj8tDQ==", "requires": { "async": "2.6.0", - "bson": "1.0.9", + "bson": "~1.0.4", "hooks-fixed": "2.0.2", "kareem": "1.5.0", "lodash.get": "4.4.2", @@ -3739,7 +4203,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", "requires": { - "lodash": "4.17.10" + "lodash": "^4.14.0" } }, "mongodb": { @@ -3757,8 +4221,8 @@ "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.18.tgz", "integrity": "sha1-TEYTm986HwMt7ZHbSfOO7AFlkFA=", "requires": { - "bson": "1.0.9", - "require_optional": "1.0.1" + "bson": "~1.0.4", + "require_optional": "~1.0.0" } }, "process-nextick-args": { @@ -3771,13 +4235,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz", "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=", "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.3", - "util-deprecate": "1.0.2" + "buffer-shims": "~1.0.0", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~1.0.0", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -3785,7 +4249,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -3842,8 +4306,8 @@ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "optional": true, "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -3863,6 +4327,12 @@ "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", "dev": true }, + "nan": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", + "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", + "optional": true + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -3876,9 +4346,9 @@ "requires": { "async": "0.2.10", "binary-search-tree": "0.2.5", - "localforage": "1.7.2", - "mkdirp": "0.5.1", - "underscore": "1.4.4" + "localforage": "^1.3.0", + "mkdirp": "~0.5.1", + "underscore": "~1.4.4" }, "dependencies": { "async": { @@ -3898,8 +4368,8 @@ "resolved": "https://registry.npmjs.org/nedb-promise/-/nedb-promise-2.0.1.tgz", "integrity": "sha1-g5suSQlxb99pUAt/aLK4ciWCzWU=", "requires": { - "nedb": "1.8.0", - "thenify": "3.3.0" + "nedb": "^1.8.0", + "thenify": "^3.2.0" } }, "negotiator": { @@ -3922,8 +4392,8 @@ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-forge": { @@ -3937,10 +4407,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -3948,7 +4418,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "number-is-nan": { @@ -3986,10 +4456,10 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.0.4.tgz", "integrity": "sha1-G/mk3SKI9bM/Opk9JXZh8F0WGl8=", "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.12.0", - "function-bind": "1.1.1", - "has": "1.0.3" + "define-properties": "^1.1.2", + "es-abstract": "^1.6.1", + "function-bind": "^1.1.0", + "has": "^1.0.1" } }, "object.omit": { @@ -3997,8 +4467,8 @@ "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "obuf": { @@ -4024,7 +4494,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -4033,7 +4503,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "opn": { @@ -4042,8 +4512,8 @@ "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "optional": true, "requires": { - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" } }, "optionator": { @@ -4052,12 +4522,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "original": { @@ -4066,7 +4536,7 @@ "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", "optional": true, "requires": { - "url-parse": "1.4.1" + "url-parse": "~1.4.0" } }, "os-locale": { @@ -4075,7 +4545,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "optional": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -4095,10 +4565,10 @@ "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -4106,7 +4576,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "parseqs": { @@ -4114,7 +4584,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -4122,7 +4592,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -4140,8 +4610,8 @@ "resolved": "https://registry.npmjs.org/path/-/path-0.12.7.tgz", "integrity": "sha1-1NwqUGxM4hl+tIHr/NWzbAFAsQ8=", "requires": { - "process": "0.11.10", - "util": "0.10.4" + "process": "^0.11.1", + "util": "^0.10.3" } }, "path-exists": { @@ -4149,7 +4619,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "path-is-absolute": { @@ -4172,9 +4642,9 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -4210,7 +4680,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "platform": { @@ -4230,9 +4700,9 @@ "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", "optional": true, "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { "async": { @@ -4284,7 +4754,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-worker": { @@ -4292,8 +4762,8 @@ "resolved": "https://registry.npmjs.org/promise-worker/-/promise-worker-1.1.1.tgz", "integrity": "sha1-wrddBF0kliXAImTi3/mtIuAxxps=", "requires": { - "is-promise": "2.1.0", - "lie": "3.3.0" + "is-promise": "^2.1.0", + "lie": "^3.0.2" } }, "prop-types": { @@ -4301,8 +4771,8 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.6.2.tgz", "integrity": "sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ==", "requires": { - "loose-envify": "1.3.1", - "object-assign": "4.1.1" + "loose-envify": "^1.3.1", + "object-assign": "^4.1.1" } }, "proxy-addr": { @@ -4310,7 +4780,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, @@ -4366,7 +4836,7 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz", "integrity": "sha512-pDP/NMRAXoTfrhCfyfSEwJAKLaxBU9eApMeBPB1TkDouZmvPerIClV8lTAd+uF8ZiTaVl69e1FCxQrAd/VTjGw==", "requires": { - "performance-now": "2.1.0" + "performance-now": "^2.1.0" }, "dependencies": { "performance-now": { @@ -4386,9 +4856,9 @@ "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -4424,11 +4894,11 @@ "resolved": "https://registry.npmjs.org/react/-/react-15.6.2.tgz", "integrity": "sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=", "requires": { - "create-react-class": "15.6.3", - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.2" + "create-react-class": "^15.6.0", + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" } }, "react-addons-perf": { @@ -4436,8 +4906,8 @@ "resolved": "https://registry.npmjs.org/react-addons-perf/-/react-addons-perf-15.4.2.tgz", "integrity": "sha1-EQvc9cRZxPd8uF7WNLzTOXU2ODs=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.4", + "object-assign": "^4.1.0" } }, "react-addons-shallow-compare": { @@ -4455,7 +4925,7 @@ "resolved": "https://registry.npmjs.org/react-collapse/-/react-collapse-4.0.3.tgz", "integrity": "sha512-OO4NhtEqFtz+1ma31J1B7+ezdRnzHCZiTGSSd/Pxoks9hxrZYhzFEddeYt05A/1477xTtdrwo7xEa2FLJyWGCQ==", "requires": { - "prop-types": "15.6.2" + "prop-types": "^15.5.8" } }, "react-debounce-input": { @@ -4463,8 +4933,8 @@ "resolved": "https://registry.npmjs.org/react-debounce-input/-/react-debounce-input-3.2.0.tgz", "integrity": "sha1-aXjGBh2Jj1SfQEF/sNLrvs9Qqqo=", "requires": { - "lodash.debounce": "4.0.8", - "prop-types": "15.6.2" + "lodash.debounce": "^4", + "prop-types": "^15" } }, "react-dom": { @@ -4472,10 +4942,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-15.6.2.tgz", "integrity": "sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=", "requires": { - "fbjs": "0.8.17", - "loose-envify": "1.3.1", - "object-assign": "4.1.1", - "prop-types": "15.6.2" + "fbjs": "^0.8.9", + "loose-envify": "^1.1.0", + "object-assign": "^4.1.0", + "prop-types": "^15.5.10" } }, "react-height": { @@ -4492,8 +4962,8 @@ "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.5.2.tgz", "integrity": "sha1-aodYNI32YLiDJqDnZNVp8nSq1oE=", "requires": { - "fbjs": "0.8.17", - "object-assign": "4.1.1" + "fbjs": "^0.8.9", + "object-assign": "^4.1.1" } }, "prop-types": { @@ -4501,7 +4971,7 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.5.8.tgz", "integrity": "sha1-a3suFBCDvjjIWVqlH8VXdccZk5Q=", "requires": { - "fbjs": "0.8.17" + "fbjs": "^0.8.9" } } } @@ -4516,8 +4986,8 @@ "resolved": "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-1.3.1.tgz", "integrity": "sha1-yVZHrni3Pfzv9uxx/8sEGC/22vk=", "requires": { - "react-hot-api": "0.4.7", - "source-map": "0.4.4" + "react-hot-api": "^0.4.5", + "source-map": "^0.4.4" } }, "react-immutable-proptypes": { @@ -4535,9 +5005,9 @@ "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-2.5.1.tgz", "integrity": "sha512-N5xMde42RrclLIdF16bckTApFM56vkn4q3GoZlLkuE8IK23GOIqJsuE62RTrkgq//pAt4dovVgZcgawh7YtN4w==", "requires": { - "commonmark": "0.24.0", - "commonmark-react-renderer": "4.3.4", - "prop-types": "15.6.2" + "commonmark": "^0.24.0", + "commonmark-react-renderer": "^4.3.4", + "prop-types": "^15.5.1" }, "dependencies": { "commonmark": { @@ -4545,9 +5015,9 @@ "resolved": "https://registry.npmjs.org/commonmark/-/commonmark-0.24.0.tgz", "integrity": "sha1-uA3gGCxUY1VkOqFdsSv7KCNoJ48=", "requires": { - "entities": "1.1.1", - "mdurl": "1.0.1", - "string.prototype.repeat": "0.2.0" + "entities": "~ 1.1.1", + "mdurl": "~ 1.0.1", + "string.prototype.repeat": "^0.2.0" } } } @@ -4557,9 +5027,9 @@ "resolved": "https://registry.npmjs.org/react-motion/-/react-motion-0.5.2.tgz", "integrity": "sha512-9q3YAvHoUiWlP3cK0v+w1N5Z23HXMj4IF4YuvjvWegWqNPfLXsOBE/V7UvQGpXxHFKRQQcNcVQE31g9SB/6qgQ==", "requires": { - "performance-now": "0.2.0", - "prop-types": "15.6.2", - "raf": "3.4.0" + "performance-now": "^0.2.0", + "prop-types": "^15.5.8", + "raf": "^3.1.0" } }, "react-object-inspector": { @@ -4572,12 +5042,12 @@ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-4.4.9.tgz", "integrity": "sha512-3XS7mjTOcvaP2H5OE/LxEgDHRuEyTZxBRlwvXHzNqYkZdYd7Ra98AimWoDSHP9OcLoydjA1ocgiZxxcqeXj0Sw==", "requires": { - "create-react-class": "15.6.3", - "hoist-non-react-statics": "2.5.5", - "invariant": "2.2.4", - "lodash": "4.17.10", - "loose-envify": "1.3.1", - "prop-types": "15.6.2" + "create-react-class": "^15.5.1", + "hoist-non-react-statics": "^2.5.0", + "invariant": "^2.0.0", + "lodash": "^4.2.0", + "loose-envify": "^1.1.0", + "prop-types": "^15.5.4" } }, "react-split-pane": { @@ -4585,11 +5055,11 @@ "resolved": "https://registry.npmjs.org/react-split-pane/-/react-split-pane-0.1.70.tgz", "integrity": "sha512-vXLE4gTI9gTFXEaX2pKKyZilwDsxGVmAQi7yombplzzj2oBY/fmd3o4DlNSMN43m9XchtStcWri9mOrBx3yMiQ==", "requires": { - "@types/inline-style-prefixer": "3.0.1", - "@types/react": "16.4.1", - "inline-style-prefixer": "3.0.8", - "prop-types": "15.6.2", - "react-style-proptype": "3.2.1" + "@types/inline-style-prefixer": "^3.0.0", + "@types/react": "^16.0.18", + "inline-style-prefixer": "^3.0.6", + "prop-types": "^15.5.10", + "react-style-proptype": "^3.0.0" } }, "react-style-proptype": { @@ -4597,7 +5067,7 @@ "resolved": "https://registry.npmjs.org/react-style-proptype/-/react-style-proptype-3.2.1.tgz", "integrity": "sha512-Z02QsgmdZ4wYNxJsHhNGGZsIF8+MO93fYmdPaC+ljdqX3rq8tl/fSMXOGBbofGJNzq5W/2LFcONllmV6vzyYHA==", "requires": { - "prop-types": "15.6.2" + "prop-types": "^15.5.4" } }, "read-pkg": { @@ -4605,9 +5075,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -4615,8 +5085,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" } }, "readable-stream": { @@ -4624,13 +5094,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -4638,10 +5108,10 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -4650,8 +5120,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "optional": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "redux": { @@ -4659,10 +5129,10 @@ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz", "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==", "requires": { - "lodash": "4.17.10", - "lodash-es": "4.17.10", - "loose-envify": "1.3.1", - "symbol-observable": "1.2.0" + "lodash": "^4.2.1", + "lodash-es": "^4.2.1", + "loose-envify": "^1.1.0", + "symbol-observable": "^1.0.3" } }, "redux-immutable": { @@ -4670,7 +5140,7 @@ "resolved": "https://registry.npmjs.org/redux-immutable/-/redux-immutable-3.0.8.tgz", "integrity": "sha1-31pdYByIInujj0dM+C99AOVvjBQ=", "requires": { - "immutable": "3.8.2" + "immutable": "^3.7.6" } }, "redux-logger": { @@ -4678,7 +5148,7 @@ "resolved": "https://registry.npmjs.org/redux-logger/-/redux-logger-3.0.6.tgz", "integrity": "sha1-91VZZvMJjzyIYExEnPC69XeCdL8=", "requires": { - "deep-diff": "0.3.8" + "deep-diff": "^0.3.5" } }, "referrer-policy": { @@ -4696,7 +5166,7 @@ "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regexp-clone": { @@ -4715,8 +5185,8 @@ "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.1.tgz", "integrity": "sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=", "requires": { - "argparse": "0.1.16", - "autolinker": "0.15.3" + "argparse": "~0.1.15", + "autolinker": "~0.15.0" }, "dependencies": { "argparse": { @@ -4724,8 +5194,8 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-0.1.16.tgz", "integrity": "sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=", "requires": { - "underscore": "1.7.0", - "underscore.string": "2.4.0" + "underscore": "~1.7.0", + "underscore.string": "~2.4.0" } } } @@ -4751,7 +5221,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "optional": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -4759,26 +5229,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.8.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.1.0", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.19", - "oauth-sign": "0.9.0", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.4.3", - "tunnel-agent": "0.6.0", - "uuid": "3.3.2" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" }, "dependencies": { "mime-db": { @@ -4791,7 +5261,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", "requires": { - "mime-db": "1.35.0" + "mime-db": "~1.35.0" } }, "performance-now": { @@ -4809,8 +5279,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", "requires": { - "psl": "1.1.29", - "punycode": "1.4.1" + "psl": "^1.1.24", + "punycode": "^1.4.1" } }, "uuid": { @@ -4825,10 +5295,10 @@ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", "requires": { - "bluebird": "3.5.1", + "bluebird": "^3.5.0", "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.4" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "request-promise-core": { @@ -4836,7 +5306,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "4.17.10" + "lodash": "^4.13.1" } }, "require-directory": { @@ -4857,8 +5327,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" }, "dependencies": { "resolve-from": { @@ -4874,8 +5344,8 @@ "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz", "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==", "requires": { - "resolve-from": "2.0.0", - "semver": "5.5.0" + "resolve-from": "^2.0.0", + "semver": "^5.1.0" } }, "requires-port": { @@ -4899,8 +5369,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "rethinkdb": { @@ -4908,7 +5378,7 @@ "resolved": "https://registry.npmjs.org/rethinkdb/-/rethinkdb-2.3.3.tgz", "integrity": "sha1-PcZYbiL6HavuDSVOZL0ON5+tL3I=", "requires": { - "bluebird": "2.11.0" + "bluebird": ">= 2.3.2 < 3" }, "dependencies": { "bluebird": { @@ -4923,11 +5393,11 @@ "resolved": "https://registry.npmjs.org/rethinkdb-job-queue/-/rethinkdb-job-queue-3.1.7.tgz", "integrity": "sha512-/mb6AnUtomLCCEqZ3Z2L+PM8Bclx8n5h3oRb9rIjHps5GFO4ch7Gps1qJXpvOda7D+bX0c+6yZVuGQmBW8Ef8Q==", "requires": { - "bluebird": "3.5.1", - "debug": "3.1.0", - "rethinkdbdash": "2.3.31", - "serialize-error": "2.1.0", - "uuid": "3.2.1" + "bluebird": "^3.5.1", + "debug": "^3.1.0", + "rethinkdbdash": "^2.3.31", + "serialize-error": "^2.1.0", + "uuid": "^3.2.1" }, "dependencies": { "serialize-error": { @@ -4947,7 +5417,7 @@ "resolved": "https://registry.npmjs.org/rethinkdbdash/-/rethinkdbdash-2.3.31.tgz", "integrity": "sha512-6nXrKFjdg2Ug0YpdmPWSvyD/2EisHnFNt4FWZ74dcXGK48ievSv+cNFTmVv+KjLi6I9CCf6w4CKZ6yCYTfMfdQ==", "requires": { - "bluebird": "3.5.1" + "bluebird": ">= 3.0.1" } }, "rimraf": { @@ -4955,7 +5425,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "rubberduck": { @@ -4969,7 +5439,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "rx-lite": { @@ -4984,7 +5454,7 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "safe-buffer": { @@ -5040,18 +5510,18 @@ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -5079,10 +5549,10 @@ "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.5.0.tgz", "integrity": "sha1-k10kDN/g9YBTB/3+ln2IlCosvPA=", "requires": { - "etag": "1.8.1", + "etag": "~1.8.1", "fresh": "0.5.2", "ms": "2.1.1", - "parseurl": "1.3.2", + "parseurl": "~1.3.2", "safe-buffer": "5.1.1" }, "dependencies": { @@ -5104,13 +5574,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "optional": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.18", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { "debug": { @@ -5129,9 +5599,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -5161,7 +5631,7 @@ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-0.2.2.tgz", "integrity": "sha1-HjL9W8q2rWiKSBLLDMBO/HXHAU4=", "requires": { - "lodash.keys": "3.1.2" + "lodash.keys": "^3.1.2" } }, "shebang-command": { @@ -5170,7 +5640,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -5190,7 +5660,7 @@ "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0" + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -5211,12 +5681,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -5233,15 +5703,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, @@ -5251,7 +5721,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -5268,8 +5738,8 @@ "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", "optional": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "2.0.3" + "faye-websocket": "^0.10.0", + "uuid": "^2.0.2" } }, "sockjs-client": { @@ -5278,12 +5748,12 @@ "integrity": "sha1-8CEqhVDkyUaMjM6u79LjSTwDOtU=", "optional": true, "requires": { - "debug": "2.6.9", + "debug": "^2.2.0", "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.4.1" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.1" }, "dependencies": { "debug": { @@ -5301,7 +5771,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "optional": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } } } @@ -5311,7 +5781,7 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "spdx-correct": { @@ -5319,8 +5789,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -5333,8 +5803,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -5348,12 +5818,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "optional": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.2", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "debug": "^2.6.8", + "handle-thing": "^1.2.5", + "http-deceiver": "^1.2.7", + "safe-buffer": "^5.0.1", + "select-hose": "^2.0.0", + "spdy-transport": "^2.0.18" }, "dependencies": { "debug": { @@ -5373,13 +5843,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "optional": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.2", - "wbuf": "1.7.3" + "debug": "^2.6.8", + "detect-node": "^2.0.3", + "hpack.js": "^2.1.6", + "obuf": "^1.1.1", + "readable-stream": "^2.2.9", + "safe-buffer": "^5.0.1", + "wbuf": "^1.7.2" }, "dependencies": { "debug": { @@ -5403,15 +5873,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "stack-trace": { @@ -5434,9 +5904,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string.prototype.repeat": { @@ -5449,7 +5919,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -5457,7 +5927,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -5465,7 +5935,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -5474,7 +5944,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "optional": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -5493,23 +5963,23 @@ "resolved": "https://registry.npmjs.org/swagger-client/-/swagger-client-3.8.6.tgz", "integrity": "sha1-TxiDhEkYwNEjgC1bThBp/jRCUlQ=", "requires": { - "@kyleshockey/object-assign-deep": "0.4.2", - "babel-runtime": "6.26.0", + "@kyleshockey/object-assign-deep": "^0.4.0", + "babel-runtime": "^6.23.0", "btoa": "1.1.2", - "buffer": "5.1.0", - "cookie": "0.3.1", + "buffer": "^5.1.0", + "cookie": "^0.3.1", "cross-fetch": "0.0.8", - "deep-extend": "0.5.1", - "encode-3986": "1.0.0", - "fast-json-patch": "2.0.6", + "deep-extend": "^0.5.1", + "encode-3986": "^1.0.0", + "fast-json-patch": "^2.0.6", "isomorphic-form-data": "0.0.1", - "js-yaml": "3.12.0", - "lodash": "4.17.10", - "qs": "6.5.2", - "querystring-browser": "1.0.4", - "url": "0.11.0", + "js-yaml": "^3.8.1", + "lodash": "^4.16.2", + "qs": "^6.3.0", + "querystring-browser": "^1.0.4", + "url": "^0.11.0", "utf8-bytes": "0.0.1", - "utfstring": "2.0.0" + "utfstring": "^2.0.0" } }, "swagger-ui": { @@ -5517,57 +5987,57 @@ "resolved": "https://registry.npmjs.org/swagger-ui/-/swagger-ui-3.17.1.tgz", "integrity": "sha1-XXwxckK4VvOO3c1f8sMKtO24jpQ=", "requires": { - "@braintree/sanitize-url": "2.1.0", - "base64-js": "1.3.0", + "@braintree/sanitize-url": "^2.0.2", + "base64-js": "^1.2.0", "brace": "0.7.0", - "classnames": "2.2.6", - "commonmark": "0.28.1", - "core-js": "2.5.7", + "classnames": "^2.2.5", + "commonmark": "^0.28.1", + "core-js": "^2.5.1", "css.escape": "1.5.1", "deep-extend": "0.5.1", - "dompurify": "1.0.5", + "dompurify": "^1.0.4", "expect": "1.20.2", - "getbase": "2.8.2", - "ieee754": "1.1.12", - "immutable": "3.8.2", - "js-file-download": "0.4.1", - "js-yaml": "3.12.0", + "getbase": "^2.8.2", + "ieee754": "^1.1.8", + "immutable": "^3.x.x", + "js-file-download": "^0.4.1", + "js-yaml": "^3.5.5", "lodash": "4.17.5", - "matcher": "0.1.2", + "matcher": "^0.1.2", "memoizee": "0.4.1", - "promise-worker": "1.1.1", - "prop-types": "15.6.2", - "react": "15.6.2", - "react-addons-perf": "15.4.2", + "promise-worker": "^1.1.1", + "prop-types": "^15.5.10", + "react": "^15.6.2", + "react-addons-perf": "^15.4.0", "react-addons-shallow-compare": "0.14.8", - "react-addons-test-utils": "15.6.2", - "react-collapse": "4.0.3", - "react-debounce-input": "3.2.0", - "react-dom": "15.6.2", - "react-height": "2.2.1", + "react-addons-test-utils": "^15.6.2", + "react-collapse": "^4.0.3", + "react-debounce-input": "^3.2.0", + "react-dom": "^15.6.2", + "react-height": "^2.0.0", "react-hot-loader": "1.3.1", "react-immutable-proptypes": "2.1.0", - "react-immutable-pure-component": "1.2.0", - "react-markdown": "2.5.1", - "react-motion": "0.5.2", + "react-immutable-pure-component": "^1.1.1", + "react-markdown": "^2.5.0", + "react-motion": "^0.5.2", "react-object-inspector": "0.2.1", - "react-redux": "4.4.9", + "react-redux": "^4.x.x", "react-split-pane": "0.1.70", - "redux": "3.7.2", + "redux": "^3.x.x", "redux-immutable": "3.0.8", - "redux-logger": "3.0.6", - "remarkable": "1.7.1", + "redux-logger": "*", + "remarkable": "^1.7.1", "reselect": "2.5.3", - "scroll-to-element": "2.0.0", + "scroll-to-element": "^2.0.0", "serialize-error": "2.0.0", "shallowequal": "0.2.2", - "swagger-client": "3.8.6", - "url-parse": "1.4.1", + "swagger-client": "^3.8.5", + "url-parse": "^1.1.8", "webpack-dev-server": "2.5.0", "whatwg-fetch": "0.11.1", - "worker-loader": "0.7.1", + "worker-loader": "^0.7.1", "xml": "1.0.1", - "xml-but-prettier": "1.0.1", + "xml-but-prettier": "^1.0.1", "yaml-js": "0.2.0", "zenscroll": "4.0.1" }, @@ -5595,12 +6065,12 @@ "integrity": "sha512-UUkEAPdSGxtRpiV9ozJ5cMTtYiqz7Ni1OGqLXRCynrvzdtR1p+cfOWe2RJLwvUG8hNanaSRjecIqwOjqeatDsA==", "dev": true, "requires": { - "ajv": "5.5.2", - "ajv-keywords": "2.1.1", - "chalk": "2.4.1", - "lodash": "4.17.10", + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", "slice-ansi": "1.0.0", - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ansi-regex": { @@ -5615,7 +6085,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.2" + "color-convert": "^1.9.0" } }, "chalk": { @@ -5624,9 +6094,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -5647,8 +6117,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -5657,7 +6127,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } }, "supports-color": { @@ -5666,7 +6136,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -5687,7 +6157,7 @@ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz", "integrity": "sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=", "requires": { - "any-promise": "1.3.0" + "any-promise": "^1.0.0" } }, "through": { @@ -5713,8 +6183,8 @@ "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.5.tgz", "integrity": "sha512-tsEStd7kmACHENhsUPaxb8Jf8/+GZZxyNFQbZD07HQOyooOa6At1rQqjffgvg7n+dxscQa9cjjMdWhJtsP2sxg==", "requires": { - "es5-ext": "0.10.45", - "next-tick": "1.0.0" + "es5-ext": "~0.10.14", + "next-tick": "1" } }, "tmatch": { @@ -5728,7 +6198,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -5741,7 +6211,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -5767,7 +6237,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -5782,7 +6252,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { @@ -5791,7 +6261,7 @@ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -5844,8 +6314,8 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz", "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==", "requires": { - "querystringify": "2.0.0", - "requires-port": "1.0.0" + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" } }, "utf8-bytes": { @@ -5892,8 +6362,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vary": { @@ -5906,9 +6376,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "w3c-blob": { @@ -5921,7 +6391,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "webpack-dev-middleware": { @@ -5930,11 +6400,11 @@ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", "optional": true, "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" }, "dependencies": { "mime": { @@ -5952,26 +6422,26 @@ "optional": true, "requires": { "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "1.7.0", - "compression": "1.7.3", - "connect-history-api-fallback": "1.5.0", - "del": "3.0.0", - "express": "4.16.3", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "internal-ip": "1.2.0", + "bonjour": "^3.5.0", + "chokidar": "^1.6.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "del": "^3.0.0", + "express": "^4.13.3", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.17.4", + "internal-ip": "^1.2.0", "opn": "4.0.2", - "portfinder": "1.0.13", - "selfsigned": "1.10.3", - "serve-index": "1.9.1", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", "sockjs": "0.3.18", "sockjs-client": "1.1.2", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "3.2.3", - "webpack-dev-middleware": "1.12.2", - "yargs": "6.6.0" + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^3.1.1", + "webpack-dev-middleware": "^1.10.2", + "yargs": "^6.0.0" }, "dependencies": { "supports-color": { @@ -5980,7 +6450,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "optional": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5990,8 +6460,8 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz", "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "requires": { - "http-parser-js": "0.4.13", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -6010,7 +6480,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -6024,12 +6494,12 @@ "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz", "integrity": "sha512-NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==", "requires": { - "async": "1.0.0", - "colors": "1.0.3", - "cycle": "1.0.3", - "eyes": "0.1.8", - "isstream": "0.1.2", - "stack-trace": "0.0.10" + "async": "~1.0.0", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" }, "dependencies": { "async": { @@ -6050,7 +6520,7 @@ "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-0.7.1.tgz", "integrity": "sha1-kf/S4vv3aSGkPoyjdm0S6VN/XXA=", "requires": { - "loader-utils": "0.2.17" + "loader-utils": "0.2.x" } }, "wrap-ansi": { @@ -6059,8 +6529,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "optional": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -6074,7 +6544,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -6082,9 +6552,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "x-xss-protection": { @@ -6102,7 +6572,7 @@ "resolved": "https://registry.npmjs.org/xml-but-prettier/-/xml-but-prettier-1.0.1.tgz", "integrity": "sha1-9aMyZ+1CzNTjVcYlV6XjmwH7QPM=", "requires": { - "repeat-string": "1.6.1" + "repeat-string": "^1.5.2" } }, "xmlhttprequest-ssl": { @@ -6138,19 +6608,19 @@ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "optional": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" }, "dependencies": { "camelcase": { @@ -6167,7 +6637,7 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "optional": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { diff --git a/service/package.json b/service/package.json index ab65408..b9978c5 100644 --- a/service/package.json +++ b/service/package.json @@ -55,7 +55,7 @@ "feathers-swagger": "^0.5.0", "fibers": "^2.0.0", "flowz-error-handler": "0.0.3", - "flowz-subscription": "^0.2.7", + "flowz-subscription": "^0.2.9", "form-data": "^2.3.2", "fs": "0.0.1-security", "get-json": "^1.0.0", From ac4cd43519e739e1ebc04e878721e4fde20e806c Mon Sep 17 00:00:00 2001 From: chirag Date: Tue, 11 Sep 2018 13:44:28 +0530 Subject: [PATCH 286/419] resolve user login issue --- client/src/pages/Login.vue | 1 - client/src/store/actions.js | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index f5d8b05..75659e4 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -160,7 +160,6 @@ export default { location = location.domain === null ? location.input : location.domain this.$cookie.set('auth_token', auth.logintoken, {expires: 1, domain: location}) // Store in cookie let userData = await this.$store.dispatch('authenticate', auth.logintoken) - this.$store.commit('SET_ROLE', 2) if (userData.hasOwnProperty('package')) { if (this.$store.state.subscription !== '' && this.$store.state.subscription !== undefined) { diff --git a/client/src/store/actions.js b/client/src/store/actions.js index 9ea316d..62b66a2 100644 --- a/client/src/store/actions.js +++ b/client/src/store/actions.js @@ -63,7 +63,7 @@ export default { }, authenticate ({ commit }, authToken) { let userData = commit('GET_USER') - if (!userData) { + if (userData !== undefined) { return userData } return axios({ From 3e288cd106f0bdf41454e844c69f4004dc23ab4e Mon Sep 17 00:00:00 2001 From: nikitam Date: Tue, 11 Sep 2018 13:49:59 +0530 Subject: [PATCH 287/419] resolve-eslint-error --- client/src/pages/Login.vue | 9 +- client/src/pages/flow/instance/New.vue | 415 ------------------ .../pages/flow/instance/formdata-expand.vue | 38 -- client/src/pages/schema/expandInstance.vue | 45 -- client/src/store/actions.js | 7 - 5 files changed, 4 insertions(+), 510 deletions(-) delete mode 100644 client/src/pages/flow/instance/New.vue delete mode 100644 client/src/pages/flow/instance/formdata-expand.vue delete mode 100644 client/src/pages/schema/expandInstance.vue diff --git a/client/src/pages/Login.vue b/client/src/pages/Login.vue index e505e9a..4f8217a 100644 --- a/client/src/pages/Login.vue +++ b/client/src/pages/Login.vue @@ -150,11 +150,10 @@ export default { return }) if (auth) { - this.$store.commit('SET_TOKEN', auth.logintoken) - // Token Store in cookie - let location = psl.parse(window.location.hostname) // get parent domain - location = location.domain === null ? location.input : location.domain - this.$cookie.set('auth_token', auth.logintoken, {expires: 1, domain: location}) // Store in cookie + this.$store.commit('SET_TOKEN', auth.logintoken) // Token Store in cookie + let location = psl.parse(window.location.hostname) // get parent domain + location = location.domain === null ? location.input : location.domain + this.$cookie.set('auth_token', auth.logintoken, {expires: 1, domain: location}) // Store in cookie let userData = await this.$store.dispatch('authenticate', auth.logintoken) this.$store.commit('SET_ROLE', 2) if (userData.hasOwnProperty('package')) { diff --git a/client/src/pages/flow/instance/New.vue b/client/src/pages/flow/instance/New.vue deleted file mode 100644 index c993d87..0000000 --- a/client/src/pages/flow/instance/New.vue +++ /dev/null @@ -1,415 +0,0 @@ - - - diff --git a/client/src/pages/flow/instance/formdata-expand.vue b/client/src/pages/flow/instance/formdata-expand.vue deleted file mode 100644 index 50cebb9..0000000 --- a/client/src/pages/flow/instance/formdata-expand.vue +++ /dev/null @@ -1,38 +0,0 @@ - - - diff --git a/client/src/pages/schema/expandInstance.vue b/client/src/pages/schema/expandInstance.vue deleted file mode 100644 index 064306c..0000000 --- a/client/src/pages/schema/expandInstance.vue +++ /dev/null @@ -1,45 +0,0 @@ - - \ No newline at end of file diff --git a/client/src/store/actions.js b/client/src/store/actions.js index 14ebe13..46cbe1c 100644 --- a/client/src/store/actions.js +++ b/client/src/store/actions.js @@ -64,12 +64,5 @@ export default { .then(response => { return response.data.status }) - }, - getUser ({ commit }, email) { - return modelUser.getByParam(email).then((response) => { - if (response && response.data.data.length > 0) { - return response.data.data[0] - } - }) } } From 8c40482a4d88a82f5f9f38e33133939039c5e100 Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Tue, 11 Sep 2018 14:22:12 +0530 Subject: [PATCH 288/419] Permissions error fixes --- client/src/pages/flow/List.vue | 70 ++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/client/src/pages/flow/List.vue b/client/src/pages/flow/List.vue index bf8d4bb..8c128fe 100644 --- a/client/src/pages/flow/List.vue +++ b/client/src/pages/flow/List.vue @@ -32,10 +32,14 @@ diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index a3f0b78..368bf8e 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -422,6 +422,7 @@ export default { // this.formTitle = response.data.title // if (this.lastLog === undefined) { this.formSchemaInstance.data = [] + this.formSchemaInstance.permission = [] // } else { // if (this.lastLog.input.length === 0) { // this.formSchemaInstance.data = [] @@ -432,7 +433,14 @@ export default { // } this.schema = this.currentSchema this.entity = this.currentSchema.entity + let currentStageP = this.$route.params.stateid + let currentStateP = this.flowzData.processList[currentStageP] + console.log(currentStateP.permission) + this.formSchemaInstance.permission = currentStateP.permission + // console.log('this.formData.processList', currentStageP) + this.formSchemaInstance.entity = this.schema.entity + console.log('this.schema.entity', this.schema.entity) // this.formSchemaInstance.data[0] = {} for (let [index, entity] of self.formSchemaInstance.entity.entries()) { if (entity.customtype === true) { From add394d70304461743fa998f350778119e695e68 Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 14 Sep 2018 16:29:10 +0530 Subject: [PATCH 340/419] Update --- client/src/components/SchemaSubForm.vue | 21 +++++++++++++++++++-- client/src/components/SchemaView.vue | 6 +++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index a8ea535..d41e145 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -36,6 +36,23 @@ +
    +
    + + + {{field.name}} + + + + + + + + + + + + diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 368bf8e..ef0511d 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -435,12 +435,12 @@ export default { this.entity = this.currentSchema.entity let currentStageP = this.$route.params.stateid let currentStateP = this.flowzData.processList[currentStageP] - console.log(currentStateP.permission) - this.formSchemaInstance.permission = currentStateP.permission + if (currentStateP.hasOwnProperty('permission')) { + this.formSchemaInstance.permission = currentStateP.permission + } // console.log('this.formData.processList', currentStageP) this.formSchemaInstance.entity = this.schema.entity - console.log('this.schema.entity', this.schema.entity) // this.formSchemaInstance.data[0] = {} for (let [index, entity] of self.formSchemaInstance.entity.entries()) { if (entity.customtype === true) { From d1a9d16a6924d06bbdc635f19cf9fb661f2665c5 Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 14 Sep 2018 16:31:11 +0530 Subject: [PATCH 341/419] condition added --- client/src/components/SchemaSubForm.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index d41e145..c016286 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -36,7 +36,7 @@ -
    +
    From 1004d705b99662dba7440848e06b7d63d7db092d Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 14 Sep 2018 16:57:07 +0530 Subject: [PATCH 342/419] update --- client/src/components/SchemaSubForm.vue | 74 +++++++++++++++---------- client/src/components/SchemaView.vue | 2 +- 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/client/src/components/SchemaSubForm.vue b/client/src/components/SchemaSubForm.vue index c016286..e3da137 100644 --- a/client/src/components/SchemaSubForm.vue +++ b/client/src/components/SchemaSubForm.vue @@ -5,7 +5,7 @@
    @@ -475,7 +492,6 @@ export default { } }, mounted () { - console.log(this.schemainstance) }, created () {} } diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index ef0511d..1968aac 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -422,7 +422,6 @@ export default { // this.formTitle = response.data.title // if (this.lastLog === undefined) { this.formSchemaInstance.data = [] - this.formSchemaInstance.permission = [] // } else { // if (this.lastLog.input.length === 0) { // this.formSchemaInstance.data = [] @@ -436,6 +435,7 @@ export default { let currentStageP = this.$route.params.stateid let currentStateP = this.flowzData.processList[currentStageP] if (currentStateP.hasOwnProperty('permission')) { + this.formSchemaInstance.permission = [] this.formSchemaInstance.permission = currentStateP.permission } // console.log('this.formData.processList', currentStageP) From 2089d5995df1b028931df2947b7c310b566fc301 Mon Sep 17 00:00:00 2001 From: harshp Date: Fri, 14 Sep 2018 17:14:05 +0530 Subject: [PATCH 343/419] added email templates while BPMN init called --- client/src/pages/flow/New.vue | 2 ++ .../lib/provider/camunda/parts/emailTemplate.js | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/client/src/pages/flow/New.vue b/client/src/pages/flow/New.vue index 026092f..50e322d 100644 --- a/client/src/pages/flow/New.vue +++ b/client/src/pages/flow/New.vue @@ -406,6 +406,8 @@ }) } else { await this.initBPMN({ + userId: this.$store.state.user._id, + emailTemplate: tempVar, schema: response[0], AddEntity: () => { this.storeXMLtolocalStorage() diff --git a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/emailTemplate.js b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/emailTemplate.js index b036d5a..1597c3b 100644 --- a/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/emailTemplate.js +++ b/client/static/bpmn/bpmn-js-properties-panel/lib/provider/camunda/parts/emailTemplate.js @@ -75,7 +75,6 @@ let userData = require('../../../../../../../src/store/index') let emailTemplateData; module.exports = function (generalGroup, element, bpmnFactory, translate, options) { var bo = getBusinessObject(element); - if (!bo) { return; } From cbdcf9559a7dac9457925dc4b50cff1cf2ce510c Mon Sep 17 00:00:00 2001 From: Faizan Saiyed Date: Fri, 14 Sep 2018 19:38:54 +0530 Subject: [PATCH 344/419] First stage form implemented Issue #330 --- client/package-lock.json | 5577 ++++---- client/package.json | 6 +- client/src/components/SchemaView.vue | 131 +- client/src/components/emailtemplate.vue | 2 +- client/src/config/index.js | 8 +- client/src/pages/user/SchemaList.vue | 2 +- node_modules/particles.js/.npmignore | 1 + node_modules/particles.js/LICENSE.md | 21 + node_modules/particles.js/README.md | 212 + node_modules/particles.js/bower.json | 22 + node_modules/particles.js/demo/css/style.css | 96 + node_modules/particles.js/demo/index.html | 48 + node_modules/particles.js/demo/js/app.js | 133 + .../particles.js/demo/js/lib/stats.js | 149 + node_modules/particles.js/demo/particles.json | 116 + node_modules/particles.js/package.json | 53 + node_modules/particles.js/particles.js | 1541 +++ node_modules/vue-particles/.babelrc | 14 + node_modules/vue-particles/.editorconfig | 9 + node_modules/vue-particles/.eslintignore | 3 + node_modules/vue-particles/.eslintrc.js | 27 + node_modules/vue-particles/.npmignore | 7 + node_modules/vue-particles/.postcssrc.js | 8 + node_modules/vue-particles/README.md | 9 + node_modules/vue-particles/build/build.js | 35 + .../vue-particles/build/check-versions.js | 48 + .../vue-particles/build/dev-client.js | 9 + .../vue-particles/build/dev-server.js | 89 + node_modules/vue-particles/build/utils.js | 71 + .../vue-particles/build/vue-loader.conf.js | 12 + .../vue-particles/build/webpack.base.conf.js | 67 + .../vue-particles/build/webpack.dev.conf.js | 44 + .../vue-particles/build/webpack.prod.conf.js | 120 + node_modules/vue-particles/config/dev.env.js | 6 + node_modules/vue-particles/config/index.js | 38 + node_modules/vue-particles/config/prod.env.js | 3 + node_modules/vue-particles/index.html | 14 + node_modules/vue-particles/package.json | 122 + node_modules/vue-particles/rollup.config.js | 11 + node_modules/vue-particles/src/App.vue | 259 + .../vue-particles/src/assets/logo.png | Bin 0 -> 6849 bytes .../vue-particles/src/assets/screenshot.png | Bin 0 -> 609928 bytes node_modules/vue-particles/src/assets/sky.jpg | Bin 0 -> 425587 bytes .../vue-particles/src/assets/tables.scss | 82 + .../vue-particles/src/components/Foot.vue | 17 + .../vue-particles/src/components/Hello.vue | 53 + .../vue-particles/src/components/Main.vue | 225 + node_modules/vue-particles/src/main.js | 22 + .../vue-particles/src/vue-particles/index.js | 13 + .../src/vue-particles/particles-data.js | 123 + .../src/vue-particles/vue-particles.vue | 245 + node_modules/vue-particles/static/.gitkeep | 0 .../vue-particles/static/screenshot.png | Bin 0 -> 609928 bytes .../vue-particles/vue-particles.common.js | 2 + .../vue-particles/vue-particles.common.js.map | 1 + .../vue-particles/vue-particles.esm.js | 2 + .../vue-particles/vue-particles.esm.js.map | 1 + .../vue-particles/vue-particles.js | 2 + .../vue-particles/vue-particles.js.map | 1 + node_modules/vue/LICENSE | 21 + node_modules/vue/README.md | 233 + node_modules/vue/dist/README.md | 124 + node_modules/vue/dist/vue.common.js | 10719 +++++++++++++++ node_modules/vue/dist/vue.esm.browser.js | 10733 ++++++++++++++++ node_modules/vue/dist/vue.esm.js | 10717 +++++++++++++++ node_modules/vue/dist/vue.js | 10710 +++++++++++++++ node_modules/vue/dist/vue.min.js | 6 + node_modules/vue/dist/vue.runtime.common.js | 7860 +++++++++++ node_modules/vue/dist/vue.runtime.esm.js | 7858 +++++++++++ node_modules/vue/dist/vue.runtime.js | 7851 +++++++++++ node_modules/vue/dist/vue.runtime.min.js | 6 + node_modules/vue/package.json | 165 + node_modules/vue/src/.DS_Store | Bin 0 -> 6148 bytes node_modules/vue/src/compiler/.DS_Store | Bin 0 -> 6148 bytes .../vue/src/compiler/codegen/events.js | 123 + .../vue/src/compiler/codegen/index.js | 502 + .../vue/src/compiler/create-compiler.js | 55 + .../vue/src/compiler/directives/bind.js | 11 + .../vue/src/compiler/directives/index.js | 11 + .../vue/src/compiler/directives/model.js | 145 + .../vue/src/compiler/directives/on.js | 10 + .../vue/src/compiler/error-detector.js | 108 + node_modules/vue/src/compiler/helpers.js | 151 + node_modules/vue/src/compiler/index.js | 23 + node_modules/vue/src/compiler/optimizer.js | 128 + .../vue/src/compiler/parser/entity-decoder.js | 11 + .../vue/src/compiler/parser/filter-parser.js | 97 + .../vue/src/compiler/parser/html-parser.js | 309 + node_modules/vue/src/compiler/parser/index.js | 659 + .../vue/src/compiler/parser/text-parser.js | 41 + node_modules/vue/src/compiler/to-function.js | 101 + node_modules/vue/src/core/components/index.js | 5 + .../vue/src/core/components/keep-alive.js | 124 + node_modules/vue/src/core/config.js | 119 + .../vue/src/core/global-api/assets.js | 40 + .../vue/src/core/global-api/extend.js | 101 + node_modules/vue/src/core/global-api/index.js | 62 + node_modules/vue/src/core/global-api/mixin.js | 10 + node_modules/vue/src/core/global-api/use.js | 23 + node_modules/vue/src/core/index.js | 20 + node_modules/vue/src/core/instance/events.js | 142 + node_modules/vue/src/core/instance/index.js | 23 + node_modules/vue/src/core/instance/init.js | 146 + node_modules/vue/src/core/instance/inject.js | 74 + .../vue/src/core/instance/lifecycle.js | 331 + node_modules/vue/src/core/instance/proxy.js | 80 + .../render-helpers/bind-object-listeners.js | 22 + .../render-helpers/bind-object-props.js | 60 + .../instance/render-helpers/check-keycodes.js | 27 + .../src/core/instance/render-helpers/index.js | 30 + .../instance/render-helpers/render-list.js | 39 + .../instance/render-helpers/render-slot.js | 50 + .../instance/render-helpers/render-static.js | 70 + .../instance/render-helpers/resolve-filter.js | 10 + .../instance/render-helpers/resolve-slots.js | 63 + node_modules/vue/src/core/instance/render.js | 122 + node_modules/vue/src/core/instance/state.js | 353 + node_modules/vue/src/core/observer/array.js | 44 + node_modules/vue/src/core/observer/dep.js | 58 + node_modules/vue/src/core/observer/index.js | 258 + .../vue/src/core/observer/scheduler.js | 148 + .../vue/src/core/observer/traverse.js | 39 + node_modules/vue/src/core/observer/watcher.js | 240 + node_modules/vue/src/core/util/debug.js | 100 + node_modules/vue/src/core/util/env.js | 96 + node_modules/vue/src/core/util/error.js | 48 + node_modules/vue/src/core/util/index.js | 11 + node_modules/vue/src/core/util/lang.js | 39 + node_modules/vue/src/core/util/next-tick.js | 117 + node_modules/vue/src/core/util/options.js | 427 + node_modules/vue/src/core/util/perf.js | 24 + node_modules/vue/src/core/util/props.js | 189 + .../vue/src/core/vdom/create-component.js | 255 + .../vue/src/core/vdom/create-element.js | 140 + .../core/vdom/create-functional-component.js | 108 + .../src/core/vdom/helpers/extract-props.js | 75 + .../vdom/helpers/get-first-component-child.js | 15 + .../vue/src/core/vdom/helpers/index.js | 9 + .../core/vdom/helpers/is-async-placeholder.js | 5 + .../vue/src/core/vdom/helpers/merge-hook.js | 38 + .../core/vdom/helpers/normalize-children.js | 89 + .../vdom/helpers/resolve-async-component.js | 140 + .../src/core/vdom/helpers/update-listeners.js | 76 + .../vue/src/core/vdom/modules/directives.js | 116 + .../vue/src/core/vdom/modules/index.js | 7 + node_modules/vue/src/core/vdom/modules/ref.js | 45 + node_modules/vue/src/core/vdom/patch.js | 750 ++ node_modules/vue/src/core/vdom/vnode.js | 126 + node_modules/vue/src/platforms/.DS_Store | Bin 0 -> 6148 bytes .../platforms/web/compiler/directives/html.js | 9 + .../web/compiler/directives/index.js | 9 + .../web/compiler/directives/model.js | 170 + .../platforms/web/compiler/directives/text.js | 9 + .../vue/src/platforms/web/compiler/index.js | 8 + .../platforms/web/compiler/modules/class.js | 48 + .../platforms/web/compiler/modules/index.js | 9 + .../platforms/web/compiler/modules/model.js | 87 + .../platforms/web/compiler/modules/style.js | 51 + .../vue/src/platforms/web/compiler/options.js | 26 + .../vue/src/platforms/web/compiler/util.js | 24 + .../vue/src/platforms/web/entry-compiler.js | 5 + .../web/entry-runtime-with-compiler.js | 100 + .../vue/src/platforms/web/entry-runtime.js | 5 + .../web/entry-server-basic-renderer.js | 13 + .../platforms/web/entry-server-renderer.js | 27 + .../src/platforms/web/runtime/class-util.js | 61 + .../platforms/web/runtime/components/index.js | 7 + .../runtime/components/transition-group.js | 180 + .../web/runtime/components/transition.js | 194 + .../platforms/web/runtime/directives/index.js | 7 + .../platforms/web/runtime/directives/model.js | 149 + .../platforms/web/runtime/directives/show.js | 60 + .../vue/src/platforms/web/runtime/index.js | 70 + .../platforms/web/runtime/modules/attrs.js | 112 + .../platforms/web/runtime/modules/class.js | 48 + .../web/runtime/modules/dom-props.js | 89 + .../platforms/web/runtime/modules/events.js | 87 + .../platforms/web/runtime/modules/index.js | 15 + .../platforms/web/runtime/modules/style.js | 93 + .../web/runtime/modules/transition.js | 339 + .../vue/src/platforms/web/runtime/node-ops.js | 59 + .../vue/src/platforms/web/runtime/patch.js | 12 + .../platforms/web/runtime/transition-util.js | 185 + .../vue/src/platforms/web/server/compiler.js | 11 + .../platforms/web/server/directives/index.js | 7 + .../platforms/web/server/directives/model.js | 44 + .../platforms/web/server/directives/show.js | 8 + .../src/platforms/web/server/modules/attrs.js | 57 + .../src/platforms/web/server/modules/class.js | 11 + .../platforms/web/server/modules/dom-props.js | 50 + .../src/platforms/web/server/modules/index.js | 11 + .../src/platforms/web/server/modules/style.js | 28 + .../vue/src/platforms/web/server/util.js | 51 + .../vue/src/platforms/web/util/attrs.js | 43 + .../vue/src/platforms/web/util/class.js | 85 + .../vue/src/platforms/web/util/compat.js | 16 + .../vue/src/platforms/web/util/element.js | 77 + .../vue/src/platforms/web/util/index.js | 25 + .../vue/src/platforms/web/util/style.js | 69 + node_modules/vue/src/platforms/weex/.DS_Store | Bin 0 -> 6148 bytes .../vue/src/platforms/weex/compiler/.DS_Store | Bin 0 -> 6148 bytes .../weex/compiler/directives/index.js | 5 + .../weex/compiler/directives/model.js | 34 + .../vue/src/platforms/weex/compiler/index.js | 30 + .../platforms/weex/compiler/modules/append.js | 21 + .../platforms/weex/compiler/modules/class.js | 73 + .../platforms/weex/compiler/modules/index.js | 11 + .../platforms/weex/compiler/modules/props.js | 32 + .../platforms/weex/compiler/modules/style.js | 82 + .../vue/src/platforms/weex/entry-compiler.js | 1 + .../vue/src/platforms/weex/entry-framework.js | 284 + .../platforms/weex/entry-runtime-factory.js | 6 + .../weex/runtime/components/index.js | 9 + .../weex/runtime/components/richtext.js | 82 + .../runtime/components/transition-group.js | 148 + .../weex/runtime/components/transition.js | 9 + .../weex/runtime/directives/index.js | 2 + .../vue/src/platforms/weex/runtime/index.js | 42 + .../platforms/weex/runtime/modules/attrs.js | 44 + .../platforms/weex/runtime/modules/class.js | 71 + .../platforms/weex/runtime/modules/events.js | 55 + .../platforms/weex/runtime/modules/index.js | 13 + .../platforms/weex/runtime/modules/style.js | 84 + .../weex/runtime/modules/transition.js | 270 + .../src/platforms/weex/runtime/node-ops.js | 81 + .../vue/src/platforms/weex/runtime/patch.js | 16 + .../src/platforms/weex/runtime/text-node.js | 9 + .../vue/src/platforms/weex/util/index.js | 42 + .../bundle-renderer/create-bundle-renderer.js | 151 + .../bundle-renderer/create-bundle-runner.js | 150 + .../bundle-renderer/source-map-support.js | 45 + .../vue/src/server/create-basic-renderer.js | 37 + .../vue/src/server/create-renderer.js | 116 + .../src/server/optimizing-compiler/codegen.js | 260 + .../src/server/optimizing-compiler/index.js | 20 + .../src/server/optimizing-compiler/modules.js | 126 + .../server/optimizing-compiler/optimizer.js | 140 + .../optimizing-compiler/runtime-helpers.js | 140 + node_modules/vue/src/server/render-context.js | 120 + node_modules/vue/src/server/render-stream.js | 94 + node_modules/vue/src/server/render.js | 382 + .../create-async-file-mapper.js | 53 + .../vue/src/server/template-renderer/index.js | 258 + .../template-renderer/parse-template.js | 42 + .../template-renderer/template-stream.js | 82 + node_modules/vue/src/server/util.js | 18 + .../vue/src/server/webpack-plugin/client.js | 70 + .../vue/src/server/webpack-plugin/server.js | 66 + .../vue/src/server/webpack-plugin/util.js | 24 + node_modules/vue/src/server/write.js | 50 + node_modules/vue/src/sfc/parser.js | 116 + node_modules/vue/src/shared/constants.js | 21 + node_modules/vue/src/shared/util.js | 308 + node_modules/vue/types/index.d.ts | 37 + node_modules/vue/types/options.d.ts | 177 + node_modules/vue/types/plugin.d.ts | 8 + node_modules/vue/types/vnode.d.ts | 69 + node_modules/vue/types/vue.d.ts | 122 + service/package-lock.json | 27 +- service/package.json | 5 +- .../src/services/finstance/finstance.hooks.js | 95 +- .../src/services/flowzdata/flowzdata.hooks.js | 3 + 262 files changed, 90759 insertions(+), 2587 deletions(-) create mode 100644 node_modules/particles.js/.npmignore create mode 100644 node_modules/particles.js/LICENSE.md create mode 100644 node_modules/particles.js/README.md create mode 100644 node_modules/particles.js/bower.json create mode 100755 node_modules/particles.js/demo/css/style.css create mode 100755 node_modules/particles.js/demo/index.html create mode 100644 node_modules/particles.js/demo/js/app.js create mode 100644 node_modules/particles.js/demo/js/lib/stats.js create mode 100644 node_modules/particles.js/demo/particles.json create mode 100644 node_modules/particles.js/package.json create mode 100644 node_modules/particles.js/particles.js create mode 100644 node_modules/vue-particles/.babelrc create mode 100644 node_modules/vue-particles/.editorconfig create mode 100644 node_modules/vue-particles/.eslintignore create mode 100644 node_modules/vue-particles/.eslintrc.js create mode 100644 node_modules/vue-particles/.npmignore create mode 100644 node_modules/vue-particles/.postcssrc.js create mode 100644 node_modules/vue-particles/README.md create mode 100644 node_modules/vue-particles/build/build.js create mode 100644 node_modules/vue-particles/build/check-versions.js create mode 100644 node_modules/vue-particles/build/dev-client.js create mode 100644 node_modules/vue-particles/build/dev-server.js create mode 100644 node_modules/vue-particles/build/utils.js create mode 100644 node_modules/vue-particles/build/vue-loader.conf.js create mode 100644 node_modules/vue-particles/build/webpack.base.conf.js create mode 100644 node_modules/vue-particles/build/webpack.dev.conf.js create mode 100644 node_modules/vue-particles/build/webpack.prod.conf.js create mode 100644 node_modules/vue-particles/config/dev.env.js create mode 100644 node_modules/vue-particles/config/index.js create mode 100644 node_modules/vue-particles/config/prod.env.js create mode 100644 node_modules/vue-particles/index.html create mode 100644 node_modules/vue-particles/package.json create mode 100644 node_modules/vue-particles/rollup.config.js create mode 100644 node_modules/vue-particles/src/App.vue create mode 100644 node_modules/vue-particles/src/assets/logo.png create mode 100644 node_modules/vue-particles/src/assets/screenshot.png create mode 100644 node_modules/vue-particles/src/assets/sky.jpg create mode 100644 node_modules/vue-particles/src/assets/tables.scss create mode 100644 node_modules/vue-particles/src/components/Foot.vue create mode 100644 node_modules/vue-particles/src/components/Hello.vue create mode 100644 node_modules/vue-particles/src/components/Main.vue create mode 100644 node_modules/vue-particles/src/main.js create mode 100644 node_modules/vue-particles/src/vue-particles/index.js create mode 100644 node_modules/vue-particles/src/vue-particles/particles-data.js create mode 100644 node_modules/vue-particles/src/vue-particles/vue-particles.vue create mode 100644 node_modules/vue-particles/static/.gitkeep create mode 100644 node_modules/vue-particles/static/screenshot.png create mode 100644 node_modules/vue-particles/vue-particles/vue-particles.common.js create mode 100644 node_modules/vue-particles/vue-particles/vue-particles.common.js.map create mode 100644 node_modules/vue-particles/vue-particles/vue-particles.esm.js create mode 100644 node_modules/vue-particles/vue-particles/vue-particles.esm.js.map create mode 100644 node_modules/vue-particles/vue-particles/vue-particles.js create mode 100644 node_modules/vue-particles/vue-particles/vue-particles.js.map create mode 100644 node_modules/vue/LICENSE create mode 100644 node_modules/vue/README.md create mode 100644 node_modules/vue/dist/README.md create mode 100644 node_modules/vue/dist/vue.common.js create mode 100644 node_modules/vue/dist/vue.esm.browser.js create mode 100644 node_modules/vue/dist/vue.esm.js create mode 100644 node_modules/vue/dist/vue.js create mode 100644 node_modules/vue/dist/vue.min.js create mode 100644 node_modules/vue/dist/vue.runtime.common.js create mode 100644 node_modules/vue/dist/vue.runtime.esm.js create mode 100644 node_modules/vue/dist/vue.runtime.js create mode 100644 node_modules/vue/dist/vue.runtime.min.js create mode 100644 node_modules/vue/package.json create mode 100644 node_modules/vue/src/.DS_Store create mode 100644 node_modules/vue/src/compiler/.DS_Store create mode 100644 node_modules/vue/src/compiler/codegen/events.js create mode 100644 node_modules/vue/src/compiler/codegen/index.js create mode 100644 node_modules/vue/src/compiler/create-compiler.js create mode 100644 node_modules/vue/src/compiler/directives/bind.js create mode 100644 node_modules/vue/src/compiler/directives/index.js create mode 100644 node_modules/vue/src/compiler/directives/model.js create mode 100644 node_modules/vue/src/compiler/directives/on.js create mode 100644 node_modules/vue/src/compiler/error-detector.js create mode 100644 node_modules/vue/src/compiler/helpers.js create mode 100644 node_modules/vue/src/compiler/index.js create mode 100644 node_modules/vue/src/compiler/optimizer.js create mode 100644 node_modules/vue/src/compiler/parser/entity-decoder.js create mode 100644 node_modules/vue/src/compiler/parser/filter-parser.js create mode 100644 node_modules/vue/src/compiler/parser/html-parser.js create mode 100644 node_modules/vue/src/compiler/parser/index.js create mode 100644 node_modules/vue/src/compiler/parser/text-parser.js create mode 100644 node_modules/vue/src/compiler/to-function.js create mode 100644 node_modules/vue/src/core/components/index.js create mode 100644 node_modules/vue/src/core/components/keep-alive.js create mode 100644 node_modules/vue/src/core/config.js create mode 100644 node_modules/vue/src/core/global-api/assets.js create mode 100644 node_modules/vue/src/core/global-api/extend.js create mode 100644 node_modules/vue/src/core/global-api/index.js create mode 100644 node_modules/vue/src/core/global-api/mixin.js create mode 100644 node_modules/vue/src/core/global-api/use.js create mode 100644 node_modules/vue/src/core/index.js create mode 100644 node_modules/vue/src/core/instance/events.js create mode 100644 node_modules/vue/src/core/instance/index.js create mode 100644 node_modules/vue/src/core/instance/init.js create mode 100644 node_modules/vue/src/core/instance/inject.js create mode 100644 node_modules/vue/src/core/instance/lifecycle.js create mode 100644 node_modules/vue/src/core/instance/proxy.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/bind-object-listeners.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/bind-object-props.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/check-keycodes.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/index.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/render-list.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/render-slot.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/render-static.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/resolve-filter.js create mode 100644 node_modules/vue/src/core/instance/render-helpers/resolve-slots.js create mode 100644 node_modules/vue/src/core/instance/render.js create mode 100644 node_modules/vue/src/core/instance/state.js create mode 100644 node_modules/vue/src/core/observer/array.js create mode 100644 node_modules/vue/src/core/observer/dep.js create mode 100644 node_modules/vue/src/core/observer/index.js create mode 100644 node_modules/vue/src/core/observer/scheduler.js create mode 100644 node_modules/vue/src/core/observer/traverse.js create mode 100644 node_modules/vue/src/core/observer/watcher.js create mode 100644 node_modules/vue/src/core/util/debug.js create mode 100644 node_modules/vue/src/core/util/env.js create mode 100644 node_modules/vue/src/core/util/error.js create mode 100644 node_modules/vue/src/core/util/index.js create mode 100644 node_modules/vue/src/core/util/lang.js create mode 100644 node_modules/vue/src/core/util/next-tick.js create mode 100644 node_modules/vue/src/core/util/options.js create mode 100644 node_modules/vue/src/core/util/perf.js create mode 100644 node_modules/vue/src/core/util/props.js create mode 100644 node_modules/vue/src/core/vdom/create-component.js create mode 100644 node_modules/vue/src/core/vdom/create-element.js create mode 100644 node_modules/vue/src/core/vdom/create-functional-component.js create mode 100644 node_modules/vue/src/core/vdom/helpers/extract-props.js create mode 100644 node_modules/vue/src/core/vdom/helpers/get-first-component-child.js create mode 100644 node_modules/vue/src/core/vdom/helpers/index.js create mode 100644 node_modules/vue/src/core/vdom/helpers/is-async-placeholder.js create mode 100644 node_modules/vue/src/core/vdom/helpers/merge-hook.js create mode 100644 node_modules/vue/src/core/vdom/helpers/normalize-children.js create mode 100644 node_modules/vue/src/core/vdom/helpers/resolve-async-component.js create mode 100644 node_modules/vue/src/core/vdom/helpers/update-listeners.js create mode 100644 node_modules/vue/src/core/vdom/modules/directives.js create mode 100644 node_modules/vue/src/core/vdom/modules/index.js create mode 100644 node_modules/vue/src/core/vdom/modules/ref.js create mode 100644 node_modules/vue/src/core/vdom/patch.js create mode 100644 node_modules/vue/src/core/vdom/vnode.js create mode 100644 node_modules/vue/src/platforms/.DS_Store create mode 100644 node_modules/vue/src/platforms/web/compiler/directives/html.js create mode 100644 node_modules/vue/src/platforms/web/compiler/directives/index.js create mode 100644 node_modules/vue/src/platforms/web/compiler/directives/model.js create mode 100644 node_modules/vue/src/platforms/web/compiler/directives/text.js create mode 100644 node_modules/vue/src/platforms/web/compiler/index.js create mode 100644 node_modules/vue/src/platforms/web/compiler/modules/class.js create mode 100644 node_modules/vue/src/platforms/web/compiler/modules/index.js create mode 100644 node_modules/vue/src/platforms/web/compiler/modules/model.js create mode 100644 node_modules/vue/src/platforms/web/compiler/modules/style.js create mode 100644 node_modules/vue/src/platforms/web/compiler/options.js create mode 100644 node_modules/vue/src/platforms/web/compiler/util.js create mode 100644 node_modules/vue/src/platforms/web/entry-compiler.js create mode 100644 node_modules/vue/src/platforms/web/entry-runtime-with-compiler.js create mode 100644 node_modules/vue/src/platforms/web/entry-runtime.js create mode 100644 node_modules/vue/src/platforms/web/entry-server-basic-renderer.js create mode 100644 node_modules/vue/src/platforms/web/entry-server-renderer.js create mode 100644 node_modules/vue/src/platforms/web/runtime/class-util.js create mode 100644 node_modules/vue/src/platforms/web/runtime/components/index.js create mode 100644 node_modules/vue/src/platforms/web/runtime/components/transition-group.js create mode 100644 node_modules/vue/src/platforms/web/runtime/components/transition.js create mode 100644 node_modules/vue/src/platforms/web/runtime/directives/index.js create mode 100644 node_modules/vue/src/platforms/web/runtime/directives/model.js create mode 100644 node_modules/vue/src/platforms/web/runtime/directives/show.js create mode 100644 node_modules/vue/src/platforms/web/runtime/index.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/attrs.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/class.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/dom-props.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/events.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/index.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/style.js create mode 100644 node_modules/vue/src/platforms/web/runtime/modules/transition.js create mode 100644 node_modules/vue/src/platforms/web/runtime/node-ops.js create mode 100644 node_modules/vue/src/platforms/web/runtime/patch.js create mode 100644 node_modules/vue/src/platforms/web/runtime/transition-util.js create mode 100644 node_modules/vue/src/platforms/web/server/compiler.js create mode 100644 node_modules/vue/src/platforms/web/server/directives/index.js create mode 100644 node_modules/vue/src/platforms/web/server/directives/model.js create mode 100644 node_modules/vue/src/platforms/web/server/directives/show.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/attrs.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/class.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/dom-props.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/index.js create mode 100644 node_modules/vue/src/platforms/web/server/modules/style.js create mode 100644 node_modules/vue/src/platforms/web/server/util.js create mode 100644 node_modules/vue/src/platforms/web/util/attrs.js create mode 100644 node_modules/vue/src/platforms/web/util/class.js create mode 100644 node_modules/vue/src/platforms/web/util/compat.js create mode 100644 node_modules/vue/src/platforms/web/util/element.js create mode 100644 node_modules/vue/src/platforms/web/util/index.js create mode 100644 node_modules/vue/src/platforms/web/util/style.js create mode 100644 node_modules/vue/src/platforms/weex/.DS_Store create mode 100644 node_modules/vue/src/platforms/weex/compiler/.DS_Store create mode 100755 node_modules/vue/src/platforms/weex/compiler/directives/index.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/directives/model.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/index.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/append.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/class.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/index.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/props.js create mode 100644 node_modules/vue/src/platforms/weex/compiler/modules/style.js create mode 100644 node_modules/vue/src/platforms/weex/entry-compiler.js create mode 100644 node_modules/vue/src/platforms/weex/entry-framework.js create mode 100644 node_modules/vue/src/platforms/weex/entry-runtime-factory.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/components/index.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/components/richtext.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/components/transition-group.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/components/transition.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/directives/index.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/index.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/attrs.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/class.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/events.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/index.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/modules/style.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/modules/transition.js create mode 100755 node_modules/vue/src/platforms/weex/runtime/node-ops.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/patch.js create mode 100644 node_modules/vue/src/platforms/weex/runtime/text-node.js create mode 100755 node_modules/vue/src/platforms/weex/util/index.js create mode 100644 node_modules/vue/src/server/bundle-renderer/create-bundle-renderer.js create mode 100644 node_modules/vue/src/server/bundle-renderer/create-bundle-runner.js create mode 100644 node_modules/vue/src/server/bundle-renderer/source-map-support.js create mode 100644 node_modules/vue/src/server/create-basic-renderer.js create mode 100644 node_modules/vue/src/server/create-renderer.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/codegen.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/index.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/modules.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/optimizer.js create mode 100644 node_modules/vue/src/server/optimizing-compiler/runtime-helpers.js create mode 100644 node_modules/vue/src/server/render-context.js create mode 100644 node_modules/vue/src/server/render-stream.js create mode 100644 node_modules/vue/src/server/render.js create mode 100644 node_modules/vue/src/server/template-renderer/create-async-file-mapper.js create mode 100644 node_modules/vue/src/server/template-renderer/index.js create mode 100644 node_modules/vue/src/server/template-renderer/parse-template.js create mode 100644 node_modules/vue/src/server/template-renderer/template-stream.js create mode 100644 node_modules/vue/src/server/util.js create mode 100644 node_modules/vue/src/server/webpack-plugin/client.js create mode 100644 node_modules/vue/src/server/webpack-plugin/server.js create mode 100644 node_modules/vue/src/server/webpack-plugin/util.js create mode 100644 node_modules/vue/src/server/write.js create mode 100644 node_modules/vue/src/sfc/parser.js create mode 100644 node_modules/vue/src/shared/constants.js create mode 100644 node_modules/vue/src/shared/util.js create mode 100644 node_modules/vue/types/index.d.ts create mode 100644 node_modules/vue/types/options.d.ts create mode 100644 node_modules/vue/types/plugin.d.ts create mode 100644 node_modules/vue/types/vnode.d.ts create mode 100644 node_modules/vue/types/vue.d.ts diff --git a/client/package-lock.json b/client/package-lock.json index c136b08..09f7221 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -9,7 +9,7 @@ "resolved": "https://registry.npmjs.org/@deveodk/vue-tinymce/-/vue-tinymce-1.0.0.tgz", "integrity": "sha512-aKprH9wKLUcTX2GhHyUTM7Jfkq4foVTL7wxVxOt94qIwSWcpcxrx7hEcZ13Bn4EyoNAN6Qvdcvi4J/rCYi8jQg==", "requires": { - "tinymce": "4.7.13" + "tinymce": "^4.6.3" } }, "@feathersjs/errors": { @@ -17,7 +17,7 @@ "resolved": "https://registry.npmjs.org/@feathersjs/errors/-/errors-3.3.2.tgz", "integrity": "sha512-9a2KHFMPRQw6zTuDo06YbgWyqXiWOqCi6iXI8kMrLDKAmkRvJjrCq+SXEJuz44hTxqBJtJBaW164Mez8tQqJbw==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "@tinymce/tinymce-vue": { @@ -25,7 +25,7 @@ "resolved": "https://registry.npmjs.org/@tinymce/tinymce-vue/-/tinymce-vue-1.0.9.tgz", "integrity": "sha512-C0Vry2SNgTGJp3Q6Emp2SZ5jtO9TmHR5uMOR2XCBWy1HX8+OLrf6RZjWz0ZpIacVHEkHycMIHCUiWWQ4iqogGw==", "requires": { - "vue": "2.5.17" + "vue": "^2.5.13" } }, "@types/node": { @@ -38,7 +38,7 @@ "resolved": "https://registry.npmjs.org/@types/socket.io/-/socket.io-1.4.34.tgz", "integrity": "sha512-f3CZ8AJak0WP71b+AOzx2jkNzpMg7po9zHOhoaAiY3p2Y4lfvnNIQ5b8SQ2NJSXeg2mVgwLz+VTRZnEq6dCNGw==", "requires": { - "@types/node": "10.3.2" + "@types/node": "*" } }, "abbrev": { @@ -52,7 +52,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz", "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, @@ -68,7 +68,7 @@ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" }, "dependencies": { "acorn": { @@ -85,7 +85,7 @@ "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { - "acorn": "3.3.0" + "acorn": "^3.0.4" }, "dependencies": { "acorn": { @@ -107,8 +107,8 @@ "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", "dev": true, "requires": { - "extend": "3.0.1", - "semver": "5.0.3" + "extend": "~3.0.0", + "semver": "~5.0.1" }, "dependencies": { "semver": { @@ -124,10 +124,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "ajv-errors": { @@ -147,9 +147,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "alphanum-sort": { @@ -196,8 +196,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "aproba": { @@ -212,7 +212,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -221,7 +221,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -259,7 +259,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -303,9 +303,9 @@ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -363,7 +363,7 @@ "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.10" } }, "async-each": { @@ -382,7 +382,7 @@ "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-1.8.2.tgz", "integrity": "sha1-t3WXIm6WJC+NUxwNRq4pX2JCK6Q=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "6.x" } }, "asynckit": { @@ -402,12 +402,12 @@ "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", "dev": true, "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000851", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.22", - "postcss-value-parser": "3.3.0" + "browserslist": "^2.11.3", + "caniuse-lite": "^1.0.30000805", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.17", + "postcss-value-parser": "^3.2.3" } }, "aws": { @@ -415,13 +415,13 @@ "resolved": "https://registry.npmjs.org/aws/-/aws-0.0.3-2.tgz", "integrity": "sha1-jEwXDEc2SzCf3+Sw/kwXEESD+kY=", "requires": { - "vows": "0.8.2" + "vows": ">= 0.5.1" } }, "aws-sdk": { - "version": "2.313.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.313.0.tgz", - "integrity": "sha512-Hh1UhQV7PNv220cEH/lElWxjKMpcHBpLVhVDuOmEM5I92ndhkM0R4owDpDjbvz8eBu6+7ZrtvAQwZlBjbCLWGA==", + "version": "2.315.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.315.0.tgz", + "integrity": "sha512-GqKve4H6DCpPG7zm5L5S5Is50AnRHbBei1kKFhUKj4KfB7lV/0OIVfjob2Jh4a6I4I1tqnTcdTXGlhBccS1f3w==", "requires": { "buffer": "4.9.1", "events": "1.1.1", @@ -449,8 +449,8 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-0.16.2.tgz", "integrity": "sha1-uk+S8XFn37q0CYN4VFS5rBScPG0=", "requires": { - "follow-redirects": "1.5.0", - "is-buffer": "1.1.6" + "follow-redirects": "^1.2.3", + "is-buffer": "^1.1.5" } }, "babel-code-frame": { @@ -458,9 +458,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "chalk": { @@ -468,11 +468,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -480,7 +480,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -493,25 +493,25 @@ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-generator": "6.26.1", - "babel-helpers": "6.24.1", - "babel-messages": "6.23.0", - "babel-register": "6.26.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "convert-source-map": "1.5.1", - "debug": "2.6.9", - "json5": "0.5.1", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "path-is-absolute": "1.0.1", - "private": "0.1.8", - "slash": "1.0.0", - "source-map": "0.5.7" + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" }, "dependencies": { "debug": { @@ -531,10 +531,10 @@ "integrity": "sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0" + "babel-code-frame": "^6.22.0", + "babel-traverse": "^6.23.1", + "babel-types": "^6.23.0", + "babylon": "^6.17.0" } }, "babel-generator": { @@ -543,14 +543,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "dev": true, "requires": { - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "detect-indent": "4.0.0", - "jsesc": "1.3.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" }, "dependencies": { "jsesc": { @@ -566,9 +566,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-builder-binary-assignment-operator-visitor": { @@ -576,9 +576,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", "requires": { - "babel-helper-explode-assignable-expression": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-call-delegate": { @@ -586,10 +586,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-define-map": { @@ -597,10 +597,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-explode-assignable-expression": { @@ -608,9 +608,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-explode-class": { @@ -618,10 +618,10 @@ "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", "requires": { - "babel-helper-bindify-decorators": "6.24.1", - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-function-name": { @@ -629,11 +629,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", "requires": { - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-get-function-arity": { @@ -641,8 +641,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-hoist-variables": { @@ -650,8 +650,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-optimise-call-expression": { @@ -659,8 +659,8 @@ "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-helper-regex": { @@ -668,9 +668,9 @@ "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-helper-remap-async-to-generator": { @@ -678,11 +678,11 @@ "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helper-replace-supers": { @@ -690,12 +690,12 @@ "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", "requires": { - "babel-helper-optimise-call-expression": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-helpers": { @@ -704,8 +704,8 @@ "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-loader": { @@ -713,9 +713,9 @@ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.1.tgz", "integrity": "sha1-uHE0yLEuPkwqlOBUYIW8aAorhIg=", "requires": { - "find-cache-dir": "1.0.0", - "loader-utils": "1.1.0", - "mkdirp": "0.5.1" + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" } }, "babel-messages": { @@ -723,7 +723,7 @@ "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-check-es2015-constants": { @@ -731,7 +731,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-istanbul": { @@ -740,10 +740,10 @@ "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", "dev": true, "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "find-up": "2.1.0", - "istanbul-lib-instrument": "1.10.1", - "test-exclude": "4.2.1" + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" } }, "babel-plugin-syntax-async-functions": { @@ -796,9 +796,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-generators": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-async-to-generator": { @@ -806,9 +806,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", "requires": { - "babel-helper-remap-async-to-generator": "6.24.1", - "babel-plugin-syntax-async-functions": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-class-properties": { @@ -816,10 +816,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-plugin-syntax-class-properties": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-decorators": { @@ -827,11 +827,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", "requires": { - "babel-helper-explode-class": "6.24.1", - "babel-plugin-syntax-decorators": "6.13.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-arrow-functions": { @@ -839,7 +839,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoped-functions": { @@ -847,7 +847,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-block-scoping": { @@ -855,11 +855,11 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" } }, "babel-plugin-transform-es2015-classes": { @@ -867,15 +867,15 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", "requires": { - "babel-helper-define-map": "6.26.0", - "babel-helper-function-name": "6.24.1", - "babel-helper-optimise-call-expression": "6.24.1", - "babel-helper-replace-supers": "6.24.1", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-computed-properties": { @@ -883,8 +883,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", "requires": { - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-destructuring": { @@ -892,7 +892,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-duplicate-keys": { @@ -900,8 +900,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-for-of": { @@ -909,7 +909,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-function-name": { @@ -917,9 +917,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", "requires": { - "babel-helper-function-name": "6.24.1", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-literals": { @@ -927,7 +927,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-modules-amd": { @@ -935,9 +935,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", "requires": { - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-commonjs": { @@ -945,10 +945,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", "requires": { - "babel-plugin-transform-strict-mode": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-types": "6.26.0" + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" } }, "babel-plugin-transform-es2015-modules-systemjs": { @@ -956,9 +956,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", "requires": { - "babel-helper-hoist-variables": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-modules-umd": { @@ -966,9 +966,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", "requires": { - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0" + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" } }, "babel-plugin-transform-es2015-object-super": { @@ -976,8 +976,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", "requires": { - "babel-helper-replace-supers": "6.24.1", - "babel-runtime": "6.26.0" + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-parameters": { @@ -985,12 +985,12 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", "requires": { - "babel-helper-call-delegate": "6.24.1", - "babel-helper-get-function-arity": "6.24.1", - "babel-runtime": "6.26.0", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-shorthand-properties": { @@ -998,8 +998,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-spread": { @@ -1007,7 +1007,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-sticky-regex": { @@ -1015,9 +1015,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-es2015-template-literals": { @@ -1025,7 +1025,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-typeof-symbol": { @@ -1033,7 +1033,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-es2015-unicode-regex": { @@ -1041,9 +1041,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", "requires": { - "babel-helper-regex": "6.26.0", - "babel-runtime": "6.26.0", - "regexpu-core": "2.0.0" + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" } }, "babel-plugin-transform-exponentiation-operator": { @@ -1051,9 +1051,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", "requires": { - "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", - "babel-plugin-syntax-exponentiation-operator": "6.13.0", - "babel-runtime": "6.26.0" + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-object-rest-spread": { @@ -1061,8 +1061,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, "babel-plugin-transform-regenerator": { @@ -1070,7 +1070,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", "requires": { - "regenerator-transform": "0.10.1" + "regenerator-transform": "^0.10.0" } }, "babel-plugin-transform-runtime": { @@ -1078,7 +1078,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-runtime/-/babel-plugin-transform-runtime-6.23.0.tgz", "integrity": "sha1-iEkNRGUC6puOfvsP4J7E2ZR5se4=", "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-plugin-transform-strict-mode": { @@ -1086,8 +1086,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0" + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" } }, "babel-plugin-transform-vue-jsx": { @@ -1095,7 +1095,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-3.7.0.tgz", "integrity": "sha512-W39X07/n3oJMQd8tALBO+440NraGSF//Lo1ydd/9Nme3+QiRGFBb1Q39T9iixh0jZPPbfv3so18tNoIgLatymw==", "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "babel-polyfill": { @@ -1103,9 +1103,9 @@ "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", "requires": { - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "regenerator-runtime": "0.10.5" + "babel-runtime": "^6.22.0", + "core-js": "^2.4.0", + "regenerator-runtime": "^0.10.0" } }, "babel-preset-env": { @@ -1114,36 +1114,36 @@ "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", "dev": true, "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0", - "browserslist": "3.2.8", - "invariant": "2.2.4", - "semver": "5.5.1" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" }, "dependencies": { "browserslist": { @@ -1152,8 +1152,8 @@ "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000851", - "electron-to-chromium": "1.3.48" + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" } } } @@ -1163,30 +1163,30 @@ "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", "requires": { - "babel-plugin-check-es2015-constants": "6.22.0", - "babel-plugin-transform-es2015-arrow-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", - "babel-plugin-transform-es2015-block-scoping": "6.26.0", - "babel-plugin-transform-es2015-classes": "6.24.1", - "babel-plugin-transform-es2015-computed-properties": "6.24.1", - "babel-plugin-transform-es2015-destructuring": "6.23.0", - "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", - "babel-plugin-transform-es2015-for-of": "6.23.0", - "babel-plugin-transform-es2015-function-name": "6.24.1", - "babel-plugin-transform-es2015-literals": "6.22.0", - "babel-plugin-transform-es2015-modules-amd": "6.24.1", - "babel-plugin-transform-es2015-modules-commonjs": "6.26.2", - "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", - "babel-plugin-transform-es2015-modules-umd": "6.24.1", - "babel-plugin-transform-es2015-object-super": "6.24.1", - "babel-plugin-transform-es2015-parameters": "6.24.1", - "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", - "babel-plugin-transform-es2015-spread": "6.22.0", - "babel-plugin-transform-es2015-sticky-regex": "6.24.1", - "babel-plugin-transform-es2015-template-literals": "6.22.0", - "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", - "babel-plugin-transform-es2015-unicode-regex": "6.24.1", - "babel-plugin-transform-regenerator": "6.26.0" + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" } }, "babel-preset-stage-2": { @@ -1194,10 +1194,10 @@ "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", "requires": { - "babel-plugin-syntax-dynamic-import": "6.18.0", - "babel-plugin-transform-class-properties": "6.24.1", - "babel-plugin-transform-decorators": "6.24.1", - "babel-preset-stage-3": "6.24.1" + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" } }, "babel-preset-stage-3": { @@ -1205,11 +1205,11 @@ "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", "requires": { - "babel-plugin-syntax-trailing-function-commas": "6.22.0", - "babel-plugin-transform-async-generator-functions": "6.24.1", - "babel-plugin-transform-async-to-generator": "6.24.1", - "babel-plugin-transform-exponentiation-operator": "6.24.1", - "babel-plugin-transform-object-rest-spread": "6.26.0" + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" } }, "babel-register": { @@ -1218,13 +1218,13 @@ "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", "dev": true, "requires": { - "babel-core": "6.26.3", - "babel-runtime": "6.26.0", - "core-js": "2.5.7", - "home-or-tmp": "2.0.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "source-map-support": "0.4.18" + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" } }, "babel-runtime": { @@ -1232,8 +1232,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.5.7", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { "regenerator-runtime": { @@ -1248,11 +1248,11 @@ "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", "requires": { - "babel-runtime": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "lodash": "4.17.10" + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" } }, "babel-traverse": { @@ -1260,15 +1260,15 @@ "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", "requires": { - "babel-code-frame": "6.26.0", - "babel-messages": "6.23.0", - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "debug": "2.6.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.10" + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" }, "dependencies": { "debug": { @@ -1286,10 +1286,10 @@ "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.10", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1313,13 +1313,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -1328,7 +1328,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1337,7 +1337,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1346,7 +1346,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1355,9 +1355,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -1400,7 +1400,7 @@ "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "better-assert": { @@ -1417,9 +1417,9 @@ "integrity": "sha512-SOmOsowQWfXc7ybFARsK3C4MCOWzERaOMV/Fl3Tgjs+5dJWyzo3oa127jL44eMbQiAN17J7SvAs2TRxEScTUmg==", "dev": true, "requires": { - "bluebird": "3.5.1", - "check-types": "7.4.0", - "tryer": "1.0.0" + "bluebird": "^3.5.1", + "check-types": "^7.3.0", + "tryer": "^1.0.0" } }, "big.js": { @@ -1455,15 +1455,15 @@ "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=", "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" }, "dependencies": { "debug": { @@ -1498,7 +1498,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "bootstrap": { @@ -1511,10 +1511,10 @@ "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-1.5.1.tgz", "integrity": "sha512-bkob7vTHA5VZN6U0Wj34Yj+6jNtqAtc6MwcsLdBz78fcy8Ju5tlYUYMDUefQ0rQH7hhdtFDn9GuDiqhUPmE1sA==", "requires": { - "lodash.startcase": "4.4.0", - "opencollective": "1.0.3", - "popper.js": "1.14.4", - "vue-functional-data-merge": "2.0.7" + "lodash.startcase": "^4.4.0", + "opencollective": "^1.0.3", + "popper.js": "^1.12.9", + "vue-functional-data-merge": "^2.0.3" } }, "bpmn-js": { @@ -1522,16 +1522,16 @@ "resolved": "https://registry.npmjs.org/bpmn-js/-/bpmn-js-0.22.1.tgz", "integrity": "sha1-ANVeEsSFsoonMM/pFsINDtjf09o=", "requires": { - "bpmn-moddle": "0.14.1", - "diagram-js": "0.21.1", - "diagram-js-direct-editing": "0.19.0", - "diagram-js-origin": "0.15.2", - "ids": "0.2.2", - "inherits": "2.0.3", - "lodash": "3.10.1", - "min-dom": "0.2.0", - "object-refs": "0.1.1", - "tiny-svg": "0.1.3" + "bpmn-moddle": "^0.14.0", + "diagram-js": "^0.21.1", + "diagram-js-direct-editing": "^0.19.0", + "diagram-js-origin": "^0.15.2", + "ids": "^0.2.0", + "inherits": "^2.0.1", + "lodash": "^3.0.1", + "min-dom": "^0.2.0", + "object-refs": "^0.1.1", + "tiny-svg": "^0.1.1" }, "dependencies": { "lodash": { @@ -1546,12 +1546,12 @@ "resolved": "https://registry.npmjs.org/bpmn-js-properties-panel/-/bpmn-js-properties-panel-0.16.1.tgz", "integrity": "sha1-X5YMFx6u2K8lkzI0b2+ZZ3Eanpk=", "requires": { - "ids": "0.2.2", - "inherits": "2.0.3", - "lodash": "3.10.1", - "min-dom": "0.2.0", - "scroll-tabs": "0.2.1", - "selection-update": "0.1.2" + "ids": "^0.2.0", + "inherits": "^2.0.1", + "lodash": "^3.0.1", + "min-dom": "^0.2.0", + "scroll-tabs": "^0.2.1", + "selection-update": "^0.1.2" }, "dependencies": { "lodash": { @@ -1566,9 +1566,9 @@ "resolved": "https://registry.npmjs.org/bpmn-moddle/-/bpmn-moddle-0.14.1.tgz", "integrity": "sha512-TowGXEv2oXX4f620cdtnqqDdxuBURhZeBdU5GO1l5/joG4Joe3nvXOy5cST2QlQ3RS4cQU5SHnmHfyevyK2ZZg==", "requires": { - "lodash": "3.10.1", - "moddle": "1.2.1", - "moddle-xml": "1.1.1" + "lodash": "^3.0.0", + "moddle": "^1.0.0", + "moddle-xml": "^1.1.1" }, "dependencies": { "lodash": { @@ -1583,7 +1583,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1593,9 +1593,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1616,12 +1616,12 @@ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { @@ -1630,9 +1630,9 @@ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.1", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -1641,9 +1641,9 @@ "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { @@ -1652,8 +1652,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -1662,13 +1662,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { @@ -1677,7 +1677,7 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "1.0.6" + "pako": "~1.0.5" } }, "browserslist": { @@ -1686,8 +1686,8 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000851", - "electron-to-chromium": "1.3.48" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "buffer": { @@ -1695,9 +1695,9 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.8", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, "buffer-from": { @@ -1735,19 +1735,19 @@ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.3", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" }, "dependencies": { "lru-cache": { @@ -1756,8 +1756,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -1768,15 +1768,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "dependencies": { "isobject": { @@ -1793,7 +1793,7 @@ "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", "dev": true, "requires": { - "callsites": "0.2.0" + "callsites": "^0.2.0" } }, "callsite": { @@ -1813,8 +1813,8 @@ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -1829,8 +1829,8 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "camunda-bpmn-moddle": { @@ -1844,10 +1844,10 @@ "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000851", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^1.3.6", + "caniuse-db": "^1.0.30000529", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" }, "dependencies": { "browserslist": { @@ -1856,8 +1856,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000851", - "electron-to-chromium": "1.3.48" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } } } @@ -1885,8 +1885,8 @@ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chai": { @@ -1895,9 +1895,9 @@ "integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=", "dev": true, "requires": { - "assertion-error": "1.1.0", - "deep-eql": "0.1.3", - "type-detect": "1.0.0" + "assertion-error": "^1.0.1", + "deep-eql": "^0.1.3", + "type-detect": "^1.0.0" } }, "chai-nightwatch": { @@ -1924,9 +1924,9 @@ "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "dependencies": { "ansi-styles": { @@ -1935,7 +1935,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "supports-color": { @@ -1944,7 +1944,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -1971,14 +1971,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "glob-parent": "2.0.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "2.0.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" } }, "chownr": { @@ -1993,11 +1994,11 @@ "integrity": "sha512-6O9HxvrSuHqmRlIgMzi0/05GsDNHqs8kaF5gNTIyaZNwRzb/RBUWH1xNNXKNxyhXSnGSalH8hWsKP5mc/npSQQ==", "dev": true, "requires": { - "del": "3.0.0", - "extract-zip": "1.6.7", - "kew": "0.7.0", - "mkdirp": "0.5.1", - "request": "2.87.0" + "del": "^3.0.0", + "extract-zip": "^1.6.7", + "kew": "^0.7.0", + "mkdirp": "^0.5.1", + "request": "^2.87.0" } }, "cipher-base": { @@ -2006,8 +2007,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-json": { @@ -2022,7 +2023,7 @@ "integrity": "sha512-4CoL/A3hf90V3VIEjeuhSvlGFEHKzOz+Wfc2IVZc+FaUgU0ZQafJTP49fvnULipOPcAfqhyI2duwQyns6xqjYA==", "dev": true, "requires": { - "chalk": "1.1.3" + "chalk": "^1.1.3" }, "dependencies": { "chalk": { @@ -2031,11 +2032,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -2044,7 +2045,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -2057,10 +2058,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -2069,7 +2070,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -2086,7 +2087,7 @@ "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "0.5.x" } }, "cli-cursor": { @@ -2094,7 +2095,7 @@ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-spinners": { @@ -2114,8 +2115,8 @@ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" }, "dependencies": { @@ -2144,7 +2145,7 @@ "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", "dev": true, "requires": { - "q": "1.5.1" + "q": "^1.1.2" } }, "coalescy": { @@ -2170,8 +2171,8 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color": { @@ -2180,9 +2181,9 @@ "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", "dev": true, "requires": { - "clone": "1.0.4", - "color-convert": "1.9.1", - "color-string": "0.3.0" + "clone": "^1.0.2", + "color-convert": "^1.3.0", + "color-string": "^0.3.0" } }, "color-convert": { @@ -2191,7 +2192,7 @@ "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.1.1" } }, "color-name": { @@ -2206,7 +2207,7 @@ "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "^1.0.0" } }, "colormin": { @@ -2215,9 +2216,9 @@ "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", "dev": true, "requires": { - "color": "0.11.4", + "color": "^0.11.0", "css-color-names": "0.0.4", - "has": "1.0.3" + "has": "^1.0.1" } }, "colors": { @@ -2232,7 +2233,7 @@ "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.5.0" } }, "combined-stream": { @@ -2240,7 +2241,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -2272,7 +2273,7 @@ "resolved": "https://registry.npmjs.org/component-closest/-/component-closest-0.1.4.tgz", "integrity": "sha1-W3L8UtkGB+dRFcr9w7B+JzSN5xs=", "requires": { - "component-matches-selector": "0.1.6" + "component-matches-selector": "~0.1.5" } }, "component-delegate": { @@ -2280,8 +2281,8 @@ "resolved": "https://registry.npmjs.org/component-delegate/-/component-delegate-0.2.4.tgz", "integrity": "sha1-3FAodZ6mgb6oSj1rvWUCB8O+sTg=", "requires": { - "component-closest": "0.1.4", - "component-event": "0.1.4" + "component-closest": "*", + "component-event": "*" } }, "component-emitter": { @@ -2309,7 +2310,7 @@ "resolved": "https://registry.npmjs.org/component-matches-selector/-/component-matches-selector-0.1.6.tgz", "integrity": "sha1-e2MOBOfgw7ABnzF0n9cK9e2Lly4=", "requires": { - "component-query": "0.0.3" + "component-query": "*" } }, "component-query": { @@ -2328,10 +2329,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.1.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "config-chain": { @@ -2340,8 +2341,8 @@ "integrity": "sha1-q6CXR9++TD5w52am5BWG4YWfxvI=", "dev": true, "requires": { - "ini": "1.3.5", - "proto-list": "1.2.4" + "ini": "^1.3.4", + "proto-list": "~1.2.1" } }, "connect": { @@ -2352,7 +2353,7 @@ "requires": { "debug": "2.6.9", "finalhandler": "1.1.0", - "parseurl": "1.3.2", + "parseurl": "~1.3.2", "utils-merge": "1.0.1" }, "dependencies": { @@ -2372,12 +2373,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" } }, "statuses": { @@ -2400,7 +2401,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "consolidate": { @@ -2409,7 +2410,7 @@ "integrity": "sha1-WiUEe8dvcwcmZ8jLUsmJiI9JTGM=", "dev": true, "requires": { - "bluebird": "3.5.1" + "bluebird": "^3.1.1" } }, "constants-browserify": { @@ -2450,12 +2451,12 @@ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, "copy-descriptor": { @@ -2470,14 +2471,14 @@ "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "globby": "7.1.1", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "minimatch": "3.0.4", - "p-limit": "1.3.0", - "serialize-javascript": "1.5.0" + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" }, "dependencies": { "globby": { @@ -2486,12 +2487,12 @@ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.2", - "ignore": "3.3.8", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "is-extglob": { @@ -2506,7 +2507,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } } } @@ -2527,13 +2528,13 @@ "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.7.0", - "minimist": "1.2.0", - "object-assign": "4.1.1", - "os-homedir": "1.0.2", - "parse-json": "2.2.0", - "require-from-string": "1.2.1" + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" } }, "create-ecdh": { @@ -2542,8 +2543,8 @@ "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -2552,11 +2553,11 @@ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.4", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -2565,12 +2566,12 @@ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-env": { @@ -2579,8 +2580,8 @@ "integrity": "sha512-jtdNFfFW1hB7sMhr/H6rW1Z45LFqyI431m3qU6bFXcQ3Eh7LtBuG3h74o7ohHZ3crrRkkqHlo4jYHFPcjroANg==", "dev": true, "requires": { - "cross-spawn": "6.0.5", - "is-windows": "1.0.2" + "cross-spawn": "^6.0.5", + "is-windows": "^1.0.0" }, "dependencies": { "cross-spawn": { @@ -2589,11 +2590,11 @@ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.5.1", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } @@ -2604,9 +2605,9 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.3", - "shebang-command": "1.2.0", - "which": "1.3.1" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "lru-cache": { @@ -2615,8 +2616,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -2628,7 +2629,7 @@ "dev": true, "optional": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "crypto-browserify": { @@ -2637,17 +2638,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.16", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, "css-color-names": { @@ -2662,20 +2663,20 @@ "integrity": "sha512-wovHgjAx8ZIMGSL8pTys7edA1ClmzxHeY6n/d97gg5odgsxEgKjULPR0viqyC+FWMCL9sfqoC/QCUBo62tLvPg==", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "css-selector-tokenizer": "0.7.0", - "cssnano": "3.10.0", - "icss-utils": "2.1.0", - "loader-utils": "1.1.0", - "lodash.camelcase": "4.3.0", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-modules-extract-imports": "1.2.0", - "postcss-modules-local-by-default": "1.2.0", - "postcss-modules-scope": "1.1.0", - "postcss-modules-values": "1.3.0", - "postcss-value-parser": "3.3.0", - "source-list-map": "2.0.0" + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "cssnano": "^3.10.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "object-assign": "^4.1.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" }, "dependencies": { "chalk": { @@ -2684,11 +2685,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -2697,7 +2698,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2720,10 +2721,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -2732,7 +2733,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -2743,10 +2744,10 @@ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "~1.0.1" } }, "css-selector-tokenizer": { @@ -2755,9 +2756,9 @@ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "dev": true, "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" }, "dependencies": { "regexpu-core": { @@ -2766,9 +2767,9 @@ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } } } @@ -2791,38 +2792,38 @@ "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", "dev": true, "requires": { - "autoprefixer": "6.7.7", - "decamelize": "1.2.0", - "defined": "1.0.0", - "has": "1.0.3", - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-calc": "5.3.1", - "postcss-colormin": "2.2.2", - "postcss-convert-values": "2.6.1", - "postcss-discard-comments": "2.0.4", - "postcss-discard-duplicates": "2.1.0", - "postcss-discard-empty": "2.1.0", - "postcss-discard-overridden": "0.1.1", - "postcss-discard-unused": "2.2.3", - "postcss-filter-plugins": "2.0.3", - "postcss-merge-idents": "2.1.7", - "postcss-merge-longhand": "2.0.2", - "postcss-merge-rules": "2.1.2", - "postcss-minify-font-values": "1.0.5", - "postcss-minify-gradients": "1.0.5", - "postcss-minify-params": "1.2.2", - "postcss-minify-selectors": "2.1.1", - "postcss-normalize-charset": "1.1.1", - "postcss-normalize-url": "3.0.8", - "postcss-ordered-values": "2.2.3", - "postcss-reduce-idents": "2.4.0", - "postcss-reduce-initial": "1.0.1", - "postcss-reduce-transforms": "1.0.4", - "postcss-svgo": "2.1.6", - "postcss-unique-selectors": "2.0.2", - "postcss-value-parser": "3.3.0", - "postcss-zindex": "2.2.0" + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" }, "dependencies": { "autoprefixer": { @@ -2831,12 +2832,12 @@ "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-db": "1.0.30000851", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "browserslist": "^1.7.6", + "caniuse-db": "^1.0.30000634", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^5.2.16", + "postcss-value-parser": "^3.2.3" } }, "browserslist": { @@ -2845,8 +2846,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000851", - "electron-to-chromium": "1.3.48" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "chalk": { @@ -2855,11 +2856,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -2868,7 +2869,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2891,10 +2892,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -2903,7 +2904,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -2914,8 +2915,8 @@ "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", "dev": true, "requires": { - "clap": "1.2.3", - "source-map": "0.5.7" + "clap": "^1.0.9", + "source-map": "^0.5.3" } }, "currently-unhandled": { @@ -2924,7 +2925,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "custom-event": { @@ -2945,7 +2946,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.45" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -2953,7 +2954,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-uri-to-buffer": { @@ -2974,8 +2975,8 @@ "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=", "dev": true, "requires": { - "get-stdin": "4.0.1", - "meow": "3.7.0" + "get-stdin": "^4.0.1", + "meow": "^3.3.0" } }, "de-indent": { @@ -3033,8 +3034,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -3043,7 +3044,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -3052,7 +3053,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -3061,9 +3062,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -3092,9 +3093,9 @@ "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", "dev": true, "requires": { - "ast-types": "0.11.5", - "escodegen": "1.10.0", - "esprima": "3.1.3" + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" } }, "del": { @@ -3103,12 +3104,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" } }, "delayed-stream": { @@ -3127,8 +3128,8 @@ "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -3142,7 +3143,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "di": { @@ -3156,13 +3157,13 @@ "resolved": "https://registry.npmjs.org/diagram-js/-/diagram-js-0.21.1.tgz", "integrity": "sha1-Vydsxg/PCvoeaHWLhH6egaLg95g=", "requires": { - "didi": "0.1.1", - "hammerjs": "2.0.8", - "inherits": "2.0.3", - "lodash": "3.10.1", - "min-dom": "0.2.0", - "object-refs": "0.1.1", - "tiny-svg": "0.1.3" + "didi": "^0.1.0", + "hammerjs": "^2.0.1", + "inherits": "^2.0.1", + "lodash": "^3.0.1", + "min-dom": "^0.2.0", + "object-refs": "^0.1.1", + "tiny-svg": "^0.1.1" }, "dependencies": { "lodash": { @@ -3177,8 +3178,8 @@ "resolved": "https://registry.npmjs.org/diagram-js-direct-editing/-/diagram-js-direct-editing-0.19.0.tgz", "integrity": "sha1-fZ6OZcJDV+S3mdyVWSjFQCTfN7A=", "requires": { - "lodash": "3.10.1", - "min-dom": "0.2.0" + "lodash": "^3.0.1", + "min-dom": "^0.2.0" }, "dependencies": { "lodash": { @@ -3193,7 +3194,7 @@ "resolved": "https://registry.npmjs.org/diagram-js-origin/-/diagram-js-origin-0.15.2.tgz", "integrity": "sha1-nOCpOXe7PDYdY8wX3YnfqcSF3y4=", "requires": { - "tiny-svg": "0.1.3" + "tiny-svg": "^0.1.0" } }, "didi": { @@ -3213,9 +3214,9 @@ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dir-glob": { @@ -3224,8 +3225,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" }, "dependencies": { "path-type": { @@ -3234,7 +3235,7 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } } } @@ -3245,7 +3246,7 @@ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, "requires": { - "esutils": "2.0.2" + "esutils": "^2.0.2" } }, "dom-converter": { @@ -3254,7 +3255,7 @@ "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", "dev": true, "requires": { - "utila": "0.3.3" + "utila": "~0.3" }, "dependencies": { "utila": { @@ -3271,10 +3272,10 @@ "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.1", - "void-elements": "2.0.1" + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" } }, "dom-serializer": { @@ -3283,8 +3284,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -3313,7 +3314,7 @@ "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domify": { @@ -3327,8 +3328,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "duplexer": { @@ -3343,10 +3344,10 @@ "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { @@ -3355,7 +3356,7 @@ "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "editorconfig": { @@ -3364,11 +3365,11 @@ "integrity": "sha512-WkjsUNVCu+ITKDj73QDvi0trvpdDWdkDyHybDGSXPfekLCqwmpD7CP7iPbvBgosNuLcI96XTDwNa75JyFl7tEQ==", "dev": true, "requires": { - "bluebird": "3.5.1", - "commander": "2.15.1", - "lru-cache": "3.2.0", - "semver": "5.5.1", - "sigmund": "1.0.1" + "bluebird": "^3.0.5", + "commander": "^2.9.0", + "lru-cache": "^3.2.0", + "semver": "^5.1.0", + "sigmund": "^1.0.1" } }, "ee-first": { @@ -3393,7 +3394,7 @@ "resolved": "https://registry.npmjs.org/element-resize-detector/-/element-resize-detector-1.1.14.tgz", "integrity": "sha1-rwZKCmGKggrVcKlcXuxbd74BKME=", "requires": { - "batch-processor": "1.0.0" + "batch-processor": "^1.0.0" } }, "elliptic": { @@ -3402,13 +3403,13 @@ "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.3", - "hmac-drbg": "1.0.1", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "emojis-list": { @@ -3426,7 +3427,7 @@ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", "requires": { - "iconv-lite": "0.4.24" + "iconv-lite": "~0.4.13" } }, "end-of-stream": { @@ -3435,7 +3436,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "engine.io": { @@ -3443,12 +3444,12 @@ "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.0.tgz", "integrity": "sha512-mRbgmAtQ4GAlKwuPnnAvXXwdPhEx+jkc0OBCLrXuD/CRvwNK3AxRSnqK4FSqmAMRRHryVJP8TopOvmEaA64fKw==", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" } }, "engine.io-client": { @@ -3458,14 +3459,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" } }, @@ -3475,10 +3476,10 @@ "integrity": "sha512-dInLFzr80RijZ1rGpx1+56/uFoH7/7InhH3kZt+Ms6hT8tNx3NGW/WNSA/f8As1WkOfkuyb3tnRyuXGxusclMw==", "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.3" + "has-binary2": "~1.0.2" } }, "enhanced-resolve": { @@ -3487,10 +3488,10 @@ "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "memory-fs": "0.4.1", - "object-assign": "4.1.1", - "tapable": "0.2.8" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" } }, "ent": { @@ -3511,7 +3512,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -3520,7 +3521,7 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "error-stack-parser": { @@ -3529,7 +3530,7 @@ "integrity": "sha512-E1fPutRDdIj/hohG0UpT5mayXNCxXP9d+snxFsPU9X0XgccOumKraa3juDMwTUyi7+Bu5+mCGagjg4IYeNbOdw==", "dev": true, "requires": { - "stackframe": "1.0.4" + "stackframe": "^1.0.4" } }, "es5-ext": { @@ -3538,9 +3539,9 @@ "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-iterator": { @@ -3549,9 +3550,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -3560,12 +3561,12 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" } }, "es6-promise": { @@ -3580,11 +3581,11 @@ "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, "es6-symbol": { @@ -3593,8 +3594,8 @@ "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -3603,10 +3604,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -3625,11 +3626,11 @@ "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "dev": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -3647,10 +3648,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint": { @@ -3659,41 +3660,41 @@ "integrity": "sha1-yPxiAcf0DdCJQbh8CFdnOGpnmsw=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "chalk": "1.1.3", - "concat-stream": "1.6.2", - "debug": "2.6.9", - "doctrine": "2.1.0", - "escope": "3.6.0", - "espree": "3.5.4", - "esquery": "1.0.1", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "file-entry-cache": "2.0.0", - "glob": "7.1.2", - "globals": "9.18.0", - "ignore": "3.3.8", - "imurmurhash": "0.1.4", - "inquirer": "0.12.0", - "is-my-json-valid": "2.17.2", - "is-resolvable": "1.1.0", - "js-yaml": "3.7.0", - "json-stable-stringify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "natural-compare": "1.4.0", - "optionator": "0.8.2", - "path-is-inside": "1.0.2", - "pluralize": "1.2.1", - "progress": "1.1.8", - "require-uncached": "1.0.3", - "shelljs": "0.7.8", - "strip-bom": "3.0.0", - "strip-json-comments": "2.0.1", - "table": "3.8.3", - "text-table": "0.2.0", - "user-home": "2.0.0" + "babel-code-frame": "^6.16.0", + "chalk": "^1.1.3", + "concat-stream": "^1.5.2", + "debug": "^2.1.1", + "doctrine": "^2.0.0", + "escope": "^3.6.0", + "espree": "^3.4.0", + "esquery": "^1.0.0", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "glob": "^7.0.3", + "globals": "^9.14.0", + "ignore": "^3.2.0", + "imurmurhash": "^0.1.4", + "inquirer": "^0.12.0", + "is-my-json-valid": "^2.10.0", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.5.1", + "json-stable-stringify": "^1.0.0", + "levn": "^0.3.0", + "lodash": "^4.0.0", + "mkdirp": "^0.5.0", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.1", + "pluralize": "^1.2.1", + "progress": "^1.1.8", + "require-uncached": "^1.0.2", + "shelljs": "^0.7.5", + "strip-bom": "^3.0.0", + "strip-json-comments": "~2.0.1", + "table": "^3.7.8", + "text-table": "~0.2.0", + "user-home": "^2.0.0" }, "dependencies": { "chalk": { @@ -3702,11 +3703,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -3715,7 +3716,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -3726,7 +3727,7 @@ "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", "dev": true, "requires": { - "restore-cursor": "1.0.1" + "restore-cursor": "^1.0.1" } }, "debug": { @@ -3744,8 +3745,8 @@ "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5", - "object-assign": "4.1.1" + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" } }, "inquirer": { @@ -3754,19 +3755,19 @@ "integrity": "sha1-HvK/1jUE3wvHV4X/+MLEHfEvB34=", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "ansi-regex": "2.1.1", - "chalk": "1.1.3", - "cli-cursor": "1.0.2", - "cli-width": "2.2.0", - "figures": "1.7.0", - "lodash": "4.17.10", - "readline2": "1.0.1", - "run-async": "0.1.0", - "rx-lite": "3.1.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "through": "2.3.8" + "ansi-escapes": "^1.1.0", + "ansi-regex": "^2.0.0", + "chalk": "^1.0.0", + "cli-cursor": "^1.0.1", + "cli-width": "^2.0.0", + "figures": "^1.3.5", + "lodash": "^4.3.0", + "readline2": "^1.0.1", + "run-async": "^0.1.0", + "rx-lite": "^3.1.2", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" }, "dependencies": { "strip-ansi": { @@ -3775,7 +3776,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -3786,7 +3787,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "onetime": { @@ -3801,8 +3802,8 @@ "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", "dev": true, "requires": { - "exit-hook": "1.1.1", - "onetime": "1.1.0" + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" } }, "run-async": { @@ -3811,7 +3812,7 @@ "integrity": "sha1-yK1KXhEGYeQCp9IbUw4AnyX444k=", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.3.0" } }, "string-width": { @@ -3820,9 +3821,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" }, "dependencies": { "strip-ansi": { @@ -3831,7 +3832,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -3862,11 +3863,11 @@ "integrity": "sha1-J4h0Q1psRuwdlPoLH/SU4w7wQpA=", "dev": true, "requires": { - "chalk": "1.1.3", + "chalk": "^1.0.0", "coalescy": "1.0.0", - "extend": "3.0.1", - "minimist": "1.2.0", - "text-table": "0.2.0" + "extend": "^3.0.0", + "minimist": "^1.2.0", + "text-table": "^0.2.0" }, "dependencies": { "chalk": { @@ -3875,11 +3876,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -3888,7 +3889,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -3901,11 +3902,11 @@ "integrity": "sha512-40aN976qSNPyb9ejTqjEthZITpls1SVKtwguahmH1dzGCwQU/vySE+xX33VZmD8csU0ahVNCtFlsPgKqRBiqgg==", "dev": true, "requires": { - "loader-fs-cache": "1.0.1", - "loader-utils": "1.1.0", - "object-assign": "4.1.1", - "object-hash": "1.3.0", - "rimraf": "2.6.2" + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" } }, "eslint-plugin-html": { @@ -3914,8 +3915,8 @@ "integrity": "sha512-sSuafathF6ImPrzF2vUKEJY6Llq06d/riMTMzlsruDRDhNsQMYp2viUKo+jx+JRr1QevskeUpQcuptp2gN1XVQ==", "dev": true, "requires": { - "htmlparser2": "3.9.2", - "semver": "5.5.1" + "htmlparser2": "^3.8.2", + "semver": "^5.4.1" } }, "eslint-plugin-promise": { @@ -3936,8 +3937,8 @@ "integrity": "sha512-yAcIQxtmMiB/jL32dzEp2enBeidsB7xWPLNiw3IIkpVds1P+h7qF9YwJq1yUNzp2OKXgAprs4F61ih66UsoD1A==", "dev": true, "requires": { - "acorn": "5.6.2", - "acorn-jsx": "3.0.1" + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" } }, "esprima": { @@ -3952,7 +3953,7 @@ "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.0.0" } }, "esrecurse": { @@ -3961,7 +3962,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -3986,8 +3987,8 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.45" + "d": "1", + "es5-ext": "~0.10.14" } }, "eventemitter3": { @@ -4013,8 +4014,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "exit-hook": { @@ -4029,9 +4030,9 @@ "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", "dev": true, "requires": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" + "array-slice": "^0.2.3", + "array-unique": "^0.2.1", + "braces": "^0.1.2" }, "dependencies": { "braces": { @@ -4040,7 +4041,7 @@ "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", "dev": true, "requires": { - "expand-range": "0.1.1" + "expand-range": "^0.1.0" } }, "expand-range": { @@ -4049,8 +4050,8 @@ "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", "dev": true, "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" + "is-number": "^0.1.1", + "repeat-string": "^0.2.2" } }, "is-number": { @@ -4073,7 +4074,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -4082,7 +4083,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.4" + "fill-range": "^2.1.0" } }, "express": { @@ -4090,36 +4091,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz", "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "debug": { @@ -4153,8 +4154,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -4163,7 +4164,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -4173,9 +4174,9 @@ "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -4184,7 +4185,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extract-text-webpack-plugin": { @@ -4193,10 +4194,10 @@ "integrity": "sha1-dW7076gVXDaBgz+8NNpTuUF0bWw=", "dev": true, "requires": { - "async": "2.6.1", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "webpack-sources": "1.1.0" + "async": "^2.1.2", + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0", + "webpack-sources": "^1.0.1" } }, "extract-zip": { @@ -4260,7 +4261,7 @@ "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", "dev": true, "requires": { - "pend": "1.2.0" + "pend": "~1.2.0" } }, "feathers": { @@ -4268,13 +4269,13 @@ "resolved": "https://registry.npmjs.org/feathers/-/feathers-2.2.4.tgz", "integrity": "sha512-9IYKbxRKoDuerLCkYmFkQuKOwyB2SMM1kSUswDzlE0AmdzDrcfocVYb87/BsQx2j6hFkdCVFYkXq3+YPSDMT3w==", "requires": { - "babel-runtime": "6.26.0", - "debug": "3.1.0", - "events": "1.1.1", - "express": "4.16.3", - "feathers-commons": "0.8.7", - "rubberduck": "1.1.1", - "uberproto": "1.2.0" + "babel-runtime": "^6.26.0", + "debug": "^3.1.0", + "events": "^1.1.1", + "express": "^4.16.1", + "feathers-commons": "^0.8.7", + "rubberduck": "^1.1.1", + "uberproto": "^1.2.0" } }, "feathers-commons": { @@ -4287,7 +4288,7 @@ "resolved": "https://registry.npmjs.org/feathers-errors/-/feathers-errors-2.9.2.tgz", "integrity": "sha512-qwIX97bNW7+1tWVG073+omUA0rCYKJtTtwuzTrrvfrtdr8J8Dk1Fy4iaV9Fa6/YBD5AZu0lsplPE0iu4u/d4GQ==", "requires": { - "debug": "3.1.0" + "debug": "^3.0.0" } }, "feathers-hooks": { @@ -4295,8 +4296,8 @@ "resolved": "https://registry.npmjs.org/feathers-hooks/-/feathers-hooks-2.1.2.tgz", "integrity": "sha512-XQKhbo4d4TuXyco+tbHmKn5wo8QhdSNslJ/+zckNYfUzLmrN8L3uB4Utf0/ivcgwWxJtS1kVhEETBN4TDxuWFg==", "requires": { - "feathers-commons": "0.8.7", - "uberproto": "1.2.0" + "feathers-commons": "^0.8.6", + "uberproto": "^1.2.0" } }, "feathers-socket-commons": { @@ -4304,9 +4305,9 @@ "resolved": "https://registry.npmjs.org/feathers-socket-commons/-/feathers-socket-commons-2.4.0.tgz", "integrity": "sha1-Bi79V/mocWZEFFuZOl9ycJlp8eE=", "requires": { - "debug": "2.6.9", - "feathers-commons": "0.8.7", - "feathers-errors": "2.9.2" + "debug": "^2.2.0", + "feathers-commons": "^0.8.0", + "feathers-errors": "^2.2.0" }, "dependencies": { "debug": { @@ -4324,11 +4325,11 @@ "resolved": "https://registry.npmjs.org/feathers-socketio/-/feathers-socketio-2.0.1.tgz", "integrity": "sha512-3ByXVr6UGyGN6TPRN+U5IhENYrSgeuADhbKWLG5cq2WvYH9h2N1l3cj7WBVsfRektUgVw/HkGNAoExy8yuknMA==", "requires": { - "@types/socket.io": "1.4.34", - "debug": "3.1.0", - "feathers-socket-commons": "2.4.0", - "socket.io": "2.1.1", - "uberproto": "1.2.0" + "@types/socket.io": "~1.4.27", + "debug": "^3.0.0", + "feathers-socket-commons": "^2.0.0", + "socket.io": "^2.0.1", + "uberproto": "^1.2.0" } }, "figures": { @@ -4336,7 +4337,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -4345,8 +4346,8 @@ "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", "dev": true, "requires": { - "flat-cache": "1.3.0", - "object-assign": "4.1.1" + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" } }, "file-loader": { @@ -4354,8 +4355,8 @@ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", "requires": { - "loader-utils": "1.1.0", - "schema-utils": "1.0.0" + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" }, "dependencies": { "ajv": { @@ -4363,10 +4364,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz", "integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==", "requires": { - "fast-deep-equal": "2.0.1", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-keywords": { @@ -4389,9 +4390,9 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "requires": { - "ajv": "6.5.3", - "ajv-errors": "1.0.0", - "ajv-keywords": "3.2.0" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } } } @@ -4420,11 +4421,11 @@ "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { - "is-number": "2.1.0", - "isobject": "2.1.0", - "randomatic": "3.0.0", - "repeat-element": "1.1.2", - "repeat-string": "1.6.1" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -4433,12 +4434,12 @@ "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -4456,9 +4457,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "requires": { - "commondir": "1.0.1", - "make-dir": "1.3.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-up": { @@ -4466,7 +4467,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flat-cache": { @@ -4475,10 +4476,10 @@ "integrity": "sha1-0wMLMrOBVPTjt+nHCfSQ9++XxIE=", "dev": true, "requires": { - "circular-json": "0.3.3", - "del": "2.2.2", - "graceful-fs": "4.1.11", - "write": "0.2.1" + "circular-json": "^0.3.1", + "del": "^2.0.2", + "graceful-fs": "^4.1.2", + "write": "^0.2.1" }, "dependencies": { "del": { @@ -4487,13 +4488,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, "globby": { @@ -4502,12 +4503,12 @@ "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", "dev": true, "requires": { - "array-union": "1.0.2", - "arrify": "1.0.1", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -4529,8 +4530,8 @@ "resolved": "https://registry.npmjs.org/flowz-subscription/-/flowz-subscription-0.2.10.tgz", "integrity": "sha512-5NpJ1VV/9g2gFXljN8+4HmWXenHgAMKiBQ2bdfVyjd9FZRIW8YDNnqfNiGklJnQ3qU4vgRfC6z+RYXa31zU7BQ==", "requires": { - "request": "2.87.0", - "request-promise": "4.2.2" + "request": "^2.83.0", + "request-promise": "^4.2.2" } }, "flush-write-stream": { @@ -4539,8 +4540,8 @@ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" } }, "follow-redirects": { @@ -4548,7 +4549,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "requires": { - "debug": "3.1.0" + "debug": "^3.1.0" } }, "for-in": { @@ -4563,7 +4564,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -4576,9 +4577,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "requires": { - "asynckit": "0.4.0", + "asynckit": "^0.4.0", "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "mime-types": "^2.1.12" } }, "formatio": { @@ -4587,7 +4588,7 @@ "integrity": "sha1-87IWfZBoxGmKjVH092CjmlTYGOs=", "dev": true, "requires": { - "samsam": "1.3.0" + "samsam": "1.x" } }, "forwarded": { @@ -4601,7 +4602,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -4615,9 +4616,9 @@ "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==", "dev": true, "requires": { - "chalk": "1.1.3", - "error-stack-parser": "2.0.2", - "string-width": "2.1.1" + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" }, "dependencies": { "chalk": { @@ -4626,11 +4627,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -4639,7 +4640,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -4652,8 +4653,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs": { @@ -4667,9 +4668,9 @@ "integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "2.4.0", - "klaw": "1.3.1" + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0" } }, "fs-write-stream-atomic": { @@ -4678,10 +4679,10 @@ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, "fs.realpath": { @@ -4689,13 +4690,542 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.10.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.7", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, "ftp": { "version": "0.3.10", "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", "dev": true, "requires": { - "readable-stream": "1.1.14", + "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "dependencies": { @@ -4711,10 +5241,10 @@ "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -4743,7 +5273,7 @@ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "get-caller-file": { @@ -4764,12 +5294,12 @@ "integrity": "sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw==", "dev": true, "requires": { - "data-uri-to-buffer": "1.2.0", - "debug": "2.6.9", - "extend": "3.0.1", - "file-uri-to-path": "1.0.0", - "ftp": "0.3.10", - "readable-stream": "2.3.6" + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "3", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" }, "dependencies": { "debug": { @@ -4794,7 +5324,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -4802,12 +5332,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "glob-base": { @@ -4816,8 +5346,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -4826,7 +5356,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "globals": { @@ -4840,11 +5370,11 @@ "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, "requires": { - "array-union": "1.0.2", - "glob": "7.1.2", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -4879,8 +5409,8 @@ "integrity": "sha1-iuCWJX6r59acRb4rZ8RIEk/7UXw=", "dev": true, "requires": { - "duplexer": "0.1.1", - "pify": "3.0.0" + "duplexer": "^0.1.1", + "pify": "^3.0.0" } }, "hammerjs": { @@ -4894,10 +5424,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "async": { @@ -4912,7 +5442,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "uglify-js": { @@ -4922,9 +5452,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "source-map": { @@ -4948,8 +5478,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "requires": { - "ajv": "5.5.2", - "har-schema": "2.0.0" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has": { @@ -4958,7 +5488,7 @@ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -4966,7 +5496,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary": { @@ -5018,9 +5548,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -5037,8 +5567,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -5047,7 +5577,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5056,7 +5586,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5067,7 +5597,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5078,8 +5608,8 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash-sum": { @@ -5094,8 +5624,8 @@ "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hasha": { @@ -5104,8 +5634,8 @@ "integrity": "sha1-eNfL/B5tZjA/55g3NlmEUXsvbuE=", "dev": true, "requires": { - "is-stream": "1.1.0", - "pinkie-promise": "2.0.1" + "is-stream": "^1.0.1", + "pinkie-promise": "^2.0.0" } }, "hat": { @@ -5120,10 +5650,10 @@ "dev": true, "optional": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "he": { @@ -5138,9 +5668,9 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { @@ -5155,8 +5685,8 @@ "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" } }, "hosted-git-info": { @@ -5183,13 +5713,13 @@ "integrity": "sha512-zP5EfLSpiLRp0aAgud4CQXPQZm9kXwWjR/cF0PfdOj+jjWnOaCgeZcll4kYXSvIBPeUMmyaSc7mM4IDtA+kboA==", "dev": true, "requires": { - "camel-case": "3.0.0", - "clean-css": "4.1.11", - "commander": "2.15.1", - "he": "1.1.1", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.3.28" + "camel-case": "3.0.x", + "clean-css": "4.1.x", + "commander": "2.15.x", + "he": "1.1.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.3.x" } }, "html-webpack-plugin": { @@ -5198,12 +5728,12 @@ "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", "dev": true, "requires": { - "bluebird": "3.5.1", - "html-minifier": "3.5.16", - "loader-utils": "0.2.17", - "lodash": "4.17.10", - "pretty-error": "2.1.1", - "toposort": "1.0.7" + "bluebird": "^3.4.7", + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "toposort": "^1.0.0" }, "dependencies": { "loader-utils": { @@ -5212,10 +5742,10 @@ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" } } } @@ -5226,12 +5756,12 @@ "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.4.2", - "domutils": "1.5.1", - "entities": "1.1.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "domelementtype": "^1.3.0", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" } }, "http-errors": { @@ -5239,10 +5769,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.4.0" + "statuses": ">= 1.4.0 < 2" } }, "http-proxy": { @@ -5251,9 +5781,9 @@ "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "eventemitter3": "3.1.0", - "follow-redirects": "1.5.0", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-agent": { @@ -5262,9 +5792,9 @@ "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" + "agent-base": "2", + "debug": "2", + "extend": "3" }, "dependencies": { "debug": { @@ -5284,10 +5814,10 @@ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "dev": true, "requires": { - "http-proxy": "1.17.0", - "is-glob": "3.1.0", - "lodash": "4.17.10", - "micromatch": "2.3.11" + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" }, "dependencies": { "is-extglob": { @@ -5302,7 +5832,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5312,9 +5842,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -5329,9 +5859,9 @@ "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" + "agent-base": "2", + "debug": "2", + "extend": "3" }, "dependencies": { "debug": { @@ -5355,7 +5885,7 @@ "resolved": "https://registry.npmjs.org/hyperx/-/hyperx-2.4.0.tgz", "integrity": "sha512-43jbOQfVkm9U0oAyBZ4Vt2eB0hZWS5EyrOhR3ZbgUrcprutGu9s/C476OVFL3QU1iynKO5s9kZsWrZm19gJKjg==", "requires": { - "hyperscript-attribute-to-property": "1.0.1" + "hyperscript-attribute-to-property": "^1.0.0" } }, "iconv-lite": { @@ -5363,7 +5893,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "icss-replace-symbols": { @@ -5378,7 +5908,7 @@ "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", "dev": true, "requires": { - "postcss": "6.0.22" + "postcss": "^6.0.1" } }, "ids": { @@ -5386,7 +5916,7 @@ "resolved": "https://registry.npmjs.org/ids/-/ids-0.2.2.tgz", "integrity": "sha512-icIO8S7A7Hat9x/59VYjS5uwfBU1xRTDxeFC4t9wNceLxZFm2JbPhO4lC/xhFqFNVaxw2idwpLgUfkVQrjsxIw==", "requires": { - "hat": "0.0.3" + "hat": "^0.0.3" } }, "ieee754": { @@ -5418,7 +5948,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexes-of": { @@ -5437,8 +5967,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -5457,19 +5987,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz", "integrity": "sha1-4EqqnQW3o8ubD0B9BDdfBEcZA0c=", "requires": { - "ansi-escapes": "1.4.0", - "chalk": "1.1.3", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.10", + "ansi-escapes": "^1.1.0", + "chalk": "^1.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.1", + "figures": "^2.0.0", + "lodash": "^4.3.0", "mute-stream": "0.0.7", - "run-async": "2.3.0", - "rx": "4.1.0", - "string-width": "2.1.1", - "strip-ansi": "3.0.1", - "through": "2.3.8" + "run-async": "^2.2.0", + "rx": "^4.1.0", + "string-width": "^2.0.0", + "strip-ansi": "^3.0.0", + "through": "^2.3.6" }, "dependencies": { "chalk": { @@ -5477,19 +6007,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } } } @@ -5505,7 +6027,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -5537,7 +6059,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -5552,7 +6074,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -5566,7 +6088,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-data-descriptor": { @@ -5575,7 +6097,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-descriptor": { @@ -5584,9 +6106,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -5615,7 +6137,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -5636,7 +6158,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -5650,7 +6172,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-my-ip-valid": { @@ -5665,11 +6187,11 @@ "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", "dev": true, "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "is-my-ip-valid": "1.0.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" } }, "is-number": { @@ -5678,7 +6200,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-odd": { @@ -5687,7 +6209,7 @@ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -5710,7 +6232,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -5719,7 +6241,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-obj": { @@ -5734,7 +6256,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -5785,7 +6307,7 @@ "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", "dev": true, "requires": { - "html-comment-regex": "1.1.1" + "html-comment-regex": "^1.1.0" } }, "is-typedarray": { @@ -5848,20 +6370,20 @@ "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", "dev": true, "requires": { - "abbrev": "1.0.9", - "async": "1.5.2", - "escodegen": "1.8.1", - "esprima": "2.7.3", - "glob": "5.0.15", - "handlebars": "4.0.11", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "nopt": "3.0.6", - "once": "1.4.0", - "resolve": "1.1.7", - "supports-color": "3.2.3", - "which": "1.3.1", - "wordwrap": "1.0.0" + "abbrev": "1.0.x", + "async": "1.x", + "escodegen": "1.8.x", + "esprima": "2.7.x", + "glob": "^5.0.15", + "handlebars": "^4.0.1", + "js-yaml": "3.x", + "mkdirp": "0.5.x", + "nopt": "3.x", + "once": "1.x", + "resolve": "1.1.x", + "supports-color": "^3.1.0", + "which": "^1.1.1", + "wordwrap": "^1.0.0" }, "dependencies": { "abbrev": { @@ -5882,11 +6404,11 @@ "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, "requires": { - "esprima": "2.7.3", - "estraverse": "1.9.3", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.2.0" + "esprima": "^2.7.1", + "estraverse": "^1.9.1", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.2.0" } }, "esprima": { @@ -5907,11 +6429,11 @@ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-flag": { @@ -5933,7 +6455,7 @@ "dev": true, "optional": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "supports-color": { @@ -5942,7 +6464,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -5959,13 +6481,13 @@ "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.1" + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.0", + "semver": "^5.3.0" } }, "iview": { @@ -5973,14 +6495,14 @@ "resolved": "https://registry.npmjs.org/iview/-/iview-2.14.3.tgz", "integrity": "sha512-jK5CBNuNBKUZWooCVlipBIUkNnGeZHRtypeuMo9VhQmJ9cCXmuI6BalrtxBFkBCnuUXRdFD34/kSevF9Cc2kpg==", "requires": { - "async-validator": "1.8.2", - "deepmerge": "2.1.1", - "element-resize-detector": "1.1.14", - "js-calendar": "1.2.3", - "lodash.throttle": "4.1.1", - "popper.js": "1.14.4", - "tinycolor2": "1.4.1", - "v-click-outside-x": "3.2.2" + "async-validator": "^1.8.2", + "deepmerge": "^2.1.0", + "element-resize-detector": "^1.1.14", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.1", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^3.0.0" }, "dependencies": { "deepmerge": { @@ -6012,10 +6534,10 @@ "integrity": "sha512-9OhfAqGOrD7hoQBLJMTA+BKuKmoEtTJXzZ7WDF/9gvjtey1koVLuZqIY6c51aPDjbNdNtIXAkiWKVhziawE9Og==", "dev": true, "requires": { - "config-chain": "1.1.11", - "editorconfig": "0.13.3", - "mkdirp": "0.5.1", - "nopt": "3.0.6" + "config-chain": "~1.1.5", + "editorconfig": "^0.13.2", + "mkdirp": "~0.5.0", + "nopt": "~3.0.1" } }, "js-calendar": { @@ -6034,8 +6556,8 @@ "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "2.7.3" + "argparse": "^1.0.7", + "esprima": "^2.6.0" }, "dependencies": { "esprima": { @@ -6079,7 +6601,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -6104,7 +6626,7 @@ "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -6136,33 +6658,33 @@ "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", "dev": true, "requires": { - "bluebird": "3.5.1", - "body-parser": "1.18.2", - "chokidar": "1.7.0", - "colors": "1.1.2", - "combine-lists": "1.0.1", - "connect": "3.6.6", - "core-js": "2.5.7", - "di": "0.0.1", - "dom-serialize": "2.2.1", - "expand-braces": "0.1.2", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "http-proxy": "1.17.0", - "isbinaryfile": "3.0.2", - "lodash": "3.10.1", - "log4js": "0.6.38", - "mime": "1.6.0", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.2.0", - "range-parser": "1.2.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.2", + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "chokidar": "^1.4.1", + "colors": "^1.1.0", + "combine-lists": "^1.0.0", + "connect": "^3.6.0", + "core-js": "^2.2.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.0", + "expand-braces": "^0.1.1", + "glob": "^7.1.1", + "graceful-fs": "^4.1.2", + "http-proxy": "^1.13.0", + "isbinaryfile": "^3.0.0", + "lodash": "^3.8.0", + "log4js": "^0.6.31", + "mime": "^1.3.4", + "minimatch": "^3.0.2", + "optimist": "^0.6.1", + "qjobs": "^1.1.4", + "range-parser": "^1.2.0", + "rimraf": "^2.6.0", + "safe-buffer": "^5.0.1", "socket.io": "1.7.3", - "source-map": "0.5.7", + "source-map": "^0.5.3", "tmp": "0.0.31", - "useragent": "2.3.0" + "useragent": "^2.1.12" }, "dependencies": { "accepts": { @@ -6171,7 +6693,7 @@ "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", "dev": true, "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.11", "negotiator": "0.6.1" } }, @@ -6369,7 +6891,7 @@ "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.1" } }, "ultron": { @@ -6384,8 +6906,8 @@ "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", "dev": true, "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "options": ">=0.0.5", + "ultron": "1.0.x" } }, "xmlhttprequest-ssl": { @@ -6402,11 +6924,11 @@ "integrity": "sha512-eQawj4Cl3z/CjxslYy9ariU4uDh7cCNFZHNWXWRpl0pNeblY/4wHR7M7boTYXWrn9bY0z2pZmr11eKje/S/hIw==", "dev": true, "requires": { - "dateformat": "1.0.12", - "istanbul": "0.4.5", - "lodash": "4.17.10", - "minimatch": "3.0.4", - "source-map": "0.5.7" + "dateformat": "^1.0.6", + "istanbul": "^0.4.0", + "lodash": "^4.17.0", + "minimatch": "^3.0.0", + "source-map": "^0.5.1" } }, "karma-mocha": { @@ -6424,8 +6946,8 @@ "integrity": "sha1-0jyjSAG9qYY60xjju0vUBisTrNI=", "dev": true, "requires": { - "lodash": "4.17.10", - "phantomjs-prebuilt": "2.1.16" + "lodash": "^4.0.1", + "phantomjs-prebuilt": "^2.1.7" } }, "karma-phantomjs-shim": { @@ -6440,7 +6962,7 @@ "integrity": "sha512-Oatu8tdkfWaSveM809euI6KGcNJRdoXFilz9ozSf+vPwrM73kncu54nsfkLcMqR/iht3PXASAGK9La5oU2xDKQ==", "dev": true, "requires": { - "lolex": "1.6.0" + "lolex": "^1.6.0" } }, "karma-sourcemap-loader": { @@ -6449,7 +6971,7 @@ "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.2" } }, "karma-spec-reporter": { @@ -6458,7 +6980,7 @@ "integrity": "sha1-SDDccUihVcfXoYbmMjOaDYD63sM=", "dev": true, "requires": { - "colors": "1.1.2" + "colors": "^1.1.2" } }, "karma-webpack": { @@ -6467,12 +6989,12 @@ "integrity": "sha512-2cyII34jfrAabbI2+4Rk4j95Nazl98FvZQhgSiqKUDarT317rxfv/EdzZ60CyATN4PQxJdO5ucR5bOOXkEVrXw==", "dev": true, "requires": { - "async": "2.6.1", - "babel-runtime": "6.26.0", - "loader-utils": "1.1.0", - "lodash": "4.17.10", - "source-map": "0.5.7", - "webpack-dev-middleware": "1.12.2" + "async": "^2.0.0", + "babel-runtime": "^6.0.0", + "loader-utils": "^1.0.0", + "lodash": "^4.0.0", + "source-map": "^0.5.6", + "webpack-dev-middleware": "^1.12.0" } }, "kew": { @@ -6487,7 +7009,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "klaw": { @@ -6496,7 +7018,7 @@ "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.9" } }, "lazy-cache": { @@ -6511,7 +7033,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "less": { @@ -6520,14 +7042,14 @@ "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", "dev": true, "requires": { - "errno": "0.1.7", - "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", "request": "2.81.0", - "source-map": "0.5.7" + "source-map": "^0.5.3" }, "dependencies": { "ajv": { @@ -6537,8 +7059,8 @@ "dev": true, "optional": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "assert-plus": { @@ -6562,9 +7084,9 @@ "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "har-schema": { @@ -6581,8 +7103,8 @@ "dev": true, "optional": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^4.9.1", + "har-schema": "^1.0.5" } }, "http-signature": { @@ -6592,9 +7114,9 @@ "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.2" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "image-size": { @@ -6632,28 +7154,28 @@ "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "4.2.1", - "hawk": "3.1.3", - "http-signature": "1.1.1", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.1.2", - "stringstream": "0.0.6", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" } } } @@ -6664,9 +7186,9 @@ "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", "dev": true, "requires": { - "clone": "2.1.1", - "loader-utils": "1.1.0", - "pify": "3.0.0" + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" }, "dependencies": { "clone": { @@ -6683,8 +7205,8 @@ "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "dev": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "load-json-file": { @@ -6693,11 +7215,11 @@ "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "2.2.0", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "strip-bom": "2.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "pify": { @@ -6714,7 +7236,7 @@ "integrity": "sha1-VuC/CL2XCLJqdltoUJhAyN7J/bw=", "dev": true, "requires": { - "find-cache-dir": "0.1.1", + "find-cache-dir": "^0.1.1", "mkdirp": "0.5.1" }, "dependencies": { @@ -6724,9 +7246,9 @@ "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "dev": true, "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.1", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -6735,8 +7257,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -6745,7 +7267,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "pkg-dir": { @@ -6754,7 +7276,7 @@ "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "dev": true, "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } } } @@ -6770,9 +7292,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } }, "locate-path": { @@ -6780,8 +7302,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "location": { @@ -6790,9 +7312,9 @@ "integrity": "sha1-+gcdITZd12Zh4ica3oyhMU3G9YA=" }, "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==" + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" }, "lodash._arraycopy": { "version": "3.0.0", @@ -6812,8 +7334,8 @@ "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", "dev": true, "requires": { - "lodash._basecopy": "3.0.1", - "lodash.keys": "3.1.2" + "lodash._basecopy": "^3.0.0", + "lodash.keys": "^3.0.0" } }, "lodash._baseclone": { @@ -6822,12 +7344,12 @@ "integrity": "sha1-MDUZv2OT/n5C802LYw73eU41Qrc=", "dev": true, "requires": { - "lodash._arraycopy": "3.0.0", - "lodash._arrayeach": "3.0.0", - "lodash._baseassign": "3.2.0", - "lodash._basefor": "3.0.3", - "lodash.isarray": "3.0.4", - "lodash.keys": "3.1.2" + "lodash._arraycopy": "^3.0.0", + "lodash._arrayeach": "^3.0.0", + "lodash._baseassign": "^3.0.0", + "lodash._basefor": "^3.0.0", + "lodash.isarray": "^3.0.0", + "lodash.keys": "^3.0.0" } }, "lodash._basecopy": { @@ -6884,9 +7406,9 @@ "integrity": "sha1-hGiMc9MrWpDKJWFpY/GJJSqZcEM=", "dev": true, "requires": { - "lodash._baseclone": "3.3.0", - "lodash._bindcallback": "3.0.1", - "lodash._isiterateecall": "3.0.9" + "lodash._baseclone": "^3.0.0", + "lodash._bindcallback": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" } }, "lodash.create": { @@ -6895,9 +7417,9 @@ "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", "dev": true, "requires": { - "lodash._baseassign": "3.2.0", - "lodash._basecreate": "3.0.3", - "lodash._isiterateecall": "3.0.9" + "lodash._baseassign": "^3.0.0", + "lodash._basecreate": "^3.0.0", + "lodash._isiterateecall": "^3.0.0" } }, "lodash.defaultsdeep": { @@ -6906,12 +7428,12 @@ "integrity": "sha1-bBpYbmxWR7DmTi15gUG4g2FYvoo=", "dev": true, "requires": { - "lodash._baseclone": "4.5.7", - "lodash._stack": "4.1.3", - "lodash.isplainobject": "4.0.6", - "lodash.keysin": "4.2.0", - "lodash.mergewith": "4.6.1", - "lodash.rest": "4.0.5" + "lodash._baseclone": "^4.0.0", + "lodash._stack": "^4.0.0", + "lodash.isplainobject": "^4.0.0", + "lodash.keysin": "^4.0.0", + "lodash.mergewith": "^4.0.0", + "lodash.rest": "^4.0.0" }, "dependencies": { "lodash._baseclone": { @@ -6946,9 +7468,9 @@ "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", "dev": true, "requires": { - "lodash._getnative": "3.9.1", - "lodash.isarguments": "3.1.0", - "lodash.isarray": "3.0.4" + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" } }, "lodash.keysin": { @@ -6997,7 +7519,7 @@ "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { - "chalk": "2.4.1" + "chalk": "^2.0.1" } }, "log4js": { @@ -7006,8 +7528,8 @@ "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", "dev": true, "requires": { - "readable-stream": "1.0.34", - "semver": "4.3.6" + "readable-stream": "~1.0.2", + "semver": "~4.3.3" }, "dependencies": { "isarray": { @@ -7022,10 +7544,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "semver": { @@ -7059,7 +7581,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -7068,8 +7590,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lower-case": { @@ -7084,7 +7606,7 @@ "integrity": "sha1-cXibO39Tmb7IVl3aOKow0qCX7+4=", "dev": true, "requires": { - "pseudomap": "1.0.2" + "pseudomap": "^1.0.1" } }, "make-dir": { @@ -7092,7 +7614,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "map-cache": { @@ -7113,7 +7635,7 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, "math-expression-evaluator": { @@ -7134,8 +7656,8 @@ "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "media-typer": { @@ -7149,8 +7671,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "meow": { @@ -7159,16 +7681,16 @@ "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", "dev": true, "requires": { - "camelcase-keys": "2.1.0", - "decamelize": "1.2.0", - "loud-rejection": "1.6.0", - "map-obj": "1.0.1", - "minimist": "1.2.0", - "normalize-package-data": "2.4.0", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "redent": "1.0.0", - "trim-newlines": "1.0.0" + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" } }, "merge-descriptors": { @@ -7187,19 +7709,19 @@ "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { - "arr-diff": "2.0.0", - "array-unique": "0.2.1", - "braces": "1.8.5", - "expand-brackets": "0.1.5", - "extglob": "0.3.2", - "filename-regex": "2.0.1", - "is-extglob": "1.0.0", - "is-glob": "2.0.1", - "kind-of": "3.2.2", - "normalize-path": "2.1.1", - "object.omit": "2.0.1", - "parse-glob": "3.0.4", - "regex-cache": "0.4.4" + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" } }, "miller-rabin": { @@ -7208,8 +7730,8 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime-db": { @@ -7222,7 +7744,7 @@ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz", "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -7235,13 +7757,13 @@ "resolved": "https://registry.npmjs.org/min-dom/-/min-dom-0.2.0.tgz", "integrity": "sha1-fxo/ishcBa3uez9A4AxSgDB1zV0=", "requires": { - "component-classes": "1.2.6", - "component-closest": "0.1.4", - "component-delegate": "0.2.4", - "component-event": "0.1.4", - "component-matches-selector": "0.1.6", - "component-query": "0.0.3", - "domify": "1.4.0" + "component-classes": "^1.2.3", + "component-closest": "^0.1.4", + "component-delegate": "^0.2.3", + "component-event": "^0.1.4", + "component-matches-selector": "^0.1.5", + "component-query": "^0.0.3", + "domify": "^1.3.1" } }, "minimalistic-assert": { @@ -7261,7 +7783,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -7275,16 +7797,16 @@ "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.6.0", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.3" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } }, "mixin-deep": { @@ -7293,8 +7815,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -7303,7 +7825,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -7355,7 +7877,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "debug": { @@ -7373,12 +7895,12 @@ "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-flag": { @@ -7393,7 +7915,7 @@ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -7423,7 +7945,7 @@ "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", "dev": true, "requires": { - "graceful-readlink": "1.0.1" + "graceful-readlink": ">= 1.0.0" } }, "debug": { @@ -7447,12 +7969,12 @@ "integrity": "sha1-tCAqaQmbu00pKnwblbZoK2fr3JU=", "dev": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.2", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } }, "has-flag": { @@ -7473,7 +7995,7 @@ "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -7483,7 +8005,7 @@ "resolved": "https://registry.npmjs.org/moddle/-/moddle-1.2.1.tgz", "integrity": "sha512-YQtFv9MaZSto0LwVe/j0zSZuspvBY1XQtiRAgp9C9u5p9N3eJiSerqD7TprGs3ZoYIhpZpHvLazSm4PqqesJKA==", "requires": { - "lodash": "3.10.1" + "lodash": "^3.0.0" }, "dependencies": { "lodash": { @@ -7498,10 +8020,10 @@ "resolved": "https://registry.npmjs.org/moddle-xml/-/moddle-xml-1.1.1.tgz", "integrity": "sha512-a9GkVOVVhtE8F/49Mh8mnnex3gFIn685S3DIeUPvLkhmNlrzGIQ+cwufDkFdxjwJY66xiY3bV8SCZUgYeGyliQ==", "requires": { - "lodash": "3.10.1", - "moddle": "1.2.1", - "sax": "0.6.1", - "tiny-stack": "0.1.0" + "lodash": "^3.0.0", + "moddle": "^1.0.0", + "sax": "~0.6.0", + "tiny-stack": "^0.1.0" }, "dependencies": { "lodash": { @@ -7527,12 +8049,12 @@ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { @@ -7545,24 +8067,31 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" }, + "nan": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", + "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", + "dev": true, + "optional": true + }, "nanomatch": { "version": "1.2.9", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -7642,7 +8171,7 @@ "integrity": "sha1-nnlKdRS0/V9GYC02jlBRUjKrnpA=", "dev": true, "requires": { - "chai-nightwatch": "0.1.1", + "chai-nightwatch": "~0.1.x", "ejs": "2.5.7", "lodash.clone": "3.0.3", "lodash.defaultsdeep": "4.3.2", @@ -7660,7 +8189,7 @@ "integrity": "sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q=", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.0.0" } }, "q": { @@ -7677,7 +8206,7 @@ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" } }, "node-fetch": { @@ -7685,8 +8214,8 @@ "resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz", "integrity": "sha1-3CNO3WSJmC1Y6PDbT2lQKavNjAQ=", "requires": { - "encoding": "0.1.12", - "is-stream": "1.1.0" + "encoding": "^0.1.11", + "is-stream": "^1.0.1" } }, "node-libs-browser": { @@ -7695,28 +8224,28 @@ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "dev": true, "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.3.2", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.3", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.10", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.4", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" }, "dependencies": { @@ -7738,7 +8267,7 @@ "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" } }, "normalize-package-data": { @@ -7747,10 +8276,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.1", - "validate-npm-package-license": "3.0.3" + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" } }, "normalize-path": { @@ -7759,7 +8288,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -7774,10 +8303,10 @@ "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "dev": true, "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" } }, "nth-check": { @@ -7786,7 +8315,7 @@ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "dev": true, "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -7822,9 +8351,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -7833,7 +8362,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -7855,7 +8384,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -7872,8 +8401,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -7882,7 +8411,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -7906,7 +8435,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -7914,7 +8443,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "opencollective": { @@ -7935,11 +8464,11 @@ "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "opn": { @@ -7947,16 +8476,8 @@ "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", "requires": { - "object-assign": "4.1.1", - "pinkie-promise": "2.0.1" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "2.1.1" + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" } } } @@ -7973,7 +8494,7 @@ "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", "dev": true, "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optimist": { @@ -7982,8 +8503,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.10", - "wordwrap": "0.0.3" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" }, "dependencies": { "minimist": { @@ -8006,8 +8527,8 @@ "integrity": "sha1-UcrnEjDskaTBV2SXFeR0mODLRgs=", "dev": true, "requires": { - "underscore": "1.9.1", - "webpack-sources": "0.1.5" + "underscore": "^1.8.3", + "webpack-sources": "^0.1.0" }, "dependencies": { "source-list-map": { @@ -8022,8 +8543,8 @@ "integrity": "sha1-qh86vw8NdNtxEcQOUAuE+WZkB1A=", "dev": true, "requires": { - "source-list-map": "0.1.8", - "source-map": "0.5.7" + "source-list-map": "~0.1.7", + "source-map": "~0.5.3" } } } @@ -8034,12 +8555,12 @@ "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", "dev": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" } }, "options": { @@ -8054,10 +8575,10 @@ "integrity": "sha512-iMK1DOQxzzh2MBlVsU42G80mnrvUhqsMh74phHtDlrcTZPK0pH6o7l7DRshK+0YsxDyEuaOkziVdvM3T0QTzpw==", "dev": true, "requires": { - "chalk": "2.4.1", - "cli-cursor": "2.1.0", - "cli-spinners": "1.3.1", - "log-symbols": "2.2.0" + "chalk": "^2.1.0", + "cli-cursor": "^2.1.0", + "cli-spinners": "^1.0.1", + "log-symbols": "^2.1.0" } }, "os-browserify": { @@ -8078,7 +8599,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -8091,7 +8612,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -8099,7 +8620,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -8119,15 +8640,15 @@ "integrity": "sha512-QBELCWyLYPgE2Gj+4wUEiMscHrQ8nRPBzYItQNOHWavwBt25ohZHQC4qnd5IszdVVrFbLsQ+dPkm6eqdjJAmwQ==", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1", - "get-uri": "2.0.2", - "http-proxy-agent": "1.0.0", - "https-proxy-agent": "1.0.0", - "pac-resolver": "2.0.0", - "raw-body": "2.3.2", - "socks-proxy-agent": "2.1.1" + "agent-base": "2", + "debug": "2", + "extend": "3", + "get-uri": "2", + "http-proxy-agent": "1", + "https-proxy-agent": "1", + "pac-resolver": "~2.0.0", + "raw-body": "2", + "socks-proxy-agent": "2" }, "dependencies": { "debug": { @@ -8147,11 +8668,11 @@ "integrity": "sha1-mbiNLxk/ve78HJpSnB8yYKtSd80=", "dev": true, "requires": { - "co": "3.0.6", - "degenerator": "1.0.4", + "co": "~3.0.6", + "degenerator": "~1.0.2", "ip": "1.0.1", - "netmask": "1.0.6", - "thunkify": "2.1.2" + "netmask": "~1.0.4", + "thunkify": "~2.1.1" }, "dependencies": { "co": { @@ -8174,9 +8695,9 @@ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, "param-case": { @@ -8185,7 +8706,7 @@ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { - "no-case": "2.3.2" + "no-case": "^2.2.0" } }, "parse-asn1": { @@ -8194,11 +8715,11 @@ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "dev": true, "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.16" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" } }, "parse-glob": { @@ -8207,10 +8728,10 @@ "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { - "glob-base": "0.3.0", - "is-dotfile": "1.0.3", - "is-extglob": "1.0.0", - "is-glob": "2.0.1" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -8219,7 +8740,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parsejson": { @@ -8228,7 +8749,7 @@ "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", "dev": true, "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseqs": { @@ -8236,7 +8757,7 @@ "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -8244,7 +8765,7 @@ "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -8315,9 +8836,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -8334,11 +8855,11 @@ "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "dev": true, "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "pend": { @@ -8358,15 +8879,15 @@ "integrity": "sha1-79ISpKOWbTZHaE6ouniFSb4q7+8=", "dev": true, "requires": { - "es6-promise": "4.2.4", - "extract-zip": "1.6.7", - "fs-extra": "1.0.0", - "hasha": "2.2.0", - "kew": "0.7.0", - "progress": "1.1.8", - "request": "2.87.0", - "request-progress": "2.0.1", - "which": "1.3.1" + "es6-promise": "^4.0.3", + "extract-zip": "^1.6.5", + "fs-extra": "^1.0.0", + "hasha": "^2.2.0", + "kew": "^0.7.0", + "progress": "^1.1.8", + "request": "^2.81.0", + "request-progress": "^2.0.1", + "which": "^1.2.10" } }, "pify": { @@ -8384,7 +8905,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -8392,7 +8913,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "pluralize": { @@ -8418,9 +8939,9 @@ "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "2.4.1", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "source-map": { @@ -8435,7 +8956,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -8446,9 +8967,9 @@ "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-message-helpers": "2.0.0", - "reduce-css-calc": "1.3.0" + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" }, "dependencies": { "chalk": { @@ -8457,11 +8978,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -8470,7 +8991,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -8493,10 +9014,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -8505,7 +9026,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8516,9 +9037,9 @@ "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", "dev": true, "requires": { - "colormin": "1.1.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "chalk": { @@ -8527,11 +9048,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -8540,7 +9061,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -8563,10 +9084,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -8575,7 +9096,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8586,8 +9107,8 @@ "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" }, "dependencies": { "chalk": { @@ -8596,11 +9117,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -8609,7 +9130,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -8632,10 +9153,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -8644,7 +9165,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8655,7 +9176,7 @@ "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { "chalk": { @@ -8664,11 +9185,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -8677,7 +9198,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -8700,10 +9221,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -8712,7 +9233,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8723,7 +9244,7 @@ "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "chalk": { @@ -8732,11 +9253,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -8745,7 +9266,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -8768,10 +9289,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -8780,7 +9301,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8791,7 +9312,7 @@ "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.14" }, "dependencies": { "chalk": { @@ -8800,11 +9321,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -8813,7 +9334,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -8836,10 +9357,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -8848,7 +9369,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8859,7 +9380,7 @@ "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.16" }, "dependencies": { "chalk": { @@ -8868,11 +9389,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -8881,7 +9402,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -8904,10 +9425,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -8916,7 +9437,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8927,8 +9448,8 @@ "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", "dev": true, "requires": { - "postcss": "5.2.18", - "uniqs": "2.0.0" + "postcss": "^5.0.14", + "uniqs": "^2.0.0" }, "dependencies": { "chalk": { @@ -8937,11 +9458,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -8950,7 +9471,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -8973,10 +9494,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -8985,7 +9506,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -8996,7 +9517,7 @@ "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "chalk": { @@ -9005,11 +9526,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9018,7 +9539,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9041,10 +9562,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9053,7 +9574,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9064,10 +9585,10 @@ "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1", - "postcss-load-options": "1.2.0", - "postcss-load-plugins": "2.3.0" + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" } }, "postcss-load-options": { @@ -9076,8 +9597,8 @@ "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" } }, "postcss-load-plugins": { @@ -9086,8 +9607,8 @@ "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" } }, "postcss-merge-idents": { @@ -9096,9 +9617,9 @@ "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", "dev": true, "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" }, "dependencies": { "chalk": { @@ -9107,11 +9628,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9120,7 +9641,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9143,10 +9664,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9155,7 +9676,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9166,7 +9687,7 @@ "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "chalk": { @@ -9175,11 +9696,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9188,7 +9709,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9211,10 +9732,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9223,7 +9744,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9234,11 +9755,11 @@ "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", "dev": true, "requires": { - "browserslist": "1.7.7", - "caniuse-api": "1.6.1", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3", - "vendors": "1.0.2" + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" }, "dependencies": { "browserslist": { @@ -9247,8 +9768,8 @@ "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", "dev": true, "requires": { - "caniuse-db": "1.0.30000851", - "electron-to-chromium": "1.3.48" + "caniuse-db": "^1.0.30000639", + "electron-to-chromium": "^1.2.7" } }, "chalk": { @@ -9257,11 +9778,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9270,7 +9791,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9293,10 +9814,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9305,7 +9826,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9322,9 +9843,9 @@ "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", "dev": true, "requires": { - "object-assign": "4.1.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "chalk": { @@ -9333,11 +9854,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9346,7 +9867,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9369,10 +9890,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9381,7 +9902,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9392,8 +9913,8 @@ "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" }, "dependencies": { "chalk": { @@ -9402,11 +9923,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9415,7 +9936,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9438,10 +9959,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9450,7 +9971,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9461,10 +9982,10 @@ "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" }, "dependencies": { "chalk": { @@ -9473,11 +9994,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9486,7 +10007,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9509,10 +10030,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9521,7 +10042,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9532,10 +10053,10 @@ "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-selector-parser": "2.2.3" + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" }, "dependencies": { "chalk": { @@ -9544,11 +10065,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9557,7 +10078,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9580,10 +10101,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9592,7 +10113,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9603,7 +10124,7 @@ "integrity": "sha1-ZhQOzs447wa/DT41XWm/WdFB6oU=", "dev": true, "requires": { - "postcss": "6.0.22" + "postcss": "^6.0.1" } }, "postcss-modules-local-by-default": { @@ -9612,8 +10133,8 @@ "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.22" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" } }, "postcss-modules-scope": { @@ -9622,8 +10143,8 @@ "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", "dev": true, "requires": { - "css-selector-tokenizer": "0.7.0", - "postcss": "6.0.22" + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" } }, "postcss-modules-values": { @@ -9632,8 +10153,8 @@ "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", "dev": true, "requires": { - "icss-replace-symbols": "1.1.0", - "postcss": "6.0.22" + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" } }, "postcss-normalize-charset": { @@ -9642,7 +10163,7 @@ "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.5" }, "dependencies": { "chalk": { @@ -9651,11 +10172,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9664,7 +10185,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9687,10 +10208,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9699,7 +10220,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9710,10 +10231,10 @@ "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", "dev": true, "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "1.9.1", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" }, "dependencies": { "chalk": { @@ -9722,11 +10243,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9735,7 +10256,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9758,10 +10279,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9770,7 +10291,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9781,8 +10302,8 @@ "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" }, "dependencies": { "chalk": { @@ -9791,11 +10312,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9804,7 +10325,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9827,10 +10348,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9839,7 +10360,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9850,8 +10371,8 @@ "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", "dev": true, "requires": { - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" }, "dependencies": { "chalk": { @@ -9860,11 +10381,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9873,7 +10394,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9896,10 +10417,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9908,7 +10429,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9919,7 +10440,7 @@ "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", "dev": true, "requires": { - "postcss": "5.2.18" + "postcss": "^5.0.4" }, "dependencies": { "chalk": { @@ -9928,11 +10449,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -9941,7 +10462,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -9964,10 +10485,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -9976,7 +10497,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -9987,9 +10508,9 @@ "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", "dev": true, "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0" + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" }, "dependencies": { "chalk": { @@ -9998,11 +10519,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -10011,7 +10532,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -10034,10 +10555,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -10046,7 +10567,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10057,9 +10578,9 @@ "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", "dev": true, "requires": { - "flatten": "1.0.2", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-svgo": { @@ -10068,10 +10589,10 @@ "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", "dev": true, "requires": { - "is-svg": "2.1.0", - "postcss": "5.2.18", - "postcss-value-parser": "3.3.0", - "svgo": "0.7.2" + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" }, "dependencies": { "chalk": { @@ -10080,11 +10601,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -10093,7 +10614,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -10116,10 +10637,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -10128,7 +10649,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10139,9 +10660,9 @@ "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", "dev": true, "requires": { - "alphanum-sort": "1.0.2", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { "chalk": { @@ -10150,11 +10671,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -10163,7 +10684,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -10186,10 +10707,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -10198,7 +10719,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10215,9 +10736,9 @@ "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", "dev": true, "requires": { - "has": "1.0.3", - "postcss": "5.2.18", - "uniqs": "2.0.0" + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" }, "dependencies": { "chalk": { @@ -10226,11 +10747,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -10239,7 +10760,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -10262,10 +10783,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -10274,7 +10795,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -10303,8 +10824,8 @@ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "dev": true, "requires": { - "renderkid": "2.0.1", - "utila": "0.4.0" + "renderkid": "^2.0.1", + "utila": "~0.4" } }, "private": { @@ -10337,7 +10858,7 @@ "dev": true, "optional": true, "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-inflight": { @@ -10357,7 +10878,7 @@ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz", "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, @@ -10367,14 +10888,14 @@ "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1", - "http-proxy-agent": "1.0.0", - "https-proxy-agent": "1.0.0", - "lru-cache": "2.6.5", - "pac-proxy-agent": "1.1.0", - "socks-proxy-agent": "2.1.1" + "agent-base": "2", + "debug": "2", + "extend": "3", + "http-proxy-agent": "1", + "https-proxy-agent": "1", + "lru-cache": "~2.6.5", + "pac-proxy-agent": "1", + "socks-proxy-agent": "2" }, "dependencies": { "debug": { @@ -10417,11 +10938,11 @@ "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "pump": { @@ -10430,8 +10951,8 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { @@ -10440,9 +10961,9 @@ "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "3.6.0", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { @@ -10473,8 +10994,8 @@ "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "dev": true, "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "querystring": { @@ -10494,9 +11015,9 @@ "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "4.0.0", - "kind-of": "6.0.2", - "math-random": "1.0.1" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "dependencies": { "is-number": { @@ -10519,7 +11040,7 @@ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -10528,8 +11049,8 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -10561,7 +11082,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "iconv-lite": { @@ -10582,9 +11103,9 @@ "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", "dev": true, "requires": { - "load-json-file": "1.1.0", - "normalize-package-data": "2.4.0", - "path-type": "1.1.0" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" } }, "read-pkg-up": { @@ -10593,8 +11114,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -10603,8 +11124,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -10613,7 +11134,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } } } @@ -10624,13 +11145,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -10639,10 +11160,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "readline2": { @@ -10651,8 +11172,8 @@ "integrity": "sha1-QQWWCP/BVHV7cV2ZidGZ/783LjU=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", "mute-stream": "0.0.5" }, "dependencies": { @@ -10662,7 +11183,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "mute-stream": { @@ -10679,7 +11200,7 @@ "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", "dev": true, "requires": { - "resolve": "1.7.1" + "resolve": "^1.1.6" } }, "redent": { @@ -10688,8 +11209,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "reduce-css-calc": { @@ -10698,9 +11219,9 @@ "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", "dev": true, "requires": { - "balanced-match": "0.4.2", - "math-expression-evaluator": "1.2.17", - "reduce-function-call": "1.0.2" + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" }, "dependencies": { "balanced-match": { @@ -10717,7 +11238,7 @@ "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", "dev": true, "requires": { - "balanced-match": "0.4.2" + "balanced-match": "^0.4.2" }, "dependencies": { "balanced-match": { @@ -10743,9 +11264,9 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", "requires": { - "babel-runtime": "6.26.0", - "babel-types": "6.26.0", - "private": "0.1.8" + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" } }, "regex-cache": { @@ -10754,7 +11275,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -10763,8 +11284,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpu-core": { @@ -10772,9 +11293,9 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", "requires": { - "regenerate": "1.4.0", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "regjsgen": { @@ -10787,7 +11308,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" } }, "relateurl": { @@ -10808,11 +11329,11 @@ "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", "dev": true, "requires": { - "css-select": "1.2.0", - "dom-converter": "0.1.4", - "htmlparser2": "3.3.0", - "strip-ansi": "3.0.1", - "utila": "0.3.3" + "css-select": "^1.1.0", + "dom-converter": "~0.1", + "htmlparser2": "~3.3.0", + "strip-ansi": "^3.0.0", + "utila": "~0.3" }, "dependencies": { "domhandler": { @@ -10821,7 +11342,7 @@ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -10830,7 +11351,7 @@ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "htmlparser2": { @@ -10839,10 +11360,10 @@ "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", "dev": true, "requires": { - "domelementtype": "1.3.0", - "domhandler": "2.1.0", - "domutils": "1.1.6", - "readable-stream": "1.0.34" + "domelementtype": "1", + "domhandler": "2.1", + "domutils": "1.1", + "readable-stream": "1.0" } }, "isarray": { @@ -10857,10 +11378,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -10875,7 +11396,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "utila": { @@ -10904,7 +11425,7 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "request": { @@ -10912,26 +11433,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.3.2", - "har-validator": "5.0.3", - "http-signature": "1.2.0", - "is-typedarray": "1.0.0", - "isstream": "0.1.2", - "json-stringify-safe": "5.0.1", - "mime-types": "2.1.18", - "oauth-sign": "0.8.2", - "performance-now": "2.1.0", - "qs": "6.5.2", - "safe-buffer": "5.1.2", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.6.0", - "uuid": "3.1.0" + "aws-sign2": "~0.7.0", + "aws4": "^1.6.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.1", + "forever-agent": "~0.6.1", + "form-data": "~2.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" } }, "request-progress": { @@ -10940,7 +11461,7 @@ "integrity": "sha1-XTa7V5YcZzqlt4jbyBQf3yO0Tgg=", "dev": true, "requires": { - "throttleit": "1.0.0" + "throttleit": "^1.0.0" } }, "request-promise": { @@ -10948,10 +11469,10 @@ "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-4.2.2.tgz", "integrity": "sha1-0epG1lSm7k+O5qT+oQGMIpEZBLQ=", "requires": { - "bluebird": "3.5.1", + "bluebird": "^3.5.0", "request-promise-core": "1.1.1", - "stealthy-require": "1.1.1", - "tough-cookie": "2.3.4" + "stealthy-require": "^1.1.0", + "tough-cookie": ">=2.3.3" } }, "request-promise-core": { @@ -10959,7 +11480,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.1.tgz", "integrity": "sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY=", "requires": { - "lodash": "4.17.10" + "lodash": "^4.13.1" } }, "require-directory": { @@ -10986,8 +11507,8 @@ "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", "dev": true, "requires": { - "caller-path": "0.1.0", - "resolve-from": "1.0.1" + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" } }, "requires-port": { @@ -11002,7 +11523,7 @@ "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-from": { @@ -11022,8 +11543,8 @@ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -11038,7 +11559,7 @@ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -11047,7 +11568,7 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "ripemd160": { @@ -11056,8 +11577,8 @@ "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "rubberduck": { @@ -11070,7 +11591,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { @@ -11079,7 +11600,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rx": { @@ -11104,7 +11625,7 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -11129,7 +11650,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.5.2" + "ajv": "^5.0.0" } }, "scroll-tabs": { @@ -11137,10 +11658,10 @@ "resolved": "https://registry.npmjs.org/scroll-tabs/-/scroll-tabs-0.2.1.tgz", "integrity": "sha1-dw1GK0D2M7nK5u7jUh94XEnaj28=", "requires": { - "events": "1.1.1", - "inherits": "2.0.3", - "lodash": "3.10.1", - "min-dom": "0.2.0" + "events": "^1.1.0", + "inherits": "^2.0.1", + "lodash": "^3.10.1", + "min-dom": "^0.2.0" }, "dependencies": { "lodash": { @@ -11173,18 +11694,18 @@ "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "debug": { @@ -11213,9 +11734,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -11237,10 +11758,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -11249,7 +11770,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11271,8 +11792,8 @@ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shebang-command": { @@ -11281,7 +11802,7 @@ "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -11296,9 +11817,9 @@ "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", "dev": true, "requires": { - "glob": "7.1.2", - "interpret": "1.1.0", - "rechoir": "0.6.2" + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" } }, "shvl": { @@ -11323,14 +11844,14 @@ "integrity": "sha512-vFTrO9Wt0ECffDYIPSP/E5bBugt0UjcBQOfQUMh66xzkyPEnhl/vM2LRZi2ajuTdkH07sA6DzrM6KvdvGIH8xw==", "dev": true, "requires": { - "diff": "3.2.0", + "diff": "^3.1.0", "formatio": "1.2.0", - "lolex": "1.6.0", - "native-promise-only": "0.8.1", - "path-to-regexp": "1.7.0", - "samsam": "1.3.0", + "lolex": "^1.6.0", + "native-promise-only": "^0.8.1", + "path-to-regexp": "^1.7.0", + "samsam": "^1.1.3", "text-encoding": "0.6.4", - "type-detect": "4.0.8" + "type-detect": "^4.0.0" }, "dependencies": { "isarray": { @@ -11386,14 +11907,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.2", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -11411,7 +11932,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -11420,7 +11941,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11431,9 +11952,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -11442,7 +11963,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -11451,7 +11972,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -11460,7 +11981,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -11469,9 +11990,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -11494,7 +12015,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sntp": { @@ -11504,7 +12025,7 @@ "dev": true, "optional": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "socket.io": { @@ -11512,12 +12033,12 @@ "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", "requires": { - "debug": "3.1.0", - "engine.io": "3.2.0", - "has-binary2": "1.0.3", - "socket.io-adapter": "1.1.1", + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.1.1", - "socket.io-parser": "3.2.0" + "socket.io-parser": "~3.2.0" } }, "socket.io-adapter": { @@ -11534,15 +12055,15 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "3.1.0", - "engine.io-client": "3.2.1", - "has-binary2": "1.0.3", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.2.0", + "socket.io-parser": "~3.2.0", "to-array": "0.1.4" } }, @@ -11552,7 +12073,7 @@ "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", + "debug": "~3.1.0", "isarray": "2.0.1" }, "dependencies": { @@ -11569,8 +12090,8 @@ "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "dev": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" }, "dependencies": { "ip": { @@ -11587,9 +12108,9 @@ "integrity": "sha512-sFtmYqdUK5dAMh85H0LEVFUCO7OhJJe1/z2x/Z6mxp3s7/QPf1RkZmpZy+BpuU0bEjcV9npqKjq9Y3kwFUjnxw==", "dev": true, "requires": { - "agent-base": "2.1.1", - "extend": "3.0.1", - "socks": "1.1.10" + "agent-base": "2", + "extend": "3", + "socks": "~1.1.5" } }, "sort-keys": { @@ -11598,7 +12119,7 @@ "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "dev": true, "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-list-map": { @@ -11619,11 +12140,11 @@ "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.1", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -11632,7 +12153,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -11647,8 +12168,8 @@ "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -11663,8 +12184,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -11679,7 +12200,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "split.js": { @@ -11698,15 +12219,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "requires": { - "asn1": "0.2.3", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.1", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.1", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, "ssri": { @@ -11715,7 +12236,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.1" } }, "stackframe": { @@ -11730,8 +12251,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -11740,7 +12261,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -11761,8 +12282,8 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-each": { @@ -11771,8 +12292,8 @@ "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-http": { @@ -11781,11 +12302,11 @@ "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-shift": { @@ -11805,8 +12326,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -11819,7 +12340,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -11830,7 +12351,7 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "stringstream": { @@ -11840,13 +12361,21 @@ "dev": true, "optional": true }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-indent": { @@ -11855,7 +12384,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "supports-color": { @@ -11869,13 +12398,13 @@ "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", "dev": true, "requires": { - "coa": "1.0.4", - "colors": "1.1.2", - "csso": "2.3.2", - "js-yaml": "3.7.0", - "mkdirp": "0.5.1", - "sax": "1.2.1", - "whet.extend": "0.9.9" + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" } }, "table": { @@ -11884,12 +12413,12 @@ "integrity": "sha1-K7xULw/amGGnVdOUf+/Ys/UThV8=", "dev": true, "requires": { - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "chalk": "1.1.3", - "lodash": "4.17.10", + "ajv": "^4.7.0", + "ajv-keywords": "^1.0.0", + "chalk": "^1.1.1", + "lodash": "^4.0.0", "slice-ansi": "0.0.4", - "string-width": "2.1.1" + "string-width": "^2.0.0" }, "dependencies": { "ajv": { @@ -11898,8 +12427,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "chalk": { @@ -11908,11 +12437,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -11921,7 +12450,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -11940,11 +12469,11 @@ "integrity": "sha512-qpqlP/8Zl+sosLxBcVKl9vYy26T9NPalxSzzCP/OY6K7j938ui2oKgo+kRZYfxAeIpLqpbVnsHq1tyV70E4lWQ==", "dev": true, "requires": { - "arrify": "1.0.1", - "micromatch": "3.1.10", - "object-assign": "4.1.1", - "read-pkg-up": "1.0.1", - "require-main-filename": "1.0.1" + "arrify": "^1.0.1", + "micromatch": "^3.1.8", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" }, "dependencies": { "arr-diff": { @@ -11965,16 +12494,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -11983,7 +12512,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12003,13 +12532,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -12018,7 +12547,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -12027,7 +12556,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -12036,7 +12565,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12045,7 +12574,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12056,7 +12585,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12065,7 +12594,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12076,9 +12605,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -12095,14 +12624,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -12111,7 +12640,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -12120,7 +12649,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12131,10 +12660,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -12143,7 +12672,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12154,7 +12683,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -12163,7 +12692,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -12172,9 +12701,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-number": { @@ -12183,7 +12712,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12192,7 +12721,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12215,19 +12744,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -12261,8 +12790,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "thunkify": { @@ -12283,7 +12812,7 @@ "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "tiny-cookie": { @@ -12321,7 +12850,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -12346,7 +12875,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -12355,10 +12884,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -12367,8 +12896,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -12377,7 +12906,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } @@ -12393,7 +12922,7 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -12432,7 +12961,7 @@ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -12447,7 +12976,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-detect": { @@ -12462,7 +12991,7 @@ "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -12482,8 +13011,8 @@ "integrity": "sha512-68Rc/aA6cswiaQ5SrE979UJcXX+ADA1z33/ZsPd+fbAiVdjZ16OXdbtGO+rJUUBgK6qdf3SOPhQf3K/ybF5Miw==", "dev": true, "requires": { - "commander": "2.15.1", - "source-map": "0.6.1" + "commander": "~2.15.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -12518,10 +13047,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -12530,7 +13059,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -12539,10 +13068,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -12565,7 +13094,7 @@ "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "dev": true, "requires": { - "unique-slug": "2.0.0" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -12574,7 +13103,7 @@ "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "dev": true, "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "unpipe": { @@ -12588,8 +13117,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -12598,9 +13127,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -12645,7 +13174,7 @@ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" }, "dependencies": { "punycode": { @@ -12676,8 +13205,8 @@ "integrity": "sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "mime": "1.3.6" + "loader-utils": "^1.0.2", + "mime": "1.3.x" }, "dependencies": { "mime": { @@ -12694,7 +13223,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -12711,7 +13240,7 @@ "integrity": "sha1-nHC/2Babwdy/SGBODwS4tJzenp8=", "dev": true, "requires": { - "os-homedir": "1.0.2" + "os-homedir": "^1.0.0" } }, "useragent": { @@ -12720,8 +13249,8 @@ "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "dev": true, "requires": { - "lru-cache": "4.1.3", - "tmp": "0.0.33" + "lru-cache": "4.1.x", + "tmp": "0.0.x" }, "dependencies": { "lru-cache": { @@ -12730,8 +13259,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } } } @@ -12778,8 +13307,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vary": { @@ -12798,9 +13327,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vm-browserify": { @@ -12823,9 +13352,9 @@ "resolved": "https://registry.npmjs.org/vows/-/vows-0.8.2.tgz", "integrity": "sha1-aR95qybM3oC6cm3en+yOc9a88us=", "requires": { - "diff": "1.0.8", - "eyes": "0.1.8", - "glob": "7.1.2" + "diff": "~1.0.8", + "eyes": "~0.1.6", + "glob": "^7.1.2" }, "dependencies": { "diff": { @@ -12850,7 +13379,7 @@ "resolved": "https://registry.npmjs.org/vue-codemirror/-/vue-codemirror-3.1.8.tgz", "integrity": "sha512-F2NQqEt0M6WWcx4isB1jqS7g1xtG2rdSXPTiH4kK8zET2yNLPmKdLlgnWIw2RyHvcgL1y+T7lWPXNpjWThtidA==", "requires": { - "codemirror": "5.40.0" + "codemirror": "^5.30.0" } }, "vue-cookie": { @@ -12858,7 +13387,7 @@ "resolved": "https://registry.npmjs.org/vue-cookie/-/vue-cookie-1.1.4.tgz", "integrity": "sha1-uLRtESvan5Oi9HAXwu1SgtIGT9o=", "requires": { - "tiny-cookie": "1.0.1" + "tiny-cookie": "^1.0" } }, "vue-feathers": { @@ -12866,7 +13395,7 @@ "resolved": "https://registry.npmjs.org/vue-feathers/-/vue-feathers-0.1.0.tgz", "integrity": "sha1-3PfWXcaSrrFQxuzohnMD6nWguAU=", "requires": { - "feathers": "2.2.4" + "feathers": "*" } }, "vue-functional-data-merge": { @@ -12885,7 +13414,7 @@ "resolved": "https://registry.npmjs.org/vue-html/-/vue-html-0.3.0.tgz", "integrity": "sha1-8To+X/polr5DoO79W4HqB21RpTg=", "requires": { - "hyperx": "2.4.0" + "hyperx": "^2.0.5" } }, "vue-input-tag": { @@ -12893,11 +13422,11 @@ "resolved": "https://registry.npmjs.org/vue-input-tag/-/vue-input-tag-0.0.16.tgz", "integrity": "sha1-UoaFmuJBFRR7H9TukXQ2n2Xo90c=", "requires": { - "babel-plugin-transform-runtime": "6.23.0", - "babel-preset-es2015": "6.24.1", - "babel-preset-stage-2": "6.24.1", - "loader-utils": "1.1.0", - "vue": "2.5.17" + "babel-plugin-transform-runtime": "^6.0.0", + "babel-preset-es2015": "^6.0.0", + "babel-preset-stage-2": "^6.0.0", + "loader-utils": "^1.1.0", + "vue": "^2.1.8" } }, "vue-loader": { @@ -12906,19 +13435,19 @@ "integrity": "sha512-DD+sYaWQ1esYL/tEwJpoEGE/PFUu32fp7iOuMf4Sra3dgxqr4haTOkVam2VY0/5D4LG8eAcB94ruXKeQW2/ikw==", "dev": true, "requires": { - "consolidate": "0.14.5", - "hash-sum": "1.0.2", - "js-beautify": "1.7.5", - "loader-utils": "1.1.0", - "lru-cache": "4.1.3", - "postcss": "5.2.18", - "postcss-load-config": "1.2.0", - "postcss-selector-parser": "2.2.3", - "resolve": "1.7.1", - "source-map": "0.5.7", - "vue-hot-reload-api": "2.3.0", - "vue-style-loader": "3.1.2", - "vue-template-es2015-compiler": "1.6.0" + "consolidate": "^0.14.0", + "hash-sum": "^1.0.2", + "js-beautify": "^1.6.3", + "loader-utils": "^1.1.0", + "lru-cache": "^4.0.1", + "postcss": "^5.0.21", + "postcss-load-config": "^1.1.0", + "postcss-selector-parser": "^2.0.0", + "resolve": "^1.3.3", + "source-map": "^0.5.6", + "vue-hot-reload-api": "^2.1.0", + "vue-style-loader": "^3.0.0", + "vue-template-es2015-compiler": "^1.2.2" }, "dependencies": { "chalk": { @@ -12927,11 +13456,11 @@ "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "dev": true, "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -12940,7 +13469,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -12963,8 +13492,8 @@ "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "postcss": { @@ -12973,10 +13502,10 @@ "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", "dev": true, "requires": { - "chalk": "1.1.3", - "js-base64": "2.4.5", - "source-map": "0.5.7", - "supports-color": "3.2.3" + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" } }, "supports-color": { @@ -12985,7 +13514,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } @@ -12996,8 +13525,8 @@ "integrity": "sha1-KdnMK+AVffHAqH7DuWyW8zJ5Um4=", "dev": true, "requires": { - "particles.js": "2.0.0", - "vue": "2.5.17" + "particles.js": "^2.0.0", + "vue": "^2.2.6" } }, "vue-router": { @@ -13010,7 +13539,7 @@ "resolved": "https://registry.npmjs.org/vue-split-panel/-/vue-split-panel-1.0.4.tgz", "integrity": "sha512-OGR+2vIHGcXjpXMh7Pv6uG0t6ihL8o8wmHLeKfvArNPJs/Z0GYLplDcUdTg7Z/Et+IsYVlR13f83oiuRVLYOkw==", "requires": { - "split.js": "1.3.5" + "split.js": "^1.3.5" } }, "vue-style-loader": { @@ -13019,8 +13548,8 @@ "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", "dev": true, "requires": { - "hash-sum": "1.0.2", - "loader-utils": "1.1.0" + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" } }, "vue-template-compiler": { @@ -13029,8 +13558,8 @@ "integrity": "sha512-63uI4syCwtGR5IJvZM0LN5tVsahrelomHtCxvRkZPJ/Tf3ADm1U1wG6KWycK3qCfqR+ygM5vewUvmJ0REAYksg==", "dev": true, "requires": { - "de-indent": "1.0.2", - "he": "1.1.1" + "de-indent": "^1.0.2", + "he": "^1.1.0" } }, "vue-template-es2015-compiler": { @@ -13054,8 +13583,8 @@ "resolved": "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-2.5.4.tgz", "integrity": "sha512-XYJhKIwO+ZVlTaXyxKxnplrJ88Fnvk5aDw753bxzRw5/yMKLQ6lq9CDCBex2fwZaQcLibhtgJOxGCHjy9GLSlQ==", "requires": { - "deepmerge": "2.1.1", - "shvl": "1.3.1" + "deepmerge": "^2.1.0", + "shvl": "^1.3.0" }, "dependencies": { "deepmerge": { @@ -13076,9 +13605,9 @@ "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "chokidar": "2.0.3", - "graceful-fs": "4.1.11", - "neo-async": "2.5.1" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" }, "dependencies": { "anymatch": { @@ -13087,8 +13616,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "arr-diff": { @@ -13109,16 +13638,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -13127,7 +13656,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13138,17 +13667,18 @@ "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.1.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" } }, "debug": { @@ -13166,13 +13696,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -13181,7 +13711,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -13190,7 +13720,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -13199,7 +13729,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13208,7 +13738,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13219,7 +13749,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13228,7 +13758,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13239,9 +13769,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -13258,14 +13788,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -13274,7 +13804,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -13283,7 +13813,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13294,10 +13824,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -13306,7 +13836,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13317,8 +13847,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -13327,7 +13857,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -13338,7 +13868,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -13347,7 +13877,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -13356,9 +13886,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -13373,7 +13903,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -13382,7 +13912,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13391,7 +13921,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13414,19 +13944,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -13437,27 +13967,27 @@ "integrity": "sha512-MjAA0ZqO1ba7ZQJRnoCdbM56mmFpipOPUv/vQpwwfSI42p5PVDdoiuK2AL2FwFUVgT859Jr43bFZXRg/LNsqvg==", "dev": true, "requires": { - "acorn": "5.6.2", - "acorn-dynamic-import": "2.0.2", - "ajv": "4.11.8", - "ajv-keywords": "1.5.1", - "async": "2.6.1", - "enhanced-resolve": "3.4.1", - "interpret": "1.1.0", - "json-loader": "0.5.7", - "json5": "0.5.1", - "loader-runner": "2.3.0", - "loader-utils": "0.2.17", - "memory-fs": "0.4.1", - "mkdirp": "0.5.1", - "node-libs-browser": "2.1.0", - "source-map": "0.5.7", - "supports-color": "3.2.3", - "tapable": "0.2.8", - "uglify-js": "2.8.29", - "watchpack": "1.6.0", - "webpack-sources": "1.1.0", - "yargs": "6.6.0" + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^4.7.0", + "ajv-keywords": "^1.1.1", + "async": "^2.1.2", + "enhanced-resolve": "^3.3.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^0.2.16", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^3.1.0", + "tapable": "~0.2.5", + "uglify-js": "^2.8.27", + "watchpack": "^1.3.1", + "webpack-sources": "^1.0.1", + "yargs": "^6.0.0" }, "dependencies": { "ajv": { @@ -13466,8 +13996,8 @@ "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" } }, "camelcase": { @@ -13488,7 +14018,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "loader-utils": { @@ -13497,10 +14027,10 @@ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" } }, "string-width": { @@ -13509,9 +14039,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" }, "dependencies": { "strip-ansi": { @@ -13520,7 +14050,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -13531,7 +14061,7 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } }, "uglify-js": { @@ -13540,9 +14070,9 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -13551,9 +14081,9 @@ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -13571,19 +14101,19 @@ "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", "dev": true, "requires": { - "camelcase": "3.0.0", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "get-caller-file": "1.0.2", - "os-locale": "1.4.0", - "read-pkg-up": "1.0.1", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "1.0.2", - "which-module": "1.0.0", - "y18n": "3.2.1", - "yargs-parser": "4.2.1" + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^4.2.0" }, "dependencies": { "camelcase": { @@ -13598,9 +14128,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "strip-ansi": { @@ -13609,7 +14139,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -13624,18 +14154,18 @@ "integrity": "sha512-rwxyfecTAxoarCC9VlHlIpfQCmmJ/qWD5bpbjkof+7HrNhTNZIwZITxN6CdlYL2axGmwNUQ+tFgcSOiNXMf/sQ==", "dev": true, "requires": { - "acorn": "5.6.2", - "bfj-node4": "5.3.1", - "chalk": "2.4.1", - "commander": "2.15.1", - "ejs": "2.5.7", - "express": "4.16.3", - "filesize": "3.6.1", - "gzip-size": "4.1.0", - "lodash": "4.17.10", - "mkdirp": "0.5.1", - "opener": "1.4.3", - "ws": "4.1.0" + "acorn": "^5.3.0", + "bfj-node4": "^5.2.0", + "chalk": "^2.3.0", + "commander": "^2.13.0", + "ejs": "^2.5.7", + "express": "^4.16.2", + "filesize": "^3.5.11", + "gzip-size": "^4.1.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "opener": "^1.4.3", + "ws": "^4.0.0" }, "dependencies": { "ws": { @@ -13644,8 +14174,8 @@ "integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0" } } } @@ -13656,11 +14186,11 @@ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", "dev": true, "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" }, "dependencies": { "mime": { @@ -13672,26 +14202,15 @@ } }, "webpack-hot-middleware": { - "version": "2.23.1", - "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.23.1.tgz", - "integrity": "sha512-oUdCGDHONJrARtqxPSiON4db4dRWUsRiPwD7dYkglrTc3vF7LKa2jncwN0lIVkNwtoCh/yiHVTzz3Hbcux8ikA==", + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.24.0.tgz", + "integrity": "sha512-H6EMooeJMOEmEOx8OFllW3VRUdeA6CqQhdB1AlB+ReRFhISxypmDyt7YU0qEMCrPL06kYuXghnhDCi57wz6ORg==", "dev": true, "requires": { "ansi-html": "0.0.7", - "html-entities": "1.2.1", - "querystring": "0.2.0", - "strip-ansi": "3.0.1" - }, - "dependencies": { - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "2.1.1" - } - } + "html-entities": "^1.2.0", + "querystring": "^0.2.0", + "strip-ansi": "^3.0.0" } }, "webpack-merge": { @@ -13700,7 +14219,7 @@ "integrity": "sha512-TmSe1HZKeOPey3oy1Ov2iS3guIZjWvMT2BBJDzzT5jScHTjVC3mpjJofgueEzaEd6ibhxRDD6MIblDr8tzh8iQ==", "dev": true, "requires": { - "lodash": "4.17.10" + "lodash": "^4.17.5" } }, "webpack-sources": { @@ -13709,8 +14228,8 @@ "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", "dev": true, "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -13733,7 +14252,7 @@ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -13760,8 +14279,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -13770,7 +14289,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -13779,9 +14298,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "strip-ansi": { @@ -13790,7 +14309,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -13806,7 +14325,7 @@ "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", "dev": true, "requires": { - "mkdirp": "0.5.1" + "mkdirp": "^0.5.1" } }, "ws": { @@ -13814,9 +14333,9 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.2", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "wtf-8": { @@ -13830,7 +14349,7 @@ "resolved": "https://registry.npmjs.org/x2js/-/x2js-3.2.1.tgz", "integrity": "sha512-+6gQGmMKbAHmapedjI/r+cPQNdFqQ0OE1VJvv3A6GPVlEJAsFq9JyNVgfwgnceMiUtpt38VOUEtEF7S3SxZkMQ==", "requires": { - "xmldom": "0.1.27" + "xmldom": "^0.1.19" } }, "xml2js": { @@ -13838,8 +14357,8 @@ "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "requires": { - "sax": "1.2.1", - "xmlbuilder": "9.0.7" + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" } }, "xmlbuilder": { @@ -13888,9 +14407,9 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" }, "dependencies": { @@ -13909,7 +14428,7 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { @@ -13926,7 +14445,7 @@ "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=", "dev": true, "requires": { - "fd-slicer": "1.0.1" + "fd-slicer": "~1.0.1" } }, "yeast": { diff --git a/client/package.json b/client/package.json index 8f7b657..9c298dc 100644 --- a/client/package.json +++ b/client/package.json @@ -19,7 +19,7 @@ "@tinymce/tinymce-vue": "^1.0.9", "animate.css": "^3.7.0", "aws": "0.0.3-2", - "aws-sdk": "^2.309.0", + "aws-sdk": "^2.315.0", "axios": "^0.16.2", "babel-loader": "^7.1.1", "babel-plugin-syntax-jsx": "^6.18.0", @@ -41,7 +41,7 @@ "iview": "^2.9.2", "jquery": "^3.3.1", "location": "0.0.1", - "lodash": "^4.17.4", + "lodash": "^4.17.11", "moment": "^2.20.1", "navigator": "^1.0.1", "net": "^1.0.2", @@ -123,7 +123,7 @@ "webpack": "^2.7.0", "webpack-bundle-analyzer": "^2.10.0", "webpack-dev-middleware": "^1.12.2", - "webpack-hot-middleware": "^2.23.1", + "webpack-hot-middleware": "^2.24.0", "webpack-merge": "^4.1.4" }, "engines": { diff --git a/client/src/components/SchemaView.vue b/client/src/components/SchemaView.vue index 0463962..fa29c52 100644 --- a/client/src/components/SchemaView.vue +++ b/client/src/components/SchemaView.vue @@ -2,15 +2,17 @@
    -
    - +
    +
    -
    +
    -

    {{formTitle}}  ({{item.id}})

    +

    {{flowzData.name}} + +

    @@ -181,7 +183,7 @@ import flowzModel from '@/api/flowz' import schemalist from '@/pages/user/SchemaList' import schemaModel from '@/api/schema' -// import finstanceModal from '@/api/finstance' +import finstanceModal from '@/api/finstance' import dataQuerymodel from '@/api/dataquery' import saveemailTemplate from '@/api/emailtemplate' // const deepstream = require('deepstream.io-client-js') @@ -489,12 +491,13 @@ export default { // } else { // setTimeout(async ()=>{ // await this.handleAdd() + this.$Loading.finish() - setTimeout(() => { - $('html, body').animate({ - scrollTop: $('#top').offset().top - }, 500) - }, 0) + // setTimeout(() => { + // $('html, body').animate({ + // scrollTop: $('#top').offset().top + // }, 500) + // }, 0) // },4000) // } @@ -601,7 +604,96 @@ export default { return mdata }, - handleSubmit (name) { + createInstanceAndSave () { + this.$Loading.start() + let fheaders = null + fheaders = { + workflowid: 'workflow_' + this.flowzData.id, + stateid: this.$route.params.stateid + } + + let saveObj = { + fid: this.$route.params.id, + currentState: this.$route.params.stateid, + data: this.formSchemaInstance.data + } + finstanceModal.post(saveObj, null, fheaders) + .then(res => { + console.log('res: ', res) + this.$Loading.finish() + this.$Notice.success({title: 'Saved Successfully'}) + setTimeout(() => { + $('html, body').animate({ + scrollTop: $('#top').offset().top + }, 500) + }, 0) + this.init() + + // this.$Notice.success({title: 'Instance Generated'}) + // let item = { + // fid: this.flowzData.id, + // iid: res.data.id, + // currentStatus: res.data.currentStatus + // } + // let values = { + // id: this.flowzData.schema, + // // item: item, + // formName: this.flowzData.name, + // currentState: this.flowzData.currentStatus, + // flowzData: this.flowzData, + // formData: null + // } + + // this.validErr = [] + // this.email = false + // this.schemabinding = false + // this.nextTarget.value = '' + // this.nextTarget.options = [] + // this.isMultiple = false + // this.id = values.id + // if (values.id !== null) { + // this.item = values.item + // this.formTitle = values.formName + // this.flowData = values.flowzData + // let targetObj = values.flowzData.processList[values.currentState] + // if (Object.keys(targetObj).length > 0) { + // if (targetObj.target.length > 1) { + // let opts = [] + // for (let m of targetObj.target) { + // let label = values.flowzData.processList[m.id].name + // opts.push({ + // label: label, + // value: m.id + // }) + // } + // this.nextTarget.value = '' + // this.nextTarget.options = opts + // this.isMultiple = true + // } + // } + // // if (values.formData !== null, Object.keys(values.formData).length > 0) { + // // if (values.formData) { + // // this.fetch(this.currentSchema.id, values.formData) + // // } else { + // // this.fetch(this.currentSchema.id) + // // } + // } + + // this.item = item + // this.saveInstanceData() + // this.$Loading.finish() + }).catch(e => { + this.$Loading.error() + console.log('error', e) + if (e.response.data.message) { + this.$Notice.error({title: 'Error', desc: e.response.data.message.toString()}) + } else { + this.$Notice.error({title: 'Error', desc: 'Instace Not Generated'}) + } + }) + }, + + saveInstanceData () { let currentStateId = this.$route.params.stateid if (this.schema.hasOwnProperty('emailSchema')) { if (this.schema.emailSchema.action === true) { @@ -722,6 +814,14 @@ export default { } } }, + + handleSubmit (name) { + if (this.flowzData.first === this.$route.params.stateid) { + this.createInstanceAndSave() + } else { + this.saveInstanceData() + } + }, async saveDataMethod () { var obj = this.makeObj() // this.validFlag = true @@ -1060,7 +1160,14 @@ export default { this.email = false this.flowzData = await this.getFlowz() this.currentSchema = await this.getSchema() - this.populateTables() + console.log('Flowz Data: ', this.flowzData) + if (this.flowzData.first === this.$route.params.stateid) { + console.log('this.currentSchema.id: ', this.currentSchema.id) + await this.fetch(this.currentSchema.id) + this.dataLoading = false + } else { + this.populateTables() + } this.isFlowzLoaded = true }, diff --git a/client/src/components/emailtemplate.vue b/client/src/components/emailtemplate.vue index e1b098e..4740c0a 100644 --- a/client/src/components/emailtemplate.vue +++ b/client/src/components/emailtemplate.vue @@ -32,7 +32,7 @@ export default { templateName: '', GetHtmlOfEditor: '', gethtmlcontent: '

    Hello!

    ', - plugins: 'font print preview searchreplace fullscreen image link media template codesample table char6map hr pagebreak anchor toc insertdatetime lists textcolor imagetools mediaembed linkchecker contextmenu colorpicker', + plugins: 'print preview searchreplace fullscreen image link media template codesample table hr pagebreak anchor toc insertdatetime lists textcolor imagetools contextmenu colorpicker', toolbar1: 'formatselect | bold italic strikethrough forecolor backcolor | link | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat', settings: { templates: [ diff --git a/client/src/config/index.js b/client/src/config/index.js index 2fc7a83..961f175 100644 --- a/client/src/config/index.js +++ b/client/src/config/index.js @@ -1,8 +1,8 @@ var temp = { - // serverURI: 'http://localhost:3030', // 'http://172.16.230.86:3030' - // socketURI: 'http://localhost:4033', - serverURI: 'https://api.' + process.env.domainKey + '/eng', - socketURI: 'wss://ws.' + process.env.domainKey + ':4033', + serverURI: 'http://localhost:3030', // 'http://172.16.230.86:3030' + socketURI: 'http://localhost:4033', + // serverURI: 'https://api.' + process.env.domainKey + '/eng', + // socketURI: 'wss://ws.' + process.env.domainKey + ':4033', workerRegisterURL: 'http://localhost:4001', approvalRoleURI: 'https://api.' + process.env.domainKey + '/authldap/', fixedLayout: false, diff --git a/client/src/pages/user/SchemaList.vue b/client/src/pages/user/SchemaList.vue index 26d52e7..8595184 100644 --- a/client/src/pages/user/SchemaList.vue +++ b/client/src/pages/user/SchemaList.vue @@ -515,7 +515,7 @@ // } }, updated (data) { - console.log('updated called: ', data) + // console.log('updated called: ', data) // if (this.$store.state.role === 1) { // if (this.$route.params.stateid !== data.currentStatus) { // let inx = _.findIndex(this.data, (o) => { return o.id === data.id }) diff --git a/node_modules/particles.js/.npmignore b/node_modules/particles.js/.npmignore new file mode 100644 index 0000000..ef73019 --- /dev/null +++ b/node_modules/particles.js/.npmignore @@ -0,0 +1 @@ +particles.min.js \ No newline at end of file diff --git a/node_modules/particles.js/LICENSE.md b/node_modules/particles.js/LICENSE.md new file mode 100644 index 0000000..1f0aecc --- /dev/null +++ b/node_modules/particles.js/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014, Vincent Garreau + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/particles.js/README.md b/node_modules/particles.js/README.md new file mode 100644 index 0000000..e6dbb27 --- /dev/null +++ b/node_modules/particles.js/README.md @@ -0,0 +1,212 @@ +## particles.js + +### A lightweight JavaScript library for creating particles. + +------------------------------- + +Load particles.js and configure the particles: + +**index.html** +```html +
    + + +``` + +**app.js** +```javascript +/* particlesJS.load(@dom-id, @path-json, @callback (optional)); */ +particlesJS.load('particles-js', 'assets/particles.json', function() { + console.log('callback - particles-js config loaded'); +}); +``` + +**particles.json** +```javascript +{ + "particles": { + "number": { + "value": 80, + "density": { + "enable": true, + "value_area": 800 + } + }, + "color": { + "value": "#ffffff" + }, + "shape": { + "type": "circle", + "stroke": { + "width": 0, + "color": "#000000" + }, + "polygon": { + "nb_sides": 5 + }, + "image": { + "src": "img/github.svg", + "width": 100, + "height": 100 + } + }, + "opacity": { + "value": 0.5, + "random": false, + "anim": { + "enable": false, + "speed": 1, + "opacity_min": 0.1, + "sync": false + } + }, + "size": { + "value": 10, + "random": true, + "anim": { + "enable": false, + "speed": 80, + "size_min": 0.1, + "sync": false + } + }, + "line_linked": { + "enable": true, + "distance": 300, + "color": "#ffffff", + "opacity": 0.4, + "width": 2 + }, + "move": { + "enable": true, + "speed": 12, + "direction": "none", + "random": false, + "straight": false, + "out_mode": "out", + "bounce": false, + "attract": { + "enable": false, + "rotateX": 600, + "rotateY": 1200 + } + } + }, + "interactivity": { + "detect_on": "canvas", + "events": { + "onhover": { + "enable": false, + "mode": "repulse" + }, + "onclick": { + "enable": true, + "mode": "push" + }, + "resize": true + }, + "modes": { + "grab": { + "distance": 800, + "line_linked": { + "opacity": 1 + } + }, + "bubble": { + "distance": 800, + "size": 80, + "duration": 2, + "opacity": 8, + "speed": 3 + }, + "repulse": { + "distance": 400, + "duration": 0.4 + }, + "push": { + "particles_nb": 4 + }, + "remove": { + "particles_nb": 2 + } + } + }, + "retina_detect": true +} +``` + +------------------------------- + +### `Options` + +key | option type / notes | example +----|---------|------|------ +`particles.number.value` | number | `40` +`particles.number.density.enable` | boolean | `true` / `false` +`particles.number.density.value_area` | number | `800` +`particles.color.value` | HEX (string)
    RGB (object)
    HSL (object)
    array selection (HEX)
    random (string) | `"#b61924"`
    `{r:182, g:25, b:36}`
    `{h:356, s:76, l:41}`
    `["#b61924", "#333333", "999999"]`
    `"random"` +`particles.number.density.value_area` | number | `800` +`particles.shape.type` | string
    array selection | `"circle"`
    `"edge"`
    `"triangle"`
    `"polygon"`
    `"star"`
    `"image"`
    `["circle", "triangle", "image"]` +`particles.shape.stroke.width` | number | `2` +`particles.shape.stroke.color` | HEX (string) | `"#222222"` +`particles.shape.polygon.nb_slides` | number | `5` +`particles.shape.image.src` | path link
    svg / png / gif / jpg | `"assets/img/yop.svg"`
    `"http://mywebsite.com/assets/img/yop.png"` +`particles.shape.image.width` | number
    (for aspect ratio) | `100` +`particles.shape.image.height` | number
    (for aspect ratio) | `100` +`particles.opacity.value` | number (0 to 1) | `0.75` +`particles.opacity.random` | boolean | `true` / `false` +`particles.opacity.anim.enable` | boolean | `true` / `false` +`particles.opacity.anim.speed` | number | `3` +`particles.opacity.anim.opacity_min` | number (0 to 1) | `0.25` +`particles.opacity.anim.sync` | boolean | `true` / `false` +`particles.size.value` | number | `20` +`particles.size.random` | boolean | `true` / `false` +`particles.size.anim.enable` | boolean | `true` / `false` +`particles.size.anim.speed` | number | `3` +`particles.size.anim.size_min` | number | `0.25` +`particles.size.anim.sync` | boolean | `true` / `false` +`particles.line_linked.enable` | boolean | `true` / `false` +`particles.line_linked.distance` | number | `150` +`particles.line_linked.color` | HEX (string) | `#ffffff` +`particles.line_linked.opacity` | number (0 to 1) | `0.5` +`particles.line_linked.width` | number | `1.5` +`particles.move.enable` | boolean | `true` / `false` +`particles.move.speed` | number | `4` +`particles.move.direction` | string | `"none"`
    `"top"`
    `"top-right"`
    `"right"`
    `"bottom-right"`
    `"bottom"`
    `"bottom-left"`
    `"left"`
    `"top-left"` +`particles.move.random` | boolean | `true` / `false` +`particles.move.straight` | boolean | `true` / `false` +`particles.move.out_mode` | string
    (out of canvas) | `"out"`
    `"bounce"` +`particles.move.bounce` | boolean
    (between particles) | `true` / `false` +`particles.move.attract.enable` | boolean | `true` / `false` +`particles.move.attract.rotateX` | number | `3000` +`particles.move.attract.rotateY` | number | `1500` +`interactivity.detect_on` | string | `"canvas", "window"` +`interactivity.events.onhover.enable` | boolean | `true` / `false` +`interactivity.events.onhover.mode` | string
    array selection | `"grab"`
    `"bubble"`
    `"repulse"`
    `["grab", "bubble"]` +`interactivity.events.onclick.enable` | boolean | `true` / `false` +`interactivity.events.onclick.mode` | string
    array selection | `"push"`
    `"remove"`
    `"bubble"`
    `"repulse"`
    `["push", "repulse"]` +`interactivity.events.resize` | boolean | `true` / `false` +`interactivity.events.modes.grab.distance` | number | `100` +`interactivity.events.modes.grab.line_linked.opacity` | number (0 to 1) | `0.75` +`interactivity.events.modes.bubble.distance` | number | `100` +`interactivity.events.modes.bubble.size` | number | `40` +`interactivity.events.modes.bubble.duration` | number
    (second) | `0.4` +`interactivity.events.modes.repulse.distance` | number | `200` +`interactivity.events.modes.repulse.duration` | number
    (second) | `1.2` +`interactivity.events.modes.push.particles_nb` | number | `4` +`interactivity.events.modes.push.particles_nb` | number | `4` +`retina_detect` | boolean | `true` / `false` + +------------------------------- + +### `Packages install` + +##### ***Bower*** +``` +bower install particles.js --save +``` + +##### ***Rails Assets*** +``` +gem 'rails-assets-particles.js' +``` \ No newline at end of file diff --git a/node_modules/particles.js/bower.json b/node_modules/particles.js/bower.json new file mode 100644 index 0000000..657a84a --- /dev/null +++ b/node_modules/particles.js/bower.json @@ -0,0 +1,22 @@ +{ + "name": "particles.js", + "main": "particles.js", + "version": "2.0.0", + "homepage": "https://github.com/VincentGarreau/particles.js", + "authors": [ + "Vincent Garreau " + ], + "description": "A lightweight JavaScript library for creating particles.", + "keywords": [ + "particle", + "particles" + ], + "license": "MIT", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/node_modules/particles.js/demo/css/style.css b/node_modules/particles.js/demo/css/style.css new file mode 100755 index 0000000..00dd97f --- /dev/null +++ b/node_modules/particles.js/demo/css/style.css @@ -0,0 +1,96 @@ +/* ============================================================================= + HTML5 CSS Reset Minified - Eric Meyer + ========================================================================== */ + +html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent} +body{line-height:1} +article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block} +nav ul{list-style:none} +blockquote,q{quotes:none} +blockquote:before,blockquote:after,q:before,q:after{content:none} +a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent;text-decoration:none} +mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold} +del{text-decoration:line-through} +abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help} +table{border-collapse:collapse;border-spacing:0} +hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0} +input,select{vertical-align:middle} +li{list-style:none} + + +/* ============================================================================= + My CSS + ========================================================================== */ + +/* ---- base ---- */ + +html,body{ + width:100%; + height:100%; + background:#111; +} + +html{ + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body{ + font:normal 75% Arial, Helvetica, sans-serif; +} + +canvas{ + display:block; + vertical-align:bottom; +} + + +/* ---- stats.js ---- */ + +.count-particles{ + background: #000022; + position: absolute; + top: 48px; + left: 0; + width: 80px; + color: #13E8E9; + font-size: .8em; + text-align: left; + text-indent: 4px; + line-height: 14px; + padding-bottom: 2px; + font-family: Helvetica, Arial, sans-serif; + font-weight: bold; +} + +.js-count-particles{ + font-size: 1.1em; +} + +#stats, +.count-particles{ + -webkit-user-select: none; + margin-top: 5px; + margin-left: 5px; +} + +#stats{ + border-radius: 3px 3px 0 0; + overflow: hidden; +} + +.count-particles{ + border-radius: 0 0 3px 3px; +} + + +/* ---- particles.js container ---- */ + +#particles-js{ + width: 100%; + height: 100%; + background-color: #b61924; + background-image: url(''); + background-size: cover; + background-position: 50% 50%; + background-repeat: no-repeat; +} diff --git a/node_modules/particles.js/demo/index.html b/node_modules/particles.js/demo/index.html new file mode 100755 index 0000000..4de55ed --- /dev/null +++ b/node_modules/particles.js/demo/index.html @@ -0,0 +1,48 @@ + + + + + particles.js + + + + + + + + +
    + -- particles +
    + + +
    + + + + + + + + + + + \ No newline at end of file diff --git a/node_modules/particles.js/demo/js/app.js b/node_modules/particles.js/demo/js/app.js new file mode 100644 index 0000000..4b9052e --- /dev/null +++ b/node_modules/particles.js/demo/js/app.js @@ -0,0 +1,133 @@ +/* ----------------------------------------------- +/* How to use? : Check the GitHub README +/* ----------------------------------------------- */ + +/* To load a config file (particles.json) you need to host this demo (MAMP/WAMP/local)... */ +/* +particlesJS.load('particles-js', 'particles.json', function() { + console.log('particles.js loaded - callback'); +}); +*/ + +/* Otherwise just put the config content (json): */ + +particlesJS('particles-js', + + { + "particles": { + "number": { + "value": 80, + "density": { + "enable": true, + "value_area": 800 + } + }, + "color": { + "value": "#ffffff" + }, + "shape": { + "type": "circle", + "stroke": { + "width": 0, + "color": "#000000" + }, + "polygon": { + "nb_sides": 5 + }, + "image": { + "src": "img/github.svg", + "width": 100, + "height": 100 + } + }, + "opacity": { + "value": 0.5, + "random": false, + "anim": { + "enable": false, + "speed": 1, + "opacity_min": 0.1, + "sync": false + } + }, + "size": { + "value": 5, + "random": true, + "anim": { + "enable": false, + "speed": 40, + "size_min": 0.1, + "sync": false + } + }, + "line_linked": { + "enable": true, + "distance": 150, + "color": "#ffffff", + "opacity": 0.4, + "width": 1 + }, + "move": { + "enable": true, + "speed": 6, + "direction": "none", + "random": false, + "straight": false, + "out_mode": "out", + "attract": { + "enable": false, + "rotateX": 600, + "rotateY": 1200 + } + } + }, + "interactivity": { + "detect_on": "canvas", + "events": { + "onhover": { + "enable": true, + "mode": "repulse" + }, + "onclick": { + "enable": true, + "mode": "push" + }, + "resize": true + }, + "modes": { + "grab": { + "distance": 400, + "line_linked": { + "opacity": 1 + } + }, + "bubble": { + "distance": 400, + "size": 40, + "duration": 2, + "opacity": 8, + "speed": 3 + }, + "repulse": { + "distance": 200 + }, + "push": { + "particles_nb": 4 + }, + "remove": { + "particles_nb": 2 + } + } + }, + "retina_detect": true, + "config_demo": { + "hide_card": false, + "background_color": "#b61924", + "background_image": "", + "background_position": "50% 50%", + "background_repeat": "no-repeat", + "background_size": "cover" + } + } + +); \ No newline at end of file diff --git a/node_modules/particles.js/demo/js/lib/stats.js b/node_modules/particles.js/demo/js/lib/stats.js new file mode 100644 index 0000000..90b2a27 --- /dev/null +++ b/node_modules/particles.js/demo/js/lib/stats.js @@ -0,0 +1,149 @@ +/** + * @author mrdoob / http://mrdoob.com/ + */ + +var Stats = function () { + + var startTime = Date.now(), prevTime = startTime; + var ms = 0, msMin = Infinity, msMax = 0; + var fps = 0, fpsMin = Infinity, fpsMax = 0; + var frames = 0, mode = 0; + + var container = document.createElement( 'div' ); + container.id = 'stats'; + container.addEventListener( 'mousedown', function ( event ) { event.preventDefault(); setMode( ++ mode % 2 ) }, false ); + container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer'; + + var fpsDiv = document.createElement( 'div' ); + fpsDiv.id = 'fps'; + fpsDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#002'; + container.appendChild( fpsDiv ); + + var fpsText = document.createElement( 'div' ); + fpsText.id = 'fpsText'; + fpsText.style.cssText = 'color:#0ff;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px'; + fpsText.innerHTML = 'FPS'; + fpsDiv.appendChild( fpsText ); + + var fpsGraph = document.createElement( 'div' ); + fpsGraph.id = 'fpsGraph'; + fpsGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0ff'; + fpsDiv.appendChild( fpsGraph ); + + while ( fpsGraph.children.length < 74 ) { + + var bar = document.createElement( 'span' ); + bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#113'; + fpsGraph.appendChild( bar ); + + } + + var msDiv = document.createElement( 'div' ); + msDiv.id = 'ms'; + msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#020;display:none'; + container.appendChild( msDiv ); + + var msText = document.createElement( 'div' ); + msText.id = 'msText'; + msText.style.cssText = 'color:#0f0;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px'; + msText.innerHTML = 'MS'; + msDiv.appendChild( msText ); + + var msGraph = document.createElement( 'div' ); + msGraph.id = 'msGraph'; + msGraph.style.cssText = 'position:relative;width:74px;height:30px;background-color:#0f0'; + msDiv.appendChild( msGraph ); + + while ( msGraph.children.length < 74 ) { + + var bar = document.createElement( 'span' ); + bar.style.cssText = 'width:1px;height:30px;float:left;background-color:#131'; + msGraph.appendChild( bar ); + + } + + var setMode = function ( value ) { + + mode = value; + + switch ( mode ) { + + case 0: + fpsDiv.style.display = 'block'; + msDiv.style.display = 'none'; + break; + case 1: + fpsDiv.style.display = 'none'; + msDiv.style.display = 'block'; + break; + } + + }; + + var updateGraph = function ( dom, value ) { + + var child = dom.appendChild( dom.firstChild ); + child.style.height = value + 'px'; + + }; + + return { + + REVISION: 12, + + domElement: container, + + setMode: setMode, + + begin: function () { + + startTime = Date.now(); + + }, + + end: function () { + + var time = Date.now(); + + ms = time - startTime; + msMin = Math.min( msMin, ms ); + msMax = Math.max( msMax, ms ); + + msText.textContent = ms + ' MS (' + msMin + '-' + msMax + ')'; + updateGraph( msGraph, Math.min( 30, 30 - ( ms / 200 ) * 30 ) ); + + frames ++; + + if ( time > prevTime + 1000 ) { + + fps = Math.round( ( frames * 1000 ) / ( time - prevTime ) ); + fpsMin = Math.min( fpsMin, fps ); + fpsMax = Math.max( fpsMax, fps ); + + fpsText.textContent = fps + ' FPS (' + fpsMin + '-' + fpsMax + ')'; + updateGraph( fpsGraph, Math.min( 30, 30 - ( fps / 100 ) * 30 ) ); + + prevTime = time; + frames = 0; + + } + + return time; + + }, + + update: function () { + + startTime = this.end(); + + } + + } + +}; + +if ( typeof module === 'object' ) { + + module.exports = Stats; + +} \ No newline at end of file diff --git a/node_modules/particles.js/demo/particles.json b/node_modules/particles.js/demo/particles.json new file mode 100644 index 0000000..04c5fbc --- /dev/null +++ b/node_modules/particles.js/demo/particles.json @@ -0,0 +1,116 @@ +{ + "particles": { + "number": { + "value": 80, + "density": { + "enable": true, + "value_area": 800 + } + }, + "color": { + "value": "#ffffff" + }, + "shape": { + "type": "circle", + "stroke": { + "width": 0, + "color": "#000000" + }, + "polygon": { + "nb_sides": 5 + }, + "image": { + "src": "img/github.svg", + "width": 100, + "height": 100 + } + }, + "opacity": { + "value": 0.5, + "random": false, + "anim": { + "enable": false, + "speed": 1, + "opacity_min": 0.1, + "sync": false + } + }, + "size": { + "value": 5, + "random": true, + "anim": { + "enable": false, + "speed": 40, + "size_min": 0.1, + "sync": false + } + }, + "line_linked": { + "enable": true, + "distance": 150, + "color": "#ffffff", + "opacity": 0.4, + "width": 1 + }, + "move": { + "enable": true, + "speed": 6, + "direction": "none", + "random": false, + "straight": false, + "out_mode": "out", + "attract": { + "enable": false, + "rotateX": 600, + "rotateY": 1200 + } + } + }, + "interactivity": { + "detect_on": "canvas", + "events": { + "onhover": { + "enable": true, + "mode": "repulse" + }, + "onclick": { + "enable": true, + "mode": "push" + }, + "resize": true + }, + "modes": { + "grab": { + "distance": 400, + "line_linked": { + "opacity": 1 + } + }, + "bubble": { + "distance": 400, + "size": 40, + "duration": 2, + "opacity": 8, + "speed": 3 + }, + "repulse": { + "distance": 200 + }, + "push": { + "particles_nb": 4 + }, + "remove": { + "particles_nb": 2 + } + } + }, + "retina_detect": true, + "config_demo": { + "hide_card": false, + "background_color": "#b61924", + "background_image": "", + "background_position": "50% 50%", + "background_repeat": "no-repeat", + "background_size": "cover" + } +} \ No newline at end of file diff --git a/node_modules/particles.js/package.json b/node_modules/particles.js/package.json new file mode 100644 index 0000000..71a65e9 --- /dev/null +++ b/node_modules/particles.js/package.json @@ -0,0 +1,53 @@ +{ + "_args": [ + [ + "particles.js@2.0.0", + "/home/software/CodeMaster/workflow" + ] + ], + "_development": true, + "_from": "particles.js@2.0.0", + "_id": "particles.js@2.0.0", + "_inBundle": false, + "_integrity": "sha1-IThsQyjWx/lngKIB6W7t/AnHNvY=", + "_location": "/particles.js", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "particles.js@2.0.0", + "name": "particles.js", + "escapedName": "particles.js", + "rawSpec": "2.0.0", + "saveSpec": null, + "fetchSpec": "2.0.0" + }, + "_requiredBy": [], + "_resolved": "https://registry.npmjs.org/particles.js/-/particles.js-2.0.0.tgz", + "_spec": "2.0.0", + "_where": "/home/software/CodeMaster/workflow", + "author": { + "name": "Vincent Garreau" + }, + "bugs": { + "url": "https://github.com/VincentGarreau/particles.js/issues" + }, + "description": "A lightweight JavaScript library for creating particles", + "homepage": "https://github.com/VincentGarreau/particles.js", + "keywords": [ + "particles", + "particle", + "canvas" + ], + "license": "MIT", + "main": "particles.js", + "name": "particles.js", + "repository": { + "type": "git", + "url": "git+https://github.com/VincentGarreau/particles.js.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "2.0.0" +} diff --git a/node_modules/particles.js/particles.js b/node_modules/particles.js/particles.js new file mode 100644 index 0000000..325d834 --- /dev/null +++ b/node_modules/particles.js/particles.js @@ -0,0 +1,1541 @@ +/* ----------------------------------------------- +/* Author : Vincent Garreau - vincentgarreau.com +/* MIT license: http://opensource.org/licenses/MIT +/* Demo / Generator : vincentgarreau.com/particles.js +/* GitHub : github.com/VincentGarreau/particles.js +/* How to use? : Check the GitHub README +/* v2.0.0 +/* ----------------------------------------------- */ + +var pJS = function(tag_id, params){ + + var canvas_el = document.querySelector('#'+tag_id+' > .particles-js-canvas-el'); + + /* particles.js variables with default values */ + this.pJS = { + canvas: { + el: canvas_el, + w: canvas_el.offsetWidth, + h: canvas_el.offsetHeight + }, + particles: { + number: { + value: 400, + density: { + enable: true, + value_area: 800 + } + }, + color: { + value: '#fff' + }, + shape: { + type: 'circle', + stroke: { + width: 0, + color: '#ff0000' + }, + polygon: { + nb_sides: 5 + }, + image: { + src: '', + width: 100, + height: 100 + } + }, + opacity: { + value: 1, + random: false, + anim: { + enable: false, + speed: 2, + opacity_min: 0, + sync: false + } + }, + size: { + value: 20, + random: false, + anim: { + enable: false, + speed: 20, + size_min: 0, + sync: false + } + }, + line_linked: { + enable: true, + distance: 100, + color: '#fff', + opacity: 1, + width: 1 + }, + move: { + enable: true, + speed: 2, + direction: 'none', + random: false, + straight: false, + out_mode: 'out', + bounce: false, + attract: { + enable: false, + rotateX: 3000, + rotateY: 3000 + } + }, + array: [] + }, + interactivity: { + detect_on: 'canvas', + events: { + onhover: { + enable: true, + mode: 'grab' + }, + onclick: { + enable: true, + mode: 'push' + }, + resize: true + }, + modes: { + grab:{ + distance: 100, + line_linked:{ + opacity: 1 + } + }, + bubble:{ + distance: 200, + size: 80, + duration: 0.4 + }, + repulse:{ + distance: 200, + duration: 0.4 + }, + push:{ + particles_nb: 4 + }, + remove:{ + particles_nb: 2 + } + }, + mouse:{} + }, + retina_detect: false, + fn: { + interact: {}, + modes: {}, + vendors:{} + }, + tmp: {} + }; + + var pJS = this.pJS; + + /* params settings */ + if(params){ + Object.deepExtend(pJS, params); + } + + pJS.tmp.obj = { + size_value: pJS.particles.size.value, + size_anim_speed: pJS.particles.size.anim.speed, + move_speed: pJS.particles.move.speed, + line_linked_distance: pJS.particles.line_linked.distance, + line_linked_width: pJS.particles.line_linked.width, + mode_grab_distance: pJS.interactivity.modes.grab.distance, + mode_bubble_distance: pJS.interactivity.modes.bubble.distance, + mode_bubble_size: pJS.interactivity.modes.bubble.size, + mode_repulse_distance: pJS.interactivity.modes.repulse.distance + }; + + + pJS.fn.retinaInit = function(){ + + if(pJS.retina_detect && window.devicePixelRatio > 1){ + pJS.canvas.pxratio = window.devicePixelRatio; + pJS.tmp.retina = true; + } + else{ + pJS.canvas.pxratio = 1; + pJS.tmp.retina = false; + } + + pJS.canvas.w = pJS.canvas.el.offsetWidth * pJS.canvas.pxratio; + pJS.canvas.h = pJS.canvas.el.offsetHeight * pJS.canvas.pxratio; + + pJS.particles.size.value = pJS.tmp.obj.size_value * pJS.canvas.pxratio; + pJS.particles.size.anim.speed = pJS.tmp.obj.size_anim_speed * pJS.canvas.pxratio; + pJS.particles.move.speed = pJS.tmp.obj.move_speed * pJS.canvas.pxratio; + pJS.particles.line_linked.distance = pJS.tmp.obj.line_linked_distance * pJS.canvas.pxratio; + pJS.interactivity.modes.grab.distance = pJS.tmp.obj.mode_grab_distance * pJS.canvas.pxratio; + pJS.interactivity.modes.bubble.distance = pJS.tmp.obj.mode_bubble_distance * pJS.canvas.pxratio; + pJS.particles.line_linked.width = pJS.tmp.obj.line_linked_width * pJS.canvas.pxratio; + pJS.interactivity.modes.bubble.size = pJS.tmp.obj.mode_bubble_size * pJS.canvas.pxratio; + pJS.interactivity.modes.repulse.distance = pJS.tmp.obj.mode_repulse_distance * pJS.canvas.pxratio; + + }; + + + + /* ---------- pJS functions - canvas ------------ */ + + pJS.fn.canvasInit = function(){ + pJS.canvas.ctx = pJS.canvas.el.getContext('2d'); + }; + + pJS.fn.canvasSize = function(){ + + pJS.canvas.el.width = pJS.canvas.w; + pJS.canvas.el.height = pJS.canvas.h; + + if(pJS && pJS.interactivity.events.resize){ + + window.addEventListener('resize', function(){ + + pJS.canvas.w = pJS.canvas.el.offsetWidth; + pJS.canvas.h = pJS.canvas.el.offsetHeight; + + /* resize canvas */ + if(pJS.tmp.retina){ + pJS.canvas.w *= pJS.canvas.pxratio; + pJS.canvas.h *= pJS.canvas.pxratio; + } + + pJS.canvas.el.width = pJS.canvas.w; + pJS.canvas.el.height = pJS.canvas.h; + + /* repaint canvas on anim disabled */ + if(!pJS.particles.move.enable){ + pJS.fn.particlesEmpty(); + pJS.fn.particlesCreate(); + pJS.fn.particlesDraw(); + pJS.fn.vendors.densityAutoParticles(); + } + + /* density particles enabled */ + pJS.fn.vendors.densityAutoParticles(); + + }); + + } + + }; + + + pJS.fn.canvasPaint = function(){ + pJS.canvas.ctx.fillRect(0, 0, pJS.canvas.w, pJS.canvas.h); + }; + + pJS.fn.canvasClear = function(){ + pJS.canvas.ctx.clearRect(0, 0, pJS.canvas.w, pJS.canvas.h); + }; + + + /* --------- pJS functions - particles ----------- */ + + pJS.fn.particle = function(color, opacity, position){ + + /* size */ + this.radius = (pJS.particles.size.random ? Math.random() : 1) * pJS.particles.size.value; + if(pJS.particles.size.anim.enable){ + this.size_status = false; + this.vs = pJS.particles.size.anim.speed / 100; + if(!pJS.particles.size.anim.sync){ + this.vs = this.vs * Math.random(); + } + } + + /* position */ + this.x = position ? position.x : Math.random() * pJS.canvas.w; + this.y = position ? position.y : Math.random() * pJS.canvas.h; + + /* check position - into the canvas */ + if(this.x > pJS.canvas.w - this.radius*2) this.x = this.x - this.radius; + else if(this.x < this.radius*2) this.x = this.x + this.radius; + if(this.y > pJS.canvas.h - this.radius*2) this.y = this.y - this.radius; + else if(this.y < this.radius*2) this.y = this.y + this.radius; + + /* check position - avoid overlap */ + if(pJS.particles.move.bounce){ + pJS.fn.vendors.checkOverlap(this, position); + } + + /* color */ + this.color = {}; + if(typeof(color.value) == 'object'){ + + if(color.value instanceof Array){ + var color_selected = color.value[Math.floor(Math.random() * pJS.particles.color.value.length)]; + this.color.rgb = hexToRgb(color_selected); + }else{ + if(color.value.r != undefined && color.value.g != undefined && color.value.b != undefined){ + this.color.rgb = { + r: color.value.r, + g: color.value.g, + b: color.value.b + } + } + if(color.value.h != undefined && color.value.s != undefined && color.value.l != undefined){ + this.color.hsl = { + h: color.value.h, + s: color.value.s, + l: color.value.l + } + } + } + + } + else if(color.value == 'random'){ + this.color.rgb = { + r: (Math.floor(Math.random() * (255 - 0 + 1)) + 0), + g: (Math.floor(Math.random() * (255 - 0 + 1)) + 0), + b: (Math.floor(Math.random() * (255 - 0 + 1)) + 0) + } + } + else if(typeof(color.value) == 'string'){ + this.color = color; + this.color.rgb = hexToRgb(this.color.value); + } + + /* opacity */ + this.opacity = (pJS.particles.opacity.random ? Math.random() : 1) * pJS.particles.opacity.value; + if(pJS.particles.opacity.anim.enable){ + this.opacity_status = false; + this.vo = pJS.particles.opacity.anim.speed / 100; + if(!pJS.particles.opacity.anim.sync){ + this.vo = this.vo * Math.random(); + } + } + + /* animation - velocity for speed */ + var velbase = {} + switch(pJS.particles.move.direction){ + case 'top': + velbase = { x:0, y:-1 }; + break; + case 'top-right': + velbase = { x:0.5, y:-0.5 }; + break; + case 'right': + velbase = { x:1, y:-0 }; + break; + case 'bottom-right': + velbase = { x:0.5, y:0.5 }; + break; + case 'bottom': + velbase = { x:0, y:1 }; + break; + case 'bottom-left': + velbase = { x:-0.5, y:1 }; + break; + case 'left': + velbase = { x:-1, y:0 }; + break; + case 'top-left': + velbase = { x:-0.5, y:-0.5 }; + break; + default: + velbase = { x:0, y:0 }; + break; + } + + if(pJS.particles.move.straight){ + this.vx = velbase.x; + this.vy = velbase.y; + if(pJS.particles.move.random){ + this.vx = this.vx * (Math.random()); + this.vy = this.vy * (Math.random()); + } + }else{ + this.vx = velbase.x + Math.random()-0.5; + this.vy = velbase.y + Math.random()-0.5; + } + + // var theta = 2.0 * Math.PI * Math.random(); + // this.vx = Math.cos(theta); + // this.vy = Math.sin(theta); + + this.vx_i = this.vx; + this.vy_i = this.vy; + + + + /* if shape is image */ + + var shape_type = pJS.particles.shape.type; + if(typeof(shape_type) == 'object'){ + if(shape_type instanceof Array){ + var shape_selected = shape_type[Math.floor(Math.random() * shape_type.length)]; + this.shape = shape_selected; + } + }else{ + this.shape = shape_type; + } + + if(this.shape == 'image'){ + var sh = pJS.particles.shape; + this.img = { + src: sh.image.src, + ratio: sh.image.width / sh.image.height + } + if(!this.img.ratio) this.img.ratio = 1; + if(pJS.tmp.img_type == 'svg' && pJS.tmp.source_svg != undefined){ + pJS.fn.vendors.createSvgImg(this); + if(pJS.tmp.pushing){ + this.img.loaded = false; + } + } + } + + + + }; + + + pJS.fn.particle.prototype.draw = function() { + + var p = this; + + if(p.radius_bubble != undefined){ + var radius = p.radius_bubble; + }else{ + var radius = p.radius; + } + + if(p.opacity_bubble != undefined){ + var opacity = p.opacity_bubble; + }else{ + var opacity = p.opacity; + } + + if(p.color.rgb){ + var color_value = 'rgba('+p.color.rgb.r+','+p.color.rgb.g+','+p.color.rgb.b+','+opacity+')'; + }else{ + var color_value = 'hsla('+p.color.hsl.h+','+p.color.hsl.s+'%,'+p.color.hsl.l+'%,'+opacity+')'; + } + + pJS.canvas.ctx.fillStyle = color_value; + pJS.canvas.ctx.beginPath(); + + switch(p.shape){ + + case 'circle': + pJS.canvas.ctx.arc(p.x, p.y, radius, 0, Math.PI * 2, false); + break; + + case 'edge': + pJS.canvas.ctx.rect(p.x-radius, p.y-radius, radius*2, radius*2); + break; + + case 'triangle': + pJS.fn.vendors.drawShape(pJS.canvas.ctx, p.x-radius, p.y+radius / 1.66, radius*2, 3, 2); + break; + + case 'polygon': + pJS.fn.vendors.drawShape( + pJS.canvas.ctx, + p.x - radius / (pJS.particles.shape.polygon.nb_sides/3.5), // startX + p.y - radius / (2.66/3.5), // startY + radius*2.66 / (pJS.particles.shape.polygon.nb_sides/3), // sideLength + pJS.particles.shape.polygon.nb_sides, // sideCountNumerator + 1 // sideCountDenominator + ); + break; + + case 'star': + pJS.fn.vendors.drawShape( + pJS.canvas.ctx, + p.x - radius*2 / (pJS.particles.shape.polygon.nb_sides/4), // startX + p.y - radius / (2*2.66/3.5), // startY + radius*2*2.66 / (pJS.particles.shape.polygon.nb_sides/3), // sideLength + pJS.particles.shape.polygon.nb_sides, // sideCountNumerator + 2 // sideCountDenominator + ); + break; + + case 'image': + + function draw(){ + pJS.canvas.ctx.drawImage( + img_obj, + p.x-radius, + p.y-radius, + radius*2, + radius*2 / p.img.ratio + ); + } + + if(pJS.tmp.img_type == 'svg'){ + var img_obj = p.img.obj; + }else{ + var img_obj = pJS.tmp.img_obj; + } + + if(img_obj){ + draw(); + } + + break; + + } + + pJS.canvas.ctx.closePath(); + + if(pJS.particles.shape.stroke.width > 0){ + pJS.canvas.ctx.strokeStyle = pJS.particles.shape.stroke.color; + pJS.canvas.ctx.lineWidth = pJS.particles.shape.stroke.width; + pJS.canvas.ctx.stroke(); + } + + pJS.canvas.ctx.fill(); + + }; + + + pJS.fn.particlesCreate = function(){ + for(var i = 0; i < pJS.particles.number.value; i++) { + pJS.particles.array.push(new pJS.fn.particle(pJS.particles.color, pJS.particles.opacity.value)); + } + }; + + pJS.fn.particlesUpdate = function(){ + + for(var i = 0; i < pJS.particles.array.length; i++){ + + /* the particle */ + var p = pJS.particles.array[i]; + + // var d = ( dx = pJS.interactivity.mouse.click_pos_x - p.x ) * dx + ( dy = pJS.interactivity.mouse.click_pos_y - p.y ) * dy; + // var f = -BANG_SIZE / d; + // if ( d < BANG_SIZE ) { + // var t = Math.atan2( dy, dx ); + // p.vx = f * Math.cos(t); + // p.vy = f * Math.sin(t); + // } + + /* move the particle */ + if(pJS.particles.move.enable){ + var ms = pJS.particles.move.speed/2; + p.x += p.vx * ms; + p.y += p.vy * ms; + } + + /* change opacity status */ + if(pJS.particles.opacity.anim.enable) { + if(p.opacity_status == true) { + if(p.opacity >= pJS.particles.opacity.value) p.opacity_status = false; + p.opacity += p.vo; + }else { + if(p.opacity <= pJS.particles.opacity.anim.opacity_min) p.opacity_status = true; + p.opacity -= p.vo; + } + if(p.opacity < 0) p.opacity = 0; + } + + /* change size */ + if(pJS.particles.size.anim.enable){ + if(p.size_status == true){ + if(p.radius >= pJS.particles.size.value) p.size_status = false; + p.radius += p.vs; + }else{ + if(p.radius <= pJS.particles.size.anim.size_min) p.size_status = true; + p.radius -= p.vs; + } + if(p.radius < 0) p.radius = 0; + } + + /* change particle position if it is out of canvas */ + if(pJS.particles.move.out_mode == 'bounce'){ + var new_pos = { + x_left: p.radius, + x_right: pJS.canvas.w, + y_top: p.radius, + y_bottom: pJS.canvas.h + } + }else{ + var new_pos = { + x_left: -p.radius, + x_right: pJS.canvas.w + p.radius, + y_top: -p.radius, + y_bottom: pJS.canvas.h + p.radius + } + } + + if(p.x - p.radius > pJS.canvas.w){ + p.x = new_pos.x_left; + p.y = Math.random() * pJS.canvas.h; + } + else if(p.x + p.radius < 0){ + p.x = new_pos.x_right; + p.y = Math.random() * pJS.canvas.h; + } + if(p.y - p.radius > pJS.canvas.h){ + p.y = new_pos.y_top; + p.x = Math.random() * pJS.canvas.w; + } + else if(p.y + p.radius < 0){ + p.y = new_pos.y_bottom; + p.x = Math.random() * pJS.canvas.w; + } + + /* out of canvas modes */ + switch(pJS.particles.move.out_mode){ + case 'bounce': + if (p.x + p.radius > pJS.canvas.w) p.vx = -p.vx; + else if (p.x - p.radius < 0) p.vx = -p.vx; + if (p.y + p.radius > pJS.canvas.h) p.vy = -p.vy; + else if (p.y - p.radius < 0) p.vy = -p.vy; + break; + } + + /* events */ + if(isInArray('grab', pJS.interactivity.events.onhover.mode)){ + pJS.fn.modes.grabParticle(p); + } + + if(isInArray('bubble', pJS.interactivity.events.onhover.mode) || isInArray('bubble', pJS.interactivity.events.onclick.mode)){ + pJS.fn.modes.bubbleParticle(p); + } + + if(isInArray('repulse', pJS.interactivity.events.onhover.mode) || isInArray('repulse', pJS.interactivity.events.onclick.mode)){ + pJS.fn.modes.repulseParticle(p); + } + + /* interaction auto between particles */ + if(pJS.particles.line_linked.enable || pJS.particles.move.attract.enable){ + for(var j = i + 1; j < pJS.particles.array.length; j++){ + var p2 = pJS.particles.array[j]; + + /* link particles */ + if(pJS.particles.line_linked.enable){ + pJS.fn.interact.linkParticles(p,p2); + } + + /* attract particles */ + if(pJS.particles.move.attract.enable){ + pJS.fn.interact.attractParticles(p,p2); + } + + /* bounce particles */ + if(pJS.particles.move.bounce){ + pJS.fn.interact.bounceParticles(p,p2); + } + + } + } + + + } + + }; + + pJS.fn.particlesDraw = function(){ + + /* clear canvas */ + pJS.canvas.ctx.clearRect(0, 0, pJS.canvas.w, pJS.canvas.h); + + /* update each particles param */ + pJS.fn.particlesUpdate(); + + /* draw each particle */ + for(var i = 0; i < pJS.particles.array.length; i++){ + var p = pJS.particles.array[i]; + p.draw(); + } + + }; + + pJS.fn.particlesEmpty = function(){ + pJS.particles.array = []; + }; + + pJS.fn.particlesRefresh = function(){ + + /* init all */ + cancelRequestAnimFrame(pJS.fn.checkAnimFrame); + cancelRequestAnimFrame(pJS.fn.drawAnimFrame); + pJS.tmp.source_svg = undefined; + pJS.tmp.img_obj = undefined; + pJS.tmp.count_svg = 0; + pJS.fn.particlesEmpty(); + pJS.fn.canvasClear(); + + /* restart */ + pJS.fn.vendors.start(); + + }; + + + /* ---------- pJS functions - particles interaction ------------ */ + + pJS.fn.interact.linkParticles = function(p1, p2){ + + var dx = p1.x - p2.x, + dy = p1.y - p2.y, + dist = Math.sqrt(dx*dx + dy*dy); + + /* draw a line between p1 and p2 if the distance between them is under the config distance */ + if(dist <= pJS.particles.line_linked.distance){ + + var opacity_line = pJS.particles.line_linked.opacity - (dist / (1/pJS.particles.line_linked.opacity)) / pJS.particles.line_linked.distance; + + if(opacity_line > 0){ + + /* style */ + var color_line = pJS.particles.line_linked.color_rgb_line; + pJS.canvas.ctx.strokeStyle = 'rgba('+color_line.r+','+color_line.g+','+color_line.b+','+opacity_line+')'; + pJS.canvas.ctx.lineWidth = pJS.particles.line_linked.width; + //pJS.canvas.ctx.lineCap = 'round'; /* performance issue */ + + /* path */ + pJS.canvas.ctx.beginPath(); + pJS.canvas.ctx.moveTo(p1.x, p1.y); + pJS.canvas.ctx.lineTo(p2.x, p2.y); + pJS.canvas.ctx.stroke(); + pJS.canvas.ctx.closePath(); + + } + + } + + }; + + + pJS.fn.interact.attractParticles = function(p1, p2){ + + /* condensed particles */ + var dx = p1.x - p2.x, + dy = p1.y - p2.y, + dist = Math.sqrt(dx*dx + dy*dy); + + if(dist <= pJS.particles.line_linked.distance){ + + var ax = dx/(pJS.particles.move.attract.rotateX*1000), + ay = dy/(pJS.particles.move.attract.rotateY*1000); + + p1.vx -= ax; + p1.vy -= ay; + + p2.vx += ax; + p2.vy += ay; + + } + + + } + + + pJS.fn.interact.bounceParticles = function(p1, p2){ + + var dx = p1.x - p2.x, + dy = p1.y - p2.y, + dist = Math.sqrt(dx*dx + dy*dy), + dist_p = p1.radius+p2.radius; + + if(dist <= dist_p){ + p1.vx = -p1.vx; + p1.vy = -p1.vy; + + p2.vx = -p2.vx; + p2.vy = -p2.vy; + } + + } + + + /* ---------- pJS functions - modes events ------------ */ + + pJS.fn.modes.pushParticles = function(nb, pos){ + + pJS.tmp.pushing = true; + + for(var i = 0; i < nb; i++){ + pJS.particles.array.push( + new pJS.fn.particle( + pJS.particles.color, + pJS.particles.opacity.value, + { + 'x': pos ? pos.pos_x : Math.random() * pJS.canvas.w, + 'y': pos ? pos.pos_y : Math.random() * pJS.canvas.h + } + ) + ) + if(i == nb-1){ + if(!pJS.particles.move.enable){ + pJS.fn.particlesDraw(); + } + pJS.tmp.pushing = false; + } + } + + }; + + + pJS.fn.modes.removeParticles = function(nb){ + + pJS.particles.array.splice(0, nb); + if(!pJS.particles.move.enable){ + pJS.fn.particlesDraw(); + } + + }; + + + pJS.fn.modes.bubbleParticle = function(p){ + + /* on hover event */ + if(pJS.interactivity.events.onhover.enable && isInArray('bubble', pJS.interactivity.events.onhover.mode)){ + + var dx_mouse = p.x - pJS.interactivity.mouse.pos_x, + dy_mouse = p.y - pJS.interactivity.mouse.pos_y, + dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse), + ratio = 1 - dist_mouse / pJS.interactivity.modes.bubble.distance; + + function init(){ + p.opacity_bubble = p.opacity; + p.radius_bubble = p.radius; + } + + /* mousemove - check ratio */ + if(dist_mouse <= pJS.interactivity.modes.bubble.distance){ + + if(ratio >= 0 && pJS.interactivity.status == 'mousemove'){ + + /* size */ + if(pJS.interactivity.modes.bubble.size != pJS.particles.size.value){ + + if(pJS.interactivity.modes.bubble.size > pJS.particles.size.value){ + var size = p.radius + (pJS.interactivity.modes.bubble.size*ratio); + if(size >= 0){ + p.radius_bubble = size; + } + }else{ + var dif = p.radius - pJS.interactivity.modes.bubble.size, + size = p.radius - (dif*ratio); + if(size > 0){ + p.radius_bubble = size; + }else{ + p.radius_bubble = 0; + } + } + + } + + /* opacity */ + if(pJS.interactivity.modes.bubble.opacity != pJS.particles.opacity.value){ + + if(pJS.interactivity.modes.bubble.opacity > pJS.particles.opacity.value){ + var opacity = pJS.interactivity.modes.bubble.opacity*ratio; + if(opacity > p.opacity && opacity <= pJS.interactivity.modes.bubble.opacity){ + p.opacity_bubble = opacity; + } + }else{ + var opacity = p.opacity - (pJS.particles.opacity.value-pJS.interactivity.modes.bubble.opacity)*ratio; + if(opacity < p.opacity && opacity >= pJS.interactivity.modes.bubble.opacity){ + p.opacity_bubble = opacity; + } + } + + } + + } + + }else{ + init(); + } + + + /* mouseleave */ + if(pJS.interactivity.status == 'mouseleave'){ + init(); + } + + } + + /* on click event */ + else if(pJS.interactivity.events.onclick.enable && isInArray('bubble', pJS.interactivity.events.onclick.mode)){ + + + if(pJS.tmp.bubble_clicking){ + var dx_mouse = p.x - pJS.interactivity.mouse.click_pos_x, + dy_mouse = p.y - pJS.interactivity.mouse.click_pos_y, + dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse), + time_spent = (new Date().getTime() - pJS.interactivity.mouse.click_time)/1000; + + if(time_spent > pJS.interactivity.modes.bubble.duration){ + pJS.tmp.bubble_duration_end = true; + } + + if(time_spent > pJS.interactivity.modes.bubble.duration*2){ + pJS.tmp.bubble_clicking = false; + pJS.tmp.bubble_duration_end = false; + } + } + + + function process(bubble_param, particles_param, p_obj_bubble, p_obj, id){ + + if(bubble_param != particles_param){ + + if(!pJS.tmp.bubble_duration_end){ + if(dist_mouse <= pJS.interactivity.modes.bubble.distance){ + if(p_obj_bubble != undefined) var obj = p_obj_bubble; + else var obj = p_obj; + if(obj != bubble_param){ + var value = p_obj - (time_spent * (p_obj - bubble_param) / pJS.interactivity.modes.bubble.duration); + if(id == 'size') p.radius_bubble = value; + if(id == 'opacity') p.opacity_bubble = value; + } + }else{ + if(id == 'size') p.radius_bubble = undefined; + if(id == 'opacity') p.opacity_bubble = undefined; + } + }else{ + if(p_obj_bubble != undefined){ + var value_tmp = p_obj - (time_spent * (p_obj - bubble_param) / pJS.interactivity.modes.bubble.duration), + dif = bubble_param - value_tmp; + value = bubble_param + dif; + if(id == 'size') p.radius_bubble = value; + if(id == 'opacity') p.opacity_bubble = value; + } + } + + } + + } + + if(pJS.tmp.bubble_clicking){ + /* size */ + process(pJS.interactivity.modes.bubble.size, pJS.particles.size.value, p.radius_bubble, p.radius, 'size'); + /* opacity */ + process(pJS.interactivity.modes.bubble.opacity, pJS.particles.opacity.value, p.opacity_bubble, p.opacity, 'opacity'); + } + + } + + }; + + + pJS.fn.modes.repulseParticle = function(p){ + + if(pJS.interactivity.events.onhover.enable && isInArray('repulse', pJS.interactivity.events.onhover.mode) && pJS.interactivity.status == 'mousemove') { + + var dx_mouse = p.x - pJS.interactivity.mouse.pos_x, + dy_mouse = p.y - pJS.interactivity.mouse.pos_y, + dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse); + + var normVec = {x: dx_mouse/dist_mouse, y: dy_mouse/dist_mouse}, + repulseRadius = pJS.interactivity.modes.repulse.distance, + velocity = 100, + repulseFactor = clamp((1/repulseRadius)*(-1*Math.pow(dist_mouse/repulseRadius,2)+1)*repulseRadius*velocity, 0, 50); + + var pos = { + x: p.x + normVec.x * repulseFactor, + y: p.y + normVec.y * repulseFactor + } + + if(pJS.particles.move.out_mode == 'bounce'){ + if(pos.x - p.radius > 0 && pos.x + p.radius < pJS.canvas.w) p.x = pos.x; + if(pos.y - p.radius > 0 && pos.y + p.radius < pJS.canvas.h) p.y = pos.y; + }else{ + p.x = pos.x; + p.y = pos.y; + } + + } + + + else if(pJS.interactivity.events.onclick.enable && isInArray('repulse', pJS.interactivity.events.onclick.mode)) { + + if(!pJS.tmp.repulse_finish){ + pJS.tmp.repulse_count++; + if(pJS.tmp.repulse_count == pJS.particles.array.length){ + pJS.tmp.repulse_finish = true; + } + } + + if(pJS.tmp.repulse_clicking){ + + var repulseRadius = Math.pow(pJS.interactivity.modes.repulse.distance/6, 3); + + var dx = pJS.interactivity.mouse.click_pos_x - p.x, + dy = pJS.interactivity.mouse.click_pos_y - p.y, + d = dx*dx + dy*dy; + + var force = -repulseRadius / d * 1; + + function process(){ + + var f = Math.atan2(dy,dx); + p.vx = force * Math.cos(f); + p.vy = force * Math.sin(f); + + if(pJS.particles.move.out_mode == 'bounce'){ + var pos = { + x: p.x + p.vx, + y: p.y + p.vy + } + if (pos.x + p.radius > pJS.canvas.w) p.vx = -p.vx; + else if (pos.x - p.radius < 0) p.vx = -p.vx; + if (pos.y + p.radius > pJS.canvas.h) p.vy = -p.vy; + else if (pos.y - p.radius < 0) p.vy = -p.vy; + } + + } + + // default + if(d <= repulseRadius){ + process(); + } + + // bang - slow motion mode + // if(!pJS.tmp.repulse_finish){ + // if(d <= repulseRadius){ + // process(); + // } + // }else{ + // process(); + // } + + + }else{ + + if(pJS.tmp.repulse_clicking == false){ + + p.vx = p.vx_i; + p.vy = p.vy_i; + + } + + } + + } + + } + + + pJS.fn.modes.grabParticle = function(p){ + + if(pJS.interactivity.events.onhover.enable && pJS.interactivity.status == 'mousemove'){ + + var dx_mouse = p.x - pJS.interactivity.mouse.pos_x, + dy_mouse = p.y - pJS.interactivity.mouse.pos_y, + dist_mouse = Math.sqrt(dx_mouse*dx_mouse + dy_mouse*dy_mouse); + + /* draw a line between the cursor and the particle if the distance between them is under the config distance */ + if(dist_mouse <= pJS.interactivity.modes.grab.distance){ + + var opacity_line = pJS.interactivity.modes.grab.line_linked.opacity - (dist_mouse / (1/pJS.interactivity.modes.grab.line_linked.opacity)) / pJS.interactivity.modes.grab.distance; + + if(opacity_line > 0){ + + /* style */ + var color_line = pJS.particles.line_linked.color_rgb_line; + pJS.canvas.ctx.strokeStyle = 'rgba('+color_line.r+','+color_line.g+','+color_line.b+','+opacity_line+')'; + pJS.canvas.ctx.lineWidth = pJS.particles.line_linked.width; + //pJS.canvas.ctx.lineCap = 'round'; /* performance issue */ + + /* path */ + pJS.canvas.ctx.beginPath(); + pJS.canvas.ctx.moveTo(p.x, p.y); + pJS.canvas.ctx.lineTo(pJS.interactivity.mouse.pos_x, pJS.interactivity.mouse.pos_y); + pJS.canvas.ctx.stroke(); + pJS.canvas.ctx.closePath(); + + } + + } + + } + + }; + + + + /* ---------- pJS functions - vendors ------------ */ + + pJS.fn.vendors.eventsListeners = function(){ + + /* events target element */ + if(pJS.interactivity.detect_on == 'window'){ + pJS.interactivity.el = window; + }else{ + pJS.interactivity.el = pJS.canvas.el; + } + + + /* detect mouse pos - on hover / click event */ + if(pJS.interactivity.events.onhover.enable || pJS.interactivity.events.onclick.enable){ + + /* el on mousemove */ + pJS.interactivity.el.addEventListener('mousemove', function(e){ + + if(pJS.interactivity.el == window){ + var pos_x = e.clientX, + pos_y = e.clientY; + } + else{ + var pos_x = e.offsetX || e.clientX, + pos_y = e.offsetY || e.clientY; + } + + pJS.interactivity.mouse.pos_x = pos_x; + pJS.interactivity.mouse.pos_y = pos_y; + + if(pJS.tmp.retina){ + pJS.interactivity.mouse.pos_x *= pJS.canvas.pxratio; + pJS.interactivity.mouse.pos_y *= pJS.canvas.pxratio; + } + + pJS.interactivity.status = 'mousemove'; + + }); + + /* el on onmouseleave */ + pJS.interactivity.el.addEventListener('mouseleave', function(e){ + + pJS.interactivity.mouse.pos_x = null; + pJS.interactivity.mouse.pos_y = null; + pJS.interactivity.status = 'mouseleave'; + + }); + + } + + /* on click event */ + if(pJS.interactivity.events.onclick.enable){ + + pJS.interactivity.el.addEventListener('click', function(){ + + pJS.interactivity.mouse.click_pos_x = pJS.interactivity.mouse.pos_x; + pJS.interactivity.mouse.click_pos_y = pJS.interactivity.mouse.pos_y; + pJS.interactivity.mouse.click_time = new Date().getTime(); + + if(pJS.interactivity.events.onclick.enable){ + + switch(pJS.interactivity.events.onclick.mode){ + + case 'push': + if(pJS.particles.move.enable){ + pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb, pJS.interactivity.mouse); + }else{ + if(pJS.interactivity.modes.push.particles_nb == 1){ + pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb, pJS.interactivity.mouse); + } + else if(pJS.interactivity.modes.push.particles_nb > 1){ + pJS.fn.modes.pushParticles(pJS.interactivity.modes.push.particles_nb); + } + } + break; + + case 'remove': + pJS.fn.modes.removeParticles(pJS.interactivity.modes.remove.particles_nb); + break; + + case 'bubble': + pJS.tmp.bubble_clicking = true; + break; + + case 'repulse': + pJS.tmp.repulse_clicking = true; + pJS.tmp.repulse_count = 0; + pJS.tmp.repulse_finish = false; + setTimeout(function(){ + pJS.tmp.repulse_clicking = false; + }, pJS.interactivity.modes.repulse.duration*1000) + break; + + } + + } + + }); + + } + + + }; + + pJS.fn.vendors.densityAutoParticles = function(){ + + if(pJS.particles.number.density.enable){ + + /* calc area */ + var area = pJS.canvas.el.width * pJS.canvas.el.height / 1000; + if(pJS.tmp.retina){ + area = area/(pJS.canvas.pxratio*2); + } + + /* calc number of particles based on density area */ + var nb_particles = area * pJS.particles.number.value / pJS.particles.number.density.value_area; + + /* add or remove X particles */ + var missing_particles = pJS.particles.array.length - nb_particles; + if(missing_particles < 0) pJS.fn.modes.pushParticles(Math.abs(missing_particles)); + else pJS.fn.modes.removeParticles(missing_particles); + + } + + }; + + + pJS.fn.vendors.checkOverlap = function(p1, position){ + for(var i = 0; i < pJS.particles.array.length; i++){ + var p2 = pJS.particles.array[i]; + + var dx = p1.x - p2.x, + dy = p1.y - p2.y, + dist = Math.sqrt(dx*dx + dy*dy); + + if(dist <= p1.radius + p2.radius){ + p1.x = position ? position.x : Math.random() * pJS.canvas.w; + p1.y = position ? position.y : Math.random() * pJS.canvas.h; + pJS.fn.vendors.checkOverlap(p1); + } + } + }; + + + pJS.fn.vendors.createSvgImg = function(p){ + + /* set color to svg element */ + var svgXml = pJS.tmp.source_svg, + rgbHex = /#([0-9A-F]{3,6})/gi, + coloredSvgXml = svgXml.replace(rgbHex, function (m, r, g, b) { + if(p.color.rgb){ + var color_value = 'rgba('+p.color.rgb.r+','+p.color.rgb.g+','+p.color.rgb.b+','+p.opacity+')'; + }else{ + var color_value = 'hsla('+p.color.hsl.h+','+p.color.hsl.s+'%,'+p.color.hsl.l+'%,'+p.opacity+')'; + } + return color_value; + }); + + /* prepare to create img with colored svg */ + var svg = new Blob([coloredSvgXml], {type: 'image/svg+xml;charset=utf-8'}), + DOMURL = window.URL || window.webkitURL || window, + url = DOMURL.createObjectURL(svg); + + /* create particle img obj */ + var img = new Image(); + img.addEventListener('load', function(){ + p.img.obj = img; + p.img.loaded = true; + DOMURL.revokeObjectURL(url); + pJS.tmp.count_svg++; + }); + img.src = url; + + }; + + + pJS.fn.vendors.destroypJS = function(){ + cancelAnimationFrame(pJS.fn.drawAnimFrame); + canvas_el.remove(); + pJSDom = null; + }; + + + pJS.fn.vendors.drawShape = function(c, startX, startY, sideLength, sideCountNumerator, sideCountDenominator){ + + // By Programming Thomas - https://programmingthomas.wordpress.com/2013/04/03/n-sided-shapes/ + var sideCount = sideCountNumerator * sideCountDenominator; + var decimalSides = sideCountNumerator / sideCountDenominator; + var interiorAngleDegrees = (180 * (decimalSides - 2)) / decimalSides; + var interiorAngle = Math.PI - Math.PI * interiorAngleDegrees / 180; // convert to radians + c.save(); + c.beginPath(); + c.translate(startX, startY); + c.moveTo(0,0); + for (var i = 0; i < sideCount; i++) { + c.lineTo(sideLength,0); + c.translate(sideLength,0); + c.rotate(interiorAngle); + } + //c.stroke(); + c.fill(); + c.restore(); + + }; + + pJS.fn.vendors.exportImg = function(){ + window.open(pJS.canvas.el.toDataURL('image/png'), '_blank'); + }; + + + pJS.fn.vendors.loadImg = function(type){ + + pJS.tmp.img_error = undefined; + + if(pJS.particles.shape.image.src != ''){ + + if(type == 'svg'){ + + var xhr = new XMLHttpRequest(); + xhr.open('GET', pJS.particles.shape.image.src); + xhr.onreadystatechange = function (data) { + if(xhr.readyState == 4){ + if(xhr.status == 200){ + pJS.tmp.source_svg = data.currentTarget.response; + pJS.fn.vendors.checkBeforeDraw(); + }else{ + console.log('Error pJS - Image not found'); + pJS.tmp.img_error = true; + } + } + } + xhr.send(); + + }else{ + + var img = new Image(); + img.addEventListener('load', function(){ + pJS.tmp.img_obj = img; + pJS.fn.vendors.checkBeforeDraw(); + }); + img.src = pJS.particles.shape.image.src; + + } + + }else{ + console.log('Error pJS - No image.src'); + pJS.tmp.img_error = true; + } + + }; + + + pJS.fn.vendors.draw = function(){ + + if(pJS.particles.shape.type == 'image'){ + + if(pJS.tmp.img_type == 'svg'){ + + if(pJS.tmp.count_svg >= pJS.particles.number.value){ + pJS.fn.particlesDraw(); + if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame); + else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + }else{ + //console.log('still loading...'); + if(!pJS.tmp.img_error) pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + } + + }else{ + + if(pJS.tmp.img_obj != undefined){ + pJS.fn.particlesDraw(); + if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame); + else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + }else{ + if(!pJS.tmp.img_error) pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + } + + } + + }else{ + pJS.fn.particlesDraw(); + if(!pJS.particles.move.enable) cancelRequestAnimFrame(pJS.fn.drawAnimFrame); + else pJS.fn.drawAnimFrame = requestAnimFrame(pJS.fn.vendors.draw); + } + + }; + + + pJS.fn.vendors.checkBeforeDraw = function(){ + + // if shape is image + if(pJS.particles.shape.type == 'image'){ + + if(pJS.tmp.img_type == 'svg' && pJS.tmp.source_svg == undefined){ + pJS.tmp.checkAnimFrame = requestAnimFrame(check); + }else{ + //console.log('images loaded! cancel check'); + cancelRequestAnimFrame(pJS.tmp.checkAnimFrame); + if(!pJS.tmp.img_error){ + pJS.fn.vendors.init(); + pJS.fn.vendors.draw(); + } + + } + + }else{ + pJS.fn.vendors.init(); + pJS.fn.vendors.draw(); + } + + }; + + + pJS.fn.vendors.init = function(){ + + /* init canvas + particles */ + pJS.fn.retinaInit(); + pJS.fn.canvasInit(); + pJS.fn.canvasSize(); + pJS.fn.canvasPaint(); + pJS.fn.particlesCreate(); + pJS.fn.vendors.densityAutoParticles(); + + /* particles.line_linked - convert hex colors to rgb */ + pJS.particles.line_linked.color_rgb_line = hexToRgb(pJS.particles.line_linked.color); + + }; + + + pJS.fn.vendors.start = function(){ + + if(isInArray('image', pJS.particles.shape.type)){ + pJS.tmp.img_type = pJS.particles.shape.image.src.substr(pJS.particles.shape.image.src.length - 3); + pJS.fn.vendors.loadImg(pJS.tmp.img_type); + }else{ + pJS.fn.vendors.checkBeforeDraw(); + } + + }; + + + + + /* ---------- pJS - start ------------ */ + + + pJS.fn.vendors.eventsListeners(); + + pJS.fn.vendors.start(); + + + +}; + +/* ---------- global functions - vendors ------------ */ + +Object.deepExtend = function(destination, source) { + for (var property in source) { + if (source[property] && source[property].constructor && + source[property].constructor === Object) { + destination[property] = destination[property] || {}; + arguments.callee(destination[property], source[property]); + } else { + destination[property] = source[property]; + } + } + return destination; +}; + +window.requestAnimFrame = (function(){ + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function(callback){ + window.setTimeout(callback, 1000 / 60); + }; +})(); + +window.cancelRequestAnimFrame = ( function() { + return window.cancelAnimationFrame || + window.webkitCancelRequestAnimationFrame || + window.mozCancelRequestAnimationFrame || + window.oCancelRequestAnimationFrame || + window.msCancelRequestAnimationFrame || + clearTimeout +} )(); + +function hexToRgb(hex){ + // By Tim Down - http://stackoverflow.com/a/5624139/3493650 + // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") + var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; + hex = hex.replace(shorthandRegex, function(m, r, g, b) { + return r + r + g + g + b + b; + }); + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + return result ? { + r: parseInt(result[1], 16), + g: parseInt(result[2], 16), + b: parseInt(result[3], 16) + } : null; +}; + +function clamp(number, min, max) { + return Math.min(Math.max(number, min), max); +}; + +function isInArray(value, array) { + return array.indexOf(value) > -1; +} + + +/* ---------- particles.js functions - start ------------ */ + +window.pJSDom = []; + +window.particlesJS = function(tag_id, params){ + + //console.log(params); + + /* no string id? so it's object params, and set the id with default id */ + if(typeof(tag_id) != 'string'){ + params = tag_id; + tag_id = 'particles-js'; + } + + /* no id? set the id to default id */ + if(!tag_id){ + tag_id = 'particles-js'; + } + + /* pJS elements */ + var pJS_tag = document.getElementById(tag_id), + pJS_canvas_class = 'particles-js-canvas-el', + exist_canvas = pJS_tag.getElementsByClassName(pJS_canvas_class); + + /* remove canvas if exists into the pJS target tag */ + if(exist_canvas.length){ + while(exist_canvas.length > 0){ + pJS_tag.removeChild(exist_canvas[0]); + } + } + + /* create canvas element */ + var canvas_el = document.createElement('canvas'); + canvas_el.className = pJS_canvas_class; + + /* set size canvas */ + canvas_el.style.width = "100%"; + canvas_el.style.height = "100%"; + + /* append canvas */ + var canvas = document.getElementById(tag_id).appendChild(canvas_el); + + /* launch particle.js */ + if(canvas != null){ + pJSDom.push(new pJS(tag_id, params)); + } + +}; + +window.particlesJS.load = function(tag_id, path_config_json, callback){ + + /* load json config */ + var xhr = new XMLHttpRequest(); + xhr.open('GET', path_config_json); + xhr.onreadystatechange = function (data) { + if(xhr.readyState == 4){ + if(xhr.status == 200){ + var params = JSON.parse(data.currentTarget.response); + window.particlesJS(tag_id, params); + if(callback) callback(); + }else{ + console.log('Error pJS - XMLHttpRequest status: '+xhr.status); + console.log('Error pJS - File config not found'); + } + } + }; + xhr.send(); + +}; \ No newline at end of file diff --git a/node_modules/vue-particles/.babelrc b/node_modules/vue-particles/.babelrc new file mode 100644 index 0000000..13f0e47 --- /dev/null +++ b/node_modules/vue-particles/.babelrc @@ -0,0 +1,14 @@ +{ + "presets": [ + ["env", { "modules": false }], + "stage-2" + ], + "plugins": ["transform-runtime"], + "comments": false, + "env": { + "test": { + "presets": ["env", "stage-2"], + "plugins": [ "istanbul" ] + } + } +} diff --git a/node_modules/vue-particles/.editorconfig b/node_modules/vue-particles/.editorconfig new file mode 100644 index 0000000..9d08a1a --- /dev/null +++ b/node_modules/vue-particles/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/node_modules/vue-particles/.eslintignore b/node_modules/vue-particles/.eslintignore new file mode 100644 index 0000000..62490ba --- /dev/null +++ b/node_modules/vue-particles/.eslintignore @@ -0,0 +1,3 @@ +build/*.js +config/*.js +vue-particles/*.js diff --git a/node_modules/vue-particles/.eslintrc.js b/node_modules/vue-particles/.eslintrc.js new file mode 100644 index 0000000..67c085d --- /dev/null +++ b/node_modules/vue-particles/.eslintrc.js @@ -0,0 +1,27 @@ +// http://eslint.org/docs/user-guide/configuring + +module.exports = { + root: true, + parser: 'babel-eslint', + parserOptions: { + sourceType: 'module' + }, + env: { + browser: true, + }, + // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style + extends: 'standard', + // required to lint *.vue files + plugins: [ + 'html' + ], + // add your custom rules here + 'rules': { + // allow paren-less arrow functions + 'arrow-parens': 0, + // allow async-await + 'generator-star-spacing': 0, + // allow debugger during development + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0 + } +} diff --git a/node_modules/vue-particles/.npmignore b/node_modules/vue-particles/.npmignore new file mode 100644 index 0000000..3a4b297 --- /dev/null +++ b/node_modules/vue-particles/.npmignore @@ -0,0 +1,7 @@ +.DS_Store +node_modules/ +dist/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +/.idea/ diff --git a/node_modules/vue-particles/.postcssrc.js b/node_modules/vue-particles/.postcssrc.js new file mode 100644 index 0000000..ea9a5ab --- /dev/null +++ b/node_modules/vue-particles/.postcssrc.js @@ -0,0 +1,8 @@ +// https://github.com/michael-ciniawsky/postcss-load-config + +module.exports = { + "plugins": { + // to edit target browsers: use "browserlist" field in package.json + "autoprefixer": {} + } +} diff --git a/node_modules/vue-particles/README.md b/node_modules/vue-particles/README.md new file mode 100644 index 0000000..0ec9f40 --- /dev/null +++ b/node_modules/vue-particles/README.md @@ -0,0 +1,9 @@ +# vue-particles +### Vue.js component for particles backgrounds ✨ +### SSR compatible - Tested with Nuxt.js + +------------------------------ +particles.js generator +## Demo and Usage +http://vue-particles.netlify.com/ + diff --git a/node_modules/vue-particles/build/build.js b/node_modules/vue-particles/build/build.js new file mode 100644 index 0000000..6b8add1 --- /dev/null +++ b/node_modules/vue-particles/build/build.js @@ -0,0 +1,35 @@ +require('./check-versions')() + +process.env.NODE_ENV = 'production' + +var ora = require('ora') +var rm = require('rimraf') +var path = require('path') +var chalk = require('chalk') +var webpack = require('webpack') +var config = require('../config') +var webpackConfig = require('./webpack.prod.conf') + +var spinner = ora('building for production...') +spinner.start() + +rm(path.join(config.build.assetsRoot, config.build.assetsSubDirectory), err => { + if (err) throw err + webpack(webpackConfig, function (err, stats) { + spinner.stop() + if (err) throw err + process.stdout.write(stats.toString({ + colors: true, + modules: false, + children: false, + chunks: false, + chunkModules: false + }) + '\n\n') + + console.log(chalk.cyan(' Build complete.\n')) + console.log(chalk.yellow( + ' Tip: built files are meant to be served over an HTTP server.\n' + + ' Opening index.html over file:// won\'t work.\n' + )) + }) +}) diff --git a/node_modules/vue-particles/build/check-versions.js b/node_modules/vue-particles/build/check-versions.js new file mode 100644 index 0000000..100f3a0 --- /dev/null +++ b/node_modules/vue-particles/build/check-versions.js @@ -0,0 +1,48 @@ +var chalk = require('chalk') +var semver = require('semver') +var packageConfig = require('../package.json') +var shell = require('shelljs') +function exec (cmd) { + return require('child_process').execSync(cmd).toString().trim() +} + +var versionRequirements = [ + { + name: 'node', + currentVersion: semver.clean(process.version), + versionRequirement: packageConfig.engines.node + }, +] + +if (shell.which('npm')) { + versionRequirements.push({ + name: 'npm', + currentVersion: exec('npm --version'), + versionRequirement: packageConfig.engines.npm + }) +} + +module.exports = function () { + var warnings = [] + for (var i = 0; i < versionRequirements.length; i++) { + var mod = versionRequirements[i] + if (!semver.satisfies(mod.currentVersion, mod.versionRequirement)) { + warnings.push(mod.name + ': ' + + chalk.red(mod.currentVersion) + ' should be ' + + chalk.green(mod.versionRequirement) + ) + } + } + + if (warnings.length) { + console.log('') + console.log(chalk.yellow('To use this template, you must update following to modules:')) + console.log() + for (var i = 0; i < warnings.length; i++) { + var warning = warnings[i] + console.log(' ' + warning) + } + console.log() + process.exit(1) + } +} diff --git a/node_modules/vue-particles/build/dev-client.js b/node_modules/vue-particles/build/dev-client.js new file mode 100644 index 0000000..18aa1e2 --- /dev/null +++ b/node_modules/vue-particles/build/dev-client.js @@ -0,0 +1,9 @@ +/* eslint-disable */ +require('eventsource-polyfill') +var hotClient = require('webpack-hot-middleware/client?noInfo=true&reload=true') + +hotClient.subscribe(function (event) { + if (event.action === 'reload') { + window.location.reload() + } +}) diff --git a/node_modules/vue-particles/build/dev-server.js b/node_modules/vue-particles/build/dev-server.js new file mode 100644 index 0000000..782dc6f --- /dev/null +++ b/node_modules/vue-particles/build/dev-server.js @@ -0,0 +1,89 @@ +require('./check-versions')() + +var config = require('../config') +if (!process.env.NODE_ENV) { + process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV) +} + +var opn = require('opn') +var path = require('path') +var express = require('express') +var webpack = require('webpack') +var proxyMiddleware = require('http-proxy-middleware') +var webpackConfig = require('./webpack.dev.conf') + +// default port where dev server listens for incoming traffic +var port = process.env.PORT || config.dev.port +// automatically open browser, if not set will be false +var autoOpenBrowser = !!config.dev.autoOpenBrowser +// Define HTTP proxies to your custom API backend +// https://github.com/chimurai/http-proxy-middleware +var proxyTable = config.dev.proxyTable + +var app = express() +var compiler = webpack(webpackConfig) + +var devMiddleware = require('webpack-dev-middleware')(compiler, { + publicPath: webpackConfig.output.publicPath, + quiet: true +}) + +var hotMiddleware = require('webpack-hot-middleware')(compiler, { + log: () => {} +}) +// force page reload when html-webpack-plugin template changes +compiler.plugin('compilation', function (compilation) { + compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) { + hotMiddleware.publish({ action: 'reload' }) + cb() + }) +}) + +// proxy api requests +Object.keys(proxyTable).forEach(function (context) { + var options = proxyTable[context] + if (typeof options === 'string') { + options = { target: options } + } + app.use(proxyMiddleware(options.filter || context, options)) +}) + +// handle fallback for HTML5 history API +app.use(require('connect-history-api-fallback')()) + +// serve webpack bundle output +app.use(devMiddleware) + +// enable hot-reload and state-preserving +// compilation error display +app.use(hotMiddleware) + +// serve pure static assets +var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory) +app.use(staticPath, express.static('./static')) + +var uri = 'http://localhost:' + port + +var _resolve +var readyPromise = new Promise(resolve => { + _resolve = resolve +}) + +console.log('> Starting dev server...') +devMiddleware.waitUntilValid(() => { + console.log('> Listening at ' + uri + '\n') + // when env is testing, don't need open it + if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { + opn(uri) + } + _resolve() +}) + +var server = app.listen(port) + +module.exports = { + ready: readyPromise, + close: () => { + server.close() + } +} diff --git a/node_modules/vue-particles/build/utils.js b/node_modules/vue-particles/build/utils.js new file mode 100644 index 0000000..b1d54b4 --- /dev/null +++ b/node_modules/vue-particles/build/utils.js @@ -0,0 +1,71 @@ +var path = require('path') +var config = require('../config') +var ExtractTextPlugin = require('extract-text-webpack-plugin') + +exports.assetsPath = function (_path) { + var assetsSubDirectory = process.env.NODE_ENV === 'production' + ? config.build.assetsSubDirectory + : config.dev.assetsSubDirectory + return path.posix.join(assetsSubDirectory, _path) +} + +exports.cssLoaders = function (options) { + options = options || {} + + var cssLoader = { + loader: 'css-loader', + options: { + minimize: process.env.NODE_ENV === 'production', + sourceMap: options.sourceMap + } + } + + // generate loader string to be used with extract text plugin + function generateLoaders (loader, loaderOptions) { + var loaders = [cssLoader] + if (loader) { + loaders.push({ + loader: loader + '-loader', + options: Object.assign({}, loaderOptions, { + sourceMap: options.sourceMap + }) + }) + } + + // Extract CSS when that option is specified + // (which is the case during production build) + if (options.extract) { + return ExtractTextPlugin.extract({ + use: loaders, + fallback: 'vue-style-loader' + }) + } else { + return ['vue-style-loader'].concat(loaders) + } + } + + // https://vue-loader.vuejs.org/en/configurations/extract-css.html + return { + css: generateLoaders(), + postcss: generateLoaders(), + less: generateLoaders('less'), + sass: generateLoaders('sass', { indentedSyntax: true }), + scss: generateLoaders('sass'), + stylus: generateLoaders('stylus'), + styl: generateLoaders('stylus') + } +} + +// Generate loaders for standalone style files (outside of .vue) +exports.styleLoaders = function (options) { + var output = [] + var loaders = exports.cssLoaders(options) + for (var extension in loaders) { + var loader = loaders[extension] + output.push({ + test: new RegExp('\\.' + extension + '$'), + use: loader + }) + } + return output +} diff --git a/node_modules/vue-particles/build/vue-loader.conf.js b/node_modules/vue-particles/build/vue-loader.conf.js new file mode 100644 index 0000000..7aee79b --- /dev/null +++ b/node_modules/vue-particles/build/vue-loader.conf.js @@ -0,0 +1,12 @@ +var utils = require('./utils') +var config = require('../config') +var isProduction = process.env.NODE_ENV === 'production' + +module.exports = { + loaders: utils.cssLoaders({ + sourceMap: isProduction + ? config.build.productionSourceMap + : config.dev.cssSourceMap, + extract: isProduction + }) +} diff --git a/node_modules/vue-particles/build/webpack.base.conf.js b/node_modules/vue-particles/build/webpack.base.conf.js new file mode 100644 index 0000000..f47b326 --- /dev/null +++ b/node_modules/vue-particles/build/webpack.base.conf.js @@ -0,0 +1,67 @@ +var path = require('path') +var utils = require('./utils') +var config = require('../config') +var vueLoaderConfig = require('./vue-loader.conf') + +function resolve (dir) { + return path.join(__dirname, '..', dir) +} + +module.exports = { + entry: { + app: './src/main.js' + }, + output: { + path: config.build.assetsRoot, + filename: '[name].js', + publicPath: process.env.NODE_ENV === 'production' + ? config.build.assetsPublicPath + : config.dev.assetsPublicPath + }, + resolve: { + extensions: ['.js', '.vue', '.json'], + alias: { + 'vue$': 'vue/dist/vue.esm.js', + '@': resolve('src') + } + }, + module: { + rules: [ + { + test: /\.(js|vue)$/, + loader: 'eslint-loader', + enforce: 'pre', + include: [resolve('src'), resolve('test')], + options: { + formatter: require('eslint-friendly-formatter') + } + }, + { + test: /\.vue$/, + loader: 'vue-loader', + options: vueLoaderConfig + }, + { + test: /\.js$/, + loader: 'babel-loader', + include: [resolve('src'), resolve('test')] + }, + { + test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('img/[name].[hash:7].[ext]') + } + }, + { + test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, + loader: 'url-loader', + options: { + limit: 10000, + name: utils.assetsPath('fonts/[name].[hash:7].[ext]') + } + } + ] + } +} diff --git a/node_modules/vue-particles/build/webpack.dev.conf.js b/node_modules/vue-particles/build/webpack.dev.conf.js new file mode 100644 index 0000000..687d50f --- /dev/null +++ b/node_modules/vue-particles/build/webpack.dev.conf.js @@ -0,0 +1,44 @@ +var utils = require('./utils') +var webpack = require('webpack') +var config = require('../config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin') +var BrowserSyncPlugin = require('browser-sync-webpack-plugin'); + +// add hot-reload related code to entry chunks +Object.keys(baseWebpackConfig.entry).forEach(function (name) { + baseWebpackConfig.entry[name] = ['./build/dev-client'].concat(baseWebpackConfig.entry[name]) +}) + +module.exports = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap }) + }, + // cheap-module-eval-source-map is faster for development + devtool: '#cheap-module-eval-source-map', + plugins: [ + new webpack.DefinePlugin({ + 'process.env': config.dev.env + }), + // https://github.com/glenjamin/webpack-hot-middleware#installation--usage + new webpack.HotModuleReplacementPlugin(), + new webpack.NoEmitOnErrorsPlugin(), + // https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: 'index.html', + template: 'index.html', + inject: true + }), + new FriendlyErrorsPlugin(), + new BrowserSyncPlugin({ + // browse to http://localhost:3000/ during development, + // ./public directory is being served + host: 'localhost', + port: 3000, + // server: { baseDir: ['public'] }, + proxy: 'http://localhost:8080/' + }) + ] +}) diff --git a/node_modules/vue-particles/build/webpack.prod.conf.js b/node_modules/vue-particles/build/webpack.prod.conf.js new file mode 100644 index 0000000..da44b65 --- /dev/null +++ b/node_modules/vue-particles/build/webpack.prod.conf.js @@ -0,0 +1,120 @@ +var path = require('path') +var utils = require('./utils') +var webpack = require('webpack') +var config = require('../config') +var merge = require('webpack-merge') +var baseWebpackConfig = require('./webpack.base.conf') +var CopyWebpackPlugin = require('copy-webpack-plugin') +var HtmlWebpackPlugin = require('html-webpack-plugin') +var ExtractTextPlugin = require('extract-text-webpack-plugin') +var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') + +var env = config.build.env + +var webpackConfig = merge(baseWebpackConfig, { + module: { + rules: utils.styleLoaders({ + sourceMap: config.build.productionSourceMap, + extract: true + }) + }, + devtool: config.build.productionSourceMap ? '#source-map' : false, + output: { + path: config.build.assetsRoot, + filename: utils.assetsPath('js/[name].[chunkhash].js'), + chunkFilename: utils.assetsPath('js/[id].[chunkhash].js') + }, + plugins: [ + // http://vuejs.github.io/vue-loader/en/workflow/production.html + new webpack.DefinePlugin({ + 'process.env': env + }), + new webpack.optimize.UglifyJsPlugin({ + compress: { + warnings: false + }, + sourceMap: true + }), + // extract css into its own file + new ExtractTextPlugin({ + filename: utils.assetsPath('css/[name].[contenthash].css') + }), + // Compress extracted CSS. We are using this plugin so that possible + // duplicated CSS from different components can be deduped. + new OptimizeCSSPlugin({ + cssProcessorOptions: { + safe: true + } + }), + // generate dist index.html with correct asset hash for caching. + // you can customize output by editing /index.html + // see https://github.com/ampedandwired/html-webpack-plugin + new HtmlWebpackPlugin({ + filename: config.build.index, + template: 'index.html', + inject: true, + minify: { + removeComments: true, + collapseWhitespace: true, + removeAttributeQuotes: true + // more options: + // https://github.com/kangax/html-minifier#options-quick-reference + }, + // necessary to consistently work with multiple chunks via CommonsChunkPlugin + chunksSortMode: 'dependency' + }), + // split vendor js into its own file + new webpack.optimize.CommonsChunkPlugin({ + name: 'vendor', + minChunks: function (module, count) { + // any required modules inside node_modules are extracted to vendor + return ( + module.resource && + /\.js$/.test(module.resource) && + module.resource.indexOf( + path.join(__dirname, '../node_modules') + ) === 0 + ) + } + }), + // extract webpack runtime and module manifest to its own file in order to + // prevent vendor hash from being updated whenever app bundle is updated + new webpack.optimize.CommonsChunkPlugin({ + name: 'manifest', + chunks: ['vendor'] + }), + // copy custom static assets + new CopyWebpackPlugin([ + { + from: path.resolve(__dirname, '../static'), + to: config.build.assetsSubDirectory, + ignore: ['.*'] + } + ]) + ] +}) + +if (config.build.productionGzip) { + var CompressionWebpackPlugin = require('compression-webpack-plugin') + + webpackConfig.plugins.push( + new CompressionWebpackPlugin({ + asset: '[path].gz[query]', + algorithm: 'gzip', + test: new RegExp( + '\\.(' + + config.build.productionGzipExtensions.join('|') + + ')$' + ), + threshold: 10240, + minRatio: 0.8 + }) + ) +} + +if (config.build.bundleAnalyzerReport) { + var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin + webpackConfig.plugins.push(new BundleAnalyzerPlugin()) +} + +module.exports = webpackConfig diff --git a/node_modules/vue-particles/config/dev.env.js b/node_modules/vue-particles/config/dev.env.js new file mode 100644 index 0000000..efead7c --- /dev/null +++ b/node_modules/vue-particles/config/dev.env.js @@ -0,0 +1,6 @@ +var merge = require('webpack-merge') +var prodEnv = require('./prod.env') + +module.exports = merge(prodEnv, { + NODE_ENV: '"development"' +}) diff --git a/node_modules/vue-particles/config/index.js b/node_modules/vue-particles/config/index.js new file mode 100644 index 0000000..196da1f --- /dev/null +++ b/node_modules/vue-particles/config/index.js @@ -0,0 +1,38 @@ +// see http://vuejs-templates.github.io/webpack for documentation. +var path = require('path') + +module.exports = { + build: { + env: require('./prod.env'), + index: path.resolve(__dirname, '../dist/index.html'), + assetsRoot: path.resolve(__dirname, '../dist'), + assetsSubDirectory: 'static', + assetsPublicPath: '/', + productionSourceMap: true, + // Gzip off by default as many popular static hosts such as + // Surge or Netlify already gzip all static assets for you. + // Before setting to `true`, make sure to: + // npm install --save-dev compression-webpack-plugin + productionGzip: false, + productionGzipExtensions: ['js', 'css'], + // Run the build command with an extra argument to + // View the bundle analyzer report after build finishes: + // `npm run build --report` + // Set to `true` or `false` to always turn it on or off + bundleAnalyzerReport: process.env.npm_config_report + }, + dev: { + env: require('./dev.env'), + port: 8080, + autoOpenBrowser: true, + assetsSubDirectory: 'static', + assetsPublicPath: '/', + proxyTable: {}, + // CSS Sourcemaps off by default because relative paths are "buggy" + // with this option, according to the CSS-Loader README + // (https://github.com/webpack/css-loader#sourcemaps) + // In our experience, they generally work as expected, + // just be aware of this issue when enabling this option. + cssSourceMap: false + } +} diff --git a/node_modules/vue-particles/config/prod.env.js b/node_modules/vue-particles/config/prod.env.js new file mode 100644 index 0000000..773d263 --- /dev/null +++ b/node_modules/vue-particles/config/prod.env.js @@ -0,0 +1,3 @@ +module.exports = { + NODE_ENV: '"production"' +} diff --git a/node_modules/vue-particles/index.html b/node_modules/vue-particles/index.html new file mode 100644 index 0000000..7631718 --- /dev/null +++ b/node_modules/vue-particles/index.html @@ -0,0 +1,14 @@ + + + + + + Vue-Particles - Vue.js and particles.js component + + + + +
    + + + diff --git a/node_modules/vue-particles/package.json b/node_modules/vue-particles/package.json new file mode 100644 index 0000000..100a680 --- /dev/null +++ b/node_modules/vue-particles/package.json @@ -0,0 +1,122 @@ +{ + "_args": [ + [ + "vue-particles@1.0.9", + "/home/software/CodeMaster/workflow" + ] + ], + "_development": true, + "_from": "vue-particles@1.0.9", + "_id": "vue-particles@1.0.9", + "_inBundle": false, + "_integrity": "sha1-KdnMK+AVffHAqH7DuWyW8zJ5Um4=", + "_location": "/vue-particles", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "vue-particles@1.0.9", + "name": "vue-particles", + "escapedName": "vue-particles", + "rawSpec": "1.0.9", + "saveSpec": null, + "fetchSpec": "1.0.9" + }, + "_requiredBy": [], + "_resolved": "https://registry.npmjs.org/vue-particles/-/vue-particles-1.0.9.tgz", + "_spec": "1.0.9", + "_where": "/home/software/CodeMaster/workflow", + "author": { + "name": "creotip@gmail.com" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ], + "bugs": { + "url": "https://github.com/creotip/vue-particles/issues" + }, + "dependencies": { + "particles.js": "^2.0.0", + "vue": "^2.2.6" + }, + "description": "Vue.js component for particles backgrounds", + "devDependencies": { + "autoprefixer": "^6.7.2", + "babel-core": "^6.22.1", + "babel-eslint": "^7.1.1", + "babel-loader": "^6.2.10", + "babel-plugin-transform-runtime": "^6.22.0", + "babel-preset-env": "^1.3.2", + "babel-preset-stage-2": "^6.22.0", + "babel-register": "^6.22.0", + "browser-sync": "^2.18.8", + "browser-sync-webpack-plugin": "^1.1.4", + "chalk": "^1.1.3", + "connect-history-api-fallback": "^1.3.0", + "copy-webpack-plugin": "^4.0.1", + "css-loader": "^0.28.0", + "eslint": "^3.19.0", + "eslint-config-standard": "^6.2.1", + "eslint-friendly-formatter": "^2.0.7", + "eslint-loader": "^1.7.1", + "eslint-plugin-html": "^2.0.0", + "eslint-plugin-promise": "^3.4.0", + "eslint-plugin-standard": "^2.0.1", + "eventsource-polyfill": "^0.9.6", + "express": "^4.14.1", + "extract-text-webpack-plugin": "^2.0.0", + "file-loader": "^0.11.1", + "friendly-errors-webpack-plugin": "^1.1.3", + "html-webpack-plugin": "^2.28.0", + "http-proxy-middleware": "^0.17.3", + "milligram": "^1.3.0", + "node-sass": "^4.5.2", + "normalize.css": "^6.0.0", + "opn": "^4.0.2", + "optimize-css-assets-webpack-plugin": "^1.3.0", + "ora": "^1.2.0", + "rimraf": "^2.6.0", + "rollup": "^0.41.6", + "rollup-plugin-vue": "^2.3.1", + "sass-loader": "^6.0.3", + "semver": "^5.3.0", + "shelljs": "^0.7.6", + "url-loader": "^0.5.8", + "vue-loader": "^11.3.4", + "vue-prism": "^1.0.5", + "vue-style-loader": "^2.0.5", + "vue-template-compiler": "^2.2.6", + "webpack": "^2.3.3", + "webpack-bundle-analyzer": "^2.2.1", + "webpack-dev-middleware": "^1.10.0", + "webpack-hot-middleware": "^2.18.0", + "webpack-merge": "^4.1.0" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + }, + "homepage": "http://vue-particles.netlify.com/", + "keywords": [ + "vue", + "vuejs", + "vue.js", + "vue-component", + "particles.js", + "particles", + "vue-particles" + ], + "license": "MIT", + "main": "src/vue-particles/index.js", + "name": "vue-particles", + "scripts": { + "build": "node build/build.js", + "dev": "node build/dev-server.js", + "lint": "eslint --ext .js,.vue src", + "rollup": "rollup -c", + "start": "node build/dev-server.js" + }, + "version": "1.0.9" +} diff --git a/node_modules/vue-particles/rollup.config.js b/node_modules/vue-particles/rollup.config.js new file mode 100644 index 0000000..0e03d2e --- /dev/null +++ b/node_modules/vue-particles/rollup.config.js @@ -0,0 +1,11 @@ +// rollup.config.js +import vue from 'rollup-plugin-vue' +export default { + entry: 'src/vue-particles/index.js', + format: 'cjs', // 'cjs' + dest: 'vue-particles/bundle.js', // equivalent to --output + moduleName: 'VueParticles', + plugins: [ + vue({ /* configuration options. */ }) + ] +} diff --git a/node_modules/vue-particles/src/App.vue b/node_modules/vue-particles/src/App.vue new file mode 100644 index 0000000..1032b5e --- /dev/null +++ b/node_modules/vue-particles/src/App.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/node_modules/vue-particles/src/assets/logo.png b/node_modules/vue-particles/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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

    QVLh6c~ttxlVyIdm$h#7GZit>m&^T|60mk3~i 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π(FbljPOqcW3iHye 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�=?8) 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 Hu0mjfX7ifH literal 0 HcmV?d00001 diff --git a/node_modules/vue-particles/src/assets/sky.jpg b/node_modules/vue-particles/src/assets/sky.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ac9ef43a0d38415144fc1a659ccfc5ae41b68606 GIT binary patch literal 425587 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

    =k*TM}e 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Πk8+EBpjGUAEs7UV+3<`hAd+ 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≤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 z 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

    MnAx*kW%hh#U>PtK{+W?})5U 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 KI?$INZ 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

    g7~B@7LBJ5;SkUfx3L*YWzy^1ue^ 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ⅇjbHIMZ!)(-~3r#Zfg!MR%Ox5&cR3ic# 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

    ZW~tqFpj5hfPR)Hn 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 gP?2K*{`a=~-v$5=1Bij44B*-OKaRls|3|F<51

    QVLh6c~ttxlVyIdm$h#7GZit>m&^T|60mk3~i zI~Kh$+iBNTSw0sSK#c&}Ku#8Oub#)S9{S)8(u&`PVd}sYI zpKECYLw+KdxZEu*oYDU`4;9H2$`g@g>ep z^>qBCIPZ!>!0O_Vkekv&SBaXajAJMEHUK!-S6g^#tRiu6L7uJ%p6H2)=tZ?EUI@c2 z`6=Y%8vy@gV>V8wkpdQLTw2cg+}pWzj8#a!3wW^IPnh8ZDS1&fI3ny?Ch)QNTwG1D zo^Iegrnc2&mK&3R%-pa%aJ}^8mM~%6=nH6@+YygKinkDy#N2bWY8R*%N+d&OBR5I= zDS@ZbKA;s4s04lG$!aN$ZM=UlKV+Y6i4@~?^xSLgdFZ8HB2sCukSa>9D-L~Z0^bnJ z@5VmpWXeYNQTK8$%%j*F>=?}zAF5{Rwg>9AHVoEw%8a_`=?g9*^0IWSLMs^4?e_XQ z-xW&?kF;5-u?;j$b~@Vba6U$1oRXRS!@INhJ;9tSbSzRXYD5R%t1d()*k|c2>*|u= z9eT+~w-@=y^KPYkD9t8WJJD7}4tcrxm(T$G#ZuETCdek$)2e6Yj3#k)V?ts?%teV& z+EMwPUOps05s%<>f1Moc(SRnP$7i5&@)82%-7~d031{irgv5e@?M-r@V-LgeSo7un zFvMJ{r~n1<;IL@<>yBN@Mov8ld(q8i`hdi`HFZ@Af-7{*5WZk9GSRB_S1}mAP5Xyn z<;C-=GP-PO^*itMPi+s1@WG5ekd=^rJy{fWV9O!;J#uq#Q`R``P;&^~q6WwPu~F0+ zh0(pW7P}moC}YtGlSeZl3Iw73dSayHR9TU(O?nZ)u-A#9X$FfLqS$$dDRnIFuU3m3 z8H!J;tPSb8MmVX%BZ71=S)NTt?9SpSdqGcbU_uPWolt35?s2% zgwDFk)96VvBtaV6bQLUv?am+HT)T>DGl=pN-`oG2Qu&@JlcBYChJD9?A|V>C)ieh+ z485b@nbRKW2E;{MwNy>BC`ZdQ^wIi@e%Qha=mD*!ik$|Uhovwunc754nwb(Jyk3u5 zo0|pEEdl9E$sc^_3{X?~LVBqhD2of!BJ|1AOX6(Vfy{3Un_eL+oLb#`vJnP!f7@9y zQ{MJ!di(j+R$t;l;p?O7Z_mS>2g?Z$1hFy8bIi$o1%~xm@eyj8VJfl`7F=7t!)+$%iI^>GIB(N1#Kf3y3P`_Z(_C`&DHW2G=vD zE_m+-mzs2I0jX5eaU8q83ToCpf~G!YTKc2NJU*spph;6SG0lT-3GMZ^7QtZTUQ5=q zymJ`;N7j{Sx2_aHXO?KQB-^rlhz$t@d;>QRc;p5MI~?}q@c*B~R8`N60UzECiET-< z^-|qk4J)GJry)pq${sB!f@uoUTa;cZiVzy1ye8NLrfgaDRfeYX{6Be?zKF2l547mxyZy+su63H-IikF~apr~>?pJxn0-yiyPE!Tqzv5~Rs z`|JDjW#TgoyXUW-#v#440WyHn3=0Ynp<`2R+AT=7S6C0TK^hJwXF97VDsdM`{=?|o zfuF!TYD}f1J1R$d(O1iDtA$c{Y3_1K4?YjMo0K)GpeD3#6nBsD#Y&)&{a{ElkqNjR zgtAtSDq(e5?FD)Bq&^s5zw@mhUsjOsInh6{Erqf~1h1LOv9@D7i2BrRVwY=}NVmGY zeYz}&702MfIYpX)5A4Nkm(Wiv6bvPB$8q}SU;pX*JB+hAJj`}Fc^dL&cg@mM5}6&r zNpkZ{)vV+nAxt6DKZ#7JureYHU%C$hGJ1QPu$DzWYpNwzdCj79>i~EPD-efYRd-(u zn_Cx}KV?pKpMUk$wbl61vW&8em|`~srQ;C@=Av^H2>3y4b}zqwy+)o4Q#f`LEELQl z<92Z(r47U7>#t7A+R&?#uibGp8eqO%krZM6^f<{>18Re9d|L@!^9D@R)XoSBHkG!# zwD>apjD1=>hW`_QD_m*iM*3Xs%&fGkHCRBakjRyUFP~fP?LTaZT2N!n?Dh?Y`bj%QBdtt!$4xtcZATWmq%y~c?`5MkmM|J(mlL99uEh4aC(`L&3uVrTOi*;wFf0$V7InW$zIk06EIaXA7}4`l9=71;TkyY zfb&7DC~FZ_x~+96p`q(!xx=m8{rGRceO`m~men2K@cxHLGfvoqaqeuw{Fv-2U`1Am z-JHJu(dW~W6iK`B$5XEzhupt5C$NTqCVIy8UHCU_w@oK>uW&7ngGMUSvXY96T(%<8 z@YA4OEz=eyJ5H0(!s@31;%;p_C1vD#a0GPbfmhN|Q6#u@JE9lZTK8e~8m6kH7FDK< zf;J37_TXlzuDKfX$~eLNrBC~1T$ONmef{~x7xAtfivi(OTl$>Sk4(m;*?$D_3W<}e zaPPD&%T1cpn0mt+t3dq-;@acO=eJ>RIm$#lO1%fBT#7xLYE&MSbN$=%yr~@?k(oS2 zJ`3ipCUco2uJketdQ%$el@})q9Q|g>)ao{?L#;39#Y!4o9Bjp;bc}Kr;ET=j{EeUd^9O(U>Enn}eHCxQ{yDx-<7(&BS{w|gVjrgB7TZvrC>p=Vf?-s>^AzxCRD#! zkTC~InE!(|-~NW&QEPP{y5nvbcRe4nGLR9J%@Wi)GcsHhT9jQ{FLnC+P3N|N&Cd_V zX(d(;Qb7%=qR*(1DII$6O!4@UNf(}}>G2ojaD#9wl z9dIL`&s|7peo5k24$11tuQ}0HA!qdFLscT}Bh`oe?FvZ`e+n8@crh?%Vm^6Q#`jw*j+%^8=-128}Lv6hEvbTFM@v~!GEG!|dJz|?$E-JsGB|CgCDp;;Zt zJH~O`T^l8O=oXbeE>KqM_i8=n22xeLV~oQv^yA^-^~c};<>$x4v_d$LgQU4$`@l%P zyzf9DjfN}}QCXL53u(+gmDV@!)+~Zc8l`wCV<@)0P2VjNksYg0DVC}})49S?ya6Z- z-m1J&!mOyjD09;GS>B%z8mXWzH7iUP5ZML*Ktil*t(q4Cp0mPeRzR}{vC(r|$K~Pa z*sG;3f%l+_OYlE*7F$uYA%xZu%+KoqtbvVsqjOeZ9FPY%bjWuA`@!m06ls;L4{1$^ znL(7UlMhNeG+lwi%lu6tt+)@Qd*l2%h@OOuUtR}8{MstzkzI#8a!zHj*Khm;UF|UY zdkf{#M+UcPn2zsn2Qj2bH(>k?10UuTYuW)nlA*0{(hGz+sPCugnrnCnOjQ`OC3qpt zZ;59XcyCeZ(FAR)53~==jEvspF8eB{lX00F%0Ydq7i@W4#o7ADU%qtdt->2^dlz@$ zXf{T#OQX)HPQ_D@VQ>&bAXEAR#2&)BmaMXp|?$ zU~_t#4XTk6pss5kUpi5!S8X7iN{_E4;3Kz(r(=tR zU}T~Uwn}+_Yt@&hr=4#N77*;wHiu+I4AzquvUZ*dnT6Y(nsjCid?%JjDh}W59v^nj zWT60qwwvw@Ezicd5plYK44^fCAw~2)zxV2dS!^=2@UqOXl5DJHtMD@`ra9{@TL8if z1A6I{GAl^@Zuk5w+`j;Fb{ArytH7*0f&5wE)GhWFnFQVA^Bm>u z*!lA_dJQX;me*7Gs!Gi&d<}=nFB^Y3mV^{7KF2N{60y=B8X=i9mCwN&aR?QukTh0I zS(X8N%#~nsNp(i(oRtUN|O6$QapGgthD=-VkcEDa6RJOb-_?Ke?y{Ue~I}{nE3kfK@Uv zZD$xK?|jsOuE6rt!4ery*G8S<@(kWDhqu#M3qOR>YrtCeT7s46as!F!u5T}2e*QQb zkF$!*1c+$5ah<-N;tI9tNg+w*BaTh}I#_n%9yG_NxE%){X= z!8~ly`hIBJdCw>pvtIRTWXo>@% zQAIxtXlN3nO&b=Z)L&@&;89kgTWQj7+wzHkFyua2RQ!Pulx+cP9OD)5&kY%J!xo{d z_#=kK7^3E^WZ_khK~`4dB8rE1UU0e5Afm$lxN8EL%yfwiz1I9qYO7G zM|R^-FM-_X26SGqUUzfDO{zze@n+5%PR`0y$s5)x0v2Ay!g|NBvQO~&bi67_cKQcu)Tr7+DC@^KhRs36=(e-eC zxIBG&&-G)t8&sHYGfRqwF3pMbBEv3XOP~Tihl+vtpKNam-X^We*gFJ6h*Ig`6pTUX zbV_;Y&X1=-^UC=(F|Gw=fj`hL&oH8CpB$J|9b4^6SyqT0oB9EQAw$#IPp|(}_FPI2 zm0+j=7GH6*Jsu?{4TJI)YODxnO=76xhC?N27fKgs*e;W|ot&#rA`gFcvn&ZHITe}U z&+5=?L7&~K$PBix$3HFr9#&Tf?n1c*>^?~EZLoYwftQNQsiCb2UONv#bv=+7WT5QO zJOViesZi?axCXcSLUCfQOhs0McQ;hNY$AxXi^4*OH{jw(&;hw?0pxV>?y(lR-DaTR zweBEL4{{!YK?d?f9CKT(ufHi|d=G2Qa6%j$4xn}HY{{fyT_)0xW?lw2jjPy=j7rni zhpktMx(eC*^8M$5q-Ua;mVWQY$*`c9(XC3V0S!0g{)~hS(ob_*c{_8vN{Xf)3Qyke zK&nu>EGPg`wmpK~BX4b9wd(JRYd6e&Z$~Yn2Qy;=~I;`4XoEiKK)2DC$@gKkY z;wk6^zLg7WV&X8lJNU_cziRc}@$*Ypyir-9IToZ{Ed|d5!&f24rZ%d;TWQjnIjo~l zeSYQt`VC^_F^}x29f=J3jUm7kJ_U*ZrtUsfBfY( z4OJlz=JZz&Q@LFGlCrH(tW7tjC9rFQdP%iIcRdnbGa|^+*%U*mwbm-?ZpU7#5Y)0+ zGh{g*ozfX}=KIM5b|DuWsWPNuIL9#}#J~rF(dPNRR=$sD4wCTkRgx3VE5wn^a)0{# za_IuG5`TDjKd$X^njudrL3C7X4z1u3Zk0U7tqRwM;3l#Xz-_fW5fZvEWfZL?e7vWC zMmYUC1f5`}Falc+^p)|*>jHTeT&Ut+&uii55agaXc1Q^n@W?_htYaS*2^dmET<5M& zvs3J$9&Wcb8xk6lK^aNU^Dn>sOLVo2tUF#QfXTNc4-qBjTz<7e>s$0gV@AH^5KAW9 zm~O6eD?;WN%`xx~^E+AWW5ZQao_2ov`Hw%pX*URJRx~^mn;;@fBR13Sbndt~Zg<&*Vs4N!(ns+I5>(C4 zR@2F~UiK=^xpYKrAPl3k>tpfqczM0}Q<`s0Y3J#1D5nOhoa5F(k*x`PfqB^iBY5h{ zwICpfjjiuL{qyHbgW0<+{KcYXr16HNvNVuV*)K=4?M}Php<(%R3D&w;x_1>qmf`u! zG3+-VeX7xz-IhuzizZ$i1u39$Z#6{TuL3xV-|?dIpv|k)KLpNn)THis_@>i&X?nDl zqOu4HnVX=5hXJ)>PEs>^S6CeBimyoL+;4B!i559JX4QBfWIP_8FE_tGU0d~R01=5Q zrt~Ie&2`;|GDnb5A!MiuwInWfmrwuv_n)_Xi=B|8rP{3v8#tr?=xUT$X197#qI3LK z(1r|uA=qn6T+#C4FpijAvz)Q4rEU&q@oSdAMwA?qr*2I4#-hu1iL;>T8umk2dhrES zOm`Pqrj2n^ zC=IKPEQcJB)#0n5H{xOLj>JtADz0&9C?GTSc^zQ8+<1yH!W+{IncUWF`4H zvAra{9O;iNpZbKH3(u%DQ;_B?DDNI#Pi;+u%|F;+6Nz7k*{K<+@sQQJLYOoCeCR*0 zhhdhAMm!5x8U^CK+}y&nmBF`43jD~TSjwqB2e}jRnYy3z$jW68-~ZJspA+LE7?p`& z5L7|S%h~JK5CbBlx{+o{Sd0?I-oF3Khe@qxrKTub5Y8+~7-pYK+=#Rc1g3oyeA*s% z<6%c^UUN1_H{RXnSaq!5~%;s4;0wgL2y{7S-@(bN{afJ#Z$c59{VF_WW z>d5+H=*B*PLvqz_pM4awDJYWcQtIt~lugZhVQjSYviXlZDg0ZCIZ#!!!# z>_wNQg(7J}?F1SdC`xz6<m!sX-saeKpus)~Xf~%ec&o+uwma-rdKfLy$*T6Yq>& z%2L+Z&Nk3RH$e*_b3JrYc+$(EB=&g+uXO>rgVp3awG6HVn>tstweePT%qLN>d%1ji zpIj8jHeXiS!>g7QLt)P$=B3YN9gtagj(zuK< z1b`5tyPqyE&*yOnDrpSU!122v94TzeBZV>#gN%a6W3DkO_=Qf#FKwaOCEW=}VlhlS%0%u-yn zjz#M+$J3Jn!SuaFLy!xgjr!3Yy7|~_t?nU`-j2yC)Vlfy78e5~>vebBEtLyfc}7;2 zf;yueD5gqwhykz>tY4L+$G|$Tq^umLD3QaWZT)!Y@35{(%(K6pZtDhrAD}lmDl_A= z;O$?(^V3sOCymRGSU2td!N4E67#FQ0*?3yRpol?-G8^EKYv#RQC$Nbvvcpjb655x#eBq#(3 zZ#-=8BQcJqjX?6)fJeE1UgSRkL+k31a@!>)B9H1b0{P_!T z!dM6=hpBf)kC46O@{;k@E&4vj1VoCJWw#m3b)GRJZh1JO(V77Hv=gnpEP|G*&))Zs zKmO%YLn5c9&B8&mZ@@{V4XVvV%tZhSls|3|Vs+*j4^vl(JtUhgvLOKV1sh~Sz8>%d zVBQkUHN~k(WVTnIY2-@vDX_Lssar*g(hXv5Z#h)^D~dE|gKTxq%=IGBp%>$CpnCjR zk8?Vin;h#hr6pp3AdS_ypa6Y)I2^85zb|ZY@=8^P%NVMrL@#sX*nSt?Hui>RmV^`M z6vkvU+*L3|PPI`MhJks`V-u}d1giP)z7*FsqM*K@3e9e}nx!q3T0U%CgH^hqeYHcd1~0 zdBv#zF`?&k+ zWsW}a&`a0jjojU;rZ8)awBQ-p3(YtmcD;I#u$X)Cm`^zf84oWB;AFrlwU=2V`ep7^ zp^!ZU1qU6@8PeP&h*9z264-tihvH6rAZ-JAeZ^50uQ(*y@jN-2*A1F4@J0Z2z&e^P z8DUZSMh53R4)8`C=lK24U!T$+(PC&I?|m%_W3P^GZZ@}#^ug-@P8ZZ4NBNMo$9ITB z$J<*ZV3<~CCA>JJ?Vz0AihtUq)J{_9a@uNt0an5Taev%4{Ha2i6h{N7iN$u2n{PT; z6NA%EpB{hutJglaMyWOtw???DRXk{N5qP$Zi7s6&jmH@YMC)<@T9@D_OI*%_2d_Y# zb@#}q14adc|Hj7>a}V}S#VOd=3imLkhZu6?RaI~b@8v#EYPxJzv$7#R$p0UMAS%Le zfUvBOhXV3pfZ3ZM-tpKGpHL1N(KgX#Spi56i;bsa!iwaVii_HEPw+iZ4KtK%s6x(1 zXs?GUiSL#y)K%D#l6dv{gVB0gjD?mNFGJ@tGGGwtK`6b*ou4{0xj(ciAiYR`Mewh5 z3>Ju9`&r&AD>h@PN)ynR;(R&xwK)=>pI&CaJ9Oa=x#tBrDY#o@Ex2!w&nZm~OLXrq z5B;`$h@(}BjV;@Lt9A^0j@Bw&LUXtrC)pSPF%c~2APZ0cj}sulU1;wt1>6dWN_Qe5 z7vy^5K>>(LHZ<`vMQJ0Da@;$RPauhP=p9qhZIj_&)#6Kou}}kXT`L4d z9Bt}A2H|2x%9Y?;lV3r);k6+MD~Ql~gIX8!Se^BKaIN6cc0M%OIBq~RGc3DtuuLZ4 zAS|4{b(V7%dq0lO5}b!s5RzYZOB(|WnDj*wyMvlGIWaHCh=e*o@a_AL{tR<4Ad{pr z(kn$ut^J3bmuii$WmEbD>;@~eEx@LF1Q={K^?~BX1psp-cxW7n|7xm)GAq&pI@baw9Z-z>?WbGc8R8ymJ; zkKgDu7A_@(txOOXv#lgH$6(d?!ECqfX4!QGtI^U}YX=947jXdv#0*bnCuS|cdbjima>~XL=ud^m zH=+0`A&LWsNnpzDw3@aonuSZF8ODvp+D=m`N#=@ZvorbvFADjRUh;0u9*RVuIoztq zQZ9XDCn`4b@Ox{{$)_}#hF-bkXfTVz)~nd(q~qQ8?=O$n4aIHBDEstQQvYmO1|XI; zv$dldSZEC^_otu!?K=6^J)P%$R13IY)6e4ad)O+(SO;SXG8nGBHI< zyWNJhy(b%30M*yLQf||w*CZDiR){H$7cNT2D{GuAYsjv}Ndg3D6#i-Utu7BbP3DIP zF{?ks8TRwF(ZX^tPHdRz4QM9tw@UWt(-s0RS)1)JfLdy3o$Mn4CVT4a%+?W-g7}E1 zufLqe0b&*i2#15Fw#Lv@%Mxg*S%-H5sU%D^@4>b+V-GuX&1z0WwXN75j?Ws*XeL4! zhwkwD)uAQPP+0r5dwxB)JSsR!%})Icov(ezR6l9ol4-*9 ze(P=Z{=929Y;EJZ!?BO@j9mw|S=ooV$NDWZ8JD>r+RZrn8W%J~)I@fi7V!)W$AeGf z=!R+OgXr_xyX*TlI||%mdOl=_RAMpLw8~qzQ#?!!L|Ab?Sxu6KD*d-okF{Cn&ce+c zfrYV#-I0GTF?}`MA}o(Xr>tUm7OD?09co)KXBbpBKsPs|pLtLq1K~3ohE>JF_;lVa zYb2UcyRpT2rnl6j1k&(jp54fzgkvYcNI zGYjt=IOS!^-w|lHR7w*X-U2BEy~;g9nd15Rai#*}Z!K6&cp>=1`k?g>T#t_@pUj!g zD|y({G*?^p$`~U(P4*LLpmFC-gqy{islFJGRAF1~$Ih3Ki?T&i^Xs=BJuLb5^7^UU z+J*QD>Zww`q<3=c(~wKQJbd+OhLfr<1f+N~XD?e*`eOA63$yV@p^ZbzZC4tlS-jM| z9<%pU!@nC_ZUoL7Pq&6r&2x!aADG6<+{J>%DHWK6W9SPEP|9~JZD~;=3`k-i5%!R> z5S{e)#^CeY>J^v9h}9n z`!+_H*^Q&`l0;KdOQ3^%dpx$X$6fDT-!%%=ivLu%<{?sU$`H`^4!>AOHHE)l*VrA96Mu+ZqTEZn)WlIG3smu_ zq5bxla-48n{rUCOLxm4y8ztgfx=e^}boIXR_w%V=4`bX!i{7YopytL}ox;`7tO)W->Bw(ACEqfhDBC?SgN{XdQVO4xj za5ZsIZ06$i@{%Hzu+FBfmD$;_l~=;fIHz69g{g(d^8RJo;+UxeZSP?ItrWbsC2$_n z9sW_{+XhwJ13_Ql$?2cL=d70Q`OBNX7g2Qu)Pq^ZMig{U;^YBpo8csU@rGmxfQIIz zHvjjBW1F;`mL;-FDiXvXZjY~@Mgz0xEugW_B8Uke>{1V zrCgg$HDkOGKt@nAluZjO%G6{*Ci}*3lQ;K1Znv>NRO0?=1e-v*~e8+bkixrt`sHcaSrfQH)r?v);Ev z+3pCrr4nh03X`J9VpQwmXyzt~F?dE4wzb$QbCFP97d=?wMAbd_!91rGYcFcpG?&7I z+|YD$FFk4{mu`)GDv+#2t_FsvmqC9*ptA%jj}jue=|{)Za{#$~L2J~+$LcL{W(7NO zoYvuGcfOzzXR!0%mOZ1%!9B8}PmDakHy~N7AVIBME{m)oZ99Vu{Yjy~sH*+{6s1vT z3I>c&=3B|W9J_@uy?awFH#f0f2{CF>XMDutx#K;Ry+bI5fx^s2Sq^ncW7r%XmhtK2 z?ik@N;zFf9SwL*Zho@8~-$1R{O6XICpJ`&zJ2q^kmdNpk>`VbQ^vs9l_|1BnhLk~i zK$(vx{6O$iyQTK6s9o_W4r;X^%AE0*Bu1e?$aFh8f_2rSebXJj{Pg#ifk#0hm3|(y zwEVVN+y&=imX~*Q?wpFC)*c7ioj-lLtm$aAi9D#6E3_Toj>1-I1*0;sIC&ou=XNKa z32s42_>yUSkIwy5;Dq=zW&Zs9Hf<<)qvgzqpDpCPjav#Umhnn|Di$K#O#*)KU}8`g zLxC|+j#XOi-8_1wmYC@xcIwg|uly^(33cE@lNQ#;p`WIfZ*jQtfU4k?b+fd*5KVB! zkEJbEWW&G^BhBA-^%l37($f@R!mZhU@ySiFZYnPOUpw}(R$g3&-LjLAgApl)(c?I$Hn#%rWGdk60<7Bf4)oKq1yCAlQ~ha9}6%Kfz@;-1juYH*uPrbf0y2 zQvn^AKv*XvBb6=vz~q8Zc{8nS?StXbRRH!a00g?;2VEUNiy6R7R*UH;i*eBE8EK5H zlf!&#wE7oa#mTkV>@HXSjkCa=9WwG({3kEJtC!2 z%B)Uw8HLvHP+B}`Xqe@r?Qi{y_BEDfmc94llJQML_rCw?>zDEP@+mQLlE>+E9h9}R z4d(>;3KA$?8I8sdDuw2Bz&Nwujd*P`oR|}bhIzK~Eu>_*-8l&qis{x1ge~op3jeTF zg=tov3EDWNQL(i(6emD7g+$bd+i-F#HjAl2jxYmb;O;OID`Iu=|Mj{HAvcXo{PX# z1TM*7!o|6M@y0LaS|%JtcKoa9UA{|>7cl`e$8NyMg?$7;nO5iO;nvJ0#u#qhr<$x%dc3IiwS>S`y%*W$@IH)ls=S>vQMj?< z18U!BNvV0H`aV#KWjA(jkISa^ltcQK5qjdLdc!2Kx86;gkCHV>=dwsk@!R2R&D+Jf z!*ONe7RLjC5oC2C-C>K=BY(X%({&6)4eD8u5~6g~FtlqqU_E`ze7o7J#BV}lwBiA8 z5rGCfk&Hy^986Y2;$2EdGIuxHAub#a1WNg;EG+698K%SRvo!WgTK!;Aaqak$k8SBF z^%+@JKoy{-E|N7mp&dc^*xmQY;!k4y5nW?2hrEphXkRPTF z+&86f0wkIr;(p1qv7(>I@ zxxERxq;SLd^0I`&X`$zClLHq^pq5{a#!#mlptiPH%SugF=8=&ck13P{40q%#>A;3*;+5oa2Pj)ja%X0nU+7Ds?ihI}1Q%n3ui)41@ zJ#peTumv$%xbGOsN^cLa-^W&$TyX|(#t6AM?Gmnr%xXg|%hX{U_hz~7; z7R4&1!yAdm3~X(@>&-%FK`|;hgd_^KshFr*3N+!kABJvxcF8 zsW2ZVf4q7qb~dQ0*VP%}^x$-14RMNZWJ<_=->t382hEJ)9Rs=6+^Lf(g}9OM=1yU- z52FpO?bl5#>Gim~Ov#L#D0AN;l(DhMBE0oV%@y5NNr`OM z3WUnV(MoH6?Q<%V>-$(21{W)AZQj*A72sQ}UWo%VUf8}aI8|2@=CQHB#v916X53Y9 z;tH=%D0x;u1hhP&Au?1NUcqr}vpU+8m;tOC2N+rMylM9csGM=O?N&~hbdMriX)vfg zcG=gXumYr!B4(!Q<2Yg9+za@>}I||B6+GK zbWC~a=eOPW|M=~8Lzp(3hsF))WLvJXO>>^UntFrRqv|K)r}?j9EEpgT4A25dQV`*^ zQ=OehbN~X_Ilhf<_NWq%twE>`fjPBcV3kWhc0-7i7XeaRB<{M$Z@46*q|^*)I?5$6)0B;RgpOEJ~^kg)u}2fHiU<(b<;hZR>@aUEwrL@tr>~N z>d*L_*(Idd<>GlOIRREwJuY)n2>abQ)8{Y1g zb|)KK^jzajpq-M2CmtUn`=J$mk{X3@rK3_SeC=G9Dp_4L%MaU>02AwXYr{*0d2;rt zQIDjvG#utl`p?m5wx%>DC}M}7*OQ4BT>RIE$uyO+$ zzrLivnhU5)C7MxU376)pK&t9Y1<|_w6}*!A7Q7W-jk$Rx#Nc4bAaOES;3qI8KB_WdCZL7_Y6dK^jv5BwNTIXz%i@dHRZj=PF#0YL1vhnV?JL-JJqsTVqRsll zqAC(f=?2o@94IB0H5{bc(D!JAfdz>ql-S+C2f)r z-yR+=Nwyx3$LsZUe*5(Le7YVE4`06j`7Ql9u|plN^E`IXKm2-&*;3c+?B}36P{beC zmXA|1JwrY@2Ao=U0VNeCXmZ*E&^+zb#GJqAma&P3qWd8_^oDY1^1{9vbYs*4ReT2X zVFc*7>^d|P2K>P1soOLLBD+xn13Wd4Z(Ts92N~`{gM73QFetWg^D)qhYp34Wm#N*d zftZOGGlO*9&G@&_O3Ffn?+ zJYD45FhAt`X)A$H9EM!6YoFcFkJ#>pBvHOx`ro|V;p0!fxpzl5-L7*~ZC?tSmge+f zT!=-p*U%l76wu?3oWDQ3oClQ)+{ZUhB=;gEL&7Hoc^6vCg<-vktlKv&ILp8m@~}D* zL1>)X-w+51($`o~uud}dK@NrYEPu3i+!h`H{aG`u&b0JKE?GV1hbr4mAGt_@wWmPK zbk%v|DN{2tjW^H?aLLp2yM3x#3?8d7=oII1fr+Vx-v&aKpc=N}dYSc1G8KfgME_j* zwt!@hV>xTAi@&a?<+|?k>Ev;BBlm3jVEc4hvRfb##4K~;$;6FLpKjw(Fb9}!O`O2b z18ft~z9tf%?#l>_4*L2Y^(5WlD{HI)226%prh5QIuzNPZV1nW56?^bAe*;T>)Z%4@g-|vBA!4r?`b9QG()sB?Om*{}8`gvf zk%=_UkgTg{VG3oo)uTv(O?|qKOr;Oa$G2v3%xD29IOHOZId%~wOl9&IC;($` zK503S0(&&_ZV%&yj7}q(U&ODX z8@IZIQXN}7MSE_!AF?~_HU}HAGQfx^Wd-%>t&~pslWrSwmp1GAd*wO=xmz6*tZ9dO zg6siWKrFfAkq6S}XgXY^lu)Ny)PpI~)sthBM#3ZKWqSzgeK1vLJP+@nTmp(D{k_M2 z5eYBdjGq3rinJL0ik29QP~>9XY^-p*;{%u%n3sY{w)T<0Zt=%I{NqPI@jJ(wT=fIa zvwms%D$&Gpk4W3*!E}s*!Exzw>v!Gsc*bOst+hW4uuT(N)TEZkO2YHkd#Jljw)KdN=`QzD znHO&Pelvv7xaBOU)lq~i#m9P_VebH4yS=jg5KQh z4bfI7#Nq#ABDv1%GrH&Vkk^$AVRu&Z+1>`DP zL-;_5eeybTA&tYI!rBLEZ%eL?>ZEcI@r1O-u%|N4(K(f% z6`dwFZ)tZ~-=am@5mm>u2N-mHisNpT{(k-Abtxceu}7 z52f@ejPqggoxob6L~+b4TC&#N+GLtpP!ui3aarx`BzK7}%FUV{UxvUDRNGrP2G0=V z{^30OgqYyLLlgJm)!$wwwjdP31sk2=GP%xq0BVtMuNkBkIwj&Ne*x((QeWWyEz0$45Xz_4F73kB6R3BY0fy!M^3y0DGeC9Aa%l$F)&>)+0S#9bL0{U+d&qsGc5|4=EH%?3BvhK@~V zU0e#q3xSb&wKZ>sW=-}l7t?`#$GQW-t>cvN&orNHmFAQH@Hy@q*Pq@@@0+W~wqKRZ zx$E;;U7-EsYtx!flI^Z|iRMA<9ge_S%%K<_HSJ(u4ogpqWgn6Kbi+DVvGs^BRGzKK zz3gAoVbe18P{13REyFDsI24UoDC%(f3=dZ*DKE{k48ae*4hsj;?O@&RM`~rfeZ1&0 zHryF6EuJ~ev>~0@gqNmEpMl{D8{%y>c^S$Rm=(=!q5opysn&N0&WVNSpC(wDt!YD@ z!!QhEWVPsepE5U!(|$oA9YW|Lvj|63T2sOj%AWDay$c0K&$Q23r0A4IWjP)K2Q&re z`^T?iWD|zs|9p7*^6@^p(c}Ly`)GwOYwv~TBJg~84eMo@Vc1*JcAVx|{7>B<5-h0t zW!*Jr%u!N5yGVl0490c|U>|zdJdH>Nw{?JO&uM0l7`YjBpPH|WY2&{c z;UsD#oYygxs&sK{smZw(*RX6e3{wgcfMr6j83qYgV}ZMsvPq`?8d_s%Ru7)>GE`U1!r}AvU>W{ z6*=0{?NT*VRl0Bl7OtAT+IDN1Fe8_nR~}m-8c|Gjmz0%m$g{Sv4n2XPWR0+yg>UP2 zmQHOaFdcDbjWK~}_ejh2<+=w0uD3t z1}puiq(o_}VSoukNLUXd?qNOj2?(i!G!tJ-r)g=1uOJxP-lIR=R-m6UysG+m<=N=3 zU#HT7qd#MYoEqrWOjy8+r}1fXuq#Z|K?NuU09h&u+KuPCN7|<|HZ9=C5n+=eCU`gN za=G;MGqf7y(r}$=t;q8kqn;lnvuJF=Ds{`^qhFpM$Kd-7+A}z*x2L~-`^O*V5d7S4 zp<^)uXP&BpV0;(*P`rG4oXd-gHc_y z9@D5D=`zGJ=k>6nunZ|L<4=VK%IClQ_~w8d<&OD|+R4k3DfoN7l5WN6-bchr41E-~ zm8#3y$if(;8d-Cp{`T?I|q*dI>6 z`t7HKJhY}SuXYK|p~z~QuWr;2;xo|598p)k8%`6=;fUep`0lpTd5Y_4$tCaR6~U&< z%WO`d=B?IayJ$jus*H~Y;vXdA3BqxvUXKWN*@ zKWV}!x@D*h!~68~r(Zq3y+z)9ZC!4)Y0c(pyiK9X@P@_jTz*7(OUd@z5I zxj?_3ujl);J?w2z-rfrlFe#u6nKw|zGJFk=^2lE-z4JX5dIgPeOpWHC$Fv&x44(*I z$QzVyjTZGe@ol>-dAC#lj5s@X*<+}=@{ay=%3ON7*sB;&P$-7h)vN((8phr+4Au{j z1I4e0^l&t+OuIS_@;5@45nrQpb4~paJsL)U_}A@}Q%>u;A)c-?;6Sb`_+fnO5enUq zA}?fhJ1RxCf<2o`^--k+5jOBeq#X&sDaDR54MvS_NIIBH?W?@T>ZzgUV>n+Aj)%ET zinz_2#;y98UD5rCIiWBSR5V|n6JtB4!-+oR(Vw56ukb$mx0sE}K~7Es29o}-`h>gt zrw=Ew5T%?wemt7sLHF842l||JxZc71s0KDDrzPLL9*4`NcR{%heh~N56weT}iKOr7 ztiIPf$=Hh)HebK{vp+u5J$Kz$kp|)x=`=Y8Vm8DgZoo)HUvbwe(8r$aQhEktiQBTt zChx>S(5R6lWmMYcn?!9?d#MdQK5fSrqn0kKj9#%rLH?yAw#*Tx^VT#-4KU|#hAVv7 zU`2mT?7PHSJ~qxly;7BOR7+PNgkSSp_{=Y#9uMpCLSeB zWt6Rk)(?FVotPy@MO1?uk|!RlXfCl~X|&MsFE8ctlkfiR%j11UrYDE}^!%8ijG)o4 zc2-r)H4oaP8b&8BWnNG3Wo{w}0>^F0W?to{r{u~BU_P+*!sT_2r5J&#DaLp$z+e|A zP&G<0D)*2%6$bbrrZ_~0;61e_*~yia6e)(;RIfS#L@{nX3F+w%t;wOr{dUS+Q!0!x8wRRE zD$|dL6O&cmXdJz>)5hL6EvE(IbkpfR&5Hdg|C8snPtN&i8L~?W%uEUm5=GTw4D2X& zT_ebIGZH;9juVQ1^I=ItveOeoFdnYA!#oBmGJkl>#m9)e9iJ$eM%A{t<!sa8gMypH_4#?+!B!`3Dd9Gq{r4xQmG1#)%H(q2}Q)HYNrh%uj<%xvR|Vp*@?NeQ85@&+)LU&~ce>$u`AO&)_69`P}K z`q4kX`{nD))AMab?!rI5MC4g`g+^LY5@78}p~Eb;cRiU5F|4I>V@IgY!4s>ASwmlo z2!c(7q28|?XHzOsiRF7rt0W{5iN5jl;q14B-MS8?@?B4*IxhAsbP_Dk7v(94J68`u z!t=W@&+dp^BxSQ8Oe>KANxKWk1-{d-U%R9YAQPpP#4*K!co!gQQy4CatZf! ze&VFE;$d0_1$1H%XKY~y5Qwg_*fF>$*z+Q>5HZQJc22o7&^-HeI4#qVBWlYq&0Ffv z=QYFHjq<&@M|P#OHV=b4?oE27bGpU)^sC2={<6UV8J_0}ZxgN4W4nC%bnCO31Q-nR zvAtI&1Moji18=4mG1eRo;y4Q<2%(CWBSxzXWUxztGbc}3x!?r0X6o;UxfTrY)9q(D4UGSYk0yodu5WlV;+j!PAk7Fvx!Q_k-z2R zC_Yerh$2;d6xP1h@>Jecd(hoKe!7g~;ql9tr&9tC;m1FHdcMezY_6%{h>JlC!bj~O z!Ye$|C~&n$SickE?5+%8aD+_9e?>s>89sx2)L`b&xP?`oY7;zkK&o61hUh zF1r9rA@8?U1UTrxzn6+Fv58qS-zUk9$`My?t$E<@#AJ%Q3}$0tghvu#G()@XhH`-^`>N!k4DVEeyOsn+>BC| zsx0m=*KM~?*Nba<((7q*`#c@I>EadrtXkt?-Q2pjQ;rdp_rOEM7eQGbBUqazukqzB zeBGmoQtafpxtZ{JSiC*2n+CXjLJsoip0ZRwP;fbWYIPRVN*`tR>KQXt ze`+$@%}Qj#6CJ_qdnRz2pR5VR84V`owXD12(vrQFW<2`Y{%QL*KMueNF{5vI)q8HFtWTCaqU`LM$} zh7QVsu(@XCtQE^)coE6*z0^_UFsX_jq2E0NA$bE=|Y_wC%%MvksD!-rz72TsMZC&$d*{j zQE)-r*KMb#+cIb*qmMDqiH<3JWGCFzJ90G!)RF}jeX7KZfv1x7;wKnbTPE zoCc9L64_f4h)HODbGo9ePh(Z0~A>#WoJ5HN6rptd}(#c~0%qHEa++RJ93ekG+ocl7$lm zq5U8~`_LZ}>ZnnE@?m}3c5chcTbs9TmkY(6bi+g~BZNU_<^yxvEc=MZLTlbsjLRux z2`t5(_`eeEq6a2Y?4VwPL%>|dZR_^yb$#=T4wu!Emf6kc#UH!r-s|AOK(QC>J(D+q zu?A(+8u|YGGC657b602>jf}nZs6FJ%Em=V(5uOHxM!$`@qla7lL{SU`#L*>YH$Ncc zxlgYAOF!L*IHnwci5R-X1u6zZ5Vk!~KG2gMHOq6fTU(c0L7K!5GR-uT^2CHs8-)p` zuC)@%jfZgeZaiF{zMj7Q?_d7<`+xlB*S%Bl(K+>(;zX-1cb8_sWAP0VO{^StCL5XO zeq%OF)m5zmt|)KKd(u^|xxaJc5;O(FJlv`J0H}(U39G1VJ+IH-uh-!!U{Pdg8kRyA$r5f5V=fS%O zXLazU3I$Ltae3&2bFa!-_NOed5l$Md&)-&AU3To5J+#}Y@DYA2I#nb{ML`J;ppzSgYxa_ zLMgVls;l|8ocQ6~$Nv#X6w=jgs@zqXCwuJo{4~kS!>!lr=M;8b<7E`h+VZPE-H?zm zKPj$#*r&_=?K0`>heK~wpje+io_bnR7d((On)nH;0m0Ub)=BB{y}BJ zk!N0t0m4j$Z6-Mz{1AtfmCB4`)}646;ry2kCL8Mq^!HeSon=ym-9+oYo(5amZJXlO zR3%S?gXi+{(svC<$HY2coOFf@`*8noBQH`FYYgk;tDG8o%(@EKYXX?uzMnt-{olX; z{onuiz2EH373wed5nlD_f}0jDZ44e~(i#WBM2$ZN2Bo2W&l9X*qev6AOaZkfK}KeQ z4u{)Z-Em54uAsMzhAPQ&P9ybvZ5}{}sKs0+P zcjl!!7+Z(V0F~M~K7GK1kpf;aipj&h$2TM=ZR!X*YNhv-H?z zm>RwP(CtG1;Sse#%w4+;Cb(lb7j|yB-hGf@2#ozO_rr8Kc${&YiJAl=(Iy>}mk%`o zuls0BE7oIDgB^IGu}Tw&A{&#%u-c;Y6Yw2+~>n( znl6)N+4>Q?QF*cD6z1CvDxakXD2zY` zmUDXBf!8lz`O4jJdzl^{(6grLk_beNc=Rjbfvuy(9-nlhh{^rvYNSD{DoTl<_N{sl zHXXDq9l4!p0bBM&DLX0uH9EP|pMLPctMB*tjt|3hSPcu`HTpA~VdHiXUf?g6p)>TQ zCDdBe7%n|5Yga&B!jrGgm#NLOZz`l5pd!})y4&CW`tRTW@~_|f-Y@pr-0uEzK&~mF z3{=F5Mq$L9k_pz3^|qYEdJMTcHcrO-2_)S@nX)j{Ma642flKMQM){^t;DQIHO&+D? zV%CU(qdFop-W-UkUP#FUY! z8j~j%Ac}pz`S~FS2PBSCNG#gO#110sv!hKOk%jxT&Q@}^jV(EE+-&RZJl|gW$eubs zqm0LDuh~GMs<4vJOY4+)NX8DP-Ux3yC!$~1U+m16JBu-|NUWgn%0TKuTaK;cwT0a9 zZlm!F8We<2aL$BH4V}(7U8Saqw{JPp+7jGos;aePexovpW`P6p3&uQ&F(_tRVQk!^?KZak#v3+jp2(0`oT$sMzWe>(|LgnDg9!I_ zduQQSN4ZBfcWTdyiI*?~t}L98JML{yqVD3u^8f?znkJ}a_4mbRL7o(4DGJ9A=H69j zvDpbixMl>=io@9xKq2JUu!F$d@IU1M=f8aa2UACY zNKSXLnLPL+Sz?WZy-s4eK<(FJU|M1d%>!d^%_sxyec_-L1A(eOcABbfnZcsfLIFD( zaL2v>(O-Y|y+3~cdq3F^V^m|6XE`1~M7iHa49ay^?vKYN$?Xmgqw@9K{jXxBCD@ck zt1(=@{QUEEb=cEoDQflEzk&u-k2d2(mr4T5!Hp5Os^S;Ky6tJu4HuI)pPYl)G}@8u zeo&WifIwT8w3VPU&S`r7at^z^_D&C}b}Z=OrA6E>p)`b}{an7meHfA$Q5oFAY z?1LX!@n%t&Qn?{2k?zuP`1-ga!cFHx#H_F(if$MD+@O{e0A}K*F4<9c{pQPrN0x{L zT~k6ny9@zwE_SJ+$(QrNHltsms^t#1Ud=j4zkBZ)F0j_koqqA#+Za_iH#~pyGK6N- zC~HKRSed8u<7GOZMiMr9@`+ieR>_l)qxy0Z z(duGu5bCSDT>P8CJ-nP)aeSEaZZ|H=2$+wbys0yVTeRN6Hi0(C=y|JZ=0G~iSVgTZ zg6hSVMY&@3dRAUC_;CV&ng&4&J+Q|pom8Bb@qSs7fvl~F#J>3y0UpV>5CE!I70_87 z#Uc#USmanqkIkQuPS@XQR`i2mILuL+I4XwrK3d%f$=uoHBI&gs|M0Kh`~LU8_hEkr zR}*~=%ZU{#ozBpJ{&t%=`O>)&vovihiH7Q^Xcfziy*^{YI#ylafw8ZD@acMiaursp z4IV#K$k5n0kOn$KXV=r<@&?ew=v|o(!_B}Nfq>H3Om{5HtP*%^?&IntEVTyqbFhmx zJw2vUcLouw%JI}$+lz&V#YroXW?|2e~oKOpHR51`KpLe@)q25>M^ieicFcP%+!w=PO)lgI}f3{bzm@HPFU@L(B%UW zKlt=nrbTDn3)>AMqqi`>`Tc@k!h6s=kMoQP z+8Jq2tqQ6-b^OT1({XNm&a~ZCK=y46cildNvUcZ}dpbVEY=2QOieMf?gcjIoWF*At;M9d*PMM^kPTfF|XUCoVw zgS$B^e|(p|vyi@~({=NL&Q{z5=sC-&+f}*366^)fzE($TgW_rx6Yjb{{OE^&{r;bS zx<{JK6sdWAH4YQ)Fef>kPN~dQf>eh7mYE($u=(9V%7g3`hBw>H8a>%|dOW0A)>ueT zk(M3?lFNgU!Fi$n)*UfM9Yd;ZivQDVRB4GtkDGPsDq8GU*KLQ%Be+Y*Te;;t1iudX zavlqS1jeIk{*~g_Ls5Q0Ex(!Yw04Pz>9-szk$O>pCsP@6re&-vk_>>tsda}{4RT(l z=dZE|<^o_}WaMy-NVglTx<2j*MARM*q94uyWbe*J+plgg{o z#&f1F4`^je4vkx=rK)aK)C;gC+g4SYJ|VlCb-jD_z@PV*$gt9=beNry}rrt`~M7N`DNkAm;T-LcFO z!9M+kF^mPY1vU|7QXG{>u+zeR=XA$W6^aTbfrnwZIUuM7~17vL87i{D`DVbPp;}Q7xRoX+`c_g1f3?vfls&GxAEi`p zB8XZx@~`&(`OEWRFDOkgUZg`crYLdY%8-Wrnnh>cgJ1y9!Xg$`9TBc>K>&>>uwX32 zIQJgGA_It{)v6ddxy+`P%~9;Rh|jDCU5}uFv@DY9-*YH+5*lfevqav)5ZQFO&Yg!w zD$>?`h2`rhyWYQA#9~fq6Cp*fj;ZBy_0zvhYZ|v`o@=cN8=QIg&3ovSP}72cN0S=@ z@JqgO>u#%yTdF)L2LQ=I&^qA^#;xx+RBZ>%sanv-bseql6jmO>2Ps?Kv{QI2_AJ;* zRL+2IfO2+>*oB{7>2q4DYUaG?&xAdJR`GkW_%3O07ZJ3_;QI5f!(6@|g+o zDz>0E+R#Z@ceim4n^CE@NG%Pz3E$I1SX5|*_MJNfIFIgh8duohFvE8V!LGK0mtq1v z;qr8Fg@>ZBx?7Htt(%+4F#;K9&1YQ-%oNGGa&UP}R^3EG;XA4`w{is*ZG;iaetA5E zopY96lEuSail|6E3!`d=ji&-NMM8|<$PN6<$1ASTDqW=`Sro_Z)S~vVj)ywk>h!LU zi~s6x^<{cWT%Wo(0sU4Gr`e(PEiG!Q6r*s@Ov+2!e=PUSTbIaS&xy)_zb zu_QL{T|wN2{_THZub5uO5;%M93)NKEu|sB0_Un#=D~U@ob-#xGl#b>B3r5|Jd0G+| z1d3LIgs?5w8)OlLqHy4B(?A6(4(ptTc|9EZAnjWxI~&K%b#BNZ+i}CcWW3-!<5#tA zg5Ll>xkfVd=f$y`$DN-h=hr?07DFK~GF^`SBO40aEWhh=o~INH z;|f~o*h<69n?pjFO2(6aVAn=eOR@{W^nJ&XiL`#&GJoOnw&lzn=X+e*pg{1;N1}Xs z*YxuFY(yP3#h*YIgkNb48=^9z0a=Pm^q{FCszL{~Y80$7sJV2p~{vN`* zB##&zPv#0O`wgZe1%YBxWTv54orEq~LUyqTo<4q^jegWTXqHOEqQPFvfdqqVI~ZSH zq(V}a|E*zd4UOI@V!plR3AOjFmlvqsNmT&B41 zuLoSPKfjy~`EBCP*Z#FLl6sq@Vj$N$&c^m=#vW>W-7izpaENWQP9!d`!xWw9Mv{P0 zt%m~|k_?o6_uhUUAWH!F2oILoAq+yi(l}^7Q{C{Y&#m+S;QLfs(Yod5pO(<7k$DXz zn)MSJvBd6wr4}?5k0-X%Hi=?^XQHy8NAA+$ zl#2TguUG{odg-FvzKejvCD=*F>fz|%KpaCRF>}y9k-wHV()P%ZK|V{2NPZYG991Hl z?3XM|-8By7@pKt><8n%TTn=fFrKlg1Squ;6W<3aX9qSTfmGO*BjY?nocmjt3ASDie9O=oTlVrb_mAAEq1*^LBd8| zgGgF0t-a;xlwV&vBRg%S`mC@SEO&_S(j;PigrLJ(h8|L%OVXFqf?KOpJ@;ejt0>DL zRLp@bsujNEZK`i3kD?-+UG0)502XTuW3%4$31AQO9>Sw8kLVf^6?5B7O|i|=l)Alq z&zj4_m><6RGQ7I;HRT+_<2R4~4a{B7OAx$S+oEdp$Ah_busN38tKL#1=9`ap$3hxb zsKmQh?WWtILp6m@@mSU0k*GN&HymcjAn?`rjMLNe!Y2oHj-&jbU)RCre#hR7K$V18 zTF9zpIqJ5QBMd2lhQHqz+e9B6leChMt!iu@AEu8N22ont4QhtAMph6{a!5dc)}W;s zRmZBMRpcZ|V5e$+N>Vh)SYQ5-Gzy9ExzI$M@s9EW5Ox>$oRRFW;@yqg{N_PbWLeb4dwsGR!rRJxb zqd3;{D1th*;~zQ56dWC-E0{lyIqqWel)_2Fux@W~4pPg6tpPnyzGY9qRSiWuLWXfm zPC1Iwv}ZDyvg{i9Jmli)N0jmhOQz(04QgYzCT2`g7LLU@!6>6Tav?de`UY#bQMt_6 z&vUYPq7e-J?ENy#dA5lE`%@wwTiN?uOnSkD!&-pR|Azc^H*O|G%S+Z`dHaQckK_ zsvvLc*{d3}z=)M&o1L$Lbk+TAaJsegVN zcl+tX(_z1NPhYNYhBe*q{fjo3hYsu0FM~c$l|fr%?IH} z>9M0OH;M(SqQXYGO>9ZL1FxkYYDz}OTxT?P&5zu_ve500qp!3c!&;QiR zgki{LgjiT>wPnHeQ@=3ko`#Aw4kTzcEe$aqPU^qmARFmInAUS z#%i2I3^}s*8TDxX^ozg#{`cSc+&i(Gsnoi)7@D6*+r+rIvQZPXEvQ6Ju{593RkD0{ zl#^HLT_lrqMBbVv&2}vPA*+7SOQ^e)kGO!E4DtI9 zTPgLzEStkZWmRvt>;B8tb+*UR6v5L3P11(Dy}bvWzyibB1e1gTk#pt&KEVI~E4Zq9 zb`1x9ElaxFG}EEFx_VqvH?jU6;?oix*?iFe&V0~?1ij1eFtq8bwEl_E`5XwDx?!vBC z9;HQMC4E_MJjmUL$#pF=E9!0_Y(jI;9iHhtsM)7W>$fHCw$%(oU^Kq#E9{^J4yvPV zF1Maf9`~vRjCvq;-fBZ2gXg*R>}+sbLenUEV9j%~*+De-yJM$4Q@hsKH_@^8NZ_*p z54kHlbpnZ%eM2;Y!|0vrxN-H;Y*Kop;RQ8*^0!JLG0C^oY0jiDANcq-^$^c)4C}9q zxG&4(?5v$;{ca4MR+_Fgx{zD2IuNF*itt4yT4pPag}~Cf?84Cmw0sn=P31yt5{bU7 zO~66DzAXM=*G{Z5$xUvA~t786vE|V*qId z6tTTomJBA^N9WpnxwSN%DiF)addK+mar{&`&`1&reMkI2VfS(P*4yQkR>4JI@T}YU z&11>YNWQXz7)e_8PFn>Do0f%XzuH0t_77xlXw;@a|J`_be)sY~3E2RUh65H>{pI*(~aZBhJ zh(}=?0~IK0);iy0Q>FBA?@u2mZfHhe%z1P-5bhxs4r6sWCBdGr2N^5#e_OkZI*%B9 z2$IPub^p5$TG}bSDjvKZ+0m_vg+>tuS5AY1Hd;dK9LQ_t;|nRlp07=)R&Bz3P2iQmzH206eeR)4}zE`W~I--H`$|OcX5hWH|p|OL`~J*vros zK#;h0pS)Q{G&{(A=PIRExwN{Bfz>ce4GA*|pDBfxia3`EZLBYEMj>J#rP3&Ld~i4w zTzp=eBdaEGsE3n-5uug-6`w6Lw5FKlt`MrUb^vIkNo!2t@fJb8qKkn4vCK<~-TRXr zAgdkSSY7n%eY|}0Tf;%4YXNyP8 z>e*UfH+a6sL}^_4Q-0>Ucs@DoJ+*tOcpj@a60i4khjz}&9ko=q%??k|R@1TC1%6Sn zh+Ht67P=c`H(bR@L?0~hx<2Ega2YuG&O}3W;6}==`zz@?^xrgt5 z^&3C={qKMD_aFV{8{hxN_kZ;DhlpE6`t8PX>z^vzCc40H>!NZQR-B-C0Ioq$0+Kv{ znMlH+E|hyXvZK>Z0JK`%ZMU385;f%wGTQ$EH|nNV)O}uo4{UORb zYS!-c`4*1~FS}B$-9!sx=QpSPib3FxX^jEy;&>lq7px&IoXjiGOt`o8AUXu<)rfv(Hwwxettp-NcyxAQ*RWgstPM&YIM;TIH zESbVv!_ttPmd6j*z-9quiIm~wqNFN3Zu~Mpdxvd?(W`Zke3&*==PGLNVqEp{C?>ZY zEKz2N(6Z0Gd+sz5VMy2a=oVo=uxST_d+WfE(>DT17k;Fl*hLYdZ-!lP(0eJEF%LP@ z2)*6#@DOV8z&%*)%d0b6MMZv%f^$$1bED^ihsbA~9-r!gc~<1G`8E$8soOBDSUafT zt*NHrHe#v;Of%oRhv2rm*Gf4by&@Eyv=G_jEZVkJ>O*fLlZd35p}1T|dgRk(7=#^g=bf z>$ku5)t~(FkH7f$KmYRmKmOt;zyI^)fjI5nA!J2_t$t`;z<_Hc3y=wuPZRNsw9FjJ zlV1S}SV+tH~rc>CoY5i-m$0O$|nw8YSS>=BX)a`NhPS|D7o zp5FcV1!Ub6cLCEZ$KZzIuy>a+u$_RyfYAPwiKbu;wO2Kx6}Q0*E&<%^vv&kcGRlT6 z^Atm=9D7+#$cWwQ0pKEP#Xp+Pz^D_nPK|Vd&WZ?X_zj$c1Y%nm(!mYasZ5K8A-Ee0e`FLyhLGUGtljlthNNs|p-M-(P}7(S%EO2{CUv9>Kp7b=V)Y zp0sF$TTfKaY4*WbVA)M?u8F)GpL|Z)EvMz~XhCJ46!SUJ)5Q90C!4qv$>S>rtEw~e zh~;{)S#b<+AV~gv&iCBF&%giZFP~Jk;y%AD1*-Tp)2|)_2>v6ZtSDYqih7Xj&jGGhT9UQZAG;g-L?pg;O>rCqu9hGrt?yr z0Y{ zqK4DixcScq!0C_E^Wl;qv#OTSDKQ*hP7M!#&(Tc2-$jdBhVv9jW)aK;Bm!qG4|iM_ z51sOfBOzLa-IpoZtbxXJjuapjI^$X$Gs7REb{)p!=(l|68$YJ8BXAzhJ=O}d0*fT3!{e`iP`I4KjCL{s0=y7e7gJ4R_r{x_ zzHLVyVPmy!?A7J@jN2p-X8zSzzxs_|{O<4n`u8vX{`Wur>G$9G*@N3AH7Et7*>^Pw z4R2IMk2-nb@zFFDw-n_3vc|Z#!p8*0k4*@&k-z=(bpbHHJ<1Hekc||4R^((Ydfkq? zv1A2>5l2&y$Kh^4pN_Jl=m)34S$$|H-0fp5)}>^_G6Tbb)rV;KZNOa5us3IKcNmS^jHE#^^{FNn*?ED!c=jNG)v1%A)+EoP0nfAI4!RZ} z2PnFDOx=}q2qqB)vXr9xJopMLY91Fv*&smyicrFmO1>?x zD`h3sL>+9ZO0V2x!nx~^4zY1yOoVC@_5@_ZnZ>u$YE0@5(1w2q$&W(hoDGJ_AHIUqM_DeeFoaUG`HX+B*p zOKSv|Av*wm4bnw>@{$J?thf z^bCPx4-BA9ms>MAD&&k*BS zMRm@l9ISailC>uZ#zgAw(SV1o;p3J`RHmtwp+$#5t;Vra+(DZsp|#Gv?dgr?jN4?V zGN|3cFlT7=_j-La(NT=NohQfLzhXiQsem{5r(HQ$p%}m9ZKo2He#A}el8(sbs45=p zBY#Nxh9o^r)@PFgfk`k>$3(0SxI8L+joL@NU_|PtXr zX4fNV3ksNWHI)W^tXV&b0BeFQ_gpp#iutRDd&rFE>1pi5TnmQp(%AG{+S&8trIgFZ zk54ZrPi}2$nI%Y(A;{x(Jp8s1_BkxD)0_H9?5v=+RML^CD67lnd~7j7<`Ry2MC2tP z&Is9l9cTs9SFBC-TEk+lnA#(aa1e+qB5?%4>H2)mF~aV;z)F?8p>kZB)jBVk!|F1A zJ}%43q0My}rV4%(&oNU-K8{Zxo_%NGMt_+3lH<~8d}Qa z1Cg;JA|7jz+vwNRZZDU_@>B$KQzzOh7=q=%a_wQR9rSZd+uC|k^|-fq zIsfqEKYjmC-}ve`{`sT7eB)1l`t;Rfy;b8ULxlM{8gJm~oChO06B$fAnubN@ZPU(rB>ua~` zrnn-FMMFIK$Ev(`T#8aXzWZ2Eq+_tBMEwwiTyWN#fN5Uj!|_mWqkvT1LP4{%!#vBq zd6}H3mycf3cT`;T3FWU2<=SmH(B*X^k)Zi*k0~E>ha%p)0t=4DRh$bQEK5~rXBIgT zGtV|QVNg#m<=lz`F%nR;#km23r%&CCRv|l~D^Z8WJUF{sl>SH?lDfq2FG*KP@W%8tBKb*$H>&Bv5ZZUGmKf56i{|^46`G;l8s$p zHq%Ood-P`a!lpp+AE{Bv zSu$T}O*+3h=ZK8KHd+979Pa$%hm+&UZs;JJ`&sYN#hU3h8@DE>O{ZNhT3GU$roH#C zs%-k%R4Kl$ok ze*Uws{^|F>|73c9xX!22vbNzmrljD~*eeGh&|yDGzoZCR$QXJTkfGB+=SuO1h@``M zybWnJvWCra3ZEjA=%Z+XR>xw{ms4iJ++1OoZzaCL_(Y#2sE4R_I@nakH3&uxMh|o> zA=#j@biI%UWgDy)#Oh~$;T4z@XbvctpUr1Iq66KuZ3jGh4~w7~W8 zxlxNcWQ=0*tJQ*E*Oxb^2&)UUd238Ow%Y(SP)1Mb92W|RO_FDc>{r9hT*vBg(aFhP zW4avu2Xb{PP;evh6l|Rsd6?c!Fvq6dxmkwDR3?|(`8?H@X(SqeQbMks z&bd;Lz4d&6l25lBhj))DkQ%8p6Ft+pE)%T@xn=;>PsPVg2fW=b!p%)~Jr}Z5j;^8{ z?8{1pGsfl?wThXJ(;uHd4xSmZPl=##G*B(pF~1U}5rfol zX?y#X-+q`~F1NwE?8)Jx8c!WT>S`3d$*vByrLifasHf}f-8d3d4lzUY?66G0C<4l~ zgg?e5?HkK*-Idt$5CTmJt9>&3L-@2gB!&+t zrRrICGp@zM`uJG&u@-%c1fhr3&u&4k1+&B3;6-gUpP_hLZA1Go&pit3!dkN^UiQyiFddb(AfkM+991#hw!JEjq^ zO38LaaO0SQ_v^N^f`?~BmnrcdMWM26g5rHD+cR4G96;Qsrt_$@L9x~Yj1H}xDswXT zT2-4maeDiHmRm6axLwO!woGx;jtlds8d|-!6<5d}FGSo59>f>JDytdMeInL{_k{ADP;%FNDi=V)lgZ0eDC53x^5Z za8!1|>CLw;`p90~VH&b`m7Q8EW9rD9n{gfx;Syl6`=>CZ?~(yv(C-OM$HpK+YSy5UeqE+RXg&B}|l; z4BIK3%rp_T9{F=_3y!vcVJiho*FJ#cMR7_3lV#<*X0>T=dGsW15knLJEjp0^QkwP^ z0y~oe-%Sa8I`*^;laUxwdqK0FIcjwX2tQSy0-I!ZAHG-7A?3w|l?Hz(AAT^$9@5Fo zuEXHTFz;$UfgSfjEPGua)ye=-@C$KHtt7#vW}QHFN}t{ed`y~OhwG2u z7na1NU#!Sq?E>tKeSO6zI*{fzz$no1PuG)|Gc_q}PH4v9nhnPMeDH~}bpX=gQ*b2d zG=d|2c!;aB-VGa^+8w2QOCY?Qy#QwGOabRXo%|bH2cVsFiY?VZ6pZwp;gP3~$F>Z* zzemi1I%{&OZkoi5Gv=JLM6>g(W9Atdg+K(m`=bPi=zcZ)9S*J2Ec_ZE`HsCA#`6q& zfNeLPCckx}9Nl!Q6529~SP1?C%GjXVoUA%v*D|HNmYNAj;Cv)E9a3%a&YeCy z=5d-!^L&{axp6RjnHT3g?CbP+YQaWtQhACr4;QHP0He-nWR@e!zw{iMe|HzD*vf$I zsO&-3OdD*EkIlGP#JWT4LJ&+BP@iuwh-m+uAga!tqEQovFgY{}UA7Ctuls zn0=^>pU-s%Q0;*HiO@B;2y%$_Iu~9?z(%}QFim1vviiEZVDCN9^0oM`a_cyh%s5yg z#B9ijECw%78MW{e+9nvJNGGmN9-oGfFD1JSca7BpwjpHZkyoHs#7CFL>eAZ}mmJ4Z z8<&|5g>8F#_u(n=Nv=^!qic;CylY&uU3;)MsZAfg^4+URhY{XG-_xny9g(oaI6U6) zJ)*&c(mDl5ZKPYxe(&Mqj*Uk{XZLUKO<-Ypx$!0(#e(Ld6SclYT8BMkB;O83YZudG z(1I=CwmF|WmzUOqJ4GgSEj1FlOhbc8SA=9IP%8KMy?4ddH;}$HR;l-d=SA3~~*K?Z!Qq6a-!|7!DfZg4<3Vu%Bi>R6|#W*E6N;zs1#4}N@Z5u%sACK|v- z3RkG7Q*pT1SV}FYS;FIn?@-_pr7kbq#MQ~o?J7}|Ff88tbbcD*E&^h2y(g(QuRt`? zZGv{Ebj!(Mxob}^D|R}SdRcFeUy9`t$F+)2?H5>^~afLw^b{+Ja?XT#m1uTjJ zQHN~avW!y&=-=$_M9wTnYD;=SY6^w=BDTxf-G+(?J}ZNe<}L+lk6Q52RCC+u;^hMK zN{8f!l0LB{#>*+AT|4f5Zfi6Z@L-&=GK^`}fJP;c^ACP}d%y`9xMAUEnMSD3abIGt zB@y3*>a82+(`j0L@@c5yZkzS4(Si6-v*{D5l zeTw>T^eeP>^|L#7ew?$Z>hQDZrCOp=3U(`GP%x7UbKX7Elp531(^{u_0q3DDgTvV8 zXE>{R8@wXf>_fd(lIhwSgV$(#6ZvC1giRY}KOE?S!Q#T;NTe|t{=KKwOoN{6)*Bpl zru@G7T`DcG4s?VSGX=rr4dk*J-u01Tnr=yhuQk)hZ<~1EM(EvLnovrr$4W|CFB_(; zk&mB;`a-ql>u`AGRhWkm$zN@CLFjak`1(1jvN-yl5gGtU7KuX*H{EVcvQ4e|tPOi_ zZWit7Yjy0V$EwP81zL#XS+5|1biM5uk^xCWbA-B5Hr|+a#>lo0GJ~Wfb`)RnQenEpl?jQI@Rr5Yq!SSb)KGc$w z>D`C9Pmz>bWnWVV%Y^YDl$;0rUu%5jQ?fQ=szruqwAIj88l?mK!b~H_e`(oMP>D?E zh@c~ge9rG2WeQ(umv@J8&k@iM^3m3hhqI*uI5K@Xd)M;at6v%;CQDG$JQ~7ci$lUl zD=*Jl^=(b{i81z77w{LL?$At3jjR~j%2bj4$(Re;QpBpGfkbN07YJ}Oa(xJt2Xsec za`fqPM*Cch>H;Db?z@@5v#Xwo!W|jLUV@@{d7IAAwwqKr};9t2lgsM z*|KF0f?3{vcpSSJOIPi(F~Fdq*$kp(^dyyea=v=+ai+Fa@R7y>^TCEGQCLFNtL)R| zY4OfC5U!(3r_0pv24vRl`Fk%7J9d74dmV<`_2p@9heJJI#;5`!EfC`OR-GvwgNnY_ z`*FX=+Z1J64zSlBU$Uy&*~u%i3s2Uu2Z<`rsLOSyaA{NR+%b|_FGKA8SURN`Xn;ly zFX_|K1nlr=oW#IgzRg-QSWrjpp|IXWm!|c;j|Z^QOcKGwmRK6J{C!<>>>eUe4ap2I zR*FLP4s9{+=|Vp&N+~`3pG z7zxVhCh=U%nFz|&Fvz{Q!}ZfacYS~@W9W?^r5NJNJUE=Ul@d(8S|r687vRAR^9Z+CFV`VU zP{RcX|0oQ0_@cf0?sLgXWn4wR5^_8E>$|7anlICsYFWu8MxPwA(hyO(E$_a0VpcHT zUe3jzzxD2fQ35deR^*Do!c)P)c6wc;MkdX@eCy*vWdgPAS?@i+ZU;R&zs8z}rhV+fE+z#w!EOWhM8iv^~M;hLZ%eqHuT$&ov+i9o!BxZeU>r%Io z9)=Fv%f3KHaM&&Acq;LDN2Zov6`k|=J3|;=K~oZyr&x&DNu5m3#Y7YmV^?jQJP=Y6 za4BivJ$~qzukj7&MNt#=i1 zwha&=ro{cbyVeB4kj0TsM9l*4m|4P=!FDvLO(DoE`B0ld7cgGI(cenQ#y@`Ry7ItQ zIM=C#)gQ8h;#LRk#p1oUXp|hYG*tlMcroG6PEO~*n6~Q^?J73PkUlxD*-K>S?odv! zUSPYcS$F#S59c5wVm+yP7{wEXG z4TcQsegUBAX_eXp0Z3t89a?7B8h?vLg#*At^iS0aF(H}MxK^)E>%?;NMj~q>80~}H z4sr~^1R%|$L6Fc|*aCe#(3axXcfbAmH3)bzw-z~&Y|NO7mOS61vz8|@Vf}GD92s;0 znOhI9AXEgBx3Z5qxno?0LM1v4ez5G2Yaup|KRDk!&-viie6KbVZ~&Tb;`C}ToP8BKbjsnV z`k@i@GYSF@FK2%ronv`2Yxw*gZ90m9NZXPX2MQ2JcXxPtKA)z#sR7@0){e}Xg|u-P zgs~g%Pqt49!VarierJqL#T()$0N8Bn^l{$!xAup7#q78OYwl=w{#f?emLe(cmGxf! z^SO(XZQvshPXwKydSL1-b%`~@cD^DIZ%VMX?hJunq_>8R*~QkfHXrCfdAs*v()J zBq1oiMi1CSnhJE;9eeS!KOA{F>S3TX{XTX+wwidQ-S>7UjaY?hXFR^{KJ<=7TI&3A zKs+S@`Z0Z@@dl05h@NvnVJ-2-S@3I1Ob1a3!5Ci3r%5x->CHD^#&D-iU~pVmmvXq* z=naxn#r^8_V$pLb6}JzH4$#u+BU$dsY2g|LpaD@HMOS`+?m!5Vrn7-|NTb)V(F>3H zaxDkVxj>N;7e=*f9ZDl70G>spI|No_#{INtBC{KYNd8)m_yygsFkRW;pDS$q%mHZh zKcV?nhDu^3c};a5S#XZ74Z|9Ew;=RbT3Tat8fn^60$RsGdA80Ez&ocg=&9l=QI#Mp z>iu3Nw1Eq!$JtX?I1!WJSmlPsN8sfdZ5Znc@w%rsm+XjLxHiveC^;}0bXjTqV`<~8J?d@=uom1 z>NItnH&<_tC2ess|8ULiv?8Avz;l zx|EI!1F=eY2oYgPA~H=5RvKD)`Z(Pk<2YjiGTY;0M?S6BEPHQaEdfwN8duV`t;W{d zRBZLPX&6n2NsM9YqwLJyZaCRy!8LUH-rLevD&Y*XC%rl?qwco!$2cp@57$e2wc=UN zEa0i!acgA2mZ*Z#5g*2JD%Pjb84ku|Qg=mmT?t21WC*$l^t@MBpM!gCZetCI*_Jg| zR?Xk9NP8INuNVTtI+vlwDe-B@{E3o6a=fr-12pvg))3(D(|vfj4BnJ}1s^KDSZa3& z&B6bU*!|F4J?I+LWO6T+OpCF7%FH=z_6aPU>@I3d46ee6I(KKI(ZxE)zS(x0)V#)D zA0E$snu}C!A7~^+S?T@N#~2wc`~D&2pq)of{yp2r{q2&}PHO~brlYw)t5CNM znwXz*AQD1_n4eFH&%v;LlBujKjFuITndhY(#>%xycA_bmd$h807?_n34v?WzvV`Ig z3?^dhSF|FrN+TW}^e8kkQJTwLl$S-neWs@BXC40+Nn@kQZR1Cz#)Y++{UJ?bIKojO z*#_~1n~FULksyP-0>fa3p9Xn+2mmBqvdSaeI_T`{&6GjL(#co)(;WIqML)fLJAHb` zKHIt*UHXyN1MF@#1YJ3XL2tcJ&B7Aoig95l6dP2Y1j| z>dd$?;PMsgMhuB6YqUzy>s?E^fx&zk^rJDC8MQR2P>_C=NJmSKLp`F%hx&;(k%W4KU)b!d_Y;jn8wT3|MZRTO+2NY zM{8%TcXTD*%qanyKRO>QH7y1SgcvUIC?2@_?Ih+xIDUpJx<( zvZu?^Fx9u|12gwR9pJ*`llJayePY<`C7B4k`(1=`_lSmn%PmS79AY_iK@!O+&Bia$ z@1YW|6n3rgRS6)EOhrmb_yi!j%bZn4lC@yhiHUvZ(St1-g=C%HoYUd3_q)p8Du4t^ ztsBOl>aoIG9QSleOAzlg8kMxmI=NUiEpYokS!_xr9fAehDm%&Ja5v)|f+R22Wxdm& zx8oh>tN&BedoO>dqnj6vT%{iZR{jd%I^r$3n7;U02w zA&sRXw-XUocb6%8o!fr7GK08)Wvk>}P zOoLfQNIha#0m_^vj0NIwIjifGLz@kxDo6BXzAX;Z{{zQ{*YkBqm|c_`Yv64tj_k9` z58e$3@Aak>)|3x#zxJK^J~(QA*0*n_R+sUcU;0744=!D9PD70y{3tc8&~PPOGGeZKW+o5skOA(&8VxP_KNV~|jxO;8dKCPecmOfxyK!4pCDbmi;7Sop7 z9Cu%Y%|~f!%1+q5^k8o*S3Cgn(r?RRSa7%L$CQ^JfAiA#U4D)gg!kTE<*lmdYW9pS zpM@5Z_OwogOAvQWnUJ?r4NtU%yqwNmNfm|gyKy;bsGIB`Gc>_M-!*Elcn7;|Kn zW)*N4omenBFQ$}D#k^PTpm~g^LYAkEjo_FkAcUGIWa!mCoCwAzF{M?7GgZeQ$`8eI zN)EkgK}ZmqwjN%o8)>ZMZDb@EH$GcgXYZrkVpe7B`nC+fIIiCHzFXRJ_+S*T@vn6$ zPUyLun-{Ncqs|p9?XXi2YC%dbM$+S6@BE-)@V#9ws zMF(~fwvNby6J^E}3{A*KIKz0oxCbQj5gZkcR<{_jQ)pC@ga(z=<1-X8VxPYhTjll- zfCyc{vh5SdM3~=i<1XdMaUJ}tCp0N-g8^;5ZC}#!Ysk{LxX(oO$g$R~9?vV<{SUk~GL&JV{lD5H;?=9FHVeFmDu`-0KBXd`&}@V4Cdxd&+~l3ZHn1szr3G_j*iQLj@#_kJe@ zX7;yJOx7^@NW@K36tQ32+Xyz5p9j3K4u#w9r=!o;TP;)}J4xu8y1E%;+TB1Vm>gGh z6<@qL=0&0tw{kiaefkzq!<^Ui;|!7^;NZHH7En&R6ZW54&}KB<>NHi6uhLxbtXCgg zvJRonKOPWgf$tMcu~VoqXQO78cXj>R8`3z*OJ$OpDI?(_ziJGF`v-S>Dj>C}=U1e~ z7IEF|QSW;TKXffe7ftlme2o6uhdA3I^)5G@rW~+lq7C0b0f08C4_y%Tm*47bE4yeI zyI|7!%@5ur3+-TJRZ4v|Q^=vdY6HBBP`(QLWE(?(tg32;w>rEB4dcczh%hmq^Oen| zn^%FhVAJQ>LR((0?UinlQB_wQ?TRL*z(UKQ(!J7he24m1>+MpI@1d!H_ezReC{wT~ zztQh(z8aQ@9eS5!yiG8HF` zC?Q6+T(3HU1a-yUmwmk|-fi9W>n@Po6rZ!KGy` z*x3G#fwDWjd7iLk*Wf(5{dr&OGG^>gKg@-OBRP!O2+#^17SCPm|I5{t@HWy^L8p)O zl{w<^Sj2_|0#4xDPk^!kR)7RTfcXEvh^?yEGYD%>$HyGq@2FR=-t9WYBBw2|UWsBh zh*UK@kvg>nt*OKh@2^cWHW{b0=~+H*A0uQC03WdX;!v0?w&HddpI5pm7yW2b-0TaM zs2|0+)I#J+Q{YSj4O<q&M))+B6D`UOYMGJdF(y;g|U`dUCW~o?b4MavNHPjXn2HI(9hTo6T~=gAM2Mnvp;8*ob64KG)Nszt68Vj0Q9(E1@AG3JI-f&6k&6`4lroO z3$b7fw-wpicaiWwaio4vRDJ9YjnIe6q0T3c`h0vO{?n;c{1m*G@9ad{-~^O!`N&4n zuBU5JR~p?F4X^B-!u^O^=))a9>ygx}EZ6=`6*_fr+=aDmqHzL;@B#y;xZsRuaTmYe z-*UY+6wD;TRYx!ENNiy>luAjF7q=p)6zw<<*;tSR@;F`FLvFAkHIR;V6fKuXlKP9iV6yL$Hub4>t~_ zVJo!gZ`YeMQMu_d+yzZ}!gq2ykZcLKE$k@{*^lQ_3T&j1L7rZ}4)+mwm81b+_(v!H z(t*{~0CPUhLyL#$_y77bAjLzt1S(te0SU(HVqP0~g4J`lCcHvIrDv?9P`Fm6dhlDe z?&^f0drt6__LAdiGF#lmjiYO~NyQLGh_R1J!yCI_G@%&bP@$pmSwE4~lMJF6{XT|p zW7ulS47*f&F1FmhTMFqwTf?eQ!ya&KgbTTgXnR>y%>NT3VZ`$P?Z`GYL{Dr0aX^m0 z`8y7_Lf7*yG-n9Dm?|hOjo$hfEb<`N#WNO#SnX-aNa+kB6R3(M36XE5z@HF%h(PF7YT8Tr(nq7YQ%hw^wFs;X8 zZ{3+W8cm6IbhyRcRHd*9o7+I0c_L9fbOzXD%u$kWVH=5 zyqfq1`@^H%sDK?viR3Wa)ZA^JAC+F@0LK#VJH0IG3$`ZvFy5|D$HXHgX*cxQo)L4e z(r6fj-H3L6x!uLv%Q3KY>^7Qww6RGDQ=4Om4?ZOYvrtkWxiagLoP`H1iuOj8{g9(+ znx{sMZy;vk0U}o@%ea=sk@g%TwW{L^S=^|y4q{1$B~he>jva)?(LbQ@OcG_lf6`o{ zSKX5lGwp6*rr4ZBH{v*yl!JPin~xcie@{bnZh5*E4Z;oe^!ijBbp#PN6D6+mXwA|*UdLYDcJYCO&YKf7zXnubwNV>WX zgQBx;pY{qBGkQ^GLapq4*)?>77#oeu0u{tIVpEqJiC!{JcC%R?clWjz`FeiRS{jl{ zO;$d=Ob#IwiMM+}M}dGs0zQN?v=;BX56B+zp1R$9+wq1?VL`D*@U(F zIy(>+l;Z^tZY!BJ1DdsY09KOr19UranE$Z+fSZzdR9p~qlk^ko% zcg~ppxjF93oa8LEZo4`F&zkYWJE} z7D!``)Fp?|u-Rs@K_X`k**FPiL(=7^kd zL^8C;%(JqQ5!9v%>rP{bz|x&BpJtW6w0G-?8jgd^qx!)uT}#_pSW&S@x704+!Ss)@;4>XXaq<2tE2 z*|Jr`Q;Rl>U{kBpBaGM2iLf9c4(kuvr-G}C3OP1X&H&ufl^npHk#B)e1K-zdQ|~WZ=Y3KYW?QD1rnC z5s@-239VjpL_U%$M#G96^LE+e${-g<;fImW8VG z=%R-;CRw4Ok)(NHha}+i8vbra6<=HQY8zk`kJWnV59;obB(CDH{xLgHdysmXAOtM= z)9aUycJGHF@@1RME@dy7LvN$?p$G3(JZ17$Ag(Iz94(_bZQVsEbRvlZ)SY=+51}L0 z=B>#MNPy&&9U45YD;j9vvj<$29V}-LOv2u#4eNa<=W@_&RFbUNQ`0<;k>9cX0+6yz z;&-Y1_>(`E2RNIUQzpe0J#k^zy9_FNL1kQ66D>Y>yGMJHGW1OcSq;j;ZP>o@cL^;A zaYJ{L%u@VZwk~kpNUo`k1rQ7=sskF1Kp#R&4smI*-((`u+J2zMa2G)?7#*8Zf$B}nWr6#At{+3RYXS7~t&*nvSOezX4QzKJK zwo>`0{D7CXG;2~BG7&^oxW{ws90f<_JfTD1#xV!A4*Ay~K76eHj?wjE`z^0U>Y214 zA%Tt(^78gvg{W#RLr%sm^O7Np6B(9@g{A*+Z9Iuws1T*sBE>LJ&WM?$0K5S}9f!Us`j zl#FIS4`X$_IHu}=nRDKir;86Veo$>#Z`V_$^SZsiAHxAa1h{Kp<5Q22(sFqi?bZh0 zHV*FpbUOrlvKd_z_iSg4iZ84SrMJmCf%~D24KWs}-%2!z53{%ZVORjwlw#MUC+ih0 z9STj|27(&hRh<33-$F~)7{?^!vjIq?!be(OLo_x6V81PE-EHHcjZ2{#(&#MM+f1+a zyfW_QTdFOagt)vFV+kpl-sPd(1+?eOE-6szXo4rs6ir@jub5*Vb~@cE*GvUPyJItv zxVko8o-ad#`kG0T*&GS$S|-P8NC(+%&5Bj6rk@53fDKtRfIvOpzPa1yx!tqg8qCy) zSVj-hac#RIxHVDTvHaZLQ$;(K-IiVV=(PizVfZ}zsMP|8EuCDvvrX5@ty#BKBT3LP z!FTR!Qt_q(I>2skdx%6juOoJl#R%_m5h8;XWA zn}O^Hp&ZY%`^HMIU*5h<&Ez^D5+));8y(!bhQY|a#H1|EsKmSv+9L2PK1q|Q%eGqc zZbYz1~z;9CO;{u#}qG3P;#dh6x4#K-)OrGi*cPY;Z)5QuYDiF8WYHDgtt$ zW$0>ZX{mHHgj=&~m-o*R0rxyjQxcYtYeHbI|KU_6ZokhCA6BkWv7iyderv1}KIACO8SYaRFUf*#tj*iEztFo=von(G2;ro|dN2x+QTv@kJ}tHuqh&1{7bYi`(WPGr91TVl_7-uR@Q zZ;V__t@ZPC=Z}|>8Djqk97kJGus}qH*UM0u+6|p(8|IOCS{V}YJ-RAEpRzw;IV}lj z?=)m#@Um!jYtW#CB!S<%<*!ZyJk?#P6vjBX#=;D_vB^Uiyb5I2G1W&eZxJG{0-Jsh zs#*%tz*GwZ>JN>*6Tp~RRx`DITHtW|`kX98C&ognd5;k3@;YPYnBrocZA(E66n=o> zHH{tLChz!hj1Jae!RC@LVH+cv4x&MHe-El6g~m!!j^s^}$;2#@zrQaZCm1U#l*3`+ z%?$pM-zx$J!>f%posZ2Xs*}!-{N>)Y+##Cv^T($y#uid#3@0QS@BsvcS0h5o5OTm<@1yzyVJVh`X5Zklp3^pynDy}GhZ2SH!u#d|<#5LgW(8*~XU!R=#HxwPW`hvW z`Vyy0iFrC7OC6Kbu?g1Br}G*}&P3fv?P8dx6UyY1k45n?Yc2`f3)6RhiGFnH9bJ1UODQl4d)qc z+q>>^OlV7rkoNFiYhEUwQ6i-fB~sJ*k##+UI9`vs_4W5(2H^V}fi8U4Q!e0|3j~rQ;6GJ+P}c5;h&2GF5RXttnx@)f88QGv`Z`v_WP zi_DfGKGM|)n69#}IG!gD&%|~u)ZCH>uHnn&obO`Fk|ircHH`|E{a}z=YU%j;e7P-a z;6%zA83>5DRTl5YA)#2iTa@T1LIaTqc3Xg)1`;kUtq1o2yfv$f!)Lg7`ufB4h!~&k zr))*Vk1>BT`ej6)R2@sH8PG!vwSZcvKC7vmdiNt#e2qMz089}pGV>`}74dqRIe z0In>Rn^n7?4;fh{Brptn@MRw{?T3D7Ax;cG*H5dyaDw%sH%q+HasN`qE1PD5Rv=P ztljAM+?tgo=hs?_$(s6R7l2aC1}B=|q7Gp>PZ^m~LM`$5dGfIm26OCLGZej3J-UFH zX5Ww<%40Fcz8P0HmiQfv13<>OyW-T@vtw3~yG@zNUJz36q9F|0syTL`T+C*!erG}% z)^8nDOm`;`q%eF-T?lf)4U9|Comf1DY7%49eF&MD0X^a};K8Qp%Szem%gxhZBiGm@ z=lVk@jyEVPa;S1swIffk*jXJMkb$;L^+{Sc2lh|@J(98Qg=h-Xj8ar8B>En z=v-DIadgK#)25Ybu!=78HcGn#(af~d*FU|ze%xsNg~xDG*c#a!;(R6|$4?~PnSHRh zkmjuNa4RS+#qsUWUrHzKsQ2$MpQ{bQp_fIIh6>@KJMxWQ>(VmP>k>RsHSNpWX=xOw za50PHi0`WhHB=j$6q%h5!cf#+PGzg8?m|BewfJ>D&(`YOren#@={tNX7$6xcx`r7U zg_L4Mki~&^VV)~XMc^$tzut}sfbmdhNTuyiZnvQ-nfJ?(a8Yv}rUXLfRF~uI)$&h5 zZ3HOcAvLp(2x>1MQ-<-X^Uw$w_&Q9Zs&X*2h>lxYeOge~vj^-uwR^|&>!1I0NsO=J zy5Pt;6T$3uX_>0p&oEe2A`9Dvcv_dGp5}_&)~E33o__rB_rMmp1Us|Ypak5q zo>s;?P;{_TS4G=Kwgk#4{aeF@3UGh}siH^uY_EJ~7?B;uU35%)$bv7}($He~=I19G67Lzb*Ccmz7w zZBjb_=&b`=%UH(i6yJFtJ0V5d`ACTP*vZy5;@L2L+z0Zs`%EcLbRg0MOrHXr7^s8! zYAFq2skJg7E`O?WC|K zJ{ipXw}=EGCt$QGrKJYv+Kjd5h6$2-rfmcLM&HVka1PgN6@_ZK6$kj>u3VprNf>%` zP>4wt*wYrjrMDlRYHGpF;D@Er0lWj9%=o9&$yVgDhS)84AaMXO$wU3e&%YFo6*{cP z1qPcjaznf`%*97cK*_nSKG$K)5D>-(t|8i(7*@89#CE7ci~ zrWEx|IZZvOY)bD8dpeb!I7%FpE6`#IjnGjlqB`91WdM&FhZ(Jb!3_h+@4e2vQ^G8V z-9g_zZ^pvr5Ujf`pD$J0@DaPiT3I z!v;ABRFwwZ_4i+getCHavi8IZw{iFT6sDZYdH!yCAIgcLaF22GIJJjuy54qj9V@5d zl{u4VS9Ma6Z@t~J`Iq25npYI#It}X-0k-!gMl5D?!+Lv}yjAWbin=5PuAD@by0pJK z8&y3FI1q;^VjSlt@QSgK6rG3l?jA$8$;BXxQG$@elpY^k9ZoN=U%vkM<@xh^E16Xl zTU5Lyal@H5?_lH=>t^A{(12=5w(#%jajkpoNkH@0PrXo|}X z6El-5m#2YV`QT5lFXcPeBb2G65zMvov3Q^anjPU=V_V!Zl_p}+=qXrEc4Vlf#(S1E z-0}0A4q<+|csC8DdI8KSmd`KO+H$-fp05RHM69=xfuQ>7axBgXSaO{(k%r zk?WoqwcJU`*d5%x*t>#qLMv+n(lP=>`?Ez_Ifj$aGdqli=;1O7Ge*S1lpPvgZOq% zE8!uxH4g2yJGZuAg7UGjS4QI&xz!|%X|f24IBdP5^|FjvrdNhnr?0@(lzukV?Yn?Y z(HqBlVn97cb#fTFLNUCJ4TtYLgy&!U>vrE&Hu+qXjnmjMvuK+QiMf8f-r~dE`FVB% zodhhE!G9AUS5_Q$8_t%6bcZZgOUsoMG&3#Ofd*d|HM`31u;&a9=606jy58PmNW|s| zBtI>GqIGcb!agqf6)5tq{N<}c39uEqv_J~`T1INtDcffb%g|TSYBTXE~$jf<{CF*BaBLo zP#0;Sw<1eRk=u-^P)*|s@G3_^#Mmprq4U7kajf2(lTX!~hJ`SGFjRFPB~v|qzNEVY zkY%1*45EIn^DM#i>_{(OkJpc51>TybkEihv%GAWg@U4M3A<9CVPM42kf{8D{-dM6} z0ubWzc^y5FgH$-N>EW*V;9kC7{h`)W5<=tvxw^~SkzLG}_cL2L#%V|{QYzvIWlP@> z6Hn7z0;98%BA^i=@d5qEz_$Cy%T0Pl(R)pySIa0$B`3`>9Pnf1?JDqEYoq<)Z@;T3 z&UKtpa5+Z5B^h=r;1OL@2ZBr9bnAB&kiDIBkAu?ENKjH6s`nPK9bb;&TVIxd%y5Sp zBFT80SivqiMunKe@cy>4@Q-hcO$N{wp&-qOGMViJa*A3h5QFK5X`2fkWDnmhny_NG zjnpxlr_U-_s4US-b*(ff~v!#;0Ly>=i=`VZNc)CYG97{?Y20XOj*Qzl!*}p)fh$4Cv!Y! z1R`l*&(_3Y^bDP{wMbxr9|D14-5XNRf{SL8@-(lHIYmO;-)PLu_q&wEXWLbgv9S3; zvdOsRjf-{%w%u@fdR6TE^mHod98gZu%OfH(M5`DPa=xEd&SxS@S1T3IVw-GD_d>v}|@j1IM$8>|PcbY^dc8(-dr5Y{mTwA;Az(-Q7o)ba8Nq646DeSW`=E+@AB_9i#{ zUdzjG|M1;p--mU&%&lc%!5kv*S~#q$_iKv`)5iuAIelCjFXwbj_#($~nWVzGdj2@y zE+eCa+7vVmyq1ekrpz?Up+j2d(aqHz5-%@t!Aa5 zdKW5DM%1<5R9mdQ)xz9gv4)+gh1|Zj=*GkF~5yOPrafOHA zr>Bn}zJC4vcgO74%<{8BuW$9VFvEmbk$r%rq4Nr${Ik@pE668xsi>^8OpfRbqeo$d zdz{yC4*d^AnCfMXoBXf?NWms;r{ibQkyC<3zO|l~7R#Vj46?_%H ze|Cn044v#09v|~qumFx<-lhPv=tv52>=WTspw=0fs7iw2xUO}m0hvXka*#_xegmji_-&RT zY?OtI3WKDFiOrAjh9sHR>N2DR6`VWv`ziL~Lv0-N%*My1moOyN54SNGQRA?cP})?W z{V@hU6J0bt5PhhMi#qpKTM*7b1%3j@_|J4}2pHqCc!{auyKYaHkN5XWLW+TY30|=7ea%)OMJ9k{t82YobLnrWp;ak8?Hb)=M^Pd& zb8LmMfw*C#dth(lH$$7oxl`Mdz6vK$0(v^-=8lvn0f=a(QTRI zgN0c9!)n-(=6D%03(T$DE>CYie*NLg`|I^sBK)7Y7Ti=!EtJP(@C^(T(+`p7TOFuX z4xl)&LtZb^++zbD1V#n4G%$_kB=ObA8mMKZx_X;54_y`f(@jS~{AzPplEY-1JiY(@ zeZuEjY#kfO0fB7bmR8jzD9VSBmEnT3K@rid!?L4=?4(0trgSS1(i_1 z0olCuo3TO6rUq|Dj%92b(*gIldZN5*pv>r_+MXqh+w=#F(bHkTGp#bRc>bAND!BJU6|Mf#izyVu@ zP%OgBWq2!Yu@Hx-ZDwsE4n8SemjVkDpq!tM4yP$i0LcafU3zQW zAqM{FYFcY`_c2(zUg%ZYrndFkVy<3;&v`$B_LXylNQreqHEVGJFE`>HW`5>z zy1cx7{nL+s`uh*Br>S_3uL?XrmnsbFIJ6MudBudJyyD1?f>>_DQge_@K~B^GvXMqv zmz`C6m>(#)P~-q+4t@j`jD$ci)tZQW#&I6ji1>0{k&MqY@c#JqIr{mW(&v|_!3Ps3 z4bX*1!+@T)u`Fd6Kv;DVZ4;gQj$L0`!vz3b+F-+*^tyb6{#f>F4m^BbtZ9KG$S|A= zhR4xIzmkO2Qbk;hhcJP)j4QLj>?%I8oKB_8=P4~y@eRv=zMlNSBMMn-8DJyV1S?)K z$1UU5*M@nBxuxZNME4rPt9dSt6jOh_j<5)+9A_BbVJ!1hp8oK&AC9+a%wTb*I;Oay zP*|6x`SJ9fKv9GaFVj#PWwYwABu-(Q-v0E2e+)9byySPPwbMs)7@L9uBm9~6Y9_+N zP{|b2`#@B`BpbUb`Bzi$lr>Ni=Su=kWFnGVP~2q|Hxe+`n+$K*K%|VO7?hP^`f71T zHns3@t4@W!V}eQ4P=eIr?8teft<;tg$M!GWyM$vSIa8Vgn|ed5z;$7BHSw3gbO`FG z>gw*Y`8x$yD8%;hMg$T2h=|Vdb-sI?pP!n|nvrdlnwjwp7-^Aq%)FADD6_w$=OMKa zcnCYPY_z?ICdHK=mYVL{BL44S#1xo4UE`SuaWonNq&ln)t z34Jm{giR8Adt1GcyYYwB>Gj!2+gwsnR1!Dg$X1pWhS=w513hUe*4p(|Ng_*FYnJF z)qZ~tz_axK#zNk?{>T)k9mn}P5ve`DU#I4xqjatqExL~DJb6oK9n|loRO@x!;FUEx z`0~Sh3D7)LAF&@3q#D>*mcCDfAJE6;u*e8u@sA7w0cZJt?~ zx64DYAM?i;0o5|1PK6VQsVt?8*&m-jhf*Cc2chNDAO6&kKefec^{tSG%+hfXKa0qN zu3ZBUJ`cxw5IpOizMh78@$UF>te7Dl=j+j9LK7TGg|*L~ZOQd`Dv)1Tr`woGGf2LU z=*+LRl#+Y~+cx|8SbP>g*Tr-@pKh09dHUJEe|vuVm<|q~hUsF_fv&*#wy1R#Vz%lUUzv=WEa__6prziq))TYu*nCr30y8 zJa5J5GRh_y7{!*k`5uA`2+mA|HTlK+yYb~u&x?yr-Th)ZMch@$TKRAHF-P{QNE9Kk z_8oD6y(=6-)d*i57gS#`__NzxFMTt}7+_NO302i{qn=_fB5?T`f{wEO7AX^;DXzd zl=_Ly>4#I{$qeV?l%kpu`q8Ltg2`TFU*nrC?~{fr%(T_r($_z{raK(2nzbUw`zqz~ zx0h>$noC_iFAmp0XAj}U2||=$@Bzp^f4z)##pa>CUdbE|In~A-*?9o+YL3<-80Vpk zOG?L&OR1}pO-}7T|MqtyGVNM?UUAGB`r*+N?d5b~^*3bvE5o86{B*2QbJp_dX{bOD zmU&6z;16M(O7_D%NJQ1;O!Ez-=vLh_l{%l7mLpFjkOI(%9kc|!3C6R)njMm*ahQ*{ z={Aqk`yZZ{%f}qu+Vt}2XPbX2|4gD%E1oHaS_#E8%3(F zV66q;&_S5iAPp-KqgpM^W*RyvavS7H{z2#3N~{JZLn*l!!BGQz>Ns9rDyZWRVE;aD zh3XtP3m&?1mSx83W>)ZSzC!L!gm*Ip_>D`Q=79u#*TxaHcN>qB*8{!|{8Prfu*s-a zn&BpZoUX5DuY5-`UozBIqakVA+Q;lj`ph(Odh?hf%^5e&alAiJ3bx5y*=QBPyQZw< zcp4F9&IoDJwK*bC^V3ayKg*0{G+Ry6)APW=5Di_v)<<9zS3F~xPcEk!p-@?f(8Nmq z$KIXna+8!!riw|7>u^h~aQdYNh5+g+=Bi;Fs90Opcf-^Km_(nuz_=vxG{X20VPR>HY+_L zXH_>Aq*AFIwW2XKJ~_8m@5($Q)U<$KZdrre>-Ac4P6?fx)>DV^J zA*U*=3$O;r#nr>Nkx-W_;_8E=LE8A#n=xz0fhNl(__Thn!QEKk>pC;P|1x?_7$?df z?S-3Osdp5fxNoQP*yW$Jk&P*QIt_H_*dPcMcP$!A`_;JQ#zcG3^#}G8(q3sS$NNO; zUW5~nzMKd|JGMZwkqT}isyj;}g98yQz@63vfbkJ!7RI%Tt(VuQ`fV5YVnZ+qMCx`H zeM+DQ^zU1E#Ml?T-7A(SJN%BiHer|Ep;0Dzch}Ca)6p?w=Yz-S%o`~S*w5aSwBs%p zE?!Orp-Slm3o05FP{RYRq+zbQh!mB`@$#o17b~&rZfR=2v|}SJW^Xu_oQSAvcza;y zO|*}EbklX_0t)-oPSl3XRt5vSOW{Xo_$!iY1gcb*-g>D+UX#iPWlFWom+Q^nY0Qqj zLiUBsL^0OK(`BIPL-d0uZI*bhM2WjJb~s31tRwI??#o#F_VFH(R1A8KHfCJ%Ap#|4 z5P^gi18fBaQ$1T)q=65FR%u0Gi=a9tL6k#)v~$g(j@89K9M%z4_3xnXpT0a_Pm4bQ z_Dz*sfBw=jMe7c4W3!!<(FB^^Tro%;NQI1VqdFb}COh3*Y1zTxNT|O>G*&QqAn$r$$7H?!<`0O9Vk9yxy`8UVWv~Z6T3Kb-qOZ7kq7|c;xEpN{ z1nS4pOJBuwTJE<1D{)>B-XT{t-lhsex56MxcHCs6l6yF?)j@NQ?yMD+eF!_m(hLXb z((R-afKad4vy)^k=NDN)d}xKtqFQ9%)|NBrW!ojqV-0L(b}3};am;RN!2Xg9A%6pACR0AJ zOe&lRbF^s zK9?9MI^d+rc^H>9gBEm`>u`O0`|`uzfB)m#%V{pDtmt#2)S@YSk&HtsnKRc-x>a^m z|BHf@AQl{extl8%2qvlvM_91+#UYH;74qjFzf3+i7*CaB2_R#Bvz@*RAysx%xFA>0 zHIVN_indh1vF+{Pp>ginyb{LKc}OVjpMLk}iRwzIN(M-710T**Qv{QWU_wJAIzkRL zM_3^ZZYSUXyH2It2zq%-8Bf4cV$X8(E(MiWl$Wzdo=<4FRmTAkr+I|2PUYpt*#-Fb z1>fSz`_KRO=SwM7vX^;H$&b@?I*pvORbXLV#)ygJ69&7rI<9L$4=awUr811!F>`>) zsRb{qjL2`l`}KzpejKK$u>ZL0Ws3{U3h=7Qk<^gu zQiJv^Xrg<6y)~j4ji?VUp(tgL6xELOcEf9|d~F3_2))eHNwdTf_f}B7-3U%jNN!Hm z?UvitpBz0SmWRvl|MG_)$2>KX1(*Z{4!8Pl7CH4AFO~j6&pdavOlTlF8+8=9RekX^ zyvyaZ+T6o^#ym9-i$h$9lQPz)K;&L06mJf5{0V(XqD7P_Grz{g+Pj&$?Q>|MT6^_U z?am;I)N%ei8bBj#0Gn}@22$AP6cZD+;fmYklq!^1D=u1*%yiNMzK*ZMO7v*AwF%B4 z)yy$vcd`-|$7?K_2dlMnQ+S7T5e$Pi!b&-EdH{{${4$gOk48zL*e&89TGm}R8F-Y+ zQ1arPc?e5d<<{qx(@ z9@yvPM#!TvZ6#PzDgiaPe`riV_!)sceu_i(EE{B$*TW_>**9&lUbhi7EUE`!BGsC_ zcXkl+x-LjsAqK95=i#R#&57{GQ1%hO=6s?+jZgB;%RvgV3x@&)E*qnEy~;KXOId>o zb)74*Nw4#b%>6hHYn$_+MAG@?>FcM59Wm7y>BXwmWS_zuuoZ-0Zzia>RT)+vQfV09 zkLR3{_x)OW&NG*#kvJ2!k||^PAom2UaXcSa7y{MI5P0ukuGFM~;K4ibSqkZUMQ(UX z9F-UYVR2Uy@(o1O;~2&L(ArVs7rk%mBk%gRNHo(Tx4=XsmCLpI)k$HRT)=q(W}skh z!*}tCV)}w*ol%0xY{zf+hcc#NXuV=gYppNv>`XO*%e(UQdIZIa*3Xm>IaVz@$`aBw zfmJ%6zw^z0_xG>wpO>ll$M4TMVJW<9FuW%9;#^%}x>_X9E*+1Ethi!nI|Blz>+{VK zDvGQ}#hhr(aAa(L`Y%`4!sRy76+PYR>DQ>Gkt`p^h6DmiV0VFKHn8F2&EXCI|M!rp zx-EU+vztsjw)L=d``)@$b$4&X1Ss5t^$m{sG6_o)kA|@Wzu-Ey6702l#1u*#HJam=B9NJIeQ*B@@N#^_wz3+vf( z{rrahS&A)s_1@y`>%Am;Jqi`bEyfL=jnj zY8=KSJo)RcMYbF0rry;Cn9?0}CGJ1H#uW*TRkMlyc>1RI2n=sdmUN26roj>0TTFh| zK2kNN9>{E9rI@vcm9qw{Tg*sM%j==GMUPuYD3;8Apnjkq8B?1xL|eu^{?otw=YRg^ zAO6MPq)aAxPa&O~fBCXv`#td57F6G>*DwE;a%(Rd7Ng(l@p38IpWY{V$%s6p;Q_6# z_iOkT*5PLTv3jPM`iTt(u?Tui(vhGOsKS zZ2r2AQNA*mix!WDDqUyvoy$Y_^|Cb&>nI#4{J_6`o2uo+ES1F*s`zh*+sh%D!@sGBV%aUwAh(3T3y-82Y=F8ozcgYN zY|g3>0G!2I5gV_MU?DZ2pnUt#XyxQ=N^Jc2<`s18(f`rSzz0EWY~-MX@C8;VNr{J6 zM{BUg+pP(9VQaHC_szwPSt$zAwlVS`lRJ@Q^Pzgo_?AH6Q?#>$92_=k ztF&@l?{68oK12_+ivUEACL&(x^FEQ2oP1t(WV~D=WBOeEP?`Lb9&o>3x@ab_miQ*re7oS53;b1>B-LXvl|T^?dr!Mm?SM zeY3DJAA)eu$}}XtTXb1u>l+ht>t8Kg;L66=&i=~H{G zb79GMFg~JbEzd>QW|F{yawRL9V_b-9q0p)^M1X&NSc1LBF_>tYGW^Pq*3{t23N=q( zyp>Ml9@V5UnLOG@P!TosXn~z1KqJa6-Hqcsx-RKDE_4;w zCerLEtHdC@K?e7Lx{qI|sKi_e7;r-n6fBSq!2ywk`q{qb&$puWW}H!@k0q4b`-;Kg zNc*PuspKhZxI;kb^8&rMb*&CKLUJBr6XN-CdAr>|EJ$>fIH$|ES3j*$JlpSnE5iWR zf_D`$k7utV#2n0%$ii^7R{VBdokw5Lx9R%vt%z2KizuOEmZB$BxaDnnJf;eY-nXZ9 zE{@K_BtKv&F@5vf@BY!Bmkai*dZ^LAetAR;f~(grU*-fg%Q$X6=8BwrZMCfXVdhA)v^{7 zjL~h-|0_BV;hZ07F$fJ{jL9oex6d)y2>c1Tjn||(9N=a2yT1qigFWXICC(F#d?-&- z5fq{Z-WmsUr4k~FoY8GgWr-m_y?gg6e0`9nE0Qdrcxd3EHYFNE#*!f3ftmtD8^|7+ zt|dr-XPx#gPCz}XU9JV;Gnn@)TAtRoF~G&*G3*(YBOmBNWeOKypFq@y>R&6)jL${K zU#7ZNi}UxIZD?cXoW+`;d4|AOEZ;Sehlh03tUO%tYSaz>c9&@_l@HZ9av+#p7g{A& z49Nk%sBTunU*cm4JvHILhK=-CoirakJ6e>PY~!?l{GRvz`dw*(p4-b0fAlAR@*f{x z@NM-HPbjMwTBzF-=K=_PM1HqU+n^M=YPb&^B=9awaomgKFI#ntVd$z!t0&9JVGy6- zY0%Cl1QO@Uye1qB)J1h#3NDmTrm^5O!klq0l(od~QRzyymN0=nl|06RXqG6ML$iuA zCn1Y}zb%i6*1A6616l(@_sV=3X83?Kp54*!nhK5ov%``5>mqoW-mK%7ld#8P6ak+%kr4{dO{PD#T6`T3wYY z61#Bg45|7f@2#t4F{kRsKl>ahj8P1=tg$!dIb<;%Bh5q$R?O39pG`4RW@JpmrCM7= zT-8r~RHoJBmR4(ior1`zP=0y)hyVP;fBE-6`HSDvuA4EhP0Rfjf@BP`)E=fOJ^6W# z-2Kz)@foBsbCx7Kw9f6@Vdn`$$|3Yb{G1Nb;>jU_?kTT1Qqb1v%0{Ln@zkS3bNOan6H(fUR@Ji7( zT_f`)DG1MRUaMq?8&5K$wROCm3=|wDFu!~o(r{i?{Q6~`z$bT9)Y4fU1z0azjwtWy zrfmmh$^)Phu?7&V)ALijj>@Ql3nl_4++|3Mnf`V|*x1cBlIR(Z>0aLl+IA7nsdrSWKfiqRPyXb0ttI|U+NQpT3S%bOT@hLe?9)&4T4NJ@ zm`Zb`IFfuprb@iOPg+;ZiMPZU6JzZO_Ig1!ffthl$qycg6q~cIaQU`!WeVecx_nPc z%W|8RFTeQ;T)vLC^)M(0eB>+QUu;lJXkhtPIH^6Z1>tPW#Ae9^L@VX`agUBB^5J#< z`KQ?_n6zcyE(st;E*mCcw3?^U{1aRP5MRgJ<2L%V&ddEaR__BiyWS<`#ci4!!R7{u zcOZFU{^c)!n4pB%B4H$~2m~5RiO|dVX@%l3MieZNSZ@1V*lrJC61lp(y)X0BVw>jc zW8a{g!}1qrn8wt=uR+%wp}Fa&2X*eJ64e@8rzAI6E4-_p1RR>KW;o~dnj{PUvBxxN z)P>Hf>GRQ*6VGm?HxKQt#7Z#9v9;m=Tytvn} zY6Oaav-b9AY^(VssDX__6&ajuSlOqPEPOC!_t2}izRRM|ekb-0ZMnZc{_Ma0=fD2q zU;b%+(rGvg&QP)!^`6HzMz>Zq zQ3?%>g8QwLs1H-po$vSJ$08Ha{Fvc_5#964`19}m;51HDJa&ml68u5Hz6ID^1tcY3 z*)tTMR*c9YPGjZbaR5U=yubT&-B5%eUo6X1yhD=WDxm$+@^ZgsO40V~Tv6W5k&Vh+ zoX^uV=34G=Zyy)4Uda*bdacQo<#t7qo2LvJ8_!(1fBE548v^m3faKp*@3&UKFsD1k zZC|frgh>T~4Of7x)hI8U|;fEmv*c=<8vat--aSGVroWJB6u3aOgm%39K%r;m1vUW{rnZ zEk53gu8#v+Jcq&Apfiom=ChKu>Ne_u-k`V3%lqH{(ZBrRAN|dmTL65a>Bex1>K!VJ z!_XN|w|u!&S_E1|6!a_}<>?m5pr?emOB3AuzCwfl1o{29i!Z_U?Fe1kpOQDsePGiW zAI|Grp;+jx^A(Nc6*cuKNaC%mC~QhQffPnD@x}E37jtVRdZR>`^$JgF_OB$G^&``E z`}7`15t6N;Jd>BR&vYsn&)n4V?o-TsJ`QenqJ+T+T!LmDduOtK6_m(b75yRL3fYLn zGfCD8o}{)$>>N@|l)>Nb6$V9W&Z`?MZ|Sp^!-*7ZtL!@1MD`%?OtJlpdwoBff4XFd zb`yA~VVs)}YH;Z#%zH1w=fuQ-T+iBSPKgW+&`4;geR`A3xHm4z${(XuRx8+j7av3O-%luh}C205e#8^1{AB-<2u) zmd9!I@IfpBnJJ~Fu4VslYtRVG0whJ#qvbI=mq);@AyDBT-+uVualmy2xnT7~>gQ#3 z!MhD?hRTdJY-_1oEbBNedE4jc^3uBSIKWOpdNu0l0C~AGt+^%FZdd%GWN^~J=WX~r z_%SrdG2-}kZ?U0@BzFyJ%9g9Ipg~N_ywB9lZPSYW>$dJw-s(AwR70=jxcv;jNod_T z7NZO#FQ27w_jtBmsnKg}O;iZiHTAUo=BEk9N2;P+vMAVTU04lGWhv4y89^aNk+YBT z+7OIWq=m?W+12R$S~Fket@vgtA5Uk){w}E?`9V7FzWXor^KX8ByjW*l&`2RINcUIR5^V6rl@}}+=?YOsUot;-ayKIe*MEY3Ipw! z6sHxzQ5UB(9?_C!FuP_ltp)j#o|^mfm&ttC&_IeIAY+T+nY+HjaHDr27DTEPVDvW}}{ z&|RhaGys7w^Q!yUtrIa+BwU_47|jB(iS7rns$NI^tgNg@HEOJ%9)IxX3-m)HDp=Y3 z8h5vcfT)cqd}&6QSwHtU-ofReV}W`|R6)42XC}IV%{ri)7TW98o>Qy6H~fvK6uNS4 zxTJO2{fq5TSv67pES+8GG-E?WOx$4uZw;#sYHKhwTcCVJy2*<;t$BNL)Qqa;+E`~A zgG|)V(27IGY(;NO;k5B>D_{dDf2W^*bAN@uK`J#RnadygPn#x5H&p)Y_j@s+1u^J> zL#YeG6)*I2kaw*EVVX|HK9@Zsn{?x?Jo!sU@C8kFQ->1~7C!#^%|yoibe^MrX}Zfo ziRXXvmoiVaQw}sShCeX&0fbJmk>DkqQeioWX9|Y`4N5%|?0)5#XgE!#uU%CTAGw*A(8W@?065cUq*kWv-m0S;JA~ zXrt_61@#O95UQszf4wKb>x9c3+(Fk z8tEh>dIAY3+9bh;^7y#B3z=I8f=JVFrU9l#lV9QW5H=HGv&l~z#mG;u{(6sOlnIGu ziz!aihN@{rwhsfc3c7t_#x=O;2-OWSQh-*sEmmZk8)B))un39|sDv+So47ZhG8GVly*OV=H6!0Wo}BRzH9E5TE>bf3yK#c&XuODEl4*R-<*E!4$rJ z{^i4zbKbV;!-o}eIriavyxyl$rrVCJKT@#VOfhv6G!FZv`c^(_ea+}# z0!PTZ6ztYlLD|P!005XiF6qfsw*q+#kUr1BaJZ=B%?ydcfi>6gLd=&H;dmR--+%Q} zae6PY2|}d34P~GjY7oX#`rFu`6ngf`sFxWC;kYMRo@qeW;OsnGa5Y&fo??qETw-*+ zWN{W-?cfD4it>%@-F0ZV;|4DDqrXN#2%LlYvTmlh%FiWYPgy~58!>;mrpp@ zO_)H-w-}lGgvg+>+lqS@L83-*i~`Su6azyi5htXBF6QcBr|pl?n;umwaviqb?1O~? z$V31yvL)j9Rd5Fkj8*VimMMmtgsvF@XJ11^i0`6ZN1s)nGqc0)%|Lksacs)!!b=*r zmkTmHEzAz;fRhQMxB0?s;mLCy;Ct zZxORGbC)f9D>%puMRcp?-k6At_>t*1mA=eoVVpUH2tw^;TW=HHvu|YByxP-;%$v(lt(AHe2uuD{7VDkyCkbZjm{9ekOlgs-QJ>KR4M1Y=B##SqG z`a0qT&hNJ|IQTBay3S*4$P)c@pG#RrPiYAf{&Kw{!C9vqnY7OD@Av!Ltui-W-#%S) zjBUE#rg564d0+N5w~`!ee#hyjUmojty{@2lSBB#(R92UXxwKetL#8zx?f)~TvBc_# z0cYG7Bag|nk1yFMQF_J{--P)KwU%_$;_4PiFD^=~KK-x;D9tN<>r@yeQ6fa@Gt7Wf z0Q1SAIC~JC#dQwPR%nxn)&Ng|ZYtTSkJ1|Cd5Ss#vZ~{&xUYIvKIPVa4zwKWng^Mo z%D+KrXCI)}$Be(CR}auixt{5TIgiF9d=waPybMjuIsEZFHzw#4hby_)ftpqt*jNRz zxo>LN3l3y9j>a~)sZb5#pMg3F&!a;Vqme4UfuQGsDaSnUptyvhBc-xPczW1cwH<+T z<3%o!2lg&V0d)msahwN%oMcR$7kI){S^_El5aAH|dGl+>-82R5xRS`>s2p_O5m0rpC&wIRgQASl{lfcfcapo2l{8Ga?oYSJ)(OXA~q+W-S$IhYXfUd?Le)H9JNuD-)AkDt5 zGrQ5UmM}J(?8tg{E<%Tnr03~E$+a^CKefIHr#PlIgG1!K9qFsG-0OQ$#Ac{?X7w!s zLZ99Z9D#du76fEDH?G{xndBI(+3+0FrRzo1`NN1ZIUID$GtIn+32&;I&{(OHbEJ2bk9Rn1 z!Uh}BW4<9kDBXTR{Qs}%;aHa;_!FxbO+ z%Is^Ox?(19-j}h2Sb)2@AOGWzueoL7@^KoYPjOn|VjvI6L@(*I?NhzboGTX&pzx3) zOt-hk7(aX(-L~B4f__Cn9s%7+!#wxo@h>rEi=wlKb^LYNC(_Mo#onMBCR2DI59@7; z8xe-h!A%stYSTE*Q%uAbN{-lmLZ-6cZnw8DpZ0NHG9}vB`>i~_TxnOCmt`Gq*Bt_( zn4u}gR(+x+Z;W-C0I;Gk?v{RMce>xVcHI~|%+x%#(09((8F!V#c15JTP)gkr?ylN^ zi*=0Q*hKFaNMy?2YOao@PlgEVU)n*E<}s&VA<@e94q)gHRo4hMqI%g|EhD?U{oe0= zNjg@&O9>cX`a0z65*6hPAJhr3pF6XzYnTUZR2%5v@qx;9I+>Q8G_CHb#(>CoS}qpq z<#d$r;1d@?XT=ON4mz1C6TKN`vl#xK!;2!UTGDZ|5q;|C}Lg8V^mx=vob`v zxK8cyM}P9~fAKpnc8o$hf|>oAmAL?*gT!{8Z>89NY~j+ut1>pcS-;zwbEUGyeteUC zGx|blqUeR1@&w zSX@`NS!dA%6dZDaqRkm&7XS&c))GB~qIIo~(5tg}H0qp86dY6i^5X|+{$W$Y^-tEU z7e8hvpKw<>Go#-L=LbSs&GQszI?wQx;8nI5vigv1zX95$Whun z@XSr_WPy`}I13A)pFvp9E(O1Q7{RK;x3j+A;XF+Tco68etf*;<(fl$`|<#(n06m^^Qf4v_i=>`B-9MdAf+vOX#d7_U&frL5u<j-YcPJ~7lJo>KLDGKVC9ZLvg>#oeFYYgw#~=er==o$ z$n&(W(=_4(rl~=w7eR=wuw>6Au4{voJJCv7kAr(T^pJ#7%u4s(?5{O+_1AIHoZ!Fi zbZc-UYGaH$R^oMv41d;^l1kxx*u|Y%b@^y~G={RZ49)*a`?TOLoM;2>ewRzLX@ltDw5nH>PeY*Yf zz-bbr1EyUUCqN0*Jb=p^e|`FL+Cq)85hxzvTBf}=WnlB+X+Yq83LMiQYeVIS0vM^S z5U02?TlKN6mEySl!+U%+npBbt2mz{+DHaHJVi+lXo?^G_V$?@ysX${Mv28dFjSbyC)IUPrWrR}@5c8B1Jhwt!$2?!B634Z2D9L6!M3l|h}P zU>dNKSJpp6{HWyF);SybuNROX63o+VSy1ke!^7CZt;#*!{3rVGoKB<;T|?bTSFU)` zaxL9;Lx_&A6KhWWG}#S@Iy||u^{_wyjtxkFCL986MMVF6MlLzD{pK(J?!W)#j~*|9 zENEL+>?@TMB|!lfx1{F+1-tk#o!IjA*SpmQLP@x&ou!Qb(VZ zjh=RoTEOgoDJ?1*K5A&$*XQt;s{nDs{^{c?%6KQOF*s4fiWE`*Upzx$l> z8gXZ~m5$ER4RjZ9AA)lIBR>VR!-#<0gbw;3^)m(H)?8DqZ7dt^`U9`4Ep9ef^^k`; z@=dhHMXab{f1llJ5VJw}*7|j+fPSEE08jm;PH0{0=vWT~Wtr2*Ye~-ON~?();DZoO zQkzB?8ztr26q3g<(z09&)nozLi0mtz1L6vHLvr_Df7m1UAQePgPIf3V zW{5~+3&zIqS5o)Zno^+`Z{{qN2r@X*bfEmOkff&AS43%l{qVNJ?w9C7rqwSWZLIPA z=O5SUdS8}XOR+V=7&UHCAmo|iSQu)ZrmKum2Wp1jt} zlaBPXycHFyAsiVl&>^kyr}SN4+yVTi+=f?8Kj5+##PL$F5TUnE!L~6K|Cf6I`jkK2 zJ9y#97zx!GgaN&m!W7qnaWA%A1v8A8<*$U10Kd^?W}ZCKf6(%vG^&-ftlM!?QOsfY z;FlccJ;$i?VETdcO4XJ5WP8V<=HN@JW8%FO5A-EwG`{#P9r9~+zYb#|KW4EpR1+BR zLy>x&uEhr5=!8muM{z0dg;E@|_HJ8fRefNvm9hO`er}55;?ep%*H?*1KK=LK{nelR z$NB<@p?{NdUzSQ%xC%|iD$gTHu{cb#U<+l6GKxbq*Y3HaAE3OXuYLSzeHRp+$)VCk zgv>)O@hWkzQM4=$Gf^PQp9GdFb9J%8pTQ%4DfF}1Yz}bou%TI}My3d~6||?YP)Tdc z@%=k8*tO|l69GUL!~%7KcPh8K8y|Tqj`rF}&%ajv}JQ)Se;ex4u{1>jd{ z5GbRGHf~Omfg|$0rYO-=AhrYfL>Wnz=mjBBTh#kJ;*0lBVI50CGA>=ki9Wlyt{JKg z4;E|j=fF7m;c&UCgN7aVySbDnzs6u@md22fkhG3bQzMX3i^D>L_W z4KWwT3dZ^YepxU-nA8OoH}pG7`plW}Zp~?IP2wl9k;aQ0_vP*#>ax()(284=tA58^X5D)BV@$< zbYF-%#Qmo~{~Udr=lh3!i{sQ{$&n#CPq(jM$I5seT?L1tV6buf{wU)N;l()5*K3|0 zw~>gk?)hW7{iQp@$`F5lk3)i|^uaqgqO5q9%w>fFpWK3>0LLOitZBZ&@TG~cD1;wR zM|6Ry;ux{uuD98SEMD@G-N~0QPn}EO!^?cdw$9AbL$hrPUNo6D>4hpJX;$=gnA(>( z5DZaf*-=y-M9R4Y6N(MoHgCXIj@IH4ZEJXCFHFssp2u=0fy%rxrnYS$NCV=sMIQ!| zvzUX8-*|Z{x1|ifO>^ZfkRKmL^QHYJEdv(<$43G=X!OrdwW8bi`g&mQugr4s5O?pi z(Ky{BqP~FV{cr#J5C7w*7aBL7ffqgyT3U`PAeGXu0nPmy@>IeT-Gcy;3O%N%cDXi* ze$f--ljjF{eNRpxxS5Dfb5${n5XZFaNXYmJ@-E;8$c_RYAm4~}3{QaIA`B!nI-L?} z6)}EV#sNE#qK8{XVq#}?Mj*dSCtJQi_~Bs0U>Wtei_yiB(pU7~gl5CH7c4fe%^BfD z4!*bdh;=?iSw=6PW{9Z1rFHZH(4xw8j1DrFamIA4`s7|we4)!jBpH4uBxB;^u@@?R zp75#L=g;HQGyQ#-E8CqoB!77cAjM(={KkmhS9=lMm{eEkZMuTm&wHqdm)@BM6&26n1X9%`GpSr(6f#fpeF#U`5+logR5!1ipK}zBTV+SXx`kEnnQm(K zytP&WMH9~obfwoY)wGE zM}fl~%2j$jX=c*KWOV4VSf(>DPtkjo$jy{6DQ z3*DY7-3kGLmb9aDG{o!It8=licNLHt=i8i!L&-9+CJ1Yx*CCaL`XO`>Mmd&w1vTK5xTo^x$gxq2}14)t?;_8x#ay?E<>3Y zm;vYOQjiy{xBKnw(~{6di^!yhIIR#HkIv0sADfR98;@(D&Ml&m=i_?o*RuqZ%HSXx z=H2KyX;9UPC6QvDlR|GOh0!H7K940=s2+jlAYZLZgv^o_qaD&eL!j|GCm)=ZCD_wht@Z4pX zl&h|k`CkG`%EFqEy%=GZ*`b*d*6UtUA6&$&TOnH%=30`&qJz0$&ejg2Rf@Mvz{&+W zM4+4?tqA8zV<#No2lm0JWq<~tJEyWOn`(alc+ENDjKV`f28vZ@A89aznhpgfx*--)new;!Ew3B0aGVZ|9(FQqc2rJAS1D>C;5A=AeV$W@ zTfDu`DS$Dy`MgZt`8L7BAunS{csVB(H$u<^gxj>X2vr7DXj6s-12_`QU)#KlO{hb4 zgQuOb2jH***Ik#H81BZ|HEnYje&9@_@8dPMQ#D|p8U4A zJmw%-uvTDlau4DI(-F^g`zc?hPPx4$@Ex zu1F?M1tXIByb|0dh8|rR@&gFg3+wfAEQuFf@Ifv=-=J^Sw9U5<^Sn&tige2NIX{{FRHbhTrV zT{EzSIPDGVbE!OospfzD`ya=O0U&D?<1P3+tpV`b}K&L=3`Jsiw<;7WZkt5o6~&4bHk@_@V{YxqS}j zr1aC%j(g>F9D1*O^+U@3$*(4|ULq_a*=>qHFM=cw$*iPJt%lXb}-ALW@U3(D5F zRtI*v+%lQW?MR(3oo2Nyw;XyR-c8^s6eiL(K+ujjla~=-Mde)C7=@$JzSlS%ep*(? zOgP1H+HAqlz8X<=Fc4sTe{7dB75!>8VUlf%P@f zFZ;0blI2U8T96%*G12??B(Ng|mRo7uqZ*IkgQ;8z1?N!qwMod1C=&ACF=JmZL?o1! z1WI8;n&7OoWxKxZcrBE9?8$|mm&AQ9_`8q4XVIl~p5r`qFg|l!m#EjoN3g1*Vz#ITyJPEAG#i|j(ZNzp?GjATwhVJB}>7>{CO}UDQy><*#OY}ldb)E~&Fj8T|P+-UHwl=tg zRc5jhYS%Bn*>c(TitID;cY2$zeRmqmnjKaP@qvrnmoFh|y$m@3pFmX<*L z+edTdKagFnMUg1t=|5zyk!Ct}IApBX`|4bo3cp#0R#N-)k8jb%{hov8gnCeBNS$*% zDw2M=C5s>msR6a`BsT~}7mji3z?4xo1ZVVbKIIlTu=>ffQpI(G<3viIO7%&pDH=97 zKqiSMb0>X6%+ikdTZt^PW*0hZANBufN&cmYIT|Z8w^lDOYE&=-*kZ2*{5F&?z6LBh~fGyGh)^$Ik zK{os`ZW2)tEe1t<99wyO%u#-7U@^|CZ?^|>U~w3L!s5bd?_X{k(Ci4?+$kqyt`0jC zX~~GO!H`7w0>UVmy*c|7k?rS?A8u=DnIWG*E-4@F{yu}MR$^SP>=1vN;hgQ1vwv!O2CL zyz&}iGTto511KV+bk3VHDygo-s4B5fM^}o<4Jr8zxOjR9Fk2Unf(L2n+No zT16(Hd53}ElFBITsWnx|7lhc=MNqn!?ZCU@^5l0-eUP_}&(SG?Brdz5<$!S*nCa4d zA5vdSczv$xT7z!|-&vcR1JH)S_^x0O1JEufh+SP%qF2e%Uq{n}ic;nFY4&L3(G3Dz zF1-LCMp^4ca3+I2)olZ^<2t~X6jpPA#)-(A2HqE1wquJ}qvAY)EC$?Sj_i( z^YmXDzdo|h#l?aUnRsx5SC)TORoIa7&xsUp4)h%4#n4Y^pwwvaNJki`8lzFs(( zvLs{6rS~7cj00bFa^<^~hheYbnDWy#f7D|rrmO9Sz9(amRZ~VQ+6&w$^kvX#4xMxR zhQcuqh(uCp%g*wjxPlyYkZ)JoTM@!68M69)$)RU^0~56MI@Z9CgRUMxo5y9t329b< zf$pJG8gM~&R@Q61T}xL;2ctR3c@)Vl(|bV{{X*1ByR?mNB+%6qh>Iq^h0hs!(n0CfK80^CWre$nrE0GFoBK%TSG)2E^>RW_dAIM z!VSud${DXFcgH1ClBr@a{D!EHSWpCs)XxmDe?(;@RVdl@% zN-Z-r!*p4wy1K@BpIT|_xGIJMu9!bA(^R%LkAQ{O<(6y9>%Q!BhTIqn0ty=_>h5!E zxgf8;@M8Y$w1u;pfToD`?9BF05}|Q&YMd!VX`uoebae)8$-Cb^>kR2d+F;d;L4ZZ@uCjDliX3dO7|T98#n8hOXN%}lDi8(W@$N~ZlFepEVec?{(6OH( z^AtJrOXyv}z6#m4^fyjQ-GbyP?i|*k?Zk0Y3<@+y3<8LHi*Q&TyDYphoiG_yB$jZZ z?Nms015BNmOGo-cPcqMw&G#Jh3+lO^sk$1MF$uBmY?09JyB#gqYr(sx(|QR-t9q@% zAFT;WPlV*xrCbu>Puw)Aeg5eRXn@uT@^i>jQ~L~jp%tXdM79p-0y>bB>NZf{0Gyc5 zZ~L^lQlPd#U)g#Hj5J6{g51tfnjlv*-FO= z58%K_N_(~;U6W%N zG}5<>p1rx?*T{k9@JNFz1zEz7H;$mrmPl4z#=Zh)^a)nwwLk!f79$>IoR;^GOY|A7 z7~f!xIhHbwE!zZ2M$(u!T1s3$E*q>a7($^z+)8zA*^8@N+#h!+8yaM9$a^d7)93rt zIM~u-a76KC9P>OgjUDs#?d|QBr#a?*guEhcEw>HXb4cqnU-vOnNHJyzYB`7O@mO1m##Z{JDY7ok4AtRjl zK<9L?_B#L6!$tmn!d$j?xD@V?W(rZ*?$$kGek5>UB$V~*=fypnu_TdDUB$k8XkS-jRQakT zuaDF-@f?5!m$-t9H@3|qxD74$Mx<-!uf)q}} zPZU!{85uwS>jxby0yU6{z`r)S^-dFshU{odZ+xhJ=*2p=(-ygAnApi;CWq+*hLX8HV^Nu~_vS;se z@ymVm<+`+OoN(JZf4#OkKXS=U`wns<|GW5(~FQ6eB zm$wJpc98nR+W|c`_~d{yF<+PI@#)5X((_^YQI=bF0V6P47kh%$irC8sE`UCUOC0(k z@gIlumi#Y-D5!UvH}1`eQk+AI#nBv2I8cx8{wl*@wxIKp6-v(jzN>6F^e6fa&R>XS zDZ*pF##IfUhCa^WW>>>Sv9Eg*o*#IML)h7P3G1BG#ci5L=1%UhR+FRCY~A}V5((h* z>-aDcEN1^4N>zU!P;PKGZP}#l#}G(s<&lu}1gphv949Q;An)MAD|uNiVBzz{Cxj;I z+Q9rEr`K*bitd9+1qG+;qlWMt?;oe{o2b#doUP5+Q~N4!pdOfPnK);I_?jq-mX6nB zHkRv!cE8zA+&a>a0gpS4pq{kTFp zTVj2@6-Q?RABLF8|f47rHg%h0pQ*k;&2D#)8ndUT-;= zG#!fouijP@{K1?FKhQzj+FB^fFSmOcI6T6kBIW$vu~qYG0M7x!S!6Pr?{Hmm#?FIt z!XXr97X<1y^6QvLfb(rz-?n|NI9ZwsDNkf8Y7h z`W<&2ghN7&(%j66EizYoSYOrgiA zIKR9vE0&@W;H&bIvo$BDhqPvAADsMYVSD;8_2fm#jGiTO-Z=;3 z6%B#YqDSq8u6*Ohj{nZjWk9!Bs?VWvzbd9^pRES!>RoKsYo)OdHma%d<4bNH=0J)I zhIs3B(ykfeY%}5W=^r5$0ft4RRAMLRj6|+fLkuvm*XC0)$>19~9(K7m_O4GyGs{`o zleQ^I=+C7Mfh%m`7rq9z6UlVfx5lYtyiP~vgTE8lEllm3e(e@ zHI85_F|!kq92?;(W6mC}rN};ePRnG$Zomo*yrVP;@F?3$GT*T{ef;I_43ZKrDqz;t zIA-DlB47%SOqatV0A3iFRAY9xU@ismVeJ*X1{qGocL=efE?GASp~qaBHwVll7>SE` zjCEX*?h0Nz^lhP+;#$`Sk?e$@>wCr%J}2y??w$Vd``24FB1Uz=LhktrL0Q()s*dZ! zU@$LLS1reFnO)c@hpM5Bn`5J+z)D7XVz5agn8nH`<$DQO`@5DpD7}_X0;Ynlh>C;< zU~o6iMFT7FBo7x@3M(9b8{0N;1SYb14l>!VaVX0^!fFgAXnt8%ObG&zK!5;koHuz1NEOuAy+kj>U4VjT_W@;uUX-WT_T&6n*m{rYDg zVTzmJyc>PxK#lR5abe=h^6dL>u9T4K8l zm-6;`RV6;uveA`%V2aB|jrT}`kMPFl`5Vvr$af(=^Blg(kIl(#1e3ozkjwX?WguaG2uF znn$*ofMUxVp0hM6iO+^+xclWFZ^V48)r&#-61rHG$t~-uDiGRqt2t5^dMsx}e2(Sd z(xneg`)zvRt6tprzBn}{od+t~B@3^w^_t~EcA-Sqcy9ytb1UxA1T?u)b7w_{n7;D%T{z2pb9qe+ZUO`J1!Z} zoWW6h%oj~$^Bcz$kz_wUvI*|+RmJ7jW1K|BJ%Ch}^oy z@&5Mp(Oh23wt2TP){X$_01wwTf|+@VXralSY{Z_7`@W#Jw{5YF)0)Q%YKA7u4CV1D z>0Xuj(dOea`(EA|`e40hbn3xrF$Bqe1#dE^Ay_9g>!^lF2 zPUwLTGIt~w_O$(_##~Xyy1pWUkMr#@68}=BWr{O!QcSaV-M}K+3$2{#9zxE5+CCB)FpX1yQ^x!qn)=qKFleOBfeW1?VZYA_CgR@M{Xhy5IbSa2$J^`!7FvqCn3gg| z9C3w%!StMkGzDTLhIK@jqI0zk3j}r+Dte$bmX6tH1fw! z%|Rf+gJDA4q8qObIc!Z18E3-v`1~wwm}tm2StNiY?@`+r`v5R$arI<+@hAY#bv4(O&SqBfqW-7zJ0pE%{ zZ7x<1l5cZ3T96(1Cq8uCm#I|5+6Eu-0`V{a?+H4|hH zh0h*#84vL}UWDDYrN}%WO{=@=cO1wy!3b_+!#2 zz+KlV{b!XhCpycA00+RB6K!9N$%dX*{q^sE&fGOTU9MTmI#}aeVGC)d1nY;dm97>- zDv#mOvEZ}O(d@<*p~FmmUmidF-k<*Yqg7;0{St74qXfhkWyt#0WWNO5(SQ(c$2WhB z&@m4NH=Nu6o*wq=6P$p%A`1@=G)VcnXYXhR>k>8D)|~Hwx4Wm;m^uVPUa=ssts>r} zp|kS3GY4h5eE`_trLSt0E@2wD>zoX5#k@$8^X=-DA zsv7{Gac;fqCZSzT>ULrDM^GA8mZ@;a?;A?FlN^UO*MOfqr878z z#3wd{D`wLO8}$fDks@s%02=@T+);10;v8jU?0c>yMD*pHr~UXk zX6NCVaKGp2e#>a0GOGnZRM9J5w`ccg#DJb2Ho_vlyk-%Tb&sbb_hjk+} zgt*@qCBy2#iY~K%xhEyAo#K#Mly3vH-E7^z3MuZ3gR(stf_CXIMg{DJ8^Q~S@;jk! zHlC7idQQu=5m>XEvkR4UV01#VEYz&VkFXueI>wWG)F)%m%m%aDhw*LZuUTSy;%eI8 z1bzyL>A=+tD;3mfY_TM#FKg;oEG7C4du!TTBkxGT*9q^@9QNmcSs;>J^-ImcMj(4rw^p{j zbFQK>*h!?~N^q=OXH28vnjztY&u#byypxt&a`qB_1a0d8d;n!Yn!iItTaSbdMO7uE ztQ+IueRv)8C@phM@DkEWUIQm8#{psi81nrNA{dz&k{w}UZAs?B6FhVa<1aryc*Q8# z(s-dq_hhU9GC%PBOKD73x03h+j8Ks&rC>}GtYkl-#uVe%u(OihFJRLv;x)~C3aT4KxfAi(+CQfUc&N$hAjhjcgPeIxdT z8j;q$Zom-rqOp4nv3|g#-0zvarv}jh(b-bbf@2#jk5l%;@a(QX|2pU9>20WIa0cb1l(L@oE zn(E_jUg{;;uJ_dWoIoU5nzM0*haNd@M_aDMaL}%L7tK@|(RB@+%z;EoHWEWp9{Kvs zqLvuppJCwo zVfGsMI5J}-%3{kaFn0hR#Gp=SXb>u8qx9EXQ-u!_v8ojfoYoz}ek$E>IZ1O~8fYKB z(Pon#JUl)WT9FQx-(J%7v4Y8v*i^JRL_GZm+=m0m2+Q4+#3h`=Agv4Zek{x>5AzNt zKnc_&=EO2ufc~ByMlo*yvnfaO={sDNJaQ5t1J*r+ATW=G_)fm%ex`g-=^;m5TJ5sq zUn(QLL&_9z#IDREdS$JW99Or^dulDPb$;{oA@=O%QZ&4^T%VG68&Fg{*XAp-$(S6a zBGql+Amp~r`xx6g-fsC}qHS!uU>X68q80lN9(i*AiWl0f#luTYP*aZMpk%ba6g zZX=4Btq^Od`TF7BBJ)@978>Xy6~^WnYXH?0)2AQbb1V$Dg;otCbQN*)HP86WnAZ#^ zbiXZ++kU&XnCE4gbD731T0GN?*YI=_HI-!%2RTgu@qCR=fT*`oIj+xVp@>9@t8lHJ zwOG}P5;H6Cc1U74kzhn^19BD0wNWrEaN|i1sU|y`qbf7qg_oa==k?Jke0GxkA-V5T zUJ+c4VZ~9Z3>P}+v!@m%NUQS*6zdGWah$S|H+tZOix5S%h?}p-My+1%oQs@+M#U4L zW{8mh_!LY_WR|z*m+6mx9Xmv8=jL0y&ko3Pu-7Weg4=V>JhsupF|V=vDm&woX=E&B z2&qE@D+2G>IF4m*jraH>G z(pXW0@WUVtmZ!?u#${mMLz2URV3{gSh()^oR0w4(a)h5yrgG)!??PhM|rzP&T zNEodh<`uzn1;D!)$msYEJ!#A6?CYFC>;o|BQbpfjflgT(eX-ou8cG^Y92B>Wd;(0Q zu7S6$GIi`HVCLYq6$w8A?-ta5gWkAcYFx@QLGrD#V+(2f%cTNhp++!Kau}SW<}IRx zz!(Z#-MqXoq^;!JSgvo^G`OKGOA85cv%0d}Z_B(^bm*W|85?5GmZzzZw1BhceVnF@ zw)41#yyxok?d>`?#L;!EzOB;&I}Vo-QxR%6#Pl|qQle%G z3%`Wm_6{C> zjTe8L!Z)Zc%*%mqao2kmS85P$D$Im>b0^9iqaFhf^b)R-sAq-$@^K#br4ZA!=?+jW zY9~z&gU6|W3qkY)M|hd)R8C>r?oO+OmV(VGI~KIm&V+wkf~70 zQlU0oS6imz^2kh}aRgE>!0wvcQN?WXKGJ7&DZjbGfabe|Sqz z&fmZ1nW9`EGn)4MRGmO_NYVhTPleHm7XwO%_5GH8Edb~vn{ogJa;&8l4T@T?6P}%y zxl~TSY$L}p$A-XK3K%G3P8HF+PLHp9DHNa)XU<@#6{NCltC(@Qe|$_EDQoMvww5uz zVp^-u_sLK9D?E#@AD7;*5@+Nxzs(LKym^hE#3^}?up5C1HW&MT9gkm$>QR2^=X2gV zDL#WWNjjIGY))A^DMTF*@&9vpfG7!@pchKi=<@*FOshBFuJVgrUB25oLsCg$M><+@ zjwS}LP}5-{_jga-Px0a)!3on+@$S54FF&1L*FU>FJ!%n4Yrj|7$ zwU-keeSZ>^fa+7YEk+z$>Y(WansTaf^S(_}<@uBW32y;` zZ(CAD>YpyPX{_RS8!v~}E+oJ?Di5SJa6^q-s?jC%^7uAKUR$44AQ+1NF@#dt*dOs0 zkB(y9XkTIUK6UYc@vmPWd2lFJLK};6bC<}9*$_Kp#Y)W7pFZ)0luSlps^3B&e(&?V z;!xvQ9I{aLhLh2x z*miNAfHV_hsX%&Y%~{q75)Xvq#IsYz<+?_UN~^U@xAz%8Bgw5&om|K3^_xl)zZsuR1EK_6$-vHTjGF=2f%C~g+9(^@K75E{; z96%x8lVdripQdi~APw3Eov;`vEAV(9+vb$E(sGxg2L~FLM(b|{1mlUuwUY-mIgiTT^^u9`b1|^3jB(vF_2$;E4T!f2 z+{tOhQGW^yx%qL;K5eaR9yk&ds@$0(q*A>$&pa>BGIrs}dJ8zAKO} zH^tgPN@!xYY10G^V$Z@#$WP|UbV;J>umJ@|1gGXT;Onm~w?uO>ctC-e@Z`}a#x&Xz zMhyCZ0=SI(l;NVVf&V&j9t6}xZO%2p0f(*~13m8@`g|_9f^nAK;|w|ydjaO=JdbVj z$v=Mm`Ms5hUq^P}R^S8i`ybOZk1ghXX(_@h^3zYBZ@Iv@Y(kmP#`hmT-$&4ex0Ts0 z0Eh94iS!LB3$z5UU%nvl)`)MNKJN2Rzb??tYvC7ffRaOzD*2@NTmJF+Hk_Q?gJ&!L zgUWw1<%s;C!5(_yv)g}s=Qt@kZ7a^=yP<)5(%@C+ zI5_6`qA0u#rUlbDbnVGGABU_^fvSK3F*d0$(+XieDaaFlAfjLA+nAWE($E0BORwOM zPImJ5zxjvXOhuvtUkO+BkQD~NQt2P_?KTs=m)sv;Ng+G(Y6hf2kqiD_y4*n za6)$>4MZ(f?KJ|#jM=6=DH|}^Y4#W@<8f#zB4`in>_pcZr16vQ9DZ*@FDPB*s_#ot zS0(X%G4oaxAG?67_8pvCU9gchb=bbA#CdI0+aa=}tHCu8vgOQ(S1C(ks*K&C(KW`baz94Xe$1zfEWlzWw~umB>OAB^OS+Ys}aCzD78|K~x-xF?{~Z zf4s*smN-7{^Zo69zm6r!-XWLu?QO}>x?Sge$MX$7JMDYtPB0fe?g^0846LR0LBsUO z;XTnGCf|JWAOG=#_zU8Pb-TWEwnNw6q~E^2t$+j&f7=7W0g0;kNUbQ-KA3B)11)J) zn?|$X*qbiS1{?BnQ6C>vU5uXUV;(6SK8$a|p;*u+v@hcQyYVrDx^TaW-e#<(t_!iX z2(poNY;^I5XP$h+5H1D3c2gd`kzi!=W<#WStL>YvS+CX3Vg_4|hOYOS%ND2k2Sm&I zwL$Zyr9cvBnpA@zYY`g^o&MpnTnoVrr8zcF7r@%LCwXG{%PSLP(5o)AJdSWLH`&-z zS1QV`K}XkT@g#$+?HT2WcJMWs<=inpj6i&!^-QZ`x2ba~s96dIfB(nN1s^CgbB-0( zL~)kd#pxiPkTi;cA8_f8&o~xK>pj+iNV_31dF0g6AYnnmcW+?00 zXLK^uL$sY3HSO0lYZ&x3N7jsBYBl0Ar%p=}h!RPg@F45A${=m9TV!n<_yl?+AOGq@bIzWL3rf*$p<0ah;j1-=p>Kmf^m^x z4F48f*w(R{B!6(MLb&F|+Pw#zqvxz5HFJvrY;4jlecT3X2RWdk7)W-_X>f^&Zq0uD z^~*FZyZ2@DJaB0cJ?FGXd~|8WYXM?{yn!5D#@jDn8q;yJVRm(Fq)se*ir4#XssZKk z`*NY-Zq708cevfgMCo^}h_e~kL1oJ{-)>{VJRfB7oZ$nkr$p$N6QGP}GveDgfuykI zea@cKCQ4Gn3cB-~$eT?xC0xvG2fRxe-K$Uf{pwm4c==RSm#NrPBgD-xUCwCI0 zvL}_5=N{?Gv?hcra2GDu*#Js>$O+u`yp$?Xum)LH*884}%GG!JxBdyRYn&osaUI2> zjZmGcAN+%eHNmm zH9!ZWN{J)ruD^b29KV!UmL>qOUIiG4nI!A!^s>#M%Zkhc&EG=KnB2?D3v>shj5L)E8F~2TL zjt-%o8xLr;RbtLuWgT!rAOgyA;LwIjx6}}G(iA$f7oB6rG7bA1hCT$e;0C^YAdtzC zIcdX2bYG--#ukwA`Dec200vzI=o>(8Fi&ih@B{ERn_U!SHB@7iOFZp)k+&jpZLT9i zWi5#I8%snAJ1|H;zugfQG2{_DMb24(d>-jJjet0QKJgStM-j(mT<7ZyieVl%@LX0O zQj-JO{nqj_FAL`kwq>ftx?~m1UcXhzP(VY+9=8$BKAaWw@#-=665M4JtXQ2q@PNWb z+ZHQiY-5faB^4WKZyaC==wJnbHxpx^5;$YC>#|HRomj^4?J>d+eYyYen_oVCeJuNR z&Uv{_Kp)zEyOC8N)6e~uCvm(K zYe^zZK9i9J-KLvq!Nuv$1*O^sDzr|#W zAru$tZ?U82903mzB#5b0cM`}`pb$IdoL)LJPWm8R^iRY0``Y0}is?_hh+Hlq!*&4G zokHk_@kwkzl0!uob1!#>!s|{`D>|lI01H16RRR>PTAxC{0saVDFoV1lJaE#s0r^f+ zm$8$U%<^^%&oxKbET*~^e*2>Hw(c{86mxL^H_*1lB(-@( z>n&eDf1TEG%wRL->GpP8uGbmq_V@qCJVUWo06mn3&^s^JWw~7>H8*nu*T>RXlYt|n zL5Mpr-g4U`e&Z7^&hXR|SpmP)x7&FKy6d4qKQaen?>OSH>1fTUQ)984?>>;+DDGkK zVzX;-uvr!IjpA~lp8|In8?{e%lJ5;YzD2rCbDQk68ggU=>An$d|?$9|lnVvG4!0GXb@KImGDP1?hirrA_pfj4MLHD7g| zNhz&KjAl-yMmKtMkKDIzNs7UOBT*;wN zc&Zhb2NP&g!6dK>iD}xw zRSiBkGQQMF1O*8*S(hbZ@0th6qK#9I4EyVHpTPCXBWxSJXOJ!HyyB>8tTZf37^MkD zTdg2Pa7U4vr`m`px5t-HQ>q0NunneX8T655Z)K&M4M@0{F_Af9qAic>`t@&q=cn9a zUDtw++L{s>X9NyLjBJA;{k$*B_3_hNjO(<{?_clJK9%{3!S7RECkTe&)=(NU-gUmd ze|$IVP@}2~u=RQ-C0r}Ihoj=v@Vx)|Z92#g zI88^xwZp@-Yx2Drn@c65 zFb3r-kM!C?i%S<8BDpToJ)4L2ua*%>!8LQ2;pv4$^uDrK)^w~X1lHsuZmbYQspZ3B z<1l?aH=!BA=u6SjOPoI5ZxZnaR_~6QscCkGfEbbN47~l}OJOoiTM-X>QBmX&nGcL3({SlV)T!8Vdg&FLSSXm}?#UlV*fd_{`=i-;^b{RJ5(6teV zg!BGrfpi&8bWlz0T(avw!N(Pp9Ct|@T=oDlsFXS22dq6(YN!xsxcB>P7H9G~`6dX} za(Rv1FV*H+TwH0c}>dBVrz3hCx-5FEG^8q7I8F1+91VA{V1?W~Ydjc2$cfV;(h z5E*zft8mbGk@%n;iF3mSM3aFOIY*#kBpc)mT)3r6!Rn8pImuz}mV#&8KQ1I66ui8W zgAoCodSB4|Z~Ij6WX#BsV?`E?N6quJ0jhvfjV@Yp6!UOD+agD>PiTZ`s1ITz2?}{F zb-lmcfBD_t`BZ6p3hl(y01bPe=NWMn(m9~Mu1wQ(|KU@~*T+6C_bWUa_GKEU>oS&g zpVoB-Fp>A`a^1)I>yK|2;!lvztQu-(+TkbN2ONpzfUcWe%KYgT4fvAQEl_e~Agp1y zL108cE?+$RGWsT!-gQ-(L5K>xF)Dy46%8U4Z2r=9i%JIwDC+K20x$rR^_N7g{d_BE zKj4M2cA)`HBlU5?=%RG^#w64O2JU)HelXnU4zb1gkn*788?O%210_QaPN^>+=UZIG zqUgV43)}lW%HEec&f72d*MkM30cEG0FJY^kop~_2PM05h5vI9y@tal%GdF+I7ijvD z5|zAiBg%;+9~r-X%}+R9s@rs|Oa-@Gc`(N|nRdk-4>x9g-0Ayf5)Ru1-#lkNYpLw0 z6YkmzVN>168oBv8AQp-O9ct=EFDc0fha^&3Jfu>?*|XCyc6|>1mgE6}y0tV6q^c4k z2}v-FR!p%>%W{pj+8Q2(ScOg<_llfgAPVK;*XAVy0|d$e)fU~lIXf_Mxs5ZPYvof} z*0UGwgW0BY?qhLJ3H#~CDaw+1h^&(lT4kDH&cw!oS+8jPct# zZp8IdjmE|iLQ_G73RqmYT-tR+PR2CCSUoxUYKDB>Qy(S7`3De`wMzO!%APs9PXNTdf`}Pc@^8oL&vfQ(e z^Hj#`5`*6gO&l}0XXACsh|MX_`}>Dm4AXUrzU_}&b6^Yma=*`+Fz@ZU?^BBr1i*RR z%JTINkYX+C;||>ScAx5coyR=Q`)!%#`==j1@A>}ay?2}Hv?j?U4AC6|<+Qy#nWx<%@lKLQkS-xL#rT4m0zb8zM2}+U_VPJt>Q=4qv+$H zVtXe4$m8`rD}Mf8uC7G8aU?lPRejrU-p;X4&Cj7!t+1k0Ka_~W`=>;JVxXZUu-6+|uB3H3-5nAEsd z8&9@+-`{;PVub;`1`qHRc`hhvOV$J-1304jrr}4X?!ElEisw8LWSKN=bwvG8V-qjM zk7nCq)ij|9yrgIKils#M8W2H6tfUx49t;n5D%^tB7M4zVsE%R^!^JfYFwOF`7 z6iQ2eXv;ydj}SkXhWywK*AZN-zUKn$NL+JF;G^;%lG5{VH0R**CN577si44>C%*{~ zeagsBNi%6R%M1xl)kv7p+rn&3xnFvMJ&_%*G_PnZme{K2;)tGD@Mx{g^Xgk_MgHb4 z20*V=n?*-RBrMk>uc`TNxa_$@e!PN97)Bt)(*foI)8-J7$b!W?k5wZsa|H=Er(=Sx zRt|0CC-i;qvph z4V>T;riwJV6M5ImzyreozWc$bLjaJaY z9mux{MQWp4znBk$W)W$f$3z>_1T~ovTI%g}(aJ?B`E#!QZ;-; zR^RS4%DXY|DD|Mfs3tp-7)LCdx0f7!&f<{9yjo6$+i0F>@p_&uiO;AkzpbUucg+t#=y|`4QmJIvYA2$~Y9Che~RMhBkTLmduA^f>}IG zG@BL%MF+^-5Zyw&EUi3 zX&V9?iE~XUQ!)(YS*^n`eSG`&F)Z&teT1~XeU7cwWf?N?;(WZkzh17_%XMybIJRvW zhXK-waTUev1{kk(tpj1b>m)&L2ymp<9+9QoFtPy|fAx}qFFtZ}FpYcoc4yJoIdm0^! z9`KnaD^>yMine{Jv@~IJY54b`(Oow69 z*)%BxMv#mJh6>x%W6Sn(ak~BSOs5|GxQ#`ESn-|W9bES*pNk%cHE>AndGNG9{B3&s zHa(%t_Wk{Q=siXoi>rvstaX%M!K6nlGontnE+COjLFAlhT^yL!_~zoAyivTY?PPwA zH*p(*qe!qGYd_#Ywsi88J2-e7rT`6Arjf7l+K70%8|LN2hdJdM)MoVabpvkUa`gnZ z3tSWs4C&e>t2O-5>89bO$Fjl^mf$U5=B8#}aX0eNnQrsii$QBm2WDu>Hq1hT(}}fn z5nWgYJy&{MpOKViKfvs>1GbEok9+!pP5W9`Y{pDE;2lb_M4^cqKy2{4x~B*bp0-6? zeF9>xIYad7FCrbIZ#GSOuW1@1yEr8T{1Q2?(sY;R)@G)-OrSfYuoSO7J=A^h;Fuyoa)U`{{!HY>2EFq}Jw~K^Pv#>9~A-+sE&Y54s? z7gfoeu*iyfbl%po;h$!xz>JpITf(Q)`SLtqIF1)4X%ENYLpO>Bnc(_8Pn+@5 zGj$_z>yD?K71NG8`?^ zcPa4FMvtszPev?9MP|n|!4A4_%eZ<+#al!eA{6X8oK7cpw7AnIg0w~j=kn-yu#)N` z0W5v4{-ici?;)F5U2SSDIyvZC)#%2lIO#`>Wzp$3Z1EK{(sb}Qhv<(`1D(HOWG!y< zyE{6U1HYGH0x}*k49kh(M%EU%=%w{0mQxs>5&7^V!Q6FON?46(5Enh8G?_|CPp6p#67kmlwJWFu1q(L$X@*rU%d_ANdi z7@CP$6ls_Ps8j$fo?mKi0i<2zs&#z*`FVBe@_tEy6D2AdYz?Gb^yE-!E$=^krn+6X zajwI0eSY2MG#tmW%xReR>sH&b9rLhELrd!5*eZLAFelrn#L-j%^6lt$?!r ziQ$ZvM1dQin_OXtyJ*Jd))^Ck#+JN@PX$1~HQOT8jQ|T9vr(f!8AFKMkf$_u;Hht^ zIfg;q*J2;g|Ddn?=$;^!SEt*qS&)GcPrFm~!9j1R;xt{^*zuML-_0LbfzrEFXGy>3 z0OOu}^+cjQA7#+w#LWg@fdyV_Df zNe&taPuFrbEd?AM&r6Ou^d$MX0w)7ZmW=W=>-=3j5(1VKLB5%dO=?X%$hzDI-qqSg zx6+C%XI{TJrP8@Ty*ofa+T2syxAKVZsMb=v04DNjoZJ#i)*yK!PUVy`3l#|TGPd4% zb5uYVNz8m8wri-+kg)|>uRpv1&V`5p@Orym#^L(5H_u+98!vlZ%RDW0#R619q^YEbuP2b-nMxjz$Z(?I9}eLr#39hJRi$4O%Eras>pZK z>sqQI5XN}8KH{mYj+k_QC&$ z6u=A5LBF=iRQCgj&=m0Ul;y6mEctQQpI;L7WT9pco11P$kKcp0)p7kfu?&dw&mXzf z3_goHsetB)ZJ{C1%mYmi#}dCcn|YU(xz}W#d8(M%M!*eI`?@uIiJ4-_<5D@SPv%iV zF_`XR)c^GLwUCNLfgE^sEAAvM9WmjTqW9?$dU;j;YQ$ z7oQta-LZ0za7p8K-N$*Z0|m>&uwSQ?k^2JGO>wQu^}5uCrvMXg&u{@IQ*HWu{xDWa z)EMpC_-frJCZZPh3St~$Up>x_JRZcT85YX8S5XDM>{RP@%N)z*Ix)%h@sS8c-G->C zBqk;m+_thsK#x@X_AJS*P^GotT4zVNjlLV$KZ~s@zI-mqTdepKTCHdBmu2KP!yk=N zw@lwMQ||QRZzGf0+W^PYHdrp}8n`KuWo>Z6_R8suYx^wX!CkOH zWX;k&6HVM4C7<*fJ!g){+h06qM*oiQy!FOxpf3P<=PX@r)9lkQeeR8OIsvXu`-tW= zReCyD?Sf^rEp_I;uG!I?84$cq7c6~qR{dTJb{0>fY zlTlcn#^z7OwyJJI-HHSnqJUOoG-V|J^x#WTOTm&IpFYdI-G?H7&(PTMakR^i{ypLQ2Y&?Z!2s+Qa!dJ!_E`9nfHphRrqh=V|nyfm8WrLgw zqAqWswtY+tg%RD(J@_7hht97@gYjv=$*g}E<9FPD!hsX^K-r<;*2_Wys+g8VIN+7ch<2-|6mgiw2>mkDt zeZ~}uA*DJDb=mh#cZpK~l=CPJE9Pn@8_q@m^`&Jl`k4$ZEb+Rk*Ex&3qdHzi2r`7a zZ<%wf`;%_Tv`vV?u#X-EPgEyCtxz8VSaLvb_Nrh@9(=q<9;9b#z@!>*p=!|=c#L1Q z{Q#_?w_4zh>S8OtnrDw?6UM`^59urxIgd0aO|wH-_}`2&7Pitd_-LG@fJv-A#V36D zEjbPY$5#~S(buk%8Y~|(vQk2WhQup3M+?bd`kW3LAJ^ve&=jrnc*+}GX$ zj8T#FxdsOz+Fhqm;PcEJqPYHXxGs@nJpUKWN}lW~B+Wu>?sMSdnugFT6S{LZ&}KTl z!i_W58cNJU6!+W_aR~v7=2XnH&J=7!lc3*M(lCGEV2;Abg-&xB6wqEAWXU4d+dytS$T*t^A#oh^2 zAqP&cMwsDmTu}w3NKb$sv8u4=XFcIlTf90#DPriFU?0B_y@pb+6)rT<6mT3LYOQGz zo-O9;pCzr1lO4VwFC{6p;KYZ^CAeOoot-xxi1@Nn#z<#|3C`S71KG0JOc=-b zD9%P`1^a??M0U0uG9J6X{DT%!Vva>LkSQ6xg(JRJ-sc$#M3-l8GP)9wBzY*-R0;WG zpL}0ZcC@qM8k#vi0(lyjp%wiR;KK5{Ukhl5kdv&9BC_Tq+!#NeuLI^$(&W)YTnwDp z^?BKwo3F4^k8rsuPYy048KWY&orzd%8ZzA(rpsjvX{e1D?uZfX+cILT1oRNu<#E3* z$ht4@9|L9pP0KVMQwlS1U3})UO?Z9Focc4=d7cL}+6Ec>2^vD=G!XTfS`C9u&&{=iN z)-^Q$A-UVS>3uJX0#EuD*{9>DGYTO%uW+Oc8Ob1GHy*8-dk4E3_VhvYVCi z2qsm&PaVF)MlDUVhYj7(3HCM!?-cRrVUz`0QjzqhAAyJ5XUtpcpKLOo;S--1;jGTZ z5muxC%Hl`Y8+{zTZ#=J|T}T~KV|dhT#irspnol~l%?N&&6z3{Qqn`ss60y<`s0CpvB1dhHr6SVn$xbj5=Mx_q(503BBq94uds zmPhcjPQss@-4b7R~tnYe^&6AsV*Chtrd767m8z~KD4&7VSHnW+I zGijngRy`y-ehNqGo}9JV&W;4#{FZPfuF+KTs?B`o-0Lz*&W#k>>}_j=GeuY)g5D$ zc|>p5b;+xiQ`ai6TOrKRPzDAd`$z^rE0-LtycT+ghD!+7Mq8HIOLpdDnKl6k zO-88=3J=Hdab!f{@LVVfXw{JWe7VZ_(b2rI4Jo7< z!a_#r7;xTcmF79ur@p)_M}?_`&%@ZvSRvE)G3H~;K!w28^=%ySxqt&2zLqsXjyznh z%TnvUk2wI^ExDp)Hcn%m5oN*P&1u}9pZBrSf?+`N%NAO0z!BEA>|;*TK2=PBzYYLA z>c|nq73n*0kCZrO949ZYM(6RtW|GJPT1r#42ke$IP_^$UzbW~oq9dOdtUyx{-yr|c zg%DXR2|c3?X;eLCQX#=>cONd_{Za-7*Qxbul!QnB`O_7QLL*&T{81)kJLN+2Uml4B zl-%Pt=2B_Xu2i+raQJQui3vfDfk!M;md3y=2SiZidgyg%j~-1fJzhuu&}pDm_gnA~ zz1m?t=w@Cl$I&=mmjag&%Et!$vQ{_ zL?dbH&xs5-k%`VEziIpYJN4QgjO_O44Oe;f)c{}qTiRX+5f6hlgM)%kQ#!Y8K3TF)YUF8wRhNePPk#PRnX-m ze;kLUD>pNcJQN-H>8=hYD_SS>G(=ueEV(j=7pt5%vudo-RRhsgyea=_bye#QMSaBW zmbEam&8sXejAEU?{oWcZ z>ZKzx)?CmJgvN26j)uU_<*e0;mlW_b>O8kR9M$JzE%NV{`111`losQFj^8*A$1zs?vsPA8 z3VkO97rWHUJCC$$D@T=9su;6$#?1H>ZPks?ix^dXSPOg1X$)*)=5neyoh4~_`>+pO z{>5@pquF2sAh{_*sX^4OHKDh1;V|Fz^Gf5xtGqnTpw5`oNh)qHT7zDq<${1#h`cV; z{#Gq&ShtEs%mL^T$awK0V#peo-4X?qb*}A}@wu3o=*VHsye#;meDav{C74cGyfufO z|1-MXQbW3|KZNYaUp6(Ed6QW~P2n1%zSEuIsfRXSbJ`rZaUnhb{KL0>T-Ty^avJ;H zo6O`K)L5^PzUP*f3f5-38LO`<6CAhtXgmRm+vnHjPEDZ@4-L4u$7F?VZCKCJl}Hzk zdHjNDaQz&8*O5ObG-O?)gLAAqJ|@>EbhepVH6V7lyV3I&Ttst2>w`iLBWziyz|D!k ziHzHy(}!>KRM9auOj-@ z(iH(_Q8mzc_w?O5H{eIogs3?M7MK=(U0tgEDJ)6Hksu^%8s26UG2z(kM-wR)$f9MV z@6(8~UF}fe8BO#mbT`>x7PJw+N=fR%CdUYA1AC?0HDrwXnl4C|J@2Bt5 z#}Z?kri@B(hG|#m?%!^-L8C^s1I?JvkaMbWW(8F+GkzRFd->bH-+Dg|Er&wAbEv5e zL!GYsoZE1HnFty{Sm7ck#pPPp5<=wtSyFD8r9Rf|33za9bg8L_%MOfj0%uspNU~Ze znbZUqwwI+tB`~~wLvv0ZWye0{@#SM|Ya7yVffdel*+2+hraA*?sB=B8OC7h5&*zsT zVc8g$WtqnD>!1DkXPx)AE!TRyy$mT0`<5`!&LAVF5nd+kZOs_H%=>RfkH&HkPHIVu zIuCeb8xYVGnXN^^Na`>(hUy}gVs}cb0R*9D&Uxz1&5@KNlki|sr*w#ut~oi|^|Z5+ z>5^_7HP>~|@{>=nB#za9XFg;Cjt^2GH1&nKiz*4EQFF02j%hnjn-^*fm^dqOHRiu@ zB!Ch1(3=4Yt^3d!)wYh_a#jncXW<#PvE%ExAOG)Rqk3#BfWZW*nl~G5F@$5BaEeZk zNIURr4gZ@%^*H_6zyIpr|LQ;L7ol`!yn36V1_B5F5fbTIEGi+?f>Rm|=LPc{V^yzJ zSsi7JDOQs$LxNyTMqb!iQDpL7_g=82P1l2LauIk!z;~^PmJUs!#@gSh{Spg@*fxBx zWesSD`2w20>(Oir$1*!J6`|HxtFN$>n@Jk8WLW~3|GL_{k*juZ8E@A?B{aQHuFtJ! zL&>6+2LC56NtSBZ)r@Zd+vmA+SS~R_+@EefuvG(eAr>)Ft#0|4y9hBtfS&{XzP&CI`Sy|%-)m$(I$1FSAYhPn zW&HRYVoRw8$c{>Gv1~v7evIodrV=={$orH%m{^#UT(>1pFUN0#|0CCK16Fz*zLym z;DKoP<*6^UHBt`EZ`{BogVDIToN*Njw}NWGTc;aRZ@G3$JAkcOUoKp>DEfR4VX4f} z`jhc%an`uHckMo1D;(qZ4OvnDUO5JLpJ5PXKSGXteq%%QqEl8}F7t1V2hoy(b0nQe zk~$+5m>&4_)5Wtod-ja|-(i@TY2pk@z)^ula%)#<@DPgiCT&Z$j_$LHrM& z)zJgD6nQOn#&x#5)6gGlGq`!yk`L<8Z$S#saM}k%FPu5TIHnzO>1aU4oX2_q9!NMQ z+~A&lAnHxkC^{Kx9k=Oeq%QTWt^UM;*BTy-$NSxvFY+3D|NB?pgTJ~Pn_W+(=%gA(t@ErA@*uLPmc^L^ff61onT=P_(k z8WSou2-s-Rv9^XxHX{M|Ag7mMi1hQ6`2yx?lyu#53CMd(s{lFb`}+=(?e%j2P_SYn z#byZH$vCE$n{1*!rXy* zj{V~o^VH%6pD~9~g!OR@fbm2-iu05x=E83a1H6_9Uhn3JP4y6N``+LCedg9+aftsk zvTN^4rxwcHo#h^yJDYmZQSEzE^+BJDu~xreseU?&&I;4zc~-7t1lO?Y^@4Ua4c@}A zp$_8S8F9CFiK0%v|7{x|>jZ{PpwkG@z@ zVij{IH{UP*{im%kl}j>7(QgbQu?;KeaGZv~>JprCF9UD|O5G`LC;gdH8qOb!Iw-?} zAZS%}ga>1yweDs6T{0aKBccNag!Fl6Y`%%}H!rDUT2^|%TFyrD!FyFIS5K2da~YTO z(}_0-5us4lOC{$@ARpJ`z*=O%mfwEdAD$fI6aXJce_=z70>IgVt<^;6y;X;H2jFjE z1RU~HBNg|I>XCV#Qu?PTb??$agP+*1~1O48p*{2gOv|C`Cc}H##uh_5*kyE+> zl?w@Ei|R{X*tf!mVQ!nlEDuKmTbe+6Xdft4;yKZ9MSQ5{`_O4aIB7q>eLbFFR!`^a zSR#+4p^wH8D%sTlL9A(f6k*fyjGlh zi*V4fW7s4YTYSp`c6k#NkulXZvo~8YiQCgtV;L>4ylX^n1!FJsso0vcs?^+dc<(C8 z+T?h&+nTpuoAfK!p?ulj-ah8Q8;0|gA7h=P$}YPV)#5mr!SXjaA9~>$dZk3-YN`Wz z!lVch(tG(i>&p|`$HdK%LE)ISYEE6Kx%}Wjf-u>n4MkVO(oZ+?}xP_EOBgA<{Ufk2&f)>R-3 z9#gOpk3gD%^H8FMSjjxnqZQi5)P-ZIj>ZzrYbr%Y&=eqs$V;rt{e9lGWL6X@I;I^` zQUy9Ag}HFy%F}gg#$Q9IXAeEBJ;(Hj^-CqUEt^;gNRkuZ5z-+Zd^Bx_;*RLLH@Rg< zc)M?Fo#-a5OS5=yoU2?6$rT;m*BQJWtQUe(P!+a)Dr#f*9l00s9#5A`wV}g4inLfj zzYjx-@~VK=mU~D&A*%#2DR zEC>pN*EYogMt?mMXwwJW>?b5j;Q*DhW{BLb);K)3w&VqN7uRcXunccb3B%dhk$y8IjM@i^9B)Fd!9M8%;)oOJ`89)b&=Qe5h|M|pI zb8J*B#)P}hl@lVL?57fMt<9LDZbUlOnSgG?|4@9;51X~5|cf(*|(r0fIp{e(?@_8M@`pd`Rqu2nfJ&)#E? zCV#+iF=ii-DJV+J*vN_Sqm$E` z;TMU(ORm{CjN`C;{q@(S*6Z74nZRlrpI`PP(djG=bsjF4X#w>?f!CQXQ8x^6Z{D=b znb5%ILo#a>PXv$HJ7#IZVHKy_E_0C+?>8ez>OEb`PN*!YDqK5zd8OYczw7c5P&!_l zVaqT&KT}5Cak}QAVu`lj&RA{{kkHxixH<9MC08g|a&sq!P|Skb%0l?6M_Gu<$^{WV zRj0!;_Bl2mO98q}a~`b=1EX+d|MCz2^51{;3&!gU z?$MLkpohc~%&Qzf!aO?cmc1#it@oo9)x6_$Xm>$diH3~d&}zn&6mXRo{2yBB1nrvj zkd9Ic6+0m6c2*-PC^r)6;MOYD^hkzb*XQZ7l?PX*%aIEuRkG%H&XQbx0k(EWu}pRB z|HqZXued2IsLVN~V_KfCC9-=g>s(vmJ2A6j#251D!PY9Q*EK3s4B!wv&zI6%K*rpr zxh5e7p3{vwNtI;il^8Hi3^qny7W~3l&47lL;Wx@bF(+_sxJgT;L&2U9iQV-6k*)n{ z8H4tTqhFM|pHw2uRP#zKkR_$%+MXR_qfgs)dVL>}j|OaIoD$v!LT@SoaT!*W(_IL>&Q6ArVJ$Y(*Qp#q^A_d;r5lVAHC=)2W4~VmhI5LMtb1nQf z|Ht?L{#XC~{jc7?(84e?cQdzbaYJ~K=TsDU^O*5#UE|CIRBjhZ8%_kI5y$Q|ROPh& z)e+%k_P2O&QUNFTBsdt6p?eJf^bh~?oB#gX+69j3IHh_vKLAgt`tDQfq)xcI(cM%J z9ZTz8JbXn%3tl(LvErw=Ew{Hh%`6Z(ANnz&Sp;i46*T0=a3#gV2rm3=(|s4Y^KxnB z3Dvp6kcicB^!FIxhc$;7g^6?Nv{m3#<8c)fB6Cw$XsyEk*o_Pq?0|AOv5*{^HT@%J zc;UFEI@kR{%N++5Mw`pymnY8=5QZiPsM<9SvVsfgn65i@zEHs5hFsnK+I$YBDB-~b z;79;ktR5XPF2bPx7%3T+6>*6UsUaPJT_K_=I3Q9#J1bAPXtvq&i%~3A5fDp2n&_?3 z8ICQ3#)-9_I1iYiWFXAgdxUPT&);=zp0Ahu)Rj6kt#80$bMxp@^PN2mpmVBVZ-u;F zwz|DdF}8#eJHA7_qlZHZzAhu71(zygZJ_9)4Tzv5)eaMLOh5tAuMQja0WmH^k#_z3 z`Zfc?1xaGLE{&jtM?K&nLY6;7OF)A|J!rNtk_)!YrA^b^#$^KGcK?_XT^xYSj+giM zYs%NZ`1y4Q!dp|Cp5Lx>T3%mYJ|`>%ltiSue7=27!?cexSbSTk4HBz~p z1aK}V_W=7r`Yx7V z-+%L)fBBamzQnE_qqngeN@^7^aE%VLoXX8G=dQEu6~x)PHUWlZj5b)vt3VJjNpVf9 zqzzoxlbCBF=7eS-$ESzu4?n+8)rFdR8TR%ZyxW<-o4#KJUTm*5bYD2~N$1nVy|=YP zGwnTubCyjRX9K1)xtJ@R% z2+)v|Ts%jC;*cc;W64IAS|=MK+V;xaz?XSUzSmbzwAOL3<|*EH^>WFlDD-rEpyTko zOi6I~cb%aRktz&VKoAQtW;jecTPij3H2dRo1H=S`fr)Temm!z6ceSn$1g)Va4Jj0; z+Lp^c=hP@BW;8D$VVGx}m#XDxML`Yq2@EIF{&}>9O~YBeP1`YndC&@35$PBJ2h?N8 zYXOG4*GLoKSmu471E;n%WVm!ETT=m=4#q-WIr2THxe_EuYyJG3T1qQKFZ;`NX!WQ$ zK-u>B?b|ht@4x>2*UzIuq!!w=PcUM5xz6qpDqt?x5J-#(qlboJ9AVqAT(28|i!@*V z;)i{_ylu5saDS)iP8IUNQleMAAy*s2`Ew9@E9h1w1Q|CjIz>h@H1Q9yA_V-JsOD~Z z7OAfm5Gx);Iei}^lUvP6gcM0Sv|e-8WGaO|mfo4KTgDw53uXE8gNbIrzu=*?utP&qFw%4=y#^4PqKBTD#^y`_Etf^7xmx zFAmN8&hY2E+O}sVOtP%}*rZUqSLZ4r(Y;aFq8I?_uDNcn*{fA)IlO@YcTYtlCpZ9d z>SZuUefOpJbsD+Y$%5LNd@8rC-`2O}5FQ+Sm^J<_`Wu)a^!@C$X)x#i7oNv(_|MrG)neZ`Sd%}&@?R{}-xAgFx1m_WRLLKd`D0@M}ksPL0V$3up zwj!p)K1SKD;mcMbB)`Z6Qhmq7949nPV-bD;zte06J@8Bxc8(80r48zpbK%LN5{0F$9is#T3mE^CEIa_T18NEF)DFxh>D{ zm*uk6>$jgirfs`kk2F_sgh4~ue*W{ne80TyIf&&;ycltIJhput_kI5WAGprr$J_Hh zZP#gBmJuzyO5<-XtC{zzSvF|Al=1{l=8u+30-@*aIzM0Lc+RvfvKrx!DBm=rEd-|= zl@AqUG(=GCFAU)fyiw~nGem2!F&ZNUP+v!ICiQ`_L#USYgAYY$T`+bOsLC3?XF5-1 zV`eDAQM`DoVvS+e=}-AHojoLbC|Agtk;2r*S{)QH&lkoofBj3;{g?0masF~Ax0>EU zfwN<$ATn@r`RysqHLy{h3v}~ppdg=Oh9_}6ZFnPk=7!rT7qv#(XW0TYf|&iMYK?XobgpKxUdf;#r=m7lfiAOh%tI;=fSpn;7u^pdT|kNIXEHzP-dF zYK4opV8APOTCY?eNfdrxtM?Ti+ZcaU=#fonD3!~-X(E{XE!R$#GSzH1OBC`(r5j10Hc_&|z> z^HI$~6>WI3LG~&uY+>L~9$@3liQ2JmH3hh1mPb}2PHK84o4E8<({Mw&-Acmn-Q@Ls z^QO%+zExHq?Q$tD&k48NSPO&f+5iWXxjNJodBs-xl!%4+K8?wTp-RFZnN&k{hTz+1 zm!84OEC`mN4tOSdWbFYAiMjcJu4_#|3_#*tqlX%J2x};%xR|za4Ty{YUEq_mV!Ob3 z_n+RzTt`wGLdBrB1j6ued0p~2O`q>CsXo8IUMA$S z9M(SU-~Rn~|Nfi5{OP@N>_vt)7_^8)uk%#5XZItAk&m7P!%|kwIc`xe4_s;1iz2a=w^kLc$l-W>_7>7<&J*299p?qA%(q~RJ;yZ`>kNtj zQ8eve4Wf8U9Cgz{CDt>O7G?hAl<|`CCT%rsukC?-1cbDI`KSN+r+@p&xO-Q&@l|>Q z#jMXxah8mdPQMV51aq+_pcnd_&dIUs2 zZHSBoa^#rEnyCYwsIyy>J=v2#v)+tYzXW}t}nontR zXSxmO*G|czK`aI2favH~k2JI9u4@y{I(uSE2oZ^yY3^Udqjj5a%j=1YQk z*!c1?g*>-4Ekj15tJYz>{`&V5G{k^2hC0LEe5!4nsD2pM0yrZL%jM4OxV=pESdceQbC}Jzc3EhGp)o`(~GIPf*mCz8l^?6B8Q}oOGvyA|U2{I7ZKGR({q! z)P!Cj(;6Z!5X5x5LlxE(o-#0Srdi4Xp_nJ|dX9SX0w3f_Dri8;HY=COFZPz(qOD`& z=q)Z=5*N~XdXxy0TS1%P`Y%Mq7#!1Ob}Eg}NFZ=U{SZ7Xqt_NXOjbUw#{=W;8FJ6* zVkZ6r{1;Q`G&e%&unxuAJc3|P*uZ)yJ{VC%R*~8xSw|3g@M62IbNJ4s1Zx_FOgTgH z*db4-Q^lecqF+6rV~@20!qSKZ%>#?`2p;Wvcygy7<$xjVSm#WE1o-NmF4C7mDG2I+ zeG?XViInI_X>%rkUE_=7sG#H%5s`EsPtoJ6kJ>@!K!5Se-c_*>O?qBEF;V85%16qR8|<3*rF8Sm~PpSUJm@_F*MDc6#d6?QmPH=pi_x;FP?^fY~Xr2Lh8WLvt&LC^yU`j;ziEBue zx$gA2z|9;m0cQNHgnS7&$CAljh%|P`S&10FGfv|;)c`tK9iK1gUBPCo9x!zfBR3rt z+y}ThK5r=_8%INS^ah z9p0~R9~B%sEhxyMicp2Dm>TejmK_q#&{q5wZxRf9Hl%sgTR!7aVG>^m$N-Sx(fC^t zj30|g&H#M&r`hOmDj0b=TRO(TOZb`ts(W<$ZuXU$rSg=274xe6!uXD~fw3?~&?KLH(;Yk7F;SF*LNQ?A)%qFv+%cPtqV zdgtfaG1$ZhHw=Lh07Delv}%Rc@|Y`6n&=uvr#9u75|(0!I69CG09jBp)xSbfoud&U^> z(YzMr2l>@_Hq<;!=v5EMW8j=fz%5||!TU;G&KqtoGiJZLDIYMFZOa8|T7|H}| z9ujFLn_b@Srpx6?alzS=`sCKYR&8Gj@(oV7Nr99ar5Ok*jrx1K4k;KxGlC@Sxt(-W=Mgi?xX|K^ZMEM%8e`WYxUDHj`BvP4 zD`@4~2vZ)7ncy4ngsn8>X5K*r)5_9j0F3vw*bQ+GS6KaN-*}t0Y)w18Stlquo5I$W z=1r7fIyab78W?QAL&sYhLkGHEK&fJyz0DKa#gw&?V+gT%8u1Z0&0n>&fz_mGrwAXVFBe_uBld|@*#+(s&SAZLx` z;+ww>@6%Unvqfx~dQ$DPZ%x@GK)oVJ!&+Ty=uo_i?iMAoaIpooguE`LkOLAh2b#Tm z(iCcJ4ce9x3s{d@9HMjMEY0u&x_*!Ucxpu-mtUehDyJpOoSz*rBMS4dWPPhMC03@I z0%lG_W`tu_kExSL`$)0_5Fy5gKBvrcFp@7rYaOvcU<#^xPRBLhTI|D-dW@oK3DRET zWCaPLK1{Oz7^s|QWY_)5l1gU4G1VNX1$B|_lvM-Qsl@Y`oe|YSZz)GK==Q(->&erd ziJ<}Kwsc)c>padw0;U(i%P3B*9cUY1eiH+TT1WF-5sHS*uC!0^C6?!}TZ=9Y8PPs$ z`w$SIP1+lBnlne#V*yLkK^4SY8XEd<`#T0-I@nz<6d4>T`NmoG!^VdFBkIN*ZeszqeW~)~P5e<}sbEAHz|J zqH1#p)oN7<^N{D(oqX5vEHQLy8|d12g& zJw(;RQhlj{w|T-cJ_=(Blxf)nXSxVIN;tB5^tWVa0CB>K;#=Js?m)n87Zq}qp<5k| z1x5m4ss^G)thRh=D)AGvT%owq3XYn15lVWO$0K7|u-v+|1m8%sx+J2ouRmrO<);({ znv-Izl_9pk;d8>41mA@0RP!;AoNW*R2T&7B4#~a1RwS52R$E!Awv9#j-S9#y)@kuy=VJeZZgwhqRY1lb-gCCfZSP z6jw{Lkvu`I+FC#(_V^f50+tGy!qIwGgI*8w_$w?anVR+f^Y?FqX9Z{wU`C6OnAJQ@ zVa=<03=~f2BHI&u+5v6w|?(1>grbM|gIlc(Fsn!*YXW!@L zNHp^WYYdtByc`LZ61nBNT$f{<+wlC73N&-k17B^!L}|nLx#Z=tr(8G853ViOIn86u z!!&}j*6KWbT!%DIpO+0;w%P7oulM9gp#(OqwP zOTJ9@t??WwNRU)efLSjoGq5VO*Bj3#?jtrOEr^aGNJYMlK#agfGIDH&^ixY^$(O1@ zyD`aNa;--0d}D@!m+F8FELo?0l?|lNUI%^p7@V;^$S=)W;6|dTpQWSc*H2?f3-$rS4?{Qq`lDmFxQM;bN z;Bn(tAEm=y0}TtnTNO6r3Dg+->r|v_W|DoX6m#J;a2C)L1rj{;IoO_`J4;@tbtrE+ zG8~U;ioNDO2|{=Cj4r*8Ryr8m)D!qLP@mb6{m&9suc7H*0dGDHMc;v_697+#V#GJn zQXum&QURb)E5~A*#_;I5BuhmS9g7U=m}!G7q(G&;5ALqxyHoO{^igUYSLfgY$u_kl zmV)Jsa)~E-Xf)ibN0mQ%uAl*|%+RGEv6-GdXBQzAwDId`?w{__A|JUnq=)wMemubc z*mIItF4S;2zNkAJ)be1BUI~{MK;7kShya$yEz>}9sNT)s<^~zdtUg95OhAt+XyLZt zp6c^6rX)g>R+Nr;fDk@VYqlLZ+IT$br#zG-FgvICDdq;zTBZ-VjOgeKfd|xTz=e37 zhgFO-;DM3lLLSBp>cr~uG$R-Xa%o{&2AME)lA*+Ug<`knb*?$AVHks7D`)k9gfK&K zw!ndGIBMW_U^X_<){%DQa~=0(ZuMBU{qk{ret-M=g1N$Vg1l|0kO;rlHtyGbTc+t) zK7V*$UcX*bhI9gGb8DO@KOD!L>h}KA=TVpEw`HzLu%U@#ej(>R7?dQxZKpIxlA=eW z__HPv>>0WG>v}Z*O&J8>5(}BeM_&CXnLQ}fD2#F~XBLTtN}+>Y2^G;dalC2a5Y7WQ zN9YR4l0bfFyk683w_DZ_fzy9Mqz(E@z|AzXk%1>IhXcahX66v`ZgjoDtw!LrdrDw- zJb$IzTltM}aLHKJfj+Ul@6r*7-r)^eb@&!V<({$iWQv{PSML^=+H@8-0)sR6h;^%?agMbY7f0;q5Hk!ffl1cz6vbgeaF%>g)>jS^038YIk?S$DQD zi#;I9p-h_-V9=6=IkGOGZkL?jXmUCUL8#cau$*<}vPe(km?^C=33FdoT>0c2Yv_VF zkeaMxgM{si0cOg*@;XN}?}!Cp>5clOIaadQ^st ztD_aJ%?0^dYx6P&r|E2tgW9rM3b0l8 z=x4bt1mA__a;yOAFw~4AXu*|(;kZUV14m}61Ws6R1pDS?M5@cwILIjt6E*>6&uK-K zBkc$+C5NGvK>A#+DHC^X4KfH!PkaB1%be>t%6^Q7VQn}DIQWLr5+1KV{`Cb-Fm%C? z`Pc2bP5WgUj{Um7eC|8K^gbQizHigCkK@<3T!L!eEjtDOHIeVz+PwO z2%s6D$~aE@$H#SBjs+-2Q}skNL6@O2L9xeq3)!-`7Nve_2^fVyy$Uj4?QXp}lVj{l z@3VOPYwYCvi7*+mx8${m)IKaJ2je&@{&LIk-m>v(mXovFOHEs6sgI(RH|J)>Q=(NC z8&Ws2ud$WsF^9-N^q?$-Dbln6ndP!QFCLWo6?MI;Bsl4=BTQ zCaVq2TSVnEH@>Uk%Pwbut?(zMq&hOq6f?iH3 zF9ZeH;|flhiUD*fZgW4C@u$Z9v5&L)Irj;|tEiLY5c!P0o zou4bPZLJd}vsb1YG{X06o#)WW9wc@kp+SR<0$2*6+Mf+Xx-YJR=3l)7E-SN2|*eaE@0`bBi|C(BE2v z1!N6=hPr)un8_gwYZNoWlOmk!{xPh+F?2SN%WAEFgU5Zs9Gg37^cZ=y}UUjb*m7 zH*8b@yPR|@0*7C7=>X+{j*d!!tJeO$ctN{S0-a%MrC6CRTV63y=|Q6$TKS|S%;bsG z^FA@AL~LtM%u(h`=-!Hwsa#Z^Jhzav7LcECn;U8;_y6fyV;_0pP#h2fezY7$-F0DX zwkuIl7Y95{47^rbGY3QGflpZ9-bf)9uoQt+Dy|yJV6P*wuMxnxyV!`k>UhYV!b#C* z{StGi62_;Vu={DVpfx8imBEs4%o+8yACJT!j{RI2gzix^Vo0}zVWBjV)0}y?;r{k& zPV}IdI>tw+jvRYxd<~VgMT}}2j$>z!)3>_+WyTh~qOdvOfb&`8-V`tfPP!}cR<)jC zM=TGGU-H}Ue_FbnYGzN*37sasf?NL~49QdS9qB+$5X=@$8(?LF=NQ}VJj%7Apfy0v z?R``)XSx-Rx2KggD&58Rh^V?+^r_1wl zY}X@=fPRPR<9Xo_wf*($%k=sF{JCR0XvYmBBJ4CVi5?G7+mLE6A4eU=aomn!|GaGD zFl|R=hO3L-FdxrGkT63HGtx1k_O@_z+iGcb_6Q;!6iE4aj!pK z3T|P`p0TZSD~zKWlo`$f&kSZH73-a)*>Z3dRDm0fFskr=?xs<7lz*ytbxM*M<}4*T z4YBka0(=}q&ddZ~GF8PE`Mr>R{^Y>v)ZeEnS}KD=QfRJoSo2L=cFQ|^8?Kq+cXwF? zIb}Mx=a?a-mL=*%HfJZzQC%yCFr{)=QSCN8@-Dnn;trbS51;O4;8@y3m+AWTPl-%=o(s$BRNFc)gKbsP8fIHK;fB<2uH1&Zh^6Yy&_l5J;}e;B z(1vy=&%t_~vzAUZcT2Vw*KHQP^$uYS{^jkD|K&H||L0$qT8ZcSs6M4Gny^eg4Y5ld zbdw6AxH*UFE0lGYkrIvY7J{ZOIaw3(HgR@wbx**v`8oG97ge(ficq^*EatUl4j5yn z*=fqP5tRX%Qj7j5Z5Rl z_PsS{*WlDs0NJa+EZ(QNU``@Ke&1Q`8HhLx@W)ukBjG?AEV?2tH+;Vx&{u3GBO%dL z_EPfe*W)R+p|%v*8t>cd3ut^~ZTK|Ib$@>wl|ng;p7?VFlEXhI$+gh)2rauW1-&x=Yk;n})$NE zX|4nP$ZGcF1&;%MqS@{-v@&c{OCQgdZ9zBf*guAx>#_|KMq-i{k;ZMGrhOX0EStv5 zx7TszpowuGMN0#qitBYewq;15*wvvzqA@n|X)ONO^=i+!l2SksW;xES zf2svdDV0VIt3ApLSZ+!-@x)E7;8>qK%rRAf?K%YTCcu4p9^ zkFnu&E-br+Oj>hoP2ylRw!$M24;FJ?Q5Rz@AwChZt&TV2k0{L9olGCFm#VUzG$r%$ z1@)9ChVZ)u6PX^%Y2C#Km-eAQe~Z2g!r_-TjqXPNL|Lf~(GYN?V&E>;IB^0zgb9G) z$FGw+^MtvJlvy+{CoAK_ntO!s11?+2`EQVRSoZ3A55y!IyoZM%a`MDk-mFn|Sgx6f zJyJ2EA8|Z#|G53>zx)z-fAy=kl6ov>wl?%J2d-j;A3{eu=X-zC#S5D@VoW3(k8NOa zB!jouu4ZXe@e~UI1?!LUm#SRwLjLK+*wv0k8&T+y)uy4b3)Fy7#!gu~4bO>@6KuBs~Vkdin9&hW@{xTV44);rKmXfbT(CdvdtA zTyj)j4ww+krc})=z%uv%5md;w#xRaK)4IwdmWOe4ou6C%yo5*BrX%n!_PH+4d(3HN zvRtOm>oC8(ZY!#a?@%&$tYQsy1acrcfL<^3xIG#$iNe(ZCb_<^RbO#czNI3 zT$!Ej`;f5NVcD1I`u6s*j1ydT6AUa4bk3#&IrB2MHf#v62NZ78`1$+4_#7K_!gE?a z_HmdLhwjy*^Qwk6i&qLilr*S(@19O$Is`t%~BLF}2MTMh$q(xRxn%Apa z!1_@!NYrty{3d^hG@35iYmyUJ*kAN8|FID?mtTnf`72Yo? zXg&c(`Cts@y|E48SbagWr&cy&vxaUtxlwgg_OoZfXT{?Jp~&;-4YQ=vlg%@VAr%{E zE_!7Y4fXt}#CHp~y!E$?J~CHD_NIN4q8wu^E~@wsaEG}^$^gDlL=`Nk&9jk$wh`9%Kv^%S#Yv5 za*nyxiTpvWU17@I$*x51v)(#H*2m(zY;|_LUpgeMT9b{e%QxdP$C?9QLf}Yg?H(P8 zD4cAh;=v>#^BB9_0w7cYy&lohEj9~guGm)SUkXWvBu|RUs9KA z%LRaS-L|^U6P9vN3L*)EsBf^7$36}T>x$;Or_{$xp4c#bT#j+8!NPY=vrn&=6lO#+ z0Hp9%80eJ?26{xo3}708xA7&z`10*K!}=zzA;4?{e?pix)p2YHz(-oX{d_SATSd%F z^SDgQFM)E|KDJ@52e`a-+777J#$%d}5t($GrwxLLUN<)9V7mn*4q*;`@_jw)p*LRC@+_wLvy+pKnEXEF(f4<&(|yKZ_`qq zY`AMgvtzt$?%`(ssG|G?LJiM7%TU+{22b6(l*W{(0`yzj8z-#rmm1*e?>m65Vw zYOz~(&mjMZ(tr~_olY1Yk~@P{t9Lo?Q8Myo3TU2>b3T>?U{m`iT*jElEjdG9ZyYu) zT<7Q^@UDngn)9IOW-A04c7RT03h6-SXeWP;Iuxu$&IAU1MDXja22o{z;@l>fQ7hpY zncMSEBR$t>iITi#+-3LW*Wdp##`8D7!f=gw3J)<9A{@T0N)@s5xfLwd;-9d8NPByP zZ>1f#rP}D@@U(SCD|4)M9%0UHWuYzRJTm2*MZ6Xt`bRj=>myYKg-l8rC1cJmfRG)h zeH{6LjbKigK+Hq9f9lp%D4l8BJ%_qs&0WG%2O(SW>fnOnrIDo);g<%Dg8~hbReh`w zH;gIOZsXx{Axz~~Mt|`v9v#rvmB|jTYtrDOhvdJl!w6YwSaEjtOGOO5UWQZ&a_m!l z00fK%XGr)=x}O!ycmr!;`ug*hSI^9|;o4nO3V83?{BaKUylJkrF3;~v4(T}j1Hd7C zh972S#svs%hI2X&A&>h2yL|fS;1M`60^a9nb%E$s@bcC?&PuCuaA5!ucbMmKzbq~1 z`FaH+^7gz;%Qg=CPv4Hvjgqw-)|8gZ zKF-6oAo8}f?b87N#|o_BKn_2C{q?tf`n*ir^<&>I-=Ms{AxZ9J3%MM`k(HpuKmbxm z(>8fo>Zp3BRT#Cjinn)FF<*e|z%#IWicf651z18) zFJLVi=~@F3SDBlJB$|-k%1mIUo#s7QcBwA)TQ(* zh9~K5a+ELr%a8y5yWjohcmMwHfB2=#Ly&yRA+>ZJ5o}G0P?eM#6IRsKh>`(<1{Uj2 zkJ6ABqp<@k)}0uX%y7e;+@qZm8&EIC8#Z|-zJN*Pj8bBjV*0lUzSRQ`_#5pl1Pslc z(+Q%&aE*jECG_$RwGyeNTtEahoc}{sNosU6%?%?=sX14#Pl&FrCak zKCz&D{qtYH?r+c2usuJ2{1SLkH>xNXtSNx=#>cV#m+`bPBL5g7NwmGHabb51vNw9} zo#?KFS$d}%0*q7$TU(Q7O2asZ^J{!tO)R!*Dtc45^#&Q(>@&lyR?&7Gmv)YyAam4e zXxL60jK}ROgCVh(K2PQdcJI46Rgcnf;z+C@S4^OD;A0QcuZvXp*QNH|av2{VOU(p` z9aBA;zBBMD=os@YqVlCbplW&LGR6cmC2&c;&nr$yB)oVIoD>rID6vD(XmY$6S8RGZ z^HP2a#U)xyPDceB-n*hQXs$O-)hR-gsf7t;q+`PN*HttC zy7mUGjOH65^_ha0EYxC z`0wBS=KFvD&42&pV>G_8^O52etoPPU)tX{~SAsH=y*>Id#kj7g&yr#FMBdq5WL+i$ zM^+7@E?7pn7G4|OP2qUX7(Jb4PAG@hv~<`2xG<%NRT~l##ceq>S;N#qyF#kZSw&vU zHiDx#;z=6YVeXAlnjc^pJwJdT;VIJq-)-Eg_YwONyhF)lZEz&a2xx0=0q4bu7>@xv znOOpEVlEi$jjCEfVBS8DAYnsZ4krT=3?Y`28pYa$k)DAs`M90iCZetGRsukWwh08jG? z6p8E0W!oTS zL79xGySFoH0Ybfc0TCj&p$Ig_DG7bInEZb^y2i}~TfZ(dVymS%oriV4r^;xhFS4f* zCE0BSZ5|kjJ-Op!OPQ@CN|d4t^e1{OLoFwZjsjgX+AuxxZy(}0U<7J25eXmV*= zTI9B1IEE#=p#}k?(IkxI6}j{93sWPhwc)liye*w}&OO32k0a|$$Nbolh7BY*PnUoA z-LL-T-+%Y3kCx>8i<_R;o)Yg;^7_%y>ad)e>|n z7gdUopGBFw;l9RwH{KhXdDsv~Q$|M3GS*&SN%UODA0O7{oxbFlv7GX>N7R^{4Qf0U zzyzW2dcP_z~ zc2GMtMxV?4?S~7RUa7U>%34~8!*=9QhdFz24N~k2QQ$Vc0 z102XhDWdup$|!*MraUbz)GeV&GW>$L9+*18+3UwIQS&(Vg^jcA{VzVQfBob8Qm5-O z9M@}|r_0AOEFa4R;9%R2p&l>KORkrFgyju2!^2H7i>%X{c`{ng*|M>dtGE5JSLtk%!m+Ps=lQ>CwLJaMaGB0KkJX3O7o1Nuz zDjijBsVl9KOT;7;GUdG2vr>sdZXHVZV3i+Y9yK?sY!NK9n+3GB+B^Bs5cO@iQB~~; zM3YsAG|DDrH>!R5*fKT&_XcWJZ}vR_YvJ0Ts2o^{Hx-)s9hkYKGH^9YFfmRfOOu^K zGU;>x>LW+q7*X_YE1@GZRaJoEhTY{$7W`#~csJ=a^b>q~@t|auu9VMy6BuUY`Wj2R zehyI_eAj6Xw`GCF`L>!8@F5)6mumqq*Ib&a?{fpsr$b*Unn=uiGwyScq6|PK8;hBp z&Q4N0+nt+Rknz6_T4&J+q}NF#a*{qyjk9ZsCAavd@Npey2{nAZ?%DO{!pCwf+RUhj zc6t9ee*D`%`?G)AbFHOmf11$Vc;djYehQKwuJVBC?e7%vdZE5S{g0Jah0}V zrlp3ls#S%+`G^e!vjvwRE@m{y8_aC2CPakwtw z;i)g7z(gjXsm%Nvx`zW2GjRSws~Nd|DLx#R5e$W84xlW+B#Tf(ShH*!@G}B12EoJm zF#wT)giS8&r9v4o48wN04mp!JoH*7J9ku;qny#N8M@pE}Gu52-x6jM_^F9vC$2N}F z%QWqmeL5yI(XLb7-oJg+dHMX@rfnLh5lL&Gx&cc8@h<#iwHalKrZ z1$2nzr+@m(udhG;<&A5h*RfUWl= z0FWho>eig1wd|Ue?U>W{eAyF`>U9nPKD2Jo7NEE^juz3hpn2+t^|;r{fYm?*;HuW6BaH^*}8%mFsWhN%rP+3jg_ zVYeuIbuHNFeIN2MC3iCuU_xpjZ}Slai011*rR)3ElN&+5@jmBRfb$VYL3m_A%>`6L zC)k%d8g`gp%xy%6gOj%L#BTn>=XxnIx}?rH*~Hw{>@k3ycyHF+Zz1|J>CuG~$M>&Q z#u_mf_2(k(1^S$(mzVL&m(D+ZaWk43^DyM-$TH=!pT?%W;?^1bT{LV=*)J#C^F%TN zdv2bD1>Dg_JJyA&OB`2`c8B&iJ-dU%adfb;WhLsc$AfG4d78*=FtOv=i5`|r^oB_~ zWN>Qrc}{z6@B+>S%#L}#mIt3mrBYfe;3azg&yn$vdxNLQtCc%@nmu#@D&AgnaJ$R- zJ`ySeB6dco$HdST_=U@8DHAEreubRJNDn3LQ`fT>1Bh*iL2iU%+G4&0LD?`}t9$C} zk+B)X(|K4fd&5i#$&8=iP)8m@O&RXD(R0{Zndh8W294om34Iy&Ap^{sV zQk{`aCFW;WM1#K@z#w4x5XEQXaXk({y$!uow4~ojN{j?3n#|4WQ$$s{048rDG3C3m z?v_)qCX>n@tw*7_<`vJd74s11IhP1KG~UEG0L4YKBv=cF*)ULN52f?`aGG{{*Gnc} z;4Wq8bY8Zit{Ks9R>MPP#EJMELF;fJYCY?wUKCf$#ncBA5~TPlx`~wzojZ;kjb~!Y zDp`KZ_%|BM&ks`;Rx5WPCcESr4bzbdo@&AQin}LIpPQNd;Qj1PMK!jtIL=eT^29Ym zyJth0_&Vcj9@a z18(QW<;~QYw1YffWXvIA7I6TFH9ByuDpGi=9YOa(QcPy>V`u7QfdC4v>RHfq^AV(? zho?^3-ALeoilcyI)r(VMe3x@L_ucsO&zo{CS*}UCs8}tQ*C{ljtO&tQ#7*->Kj)mtd5mlQ z$~a9Hgowx|hr(pUk#agiwYzW(tI%ZI)Y)?scU35kOs15@lmxb}`Cch$wBzP(p8&C- zVfBN#V~F_`YEiHn%(B}>_3Luz#mmJ6!3Ma&!4!ENh5|^D+p(0DU2%NtN|E!!cTU_T zmZt7}$ojkFf=ZcWgEAbsGl&McXwlb$57ye-D-4MMMbtY#Kaa(H4MML|$FtKCPQSrC zvh=puCBVfp4>E@NIA*!OgmK2KS(ve;X<3e@Q)gEj4^8M#K5Aq(%k~r3^HX_d;>l<+ z+k0pb_y9B(iPdyxo52blVQTue47z3h%4lpRM9N&Zp&ko9!LX)rM)HD zP@Z5~uCXYPsTy4X(VgUOyg#lg?zlf{$LVVCNPKtVj)MY^Uol4ZJf#opeDEF6^f19H z65V4&nPX(e+syg4px(zEQDW$i!(~zxg&Ta>#ufd?o&-4XA;67lykD$0l!yK8TJS|B z_SkT+Kpj1u)k<7FC!^#FTQ4%4LxwFG6Y&Z%0>-YD+(N5k#RQ9t2@$9LE$C_2mnBA+ zmicvjzXXe_V_idq_+ePa3Kc^_Vw>>c;|K;WI0*YE`fXwO{6w029Ds4_^@ZML+vf&J z$2O58meR68e)jSC{IOp@zcTO+AD87AYCV=ZUYC?EKYd-=yj(6zC9Prv;;}6dUVOg3 zy?y=pf#CKy8?`l(IYNQe%^)g9xhSXS7bG_7#XrWO7AC5SA9x7cllGIb@2)4qhl!ud zm9`^4t1h`y7NGda_mio{Myhw#Ot&IdS%fktA%PN8Nki{WF=mu`Hn;bbzW)9>Gf9cQ5~GP3pRx`;z%`K%J2Ny8q7U~5$HJx-t392+p+aZd;mxG-7`wu-V0P5ab5EX8^#S{&OVl{WMBXjJ!giRN`}kKemKxBoUc&*0-fswZpOlgBUR@xX!R+I0kTYuh((8ynX%pylVnfzOc85yhxlbNa-cji7+@6yYpWlpTwuq9hZ1%`xkf;?0i1L#(QLop47nj<29s zbHrp3p|Ix@nl8km#Ph93fWoDMr;%Y#5@=%OdHRWVG6wn#1<9QrBUoGuGgW5>GYis5 z*JMVRBq|1Hue8!jZ8!(V+SbeSVI7yjhvto7hFQXWmtUSo&ku19cuzbp4i{)jLqo!8 z%g&3o*&*K~6eiDd3DW{0Cq4Q=l+)wVKOr1TfsjFVG6fO&90{yYUtgDIuJeX>c(Yaw zK_2lEGVm~oljB9i3S~D&TJ(y!4F5ybl_)ooY*o3^n%p`UY710FSb?Ezm~J+;;Q_%G z>;y#c|9=DLoLe^Ny_xCuB9%&2H*cPMmi4|4`#-!6zn~3YJlfpemk`$xXmomZ&xn(f zmnHLkcy4`(6@I+g@_uSUxUeY5S4L8dEhB!N-j5+OfYNzDNPIVgZx9)xQsqJeG zv>dKLbg4X^jsj7!cZ_)SkpRb0*6)A%z9JEAK?$Gu%P;q_L|Ekh`eQFXwQ-z*@FHj! zNJfoxURc+u#@M#k`+R^Nh5|Z&yu7{K9=F@;+kM||_g{bAd+F;o!yxDAFr!3kz5V=? z_l6+0{bk>Ne&71-`^%1}*w*>&{jpzk5y6d({h)NJhP_(`EHJbyLl~cVA9*VMpHrc; zE$Mo~z^olxhJjcd2X0FugT?3oK4s(Snz-GdTZ?U9f;t0`Y}I)fvkJ@>434T(R=2~Q zkWJN}c?a^r@fqr(_(%Er3mmyZa%z!zfS;_cxQ+f)w5c`2mB>sM&pjT0T#bK@B^ey) zvOGh1j80)+a;T`)seqqHZqF@r#YU0pXfXHI;GIpDJtQeshvzB-wGE(EYKNGa&^Bik z^D|D994dJT8Rty@$bO5Pm``DvqZ=9Bm2*G*FTpFf#wvD*aP((cy}147J(!4s%`=8L z7<_$MJ?dY2u(#KGNwse{gGRK#Y6TA|q6|8P9+|)*FsVG#W633jsFI1BPrONBk#OrA zOK($>12_pvaZHy>O4x*Ykhx=<+)_F*6(IY3>7ca`;F%85KDn=*4S{;YvxaBi=yPP! z3h@k0A#6~upzvw#f&M`dS;P*8h&E<2-kiSw7~RE!E(W<8S-@FYq%*1eeGJcT07`r% z@wN3zl<#V5vLfJlH^`*x*)i#137;M$1_Tkf28hd6piM+}`g~1m|TbM?>+S4&+U?63h1XzD=0@-M_z#aE6?aA(YV9 z!U6Ku+xpnn`(xZb?rZPswr;P#dAr^Bbq9Dnuk+i_4*(&M6SsLgYJtwJ$A15QAIEij zyu9CU-(Tlrf4SWr>(SSJzkjUTg_R>cQMp(S#AsZU$F*&UZJM6lDUxOq4=!Qh3=YGJWq9InTyWuO zHZzC=kexOzDs@(PAvq4e{G|#js$%SvK?(A?ATMSqRs10_iIGu^=b@@$e7m{R#$LRB z4q5``BWBsD-#oRqHgG>LBb|CJLENiaT($RKE<*6S5~n~5j?ym)F9{i`-Yh0lOho!+xWJ3U z;Vaq`nLwSdBuX#C*lU{tP6dMQp0JAuinOB5WodEV3Imiu`B!wh66=EZre{yLN4;DK z;_=YF`F-|RYaeiTQL*mT-@~njy0=8JnEapVYeJ7lh`C`jpCHXsi{LXVH6Pk*Vr_!a zu;k4FKaqLYn4=#Xjp}^8F1=)|5}B`>$(ei}#_uon?Pse;$rp_l2N5XfzUP^jiB(1b za;WtTne!1S0ytrS#Q+6opCXC5FlA^d^nLU>5zWUz#X7iYZu#ol1bxMoehY9uI3hAH zxkZHoBolZ_g|=cy^T$TTZUbx(|0M2ZSnob>)zXV97j3!y~jSU``X(v&+~e_ zZI74N2Ox@LoVSmc9fkb1&B$C!SqbkVtOi38xhASn6VepIIjst+mtsuo`M%T|(kvUD5OEL6yF7FPmhcGiDet`6fYCyi+kET52y zA{`W{XXOT|H#-xn(Sy0_y7SN+Mjyf-orP$NU7TCN7%BrA`*h9Ly!e^5jaVF$1ihs| zp&Ck$M@vK#QtOq8K{MdioKMJwEqj3y*boFAq-A_FNMe}gi1(8sJqtWCBF#jCMKBEV zha;tzr$#0RpEs+X)^`7jR={~#JDeQX*A_A=>vlL_$F=4h^x0mc#Ig<_g;S4C!L|mH z$ama|lrV^}i_U46Ya~9IJWx2s71lOR;)&~|kSh*izR`qJO9EsUyN^ka;5BJWy>uQ* zeM$`o9QrWQu|2Tm&&~hy0zo}G2G~kvz_Z!fRZ!zhO(szth$M1nuUnH^_gcRHthBqe zfMXZ1E@d~URU{@N&LV7lQZLzK&M!Dlz7#H;5R(Y+(2YpG?t+#iu&(TE3BAa1@>~VD zMq_bEbA-$=VBPdS&^kFLC$KkBC=d{8XU@{R?rU+!%Z94YVAuuby_5p#r<6ugVR`_$ zt;YmK#B;_HGCeXpOV#O^{^rLyTtpJ}-UAQF*vw`Kj+gcrk!mP$Fg0lj*eY+}Fxe@o1;rUDjm6zM9!EsJTIU%tPstrQmD7%?XU@!-hd7rJz;txTz{dn z%l-bbA~5LfwH=T9h+cj?j_t9J4gD|_8=pR@TF^CMx_<7A@sEL~x`_-6!xclx_i1nZ z%$OHgl*qN;8Wag3z=#ydQDs+Sv*84m@p-W~q%)FuMCN871v5R$zRcGHp$NFPu9MxE zBn$e%VgzyP$8j1iRy57ZM(ue30bOth%b|ERoXY9F%O*euv4kJA6%eO}(SK)lc8H!Y zpePNsnzcvRf|Imh%Zwp)E?d5)LIqM=s7PS_5fUJ1=Zv1S+(-{Vhx~eLJPl~%`$293 zG#VDyCWU}@0>o}512GgCYW}A>HXQzOiv(HHy2VRq^Yrmr4ZN%+8-2~^%U}MMyp+$d zj*APf^e7H8XLSM4tJqpuO8`i2*?kUGjY`OomI^7~4$lg?FqzRXoL~;u>}U&Ol10gT zZJx!vhZI|nb;=wgpuOsC;m58s7($v#TtEV>k+e?wypWrOKWJsf`Bjh{=^q|Ycfi~= zy}nm-o0CNaF#TSzktyrwhox3%)tsn|EHf;GVR-jthvrDWjU#@zKQQ&2EWP%55UmcB<2{er(8x>W_~y zxV}aPw&7r4paa+Olwq}4p&qUY$(RwQ3Ggoec>nS94)t%UCB;6)zRj@|zre{o^|7@+ zO$}O!634fn4~)|ao)XUG&{?$DI!3m&fYuue5-2*nbRY9nVKTP8Ab)thzy0{}wr@v= zXrlC^O|@*d`|FR_qxZh;QgUyR=)KEy&2u+@|U5{rtcPDX?L#D!(S zxBx$kNMuo@B~b~I=44O>Q5V92|#S zcUt@BIxv|zR3j8>Dro-3JUl-ok*yawI1$3*o=qvT2}BP|SR;~uCAtM{UfMJkVv!B& z*vkCq_zwF~>>=oe>s`Q$rfFeIk-U7V6y60)AWm+G`@JQyy|SvF&0e7K=J`A$4xcFafNDke*EUg1nqB`mcd2X+%7KD z6S(#%W0G3-+giwJgqwMckC(^%@%Cubxb8oH!gVY$oTAo#+b0T$eXhsYN(V<`qLsot zMo%?$DGjO!5*ga@*h*SbImW4vQ=R&Fl&N7vHkWmux0m-E67H7XtK$o^tBZb# z`B{B~W#?X&aW2`aazV;2(v*_ZzCpBKyx3EiJo+ z!7PtOg+K4sF-;C<`qT` zIWx)!go>&8i?AATh4T9Sqd|qRZAhVPJ$f3jpYD%fax;y1y8q_hBIFdQpwk^+Ugqi8 z*MbDiw(Z4JR}t&t+tCt=ykDmEwxQlmNCrxA0%lz1+XzH>+h!El8r!kGJiw6{AA2h! zit4-{rH^la{-?LLJs^AA9_spX(%=4s92r}Y7&S~(928pjJrAH zg}|7fB)9V*WO$&C7|TOpKcR77z|Chh*r*KP2RKf#XzqFv#R3^nZb>5g%Z^%Iu%Wzu z%Ga#HVcRAG-hu!O8?bSipl6HQk#Z$48(RpASzLYPc8Dp&qqkudI;(OzMpl0{zM5?s z_|8)W?0$X9)8sIGtBqRxWhLc*Z;Gy82&8^PpqUP&<yl})pro8mLy?K`vXZ9B zg<3&1NXL&K{hF#*Ld!tIJv$jLIn-#38Pu=TJ}q$2p(rZX`G%A z)X8aBcMQ`IdYKabKhAxb-|wgNru zx;@?j@ltfr%C;Zd{l3pftfi1NoIpC}AIo~bk9~i=Z`(Y6TmlQPN84r2e3x&?jJa^` zsV+_uc2mjQC|cs5p>od;Wv#s6u;SHVw8&=`q(Oc0mDXc?zRWG}2$MQW*rvmy>u?%x zeWv8-g4CScAJZ2pff)g(ZVoN()%XxL@$$HZx zC|eJfTEP>asx$W$0(NA8fpknN8SqOhyrTG<1EfV@7?d#GW`HW{&iED9e>*3qn!p6a zbjm&U&Z5M|O%_?~_tDmg;h1B@%`zPrJJAt6DD~WBhrTnY6w)vz#c4{qC|s(g)$pu3 z^du_v6B5%x8IzefUiDsq17Fcfr6~Oj%bCBw&*75h{&c|)%T;Dt)`CvUiN}M8>?XSbcpo5=TN7(xC9^`LI}qYpp1V{ zkzSCKCT6}IN5ser&_FNH4v$-jaJ_}0Za=m^`t9xZ@;D~`v`5_Z*E}w?o zruVdMvG^84Fw>O<)KNnM?46#iv|}@j3MC?%f!|hiSul-HVR9=UF-uPbJ=A8}TL(TV z=Z2?e+@El`sj8Qn*U<^8>`)_a4k36fxg`hwzS;NIjhmJ%ML~ol2Eq zou^QjPl79D#AFB@^ORhO>5|ubdxrTd$6Kes2MM3T-&KeUI-NyB)A_dqJ6*J{@{21W#haT zZgq4Uv^h^Gp|pjXZ~= zg7GHE_?WkCE`3BuG0W~aQ)$uGm&+IH`n0JrV*gcC>N>g4upF~h_@v=}&96i(T@oua z)H!%YNG|vTs$PPwAa_vl^xmG;><&z?AZH}2p-jKNDrXiwpO_aoN_!&FMA>OLPE@QN zw?TTazE-kTx(O;$PBL`Id=uZAltlrtH>dNk;kJsaSD~eQzhql50_E!&{^3A;iF7*Q zkJt|qW@aLk&8Jk&&j?YgGpPnP_^LdV3A?y(6#2}!mXn?bmq|rvUZ)=Mapf$Xhkoc1 zV&;pS;qgIx4VN-*a&@3NqI!QF&eQXO@C;kF0+Mm?n!~5V_Gy}{&4YmkCTSIzbfKJ2 z%Odjghrsa`}RRD?CBU0NUg`^U$SkiJ#^&^|ItDmM!f<^v<7| zpeR^JCBiTAER2tB!o8kwKxjWa!3k%hIBUaws|XWekwZi?LjA;aY+WDDfC{0UU@UQ9Jw&>Q-OmKsuv()zKj#g~`Y6(nGQ z9c;8aj-kT`q!bwHbWP$8NZlT9+X1)Uwr%~`9z9kT-CjW1z1`-i9c|vX+skck;|du0 zn77+S9wq#&BtrWn>+*(RnULyp&?TjZR(jKH+C3_imw%(M+hanSvx;AK!uGK0;%CW# zuvS{$<<`&+;7emmh>LMK*6D(#Y@0pqbTW!<=b5}$%~q+T(#xc7{E9kTYk|#kSzYMB znyr3Vc&Yfi1nVTTTY~k)c3V-V`h1bcnM2hsC98R}q+TD~*qzP$tfI;uUL@g9x)?{y zgVs2?MofisWD{rUKN^bJEJoFx|2{Lb)N)}*=2?qSVs-E*m}yfug>$N(BJ;tO5)Gfw z5i#x^K(4|K+!U>l5HaQIW-U5b2df1qVyYO2qsfwSZ$&w z<5`hxjCDLEia;1@a3v;=n#U1Lna4E55}i(_bgsDb@yUAG0`t0C;&RfFj~=g~M4TB{ z5hlB^&9pYvX?&EIa9L`0jA~952hTo~NsGgI3h-WH1O(xc(@-5yPwm$7Lzg!TzPM?KM74bsE#B{+KZ-5}k7tj1mZbSPUusy!YNgmh*-f&9fw{Z2N=fYEb zJfbW!q+)XHTcx1KsW{#qiQE{mzA0L{rfrK?k>*2O+wcp7cxK1D)EdA%G8`!TZ-4x6 zfB3I|`{&>M5=)&roMED)zb+(Zu&yi>fAdJ*EgkJ_HE*%h=O`tE?;A{M5=!hkN2)8s z;>%cAG!yB!aq*?32!EU98Y(=X7=518;;V=?#Xu)_*o;27bD18Oe* z`}*t0G{PKx8_VrJw`1*emz>wf$77x6V?3Z~yWMwKMnLhle|+p0njM8P_(j91hujr1?;?eTyaf$bW zOd$4*IeOf>(>kUT5@dzG)Lwm7x#F|)n_^f#pUtyX29_z~^BeiVYT0lGs(p4RoUF^M z^wT=R&)D$YzcmoULC5y&8~YlQnz~v{`w68X~$};@Ew5svuW4 zMU8CCVmBwOoyJX-Z=HGLv*G9P$fD>^^)j~yGA=i3e1|A3Afon#wnYL^%7X-~8AP)u z$EwcNp$#8s+K?dQOuo+B6o5qLnnVu_4cfz#ARSIVw?hwo2q(Tljh>{m5iFb7-)*^;R~f>Zi!S~CjOWT zV!m%Z4Ke@*>a6;Xc#Sv(Va4DpCw+qAl`z?rG)s<94Spg2N9u;bEYE%!|MX91dMRg5 zu9B$YYVeV2QRl<`@`xB;CdTZ{hv3fBvh# z{oPy=?ZxXfe$38KrFtks{INI3m^PS^*ZcRerUiHiK%!J8?@OOD_$X70I5nh0$$NP4 z$I7W&I{>26sdq1RLCW7!`?f}MA+Q|8u}^hz)5psm`&?pN;ItDQ6w97MIIbJM&%I9w zC9dWEXg)8gFa&rk%om0R4)wDixA*roCI+!JcEqhkn(Sa{ndee#zrW1e?JCJR9GZ z9))VntSYj$W=SsN+?QwTe!p@T)G(tj2;(38@q1me;lj!eu(2E>fvl1nuuM!T=%Vr| z%bJFYS^OAs?(h^i>w-lw6U_^s(8{_PJ%)eSns0tMdK`>v2=0@%unGvSEnYJ8Z? z3H65iUu#sXjquUQXTUk5>q0q)_De2OS@Zee6cBc$X5lKJL>}WceRa~BUsH|wEMA(g zL5F^om|K|YMW=+jTX{tADSb@KU|^sX*YHJ)KoMB5c79H_(EfSh3<~6jC(zJ=tDQl} zVEUdR^*qyA8W*XWY|%Qm#)?%k2Qht1*o?tY`U-DqB98`wr^zqr3=m;y;B+@=YLvzr z`q~5DtE;7WYE6&1dw$X}8mXl1UAD#s@uo$ty*jM{!}BMj1iJ}c3-?HtKFlBFHMEpu z8x_Vi_K!Ux(MM;@<4Mvu`zLAC9ff1)frA9Zs(F02&rO8HI`#EWewK`bvJ@h;ZO7~T z+R~ucvj7)~kgugV5ckL@j)}Bs8;bbFupa?{0?(Y_>EOjI*C`)={mshMNd)xDeb4R~ zP8-NN!WWR&6A0FEGP7V{I8TbfAUF>}3>#h_5T!vPb^y5j?dQM!*Ut91}rV z5FG#z;7ReuJU_D5CRbnH_MBs@OA6N|)<6Yof^a4Skg7{x=P|lawrTpfbrj{^{j_dl z>Dyx+4^+sRnUwqMqru!^+fgquPFu(M{NoYRwEcJ+_t)3CZ}+_*R2bsm`~CLgH!st8 zyWe;8xZAit<_5XMcKpXUlhxv~ot4Dhmt=0`gy&PPukFZ)ZADFEBl1j4*^PPcO%l*g=tU$H%( zur=cd3`?t*LF_TnKtrsubpMnx+Y@SM7XkqOEJNG@%L;u631LW`MlT3V{Hgv`%<8b@ zU{0&%z%9OD?*e3_Or>AR5)J;BL<6|X0VWmjJowSHsWaNfi(`UzFzx7e$k`8nocQ+uLW1PRF2dK(6V1OI#qq|3{vjO?dW67NVlgzF;?dWrxh zTAn5V4j!25B_p#N1Sr;KZ&n@<6rh=}xHI;eKJTJeLnh{D%N`Rg31Qrl~6#2=t6%oFjne{PO32-SEkR zt0&YwwA+17W|?b)Uyh#fd8X>jHwdsWrzuKy;=6{Mg8Xzj&(5IC@n?8nT643+`DG&} z@tiZTj6mE&L%!rG7nxcHal7IWC6;&STvK}#EJ*bF@oFr=k$@7V$UIK)L-@_#{q_&X zaea$vx%`roLkFACbfR;c?!Uel&oHb7We`fZ9N@bH1{sXd9Qs^XAgmkYbv_Zc52ewA zvLln{7=a9Df(6;dSToB$Kn=i23pg&fA8&=F7^ovoG=hbWSflq9qO%fG=`hDRZjJeE z3xw2D+jfNgzJg*M=<{P_8H%&5B~5QzS`jin*B;<5FQ?=Rc!=Y71t>@)i49?QDUgkE$Np8c$u6{J$J znx84p`j%BymCw&K?hEDAS>y)tzof3H9nN2>+nS(#fx|K;@igtDpqSi6^l2Ij_;EV( z&9a$DXfVSsSk>srb6rJKz^+LVzx8__awm<(qXRJmT+d#vb! zFtJs!gUDah_Ts(MH%pZa`w1j{k>5seKE+l%Wov0}XU-HKSnvpRkyoZWDzz3D1sHiX z!7d(ATooLZC3fg+Yp_})8UtM|Y^gzVW7&5Myn-?m3nQL8i5CqGqJ`4o=U;!lHy_wc zAS18r_ny5!je%)?oZP8K6GL=~-q8|vV9YzrqD2Vh-!eXFjE#RW9p=Sfz6GKM6C|*4 z>3i|u2v5C2LNUMp_$cU3HSMt??h?+u1DycOgrhB~ku~6?j`K?bOiKn>pWt-n@aNvZ zX6Yp{O)Yv*y=qzaqt@;I(g3@2lN57aJXCFykHtBxS9D{99=AzT@^wWK!B z_*3_>9moC091q3>w|0#Ec-+Q110v|H)rzL~*mji7kJ~z~`(qmm(kR+--`Ai2^4A~x zZEQdus0Q4R(mE2``u6g1wA+4k2rfD5*!W zpuWhZQk+biPFGwF{hfK=W?8~He(t>6h&c$Y8AR&|tWVL0fQDu+C+R47YwYY{O8{#e z?zO&8gYmc6C!|1}LN(=lPcFr5E=_b&Q+&Zs;M!$1ZIX2=#dh<|BiN`s8o3D9C>fNwzVWtsPeHnL>eyvYhJAMD`tcd@t( z5roz>4?ux~opyt_m8Ky={%HYW*%g*DSCbY>*5hd#-P3TaMbc+T^PB>KXcwUkwiJLo zR$UJAj>n#WIt`>#HhFKUsRd{tRis$Vi+W3^(S4tbe1tCmV#KI0e>?NNm0>a_A}}(V zCVd+ZylR1%2?IRMY|rb$(WglB38h!nac)A(v_(k~y|cXscF7P;@V%*O;u5@sr1uIz zA7*A5q5edla4k_9aZNo^rFWH>JxJ+cc)Y>sm*09?Gy%>jpXrgPw1m$U(P1%#mcN%Z zv%Oddy<38h7{_yDmlc_%TH}_qpgLwy#zbHa834+7e?-gsM6@t;!9;=P925Yif7PUOhowSS=)vK9=Oqa@#7Xm-tFf3*cYSYFl0+SiC7yh*o;*FF#&;-EWVGb;)ZQ zM>R24O`ISAz3>++Tp5z*{FIq(DT-p-CZZQpit}x|y{;ve`L+XEm}&%Jq0Jrf6QDGd z4qjNF;IF&wn?%2*9j(pt`u)%U;C_4iSPA;}GHx@>&yMx6K|I{*xbM(*tm83`_?^hq z*sjvH+@Q~8oiz->>qv$YK$M83E0-DwH~ z*dRCXqQBmNscT7#22IW^z)rUU6BU~V?hGGge{Fy{Z)0mlhcjVFw0p97}@jY?T4 zXl^hFUwB@a+Lv0XgX#rVS_H%u`g|!U0=Np7&Qs?V2vj;_Ehs3R1b`fyCsmvunk15V z7Cm$+2&)k}-G&Wrp}VEn=J-%(lgkBBlT}|PULU6@U7=HQSr_ylOm^Gs5&}*wX#k#pv?^pmOMoT&5 zy1(@S1&zzL-7A?{>D$`N)PTt z_txk2`_J3$H-Gv%wu07pU7L^N*pF@NZQS~F++JUHz$$%YR@-gp*0Kg| ztNk`7mfZ6s1V0|0F}w`u&eBO|cCPB{N@WumVht$V6u;_lM24{KyQRq)Mq^OHC(KUQ zc-9B=TvNJ3s)KQRRY>tlw!X+Kfj04C$eKP*=Y*97|I5|8wiVbu$}{$|#C%EP=#~8K z;r&B*$R`z@rFV^?(2yqMjR{K)&e}6ln%rO{wuFHgIQeu7MCamUE16pqHP&*}*i#yR zQB#6t!S6WC-KPllW}7OV%km`blOE$!Srqsy75{5-U`jgrGYhLQKj;J)%=3b zPSGC!DjI{hvtnzc^z1k?q_2Pl)XPEkDkd#69=$oh4zx+bNeR>3)nUhivsf!$TnlVU zV&(%5s*64>Vb2^@LEJ*hF8dU8*bAEr+TOXqF2rf}A6m5lPe8E0JPMz*-C-%vTo(T$ z1Q~*x)`Ng;?K93kmFBfNSC6CG{zUcH0ST`8dFXE&CfnI3NB89QR@^hKUt>v}WcY-* z@FRI-u_WzT#8??zb%No!a0a}4ThFkS;ovQ4aEq|?WKk4n@9GFK3*qKRt*hKHtUyD^ znrzeJG5%mp|591XDNp!#cDQDSTn=mnluk**);z5eNso-1plr@M1zu|!P!{ZW=_og1DGZ)N`e(PQgi5|4YI zrc%H!Zs6g<3msrYN0l7=0g$(%%`S;Nir#N;Ypln|-9s)((Kp$2>mX zKOV2!G0LF~l!lHdppJ^WuBgCNy+Q8`{P_OkHXi+gQp+7Q`}B;0626#IuI8(CkNUp~ zFMjZgU*%KISp4R_NBpz4>4pQ;B(8QgG(Bnq?rL6mk}n-XKhdeYr2X8l5c6!VNS82E{? z+m2KZ(r2&YrZR9zcPq)V&r)fl1qm#?W@+^aOJJ>PMM#dEbS2u>9s!Z^YMp&`7_Mos za-m2YfXcDOZ@*mJ(t5Vgh_K-8(wt1VMwuhwl$-Cc=_O3~!H zZP*1Vb*)HKlXaF(*^6s)dJ5D2zJj7#CqyChSM~7(Fh;XLL-W5I0>cl$Jc!$)IJJ#K zElCDtK1Di7LNexJpTfoOKi@|mmSFrucse>-#*?R^lyVV{86hfHJ&h~X4GPV6!LmZ2 z+a=*vbQEa^DVO+PEke#>k0{IX$+cs70^Td^!CvO74n!tRY4X=l*7nOYZnij~U6K4c zaB;Y5LNUaYdauB#a03BXnU-fprgL@AiR@V3Yh(igugDoCTup+jZMqKhkIMU>{2IOI znf6Do2!2O1DG=?P>98;2`Sw0BdR-ls6ZYFX6kACqC(fHC*|KCuhHY9Oy=I)MIPdf1 z9c?Ju`tmXl&xp()0Bp4b{_fY}Cm^h;9T3eO1<7huBFoBVY9p|OQZaD@!L>XKc$1R$3 z8N#e|a4=A0&(oYA*c{aOtO{H4vw%wb~GNPQ=5Zglf6Xh+dqV z!z$BI5_a)QTtF5;qmKG6P$zHa4&=JtkLa{NfFK>IqqAUlq zyhw5!`C|%uuMrr;F;>6+yv6MC)2Pzmy`>T%Gp-(!FMYM19WK^}}_Zyd$V9ZceF9Fenje}CJK?Xj)< z<8eZw#siS((Sq)Ev=H@)CH!dBn&~Q9T2!r zqB44~;n_?au%OV&U_o##vAwLdMLxZTu{iX0UYlA+L9}4v&yg737eYd%wA1|1jB}R3 zdK|TzPhK7(8aMFwLvpa=qZ04zi2}+-swxLu094!0fDk;bNJUbt`F)pTjPbyP@Tvm_ zNGVXo$i><75U1m@PvMfMq}iY-sV9jaXFOy`85XuU0y<7}SZYlK0|jiyX}Zq&xY8$l zX;Ed|=Baj6G7Jhy1&}B_D58uO#SBgPz<6FbU$Jq=GI;6$+|;8LUI`SUJ4cIHUvT9x zJaU@S;0u_+#v6gWqEyh@z?2OVgV<#mByaFK;=uzk!m_G-H@KxI#t|W#QW|-dZGhmX zZPaHpw}*t;Z2Wl(Am{>p1J{qd3_g;_dOeSF`_@vHk%BX}u4F=}_A083V{vhA*PPN+fQpi!#6?YM@n|XG`HDt| zo;HcRFpsCDdSWagNFL!+i9qHjO2T{yu_02Jjk5P~Y*-9kP9AkS?H`lRc*2_c?H0ky zjdM>ilF86Z18&@oqbI_=8H)(G(mrDU|1$a->8P7Ct1=(e`|0*l65oeM3p_Rtyw~Rd zl|O{bEVJlk8M!v@TaP$pgkPEIUf^rqi|4WkBnKH{m?_qVMab7^mX z{o~fh$75gn)ZTvH5jYIj^syBNV77TB1#N%%*Z?DAR(Bz&OC7h`3gXx&sgg9XLDMsC z89wiJg27-5^&_)4%I<_7>?6z7Qx9nuGg=QL<>Cv*SCuQa9O(wl$_3qNbF&y4aQ5A@ zKtIVfJTP@5&*f##S007P7p%Hc&=U+Ua~iNLQ=5!r9#v3&C9#zVlD0Fy0OK_uvz~=- zW-90G#0XP)G1FBud%5y9v>;Cx$ZUcX^~?~`&0^QIwEK#Lx%ggLc)dUE7JX08u_S7V z6^T30Qn=k8ncH2tu;8TwU`$o^uP}Vhv8NKu3tsYK6PyWUERHw_0TC+4v@ z3fci3p(`3fKtHr!a&p4f2b+^8AUsuByPR$bfT4Uqhc1*=+yDR+Q#P^iS))>E~qR1X&*qV zdN{f8@*MIoOx75@vS6evwRhuEt8|tepip=Dx_Dwa2#$9`0Dr3oNVnHLI$tN$xHk7huwbcE%?Y$Ltf)3M3#K5u8!m6!Mk&Gy99Z61sfO6JmxuiLG|K|HH438SI9)fBci%G{3HhwV40lkKg7_ zC>YA&X$1T*GvKllr}(&kZ2QN4@lM21V(3tldtS$<_u>D^3N@d3o9)}>87dYRDRGx< z40wq3z=~D_e5O@^I$?vWQ{*W{)9FQKjQewE&Lc7zhunVoOY}59`2z!RU!z@;$j!%f79cEG{vh#6Tudk)4_y)o{mB_vwWX0o8U%xYKvxVIwFhwq^39dU~Q@O zb1cTEr9OC#{;bzV*&VdBT|D>b!3-w6A6P^QljA0lB2_LcIE!`u@tSRneoozJJr-2k zB{?Men5ku8Ez$Ec92`_ERK7dofuendn*_`kIpD5@v##=H%%M8(g{E3$-8_KPfK*@D&=b8WbeV-x^feN zVrXB|mcZf6s_jaxXOt{p41u}fr}&!;Hhhwq>m<6wP{HV|13xu>i+0hv@}~Jx)V8uKpXPul!VH3ed2AzL%1**V_GW_TxS8&#&JBE*H69>37{T{KOp=}J2@_C zr0D|tge7jwvFb8;UXpKx7?llM&QtCX6q)uv`Rh63D@>fC2Te`E(frGUU&T|KVTbaff@yR0*7TDUgHzNWS_x!L}B)W%g4uUmGhZ*eBiJWzfuw0 z4%1%GSY+Z`D)|{H#N)Vq%rVaUI355TT0zaFZ9|(7(^CNNPKZeB5#LGBzm1&6JzlqQ zhDQz_(5S5+A8YTe_2d1oU#D2cj(&N3ecum8S}1(TWO?F!QPNl=i2(=uiW4ksuV+7_*bMR# z3pZk>vBV(**H8kLjUcIKKaGDiuP_gSVDTKW%BC7gv@UDWR}j28reGmyY| z_Q1TQ1;0-vdJ4Se7QOOebe%Zv0kV+x z#rQpNCqqBmyXW1H3P>-j zVshw}05tZRbD~eqRD%RU8NadAiN`1yB2C9J0!p5mfQdA<8hf8WI3t`pPGm;pIANiboa+&9ufEs z8O7uM?PJ?7_{8J;Yqh=oa&|8oOyV4KDFp6c6N`Zr(wund4p$s%m1dr|nyW62$p3{X zm$qkOLIAO%Z?^C%Gz|O(5Lu_DSNMVDas^{kNIeY5!#V3DuB12W0u%(XGF5;$JiW-rl!l4#aAAfA=_7lz+Bag$PEyn;@mC}l!3yJ zzI9M2Mxd#b16--2Q+Y%R>v2@Y&R@8z$3w33DF!o_SEz^Fto~OBCCYTJFA~bz2&v~lB@-8GbMiECeR|!a! zU1yg}cn%ExTc&h<8Z?fg#cRr$+nR{Dwv09GvsA-L2cTXJP;D{1-5l!WTHs{w>nFMu zUViJBfmTLOPdTAXC=9}^@$f*OrQ_k4`1)zmL8rx-6-gq7jf+n#%4dx@TXMr5|^Oslo?c)Ya6Tjp{$*076l8_rfLB2P;S#u z%lxrX=<7H>Tbw^f-^W~mwSb#8NO|l4Q846^?^BwV>H|;t62w}=R}xyj$vdic5WEi^ zimN;X?m08$A&A{+Ee#p#z?5;60H6ClHykR>dVF4>eD&>i+olpT4C6d-?z;VWonr>z z0Q$JvTRvjSQ-`YI7*R7T?bN1%ON`pu+P9CY#-|ee|WkT4};R4Y@&J zq&?P-zx6imx0P`3`gZI4iVlBXj|oG(wEx5J{<=a$j99jp`&!BYL!EUTw{3s_)1Noa zlk3}SB z@Y8A{ISA_|Yz^=?p${sKvP?Nm-d)U>vxht9vKvx4|piy()yU9l+^)P*vSacttHqbSIg zB?b5`QM9JPq`6Zn3n}%FEr#nC^V{?-IICvexp>4fLRrg?r-1%pYI?>#fc>ccn01%v zl#iJ6R?IE!d4X12q@FQ|P6-bKnNEW|*)M&KO_MuW?N=cXIGhlV6sEbU0l~QzgH9-_ z_NzH&wEdnbbD-wsClgkCG{i?-{KAgA?F|Ny2awhnsQ@H&YG*jbL}>dQ{%GB$+j&`! zG-QCrK}9?-DNfb1QH9EPnGRr`5njANB|;=}>a2(aS3T-3#JR0b^B7a4u~;h}mtI9& znq%;0Sb)DxANSSaH()F2p`wd`QG3e5b)k;-jC+SXq#{Fj0+B41LTxd562P6ZpTJN+ zN@c>YsOi1Ik1Qf1C{BGOn-^j15%_V%8>6PJwF)S#G!WO|oBq+aeceVVLIFCA$Nv4- z`@8}$p7#~Hw{gAg+qSLiJ|Exz`p2dgwzaIeOiqdAOhNiMyP4DF>KV}tAdO{?TM6<= z7Uq*{lVLeImICjbEH`LRBKtBMRw>VFn!cnMs*^@(U~M%b*jeO6U?O12pAj6!(rSg* zTptEchY#_$&#o|o1BHb!Vy(2_OZ2YsPP=B~D;Sbsa;mG{US_!lsNJ*8QrpL$)nSVc z<}s-U9hrB-Q~Q4NPr<7=d}SlmVly`;yzBSTs%exNn1iGM90DFJC^CA0$7VXxDVrX| zZlX9vmD4s9J}U4zOUBDKIcqPAr^U^9J-JP`u`rC|()MwQ#nTQF2a>jz%{j$pvbvKJ zF&<9cwk54!o)A@{;|7a>1hg;z_5{;E<#n97Qo)FD0o9ee%Z5>h$8m;)9X?nn0yvao zE4Hq6`R#B24`se4K^NH$g!nZqRYpATvPGN$8??u>9aD{sgGd&<7@dqR}8vfqwZxt z?i2b-x;WGlGb23mm57emymA~`GIdlwijAz|i|3>z{P;LLeSGNaATS{wYgv}X4H5Ga z55O1s=j+<1lwB%Qm3wbCW3))yggCWh-PXw~wPI}5mtGRADu@kx9HmQ-`|dGe9E;`r z)Kc)FS1hvLduo~)b`~Sh*>RlEzS3WwGJoG3(Y9(l_^G60QDFE6ccw~sm2zIKMh!+7m>|JY|n)gzIZHog08-;ehF zH?RAJc)C7L)wok=sQr?5P83uwrZ$(iW&mR-X#b+Rq{?YSC6CKWfW*}~4t#kz;ZG(G z^|ZMYCSexz&jif5M$7)vUD`j_ebwLA@p?E;Va z>=$f?9nOq92o==ELVLwVRPx@OMeDSdm}DR-Vh6TIsEpjep1x%lvq_h|JTV*-SZKUK zmo&0=!OQE-*@`GH1HwOTJHqp~Z*(fWf@0sJ%Ov(nutrp3o#_);faPmh!Erx3`5~dV zR3ZA^oRGkyXKVgbl0X$>U-!PTkY8=M$Ia9gza3DhsWUVpiu6N6tO zRcMnR2p*`vP(h+;1;HWGT?UnAJ|KyOe?&V8`H{g$@Jbh%o2@ za1%Bb+ytoqaqy0T@qyD$iI$4A8l-=Yx&rQz%0gGpz8)yKnp~9#&on3z4Ot8WRp22} zK4!16EQvUIJhu9*p{gU>mjE%`4lv29$VE#`UI$KG_9Nwmw1AYNrvkPkFK63Y^(bQV z#}>0diVR{cn$%F|?O@hVp@U+bA{Nn1aHNa~K}*Ye-xK*lrQ%4?A{W3wD7T(ffJZyQ zh$5~t@-16j79hCqsKDOFaWmNKdp1g8ET8_p)p<-bm>fU zqv=E2dYa}nI#*+Ve`|64c#NfO_kAR866?p$_xs9p;sXj}n3MJWj_~)lA1|*L+o+nF z+t@LcL9+xk`4xem<|BUk^e!=3kIGtW?VqVGFpW567{*QDXovMsOaeXZH>|JZm8%D8o~GN3t;YsuzJe>}B_G9?y=rL>9EtY4*| zIJ9l9j(0t={G;O?kj*g|pO#!?)=@STw4fdcDl8Wo78{9*5VUD92$c!d z4*rV~_i1p!sJJYL6@!Pb7Hw$R%KTv^tsDD9DVta>@DRFO(aM*iiK4xf-gO<{fA_cl z{PvA!pSd#Pa9Ktv8)ukR02!Iz_A2`qS!`IQ4ds1iV<1F?GA%xZJ{qn)I%1VaY#x_E z2Hvr>N;|l)$UOx=5@_I3QIj_;T#1eGLculXNbL| ztR|=4ZapPWq&8S=pPeO~%K!w`iAJwKe*m9Jx6gC;E#gJR2LMKl0a$1 z#;!WPd%-I1_EwyF*ob$K3I8pboi&j9%x20QOL)OCTocVI782mTsPDw+>6E&t#wL(> zUBbS8+Fl!;6;cM5C-4vIvCZ*VBP($B1*yFEm2iV^XhwU9?0Q)+Q6ufEI$ zN{+Js`Uh`gYz-3u5F3sOVLl}->;ZC3DC;<}{Pk&qjP7HM;OIt3(r@=;8Zm35!&xI6 zxZmF%+uHlMuJZ;xavN{2x0fGp`}}x)f5E4_5cZUvCCUg+r8C|jD;9Qt0zq}T%cUVK zi+Ya}x|h;h7o#Giom|SD$hInXp5;Az%??haL8i94&Gb+p0RF@=g#;DJ388~yc^M;1 z6xU|+mysCE3_4Vjhp+l|vRtiSx(u9I2WQ3(1}_`zASE4+pv(thHZ3uJn^C-Z4O)UR zxRqA8vQ^?YiAsJ5!>zTeU?SQy%PHAvD8_yvHJ8&FfV1gt=y(F}j zV;R47wcK0&C`%uY20ui-G)n+g6$?qqCt+XiLo|BG_4)h1{p(-+;qU$CTe$j#;w*Mq zr;kLc3+E;aUToTWHdd@jWcfL$ZKL>Ai}jiMsn6AnX@WWGQ>Aq@c$zCCD3&QsRfli8 z*W?2~YkX_r8RUi`q{%ydQ%wQ#nXYOmZQvDX882lHg4{wp)?=7r&r(b8fZCuw@C>mNmWCC`jWXw{B=o8}GX zH0y@Fez6+VOZ5rJLLs@rWBpj#kKg{&4hDe(lL}pBRd>!gV2r3y{`UQSMtmAn5DmyJ zo~JJOfy7unG|T`RB6?`l-Szf}aUDDAA>afg7jwpDYzI$^vg!2?e$25nJoDnm`$uc@ zHcl~NYLo#SSElW;phpzm26U<&>&FKO!5?oc(%XPQOxs%K4T3f1xOY_H_5Pp@&;94e z$NSrDoj>017g^Ag=IE7%M*AQwgPg5es=l+*a(0o93LJ+AjjqE*)z<~PU+~KY=;Db< zNfI?Ev$JJ$dfGpL6-9cy^u%ZPwq`qSEXEK{hExW;B-j#t4((BiG!0k7SZ&`vZH@OSj~(5n$u7>4X+R{D zoP&i=>Y&6y(@0WKqAbVddxhXz>@q$6&a!L}L*3SZ`fMT&rZ%w5p`OuEEy?+qWz#uI z?Btc8)5It{%-PRzPRRNB;(GV)m%sa~zxsVZZDlKl#8nRCf$JHKR3e zM6n2Bs`F!%@bJXqU6zgjMiZP_;DX}~PUNVz_4TctoI|1Cx~^j@DF57|D0#}UW7V3% z%Ad@Xp5zlLOh~lxC7E}*u%+;P(Tu~VsPIL!f*^KOJEMZRWg?NJY0i_6hn}JqgmJp zS<}PXoa(|;1~2!?VZ-7vd6O>CvvU5n?!y4MfYb<8~XT0yN^b zf{nKBAFtR1vt&R;9SldHED0(*eiMh8#r=e(LT=@j3U{?3gt=BJwo~uo zgdJ4)+>|td01&D=t3N;mgjZCh6c@rf;6a zw7|rL)ls0R29Kw&gRwJkHi}V>Ps;(nWK4ijI?rTy_xK1;s?R3&W1+@hQc18%$i~Xn z`L7K*k5XcZJL}~+`02(>cmRnaoNP_nrnB#F>@6;iFO>1ae{i0^rdFOBtrwdgKgLs=S39q~H|4 z<=fhaYYr-nI@=Dks9Z>%{f&@6K0JD01lKQ%be5hr zJJvM$RI@gW9y@y6*@Ymk17b{J%Yqc7E?2Zt7Xbztn+J~o{8TIV^>u9I;5u^heC*r( z`~4W_uFf-a*5;So-~RNi``~Gai>IFGtllOF=`&_xb$@+ZNlJsOB>1xxSI)d2IUYyM z3v%Rr1y+j!+HWs&Osx^3Mz|0B9wm#efa(F3q{Pg4@P#E+23pYXA7epC5I71RDa(sn zD%JrBPjbkKwrG&1-CiFtmG?h=i4`3-QYj|bMs_^L`SJR8Yg1phbv+8cvTl!k+i$nm z3%gA1ajf(xs#kCiI^Y&V-~{T#aXmU#!+`=Xcuqo7TmUyRpGmGFax!r0CC^b6pVt@! zfO|fjaX-D$P9A=cEsCKOf^u25wQfH>=_O97gb>6}!pmuPDse07xB^N!m|4c+R7p=3 znIX#bVRq+cEGcJ^gk=nSc(IFZFi-)?$uGe)38CF~pTm{4SyPQdlNUXLcY-xc1WnZd z@d6W}KBrO#*Ncc2K~b`BZ_Uid65)x)H07|7xM;d(R^4#rQ(P#?R!wDT@dbs~DY}%4 zi-)z0_;%t=SYYOGasU2%|M_44{a^p|C;MXxLt-3^ogqt%^Iif)wXHELH#D08j-65S zSR@P0pC1xMDTzE@vJ6F2or<@8jh{FgzzkFJ+r?DE1flR1)xA15+I&0D`JcRR9G??k zrV8(A0ejJ^&fqx~)xw|q7^j7opVWUuR#QadhY@>{VnGbu0Z9`u5;Csv)0IG5-afpd zKCYiFx>~}s!lE*xq>=n4>lTHs+@?fS(1przoH1nvOuTJ{s*16nxi;@ z2?T^og?lMP2wYyITnHhf7{-`L*7Q!|3w!}(Djw0rde-?^NkPHU{IT_Q?(6M-+i&-`@2?k+2LiSQh+zqC`Pq?D#!fJ8qb}wA zxxQMcD<>aZ+^2b7u1x>i;f|?P@2|7u*gH2C3V)bIF z*XSIU=r8(jU>{|VKy`o+*`Rr@&|^U&8 za+<1|JN__P6Y5(}40c%vXbNobtyI%w4F>u7@JT#XH)sJ%184L|w0#y(60%1%aM+g* zhK}MjM8AJ}#xiI4Xm^(|MH8e7+qGDCYgNBe@B{JQfSE7p$4VYzqQSG-TYdZEKm3b- z`iuYk!}r&>J2qfGpQI@|%L=lfCneGUz88gt@Z~H(UnkG3*(9!Z+1zKezF^Y?*H7>X zs)L(K0v*0ZHdVUo*I?7^kUNmo{l5pzfP2K zwwvw9@;;g-3NACbDfGVam*Df|5_<%x+$PsJeC&_U9s_`5rh$*Md%>tFyu4T>u2?pm zfjnLvmZ~oyODF6GuUOHVkH7x;e#w2rcQ834{Q>s32&a@>SaW^oi@2y%I_NmDa@|1d zcIUZi$(f5MM6F23sQ74esC`UuT4fwWUl9lijWH`6y4VOt5 zEZtji6ZIC0it z<5Xg}TxzR&4fAlwfrW~`x4n6h%~Uh3@bcG%&KbBPIEB`woKESx40gF%tWS{4!TRN= zOQlg8T@7luxNWvrQDLkGA`@bD$x$nZ0&GS^yz_ViE9@*G_EW^+@NNE&zx}7b`n~tx z8ef0?&Ciz&yDtXFGn9+fOP_$c*4WZ;4q|P*hk%c;!~({MWumIJgpn*Rkl179U*$F{Mc7Q$SUM95f&fCgOAt53`JaV+CjpPrU71va{DAt}XE6}6knqw@JcC_$rP z@6VeQPs`wU9$A2f6mQX<19g$TFSi{TC`?}R_?v%x0n;776UPIbg6a?z=^(z9%l4As zE5CpklM(}(1i&g?PyVyWx07%~IylW}WLFax!pIWOe)YJh zZO#fW2M+Wb%{VY!jq1_?!i}uqa0;L-PuV=e7 z*Vh|zt4qpCd#9g_T;pV_%u;*)O;xb3{uvx~(&$9~yjm0)Z4$kr5MdeCCJ@aEvJKEh z2#<1En}~D!#1vXRHMTpb?_4h^Wdb6FGkX?Zk?T+q27@Sq1R69G;GpsXzZkq)NT9ZI z0xR@Z!@S-x;U1ozedPyciMz44s1yKHS~7quS1jYwv80i6?iSNqVuOYvaz^B%@Xm#N za}X{Svi$4-!83jO`Iq!@JIdox=}v@lPDTL)$|8N3vI+1wEN(N!>~-aaV>X#0Z2dF$rQ2=o?&3{!FCfD;c1%kWvO|ga;&y zc%|qTk8)Ujmg@B=?4sLT2^#x^>d6q{eOqsPuS*2UH)D;N=DCn_)*>Xo)E6Hgx1J|Z za`CHFPDo8wT4iUx076)suS8>G_2k0&ai60XS)qW^1p~A)uKjT@2 zl|a|dQCSj=EJJT3J$S9u=HT3Umr<0d*^T#?GJYI!YDfx#Rqx{tc3Ej7nrGNR;Gb># zxZgI2*k10J`hNphw1e`|lYMXO+w4pm@mam}HSu4TB^%LGgDZ`W?O{7bo1)s?sgG>& zpHu~nzqDXWsEM~^V_FnrR_DN~854%C!mKRQflPSIEp`h#ap4N8lJeh8o*kwT6VswX z!@^K84AG=@jqVxuGx@bo9&U74$A$4}ouN--niAErCgVdPC#QoQJjc)U#gXro_Sdi_ z&Jx^7%g?J-NJn$j+%V0gN)Tw5BO z!YHQZFYYMnwizb8@Z4s-K-%^tm--yv|Lzake1F;3eO<)@%GW0(V1}U8jDs85py5Vy zpoQX;^x0qJYbjELlKchnis7I85iXvwNq|dy%5>H?Vj}eef@2kBqDxTu>j;0BuQTle zhHE`~2*BS3Bb==BU}aRmKrKme?a=g|v2b-*+BT=>i%vLn)f`?C2JBM~u}zc%6QZ!H z&0rkBsnV%EUkKNnOm#D?43+92X%fwy<8$>Uf)<{^*`efO01k>1#eks+^XVkxXr`{R zBZ&a%!}YmNi)F_{N_r#=4TXH+RO!U2>$Sz;MCD>rbMAO;4qSN5dW7vdD$K=UgDyQ; zU9R-21BUN~_r|d;1eZ-JHQ*EqT1F*}f_4*h4M+qAOzMH!LX|ep%>|#K{RHcaKb6vg zcM->*?=$*DdY3bSo#eu$uVYFqudeJL<1nr3MCLM89X|G!LYf~1FQa< zcLwjtUntuaWpNx^su9euBRfGCXm~+aqHdiALOJobvRAkmi%gowQuWM!;gQu+CRiry zuPcPbb(%juR>V?lq`gHx6fJy=V7G0EXxrEQ<3fI-HgNQ!M&X?*DU@Fqlj@kXES6%E zd3D%0z;wRsge~9FAb;zO{@=fXl0-H5H9Na3r^hUYuS*1yhHt;n9n2WH;s9Kin6XqFhQ4(@!Kme*mB!`e~zQ!G@t271l%9W+zmhTaj z&eX`MRZ}br&kLWtObXE%^1#L7`RU@j=d8wXKkn0VHeH9o%Nk2rW1>yH?KvbWu}99* zSGCBxD?b-kSm*@fsxKD#YM>ZdS`@G!lk}c z=K-8J?U!lTq@|oj0iJNFuK@OF`l0Vx$uYfCgD>(#>Orv6N^ZoNaO|QwPs9q@G--S zY=SDG`9O@wrFlP~hO{K$Jox=F9_vnLa!$#zV&B14V5o7J9{0_=cH85C1%tntJ#~8@ z-}``R#43fGts!9^2fQA!Ld09kYn$#j~1z{)D2Tc-eE-&*jt& zszk;MBU+(qR>SxQzw<}G^ZL!4OGu%SoXNx+K^uRclsCbZJ6jz#FAzE86c;r3V5rG6 zj)QF!H?`0NctX``m38NO`hHB6_^MV57$uBF*b5$ES|?M;8FANUb*6O~}hTYs0rD!9WU*%rUd%v@a+N7=@W#PQzU_uOX$ZGqZfcpVxQs61im0!2$vzp z$GX@dIW4z{R1Or%=#<290@TCxO+-oBd5{(3@&dkWL*(SAUYLdq_|8IybSJuz6-m!D z0jeOBvQ3&QVKu%3jA)Xrhi)1Z(;qm3U7=pn+dvp5R|BTI!-qx(UbBf*B&dShwTDxS z2%z%2!b5)@C^wYy7i+DIb3+Dhy09sJ4jrtp4C+fgO7h&Os z2FllVlw-mXx!gWJ<~AXMEtX@OOT|h?)k0pJP#F60uJgWP98A(Psw85cA!-iUmg=aX7x=myUfZ0JGMO5bh!j7>W%Kh zg#dfY{iQjp9B7ZLVh=(PB68-{8k6gc{Kc>2>hm!}RP;P;^Nj4&vBzw75dvXO5JWpyY9gBE zv8G9}d^nogDN!czwFLDkGpUGi>VvZq%wt1n{*1-vREO2=enVtF- zdLiIiBJmd|TQ>rQDolINrJ#FF;Jl{9Sy|NV)IYn5UpqeLLf<&h9+r#+6MWcyRH!RB zE$gKm+crX!){xGF;sb73dwJcKM6vETqTg-3fW*r>x_6Yel@Q38o=<*LgkHf*;_ILeBwYuEOS7k|G`LH)dF z!t!L|_pj2qnhwFdbF{kHQ&gQd%1+eYo$a4_Cj#p_-nRU7<;~_Fb7KBu!ea$FnAYRdj+<{=KAzsI>*bD9Ga(c_i^|k~5_x1`zb1kh($~tao~{e) zufN%nE8XLG`F2PRoW^lPGeZ920Ra%4K*9+;8xX1>jD?QIU|C)+pSopgw7?+n0|VF= z;ik0?ff9P#8S%tZ0>P~6C^-qv1y_E)VdUQ9DFRw+s5n$lgVUbhJT?4c{uy6O=c$Us zA@V%4*~<$$!f30t1H~&ox0exEKA1=sS=qTOU5QZZ%IMwV77sWKIMv1FFPfm!ZU(PP zkgHNR1H@{38N-EhImgpVLcZczLV%Sl!p%@t!UaVQq^iXhN1qoy8{1^j3I$Jzrse>Y zH+U(+3(=E*gM6RXt)E~Q9;+^TfrdudtC2^MvF)V>k<4Aji3e0l>QZVYY3CH= zM(FU}@#9fE1!E9+MUM}j=8I7Ck}1n%;l7nJzwFhifzD+tE+AhXgVqY&S*s5Ein*^J zw+{MO2hKY#_4afTfA1@#DWp62{nR%xKBFeIiKJ{ z;x@-|!SP1Nq0%6HL0gL@Ho)?FdszeG02vbEW9EoUltS60sa3<1fBXK=zlXN(B1=rfI0G|HS#;atau-UXXXc-c$)hn2j z2%6WZy2}~Xd0OOXIUp#*f~M1D53N!;my#VY2@4{J=OX`Xw#Raruyb!>J5CY3c>%~3 zj9$dvS*v437oLZdsY*e2y+Gf26}t&zMoZw=zYVP)lwbjlCv4;CsKNpdZ<6Ktl3)M) z&u`1M_V{)BH1w*te%i!gY>t@UuJhRALTpezJve$rK8MS<3jpyTem@()%>D9bD)b)j{*v3)yRD9s^cg4O!FCT}ar_T6VJtc|%QdOwz9`^qWx}x?Rh{ z%%yyprUf4u^M@~_Hiv=fqmJF!^Y}gnhA{p3o4-yV7{%;FSIZ|oH`51i>1)ADd|ry7 zPNX{EQ?v{!30cDW(TAtulg3AGK1&<>9128TDkDsA77ngsHDgMj0T-iWWHHRF6;fi8 z(lFxMj~-Q?Lx9*XEWPPK(}*m+UKWZK3^!bGOS$vLPU|Y40BNgH^p^$oHUNZ2n4O>J ziNaKzT_8nJAEf>DHu=O!e_$0?-6wdOhB_X|JtG&(&-c9$f?b?12eRQ4?Z+wr;9L{9 z6}^@H{uswOB}i~vOxw%7N5ZruzC=9R?GOHC&JDP1>lF?|H z?a~O3te+UC8o;|muNvt4wniNQV?dn08L>Sxe$80ct+Qs@9)SaE+|OOF!HyZ;x7NdY zNjOM_{ANc=&1tQ|Q0H0a9Yq4cnx_L8hEM*;JHOBWcMFF%g)7s#7rm>>cYB7drLz7d0 zk-9j@d}0j?S@N6{Bh1i>Jb+Un*bteShrl6hxV%5=baG|j7CJ=IKeZr)RNLCJHpebx zvS%9X`Lj0ss5>lk&j=W|mtKlCGc9I|l~UHC=^U0laAYxxvt*o@J75q(tX!w@0Ebk- zGy_l)Xx*lXQcqnErjpi~n=%$rz=X=1&kk%{&g+g-N-$;bx_vC! zQ4#_eG_yPXqz3XvKA}a<{?v!aDY7;YXrN=N9)w^74#a(}uD!ms-tQF^6LmUh?1d_g zv0qcCnD8oaJ?ar{srU!fFAx0z%3i63Ra53Q({b2K8kf1WdGz0Z*KW5mB=wq8XF2Zs z`Brclq=H8s8>AMA1G$vun%i6u169X*e_zYER>!pgrP-tZMs&VU*XvknOCBGqAK?8G zy(G&MM9J;jD-dJv5z*B~-*=W8AF0})ngmYo>+GiGwrxwx^L?H7dcOdXo7e5}Sm)*T zXmy{L^OA--w6{O`itjB4pW>1D z%z!Wq*o00-AE-Jm$$W4|wBSGL07ZyHKLb;PjuJ5Jt9i~c?N9_w%bkoH7w?%y?`xJWN=>KP#(@PU zwu6u!lmAgV+gnhVz6CCW9f6f+7f4~9av|tuKKji04G# zxDx}qUgbEzWjKa}MSWcxq9a&%V}@IC--8%&2z3zrD`_(CIhZ~vqQio_fWl+hQ{m#& zQx^|0`<_sTmSnAvolMC(SLfaLN+MCDpBxPaqeoAJ(-mTaI)Rf4>xZq7E}5b2LuaAH z>;qE)UJAJ%i~b+~`ya_AD}Z6Yk7WQ|6L%{kGfGm$Aa7Mn$KIG{I4nz7)#4@>5x!L* zL-LI~sjZ<|Odm7#irMj}BeHd~LJ4sF)9(mB)%TOnXz#R8|L@f~sg5fC(7{&km{Zot zqoc1+IRqjMS-$01KNK0mQDw%4R97K5BOH=*SBj|?U?LYdBk#baE6Y+MmLSwaT)%qY z*@&^a&V&pgn(kfrz%QgMF+q+`cVkUE8=V>s~+@-cfhY=ga+mJ#S-MZ?8+O zV`7!7%QO`m9524)s^;pC-$s)?9b2u#;vnV>|l zp@yz8-!LSX1NG2c;f}BkgBhgaoyX_BuB-Zfb`}d_JN8>c(zu0)#T5+RmN{7VO z4EwTSt44^6>=LrmgfFm16?aIy5WJdW=%+DlNIm02m$m8O^hSw2oY+kfj8F-L)YMPU znMV)&cc-RG@3 zWK2-o7jp0op(YhfpyR;}kpz=r+(8UAD;~>$N0*YZl-YZc0+noRofgWTE8 z!k~rUbf`o`S%P;i4S`d78WZOMNx{%*?^y_XPL5%iM<~y*KC1%|R?dBo(No8Q3N5)J zpj#1OBE9X__n#|c@=thrAd%AUt4JWXz+gq(tpn=}Bg;>uX!1*!3tPM*d zz!caGn+Xe-DP!qV7vQ~f0C*8?5pgHul~Qvj`4FQcsL9%SGA3BPr|1GIhCIzX^VgvQ zm@Xv_XalQkuDd%%*5koFBhlJihE(Ku?sMki1xXFaymarsOI_?D3>ci%>F&Mz7a|Q$P=oZh8|4wx$QUA;CNr z1@M1r35=g*D~G0c5rj}Q)miJyQQ&IN+=p(y1F?g|VN7@#ewru@*1xf|&GWp6m+v%q zJe;t{EHl)RD~2DFZFKN745l#Hr9Yxa2vFz{oh3uyyMxa<*&2VLCJl3QN4doIV#v@j z!Xu2`RO#fOJncI>(Lr#e6M#R0Ql=m`1qv_fK*BGZNiEh|>irJl0RV4>=nlKr6!~;~ zN!Qo4IHjUWW5|qbmT%E{Gs-^)>Vyl~3b%D!x8}(K9fr(dw~MsIb*;KXlyUjQ)Dk<& z=yXK3m->GB%Rl&oFI_hctwaDVO7gK7c_(U_f;yz%*S&WPNhUWr2k$Ve;JlS5mIEp= z+xcG?CMp3TexdpmUzhw@jw620F&Y=1{$-@?C}681aftZmq)qn(ED^SG6MzA*8bnQ{ zy*FyDF?VSZ*_qZhr^0B-oiz}w>~X813-bulRyh9iKm7IIdOAxoG%eK%vj!T8fu5F2 z0S1J&v!QwQQ2nCe^or!E4P9&q1AcB>OPKOLSLfg#h8DmDE=CNLFXLYKgrp1DG6c>a z0EuI9;m{1#zt$m7eJtnq+gcKfF9gn^-rm-vtczB29_l=|^>V#$x7X|C%$9d<`}p|y zxLzKY`}ys1a16uKXF)$Mn|#uxF-kSu?G3YKoAT@XvgF{}o3TWyLtulfq8R1tA-4fl zDh1q^G4zC}f>iz|?q~qU3hmN_I@juc`P(0V{fB>_ULVevdo%I0zo$} z#CTd{vw9A8e>&xk7~y&Z!0f}}hXYqufM^4>G1s68Zr(i_u1>UbIIX?CQfxknXV z67+nwmK^P-!jyYwDPdwlp_Ib$0YKnW=PM^zp?)u%V53H<@Z!b7A*SL?kD}~!HsCy5 zO99n*oqRh!DHKvsf1-RLqlLuyQA!1EG=S~B4D@I_1DUQ+HScJefQ$hcwcL9 zonj?8HjCMl4K%KM@}0y~Jv(^i%=eBu&kQs<0bW3LNb^|gAkPc|$&kMInmV+-=8=@M za^8WC5Y&>Xtfd=U)t&-(*=`>ZC8oS606a(GEvOe3N=>aB;}EZ%OK)uNYg=5lAazi4(VWMdNaxSLrsOfupVWsc^c{vCh@bh zK*B-eJGg0pKoJk8_}%-z{N^{m`SEYUZ|7D6x*3T=H9(jmiG|?7TatJ7gybn5fun-XA-@DZ$T_aTfNd8`+WSBKOET>>qdL>rZsqr=o@iJPTg70$y)G} z^K1(vzC*YJP1RJ_al&i^GzaJfm|vCysSv8WbwCA2Z|30~<|^Ii-0AxJ|NQ0T0coA3t+1>wqd@Sx@H-g1;-}>*1Y??w-l$W zHWw?t8gbWi*a(kxcwVO4+tPq>6vV%$;EvZHzHRgnhFcnFaVWf(JCcPTZy&e&JcEaM z{qptW{maMoe7hd#>!*0;Ny91w7|{OM%qtEBs}QURNcSa<)$x$5floCb#rzlKVJ(ve<>pvs22k|7=}G(T=+?&<^hqN{ z6I1BVVt{Bu)|C=exy7s~iLU;rO6vaA_Oe-Iu_hn_~Q@X0}LYqC|w(`GaELzQnD@i1Ok$Osvz}aw5D_eSe>eby=%>rJ|Zca zcVdL|jIZY!+04r=gX(H=6LmA#3>ZssCOdU zwhtv1NO*%oLv#?46+}(&oWqN(qU(TBBs%4JMrLq^7Y{w#L`>lKs8*Isk0TzzKE3RN z^J~knc_=%mVm0R9DGSNxZ>#1C6U-an@ z*%=)mntK=r=#%4a5dtL~4=&~3`o6c~KRw%3iOo9zaZHDMv5h;(_eyuy4QXZEmR;?v zV-Q)5G_aSh7N`4Gg57yb9gX;;eB#4+ZqcdRdm#XgCTR!LHSz&}9f4Px!|~+}t5DH; z3L^T{N+*X#(xXDgnPa1e{>pa7c}*{B)uIT-j;^bR?|nd6vVfYuw_k~kCPA89A znM!o*5tPjyz6Y|MeZ=Gg_4KyY$_p7q@!=B%$`zD39ZMsIn& z*DiqU>ax+%u~IMB@mNOKS^(byl=3Z6ry`1u6uf&Ps#hQkr`y+M zOkO+iOLX;;v89=1u&Pl zF`4*`23ENWYEWGs%sp{}*DXy3X^K+-;M2*0P%nTAlu^b<3@NoiUhMKL$G%>Op7Uur zC%g&``8-Vp?3+_vQSniXDZyMv0Vx!4i?Ra%KE5?)0RoYgiP(8Y+|TS(!#y~$aKlnu}{q2`U! zb2Qq^E1kah4zmo=-z*e?GCMqJNZ`49Kp}${BaKfg%{vgP>M_}>^U(Fs9g%?{k&ekT zbcp6w2x4ST1(OFwuR#`Hb_P;Ce@f>^VGYJzV3(gMTGI2#!d%d%MA@o2p=SBOKD`d6 z+#L=s$J7e97tpMdGG}x%A<=x`YpkwMjz>?V=y+uI?@2z(KpqgRgkv-KPEw6>+1N+m z%fm34RNA^MscvaVBcHTf#&JhHuV|~E!4nv|E91J=G?WBT(_?BMGQgi)^5GOfpxE}g zK_MCi*TNT!yC6OKkOrJ6;hvwpEyHib8YdOdjEeCu+d`^7zAIneM$ZpNM&Ghj*FM3~ zEN#k;OxrF%beu41k>j@SOv%mQDzx;Uq9v_c7$i!iqa9!Pp zoju@W5ptqgG{DhPgCq$m(w$Ljd#V~qj6iJ4FpO368h{p|Ero>?4FVL)v`J@iB}Ppl zMx02b2w| z0_d#`KrKyuU{DHPXjj_$*h)r%5b${%zn@$3vRbR-o-)vgK*cmXJ?4M;i$DFJ!u#Wo z=Tyr+qT4D8zHPRi7C$*yuka7a^>EiQO?| zn;-aAoiY)4fHBHk&tWuc^e&cftm}@qGNZyikrUNXuq~Na0ZEDmG2!%`Ir~ve0fGVk zAcsuh8EVi_+_g|CgSSD`AM7*cD&*ie{eQsQNJLz5^y;?F4uf8^^Q$B`?8<6}=X{^!01|?wH4lrb9L~Y#1U6zD6QL z;K_-0fk&nksPN)6M%jfZw!}y*X2Gh6dhvOWGK>l4XO)uwvY2hcqYY z)LDXnOj+K90e(`HM&5Cd5|xt2%i?-=?obIPC!b+oGUtkpV==gAwbzB!5c+D)zM>rD zNf@@oP{JTEs)Y^wY_*u==N#|fgjRd zASh0OSiux(MX#jwZH513C}S&l0(G?!RO3zn&bVD}_sqLG;eT*P8%acfU;p?v4QX#R)pLZ0)Mhg*1dny&ICpTz|f~fzA1&Qog$V~{FS{>Gf2jtV-`IgYH35Mv^-A73yVie5EuWR*EF(oX_Va^E` z9*q|GC8WRipEE1XGlEfcdwT(WQ;Aq)yxE+q@90hL{B+=Y$)4AQ6a6!(;iWfLGpPl# zUssV5gTl$xP%WTZ?Cn|(lXommp$?!xS*|1KYqXv~k{ph~yy`m-5k-oJV~%L`gb1SW ze)nBJp|71EKmO|vS@TB~#S=-)yc&$7&mCQv#Au%j?RxMo-$PKY* z&blH#$!!@#67h(B_^t0wH16(j9;{__jC;d%?Rrv*Pz&; z>s3@`rDH=@%@*X>!T1pIk2u^@z)z6NX)pGP0q{T@MAC<|CC`#aZ$}a-T;9I_;ZOhY z5C8Pve*E?C9pbS2UiSsYo)Z8qoWbz4SOwe12>~Q(<$Zv$yz1-JX?jjbrPb8Zq*D_z z+K{nW$Sdigd`A6GS;fRhN|h^|YfFLAtppamN-u!OGFKNT-99nYwWhIX9dGc^-IVnT@2!my7G8wLEf zsMW1`kAY?=YsLAEK9PhCA4iB_QiX0I-7jRC<^VWGhw}c(za{iyk+qZAGwLvm*ynb;B=B;X$BmLHx{MEdhLfLiH;XWh{v&>sGT+l>WLO_Q36C%d*s<)wKZDj=_H7AO@RN#_Zo zfOI~wrgj$R`83gCHjb*j^sxq{;NjbdgbUq3UA^9X@8`};@z9$jd6sO|jM|Mgd*+oJCB6Dpp@ZJn}gj5P9@W09yP;t)t9cIL?+Z9ZvVGp?NU zVSHO1usCeDx62MZyN9KA#_UroH7)XGqHI+iD;IXv(#K(<9nks?0n75izkMLdKW|%j zF%1f;3rk6F3npaO7~@HO1W3-2GVP9f`@!lcm)_8EaD))I1X2{YfRm=e6d83C&N zrf!NV>Efz&fg)&4*rBI^<^uChF0!u7iH14E0HFsBJo+q#Zzp5|{cG3==^$FlW&cyKmd}xV^tW=JVU_ za{F?b$mu7$5Z9 z3@V$%F-Y5ao`3nP_jovIm~djCWX)6V;WUqT%*UkBE1(EBuc~4~E@Y3v?^{d2Um@wk z$s)sb;#MOdEXWvuG%L*I^5s!Ew>?pXg2UsUi_5D{SU0JxVF3v*uB{bcec9eFZaN)f zoAV2~cv9jb;@=w+z-3x#lb14S{CbFBO=&;gD-aX|IKvI6&Fkg$wyaxgm&@aPS*~wizP@hD z6};Zt_40Z!;X1tvVrQ4OJhiL=WjT{!3~_ma6QzczawhVL__T4o6BpEKtCNXptH0Ua z&?_g}azi+x51pDGmL0k<@Oiao2T5ce;Ua<}CQR5^toAep8fed?gQgZ$4bE;{+gpOhHF$-$TQBpcQ*j;epVCb4qV6JLx(^HJ`};Mby(gzDq>SbjYcd(8oc%~15b19S0v2U4kr03pOGKY_Hp{di zRG&#>8}5~6F)#FwwE@9%x$@hXC+-b2%#^Wthry7DzaX!BX2fi!MXirOd!CSu#U+FYo+$4PWgf}Fx1vXXfn8f!9|Gz|oE z*C(BsFu9oL>jjG8jIskn*JEy#8Q~t{MWk4N(^Q`d%C zPH=(%H#%aFAI9>Rzy8x7|Mqv*ecWpuQGNHe-CiFnO>*Y>a(%4x<=gwRUcdeP)6ehA zcscaM7KFYk(JGRg>aFaU_lMD@Lg>X0EG4j!Rh_mPd+hc(srH#(J@W7jHD-lm3X6*R zQ!l}g5Ff;5CsLuAn-S8WcG+g*ys%BqNzMueB18LSd_zt8=mCz)*Eon~EI}u%s7_sl z*Z5LtA7GK;X@22wS~WAqln7{A23Lr06L-za;b^G!#L~|4nn8nNP_4RiC5uxwt$i`g zyY#k2K>~43_WdYjQ)%9OtIQg$r=cS0NBV^jOlCV|%7tTA2q}~z5mg)|)T9C&!I*os zO~*K-^8>&}y$po=QBDSJJ|6o1n3gp{PNr|8-KVBCy592HbmsVvW?vuy(pw^BXn)39 z=MiDOyl!zR2LxfQUtS|vIm9Uv^gXg2vZUgU8m^$gE!K4L6kN(E)q<_H0d`M0n)1zq z<4+GuL&d=w#_pJ>+CrBgyP@B=C5-WUe?IU@O+o9VoS&e>eNhU^?R|bBcQ>@sA9?Kv zSE35h>i;y1qXPlPL5Sl5=0R!P2hR1eyVeC2W%1D=phygquzXzrLG7tOyu=)6hD|F8 z(3#-*_x<;OKD07LLz1P+RVXT^J|0;y+j(@9M#J0J+jYl) zcfD@7=++sP&->aMV%66TwQ%1H>~>6qO z{=XYSadyOf9C*MU5_L$sQJ%<42tH`JavkP62r6;PVF#-gx-+j? z8F}U?viHljXF5N+9CID8#T_d##|~ds_(SsI?uVdEQX=7^4`fOj23pUg_2=LDVe{p& zRG3(xnO&}%AI4=Jx3SG>cq}^x|MK@fF1Pam^^pTHfv}mE6APa9(9RGD0Sm_b(VUA9R2l8cptKH_D78nSWHzFx2Cz!`Mnnz1h+Wt`@g^vdo#lbkDIk!omZT6MHUyZNPw7;neH zV;%G9Y0PDO2V;454zb^y@eBjbIt$q|C9F3x-ly-B(vxlEN0`?!Z+!5qxCM}=qZ=xj z4NM1OW#B!_)ODVF!Ox)Cv9>rg0m=yK;X1W$!_*1s;GyJ_Mc&ooVUN#{yc4{}U$h|E z%F^Wu&f-|nNl?q(&i8Ko_6m$+BDX&FPBMwpVe)?Ba^weTpoQeB`O;N`?NzYINjhj)mo0#+)bi)yK?z5*-GLcTl#R*mI=>8bH3i&(6uG za&LiGi`Xu{Dt;E*VvgKB@9G%ZS{-zq^<1&ld6IUNdJHjw+t{9y6x^ zqRdSwo38Get^d&WoWbB4()sW@<_h0a96?bfz3dy8-ZlwrfbJ+bNHD4)i+ z3w$rkJ54I!sRR8wc_7SWc;mkId%=2>QWk$&-i-u5H3H%mbJ+bv6Z8ZGG<%{94BrWU zZ|F6VjF$(r#g42&ie}vS`lzMNEe(4jK;g;ij-sleE{fdiL#T5tgA2=_{OSQ2_Kpq~ z-yGo5fCYaq?fkL&bwk*%@+E5;_Hn(vZq?`xu(4qSp7*(AMI#Rxa1m{H3g&V{29R9F zLBqc6hJC(|;G7Y7Ccmv+-al?z9m24(*g}xpK;TWOf;!S_o9CL^w#?%=UO!%!?e#j3 zuRndcp5MNG+2+gb(6P$kEoQ<`$2xnm22{Lqh!*Fl`I&8;4Li_7DuQl$4(6;)C7%QypQbzV1k{2+H!;Z_2|pp@I)B>we!{oFF5RTP72P%sEE{ON39Y1$fcI zi+!poo`_p@I80IbVkW%{Gkl93O=B4bhg#ZAq_!gjomqpCFqv43?>Prt;L6!*Vn~oPwqn*=#K1B zh6_X$_40oA`?zy(H&)CXfOlodHpuG%Uu3%j=Q@$!hyP_@UNuxxJp(TA;#M$1*@MS4u^#2bFjnhqA-5q3!!PudmM!87stl|3mFz?@HMDv-S5ST%dd4%B!;XSM`DXTCcsbpn^Qy)g^ZKDaAYiQ zh1X)At)JEZVOxCgV+&RU!~zyLpnF8d#{+tl^G>b($C z=rkTM9uTfqW(hsL9{FNf`4^vlm`3i!vVd9n#4;ZvdO-~=OqQn9>lYZB=wQkDaiDA9 z)cG;fkwp)Km!*%g(;G}4CT2bPTdXEWn@k85Wsd-;*$Xg=laX12S5K&*(Cxe*NQwi^?QjUyVeH8lmFhxM`e>91b@_3~9dQnY(3N$r zfX^D6TIYtgci-K=UeMxsbcb{4KOMkhXYV%;fuEPqD=1%vmL@_jo%o0ouLr)U#h>XP z!8bTnA&9OaHlt)ZCrrSe+*CH|LkW0!&|Lv&Qw1v#vP`Ba@AB23e|{fP{38fz^L6z( z3^g&dN|zB`Gys}Aw4yjicC<(51iKWV1(t;!6maqKT^}i6hXxkL1nK;i4$JH2Cx>o? zbyst+FaZ;DZB9s{561)5M3K5yxvM}IPMKxR$4JjP7fBM!d(GULfykS-6%Z7XLd8Fl z-H;7jPkDsQn7m_YDslcC61_O@#6V_fC7Z2ZAO$I;F~P z8HD@<2lXz2JhZ+p#5|5@T$>lglwOsq8kh6_@~tK8QbOJ?E1=%$yRa|!dAZy>tyh(xp=S~|M(0b?VBg}C*^-$g*^1HQ}oqX0(@q_IHTq)jk|{?{1_Na>2m zhb&}5`Q;wXmeC$yJR}(+S>P)HoY(=eb2_0r6GzmVDUw%9Fpgc90Zs*CgYtng zkivEl7ANsJG%}l;18ZST{mJ>sd}+<`(xgvj3L&@!Oo1K{FU9tT2%3NT6hOxz`_N+I zEfOpa7=+5aH*5y62V!ATuNfon#FmPT>LSx4adY4DzhPH zhOtN5ptCS@&gI~-iwV3YcBP=;f}fygQf37k-5oXy9Hfog)@t3?WgW+nK|Xa{=c-vA z$|c0u7~dveuOAn%Z%ezc^V^j!xi$NWQaZo={22DuC}+d4xTL|A^Xuv=9dC9R@NV~Y zTrL}($;NH-If0XmN=;*)y6!%-ZC#c&ZkO}<{8%3M^|5W|^L@E*>$%kF9vm&Fo z3AA{)?(J+3YDW+a{L%+5qfwSo_&rDRcg7v8#}ri)RUO$gPDpQ3iF7REv7eZ>(49Ul zYlQv!_3qW4XmJ+=rIDVhxyh2Pu{HlY`Q6Hx5=Tf(!+tm?T(wVtMEF9lJY!9`ao2hX zOg|fG+)wrkVmLV;K%G2A*nleTmGeZL4s4VY>BawNWKF(KjO6czc`fGMYn7i#L3IvC zTLsXA3ByET6HLcQfZ7ICA>Y8Zs0Mnu-~qg4u8 z(6ZAom(4AJ`I*j|)y{HspnYa3;rzCu*&Q>8epYHhBRhg*+d+EW8kZh4dlj)p1 zTM@yiykh#vfrkakYU)o~%|F#q+@-2fbz|va8tB?%bRj4O8H-VE`Ph@<=Ty}RaZtb! zPd%3|N`DSVgMR;)8vXc^4tN#4lJdr6ha7ycLvTYT=wNjhCEGGGrYxgeGr0!uO_L5` z!DRAxxa~|#@xs|4dcKJG$3Xb<6p{nAfE>1CSt|?~QtA(QPEPw-nI(o%Nn`Rx9wJ(A zX=7X&BF$Y0RvjTxFgkL(pKrHvI2|8fwp5wX+AHSmDGC>njFdES1!!dh2tV=~ZLV~8nWx)y^2OwaCy(r~7y2fW_tC_3cRsDnoY1ituq(uF%Q04^1l+^Oep zb1I>@N_vo>CgE5I&xxk^&Ang8h@2kUOB*m|KsL4cdh~>Efryc#jnE(}%|Qkv{L3mi zcuY21l8=Y6mq`oW1D*WYa_H7lx^V9LacNHL9`Dj&Y=K)#nU(M^Qd67DPVdXWYK-(r zZ2t?i541aH?3v$|8c6ef+F>%0tw2pi2^_vR@ab~q@WOc*KH}MHO5?VJhf9|P9NsX1 zb>RK{{^c^%vDWdvHP99y1@?k7DwS&dNnjGGR1cZ^ece93oab7`5zVm=zASHdW@lDB zSngpHsWgf6()M*}Fy7neb-pj_yj*7dW}DYE)HdXHep?6TkJL7f<94}TF0Ys6_5JzAi|12lQ}#KY;HSqEHrtX5|e|Pw*7*&a-A47L3MWKa)CB5TK^7JI4?{DkcmA z_5<+6$+Qw|)5xGkT)m$RBp_MUzK`(N7=qwrJt9$81(HcW!C3h~kOO}wdTW{sQV_AK zN5UC8ZZj?somclKTaG+1EP==gMIHdR{Bs6qvvn#I+;ZF84COb1RApyVF{xieX{8T4_u=GDQLt{2rBsw1YTe z9qcVwSOZBa&5T12ky8R+YiMj7eZ2Gsp$67NtP z%QX-_RVQ(Ri=UcHY(-prDk7(Zj5?xap|f+Ur32zST_T~v^}whtXb2!HO(P-?o_5s=#(b%2)4_K^e~VhkTuc9ofNmhcYa*c{_Rh` z`E)ZPwk&UJ6KZI`v(ANO@#$9;U4$-JKL-8P|fg+wm!Z5C#`;c4f?|Q>qUQ6+4%KC6Pl) zloAmq*dfs<*+1E50#c9S0JExw?xn+WDNIo)u4<~#SwVrihJuA7Figt|w}~~3EiTGD zO*Z)u#TauaLX>bUIywTV1PxKP2OP2C8N4@0adGRnFNJA}2Xcx~7~7*w@aLs^Ra~z) zaZkv$H4ep*N$ZAPuSdyt0>d)fdK+6{Y+Vh6M8 zPf?s=%V<)jLBghy-nq7P;BWvoLm-v+b)J9v)guMo_ErrsZIZl0TP=CUc5DKn!?9F8 zc^<6=BYg3y`3#i6Dm~S*(Wc3=_>7kKg0Ys~LC<+pXtT%L00$Wq=%e@1SM>I=dm$T+ zG8QG1AP;m}mqg6;f?G zKwc6Wz_Cc{GUW45AH%R+=bSuJs8a9}nPo;uWbemi8OP+9D;nCL=e)G1(Eta~aiYU@A>bat+z&>pFP zRfTO1WfA<$F%tRLSSt2Sa=@U_(+-Kh#|Mc`5xp7B(!-#{O((98+1ko_t7o$W#VL!c z@ezVLc8MZIA?{IH*?>#&Yb6R_m~sHuJkoc`GkR6NIA zWkiNQ^R=CI^UKy{oT;K@@6JfFPTefUz|!WNSCi>S`JZTyX0ZFQwD_xhe>9; zqV7h3guyZ{dV^co>~iH{RTQ_?AVjLUKAE>+fY_DR414c%N@Q)eD$Tn)W2w}GHvuFV@m-*9X&8vx);(763_NhXfR>!sAc*8uWnj8&jJ~5=3~G z*`uhjZYYyz+e)0~_IGkZ7qEg$9XUb7qw0(Yb%}ze*nmQ@fQHh@X04%i`hnlZ9oUgm z-wR2wAmTVwE!~pI3Zx)uiApBhD%#^y#{u^#&CBgzLfsN!K~2q~oYDkho4#Xj?i5;e z*u%Pt#F1PA+8N9gNs;J*;32E+GwNNPGC<0RixsyWwuLD51;l#eL(}a}FC;CJc{(U- zw)eSX;0-&L|7CDcRpB7s?TtpIRYLL+RdCIZ)F|RM6474Kj1rCEM-{%QYTl!x4U?R? z*K@^989Y6^jWWUHHCr3HeGVsCOmO-DfIxr0?m^ml%Cfl;edf{ioFB%v+%W|nKmO*2 zwP^QBUr&)Fh*T>W8ZXFDD?tz}8k3zKzID#!U^Ee>)H69bYM%N8S+pq$!wRiEU_Ek^0y*X3pQJX>FEh@Z@FW*@-SI?u5cwYRPa>xwf2xwrj;hl`KkZO*u zR^%KpSfrCSL5Oce%`Y38&HH8y-vDR&p(a>kmJ-TbhxJ$g{JYmt#IF0>b!3M7us>e6 zw#@tT)8Bu6JC9{Z{5t4c0sp|xyo!E8po3)VoQDR($ZgGJEbmk_Y$Msec_`!M?b6!L z{&l{utpJm4wefl$@FU=%*7m#n)d2Bm=vd+t6BZ~Xj*8AIXCZIsWR~T#`^+aYIQiKJ2Jhg+#lmG%U9pNCpgJ;-?~` z9V`S6mjTeWdWsYMxzK- zTY=#Gv#jl@otF^_*U|aBb7(g~0^O>%64S&hzDM9FhiXT9wOcx>+3y1|rcf<+N{Nm+ z|1V$DL?9gVvG|ES-ecUBCx=SsL;(`qhkj$ALsJwjoRk z193f0Gs^US<2TXs3u5;4zO{@`DJ?|qw5`^s{eQ*HDbLypuk z*85L?^Q(``x|cSV?1B4w;=z7E0wx++*{p;qz~wl#ZL5B{Lz=PA_qitS{^?5w-P!w6 zK_lDH!|sVN21;9deccx%02T_m7?zhId@qBR6;%X?twt1Win)n=L$T5JEi(4$%+j z+R8kJ=l&IL1!T$&bIa^}eF=0%Fw;mLgXM4nlH@!@b@`L~tH7&35uU^`op_~ErwYCh zrNR0J$m~#mrdX~&U!zJmgYlq$H4im9PHBi89kZs)KvP9gRYRgXw&vO-dUz8WV>d(ZPDgEp{IqK~?A6Ug{tkA+hE_Mfm1K>p3(=goiwnuYJAcBh689{UQejNMn z<2*8QD+l%Wl$|QS7k=LuTA~f}ZJ&Av_&@B+mUPe4`Ub*ocB1p`>?f*-gU@NcetcZF zac?`+4Jp(On|WecM0V$88{4?9HKT;4k_P<8TfUF-+@W7Zmpas1*O3#r0h|63g2Lfz z-C>mbw(Ntye7Vfy4tj)R8gyH>QXw0j_o1LkPChfJbOsE}#P+&xmzkV}<$Al1%iG&_ zd3$@kE+FV`k7cenwD$f!&-Z2A=lSvex=>5p<~{9uyU(zC-yYj|h|$JnTw{3>sT0!j zY|Xl?3i8cSTaT#rImFZoZ~B>%4N+*N4VH5m_K7PG+YTIjm5aoX~v^j;HhH;fU;bxm$okkt9W(vpS8+1bLcbl%?ALL-GA!$)&3w*%8pm}W2=a^ECZjFJ0~~Xk^E4!U zUFbkie;IB6glCs|zp5Of{;`E$=`6QFl( zjrhnUM!Cbupj~*mpVve)^VsFRIz>c!5DI9+6)|UUvK2xe@7gd@%lx4s6?CShwpLPw zLGHejv+K#*O&(e^#HJSz7FGbO_&%u*o=S{TQy5@WvnN#BJNNid@p2}Y{eEBCicuJ7 zwEHlBe4F80UQu2-?J4+SJW2wSfv^UEip%TheHwvDr2Ds918mZ^xAVF!*Y}T)FCVx2 zc83|yGPXSp^V`P*9%X=oFSql$kK282ts6t;nXtQ*9SG@(iGl&yHTz z?^Akl)XU}+pvRRJg)A6D;9J*lz{F~xJjt#vL_;U1C(+Kh>sC0XNrCA~wPK@eV{tVw zWCF#+n0VtfNZ9u5j!#n^OJrfuSDu|RluVAE4H6%sXd@CrKq1rCj7=5XR0g9C1IYt5 zDr_4{BFCvJ>0&P&T^ZPT_jqgexFJ9;(` z&70`O-0ED^-(;kKqZhm&CzeV3ajrFC9R-manEgzvfiYsKN(UHn*ynUSM%jPLIvG@7 zZHJCp(s2MFtwv{kyuJmsXG!{Kq{%*kwz7sEXu^>C3^l6v9_J@elhU0&jZP7hh{oQN z`$xVkm$``n3}~=P`lhpF;9M}{sH-=l6J01gC3MMUDdX0tE6b(AI}-U@#;a6rj{)}# zk2dUD_6pYN+m5m~1PVS8j3_5*pHCCuwkYRC2pq8FfoMi+02oX6z=kREtu&;;nCIl* ze)W-EfIs2D6|+DaE+F3Zw~OXN#Z$c!$VT)~s13Ch zj%zEWV+nXdQut@x=SE<+Fh14S%Vpi}BWxRq?;`pzCb%Tr-YJ}=vv{5IC}$1R0atBug%rrPt;L%cW)mszZ{9aT3K_&|0~K zx)=t}f+=~D#!r#c8$um|=d{`6ep|P*g~;oPYMKZZM_+>YH52pf)EWmCe-|{%7HEcN z*1%td_Y|{IjQCDD4b~i8BZE@IlU}FqaKfcT>|WraF^@>mo*TA>0juw^tIb2u)s}fW zdZ>m7ZpzM%?N_J?>j(-!qEztRp`!t`u4n|4Ptue39E&0cGq)92 zTG@T{oL~oQ|^+{a3+rq9zBOw)K6x!Th`TM?O|Z?^@m4k zTZ_3s{}3`gc5`A-PsyfUQ~pjWNYjQ}kPcm>!Ln^mOwX$$ z5i$8R^3<`yJUMm1L-Nn9EA_X%Z>wWczRLBG>*qga5;(!~5?kN6O_g(tokNz^nI0>JpT2m_^ad29^0Jbqm z9%o8g?umByE?Ih}ee zSh>y~)@#%l$=Sygh?IZev*~b2Q2QGhq)r=)-J8i5!=YU?Jh>w%s<=}epup9H&7+_I ziHRmgu4FD!s0jc7Be(p>N6OC6mlEVo6O}J-i@iBnNKhXrXu%8N2hHz7kgwx`^6e0` z365x$i9#nKZTKbOX4sS9J-J9Fu;bnDd>er$dLnam&wU3lELHk4LO~|saNVFH^D(!r zrZnYs^qouSPD^n^r3$!=^G?=f{0db>3n0xL@ws)%)%nlGdS|7)s->;!(zJ9oyW{iKn#V0kv^SW1Yv+F0Ws{Jmzg(Zr5d=Ve7E(;6O-L3}nL(z_$-v zVIdM$b&Da0!lYrkB$u+AdHQiG77xK3`XB`c;}_9sDc4Jvudjv4J!YINcw&+th}bbX zG4~ah6E++~@`GX@abYlWulEC|w$>^Win1Z}#Dp7qJ+gj98hystyZPr|JmgS9Qqx?z zC{-RQhx}{-L^6Q^qD; zoP&RrVW~q)QPB)QbsX_X2OFI3nD1-%5*-1_iR6+zxC6>~%#Ukz6KU%?0>MyKKOFk( z{J5?oFJH)&f@IOa7DH|nn&a~1a9g?~lv@rF9N#&lnv`{vSGwbdt9v_xwP%N4f2kpA!7phit4jc5rJ99 zy`i^+C)oM@-m3h;U?B$YUCiXXPLRN-`R#Q~`&QW;Y+Lf|+Jn%@1`sJaZnHzfIe%AW+?z(gkM^=)Y~nxZ0^BH1(OlPRdpi zW6O>w@yfvLn7Cew8-aVpcrsd%`I{43lKV9U+#tdMcx6z}$-?P9UPHi!Dy|bYCUUGi z_xMdl)4^6DwGp2+OR5?Uu^zaB1U9~0VV*Ec)a98?i$qhW=eHtju574zw|_cgVrUyl zR7gQa-XSt>SY0i=yfnCrDf3j3xh5g1AUM25!#Nea^t6gJmXiQGGK$2!g&mM)MdYf= zqLwd*`Xn#|0R?&YJ*5cZglg0_K~KT?+B`<%52MPuW4X*I+k}ApeUwInlEPE>{?lD; z#bk3UMG`@hj`m|86ap1xblm5XxdUx|Q_p}H1sLdEO&+(2#J(X1d?{={d>baY zX{L{#uBgVkI;852$hVJ9=nRLa=)GgeoR@`G@v~g3)0dAzc_Qulaa>P_56QD!D!yMo z8ZC$B^D=Nd6Q=KaF8lnv1?W%hF?J@uc5Qc&V2^CDkAxBg;4w~*4IB}tU;ILD*)4}64b(Z=NFrRiYCS1+{v?dA~t#8MB%*VdH-H>l7 z(#j{|U?z~lv0bS_j8Jw9{4sGD_!=aQ!6ASl^YmvGvH=av$Z>njkI9VR(-9lB2S$V!0UFn<=wno>@p3PK~q9g&EQ zap5HP3CN*bMG9yIgq&X?S3#?{z89Llnr>N<= zzb{qEow`J#jD~Utgwm|<9QP$Uz0tLgbM6iQ&zIXAxC%vB=1ttMJ1F1S?n+ix?gM+= zVH^WKlF-&Y2t!ta11t4#AER=WPkpJ5k{wpPi7_yE-&pX)2b@X`&REE_H}YI&=!s+J zo}X543x4+Xv3QaT`N46piJk>z3L`j$%Z3OiaFS%%IdInxWdkRkhhv-|>8oh{^$K<| zJgxhp00^4PMT>9=kn4U9TU2>@Z*q7e>tJ)|5%0qhh}|*h$vcucHG;m~ z*wYLJi4Q6J_BfA&58&+5x4mpFRgoB4V@NR}FuCTUUbfPZ6-lzjZ0Fa@it${nt?*5ZhwIl-8An43@^l>TTk63Yb?o)jXX;{Cy9s#D8xWBEuD<^xQ=Z5* zBmwS|sXM7Xo`!MH`fDG9?gaB(0k5>(}d0$xdm1U4T$WMM*yCX+RsAz{5IzuqbFp&lc6jjPr z&mLiiP*@s&oA+=Y6P<|odENZM<#xF}2JECrnwQ_I19!{2=;Bv*7h z%aoP&CImu!5{UQW(t{T){2V_d-EK`$zzh?S0#CC&5eg}p#sYp&=!VvU18S@(jUNWE z%SgoUCVJ>%ZUwuuT+4KF1bxwZ3B_WRQfWiw(L~Z-n2Aa2)HV*B)m7#!>08&Ba6I9ma z@%C*AKH--!^Ba8O;MnDTZ2@1qU$?eaAQsR+G>9J7R@Q95y^eavR#5>TccY)T9)NH#@)KOh4%;tB}*5#r*eTD!TC5^hKF_h6zT$oKOt8 z4-}+CE152nX<63<*{yIgre$Wuy5-1w9EDt+QrHW+TRm9w*=|q#5^+2heL}lV(sG;x zX9-0j`Swr3hh*y$DH~!n5T28U&m!fX2EihTVOz`WDQB_Y#x7-iP!Lf=_oHmuF^IPr zAB;udAqtt$Bzt%A6!7iIi34Hu2*s?SLXbu*(`=A{L~2!q)_7AstWPIj)^PGt$4ff_ z%_C8XN+sNPIhB38*TCI$kEI!MAF^#adX)(c>;!s<5ks_QU+$P|Z;p*$MVw2d4ClWz_( zPlrg4go%zlLdJ0lrW8JD#ZjY6*QI53mSvUN0EZ-@7Trs?ysq8hs3jWkkLls%S45Vw zK98vk{G*xkqaoynfvt7!7%6Q@9{ZT!PNZY9d^iNt^}(aSl{s}28xHSvO2{8P9_SMk zG_31noF}|Wvq&I*8lN*iNR($*_chup1$Jh(Rnh~{kyKFTf%56TcD7d~9 zbh7BT_xtO4$U|K(NQ3tY_`&0S9%$46$QA*{9Iv%?yKjtzN8Cg~obh?44e$E;?aSNJ z)@9!3*Z0@k>^)H6@%@*#ISuvk@w$v2A1e-ehkqe>ItH zf`kttPoLX+P2@6q6$ixxmsLR?QLG4bq~Hc4W`zgltH(S`&;Z)?RjutV=>o0L+&oOJnr7oC{7N&S^=|@^F&jwSWjZ%mjbr9Xo_$ zl<`TMOY)(uv%@;Xfu`+ZooQwi>@o3g;9=9|7?nF?4C>BO_bY#M?&nI4) zeHZ427yn-~J_%14`|Jw=${=4nwGtx2vzeB;KRN_9ES7!AwY;BzJEU>UJtr7bsRNR# z3dGQL-g%-zjxgVejt~*e2Z=?y5V%Q^Bx0Di>N+<48MLW^Mq6o5ZmQchj}^Pu0-r7< zr?;i$00a6o?>PiwPMP2V<^e;U@8{RI4c-Ru3HOCG#{K=vqoj&tOG2^Bwhu{xKJ|W? z>kbsdBZp$Hs}?0DOJxn6H~wztdM$J=Gz+x)oQF6+Mh^7HF_{qla< zw&ikpY;9i7kL`R}xAWWEbr}yQfeN;fP%qf`xfWdfEQ3>IvpLy>6Qd-LiE*ZHy6J|p z?3p7c_p*yM7E%4Urd~uG^i*zHqiNRB3F4~etJB6*?FnJ0u1k+cIOc%uk_Z+mf`SL= z;y?$R_R_O>3pEDJL_ZM-E-O?N*>dwBvseGEARpY>7+Nt*Fb@cF*?;)m<@Cww6d56E zItarX&O2DL@ylvgS@2-mjMy;9L2*+N2NO@6cNE{eH_||pk8LUSIn(Ixjyuo`)be% zsAedn=y|SefH~BmW)kgeKS}maW)A`7IoB_|3%HHL+C=m0u#YA3X+j7IkS%S^Gs9$Y z<#XqVlcr8r&!CUG>}W#X<$Ol$Vc zQ&XD5?aQ~vUK8XMF^zMDf5Q3EAgidm&z`YnfQCID`}y^bYFt7FsJoB%_ZxcVvbUXV zUje^hAUAZ^!}9fg9lLcPA9=Ta}X zZExFUX$@N71vH7)uD^U-)^)jDFU#ZdSYChldYLcRW!vWMe7l~{XSnj7FZajRHh48) z-_2@=yTL|f5)R|K5ScYHY@KsbEPKPgdv@j z2ap8djdN=XjvrKz`lvj<_Cu`{# z?5;NYi97J)z*xS7_GtJKa{qmBp#Ky^uM{XCYXM>0NkRwVCk+Y*C+VB)fGsC_@|aMi zR)Kiu%h8*?Nk1=Bc04Hgn<+josh(pF$p8xTzzO2KjrrV_!b?V zFbUI%`xMM3?-S0YhkD2DlBc(wQw!R085=N(Ny1C$U!*Ak6^5u_?J>hKZit6&tUV+j zfY8Nr@B&8wpydhm_Gw`mr!?aNhe6IO?yO%URF1st^p1Y}{-@Tu2=WR!GJA?kPZkOx% z`t4fQt@-uiQp@EH9q)Zv+xWO$#&sD>ngL0)x`NcOo?lUT&$riaKfGNOeJ}nwd3_c#YP; z;W^n8IK3ba-j)zL5z6E)Om!r50p=~GlW54vfYJP$c{D5?x|OG)6>{t*?Xl1}1p^j| zW}pS+5+Bjq0d_GfJ^*4Kw>EAV6gb{~R(E`2k{BO`cN6sq!4h{OcMH*s4WBNQQk0li z7&#R$z0Xc;D-~XOT?ZHd@YWvRW+#S&ObMLNaBE1hExR?=F^QN?*O4;L4U1;joBK|Q zJ<+`Cc)8dV-NN)HR7&+Xh(2E*WA}Xc?Oxb!czrC{XRXjSgICYY<`&aIzFl%2OxiX0a)BJUtzcfl>VejWjUQt8biIR#xBIu&9m8?6uF)_8ppUHp!ZUet5u>x(=PJ6_^=$FTJ654~M< zJq^9)*K48B7rPKyk*0m8+$eJPOgsH4P*cXGRN0?2qAE~}8J)o*`0P*pB$kglrf9$F zCZ1RqJvecaIr);1OBZoLr+M@N7nlAs0BrF4?)bJ9U>PEYk}=I&%Uz!Dqrcy_buNYz zgbwu$_0s2vrz2|(RoG!h6dC#x@cqEbJC6mRY-x=XF^tUGIsGwza3H~##`aiJLlAPAIj}k%Xr@&ua|Y(3+%+; zBiXL6uU}uOQ{LXMYuhfD4TCahIPTlHoo~y$F6YPE=6POcc;_t3^>TiFefzj>>-qiT z_WJGZ@wk5c@UfiV-p;qTrR~e>+v_11sf)!=5AN;lZ(?%=2?%l;WKk=6dn6I;JZHu7 zpqZpvK$xPm!-~3;0u1G?qs2nZJ5VI+V&zLo;{&M;WDt^{)Rc+5FIyn2>o#JqB$p)p z;>leZ9IG%dSbj(LII@cH$+F@33t?Qn5s@>HC`TTqZ=9PMo*_xAJ(XX_3>*Yy+niwt zq&_2pl!avnNZJQGXFxXtGu;@OK#-7_H_gqh=p5}v{hTziskb_nCqs8t4`>|`C$n-8 zp|i6L%@;>r?32k533SV?_H_QsbLiDFKZSHCq}%(~D_#!%gt+2>=!!Ew_&@?eYMw8s zEh|<`1bk&%CynaTD|p83ErlG`^Qzu@Vsf-6d!b|pn zEQ(-9Ohe!_&I2mj32W$)kr#}ta1I=>ICzZ!DWm9t5Xrr9qJJgB_u;AUPSmyqmUc9l z#NiK9DbvB?FOJj>?r*=mkJB;wGE8hxClsXS-Ko#HJ3y!G_6&CJZyhmm5CkSteNtfj{2343>wps?-4MSc)6a!Ny5L!9bdEM0yr(JH0 zDb;lyw~EAfM!MH+_P$-;&ht7mlcMg(bf0OzQ@7=QNBPz)Z(HU9DpzVVBGw@0UB_{K zT(?rtDa_wK#x~Ejo$njIHm`Nw+P+?IkL7W>&u!h{^8nYe^ZVOnge}QFuD7q>Zp-=g zvZ3F-JYaIZEw{_%^?JUZANR}c?c>|eAJ^9}KmG8wZp-pGUmus-?aR;K4$i4Vg?T-} z8>-i|K&o6q`OFUzjXkJRfVVUqCG5i%*}RRE5=0o@=&$gKAr0>%%510F+k^R%!Lm5CDSC&zkA@07t^w1^gGEc{DU^ED~GD z8K{%GPQ{B1rF%U_T&+R5N2W*jwu+z)eTr1}gzkeI5(1 zC5oyLqX{cMqDqLZueT|UG`on;Tytj5SOh^HoVc#WoEL5q1E-aVJPw(EWmw$j&i(L* zfA&wm{sjn9s`LG_aBxvEM0R@4Bhl4o;Z+i{f*4i1u_MleoltnvIHnxOw^t9r9JlOP z4m~!99-o4_2rKbvidJ}y^~Rs?4dND!1<-82apqiE$!M_-cm{5(efDi8z8wU5I-z?udhC{r;qPiD|c2E5C~ zESvHPTL4g^F?T$me{K^xW=A#&x0abJn=8e=oJ6Uk&LVmYg}i3IaA;#vVHvBBG@A?% ziiHV2xEL!Ag9nN|(A3vM`Z{%JF%x+r(FAW%z8vb(gLbf!^Rls};fe&)UT&jGR^<5& zX}!0M7R8D=*{6f*MdmyNA8uJ|nRlNjkZ{4U9g@ohW3WQfS1m)GtI=gS217lic{vDX z2#%;kSMMO(&Y&F>^tSMDSk{^t|5FFt^OK*~Mw)L0y=>ehB?hITHM9-m_WJ&MMk5M< zBlxzC06tRM*R}0!UD=;r9wTaO^Pya>Yi+RN0kYOgLyo2D^Y;4n_42qZ+wB80we9hG zeca)DUfX*9_U(1sE|=@=ygWWWuIKC9^|IVAuW#>f*Xwl~@3*(>_3i7=Ux4;*_jSAc zPu0D>{q*xei6>Z!;v`9eWW(B_so^4nl8*?V1D4h_rYShKDtrp{Jqq1NulB@z+3q@G zz$kqZdE)}r|4btfA-^#e=;-w|FNtUjjkgaIvL-hOGTMOZXbz|hV?N{Co|i2s-cWf zKt9l(LcX78yf3MxT`86+3k*D)<2DL4pMZta_{!GD3RlM%F{0#nX*BrYk4-5nU1XAa zN9ID@pOwcf;28)@oO+p*35nKDKr+RN<<&JN9g%mUFgVi*$yg``7|aGxyTVu~jhTj$ zUoaBpv-!%R&qi6NTC_U8XvADt3;@Y*$C0DG4n8>sO9#Qwj(9FXU_+CzKVplZodgh$ zJdR#*A-ckJ?s&8#Ep{P=NGh&p4`E1PHnJ$aCS8Kg zcVu!|nDmH_lQ7qZ0wK8w594(-cP#RmNl)^qf(%ll;a6>i(UXu-lu$QB0?P^_lXifz zSRqpjAl6cp>jBQ1JDK+=#c5nCkX+B;cluF|;GfN7ZR>p|1!sBv@^O8v^EQ`S&C#Kh zA+fl&b%x=?wp_NojF$`g`2=~!eQR}I&X+rS>>bq}0PgME>*apmw%3o>+wFF_-|x%y z^?JEp+ID*d=sUmt^sArVuiw61FSqyi+p^uyuODCD&X@D`dc9oE@4tMx-Y++d*lu5b z^_Rcg-hWWxbzMx?MZKwc>hh10g|Xh5D4~Z|liw^`dUCTwvQqjBKU4eyOENxQHO5*w z0n?lPqb>y5w8>n&Aj64m4)!8bW$eL%Qa9QCsy`L{mvv?jzw5&&V!B%bcOtLxT5~uzY zL<{aXzW?^)zx?>u|MZ(b{ii>9d%MH3IS~V)`_3>O<>7W3cF&aXuss4G(Bbyw9A0#! zEFi2ssF`J*z0dPnz+;+tcFZ(903LT7Np_KVUSJvrBTWnhrG2p))tDU%FC}rBe95>I zA6mIrLkm#91ZhYZ=I%egbs#A?AuOHC=r);!t`h-69b&b3w$OH^o>-2ylnLa6C^30o z*Eyl)Bc8eUNLb7i_Byb_ES9PBfj`V}-xFS9@=|sSlryNgt2J<^cj$?R=tWoAm=lB1KauEEoBsEP9jgIp}p<0*KtJyQw@jPu+k z#vx7G%S2@$bz(ZD0VNTV+~F7?^yVF(f$`D=m#khRj=H-2H&<7pSaPMyk=%Tl~H3b?f1Ao;?B zeH#Hr&>160lnj0xEqC#CQxsfLEo^BQVG*z%EogxgXbVYoL?UH3y3miug0nEz!8U$r zQx&HUwGs}D-2&F*__(Y?-@~M)uL1d1NKNrBApmWd5Vuwz-O#q}zRp7=<;Dld9Jbp$ zPJ7=EDNSA5jq?t{LrSS%w{gDzxDHE=$oA{!V>s5S>uQ%Szy9&>e{Q$!7`N?qU5{a( zZl535@$$>JbziU7+d6Ic$K!UrfBwZE{^R5R@%`gP<7McC*-r<2X6XK{Ss5COwA^xdhP${+z%tg^IX<7Cb)yZo(hgjc4Ay3O}wB6;kP4 zxebLu4IdYwE6mxe7w(iv)pvE(Fcw1&(RikYrTK|P{a6_B7qc$_@ErtX^HJ|&#E6>bE=Qs z3yUZamI@m)imS_p-Y@9X3)J0;BnRe$TN(aTBrQn@Ec(9|MVi_2lfewn8;#v0&|>Yk zea%wWgm%Go;Kn^OcSQ}PkWB99@|Al%ar$m;E`r%=)2BuDZ&-gy!&i#H?KZtO0ad0D z8ZQZ(a?|A)oeenQt%%AW4FH7(o2ECk8?jE#L33;POE7h1DabOqwcmW>0@ zpm+yji&@%;GexD7MlQ@_F;oMSe+a@SXCZRvDtEYl{8Ou?Lo zh7Nzww2TbK!qjz4k9&eX4p}0p7@~_1x`nnox^W!f;?s>?-S$0*xRtA5Iy4O3xXpWa^z|@KLx25#Ux5*H zJEY3pwv7{L39x18){hSeBFKH%wiSNpN4KrhczxXGW4izP`+xk~@87@8?F_*8{@Y(J z>wLX^eEa(bSY3ER5gedKzCNB zMlKBEYO@dJJT&YJenIsSSX8x+&1FdTT%^Df3h2KwF-h7lnuT)?Ph0@?D(}hoD02hQ|wfPlWqLBoyH1(ojUvyQz z0wi43(Z0UcYuyN@wJG3`dV-!uw46+BbuN)pB|9_T-u%&@{mEbd_kaK9U;p)Qeh=O* zzEXF|WccDl8ZxaSLQZ3NJBx`ASgvSzT*_+n1+J;PRGj0!N1NS5T~*@bEDVZlW~7{~ zC&J^a3KdJz3Jm8$B4Y|A{Yf>G9G!l4DtYSFso+pJn+B+Us0C*VXTj5`@fS{&-6ZuM z;!d2C0X2BXqwu2SyL0Tr`-{xGP&iW?KxRPt58n0y4h3R!sNL6(49v;wfkveqj_Ft| znaZpL`6`&V7d;W)y2@C!*qI(8uAp)X$@|DoY%*rV(}d&;jwl&F4CuOvRbgEP7bF@* z5XK<|GpEOJu`hgKm$5s#eO%|R2gbYi$Jn*|vA4tZ^J4=% z*B#f#b=vp&cE7G@dT$?(>wJBD`}WH}{_^9#*W-K)-SzvAwFC5fyFI>t`?y_Sto8{F z)=*VBLucu%_0^P&U7{i$#cs;edsalFojf{Hu6^95f)JG*#iTfk!Jf)6?b`28wOTj@-e;?>$s`>hH$;=9|#IfHhw1`@2xaxNKJ{Q z%|+Bcd^Q{bpqc|+Bh!m(h%Y+Z*HaPk5(k;CR&YoXh=oDd%#}pDXzZ`haWr6e) z61bs>@rDZx{mWeq@AC?#-j2)K<7Fkc3Z(m2)f%hAQc zI>!#)R)OO%0JRD9858SdO4Mauyfx`KVpWd^)am0oC1X-uL28z08%C<5W_J$bt>`dX zbnWxk-rsrfJ0xAVSJsOyKew4njKy%0^CCnx5Z#C4=?g{wi1hzI%+I$JpSVQq(-bK&iZ#+o7 z;}&rzsdatUy47t#JK-lDt>f4BUQ%IEBe18eFj5jo;e{&cb{t2*v{WD^0FPjNCeo3V z?^$)lE%w^JH5PpH2BU0|TIIM#J`owa4Vzwo#$ruR8AP3A?9MC*| z#4Ni8?{P>)>WgeXCofXK3$|dgMT{1eS%|I0>EJcD6Q9kuor4)PjMIGaG=yr*Ft?5r zO{*L($$RM7-nIrg(iH--K>Nh9YO0!K%h>PG&tUjcrBoGm>6eq~TL+dsIJy?&BKX+W z?Yi!LpDI60pfV)X*#3a7_qcBRu*X=}{eE;nH2P^mN4jkvm!aKfOv2XNI*rr5PuI)G zWt_JAHf=wCd0alf->2Kh<;S;Q{^I*Ouj~EealfwP`tjReuJi43pV0(=|8ebxdF}e+ zHr9K$gZQxb)G-Yns6x`e>ZYGCn$y<$OLQH7UEHzLzx!fXnh_-ElZK*&j zIjCbDw^qray1#G@c>P(h{0TL3&%x3v;|8{v%=ol9O0p55>n;7mKmYZ=|I>f`?LW6K zU~eR2tLpWQ&x$7|;sUI8Y28UKXqtCZ_R%zqL?oLU?N{5SQ&A7?bJ&?7mcpgrskRn7 zNlUrD5^%~E8I4sH`y~FN&y=$1BKy0s9-4abuV*;XD8ZSe#{%_%7iuBc!RBsXiBnqB z5!C6$HbaBQ86S|6Y%`P%xrmTvr7gZaeOI0FRdRI{(Xni_z*^<=Vn2pC6;6)=H-c1y zg}1Ed`W@?zGx)-}HX0;RRI$k$3M}N#W$Ia}7&$tCQWN5l^#csdv6aDXtI$U2B3NV5 z&fsm>CtvUW?ImX`QEr2wE_-OWnNbNyZCMUF0%C#%BbryUPv(uT>HK?{Ckx^;)ot_Na?@tTyzBkkHpKZ3mNXbuHf60z`o-9bG(|p>^bO$02%KwR`Yz;4x7N z!oirn8``=iW?LtOr7l2qD`+Q|I^cqm9Z-A0bO0a$=z{Ax2c)Lx* zJ{;>&hm;U7krKez0af-sgF}&eQhsd3juiefoJhrehfPY2Bvj zdcSWd%j-gp_Y4RDOLl{E=xoaIfpoWeWgsO zUe9FqS-v03I3<~ULGq!6vMd7xt;9XL|p-qoqdMT|zls&zAW0@+? zfaT(i^T#64?^8x}RPuo5@QS#)lXb;AegIfg#IW?SL?2+_?as7QkF5Pr8(+ENg{CEV zM$jk9da6maAP(HbKG3a!mVjr zz9j$3AB(JhM6=uvg$LzZUyBogC>cd^%ZLva3$k?oI5uY5LUZN}!jljyM|`i4$eQM3 z_isIRwpdZYNa(|pzGUjwG^AO#V{HNFInPtu1Jq@HHqc_`H~Ied7(+>53Mp*E7%e$r z-a12HbVRTP7~R(U-bO+SA=W+EVGG=FV3wOIbjnPA2!L{prSR7o*Un>Iw?l`zdhGo) zA8kz2^)~PQJ|tId7s+u z{^;6%n2x$0y6Xc(-1V5IW4mqh(XEfqxx0N_=KHr_zF)T64L$Mw^YM6GKfc|z$NhHO zw%h$Wk0{^W(Eq%2JJ5#py6z~&LpKc97iVB9;5p$Je^(bah1wmf4(sa1k~FQk7PKk~ zWdb|J$6y;1taj8iMPgpCRqhMRsLJ}Yn=6=^_hlKTt`K+49UyN{-)&1;vFATL6gsAb z$6s8kvxE>lW{n9UhvBi}4m6{}c!v)yU0xRcnz-Q44b^e%&T(Hs0DSFVaw>7bSmJn0 zO`&iO_2YVWQeMr_7Lpog$B05OxFmh5;G$h}LX{mJbjg%hYoG4L@*G7ft^Aob-aVI9b$f4lH|M-VLzrUJcsO`Cc-3qKP3zc+b z1X(=Dc&iH_fjXN7`a6S@*}Q$s4>ZLIK? zVN#UCrlrb50u~2hiZJ8ms;zLwr722&q#miy*_0&ZfgliaOpaWv1Az&xa|+=`l|kH!1B(JX=Q$~%cD z%*hs@DD}Gbmj2XaW&6`r$VjtkO_lluZK*U$t9Kzv0)F5FD1%4tMifTy^B0hzFO({& zCIE{5lX%8j9Zq5Q?Jy@j3(paKF+4QoDqr;aXNN2%g9dbxhZGoZ;0J?X2_66jYN`X; zp6Z*=GM9^l-lW`5&~Y?7psVouuFq~;f@3tX=bxlS;eXWr;NCjMuZ!m0z{gAA%W5xG zc=LEf8@~+xvRF&ZM%9`EUzpw?=f;d7(>}nF7JB}QD0q_OUhFobZybi+AkH@98`)Fd zd-BpwP20tibEI>Y$`l2X-!b~22iwU{+i-G67f;$SD3}?q67%j7SOeXvi0m-ZK&zJu zA3hxv-r>3%Wh7z9s0ARig&V@VYTSKklanDcjS^3afe;#^ArN|Tcq5b*7h-V(-_FG; zwgpsT7>Idn^D|XK|IypWIUU-~=4UaCt$D-q)*VtP6zTdUCe(tcp)enT2lDhcqZK{K zk&2~21~OYnuDDr2*iHtTM*1dE%K?@e9#x54!O)(_3z0ZAn2Km-z{m)tGQYrd4Ki0W z?#OU1ExBQO7D+s^B`0uQrPlh_VsYZ_BQ8X2h>}U|OE*OdeGBGJ8tb*8@YouQ>1(}5 z>k_NNb3bRDVV8r8@y3JjWN7PXt>a+TdzWH0^s(Lh5TJ;tVn?U)WtjR1ecagf-LSaW z@7(}wpypNycDyb0XwlfJUW}{q^bQ^L5c*^O^Z)qs&lR()$Cm1@o3Haw)4O3A=N|LC zzN=wo#x#mL?sHeCeyD@1ZyN?}^W!n1(xb^)sE;0N7X1?~iYf>GqG`w*$)G zeUKXX+i$$TC4qWL7JYY^;oV|Y)kdV+eSr`c&kft-lyXiww(>yJ>G@P_!R$-_p%O5Br^Fkd{KJU0atBp*~`)@Qa!nzRn|F`)eUt{7Ma!n z;R{>mSR0jhi}XFRLp8Ig2zV52t#h^u@xzia5{(QWpL&LD{_uaxI)3n}_XH4# z8yAXW3%6S=(VTR9a1kq`9L^YL9)gal2@8b}IrvjCcfNd2>*%<*_Vu`%vh7;iXxap( z9rRZ*GOj{vqxW1%Fq&f+G|kVIY_9}opsP>Dvt2@7vN%ShAzRL)EY4x={QFs=HF?78 zQxQWJ)xjGTME;_xRS?55)J@fCv~a$c@3Y8Pr_T{ zkl%&4N|?-RD2%}Y%ZVr067<%yO;BzDi~|zk0=|&=NZuPS)D@Z`EDP2nyGS0>2J%}I z>cze?tqtv^Qop!^MGd8=LUIMpt);H8ClM}a03JBQxKRrNZh?qBl*-D}Hy7osua|y8 z&UsC{b6*W}myE6NpSR<7JC*==0740Z4`J9w*e-bZ90KqL`@u0?2Mpf6JJ!GWqd)k5 z9qan`$G`3S={SxyL3Xyp(2c_qBA$*Eh?t8a0tJG$bw>h2yf8DrVWx zN&tLBaw6y{oC7VJbJ<`EN@POqGR;$LW*L)e`t*}fRg_Nw%?>fqd)CUV=8#bZIaVk6-IIVxTP1Y}?+eb#tHr`u-T}LMmr+vY=;h zCd;l|s?A)`c9utmVR&{6r}7D6PN+ zwP-+?c}L9mGwehXoql{qHTgOg?C-N-1vQWg!hMy`BDYQa84wFu2V9xFWoL@)Ri!e3 zBB0xyRZZXId9Fg$*tRdAFhh*$8)_Xd@BD|xdoOS5d9e(r<&{}Rp(fKpCQXM$8j|@h zyEtpPqGR(^^*hZY70>;poW>Ni)GCnUG?2dL^()G|qOH%MWw4;~<(uS~$|`QB4AfAE zo2M@7nK6TENjhK!(_3V$v*-1wk{WB%29V~04eDw;4HlTW5A6`DZVxE5ZC6*eg8eQ_ z1|!q0M+?(-j@Dz&@I15?7U4A10p<$`%YkKB3MOFJA5EH$I$a;z)YBHH?I8jVF3kV< z+u7kvb#?Ic+`-s~fs%ku_ihC}_Bz*b|M<4;ZI5y}LBh7AeW=^E9l9MniD=TkLq^=s z^SF&|1)qlY@nggS(Dx7#x1bH*e_XHk``GWtxQ+*F=r|L5Nb@g0j?@l#j_r22-|pj% zT;b2(KDO)SHtyXtb^H49{qeKJ-qv{@VU+_J$90|Be!P7Cc-*f58(w^IHvQCE6krZt z*;#r)0o1Fgn4uC8FEyS$C)zb`_w&_c{FE7g|4Q2-d&@Z~jtkA_C==(r>?v=faz?pM zyn|%C`8qxeSqQ3~Dw9w11&{p@dA|HzCEgaKhqp5#nBk12=TS}8NKE=;0#6kUUbtZU z3^gl}Q#!It`;z=ZTLQw4m9r)1e5s3^IS>YuUY{5)6Ie|R!W=0SXL6sijUi|F7IHXM z%j~i#FEWkK&Uw(G-YX}70)PcK6O~yK-HN=RLUxg;uBJ|PkuZIO$Yat6z@Xu3TZR*x} z6ke-otW2&*+sfgI9#IR>7Z6SkUTBXMON@_}X(l{qE-Uzm&a&yzs^twM{UZ7)}JQh1LV;Pk5PUHm(ynH1Lj$-j|f<%bGe>FoR8O+w^yY_Tk;4* zs9=p39Z14Xek-tm>Zr2H5XovkZyBdK5>Wx?(%{d+k8iF;4xl&g1sDkH>)me7)Ua=kVg~+17gk zE`Y-7l>lPcah_2ezHEBcQ>aXq<SGwuT#Ozt3rM#w6d19H`EEZd;sikzeu!ssmOQ( z%$RKsC9rLcz-9skIpI>SSH#K`RU|zT>!wE=&X^O2E;zPPC|OR@q!Ze^>841(l&9fN z4vd!?VQM?X)c`fHnn;b!o1zjlg~GFB80NviZk(@&bQ zlxDKhKqZG3?d%B|7e!v>#A|+k%RbdY=fy}q$&He6sQi>@XYcwN7zS4>ZxzvGOD*68 znZzx$&f3&Pi^7^AK=n8jkv%Ief3QF;LCUq*R4zjwtmQ|KL|=!bArKP`fB=ln zV1yS_a5RLh)yBpockvo+Z9CNcG4}oCF+~{kGT*nq&V7PO4U}at>Wwu@@zQ;}!F#tq zj=lwVx9veM16oXRT07K`x3zF_ps-=@>uwzPVE`f=Q#W>P-44e(PTRWPZu77{uH7(# zqHyeOYRCKII$bZ<>vh|~>e+1Ie1 z0}w?w>J2!u&WJ}Z8U5ER4y+_5R_N5^%IkTvYMLs}@U##&{71LZ@K42`*K>YAPd%nT zQ6GUiRz)Dts@JObxL&4ovP3IV!Y0eAyU1}!PeP1C58YmzQ#loij{c@z`-;c}ANrp^_@2N~QF&3S(BA zLJgJJe>|x3GtCXJTOc9;vwe+PTN*b^Q_Du1&)zT)SEwxP=*}myYPm-MHM&9ilMC3P zEPdV7T?@T0%0(vN$tBJ%i{W>~3v~kd&B_IdZc> z+(KDbskcFxHUE95kvfdIA&l$d+iMkVd49Lim1l|@)NP(gmCERFNoSm*|1rJgoHx8a zERCk?%+I#8Op&|*fxNiC*tcqMVZI~L33E1-*UJ-%Pe-Z+8(sh!U`Ehql&+r=cV-`S zC^+(96!WXhBk6FF@{#LBh+(`w`*!w<)$gzna(&U#ALkmKty^5T$PiI`NFl?AdJ;t~O#2Gv$H znF|!ck)&M|Qkk094x}~Mi^s6E{7*ad!S&mgkfK(vmo0J9XN(~@3nEz$*q}{`rTUms zn6K+Ppkq$MwAa9NQ>ZAgaHOd%5tSA!uW3d?THDWCSL3K+1kl^}$YJmHZob~G>)4H8 zrcLuW)OB0;(|C+O^=Q|1Makdc>~PG}(023GP1ldl@7LjYj@8zw+Xp!G-tO~0ef-$E zzFq3+=fgsn@dBbq^IF8E%GFggf)M2UCJDC)wBoR;p;g<-hLh7TBk)0m*E80FenZw~ z*;>Bsv(F?&NMbnw6_Or4xnfy|%2k}kMr~CT!6_d^MK`0l&pK*#VFT=4OqKBCuQ&~q z1y7+b>%VTO6T>ZBoUPz&_0?)Q#h)p4vcqd#tGpKu0Thg93?K(d;nmM&5;X3Eu1My7 z8gB4M$9st zsA9qz37+bLCH*hNC%|hO*2Os7t3b@pQ8(<9GyTFY4s=pqm=qY70fs+fxZ7~nZ&=V` zn@(=uX(5B%y5LJ~exX}3Cpz2b2^umN;Y}$f3ql|v=z>p}mK@*(3?ZrvCsbquK4lPR z0YhqMzn~Oo>}1W3b}yIGcZ3;L!&34MqVSpSw%mN6@QT!o8po_Tx=lO|{D6DpHsWN5 zG5!wlfY_9kc?VXTcOlm3YbXu`ito=0J}4Ap8{4430M>BN&xOl3SR9%`Ht48f(ENrr zn=-buT53a5Jdc$ZZiP4vgh?6SCQRN=$gl7eq$%2hmxdKo-Xt83il-DuiL8l|{X7 z=XpS13=YCkSIc-`2P6ch;TTc~DEq#Oh{O!2voW^EIF5S{idPM|V%vs@+<5qv9Yb9Y z$2fM~e7|qUu!9q}@7*}o&ZU09HP_EOEzYODpKsT7-4I|o*RlKl7vHXXJ?sNo?)f$k zeUC!EkLxrH08qkG59{SNp{&11U+KT@x>GQVd*oD`FARK^jvAY zf+=`A1Cb-VpDZ^mPkK9rt~7_X&TB(PF0I8AFUirvkJuA0!W8JhK}$hX-Q*3D&lOyi-UTI)pjnj?nhgWpSjeNyeGYj1%=57b zK`beWHfzJ?I@yd8^i?i@jLDdPxU4a~4dCF&a5%+p~6_`9+TLURAyl}i5_TIi= zKqz~pw6?-TX=*4QLL&ec#_p2+nRcj5-@9{3R)SVU94Sk{G7tWw-2Fy+6)v)`?+m{r zgjv$Ui~C}3pzy^jME($mLS!v`92i;wd&qogdT-_>3X(&tgCro6$wKTKIbd`*E18@B z#zV|pv<&p%abNV7V=o|wJxE(rF@2O2ok4qmI_X`*zfV9x{v0|_~+ESp!R6^8s zB%ik*r@md<^~Wu`U~nJ0<17d`TT-eqc}v~Y_5-4edyL`$3HMV=PY0CcP@zhbtN<%s zWWI-x+Pa;F)UETdPY0%9sJ1YoPRBa;OS|2#BecOCTI%U~AKPI%Km`#@@%MCO!I%V{ehv^V$n)_4NMsFSOATxFC-BlW0Gzfa(=Fl?hQ)C4a4WS2W zonc&Xat-DCo)fNTQIb|omEUu2J3Mt&!AdbRRq$bE8FX$S*DX z>S|fB{)uA%UgXvrHoK*aL%e4_HK_Ak83ZfKZz)qj(Eo`I$C1U^ce`TG1T7;a09h_h z>xxKZ;y-Dc-5_G1e9zK8lt_ly#Ar+IyJ_W@QHvbttQJQEA;sP{ME^K6gOWa52nmp+ zWE9A(>{vi*^zlsd4|G)MG+qkA4im19Jz*1h-DlG^L~Cc(Z0N* z+QZfN?D^aVcjX)6nJ&^m&0L}cR#hCP$UR2Mc9)H%rCT|a8eGF%gvTzrbPVmV zBgq{cvk)r>aHG~_50!W6@iVQ?6CBPLxS_L01}e}WTL-dj9YH&r_wKqK?e@!GJf>;8 zj@#vSw8wbV?KB<`6YoRU4a0H$@$K`zf&F_N$MtfpiC{29x$VH4xOWRMiyngIHoDNw z$+-HMXH4np`Ng2m^Hz8{adB1>)jG?QSd18;52Dnn__5LCJ=$#waAe4~=Q?R*F-MU% z&fQW^feU^v#X&&nj8#=xGK_R4gL_SJ`xDmqD!y6E@vQy61ZSW)^N@5acDtFIU|OgX zag2&E*0@fjH=)vs8)uAAhBTgY_kx?pqF5H+@R`oAF??0Y7I%QHNXF@u zTj%9OlX<}a6HQ|!`L}On2$osK?1F%_dX8B3TTd2=PRYU?WA9GQQyngII4mhkUz_)z zf3BR+Rl2uZ+88W0?Y$L$ppe9jhr_~aqCR@R?fgqA91u7pwT?3{ZoMO3g%AL=KsZxA^ zti6=)DM~b{Hbll$hNY2G$@PZPskGiYtJM8WIx+^_Fl%D%xM49~lWJxtsF;OJ941Gek zJYJ4&?Z91gVYsf-*dh4+V}rpXEgU*vyxoS|^r*B$w~f;sK0LT-*A3%1)W_DvkZ2vz z4t+mv!$Jwhuaii$++T;s&&GBMJ-n)`WNm;(Of zn$`0Z3#H_XQiAd+`mZ=!l^$KnGY;2Fxf-xaf#Rvs{xlQ|1c!AgGV02YR)sTTyd1EO{ z8$_u&k-F;V7F*N4$^%$q%YnFkoGyQbL^C@TjG8&!8 zatIccp;%%D*H0vQI;hu{ZZJgyb8jqIP7Er!B^X0%(PfVrNh-P3eT~mbRP3oH%QrSL+jVoWeW>$0}Kgr@y@?ce88&dV$ znhVV*mQq;_!q}OfEf)A!3%<>(5+6|V0Ez>BphGWfVu;O)WX{03noKQ`c9D5H^f%88 zUG(|WmCv?elTcmZmR z47576v5}1mGH#v0-^EL;HA;CBsF`ync@y%`$iU4#D^p24Gk#PlbIHy7Ar)5q&PvTc z3zg+q&56;H%f8K{K-x~L8`r<8@i4f{c4d62v|ADnSmnFmLWH1W*`MKtG2*4`ffOBS zkhH=(D32;PxX|)ztT^Kq8eeTBRtIkAaWlX$jI4o^UktwC9jMM|x4}bQuj948G~G1BQ&u~vrsI~*);XGC zkXfo1ETvi|S~D3VGz^CngTgj)fKa_-G6V=;u{WTSf&682Ucbl)_#a-hGI7MG*44tv zQR53*AJ=>J#?8l*6b)!L!0S-1`&pV{{3`;H-rfuEIAbc%QUfJo%5FhMidSw1y(3&~ zfc%!xNiy*j+zb*9%qE-4zrOomp$abWbzqKsY=blwRf^>aaqCDzj?n`d6QNBz7H>pY z^sMVTb|E9Tm;ksD&)*~mC~JWABfzr<*YejK9Ld<_sE!znAdmV?SmXJ!fkd9%IX9)i{Lw*88}_aSU*7O?$_>*1!%!v_#BTEV2%_S}?=|*t?{5?<-fg?J!M! zcTBK&Nc}vbd*0@{@A`c@QtYNfer6$!^AOQLQ@*^^^U)6z^3=8;A45XZe4XdDThcHg zYiKz7y6f7sPy5~z;*ASh_u*jNP=8!MUbIWMUPHEqRVdX)&7ZK-kPP2*{zH70S^`~Z zpP+k&A#f%#mzW$z6;l%pR#bLWR={7ZXmdj~1N$KSY*k{7Ga8gV<4~Wd#uNNgfhN2v znT5y*+`k4EUaZc~Zp*4mr^Z*0@Ffbd@Fr+fb#Wyz4uM@y=bc8-qnuqEJQ&^9^x!)1 z6B0}??-FEejUxdHsAvVq&SY_O75m;bCq-cp!trW+rM)NoA~ir(h-HRdc_uNpJT&iX;oTaBV^)EQ>8oFw~hn9dImj3DN5tpgq7Zvl9pSz1jGI-WHsGDa1+f zCnY!J+9in(t9%;Vl>S%@yeNw76@|7|g-|@ETZ#r47#! zouHYCjzAv_5UiU*qX!DaX-7(0-+S1@2~$zqw)P!Uw`JP>I}RT27l0#BzGNoR;5a>? z9WY|VYSW@E8y4oOD-l0TYbYyUp!+vIyHk9$-UIb@sWuhzg*_;{DWHEm_BtNd4!@)@eO~s^gA}m!3pfQ+*N!Vn zYm9Y@i3JrY?F;(dzDLGojj##_5<}bX1Fl~duzi_VVO&Dt-FsB$5cjFBsyd}%ni3ch z`*h$*#sPTjIJF_*o8R|KKOJEC&bP5mOQ>SM*A90`pj;$y*Scv&?!@ELw|hTcKCVDJ z7F^Z!!vU7s(GFM)5>OFGnlQ33Qq6#&7i%;3iCcD6xytxq3YqC@%QUqn&u_g|b;>Y8 zW<2mBrfH$N?4zR)PFolgNMJdKKJa|v9$lMr^eiHW5d|t7khTh znM9@@9P|g$7;{w?qs=;w*YccIu(M@9Zft%vhHbQwN1e~|Hx36aFVI2C6W-_8iacOE z+a-{_EEXK^DWSUyi?^CP5pyNmSe6V`KgTx?3HhQ!^71t-vt7fN;!Ac>rK!9S2OnKi zsEZLFOfKW<00E0erbeia=Ws~YK?1>Ih@dv`86~V$;YBywZaV;*l7T{ksoiuRTT63s z#MP6+v7~M{#D%lLu!eC>tV7yclbb6Iw#;JNR z8p!2%4I#u?WCC_UuyX4`s+xI~ZA4Ws>W5LkB;{rQsp2UQo5EUX3?)==q^!kzlyMjs z((q*n@g<8@Hbab-$bP`ZDb{eOOdf2nQ}cyvNDrr~Zk>g%COm_k6&#JNd)`(Nm|XH%09GP=T3XDn$re zU&Tl|Syf@U73+2}2B|y@@NrO(g@rB+RcObxtNWVWX+JEf-xrhm{=X~r-Tb(5159vuJkYzk>yzo04zvykTYdw+2&_0 zG7CdwOJ-gG(a3=mJTU|u!@Cp5j*HEBh)4BQ-)gP!YD0mDDs~mv-&c6BrS&YH#^)NL z$+|L#v;t&2gxpCLaBpNhtW#Yu8#=@|xHr+)K$2L{LA@9CKxRI7^epe$c|Lm;iB87W zlPs!NUWY5y77GtHvR`fVIGK0$OgEN!?-}KSVe(HYF{x+o^*Wr96@yiab-gKl7^Y)D zXc)7$;(`f`=?AA^&dfUD8ycV>YHe9$#ahFo5f_ZM!l*{^hz*Xh#I{C=tX`rb(ADcR zBARR$keIS5-3fbOuEzkp8`>6G4aQ*UA;}rt^%cqnM=|OTa^Y2W$VopcYMqL`=2gL$ z1~K_Dn(Pun?TA2PsU-?;@z$h16gJcqA43~};`OazI4JaT1)?j-b2*<}?Q*7_R1}g3 z1JuE0;QdsAWL{K#V2`e2J7;N*m+vN#esJZq>reI1SgVZEa2}{^TTYs z6&jpJZB{M~GXL{^q^QywYAdLF<}`+FA@P07KFMSPgsHwx1Lnp@V;L7g=9npLJJrSl z5eQ*Ag0&T%6Xdaa0I2C)q%5JIry8j|2`?bxZy~nbP-ENPeg66Pu4^L@+i8Yl<6>I0 zvPZu}*I&D(9)^~rh1618k?P@C?{i&`w*ws}tkA(917oW04hYZC9`92dK#GWI?*JxG z0CGF{kICb-@`CwnGYNQGy z>PgPg(dL8aQ$|l!Zm9aE^(|bHmA#|FDrtT$jSw`P*uToHv%yfqDZNa$E^vA~6-Ir| zb&Zv_a$f`o;FJE@Re#lXp69rd7^GlSs-dm2IU_FYW2<1Tct79;ycTIsQamH1 zh+}#MJ!rF6loCea1XYKM117~SmkQY@N(Pv@uPVA<7s8on@1TW1NB4Czgtw=47t=t7 z=F;mHXdes*Ll8+2BMfc)UtUQ=9HcS*-u6RvZW=+?f?lgeZC5sQH9k5oAKu(4HlqJo z$pdvc<*6i^YQE#no`^9r6h4zVc##~XX@oKWJHcM6%83aw#Y8cq9Ss^-Yz^=?PB0k^ z%n==^2Eo3cfR1XA~4vcKpPtrUYP+a3yVoh;`F+T zzz6eoc-XH+Y+Y%KaHO*kWtP^)7{Dst%Ot*$k2F!KJZUVeK9V+v7AN$JK30t4N0$acW8$a$lA}Q-w_wYFn4$_Ruxc1ohq3uCJTf1c+mKfXX zecn^3(Izh-S;Q*gioI*&upXR)#Tp>+am6rg7$||*kL$HxQrjKrS&)0FB_Vsez#(wx2W;xdT0v`~#s*8xk zYOwS0j$=_@G%g5!Hb%Bxx#$b^P!+9=`XqPXTV~;1mLAJVy6(G)+{SUs?v_Z9Ac(l*} zh6rW1G2sq*=Eo3AB`|Y1N8*=ktTi%uRkVdPUil#eIOtwYlkIHP4J(%M%hd%NOGx=K zMq@jShg!A+Cs&2H+M{M@m9zcSRrE5;G?Y`3l06Z0!C_jmwt&P9NrafQkXp{GsNJ$$ z9ssy|jlDG@G|n=ThP-VVgDUhXd$(CSZx<(H%Xs+#>J)oIl^{C7OOl9!_j(Qh^p@fk zq>++pUlG*kZ-J?ryf46Owk4|}G-gdq=JlmWl`sLlXW2^wLnfHl6T))r2h7lWvV_froQV~`J0IoL4A$>{? zZ3Ou$$f(o##O;z);_8DusNJcykQ*DMAX6+{rGBpsWt63ayPnw+wgF$8p_JOs+I|cu zybU`G?@(q!O*4HPeWXwQA2>we47E5Wzg@?Esi&^3k1jx$ zT%j*!Hsv&SQ#XuV>JL_5?B&NAivY%D!=9EJ`dm0iF53k-ZRJ`Z6-&K9U3|1aKxoqw zz~QM^IF`@r2$flj&UReqqpth*fXt$=yZgsB?CWjoh5;0^4Sv1*Joo+jc{$+Mu+FKS z$D^B|`xrldT-R}EBW&8z5)ue#urk|+C3WMv%`b(t@J)s|4Ut~|CBuD64Olb*7DScX z(oH?F9`+8`!P6Wxf(0e2?0(Dzk_ zW(85OZ0g=XLj}$1X$fK&wN*+V_PjQ8*7EF-#vbf0Qd@cMluXrx&;R(7i5AYrvwLA} zmw`7tht1-!zM{yNjdMoOnaoNk{KLFAqOAC${w6v z%zFld;CFFrm~W1Vw(6MOsm%NgS*ACPCZlaA7p|oa?9{b|289E&{{ zIWD+c)i3t+(nJg!r^vR7+Dp*G7em?p{s)n^$x_9 z>6P)gUAwwo+8^KNdY{_`OoY&`_iL9@UqdDl9RFDNh^GX$0LXRP({RAf;TS?yj{}m~ zggk%*L1Ke5X=MJPrFX z?Bi|geqOuIuzGBlcAR19FoX4bS^NE%;D(0wd+&#??N^xSOlblBva}e29K-Rrb@R4% z`!S8<@sc<44fvQ};)sk}3dB{Pht)@f*hfCh>mg5VypvT zhyqE2rc&cR78r4EnS!8q-Uvspf(IK|m;!(US;316$e8_@d{cfA8|1mH6~bpv^c-(T zw_qB%5aA~pBgIGg3a_u??VZB}$t5IALqE}IfS~GAo{P#;Jzer<+(R(h4YkpGwy>=7 z&8w-CsoGRb4Gt+5Q0rvKWag@GJ`F<*2$QHxXfdLTkv5ag#BPV7dNAqe>S-K$h}7zSsM}%xc|oFk z4Pozm>;Q7RdE3TmzFr=;acKALy3P|UZmw(BP2-4UiMrda(|Fz1u}=efT}js{#Q7gV@M(*Ipk8V;hfdfAN(lcCu)|#ZxVm5zPu4LIbL< zbYMj3c*%NU>+}F3+Gb6K*WNuFkhA*e`|gSKVacw}He}W;AzI^tVy_O5{LOF2Nz0g(xy;nM-vhXNXlHij^hyfGdRnTa&QW*nu!oX}Fw9-R3B=>Z*6n$mAaOd2m= zvU3oFl~d;6n%B~w=nu)AqUdb+p8y55C>gwHiVRz*PJg*ZfOnR9`(CnmaRa^UcC%sjpB`E4)nAdAC&Dv)HhM{iS?% z$)LH^h_Z&Wzo-Y8%4e2CgHmZ_$sseYJmI8S_=^VuDf=5}b)O!(89HFo4`i2GJscT> zKQYo=IFhHQBwht=U;uoJ5>olI;)p5~HdHf*=dpELH8I&Yy6vQ3d0p8k)q%_e3h9_= zK^x^#xxsW~*NoE`+^n(8%|ExFkD{qO=NzD{wU;eP8Y9Sqz7#0Q0Epmh(JsDxhJBj? zT;4|QI}us>DK(1f6VfMY3_JZQ21#rt2S09urU6af1=VDYeeq~k95bB>|}u)h#*f-DOR_Kgp9TemHk4Jo)9!N4e^ z<2Wp7yj_w1GvB*(M44(skX}&WCj#+9YfD<9@kL$9VMh@bVNV zh_t}!$^R&_Qe=!0p zgM}Bcy~Sx^Y}@sK01VvcbR25G^MA5wx(*OnaHYmv0t@!+PqG+-qX=UO=nx+LzgiDa zEuDQ{IDjw(Q=|7GX^MavvqVcALen9uds^lHp(J>>)Swa86^gUkdPbMqY-FrA&Np)G zLut`L$>br|TZYMM)1Ilm>KJ9RNv7PpZ6ofUx^2CvmyOT~;;$tW zc|vW-`zplp4cFDbo;=Pg+bAd>&dfAyar-z1)Gi*iuiFX|KrC*cEBOQhkFvqDHzq({ zAxz5eGNtA}oCpocp2>M5Cczk&U`n;^T&9_Z^IXSyF#Nwzin7S%mt81{u6Q#TI1CF| zMzz16iLDBPQP?nFI;k;PH3tBPO+CJ0RB{m*{-TpSWBF(;uVvPrARBf|WflW!1SNNh z>?H{U4}x1#RfhtHjC}a3%UD>PYv;%~DRh%?-C!Ys>%DJY-{O4Kj>aGr@GY)9LY+t{ zeDm#M!SK~OhKz!;C(c9}#ttBO!NwopLsbv0b4v(;@a-aHLygi{ zcT>NhOtmPq?YK^RH;uPT2Q4m;0oKT&PW!rcDJ~F5BoVsW1#*cLG!cp^$zG>hk$pC` z3y5NI8DL6t>}@?9dp9uIBE`0Ygshhn*?4RSWxsxW-nQH0)@_$N5-qynK(+;b9Jl*z zo`!y1L2WyxpTADSaNHi3pEuvf>*HepcR+~08&Q+Dd06k;1V^2&Pv9yWH_m$tBjL2e zX>x379NfLA$yK+QiC}oQu`vYAjMeqY8>Ocz6~>y8api*qRTeUEXw58IBMPuMS0M;a zDv0_^$=i6{*^w{M@B^#(sm02Mh}olea6HP;N486scEjKy8Wv`&A})e)W*Vq4X0SH| z@^=LbYfX^kSPvSe-Znf63*0s{-DG)(OGONdG=%rxdo_Vzw9hj=lAx4m9J(o-o}>xY zew$L3da#VL-6gSC^%VEh9#l{z+iy9usN}NN$dY&}3%EcK%A5IM|5 zQQ+tUM@`9}Op6My)rOUttt2$SRBmxoqcI@3W7y`pCHUvmP01IUEakzedT(@mY@`)% zM+bAen6u)hO7^d16~U|G#8C7-aT*BTs?U>HPk0q|J#6>;6@f%}VdD!*mdYRM;InOP3NBu9_AY%5!0 zb=CZftE5_5n|%?u>ByQe)P#J6daET+Fu_HEIFw@-8?k}vYl~Tjzy12h z-{w@It~?#u^bGQbHBN}O)EoSf3sX*6$>^)GR@8Mxyzy;SsUXK$`4cL<1&y_`9F22N zV(bOE?@}k1IdqtP8oSyK~-ovS>j@P)xpy}>$C*4qB^z>du5BFo{lUVa?7I~j$xGO$#`_apT+9B0Ajl@F%13W6f&@YE_I zO{sUbZplFO&ZDg*&Do~NJs3){QctZ>>&p0l_5&QG2t`BZEU?`h!8kb_Rv4h*+{&e3 z!_b*?o{*rJ=S-gfhp>H#^7!=?l?M!sML{$nan#j9c;E_{M^-M4zkIJ2V5 zx6}8(`_{H|k5(2e-f2(76wva*Iepls6qdg0jzF<$O#cYUnK_W78{k8k&NUGJB% z8@KCr^yq)Ld0g+GAJ=(0j%k{<%j16kSo{7!Tiea^vG4mpb6}3;dI&fe_*U-|=5lwa zEa;W~qTzn^e+sY3^Cm6)RI^A_E381eT$^|F#1tgovYLtU$|o?uV(YmRV6m)tM>VIq zNk)W)qpA|C2L~)%Cu_Y_3T!{sX_IP8=)*(JtXCkagF4qIp8^-rBZ5=BTBfQwCj&NH zFtU_uj1HGwGj}g8^)=Sg7;Ir1_lJM^uYdWM|N7(g>A+Ti>my?)LZ7dVvf_lps73eK z;px4RPTG`Twgj1?1s;Rkg5X)B~nx26|t_!fX4Z~To#TIW5GD5P)S6Xd1YGB2B_)VobmXEH64GzDR`;}$5=Olx}vrC;K;+}Zm1;i{#@#nh-kF`GqDYv0$5)t zeYBFCGFzr*Eh)Vnwe3s25!W02ESHB6kSDP~^8jraaewd*fGo5vb!#y!i;IXxOTYr^ z9)0?LTS0G4z!#EBx3#V7?(^UN=IA~?W*Fdpeyk9E^=-Y>NNP_Bq%Kyoozd&J%RG(K z0Sg?4u=xtz?h@Pix*B*i#(lD+gxMRo1AAeg1m^k+JvCiFu zte;~%rtNYYyX%j~Hs2nXv70ZKxf{CMecP_rdHwkQtlWm&DX&Sf3 zwP$aBOb0|Fv4^|*FyF4@K6LBY_s4b{+a872vsp8;t0grcgSa?Te5`}|-aL6@bH_@N zZ4fd$jQ`EWFVkqPnq-yp0-HN^!^-QWMc>om?8{sy7g&BPeA`xBfJGfsKP%*+a_q8W zGTyPx*5itpC?SX%PnPr8FA&?H@EOCtSQ21D#VW@74@x#~NjcBr%Tk5>cRv2(KmPL1 z{_HRR)R#Vkymsl@Mm2c9Y*B3vpD?>a(l1`BK>YF5_H%ec0nRqF!a9_Rp)*GWEY&Xp zq%i{314c(*O}K6O90hwSap)P7P}8lNE{6eumBM~YGfajGVX(R=u;R8Gg$RYrPg^`A z8ZGFlA-6@fEG0%PZ9PqL_c2RX8(VovzT160T2E$J#o@Tg#%v9#7p8BkGZc<)sWj`a zTtPsy0_075aNq-R?`@f7cp405E^>y-(U{8eyphZhH)L^B!jbIRIMgd*K%hE}^Z;h+ zn`249vjDrF71e@xhrz#(p#WxU$bB%;zpCyks*YAX*%YUpj^(t}_U&9EzK!A^T=V`S zo688j8h${O1anhM;n@X^kl)25=zHAhr5t)_8$G2W7Ct)c%1cnbq3+0}x6HlvvVhLy z>AdU~Cj_-|w%C-=Ol!_3!jEVyS_tK2QOLjaDV28+W5nJOjVFCy%dGTsvd|#}#|e7a z7ymqS5vjfp(IEewh=NOtDcrI|ga&(t{KOq3p#WQSPSU!=Syv}uC=Mn!c)Gx7pR`{# zPJ z-UaTwKR&zhenTcOXbU^;(jV~ijs1L`+PWJ7&GzlMt;aMU+vmq^MV0S6D1Ub-B8I-7 zFPG~)joW>lKOXq$enU0>yma&J+I8FG^YbtM`1{tufp@)cz0M7O*khtSLc;Hp>xxmYcd~6BUe2xU?o9Xu8xMv zWfgE+<$fi@*Trif8ztk;CE15xx4E>?9M++gAbg>f%`@Ylcj>%aWhKlzjW1p0>_ zG=wTtxKEldhtWjosp`|ZRT+6$5-1776ft3!A#q7IM`M-+`cd{i<;e$8lBDL+9}8Ng z0XXCk1iL!9_uxTgdsziXnymZ{bYTdojC9Z+$+!z=6S3dt?2YKNKemW&t8S6+o7+}+ zxtk@iNA+#j1&GLO;p$X5Pc>A%UQu_sQUx5nQs6is#G^uDdJ?wo`FgN^G?dOS(E^sh zT%bZQV$nR)Lzv6K=@L(WO?S}iBJTmc8w&GtPw?!JnPUfv^w~KDEUV|{Md7|BwQxXM z)kaF#CaO(v&6&aq7{;7^1p`gpz<3m4jtmPE`rf*ueg}^YrCO~ANh2m0;M*K7f3c>y z24;izf_7vYHbN5N+vH^=Bxee?yM(vJW#OlY2d-2ED~lJX?GF>_@HV`pFZPm6}aV!ee-!_yAk8Q=)6 z?e;dZ*EI}J18oXWZ)n@l_7R5Y^dWZvp1jTkhf(*!$aY>rs@rLs2q(Z;u^YD)b@k&h zwP+dvGC(8|_uFllx3;Ix_<(eXk8J|7Tz7q-3k0oj=sq(|^YwmTr+Gs(&wa({3}8h& zUiZ}3sqWTo1iFjp%46NG*Zb$^)T3MNFvP?2&Y$0IJIKOyKOf00ctDbmm((BQ4lJcxAD0&gRtVh# zj0&$r6b6;-*pZ!+!PC^c=kT8`j~A25sPf97Gk3uJM|Dr-Jl83i&V4}%MuoSi`gxBP zQF(eNi`J#Sl=uhhs3v;P@Hfv+ngSo)6Q%(R{Xd=D800oq>5zCg#{TD~SuYhXX-}-f z2)oU%3fHO*gVtf*{^l?L^*{dUZ~yX7Mi+D8=4%NRA2{s2la+;llqI5!S3xEi%3R@B zv^iO9h9w)pZ2&KdMqPRCSN$osuZ_x|JZ@+aS&y};9F#`vDW7I>gkj`Zp)*(eV~y!m z1R8dnP3Qv?a(M!?j8XJpyKTWBJhikekn1lh58N-bYpKU6S%);rc8Ha4z~CAl*R~Rp zjy27mur|xBo~WVC+ysoviFklj7rWY+N{Evtlv*TZQRl-#Z)UxeJSV_V(MD$OAst6A ziw-ZkQ-(pwrfsYxYl>WmoEs`O?K^#gNJEgB*IChIuZ+Wg$NNIZ+p{-cQ4eweKKpDC zybK{s1DwZc!mFcG?_Cw|z=v@h!h5pK8MTKz4oS*{*UFqk1i$PG0evz!$qJqJ_AJ%N zQX>LFCO+HyY=XYRD}+_FFeXV^gv>_$1mT;VcOxv0R8aK%XImE z-!4BM^SF-Vd>l}*bqsIc=3~14`2761+}Gm()nUEfz%}cRah{H8nrA*z4J>+JyGWr3 zXvi`3ATx9|Om?RG{Uy|U0<9KYlUy`8pycI$>nB2xD$Df{u^udg&&E+0!2j!Y`I~t@ zj`tu~J45ACh5?K&_GFHGFEs_|fqm;F=5@iTdOrK&%p)`07TJ7}_qlUKq(rqKJHmP) z!8{aIe%(tra$X(O+v`dKDr(OE4+hO~qJ97UKl|tZ`1gPR_utHEaG33iYC|C=`;%vs zr;N^qUTE?&%mXKl7e;H@&6!MTP@T^@d0uH7b+hy-XCs0-2`d-3ezZj;9|zqP@!fDQ%AQ} zO|*pQo=c22gDrg>l|RfF(aa@RJ!`&7T_H<6!3(&Nq`)YvXnZLxhd@M)DX;P|Nc)F7 z;woN)63zlF;~UgW)7CTzSBx@Z|Ibh}(40wm$Jq==QPLp#dP2E!%CMxn>3#o+^5&>F z6lH!;!EwedU{>I^9GXs+ZgK$D9NwXT*ZWG7zom_hwmIY@zMtqQr8R^Sh;wNQzh72+ zYEI&WdqYuDPWIMEkQR~1@omG2w>-@NVAIhq9@Azbww0@aEnsm3bqn_QOW)U#RKYf& zqYZ(dC{OwYZoT9>1gbB>!jXP7W}5r^=NxRB#_))+5`NlD5$dw%v)nx$w4SGBuiD=ae^7F&N}U}2Sy(MCKLdv{5?3(x*5$L+{X%Y!-q!Y)8F)eR*rhh&$2Vu&xVMT0+#q zUvmLgR-3^>00NX{s*gt)DT-DY_6h=t=un#_$o|q&!(Nf2u7+T!<#eARymYrQ!M?p3 z2Qvr|LowUKo~3-P>gMGPPAlxzc}yseaBna$D+B&p1Uwl99}x!ovEi2$w(ni#~(}24*#S@D9bY>yJCqd~u_;B~PvGxBCd@ z7`-1Kzx;gM$88?Ec|73lcmNPaDIcbz+lTdjy{^YTZR=!4qhmDjHuU3l-1qKa1RG3xM!cGSSZOdh!M_aVk}t+^h{G}~OyR4!WF0jX z>jn`BBfA=wGeWY@iJ0!H|2&BVx>9{1I4xfKH8!DM-7pdXH3;KFq7pO7$Kei@12V)x zjDXgdDwKTT2ZaF&lH1a+5F)J**}8+>P1exipd*wvD2%!AK8^3tW}4jDDpuL59;*x1 zp`O0~}rJ5IA zL>gPhdS~hcFP4p47A5H4LVALHu%%flwB0@g6#G-DYykGVxki@__55|M#0_3W;sg>s zQFuY6QkF*}QfNt3i0cd4Ny|6_Z1Smfu(2LLFSTK65%&CFn0sz93p793;|j_(6kby6 z{R!9&1i)WdIK^aDk)}m{a-c;Zc!Lgaaz-v2?de_D=RHK3wbVp&mD5oOkCOa@91hTH zm9raebXO-YhGts#k{IL-{~= z1sdIOJC`F~koRAfv|-B>jB`mZsb~sWSAv2P97mTTPT;$lfX(w=1-#|l;>r?GX>Ce& zAhyZ~L1jW6(2vyX*4GIRVs%A~K88ey0lb7E8XyQ!S!cx5lJGp{@6w*%2^sNYlE`LtKvQ-0kf!&mhn~Ey2*OPL)VByJ zHtpq?3&Q0&UqcAcd>yB8oaWmV6%oe_=^9Xob(G|V!xHMl!*s|#n(Dcg%1{D}5QR(#gL(l`UwwGv?izBr&+2v_GPRCl~inY zN~xJxV|kOO+Kb``^};|^P1$cP$Oq9m4PbaKv!5r{LCDy9H%wzHY^ct^cee5ReYV6v zd4_Wo<4oCDjr3#(%Y+;j6~&ZPnO|SuIR6|YCcK8o(^trWjEFZJr#^E z--@~qw1>k5^aaiLl@cL?8Pv|~?;^9??Caoy$0U))mv5@KqUqA%v4n9X5`&SEq1?72 z^zH@r@aGdr&s;(Feu*XQsZ&Z8u~SP3L~OonABl9!SCq~ay)ig~Q?-rech5*L zd`5YeHbk2xa(S!^mh<`Tq=kqND+3EW0z!UM1YqRaL?0zoTha+7byL7M6oplv=-R>B z@6b2fB|;y}%pWB0xw^ZJzA&lV7ejcL9ye`52P4R!^8UD7Ljj0>@jxBwHnlVvj}f8> z#(6>cVo6L>HgvINwHKg`4(zfMLz{*nr;F7?zF0!mM93wm@9x zZR)1&ajokCDF!ew6;?72>n?MeaI^>zBws#U)ZyZ)fHrcaws&}7n1C$RxpYa6EpG` z;3*7(oGwrK3M>YK1cbTf>iibHgBg-c+$l_Tf@`j-w!$(qrNQJJ7OL?&#@}0heEXRFa9?B2Y}S!dsA_?8EaPo7>f*Iya7*=E zk1NC3BF8hVR`~R&-!IJKRJF@S{9_;{Krv4co{{`zgM)!fnNe=FyiB_EMltq6FXSO< z!ctKY7NRZLhT|OyOGR3TW{_4IH->pwX}@UHg}W_|+=WskG#U%F``%V8_p-pSE>yH6 zqpw4@K2yO*F1s>G30RzwA<}51X6nVC8>-H%uypDy>#ntLq8poi3?*o0nlmav{zOZ& zQf`7iEjZe+Uei0hh2^b$GL?)ypX*;(jF=X_?Nc(S#xeRc)QL6{7^;?i9&BUMHoKS{ z&q2t51EM0d}>ZMVY&-A3}|ozLx8%8<_m3f6$${`-oAD~chMpP z@eM)(1Hylo1rO2Ak6%CQ8XNYdKL!XT=KF}K%5|(eV5aRcwfoV+P_gUB`&7rJTL)CV z7LMt#+zEkAbcd!DwReXq0{AejaPM7>N!)&{0Fmc$-nMyK>3`D?kowL52ll$1rsLT6 zaYnYpfQmeV%P`NEkDvcS;?}}qtlp<#--m8oj{(HB9z=<0ynR0AVVI_Io~E&5zR%eA zx6jLjrnv6ruC9SK!zF$1UIZzqRaJ*d@s{+w+KYQpUu6m--Y)mDiMvQ_EB+=)g#ni2*#8pQki|W!rDb467N$W$u5Gt4 zXA&8-pJ(CC3%9DOrAZQ5XcRjo?xkWVxKqz%SA(}OVBe?T(h!MBv>lQ{+X^p4g|`uE zAwbz>wc3{pu+KwxPTW z>ZV4~9&CDF8JO$X-74+_pD-mF$X%}ZVSrXNcw{>(4j7NkTCJ1Ux=OAr)`WfPFaPi# zzxm65{`=pqbt&G5EX?^DxlOn2?b{`mV(WwR#+{40elYCOSH?DGFa_9kszY2XpCjk7 z5&A7H&T_A`PpBlkMfIUZSc`{vZ;HtE_*ZaD<~e{(!G)8Bm*p8bI5E%!5$})#&4kJ_ zp$|=|xt3M1J6+m&4clTQn(gZp&U{`ebDdMU4gre;7Xb+dp<4qV3_nx1JxOYm-o`jT%JkQ zD=D&b+gv*qaUL|jNp;H;x>^z}eM2|+Gz0^srSQfWUC}^EN)0{2Z-OO(5_vvd8@q9j zD5->d190DAuiM&1fD)DX502rJuycT)4SgYlw-sx0<)EoWLd9SF{@P77s^dPiDI&xY z<_+t%gI|jXw%fY5%hDg?vE7flg^FzKkE2b9>!BYF3*`Z023%G5(?q@4^*&Aa>okCI zK>fpowhGfRt?S+)Ec2M=Z5_LD-TM)_!hJonzwNr2+TgJ}e*Qa6tjFVZLs8w2=>YuD zfxvd)iH~u+U&mv@ZxhWS*V}E}_wDoZ1_A{gCz$u%QM3G#2Wi4VzpAf_tTy@Ps|*TU z5ECGDUG4M>_w+2hPr5CgYxpaR9At;Q8DJ&dB~-Smq&RcFc-BO>4^%0tT{cT{1{^1B z$)6P*XJ<&!mv%`(-uN2jc&qdxfzWc&&D@JH>?u<$T!o@sMdJV5KBk0cqR%x8x9|@% z)8%qm7bh4Z^f`CV58zNwd+!LBnJ;GZbIgY^zn;iuFeR%)gp5;|37eWmsx|DyQ-Fkv z#R+E^@nUv=D!e)Nf&oin@G7gTl$2E4;DSQk2HiEs`8Ya2vlxAwk`!5u>ecB=|CLEm z{kCIXRC&4%q%-b!m{`8lH`nb?n0 z(0jogAIe)j%Cm3x#6g)kdc-kMAWrsZ?5h&Ee3RX6$+Ze#fZI^Ux>%2YIz8-GB+)`cFX;|;KBMs~H z6A*Zy5k@18y?Z-eK32q5PQ!k=Kq_%tk&!n3_+=cn``T^y>-{$0FYDuTrOa%Y)??bX zacHO8cD=7xgi8GQT<3YZe_Ur^71MbAyaW0LPB2_A*KylWzGdIL&FwL_?Xle;rBEF{ z*6TEF;{a#g+v7G304uf$3XK}M9Cf`9Ev6qAnW7tf(GJTK1jT73x-S1CJIR!s{)PfOJjP&_#4sn3 zKYbn*0QX4Hg7em5R2YHHtZznDKd%-|oTh{y*opJF(qeF}oDjkPt`k(0T7;+uQO8?@ zSPFz>*;`v^f$BgsoYtc%HS@|Q!b(hG>nxf@&cJ+9*90XCO`%^!)@EX~9q>oZn`Ek< zMc69lKv{)8>ui$tfq5@T%7lB3g7UStu#;w2g$*6>bzhz&#;_iP@;=Ii9YvawruI7V zr4<46B=8yZ7*t!J{#l#)*4g45|Lkvn^B;fxm%sVjfBGAW2X(Q}PdEh@I?or$va9yK z5}m{BW9vDM3{{>QqJt{6)xllZu1d*VS}9=_Hla7@L~Q{3aefb;4w@*p9Ic+tbjOqn zSHlB*f(;89}a&ogYZYszEbZCYYr?CP*L-{(S^I6q*;pr6T zDY30wA^-(Y9`u%5LEpH(fKcuIR7Hce?d@!0^+io64Sa?fS`PuACa{e+NVW(^Z-85K zzlE}ciiq(T zcIR`Vn-cenjzN~F1C*vM3wdT4PjE3oYL8S9hmZ<-&>nP0qH<=a0wbwyu{ujB)1icH8E01aV>7 z=W!SSE^n9niq3e3K|200P4n6v^Y&A2alK6)W`W(jP20x`AYxvx_i;El&Z`0Qw!^$0 zeY-?X{9Y>aH6wkp8fdgnPKh@_cFCRA`JVSZwWDmG? zYrSr$?Z3^6IrD`c(>VeEGtKar0(37#2Y5qmfH>o;QNo=Q|LBR5=!SZ7S)X%4RMmB` z@?1Rv8X z9T!znP0$n_$a*YKA^anekXmmKAX7dVxaisNgNSQ5UO7&For^J?Je3O)*mDD+f-l{1 zmB4l4{H;WLC$kh+<0X>;o28}oZS>6I4MPirvqB@(JT+{Mg-c*cuCTv%`Rl*_&2RqY zU;gQz{_;<{2Am^J5A)8$w9$XLv(sBbuPhLJf%dqMybpU=dAlLqm>O0vbs^BomDgi@ zhPudhT5(hiO#qlpKQu5G}&=13Gb9cq>bM%wSN4t?z!+U@P#vpw)RoYsxa>h%1D&1i%M< z?W=`*$~XakiP!ZQub1n5 zzirz(9oxrkI=08h=i|Dq+m9dXv^}O4CJgHaXUO5$HlPXfIBi#2R_>`rF-~naGmv8b z{PnVddWHy#X_{|vcNj+~iI3qp`b2xReL7H;!B}qL8}ve0);Tt3YCc^AmnE|jTuP3l zy}+TrXCDlk94gmT%peYQ?0&PnOcxdHZgT8DIenr4il~93h&M-7k{l*m7EQS*9dBG8 zvvmW%cSe#K8WN={_PjQa5-Dra0f{hM6x+ z5Ql$8cY4@yc~Nq05r-lAv`<|!3hJZ*qB>@4@%8!|_B}I@8q?NnsO^`|f*7hU4HRvL zKhY6NM(ce3XZF37F|4{++>?+gJu%gDirB3FFbn2PP)rM+kY)SJ_}v>RG(?f8|A(q8 z;cgx2ijVjOxn)}2wAwnT1ri7(JuEXZvIZYAEMXb;!*UM)|F@8;Y6tN5O`a3mvh2jS zZ`ZA59nJ^i4c*y~$1)@|V5D_HI9G*9;BfU@AOHCG|M(C8_8naubd zq00hhQup1pah6>b$?{>`Oc7cS?ir_RzKIk{c+?CCu55&AtO*of zSkB*kGhX`OCzKycjMurz<6o4R0EX?4A;idxUip@H?G6kArnZp=l3fIYx9j($7`3#e zZEO*gwx#~I0vSmA^>Vq-LkmQ;zx~0_W7l7nz2Ca=ifP&0w)gAa&etAt-)+9Gba=S` z^2rySFY~tT^L?F{p+R+>*UL;M!vMAe)E>ii-F@8lc35V32hVK>P#B}NZMlx^zN{?L zDXHBZ+XgNXu=zZgyp!}#rB=hpFGB)lxt&iY zOa^o*-9-oDRdsyXRk>mXW3~G~vH1DkJmo2Q>}y~_9G1a=4TjS|jpqsCf@O^^%$6nb zv+(}$AO8K{{nvm0$DjZ4A1~jPvqZxS8tC#xzg3xLux3h{&EgIi>{tgFYi8RZHlL7w zK-^|REWb0HU(aKrFJMN&7FLipxsOL+4GP}FV%P>HNf+K%q!ONtgKzq`%b)zs@Bi){ zYXt8uxTDA@IQ=TQZBWXRnV_r3d0TjX0E<3pQDPOw91VFC#d8O2ouRY>Aa2vx3fzSd zY75vlHO{tktgZJDrPZzp&=(t)ZHSWPGLBdoDCv4`=#cHTQu&%F0+n!7$n^Gv=O z*0n{zdXu7$4UPd{u>r&|BuqqR{5cnz1adAM&Y(E%mJuVcF7`hjEwnwuFn|2=W8J!K zOWXW$n}-pzuW^Pp?*4iEa=Xm)W;VbV=YG4r-NqgwU=SbrodCmi?Z@|f0`q|e zkAX|U_2UK-T(b?#YFi)I`(+%^Bg4<3$D>H3pkqTft_u){cK*Dcx($8!HzB-|Lx|I> zDkQ-gKPa-Q;iWPeM3w%FfC2GKKM9yXUDZ#Yk~R6(P#0rrIUeB#eFEiupC9*Z%n;{Q z<^GoUW@n4z*EmV<>bNy5ViNr$`_<_31@@|-J6HejF@#vujW-#0)kSkfmUy6q(r(mt zxpW>W8N7Glwnln3@7c@Rv^BMjX}NCZEDnPSpg^z|>8SdA0#yx-uW$eMr`KADz>|9` zE8iSJ&waa!qdve@#Xe2{F<0NzG+HH~EO027I~86W@+%7Tna-)B$}5g%#G6r&nmtsg z2dAkN^7jzx>lbZokXS2-UDW38nwy zC4M;>ocXbJta_yuP@O97P3z1&b;NW>r3YW=lcQP->mZr*6PciH2G(CMaqvpF!3I1F zgbx)4XZ(g753M_jz{eTM8xdHkqi-Y1B8p#Vn05yi2>f;r0tSEtYeJ|3Xq@%)YF~^K z2ukYp>ronEDC$TYE@0+=g7X)GIbX<&emOgDWc70_EzHf0Ip`4tGQPtO2X`e<0GgRH z;u&QJBjuu*VZ4b=h@~Mq{zAYq{;iKc{j<+y@Q;7~hQiAUTiqb!QVH%f>KEKXV+#Rx zXNFR6%ZHBH2#v|8Sv>`VXUDM6goxgW(n3lmVEou3RgzeoowhyH24RC9er4n`)eR!h z10B+7+gsZZsv1r;h*w+M;L-br6erx~j2mzFJ?+cm8vNF8q1m?R033%z|D2{pzGMg! z*ad6ecaYzT$jgVp3yDuseQ5i+OIzC|vDTKiUw&M- z2A=JG3hnKuA8+sT`hK5>t_4aVV@pUV+RF;C8lXu#uj`nQKJWauY*K}l4wF@K28BO{H$+Osi3q+YEl$!nC{w?Jlk>yWS4+yOEj#7R zbS0?Cxd55$#A;!U{G?3RCRdtm9y=?U!-*(kwl=GtTx7P9&6b*<|K*>1PBK&h^>N^c zOWDV{Ls6f|URTVc!eqE4Usx!fu}T8OGsL1SE_Jr-R7jYzUpkOy3y$aGO@s=7o`S-u zhX#@YH3oVvgrsCr!(>ePPk;Gu|NeJ>`7eL@cfW6N$yHs8g8s#ibN-PK9c3h)2+-CZ zK)6_OPcj`tMZ~wpkA?C+BavXk>)Niy^dC?HZ!i`U|J3_}8IT9DUn%{l$yMcW38|u@ z+wluMV2T45HVSx3{#Z}a4erFWHmEEj#zF!iA>Ud}m6?m#*jY=h0|1;zgG0^pkBw2FB3>GfQ@>Wqj~lwmj_ zBVtKmBuvdL+1;FeBmCh%{^Os1?nC~5cs1w45ly@sTJ!D5_fN|oww=eLKr1XISq@wf zkoUn_EB2-2l$C5*2syhLjlpm%MoYK=)3Pmj81HHO>DU8LmC@*>0-Lw>!m}Mla8R{fA%2b5 zK=(_siUqwtZ@VPcyARJbVcP%@S*6)mN7Ot4zfzOp91 zAjX)KhqK@e##0t#O4v{zUbq&C4olsI1-!~JoSqvTw{y34u+_kLOxo@Pv=zHDw%9z}}e@(p!KK^hC8 zA4q-EL>&}F5pYpL;gcZPdoO2QR8Wr{s^|_)=bf9zB_Q~qmRM1>BnDTD?ciKHz+)#g zlQEO`-MCvD6E@~P#550Rg+m0XETrq47-*Q2B1F~Hpi*qis5!@**VmS*jW#E5-> z`NH^kpFgjRV-ve}7~5_eub0Q=a)1BZpMJdGm;2>%d)y!Q_4aYOgWPbvuXJCS$Mx}k zT^_f!1rhi0(_j5`>D%`HW8PY%6VGoyKe~3kj43s#U++i+>YDL>zh0MaxU87I0d8)) z7WlFR9BZqyPy04sh6M8Q{!J~Yw&7VQD=2};4)I%Sr-`_wYG`gL3!n~IJ+(dOBh_!B zHwEnDKs~@A&^q(zashl&A2c>|Hiu6*M>lgcpIB$>%pt}_90NVOs`cc^PmnGONB$Db zSymk(3CJIBw;F$d65`j^a^Kh@U0P6$4)J$8D79RtWyX zKgx@j$#4FF1oqmn2yfO!HJKGaYYb(;ERQyuUXpCpCK0R-1GY zp47`{8Q>W)JnH?q98=M33PbUAB|D8uuNy5b-VkiMv2u7|%km9lH+MpdS&_XfJOQTX zYF<%M$izbHS=y3wF%mrL(1a4{l-#oOc{OS)SjlP9bnt)s2f-9HCC93y*j24LSusC# zjX8deO*t6loRL>?Vy4rualL+)rYxxi+{1y@n+Rv}!% zhIR`Wqaz!b#yH+%zmM~;!M~j*1BC?03=U#9Am?rG!TU*G%^YqpP*89Jk0-zg#PxGT z!G-ffN@40cTZ32@!EtEUewti8HPPAN)7+=2*-~T@F=61gZ9M!AAZrUCK=jC&NaM0D zpyqXgG_PDYPL|C_T%0Zb!-4b zgrRk37DJP^2CvI+ZP%Dgfi`@s0Baq@d3cFL0A4EcT5=>7)~sElV`r&77EMosyrAwn z$9d&yR63#)`u%xUHWp%Z14!~cTR6D`_=tI*oKEKIk#!{IFY!6A#pY-$Xou`*Qv zP9fHp#!OFff!Mvr6OIQNYsqf1pqFIvWjVq;3$sOF&wu)t*XW3rWEW)i?A$TYHtFQL zWDXUpwl*ewKe}WyxKf+5p;465ri;S6lI^SzeFz*V^Ti7{-I`8^I)H13Q#)gcE+y)r z^7h;1GZ^Jx|KT70^dH}T3wk}AJyay5suu<5C4@4*AEnnr-Sxf}3S{`J!rlQl8e}+l4Mga^Btdpkew?beSSHFhaB-6N%a_eRHU5c_5~%)D!S+b#;wO%C092*EP|Ho2yqdv37w6U58K_ zPbURF-Z!=m&g#NCtw*`Z)gjSA8*W6Q@EFMXQ&=1Jrspy-UF1KrgJ4n z^w{}J>_^rvPaEKhE|M^)SPRM!qKq4)0xoU3%oQL%*LfP0_lu`K9G^nRa-?M=H%9b^ zJ^FseU#CYJvF*mb3E0_8SojRsVDezo&bl^CDivh}%CsTLYs?uDD~|Pb@hEY0CbW(` zGR4bRmMtNPai9Sx;hg6#7V-;W8B`F^%+w#3*^#$IH+zC!x9rz={06!h-E>e&F*Rd( zR=_%v*(jO-85d063cLUSt`uc3KSH_)QoK$MD|r3(dyn0nAV4S$dSMY7@VpZ10kJ6c zm;wk#K{kPcQBI6IEspt}c7`|&qkWVSfpgJxHBB|Y(>8!K7z*@Ci_L^mQ8inD>>ZOdxvwB)5QGfOukA#= zl50~PLjG{sxHqPv1q(k#)7(#}i~xXzJ;c4UHjN#AfS8E}qc#`mOx_5XsGEL$T(=Y* zfCJzQZc2@>*;)tZ&`nc);aE37eL(4TP4gVFO%pRGaKQPp$L{{PFMER1ZR0)YUOl$@ zTRT2J+6Ic=>kYY-AD3~wygk;-?c?LNZvEr!cK_uM-o^oRvisw@EZ6(xae++Pc;eS%z_~ zOK_^iEu^KGx|uSRt4>z4ICWAgw&G3jDq8Crz(1dPa`=ibs=hYgS^qDyki$j*Za|U0 zU(v23S8gj~eAVZ=u>E^q`6iT_S!>`>sTq(*4-OO8YdAeK@D-%2kzj0F&s+t}FQrz- z0#cwE$Lb|dGNI-u>!c5=pJ!bAwi9&#oF(BT*)a%@2@%Dx>8$j97BVmP)mkJZ zCi?QnG+&9E&uL>(3-QUj-^w=YXbuGcWW%{ue+>pJAOd{7I~<8mNMS+=1oU+cWID^@ z%do||cCa(?C6+R;=Eo})I?KwcW9^8XL1<16@xF`kJawO>bHo@L;Jdq|6tM+cb% zA-8hnyi2o&Lz`@`1lPec*bAT*yqsm}Ko*$dBbs44sPHmq_`rXU(gLFvzP_Fh$bSdM zVM{c)hwt=E7hcQYh|}ri+v}moSttBV_+^dd3!~Z#2qI`^EAQSDAX`OS@-V2o-%lkH ze1vAaz8b3-QbsLxwmgZnR*|(#k+J#wLIN+(_1kZ};B2t=hGbrlt%mvzGcsfyhwz&} z{`l|z@l)3FH^W3gL<~=l|Azeg9a8+mFljdcVE@_=C?twf_D< z;w9C^^W*&!m{|6GT$Z8T`(>S>VQc4gOleq$*a3zfnd=_+VYoil6|u+xCYC;JbXRad zMPkEnxRk=T$)FwN=aYX}xjAG`hw5o9Z=vYWd#Np!bBzKaQMR4UWn==Mw{l*MGaP8V zs|=~rr17POL^0rA8QWI3QTwv)jA+&zO|xBrEw+K;r}r?HMJ~6X{5uF_~<2 zh*o6SXSF@cwFVD{maYQjRdx1c>hlqjGukhF_P>f*la*s}Vp2M! z2)Kgg_$2DtS$EL(K+wdYfQ+reS;0jHJEJrv=4n=}wnqnbNPRvTXO3bLm=M5+&=X=} z_N_{xcs-Y=*Y5{sUyhY6`9ebH5EcLWLS=Cd$|%hFg-&S_Zm>+#*0OH4>Ik15XW+Jg zx?H+8y?p!lqrd;-Km2I`LyrBr!tuLQVwy)8TWP>%CS&)7q&}OGb$Xhg3y(NO!ZvsS z7d;|z3UxI$b-t_+-7tx7=DcU`6uRi}=}5jZfoMT&tc}R>v3hE^z=X)j0J}b z#b6r7NM^6G-O#zvxX?vUzcW*}V;9IJH9q+|bPe5h+okpRr|rnzjVL^RoBJ@qh*W2ym$1iV}`?`Mq{PN?+()P>k$8BBT z->%Dg`FOv*z2C?Ac0;8_?AkoP|IQ!WhXJJCrSH1&@%~w?+t>^{T*n@lA;u1<#0+1D zrduA5>$ssSpRbLN8&ntcsfgR&1@f9x_(nj%=wryI8BG#|W8vmtk~KvLdR7t>Uy)z~%muDYnRFq7vy_B6INRcB zbqlY3d5_~LAy$l3QfsY95J4Z}6}zc8Rrn>`1fa31d}J=8VTH7gaYqT$1zP zQO8(u6}u*(i28X_##oS9)sU7i@0jBe(?Yl=epXem!OHsd3Q_J+-jOJfIn0O7G%pOI zM88|O&+>FGj^AF(S^+-?dMZfO459(WLCS=szu+g@F!4XU!H|X!hP4ps>+-OaMaTO6-nOh{O%1gi;NWn||OM z?>cn60riOBLW(Y=#&Mf%Ne~W`tsTf%jVEl;G{}_S8b77f3}Xu$-3A-|gd0=4BmaFx zdgZ)+{KfB6&pRyhyk760{~OoK_3`$0AFubz&u`axxg)*jdRgv2-Y)BU`ONkC={}4L z$|&?}cZ5y6|H&Wy7(wNok-j$GFTgdLZ5+CUAk0*UVIP13Hwk);>vdiG*dWRXgS`-T zO6Y=f-3D}|4tw{_vAYz?Kr=^WB+*P$E1M^-UgJivO4z;9o``CeAPCn_j&D_F^O9at z3&P;haeLDcFcz2*6A)nm#U2GlG6+18ZzeoUhms*B?D->NV@i=I(C@PF=A04r=j_%q zJ-8-&cZ&7@GEqr3^OQ4sF@z-sQ7siJs=_NJE`bGEUV6}LGUYcb{pdhYl+Dn3dixd; z!TpoVPC}TfSyk%HUvpN)pT$!CLeFMc|B}W7L8y_8g9Vi4e6S=^7YxYMWtpEUEr*vh z63PfeHex@QBzMq^65S%q=+(=qLXuJ>p@Z$OsjhWe+y|)UgP&muIyC*fbX6LAXX+|; za;0xN=4V+0LABMpX6b%bv2Y!kGvT85mh2}Bu(QGeWm;Lu*pk3QDWkZl_D!v+l{9N` z=VJJ>f^l<z2jj~D@IuAVd}tfW z7ub=VDpv3lIS7O=Xa~koWT^4-x>S?~<+_3o1LKbA?aMUdb3rV%kjZ#nZvbI@Vh+}o zfTz)clR!UcgMzq@4)1??mu4S5A3`*J`x z!Z+&t@>-^OoXEIfgZuLRAZZ*q#STgIh2O&Q%)Y(0rL~H9DPcFqwNVb+3Xvxo@nQ+RjZA_SS?gLx5iys&$~xS=t*Pwif(=F71e^Y#CI!&FpknG@rwIz5MzI zKkf@?yz_E@T<(`^KVR36ACIxWTpm9@X6W741;n%4Pmkrg-hTS^b1v5n^9&jAxU6?b zhaW%v-jAh4=;b)00QaD`L8IKJe(suPYB0weV2=*0cjyU1EN}O=+lMxWZh%8isOzRn zJI{RkR%bT^m$raws=0(0Y@P9P`pY|v2hbm@$k}JKBp1LbB}Y2!6Q;lin1>=XQIYPD znO^ugN>gTxNljcBe0X*5%nO@*Za!I1adb;iL>)6hVPVjWAn`U=UsW)aPE_lL#ZN?H zK3?nr95k;sC6vrnnE~a@v#q0p6+*>|XHsVk`%;x^O~^86TBTu&rZC_DH$%TiRBJNP zLgUWrtEHheS)!t?p5k1IeB*~=Jd-@EIU^Slu^VIqFVjc}yKQ-**O;<;c*z!XIzJ$x zHJ#EdI(hcmww88D8Vh+Z3R%bOyInVDvu`l_euxdY<-zR+LUntZ<|X2(ng-_pnSP3W zA5df~HsvC?oS!0Q7S<|m!I@GC@XFyVi?6gGCO^_{0UbTj@g|ffJJCK1c&**K5}Mu| z{poB$o(74tXMh%}t!IO!h2{33U}4lg?%9FkV!n1nyZ9=sm#y$C?t|3IqQc6BT1>qI z+-O+%4T$>Z^>piH|Bz*&)oml=J*|02mo9L=^w*&bVs;J9%&`#y<$)633gR@ z-CD}&-T<>{*a;yb$`U|EO!fC_xU_QRDYoulY(&+_^8-?>8zGC8QT38J@w)25A zdNO>h=ijLh&E!(!&{+7C0OO(yO9`L&u7&*5hV?$knam@6(uZjpuYE)rN6qyx!f~AY zP-V*)pdolm!*q{JXqTRjIaITycAF-~WU}feTtF)umLETVEM2o)$Gz?01Nrl3J-y#< z*Ll4>U`^Kd%jL7Do$<3i#cqXyZC&R3+xs#;*2_=t<33-#m2@Xz zt=~e|rXs-4yw$$j0JuJx|uzw@&t&gHrHOAm-vPM6`rofiMa(N6)ImOWMJN>&Ds8 zMZOhnANAgO|I}T(AUT<8wJd&w1?Vg!z|aA8ZYa}I!mzL^`$&&;&KwFiSs@)c3mEiU z0vGLd7#AmA1bmex%uDr!W!y=mH}E}luxT&$%|W;EY9y~xSLx2MofI0d-M0ZB#& z`g-L2>huZMq7tLh!U2KRIFqnZ_+9mCVl1%^(8!!Q^e4#BC9OMSF*u*qrlW)(LNYuu zEa0iJsJL9g&9pcchi^o2PbY_*-yEt((GyP^SUvu%-TiKqn{2Fm+WQ`0{(1l|Q^jop z+rpSLt&C|`W?^k39%fapr1`KHp_L(D&h#r0`UrC1IE}?Xq64_XXzWeLp-N3uwEz#0rnWVqz2DZZ+4>nI zh@RL-pF)$?Uw*zlQ1by!LkHarO=uDc2JRb;=Gnhi4iGHM5W7h7=QwyI|1LD%dX_kc z3yNq0B%p%FFH@S-vbtt#JONj>x~@&mD4f(q=n3e$*|u-Pi@6_lO=CPk+ai995#>V--hP7ay%nMeezMi70Q12Gu_$Vp>E}FwBvcVUG&$yg`^m$M+Q$K zeZBp7U)HzFhyeBrL~6*7n1>CB!i*ojzh9RtFopNqGK}*Ah~awq@yq+L&;2mpuOk58 zak$);>m9Xs1BQ%@%&qYW77Sf%-){pGGjL8_L~Q1=Ts{YNeFBLt4K0=n^!8{yzlro^ zF?sPoxN#L-F8R`^8@O<$R)v~!Y71`C|6EhC1_nlQ88a{>N8Qy(l-6lhni-ildVJBhRO*Q z%dYP%Cr@yB8s?-1T=(FJ3}+y1vaQu6^MqXTbfV#p)Ib-7>aK`yI%j&!xKMwYuhAR^ zH3MsHEV9dQoT zEnp~9A)==~R6xp2(*R#k3T&PZlfH;6Hg&eP+V{!Tnnfb8FmTiZWwGbSu}MCMCc37J z77WmU03VMbS=hFKN~0RX0t_h}=5rlU4(B}VdR-Vs0IDfCA49h%6ydb?J`FuU1^})b zcwQqCD?w@)dN?z{b$9IN`!9d;JMWkGA0OlL^N%}ex|hf8v4RbT)^=Ip)eAo|w9JSG z>cN1xUM?%D_kAChv2B+bw&$zd(bwzTB8tA>#>-_(U4&2j+D_@$zg@Rxo7WL%u_1td znvi_4dGAPAZqV)$qn^??_NA(wXl_}DnVJ+F>y*?ap4UW>&May0LF_c_kw2>SC8h}O zGm|GA=kZ@8;W}dvnJ^4S8J0+!`M$b|ZY-SF)i@>IDFDtF^1woylFhVX%SW)r;%VSC zS68gNWL&yQA;^x54BZt4UpR#gUU0C=t4ISPGx72z;S4D-u^6-8XY8j(rEycv9tthc z216BBRW}&2*-~p#?E6>>B4LlJSR|3Yn0M99t=!shDM9L@yn-B(I#*cdDDAbu5l+>k zGyg%75>3ON!O-{(vhZe`2YpehQNFj)UC$hA7wI}oWHq3$i6cTvW?{F!4;bmVeoX~; z_}$!~)}t6#P3O*2inZ}X6F|u0bigQrFeC@$-5g&546tT%a0dd!F%yQ__3}E26B3^s3y7PkJ;p5X zP(sXm620N{{h*9wF8`8JpsGSak!^usVeTx!6Cg7Tq!*8lOI2An!#)+L{2(F3CQw-- zm%56o4%}d1+~eA;&9YI}V^7ww5P-O67hcV>bquo_Fg-4K7Y@mx^ zL|Z#{Zfe?LhX+k++V@{CeZTfCGHCZdMjhJIYud88}O&wu;&__*C}^X2z`x(@So zp4U%S?tLA%Zn)k7OpJ(vM?t;4-R2%4YxDIASa*i=`TCgqKir1L?ft`pxz~`xLiBfOnQCxt|-<(BpO&l2;{|0Q!u$jrP~;Wwx(NpSF*nIt*Al& zmxfqtdS>verYYLKNemcbwb2dozQI=(JLG<*HcifEprvc~%}el%{-Y|N@N@Q#*T33U zhZLne$uF-mO&6FmS}>FapN~nM1Nv;Z@sip~J1@b_S@ZGL-4ZT$`d-yb;$-R)q=J4j zg|)*dn(ORNR3QtN@PRl(G3|ZpsjP12&73(m+tvmr!~H$fv6YW_Co7HYO3E37$r*V9 zWfk&#pe}gOCTg)U@_HcAhLqP@qy%CVUkvJ}?3p^`;wA6Wr4yzGfy4#?r$=eP zSQU?jx4>!jv$6yifIuh4Wg5sybs?TGh0Y~-RB#ch>il~ zjHM0UM`rtFi9TfC6jb@wG7L*RuYsxyAvfC~N1T2ku*omRd8FGbeus zpt>&9u!k>!xlqWW9!bXa{F`uWjU*)V7^OCC^bT~fSZ5N{q`hnHN#)%ld1V2pEc)Ew z`7!Rso(_x9-RLq+D%og?U0Sa#!q`Y7t8KF*@?i)2)I*fkIp3hvQLQli-XFd7<6~^L z@qW3i{noDYwhiOBTpn{bt}D#MmfLl`Ebo8u>zMj=9M}8habK5y7;l&5vhM9LU+$j| zUw{10&+~r2F9T4A`MM&{eZRlmKOe9R^Ne~v&U1@+_$yN0yM7*r>&JEA=RG1FZs>Oe zT_RYm3887yex03@7!QJAFlxbNPVe6^HbepXe}&gMAvKN;$6kC~aT#zOA(WOVtypB! z2IDQXkSePvy(Dpsw5=bLkBOe15O9W#SQw;07f<@&B@`xDS4G=?+kT=L}Y8& zg%Ua9DNA&L=S_{ZPh~JM;}|&L5+x1Pvc?tV{NoY|JAo-9$yFMI6@jm$X>pK^DN zm(^i{o7rIGU=hG@L39LVVHPH}n7OzNd2BsaZ8g@xagWA+Ur=$ziUoSGP&z|1WB?z4 zdrf7?;;<#BPGYacXv?ZudSV_dI-MQL{zXzmi% zwXy1m0ZIUEL&F^RezRP+ws|)ScPtx}V#k&WGW4k|5eAYY?m3LaNZq9&9!PdOl+A7- zEifUFV6EsFj@;v5OP)JiG_u)6Zjq5(ksMKC?qArrlYf=m=~(zC)XZi(kUoGb3<{$B zi{8APV9_q;cxqyG6t7m%6=);TBp=Nd%j1D`VAe?*E{4Ve2q={tVi=`S;_W_tH?}N% zzt>`<@qv8M5umM7^l>@SnI^|0%ak0j2{PYR+vNgE8U!0!=3u_Sqz+8As(Ag50H7mG zY^Vgm3$HW|efdsg7xH6R>MFtyY*ZXBSJZBm55F{1v& z5SJ@lZSNnWHy{AFTL8uoC!oK8eY-ATMi@|}9II9A_BJ9T$Wid>?UWQ6+5YmokD&5Sb#2%6_s4Y}(80I!vNtg7 zZLp}cTiSM*r}uLkrx2*^8xSMc2IFJXe`C?hKq;=}0?DeYuPVGk9b^PY?SzW77C}+_ zo_b;Oo>{@6HmQTRI;b#NblALvV0B;@wup*~v5K|qi5v>2=KLssI<5-=gD&cnP1XTF zcRe@m(06#j<32Z>bPtbZ|6b3|)RjHrEp6ZDWXpPPj zN6A*hNC$M1k4Zpg(*_PZUbl0V-NwEJq|JU^m0C_gxX_R73mLD(_^tEW=5j`mm&X|i zerzD2zBkRdo7{|4s!^=lPgR~=dQ41SaDobRwu586)agoqgzy7gE1Go<)}yhPq%Fo+ z7p@)lsCig3&LKC+}*}9&6gFr_R?h2Wm<>TQ`1f;6NoH|n?0kQcDBH?lE5qI zA#^U={(^0$i_$ny2yAo(1rt~((d5@?MPqUW#TH$v&`oBWL>a{)l&L=J=C3B|?%lwcwgo`oD_;1GBm5oX1zon9erq>UrUxrDDvQjCiOpq+vX z4SC50#3LskX!WVC*Zb-OiQwz^V~q`mhpQxof4PwdoLku#q&fkHf?CTbakk(Efyt zPz#3scJI2KQS69hhY8Nu_Lon*_kHZIw+qWIIK1=NL(=x+*UOdukjwI^X8Sx8jdzFC zt{<0vnAf(y58bf5|H0qBt?hpKaqCjMr8JD=0CvN+@59`8`#h(RkU_Dd4eo~~?R^Se ziogZt$MyR5SNFoEEq=4ACMuyh?cP)XwnMJA9+zBkS(ovRqhpyUww#cuCJP9LJv<>B z!M7|7yqULSIwv(8Z*gHF;W|^kBv#`MsMC_fslCNYJM_MCTf$BJ3BIVH3-TrHLeH9p zv5%S#;NajmI?R+pv{M5&(7p9Fu~aJ)hkU7Wy)t~sb<=rTR-&`zGm(Ljtz~uZiWN3; z3@B-baS=&<&fpN4N%zI9pbSlR?%51OvcL!~v?$74*l9*q;oa15&&YVq7AK(`M!8F_ zA@59hH|Yy@9~-2P-d7T+6 zRRTQjoknAEXt|kyYLtrwThPMjZ$V9WPJJwBvIu9JjNIbHtl(JVy`e)GtRkIK`lz`B z-wd2Grr;VJUh~Jp!L+-P)`GJy=CuRVu)&^=MF=IW3BK2pIUQfo&B9}>u&&@H-dR*5 zb(`vcAtq41p5Fp%UR5v_hkP}jdGS));`H5g5u-U<6P$q90%J8lQG5o%0yBZnPbefk5J0$lHeQf21A)-lhL>V|bN8t=jGdY{q>t;i0GI_ysFS-5t);F=icUU*n z?~0%rViPA$md4xCwqs}UXqq%MT{l^u_RZO*MSmG%|8XD2>vi9H$sH~uCSTX<&~5!Z zbp1Rp3(D-g@3)^(Ug!0)v|WF{tmDE;z4zNXx`>N;ROwh|_4Yi;6H@5v;rS%Kl*UAkdyP_c54 zTC*h9SV{F;Zlck8P-AJ=be8wbb~xgUv8JdaChJa7LPRJ*^q{q+AmG$)p(YOj?h$p| zhc<|NfssU2;odAq8eHVphvGwD2iL@!gTNJ<;yZH+ z7?58&b9$i*MmzXt#Jn!1${w6gFZE(tmRRRdeVZVCHrw^O+d_PbZXV!x&Xv)(&0(7R zrdAy{?GR5zK?7DzBpF#*kO)jpJ+N@{#xzVr*FAO7oC_f;hd4F1tLQk5HMAP1M)blmueWNRb5vcFm*ftFMg%CqsT-XC~@$+Q6tOu+oRTsynE7g zL3sTc3EPG-G_uk1GP&UHCi#?;me#yNqabk-Rqd zuw=jm-SD^)t_2mW>(^y(KW|*deO#`O8@pe}60?z<3v^L)veTA*JNw`s0Rt`II1Ij=-;nkM{&ap{DV!?Gv!sZ|u7=kif4j zThUwZP!AQ+0pQyQ_Yj zm}clhcmr0nw6{@PcloVJHKNXDYe~ibIYhXQU!|TYD_3(46sw7?}0B}S(#3nmTp7LV_MleMGeBynW9n8WjvM_ZQ-yu521thKF zSh!HW2pkZn7(Cx*_s8!C_Nr75vuGBePDs{#swQ`)hJ#M2@J@qaL^HHqK*tM}u!o|p zs3aCtZO-67NhK3BLW<>fPOKIyN$JzL1RXFw#vUH&u8vb}x#*6*peQ4J&Va7EZOs%rM*gtP^)SoH5T}n3 z&0rknHla&h`eo_2{`&arRX^U|E|5}e1C+o$%yF;t=hx-)vaaj>x~?;g#rhFx@XO~< zmMc6Ps8FLT&g1=pT%YCbeH}p6O?y9#%RCN{5|0pHEXhr2U#?>lnjFyE5H> zTvCjQ;q+KaY#6Rf#L9$`vQJ%bQ()nhWwD~~`Gsf-F$Kkdq8fW5G#>I{zI`gZiV<~a z%z*SEYoVK-$MS5xx`{4DDA*{{zP~osdv&s5{`F?F(;RN6_uNzBpfX7i8TXgMSGbc@ z%iP3!{nlJy5NSI$0x~pNt?_WFFgPb=V{G-6uQ2VAmZP9Aef5UYHYomf>LTz=Zn#7O zmUy@%jnVpSU`+hMZIDBVE6g9KeSk3>O)U6-FLtES7@{6Z>7I$ zupwXPb#XYYc6(Om}>amV!4nT59_B1hCBR|FxnHIT`rU-a%?dG2TzzuvxQV%@J3rb|Dvv;2l(brWyO#xS(aj3bSH&ee1(Kqve z@&X4I2q6IQ#%@cgO~Iof(}q<$Ze_zG0)X4}G)>#E#f13G=m`tfY>*?oedDkWE%>+d z^>Mqxz2@z0T_2C@GA`?|58Dnk!-jaYeZHVpi7S!hf{D=hsnwQUi_j#Rnsg$>^YiM=}W7sG^iFSP~O>B@u?|q`_+TOUy zPgFYtGMSvQ-&n=~dTPd|_K>)&DwT6Ay%;t=);P}-`%tH33a9rB^Gy7V3|<6th#sYi zO$De!CIp({no1Rq<`lR3Zr*eIN@QI@ z5Cw`DA1??>eQyRNY#4WEsZMhw8~m^DdNxOkAd^Wr_jHTow`_QgvtrXeZP{Zt?7@m1 zN9M*h3~dyrO>Y_h%}nNa{r$iGrT3zLHJ&mbjJVQu;Ko0n3FlcT*&>WYg`c<79 z%2kXtM|QkVPO6u4F`{>#xHYv&vVo8R1fz}CYh)`gddIfR9d@6h5o`;(xDpVhbKUR! z!P2MlP$43Ot+U_f4JS(Zb%<3Z=!UcNGW1>LqL*nqeIEiwgdti+5a+B76yCa$*Le=u zv^8*OrDf_DV{n^-8(aX+4XNw|=X9p#7K+6!7}Uwwg<}!g2wQXxx9CJ8joC@2Giv>i z;EU&@-TTvo2XXLt&)8rCh{&-NWp#uiB5WSf7SN3_+CtKWGw1;f1$zDdSzKM)0P2wZbh+JR$0-J|X;PlidRt&F>5@HuKN*tB3L_6qWKvM%QR0Xvic5hO`@ylcBjGM5 zkDke%Fpef9CLl`O8~IQehTv83?GXtNg}T5(GI{7_Y>9}W6MjSVaBj9(dxO+XYe~5U z(M9`DNt@b^;lj0NotUNxg0!L4AlXM0+HQ-JPs>bKbWO(m)D9^kivj6TA#H66QR$W_ zsoE-gAfsK1aSGkO!NoR^KAZ+uA!5kIVc${+TYvfSvGyZ$5bZw0eXO6CVYt0r+tksV zoL>PEFn1l64QoGM?)OhqhjBod@D&PTpunFM`=`J980KGptb2cX`?%k)w?BAmx9gAF z{qlJk`*mHG$9?bT_19mBU8>=fXp`B(9SCcfhZ!5giy}MAZ{63SSfx1P|t zE(KKSDRqGY;HUhVEG@^J&m!}XSzR$eR_qWPR3f^%u)0k9m<;JWR_k+YhrXLgg5*w# z!Bp8h*xFK?mZ5Yl_K($iFxaosa54hNYUg4rl$s)ZbJ=jR0+Ut1|H6mLh>N)su7 z$TWB@8rr3yt7C0sDa@n?x84)(sduTH*9}`td0p@0;A^9%*_!z4&s|-Wr^<1}h=LiG zdxI)XF`{RxFc=ajN$~DH+0-~`f0c&mYpx1Xu8E)jjHl*xk_KG^_x7S?v$0Z8(3JX`C) z#xe(3LsWIank)R~c|of1&>hS~Ha$pVa1leM5BBy& zVB^BT7Z1Mv?mxZl!)M8Td|uXZ7(Q$6kmlRc&-ce=SubPTuM6PgA3ypg#BJERe%%Ae zZ6Sozc4@d@5m2!YU6_!_jO8JEcJ}ymrFm=&CM@3^UEWFNs0ow`wZ(U#2`qM$__^9A zYL0Oa7D9f}O6CJ9J}cP&p+V3r$N3bp45N;n3&}ZfNa7?Y!&udD6lPsvp*QSFS@j9e z=GkeOx;8jIfl8;4kz8nrE?LjB(j$cfOR`2c9f1`=jEju;iZ##-i3oy%NsbYt%3rx*?CSv%lALpfSjB!whP3=ZQ3p&L2fA~kcA%Q2S zco;*O2N2;eOEnN@t1lY|ZrM>J`JR}<4lPbbM(c?8b$I+ZIG&^0bQWLPB@3R;sYJYh z)mtyOPQnRa$9@=+%Z3!D9xe;->ta9^tJ=MWO`_sM875Q?_ZCIX#FWSmW2w)@u0-40 zpk-qITPaIk=2g}N3@E)WW$FM1MB~V2;C5F2S_L{_?9$wmu&p1K;gaxnFT zvYW38mN>6KwhJDe6&^rI2^U}B65kDgb=YSX1wmVy<}3XU)9dPFJ+ywzufxA3?nJvg z3`xfJU_DB9od#dj79*SqIGW==tMbu%*^Ss{i$?NG)?-Ps)b((0jN-ZtotYkQR|q(L zusB>~@Ipg}tcl)^9wcz+Tp@+)Z{r01PP7$1oKxc%l@swe9G&6l$zfjIAU1wNaq5Qq z<37%pb=bk@8m<>22FvyGaT&H&E)LB$fPT<6{dK)x`(fz!eOd5`ZbzfsZlBk?ZhlXwwZm|AM&15H5I#gOuiv}J<5z$u6-wCiolypTkT?l>jPc+tI;x~02 z3$Q?tnoA@Xf_yk!390ca$N=H9emwWUoSEvC@IfrlaUu^OQxx-Fy^t;zagf@w)3ZZt zI;q8$COmwL{S2g?ttD+Y7*6ytb?9kqO1TiZwKhyp3)j0tlN~o`c zEg4o>r!D|f<=rYe1Ut}7lwWOS9B-(A#?5LkbKlGh<$F(G_k%&w8EzB8%jU9j(Vp}T z$+oxwAjDBsnKEf~&83=Q7Fv+X(LCi?N%Hp^ zfRbxYg);@-Q}{+4e6q(v_O5Xvp|>cJ)lIKo%&SVtQtHV7GODbv*!sT|zL~ND9`F=G zF|YtzaHv6gHV$&nc0%FBdqtIeg$|~!86x86IRIJ;(bmCJ)H@El-TvZF9vciF^?CMN zH%%xmp7vu77a2rm1OnEFgoSPF*aTKG&jA}Pw0-B%1%|eb4uvf3P2G*KR~Uz3Z#hGw zXL;W*V}JSS4^TGSzNJU*FfQncukW`R^s;^VxUK!xZQ}yZ#`^`ql;cbj$?>yhuk*b1 z@3%fdOR;QC+IrYPwA5yFO|#s`t=qTMCiqIUTib=HhiOCGZF>T=yM?J+mJZ$a-Vq5v z{S8|R9@n{e*l%C$pVWXVpQH%zlPyXEvc)X#=TLqo-o>fA%|*0UkquTO+h;Tfr!)ek%_I%Dw~2n;7! zLuP-onh!J0a-T!aQp%)h_R2XiO%e|uvT-`S4;40-kD0savR0+Ycnm2PbvF*K61^DF zvP5>dkjWWB$04$zvduRbW>sivleJz622 z^vO5A0+L?iSqcN?E{u!N-`dYBw&n`JLQV@QlzL(7=ne2i+r<0_*)(FKGl&E83_LZu zIBXyLF$D*nEktGrSy+ayjooMILNBA;DN#%P%UHDhVMVj-o(_bNur-V?Olb?2lO(l$ zq1}^jI^w3(Riyc`*YmaAhItv=ZQJ{yYv*;I*KxcfK<(|0%DUn9p}l@Q?(3Y|%YB60 z0UnVnlhoD`jE8lEOK)n>KQFWVbJOR|%k}=a%v*zuiE-~@(~dp5SQzW9J@AVT)P-T# zCcodWP23qjM6ci!J4h;+`2+PYz&40NJhPHp7!U*FWjTVj6#!oh*fvDk1LfrANewO` zWM?NjAzQVkj&ru>t{yUEvb9K+jgiM@0SyifY9_T}Qv&xcXPWgI>upb#%&h2K!^elL zne%#lHjA)My=;i22M|*Li*?Jz-svkDDtvT^SSMo?972ZgvrEq~ua2U*8;W9%mFYoS2iZM?npy+zs^SRBUI~E^D5!iL#c_jXP_zw37 zliH>(;UihVRia2^Dql-W*T*9SaIY`GWoV#)kth0JEAM8;72(C8kAQowfeV^X0UxP~ z{z4TveahS`c+%e~oB^lfOEp9eIgSyqm|L4QiP@owRlB zgrGq*54|KuvJPcd2gSOCqj^7@SYZJ!4U&pq;{dg>WJA${cKoq=na-uy+rt0-!#(Uf$Oymc2 zW6GES>hY8@2y&yN2Lh=ZSqpJ!u_Z(*P@n90Vj*zK7O@&MYPl67>ePekFCmi~a8)*A z@X5{HMW_rzH}4g<|sF*BrmCVePUaWBYrV|IL|9Pm1TIM| z9eu2P(<AJ8xpAK+#?b9JG+V)zD0rv>UP>=7&Pl>IJD7?~6(cV_bD z^n!dI&;&|wVv*Z+*46^eC^c&^;z8F7eO&Al%IUc>&EC)75m9mA8aY%6(xcRIN3JUeXkz9lj>0wT2)6}s6^ScTBw0Gm?0wdkS)J&|&p}ow( zOJD5B4Yl>uL{m@JAlMcuZS;+d2_cv5vg3g+KH5$Z`Fw&wbZ)xGO>24bnc*>~D1bN{y?! z$2h@kR{%rQBu-`(F%S_ShRlBUUMTL6)X+KrwB*kk%j0cxsJULTdb7=z5JK|d+{`xZ zWbz=*dpPf?S@xvnW~3w6UG(C5Bs0@2z;$QoyJ5H~@sWN$Ec}AwL+$9>j>2p8^L(yZ z-YiO@v($+=QqHuY0%C$pM_<~mvlWDL8DAj4E2W?6aQ1-DnGuvSV8UhRN1I1u*fy|Z z58W`VKkgn~q8A}-8KrP3+A*~0P1WL(+0h=r44;4kBeZ1?~~EKT~URXOEx zvK4Y&VS`bBap3rP2{BwP&xW{7SZb~xt&P`@2c|3pQh{?#HH<=vKrTEZNcCH-#E>V@` z`fg(Du$LFytCC%vk0P6?9OsOFwAR=L7|;kvi6zmDrZ8vYZK0eBfSYGfYso68;k}9b zW~BJ#jJR}y6NNROSvz20xvjxI9c?wEFb@P^)kB}5$AA)p>250dP_>m6jz+Ne+Y#n8 z@=%vCr7>6tZ1L?_fQXB7UAnRW;(^mTo09&(;IF-)k~3VIhd2P)sBDU-gJR!HU@df- zm$}cjEORQ#2{2<#t)vRCrL#WXen?HMVFU=NIu-X9E`}h=KhTKUx~5^1!%t3taDW)1 z&y5b|NElSha2DD%(h!>D<3-DigA)c4Z_$3cr( zT+^eg92y1;hqS>2vPCdNyE6=}-`kypGC;Q@5`G{*+fg=$9eI|I``FS;vcKOM(tf`z z0Du>m=B&7k+XyS2abE7%>*d;mE4H*<+xKJNHECF`^WF{&uI%<#{o!0+Sfe-z4i&rAfT5Xll7X-(>GQ}34?*~W;Jz;{4TXy^n_NyPc<&3iQ->% zo=)3z_O5>KoRIX%88^On#<4Ya+_3o6Il{nC4gQMW&P$Q-^M95(njDi z;dTlWg%8mxnUstM(I7a{CSrKT3&CdX`0ufJo0SI?idcV8?o z!=6+gX-&+jb{?ioQ`g5zb`2;~B9^J;j^jFbqf4d#o)aNLK3)c45!NQWkqFjV!5<--+VO%G|Qohij)JhL0J|P zp%b}9SU5{1Q&lWasL(a$YGNppS6YSaJ8W!>R8Eyt#CaJKdHq{55}v7744d66ZnSCFOzElgM@#o~#SggiBCt(ZR~TFWQ%?I@FUry&fvC8eBzt z8*DHTaE#8gd^syw8i)*GW}JrYVnG-9%lRJNMnTKi`o> zalQ20e0hJ2T@Uy3>tk&{zhB0_nbLX%5V3XRI`7N1PhoP+_1dCEjmS4{I$RHFL)jhr zw%rqDAF+*1BeLx_BHxn>cN2MQR+1z`m z`E|98gwiwM(B3;-$N#-b9owS}BX|*ked2h}W;{Y9US9F;S$HGc#iorB;tzuHcv_`k zs9G~11WIK9&g41B98LN=lv8%vlLQyMZJP3PiLuO=t%soUt0M-H1#ej;GhYD&YGQR! z)2nWsbyzjqQm|0FVaKIQ z!fb9u3@@3u7l&WVlU&j& z7j)X=p+fGt1kFW-whwBy0)?EGj-=Xfj`J_#@xG%zqA$_g=>E>54X;|Q9^WJ@Xjyw*94_}Cfy2I?}$xF6V0$b=2z z3hV9pXxpw7(YIhY2hP6?QG7R()xQpg8a13hpwzRKaz7L;QJo3ic85ygNAp+rUzU_$Xx@))^wi^Zz#jr~F+xlTwQOPl*zJAWdlw|3 zj&Z7|4MVDLq|`;uqf~%kqnVLc+kg%+h1g6kCd?FB+^1}a5xaz8Y<`$RF3FJO^?(Exz`YK{0 zmu#IfrN&Y(TZP*bD{(ac4T!7mHvcqoq@ggUXrA}ZEw2_8mAmW^Ec@R&ZQYcABwlgT z&Hwrz|Nhrtn_(aJoEv^&4ggtrjf69bIvRMiQAC+Ja)7!z&lAi@xbagCWD?jc?s7(} z6$+E%Q5TjJ`GlgNiqfY3I zp74ZnQJ8Mt%Ok_$jjL3wSl3Z1sTjch*{m9!iP*G|0plnr>cq^MRj+%C9KraA10pdi z$d(VNu`sFcdi(7tQtkmwHQ-!96RgK&q4fCkm-G(ql9gUWA;ZX5*-#!xIyk(3_P^DX z8iQh30kgts2=4%Q!njizn)>B@W|o9bnyiEn5P;uxM(SULJ{?d+&m}FL&}~DkVNm@& z3ZAQrW1XTou*8e@C==@J>lI78rZVuu0EWCs#WCl1vL(nJmE+nhMnZ!Yv z7MZ|i^I)AV5YqV&--jO1a`e&-9g0%pV+(zoLywDGpTJDsNIfYcbiiZ)OCUCl00-a> z8&cNRVPDq)k!WyS7`Cq2)*qL4zTfwD9KcQ3`gz~l{xisZNbRs(?(^1P-mVFb=zBZ9 z|8m{?`+c1IcD>KbQVEX4xO~Jd{ASz zy_x*fuGby)v;(zaauZgGt@SqSdqgxEsaoj!zO^l-)`10>CP6N0vKILRLhQi3rwGvs z>RRxg1lc%j^3ajJe83#bvGKGOwd@pWp=b zBri4NkGO*;T&!EL;Cqo|FE~=nWvE-lILt+C@ipP z%b7-ONakR~T?(Q|!@StXFGf!8uklvfT83~GRP*ra#+fY~JgTLBByUe$m3;57|NX!I z>z5+~hKgJrt!?KyIzWytha)j;BRqp4>?Bi7iBn74wgC^VO;KInc7h11rFd>h?o`l> zW%EASd`P@rR8)bJVehH~FigbVy6DT3wPI+n_tjMqt=YUCj;N7t!ls<+Iu>0($TdV8 z`VK%So{S3v3M1M?a=nV$Q{8MJh{emVx>%H`wiTlna43<63B4j@0PfZ23+7g ztH9q{UDi{id)UOt9pi$Wr;O~cIBpON3b8K@I+v8Z2}4p0!o4_6P7(XD+z5*QJ zJSK|~yHT%~UGQ$j-3Dg}&n%5ph=1QGq&!s0fVKFhIlZoY;g3=ES^;s*7aM za@wY`*~`h+NKUQ*%YOd6pfSuR`|G<931Yox$Rvu`SZOs(h*O1}jDoR11#^CwGi=!M z8dh7h$)8TWM?B%#Sa|WCaeU=dF$$ywy!2KfU z*z~EYK_m-A{=BCVA#3x5@$W>D8Vq1zljE#M8x4n1pGo zkV7%V38XYhC&yVC5#!VlQc;F!uJ~L*)KaH}r^&*QuL3MGT;0SkF`eLH_LmJa*WFVf z!bHEkiORv8nPE_?UUO@&%0_isYWIj6K>^&6_Se5X;uJVCML^c4#k`7niGTricwvMAW6{5pY)1ARF9|-wTI;n93-j|=Tz2=xyR^F zs&obWS2bQj{^+BQu4IyU%Fq+o0}&TUNFHZ+(_+mK?jx82Y-Q|gCc5ji=Dj* zhI#MC>$)|=Z3Qf`Y$48X@8dKsTi2pp9)}n)D1;z{#0iLp(sG}ZZxG?OZF|!Uj}0zrgRY?)b0Emjr=8s4xLm?+_-z4wJRG1qTM+F62Or zFdadfW9v~LWnf0vWb50xv*e)3xzh!1GJ>5nN&_=YoA+tGwm}Nu4Dj+a9N?zVj_K)v z7QPS#R{05|TD7|=dCy4!afqzQ^BMK<`ZMcVu()J!ga6Rk3YB<{)>L|H($I2=RvWCM z9QPsF0Pnbob+vz6?AHP%F&w5Ie9cOm2X90~st_H~UK`*XhnpQhqrN4UD*!-3qkJIT zh1YGCZs=>BOY)P3p&6l0`{|?OfBg0DjwFi5X__2v>#rk~q-5+$@j^XxV$U!RcIjh^)Z7C=OX$E8!qab@K(M5dWUBMyZZ zM6##NS^=autCJBgl-=tKI6fNhI8H+~WWL4!2Fag|gFKB~SKzS~T3IrCZCyz#cETJ? zPLJ$~&nT(50u+N5l{VD&Iu?cVrz1n&gdChdzk@XmXL6uQl#oBujuO|(6YU@=nj?^$ zgF2yB=aX>(lY^r?D0~A6+W{eKcsbOhFie_SzY2E--i;OH=-SN|g-^{?SEVobrx*djVq`I2hlq00gq%q`p<-DpDRJuCrrTm2 zw#Fk0Wq?aBL=A1Xt?wU8FPq)#b=-OwIWEin@wm@>mtsgTaO`pO*zSlQ?w2vO*B_6u zNBxC<_;w*{fk8bpYIHlG(%dPlPAWC8i;cq&F(#4>LslA1+fG(|hOqD6 z2ezNnxU^Xa!%GG`crFbA2YU8!+aq)&=&1!am}yxz$DWew1)J1-1i9^?zD{i?UncwI zai;N=5hSed7_ZUL#o<|sm8piR7>0Fj`)*=QM&X?aS#U9M<~gd6-wheWksAcqo@M-7 zN%kj~c1*iFGIp%AtG=5Z!{9XzexmNi;oMWdZagu)$2h7IoSh;S^PkkYvtw6h%`^X(~z~ zz*ck=SzRJMRQKXe)f(mEYv4!kOGh#=$MGmX++^d}z;SCNR#34<+Hd8|S-y{~-BkCU zi)_)QZcqd>O%C&XNdk<5a^7rWuF$j-*$-@>OTR_akM>+!+$qx_PPF~S7XZ0{a}}>v z09pkYt(;_K1y$wCi#WxF!{h?j$d4e^x1d4{J`IgI@bzWK(j10V*4Y&ZqeGd+A8bl> zQMl-gyfrH-z*d~GEvO6v((gklvdL+3CV zPWwrkQZ;3+fBP8l*&_R2swT{w^oh&U7$;K#H$iIF?HhpG{(7DJWs!lOykMY0>)4z$ zu(_EKiXOJUZDPCcEr(egjx9faxdCLD*S8-GuN>Nb+?MyZ+d6Dp+r`wiV-HTlb?8uK z_r2enZGC%;`?d|k_*l1j*|%XF;FZ%2^VlYMNN)SG&i(Z=kIQx3hQ5a=Zf-k70Dx#Q zY<}t>AcnzZM7AXqZEYmBJD@>!aUX|ah}Ka!t1ecKw#ZkEXfttDHZ(+U zC(_9nOY8x5qacrSL^V@&(?9*r)7aRW{|m>)+IUrrOuO=gSZwd zyr?y4k1jIALZ;-E92&mTF!KHJX2zH;il6okUY3@AxL@WDmYCEVjPIi~=vpiYu_~zY zX`>k&ngJ4gwF?*jPmL-HU5ds@y$(TwVF4q7}36hL>W;sHZ zIFIex{%`;0*WIGKP6$YL8+`SAPOldt$-w&AEyef+fx%ie!IcgB=9=B( zhyo>!*w|yZMy*<@HWw1JSE`X^rwdPIgldviY?%8FJl6(aoQ|WR$)lr zLO_0z_3hA10(5D|hBS|i-l|?t#2m2wk1%ITNw;AmshXW}3QNXQL_Ge2%u!b5&@XLJ z6 zrd~W_@f=i{RjpO3aIv~K?aj7!QV>bTOpPoG@>X5ezPuPiP?#SV-UtJ5SK72=&N^(~ z*6h9Q{65$qh&jiJB4>&_ZH^Whpe#g%%wC;IU~erJh-3wtE#@#g+^i_KEa?yyq!ey} z&!xi>rDvEtzSwNsiw(!LZ`<4NzAe#VViNbhZSR+5=o?S#N5GNK>f3Fmc*b_J@CK!R zb0N2J02NpT*2OI$AOn9#6wlP~NZ`eUP}f8;RAYUR;!bKj@tZi^xAd9U&eqF9mS9KrxS=~q)Y&hJ-wWn8DW?SU7;qD!vG}(q{3hmP*-ta zmIjU~LKu`0jVBax_>MGARAw6|)Z_BA|BZ8psu^nKW=fV<5;|ttHyh+xsXkT4$N?`S z2JH8_GdO}rQR+8ltGZi;CN%)wIf29ZRFw}Cf>1K&C3yCj&ayM$>dplp@KfsBBxa2% ztq4OQMW41fMTAONcFF?zQ0gb{DMgc-Jc@POQEJ;LM!R-ghO}Om<$4_; zQD}zs-UGvoaqIhi7}_48zzA1^Fk_^HFUm1yazFpk+n%-o*mHZmrvSSg*s5_8c7{h^^@gQ7=yM%N{Cju6)?=|Ct{ae*W<8Dg8`&L zz-e870lLyL$RsBOBCmmtI3E3immbiWICjnfstPU)eT(`BGAg{78Gh9Y;oKEBE(-byImDD$3fpDaTYDIL@5>2^MScc;TR7vHtGe z$B*mMPtNhPl&cU&-`hq{%;+HfKf@G!)FUY#KhlOkS0e{=Ox; zaHxr^f*Wt!#FKn%kQ##24Ga8MYHQl0QG$9mih)Lon6j_M>YQK`F&6Qh8*reryZR=WyGQW4DWNISf26k1Qw zEBr~+NE4UG=qi$HA(&F(74xV;+Y~$02d}8v=V+V&?-R0v0^ZWFkWH+seb?`S`&#UZ z$yeyd&Rde#0=JB^CxpuYIzb#YU008~z@Xt~zb@^3U574hI|f?)f-IhHxUYyxd#u;D z+dROmY#jTc?GpMPjL#NYH_UstEtk)0J=ncNjJVsfzdK;<(Oj2ibDkdS)I&W+slt6q;ejrd~Nk26#NH7bCsC`H2Te zeJ^rEX!!3$)pe5saldBD_PinDACy5J+l6h5C?M>KQ4c4UHm!Avcf-wyV-930h;aZE zLsb`*QCpJn(Z_7jVB599AdKL=WXLWv7H}SX`jk9H;`w%5&sCY=5+DcAvp1a37sWy5 zz4^X2?OF;Jft^~J4cai-PSp0 z%Sz2Qx_nO1H0MTX=(>Q&0y#P&H157pN_!NtqKB?}q=hjYUBg%v%`LU{Tq8 zurMAI${@ZeACtMkxD72JkLYZH)ZJ5d`8k1&d#vbzcs|=04(FOUFrzJmy3!m0N1-+s zOoPfAs*wTT(%Af5p*&+GhZk%wfB(B%bGer<1)u}X*YF>vY3CQ@`J_}J83KF-g0OJS zIlh9{hRk>f)>zIVs;D7`#_Wl&fk!;yyZ{ceSFOyEb+h!1#rlJVLJ83) z_Y6-s^!5Z|jCL(jlWTp!LMbF8B`4}&T^NEzH8WO7#4r7@v^DB|jGle)bIN0lrIe|G z(rPkdrv!;&2}m@Z7)Jo=Cy>9u>uHm#+;AP6Deaw|x}o1|IE7-3jTd#wQ8$|pH0o+M*ZUP`Qc zh8m(2L_q8imL2RmPO;{YfRt0-6NC%|(>!r{OsVJ2#|PM*aQOhX6s!WpWW1{edZ_1| z53Cgegwq#?NJyv998I%s&mK@nk%*pz$Sj6HsSmd4$C!A=lM#>)f=?~Km=dRjs0QFT zg2Byu3}ov?Q4pl57K1TC{L>^3nZTC%RtEdX(WF%c zl@DWdjX-OKMG)Gd>;}xQi3j{^+7x?F50Hp)k>O1h7d&_b4VO9~;VNE%l&-4@aLqO% zQF>HKaxrF)IGnDZ_hX%%WoUY>F=ec5@qIj7=0Q#5iC? zBSAs!knFFxko!F&H^)xWMk!v1`R0Ru;d-S7;IoZBckcn_T55!Yap ztOYk0?)DLaR!+otoZ@gleIl(onA0a%5Wu^V43($=qOq7!`tSbeJXyGi(d<4Te)se!1_qaYmWadvCk?0)4DtN{vYYt)^l3l=EjV>N zRwfaAz0CYQL1M{n6$Co7tlvQ8;4&dzT64JYb+*Tq3}zu_=1O_Qc>q*zovZIV8S_K- z6h{G&0@{MDOWd=$I%C#3=IGMx^F76R&W4L>@QOJ4P(g(8j;H|V7FFs7Rt3#~jNpYr zcdTVwLfGpO>kKxwAn%6Zx-k=tD{iXU`*{0$+kKu1n7S*u)Y8^Kv}4R5-*L zKt%|))f#*tUm?kEPzh21G=f}VU4_S|F!Q=hdP7f7G-N^~p_ooHw=CInvnAk_nb-$1 z4-)q#X@V6RNt!{~3J;AL=Vq^yTyd=}r_4D5k4RjYMQZde?T%E2odm1;Ds)8&!kLE! zKE&YzpRX;Pkh~oDX7`K}>ZB%i!YlWFdvqF~Tig6&(Bz*0lSWZ!89eAl0l)JBwv~5_ zT&$T#@B8OUbmdSi3yVY-j7`7@9QLF>cvH)EE+?Gsb*GjE_H@Ec<8CF_d=1I$x6-nej?bUC8d#<7>mz^+?3*3>*`HPqF7pfu+Di9ba5QP%s7jm?pyU z`$|o`C7chK91yi7^%MaKb0FDn^1n}He&0JQ@Cn@cEe?nE44^$!Iq`|qD;d`lKwACA zh`K#9xRx+>mOqxrNN~lh@CnbjxeL;0ICe+o-^>E-$IFyG;?U`W6c?Xlc znk0fbnaQK~!(@*Tcwpqv;?D*9frl2q7w5{| z0aXh&jfXY)Hm4xYk3Z^|RZCz2%ew*tKx|Yi_45YYqhAMY~CU;-f@mRlI4?r#8ImUxb!BOhG z&J_dh>*vclL#qbzB2E#cM$CDE-mK<)#0+^vEOX}A=rhuCmNlb&ZNh8{^)tS}eMh`- zSgvS#$WFYi#V#oB1`*mHqOeuNF3Ro$=vSQA3v)RMCjxJcyd%+<7kGiEouOeec5DR%|b!vM1j1 z&k0{%BXk7MJoNPwMsND`#NewF0K8vto%Csv#fi({{M+SY>ci(B#_#rd#DrScGFf&Q z=A*=fj1qYxv8R~Mj}T1iDH;Xq0=6@gk#iW(sX(5SfltXh63rrPI8ytjjZi0sq-1#2xu_AXexFY+65dogv6#lVT|T(OnN$f^=H*>7}slii4~rr zIQ;nh%a%hY#|cWES)jzx_Iy^aK68yJ)buG>o`oPd$mBgVR?9le=JrV^PdGYuHgO0; zSZ^48r|>A-Pwh-}qN0bz17Ti0qXntS$=loy`(^en!ORx+go*{2xgwr0%`f`TFIhE|(+466F)wvxi?e1=#r9co|*q_sON05MGQ;cC?77{;=DLa15jc z>kt9m*dM~Zf_0mawvoPsFxRZOxK(m4aSyx+w*kr+hfKKbOk;J8bim+=WqAXBC_!1b zOp0*e6(`d#Zjpb^^Q}0(-88?K z%}w?UZa5}Jr}JUFW@7R00qsI<(tk=o9?>4e{2y8C2Kb=0PeXZ&wel>txM8U+bVaa7 zTZ3f>gpMezJ3iZpZ0Y+?%izW_dLK&hW}-io|LA-2JY7uzXL(*Rz-k?GZot$O1_O$c z>Dir)u?M&{^R(q@)P&&}+6_ee;#}6AhLp_HCu+x3OvFmClx?rj7J-O4zm1V>_oS4U zjdBCxfOysn^;b$~u%K{3$esbT1+=}XxV#(Gg-Mq51bAhxuEBhI>bvjGvf>gU*>UWK z@4sjAEsKJH`3jz7b6k&DbfVrH3i^3xuh1v51Q3HE9O6y)(06Pyat^pVfUQqYAHFl*ApIRL%8&;prQsEk)6R!<$jt3KPUBEIeE%IpbihW0Yf`(Ea<$(< z>SiVA8$MC5CV$#TNXzj3H52#^OM-!`#j{B;GB|kudP5*}+3Sp`S;{SC*v4l|rZohH zu|k-uv};a6y<1-@*S<8ghI*iaD@=aAl*z<-#EPd}BDY8>O!aoz4%_z()S;9Jv%*wn zFtSI@p8CvKU=BN~_xp%_89=v`>=L{Xb-b-B#G32%cKy25x^A$ry3B@|$nF-}jXEBTklLw;agM!XHg}uFu)|W6prIV28=l!~Y>@`%kP4!FiAw z^ed3Cz(uY0Z76P*3b`xbAqf~HrTqn+>ex;foP|Kz4RF0QIhtnRmJ5L~8LQDL3B|L* z$7t|XKgc9B2C?HTDFh+Aju5dVL-yFm1U%OXJH^?wcZUbtfd`76AW2QmqWOmTABaxO zuW3FUAWW@o-~MKqQgn|59ZjW>)gYx!-UcQtiQ;>*2qn2DlLIL)?U@1c)8Z`0 zvy{FQA|&*wR(H`2sV3*T<=Z;+p_G)DF*AFLq#op8Fr`PI99f%JtB16bPNpp7_k z$E6Gg*?#yGYCaPqW#J2@X6ue>uwPfKF|1O`4mfw>3B(lxF+{6$a?g4-ht7#f0pCF?e zSqC^3u!sZjo(8&}$sL@zVK0@MG5FF>^bUXgX#HD8f*GLe<#(jt9bi{J4(8^f?h-ht z++OG>RC;6vIoV)&#@ocfgEj4V8=uZdp70i{xsM$~eYjE_TVsv0&0?-)uYlzlr9X(oNeT7A zEPO9@_qpsTLzn;|FZOjTgvZ=`yUsC(SR$bu!)Q9ZtIL?jIV2PX1x%(OLM9h8+!O$* zcw`Dg2e|9yaieU(K73jq2%x}E>c%{Kh>34ds{zC^^<+)r8>63qYXV`=4+%W7wZ4IJ z*t0jd3Fd0w_h~H7Ha7$3<3|;moDR4rKqF@$y~ijjjV(Sq33wAIWDT%*UuiN5FVoQg z4xTSzriN0yW6MPka|x2AVK#pKGQu%81=qOehRBm=6T8mY ztxYAFW;~bwA;etPF+6JLO}h{YbE(JcS8vs%WcHdTb;+6LK;a=kUq!HkN<6LdBllbJ z&|i2jfESCR1oBl|kdQZK6n}F!5rB|!QQJuBj{B7&HZZF4t znQa@9y~m~l4+zKQhcC&7S}6kZxPyhHkd_PAHP5g(x>!Sx^9Q~{AI7l;lXmkY_JR39 zM%y*MOiO))LqJtP17qkgAR~tXIrK_$M;R{MST6KW&}Ip#ohA9(#12IAlQBS1^~-a0 z#XMhN@0oz~@d@HBM4B;n#`K?PQPbiHabn+51_lBH4hTTjz|ptE^MbVQgWnHx{=`nT z6Sx6T6n%21k3)xCb^75>&M+F7N?D>a7i2WR;p55nCydRgZKePYSj*P6ewXPA)_)F6#=9<_f-Dl_E&yjZn0Yj=N#P$3(5TxSY+mQOPn^hL zP74q_1lxOPM`=kndB+3yBO*H;+?I-U%I*>1kn?!Etb3Sim~WV2<3S{y>vDnr4W0>v zh^2D5Z&WCtI(Xh*Uu!CLM8IRs$GVmEvc^1LXQVo4%y@VY#-o;$l7%XhU>TzgB~v+OuvJSTP_GH@GsPo-RFQl?;CM#o+P*H? z0o78Qa&x)gV@L@=USN(+z&|&+qa^SZyAPhZJCH|sLX@8#1FE1qgowS~ly*;Q$>9(P zTbomKgA;;JQZm?g(SpL*$uBrwZ;3q(oOH3GghfL8mhYpzAm(OV_z2^UF-l`>L~|G; z!b193y_&GBl?_1$j-^wc59`wOs3t}W>K+s+*(3?hgc7>L=UHKV4yxE|>eQOs3;>8mN7tP%Q27sN1dha}S+Mppz!E z7TUZQZ{VX%#vT>L?VTO*g6=h+tZ`1575^(mvQXFf&r{ zs)v%RBT~QYeB`M=&o9oH>)2a_8-^ZMgvXhEXHoYkh?hqVc84cRUjhINv+ZEJmhC75 z+$T(+@GXGa`0hKsVyEL$iiSHlq39=uhoLzEpHgT$KBBO#Q{<5$Ig76t_3lVmFeLzu z#W3K@({K#hL_)Kce%XCIb3li;@BEQRqU?urqpHsa*^^TkK1yMySYDj@<(m7az1Y*) z^kmJ^@q>oxc6@U^d+|`@LxQMxt~vi9X$%402%w0g)6s>1H~<6S#m?*YI-37gLkMC| z_EfOQ5Ijgo4|Vr3-tQ&2ROiv5L9EA=1wZGpPu-MUt09>7Nch1vD&q9L%mpgkttfRo zMt1P*ImG3%R9GXB$6F`}o7XqEMaWG-mHUmR;e>478plXKW;*6_0G)3?ecrHrLn6+& zl;gmoZqM7i%}06tycHy`MgT8IPYThX@J#orr9Em-ocm1wBAgO{6ViUBIi4+N6moCU)yJ zMSTS4cTj(FkG36YS zK1^V$3;ydF{LYR6akCG4~`> zd#5#vB9D6)$88&fD)K_Cd+<5*a1;y*nxF|{DtSmXPTHO+eGw`oZCYTd-5~{|)rXNw{cpR%G8)@1T)_}`zz}-lZ~)jpy}7%<(gMoia_brleuu6d6zQFSv&?lsk#VjJoP$I%2;VUAzCAn} zEc;H%<2=)b*JsoSe`Ltb;C+93nnM4Hc|vSSm9KE{*?w}_Kk+r> zR`$dedKbr<9Bdvn1x}QCxs)7t#yiZ*?m~@#)C`{30s=zcSwhT?-VR71JnM$Z?s^g^ z?4$DlUg!79@A5bXDs@v`zuphXelhn4@CSf?fG@>NnrlM3hM$*0GQqkqvC>Te5vkVn9tbR67Whfb7Ei0!l7ayPm!5hGVm8P*Pk=FsT_tt{ z@Xkvl=ag{nfPs6513b~l(fW)-QZkJ$af{Y4o@07HSD$FM36P5qs^wu2G#fG{=(2Qd zD+*H-!{g&1pk_M}q?>QAk#2&p_f{ zg#c*|^ez!=+ZlvLUcKSTODY#5?!&KO2urbuUrC=|P~$m&eyusvoBYl-V76C{%W-{O z6D0;c&S${EQE+b`J@ypx+CHhcqlpjtDdc@Ro!{k6IQXzx5rExnZt7nH1ivQ>w`_P8 zxN&I5J;>n_pBce$Qo@=z3jy!B>rZFfWAbH0J4b6a6tjVXfnoAXQ{E-)>?U_cEBhPf z0tJQ8XqEu->g=5qKubFBEsj_Y3oF1T-DWTlpRDOHYoF}bdwBW;AMP34h)0szRH9Xr z@+Z+4O>IUB79Q6>Qxq1Wxc9#uLaQ`du<5<5geaBD*0I!M?Tq$laP$slK7ndAl z40|B+8^*&8Eu5N{N#_1=6m-VSmA~q7y^LyP@Ozs4erRa6c`F%UhV6q%$FT>W1TC>< z=k{{sa-Yj>j_9ylAv@TiK!|0#tOYT;aGX_WclQ*RZ4BvhUuQ(@`EjWlOv|`jZY9<+ z#&w;`{ih$Fmw;&92rt|A`n>pKgkQL-D0okCTx&`@)wz{1XZaYT^MSj%ZAszCAT;W_ zRj?t+PuQPv$c$?>!;~Z767v;cE!5lPa6CZ;jsh?-B7V>zCZ|1!v4!9{1aKMDI^dFH zOh7MUi=#yYQ4tC-lhmQ@uJLkWh>b=2ogg@69}zJDF2@Jl4qpd%aXx08)sM-^#DS-g z#TO)olb4RT%O~g7ZqiOqOcVZNm@awUeC(2HQyEJJLS(PLAZiYRF`gIs8`-%GXY1PEqQs{`fzCj`XY0 zvBw3X%Q4XHV5lO&BSh;qVwtf0Zb4DTaq9-ff==dRIe)rop9H#m!Is#@zv2w>u_W=J zX3?q4FJZjJ0a?4@`Nf<5SZ>=AwQhv^0B)ov6^2`{-Y;Vgftq8ykz?GwYn-44R7fH0 z$>wC5_Lfx@l;(9Xk;-fgssySkk5VvsFfjJYkw&i|Xa*fkn9~DQY0u^vB>6(kAlzsn z%Jd=(OwrLG%wo`%^bHj)GY&Kv)AWEt&PNN<)bwYLoZQJx_D!2WQdMqbWS5KiHAciQ zVD}R#1ne}0#qtzW-ax7YdAcWK&d3S_mJU3=u)>IwbJw@y!1v@825U|b5r1MJ&qoC4 zD$5e+`|%TxF|7dT4^GH$ABHDJzVl`KeL4+@kRM!+OrH}JyNb?ap9rZPxU;(sDucc+ zmmPgl@Zy0l%VT5}X&=UI4vy)ixPU?;|0WNRd5FrhHz+~juE7O3aE2yOL5lnfl({LU_#%&Wk3300?lo4S#fk6(r#QDqT+jhAx^E{R^ zj`cWdowvDSq6OiA5w}2lu&(vET(=UC8oA;gdB*~-&KQ5^WxE6aH&PTBD<{2C51qaH~3>2sYR%Jn&RzNLpavUoX3)AqhQzskT@Mti+$sF@6pN)YNFI2 z{Xj;h_Gp%{V;HnfaO6co81v9m zu`H<5wv8Wb+5x+w1q7VD$lccy>`;cfkH2{qSJNDjJd{vJ-8PBoIJ^;K&2UE5XInzJ zSPv1$VueNX^6kh`?~E=Y-efVhJS|LAXwW*rFihTb?x(5DiNBfd`Ptj~wuEvkE;Qk- zmCxR=2ETJYDhxFz)eyiF?D_R*L8)Bco=u;j<2B5x2muH&8BxKi!S{Rgo$_kgdjMEh z^}PCtA+GB96=TljWNT$r22P(P5^fC|vc9pqf+F7rzh}9U<*InnT1`H=bKlM>0DBmK zfq%G5-yvaviDTd!0As*wC}Ddh@lZ?9X-1vK_*SsVdN-u{0^Y&I_UD#<^9ctMprejI zC-BXWgV7tZGE)-on*e7(n7>qx3gz(1Bmp3GfU5#hHmZ-2qhm-fKcNSDIHOV+Pv3z6 zHq-Dlgz41L&fUHrgSBsBh%O~_22lYm7=g9|cja0^jW|gwV`xgN_lv{wcwnJZ?_IC# z^Qk4TvP{v)goKNdc!9ho_!h|;0ywAyNfkQCfI>WHX3*_e@}!i*tR725JFC$=00_ot z6U_|hnJ5`JRKC8xK0jX#%FjZ>U_J6d%+&AM#va&Wt?k`)USm!Z#DRQ%-fiNrt@v97~OI$ z0oCW|caKN(z?0rnec?^m$xTEIV&21l%glwrLa;>40($NrQg|5FkcgHfZ8&c05g_3t z?h2c;rd;ZK>EH|XHhSyx|FTo~ofe98)X+j|CQ-63P=Utvns3=;;DN1*IDs_U$Vq-6 z3RX&ryy4^@u*BD;Gfv1X9R~rs7T`YzaWN7u)?gJVEanK4W;zaM8Xv6V6enUuHMdaT ze&GCB$6yr3`#+;KU2_6giN%yK3b>bqK!L>A13aQ1NPK0`NioBZ?~@37uGV6*kVUdZ z*by{CDZx_N9Qd4IX@KN>ZKYo5eXD?98elo`K*!`O>p)Na};id&m%I`}8_zNg%S?XcX~8|Zv+cEw+U z(0-|zq`Q~xWea40JpxxN@R%eYHy{|4_v91)JFfSd1GfmNLMC*7dATo0&@Gr=_HkRF z3rq9!*R|w~MxS~8xR3ZQm=%1h!5=Y|ihN0XTyGV5XTbj;u|m#qj1-TBdT?EX1Y95IF_A=t5}wEj z+dalRkY?#f=>w!`Km&FX1Dry@GO%PJEB>df*iX5TWAaz^ypU#WP&k< z6C4uIyG2S8E}BzAfsfK(v%Ls%GodwZ1kBLQY+wv;W;g^Y1m4RBJ{asFWg8WhaspwI zn^VY|lbcMgN$rxIGRt=a&*DY&x;krp#G{oW*NEbTmH$D=)x`{kK1dKcN2Rg$fy4M= z8?R<1{d#BV`uD z^o^>f=`mwZty<8e(@d5vJH$es&OMq$26Y7Cv(}UyO3|*jlqo1XOBcq`unbekYZxo< zTn{+mN0#>BKzIH$OuZt^HR>?|oU#OG6Y0Z-s#^-d$hQ(O$%P<=2l?y@HUldQ{^j&No`TssP@$0# zc~h|sA$K4vphRl|;(mIQWWc$mqXWx7&mS3f@pg5vJ-*Q1;84KuoSsKMOQj4%$B=Mz zB<{SyTj930mlIuuOa>Qv#_`S9@j9)ylI)`#1@lvKs;t$Im58~dRgBYCCs6B4=E*XP z%q7p?fp!l>=^|S{Z$Ev-_RNJ0UHTm3?&V{$Vh>q>k^yJS60yBHY6kwm^}F0SqOSA2 ztYf)f*AZK=&-aqkK9>2umU@i$mupRoBa6V(F@kJO(xa6159b@r|lT75CiOf*JSz({kyefPVKjGZ519ItmB)+=5XAlXR z#R*J$80>o*t()n?<0YAStkdH_Qk)b8Nmo{tgyw9U;<)1x0$d=kOpVHe0M0#ZYEY!? z+|!8*GctQ{RA#CF!2_YjWCItgfmda=lT%xiE+unFk^ro0+_V9!#40Zo)o$OoW8 zAFWh!H`7p#1sltfb+1;7!A~CI}!FdtR}Q6j?NU0kR`*7xqzqQWmo` zw~m+V5-;DLODxB@LfLhcyQ-KZYk3Cha_$S)J20jSF2YS{8Z;8^rG2e4rz1BXus+D42SB_?1&rcM+t4-lTO26T=YFHUd++)Ho= z#kD7u!snP8-=JG{d}t&yH;!C18cFCRfuPj5ck>b^gX->=-~Rfq|G4ysSB3^L=Sjd@ zvwiesz-A6CWZI1=mU?)mLeSOcaL~@t4<{3Fh_P6?$m2lO=us0^F+fg6)bv)Hpp&Ex zQZ0xho}hv-vNuE2%ockE9CFvyWBetgAZe@b-1J5sQ2ER0)>wciK^SH)T!A7iB!hZk zuF2%4g%wSUx;Iq;Ybt0A)5=Scj*Om>-U4Gbaq~nh^fge}OI8BZg6ptgV^o=HeQ*%@ z?gVT2+sbXQ2<~C^nyIlwZZjTM}z zZW@H?h6s-SyYEl2PUoi++VR8avAHC(&RHIRQ4n0nG-|?t%?)s<(HUpXoySlIr8qTS z@<7P@YHVPB821M3_09xNoqQo0W{jSH*H+iX4B1iLAuO{~z234Q)^QhIp_XNgQ$Df- zrx*d2AyrJelqn!ix0JnHzurngUC*(7{W_-g`FT7*D8#r!uTbu{bvyPI4Zx@x9xLH` z*{UYhvWzi>xX#d>G3Bx5`GRp5PjM_uA*$AO18Tw|x04=blRM`|u*9IQ3;2gZ8Qrw+ zJh97r004*mz<0D>?rWty!@`Ygd7*P6Ku?yyZ0?6O!F@=?Tc987HWJYjgCc_=VL>MK zD;NeBqT#zuT!37B4&!k9G@MOM(95UR0S))(jX2H;8s{}nQ}Vcp0Foy4xrgOGl9?So=&V+>5byzqM%TLJAVa4(##*wVWbC=Qkl&pjFscGCC$Ovm3kZNDw@>5C zJ@s{AY+uG&k2SeKX~KC2aZz&u_dV4yWv*PbiP>NnW{LPmGRXTe z>fZFpGP=fuoUGW{j^Xj$SyEe-GSYb_|64bBLtK5Uk?2x&Po~xT@wMfv0v9Zp?bzDM zD|k-az~ZqpeE@IDEodP$x}KS%rYVwITA(QlBS|-axwR(@z?yAo-K7DUQR)2b_e5w2 zzWO6~XHMw~uIYN(Af7mzHf{3I!6mGorBA5BL_Y9S829f#GV%Sy0ouUHz~o0T%F~3; z!q5!pr#t~OJh+q-T7gm+VA6o81DfGeOSYWc8DfW1OY1zzGYpHgDo@3oD`Z5qD*)pG zr!u7EY_HH}zt;nOHW_9BIjzXX0f;?G3hZ?rLPs%d!12N1_rc4A6jCKAXl%SKfo9cw z#FQFfuv&dS0%^tsF40e}%n|UDkye9M*Zsb`SmrJ7uRpz(vMzOe{_=7u8QjBCD)bCB z)$8l?mo3grxkcnO$zY#^(U#Pou30RCeh7dn&dWo(Lo*W=!B7H5QDP*O$|CjTI@1f^V>y>*9> z2(_4J!2??EKAQ=7lEyVHUuO$OnVY#*GUC_kGKJk)C0`;AGifh}hiTf@E)Nt_3$hG& zt%N&?0@*X*7*Cz$v=B@6Kx(TaKnmza!MQ&SC=*o*LS|W$0f7kw(NTjnDlOJ2z4o)d zY-6ou=gip>%HPlb9T*o5(vDN>M17~k zJ;&dDA}~WYtRn<(AkHGr;q7Lq8Q_^lu-qq!wkS>;tl_gjn)aYfz)@H~JOQC`uccj*%{EYL{w^IBGCWAlF}80v`*K5Nh-SXpn)?i*r+IHYx&Sn`|mGkYa<+ z3eD%THO_MlNK;Ak9D|$W{C7Tam}5so83PKqVL(ehXM~R@53V<|Vts`>c;D+B^LW4H z`Sm*1`~7xV$F+K7GcNaaUgGl8FQ31bJl?h(zz>uW2rSQAjt4nYR$ZVgIQtOGe0zB< z%dH-$?HOynzb?lfh4vtDgAKbz-nyrN3^Qh?0}P>u%S6jWcNraLdp&#$Ah&IF%+PT- zIbM;Z>ExXihZ7FK<_E_)6c>F=4S^BXBMhcCqz$h@OesF2O<;|9k$Ek_2~%T@^pr}B z_K>3`T-SgsMk5n{*}9HpO==2Y`ZIFbrT5il4JVrucD5p<%*ag>qU!w%(M7t43cedsSTD%3{yuTDk#J9{+O2Kpy2O% zly$@lN`axu%{)d@3hEgk(0Z72>XGPOwr&D=nnZW!xGfXS5R*s!FmTc48YiCkQbJFW zgJIzs<9t-D3B-a!_k_IPlbZ(kih)5>+!kkzg1?_Sj9+Gwd>E^JIV?B;>Z0IY2Y20L z5EeR1<_dUxn|IMQ0r=Er4%g`{hM>!^uI0>Fv=adGq>vmy8o1R`nEWFL{KgcnfFD!2`$P9%KZ? z7tmf<9H5NyR60Jt51`|_!Mowp$&Z<-^E5Gv(wW%pPVxXsGoC_`l01M>$5Ob|rd=`y zE2BP9*TK)`CfOz=mI0UKl|2$_v>voUO37ifRBD*^%7J4_*mJ@4kQ2fPcC`IgXal7F z$^_+F0K7{^nH*cwY7Oi2>$1naZnt%z*Efy#QrEKm^o{o46=m!IUC7FChjMVmvIE7& zMI-@6;!>CECB-rC*vMVCW82CIR-ukqs@0v?6$$@G40*n6<=91SqL9tIMlv8Xt+*-d z<2b=k4QU=b&H9i?h|2@!@$s>_8Bib2G_Vh(D2c2t5ps79wDOPOn%{Hd5Qx56cr4Zy z4RQRu_Huy<7uoNke#t4|vAI;d2(dA%pINgouHfN9LE&cd6Di_J^%6elW*~D&Jalra zwpU8oY!juuzn+upg4R0UgkY4pd8d1cW6*OFb9HY$SYu@vOL*uR6cYN_^5G-+OZ?<0 zLHGf$#!@Sd1M3)pW%4|GuMR2btC{@d6F=Kv6Cv{m-GClNU#@G5G9F+!CA)kiGqrwb zRlWx8)7oFBG6rIFgZKAY*@#=%Z^fY+@A0YkYUTNsS&(VId;aUc{@t(t@s}x%Tfn~%cf&>o z0WU{l5~!#r7vIpj)*yh|lkGZei9%g3*XJMp^ye?mc7xlGYzDGAhURANoHXt>U-IB< zbr6H~wrfMNL6Cx+61t}g!$(ONNJJ>DhZ8G7`w#Z#(e#sfL%87k7N)>ZhcgR!hJEw^ zRhO!I+k*zG(X=fN+uQ*N5rE>iVre<9!bl%zF9W``-wq;;4N+n5cA8`-H9CZSNE%P6JI=tv$YmU#Rluu> zRrd=JtrAQH!Ld*_K}f?DE!g7Gf^xjLV=kctdTF^7&_>hL?(0IW8IUKEpgm|$9Ii{{ zF~kcGRS73{HYWzmCF_FVSqQ2@R`l(InVs6Zkb)vPEndAY&83%iD;ajyUKyxMT0f?#rM8O{&<;2kxY8M!X{=UkerJ|&rZYS@EeByj4QC%l3w}_@kRRhjQpPHIqFMHOw{Brz67gyO```WiyI=oe zwd@_r^UL$LU2agQUp5Br#XaTq7OA9GYLJ}Fts6F1{D!!$r;n|tvm-BCU57?{YO13{@5@bVS|@o$>%Utd4}^23k6{P4ry{q~P5TDUwkk!r`ET1d|s z|5*;A%#R)NZH*y&8iY^G;+aYU9ATVRvbgn@!~>%m!RrFPWhcho>W{+L*|Jy@PP~s~ zgmEW69oA`R+aTw%{nw1D^{G??B7bRuHPwYpD+r7>2xd+ zvq+ut8TDucFTe)S#~l^?RuXP<^XZn&in53Wy}7!-R5ywaw?Z?-^+rQ z;u5Tj5J${=Ci_s=OF{4eejS00smf5SOx!fjc>;ayl{OI^PhO45%bE=eL__whzyckP zx;Y<9gaaGE3&>5WY?a6wIaaqY-zG?CY(oM>L~bdAmO~hl$vN;bKubx;@Guv+uhaC* zd!*p@?RA-WFwmS$r9o`IGS4$x(gdC_euMCV;A0;W1~JCDCgTEp&X3iY;7{bTfYrLd zfQISaGNI^p%7CGmmB~5iYY^~CxOU9ZPDFIsCR&&p?*XwwNiE7pyR?+4guybDsG2d1 zijJMc!{ScW_X#Qm^d=PoLlL?LsZH9mdPzBdV|Gb)C2SZ63!` zu3u|JT1n!eIFb8+h>14z9O2<{)CV_1UtPu!SOnP8%f$2U1_LSf4O&65bjw042F?K> zLI}40xV^r-eEac_fB5qG<-Tp}IDh`>mOMlfM%6{Vkw^-2HKjThd`2`USYY>DN}`es z?84C7V966qVGsghk%#%$`Qa_eku&R?8`tD?euAg^)J+rDSe--G0-mTX0VSXK&KwDJ z@QI=?F}5lb^$5Qa@b)L*F;MX%+S@)pxCKQ-d_3D^kc9UAC*vX2V=VkxWV3QR&m^md z6KsY!tUxEy>}+^Z8wL>>W(o$t`>xDmpX%8p_#6VFkGWL?nfoYjg%c4yEWpjlbS95G zch!L|AD~>6@Dr(t&LXvi!PcBL97kGfTmK&lgP5f2v7>-bGdcb?V@*dy4z)tr6f!kl zIbWYghcH%`%aH=7MW|=z>r0Kd`&M$Q+vRe-p+b167->L_=G%SADQd_$kdG7c@_H); zPZBsSqlEGpOTxV%#hsUNtb3hDaJtZt?R&jk*PKZ`#1dn@t$82UGQ#-=KQQ-d8St&e z&{4AYGMKqNhJX`&hc!spw&*POg2XPLeLpc2W_|vek=vOk`alJ^;Y! zd!E;rSp7-B^?V`Gy&8O_1z^H@tXVX$xZ!-DZ8=jL!AVskFu#IKo|&?ZBTe zz*!P|&m>|8yRgCA?e}ejqiy}^%Q^s)hp??vH-BC2w8umP=De)0*TSZen$6%gDk-l2RvDQ&tl$qg85Sr%`c`S=N#C*TAr ze3n-0sW%{dyWxaW{FoiKMfB4fCD9vtk3|;{X1_Dz4qgIp8rF-RkO+_$ z!Q0|}kzMu&-DJQdH|H{dyQ$r}Frf`X1?;9*a}li=xL@ad*Pdu#vl0nfQq&k*`MSvB zIdygM@C-xT406|=fu#fED3wW1(t~0zoeN_&K)Rh|iY7&DlY*f;Gk9415pr<7C@WwO zrsIzZiDh@k8kyzK^ff%xQ%#83wh4|5Dz-V{<^!cXqANWFouD$y^UDqLuY?Xo zJbIjC*=9DdkK=N=-{9hnDZu^4#^7Bpi;S~QoPC3xU4MDqUaxc7E2I+OBG~eC)Utq{ z02J3l1+J8k?eQ4P!Bq4eBl8~dG0w|ek8v4yz!Q!ZiLU}!K)5W6F|-b&%6Hs>UO+W# zq5otw{CHrl4U;X*3-)1-p5$quKq;3zjSD)G!-qN^&=13loUnoP{;^*R;&TD1gksIP zK-_xp58-m6Ne_P}JhmY)|JN|wc;Tbq29dEGqH|K#nP8GoPhgTy4#-RO^1~fRYp&3T z5|>F92zfRpC+D)@N_Gqp$YPTLSj;}MXqul=5&uhN9r*D}J!fm^eJOSaPpPl&t=ZFjvXfonO{WZQkw6=ecL^;jtAHzh0&e z=d&rX*6(^ldMWMCIq&=tKnoSt8S$9s9ePI`fV^_uU{ET47@U>_c-0=hjkNFfX?%X! z%ty9`196cPjuso^_wn-l?epg^U%q{YQ8fD=i82=Tey4c9-nSiNHHW^lgu>bs0guF6 zvK7}_W|X00-uEr;1$m9sN)Q#HYt@BgEINCiNdKa*SKB%4>>wbvh)!o77-AJW3V%^S zKVMRtoz?mP5&^9`WEBLk%&SDL=O7cD=wl^F5M0})3&SoxiImS1-wUGB&uJfIgzE-5 z0omZx6uf;WmoX;oI{V-_)w0zv;4n+PWr-?)ny-xwRQ{XbB^=Gbu1BClAI5d#`jeEugbNC()B%-HsUw2jqu{wCY7b@In2|luT zSki64x{*?qGl3%bM$`^G`QWFsrGle)|Xs?ta_=$%KX2nn`z zjg7QYEG5H}g7eH7B1{s|sIi{sii46c7Jvo-<8{HFDB4zGA?8BwOv-b-x>$mIWGUj5 zGu$pJE{*&>Qg4Sfv>o=QL3#sT8i|$WE~;2Mb}lP5aEn(~BR(F8GfTrsbt>EFJo}ip z&z~1nXDwUoW6gMWRV(*tuCSFO5wFnYE?u-k?;XzZ%AQfQy)DZ!XBCu`b%$oxcC>@< zHG%T9v6LVG{O6zl@z3sVi~((IA3LxXb-lj6Jpc5=4_{ucw=svQL$%_mI}f5FPx(^D zOFbFnH)ulcb5L(Zvm0~SbY@1EBHRIpmLxf&SQ6_pxpareM_k%g1`27jmSdb2b zw>)cSw7aLbjyY%W8+1>tN#|qz>4NGWKGB(L!B56fnnt%Vt9VkjAI}p^Z5)(&;}f#T z5xkD}2n@&_Q~KUYG!d}-CWAN+h>Z9iH10rUgnSeFav-%JC4)#DwKAW3aH)ZDyeBMi@63?rG<23fHOY52H1WN<33^M1=b!!Czy4{7Ru0NwaJI4^ zyJwupq#Y7+uC)8;-@rUzFrH0dFL_1GjJ3X zNggBkf%SS{Ik2KG7}F;kE6FL)av=gFRGbzEaA38}>vjWHueXwy%Z7(8cly!Dktqow zf-RnJ%fSKDqm~D(ZKbmUglmM%Vn?aj{Uv(Ph>-$>3HiJ{k4^xNvdrroIBEf(G6V$d z{VdV9ZB5=82nJWRvbOe^yOROE`k}%Y2Y|;DN)L<=sLj++OJ#1#2f&>`tKT&l5u!xnvrqkJryz=5QUx1u6n!7ylQ{aR6&P zr&2!8v8*WLkDdc<1KUTt238SGf!46_eb$`x6zM@&JQ~{@Q3GJ+CpC8v?(t5&cn%Ck>+uOd&uP?{?$Zed4}iR!4cN?K6jmb!6=>+{rjCu(K;M1; z#&vxEKY=-Cn$w0s0c+H);SXbh-V9nmhtN@`ZkUW6j~>Jd^~KOc_ven4crLrH^ELJc z`Wk3daLA?(H4s6u6qX!Om92Gr{_StS)c_&5NyT;UID9%_k#EyPPl06J+36*v%oNue zkQrUp-P(ZG$-Mh1u503x#!{qFEn`M8V;PxVRtv1V`yR{fK9{kK+x2=G%LyqF>t7%-0ToHe|qw_Ms z>;|s19(B3R!FZ@2%7XRYxTZAUx2QokbEc%#0pMJ2U$-L*@iM%;uts@c@LpLF!Rs~t;(uUh zRK_IJV;I(R9GMRb;C6!m6(ifR91{Ez3M(e{HOn206{2x1FHO1)7xKHn7}u2*@yL?V z2NC?V%}Dx6jhV(uUYe`J`||C_d!9IJ&tqtkV?7J=8b{JSZ8lFk9Eod5idbmgT+O|D zTE8qo*e4MJkyOYmpK|76v=J1JW3pHJnj$aoocngE`0{fQFDnF>mrqg)sgHGV!1Eik zSH;MQs}tISY!DaBGX=Sg_T`u?DT{HfKx3)Iw$IPS;wz|2?J*xs$tzp4E|oz*8A>eaq>!e;CI zh(A+=B+G8vQ-gl6Dg;F#x#HcaY;6q=laWrX_qLO8fw>@X&{Qa}tI0mHC1W4&iEq?E^|Z|OSdn7|=G`#T*97*Z^u^NH#24ANv{J9>%K zG4km=-p~m!Ax-FXexxw4i@)ci(e(u}e`j-&PBV_lTBerUp5AOjaTtM@R)p;Kx|9%H zZ$jq43rNOCkYu0|P}?qpyKOx{E@%G0>@~?wR2b57l!QD6;EA}_IIe|efO5D1=kDvJ zLYFvi%eu|u`ue(!$i=A`0uS$kR^Wij;A}>^dWv=1pm0F2L#)`M!DzgfWvMxWaZp}w zjdi_jr5<}cAO&6LSeA+wwf#6^#0Cyh;vDDumS|$bcCc0^^w!%9Ic!cIqp=TqANe@y za+!&Fc+yBNnAPdM1tTqA7vX^{BQT65pcKD*`(XzPGA(n*cY`WBPy?wjnP(?z0xSz6 z*!aTl1h9bjV0}fVn_0-{WxF762^OFTuSGKi9vXJwcytbL97syP1nn5W9e&_uk)#ZJ zC78)V4Bp2Bysi!rn4DYU!uv&IWDDP5DO;`i$bcu^*m{%sPKDY&-tJ3c8}qRo?A%~v z!bEUB=DEb6Pzj$4PJqe-%Kz8?jP=*?z>uETB`DBQ&`oMa_T#Wex}!1N>JDtEQp>)W zQyx66sn4I6R*SE*7`3ih(~|(8PB@8LY3U@)g4*{-jzxH6u)&8Wfrfij$<}3`94Lf+ zTe(;?Y989Yd|teDRIp=#nGck555C@RG4cC8^`_8{#KNP@B&Rx#RGsDIs4++=LW<5V zm#@#??m5#$gsc&a$^ZPjfB4<+|KaDq{@w5Y;`NswKRI@4D?}9eT$CRA{}15ba0OnATf4vk={@Z0@(U7Rgymqi#BX0zzwWJjsDa zj(FeC9RT~xYXvYm0Q_5Mg$(`U-BFET{8!@uBa;=?NC228zqo4u> zns_LgXRP&*B6)H>!p#Ku{Yg=2Z{-%AnPE>IxM+!R(RNI=Y@4;2C5ABd4mC&&TUI53TL&Db#d&kG$>|6`ojaRLBDITVg~2fC4=-x9jf338jrR*Tx8}HA7UnuI zaF4vrG$E7^gRq2Tau_|bNCzOl%P40H;2!q5IIwlvO&Z{T9sZz5McJ?rc1k z%RTnolrY|6zOUq~xnx=HYxZ7#;6W+%xsD^)2PRN!d0e9lfARCr|MHiA#zU%XP4`3j7+iO_MI2{D)R)W?ZTeKRze9;?(ym5x6NbMWYO$Q zwJN9siU|e~vH1Omk`>ykfoTK~U-4}J)QMeyd0|o$5tee+KH=?YTi5dq;EDBq46V_@ zJPjl`7{h?)e*(7~57?PSN|;`?o%~3_R!^20pHTY487TV5Xm`j1ZUSFQE$E+vjILLf zZl`Ks&?MFkV6g?eOuEsIuFcvafloe9jIogLLIFB3OAI0U)8JqV?t5Zkh>7jiA?^&i z(QcqcKZYaNwA`=T;SsqPwy)PMwwxx>SroHJkJBFI&ki8Mp$PZ3cMhzM3c}P)ek=fo zz!mkOMUMh%*ZYhE`R&`wm+6iCq}C!vPQ>##&Z>`Jix*^tIF5(5 zS8vxC3MS7LHJV`_NjwTxR4uIx(c8z_J9i88W>gBbTrD!IsEmn5_~ikput zG^Jl|3Bek`LsNVy7$<-zf`AzhJJ#KK!n5G^VX~uCyU8O!Gd3htT<|*|j5{l2!WxnS z@r}6&Qw#P{+4NDt;^Xz|hzt(u45%xQc;5WZs5T0hd*Q(dadDdt7fOJS5nEs)|N9+O zWG7idtU=xU?b1xpO8WsZ%N3y~@GDYJG_<&7iZ2wXCMyPKcdghQt;&t-HK80#W1s3e zr{uJ(BhMRNfB2l;Qu6k)4K|J?IpaXS6>t%}xMP`<^925Yai8#@V$I~c=EY!*ZbGcKm74;{^ZyH{Ez?o_y78jfBW?d@cWgytB6wJ!D0_^QN2VcrsGK^5NLW(Yq=B-(d%cI`lpUhLJ!~66KCjrG|CLVrB zGV>Wa=A$cww;SYoSKz6!p1RDzaB+)T4$i@~qP!OyGN`}Hx_wPTS*B;r{ixR4$w%U1penNgvOb%S`fetYzJps1q`5 z!@H_~kbqtQ!B}P?w$kHu_llEVm>eSO!(o%qkQCQB@}UB>JM(2wW``QD&IKB8Xn5#{i>39?|!n=n^2(z!7NN&TfDj`XAsC)>Kp=~Y15 zxY%Y7&eGVnNV+VGn|KQ{whe&=v~{gYYHvA`5J&|c{}vn;$LMXt?FpK2BKiNhD4Iu> zkH&k5{+(b)tHrxa_C#&;;n*ibrGZi#_c2YA+-wlv9!s8_fByF6mp}fyzx%5{{;R+Hli&RK z+kboeuO=g=Y9fdntBwtJ4ny*YhkbHzs>ndG>FydHePxwG9TBHW|D-t%<_ ze7m>j?bNy?PmH7iHu~_y$~3l7oWQ>JeGjGBq`=;j_Hh_)(Izj;LyuPA?><4!K#{R| z`tIEE{cuL^JEos~LXst1&D{hVgOl~ijC=R-4UVDt?djWNSXpQ!b8mt98o;|=>GkS1 z0Z*XwAO79akT|7dSt}G!`W*_{@7tEJwk>N`BC4^n^;k~4wN5sux>cN8-d#R|!@9E^?4TrA>s%VCkF!uJ#`*H~ z24)mkiD0tzvaL%^nc`gJ-BdDQr55PemixA>a|-kQ7M;Uv%h+9=r4=mbu(;VZ_2hNV zE|%aa%?Ob49QeHHCxCH;G@!&?$+Eh{L<86~gh&THd|s&(Zz*|R?(|AcOmJcS@`rhj z7{Dt%4n=%#mb`(J?ooGM-H&pliQWmB+Ni6R!1tId7GAOy@4WJm0s}g!2A1+yU>yYP zsWvrqTaxjkrefR&PfdYa1fu^y^P0g3*-Fs5K8kqS< z(CI)ffBO4>{m=jU&;R__zxeT|Uw-`M%k%5k+fpun`PcvO^FRLfAAbGI=jVG#$C&yd zgkHGS`Q3?3V8}O|2h^;hT=HzV9-|J{2GdbU z2Fg}KGjId=D`ws1Qa%&4$>UC*g-5=pa2K;I+`7=y%7^Ve_ABeZ{4SmZ_NRf0F?0;~ zv{~qF6FPg84ShOmDfe-Jf&%41$oRnkE3285!@W7l2KVU=lKG-14D0;DkZA7AC;BfK zf1}yiuv%%iQ?Q|?X=vg)V|%=7<0qUQ7?LalzPr|`?@HU$&M3{Ed8N+7fIAk>7Nmp| zu8eC5z42vEmg7oV<{bxri=AfL+wXuPNv#IDFfmY4?J_w~{m|sx&W3T^k+FhGNvO6i zuh(r`56BJRDJ%D%E;wu-+&DGDGcw?6U)Dm`DJEa&6p)&;Ev3@O28=xpQO1=tLIjCg zYe?(;zFlr5#oHaNX0a-CeJ{&8##j*jkhx3CdQc1w`mnTv+bu|tC}VECW#n6mL2RW? z_zAoiT@mQMM+Orgw^6w=uBR6udn_ZZPCq{!heQnk+oO3o0+69)sukqC$6X8p3GVP1 zFH@AYBGqk7M|R4K6a`T$C=TJQLVhz*I!EO~0PJ>1>+~FPe@v|W8?jpPy^+#E6~M)^ z)0wCH>1;i;UZVE7#t3-=xd!rPcoPKYq#p-O#Ii>x#dk>bh8BF^gm86P3eq^iKa~Ty z&H`6mk{5{z+$FB_|D=pI>@}P6EoAathNvel1g+1HE#jVJ?SPeSEKYnI=5v1Ij-}Gf zfhZubCCn0Qh6&XlN%z)t%d~LfodZv;3lFB5;i8Vl3i*lm8FNZ9XtZNQFezj^2|4ri z%kyY^x89<~G8f~`-dbT?f)q1ezil*TFezBvFWxq;!M&I0;;7r7{{Gju*t7rm^*3+f zed~;0rW8{5{13nT?VG6KpGvvEV6k>zQVhs6lqP{*gq{UOM#+vHrm?PEBM_}$FR?S6 z-vWnEvayEIXdHKic-9$=hYaoYhm+=tC+^2AJlQax{|HM2Vy#;|iaTOn}#p6W-_mVQu zCalJZ!R}7Zm@pA~GicZMbhZ|z4eebOC)8V&?$M=gI;%sr`gc4S zsWe`0pe~v1$rG)>puD<_-nc|kGnKtwx9lIGqen9QU9e@)ntXz`X#^@Q!9gS&bX@8W0)lB$Yss|UhVj-)r6R6 z)*ywFRB+2EcqFU~D zRd#`&oa^x^BhL z*dW}{2H2dsFm(!S;-{^ zSP+1#xc>kMKA#PIxiT-Cn1QAOUh*h#72;=Brww2t#>;Xj@Euev1R2)h^#&u=8IvDr z${12ca1Qa4!m~k9zpCV*6oRo4!D3wo6SIj)^?A-CR!H$aE+cY{+>1*V6F6Ajt~UTm z=*9Gf^*B&idi8qT7JAwF;7MXy9-q@|n-lPZ#cbi^wTd4b<%Qk{Gs5F@YZ;^}zh#J==#sU>NoM}6V(86tyT(nq=<$M4y>sV>xC?WNn=0JFhzr3@MVnIqS?b7Un`4y+^v2)<3czdiot`T{Y4hiDm zvST2Fjya@j#g#}sOgxro=Uvj#(3s>c?}j^yZ%FeNklq9<9YmDmh;C+i$tFiSzC9^=&=9&j0l5zyAJre}6~b&GXC4>wT@> zmDxSz(SJW6>m~r8?~9zs$Xei>hci*u;Ci`T9bj|3M$Cc3FkZ$U!`nbpi3UTJvN^@i2f&9rJYH-%}lvVFxC%-H+Rv z&}IwmgIrt?da{>})a-ke(QvkV=ovn#6&?-;7_L>C1pC>5@W--h6o+q!Euq$7RfHWRg^dlj9P57XX&N ztTRkaIPkUMoZIL7>yl7@zP;XW>oOx=A;M0iz00TwC+zJOks91Qhft-**vnadm@)bkL4!D^Uuv(IHM^t8*9 zuvm!7e$@H-H-GUQ0MEC}3W@>q?*Lvvp}#m1!2|Bo@+U}lNXv{X_$d08knCxR@Oil$ zL}nqoEOk=wx}ZBM<%@lNbV z!+I^=^pv7I%5qq&$Zod^ip2rHRDb-4EiSL0@72ZoC0KN=1Ye6s0$56qv!<8D=J>9?tP7=OM;{^x{t|o73v^^Wg=1tQK2$PfT z%{g;Ey{)yhos()y9Yl@+n3PaT#KXXT$E=5Lu&&SJR=ov@)2k!d^AyK&gJm#&E2`{# zLd>{7ybPt1EfDO?OzF{qjc179=flt(J1$;rS$0r7($`ZW3z zmTx9akZF)PnH-1>4Cu@8$9IM{j?u@&4S^5Ugw?vw)_!E4v;-jO%GQF zkQYCW+Xbu*1!>&m?sGKO%6pC@PXNg~=GI`l*PTf!V#glJAD_KL_hj)P9G2Sx4r(83 zKDPTB{Z2RpB+a*ya3adGZgmhV)x^_VyO*!mIkVd^9y6w6Aa~ryW%npYf&1VPufRZ+ zx*TFMh2wBe?0_|d%+~cbmSsEu$@|yeT=QHQR0bm}zB7}Nsfwee?~S8)DWHjys)Jlc zj895|WVIul@(3zJ8S&H)OmsTP&c_FSrQqvKhp}tuYq=qROW(PnDz(CKy>y)D$Fb$LGnJ&2@95W zn^^_R+D)<-5`rUNs=R*tTI_O}LqR)>B>9+w1c)VjQ=1 zyKUR&m&0oDhm+k@=G&JaetEqw7z&a%%ycxEqn5H)ZaNaehyw>R@6H`_Z`5tDe2wRU z;EMD#>;^kH%aWH&2Z}HvFa}19hQK{xV$XZ1pd4WBCwzqMDmkF+$0ug!vgy3TuFdb5 z>#!U?6uD%E?qpI{f$w0>=ONFfRM0|bha|O2+W`F44jwte_h9qheSC!D$fSleUV!2! z=*eImX3tz_ea}>O8H;hS2_>{NoTp*xhweK(fM2j-PB6OjgXv^`{%Cf`upq-mY)s)C z;fG#&zri^2x*nsiMd`CS_j{(j*aU=uAKo?V6NeDf`4X`#PXV&BajiHGEhr{YgDZ}u zQ?Jul{m>`eRrYkuy~(vYAC+6Xz@jfkqXHK(NJ%z?WiXIuyxdC?SBvEe)d2{H@UC}t z8@YOyDNA(>aUJ*LcD*gwe8W6ZV4}=NtNr0nC->KUTjLJI0-zw{eMc+ic9V=ZCYL}* zUV~HvP%HLk)C)jRM_|@WWJ;dYgv8)&Hhjb@*)$3On==YRO?zyAGSU9ZcCI%OvRf^1UE*?V@o=mQ>M^f{Jh zC@D=ew={AMgsEObD>VGN>AtBc|Gl(Gl(gDGWq@;vHfw%}2+<*K@*tTh$w`=A&P?g{WMvxAlIz{PN># zp}Co9<_`H%SZW;OvaMsXT&gi5eZqAT3G++ohJJFxX;|*#APlvJVgI}jqs|Ps?I!eS zYwx)+ROOhPhQacVHdyrQn)3-E;U@umuXYA<>5wdl(Md^783ViDfpLhB1UXyh3?Hqt z(@_IGa5DBPEx1>UhU*OgU1dYf{a|)bDtMz*TAWVQ)8Wf$i@Dyx8vtjT6URYkRbHK%pRYKX{G)Sn|WpXt``-$MCqV2d`>W z$eup7w2T3TP9FOKBrr;RiK*GDE-Sl%HM$85h3D$qTEo8XseHTR*SVyrEY(?xd?Z^B zWH#aT-2r#7tzmneLM?j$pNe@rBp@zPBTyGPN5BhDH0xF-j6WINEPTbKEGVzs)i$&=!gBWG)UX zb}@4@aSJ|rs%8DY)ZmmJHEv__diz?fLll)r$9yO?>aypN{`y$g5+PuwJ_Ev4_8n)g z-6X2Zi3ST{BY{sOgm>7fB}~NlD>qw!zY0(icuJI;)m<;(-3h$B|Np8n)~!bbXyb*Y ztVkTY$NS|F(1q5F0YXDDX@Y#YFQ@?tjR9#4b=uc8%dhq*oflu={jk2l?%OWt*FXJw zjrnojJ{ITXr_)wXN(EiCD&q$|KMX2Vrr7 zAV1!=it~f{hrjx=VcNjYS@owrFYAhq&pdDN)$fijFPPVY8CbM-8lPv=F*U&F+a+=O zWi>9?b^PfD023();|*202E%s8b~ZP4PyN&}JQ2y@wDwvu77nwwmV%_7NFN!>+8mWz zeSnP_Xf5gR)Q3{6O9mndiNjb`p)ejYG(b}fJxx1kmiIGPVLAW8>z2^f=c z8+3F%8ZSIM!BMggX@+WtT$*6i=&04`@y6&*gD4CFxIK_Z3?8JgrvBa^nhl!07dr7k zk7C!iW-H7DveRI zVIXLO$GCi;6o~MR4)=&C-=fKFM|(w-wETWuv(NKFxfx^0Fp|e*WpV?`j=5ZO#)pJw zMOR$SO|Ht0_Kai&>OGbEO+^rrWT*@3kzZ9eEFyiHdN*Ij-~#pwtvm+69OuKk^kJU) zngBNB=cjG$KQ{#coXKoUdK>aNn_Eb2le z!;Vkz0$hG9>qrLgfOvrY&Y_r2l+5{YfBCCF-gFQU>Syxn{7$x)!36^~!9HZY9*1%! zQpQ8FuA~l(*7Ip^zy0|Qc>nr$e|EczM&?2#Q#wGhOH*=#+IL}HGxa^3gAr54MQ&u*{gM-z92I=>bXf*Cio@mvuL|ox@ zQM{54v9%t2l#Efp&OTq{VN?388$K}3*M({Y*Tc89&o*C44HdS8D9*KKMGI7IT zPUoC@!+N!+^0L?tDO;i1l174F)56x=`sEH-;o1V8RZk# zObI+P03#fkgi%Y*Nd_`4R`&ME*l|0C4nrgId5wjSJPm$#=gt7L$9rW-C)r^ppW%xI zx4}qfBZgLuz~?8v{5e;Y_0Rw;w8mXv>ScFy_dUF8O~Xu|@;PLDZL9?{-QWyO$UTO5 zzIG0H8v5fP9cBb(k12sImM{o92%~ir>s?aIUqZTl4go?lequ75pB(7~bd2=MI1dN^ zZ4_#c(=p1$rcBSLYAFJnhxKcfF@n{M!>03&A}aX45*KSZ)Uo7)bIjM3 z*0Fi52}EAtk2enY^zm9+jnJ!8=;uWl<%kpXG8YgHIU{NeNxRDxMrDm@b3Le+1*VsZ zUSqE5LYxau=3|A^*i%#FIaAAm8GKFlxZRS^Zo=q28Rzj}9>vmH#f2vqfOmFZ=Y%j7 zFd(!GL$5sV-VPni)RPQS{K1Kn@gK?DR2UH}0JAq-)Jgi^ttH7vci;MVz+;#F01&=#+j;pKT=XL;Df=YNReMKYgBa5=^(a zb`cHx=M-6QW#Pgu|yKis!YdMi!GZx1zcyflm+|hQarhJ6itm!Dt4H2uCX9q5bB7-EV*-h)+aa|1J_PK47UG} zamuG7-5B9GHjwDhN`cQZl8=)L1Y23z zH+xwMX1HK|x!vYt-YN^z=P_37Av}~#JAqdX@shCC1EoIL&7*S*Sq&^qd%G544PLf+ z93x)`b1njMh%FKOwSsM2q**x9ZH!JCZT;z92%Zxa=BS#(e7$6!BZa=;5rNe7%c6vt zDF95|^h|TiT7BLg&8Z47uulV z)8u2NO^$66&f+uyQEdQi@LR{20!~pN+yEYGL17a^QDPGl3f6pWrY*&3ayi#g@CB>SWL1s0{R2CgFk(X%=-CX{^f48y;JnC za>^is!}A9$V##cJoKH1r8sCJxd>mo9T-)2*5#b=*Eg9QGaUzXj$d$+od}S9qOXQjd zxS8~PbC#qAG+#~*(9;g{#@1>?jrroamQBRXgpmu+Xm z9c>}TAus)4!lkt>^r0M&STneYmh}yJFKe|=U0p`Tq(p~>7$!P1UlIjaM2>P{Hg4L9JbawGZ=q_MJx|nh%bu zYkmt@TZKqjFu-KmCtxo_@!y+MkQWJE_{$PJ1VXky)?GPEL2$)7?7s6E6}BM#*rZN* zexg><8bi-PP-xZ>Q+>pem$ejbtbG0Yveifp{xKiSZuE?&tXZ~xNL|$6UP}Z)3~f=J zXSmlcOPMb#Aa>qvg53 zl+Ee#r~mM~fB5sC9AI0(#)LD4Fv}V!(MIElg|~7lKQ@9GiG`y%zSrF6tR}iR$H{>O z$Ac!|llRzLX7anjQ(oiowJ{EjrFiGelRoQ3dGKwBGA6w*+j6r`$hM}B`lPkfzK#xI zzc*DDIh7QHG_%T`1RCuQ$LYL%dH#A`qf7IB-KWM{&?DhO++M%^^y44@=5M}z-9{ds zcTBRKah#`P38C2bsdp%`ql??DFL0~AubDW8KrAP z(}G8qMj%DoH8? zU>bIX3qDPP1H^Al2*z68ysqH{K!zO5O;~W@-x96vr!=Oa!}o57OuyygH;;Pz@2Rj9g-OkG-*wnn+IzE%e33c>`bFY488uQ$sf6vAsAdh z7!TnUdxyVbddfQ{Ao?WZlqks1WH zoH3#l0thBa9zHUz0l@D9Ix||37iN&^(tKHyN!fP&J{~le7+;E=g34(uC)rsKAE-r(ZO|p=0vmPbh=Y#qPx)Bc16~hETgl+Q$5a${ zaEdGrjb;#tD|-@CH9iydI&Gp&RB8$~eg6Cd%1=4pw`o&XbVMs+IC#j53@0Y7K#+aN zB(e{3(#hzp42d@MzLUZssF*bF!cX$Dxcd00=pAV)g}X|-5nB^eP$8&v)qEFxU~|A} zd7PFt={hMU+<_2Vw_?q-+~%C|jwTD^gaxYsgMG_ipaI#X`S$$sX7=6p89eMHbulX7 z$J^_d-~7d!8|`}8=9t?z^MUc?07IB>)hY_h1svzc+rp+rk%V4OXEN4hp4a;Y_?vUN zy}a${ZZs-8RDL6Cz51?SuX{(j(ttG1*LxzJI`ry@Hz7ma)vMVNY$F9^V0VHZn-UlJ|e}ye*2sqg=RfGZRb#Zk3qP{9U=NK z21*C1h`W$2uv`}EfP)HUyN!IcA%MJU#1BSOW^7vWhd+y3iL#M}ZLq-*dld&-Ilijc%cHzOAYOw1 z|5xbDq)Vl{x9v7*+HEJtbLPzSeQ!q5pO6*;nMF*9JVEV?@yt-l>GbVW?In;>23cid zJ->SIs~f}c`ceZ=T#)R^VnW?N9kttbw9DFFBz>p6pY;FK)&TazNiM^(UR14_ILSdsBR4dT>7 zL?Yz72p47xi)sYud+$k-6euuPy{ul8;@p+LhbHeoF1cI8GkPl)*iTPIIqrD_ev+S%}< zWg~%CpKNk_##u?x7>*=beFPU}-e_VM8cAklUZ7I#DeM1;LYQT%N?_q}ixmAf^{tKt zyw|#(C`Vjv1Z+(oE4UsycgtG`*UNoH>tBdwUHZ|K#8a@#76MVS$u~_nCt??O z=*||w2E)`-N2h~oB%Y%)I5CI^mJrvgcV`R9p^`NUa!A7{O(r_4S|UBV z+)h6EoOaVhUJORrp|E?ya;Dc}On0IfUWzb-E6qz-_Wy-0#Nr}o*<2#$f>gal)XsO< zhJ%M$CK0XHYikPPJ!k*~#o8R)V(OYbLyoa(KgQpVz6xs?dxw7a}Jc|{$SQyvkkyIP8dRk?SO1nQ5<;KHya&ZUbbnhYA30z;w`|0p(=v19;^}=i$5zlgYOz*)`1&5;+V3 zjRj#Hn;s*?&^}|o%+b;;m+? z#LVuE2BJ*d&Ux}}bg&r1$!$SW=Vagr!X$sBpQ=aW=Mjsa1Z8iI%!Cpu$aC$w==x*2fuxJBd;89`Tt4 ziNn#8z-7(2ZSsQbmgfQLcvGom-L)X@2CpeuXxsaKi4yKu#|er~(?H-UF+o`bi)?0l zZj(G!C=zYSOSd$0s!#4glsPYBegibm{}5+8kQEw>Aj6yj1z3 z^{WCaoTLikYgP6-;LO413V(TvkMOE^iH0`(u=8F#IMj!)oXA9P+>FO(3`XxR;02no+|)1$*_?M zgrg%W$R=9zT8zBv`6kdOK5fwkKi@CHZUDDDhvg2TLRBI!X?!Eo|7BAu{=#+99pWog zHLLFAPw@^4edRtvY4a5JHPY9I1`ZsPlTh9mVW&jjIMleme*gXF)Tb$|r&r&8^}+kM zUfLS17st}|hR=74NM7XrTXs8gNy=H`IhO`ituURKyGS{;cxc59u(XFzE^AHEFD744 zaGuio(Ycs^c<&OeTORKMv2@)h5S<`qalGQIjZs@j9>=V~ab!nGKL*@r#5m3i`cME$ z4&)NQIp45=ImVn9idd!y4MaKsGf;R6aT=(Ka1Ne-4^x|O{VpiHY`gIc$hw@k-6I`) zFfDpJ7x1=p7>q)HYig8-!PX1p@_@r17*T+-TCol{bTw{xcZ9t;qdrgCudDjdZ-lu}|rFTL#l-PO&Yc&=(sU<(4cq@9K%UHXN}L8)iW?lXW9U(YfRYa8HUWN&-Xn_A9iRQi zCK?7?0du~WtvkqYFKe5OdjFi{0zlOofD~MxQySB;Hlt1;=F53aF@r+@JOSi;;GEnM zUMyGFvJ$s6>|C#piZz*(ebe< zM`CU4_ZKK>D?ra;P%YUIG#4hhn`v! zakd_Zkk1uYad{ygL^ol0&=%Dyyhg%ARx4%9CHTgmK5y0-SNtj&z;y zE2n&*Z=2?v&C=?g`@AT+4Nn3Rmdu?3L1j-Yj@jh%x9|V*>192={`8w0tNX(mdNiZA z?vPyfXebj_HudvsI`u5OIi~}KG>s3@H4zw=@Tz%eZD)1}u`Lb>) zXwp8!e){ZEY7UlKTMRmH&*d$;gg+QV-%VPza$l@Lc-x#UCs-H{%N=;l{K($b+f03!taY&4MZ)9)>|*X3_Xzxk zLhXjb3Z4b;ta)fYH|#VYq{Ed_?wgA@H|Sq*m)Zeaq$@Ox2I-R2fIpCOLg7I9f;6PK_ zPD?+1V^FE4j4x%%kv*HZSKBkj&$wphsC?hn0tO+}b*(X9PSrQ?x$;9$7BL>#JebB% zi#5G~17`K@%32zfuW~%cH3&1<`i5;!TPCo3OwMrgq`ItG&#(>QspGWtGK;n|474KE zGeAGDFkDpi;j*=xsv(7V$2KvlF{;rPE&El%T%j*#7!ZA*I+3(DuPuqsY2Bj0RFNCD z@ydN|pa_^`Ld_y*HGm=T)NOJPg4iZ3PbD_Ur+dyC4H2ay<*uV= zyP9&?SnPuU5w|pJ_y0vT>kHTlF2vg+XevjI=t&(+$un%3gvO$g7sw_L*rdJ3F$9P0 z9TT3>A{ku`%Usrq*YR0C~g$o@BvtZC2cztmN_D@uT@tqC1Ne=g5hQlC9cr>FM=e z_8pz;=%(QYWA=14Z!@djkhy?4_v4f=WkHc)6kZKV6lkIWV^*BV=OLv)V1&r)fWU#! z2g^fJy(lyvz@MPZTplOyZfvSYg!o%;!ClgKV@A*xW;)Q^C;q_{@iIQn-QVz@Ei=*- z8uT3@0wWo)AmReMN1_lBSp&@jL=Dal3nub#8h~ZzAmevb@f@C@qC?HL>GpC=DD5rg z@qmkPP>W)DK|>0``bhJ+L60^b};0#LPvQ~7>P zPOjsjG4Ups=+ubnfM{u~P@>Ka-F=Vaa#Kh%MCJlX(L7A*1s#5_axA2a*>O4> zM}K>P~u#1so((sL^8YO!v-p z-}h`M5Nqcj)|^w>)(hI$es~<}^_1oj5UZGEG910;qxN>qEi7=^D8dj0kXI%-YN_EC z93jNEjHRjay*VKR38UG-vSdznb2E1y$z~@#uAKM(qtZf z&atLR#5rCeisNz6tOQk0%K$gtemU)J7MnXzRyG0t^$)^lpx;15<$(?(JEsdqzK@_4 zlb)W#gRjL82ApaLR^B&My!&Nx7OVolZdA(V99hBHyzeR0^?Y8RZy%;ywk;kW0nPgq zRpPu1Q&9_y&BP2heU;_O(wTnPV@@>nN-%LP@Rr>6y;zrW3>{^%b@uuksQypu9*Hd= zI<}p7tBJ7GCD;{ObkZUQ@>DZ;t7?p<5%bin(quIQuhT}bM+R?97V{HElTnhE@@$1a zF*vS?7Pg6Vf^USQU{&H}BiE2K4b{l+0(_}5<3O7%YtmLMEBFA`TEN?VD+!qm4ODq! z+mK@=jT^l%3xZPuvTn2aMc~af`35dH5}ieRh;C3-i|hE0dv7jmIda~a)iU3!pcA9D zyh%1#f2w}`*|;0ILWpraib&z$3{y%c#?jfc zSJ`X&&`DbtQd8N>6FN#;o__EbRiTdK7GTS>k|ZxqoUmzaJ#MR`t;HFKmL5hgjv0m z)(g55-pAgEylI8=Q$Al(&$VM|!8!c(>CEsJL)pWADVkHkh4!3Y2;U;SvprjL;16a* zfTN~^t#3jG*X4R$OS?JUY}e?SC13XQ>FF6>tn2G5szKwhTvbkg!-w7)2oPL|7zv;; zq+$S;3C%Q@=XXKy%Eywnyzwyl zWN3DI@7Rg8m?v)GV(!4o3H7Z)(8v`KizhQ8xU|(1auGxZfp$=t_DH!O&K@9)3?tbV zl=-NnA!-7_>nM59n;g9h$ql0kmlX{sJeEG?6Quxd;>WyG_u00+mSk!31<^rX&xP!4 z+^*Fsp$5vXK*?mY$Je#z6eIl2vAkA$T?yqjS5OuiMHgA$kT^I|kr90RS%bF?I35y! zV5?}g&vQAi5!{1~!00$PNPLquwrt7Iw$#K@Cc<)#l6gcOwdipmvbmI{>O9D5bygAQ zZ1m#*gbjOMM&B?)4U)kz7E?1guEW9?j9&=m5sbqd-Kyf{xCt;;Ln94>24Em&pCi@0 z00^0qQxS#@Q>{U0+EI&oIm0J{r=)37w6VZa)h`iS-aNRf`_LuapI6(#vFLr)?_Y#% z-gB#%Gg#>ZlJC>Tjk70MJg~tQgB7ppq-VoPjeLX#KMq8t7}scy?hx;#J%B)Ok{vfy z&+4V7F7|@VEua%u_-oB?NX>EZCvK*MkNB#BGnWo{;3N49_Ggub&)dwkvvPF5=h(CA zbbU*cjG3fY^RfftejHCbr2O&2Cx1A*yAYh>fKb=cU10&>g)N!w`AlxiGy2sB2QBveJidP{7r-49mZ$bjgr3N!Gt5>4S0t2_aL4@i+z=+NT=|AkOUaE zV~Wp#g*+$&0Qt06pfRKm7%Kx*LsvW76oHJ`5p@A5CD8$d*$frA5B#DM=rPkaYMcxP zjs$8>TYzC8y*z-+WlL^e@Cb?L#sPUmESgc8VkBBhJ)yFJ*wi+SG? z^T2>1_M#ol$!QmbVfs_wchb0{osQl1-p0Yz-uRBP8 z@&OjezJ_wX78?r&C^Cj|&?IOUb~&ko-JRUNmZ*+XgO82z80J9yudT^V=+}Yi@Te-C zRIs?1W3Gau!cUEZOQCAJloZ$#aX$#PEpS5ZJ!(1|OJzQ)>x`f-s5oD5BixK~K1x)NmlaXavnp)B zX~h|d50+96fRajgk{Uaw5Dne$JeA$vgH)0@LfSPh`soiU#Ki><2S(H3NSuZso1hEM z0;dXg?4+phUXDDJL8?(F;4^CIr9QcKP^vDXZE^Hjd6z|#SVA`RxsLF7mox5bmLg!b zvzP;rH)}7~3K37hKBfU+EjLOWnebG;Pi4QH&zBl0vpc`{!)9iO5A=-5Nq3j)k}7Cs znbKy-#Hil3=QEaUD#z31X}8X4EIf6}@*?V=TqRCiEz_|oUP6@|A4^a4^Xy{vomJ(qyOF(D3|Lej9+?m>i_z7=2{NlBYKU9#y; zut1AqHw;olGqtioNXt29H2jXh@}nT?In9HU;kutW2G8z-x3i1hD8gkCQ4Z?I;M|JX zOwjHN`^r-Em^Vx@8K+V$PEF`daUrhb~SSw{V3>$dZ|<9Ca(W zbu`yhpaP`>_AbyRp7sNX%bt4^CE*FYO!A<3g4Hti*{$-ABY_uy973inhQJ%^8Xc9v zTD^b}X}~xDc=I5gSs)5Z`Tol+O)zRW%9fG^=@IGje%G`KOJ$h0T}oqJtvP98vVMDT z8MtCR-xA}qmM^i(1&s@njtxTXcuMd#j9_n?d-GNduD2w00Yl31#K%-jZcAGbT(8M;c&wH9oPtDi>=))43!52gb zUSsDX>=*0n8pgRNfAoSGOxxH*fv3m9b8IuCeg1ZrZIBHfs~g2Oiv;X%guqF8O|9Ma zW7}!tn8}v9$OqV|LHohQ{xbUnj8s%qzeA)gk?P}Cp=JsVX+&K zafvAw_zKp0&l`ZZQ>hod<3g3CHxBe*DKz{>X!TfvJ1-pUP`r7tl8nKVep-_hz%Nz2 z7+0*RnL{W5gY3&nb=w>3r(0O^)%OaMe7FDZ!h2UMz~nW|$GL6lTy-9NZxvlQRkDNuoCq zAM|i#)b_fA<{h|X-+%J~pnlsSzmbKdp{ZwJXB0Rtq@jePK6uj2LQb3~q!}i=i@XvLU=d@3$W>~JM~*m; z2$(b}8&V3`EeuxZN$Kv~4edvp&a2DZ?1aDx>t$MgsQo}uv}_)bZAbM67?1&XyXXPL z17{}|MG*9oAZ-ZiM!TVh#i&xSW^fjt46LAzi5Hx{=tC-%H6#C*vNcE=cxGdR5$~Jv zW2;-^2sKD7SK?whXV@#&_>F|Fh0*}Fp9$aevTbEQueF}fTM0g2t~GY7{K9!}I70we zdt5`^OGFe~ zN6|};Si8wJ^$@w=oVC}$E?pPZ6S+B&R%06?gQM=!6&qP;6Pt@4SU( z>jX=yqRVsm--8TH`k0Co80rqha2(}A;iR?Xs8CI5t z=w4ON&EWh^afhY(BoI6V4dsal5gs}j;|Wc}nX>rlDYI*LD3`jOz*{F=?o^)Y;yW*&2onXa{3#e2y{x|6d_@ z&uudpbb@B7KNP2J&QJI5-8)8dirUq?TgO}byT==MP)Aj;Y+Pae?^2g{H@9|oZf$&Y ztFR0?47izk|IXI_@y?NnT{|>g8!Xr4uyldlz^-n7I9s3{MR1IfYx37rijyU$aGL}z zw)?RwR#$LqXSTOxVm`ie=hpu5=H}Mk%F%ms(v#cZgS&Ew?}VXxhHB($E4V32U%4sA955A02FL-&!?k-`dzI zk5&_I9DG#R3e@V9eggwg*5NTb0|*ZB&`H0jcR$nJg8U_=~6bI|llq9~ZshpBlFTyz1v1&H6| zRE(DO501(wq{)+F=0Q+d5zMdJ<^`pW-4zC61$YR z6F#v#s|>3TwDd@xdKrrAIi;u87+R4`URn5JHYDSA4S{pG`T6Uj(!Yh;{E2#X)R*9MpIb=V+I>$JD z_29>o)ALuW|4vU=|E~Ud`S7!4f})HL{+aM0xLz4J^8UTC-q=?tflyd(56O^ZnMpG!DtIl@_)h7F;zK_b z;+Uz(eQIB0L8R2Bq~W+OX0sp=D5N;b0_$h84%70vuWanB5IhzjhN3VwDaU%>K>E@) zonv(2kn>7Ihj=WtL&8Sy!Y~ew9=Xv4%~U|lvJx{^F|VcD&Us=+HZ1$FBqPI+GGbQ; z_QA*DV$gkBc0MlW$uaRyxvwXj0ZJm0(QJu^(g@AJQV4d9_egJ3?rzAVv4$Ewd&Hzl zgII$|l%jgAU=1lQP^j#ehF{=y(PRy(V_O~0AX0H%Kbuv$M>teVHw4$TFrDmefxFuV z8~iY_=21sTC?beTFnY-!SVpA;N@A-3wHH8jDdIa9Ban&+D^I+fFJMXV%%UU%L%<^f zHO_6o>6`;o%QF!I_q~8@mKSnX_+lKv`vYHHTjDh-2uc01>$oxCoun#hSKyU@V&kS8g?ME-gk zA{J*)N;sw|xdTW)$s4T|e6N1{TbY{s1DP-Y0nuSwd8fNKnoIU)%$^QK7 z@vvX@z9;8M+M{Nf|K1P(JoH;Vq$%nu4cCvuvZ?>~a^Jjt-fd#Zhx@|8y-z-1e05NO zg81mu>rFrHpoMwKDmm~K)+|o`c=Mife|`PSr?Xu&n??U2h-vry^>J^)u4pJABcpOc zTziV$`0EW9^~F|I0}Ns6zTG^2`<@s7^X*p`$Cbu%)<=z;u63GgV2GTQscqLqph6$| zVurP|y)^Y>BS~W+w5_DT!t^C8q$xC0wAK+TZ(|Bc8%>3Y^w({kj_S}dOCWzL!ZW= zU=t0hr|+G!FmJWA8xvQ+%4TrGUW1!V0SQdWsR3j~8eJ)P*s{Sas>*@k%(YonLj?lM zqYZ?)SziI~l>f)Z%amD$ut8sE(@1%{K>VD%_7mPN1=DKO)BUa&_z>gf?T z0WSrFu1OZZHYYM=o<%lE;8$uSq=~6$6~uypq!hqXOx*RJ= zBusj#exP?Wn>b6SC5+2L554>NlV7Lt$#2ABBnFTH4Opb!^Yh8nnWWrZzcG2JO;Tn*O}8lDE{S zvAcVZv%G&0GM*LITM^D-kn1)3JZ=5ZQ`2hv*-O%q3DeZ}_ivmX`68sFzx)=5-Y`D- z@qq3-2cKX6+`ico%5+M+Rr)@G@BOd$`=ZdO%aF2#egD_hPx-Bb;{v6w%Aj+^R1Q(> zI{YgB@1h=Wl$E00#NGM^g(I#vM=G1#az#R}y7ZxKQV(XhvhSp&(QDHIz#*iu?COOvYEq%^Z_0^u-qt**fdK`-Ox%UBy*D%zDGsEf`8WU>3q z%#m{ro{cdL%?P3aB9?Ih!51~UfGRsOe1*Q|Wksgk0t|o$3 z*9{3J6#*4DfRwIjV)nx_;uG2q0D3@$zmf7%4JULI|0=Am!D4{+*4U+bCb`36zHD>X zI8{ktvMFdOJd_j^j#(bm$Xl@lFTsl=L0CSVO&v#08;?9 z;e1HR3F1ktNfB89C{4U;z`e>(z)Q%@KxxMf*%SIapcHHpo}@ zAlyY%7Xri9EF>?VxM_|_&er0Eu!13)t}D$Xss=DhK#bj4qU4Dbrp`^eXz-pP=V%~9 z2fA2(k9u+rHf~53#qAYCHfZH~8d=>m%D zVtP)4i59A2k`1$}f>bglW%kUHwm4ji?_N7>1z1zC48`!_qqSh~!e(W1`OPO&IJE-a zEmO5iXH*!*`NjP8<)H*#HY@5wH$1-~`ug?hp?1TQWoJo&S&AY=X`wAUE&J9XHw{CZ zv2i>1ZkTTc7=;w9mbJ9S$CJIs|B6M6VBtsTDReBWY-WY-U*0(T&jqTJHKF{bc$dIi zS9S5xx0jm$yezq8`yiOXJjcfOj}-#``Ka>9q@mN$?2fzsDgWhn4pq>_-J&Y3Eg%9W z@)o=P^$i#G_@FKg4Y}ZCm%VP0FTR8zq2t{Jd&A1)#SGH{JKIGcw={V6chBU3*vV+PD<+Pqq;Kq!M3?8ywE zLMtM!f^u0|7T_^_m*$HKKgM2PDn~0AClxk$cE>Vam7@PtVr@n3E)$cA9gl6f(Rn}q zFh;v1G^IQN z%X{E9fESxFmCT3-;4TNlZ=BzD0qllr#z1{T6y-247b}`b`ha%{37aWF5qjEZ-?g67 zQRAC=t1&Q(x8cd0L2A~nguj&7QIsp% z2oVws|3G1cr&tDaaR&~+a$O^qUzVjKrj&~3a=x~?W zyzr$|dKfR3aaaT1@eqF*I*s$Q@#H3KdQ@fCEuYRid>EWY&bP;7sWLw#+ULvcW4svb z-5a1A!OKLuUu; zz`Kj0T{aYh8sckg`=1%!EN#h>gUYDmHQ;@#v52oxVn*TE(OnU<6|?Z>hKu^@7K9AY z)PC{*ul)^_2r5P+j&n7VXC~wG=qo}gTrn^Yh!9E^k%2+U7#=A_2d4r@$V!#cI8FS@ zly=_*b%Tna(taXGR=>ilJU}_i~y~bj|L)(nY z`6A{RfeR5qJEEbs%gEe;k&!=F8f1g@6S1dg*~KQyxw7naOz@C(&ER^kOT)FZ;X;VE z#LD#G*F;hU$KY8>jfB^r9fVk}YAl8---9CdkDh3=k(?i&E`;0-z{=Etr*Tf?1i}fp z+-m_|41rDGJeeo>@+M|1NgD*$jtpg^6u<>iJZ+a40|z3s4;}X6rO4a3$ZQ(sm4H+( zBt-HT0RT*{xEq|G)PX%urcC*swy z?H2R-e32jC81a@~$8Ob-BGx_Zuvu=$x@dIbMzn$`pDBlSk?he20PpK?S=a->Q0z7Q z_MZp+6?!mKh8huXD#Uhu`2n-PiEt)So1c9k@S^tO_NQxTwpSBz4^f&>g}47V4Ub2$ zF4O;NH>?Bitb}_cLPH9f;5-QcoTZz9_vgK`K%b-Svzy+)qn)Z!G4)kJF&w-WGzw@l z3dJp%8da1P|3?(Y<&pz=O8;gAu_b5&n#m$d)LSVcq|~tHC@@ty`RUA53Ip0It)RUr%s-ShKq_ zIuiqw%33cPt2TTBc35nrDY$i>q!60oJC=)3;tb%$7bJWkF+3K|2l2Qx55dSpSJ6qd zR6CHah>MmAW4Re>;T%{$Gb|HdVd98cA?KJx(Fb>Q8_37V$Tsa^-(gT=Dfy*z{!AT9d=#Y;;w2 z{bZu1XwTDEjQz8t#w~Y^*E39b6WqPplM+43By3j2@$lx~h+kU;A&B&jVCQ6gGw?Fh zhga>vw>JVWSM@M1tG3pF_r-14`XRLONvr!ezu*O2A8|rCdk1)rY6)AB4Y%3MDs@B@|TvB_zr< z-qTHvvg+QV8@5wr%|!f+J^B@@Yhf%QK1N7|xfuAnQ5IpVv922jZ^L42VMvbt?eKaX z$ClXWp$1#=RjW<#GhD zfzm20eZyjOrGorFkQz-13bpXVcMTL6qKT0Hz!;Wk9VPiS_GQTUQl+e8r5k!}9N@OX zVi$PK6kw0cB0lK!%!aFz!W>Yah0a${=qSrRW2&goFsbyUdlVSX)xq%H+;Cj>6qH3t6d*MhNodyIJNcYxP3 zMc1t&06lB3A>q$YmrtLJ5mnId;N<&KJ^)@6vFSMfVUbO6TB_Bldt@axmufVs2xDja z!~dLc4KIGGCYxhb(pu8)efw`vdAJvxDye^(EZYmU``HJ~{tIBU2Jo(p_ngP%+U*jE zxp!|Zg574h0CIFy?$@zzZIbo*Ue?f88F-eh=}i7|dvt20nzvxNQ?WNQs@z?t8s48= zyG8nY*1xk1c;8!joeyi|*s&A_{p3;`d)5gM2x^u9uxwE2EJgJJ@na-qM-Es?6(yyo z)+&U`F<9)VYM~fP>v}Oa7L}cW7fgtb#Ro#M`4Gp8PW$D>fYcC!YRLb*U(A~rfRJu@ zx*UcSn7^S&lgftVV6}Umtv|2_jm<43do^M0%I4 zf-j?MB8w&rO@S0e7byXct3yS72h{xHEzE!dg=)@-EvJ!Yqh+xXof9bK5+AHV7YJ}y z0EnGoVgU$r8aP7>GC@2!we8~SA<3yBvJf9=Onx8$#Yr5K6_A4^UTPNv{-aDsogW?uuvjF4 zh?jyoK1{b8O`s+?XXD33f~C6PF6R+-gu_yZBrTW>W#R&!@qSXP@yo@S#ds$Tz47AH z=Dd4!ZyA_;1K3*e+o#nG4v#_ao?PSTH>GsAxOAn-Ra{HbJlP}Park1LYGBo+n?G7c zTXb)(f%n^{k@j-T-`y~t?y;w_Z=akE8q}E*^*Gz57!GSG3+)!s=tFQ9H?jePvNS6K zSePm&%QyNi@IF5Zv8vUT+a>zX?*Vvk8h@tUvZy~yPWHutg17qCXKTQ_14@88Dihj2 z-n}Z0KYx8U?5rSr)6vfEuKh}054$uypHa|&$fu@*aIu?T-+WO3!2S8n(e_ypP%bx9 z5J9EY2&#~rrBt?3AGR8zAcv-b%SOw*3%UxEho(WYv>~PZ=-OdO;CoXf3@px;tsp?U7%!eKlhi$l>ov3p0Wq_Vi>B@7 z3;3Cb43LOf_i?!#RvS`~0Lojy6oDSC#_OCje&^OgN+a(kdCevjfGqW@XAqkvbZ*Fmvy&Hs^Hp-e~c{JOo2H~bWCF-GwS8F~GiFY7=1#~)s zYNR9NIxnal;AnzF1lYMt;!Th90o6?tohU1y??^m^2Z+9H!dqd1fZW3Q%Jf;vkDU{@ zz)TS3IwUR@t<`AdjLJp$M^XzYUYxX$3(|4aVS98v3pl#@!i!ps`tBI;OePkSU=|%} z9dH7Tc_cH&>WhpUW!ICrMg*hDdBAt2U#xC5L_{Cf07o#?MUB~;& zXV>#Qe7ufU>6n(h8KQ_7Qpzvh!<`=N9B$Cs3K6`tsF012K ziYCraAAbGyXFp%>{r>vAd-oRy`sK!a+KMK@K6?Rf%5k@b#)KDIyVE#HcInAi>GtDTfQR(FtuD=Zi%HqB*#(X;Mdf zu*i^W`RS9+!!0+97eWta(plHVcHn2GkBf_-k!b6MV06vc%95G|Qz)t+3EGQcBnb_a zY_usjB&Fe$xcas`d-2;hFMbG4RQ;$(?qkZ{Nu8B*y+jO3w<$V{^kK!YSHws17ftIt z`la=-RLh`kDq3S1_Iu$Bz72?Gq2V*gz2z=cg@t=m@3e@YC2gnhrZ*z=aa{LLS_1H` z(Q%N!^#E8RAx*0%5VBxwUeR`ij(m`4^IaVJlh!eK#gVQvFo zm-hgEO#!KcCmHW^Ow>gQr)Bs{42Fb7YQlT0NEmy9)1b^v>Xn_Gg)?}0;>_uBU6Yks z`!{P>!`?Ph2GcfeNzb{YuF%73VYj#7U87xUAt|W16wE>S{{Hy?e+AEsk~l=ia}S{B z>Nu7yJN9|>?!5EP?5DuSo)?|W4_I1c)xXGogk*(V545MTyZ22a$?s@AK0SvH>fEvu zrq9A)2OAJ2`P1E)laR*HeX-z|97p^xCOSYhBA+OXsM^2ZSBcf?JqAW!%_*P$QXr(Y zJ4R+P4g14;;C;KAXJ%tu*PHzb@YcHb>U|An;GW!E{l{$_ZgxX$qEik%1Bn!y6#{-O zyU7B{Pioc&kNo-rIb1s(yx4RPx-)$|$P9F+~PPUU3l)zUUk25(Oh7B5O$_s7#e=DhmWkAC&*@04j8 zk^#QTlA9e+wSP9?Wz{;O&#MnO;VA>KCQ4V8PNXCt8r%&Pu!3`84Ix;jDxBt{IPAJl zgX>`?u61!PDWSPG-Q2Vp^wR!`?Nk|(*&QL3)A&;qzz>Zil1ijOzcgLa5pHgNvLIVYJ2%lzx z5nnTAg^~1Yx4X#3wygZUr&8BmUL*LjZ#Y?r4L4(zMqLv&7Qi+QBa@m*#8gMP9Thr` zjGCrN{7AslP^h#%3qnK3|K@*X2)BFzF_qLSOHX+_q5{6Jg@vV{c?__jzP9kLlT9Vckh!79xxDa~2VnL7{fpI0ND5%v zbM;$&_f@4mef|FZ>!+u{` z{Og{twx_^*j@w?WE>m9Td*J!HM@ve^V<%^3=-MsWC74ORx z-@4V=h2kpZdVYQV0C?m5A94DkUh_riMeAr6XXnqK&U=4xdUid&vEln4fA^b`4ZxA( z2+~IbEsSRvbwk~`GECS2R>!ioDvCA8QeieL1%3~Yxbz=?7i>9wC4iEDUgn^a(S}YP=YVVp2hE6oyS7Ca1 z!?PdMqvp_s-dY)U;yZH&$jm~+L>R>xs;H{OrNC_X^!;eEQyVPIa^t{56Y_ytL_ zp(!NSB!E;80C)X}{}n`|jCm@owj+TUzH)dgdOjzg2>)hMLz-`y0rRKR z95S~1Zk!_Gg0lv=q6a~)-s7=)ux6+Mx`=Of7-81!W5bRBHlK_C-Tim81Dw2GeTGW7 zKTLl8`;*=ptzX_heOU2+LnU3)?zT5?9|EteV;Xby0C-=hMqA#hF+tMOJ2%<}O&i~J z&TS`XJsOLiB1!1qp4OyirUBcCPsoV zG^YU<9;lcK8c9rCxRvW;QqxTYMb4?)~7R5w)}JY8~XN}Ouyog2f5 zZ*mk3jNKYb&$H%uK~q9t{ZLTn!9qf#&}Up)qbN-&5jqK%PDpr5*bXHG>9&YbJRf2A zwA~daU*cN=A+l;F861e`EOiCLF=Qce%F}^lc)q28RVE9x#T57%Z}l^#Sr#EAz9TdE z+pIdi9sAJZT;#B_cH_PdKw-j=c`r)IA~h8;sCXyGYgEZQCiHt!+Ja@kIb~)k0oWPA zG1I|Dwhzgp%jc~q2LI}C#rlx_(5Z2#6sbB#Z z?@^}qO^-;3KR>APmVj3Pl0R+tW&5|s!26{4*FX5$z+3kw9=jtEKBo=7kERR(adot2 zH;297p#J&UDe#`(L*o;z&b1|-M6Q~u!TF`S7j1nZ6_`lsZ{SYfq{gx_u$jI3_A>Ck zf3iB6H5hdCSL+Q{fmhG|OW>`-=6W~*-b+yc0^Xa4zzZ7adhGKf;C;XPMx!_owW{FN z@VBoCydO?Kn=^p^(ua&!lRkdm94oES&;VNF+z9gU=mw)wti9oSnZ9(j8v?XkxN1!= z@8-UtHV_O_Dt=wTMv+ct9JgbKQ-8p^cdQ5d+NL2pnuwV=foB~KZE1sbx!aX6bx@G@ z7FL0!v_sotfU60Urhd1C_G z2#-<&bJh^~d_6sRvCPAtPm3JW(=H$cxusv@t-VGL2Tox$7?f22Q}mmvXP>=+DODKG z0E@87%qbE0;@o6A0bZB((>$0~G7##n88?0F2RAs!a1*@{g}wk@05}=soT5Njz^nM~ zj2b%^VJ+^4OVJZB9Lju(86z1t8)r&FaxW){$39i#A}T`Am@zA9PABUgepENk4Tr*e zI2OK`Y{O9u^>EY8ekA95D$`&esB79sS9*LWn>6Z-Lirs_AP2FM&RcWdV4f*K2E~5TN${GJRd(efPD1mvrzC zejKmX*1^a7E@`>8DWSrZ-BnW?Ao57@EU2x9(4Y~4dQQ|<=pTYTkzS_AF#zudUJqt- zDMzE|(3~?wt%5?eL1#6Q0Z6%&oQK1ZrYVuQGcFGxpko@kn{69zzI}+WC`)4lalF1z zrq78ZoW{|eL85wB1~{Nw zmP4$5Y-;95!Z8t0jkczxe_zeF{S2)yj)aJ800I(8Mf?igVmnYV2MASTY924kH$Qln z4G>3#>>Y&*q|F$h;2WY_u|s1NC8=pQfK$kX`;;S7hBCc0oG-;W)yqaIginQgP{;z*%!=T z^0d}lfBNI;ckea6-xcrHZ`!}zH*#L-OTJ7sn378Rv{dn0bM^Is7oBaFw>MMp4i&m9 zafFDMmPAeLx)N>Z^7p4hgHx`n7@6ut99H7*0xBK0fU$zqNhvx z(3-KGV%>!9=BDdfXPUJgjmOU`X2)6|nBhwoy-gjb!JzPmE)2T4V3BR$Y8ssOXiA#y zfIfR)_jEx(snCFRh(W$^b#oRoOI6`4D^r0aHqGnO^oKhgFh<&dR8Z8GJPlEmDfojT z+s!rs&2rTNC)1_kwVt!Fgaw2e`6p!OZdYUh=IDV=mtTf zrYi8%a+?r7OHQHT!Z2eftd+f_#Kz@miau}-(T|y*okc!MwZJdj`u=44*??L zHs^6U*48PCgTRGXQ_tA>{OxC4CBAx1am?QVp}DlbI7n{|?qi0NHu-0(C#awDTO?o78YFzB1?+a=&V z_No?u_x9RN;C=o2_1O~eUPOaH&(DBiOTc@q zr?o8u@8?Z()h+?=``3?vmq)w0N=sBj55F(j*_!(3A-Tly;+5#9wyy@>*9#x=lU4Im znak8n;6-v?MCH{(c8gnadM^dpd_F~kDZ@j;{oqhzaavQNwG<9bY*P;wpW_oanAy;U zmg0uq%bA*3X4n zgj~dbYTa#I=sgO#0-o;@K_;~sr24y2ueacdPpTEv1nek&x7MkAbv@cF)z!2y9jtC@Fif*Wwj^>YS*HG&v;2}Y557v5;fwXC=l-}A~+9; zf)tje#A6*e2Jp?C){6*Ko9DIjx{Sm%RGwXZrdH z;hruQLqeA|#!{9z-ZML{-#!FhJz{aINRY%M@=k8_jUR^4J723M5x1T1$6+dxNjwBz zZA-xWl;e6=>8|tlyVdIB-2t-x;8#Kg(37y>S*Un{d<($)S&qK1H{Un{(}(|9@t&=A z3&49}>#HS>_dOo)=^^l{M7|D7!0X|N3*bdu!_lzeYgW8x3mh*={)G>D^`h<@S~p76 z*n{ZveLqXaz>r(Soi(U?0|Hapn|v!)y@sO$v;5|C5g=-_VY%BFGPwPQH6X_*dLldO z=rClsJR%69b)_rD05oIXcWFeSqL>2OPlq8zA_Z(+Qrl*Sls0shfx9&M^DaYatFJ1d z*Y^&t25O(#ydU$IyW~JrqHt7nnbT?&{csz*?T1}EWdku9Qq#c^Fxi2gVQBs|RfEZl z1ZKe)M6Z^Fh}?`NJjHb2G-Tk4tm3BbnH~m706Aq_!#~6&i0Z1102hj02!4UvarZ^$ z3?TjAnsp@-y+L!bsR+E165y{89P)x!bZxFLRsC{5(}$%Uo9{Fe7Evc5vARGyT}`*Z zo46AeQxygD$f&j!%d%|Jb~l9RnluL7fPigLeN{p1nw;&7Lre_T4d@+|_}n7d@K#W=@lSq86Kl-sp}01PG(JtwxC z+1+2EIEESVrY8);$iX0(>KcK&wt+g2T2{I=ST|ZkxBH=#q0N$sX0W$y9#9-g{^LhK zDBmBO#!-i0LpzYkjTYiFn?8Knw>h!AbG^%& zrv;usrBrs?-C=jLo60!mVd^saiVo?$q3K6hU{X8byhmOe)JrfKxxRjVXjcq^Ko9XXsUf_o)OSpmFdHobha^O z0Pk&s4L=iq4H5h2n}YxaMw)l3z-7--Q z1aUkK_o)geMshI`OHTOd=9@tAwAsr)a-K@&zdZ1sJSa!w_(L5+tc1ic)r-%247704U4NsA+~xp29{f1eIt`!yYZdd~;K4Z_5vz8ZM1Fe3H{cmaE(YnFib!W-863{x^_ z(kgKoPG?~~4mbN2WfMK#eQ8kz9Hz0!`_>wA7pJNQpwd;0xo!Xa73%X(AAZpzM8Zx?{~bCiNIF8b!T7l8L= z-Pi3B@K&X*zVirpalo{|@jlu3fHgk!U8vo!A2rwTQB(~KadnU0pmwcZ{pKO?>K*f? z{9)HGw8h7a0!8KKn5Y<4v7SJsZzOHM-*{vRDdDGPV>j4il{5Hy^Zm4H47}R3a zUM&*>I~qt_VRVN0w&*K>l8tS*FVUF*Swq1G9b?v)ob`ui!9?jiR8;sew8?X7C?vT> ziCblDI_}=JqXm2CJ!+A5VCouYDN;LiXvmnxay==NF9L^4-G0~Q;c!Upwy<6cG)D9$ zwRs#F_M-#_W6H!p-%v6}+u#fsvy#Sb7+Qz_DILFM)IA&KeS@X2P(k;K=CY7GXhslZ z0vdAI@ZvPsi4c7nn@2mtaBt24TtiloDsLMVz5taZ;7dh-dao42Z10S)*bM~bwG8_) z!F0qiOJ?7UhgRMw>uLe-kXdIFu}St4(1KWDK_@C--Zu$7ohgSQvE;;s$XdKKh-ZW)g60EaF*ekf#>iJb}i39gA_9J3_Dv$F+0 zF(Yl=ts}fHpmfl~#58yrPzac*Bje;6(HDfV4{Y}-4_|Zy15r4ngTHk1?bFGrbAI)d zwwnHV4++<+C;zG9?fYfmeLhU?drK9sMR$ck9@Mo-8Y3>(RyG`wcfyNC0yIS(P2ROO zOp~ko&D#awttKce|MU=exr_0>FYjrBcdJ!*Z-TITO+?$&igq1QPd~1BKSx6E^)DU+ z?~7yI?zg)fQ@sehsPk}G(>#Av@q&P^?D~M9cPVpZs$neAGHjGi#H-43{L<1lazu|F`B&0;Mx{xH? z5WM@c9|*G~nOUsT4M-gKEv|BEILhpYQ6$m~dt3v8QsAb+xdf6x{*%1d+-KtuIyO*h#x~ywu<+ZuIr;@Ao*w7TWvOh8FQBJAU_iuEow*KVE9C`P$ee;5{3< z@Utc0HO7%YQRI>H;Jny;7H2h1M=Fi2LJjK~Gwq6Ji@3l3%>wY&6LMLWfR{{J#cEYv zx~tVCXl?!0h~&Mh*3_?A`|8_Ezzc!tn}v$^wKYxH7ZZy6*#hvs>c<9N1*5@nmpEQ~ zIV=G0vufSEc?`VA?B8#?CEz_`DKe*&X=axO=(~7)Lk7vL9+25RYmZdCuita!?R7j9h8}xyT|!j07jMT|vt4NdHkJ z;DBlBO}&A*;i@(k>0y}3(sKn*|2+)7HeQm>0x~yfv>_Ijo#4$VUW!10pkXYR+Gyec z;PuAj>~f|q6KVy>(lQb)O>R+}4b%Y#Xn<0pB$I);YG?;i*14OqHKk1sb8*h10|AG0 zO9fhJA(qD%TSKV{O`d=Y$SIQVL1tlI2~2Qu4bBLz4-Q~EXBFT`vI}TH4l6jbS=W@5 zHftXZp0}}#7bkgcz2&4utvDIDPu6Du!bD0YqVyLTpaPYGuTmm6E&qY1#IrI8CdpFd zM5+StDGC8dn(!bYZ5F!f$awQIe<8$cOWX}SM@Ewv=DGidtNafttT7f*73p>eLUpeg zhFRPzW`aMNYf*;e1ig7b1n~r804^uB5$7}SaNNtyMIozFG{`UOM2(AJLd(V*;FOz} zEa4X5Whx2a1#6&DIbHxwfu+Obbfb|Ig)V6ats40*2MMQfno37+tcjIip0TB*;woBiPX2BIPe zmqOS1G8Nw8=MOnvRlGT*#fta+8i~MEze?0_ecbU^{0*ma-wO)-(au-|-pdBDxW9Wi zPQuM3hcd<_|Jx5V3Q~jLO#mjp3gN2Is%Gryzzx&n4kH7f%@#F75ZgFlC@K(KL3$g*8x`Y<oE8@n1ECeuHc7ul zCiAPmr)L!UIs|j377HicJR>k2BmBMm;ZF2R{+Dclcv}_DT-J!a$lg#a?1i(M5R^n% z7hrh44_2OMkH+k3QvCiR{)_#krSo6NIE ziGe2BW8k&xy51~QysJ9Q%+&SwmZ*jb^<0Ih+-FP8wTrr12Hv_cuTEXv2)yheF6nsB zXlmPd=j1b3Jpx|dX}wk$lK2K7^vg%UOJ2p+m#;p*SljCI8EfDfcpLbaBX*&=?oH)$ zg0uMk5GW8gXzWg5Q@K1cResmP36Lim|^Z1J*JO|cmNy* z@n9_9rtT1XxMd}hiMj2jqHzka`x)_+6nko>(Yx#MuEKW5P=4lyDSOQZ z8Zi8{GCNB#lnzjsRI!S+1tPZl0W7T~2sw#9AVpg4#9@F^6|2PB0TfKcZ5i)1ZWYr* zJdb=NduQr>;Wo`Gmu@$uxjQ!>nX8hy^A*WM=KzXG{Kqh$HA-y5odnS%{Evi)qKW10 z81WiO4a7_Z9H13)LN)RLvebvQUEAhFA>1qk=E1qS*(_equADh70o*)DE&C*Y7f-Ls zRn;%B`F4~8H;UcmY#sg2M=7W!M!v;tUKzm@X;QC|p`qke!l9P{>uZt;rg}j>E5J(xG`@(d>Hgqo#VxtPol ztLD{0#fysg;t}woyV=yuoBfY}{lnk?=*K_);dg)gQ{2c8rW%$iUPYr@UkcXjy-iCM z?^+>rFxhUZ3c3ON>g^KnHnbo`-a=D<_8gBE@b;n2GCP!SvvL4~Y0&=cZBOTYtpwY3dNvKqH@@Z=0$nTLrr zDF9JON=TfxT_OXlUz6M%*i0*gD>dW98Wdi1+x;-K1y@ThxK@a-gj`Kn-1g!4E1yeO z2l2}woS{4%rXg~HA65TSB+InmV0 z1(EieC2zYQ@@(3SgUGu=5(jLu2D)W6!Yr#ujsjy!wTZ*@c#x1`%JjZ;`;9{0&i1OX;9m%?<@ju z^=4WEULex-tC!C%pa7GwcLv_Yk>Lu)7S=Wxy>G7SCN8TQ@M6$?11&fYy41tShq@^{ez@>?eiMDz2}e2T=U0^xs%Qm%q+a9I6% zgWF^ZkfSkhLBWcc6>~e4<01B8EQyOv=RnH_dR_$pgPgzNLLNizru}Z08dM5HtWCQc z3}aDD-5)Vd5snu1j-jb!gVsu#0vi;K4GuMqCONRuq=mKyo#gI{<7Ut95vm7QqOI8c zpkB1+bT*B56lP_hUV~y(Q^q~B+%VgBT^rw@Whj|TN|^vjm4R?G4&9VOn)U-hQTQ53 z%m_h+o+@LtcQ|aP(jD3ilth(UKs9g^@XiMkl>x*R2onVLTRSC}hJi(R$XyFej_ira ztbvci=*t#g_CRRj3n9fzO#^Qw922v7i!fAjv>13V0A~u0sTV5sr$Z)W2d|N5@)Od~ z>7U09gmT2<_Ygk zN@VjDz}r-t#z34pg{$>?k>j2HU@H!YRXu?B@_S1aZ(Rdh@jZVCyd0{g!CmmUYL$OI zI*ysC28L3#Z>&|7YAOqu0jP}FZ8Rw0kioE~SplTKwgli6K$tF*O=H!8s!R$7tM@#B zp4@LgO;p&HsXgpV%ts`?*#isq9grbI2E$| zrUVys)yUjpI;kIl2sBOv@P<6yY^NBz1ZA8%?ytvT2*ks>vaVz$x{Tt|Zv3Q6!BqLoq&~Wz_SG#KAUNqcfp`c2+4l%Qq%uSOckp z4p_G`=d?8y(`Pxc{V3%zD$f+yD7)>LOT?x!-3uS5oM>FnIiatfo z;qAWcZl!JIHfSROp(Pi?KXJHn@X3dcAGh3s3EAXDa5fhL^C$1@1ibWh(Lv&HXte-x z5$3eJ&WS2!=^WiCKVjqNgblXZgs-?zl`NKm#}m;o4mVQ@Qo>nr1alMZoREMFixa1Y zkFYD0IpV8Fz$+Dm>z9Go*(DwC=g#Ro+fFS$1~>NNy5#3-WiC8?cz5sy{lDpE-}p)_FZJc%S$sf& z>!P7lmt`C}!)~l=1DA#4m9>py*tHg6xlAt$2FvN}>dMd%%)4m{KDOiyr^673{h=MY zeK(}kw#miz2#r$-^gth7?rv_TwjH*g2IsI4opuRbIke^i6K0_h8}{G&&buj?VLz1Y zJO!w5T_CeDHil{;l&B&|!<^qJ~RtVkF2TReXt9%ro zR!_=XsrS`Aa+}%gEUkdJ?6*Udf&!b+R+0;Da?a7na!kc<(Qo-g}yI5i@G+~V>IL^XLm?Osx*G+ zigON8y0tk>zOm#&Ly454;}y`Ont6>3M2P$CcDvhtxH*(qwl`f46hx-B>n2DYfC$mK zG<8E64sXBvDOdpjTU=^>AARyrO)`t`7iaf-wFO#|hH-jf;-^x){4OLdT+2b`F?Sf$;;u z5TB_OXBzh4eTc`B8%K12Vu>nXZ*tVxVggBox%*fP_1<>qwVh_kOMojK^?c*NSM$?R0XhRCfLp9^7z+#wbg>^Yq{l& z@^e_Ll$(40(vvw?pCHh;h_D*2{lyZ;>-<+%y!B#pEkX+9Fs2`FK6D{M)}v(wUK!{` zIOzHAi!VOhY`gste+xXC%QPK^?=Gksu1!Do^&;?kbM@(-S~x%6`F!>9WN7$Y-8E`~ z?1HL+3M&_4zfkc)W5rw$d%0BcUaEk>`tf3^xpuLx{C)v=zX8)JMfN`g-e+F{yc^?f zV=!u3ht!6$1iTpa2P5ch1Z9us7usO`;S5#;I2;B+>(CAWZ$Oa0 zUcqm;nbWHl0ib;E&^PQWeFU058dHLL;w*`Pjb-kMiA7-j3qBPq15&>1mCkBSti5n$Xqm%7Xf6U?{A~C845b1OA@C(Mr`stxq7&yixLZVWlGIFw zzqoqqp$3G+jin^jzp&ha$v073!yctK$!>;S)0gB_kWvaolQ{Ai^KiXIK!28YXMUJ=OI^H8@ z3_<^6`v7>A!t}gqfP1wCMFqpW=DK2Y?PRf|7wzaLifY@|FHTH52_Svbh;&p6Df~eQ z(ZG(B4KTQBh`}{W#)fvYqHcZho7y-kA3WXr8$6Oj<2WjvqeD^Uz$)IhQf9KDv|WjSQrr}V778$;=rEA)K#Nb?jx9yk; zHc@~pa&{WHhLEj~YUMyxFh}O3QpU#P;?#q)t2l>rPY8z-v<332*J|7>JHthg(b=s3 zVBBzk!F!VJ`z_lLOXQ;@jgUD{AW!Ycak-v5==5HF`yOH^h2eZw_V(jl9sCc3d(AbR z``uTl8ot7vY{)-91>Wc9XJ=>U?*Y6l(0dLh;nLPUg?U=$@J;l=eet_L|M?fc`|F>+ zRl07!KOBbOuHP;I?;3QBSp;4an;)K}W1d6E+ufJIvqW~?TYS;Ya zK_zUKD_#>l^UQtogGG}Zd(|!hFZ4(oj^EqTUaIP39Nr@Ep4*X~FmSLvhM5j0z#CRi z&#--Cv#vJP$OX9zfjJSU74M&qX~@WXTdi|oq6F~J_toYamcw;@UD5f`k^pGxv1g1L z)KZ3^V>tzj7Ca(zd4QVnG|p44VEW1qiB3gK-f!FE??ZG$7mojm37X8xsT~|;Wr$xpiq57I!7o5En!R;7JMVz* zk?VfYgWbP4yBhY$i8JYJNCLTq-7`KPEkQTiu-%Hfu@p%|Co&MR!~`}R-}nFj%BiX} zCZ~SMsCJaw4sInd*~Qdw z4aSGlG?wYI0w-V;0OVm>Miv*r-~kB+QX5%0GfZ&Lc0$=pZ0ZbpX;wz@69=VhSd0J* zFujZ-o6Hl(EueH~#w|SD#91(Q6vw{4$bweXsr<_UAw%j*W-eOHnNXVn%tB3kMIUin zWG+pH`VPOYSGA(?u^AZ)nmC$Uf8Vf zAtjqh*vAbZ3CA0QA)B+*_rchJh2v1V!tvqM%+^>rKFa=G{tJN5w$FG_b8G-sB@X3L z6|jaTu)UU-#zGIN*d;RKP=sG}g)wUZnzYSit}H0qO{A;bVrYf6?@1nEEKH4~2I1ti zCW^Q^yg(}Ot=x9u+Y|792ZlgUF~#S*I$j&5m&nPk&M#+A9*bxPQ*r;#!R1LQE_*Jyt5%8w_Q#DHQ zdCW`OVcIdtA%pD99`OEU)uqar>le*6o>iPAN-|@7e-C(_d9&T48m_AvZ%JIc=N@`8 zt(9un9iX_zoGH8xDx`5$`lr}decbntZ(mKipc-Iv1=qGe=u<{7?zZjzFkP+By?qHc z&eR6Fk0RU<8e1?LqGX(@NE$#%2Ko{}JP?jB=Wad5AdtQ0Q5-V3bag%VVX8@R4HNqE z`1LAlp=)(47wH=X?T?|bds3n+T0te@{oa<++}zGFMAWjN3qw0c%@ zh_+nY^rfU2r!dB8Fr?a`Uvw!ci7naGyz^{M5!IaL3Lt{-@6uos+G-`m^~*qz04@g~ zJsiw{Y!wM7QC+yh`0L_UtYc(Oau_B9% zoX-%iNs8AM;wv4?63$TLUo00}RWc%+0K^bB=*j|X-Qr>_Bg$3@y>daF3Q$Z0&D?ec zh$D7ZW$C)Mn<60a9Y~5t1mUH{e-w+5Y8Xq&LSJm(_hayc;H*84_>EW00JXk!Ra|dG{Y?T2)cCJ*oR7DB@+ScgZP0XJF9#m+;96Z@j;KP43Zpz zmZPP_F?m^E{&WCn-Ad~yK0^tdGP`?#^OWT2n|UE5f>`CQV--sm9<}S_bG*^NAUWqxVTc*9TBM*B}2($D8Z2S*`k8lUe_4OiaVs^8^!-BXo%di)<+fBNV1FR(uS z=A$e9k5#ksHFk^0m@LdWN`CkGr_aCp{`()k`Q}~ZwP1Q57xg<-L&Tf^+dYogdVfD6 z+yi(o9$wy?5Fcbv_6YTvnf&E@dph3A_z6__4)7Wa1weiI;STWDpuW%!G12W*ypWsi zR=f|MUe*S4OE{_e%|E{J_8V`!{l`D7mX42hO>#h@VsjcFOl>;nct8G={^o!F^!f8| zovLFPBK55W1P>bgo!U{Z`~!r;9BsulGuuRxLseImLxv95#3F&Y0WdOmxZEde zkaE||O^@Pq>G4L-7HXI>cRebyq_#F{F^7Vt^rf`XI+U(7Aa7f16CmG5{aZwFgBJci zak*_qy*1F*N(d8)9N*0*f8}EAULfSh|+C(?;p?c|bBAIMKVHCAb4C+P;kI+S+SNKN3)n zWp5g}GjSJR0`t?CN?+cJ+oL$vxtby(v6xZ^*2SlRxC}}nsr7dn^^hHhXk^j4)G740 zvy6dM_Nw=`G&%5jHTMF6SMfxWEqg3(yy0Y^_Kj1=IY9*D#bHS4cFctn?~61d(G!`? zQYm|79(;1$RInStSc)?{F3DOs8~43elV3zY1!{^=Lr{_w-MUwrXS{w|Zwt z&^?dxnPx`*2mqM|_rm1bN!rRZo9}ii-pgw8C~Aktd%%0$%_EgAn26g0-fG{g;dQ=c zpI*!VkH%9KFnBOmdkGW|s!OncLv%39p2h%le(CyQB@R|ooeCqv&5KX{ghf-bpML!Q zo6pA~CX4t8P1!mE02o~Zu^(sMQ>Y~Aw{*D0RzMy4XqmpOaD*441IM~l))~?hhO#je z)&t<4nK-`>X;msq8Kd)UL75Os8RzEiS%<06W=>;sHnywAwJZB$ZQ@(V~k|Kvk za~k8cE}Tjzb3XL$n%yDA zeZlb^tS{PT#>nUrF3WwDm<6=2N`_>Fii#Th1zW5lSS?vgJqy%^nd@C}h? z76P}TI;AZk67LDrY>!2?=nCUSlGqD^;q50)l98DVJ3w2d=C;pS(ur+D)xF}gRp|AOCK_HY4Y26R4A|K<6&N z#FTfVArtYBFr6`9-M{|=nN)SW%`Wiz z;D=@3oeTpMyGy|Plrutdy0rQ;$aRkVO7}5v_tP&w{dlasW#U}CK5wqA;}F09{i=0( zY~fV#{V$Es|FiZ_KfD(;(0*;j#ruCG+dbfA*|V7f!rE)H=9;#vkK=Ci4?5%=D?t6;DVz_2t zIgGIu-&%aM!9kLRFFx6j*g2(WD*egvutzi-yw@Ga>vF)$ukdUyvIqcGm61iSz%Pjj zU^(1s`d5U6XawoYAUZe`>xvq{W+Mm(azGgyw))-@u?faWWwlrdRoB#*=qR|YTSrpj zp70P39^H9DYQY4v#lG|@lJGdmB>2WXiaB`lX-fCc$c^+astnjH;(EtrFPUT9aVYEM^+1t;CpPUsgV|sCiI)rrTi;d zQ1IOp&9nbGLFV`zL|9byUy*NdIJ#uazc)cIyJ>YfG{5tSnTVuSO>8d~d?+-7m zpMU=O$Defh`}q|+f+n_OwFixFOlEjn`96BeZ)fm(7ccdzoDwHM^0ucf|92Z2zLd84 zoRa?b<{hplpM3b?KR%T^v6eqE$Q0=sOs?%FP}CMaKTXr6&-Z}W+8y9U`3+>GH+yY3 zmK!~qD|NjKybp%qy3!tav%U&=SAD`H3zqQsc7LmTwVmQoYad~(WXB$TFPbPQQMEPz zh4le^i2j@00A!)yfwJe)H-y8woI3aEHI8~%V?`9xQyus{okLXF|puX zI3JqB&79jF{B8dGx6fA!>WiDPX^;clA8zj!=u9IM4V|$WvQIT>fU3FaZ7ywMRFN?b zVl+R65%P#0@ogA`=KB(R*S@*y+7R2mc;jXB9(TO-QgahM{j4!n66N$8SvFJyo6rFv)YX&~K}2u^paTaQ!PQ2Ry?6_-qR8 zQbyIX!c{W8t!m_c+31H87tE1V)Wr~^aNE9Qwbw+k7B=tn#jAh7n*Iq!8lvG8)&raz zAdWuk_`X@TXGq&Hl`QgBAdV%BrZEJKD?;Qa>?S;xVWto5+~ZWz$w&xK*x2+K;vkft z^liE-YO_E%_#;EnN=!zULE1Flb!-xATP`J7XcLLn*ntafIf2Um%$q;im6QM{sq3jz z^%APV4&83W8|{a`3cPi66MwHUSD(Io%e%_5KbQc#=MeVx8*jb!#v6Z_`u_0I&u2%T zjuo#TjTi`xOZ-m2YyRh4K}TA^8dMDMYIx=PUg^Y|i({96c)Sa|9K45HR@3}x7kJ&% zeh+x5C#sclN?im2sQ==t`9R%eQ|2@r0>p7eMiv z-1Hu@s(_9V*-U!RIO=rk$r;*l!ITF5_KA_Xz@AzjIsl5kOoORdq&Xje;jHJpAvK0P z$r5ZH12vMywq3HR?d}dulWiOew7eg$ZNhbZKC;u3a^KB;n~*81387=}1aTPr&jUE`@Gp$9tyAy%~#$dQQmsrsuo|%+a8q!9Sv9dWL$#a<4cAMI9GSrAwObq5nVokz(vMB+= zvo{=a)8v~^mSgCHVPdgGFVJ~T57I07BC%xco0cFWoEcku$9-a^>dqwKB^E|a1TXZ1 zPh-Ir0VD(-6(6iEx#OvJ2CqOiqRnd2Wx+3*Ue?8JyZ(R(LLjZumA1gA@Cvd9vRlv6 z^r~hRC`$yv=hr*J-6V!6FPT>~DZ~>d6F_;Aq1@c4rj-q*jC=TuLg`v~xZx?i$VU05 zlBuQ$+VMCv7jOrAMLp=4+^loMBSc)a^{jAN0h*$I`Q`-pVkwL$a*{F%vNkYfR{BIG zfZ`#6#ad=ed%#&HL+ylY8LllBfo)pT0k?AAkJm1$wgD z&fuYK%RK`z^U)Qr9^K>Dd-yFt3k(pwKYi~dr>axaE?=&5$0v6(cCgK(eX4;1O+>@y zbKpHO(=kqm9jf6EF?zaL=$o^u-=I}q_JG%MfG1`@#kM3r^uG$cYcd3aA#kPZUHk!$ zy?lKKS`zIfH2qVV+kn(wxtJ4DD-%asc~?P}OO=^H7$&k84Z1?q{}Z2TTp7S@vWB!P zdK%iIUJS-C5fGzBgQY$NzYAY8l`*g2Sh_hWuBP;dFTa4u@Vh@B?wYo5vQ_4ycO1sG zuy*mZ`FDs?qd3#SnC$kZ$5pGvbv#~#!Q((%)R|IydS~0FnWOEOz?2q9IAb)JX2#Lr z5lEDP3>f&0Ib(;oW0KUis!6oe!?@&O2$t#vCaBbWoW6TT`F@i%k1OO}iutDPqjKIQ z0O8fIXBq_~EnQV}(Ze|z|VB_WzP z=Vsx0ho?S%@e<%QFX4DWHN1TNv*K`{g-hJkmoMM$)&;gpa>~C(8lRE5>$m}z3Agw4 zJTg0FD}4SN|4wBiB>ndCRTZzW`oTl3rvqCcW_r2@yl-2_roXGINAK?d@8c9*vu6v* z`~tk`sbEo-BvdJ;+O2qHsyR63NQdEZ{_)pT4c?*E!!almruYSq_QE>Tg}lC;|N7;Z&%gWj+rM|Wcg?eR@8*SkrXMB<&@8Skf#QkI0QBs} zSVo+0n$%{MH7HdF$i_eeLobj$H9yvu!_6VoE@L)&8|YwMfWp_TBj-C7Tbl{M3wf{) z^!>q6A?PsP!VHILUKPlPEu9OB+^Mc0@~AI?q<*?IX#xiW&?V+lO{O?d!}!inqgBVN z1!quu(+$r+|2xp>l1cc3_j-YPxFDwD8|Qn4ao(oVqudk)nhT!*178?c$LtRqtX3)-RUu}NuD+chno=N4ssTG%TP z7ZpJm#e?_eJaCshfc?p5RdCFNy0anYB%D6FNR(z4FCsvXsqGfN1n$Y89dhMy9)-7* zjpeMio8JuEPbQaglRx$X`8aD^_0)2A7*QlCrJhF*n3y>V;qb-g95ue0bi=1a{SU#A zK;b{ped_)t^j$zvTC-;hSqB^KKF6ydi*vow`TFmFJhp=}V7B^c)90^* zMty#0)z^a3b6?@V{O%!sW36x0UHiR{2t~a5=+y`R`3(Rh7UnJ>t{SHOkzwR#G1A37 z+Vg67)4JWT%hv~ZgRxDH$VZNQ!Ti=tm%AJ<%OoZYT?2j*@BZ>X`M1GeF>4qUvhj}} zJ$wFZ1@Z@%P)NlRjhQ(9if)jzK;8*H3xK5%YSe^KBG6GlGS+KQw(|Ivc{+_^6ni;1 z$4bsv*0*t*eB46CQNDvDa4WFzMZr6#2d z2JU_)l-5>L%<#xzfj$gW_SS}$x|6pRd6*haw3=mY9TRkTh6;%ZL%$wMU4^f>fxxSO zI0$)ww}y-_|6)i1MIZy8uUMiU@#X3ZuV%W!r9U$xcgjiT#V=^3U>tXH3(0R zM{~07rpo{wZNbi%w7CK>t=QjmBW8!k<+c%rD>&aa*mwm!EW#r2SUd&*8Ix;h^Odd3 zwtk;)o&e3E^#K(DDDGKD>s*g;OZ?un!J4$lOP@nTxvN5#K*|(OO4j(gn?D4j@(bW|H3RU%bLfvpw29JHqyLs-joFqJch*IDaOPAr0{q`X)+^!q0qJ-6OwzAHB@hiYvS(QaD8bI7D)=#8(d2-d&-+9KWgNbYa-Vg47zYRtW z>$JzOsCcp44S-eaQC(4TP(9xFYCv)pNKv=1tfXq(^J=Io zrhU_%5#H# zU3oZ4)&yw>$wNKGV6H=kS*{H(BR0I@5f!K$}pOxlqHPT2z3J`uB*s+#U!{m6=es1+o(Smu3OQ!AFtj)p9I#o@oG) z(Zb}3Y7q++GbC<6dMlkDP)}^JlmGCqDvj0Czw*)rL4VZ;v~3LRl)Zq&6k*Xkb{`+uEp&ZRq zUIn}g=X`hs-r>`8_1RzeqQ80g&OJ!GZD^Q5;V0SG%ciyBp%>^=wzpU&#R%DD$Ex%x&i55-5Kx>4_~(aP@_z)2V4vD zgikB~bpEG&@Q2HKh)KgaC|~6&j{Xt{Wotx?8(eP7hSyNwiW--mY11H2Sy00qQ?wIH zygFpRxumDaDmPl2yE%Io#_X{mzoGFSo3A0XNr@8W$=^PB<|CW~`(-H^Q=RRM2(@{> zyY0Geq4=qdk|Qtz(LruJi6%7z>0J78(*m2G+HE&4#Se~`#a&Z8X2FM0K(e4fXAI1^ zknr>h-gI;coPf+o7xF1EL(qi)I~+#N7+E>uk4({XofjYS#9-lpm2nId*i~4@;GYDW zf#(IZ4laRqnaYSVn6nqLq^rTgCB)g9i7lXcDuaCIi`;iT*;Vld5D=7i-dl2#_6sPH z`xXO$f@e?;x{a@XDa2E<4I6nur+6ZBPFlAt;uJ2sQoMt|?%ZkK9Lp zSaF&T6?&1a>V+y-6p31B0>zV^yT$kR?)@hjczTLVLIaRFMwzt$=Yjpn^ap%`hAafU ziAL@x)K%v$kh)6WpU-xI|W`tiO20?=WcX?nUpGCT}>wvfNOHWNJ_&`PNl{!PBn+CAXCFv$)s`f31y z8rwL(V3PCt#cSv5V%%+_X(uJx{d16i;nYo&b1GHxAF0{{KZqm9gSaO!q zqR7O`%Z#aCBCN(C3c;uJ*aWNeb5{tbL{R>n6aJtAC>rywbVC-_Zrk-s8L9l`K`7}0 zsT%Q8tstEz(j3~n71vo7J2*_+k5m?OUoy8^>NPF@;xVM{rYLP_RLsIwhg6q#mrL6Td4bE~s=p(X(-!@A~zI29(vN<4JPP zjZ=cbZxKb@SLP1@>hsil(Z$j^U~rjSg}ukTyN9m<2=CQo9{`tx2N;yx9~q9mo?i*P z^5flED4Ol$SAFI;Twna_dR`vajL05*tiJk}u`GPMze`3#$VLIf)!B9T&Aq*4`u@D8 zqm;lfKk)NkMcwcIp5HvPX}oaIMj=}Jtv%p<1Q&hke$3+?lNO3%D52K+SH_xsgUGA{v_ z)Y9n#IWZ^Yk*PBcM$Dv7aBd-ei6+tjomk9ni(&)S;4CUV)`zqK!?c@>zNq8%&Y^}K z%c36fWT{pTZMd!O)^jb>mL%F@dgpvp}>tQYctX;ZgIXruI`{YS;xSf-+ z0f=i5A7y0s2SNlQxKy%rAT8#3p)ONGcn+#5kc!g{2AEHqUV6*&Xt0R1V-C1siL-+O zByw;xas+ejjEC={qqWd_2RJQrY?RGz0I9Tn7=gW!!Gke)5L7q^Qo!t3ujKn0c8lY;n^rvX&eODGvxwrMBq zO*yml<+DO-fHa|+O}!IAA>6(f`Uemb2A3n7IB@mJS_s##jKq~0vE|pfH zl78(c;#@1|!;6&k+BUy!J~|VU9abdYx^_ay&7H4yJE{h%76Rschn%m!+H0;&=6auM zs739vl%zUVWbt&F_ki~rgQo-dL$GP#D*t=HJ50kw7rpvwc+3u?)`Ncm-oLD;^;UEi z7&;l|B}_CS2qo0&*2l2fGl3uRma+W!$cV9$^|{P-09N3E1-zV)g&i}r$FV6?pSN?* zmKUg3nCw!;<$|-g0B#Pg<;WSj$bKvt4UcZ_lM6I_w2-+=P@lYQo7=maCwF%@cU`~0 zQpZ`0vkimC$Pv9KtMvY#|N7^@-`c)u#=rw=u0Cc*YkY;EIZJa1u)LK+`q>nKwrHn? zrQLv+G4z<4m@F0a=!m6~jR~2VxF9>MC9%zm0|dIZ-WbgVb1aUwzh3|H1ClFnhq3Lr zZE7O%1YsVEY&GBp{SP?QWYRBWBSyv+KUJji!6c6xgwpj3k-3zXG5JJXk^~w5VQu{} zA^1|#c8pWO+k=!)w=TDWa;!4*xVVE?TR?b}ZUF^>+8PT_=mm4qNXALpb}yM=&r55Y zEoS`1(a%@f0!_jNU!EOC#7*N6cvK9_T_-AqFFneeN94;9cnO5}jkb_S-4fWVLY0in zizbkJ4?RDEfKz)5bY;=LVec029yWrSUK3nNeri$5w(9FMS;K>s0=@eFgcJ9@wWrbA zVIO$Cw})MKvM{~>3gFeThh*0!k9PN4UL2pV-#`3|?7SympHU6}i;-fiPoJ-4@fTnI z`R||1m%n`rcyx+~RJ_fpji!gI>d*I4o{vOKTmvjb37pTxDJMved?eRQEV(31OnI4H zav$zhycP;eb8QaI^!c8S*G)sW>&Hu#0KEeZGrWOzc)MM-d(AaQLZARk$o;x{+W&jN zYlh1TB^k<7^B;We4S4_bBJk4U(pi<%^y>1Kld)??A4bim$(E%p z0TjX*;kt`$oMUDJVF+S{=Flzkyd1jVVh=eof-aVStVSSTe)0Un^?(CMBS0QlME*p= zo1xNR?DKR@Q6J^Mkg>ok8}k#$`!a^*FUeTv2HbWuxN*5;44#3ku#AXdX-wS3@(J6; zIPudgKwb<6!a>{y?eqk)sfNe0{4Al82oW#F3?r1s_$^5NUUP)2-5gM0%eLB_&fj@-wX66 zg5_3+#2uX&_7v#ia74wER*m?3a(w`+AgI*BhB(8Vbh6L3<9=H>aCq1c`Jj1&VXCW)+Y&5xRsx|imba8Qws_hgdu;CFv`s7G{!b$a?Q=SO$mk|G@4ZgY(~ z)`^{{zwPOG?PR)LlN=cfQlG1VFmj{LS7lF5HVs!$gSE|C8j?0X3aG4(eYRo6syhY_oHyWHWEr1OZh^?o|%#;#RVNyeYfBz zHv{f2EeQeMUY7`3r0AD3$dw(s?h{kbis9pbtD0=8hl582f{DK zX?%SwLb;5F6F1D6#0kg@n~1!cgcx;F%iWw+cMEtKp`l4Pp#LB$umkQmQt3r;Ev<a!=ps%fW$P}0PAAP**vS*Sbn{A{n4AB2xl~(}oUp9^xz($u@1V=o@KPE0K{`2); z058_yq?5uY0p9&I8AIk8oe~XW#H_0a&8Y#s%s>aE5GIDxIC8avQTU*njDXjP#RdSi z3He_>wgqXHPr4Dn8@!ofn^IXuhZAP3?e+yk5i z66VJyvgI|PIL2)Tmq&N~5dSJaJ|sV!!(YQGI; z0t0UF(sHXtxRW2SH1T#-DQ~!@723tIdWAAfs7Qd#<1#NoVwHisU3wrYZjykdzP4?e z1?adw)z5qkTVZR;7qoDQ6Yz?V&<4Fwd%e-)Dap$Si?}xeMYYL^U_J-lELvb2oS@2> zFD7K?4?QEu?t6Tgwh{C*?z2ADv5_kxeFmVO6?NB>Zs2*Vp61Fe`ENm?f|69>CR+DK zZM6l+jcWbkX)S0Eb%#bu9`^*lK@a694Q&o68}8$e@Jc{y1)gv3)CUj0I-%9ykG(Y{ zSBC6&$rzLFr-+M`F zC~D)j^E=Pp|LL68#-?xJjXLP)!W;tf#lw&FD+@DU`^)Lzpacf#licNQ^p7(vZp;wd zulInr?_;wEyy#C+Y2?`(=Orc`i?4SpUSn*=yu7JuOhH{PyTJPw{C8gQ%7jTiSP+d~ zy`@cG`vve~&)QFD6M1GYvXplSX-7>kVKTNx7(=iexJ=06^@x^W;21k=)#m7J=mzB{ zwueyVO+;6qA8zK9!j>KoBHT5H2}oGx?&h}7WApAiaq#R#%X1IydhgL( zu>qIS$`YeQC`U?o9Znd-aFCw$&Bxz;^ZXmw!+-kE(I?UmE5KEQcg*SrahuBMXxz)H z9*ZeJ*v^lcX>11VKdAX^v<~$=0=p^I=+gigMfscnj5h6Up>%M1cLGN}#pGOF0X ztlZM03RYAt40ypu^E0X@5wUIrl6`=vdJP^~EkP@I(*b#_3j!!8&W5!d=v?7&UkI*T zyy(|WAS)_eKzy7gP5f-La2l&$x9s|!$0bq{$5b=pVU)~dHMj_c zS}KW)fEPbcQ^leh1c@RlG^-)*Si6dr!1tpgrH+^q6OKp$i%-Bm@7-M?4!7X2F*YZ_ z->404CJ@(7CtJ&w$cg&|Qc2j3L(+j$#aKkoe8l8UHg<33qeDvmpdFOMAzoOP?;PAP zA~Lr@wTp*;<=q#f-G7Vv+wJRkWA@Ffbi4vyDVZ=tD!U#hElvorZ8~p2i2OS6Rxeb% z7r)LlJgCnq%AKKD$%`SFqYJJ}_Ny0x7n&VKsn(VI^n{`nWc3yDS3w#epMhKJxi%b5K0&`^ z8~F(H>?d*wc?G}(UL|norRW@ywk1`=Ne+Rd)0$27FHIv({I3q@BMET6fTU`pL~-jDlWY&kAk$hAt(;XTIM~k zx{95JX{!e|3?Kfxz`Hi%YWLZz$1T2nU5zChU34#2ygb|g&|hO~uRYMA{}WzqAv)&( zFLrli_{|VeP!2HI{%|+!a&m_~;Kk)*jY4Q7KRy+2wHikTdqJ24=YNR`|dUCbXB&xu98{<%;GzYf8 zUm*bH03)o>415KgM>c~qG<6xk1sIseXoL;%nB)bZZ%lSVC)h`N!y-U&iyvgdl_8B0 zaxS->^Zi|MlsKe-BD0MSv6t572$BszBvz;fXN?@EldXD^nGs;TR1VlgMNvrv7Mfa`UEN;r9Y4 zM}XW)(n5Mvngu9!0j_u!xQWH>dRQ8B6YWblB{EC+P?oNnagBf-R^ZKZLm(~!dHpO{ z$9-BJX6y;PT*t;7&q})y{1PFXKnHYIQx89nj4!~8fXXBAemZ`Xa4+JgHq2buer|fc zRDyO_O};kkd~wvd+s;h5es3s*<4Cur$T(HR1X@Sh(TIpLYx|Lc#01QZ}d)Eq2gX3tIt@pedrZM+vzvA`PeF=FEyfi=e z{*-CY8#avW0^=3;*KeG!{ypF&HGSDma0Po6^seB9v&y~o)r%ajdQED?38b;1f+tP( zZqnG2b(g!q8>4X{OoPkm!@Y`kGW(NjkO$=_Pu}_Lvv;1|Jo)SfR4?CTyE@+gfRq%r zE5YKuInKWTUexn#3yT1#lfn`!6BJm2^Cybdwa=FGax3tDxd*)ClBXIi{m=&d)@I<; zhH;fiqpiIKo4_PYn-ls;oOK1q0MMvObiz;oqAgQ72Z&nBOY7)@7<^*rA;!_#O^!46 z!2zWJcWkc3L>I8&yDp?&cIlJnU8`P@e_$T2*^gLE*|+7i14e|A)9n zOMUt&toFb79H$;A8eShqT^y02MT=g@9fI}!oD75;gOz2K#h<|8*H*CHI4EW zi>q8$^ADXO2p4n|m5^4uZGPE0*#;r`oslWagJ-+$70M)ZT#io^@!ChCAw|soE8`@JGY#GRrDL-C1In*I?{#l&|E|H9~ey{7*(FI?tnc?LcDK_~XssSkb;!=a{D(4Cx z6t7z4;cJw%wa)*7;|13+o*km4Wzd5+uHD#Lw!MP~@cwPjtHI|IT(ZN2l=~gvb^AKr z*Nsj31kn1~qdM}@R9C+MUXZn|EL&^R&Ef7a?*Z@9<*BA&jj_f-1hw9KyiyB~AFbct zd|dlHRq_ki2VQiaSb@hS=wf@ALZ}VAS@<_#PO~u;^J`eu0^tA!9BEHR`Js4zGPF?mge z7TRlOxT~8%{;S>rc$e-U&p-Yr6Hdw$U<<+Nq%lLZ3&i(r!ekqY*I)yfT=+0rZxco> zP}_$D;B|qlb{f5gOlmL^I0MEXQmqr1b8PWfGD@SJ(1qjpjdR$onqtCX25Ye?rIj4M zwh*i_#@*E5X236iRZ;;w*bFmu4!SveQHrn-v?k$-_l1S)4crllfG<|PBqZ=a5$G0` zysSgp4O{WEEGlz>sCYp1@7z-=!56^MwH_!C*6lX-9+>w0DPoq*t(n!+2KUij%{4Ro;4$&C&8m{gSEW ztrH2MZ<}{!D$U%I#HGyU`0~jIVeWAUc}o!ZLjaEJ$!+qP*K-b|sCuV;v%YeYjWg>e?}6CX|ZC%cBTBjDkvcj9&_ls>pEBC~5M}SHH|$+ognG zd*qN>hY`G2t#<*Y7-tK~y~yzjAph{gnQ07BwQ}$Wki{{2=61K@eZ!7(0yf*10Izk` zF7Qqv)n~x_gB^wywpzObypShER6V9*zZ{9H?H=%sJ!GQFt2C)iE5<$^|8!jc_}Wfk zs3)=r^)B$DjR=r6HhcET3SoV?or2}yot_C#4m^r8td%EMr9fbrgAaJ?AZ@Y74Ck}PGt4LTi=Uw0v68AyPLiMCm<+&U zGS9*%6l549D^0rW_Y}l$IZzMSQAIxoU;@ILvM_+Js$fNYb z84^L$^*~GxVEu)?hQn%P>uZ$O5f>C!wVx3E(-WMIGTn6vLWx-XhElNreP;kH@ljw+ zK;2jf?$8&Gs1cL7;an)nEo`p=y}3_80jy`1K7%MGfC`)EuIY%Tgu8X4F>`Av*7A`Q z9>-}nySxXy ziMm0Mk(2Y$LmT$y?OEF}S8Q@3OvUd3@0(Q6D!|-X!ysJQi3bOo*3vFq!vnCMK^u+H zKAh277w`mlD80btbxhNhgS$Ka@3xk0u=db9|-xfCfbhLL>)HNmN4UQZ0> zq6aQ5Jxkkrb*|_J(!Lv&Ab|oI0kqDDzWB+fR1lL=;FEfQKuUxz5J2crJc|uTV$4g% zUOWVMpiE+hoZV5972Mw2#Ao60wlYAy%sn0>*sGSM?c@p1QWjmI zqndeBQ!DvOfU1jW$%&MH4sewc!NaIzA9&lG>|wX!h3s~x;*B&7hFV#1M=VoP zkUCklxB@}rX4;Mo9U9U*z>A?e>`brX)Q;R)0sH1=C*t^A*`OjH8JJWZkJBFT{^86^ z9nD85AR<+JKoO70t*c!*S@iUjopKjH+U0niYxezk4QO_RCKyK*uZ)PS>e zwJmLQ-45`+-p`ShVLj3Qep+ulzPryL{@+v?=Kh!P65x$FJ6Ud1)npuq$te(HDc`MY z7l5|#dGr(7Yyews@5lsTDkLcI738N<3iSaNbzzq0(b-%$mDB?CuysO|FfV^b-O;1S7QG^KTFw))OlZjH>54F#Uvnd13 z%-FBf07VbTU=&WG@WQmpdn)%}hwh}QAYw<8(Zo6}YQgH$OtVhwU>ld-d z>#pBd$g7gD%-gEQMcpc2h|nh-#t#%!JAl0%uZau9oRel#tl&HKtNqe<;E9on#9Vl=<+B_u6%-U6WS5hv-@wmwta6TGO z<4UAET1`N=%Q6bhp)`}oAq`)jnKQh0kFM=~!Z2sw+&K z@1sF#yHf<+N_c0eowz{I`Rm=0;oyB+!Z5Ul_{r|bu$^{wyerDS2)u(2lZkfN9~rKl zsnyh}^OBw4ZLU50ECWxh0VYxES8IOjr$cZ%*ml`#o|Dk%id6G3X&3D z1gTiK3HW~fIgt~!8{80KxMK!}GH`0_dyiBk(7CDakpe7=ELzlL~zI)>m-43{xk zm&dp+#C<4^JD{Csz4E}Fqr+;1gSdw_1lg9x4FFPy%Ab5N{U0piIH0zr9UHcYN!`eL zFalNZ!Wiagy~Dqn3@;!wL43XvlLns=uV%a-D#LOf#_=xT$%!*6#$djgJy(d}7=TxC zfI`|_cBYzlZu_=5^uS#NH7~uEcwPc0nNtzF1sD8e7lgHVLNL89mA|N6v5BhW`SwOv z@q$Xw7c-!q5RI4YbM9_?zAQKiE*`b$ZqZ_Ot*Vv__XW0G0$*{ws)x0(O`Gqf62e^^ zX>OL|v1sB$856)mWQR2XqS{RX*$rLzcvM z173MS!Xzjw(HT9xVCC|F)pxVKH>iE@;nj~P2z~P;YPe#^rrk3_uhI9r-2>h*x;@~1 zG)BKAHH(i1(w4bw<`J6(vAzL&5vYLx7#qUBOs>7QjUp%&9~s|}q$L6GnCm~^7rY<; z{X}T4>(75WbD>-`LQ#dV3%rl7^r#+>4_{juPnC@vN}VR-uJ@X2kKr{~obl~q_JFq< zgV~*2Gn0LK4!k}tvo~dQ@POM3yWBF;D?2xNs(&#u47y~!UI*BXF^_37ereibZ_a?% zRyNqGav?5d7kI626UI3-js~#FU9J^Y=^a}_V;49~43C&iqAeO&Gi}({2gqPaDz!_o z)v$8XzN%w$JIBcemzNTZtWROy6eD@B-V)Un)4?Qc!L_-#OppFUi zV|nhz+%#?Qv`I-&7c8H>n}(3uxtS9$q*w)y^D;LrXTxxYAgQLow(VpiGYZEpo2_F8 zd9oPlI8}8VJt|*|_Nk2}PTrDOny%q$1MsD87~S+l*IiBPxu`}PZGfdHVV0ZYkPK0D zpxb6;U_WW7{k2q}8G4l2Xu%*ua!4QGfoEl4P(1lHokf5mPMJWpCUT(!=tMU;FbKh?dBNNz5}V% z&c&|^1aS(-dAxk22qdG&cWlJFeCy%S z;bp)}jwNH;V;E`DV955X{HsXqaAx-l;6+jA&F6a+uX1}&xcUGJWyUK-R6z((xY`5W zN7hC**xNF^NHr*O)7Y{QTZk>_Rf)n0S$Kjt12 zzvI$I3!)&ElwPQK1G83Qn@G zZ$~p&W~{~uti5B&i>}v-rJ=6F;iGqoQ~o4P^kiOY74gcz@&<9?ON$crop*|loBgTK zHl!jm>xl7BK=HVAWdu>|y!gN5LutBTGv0m?zk+AhYoG@VC>ne;;8@f*j`>*SmTt7P z<#jaJ)h~~apAb~7TBU?rQobGqjWNt&i`fmf?|J1WiC9IOc%OjFMnlLPKCvM|WM`xL zZN>-ud-8xBsn!ck)}x8n7HcTb!|Vy7KZw0h%DD^Rr8oeB>&(J)Ce-0hf8t(&p<)P7 z_IAY2vD`kn1B8M8ZAI!9&<5Cc?z&}eIsk7o7xM5@NURU`-GOw5)MqM_MOzSuiMo1G z(#VAvu5GZj>~_dOXX%jnG?@ib3rAQcOmcu(ON~O3x$|Aq6Gw^Y&F$QG^TOk8`yM%l z75ua_`+>*VIYwsWGsfXQvTh6R%rWbQM`CN6*;6~+$2Z}b<|S~mlo<17B`=n^rOr>- z%!oJN{(Op|eOS&d6E_$1zc_NnyYcQ*$>U3aHxK(9?`bZY+Bs#-QD1S=zv=C#_)dMA zjBLA^4|jm~X$(h_p%e<_Xz}Nx!jkoCJviC0UtC=LmcQj`F8VcgsUk!eI~8x#+=$lC zzr(L_>4TU=6PG#cSGKfG`k6vB>nHa&}r7+zNFsLW+hVcC(du#LzE8roj{A@h@hn#d<&_01kyC zQ51j)L{_CKDK83H{#?3l8%yi9vUm|f0#*<6ipw)_w@0AFX*X_!UGBQVa+;{C?po2a zVkc%2$sitp)`CC|%Z-b`xmD3B1=)t%thqP+ntE)ULO%84gqcEaB5y~dH5_+6r`u-@ zYi=G_o9o89-Q7ImFVxOYp3Hd*{mfm1CqYY`G!k1mJBllYlo7PKVmc({Rrd}|gT4rn z#8j2MwEyL{JgD3x`Wd=&f;hxHmbIa(TvlhoR$z$0AYjE^;B_UJe6ve6WVfqo&@i6z zm1Gjc5F@hIDQ!Yz0dG1@L4$I`0e3jwOAKT)Zy#KK2o}UeYNOgrdU5(XoYuv|K^P`b z{>@)Nmd4iaQVl^&!M5&D^8N=0KLSa@Xl=DiH9(GvnCG$&yw_dR?sB|&8LP7s`Qh=~ zZ@=-zTW`Jf_=>S%0dE_jzT+p><6i(T z{s?};$6A8MRc*8N%f&Vfb!@F-aOF|!C2h^ov0QV$U0T4THx?WaXx?x%xK$?tugjSl z)v1X?WY*$i*JcSdOE+?Qo_M^{6WirpB-xWn>OesrIf63F|~Far#x zk;!sWE?Dr|gNuM%USH5R{#vE%W-g0{CJnu0n@x9C5@6 z(2f(F2292Ti2U5e46v2LmZWRHQ49Ksuk9Xw5<&GJ5cB>ifi%OEy2BlSm-MaRTL1B2 z`kH6nE#+RGz@8j#NNL6!%}uwSk;>$DRKcuP-&v>aj2pmjqVC|ZuhZ|&H;91cOC#_k#tN=~H@zOLsu~mmaVM@yQNE*v&IG#BXYXYx3H1NP+ zWRV7U z`@kDpy9>NId0IwLfPs&OrsI$H7>1W|w>g5PvvJsMu6YfLq|%!A_f!pI zGe6s#Tnl|KALG-woYw1)%8z@^H8%98DUA_)^U&`BZ^_iWxG)x+GlZ<>tm6H?I5up; z(zI{?a|d{zhHAn(K zOU$4`I82zyrS(l_%FidjuE|ji^!Z>mVIZdW^-FS)4$?wsjsGlZJyhSc1m@qvh zw$|Z;hVy?;reesiHylL6(;T24NNavnF zebm54gV=)wd*N~$Xyl*_=lWt^!IC~USpAIE0W+7<9Z(8lNpK((6%+#*mrix8s#F5& ze0SG$D?G74<}RBQf*WbgglwrFRz#8uCAAHL)YB#X3cO9fiF;>&qHHRcGM@F-v}6R# zN_io5yHN_HDg?a3|0D2{vjvRvMGxD+^2lFK9m- z)YvYq*_D%}B!ZmRnsom0dA=*uYG^fQj*dziz8`A)DQR}C%DWuzQ*Q_TO|H2fRZVr?1X|_dkD6ANc>eY4x-o^d+!Ww^WmnoFUdA?)M&@xNdw*>*fsRSFqVUf)M!27Xz_H2f%LxOjJWt+h( zbR8?{NY#7xz*h(@#-k_>P#nMsd*vuw3l5kpKb2h*{o%r(0f_;_X#iSBO2?Q4E}XtX z;$~Q@I(Cm~4l%7L5Y049F#^Yp(KxXu0K<1@5_>#dVXzs*!{liNN2~R9&o-E&w^Z4tF-f0O+2Oo#6i-&n!&>j0!1ZT_Gf25Gf@N*v8Ss8} z&+(R$p8d27yl%g_hK1-QjzF_vs4Gh4iyjk@qf#?sjsjwEeDz+%dqr}X8UDI1pbK${ zAD_vt}b=xI9E?ZW@=8 zmk!e+I5SS>P%P8}H4?PKea!6RP*dY0Ocf$pHn~kUmOk3x<>CvkT$JK?8Ry7aCuk?Y zPjhG^Sct$vW|VwzKIh3putwt~m=>Afuj`Bwmu8X!M7`*PaS&SkMP1u*JvHnWbEK4v zQA5sw;$>_Hy@3sTsE&kwuv;=bhg4jSGRbrHf)y#TkVL|L%?l8n=N>=$e!Dm82TItb zxw!?7k{s@^!?FP^zOb5RCIbur<`IQ_Gb(I6)I+caJQfW~Ow{*L9W8W~|0XNr?c=5{R+ryVJY% z&p)0f3xJdY5r22Pgw#fLnYPg0|3aR_gWtQ-&xtl*r{OmN?`vZpUZ{8T8Sq{{ zd~orb-(39VKU|1czW`ns#O0ea;C<`&4Ai)It7N>76F8~}y}(C5ou>@{mj6a?uLVyA z?pn0*M@-lzbH?$0f29py`{OjG=exig0fRsq^#1{%>PC57?xOb;b0pk`Cm<3yCAFXv$I!idlM^}p z5aqgYr7$ZkGkAj&Mw{LIzgbH|`gQuo)#?k2%#m+20l)|K#wjEuV`FfAgbnb~ zB8(_*O*7o25ZH%6(@8w2UYvu(*D>nZ*?Pb;jzkVV=Pph}0&o#rtrqSq#7RUT0eG2) zbhx`cbThfy?y#<|E#3Oay0AO8S1*l)Dym<=EB0r_i!ZSdxJ#G>D_ofE*0bgX4x>i1y_=F&Zju1;&JBiO+O@(;;h`f=>|c#VJEhe0$rDfN*ZnYK_XW z@0woqYiT<0B9th1pFL}1xtsa0sNa)o1W97%$CbnFOx8iQGi5e&3sJZLNA=?tORqj# zJBEm=S6?iA`(_>$$;qMP`*d}^ZO`Ke)^F*_C$}NC{?oJe{+kcAF4x0^f1ZFsg|dKm zIX9yH@B+{8`ld(OkKeh! zcR~LKo4vUFnPDZmYdGJq%kj3&jb-=jr2Bo1M&e_8d|TGLz#Ae4)M4&j?KRg-#{`Pg zIvhRNd>r2T^lY;3WGWDORpV%DYxw&&h~eh7Z3umg<5fRz~Y9VlyNh9wTBxeGJN=zOvW$@Cc+ z6b_X&-6ffjglRma;L<=IWJ3hxPl0E<*|r1XtHI%hG4`U9;y}GH+K~Y$0hy(5#562o z8s@{A1bR3CRaN({n0u=`tab4vMwq~hX4ryqd4Bhk2579Jmr)+Tb8L=KC1C8D603T2 zVKI!u6B5<0Yi0s1G{C16jC+h#6OccZRwP#UxZwuC_@1*z?5(xP)*g$MwqEOpuWp-lbsv53!9Tvy!-9lWa3!iC zm2^h4e%Ccz-Lnrr|NN`3KL7l~ufP8A^RJeeFk>X(O{{DsyeQyo5f3W`1S~H@iXZH% z8j_Onc$Dnn%o>u{sIN@dm>t2b-+c3pN0(Pm{}}kJdiocFWk2msuHhnkIYXn5iADyz zU?9gEraj<&gbZKCwTA0G9dFh3u|EUJpAY`>?e*-gx~BQye5CngR1?m;C%(V!^w+%m zX#H!x|KZ<0fB*f03M{{KcFcEYZFKnh?_YoQ(MO+r^!~a&ze{~*SB90X|FavPQRPQsnyt!Gq1oL3^N{nnfFs7R;zB z;VvL5;GIDd2#nu(7k6+h>~@EbGi^1qz{br(12EL;)$SAPj3rfD zp$Tv~c|@#>JcF>5uzHgEmJ^}CV+e2w&|2H!Im*nv?`~$9O^VOJIz|YAE)dl#QkTOU z1(XC-4rPTKva`ntxufOfygu3D!$Zqxr;&H?{HWS8m?~U@WsXl2S7?J;EPj*OkbU z7$Zh)NPZW1rN`rfaE>|FqdiB_liSa4W0nzT|HBK(5;%@4f7`2gQA$nvVAAF*iH&v> zYzEkT+2MF`R&4@+U>5rNlRe;_`#e%EaYDbJe^}Sg-~adv6Ca-XA2mSn@;~KboN)!f z`|Im(e(Ak6nGn0b&O4~08f?lDCD+8oP7}}$28v+2J^EydzvOr{5wj8rCR5(}I1iD)f!gm|7X56R(=<0#RyHTEHAZb2m z7zK{b%5`5iPl?WG+F$}19D|DP!Fm_K@sbk&z_B0&eS6q?X+T&(DOYo7Nb+_I7>2tJ zQY`Vo+C$rk2gYIU8gRLD)3vBu`7n;L9``U8SwRS)XTjlo9K9gLAt{6)a~mk`$Pnv( zkwyVHD{$53#AL0b1i9A|s%ukn!UR?Bje)&ca)@%~{;*}logNwWYFmpB3g8i~H9b-^ zeZq|Tu`GvG^h=nQagRz~(AC^qC2oI8`)DPYNa!>PV7G~6rvIpsD_w7FdqK|m`q7=D z-RlLA)|PN?esCV4gPZ4b4H7!N0(iOgk6kP+0TUexA}_HMs!IGknimHe{H0wv*|k2J zQe>Tz(R?X=@Be;(TF*|!`zIu!hXrI-ZRO$ET!0g!!Y>CtASTX{;990!Ox%l8u02AOTk~f-Cn$L zX4WC#mE#@l(~&3!bYvZCWx?1+=RMg`J1LXF;Z8sbCb@%vyU`o$z_pi5MYCfh`Y|#dwR9LZ+9A98&;)0ni;B9-Rgg+ftIn;q%-^kjQ&~Ia&1!pB7ftlzuR@E^KAaE-_ z;rRFVV29z>;FY#X?B{W_9R_7So9SXc*0+Svu0h3ncdJ4dH6$xpu)6?UE<7iQCh!7J zn>zxp%HIZM@pdd7VEutdwxXC#H#s?A3$^xufcl9_o2&!&YlXdH6o|=p@7!%3z!IP> zg71#A$-M?Fq#!;Lywa74ToCrEn8wEa!ZU$H1E-^ZZ z8vL>y6(r*;77Jxnyt%x(;{EAnWLKFQ4hYO-|31&aVd~(@-R;P0MvxD~=X=20lfsF4 zlxu6(k1HLsx@?`+h)o4|Aa(Ex{%lU*bIBU6<`4F$h5*i>{reM0i1K$c?w=f{d=D#~HIFOPP(ta}4lm@$hnpgycV6b4MkN8z_5+<~L{QLJ1Px>q zKK;@L4`bdjgm$6!10-9tek_QEH)$C`yu!XRY9wQ*rkDY45P6M(@qlBWLSVL5fWMz!<=oa40=tK?Ae!wgW>n-9^{2#6@WfoCH3u_rSb%hZW;G;cbJ3;fTXl z`mVRJ&(?BVp%&A@q7CqvcGC<6(3T62s)Cj(4ZEWRt))qF&e~}tMB3p~8O`I4BTM3T=8KJUgVRv9n>uZD=z)T68=xrNviUj0j7;ab zE93clT1H%}esoj4CY|~?kD9L7UmL}H0lb!+tdDVu(JUUrt>EaB?1?kEPbr{G#I~SRZ=u^uEq000rLYaqsVDe7oS%7VMG$>6;GE7FU z@k+4I%+d6oN(*?A1Y1=M% z>An)L3v-l(oZT|72s=Of@Ux9OIPwhL%`@`)EBdXB@3U?u`EYj&+!M*5idb|5>RoDl zF*vLTu?--yuqKt`0~UX1>Vn(hNzll$i&(TIf`HRb*P+jbqLPv{Nz}BCowiMq#`YfY zmlZv~iERJ{TO@{Px>eLbVq>1=vvc%%?**DHSpgCBBPPPqQ4L>umM|=Y$F4M7gP4N` zY~`rG79C*?Ubie~Z6S)cH~SlL}%@2MKD`gzWAqWJ2(+5a2Ma4_V44Z9=58P~rpNW$xV z;I-qzOM+kJ4*q zd?=eq>aQ`oTqt9(i3^Z`0T0KBSByT-g)C|ev@ZA23)(#Fb36{33J7>6d?in(haP%- zi6dj4`;}_In+Om+f^m@IEQAab0~dK2cl-5+V@q|^9NQ6}k90XirD3THBmY5~1m!XZ z>F7&I6xFZBK)v-lhRo>KEAb70mjRgGT*s0eMIGqLQRYmELmTTbMldT>k-@hY*~1pk zfygzf1XDwdV3Ws?HDwNFsBMnCW>AVp^2RZe*pSwkjFVPG>7SFpm$CCML47RXW#da_ zV$%??SlTwvK6j4`z}-gC0Bl;Qm%+2Lw?_B{P0W&gBX|Mn z&u&OM6y6h`Qr4e0H!7z))xbw5VY#1eg(@oE?eWsw%x6g)Dv-C?zmB>y72kw>?IW=n zUP3W+Y6Y%?$|bj5g9Dvb1`Z#C?b9gy1^<}w;nm4%^RjMmvP?07ZMp55EH^fAW00Sfxg^mG0g55D~G z`7Vo2>3Hq@QbO6^(q{|J%0+cN< zuN?2Yx8?Ax=bTwf``ywlSq2}@qb8o;`{4b)bkO2Qw9q(8R1Qt{_8jG@?HLne#mOT{+9><&p)WWbfQ;aJoBpe1P z@Hl#GV5Y1GYf%rLQeYe0H9C;khI){|?79jAfi}4zlw3o!%Ren5hUpK2hGj&1(!lgL z`5IC_a=hXM*6-kI=OgRe9Bys_w*0y!$O?FYta$p4INOkaAU$!w13+lPF(8=ONA6-> zqJ$4DXAcL|sl-G=rl?m|+yv2W#u(oOk&?Bor*YeWd>CmlaWapTd0G+h;wW1?jVP{A z4BlaBi(_fLd0wOu?p8crZ*f0zv`6U~f1uixSON<$D@^aVaSBN*j>IuepqbS=?2n%< z+zHQuw?28mf$*5u!yoR*4sX1LEYqZl1DMfAvUE)w3rMuFkLx7Yi^~fkHV!q9!u#}p zjGYO4+e8?IQ;u?_P@t3?twRh*Lc2(!iYkx_2p1P9c{u<7e_`Jl$uW=y7UI~}VOecQ zquKf98-Kl_rNbZJ17QpB=6y_Ugl-u8>+S-F7%g`jXI1Ty2MW0xM3UBE3<*xaJ8$`K z;N73a?3=LrLhhZ+AP9jy8O(p(t?(xrFvZNDTy68im1hDKI<7urnFmRd>DGUCNyqHo z-cfzGW4vmGFbsi!_1$sP8?&KNG`_3 zpu2l{#pDnO+6NEzXj3ChI787Zt5G~5#xk@+BiO~Q!@bP-@O&z&X}(M|F;<+9CEuuZ zjqtE}_@EQxi7J=Nm5`IbJmk~SmYaLT65xw&@@cObp}&N?Az!bt%;NS<{M{Yp(}5c3 zLONr53vhn40(O-zCgp^z3!0AL8B=FWEFf6NBqO9>_ArYSV>HIHtI$XC+~^L1#e=@h z5MC_5BtfLr!_=lX0B+Eo6YQ8xyc;EL-HWXaH6Em*K z^KY59-ygrf1%z5d^)?M3)WrVVUthqIe*3vvzop)j&dtjE_WKY2Ym9Nyd}3Wo^Nw~S zM~6!gX`G%qj{`1PKsDd2T=S|2iHR>ZTt6@GFS`s;gp zClk|{69PA~*>>-se^vkZM443ZoZsL3nx_12h)>?u6td{bX^&^ie(yz$t4+T?dj0|* z!XICsAG5O^@QydjJkz69eKZU_y;&1TTw){s-dkq2LA(!tW{whSDd zt0Kj6iAW7ArSia-b8hTIL^+Usfy5gI(Fl=kZK6vPaM@bDjhtqg;|?nWjt&F`W)Dwk zx}4O4i%d?sJj=Sc4FgH33JNivrsU#8lJR6iRUZ@ z!_kHa7*F8KPG-hC=zn3SUYoSq%#fIEm+&?Hbec!wHA}S$uY|*c)@4(E@s<(W+VFOp z{8d%mPYJraX{kM)ExUq#1Lu4hn2fsyT?Vyo;1>M4aJ(dN3VOLT&KrAecsmk+T@GO1 zywd?1D!7NS@{xL&`iY|z@EHMT(Lfukh7J~LGHTD75o2eg@D;#LVVZIyKc$itaF?}>A$)}X?k(}?CIA})BlgZ(s=fOaxRb6tS4KcX+mH9 z`0(@3yxuZC{_eazed(>2y@j(R+de#e{`Bj#+o$aIy7BX8$M2_R?sxCrz3)mA_utUr z+6EGppW& zJ^z}6dzQZJksDs#K7anT$Ip+C*v3AH7*)9ZJqw@dsDF6l@b+y*od?1zvj^-bElk^q zCmOKRM)K^pal=8g_0NyLS@!!Wb8iV>%12rC$q!%s{PW}e@$*-oRQ>V&4}2YS`=!8*^@45}#Sc4Cglw`tQlENs1k-p^su{qv+ zZM>72R?fz@iM`~CoVcjSr*FET^4=a}E+scgm=4OKpiIJiZz!5| zTSwH_ay#UGlQsc^$wVhvPTt(~a~8^}2^j^>04eZ@jLI>Ag$O91rW(b$ATAxXTX9I& zrm!LBYLP!uw`D|$Ha`P8sV&P$5u;T4{{6EMV9Ib-DuRjLRlONAc9fryhMXli*t^J* zFT_qUR19*5P#a*kp=dOLxW>DSrlG@N&j+wDPpI`BysuWd?#y0IbhnJI(}T2L9< z@J3>~65 zDwiZ4%L)cwz)q_bqd-%-h)Fdtudhl9x(515UqAWe!QdEp#?lUBHns6<35eivGWoUP z!uZN;Sz|kyy>LWKrC zVv&Z1<@UUVLGrDwSn~mI9bPj43FCxkk0x4a$6UY(dAe~NAR@a=&sPG!a=d$sF0I)^ zQmIvKtRe)LBAiZbOOZC$Ku>In|DqF1UwqwID68&vXk(+hiXr00yjY)j35R}LUA&pl z@b@=B68nG$L=~|oS6`KGo|*dO#ueSw=?36k`Et-p9Z{~^N}kR~C-?UEtIqsQ-JnkL zf!7Y7Pp9s17rUmY>Jg{^hH>Y;`=^f*cK+8mPI#Db@}29J?O@jtbZy3czuP_cLx7?= znp;5&%p?&Bmo31{f;CRseu`KVl+C#G7Xh&G*uq~k_YYJ@N%_Ovm4xUK*l1tQaiLDo zp`mrTDcBFSW)SC{FS3{*M-R1HXcGUbB?B_$+mPpWp&ZdAw`1;Mm z^FmMUw&j@tw=>%9Y36rU4JKt<;L5>D&RioSTX>$IKN1s3F zjQFO!^JBw%+p6mHO85lAnt|FLyNI}!Dga(#@S;HI5xCzxsVJdSijO7@!DaZb-N)Jp zEPnFrmtQZxIxmI%hSO;-K8BK`Urq2*L8VbxI3xgBj3zBTjzG|kYcLZNrTX`8 zk$JO>S6)pg^dOzkFZU4m9&HeEO&%T}Tz58afB7z_@|D*TYNT^@cIySFJoW1&Dv0B6 zOGMY#4*vc}nLZk)^4`cBj^C{)6+KF^7${6>mi%ROYv^0ckZTY~6KMe}L9fp2>No;% zUYA{&$7zb7V4r6wrv%luwB=5EaG)wK*ozBM&6P|Nqde|0FSmu9hSHUFJnhtnIE_i= zi_ABLVH}G#fmfDTplz8qt+85Ddm+Q*J82T3vG{#$aKpP^s~kU&E^=D>;qapeE$6Mm*dQ^3u4aE$1 z-R!o7VNS|2_Vc33XG*rmTqU+5$+(J6k)O8!vm3|lfM`8%(JbrnJ$C!TK?id8G;(+w zzr|xb#l{gX=^CxCChZ+5kY>DHJy=Hf<9r9f>YR!86(4JQyp^>}GDf7Yhe+}JSMygV zZ4|J@_q}&Z4XXBocT)p!Mlbl~l7z#TYyn^*@9UxUb_VPOX?@j&RUWK8f)np}xdoDd zr-Vr6a_CNyvh%m`FXsD_G6bYn_GgDc^0mW_hx2rX?$4j~;uTN1W6f9L&VT*kyw(n_ z8`(u&Ww`0L)(OMIHwIYdyoVs^mTGO^BCHZ<4{vDQLXf-tA;!cyx!)fO!VnZ@gRN`W zmU#vb?YCo-sN+D*8R;WMnU|4l$0jyojb{vha2OJVMqDRJWQBaS883@%QF7BC+Hi(P zjU-0GlXIwal>V`%%{^BS@*MN2Nh{_}QR6{l`pYfT*Jq~WB8 z3sQTT;lzc^g@xQQz8p-Q25tw%gQwq2f-wub=@DUIC=8k4D;!s(cO0=W@JtvAC{@#ew6RdY<+?e*ndzCyz^q+* zbN|b>i2^0q`D^-gcqyB?-ouo-d-nY4yv)=T)A(-9PG!bJ;E$VHjdK!@69+m7fG72-!+OW}1VIo@}w z>#qDKejXmPmr3V#XpE#yK~MA-58&`qeR!G)nK+eq{}1qrTLP?7d7Y((A<4xleI&Wm z0dRi<-s1{aijjHHG-KoZxn81g+yfBhX}SoRXL7Ni=1ho_io&!JM$ARpTOeq%bQkZdbOr$BkWVn%gUkQhMA|3Uw}8GsKTKPnxLmD z44VQbuPD~wu37Fr75jkH>-<}~4Ms{FLO-A!q@Q6kCR}akvLl6kXhR8?EtV;F18H=YY^r!KsYojKE|dh>KP$*H_v@nPDJq$~=8gMz~lK zZlfwM+#^Lkjm+&bG|wfA0lTJgg**(aV|XVHUnM7;QA@@=8Ii;4f@zpka%L7+V!u)l zptFjPr&Ns{P;(5FBTiw|MR7n%hTN);{F)?A-e+4%h|$i^(&rr%)wko|yKhfR)rCyF zozotRh0-#{%8IY&(-!fUAwgKflWt(M#ocj>o-6Bvf!CH_v)^TSPEC(8t5r$1m>F;F z-xh!E_kyVM30P@K&JpWncoqK!5(SbxH3<8IWNn+%f*DUPpTc+( zPF>@}Yfut|p4RB(kpRK_inue*Tn<>NDwGV)Il5j1Qm(#(qY(ipy zx2U!xP(fdYhU9hR+&*h64e66sX;VySIY0^38)n6U^`YC-An- z;y1>>JJ+Jg+e^Pbo`-&{YN8eq9NxJC-m^^t-hQ$a(l%&MJ(V&JH)_tbri}qT+*J}X z|EcMlnc-r3Xx$s}oqd2LI>L9hm>5p{P3*;`uLE14L$K){@SaQw4pbuOZpwVvKY&+p zE$uMDif=kWto~A3N0gG=(i3*`!c+ND=!r{wkCko)UMwDjzI}QVgT9s8leYCl96fVW zAY&+r?mlx&ImA~b5o&EIV=GI5P+Vg@lDd?(ff^igG8JLIR<=g+vZ66HSh+F>lZ8l^ zU?%_q^9oCTU~f>?v|VA}(~ zS$?HL02PZEF%g93$>lr?q#E0!s_eI?wFN&V;=#yJr4t$4laLISO&a3PiU~G z>F#fWe0Z1*lB$c&aTouC@y-Py+(>ZrV6Fq)eNs@Trvh7&nx=Y(mKsoz>)u5qvE(x7 zvKQO(jFh%`m2uFe3ek~nLQJ8bU1wQK({zeMVNZI$;$0$vIchDK!uf+;oEvD)BrViwGrN-s|W`O!p#M4K9s ztjbsntPy=9!OgrbSqZ+-9AusVwcEOg8E>eq&jk%eAh2bk%sSx1|8%(n~EtrYa_=3!p`;33Ec1@`&!}?PCR4VM;Vn# zcUR^veJn5XAXf)~4NYYLt%h36VhLS&d6HgaM8#uoOX94$x--sfTNwF`OLi3W5_usVneKb6*~YSStnq?`AW0z^Y!435I1Z ztIp4>Zk~u6(_6st2;5Rraej^fVI5--dUl(HmBoyrthC2^{RV6MxXgnWh~~#3JG=Jr z-OVJ1z9BybWWh!*k6?)ungFCr8ladG8M|pFjU4Ne#a|-6|&ns=q`G+io$q zc+SOn7Mc|a?80Q3+JJMw(bfhZ4Z|Vr24|K{jsS9n2s=anZK23^C0_+uxHo4}6>TYY zPpi*?jg-Atcj?30=_G|7UX5F+Ul-u+c%pLW7#WKG4*xJ&<@T*x=`js$A@1~c94MXh z0RyIY59g&`&13&#UPkUv-b6V_Om2m`CC|WPr^!QWEs5`Tct8;PRBZ>__BhX+UL_03 zlJ*{7$ZI|-OVW%fe@1{-jdINPjv}w!%lXdL-tPg#YRnk~6}gvr{nK7Y$vtcYc;9E4 z7u|I^oeHd?EAL>uoGtc?s{van*8aMHqTT_I(;Ve;ns{Vz*?2R78jK4ZN;rAykI{pN zW+=VQ;af^c$nG8L-8A;s+B^M+r(6&m8-HI=>@|1mdxGum*&5&#CX#YVS}jt7MN(m{ zeoOy^KSu5mkYrH?2%zT1PG#$)@kM-tNbIB{If=g|J&*9O=)Am`KBFv(d_@aXF1b)k zfS1;x)%lREgIW-#6`Hyagygc-RDB~*UgK?pRRjO*kvch`nC+_iEMslN>R}x6tZd=e zSbdo!gx3nGSCSHV4raHsXNZWl_?AykR%Mebclg4#4px;nSH9XT13{A=jQ1$bLn>ThV5pMgT!TzQ29+U`$qu zB5ge;##^(TQEZdp^77Zqr@wy2n!F(aSdbv54smA*Dl5ZuTPBBr`ABdMDMOnWhE09_ zv+!3<{vlg$7q6wWy_ zZt}&=cN1)?gsn_nVdfETB%=j63-#`41ahp5NKqsWg^~5#RE(vjh8(%_lip>>! zJ3JZsp{lxub*FEhoDXH`7&j?5?UlEf{%~++M+Z@`tyUec@2!Bzu7$bo#$B+JnYdme zMB5(k9rXv?u{s1!g&uG2ZRbWPA?M)Hj^S>1_LisBo0|NBbWD-HnD;L3T~AG4yQd=4 zi!+@0F|Kpgd+~Tx)%;0n_^)xQY}&vbL^yu$wQIDa+b`cai+HJ~Da##;+@vk2jp$cd zP`m-WRD{bYjJOao0bx;;(LQzD)sxO_U#f_#bXLeTB-lr27A|9daJEw(2vv?PrGJF! zQUAu<2^F_T)5>Kw&}KD27z@($i}Q~jiVWxL9?_QrNK$kbB#{IP4K7yAH&xavQl-t5 zIHrX($Kav?4W<=FS|%`~`8(nQ?FrOkBY~!>&B8R~ZknbXhTMdjtuT)vDIDKhVRz1P zMgWQmYPg`0yy7IY7}FCswpbm@7Liyn;sL8Bi*H&;+cmRZB|ESepXFKGk?_P}qWa)b z6Y%mwYYB|6+-qCfg`9${g4#r75qZ1idAF^$EJ*NcjD<6&6*e1mU|yzWuwHZ2aWkrp z;`1k)ZbZ)*M_BEmJqRg)HqYnDuQqdBbY(`p*e#lc0WUq^CJsenFk5;kh*G2&+!@EZ zDUKdg!+_t|Xk;SI%cHL^fBE&7%g5D#nZn@?rqdu;`h1iFK5AFn!M5C)4^65?N0AEn`2j+*J5AH4PoMkyOveBC^Sc5Gpzlx{_UjHd z)0zk89u+<%N8+_zRV7Syo4x ze;JFYH%P*~`X5ax2Kt)3;R;tWm>b1fbU)mB?)^lDGqGb5u{ntN!UQ~nx)G7)I*T62k#2A>F ze+%%T9)8BiGKw!bhA=21R)k3?PfnXB(-%}{*)^utfdk!5HYG3G&$al@dn41h|1+mUz|7$x{Apts6U z^Ko0Jk!lQp{!*#nxl>2E%b;x1SlDHeJGj=3YpHXuWJk6e09|b9v%af}rEZF$B(7Pt zJIoSoKab_uPuun0C>C_&91f%CUe~G&^$qeH3|gU?BH0@XjR+EzD`v>Ql+HPi2nscR z218t>scvJnn#_igB!XYT47=ef|E=_g~~s z4MP2ImWJf!y_=N0cJ$2|NQEg)*B}KbEeKNm5Ts=dI1({kx8#8=apbhQoz6RAgK60o z&u;Mmi~K?%OkAfSY`6^U1xhA%7jUAm3W4X1#_ zhTa(C#5gR|nHGNtHz1*-J9OXD&8c1t$+JKYRk!sld(TW&7(=5PqZzcAj-Ad^kN@~m zxcP8hI=&|9F?KdM7*rV+z4D3hGaDLUMRuq0RziEB1^I1rY*%$+gRIoxuzq;b9b}x1 zSl?5exwMT;>Ze#Kiav%4L(Aw*xmZPY;KNatm!~bnmJ)kC4+OQ8w{a?d`1{{~zK-Ke z>rh^{`|nSit_gQXjJA%)s$^elrzz!oLx1G0-G;8`8lJvZ+)n4Y&~^mSlfH$$XyVZk z0+gY3SM$<4B~gZ}ph2Tv0(h7r_Jio@OJ-a?b5?URV7AhUf>(s(qyOpzna6pQvremj z74D1iH3za+Bio8weSvtUtdJt+{Alli6^-v8d*7uBz8W%qR?HXXbXWI+j5MlulVk{7 z>`S2m5-1_;UiO5TMqs=0;f@tmGk(;HPqsS{ywyfFY>0P<;^~IIrK-h-}Yp39S{r(vuuk z8n>Sz2jMu97mF2Qz@h%&j9B1zZNFT)hcm&pFN+RKx8;`vyv4Tc8EN*t*=@J6)d^apX?+GJX`-%Y?H@T^0qKPRqP{_rU53;sJEPi%^>fte57F%}&w5Q!UQ+ z4)?d6oppxtK0Z^^=}Slq9APn{^trdjJu|IwbbjSkc3&^OzX z#MPWEaVo!V!V|t8Ard?iC<(+^?|;^1*gcG224bV9*>C%GF8Hy$fB%XeL4SijD=8C4 zP%#_8hWoc!a!#F}!80dj&N^}-t?|#ND^qLR^YXK<@A+Kd=4Oi)GJ5rAzo28{fm7wf zdjSds#7Z!JOYcl?<2o$-=2duoy1(|VX!%(WJ;(FUOOrB&4l#13$#}?hB7aUJ6MR1Y7MB^W2=QJqQS}Jdv7*F= zsiCYi_Y%37(Lls#0@G*>xX0{5W4EAh-HyP1$#M96z$^3)x=lj`y^@_1CG|n`zYtv% z0kw@S#$0=Jp|V?1bP{ftO9tL;{U<79gUN$F)JbfG)W?}*dy@koD2R`C7#Q~1t3cI-9w!JGt5Ok;;FhUAVPD(Uth6n7V-7YuJ{I+EPY5gO~ix2n5Q@ zCH+ubIOE(f8jQ6HR%K2VhUakvp{Cbfh;1hUF*@!zaNPb({miqpcXbyMWX|loQK4=2 z3npEe#JG-i+KX;(Ta9atn$9k7nQk#Ilz3X#E>+{S4S}O!8P|qZwY<~4Zv(;SxEC^D z32vzfI*}*MZSX8&CYK#>1_1lRC`sZNsiE_%^ag|mD>uA%g-|jw&`6oR%;<5~t|H7? zZef^*`o-JekgIbaoch^ls76A#m8|#a$4m)&X8!#+$~s0Iy7nUT8Xb3V-+WjKl5{^H zbhxY!*PHTtY$yhJ+blJ_)wNjM^dL)uMO!zc?cD{1p*tAw25sFl3Eud*95TZKRBrdz zr8%D3!CgUIcPVxuon&GPZkCQGb5RruaILsb22!Sofb!SE`1qE@ZleW3YUazc4;%Vq zU!3Xts(RW|?7U(Yj`zJy80-F?x82v#G%9ID z2|g)tze03_d+WG+gnMF64eSKyQ*a@;fhfTw)j@W+zJbgI!nM$e-Ekb(xLT zsR~mu6hkf^&C?$9n!0 zl^HY`yFyvEf;Fi3*!N>TPfIIs(m95pvb6W{X56hS zYu(5BWk{N_+B&3(-;Wfc&@`oynyV*MMcpGVp19lTTC8;%aoFip(pG#3oycfmL<9&^ z*Op_m3`oWD{`Hro=~;nE21;(=?@WpT&^M%jH=@1;87Z6=QE6tw%Nd)Sns5`j4|4Xl zST_PLwkiaKg*u|a{~0*C}bUeDNhB7WAyxD2h%^yZyy+t9-=F7 zDT=rNSEij*#kNjFcUp9(Sin@Mu^hfe=)Eh7#k&H2cOx;r2H+Y9KyKu9__6XO@g^!yojQZ?9Xia59A$$U7-*4U*uV=YVY{Fp$1(t8vZKjJ24&_a zZP91XmN8S|y=OwP81K;Jj=J}M{`J?N@BjFcjS{?Z;Daw5#MzH*69YRJS++m% z%j*feeubOUoOkZPOdawm+eBK4sg!CAzGFY2@~UbgukixvXtG~SVL3J;vpsx%rH$ff z3W4P&Oc^@>$w$Lzc6#T;rX?K_!8we`7`(S8izX0O;R~j?K#k-`fim|kcesz^D5|mF z0Zb*Rr3DFi9r=R&(^$oxQ>ZOh}O>cGt@?Etl*4=YPIlV(=%+pbp&{B9qW)YN&*b zBFBB#Q0Ry7sS7$yGxmUfU;-Fgz`XRfI6J8;#Flh@LKU}bOL|PjY9YS>aSlA8#tN|9 zsdp>&6-SRqtsm>m{`p>{&gjE5vYPS9pxYk)RMD#z))bfyctn-~=RsX$a)E{Zy2L83 zeH-GO0!?rGHbdPxnKBOEh8XB~VAC)RWCE|Pv}r7VK&vzqsHzLS!`{LjfxPm@SLW1U zGAl{MLAT*s%9AUVN5*9P41o%Lr_C32XKqU3Aiq@@{IhGLIsb9YFs$ks!uYAIQ{LUS3GX?Z zoRveJ2)5VD1j{wPt6<{$)|c(;l>?a_t(ekYciyB$eE|4W+;iHY9BFR5v%m`|nUh-U z^(%whjm2hN95Z{B){4ga^ZWOI|MkzG@4LaM$y{}Q8YY#Z4yuZHgZ}7b3kI?Ga`(a*Q3$RReFbFFA7W{0QQ^g$=cA4BrO3=!895m*2f(p-ydIc+M9r&lLf|E4Dq?Gx4=(=Lz|hY;1q6Wk z9*@`TgSPNQ52X(P5%~s^6-4MLA<3dOHv^f7@&IG?4f2!))#AlAUA?NJ;^&BynVT?P zx-d7R+zUXP-KAr~N-F~kZ&=rBlVVj<(jJ$ljq}v~^z%R8e|cTzNJLk_*p&HMux43_ z$hsXN#Ab(l@{~lKd5%>8GUvSy0YbeeRr8}{;7a5?Wh}-&fP+kk#;Jo6B9{d|gP>(p z^CZg9Y||iv0@EjvA)wf3u7KsrfK~K%>$>X1OwoD|i47KI%v0I_ta2zhkl-kn1l8Ql zo*$Txc})RJSRd;a3vb^HaOtx4Uo)sA{h?GnumnyuRb2=Noz0(doW~pCV30^dF^T1M z^|0JjW!sNnWXX8;VXD5huOXI4L|A6Y&VR>wi<1|kic}HfvqE>NtYOyu)=@a<#6o2H zCp>CMsc3NBx;hO%s2MlOKQ8Hsk>5CX0Mz88k*|qOIUbx&u9CC2&m_DB$|F9rN&xQOr!34&|SX)EBH9i1md)j zQ2WQ<|NQ$MQ022rpE*M#4fPyd^w6QTH>oUg#pwYpfNw3?LVDlhzEGMVjmfSFH|TMx z3Ggn{ngokTHka*4$~-)`K&XIMlvh1`vL%=^nftT z$8UrAJsyY~UG{SuTh-U#QR&bbW@KF}!7(_fXM~(B3p?|$BC}`x(R{|k4M!WcY*E~S zwbg(fK43Mzp*qep=4Q}ApX1PmzK@|R)^=|5ub0N-__7u5+s?6uS|^tE(zRuc z#f)sNSdIPl-P7gi%g;Z5DjJ?H)#MiC^Q=^>chL-`U|pI(y-VCZt$mVZ45@Slthr(Ktx(HpCz-Snk5@XTA<*1Yi>YzIH(09GGZ2434VJ-I#%}O>Y4ZjL{9H>U} z%edOAH`4T-W-Mo;dj+Fhz+q(`qMU$Bm*IL?nl;NHDHE}^DpQ{#k-T}od<+_6fb1~R z&X#+{qDB+RYb*b2MJpW08ladKrf$jBbK#wxMU=nuOf_?}bhBex*>v|&3w2cU=1z@6Y4YgQW_?rbCPT-UeG1D=Mm1C6ix&2s=P@ z$cG*dqH-;6hnd^lppk-bm+VIFc<51D(Qh4BSZ3VbX%a!xr%wO#W}4sMTxA6qJM z8GDHa3G&wtVeBWqz#+KqHE;V6Qx86`hbWO^++VjAO9F3(U5?q&BF_jG1KYrH^AlCu zJ#7RKHC<2NAelqfhgAJXu??E;h5}F_7PF2H96tlVibNV(RP6FOwNP_n6!09>b5Ai5 zS}WjFI1bY#bQVP3eWp0c#m-GbAZ`qcbG1uclukKb0hm1!__-!eDfbPx(_AB8WDZOC zO@)BV+__t<^z^ONqPK=NgTV3}!-Q2-!#IHklmZ{r1M$oFfr%+}HDlh9ydVL9WoiVx zvM2EDR&>H$?sqKM%!-XCy34g#GPY7hXqHPM^v*8`he>Scr|bO{N1ErhbyxIZ-dF&8 z)Z!Ec0p=c5REVoij0qiMI%Nou+i1%|sqNwQHOLu2Gp6{yM-KT`F5?H8K7lvyo+lvB zx-mmOS+i?$>hWN6dx}-IwKmGE{=S|Yfod5a<$g)7BoBO+NJ#f=w_8)`ty_N->-heJD&N3@$NPgc1aOT8r))#D&1z zcM2o&Ht2|m&=S!)g=o0OBB59w%N?Zi4BW`tu+GlwRVMqWvYS^Q1=r5t>{*El;X18h zRI$)%hKqSrX>`q8sa3C%?W(0$Dy%)T1*&FAB9&z%BZexF;I%djjq(*YOAk9l{6;)U zm(QP?fJGsu<@$7gckdEKvjBC2uvWqvRqMmZ*Qs;P2rvx;2Z7TA+XlbCk`DBLNi%JU zI6Y6jrsqp5soRW<4*oIu1)P1A5^6;31`mUMYO#B_qb40T!9mJztb-KYX&!^pG=CeYw@HR2)>H+E4ClvW!F zSd5@OqW7OR?GJz+C*D9#RUrdmA*P-!!E>sU;ca*=mSroDbiv;Yh28!4>n0w2xnH|! z$;5G@e8BA@cY`v`F4tu*p6<$RSOlQOy%Vi=;P37`LONH^oVyOSMa2Mr3+S|u$biTX zP;%+leLv)Yhhk!|0W7_qVU)!rS5E`E2Hs6a-t?CXG~CDGH4d^nqg^{U=(PGS#Xb+h z)8(?5uKE!CvU)5g<-Tj-=VJ=d$!iZstr78rZvBA_L(96S&%gNPU1J38Hq_$-9MMC1 z0q^IRKC%A5qp5$BHFO}SpUh2k56t!_5uu$9h;_rby~;M+iPF1|+QT?boxo)jg;M9mN8>pAhw&~+$9O|w3Bl+5Wuc;?EK+M*9ykEqiiAUqf-&dR+r_0o zddE<%2IUb$Qu`J^L>g${Tj|x#(2un#0(V4)ZS6=<`Dm50n^!sJ&x`~0q}WW&;djd9 zaH#6CU6^g7ai8Ic7y#Q!m=?qb;G@;J=D?e!YuX_X0GNU2Q3+miZoJ66w;5JnVbj&G zCg<7pL-U#JWT`2dq%U=U&Ez^k#}N$do^GdsDkxJc z;=T<^RS#+EdOj5UXmIsaw_!?}%vK6*0bat!RIBA|0X`W9%RDm#r*i63nX6Ve>C3T_ zH49v%02kxSXY{l^Gb6~k<`P{qnxgz#2Ff2n12*e%e1WObV~iGC5}(7QpE@(yl3|{J zr4U@Bf|auVVp$=~E3ezqZOG04LE7blk;jeB$`YG|B`O(`?IY0y4doKG9~|YclYB0S zyNI=m9v^lEskYrxJUtaVz`JPaGE{Z%e!6xn%XYnX*s?C&_U_KhUa^zC;d(DFPuEV} z5jZ1wPTB&E$3-Cx8Ti{Esi3AY8_o=LJEzB{HGwXi+GZDt$U<&|JuS`qo)2T5vrG)y`j5p1Z{4$wn=TlU1epBC)ww81%2YvkAA<<#aoB&O zy95SG5i5iiSrlFM4{xFG|0>p(N%gA4Zckr;rh9jiBu}0^>oI!}{@m0@C|B{KlOPs# zKJ)Ie=m;;;`{KUWQARycZe9cLh(|l?y8i8--p{zxeb<1vIvb$99s%Qoypf=>^a5e% z{y$EJLdN~X_yXSVM#7*UWg|0u-63_DS(o2X4;PmpFKL&w;j&cZgo_PlM64n61a|9Tw}o zUyUdV;KA9edK$dl{B~+VT~?SPE|zINKLKI3F1XFi)OI_RjRWm<)jtDrwI0uBWu2F> zn{{Amw&Q4q;b@ww;^%N2$Mcp^mrV{S!P>eR8hL4?K-9NGjS&Y*@Nm1GYol5os|#!) zb2g%(Q)He!vp{1cwu*RF_FwRJx7545fVcEP z8^r~+7RIY@2d}|dwJcJ*%lo)}*^PXc_aT;MxiLgb3`WbS@b{uP$jFrMv93prh9UL> zUUSpDC-B2iy@Ze^cE!tSvK2QOjiJYMUw|$qb?i}?586;KjgHUh(oWT$1i}cgVIBq+ z9$h#?uO13q_Tf2n8A;}9&Tyez#pxdB{SGd8w4|pkqA@$6~ zp)7ypDeN82Ew!8wg!c9ssU6vXFH_YypbrrMu~?mHf^hTIUq1GIDk(M^bCPxvAnr8c z=?k>St(S^`1g#++h!k(qMM@bI*9z>HjyB~@md@v1r&vzkt$QvZ1YwcJYv6_1>cefZeQ9qT;Op zrVX)T-JB=EnlE3z4)ZaHX?v3^;=LT-+89y2mtk0n-R#2jQdiUELpcqIzw?ZM*NYMR z#m~R1$wi$mua3^<)OXdqA7CJiTiCZ;^n3C9_*=5oAKmq%WJkdM*khosy zpc0EaVReTlJVGfEAh^9R^^llqQ#Gwh@HFevh4EROlbV;?6BfOduAcjQJJikI;kimy z9#Y#o1H51AFJC^kH9pK?WzLe!+mC1HsR+_h-CzDNK~^h_>{xqp?wDBj{lQs>2wa3` z&q2!Tz$*bL6=u1F5Y)EI9HPKgW2}lKA*4V=bMt5=!ikN4Zk8IfP7B}P6C zp$n3Bfl<7|}?K7){r6PzYT*8jw(P%cnmYUatA0X;AoL-7S&tNvGvKgNVLj%iOPN38# zEmn`?L#!DC9{&{dsQVussMf!=xpSwO%S)WbG)9?@d7I980+Kx~RI>;Z3O)Y@PPORm zYH;aneO1|Jr7uWhU_l!Yb=~R)vu<-_T&{onrCI^p0~9_Q71*8JiwW;Je&Y; z^?V*+pP<+olk32);n><{7}sr>Un;LyDTg8}gdSLMI14zL$fE1AuV7eYJA<8fWroa( zF0OG9!11VhjCrn=mZJ zU*Gp-EW~@(;k+`2;(G8!`t1rRb8EkZhUpZ`>Ms-PUC1}guZ$* zL&p|c+7^LfAJv1A@QOI^HD+#mcq!`oI^N&Xd<^F(&6eNIEHA|22<^R_GUc6m$WZUzV*RGKbe0J~ zu;oQ!69^fY&iY7-B5yV6dTUP989oE`x%1=ev#v7szEOz*_r<{5F!p_`3w&%_>KWMu zRCKn;?l46zu~`r~Is>m0*x=M4h-jZ6TLS?A*{g=B<4%bSfopmIRYr8~UK`V_h^YQ} zjJFSdTkV7q^16jGE*d?_+cC~^UOGG#+mAWm>2H4w@|5(ljP1xC%!%Iv1pq7x`x?p6 ziD{CwV$ZT`ZC5Pblse>CRN9FX`vW5v^0k#y92wa*#@UXsZKAGHdOriWof3uYxm9r{7qV`_o(oYujEl;yKohiX}HSzmmzA$2&&(B$lS?A{KAO7(rdMi`N*UfC$4kg=I z(y^O`^|ltG4TDa=FgLfNBH*|2fsQ=kc)p=mWW|5NWkr#K9fx6!Av)107^Kq}^b}X1 zC2<14_lKe3#8DNt0+&W>pBzAer5Gc?g_wv~FQbxUwC&c^)_02y&09eRhjD5xPY8}# zkC(-z9n5ZxHCXGw?VtnZmADQ&sw9!$N;+^dE#RHkTQW;aR6SBZImws)i*bd=^?f@W zaf0Q>9olIz(J3wu(kJHR#^8**{ahVUG^|fD$uSSwVINdRySEh9>iPa`=(uy-8)J-U zJji#aIFHzK0UFfQHY36`s*)wh6Q^|*4JO<7YAIt!6HjYlRapP15~RN&uo%{l;7ZBk$j00kvrls1>wHZduV}-WEadaBS&A?Px=xq4%W#KS>{^Or>-0EMqUal~K z*D>oTx*p4QToWJ#WpAV26W+~=%Cv0LgZLak5$(4{DQH`Z!6vvs8>&X?vk=>pHU5(~ zBmtVmy4Hjl@a73m2PQGSOyJ0j7kAp*n-U)61WdFsrvz7iV3dF&-^Ib-$Q0GM)i`PH zhKFy$jXO=0e^cwX>=10is-63O2(T+bQB${^QLdZ#X~kK)A>Gnw22x^U5XBUrmJT%q zltF6^y!EYV47A9){E^1n4B)fj_>km_L3VBQJUa31{k`HkUliK_Duoq~8Gukdt9e=0 zT&Np|N=+ORK;}~mfN9`$iUhsOBl4#8*upN2D8@}C8=QWfzeA-qXBEqi!)P9`3(TRZ zRsp7~jW4qsM9maB6cCjxYJ73v*iym}_-o*`_)u_`8-tq-$flWuL{J9gp}z{h_e-B} zp{{vu`J?{spML?}4V4aQ^j+tb9`?q6ty z$+yH@7+IruuE7=^83Z+&D)xrQDKypcP#Lae4MDJ>H{v!!q-0kdi(p^&GiLzt%sRvg z8qE8wbK3#9_#YmfKyIJHFwY)ChPn#=h9OeU@9&`rJb_ufD(?-doit82d_rmJdp z1W4GEG97WH;jQ8**6oN;?lH$qP|1$3-Uxdq z30*7hFml(@pl}dgeyR;vi!3f}e!TZ)Vr?6$Bjs%!@i?9_T@#1RB`9};%rVSKDlp|3 znM)r1SPe;(JN)VQC#QtpWD|PscmE(nqL)XyJp!U89)W1tDy6_0kBnN4MH z+y`SbAAS>#rlsYZbOT-N-v}}GObj)`O)chP?_rCREW*cAX4t4Cbs< z-tSdv#Mc|LH;p1soEY zg|~ts`J58iB$D1RZ^ItXQ#2U4QQlu^kRZ2+OKO?yH(~119uuD4WzO`4#;c`T6}SKs z#W|D_xL2>k&e2St?QrPRcs5m-K+A548V}KS%si+5Mb-t^7-3!dexHY&?Tb}0G6oM4 zelAmn-bIm@Y8!zw>UP|tP7=N6TRN0?!NBG^j!p&OL}vppcY2+Va9m^UNwlcJZy~tx zL>Z8nZsmO+F@{CLi$|`3Awk&L&qT>flfo%~_LD|mQDcnD(adA>ryt1G``e%Y{GPIO zqRf62=+tx7?sk;aQZn;5nvu?r)Q5t!iU+{8F;XL!R@2fH_oGCMU%ZLB@_{WL@P`R% zpHsa5q63m0e@j~$^)TjVYTjmtUpmv=yQE<_Jz10vr)(qoiVAw9pG&b8>AqV~fCJ+- zyT|3xseozo1Oywr=6H0|Tm3@g+SkGT@RMYlD+2Y?3b0w>y?|G+GqAWZIODB>6*WMV zSIiefLo-w=s#P#rfVY6~f!hHu!%=Pd2YW#6#nxa=Vg^?)JDK#`)2$X(JJvyug2C6w z%n@>{jb?LT2yErz8JqGn>aC-AYzeL^%5GQRaZ@Wg?WH!nc0<(;k+&G@oI+7lh53S~ z<#M_bHgOi+vy8_u;<{2*aNin7F%y@?M_S~MvNC@ayGE|MXzOdMx&Hc*k@fk*mkMgT z3e_d)?m$Vr#&oceN7$>b#}O6qmi~<4xK?Mh@m4pc_O7r7XL?J6;0P@*3`c3DHt-e^ z=MrBozPv|UksW!dPzD&T!;JExBeruc-@DQ)#Dqa?h0BGp&A>a1yKq=Vas}$hvCy1K z4VKyfIpq!{g0-TV@xo$}IhxM7DZ>fhw!R5+*}|isQy-c&r8&UDWHZ|h?c4>=;E^q6 zsMhHay?w3s>0H}xK_7UmO;jDN^T;oS?=WyqY@F~~4U-&?Z3v@-ad1mG!MtDgwo8~+ z^A@zB&kHB6bNhH^;yc8VD|sMtpXi}Oc-3KwPst(Rl!>eHqO%Ve697I2CsAt9NL#Lc zy=e>3h7&Pf>WsUwIbFhrt+OlEb6@&CE}^N17#ImaC)134g*1U5@C>cSvZ=J{c9FQx zSsDBCyB~i;z+U4lWf?f`ofCC56|)!crm%CMoh4Bx)vH=%-YC}V>v)k;cXW5on{fn~ zyTufDo{<;xF_lf828|U5rY*&>5he1VlD23F^rzh2gyQOC@8ET-+ij14{MLCE$KKiy z&9P0boDx1aP>GWt*_Rz0<>U}PcZ`ZLhzmg4mKHVr)8RfeP^}=Z=`I}$htyk~Vyd34 z7w|S2QCU!Y0bbA-dh3- zeyIzrr;TKH!&`C8;f2blN`u-4fPnD=#07Y7zpa9qG4Cl3Y~+Ex&+As_bx-%)NrpI! z*2v6#xcY9xorWD}w`G-y{Dv^EwSD-nrpdMNXfod?xUe zCw+)@{qD^$hPsd1R*I`R`^tg`D1lKyG2l}Y-DC}RDjSd7^cK;l9d5kyS%5}Q_j800 z;gkC!R2{*`7$qX`9!{G~j@tFW`zy^jxpo)DqvdRf5_DB^+&vgW#C4(>OXZrK@rZ6# zR$m8*=E0Jh!WNEU?|IuD*C`k4nddeuv~bCEE>%o;8Pt1f$RAuYdEaKYm1-g+o#S(Apu|!ZMEp zEZX*~-FEvKve^LkFrjSj9Ya?U?w6 z)LK_^>>;*D3SA$OavfOgka$H|wmpdJHtEmVxaE098r1grJo!iZjKhEcGgvBox7VC% z_Z~ZmJhpsi3l>34!{*j^TX;LxCHakTy0<&dlfDhj%*k?c+9skxUch0tC!`3vj``6U z(6*$b-?cgq+s(uO?Ut|hQw6xbs%XArxp(`x9rFOHWgh)>e~dFlyrC?WD zE?z**51`nkFhP4!KD?sc9V~WlbE9*gs67X60hqvYZ7k1%h3Wt8v*v3+y-<*(^<@g; zsq`JQsALx{Rq)6;7LI|}^Ow%R_ve@iHAd@`IDAq_tF^8+v@4G?dFYWN+y&I^f(7_x zJ-ia;!pWp}n%J3-HpMnnBjuySz_lbmE(F7nssVPKZ!<+Qt9td&EHvXDncuo?IlCAfrfLKx7g zkB;8hr+L=*kox(S8IKb_sE3|Z(xDs8OxW}lwr2-fOqiwh?@3B!Ge>FMyuxwjhI z!Ol8T&Cqo<;-jN47!Le+fW>!HTJ)aC`KO&jpQAQ9C7?a5+fKd$pzcdEh=-XZ#V=`? zDr6U0`|u2=YvxiX<{xFEu^HXnC=0)R{Kr;|r#Zv&$-;mYT>zLxt!cw{+brEm(ygDj z3P8;dYG^O_H^~g#ltr$xOmC01xz)VD;|$VOeLGHyZ{YHb-q2jBVA3#Xa?=4gX2(O_ zN~1S6N) zMq)tAbnmE6ei#$41G=Vi8e@WQzdP9syyEH?h+4?-$-}^FO~;MU?gBQyEV=|M)w$R` zJpc5k=d+Q&xlAJsS{8|IMswiXlj!mf1Eqk}2Zid2-$5^w^dSzf4Bq#V7fYX)3ygJ% zVHR8*CRa1XV$9~DSdu*(S`?HsukJDgeBF5h{j`Z!ny~bdrOa^xroiTTkoGE2wT(hH zC>FK`X?a!pgQ=Pz*rp0yHycOtvxL5^u`ihu?5y4AU0^$+r^@AXCG>dK!qn>V+#CV$ zR=)e!h%)q%vO1jEC+!1p@wcXM8`IRr^XvmBtx2gQ{peu z?Hv$)sC5i%RzR65VYs!=70A1d&hCDhW`)d^@X#VR z!a$u1WtYx~Lmg;V767P<8*RdkfVZiiHIE>|+OrFEr0C3R-i=z>EKKOFt4erVICrsD z=q}N}CauNP>xmcOv-Jn+eU_*VuX%Bna8R0X0XuPML%J|nacM?=C0&ZXOKadjZ`)v& zO&yANw5h?QuRyu93W|Gflq>TdggP_#j_302QftTBoDxu|s z^1grFhU3c*-#%_DoZo6dDC+5A;Pp3kjh(aD;*Tjb2G2mY!lZ*f-pcQk!S-wf|C+}? zd^}}5V+sEH?RL={m8%f$d(hpwO1K>dtIt+jB>m2-uTubCHWo=%j-;DAB+-~M?KYrA z&?^HXQ-~!QNOa6}LFQ30-BZjVj1vSbNq#U5E;eC23!-b%KS(M&ZgV>zOu>>(Z(D_~ zhvu|B&7e!kj{Gj$T<59|DOmy*wN7Eq{4uRFieA6ZW1p%j+6F9#XIy%rKv==%NnO;L zXYBC2w@KEAl;q5h2~r&abum`>RAT;-js#duA@>vi=HLJLTV8(r>tEuo!n)o^bvAX+ zl9vnqWB_o3?~=s_+Q61N^y>J~!F38Ahq$W~JLwDSCnY3%RF(S<#|V@!{J}gtbV3&#qbrf%&24Gqu)&ELWigRUlf~RgebXsnQOhj5 z^HhjVVg=oSaVJ>qt=|c6C*Yl!V3c?@7q3;cEo@Sfv*+9^j#K&2==x#q2`p0By_)xI z(UF^8XCx|Y39cJb4D-^aWp2*cexm#Y`iR=TR9z5PcYxpGYEW6N@yiuByk%-D`Bt0a zH{(Zxo@-T@6rIKvUtXkuRafj#aNlH3O{|&G9rWX;=wPt&;I22NJecHqtt%$Y>vL0D z>?pl)aD$M>d=hvDpRWxLfL*ZZijqa;RT{@x-72r8WAquo$Sp*(+-vG;`!JztLoxgE zYB1eXyYut+KO9SG=P+_z2gH7jnH;rTUV7v;%_dDW^+r5Ve{6He<+bOnc7vhNT09)w z^`_h!wu_Ta@MrvVV{{q$4qH|AO`bgCdyqTCR=?`E?>-^eGs3>vmrmVyU3B6=i)0YT zZepYp0Cxn-P2J4&uC3TGpxLrQm?pcU7&FB9y#{!W=(9|37Pz+Y9L_yOE&D6RjUT&J zUgXV5EHrUVTsTHjVDe1EQwi@`RB;>=Zf8$cmhhXR)>(rr!Ypww4&I0ioQC6=!EOx_ zb5_r?=O5}KlTeufXWiDR(-Q!0 z8ZzeoSxyt`NMPg!F5{p7;~)R{```cd*T4Q|WQ{bLz3xc>%q1^-00nv#hX{C-=PH7) zDG7CZ?M>=OJ7Hg&li1m!6E|dj9DQYs%0%RHP+RbI@#EG;#COy))N(3;``A>YjCV=C z6I6I-coGi@w|9$jRH<=~_czNdoFdfA%Vq(Io&y`_ooieOMIyXGK0)HN|ppB22JDjx= zzPkQw2DyeM=`Qya+6M5p>H&ls#3FO~&T04twwzHw2`w^dOj)`1@cJ+R~YR*BS7$g2(`p0PGu5x*+C zRnJ=iUW4=LgtQB&A!7QeaP<{Bu5z5|o`Liw+_E0Pf-9>8^|(_H-q$>9R(3kYiCGyQ z?KGcDkwtqp1{;D`aLZ7>%w~V|zp>L!BNkF#0NCB*M1?w7gc}NQS%xOVy?!^aPHe)5ePrpeax19LS>>UmY zNcK@&joKa-Dw6CI1!JRHTqDfLhX?EdggDu(N}HdDxQjj)OYs%n9(cCQ zL3Wfc)rsOh^T5r%^*B-ZH5d(AQ&{wh_Bd-8QFIhsNo}cOla!7Xfjv+3pwSjUB!Z9`e z1WmMCxp$#TCTMojLN9;#>tFxz_kaHTAOHAW=&aI;y&B{aV2c;Jm==JQy#*IoW1kmi z8H=NNfB8qKs+F-5I7HC%1@<^abj^^UW#t1TK!kRa{Lvts&~}xRj-JXFC6Q?FncJ!Ro2d!W>3UbPcYC4SP93T0C>Adt5&``0%AS_iw z48MST*ZuN-&eKnA6=p%fbqqW~JWBe7gZGZC*fr|SwKg`HlIC+z_e3*xmv+yMAm2R{ ztqwQ!1URVh$_i2-5QYeu3vNJ>S>_6GVsQh&qU*2dQQ(euSw4OJP?WhB^V<~^w77e? zLBd)tEO#jS!qymWtFmYfSh3KU*Y(sUSUwJu-ea&_apmqbP;D}NhwZtQ@}5LkcPyLV zX6M4->J*>}WLu4XmB8%9fLNRb2;q<=*aeCPUo&0B%FEKM z1I{XMJrC`GWgtS&w1q9!qBZToCwEbK%`zS#e4|QZX^u549}2F?_RT*-xX=-|b03@roQq zefGPt%&OIiT${HV=mN#Kja`=!ZARk(&@wum-UZ-};PE1z?9ptRQ;{R+FR_4U!DAg4 zhl%L=F@)p&%kBBR4Z>S9-g)KHM30UCmx@Xf(K5f@NB5Rlo)H`Ls9=#?|N81mFSb7w zw^F2KPabA6H|0{hfLxni)H^t^SNXpC=#a_<%N+_sVYrx!*VR&U5b*LtEZ0oDMA?^F zb$+0{9nISWI!C|cQW`ib(i{10ozEp1RNV;-{tCtms(N5Do67i>j|aWNJ>MlKSYoeI zbJ7&oYW3y(zOL9+lT8o6#d+-dmBbStQh2W?{Z30mggB+qCa)d7w`9oKclB#YiuEr! zIgM$|yT5l~T@WaG8GtjepqdWNMj{nsT>g-!@8#OsKYsn?{UgiXkguemNO#eywM&)@ zAabfZD=eamCk0vS^^p(I3%rHXU%Z?X!d}m(ot8?v5j2UG4^;( zKo%)5q@~Sp7y9bB5U}`C6Gp^;3e`IW`ZiYgY2AXRt+f#u`oxj}X3;P#V@J|{0Yil? z?6JG|Fjgmh$q~G_okBjBgJg?t*_pP~cIss46@J{Rn~m~ld^}=UCgOg;W{1gRIIgNV zwQd7;I_1>4fdlMpFUiC~YW^~9XhERisi|Bf$#UnfKQjAIYs8YLH!Z^)%MjM2VsqgC z=cldWGT);l06eu!h?(-&W-_^KriFzvKd%yL5Uof|ZJF{jrNNYZ$X`v4V% z{D+yjjvUIn=Gg4*dD|pcl;EI4raR{tU-+fKwf8mpeBoVto+w+&wu@I;CqNn(5!(H| zxt*K40Iv^*2x5Sj&wI@WaWehYN!ZLj=eVB76gPlZ6N%hEVHVyTV^KHQKnQO?i2MEY zoZB(%O12Hd9%1$`e-lC6tK;EXWdcDp@@;ZvA^tQ-7f9>C9-d{nI>i7q zniF3XSpg00KGesOuzMzCO=u|K>nO={*b~344h^2R=b{VJwzth6Tnr9ezJKG0&__W{vC@(tstoM)fG#~LJHA_ga5W{&l+9pmskTu>FW8P?Yq z#+-l1BJT%&H@A9SqAN%m?z~oG%Q;ET#xQBZ^F(*d(#Pg~$iT}ORL0eZX-aV3T@2k* z{D}}o7(kG1*J12iycBM)kn)Z3BgURKmUzDl8q<JoH}M#qKNN7u@%()+@+CU zYx&n-tD)^$oxNbwMFdBcfvtkFip*%0kTMEUZWVG=MdoAEZq z1Oc<;Vd2TVcfo!$V#NRhd&gn){V(eUi}esAQwgCIoikDzRJmVvr^U1vY;jFZs4N|1 zCD_;h*YpLf{4i=Vej`81+q%RiF1UTvK~26WnIM|jU;#uOBwcbBieCbU&k!s|I&u4= zvGOcym9Va%eu@6~$y_N?-(#7z}Hi`AFEqo96Z$(xK}2&3LstBT%kjmPbuhh3S? zJRe!d&Jq$4_h#8EKdf}SH&DNDGD9nx?L3Ydo0|1?mbFG)6fI-D+QeyHCRvdozI&YTKxFguYO)V+F9AG?;r2a zb;4}rY>1Yt@Vv`W?g)>hlySKj2>KLanorjw*D;RG;M~m_YJHs8Wk z`Pwsjs)G=(o@QW5JD&Dq8}`KTRd7!RI<{`<9g_{%(HRc-RZxe@U)PBIJMwn|TjhGT zaiO0Zu9SqLxYlGN>v_R#%Z?P~5$7>~i<7?{xPqCpvu zAzT(8EWrDGuk>!95=aiMgOgG#dS;^>g81b!J5G>nJSji2OTpO~a#czg>O3~OkSu4Y zjqmxaR)@Cv^kB{|;MHQ_b=RDEr%nP!-um0K$pZ|U>PCzTP^*uDlInTS?8aG_q1jGf zz&q0zm}CO!kdF_D#k*@qboH$s@LF$&-+VCe@^N0xG-vT3^V3f2*Abt3lhU8ZQU>Rj z2^VUeD=pK!4*VXK#0wF8ug2DJ;W$=I6gd?|0qUCkVm`o<0Nq+(-QKIBeUnU33dC^= zrVPVadR?4TxH0Q_yk|)_62WbkL#f{DK{$eEYM{!|xxHV_aw>K0Jkl6XsOdT21h|IV zXK);U;+R=ga(s#rWnX$O6Q z1suKO=@E;{vF5+nafBd+Vf1`H^$RU&QGi`?GfPYgg+Z~UIZkmEfcDb$;}Is3Ev8FK z@5gP1N2bX`lcCGtDGkwLmL1c7CVjyio){%A6tryOFj}V=ORu%go&T0Fq+TKeagMAd zP1fboYY=sqql=PpZ*yNo3QJFF1Cr3gG7w#VMs&F^)Kfi0iQ#HtcbcjHm}5FoGu-rLQ<3*;Jqg|Gmw ze(;1b*U!rSs|Vic?O9jgYysXEn%cW2+$_-4yuu*-su%CsP;3?r<{C?n!_e_E$QgLG zikW8Rracp1ta7~D^XqNUH8i_3Q#SBssHjo7pu^^m&I}3eu3NAFs7t87)Yt)3SL2P# zU{HCXpP65Zzz;@Mzdvy2gDRRY@aMz5L~+smkM~+L?&{kU&MO(fGfD|FR*}()>v+m1 zQCtz;siTM1%+fhH4}Lz5>Z8^PsH8Gm|6uVK!)nHJb6TGexRuoFf*fT)t-+I5-|=kC zJMjBmQYpAOhf}R6E|DA5MUk~3fO^cx!7*A}P&c-;4Ru23b4!xvYuX{ zm_}n6iCI-@NVSgnv)PgS9l?P#Ntyd;7$_n{ps+`V=c zkuDpmGtsCE0LFGX*Nm^@mbo-2u7=pj>k`{*dc@9cqJTI$$2x?)>m{}(sxS+DNkq2I z2L-yli|?Nv`!WSg`F*^r6#++e!mipqd(5hy#D1>=Z#NHaBGk< zFBAiDas$iuZmO^xIE%^cu{WO^8O+8Xo`g`&^tDV#a}aD>DZ1|T6gvHwddH1 zsgi;~56N<-);K%TVz6WAMQBwEo~#B^m7`k%qsv$5zDjps)z4khvz{cqOtO8Icu)pQ z8`R|*W*dF+VYJ{;?gaV6hxTISy9ld4Zo1*DAFB{vYr^UmaYPMm$ zRQinI>;>-c!#ymDds#E(JsT)54cy1oS7NDQZQKedDd95gh9XB?DB5iDkZek-=j#fq z+Y2SpI`{^t#ku`_r+zST}m(%OT6wfffZ}bC_kEd zF&4b-+>B;29N+1@ch7L6EVl=64NoeWJNQa-&S7j0jT@r!v-A;OmWF0vw|!qa zdhyR{JPB>mzU3h$@=Opa0W(Y#c)ttPy0wV{Q<03QB2q@ zSDYc*>CO4LO_>vCkA4XVL|ilYdbFKl^d4n)wT9(vM6%Z?; ztRI#;FXY9aYj|Z5-DSB!dN=*8{i=yDESDF>Wet8WEZ2TMo^H4>MYai|0B>!8)e7Rf zAZ1+vNiW>>HrAn0h|AUSQN82`LnqR-cO#50TbsQeb>@65P~KCaJ79?&4T4D<*f@OP z7il1aH8ho7(Mjo6yt+1NL=iJQ)2qdfq(E0^Xl@LnD}3HHMX_$@7^_$X=mU;?VgYke zv?)ktmG}JkavLhT1M|}mPOA~6J%h!4dWK9ZE3Qk+(kE3LSp=Q*c-D&Fv^Jupc+14Z z;i3h*d2BXp3$Fo~JBSyj_N%>souM?%(GC%sx&i5IIFr3MxMyydw~agNDy}RvA66IY zO2)iwxC?g+>dH<6Hp5(FX&M&XdP0XJU8mhdfh)9;oE?e2!f{7gw$!k)ciz}dG8mnryO(d*yA_=NYxMpjg=B|7l zXt4t`98J_xIKy>4(gFu01MS2+2n#`4S<%M%KV+SKvzt^H#QhfV2h0SUQSS8ya5|Lf zA*Q(~8sA#m>i7RDKEK@qxz(d4Dd9Cvmu1gB`&`LWr}%@qx4|=0CXcz3$s>J&z)Phh zNoMgq&3*BPNq>+MFN=oT$f4N7Y~9IJMc2DAL61S-nJUY%f;M0P9tH`#3RIHLLD%Fx z_>P7AP8^6&l6jTwjNUP*PjerNc3PQ-BtXudWEtldsL8G;2 zzktgxSCA(cjHDuWm1EdSaamt%mH2{Q18NZAz%cEwR4EB+ClocS${s9t8JiN)B#{;3c z&nN~WrVNqmE*CXq7lULA11~3FsAtpIsR!5NPJ7zIcx#lF)H})??D%A@>)1GFsT=1x z$WkvH$xjN>yE_L-LW@8YM+lGBANX;cHbH4Ok_ZWMCeV8IZjG~6jQO;OQK+N->Sgwd z;U7zTBV-X?eNIj)6R?Oz%^*UC_05~6Ir{j7@%Nf%{W01Zu^iWK(HJdH^>^saUHcRd z=L#f;MbRdt!KO+sq~g!p>JqEK7HQ1};1V+kIRiyst0(qS&d_vOvqrZ^dK%_5xoE5f z<5hN>;u3;vj_IoKH++h4#enanKHLs<(@wcpecXyD8y58vdvxZebP~s0D8dE`zlAi< zoe)%QgSDHh5{aoY)JeiuTNQ8P`{jqAUCUMXc07ZGjZz8g>J&%8In6;kQH-VLtM*=~ z7#;47nu1vKz#=CAA-(jT2O#<0xGULRSrDu)KH2uvHdwu#(0f7Afep51ngcgptuPFr zyajMrFFt1?(MTxcJlNLVp@47oFG;GwVYN^H0-O3^pxvz&UxuQ28>3^_!Eim9mDS7gT)HXp zOW653NGP6)1zAdk0xbZUpgQ zEN3bH4)9u5H}Lwb7Vp#dsD?KVZn5QdteeB38N2!zpGGMvCaS=frB`=nhKbwk>;&Uj zV)9-eE~4BSuhm%J&7~Q8#k6h3O#Ja98Q`;R7k;WRHDe{N20O#3K4+h5`mx7SLfu+x z!PXzpa&669dydId21tCbp;mrm%iw~1%TDsd5RD6 zcvZLjv}LaKnV}5<9oogX%vV27&&}ebPvtq7aIrBUfz4x`$oHDoMNzcaz^MPK>lR~F zaJE2O^xgE0{ss;>GWzjB6Pxh|ogwDdo}1JNPYOJOw8vt9pBOdyo?|ttRO_=c63BH0D%4mA=zlR0^-IC)VWgpXf)5 zOF&+Fag6~UmYz%28z4%YHkNlROG3gV{K*to-@lCN{GUN>73ZsPbCSMQ&aXz=C|Wa zQnr420*o!{dvXm1YGKtH?FNkjx|hREWR=eUyWk5VhfYvQYOKl%;H?pQ@92x>@cbML zwe$Mbb4J>25{>eU#s@S7*0OypW_gxpH;$}o46#ikI70}fmlydye8*=#@zPbdS^;RR zYT(vxopR}oRsSsJ8KDU9zPqD>!IrGVyLW57+LM3VteyA8-h}7zab|e2w{>&Sd`;d9 z@9gzX;<;R7Fn6umz^hfN+hM7Wr+F@e>72{l!P&sdfBK{NEws|RhPy&Tm5Bl3cTF9e z5-%ifFDJtW&9jI97>jF;9?LD4xCF)cyUOyl`;lA1=crk9LwVADyfYWTeQrF4QkqXruAECtN(PZBAErrv&x} z9<`k{b~%O1p-jxe#|7xIK0WHZ^Zg}rOgrf4*W*4Uvh(w=U8#efoI!s|wDmN>T3t2w zp`^^h-X25dbOiIvMN-j!gF3Jr5nnKcA-ntr^h*#k>+>=EED`VF;}&w=Kkj}HCBW2RHG zIajCdF4*9>=<4-Sb#m5NH|K;5yie-QoO)Aywva5r=6Yfo_+b&r2J>ZAL&>g& z{P26ZJHjraxz*`ZL%Qm7AnZ1RxS=HgvaUjdb|D;RHOvl^uJ?w-@>gcdAZC%lu?w5yshn9sM*`s3aW+g){h%$4x7wQve2bSi+tUw=V&Tn%+}yCO{f^f@M~+mk0^W%vG6Ge5)dX zk^IP*s($?S^G{D4Xr-;EZZs+c){kU^i2|pU7!AhQLtr!1wU>xXaCeg5fyV=$-Oin> zW>j%Pc3gT2j_zs5mTmOh5g*0n5G1$}x)rPAz?qqIO|f83!axvR_#Z@A`ywcw)x);M<3Dyd64R72M7PBmjco80%*h~Ik_@O;iR7vqCJ z@?vw_mcj{=nsU(I<@c$>qkL+tNT2j|@{-LdU{=#lwa z79Vk!^<~vC*Pj`)VrF2zJspwM{tX}0hvG&(2C@QA!-KTp^0{QXK8`UHnzNSORgq@V zoZ{!=;fnrKRx{wvv%I6$iDrldvvGnxslHqoBt#>=KtYaRGy#NFqh2x+EQZUu9D$ek zj6-&6o5Q%;{ofbCJzgnQ1cl)}xfY~0iFH<5he8rn6f$|cq(Y!}|g@5xEa zIkqf%gkg`FAR}XlQCkn6OahZs4_W=-g@ZyMdPQwG*LIiy?!>RDo@C~M^lb~Ta@$g< zt4fI+>7xJ%_8AL&#oTL#Tppr6ZSA& z<$$`hxs$Ki4LYu6H%)6PWl3;8^nhz3WP=%} ziB_T5nuJ1Q8)i;3;(akHuc2Xa)}uD}g$B#aOI2$X|5z&J5M%bfq-J8cU?G}iL>R5ku6+);0Fn_3&WrMcpulFO~C?QtG3>7*D_de z_ax`+VUDr6z>NAYczGtyzGTdF=aOXOCC{{J_?m($|6Kf4=Dc~rH*bFyue#D=a8Tar z-LV0K&qt7VcLM{icq-n0es7Tj=$8H~qngjm!#@xIX1$z+a=l#wJzas~CkWDuv=V$7 zdc7OU5dUodjj_+jnSSSWL}Cq_dtZJ4)SS7jV~<;*jE2&FZpEk4K@P2IkKxqrnQ`yl zA(T5EiQK%btCGrMOd&I0htBIA1U6}aC)f{m)jgC@A4qDcU)w^weDvK>&cWl z*d>jES;LqKU9<}gk~oaxkf+lIc&F9fM*!Q6>|bjR4gnf7u(hKp7mu+dKchdnODI3C zEVOZao5<``mTDkGWsoN!eFM&k!~t0kN)C^f=Bl~Q%||x%gN?t;lNq;Ngq^N55t(vU z4suLfs0J9z`LP4O99(?nn-R>odcM^#I0K{6(e8wXRdUgU z%YaRKd5JoM)`(QxgE+jJC#kb?}gvFg3bVG*Rr5ATPU1b@3CsI z+!c7P!4LzsyI7V9$^+MS-lH%iMW=`2$5zK_+lA^j_v*N}(%6Al<9aVlW)_JB{Lu(4 zQk7=-AW!#`X>nB)zYTQa)W1tf`py_jKL+ky&J_>oW`rQi*60~jckUS?;D_QlXqXvH z3E<%c;y(lid?`9t%MfDh4b8 zSwi=L>@V6h&?#Jj{}dlzX~v1n_@?+HIr3CS6LOmkr37)*zw z`#khh<$7)J?AkQxN8x1}+t>sVxosy$gHgb1{S=gINuHP|dlgdCw6Po%b~_`E^BwYp zhWkykamptM{>F*7{3CzthYj0!MIa&_7Xzw#MY#?v8Kxx8eanM>2&715P;)D zeJ)Xm8+HSn)a;jGWG)+q4jZp8L|pyn;dj$)zj#yzUfwhC3X%4C|7L9rpm_*Wjd*5m zLB##pR25kFww$PdkYn-wMR3qgSo7L8LzMQZ?MLu7nY_js0^>D!$pRaA7c1&nL~t@2 z=kFiE_LAj&@qW2m?EWr(hQiwa8~4Tfc+&~j2zw41$_Wst0f#>xq%y2~0SeepmhvWr zXW-qjH%kspGnVh(RqZOa>mS+=624dMn#LAb?1VHk-Fqy(U-Me?%X*91DHX8MuCzFP z`?c|Aptb@5-WI<*8;zTY>}F`jdbzh7+WXUA6^jg*$kXqjvCa2@)@!pbpHHVYP2?KB z`k_<~52I}w=9t?4QhZEnICMHxV-$_6Tlc#=vyh&Y2lr+BP`o2sfcc%Ae;y;9e|qk( zYdp)Xsh@NCeJp!Tze|4Lu~fBAwjSBXDui$dBMm>HTjb{Q z7d|n0%48b%6-3DK>6hY7G^YIN;rqB&&uCI=B`yn^Hs?73$Z9f*3XBF#J5e2TaIez% zAi|osKaM!9XY`kej#^2oLBj14vr;X!F4S@>m;+IO-WEK}+swcffn^8+ia?-ZJK1B) z!#^$&EWQ1J3QO~L$q4XtJiAUrKm!JEY0=itT0KQ^#vGD(95T%-f^zRd2~yr3Tlp)b z3i!WC1siG(MH~Gw)@#9F#SXXZoM#KhlrwK)0fCO)$aBcDN?8G89h>GEHc)k#EaRlX zH5aDd)GXVwo#zxmUpCTxLkVU>E8sPcr4kr`JRfR9qHVc*nS=pXo?Tci@3J-cYw*@` z!zl*4V3;(!*p1a$q&;Lj*X!;u`@gnfe3roM!InE+=G%?GnpVR58Wf3_RM-;5hK8q* zpLd)z-`i)o`~c3?WfbLA;HCYGczZu~LAcQd~jxBtmfro*Y z^SGO&mxto>fn|*GSp4}=>)wKEpnN`5w`0{Ad2h(PX5>Jxt3X^M0dj2xB}yCGn7VP- z_BdNBwkq+pqpDa`xszu*Cwh9CZxOAQS6QC~sZOsq66>>FYjWf1TVA%FcfhfOH7&b$ z^T*=Q<_#T3*S{&g??G%usnIiM4}+)b!!9+aUv7Dno(VEF1#jFk(_9#-(Fwlmr%&DW z8t6g%S5D9DH4Ua-^uc&XY3_2DF{~qFa|PGc48*K(2;eTu8Zob7)c&2h_KBA?tf_9gi<10ECLXTX`{YyKrsY8!5mgTPj=)Q(0A@L+z zimWzY1=`+$7p%A-_uh?R87ni{HSlhtuD{cJ?O~z!988R_4ZKEey_+C=XI^Z3gsltz z8x6xW*~6c`TTKGGD#I&UUjwYvQ(4BleZlgzw>--ox6ZSxYNN$_bwt5=d|psIm4Px$EuHwN&=5|zz0aZGJ1 zO0D9!Irj&34>@~sVZQ*fJ|=}u_Tsv{^eM*#cb`5tRD)=0f7}{j%w=bnL|uGr0#9f= z=k~?wG}01=Xp~xK6?P%T4)2Sb9I@`>J_&f^B^rdhdUd!o)$zGpXQF8(m8Pcv-fw&C zX_i6)#F(+;TgxUsg`}pc{4~@nYl3G|8ZmKh+)Ntj(L+zsVVdwrwGC!y$l0Y!K?UCw zZ(q-A|MsspO|SY@8#2v+~;GA3!1R6#>1+oFWe#{rZ&Ew$Q7-Wa1ma|tfxb3!sDtux0oC@Ft zHu_eT9+f{S)5Y2>V=q}D1z;m0#i?AmEY;v81ZBADR;jSHmnJnKJrOxi$da^RA)xX^ zEd{vDH!fXrJEz~yJ?N}cl<>RNSlGx58Naq1MA{MG$7h|qt{9~|Dj28Oqp~jbh0Vq7 z7$w7({P-@_7I`4vV`40H1L3G?=?k#T{FlL-)&*|Z6%Iw~ne)rAB#p|>5S7$lw^={5{ z+#=lm@4jHL+GV>KU#~w&anS);(>V+o?^$A~-p7S|;BUppP1rt#;MGx7F30ep#QzVS}b(Qmh4jH6Pym_u?u@3VFEQ-oj*HYi3Dk? zCgRI-i;0Kn1}W&>1Z2~ETh*21Tnjr^bHy>=Y2r>(bLx-uu{bB9Cp`jI)9=MYQl}A0 z+ZtwX;LPqmw{*aUc4E0VH(8w8jS5SUoygb%i9yh|7X?f6r%!DF#A*rHI>Ht2*QBQN z=i={jPHA4iq5uh)9zKj_7Tp56M# zg#^S6fpAoOrFdNU<(sjqeto!=IAlX5B|~0<3lK3kC=B3KN~2Qd;KeSfn$$ASjxnIA z=ZPla9@fJ}SFX^0HlUisM(4D;2xH`?zGw33 zzHz*AxKvSeQpA&C+5af<&Kn*smsx1Czyo+|e;cZMQ59~E$4SiQKJ$K9wnt37!Rmb8 zgl!c^RgMpr<7dAR<@J{1Wij6#&znBd-TmR=ycx6wb?ddCdF#XFFfOrxz#D+og|qV! z`-&`tXRuGAcym6y$Ax4K;_q^DJkG)*6Hg8YLF&EZtU~Dz;d=1x-uLUl`~ke>dVh3> zaJ|c@I9J2t8RrJ9S2X;7m(?G$^L8QDs~v>Mdf(5EhjB~-OKmvy27F&yB1060Y2Ke4 zC(He?X+Cz?AkX7Ll8YUWg5mM9;=6pbb6-^iT!S3Z$M5!80&-1lSZVRwK{;L>Hv8h2x+^crWyD)|KvggFC}Z#DFTaAxakdQ<@Sga7k(Qsw ziqc$1eqB*IZOjY`tA*B?<9SMj*H&w%ny3Z{tl6W1lvWyov{pGrvLvG6 zkLyeIC2Xg570n>TTX~BL#h79#>u?b$$&;{c?h95KTlhV(+$;!FWq(Ql0F73J4xW^! zrgS39eN?)+FjuRHJ=^s+H_=x8)}};Kj1F(P6uZ?s!YdwWrQvl^JEA}oWnAMAlMW>1 z3O9Y)bmv@XvO!OvtWm~9T#Z(8i2FcZf-iwrEEx|%XM!a;bkC;T${lvh!R_Y{bZH?; zZ+|y3U_7M-tH-cmD{Bv(142WU5>-i{1oCx8ueRv+_f-i~HVpDQI&DBoj@&|a+@B{# z2Rql5Ijc;{Z82WQvGe9q1qLC%q}9xSPrKk&wliBS|66Nq{=w>lo14`pHQ-ed)bDOp z_=*A=yGywXcR?Lq9Y^!d%pAzYCK_Y|cUHXGQJiykL>Jz|* z)%@AXX>1fVkTmy*r|@-mHku%h&MqE_FmLS(-PgdF(A}h9woY)| z?ZuV7@Al+^EMYqt;kHky1m!@msO0BlB)_vXCYLUEU&pb-RN^~)`~Reh9hY-3)PnC z^HfZjA=H|b1l!~Wkfv9Vk zYY(;!fj8z7f;C5vt8%nf2j1hG8u78-Y0*!Ww~Kgq0`E`g{rNn9eqv~C4;W8h1F2*{ z#`^?bwI;IN8(fPGYcnFJ_W)i!bao5qnaWM$#{CX>%{#$oiN7MM##~#}*AWDsf^~Bp zi`<*XSN>f))+3bd0lXeF<@LLF7QSlYu3kbRdGAh31UkM0h$TH2TX%`WWms*UJFfd7 zkY*)uq!RoG^}rojJaKT>@n8s~S|`%4^&=+3llvO(cH67_;>n)f>9GA+&l>mTV}@UYRcUosqFnagX(Ove- z!3C#GrLyq9-1R+Nu5Z{qurSj`2zxaaNN-EG^C*Wd0!@uI%Db3ET&Tm$|q z^AjMS*TR!K4Ey2a?yf$9BBnd%X5+zfjqg*<3jhP)eo_Yh20MQd@FppYe%I<3OG=Lb z>~J1#PR-aIfW$BckKJ_=mZM+A)qRh5^CiCh_!sa2nB05SgwLy1DL9Q1MD2ouAbE7yNjCO3^`p%&!ZQj zdRoY}u&6yRlAueghDfymFaDKuYc6AR2=Yoobml_(Fl2$yErOa=U|8V;yHwbzn{`-D zYTA^c{=6vVpFdmrqW1eTI+*j?QY>snfE)ke2}DhhHC!~J3*e0nJIft!n)|UnEIYy* zi{JuQA8_10KY+J|WC3ry3`^VX{KuqPuT_u5@_sXubu(x|XW2CX(?Y{*ThB_yOidsd z8u#;l3?0jk+7%`Xcr|{micQ;KnqJJE=%5cX!ZQ+0Gb&04FAMRP%w^Vdu8--AIYZ@FdwT5*I0B@w~iel)FaTxXor_;J(IL^Lt!!{9~ zPlbTDichD04GzCr`BFd39JV~USwPQOc^LkA54*2E6T{#a27&~nuMP;S;drh6Tz}fYg|21>hGGhe6`WX9O>2AECu5NA;<)lwX zH=brxAYcuhCYK>+?b^Rv{|34V1q5J_;VW{EW$_+oWiS1!cXB0US}4_b|8M>ewm*6! z0Pp%G!B$@ttyXVicVCXc^Ij6{=m@xZ#m{|75l=v;+6?E481L}p`lL@6GG2fpfp?c> zzk-uHm29}SxVd*KiOJo~=4!^dcR+je2RggYx1b+{mwpm(HZ5v{fh;iRVRkl$S*}VA z&G#7hV<4o0^%D~1Hrt-?OOcw)Tfm#O8Au!o+!6GpG9hc9g7I{ueil4?3kH7?w9z7F zQDEu{VWFLECNno>ovs%_7-l%9X$nAmD{9cI1+9c?8*k;|mc(QoODu{_W@H#KZ0<}| zHPUS*J50%@O>J064i@h<11}(xAe&Q=H}?s3-Bx^Nz9(tCv}!)SSc6dsH8gKz))NWG z;07%^>r=WpXn28EX<(i-NLd@S+DpO?#>593lF$f*x(l>L6`cXEW5h!o>N zkKJ5byVGZs0~d*fO2p99za(A4L^m^KsN9*)^j^5D55+9?z}FBP{61xZZddkbz$;u- zF)toE7i&kWyGc7zP=I8YZuSiBY3tPVTFdoT1lwBLCy#3dk7hcGv~#o6wQ$?PJ!NI? z0arDz5^P%}23LksaOU2CX2UG-GEgH$K@fNk9vJVJdrxFZ208vJE6EH3-ZeH1k`H(H zlp$Qh8=&iE0N#A$oE^z;MGFHf;%Z)Rd)2NX?Mue)6jqQXg24&ss*BVGus#oZpmy_G zr=DT6k0K~=f~{*I;>DpVaH_|Y(|Xz7T`793QTS2tYgXRXh1DEDd`*A?_?hmfSas4j zx2wD268_rJ24vXt>fq|OxvUuxUVg&v;5F{Bc$C3mS`m`$74SM$qHPMq+p)kZl?OOY zzkuk_g|F_6rQD<<@G22VQp3W>25%npQO>CO5q!K1ctZt(^}w+W+tA(Keku6pbqLHysJeic62U9ZJF2+J_;22B|2;q?fgID)61v)wg4h^Y7k$B_%8oHiI#n}I1)alZwGfb5P9%%w zn0=hg3$9E!*3|*!cCgTP1sPI0MsnTJx6D*gexpcK+A0lsctzY>nlb6NQWXfUxeC4+ z?=GIZP<#Vc;sLa4%kjl&@`Vh@FsrDFWg#xi88{5uenG1(Cr4IpCEyTU+e;T$CBJ|?h%qSH>Iv^9H|P}~wLp(rf?n4x~P00HMXr9({ zp3S7;F2h%vU=CPw^JQTP(X zwdtd}eha`$@H}?Mp3i)?WDEA#kBu|ROV9)N^)-js0k2oZjhpon`V)FP)M)eK2_^pS z*1cHO$QZ@OU2wv3n%FNUoQLwVn-{& z6tCY>NDcn05_{jyu8e}Wrf1_tA6o4c0cupqe4mJ-pypoOmQ_mI{d@Ipe4dC$+-Cm>4#)-qV0q z%?=tbwSEvOJASej57t0VtKpdXp|P>$bY#L~1>F;Gv8@$|6JagOPGRLrqL;KGi=ci7 zmAA>vUI@yDn z3Me&*xIkD#-VRvxswJ~rp%r_vP@nco1Leos!f)X@*EZySK=+gRYBEoXL?^>~2FQ5V z0k0N3fY;!eU||BO9)1?T{-zMyqd0H-vR&_)|K2V4OcU^gf~A-IJ2TBlC7$)92M%e! zrYd*(hs0&ET)ftoG>ycjyxW8v9@EIYPQ!nmtewZV`vk4K0I^uF`-$l=PmFg9*el~1 z)YEoA(EN;jU6aUV0lZ9ehje*84&$o8S+o*;@Zp*;?sazyz>i>V3>`fB?vwEzDv2l1 zYx{}E4`yzYz?uq}Obl}`vTraS5NtP**ge0T3f%ns@S z%i-$wb-gw&9A)6dr@06+Xf}aYTn?l(t@DGMq<$H&T+Ih~#{k}pa>n~`yIv2s<1K_- z{H0tVz8r=<j>b~AFnPt?)oj7&fMyy4$9b*0S&-A`*IUH zlIV`RxGfM#xBiO|bTuXLu79zEOwpW*R|pM^+5rvzd`;g7ykujP8p_OHB&R#u5CJph zr|YOF@b^HyHDWuzSA^sgz0AA2({VE{0d$H8Qix~DCcjE0v)U6xSVa(LEYDHpw6XwCcWE?`mMVHe%rTCy) zwKm6$l-V%dQq&X+*^$?Wj9`eXM;qN6$-G(%IIC?;6UIxiUE5Iy(_CGWL_Y>>3dOq> zd>fK^DHMwYcZ>11tJScQH?eLb%7my+Zg>Wk=|N2$o*g)~k{-3Kt*p^GXSMgI)Swm2 z*I=fHpGI3Psh-RgO9ik5UP>4VpDZK@izw=KExWp3j`{$ z^>ZAcL{zhe-h@N7Pzn#n0>B$Dbf1lXyr!9_X|ZW|+}oK7Ni zb4`47+4UjJetv>5wE?~#bRPa|P87~Ob4~)e| zs=Wc#jg)mH^ERInERwxJ;X>KM;80?*Y6q=N1mfFBcmZd0K_}FB0f$L#efA@&IQZD? z5xI3^1ESIXOCAmcSNRG6->lYndxSy1d9-Vm;q1N#YM-q#*GJ!nR|#+`$ZvCxT~;Pe^TJ16ZtNTMB^7SeV)k zebkpI)*-jRSwko)$QHH|sd^S?X1M#PhU062?;JaPw7PimVgaTBuK}0z1TOzqcp5jA z(n{PkQriLVT)WXy8IBEI<}o#ZHdMxHBaGxK`B9l=7Rn>`swEbG#sg4Mom2buxDs8# z+KrsDhUVIVlvW(XdaP;pI=r#vp0}iwx&gd#Ni-${R3RH67~n{IK*;g2AFS8QFf3bh zg(lbJ*zot88=x0h=PCC*$RPao5>PzrI+WnXv~E*?GJvT^$Hc7ARmFf8qu#g)HuW05 z*LhRBy?W8weRsJH^$kKq;oqHCD14Z}ns^fq%dLYd{T5qQ@F=e7$LS4TMh_N`6(N%!uISJQ(V zXvW7sHJ&<|u{sR;!-!HtjGJ%XJKw)Vfju0p+MvU;0D?!s`bsEAih*MYH`O*%+e}-R16#~d z_Q=Rw(H~!tYg1ves_-nVha!ezB;*CASS`;oV>lo|L*&SX%%<_?sah?;pJp+k>V)}+ z*ljE65?b5dhHzv!^i~?)$^$(#K!x;5{hX1S~CcABcS4+E( zfTHrLb&R-Uyxq_Ok=KVM*G@mn667o*CqD0 zlY0zbu)1I_=mB_XCssVLx!ANXRb*&iCK%g(_&}f(;2NFgMT9EDD!96F&2!7Zb8E>J z0TkA(0yn+xm^i~7(KqrDmh-vnW_wPqRYw15I{G5KTZ1(SzdM{$n@t3-!HPi%nh%4z zTM&3xiAPpH7w}@eOu$=t)O>x-EYj_Jsj|LnyeLtSdW}!RtN_r0UUCH2lMf`gxpk`8 zNOdDJ;LU`wDFoCgX@OVQp+}$3$V!HzcV?kmcjOcn1zu9Xc+;90!{T8AUKi#?rfBsX z8)Oj#&z(^(1c;6B(X~lZOHVK4Y5*Vr_+lif9NqPBzFcmXoo;JF_r>a=J3v|WT;^;_ zEeF!8dBTAAi2_C>vd{BxMjyc6GZ&Ift^FRTYV=j~~R#W7i~$ zOc5GMaB~Nr5`G0iV0U!*ae1Njbj7hiIHe3p`c(u4Ms*Ff9;i7r8JUzfq7#)M(S(gu48+s1?MlrCC=J8EwL*ruuD9hvK(g%1^xh0%^)V%t-QHyi?bxaBqDWO;VoUb z8f2r~N|4JfK-a5?c%3tk*KBYCT71m#HNh)kQx>x~!KkXG%^?xh3U^0_97Pf9IIPSd zPBuQ84-4<79q?Wi=R=Hzu~rJCOmOnV89R+}$o@dcE5>^Ul;Iz$y3x)7L3t>3tcPxy(GR65zj}bZXKi5S z7w5EUGG4C|@Y-e%#tTHcU?btVe+8?ft~-gWP#bjo8i?U~1l~%(TLd7lxAs1u@C5t@ zyuj1^_+-4bep-b)BpvXQ*0tx;T5e_^|Hz|srC za&-srCN+Q;9#c)>OKMQ!&Dr(fxw^o?b^E&AZWE6kIRLx?xD~|NDcKe4)J)-1v*ghb zN6Ks7YcnYV#<0X1F0*`imjA=oxh=QJWkGn}B3wX~DCq*v4B*rhNktHB5tGQ7I6mh6 zUuD+U4I6n*`;R$qK=SXV>D_CsGTs5&P6=zDKU_uG#o@yPmNjsL1ZzU$j~~!u!VNn- zgb^Z6TNYLM5>i807h*{6nyX%ai*>z>_s7$Rhdi|C==)bPD_lpn!}U1U4{vc~{0k$; zQ=i3e4&NJCnN_EUa2>-fmDcI}=fjU~K%SAd?F62Dc}^?D$XO5k>v>1Wa5tRtzT-Gm zDk&RfRCZ`Kalt(bd6$)#^2TE9kzT-PBm-XNL2|&k<-AJzYbje7Qg(>B0%;L3I0v$8 zRW^op5@+nj>z10;%6el+MkV1H7C=qbPaBZ|^p5`#t}VJSwAP_F5Fm#8!2U3FTtchS zeHX_;GVr21(472@HS%?~O{W^2fuTsgYV4E9du%xhUab>3s!hQi(*7Mlca09Ahba5n zBe`*GJ=3ALOA0grZ#`JEUAgWuTV4^*u|eQ^y1F}a5O^!GVMxGx+5xb6y}zlQBhr{_ zWHt!L58cx20(i->H6kBh4!f;OtK2K#zT9KrO^X(34c|U4^(qX!Nt4;iqlE&rcD%#RbAVd*_S{AD`}T?y zM<@?X@cA+OST`j;+g^DUx~~vp1209NBsIjz*TFTYV9YI-e2cg8z{7o5&wA*5e|iN* zaW&*93D$T6MzcR5)b_DnWzXM8A_4Hq!2s|E-~zmdPHM-R8N(kTond>-IL z&zySy@H%u^GY9_-%dX^v#|o+Adc2B{|BY0aAnzyY{zjI_moovbJz;UbsmdkB+eTTh zK71#iRWvRL@AtS^T;Q2hVNlN4bx0TB>ar7 zcNik$wFt{tK6Xb`WLMM+P=u)>K1ee;V$NGqq{B~*yN-ejEM-Av1K0NWn~E#}v%+a7 zLb_(~Og0SVq?f3nGsRp-Gv{_yIM10MFoGPVG`Q>#C5hG%Lk@1+zg$q(T~Zm&XCPPY z#OeyXyHInX#A(#cGlXA&_k6YA30doexwK6`_Q;))H%)LxfQh@qE?+Gcv;@ISbkzKQq% z><#-rfz^HAJqAGQaZ|={m?a_EU8a!&w z`Zloi?ZfXOV0wrTP*;6527}B3JH9@=g@dax@J0txYyFArJ53f$OMwWxU(XSV@aHj- zUHtiQcSPf*@XhUApkvb>tNVE71(o`#NQvt3Lh7DUm63vNMs(eW=X2RN#kTT|@!@ld8O5g7XHdw=7ZkRiHNIoJzlIz>#_K#dh0LJOmQQ%?!vzQ#Q}wm}5Ef z{s3v6{Hi9=y>gQ|n3x)y&0O&brAe3$51u7Ch)H(|i@6;|XXp%}A&|ckl(n(pRsc?# z#^Ak9>&Dsp=6IZMt080b4pf^}$;c&#D5C)yGEOPc086oGuLWLVDz-7PW5PR3m;q*& z=Y%g`1N0>K)JFLm6rq8-ZFwQ^o68)*(rZ)J3%L!G)sR0boIm3 z?QlS2INaO_c*T5IE{t@0V&jfJJ9V*>4Ddbg560WXcv;wlUVhZXkH9pvF)|2m$_|Mi<}VE4>6PK(p`Q3|`WWJg%SFiW;gMrso=d};q@U{VtG7m@p>Ml@&4mi@a)Pa|C{iF z#aE*I7D%kX^}}1-#?9l0FZ&3O{_sQ?S)f7o;q?fKn*SNU2QL1w57oY_>o2cf|L|#S zdy8ZJ9z2e8Fm9z zoF=l*>@~|;&2R0BV4{IKjuGJY8X%Kk;J)k`M~37Y zT`#b3E^m)LVVF+l^_?VG%)RPGY<<= zg-QKDWC*t_5WBGgGp^8Xy4D!Y_2AZ)F+g(kg*A;cZ2a1EJ2YMmoB1a(UbU6*1_0m0 zENJc!x^GZhybfzGP2tPT0+V6HyA^n)@Tw*H>tK)5djZwC zTS{=YHRtw8c_%K+$^J>=ZvyOC=f9yAWEMs}PFvSHy)Y3Px>d^|w0Lt53#4~rpEBR@ zAW=92cL9+W>Y7d4?dyJaU@Sp#f%DBQ|e%6hpk1sx|oR!0I z|MszQNX75ph33sM3FwCM7MJ@I9JdX5iY?L*#; zdkff(oC^JI^Y~r0jH~N1Zu#ZuXMz8|s+y0_PcQKSK-z=@@}DJYYK)Y3)?Hhj^8)r@me(_S!EA?Zcxmg-D=<7Kk?KCBdA<_?gZgUW;W^0_-r-3nl<RG^_UQDWQ{G*Jl9kQByv^euuF4L$RB37BAJsMN6^~f1FzU?!rZf_EClI=@PfP28;0P*A?C(X@;|sE8&5kAt_`b~K?^G>W>JLK`#0V zxhiR279*}vE}UskwWKOTD2y)-*{_>9wquAK)YYFa9*78#iw#*Q082ssF^hYkUS+R9 zSIS4gxSSC<_Dp!!f*A)!Oy8d$e??ZvVjg3RA?xKpC}-FU)tVI<0B8{SC4vTkLBxw1{H&~q{DsX;NS(zvcS<*oz(8m;>0p8&0eu~^;^&*NjLDjW z(_dj_^K`zdn~D^+El&cK&o8N-8KQAe(0n?|)j`n6ai*9)^&kMPwyF=)?F0sRcj45e|!%`I_>yqj(d>=3en3Y^*+ z2$BrMK<=O^oq*icdA3Lm2406R7m7(R1734W=0Ssv&y8hn{nN| zbRWQ*oiq-PDU*~GJ*m#RVKrt2`5bopb3vcccz^R{KO#N5YcUpw{UHZ<1+=-vW{6Dy zQiAx#BY8&8RH51RGOa|bVE$6B$%*O;0WVzMn#sH5@Akskr+1Me(`hr=z`6w$qk6J* zuwbctqQJ4w$-StF=BfZDQ@VG@86bt8m8v!rK3=FBbdCd>*)Awejm5FkUgHVI-APmI zA#n3>+JE`}&zm^{u_pP_bBZ4I!UP2oREBJAfPOLIuBs|K53}S;Xyoot%z;<@nKN>> za5>tociqMFg5;$^=xw4CPpD9K0uRks-T?=P<8r0jwkgPo0}Rt zM9E{CMG7THrTEuAun80&U{FD+p)vy_)7HGtFW z&|!9g!8-x6+k1bRxweqkhq%A)a9~;bF_VS$+KZL|oRz`AYxLc%W$0aiE*8npn@^z8 z*brlp8-V582%ViLpctN z9j1&H_GUO4r4#`NC3h`6@&4Pr(M&b&k4LJ*?g|cPDe1rF4VQ*l$Y!U zcqu&-ZQSLoVRI;lL)}lsv;>3+c%4J030bG79}o)q_7mQ+ETDAAZ!2~LJ$nlCMFl@v z4XuHpqF2!;x-k63wo0-tRIe+BiRX)jSXiirw>q8_d7aG@IYz_#aDOP`Q=M*x_=?9N zY(t|;dc-%aoPI?~m(r;(#As)J5d*(`y$bOL)+n86uxx3$rKI6(bU8+=#$B&p+46|% zxLu9k@rWulI2T*_sshfXWhmyPqsKf?a#sX%jX6|!5pwvn(u^}4Gb9GC#=L7CRA=B; zJ$l%%Mol9iIA(DECA6?&8`Eeu6RY+|rPOCm=pYp4G^!o~>?-s@8Fn%4#&oeE*n0++ zq8iwTi*n$I3+0YHQUOZmGpd?O(*(1@o@pSzofkNM|FRi(Sy}*>>DJhII>!(D*P|2K zdg7^PMp&<%H>ghG773h9lDE;fO^-++7lL#4IrT4HOo}()_4L2B1>G%xY$405*Y`3r zuv;h{j==EBvf%WU0>t_>lqx_L?DxDYR(AsX&0tM{GtQaOV9{|FA80MYXl|UnFjtgo zb7J6e1zup6i9y;&uhxwH*MIJcZr0WB{*l(HSpIK$k+w zzBvya62&bjcdO%%7{&{D=bWd!OqM+PzAztOcti}jo@QRQ@|{Zf(*(TnG|QUCpbPBl zIbd%SQ~n$Q-nFoCZvf?`wh{1xwbMFDb(4EzF#n_k#WusL32bw|DL92z^#&Zb5x-Eb zkQx~3PBR^2*984*0^r((0B5Ju*pv(I0-%aYK$F0z0bQd32K2W?vU~Yc1bO0ZH%xFb zr?sZmF=I5|(XuU{aq7hwVaZg4qmZU5=LZYy{bX@j(}3f;R_seY_WgLeKh&X5-5jum z$A>L>?=K66(8}07WU}=xMf01X&YLMma)HkV(Bf!JHLuE2NIwD9rAk~yh7DXAOAP^H3ggrJ5AkZwj7CQgEUX8R42D#Bt~;q7Y#+&1Dlubwshawgn)r z>U9)}u2qp=_8 z6}8=fcW_iO%bEg|EPGE1%1D70tDwAeNkrHHoWR#;xjP+9v=di$TYz`NSh*a$m^Ln# z+kiLsc4y^@jn;!xu!SNyYSd7fkvBvh4JCO1FK`2X0L+FEb6{|F90-5*x!6f7fbWYK zId66Xcps5Ar$Wf2!%-Sb2bE|cwVWSUdal3x^Q25}!afA<-TnvR4FI*30msEzbl$L$ zRRTK-7smJ1(?T{Fcyree+1>5y$TzlAP&FNu04SMC^zqoJvu^5$&*iB^>OlvAzZ>qB zi(!w0M4s)|^KGjfF)bFBLYvTCk5h2By%(!VYJm*Cg~1^6`Gnh*-DK zS-=M*%V51@EO3{8zt#nmA+}lI^(6EcjDn(=b^f`!d;X{rR{Dw3ZUt!83$`> zg(#-L#Z$yJ@20stg)^^KVPCpZ%9yKiyg4$=t%GPzTph#;6`-k$nNRNu&%hp5FdkvW zsYaef7!KI4Z{m4b9`*$!csF&b`&yKI9+*1)#s2y9<;_j)=+NBN2rCJ}>EKo` z{jOqdksTHr=q*xiIcHMvbs&5!B9@mE=&Rvrjq&Bw@U%!iwwb*fuo00 ztN(-27GUH;bd~qgxzr7>_BeEvN7-CU^=MWN@`CYe61Z5$J>f*bG)xiB;P&}1i=r#w zb%WN1ylcRXpJ)WH83g ztM?}G)r_@ED(r2S#QFkwSpXaXUa6t0&$mABKw~FFgDG2vNG3ENY)v&KZ-*ZSNdQrD z)h8CW19+WrQOHE&Br6<^Uh$sv-VRIypFHTC1VfD;whzkG~$U zprIA8Ar}TA>iJU`{@sd^*tSgKX>ztLA<+J;E7dLzJ2c+2#w@L2uVb4DYS}hAn?@qT z?;5BrTD&}OmiY$G23{AXEA{zWs3j|*9mylIVF&LpR7)7-Y>Am?GA*6 zx$e$mFQJuf(K?A6$-7p5ey|rAgARa` zpu|u?{KBy{2b_=1Ppo7wIP-?xS4OS~ls*{9|fbyv?3QpQ+1M+k^ zH}KDp7fv~E5Jar7J3EE>Y=|F5aw38@DVs8 z{LA?y$Os|Z=BzvuJvwg3ml^5@z>DCI@r$#-DMgBH2BR?E=PD~JsOc?7Kucqe-&Pfl zH2|i#Vw7B&4}e|GLCRYxv_23#RRRjhLmD4jEV<&p(IB|K2@+B0R<*rCwvyQbYcck^ z7V8_G19%0vOf4%gH{>#70pMj%IsoLQfrKk?0*}m7I}6R3Xzk_{$9ko{)PK{u5%+!D z4T(h?JTKaX6r9|?sVxezdvDK&#E_w+iR+r(f-}Ki6kH6k8-i+cnk{FKD5wzlqL`Y@ z5G(Lnkx&tMM(e!3CF04w>eq7{B*p~123Y&(E@PU##2A`J$jo-tV$;p@+vAVPMq$-< z{`&Ov`!3gYN7uZ7Itmee^#qo_$|8^mrPeyh_9y!WW2Qp^-uRsQ*8FmjG8nBid=&7m z>;A}YK1e_C__PB|*~&ZvlfH!#FQ53Wu~*(tLybnw08dqF4&a?Gb($oiYn#Km5p;2< zsr>(J5a@=((6JTQlrfSE011Iqhr+6ajufp78VTSF?qi zK{q8qyN-MdRvcw~h4Je0;TrxJg)yJM9oo+=j%0vWaj~2f(ue0`7Hmtrhw&;gh!~TWA)y3iYmBNW&=V z8cq_^1(w%10NtRotwrP|UpgdN1(V>i>{2Jaj|g&|<5$m0k!$Bq6DA{gG*pWc-trV^ z*$PdD@w#0q3(?*!-QT~Ld>!0osPzxbbi-Uv&+maZ(chX~ZpLf(sQ;rSEdt>6QfkSV zMl1XS`fBqQ%$yv`j;~81uPf7oO-ul4mVygI@}$cShx@}0^YEBmMlnm}9PN!2{;WjQ zWrRnA`5N`B9VW^Nct@u^FyqZG8r@7)1@ad{s9g;OTv#{5MY!GZ<5NVv9t4pTSVB4( z4*Q$f%b5_KMPtpc6P&M~+OPP;jil1|Z17h1;F5H&Un7$*VTsZoduj2)l zHqF43mXM9B02!N1N3Tp_62=`B+UQX~cJ@0gIU4n5Vp~j!~;9sty%q#3Bs6PtU)fpAVTvh`~XsqWVQY8gPN8GoxGg4qX$20L?kD%!7y3IwDPlK?Sr99~OZI%q0eK_ncF&Cd&trWr7aTM5n1t&7d8d;C<+*iH7JBX(13PN6X zUu1n>J}aYxz^t{Aa+8`9C-wV)#P6%C!>JyFR9l>R54<*hq{TG)m&6jU>8Yig_bx-E zFrK;pp(3VK^@|$}?gS{htiCl$gwLCMKP1vM?Dts2VtdJ;$m-m{mW|%Ssqo;L&@jbU z&GZOZr=(q7lw7x|R9#_id@nJdf(7P1Y_JOxr80lX4coClIs|e9O0iKUgt~SLVFue~ zhJj#f3&~Sico$8dTZ+}#d{39`@r%%tDlpBL_o~j z)1SxR&z~BLFg;wFPXcx97k&)69_k6p1D0vI8_NoSuXK3Hh5S{5+``>b%(s)DgcZhW ziMMd@{AgPWT6CO}FOq}#yoy@uuyKRTiYzu@RcH?aUi=%*DoNTQVu&FKjYN0L0LM<0 zSb_ymtj(<_1iDQPRn%MS3{s07%Rs>5-}jzGN?>(m3~w*Y<2-0Yb${9>LgMlmwdeTq{q4&Zh^oH4$EUZ%`Bx*6h7$V1__v#@gNx?aE0u1|@@WsGm?Lratl>u$C6G9>prnjoo zGehBWmV7#I;iJNT%@ya(0^*$Pq<~axI6_BXj5FMKcFIYip?-IENz1aJjiStb1DHzv zJvv>xQUE)|!pY14a?Va3i% zu6lXw|7r%!beKTbSicFvZo7Zq0RAS_W|DxH*tEv-J@1U80vWqsZm`HlerO>Ct!)SI?tU_~98*|s& zudlvGQSigv)zuAJOYTR?>1sdV+oh-3EI4iyXJHd%jsIn!x~M1n(s4}q0J7By?Ja`8 z&k$!g&3(w`&GS}$yX%omiu3(0ojmEm8Xja~QQ1!k6D|1JN+oS?nzZah^p<;ycUkdi zur6niqe%_be+H^h2(nHX<*aCdtSq8QN|emO4YEPiKv`1^SvT8gAwwA&FV&T&-JuSt zw;AUOZpY2*{kjNLcReCrd5M4!v_QKhST2?)VJ&Jd8mMWKbx@F3_bPp}3JC*PgWLKe zjWv3El@W+a)=Jz+l+^boi*0ZrJi=IKU zdou)woGc@v10+CkK-1EVlbj&~&(138QiAr-#KaBWPy9ts5#ma}L}514x+8+QrXnfy z-B;EG$o@Oy+cVk`BG?|woLp%*QvgCjSLT_{;2+8_*?aB(GcwwH1`Ni22rQ@7c$YH; zld%#M)zz4Cm}(QL8z+*o(58nXLw~3kv5)Tb5U@jgfo*=Rh|G?QMqZx1xs&`HokY}W z*HzXf;N9c~fObJ#)?#%5UfSmDHTZ(Dsj-$KkD0yWs;0$W@zL7yf6@2iSkKc=+Qoqh zbOTjSheZ+Q{O){K+llW&y${HtEAR?OwdNo=w%`IGJ)-CQ!2CxyrSxjC%-eG5K^C;>i)9qmp2(6-Eub@M>h0BCqeSA~76i;{)f# z{ncIvtlnf!lS*l>zS{M&xuf5F-AlP+H09M`no%87?<*8CQg>LP)#z7a?7{H_SGODve($kgF6f!MEQ#z>z~Z z;S8$6=CS)SVWf_p*vs-9>sU5(MfD>I5BmUrKbs~bWPALa3CFn_Dkp-l1fi1jGhU1t zB;{9S#au=b{s{%sYrd!KVTHYbFvm#7jkTBu4$h>D_jV=Em))A|J2Trz2-!7(xkg>z zNY`;LxOW4h`x|Ug>FPZjkmYnR#)e z@h9~TQjHM+FHpSJwg;cx*hUkEcyVMQaoNIfX%gq-L@Ujh1w*MNhlHSMiwv%dWnn8u zH@f7qlz|xY$y4c3pH<%hGQ%lI?*U*0h{s_c$UB@QeK4kIx;b8Wy=?%jWTX#6#TFh2dc&jcw+b^@481r+R5G z(8TE#233f1W8NsoTXr~<0K1HHLg%6k&^|nZyT5)PFgD3`w#N0YepwrI=h=9QrrM}F z6(+<|SIlyAUnZQI0|V5{Jg%}zKN&>?1&sl>yFt|7UWZ1zfMV@e_6>rkP z)^gJxwyTQ9X>|iHxSBj@TUjCja*}kT+b(ABfOoB0Z{5Mz%c5o`g0M`RVGBS+Nd7Ko zB`aooi=$#p(xjkq0jjvkQOGG)H>!H5Z-2daa0dwm9)A<0_XNW8v%C6nzq>gVGWTxA zTVF^wY|t&@PE+;JO*|+PnC5^sH>)flm;8I0A5-31N#NJ-RvyLwy8DF%Sm5g z4gpz_#C+jdui!OVu$qvdi!xAPx8DV%(70dJ1^%`myBQ{5j)!vz+ZNHblM~9J2i!QCjs`ff*wB}J*pRR-II-j~Bb5liL35YjdJ zq65@;;CMuGHh+a9^RkbdAqLn4h)sju3hY8nV~-7NN2#wakk@i9b7evyx_syy@J-{J zg0Zv7w071zi=<~LukL9Tmf3sFyuAj@7eiq~o*y!67U zhr6YUc;3C-yiIkYo8tnIn$)R;6CKR5-NwxtM~Zoaq)v?~#F#4@e3`RCoiL>0z>^f9 z4E0>n*0Uw@ZIN!AenR=*AZ84%LtU-yA{9zp9B=MNK)}K=@X|L!4!L9e{m>9Fik0l}G!W=(e9rMgvIf@e-| ziYvhaAwh0n032Cj7>H(DQqS4SC#wcMWm;~OvZr?hg^hj`M9!h&{OZwt;t&T5lZ&_F z%T~mS4$Q15xFEbaw7t=vKf5}-cqo_Vh(#ZO_OcpB=y9mV9u56j80KGJ60ayM=4xpC-muX@49XL;AOzUH@F@qXp$ zepJw6(RqW`YagzDTpem3b@SuuH26v>07U5~m{}p?*2j}EbV#PyYBOXZvtKg4uDTuCFd)w86=E4xFxu{Wmn9& zK8J;2Fm}!MAp3(5IGO=fomlB?d()lh&`R0j+}pF3-XJ~yVp)ljdUnzKFBTG*u*3v- zi%I+o3bmKU>!#g?U+3s`<}$-+!qg4?+|ING2i*ml?Df>rFxUp4X&b;xA7AvqmDTm^+G=>-S-mZ-jPY+=hfL9K%$E5CV!0VYC^WlAA zIAFxMmT#kRgE*_Zd+w&yOC{CQ1e~1Q^xSP(4L-J7FGPB;?(PrlzQ4Mw>BGNKxh(N# zD#2Oy-u9&#u*H@Qc=_3i@h?}f0go9S)tSX{)njx%pMgh$*OMu3bu+|G>w;$FV~T)F zGIWZEaC08D(KxR{qABuPjs0T5S_CoptjM4Nyvk!ngtW$Rio;=?G(Km+a)}AR%nC81 zX{;X%76vv!tn^-iVM@ZnFf`-c)h;e%HHg+n3=zZ*qu^he$V6d%)SQ`;0%=fao>F}-3X^jn^i z1DGqvq9`R8XfArxh}kUqs$!+2@$Jb;rhedd94I$%HTBn|0JVEfJ!EHdXq+X5l>^(* z>jf=S9D_?$om0!@MWfF016NMKt8qHEvC?(xOHKgq-gvv|w@mhTdjyBOOW@@|><)YP zSSc^?XJ}-SNUeaCCF>8`4WXn*GC;g1x{@I1%j9N%!+!Vmx!m=vOEO`XE~EYb-5#ua z+)1ino{s!?D7XW5Ff?7Sd6IOUub#H?>XF z*%+4qo)x!C=NwUh!=O<^ooe?l#?EE8jqM7e_cJ(X0wlyiG$0WTWWZsE3OkZb#X)=> zIRF1EIjh!rG_54aj@|D7M?kp07wO#UVx8K1zdwF{df|!;u%*_qRf-!1Doj`9!H|W9 zcTO{aIQIV1n=}xu@Ss$%qW}IH7=eB~yVTM)dV2ANBQKKarafyad_0jxoR>&t9kO+5Vs=my5d-U^z~&ygZD8#4Q7Ikw*vR(K?x zM%q^%{{8V#pnl6;K(Y+aw{ki<6NilA^{f&;xkYg+l+~L{=L{ zW~)dpX>&dQNwYcgoxa+1P$r=l%z=~O{#f%~q+iKp@ zJNq;F4snas@4D4I=1daI{y;xuUOok}Q~TkJydb&d4iZ;og4{;os4-eMvo|tt>94na zi{xz4pBw_s#Y(Z+KBsBiACgZD`u@f!+WXo+RxtRXICvRNO9sV5hg}bQV4~35<7&Wy zS#GjIAoH4K_1b1M8w-X=2qO)W6zgq){;Sf3e*|7;Lb@02GVeM-=W!GIBr~pe4Dbro z-cQGv$lI{Dwby7m@a_GYx#%Uzn04G^0PnoJ4Hrb6cR-RZ_C^{Cw=9jrRg>p-dCwQv zSv5r4;o`uc;rgt2aeI7vJj`J5>*LFoBLsP*4s+`e0UEN3!P(<~r7<6CEhY@iV8IH9ScyHa*Bq?&ie0`XiH-L&Od zW-~D(UZz9_Fgt|ee-l@mGQF1F}NCdaqVeFvN;|%5gSfLnmwZ}`?G-YH+Kwg6>lB~)}$0ob>Ep7c(D7V+8oy7<30$qW3=r`-L$35Utj_^*zBpeT{^8wl;ulm}Fx)>jPwB37= z8xG~LLvff*-aA_G*5((;vlUj2i7m-TPD*g1(fg3rfcghjduR`L18Uia@H}$66=@(#W}~*s$83QOtH>z$vbu5T9myA}C#ojFwv6-706%ad zA3jB!43mWyBB@3i;5_r@3UEZFT(&XCY`53Puc$biR4TKpg=mmc;M9*zb6!c)X-R=Z z$j+#h4rqk;!j;Wc$OB`)iq1XXF3W{p6LD^==9cCh6OgJhuVRI(P2J3cNi1caW; zF10M4&sfcp+yPg2G)*5c>gQ$NEPy;Jarq#O;PJ1Q&jMl10UNX1?yhcO@V&i`0|0EY*^AV$0xHQBAg@U7|(OxAJJZkE|WQNq<#h=u}+g&;$K zOL)E-Ly>eV3M<(b=i8yFyhcZTX7y=yj>z5W)kZxuX9aa} zM>OsvwqLNOCJ)-$N~AU7+E4H-H+1}UM`OK26M3BkcyC$ckp0bXPXhcFiv+jBMM`X4UF2q5G7ezfv08bUzJR10&I z0bWpJ4eWiO|ktNk&FC@do7)9T{87zeXtSbihr3A0c_vyTi6{(P+)j2oZ;u-Lgas z%1CO8pG!93YxsjByMQ74E$F!S?!L$Nm*dNA-oftAk!`jP4fAD22-$2W+icg88r-6{ z=PSMkga)n`ZC@W*()N%gD8FzrOS?784tKoD1v~B!yZk6TmvDTu$n4{9n(Mu)%beY;EC?N)h~j1@WO62CIWb4Ap|I z+>jIwH?y32YrK;7NK~h3vUUeYfW4fy6saY-cCCsrj29eTlA)P;A))ykH~r`Hwy z8XODo4sn8sz-x2NU}7eQ@YAp7Q&lZu@i$GwQV?!92@6~!2DCCr`S6dw zKQai$KouFa&$X+Vd9b0tt@tcO7E=xwP4mr$nPp-|R?4i2@cSTI#?7c?yJswSW5P7Q zVUO3nSKrUYJWK1G8_j}&ch1q&g*}7&F2}?B4DalIaX#M(E~zT)FM#rSKsQFa^4@99 zmpFQ+Ov|A>g5zh5`9bhCT*u#w;ViliWS9KG{RXqi30<6xv}8R;&ac%xm)bw$4||Np zvG1PDrHHE`zw%EsX-jGL)H37S0hwEIAb^)I47OabZr%p>eao4$cP^s90+DAO17Z9n zl!y!a#kng>P2GmnSI=(%?qV(p<9MZxVgJZ(WG z>^x&6ZZv+%SF+4^4({R*EWrEqE6@w#BJRq5-&uHlefs=*$9>CwcAzu>zlj07_JPl0 zvGsK9S!gm zg8OaEHVC}0VrT#7-L`2LySb2H$~P3DzPvfPekYXxTrNf#iWTtcEFjG^$h)%g`m7== z@X4Mox^7BRHJEP4QUw?ll6&;Lbk}YZaI+sK%`W;J=^%D%G!zbOu3kg1+#^J5;tdus zNldjZNG~~F;TSHa7Mx2UN%E)QUjN07#0yCzgAFDa3#!n(*%pEKad!#V z3&B?Z1J?qBDF$I3fiuJ0r(iEXFrWW;nl2!O9f;0aBv6LW76dXmf$KV$n0C}0wR_k+ z^FYZVh}Cs#c9_&~yGtfsfo#CF%c{!03 zzAF_#$`FgcV>WbbTPE6EF;2H%z~1xeIO`$HyKbR3EZr^0cBAj}aeF?i#AEcZLJn-N zTBY+a)`>hNsV@l;<;s~qhv%CjExEMcX)3XoWpgEv#?H@>cqy;F$FEs6++U6k`F%x{NZbQ2;QBGvTg6-^ zz@ShlWQwE!>s<~pU~(53!W$;uV6|5j*BdI=EfIlVu0=M^d7Su*pI5>w@WLP6D`FNB z{_uE=Yf2H-=!jdrQwfo_g}9ih(na|(Al!+l?rga0slD=;A~2j;DDs9@@*OgTOEaL$ z-&UF)(7ru9eg0bh!QOK~XsDL9nJN8>gOF>+OPjZOUOOmUGG@7JR}|1I%9ACZS(6-K z(W4Iyw)BdS>@0Xut8cPEuec+ld#x8=tAU~YEGX$k!d9mM??&A10)@rqw_ggPFzZt0bu_;GyXWqO8be|4ol;Aj*40S5+ zW2M`k^t>?cw>iuOUN0|Y##pd$XE^p*Ouxa4k(TBXW z6vhkm%6bX$7vN>;vf)066w7SU*=tnbO=$N0PZ1j$imagvn2AGRlHFcm$6)Zjk>BQH zh&4C-xLi{EL?hQjQfASIYPojK2ru1nvO^zQhS6ZK&|^$xmCkkhtf=HPxaB2`*>efj zz(LFRP`_*^w`ImnT8P0zb?_k^YV9J(9wN@V% zv-ElAmz~U1d<4xQt<$BD8kOaB%)LZJ<-&dmt9%msDY^IFk^w;XgggZq<3ew_DG-cY z!Ut*mzm{(3`6ueP;Ae`{&gn9mx6r8WYbPOCy~0F^+RPK+O=G6_hY5kQ(q-Y+Q#F@` z8~ek5x-1fy-Cg(s4Wq zoDA?Dj%8;&$P>niq8g)}qEw^8#=mha@LKV0cbGSVKA3&mLI4*KK6QM9bL=Bhtw!N@ z!VwX8zD&E_l#jP55PSXh{m*64q=0Zq9x|Cc&GM3B2!Sp7GXMX%UT6K+lP2+UU{ZoL znoxijZ8l;#R)=ykEA%4p3cP&f1@i(^dg>@1blIcCyzwEDZOCsLSmtvBXLg=#3N`<| z)ByV1d@|d?dYZCd%IwxM4Q~Nn2r(B1hjr2x%fWMR;V&E2r0{IL`&4H?yD8O+?QpOJ z+39+kB1LuuL_yFw<9I2@)K;pnVotX~9ShR@0=&TP)6-zR(Rs@xP@FYpWr{UlHKGA; z38o)_mwktiAwnBg^6l(5+uBSMf&wpa+?%;KQ*m&cc7ndYQhXb#pz5PZ^HrX7nj%W3Gz>cr*;6b`tX zPF7qj1L<}w54K$vwsKEaTbtw(3<}jjtn+dtvltvI1ewpEqbrx=G2iUhNjh9*-+-Rg zD9nxqXUlhYIZ+m$p{!%U<>`8irhUP@%MS;dQik%|O3BaA$S%!)sJF`vl^*yAC^U#O z*N6F5)TvT-jdZ;^`nmN_t+Syll=@9%t7L!Kg6@GvlgllT-dgp7PIWjB(vQFW(oXwM zxG!UwpdjfaazhlEy`|m7Erv_8!;6o(~N?3 zAXv>68y*s}|0En|IXL^uvxDjpJ`1u%GKL}0B~Xno*W-i*nn$c6a1}gw^+pqoCcpt!P2(Wi?y|1R;8)w#NB7{4W zjfQE=!-hq-Eh{I#~_VCC!{Wg@B_%^evRlYcDxN~8=*YSg^;=p?qA5f+V z@fW|#NlDw5eQMR%$)YuYyh^>Y+%7q=l#LMGx(CpWs{t79(A&%BFoA0}^*6f&-agJY z>yqq2qw>AYGONnKV9%0e4=NFw zmOl0&k1vmhNVtO|Y|s&pC2RfLB!^NEYBNd);^rmg4*9jqSj~=nLi@2#5Icux|v) zm*?F-zW*q|dpj;6)39nWGnv0KUMMmrRsq1lyEJ|_TY9NNfZjgK5+w~zr$d%;#UNIY zi)iZ%vY+?oUh7i$-q_2ID_|Ck9zhZY5__=uIefmr@jdV&^b(!%R^Y8fST?-E2Nu0Hl1F9P_o;S`?|yVQ z9Lbot_Z4H^44w!M@eQEV_7an;QMc@!JM4BKd&^ ze4OgWNZ7L?*%!jKuw7#M^!@waUykif(SZ7JbwOg@`+mwz)i*RRY`Xjas_EiKrD(%# zsl&T(Lwc9s!**9-3GQZxXsMq={IErw{{SR7swqeox`_vMzlH5?QYum0vP6T93#-5Y zcEUB7ER&V~+T|(TNJQnb9FDpHY@06Zf5ZZ8xg=@7$B9)D@o45AcgWXsyj^0H+uo-1 zU0Zg=U=o0Jq|chf(*|UhiRQ<^QVd_A+EH%wbX*X9G@GOh$FlHV)N>f)_i3>K%5iS_ zF^s%%gRoj(c(rx}#9gVJCGB;2v*<|{$5O??f}N-71h=eCS@@_0%c!GR7R23}w2PGi z>I!&qqx0k6zkmNcQBsiBpcTHgF}M_iHEoxWaAM~IdJ&lcUI2HIiki4=M|~WGo==FX znPFcj$CbToS~56$;dA>>PfB+hFR~XSM~Lp(ByARBF?0Oy1n`2lPee!F*L4gQyhd9# z)v#>u5O*l2q9bWT?4PS z1`)HX0tMIv3^mJM$V@(ZXCw=@j^4(G&*)7$AbN8-cfVpI_HJv>Ruu;pg~^q2oW<+a z2bZk(uZI&s?(6q|eLr|VlQWpzUT!RoLKR+JaQCA?$~*8HyBd8-^c@%Q#EQlU3Y5xe zeMp;CdHed~`;XuM4z7#RRhoEt*OpHh;vg_D8z6HxJKpb5BN8ac=DV*o)Exaf zIe9z7h+iIVY-ZCi1~XM4fQo>)*)&mk45RHiBSg_%PUpCLgT|>HBe4~Nsq!GwE>+=8 z?M2{xQJ)5~wFBk>qKs@peN*H>9l9AV)E<(Vt5{9@zuGc-qi1e=n?W zsKaz*J#b+_Qy~(F^mhPCI8T8i*RnJ$A25-;=}vp z4=3I3I40g|b0yGC#teKj6ly&QVU&sf;mAX8(p+5%ILfR7CtEi;u@UMNx^y&+=U+4# z`u@bvf>wllZ5Ps@b8OmqZEz}thZ5qV90 z=m0yA2S{e$IzE(LyLJM4M@y3n5+{N&RP3y960sJe)dU926R_EGk@Dfi@_Lo-6Mp#g z+F^U{9^^#VV!2EmB{K`T*)|%5Zzp%_aCon8ABRB zTtNiBX3@7-e=`$qwh!rTr{>E(+h|&q%=&BEi>GdlVE^tm75Vbv<;b4EpA{Y66nLAg z5Zu(CTT~FTt5jeoewRdG6``$6iw-*qS0-I{Gk$R^{JpViDIMfgVLC1K$iWR3b3{H4 zpc}cFha^`w)E75H>=*fPn?+T2J5S362le@Uv>xQ~{T)wPU|~sZ2Y(6xzq|^}uPB=) za)4)ETdX&q3GXa>0IKI-g2IIjQ;d>gpRMwn&&aiqO7dk*>;wiK)wF8`ek%qj?Sz~f z>?Q?*Wbj=u&=L)dcE#^?K5NpFToT|S9249E3hC_t8+APFjVmv^8PmdrRM#n(?$DgB zK5PGGP_TeAbuyc%l>5ZkmrLdCD_>S|5VZ;U?_0cae_%kBmr2@9XE1 zRP|ikT559py92una zK&3Z47h+2g|DKz1eSe@`%|T9fODM!M#WTY_i5qc0B%|Idb{G z8N|xy<#sN;yIs$d=AlRZ;CXICW8x<~*FHrFKuqBE#N53YAqwF|t@J_xOA?Ek_ZBS` zks0PmgZ4}ElLMP%kxvZ1(f+LL*fZ4S;G13bpsQdYEI7fC8UX@X@HdWvs#Hj{L(KV% zJ)O^{ke7m~C(}AuI$kfEmNU)!XR)0Qob`GwiC)X~wv^Id$CsBf);22tAUmI@jMu@` zqF$7fQKw<0@@_b8##bA-Bbe)}*~g;HmrX|TF`Bu;MHW8 zdJ_e6;l3tjH@0|6AtE_x@a}v9=uGGE-oWb4lR)6^Xx9@*_<-gbb*s$nksHnJ}p48EM7}v9UCUI7jBM<;C7E13|UclggDkNF5kWbUcJTRW z;_M*=<7=<)*Q0l67B~WyEU9Nj;AIzZ4%e>Pc0Geb-GS}Dq(!SptdUn}cOkggD-h>^ zjUuco%=r2#7T_g3 zJ(uHUl83OnN4`z&1=m&p_8Yg9hn4C0woP=I;#jtlT`UkfIySO&psZ}_W@}QkHNRbO zXO(SbMZobxUS?owMmAY9fmt?yCP4XA1qk+gu~;^w6U zsTH|l`KVTQ%R@E6+u>r0&{vcE@F>V^Hp9SnTY;l<464@-k{F zh*j(xJlA=ZoZF=C3pOe{(XU20p0<N$0Fca4>fU~_YZc~`c{ueqESiyO#$6h_5WqH@|?qp{p<7NNyY5!tg$i<38V9P<|Q z!|S!YK}v!YMd-Q`xYq4_HC7 z;o6qD+4ym+zi{!>UGVbq1%|u|x4XI4!NAiSa|c8nr9-A0L7IY>qRx#JWSU zzD@ja*}Md)lz&;XqEJD}g({^7DA(JH(I!cdTf&Fo}=dd)p z+ZJMbD<2djt&BHAfCvqkoL&#rx54A7H27^fHil=LCj&mAz*YEQ$}fl|Rp=K#0>KVv z4ken`Np5%z{R z!>uU~glH%&KRNz!DDE=sMdr5wq4|9%8aS-o9ME!z$+vhBB9a6-u4DN^ko4hxJXeG#tQzHeoy|S7`9Kmqyf*teA>*2E3lP2&s9d@zA!=^U) z;cBr>B>T7!|7mZ4C_q;*Y;!RqmxJ9KO3E*Jw7tM8=D2-m9)E2u7hPB<0apZg5hCn8 zF_r9v$%6JEKAQ-0sphraiq&w?h{Zecaj1{I!rI7kOZFSM7Q7VagITD+$^Sp;cnUo6}g zn#&_V-3=~~R?#*uJ^iMgfk~iO0^FkkZ(S3MRUjJ7j>sNkm0OXC@T%=$1-Qn4Cc$pI z6J`xHjK+P}L7xfxA#=1s$EY$)FkNAFSBF=jJGh02N;4g?XGpTHh_c4VO-D_<0I!We z!A(iFG}uO=sdWi955jvJJv4G+&#`FMG$SBr4`%im1&8CoyZJ!n=I{5wYq9y9?Fe3W z+!x0f*>vu`0`d)X2k?GKDt0w%!}`{?_0dWAJtcz*^uE59H_7Y;glQzgSePofI*^5dfB~`jaI_ZaT$z6; zW%Cp$p&Sp#=}=_2_rrXlyM+?W89V6`rz^mQa?(w1^oTEIc7l*R(8dmXRUIe`R_@fn zwwdw-n{*nTZuy$0ydtdUlR+z4^n%4sds;clcVeagW>SE^trWfDsSV$C-3Hq@@OOSed}oN`Z+z`YM!ZMY&(X*sP2ah*yZ{Ou;zIe?_KGVwpUV@>?>TCn_2O@`fL#mGL(L3-m z!q|W}`+80^;dj zJQDIk7C1at6QfK2F?az`pAG3p?(WwLR!)xD9VK0 zbbusefgp_o`z4(r>TKY!TwQ1yHrG=I>R?Dy9%tdA+hc7Ae7re&mCh%`R0V9y1a0&3 zEZ^Ge*9Wxg?N$@N1!~K4(iPca+yIN8p~{qnlv82{E3vwYS;)}Z3!!B|D;D2#vo)8K zv77BDsH7f+A~opk3VYVxz&E{ZXl{~QVfK)hd1LyRrfSs*aWv^HF*5LCjI!(3byk?> zKs?k<{?BKfE*jAc>9yGH$KtiaMHNzV88Y~+m;@#xf2jDz^!+RFewOg+Zjj&l_tChQ zA+lqgQcT>XSO9sV?ZYF`7c$&LgG0wef!BlCHNwn`$h6YnaZZnw=J4>E3wuuPB-ndn z))P5)&6NFBPoOIV+T14a7LoKC;Dl`+Uah0hIv@jpflFo8{{+6mC0PIR&c#Q)c$?Q3 zMhPIByl1lX%GKM;YuY}kwfN{z-?}WTSs2^xuJGKsK=4C=mm`y}apNijYRmJmvXwHY z_mKsD=a#b8R23mu_$LO;5{-0vRNEWm5Enf}P!8~>X3(^~#_;$4LYW+276tXpHSX8! zE;hAZ;MW~slS>>m_eZh#a2k73=jio)-lWCmC1BHgxlIkwHk)H{Yo~c;TGz}}JwWA* zMWLz*@YM9&4QEZWn@trQfQr~4RU!*MpdXw@_$%fLd4xPB~-f_(Sr3`DJ0w++3VJ+f4vE`YZk0o=>~oiRq&?)eTMNDej6F<@W=gD?uZA+YYUYINqNr>CDGS3fIio|WXzDrc z2|80x!lS%d!+mDu!P-`jH_Fl|QEApjD{y9=i0A+_GlBSpD$zZ7xx(H=C&L|MR)JTd z%LQ943DDOOG+r4jiLah)i6G8v6uI8fHQ>0(zAW*)Ooe;47OV$&%kKcsgiGgcYPFKz zRSt(po~y`hhZ|T(CEUk!T~*Df6)38JtSNLHqDjK7tv+#CY2&4KI?c0aL$76fM+sjhsoTRDY(f`KZ6bOpaDj$_7Z#UP zhmjB_g^ZPCCCmTB4T;l&&5HfGf+=)p$qJ!9LQ39biR;rxGaEJgb04K_0M0|C{-&Y) z{Qb)zjUg02FG$K0pl-Vz6h=VG>OzkFP(Gad+#Vha|xt(t~a^tn+9%hCN-uvYBt5wk6x#IyY2(1A&98W|e8GsXi`#Kul-lQi23y8^Mi04Xoj5%s;uvnN(HF~e4faDJ!Ee7K8yhtZ6US`Hh?w< zdQ{q|h!dpK)iLMASg)5k*33LmQ{%I}nOU!iA%I!VKRmpnHuyAt8suM)GtV!&njzAB*5y*g5SN;+bhW_OSBLv1Z^LKg(CRriC&bYX$ujB z$_8O`Lk<$uQ7L+jH$@5-i$p(fa6TMwAI9eZVt%buzlyD|>yz zXtu|W0f~;)Vzb+_CoVD+0g(<45AB^f4^cRkVtbgEH-D*^?3`~$i?L1rk5l|% zt&|5v>0&fgWm$TWePp5HDBiMzL(kL8?UF0e^=F?a@J5?_<4gj)ACNa8mabO}mYjqF z4~XWEOHXcfebm?~*dhqaZtqm!t^>H>#uh9N8R8%mS1vmk?Z}lAnEUnk(*d}e(LQ!b zwnHaC1-NNKum=15_2<+Q>K2d=BPOcafU4o2%I>!{#1P_Tu7&u~&0(*lx8wSPMcx?CvPYmu44Dj7AV)>{CK}QvvySe^Y6dfbVUcun$E|9=vDC6ffMc+g zlY-15vaX8OM5zI`U|DlQlb)$nVb%xwnWQOcFbwEs+$EO*jcNkxsJ?W$s4lsBKoLMx=8kY#Uzf4KG&PcNUXtUCE?x0kY|UD(hx%~) z{OxsK>?YBGj{5IF-RKgz*tZxI$W$%UtJXUkup zKrk(clFT@O2##J~7!E>Oa#Lo{euyM*CnzQtg^+`k!V#=g2m$6f@QT3sg%m-$1YM?! zRE>x2H0V2rgi@>6w}SiBY>H-Y()VeDfW!`3+HoGi;nA;SJ1M|Rs4^Hj%7jj5F0}HI z>||oph1WIkat%% zdaQ@LmZL=PUy(P);Gh_R5YVXV-+%u6@$;`>*PYqGHgD<&#g$qVh@(68EjS>k#Vseo zOdb9!qky0O_W9+C*l-h&@1G~pmv5tCa|91X3NFniaFu%=`~X6p>{_AbhJYNo{Mv{( zQQ31;YL?bIg1bh>+=rH=9!NMFxWL5X;n>obxGx0?t8&^%9XMs1F zc0#%1hN{n%%0}|l=%6v8UI_U?{@Zf+^0G1Ok5vwWJgWjw%M*A7RY&f&Ne9+(&jfLN zM*h)-z=Z+c_!FibvPyYSz*DUjL^O3|zRkz?$1B!?NXD8S3b<3&4avds4a@czKZ26N zDJZNJFFy)IO(bB47O5ZaJBbi@(+4!hM9j^8l0E-6S@NSb0k|+;aaZ7N%ktSyay$9e zbq4;r&CPv(4=*9`qFiJX>z_Y|`1S%1b#A-2;NyVVEGSTj%dZ_lvvH`mPMM)W48#?F zm6Iz_3%nm)Y~q)=C2zhSFl;=2eTM^o|JUz7e*R4U{9^PuKpU(9d&p=vFtr|nYRd+UsH(clafhJDN{xX8aKw*aS zDmjn1a+}4|PH5eW8>4QqGDeHK@m}z4r^$Gs)`k|iV|Sg&TyL)rkkY10(51gL#n?qO zI&N!1%5fNurQ%0N-B#u?VYz$-yNyYL1!_kD37X5jzRa6|F8FAE+g;b@w6&)M4JeKP zZcBy99IuL@4tKXy0*2gyS1UwZtWk@(>Ucz27|Kqd%0+R{b>FLjbn^L%~%{Jyu5 zNQV1t5n3yjOJZq!WchjX9yFkwbiieC@qJKVth!lL4Pw-b=_8M@xBrp4!V*PgVJYj% z)m-Gaj=KPFqG4+Z$ZKYS-Fx75<6yVsr#N)*U2h)HrgrPVUFkJ{r{OJMS`j6j#|M{;k0xt(kby=;{5k}Y4 zRwgS%mtc2DtXt_OT6Wx`Y&QSKaJd=3)NpItT?{lfU+}m{s*G#J;5ErbQmSquA34x)j8Ijm-NOOf= zoDIkh`0AR-quFBRUz^sNGJ92zY1+2CZRhLDF=n)89iDa%kMA>(0qJeBZ_lM`0G#bm zat;F`)gNku%_Z|lyr>m;#Qf1{e@N2|a-sY@Z@?R_Y6;3#D=j)h@1y}L1;tIB8v1Z6 zionZ46=VSKUf{*=9ITB68G!6o3HTSC*v`*k%J}@3?ewVHZZ0CZiV#`u4Dk zxh&ta--x~s2H7^gu`V%HL+bFm0g6&(#{qTap?lz!bp%hi5qR-l)P@%1^u0VxN~b)v zeeIABc2j9sX`-|3?BeNCYpwm6BAPlxWoKWsh9xgUH0DJoLUP&gHErtO6r^qK>*AHAYv?s{g@%*x(4?)g?cA>jPUZ-Lu z|E{>#)QX$ZERpSwVB*-7X8v+dsCfh42}R;iKEL)~4OtRlHDI%t118EV@LVE*Q&7pO z>BE2kqZ2^c2)Ee}eYc$Kc5yjN@EZVA4L}lP?@E^01nkBqY-Au!J)unG=E|#T%~IeJ zR<1Fn!iQ>RHUX%3bqm6lg|tnW$^g`US{74#=fe!jaBXNipKG&w-vxhTN%5x%cS82A zEktS}i>J)xV~8l2VpViO9|r`1D3khHH>Ps%HWM04lSBPLmCn7z8#tf3YS3Z`xruJ| z&*f6l`3(bakdCq$ydw7afy@6cxWven1`2(R5pVI+QTXgM!X>;2vy#OxH@qw%#J;7=}Uw5mL);;{xEykd-m9r zXi$k2xCjz3#;dBs-s^uLnD`r8tr`_K0m!DuSAtNgI70*?`Y~dBm%)UlM?PH?X7l18iR12 zJGO&dxP_+vRQp^@u0;#G2f^gP= z*Z)S{qs%*S7H6+V>n+C8%MQ!G2g$7bdf9O&C~v4f_y-8uR$ZZ0Z<)DXCYU`hX|s0R zo|ae&Qel!Dk(_g>bt@r-+o&OA9{b$@?EV^HKWhm~a-xXm4MVQ6raKGL!;gJYS$;<` z7-}DFWxCzAY(M<@p*Dw(!PQntsnkxE0Uzk3^>=@`!hE%M1>x(9YP!BpEN-T>{>0p6 z*@fr__TPcuQ>GD7BJUE_@^r?x-EoqXEoiR?BLq7xW532g>3LHu3#v=pToakvL1q~v z$YSso&OC(OOgWST`u{fsUM8zpJIk07g0L|pgo?)Z!Mp8KO82;E2;7Yn3(}R=x_4BQutPmdOhBqTt@WL@m`V;Z)yHq&N^9j-#dr80 zB(G(@qw=EIy3R-@9~QuC#;$PCWRV3S>xkli7*=Dl#@z@#i=>934%9ng9U>%E~4Lu1t|n80xZ@We_L*|B*RIck0NBR+|loL6Di>71vo zh0-DeJGw}ZB6E#3&{nd05p3kP7uqlg%!l_~j_$7G=FnX@so}3%LXZTb3dehcOgPTS z;aX=K5Rc+_}}Z{NV*kH`xp z6>GEJkvG$->y90QbO&bz27woN<&=bTj{EfGvz*!Nj28FoSCVTm2=^Z&85|!rTEl0g z+*x-`+}1krp*6juQN2_0!>3Q>l!w7bH4q5I1Or~ZWP1;Or5B|F=FD~t4Y`T=55PLe z+waZPy>lVv5StRp;p)I<8EhkmuHAkA0 zN3czx^>lkEuXlG?#Dm+^WPx{%&B3HUJ8qPB(o5KT0rOHcl0iQ_4rb(yN*NXmw$ae4 z@+Od9#^@^W5+q_XaA^4*A}853xt2TYta`pE?Pj8!S#7>e-S4Vwxl7qp1`76owGqneZiS;%~4koX#)~YE}Y& zb*CnRMY^%_6Y8hFBYe`6OI&J#u?oCX!`ksvfu#&Q7JS}8kmG3PDLgyL(MP|>f{L1; z+hQNa>IGma$91-}q?{)W@Gu6Xo!W)$VzYhE-`8VjFf! zLNEmw%y*wIUHj&GS~1k|{q9UgBQMQj?#c;l466Ds3lCOT84hccA^}G4u5H5vGl^|BdSa*2!$W*m_JK`AR;Y9E`P0|K>#Iuae-s8BQUmckKL=VZ zp=^WEdTNASckM8eK|vJ`T0S%}niqYH>#Aslq}h@{IN3b$c6i95z#I9uJV&+?X-OA5 zuX;dBo*2NZzfA0}qie@VzLmK~Sz%#?uIp)Q$#i#!yCC}Jg#^XJbz6}i-NgqWp4SN? zgGn(r^@d-7m%I;U4#V8QvZF}4*9NG>t zIx&4>R{)D2^r{Pp$2?Qb_uwS0{#(3Hwsn&Or|OJD^gc=BYT}9)&$nc;eN#+ew1!{Z z=2EmA8<}dJ0DOb{l%&tgL#*!Q=tG4`72z+Fa}Z0XM0IN6znBl#J#}r_5>IaxO>81G zQ}q(~1>b;pcrPo!>vY?SmmCZ=cC^gGY_$Zr@0&}WJdaVa`E8R+w1G*c^DzzhEcEkc zM`##uAouw#|8UA30&n&5N$^wlVref`HF%GyV~JMG5qQ7-H{fl;tl_d6f-7s|nYyle zg3t__dWJS&ftz4oUn*P6O|!ep8-M=$KmPvbTx%d{9g1tiWGfgZ1YWN&5cpTTEyoOj z*B|>LFN@XGz#(ihp1yoLynKBWPw%1=)!S~h`Y?1|sBq`f&KiEB(xMtXJeE(WjX_-$qkzUpHDIp%Bz1cmylD&soaB|k#K z9w3i1ugTwL9P&pr{guCz@=x+W?+9#86_yERZX<5Xc|1K&2`1=?5`SZ^bf6X zy47lPOEuO#C$oAd|Hd9X&)MQ2S?!4_D^w#5xG4E@pxL_gbDwD=m*4LcY(#;)&B8`G zE4gAMw-$g4nkem_LVhcg+%!L_Kgg>j+)%-1dQ0+;kCzM!ZPjPIcw$L!k- zA}2@JSf_K_X^Be=&DbU?H1@DsQ2|~~vbcnqcs#I$bgR^`L_QErnQJN6_C|`!ye04b!3oiRML6;^5ymV@b#6w zhjn;B3>F$|8x2)7<}W+gpS53_F9(%d3|459N!=V4&J?6_RDV z0&nnHdxl--5;b$pq`HBgH+eZLc2n{MyahF_nprnEfssu!|kS$-d$Ts;7vmkV=Sl_!Y!xqdAS5TR~ie z*7dfXq@{A7jO73kyZ7V17{!ioZAX2QA^E70m`xE? zhUL7hCM9l9$YEe$&=bndXCy#W6IXV(Bv(Mq^CcSGCkYxHW5=NG_O(1urI74eiYIPb zQlaq;Jv)ji#~=##0V~ef9d_VotKt}O!U_rbld5edk3{OV*mE+)PnL=Iq>8NG5;w1j zfEz^*4cOHn7>KoJ^o`~wKD6&tsyuZw43nw1#a`0WO~xC<{q*V6x6hxz-A@9q#8=$w zgf~%_)n!RWW3;LPZzI8j;)<+&&l(+Fc{0MG>kYpD{x9P9AKx^(5gz@YV}-xYjaD_y z*~e~i!(5gCj{)77)GEP!`1a*%%I_WS13(>BEIod3VCO9MaPj?4*BF`0y3HiS>bq-C z+Q*R3q94G|Q-SOzMvhZZfe$Zy(6UlQ>QzO|ZWl9s4dfErK<|wB39t$dy+}o0mdn~2 zG#uAp!My^ZTO70lyIs;EmitK+cfFl7a4+1x^0DGPi-6s4VH2W3s`a>e_t4#1NtnM^ zY<4LlX;B9yWw>d2)fG_YTjwEFe(mgp zpXO#t=ghr14->zaStbBjd1aEl)OAN$h!PpKl8Un5U)S(51XiBRy$45Uy1QG9ICw-frtY@X;mlh?f_DLFvqk#4&F8oXy%BP5JIE>d zC0sucUo-9~^3KVAR$Fi=NmnjeQ;oUHky|8NO=V>f@Gewov@LU-1oPntw$kl$>CO(p zl+rsKxbi4mR<-URsiC(ywCT!Cll9d(nE_an>X5;EsRnXJ9-g*~%2O1O@`n%SOI2#z zOop~(<1;Ls@sHl3`GgI6yRK_$2g_{o!Q5ZjXF*`3?_etAZAx_rTN$x!_wemAqoEj&SJ5p~%AGJh z(hS7SMow9<3Ob;UIWUeg1yO7JB7T;Y!^7OI5wW+Wiy7gznW3IgIp8=8+u8?Nq()f| zMpd~X{;lIo9)|tdOvN%$);3~}7@Z?c+QWUpDQj}wWZnfr$1OSvJ_X+|0K70TjPYj?7Z;qt46IGJBdj(p&l2Ybj3K*q+%3S%HGuS3&Fh;~AGN0drbCcl@=he- zugVY$<%Utty*x7S_NZ&l!l8W3T+qwN$zuYJwnG{pwd4ifb%4K}@A@ZTEAX!6UQ~uc zmD#SkpmVpy$aY&>&%|8U#N~EDmSxNT_zCbzdDoBD>F)|v*HdOLHQk}D@z>}=#qj>t z)MPdWf=QLDKg^##eUnwb4}i3HT+Y<_5F{PESzc@0i@_h`ZchlM$m$-WFOF-C26Q4X z9JM(jEWlga-4!9Cd=`}F4!nc+D%BDZMuk?#-}<%mHe?1n9Qn{JC~pkPscvD&n1?N{ z%dj`JZ!xmc=iq%AP!q1}6pqevyk|mhPxrtAj4zI|LIQnLdOPq^43b|2)jtNlZCiy( z-Nc8dCzw4r+;qt-znpS9>CR}as_ixkA$I+H5TbKbM z@IpS1H*i`udm+^~d14-8ug&8n`}d6u2Q#J!2e&Ifydiq=Eu6a%Kw|@E6hy01=%oZA zFi4Y2zdZ6DGEoogbZF3Fz=ot%Q;^fjSLc{f@i$=Q4Z^ zV1Gc(rt$G)Yb)?AqGh)m0&LafuYWJ>}#oH7O5p8UdXUN|4)2s9YfX~v95*-Mb-InDh=K`+>s^T0Z`-%T zE??Um3dmug5IlIcyN;^x7=tlfPrpg+yB@d2p(Nm(Z#UV!gHw*#iSaf^0%4~xWZ*bvH27}}YSR+-DRQUa?K4gX zUPeK=a-bMquP*TRjR0?2x|`Ag@;0_EgXOtkxy;0FF1tnAA+po*IId$sNqx0Zkb_Y^ zCHU<3z2?HSdwkl(88Ua^Rb}{8f!EP5Lzc@17wTG2Sg_?7fp>&(I|6KELX6Qe<{rIL zdX;#8|0lrvNfBff`XRbV{7Wq#cl__*q$)m0mCJ_LDgtzO8mq6LzC0e7KQ_$iLcu7F z2Bxum*Ik2HS%lrlx_CSa_!#QN#xDYd(-94fJ*i%V?)iri?<3{p3E)+|uH;_Id)J-W zLX*MLT=^;{5**-s?X%DkH!cz7Lh{-i$YU>i)Rj#L9Nm>iX?HR-&}g%#gtd-IkKQ$# znm;c(OlK1&jYt?)qaOu&kP^r_6jC9$(p?F#)!*4WH>9;$9D7|Ss2YQwI*FzUXP1ha zLewtb+}0oB`lQ6p`jd5NwkhpEfGWK=WXsgBRp?Y{qi!sm46Vsg9u+&;%(Z+D&bMN% zbr3DU?XU66#T<*0o(m+Pv_=!< z3S1SHZBnSIplNg*b^w^rLmH=xzwIx_4PN&_`#(Gj-uG2}Zv)nsS%_Htr(tX<+ z7u%g2A3q(Y4TUiTUU3)T&7>mSeX!vJ@QSF7tg6%+E`88tGj&PmNwQ8Od&B|mx@O45dCd;yNNrFOy}CN>4ko6tO*{@t z2)v%VyQbnqK}f;I|6pZK8)FhqwKohe1B)6Asy9uq8mMTAG;a{jS;vDIxoaq8uQ$ra z_zQdF!-*c8h7SAqI)Uq4PpiK=q#T^pz-w3xpj`BL)^0rC{z33*k@9bbm1yx0cWJ*y@UcB->QG&SWc=Cj+?>O7bE(ty{3 z$R=ESl?WGPcj!^W1MT-3d(E&^)c2$&Y*Lb~#%ZCt)NK<}J(yL~CaQp<=+tcBe!0G! zt`z&+91k#FVC)`v-EdEP$8y~>Aa<=22*>=-rMvx=@;2a2tbmuR22el!E67{ouN|l> zsMbd%GWVgpFNfV>eaBm4;I3N3P$nMigAueP0=&h+`>EhpYLzus+7ptqU=Cb>(X-q) zfOmwOdvH=>sK6kF(amf=k}#UtINYNYBwiwSjKRAgl=1i!qH7L`l=rYE&W5&MftN}W z%v!W#!fK5{e7%S)l?8#9C8AYrZvY&MtB{b;n#&ftI0L2?yFCfBTl99$mz8Jq6RKRM zz__rj4H(+1MGeMF1{}vAI>dibNpFmQQfe_`^nz1pXg`>VIXKOp-BBHssGcd*U0bmO z_S)fQ2q|QBifQT;PiPyc$|i@q1C4U3+Ua8Aq-D`80F+o$Lar3~lqXG-x!`Vw$bb-Q z<`R|8_0AYxUKq$=pr{Xim?n1tG6DE$nBX`$Az*MugP5k6Xfo3pHZv;Mdzzvzq_qg| z2X>iHq4l||I9x7QQxUf)eT-#$;ZZJKz?)-Lyk((c8=%SYwQxgCF2U!EP9Wp$4KOq# zsP~%ja9Su_amqlLZzq+g_)B~zHQ?n!+@8NyRc3okeHO_V;A2wL935iZJbJ#DUAH!# zKQy@4|)vYL$fdS>wf>*=EMV8rEA*$@}Bi2D}kOKB^fj$}88+K-YU+ zUITA(oCn%^As4TN2<#dQ1E8~^snynsP)f)gdP~9tRUt>}hSIPvpH|?9GgzgtyZ!R3 zI$di~DhQjlocEY(7PbuSO@Rv=UBH7y*D)0v_#4nk$IQ9g`G5A^xRzX) z0y6XaA?~pW%dLJd;?mn$@W;@+W_`nXjuBC z`J*-bI$RaqC4U`|ip{wdk%%s$jgFr8qG*z>tLZm>vZ~C&HmB>Y4MEnUUA5$p^=tsc zv>UxNk(OIy&r|641?&%!DmC~bNP+m4c$d$xQP&oDTgS`MOs|5kb~#lZug5o;^8&mL zxj@`|;1y#5I+s@=`nhw>eLpT6!l1<0jJ9lA>l5-{4*GK`Jzl!)eBl;sTb2AZJZFd` zlHl=dUUp!*)7~zlM$0S~GY5pSp$NQB!Oqu`p&-y^Rrjyrg7L9TT97ly+7>ytW2iet z=+TVGgN5wDZ0~?qbRDB)>|vH*TWge53s+F}H|97NhfpokcDW<3`ok_*r-)&6;C+1s z8HdwYo*u$|pXqG9%n!iM<1t(Y=d1>>2)!)e4FmdR!wM8ae1_z*qbd$mbWgRPdI=ft z$Xh132SwG`pg%cI2>#i$%YoGSg*jCRZy#Gr2)xG|W8SlsCucXe{nX>(l#~$K3cRmC z&GE1UliIImHH23DLFtfH!L*Z776OD}sKt<6M{9To#%nMl*N zo@@jBy?V638vsX&OlcW;nOoW473lV?KD8c$0Ixto3Y)~W_W~iSkA(?<=0Pv)hyr1a zA*GZ?>3JaWQRO)0;93T*Zy(^AF+@W7)n;eqGtX1T%%a zPCi4=+*<@mC_hha^-_Mm_&(&{fjg_t@bqwdQ=uI+R8?wuFGDlYutMbeCZj}*W{J-Q z@O~;GW_=3;3%qwB?0$^yI&OxK#KFl=Up{^N^IyG%*0h|zPEqUE zN_4eE8f^3jk@v2N^WeSO%Y-!*1J=KN`6kAa8U~iR=4_xeA?>Xz!mZdE&~rxz-pu={ z8M&+8TTe9Pz}{l8YIh5~Mi!EZH-H!A!_NfTJ`CXX351E^8Oo$!EEpqSW5^#W1dX=!2c! zEH*(V#z1z7a4(~dq0<0h6F~BOI|5wSonRsEw!L7XH7*5S(n6+GgE8e`c#uR@!to?7 zBAXn?G7tDA4IvfpwjG>BY*W|BCXF{W`1!M|hjCJZGFC!@+ATJ~d{RXXspp~Y6WhAr@7 zzXo1fHrZ-BC*8zc*r~vZ?HQtLIqJTAee~YS4Ql~SuVH804>R^z^G~xsp?w<#7srN5 z{2&}A&0-UHpXmX-VZ;@FA-1y7Hjs>M`a-q|-phMz1H5O{0)v3Pu98AvTS`rHTLDy* zy%<5~H}EqZr)kj_Fz#Upg~RnkioVuE8Ymt-we6N2V`b&?=DGI0#9+4z@YYyASNT_I zqV11|vn4q%^gSU>+N`Asy)!n0&*-)?@rcrgQxkSCLD@4e9es-3SWi<2i>qumkf}-# z^%SFXlF&lq;FS%mFki(fi<-I;m>+;y zgy@f;!?qp3I^Rc)db9Jt3r}{-yc0>Ci9G*n2{Wdb%aU60QPA)w1vcp7aVdEZxDQ%CWy#-zd)fvF-0IzC9_%B_a zy?_@_UY?>c3bXIn_o%1Wxw7Cqu_IF?7F@yB7Gzdy zdI-3HWPH|?8~9!@P!zz9{GFsYN)st|ai!|rF>(Yjdk!l$ms)gPBxb{oD`eS(JptdT z@(R5AJV8T&tqIIF%skmeUoC_vVZJkcI-toB%-DzVgZe+vVmT*nf_ybVeZODJS2|i zgZDS1S)gdVuRfhfL9fcfR|J|7Vj#BYq~a=kyXoZsuOZU97O0MkXIc)lV7=q{x4-`R zw^Z>>E&I6K(mq^zIEV~2a(6;Bgkws+`PUi;d4e0vQc0c>amp zY-YJ*lh;ZA0O(sQ@8-z$D)Exv0($T@t`lrvyz)X(w}5vt$N4>e8(n-SZWh>8QeVgE z&?u|bu63+zplI9L4&~iXbF&c+gm|B5wdwn-Guq3`3x8jq=Pf@b-+B0vg}rZ`47b=- z6yMSmK)Fhnh8g_UCP85DUV)-OWbw~pzWRp=rxUqtbGf-L$0eo}hxMw(r&Tkg>lqSv zdGdDb8Q}FOz`KICvv1jpoR0E0r0b&yoI)t5$}ArcX_sHKVX9P5_KP>d8x6-Uv<$VQ z5iG4mx-yabLKNG`d2{Umjog3`3~(Bak#G!!1D6J)LY$$+kyaX(pOd3KFfCz!W76?- zffrvBvV6>vm;x~bENRB8mS#r>5!PC5Hc9Y6<1}T1u+4V-i^bZbZt78xWvzS({*p+H z48%a9s|9^TYRD&K3ve)gShW)|*W@m^2Ly9XjMKHo)T!u9x0p1Kz%myla0dqDkl_)^ z9_;c~Aj8<7zz(Cruw;hOdm=2?5}-U>?$}nej>BOJT>~zT@%NFf;h1sWPsiYtUJuM? z6F7{IhOdU?e=uFTGB%&6Kg^65SOT#vR7Z)UxH&XS3I=@JI$suNB=nkgr7M?B~Q;7Zug1-QY?hIGrwfHs)sCfy`V(z`tinhL;y@FAtT)HQ|<( zH7&p-H?$#oRUE@O+99@dhJ_v5aK6XO@nJ>Xjk_%^sqajp(#CJ3wG(hxlLEe3d*ksiSNk*{+O-{NOhOqsLmZ{-w6Pkue_Am~~}L;nlu zY>#fc2BFLIVS(07Qi|-jp9(J>^<@sQbBQfJZaf(%+J;nf6H*b@D+z9+VD*I@4G(v> z#HWSQhMgY<-MyYKmMRL-J++#f0bDb2S!`j^4uDnJnNZx?YOx7I4(3c(R}iF0%KRT~ zW}fm&0IQ4;`|?G^;k2Bs8{0`NCR8mj!%4sdAS{Un6%Mem9@&7~gboLT(lTNHvg#FS?^pndHp4H}7;@DBV#^jCxM-GoamzmZF60>;LjyRa5I&}h&d;8}O z*yYpDgYpzQ0gKqmGpeaTn$B5WiXGKFY?%u|Nu-4h9~A^NMpJ#%s(4}bf8|@gDzgtR z@LE+_p98esYkNcY3Rb5)dkpEpwMrg0e@BjnXX9f=UmomcQFq;f$&8Q1HC5hU1Fy(R z?_Hx+ytuT6jo;ZaytVC^DuOz~R*9hd^7PVL%T*1R6Qn-`XNcQcp=xg_GCLNclQjGVWRIV!3tdkm~fpAU_*yN#xRMl*j2z=h3(6{R0TR@ zH__GR)~2kST$ZycekEOd<|Sa#wf5YvoG_kG^BF{0m1R!b+7z>W88E`s?3cvFbf|YB zqAs%U#>`2vx&k{z?}#g@<1N(@YopGA*oO4t>TA8sW<6;n^tcw+kcw~K?=GL3Kf;yX zGa`jr#BW^Y)?}2{#taI{!NOC_lCA|YbTKLpOf#UV=h=uOrj1AFEx?;8g@`Bz@o3Fx z+sKG=ODw6=8ftO1fJc}YG?hCBGxUJKL79PE#KdU|$~}NtJm)8DIAI{%SzsGaDhPJ& zod`O#l&oS2_!xB8)Cqsf9RlB+-a7gbCy-a1lW6iVL-Wv?jX5A}r^Mq!w9uW=hFt<_ zuaw|lP8T{|@cJa(H6mn5=YTO3-rK!I+5)1_ib;Kq!^rC{A_Ojis_;@!wk6>*$~lME zpHE4NcNBX&Zu+_?ed%=Q9S?-e7w~r4?F3!9{qSi7c+1|mzπ(FbljPOqcW3iHye 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�=?8) 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