From f476002691814d6aedc5a60aa98c7b868212524a Mon Sep 17 00:00:00 2001 From: Imma Date: Sun, 15 Jul 2018 19:04:42 +0200 Subject: [PATCH 001/103] add comments about CSS in config --- src/mermaidAPI.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/mermaidAPI.js b/src/mermaidAPI.js index d40c336c4..89ce96949 100644 --- a/src/mermaidAPI.js +++ b/src/mermaidAPI.js @@ -49,6 +49,17 @@ for (const themeName of ['default', 'forest', 'dark', 'neutral']) { * ``` */ const config = { + +/** theme , the CSS style sheet + * + * **theme** - Choose one of the built-in themes: default, forest, dark or neutral. To disable any pre-defined mermaid theme, use "null". + * **themeCSS** - Use your own CSS. This overrides **theme**. + *``` + * "theme": "forest", + * "themeCSS": ".node rect { fill: red; }" + *``` + */ + theme: 'default', themeCSS: undefined, From 97e26686f42a30b9ea86db5f49bd7210177e0688 Mon Sep 17 00:00:00 2001 From: Vrixyz Date: Sun, 29 Jul 2018 18:50:57 +0200 Subject: [PATCH 002/103] wip #602 cardinality display --- dist/index.html | 8 +- src/diagrams/class/classRenderer.js | 134 +++++++++++++++++++++------- 2 files changed, 108 insertions(+), 34 deletions(-) diff --git a/dist/index.html b/dist/index.html index 7fe650751..32cf09aad 100644 --- a/dist/index.html +++ b/dist/index.html @@ -317,11 +317,11 @@ merge newbranch
classDiagram Class01 <|-- AveryLongClass : Cool -Class03 *-- Class04 -Class05 o-- Class06 +Class03 "0" *-- "0..n" Class04 +Class05 "1" o-- "many" Class06 Class07 .. Class08 -Class09 --> C2 : Where am i? -Class09 --* C3 +Class09 "many" --> "1" C2 : Where am i? +Class09 "0" --* "1..n" C3 Class09 --|> Class07 Class07 : equals() Class07 : Object[] elementData diff --git a/src/diagrams/class/classRenderer.js b/src/diagrams/class/classRenderer.js index 5169fce4b..fb7ccbbf1 100644 --- a/src/diagrams/class/classRenderer.js +++ b/src/diagrams/class/classRenderer.js @@ -165,41 +165,115 @@ const drawEdge = function (elem, path, relation) { svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')') } - let x, y const l = path.points.length - if ((l % 2) !== 0) { - const p1 = path.points[Math.floor(l / 2)] - const p2 = path.points[Math.ceil(l / 2)] - x = (p1.x + p2.x) / 2 - y = (p1.y + p2.y) / 2 - } else { - const p = path.points[Math.floor(l / 2)] - x = p.x - y = p.y + // title + { + let x, y + if ((l % 2) !== 0) { + const p1 = path.points[Math.floor(l / 2)] + const p2 = path.points[Math.ceil(l / 2)] + x = (p1.x + p2.x) / 2 + y = (p1.y + p2.y) / 2 + } else { + const p = path.points[Math.floor(l / 2)] + x = p.x + y = p.y + } + + if (typeof relation.title !== 'undefined') { + const g = elem.append('g') + .attr('class', 'classLabel') + const label = g.append('text') + .attr('class', 'label') + .attr('x', x) + .attr('y', y) + .attr('fill', 'red') + .attr('text-anchor', 'middle') + .text(relation.title) + + window.label = label + const bounds = label.node().getBBox() + + g.insert('rect', ':first-child') + .attr('class', 'box') + .attr('x', bounds.x - conf.padding / 2) + .attr('y', bounds.y - conf.padding / 2) + .attr('width', bounds.width + conf.padding) + .attr('height', bounds.height + conf.padding) + } } - if (typeof relation.title !== 'undefined') { - const g = elem.append('g') - .attr('class', 'classLabel') - const label = g.append('text') - .attr('class', 'label') - .attr('x', x) - .attr('y', y) - .attr('fill', 'red') - .attr('text-anchor', 'middle') - .text(relation.title) - - window.label = label - const bounds = label.node().getBBox() - - g.insert('rect', ':first-child') - .attr('class', 'box') - .attr('x', bounds.x - conf.padding / 2) - .attr('y', bounds.y - conf.padding / 2) - .attr('width', bounds.width + conf.padding) - .attr('height', bounds.height + conf.padding) + const normalize = function (point, scale) { + var norm = Math.sqrt(point.x * point.x + point.y * point.y); + if (norm != 0) { // as3 return 0,0 for a point of zero length + point.x = scale * point.x / norm; + point.y = scale * point.y / norm; + } + return point } + // relation title 1 + { + const p = path.points[0] + const nextPoint = path.points[1] + let direction = {x: nextPoint.x - p.x, y: nextPoint.y - p.y} + normalize(direction, 10) + const offsettedPoint = {x: p.x + direction.x, y: p.y + direction.y } + + if (relation.relationTitle1 !== "none") { + const g = elem.append('g') + .attr('class', 'classLabel') + const label = g.append('text') + .attr('class', 'label') + .attr('x', offsettedPoint.x) + .attr('y', offsettedPoint.y) + .attr('fill', 'red') + .attr('text-anchor', 'middle') + .text(relation.relationTitle1) + + window.label = label + const bounds = label.node().getBBox() + + g.insert('rect', ':first-child') + .attr('class', 'box') + .attr('x', bounds.x - conf.padding / 2) + .attr('y', bounds.y - conf.padding / 2) + .attr('width', bounds.width + conf.padding) + .attr('height', bounds.height + conf.padding) + } + } + + // relation title 2 + { + const p = path.points[l - 1] + const previousPoint = path.points[l - 2] + + let direction = {x: previousPoint.x - p.x, y: previousPoint.y - p.y} + normalize(direction, 5) + const offsettedPoint = {x: p.x + direction.x, y: p.y + direction.y } + + if (relation.relationTitle2 !== 'none') { + const g = elem.append('g') + .attr('class', 'classLabel') + const label = g.append('text') + .attr('class', 'label') + .attr('x', offsettedPoint.x) + .attr('y', offsettedPoint.y) + .attr('fill', 'red') + .attr('text-anchor', 'middle') + .text(relation.relationTitle2) + + window.label = label + const bounds = label.node().getBBox() + + g.insert('rect', ':first-child') + .attr('class', 'box') + .attr('x', bounds.x - conf.padding / 2) + .attr('y', bounds.y - conf.padding / 2) + .attr('width', bounds.width + conf.padding) + .attr('height', bounds.height + conf.padding) + } + } edgeCount++ } From ad1763a8f2178516de9d765255e9598906d4111e Mon Sep 17 00:00:00 2001 From: Vrixyz Date: Mon, 30 Jul 2018 21:15:28 +0200 Subject: [PATCH 003/103] wip codeclimate refactoring request --- src/diagrams/class/classRenderer.js | 113 +++++++++------------------- 1 file changed, 37 insertions(+), 76 deletions(-) diff --git a/src/diagrams/class/classRenderer.js b/src/diagrams/class/classRenderer.js index fb7ccbbf1..072dbfe41 100644 --- a/src/diagrams/class/classRenderer.js +++ b/src/diagrams/class/classRenderer.js @@ -165,9 +165,31 @@ const drawEdge = function (elem, path, relation) { svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')') } + const writeLabel = function (x, y, title) { + const g = elem.append('g') + .attr('class', 'classLabel') + const label = g.append('text') + .attr('class', 'label') + .attr('x', x) + .attr('y', y) + .attr('fill', 'red') + .attr('text-anchor', 'middle') + .text(title) + + window.label = label + const bounds = label.node().getBBox() + + g.insert('rect', ':first-child') + .attr('class', 'box') + .attr('x', bounds.x - conf.padding / 2) + .attr('y', bounds.y - conf.padding / 2) + .attr('width', bounds.width + conf.padding) + .attr('height', bounds.height + conf.padding) + } + const l = path.points.length // title - { + if (typeof relation.title !== 'undefined') { let x, y if ((l % 2) !== 0) { const p1 = path.points[Math.floor(l / 2)] @@ -180,99 +202,38 @@ const drawEdge = function (elem, path, relation) { y = p.y } - if (typeof relation.title !== 'undefined') { - const g = elem.append('g') - .attr('class', 'classLabel') - const label = g.append('text') - .attr('class', 'label') - .attr('x', x) - .attr('y', y) - .attr('fill', 'red') - .attr('text-anchor', 'middle') - .text(relation.title) - - window.label = label - const bounds = label.node().getBBox() - - g.insert('rect', ':first-child') - .attr('class', 'box') - .attr('x', bounds.x - conf.padding / 2) - .attr('y', bounds.y - conf.padding / 2) - .attr('width', bounds.width + conf.padding) - .attr('height', bounds.height + conf.padding) - } + writeLabel(x, y, relation.title) } const normalize = function (point, scale) { - var norm = Math.sqrt(point.x * point.x + point.y * point.y); - if (norm != 0) { // as3 return 0,0 for a point of zero length - point.x = scale * point.x / norm; - point.y = scale * point.y / norm; + var norm = Math.sqrt(point.x * point.x + point.y * point.y) + if (norm !== 0) { // as3 return 0,0 for a point of zero length + point.x = scale * point.x / norm + point.y = scale * point.y / norm } return point } - // relation title 1 - { + // Relation title 1 + if (relation.relationTitle1 !== 'none') { const p = path.points[0] const nextPoint = path.points[1] let direction = {x: nextPoint.x - p.x, y: nextPoint.y - p.y} normalize(direction, 10) - const offsettedPoint = {x: p.x + direction.x, y: p.y + direction.y } + const offsettedPoint = {x: p.x + direction.x, y: p.y + direction.y} - if (relation.relationTitle1 !== "none") { - const g = elem.append('g') - .attr('class', 'classLabel') - const label = g.append('text') - .attr('class', 'label') - .attr('x', offsettedPoint.x) - .attr('y', offsettedPoint.y) - .attr('fill', 'red') - .attr('text-anchor', 'middle') - .text(relation.relationTitle1) - - window.label = label - const bounds = label.node().getBBox() - - g.insert('rect', ':first-child') - .attr('class', 'box') - .attr('x', bounds.x - conf.padding / 2) - .attr('y', bounds.y - conf.padding / 2) - .attr('width', bounds.width + conf.padding) - .attr('height', bounds.height + conf.padding) - } + writeLabel(offsettedPoint.x, offsettedPoint.y, relation.relationTitle1) } - - // relation title 2 - { + // Relation title 2 + if (relation.relationTitle2 !== 'none') { const p = path.points[l - 1] const previousPoint = path.points[l - 2] let direction = {x: previousPoint.x - p.x, y: previousPoint.y - p.y} - normalize(direction, 5) - const offsettedPoint = {x: p.x + direction.x, y: p.y + direction.y } + normalize(direction, 10) + const offsettedPoint = {x: p.x + direction.x, y: p.y + direction.y} - if (relation.relationTitle2 !== 'none') { - const g = elem.append('g') - .attr('class', 'classLabel') - const label = g.append('text') - .attr('class', 'label') - .attr('x', offsettedPoint.x) - .attr('y', offsettedPoint.y) - .attr('fill', 'red') - .attr('text-anchor', 'middle') - .text(relation.relationTitle2) - - window.label = label - const bounds = label.node().getBBox() - - g.insert('rect', ':first-child') - .attr('class', 'box') - .attr('x', bounds.x - conf.padding / 2) - .attr('y', bounds.y - conf.padding / 2) - .attr('width', bounds.width + conf.padding) - .attr('height', bounds.height + conf.padding) - } + writeLabel(offsettedPoint.x, offsettedPoint.y, relation.relationTitle2) } edgeCount++ } From b80bad0a937794edeb9d3287d3c60a28fc03f443 Mon Sep 17 00:00:00 2001 From: "Bland, Paul" Date: Fri, 17 Aug 2018 10:56:15 -0400 Subject: [PATCH 004/103] created option for right angle arrows --- src/diagrams/sequence/sequenceRenderer.js | 10 +++++++--- src/mermaidAPI.js | 7 ++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/diagrams/sequence/sequenceRenderer.js b/src/diagrams/sequence/sequenceRenderer.js index fcf41d28e..eab7d34bf 100644 --- a/src/diagrams/sequence/sequenceRenderer.js +++ b/src/diagrams/sequence/sequenceRenderer.js @@ -218,9 +218,13 @@ const drawMessage = function (elem, startx, stopx, verticalPos, msg) { let line if (startx === stopx) { - line = g.append('path') - .attr('d', 'M ' + startx + ',' + verticalPos + ' C ' + (startx + 60) + ',' + (verticalPos - 10) + ' ' + (startx + 60) + ',' + - (verticalPos + 30) + ' ' + startx + ',' + (verticalPos + 20)) + if (conf.rightAngles) { + line = g.append('path').attr('d', `M ${startx},${verticalPos} H ${startx + 75} V ${verticalPos + 25} H ${startx}`) + } else { + line = g.append('path') + .attr('d', 'M ' + startx + ',' + verticalPos + ' C ' + (startx + 60) + ',' + (verticalPos - 10) + ' ' + (startx + 60) + ',' + + (verticalPos + 30) + ' ' + startx + ',' + (verticalPos + 20)) + } bounds.bumpVerticalPos(30) const dx = Math.max(textWidth / 2, 100) diff --git a/src/mermaidAPI.js b/src/mermaidAPI.js index d40c336c4..6fcf4834d 100644 --- a/src/mermaidAPI.js +++ b/src/mermaidAPI.js @@ -153,7 +153,12 @@ const config = { * **useMaxWidth** - when this flag is set the height and width is set to 100% and is then scaling with the * available space if not the absolute space required is used */ - useMaxWidth: true + useMaxWidth: true, + + /** + * **rightAngles** - this will display arrows that start and begin at the same node as right angles, rather than a curve + */ + rightAngles: false }, /** ### gantt From 228b832bedb68212cee8b8c134ad60afc9d1ddaa Mon Sep 17 00:00:00 2001 From: "Bland, Paul" Date: Wed, 22 Aug 2018 10:22:50 -0400 Subject: [PATCH 005/103] moved hard-coded fill and stroke colors from svgDraw.js to scss files, and added defaults to all themes --- src/diagrams/sequence/svgDraw.js | 2 +- src/themes/dark/index.scss | 2 ++ src/themes/default/index.scss | 2 ++ src/themes/forest/index.scss | 2 ++ src/themes/neutral/index.scss | 2 ++ src/themes/sequence.scss | 5 +++++ 6 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/diagrams/sequence/svgDraw.js b/src/diagrams/sequence/svgDraw.js index 29dbbafba..998c51a6a 100644 --- a/src/diagrams/sequence/svgDraw.js +++ b/src/diagrams/sequence/svgDraw.js @@ -106,7 +106,7 @@ export const drawActivation = function (elem, bounds, verticalPos) { const g = bounds.anchored rect.x = bounds.startx rect.y = bounds.starty - rect.fill = '#f4f4f4' + rect.class = 'activation' rect.width = bounds.stopx - bounds.startx rect.height = verticalPos - bounds.starty drawRect(g, rect) diff --git a/src/themes/dark/index.scss b/src/themes/dark/index.scss index 529eb3f70..579d871b2 100644 --- a/src/themes/dark/index.scss +++ b/src/themes/dark/index.scss @@ -30,6 +30,8 @@ $labelBoxBorderColor: $actorBorder; $labelTextColor: $mainContrastColor; $noteBorderColor: $border2; $noteBkgColor: #fff5ad; +$activationBorderColor: #666; +$activationBkgColor: #f4f4f4; /* Gantt chart variables */ diff --git a/src/themes/default/index.scss b/src/themes/default/index.scss index e98fc0741..2718eb3ef 100644 --- a/src/themes/default/index.scss +++ b/src/themes/default/index.scss @@ -28,6 +28,8 @@ $labelBoxBorderColor: $actorBorder; $labelTextColor: $actorTextColor; $noteBorderColor: $border2; $noteBkgColor: #fff5ad; +$activationBorderColor: #666; +$activationBkgColor: #f4f4f4; /* Gantt chart variables */ diff --git a/src/themes/forest/index.scss b/src/themes/forest/index.scss index f6e1a1dae..c4a712297 100644 --- a/src/themes/forest/index.scss +++ b/src/themes/forest/index.scss @@ -29,6 +29,8 @@ $labelBoxBorderColor: #326932; $labelTextColor: $actorTextColor; $noteBorderColor: $border2; $noteBkgColor: #fff5ad; +$activationBorderColor: #666; +$activationBkgColor: #f4f4f4; /* Gantt chart variables */ diff --git a/src/themes/neutral/index.scss b/src/themes/neutral/index.scss index f0560142f..ea41b9b8c 100644 --- a/src/themes/neutral/index.scss +++ b/src/themes/neutral/index.scss @@ -33,6 +33,8 @@ $labelBoxBorderColor: $actorBorder; $labelTextColor: white; $noteBorderColor: darken($note, 60%); $noteBkgColor: $note; +$activationBorderColor: #666; +$activationBkgColor: #f4f4f4; /* Gantt chart variables */ diff --git a/src/themes/sequence.scss b/src/themes/sequence.scss index 780e8ecf5..1fc9622c7 100644 --- a/src/themes/sequence.scss +++ b/src/themes/sequence.scss @@ -73,3 +73,8 @@ text.actor { font-family: 'trebuchet ms', verdana, arial; font-size: 14px; } + +.activation { + fill: $activationBkgColor; + stroke: $activationBorderColor; +} From ae8dde981b81f2079534d0eafd8e8341cf3d6ad4 Mon Sep 17 00:00:00 2001 From: "Bland, Paul" Date: Wed, 22 Aug 2018 15:30:12 -0400 Subject: [PATCH 006/103] make path a bit wider --- src/diagrams/sequence/sequenceRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diagrams/sequence/sequenceRenderer.js b/src/diagrams/sequence/sequenceRenderer.js index eab7d34bf..ee1e2a48a 100644 --- a/src/diagrams/sequence/sequenceRenderer.js +++ b/src/diagrams/sequence/sequenceRenderer.js @@ -219,7 +219,7 @@ const drawMessage = function (elem, startx, stopx, verticalPos, msg) { let line if (startx === stopx) { if (conf.rightAngles) { - line = g.append('path').attr('d', `M ${startx},${verticalPos} H ${startx + 75} V ${verticalPos + 25} H ${startx}`) + line = g.append('path').attr('d', `M ${startx},${verticalPos} H ${startx + (conf.width/2)} V ${verticalPos + 25} H ${startx}`) } else { line = g.append('path') .attr('d', 'M ' + startx + ',' + verticalPos + ' C ' + (startx + 60) + ',' + (verticalPos - 10) + ' ' + (startx + 60) + ',' + From 42d66fd3d9d1eb6aa08d4ecf14c6790f957b29ab Mon Sep 17 00:00:00 2001 From: "Bland, Paul" Date: Thu, 23 Aug 2018 11:53:04 -0400 Subject: [PATCH 007/103] tweak for lint --- src/diagrams/sequence/sequenceRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diagrams/sequence/sequenceRenderer.js b/src/diagrams/sequence/sequenceRenderer.js index ee1e2a48a..ea7b9480b 100644 --- a/src/diagrams/sequence/sequenceRenderer.js +++ b/src/diagrams/sequence/sequenceRenderer.js @@ -219,7 +219,7 @@ const drawMessage = function (elem, startx, stopx, verticalPos, msg) { let line if (startx === stopx) { if (conf.rightAngles) { - line = g.append('path').attr('d', `M ${startx},${verticalPos} H ${startx + (conf.width/2)} V ${verticalPos + 25} H ${startx}`) + line = g.append('path').attr('d', `M ${startx},${verticalPos} H ${startx + (conf.width / 2)} V ${verticalPos + 25} H ${startx}`) } else { line = g.append('path') .attr('d', 'M ' + startx + ',' + verticalPos + ' C ' + (startx + 60) + ',' + (verticalPos - 10) + ' ' + (startx + 60) + ',' + From 80c7c9a86e64108e0f9dca88714640625f4ca1bd Mon Sep 17 00:00:00 2001 From: "Bland, Paul" Date: Fri, 24 Aug 2018 11:56:28 -0400 Subject: [PATCH 008/103] added ability to style nested activations --- src/diagrams/sequence/sequenceRenderer.js | 2 +- src/diagrams/sequence/svgDraw.js | 4 ++-- src/themes/sequence.scss | 12 +++++++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/diagrams/sequence/sequenceRenderer.js b/src/diagrams/sequence/sequenceRenderer.js index fcf41d28e..8d8094e6b 100644 --- a/src/diagrams/sequence/sequenceRenderer.js +++ b/src/diagrams/sequence/sequenceRenderer.js @@ -338,7 +338,7 @@ export const draw = function (text, id) { activationData.starty = verticalPos - 6 verticalPos += 12 } - svgDraw.drawActivation(diagram, activationData, verticalPos, conf) + svgDraw.drawActivation(diagram, activationData, verticalPos, conf, actorActivations(msg.from.actor).length) bounds.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos) } diff --git a/src/diagrams/sequence/svgDraw.js b/src/diagrams/sequence/svgDraw.js index 998c51a6a..aaabfea60 100644 --- a/src/diagrams/sequence/svgDraw.js +++ b/src/diagrams/sequence/svgDraw.js @@ -101,12 +101,12 @@ export const anchorElement = function (elem) { * @param bounds - activation box bounds * @param verticalPos - precise y cooridnate of bottom activation box edge */ -export const drawActivation = function (elem, bounds, verticalPos) { +export const drawActivation = function (elem, bounds, verticalPos, conf, actorActivations) { const rect = getNoteRect() const g = bounds.anchored rect.x = bounds.startx rect.y = bounds.starty - rect.class = 'activation' + rect.class = 'activation' + actorActivations rect.width = bounds.stopx - bounds.startx rect.height = verticalPos - bounds.starty drawRect(g, rect) diff --git a/src/themes/sequence.scss b/src/themes/sequence.scss index 1fc9622c7..572bcc07b 100644 --- a/src/themes/sequence.scss +++ b/src/themes/sequence.scss @@ -74,7 +74,17 @@ text.actor { font-size: 14px; } -.activation { +.activation0 { + fill: $activationBkgColor; + stroke: $activationBorderColor; +} + +.activation1 { + fill: $activationBkgColor; + stroke: $activationBorderColor; +} + +.activation2 { fill: $activationBkgColor; stroke: $activationBorderColor; } From 06aa4a5c0711c90d7206b0a65637a6d1573d74e6 Mon Sep 17 00:00:00 2001 From: "Bland, Paul" Date: Wed, 29 Aug 2018 14:24:42 -0400 Subject: [PATCH 009/103] prevent deeply nested activations from calling classes that don't exist (by limiting to 3) --- src/diagrams/sequence/svgDraw.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diagrams/sequence/svgDraw.js b/src/diagrams/sequence/svgDraw.js index aaabfea60..cf1d6fd2c 100644 --- a/src/diagrams/sequence/svgDraw.js +++ b/src/diagrams/sequence/svgDraw.js @@ -106,7 +106,7 @@ export const drawActivation = function (elem, bounds, verticalPos, conf, actorAc const g = bounds.anchored rect.x = bounds.startx rect.y = bounds.starty - rect.class = 'activation' + actorActivations + rect.class = 'activation' + (actorActivations % 3) // Will evaluate to 0, 1 or 2 rect.width = bounds.stopx - bounds.startx rect.height = verticalPos - bounds.starty drawRect(g, rect) From ba2f2cb284a13655bcbf3869dff3a48a3c6d222f Mon Sep 17 00:00:00 2001 From: Gerrit-Jan Lubbertsen Date: Tue, 13 Nov 2018 16:32:26 +0100 Subject: [PATCH 010/103] Fix issue with marker-end. I had issues with marker-end. Assuming that CSS got more strict over time. --- src/themes/sequence.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/themes/sequence.scss b/src/themes/sequence.scss index 780e8ecf5..0e5714504 100644 --- a/src/themes/sequence.scss +++ b/src/themes/sequence.scss @@ -15,7 +15,7 @@ text.actor { .messageLine0 { stroke-width: 1.5; stroke-dasharray: '2 2'; - marker-end: 'url(#arrowhead)'; + marker-end: url(#arrowhead); stroke: $signalColor; } @@ -57,7 +57,7 @@ text.actor { .loopLine { stroke-width: 2; stroke-dasharray: '2 2'; - marker-end: 'url(#arrowhead)'; + marker-end: url(#arrowhead); stroke: $labelBoxBorderColor; } From 2fc5745c5829b745ffdd2f1ac5fde7fbef03afd5 Mon Sep 17 00:00:00 2001 From: Casey Watson Date: Mon, 26 Nov 2018 11:38:10 -0700 Subject: [PATCH 011/103] Support Multi-line Actor Descriptions - Add support for
delimiter in actor descriptions. - Add actorFontFamily and actorFontSize options to sequence diagram. - Change default actor description font from times to sans. Fix #384 #702 #755 --- dist/index.html | 3 ++ src/diagrams/sequence/sequenceRenderer.js | 2 ++ src/diagrams/sequence/svgDraw.js | 36 ++++++++++++++--------- 3 files changed, 27 insertions(+), 14 deletions(-) diff --git a/dist/index.html b/dist/index.html index 7fe650751..47bf945d5 100644 --- a/dist/index.html +++ b/dist/index.html @@ -238,6 +238,9 @@ class A someclass;
sequenceDiagram +participant Alice +participant Bob +participant John as John
Second Line Alice ->> Bob: Hello Bob, how are you? Bob-->>John: How about you John? Bob--x Alice: I am good thanks! diff --git a/src/diagrams/sequence/sequenceRenderer.js b/src/diagrams/sequence/sequenceRenderer.js index fcf41d28e..f37238a13 100644 --- a/src/diagrams/sequence/sequenceRenderer.js +++ b/src/diagrams/sequence/sequenceRenderer.js @@ -17,6 +17,8 @@ const conf = { width: 150, // Height of actor boxes height: 65, + actorFontSize: 14, + actorFontFamily: '"Open-Sans", "sans-serif"', // Margin around loop boxes boxMargin: 10, boxTextMargin: 5, diff --git a/src/diagrams/sequence/svgDraw.js b/src/diagrams/sequence/svgDraw.js index 29dbbafba..71f527eca 100644 --- a/src/diagrams/sequence/svgDraw.js +++ b/src/diagrams/sequence/svgDraw.js @@ -89,7 +89,7 @@ export const drawActor = function (elem, left, verticalPos, description, conf) { drawRect(g, rect) _drawTextCandidateFunc(conf)(description, g, - rect.x, rect.y, rect.width, rect.height, { 'class': 'actor' }) + rect.x, rect.y, rect.width, rect.height, { 'class': 'actor' }, conf) } export const anchorElement = function (elem) { @@ -252,22 +252,30 @@ const _drawTextCandidateFunc = (function () { _setTextAttrs(text, textAttrs) } - function byTspan (content, g, x, y, width, height, textAttrs) { - const text = g.append('text') - .attr('x', x + width / 2).attr('y', y) - .style('text-anchor', 'middle') - text.append('tspan') - .attr('x', x + width / 2).attr('dy', '0') - .text(content) + function byTspan (content, g, x, y, width, height, textAttrs, conf) { + const { actorFontSize, actorFontFamily } = conf - text.attr('y', y + height / 2.0) - .attr('dominant-baseline', 'central') - .attr('alignment-baseline', 'central') + const lines = content.split(//ig) + for (let i = 0; i < lines.length; i++) { + const dy = (i * actorFontSize) - (actorFontSize * (lines.length - 1) / 2) + const text = g.append('text') + .attr('x', x + width / 2).attr('y', y) + .style('text-anchor', 'middle') + .style('font-size', actorFontSize) + .style('font-family', actorFontFamily) + text.append('tspan') + .attr('x', x + width / 2).attr('dy', dy) + .text(lines[i]) - _setTextAttrs(text, textAttrs) + text.attr('y', y + height / 2.0) + .attr('dominant-baseline', 'central') + .attr('alignment-baseline', 'central') + + _setTextAttrs(text, textAttrs) + } } - function byFo (content, g, x, y, width, height, textAttrs) { + function byFo (content, g, x, y, width, height, textAttrs, conf) { const s = g.append('switch') const f = s.append('foreignObject') .attr('x', x).attr('y', y) @@ -280,7 +288,7 @@ const _drawTextCandidateFunc = (function () { .style('text-align', 'center').style('vertical-align', 'middle') .text(content) - byTspan(content, s, x, y, width, height, textAttrs) + byTspan(content, s, x, y, width, height, textAttrs, conf) _setTextAttrs(text, textAttrs) } From aca80726d74c105fd801008d293964f1a3d68704 Mon Sep 17 00:00:00 2001 From: Philipp A Date: Wed, 28 Nov 2018 17:09:34 +0100 Subject: [PATCH 012/103] Render nodes as real links --- src/diagrams/flowchart/flowDb.js | 9 +-------- src/diagrams/flowchart/flowRenderer.js | 12 +++++++++++- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/diagrams/flowchart/flowDb.js b/src/diagrams/flowchart/flowDb.js index 275e9c39d..140b820da 100644 --- a/src/diagrams/flowchart/flowDb.js +++ b/src/diagrams/flowchart/flowDb.js @@ -181,14 +181,7 @@ const setLink = function (id, linkStr) { return } if (typeof vertices[id] !== 'undefined') { - funs.push(function (element) { - const elem = d3.select(element).select(`[id="${id}"]`) - if (elem !== null) { - elem.on('click', function () { - window.open(linkStr, 'newTab') - }) - } - }) + vertices[id].link = linkStr } } export const getTooltip = function (id) { diff --git a/src/diagrams/flowchart/flowRenderer.js b/src/diagrams/flowchart/flowRenderer.js index 237526505..28c010218 100644 --- a/src/diagrams/flowchart/flowRenderer.js +++ b/src/diagrams/flowchart/flowRenderer.js @@ -70,6 +70,9 @@ export const addVertices = function (vert, g) { verticeText = verticeText.replace(/fa:fa[\w-]+/g, function (s) { return '' }) + if (vertice.link) { + verticeText = '' + verticeText + '' + } } else { const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text') @@ -85,7 +88,14 @@ export const addVertices = function (vert, g) { } labelTypeStr = 'svg' - verticeText = svgLabel + if (vertice.link) { + const link = document.createElementNS('http://www.w3.org/2000/svg', 'a') + link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertice.link) + link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener') + verticeText = link + } else { + verticeText = svgLabel + } } let radious = 0 From bcd3aa7d6136fc19ea5ccf672577f9c1ba0b6524 Mon Sep 17 00:00:00 2001 From: Philipp A Date: Sat, 1 Dec 2018 15:31:57 +0100 Subject: [PATCH 013/103] Improved docs, split setClickEvent and setLink --- src/diagrams/flowchart/flowDb.js | 73 +++++++++++----------- src/diagrams/flowchart/parser/flow.jison | 8 +-- src/diagrams/flowchart/parser/flow.js | 8 +-- src/diagrams/flowchart/parser/flow.spec.js | 12 ++-- 4 files changed, 49 insertions(+), 52 deletions(-) diff --git a/src/diagrams/flowchart/flowDb.js b/src/diagrams/flowchart/flowDb.js index 140b820da..fdf0c3476 100644 --- a/src/diagrams/flowchart/flowDb.js +++ b/src/diagrams/flowchart/flowDb.js @@ -137,27 +137,24 @@ export const setDirection = function (dir) { } /** - * Called by parser when a graph definition is found, stores the direction of the chart. - * @param dir + * Called by parser when a special node is found, e.g. a clickable element. + * @param ids Comma separated list of ids + * @param className Class to add */ -export const setClass = function (id, className) { - if (id.indexOf(',') > 0) { - id.split(',').forEach(function (id2) { - if (typeof vertices[id2] !== 'undefined') { - vertices[id2].classes.push(className) - } - }) - } else { +export const setClass = function (ids, className) { + ids.split(',').forEach(function (id) { if (typeof vertices[id] !== 'undefined') { vertices[id].classes.push(className) } - } + }) } -const setTooltip = function (id, tooltip) { - if (typeof tooltip !== 'undefined') { - tooltips[id] = tooltip - } +const setTooltip = function (ids, tooltip) { + ids.split(',').forEach(function (id) { + if (typeof tooltip !== 'undefined') { + tooltips[id] = tooltip + } + }) } const setClickFun = function (id, functionName) { @@ -176,36 +173,35 @@ const setClickFun = function (id, functionName) { } } -const setLink = function (id, linkStr) { - if (typeof linkStr === 'undefined') { - return - } - if (typeof vertices[id] !== 'undefined') { - vertices[id].link = linkStr - } +/** + * Called by parser when a link is found. Adds the URL to the vertex data. + * @param ids Comma separated list of ids + * @param linkStr URL to create a link for + * @param tooltip Tooltip for the clickable element + */ +export const setLink = function (ids, linkStr, tooltip) { + ids.split(',').forEach(function (id) { + if (typeof vertices[id] !== 'undefined') { + vertices[id].link = linkStr + } + }) + setTooltip(ids, tooltip) + setClass(ids, 'clickable') } export const getTooltip = function (id) { return tooltips[id] } /** - * Called by parser when a graph definition is found, stores the direction of the chart. - * @param dir + * Called by parser when a click definition is found. Registers an event handler. + * @param ids Comma separated list of ids + * @param functionName Function to be called on click + * @param tooltip Tooltip for the clickable element */ -export const setClickEvent = function (id, functionName, link, tooltip) { - if (id.indexOf(',') > 0) { - id.split(',').forEach(function (id2) { - setTooltip(id2, tooltip) - setClickFun(id2, functionName) - setLink(id2, link) - setClass(id, 'clickable') - }) - } else { - setTooltip(id, tooltip) - setClickFun(id, functionName) - setLink(id, link) - setClass(id, 'clickable') - } +export const setClickEvent = function (ids, functionName, tooltip) { + ids.split(',').forEach(function (id) { setClickFun(id, functionName) }) + setTooltip(ids, tooltip) + setClass(ids, 'clickable') } export const bindFunctions = function (element) { @@ -402,6 +398,7 @@ export default { setClass, getTooltip, setClickEvent, + setLink, bindFunctions, getDirection, getVertices, diff --git a/src/diagrams/flowchart/parser/flow.jison b/src/diagrams/flowchart/parser/flow.jison index 0bbb4281e..fa14fc7cd 100644 --- a/src/diagrams/flowchart/parser/flow.jison +++ b/src/diagrams/flowchart/parser/flow.jison @@ -396,10 +396,10 @@ classStatement:CLASS SPACE alphaNum SPACE alphaNum ; clickStatement - : CLICK SPACE alphaNum SPACE alphaNum {$$ = $1;yy.setClickEvent($3, $5, undefined, undefined);} - | CLICK SPACE alphaNum SPACE alphaNum SPACE STR {$$ = $1;yy.setClickEvent($3, $5, undefined, $7) ;} - | CLICK SPACE alphaNum SPACE STR {$$ = $1;yy.setClickEvent($3, undefined, $5, undefined);} - | CLICK SPACE alphaNum SPACE STR SPACE STR {$$ = $1;yy.setClickEvent($3, undefined, $5, $7 );} + : CLICK SPACE alphaNum SPACE alphaNum {$$ = $1;yy.setClickEvent($3, $5, undefined);} + | CLICK SPACE alphaNum SPACE alphaNum SPACE STR {$$ = $1;yy.setClickEvent($3, $5, $7) ;} + | CLICK SPACE alphaNum SPACE STR {$$ = $1;yy.setLink($3, $5, undefined);} + | CLICK SPACE alphaNum SPACE STR SPACE STR {$$ = $1;yy.setLink($3, $5, $7 );} ; styleStatement:STYLE SPACE alphaNum SPACE stylesOpt diff --git a/src/diagrams/flowchart/parser/flow.js b/src/diagrams/flowchart/parser/flow.js index f45c6fd71..7467a93e5 100644 --- a/src/diagrams/flowchart/parser/flow.js +++ b/src/diagrams/flowchart/parser/flow.js @@ -271,16 +271,16 @@ case 112: this.$ = $$[$0-4];yy.setClass($$[$0-2], $$[$0]); break; case 113: -this.$ = $$[$0-4];yy.setClickEvent($$[$0-2], $$[$0], undefined, undefined); +this.$ = $$[$0-4];yy.setClickEvent($$[$0-2], $$[$0], undefined); break; case 114: -this.$ = $$[$0-6];yy.setClickEvent($$[$0-4], $$[$0-2], undefined, $$[$0]) ; +this.$ = $$[$0-6];yy.setClickEvent($$[$0-4], $$[$0-2], $$[$0]) ; break; case 115: -this.$ = $$[$0-4];yy.setClickEvent($$[$0-2], undefined, $$[$0], undefined); +this.$ = $$[$0-4];yy.setLink($$[$0-2], $$[$0], undefined); break; case 116: -this.$ = $$[$0-6];yy.setClickEvent($$[$0-4], undefined, $$[$0-2], $$[$0] ); +this.$ = $$[$0-6];yy.setLink($$[$0-4], $$[$0-2], $$[$0] ); break; case 117: this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]); diff --git a/src/diagrams/flowchart/parser/flow.spec.js b/src/diagrams/flowchart/parser/flow.spec.js index 28d273baf..27e54fb5c 100644 --- a/src/diagrams/flowchart/parser/flow.spec.js +++ b/src/diagrams/flowchart/parser/flow.spec.js @@ -486,7 +486,7 @@ describe('when parsing ', function () { const vert = flow.parser.yy.getVertices() const edges = flow.parser.yy.getEdges() - expect(flowDb.setClickEvent).toHaveBeenCalledWith('A', 'callback', undefined, undefined) + expect(flowDb.setClickEvent).toHaveBeenCalledWith('A', 'callback', undefined) }) it('it should be possible to use click to a callback with toolip', function () { @@ -496,26 +496,26 @@ describe('when parsing ', function () { const vert = flow.parser.yy.getVertices() const edges = flow.parser.yy.getEdges() - expect(flowDb.setClickEvent).toHaveBeenCalledWith('A', 'callback', undefined, 'tooltip') + expect(flowDb.setClickEvent).toHaveBeenCalledWith('A', 'callback', 'tooltip') }) it('should handle interaction - click to a link', function () { - spyOn(flowDb, 'setClickEvent') + spyOn(flowDb, 'setLink') const res = flow.parser.parse('graph TD\nA-->B\nclick A "click.html"') const vert = flow.parser.yy.getVertices() const edges = flow.parser.yy.getEdges() - expect(flowDb.setClickEvent).toHaveBeenCalledWith('A', undefined, 'click.html', undefined) + expect(flowDb.setLink).toHaveBeenCalledWith('A', 'click.html', undefined) }) it('should handle interaction - click to a link with tooltip', function () { - spyOn(flowDb, 'setClickEvent') + spyOn(flowDb, 'setLink') const res = flow.parser.parse('graph TD\nA-->B\nclick A "click.html" "tooltip"') const vert = flow.parser.yy.getVertices() const edges = flow.parser.yy.getEdges() - expect(flowDb.setClickEvent).toHaveBeenCalledWith('A', undefined, 'click.html', 'tooltip') + expect(flowDb.setLink).toHaveBeenCalledWith('A', 'click.html', 'tooltip') }) }) From 6ece2838bd9bf835c4da3a218252946e44bfd25f Mon Sep 17 00:00:00 2001 From: ysKim Date: Wed, 5 Dec 2018 22:45:03 +0900 Subject: [PATCH 014/103] Remove duplicate code --- src/diagrams/flowchart/flowDb.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/diagrams/flowchart/flowDb.js b/src/diagrams/flowchart/flowDb.js index 275e9c39d..52327cc14 100644 --- a/src/diagrams/flowchart/flowDb.js +++ b/src/diagrams/flowchart/flowDb.js @@ -45,9 +45,6 @@ export const addVertex = function (id, text, type, style) { if (typeof type !== 'undefined') { vertices[id].type = type } - if (typeof type !== 'undefined') { - vertices[id].type = type - } if (typeof style !== 'undefined') { if (style !== null) { style.forEach(function (s) { From e8aebb00ee6ecca31abf32782ea1b5b2521ea19b Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Mon, 17 Dec 2018 14:42:52 +0800 Subject: [PATCH 015/103] Fix typos in test cases --- src/diagrams/flowchart/parser/flow.spec.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diagrams/flowchart/parser/flow.spec.js b/src/diagrams/flowchart/parser/flow.spec.js index 28d273baf..ddbcec088 100644 --- a/src/diagrams/flowchart/parser/flow.spec.js +++ b/src/diagrams/flowchart/parser/flow.spec.js @@ -33,7 +33,7 @@ describe('when parsing ', function () { expect(subgraph.title).toBe('One') }) - it('should handle angle bracket ' > ' as direction LR', function () { + it("should handle angle bracket ' > ' as direction LR", function () { const res = flow.parser.parse('graph >;A-->B;') const vert = flow.parser.yy.getVertices() @@ -51,7 +51,7 @@ describe('when parsing ', function () { expect(edges[0].text).toBe('') }) - it('should handle angle bracket ' < ' as direction RL', function () { + it("should handle angle bracket ' < ' as direction RL", function () { const res = flow.parser.parse('graph <;A-->B;') const vert = flow.parser.yy.getVertices() @@ -69,7 +69,7 @@ describe('when parsing ', function () { expect(edges[0].text).toBe('') }) - it('should handle caret ' ^ ' as direction BT', function () { + it("should handle caret ' ^ ' as direction BT", function () { const res = flow.parser.parse('graph ^;A-->B;') const vert = flow.parser.yy.getVertices() From 349aeb5a2658c2071765580eb7dd8c53a74a1ede Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Mon, 17 Dec 2018 14:56:26 +0800 Subject: [PATCH 016/103] Upgrade dependencies --- .babelrc | 2 +- package.json | 49 +- yarn.lock | 7234 +++++++++++++++++++++++++------------------------- 3 files changed, 3630 insertions(+), 3655 deletions(-) diff --git a/.babelrc b/.babelrc index b207aefdd..a29ac9986 100644 --- a/.babelrc +++ b/.babelrc @@ -1,5 +1,5 @@ { "presets": [ - "env" + "@babel/preset-env" ] } diff --git a/package.json b/package.json index 3c2a5b38f..667a9de0d 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "build": "webpack --progress --colors", "build:watch": "yarn build --watch", "release": "yarn build -p --config webpack.config.prod.babel.js", - "upgrade": "yarn-upgrade-all", "lint": "standard", "test": "yarn lint && jest", "test:watch": "jest --watch", @@ -37,36 +36,39 @@ ] }, "dependencies": { - "d3": "^4.13.0", + "d3": "^5.7.0", "dagre-d3-renderer": "^0.5.8", "dagre-layout": "^0.8.8", "graphlibrary": "^2.2.0", - "he": "^1.1.1", - "lodash": "^4.17.5", - "moment": "^2.21.0", - "scope-css": "^1.0.5" + "he": "^1.2.0", + "lodash": "^4.17.11", + "moment": "^2.23.0", + "scope-css": "^1.2.1" }, "devDependencies": { - "babel-core": "^6.26.0", - "babel-loader": "^7.1.4", - "babel-preset-env": "^1.6.1", - "coveralls": "^3.0.0", - "css-loader": "^0.28.11", + "@babel/core": "^7.2.2", + "@babel/preset-env": "^7.2.0", + "@babel/register": "^7.0.0", + "babel-core": "7.0.0-bridge.0", + "babel-jest": "^23.6.0", + "babel-loader": "^8.0.4", + "coveralls": "^3.0.2", + "css-loader": "^2.0.1", "css-to-string-loader": "^0.1.3", - "gulp": "^3.9.1", + "gulp": "^4.0.0", "gulp-filelog": "^0.4.1", "gulp-jison": "^1.2.0", - "husky": "^0.14.3", + "husky": "^1.2.1", "identity-obj-proxy": "^3.0.0", - "jest": "^22.4.2", + "jest": "^23.6.0", "jison": "^0.4.18", - "node-sass": "^4.7.2", - "sass-loader": "^6.0.7", - "standard": "^11.0.1", - "webpack": "^4.1.1", - "webpack-cli": "^2.0.12", - "webpack-node-externals": "^1.6.0", - "yarn-upgrade-all": "^0.3.0" + "node-sass": "^4.11.0", + "sass-loader": "^7.1.0", + "standard": "^12.0.1", + "webpack": "^4.27.1", + "webpack-cli": "^3.1.2", + "webpack-node-externals": "^1.7.2", + "yarn-upgrade-all": "^0.5.0" }, "files": [ "dist", @@ -76,5 +78,10 @@ "moduleNameMapper": { "\\.(css|scss)$": "identity-obj-proxy" } + }, + "yarn-upgrade-all": { + "ignore": [ + "babel-core" + ] } } diff --git a/yarn.lock b/yarn.lock index 764ee6114..8e373dc64 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,23 +2,752 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0-beta.35": - version "7.0.0-beta.42" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0-beta.42.tgz#a9c83233fa7cd06b39dc77adbb908616ff4f1962" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.0.0-beta.35": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.0.0.tgz#06e2ab19bdb535385559aabb5ba59729482800f8" + integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA== dependencies: - "@babel/highlight" "7.0.0-beta.42" + "@babel/highlight" "^7.0.0" -"@babel/highlight@7.0.0-beta.42": - version "7.0.0-beta.42" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0-beta.42.tgz#a502a1c0d6f99b2b0e81d468a1b0c0e81e3f3623" +"@babel/core@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.2.2.tgz#07adba6dde27bb5ad8d8672f15fde3e08184a687" + integrity sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.2" + "@babel/helpers" "^7.2.0" + "@babel/parser" "^7.2.2" + "@babel/template" "^7.2.2" + "@babel/traverse" "^7.2.2" + "@babel/types" "^7.2.2" + convert-source-map "^1.1.0" + debug "^4.1.0" + json5 "^2.1.0" + lodash "^4.17.10" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.2.2.tgz#18c816c70962640eab42fe8cae5f3947a5c65ccc" + integrity sha512-I4o675J/iS8k+P38dvJ3IBGqObLXyQLTxtrR4u9cSUJOURvafeEWb/pFMOTwtNrmq73mJzyF6ueTbO1BtN0Zeg== + dependencies: + "@babel/types" "^7.2.2" + jsesc "^2.5.1" + lodash "^4.17.10" + source-map "^0.5.0" + trim-right "^1.0.1" + +"@babel/helper-annotate-as-pure@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" + integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" + integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-call-delegate@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.1.0.tgz#6a957f105f37755e8645343d3038a22e1449cc4a" + integrity sha512-YEtYZrw3GUK6emQHKthltKNZwszBcHK58Ygcis+gVUrF4/FmTVr5CCqQNSfmvg2y+YDEANyYoaLz/SHsnusCwQ== + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-define-map@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.1.0.tgz#3b74caec329b3c80c116290887c0dd9ae468c20c" + integrity sha512-yPPcW8dc3gZLN+U1mhYV91QU3n5uTbx7DUdf8NnPbjS0RMwBuHi9Xt2MUgppmNz7CJxTBWsGczTiEp1CSOTPRg== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/types" "^7.0.0" + lodash "^4.17.10" + +"@babel/helper-explode-assignable-expression@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" + integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== + dependencies: + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-function-name@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" + integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== + dependencies: + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-get-function-arity@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" + integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-hoist-variables@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.0.0.tgz#46adc4c5e758645ae7a45deb92bab0918c23bb88" + integrity sha512-Ggv5sldXUeSKsuzLkddtyhyHe2YantsxWKNi7A+7LeD12ExRDWTRk29JCXpaHPAbMaIPZSil7n+lq78WY2VY7w== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-member-expression-to-functions@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.0.0.tgz#8cd14b0a0df7ff00f009e7d7a436945f47c7a16f" + integrity sha512-avo+lm/QmZlv27Zsi0xEor2fKcqWG56D5ae9dzklpIaY7cQMK5N8VSpaNVPPagiqmy7LrEjK1IWdGMOqPu5csg== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-imports@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" + integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-module-transforms@^7.1.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.2.2.tgz#ab2f8e8d231409f8370c883d20c335190284b963" + integrity sha512-YRD7I6Wsv+IHuTPkAmAS4HhY0dkPobgLftHp0cRGZSdrRvmZY8rFvae/GVu3bD00qscuvK3WPHB3YdNpBXUqrA== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/template" "^7.2.2" + "@babel/types" "^7.2.2" + lodash "^4.17.10" + +"@babel/helper-optimise-call-expression@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" + integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-plugin-utils@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" + integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== + +"@babel/helper-regex@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.0.0.tgz#2c1718923b57f9bbe64705ffe5640ac64d9bdb27" + integrity sha512-TR0/N0NDCcUIUEbqV6dCO+LptmmSQFQ7q70lfcEB4URsjD0E1HzicrwUH+ap6BAQ2jhCX9Q4UqZy4wilujWlkg== + dependencies: + lodash "^4.17.10" + +"@babel/helper-remap-async-to-generator@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f" + integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-wrap-function" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-replace-supers@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.1.0.tgz#5fc31de522ec0ef0899dc9b3e7cf6a5dd655f362" + integrity sha512-BvcDWYZRWVuDeXTYZWxekQNO5D4kO55aArwZOTFXw6rlLQA8ZaDicJR1sO47h+HrnCiDFiww0fSPV0d713KBGQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.0.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-simple-access@^7.1.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" + integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== + dependencies: + "@babel/template" "^7.1.0" + "@babel/types" "^7.0.0" + +"@babel/helper-split-export-declaration@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.0.0.tgz#3aae285c0311c2ab095d997b8c9a94cad547d813" + integrity sha512-MXkOJqva62dfC0w85mEf/LucPPS/1+04nmmRMPEBUB++hiiThQ2zPtX/mEWQ3mtzCEjIJvPY8nuwxXtQeQwUag== + dependencies: + "@babel/types" "^7.0.0" + +"@babel/helper-wrap-function@^7.1.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa" + integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/template" "^7.1.0" + "@babel/traverse" "^7.1.0" + "@babel/types" "^7.2.0" + +"@babel/helpers@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.2.0.tgz#8335f3140f3144270dc63c4732a4f8b0a50b7a21" + integrity sha512-Fr07N+ea0dMcMN8nFpuK6dUIT7/ivt9yKQdEEnjVS83tG2pHwPi03gYmk/tyuwONnZ+sY+GFFPlWGgCtW1hF9A== + dependencies: + "@babel/template" "^7.1.2" + "@babel/traverse" "^7.1.5" + "@babel/types" "^7.2.0" + +"@babel/highlight@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.0.0.tgz#f710c38c8d458e6dd9a201afb637fcb781ce99e4" + integrity sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw== dependencies: chalk "^2.0.0" esutils "^2.0.2" - js-tokens "^3.0.0" + js-tokens "^4.0.0" -"@sindresorhus/is@^0.7.0": - version "0.7.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" +"@babel/parser@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.2.2.tgz#37ebdbc88a2e1ebc6c8dd3d35ea9436e3e39e477" + integrity sha512-UNTmQ5cSLDeBGBl+s7JeowkqIHgmFAGBnLDdIzFmUNSuS5JF0XBcN59jsh/vJO/YjfsBqMxhMjoFGmNExmf0FA== + +"@babel/plugin-proposal-async-generator-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e" + integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + +"@babel/plugin-proposal-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" + integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-json-strings" "^7.2.0" + +"@babel/plugin-proposal-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.2.0.tgz#88f5fec3e7ad019014c97f7ee3c992f0adbf7fb8" + integrity sha512-1L5mWLSvR76XYUQJXkd/EEQgjq8HHRP6lQuZTTg0VA4tTGPpGemmCdAfQIz1rzEuWAm+ecP8PyyEm30jC1eQCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + +"@babel/plugin-proposal-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" + integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.2.0.tgz#abe7281fe46c95ddc143a65e5358647792039520" + integrity sha512-LvRVYb7kikuOtIoUeWTkOxQEV1kYvL5B6U3iWEGCzPNRus1MzJweFqORTj+0jkxozkTSYNJozPOddxmqdqsRpw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.2.0" + +"@babel/plugin-syntax-async-generators@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" + integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-json-strings@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" + integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-object-rest-spread@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" + integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" + integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-arrow-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" + integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-async-to-generator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.2.0.tgz#68b8a438663e88519e65b776f8938f3445b1a2ff" + integrity sha512-CEHzg4g5UraReozI9D4fblBYABs7IM6UerAVG7EJVrTLC5keh00aEuLUT+O40+mJCEzaXkYfTCUKIyeDfMOFFQ== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-remap-async-to-generator" "^7.1.0" + +"@babel/plugin-transform-block-scoped-functions@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" + integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-block-scoping@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.2.0.tgz#f17c49d91eedbcdf5dd50597d16f5f2f770132d4" + integrity sha512-vDTgf19ZEV6mx35yiPJe4fS02mPQUUcBNwWQSZFXSzTSbsJFQvHt7DqyS3LK8oOWALFOsJ+8bbqBgkirZteD5Q== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + lodash "^4.17.10" + +"@babel/plugin-transform-classes@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz#6c90542f210ee975aa2aa8c8b5af7fa73a126953" + integrity sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-define-map" "^7.1.0" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-optimise-call-expression" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" + integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-destructuring@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.2.0.tgz#e75269b4b7889ec3a332cd0d0c8cff8fed0dc6f3" + integrity sha512-coVO2Ayv7g0qdDbrNiadE4bU7lvCd9H539m2gMknyVjjMdwF/iCOM7R+E8PkntoqLkltO0rk+3axhpp/0v68VQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-dotall-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.2.0.tgz#f0aabb93d120a8ac61e925ea0ba440812dbe0e49" + integrity sha512-sKxnyHfizweTgKZf7XsXu/CNupKhzijptfTM+bozonIuyVrLWVUvYjE2bhuSBML8VQeMxq4Mm63Q9qvcvUcciQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/plugin-transform-duplicate-keys@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.2.0.tgz#d952c4930f312a4dbfff18f0b2914e60c35530b3" + integrity sha512-q+yuxW4DsTjNceUiTzK0L+AfQ0zD9rWaTLiUqHA8p0gxx7lu1EylenfzjeIWNkPy6e/0VG/Wjw9uf9LueQwLOw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-exponentiation-operator@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" + integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-for-of@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.2.0.tgz#ab7468befa80f764bb03d3cb5eef8cc998e1cad9" + integrity sha512-Kz7Mt0SsV2tQk6jG5bBv5phVbkd0gd27SgYD4hH1aLMJRchM0dzHaXvrWhVZ+WxAlDoAKZ7Uy3jVTW2mKXQ1WQ== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-function-name@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.2.0.tgz#f7930362829ff99a3174c39f0afcc024ef59731a" + integrity sha512-kWgksow9lHdvBC2Z4mxTsvc7YdY7w/V6B2vy9cTIPtLEE9NhwoWivaxdNM/S37elu5bqlLP/qOY906LukO9lkQ== + dependencies: + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" + integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-amd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.2.0.tgz#82a9bce45b95441f617a24011dc89d12da7f4ee6" + integrity sha512-mK2A8ucqz1qhrdqjS9VMIDfIvvT2thrEsIQzbaTdc5QFzhDjQv2CkJJ5f6BXIkgbmaoax3zBr2RyvV/8zeoUZw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-commonjs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.2.0.tgz#c4f1933f5991d5145e9cfad1dfd848ea1727f404" + integrity sha512-V6y0uaUQrQPXUrmj+hgnks8va2L0zcZymeU7TtWEgdRLNkceafKXEduv7QzgQAE4lT+suwooG9dC7LFhdRAbVQ== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-simple-access" "^7.1.0" + +"@babel/plugin-transform-modules-systemjs@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.2.0.tgz#912bfe9e5ff982924c81d0937c92d24994bb9068" + integrity sha512-aYJwpAhoK9a+1+O625WIjvMY11wkB/ok0WClVwmeo3mCjcNRjt+/8gHWrB5i+00mUju0gWsBkQnPpdvQ7PImmQ== + dependencies: + "@babel/helper-hoist-variables" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-modules-umd@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae" + integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw== + dependencies: + "@babel/helper-module-transforms" "^7.1.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-new-target@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.0.0.tgz#ae8fbd89517fa7892d20e6564e641e8770c3aa4a" + integrity sha512-yin069FYjah+LbqfGeTfzIBODex/e++Yfa0rH0fpfam9uTbuEeEOx5GLGr210ggOV77mVRNoeqSYqeuaqSzVSw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-object-super@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.2.0.tgz#b35d4c10f56bab5d650047dad0f1d8e8814b6598" + integrity sha512-VMyhPYZISFZAqAPVkiYb7dUe2AsVi2/wCT5+wZdsNO31FojQJa9ns40hzZ6U9f50Jlq4w6qwzdBB2uwqZ00ebg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-replace-supers" "^7.1.0" + +"@babel/plugin-transform-parameters@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.2.0.tgz#0d5ad15dc805e2ea866df4dd6682bfe76d1408c2" + integrity sha512-kB9+hhUidIgUoBQ0MsxMewhzr8i60nMa2KgeJKQWYrqQpqcBYtnpR+JgkadZVZoaEZ/eKu9mclFaVwhRpLNSzA== + dependencies: + "@babel/helper-call-delegate" "^7.1.0" + "@babel/helper-get-function-arity" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-regenerator@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.0.0.tgz#5b41686b4ed40bef874d7ed6a84bdd849c13e0c1" + integrity sha512-sj2qzsEx8KDVv1QuJc/dEfilkg3RRPvPYx/VnKLtItVQRWt1Wqf5eVCOLZm29CiGFfYYsA3VPjfizTCV0S0Dlw== + dependencies: + regenerator-transform "^0.13.3" + +"@babel/plugin-transform-shorthand-properties@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" + integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-spread@^7.2.0": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406" + integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-sticky-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" + integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + +"@babel/plugin-transform-template-literals@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.2.0.tgz#d87ed01b8eaac7a92473f608c97c089de2ba1e5b" + integrity sha512-FkPix00J9A/XWXv4VoKJBMeSkyY9x/TqIh76wzcdfl57RJJcf8CehQ08uwfhCDNtRQYtHQKBTwKZDEyjE13Lwg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-typeof-symbol@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" + integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + +"@babel/plugin-transform-unicode-regex@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.2.0.tgz#4eb8db16f972f8abb5062c161b8b115546ade08b" + integrity sha512-m48Y0lMhrbXEJnVUaYly29jRXbQ3ksxPrS1Tg8t+MHqzXhtBYAvI51euOBaoAlZLPHsieY9XPVMf80a5x0cPcA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-regex" "^7.0.0" + regexpu-core "^4.1.3" + +"@babel/preset-env@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.2.0.tgz#a5030e7e4306af5a295dd5d7c78dc5464af3fee2" + integrity sha512-haGR38j5vOGVeBatrQPr3l0xHbs14505DcM57cbJy48kgMFvvHHoYEhHuRV+7vi559yyAUAVbTWzbK/B/pzJng== + dependencies: + "@babel/helper-module-imports" "^7.0.0" + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-async-generator-functions" "^7.2.0" + "@babel/plugin-proposal-json-strings" "^7.2.0" + "@babel/plugin-proposal-object-rest-spread" "^7.2.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.2.0" + "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/plugin-transform-arrow-functions" "^7.2.0" + "@babel/plugin-transform-async-to-generator" "^7.2.0" + "@babel/plugin-transform-block-scoped-functions" "^7.2.0" + "@babel/plugin-transform-block-scoping" "^7.2.0" + "@babel/plugin-transform-classes" "^7.2.0" + "@babel/plugin-transform-computed-properties" "^7.2.0" + "@babel/plugin-transform-destructuring" "^7.2.0" + "@babel/plugin-transform-dotall-regex" "^7.2.0" + "@babel/plugin-transform-duplicate-keys" "^7.2.0" + "@babel/plugin-transform-exponentiation-operator" "^7.2.0" + "@babel/plugin-transform-for-of" "^7.2.0" + "@babel/plugin-transform-function-name" "^7.2.0" + "@babel/plugin-transform-literals" "^7.2.0" + "@babel/plugin-transform-modules-amd" "^7.2.0" + "@babel/plugin-transform-modules-commonjs" "^7.2.0" + "@babel/plugin-transform-modules-systemjs" "^7.2.0" + "@babel/plugin-transform-modules-umd" "^7.2.0" + "@babel/plugin-transform-new-target" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.2.0" + "@babel/plugin-transform-parameters" "^7.2.0" + "@babel/plugin-transform-regenerator" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.2.0" + "@babel/plugin-transform-spread" "^7.2.0" + "@babel/plugin-transform-sticky-regex" "^7.2.0" + "@babel/plugin-transform-template-literals" "^7.2.0" + "@babel/plugin-transform-typeof-symbol" "^7.2.0" + "@babel/plugin-transform-unicode-regex" "^7.2.0" + browserslist "^4.3.4" + invariant "^2.2.2" + js-levenshtein "^1.1.3" + semver "^5.3.0" + +"@babel/register@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.0.0.tgz#fa634bae1bfa429f60615b754fc1f1d745edd827" + integrity sha512-f/+CRmaCe7rVEvcvPvxeA8j5aJhHC3aJie7YuqcMDhUOuyWLA7J/aNrTaHIzoWPEhpHA54mec4Mm8fv8KBlv3g== + dependencies: + core-js "^2.5.7" + find-cache-dir "^1.0.0" + home-or-tmp "^3.0.0" + lodash "^4.17.10" + mkdirp "^0.5.1" + pirates "^4.0.0" + source-map-support "^0.5.9" + +"@babel/template@^7.1.0", "@babel/template@^7.1.2", "@babel/template@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.2.2.tgz#005b3fdf0ed96e88041330379e0da9a708eb2907" + integrity sha512-zRL0IMM02AUDwghf5LMSSDEz7sBCO2YnNmpg3uWTZj/v1rcG2BmQUvaGU8GhU8BvfMh1k2KIAYZ7Ji9KXPUg7g== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.2.2" + "@babel/types" "^7.2.2" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.1.5", "@babel/traverse@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.2.2.tgz#961039de1f9bcb946d807efe2dba9c92e859d188" + integrity sha512-E5Bn9FSwHpSkUhthw/XEuvFZxIgrqb9M8cX8j5EUQtrUG5DQUy6bFyl7G7iQ1D1Czudor+xkmp81JbLVVM0Sjg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/generator" "^7.2.2" + "@babel/helper-function-name" "^7.1.0" + "@babel/helper-split-export-declaration" "^7.0.0" + "@babel/parser" "^7.2.2" + "@babel/types" "^7.2.2" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.10" + +"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.2.2.tgz#44e10fc24e33af524488b716cdaee5360ea8ed1e" + integrity sha512-fKCuD6UFUMkR541eDWL+2ih/xFZBXPOg/7EQFeTluMDebfqR4jrpaCjLhkWlQS4hT6nRa2PMEgXKbRB5/H2fpg== + dependencies: + esutils "^2.0.2" + lodash "^4.17.10" + to-fast-properties "^2.0.0" + +"@webassemblyjs/ast@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" + integrity sha512-ZEzy4vjvTzScC+SH8RBssQUawpaInUdMTYwYYLh54/s8TuT0gBLuyUnppKsVyZEi876VmmStKsUs28UxPgdvrA== + dependencies: + "@webassemblyjs/helper-module-context" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/wast-parser" "1.7.11" + +"@webassemblyjs/floating-point-hex-parser@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.11.tgz#a69f0af6502eb9a3c045555b1a6129d3d3f2e313" + integrity sha512-zY8dSNyYcgzNRNT666/zOoAyImshm3ycKdoLsyDw/Bwo6+/uktb7p4xyApuef1dwEBo/U/SYQzbGBvV+nru2Xg== + +"@webassemblyjs/helper-api-error@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.11.tgz#c7b6bb8105f84039511a2b39ce494f193818a32a" + integrity sha512-7r1qXLmiglC+wPNkGuXCvkmalyEstKVwcueZRP2GNC2PAvxbLYwLLPr14rcdJaE4UtHxQKfFkuDFuv91ipqvXg== + +"@webassemblyjs/helper-buffer@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.11.tgz#3122d48dcc6c9456ed982debe16c8f37101df39b" + integrity sha512-MynuervdylPPh3ix+mKZloTcL06P8tenNH3sx6s0qE8SLR6DdwnfgA7Hc9NSYeob2jrW5Vql6GVlsQzKQCa13w== + +"@webassemblyjs/helper-code-frame@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.11.tgz#cf8f106e746662a0da29bdef635fcd3d1248364b" + integrity sha512-T8ESC9KMXFTXA5urJcyor5cn6qWeZ4/zLPyWeEXZ03hj/x9weSokGNkVCdnhSabKGYWxElSdgJ+sFa9G/RdHNw== + dependencies: + "@webassemblyjs/wast-printer" "1.7.11" + +"@webassemblyjs/helper-fsm@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.11.tgz#df38882a624080d03f7503f93e3f17ac5ac01181" + integrity sha512-nsAQWNP1+8Z6tkzdYlXT0kxfa2Z1tRTARd8wYnc/e3Zv3VydVVnaeePgqUzFrpkGUyhUUxOl5ML7f1NuT+gC0A== + +"@webassemblyjs/helper-module-context@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.11.tgz#d874d722e51e62ac202476935d649c802fa0e209" + integrity sha512-JxfD5DX8Ygq4PvXDucq0M+sbUFA7BJAv/GGl9ITovqE+idGX+J3QSzJYz+LwQmL7fC3Rs+utvWoJxDb6pmC0qg== + +"@webassemblyjs/helper-wasm-bytecode@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.11.tgz#dd9a1e817f1c2eb105b4cf1013093cb9f3c9cb06" + integrity sha512-cMXeVS9rhoXsI9LLL4tJxBgVD/KMOKXuFqYb5oCJ/opScWpkCMEz9EJtkonaNcnLv2R3K5jIeS4TRj/drde1JQ== + +"@webassemblyjs/helper-wasm-section@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.11.tgz#9c9ac41ecf9fbcfffc96f6d2675e2de33811e68a" + integrity sha512-8ZRY5iZbZdtNFE5UFunB8mmBEAbSI3guwbrsCl4fWdfRiAcvqQpeqd5KHhSWLL5wuxo53zcaGZDBU64qgn4I4Q== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-buffer" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/wasm-gen" "1.7.11" + +"@webassemblyjs/ieee754@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.7.11.tgz#c95839eb63757a31880aaec7b6512d4191ac640b" + integrity sha512-Mmqx/cS68K1tSrvRLtaV/Lp3NZWzXtOHUW2IvDvl2sihAwJh4ACE0eL6A8FvMyDG9abes3saB6dMimLOs+HMoQ== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.7.11.tgz#d7267a1ee9c4594fd3f7e37298818ec65687db63" + integrity sha512-vuGmgZjjp3zjcerQg+JA+tGOncOnJLWVkt8Aze5eWQLwTQGNgVLcyOTqgSCxWTR4J42ijHbBxnuRaL1Rv7XMdw== + dependencies: + "@xtuc/long" "4.2.1" + +"@webassemblyjs/utf8@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.7.11.tgz#06d7218ea9fdc94a6793aa92208160db3d26ee82" + integrity sha512-C6GFkc7aErQIAH+BMrIdVSmW+6HSe20wg57HEC1uqJP8E/xpMjXqQUxkQw07MhNDSDcGpxI9G5JSNOQCqJk4sA== + +"@webassemblyjs/wasm-edit@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.11.tgz#8c74ca474d4f951d01dbae9bd70814ee22a82005" + integrity sha512-FUd97guNGsCZQgeTPKdgxJhBXkUbMTY6hFPf2Y4OedXd48H97J+sOY2Ltaq6WGVpIH8o/TGOVNiVz/SbpEMJGg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-buffer" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/helper-wasm-section" "1.7.11" + "@webassemblyjs/wasm-gen" "1.7.11" + "@webassemblyjs/wasm-opt" "1.7.11" + "@webassemblyjs/wasm-parser" "1.7.11" + "@webassemblyjs/wast-printer" "1.7.11" + +"@webassemblyjs/wasm-gen@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.11.tgz#9bbba942f22375686a6fb759afcd7ac9c45da1a8" + integrity sha512-U/KDYp7fgAZX5KPfq4NOupK/BmhDc5Kjy2GIqstMhvvdJRcER/kUsMThpWeRP8BMn4LXaKhSTggIJPOeYHwISA== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/ieee754" "1.7.11" + "@webassemblyjs/leb128" "1.7.11" + "@webassemblyjs/utf8" "1.7.11" + +"@webassemblyjs/wasm-opt@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.11.tgz#b331e8e7cef8f8e2f007d42c3a36a0580a7d6ca7" + integrity sha512-XynkOwQyiRidh0GLua7SkeHvAPXQV/RxsUeERILmAInZegApOUAIJfRuPYe2F7RcjOC9tW3Cb9juPvAC/sCqvg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-buffer" "1.7.11" + "@webassemblyjs/wasm-gen" "1.7.11" + "@webassemblyjs/wasm-parser" "1.7.11" + +"@webassemblyjs/wasm-parser@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.11.tgz#6e3d20fa6a3519f6b084ef9391ad58211efb0a1a" + integrity sha512-6lmXRTrrZjYD8Ng8xRyvyXQJYUQKYSXhJqXOBLw24rdiXsHAOlvw5PhesjdcaMadU/pyPQOJ5dHreMjBxwnQKg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-api-error" "1.7.11" + "@webassemblyjs/helper-wasm-bytecode" "1.7.11" + "@webassemblyjs/ieee754" "1.7.11" + "@webassemblyjs/leb128" "1.7.11" + "@webassemblyjs/utf8" "1.7.11" + +"@webassemblyjs/wast-parser@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.7.11.tgz#25bd117562ca8c002720ff8116ef9072d9ca869c" + integrity sha512-lEyVCg2np15tS+dm7+JJTNhNWq9yTZvi3qEhAIIOaofcYlUp0UR5/tVqOwa/gXYr3gjwSZqw+/lS9dscyLelbQ== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/floating-point-hex-parser" "1.7.11" + "@webassemblyjs/helper-api-error" "1.7.11" + "@webassemblyjs/helper-code-frame" "1.7.11" + "@webassemblyjs/helper-fsm" "1.7.11" + "@xtuc/long" "4.2.1" + +"@webassemblyjs/wast-printer@1.7.11": + version "1.7.11" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.7.11.tgz#c4245b6de242cb50a2cc950174fdbf65c78d7813" + integrity sha512-m5vkAsuJ32QpkdkDOUPGSltrg8Cuk3KBx4YrmAGQwCZPRdUHXxG4phIOuuycLemHFr74sWL9Wthqss4fzdzSwg== + dependencies: + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/wast-parser" "1.7.11" + "@xtuc/long" "4.2.1" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.1.tgz#5c85d662f76fa1d34575766c5dcd6615abcd30d8" + integrity sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g== JSONSelect@0.4.0: version "0.4.0" @@ -28,9 +757,10 @@ JSONSelect@0.4.0: version "4.0.2" resolved "https://registry.yarnpkg.com/JSV/-/JSV-4.0.2.tgz#d077f6825571f82132f9dffaed587b4029feff57" -abab@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e" +abab@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.0.tgz#aba0ab4c5eee2d4c79d3487d85450fb2376ebb0f" + integrity sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w== abbrev@1: version "1.1.0" @@ -39,52 +769,61 @@ abbrev@1: acorn-dynamic-import@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" + integrity sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg== dependencies: acorn "^5.0.0" acorn-globals@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.1.0.tgz#ab716025dbe17c54d3ef81d32ece2b2d99fe2538" + version "4.3.0" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.0.tgz#e3b6f8da3c1552a95ae627571f7dd6923bb54103" + integrity sha512-hMtHj3s5RnuhvHPowpBYvJVj3rAar82JiDQHvGs1zO0l10ocX/xEdBShNHTJaboucJUsScghp74pH3s7EnHHQw== dependencies: - acorn "^5.0.0" + acorn "^6.0.1" + acorn-walk "^6.0.1" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" +acorn-jsx@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" + integrity sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg== -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" +acorn-walk@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" + integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== -acorn@^5.0.0, acorn@^5.3.0, acorn@^5.5.0: - version "5.5.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" +acorn@^5.0.0, acorn@^5.5.3, acorn@^5.6.2: + version "5.7.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== -ajv-keywords@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.1.tgz#617997fc5f60576894c435f940d819e135b80762" +acorn@^6.0.1, acorn@^6.0.2: + version "6.0.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754" + integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg== + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.2.0.tgz#e86b819c602cf8821ad637413698f1dec021847a" + integrity sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo= ajv-keywords@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" -ajv@^4.9.1: - version "4.11.8" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" +ajv@^6.0.1, ajv@^6.5.0, ajv@^6.5.5: + version "6.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.6.2.tgz#caceccf474bf3fc3ce3b147443711a24063cc30d" + integrity sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g== dependencies: - co "^4.6.0" - json-stable-stringify "^1.0.1" - -ajv@^5.1.0, ajv@^5.2.3, ajv@^5.3.0: - version "5.5.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" - dependencies: - co "^4.6.0" - fast-deep-equal "^1.0.0" + fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.3.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" ajv@^6.1.0: version "6.3.0" @@ -94,30 +833,28 @@ ajv@^6.1.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -align-text@^0.1.1, align-text@^0.1.3: - version "0.1.4" - resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" - dependencies: - kind-of "^3.0.2" - longest "^1.0.1" - repeat-string "^1.5.2" - -alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -ansi-escapes@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" +ansi-colors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-1.1.0.tgz#6374b4dd5d4718ff3ce27a671a3b1cad077132a9" + integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== + dependencies: + ansi-wrap "^0.1.0" ansi-escapes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" +ansi-gray@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-gray/-/ansi-gray-0.1.1.tgz#2962cf54ec9792c48510a3deb524436861ef7251" + integrity sha1-KWLPVOyXksSFEKPetSRDaGHvclE= + dependencies: + ansi-wrap "0.1.0" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -130,12 +867,6 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -ansi-styles@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" - dependencies: - color-convert "^1.9.0" - ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" @@ -146,9 +877,10 @@ ansi-styles@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" -any-observable@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.2.0.tgz#c67870058003579009083f54ac0abafb5c33d242" +ansi-wrap@0.1.0, ansi-wrap@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + integrity sha1-qCJQ3bABXponyoLoLqYDu/pF768= anymatch@^2.0.0: version "2.0.0" @@ -157,9 +889,17 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= + dependencies: + buffer-equal "^1.0.0" + append-transform@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + integrity sha1-126/jKlNJ24keja61EpLdKthGZE= dependencies: default-require-extensions "^1.0.0" @@ -170,10 +910,12 @@ aproba@^1.0.3: aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== archy@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= are-we-there-yet@~1.1.2: version "1.1.4" @@ -198,10 +940,24 @@ arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= + dependencies: + make-iterator "^1.0.0" + arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= + dependencies: + make-iterator "^1.0.0" + arr-union@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" @@ -210,36 +966,59 @@ array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" -array-each@^1.0.1: +array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= array-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" + integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + integrity sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0= dependencies: define-properties "^1.1.2" es-abstract "^1.7.0" +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + array-slice@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" + integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== dependencies: - array-uniq "^1.0.1" + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" -array-uniq@^1.0.1, array-uniq@^1.0.2: +array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -251,17 +1030,14 @@ array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" -arrify@^1.0.0, arrify@^1.0.1: +arrify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -275,13 +1051,10 @@ assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" -assert-plus@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" - assert@^1.1.1: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + integrity sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE= dependencies: util "0.10.3" @@ -289,17 +1062,20 @@ assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" -ast-types@0.10.1: - version "0.10.1" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.10.1.tgz#f52fca9715579a14f841d67d7f8d25432ab6a3dd" - -ast-types@0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.3.tgz#c20757fe72ee71278ea0ff3d87e5c2ca30d9edf8" - astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.1.tgz#14b7b73667b864c8f02b5b253fc9c6eddb777f3e" + integrity sha512-R1BaUeJ4PMoLNJuk+0tLJgjmEqVsdN118+Z8O+alhnQDQgy0kmD5Mqi0DNEmMx2LM0Ed5yekKu+ZXYvIHceicg== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^1.0.7" + stream-exhaust "^1.0.1" async-each@^1.0.0: version "1.0.1" @@ -308,20 +1084,26 @@ async-each@^1.0.0: async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= async-limiter@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.0.tgz#78faed8c3d074ab81f22b4e985d79e8738f720f8" + integrity sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg== -async@^1.4.0, async@^1.5.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.1.4, async@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= dependencies: - lodash "^4.14.0" + async-done "^1.2.2" + +async@^2.1.4, async@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" + integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== + dependencies: + lodash "^4.17.10" asynckit@^0.4.0: version "0.4.0" @@ -331,36 +1113,14 @@ atob@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/atob/-/atob-2.0.3.tgz#19c7a760473774468f20b2d2d03372ad7d4cbf5d" -autoprefixer@^6.3.1: - version "6.7.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" - dependencies: - 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" - -aws-sign2@~0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" -aws4@^1.2.1, aws4@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" - -babel-code-frame@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" - dependencies: - chalk "^1.1.0" - esutils "^2.0.2" - js-tokens "^3.0.0" +aws4@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" + integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== babel-code-frame@^6.26.0: version "6.26.0" @@ -370,9 +1130,15 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" +babel-core@7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + babel-core@^6.0.0, babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + version "6.26.3" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.3.tgz#b2e2f09e342d0f0c88e2f02e067794125e75c207" + integrity sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA== dependencies: babel-code-frame "^6.26.0" babel-generator "^6.26.0" @@ -384,19 +1150,20 @@ babel-core@^6.0.0, babel-core@^6.26.0: babel-traverse "^6.26.0" babel-types "^6.26.0" babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" + 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.7" + private "^0.1.8" slash "^1.0.0" - source-map "^0.5.6" + source-map "^0.5.7" -babel-generator@^6.18.0: +babel-generator@^6.18.0, babel-generator@^6.26.0: version "6.26.1" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + integrity sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA== dependencies: babel-messages "^6.23.0" babel-runtime "^6.26.0" @@ -407,151 +1174,31 @@ babel-generator@^6.18.0: source-map "^0.5.7" trim-right "^1.0.1" -babel-generator@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" - dependencies: - 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.6" - trim-right "^1.0.1" - -babel-helper-bindify-decorators@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz#14c19e5f142d7b47f19a52431e52b1ccbc40a330" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" - dependencies: - babel-helper-explode-assignable-expression "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-call-delegate@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" - dependencies: - 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@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz#7a9747f258d8947d32d515f6aa1c7bd02204a080" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - lodash "^4.2.0" - -babel-helper-explode-assignable-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.24.1" - babel-types "^6.24.1" - -babel-helper-explode-class@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz#7dc2a3910dee007056e1e31d640ced3d54eaa9eb" - dependencies: - 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@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" - dependencies: - 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@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-hoist-variables@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-optimise-call-expression@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-helper-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz#d36e22fab1008d79d88648e32116868128456ce8" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - lodash "^4.2.0" - -babel-helper-remap-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" - dependencies: - 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@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" - dependencies: - 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@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + integrity sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI= dependencies: babel-runtime "^6.22.0" babel-template "^6.24.1" -babel-jest@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-22.4.1.tgz#ff53ebca45957347f27ff4666a31499fbb4c4ddd" +babel-jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-23.6.0.tgz#a644232366557a2240a0c083da6b25786185a2f1" + integrity sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew== dependencies: - babel-plugin-istanbul "^4.1.5" - babel-preset-jest "^22.4.1" + babel-plugin-istanbul "^4.1.6" + babel-preset-jest "^23.2.0" -babel-loader@^7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015" +babel-loader@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.4.tgz#7bbf20cbe4560629e2e41534147692d3fecbdce6" + integrity sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw== dependencies: find-cache-dir "^1.0.0" loader-utils "^1.0.2" mkdirp "^0.5.1" + util.promisify "^1.0.0" babel-messages@^6.23.0: version "6.23.0" @@ -559,431 +1206,37 @@ babel-messages@^6.23.0: dependencies: babel-runtime "^6.22.0" -babel-plugin-check-es2015-constants@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-istanbul@^4.1.5: - version "4.1.5" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.5.tgz#6760cdd977f411d3e175bb064f2bc327d99b2b6e" +babel-plugin-istanbul@^4.1.6: + version "4.1.6" + resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz#36c59b2192efce81c5b378321b74175add1c9a45" + integrity sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ== dependencies: + babel-plugin-syntax-object-rest-spread "^6.13.0" find-up "^2.1.0" - istanbul-lib-instrument "^1.7.5" - test-exclude "^4.1.1" + istanbul-lib-instrument "^1.10.1" + test-exclude "^4.2.1" -babel-plugin-jest-hoist@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-22.4.1.tgz#d712fe5da8b6965f3191dacddbefdbdf4fb66d63" +babel-plugin-jest-hoist@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz#e61fae05a1ca8801aadee57a6d66b8cefaf44167" + integrity sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc= -babel-plugin-syntax-async-functions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" - -babel-plugin-syntax-async-generators@^6.5.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz#6bc963ebb16eccbae6b92b596eb7f35c342a8b9a" - -babel-plugin-syntax-class-constructor-call@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz#9cb9d39fe43c8600bec8146456ddcbd4e1a76416" - -babel-plugin-syntax-class-properties@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz#d7eb23b79a317f8543962c505b827c7d6cac27de" - -babel-plugin-syntax-decorators@^6.13.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz#312563b4dbde3cc806cee3e416cceeaddd11ac0b" - -babel-plugin-syntax-dynamic-import@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz#8d6a26229c83745a9982a441051572caa179b1da" - -babel-plugin-syntax-exponentiation-operator@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" - -babel-plugin-syntax-export-extensions@^6.8.0: - version "6.13.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz#70a1484f0f9089a4e84ad44bac353c95b9b12721" - -babel-plugin-syntax-flow@^6.18.0: - version "6.18.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz#4c3ab20a2af26aa20cd25995c398c4eb70310c8d" - -babel-plugin-syntax-object-rest-spread@^6.13.0, babel-plugin-syntax-object-rest-spread@^6.8.0: +babel-plugin-syntax-object-rest-spread@^6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz#fd6536f2bce13836ffa3a5458c4903a597bb3bf5" -babel-plugin-syntax-trailing-function-commas@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" - -babel-plugin-transform-async-generator-functions@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz#f058900145fd3e9907a6ddf28da59f215258a5db" +babel-preset-jest@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz#8ec7a03a138f001a1a8fb1e8113652bf1a55da46" + integrity sha1-jsegOhOPABoaj7HoETZSvxpV2kY= dependencies: - 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@^6.22.0, babel-plugin-transform-async-to-generator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" - dependencies: - 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-constructor-call@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz#80dc285505ac067dcb8d6c65e2f6f11ab7765ef9" - dependencies: - babel-plugin-syntax-class-constructor-call "^6.18.0" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-class-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz#6a79763ea61d33d36f37b611aa9def81a81b46ac" - dependencies: - 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@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz#788013d8f8c6b5222bdf7b344390dfd77569e24d" - dependencies: - 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@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-block-scoping@^6.23.0, babel-plugin-transform-es2015-block-scoping@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" - dependencies: - 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@^6.23.0, babel-plugin-transform-es2015-classes@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" - dependencies: - 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@^6.22.0, babel-plugin-transform-es2015-computed-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" - dependencies: - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-destructuring@^6.22.0, babel-plugin-transform-es2015-destructuring@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-duplicate-keys@^6.22.0, babel-plugin-transform-es2015-duplicate-keys@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-for-of@^6.22.0, babel-plugin-transform-es2015-for-of@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-function-name@^6.22.0, babel-plugin-transform-es2015-function-name@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" - dependencies: - babel-helper-function-name "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" - dependencies: - 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@^6.23.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" - dependencies: - 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-commonjs@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz#d3e310b40ef664a36622200097c6d440298f2bfe" - dependencies: - babel-plugin-transform-strict-mode "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-modules-systemjs@^6.23.0, babel-plugin-transform-es2015-modules-systemjs@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" - dependencies: - babel-helper-hoist-variables "^6.24.1" - babel-runtime "^6.22.0" - babel-template "^6.24.1" - -babel-plugin-transform-es2015-modules-umd@^6.23.0, babel-plugin-transform-es2015-modules-umd@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" - dependencies: - 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@^6.22.0, babel-plugin-transform-es2015-object-super@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" - dependencies: - babel-helper-replace-supers "^6.24.1" - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-parameters@^6.23.0, babel-plugin-transform-es2015-parameters@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" - dependencies: - 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@^6.22.0, babel-plugin-transform-es2015-shorthand-properties@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-spread@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-sticky-regex@^6.22.0, babel-plugin-transform-es2015-sticky-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-plugin-transform-es2015-template-literals@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-typeof-symbol@^6.22.0, babel-plugin-transform-es2015-typeof-symbol@^6.23.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" - dependencies: - babel-runtime "^6.22.0" - -babel-plugin-transform-es2015-unicode-regex@^6.22.0, babel-plugin-transform-es2015-unicode-regex@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" - dependencies: - babel-helper-regex "^6.24.1" - babel-runtime "^6.22.0" - regexpu-core "^2.0.0" - -babel-plugin-transform-exponentiation-operator@^6.22.0, babel-plugin-transform-exponentiation-operator@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" - dependencies: - 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-export-extensions@^6.22.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz#53738b47e75e8218589eea946cbbd39109bbe653" - dependencies: - babel-plugin-syntax-export-extensions "^6.8.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-flow-strip-types@^6.8.0: - version "6.22.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz#84cb672935d43714fdc32bce84568d87441cf7cf" - dependencies: - babel-plugin-syntax-flow "^6.18.0" - babel-runtime "^6.22.0" - -babel-plugin-transform-object-rest-spread@^6.22.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz#0f36692d50fef6b7e2d4b3ac1478137a963b7b06" - dependencies: - babel-plugin-syntax-object-rest-spread "^6.8.0" - babel-runtime "^6.26.0" - -babel-plugin-transform-regenerator@^6.22.0, babel-plugin-transform-regenerator@^6.24.1: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" - dependencies: - regenerator-transform "^0.10.0" - -babel-plugin-transform-strict-mode@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" - dependencies: - babel-runtime "^6.22.0" - babel-types "^6.24.1" - -babel-preset-env@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" - dependencies: - 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 "^2.1.2" - invariant "^2.2.2" - semver "^5.3.0" - -babel-preset-es2015@^6.9.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" - dependencies: - 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-jest@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-22.4.1.tgz#efa2e5f5334242a9457a068452d7d09735db172a" - dependencies: - babel-plugin-jest-hoist "^22.4.1" + babel-plugin-jest-hoist "^23.2.0" babel-plugin-syntax-object-rest-spread "^6.13.0" -babel-preset-stage-1@^6.5.0: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz#7692cd7dcd6849907e6ae4a0a85589cfb9e2bfb0" - dependencies: - babel-plugin-transform-class-constructor-call "^6.24.1" - babel-plugin-transform-export-extensions "^6.22.0" - babel-preset-stage-2 "^6.24.1" - -babel-preset-stage-2@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz#d9e2960fb3d71187f0e64eec62bc07767219bdc1" - dependencies: - 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@^6.24.1: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz#836ada0a9e7a7fa37cb138fb9326f87934a48395" - dependencies: - 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@^6.26.0, babel-register@^6.9.0: +babel-register@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + integrity sha1-btAhFz4vy0htestFxgCahW9kcHE= dependencies: babel-core "^6.26.0" babel-runtime "^6.26.0" @@ -993,7 +1246,7 @@ babel-register@^6.26.0, babel-register@^6.9.0: mkdirp "^0.5.1" source-map-support "^0.4.15" -babel-runtime@^6.18.0, babel-runtime@^6.22.0: +babel-runtime@^6.22.0: version "6.25.0" resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c" dependencies: @@ -1007,7 +1260,7 @@ babel-runtime@^6.26.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" -babel-template@^6.16.0, babel-template@^6.26.0: +babel-template@^6.16.0, babel-template@^6.24.1, babel-template@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" dependencies: @@ -1017,17 +1270,7 @@ babel-template@^6.16.0, babel-template@^6.26.0: babylon "^6.18.0" lodash "^4.17.4" -babel-template@^6.24.1: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.25.0.tgz#665241166b7c2aa4c619d71e192969552b10c071" - dependencies: - babel-runtime "^6.22.0" - babel-traverse "^6.25.0" - babel-types "^6.25.0" - babylon "^6.17.2" - lodash "^4.2.0" - -babel-traverse@^6.18.0, babel-traverse@^6.26.0: +babel-traverse@^6.0.0, babel-traverse@^6.18.0, babel-traverse@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" dependencies: @@ -1041,21 +1284,7 @@ babel-traverse@^6.18.0, babel-traverse@^6.26.0: invariant "^2.2.2" lodash "^4.17.4" -babel-traverse@^6.24.1, babel-traverse@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.25.0.tgz#2257497e2fcd19b89edc13c4c91381f9512496f1" - dependencies: - babel-code-frame "^6.22.0" - babel-messages "^6.23.0" - babel-runtime "^6.22.0" - babel-types "^6.25.0" - babylon "^6.17.2" - debug "^2.2.0" - globals "^9.0.0" - invariant "^2.2.0" - lodash "^4.2.0" - -babel-types@^6.18.0, babel-types@^6.26.0: +babel-types@^6.0.0, babel-types@^6.18.0, babel-types@^6.26.0: version "6.26.0" resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" dependencies: @@ -1064,34 +1293,33 @@ babel-types@^6.18.0, babel-types@^6.26.0: lodash "^4.17.4" to-fast-properties "^1.0.3" -babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.25.0: - version "6.25.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.25.0.tgz#70afb248d5660e5d18f811d91c8303b54134a18e" - dependencies: - babel-runtime "^6.22.0" - esutils "^2.0.2" - lodash "^4.2.0" - to-fast-properties "^1.0.1" - -babylon@^6.17.2, babylon@^6.17.3, babylon@^6.18.0: +babylon@^6.18.0: version "6.18.0" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" -babylon@^7.0.0-beta.30: - version "7.0.0-beta.42" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.42.tgz#67cfabcd4f3ec82999d29031ccdea89d0ba99657" - -balanced-match@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" base64-js@^1.0.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + version "1.3.0" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.0.tgz#cab1e6118f051095e58b5281aea8c1cd22bfc0e3" + integrity sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw== base@^0.11.1: version "0.11.2" @@ -1123,48 +1351,22 @@ binary-extensions@^1.0.0: version "1.11.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" -binaryextensions@2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-2.1.1.tgz#3209a51ca4a4ad541a3b8d3d6a6d5b83a2485935" - block-stream@*: version "0.0.9" resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= dependencies: inherits "~2.0.0" bluebird@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + version "3.5.3" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.3.tgz#7d01c6f9616c9a51ab0f8c549a79dfe6ec33efa7" + integrity sha512-/qKPUQlaW1OyR51WeCPBvRnAlnZFUJkCSG5HzGnuIqhgyJtF+T94lFnn33eiazjRm2LAHVy2guNnaq48X9SJuw== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - -boom@2.x.x: - version "2.10.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" - dependencies: - hoek "2.x.x" - -boom@4.x.x: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.2.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" - dependencies: - hoek "4.x.x" - -brace-expansion@^1.0.0: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== brace-expansion@^1.1.7: version "1.1.8" @@ -1201,20 +1403,24 @@ braces@^2.3.0, braces@^2.3.1: brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= browser-process-hrtime@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.2.tgz#425d68a58d3447f02a04aa894187fce8af8b7b8e" + version "0.1.3" + resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz#616f00faef1df7ec1b5bf9cfe2bdc3170f26c7b4" + integrity sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw== -browser-resolve@^1.11.2: - version "1.11.2" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" +browser-resolve@^1.11.3: + version "1.11.3" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== dependencies: resolve "1.1.7" browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.1.1" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.1.1.tgz#38b7ab55edb806ff2dcda1a7f1620773a477c49f" + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -1224,24 +1430,28 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: safe-buffer "^5.0.1" browserify-cipher@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" evp_bytestokey "^1.0.0" browserify-des@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" des.js "^1.0.0" inherits "^2.0.1" + safe-buffer "^5.1.2" browserify-rsa@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" randombytes "^2.0.1" @@ -1249,6 +1459,7 @@ browserify-rsa@^4.0.0: browserify-sign@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= dependencies: bn.js "^4.1.1" browserify-rsa "^4.0.0" @@ -1261,64 +1472,76 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" -browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: - version "1.7.7" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" +browserslist@^4.3.4: + version "4.3.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.3.6.tgz#0f9d9081afc66b36f477c6bdf3813f784f42396a" + integrity sha512-kMGKs4BTzRWviZ8yru18xBpx+CyHG9eqgRbj9XbE3IMgtczf4aiA0Y1YCpVdvUieKGZ03kolSPXqTcscBCb9qw== dependencies: - caniuse-db "^1.0.30000639" - electron-to-chromium "^1.2.7" - -browserslist@^2.1.2: - version "2.11.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" - dependencies: - caniuse-lite "^1.0.30000792" - electron-to-chromium "^1.3.30" + caniuse-lite "^1.0.30000921" + electron-to-chromium "^1.3.92" + node-releases "^1.1.1" bser@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/bser/-/bser-2.0.0.tgz#9ac78d3ed5d915804fd87acb158bc797147a1719" + integrity sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk= dependencies: node-int64 "^0.4.0" +buffer-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0, builtin-modules@^1.1.1: +builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= -cacache@^10.0.4: - version "10.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" +cacache@^11.0.2: + version "11.3.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f" + integrity sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA== dependencies: bluebird "^3.5.1" chownr "^1.0.1" + figgy-pudding "^3.1.0" glob "^7.1.2" graceful-fs "^4.1.11" - lru-cache "^4.1.1" - mississippi "^2.0.0" + lru-cache "^4.1.3" + mississippi "^3.0.0" mkdirp "^0.5.1" move-concurrently "^1.0.1" promise-inflight "^1.0.1" rimraf "^2.6.2" - ssri "^5.2.4" + ssri "^6.0.0" unique-filename "^1.1.0" y18n "^4.0.0" @@ -1336,27 +1559,31 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-request@^2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: - clone-response "1.0.2" - get-stream "3.0.0" - http-cache-semantics "3.8.1" - keyv "3.0.0" - lowercase-keys "1.0.0" - normalize-url "2.0.1" - responselike "1.0.2" + callsites "^2.0.0" caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + integrity sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8= dependencies: callsites "^0.2.0" +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + integrity sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo= callsites@^2.0.0: version "2.0.0" @@ -1365,17 +1592,15 @@ callsites@^2.0.0: camelcase-keys@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= dependencies: camelcase "^2.0.0" map-obj "^1.0.0" -camelcase@^1.0.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" - camelcase@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= camelcase@^3.0.0: version "3.0.0" @@ -1384,40 +1609,30 @@ camelcase@^3.0.0: camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= -caniuse-api@^1.5.2: - version "1.6.1" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" +camelcase@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" + integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA== + +caniuse-lite@^1.0.30000921: + version "1.0.30000921" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000921.tgz#7a607c1623444b22351d834e093aedda3c42fbe8" + integrity sha512-Bu09ciy0lMWLgpYC77I0YGuI8eFRBPPzaSOYJK1jTI64txCphYCqnWbxJYjHABYVt/TYX/p3jNjLBR87u1Bfpw== + +capture-exit@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-1.2.0.tgz#1c5fcc489fd0ab00d4f1ac7ae1072e3173fbab6f" + integrity sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28= dependencies: - browserslist "^1.3.6" - caniuse-db "^1.0.30000529" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: - version "1.0.30000815" - resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000815.tgz#0e218fa133d0d071c886aa041b435258cc746891" - -caniuse-lite@^1.0.30000792: - version "1.0.30000815" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000815.tgz#3a4258e6850362185adb11b0d754a48402d35bf6" - -caseless@~0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + rsvp "^3.3.3" caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" -center-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" - dependencies: - align-text "^0.1.3" - lazy-cache "^1.0.3" - -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1427,7 +1642,7 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.2: +chalk@^2.0.0: version "2.3.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" dependencies: @@ -1435,13 +1650,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.3.0, chalk@^2.3.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" +chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" + integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== dependencies: - ansi-styles "^3.1.0" + ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" - supports-color "^4.0.0" + supports-color "^5.3.0" chalk@~0.4.0: version "0.4.0" @@ -1454,10 +1670,12 @@ chalk@~0.4.0: chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= -chokidar@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.2.tgz#4dc65139eeb2714977735b6a35d06e97b494dfd7" +chokidar@^2.0.0, chokidar@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" + integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== dependencies: anymatch "^2.0.0" async-each "^1.0.0" @@ -1466,28 +1684,35 @@ chokidar@^2.0.2: inherits "^2.0.1" is-binary-path "^1.0.0" is-glob "^4.0.0" + lodash.debounce "^4.0.8" normalize-path "^2.1.1" path-is-absolute "^1.0.0" readdirp "^2.0.0" - upath "^1.0.0" + upath "^1.0.5" optionalDependencies: - fsevents "^1.0.0" + fsevents "^1.2.2" -chownr@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" +chownr@^1.0.1, chownr@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" + integrity sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g== -chrome-trace-event@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-0.1.2.tgz#90f36885d5345a50621332f0717b595883d5d982" +chrome-trace-event@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.0.tgz#45a91bd2c20c9411f0963b5aaeb9a1b95e09cc48" + integrity sha512-xDbVgyfDTT2piup/h8dK/y4QZfJRSa73bw1WZ8b4XM1o7fsFubUVGYcE+1ANtOzJJELGpYoG2961z0Z6OAld9A== + dependencies: + tslib "^1.9.0" -ci-info@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.2.tgz#03561259db48d0474c8bdc90f5b47b068b6bbfb4" +ci-info@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" + integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -1495,6 +1720,7 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: circular-json@^0.3.1: version "0.3.3" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" + integrity sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A== cjson@0.3.0: version "0.3.0" @@ -1502,12 +1728,6 @@ cjson@0.3.0: dependencies: jsonlint "1.6.0" -clap@^1.0.9: - version "1.2.3" - resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" - dependencies: - chalk "^1.1.3" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1517,46 +1737,17 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cli-cursor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - dependencies: - restore-cursor "^1.0.1" - cli-cursor@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= dependencies: restore-cursor "^2.0.0" -cli-spinners@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-0.1.2.tgz#bb764d88e185fb9e1e6a2a1f19772318f605e31c" - -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - dependencies: - colors "1.0.3" - -cli-truncate@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-0.2.1.tgz#9f15cfbb0705005369216c626ac7d05ab90dd574" - dependencies: - slice-ansi "0.0.4" - string-width "^1.0.1" - cli-width@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639" - -cliui@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" - dependencies: - center-align "^0.1.1" - right-align "^0.1.1" - wordwrap "0.0.2" + integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk= cliui@^3.2.0: version "3.2.0" @@ -1577,22 +1768,18 @@ cliui@^4.0.0: clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= clone-deep@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" + integrity sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ== dependencies: for-own "^1.0.0" is-plain-object "^2.0.4" kind-of "^6.0.0" shallow-clone "^1.0.0" -clone-response@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - dependencies: - mimic-response "^1.0.0" - clone-stats@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" @@ -1600,22 +1787,21 @@ clone-stats@^0.0.1: clone-stats@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA= -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - -clone@^1.0.0, clone@^1.0.2: +clone@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" clone@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= cloneable-readable@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.2.tgz#d591dee4a8f8bc15da43ce97dceeba13d43e2a65" + integrity sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg== dependencies: inherits "^2.0.1" process-nextick-args "^2.0.0" @@ -1624,17 +1810,21 @@ cloneable-readable@^1.0.0: co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" - -coa@~1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" - dependencies: - q "^1.1.2" + integrity sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ= code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -1642,88 +1832,46 @@ collection-visit@^1.0.0: map-visit "^1.0.0" object-visit "^1.0.0" -color-convert@^1.3.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" - dependencies: - color-name "^1.1.1" - color-convert@^1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" dependencies: color-name "^1.1.1" -color-name@^1.0.0, color-name@^1.1.1: +color-name@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" -color-string@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" - dependencies: - color-name "^1.0.0" - -color@^0.11.0: - version "0.11.4" - resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" - dependencies: - clone "^1.0.2" - color-convert "^1.3.0" - color-string "^0.3.0" - -colormin@^1.0.5: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" - dependencies: - color "^0.11.0" - css-color-names "0.0.4" - has "^1.0.1" +color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== colors@0.5.x: version "0.5.1" resolved "https://registry.yarnpkg.com/colors/-/colors-0.5.1.tgz#7d0023eaeb154e8ee9fce75dcb923d0ed1667774" -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - -colors@^1.1.2: - version "1.2.1" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.1.tgz#f4a3d302976aaf042356ba1ade3b1a2c62d9d794" - -colors@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - -combined-stream@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828" + integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w== dependencies: delayed-stream "~1.0.0" -combined-stream@^1.0.5, combined-stream@~1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" - dependencies: - delayed-stream "~1.0.0" +commander@2, commander@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" + integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== -commander@2, commander@^2.12.2, commander@^2.9.0: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - -commander@~2.13.0: - version "2.13.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" +commander@~2.17.1: + version "2.17.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" + integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" -compare-versions@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.1.0.tgz#43310256a5c555aaed4193c04d8f154cf9c6efd5" - component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" @@ -1733,9 +1881,11 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" concat-stream@^1.5.0, concat-stream@^1.6.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.1.tgz#261b8f518301f1d834e36342b9fea095d2620a26" + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: + buffer-from "^1.0.0" inherits "^2.0.3" readable-stream "^2.2.2" typedarray "^0.0.6" @@ -1743,6 +1893,7 @@ concat-stream@^1.5.0, concat-stream@^1.6.0: console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= dependencies: date-now "^0.1.4" @@ -1753,22 +1904,28 @@ console-control-strings@^1.0.0, console-control-strings@~1.1.0: constants-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= contains-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= -content-type-parser@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/content-type-parser/-/content-type-parser-1.0.2.tgz#caabe80623e63638b2502fd4c7f12ff4ce2352e7" +convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" + integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A== + dependencies: + safe-buffer "~5.1.1" -convert-source-map@^1.4.0, convert-source-map@^1.5.0: +convert-source-map@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" @@ -1781,51 +1938,72 @@ copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" -core-js@^1.0.0: - version "1.2.7" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-1.2.7.tgz#652294c14651db28fa93bd2d5ff2983a4f08c636" +copy-props@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" + integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== + dependencies: + each-props "^1.3.0" + is-plain-object "^2.0.1" core-js@^2.4.0: version "2.5.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" -core-js@^2.4.1, core-js@^2.5.0: - version "2.5.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.3.tgz#8acc38345824f16d8365b7c9b4259168e8ed603e" +core-js@^2.5.0, core-js@^2.5.7: + version "2.6.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.0.tgz#1e30793e9ee5782b307e37ffa22da0eacddd84d4" + integrity sha512-kLRC6ncVpuEW/1kwrOXYX6KQASCVtrh1gQr/UiaVgFlf9WE5Vp+lNe5+h3LuMr5PAucWnnEXwH0nQHRH/gpGtw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" -coveralls@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.0.tgz#22ef730330538080d29b8c151dc9146afde88a99" +cosmiconfig@^5.0.7: + version "5.0.7" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.7.tgz#39826b292ee0d78eda137dfa3173bd1c21a43b04" + integrity sha512-PcLqxTKiDmNT6pSpy4N6KtuPwb53W+2tzNvwOZw0WH9N6O0vLIBq0x8aj8Oj75ere4YcGi48bDFCL+3fRJdlNA== dependencies: - js-yaml "^3.6.1" + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.9.0" + parse-json "^4.0.0" + +coveralls@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.2.tgz#f5a0bcd90ca4e64e088b710fa8dda640aea4884f" + integrity sha512-Tv0LKe/MkBOilH2v7WBiTBdudg2ChfGbdXafc/s330djpF3zKOmuehTeRwjXWc7pzfj9FrDUTA7tEx6Div8NFw== + dependencies: + growl "~> 1.10.0" + js-yaml "^3.11.0" lcov-parse "^0.0.10" - log-driver "^1.2.5" + log-driver "^1.2.7" minimist "^1.2.0" - request "^2.79.0" + request "^2.85.0" create-ecdh@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== dependencies: bn.js "^4.1.0" elliptic "^6.0.0" create-hash@^1.1.0, create-hash@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" - ripemd160 "^2.0.0" + md5.js "^1.3.4" + ripemd160 "^2.0.1" sha.js "^2.4.0" create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: - version "1.1.6" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -1837,19 +2015,21 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= dependencies: lru-cache "^4.0.1" which "^1.2.9" -cross-spawn@^5.0.1, cross-spawn@^5.1.0: +cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= dependencies: lru-cache "^4.0.1" shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.5: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" dependencies: @@ -1859,21 +2039,10 @@ cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cryptiles@2.x.x: - version "2.0.5" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" - dependencies: - boom "2.x.x" - -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -1887,32 +2056,26 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -css-color-names@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - -css-loader@^0.28.11: - version "0.28.11" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" +css-loader@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.0.1.tgz#2e51a15449ab3f7195b7e1bc00a407460016a3b3" + integrity sha512-XIVwoIOzSFRVsafOKa060GJ/A70c0IP/C1oVPHEX4eHIFF39z0Jl7j8Kua1SUTiqWDupUnbY3/yQx9r7EUB35w== dependencies: - babel-code-frame "^6.26.0" - css-selector-tokenizer "^0.7.0" - cssnano "^3.10.0" - icss-utils "^2.1.0" + icss-utils "^4.0.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" + lodash "^4.17.11" + postcss "^7.0.6" + postcss-modules-extract-imports "^2.0.0" + postcss-modules-local-by-default "^2.0.2" + postcss-modules-scope "^2.0.0" + postcss-modules-values "^2.0.0" postcss-value-parser "^3.3.0" - source-list-map "^2.0.0" + schema-utils "^1.0.0" css-selector-tokenizer@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + version "0.7.1" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.1.tgz#a177271a8bca5019172f4f891fc6eed9cbf68d5d" + integrity sha512-xYL0AMZJ4gFzJQsHUKa5jiWWi2vH77WVNg7JYRyewwj6oPh4yb/y6Y9ZCw9dsj/9UauMhtuxR+ogQd//EdEVNA== dependencies: cssesc "^0.1.0" fastparse "^1.1.1" @@ -1921,88 +2084,53 @@ css-selector-tokenizer@^0.7.0: css-to-string-loader@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/css-to-string-loader/-/css-to-string-loader-0.1.3.tgz#c937175f2ec783969aefe14a4fba055f7b4f9562" + integrity sha1-yTcXXy7Hg5aa7+FKT7oFX3tPlWI= dependencies: loader-utils "^0.2.15" cssesc@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" - -cssnano@^3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" - dependencies: - 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" - -csso@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" - dependencies: - clap "^1.0.9" - source-map "^0.5.3" + integrity sha1-yBSQPkViM3GgR3tAEJqq++6t27Q= cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0": - version "0.3.2" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.2.tgz#b8036170c79f07a90ff2f16e22284027a243848b" + version "0.3.4" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.4.tgz#8cd52e8a3acfd68d3aed38ee0a640177d2f9d797" + integrity sha512-+7prCSORpXNeR4/fUP3rL+TzqtiFfhMvTd7uEqMdgPvLPt4+uzFUeufx5RHjGTACCargg/DiEt/moMQmvnfkog== -"cssstyle@>= 0.2.37 < 0.3.0": - version "0.2.37" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-0.2.37.tgz#541097234cb2513c83ceed3acddc27ff27987d54" +cssstyle@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.1.1.tgz#18b038a9c44d65f7a8e428a653b9f6fe42faf5fb" + integrity sha512-364AI1l/M5TYcFH83JnOH/pSqgaNnKmYgKrm0didZMGKWjQB60dymwWy1rKUgL3J1ffdq9xVi2yGLHdSjjSNog== dependencies: cssom "0.3.x" currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA= -d3-array@1, d3-array@1.2.1, d3-array@^1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.1.tgz#d1ca33de2f6ac31efadb8e050a021d7e2396d5dc" +d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" + integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== -d3-axis@1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.8.tgz#31a705a0b535e65759de14173a31933137f18efa" +d3-axis@1: + version "1.0.12" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" + integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== -d3-brush@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.4.tgz#00c2f238019f24f6c0a194a26d41a1530ffe7bc4" +d3-brush@1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.0.6.tgz#33691f2032d9db6c5d8cb684ff255a9883629e21" + integrity sha512-lGSiF5SoSqO5/mYGD5FAeGKKS62JdA1EV7HPrU2b5rTX4qEJJtpjaGLJngjnkewQy7UnGstnFd3168wpf5z76w== dependencies: d3-dispatch "1" d3-drag "1" @@ -2010,141 +2138,172 @@ d3-brush@1.0.4: d3-selection "1" d3-transition "1" -d3-chord@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.4.tgz#7dec4f0ba886f713fe111c45f763414f6f74ca2c" +d3-chord@1: + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" + integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA== dependencies: d3-array "1" d3-path "1" -d3-collection@1, d3-collection@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.4.tgz#342dfd12837c90974f33f1cc0a785aea570dcdc2" +d3-collection@1: + version "1.0.7" + resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" + integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== -d3-color@1, d3-color@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.0.3.tgz#bc7643fca8e53a8347e2fbdaffa236796b58509b" +d3-color@1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.2.3.tgz#6c67bb2af6df3cc8d79efcc4d3a3e83e28c8048f" + integrity sha512-x37qq3ChOTLd26hnps36lexMRhNXEtVxZ4B25rL0DVdDsGQIJGB18S7y9XDwlDD6MD/ZBzITCf4JjGMM10TZkw== -d3-dispatch@1, d3-dispatch@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.3.tgz#46e1491eaa9b58c358fce5be4e8bed626e7871f8" +d3-contour@1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" + integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg== + dependencies: + d3-array "^1.1.1" -d3-drag@1, d3-drag@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.1.tgz#df8dd4c502fb490fc7462046a8ad98a5c479282d" +d3-dispatch@1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.5.tgz#e25c10a186517cd6c82dd19ea018f07e01e39015" + integrity sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g== + +d3-drag@1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.3.tgz#46e206ad863ec465d88c588098a1df444cd33c64" + integrity sha512-8S3HWCAg+ilzjJsNtWW1Mutl74Nmzhb9yU6igspilaJzeZVFktmY6oO9xOh5TDk+BM2KrNFjttZNoJJmDnkjkg== dependencies: d3-dispatch "1" d3-selection "1" -d3-dsv@1, d3-dsv@1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.8.tgz#907e240d57b386618dc56468bacfe76bf19764ae" +d3-dsv@1: + version "1.0.10" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.10.tgz#4371c489a2a654a297aca16fcaf605a6f31a6f51" + integrity sha512-vqklfpxmtO2ZER3fq/B33R/BIz3A1PV0FaZRuFM8w6jLo7sUX1BZDh73fPlr0s327rzq4H6EN1q9U+eCBCSN8g== dependencies: commander "2" iconv-lite "0.4" rw "1" -d3-ease@1, d3-ease@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.3.tgz#68bfbc349338a380c44d8acc4fbc3304aa2d8c0e" +d3-ease@1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.5.tgz#8ce59276d81241b1b72042d6af2d40e76d936ffb" + integrity sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ== -d3-force@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.1.0.tgz#cebf3c694f1078fcc3d4daf8e567b2fbd70d4ea3" +d3-fetch@1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.1.2.tgz#957c8fbc6d4480599ba191b1b2518bf86b3e1be2" + integrity sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA== + dependencies: + d3-dsv "1" + +d3-force@1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.1.2.tgz#16664d0ac71d8727ef5effe0b374feac8050d6cd" + integrity sha512-p1vcHAUF1qH7yR+e8ip7Bs61AHjLeKkIn8Z2gzwU2lwEf2wkSpWdjXG0axudTHsVFnYGlMkFaEsVy2l8tAg1Gw== dependencies: d3-collection "1" d3-dispatch "1" d3-quadtree "1" d3-timer "1" -d3-format@1, d3-format@1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.2.2.tgz#1a39c479c8a57fe5051b2e67a3bee27061a74e7a" +d3-format@1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.3.2.tgz#6a96b5e31bcb98122a30863f7d92365c00603562" + integrity sha512-Z18Dprj96ExragQ0DeGi+SYPQ7pPfRMtUXtsg/ChVIKNBCzjO8XYJvRTC1usblx52lqge56V5ect+frYTQc8WQ== -d3-geo@1.9.1: - version "1.9.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.9.1.tgz#157e3b0f917379d0f73bebfff3be537f49fa7356" +d3-geo@1: + version "1.11.3" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.11.3.tgz#5bb08388f45e4b281491faa72d3abd43215dbd1c" + integrity sha512-n30yN9qSKREvV2fxcrhmHUdXP9TNH7ZZj3C/qnaoU0cVf/Ea85+yT7HY7i8ySPwkwjCNYtmKqQFTvLFngfkItQ== dependencies: d3-array "1" -d3-hierarchy@1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz#a1c845c42f84a206bcf1c01c01098ea4ddaa7a26" +d3-hierarchy@1: + version "1.1.8" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz#7a6317bd3ed24e324641b6f1e76e978836b008cc" + integrity sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w== -d3-interpolate@1, d3-interpolate@1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.1.6.tgz#2cf395ae2381804df08aa1bf766b7f97b5f68fb6" +d3-interpolate@1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.3.2.tgz#417d3ebdeb4bc4efcc8fd4361c55e4040211fd68" + integrity sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w== dependencies: d3-color "1" -d3-path@1, d3-path@1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.5.tgz#241eb1849bd9e9e8021c0d0a799f8a0e8e441764" - -d3-polygon@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.3.tgz#16888e9026460933f2b179652ad378224d382c62" - -d3-quadtree@1, d3-quadtree@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.3.tgz#ac7987e3e23fe805a990f28e1b50d38fcb822438" - -d3-queue@3.0.7: - version "3.0.7" - resolved "https://registry.yarnpkg.com/d3-queue/-/d3-queue-3.0.7.tgz#c93a2e54b417c0959129d7d73f6cf7d4292e7618" - -d3-random@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.0.tgz#6642e506c6fa3a648595d2b2469788a8d12529d3" - -d3-request@1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-request/-/d3-request-1.0.6.tgz#a1044a9ef4ec28c824171c9379fae6d79474b19f" - dependencies: - d3-collection "1" - d3-dispatch "1" - d3-dsv "1" - xmlhttprequest "1" - -d3-scale@1.0.7: +d3-path@1: version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-1.0.7.tgz#fa90324b3ea8a776422bd0472afab0b252a0945d" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.7.tgz#8de7cd693a75ac0b5480d3abaccd94793e58aae8" + integrity sha512-q0cW1RpvA5c5ma2rch62mX8AYaiLX0+bdaSM2wxSU9tXjU4DNvkx9qiUvjkuWCj3p22UO/hlPivujqMiR9PDzA== + +d3-polygon@1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.5.tgz#9a645a0a64ff6cbf9efda96ee0b4a6909184c363" + integrity sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w== + +d3-quadtree@1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.5.tgz#305394840b01f51a341a0da5008585e837fe7e9b" + integrity sha512-U2tjwDFbZ75JRAg8A+cqMvqPg1G3BE7UTJn3h8DHjY/pnsAfWdbJKgyfcy7zKjqGtLAmI0q8aDSeG1TVIKRaHQ== + +d3-random@1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" + integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== + +d3-scale-chromatic@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.3.3.tgz#dad4366f0edcb288f490128979c3c793583ed3c0" + integrity sha512-BWTipif1CimXcYfT02LKjAyItX5gKiwxuPRgr4xM58JwlLocWbjPLI7aMEjkcoOQXMkYsmNsvv3d2yl/OKuHHw== + dependencies: + d3-color "1" + d3-interpolate "1" + +d3-scale@2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.1.2.tgz#4e932b7b60182aee9073ede8764c98423e5f9a94" + integrity sha512-bESpd64ylaKzCDzvULcmHKZTlzA/6DGSVwx7QSDj/EnX9cpSevsdiwdHFYI9ouo9tNBbV3v5xztHS2uFeOzh8Q== dependencies: d3-array "^1.2.0" d3-collection "1" - d3-color "1" d3-format "1" d3-interpolate "1" d3-time "1" d3-time-format "2" -d3-selection@1, d3-selection@1.3.0, d3-selection@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.3.0.tgz#d53772382d3dc4f7507bfb28bcd2d6aed2a0ad6d" +d3-selection@1, d3-selection@^1.1.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.3.2.tgz#6e70a9df60801c8af28ac24d10072d82cbfdf652" + integrity sha512-OoXdv1nZ7h2aKMVg3kaUFbLLK5jXUFAMLD/Tu5JA96mjf8f2a9ZUESGY+C36t8R1WFeWk/e55hy54Ml2I62CRQ== -d3-shape@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.2.0.tgz#45d01538f064bafd05ea3d6d2cb748fd8c41f777" +d3-shape@1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.2.2.tgz#f9dba3777a5825f9a8ce8bc928da08c17679e9a7" + integrity sha512-hUGEozlKecFZ2bOSNt7ENex+4Tk9uc/m0TtTEHBvitCBxUNjhzm5hS2GrrVRD/ae4IylSmxGeqX5tWC2rASMlQ== dependencies: d3-path "1" -d3-time-format@2, d3-time-format@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.1.tgz#85b7cdfbc9ffca187f14d3c456ffda268081bb31" +d3-time-format@2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.1.3.tgz#ae06f8e0126a9d60d6364eac5b1533ae1bac826b" + integrity sha512-6k0a2rZryzGm5Ihx+aFMuO1GgelgIz+7HhB4PH4OEndD5q2zGn1mDfRdNrulspOfR6JXkb2sThhDK41CSK85QA== dependencies: d3-time "1" -d3-time@1, d3-time@1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.8.tgz#dbd2d6007bf416fe67a76d17947b784bffea1e84" +d3-time@1: + version "1.0.10" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.0.10.tgz#8259dd71288d72eeacfd8de281c4bf5c7393053c" + integrity sha512-hF+NTLCaJHF/JqHN5hE8HVGAXPStEq6/omumPE/SxyHVrR7/qQxusFDo0t0c/44+sCGHthC7yNGFZIEgju0P8g== -d3-timer@1, d3-timer@1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.7.tgz#df9650ca587f6c96607ff4e60cc38229e8dd8531" +d3-timer@1: + version "1.0.9" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.9.tgz#f7bb8c0d597d792ff7131e1c24a36dd471a471ba" + integrity sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg== -d3-transition@1, d3-transition@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.1.1.tgz#d8ef89c3b848735b060e54a39b32aaebaa421039" +d3-transition@1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.1.3.tgz#3a435b05ce9cef9524fe0d38121cfb6905331ca6" + integrity sha512-tEvo3qOXL6pZ1EzcXxFcPNxC/Ygivu5NoBY6mbzidATAeML86da+JfVIUzon3dNM6UX6zjDx+xbYDmMVtTSjuA== dependencies: d3-color "1" d3-dispatch "1" @@ -2153,13 +2312,15 @@ d3-transition@1, d3-transition@1.1.1: d3-selection "^1.1.0" d3-timer "1" -d3-voronoi@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.2.tgz#1687667e8f13a2d158c80c1480c5a29cb0d8973c" +d3-voronoi@1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" + integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== -d3-zoom@1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.1.tgz#02f43b3c3e2db54f364582d7e4a236ccc5506b63" +d3-zoom@1: + version "1.7.3" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.7.3.tgz#f444effdc9055c38077c4299b4df999eb1d47ccb" + integrity sha512-xEBSwFx5Z9T3/VrwDkMt+mr0HCzv7XjpGURJ8lWmIC8wxe32L39eWHIasEe/e7Ox8MPU4p1hvH8PKN2olLzIBg== dependencies: d3-dispatch "1" d3-drag "1" @@ -2167,44 +2328,54 @@ d3-zoom@1.7.1: d3-selection "1" d3-transition "1" -d3@^4.13.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-4.13.0.tgz#ab236ff8cf0cfc27a81e69bf2fb7518bc9b4f33d" +d3@^5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/d3/-/d3-5.7.0.tgz#f189d338bdde62acf02f308918e0ec34dd7568f9" + integrity sha512-8KEIfx+dFm8PlbJN9PI0suazrZ41QcaAufsKE9PRcqYPWLngHIyWJZX96n6IQKePGgeSu0l7rtlueSSNq8Zc3g== dependencies: - d3-array "1.2.1" - d3-axis "1.0.8" - d3-brush "1.0.4" - d3-chord "1.0.4" - d3-collection "1.0.4" - d3-color "1.0.3" - d3-dispatch "1.0.3" - d3-drag "1.2.1" - d3-dsv "1.0.8" - d3-ease "1.0.3" - d3-force "1.1.0" - d3-format "1.2.2" - d3-geo "1.9.1" - d3-hierarchy "1.1.5" - d3-interpolate "1.1.6" - d3-path "1.0.5" - d3-polygon "1.0.3" - d3-quadtree "1.0.3" - d3-queue "3.0.7" - d3-random "1.1.0" - d3-request "1.0.6" - d3-scale "1.0.7" - d3-selection "1.3.0" - d3-shape "1.2.0" - d3-time "1.0.8" - d3-time-format "2.1.1" - d3-timer "1.0.7" - d3-transition "1.1.1" - d3-voronoi "1.1.2" - d3-zoom "1.7.1" + d3-array "1" + d3-axis "1" + d3-brush "1" + d3-chord "1" + d3-collection "1" + d3-color "1" + d3-contour "1" + d3-dispatch "1" + d3-drag "1" + d3-dsv "1" + d3-ease "1" + d3-fetch "1" + d3-force "1" + d3-format "1" + d3-geo "1" + d3-hierarchy "1" + d3-interpolate "1" + d3-path "1" + d3-polygon "1" + d3-quadtree "1" + d3-random "1" + d3-scale "2" + d3-scale-chromatic "1" + d3-selection "1" + d3-shape "1" + d3-time "1" + d3-time-format "2" + d3-timer "1" + d3-transition "1" + d3-voronoi "1" + d3-zoom "1" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + integrity sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8= + dependencies: + es5-ext "^0.10.9" dagre-d3-renderer@^0.5.8: version "0.5.8" resolved "https://registry.yarnpkg.com/dagre-d3-renderer/-/dagre-d3-renderer-0.5.8.tgz#aa071bb71d3c4d67426925906f3f6ddead49c1a3" + integrity sha512-XH2a86isUHRxzIYbjQVEuZtJnWEufb64H5DuXIUmn8esuB40jgLEbUUclulWOW62/ZoXlj2ZDyL8SJ+YRxs+jQ== dependencies: dagre-layout "^0.8.8" lodash "^4.17.5" @@ -2212,39 +2383,45 @@ dagre-d3-renderer@^0.5.8: dagre-layout@^0.8.8: version "0.8.8" resolved "https://registry.yarnpkg.com/dagre-layout/-/dagre-layout-0.8.8.tgz#9b6792f24229f402441c14162c1049e3f261f6d9" + integrity sha512-ZNV15T9za7X+fV8Z07IZquUKugCxm5owoiPPxfEx6OJRD331nkiIaF3vSt0JEY5FkrY0KfRQxcpQ3SpXB7pLPQ== dependencies: graphlibrary "^2.2.0" lodash "^4.17.5" -dargs@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-5.1.0.tgz#ec7ea50c78564cd36c9d5ec18f66329fade27829" - dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" dependencies: assert-plus "^1.0.0" -date-fns@^1.27.2: - version "1.29.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.29.0.tgz#12e609cdcb935127311d04d33334e2960a2a54e6" +data-urls@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" + integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== + dependencies: + abab "^2.0.0" + whatwg-mimetype "^2.2.0" + whatwg-url "^7.0.0" date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= dateformat@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.0.0.tgz#2743e3abb5c3fc2462e527dca445e04e9f4dee17" -dateformat@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" - debug-log@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" + integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= + +debug@^2.1.2, debug@^2.3.3, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" debug@^2.2.0, debug@^2.6.8: version "2.6.8" @@ -2252,19 +2429,20 @@ debug@^2.2.0, debug@^2.6.8: dependencies: ms "2.0.0" -debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - dependencies: - ms "2.0.0" - debug@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" dependencies: ms "2.0.0" -decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: +debug@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" + integrity sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg== + dependencies: + ms "^2.1.1" + +decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2272,31 +2450,33 @@ decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" -decompress-response@^3.2.0, decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - dependencies: - mimic-response "^1.0.0" - -deep-extend@^0.4.0, deep-extend@~0.4.0: - version "0.4.2" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== + dependencies: + kind-of "^5.0.2" + default-require-extensions@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + integrity sha1-836hXT4T/9m0N9M+GnW1+5eHTLg= dependencies: strip-bom "^2.0.0" -defaults@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - dependencies: - clone "^1.0.2" +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= define-properties@^1.1.2: version "1.1.2" @@ -2324,13 +2504,10 @@ define-property@^2.0.2: is-descriptor "^1.0.2" isobject "^3.0.1" -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - deglob@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a" + version "2.1.1" + resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.1.tgz#d268e168727799862e8eac07042e165957c1f3be" + integrity sha512-2kjwuGGonL7gWE1XU4Fv79+vVzpoQCl0V+boMwWtOQJV2AGDabCwez++nB1Nli/8BabAfZQ/UuHPlp6AymKdWw== dependencies: find-root "^1.0.0" glob "^7.0.5" @@ -2339,18 +2516,6 @@ deglob@^2.1.0: run-parallel "^1.1.2" uniq "^1.0.1" -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - 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" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2359,24 +2524,18 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -deprecated@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" - des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" -detect-conflict@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/detect-conflict/-/detect-conflict-1.0.1.tgz#088657a66a961c05019db7c4230883b1c6b4176e" - detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-indent@^4.0.0: version "4.0.0" @@ -2391,14 +2550,17 @@ detect-libc@^1.0.2: detect-newline@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" + integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= -diff@^3.2.0, diff@^3.3.1, diff@^3.5.0: +diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diffie-hellman@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -2407,23 +2569,27 @@ diffie-hellman@^5.0.0: doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= dependencies: esutils "^2.0.2" isarray "^1.0.0" -doctrine@^2.0.2, doctrine@^2.1.0: +doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domexception@^1.0.0: +domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" + integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== dependencies: webidl-conversions "^4.0.2" @@ -2433,19 +2599,24 @@ duplexer2@0.0.2: dependencies: readable-stream "~1.1.9" -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - -duplexify@^3.4.2, duplexify@^3.5.3: - version "3.5.4" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" + integrity sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" readable-stream "^2.0.0" stream-shift "^1.0.0" +each-props@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + ebnf-parser@0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" @@ -2456,25 +2627,15 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" -editions@^1.3.3: - version "1.3.4" - resolved "https://registry.yarnpkg.com/editions/-/editions-1.3.4.tgz#3662cb592347c3168eb8e498a0ff73271d67f50b" - -ejs@^2.3.1: - version "2.5.7" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" - -electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: - version "1.3.39" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.39.tgz#d7a4696409ca0995e2750156da612c221afad84d" - -elegant-spinner@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" +electron-to-chromium@^1.3.92: + version "1.3.92" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.92.tgz#9027b5abaea400045edd652c0e4838675c814399" + integrity sha512-En051LMzMl3/asMWGZEtU808HOoVWIpmmZx1Ep8N+TT9e7z/X8RcLeBU2kLSNLGQ+5SuKELzMx+MVuTBXk6Q9w== elliptic@^6.0.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + version "6.4.1" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.1.tgz#c2d0b7776911b86722c632c3c06c60f2f819939a" + integrity sha512-BsXLz5sqX8OHcsh7CqBMztyXARmGQ3LWPtGjJi6DiJHq5C/qvi9P3OqgswKSDftbu8+IoI/QDTAm2fFnQ9SZSQ== dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -2488,27 +2649,16 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" -encoding@^0.1.11: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - dependencies: - iconv-lite "~0.4.13" - end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" dependencies: once "^1.4.0" -end-of-stream@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" - dependencies: - once "~1.3.0" - -enhanced-resolve@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz#e34a6eaa790f62fccd71d93959f56b2b432db10a" +enhanced-resolve@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" @@ -2523,6 +2673,7 @@ errno@^0.1.3: errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== dependencies: prr "~1.0.1" @@ -2532,14 +2683,7 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -error@^7.0.2: - version "7.0.2" - resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" - dependencies: - string-template "~0.2.1" - xtend "~4.0.0" - -es-abstract@^1.5.1, es-abstract@^1.7.0: +es-abstract@^1.5.1: version "1.10.0" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864" dependencies: @@ -2549,6 +2693,17 @@ es-abstract@^1.5.1, es-abstract@^1.7.0: is-callable "^1.1.3" is-regex "^1.0.4" +es-abstract@^1.7.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.12.0.tgz#9dbbdd27c6856f0001421ca18782d786bf8a6165" + integrity sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA== + dependencies: + 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: version "1.1.1" resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" @@ -2557,10 +2712,51 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.46" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.46.tgz#efd99f67c5a7ec789baa3daa7f79870388f7f572" + integrity sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "1" + +es6-iterator@^2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + integrity sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8= + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" +escaper@^2.5.3: + version "2.5.3" + resolved "https://registry.yarnpkg.com/escaper/-/escaper-2.5.3.tgz#8b8fe90ba364054151ab7eff18b4ce43b1e13ab5" + integrity sha512-QGb9sFxBVpbzMggrKTX0ry1oiI4CSDAl9vIL702hzl1jGW8VZs7qfqTRX7WDOjoNDoEVGcEtu1ZOQgReSfT2kQ== + escodegen@1.3.x: version "1.3.3" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" @@ -2571,9 +2767,10 @@ escodegen@1.3.x: optionalDependencies: source-map "~0.1.33" -escodegen@^1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" +escodegen@^1.9.1: + version "1.11.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.11.0.tgz#b27a9389481d5bfd5bec76f7bb1eb3f8f4556589" + integrity sha512-IeMV45ReixHS53K/OmfKAIztN/igDHzTJUhZM3k1jMhIZWjk45SMwAtBsEXiJp3vSPmTcu6CXn7mDvFHRN66fw== dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -2582,148 +2779,177 @@ escodegen@^1.9.0: optionalDependencies: source-map "~0.6.1" -eslint-config-standard-jsx@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-5.0.0.tgz#4abfac554f38668e0078c664569e7b2384e5d2aa" +eslint-config-standard-jsx@6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-6.0.2.tgz#90c9aa16ac2c4f8970c13fc7efc608bacd02da70" + integrity sha512-D+YWAoXw+2GIdbMBRAzWwr1ZtvnSf4n4yL0gKGg7ShUOGXkSOLerI17K4F6LdQMJPNMoWYqepzQD/fKY+tXNSg== -eslint-config-standard@11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-11.0.0.tgz#87ee0d3c9d95382dc761958cbb23da9eea31e0ba" +eslint-config-standard@12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-12.0.0.tgz#638b4c65db0bd5a41319f96bba1f15ddad2107d9" + integrity sha512-COUz8FnXhqFitYj4DTqHzidjIL/t4mumGZto5c7DrBpvWoie+Sn3P4sLEzUGeYhRElWuFEf8K1S1EfvD1vixCQ== eslint-import-resolver-node@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.2.tgz#58f15fb839b8d0576ca980413476aab2472db66a" + integrity sha512-sfmTqJfPSizWu4aymbPr4Iidp5yKm8yDkHp+Ir3YiTHiiDfxh69mOUsmiqW6RZ9zRXFaF64GtYmN7e+8GHBv6Q== dependencies: debug "^2.6.9" resolve "^1.5.0" -eslint-module-utils@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449" +eslint-module-utils@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz#b270362cd88b1a48ad308976ce7fa54e98411746" + integrity sha1-snA2LNiLGkitMIl2zn+lTphBF0Y= dependencies: debug "^2.6.8" pkg-dir "^1.0.0" -eslint-plugin-import@~2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.9.0.tgz#26002efbfca5989b7288ac047508bd24f217b169" +eslint-plugin-es@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-1.4.0.tgz#475f65bb20c993fc10e8c8fe77d1d60068072da6" + integrity sha512-XfFmgFdIUDgvaRAlaXUkxrRg5JSADoRC8IkKLc/cISeR3yHVMefFHQZpcyXXEUUPHfy5DwviBcrfqlyqEwlQVw== + dependencies: + eslint-utils "^1.3.0" + regexpp "^2.0.1" + +eslint-plugin-import@~2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz#6b17626d2e3e6ad52cfce8807a845d15e22111a8" + integrity sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g== dependencies: - builtin-modules "^1.1.1" contains-path "^0.1.0" debug "^2.6.8" doctrine "1.5.0" eslint-import-resolver-node "^0.3.1" - eslint-module-utils "^2.1.1" + eslint-module-utils "^2.2.0" has "^1.0.1" lodash "^4.17.4" minimatch "^3.0.3" read-pkg-up "^2.0.0" + resolve "^1.6.0" -eslint-plugin-node@~6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-6.0.1.tgz#bf19642298064379315d7a4b2a75937376fa05e4" +eslint-plugin-node@~7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-7.0.1.tgz#a6e054e50199b2edd85518b89b4e7b323c9f36db" + integrity sha512-lfVw3TEqThwq0j2Ba/Ckn2ABdwmL5dkOgAux1rvOk6CO7A6yGyPI2+zIxN6FyNkp1X1X/BSvKOceD6mBWSj4Yw== dependencies: - ignore "^3.3.6" + eslint-plugin-es "^1.3.1" + eslint-utils "^1.3.1" + ignore "^4.0.2" minimatch "^3.0.4" - resolve "^1.3.3" - semver "^5.4.1" + resolve "^1.8.1" + semver "^5.5.0" -eslint-plugin-promise@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.7.0.tgz#f4bde5c2c77cdd69557a8f69a24d1ad3cfc9e67e" +eslint-plugin-promise@~4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.0.1.tgz#2d074b653f35a23d1ba89d8e976a985117d1c6a2" + integrity sha512-Si16O0+Hqz1gDHsys6RtFRrW7cCTB6P7p3OJmKp3Y3dxpQE2qwOA7d3xnV+0mBmrPoi0RBnxlCKvqu70te6wjg== -eslint-plugin-react@~7.7.0: - version "7.7.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.7.0.tgz#f606c719dbd8a1a2b3d25c16299813878cca0160" +eslint-plugin-react@~7.11.1: + version "7.11.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz#c01a7af6f17519457d6116aa94fc6d2ccad5443c" + integrity sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw== dependencies: - doctrine "^2.0.2" - has "^1.0.1" + array-includes "^3.0.3" + doctrine "^2.1.0" + has "^1.0.3" jsx-ast-utils "^2.0.1" - prop-types "^15.6.0" + prop-types "^15.6.2" -eslint-plugin-standard@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2" +eslint-plugin-standard@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.0.0.tgz#f845b45109c99cd90e77796940a344546c8f6b5c" + integrity sha512-OwxJkR6TQiYMmt1EsNRMe5qG3GsbjlcOhbGUBY4LtavF9DsLaTcoR+j2Tdjqi23oUwKNUqX7qcn5fPStafMdlA== -eslint-scope@^3.7.1: - version "3.7.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-3.7.1.tgz#3d63c3edfda02e06e01a452ad88caacc7cdcb6e8" +eslint-scope@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.0.tgz#50bf3071e9338bcdc43331794a0cb533f0136172" + integrity sha512-1G6UTDi7Jc1ELFwnR58HV4fK9OQK4S6N985f166xqXxpjU6plxFISJa2Ba9KCQuFa8RCnj/lSFJbHo7UFDBnUA== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" +eslint-utils@^1.3.0, eslint-utils@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.3.1.tgz#9a851ba89ee7c460346f97cf8939c7298827e512" + integrity sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q== + eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" + integrity sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ== -eslint@~4.18.0: - version "4.18.2" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-4.18.2.tgz#0f81267ad1012e7d2051e186a9004cc2267b8d45" +eslint@~5.4.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.4.0.tgz#d068ec03006bb9e06b429dc85f7e46c1b69fac62" + integrity sha512-UIpL91XGex3qtL6qwyCQJar2j3osKxK9e3ano3OcGEIRM4oWIpCkDg9x95AXEC2wMs7PnxzOkPZ2gq+tsMS9yg== dependencies: - ajv "^5.3.0" - babel-code-frame "^6.22.0" + ajv "^6.5.0" + babel-code-frame "^6.26.0" chalk "^2.1.0" - concat-stream "^1.6.0" - cross-spawn "^5.1.0" + cross-spawn "^6.0.5" debug "^3.1.0" doctrine "^2.1.0" - eslint-scope "^3.7.1" + eslint-scope "^4.0.0" + eslint-utils "^1.3.1" eslint-visitor-keys "^1.0.0" - espree "^3.5.2" - esquery "^1.0.0" + espree "^4.0.0" + 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.0.1" - ignore "^3.3.3" + globals "^11.7.0" + ignore "^4.0.2" imurmurhash "^0.1.4" - inquirer "^3.0.6" - is-resolvable "^1.0.0" - js-yaml "^3.9.1" + inquirer "^5.2.0" + is-resolvable "^1.1.0" + js-yaml "^3.11.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.3.0" - lodash "^4.17.4" - minimatch "^3.0.2" + lodash "^4.17.5" + 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 "^2.0.0" require-uncached "^1.0.3" - semver "^5.3.0" + semver "^5.5.0" strip-ansi "^4.0.0" - strip-json-comments "~2.0.1" - table "4.0.2" - text-table "~0.2.0" + strip-json-comments "^2.0.1" + table "^4.0.3" + text-table "^0.2.0" -espree@^3.5.2: - version "3.5.4" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.4.tgz#b0f447187c8a8bed944b815a660bddf5deb5d1a7" +espree@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-4.1.0.tgz#728d5451e0fd156c04384a7ad89ed51ff54eb25f" + integrity sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w== dependencies: - acorn "^5.5.0" - acorn-jsx "^3.0.0" + acorn "^6.0.2" + acorn-jsx "^5.0.0" + eslint-visitor-keys "^1.0.0" esprima@1.1.x, esprima@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" -esprima@^2.6.0: - version "2.7.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" - esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= -esprima@^4.0.0, esprima@~4.0.0: +esprima@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" +esquery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.1.tgz#406c51658b1f5991a5f9b62b1dc25b00e3e5c708" + integrity sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA== dependencies: estraverse "^4.0.0" @@ -2753,23 +2979,40 @@ esutils@~1.0.0: events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" exec-sh@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.1.tgz#163b98a6e89e6b65b47c2a28d215bc1f63989c38" + version "0.2.2" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz#2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36" + integrity sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw== dependencies: - merge "^1.1.3" + merge "^1.2.0" + +execa@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.10.0.tgz#ff456a8f53f90f8eccc71a96d11bdfc7f082cb50" + integrity sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw== + dependencies: + cross-spawn "^6.0.0" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" execa@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= dependencies: cross-spawn "^5.0.1" get-stream "^3.0.0" @@ -2779,13 +3022,23 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= expand-brackets@^0.1.4: version "0.1.5" @@ -2814,19 +3067,21 @@ expand-range@^1.8.1: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" -expect@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-22.4.0.tgz#371edf1ae15b83b5bf5ec34b42f1584660a36c16" +expect@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" + integrity sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w== dependencies: ansi-styles "^3.2.0" - jest-diff "^22.4.0" + jest-diff "^23.6.0" jest-get-type "^22.1.0" - jest-matcher-utils "^22.4.0" - jest-message-util "^22.4.0" - jest-regex-util "^22.1.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" extend-shallow@^2.0.1: version "2.0.1" @@ -2841,13 +3096,15 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0, extend@~3.0.0, extend@~3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" +extend@^3.0.0, extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^2.0.4, external-editor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.1.0.tgz#3d026a21b7f95b5726387d4200ac160d372c3b48" +external-editor@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== dependencies: chardet "^0.4.0" iconv-lite "^0.4.17" @@ -2883,10 +3140,25 @@ fancy-log@^1.1.0: chalk "^1.1.1" time-stamp "^1.0.0" +fancy-log@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.3.tgz#dbc19154f558690150a23953a0adbd035be45fc7" + integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== + dependencies: + ansi-gray "^0.1.1" + color-support "^1.1.3" + parse-node-version "^1.0.0" + time-stamp "^1.0.0" + fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" +fast-deep-equal@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= + fast-json-stable-stringify@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" @@ -2896,43 +3168,33 @@ fast-levenshtein@~2.0.4: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" fastparse@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" + integrity sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg= dependencies: bser "^2.0.0" -fbjs@^0.8.16: - version "0.8.16" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db" - dependencies: - 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.9" - -figures@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" +figgy-pudding@^3.1.0, figgy-pudding@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== figures@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + integrity sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E= dependencies: flat-cache "^1.2.1" object-assign "^4.0.1" @@ -2944,6 +3206,7 @@ filename-regex@^2.0.0: fileset@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + integrity sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA= dependencies: glob "^7.0.3" minimatch "^3.0.3" @@ -2975,13 +3238,19 @@ find-cache-dir@^1.0.0: make-dir "^1.0.0" pkg-dir "^2.0.0" -find-index@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" +find-cache-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.0.0.tgz#4c1faed59f45184530fb9d7fa123a4d04a98472d" + integrity sha512-LDUY6V1Xs5eFskUVYtIwatojt6+9xC9Chnlk/jYOOvn3FAFfSaWddxahDGyNHh0b2dMXa6YW2m0tk8TdVaXHlA== + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^3.0.0" find-root@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" + integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== find-up@^1.0.0: version "1.1.2" @@ -2996,9 +3265,17 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + findup-sync@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-2.0.0.tgz#9326b1488c22d1a6088650a86901b2d9a90a2cbc" + integrity sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw= dependencies: detect-file "^1.0.0" is-glob "^3.1.0" @@ -3006,8 +3283,9 @@ findup-sync@^2.0.0: resolve-dir "^1.0.1" fined@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" + version "1.1.1" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.1.tgz#95d88ff329123dd1a6950fdfcd321f746271e01f" + integrity sha512-jQp949ZmEbiYHk3gkbdtpJ0G1+kgtLQBNdP5edFP7Fh+WAYceLQz6yO1SBj72Xkg8GVyTB3bBzAYrHJVh5Xd5g== dependencies: expand-tilde "^2.0.2" is-plain-object "^2.0.3" @@ -3015,40 +3293,25 @@ fined@^1.0.1: object.pick "^1.2.0" parse-filepath "^1.0.1" -first-chunk-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" - -first-chunk-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" - dependencies: - readable-stream "^2.0.2" - flagged-respawn@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.0.tgz#4e79ae9b2eb38bf86b3bb56bf3e0a56aa5fcabd7" + version "1.0.1" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" + integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== flat-cache@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481" + version "1.3.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" + integrity sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg== dependencies: circular-json "^0.3.1" - del "^2.0.2" graceful-fs "^4.1.2" + rimraf "~2.6.2" write "^0.2.1" -flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - -flow-parser@^0.*: - version "0.68.0" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.68.0.tgz#9cc96620a102e316a314b6bcd56205ceace862d8" - -flush-write-stream@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.2.tgz#c81b90d8746766f1a609a46809946c45dd8ae417" +flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + integrity sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw== dependencies: inherits "^2.0.1" readable-stream "^2.0.4" @@ -3056,6 +3319,7 @@ flush-write-stream@^1.0.0: for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + integrity sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE= for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" @@ -3081,20 +3345,13 @@ forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" -form-data@~2.1.1: - version "2.1.4" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.5" - mime-types "^2.1.12" - -form-data@~2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" - dependencies: - asynckit "^0.4.0" - combined-stream "1.0.6" + combined-stream "^1.0.6" mime-types "^2.1.12" fragment-cache@^0.2.1: @@ -3103,16 +3360,33 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" -from2@^2.1.0, from2@^2.1.1: +from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" +fs-minipass@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" + integrity sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ== + dependencies: + minipass "^2.2.1" + +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" iferr "^0.1.5" @@ -3123,24 +3397,18 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0, fsevents@^1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" +fsevents@^1.2.2, fsevents@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" + integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" + nan "^2.9.2" + node-pre-gyp "^0.10.0" -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: +fstream@^1.0.0, fstream@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + integrity sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE= dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" @@ -3158,6 +3426,7 @@ function-bind@^1.1.1: functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= gauge@~2.7.3: version "2.7.4" @@ -3172,28 +3441,13 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaze@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" - dependencies: - globule "~0.1.0" - gaze@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== dependencies: globule "^1.0.0" -generate-function@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" - -generate-object-property@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" - dependencies: - is-property "^1.0.0" - get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -3201,15 +3455,23 @@ get-caller-file@^1.0.1: get-stdin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" -get-stream@3.0.0, get-stream@^3.0.0: +get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" +get-stream@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -3220,26 +3482,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -gh-got@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/gh-got/-/gh-got-6.0.0.tgz#d74353004c6ec466647520a10bd46f7299d268d0" - dependencies: - got "^7.0.0" - is-plain-obj "^1.1.0" - -github-username@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/github-username/-/github-username-4.1.0.tgz#cbe280041883206da4212ae9e4b5f169c30bf417" - dependencies: - gh-got "^6.0.0" - -glob-all@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-all/-/glob-all-3.1.0.tgz#8913ddfb5ee1ac7812656241b03d5217c64b02ab" - dependencies: - glob "^7.0.5" - yargs "~1.2.6" - glob-base@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" @@ -3260,49 +3502,47 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-stream@^3.1.5: - version "3.1.18" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= dependencies: - glob "^4.3.1" - glob2base "^0.0.12" - minimatch "^2.0.1" - ordered-read-streams "^0.1.0" - through2 "^0.6.1" - unique-stream "^1.0.0" + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" -glob-watcher@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" +glob-watcher@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" + integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg== dependencies: - gaze "^0.5.1" + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + object.defaults "^1.1.0" -glob2base@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" - dependencies: - find-index "^0.1.1" - -glob@^4.3.1: - version "4.5.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" +glob@^7.0.0, glob@~7.1.1: + version "7.1.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.3.tgz#3960832d3f1574108342dafd3a67b332c0969df1" + integrity sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ== dependencies: + fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^2.0.1" - once "^1.3.0" - -glob@^6.0.4: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" + minimatch "^3.0.4" once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: +glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -3313,17 +3553,15 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@~3.1.21: - version "3.1.21" - resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" - dependencies: - graceful-fs "~1.2.0" - inherits "1" - minimatch "~0.2.11" +global-modules-path@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931" + integrity sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg== global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" is-windows "^1.0.1" @@ -3332,6 +3570,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" homedir-polyfill "^1.0.1" @@ -3339,131 +3578,84 @@ global-prefix@^1.0.1: is-windows "^1.0.1" which "^1.2.14" -globals@^11.0.1: - version "11.3.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.3.0.tgz#e04fdb7b9796d8adac9c8f64c14837b2313378b0" +globals@^11.1.0, globals@^11.7.0: + version "11.9.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.9.0.tgz#bde236808e987f290768a93d065060d78e6ab249" + integrity sha512-5cJVtyXWH8PiJPVLZzzoIizXx944O4OmRro5MWKx5fT4MgcN7OfaMutPeaTdJCCURwbWdhhcCWcKIffPnmTzBg== -globals@^9.0.0, globals@^9.18.0: +globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - 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" - -globby@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" - dependencies: - array-union "^1.0.1" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - globule@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" + version "1.2.1" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" + integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ== dependencies: glob "~7.1.1" - lodash "~4.17.4" + lodash "~4.17.10" minimatch "~3.0.2" -globule@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" - dependencies: - glob "~3.1.21" - lodash "~1.0.1" - minimatch "~0.2.11" - glogg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" dependencies: sparkles "^1.0.0" -got@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" - dependencies: - decompress-response "^3.2.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-plain-obj "^1.1.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - p-cancelable "^0.3.0" - p-timeout "^1.1.1" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - url-parse-lax "^1.0.0" - url-to-options "^1.0.1" - -got@^8.2.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/got/-/got-8.3.0.tgz#6ba26e75f8a6cc4c6b3eb1fe7ce4fec7abac8533" - dependencies: - "@sindresorhus/is" "^0.7.0" - cacheable-request "^2.1.1" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - into-stream "^3.1.0" - is-retry-allowed "^1.1.0" - isurl "^1.0.0-alpha5" - lowercase-keys "^1.0.0" - mimic-response "^1.0.0" - p-cancelable "^0.4.0" - p-timeout "^2.0.1" - pify "^3.0.0" - safe-buffer "^5.1.1" - timed-out "^4.0.1" - url-parse-lax "^3.0.0" - url-to-options "^1.0.1" - -graceful-fs@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" - dependencies: - natives "^1.1.0" +graceful-fs@^4.0.0, graceful-fs@^4.1.6: + version "4.1.15" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" + integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA== graceful-fs@^4.1.11, graceful-fs@^4.1.2: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" -graceful-fs@~1.2.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" - graphlibrary@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/graphlibrary/-/graphlibrary-2.2.0.tgz#017a14899775228dec4497a39babfdd6bf56eac6" + integrity sha512-XTcvT55L8u4MBZrM37zXoUxsgxs/7sow7YSygd9CIwfWTVO8RVu7AYXhhCiTuFEf+APKgx6Jk4SuQbYR0vYKmQ== dependencies: lodash "^4.17.5" -grouped-queue@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-0.3.3.tgz#c167d2a5319c5a0e0964ef6a25b7c2df8996c85c" - dependencies: - lodash "^4.17.2" +"growl@~> 1.10.0": + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" + integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + +gulp-cli@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.0.1.tgz#7847e220cb3662f2be8a6d572bf14e17be5a994b" + integrity sha512-RxujJJdN8/O6IW2nPugl7YazhmrIEjmiVfPKrWt68r71UCaLKS71Hp0gpKT+F6qOUFtr7KqtifDKaAJPRVvMYQ== + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.1.0" + isobject "^3.0.1" + liftoff "^2.5.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.0.1" + yargs "^7.1.0" gulp-filelog@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/gulp-filelog/-/gulp-filelog-0.4.1.tgz#bbfa62f45fd1fca8a046b1dc96e4e03c87a96392" + integrity sha1-u/pi9F/R/KigRrHcluTgPIepY5I= dependencies: gulp-util "~3.0.1" through2 "*" @@ -3471,12 +3663,13 @@ gulp-filelog@^0.4.1: gulp-jison@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/gulp-jison/-/gulp-jison-1.2.0.tgz#3a81fdb5c58d40709578dc08183fa38a4112aa49" + integrity sha1-OoH9tcWNQHCVeNwIGD+jikESqkk= dependencies: gulp-util "~3.0.4" jison "~0.4.15" through2 "~0.6.3" -gulp-util@^3.0.0, gulp-util@~3.0.1, gulp-util@~3.0.4: +gulp-util@~3.0.1, gulp-util@~3.0.4: version "3.0.8" resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" dependencies: @@ -3499,23 +3692,15 @@ gulp-util@^3.0.0, gulp-util@~3.0.1, gulp-util@~3.0.4: through2 "^2.0.0" vinyl "^0.5.0" -gulp@^3.9.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" +gulp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.0.tgz#95766c601dade4a77ed3e7b2b6dc03881b596366" + integrity sha1-lXZsYB2t5Kd+0+eyttwDiBtZY2Y= dependencies: - archy "^1.0.0" - chalk "^1.0.0" - deprecated "^0.0.1" - gulp-util "^3.0.0" - interpret "^1.0.0" - liftoff "^2.1.0" - minimist "^1.1.0" - orchestrator "^0.3.0" - pretty-hrtime "^1.0.0" - semver "^4.1.0" - tildify "^1.0.0" - v8flags "^2.0.2" - vinyl-fs "^0.3.0" + glob-watcher "^5.0.0" + gulp-cli "^2.0.0" + undertaker "^1.0.0" + vinyl-fs "^3.0.0" gulplog@^1.0.0: version "1.0.0" @@ -3524,49 +3709,32 @@ gulplog@^1.0.0: glogg "^1.0.0" handlebars@^4.0.3: - version "4.0.11" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc" + version "4.0.12" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5" + integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA== dependencies: - async "^1.4.0" + async "^2.5.0" optimist "^0.6.1" - source-map "^0.4.4" + source-map "^0.6.1" optionalDependencies: - uglify-js "^2.6" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + uglify-js "^3.1.4" har-schema@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" -har-validator@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" +har-validator@~5.1.0: + version "5.1.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== dependencies: - chalk "^1.1.1" - commander "^2.9.0" - is-my-json-valid "^2.12.4" - pinkie-promise "^2.0.0" - -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - -har-validator@~5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" - dependencies: - ajv "^5.1.0" + ajv "^6.5.5" har-schema "^2.0.0" harmony-reflect@^1.4.6: - version "1.6.0" - resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.0.tgz#9c28a77386ec225f7b5d370f9861ba09c4eea58f" + version "1.6.1" + resolved "https://registry.yarnpkg.com/harmony-reflect/-/harmony-reflect-1.6.1.tgz#c108d4f2bb451efef7a37861fdbdae72c9bdefa9" + integrity sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA== has-ansi@^2.0.0: version "2.0.0" @@ -3581,10 +3749,7 @@ has-color@~0.1.0: has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - -has-flag@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= has-flag@^3.0.0: version "3.0.0" @@ -3596,15 +3761,10 @@ has-gulplog@^0.1.0: dependencies: sparkles "^1.0.0" -has-symbol-support-x@^1.4.1: - version "1.4.2" - resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" - -has-to-string-tag-x@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" - dependencies: - has-symbol-support-x "^1.4.1" +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= has-unicode@^2.0.0: version "2.0.1" @@ -3643,74 +3803,60 @@ has@^1.0.1: dependencies: function-bind "^1.0.2" -hash-base@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: - inherits "^2.0.1" + function-bind "^1.1.1" hash-base@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" - minimalistic-assert "^1.0.0" + minimalistic-assert "^1.0.1" -hawk@3.1.3, hawk@~3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" - dependencies: - boom "2.x.x" - cryptiles "2.x.x" - hoek "2.x.x" - sntp "1.x.x" - -hawk@~6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" - dependencies: - boom "4.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - sntp "2.x.x" - -he@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" +he@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" -hoek@2.x.x: - version "2.16.3" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" - -hoek@4.x.x: - version "4.2.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" - home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + integrity sha1-42w/LSyufXRqhX440Y1fMqeILbg= dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.1" +home-or-tmp@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" + integrity sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs= + homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + integrity sha1-TCu8inWJmP7r9e1oWA921GdotLw= dependencies: parse-passwd "^1.0.0" @@ -3718,28 +3864,13 @@ hosted-git-info@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" -html-comment-regex@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" - html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" + integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== dependencies: whatwg-encoding "^1.0.1" -http-cache-semantics@3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" - -http-signature@~1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" - dependencies: - assert-plus "^0.2.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -3751,54 +3882,101 @@ http-signature@~1.2.0: https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -husky@^0.14.3: - version "0.14.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-0.14.3.tgz#c69ed74e2d2779769a17ba8399b54ce0b63c12c3" +husky@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-1.2.1.tgz#33628f7013e345c1790a4dbe4642ad047f772dee" + integrity sha512-4Ylal3HWhnDvIszuiyLoVrSGI7QLg/ogkNCoHE34c+yZYzb9kBZNrlTOsdw92cGi3cJT8pPb6CdVfxFkLnc8Dg== dependencies: - is-ci "^1.0.10" - normalize-path "^1.0.0" - strip-indent "^2.0.0" + cosmiconfig "^5.0.7" + execa "^1.0.0" + find-up "^3.0.0" + get-stdin "^6.0.0" + is-ci "^1.2.1" + pkg-dir "^3.0.0" + please-upgrade-node "^3.1.1" + read-pkg "^4.0.1" + run-node "^1.0.0" + slash "^2.0.0" -iconv-lite@0.4, iconv-lite@0.4.19, iconv-lite@^0.4.17, iconv-lite@~0.4.13: - version "0.4.19" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" icss-replace-symbols@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= -icss-utils@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" +icss-utils@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.0.0.tgz#d52cf4bcdcfa1c45c2dbefb4ffdf6b00ef608098" + integrity sha512-bA/xGiwWM17qjllIs9X/y0EjsB7e0AV08F3OL8UPsoNkNRibIuu8f1eKTnQ8QO1DteKKTxTUAn+IEWUToIwGOA== dependencies: - postcss "^6.0.1" + postcss "^7.0.5" identity-obj-proxy@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz#94d2bda96084453ef36fbc5aaec37e0f79f1fc14" + integrity sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ= dependencies: harmony-reflect "^1.4.6" ieee754@^1.1.4: - version "1.1.10" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.10.tgz#719a6f7b026831e64bdb838b0de1bb0029bbf716" + version "1.1.12" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.12.tgz#50bf24e5b9c8bb98af4964c941cdb0918da7b60b" + integrity sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA== iferr@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore@^3.0.9, ignore@^3.3.3, ignore@^3.3.6: - version "3.3.7" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" +ignore-walk@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8" + integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ== + dependencies: + minimatch "^3.0.4" + +ignore@^3.0.9: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.2: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" import-local@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + integrity sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ== dependencies: pkg-dir "^2.0.0" resolve-cwd "^2.0.0" +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -3806,24 +3984,19 @@ imurmurhash@^0.1.4: in-publish@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + integrity sha1-4g/146KvwmkDILbcVSaCqcf631E= indent-string@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= dependencies: repeating "^2.0.0" -indent-string@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-3.2.0.tgz#4a5fd6d27cc332f37e5419a504dbb837105c9289" - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= inflight@^1.0.4: version "1.0.6" @@ -3832,48 +4005,28 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" - -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" inherits@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= ini@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" -inquirer@^3.0.6, inquirer@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" - dependencies: - 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.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" - -inquirer@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.1.0.tgz#19da508931892328abbbdd4c477f1efc65abfd67" +inquirer@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-5.2.0.tgz#db350c2b73daca77ff1243962e9f22f099685726" + integrity sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.0" @@ -3889,38 +4042,36 @@ inquirer@^5.1.0: strip-ansi "^4.0.0" through "^2.3.6" -interpret@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" - -interpret@^1.0.4: +interpret@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" -into-stream@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" - dependencies: - from2 "^2.1.1" - p-is-promise "^1.1.0" - -invariant@^2.2.0, invariant@^2.2.2: +invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" dependencies: loose-envify "^1.0.0" +invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== dependencies: is-relative "^1.0.0" is-windows "^1.0.1" @@ -3961,11 +4112,12 @@ is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" -is-ci@^1.0.10: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.1.0.tgz#247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5" +is-ci@^1.0.10, is-ci@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" + integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== dependencies: - ci-info "^1.0.0" + ci-info "^1.5.0" is-data-descriptor@^0.1.4: version "0.1.4" @@ -3999,6 +4151,11 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-data-descriptor "^1.0.0" kind-of "^6.0.2" +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + is-dotfile@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" @@ -4046,6 +4203,7 @@ is-fullwidth-code-point@^2.0.0: is-generator-fn@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-1.0.0.tgz#969d49e1bb3329f6bb7f09089be26578b2ddd46a" + integrity sha1-lp1J4bszKfa7fwkIm+JleLLd1Go= is-glob@^2.0.0, is-glob@^2.0.1: version "2.0.1" @@ -4065,19 +4223,10 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" -is-my-ip-valid@^1.0.0: +is-negated-glob@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" - -is-my-json-valid@^2.12.4: - version "2.17.2" - resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" - dependencies: - 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" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= is-number@^2.1.0: version "2.1.0" @@ -4095,42 +4244,12 @@ is-number@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" -is-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" - -is-observable@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-0.2.0.tgz#b361311d83c6e5d726cabf5e250b0237106f5ae2" - dependencies: - symbol-observable "^0.2.2" - is-odd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" dependencies: is-number "^4.0.0" -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - dependencies: - path-is-inside "^1.0.1" - -is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -4148,10 +4267,7 @@ is-primitive@^2.0.0: is-promise@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" - -is-property@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= is-regex@^1.0.4: version "1.0.4" @@ -4159,36 +4275,27 @@ is-regex@^1.0.4: dependencies: has "^1.0.1" +is-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" + integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk= + is-relative@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== dependencies: is-unc-path "^1.0.0" -is-resolvable@^1.0.0: +is-resolvable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - -is-scoped@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-1.0.0.tgz#449ca98299e713038256289ecb2b540dc437cb30" - dependencies: - scoped-regex "^1.0.0" - -is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" -is-svg@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" - dependencies: - html-comment-regex "^1.1.0" - is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" @@ -4200,13 +4307,19 @@ is-typedarray@~1.0.0: is-unc-path@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== dependencies: unc-path-regex "^0.1.2" -is-utf8@^0.2.0: +is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -4233,115 +4346,91 @@ isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" -isomorphic-fetch@^2.1.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" - dependencies: - node-fetch "^1.0.1" - whatwg-fetch ">=0.10.0" - isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" -istanbul-api@^1.1.14: - version "1.3.1" - resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.1.tgz#4c3b05d18c0016d1022e079b98dc82c40f488954" +istanbul-api@^1.3.1: + version "1.3.7" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.3.7.tgz#a86c770d2b03e11e3f778cd7aedd82d2722092aa" + integrity sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA== dependencies: async "^2.1.4" - compare-versions "^3.1.0" fileset "^2.0.2" - istanbul-lib-coverage "^1.2.0" - istanbul-lib-hook "^1.2.0" - istanbul-lib-instrument "^1.10.1" - istanbul-lib-report "^1.1.4" - istanbul-lib-source-maps "^1.2.4" - istanbul-reports "^1.3.0" + istanbul-lib-coverage "^1.2.1" + istanbul-lib-hook "^1.2.2" + istanbul-lib-instrument "^1.10.2" + istanbul-lib-report "^1.1.5" + istanbul-lib-source-maps "^1.2.6" + istanbul-reports "^1.5.1" js-yaml "^3.7.0" mkdirp "^0.5.1" once "^1.4.0" -istanbul-lib-coverage@^1.1.1, istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341" +istanbul-lib-coverage@^1.2.0, istanbul-lib-coverage@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz#ccf7edcd0a0bb9b8f729feeb0930470f9af664f0" + integrity sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ== -istanbul-lib-hook@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz#ae556fd5a41a6e8efa0b1002b1e416dfeaf9816c" +istanbul-lib-hook@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz#bc6bf07f12a641fbf1c85391d0daa8f0aea6bf86" + integrity sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw== dependencies: append-transform "^0.4.0" -istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.7.5, istanbul-lib-instrument@^1.8.0: - version "1.10.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b" +istanbul-lib-instrument@^1.10.1, istanbul-lib-instrument@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz#1f55ed10ac3c47f2bdddd5307935126754d0a9ca" + integrity sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A== dependencies: 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" + istanbul-lib-coverage "^1.2.1" semver "^5.3.0" -istanbul-lib-report@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.4.tgz#e886cdf505c4ebbd8e099e4396a90d0a28e2acb5" +istanbul-lib-report@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz#f2a657fc6282f96170aaf281eb30a458f7f4170c" + integrity sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw== dependencies: - istanbul-lib-coverage "^1.2.0" + istanbul-lib-coverage "^1.2.1" mkdirp "^0.5.1" path-parse "^1.0.5" supports-color "^3.1.2" -istanbul-lib-source-maps@^1.2.1: - version "1.2.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6" +istanbul-lib-source-maps@^1.2.4, istanbul-lib-source-maps@^1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz#37b9ff661580f8fca11232752ee42e08c6675d8f" + integrity sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg== dependencies: debug "^3.1.0" - istanbul-lib-coverage "^1.1.2" + istanbul-lib-coverage "^1.2.1" mkdirp "^0.5.1" rimraf "^2.6.1" source-map "^0.5.3" -istanbul-lib-source-maps@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz#cc7ccad61629f4efff8e2f78adb8c522c9976ec7" - dependencies: - debug "^3.1.0" - istanbul-lib-coverage "^1.2.0" - mkdirp "^0.5.1" - rimraf "^2.6.1" - source-map "^0.5.3" - -istanbul-reports@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554" +istanbul-reports@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.5.1.tgz#97e4dbf3b515e8c484caea15d6524eebd3ff4e1a" + integrity sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw== dependencies: handlebars "^4.0.3" -istextorbinary@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/istextorbinary/-/istextorbinary-2.2.1.tgz#a5231a08ef6dd22b268d0895084cf8d58b5bec53" - dependencies: - binaryextensions "2" - editions "^1.3.3" - textextensions "2" - -isurl@^1.0.0-alpha5: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" - dependencies: - has-to-string-tag-x "^1.2.0" - is-object "^1.0.1" - -jest-changed-files@^22.2.0: - version "22.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-22.2.0.tgz#517610c4a8ca0925bdc88b0ca53bd678aa8d019e" +jest-changed-files@^23.4.2: + version "23.4.2" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-23.4.2.tgz#1eed688370cd5eebafe4ae93d34bb3b64968fe83" + integrity sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA== dependencies: throat "^4.0.0" -jest-cli@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-22.4.2.tgz#e6546dc651e13d164481aa3e76e53ac4f4edab06" +jest-cli@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-23.6.0.tgz#61ab917744338f443ef2baa282ddffdd658a5da4" + integrity sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ== dependencies: ansi-escapes "^3.0.0" chalk "^2.0.1" @@ -4350,129 +4439,155 @@ jest-cli@^22.4.2: graceful-fs "^4.1.11" import-local "^1.0.0" is-ci "^1.0.10" - istanbul-api "^1.1.14" - istanbul-lib-coverage "^1.1.1" - istanbul-lib-instrument "^1.8.0" - istanbul-lib-source-maps "^1.2.1" - jest-changed-files "^22.2.0" - jest-config "^22.4.2" - jest-environment-jsdom "^22.4.1" + istanbul-api "^1.3.1" + istanbul-lib-coverage "^1.2.0" + istanbul-lib-instrument "^1.10.1" + istanbul-lib-source-maps "^1.2.4" + jest-changed-files "^23.4.2" + jest-config "^23.6.0" + jest-environment-jsdom "^23.4.0" jest-get-type "^22.1.0" - jest-haste-map "^22.4.2" - jest-message-util "^22.4.0" - jest-regex-util "^22.1.0" - jest-resolve-dependencies "^22.1.0" - jest-runner "^22.4.2" - jest-runtime "^22.4.2" - jest-snapshot "^22.4.0" - jest-util "^22.4.1" - jest-validate "^22.4.2" - jest-worker "^22.2.2" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve-dependencies "^23.6.0" + jest-runner "^23.6.0" + jest-runtime "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + jest-watcher "^23.4.0" + jest-worker "^23.2.0" micromatch "^2.3.11" node-notifier "^5.2.1" + prompts "^0.1.9" realpath-native "^1.0.0" rimraf "^2.5.4" slash "^1.0.0" string-length "^2.0.0" strip-ansi "^4.0.0" which "^1.2.12" - yargs "^10.0.3" + yargs "^11.0.0" -jest-config@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-22.4.2.tgz#580ba5819bf81a5e48f4fd470e8b81834f45c855" +jest-config@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-23.6.0.tgz#f82546a90ade2d8c7026fbf6ac5207fc22f8eb1d" + integrity sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ== dependencies: + babel-core "^6.0.0" + babel-jest "^23.6.0" chalk "^2.0.1" glob "^7.1.1" - jest-environment-jsdom "^22.4.1" - jest-environment-node "^22.4.1" + jest-environment-jsdom "^23.4.0" + jest-environment-node "^23.4.0" jest-get-type "^22.1.0" - jest-jasmine2 "^22.4.2" - jest-regex-util "^22.1.0" - jest-resolve "^22.4.2" - jest-util "^22.4.1" - jest-validate "^22.4.2" - pretty-format "^22.4.0" + jest-jasmine2 "^23.6.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" + micromatch "^2.3.11" + pretty-format "^23.6.0" -jest-diff@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-22.4.0.tgz#384c2b78519ca44ca126382df53f134289232525" +jest-diff@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" + integrity sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g== dependencies: chalk "^2.0.1" diff "^3.2.0" jest-get-type "^22.1.0" - pretty-format "^22.4.0" + pretty-format "^23.6.0" -jest-docblock@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-22.4.0.tgz#dbf1877e2550070cfc4d9b07a55775a0483159b8" +jest-docblock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-23.2.0.tgz#f085e1f18548d99fdd69b20207e6fd55d91383a7" + integrity sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c= dependencies: detect-newline "^2.1.0" -jest-environment-jsdom@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-22.4.1.tgz#754f408872441740100d3917e5ec40c74de6447f" +jest-each@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-23.6.0.tgz#ba0c3a82a8054387016139c733a05242d3d71575" + integrity sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg== dependencies: - jest-mock "^22.2.0" - jest-util "^22.4.1" + chalk "^2.0.1" + pretty-format "^23.6.0" + +jest-environment-jsdom@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz#056a7952b3fea513ac62a140a2c368c79d9e6023" + integrity sha1-BWp5UrP+pROsYqFAosNox52eYCM= + dependencies: + jest-mock "^23.2.0" + jest-util "^23.4.0" jsdom "^11.5.1" -jest-environment-node@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-22.4.1.tgz#418850eb654596b8d6e36c2021cbedbc23df8e16" +jest-environment-node@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-23.4.0.tgz#57e80ed0841dea303167cce8cd79521debafde10" + integrity sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA= dependencies: - jest-mock "^22.2.0" - jest-util "^22.4.1" + jest-mock "^23.2.0" + jest-util "^23.4.0" jest-get-type@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.1.0.tgz#4e90af298ed6181edc85d2da500dbd2753e0d5a9" + version "22.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" + integrity sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w== -jest-haste-map@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-22.4.2.tgz#a90178e66146d4378bb076345a949071f3b015b4" +jest-haste-map@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-23.6.0.tgz#2e3eb997814ca696d62afdb3f2529f5bbc935e16" + integrity sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg== dependencies: fb-watchman "^2.0.0" graceful-fs "^4.1.11" - jest-docblock "^22.4.0" - jest-serializer "^22.4.0" - jest-worker "^22.2.2" + invariant "^2.2.4" + jest-docblock "^23.2.0" + jest-serializer "^23.0.1" + jest-worker "^23.2.0" micromatch "^2.3.11" sane "^2.0.0" -jest-jasmine2@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-22.4.2.tgz#dfd3d259579ed6f52510d8f1ab692808f0d40691" +jest-jasmine2@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" + integrity sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ== dependencies: + babel-traverse "^6.0.0" chalk "^2.0.1" co "^4.6.0" - expect "^22.4.0" - graceful-fs "^4.1.11" + expect "^23.6.0" is-generator-fn "^1.0.0" - jest-diff "^22.4.0" - jest-matcher-utils "^22.4.0" - jest-message-util "^22.4.0" - jest-snapshot "^22.4.0" - jest-util "^22.4.1" - source-map-support "^0.5.0" + jest-diff "^23.6.0" + jest-each "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + pretty-format "^23.6.0" -jest-leak-detector@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-22.4.0.tgz#64da77f05b001c96d2062226e079f89989c4aa2f" +jest-leak-detector@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz#e4230fd42cf381a1a1971237ad56897de7e171de" + integrity sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg== dependencies: - pretty-format "^22.4.0" + pretty-format "^23.6.0" -jest-matcher-utils@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-22.4.0.tgz#d55f5faf2270462736bdf7c7485ee931c9d4b6a1" +jest-matcher-utils@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz#726bcea0c5294261a7417afb6da3186b4b8cac80" + integrity sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog== dependencies: chalk "^2.0.1" jest-get-type "^22.1.0" - pretty-format "^22.4.0" + pretty-format "^23.6.0" -jest-message-util@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-22.4.0.tgz#e3d861df16d2fee60cb2bc8feac2188a42579642" +jest-message-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-23.4.0.tgz#17610c50942349508d01a3d1e0bda2c079086a9f" + integrity sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8= dependencies: "@babel/code-frame" "^7.0.0-beta.35" chalk "^2.0.1" @@ -4480,117 +4595,147 @@ jest-message-util@^22.4.0: slash "^1.0.0" stack-utils "^1.0.1" -jest-mock@^22.2.0: - version "22.2.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-22.2.0.tgz#444b3f9488a7473adae09bc8a77294afded397a7" +jest-mock@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" + integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= -jest-regex-util@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-22.1.0.tgz#5daf2fe270074b6da63e5d85f1c9acc866768f53" +jest-regex-util@^23.3.0: + version "23.3.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" + integrity sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U= -jest-resolve-dependencies@^22.1.0: - version "22.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-22.1.0.tgz#340e4139fb13315cd43abc054e6c06136be51e31" +jest-resolve-dependencies@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz#b4526af24c8540d9a3fab102c15081cf509b723d" + integrity sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA== dependencies: - jest-regex-util "^22.1.0" + jest-regex-util "^23.3.0" + jest-snapshot "^23.6.0" -jest-resolve@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-22.4.2.tgz#25d88aa4147462c9c1c6a1ba16250d3794c24d00" +jest-resolve@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-23.6.0.tgz#cf1d1a24ce7ee7b23d661c33ba2150f3aebfa0ae" + integrity sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA== dependencies: - browser-resolve "^1.11.2" + browser-resolve "^1.11.3" chalk "^2.0.1" + realpath-native "^1.0.0" -jest-runner@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-22.4.2.tgz#19390ea9d99f768973e16f95a1efa351c0017e87" +jest-runner@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-23.6.0.tgz#3894bd219ffc3f3cb94dc48a4170a2e6f23a5a38" + integrity sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA== dependencies: exit "^0.1.2" - jest-config "^22.4.2" - jest-docblock "^22.4.0" - jest-haste-map "^22.4.2" - jest-jasmine2 "^22.4.2" - jest-leak-detector "^22.4.0" - jest-message-util "^22.4.0" - jest-runtime "^22.4.2" - jest-util "^22.4.1" - jest-worker "^22.2.2" + graceful-fs "^4.1.11" + jest-config "^23.6.0" + jest-docblock "^23.2.0" + jest-haste-map "^23.6.0" + jest-jasmine2 "^23.6.0" + jest-leak-detector "^23.6.0" + jest-message-util "^23.4.0" + jest-runtime "^23.6.0" + jest-util "^23.4.0" + jest-worker "^23.2.0" + source-map-support "^0.5.6" throat "^4.0.0" -jest-runtime@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-22.4.2.tgz#0de0444f65ce15ee4f2e0055133fc7c17b9168f3" +jest-runtime@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-23.6.0.tgz#059e58c8ab445917cd0e0d84ac2ba68de8f23082" + integrity sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw== dependencies: babel-core "^6.0.0" - babel-jest "^22.4.1" - babel-plugin-istanbul "^4.1.5" + babel-plugin-istanbul "^4.1.6" chalk "^2.0.1" convert-source-map "^1.4.0" exit "^0.1.2" + fast-json-stable-stringify "^2.0.0" graceful-fs "^4.1.11" - jest-config "^22.4.2" - jest-haste-map "^22.4.2" - jest-regex-util "^22.1.0" - jest-resolve "^22.4.2" - jest-util "^22.4.1" - jest-validate "^22.4.2" - json-stable-stringify "^1.0.1" + jest-config "^23.6.0" + jest-haste-map "^23.6.0" + jest-message-util "^23.4.0" + jest-regex-util "^23.3.0" + jest-resolve "^23.6.0" + jest-snapshot "^23.6.0" + jest-util "^23.4.0" + jest-validate "^23.6.0" micromatch "^2.3.11" realpath-native "^1.0.0" slash "^1.0.0" strip-bom "3.0.0" write-file-atomic "^2.1.0" - yargs "^10.0.3" + yargs "^11.0.0" -jest-serializer@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-22.4.0.tgz#b5d145b98c4b0d2c20ab686609adbb81fe23b566" +jest-serializer@^23.0.1: + version "23.0.1" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-23.0.1.tgz#a3776aeb311e90fe83fab9e533e85102bd164165" + integrity sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU= -jest-snapshot@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-22.4.0.tgz#03d3ce63f8fa7352388afc6a3c8b5ccc3a180ed7" +jest-snapshot@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-23.6.0.tgz#f9c2625d1b18acda01ec2d2b826c0ce58a5aa17a" + integrity sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg== dependencies: + babel-types "^6.0.0" chalk "^2.0.1" - jest-diff "^22.4.0" - jest-matcher-utils "^22.4.0" + jest-diff "^23.6.0" + jest-matcher-utils "^23.6.0" + jest-message-util "^23.4.0" + jest-resolve "^23.6.0" mkdirp "^0.5.1" natural-compare "^1.4.0" - pretty-format "^22.4.0" + pretty-format "^23.6.0" + semver "^5.5.0" -jest-util@^22.4.1: - version "22.4.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-22.4.1.tgz#dd17c3bdb067f8e90591563ec0c42bf847dc249f" +jest-util@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-23.4.0.tgz#4d063cb927baf0a23831ff61bec2cbbf49793561" + integrity sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE= dependencies: callsites "^2.0.0" chalk "^2.0.1" graceful-fs "^4.1.11" is-ci "^1.0.10" - jest-message-util "^22.4.0" + jest-message-util "^23.4.0" mkdirp "^0.5.1" + slash "^1.0.0" source-map "^0.6.0" -jest-validate@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-22.4.2.tgz#e789a4e056173bf97fe797a2df2d52105c57d4f4" +jest-validate@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-23.6.0.tgz#36761f99d1ed33fcd425b4e4c5595d62b6597474" + integrity sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A== dependencies: chalk "^2.0.1" - jest-config "^22.4.2" jest-get-type "^22.1.0" leven "^2.1.0" - pretty-format "^22.4.0" + pretty-format "^23.6.0" -jest-worker@^22.2.2: - version "22.2.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-22.2.2.tgz#c1f5dc39976884b81f68ec50cb8532b2cbab3390" +jest-watcher@^23.4.0: + version "23.4.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-23.4.0.tgz#d2e28ce74f8dad6c6afc922b92cabef6ed05c91c" + integrity sha1-0uKM50+NrWxq/JIrksq+9u0FyRw= + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.1" + string-length "^2.0.0" + +jest-worker@^23.2.0: + version "23.2.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-23.2.0.tgz#faf706a8da36fae60eb26957257fa7b5d8ea02b9" + integrity sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk= dependencies: merge-stream "^1.0.1" -jest@^22.4.2: - version "22.4.2" - resolved "https://registry.yarnpkg.com/jest/-/jest-22.4.2.tgz#34012834a49bf1bdd3bc783850ab44e4499afc20" +jest@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-23.6.0.tgz#ad5835e923ebf6e19e7a1d7529a432edfee7813d" + integrity sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw== dependencies: import-local "^1.0.0" - jest-cli "^22.4.2" + jest-cli "^23.6.0" jison-lex@0.3.x: version "0.3.4" @@ -4602,6 +4747,7 @@ jison-lex@0.3.x: jison@^0.4.18, jison@~0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/jison/-/jison-0.4.18.tgz#c68a6a54bfe7028fa40bcfc6cc8bbd9ed291f502" + integrity sha512-FKkCiJvozgC7VTHhMJ00a0/IApSxhlGsFIshLW6trWJ8ONX2TQJBBz6DlcO1Gffy4w9LT+uL+PA+CVnUSJMF7w== dependencies: JSONSelect "0.4.0" cjson "0.3.0" @@ -4612,123 +4758,100 @@ jison@^0.4.18, jison@~0.4.15: lex-parser "~0.1.3" nomnom "1.5.2" -js-base64@^2.1.8, js-base64@^2.1.9: - version "2.4.3" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" +js-base64@^2.1.8: + version "2.4.9" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03" + integrity sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ== + +js-levenshtein@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.4.tgz#3a56e3cbf589ca0081eb22cd9ba0b1290a16d26e" + integrity sha512-PxfGzSs0ztShKrUYPIn5r0MtyAhYcCwmndozzpz8YObbPnD1jFxzlBGbRnX2mIu6Z13xN6+PTu05TQFnZFlzow== js-tokens@^3.0.0, js-tokens@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@^3.6.1, js-yaml@^3.7.0, js-yaml@^3.9.1: - version "3.11.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@^3.11.0, js-yaml@^3.7.0, js-yaml@^3.9.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" + integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@~3.7.0: - version "3.7.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" - dependencies: - argparse "^1.0.7" - esprima "^2.6.0" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" -jscodeshift@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.4.1.tgz#da91a1c2eccfa03a3387a21d39948e251ced444a" - dependencies: - async "^1.5.0" - babel-plugin-transform-flow-strip-types "^6.8.0" - babel-preset-es2015 "^6.9.0" - babel-preset-stage-1 "^6.5.0" - babel-register "^6.9.0" - babylon "^6.17.3" - colors "^1.1.2" - flow-parser "^0.*" - lodash "^4.13.1" - micromatch "^2.3.7" - node-dir "0.1.8" - nomnom "^1.8.1" - recast "^0.12.5" - temp "^0.8.1" - write-file-atomic "^1.2.0" - -jscodeshift@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.5.0.tgz#bdb7b6cc20dd62c16aa728c3fa2d2fe66ca7c748" - dependencies: - babel-plugin-transform-flow-strip-types "^6.8.0" - babel-preset-es2015 "^6.9.0" - babel-preset-stage-1 "^6.5.0" - babel-register "^6.9.0" - babylon "^7.0.0-beta.30" - colors "^1.1.2" - flow-parser "^0.*" - lodash "^4.13.1" - micromatch "^2.3.7" - neo-async "^2.5.0" - node-dir "0.1.8" - nomnom "^1.8.1" - recast "^0.14.1" - temp "^0.8.1" - write-file-atomic "^1.2.0" - jsdom@^11.5.1: - version "11.6.2" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.6.2.tgz#25d1ef332d48adf77fc5221fe2619967923f16bb" + version "11.12.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" + integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== dependencies: - abab "^1.0.4" - acorn "^5.3.0" + abab "^2.0.0" + acorn "^5.5.3" acorn-globals "^4.1.0" array-equal "^1.0.0" - browser-process-hrtime "^0.1.2" - content-type-parser "^1.0.2" cssom ">= 0.3.2 < 0.4.0" - cssstyle ">= 0.2.37 < 0.3.0" - domexception "^1.0.0" - escodegen "^1.9.0" + cssstyle "^1.0.0" + data-urls "^1.0.0" + domexception "^1.0.1" + escodegen "^1.9.1" html-encoding-sniffer "^1.0.2" - left-pad "^1.2.0" - nwmatcher "^1.4.3" + left-pad "^1.3.0" + nwsapi "^2.0.7" parse5 "4.0.0" pn "^1.1.0" - request "^2.83.0" + request "^2.87.0" request-promise-native "^1.0.5" sax "^1.2.4" symbol-tree "^3.2.2" - tough-cookie "^2.3.3" + tough-cookie "^2.3.4" w3c-hr-time "^1.0.1" webidl-conversions "^4.0.2" whatwg-encoding "^1.0.3" - whatwg-url "^6.4.0" - ws "^4.0.0" + whatwg-mimetype "^2.1.0" + whatwg-url "^6.4.1" + ws "^5.2.0" xml-name-validator "^3.0.0" jsesc@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - json-parse-better-errors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a" +json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + json-schema-traverse@^0.3.0: version "0.3.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -4736,10 +4859,12 @@ json-schema@0.2.3: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stable-stringify@^1.0.1: +json-stable-stringify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + integrity sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8= dependencies: jsonify "~0.0.0" @@ -4751,9 +4876,17 @@ json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" +json5@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" + integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + dependencies: + minimist "^1.2.0" + jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= jsonlint@1.6.0: version "1.6.0" @@ -4762,10 +4895,6 @@ jsonlint@1.6.0: JSV ">= 4.0.x" nomnom ">= 1.5.x" -jsonpointer@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -4778,16 +4907,16 @@ jsprim@^1.2.2: jsx-ast-utils@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.0.1.tgz#e801b1b39985e20fffc87b40e3748080e2dcac7f" + integrity sha1-6AGxs5mF4g//yHtA43SAgOLcrH8= dependencies: array-includes "^3.0.3" -keyv@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" - dependencies: - json-buffer "3.0.0" +just-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" + integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.1.0, kind-of@^3.2.0: +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: @@ -4799,7 +4928,7 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0: +kind-of@^5.0.0, kind-of@^5.0.2: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" @@ -4807,9 +4936,18 @@ kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" -lazy-cache@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +kleur@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" + integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== + +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" lazy-cache@^2.0.2: version "2.0.2" @@ -4817,23 +4955,47 @@ lazy-cache@^2.0.2: dependencies: set-getter "^0.1.0" +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" dependencies: invert-kv "^1.0.0" +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + lcov-parse@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" + integrity sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM= -left-pad@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.2.0.tgz#d30a73c6b8201d8f7d8e7956ba9616087a68e0ee" +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= + dependencies: + flush-write-stream "^1.0.2" + +left-pad@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" + integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" + integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA= levn@^0.3.0, levn@~0.3.0: version "0.3.0" @@ -4846,9 +5008,10 @@ lex-parser@0.1.x, lex-parser@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/lex-parser/-/lex-parser-0.1.4.tgz#64c4f025f17fd53bfb45763faeb16f015a747550" -liftoff@^2.1.0: +liftoff@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" + integrity sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew= dependencies: extend "^3.0.0" findup-sync "^2.0.0" @@ -4859,54 +5022,6 @@ liftoff@^2.1.0: rechoir "^0.6.2" resolve "^1.1.7" -listr-silent-renderer@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz#924b5a3757153770bf1a8e3fbf74b8bbf3f9242e" - -listr-update-renderer@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz#344d980da2ca2e8b145ba305908f32ae3f4cc8a7" - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - elegant-spinner "^1.0.1" - figures "^1.7.0" - indent-string "^3.0.0" - log-symbols "^1.0.2" - log-update "^1.0.2" - strip-ansi "^3.0.1" - -listr-verbose-renderer@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz#8206f4cf6d52ddc5827e5fd14989e0e965933a35" - dependencies: - chalk "^1.1.3" - cli-cursor "^1.0.2" - date-fns "^1.27.2" - figures "^1.7.0" - -listr@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/listr/-/listr-0.13.0.tgz#20bb0ba30bae660ee84cc0503df4be3d5623887d" - dependencies: - chalk "^1.1.3" - cli-truncate "^0.2.1" - figures "^1.7.0" - indent-string "^2.1.0" - is-observable "^0.2.0" - is-promise "^2.1.0" - is-stream "^1.1.0" - listr-silent-renderer "^1.1.1" - listr-update-renderer "^0.4.0" - listr-verbose-renderer "^0.4.0" - log-symbols "^1.0.2" - log-update "^1.0.2" - ora "^0.2.3" - p-map "^1.1.1" - rxjs "^5.4.2" - stream-to-observable "^0.2.0" - strip-ansi "^3.0.1" - load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -4920,6 +5035,7 @@ load-json-file@^1.0.0: load-json-file@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= dependencies: graceful-fs "^4.1.2" parse-json "^2.2.0" @@ -4929,6 +5045,7 @@ load-json-file@^2.0.0: load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" + integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= dependencies: graceful-fs "^4.1.2" parse-json "^4.0.0" @@ -4936,12 +5053,14 @@ load-json-file@^4.0.0: strip-bom "^3.0.0" loader-runner@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + version "2.3.1" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.1.tgz#026f12fe7c3115992896ac02ba022ba92971b979" + integrity sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw== loader-utils@^0.2.15: version "0.2.17" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g= dependencies: big.js "^3.1.3" emojis-list "^2.0.0" @@ -4963,6 +5082,14 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + lodash._basecopy@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" @@ -5002,14 +5129,17 @@ lodash._root@^3.0.0: lodash.assign@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - -lodash.camelcase@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha1-DZnzzNem0mHRm9rrkkUAXShYCOc= lodash.clonedeep@^4.3.2: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= lodash.escape@^3.0.0: version "3.2.0" @@ -5033,13 +5163,10 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - lodash.mergewith@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" + integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ== lodash.restparam@^3.0.0: version "3.6.1" @@ -5048,10 +5175,12 @@ lodash.restparam@^3.0.0: lodash.sortby@^4.7.0: version "4.7.0" resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= lodash.tail@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + integrity sha1-0jM6NtnncXyK0vfKyv7HwytERmQ= lodash.template@^3.0.0: version "3.6.2" @@ -5074,70 +5203,45 @@ lodash.templatesettings@^3.0.0: lodash._reinterpolate "^3.0.0" lodash.escape "^3.0.0" -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" +lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.3.0, lodash@~4.17.10: + version "4.17.11" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" + integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== -lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.2, lodash@^4.17.5, lodash@^4.3.0, lodash@~4.17.4: - version "4.17.5" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" - -lodash@^4.14.0, lodash@^4.17.4, lodash@^4.2.0: +lodash@^4.17.4: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" -lodash@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" +lodash@^4.17.5: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" -log-driver@^1.2.5: +log-driver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" + integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== -log-symbols@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" - dependencies: - chalk "^1.0.0" - -log-symbols@^2.1.0, log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - dependencies: - chalk "^2.0.1" - -log-update@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-1.0.2.tgz#19929f64c4093d2d2e7075a1dad8af59c296b8d1" - dependencies: - ansi-escapes "^1.0.0" - cli-cursor "^1.0.2" - -longest@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" - -loose-envify@^1.0.0, loose-envify@^1.3.1: +loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: js-tokens "^3.0.0" +loose-envify@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + loud-rejection@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lowercase-keys@1.0.0, lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - -lru-cache@2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" - lru-cache@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" @@ -5145,35 +5249,41 @@ lru-cache@^4.0.1: pseudomap "^1.0.2" yallist "^2.1.2" -lru-cache@^4.1.1: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" +lru-cache@^4.1.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== dependencies: pseudomap "^1.0.2" yallist "^2.1.2" -macaddress@^0.2.8: - version "0.2.8" - resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" - -make-dir@^1.0.0, make-dir@^1.1.0: +make-dir@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" dependencies: pify "^3.0.0" make-iterator@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.0.tgz#57bef5dc85d23923ba23767324d8e8f8f3d9694b" + version "1.0.1" + resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" + integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== dependencies: - kind-of "^3.1.0" + kind-of "^6.0.2" makeerror@1.0.x: version "1.0.11" resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c" + integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw= dependencies: tmpl "1.0.x" +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + map-cache@^0.2.0, map-cache@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -5181,6 +5291,7 @@ map-cache@^0.2.0, map-cache@^0.2.2: map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-visit@^1.0.0: version "1.0.0" @@ -5188,46 +5299,41 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -math-expression-evaluator@^1.2.14: - version "1.2.17" - resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" md5.js@^1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" - -mem-fs-editor@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-3.0.2.tgz#dd0a6eaf2bb8a6b37740067aa549eb530105af9f" - dependencies: - commondir "^1.0.1" - deep-extend "^0.4.0" - ejs "^2.3.1" - glob "^7.0.3" - globby "^6.1.0" - mkdirp "^0.5.0" - multimatch "^2.0.0" - rimraf "^2.2.8" - through2 "^2.0.0" - vinyl "^2.0.1" - -mem-fs@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-1.1.3.tgz#b8ae8d2e3fcb6f5d3f9165c12d4551a065d989cc" - dependencies: - through2 "^2.0.0" - vinyl "^1.1.0" - vinyl-file "^2.0.0" + safe-buffer "^5.1.2" mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + integrity sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y= dependencies: mimic-fn "^1.0.0" +mem@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.0.0.tgz#6437690d9471678f6cc83659c00cbafcd6b0cdaf" + integrity sha512-WQxG/5xYc3tMbYLXoXPm81ET2WDULiU5FxbuIoNbJqLOOI8zehXFdZuiUEgfdrU2mVB1pxBZUGlYORSrpuJreA== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^1.0.0" + p-is-promise "^1.1.0" + memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" @@ -5238,6 +5344,7 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= dependencies: camelcase-keys "^2.0.0" decamelize "^1.1.2" @@ -5253,14 +5360,16 @@ meow@^3.7.0: merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + integrity sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE= dependencies: readable-stream "^2.0.1" -merge@^1.1.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.0.tgz#7531e39d4949c281a66b8c5a6e0265e8b05894da" +merge@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" + integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== -micromatch@^2.3.11, micromatch@^2.3.7: +micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" dependencies: @@ -5278,7 +5387,26 @@ micromatch@^2.3.11, micromatch@^2.3.7: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.0.4, micromatch@^3.1.4, micromatch@^3.1.8: +micromatch@^3.0.4, micromatch@^3.1.8: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + 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" + +micromatch@^3.1.4: version "3.1.9" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.9.tgz#15dc93175ae39e52e93087847096effc73efcf89" dependencies: @@ -5299,6 +5427,7 @@ micromatch@^3.0.4, micromatch@^3.1.4, micromatch@^3.1.8: miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" @@ -5307,65 +5436,48 @@ mime-db@~1.29.0: version "1.29.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" -mime-db@~1.33.0: - version "1.33.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" +mime-db@~1.37.0: + version "1.37.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.37.0.tgz#0b6a0ce6fdbe9576e25f1f2d2fde8830dc0ad0d8" + integrity sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg== -mime-types@^2.1.12, mime-types@~2.1.7: +mime-types@^2.1.12: version "2.1.16" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: mime-db "~1.29.0" -mime-types@~2.1.17: - version "2.1.18" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" +mime-types@~2.1.19: + version "2.1.21" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" + integrity sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg== dependencies: - mime-db "~1.33.0" + mime-db "~1.37.0" mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" -mimic-response@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.0.tgz#df3d3652a73fded6b9b0b24146e6fd052353458e" - -minimalistic-assert@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" -minimatch@^2.0.1: - version "2.0.10" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - dependencies: - brace-expansion "^1.0.0" - -minimatch@~0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" - dependencies: - lru-cache "2" - sigmund "~1.0.0" - minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.1.0.tgz#99df657a52574c21c9057497df742790b2b4c0de" - minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -5373,10 +5485,27 @@ minimist@^1.1.0, minimist@^1.1.1, minimist@^1.1.3, minimist@^1.2.0: minimist@~0.0.1: version "0.0.10" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + integrity sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8= -mississippi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" +minipass@^2.2.1, minipass@^2.3.4: + version "2.3.5" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.3.5.tgz#cacebe492022497f656b0f0f51e2682a9ed2d848" + integrity sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.1.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" + integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + dependencies: + minipass "^2.2.1" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -5384,7 +5513,7 @@ mississippi@^2.0.0: flush-write-stream "^1.0.0" from2 "^2.1.0" parallel-transform "^1.1.0" - pump "^2.0.1" + pump "^3.0.0" pumpify "^1.3.3" stream-each "^1.1.0" through2 "^2.0.0" @@ -5399,23 +5528,26 @@ mixin-deep@^1.2.0: mixin-object@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + integrity sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4= dependencies: for-in "^0.1.3" is-extendable "^0.1.1" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: +"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: minimist "0.0.8" -moment@^2.21.0: - version "2.21.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.21.0.tgz#2a114b51d2a6ec9e6d83cf803f838a878d8a023a" +moment@^2.23.0: + version "2.23.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225" + integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA== move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" copy-concurrently "^1.0.0" @@ -5428,14 +5560,10 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -multimatch@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" - dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" +ms@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== multipipe@^0.1.2: version "0.1.2" @@ -5443,17 +5571,20 @@ multipipe@^0.1.2: dependencies: duplexer2 "0.0.2" +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== + mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= -nan@^2.3.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" - -nan@^2.3.2: - version "2.10.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" +nan@^2.10.0, nan@^2.9.2: + version "2.12.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.0.tgz#9d443fdb5e13a20770cc5e602eee59760a685885" + integrity sha512-zT5nC0JhbljmyEf+Z456nvm7iO7XgRV2hYxoBtPpnyp+0Q4aCoP6uWNn76v/I6k2kCYNLWqWbwBWQcjsNI/bjw== nanomatch@^1.2.9: version "1.2.9" @@ -5472,46 +5603,45 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -natives@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.2.tgz#4437ca1ed8a7f047531ccdfaf2792853df4efa1c" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" +needle@^2.2.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.2.4.tgz#51931bff82533b1928b7d1d69e01f1b00ffd2a4e" + integrity sha512-HyoqEb4wr/rsoaIDfTH2aVL9nWtQqba2/HvMv+++m8u0dz808MaagKILxtfeSN7QU7nvbQ79zk3vYOJp9zsNEA== + dependencies: + debug "^2.1.2" + iconv-lite "^0.4.4" + sax "^1.2.4" + neo-async@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f" +next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + nice-try@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" -node-dir@0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.8.tgz#55fb8deb699070707fb67f91a460f0448294c77d" - -node-fetch@^1.0.1: - version "1.7.3" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.3.tgz#980f6f72d85211a5347c6b2bc18c5b84c3eb47ef" - dependencies: - encoding "^0.1.11" - is-stream "^1.0.1" - -node-gyp@^3.3.1: - version "3.6.2" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" +node-gyp@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== dependencies: fstream "^1.0.0" glob "^7.0.3" graceful-fs "^4.1.2" - minimatch "^3.0.2" mkdirp "^0.5.0" nopt "2 || 3" npmlog "0 || 1 || 2 || 3 || 4" osenv "0" - request "2" + request "^2.87.0" rimraf "2" semver "~5.3.0" tar "^2.0.0" @@ -5520,10 +5650,12 @@ node-gyp@^3.3.1: node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" + integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= node-libs-browser@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + integrity sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -5549,34 +5681,48 @@ node-libs-browser@^2.0.0: util "^0.10.3" vm-browserify "0.0.4" +node-modules-regexp@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" + integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= + node-notifier@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.2.1.tgz#fa313dd08f5517db0e2502e5758d664ac69f9dea" + version "5.3.0" + resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-5.3.0.tgz#c77a4a7b84038733d5fb351aafd8a268bfe19a01" + integrity sha512-AhENzCSGZnZJgBARsUjnQ7DnZbzyP+HxlVXuD0xqAnvL8q+OqtSX7lGg9e8nHzwXkMMXNdVeqq4E2M3EUAqX6Q== dependencies: growly "^1.3.0" - semver "^5.4.1" + semver "^5.5.0" shellwords "^0.1.1" which "^1.3.0" -node-pre-gyp@^0.6.39: - version "0.6.39" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" +node-pre-gyp@^0.10.0: + version "0.10.3" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz#3070040716afdc778747b61b6887bf78880b80fc" + integrity sha512-d1xFs+C/IPS8Id0qPTZ4bUT8wWryfR/OzzAFxweG+uLN85oPzyo2Iw6bVlLQ/JOdgNonXLCoRyqDzDWq4iw72A== dependencies: detect-libc "^1.0.2" - hawk "3.1.3" mkdirp "^0.5.1" + needle "^2.2.1" nopt "^4.0.1" + npm-packlist "^1.1.6" npmlog "^4.0.2" - rc "^1.1.7" - request "2.81.0" + rc "^1.2.7" rimraf "^2.6.1" semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" + tar "^4" -node-sass@^4.7.2: - version "4.7.2" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.7.2.tgz#9366778ba1469eb01438a9e8592f4262bcb6794e" +node-releases@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.1.tgz#8fff8aea1cfcad1fb4205f805149054fbf73cafd" + integrity sha512-2UXrBr6gvaebo5TNF84C66qyJJ6r0kxBObgZIDX3D3/mt1ADKiHux3NJPWisq0wxvJJdkjECH+9IIKYViKj71Q== + dependencies: + semver "^5.3.0" + +node-sass@^4.11.0: + version "4.11.0" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.11.0.tgz#183faec398e9cbe93ba43362e2768ca988a6369a" + integrity sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA== dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -5590,10 +5736,10 @@ node-sass@^4.7.2: lodash.mergewith "^4.6.0" meow "^3.7.0" mkdirp "^0.5.1" - nan "^2.3.2" - node-gyp "^3.3.1" + nan "^2.10.0" + node-gyp "^3.8.0" npmlog "^4.0.0" - request "~2.79.0" + request "^2.88.0" sass-graph "^2.2.4" stdout-stream "^1.4.0" "true-case-path" "^1.0.2" @@ -5605,7 +5751,7 @@ nomnom@1.5.2: colors "0.5.x" underscore "1.1.x" -"nomnom@>= 1.5.x", nomnom@^1.8.1: +"nomnom@>= 1.5.x": version "1.8.1" resolved "https://registry.yarnpkg.com/nomnom/-/nomnom-1.8.1.tgz#2151f722472ba79e50a76fc125bb8c8f2e4dc2a7" dependencies: @@ -5615,6 +5761,7 @@ nomnom@1.5.2: "nopt@2 || 3": version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= dependencies: abbrev "1" @@ -5634,36 +5781,31 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-1.0.0.tgz#32d0e472f91ff345701c15a8311018d3b0a90379" - normalize-path@^2.0.1, normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" dependencies: remove-trailing-separator "^1.0.1" -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - -normalize-url@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" +now-and-later@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee" + integrity sha1-vGHLtFbXnLMiB85HygUTb/Ln1u4= dependencies: - prepend-http "^2.0.0" - query-string "^5.0.1" - sort-keys "^2.0.0" + once "^1.3.2" -normalize-url@^1.4.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" +npm-bundled@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" + integrity sha512-m/e6jgWu8/v5niCUKQi9qQl8QdeEduFA96xHDDzFGqly0OOjI7c+60KM/2sppfnUU9JJagf+zs+yGhqSOFj71g== + +npm-packlist@^1.1.6: + version "1.1.12" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.1.12.tgz#22bde2ebc12e72ca482abd67afc51eb49377243a" + integrity sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g== dependencies: - object-assign "^4.0.1" - prepend-http "^1.0.0" - query-string "^4.1.0" - sort-keys "^1.0.0" + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" npm-run-path@^2.0.0: version "2.0.2" @@ -5680,21 +5822,19 @@ npm-run-path@^2.0.0: gauge "~2.7.3" set-blocking "~2.0.0" -num2fraction@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" - number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -nwmatcher@^1.4.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/nwmatcher/-/nwmatcher-1.4.4.tgz#2285631f34a95f0d0395cd900c96ed39b58f346e" +nwsapi@^2.0.7: + version "2.0.9" + resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.0.9.tgz#77ac0cdfdcad52b6a1151a84e73254edc33ed016" + integrity sha512-nlWFSCTYQcHk/6A9FFnfhKc14c3aFhfdNBXgo8Qgi9QTBu/qg3Ww+Uiz9wMzXd1T8GFxPc2QIHB6Qtf2XFryFQ== -oauth-sign@~0.8.1, oauth-sign@~0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== object-assign@^3.0.0: version "3.0.0" @@ -5712,6 +5852,11 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-keys@^1.0.11: + version "1.0.12" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" + integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== + object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" @@ -5722,9 +5867,20 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.defaults@^1.1.0: +object.assign@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= dependencies: array-each "^1.0.1" array-slice "^1.0.0" @@ -5741,6 +5897,7 @@ object.getownpropertydescriptors@^2.0.3: object.map@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" + integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= dependencies: for-own "^1.0.0" make-iterator "^1.0.0" @@ -5758,31 +5915,31 @@ object.pick@^1.2.0, object.pick@^1.3.0: dependencies: isobject "^3.0.1" -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - -onetime@^1.0.0: - version "1.1.0" - resolved "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= dependencies: mimic-fn "^1.0.0" optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + integrity sha1-2j6nRob6IaGaERwybpDrFaAZZoY= dependencies: minimist "~0.0.1" wordwrap "~0.0.2" @@ -5798,30 +5955,17 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -ora@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/ora/-/ora-0.2.3.tgz#37527d220adcd53c39b73571d754156d5db657a4" +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= dependencies: - chalk "^1.1.1" - cli-cursor "^1.0.2" - cli-spinners "^0.1.2" - object-assign "^4.0.1" - -orchestrator@^0.3.0: - version "0.3.8" - resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" - dependencies: - end-of-stream "~0.1.5" - sequencify "~0.0.7" - stream-consume "~0.1.0" - -ordered-read-streams@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + readable-stream "^2.0.1" os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-homedir@^1.0.0: version "1.0.2" @@ -5836,11 +5980,21 @@ os-locale@^1.4.0: os-locale@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + integrity sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA== dependencies: execa "^0.7.0" lcid "^1.0.0" mem "^1.1.0" +os-locale@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.0.1.tgz#3b014fbf01d87f60a1e5348d80fe870dc82c4620" + integrity sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw== + dependencies: + execa "^0.10.0" + lcid "^2.0.0" + mem "^4.0.0" + os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -5848,6 +6002,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.2: osenv@0: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" @@ -5859,19 +6014,10 @@ osenv@^0.1.4: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -p-cancelable@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.3.0.tgz#b9e123800bcebb7ac13a479be195b507b98d30fa" - -p-cancelable@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.0.tgz#bcb41d35bf6097fc4367a065b6eb84b9b124eff0" - -p-each-series@^1.0.0: +p-defer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-1.0.0.tgz#930f3d12dd1f50e7434457a22cd6f04ac6ad7f71" - dependencies: - p-reduce "^1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" @@ -5880,56 +6026,55 @@ p-finally@^1.0.0: p-is-promise@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" - -p-lazy@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-lazy/-/p-lazy-1.0.0.tgz#ec53c802f2ee3ac28f166cc82d0b2b02de27a835" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= p-limit@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" +p-limit@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.0.0.tgz#e624ed54ee8c460a778b3c9f3670496ff8a57aec" + integrity sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A== + dependencies: + p-try "^2.0.0" + p-locate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" dependencies: p-limit "^1.1.0" -p-map@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" - -p-reduce@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-reduce/-/p-reduce-1.0.0.tgz#18c2b0dd936a4690a529f8231f58a0fdb6a47dfa" - -p-timeout@^1.1.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-1.2.1.tgz#5eb3b353b7fce99f101a1038880bb054ebbea386" +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: - p-finally "^1.0.0" + p-limit "^2.0.0" -p-timeout@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" - dependencies: - p-finally "^1.0.0" +p-try@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" + integrity sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ== pako@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + version "1.0.7" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.7.tgz#2473439021b57f1516c82f58be7275ad8ef1bb27" + integrity sha512-3HNK5tW4x8o5mO8RuHZp3Ydw9icZXx0RANAOMzlMzx7LVXhMJ4mo3MOBpzyd7r/+RUu8BmndP47LXT+vzjtWcQ== parallel-transform@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY= dependencies: cyclist "~0.2.2" inherits "^2.0.3" readable-stream "^2.1.5" parse-asn1@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + integrity sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw== dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -5940,6 +6085,7 @@ parse-asn1@^5.0.0: parse-filepath@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" + integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= dependencies: is-absolute "^1.0.0" map-cache "^0.2.0" @@ -5967,13 +6113,20 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-node-version@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.0.tgz#33d9aa8920dcc3c0d33658ec18ce237009a56d53" + integrity sha512-02GTVHD1u0nWc20n2G7WX/PgdhNFG04j5fi1OkaJzPWLTcf6vh6229Lta1wTmXG/7Dg42tCssgkccVt7qvd8Kg== + parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= parse5@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" + integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== pascalcase@^0.1.1: version "0.1.1" @@ -5982,6 +6135,7 @@ pascalcase@^0.1.1: path-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + integrity sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo= path-dirname@^1.0.0: version "1.0.2" @@ -6001,9 +6155,10 @@ path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.1, path-is-inside@^1.0.2: +path-is-inside@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" @@ -6016,10 +6171,12 @@ path-parse@^1.0.5: path-root-regex@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= path-root@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= dependencies: path-root-regex "^0.1.0" @@ -6034,18 +6191,14 @@ path-type@^1.0.0: path-type@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= dependencies: pify "^2.0.0" -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - dependencies: - pify "^3.0.0" - pbkdf2@^3.0.3: - version "3.0.14" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -6053,15 +6206,11 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" -pify@^2.0.0, pify@^2.3.0: +pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -6079,9 +6228,17 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pirates@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.0.tgz#850b18781b4ac6ec58a43c9ed9ec5fe6796addbd" + integrity sha512-8t5BsXy1LUIjn3WWOlOuFDuKswhQb/tkak641lvBgmPOBUQHXveORtlMCp6OdPV1dtuTaEahKA8VNz6uLfKBtA== + dependencies: + node-modules-regexp "^1.0.0" + pkg-conf@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" + integrity sha1-ISZRTKbyq/69FoWW3xi6V4Z/AFg= dependencies: find-up "^2.0.0" load-json-file "^4.0.0" @@ -6089,6 +6246,7 @@ pkg-conf@^2.0.0: pkg-config@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4" + integrity sha1-VX7yLXPaPIg3EHdmxS6tq94pj+Q= dependencies: debug-log "^1.0.0" find-root "^1.0.0" @@ -6097,6 +6255,7 @@ pkg-config@^1.1.0: pkg-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= dependencies: find-up "^1.0.0" @@ -6106,291 +6265,92 @@ pkg-dir@^2.0.0: dependencies: find-up "^2.1.0" +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +please-upgrade-node@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.1.1.tgz#ed320051dfcc5024fae696712c8288993595e8ac" + integrity sha512-KY1uHnQ2NlQHqIJQpnh/i54rKkuxCEBx+voJIS/Mvb+L2iYd2NMotwduhKTMjfC1uKoX3VXOxLjIYG66dfJTVQ== + dependencies: + semver-compare "^1.0.0" + pluralize@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" + integrity sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow== pn@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" + integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" -postcss-calc@^5.2.0: - version "5.3.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" - dependencies: - postcss "^5.0.2" - postcss-message-helpers "^2.0.0" - reduce-css-calc "^1.2.6" - -postcss-colormin@^2.1.8: - version "2.2.2" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" - dependencies: - colormin "^1.0.5" - postcss "^5.0.13" - postcss-value-parser "^3.2.3" - -postcss-convert-values@^2.3.4: - version "2.6.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" - dependencies: - postcss "^5.0.11" - postcss-value-parser "^3.1.2" - -postcss-discard-comments@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" - dependencies: - postcss "^5.0.14" - -postcss-discard-duplicates@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" - dependencies: - postcss "^5.0.4" - -postcss-discard-empty@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" - dependencies: - postcss "^5.0.14" - -postcss-discard-overridden@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" - dependencies: - postcss "^5.0.16" - -postcss-discard-unused@^2.2.1: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" - dependencies: - postcss "^5.0.14" - uniqs "^2.0.0" - -postcss-filter-plugins@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" - dependencies: - postcss "^5.0.4" - uniqid "^4.0.0" - -postcss-merge-idents@^2.1.5: - version "2.1.7" - resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" - dependencies: - has "^1.0.1" - postcss "^5.0.10" - postcss-value-parser "^3.1.1" - -postcss-merge-longhand@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" - dependencies: - postcss "^5.0.4" - -postcss-merge-rules@^2.0.3: - version "2.1.2" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" - dependencies: - browserslist "^1.5.2" - caniuse-api "^1.5.2" - postcss "^5.0.4" - postcss-selector-parser "^2.2.2" - vendors "^1.0.0" - -postcss-message-helpers@^2.0.0: +postcss-modules-extract-imports@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" - -postcss-minify-font-values@^1.0.2: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: - object-assign "^4.0.1" - postcss "^5.0.4" - postcss-value-parser "^3.0.2" + postcss "^7.0.5" -postcss-minify-gradients@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" - dependencies: - postcss "^5.0.12" - postcss-value-parser "^3.3.0" - -postcss-minify-params@^1.0.4: - version "1.2.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.2" - postcss-value-parser "^3.0.2" - uniqs "^2.0.0" - -postcss-minify-selectors@^2.0.4: - version "2.1.1" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" - dependencies: - alphanum-sort "^1.0.2" - has "^1.0.1" - postcss "^5.0.14" - postcss-selector-parser "^2.0.0" - -postcss-modules-extract-imports@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" +postcss-modules-local-by-default@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.2.tgz#edfd6a874d326b52daaa3014bfc11e9e4b0cfafc" + integrity sha512-qghHvHeydUBQ3EQic5NjYryZ5jzXzAYxHR7lZQlCNmjGpJtINRyX/ELnh/7fxBBmHNkEzNkq2l5cV6trfidYng== dependencies: css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.6" + postcss-value-parser "^3.3.1" -postcss-modules-scope@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" +postcss-modules-scope@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.0.1.tgz#2c0f2394cde4cd09147db054c68917e38f6d43a4" + integrity sha512-7+6k9c3/AuZ5c596LJx9n923A/j3nF3ormewYBF1RrIQvjvjXe1xE8V8A1KFyFwXbvnshT6FBZFX0k/F1igneg== dependencies: css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" + postcss "^7.0.6" -postcss-modules-values@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" +postcss-modules-values@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64" + integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w== dependencies: icss-replace-symbols "^1.1.0" - postcss "^6.0.1" + postcss "^7.0.6" -postcss-normalize-charset@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" +postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss@^7.0.5, postcss@^7.0.6: + version "7.0.7" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.7.tgz#2754d073f77acb4ef08f1235c36c5721a7201614" + integrity sha512-HThWSJEPkupqew2fnuQMEI2YcTj/8gMV3n80cMdJsKxfIh5tHf7nM5JigNX6LxVMqo6zkgQNAI88hyFvBk41Pg== dependencies: - postcss "^5.0.5" - -postcss-normalize-url@^3.0.7: - version "3.0.8" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^1.4.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - -postcss-ordered-values@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.1" - -postcss-reduce-idents@^2.2.2: - version "2.4.0" - resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" - dependencies: - postcss "^5.0.4" - postcss-value-parser "^3.0.2" - -postcss-reduce-initial@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" - dependencies: - postcss "^5.0.4" - -postcss-reduce-transforms@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" - dependencies: - has "^1.0.1" - postcss "^5.0.8" - postcss-value-parser "^3.0.1" - -postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: - version "2.2.3" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" - dependencies: - flatten "^1.0.2" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-svgo@^2.1.1: - version "2.1.6" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" - dependencies: - is-svg "^2.0.0" - postcss "^5.0.14" - postcss-value-parser "^3.2.3" - svgo "^0.7.0" - -postcss-unique-selectors@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" - dependencies: - alphanum-sort "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" - -postcss-zindex@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" - dependencies: - has "^1.0.1" - postcss "^5.0.4" - uniqs "^2.0.0" - -postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: - version "5.2.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" - dependencies: - chalk "^1.1.3" - js-base64 "^2.1.9" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@^6.0.1: - version "6.0.20" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.20.tgz#686107e743a12d5530cb68438c590d5b2bf72c3c" - dependencies: - chalk "^2.3.2" + chalk "^2.4.1" source-map "^0.6.1" - supports-color "^5.3.0" + supports-color "^5.5.0" prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" -prepend-http@^1.0.0, prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" -prettier@^1.5.3: - version "1.11.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75" - -pretty-bytes@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-4.0.2.tgz#b2bf82e7350d65c6c33aa95aaa5a4f6327f61cd9" - -pretty-format@^22.4.0: - version "22.4.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-22.4.0.tgz#237b1f7e1c50ed03bc65c03ccc29d7c8bb7beb94" +pretty-format@^23.6.0: + version "23.6.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-23.6.0.tgz#5eaac8eeb6b33b987b7fe6097ea6a8a146ab5760" + integrity sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw== dependencies: ansi-regex "^3.0.0" ansi-styles "^3.2.0" @@ -6398,46 +6358,48 @@ pretty-format@^22.4.0: pretty-hrtime@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE= -private@^0.1.6: - version "0.1.7" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" - -private@^0.1.7, private@~0.1.5: +private@^0.1.6, private@^0.1.8: version "0.1.8" resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" +process-nextick-args@^1.0.7, process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" -process-nextick-args@~1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" - process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= progress@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.0.tgz#8a1be366bf8fc23db2bd23f10c6fe920b4389d1f" + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" +prompts@^0.1.9: + version "0.1.14" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-0.1.14.tgz#a8e15c612c5c9ec8f8111847df3337c9cbd443b2" + integrity sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w== dependencies: - asap "~2.0.3" + kleur "^2.0.1" + sisteransi "^0.1.1" -prop-types@^15.6.0: - version "15.6.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.1.tgz#36644453564255ddda391191fb3a125cbdf654ca" +prop-types@^15.6.2: + version "15.6.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" + integrity sha512-3pboPvLiWD7dkI3qf3KbUe6hKFKa52w+AE0VCqECtf+QHAKgOL37tTaNCnuX1nAAQ4ZhyP+kYVKf8rLmJ/feDQ== dependencies: - fbjs "^0.8.16" loose-envify "^1.3.1" object-assign "^4.1.1" @@ -6448,39 +6410,57 @@ prr@~0.0.0: prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" +psl@^1.1.24, psl@^1.1.28: + version "1.1.31" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184" + integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw== + public-encrypt@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" create-hash "^1.1.0" parse-asn1 "^5.0.0" randombytes "^2.0.1" + safe-buffer "^5.1.2" -pump@^2.0.0, pump@^2.0.1: +pump@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" dependencies: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.3: - version "1.4.0" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: - duplexify "^3.5.3" + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3, pumpify@^1.3.5: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" inherits "^2.0.3" pump "^2.0.0" punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" @@ -6490,44 +6470,25 @@ punycode@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" +punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@~6.3.0: - version "6.3.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" - -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -qs@~6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - -query-string@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" - dependencies: - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" - -query-string@^5.0.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" - dependencies: - decode-uri-component "^0.2.0" - object-assign "^4.1.0" - strict-uri-encode "^1.0.0" +qs@~6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= randomatic@^1.1.3: version "1.1.7" @@ -6539,32 +6500,28 @@ randomatic@^1.1.3: randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + integrity sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" -rc@^1.1.7: - version "1.2.1" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== dependencies: - deep-extend "~0.4.0" + deep-extend "^0.6.0" ini "~1.3.0" minimist "^1.2.0" strip-json-comments "~2.0.1" -read-chunk@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-2.1.0.tgz#6a04c0928005ed9d42e1a6ac5600e19cbc7ff655" - dependencies: - pify "^3.0.0" - safe-buffer "^5.1.1" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -6575,17 +6532,11 @@ read-pkg-up@^1.0.1: read-pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= dependencies: find-up "^2.0.0" read-pkg "^2.0.0" -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -6597,20 +6548,54 @@ read-pkg@^1.0.0: read-pkg@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= dependencies: load-json-file "^2.0.0" normalize-package-data "^2.3.2" path-type "^2.0.0" -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" +read-pkg@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-4.0.1.tgz#963625378f3e1c4d48c85872b5a6ec7d5d093237" + integrity sha1-ljYlN48+HE1IyFhytabsfV0JMjc= dependencies: - load-json-file "^4.0.0" normalize-package-data "^2.3.2" - path-type "^3.0.0" + parse-json "^4.0.0" + pify "^3.0.0" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.4, readable-stream@^2.3.3, readable-stream@^2.3.5: +"readable-stream@1 || 2", readable-stream@^2.0.5, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + dependencies: + 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" + +"readable-stream@2 || 3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.0.tgz#19c2e9c1ce43507c53f6eefbcf1ee3d4aaa786f5" + integrity sha512-vpydAvIJvPODZNagCPuHG87O9JNPtvFEtjHHRVwNVsVVRBqemvPJkc2SYbxJsiZXawJdtZNmkmnsPuE3IgsG0A== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +"readable-stream@>=1.0.33-1 <1.1.0-0": + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.4, readable-stream@^2.3.3: version "2.3.5" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.5.tgz#b4f85003a938cbb6ecbce2a124fb1012bd1a838d" dependencies: @@ -6622,16 +6607,7 @@ read-pkg@^3.0.0: string_decoder "~1.0.3" util-deprecate "~1.0.1" -"readable-stream@>=1.0.33-1 <1.1.0-0": - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -6662,60 +6638,38 @@ readdirp@^2.0.0: set-immediate-shim "^1.0.1" realpath-native@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.0.tgz#7885721a83b43bd5327609f0ddecb2482305fdf0" + version "1.0.2" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560" + integrity sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g== dependencies: util.promisify "^1.0.0" -recast@^0.12.5: - version "0.12.9" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.12.9.tgz#e8e52bdb9691af462ccbd7c15d5a5113647a15f1" - dependencies: - ast-types "0.10.1" - core-js "^2.4.1" - esprima "~4.0.0" - private "~0.1.5" - source-map "~0.6.1" - -recast@^0.14.1: - version "0.14.5" - resolved "https://registry.yarnpkg.com/recast/-/recast-0.14.5.tgz#53f1f6edf7810bdfb39a25d0ff97d315bad7c314" - dependencies: - ast-types "0.11.3" - esprima "~4.0.0" - private "~0.1.5" - source-map "~0.6.1" - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= dependencies: resolve "^1.1.6" redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= dependencies: indent-string "^2.1.0" strip-indent "^1.0.1" -reduce-css-calc@^1.2.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" +regenerate-unicode-properties@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-7.0.0.tgz#107405afcc4a190ec5ed450ecaa00ed0cafa7a4c" + integrity sha512-s5NGghCE4itSlUS+0WUj88G6cfMVMmH8boTPNvABf8od+2dhT9WDlWu8n01raQAJZMOK8Ch6jSexaRO7swd6aw== dependencies: - balanced-match "^0.4.2" - math-expression-evaluator "^1.2.14" - reduce-function-call "^1.0.1" + regenerate "^1.4.0" -reduce-function-call@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" - dependencies: - balanced-match "^0.4.2" - -regenerate@^1.2.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" +regenerate@^1.2.1, regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== regenerator-runtime@^0.10.0: version "0.10.5" @@ -6725,12 +6679,11 @@ regenerator-runtime@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" -regenerator-transform@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" +regenerator-transform@^0.13.3: + version "0.13.3" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.13.3.tgz#264bd9ff38a8ce24b06e0636496b2c856b57bcbb" + integrity sha512-5ipTrZFSq5vU2YoGoww4uaRVAK4wyYC4TSICibbfEPOruUu8FFP7ErV0BjmbIOEpn3O/k9na9UEdYR/3m7N6uA== dependencies: - babel-runtime "^6.18.0" - babel-types "^6.19.0" private "^0.1.6" regex-cache@^0.4.2: @@ -6747,33 +6700,74 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" +regexpp@^2.0.0, regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + regexpu-core@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + integrity sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs= dependencies: regenerate "^1.2.1" regjsgen "^0.2.0" regjsparser "^0.1.4" -regexpu-core@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" +regexpu-core@^4.1.3, regexpu-core@^4.2.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.4.0.tgz#8d43e0d1266883969720345e70c275ee0aec0d32" + integrity sha512-eDDWElbwwI3K0Lo6CqbQbA6FwgtCz4kYTarrri1okfkRLZAqstU+B3voZBCjg8Fl6iq0gXrJG6MvRgLthfvgOA== dependencies: - regenerate "^1.2.1" - regjsgen "^0.2.0" - regjsparser "^0.1.4" + regenerate "^1.4.0" + regenerate-unicode-properties "^7.0.0" + regjsgen "^0.5.0" + regjsparser "^0.6.0" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.0.2" regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + integrity sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc= + +regjsgen@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" + integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== regjsparser@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + integrity sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw= dependencies: jsesc "~0.5.0" -remove-trailing-separator@^1.0.1: +regjsparser@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" + integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + dependencies: + jsesc "~0.5.0" + +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -6798,99 +6792,58 @@ replace-ext@0.0.1: replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" request-promise-core@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + integrity sha1-Pu4AssWqgyOc+wTFcA2jb4HNCLY= dependencies: lodash "^4.13.1" request-promise-native@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5" + integrity sha1-UoF3D2jgyXGeUWP9P6tIIhX0/aU= dependencies: request-promise-core "1.1.1" stealthy-require "^1.1.0" tough-cookie ">=2.3.3" -request@2, request@^2.79.0, request@^2.83.0: - version "2.85.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" +request@^2.85.0, request@^2.87.0, request@^2.88.0: + version "2.88.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== dependencies: aws-sign2 "~0.7.0" - aws4 "^1.6.0" + aws4 "^1.8.0" caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.1" + combined-stream "~1.0.6" + extend "~3.0.2" forever-agent "~0.6.1" - form-data "~2.3.1" - har-validator "~5.0.3" - hawk "~6.0.2" + 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.17" - oauth-sign "~0.8.2" + mime-types "~2.1.19" + oauth-sign "~0.9.0" performance-now "^2.1.0" - qs "~6.5.1" - safe-buffer "^5.1.1" - stringstream "~0.0.5" - tough-cookie "~2.3.3" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.4.3" tunnel-agent "^0.6.0" - uuid "^3.1.0" - -request@2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - 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" - -request@~2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - 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" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" + uuid "^3.3.2" require-directory@^2.1.1: version "2.1.1" @@ -6903,6 +6856,7 @@ require-main-filename@^1.0.1: require-uncached@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + integrity sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM= dependencies: caller-path "^0.1.0" resolve-from "^1.0.0" @@ -6916,6 +6870,7 @@ resolve-cwd@^2.0.0: resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" global-modules "^1.0.0" @@ -6923,11 +6878,19 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: resolve-from@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + integrity sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY= resolve-from@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= + dependencies: + value-or-function "^3.0.0" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -6935,35 +6898,19 @@ resolve-url@^0.2.1: resolve@1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6: - version "1.4.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.5.0, resolve@^1.6.0, resolve@^1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== dependencies: path-parse "^1.0.5" -resolve@^1.1.7, resolve@^1.3.3, resolve@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c" - dependencies: - path-parse "^1.0.5" - -responselike@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" - dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" - restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= dependencies: onetime "^2.0.0" signal-exit "^3.0.2" @@ -6972,86 +6919,94 @@ ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" -right-align@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" - dependencies: - align-text "^0.1.1" - -rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" - dependencies: - glob "^7.0.5" - -rimraf@^2.5.4, rimraf@^2.6.2: +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.2, rimraf@~2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: glob "^7.0.5" -rimraf@~2.2.6: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" +rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: - hash-base "^2.0.0" + hash-base "^3.0.0" inherits "^2.0.1" -run-async@^2.0.0, run-async@^2.2.0: +rsvp@^3.3.3: + version "3.6.2" + resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-3.6.2.tgz#2e96491599a96cde1b515d5674a8f7a91452926a" + integrity sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw== + +run-async@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz#0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0" + integrity sha1-A3GrSuC91yDUFm19/aZP96RFpsA= dependencies: is-promise "^2.1.0" +run-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/run-node/-/run-node-1.0.0.tgz#46b50b946a2aa2d4947ae1d886e9856fd9cabe5e" + integrity sha512-kc120TBlQ3mih1LSzdAJXo4xn/GWS2ec0l3S+syHDXP9uRr0JAT8Qd3mdMuyjqCzeZktgP3try92cEgf9Nks8A== + run-parallel@^1.1.2: - version "1.1.8" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.8.tgz#70e4e788f13a1ad9603254f6a2277f3843a5845c" + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" rw@1: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= -rx-lite-aggregates@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" - dependencies: - rx-lite "*" - -rx-lite@*, rx-lite@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" - -rxjs@^5.4.2, rxjs@^5.5.2: - version "5.5.7" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.7.tgz#afb3d1642b069b2fbf203903d6501d1acb4cda27" +rxjs@^5.5.2: + version "5.5.12" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" + integrity sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw== dependencies: symbol-observable "1.0.1" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +safe-buffer@^5.1.1, safe-buffer@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" dependencies: ret "~0.1.10" +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + sane@^2.0.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.0.tgz#6359cd676f5efd9988b264d8ce3b827dd6b27bec" + version "2.5.2" + resolved "https://registry.yarnpkg.com/sane/-/sane-2.5.2.tgz#b4dc1861c21b427e929507a3e751e2a2cb8ab3fa" + integrity sha1-tNwYYcIbQn6SlQej51HiosuKs/o= dependencies: anymatch "^2.0.0" + capture-exit "^1.2.0" exec-sh "^0.2.0" fb-watchman "^2.0.0" micromatch "^3.1.4" @@ -7059,76 +7014,102 @@ sane@^2.0.0: walker "~1.0.5" watch "~0.18.0" optionalDependencies: - fsevents "^1.1.1" + fsevents "^1.2.3" sass-graph@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" + integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= dependencies: glob "^7.0.0" lodash "^4.0.0" scss-tokenizer "^0.2.3" yargs "^7.0.0" -sass-loader@^6.0.7: - version "6.0.7" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.7.tgz#dd2fdb3e7eeff4a53f35ba6ac408715488353d00" +sass-loader@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.1.0.tgz#16fd5138cb8b424bf8a759528a1972d72aad069d" + integrity sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w== dependencies: clone-deep "^2.0.1" loader-utils "^1.0.1" lodash.tail "^4.1.1" neo-async "^2.5.0" pify "^3.0.0" + semver "^5.5.0" -sax@^1.2.4, sax@~1.2.1: +sax@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" -schema-utils@^0.4.2, schema-utils@^0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" +schema-utils@^0.4.4: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== dependencies: ajv "^6.1.0" ajv-keywords "^3.1.0" -scope-css@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/scope-css/-/scope-css-1.0.5.tgz#9a40a959231ecf683dbef3dedae6a26ab091e1fd" - -scoped-regex@^1.0.0: +schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-1.0.0.tgz#a346bb1acd4207ae70bd7c0c7ca9e566b6baddb8" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +scope-css@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/scope-css/-/scope-css-1.2.1.tgz#c35768bc900cad030a3e0d663a818c0f6a57f40e" + integrity sha512-UjLRmyEYaDNiOS673xlVkZFlVCtckJR/dKgr434VMm7Lb+AOOqXKdAcY7PpGlJYErjXXJzKN7HWo4uRPiZZG0Q== + dependencies: + escaper "^2.5.3" + slugify "^1.3.1" + strip-css-comments "^3.0.0" scss-tokenizer@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= dependencies: js-base64 "^2.1.8" source-map "^0.4.2" +semver-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" + integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= + +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= + dependencies: + sver-compat "^1.5.0" + "semver@2 || 3 || 4 || 5", semver@^5.3.0: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" -semver@^4.1.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" +semver@^5.4.1: + version "5.6.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" + integrity sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg== -semver@^5.4.1, semver@^5.5.0: +semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -sequencify@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= serialize-javascript@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" + version "1.5.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" + integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ== set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -7162,13 +7143,15 @@ set-value@^2.0.0: is-plain-object "^2.0.3" split-string "^3.0.1" -setimmediate@^1.0.4, setimmediate@^1.0.5: +setimmediate@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" @@ -7176,6 +7159,7 @@ sha.js@^2.4.0, sha.js@^2.4.8: shallow-clone@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" + integrity sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA== dependencies: is-extendable "^0.1.1" kind-of "^5.0.0" @@ -7191,43 +7175,41 @@ shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" -shelljs@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.1.tgz#729e038c413a2254c4078b95ed46e0397154a9f1" - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - -sigmund@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" +sisteransi@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" + integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== slice-ansi@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-1.0.0.tgz#044f1a49d8842ff307aad6b505ed178bd950134d" + integrity sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg== dependencies: is-fullwidth-code-point "^2.0.0" -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" +slugify@^1.3.1: + version "1.3.4" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.3.4.tgz#78d2792d7222b55cd9fc81fa018df99af779efeb" + integrity sha512-KP0ZYk5hJNBS8/eIjGkFDCzGQIoZ1mnfQRYS5WM3273z+fxGWXeN0fkwf2ebEweydv9tioZIHGZKoF21U07/nw== snapdragon-node@^2.0.1: version "2.1.1" @@ -7256,33 +7238,10 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^2.0.0" -sntp@1.x.x: - version "1.0.9" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" - dependencies: - hoek "2.x.x" - -sntp@2.x.x: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" - dependencies: - hoek "4.x.x" - -sort-keys@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" - dependencies: - is-plain-obj "^1.0.0" - -sort-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" - dependencies: - is-plain-obj "^1.0.0" - source-list-map@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.1" @@ -7297,33 +7256,37 @@ source-map-resolve@^0.5.0: source-map-support@^0.4.15: version "0.4.18" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + integrity sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA== dependencies: source-map "^0.5.6" -source-map-support@^0.5.0: - version "0.5.4" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.4.tgz#54456efa89caa9270af7cd624cc2f123e51fbae8" +source-map-support@^0.5.6, source-map-support@^0.5.9, source-map-support@~0.5.6: + version "0.5.9" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.9.tgz#41bc953b2534267ea2d605bccfa7bfa3111ced5f" + integrity sha512-gR6Rw4MvUlYy83vP0vxoVNzM6t8MUXqNuRsuBmBHQDu1Fh6X015FrLdgoDKcNdkwGubozq0P4N0Q37UyFVr1EA== dependencies: + buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" -source-map@^0.4.2, source-map@^0.4.4: +source-map@^0.4.2: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + integrity sha1-66T12pwNyZneaAMti092FzZSA2s= dependencies: amdefine ">=0.0.4" -source-map@^0.5.3, source-map@^0.5.6: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - -source-map@^0.5.7, source-map@~0.5.1: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" +source-map@^0.5.6: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" + source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -7376,38 +7339,47 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -ssri@^5.2.4: - version "5.3.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" +ssri@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== dependencies: - safe-buffer "^5.1.1" + figgy-pudding "^3.5.1" + +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= stack-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.1.tgz#d4f33ab54e8e38778b0ca5cfd3b3afb12db68620" + version "1.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== -standard-engine@~8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-8.0.1.tgz#0b77be8d7ab963675717dbeac1ef1d6675fb62f0" +standard-engine@~9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-9.0.0.tgz#d3a3d74c4c1b91f51a1e66362465261ca7610316" + integrity sha512-ZfNfCWZ2Xq67VNvKMPiVMKHnMdvxYzvZkf1AH8/cw2NLDBm5LRsxMqvEJpsjLI/dUosZ3Z1d6JlHDp5rAvvk2w== dependencies: deglob "^2.1.0" get-stdin "^6.0.0" minimist "^1.1.0" pkg-conf "^2.0.0" -standard@^11.0.1: - version "11.0.1" - resolved "https://registry.yarnpkg.com/standard/-/standard-11.0.1.tgz#49be40c76f1d564964b22bbf7309929ad0335e29" +standard@^12.0.1: + version "12.0.1" + resolved "https://registry.yarnpkg.com/standard/-/standard-12.0.1.tgz#0fc5a8aa6c34c546c5562aae644242b24dae2e61" + integrity sha512-UqdHjh87OG2gUrNCSM4QRLF5n9h3TFPwrCNyVlkqu31Hej0L/rc8hzKqVvkb2W3x0WMq7PzZdkLfEcBhVOR6lg== dependencies: - eslint "~4.18.0" - eslint-config-standard "11.0.0" - eslint-config-standard-jsx "5.0.0" - eslint-plugin-import "~2.9.0" - eslint-plugin-node "~6.0.0" - eslint-plugin-promise "~3.7.0" - eslint-plugin-react "~7.7.0" - eslint-plugin-standard "~3.0.1" - standard-engine "~8.0.0" + eslint "~5.4.0" + eslint-config-standard "12.0.0" + eslint-config-standard-jsx "6.0.2" + eslint-plugin-import "~2.14.0" + eslint-plugin-node "~7.0.1" + eslint-plugin-promise "~4.0.0" + eslint-plugin-react "~7.11.1" + eslint-plugin-standard "~4.0.0" + standard-engine "~9.0.0" static-extend@^0.1.1: version "0.1.2" @@ -7417,40 +7389,46 @@ static-extend@^0.1.1: object-copy "^0.1.0" stdout-stream@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== dependencies: readable-stream "^2.0.1" stealthy-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= stream-browserify@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + integrity sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds= dependencies: inherits "~2.0.1" readable-stream "^2.0.2" -stream-consume@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" - stream-each@^1.1.0: - version "1.2.2" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" +stream-exhaust@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + stream-http@^2.7.2: - version "2.8.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4" + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" - readable-stream "^2.3.3" + readable-stream "^2.3.6" to-arraybuffer "^1.0.0" xtend "^4.0.0" @@ -7458,27 +7436,14 @@ stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" -stream-to-observable@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/stream-to-observable/-/stream-to-observable-0.2.0.tgz#59d6ea393d87c2c0ddac10aa0d561bc6ba6f0e10" - dependencies: - any-observable "^0.2.0" - -strict-uri-encode@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" - string-length@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/string-length/-/string-length-2.0.0.tgz#d40dbb686a3ace960c1cffca562bf2c45f8363ed" + integrity sha1-1A27aGo6zpYMHP/KVivyxF+DY+0= dependencies: astral-regex "^1.0.0" strip-ansi "^4.0.0" -string-template@~0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -7494,9 +7459,10 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string_decoder@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.0.tgz#384f322ee8a848e500effde99901bba849c5d403" +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d" + integrity sha512-6YqyX6ZWEYguAxgZzHGL7SsCeGx3V2TtOTqZz1xSTSWnqsbWwbptafNyvf/ACquZUXV3DANr5BDIwNYe1mN42w== dependencies: safe-buffer "~5.1.0" @@ -7510,9 +7476,12 @@ string_decoder@~1.0.3: dependencies: safe-buffer "~5.1.0" -stringstream@~0.0.4, stringstream@~0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" @@ -7530,30 +7499,23 @@ strip-ansi@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" -strip-bom-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" - dependencies: - first-chunk-stream "^2.0.0" - strip-bom "^2.0.0" - strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" -strip-bom@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" - dependencies: - first-chunk-stream "^1.0.0" - is-utf8 "^0.2.0" - strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" dependencies: is-utf8 "^0.2.0" +strip-css-comments@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-css-comments/-/strip-css-comments-3.0.0.tgz#7a5625eff8a2b226cf8947a11254da96e13dae89" + integrity sha1-elYl7/iisibPiUehElTaluE9rok= + dependencies: + is-regexp "^1.0.0" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -7561,14 +7523,11 @@ strip-eof@^1.0.0: strip-indent@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= dependencies: get-stdin "^4.0.1" -strip-indent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" - -strip-json-comments@~2.0.1: +strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" @@ -7576,54 +7535,51 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.2, supports-color@^3.2.3: +supports-color@^3.1.2: version "3.2.3" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= dependencies: has-flag "^1.0.0" -supports-color@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" - dependencies: - has-flag "^2.0.0" - supports-color@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" dependencies: has-flag "^3.0.0" -svgo@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" +supports-color@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: - 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" + has-flag "^3.0.0" + +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= + dependencies: + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" symbol-observable@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4" - -symbol-observable@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-0.2.4.tgz#95a83db26186d6af7e7a18dbd9760a2f86d08f40" + integrity sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ= symbol-tree@^3.2.2: version "3.2.2" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6" + integrity sha1-rifbOPZgp64uHDt9G8KQgZuFGeY= -table@4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/table/-/table-4.0.2.tgz#a33447375391e766ad34d3486e6e2aedc84d2e36" +table@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/table/-/table-4.0.3.tgz#00b5e2b602f1794b9acaf9ca908a76386a7813bc" + integrity sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg== dependencies: - ajv "^5.2.3" - ajv-keywords "^2.1.0" + ajv "^6.0.1" + ajv-keywords "^3.0.0" chalk "^2.1.0" lodash "^4.17.4" slice-ansi "1.0.0" @@ -7633,66 +7589,112 @@ tapable@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.0.0.tgz#cbb639d9002eed9c6b5975eb20598d7936f1f9f2" -tar-pack@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" +tapable@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.1.tgz#4d297923c5a72a42360de2ab52dadfaaec00018e" + integrity sha512-9I2ydhj8Z9veORCw5PRm4u9uebCn0mcCa6scWoNcbZ6dAtoo2618u9UUzxgmsCOreJpqDDuv61LvwofW7hLcBA== -tar@^2.0.0, tar@^2.2.1: +tar@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + integrity sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE= dependencies: block-stream "*" fstream "^1.0.2" inherits "2" -temp@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" +tar@^4: + version "4.4.8" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.8.tgz#b19eec3fde2a96e64666df9fdb40c5ca1bc3747d" + integrity sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ== dependencies: - os-tmpdir "^1.0.0" - rimraf "~2.2.6" + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.3.4" + minizlib "^1.1.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.2" -test-exclude@^4.1.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa" +terser-webpack-plugin@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz#cf7c25a1eee25bf121f4a587bb9e004e3f80e528" + integrity sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA== + dependencies: + cacache "^11.0.2" + find-cache-dir "^2.0.0" + schema-utils "^1.0.0" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + terser "^3.8.1" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + +terser@^3.8.1: + version "3.11.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-3.11.0.tgz#60782893e1f4d6788acc696351f40636d0e37af0" + integrity sha512-5iLMdhEPIq3zFWskpmbzmKwMQixKmTYwY3Ox9pjtSklBLnHiuQ0GKJLhL1HSYtyffHM3/lDIFBnb82m9D7ewwQ== + dependencies: + commander "~2.17.1" + source-map "~0.6.1" + source-map-support "~0.5.6" + +test-exclude@^4.2.1: + version "4.2.3" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.3.tgz#a9a5e64474e4398339245a0a769ad7c2f4a97c20" + integrity sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA== dependencies: arrify "^1.0.1" - micromatch "^3.1.8" + micromatch "^2.3.11" object-assign "^4.1.0" read-pkg-up "^1.0.1" require-main-filename "^1.0.1" -text-table@^0.2.0, text-table@~0.2.0: +text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -textextensions@2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.2.0.tgz#38ac676151285b658654581987a0ce1a4490d286" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= throat@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" + integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= -through2@*, through2@^2.0.0: +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + integrity sha1-YLxVoNrLdghdsfna6Zq0P4PWIuw= + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@*: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.0.tgz#468b461df9cd9fcc170f22ebf6852e467e578ff2" + integrity sha512-8B+sevlqP4OiCjonI1Zw03Sf8PuV1eRsYQgLad5eonILOdyeRsY27A/2Ze8IlvlMvq31OH+3fz/styI7Ya62yQ== + dependencies: + readable-stream "2 || 3" + xtend "~4.0.1" + +through2@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" dependencies: readable-stream "^2.1.5" xtend "~4.0.1" -through2@^0.6.1, through2@~0.6.3: +through2@^2.0.3, through2@~2.0.0: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through2@~0.6.3: version "0.6.5" resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + integrity sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg= dependencies: readable-stream ">=1.0.33-1 <1.1.0-0" xtend ">=4.0.0 <4.1.0-0" @@ -7700,45 +7702,53 @@ through2@^0.6.1, through2@~0.6.3: through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - -tildify@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" - dependencies: - os-homedir "^1.0.0" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" -timed-out@^4.0.0, timed-out@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" - timers-browserify@^2.0.4: - version "2.0.6" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" + version "2.0.10" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae" + integrity sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg== dependencies: setimmediate "^1.0.4" tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" tmpl@1.0.x: version "1.0.4" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" + integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= -to-fast-properties@^1.0.1, to-fast-properties@^1.0.3: +to-fast-properties@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + to-object-path@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" @@ -7752,7 +7762,7 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" -to-regex@^3.0.1: +to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" dependencies: @@ -7761,41 +7771,61 @@ to-regex@^3.0.1: regex-not "^1.0.2" safe-regex "^1.1.0" -tough-cookie@>=2.3.3, tough-cookie@^2.3.3, tough-cookie@~2.3.3: - version "2.3.4" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= dependencies: + through2 "^2.0.3" + +tough-cookie@>=2.3.3, tough-cookie@^2.3.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tough-cookie@~2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + dependencies: + psl "^1.1.24" punycode "^1.4.1" -tough-cookie@~2.3.0: - version "2.3.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" - dependencies: - punycode "^1.4.1" - -tr46@^1.0.0: +tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= dependencies: punycode "^2.1.0" trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" "true-case-path@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== dependencies: - glob "^6.0.4" + glob "^7.1.2" + +tslib@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" + integrity sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ== tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= tunnel-agent@^0.6.0: version "0.6.0" @@ -7803,10 +7833,6 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -7821,50 +7847,18 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -ua-parser-js@^0.7.9: - version "0.7.17" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.17.tgz#e9ec5f9498b9ec910e7ae3ac626a805c4d09ecac" - -uglify-es@^3.3.4: - version "3.3.9" - resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" +uglify-js@^3.1.4: + version "3.4.9" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.9.tgz#af02f180c1207d76432e473ed24a28f4a782bae3" + integrity sha512-8CJsbKOtEbnJsTyv6LE6m6ZKniqMiFWmm9sRbopbkGs3gMPPfd3Fh8iIA4Ykv5MgaTbqHr4BaoGLJLZNhsrW1Q== dependencies: - commander "~2.13.0" + commander "~2.17.1" source-map "~0.6.1" -uglify-js@^2.6: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-to-browserify@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" - -uglifyjs-webpack-plugin@^1.1.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz#5eec941b2e9b8538be0a20fc6eda25b14c7c1043" - dependencies: - cacache "^10.0.4" - find-cache-dir "^1.0.0" - schema-utils "^0.4.5" - serialize-javascript "^1.4.0" - source-map "^0.6.1" - uglify-es "^3.3.4" - webpack-sources "^1.1.0" - worker-farm "^1.5.2" - -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - unc-path-regex@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= underscore@1.1.x: version "1.1.7" @@ -7874,6 +7868,49 @@ underscore@~1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.6.0.tgz#8b38b10cacdef63337b8b24e4ff86d45aea529a8" +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= + +undertaker@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.0.tgz#339da4646252d082dc378e708067299750e11b49" + integrity sha1-M52kZGJS0ILcN45wgGcpl1DhG0k= + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.0.2.tgz#9f1dc76926d6ccf452310564fd834ace059663d4" + integrity sha512-Rx7yODZC1L/T8XKo/2kNzVAQaRE88AaMvI1EF/Xnj3GW2wzN6fop9DDWuFAKUVFH7vozkz26DzP0qyWLKLIVPQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.4.tgz#5a533f31b4317ea76f17d807fa0d116546111dd0" + integrity sha512-2WSLa6OdYd2ng8oqiGIWnJqyFArvhn+5vgx5GTxMbUYjCYKUcuKS62YLFF0R/BDGlB1yzXjQOLtPAfHsgirEpg== + union-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" @@ -7886,32 +7923,29 @@ union-value@^1.0.0: uniq@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - -uniqid@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" - dependencies: - macaddress "^0.2.8" - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= unique-filename@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + version "2.0.1" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.1.tgz#5e9edc6d1ce8fb264db18a507ef9bd8544451ca6" + integrity sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg== dependencies: imurmurhash "^0.1.4" -unique-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + integrity sha1-WqADz76Uxf+GbE59ZouxxNuts2k= + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" unset-value@^1.0.0: version "1.0.0" @@ -7920,37 +7954,26 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -untildify@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.2.tgz#7f1f302055b3fea0f3e81dc78eb36766cb65e3f1" +upath@^1.0.5: + version "1.1.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" + integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== -upath@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - dependencies: - prepend-http "^2.0.0" - -url-to-options@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" - url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" querystring "0.2.0" @@ -7963,11 +7986,7 @@ use@^2.0.0: isobject "^3.0.0" lazy-cache "^2.0.2" -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7978,29 +7997,36 @@ util.promisify@^1.0.0: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" -util@0.10.3, util@^0.10.3: +util@0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" -uuid@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" - -uuid@^3.1.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" - -v8-compile-cache@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" - -v8flags@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== dependencies: - user-home "^1.1.1" + inherits "2.0.3" + +uuid@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" + integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== + +v8-compile-cache@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" + integrity sha512-1wFuMUIM16MDJRCrpbpuEPTUGmM5QMUg0cr3KFwra2XgOgFcPGDQHDh3CszSCD2Zewc/dh/pamNEW8CbfDebUw== + +v8flags@^3.0.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.1.tgz#42259a1461c08397e37fe1d4f1cfb59cad85a053" + integrity sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ== + dependencies: + homedir-polyfill "^1.0.1" validate-npm-package-license@^3.0.1: version "3.0.1" @@ -8009,9 +8035,10 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -vendors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= verror@1.10.0: version "1.10.0" @@ -8021,36 +8048,41 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vinyl-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-2.0.0.tgz#a7ebf5ffbefda1b7d18d140fcb07b223efb6751a" +vinyl-fs@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== dependencies: - graceful-fs "^4.1.2" - pify "^2.3.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - strip-bom-stream "^2.0.0" - vinyl "^1.1.0" + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" -vinyl-fs@^0.3.0: - version "0.3.14" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= dependencies: - defaults "^1.0.0" - glob-stream "^3.1.5" - glob-watcher "^0.0.6" - graceful-fs "^3.0.0" - mkdirp "^0.5.0" - strip-bom "^1.0.0" - through2 "^0.6.1" - vinyl "^0.4.0" - -vinyl@^0.4.0: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" vinyl@^0.5.0: version "0.5.3" @@ -8060,17 +8092,10 @@ vinyl@^0.5.0: clone-stats "^0.0.1" replace-ext "0.0.1" -vinyl@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" - dependencies: - clone "^1.0.0" - clone-stats "^0.0.1" - replace-ext "0.0.1" - -vinyl@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.1.0.tgz#021f9c2cf951d6b939943c89eb5ee5add4fd924c" +vinyl@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" + integrity sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg== dependencies: clone "^2.1.1" clone-buffer "^1.0.0" @@ -8082,98 +8107,92 @@ vinyl@^2.0.1: vm-browserify@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + integrity sha1-XX6kW7755Kb/ZflUOOCofDV9WnM= dependencies: indexof "0.0.1" w3c-hr-time@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz#82ac2bff63d950ea9e3189a58a65625fedf19045" + integrity sha1-gqwr/2PZUOqeMYmlimViX+3xkEU= dependencies: browser-process-hrtime "^0.1.2" walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" + integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs= dependencies: makeerror "1.0.x" watch@~0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/watch/-/watch-0.18.0.tgz#28095476c6df7c90c963138990c0a5423eb4b986" + integrity sha1-KAlUdsbffJDJYxOJkMClQj60uYY= dependencies: exec-sh "^0.2.0" minimist "^1.2.0" watchpack@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" + version "1.6.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" -webidl-conversions@^4.0.1, webidl-conversions@^4.0.2: +webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" + integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webpack-addons@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/webpack-addons/-/webpack-addons-1.1.5.tgz#2b178dfe873fb6e75e40a819fa5c26e4a9bc837a" +webpack-cli@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.1.2.tgz#17d7e01b77f89f884a2bbf9db545f0f6a648e746" + integrity sha512-Cnqo7CeqeSvC6PTdts+dywNi5CRlIPbLx1AoUPK2T6vC1YAugMG3IOoO9DmEscd+Dghw7uRlnzV1KwOe5IrtgQ== dependencies: - jscodeshift "^0.4.0" - -webpack-cli@^2.0.12: - version "2.0.12" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-2.0.12.tgz#64db876d044f03d8d6544281854b71a3a3c77dd3" - dependencies: - chalk "^2.3.2" + chalk "^2.4.1" cross-spawn "^6.0.5" - diff "^3.5.0" - enhanced-resolve "^4.0.0" - glob-all "^3.1.0" - global-modules "^1.0.0" - got "^8.2.0" - inquirer "^5.1.0" - interpret "^1.0.4" - jscodeshift "^0.5.0" - listr "^0.13.0" + enhanced-resolve "^4.1.0" + global-modules-path "^2.3.0" + import-local "^2.0.0" + interpret "^1.1.0" loader-utils "^1.1.0" - lodash "^4.17.5" - log-symbols "^2.2.0" - mkdirp "^0.5.1" - p-each-series "^1.0.0" - p-lazy "^1.0.0" - prettier "^1.5.3" - resolve-cwd "^2.0.0" - supports-color "^5.3.0" - v8-compile-cache "^1.1.2" - webpack-addons "^1.1.5" - yargs "^11.0.0" - yeoman-environment "^2.0.0" - yeoman-generator "^2.0.3" + supports-color "^5.5.0" + v8-compile-cache "^2.0.2" + yargs "^12.0.2" -webpack-node-externals@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.6.0.tgz#232c62ec6092b100635a3d29d83c1747128df9bd" +webpack-node-externals@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" + integrity sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg== -webpack-sources@^1.0.1, webpack-sources@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" +webpack-sources@^1.1.0, webpack-sources@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85" + integrity sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.1.1.tgz#44e4d6a869dd36fdfc0b227f9bd865a4bccfd81c" +webpack@^4.27.1: + version "4.27.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.27.1.tgz#5f2e2db446d2266376fa15d7d2277a1a9c2e12bb" + integrity sha512-WArHiLvHrlfyRM8i7f+2SFbr/XbQ0bXqTkPF8JpHOzub5482Y3wx7rEO8stuLGOKOgZJcqcisLhD7LrM/+fVMw== dependencies: - acorn "^5.0.0" + "@webassemblyjs/ast" "1.7.11" + "@webassemblyjs/helper-module-context" "1.7.11" + "@webassemblyjs/wasm-edit" "1.7.11" + "@webassemblyjs/wasm-parser" "1.7.11" + acorn "^5.6.2" acorn-dynamic-import "^3.0.0" ajv "^6.1.0" ajv-keywords "^3.1.0" - chrome-trace-event "^0.1.1" - enhanced-resolve "^4.0.0" - eslint-scope "^3.7.1" + chrome-trace-event "^1.0.0" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.0" + json-parse-better-errors "^1.0.2" loader-runner "^2.3.0" loader-utils "^1.1.0" memory-fs "~0.4.1" @@ -8181,33 +8200,41 @@ webpack@^4.1.1: mkdirp "~0.5.0" neo-async "^2.5.0" node-libs-browser "^2.0.0" - schema-utils "^0.4.2" - tapable "^1.0.0" - uglifyjs-webpack-plugin "^1.1.1" + schema-utils "^0.4.4" + tapable "^1.1.0" + terser-webpack-plugin "^1.1.0" watchpack "^1.5.0" - webpack-sources "^1.0.1" + webpack-sources "^1.3.0" whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz#57c235bc8657e914d24e1a397d3c82daee0a6ba3" + version "1.0.5" + resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" + integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: - iconv-lite "0.4.19" + iconv-lite "0.4.24" -whatwg-fetch@>=0.10.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" +whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" + integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-url@^6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.4.0.tgz#08fdf2b9e872783a7a1f6216260a1d66cc722e08" +whatwg-url@^6.4.1: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== dependencies: lodash.sortby "^4.7.0" - tr46 "^1.0.0" - webidl-conversions "^4.0.1" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" -whet.extend@~0.9.9: - version "0.9.9" - resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" +whatwg-url@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.0.0.tgz#fde926fa54a599f3adf82dff25a9f7be02dc6edd" + integrity sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" which-module@^1.0.0: version "1.0.0" @@ -8217,7 +8244,14 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@1, which@^1.2.12, which@^1.2.14, which@^1.2.9, which@^1.3.0: +which@1, which@^1.2.12, which@^1.2.14, which@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^1.2.9: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: @@ -8229,17 +8263,10 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2" -window-size@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" - -wordwrap@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" - wordwrap@~0.0.2: version "0.0.3" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + integrity sha1-o9XabNXAvAAI03I0u68b7WMFkQc= wordwrap@~1.0.0: version "1.0.0" @@ -8248,6 +8275,7 @@ wordwrap@~1.0.0: worker-farm@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + integrity sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ== dependencies: errno "~0.1.7" @@ -8262,17 +8290,10 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write-file-atomic@^1.2.0: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - write-file-atomic@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" @@ -8281,23 +8302,21 @@ write-file-atomic@^2.1.0: write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + integrity sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c= dependencies: mkdirp "^0.5.1" -ws@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289" +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== dependencies: async-limiter "~1.0.0" - safe-buffer "~5.1.0" xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - -xmlhttprequest@1: - version "1.8.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== "xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" @@ -8307,52 +8326,45 @@ y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" -y18n@^4.0.0: +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" +yallist@^3.0.0, yallist@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" + integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" dependencies: camelcase "^3.0.0" -yargs-parser@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" - dependencies: - camelcase "^4.1.0" - yargs-parser@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077" + integrity sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc= dependencies: camelcase "^4.1.0" -yargs@^10.0.3: - version "10.1.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" - dependencies: - cliui "^4.0.0" - decamelize "^1.1.1" - find-up "^2.1.0" - get-caller-file "^1.0.1" - os-locale "^2.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1" - yargs-parser "^8.1.0" - yargs@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.0.0.tgz#c052931006c5eee74610e5fc0354bedfd08a201b" + version "11.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" + integrity sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A== dependencies: cliui "^4.0.0" decamelize "^1.1.1" @@ -8367,7 +8379,25 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^7.0.0: +yargs@^12.0.2: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^7.0.0, yargs@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" dependencies: @@ -8385,72 +8415,10 @@ yargs@^7.0.0: y18n "^3.2.1" yargs-parser "^5.0.0" -yargs@~1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-1.2.6.tgz#9c7b4a82fd5d595b2bf17ab6dcc43135432fe34b" +yarn-upgrade-all@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/yarn-upgrade-all/-/yarn-upgrade-all-0.5.0.tgz#065d1210b37532afe0991da31e888368ebc33a30" + integrity sha512-gSPGrmvpIGRu/48/qwsCt73AvKe0mul9KtHg0WVwftDPUlhRnOwqksmzyvsqmvKfngqvYAGzMLz6n4nTmaQWfQ== dependencies: - minimist "^0.1.0" - -yargs@~3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" - dependencies: - camelcase "^1.0.2" - cliui "^2.1.0" - decamelize "^1.0.0" - window-size "0.1.0" - -yarn-upgrade-all@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/yarn-upgrade-all/-/yarn-upgrade-all-0.3.0.tgz#428bd6af25116fb9c4f7c7f716caaaaed2451507" - dependencies: - chalk "^2.3.0" - commander "^2.12.2" - -yeoman-environment@^2.0.0, yeoman-environment@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-2.0.5.tgz#84f22bafa84088971fe99ea85f654a3a3dd2b693" - dependencies: - chalk "^2.1.0" - debug "^3.1.0" - diff "^3.3.1" - escape-string-regexp "^1.0.2" - globby "^6.1.0" - grouped-queue "^0.3.3" - inquirer "^3.3.0" - is-scoped "^1.0.0" - lodash "^4.17.4" - log-symbols "^2.1.0" - mem-fs "^1.1.0" - text-table "^0.2.0" - untildify "^3.0.2" - -yeoman-generator@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-2.0.3.tgz#19426ed22687ffe05d31526c3f1c2cf67ba768f3" - dependencies: - async "^2.6.0" - chalk "^2.3.0" - cli-table "^0.3.1" - cross-spawn "^5.1.0" - dargs "^5.1.0" - dateformat "^3.0.2" - debug "^3.1.0" - detect-conflict "^1.0.0" - error "^7.0.2" - find-up "^2.1.0" - github-username "^4.0.0" - istextorbinary "^2.1.0" - lodash "^4.17.4" - make-dir "^1.1.0" - mem-fs-editor "^3.0.2" - minimist "^1.2.0" - pretty-bytes "^4.0.2" - read-chunk "^2.1.0" - read-pkg-up "^3.0.0" - rimraf "^2.6.2" - run-async "^2.0.0" - shelljs "^0.8.0" - text-table "^0.2.0" - through2 "^2.0.0" - yeoman-environment "^2.0.5" + chalk "^2.4.1" + commander "^2.19.0" From e25e8af135dddc239737f218795260d3cf4ea559 Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Mon, 17 Dec 2018 16:27:46 +0800 Subject: [PATCH 017/103] Support latest version of font awesome --- src/diagrams/flowchart/flowRenderer.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/diagrams/flowchart/flowRenderer.js b/src/diagrams/flowchart/flowRenderer.js index 28c010218..ae6b1caed 100644 --- a/src/diagrams/flowchart/flowRenderer.js +++ b/src/diagrams/flowchart/flowRenderer.js @@ -67,9 +67,7 @@ export const addVertices = function (vert, g) { let labelTypeStr = '' if (conf.htmlLabels) { labelTypeStr = 'html' - verticeText = verticeText.replace(/fa:fa[\w-]+/g, function (s) { - return '' - }) + verticeText = verticeText.replace(/fa[lrsb]?:fa-[\w-]+/g, s => ``) if (vertice.link) { verticeText = '' + verticeText + '' } From 9ecee6b16343ece7072da3de78c7df43c26a9d15 Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Mon, 17 Dec 2018 17:31:22 +0800 Subject: [PATCH 018/103] Generate jison files --- package.json | 2 +- src/diagrams/class/parser/classDiagram.js | 20 +++++++++---------- src/diagrams/flowchart/parser/flow.js | 20 +++++++++---------- src/diagrams/gantt/parser/gantt.js | 20 +++++++++---------- src/diagrams/git/parser/gitGraph.js | 20 +++++++++---------- .../sequence/parser/sequenceDiagram.js | 20 +++++++++---------- 6 files changed, 51 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index 667a9de0d..77dfaae21 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "lint": "standard", "test": "yarn lint && jest", "test:watch": "jest --watch", - "jison": "node -r babel-register node_modules/.bin/gulp jison", + "jison": "node -r @babel/register node_modules/.bin/gulp jison", "prepublishOnly": "yarn build && yarn release && yarn test", "prepush": "yarn test" }, diff --git a/src/diagrams/class/parser/classDiagram.js b/src/diagrams/class/parser/classDiagram.js index 5ff57a54d..5fdd5f257 100644 --- a/src/diagrams/class/parser/classDiagram.js +++ b/src/diagrams/class/parser/classDiagram.js @@ -73,7 +73,7 @@ */ var parser = (function(){ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,11],$V1=[1,12],$V2=[1,13],$V3=[1,15],$V4=[1,16],$V5=[1,17],$V6=[6,8],$V7=[1,26],$V8=[1,27],$V9=[1,28],$Va=[1,29],$Vb=[1,30],$Vc=[1,31],$Vd=[6,8,13,17,23,26,27,28,29,30,31],$Ve=[6,8,13,17,23,26,27,28,29,30,31,45,46,47],$Vf=[23,45,46,47],$Vg=[23,30,31,45,46,47],$Vh=[23,26,27,28,29,45,46,47],$Vi=[6,8,13],$Vj=[1,46]; -var parser = {trace: function trace() { }, +var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"mermaidDoc":3,"graphConfig":4,"CLASS_DIAGRAM":5,"NEWLINE":6,"statements":7,"EOF":8,"statement":9,"className":10,"alphaNumToken":11,"relationStatement":12,"LABEL":13,"classStatement":14,"methodStatement":15,"CLASS":16,"STRUCT_START":17,"members":18,"STRUCT_STOP":19,"MEMBER":20,"SEPARATOR":21,"relation":22,"STR":23,"relationType":24,"lineType":25,"AGGREGATION":26,"EXTENSION":27,"COMPOSITION":28,"DEPENDENCY":29,"LINE":30,"DOTTED_LINE":31,"commentToken":32,"textToken":33,"graphCodeTokens":34,"textNoTagsToken":35,"TAGSTART":36,"TAGEND":37,"==":38,"--":39,"PCT":40,"DEFAULT":41,"SPACE":42,"MINUS":43,"keywords":44,"UNICODE_TEXT":45,"NUM":46,"ALPHA":47,"$accept":0,"$end":1}, terminals_: {2:"error",5:"CLASS_DIAGRAM",6:"NEWLINE",8:"EOF",13:"LABEL",16:"CLASS",17:"STRUCT_START",19:"STRUCT_STOP",20:"MEMBER",21:"SEPARATOR",23:"STR",26:"AGGREGATION",27:"EXTENSION",28:"COMPOSITION",29:"DEPENDENCY",30:"LINE",31:"DOTTED_LINE",34:"graphCodeTokens",36:"TAGSTART",37:"TAGEND",38:"==",39:"--",40:"PCT",41:"DEFAULT",42:"SPACE",43:"MINUS",44:"keywords",45:"UNICODE_TEXT",46:"NUM",47:"ALPHA"}, @@ -162,7 +162,7 @@ break; }, table: [{3:1,4:2,5:[1,3]},{1:[3]},{1:[2,1]},{6:[1,4]},{7:5,9:6,10:10,11:14,12:7,14:8,15:9,16:$V0,20:$V1,21:$V2,45:$V3,46:$V4,47:$V5},{8:[1,18]},{6:[1,19],8:[2,3]},o($V6,[2,7],{13:[1,20]}),o($V6,[2,9]),o($V6,[2,10]),o($V6,[2,15],{22:21,24:24,25:25,13:[1,23],23:[1,22],26:$V7,27:$V8,28:$V9,29:$Va,30:$Vb,31:$Vc}),{10:32,11:14,45:$V3,46:$V4,47:$V5},o($V6,[2,17]),o($V6,[2,18]),o($Vd,[2,6],{11:14,10:33,45:$V3,46:$V4,47:$V5}),o($Ve,[2,46]),o($Ve,[2,47]),o($Ve,[2,48]),{1:[2,2]},{7:34,9:6,10:10,11:14,12:7,14:8,15:9,16:$V0,20:$V1,21:$V2,45:$V3,46:$V4,47:$V5},o($V6,[2,8]),{10:35,11:14,23:[1,36],45:$V3,46:$V4,47:$V5},{22:37,24:24,25:25,26:$V7,27:$V8,28:$V9,29:$Va,30:$Vb,31:$Vc},o($V6,[2,16]),{25:38,30:$Vb,31:$Vc},o($Vf,[2,26],{24:39,26:$V7,27:$V8,28:$V9,29:$Va}),o($Vg,[2,27]),o($Vg,[2,28]),o($Vg,[2,29]),o($Vg,[2,30]),o($Vh,[2,31]),o($Vh,[2,32]),o($V6,[2,11],{17:[1,40]}),o($Vd,[2,5]),{8:[2,4]},o($Vi,[2,19]),{10:41,11:14,45:$V3,46:$V4,47:$V5},{10:42,11:14,23:[1,43],45:$V3,46:$V4,47:$V5},o($Vf,[2,25],{24:44,26:$V7,27:$V8,28:$V9,29:$Va}),o($Vf,[2,24]),{18:45,20:$Vj},o($Vi,[2,21]),o($Vi,[2,20]),{10:47,11:14,45:$V3,46:$V4,47:$V5},o($Vf,[2,23]),{19:[1,48]},{18:49,19:[2,13],20:$Vj},o($Vi,[2,22]),o($V6,[2,12]),{19:[2,14]}], defaultActions: {2:[2,1],18:[2,2],34:[2,4],49:[2,14]}, -parseError: function parseError(str, hash) { +parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); } else { @@ -454,7 +454,7 @@ showPosition:function () { }, // test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { +test_match:function(match, indexed_rule) { var token, lines, backup; @@ -584,7 +584,7 @@ next:function () { }, // return next match that has a token -lex:function lex() { +lex:function lex () { var r = this.next(); if (r) { return r; @@ -594,12 +594,12 @@ lex:function lex() { }, // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { +begin:function begin (condition) { this.conditionStack.push(condition); }, // pop the previously active lexer condition state off the condition stack -popState:function popState() { +popState:function popState () { var n = this.conditionStack.length - 1; if (n > 0) { return this.conditionStack.pop(); @@ -609,7 +609,7 @@ popState:function popState() { }, // produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { +_currentRules:function _currentRules () { if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; } else { @@ -618,7 +618,7 @@ _currentRules:function _currentRules() { }, // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { +topState:function topState (n) { n = this.conditionStack.length - 1 - Math.abs(n || 0); if (n >= 0) { return this.conditionStack[n]; @@ -628,7 +628,7 @@ topState:function topState(n) { }, // alias for begin(condition) -pushState:function pushState(condition) { +pushState:function pushState (condition) { this.begin(condition); }, @@ -726,7 +726,7 @@ if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = parser; exports.Parser = parser.Parser; exports.parse = function () { return parser.parse.apply(parser, arguments); }; -exports.main = function commonjsMain(args) { +exports.main = function commonjsMain (args) { if (!args[1]) { console.log('Usage: '+args[0]+' FILE'); process.exit(1); diff --git a/src/diagrams/flowchart/parser/flow.js b/src/diagrams/flowchart/parser/flow.js index 7467a93e5..a6f4aa644 100644 --- a/src/diagrams/flowchart/parser/flow.js +++ b/src/diagrams/flowchart/parser/flow.js @@ -73,7 +73,7 @@ */ var parser = (function(){ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,3],$V2=[1,5],$V3=[1,8,9,10,11,13,18,30,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],$V4=[2,2],$V5=[1,12],$V6=[1,13],$V7=[1,14],$V8=[1,15],$V9=[1,31],$Va=[1,33],$Vb=[1,22],$Vc=[1,34],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,27],$Vh=[1,28],$Vi=[1,38],$Vj=[1,40],$Vk=[1,35],$Vl=[1,39],$Vm=[1,45],$Vn=[1,44],$Vo=[1,36],$Vp=[1,37],$Vq=[1,41],$Vr=[1,42],$Vs=[1,43],$Vt=[1,8,9,10,11,13,18,30,32,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],$Vu=[1,53],$Vv=[1,52],$Vw=[1,54],$Vx=[1,72],$Vy=[1,80],$Vz=[1,81],$VA=[1,66],$VB=[1,65],$VC=[1,85],$VD=[1,84],$VE=[1,82],$VF=[1,83],$VG=[1,73],$VH=[1,68],$VI=[1,67],$VJ=[1,63],$VK=[1,75],$VL=[1,76],$VM=[1,77],$VN=[1,78],$VO=[1,79],$VP=[1,70],$VQ=[1,69],$VR=[8,9,11],$VS=[8,9,11,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64],$VT=[1,115],$VU=[8,9,10,11,13,15,18,36,38,40,42,46,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,86,88,89,91,92,94,95,96,97,98],$VV=[8,9,10,11,12,13,15,16,17,18,30,32,36,37,38,39,40,41,42,43,46,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,71,72,73,74,75,78,81,84,86,88,89,91,92,94,95,96,97,98],$VW=[1,117],$VX=[1,118],$VY=[8,9,10,11,13,18,30,32,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],$VZ=[8,9,10,11,12,13,15,16,17,18,30,32,37,39,41,43,46,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,71,72,73,74,75,78,81,84,86,88,89,91,92,94,95,96,97,98],$V_=[13,18,46,81,86,88,89,91,92,94,95,96,97,98],$V$=[13,18,46,49,65,81,86,88,89,91,92,94,95,96,97,98],$V01=[1,191],$V11=[1,188],$V21=[1,195],$V31=[1,192],$V41=[1,189],$V51=[1,196],$V61=[1,186],$V71=[1,187],$V81=[1,190],$V91=[1,193],$Va1=[1,194],$Vb1=[1,213],$Vc1=[8,9,11,86],$Vd1=[8,9,10,11,46,71,80,81,84,86,88,89,90,91,92]; -var parser = {trace: function trace() { }, +var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"mermaidDoc":3,"graphConfig":4,"document":5,"line":6,"statement":7,"SEMI":8,"NEWLINE":9,"SPACE":10,"EOF":11,"GRAPH":12,"DIR":13,"FirstStmtSeperator":14,"TAGEND":15,"TAGSTART":16,"UP":17,"DOWN":18,"ending":19,"endToken":20,"spaceList":21,"spaceListNewline":22,"verticeStatement":23,"separator":24,"styleStatement":25,"linkStyleStatement":26,"classDefStatement":27,"classStatement":28,"clickStatement":29,"subgraph":30,"text":31,"end":32,"vertex":33,"link":34,"alphaNum":35,"SQS":36,"SQE":37,"PS":38,"PE":39,"(-":40,"-)":41,"DIAMOND_START":42,"DIAMOND_STOP":43,"alphaNumStatement":44,"alphaNumToken":45,"MINUS":46,"linkStatement":47,"arrowText":48,"TESTSTR":49,"--":50,"ARROW_POINT":51,"ARROW_CIRCLE":52,"ARROW_CROSS":53,"ARROW_OPEN":54,"-.":55,"DOTTED_ARROW_POINT":56,"DOTTED_ARROW_CIRCLE":57,"DOTTED_ARROW_CROSS":58,"DOTTED_ARROW_OPEN":59,"==":60,"THICK_ARROW_POINT":61,"THICK_ARROW_CIRCLE":62,"THICK_ARROW_CROSS":63,"THICK_ARROW_OPEN":64,"PIPE":65,"textToken":66,"STR":67,"commentText":68,"commentToken":69,"keywords":70,"STYLE":71,"LINKSTYLE":72,"CLASSDEF":73,"CLASS":74,"CLICK":75,"textNoTags":76,"textNoTagsToken":77,"DEFAULT":78,"stylesOpt":79,"HEX":80,"NUM":81,"INTERPOLATE":82,"commentStatement":83,"PCT":84,"style":85,"COMMA":86,"styleComponent":87,"ALPHA":88,"COLON":89,"UNIT":90,"BRKT":91,"DOT":92,"graphCodeTokens":93,"PUNCTUATION":94,"UNICODE_TEXT":95,"PLUS":96,"EQUALS":97,"MULT":98,"TAG_START":99,"TAG_END":100,"QUOTE":101,"$accept":0,"$end":1}, terminals_: {2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"DIR",15:"TAGEND",16:"TAGSTART",17:"UP",18:"DOWN",30:"subgraph",32:"end",36:"SQS",37:"SQE",38:"PS",39:"PE",40:"(-",41:"-)",42:"DIAMOND_START",43:"DIAMOND_STOP",46:"MINUS",49:"TESTSTR",50:"--",51:"ARROW_POINT",52:"ARROW_CIRCLE",53:"ARROW_CROSS",54:"ARROW_OPEN",55:"-.",56:"DOTTED_ARROW_POINT",57:"DOTTED_ARROW_CIRCLE",58:"DOTTED_ARROW_CROSS",59:"DOTTED_ARROW_OPEN",60:"==",61:"THICK_ARROW_POINT",62:"THICK_ARROW_CIRCLE",63:"THICK_ARROW_CROSS",64:"THICK_ARROW_OPEN",65:"PIPE",67:"STR",71:"STYLE",72:"LINKSTYLE",73:"CLASSDEF",74:"CLASS",75:"CLICK",78:"DEFAULT",80:"HEX",81:"NUM",82:"INTERPOLATE",84:"PCT",86:"COMMA",88:"ALPHA",89:"COLON",90:"UNIT",91:"BRKT",92:"DOT",94:"PUNCTUATION",95:"UNICODE_TEXT",96:"PLUS",97:"EQUALS",98:"MULT",99:"TAG_START",100:"TAG_END",101:"QUOTE"}, @@ -307,7 +307,7 @@ break; }, table: [{3:1,4:2,9:$V0,10:$V1,12:$V2},{1:[3]},o($V3,$V4,{5:6}),{4:7,9:$V0,10:$V1,12:$V2},{4:8,9:$V0,10:$V1,12:$V2},{10:[1,9]},{1:[2,1],6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($V3,[2,9]),o($V3,[2,10]),{13:[1,46],15:[1,47],16:[1,48],17:[1,49],18:[1,50]},o($Vt,[2,3]),o($Vt,[2,4]),o($Vt,[2,5]),o($Vt,[2,6]),o($Vt,[2,7]),o($Vt,[2,8]),{8:$Vu,9:$Vv,11:$Vw,24:51},{8:$Vu,9:$Vv,11:$Vw,24:55},{8:$Vu,9:$Vv,11:$Vw,24:56},{8:$Vu,9:$Vv,11:$Vw,24:57},{8:$Vu,9:$Vv,11:$Vw,24:58},{8:$Vu,9:$Vv,11:$Vw,24:59},{8:$Vu,9:$Vv,10:$Vx,11:$Vw,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,24:61,30:$VE,31:60,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VR,[2,42],{34:86,47:87,50:[1,88],51:[1,91],52:[1,92],53:[1,93],54:[1,94],55:[1,89],56:[1,95],57:[1,96],58:[1,97],59:[1,98],60:[1,90],61:[1,99],62:[1,100],63:[1,101],64:[1,102]}),{10:[1,103]},{10:[1,104]},{10:[1,105]},{10:[1,106]},{10:[1,107]},o($VS,[2,55],{45:32,21:113,44:114,10:$VT,13:$V9,15:[1,112],18:$Va,36:[1,108],38:[1,109],40:[1,110],42:[1,111],46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VU,[2,57]),o($VU,[2,59]),o($VU,[2,60]),o($VU,[2,61]),o($VU,[2,62]),o($VV,[2,154]),o($VV,[2,155]),o($VV,[2,156]),o($VV,[2,157]),o($VV,[2,158]),o($VV,[2,159]),o($VV,[2,160]),o($VV,[2,161]),o($VV,[2,162]),o($VV,[2,163]),o($VV,[2,164]),{8:$VW,9:$VX,10:$VT,14:116,21:119},{8:$VW,9:$VX,10:$VT,14:120,21:119},{8:$VW,9:$VX,10:$VT,14:121,21:119},{8:$VW,9:$VX,10:$VT,14:122,21:119},{8:$VW,9:$VX,10:$VT,14:123,21:119},o($Vt,[2,30]),o($Vt,[2,38]),o($Vt,[2,39]),o($Vt,[2,40]),o($Vt,[2,31]),o($Vt,[2,32]),o($Vt,[2,33]),o($Vt,[2,34]),o($Vt,[2,35]),{8:$Vu,9:$Vv,10:$Vx,11:$Vw,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,24:124,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VY,$V4,{5:126}),o($VZ,[2,92]),o($VZ,[2,94]),o($VZ,[2,143]),o($VZ,[2,144]),o($VZ,[2,145]),o($VZ,[2,146]),o($VZ,[2,147]),o($VZ,[2,148]),o($VZ,[2,149]),o($VZ,[2,150]),o($VZ,[2,151]),o($VZ,[2,152]),o($VZ,[2,153]),o($VZ,[2,97]),o($VZ,[2,98]),o($VZ,[2,99]),o($VZ,[2,100]),o($VZ,[2,101]),o($VZ,[2,102]),o($VZ,[2,103]),o($VZ,[2,104]),o($VZ,[2,105]),o($VZ,[2,106]),o($VZ,[2,107]),{13:$V9,18:$Va,33:127,35:29,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($V_,[2,66],{48:128,49:[1,129],65:[1,130]}),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:131,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:132,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:133,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($V$,[2,79]),o($V$,[2,80]),o($V$,[2,81]),o($V$,[2,82]),o($V$,[2,83]),o($V$,[2,84]),o($V$,[2,85]),o($V$,[2,86]),o($V$,[2,87]),o($V$,[2,88]),o($V$,[2,89]),o($V$,[2,90]),{13:$V9,18:$Va,35:134,44:30,45:32,46:$Vc,80:[1,135],81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{78:[1,136],81:[1,137]},{13:$V9,18:$Va,35:139,44:30,45:32,46:$Vc,78:[1,138],81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{13:$V9,18:$Va,35:140,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{13:$V9,18:$Va,35:141,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:142,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:144,32:$VF,38:[1,143],45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:145,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:146,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:147,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VS,[2,56]),o($VU,[2,58]),o($VS,[2,29],{21:148,10:$VT}),o($V3,[2,11]),o($V3,[2,21]),o($V3,[2,22]),{9:[1,149]},o($V3,[2,12]),o($V3,[2,13]),o($V3,[2,14]),o($V3,[2,15]),o($VY,$V4,{5:150}),o($VZ,[2,93]),{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,32:[1,151],33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VR,[2,41]),o($V_,[2,63],{10:[1,152]}),{10:[1,153]},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:154,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,51:[1,155],52:[1,156],53:[1,157],54:[1,158],60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,56:[1,159],57:[1,160],58:[1,161],59:[1,162],60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,61:[1,163],62:[1,164],63:[1,165],64:[1,166],66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:[1,167],13:$V9,18:$Va,44:114,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:[1,168]},{10:[1,169]},{10:[1,170]},{10:[1,171]},{10:[1,172],13:$V9,18:$Va,44:114,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:[1,173],13:$V9,18:$Va,44:114,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:[1,174],13:$V9,18:$Va,44:114,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,37:[1,175],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:176,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,39:[1,177],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,41:[1,178],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,43:[1,179],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,37:[1,180],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VS,[2,28]),o($V3,[2,23]),{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,32:[1,181],33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($Vt,[2,37]),o($V_,[2,65]),o($V_,[2,64]),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,65:[1,182],66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($V_,[2,67]),o($V_,[2,68]),o($V_,[2,69]),o($V_,[2,70]),o($V_,[2,71]),o($V_,[2,72]),o($V_,[2,73]),o($V_,[2,74]),o($V_,[2,75]),o($V_,[2,76]),o($V_,[2,77]),o($V_,[2,78]),{10:$V01,46:$V11,71:$V21,79:183,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:197,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:198,80:$V31,81:$V41,82:[1,199],84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:200,80:$V31,81:$V41,82:[1,201],84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:202,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:203,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{13:$V9,18:$Va,35:204,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{13:$V9,18:$Va,35:205,44:30,45:32,46:$Vc,67:[1,206],81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VS,[2,43],{21:207,10:$VT}),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,39:[1,208],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VS,[2,49],{21:209,10:$VT}),o($VS,[2,47],{21:210,10:$VT}),o($VS,[2,51],{21:211,10:$VT}),o($VS,[2,53],{21:212,10:$VT}),o($Vt,[2,36]),o([10,13,18,46,81,86,88,89,91,92,94,95,96,97,98],[2,91]),o($VR,[2,117],{86:$Vb1}),o($Vc1,[2,126],{87:214,10:$V01,46:$V11,71:$V21,80:$V31,81:$V41,84:$V51,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1}),o($Vd1,[2,128]),o($Vd1,[2,130]),o($Vd1,[2,131]),o($Vd1,[2,132]),o($Vd1,[2,133]),o($Vd1,[2,134]),o($Vd1,[2,135]),o($Vd1,[2,136]),o($Vd1,[2,137]),o($Vd1,[2,138]),o($Vd1,[2,139]),o($Vd1,[2,140]),o($VR,[2,118],{86:$Vb1}),o($VR,[2,119],{86:$Vb1}),{10:[1,215]},o($VR,[2,120],{86:$Vb1}),{10:[1,216]},o($VR,[2,110],{86:$Vb1}),o($VR,[2,111],{86:$Vb1}),o($VR,[2,112],{45:32,44:114,13:$V9,18:$Va,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VR,[2,113],{45:32,44:114,10:[1,217],13:$V9,18:$Va,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VR,[2,115],{10:[1,218]}),o($VS,[2,44]),{39:[1,219]},o($VS,[2,50]),o($VS,[2,48]),o($VS,[2,52]),o($VS,[2,54]),{10:$V01,46:$V11,71:$V21,80:$V31,81:$V41,84:$V51,85:220,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},o($Vd1,[2,129]),{13:$V9,18:$Va,35:221,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{13:$V9,18:$Va,35:222,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{67:[1,223]},{67:[1,224]},o($VS,[2,45],{21:225,10:$VT}),o($Vc1,[2,127],{87:214,10:$V01,46:$V11,71:$V21,80:$V31,81:$V41,84:$V51,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1}),o($VR,[2,123],{45:32,44:114,10:[1,226],13:$V9,18:$Va,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VR,[2,124],{45:32,44:114,10:[1,227],13:$V9,18:$Va,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VR,[2,114]),o($VR,[2,116]),o($VS,[2,46]),{10:$V01,46:$V11,71:$V21,79:228,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:229,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},o($VR,[2,121],{86:$Vb1}),o($VR,[2,122],{86:$Vb1})], defaultActions: {}, -parseError: function parseError(str, hash) { +parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); } else { @@ -599,7 +599,7 @@ showPosition:function () { }, // test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { +test_match:function(match, indexed_rule) { var token, lines, backup; @@ -729,7 +729,7 @@ next:function () { }, // return next match that has a token -lex:function lex() { +lex:function lex () { var r = this.next(); if (r) { return r; @@ -739,12 +739,12 @@ lex:function lex() { }, // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { +begin:function begin (condition) { this.conditionStack.push(condition); }, // pop the previously active lexer condition state off the condition stack -popState:function popState() { +popState:function popState () { var n = this.conditionStack.length - 1; if (n > 0) { return this.conditionStack.pop(); @@ -754,7 +754,7 @@ popState:function popState() { }, // produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { +_currentRules:function _currentRules () { if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; } else { @@ -763,7 +763,7 @@ _currentRules:function _currentRules() { }, // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { +topState:function topState (n) { n = this.conditionStack.length - 1 - Math.abs(n || 0); if (n >= 0) { return this.conditionStack[n]; @@ -773,7 +773,7 @@ topState:function topState(n) { }, // alias for begin(condition) -pushState:function pushState(condition) { +pushState:function pushState (condition) { this.begin(condition); }, @@ -947,7 +947,7 @@ if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = parser; exports.Parser = parser.Parser; exports.parse = function () { return parser.parse.apply(parser, arguments); }; -exports.main = function commonjsMain(args) { +exports.main = function commonjsMain (args) { if (!args[1]) { console.log('Usage: '+args[0]+' FILE'); process.exit(1); diff --git a/src/diagrams/gantt/parser/gantt.js b/src/diagrams/gantt/parser/gantt.js index 38ff324ee..c72af3eb9 100644 --- a/src/diagrams/gantt/parser/gantt.js +++ b/src/diagrams/gantt/parser/gantt.js @@ -73,7 +73,7 @@ */ var parser = (function(){ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,8,10,11,12,13,14,15],$V1=[1,9],$V2=[1,10],$V3=[1,11],$V4=[1,12],$V5=[1,13]; -var parser = {trace: function trace() { }, +var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"start":3,"gantt":4,"document":5,"EOF":6,"line":7,"SPACE":8,"statement":9,"NL":10,"dateFormat":11,"axisFormat":12,"title":13,"section":14,"taskTxt":15,"taskData":16,"$accept":0,"$end":1}, terminals_: {2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",11:"dateFormat",12:"axisFormat",13:"title",14:"section",15:"taskTxt",16:"taskData"}, @@ -117,7 +117,7 @@ break; }, table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:$V1,12:$V2,13:$V3,14:$V4,15:$V5},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:14,11:$V1,12:$V2,13:$V3,14:$V4,15:$V5},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,8]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,11]),{16:[1,15]},o($V0,[2,4]),o($V0,[2,12])], defaultActions: {}, -parseError: function parseError(str, hash) { +parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); } else { @@ -409,7 +409,7 @@ showPosition:function () { }, // test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { +test_match:function(match, indexed_rule) { var token, lines, backup; @@ -539,7 +539,7 @@ next:function () { }, // return next match that has a token -lex:function lex() { +lex:function lex () { var r = this.next(); if (r) { return r; @@ -549,12 +549,12 @@ lex:function lex() { }, // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { +begin:function begin (condition) { this.conditionStack.push(condition); }, // pop the previously active lexer condition state off the condition stack -popState:function popState() { +popState:function popState () { var n = this.conditionStack.length - 1; if (n > 0) { return this.conditionStack.pop(); @@ -564,7 +564,7 @@ popState:function popState() { }, // produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { +_currentRules:function _currentRules () { if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; } else { @@ -573,7 +573,7 @@ _currentRules:function _currentRules() { }, // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { +topState:function topState (n) { n = this.conditionStack.length - 1 - Math.abs(n || 0); if (n >= 0) { return this.conditionStack[n]; @@ -583,7 +583,7 @@ topState:function topState(n) { }, // alias for begin(condition) -pushState:function pushState(condition) { +pushState:function pushState (condition) { this.begin(condition); }, @@ -647,7 +647,7 @@ if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = parser; exports.Parser = parser.Parser; exports.parse = function () { return parser.parse.apply(parser, arguments); }; -exports.main = function commonjsMain(args) { +exports.main = function commonjsMain (args) { if (!args[1]) { console.log('Usage: '+args[0]+' FILE'); process.exit(1); diff --git a/src/diagrams/git/parser/gitGraph.js b/src/diagrams/git/parser/gitGraph.js index fd981cafb..4a01bf7bd 100644 --- a/src/diagrams/git/parser/gitGraph.js +++ b/src/diagrams/git/parser/gitGraph.js @@ -73,7 +73,7 @@ */ var parser = (function(){ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,3],$V1=[1,7],$V2=[7,12,15,17,19,20,21],$V3=[7,11,12,15,17,19,20,21],$V4=[2,20],$V5=[1,32]; -var parser = {trace: function trace() { }, +var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"start":3,"GG":4,":":5,"document":6,"EOF":7,"DIR":8,"options":9,"body":10,"OPT":11,"NL":12,"line":13,"statement":14,"COMMIT":15,"commit_arg":16,"BRANCH":17,"ID":18,"CHECKOUT":19,"MERGE":20,"RESET":21,"reset_arg":22,"STR":23,"HEAD":24,"reset_parents":25,"CARET":26,"$accept":0,"$end":1}, terminals_: {2:"error",4:"GG",5:":",7:"EOF",8:"DIR",11:"OPT",12:"NL",15:"COMMIT",17:"BRANCH",18:"ID",19:"CHECKOUT",20:"MERGE",21:"RESET",23:"STR",24:"HEAD",26:"CARET"}, @@ -141,7 +141,7 @@ break; }, table: [{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:$V0,9:6,12:$V1},{5:[1,8]},{7:[1,9]},o($V2,[2,7],{10:10,11:[1,11]}),o($V3,[2,6]),{6:12,7:$V0,9:6,12:$V1},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},o($V3,[2,5]),{7:[1,21]},o($V2,[2,8]),{12:[1,22]},o($V2,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},o($V2,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:$V4,25:31,26:$V5},{12:$V4,25:33,26:$V5},{12:[2,18]},{12:$V4,25:34,26:$V5},{12:[2,19]},{12:[2,21]}], defaultActions: {9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]}, -parseError: function parseError(str, hash) { +parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); } else { @@ -432,7 +432,7 @@ showPosition:function () { }, // test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { +test_match:function(match, indexed_rule) { var token, lines, backup; @@ -562,7 +562,7 @@ next:function () { }, // return next match that has a token -lex:function lex() { +lex:function lex () { var r = this.next(); if (r) { return r; @@ -572,12 +572,12 @@ lex:function lex() { }, // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { +begin:function begin (condition) { this.conditionStack.push(condition); }, // pop the previously active lexer condition state off the condition stack -popState:function popState() { +popState:function popState () { var n = this.conditionStack.length - 1; if (n > 0) { return this.conditionStack.pop(); @@ -587,7 +587,7 @@ popState:function popState() { }, // produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { +_currentRules:function _currentRules () { if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; } else { @@ -596,7 +596,7 @@ _currentRules:function _currentRules() { }, // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { +topState:function topState (n) { n = this.conditionStack.length - 1 - Math.abs(n || 0); if (n >= 0) { return this.conditionStack[n]; @@ -606,7 +606,7 @@ topState:function topState(n) { }, // alias for begin(condition) -pushState:function pushState(condition) { +pushState:function pushState (condition) { this.begin(condition); }, @@ -682,7 +682,7 @@ if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = parser; exports.Parser = parser.Parser; exports.parse = function () { return parser.parse.apply(parser, arguments); }; -exports.main = function commonjsMain(args) { +exports.main = function commonjsMain (args) { if (!args[1]) { console.log('Usage: '+args[0]+' FILE'); process.exit(1); diff --git a/src/diagrams/sequence/parser/sequenceDiagram.js b/src/diagrams/sequence/parser/sequenceDiagram.js index aa9435099..7d2234d3f 100644 --- a/src/diagrams/sequence/parser/sequenceDiagram.js +++ b/src/diagrams/sequence/parser/sequenceDiagram.js @@ -73,7 +73,7 @@ */ var parser = (function(){ var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,2],$V1=[1,3],$V2=[1,4],$V3=[2,4],$V4=[1,9],$V5=[1,11],$V6=[1,12],$V7=[1,14],$V8=[1,15],$V9=[1,17],$Va=[1,18],$Vb=[1,19],$Vc=[1,20],$Vd=[1,21],$Ve=[1,23],$Vf=[1,24],$Vg=[1,4,5,10,15,16,18,20,21,22,23,25,27,28,29,40],$Vh=[1,32],$Vi=[4,5,10,15,16,18,20,21,22,23,25,29,40],$Vj=[4,5,10,15,16,18,20,21,22,23,25,28,29,40],$Vk=[4,5,10,15,16,18,20,21,22,23,25,27,29,40],$Vl=[38,39,40]; -var parser = {trace: function trace() { }, +var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"start":3,"SPACE":4,"NL":5,"SD":6,"document":7,"line":8,"statement":9,"participant":10,"actor":11,"AS":12,"restOfLine":13,"signal":14,"activate":15,"deactivate":16,"note_statement":17,"title":18,"text2":19,"loop":20,"end":21,"opt":22,"alt":23,"else_sections":24,"par":25,"par_sections":26,"and":27,"else":28,"note":29,"placement":30,"over":31,"actor_pair":32,"spaceList":33,",":34,"left_of":35,"right_of":36,"signaltype":37,"+":38,"-":39,"ACTOR":40,"SOLID_OPEN_ARROW":41,"DOTTED_OPEN_ARROW":42,"SOLID_ARROW":43,"DOTTED_ARROW":44,"SOLID_CROSS":45,"DOTTED_CROSS":46,"TXT":47,"$accept":0,"$end":1}, terminals_: {2:"error",4:"SPACE",5:"NL",6:"SD",10:"participant",12:"AS",13:"restOfLine",15:"activate",16:"deactivate",18:"title",20:"loop",21:"end",22:"opt",23:"alt",25:"par",27:"and",28:"else",29:"note",31:"over",34:",",35:"left_of",36:"right_of",38:"+",39:"-",40:"ACTOR",41:"SOLID_OPEN_ARROW",42:"DOTTED_OPEN_ARROW",43:"SOLID_ARROW",44:"DOTTED_ARROW",45:"SOLID_CROSS",46:"DOTTED_CROSS",47:"TXT"}, @@ -214,7 +214,7 @@ break; }, table: [{3:1,4:$V0,5:$V1,6:$V2},{1:[3]},{3:5,4:$V0,5:$V1,6:$V2},{3:6,4:$V0,5:$V1,6:$V2},o([1,4,5,10,15,16,18,20,22,23,25,29,40],$V3,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:$V4,5:$V5,8:8,9:10,10:$V6,11:22,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,22:$Vb,23:$Vc,25:$Vd,29:$Ve,40:$Vf},o($Vg,[2,5]),{9:25,10:$V6,11:22,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,22:$Vb,23:$Vc,25:$Vd,29:$Ve,40:$Vf},o($Vg,[2,7]),o($Vg,[2,8]),{11:26,40:$Vf},{5:[1,27]},{11:28,40:$Vf},{11:29,40:$Vf},{5:[1,30]},{19:31,47:$Vh},{13:[1,33]},{13:[1,34]},{13:[1,35]},{13:[1,36]},{37:37,41:[1,38],42:[1,39],43:[1,40],44:[1,41],45:[1,42],46:[1,43]},{30:44,31:[1,45],35:[1,46],36:[1,47]},o([5,12,34,41,42,43,44,45,46,47],[2,35]),o($Vg,[2,6]),{5:[1,49],12:[1,48]},o($Vg,[2,11]),{5:[1,50]},{5:[1,51]},o($Vg,[2,14]),{5:[1,52]},{5:[2,42]},o($Vi,$V3,{7:53}),o($Vi,$V3,{7:54}),o($Vj,$V3,{24:55,7:56}),o($Vk,$V3,{26:57,7:58}),{11:61,38:[1,59],39:[1,60],40:$Vf},o($Vl,[2,36]),o($Vl,[2,37]),o($Vl,[2,38]),o($Vl,[2,39]),o($Vl,[2,40]),o($Vl,[2,41]),{11:62,40:$Vf},{11:64,32:63,40:$Vf},{40:[2,30]},{40:[2,31]},{13:[1,65]},o($Vg,[2,10]),o($Vg,[2,12]),o($Vg,[2,13]),o($Vg,[2,15]),{4:$V4,5:$V5,8:8,9:10,10:$V6,11:22,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[1,66],22:$Vb,23:$Vc,25:$Vd,29:$Ve,40:$Vf},{4:$V4,5:$V5,8:8,9:10,10:$V6,11:22,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[1,67],22:$Vb,23:$Vc,25:$Vd,29:$Ve,40:$Vf},{21:[1,68]},{4:$V4,5:$V5,8:8,9:10,10:$V6,11:22,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[2,22],22:$Vb,23:$Vc,25:$Vd,28:[1,69],29:$Ve,40:$Vf},{21:[1,70]},{4:$V4,5:$V5,8:8,9:10,10:$V6,11:22,14:13,15:$V7,16:$V8,17:16,18:$V9,20:$Va,21:[2,20],22:$Vb,23:$Vc,25:$Vd,27:[1,71],29:$Ve,40:$Vf},{11:72,40:$Vf},{11:73,40:$Vf},{19:74,47:$Vh},{19:75,47:$Vh},{19:76,47:$Vh},{34:[1,77],47:[2,29]},{5:[1,78]},o($Vg,[2,16]),o($Vg,[2,17]),o($Vg,[2,18]),{13:[1,79]},o($Vg,[2,19]),{13:[1,80]},{19:81,47:$Vh},{19:82,47:$Vh},{5:[2,34]},{5:[2,24]},{5:[2,25]},{11:83,40:$Vf},o($Vg,[2,9]),o($Vj,$V3,{7:56,24:84}),o($Vk,$V3,{7:58,26:85}),{5:[2,32]},{5:[2,33]},{47:[2,28]},{21:[2,23]},{21:[2,21]}], defaultActions: {5:[2,1],6:[2,2],32:[2,42],46:[2,30],47:[2,31],74:[2,34],75:[2,24],76:[2,25],81:[2,32],82:[2,33],83:[2,28],84:[2,23],85:[2,21]}, -parseError: function parseError(str, hash) { +parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); } else { @@ -506,7 +506,7 @@ showPosition:function () { }, // test the lexed token: return FALSE when not a match, otherwise return token -test_match:function (match, indexed_rule) { +test_match:function(match, indexed_rule) { var token, lines, backup; @@ -636,7 +636,7 @@ next:function () { }, // return next match that has a token -lex:function lex() { +lex:function lex () { var r = this.next(); if (r) { return r; @@ -646,12 +646,12 @@ lex:function lex() { }, // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin(condition) { +begin:function begin (condition) { this.conditionStack.push(condition); }, // pop the previously active lexer condition state off the condition stack -popState:function popState() { +popState:function popState () { var n = this.conditionStack.length - 1; if (n > 0) { return this.conditionStack.pop(); @@ -661,7 +661,7 @@ popState:function popState() { }, // produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules() { +_currentRules:function _currentRules () { if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; } else { @@ -670,7 +670,7 @@ _currentRules:function _currentRules() { }, // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState(n) { +topState:function topState (n) { n = this.conditionStack.length - 1 - Math.abs(n || 0); if (n >= 0) { return this.conditionStack[n]; @@ -680,7 +680,7 @@ topState:function topState(n) { }, // alias for begin(condition) -pushState:function pushState(condition) { +pushState:function pushState (condition) { this.begin(condition); }, @@ -790,7 +790,7 @@ if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = parser; exports.Parser = parser.Parser; exports.parse = function () { return parser.parse.apply(parser, arguments); }; -exports.main = function commonjsMain(args) { +exports.main = function commonjsMain (args) { if (!args[1]) { console.log('Usage: '+args[0]+' FILE'); process.exit(1); From d7e0e4afc5d368e6c634c8cffe0ce2665d4d58d1 Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Tue, 18 Dec 2018 13:32:36 +0800 Subject: [PATCH 019/103] Fix code style issue --- src/mermaidAPI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mermaidAPI.js b/src/mermaidAPI.js index 89ce96949..ed4773287 100644 --- a/src/mermaidAPI.js +++ b/src/mermaidAPI.js @@ -50,7 +50,7 @@ for (const themeName of ['default', 'forest', 'dark', 'neutral']) { */ const config = { -/** theme , the CSS style sheet + /** theme , the CSS style sheet * * **theme** - Choose one of the built-in themes: default, forest, dark or neutral. To disable any pre-defined mermaid theme, use "null". * **themeCSS** - Use your own CSS. This overrides **theme**. From 2914d4975b1260bbb1398f04afb93eeaf4752324 Mon Sep 17 00:00:00 2001 From: Tyler Long Date: Tue, 18 Dec 2018 13:55:14 +0800 Subject: [PATCH 020/103] Fix arrowhead style issue --- src/themes/sequence.scss | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/themes/sequence.scss b/src/themes/sequence.scss index d257888e8..c45a4af4f 100644 --- a/src/themes/sequence.scss +++ b/src/themes/sequence.scss @@ -15,7 +15,6 @@ text.actor { .messageLine0 { stroke-width: 1.5; stroke-dasharray: '2 2'; - marker-end: url(#arrowhead); stroke: $signalColor; } @@ -57,7 +56,6 @@ text.actor { .loopLine { stroke-width: 2; stroke-dasharray: '2 2'; - marker-end: url(#arrowhead); stroke: $labelBoxBorderColor; } @@ -79,7 +77,7 @@ text.actor { stroke: $activationBorderColor; } -.activation1 { +.activation1 { fill: $activationBkgColor; stroke: $activationBorderColor; } From a3eef7298e900675645ad5c6538678dbec58a800 Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Thu, 31 Jan 2019 15:33:35 +0800 Subject: [PATCH 021/103] Add milestone to ganttDb --- src/diagrams/gantt/ganttDb.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index b4e4fda76..3f4328c1c 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -157,7 +157,7 @@ const compileData = function (prevTask, dataStr) { const task = {} - // Get tags like active, done cand crit + // Get tags like active, done, crit and milestone let matchFound = true while (matchFound) { matchFound = false @@ -176,6 +176,11 @@ const compileData = function (prevTask, dataStr) { data.shift(1) matchFound = true } + if (data[0].match(/^\s*milestone\s*$/)) { + task.milestone = true + data.shift(1) + matchFound = true + } } for (let i = 0; i < data.length; i++) { data[i] = data[i].trim() @@ -215,7 +220,7 @@ const parseData = function (prevTaskId, dataStr) { const task = {} - // Get tags like active, done cand crit + // Get tags like active, done, crit and milestone let matchFound = true while (matchFound) { matchFound = false @@ -234,6 +239,11 @@ const parseData = function (prevTaskId, dataStr) { data.shift(1) matchFound = true } + if (data[0].match(/^\s*milestone\s*$/)) { + task.milestone = true + data.shift(1) + matchFound = true + } } for (let i = 0; i < data.length; i++) { data[i] = data[i].trim() @@ -281,6 +291,7 @@ export const addTask = function (descr, data) { rawTask.active = taskInfo.active rawTask.done = taskInfo.done rawTask.crit = taskInfo.crit + rawTask.milestone = taskInfo.milestone const pos = rawTasks.push(rawTask) @@ -308,6 +319,7 @@ export const addTaskOrg = function (descr, data) { newTask.active = taskInfo.active newTask.done = taskInfo.done newTask.crit = taskInfo.crit + newTask.milestone = taskInfo.milestone lastTask = newTask tasks.push(newTask) } From 48f8c3f85a7c162990eeeb1ec7d18ee3c0bc5b93 Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Fri, 1 Feb 2019 12:34:55 +0800 Subject: [PATCH 022/103] Add custom rendering of milestone tasks If a task is a milestone, the rect shape will be square in the center of the original width of the rectangular calculated if it weren't a milestone. The placement of the label text is adjusted accordingly. Both the rect and the text get a 'milestone' and 'milestoneText' class accordingly. The scss rotates the square and scales it a bit down, so that it's a diamond, which appears to be the defacto standard for milestone icons. The label text is put in italics. The rotational transform is done in the scss, so that it's easy for users to create their own milestone icon-style. --- src/diagrams/gantt/ganttRenderer.js | 52 +++++++++++++++++++++++------ src/themes/gantt.scss | 7 ++++ 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index 7d24df2a4..176550d2f 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -98,6 +98,7 @@ export const draw = function (text, id) { } function drawRects (theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w, h) { + //draw background rects covering the entire width of the graph, these form the section rows. svg.append('g') .selectAll('rect') .data(theArray) @@ -120,6 +121,7 @@ export const draw = function (text, id) { return 'section section0' }) + //draw the rects representing the tasks const rectangles = svg.append('g') .selectAll('rect') .data(theArray) @@ -129,17 +131,26 @@ export const draw = function (text, id) { .attr('rx', 3) .attr('ry', 3) .attr('x', function (d) { + if (d.milestone) { + return timeScale(d.startTime) + theSidePad + (0.5 * (timeScale(d.endTime) - timeScale(d.startTime))) - (0.5* theBarHeight) + } return timeScale(d.startTime) + theSidePad }) .attr('y', function (d, i) { return i * theGap + theTopPad }) .attr('width', function (d) { + if (d.milestone) { + return theBarHeight + } return (timeScale(d.endTime) - timeScale(d.startTime)) }) .attr('height', theBarHeight) + .attr('transform-origin', function(d, i) { + return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + 'px ' + (i * theGap + theTopPad + 0.5* theBarHeight).toString() + 'px' + } ) .attr('class', function (d) { - const res = 'task ' + const res = 'task' let secNum = 0 for (let i = 0; i < categories.length; i++) { @@ -148,37 +159,49 @@ export const draw = function (text, id) { } } + let milestone = '' + if (d.milestone) { + milestone = ' milestone' + } + if (d.active) { if (d.crit) { - return res + ' activeCrit' + secNum + return res + milestone + ' activeCrit' + secNum } else { - return res + ' active' + secNum + return res + milestone + ' active' + secNum } } if (d.done) { if (d.crit) { - return res + ' doneCrit' + secNum + return res + milestone + ' doneCrit' + secNum } else { - return res + ' done' + secNum + return res + milestone + ' done' + secNum } } if (d.crit) { - return res + ' crit' + secNum + return res + milestone + ' crit' + secNum } - return res + ' task' + secNum + return res + milestone + ' task' + secNum }) - + + //Append task labels rectangles.append('text') .text(function (d) { return d.task }) .attr('font-size', conf.fontSize) .attr('x', function (d) { - const startX = timeScale(d.startTime) - const endX = timeScale(d.endTime) + let startX = timeScale(d.startTime) + let endX = timeScale(d.endTime) + if (d.milestone) { + startX += (0.5 * (timeScale(d.endTime) - timeScale(d.startTime))) - (0.5* theBarHeight) + } + if (d.milestone) { + endX = startX + theBarHeight + } const textWidth = this.getBBox().width // Check id text width > width of rectangle @@ -198,7 +221,10 @@ export const draw = function (text, id) { .attr('text-height', theBarHeight) .attr('class', function (d) { const startX = timeScale(d.startTime) - const endX = timeScale(d.endTime) + let endX = timeScale(d.endTime) + if (d.milestone) { + endX = startX + theBarHeight + } const textWidth = this.getBBox().width let secNum = 0 for (let i = 0; i < categories.length; i++) { @@ -228,6 +254,10 @@ export const draw = function (text, id) { } } + if (d.milestone) { + taskType += ' milestoneText' + } + // Check id text width > width of rectangle if (textWidth > (endX - startX)) { if (endX + textWidth + 1.5 * conf.leftPadding > w) { diff --git a/src/themes/gantt.scss b/src/themes/gantt.scss index 6793135ec..2d1182cc5 100644 --- a/src/themes/gantt.scss +++ b/src/themes/gantt.scss @@ -188,6 +188,13 @@ shape-rendering: crispEdges; } +.milestone { + transform: rotate(45deg) scale(0.8,0.8); +} + +.milestoneText { + font-style: italic; +} .doneCritText0, .doneCritText1, .doneCritText2, From 5565d36ef25c1a06773247abc9af3b5c9af2aea0 Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Fri, 1 Feb 2019 12:41:03 +0800 Subject: [PATCH 023/103] Fix lint issues --- src/diagrams/gantt/ganttRenderer.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index 176550d2f..0529e3b06 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -98,7 +98,7 @@ export const draw = function (text, id) { } function drawRects (theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w, h) { - //draw background rects covering the entire width of the graph, these form the section rows. + // Draw background rects covering the entire width of the graph, these form the section rows. svg.append('g') .selectAll('rect') .data(theArray) @@ -121,7 +121,7 @@ export const draw = function (text, id) { return 'section section0' }) - //draw the rects representing the tasks + // Draw the rects representing the tasks const rectangles = svg.append('g') .selectAll('rect') .data(theArray) @@ -132,7 +132,7 @@ export const draw = function (text, id) { .attr('ry', 3) .attr('x', function (d) { if (d.milestone) { - return timeScale(d.startTime) + theSidePad + (0.5 * (timeScale(d.endTime) - timeScale(d.startTime))) - (0.5* theBarHeight) + return timeScale(d.startTime) + theSidePad + (0.5 * (timeScale(d.endTime) - timeScale(d.startTime))) - (0.5 * theBarHeight) } return timeScale(d.startTime) + theSidePad }) @@ -146,9 +146,9 @@ export const draw = function (text, id) { return (timeScale(d.endTime) - timeScale(d.startTime)) }) .attr('height', theBarHeight) - .attr('transform-origin', function(d, i) { - return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + 'px ' + (i * theGap + theTopPad + 0.5* theBarHeight).toString() + 'px' - } ) + .attr('transform-origin', function (d, i) { + return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + 'px ' + (i * theGap + theTopPad + 0.5 * theBarHeight).toString() + 'px' + }) .attr('class', function (d) { const res = 'task' @@ -186,8 +186,8 @@ export const draw = function (text, id) { return res + milestone + ' task' + secNum }) - - //Append task labels + + // Append task labels rectangles.append('text') .text(function (d) { return d.task @@ -197,7 +197,7 @@ export const draw = function (text, id) { let startX = timeScale(d.startTime) let endX = timeScale(d.endTime) if (d.milestone) { - startX += (0.5 * (timeScale(d.endTime) - timeScale(d.startTime))) - (0.5* theBarHeight) + startX += (0.5 * (timeScale(d.endTime) - timeScale(d.startTime))) - (0.5 * theBarHeight) } if (d.milestone) { endX = startX + theBarHeight From 9dbb3767e28cd45fcd5c9ad2227ff0cbdb3ee313 Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Fri, 1 Feb 2019 13:27:42 +0800 Subject: [PATCH 024/103] Extract tag parsing in separate function --- src/diagrams/gantt/ganttDb.js | 79 ++++++++++++++--------------------- 1 file changed, 31 insertions(+), 48 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 3f4328c1c..adf8304a6 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -158,30 +158,8 @@ const compileData = function (prevTask, dataStr) { const task = {} // Get tags like active, done, crit and milestone - let matchFound = true - while (matchFound) { - matchFound = false - if (data[0].match(/^\s*active\s*$/)) { - task.active = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*done\s*$/)) { - task.done = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*crit\s*$/)) { - task.crit = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*milestone\s*$/)) { - task.milestone = true - data.shift(1) - matchFound = true - } - } + getTaskTags(data, task) + for (let i = 0; i < data.length; i++) { data[i] = data[i].trim() } @@ -221,30 +199,8 @@ const parseData = function (prevTaskId, dataStr) { const task = {} // Get tags like active, done, crit and milestone - let matchFound = true - while (matchFound) { - matchFound = false - if (data[0].match(/^\s*active\s*$/)) { - task.active = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*done\s*$/)) { - task.done = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*crit\s*$/)) { - task.crit = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*milestone\s*$/)) { - task.milestone = true - data.shift(1) - matchFound = true - } - } + getTaskTags(data, task) + for (let i = 0; i < data.length; i++) { data[i] = data[i].trim() } @@ -373,3 +329,30 @@ export default { findTaskById, addTaskOrg } + +function getTaskTags (data, task) { + let matchFound = true + while (matchFound) { + matchFound = false + if (data[0].match(/^\s*active\s*$/)) { + task.active = true + data.shift(1) + matchFound = true + } + if (data[0].match(/^\s*done\s*$/)) { + task.done = true + data.shift(1) + matchFound = true + } + if (data[0].match(/^\s*crit\s*$/)) { + task.crit = true + data.shift(1) + matchFound = true + } + if (data[0].match(/^\s*milestone\s*$/)) { + task.milestone = true + data.shift(1) + matchFound = true + } + } +} From 901df242b78a69bf104c97b154695dd902c7a1e1 Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Fri, 1 Feb 2019 13:28:12 +0800 Subject: [PATCH 025/103] Replace multiple returns with single return --- src/diagrams/gantt/ganttRenderer.js | 41 ++++++++++++++--------------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index 0529e3b06..c25724b70 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -159,32 +159,31 @@ export const draw = function (text, id) { } } - let milestone = '' - if (d.milestone) { - milestone = ' milestone' - } - + let taskClass = '' if (d.active) { - if (d.crit) { - return res + milestone + ' activeCrit' + secNum - } else { - return res + milestone + ' active' + secNum - } + taskClass = ' active' + } else if (d.done) { + taskClass = ' done' } - - if (d.done) { - if (d.crit) { - return res + milestone + ' doneCrit' + secNum - } else { - return res + milestone + ' done' + secNum - } - } - if (d.crit) { - return res + milestone + ' crit' + secNum + if (taskClass.length > 0) { + taskClass += 'Crit' + } else { + taskClass = ' crit' + } } - return res + milestone + ' task' + secNum + if (taskClass.length === 0) { + taskClass = ' task' + } + + if (d.milestone) { + taskClass = ' milestone' + taskClass + } + + taskClass += secNum + + return res + taskClass }) // Append task labels From f903090e0f7ae8f082a4ce851f9d78a19c29d143 Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Fri, 1 Feb 2019 14:21:25 +0800 Subject: [PATCH 026/103] Refactor tag parsing of tags The allowed tags are now a const at the top of the code. Adding a tag there, automatically assigns the property to the javascript object, if the tag is present in the data. --- src/diagrams/gantt/ganttDb.js | 36 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index adf8304a6..96b93cb89 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -7,6 +7,7 @@ let title = '' let sections = [] let tasks = [] let currentSection = '' +const tags = ['active', 'done', 'crit', 'milestone'] export const clear = function () { sections = [] @@ -158,7 +159,7 @@ const compileData = function (prevTask, dataStr) { const task = {} // Get tags like active, done, crit and milestone - getTaskTags(data, task) + getTaskTags(data, task, tags) for (let i = 0; i < data.length; i++) { data[i] = data[i].trim() @@ -199,7 +200,7 @@ const parseData = function (prevTaskId, dataStr) { const task = {} // Get tags like active, done, crit and milestone - getTaskTags(data, task) + getTaskTags(data, task, tags) for (let i = 0; i < data.length; i++) { data[i] = data[i].trim() @@ -330,29 +331,18 @@ export default { addTaskOrg } -function getTaskTags (data, task) { +function getTaskTags (data, task, tags) { let matchFound = true while (matchFound) { matchFound = false - if (data[0].match(/^\s*active\s*$/)) { - task.active = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*done\s*$/)) { - task.done = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*crit\s*$/)) { - task.crit = true - data.shift(1) - matchFound = true - } - if (data[0].match(/^\s*milestone\s*$/)) { - task.milestone = true - data.shift(1) - matchFound = true - } + tags.forEach(function (t) { + const pattern = '^\\s*' + t + '\\s*$' + const regex = new RegExp(pattern) + if (data[0].match(regex)) { + task[t] = true + data.shift(1) + matchFound = true + } + }) } } From c84c1546032f5c6867f50a8d344ee31aea5dd29b Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Fri, 1 Feb 2019 16:16:28 +0800 Subject: [PATCH 027/103] Add tests for all possible task tags --- src/diagrams/gantt/gantt.spec.js | 86 +++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 1 deletion(-) diff --git a/src/diagrams/gantt/gantt.spec.js b/src/diagrams/gantt/gantt.spec.js index a170be6e1..d8f5b7038 100644 --- a/src/diagrams/gantt/gantt.spec.js +++ b/src/diagrams/gantt/gantt.spec.js @@ -1,10 +1,12 @@ /* eslint-env jasmine */ import { parser } from './parser/gantt' import ganttDb from './ganttDb' +import moment from 'moment' describe('when parsing a gantt diagram it', function () { beforeEach(function () { parser.yy = ganttDb + parser.yy.clear() }) it('should handle a dateFormat definition', function () { @@ -38,11 +40,93 @@ describe('when parsing a gantt diagram it', function () { */ it('should handle a task definition', function () { const str = 'gantt\n' + - 'dateFormat yyyy-mm-dd\n' + + 'dateFormat YYYY-MM-DD\n' + 'title Adding gantt diagram functionality to mermaid\n' + 'section Documentation\n' + 'Design jison grammar:des1, 2014-01-01, 2014-01-04' parser.parse(str) + + const tasks = parser.yy.getTasks() + + expect(tasks[0].startTime).toEqual(moment('2014-01-01', 'YYYY-MM-DD').toDate()) + expect(tasks[0].endTime).toEqual(moment('2014-01-04', 'YYYY-MM-DD').toDate()) + expect(tasks[0].id).toEqual('des1') + expect(tasks[0].task).toEqual('Design jison grammar') + }) + it('should handle a milestone task', function () { + const str = 'gantt\n' + + 'dateFormat YYYY-MM-DD\n' + + 'title Adding gantt diagram functionality to mermaid\n' + + 'section Documentation\n' + + 'test task:milestone, 2014-01-01, 2014-01-04' + + parser.parse(str) + + const tasks = parser.yy.getTasks() + expect(tasks[0].milestone).toBeTruthy() + expect(tasks[0].done).toBeFalsy() + expect(tasks[0].crit).toBeFalsy() + expect(tasks[0].active).toBeFalsy() + }) + it('should handle a done task', function () { + const str = 'gantt\n' + + 'dateFormat YYYY-MM-DD\n' + + 'title Adding gantt diagram functionality to mermaid\n' + + 'section Documentation\n' + + 'test task:done, 2014-01-01, 2014-01-04' + + parser.parse(str) + + const tasks = parser.yy.getTasks() + expect(tasks[0].milestone).toBeFalsy() + expect(tasks[0].done).toBeTruthy() + expect(tasks[0].crit).toBeFalsy() + expect(tasks[0].active).toBeFalsy() + }) + it('should handle a critical task', function () { + const str = 'gantt\n' + + 'dateFormat YYYY-MM-DD\n' + + 'title Adding gantt diagram functionality to mermaid\n' + + 'section Documentation\n' + + 'test task:crit, 2014-01-01, 2014-01-04' + + parser.parse(str) + + const tasks = parser.yy.getTasks() + expect(tasks[0].milestone).toBeFalsy() + expect(tasks[0].done).toBeFalsy() + expect(tasks[0].crit).toBeTruthy() + expect(tasks[0].active).toBeFalsy() + }) + it('should handle an active task', function () { + const str = 'gantt\n' + + 'dateFormat YYYY-MM-DD\n' + + 'title Adding gantt diagram functionality to mermaid\n' + + 'section Documentation\n' + + 'test task:active, 2014-01-01, 2014-01-04' + + parser.parse(str) + + const tasks = parser.yy.getTasks() + expect(tasks[0].milestone).toBeFalsy() + expect(tasks[0].done).toBeFalsy() + expect(tasks[0].crit).toBeFalsy() + expect(tasks[0].active).toBeTruthy() + }) + it('should handle task with multiple tags', function () { + const str = 'gantt\n' + + 'dateFormat YYYY-MM-DD\n' + + 'title Adding gantt diagram functionality to mermaid\n' + + 'section Documentation\n' + + 'test task:crit,milestone,done, 2014-01-01, 2014-01-04' + + parser.parse(str) + + const tasks = parser.yy.getTasks() + expect(tasks[0].milestone).toBeTruthy() + expect(tasks[0].done).toBeTruthy() + expect(tasks[0].crit).toBeTruthy() + expect(tasks[0].active).toBeFalsy() }) }) From a211b6d55d0d29ada18a5a13119866f172fc7aa8 Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Fri, 1 Feb 2019 17:04:43 +0800 Subject: [PATCH 028/103] Use it.each in test cases to prevent code repetition --- src/diagrams/gantt/gantt.spec.js | 94 ++++++++------------------------ 1 file changed, 24 insertions(+), 70 deletions(-) diff --git a/src/diagrams/gantt/gantt.spec.js b/src/diagrams/gantt/gantt.spec.js index d8f5b7038..694128f14 100644 --- a/src/diagrams/gantt/gantt.spec.js +++ b/src/diagrams/gantt/gantt.spec.js @@ -1,4 +1,5 @@ /* eslint-env jasmine */ +/* eslint-disable no-eval */ import { parser } from './parser/gantt' import ganttDb from './ganttDb' import moment from 'moment' @@ -54,79 +55,32 @@ describe('when parsing a gantt diagram it', function () { expect(tasks[0].id).toEqual('des1') expect(tasks[0].task).toEqual('Design jison grammar') }) - it('should handle a milestone task', function () { - const str = 'gantt\n' + - 'dateFormat YYYY-MM-DD\n' + - 'title Adding gantt diagram functionality to mermaid\n' + - 'section Documentation\n' + - 'test task:milestone, 2014-01-01, 2014-01-04' + it.each` + tags | milestone | done | crit | active + ${'milestone'} | ${true} | ${false} | ${false} | ${false} + ${'done'} | ${false} | ${true} | ${false} | ${false} + ${'crit'} | ${false} | ${false} | ${true} | ${false} + ${'active'} | ${false} | ${false} | ${false} | ${true} + ${'crit,milestone,done'} | ${true} | ${true} | ${true} | ${false} + `('should handle a task with tags $tags', ({ tags, milestone, done, crit, active }) => { + const str = 'gantt\n' + + 'dateFormat YYYY-MM-DD\n' + + 'title Adding gantt diagram functionality to mermaid\n' + + 'section Documentation\n' + + 'test task:' + tags + ', 2014-01-01, 2014-01-04' - parser.parse(str) + const allowedTags = ['active', 'done', 'crit', 'milestone'] - const tasks = parser.yy.getTasks() - expect(tasks[0].milestone).toBeTruthy() - expect(tasks[0].done).toBeFalsy() - expect(tasks[0].crit).toBeFalsy() - expect(tasks[0].active).toBeFalsy() - }) - it('should handle a done task', function () { - const str = 'gantt\n' + - 'dateFormat YYYY-MM-DD\n' + - 'title Adding gantt diagram functionality to mermaid\n' + - 'section Documentation\n' + - 'test task:done, 2014-01-01, 2014-01-04' + parser.parse(str) - parser.parse(str) + const tasks = parser.yy.getTasks() - const tasks = parser.yy.getTasks() - expect(tasks[0].milestone).toBeFalsy() - expect(tasks[0].done).toBeTruthy() - expect(tasks[0].crit).toBeFalsy() - expect(tasks[0].active).toBeFalsy() - }) - it('should handle a critical task', function () { - const str = 'gantt\n' + - 'dateFormat YYYY-MM-DD\n' + - 'title Adding gantt diagram functionality to mermaid\n' + - 'section Documentation\n' + - 'test task:crit, 2014-01-01, 2014-01-04' - - parser.parse(str) - - const tasks = parser.yy.getTasks() - expect(tasks[0].milestone).toBeFalsy() - expect(tasks[0].done).toBeFalsy() - expect(tasks[0].crit).toBeTruthy() - expect(tasks[0].active).toBeFalsy() - }) - it('should handle an active task', function () { - const str = 'gantt\n' + - 'dateFormat YYYY-MM-DD\n' + - 'title Adding gantt diagram functionality to mermaid\n' + - 'section Documentation\n' + - 'test task:active, 2014-01-01, 2014-01-04' - - parser.parse(str) - - const tasks = parser.yy.getTasks() - expect(tasks[0].milestone).toBeFalsy() - expect(tasks[0].done).toBeFalsy() - expect(tasks[0].crit).toBeFalsy() - expect(tasks[0].active).toBeTruthy() - }) - it('should handle task with multiple tags', function () { - const str = 'gantt\n' + - 'dateFormat YYYY-MM-DD\n' + - 'title Adding gantt diagram functionality to mermaid\n' + - 'section Documentation\n' + - 'test task:crit,milestone,done, 2014-01-01, 2014-01-04' - - parser.parse(str) - - const tasks = parser.yy.getTasks() - expect(tasks[0].milestone).toBeTruthy() - expect(tasks[0].done).toBeTruthy() - expect(tasks[0].crit).toBeTruthy() - expect(tasks[0].active).toBeFalsy() + allowedTags.forEach(function (t) { + if (eval(t)) { + expect(tasks[0][t]).toBeTruthy() + } else { + expect(tasks[0][t]).toBeFalsy() + } }) }) +}) From f912f8582d03c89b868e49e96491ebe460fbfb84 Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Mon, 4 Feb 2019 10:21:58 +0800 Subject: [PATCH 029/103] Remove MomentJS dependency from Gantt Jest test cases To reduce the dependencies of the Jest test cases, the moment dates in both Jest test files are replaced with native javascript. Also the physical file gantt.spec.js is moved to be in the same folder as gantt.js --- src/diagrams/gantt/ganttDb.spec.js | 53 +++++++++---------- src/diagrams/gantt/{ => parser}/gantt.spec.js | 9 ++-- 2 files changed, 30 insertions(+), 32 deletions(-) rename src/diagrams/gantt/{ => parser}/gantt.spec.js (90%) diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.js index a956e3605..8b7775a2c 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.js @@ -1,5 +1,4 @@ /* eslint-env jasmine */ -import moment from 'moment' import ganttDb from './ganttDb' describe('when using the ganttDb', function () { @@ -12,8 +11,8 @@ describe('when using the ganttDb', function () { ganttDb.addSection('testa1') ganttDb.addTask('test1', 'id1,2013-01-01,2013-01-12') const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(moment('2013-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2013-01-12', 'YYYY-MM-DD').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2013, 0, 12)) expect(tasks[0].id).toEqual('id1') expect(tasks[0].task).toEqual('test1') }) @@ -22,8 +21,8 @@ describe('when using the ganttDb', function () { ganttDb.addSection('testa1') ganttDb.addTask('test1', 'id1,2013-01-01,2d') const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(moment('2013-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2013-01-03', 'YYYY-MM-DD').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2013, 0, 3)) expect(tasks[0].id).toEqual('id1') expect(tasks[0].task).toEqual('test1') }) @@ -32,8 +31,8 @@ describe('when using the ganttDb', function () { ganttDb.addSection('testa1') ganttDb.addTask('test1', 'id1,2013-01-01,2h') const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(moment('2013-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2013-01-01 2:00', 'YYYY-MM-DD hh:mm').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2013, 0, 1, 2)) expect(tasks[0].id).toEqual('id1') expect(tasks[0].task).toEqual('test1') }) @@ -42,8 +41,8 @@ describe('when using the ganttDb', function () { ganttDb.addSection('testa1') ganttDb.addTask('test1', 'id1,2013-01-01,2m') const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(moment('2013-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2013-01-01 00:02', 'YYYY-MM-DD hh:mm').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2013, 0, 1, 0, 2)) expect(tasks[0].id).toEqual('id1') expect(tasks[0].task).toEqual('test1') }) @@ -52,8 +51,8 @@ describe('when using the ganttDb', function () { ganttDb.addSection('testa1') ganttDb.addTask('test1', 'id1,2013-01-01,2s') const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(moment('2013-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2013-01-01 00:00:02', 'YYYY-MM-DD hh:mm:ss').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2013, 0, 1, 0, 0, 2)) expect(tasks[0].id).toEqual('id1') expect(tasks[0].task).toEqual('test1') }) @@ -62,8 +61,8 @@ describe('when using the ganttDb', function () { ganttDb.addSection('testa1') ganttDb.addTask('test1', 'id1,2013-01-01,2w') const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(moment('2013-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2013-01-15', 'YYYY-MM-DD').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2013, 0, 15)) expect(tasks[0].id).toEqual('id1') expect(tasks[0].task).toEqual('test1') }) @@ -76,7 +75,7 @@ describe('when using the ganttDb', function () { const tasks = ganttDb.getTasks() - expect(tasks[1].startTime).toEqual(moment('2013-01-15', 'YYYY-MM-DD').toDate()) + expect(tasks[1].startTime).toEqual(new Date(2013, 0, 15)) expect(tasks[1].id).toEqual('id2') expect(tasks[1].task).toEqual('test2') }) @@ -97,8 +96,8 @@ describe('when using the ganttDb', function () { ganttDb.addSection('testa1') ganttDb.addTask('test1', '2013-01-01,2013-01-12') const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(moment('2013-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2013-01-12', 'YYYY-MM-DD').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2013, 0, 12)) expect(tasks[0].id).toEqual('task1') expect(tasks[0].task).toEqual('test1') }) @@ -108,8 +107,8 @@ describe('when using the ganttDb', function () { ganttDb.addSection('testa1') ganttDb.addTask('test1', '2013-01-01,4d') const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(moment('2013-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2013-01-05', 'YYYY-MM-DD').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2013, 0, 5)) expect(tasks[0].id).toEqual('task1') expect(tasks[0].task).toEqual('test1') }) @@ -122,7 +121,7 @@ describe('when using the ganttDb', function () { const tasks = ganttDb.getTasks() - expect(tasks[1].startTime).toEqual(moment('2013-01-15', 'YYYY-MM-DD').toDate()) + expect(tasks[1].startTime).toEqual(new Date(2013, 0, 15)) expect(tasks[1].id).toEqual('task1') expect(tasks[1].task).toEqual('test2') }) @@ -134,8 +133,8 @@ describe('when using the ganttDb', function () { const tasks = ganttDb.getTasks() - expect(tasks[1].startTime).toEqual(moment('2013-01-15', 'YYYY-MM-DD').toDate()) - expect(tasks[1].endTime).toEqual(moment('2013-01-26', 'YYYY-MM-DD').toDate()) + expect(tasks[1].startTime).toEqual(new Date(2013, 0, 15)) + expect(tasks[1].endTime).toEqual(new Date(2013, 0, 26)) expect(tasks[1].id).toEqual('task1') expect(tasks[1].task).toEqual('test2') }) @@ -147,8 +146,8 @@ describe('when using the ganttDb', function () { const tasks = ganttDb.getTasks() - expect(tasks[1].startTime).toEqual(moment('2013-01-15', 'YYYY-MM-DD').toDate()) - expect(tasks[1].endTime).toEqual(moment('2013-01-17', 'YYYY-MM-DD').toDate()) + expect(tasks[1].startTime).toEqual(new Date(2013, 0, 15)) + expect(tasks[1].endTime).toEqual(new Date(2013, 0, 17)) expect(tasks[1].id).toEqual('task1') expect(tasks[1].task).toEqual('test2') }) @@ -162,14 +161,14 @@ describe('when using the ganttDb', function () { const tasks = ganttDb.getTasks() - expect(tasks[1].startTime).toEqual(moment('2013-01-17', 'YYYY-MM-DD').toDate()) - expect(tasks[1].endTime).toEqual(moment('2013-01-18', 'YYYY-MM-DD').toDate()) + expect(tasks[1].startTime).toEqual(new Date(2013, 0, 17)) + expect(tasks[1].endTime).toEqual(new Date(2013, 0, 18)) expect(tasks[1].id).toEqual('id2') expect(tasks[1].task).toEqual('test2') expect(tasks[2].id).toEqual('id3') expect(tasks[2].task).toEqual('test3') - expect(tasks[2].startTime).toEqual(moment('2013-01-15', 'YYYY-MM-DD').toDate()) - expect(tasks[2].endTime).toEqual(moment('2013-01-17', 'YYYY-MM-DD').toDate()) + expect(tasks[2].startTime).toEqual(new Date(2013, 0, 15)) + expect(tasks[2].endTime).toEqual(new Date(2013, 0, 17)) }) }) diff --git a/src/diagrams/gantt/gantt.spec.js b/src/diagrams/gantt/parser/gantt.spec.js similarity index 90% rename from src/diagrams/gantt/gantt.spec.js rename to src/diagrams/gantt/parser/gantt.spec.js index 694128f14..80bb8fd60 100644 --- a/src/diagrams/gantt/gantt.spec.js +++ b/src/diagrams/gantt/parser/gantt.spec.js @@ -1,8 +1,7 @@ /* eslint-env jasmine */ /* eslint-disable no-eval */ -import { parser } from './parser/gantt' -import ganttDb from './ganttDb' -import moment from 'moment' +import { parser } from './gantt' +import ganttDb from '../ganttDb' describe('when parsing a gantt diagram it', function () { beforeEach(function () { @@ -50,8 +49,8 @@ describe('when parsing a gantt diagram it', function () { const tasks = parser.yy.getTasks() - expect(tasks[0].startTime).toEqual(moment('2014-01-01', 'YYYY-MM-DD').toDate()) - expect(tasks[0].endTime).toEqual(moment('2014-01-04', 'YYYY-MM-DD').toDate()) + expect(tasks[0].startTime).toEqual(new Date(2014, 0, 1)) + expect(tasks[0].endTime).toEqual(new Date(2014, 0, 4)) expect(tasks[0].id).toEqual('des1') expect(tasks[0].task).toEqual('Design jison grammar') }) From 7ca9df9357c2d8e62da8d67fdec8a896e4483e0b Mon Sep 17 00:00:00 2001 From: Gijs van Dam Date: Mon, 4 Feb 2019 11:33:24 +0800 Subject: [PATCH 030/103] Refactor ganttDb tests --- src/diagrams/gantt/ganttDb.spec.js | 183 +++++++---------------------- 1 file changed, 40 insertions(+), 143 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.js index 8b7775a2c..18b83699a 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.js @@ -6,151 +6,48 @@ describe('when using the ganttDb', function () { ganttDb.clear() }) - it('should handle an fixed dates', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2013-01-12') - const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) - expect(tasks[0].endTime).toEqual(new Date(2013, 0, 12)) - expect(tasks[0].id).toEqual('id1') - expect(tasks[0].task).toEqual('test1') - }) - it('should handle duration (days) instead of fixed date to determine end date', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2d') - const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) - expect(tasks[0].endTime).toEqual(new Date(2013, 0, 3)) - expect(tasks[0].id).toEqual('id1') - expect(tasks[0].task).toEqual('test1') - }) - it('should handle duration (hours) instead of fixed date to determine end date', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2h') - const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) - expect(tasks[0].endTime).toEqual(new Date(2013, 0, 1, 2)) - expect(tasks[0].id).toEqual('id1') - expect(tasks[0].task).toEqual('test1') - }) - it('should handle duration (minutes) instead of fixed date to determine end date', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2m') - const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) - expect(tasks[0].endTime).toEqual(new Date(2013, 0, 1, 0, 2)) - expect(tasks[0].id).toEqual('id1') - expect(tasks[0].task).toEqual('test1') - }) - it('should handle duration (seconds) instead of fixed date to determine end date', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2s') - const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) - expect(tasks[0].endTime).toEqual(new Date(2013, 0, 1, 0, 0, 2)) - expect(tasks[0].id).toEqual('id1') - expect(tasks[0].task).toEqual('test1') - }) - it('should handle duration (weeks) instead of fixed date to determine end date', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2w') - const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) - expect(tasks[0].endTime).toEqual(new Date(2013, 0, 15)) - expect(tasks[0].id).toEqual('id1') - expect(tasks[0].task).toEqual('test1') - }) + it.each` + testName | section | taskName | taskData | expStartDate | expEndDate | expId | expTask + ${'should handle fixed dates'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2013-01-12'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 12)} | ${'id1'} | ${'test1'} + ${'should handle duration (days) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2d'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 3)} | ${'id1'} | ${'test1'} + ${'should handle duration (hours) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2h'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (minutes) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2m'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 0, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (seconds) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2s'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 1, 0, 0, 2)} | ${'id1'} | ${'test1'} + ${'should handle duration (weeks) instead of fixed date to determine end date'} | ${'testa1'} | ${'test1'} | ${'id1,2013-01-01,2w'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 15)} | ${'id1'} | ${'test1'} + ${'should handle fixed dates without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,2013-01-12'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 12)} | ${'task1'} | ${'test1'} + ${'should handle duration instead of a fixed date to determine end date without id'} | ${'testa1'} | ${'test1'} | ${'2013-01-01,4d'} | ${new Date(2013, 0, 1)} | ${new Date(2013, 0, 5)} | ${'task1'} | ${'test1'} +`('$testName', ({ section, taskName, taskData, expStartDate, expEndDate, expId, expTask }) => { + ganttDb.setDateFormat('YYYY-MM-DD') + ganttDb.addSection(section) + ganttDb.addTask(taskName, taskData) + const tasks = ganttDb.getTasks() + expect(tasks[0].startTime).toEqual(expStartDate) + expect(tasks[0].endTime).toEqual(expEndDate) + expect(tasks[0].id).toEqual(expId) + expect(tasks[0].task).toEqual(expTask) +}) - it('should handle relative start date based on id', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2w') - ganttDb.addTask('test2', 'id2,after id1,1d') + it.each` + section | taskName1 | taskName2 | taskData1 | taskData2 | expStartDate2 | expEndDate2 | expId2 | expTask2 + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id1,1d'} | ${new Date(2013, 0, 15)} | ${undefined} | ${'id2'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'id2,after id3,1d'} | ${new Date((new Date()).setHours(0, 0, 0, 0))} | ${undefined} | ${'id2'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'after id1,1d'} | ${new Date(2013, 0, 15)} | ${undefined} | ${'task1'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2013-01-26'} | ${new Date(2013, 0, 15)} | ${new Date(2013, 0, 26)} | ${'task1'} | ${'test2'} + ${'testa1'} | ${'test1'} | ${'test2'} | ${'id1,2013-01-01,2w'} | ${'2d'} | ${new Date(2013, 0, 15)} | ${new Date(2013, 0, 17)} | ${'task1'} | ${'test2'} +`('$testName', ({ section, taskName1, taskName2, taskData1, taskData2, expStartDate2, expEndDate2, expId2, expTask2 }) => { + ganttDb.setDateFormat('YYYY-MM-DD') + ganttDb.addSection(section) + ganttDb.addTask(taskName1, taskData1) + ganttDb.addTask(taskName2, taskData2) + const tasks = ganttDb.getTasks() + expect(tasks[1].startTime).toEqual(expStartDate2) + if (!expEndDate2 === undefined) { + expect(tasks[1].endTime).toEqual(expEndDate2) + } + expect(tasks[1].id).toEqual(expId2) + expect(tasks[1].task).toEqual(expTask2) +}) - const tasks = ganttDb.getTasks() - - expect(tasks[1].startTime).toEqual(new Date(2013, 0, 15)) - expect(tasks[1].id).toEqual('id2') - expect(tasks[1].task).toEqual('test2') - }) - - it('should handle relative start date based on id when id is invalid', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2w') - ganttDb.addTask('test2', 'id2,after id3,1d') - const tasks = ganttDb.getTasks() - expect(tasks[1].startTime).toEqual(new Date((new Date()).setHours(0, 0, 0, 0))) - expect(tasks[1].id).toEqual('id2') - expect(tasks[1].task).toEqual('test2') - }) - - it('should handle fixed dates without id', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', '2013-01-01,2013-01-12') - const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) - expect(tasks[0].endTime).toEqual(new Date(2013, 0, 12)) - expect(tasks[0].id).toEqual('task1') - expect(tasks[0].task).toEqual('test1') - }) - - it('should handle duration instead of a fixed date to determine end date without id', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', '2013-01-01,4d') - const tasks = ganttDb.getTasks() - expect(tasks[0].startTime).toEqual(new Date(2013, 0, 1)) - expect(tasks[0].endTime).toEqual(new Date(2013, 0, 5)) - expect(tasks[0].id).toEqual('task1') - expect(tasks[0].task).toEqual('test1') - }) - - it('should handle relative start date of a fixed date to determine end date without id', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2w') - ganttDb.addTask('test2', 'after id1,1d') - - const tasks = ganttDb.getTasks() - - expect(tasks[1].startTime).toEqual(new Date(2013, 0, 15)) - expect(tasks[1].id).toEqual('task1') - expect(tasks[1].task).toEqual('test2') - }) - it('should handle a new task with only an end date as definition', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2w') - ganttDb.addTask('test2', '2013-01-26') - - const tasks = ganttDb.getTasks() - - expect(tasks[1].startTime).toEqual(new Date(2013, 0, 15)) - expect(tasks[1].endTime).toEqual(new Date(2013, 0, 26)) - expect(tasks[1].id).toEqual('task1') - expect(tasks[1].task).toEqual('test2') - }) - it('should handle a new task with only an end date as definition', function () { - ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.addSection('testa1') - ganttDb.addTask('test1', 'id1,2013-01-01,2w') - ganttDb.addTask('test2', '2d') - - const tasks = ganttDb.getTasks() - - expect(tasks[1].startTime).toEqual(new Date(2013, 0, 15)) - expect(tasks[1].endTime).toEqual(new Date(2013, 0, 17)) - expect(tasks[1].id).toEqual('task1') - expect(tasks[1].task).toEqual('test2') - }) it('should handle relative start date based on id regardless of sections', function () { ganttDb.setDateFormat('YYYY-MM-DD') ganttDb.addSection('testa1') From 12b58a17e10988b1cc7790f721e4e59fc6150d52 Mon Sep 17 00:00:00 2001 From: Philipp A Date: Wed, 6 Feb 2019 10:36:32 +0100 Subject: [PATCH 031/103] SVG link rendering --- src/diagrams/flowchart/flowRenderer.js | 68 ++++++++++++-------------- 1 file changed, 32 insertions(+), 36 deletions(-) diff --git a/src/diagrams/flowchart/flowRenderer.js b/src/diagrams/flowchart/flowRenderer.js index ae6b1caed..67118a062 100644 --- a/src/diagrams/flowchart/flowRenderer.js +++ b/src/diagrams/flowchart/flowRenderer.js @@ -4,6 +4,7 @@ import * as d3 from 'd3' import flowDb from './flowDb' import flow from './parser/flow' import dagreD3 from 'dagre-d3-renderer' +import addHtmlLabel from 'dagre-d3-renderer/lib/label/add-html-label.js' import { logger } from '../../logger' import { interpolateToCurve } from '../../utils' @@ -21,7 +22,8 @@ export const setConf = function (cnf) { * @param vert Object containing the vertices. * @param g The graph that is to be drawn. */ -export const addVertices = function (vert, g) { +export const addVertices = function (vert, g, svgId) { + const svg = d3.select(`[id="${svgId}"]`) const keys = Object.keys(vert) const styleFromStyleArr = function (styleStr, arr) { @@ -35,46 +37,40 @@ export const addVertices = function (vert, g) { return styleStr } - // Iterate through each item in the vertice object (containing all the vertices found) in the graph definition + // Iterate through each item in the vertex object (containing all the vertices found) in the graph definition keys.forEach(function (id) { - const vertice = vert[id] - let verticeText + const vertex = vert[id] /** - * Variable for storing the classes for the vertice + * Variable for storing the classes for the vertex * @type {string} */ let classStr = '' - if (vertice.classes.length > 0) { - classStr = vertice.classes.join(' ') + if (vertex.classes.length > 0) { + classStr = vertex.classes.join(' ') } /** - * Variable for storing the extracted style for the vertice + * Variable for storing the extracted style for the vertex * @type {string} */ let style = '' // Create a compound style definition from the style definitions found for the node in the graph definition - style = styleFromStyleArr(style, vertice.styles) + style = styleFromStyleArr(style, vertex.styles) - // Use vertice id as text in the box if no text is provided by the graph definition - if (typeof vertice.text === 'undefined') { - verticeText = vertice.id - } else { - verticeText = vertice.text - } + // Use vertex id as text in the box if no text is provided by the graph definition + let vertexText = vertex.text !== undefined ? vertex.text : vertex.id - let labelTypeStr = '' + // We create a SVG label, either by delegating to addHtmlLabel or manually + let vertexNode if (conf.htmlLabels) { - labelTypeStr = 'html' - verticeText = verticeText.replace(/fa[lrsb]?:fa-[\w-]+/g, s => ``) - if (vertice.link) { - verticeText = '' + verticeText + '' - } + // TODO: addHtmlLabel accepts a labelStyle. Do we possibly have that? + const node = { label: vertexText.replace(/fa[lrsb]?:fa-[\w-]+/g, s => ``) } + vertexNode = addHtmlLabel(svg, node).node() } else { const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text') - const rows = verticeText.split(/
/) + const rows = vertexText.split(/
/) for (let j = 0; j < rows.length; j++) { const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan') @@ -84,22 +80,22 @@ export const addVertices = function (vert, g) { tspan.textContent = rows[j] svgLabel.appendChild(tspan) } + vertexNode = svgLabel + } - labelTypeStr = 'svg' - if (vertice.link) { - const link = document.createElementNS('http://www.w3.org/2000/svg', 'a') - link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertice.link) - link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener') - verticeText = link - } else { - verticeText = svgLabel - } + // If the node has a link, we wrap it in a SVG link + if (vertex.link) { + const link = document.createElementNS('http://www.w3.org/2000/svg', 'a') + link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertex.link) + link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener') + link.appendChild(vertexNode) + vertexNode = link } let radious = 0 let _shape = '' // Set the shape based parameters - switch (vertice.type) { + switch (vertex.type) { case 'round': radious = 5 _shape = 'rect' @@ -124,14 +120,14 @@ export const addVertices = function (vert, g) { break case 'group': _shape = 'rect' - // Need to create a text node if using svg labels, see #367 - verticeText = conf.htmlLabels ? '' : document.createElementNS('http://www.w3.org/2000/svg', 'text') + // Since we use svg labels, we need to create a text node, see #367 + vertexNode = document.createElementNS('http://www.w3.org/2000/svg', 'text') break default: _shape = 'rect' } // Add the node - g.setNode(vertice.id, { labelType: labelTypeStr, shape: _shape, label: verticeText, rx: radious, ry: radious, 'class': classStr, style: style, id: vertice.id }) + g.setNode(vertex.id, { labelType: 'svg', shape: _shape, label: vertexNode, rx: radious, ry: radious, 'class': classStr, style: style, id: vertex.id }) }) } @@ -290,7 +286,7 @@ export const draw = function (text, id) { g.setParent(subG.nodes[j], subG.id) } } - addVertices(vert, g) + addVertices(vert, g, id) addEdges(edges, g) // Create the renderer From 418ac501aaecbfdf58b4cb291fdc21792bff3b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Wed, 6 Feb 2019 16:54:09 -0200 Subject: [PATCH 032/103] Added excludes weekdays to gantt --- src/diagrams/gantt/gantt.spec.js | 6 +++ src/diagrams/gantt/ganttDb.js | 54 ++++++++++++++++++--------- src/diagrams/gantt/ganttDb.spec.js | 14 +++++++ src/diagrams/gantt/parser/gantt.jison | 8 ++-- src/diagrams/gantt/parser/gantt.js | 53 ++++++++++++++------------ 5 files changed, 91 insertions(+), 44 deletions(-) diff --git a/src/diagrams/gantt/gantt.spec.js b/src/diagrams/gantt/gantt.spec.js index a170be6e1..54b74edc4 100644 --- a/src/diagrams/gantt/gantt.spec.js +++ b/src/diagrams/gantt/gantt.spec.js @@ -17,10 +17,16 @@ describe('when parsing a gantt diagram it', function () { parser.parse(str) }) + it('should handle an excludes definition', function () { + const str = 'gantt\ndateFormat yyyy-mm-dd\ntitle Adding gantt diagram functionality to mermaid\nexcludes weekdays 2019-02-01' + + parser.parse(str) + }) it('should handle a section definition', function () { const str = 'gantt\n' + 'dateFormat yyyy-mm-dd\n' + 'title Adding gantt diagram functionality to mermaid\n' + + 'excludes weekdays 2019-02-01\n' + 'section Documentation' parser.parse(str) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index b4e4fda76..357efd439 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -3,6 +3,7 @@ import { logger } from '../../logger' let dateFormat = '' let axisFormat = '' +let excludes = [] let title = '' let sections = [] let tasks = [] @@ -31,6 +32,10 @@ export const setDateFormat = function (txt) { dateFormat = txt } +export const setExcludes = function (txt) { + excludes = txt.split(' ') +} + export const setTitle = function (txt) { title = txt } @@ -58,7 +63,17 @@ export const getTasks = function () { return tasks } -const getStartDate = function (prevTime, dateFormat, str) { +const getNextValidDate = function (date, dateFormat, excludes) { + const excludeWeekends = excludes.indexOf('weekend') >= 0 || excludes.indexOf('weekends') >= 0; + const trimmedDateFormat = dateFormat.trim() + let mDate = moment.isMoment(date) ? date : (moment.isDate(date) ? moment(date) : moment(date, dateFormat, true)); + while ((excludeWeekends && mDate.isoWeekday() >= 6) || (excludes.indexOf(mDate.format(trimmedDateFormat)) >= 0)) { + mDate = mDate.add(1, 'd') + } + return mDate.toDate(); +} + +const getStartDate = function (prevTime, dateFormat, excludes, str) { str = str.trim() // Test for after @@ -71,29 +86,34 @@ const getStartDate = function (prevTime, dateFormat, str) { if (typeof task === 'undefined') { const dt = new Date() dt.setHours(0, 0, 0, 0) + //return getNextValidDate(dt, dateFormat, excludes) return dt } + //return getNextValidDate(task.endTime, dateFormat, excludes) return task.endTime } // Check for actual date set - if (moment(str, dateFormat.trim(), true).isValid()) { - return moment(str, dateFormat.trim(), true).toDate() + let mDate = moment(str, dateFormat.trim(), true); + if (mDate.isValid()) { + return getNextValidDate(mDate, dateFormat, excludes) } else { logger.debug('Invalid date:' + str) logger.debug('With date format:' + dateFormat.trim()) } // Default date - now - return new Date() + return getNextValidDate(new Date(), dateFormat, excludes) } -const getEndDate = function (prevTime, dateFormat, str) { +const getEndDate = function (prevTime, dateFormat, excludes, str) { str = str.trim() // Check for actual date - if (moment(str, dateFormat.trim(), true).isValid()) { - return moment(str, dateFormat.trim()).toDate() + let mDate = moment(str, dateFormat.trim(), true); + if (mDate.isValid()) { + //return getNextValidDate(mDate, dateFormat, excludes) + return mDate.toDate() } const d = moment(prevTime) @@ -119,10 +139,9 @@ const getEndDate = function (prevTime, dateFormat, str) { d.add(durationStatement[1], 'weeks') break } - return d.toDate() } // Default date - now - return d.toDate() + return getNextValidDate(d, dateFormat, excludes) } let taskCnt = 0 @@ -185,17 +204,17 @@ const compileData = function (prevTask, dataStr) { case 1: task.id = parseId() task.startTime = prevTask.endTime - task.endTime = getEndDate(task.startTime, dateFormat, data[0]) + task.endTime = getEndDate(task.startTime, dateFormat, excludes, data[0]) break case 2: task.id = parseId() - task.startTime = getStartDate(undefined, dateFormat, data[0]) - task.endTime = getEndDate(task.startTime, dateFormat, data[1]) + task.startTime = getStartDate(undefined, dateFormat, excludes, data[0]) + task.endTime = getEndDate(task.startTime, dateFormat, excludes, data[1]) break case 3: task.id = parseId(data[0]) - task.startTime = getStartDate(undefined, dateFormat, data[1]) - task.endTime = getEndDate(task.startTime, dateFormat, data[2]) + task.startTime = getStartDate(undefined, dateFormat, excludes, data[1]) + task.endTime = getEndDate(task.startTime, dateFormat, excludes, data[2]) break default: } @@ -322,7 +341,7 @@ const compileTasks = function () { task.startTime = prevTask.endTime break case 'getStartDate': - startTime = getStartDate(undefined, dateFormat, rawTasks[pos].raw.startTime.startData) + startTime = getStartDate(undefined, dateFormat, excludes, rawTasks[pos].raw.startTime.startData) if (startTime) { rawTasks[pos].startTime = startTime } @@ -330,7 +349,7 @@ const compileTasks = function () { } if (rawTasks[pos].startTime) { - rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data) + rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, excludes, rawTasks[pos].raw.endTime.data) if (rawTasks[pos].endTime) { rawTasks[pos].processed = true } @@ -359,5 +378,6 @@ export default { getTasks, addTask, findTaskById, - addTaskOrg + addTaskOrg, + setExcludes } diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.js index a956e3605..aef2cd92e 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.js @@ -172,4 +172,18 @@ describe('when using the ganttDb', function () { expect(tasks[2].startTime).toEqual(moment('2013-01-15', 'YYYY-MM-DD').toDate()) expect(tasks[2].endTime).toEqual(moment('2013-01-17', 'YYYY-MM-DD').toDate()) }) + it('should ignore weekends', function () { + ganttDb.setDateFormat('YYYY-MM-DD') + ganttDb.setExcludes('weekends 2019-02-06') + ganttDb.addSection('testa1') + ganttDb.addTask('test1', 'id1,2019-02-01,1d') + ganttDb.addTask('test2', 'id2,after id1,3d') + + const tasks = ganttDb.getTasks() + + expect(tasks[1].startTime).toEqual(moment('2019-02-04', 'YYYY-MM-DD').toDate()) + expect(tasks[1].endTime).toEqual(moment('2019-02-07', 'YYYY-MM-DD').toDate()) + expect(tasks[1].id).toEqual('id2') + expect(tasks[1].task).toEqual('test2') + }) }) diff --git a/src/diagrams/gantt/parser/gantt.jison b/src/diagrams/gantt/parser/gantt.jison index 49ab3ad47..734087a2c 100644 --- a/src/diagrams/gantt/parser/gantt.jison +++ b/src/diagrams/gantt/parser/gantt.jison @@ -20,14 +20,15 @@ "gantt" return 'gantt'; "dateFormat"\s[^#\n;]+ return 'dateFormat'; "axisFormat"\s[^#\n;]+ return 'axisFormat'; +"excludes"\s[^#\n;]+ return 'excludes'; \d\d\d\d"-"\d\d"-"\d\d return 'date'; "title"\s[^#\n;]+ return 'title'; "section"\s[^#:\n;]+ return 'section'; [^#:\n;]+ return 'taskTxt'; ":"[^#\n;]+ return 'taskData'; -":" return ':'; -<> return 'EOF'; -. return 'INVALID'; +":" return ':'; +<> return 'EOF'; +. return 'INVALID'; /lex @@ -56,6 +57,7 @@ line statement : 'dateFormat' {yy.setDateFormat($1.substr(11));$$=$1.substr(11);} | 'axisFormat' {yy.setAxisFormat($1.substr(11));$$=$1.substr(11);} + | 'excludes' {yy.setExcludes($1.substr(9));$$=$1.substr(9);} | title {yy.setTitle($1.substr(6));$$=$1.substr(6);} | section {yy.addSection($1.substr(8));$$=$1.substr(8);} | taskTxt taskData {yy.addTask($1,$2);$$='task';} diff --git a/src/diagrams/gantt/parser/gantt.js b/src/diagrams/gantt/parser/gantt.js index c72af3eb9..cd3384a2d 100644 --- a/src/diagrams/gantt/parser/gantt.js +++ b/src/diagrams/gantt/parser/gantt.js @@ -72,12 +72,12 @@ } */ var parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,8,10,11,12,13,14,15],$V1=[1,9],$V2=[1,10],$V3=[1,11],$V4=[1,12],$V5=[1,13]; -var parser = {trace: function trace () { }, +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,8,10,11,12,13,14,15,16],$V1=[1,9],$V2=[1,10],$V3=[1,11],$V4=[1,12],$V5=[1,13],$V6=[1,14]; +var parser = {trace: function trace() { }, yy: {}, -symbols_: {"error":2,"start":3,"gantt":4,"document":5,"EOF":6,"line":7,"SPACE":8,"statement":9,"NL":10,"dateFormat":11,"axisFormat":12,"title":13,"section":14,"taskTxt":15,"taskData":16,"$accept":0,"$end":1}, -terminals_: {2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",11:"dateFormat",12:"axisFormat",13:"title",14:"section",15:"taskTxt",16:"taskData"}, -productions_: [0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[9,2]], +symbols_: {"error":2,"start":3,"gantt":4,"document":5,"EOF":6,"line":7,"SPACE":8,"statement":9,"NL":10,"dateFormat":11,"axisFormat":12,"excludes":13,"title":14,"section":15,"taskTxt":16,"taskData":17,"$accept":0,"$end":1}, +terminals_: {2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",11:"dateFormat",12:"axisFormat",13:"excludes",14:"title",15:"section",16:"taskTxt",17:"taskData"}, +productions_: [0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -105,19 +105,22 @@ case 9: yy.setAxisFormat($$[$0].substr(11));this.$=$$[$0].substr(11); break; case 10: -yy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6); +yy.setExcludes($$[$0].substr(9));this.$=$$[$0].substr(9); break; case 11: -yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8); +yy.setTitle($$[$0].substr(6));this.$=$$[$0].substr(6); break; case 12: +yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8); +break; +case 13: yy.addTask($$[$0-1],$$[$0]);this.$='task'; break; } }, -table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:$V1,12:$V2,13:$V3,14:$V4,15:$V5},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:14,11:$V1,12:$V2,13:$V3,14:$V4,15:$V5},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,8]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,11]),{16:[1,15]},o($V0,[2,4]),o($V0,[2,12])], +table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:$V1,12:$V2,13:$V3,14:$V4,15:$V5,16:$V6},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:15,11:$V1,12:$V2,13:$V3,14:$V4,15:$V5,16:$V6},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,8]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,11]),o($V0,[2,12]),{17:[1,16]},o($V0,[2,4]),o($V0,[2,13])], defaultActions: {}, -parseError: function parseError (str, hash) { +parseError: function parseError(str, hash) { if (hash.recoverable) { this.trace(str); } else { @@ -409,7 +412,7 @@ showPosition:function () { }, // test the lexed token: return FALSE when not a match, otherwise return token -test_match:function(match, indexed_rule) { +test_match:function (match, indexed_rule) { var token, lines, backup; @@ -539,7 +542,7 @@ next:function () { }, // return next match that has a token -lex:function lex () { +lex:function lex() { var r = this.next(); if (r) { return r; @@ -549,12 +552,12 @@ lex:function lex () { }, // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) -begin:function begin (condition) { +begin:function begin(condition) { this.conditionStack.push(condition); }, // pop the previously active lexer condition state off the condition stack -popState:function popState () { +popState:function popState() { var n = this.conditionStack.length - 1; if (n > 0) { return this.conditionStack.pop(); @@ -564,7 +567,7 @@ popState:function popState () { }, // produce the lexer rule set which is active for the currently active lexer condition state -_currentRules:function _currentRules () { +_currentRules:function _currentRules() { if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; } else { @@ -573,7 +576,7 @@ _currentRules:function _currentRules () { }, // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available -topState:function topState (n) { +topState:function topState(n) { n = this.conditionStack.length - 1 - Math.abs(n || 0); if (n >= 0) { return this.conditionStack[n]; @@ -583,7 +586,7 @@ topState:function topState (n) { }, // alias for begin(condition) -pushState:function pushState (condition) { +pushState:function pushState(condition) { this.begin(condition); }, @@ -611,9 +614,9 @@ case 5:return 11; break; case 6:return 12; break; -case 7:return 'date'; +case 7:return 13; break; -case 8:return 13; +case 8:return 'date'; break; case 9:return 14; break; @@ -621,16 +624,18 @@ case 10:return 15; break; case 11:return 16; break; -case 12:return ':'; +case 12:return 17; break; -case 13:return 6; +case 13:return ':'; break; -case 14:return 'INVALID'; +case 14:return 6; +break; +case 15:return 'INVALID'; break; } }, -rules: [/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"inclusive":true}} +rules: [/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:excludes\s[^#\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"inclusive":true}} }); return lexer; })(); @@ -647,7 +652,7 @@ if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = parser; exports.Parser = parser.Parser; exports.parse = function () { return parser.parse.apply(parser, arguments); }; -exports.main = function commonjsMain (args) { +exports.main = function commonjsMain(args) { if (!args[1]) { console.log('Usage: '+args[0]+' FILE'); process.exit(1); From 5a9c57ec0f435142ab634f5faa893ac09efdbcf3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Wed, 6 Feb 2019 16:59:57 -0200 Subject: [PATCH 033/103] Docs --- CHANGELOG.md | 2 ++ README.md | 1 + 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bbf31366..5168c005d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,8 @@ **Merged pull requests:** +- Adding weekend ignore do Gantt [\$314] (https://github.com/knsv/mermaid/issues/314) + - Adding init argument to the global API [\#137](https://github.com/knsv/mermaid/pull/137) ([bollwyvl](https://github.com/bollwyvl)) - Add description of manual calling of init [\#136](https://github.com/knsv/mermaid/pull/136) ([bollwyvl](https://github.com/bollwyvl)) diff --git a/README.md b/README.md index 45464c0ea..879466d5e 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,7 @@ sequenceDiagram gantt dateFormat YYYY-MM-DD title Adding GANTT diagram to mermaid +excludes weekdays 2014-01-10 section A section Completed task :done, des1, 2014-01-06,2014-01-08 From 997cdfffb4bdadabcd8df2a8da6d04c77ae60377 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Wed, 6 Feb 2019 17:00:51 -0200 Subject: [PATCH 034/103] Doc HTML --- dist/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/dist/index.html b/dist/index.html index 47bf945d5..e4b7d5dd1 100644 --- a/dist/index.html +++ b/dist/index.html @@ -268,6 +268,7 @@ gantt dateFormat YYYY-MM-DD axisFormat %d/%m title Adding GANTT diagram to mermaid +excludes weekdays 2014-01-10 section A section Completed task :done, des1, 2014-01-06,2014-01-08 From a8e9f210351b1efa6c3d51e6e76d1cd40710d96a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Wed, 6 Feb 2019 17:09:59 -0200 Subject: [PATCH 035/103] Standard --- src/diagrams/gantt/ganttDb.js | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 357efd439..84b2837b5 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -64,13 +64,19 @@ export const getTasks = function () { } const getNextValidDate = function (date, dateFormat, excludes) { - const excludeWeekends = excludes.indexOf('weekend') >= 0 || excludes.indexOf('weekends') >= 0; + const excludeWeekends = excludes.indexOf('weekend') >= 0 || excludes.indexOf('weekends') >= 0 const trimmedDateFormat = dateFormat.trim() - let mDate = moment.isMoment(date) ? date : (moment.isDate(date) ? moment(date) : moment(date, dateFormat, true)); - while ((excludeWeekends && mDate.isoWeekday() >= 6) || (excludes.indexOf(mDate.format(trimmedDateFormat)) >= 0)) { + let mDate = moment.isMoment(date) ? date : (moment.isDate(date) ? moment(date) : moment(date, dateFormat, true)) + + const isInvalidDate = function (d) { + return (excludeWeekends && d.isoWeekday() >= 6) || (excludes.indexOf(d.format(trimmedDateFormat)) >= 0) + } + + while (isInvalidDate(mDate)) { mDate = mDate.add(1, 'd') } - return mDate.toDate(); + + return mDate.toDate() } const getStartDate = function (prevTime, dateFormat, excludes, str) { @@ -86,15 +92,15 @@ const getStartDate = function (prevTime, dateFormat, excludes, str) { if (typeof task === 'undefined') { const dt = new Date() dt.setHours(0, 0, 0, 0) - //return getNextValidDate(dt, dateFormat, excludes) + // return getNextValidDate(dt, dateFormat, excludes) return dt } - //return getNextValidDate(task.endTime, dateFormat, excludes) + // return getNextValidDate(task.endTime, dateFormat, excludes) return task.endTime } // Check for actual date set - let mDate = moment(str, dateFormat.trim(), true); + let mDate = moment(str, dateFormat.trim(), true) if (mDate.isValid()) { return getNextValidDate(mDate, dateFormat, excludes) } else { @@ -110,9 +116,9 @@ const getEndDate = function (prevTime, dateFormat, excludes, str) { str = str.trim() // Check for actual date - let mDate = moment(str, dateFormat.trim(), true); + let mDate = moment(str, dateFormat.trim(), true) if (mDate.isValid()) { - //return getNextValidDate(mDate, dateFormat, excludes) + // return getNextValidDate(mDate, dateFormat, excludes) return mDate.toDate() } From 8e8651a0e1360abbf754509a823fe960c333982c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Wed, 6 Feb 2019 17:12:05 -0200 Subject: [PATCH 036/103] Comments --- src/diagrams/gantt/ganttDb.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 84b2837b5..d74eaf599 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -92,10 +92,8 @@ const getStartDate = function (prevTime, dateFormat, excludes, str) { if (typeof task === 'undefined') { const dt = new Date() dt.setHours(0, 0, 0, 0) - // return getNextValidDate(dt, dateFormat, excludes) return dt } - // return getNextValidDate(task.endTime, dateFormat, excludes) return task.endTime } @@ -118,7 +116,6 @@ const getEndDate = function (prevTime, dateFormat, excludes, str) { // Check for actual date let mDate = moment(str, dateFormat.trim(), true) if (mDate.isValid()) { - // return getNextValidDate(mDate, dateFormat, excludes) return mDate.toDate() } From 9f1c37ecb367931f69908a7a3ad4bc062606406a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Wed, 6 Feb 2019 17:24:20 -0200 Subject: [PATCH 037/103] Codeclimate - Complexity --- src/diagrams/gantt/ganttDb.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index d74eaf599..e8b812859 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -63,19 +63,17 @@ export const getTasks = function () { return tasks } +const isInvalidDate = function (date, dateFormat, excludes) { + if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) + return true; + return excludes.indexOf(date.format(dateFormat.trim())) >= 0; +} + const getNextValidDate = function (date, dateFormat, excludes) { - const excludeWeekends = excludes.indexOf('weekend') >= 0 || excludes.indexOf('weekends') >= 0 - const trimmedDateFormat = dateFormat.trim() - let mDate = moment.isMoment(date) ? date : (moment.isDate(date) ? moment(date) : moment(date, dateFormat, true)) - - const isInvalidDate = function (d) { - return (excludeWeekends && d.isoWeekday() >= 6) || (excludes.indexOf(d.format(trimmedDateFormat)) >= 0) - } - - while (isInvalidDate(mDate)) { + let mDate = moment(date, dateFormat, true) + while (isInvalidDate(mDate, dateFormat, excludes)) { mDate = mDate.add(1, 'd') } - return mDate.toDate() } From 1d04c7e1fe722f9c979c8028123c74d56999808a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Wed, 6 Feb 2019 17:25:39 -0200 Subject: [PATCH 038/103] Standard JS --- src/diagrams/gantt/ganttDb.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index e8b812859..ed4364c4c 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -64,9 +64,10 @@ export const getTasks = function () { } const isInvalidDate = function (date, dateFormat, excludes) { - if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) - return true; - return excludes.indexOf(date.format(dateFormat.trim())) >= 0; + if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) { + return true + } + return excludes.indexOf(date.format(dateFormat.trim())) >= 0 } const getNextValidDate = function (date, dateFormat, excludes) { From 8a8b7bd48ccdfe8398d95bff2ed978a44a48f6d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Thu, 7 Feb 2019 11:21:00 -0200 Subject: [PATCH 039/103] Fixed weekend between dates; Manual endtimes; Additional testing --- src/diagrams/gantt/ganttDb.js | 55 ++++++++++++++++++++---------- src/diagrams/gantt/ganttDb.spec.js | 28 +++++++++++++-- 2 files changed, 63 insertions(+), 20 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index ed4364c4c..fe2492589 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -33,7 +33,7 @@ export const setDateFormat = function (txt) { } export const setExcludes = function (txt) { - excludes = txt.split(' ') + excludes = txt.toLowerCase().split(/[\s,]+/) } export const setTitle = function (txt) { @@ -67,18 +67,27 @@ const isInvalidDate = function (date, dateFormat, excludes) { if (date.isoWeekday() >= 6 && excludes.indexOf('weekends') >= 0) { return true } + if (excludes.indexOf(date.format('dddd').toLowerCase()) >= 0) { + return true + } return excludes.indexOf(date.format(dateFormat.trim())) >= 0 } -const getNextValidDate = function (date, dateFormat, excludes) { - let mDate = moment(date, dateFormat, true) - while (isInvalidDate(mDate, dateFormat, excludes)) { - mDate = mDate.add(1, 'd') +const fixTaskDates = function (task, dateFormat, excludes) { + if (excludes.length && ! task.manualEndTime) { + let startTime = moment(task.startTime).add(1, 'd') + let endTime = moment(task.endTime) + while (startTime.date() <= endTime.date()) { + if (isInvalidDate(startTime, dateFormat, excludes)) { + endTime.add(1, 'd') + } + startTime.add(1, 'd') + } + task.endTime = endTime.toDate() } - return mDate.toDate() } -const getStartDate = function (prevTime, dateFormat, excludes, str) { +const getStartDate = function (prevTime, dateFormat, str) { str = str.trim() // Test for after @@ -99,17 +108,17 @@ const getStartDate = function (prevTime, dateFormat, excludes, str) { // Check for actual date set let mDate = moment(str, dateFormat.trim(), true) if (mDate.isValid()) { - return getNextValidDate(mDate, dateFormat, excludes) + return mDate.toDate() } else { logger.debug('Invalid date:' + str) logger.debug('With date format:' + dateFormat.trim()) } // Default date - now - return getNextValidDate(new Date(), dateFormat, excludes) + return new Date() } -const getEndDate = function (prevTime, dateFormat, excludes, str) { +const getEndDate = function (prevTime, dateFormat, str) { str = str.trim() // Check for actual date @@ -143,7 +152,7 @@ const getEndDate = function (prevTime, dateFormat, excludes, str) { } } // Default date - now - return getNextValidDate(d, dateFormat, excludes) + return d.toDate() } let taskCnt = 0 @@ -202,25 +211,32 @@ const compileData = function (prevTask, dataStr) { data[i] = data[i].trim() } + let endTimeData = '' switch (data.length) { case 1: task.id = parseId() task.startTime = prevTask.endTime - task.endTime = getEndDate(task.startTime, dateFormat, excludes, data[0]) + endTimeData = data[0] break case 2: task.id = parseId() - task.startTime = getStartDate(undefined, dateFormat, excludes, data[0]) - task.endTime = getEndDate(task.startTime, dateFormat, excludes, data[1]) + task.startTime = getStartDate(undefined, dateFormat, data[0]) + endTimeData = data[1] break case 3: task.id = parseId(data[0]) - task.startTime = getStartDate(undefined, dateFormat, excludes, data[1]) - task.endTime = getEndDate(task.startTime, dateFormat, excludes, data[2]) + task.startTime = getStartDate(undefined, dateFormat, data[1]) + endTimeData = data[2] break default: } + if (endTimeData) { + task.endTime = getEndDate(task.startTime, dateFormat, endTimeData) + task.manualEndTime = endTimeData == moment(task.endTime).format(dateFormat.trim()) + fixTaskDates(task, dateFormat, excludes) + } + return task } @@ -291,6 +307,7 @@ export const addTask = function (descr, data) { section: currentSection, type: currentSection, processed: false, + manualEndTime: false, raw: { data: data }, task: descr } @@ -343,7 +360,7 @@ const compileTasks = function () { task.startTime = prevTask.endTime break case 'getStartDate': - startTime = getStartDate(undefined, dateFormat, excludes, rawTasks[pos].raw.startTime.startData) + startTime = getStartDate(undefined, dateFormat, rawTasks[pos].raw.startTime.startData) if (startTime) { rawTasks[pos].startTime = startTime } @@ -351,9 +368,11 @@ const compileTasks = function () { } if (rawTasks[pos].startTime) { - rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, excludes, rawTasks[pos].raw.endTime.data) + rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data) if (rawTasks[pos].endTime) { rawTasks[pos].processed = true + rawTasks[pos].manualEndTime = rawTasks[pos].raw.endTime.data == moment(rawTasks[pos].endTime).format(dateFormat.trim()); + fixTaskDates(rawTasks[pos], dateFormat, excludes); } } diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.js index aef2cd92e..9b5e0d0e6 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.js @@ -174,16 +174,40 @@ describe('when using the ganttDb', function () { }) it('should ignore weekends', function () { ganttDb.setDateFormat('YYYY-MM-DD') - ganttDb.setExcludes('weekends 2019-02-06') + ganttDb.setExcludes('weekends 2019-02-06,friday') ganttDb.addSection('testa1') ganttDb.addTask('test1', 'id1,2019-02-01,1d') - ganttDb.addTask('test2', 'id2,after id1,3d') + ganttDb.addTask('test2', 'id2,after id1,2d') + ganttDb.addTask('test3', 'id3,after id2,7d') + ganttDb.addTask('test4', 'id4,2019-02-01,2019-02-20') // Fixed endTime + ganttDb.addTask('test5', 'id5,after id4,1d') const tasks = ganttDb.getTasks() + expect(tasks[0].startTime).toEqual(moment('2019-02-01', 'YYYY-MM-DD').toDate()) + expect(tasks[0].endTime).toEqual(moment('2019-02-04', 'YYYY-MM-DD').toDate()) + expect(tasks[0].id).toEqual('id1') + expect(tasks[0].task).toEqual('test1') + expect(tasks[1].startTime).toEqual(moment('2019-02-04', 'YYYY-MM-DD').toDate()) expect(tasks[1].endTime).toEqual(moment('2019-02-07', 'YYYY-MM-DD').toDate()) expect(tasks[1].id).toEqual('id2') expect(tasks[1].task).toEqual('test2') + + expect(tasks[2].startTime).toEqual(moment('2019-02-07', 'YYYY-MM-DD').toDate()) + expect(tasks[2].endTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate()) + expect(tasks[2].id).toEqual('id3') + expect(tasks[2].task).toEqual('test3') + + expect(tasks[3].startTime).toEqual(moment('2019-02-01', 'YYYY-MM-DD').toDate()) + expect(tasks[3].endTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate()) + expect(tasks[3].id).toEqual('id4') + expect(tasks[3].task).toEqual('test4') + + expect(tasks[4].startTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate()) + expect(tasks[4].endTime).toEqual(moment('2019-02-21', 'YYYY-MM-DD').toDate()) + expect(tasks[4].id).toEqual('id5') + expect(tasks[4].task).toEqual('test5') + }) }) From a99b31a61d0b951235c877788c1edead5b74b4b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Thu, 7 Feb 2019 11:22:46 -0200 Subject: [PATCH 040/103] Standard --- src/diagrams/gantt/ganttDb.js | 8 ++++---- src/diagrams/gantt/ganttDb.spec.js | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index fe2492589..a15bd223e 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -74,7 +74,7 @@ const isInvalidDate = function (date, dateFormat, excludes) { } const fixTaskDates = function (task, dateFormat, excludes) { - if (excludes.length && ! task.manualEndTime) { + if (excludes.length && !task.manualEndTime) { let startTime = moment(task.startTime).add(1, 'd') let endTime = moment(task.endTime) while (startTime.date() <= endTime.date()) { @@ -233,7 +233,7 @@ const compileData = function (prevTask, dataStr) { if (endTimeData) { task.endTime = getEndDate(task.startTime, dateFormat, endTimeData) - task.manualEndTime = endTimeData == moment(task.endTime).format(dateFormat.trim()) + task.manualEndTime = endTimeData === moment(task.endTime).format(dateFormat.trim()) fixTaskDates(task, dateFormat, excludes) } @@ -371,8 +371,8 @@ const compileTasks = function () { rawTasks[pos].endTime = getEndDate(rawTasks[pos].startTime, dateFormat, rawTasks[pos].raw.endTime.data) if (rawTasks[pos].endTime) { rawTasks[pos].processed = true - rawTasks[pos].manualEndTime = rawTasks[pos].raw.endTime.data == moment(rawTasks[pos].endTime).format(dateFormat.trim()); - fixTaskDates(rawTasks[pos], dateFormat, excludes); + rawTasks[pos].manualEndTime = rawTasks[pos].raw.endTime.data === moment(rawTasks[pos].endTime).format(dateFormat.trim()) + fixTaskDates(rawTasks[pos], dateFormat, excludes) } } diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.js index 9b5e0d0e6..06c620a42 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.js @@ -208,6 +208,5 @@ describe('when using the ganttDb', function () { expect(tasks[4].endTime).toEqual(moment('2019-02-21', 'YYYY-MM-DD').toDate()) expect(tasks[4].id).toEqual('id5') expect(tasks[4].task).toEqual('test5') - }) }) From 5bfddcc444c6cb8464afa58cb0973a7f5e5e8452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Thu, 7 Feb 2019 11:27:01 -0200 Subject: [PATCH 041/103] Complexity --- src/diagrams/gantt/ganttDb.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index a15bd223e..8c70d9c70 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -74,17 +74,20 @@ const isInvalidDate = function (date, dateFormat, excludes) { } const fixTaskDates = function (task, dateFormat, excludes) { - if (excludes.length && !task.manualEndTime) { - let startTime = moment(task.startTime).add(1, 'd') - let endTime = moment(task.endTime) - while (startTime.date() <= endTime.date()) { - if (isInvalidDate(startTime, dateFormat, excludes)) { - endTime.add(1, 'd') - } - startTime.add(1, 'd') + if (! excludes.length || task.manualEndTime) return; + + let startTime = moment(task.startTime) + startTime.add(1, 'd') + let endTime = moment(task.endTime) + + while (startTime.date() <= endTime.date()) { + if (isInvalidDate(startTime, dateFormat, excludes)) { + endTime.add(1, 'd') } - task.endTime = endTime.toDate() + startTime.add(1, 'd') } + + task.endTime = endTime.toDate() } const getStartDate = function (prevTime, dateFormat, str) { From 58df72984f24790677ce8c759fdc34e9e579320c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Thu, 7 Feb 2019 12:05:09 -0200 Subject: [PATCH 042/103] Standard --- src/diagrams/gantt/ganttDb.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 8c70d9c70..e831601dc 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -74,19 +74,16 @@ const isInvalidDate = function (date, dateFormat, excludes) { } const fixTaskDates = function (task, dateFormat, excludes) { - if (! excludes.length || task.manualEndTime) return; - + if (!excludes.length || task.manualEndTime) return let startTime = moment(task.startTime) startTime.add(1, 'd') let endTime = moment(task.endTime) - while (startTime.date() <= endTime.date()) { if (isInvalidDate(startTime, dateFormat, excludes)) { endTime.add(1, 'd') } startTime.add(1, 'd') } - task.endTime = endTime.toDate() } From ec298185a3b9d2c7e8a45b8aa8ba829828d3c26f Mon Sep 17 00:00:00 2001 From: Dan Shai Date: Tue, 12 Feb 2019 10:27:05 +0200 Subject: [PATCH 043/103] fix class diagram mermaid --- src/diagrams/class/classRenderer.js | 599 ++++++++++++++++------------ 1 file changed, 345 insertions(+), 254 deletions(-) diff --git a/src/diagrams/class/classRenderer.js b/src/diagrams/class/classRenderer.js index 5169fce4b..2b31c326d 100644 --- a/src/diagrams/class/classRenderer.js +++ b/src/diagrams/class/classRenderer.js @@ -1,365 +1,456 @@ -import dagre from 'dagre-layout' -import graphlib from 'graphlibrary' -import * as d3 from 'd3' +import dagre from "dagre-layout"; +import graphlib from "graphlibrary"; +import * as d3 from "d3"; -import classDb from './classDb' -import { logger } from '../../logger' -import { parser } from './parser/classDiagram' +import classDb from "./classDb"; +import { logger } from "../../logger"; +import { parser } from "./parser/classDiagram"; -parser.yy = classDb +Array.prototype.removeIf = function(callback) { + var i = this.length; + while (i--) { + if (callback(this[i], i)) { + this.splice(i, 1); + } + } +}; -const idCache = {} +parser.yy = classDb; -let classCnt = 0 +const idCache = {}; + +let classCnt = 0; const conf = { dividerMargin: 10, padding: 5, textHeight: 10 -} +}; // Todo optimize -const getGraphId = function (label) { - const keys = Object.keys(idCache) +const getGraphId = function(label) { + const keys = Object.keys(idCache); for (let i = 0; i < keys.length; i++) { if (idCache[keys[i]].label === label) { - return keys[i] + return keys[i]; } } - return undefined -} + return undefined; +}; /** * Setup arrow head and define the marker. The result is appended to the svg. */ -const insertMarkers = function (elem) { - elem.append('defs').append('marker') - .attr('id', 'extensionStart') - .attr('class', 'extension') - .attr('refX', 0) - .attr('refY', 7) - .attr('markerWidth', 190) - .attr('markerHeight', 240) - .attr('orient', 'auto') - .append('path') - .attr('d', 'M 1,7 L18,13 V 1 Z') +const insertMarkers = function(elem) { + elem + .append("defs") + .append("marker") + .attr("id", "extensionStart") + .attr("class", "extension") + .attr("refX", 0) + .attr("refY", 7) + .attr("markerWidth", 190) + .attr("markerHeight", 240) + .attr("orient", "auto") + .append("path") + .attr("d", "M 1,7 L18,13 V 1 Z"); - elem.append('defs').append('marker') - .attr('id', 'extensionEnd') - .attr('refX', 19) - .attr('refY', 7) - .attr('markerWidth', 20) - .attr('markerHeight', 28) - .attr('orient', 'auto') - .append('path') - .attr('d', 'M 1,1 V 13 L18,7 Z') // this is actual shape for arrowhead + elem + .append("defs") + .append("marker") + .attr("id", "extensionEnd") + .attr("refX", 19) + .attr("refY", 7) + .attr("markerWidth", 20) + .attr("markerHeight", 28) + .attr("orient", "auto") + .append("path") + .attr("d", "M 1,1 V 13 L18,7 Z"); // this is actual shape for arrowhead - elem.append('defs').append('marker') - .attr('id', 'compositionStart') - .attr('class', 'extension') - .attr('refX', 0) - .attr('refY', 7) - .attr('markerWidth', 190) - .attr('markerHeight', 240) - .attr('orient', 'auto') - .append('path') - .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z') + elem + .append("defs") + .append("marker") + .attr("id", "compositionStart") + .attr("class", "extension") + .attr("refX", 0) + .attr("refY", 7) + .attr("markerWidth", 190) + .attr("markerHeight", 240) + .attr("orient", "auto") + .append("path") + .attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append('defs').append('marker') - .attr('id', 'compositionEnd') - .attr('refX', 19) - .attr('refY', 7) - .attr('markerWidth', 20) - .attr('markerHeight', 28) - .attr('orient', 'auto') - .append('path') - .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z') + elem + .append("defs") + .append("marker") + .attr("id", "compositionEnd") + .attr("refX", 19) + .attr("refY", 7) + .attr("markerWidth", 20) + .attr("markerHeight", 28) + .attr("orient", "auto") + .append("path") + .attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append('defs').append('marker') - .attr('id', 'aggregationStart') - .attr('class', 'extension') - .attr('refX', 0) - .attr('refY', 7) - .attr('markerWidth', 190) - .attr('markerHeight', 240) - .attr('orient', 'auto') - .append('path') - .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z') + elem + .append("defs") + .append("marker") + .attr("id", "aggregationStart") + .attr("class", "extension") + .attr("refX", 0) + .attr("refY", 7) + .attr("markerWidth", 190) + .attr("markerHeight", 240) + .attr("orient", "auto") + .append("path") + .attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append('defs').append('marker') - .attr('id', 'aggregationEnd') - .attr('refX', 19) - .attr('refY', 7) - .attr('markerWidth', 20) - .attr('markerHeight', 28) - .attr('orient', 'auto') - .append('path') - .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z') + elem + .append("defs") + .append("marker") + .attr("id", "aggregationEnd") + .attr("refX", 19) + .attr("refY", 7) + .attr("markerWidth", 20) + .attr("markerHeight", 28) + .attr("orient", "auto") + .append("path") + .attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); - elem.append('defs').append('marker') - .attr('id', 'dependencyStart') - .attr('class', 'extension') - .attr('refX', 0) - .attr('refY', 7) - .attr('markerWidth', 190) - .attr('markerHeight', 240) - .attr('orient', 'auto') - .append('path') - .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z') + elem + .append("defs") + .append("marker") + .attr("id", "dependencyStart") + .attr("class", "extension") + .attr("refX", 0) + .attr("refY", 7) + .attr("markerWidth", 190) + .attr("markerHeight", 240) + .attr("orient", "auto") + .append("path") + .attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"); - elem.append('defs').append('marker') - .attr('id', 'dependencyEnd') - .attr('refX', 19) - .attr('refY', 7) - .attr('markerWidth', 20) - .attr('markerHeight', 28) - .attr('orient', 'auto') - .append('path') - .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z') -} + elem + .append("defs") + .append("marker") + .attr("id", "dependencyEnd") + .attr("refX", 19) + .attr("refY", 7) + .attr("markerWidth", 20) + .attr("markerHeight", 28) + .attr("orient", "auto") + .append("path") + .attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); +}; -let edgeCount = 0 -const drawEdge = function (elem, path, relation) { - const getRelationType = function (type) { +let edgeCount = 0; +let total = 0; +const drawEdge = function(elem, path, relation) { + const getRelationType = function(type) { switch (type) { case classDb.relationType.AGGREGATION: - return 'aggregation' + return "aggregation"; case classDb.relationType.EXTENSION: - return 'extension' + return "extension"; case classDb.relationType.COMPOSITION: - return 'composition' + return "composition"; case classDb.relationType.DEPENDENCY: - return 'dependency' + return "dependency"; } - } + }; + + path.points.removeIf(function(p, idx) { + return isNaN(p.y); + }); // The data for our line - const lineData = path.points + const lineData = path.points; // This is the accessor function we talked about above - const lineFunction = d3.line() - .x(function (d) { - return d.x + const lineFunction = d3 + .line() + .x(function(d) { + return d.x; }) - .y(function (d) { - return d.y + .y(function(d) { + return d.y; }) - .curve(d3.curveBasis) + .curve(d3.curveBasis); - const svgPath = elem.append('path') - .attr('d', lineFunction(lineData)) - .attr('id', 'edge' + edgeCount) - .attr('class', 'relation') - let url = '' + const svgPath = elem + .append("path") + .attr("d", lineFunction(lineData)) + .attr("id", "edge" + edgeCount) + .attr("class", "relation"); + let url = ""; if (conf.arrowMarkerAbsolute) { - url = window.location.protocol + '//' + window.location.host + window.location.pathname + window.location.search - url = url.replace(/\(/g, '\\(') - url = url.replace(/\)/g, '\\)') + url = + window.location.protocol + + "//" + + window.location.host + + window.location.pathname + + window.location.search; + url = url.replace(/\(/g, "\\("); + url = url.replace(/\)/g, "\\)"); } - if (relation.relation.type1 !== 'none') { - svgPath.attr('marker-start', 'url(' + url + '#' + getRelationType(relation.relation.type1) + 'Start' + ')') + if (relation.relation.type1 !== "none") { + svgPath.attr( + "marker-start", + "url(" + + url + + "#" + + getRelationType(relation.relation.type1) + + "Start" + + ")" + ); } - if (relation.relation.type2 !== 'none') { - svgPath.attr('marker-end', 'url(' + url + '#' + getRelationType(relation.relation.type2) + 'End' + ')') + if (relation.relation.type2 !== "none") { + svgPath.attr( + "marker-end", + "url(" + + url + + "#" + + getRelationType(relation.relation.type2) + + "End" + + ")" + ); } - let x, y - const l = path.points.length - if ((l % 2) !== 0) { - const p1 = path.points[Math.floor(l / 2)] - const p2 = path.points[Math.ceil(l / 2)] - x = (p1.x + p2.x) / 2 - y = (p1.y + p2.y) / 2 + let x, y; + const l = path.points.length; + if (l % 2 !== 0 && l > 1) { + const p1 = path.points[Math.floor(l / 2)]; + const p2 = path.points[Math.ceil(l / 2)]; + x = (p1.x + p2.x) / 2; + y = (p1.y + p2.y) / 2; } else { - const p = path.points[Math.floor(l / 2)] - x = p.x - y = p.y + const p = path.points[Math.floor(l / 2)]; + x = p.x; + y = p.y; } - if (typeof relation.title !== 'undefined') { - const g = elem.append('g') - .attr('class', 'classLabel') - const label = g.append('text') - .attr('class', 'label') - .attr('x', x) - .attr('y', y) - .attr('fill', 'red') - .attr('text-anchor', 'middle') - .text(relation.title) + if (typeof relation.title !== "undefined") { + const g = elem.append("g").attr("class", "classLabel"); + const label = g + .append("text") + .attr("class", "label") + .attr("x", x) + .attr("y", y) + .attr("fill", "red") + .attr("text-anchor", "middle") + .text(relation.title); - window.label = label - const bounds = label.node().getBBox() + window.label = label; + const bounds = label.node().getBBox(); - g.insert('rect', ':first-child') - .attr('class', 'box') - .attr('x', bounds.x - conf.padding / 2) - .attr('y', bounds.y - conf.padding / 2) - .attr('width', bounds.width + conf.padding) - .attr('height', bounds.height + conf.padding) + g.insert("rect", ":first-child") + .attr("class", "box") + .attr("x", bounds.x - conf.padding / 2) + .attr("y", bounds.y - conf.padding / 2) + .attr("width", bounds.width + conf.padding) + .attr("height", bounds.height + conf.padding); } - edgeCount++ -} + edgeCount++; +}; -const drawClass = function (elem, classDef) { - logger.info('Rendering class ' + classDef) +const drawClass = function(elem, classDef) { + logger.info("Rendering class " + classDef); - const addTspan = function (textEl, txt, isFirst) { - const tSpan = textEl.append('tspan') - .attr('x', conf.padding) - .text(txt) + const addTspan = function(textEl, txt, isFirst) { + const tSpan = textEl + .append("tspan") + .attr("x", conf.padding) + .text(txt); if (!isFirst) { - tSpan.attr('dy', conf.textHeight) + tSpan.attr("dy", conf.textHeight); } - } + }; - const id = 'classId' + classCnt + const id = "classId" + (classCnt % total); const classInfo = { id: id, label: classDef.id, width: 0, height: 0 - } + }; - const g = elem.append('g') - .attr('id', id) - .attr('class', 'classGroup') - const title = g.append('text') - .attr('x', conf.padding) - .attr('y', conf.textHeight + conf.padding) - .text(classDef.id) + const g = elem + .append("g") + .attr("id", id) + .attr("class", "classGroup"); + const title = g + .append("text") + .attr("x", conf.padding) + .attr("y", conf.textHeight + conf.padding) + .text(classDef.id); - const titleHeight = title.node().getBBox().height + const titleHeight = title.node().getBBox().height; - const membersLine = g.append('line') // text label for the x axis - .attr('x1', 0) - .attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2) - .attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2) + const membersLine = g + .append("line") // text label for the x axis + .attr("x1", 0) + .attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2) + .attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2); - const members = g.append('text') // text label for the x axis - .attr('x', conf.padding) - .attr('y', titleHeight + (conf.dividerMargin) + conf.textHeight) - .attr('fill', 'white') - .attr('class', 'classText') + const members = g + .append("text") // text label for the x axis + .attr("x", conf.padding) + .attr("y", titleHeight + conf.dividerMargin + conf.textHeight) + .attr("fill", "white") + .attr("class", "classText"); - let isFirst = true - classDef.members.forEach(function (member) { - addTspan(members, member, isFirst) - isFirst = false - }) + let isFirst = true; + classDef.members.forEach(function(member) { + addTspan(members, member, isFirst); + isFirst = false; + }); - const membersBox = members.node().getBBox() + const membersBox = members.node().getBBox(); - const methodsLine = g.append('line') // text label for the x axis - .attr('x1', 0) - .attr('y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height) - .attr('y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height) + const methodsLine = g + .append("line") // text label for the x axis + .attr("x1", 0) + .attr( + "y1", + conf.padding + titleHeight + conf.dividerMargin + membersBox.height + ) + .attr( + "y2", + conf.padding + titleHeight + conf.dividerMargin + membersBox.height + ); - const methods = g.append('text') // text label for the x axis - .attr('x', conf.padding) - .attr('y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight) - .attr('fill', 'white') - .attr('class', 'classText') + const methods = g + .append("text") // text label for the x axis + .attr("x", conf.padding) + .attr( + "y", + titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight + ) + .attr("fill", "white") + .attr("class", "classText"); - isFirst = true + isFirst = true; - classDef.methods.forEach(function (method) { - addTspan(methods, method, isFirst) - isFirst = false - }) + classDef.methods.forEach(function(method) { + addTspan(methods, method, isFirst); + isFirst = false; + }); - const classBox = g.node().getBBox() - g.insert('rect', ':first-child') - .attr('x', 0) - .attr('y', 0) - .attr('width', classBox.width + 2 * conf.padding) - .attr('height', classBox.height + conf.padding + 0.5 * conf.dividerMargin) + const classBox = g.node().getBBox(); + g.insert("rect", ":first-child") + .attr("x", 0) + .attr("y", 0) + .attr("width", classBox.width + 2 * conf.padding) + .attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin); - membersLine.attr('x2', classBox.width + 2 * conf.padding) - methodsLine.attr('x2', classBox.width + 2 * conf.padding) + membersLine.attr("x2", classBox.width + 2 * conf.padding); + methodsLine.attr("x2", classBox.width + 2 * conf.padding); - classInfo.width = classBox.width + 2 * conf.padding - classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin + classInfo.width = classBox.width + 2 * conf.padding; + classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin; - idCache[id] = classInfo - classCnt++ - return classInfo -} + idCache[id] = classInfo; + classCnt++; + return classInfo; +}; -export const setConf = function (cnf) { - const keys = Object.keys(cnf) +export const setConf = function(cnf) { + const keys = Object.keys(cnf); - keys.forEach(function (key) { - conf[key] = cnf[key] - }) -} + keys.forEach(function(key) { + conf[key] = cnf[key]; + }); +}; /** * Draws a flowchart in the tag with id: id based on the graph definition in text. * @param text * @param id */ -export const draw = function (text, id) { - parser.yy.clear() - parser.parse(text) +export const draw = function(text, id) { + parser.yy.clear(); + parser.parse(text); - logger.info('Rendering diagram ' + text) + logger.info("Rendering diagram " + text); /// / Fetch the default direction, use TD if none was found - const diagram = d3.select(`[id="${id}"]`) - insertMarkers(diagram) + const diagram = d3.select(`[id="${id}"]`); + insertMarkers(diagram); // Layout graph, Create a new directed graph const g = new graphlib.Graph({ multigraph: true - }) + }); // Set an object for the graph label g.setGraph({ isMultiGraph: true - }) + }); // Default to assigning a new object as a label for each new edge. - g.setDefaultEdgeLabel(function () { - return {} - }) + g.setDefaultEdgeLabel(function() { + return {}; + }); - const classes = classDb.getClasses() - const keys = Object.keys(classes) + const classes = classDb.getClasses(); + const keys = Object.keys(classes); + total = keys.length; for (let i = 0; i < keys.length; i++) { - const classDef = classes[keys[i]] - const node = drawClass(diagram, classDef) + const classDef = classes[keys[i]]; + const node = drawClass(diagram, classDef); // Add nodes to the graph. The first argument is the node id. The second is // metadata about the node. In this case we're going to add labels to each of // our nodes. - g.setNode(node.id, node) - logger.info('Org height: ' + node.height) + g.setNode(node.id, node); + logger.info("Org height: " + node.height); } - const relations = classDb.getRelations() - relations.forEach(function (relation) { - logger.info('tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)) - g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), { relation: relation }) - }) - dagre.layout(g) - g.nodes().forEach(function (v) { - if (typeof v !== 'undefined') { - logger.debug('Node ' + v + ': ' + JSON.stringify(g.node(v))) - d3.select('#' + v).attr('transform', 'translate(' + (g.node(v).x - (g.node(v).width / 2)) + ',' + (g.node(v).y - (g.node(v).height / 2)) + ' )') + const relations = classDb.getRelations(); + relations.forEach(function(relation) { + logger.info( + "tjoho" + + getGraphId(relation.id1) + + getGraphId(relation.id2) + + JSON.stringify(relation) + ); + g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), { + relation: relation + }); + }); + dagre.layout(g); + g.nodes().forEach(function(v) { + if (typeof v !== "undefined" && typeof g.node(v) !== "undefined") { + logger.debug("Node " + v + ": " + JSON.stringify(g.node(v))); + d3.select("#" + v).attr( + "transform", + "translate(" + + (g.node(v).x - g.node(v).width / 2) + + "," + + (g.node(v).y - g.node(v).height / 2) + + " )" + ); } - }) - g.edges().forEach(function (e) { - logger.debug('Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e))) - drawEdge(diagram, g.edge(e), g.edge(e).relation) - }) + }); + g.edges().forEach(function(e) { + if (typeof e !== "undefined" && typeof g.edge(e) !== "undefined") { + logger.debug( + "Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)) + ); + drawEdge(diagram, g.edge(e), g.edge(e).relation); + } + }); - diagram.attr('height', '100%') - diagram.attr('width', '100%') - diagram.attr('viewBox', '0 0 ' + (g.graph().width + 20) + ' ' + (g.graph().height + 20)) -} + diagram.attr("height", "100%"); + diagram.attr("width", "100%"); + diagram.attr( + "viewBox", + "0 0 " + (g.graph().width + 20) + " " + (g.graph().height + 20) + ); +}; export default { setConf, draw -} +}; From 6e846ac3e5b7794320c7c4480cb29da82eb54fe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Tue, 12 Feb 2019 17:29:38 -0200 Subject: [PATCH 044/103] Defined a renderEndDate --- src/diagrams/gantt/ganttDb.js | 8 +++++++- src/diagrams/gantt/ganttDb.spec.js | 21 ++++++++++++++++++++- src/diagrams/gantt/ganttRenderer.js | 4 ++-- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index e831601dc..502d7bf36 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -78,8 +78,13 @@ const fixTaskDates = function (task, dateFormat, excludes) { let startTime = moment(task.startTime) startTime.add(1, 'd') let endTime = moment(task.endTime) + let invalid = false while (startTime.date() <= endTime.date()) { - if (isInvalidDate(startTime, dateFormat, excludes)) { + if (!invalid) { + task.renderEndTime = endTime.toDate() + } + invalid = isInvalidDate(startTime, dateFormat, excludes) + if (invalid) { endTime.add(1, 'd') } startTime.add(1, 'd') @@ -308,6 +313,7 @@ export const addTask = function (descr, data) { type: currentSection, processed: false, manualEndTime: false, + renderEndTime: null, raw: { data: data }, task: descr } diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.js index 06c620a42..2f5643ac5 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.js @@ -175,38 +175,57 @@ describe('when using the ganttDb', function () { it('should ignore weekends', function () { ganttDb.setDateFormat('YYYY-MM-DD') ganttDb.setExcludes('weekends 2019-02-06,friday') - ganttDb.addSection('testa1') + ganttDb.addSection('weekends skip test') ganttDb.addTask('test1', 'id1,2019-02-01,1d') ganttDb.addTask('test2', 'id2,after id1,2d') ganttDb.addTask('test3', 'id3,after id2,7d') ganttDb.addTask('test4', 'id4,2019-02-01,2019-02-20') // Fixed endTime ganttDb.addTask('test5', 'id5,after id4,1d') + ganttDb.addSection('full ending taks on last day') + ganttDb.addTask('test6', 'id6,2019-02-13,2d') + ganttDb.addTask('test7', 'id7,after id6,1d') const tasks = ganttDb.getTasks() expect(tasks[0].startTime).toEqual(moment('2019-02-01', 'YYYY-MM-DD').toDate()) expect(tasks[0].endTime).toEqual(moment('2019-02-04', 'YYYY-MM-DD').toDate()) + expect(tasks[0].renderEndTime).toEqual(moment('2019-02-02', 'YYYY-MM-DD').toDate()) expect(tasks[0].id).toEqual('id1') expect(tasks[0].task).toEqual('test1') expect(tasks[1].startTime).toEqual(moment('2019-02-04', 'YYYY-MM-DD').toDate()) expect(tasks[1].endTime).toEqual(moment('2019-02-07', 'YYYY-MM-DD').toDate()) + expect(tasks[1].renderEndTime).toEqual(moment('2019-02-06', 'YYYY-MM-DD').toDate()) expect(tasks[1].id).toEqual('id2') expect(tasks[1].task).toEqual('test2') expect(tasks[2].startTime).toEqual(moment('2019-02-07', 'YYYY-MM-DD').toDate()) expect(tasks[2].endTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate()) + expect(tasks[2].renderEndTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate()) expect(tasks[2].id).toEqual('id3') expect(tasks[2].task).toEqual('test3') expect(tasks[3].startTime).toEqual(moment('2019-02-01', 'YYYY-MM-DD').toDate()) expect(tasks[3].endTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate()) + expect(tasks[3].renderEndTime).toBeNull() // Fixed end expect(tasks[3].id).toEqual('id4') expect(tasks[3].task).toEqual('test4') expect(tasks[4].startTime).toEqual(moment('2019-02-20', 'YYYY-MM-DD').toDate()) expect(tasks[4].endTime).toEqual(moment('2019-02-21', 'YYYY-MM-DD').toDate()) + expect(tasks[4].renderEndTime).toEqual(moment('2019-02-21', 'YYYY-MM-DD').toDate()) expect(tasks[4].id).toEqual('id5') expect(tasks[4].task).toEqual('test5') + + expect(tasks[5].startTime).toEqual(moment('2019-02-13', 'YYYY-MM-DD').toDate()) + expect(tasks[5].endTime).toEqual(moment('2019-02-18', 'YYYY-MM-DD').toDate()) + expect(tasks[5].renderEndTime).toEqual(moment('2019-02-15', 'YYYY-MM-DD').toDate()) + expect(tasks[5].id).toEqual('id6') + expect(tasks[5].task).toEqual('test6') + + expect(tasks[6].startTime).toEqual(moment('2019-02-18', 'YYYY-MM-DD').toDate()) + expect(tasks[6].endTime).toEqual(moment('2019-02-19', 'YYYY-MM-DD').toDate()) + expect(tasks[6].id).toEqual('id7') + expect(tasks[6].task).toEqual('test7') }) }) diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index 7d24df2a4..633d4ae84 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -135,7 +135,7 @@ export const draw = function (text, id) { return i * theGap + theTopPad }) .attr('width', function (d) { - return (timeScale(d.endTime) - timeScale(d.startTime)) + return (timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime)) }) .attr('height', theBarHeight) .attr('class', function (d) { @@ -178,7 +178,7 @@ export const draw = function (text, id) { .attr('font-size', conf.fontSize) .attr('x', function (d) { const startX = timeScale(d.startTime) - const endX = timeScale(d.endTime) + const endX = timeScale(d.renderEndTime || d.endTime) const textWidth = this.getBBox().width // Check id text width > width of rectangle From 8ce658416bde58c4b5d8901ef2fb0fb6e815b4ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Tue, 12 Feb 2019 17:40:57 -0200 Subject: [PATCH 045/103] Simplify to codeclimate --- src/diagrams/gantt/ganttDb.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 502d7bf36..4b15dc4d0 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -73,8 +73,12 @@ const isInvalidDate = function (date, dateFormat, excludes) { return excludes.indexOf(date.format(dateFormat.trim())) >= 0 } -const fixTaskDates = function (task, dateFormat, excludes) { +const checkTaskDates = function (task, dateFormat, excludes) { if (!excludes.length || task.manualEndTime) return + fixTaskDates(task, dateFormat, excludes) +} + +const fixTaskDates = function (task, dateFormat, excludes) { let startTime = moment(task.startTime) startTime.add(1, 'd') let endTime = moment(task.endTime) @@ -239,7 +243,7 @@ const compileData = function (prevTask, dataStr) { if (endTimeData) { task.endTime = getEndDate(task.startTime, dateFormat, endTimeData) task.manualEndTime = endTimeData === moment(task.endTime).format(dateFormat.trim()) - fixTaskDates(task, dateFormat, excludes) + checkTaskDates(task, dateFormat, excludes) } return task @@ -378,7 +382,7 @@ const compileTasks = function () { if (rawTasks[pos].endTime) { rawTasks[pos].processed = true rawTasks[pos].manualEndTime = rawTasks[pos].raw.endTime.data === moment(rawTasks[pos].endTime).format(dateFormat.trim()) - fixTaskDates(rawTasks[pos], dateFormat, excludes) + checkTaskDates(rawTasks[pos], dateFormat, excludes) } } From afeb3b53c98995ab9d83a2b16172c1f22982a406 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Poffo?= Date: Tue, 12 Feb 2019 17:52:18 -0200 Subject: [PATCH 046/103] Simplified methods --- src/diagrams/gantt/ganttDb.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 4b15dc4d0..0329ba9a9 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -75,17 +75,20 @@ const isInvalidDate = function (date, dateFormat, excludes) { const checkTaskDates = function (task, dateFormat, excludes) { if (!excludes.length || task.manualEndTime) return - fixTaskDates(task, dateFormat, excludes) + let startTime = moment(task.startTime, dateFormat, true) + startTime.add(1, 'd') + let endTime = moment(task.endTime, dateFormat, true) + let renderEndTime = fixTaskDates(startTime, endTime, dateFormat, excludes) + task.endTime = endTime.toDate() + task.renderEndTime = renderEndTime } -const fixTaskDates = function (task, dateFormat, excludes) { - let startTime = moment(task.startTime) - startTime.add(1, 'd') - let endTime = moment(task.endTime) +const fixTaskDates = function (startTime, endTime, dateFormat, excludes) { let invalid = false + let renderEndTime = null while (startTime.date() <= endTime.date()) { if (!invalid) { - task.renderEndTime = endTime.toDate() + renderEndTime = endTime.toDate() } invalid = isInvalidDate(startTime, dateFormat, excludes) if (invalid) { @@ -93,7 +96,7 @@ const fixTaskDates = function (task, dateFormat, excludes) { } startTime.add(1, 'd') } - task.endTime = endTime.toDate() + return renderEndTime } const getStartDate = function (prevTime, dateFormat, str) { From 752a12bda4b22e739dce779ae0a932120c308386 Mon Sep 17 00:00:00 2001 From: ivan-danilov Date: Thu, 21 Feb 2019 22:06:11 +0200 Subject: [PATCH 047/103] linkStyle now supports list of indexes with a few tests For example: linkStyle 0,1,2 interpolate basis stroke:#00f,stroke-width:2px; Other variants of linkStyle syntax are also included --- src/diagrams/flowchart/flowDb.js | 32 +++--- src/diagrams/flowchart/parser/flow.jison | 18 ++-- src/diagrams/flowchart/parser/flow.js | 112 +++++++++++---------- src/diagrams/flowchart/parser/flow.spec.js | 48 +++++++++ 4 files changed, 137 insertions(+), 73 deletions(-) diff --git a/src/diagrams/flowchart/flowDb.js b/src/diagrams/flowchart/flowDb.js index b42e9e558..35ae3eb8c 100644 --- a/src/diagrams/flowchart/flowDb.js +++ b/src/diagrams/flowchart/flowDb.js @@ -87,12 +87,14 @@ export const addLink = function (start, end, type, linktext) { * @param pos * @param interpolate */ -export const updateLinkInterpolate = function (pos, interp) { - if (pos === 'default') { - edges.defaultInterpolate = interp - } else { - edges[pos].interpolate = interp - } +export const updateLinkInterpolate = function (positions, interp) { + positions.forEach(function (pos) { + if (pos === 'default') { + edges.defaultInterpolate = interp + } else { + edges[pos].interpolate = interp + } + }) } /** @@ -100,15 +102,17 @@ export const updateLinkInterpolate = function (pos, interp) { * @param pos * @param style */ -export const updateLink = function (pos, style) { - if (pos === 'default') { - edges.defaultStyle = style - } else { - if (utils.isSubstringInArray('fill', style) === -1) { - style.push('fill:none') +export const updateLink = function (positions, style) { + positions.forEach(function (pos) { + if (pos === 'default') { + edges.defaultStyle = style + } else { + if (utils.isSubstringInArray('fill', style) === -1) { + style.push('fill:none') + } + edges[pos].style = style } - edges[pos].style = style - } + }) } export const addClass = function (id, style) { diff --git a/src/diagrams/flowchart/parser/flow.jison b/src/diagrams/flowchart/parser/flow.jison index fa14fc7cd..41bbdcde6 100644 --- a/src/diagrams/flowchart/parser/flow.jison +++ b/src/diagrams/flowchart/parser/flow.jison @@ -410,21 +410,27 @@ styleStatement:STYLE SPACE alphaNum SPACE stylesOpt linkStyleStatement : LINKSTYLE SPACE DEFAULT SPACE stylesOpt - {$$ = $1;yy.updateLink($3,$5);} - | LINKSTYLE SPACE NUM SPACE stylesOpt + {$$ = $1;yy.updateLink([$3],$5);} + | LINKSTYLE SPACE numList SPACE stylesOpt {$$ = $1;yy.updateLink($3,$5);} | LINKSTYLE SPACE DEFAULT SPACE INTERPOLATE SPACE alphaNum SPACE stylesOpt - {$$ = $1;yy.updateLinkInterpolate($3,$7);yy.updateLink($3,$9);} - | LINKSTYLE SPACE NUM SPACE INTERPOLATE SPACE alphaNum SPACE stylesOpt + {$$ = $1;yy.updateLinkInterpolate([$3],$7);yy.updateLink([$3],$9);} + | LINKSTYLE SPACE numList SPACE INTERPOLATE SPACE alphaNum SPACE stylesOpt {$$ = $1;yy.updateLinkInterpolate($3,$7);yy.updateLink($3,$9);} | LINKSTYLE SPACE DEFAULT SPACE INTERPOLATE SPACE alphaNum - {$$ = $1;yy.updateLinkInterpolate($3,$7);} - | LINKSTYLE SPACE NUM SPACE INTERPOLATE SPACE alphaNum + {$$ = $1;yy.updateLinkInterpolate([$3],$7);} + | LINKSTYLE SPACE numList SPACE INTERPOLATE SPACE alphaNum {$$ = $1;yy.updateLinkInterpolate($3,$7);} ; commentStatement: PCT PCT commentText; +numList: NUM + {$$ = [$1]} + | numList COMMA NUM + {$1.push($3);$$ = $1;} + ; + stylesOpt: style {$$ = [$1]} | stylesOpt COMMA style diff --git a/src/diagrams/flowchart/parser/flow.js b/src/diagrams/flowchart/parser/flow.js index a6f4aa644..141ca04e5 100644 --- a/src/diagrams/flowchart/parser/flow.js +++ b/src/diagrams/flowchart/parser/flow.js @@ -71,13 +71,13 @@ recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) } */ -var parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,3],$V2=[1,5],$V3=[1,8,9,10,11,13,18,30,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],$V4=[2,2],$V5=[1,12],$V6=[1,13],$V7=[1,14],$V8=[1,15],$V9=[1,31],$Va=[1,33],$Vb=[1,22],$Vc=[1,34],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,27],$Vh=[1,28],$Vi=[1,38],$Vj=[1,40],$Vk=[1,35],$Vl=[1,39],$Vm=[1,45],$Vn=[1,44],$Vo=[1,36],$Vp=[1,37],$Vq=[1,41],$Vr=[1,42],$Vs=[1,43],$Vt=[1,8,9,10,11,13,18,30,32,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],$Vu=[1,53],$Vv=[1,52],$Vw=[1,54],$Vx=[1,72],$Vy=[1,80],$Vz=[1,81],$VA=[1,66],$VB=[1,65],$VC=[1,85],$VD=[1,84],$VE=[1,82],$VF=[1,83],$VG=[1,73],$VH=[1,68],$VI=[1,67],$VJ=[1,63],$VK=[1,75],$VL=[1,76],$VM=[1,77],$VN=[1,78],$VO=[1,79],$VP=[1,70],$VQ=[1,69],$VR=[8,9,11],$VS=[8,9,11,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64],$VT=[1,115],$VU=[8,9,10,11,13,15,18,36,38,40,42,46,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,86,88,89,91,92,94,95,96,97,98],$VV=[8,9,10,11,12,13,15,16,17,18,30,32,36,37,38,39,40,41,42,43,46,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,71,72,73,74,75,78,81,84,86,88,89,91,92,94,95,96,97,98],$VW=[1,117],$VX=[1,118],$VY=[8,9,10,11,13,18,30,32,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],$VZ=[8,9,10,11,12,13,15,16,17,18,30,32,37,39,41,43,46,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,71,72,73,74,75,78,81,84,86,88,89,91,92,94,95,96,97,98],$V_=[13,18,46,81,86,88,89,91,92,94,95,96,97,98],$V$=[13,18,46,49,65,81,86,88,89,91,92,94,95,96,97,98],$V01=[1,191],$V11=[1,188],$V21=[1,195],$V31=[1,192],$V41=[1,189],$V51=[1,196],$V61=[1,186],$V71=[1,187],$V81=[1,190],$V91=[1,193],$Va1=[1,194],$Vb1=[1,213],$Vc1=[8,9,11,86],$Vd1=[8,9,10,11,46,71,80,81,84,86,88,89,90,91,92]; +var flow = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,4],$V1=[1,3],$V2=[1,5],$V3=[1,8,9,10,11,13,18,30,46,71,72,73,74,75,85,86,89,90,92,93,95,96,97,98,99],$V4=[2,2],$V5=[1,12],$V6=[1,13],$V7=[1,14],$V8=[1,15],$V9=[1,31],$Va=[1,33],$Vb=[1,22],$Vc=[1,34],$Vd=[1,24],$Ve=[1,25],$Vf=[1,26],$Vg=[1,27],$Vh=[1,28],$Vi=[1,38],$Vj=[1,40],$Vk=[1,35],$Vl=[1,39],$Vm=[1,45],$Vn=[1,44],$Vo=[1,36],$Vp=[1,37],$Vq=[1,41],$Vr=[1,42],$Vs=[1,43],$Vt=[1,8,9,10,11,13,18,30,32,46,71,72,73,74,75,85,86,89,90,92,93,95,96,97,98,99],$Vu=[1,53],$Vv=[1,52],$Vw=[1,54],$Vx=[1,72],$Vy=[1,80],$Vz=[1,81],$VA=[1,66],$VB=[1,65],$VC=[1,85],$VD=[1,84],$VE=[1,82],$VF=[1,83],$VG=[1,73],$VH=[1,68],$VI=[1,67],$VJ=[1,63],$VK=[1,75],$VL=[1,76],$VM=[1,77],$VN=[1,78],$VO=[1,79],$VP=[1,70],$VQ=[1,69],$VR=[8,9,11],$VS=[8,9,11,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64],$VT=[1,115],$VU=[8,9,10,11,13,15,18,36,38,40,42,46,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,85,86,89,90,92,93,95,96,97,98,99],$VV=[8,9,10,11,12,13,15,16,17,18,30,32,36,37,38,39,40,41,42,43,46,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,71,72,73,74,75,78,84,85,86,89,90,92,93,95,96,97,98,99],$VW=[1,117],$VX=[1,118],$VY=[8,9,10,11,13,18,30,32,46,71,72,73,74,75,85,86,89,90,92,93,95,96,97,98,99],$VZ=[8,9,10,11,12,13,15,16,17,18,30,32,37,39,41,43,46,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,71,72,73,74,75,78,84,85,86,89,90,92,93,95,96,97,98,99],$V_=[13,18,46,85,86,89,90,92,93,95,96,97,98,99],$V$=[13,18,46,49,65,85,86,89,90,92,93,95,96,97,98,99],$V01=[10,86],$V11=[1,193],$V21=[1,190],$V31=[1,197],$V41=[1,194],$V51=[1,198],$V61=[1,191],$V71=[1,188],$V81=[1,189],$V91=[1,192],$Va1=[1,195],$Vb1=[1,196],$Vc1=[1,216],$Vd1=[8,9,11,86],$Ve1=[8,9,10,11,46,71,80,84,85,86,89,90,91,92,93]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"mermaidDoc":3,"graphConfig":4,"document":5,"line":6,"statement":7,"SEMI":8,"NEWLINE":9,"SPACE":10,"EOF":11,"GRAPH":12,"DIR":13,"FirstStmtSeperator":14,"TAGEND":15,"TAGSTART":16,"UP":17,"DOWN":18,"ending":19,"endToken":20,"spaceList":21,"spaceListNewline":22,"verticeStatement":23,"separator":24,"styleStatement":25,"linkStyleStatement":26,"classDefStatement":27,"classStatement":28,"clickStatement":29,"subgraph":30,"text":31,"end":32,"vertex":33,"link":34,"alphaNum":35,"SQS":36,"SQE":37,"PS":38,"PE":39,"(-":40,"-)":41,"DIAMOND_START":42,"DIAMOND_STOP":43,"alphaNumStatement":44,"alphaNumToken":45,"MINUS":46,"linkStatement":47,"arrowText":48,"TESTSTR":49,"--":50,"ARROW_POINT":51,"ARROW_CIRCLE":52,"ARROW_CROSS":53,"ARROW_OPEN":54,"-.":55,"DOTTED_ARROW_POINT":56,"DOTTED_ARROW_CIRCLE":57,"DOTTED_ARROW_CROSS":58,"DOTTED_ARROW_OPEN":59,"==":60,"THICK_ARROW_POINT":61,"THICK_ARROW_CIRCLE":62,"THICK_ARROW_CROSS":63,"THICK_ARROW_OPEN":64,"PIPE":65,"textToken":66,"STR":67,"commentText":68,"commentToken":69,"keywords":70,"STYLE":71,"LINKSTYLE":72,"CLASSDEF":73,"CLASS":74,"CLICK":75,"textNoTags":76,"textNoTagsToken":77,"DEFAULT":78,"stylesOpt":79,"HEX":80,"NUM":81,"INTERPOLATE":82,"commentStatement":83,"PCT":84,"style":85,"COMMA":86,"styleComponent":87,"ALPHA":88,"COLON":89,"UNIT":90,"BRKT":91,"DOT":92,"graphCodeTokens":93,"PUNCTUATION":94,"UNICODE_TEXT":95,"PLUS":96,"EQUALS":97,"MULT":98,"TAG_START":99,"TAG_END":100,"QUOTE":101,"$accept":0,"$end":1}, -terminals_: {2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"DIR",15:"TAGEND",16:"TAGSTART",17:"UP",18:"DOWN",30:"subgraph",32:"end",36:"SQS",37:"SQE",38:"PS",39:"PE",40:"(-",41:"-)",42:"DIAMOND_START",43:"DIAMOND_STOP",46:"MINUS",49:"TESTSTR",50:"--",51:"ARROW_POINT",52:"ARROW_CIRCLE",53:"ARROW_CROSS",54:"ARROW_OPEN",55:"-.",56:"DOTTED_ARROW_POINT",57:"DOTTED_ARROW_CIRCLE",58:"DOTTED_ARROW_CROSS",59:"DOTTED_ARROW_OPEN",60:"==",61:"THICK_ARROW_POINT",62:"THICK_ARROW_CIRCLE",63:"THICK_ARROW_CROSS",64:"THICK_ARROW_OPEN",65:"PIPE",67:"STR",71:"STYLE",72:"LINKSTYLE",73:"CLASSDEF",74:"CLASS",75:"CLICK",78:"DEFAULT",80:"HEX",81:"NUM",82:"INTERPOLATE",84:"PCT",86:"COMMA",88:"ALPHA",89:"COLON",90:"UNIT",91:"BRKT",92:"DOT",94:"PUNCTUATION",95:"UNICODE_TEXT",96:"PLUS",97:"EQUALS",98:"MULT",99:"TAG_START",100:"TAG_END",101:"QUOTE"}, -productions_: [0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,4],[4,4],[4,4],[4,4],[4,4],[19,2],[19,1],[20,1],[20,1],[20,1],[14,1],[14,1],[14,2],[22,2],[22,2],[22,1],[22,1],[21,2],[21,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,5],[7,4],[24,1],[24,1],[24,1],[23,3],[23,1],[33,4],[33,5],[33,6],[33,7],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,1],[33,2],[35,1],[35,2],[44,1],[44,1],[44,1],[44,1],[34,2],[34,3],[34,3],[34,1],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[48,3],[31,1],[31,2],[31,1],[68,1],[68,2],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[76,1],[76,2],[27,5],[27,5],[28,5],[29,5],[29,7],[29,5],[29,7],[25,5],[25,5],[26,5],[26,5],[26,9],[26,9],[26,7],[26,7],[83,3],[79,1],[79,3],[85,1],[85,2],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[69,1],[69,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[77,1],[77,1],[77,1],[77,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1]], +symbols_: {"error":2,"mermaidDoc":3,"graphConfig":4,"document":5,"line":6,"statement":7,"SEMI":8,"NEWLINE":9,"SPACE":10,"EOF":11,"GRAPH":12,"DIR":13,"FirstStmtSeperator":14,"TAGEND":15,"TAGSTART":16,"UP":17,"DOWN":18,"ending":19,"endToken":20,"spaceList":21,"spaceListNewline":22,"verticeStatement":23,"separator":24,"styleStatement":25,"linkStyleStatement":26,"classDefStatement":27,"classStatement":28,"clickStatement":29,"subgraph":30,"text":31,"end":32,"vertex":33,"link":34,"alphaNum":35,"SQS":36,"SQE":37,"PS":38,"PE":39,"(-":40,"-)":41,"DIAMOND_START":42,"DIAMOND_STOP":43,"alphaNumStatement":44,"alphaNumToken":45,"MINUS":46,"linkStatement":47,"arrowText":48,"TESTSTR":49,"--":50,"ARROW_POINT":51,"ARROW_CIRCLE":52,"ARROW_CROSS":53,"ARROW_OPEN":54,"-.":55,"DOTTED_ARROW_POINT":56,"DOTTED_ARROW_CIRCLE":57,"DOTTED_ARROW_CROSS":58,"DOTTED_ARROW_OPEN":59,"==":60,"THICK_ARROW_POINT":61,"THICK_ARROW_CIRCLE":62,"THICK_ARROW_CROSS":63,"THICK_ARROW_OPEN":64,"PIPE":65,"textToken":66,"STR":67,"commentText":68,"commentToken":69,"keywords":70,"STYLE":71,"LINKSTYLE":72,"CLASSDEF":73,"CLASS":74,"CLICK":75,"textNoTags":76,"textNoTagsToken":77,"DEFAULT":78,"stylesOpt":79,"HEX":80,"numList":81,"INTERPOLATE":82,"commentStatement":83,"PCT":84,"NUM":85,"COMMA":86,"style":87,"styleComponent":88,"ALPHA":89,"COLON":90,"UNIT":91,"BRKT":92,"DOT":93,"graphCodeTokens":94,"PUNCTUATION":95,"UNICODE_TEXT":96,"PLUS":97,"EQUALS":98,"MULT":99,"TAG_START":100,"TAG_END":101,"QUOTE":102,"$accept":0,"$end":1}, +terminals_: {2:"error",8:"SEMI",9:"NEWLINE",10:"SPACE",11:"EOF",12:"GRAPH",13:"DIR",15:"TAGEND",16:"TAGSTART",17:"UP",18:"DOWN",30:"subgraph",32:"end",36:"SQS",37:"SQE",38:"PS",39:"PE",40:"(-",41:"-)",42:"DIAMOND_START",43:"DIAMOND_STOP",46:"MINUS",49:"TESTSTR",50:"--",51:"ARROW_POINT",52:"ARROW_CIRCLE",53:"ARROW_CROSS",54:"ARROW_OPEN",55:"-.",56:"DOTTED_ARROW_POINT",57:"DOTTED_ARROW_CIRCLE",58:"DOTTED_ARROW_CROSS",59:"DOTTED_ARROW_OPEN",60:"==",61:"THICK_ARROW_POINT",62:"THICK_ARROW_CIRCLE",63:"THICK_ARROW_CROSS",64:"THICK_ARROW_OPEN",65:"PIPE",67:"STR",71:"STYLE",72:"LINKSTYLE",73:"CLASSDEF",74:"CLASS",75:"CLICK",78:"DEFAULT",80:"HEX",82:"INTERPOLATE",84:"PCT",85:"NUM",86:"COMMA",89:"ALPHA",90:"COLON",91:"UNIT",92:"BRKT",93:"DOT",95:"PUNCTUATION",96:"UNICODE_TEXT",97:"PLUS",98:"EQUALS",99:"MULT",100:"TAG_START",101:"TAG_END",102:"QUOTE"}, +productions_: [0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,4],[4,4],[4,4],[4,4],[4,4],[19,2],[19,1],[20,1],[20,1],[20,1],[14,1],[14,1],[14,2],[22,2],[22,2],[22,1],[22,1],[21,2],[21,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,5],[7,4],[24,1],[24,1],[24,1],[23,3],[23,1],[33,4],[33,5],[33,6],[33,7],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,1],[33,2],[35,1],[35,2],[44,1],[44,1],[44,1],[44,1],[34,2],[34,3],[34,3],[34,1],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[48,3],[31,1],[31,2],[31,1],[68,1],[68,2],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[76,1],[76,2],[27,5],[27,5],[28,5],[29,5],[29,7],[29,5],[29,7],[25,5],[25,5],[26,5],[26,5],[26,9],[26,9],[26,7],[26,7],[83,3],[81,1],[81,3],[79,1],[79,3],[87,1],[87,2],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[88,1],[69,1],[69,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[77,1],[77,1],[77,1],[77,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1],[94,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -285,27 +285,36 @@ break; case 117: this.$ = $$[$0-4];yy.addVertex($$[$0-2],undefined,undefined,$$[$0]); break; -case 118: case 119: case 120: +case 118: case 120: this.$ = $$[$0-4];yy.updateLink($$[$0-2],$$[$0]); break; -case 121: case 122: +case 119: +this.$ = $$[$0-4];yy.updateLink([$$[$0-2]],$$[$0]); +break; +case 121: +this.$ = $$[$0-8];yy.updateLinkInterpolate([$$[$0-6]],$$[$0-2]);yy.updateLink([$$[$0-6]],$$[$0]); +break; +case 122: this.$ = $$[$0-8];yy.updateLinkInterpolate($$[$0-6],$$[$0-2]);yy.updateLink($$[$0-6],$$[$0]); break; -case 123: case 124: +case 123: +this.$ = $$[$0-6];yy.updateLinkInterpolate([$$[$0-4]],$$[$0]); +break; +case 124: this.$ = $$[$0-6];yy.updateLinkInterpolate($$[$0-4],$$[$0]); break; -case 126: +case 126: case 128: this.$ = [$$[$0]] break; -case 127: +case 127: case 129: $$[$0-2].push($$[$0]);this.$ = $$[$0-2]; break; -case 129: +case 131: this.$ = $$[$0-1] + $$[$0]; break; } }, -table: [{3:1,4:2,9:$V0,10:$V1,12:$V2},{1:[3]},o($V3,$V4,{5:6}),{4:7,9:$V0,10:$V1,12:$V2},{4:8,9:$V0,10:$V1,12:$V2},{10:[1,9]},{1:[2,1],6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($V3,[2,9]),o($V3,[2,10]),{13:[1,46],15:[1,47],16:[1,48],17:[1,49],18:[1,50]},o($Vt,[2,3]),o($Vt,[2,4]),o($Vt,[2,5]),o($Vt,[2,6]),o($Vt,[2,7]),o($Vt,[2,8]),{8:$Vu,9:$Vv,11:$Vw,24:51},{8:$Vu,9:$Vv,11:$Vw,24:55},{8:$Vu,9:$Vv,11:$Vw,24:56},{8:$Vu,9:$Vv,11:$Vw,24:57},{8:$Vu,9:$Vv,11:$Vw,24:58},{8:$Vu,9:$Vv,11:$Vw,24:59},{8:$Vu,9:$Vv,10:$Vx,11:$Vw,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,24:61,30:$VE,31:60,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VR,[2,42],{34:86,47:87,50:[1,88],51:[1,91],52:[1,92],53:[1,93],54:[1,94],55:[1,89],56:[1,95],57:[1,96],58:[1,97],59:[1,98],60:[1,90],61:[1,99],62:[1,100],63:[1,101],64:[1,102]}),{10:[1,103]},{10:[1,104]},{10:[1,105]},{10:[1,106]},{10:[1,107]},o($VS,[2,55],{45:32,21:113,44:114,10:$VT,13:$V9,15:[1,112],18:$Va,36:[1,108],38:[1,109],40:[1,110],42:[1,111],46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VU,[2,57]),o($VU,[2,59]),o($VU,[2,60]),o($VU,[2,61]),o($VU,[2,62]),o($VV,[2,154]),o($VV,[2,155]),o($VV,[2,156]),o($VV,[2,157]),o($VV,[2,158]),o($VV,[2,159]),o($VV,[2,160]),o($VV,[2,161]),o($VV,[2,162]),o($VV,[2,163]),o($VV,[2,164]),{8:$VW,9:$VX,10:$VT,14:116,21:119},{8:$VW,9:$VX,10:$VT,14:120,21:119},{8:$VW,9:$VX,10:$VT,14:121,21:119},{8:$VW,9:$VX,10:$VT,14:122,21:119},{8:$VW,9:$VX,10:$VT,14:123,21:119},o($Vt,[2,30]),o($Vt,[2,38]),o($Vt,[2,39]),o($Vt,[2,40]),o($Vt,[2,31]),o($Vt,[2,32]),o($Vt,[2,33]),o($Vt,[2,34]),o($Vt,[2,35]),{8:$Vu,9:$Vv,10:$Vx,11:$Vw,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,24:124,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VY,$V4,{5:126}),o($VZ,[2,92]),o($VZ,[2,94]),o($VZ,[2,143]),o($VZ,[2,144]),o($VZ,[2,145]),o($VZ,[2,146]),o($VZ,[2,147]),o($VZ,[2,148]),o($VZ,[2,149]),o($VZ,[2,150]),o($VZ,[2,151]),o($VZ,[2,152]),o($VZ,[2,153]),o($VZ,[2,97]),o($VZ,[2,98]),o($VZ,[2,99]),o($VZ,[2,100]),o($VZ,[2,101]),o($VZ,[2,102]),o($VZ,[2,103]),o($VZ,[2,104]),o($VZ,[2,105]),o($VZ,[2,106]),o($VZ,[2,107]),{13:$V9,18:$Va,33:127,35:29,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($V_,[2,66],{48:128,49:[1,129],65:[1,130]}),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:131,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:132,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:133,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($V$,[2,79]),o($V$,[2,80]),o($V$,[2,81]),o($V$,[2,82]),o($V$,[2,83]),o($V$,[2,84]),o($V$,[2,85]),o($V$,[2,86]),o($V$,[2,87]),o($V$,[2,88]),o($V$,[2,89]),o($V$,[2,90]),{13:$V9,18:$Va,35:134,44:30,45:32,46:$Vc,80:[1,135],81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{78:[1,136],81:[1,137]},{13:$V9,18:$Va,35:139,44:30,45:32,46:$Vc,78:[1,138],81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{13:$V9,18:$Va,35:140,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{13:$V9,18:$Va,35:141,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:142,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:144,32:$VF,38:[1,143],45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:145,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:146,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:147,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VS,[2,56]),o($VU,[2,58]),o($VS,[2,29],{21:148,10:$VT}),o($V3,[2,11]),o($V3,[2,21]),o($V3,[2,22]),{9:[1,149]},o($V3,[2,12]),o($V3,[2,13]),o($V3,[2,14]),o($V3,[2,15]),o($VY,$V4,{5:150}),o($VZ,[2,93]),{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,32:[1,151],33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VR,[2,41]),o($V_,[2,63],{10:[1,152]}),{10:[1,153]},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:154,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,51:[1,155],52:[1,156],53:[1,157],54:[1,158],60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,56:[1,159],57:[1,160],58:[1,161],59:[1,162],60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,61:[1,163],62:[1,164],63:[1,165],64:[1,166],66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:[1,167],13:$V9,18:$Va,44:114,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:[1,168]},{10:[1,169]},{10:[1,170]},{10:[1,171]},{10:[1,172],13:$V9,18:$Va,44:114,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:[1,173],13:$V9,18:$Va,44:114,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:[1,174],13:$V9,18:$Va,44:114,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,37:[1,175],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:176,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,39:[1,177],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,41:[1,178],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,43:[1,179],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,37:[1,180],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VS,[2,28]),o($V3,[2,23]),{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,32:[1,181],33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($Vt,[2,37]),o($V_,[2,65]),o($V_,[2,64]),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,65:[1,182],66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($V_,[2,67]),o($V_,[2,68]),o($V_,[2,69]),o($V_,[2,70]),o($V_,[2,71]),o($V_,[2,72]),o($V_,[2,73]),o($V_,[2,74]),o($V_,[2,75]),o($V_,[2,76]),o($V_,[2,77]),o($V_,[2,78]),{10:$V01,46:$V11,71:$V21,79:183,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:197,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:198,80:$V31,81:$V41,82:[1,199],84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:200,80:$V31,81:$V41,82:[1,201],84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:202,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:203,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{13:$V9,18:$Va,35:204,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{13:$V9,18:$Va,35:205,44:30,45:32,46:$Vc,67:[1,206],81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VS,[2,43],{21:207,10:$VT}),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,39:[1,208],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,81:$Vi,84:$VQ,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},o($VS,[2,49],{21:209,10:$VT}),o($VS,[2,47],{21:210,10:$VT}),o($VS,[2,51],{21:211,10:$VT}),o($VS,[2,53],{21:212,10:$VT}),o($Vt,[2,36]),o([10,13,18,46,81,86,88,89,91,92,94,95,96,97,98],[2,91]),o($VR,[2,117],{86:$Vb1}),o($Vc1,[2,126],{87:214,10:$V01,46:$V11,71:$V21,80:$V31,81:$V41,84:$V51,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1}),o($Vd1,[2,128]),o($Vd1,[2,130]),o($Vd1,[2,131]),o($Vd1,[2,132]),o($Vd1,[2,133]),o($Vd1,[2,134]),o($Vd1,[2,135]),o($Vd1,[2,136]),o($Vd1,[2,137]),o($Vd1,[2,138]),o($Vd1,[2,139]),o($Vd1,[2,140]),o($VR,[2,118],{86:$Vb1}),o($VR,[2,119],{86:$Vb1}),{10:[1,215]},o($VR,[2,120],{86:$Vb1}),{10:[1,216]},o($VR,[2,110],{86:$Vb1}),o($VR,[2,111],{86:$Vb1}),o($VR,[2,112],{45:32,44:114,13:$V9,18:$Va,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VR,[2,113],{45:32,44:114,10:[1,217],13:$V9,18:$Va,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VR,[2,115],{10:[1,218]}),o($VS,[2,44]),{39:[1,219]},o($VS,[2,50]),o($VS,[2,48]),o($VS,[2,52]),o($VS,[2,54]),{10:$V01,46:$V11,71:$V21,80:$V31,81:$V41,84:$V51,85:220,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},o($Vd1,[2,129]),{13:$V9,18:$Va,35:221,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{13:$V9,18:$Va,35:222,44:30,45:32,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs},{67:[1,223]},{67:[1,224]},o($VS,[2,45],{21:225,10:$VT}),o($Vc1,[2,127],{87:214,10:$V01,46:$V11,71:$V21,80:$V31,81:$V41,84:$V51,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1}),o($VR,[2,123],{45:32,44:114,10:[1,226],13:$V9,18:$Va,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VR,[2,124],{45:32,44:114,10:[1,227],13:$V9,18:$Va,46:$Vc,81:$Vi,86:$Vj,88:$Vk,89:$Vl,91:$Vm,92:$Vn,94:$Vo,95:$Vp,96:$Vq,97:$Vr,98:$Vs}),o($VR,[2,114]),o($VR,[2,116]),o($VS,[2,46]),{10:$V01,46:$V11,71:$V21,79:228,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},{10:$V01,46:$V11,71:$V21,79:229,80:$V31,81:$V41,84:$V51,85:184,87:185,88:$V61,89:$V71,90:$V81,91:$V91,92:$Va1},o($VR,[2,121],{86:$Vb1}),o($VR,[2,122],{86:$Vb1})], +table: [{3:1,4:2,9:$V0,10:$V1,12:$V2},{1:[3]},o($V3,$V4,{5:6}),{4:7,9:$V0,10:$V1,12:$V2},{4:8,9:$V0,10:$V1,12:$V2},{10:[1,9]},{1:[2,1],6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($V3,[2,9]),o($V3,[2,10]),{13:[1,46],15:[1,47],16:[1,48],17:[1,49],18:[1,50]},o($Vt,[2,3]),o($Vt,[2,4]),o($Vt,[2,5]),o($Vt,[2,6]),o($Vt,[2,7]),o($Vt,[2,8]),{8:$Vu,9:$Vv,11:$Vw,24:51},{8:$Vu,9:$Vv,11:$Vw,24:55},{8:$Vu,9:$Vv,11:$Vw,24:56},{8:$Vu,9:$Vv,11:$Vw,24:57},{8:$Vu,9:$Vv,11:$Vw,24:58},{8:$Vu,9:$Vv,11:$Vw,24:59},{8:$Vu,9:$Vv,10:$Vx,11:$Vw,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,24:61,30:$VE,31:60,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($VR,[2,42],{34:86,47:87,50:[1,88],51:[1,91],52:[1,92],53:[1,93],54:[1,94],55:[1,89],56:[1,95],57:[1,96],58:[1,97],59:[1,98],60:[1,90],61:[1,99],62:[1,100],63:[1,101],64:[1,102]}),{10:[1,103]},{10:[1,104]},{10:[1,105]},{10:[1,106]},{10:[1,107]},o($VS,[2,55],{45:32,21:113,44:114,10:$VT,13:$V9,15:[1,112],18:$Va,36:[1,108],38:[1,109],40:[1,110],42:[1,111],46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs}),o($VU,[2,57]),o($VU,[2,59]),o($VU,[2,60]),o($VU,[2,61]),o($VU,[2,62]),o($VV,[2,156]),o($VV,[2,157]),o($VV,[2,158]),o($VV,[2,159]),o($VV,[2,160]),o($VV,[2,161]),o($VV,[2,162]),o($VV,[2,163]),o($VV,[2,164]),o($VV,[2,165]),o($VV,[2,166]),{8:$VW,9:$VX,10:$VT,14:116,21:119},{8:$VW,9:$VX,10:$VT,14:120,21:119},{8:$VW,9:$VX,10:$VT,14:121,21:119},{8:$VW,9:$VX,10:$VT,14:122,21:119},{8:$VW,9:$VX,10:$VT,14:123,21:119},o($Vt,[2,30]),o($Vt,[2,38]),o($Vt,[2,39]),o($Vt,[2,40]),o($Vt,[2,31]),o($Vt,[2,32]),o($Vt,[2,33]),o($Vt,[2,34]),o($Vt,[2,35]),{8:$Vu,9:$Vv,10:$Vx,11:$Vw,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,24:124,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($VY,$V4,{5:126}),o($VZ,[2,92]),o($VZ,[2,94]),o($VZ,[2,145]),o($VZ,[2,146]),o($VZ,[2,147]),o($VZ,[2,148]),o($VZ,[2,149]),o($VZ,[2,150]),o($VZ,[2,151]),o($VZ,[2,152]),o($VZ,[2,153]),o($VZ,[2,154]),o($VZ,[2,155]),o($VZ,[2,97]),o($VZ,[2,98]),o($VZ,[2,99]),o($VZ,[2,100]),o($VZ,[2,101]),o($VZ,[2,102]),o($VZ,[2,103]),o($VZ,[2,104]),o($VZ,[2,105]),o($VZ,[2,106]),o($VZ,[2,107]),{13:$V9,18:$Va,33:127,35:29,44:30,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($V_,[2,66],{48:128,49:[1,129],65:[1,130]}),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:131,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:132,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:133,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($V$,[2,79]),o($V$,[2,80]),o($V$,[2,81]),o($V$,[2,82]),o($V$,[2,83]),o($V$,[2,84]),o($V$,[2,85]),o($V$,[2,86]),o($V$,[2,87]),o($V$,[2,88]),o($V$,[2,89]),o($V$,[2,90]),{13:$V9,18:$Va,35:134,44:30,45:32,46:$Vc,80:[1,135],85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{78:[1,136],81:137,85:[1,138]},{13:$V9,18:$Va,35:140,44:30,45:32,46:$Vc,78:[1,139],85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{13:$V9,18:$Va,35:141,44:30,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{13:$V9,18:$Va,35:142,44:30,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:143,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:145,32:$VF,38:[1,144],45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:146,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:147,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:148,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($VS,[2,56]),o($VU,[2,58]),o($VS,[2,29],{21:149,10:$VT}),o($V3,[2,11]),o($V3,[2,21]),o($V3,[2,22]),{9:[1,150]},o($V3,[2,12]),o($V3,[2,13]),o($V3,[2,14]),o($V3,[2,15]),o($VY,$V4,{5:151}),o($VZ,[2,93]),{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,32:[1,152],33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($VR,[2,41]),o($V_,[2,63],{10:[1,153]}),{10:[1,154]},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:155,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,51:[1,156],52:[1,157],53:[1,158],54:[1,159],60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,56:[1,160],57:[1,161],58:[1,162],59:[1,163],60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,61:[1,164],62:[1,165],63:[1,166],64:[1,167],66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:[1,168],13:$V9,18:$Va,44:114,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:[1,169]},{10:[1,170]},{10:[1,171],86:[1,172]},o($V01,[2,126]),{10:[1,173]},{10:[1,174],13:$V9,18:$Va,44:114,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:[1,175],13:$V9,18:$Va,44:114,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:[1,176],13:$V9,18:$Va,44:114,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,37:[1,177],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,31:178,32:$VF,45:71,46:$VG,50:$VH,60:$VI,66:62,67:$VJ,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,39:[1,179],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,41:[1,180],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,43:[1,181],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,37:[1,182],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($VS,[2,28]),o($V3,[2,23]),{6:10,7:11,8:$V5,9:$V6,10:$V7,11:$V8,13:$V9,18:$Va,23:16,25:17,26:18,27:19,28:20,29:21,30:$Vb,32:[1,183],33:23,35:29,44:30,45:32,46:$Vc,71:$Vd,72:$Ve,73:$Vf,74:$Vg,75:$Vh,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($Vt,[2,37]),o($V_,[2,65]),o($V_,[2,64]),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,45:71,46:$VG,50:$VH,60:$VI,65:[1,184],66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($V_,[2,67]),o($V_,[2,68]),o($V_,[2,69]),o($V_,[2,70]),o($V_,[2,71]),o($V_,[2,72]),o($V_,[2,73]),o($V_,[2,74]),o($V_,[2,75]),o($V_,[2,76]),o($V_,[2,77]),o($V_,[2,78]),{10:$V11,46:$V21,71:$V31,79:185,80:$V41,84:$V51,85:$V61,87:186,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},{10:$V11,46:$V21,71:$V31,79:199,80:$V41,84:$V51,85:$V61,87:186,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},{10:$V11,46:$V21,71:$V31,79:200,80:$V41,82:[1,201],84:$V51,85:$V61,87:186,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},{10:$V11,46:$V21,71:$V31,79:202,80:$V41,82:[1,203],84:$V51,85:$V61,87:186,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},{85:[1,204]},{10:$V11,46:$V21,71:$V31,79:205,80:$V41,84:$V51,85:$V61,87:186,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},{10:$V11,46:$V21,71:$V31,79:206,80:$V41,84:$V51,85:$V61,87:186,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},{13:$V9,18:$Va,35:207,44:30,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{13:$V9,18:$Va,35:208,44:30,45:32,46:$Vc,67:[1,209],85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($VS,[2,43],{21:210,10:$VT}),{10:$Vx,12:$Vy,13:$Vz,15:$VA,16:$VB,17:$VC,18:$VD,30:$VE,32:$VF,39:[1,211],45:71,46:$VG,50:$VH,60:$VI,66:125,70:74,71:$VK,72:$VL,73:$VM,74:$VN,75:$VO,77:64,78:$VP,84:$VQ,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},o($VS,[2,49],{21:212,10:$VT}),o($VS,[2,47],{21:213,10:$VT}),o($VS,[2,51],{21:214,10:$VT}),o($VS,[2,53],{21:215,10:$VT}),o($Vt,[2,36]),o([10,13,18,46,85,86,89,90,92,93,95,96,97,98,99],[2,91]),o($VR,[2,117],{86:$Vc1}),o($Vd1,[2,128],{88:217,10:$V11,46:$V21,71:$V31,80:$V41,84:$V51,85:$V61,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1}),o($Ve1,[2,130]),o($Ve1,[2,132]),o($Ve1,[2,133]),o($Ve1,[2,134]),o($Ve1,[2,135]),o($Ve1,[2,136]),o($Ve1,[2,137]),o($Ve1,[2,138]),o($Ve1,[2,139]),o($Ve1,[2,140]),o($Ve1,[2,141]),o($Ve1,[2,142]),o($VR,[2,118],{86:$Vc1}),o($VR,[2,119],{86:$Vc1}),{10:[1,218]},o($VR,[2,120],{86:$Vc1}),{10:[1,219]},o($V01,[2,127]),o($VR,[2,110],{86:$Vc1}),o($VR,[2,111],{86:$Vc1}),o($VR,[2,112],{45:32,44:114,13:$V9,18:$Va,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs}),o($VR,[2,113],{45:32,44:114,10:[1,220],13:$V9,18:$Va,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs}),o($VR,[2,115],{10:[1,221]}),o($VS,[2,44]),{39:[1,222]},o($VS,[2,50]),o($VS,[2,48]),o($VS,[2,52]),o($VS,[2,54]),{10:$V11,46:$V21,71:$V31,80:$V41,84:$V51,85:$V61,87:223,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},o($Ve1,[2,131]),{13:$V9,18:$Va,35:224,44:30,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{13:$V9,18:$Va,35:225,44:30,45:32,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs},{67:[1,226]},{67:[1,227]},o($VS,[2,45],{21:228,10:$VT}),o($Vd1,[2,129],{88:217,10:$V11,46:$V21,71:$V31,80:$V41,84:$V51,85:$V61,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1}),o($VR,[2,123],{45:32,44:114,10:[1,229],13:$V9,18:$Va,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs}),o($VR,[2,124],{45:32,44:114,10:[1,230],13:$V9,18:$Va,46:$Vc,85:$Vi,86:$Vj,89:$Vk,90:$Vl,92:$Vm,93:$Vn,95:$Vo,96:$Vp,97:$Vq,98:$Vr,99:$Vs}),o($VR,[2,114]),o($VR,[2,116]),o($VS,[2,46]),{10:$V11,46:$V21,71:$V31,79:231,80:$V41,84:$V51,85:$V61,87:186,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},{10:$V11,46:$V21,71:$V31,79:232,80:$V41,84:$V51,85:$V61,87:186,88:187,89:$V71,90:$V81,91:$V91,92:$Va1,93:$Vb1},o($VR,[2,121],{86:$Vc1}),o($VR,[2,122],{86:$Vc1})], defaultActions: {}, parseError: function parseError (str, hash) { if (hash.recoverable) { @@ -345,18 +354,15 @@ parse: function parse(input) { vstack.length = vstack.length - n; lstack.length = lstack.length - n; } - function lex() { + _token_stack: + var lex = function () { var token; - token = tstack.pop() || lexer.lex() || EOF; + token = lexer.lex() || EOF; if (typeof token !== 'number') { - if (token instanceof Array) { - tstack = token; - token = tstack.pop(); - } token = self.symbols_[token] || token; } return token; - } + }; var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; while (true) { state = stack[stack.length - 1]; @@ -368,27 +374,27 @@ parse: function parse(input) { } action = table[state] && table[state][symbol]; } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected + }); } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } if (action[0] instanceof Array && action.length > 1) { throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); } @@ -825,17 +831,17 @@ case 18:return 13; break; case 19:return 13; break; -case 20:return 81; +case 20:return 85; break; -case 21:return 91; +case 21:return 92; break; -case 22:return 89; +case 22:return 90; break; case 23:return 8; break; case 24:return 86; break; -case 25:return 98; +case 25:return 99; break; case 26:return 16; break; @@ -889,21 +895,21 @@ case 50:return 41; break; case 51:return 46; break; -case 52:return 92; +case 52:return 93; break; -case 53:return 96; +case 53:return 97; break; case 54:return 84; break; -case 55:return 97; +case 55:return 98; break; -case 56:return 97; +case 56:return 98; break; -case 57:return 88; +case 57:return 89; break; -case 58:return 94; +case 58:return 95; break; -case 59:return 95; +case 59:return 96; break; case 60:return 65; break; @@ -919,7 +925,7 @@ case 65:return 42 break; case 66:return 43 break; -case 67:return 101; +case 67:return 102; break; case 68:return 9; break; @@ -944,9 +950,9 @@ return new Parser; if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = parser; -exports.Parser = parser.Parser; -exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.parser = flow; +exports.Parser = flow.Parser; +exports.parse = function () { return flow.parse.apply(flow, arguments); }; exports.main = function commonjsMain (args) { if (!args[1]) { console.log('Usage: '+args[0]+' FILE'); diff --git a/src/diagrams/flowchart/parser/flow.spec.js b/src/diagrams/flowchart/parser/flow.spec.js index 6c408de06..3659dade3 100644 --- a/src/diagrams/flowchart/parser/flow.spec.js +++ b/src/diagrams/flowchart/parser/flow.spec.js @@ -428,6 +428,28 @@ describe('when parsing ', function () { expect(edges[0].type).toBe('arrow') }) + it('should handle multi-numbered style definitons with more then 1 digit in a row', function () { + const res = flow.parser.parse('graph TD\n' + + 'A-->B1\n' + + 'A-->B2\n' + + 'A-->B3\n' + + 'A-->B4\n' + + 'A-->B5\n' + + 'A-->B6\n' + + 'A-->B7\n' + + 'A-->B8\n' + + 'A-->B9\n' + + 'A-->B10\n' + + 'A-->B11\n' + + 'A-->B12\n' + + 'linkStyle 10,11 stroke-width:1px;') + + const vert = flow.parser.yy.getVertices() + const edges = flow.parser.yy.getEdges() + + expect(edges[0].type).toBe('arrow') + }) + it('should handle line interpolation default definitions', function () { const res = flow.parser.parse('graph TD\n' + 'A-->B\n' + @@ -453,6 +475,19 @@ describe('when parsing ', function () { expect(edges[1].interpolate).toBe('cardinal') }) + it('should handle line interpolation multi-numbered definitions', function () { + const res = flow.parser.parse('graph TD\n' + + 'A-->B\n' + + 'A-->C\n' + + 'linkStyle 0,1 interpolate basis') + + const vert = flow.parser.yy.getVertices() + const edges = flow.parser.yy.getEdges() + + expect(edges[0].interpolate).toBe('basis') + expect(edges[1].interpolate).toBe('basis') + }) + it('should handle line interpolation default with style', function () { const res = flow.parser.parse('graph TD\n' + 'A-->B\n' + @@ -478,6 +513,19 @@ describe('when parsing ', function () { expect(edges[1].interpolate).toBe('cardinal') }) + it('should handle line interpolation multi-numbered with style', function () { + const res = flow.parser.parse('graph TD\n' + + 'A-->B\n' + + 'A-->C\n' + + 'linkStyle 0,1 interpolate basis stroke-width:1px;') + + const vert = flow.parser.yy.getVertices() + const edges = flow.parser.yy.getEdges() + + expect(edges[0].interpolate).toBe('basis') + expect(edges[1].interpolate).toBe('basis') + }) + describe('it should handle interaction, ', function () { it('it should be possible to use click to a callback', function () { spyOn(flowDb, 'setClickEvent') From e298351caa063f9409bd65eddeedd04d0aeb14f3 Mon Sep 17 00:00:00 2001 From: abzicht Date: Thu, 7 Mar 2019 22:00:02 +0100 Subject: [PATCH 048/103] Added and callback functionality to gantt diagrams --- src/diagrams/gantt/parser/gantt.jison | 49 +++++++++++++++++++-------- 1 file changed, 35 insertions(+), 14 deletions(-) diff --git a/src/diagrams/gantt/parser/gantt.jison b/src/diagrams/gantt/parser/gantt.jison index 49ab3ad47..75741ab22 100644 --- a/src/diagrams/gantt/parser/gantt.jison +++ b/src/diagrams/gantt/parser/gantt.jison @@ -7,27 +7,42 @@ %options case-insensitive -%{ - // Pre-lexer code can go here -%} - +/* string is used to detect blocks that are surrounded by double quotes. */ +/* copied from /src/diagrams/flowchart/parser/flow.jison */ +%x string +/* a valid callback looks like this: callback(example_callback_arg) */ +/* callback prefix: callback( */ +/* callback suffix: ) */ +%x callback +%x callbackname %% [\n]+ return 'NL'; \s+ /* skip whitespace */ \#[^\n]* /* skip comments */ \%%[^\n]* /* skip comments */ -"gantt" return 'gantt'; +/* Strings are used to detect tooltips */ +["] this.begin("string"); +["] this.popState(); +[^"]* return 'STR'; +"call"\s this.begin("callbackname"); +\( this.popState(); this.begin("callback"); +[^(]+ return 'callbackname'; +[)] this.popState(); +[^)]* return 'callbackarguments'; + +"click" return 'click'; +"gantt" return 'gantt'; "dateFormat"\s[^#\n;]+ return 'dateFormat'; "axisFormat"\s[^#\n;]+ return 'axisFormat'; \d\d\d\d"-"\d\d"-"\d\d return 'date'; "title"\s[^#\n;]+ return 'title'; "section"\s[^#:\n;]+ return 'section'; -[^#:\n;]+ return 'taskTxt'; +[^#:()\n;]+ return 'taskTxt'; ":"[^#\n;]+ return 'taskData'; -":" return ':'; -<> return 'EOF'; -. return 'INVALID'; +":" return ':'; +<> return 'EOF'; +. return 'INVALID'; /lex @@ -54,11 +69,17 @@ line ; statement - : 'dateFormat' {yy.setDateFormat($1.substr(11));$$=$1.substr(11);} + : 'dateFormat' {yy.setDateFormat($1.substr(11));$$=$1.substr(11);} | 'axisFormat' {yy.setAxisFormat($1.substr(11));$$=$1.substr(11);} - | title {yy.setTitle($1.substr(6));$$=$1.substr(6);} - | section {yy.addSection($1.substr(8));$$=$1.substr(8);} - | taskTxt taskData {yy.addTask($1,$2);$$='task';} - ; + | title {yy.setTitle($1.substr(6));$$=$1.substr(6);} + | section {yy.addSection($1.substr(8));$$=$1.substr(8);} + | clickStatement + | taskTxt taskData {yy.addTask($1,$2);$$='task';} + ; +clickStatement + : click callbackname callbackarguments {$$ = $1;yy.setClickEvent($2, $3);} + | click STR callbackname callbackarguments {$$ = $1;yy.setLink($2);yy.setClickEvent($3, $4);} + | click STR {$$ = $1;yy.setLink($2);} + ; %% From 19d9dd69547c519ee31be2d558dd4f5bbaafcd3d Mon Sep 17 00:00:00 2001 From: abzicht Date: Thu, 7 Mar 2019 22:31:38 +0100 Subject: [PATCH 049/103] Fixed clickStatement to include ids --- src/diagrams/gantt/parser/gantt.jison | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diagrams/gantt/parser/gantt.jison b/src/diagrams/gantt/parser/gantt.jison index 75741ab22..13f70aeb6 100644 --- a/src/diagrams/gantt/parser/gantt.jison +++ b/src/diagrams/gantt/parser/gantt.jison @@ -78,8 +78,8 @@ statement ; clickStatement - : click callbackname callbackarguments {$$ = $1;yy.setClickEvent($2, $3);} - | click STR callbackname callbackarguments {$$ = $1;yy.setLink($2);yy.setClickEvent($3, $4);} - | click STR {$$ = $1;yy.setLink($2);} + : click STR callbackname callbackarguments {$$ = $1;yy.setClickEvent($2, $3, $4);} + | click STR STR callbackname callbackarguments {$$ = $1;yy.setLink($2, $3);yy.setClickEvent($2, $4, $5);} + | click STR STR {$$ = $1;yy.setLink($2, $3);} ; %% From 57b780a0d7b1d46d44332594e438c3d45c260f7a Mon Sep 17 00:00:00 2001 From: abzicht Date: Fri, 8 Mar 2019 00:07:36 +0100 Subject: [PATCH 050/103] In render: added calling callback for gantt functions --- src/mermaidAPI.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mermaidAPI.js b/src/mermaidAPI.js index ea122371d..948ef1889 100644 --- a/src/mermaidAPI.js +++ b/src/mermaidAPI.js @@ -447,6 +447,7 @@ const render = function (id, txt, cb, container) { if (typeof cb !== 'undefined') { cb(svgCode, flowDb.bindFunctions) + cb(svgCode, ganttDb.bindFunctions) } else { logger.warn('CB = undefined!') } From 67ee649d99b81552a92d93b30f5a9bd54a380170 Mon Sep 17 00:00:00 2001 From: abzicht Date: Fri, 8 Mar 2019 00:19:53 +0100 Subject: [PATCH 051/103] Added setLink and setClickEvent to gantt --- src/diagrams/gantt/ganttDb.js | 132 +++++++++++++++++++++++++--- src/diagrams/gantt/ganttRenderer.js | 8 +- 2 files changed, 128 insertions(+), 12 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index b4e4fda76..f08f4dfe7 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -1,5 +1,8 @@ import moment from 'moment' -import { logger } from '../../logger' +import { + logger +} from '../../logger' +import * as d3 from 'd3' let dateFormat = '' let axisFormat = '' @@ -7,11 +10,13 @@ let title = '' let sections = [] let tasks = [] let currentSection = '' +let funs = [] export const clear = function () { sections = [] tasks = [] currentSection = '' + funs = [] title = '' taskCnt = 0 lastTask = undefined @@ -242,18 +247,33 @@ const parseData = function (prevTaskId, dataStr) { switch (data.length) { case 1: task.id = parseId() - task.startTime = { type: 'prevTaskEnd', id: prevTaskId } - task.endTime = { data: data[0] } + task.startTime = { + type: 'prevTaskEnd', + id: prevTaskId + } + task.endTime = { + data: data[0] + } break case 2: task.id = parseId() - task.startTime = { type: 'getStartDate', startData: data[0] } - task.endTime = { data: data[1] } + task.startTime = { + type: 'getStartDate', + startData: data[0] + } + task.endTime = { + data: data[1] + } break case 3: task.id = parseId(data[0]) - task.startTime = { type: 'getStartDate', startData: data[1] } - task.endTime = { data: data[2] } + task.startTime = { + type: 'getStartDate', + startData: data[1] + } + task.endTime = { + data: data[2] + } break default: } @@ -270,8 +290,13 @@ export const addTask = function (descr, data) { section: currentSection, type: currentSection, processed: false, - raw: { data: data }, - task: descr + raw: { + data: data + }, + task: descr, + link: undefined, + /* The link the rectangle will href to */ + classes: [] } const taskInfo = parseData(lastTaskID, data) rawTask.raw.startTime = taskInfo.startTime @@ -299,7 +324,10 @@ export const addTaskOrg = function (descr, data) { section: currentSection, type: currentSection, description: descr, - task: descr + task: descr, + link: undefined, + /* The link the rectangle will href to */ + classes: [] } const taskInfo = compileData(lastTask, data) newTask.startTime = taskInfo.startTime @@ -348,6 +376,85 @@ const compileTasks = function () { return allProcessed } +/** + * Called by parser when a link is found. Adds the URL to the vertex data. + * @param ids Comma separated list of ids + * @param linkStr URL to create a link for + */ +export const setLink = function (ids, linkStr) { + ids.split(',').forEach(function (id) { + let rawTask = findTaskById(id) + if (typeof rawTask !== 'undefined') { + rawTask.link = linkStr + } + }) + setClass(ids, 'clickable') +} + +/** + * Called by parser when a special node is found, e.g. a clickable element. + * @param ids Comma separated list of ids + * @param className Class to add + */ +export const setClass = function (ids, className) { + ids.split(',').forEach(function (id) { + let rawTask = findTaskById(id) + if (typeof rawTask !== 'undefined') { + rawTask.classes.push(className) + } + }) +} + +const setClickFun = function (id, functionName, functionArgs) { + if (typeof functionName === 'undefined') { + return + } + let rawTask = findTaskById(id) + if (typeof rawTask !== 'undefined') { + funs.push(function (element) { + const elem = d3.select(element).select(`[id="${id}"]`) + if (elem !== null) { + elem.on('click', function () { + console.log('test') + window[functionName](id, ...functionArgs) + }) + } + }) + funs.push(function (element) { + const elem = d3.select(element).select(`[id="${id}-text"]`) + if (elem !== null) { + elem.on('click', function () { + console.log('test') + window[functionName](id, ...functionArgs) + }) + } + }) + } +} + +/** + * Called by parser when a click definition is found. Registers an event handler. + * @param ids Comma separated list of ids + * @param functionName Function to be called on click + * @param functionArgs Function args the function should be called with + */ +export const setClickEvent = function (ids, functionName, functionArgs) { + ids.split(',').forEach(function (id) { + setClickFun(id, functionName, functionArgs) + }) + setClass(ids, 'clickable') +} + +/** + * Binds all functions previously added to fun (specified through click) to the element + * @param element + */ +export const bindFunctions = function (element) { + funs.forEach(function (fun) { + fun(element) + }) +} + export default { clear, setDateFormat, @@ -359,5 +466,8 @@ export default { getTasks, addTask, findTaskById, - addTaskOrg + addTaskOrg, + setClickEvent, + setLink, + bindFunctions } diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index 7d24df2a4..b7a6da890 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -126,6 +126,7 @@ export const draw = function (text, id) { .enter() rectangles.append('rect') + .attr('id', function (d) { return d.id }) .attr('rx', 3) .attr('ry', 3) .attr('x', function (d) { @@ -171,7 +172,12 @@ export const draw = function (text, id) { return res + ' task' + secNum }) - rectangles.append('text') + rectangles.append('a').attr('href', function (d) { + /* All rectangles are clickable. If d.link is not specified, '' is returned */ + return d.link + }) + .attr('id', function (d) { return d.id + '-text' }) + .append('text') .text(function (d) { return d.task }) From 4800460e07ff69a0becfe40d918da07deff536ad Mon Sep 17 00:00:00 2001 From: monsterkrampe Date: Thu, 25 Oct 2018 21:30:28 +0200 Subject: [PATCH 052/103] 748: class diagram: allow linebreak after last statement; rerender correctly; allow unassociated classes --- src/diagrams/class/classDb.js | 18 +++++-- src/diagrams/class/classRenderer.js | 4 +- src/diagrams/class/parser/classDiagram.jison | 7 +-- src/diagrams/class/parser/classDiagram.js | 57 ++++++++++---------- 4 files changed, 48 insertions(+), 38 deletions(-) diff --git a/src/diagrams/class/classDb.js b/src/diagrams/class/classDb.js index 6be4bb773..b2a9ed30b 100644 --- a/src/diagrams/class/classDb.js +++ b/src/diagrams/class/classDb.js @@ -44,17 +44,24 @@ export const addRelation = function (relation) { relations.push(relation) } -export const addMembers = function (className, MembersArr) { +export const addMember = function (className, member) { const theClass = classes[className] - if (typeof MembersArr === 'string') { - if (MembersArr.substr(-1) === ')') { - theClass.methods.push(MembersArr) + if (typeof member === 'string') { + if (member.substr(-1) === ')') { + theClass.methods.push(member) } else { - theClass.members.push(MembersArr) + theClass.members.push(member) } } } +export const addMembers = function (className, MembersArr) { + console.log(className, MembersArr) + if (Array.isArray(MembersArr)) { + MembersArr.forEach(member => addMember(className, member)) + } +} + export const cleanupLabel = function (label) { if (label.substring(0, 1) === ':') { return label.substr(2).trim() @@ -82,6 +89,7 @@ export default { getClasses, getRelations, addRelation, + addMember, addMembers, cleanupLabel, lineType, diff --git a/src/diagrams/class/classRenderer.js b/src/diagrams/class/classRenderer.js index 5169fce4b..313172f09 100644 --- a/src/diagrams/class/classRenderer.js +++ b/src/diagrams/class/classRenderer.js @@ -10,7 +10,6 @@ parser.yy = classDb const idCache = {} -let classCnt = 0 const conf = { dividerMargin: 10, padding: 5, @@ -215,7 +214,7 @@ const drawClass = function (elem, classDef) { } } - const id = 'classId' + classCnt + const id = 'classId' + classDef.id const classInfo = { id: id, label: classDef.id, @@ -284,7 +283,6 @@ const drawClass = function (elem, classDef) { classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin idCache[id] = classInfo - classCnt++ return classInfo } diff --git a/src/diagrams/class/parser/classDiagram.jison b/src/diagrams/class/parser/classDiagram.jison index f633d144c..8c6b37a2f 100644 --- a/src/diagrams/class/parser/classDiagram.jison +++ b/src/diagrams/class/parser/classDiagram.jison @@ -127,6 +127,7 @@ graphConfig statements : statement + | statement NEWLINE | statement NEWLINE statements ; @@ -144,8 +145,8 @@ statement ; classStatement - : CLASS className - | CLASS className STRUCT_START members STRUCT_STOP {/*console.log($2,JSON.stringify($4));*/yy.addMembers($2,$4);} + : CLASS className {yy.addClass($2);} + | CLASS className STRUCT_START members STRUCT_STOP {/*console.log($2,JSON.stringify($4));*/yy.addClass($2);yy.addMembers($2,$4);} ; members @@ -155,7 +156,7 @@ members methodStatement : className {/*console.log('Rel found',$1);*/} - | className LABEL {yy.addMembers($1,yy.cleanupLabel($2));} + | className LABEL {yy.addMember($1,yy.cleanupLabel($2));} | MEMBER {console.warn('Member',$1);} | SEPARATOR {/*console.log('sep found',$1);*/} ; diff --git a/src/diagrams/class/parser/classDiagram.js b/src/diagrams/class/parser/classDiagram.js index 5fdd5f257..ef9d41708 100644 --- a/src/diagrams/class/parser/classDiagram.js +++ b/src/diagrams/class/parser/classDiagram.js @@ -77,91 +77,94 @@ var parser = {trace: function trace () { }, yy: {}, symbols_: {"error":2,"mermaidDoc":3,"graphConfig":4,"CLASS_DIAGRAM":5,"NEWLINE":6,"statements":7,"EOF":8,"statement":9,"className":10,"alphaNumToken":11,"relationStatement":12,"LABEL":13,"classStatement":14,"methodStatement":15,"CLASS":16,"STRUCT_START":17,"members":18,"STRUCT_STOP":19,"MEMBER":20,"SEPARATOR":21,"relation":22,"STR":23,"relationType":24,"lineType":25,"AGGREGATION":26,"EXTENSION":27,"COMPOSITION":28,"DEPENDENCY":29,"LINE":30,"DOTTED_LINE":31,"commentToken":32,"textToken":33,"graphCodeTokens":34,"textNoTagsToken":35,"TAGSTART":36,"TAGEND":37,"==":38,"--":39,"PCT":40,"DEFAULT":41,"SPACE":42,"MINUS":43,"keywords":44,"UNICODE_TEXT":45,"NUM":46,"ALPHA":47,"$accept":0,"$end":1}, terminals_: {2:"error",5:"CLASS_DIAGRAM",6:"NEWLINE",8:"EOF",13:"LABEL",16:"CLASS",17:"STRUCT_START",19:"STRUCT_STOP",20:"MEMBER",21:"SEPARATOR",23:"STR",26:"AGGREGATION",27:"EXTENSION",28:"COMPOSITION",29:"DEPENDENCY",30:"LINE",31:"DOTTED_LINE",34:"graphCodeTokens",36:"TAGSTART",37:"TAGEND",38:"==",39:"--",40:"PCT",41:"DEFAULT",42:"SPACE",43:"MINUS",44:"keywords",45:"UNICODE_TEXT",46:"NUM",47:"ALPHA"}, -productions_: [0,[3,1],[4,4],[7,1],[7,3],[10,2],[10,1],[9,1],[9,2],[9,1],[9,1],[14,2],[14,5],[18,1],[18,2],[15,1],[15,2],[15,1],[15,1],[12,3],[12,4],[12,4],[12,5],[22,3],[22,2],[22,2],[22,1],[24,1],[24,1],[24,1],[24,1],[25,1],[25,1],[32,1],[32,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[35,1],[35,1],[35,1],[35,1],[11,1],[11,1],[11,1]], +productions_: [0,[3,1],[4,4],[7,1],[7,2],[7,3],[10,2],[10,1],[9,1],[9,2],[9,1],[9,1],[14,2],[14,5],[18,1],[18,2],[15,1],[15,2],[15,1],[15,1],[12,3],[12,4],[12,4],[12,5],[22,3],[22,2],[22,2],[22,1],[24,1],[24,1],[24,1],[24,1],[25,1],[25,1],[32,1],[32,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[35,1],[35,1],[35,1],[35,1],[11,1],[11,1],[11,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ var $0 = $$.length - 1; switch (yystate) { -case 5: +case 6: this.$=$$[$0-1]+$$[$0]; break; -case 6: +case 7: this.$=$$[$0]; break; -case 7: +case 8: yy.addRelation($$[$0]); break; -case 8: +case 9: $$[$0-1].title = yy.cleanupLabel($$[$0]); yy.addRelation($$[$0-1]); break; case 12: -/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addMembers($$[$0-3],$$[$0-1]); +yy.addClass($$[$0]); break; case 13: - this.$ = [$$[$0]]; +/*console.log($$[$0-3],JSON.stringify($$[$0-1]));*/yy.addClass($$[$0-3]);yy.addMembers($$[$0-3],$$[$0-1]); break; case 14: - $$[$0].push($$[$0-1]);this.$=$$[$0]; + this.$ = [$$[$0]]; break; case 15: -/*console.log('Rel found',$$[$0]);*/ + $$[$0].push($$[$0-1]);this.$=$$[$0]; break; case 16: -yy.addMembers($$[$0-1],yy.cleanupLabel($$[$0])); +/*console.log('Rel found',$$[$0]);*/ break; case 17: -console.warn('Member',$$[$0]); +yy.addMember($$[$0-1],yy.cleanupLabel($$[$0])); break; case 18: -/*console.log('sep found',$$[$0]);*/ +console.warn('Member',$$[$0]); break; case 19: - this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'}; +/*console.log('sep found',$$[$0]);*/ break; case 20: - this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'} + this.$ = {'id1':$$[$0-2],'id2':$$[$0], relation:$$[$0-1], relationTitle1:'none', relationTitle2:'none'}; break; case 21: - this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]}; + this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-1], relationTitle1:$$[$0-2], relationTitle2:'none'} break; case 22: - this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]} + this.$ = {id1:$$[$0-3], id2:$$[$0], relation:$$[$0-2], relationTitle1:'none', relationTitle2:$$[$0-1]}; break; case 23: - this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]}; + this.$ = {id1:$$[$0-4], id2:$$[$0], relation:$$[$0-2], relationTitle1:$$[$0-3], relationTitle2:$$[$0-1]} break; case 24: - this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]}; + this.$={type1:$$[$0-2],type2:$$[$0],lineType:$$[$0-1]}; break; case 25: - this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]}; + this.$={type1:'none',type2:$$[$0],lineType:$$[$0-1]}; break; case 26: - this.$={type1:'none',type2:'none',lineType:$$[$0]}; + this.$={type1:$$[$0-1],type2:'none',lineType:$$[$0]}; break; case 27: - this.$=yy.relationType.AGGREGATION; + this.$={type1:'none',type2:'none',lineType:$$[$0]}; break; case 28: - this.$=yy.relationType.EXTENSION; + this.$=yy.relationType.AGGREGATION; break; case 29: - this.$=yy.relationType.COMPOSITION; + this.$=yy.relationType.EXTENSION; break; case 30: - this.$=yy.relationType.DEPENDENCY; + this.$=yy.relationType.COMPOSITION; break; case 31: -this.$=yy.lineType.LINE; + this.$=yy.relationType.DEPENDENCY; break; case 32: +this.$=yy.lineType.LINE; +break; +case 33: this.$=yy.lineType.DOTTED_LINE; break; } }, -table: [{3:1,4:2,5:[1,3]},{1:[3]},{1:[2,1]},{6:[1,4]},{7:5,9:6,10:10,11:14,12:7,14:8,15:9,16:$V0,20:$V1,21:$V2,45:$V3,46:$V4,47:$V5},{8:[1,18]},{6:[1,19],8:[2,3]},o($V6,[2,7],{13:[1,20]}),o($V6,[2,9]),o($V6,[2,10]),o($V6,[2,15],{22:21,24:24,25:25,13:[1,23],23:[1,22],26:$V7,27:$V8,28:$V9,29:$Va,30:$Vb,31:$Vc}),{10:32,11:14,45:$V3,46:$V4,47:$V5},o($V6,[2,17]),o($V6,[2,18]),o($Vd,[2,6],{11:14,10:33,45:$V3,46:$V4,47:$V5}),o($Ve,[2,46]),o($Ve,[2,47]),o($Ve,[2,48]),{1:[2,2]},{7:34,9:6,10:10,11:14,12:7,14:8,15:9,16:$V0,20:$V1,21:$V2,45:$V3,46:$V4,47:$V5},o($V6,[2,8]),{10:35,11:14,23:[1,36],45:$V3,46:$V4,47:$V5},{22:37,24:24,25:25,26:$V7,27:$V8,28:$V9,29:$Va,30:$Vb,31:$Vc},o($V6,[2,16]),{25:38,30:$Vb,31:$Vc},o($Vf,[2,26],{24:39,26:$V7,27:$V8,28:$V9,29:$Va}),o($Vg,[2,27]),o($Vg,[2,28]),o($Vg,[2,29]),o($Vg,[2,30]),o($Vh,[2,31]),o($Vh,[2,32]),o($V6,[2,11],{17:[1,40]}),o($Vd,[2,5]),{8:[2,4]},o($Vi,[2,19]),{10:41,11:14,45:$V3,46:$V4,47:$V5},{10:42,11:14,23:[1,43],45:$V3,46:$V4,47:$V5},o($Vf,[2,25],{24:44,26:$V7,27:$V8,28:$V9,29:$Va}),o($Vf,[2,24]),{18:45,20:$Vj},o($Vi,[2,21]),o($Vi,[2,20]),{10:47,11:14,45:$V3,46:$V4,47:$V5},o($Vf,[2,23]),{19:[1,48]},{18:49,19:[2,13],20:$Vj},o($Vi,[2,22]),o($V6,[2,12]),{19:[2,14]}], -defaultActions: {2:[2,1],18:[2,2],34:[2,4],49:[2,14]}, +table: [{3:1,4:2,5:[1,3]},{1:[3]},{1:[2,1]},{6:[1,4]},{7:5,9:6,10:10,11:14,12:7,14:8,15:9,16:$V0,20:$V1,21:$V2,45:$V3,46:$V4,47:$V5},{8:[1,18]},{6:[1,19],8:[2,3]},o($V6,[2,8],{13:[1,20]}),o($V6,[2,10]),o($V6,[2,11]),o($V6,[2,16],{22:21,24:24,25:25,13:[1,23],23:[1,22],26:$V7,27:$V8,28:$V9,29:$Va,30:$Vb,31:$Vc}),{10:32,11:14,45:$V3,46:$V4,47:$V5},o($V6,[2,18]),o($V6,[2,19]),o($Vd,[2,7],{11:14,10:33,45:$V3,46:$V4,47:$V5}),o($Ve,[2,47]),o($Ve,[2,48]),o($Ve,[2,49]),{1:[2,2]},{7:34,8:[2,4],9:6,10:10,11:14,12:7,14:8,15:9,16:$V0,20:$V1,21:$V2,45:$V3,46:$V4,47:$V5},o($V6,[2,9]),{10:35,11:14,23:[1,36],45:$V3,46:$V4,47:$V5},{22:37,24:24,25:25,26:$V7,27:$V8,28:$V9,29:$Va,30:$Vb,31:$Vc},o($V6,[2,17]),{25:38,30:$Vb,31:$Vc},o($Vf,[2,27],{24:39,26:$V7,27:$V8,28:$V9,29:$Va}),o($Vg,[2,28]),o($Vg,[2,29]),o($Vg,[2,30]),o($Vg,[2,31]),o($Vh,[2,32]),o($Vh,[2,33]),o($V6,[2,12],{17:[1,40]}),o($Vd,[2,6]),{8:[2,5]},o($Vi,[2,20]),{10:41,11:14,45:$V3,46:$V4,47:$V5},{10:42,11:14,23:[1,43],45:$V3,46:$V4,47:$V5},o($Vf,[2,26],{24:44,26:$V7,27:$V8,28:$V9,29:$Va}),o($Vf,[2,25]),{18:45,20:$Vj},o($Vi,[2,22]),o($Vi,[2,21]),{10:47,11:14,45:$V3,46:$V4,47:$V5},o($Vf,[2,24]),{19:[1,48]},{18:49,19:[2,14],20:$Vj},o($Vi,[2,23]),o($V6,[2,13]),{19:[2,15]}], +defaultActions: {2:[2,1],18:[2,2],34:[2,5],49:[2,15]}, parseError: function parseError (str, hash) { if (hash.recoverable) { this.trace(str); From 0c66e1b5b9171f770a9d18b48dfc7e64e03fb574 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 12:11:56 +0100 Subject: [PATCH 053/103] Added href support and improved callback argument handling --- src/diagrams/gantt/ganttDb.js | 4 ++-- src/diagrams/gantt/parser/gantt.jison | 33 +++++++++++++++++++-------- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index f08f4dfe7..56b7ef003 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -294,8 +294,8 @@ export const addTask = function (descr, data) { data: data }, task: descr, - link: undefined, /* The link the rectangle will href to */ + link: undefined, classes: [] } const taskInfo = parseData(lastTaskID, data) @@ -325,8 +325,8 @@ export const addTaskOrg = function (descr, data) { type: currentSection, description: descr, task: descr, - link: undefined, /* The link the rectangle will href to */ + link: undefined, classes: [] } const taskInfo = compileData(lastTask, data) diff --git a/src/diagrams/gantt/parser/gantt.jison b/src/diagrams/gantt/parser/gantt.jison index 13f70aeb6..eb02f775f 100644 --- a/src/diagrams/gantt/parser/gantt.jison +++ b/src/diagrams/gantt/parser/gantt.jison @@ -13,8 +13,9 @@ /* a valid callback looks like this: callback(example_callback_arg) */ /* callback prefix: callback( */ /* callback suffix: ) */ -%x callback +%x href %x callbackname +%x callbackargs %% [\n]+ return 'NL'; @@ -25,11 +26,16 @@ ["] this.begin("string"); ["] this.popState(); [^"]* return 'STR'; -"call"\s this.begin("callbackname"); -\( this.popState(); this.begin("callback"); -[^(]+ return 'callbackname'; -[)] this.popState(); -[^)]* return 'callbackarguments'; + +"href"\s+ this.begin("href"); +[\s\n] this.popState(); +[^\s\n]* return 'href'; + +"call"\s+ this.begin("callbackname"); +\( this.popState(); this.begin("callbackargs"); +[^(]* return 'callbackname'; +\) this.popState(); +[^)]* return 'callbackargs'; "click" return 'click'; "gantt" return 'gantt'; @@ -78,8 +84,17 @@ statement ; clickStatement - : click STR callbackname callbackarguments {$$ = $1;yy.setClickEvent($2, $3, $4);} - | click STR STR callbackname callbackarguments {$$ = $1;yy.setLink($2, $3);yy.setClickEvent($2, $4, $5);} - | click STR STR {$$ = $1;yy.setLink($2, $3);} + : click STR callbackname callbackargs {$$ = $1;yy.setClickEvent($2, $3, $4);} + | click STR callbackname callbackargs href {$$ = $1;yy.setClickEvent($2, $3, $4);yy.setLink($2,$5);} + | click STR href callbackname callbackargs {$$ = $1;yy.setClickEvent($2, $4, $5);yy.setLink($2,$3);} + | click STR href {$$ = $1;yy.setLink($2, $3);} + ; + + +clickStatementDebug + : click STR callbackname callbackargs {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4;} + | click STR callbackname callbackargs href {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4 + ' ' + $5;} + | click STR href callbackname callbackargs {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4 + ' ' + $5;} + | click STR href {$$=$1+' ' + $2 + ' ' + $3;} ; %% From 10057217cb14bd923925c9f7eab2a7a4e2d654af Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 20:07:51 +0100 Subject: [PATCH 054/103] Fixed issue which only passed the first char of functionargs to the function by splitting the functionargs by commas --- src/diagrams/gantt/ganttDb.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 56b7ef003..0cc76dbf2 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -406,6 +406,7 @@ export const setClass = function (ids, className) { } const setClickFun = function (id, functionName, functionArgs) { + functionArgs = functionArgs.split(',') if (typeof functionName === 'undefined') { return } @@ -415,7 +416,6 @@ const setClickFun = function (id, functionName, functionArgs) { const elem = d3.select(element).select(`[id="${id}"]`) if (elem !== null) { elem.on('click', function () { - console.log('test') window[functionName](id, ...functionArgs) }) } From 4587f5a73d05fdcdf20c43918b847c78a385234a Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 20:08:52 +0100 Subject: [PATCH 055/103] Added 'clickable' class to all elements with interactivity. This allows css styling for clickable elements --- src/diagrams/gantt/ganttRenderer.js | 30 ++++++++++++++++++++--------- src/themes/gantt.scss | 6 ++++++ 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index b7a6da890..f1bbdb29b 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -142,6 +142,11 @@ export const draw = function (text, id) { .attr('class', function (d) { const res = 'task ' + let classStr = '' + if (d.classes.length > 0) { + classStr = d.classes.join(' ') + } + let secNum = 0 for (let i = 0; i < categories.length; i++) { if (d.type === categories[i]) { @@ -151,25 +156,25 @@ export const draw = function (text, id) { if (d.active) { if (d.crit) { - return res + ' activeCrit' + secNum + return res + classStr + ' activeCrit' + secNum } else { - return res + ' active' + secNum + return res + classStr + ' active' + secNum } } if (d.done) { if (d.crit) { - return res + ' doneCrit' + secNum + return res + classStr + ' doneCrit' + secNum } else { - return res + ' done' + secNum + return res + classStr + ' done' + secNum } } if (d.crit) { - return res + ' crit' + secNum + return res + classStr + ' crit' + secNum } - return res + ' task' + secNum + return res + classStr + ' task' + secNum }) rectangles.append('a').attr('href', function (d) { @@ -206,6 +211,13 @@ export const draw = function (text, id) { const startX = timeScale(d.startTime) const endX = timeScale(d.endTime) const textWidth = this.getBBox().width + + + let classStr = '' + if (d.classes.length > 0) { + classStr = d.classes.join(' ') + } + let secNum = 0 for (let i = 0; i < categories.length; i++) { if (d.type === categories[i]) { @@ -237,12 +249,12 @@ export const draw = function (text, id) { // Check id text width > width of rectangle if (textWidth > (endX - startX)) { if (endX + textWidth + 1.5 * conf.leftPadding > w) { - return 'taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType + return classStr + ' taskTextOutsideLeft taskTextOutside' + secNum + ' ' + taskType } else { - return 'taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType + return classStr + ' taskTextOutsideRight taskTextOutside' + secNum + ' ' + taskType } } else { - return 'taskText taskText' + secNum + ' ' + taskType + return classStr + ' taskText taskText' + secNum + ' ' + taskType } }) } diff --git a/src/themes/gantt.scss b/src/themes/gantt.scss index 6793135ec..376b1cb91 100644 --- a/src/themes/gantt.scss +++ b/src/themes/gantt.scss @@ -90,6 +90,12 @@ font-size: 11px; } +.task.clickable { + cursor: pointer; +} +.taskText.clickable { + cursor: pointer; +} /* Specific task settings for the sections*/ From 856591d253ce4b7d45aef72c985344a908af3473 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 22:18:37 +0100 Subject: [PATCH 056/103] Removed STR as it is no longer required; made 'click' a state such that it returns the id that is specified after the keyword --- src/diagrams/gantt/parser/gantt.jison | 40 ++++++++++++--------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/src/diagrams/gantt/parser/gantt.jison b/src/diagrams/gantt/parser/gantt.jison index eb02f775f..2f142ba2b 100644 --- a/src/diagrams/gantt/parser/gantt.jison +++ b/src/diagrams/gantt/parser/gantt.jison @@ -10,9 +10,7 @@ /* string is used to detect blocks that are surrounded by double quotes. */ /* copied from /src/diagrams/flowchart/parser/flow.jison */ %x string -/* a valid callback looks like this: callback(example_callback_arg) */ -/* callback prefix: callback( */ -/* callback suffix: ) */ +%x click %x href %x callbackname %x callbackargs @@ -22,29 +20,28 @@ \s+ /* skip whitespace */ \#[^\n]* /* skip comments */ \%%[^\n]* /* skip comments */ -/* Strings are used to detect tooltips */ -["] this.begin("string"); -["] this.popState(); -[^"]* return 'STR'; -"href"\s+ this.begin("href"); -[\s\n] this.popState(); -[^\s\n]* return 'href'; +"href"[\s]+ this.begin("href"); /* return the next word after 'href' */ +[\s\n] this.popState(); /* e.g. return https://example.com for 'href https://example.com' */ +[^\s\n]* return 'href'; /* the specified word must not contain whitespace */ -"call"\s+ this.begin("callbackname"); +"call" this.begin("callbackname"); \( this.popState(); this.begin("callbackargs"); [^(]* return 'callbackname'; \) this.popState(); [^)]* return 'callbackargs'; -"click" return 'click'; +"click"[\s]+ this.begin("click"); +[\s\n] this.popState(); +[^\s\n]* return 'click'; + "gantt" return 'gantt'; "dateFormat"\s[^#\n;]+ return 'dateFormat'; "axisFormat"\s[^#\n;]+ return 'axisFormat'; \d\d\d\d"-"\d\d"-"\d\d return 'date'; "title"\s[^#\n;]+ return 'title'; "section"\s[^#:\n;]+ return 'section'; -[^#:()\n;]+ return 'taskTxt'; +[^#:()\n;]+ return 'taskTxt'; ":"[^#\n;]+ return 'taskData'; ":" return ':'; <> return 'EOF'; @@ -84,17 +81,16 @@ statement ; clickStatement - : click STR callbackname callbackargs {$$ = $1;yy.setClickEvent($2, $3, $4);} - | click STR callbackname callbackargs href {$$ = $1;yy.setClickEvent($2, $3, $4);yy.setLink($2,$5);} - | click STR href callbackname callbackargs {$$ = $1;yy.setClickEvent($2, $4, $5);yy.setLink($2,$3);} - | click STR href {$$ = $1;yy.setLink($2, $3);} + : click callbackname callbackargs {$$ = $1;yy.setClickEvent($1, $2, $3);} + | click callbackname callbackargs href {$$ = $1;yy.setClickEvent($1, $2, $3);yy.setLink($1,$4);} + | click href callbackname callbackargs {$$ = $1;yy.setClickEvent($1, $3, $4);yy.setLink($1,$2);} + | click href {$$ = $1;yy.setLink($1, $2);} ; - clickStatementDebug - : click STR callbackname callbackargs {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4;} - | click STR callbackname callbackargs href {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4 + ' ' + $5;} - | click STR href callbackname callbackargs {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4 + ' ' + $5;} - | click STR href {$$=$1+' ' + $2 + ' ' + $3;} + : click callbackname callbackargs {$$=$1+' ' + $2 + ' ' + $3;} + | click callbackname callbackargs href {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4;} + | click href callbackname callbackargs {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4;} + | click href {$$=$1+' ' + $2;} ; %% From d169641c999d5c48541c726f54e928324c6a8bd2 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 22:19:08 +0100 Subject: [PATCH 057/103] Fixed lint issue --- src/diagrams/gantt/ganttRenderer.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index f1bbdb29b..51aa7ef46 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -212,7 +212,6 @@ export const draw = function (text, id) { const endX = timeScale(d.endTime) const textWidth = this.getBBox().width - let classStr = '' if (d.classes.length > 0) { classStr = d.classes.join(' ') From 20b35cbe13d71cb815d10ae03505728872c65e52 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 22:42:27 +0100 Subject: [PATCH 058/103] Removed STR remains and fixed whitespace issue for 'call' which lead to undesired whitespace in function names --- src/diagrams/gantt/parser/gantt.jison | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/diagrams/gantt/parser/gantt.jison b/src/diagrams/gantt/parser/gantt.jison index 2f142ba2b..856148371 100644 --- a/src/diagrams/gantt/parser/gantt.jison +++ b/src/diagrams/gantt/parser/gantt.jison @@ -9,7 +9,6 @@ /* string is used to detect blocks that are surrounded by double quotes. */ /* copied from /src/diagrams/flowchart/parser/flow.jison */ -%x string %x click %x href %x callbackname @@ -25,7 +24,7 @@ [\s\n] this.popState(); /* e.g. return https://example.com for 'href https://example.com' */ [^\s\n]* return 'href'; /* the specified word must not contain whitespace */ -"call" this.begin("callbackname"); +"call"[\s]+ this.begin("callbackname"); \( this.popState(); this.begin("callbackargs"); [^(]* return 'callbackname'; \) this.popState(); From b322a964cafc9953a82f97820372a3673503aa73 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 23:13:53 +0100 Subject: [PATCH 059/103] Code refactoring: Pushing functions is now to the funs list is now available in a separate function. Also, setLink no longer using the .link attribute and instead calls links directly via window.open --- src/diagrams/gantt/ganttDb.js | 48 +++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 0cc76dbf2..e21d28f97 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -294,8 +294,6 @@ export const addTask = function (descr, data) { data: data }, task: descr, - /* The link the rectangle will href to */ - link: undefined, classes: [] } const taskInfo = parseData(lastTaskID, data) @@ -325,8 +323,6 @@ export const addTaskOrg = function (descr, data) { type: currentSection, description: descr, task: descr, - /* The link the rectangle will href to */ - link: undefined, classes: [] } const taskInfo = compileData(lastTask, data) @@ -385,7 +381,7 @@ export const setLink = function (ids, linkStr) { ids.split(',').forEach(function (id) { let rawTask = findTaskById(id) if (typeof rawTask !== 'undefined') { - rawTask.link = linkStr + pushFun(id, ()=>{window.open(linkStr, "_self")}) } }) setClass(ids, 'clickable') @@ -412,26 +408,34 @@ const setClickFun = function (id, functionName, functionArgs) { } let rawTask = findTaskById(id) if (typeof rawTask !== 'undefined') { - funs.push(function (element) { - const elem = d3.select(element).select(`[id="${id}"]`) - if (elem !== null) { - elem.on('click', function () { - window[functionName](id, ...functionArgs) - }) - } - }) - funs.push(function (element) { - const elem = d3.select(element).select(`[id="${id}-text"]`) - if (elem !== null) { - elem.on('click', function () { - console.log('test') - window[functionName](id, ...functionArgs) - }) - } - }) + pushFun(id, () => {window[functionName](id, ...functionArgs)}) } } +/** + * The callbackFunction is executed in a click event bound to the task with the specified id or the task's assigned text + * @param id The task's id + * @param callbackFunction A function to be executed when clicked on the task or the task's text + */ +const pushFun = function (id, callbackFunction){ + funs.push(function (element) { + const elem = d3.select(element).select(`[id="${id}"]`) + if (elem !== null) { + elem.on('click', function () { + callbackFunction() + }) + } + }) + funs.push(function (element) { + const elem = d3.select(element).select(`[id="${id}-text"]`) + if (elem !== null) { + elem.on('click', function () { + callbackFunction() + }) + } + }) +} + /** * Called by parser when a click definition is found. Registers an event handler. * @param ids Comma separated list of ids From 6fd790570a742adcc0b5183083007e41ea4fc545 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 23:14:28 +0100 Subject: [PATCH 060/103] Removed tag, moved id attribute to text section --- src/diagrams/gantt/ganttRenderer.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index 51aa7ef46..c3b816e92 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -177,12 +177,9 @@ export const draw = function (text, id) { return res + classStr + ' task' + secNum }) - rectangles.append('a').attr('href', function (d) { - /* All rectangles are clickable. If d.link is not specified, '' is returned */ - return d.link - }) - .attr('id', function (d) { return d.id + '-text' }) + rectangles .append('text') + .attr('id', function (d) { return d.id + '-text' }) .text(function (d) { return d.task }) From 91651ca6ce031ee4fe257f191dbfc54b947ec746 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sat, 9 Mar 2019 23:17:13 +0100 Subject: [PATCH 061/103] Fixed lint issues --- src/diagrams/gantt/ganttDb.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index e21d28f97..2662e33ab 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -381,7 +381,7 @@ export const setLink = function (ids, linkStr) { ids.split(',').forEach(function (id) { let rawTask = findTaskById(id) if (typeof rawTask !== 'undefined') { - pushFun(id, ()=>{window.open(linkStr, "_self")}) + pushFun(id, () => { window.open(linkStr, '_self') }) } }) setClass(ids, 'clickable') @@ -408,7 +408,7 @@ const setClickFun = function (id, functionName, functionArgs) { } let rawTask = findTaskById(id) if (typeof rawTask !== 'undefined') { - pushFun(id, () => {window[functionName](id, ...functionArgs)}) + pushFun(id, () => { window[functionName](id, ...functionArgs) }) } } @@ -417,7 +417,7 @@ const setClickFun = function (id, functionName, functionArgs) { * @param id The task's id * @param callbackFunction A function to be executed when clicked on the task or the task's text */ -const pushFun = function (id, callbackFunction){ +const pushFun = function (id, callbackFunction) { funs.push(function (element) { const elem = d3.select(element).select(`[id="${id}"]`) if (elem !== null) { From 6c8454452134735a87b8e5e05b68090d0e76aa27 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sun, 10 Mar 2019 11:49:16 +0100 Subject: [PATCH 062/103] Changed href to scan for the next double quoted word. This allows whitespace in links and resolves the issue with href ending with EOF --- src/diagrams/gantt/parser/gantt.jison | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/diagrams/gantt/parser/gantt.jison b/src/diagrams/gantt/parser/gantt.jison index 856148371..358f157da 100644 --- a/src/diagrams/gantt/parser/gantt.jison +++ b/src/diagrams/gantt/parser/gantt.jison @@ -20,9 +20,9 @@ \#[^\n]* /* skip comments */ \%%[^\n]* /* skip comments */ -"href"[\s]+ this.begin("href"); /* return the next word after 'href' */ -[\s\n] this.popState(); /* e.g. return https://example.com for 'href https://example.com' */ -[^\s\n]* return 'href'; /* the specified word must not contain whitespace */ +"href"[\s]+["] this.begin("href"); /* return the next double quoted word after 'href' */ +["] this.popState(); /* e.g. return https://example.com for 'href "https://example.com"' */ +[^"]* return 'href'; "call"[\s]+ this.begin("callbackname"); \( this.popState(); this.begin("callbackargs"); From 1dfff7ac0eb61ceebae6fa7074adf5cb7cc9c43b Mon Sep 17 00:00:00 2001 From: abzicht Date: Sun, 10 Mar 2019 13:41:02 +0100 Subject: [PATCH 063/103] Added documentation and implemented empty functionarguments --- src/diagrams/gantt/parser/gantt.jison | 55 +++++++++++++++++++++------ 1 file changed, 44 insertions(+), 11 deletions(-) diff --git a/src/diagrams/gantt/parser/gantt.jison b/src/diagrams/gantt/parser/gantt.jison index 358f157da..723052b14 100644 --- a/src/diagrams/gantt/parser/gantt.jison +++ b/src/diagrams/gantt/parser/gantt.jison @@ -7,8 +7,6 @@ %options case-insensitive -/* string is used to detect blocks that are surrounded by double quotes. */ -/* copied from /src/diagrams/flowchart/parser/flow.jison */ %x click %x href %x callbackname @@ -20,16 +18,37 @@ \#[^\n]* /* skip comments */ \%%[^\n]* /* skip comments */ -"href"[\s]+["] this.begin("href"); /* return the next double quoted word after 'href' */ -["] this.popState(); /* e.g. return https://example.com for 'href "https://example.com"' */ +/* +---interactivity command--- +'href' adds a link to the specified task. 'href' can only be specified when the +line was introduced with 'click'. +'href ""' attaches the specified link to the task that was specified by 'click'. +*/ +"href"[\s]+["] this.begin("href"); +["] this.popState(); [^"]* return 'href'; +/* +---interactivity command--- +'call' adds a callback to the specified task. 'call' can only be specified when +the line was introdcued with 'click'. +'call ()' attaches the function 'callbackname' with the specified +arguments to the task that was specified by 'click'. +Function arguments are optional: 'call ()' simply executes 'callbackname' without any arguments. +*/ "call"[\s]+ this.begin("callbackname"); +\([\s]*\) this.popState(); \( this.popState(); this.begin("callbackargs"); [^(]* return 'callbackname'; \) this.popState(); [^)]* return 'callbackargs'; +/* +'click' is the keyword to introduce a line that contains interactivity commands. +'click' must be followed by an existing task-id. All commands are attached to +that id. +'click ' can be followed by href or call commands in any desired order +*/ "click"[\s]+ this.begin("click"); [\s\n] this.popState(); [^\s\n]* return 'click'; @@ -79,17 +98,31 @@ statement | taskTxt taskData {yy.addTask($1,$2);$$='task';} ; +/* +click allows any combination of href and call. +*/ clickStatement - : click callbackname callbackargs {$$ = $1;yy.setClickEvent($1, $2, $3);} + : click callbackname {$$ = $1;yy.setClickEvent($1, $2, null);} + | click callbackname callbackargs {$$ = $1;yy.setClickEvent($1, $2, $3);} + + | click callbackname href {$$ = $1;yy.setClickEvent($1, $2, null);yy.setLink($1,$3);} | click callbackname callbackargs href {$$ = $1;yy.setClickEvent($1, $2, $3);yy.setLink($1,$4);} + + | click href callbackname {$$ = $1;yy.setClickEvent($1, $3, null);yy.setLink($1,$2);} | click href callbackname callbackargs {$$ = $1;yy.setClickEvent($1, $3, $4);yy.setLink($1,$2);} + | click href {$$ = $1;yy.setLink($1, $2);} ; clickStatementDebug - : click callbackname callbackargs {$$=$1+' ' + $2 + ' ' + $3;} - | click callbackname callbackargs href {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4;} - | click href callbackname callbackargs {$$=$1+' ' + $2 + ' ' + $3 + ' ' + $4;} - | click href {$$=$1+' ' + $2;} - ; -%% + : click callbackname {$$=$1 + ' ' + $2;} + | click callbackname href {$$=$1 + ' ' + $2 + ' ' + $3;} + + | click callbackname callbackargs {$$=$1 + ' ' + $2 + ' ' + $3;} + | click callbackname callbackargs href {$$=$1 + ' ' + $2 + ' ' + $3 + ' ' + $4;} + + | click href callbackname {$$=$1 + ' ' + $2 + ' ' + $3;} + | click href callbackname callbackargs {$$=$1 + ' ' + $2 + ' ' + $3 + ' ' + $4;} + + | click href {$$=$1 + ' ' + $2;} + ;%% From 63184d53c1dda1b36807cd2c087eed8eefee6047 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sun, 10 Mar 2019 13:41:59 +0100 Subject: [PATCH 064/103] Argument processing now allows double quoted strings --- src/diagrams/gantt/ganttDb.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index 2662e33ab..685472575 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -402,13 +402,28 @@ export const setClass = function (ids, className) { } const setClickFun = function (id, functionName, functionArgs) { - functionArgs = functionArgs.split(',') if (typeof functionName === 'undefined') { return } + + let argList = [] + if (typeof functionArgs === 'string') { + /* Splits functionArgs by ',', ignoring all ',' in double quoted strings */ + argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/) + for (let i = 0; i < argList.length; i++) { + let item = argList[i].trim() + /* Removes all double quotes at the start and end of an argument */ + /* This preserves all starting and ending whitespace inside */ + if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') { + item = item.substr(1, item.length - 2) + } + argList[i] = item + } + } + let rawTask = findTaskById(id) if (typeof rawTask !== 'undefined') { - pushFun(id, () => { window[functionName](id, ...functionArgs) }) + pushFun(id, () => { window[functionName](...argList) }) } } From fa04e3de75e04386d4aa722b4cd038ae64089063 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sun, 10 Mar 2019 13:42:43 +0100 Subject: [PATCH 065/103] Adding jison processed js file because it seems that this is always committed to github --- src/diagrams/gantt/parser/gantt.js | 100 +++++++++++++++++++++++------ 1 file changed, 79 insertions(+), 21 deletions(-) diff --git a/src/diagrams/gantt/parser/gantt.js b/src/diagrams/gantt/parser/gantt.js index c72af3eb9..f2ff64d39 100644 --- a/src/diagrams/gantt/parser/gantt.js +++ b/src/diagrams/gantt/parser/gantt.js @@ -72,12 +72,12 @@ } */ var parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,8,10,11,12,13,14,15],$V1=[1,9],$V2=[1,10],$V3=[1,11],$V4=[1,12],$V5=[1,13]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,8,10,11,12,13,14,16,18],$V1=[1,9],$V2=[1,10],$V3=[1,11],$V4=[1,12],$V5=[1,14],$V6=[1,15]; var parser = {trace: function trace () { }, yy: {}, -symbols_: {"error":2,"start":3,"gantt":4,"document":5,"EOF":6,"line":7,"SPACE":8,"statement":9,"NL":10,"dateFormat":11,"axisFormat":12,"title":13,"section":14,"taskTxt":15,"taskData":16,"$accept":0,"$end":1}, -terminals_: {2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",11:"dateFormat",12:"axisFormat",13:"title",14:"section",15:"taskTxt",16:"taskData"}, -productions_: [0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[9,2]], +symbols_: {"error":2,"start":3,"gantt":4,"document":5,"EOF":6,"line":7,"SPACE":8,"statement":9,"NL":10,"dateFormat":11,"axisFormat":12,"title":13,"section":14,"clickStatement":15,"taskTxt":16,"taskData":17,"click":18,"callbackname":19,"callbackargs":20,"href":21,"clickStatementDebug":22,"$accept":0,"$end":1}, +terminals_: {2:"error",4:"gantt",6:"EOF",8:"SPACE",10:"NL",11:"dateFormat",12:"axisFormat",13:"title",14:"section",16:"taskTxt",17:"taskData",18:"click",19:"callbackname",20:"callbackargs",21:"href"}, +productions_: [0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,1],[9,1],[9,1],[9,1],[9,2],[15,2],[15,3],[15,3],[15,4],[15,3],[15,4],[15,2],[22,2],[22,3],[22,3],[22,4],[22,4],[22,3],[22,2]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -110,12 +110,48 @@ break; case 11: yy.addSection($$[$0].substr(8));this.$=$$[$0].substr(8); break; -case 12: +case 13: yy.addTask($$[$0-1],$$[$0]);this.$='task'; break; +case 14: +this.$ = $$[$0-1];yy.setClickEvent($$[$0-1], $$[$0], null); +break; +case 15: +this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], $$[$0]); +break; +case 16: +this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0-1], null);yy.setLink($$[$0-2],$$[$0]); +break; +case 17: +this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-2], $$[$0-1]);yy.setLink($$[$0-3],$$[$0]); +break; +case 18: +this.$ = $$[$0-2];yy.setClickEvent($$[$0-2], $$[$0], null);yy.setLink($$[$0-2],$$[$0-1]); +break; +case 19: +this.$ = $$[$0-3];yy.setClickEvent($$[$0-3], $$[$0-1], $$[$0]);yy.setLink($$[$0-3],$$[$0-2]); +break; +case 20: +this.$ = $$[$0-1];yy.setLink($$[$0-1], $$[$0]); +break; +case 21: +this.$=$$[$0-1] + ' ' + $$[$0]; +break; +case 22: +this.$=$$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0]; +break; +case 23: case 26: +this.$=$$[$0-2]+' ' + $$[$0-1] + ' ' + $$[$0]; +break; +case 24: case 25: +this.$=$$[$0-3]+' ' + $$[$0-2] + ' ' + $$[$0-1] + ' ' + $$[$0]; +break; +case 27: +this.$=$$[$0-1]+' ' + $$[$0]; +break; } }, -table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:$V1,12:$V2,13:$V3,14:$V4,15:$V5},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:14,11:$V1,12:$V2,13:$V3,14:$V4,15:$V5},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,8]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,11]),{16:[1,15]},o($V0,[2,4]),o($V0,[2,12])], +table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:$V1,12:$V2,13:$V3,14:$V4,15:13,16:$V5,18:$V6},o($V0,[2,7],{1:[2,1]}),o($V0,[2,3]),{9:16,11:$V1,12:$V2,13:$V3,14:$V4,15:13,16:$V5,18:$V6},o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,8]),o($V0,[2,9]),o($V0,[2,10]),o($V0,[2,11]),o($V0,[2,12]),{17:[1,17]},{19:[1,18],21:[1,19]},o($V0,[2,4]),o($V0,[2,13]),o($V0,[2,14],{20:[1,20],21:[1,21]}),o($V0,[2,20],{19:[1,22]}),o($V0,[2,15],{21:[1,23]}),o($V0,[2,16]),o($V0,[2,18],{20:[1,24]}),o($V0,[2,17]),o($V0,[2,19])], defaultActions: {}, parseError: function parseError (str, hash) { if (hash.recoverable) { @@ -593,8 +629,6 @@ stateStackSize:function stateStackSize() { }, options: {"case-insensitive":true}, performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { - // Pre-lexer code can go here - var YYSTATE=YY_START; switch($avoiding_name_collisions) { case 0:return 10; @@ -605,32 +639,56 @@ case 2:/* skip comments */ break; case 3:/* skip comments */ break; -case 4:return 4; +case 4:this.begin("href"); break; -case 5:return 11; +case 5:this.popState(); break; -case 6:return 12; +case 6:return 21; break; -case 7:return 'date'; +case 7:this.begin("callbackname"); break; -case 8:return 13; +case 8:this.popState(); break; -case 9:return 14; +case 9:this.popState(); this.begin("callbackargs"); break; -case 10:return 15; +case 10:return 19; break; -case 11:return 16; +case 11:this.popState(); break; -case 12:return ':'; +case 12:return 20; break; -case 13:return 6; +case 13:this.begin("click"); break; -case 14:return 'INVALID'; +case 14:this.popState(); +break; +case 15:return 18; +break; +case 16:return 4; +break; +case 17:return 11; +break; +case 18:return 12; +break; +case 19:return 'date'; +break; +case 20:return 13; +break; +case 21:return 14; +break; +case 22:return 16; +break; +case 23:return 17; +break; +case 24:return ':'; +break; +case 25:return 6; +break; +case 26:return 'INVALID'; break; } }, -rules: [/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i], -conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"inclusive":true}} +rules: [/^(?:[\n]+)/i,/^(?:\s+)/i,/^(?:#[^\n]*)/i,/^(?:%[^\n]*)/i,/^(?:href[\s]+["])/i,/^(?:["])/i,/^(?:[^"]*)/i,/^(?:call[\s]+)/i,/^(?:\([\s]*\))/i,/^(?:\()/i,/^(?:[^(]*)/i,/^(?:\))/i,/^(?:[^)]*)/i,/^(?:click[\s]+)/i,/^(?:[\s\n])/i,/^(?:[^\s\n]*)/i,/^(?:gantt\b)/i,/^(?:dateFormat\s[^#\n;]+)/i,/^(?:axisFormat\s[^#\n;]+)/i,/^(?:\d\d\d\d-\d\d-\d\d\b)/i,/^(?:title\s[^#\n;]+)/i,/^(?:section\s[^#:\n;]+)/i,/^(?:[^#:()\n;]+)/i,/^(?::[^#\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i], +conditions: {"callbackargs":{"rules":[11,12],"inclusive":false},"callbackname":{"rules":[8,9,10],"inclusive":false},"href":{"rules":[5,6],"inclusive":false},"click":{"rules":[14,15],"inclusive":false},"INITIAL":{"rules":[0,1,2,3,4,7,13,16,17,18,19,20,21,22,23,24,25,26],"inclusive":true}} }); return lexer; })(); From d2eb507e7d891ca2b691158ed395ea509a1d5953 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sun, 10 Mar 2019 13:43:20 +0100 Subject: [PATCH 066/103] Adding styles for clickable tasks --- src/themes/dark/index.scss | 1 + src/themes/default/index.scss | 1 + src/themes/forest/index.scss | 1 + src/themes/gantt.scss | 5 +++-- src/themes/neutral/index.scss | 1 + 5 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/themes/dark/index.scss b/src/themes/dark/index.scss index 579d871b2..c74d9ff52 100644 --- a/src/themes/dark/index.scss +++ b/src/themes/dark/index.scss @@ -43,6 +43,7 @@ $taskBkgColor: $mainBkg; $taskTextColor: $darkTextColor; $taskTextLightColor: $mainContrastColor; $taskTextOutsideColor: $taskTextLightColor; +$taskTextClickableColor: #003163; $activeTaskBorderColor: rgba(255, 255, 255, 0.5); $activeTaskBkgColor: #81B1DB; $gridColor: $mainContrastColor; diff --git a/src/themes/default/index.scss b/src/themes/default/index.scss index 2718eb3ef..8bb0fd482 100644 --- a/src/themes/default/index.scss +++ b/src/themes/default/index.scss @@ -42,6 +42,7 @@ $taskTextLightColor: white; $taskTextColor: $taskTextLightColor; $taskTextDarkColor: black; $taskTextOutsideColor: $taskTextDarkColor; +$taskTextClickableColor: #003163; $activeTaskBorderColor: #534fbc; $activeTaskBkgColor: #bfc7ff; $gridColor: lightgrey; diff --git a/src/themes/forest/index.scss b/src/themes/forest/index.scss index c4a712297..4d6760848 100644 --- a/src/themes/forest/index.scss +++ b/src/themes/forest/index.scss @@ -43,6 +43,7 @@ $taskTextLightColor: white; $taskTextColor: $taskTextLightColor; $taskTextDarkColor: black; $taskTextOutsideColor: $taskTextDarkColor; +$taskTextClickableColor: #003163; $activeTaskBorderColor: $taskBorderColor; $activeTaskBkgColor: $mainBkg; $gridColor: lightgrey; diff --git a/src/themes/gantt.scss b/src/themes/gantt.scss index 376b1cb91..37d4144d2 100644 --- a/src/themes/gantt.scss +++ b/src/themes/gantt.scss @@ -66,7 +66,6 @@ /* Task styling */ - /* Default task */ .task { @@ -95,6 +94,8 @@ } .taskText.clickable { cursor: pointer; + fill: $taskTextClickableColor !important; + font-weight: bold; } /* Specific task settings for the sections*/ @@ -115,7 +116,7 @@ } .taskTextOutside0, -.taskTextOutside2, +.taskTextOutside2 { fill: $taskTextOutsideColor; } diff --git a/src/themes/neutral/index.scss b/src/themes/neutral/index.scss index ea41b9b8c..7e12c5a0b 100644 --- a/src/themes/neutral/index.scss +++ b/src/themes/neutral/index.scss @@ -47,6 +47,7 @@ $taskTextLightColor: white; $taskTextColor: $taskTextLightColor; $taskTextDarkColor: $text; $taskTextOutsideColor: $taskTextDarkColor; +$taskTextClickableColor: #003163; $activeTaskBorderColor: $taskBorderColor; $activeTaskBkgColor: $mainBkg; $gridColor: lighten($border1, 30%); From c44ff8a70fc8705d072514458b75f522e6711893 Mon Sep 17 00:00:00 2001 From: abzicht Date: Sun, 10 Mar 2019 13:56:49 +0100 Subject: [PATCH 067/103] Adding a gantt clickable example to the existing gantt diagram --- dist/index.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dist/index.html b/dist/index.html index 47bf945d5..1fd3aae96 100644 --- a/dist/index.html +++ b/dist/index.html @@ -288,6 +288,13 @@ Describe gantt syntax :active, a1, after des1, 3d Add gantt diagram to demo page :after a1 , 20h Add another diagram to demo page :doc1, after a1 , 48h +section Clickable +Visit mermaidjs :active, cl1, 2014-01-07,2014-01-10 +Calling a Callback, look at the console log :cl2, after cl1, 3d + +click cl1 href "https://mermaidjs.github.io/" +click cl2 call ganttTestClick("test", test, test) + section Last section Describe gantt syntax :after doc1, 3d Add gantt diagram to demo page : 20h @@ -346,6 +353,11 @@ Class08 <--> C2: Cool label }); + + + + + + + + diff --git a/e2e/platform/viewer.js b/e2e/platform/viewer.js new file mode 100644 index 000000000..c78ef6315 --- /dev/null +++ b/e2e/platform/viewer.js @@ -0,0 +1,47 @@ +import { Base64 } from 'js-base64' + +/** + * ##contentLoaded + * Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and + * calls init for rendering the mermaid diagrams on the page. + */ +const contentLoaded = function () { + let pos = document.location.href.indexOf('?graph=') + if (pos > 0) { + pos = pos + 7 + const graphBase64 = document.location.href.substr(pos) + const graphObj = JSON.parse(Base64.decode(graphBase64)) + // const graph = 'hello' + console.log(graphObj.code) + const div = document.createElement('div') + div.id = 'block' + div.className = 'mermaid' + div.innerHTML = graphObj.code + document.getElementsByTagName('body')[0].appendChild(div) + global.mermaid.initialize({ + theme: 'neutral', + themeCSS: '.node rect { fill: red; }', + htmlLabels: false, + // logLevel: 3, + // flowchart: { curve: 'linear' }, + // gantt: { axisFormat: '%m/%d/%Y' }, + // sequence: { actorMargin: 50 }, + // sequenceDiagram: { actorMargin: 300 } // deprecated + startOnLoad: false + }) + global.mermaid.init() + } +} + +if (typeof document !== 'undefined') { + /*! + * Wait for document loaded before starting the execution + */ + window.addEventListener( + 'load', + function () { + contentLoaded() + }, + false + ) +} diff --git a/e2e/spec/flowchart.spec.js b/e2e/spec/flowchart.spec.js new file mode 100644 index 000000000..376a99738 --- /dev/null +++ b/e2e/spec/flowchart.spec.js @@ -0,0 +1,10 @@ +/* eslint-env jest */ +describe('Google', () => { + beforeAll(async () => { + await page.goto('https://google.com') + }) + + it('should be titled "Google"', async () => { + await expect(page.title()).resolves.toMatch('Google') + }) +}) diff --git a/package.json b/package.json index 8e2d81d8a..0171d3b3b 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,9 @@ "build:watch": "yarn build --watch", "release": "yarn build -p --config webpack.config.prod.babel.js", "lint": "standard", - "test": "yarn lint && jest", - "test:watch": "jest --watch", + "e2e": "yarn lint && jest e2e", + "test": "yarn lint && jest src", + "test:watch": "jest --watch src", "jison": "node -r @babel/register node_modules/.bin/gulp jison", "prepublishOnly": "yarn build && yarn release && yarn test", "prepush": "yarn test" @@ -33,6 +34,9 @@ "ignore": [ "**/parser/*.js", "dist/**/*.js" + ], + "globals": [ + "page" ] }, "dependencies": { @@ -61,6 +65,8 @@ "husky": "^1.2.1", "identity-obj-proxy": "^3.0.0", "jest": "^23.6.0", + "jest-image-snapshot": "^2.8.2", + "jest-puppeteer": "^4.2.0", "jison": "^0.4.18", "node-sass": "^4.11.0", "sass-loader": "^7.1.0", diff --git a/webpack.config.e2e.js b/webpack.config.e2e.js new file mode 100644 index 000000000..38d01b449 --- /dev/null +++ b/webpack.config.e2e.js @@ -0,0 +1,58 @@ +const path = require('path') + +const jsRule = { + test: /\.js$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader' + } +} + +const amdRule = { + parser: { + amd: false // https://github.com/lodash/lodash/issues/3052 + } +} +const scssRule = { + // load scss to string + test: /\.scss$/, + use: [ + { loader: 'css-to-string-loader' }, + { loader: 'css-loader' }, + { loader: 'sass-loader' } + ] +} + +module.exports = { + mode: 'development', + target: 'web', + entry: { + mermaid: './src/mermaid.js', + e2e: './e2e/platform/viewer.js' + }, + node: { + fs: 'empty' // jison generated code requires 'fs' + }, + output: { + path: path.join(__dirname, './dist/'), + filename: '[name].js', + library: 'mermaid', + libraryTarget: 'umd', + libraryExport: 'default' + }, + devServer: { + contentBase: [ + path.join(__dirname, 'e2e', 'platform'), + path.join(__dirname, 'dist') + ], + compress: true, + port: 9000 + }, + module: { + rules: [amdRule, jsRule, scssRule] + }, + externals: { + mermaid: 'mermaid' + }, + devtool: 'source-map' +} diff --git a/yarn.lock b/yarn.lock index 8e373dc64..95659be0f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1098,12 +1098,12 @@ async-settle@^1.0.0: dependencies: async-done "^1.2.2" -async@^2.1.4, async@^2.5.0: - version "2.6.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" - integrity sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ== +async@^2.1.4: + version "2.6.2" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" + integrity sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg== dependencies: - lodash "^4.17.10" + lodash "^4.17.11" asynckit@^0.4.0: version "0.4.0" @@ -1659,6 +1659,15 @@ chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + chalk@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" @@ -1770,6 +1779,17 @@ clone-buffer@^1.0.0: resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg= +clone-deep@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.2.4.tgz#4e73dd09e9fb971cc38670c5dced9c1896481cc6" + integrity sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY= + dependencies: + for-own "^0.1.3" + is-plain-object "^2.0.1" + kind-of "^3.0.2" + lazy-cache "^1.0.3" + shallow-clone "^0.1.2" + clone-deep@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-2.0.2.tgz#00db3a1e173656730d1188c3d6aced6d7ea97713" @@ -1863,6 +1883,11 @@ commander@2, commander@^2.19.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +commander@^2.11.0, commander@^2.9.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" + integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + commander@~2.17.1: version "2.17.1" resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" @@ -1950,7 +1975,12 @@ core-js@^2.4.0: version "2.5.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" -core-js@^2.5.0, core-js@^2.5.7: +core-js@^2.5.0: + version "2.6.9" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2" + integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A== + +core-js@^2.5.7: version "2.6.0" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.0.tgz#1e30793e9ee5782b307e37ffa22da0eacddd84d4" integrity sha512-kLRC6ncVpuEW/1kwrOXYX6KQASCVtrh1gQr/UiaVgFlf9WE5Vp+lNe5+h3LuMr5PAucWnnEXwH0nQHRH/gpGtw== @@ -2112,6 +2142,14 @@ currently-unhandled@^0.4.1: dependencies: array-find-index "^1.0.1" +cwd@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/cwd/-/cwd-0.10.0.tgz#172400694057c22a13b0cf16162c7e4b7a7fe567" + integrity sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc= + dependencies: + find-pkg "^0.1.2" + fs-exists-sync "^0.1.0" + cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" @@ -2417,7 +2455,7 @@ debug-log@^1.0.0: resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= -debug@^2.1.2, debug@^2.3.3, debug@^2.6.9: +debug@^2.1.2, debug@^2.3.3, debug@^2.6.6, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -3064,6 +3102,13 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" +expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + integrity sha1-C4HrqJflo9MdHD0QL48BRB5VlEk= + dependencies: + os-homedir "^1.0.1" + expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" @@ -3071,6 +3116,11 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" +expect-puppeteer@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/expect-puppeteer/-/expect-puppeteer-4.1.1.tgz#cda2ab7b6fa27ac24eba273bbb0296a0de538e6d" + integrity sha512-xNpu6uYJL9Qrrp4Z31MOpDWK68zAi+2qg5aMQlyOTVZNy7cAgBZiPvKCN0C1JmP3jgPZfcxhetVjZLaw/KcJOQ== + expect@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/expect/-/expect-23.6.0.tgz#1e0c8d3ba9a581c87bd71fb9bc8862d443425f98" @@ -3247,6 +3297,30 @@ find-cache-dir@^2.0.0: make-dir "^1.0.0" pkg-dir "^3.0.0" +find-file-up@^0.1.2: + version "0.1.3" + resolved "https://registry.yarnpkg.com/find-file-up/-/find-file-up-0.1.3.tgz#cf68091bcf9f300a40da411b37da5cce5a2fbea0" + integrity sha1-z2gJG8+fMApA2kEbN9pczlovvqA= + dependencies: + fs-exists-sync "^0.1.0" + resolve-dir "^0.1.0" + +find-pkg@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/find-pkg/-/find-pkg-0.1.2.tgz#1bdc22c06e36365532e2a248046854b9788da557" + integrity sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc= + dependencies: + find-file-up "^0.1.2" + +find-process@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/find-process/-/find-process-1.4.1.tgz#628c576a494d1525a27673fb26c77af90db5db02" + integrity sha512-RkYWDeukxEoDKUyocqMGKAYuwhSwq77zL99gCqhX9czWon3otdlzihJ0MSZ6YWNKHyvS/MN2YR4+RGYOuIEANg== + dependencies: + chalk "^2.0.1" + commander "^2.11.0" + debug "^2.6.8" + find-root@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" @@ -3325,7 +3399,7 @@ for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" -for-own@^0.1.4: +for-own@^0.1.3, for-own@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" dependencies: @@ -3368,6 +3442,11 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + integrity sha1-mC1ok6+RjnLQjeyehnP/K1qNat0= + fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -3397,7 +3476,7 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.2.2, fsevents@^1.2.3: +fsevents@^1.2.2: version "1.2.4" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.4.tgz#f41dcb1af2582af3692da36fc55cbd8e1041c426" integrity sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg== @@ -3405,6 +3484,14 @@ fsevents@^1.2.2, fsevents@^1.2.3: nan "^2.9.2" node-pre-gyp "^0.10.0" +fsevents@^1.2.3: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + fstream@^1.0.0, fstream@^1.0.2: version "1.0.11" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" @@ -3457,6 +3544,11 @@ get-stdin@^4.0.1: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + integrity sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g= + get-stdin@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" @@ -3558,6 +3650,14 @@ global-modules-path@^2.3.0: resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931" integrity sha512-y+shkf4InI7mPRHSo2b/k6ix6+NLDtyccYv86whhxrSGX9wjPX1VMITmrDbE1eh7zkzhiWtW2sHklJYoQ62Cxg== +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + integrity sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0= + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + global-modules@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -3567,6 +3667,16 @@ global-modules@^1.0.0: is-windows "^1.0.1" resolve-dir "^1.0.0" +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + integrity sha1-jTvGuNo8qBEqFg2NSW/wRiv+948= + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" @@ -3709,11 +3819,11 @@ gulplog@^1.0.0: glogg "^1.0.0" handlebars@^4.0.3: - version "4.0.12" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5" - integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA== + version "4.1.2" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" + integrity sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw== dependencies: - async "^2.5.0" + neo-async "^2.6.0" optimist "^0.6.1" source-map "^0.6.1" optionalDependencies: @@ -3840,6 +3950,16 @@ hmac-drbg@^1.0.0: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.1" +hoek@5.x.x: + version "5.0.4" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-5.0.4.tgz#0f7fa270a1cafeb364a4b2ddfaa33f864e4157da" + integrity sha512-Alr4ZQgoMlnere5FZJsIyfIjORBqZll5POhDsF4q64dPuJR6rNxXdDxtHSQq8OXRurhmx+PWYEE8bXRROY8h0w== + +hoek@6.x.x: + version "6.1.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" + integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== + home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -3853,6 +3973,13 @@ home-or-tmp@^3.0.0: resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-3.0.0.tgz#57a8fe24cf33cdd524860a15821ddc25c86671fb" integrity sha1-V6j+JM8zzdUkhgoVgh3cJchmcfs= +homedir-polyfill@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + homedir-polyfill@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" @@ -4098,6 +4225,11 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-buffer@^1.0.2: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + is-buffer@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" @@ -4320,6 +4452,11 @@ is-valid-glob@^1.0.0: resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + integrity sha1-3hqm1j6indJIc3tp8f+LgALSEIw= + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -4332,6 +4469,13 @@ isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" +isemail@3.x.x: + version "3.2.0" + resolved "https://registry.yarnpkg.com/isemail/-/isemail-3.2.0.tgz#59310a021931a9fb06bbb51e155ce0b3f236832c" + integrity sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg== + dependencies: + punycode "2.x.x" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -4489,6 +4633,19 @@ jest-config@^23.6.0: micromatch "^2.3.11" pretty-format "^23.6.0" +jest-dev-server@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/jest-dev-server/-/jest-dev-server-4.2.0.tgz#409c995fead62448a35ee30251dafa36ab366d5c" + integrity sha512-Hy4+Y3awthvT3OI7exmqqXmselI6pvYiAQeob2hkHLtvhpsA2rO7GDPbOwxDMjqAVGUEopQOzQm37WjfB5tWdg== + dependencies: + chalk "^2.4.2" + cwd "^0.10.0" + find-process "^1.4.1" + prompts "^2.0.4" + spawnd "^4.0.0" + tree-kill "^1.2.1" + wait-on "^3.2.0" + jest-diff@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-23.6.0.tgz#1500f3f16e850bb3d71233408089be099f610c7d" @@ -4531,6 +4688,16 @@ jest-environment-node@^23.4.0: jest-mock "^23.2.0" jest-util "^23.4.0" +jest-environment-puppeteer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/jest-environment-puppeteer/-/jest-environment-puppeteer-4.2.0.tgz#ec785c792af1b06445b61367759320e5adddbbe0" + integrity sha512-i3HC+BsB0l9LR79+wrnyz7ImomZdwgpu1QH/9l1DnOgAuD5tTIwvzbyQp1nX+z5aKUhAVhontDIvHaM4oHRQ0Q== + dependencies: + chalk "^2.4.2" + cwd "^0.10.0" + jest-dev-server "^4.2.0" + merge-deep "^3.0.2" + jest-get-type@^22.1.0: version "22.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-22.4.3.tgz#e3a8504d8479342dd4420236b322869f18900ce4" @@ -4550,6 +4717,19 @@ jest-haste-map@^23.6.0: micromatch "^2.3.11" sane "^2.0.0" +jest-image-snapshot@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-2.8.2.tgz#d9e95b8987fdf176a94505cd1b1f22916b11c897" + integrity sha512-gtKgxfW5ifAikNI+fp0c0o/3byOeOUSmYeAELblGzINEZrDGUYxwUZtn5rNrgVuzjgGMBBsKYv/2gIM6VpzLaw== + dependencies: + chalk "^1.1.3" + get-stdin "^5.0.1" + lodash "^4.17.4" + mkdirp "^0.5.1" + pixelmatch "^4.0.2" + pngjs "^3.3.3" + rimraf "^2.6.2" + jest-jasmine2@^23.6.0: version "23.6.0" resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz#840e937f848a6c8638df24360ab869cc718592e0" @@ -4600,6 +4780,14 @@ jest-mock@^23.2.0: resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-23.2.0.tgz#ad1c60f29e8719d47c26e1138098b6d18b261134" integrity sha1-rRxg8p6HGdR8JuETgJi20YsmETQ= +jest-puppeteer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/jest-puppeteer/-/jest-puppeteer-4.2.0.tgz#94eb4fff491396a4eb0bb615492d0913c2d7ff18" + integrity sha512-vTynE0pLia0SxbE4eRdFMWAVCm75poMTKzPhKQdQ5iS7e+mZOuMtVRNXqErsHppl4+3cRnN/r3u0g6iFSvR/sw== + dependencies: + expect-puppeteer "^4.1.1" + jest-environment-puppeteer "^4.2.0" + jest-regex-util@^23.3.0: version "23.3.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-23.3.0.tgz#5f86729547c2785c4002ceaa8f849fe8ca471bc5" @@ -4758,6 +4946,15 @@ jison@^0.4.18, jison@~0.4.15: lex-parser "~0.1.3" nomnom "1.5.2" +joi@^13.0.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-13.7.0.tgz#cfd85ebfe67e8a1900432400b4d03bbd93fb879f" + integrity sha512-xuY5VkHfeOYK3Hdi91ulocfuFopwgbSORmIwzcwHKESQhC7w1kD5jaVSPnqDxS2I8t3RZ9omCKAxNwXN5zG1/Q== + dependencies: + hoek "5.x.x" + isemail "3.x.x" + topo "3.x.x" + js-base64@^2.1.8: version "2.4.9" resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.9.tgz#748911fb04f48a60c4771b375cac45a80df11c03" @@ -4777,7 +4974,7 @@ js-tokens@^3.0.0, js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.11.0, js-yaml@^3.7.0, js-yaml@^3.9.0: +js-yaml@^3.11.0, js-yaml@^3.9.0: version "3.12.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.0.tgz#eaed656ec8344f10f527c6bfa1b6e2244de167d1" integrity sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A== @@ -4785,6 +4982,14 @@ js-yaml@^3.11.0, js-yaml@^3.7.0, js-yaml@^3.9.0: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@^3.7.0: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -4916,6 +5121,13 @@ just-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + integrity sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU= + dependencies: + is-buffer "^1.0.2" + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -4941,6 +5153,11 @@ kleur@^2.0.1: resolved "https://registry.yarnpkg.com/kleur/-/kleur-2.0.2.tgz#b704f4944d95e255d038f0cb05fb8a602c55a300" integrity sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ== +kleur@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + last-run@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" @@ -4949,6 +5166,16 @@ last-run@^1.1.0: default-resolution "^2.0.0" es6-weak-map "^2.0.1" +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + integrity sha1-f+3fLctu23fRHvHRF6tf/fCrG2U= + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + integrity sha1-odePw6UEdMuAhF07O24dpJpEbo4= + lazy-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" @@ -5357,6 +5584,15 @@ meow@^3.7.0: redent "^1.0.0" trim-newlines "^1.0.0" +merge-deep@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/merge-deep/-/merge-deep-3.0.2.tgz#f39fa100a4f1bd34ff29f7d2bf4508fbb8d83ad2" + integrity sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA== + dependencies: + arr-union "^3.1.0" + clone-deep "^0.2.4" + kind-of "^3.0.2" + merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" @@ -5586,6 +5822,11 @@ nan@^2.10.0, nan@^2.9.2: resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.0.tgz#9d443fdb5e13a20770cc5e602eee59760a685885" integrity sha512-zT5nC0JhbljmyEf+Z456nvm7iO7XgRV2hYxoBtPpnyp+0Q4aCoP6uWNn76v/I6k2kCYNLWqWbwBWQcjsNI/bjw== +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + nanomatch@^1.2.9: version "1.2.9" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" @@ -5620,6 +5861,11 @@ neo-async@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f" +neo-async@^2.6.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + next-tick@1: version "1.0.0" resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -5712,6 +5958,22 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + node-releases@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.1.tgz#8fff8aea1cfcad1fb4205f805149054fbf73cafd" @@ -5967,7 +6229,7 @@ os-browserify@^0.3.0: resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.0: +os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -6235,6 +6497,13 @@ pirates@^4.0.0: dependencies: node-modules-regexp "^1.0.0" +pixelmatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854" + integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ= + dependencies: + pngjs "^3.0.0" + pkg-conf@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058" @@ -6289,6 +6558,11 @@ pn@^1.1.0: resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== +pngjs@^3.0.0, pngjs@^3.3.3: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -6395,6 +6669,14 @@ prompts@^0.1.9: kleur "^2.0.1" sisteransi "^0.1.1" +prompts@^2.0.4: + version "2.1.0" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.1.0.tgz#bf90bc71f6065d255ea2bdc0fe6520485c1b45db" + integrity sha512-+x5TozgqYdOwWsQFZizE/Tra3fKvAoy037kOyU6cgz84n8f6zxngLOV4O32kTwt9FcLCxAqw0P/c8rOr9y+Gfg== + dependencies: + kleur "^3.0.2" + sisteransi "^1.0.0" + prop-types@^15.6.2: version "15.6.2" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.2.tgz#05d5ca77b4453e985d60fc7ff8c859094a497102" @@ -6462,6 +6744,11 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= +punycode@2.x.x, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -6470,11 +6757,6 @@ punycode@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" -punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -6638,9 +6920,9 @@ readdirp@^2.0.0: set-immediate-shim "^1.0.1" realpath-native@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.0.2.tgz#cd51ce089b513b45cf9b1516c82989b51ccc6560" - integrity sha512-+S3zTvVt9yTntFrBpm7TQmQ3tzpCrnA1a/y+3cUHAc9ZR6aIjG0WNLR+Rj79QpJktY+VeW/TQtFlQ1bzsehI8g== + version "1.1.0" + resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" + integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== dependencies: util.promisify "^1.0.0" @@ -6867,6 +7149,14 @@ resolve-cwd@^2.0.0: dependencies: resolve-from "^3.0.0" +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + integrity sha1-shklmlYC+sXFxJatiUpujMQwJh4= + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" @@ -6973,6 +7263,11 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= +rx@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" + integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I= + rxjs@^5.5.2: version "5.5.12" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.12.tgz#6fa61b8a77c3d793dbaf270bee2f43f652d741cc" @@ -7156,6 +7451,16 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + integrity sha1-WQnodLp3EG1zrEFM/sH/yofZcGA= + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + shallow-clone@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-1.0.0.tgz#4480cd06e882ef68b2ad88a3ea54832e2c48b571" @@ -7189,6 +7494,11 @@ sisteransi@^0.1.1: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" integrity sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g== +sisteransi@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.0.tgz#77d9622ff909080f1c19e5f4a1df0c1b0a27b88c" + integrity sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ== + slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -7301,6 +7611,16 @@ sparkles@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" +spawnd@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/spawnd/-/spawnd-4.0.0.tgz#b27ee6e7ec55c6ec232c05a21418cf35a77e0409" + integrity sha512-ql3qhJnhAkvXpaqKBWOqou1rUTSQhFRaZkyOT+MTFB4xY3X+brgw6LTWV2wHuE9A6YPhrNe1cbg7S+jAYnbC0Q== + dependencies: + exit "^0.1.2" + signal-exit "^3.0.2" + tree-kill "^1.2.1" + wait-port "^0.2.2" + spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -7502,6 +7822,7 @@ strip-ansi@~0.1.0: strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= strip-bom@^2.0.0: version "2.0.0" @@ -7778,6 +8099,13 @@ to-through@^2.0.0: dependencies: through2 "^2.0.3" +topo@3.x.x: + version "3.0.3" + resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c" + integrity sha512-IgpPtvD4kjrJ7CRA3ov2FhWQADwv+Tdqbsf1ZnPUSAtCJ9e1Z44MmoSGDXGk4IppoZA7jd/QRkNddlLJWlUZsQ== + dependencies: + hoek "6.x.x" + tough-cookie@>=2.3.3, tough-cookie@^2.3.4: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -7801,6 +8129,11 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" +tree-kill@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.1.tgz#5398f374e2f292b9dcc7b2e71e30a5c3bb6c743a" + integrity sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q== + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -8118,6 +8451,26 @@ w3c-hr-time@^1.0.1: dependencies: browser-process-hrtime "^0.1.2" +wait-on@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-3.2.0.tgz#c83924df0fc42a675c678324c49c769d378bcb85" + integrity sha512-QUGNKlKLDyY6W/qHdxaRlXUAgLPe+3mLL/tRByHpRNcHs/c7dZXbu+OnJWGNux6tU1WFh/Z8aEwvbuzSAu79Zg== + dependencies: + core-js "^2.5.7" + joi "^13.0.0" + minimist "^1.2.0" + request "^2.88.0" + rx "^4.1.0" + +wait-port@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/wait-port/-/wait-port-0.2.2.tgz#d51a491e484a17bf75a947e711a2f012b4e6f2e3" + integrity sha1-1RpJHkhKF791qUfnEaLwErTm8uM= + dependencies: + chalk "^1.1.3" + commander "^2.9.0" + debug "^2.6.6" + walker@~1.0.5: version "1.0.7" resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb" @@ -8291,9 +8644,9 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" write-file-atomic@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" - integrity sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA== + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== dependencies: graceful-fs "^4.1.11" imurmurhash "^0.1.4" From 7242a98adb3422c230c763ddb2be8f3e4f03c9eb Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Thu, 30 May 2019 19:31:41 +0200 Subject: [PATCH 082/103] Moving jest config out of package.json to facilitate different jest configurations for unit tests and e2e tests --- jest.config.js | 9 +++++++++ package.json | 11 ----------- 2 files changed, 9 insertions(+), 11 deletions(-) create mode 100644 jest.config.js diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 000000000..c24a3fd0c --- /dev/null +++ b/jest.config.js @@ -0,0 +1,9 @@ +module.exports = { + transform: { + '^.+\\.jsx?$': './transformer.js' + }, + transformIgnorePatterns: ['/node_modules/(?!dagre-d3-renderer/lib).*\\.js'], + moduleNameMapper: { + '\\.(css|scss)$': 'identity-obj-proxy' + } +} diff --git a/package.json b/package.json index 0171d3b3b..0d729906e 100644 --- a/package.json +++ b/package.json @@ -80,17 +80,6 @@ "dist", "src" ], - "jest": { - "transform": { - "^.+\\.jsx?$": "./transformer.js" - }, - "transformIgnorePatterns": [ - "/node_modules/(?!dagre-d3-renderer/lib).*\\.js" - ], - "moduleNameMapper": { - "\\.(css|scss)$": "identity-obj-proxy" - } - }, "yarn-upgrade-all": { "ignore": [ "babel-core" From 357e738983f56eaf5001b06c631d330e40286ac6 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 31 May 2019 14:20:43 +0200 Subject: [PATCH 083/103] Adding image snapshots for graphs --- babel.config.js | 11 +- e2e/helpers/util.js | 13 + e2e/jest.con | 5 - e2e/jest.config.js | 11 + e2e/platform/viewer.js | 14 +- ...chart-spec-js-google-should-apa-1-snap.png | Bin 0 -> 21645 bytes e2e/spec/flowchart.spec.js | 25 +- package.json | 5 +- yarn.lock | 1123 ++++++++++++++++- 9 files changed, 1147 insertions(+), 60 deletions(-) create mode 100644 e2e/helpers/util.js delete mode 100644 e2e/jest.con create mode 100644 e2e/jest.config.js create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-google-should-apa-1-snap.png diff --git a/babel.config.js b/babel.config.js index 941bbdda7..c76a0d028 100644 --- a/babel.config.js +++ b/babel.config.js @@ -1,5 +1,12 @@ module.exports = { - 'presets': [ - '@babel/preset-env' + presets: [ + [ + '@babel/preset-env', + { + targets: { + node: 'current' + } + } + ] ] } diff --git a/e2e/helpers/util.js b/e2e/helpers/util.js new file mode 100644 index 000000000..b7ec91bbc --- /dev/null +++ b/e2e/helpers/util.js @@ -0,0 +1,13 @@ +import { Base64 } from 'js-base64' + +const mermaidUrl = (graphStr, options) => { + const obj = { + code: graphStr, + mermaid: options + } + const objStr = JSON.stringify(obj) + // console.log(Base64) + return 'http://localhost:9000/e2e.html?graph=' + Base64.encodeURI(objStr) +} + +export default mermaidUrl diff --git a/e2e/jest.con b/e2e/jest.con deleted file mode 100644 index a50ef2239..000000000 --- a/e2e/jest.con +++ /dev/null @@ -1,5 +0,0 @@ -// jest.config.js -module.exports = { - verbose: true, - preset: 'jest-puppeteer' -} diff --git a/e2e/jest.config.js b/e2e/jest.config.js new file mode 100644 index 000000000..3b7fc6917 --- /dev/null +++ b/e2e/jest.config.js @@ -0,0 +1,11 @@ +// jest.config.js +module.exports = { + // verbose: true, + transform: { + '^.+\\.jsx?$': '../transformer.js' + }, + preset: 'jest-puppeteer', + 'globalSetup': 'jest-environment-puppeteer/setup', + 'globalTeardown': 'jest-environment-puppeteer/teardown', + 'testEnvironment': 'jest-environment-puppeteer' +} diff --git a/e2e/platform/viewer.js b/e2e/platform/viewer.js index c78ef6315..a99bad818 100644 --- a/e2e/platform/viewer.js +++ b/e2e/platform/viewer.js @@ -12,23 +12,13 @@ const contentLoaded = function () { const graphBase64 = document.location.href.substr(pos) const graphObj = JSON.parse(Base64.decode(graphBase64)) // const graph = 'hello' - console.log(graphObj.code) + console.log(graphObj) const div = document.createElement('div') div.id = 'block' div.className = 'mermaid' div.innerHTML = graphObj.code document.getElementsByTagName('body')[0].appendChild(div) - global.mermaid.initialize({ - theme: 'neutral', - themeCSS: '.node rect { fill: red; }', - htmlLabels: false, - // logLevel: 3, - // flowchart: { curve: 'linear' }, - // gantt: { axisFormat: '%m/%d/%Y' }, - // sequence: { actorMargin: 50 }, - // sequenceDiagram: { actorMargin: 300 } // deprecated - startOnLoad: false - }) + global.mermaid.initialize(graphObj.mermaid) global.mermaid.init() } } diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-google-should-apa-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-google-should-apa-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..ca54fc54b643b05b8c9ff1e5e590eae1e203cdcf GIT binary patch literal 21645 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 UV~yJc90*|WboFyt=akR{0G*$F&;S4c literal 0 HcmV?d00001 diff --git a/e2e/spec/flowchart.spec.js b/e2e/spec/flowchart.spec.js index 376a99738..b9d96a3d1 100644 --- a/e2e/spec/flowchart.spec.js +++ b/e2e/spec/flowchart.spec.js @@ -1,10 +1,23 @@ /* eslint-env jest */ -describe('Google', () => { - beforeAll(async () => { - await page.goto('https://google.com') - }) +import mermaidUrl from '../helpers/util.js' +const { toMatchImageSnapshot } = require('jest-image-snapshot') - it('should be titled "Google"', async () => { - await expect(page.title()).resolves.toMatch('Google') +expect.extend({ toMatchImageSnapshot }) + +describe('Google', () => { + it('should apa', async () => { + const url = mermaidUrl(`graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + C -->|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + `, {}) + + await page.goto(url) + + const image = await page.screenshot() + + expect(image).toMatchImageSnapshot() }) }) diff --git a/package.json b/package.json index 0d729906e..40f1e699c 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "build:watch": "yarn build --watch", "release": "yarn build -p --config webpack.config.prod.babel.js", "lint": "standard", - "e2e": "yarn lint && jest e2e", + "e2e": "yarn lint && jest e2e --config e2e/jest.config.js", "test": "yarn lint && jest src", "test:watch": "jest --watch src", "jison": "node -r @babel/register node_modules/.bin/gulp jison", @@ -65,14 +65,17 @@ "husky": "^1.2.1", "identity-obj-proxy": "^3.0.0", "jest": "^23.6.0", + "jest-environment-puppeteer": "^4.2.0", "jest-image-snapshot": "^2.8.2", "jest-puppeteer": "^4.2.0", "jison": "^0.4.18", "node-sass": "^4.11.0", + "puppeteer": "^1.17.0", "sass-loader": "^7.1.0", "standard": "^12.0.1", "webpack": "^4.27.1", "webpack-cli": "^3.1.2", + "webpack-dev-server": "^3.4.1", "webpack-node-externals": "^1.7.2", "yarn-upgrade-all": "^0.5.0" }, diff --git a/yarn.lock b/yarn.lock index 95659be0f..8fae21738 100644 --- a/yarn.lock +++ b/yarn.lock @@ -596,6 +596,30 @@ lodash "^4.17.10" to-fast-properties "^2.0.0" +"@types/events@*": + version "3.0.0" + resolved "http://pacman01.inkclub.local:4873/@types%2fevents/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/glob@^7.1.1": + version "7.1.1" + resolved "http://pacman01.inkclub.local:4873/@types%2fglob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*": + version "3.0.3" + resolved "http://pacman01.inkclub.local:4873/@types%2fminimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/node@*": + version "12.0.4" + resolved "http://pacman01.inkclub.local:4873/@types%2fnode/-/node-12.0.4.tgz#46832183115c904410c275e34cf9403992999c32" + integrity sha512-j8YL2C0fXq7IONwl/Ud5Kt0PeXw22zGERt+HSSnwbKOJVsAGkEz3sFCYwaF9IOuoG1HOtE0vKCj6sXF7Q0+Vaw== + "@webassemblyjs/ast@1.7.11": version "1.7.11" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.7.11.tgz#b988582cafbb2b095e8b556526f30c90d057cace" @@ -766,6 +790,14 @@ abbrev@1: version "1.1.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" +accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "http://pacman01.inkclub.local:4873/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + acorn-dynamic-import@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz#901ceee4c7faaef7e07ad2a47e890675da50a278" @@ -801,6 +833,13 @@ acorn@^6.0.1, acorn@^6.0.2: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.4.tgz#77377e7353b72ec5104550aa2d2097a2fd40b754" integrity sha512-VY4i5EKSKkofY2I+6QLTbTTN/UvEQPCo6eiwzzSaSWfpaDhOmStMCMod6wmuPciNq+XS0faCglFu2lHZpdHUtg== +agent-base@^4.1.0: + version "4.2.1" + resolved "http://pacman01.inkclub.local:4873/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== + dependencies: + es6-promisify "^5.0.0" + ajv-errors@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" @@ -844,6 +883,11 @@ ansi-colors@^1.0.1: dependencies: ansi-wrap "^0.1.0" +ansi-colors@^3.0.0: + version "3.2.4" + resolved "http://pacman01.inkclub.local:4873/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + ansi-escapes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.0.0.tgz#ec3e8b4e9f8064fc02c3ac9b65f1c275bda8ef92" @@ -855,6 +899,11 @@ ansi-gray@^0.1.1: dependencies: ansi-wrap "0.1.0" +ansi-html@0.0.7: + version "0.0.7" + resolved "http://pacman01.inkclub.local:4873/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -981,6 +1030,16 @@ array-find-index@^1.0.1: resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= +array-flatten@1.1.1: + version "1.1.1" + resolved "http://pacman01.inkclub.local:4873/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "http://pacman01.inkclub.local:4873/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" @@ -1018,7 +1077,14 @@ array-sort@^1.0.0: get-value "^2.0.6" kind-of "^5.0.2" -array-uniq@^1.0.2: +array-union@^1.0.1: + version "1.0.2" + resolved "http://pacman01.inkclub.local:4873/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1, array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -1081,6 +1147,11 @@ async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async-each@^1.0.1: + version "1.0.3" + resolved "http://pacman01.inkclub.local:4873/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" @@ -1098,6 +1169,11 @@ async-settle@^1.0.0: dependencies: async-done "^1.2.2" +async@^1.5.2: + version "1.5.2" + resolved "http://pacman01.inkclub.local:4873/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + async@^2.1.4: version "2.6.2" resolved "https://registry.yarnpkg.com/async/-/async-2.6.2.tgz#18330ea7e6e313887f5d2f2a904bac6fe4dd5381" @@ -1333,6 +1409,11 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" +batch@0.6.1: + version "0.6.1" + resolved "http://pacman01.inkclub.local:4873/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" @@ -1368,6 +1449,34 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== +body-parser@1.19.0: + version "1.19.0" + resolved "http://pacman01.inkclub.local:4873/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "http://pacman01.inkclub.local:4873/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + 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" + brace-expansion@^1.1.7: version "1.1.8" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" @@ -1400,6 +1509,22 @@ braces@^2.3.0, braces@^2.3.1: split-string "^3.0.2" to-regex "^3.0.1" +braces@^2.3.2: + version "2.3.2" + resolved "http://pacman01.inkclub.local:4873/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + 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" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -1502,6 +1627,11 @@ buffer-from@^1.0.0: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "http://pacman01.inkclub.local:4873/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -1525,6 +1655,16 @@ builtin-status-codes@^3.0.0: resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +bytes@3.0.0: + version "3.0.0" + resolved "http://pacman01.inkclub.local:4873/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "http://pacman01.inkclub.local:4873/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + cacache@^11.0.2: version "11.3.1" resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.1.tgz#d09d25f6c4aca7a6d305d141ae332613aa1d515f" @@ -1701,6 +1841,25 @@ chokidar@^2.0.0, chokidar@^2.0.2: optionalDependencies: fsevents "^1.2.2" +chokidar@^2.1.6: + version "2.1.6" + resolved "http://pacman01.inkclub.local:4873/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" + integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== + dependencies: + 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.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.1.tgz#54726b8b8fff4df053c42187e801fb4412df1494" @@ -1901,11 +2060,31 @@ component-emitter@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" +compressible@~2.0.16: + version "2.0.17" + resolved "http://pacman01.inkclub.local:4873/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + dependencies: + mime-db ">= 1.40.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "http://pacman01.inkclub.local:4873/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.5.0, concat-stream@^1.6.0: +concat-stream@1.6.2, concat-stream@^1.5.0, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== @@ -1915,6 +2094,11 @@ concat-stream@^1.5.0, concat-stream@^1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "http://pacman01.inkclub.local:4873/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -1936,6 +2120,18 @@ contains-path@^0.1.0: resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= +content-disposition@0.5.3: + version "0.5.3" + resolved "http://pacman01.inkclub.local:4873/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@~1.0.4: + version "1.0.4" + resolved "http://pacman01.inkclub.local:4873/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: version "1.6.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20" @@ -1947,6 +2143,16 @@ convert-source-map@^1.5.0: version "1.5.1" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" +cookie-signature@1.0.6: + version "1.0.6" + resolved "http://pacman01.inkclub.local:4873/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.4.0: + version "0.4.0" + resolved "http://pacman01.inkclub.local:4873/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + copy-concurrently@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" @@ -2455,7 +2661,7 @@ debug-log@^1.0.0: resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f" integrity sha1-IwdjLUwEOCuN+KMvcLiVBG1SdF8= -debug@^2.1.2, debug@^2.3.3, debug@^2.6.6, debug@^2.6.9: +debug@2.6.9, debug@^2.1.2, debug@^2.3.3, debug@^2.6.6, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -2473,6 +2679,13 @@ debug@^3.1.0: dependencies: ms "2.0.0" +debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "http://pacman01.inkclub.local:4873/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + debug@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.0.tgz#373687bffa678b38b1cd91f861b63850035ddc87" @@ -2480,6 +2693,13 @@ debug@^4.1.0: dependencies: ms "^2.1.1" +debug@^4.1.1: + version "4.1.1" + resolved "http://pacman01.inkclub.local:4873/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -2488,6 +2708,11 @@ decode-uri-component@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" +deep-equal@^1.0.1: + version "1.0.1" + resolved "http://pacman01.inkclub.local:4873/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2504,6 +2729,14 @@ default-compare@^1.0.0: dependencies: kind-of "^5.0.2" +default-gateway@^4.2.0: + version "4.2.0" + resolved "http://pacman01.inkclub.local:4873/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + default-require-extensions@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" @@ -2554,6 +2787,19 @@ deglob@^2.1.0: run-parallel "^1.1.2" uniq "^1.0.1" +del@^4.1.1: + version "4.1.1" + resolved "http://pacman01.inkclub.local:4873/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -2562,6 +2808,11 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" +depd@~1.1.2: + version "1.1.2" + resolved "http://pacman01.inkclub.local:4873/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -2570,6 +2821,11 @@ des.js@^1.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" +destroy@~1.0.4: + version "1.0.4" + resolved "http://pacman01.inkclub.local:4873/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + detect-file@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" @@ -2590,6 +2846,11 @@ detect-newline@^2.1.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= +detect-node@^2.0.4: + version "2.0.4" + resolved "http://pacman01.inkclub.local:4873/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + diff@^3.2.0: version "3.5.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" @@ -2604,6 +2865,26 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" +dns-equal@^1.0.0: + version "1.0.0" + resolved "http://pacman01.inkclub.local:4873/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "http://pacman01.inkclub.local:4873/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "http://pacman01.inkclub.local:4873/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -2665,6 +2946,11 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" +ee-first@1.1.1: + version "1.1.1" + resolved "http://pacman01.inkclub.local:4873/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + electron-to-chromium@^1.3.92: version "1.3.92" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.92.tgz#9027b5abaea400045edd652c0e4838675c814399" @@ -2687,6 +2973,11 @@ emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" +encodeurl@~1.0.2: + version "1.0.2" + resolved "http://pacman01.inkclub.local:4873/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.1" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" @@ -2768,6 +3059,18 @@ es6-iterator@^2.0.1, es6-iterator@~2.0.3: es5-ext "^0.10.35" es6-symbol "^3.1.1" +es6-promise@^4.0.3: + version "4.2.6" + resolved "http://pacman01.inkclub.local:4873/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "http://pacman01.inkclub.local:4873/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= + dependencies: + es6-promise "^4.0.3" + es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" @@ -2786,6 +3089,11 @@ es6-weak-map@^2.0.1: es6-iterator "^2.0.1" es6-symbol "^3.1.1" +escape-html@~1.0.3: + version "1.0.3" + resolved "http://pacman01.inkclub.local:4873/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -3014,11 +3322,28 @@ esutils@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" +etag@~1.8.1: + version "1.8.1" + resolved "http://pacman01.inkclub.local:4873/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +eventemitter3@^3.0.0: + version "3.1.2" + resolved "http://pacman01.inkclub.local:4873/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + events@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ= +eventsource@^1.0.7: + version "1.0.7" + resolved "http://pacman01.inkclub.local:4873/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" @@ -3133,6 +3458,42 @@ expect@^23.6.0: jest-message-util "^23.4.0" jest-regex-util "^23.3.0" +express@^4.17.0: + version "4.17.1" + resolved "http://pacman01.inkclub.local:4873/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + 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" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -3179,6 +3540,16 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" +extract-zip@^1.6.6: + version "1.6.7" + resolved "http://pacman01.inkclub.local:4873/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" + integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= + dependencies: + concat-stream "1.6.2" + debug "2.6.9" + mkdirp "0.5.1" + yauzl "2.4.1" + extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" @@ -3222,6 +3593,20 @@ fastparse@^1.1.1: resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== +faye-websocket@^0.10.0: + version "0.10.0" + resolved "http://pacman01.inkclub.local:4873/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.1: + version "0.11.1" + resolved "http://pacman01.inkclub.local:4873/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= + dependencies: + websocket-driver ">=0.5.1" + fb-watchman@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.0.tgz#54e9abf7dfa2f26cd9b1636c588c1afc05de5d58" @@ -3229,6 +3614,13 @@ fb-watchman@^2.0.0: dependencies: bser "^2.0.0" +fd-slicer@~1.0.1: + version "1.0.1" + resolved "http://pacman01.inkclub.local:4873/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= + dependencies: + pend "~1.2.0" + figgy-pudding@^3.1.0, figgy-pudding@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" @@ -3280,6 +3672,19 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +finalhandler@~1.1.2: + version "1.1.2" + resolved "http://pacman01.inkclub.local:4873/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + find-cache-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" @@ -3390,6 +3795,13 @@ flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: inherits "^2.0.1" readable-stream "^2.0.4" +follow-redirects@^1.0.0: + version "1.7.0" + resolved "http://pacman01.inkclub.local:4873/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" + integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== + dependencies: + debug "^3.2.6" + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -3428,12 +3840,22 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" +forwarded@~0.1.2: + version "0.1.2" + resolved "http://pacman01.inkclub.local:4873/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + fragment-cache@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" dependencies: map-cache "^0.2.2" +fresh@0.5.2: + version "0.5.2" + resolved "http://pacman01.inkclub.local:4873/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + from2@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" @@ -3484,7 +3906,7 @@ fsevents@^1.2.2: nan "^2.9.2" node-pre-gyp "^0.10.0" -fsevents@^1.2.3: +fsevents@^1.2.3, fsevents@^1.2.7: version "1.2.9" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== @@ -3645,6 +4067,18 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.3: + version "7.1.4" + resolved "http://pacman01.inkclub.local:4873/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== + dependencies: + 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" + global-modules-path@^2.3.0: version "2.3.1" resolved "https://registry.yarnpkg.com/global-modules-path/-/global-modules-path-2.3.1.tgz#e541f4c800a1a8514a990477b267ac67525b9931" @@ -3697,6 +4131,17 @@ globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" +globby@^6.1.0: + version "6.1.0" + resolved "http://pacman01.inkclub.local:4873/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + globule@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" @@ -3818,6 +4263,11 @@ gulplog@^1.0.0: dependencies: glogg "^1.0.0" +handle-thing@^2.0.0: + version "2.0.0" + resolved "http://pacman01.inkclub.local:4873/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + handlebars@^4.0.3: version "4.1.2" resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.2.tgz#b6b37c1ced0306b221e094fc7aca3ec23b131b67" @@ -3991,6 +4441,16 @@ hosted-git-info@^2.1.4: version "2.5.0" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" +hpack.js@^2.1.6: + version "2.1.6" + resolved "http://pacman01.inkclub.local:4873/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" @@ -3998,6 +4458,61 @@ html-encoding-sniffer@^1.0.2: dependencies: whatwg-encoding "^1.0.1" +html-entities@^1.2.1: + version "1.2.1" + resolved "http://pacman01.inkclub.local:4873/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "http://pacman01.inkclub.local:4873/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2, http-errors@~1.7.2: + version "1.7.2" + resolved "http://pacman01.inkclub.local:4873/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "http://pacman01.inkclub.local:4873/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +http-parser-js@>=0.4.0: + version "0.5.0" + resolved "http://pacman01.inkclub.local:4873/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" + integrity sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w== + +http-proxy-middleware@^0.19.1: + version "0.19.1" + resolved "http://pacman01.inkclub.local:4873/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.17.0" + resolved "http://pacman01.inkclub.local:4873/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + dependencies: + eventemitter3 "^3.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + http-signature@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" @@ -4011,6 +4526,14 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +https-proxy-agent@^2.2.1: + version "2.2.1" + resolved "http://pacman01.inkclub.local:4873/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== + dependencies: + agent-base "^4.1.0" + debug "^3.1.0" + husky@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/husky/-/husky-1.2.1.tgz#33628f7013e345c1790a4dbe4642ad047f772dee" @@ -4169,6 +4692,14 @@ inquirer@^5.2.0: strip-ansi "^4.0.0" through "^2.3.6" +internal-ip@^4.3.0: + version "4.3.0" + resolved "http://pacman01.inkclub.local:4873/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + interpret@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" @@ -4195,6 +4726,21 @@ invert-kv@^2.0.0: resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== +ip-regex@^2.1.0: + version "2.1.0" + resolved "http://pacman01.inkclub.local:4873/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "http://pacman01.inkclub.local:4873/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.0, ipaddr.js@^1.9.0: + version "1.9.0" + resolved "http://pacman01.inkclub.local:4873/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" @@ -4382,6 +4928,25 @@ is-odd@^2.0.0: dependencies: is-number "^4.0.0" +is-path-cwd@^2.0.0: + version "2.1.0" + resolved "http://pacman01.inkclub.local:4873/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" + integrity sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "http://pacman01.inkclub.local:4873/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "http://pacman01.inkclub.local:4873/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" @@ -4461,6 +5026,11 @@ is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" +is-wsl@^1.1.0: + version "1.1.0" + resolved "http://pacman01.inkclub.local:4873/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -4690,7 +5260,7 @@ jest-environment-node@^23.4.0: jest-environment-puppeteer@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/jest-environment-puppeteer/-/jest-environment-puppeteer-4.2.0.tgz#ec785c792af1b06445b61367759320e5adddbbe0" + resolved "http://pacman01.inkclub.local:4873/jest-environment-puppeteer/-/jest-environment-puppeteer-4.2.0.tgz#ec785c792af1b06445b61367759320e5adddbbe0" integrity sha512-i3HC+BsB0l9LR79+wrnyz7ImomZdwgpu1QH/9l1DnOgAuD5tTIwvzbyQp1nX+z5aKUhAVhontDIvHaM4oHRQ0Q== dependencies: chalk "^2.4.2" @@ -5077,6 +5647,11 @@ json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" +json3@^3.3.2: + version "3.3.3" + resolved "http://pacman01.inkclub.local:4873/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -5121,6 +5696,11 @@ just-debounce@^1.0.0: resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= +killable@^1.0.1: + version "1.0.1" + resolved "http://pacman01.inkclub.local:4873/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + kind-of@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" @@ -5448,6 +6028,11 @@ log-driver@^1.2.7: resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.7.tgz#63b95021f0702fedfa2c9bb0a24e7797d71871d8" integrity sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg== +loglevel@^1.6.1: + version "1.6.2" + resolved "http://pacman01.inkclub.local:4873/loglevel/-/loglevel-1.6.2.tgz#668c77948a03dbd22502a3513ace1f62a80cc372" + integrity sha512-Jt2MHrCNdtIe1W6co3tF5KXGRkzF+TYffiQstfXa04mrss9IKXzAAXYWak8LbZseAQY03sH2GzMCMU0ZOUc9bg== + loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" @@ -5545,6 +6130,11 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +media-typer@0.3.0: + version "0.3.0" + resolved "http://pacman01.inkclub.local:4873/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + mem@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" @@ -5561,7 +6151,7 @@ mem@^4.0.0: mimic-fn "^1.0.0" p-is-promise "^1.1.0" -memory-fs@^0.4.0, memory-fs@~0.4.1: +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" dependencies: @@ -5593,6 +6183,11 @@ merge-deep@^3.0.2: clone-deep "^0.2.4" kind-of "^3.0.2" +merge-descriptors@1.0.1: + version "1.0.1" + resolved "http://pacman01.inkclub.local:4873/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + merge-stream@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" @@ -5605,6 +6200,11 @@ merge@^1.2.0: resolved "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz#38bebf80c3220a8a487b6fcfb3941bb11720c145" integrity sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ== +methods@~1.1.2: + version "1.1.2" + resolved "http://pacman01.inkclub.local:4873/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + micromatch@^2.3.11: version "2.3.11" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" @@ -5623,7 +6223,7 @@ micromatch@^2.3.11: parse-glob "^3.0.4" regex-cache "^0.4.2" -micromatch@^3.0.4, micromatch@^3.1.8: +micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.8: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== @@ -5668,6 +6268,11 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" +mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": + version "1.40.0" + resolved "http://pacman01.inkclub.local:4873/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== + mime-db@~1.29.0: version "1.29.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" @@ -5683,6 +6288,13 @@ mime-types@^2.1.12: dependencies: mime-db "~1.29.0" +mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.24" + resolved "http://pacman01.inkclub.local:4873/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + dependencies: + mime-db "1.40.0" + mime-types@~2.1.19: version "2.1.21" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.21.tgz#28995aa1ecb770742fe6ae7e58f9181c744b3f96" @@ -5690,6 +6302,16 @@ mime-types@~2.1.19: dependencies: mime-db "~1.37.0" +mime@1.6.0: + version "1.6.0" + resolved "http://pacman01.inkclub.local:4873/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3, mime@^2.4.2: + version "2.4.3" + resolved "http://pacman01.inkclub.local:4873/mime/-/mime-2.4.3.tgz#229687331e86f68924e6cb59e1cdd937f18275fe" + integrity sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw== + mimic-fn@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" @@ -5769,7 +6391,7 @@ mixin-object@^2.0.1: for-in "^0.1.3" is-extendable "^0.1.1" -"mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -5796,11 +6418,24 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -ms@^2.1.1: +ms@2.1.1, ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "http://pacman01.inkclub.local:4873/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "http://pacman01.inkclub.local:4873/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + multipipe@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" @@ -5857,6 +6492,11 @@ needle@^2.2.1: iconv-lite "^0.4.4" sax "^1.2.4" +negotiator@0.6.2: + version "0.6.2" + resolved "http://pacman01.inkclub.local:4873/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + neo-async@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.0.tgz#76b1c823130cca26acfbaccc8fbaf0a2fa33b18f" @@ -5875,6 +6515,11 @@ nice-try@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.4.tgz#d93962f6c52f2c1558c0fbda6d512819f1efe1c4" +node-forge@0.7.5: + version "0.7.5" + resolved "http://pacman01.inkclub.local:4873/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" + integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== + node-gyp@^3.8.0: version "3.8.0" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" @@ -6049,6 +6694,11 @@ normalize-path@^2.0.1, normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" +normalize-path@^3.0.0: + version "3.0.0" + resolved "http://pacman01.inkclub.local:4873/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + now-and-later@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.0.tgz#bc61cbb456d79cb32207ce47ca05136ff2e7d6ee" @@ -6185,6 +6835,23 @@ object.reduce@^1.0.0: for-own "^1.0.0" make-iterator "^1.0.0" +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "http://pacman01.inkclub.local:4873/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "http://pacman01.inkclub.local:4873/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "http://pacman01.inkclub.local:4873/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -6198,6 +6865,13 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +opn@^5.5.0: + version "5.5.0" + resolved "http://pacman01.inkclub.local:4873/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -6224,6 +6898,13 @@ ordered-read-streams@^1.0.0: dependencies: readable-stream "^2.0.1" +original@^1.0.0: + version "1.0.2" + resolved "http://pacman01.inkclub.local:4873/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + os-browserify@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" @@ -6314,6 +6995,11 @@ p-locate@^3.0.0: dependencies: p-limit "^2.0.0" +p-map@^2.0.0: + version "2.1.0" + resolved "http://pacman01.inkclub.local:4873/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + p-try@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.0.0.tgz#85080bb87c64688fa47996fe8f7dfbe8211760b1" @@ -6390,6 +7076,11 @@ parse5@4.0.0: resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== +parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "http://pacman01.inkclub.local:4873/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" @@ -6442,6 +7133,11 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-to-regexp@0.1.7: + version "0.1.7" + resolved "http://pacman01.inkclub.local:4873/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -6468,6 +7164,11 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" +pend@~1.2.0: + version "1.2.0" + resolved "http://pacman01.inkclub.local:4873/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= + performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -6480,6 +7181,11 @@ pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" +pify@^4.0.1: + version "4.0.1" + resolved "http://pacman01.inkclub.local:4873/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + pinkie-promise@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" @@ -6563,6 +7269,15 @@ pngjs@^3.0.0, pngjs@^3.3.3: resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== +portfinder@^1.0.20: + version "1.0.20" + resolved "http://pacman01.inkclub.local:4873/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" + integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -6651,7 +7366,7 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@^2.0.0: +progress@^2.0.0, progress@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -6685,6 +7400,19 @@ prop-types@^15.6.2: loose-envify "^1.3.1" object-assign "^4.1.1" +proxy-addr@~2.0.5: + version "2.0.5" + resolved "http://pacman01.inkclub.local:4873/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.0" + +proxy-from-env@^1.0.0: + version "1.0.0" + resolved "http://pacman01.inkclub.local:4873/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= + prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -6757,6 +7485,25 @@ punycode@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" +puppeteer@^1.17.0: + version "1.17.0" + resolved "http://pacman01.inkclub.local:4873/puppeteer/-/puppeteer-1.17.0.tgz#371957d227a2f450fa74b78e78a2dadb2be7f14f" + integrity sha512-3EXZSximCzxuVKpIHtyec8Wm2dWZn1fc5tQi34qWfiUgubEVYHjUvr0GOJojqf3mifI6oyKnCdrGxaOI+lWReA== + dependencies: + debug "^4.1.0" + extract-zip "^1.6.6" + https-proxy-agent "^2.2.1" + mime "^2.0.3" + progress "^2.0.1" + proxy-from-env "^1.0.0" + rimraf "^2.6.1" + ws "^6.1.0" + +qs@6.7.0: + version "6.7.0" + resolved "http://pacman01.inkclub.local:4873/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + qs@~6.5.2: version "6.5.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" @@ -6772,6 +7519,11 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= +querystringify@^2.1.1: + version "2.1.1" + resolved "http://pacman01.inkclub.local:4873/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -6794,6 +7546,21 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "http://pacman01.inkclub.local:4873/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "http://pacman01.inkclub.local:4873/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + rc@^1.2.7: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" @@ -6901,6 +7668,15 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" +readable-stream@^3.0.6: + version "3.4.0" + resolved "http://pacman01.inkclub.local:4873/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@~1.1.9: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -6919,6 +7695,15 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" +readdirp@^2.2.1: + version "2.2.1" + resolved "http://pacman01.inkclub.local:4873/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + realpath-native@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" @@ -7143,6 +7928,11 @@ require-uncached@^1.0.3: caller-path "^0.1.0" resolve-from "^1.0.0" +requires-port@^1.0.0: + version "1.0.0" + resolved "http://pacman01.inkclub.local:4873/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -7221,6 +8011,13 @@ rimraf@^2.6.1: dependencies: glob "^7.0.5" +rimraf@^2.6.3: + version "2.6.3" + resolved "http://pacman01.inkclub.local:4873/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -7275,15 +8072,15 @@ rxjs@^5.5.2: dependencies: symbol-observable "1.0.1" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" - -safe-buffer@^5.1.1, safe-buffer@^5.1.2: +safe-buffer@5.1.2, safe-buffer@^5.1.1, safe-buffer@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -7371,6 +8168,18 @@ scss-tokenizer@^0.2.3: js-base64 "^2.1.8" source-map "^0.4.2" +select-hose@^2.0.0: + version "2.0.0" + resolved "http://pacman01.inkclub.local:4873/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.4: + version "1.10.4" + resolved "http://pacman01.inkclub.local:4873/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" + integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== + dependencies: + node-forge "0.7.5" + semver-compare@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" @@ -7396,16 +8205,63 @@ semver@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" +semver@^6.0.0: + version "6.1.1" + resolved "http://pacman01.inkclub.local:4873/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" + integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ== + semver@~5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= +send@0.17.1: + version "0.17.1" + resolved "http://pacman01.inkclub.local:4873/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + 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" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + serialize-javascript@^1.4.0: version "1.5.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.5.0.tgz#1aa336162c88a890ddad5384baebc93a655161fe" integrity sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ== +serve-index@^1.9.1: + version "1.9.1" + resolved "http://pacman01.inkclub.local:4873/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + 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" + +serve-static@1.14.1: + version "1.14.1" + resolved "http://pacman01.inkclub.local:4873/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -7443,6 +8299,16 @@ setimmediate@^1.0.4: resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= +setprototypeof@1.1.0: + version "1.1.0" + resolved "http://pacman01.inkclub.local:4873/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "http://pacman01.inkclub.local:4873/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" @@ -7548,6 +8414,26 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^2.0.0" +sockjs-client@1.3.0: + version "1.3.0" + resolved "http://pacman01.inkclub.local:4873/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" + integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "http://pacman01.inkclub.local:4873/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + source-list-map@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" @@ -7635,6 +8521,29 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" +spdy-transport@^3.0.0: + version "3.0.0" + resolved "http://pacman01.inkclub.local:4873/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.0: + version "4.0.0" + resolved "http://pacman01.inkclub.local:4873/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52" + integrity sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -7708,6 +8617,11 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "http://pacman01.inkclub.local:4873/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + stdout-stream@^1.4.0: version "1.4.1" resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" @@ -7876,6 +8790,13 @@ supports-color@^5.5.0: dependencies: has-flag "^3.0.0" +supports-color@^6.1.0: + version "6.1.0" + resolved "http://pacman01.inkclub.local:4873/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + sver-compat@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" @@ -8025,6 +8946,11 @@ through@^2.3.6: resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= +thunky@^1.0.2: + version "1.0.3" + resolved "http://pacman01.inkclub.local:4873/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" + integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== + time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" @@ -8099,6 +9025,11 @@ to-through@^2.0.0: dependencies: through2 "^2.0.3" +toidentifier@1.0.0: + version "1.0.0" + resolved "http://pacman01.inkclub.local:4873/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + topo@3.x.x: version "3.0.3" resolved "https://registry.yarnpkg.com/topo/-/topo-3.0.3.tgz#d5a67fb2e69307ebeeb08402ec2a2a6f5f7ad95c" @@ -8176,6 +9107,14 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "http://pacman01.inkclub.local:4873/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -8280,6 +9219,11 @@ unique-stream@^2.0.2: json-stable-stringify "^1.0.0" through2-filter "^2.0.0" +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "http://pacman01.inkclub.local:4873/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -8292,6 +9236,11 @@ upath@^1.0.5: resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== +upath@^1.1.1: + version "1.1.2" + resolved "http://pacman01.inkclub.local:4873/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -8303,6 +9252,14 @@ urix@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" +url-parse@^1.4.3: + version "1.4.7" + resolved "http://pacman01.inkclub.local:4873/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -8344,7 +9301,12 @@ util@^0.10.3: dependencies: inherits "2.0.3" -uuid@^3.3.2: +utils-merge@1.0.1: + version "1.0.1" + resolved "http://pacman01.inkclub.local:4873/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@^3.0.1, uuid@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131" integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA== @@ -8373,6 +9335,11 @@ value-or-function@^3.0.0: resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= +vary@~1.1.2: + version "1.1.2" + resolved "http://pacman01.inkclub.local:4873/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + verror@1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" @@ -8495,6 +9462,13 @@ watchpack@^1.5.0: graceful-fs "^4.1.2" neo-async "^2.5.0" +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "http://pacman01.inkclub.local:4873/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -8516,6 +9490,60 @@ webpack-cli@^3.1.2: v8-compile-cache "^2.0.2" yargs "^12.0.2" +webpack-dev-middleware@^3.7.0: + version "3.7.0" + resolved "http://pacman01.inkclub.local:4873/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" + integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.2" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.4.1: + version "3.4.1" + resolved "http://pacman01.inkclub.local:4873/webpack-dev-server/-/webpack-dev-server-3.4.1.tgz#a5fd8dec95dec410098e7d9a037ff9405395d51a" + integrity sha512-CRqZQX2ryMtrg0r3TXQPpNh76eM1HD3Wmu6zDBxIKi/d2y+4aa28Ia8weNT0bfgWpY6Vs3Oq/K8+DjfbR+tWYw== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.6" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.0" + html-entities "^1.2.1" + http-proxy-middleware "^0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + killable "^1.0.1" + loglevel "^1.6.1" + opn "^5.5.0" + portfinder "^1.0.20" + schema-utils "^1.0.0" + selfsigned "^1.10.4" + semver "^6.0.0" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.3.0" + spdy "^4.0.0" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.0" + webpack-log "^2.0.0" + yargs "12.0.5" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "http://pacman01.inkclub.local:4873/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + webpack-node-externals@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" @@ -8559,6 +9587,19 @@ webpack@^4.27.1: watchpack "^1.5.0" webpack-sources "^1.3.0" +websocket-driver@>=0.5.1: + version "0.7.0" + resolved "http://pacman01.inkclub.local:4873/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs= + dependencies: + http-parser-js ">=0.4.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "http://pacman01.inkclub.local:4873/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" @@ -8666,6 +9707,13 @@ ws@^5.2.0: dependencies: async-limiter "~1.0.0" +ws@^6.1.0: + version "6.2.1" + resolved "http://pacman01.inkclub.local:4873/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" @@ -8714,6 +9762,24 @@ yargs-parser@^9.0.2: dependencies: camelcase "^4.1.0" +yargs@12.0.5, yargs@^12.0.2: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + yargs@^11.0.0: version "11.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77" @@ -8732,24 +9798,6 @@ yargs@^11.0.0: y18n "^3.2.1" yargs-parser "^9.0.2" -yargs@^12.0.2: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - yargs@^7.0.0, yargs@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" @@ -8775,3 +9823,10 @@ yarn-upgrade-all@^0.5.0: dependencies: chalk "^2.4.1" commander "^2.19.0" + +yauzl@2.4.1: + version "2.4.1" + resolved "http://pacman01.inkclub.local:4873/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= + dependencies: + fd-slicer "~1.0.1" From e081e4c9c650c6f01c714d78086bfdbf5f6ca42e Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 31 May 2019 14:59:23 +0200 Subject: [PATCH 084/103] Fixed som dependencies --- yarn.lock | 288 +++++++++++++++++++++++++++--------------------------- 1 file changed, 144 insertions(+), 144 deletions(-) diff --git a/yarn.lock b/yarn.lock index 8fae21738..81f0cbefa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -598,12 +598,12 @@ "@types/events@*": version "3.0.0" - resolved "http://pacman01.inkclub.local:4873/@types%2fevents/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + resolved "https://registry.yarnpkg.com/@types%2fevents/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== "@types/glob@^7.1.1": version "7.1.1" - resolved "http://pacman01.inkclub.local:4873/@types%2fglob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + resolved "https://registry.yarnpkg.com/@types%2fglob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== dependencies: "@types/events" "*" @@ -612,12 +612,12 @@ "@types/minimatch@*": version "3.0.3" - resolved "http://pacman01.inkclub.local:4873/@types%2fminimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + resolved "https://registry.yarnpkg.com/@types%2fminimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== "@types/node@*": version "12.0.4" - resolved "http://pacman01.inkclub.local:4873/@types%2fnode/-/node-12.0.4.tgz#46832183115c904410c275e34cf9403992999c32" + resolved "https://registry.yarnpkg.com/@types%2fnode/-/node-12.0.4.tgz#46832183115c904410c275e34cf9403992999c32" integrity sha512-j8YL2C0fXq7IONwl/Ud5Kt0PeXw22zGERt+HSSnwbKOJVsAGkEz3sFCYwaF9IOuoG1HOtE0vKCj6sXF7Q0+Vaw== "@webassemblyjs/ast@1.7.11": @@ -792,7 +792,7 @@ abbrev@1: accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" - resolved "http://pacman01.inkclub.local:4873/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" @@ -835,7 +835,7 @@ acorn@^6.0.1, acorn@^6.0.2: agent-base@^4.1.0: version "4.2.1" - resolved "http://pacman01.inkclub.local:4873/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-4.2.1.tgz#d89e5999f797875674c07d87f260fc41e83e8ca9" integrity sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg== dependencies: es6-promisify "^5.0.0" @@ -885,7 +885,7 @@ ansi-colors@^1.0.1: ansi-colors@^3.0.0: version "3.2.4" - resolved "http://pacman01.inkclub.local:4873/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-escapes@^3.0.0: @@ -901,7 +901,7 @@ ansi-gray@^0.1.1: ansi-html@0.0.7: version "0.0.7" - resolved "http://pacman01.inkclub.local:4873/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= ansi-regex@^2.0.0: @@ -1032,12 +1032,12 @@ array-find-index@^1.0.1: array-flatten@1.1.1: version "1.1.1" - resolved "http://pacman01.inkclub.local:4873/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-flatten@^2.1.0: version "2.1.2" - resolved "http://pacman01.inkclub.local:4873/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-includes@^3.0.3: @@ -1079,7 +1079,7 @@ array-sort@^1.0.0: array-union@^1.0.1: version "1.0.2" - resolved "http://pacman01.inkclub.local:4873/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" @@ -1149,7 +1149,7 @@ async-each@^1.0.0: async-each@^1.0.1: version "1.0.3" - resolved "http://pacman01.inkclub.local:4873/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-foreach@^0.1.3: @@ -1171,7 +1171,7 @@ async-settle@^1.0.0: async@^1.5.2: version "1.5.2" - resolved "http://pacman01.inkclub.local:4873/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= async@^2.1.4: @@ -1411,7 +1411,7 @@ base@^0.11.1: batch@0.6.1: version "0.6.1" - resolved "http://pacman01.inkclub.local:4873/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bcrypt-pbkdf@^1.0.0: @@ -1451,7 +1451,7 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: body-parser@1.19.0: version "1.19.0" - resolved "http://pacman01.inkclub.local:4873/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: bytes "3.1.0" @@ -1467,7 +1467,7 @@ body-parser@1.19.0: bonjour@^3.5.0: version "3.5.0" - resolved "http://pacman01.inkclub.local:4873/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= dependencies: array-flatten "^2.1.0" @@ -1511,7 +1511,7 @@ braces@^2.3.0, braces@^2.3.1: braces@^2.3.2: version "2.3.2" - resolved "http://pacman01.inkclub.local:4873/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" @@ -1629,7 +1629,7 @@ buffer-from@^1.0.0: buffer-indexof@^1.0.0: version "1.1.1" - resolved "http://pacman01.inkclub.local:4873/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== buffer-xor@^1.0.3: @@ -1657,12 +1657,12 @@ builtin-status-codes@^3.0.0: bytes@3.0.0: version "3.0.0" - resolved "http://pacman01.inkclub.local:4873/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= bytes@3.1.0: version "3.1.0" - resolved "http://pacman01.inkclub.local:4873/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^11.0.2: @@ -1843,7 +1843,7 @@ chokidar@^2.0.0, chokidar@^2.0.2: chokidar@^2.1.6: version "2.1.6" - resolved "http://pacman01.inkclub.local:4873/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== dependencies: anymatch "^2.0.0" @@ -2062,14 +2062,14 @@ component-emitter@^1.2.1: compressible@~2.0.16: version "2.0.17" - resolved "http://pacman01.inkclub.local:4873/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== dependencies: mime-db ">= 1.40.0 < 2" compression@^1.7.4: version "1.7.4" - resolved "http://pacman01.inkclub.local:4873/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" @@ -2096,7 +2096,7 @@ concat-stream@1.6.2, concat-stream@^1.5.0, concat-stream@^1.6.0: connect-history-api-fallback@^1.6.0: version "1.6.0" - resolved "http://pacman01.inkclub.local:4873/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== console-browserify@^1.1.0: @@ -2122,14 +2122,14 @@ contains-path@^0.1.0: content-disposition@0.5.3: version "0.5.3" - resolved "http://pacman01.inkclub.local:4873/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== dependencies: safe-buffer "5.1.2" content-type@~1.0.4: version "1.0.4" - resolved "http://pacman01.inkclub.local:4873/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.5.1: @@ -2145,12 +2145,12 @@ convert-source-map@^1.5.0: cookie-signature@1.0.6: version "1.0.6" - resolved "http://pacman01.inkclub.local:4873/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.4.0: version "0.4.0" - resolved "http://pacman01.inkclub.local:4873/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== copy-concurrently@^1.0.0: @@ -2681,7 +2681,7 @@ debug@^3.1.0: debug@^3.2.5, debug@^3.2.6: version "3.2.6" - resolved "http://pacman01.inkclub.local:4873/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== dependencies: ms "^2.1.1" @@ -2695,7 +2695,7 @@ debug@^4.1.0: debug@^4.1.1: version "4.1.1" - resolved "http://pacman01.inkclub.local:4873/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" @@ -2710,7 +2710,7 @@ decode-uri-component@^0.2.0: deep-equal@^1.0.1: version "1.0.1" - resolved "http://pacman01.inkclub.local:4873/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU= deep-extend@^0.6.0: @@ -2731,7 +2731,7 @@ default-compare@^1.0.0: default-gateway@^4.2.0: version "4.2.0" - resolved "http://pacman01.inkclub.local:4873/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== dependencies: execa "^1.0.0" @@ -2789,7 +2789,7 @@ deglob@^2.1.0: del@^4.1.1: version "4.1.1" - resolved "http://pacman01.inkclub.local:4873/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== dependencies: "@types/glob" "^7.1.1" @@ -2810,7 +2810,7 @@ delegates@^1.0.0: depd@~1.1.2: version "1.1.2" - resolved "http://pacman01.inkclub.local:4873/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: @@ -2823,7 +2823,7 @@ des.js@^1.0.0: destroy@~1.0.4: version "1.0.4" - resolved "http://pacman01.inkclub.local:4873/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-file@^1.0.0: @@ -2848,7 +2848,7 @@ detect-newline@^2.1.0: detect-node@^2.0.4: version "2.0.4" - resolved "http://pacman01.inkclub.local:4873/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== diff@^3.2.0: @@ -2867,12 +2867,12 @@ diffie-hellman@^5.0.0: dns-equal@^1.0.0: version "1.0.0" - resolved "http://pacman01.inkclub.local:4873/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: version "1.3.1" - resolved "http://pacman01.inkclub.local:4873/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== dependencies: ip "^1.1.0" @@ -2880,7 +2880,7 @@ dns-packet@^1.3.1: dns-txt@^2.0.2: version "2.0.2" - resolved "http://pacman01.inkclub.local:4873/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= dependencies: buffer-indexof "^1.0.0" @@ -2948,7 +2948,7 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" - resolved "http://pacman01.inkclub.local:4873/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.92: @@ -2975,7 +2975,7 @@ emojis-list@^2.0.0: encodeurl@~1.0.2: version "1.0.2" - resolved "http://pacman01.inkclub.local:4873/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= end-of-stream@^1.0.0, end-of-stream@^1.1.0: @@ -3061,12 +3061,12 @@ es6-iterator@^2.0.1, es6-iterator@~2.0.3: es6-promise@^4.0.3: version "4.2.6" - resolved "http://pacman01.inkclub.local:4873/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.6.tgz#b685edd8258886365ea62b57d30de28fadcd974f" integrity sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q== es6-promisify@^5.0.0: version "5.0.0" - resolved "http://pacman01.inkclub.local:4873/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" integrity sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM= dependencies: es6-promise "^4.0.3" @@ -3091,7 +3091,7 @@ es6-weak-map@^2.0.1: escape-html@~1.0.3: version "1.0.3" - resolved "http://pacman01.inkclub.local:4873/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: @@ -3324,12 +3324,12 @@ esutils@~1.0.0: etag@~1.8.1: version "1.8.1" - resolved "http://pacman01.inkclub.local:4873/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= eventemitter3@^3.0.0: version "3.1.2" - resolved "http://pacman01.inkclub.local:4873/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== events@^1.0.0: @@ -3339,7 +3339,7 @@ events@^1.0.0: eventsource@^1.0.7: version "1.0.7" - resolved "http://pacman01.inkclub.local:4873/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== dependencies: original "^1.0.0" @@ -3460,7 +3460,7 @@ expect@^23.6.0: express@^4.17.0: version "4.17.1" - resolved "http://pacman01.inkclub.local:4873/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: accepts "~1.3.7" @@ -3542,7 +3542,7 @@ extglob@^2.0.4: extract-zip@^1.6.6: version "1.6.7" - resolved "http://pacman01.inkclub.local:4873/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" + resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.6.7.tgz#a840b4b8af6403264c8db57f4f1a74333ef81fe9" integrity sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k= dependencies: concat-stream "1.6.2" @@ -3595,14 +3595,14 @@ fastparse@^1.1.1: faye-websocket@^0.10.0: version "0.10.0" - resolved "http://pacman01.inkclub.local:4873/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= dependencies: websocket-driver ">=0.5.1" faye-websocket@~0.11.1: version "0.11.1" - resolved "http://pacman01.inkclub.local:4873/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" integrity sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg= dependencies: websocket-driver ">=0.5.1" @@ -3616,7 +3616,7 @@ fb-watchman@^2.0.0: fd-slicer@~1.0.1: version "1.0.1" - resolved "http://pacman01.inkclub.local:4873/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" + resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.0.1.tgz#8b5bcbd9ec327c5041bf9ab023fd6750f1177e65" integrity sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU= dependencies: pend "~1.2.0" @@ -3674,7 +3674,7 @@ fill-range@^4.0.0: finalhandler@~1.1.2: version "1.1.2" - resolved "http://pacman01.inkclub.local:4873/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" @@ -3797,7 +3797,7 @@ flush-write-stream@^1.0.0, flush-write-stream@^1.0.2: follow-redirects@^1.0.0: version "1.7.0" - resolved "http://pacman01.inkclub.local:4873/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76" integrity sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ== dependencies: debug "^3.2.6" @@ -3842,7 +3842,7 @@ form-data@~2.3.2: forwarded@~0.1.2: version "0.1.2" - resolved "http://pacman01.inkclub.local:4873/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fragment-cache@^0.2.1: @@ -3853,7 +3853,7 @@ fragment-cache@^0.2.1: fresh@0.5.2: version "0.5.2" - resolved "http://pacman01.inkclub.local:4873/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= from2@^2.1.0: @@ -4069,7 +4069,7 @@ glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2: glob@^7.1.3: version "7.1.4" - resolved "http://pacman01.inkclub.local:4873/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== dependencies: fs.realpath "^1.0.0" @@ -4133,7 +4133,7 @@ globals@^9.18.0: globby@^6.1.0: version "6.1.0" - resolved "http://pacman01.inkclub.local:4873/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" @@ -4265,7 +4265,7 @@ gulplog@^1.0.0: handle-thing@^2.0.0: version "2.0.0" - resolved "http://pacman01.inkclub.local:4873/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.0.3: @@ -4443,7 +4443,7 @@ hosted-git-info@^2.1.4: hpack.js@^2.1.6: version "2.1.6" - resolved "http://pacman01.inkclub.local:4873/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" @@ -4460,17 +4460,17 @@ html-encoding-sniffer@^1.0.2: html-entities@^1.2.1: version "1.2.1" - resolved "http://pacman01.inkclub.local:4873/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= http-deceiver@^1.2.7: version "1.2.7" - resolved "http://pacman01.inkclub.local:4873/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= http-errors@1.7.2, http-errors@~1.7.2: version "1.7.2" - resolved "http://pacman01.inkclub.local:4873/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: depd "~1.1.2" @@ -4481,7 +4481,7 @@ http-errors@1.7.2, http-errors@~1.7.2: http-errors@~1.6.2: version "1.6.3" - resolved "http://pacman01.inkclub.local:4873/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" @@ -4491,12 +4491,12 @@ http-errors@~1.6.2: http-parser-js@>=0.4.0: version "0.5.0" - resolved "http://pacman01.inkclub.local:4873/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" integrity sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w== http-proxy-middleware@^0.19.1: version "0.19.1" - resolved "http://pacman01.inkclub.local:4873/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== dependencies: http-proxy "^1.17.0" @@ -4506,7 +4506,7 @@ http-proxy-middleware@^0.19.1: http-proxy@^1.17.0: version "1.17.0" - resolved "http://pacman01.inkclub.local:4873/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== dependencies: eventemitter3 "^3.0.0" @@ -4528,7 +4528,7 @@ https-browserify@^1.0.0: https-proxy-agent@^2.2.1: version "2.2.1" - resolved "http://pacman01.inkclub.local:4873/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz#51552970fa04d723e04c56d04178c3f92592bbc0" integrity sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ== dependencies: agent-base "^4.1.0" @@ -4694,7 +4694,7 @@ inquirer@^5.2.0: internal-ip@^4.3.0: version "4.3.0" - resolved "http://pacman01.inkclub.local:4873/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== dependencies: default-gateway "^4.2.0" @@ -4728,17 +4728,17 @@ invert-kv@^2.0.0: ip-regex@^2.1.0: version "2.1.0" - resolved "http://pacman01.inkclub.local:4873/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: version "1.1.5" - resolved "http://pacman01.inkclub.local:4873/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.0, ipaddr.js@^1.9.0: version "1.9.0" - resolved "http://pacman01.inkclub.local:4873/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== is-absolute@^1.0.0: @@ -4930,19 +4930,19 @@ is-odd@^2.0.0: is-path-cwd@^2.0.0: version "2.1.0" - resolved "http://pacman01.inkclub.local:4873/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.1.0.tgz#2e0c7e463ff5b7a0eb60852d851a6809347a124c" integrity sha512-Sc5j3/YnM8tDeyCsVeKlm/0p95075DyLmDEIkSgQ7mXkrOX+uTCtmQFm0CYzVyJwcCCmO3k8qfJt17SxQwB5Zw== is-path-in-cwd@^2.0.0: version "2.1.0" - resolved "http://pacman01.inkclub.local:4873/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== dependencies: is-path-inside "^2.1.0" is-path-inside@^2.1.0: version "2.1.0" - resolved "http://pacman01.inkclub.local:4873/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== dependencies: path-is-inside "^1.0.2" @@ -5028,7 +5028,7 @@ is-windows@^1.0.1, is-windows@^1.0.2: is-wsl@^1.1.0: version "1.1.0" - resolved "http://pacman01.inkclub.local:4873/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= isarray@0.0.1: @@ -5260,7 +5260,7 @@ jest-environment-node@^23.4.0: jest-environment-puppeteer@^4.2.0: version "4.2.0" - resolved "http://pacman01.inkclub.local:4873/jest-environment-puppeteer/-/jest-environment-puppeteer-4.2.0.tgz#ec785c792af1b06445b61367759320e5adddbbe0" + resolved "https://registry.yarnpkg.com/jest-environment-puppeteer/-/jest-environment-puppeteer-4.2.0.tgz#ec785c792af1b06445b61367759320e5adddbbe0" integrity sha512-i3HC+BsB0l9LR79+wrnyz7ImomZdwgpu1QH/9l1DnOgAuD5tTIwvzbyQp1nX+z5aKUhAVhontDIvHaM4oHRQ0Q== dependencies: chalk "^2.4.2" @@ -5649,7 +5649,7 @@ json-stringify-safe@~5.0.1: json3@^3.3.2: version "3.3.3" - resolved "http://pacman01.inkclub.local:4873/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== json5@^0.5.0, json5@^0.5.1: @@ -5698,7 +5698,7 @@ just-debounce@^1.0.0: killable@^1.0.1: version "1.0.1" - resolved "http://pacman01.inkclub.local:4873/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== kind-of@^2.0.1: @@ -6030,7 +6030,7 @@ log-driver@^1.2.7: loglevel@^1.6.1: version "1.6.2" - resolved "http://pacman01.inkclub.local:4873/loglevel/-/loglevel-1.6.2.tgz#668c77948a03dbd22502a3513ace1f62a80cc372" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.2.tgz#668c77948a03dbd22502a3513ace1f62a80cc372" integrity sha512-Jt2MHrCNdtIe1W6co3tF5KXGRkzF+TYffiQstfXa04mrss9IKXzAAXYWak8LbZseAQY03sH2GzMCMU0ZOUc9bg== loose-envify@^1.0.0: @@ -6132,7 +6132,7 @@ md5.js@^1.3.4: media-typer@0.3.0: version "0.3.0" - resolved "http://pacman01.inkclub.local:4873/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= mem@^1.1.0: @@ -6185,7 +6185,7 @@ merge-deep@^3.0.2: merge-descriptors@1.0.1: version "1.0.1" - resolved "http://pacman01.inkclub.local:4873/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-stream@^1.0.1: @@ -6202,7 +6202,7 @@ merge@^1.2.0: methods@~1.1.2: version "1.1.2" - resolved "http://pacman01.inkclub.local:4873/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^2.3.11: @@ -6270,7 +6270,7 @@ miller-rabin@^4.0.0: mime-db@1.40.0, "mime-db@>= 1.40.0 < 2": version "1.40.0" - resolved "http://pacman01.inkclub.local:4873/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== mime-db@~1.29.0: @@ -6290,7 +6290,7 @@ mime-types@^2.1.12: mime-types@~2.1.17, mime-types@~2.1.24: version "2.1.24" - resolved "http://pacman01.inkclub.local:4873/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== dependencies: mime-db "1.40.0" @@ -6304,12 +6304,12 @@ mime-types@~2.1.19: mime@1.6.0: version "1.6.0" - resolved "http://pacman01.inkclub.local:4873/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.0.3, mime@^2.4.2: version "2.4.3" - resolved "http://pacman01.inkclub.local:4873/mime/-/mime-2.4.3.tgz#229687331e86f68924e6cb59e1cdd937f18275fe" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.3.tgz#229687331e86f68924e6cb59e1cdd937f18275fe" integrity sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw== mimic-fn@^1.0.0: @@ -6425,12 +6425,12 @@ ms@2.1.1, ms@^2.1.1: multicast-dns-service-types@^1.1.0: version "1.1.0" - resolved "http://pacman01.inkclub.local:4873/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= multicast-dns@^6.0.1: version "6.2.3" - resolved "http://pacman01.inkclub.local:4873/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== dependencies: dns-packet "^1.3.1" @@ -6494,7 +6494,7 @@ needle@^2.2.1: negotiator@0.6.2: version "0.6.2" - resolved "http://pacman01.inkclub.local:4873/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== neo-async@^2.5.0: @@ -6517,7 +6517,7 @@ nice-try@^1.0.4: node-forge@0.7.5: version "0.7.5" - resolved "http://pacman01.inkclub.local:4873/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df" integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ== node-gyp@^3.8.0: @@ -6696,7 +6696,7 @@ normalize-path@^2.0.1, normalize-path@^2.1.1: normalize-path@^3.0.0: version "3.0.0" - resolved "http://pacman01.inkclub.local:4873/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== now-and-later@^2.0.0: @@ -6837,19 +6837,19 @@ object.reduce@^1.0.0: obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "http://pacman01.inkclub.local:4873/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== on-finished@~2.3.0: version "2.3.0" - resolved "http://pacman01.inkclub.local:4873/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "http://pacman01.inkclub.local:4873/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: @@ -6867,7 +6867,7 @@ onetime@^2.0.0: opn@^5.5.0: version "5.5.0" - resolved "http://pacman01.inkclub.local:4873/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== dependencies: is-wsl "^1.1.0" @@ -6900,7 +6900,7 @@ ordered-read-streams@^1.0.0: original@^1.0.0: version "1.0.2" - resolved "http://pacman01.inkclub.local:4873/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== dependencies: url-parse "^1.4.3" @@ -6997,7 +6997,7 @@ p-locate@^3.0.0: p-map@^2.0.0: version "2.1.0" - resolved "http://pacman01.inkclub.local:4873/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-try@^2.0.0: @@ -7078,7 +7078,7 @@ parse5@4.0.0: parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "http://pacman01.inkclub.local:4873/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascalcase@^0.1.1: @@ -7135,7 +7135,7 @@ path-root@^0.1.1: path-to-regexp@0.1.7: version "0.1.7" - resolved "http://pacman01.inkclub.local:4873/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-type@^1.0.0: @@ -7166,7 +7166,7 @@ pbkdf2@^3.0.3: pend@~1.2.0: version "1.2.0" - resolved "http://pacman01.inkclub.local:4873/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= performance-now@^2.1.0: @@ -7183,7 +7183,7 @@ pify@^3.0.0: pify@^4.0.1: version "4.0.1" - resolved "http://pacman01.inkclub.local:4873/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: @@ -7271,7 +7271,7 @@ pngjs@^3.0.0, pngjs@^3.3.3: portfinder@^1.0.20: version "1.0.20" - resolved "http://pacman01.inkclub.local:4873/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.20.tgz#bea68632e54b2e13ab7b0c4775e9b41bf270e44a" integrity sha512-Yxe4mTyDzTd59PZJY4ojZR8F+E5e97iq2ZOHPz3HDgSvYC5siNad2tLooQ5y5QHyQhc3xVqvyk/eNA3wuoa7Sw== dependencies: async "^1.5.2" @@ -7402,7 +7402,7 @@ prop-types@^15.6.2: proxy-addr@~2.0.5: version "2.0.5" - resolved "http://pacman01.inkclub.local:4873/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== dependencies: forwarded "~0.1.2" @@ -7410,7 +7410,7 @@ proxy-addr@~2.0.5: proxy-from-env@^1.0.0: version "1.0.0" - resolved "http://pacman01.inkclub.local:4873/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" integrity sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4= prr@~0.0.0: @@ -7487,7 +7487,7 @@ punycode@^2.1.0: puppeteer@^1.17.0: version "1.17.0" - resolved "http://pacman01.inkclub.local:4873/puppeteer/-/puppeteer-1.17.0.tgz#371957d227a2f450fa74b78e78a2dadb2be7f14f" + resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-1.17.0.tgz#371957d227a2f450fa74b78e78a2dadb2be7f14f" integrity sha512-3EXZSximCzxuVKpIHtyec8Wm2dWZn1fc5tQi34qWfiUgubEVYHjUvr0GOJojqf3mifI6oyKnCdrGxaOI+lWReA== dependencies: debug "^4.1.0" @@ -7501,7 +7501,7 @@ puppeteer@^1.17.0: qs@6.7.0: version "6.7.0" - resolved "http://pacman01.inkclub.local:4873/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== qs@~6.5.2: @@ -7521,7 +7521,7 @@ querystring@0.2.0: querystringify@^2.1.1: version "2.1.1" - resolved "http://pacman01.inkclub.local:4873/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== randomatic@^1.1.3: @@ -7548,12 +7548,12 @@ randomfill@^1.0.3: range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "http://pacman01.inkclub.local:4873/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== raw-body@2.4.0: version "2.4.0" - resolved "http://pacman01.inkclub.local:4873/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: bytes "3.1.0" @@ -7670,7 +7670,7 @@ readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable readable-stream@^3.0.6: version "3.4.0" - resolved "http://pacman01.inkclub.local:4873/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== dependencies: inherits "^2.0.3" @@ -7697,7 +7697,7 @@ readdirp@^2.0.0: readdirp@^2.2.1: version "2.2.1" - resolved "http://pacman01.inkclub.local:4873/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" @@ -7930,7 +7930,7 @@ require-uncached@^1.0.3: requires-port@^1.0.0: version "1.0.0" - resolved "http://pacman01.inkclub.local:4873/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resolve-cwd@^2.0.0: @@ -8013,7 +8013,7 @@ rimraf@^2.6.1: rimraf@^2.6.3: version "2.6.3" - resolved "http://pacman01.inkclub.local:4873/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== dependencies: glob "^7.1.3" @@ -8170,12 +8170,12 @@ scss-tokenizer@^0.2.3: select-hose@^2.0.0: version "2.0.0" - resolved "http://pacman01.inkclub.local:4873/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^1.10.4: version "1.10.4" - resolved "http://pacman01.inkclub.local:4873/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd" integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw== dependencies: node-forge "0.7.5" @@ -8207,7 +8207,7 @@ semver@^5.5.0: semver@^6.0.0: version "6.1.1" - resolved "http://pacman01.inkclub.local:4873/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b" integrity sha512-rWYq2e5iYW+fFe/oPPtYJxYgjBm8sC4rmoGdUOgBB7VnwKt6HrL793l2voH1UlsyYZpJ4g0wfjnTEO1s1NP2eQ== semver@~5.3.0: @@ -8217,7 +8217,7 @@ semver@~5.3.0: send@0.17.1: version "0.17.1" - resolved "http://pacman01.inkclub.local:4873/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" @@ -8241,7 +8241,7 @@ serialize-javascript@^1.4.0: serve-index@^1.9.1: version "1.9.1" - resolved "http://pacman01.inkclub.local:4873/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" @@ -8254,7 +8254,7 @@ serve-index@^1.9.1: serve-static@1.14.1: version "1.14.1" - resolved "http://pacman01.inkclub.local:4873/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" @@ -8301,12 +8301,12 @@ setimmediate@^1.0.4: setprototypeof@1.1.0: version "1.1.0" - resolved "http://pacman01.inkclub.local:4873/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.1.1: version "1.1.1" - resolved "http://pacman01.inkclub.local:4873/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== sha.js@^2.4.0, sha.js@^2.4.8: @@ -8416,7 +8416,7 @@ snapdragon@^0.8.1: sockjs-client@1.3.0: version "1.3.0" - resolved "http://pacman01.inkclub.local:4873/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177" integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg== dependencies: debug "^3.2.5" @@ -8428,7 +8428,7 @@ sockjs-client@1.3.0: sockjs@0.3.19: version "0.3.19" - resolved "http://pacman01.inkclub.local:4873/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== dependencies: faye-websocket "^0.10.0" @@ -8523,7 +8523,7 @@ spdx-license-ids@^1.0.2: spdy-transport@^3.0.0: version "3.0.0" - resolved "http://pacman01.inkclub.local:4873/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: debug "^4.1.0" @@ -8535,7 +8535,7 @@ spdy-transport@^3.0.0: spdy@^4.0.0: version "4.0.0" - resolved "http://pacman01.inkclub.local:4873/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52" integrity sha512-ot0oEGT/PGUpzf/6uk4AWLqkq+irlqHXkrdbk51oWONh3bxQmBuljxPNl66zlRRcIJStWq0QkLUCPOPjgjvU0Q== dependencies: debug "^4.1.0" @@ -8619,7 +8619,7 @@ static-extend@^0.1.1: "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "http://pacman01.inkclub.local:4873/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= stdout-stream@^1.4.0: @@ -8792,7 +8792,7 @@ supports-color@^5.5.0: supports-color@^6.1.0: version "6.1.0" - resolved "http://pacman01.inkclub.local:4873/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" @@ -8948,7 +8948,7 @@ through@^2.3.6: thunky@^1.0.2: version "1.0.3" - resolved "http://pacman01.inkclub.local:4873/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== time-stamp@^1.0.0: @@ -9027,7 +9027,7 @@ to-through@^2.0.0: toidentifier@1.0.0: version "1.0.0" - resolved "http://pacman01.inkclub.local:4873/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== topo@3.x.x: @@ -9109,7 +9109,7 @@ type-check@~0.3.2: type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" - resolved "http://pacman01.inkclub.local:4873/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" @@ -9221,7 +9221,7 @@ unique-stream@^2.0.2: unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "http://pacman01.inkclub.local:4873/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unset-value@^1.0.0: @@ -9238,7 +9238,7 @@ upath@^1.0.5: upath@^1.1.1: version "1.1.2" - resolved "http://pacman01.inkclub.local:4873/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== uri-js@^4.2.2: @@ -9254,7 +9254,7 @@ urix@^0.1.0: url-parse@^1.4.3: version "1.4.7" - resolved "http://pacman01.inkclub.local:4873/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== dependencies: querystringify "^2.1.1" @@ -9303,7 +9303,7 @@ util@^0.10.3: utils-merge@1.0.1: version "1.0.1" - resolved "http://pacman01.inkclub.local:4873/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.0.1, uuid@^3.3.2: @@ -9337,7 +9337,7 @@ value-or-function@^3.0.0: vary@~1.1.2: version "1.1.2" - resolved "http://pacman01.inkclub.local:4873/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= verror@1.10.0: @@ -9464,7 +9464,7 @@ watchpack@^1.5.0: wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "http://pacman01.inkclub.local:4873/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" @@ -9492,7 +9492,7 @@ webpack-cli@^3.1.2: webpack-dev-middleware@^3.7.0: version "3.7.0" - resolved "http://pacman01.inkclub.local:4873/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff" integrity sha512-qvDesR1QZRIAZHOE3iQ4CXLZZSQ1lAUsSpnQmlB1PBfoN/xdRjmge3Dok0W4IdaVLJOGJy3sGI4sZHwjRU0PCA== dependencies: memory-fs "^0.4.1" @@ -9502,7 +9502,7 @@ webpack-dev-middleware@^3.7.0: webpack-dev-server@^3.4.1: version "3.4.1" - resolved "http://pacman01.inkclub.local:4873/webpack-dev-server/-/webpack-dev-server-3.4.1.tgz#a5fd8dec95dec410098e7d9a037ff9405395d51a" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.4.1.tgz#a5fd8dec95dec410098e7d9a037ff9405395d51a" integrity sha512-CRqZQX2ryMtrg0r3TXQPpNh76eM1HD3Wmu6zDBxIKi/d2y+4aa28Ia8weNT0bfgWpY6Vs3Oq/K8+DjfbR+tWYw== dependencies: ansi-html "0.0.7" @@ -9538,7 +9538,7 @@ webpack-dev-server@^3.4.1: webpack-log@^2.0.0: version "2.0.0" - resolved "http://pacman01.inkclub.local:4873/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== dependencies: ansi-colors "^3.0.0" @@ -9589,7 +9589,7 @@ webpack@^4.27.1: websocket-driver@>=0.5.1: version "0.7.0" - resolved "http://pacman01.inkclub.local:4873/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" integrity sha1-DK+dLXVdk67gSdS90NP+LMoqJOs= dependencies: http-parser-js ">=0.4.0" @@ -9597,7 +9597,7 @@ websocket-driver@>=0.5.1: websocket-extensions@>=0.1.1: version "0.1.3" - resolved "http://pacman01.inkclub.local:4873/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: @@ -9709,7 +9709,7 @@ ws@^5.2.0: ws@^6.1.0: version "6.2.1" - resolved "http://pacman01.inkclub.local:4873/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== dependencies: async-limiter "~1.0.0" @@ -9826,7 +9826,7 @@ yarn-upgrade-all@^0.5.0: yauzl@2.4.1: version "2.4.1" - resolved "http://pacman01.inkclub.local:4873/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" + resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" integrity sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU= dependencies: fd-slicer "~1.0.1" From 86fcbf9c5e92ddfd984e250e67808c111a9c972e Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sat, 1 Jun 2019 19:21:15 +0200 Subject: [PATCH 085/103] Added e2e tests and snapshot files --- e2e/README.md | 9 + e2e/helpers/util.js | 17 +- ...-render-a-simple-class-diagrams-1-snap.png | Bin 0 -> 39930 bytes ...der-a-flowchart-full-of-circles-1-snap.png | Bin 0 -> 32370 bytes ...ender-a-flowchart-full-of-icons-1-snap.png | Bin 0 -> 39073 bytes ...ing-sames-and-class-definitoins-1-snap.png | Bin 0 -> 27458 bytes ...hould-render-a-simple-flowchart-1-snap.png | Bin 0 -> 21645 bytes ...d-render-a-simple-flowchart-old-1-snap.png | Bin 0 -> 21645 bytes ...mple-flowchart-with-line-breaks-1-snap.png | Bin 0 -> 25110 bytes ...mple-flowchart-with-long-labels-1-snap.png | Bin 0 -> 25110 bytes ...-should-render-styled-subgraphs-1-snap.png | Bin 0 -> 23784 bytes ...lowcart-should-render-subgraphs-1-snap.png | Bin 0 -> 5946 bytes ...ram-should-render-a-gantt-chart-1-snap.png | Bin 0 -> 48472 bytes ...hould-render-a-simple-git-graph-1-snap.png | Bin 0 -> 3249 bytes ...nder-a-simple-sequence-diagrams-1-snap.png | Bin 0 -> 47514 bytes e2e/spec/classDiagram.spec.js | 27 ++ e2e/spec/flowchart.spec.js | 270 +++++++++++++++++- e2e/spec/gantt.spec.js | 42 +++ e2e/spec/gitGraph.spec.js | 29 ++ e2e/spec/sequencediagram.spec.js | 35 +++ 20 files changed, 414 insertions(+), 15 deletions(-) create mode 100644 e2e/README.md create mode 100644 e2e/spec/__image_snapshots__/class-diagram-spec-js-sequencediagram-should-render-a-simple-class-diagrams-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-circles-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-icons-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-with-ling-sames-and-class-definitoins-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-old-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-with-line-breaks-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-with-long-labels-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-styled-subgraphs-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-subgraphs-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/gantt-spec-js-sequencediagram-should-render-a-gantt-chart-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/git-graph-spec-js-sequencediagram-should-render-a-simple-git-graph-1-snap.png create mode 100644 e2e/spec/__image_snapshots__/sequencediagram-spec-js-sequencediagram-should-render-a-simple-sequence-diagrams-1-snap.png create mode 100644 e2e/spec/classDiagram.spec.js create mode 100644 e2e/spec/gantt.spec.js create mode 100644 e2e/spec/gitGraph.spec.js create mode 100644 e2e/spec/sequencediagram.spec.js diff --git a/e2e/README.md b/e2e/README.md new file mode 100644 index 000000000..d040ba39b --- /dev/null +++ b/e2e/README.md @@ -0,0 +1,9 @@ +# End to end tests + +These tests are end to end tests in the sense that they actually render a full diagram in the browser. The purpose of these tests is to simplify handling of merge requests and releases by highlighting possible unexpected side-effects. + +Apart from beeing rendered in a browser the tests perform image snapshots of the diagrams. The tests is handled in the same way as regular jest snapshots tests with the difference that an image comparison is performed instead of a comparison of the generated code. + +## To run the tests +1. Start the dev server by running **yarn dev** +2. Run yarn e2e to run the tests \ No newline at end of file diff --git a/e2e/helpers/util.js b/e2e/helpers/util.js index b7ec91bbc..bd5f7b624 100644 --- a/e2e/helpers/util.js +++ b/e2e/helpers/util.js @@ -1,6 +1,7 @@ +/* eslint-env jest */ import { Base64 } from 'js-base64' -const mermaidUrl = (graphStr, options) => { +export const mermaidUrl = (graphStr, options) => { const obj = { code: graphStr, mermaid: options @@ -10,4 +11,16 @@ const mermaidUrl = (graphStr, options) => { return 'http://localhost:9000/e2e.html?graph=' + Base64.encodeURI(objStr) } -export default mermaidUrl +export const imgSnapshotTest = async (page, graphStr, options) => { + return new Promise(async resolve => { + const url = mermaidUrl(graphStr, options) + + await page.goto(url) + + const image = await page.screenshot() + + expect(image).toMatchImageSnapshot() + resolve() + }) + // page.close() +} diff --git a/e2e/spec/__image_snapshots__/class-diagram-spec-js-sequencediagram-should-render-a-simple-class-diagrams-1-snap.png b/e2e/spec/__image_snapshots__/class-diagram-spec-js-sequencediagram-should-render-a-simple-class-diagrams-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..7beeb0245167d5b33f5018e2029d021895386a91 GIT binary patch literal 39930 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 D4k^OK literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-circles-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-circles-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..c6d41377d7060666583b89583d6ebeaa6a38d146 GIT binary patch literal 32370 zcma&Oby$_{)-Os(NC+sB0%Fht0@4VgfOLl-E!`n0ptPhxcXu~Z($XT`-6h?y$9&gb zYkm9L=UnHkf0i#y=6s&}x$iN4HRfkI88KWeGAtw{BwX>=uN07wQ12rlp{QY^!%t!y zJgwpXknI%2gpmq*@2w#r-A59C^+L%hZga|6Y0xoY=h{fV^#S4egIE-lf~0v*$uQ%f z8kn5cAVUIC51?&^k_=;(<7uFD!D%VVj&9w}P(sc};d8(FErtXZrZ$i#B;a$}BT z2HIFzOUD?=C^o2RbU%+5?uGn4+`n|!Rz_1kEZ8xUC&58S6~?6Y#uvtXip11SA@r|* z@6LZgdG)`4tdoXB@UNHPkkAVuUI{Np6~)5;=dY++K7RfG|5EvAzK>2yA|hxbh1!{Q zbyJh_XWeaW=)t1;+azv=CMGDJkI-5PXu!WOs~vu1H7tt8n<| zxAPCyE(Da3#B-cS5tFo`rWO{Dsi{A4&3qV`l=sFrq(S?2UtUg5$ljiV-LU&U2gl%~ z4cw-`yQ-2>OFWPSf4g7h8b-N*E_v@bC+o$!vkhlkJp zdB-O6`l~ZDBIdXLv9Yn$shHI0UkLA`F3vUkz5QYTSw2FYN#65t{$ayTrt>l0AzZ-wl%Dou~y0RxxpK z-nIA>EQio|vwjzFJu0%8;ADF8BzS^>k@0h2pnkJ2uAvl-Hwm4>$Eep*QaHiE!A$C9 zSrfDZ!Z?l!_L$TO2JImf9}fD(rYhb)w_?(&9hJ(4eJXf%`%F1{sRZW>Kh%=~yCI6SOk*q30D@eZ!@KH6)+eq)Z7mKGfolMcqh zT2CJzpX!GDO%*;KcnuCJef$31 zc`01=@BThJJTIvXSpLmTb9!EH{L7U3`hXus^T z^79|_@{-}<;Vt*X8f|k6N4*+JY3}Iw{PU;KKYyKJ7jq^Z%lUr7{p7E%N}k%M)YR1I zZ#Su>;C7$GvwpzG7b_A-G&eV=yUpDs6|-JmW`>i*>iF#{GA2gC!GZJEty@8q0x_^f zboKQIO5^Y9?4${2lleLZ;it@mhlkrNb>1D$*BG%l524^YIqmZZ5vJ~YEQ~`7ccx%s zLf_xt4{MpQHjo+17s8tQr&h%@_r2O!&KJSdZ9+O@3rnL-LJg&ey|x#ayXLK}t!Zg# zMW#ax3l+Y;==JB@d=-{crfsmwS2Sp^S>D!vi1x#yDuKQ%;R7ixEz0QVXeP}cgH>CNUKo>AHeN%ysHM+Vntal zsVbB(eD_XHL7@qbSn$O5OoObmGY>Wq6RSQO^(&9BD2w#t6BD09LfUj#i;VkIEORRY zh+_%w_tBvFv!)Ld3HU@mSuMjlK(DJ_z@cXdN2~udJUY(UL$UPv&!0b8+1a{R7pH9& zQ2E5t6`op*bFkCg5kA167fP7Dx;%gM=n=f>0~8dLZVE9RHdzLt0~fc#;g4%@7THK} zE_t0w_t#Qr+rv;^MJb#Gi{9fmFRDgU%NPS=*XdBj#7q9sX9>bsi>y5R;sE3r`&rxC5%>jWlxr4QDwWWFI}4KCQ+zeGV+!E zUg%P{ic!%kW0{+Wb8wl$B4sx`3`MQoCl$9>b9leNy@ zU5~dB6{xnh78WT=-qx1w^XJc@Qhc#-aos(!Ts(i52(AvV`F?LIcO~47>oj+%4ygd^{v>7kesc>0l@t0s8Gn`bL?e z$wf)Y$syT_&DnWOsabSX`6^xGAtdS!YJ)=K4bDKKv(d`z4n3Ar~W zDI)Tw^1{TVl7!3hHZgOYUZdyZI04t&by|Ilg-i>J9jPbh7&fcFErnlZ+MGMEl^XV} z{QM-iu)6xnz<`J9!{5p*B?iPTg*JGrZ+%p^khQTvhV8d>ak_(v=g|>{7mTk)$MkNr z-Hwgqryi^J)k$M_G<&t}5>}sV`DZbcb?+;V9n4 zz@Rnkb3gU-Y)Tkb!6hIFgbuM(cYO5?9-h6KmDSGAKk2z0eSNxvbRKP?cp|w&-x3mh zg_G}dabd5nZZGXnwd^kVy(u$Bv#}vIv9xR&8$(N1Xg%4bJ~<0%>+k=()HO1{{rua( zfs(Lr(`ePM#eqv*@rJUV9#dgMeQ-{W?ZqXkiE&nYbMyC~KW$JijBoBfth;J2zAvz* zIayvuk7JK#6fDY~v_ej2x7?jvP!IxFMp|hxR^s#0?^g8FaQu1a+P`S8g@sXUY;2e` zDuVw0wf?7yeE7h>ztY#<)HMIKF!cGE|IEcQ*U8C={Y1MCtMz;fffB>r-Q7sFl6TMS zmTRS?x_PwRou7WEm8E53imR<#FOX&O6`6E=TaAh#NFq*&me4I@p zJ!irRJ6ysiJbdWk))S^MfM$cHu5od3)$Rfb)po>1_G_kk`h7MBtIx5p_jivdTStrU zys0^oR@Zn2uLaCRBEb96504S?%+k+nN_>)%cHh=GL>D$(eLLMJF1A~t-JEIoo~>wP zyE*DUXo|7Ev0-d#nv|2{IX=E_c}h-BZenaKluI$GDbVu!OI)0kxOj*Db)gyYuYxJO z#KEnih8iK1i?b1rcGwwkRddxfLK*4la*F#4Gm7sIUpj1Gc*pYzQZq7M7N1k{kM>XP zXHL=jdHMTeN=Qm}bgrKWwf_0@t=w#6Z%9=;ngDVJ# zK3e;?jn03N_6sHw!z%4uM=XNNwX#(T zlSdEqp3bK$u)`=((P zX=7uOhhi@Kt;8Np!^0tuCAAiod(7U}I{8*kpM6|hWMtB=53yU3VY8fkgoS0h`}c2J z5i6dnt5{Q$Az7h91Tlxayd8P?;m@l}D2qGQN1*`$dQILpPtMO#DK>oHy?a+=K2~z& zPwP!`Uw{%dWq|CLxY>*3GNDZJGb<7fGPKgnLXl)Sxi3?^IxEjsak*=9{vLd99Yas` z_P$YJH8Y**mdF{aJi>LT*|76N*2*Y%UHUvBZeP58qoY24!owwKZNO-j;`gra%iN)> z-&0aA0ln|e%xQhJf3oeH`{_q8CnqO>!}+BppY)|r7VUV=``0J!Gy9Dg9+ECDWCaD= z?~IJ>Hyom3V?X=(t=y>*qM>PRS2A{3VdM@Bzd6jW=(OZ{EDAKb+_M zN|X}LF3FBja0XhPR;Wy-{>2G?hE((m+r7KBb#DC|hb^s|@AekgI5;_fPfxe`;%d}r z$|GA_TmLjg@{?10^QPEwM{79mjaOixWMWA1hf`Ywx&hz{T!i}m{f_{5Zr`~R&F5$- zNJ}IfB@v4KB?rSI%lwIrJq5FwZj{xfZ$Pc+y{WLEqVGIN=-*pfUI74|N;R?Z`#CCI z%D(!-WT@^uN$CXi;1$v2s#*a&FBjR6SVUL!3H9t0Z-2eJ@ z<~AV*C3!4C-kZ|so%-{D?rvA}i6erQ-uQP=bTIJ}jW+*OSGhI@p5`%siQnR@ z5mMLCSXf_|(bLO&`qF%p=i9g2QO_7rtajwvm}WlM%|>h9zq~-*wc(0dOtB9%l07wgPJug`$CBi$jGA(_5 zg{tSzhSrQN`aSim8#Wn9#m4+W*^CRzV!}ASeBhhWe)oQgW4Goejgd$U8;AQR!)3I*7I=Vd6Xx7 zs-(O;f#de1?mvWCPhsZ6KD1?ms+yWuz5x8b^n7L6?MtFbu`vXgJS<8>)AnFA-|9I} z*3;Capp{K{2e8#m>%?)U-pzcvcC3o#SAk}Y(@x!Sf|Cev9rw;q!K;&n1dhD?KPhEO zDJAQ4+?F#kG;Dhsd3kv@cKbRb1=sJ|f_UE65Xow2Fgor`izds>u8tO~2&<^@YI|Hh zMnmI~isMe#ZrYhVy?MMdlbm!v(q@6C*r?CQ+gFBN%l2v@@d}8ziX-$M7!%N3eljV)}iu+ zU~Ne+qH?cRJWWUMY7tSfA3cQ@#>B)# zBIwSq?RFS$GbaoWXkaB2LtQ;)_u#;=$s1V4H#)js=@k{ead9|%`=#_OEa|{T#EiEluIy++m0@ymcB%Q7=8a2*zWKeT%nI7WEh8h< zGW91~TJ=&1{PDiNE?C%h)iw(ZrACfY$vJX#qeXL15YPi&(562)tdgoSv9P&`_48oO zj@$Lfd$)o@;74eUqvB}&Wn>(`Ga*%C|05{23+&@gIPlh{rj&msC%p>`sVpriyW@Bw z$+-%k*Cp>BIT{`u9(p9Si$}dSHDyQ@4PLLvnzgRbZAP!Y{lM2JNlt@uv0OoM+*j90 zHf?yvT$C<~)y>)sv)F!3!E&a)XLq6fO{t-DVcP=I#io&<{_*zIhm$$K(Xp}OcOAE7 z;mmw6uifemlWK3Tk~RE&aao$g1Izy2jxWIbA_qO^w^M z92J4qm%AfRuFm({P+nyY>|P$PI4=Yrb31O=ShkPWo@!n}cVc(3M?&|a49?IO4ezyl zTTx*O%f8U=hmVi%U331+vf9GJ0xCUnrYsez4m{%zZkPU{q1z7UeC+BPU1c?1@&GBR z+z!5ijzvc=++v-iL{CCtekJ=?q(Qf@MjJVrckjux@-L!b#yjI zKT9P(k3BkaD9{X~W#6X+C{9%qV5_Q`Nwt}##1PGCF^s^OOmcLDRX={{gTw}%S245q zRel96%`y|zaJg(HXd|R}czu@b02CMh&h^1rL-M%3@33`q(^G8IpUO# z7U`nScw7r8D=QA8K61ZnZf%BikOYH^?iE! z4nlb!{Jyzr^khMkfQH7h_5Fp4M4tU8U6F-un@YZdnupc<+@UoBZaoZMzk3P+;zM;k zFdd(ogR-L!4Gf8kiwmK^`CCFQ6Mg^wSyv>>&X9X~c{wn)2(IZ>wYBFoH0V}VR&BxL zMgdX6{?DBXc-Rs-8cuZ74^M3-R14nDJn53Pdtb3p+xh4FP|A6Xa+KJ=2m%+}*hH1h z!{Xv%+sCgkpRNMy4E%hDcJFj0QBhHGVBr!#y;_+u0iqHkft0ui{68!_JenZ~KPA%T z?MF2=k|ZNy$rg4xCQ40n37oj5CSgJ>kwilc(vUPv0%05#cXxN-u;IW)pt4<3?yPKY z_r~$qoov_aAgR?jJRxR&n^aufuLR3f_j`d^Ex25LuT6qo@%+D8jwaYdy|CKUthT*bO;q$7CO3F5Cs8v-iw!M zPY`fD`P+;q9i@QTe@B2>2#IW?Y*59de?yA2;~*daOP-Di7`K}QBWg!S2cV>d?d_17 z8rKFU({~oBKZm-o!qW+MLm6jD-B{Qdp!)6uO)Zv_Sh2Dko#E|2&SR#t1IZvj`;1sE~t&B^0h3 zWYl0)k&BB9sVD{h(3lu9kbh|-r(9qB>+Q~uENpFU)haDDLunkVo%dp_T!3`a1PHjXJDf;^U=3?MqKjZ_{g;n3(W35wVJY z?iNF@nDMJyweH|>M7z{_PWTNiY*XX#$Vj`36PsbE7nzwW>=W8G4!E$m2oU6Y#I(>J z+CDSmf%FZFnio_y5lKmGquw|K#sv}Z*yXySf>Zygf`*0}lPEtwztk6%10{F&=g`e} z4)s)0yb!COJPQKp$>}Kp5z$e11t4VDbGOOJ82W7fk-|g2hK0Sdv3bg zKPS;cvfwtgpsK2>13UFyCWNkhxIQ#GF%b)30eM|kQCr)JNfaRIr%#`5prOsp&iMdZSu~n2o4GY3GfDR@cD&>Hx2HWNa=+0t&h=Oa?!?=%46iu6JrwCJ$noTAD3J-|-)q?BUf&?!?F zz(SW#nrlMp)cwJ2X>QJh?ll)p^&o-Y`5SB{Z~}q?iLj`p#IU|lnwpqUv$5Uw@VI`C zE9VgbOHL9FN1<&3BuRIbFeI_~P*J@NJz-_+!b40}~HyY;33!f|+djpSnNn z&WnH}u-mDJf`jP{XJv}2MjGx(xnSb~8^xA?*IR;mqzKnP_vhvT|$2G+A zN%&gN$?Y0-{F1sr2M6|+Q$JdNyx%A) zE_T+d>CJA3gK1)B27K-fYLtRMaUkLSxm{n56aZ@#X|(~0gW1)nXylt z7HT)h=;+)pC@63n*G^Z!tv;UtRpRLA2$@e?PwxRWHFe*!h>p(AfFD12V`5`XOifd& zt4TpK09jQ0_3Qf|mhZV&Ea_jg)!gdh67`C2L|Sr|z9Cc6*rsAqaqroZMOfsT^>KJX zPKJW!aDbOU&^-%_Z8{ox4UI170#2t(k%>QC&cLL3Q~!Ynq`S7}=7s2~N^g9(hiI>< z;BhAkdOUAzY+Md`=>7mIL{Jb8kQ&2ny5ANtRpJ=?{*{);y_GQw`wCam>&)Vrq8 zqJcvDK<51$M$2s?!#XU5uzck7#}&7h89jY#hKVSil#`*n-0Y@kP3uh%2uw{~P^6_9 zYw!@<7%5!&lP(E3fr5%E5m}0^CGZ8-mlbPxgkcf}4Y+c|mkXc+0|*e!n4-9!aqrF_ zwcPYHxxn1M?={kx13C0&trlr$GM3AXLIHLhBuq-9yjk55x>aTt{i)ez2Hk0M9^v$l zAN$nS@`Iaj+`<_@ut&+~5Tu-|(vcS~e89do`1hWc+o5u8UES$?APb0<9FF&1v|~%^ z=p+$Rp{_!KqJ_o;J?hr4)3d$k4mt9^eWtx?`Q!F7+GD^utZSEs0s37F<^Ww}44?^a zjuv}?-rio}e0_O5R^!NGRewqYVmH~Ww=j-}!bkp0n}xPwfE4rd^HnwrzSRr0zX8XI zi;I^m`;nTDmwlFuWR9-IgzB?g+UMS$F8LJ+Xsx)63=I;-txc5K*~Y21BV63W&Cy+t zvCOmD#Jdl%`%X`F*#S?uVX9EqOZW)D^ZP*`g zTR3c;$vSMFG;ln7cEoTFxHiE>FbyH4DN3uTxDTo%+*dp$3Bq_!mH>4#yccw4Wf^zbE%nR#oj< z8)$brDGJzMshJ5$e0~d#WLn1b`tWif%T)`!ir|i2!N^#`LCpX?^Y#NSE3H%jLL=>z z%=`iZr>m)lU z{VCx$FhVn{tD`k*u84B?NFkzWiB^8c42ot!sZYqxRbNk$edUz{p} zja%%z@0vAq>jsAG&ps<0dHHsFdin>f)=WtG`T0{NwO41HuvVX8UBgu)K#GvRN1+Lb z|Hl4Gg9NC_S681}+7g;)1TlSt8+~!Dc9$ag5Tb2e-NWtehwxTSpfH2HaxqVQ?NwGr zXgOUg3V#N_Ly!PkS;}Yb9w77oZ(pI=PY@vkmz8ORMGz@!XfzM!Pw+TdbGg(}YH09* zX4TOvW3)Y0c6s{mEWjk%WP^v_?Cfsa`6a+%wFv=d1$0H}@xQS%7rwHBmtkBZ*LMRW z^EoU>jMe}Cf6&ScusZyOcU)3Q{s|N=nFo-H&Hx)2qYv8Ozi? zJKc;iC|9&T2>-yp-qeQ!Q_!pXx!3M_VDJV&=TE;9JoOhkl7L>cY! zirYbfAw1|F&$o{sk(6>8caQY9#>){sDl02XOhvY`tnA&!aDLlLITVWBakIi``fU8> zz`X^KFGeS+eX*&ir~t`5I0_jE@8fLtcm(Pd>xN!x@ghwJeb7m)0ChSRA!W7Gs~Tq zZ}D2Tq3hRIEpEOV>tjnSO3DP-ov=^A0`hJ|0=PoGyW0;^K7zcyGnmrv3?n5ZTx2us zR?~OIz`%%$ds|#m0)l%qxB+tNXFsFBQB*B1DoRSaPYn8}e#FrcClntWN2U#rkru=qa zAt1|zogLYe12iX>a~+c@oBrvEiAacrfZOpk#%18d3Bnb65c()B&8(;Z>}rSvULry; zYi(-sgw@quXsfJtIdmN~eO78HBKP*~&*h$-Z!s=+z_rVJvk#I>26!ALCEqN!jCwzO z2D=9dyjCoDJpLgeO%tw!;H-DY9%CVm6lk_JHh%W>e7m_hI9cP^enOHnbObpA&y*At zu3rw;#7ZU(~q-tt(pZ%S}5wgynEl39x z1zMMsw6w&CKR5Y92sQiW&FIc%KjnYiGltF0O>0}*)^;NfAl!fd{spy7L`~hHdpT=> z3~cn)e&w;9Q2mw2x;g=fA3zvEPDRC6C07LGV7DzsZEbDPnt5#IZvZ2lB0{f#O%4F{ zZI$&WK!Y|r(*hTlmpxG`{&Tw4A8tGia&mFmn|9r?fd(HC7-;bE3<&_u?7ztPi}vs@ zU=<<6h4h)gzst*pDX9+;=G~w4*AYx_fJg8?eY&Dn|KSNdOK%^a@84|WGcsrl`$C{4 zYL1R&J0A{(zY?KCyA)Die7(l&>Djjd|4!>I)93B0=b%lwA#nyHIU~%!? ztlx`O%?cxfbUQe?oSYSKzc;b5S62JoxOu8s9X4OV>3sd#e{Q_o35vPDzgl;1e4-Ax zorBqP_xLKP%EysKBCF$-b3)F4FoK_1W>QLNGE=-9f}%PS;$t!}Fo2Mmz}WlM)AQir z0yAtgM6v7dmj}rYHjWbLa0o3Oj&lg*l$el^TqPqiGIAq`Tz+sO-~=Lrqy6l{Co<@h`g)0Bf8)P34}-$5~2s@ZQDK{ zH#eK1=gR(bbJ=GO=I!B40G@$=zm||_YHa)jWfjs1U{Gn{F?N>&V}R#~G|L-Xtfy~(F{#mnef`=P&Zr6&vq3{a67!F)uC9md?BCNR zBV+giR#OB6zO?svrVp7Wj=H@p93h{1?Rcq`IY2t|;qpLwdElS|#P}H=q#t(0uYH7f zf7$S{KNlal-Z{Gj9Y47C`(#FwbXZ z!}c5Blp%7qHBpJ6Gt;%s&`EKOnV~n)3!%SW!CGe%s`HqFm=c^0!=4y}ZMylJ37MEC zS^Wy~5D!wkGVD&TNWoR*!j7BlIbLpfRCxD^#AX`O(`c38gkfG>_li_9Y^UdC%erL3WnSSN0AMy!=Ww0 zca;mzJJAER>_6WT(Elkk8|YYwPU2*aRPzn~#s( z^~ijoqPtsaZ-1YjnR)s0c!q23)Q2PlZpbT;m<7mXBc!tQw&`A~1EB@waFbI_4o3?l z_q&DlXAI2D%yr|1(y1#iv=}X7j0Ba}4qZ6NZ~^;)DUOR!0D-3VXLhsjN}8c*xvK;f zx$cdIeNxa!PtQrCh?mhSIg4#-`WWc<*wU-)X6(7B>cWbM~my}rQpczq~_!>=;`S#ihKC4 znGx)9Z*6TUDJ#prc_R*yNZ5I0Wo5I=%f8@#HC$irL_c@qy*`k=9>nYL!S_-I7YFg- zD=Vogxx2^5AjVJ`8LhYr$i8_)N-Gnm18B#|#i5%h;@dZ2xX_A<3O0fO{5sg2r0;LZ z9q;ddmo;`>gAkCnpWnjL66~Io$TJ1+ReN5D*k$MC!IlUB>5hzy%-Yd$=V%FvUeh8- zW(BpilTPnnCCiZ%1|5v(*myPm1R9HpiK(+bm@U*!(lJbHH}FOLZThUn|pzwD^A{pVz`zPw1Ot&IaH z!0K`Jfi&p~N8A1MF*%pzW@LDUATwM*T!nz6n6dm_?!5x?qTRD59^ym)rgrIi)M zH*dyR{`uEFY%NIRkbx}g9~k&hKp=jpE0W!GFw0$vrR6V(NB19sny?MVB*0)m{XG;S z2VQn7z4Drx!IhPcl?6(|n7Rz0{U(~oqj^>?et_J)YU%d*RR)C3xZdOAl#k1cST@3LAGVC zwC_2)jSICe4b+cp_}CCC!CtVqZsOo@IL5u8{;$HlO$Vu7^x`8C zJU{*(9^QJeHgGy~eeR*JyL<57|LP!95aHW`oC4i(9yDRPa0w`V10%6IL=x#Ju`gJ+ zDoC!=$>03&Km3k(r>-$e7B)h`dd*=7Z`R2+#jAR>wX1$McvE_JSIA*Ul@ zDFU^_4L|LzV}^IX2&<5mU5+ObMUOIk(M0@W2o<;9Jz|unGaO%+SGFO84&4WIC^r2z z9EY80*lNKL*sFrA1#W8k3FL2gm9{LR1Q{5eZEl(Y=;ja%Rx39R zM+AJmNl?J~U(b0z%A<}#VRayQzUc@DmCbpNgIO~Gbidj8`A$ggMFCU8z}q(5TQq6Y zzsFq^xG{3a+Qz1NY;38TU0Ee!e`4n94jv`p{Nkdpq$K;(r$(e)mfwnd3Oz0z35kgT zLr6e=NuQa8g=(Sx@#9vAXc7P)17UaMado=9Uw*tN0ULP)YjV9T0d+S6D3=gcb=Vwj z1f~ickJT~FomR6Do&|qlMh3c;hZ{K(Sh5JxJTejr89R2f;ST`si{EcJz)q$U&aYU> zuY8U)3wR175x5`Wz4-{48ZCEi@3~ zMUb8Ygbknjcq5?>a`U83AcdcRf^u>+VFkR43ADxKkU=X31_ro@@Vj$9_`(O#!pXCR z*Jo6x3sfF`0e3h0*X-XJq$|pOfylGfuJ-jIAA~!E+}tQ`-3kHD&_?h0j0~4d8XKZ7 zi`~&ym{?@c0d69)d6C-NI*_V+@PO#f|A@w%fBbkKT(svIdAS7Tja# zyYh17JNWpo)W@IPqlgEa<}R(wy}5%m{qDHaKM#*5pd(n@vu|m<@)3RkumZ~8qsNbR zSxG-LIYaWPbg~ho)M5Ia( zAp*ZX0G4*^gCkN=_>e>^-K~;HzwI;MuFV>rqrVlJSfR=g4&~=xaXWFTAcO5mGze?n zCU*@8Bu{S0g)zE_F7Cke+i*;o3?ZJQAO%nT{wRb#-Be*@{U>55+=6?y1|^rsY;nm%5Fe z>g=ZO8Oovwh@W&UESV5&hs+QnqNhm>Il1+rg$L-wPzj>}T_Q3)pkMojhK5!z9CSd# zaNh6XGFWD$epRSUSgD|4_H#%wL2x~1yhvev7uUsRJMf>_3%Vroo+4OX;KFrwb_S_R zz*+ixbkx?>g)J*9o0o^KYPkCjum;FE@laJFp~u>Zt%awhJ%UyXgB<@%PT+?nPJ5>3 z-{oZU!W(x$JzVO!AxnCd>q*6HkC62SJLc5NT<1AWPi71iv$Ktxdo(|NpP1bd?=L5z zXJl-ip01y`ds{<;{uKrz+)gpH8wG9czHg5uyD8Ge;O4nq4(K3eRq)T^)6omLr&+Me zY4;2N4Vycp$ty1Y3LXN)EVFZSQ^9$JE)5$ShF6vy8>am-`;7A}mK>8Raa>S?pXCSP zmA>S;p&C}0le6v+{wiGonvKOh$@$gQlT9ywWN1IEk+HFo;81{UPj!%Z1M-0X&UsUa zU_N~%P=K^%;c?X)DWZ7D;_=pZI)r`obMjlr+_C<+(tykMCwK_-t);OM`5!eY?zOb^ zV@}QpM2vNGEGN6b_~n54cqP~S_wVDtBP=OlgB5o=->Uo+ViSZ25W#!~AROOLj873N zSZ_tubxocf1cbIDZZ0j&8(t63$ruv84nB{bJqw5Eo0jX=GdnT2Ibea!lTlCgLEo4K z1HSfRuM2FzXud!C;5mXD$I|MDpCT(0&wDt^MNnx)`#tW1&zsU^cANQk2%+5lYQJFx z(Cy@un1X_WH^@{VDq-AbWQ>=L>;=Hw*cNPcELj23(?*EHh>01g6iy>_?cH9!238p& zThQBY-%f!rAEJ(*ZdqM_{`#;EkuV0`2N8}-bUWgMAsU1Ru`urh2_jO#=iWblsC#;~ zA4?8@N*P!SLK9h04l3{w9YJaC?u$jqODHdW8kNgtp<~2tZ)aB0pKp2D0DEY$)eg|GjZmQHb>{wXU6Q+?5Fl zhyw)l<+K!J)Fn8dK79)MZ(`V@z58jG_H&yOlwEstoGc1gRfX5cdnj_bL*^3|!LXyC znMCo}WmG>DcmR1h$lBVqBk`)}$Vy74*4Ix@%DW&kw-5udYhS$!!0w;fs(+?_vJ|p^ zo0c2){6|oBl-ftwc`?~qho zy&D}^CmqFFEqP93Zn0(U-~i!nL=#@@7=SQVW)UkQJH+OC^Z{vpp80Q}_5~iC?JDPe zvgzqm$U~rIXIEww6g&_V#PGNlx_w6<1QuFqYF~q{;crnSlCYlH*<5cRUA@wmsMqY9 z-!_3Fr>Q9|)m{F{jWyvX7ciPu<~u_}GUEQyl9Kr;$C)LV_~=d$hy{bD6UDVJnKjjCm@{dn;Fh{x`hjj(C0=T6 z<3OFh1rb1?0POLivarflH(lN2B)Zb@+3boeCf6gi4uMM)g!uu12YC9vAb7wqmps&K z;Gu?z3pF4=LY5Ke0o+wHSn+wzS~swKJm;pd2b-Eu>a?u3Noby_S?U`buRc_DHtGvu zWu8`1SMS~&BY+HQQhGY6q@*PDAbN&Q_KJ~>!?prB5Z?c7Vn`UAcDGKOn&#A$dz^3K zjg@cU0W61Z2qOv*_ap?BwB>jvk&EcQOI^K2W#PAP4?rn~>!s-EP(48)55bG(2J5YH z1JJQpNe)2JpWA+Z8?s;!$68omC-a)?Z~r+yjzv4txcfFkj_xloP&f(Y>K5DFbs7D} zRUb~-fb1ahA<)>67R*Gz$u}`EslC2Bht$}2sDslU*KYJeXIa@Yl7Vd>V++@Q;Qw$! zi`g7yiD^@Rto+!*>FjWGJ(ci2OB5-)p&Te7^={{C4ekQ)FqcDKLE+P=Fn>C6T3T8v zE-ftr!+4M#$SuTvdgC#e3>5l8KO|&j7q+Je&CSh=OBL@B5%u<`o`bro3t1>o>Arly zZ-yVJl`i8#CoY9J{OAN9>w8n~_K+>HdIyp7Kl;d_>5Glq>z(j{DePMrgoT6hu*8=**^Cse>#gE+L@@`VO>yMA&oM zd8Hri>Q!HPC3%sYcw|7@hjnwd>@4`+OC%dpMKIBaLgC4IT-t(=G$`8$b6m zpF|uFTnJiBoL+~TQ#E=0#s~yW224`STel3sS`W2Qgu%boK;p47lRHQ=ZpReRW549C z_GMS(#CO^XFehYC^*u~T%nM05!yd&LKILqU|_}QCp+Q> zcc$x*FT=7xbbw<437DI>xCR3m(m^EsrGiAjiVv#hQCC&y>>=bIdooQ(RcA5temFN1 z*ZtDuDzReg!h=+3!UKW}z}TB%Aj@HEoYsNV%-Hxo1495<4=7(EB79+|5K__XrG;-K zW>iu=IKWU$93U)R76{fV1eKb?Y~zX%J)FwpVz>R$f#d1o4Rmw`xJQ^zfC!0>k^JZ2 zU;_|1A$$^b@wU3Ux}~-C>-X<3Av+)$!PMB^-p-9343b4w?(jds*L$N}_q@Jp;aNOU ze=FL#|JDi~i4Ej~GGr5b;l2~AepHC2&TSMn7{bh;P`jTgF^kqFCwb&5pLA)$G7aj( zK?*bnMa74F4j+W|^-=ZPZXgU}NWi8R7k>&QmW71&iw_r%QBd2FfB%;2o36VSk&s}6 zG}Bt-$Tj3RkrOw;QAgz3YhI)Lm;15zsvYwqrne9c5Cabj%(-OnlA@wY zgUGo)YhR!3&@nS7m6wBcA$4)lc5r&{`mC_w0nPF~yA|dSi!Vdh*BKUg-t$iB2QpgJ zAbY9!rJD6^8&#t`h=TAUC^(zr<$;GABXF5#oAC*X0Aqn$(`;RVv>QB?2VU|`JiK<; zIynzAx;^szQ>*Y|%QTSrBjlAs0$GNK!Ez9aS0a-$8K!leQ0o z>VwXt!(0;@&^Yt;D3-k50^d?2G5c8QUKo&QX;B062Ed=KqQQ2_75px7>%UHr-9Xeq zB$yP8$;w)oGAzo?b{@5esA;%9zix#oF4hV`k1IliPnN(>!NrAV*c*pnasMK!4_J%z zV`ly{Bo;Cgm@0PMKREbnzBQK{xFCcr39+!r$kwBHpT%`{vVpPFZ(5ER{{R3(KH;(7 z^8!pHh*pr7kAIq-y$SBu98f7Gr7&a)Re`$N52QSQ0#{e*pbQ6>?z~Y~zfD2WI$?Dk z=j~0h-~c%w_yxjYxVlt=55dHW`B+|#3(h_8lv|XOJ>MP|+JMOlzoKV!{aATShlpg( z&!d35!&2?Eiv#9j?a}y#n+tzB5&@Evv-2*(_knm9B5%*C>nYwB3CcwmON040eN|P} z?-0c^G^Bx20U8Z5Vm>BL67y*lx2qcR)}V4_%1B++U4P-^pKfWl9jVp?ubCkK1IIzv z#AIy2vKo=Lny9qmy7~ZvI%_TldLbb)V7#FtLJ#cjAN*}NtATAtbK77cqN4r%9i#Oy z{Cy(sZn&(OArmhSyB!V9Ika0RQ;DIb$JTLce93YP6~)uo!XmxCJ_P<2MxGzCu#m^g zh^eUjDCYiS>cOA+pRqGUT={>_hP*b*_4W5}eI@GNm7`29{@Qk2;DCPG(bEGXX5mFe*5KO!Mg-lB%xDH1=N@=0_%O})!vcZ!Sgz);U!?Z` zg$w}jQXep&*}?MxAE4TChZD%SOWl>v0N^bh3=nDtK-Z6&xwcdgq_F8e| z2SI?Az+dBqSSV=fG3J^f5M_d4>T|d8Dagk_W(CYvYOsUfp@rbWHM_Afk?MA|J=FynVf{_tlzw9{Y7l7VnZY2j7Sxgc{;%LP zJH$#CWMzGXk_Z#mBA}>1QVh}`?~XPxVITR#$H%B@YlRGnpcuXHhA8z zBSz9irMkzMSCrn9HzzA(7nPK_q}BO|wDS!8Gt%~daO_(^t`~4zVN65q%YWE%jRk<~ z<=@EyQqgQ)Fbp8CsEC-jVA5l(sF_#(VekQrunP_vIV$C@iFCeG3YGa#4@Gv?5MCMPE`adBJQ z+cT*Yus~%iC@Cp{@U{_1++cMcIyHb6S_;ONrPm)A)&}=(V6i+iQNWTYFSCc}I1PC{ z9<|Ap&-&bX+>yfDa((~#h8iU7z8>4i#vuO{=izM#4GBqsw0|_acGHL>$KQo_WOeaq zl34h=ub?YJ<&FdYht+oRmpjig^dDHS^`Sdg3xmVM(8MKNTzEk_^7i$;)!~zmkWb^r z$JL=V7nPSAz;s4k%+LyqctV{c1SMgiqQ-Ft(Z?=M_oWGreP{;$-g=_&(ck@et8(V{ zy?auCFzqNZv$H=#4*n?G>pUR?a&oW+WaQ+CCj2K&yf0iFle#4kKJyb;fbc&T0hNVV zt9t4O4^lKn<{~19LMR0oGz+ED3ZVC63G_ZpMkpRMxx-N!smJ2S1M zQzoLdJ!e1kG;{{;JQMaE0-@jU;EMnTtlam>Tie>!d$?xIhwF{{5{4jK&H))&njJ-X z`D9d#TdT8;ULZdy!qft|2(cQRNVCuF!HTz-sF42p^=k}=$sY^iwA$|w2~N+*V4$W> z?muew!`ql|4cy{-Up3JJH&;3*-`+&d#sA`> zIvpD+UfksC%ezaKW1CN6-HIzJWQK;6v2NZ}mXjN3OPP@{FbKc6*u=uAt%e~ zZw-Qq0yE!4N}MJo?%iez9J+9>05JeAP}#&J8v>NM;9P;0c`7W{mmm;4;vGvM^dn0$ zT}G4nn1L~3V&5;hrbaw^np#D)M$3kbn<(GGPyace13+r65HFOJ@x;fHFH zIcFe~N`1_kLHV0^#cGT1T?ubbp9#_o-DR$xR6)C;xwSD`+Nu#3)E*tr( z;Srn)%F5xL9j8+L{l%SK6IsZp-yVyjp`EH%+hzv@$k07|@07doH7#GmuFP}@>n`Cv zdD}g?CvWy*{`?U=yK+)d(dvhE$s4#ll~=FA;Hwc*TUyfij@E3e$>LvgT4@#LyE}ffD|cw{wzLTWs_g4Rfzan64#w4e~NTd%RZdyLDW(~VZlzyblv*&wEW8I z!Uuch;C$x#J9u#UzkXScmm2vM`ugr%Pc&Sr#B#bN?=ECc+9&7cZKiNqsAn!NQo|GC zLIa!QEgCxd+E(TDrfWPdr}>GLt}X!dvz%6OrtPZw)C zJ4dS&yiJ*Fruv;*c=ZDBId}hY9n2;V{Q8PFU4Ba}SOXbZ!Fn{FqipM~3~OHq9~ytYqphhK z?{c)69u~%-49mSXKwECqr;2s!R{zmfEaG7*W@3HVva@|YAjxtWzv)l|hCoJbZ7>!t zE_`KA8S`5@WgDC1x6F|VPI~nvrK%id0fm%s)A~(c02t zda$~iQ|NeRO2X&x?U6})$dee}L;1&#aaG_wVAeSg6{CI#g0d2l5f>ugIAEm2WhMSv zR=-UOTF5z^IY;%Xzmel526g6~fX>!adF+-qntT-8&bOGiW*WpOL&fj}`4to0&yvp$ z$+K7*x`&cqx|UndvAmyekw4tvl4B-Te2gNbI=@?GP&x6;VRNV)QhXsI&4^92%Xt4*KTkR2AiM5YI+~BN(u@AAVi19*GYi4N5-o2<&m49zJ3z3 zHZ#=Gp}nQRXKrWu;|(6642*?YWd}is`)UomPTQ$x{IlP8EzHA{$i-_Vu-_f(R%my5 z_KfVAY20xBc`oeL{`Da$@B^i$YL0(9&fHz=pe0`YE*sIcuxs2F)PC46COMcXE0~^f zYXp|zE;%_Zd{v3tUdMS(e!jfnvU&cSQUzGDfeZnL%JcQnQ!k8$aJVGI*G>@LzMZo+ zKsCTMv#DfY;L{cqomEm2$iT#(?0$)EyuWvk3f$KgrkM1E2d{?_zm zI_$V-IzlCs9v7rDeJr%JVi6y6Cayl9{;&4FJRIu&e|IElLp`A)RFovuQ7i-m|R5VQ})&}E6S!1w`?e|ZSWNk6eZ&{iYQlDEiTesIQ))^ z_Az^z427|gw1DK`jZO8R(hW5=Q_)Mr`t`H=tlI1Kw}P}BzkRI7vSlAruW@lyq5M*Z zdJ-vtAx~1u%Fp$9cn~CoEkuM=7Psw?(C(smtw}u!B3g1NFFkP z7B~u3;OA95M%&%+ngaY^veJid4t?-9!WI{k#RZjJPC151^FGfyC?ZbT6adCZuSJSy z%OT^uJU8EwlxqEx^;a${#zr5RG0`}FeDqV$1&6O6oI|>1CREPW*Q*;EdFlBh{`S9i z2yrY~OzcQd%ZNT;o60NJn}&qyb5xYp-cDSw(!x~O)vpXp|4?*KolX7OG2AlXPlZDD z_ZVyTLq?d2vaU{=dZjN*&vsBiM9H_gcnLvI&i-sBak(fw!x>DYbFF{C>OT5o@PLf* zWFpe^fRmMxS3TMN*s;WCIzga9<*eThC|}kK8d_J#CY>4~TMioq%r#Uyy}23W zIW??CJe7CLtR`Y~`QW8P$Y5VC)7ZTXus8NoKm8_ObK^zsGbpw;Hp6J?p@Y_uyE=R6 zO`U%#jRTE~eYAXA*WuQbU`4;_`ykDvPR{q=xbo$4DI)i0O{RkL{ITGTODB=VG75vH z=b{4U{AA3gZ$soDHa$8O0)+jS3h9gLFau}8KWfvB4yiEbONmX@ZX8)8YH_z8S7 zW*+xb=Ys-fxtX}ZsV^XIx``+jkkJ{lOJymcwM|P}R`yJ7twyvGTZ+YGSWzg8@Q%=M zFC!m5%uwi^O?oWjr#>>06d74~=K1qa`Np{mr#>>LW8NlrUGxgsGS{!o6n2pg3ev)1 zF3{tV)D_%ygiRGXBCqb$k=<_QT8ZmB&__Wm^%yt5yNvUO$Ka`3*mLj*7CMpRfC=U7 z-Y<`gvN{(g>Xy%7&j0!uW@vu(6rYl;g(a1&lctYOX?n`(jRgTqqBuKCY?TjRB~D`B zM8pTY=%MT+nKq4FY8agQLAzUh#;Q9jC&$ob+!WRpr-8SH(aH;MA;JnKM1re-bWrZ% z$6XD#yJcaDXbiHYVe#b%t`JNrC( zyNaBXCOoGRxruuT;1*tcUe9ZKcPG;ei7&IP?A-eGdQ}U!7V((Iz2!Z*ckb*`nrdEq zGCaPIc0s}@+uN+ArAN4MX*4UxwCEcT)@Y5mQIi*k{G_w@|``7Ox@bJXe2D3?cmWMD=Yh}Y`Ttr%a%mIR%gcJq*WVIcZrMZ zbMsNMfO_T|T^FOai&GabS1-;7I4=I$Sl}@-26dWjY<#oq%Ea^V@bk5ArwvY?bW5^c zf?H{yt*s2JXS@FbOJ$T?Js-eYWCs%fjXllm=v!J)8LOP>H8_4e`Av;DtvVolqG$q{ zN#f-9@BRY6{g!(FzC(EOy>uV-{rbuc7>*fpgn?Won*&*!C=m7PLR zF>-LYJJiU&`^}3jBeuI@QEgtBU9xzHzEqynAzmjCG@rIYu9QMzCY80Ov}ujmG(*eao|V#Od#pj6{q;GUo)vC9;wYK!@YFT%P#MHm~R7IXZ>7%RCpDap&QzB?sBPS zSX{#FY*n~Wd@+#mgr|J_gjcz3p0SH!SdZhfr;J!KRYg;@HsL-4{bdVxH%iDa^jzUe@D+*-4f^zp8-U^1KDJN&-gW1atte!rUm8*48=v z(aOJ2Lr#u%FL;but|27WM_#}FVYJ-Xs>ld_X_ckG+q@#r0dmrtRF=M^GO7U3`}$I| zou(+Xj*fTE?%gbZ7VL{XE@U{Y5nuQ>ZA!-^Jfdty^G3-*+~S&b(F5RnfWdbUl}pmpRvQQ*`Ri6A1TLzeRl=#mh4xrwl+RJsGCI&NKQQ+ZeE zL0vt)9veW#3m+;b*rkfuyOjJ3_F9xBJXde?{Qh}Pvo16^nBI~UB-FEA$@`LPQWYSyAqffAS?6RH^WRSmCng`zYVcis4^7VjFH89@4?6{KAOeshi!WW zi|*409)|E8Q4Ml$_x-ZbUi_-ZHj0`Nt)oOhsKu)-nrvw305R+G5#}kKXU%pCiPk1L zzXC!SPONo%My88TQ2Qw54By6BYWZR2gx3+4OR-la$|R$#366YWcG-7%8})!E8^B|LI!TB9%HmKAIw;`V+TxFKZkq!-wB zVvmlDjQCD>Uhro;x^1CErO|p9OzMX|7CFbj1?oZfg1JUtL*v$W_qNKvn)(vsYHq9& zD@n5BT1TZz2OIu2uw?qSwa8j>fiq|HX|ti|R@K)CjNj|$`Y_IadWVcv)yLxT8xn}F z+i}3`y9%`Y$M_505{2YD>1zGUKh^=?yz5g@#c&qeBo>c6U<((QmMmffXlwg(=6OFw8CyJWk)rwk~K(s`T0-8&VjIU{mJ*=PI+`M0j{q1ykuFe{io+*eG zsJc4rIcQT;zbnY(m$~-2Sh2%YEOQ?`Xr7=SDJz;ZulW|rgW4QWmOk|IaMwk75JJ*8 zhSTEhlpKth)^V;sLx3+oN>CceV{m?$tXqAo| z1cbDEw_*lp3Z(SbzaLr~o;#O~8iHMfAq86Mx0AzuBwmq5`uJDM37hpDvEsPK8 zt5shH{ZY%e^4zC~juyMU>J9tc)=YTH$(L&=`Ld-XJ}-*SA9No&BV&?(d|#C}i}N^i z8y5O=Q9_=^cJ7{DF>WmwtbsVcq)*`Iv4>i56$5YFKYdz%xinYi=oQbhAEu3Q3lT&C zJvn&-dq8b3xe|8Uy+KJjn>Rl-EuY>%{2YU6^pmDxK79B7Sx!&+m07_!_fqq!P7&R> zJ!j9K5C7h|#aTWEX(y?<`I6^EuR5<*?Ax$_6Y>6!Q|5isP{euyx1BnK9Oo_a{GtVxa$s^f$28XIZobCHEs!khb>s@9}$<@}hH z3P>-qWv`}o{9;L{SQ9-}+seKpTM|)27C}B%(J%pw$(WYPd}-C}XZ=c6M;3tw0S~aZ zGtlhg*p}*9MG>}Bx%fvhV{l?3K;JK`@cSEgfR^dTaTsbgf_B*#(loS5P%sx6q)ItA zKt3;hI2o;dhGu4M_G}{DYl+F|o&TJmc~JTB8=<@sUp#wWk4W5DbcXIRUq#2DS@a=drRqUw{mO)p zvl9@*o;~@g1}So7C40O)6ArqBQIbc*kq}yS&*#KcJEL!RtmRXvW?Z+&isfuEVyTe1 zTbcdspwi?kPHkSXwUx^hS8yyBu^W2-)D$JPHe+C5K+d)IXpU*&DO4OHXE&2J;J9CO zE{+pf`=T>9=Nhf^>i61>LI-T_%)@e#JiRySw2zNZ^nny-y91of9&2A83+h6#g(0jc z5GTzj0cg({MNY<`DBF?)q@7zBWSQ!%0bI8~O1LSGzBgxC8a~USHFMV}mPN#%Sz@=c za+S%3rx+z6EhlG)`65i?&4Fgy0uyR-jPs76Tj89I%@>*KB{axqfy%=uVFmNefzv}? zKAww5f<_%Hwg-B+a9lI0earp#cwgyGgH9wI3{6PgrhZ%2Cq79lEEAr+axqnI;x#Q0 zkCDRLAQ`zbhR`E|0j$)isW#n)rir0WTM}s|UgU_^F6@7te(m10s;a6Mk4e&d@xTOq z!rP2mSr*ndMo~t3IvNxoi~4+7kBGQAo0rtwiJ?YjsQB2?jT!rVy1i79k}Z>@0ST2Nx0}qKrwzsepZNxSLUmiO=^C+Mfs{RQgowbLC4@_hla;8z8EXT$T&dK z)*z{+5g`(d>P|45TyZ{v3BiPDgDzls+~kCVc#qAP9E>8l<(t34#g7T^-@o@lymW`m zlY!y1Syfe*7>ZWm#E6LCCuji3Jq9KwPp^%VNFpgOUYxB96Qj3h=*Lt}pB;(S>DyxKV&egoEYOhIIqcv9US0 zu5k(}cI6e-W+~Q4n-HtdN+y0wYqXqGSKa|qpw!^tU{`^IesGPJn%XsViLMe; zl~l*_$YDj8J>_J`lG?qJN=g>un)jR0^N@v8Liz%5mRsyT`wPwhmS7o5p+=~0A% zD=T1W(HVQZ=#|Ji4@bBkPn|i_PPYo^$zE8-$;s+=ZyJGoHjfGAT^WibRWqasUksr$ z6;Q_8f`F$rOH!0two0{IDyd0Qi`oxbV`ok{MH&Q;9@@1q3TRtY1MO`j2dV2F!?ij`3==BzP0bd+ z-{j)H_92XPeebqIhm84-P6lF_bywm7_u5Sfm}fQu1s+0?gD{z!WS@ia-Xl*h#ObN3 zss^*Mw-EU+bVw&W8rbIHA@!fLfEu9rv$9c+Dabzw9SG%#|d;j5Pu63%-gZzSmqfnZ$iHx%54`2RrCv?l<*3VqIqylhFzL9Zm(mR!3 zB%M}U6B(PMZxdnIHMJ*d1mjfqYSK7LVlYO2*>z_TixsBZ4t47m(#DNgd0tFY9x>$# z+NYW^)@}ubs7VfwZOhkroa9rQdH^?A3XHBstPR4#SsN|A)nJ(>qg_+jkh@>URK=cK zq;bHZr~mG=XIn5zs&Le&Y6Tua$F?!+;Ul?Y4fBccg26w9WnwXnsXjl4h&_dft|e@+ zBBAssU1@D=#KYH?)Z&v&(@`&fKX3aKTG7SMMA+Lw)MU{7MN}x}Mp=_&_o&Eu% zO?Qh1NoKu}P$uL)bO|OM zINqTtPUIg+&m!a>7`kfJT^Z%K6O@^y;o%l_TtW&EYF`nxZ*e+G(Q~v!0)3i`p$i>H zl)@QFcZP>5`2b1CFssD8KQ_$rEkrvYnue(~e~$ePy)9g%oZs!s#8tUR1 zfb??j?%fuA+JFE?bgdAG#$vxW<* zTlh9sd|_CU$!VBOhJiEMk&$G8j+0EVd)IHM7x=U7=GffB?HNw$693P2BQ%r=%J@Pn z0^j`ZgJnu|v|}feGTIlA@UCHBJ<6)DO;MxWrN1rA)0Z;CR47e!qzJjp?Cjj-G>ex*VAi(kyziwr6|sC{DNuay!fq~Hy!7v z>I$Hf{cl1_=0owicP_C+5YY2-)vO6Vqg9`ED{B9hPzKIQaP8{R5(DPNu4Rob)H zfAaN_dw1@%|3^?EL=ZX85)@a|J9nJM)V+_2n(QIROLSKGzl@{IYZ0U=7dN*ws7EI{ zC9(5md~2?S&uYHvuJ{H+YEOA_UpoZ^%v9$ElkjASh_!W+_5@@W5?Xcw73H_-thD#m zb-Yrj*U*q_Xy9>*&^8FV4|2lksH(j<@nVaYp7#a> z2H=rpy)Q+hUtup4CLB5K*!gr%VhiIr;ggyUMRbiTZowz71_WOIcK7_OJ^V83AmqldVx!F5%$r z__s2>$^nG@>sIoGwO@$0b!bg~%jct|skvJ=btHJj?VC5#K~QMB1W49}Syk#kdh#*< zh&oA8kYl-pCED>(Et{anFiZF}wWNT@gXJ+O2?RwBqp2N+S zwSP@P+w=nf*2N)`g5>4!`ufJmn3x=FW#ES0@4lqEm)!J6KOWNrvge==U zbHD5smtyv@Q=Bo4xevv~Dl#f*zO499pB@sH3%oHaLP;Q^2caZj>f*T*C(={3{R}!g zvkXv2Xo)_}!cdQ~&=zm6edRs6P?{jpe@w4zw0i`HhrRui?czxhkSyBLRB{LEeiGGR z6;mPKG)K{QDgpANp3hv$L~*B0v6aZ`!t=EZm};Vt4xj0y`Ob_dwIoT}cb7OhiLxf* zlQGQbG{*8I{D*|EG}@RN$MB(S&g*_}kq}Y3t*ou<^Z9llFw|2n@FRZ*v+F14-l&EvL7y}s?ighm zT2kp7cXzuKPt;IqW@0ksn8Klc{xaGv-P775O#|P%`Mq-ks1=qI&Q=%nd#i6-qs!g| z^)8mDeWo({R8++WUzP}eyB#$n16DRF2j>d=SAiUF!*~*$_pcEg-%L~mn6;)A#gV|} zvQatN=?d6TQosWD#L&&V9YwB(T--&qRU#ba|1J@I@Fg^6IM09gNW+db=4yo zX%|}II;5;n(sjSvJudVJDg6ROr_jAzuSAUZ2!2quct&%4NOPoUM8Sx#>)^q*SvQUX znK+KuO1Ay4u0eP$08D>tP^Ky=AZSa!CC)p?W*A4lSd(vDv0H_lR>k=%MDz;g8D)F% zc8jmvTJrViugMx;G#Sx=0p{2-N@~kW$`j7U%x@uNs23yF1hIvK9Y+Uv!|I1 zdP@q4WC}3I6D{v7^og@1Xr1b%CLslvXZVPkY;4CX9#W)0!9zYjk}E9tsZ#^})^aSL zDS&C+5x#uj4^jfx6V~byh4reJbc10d10*f9t_%I=SFc5zJ5gx>ws+qk-WomwXbcq< zw7`p6QOij7*U_q0&-5bjLDFfCW?npIAJH3O*vgR*{Kv4sC0Fsl{wj=3&fy(rbTPqQq!y zjBFSj9R_ApKm$c39O%6*wj}!t%hz>ZL2XgnUO{TEzt~;!@HzRF|MjH?w>}JICEM5} z^KLoROstUyy!IHVecO^_X4SHlcyq3>SL_170gdQMEWixNgky(eb%C8RmvmwA3AH4l~T_h{HK<-ys?7Eu@0PoW;e%c|9t@N zC`UWcmjH(HOXyzilCS1cS!BaVtvvr5N6PpM9_7FEEW7$T#YO2?bbA#tA8*i&NsjI` z?-k1*pw%%EeT@j|ULI1fl*N!Fl z8}BhPX`gz2c-XfhJX$gFh=Kwc6G$HSeAv3SpQ1tH$gOFw2;58$Fm`^&O{UTrU-(LL za=!YCikdor8`gj|z#7{l{$(XP=defDt6sn?%M7$!g1^m#&?sWT+niE~RvVzG$34I8 z2~w~6)0muVfa-J!{e-(CpFBw>1ONvIaX4`@o;_>g7ZCw(5F)gHt4X-Q*$31}>8MQT z|L63BicdP56%X0dG6i<;I+Xb3%X8EGFLEgB<*}K$d+SzJ-k_wU277Wb`!MB4z2y9W*i!mkYr7GM zix>K)v7aH)62jHHchZPd$po}{{d!v$UgpY^z~(s=N8y}20n8;2#^Xx1fj&C zA;XIGy>4Qz3-c;93Gb4^gwL(pw+R^-IGg~M&{ILe)fM+NHCaKeHH13^MBT34yG=0- z3NfI=y=mbLp*cNxaP}XZhxdyP0)lEq0rw7$98mv-pbLp&0;>aIz?jes(8`20-L+@W zF{u0e8#ZKdi*8EOj_Ihkdzocb%|U?3#3XCEOMm3UD`5oYOJ!+JWjLqU(h!!49OLgr z5^ymZVO8kGedFyVZuFhwe>bTlE@+*0W&2%5M~rs7a^>j-3$AA6m0MrQ9L4zf-7=L6 zcMA^Y8}DH%9_NyASNUb`G9#pZ>=;Ccb=pr4q_j*A4{w5oW<{->785$^olXd+GG-mp z0Q=aAp0kq_cu?lMV7?)+;g}YXZozN!K^v`5C03~ zB3s*yuo$cGh(1fzPYZ2;$rGkJY=cpT=;qBk!s^7++Ma)nV`mV>0_O?|5FpnSy(i5u z=1cmZdlBK1X^3i=db4K90)n`nwszs?&%Utng`+Y}!aHvmW5KU$6mCE!OBXXzFcWT< zf`S>&Ai|n3zmQNa`gIT{?O|;pHYILq{TOTh`t`bjhdtwIAmv34O@=(0#j3)6#Gjh)DaS9S<=N0`^sU3$(NSW-sV&hnj1 za?NY_E1X)B9f)FAF?O`4JnYozrs1a-DA`TQ4a5Qv_lQP|T)igv0n8pCwFut+*W4N; ze>;$Dx?bfL_=|yDmrF+p3q#-4m--ElE1x50j=_>d9B633tl{-(5Y6qUzoiM$gaiaq zdRJX*oEPD^6mWjqF_LPz?e4;UVoZrYPUpB^VB&{ zfXP;&(#QPxT#oA0Wc-@9mT#vl_|aeJsxySE$uKrTMmJWOecjhBd)lyuvSUZz$g69v zvhG7$`etBAu=!cme&iu(S^xOTt)xIN&n!T_H5|)T-S_kCBPCe)$b{FvQ`|apAXq|L z#hRr3*FoY@0)l_Gm3~%)ci8q*KE1MTyP^4|^rim5(A?#!8(**6gNx6~xjc3*Lx1na zv}b-HJx!VEo63)EFG*dM;DFzQKleY`9U{J3|L5Cnfy8(FZ;2vt*+L<$TE#54ZCKaeA#_m`NQ_ep+S4C$nX L&hgx1e_a1>bjvxo literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-icons-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-icons-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..5e31b9cca2412dd65ccf26a209781d20e1a14406 GIT binary patch literal 39073 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 literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..ca54fc54b643b05b8c9ff1e5e590eae1e203cdcf GIT binary patch literal 21645 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 UV~yJc90*|WboFyt=akR{0G*$F&;S4c literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-old-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-old-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..ca54fc54b643b05b8c9ff1e5e590eae1e203cdcf GIT binary patch literal 21645 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 UV~yJc90*|WboFyt=akR{0G*$F&;S4c literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-with-line-breaks-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-with-line-breaks-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8e666ecdea638582e9ead1ec7b8a7c8e5e1a29 GIT binary patch literal 25110 zcmce;1yoh*+b;@;iWq=`3P^(rC`uzOg0KkbE(PfZ=`=w=Vo@TgbW4|nQqoe=E#2L4 zp1It6jQ<$-J9nIO?|04~V-H+w&3Dc>p8P$(XTFzvB7PB{3?B;%>mo`*Q~?X?6g3tW zjvC$>_~w(tD{J_JZKohEf|cENV-5?88Ve=*P{}EJaoF*NlEIILwNd&wjrz%VSxrfH02& zi7JamRu?kL6w4YcPIIE?n;dYDp-b2km&2S+t660$m4h$Z1q3+krp3{T z?gtJF{YK(*5xNQ)g(o?c`_dII_P@TrK42<53VU-2?xE$^KYOmaQ0>muirtA2jVh1A ziODP7#Vgc%dwXUxZCUu|&J{MZ{`f&leC5h5A)%9IOFrjyp+eg!h1O4n-7F0tMP9jh zgrWI{tpv#Efx?A&&%;Swd_26b2driG3t5)KE~=)3qn<*>JCmp2?09hTnj$$DuAn-7 zh&(IJ-4^@vA4!F`bk%=Y=!t*$jne%^^gyvJ`UThXWEodk0)fqv%7bO*EZr)N;t>~b zoKvquKb1W}bJ$EY;9ty2>+ZJyBy=K`rCl!a{{2!%fubOEV3H?vb&4>f%3>- zqtKKNHBc~jt2L7S(O{89IQ`bFO}S;XM@7?b~vemI1VM35$n{r?IevNtdx- z%Aip1w-@` zA|iHg-@cVXqtU#KjApFyCVqe^VyAbEq_bGeu}PXK3gKsx!~vd{|73$qE%S zh(_CYd^~eDwziQ)iYtma3WEgKt*a>Ato`ZJoHtZlRw}qR7jiUv%Iq}qDU2W~$a=CZ9 z>&~D#Gi98|ex=~ap}xg%8488sHdz`VE;Q~aa}nZ)*(>2QQ-5W2H5(%1JY*_#pR8By zue9u%=0$ZDSwuBibR|jM({xj!7ZiN>^5w%%+*U=?Es<$Ieu%vF7FU|z{XoXhx2;{} zL5Iq#drQx7vnYa|LeNbZt(0$gH?ozJL%-hJWvQ^rq&Yl}0hRKEB7$DquC*|Xmj#}j z9*Ff)Mzpryl`4QjDr3E`x|$l5r~OKK+BU-W^y$+JAGnj#AHH^yiP;aQbV;ppSRPWD znpCByrv5q<$89wdf0lAKqg^oS%avOJO})KZmTgD-7ge$}#vLAT!QGi2dsWwuj_S(G z+ZVVWT%{1u*uqQm32dM8toy`ekxd}Dn-l9aVa01d|Ax}j?c)*~Gis_bJNwluoQk7u z+|y^ynCx%ved1Zu|8QgPd8tK{qsDE|ln^ISiU=ZEqc?$Qqd~4Uk-V zVEF9WXE%5Eo_r(Stra0rbb;&6B^0{K(`$WWBQ(t3fZIEc$3{s!FgXoQMXA`*pPo@j zNVc=TT`)ND%a&5O7Y>=O zl=k9`f4#eCR$$u0Msn?%SyQMd3Vn(4PzKFm_M5|gX`tD`9A?o+1&hSN!P#8# zlUTD<*1f?J?9euoA+^bw{DgAcG=c9Bo{)uj|U2$Vun}Xlf_n!ohPN9tM zHGo1z5RZp+DpZ z5b{vsH2bX}A(48@a7PHNMpJ96e3r&D62Z8b7zSP4QRZ0h9#iGV^^9VoqWw4w0!N`g zYUr5kt9mK+{gR>m_poaZjY;S*`cgdDMzu&E6H|RyW)ju0;!TU*=Es3@~d z4tms8Ke3x3sGA{;vuP6OA3uKlSy{2dL?ZmYu#;E@ZfgwtsBzWWN z=l3BN3F!DQfQ?hn)q88$9-DRQ?4>@+^5gvlPTM~cJ!y(5k_Sycf69r9zNtt-VkmBL zFJUx?NhkeXoo{M|racOAg6^QM+DH2fIT{r%h09eZ$4pBLM?0gv>BGVB8xXQ$u2%G94fB~S{ZmG1U`eiGHy*Q=O#nwXdbe7uRw2@4xXCQeWr z&0*SoThlG{fsi1CFyVL9zc_D9&sD!Xm9AS=S?0Ks&9_|g$S_}>%5C)}m&E`*%4M@d zoB`!|w4ke8<#BXAKvPRA^H!{r$j*psj)Ham!(_`-X=!Qb#NSz(W_@3unf87CY}gi^Ms8X15FCud z?m0M#_zT>hT}wep2T_MTs=Ds|OI5oQ=Vd-|pduq9%cjCLU+iz19L)%wba+#F+(t=C zNXUVAq(@QkzL4|2L_thUtTbME=c?bO8$9vnuH2m6U7MWm$%tTMW7}-J6*pTt6RQZ< zhlYkG!hz00Ad~+=v+PBhj^~j*V%dHM(clvh^xled`ywlJq=Z(IlZ!_#Tx+0;2n-A? zdolM#zae0*m3y?iBLVhPU0og7A7uC7%q8L0oiHx3fznmFA%LPwSyemf+qZAb`~8Ti z5Xtm%D$UHigHm{X=3G#Ce9|u6mv*%tO)1sU%rC@=JBKaK&0ZIX*tVf{965tn)M}1YqLs2it{9JK5#S zd9CAR3)x+8#Mv+jrkgh(ccsXxdU#acl>QiBWHBg-<}&Y#Uz=<&8~Nr;Cg@hOy*%t{ zAfyFispW;WW}B3hgia*mG!1oi+gTp|bpP3_rS?(xofwD3J{lAVeKJM z^ZAkYrGCMmUu`DqrvhkV+#Oj^;KO1p+6;Cw;ZP;e+bg5@^7}JqXJ?r_@4>`MIB;s4 z!%o-iaR(H`0bRNEq}z3+!btPn?Q%C0c-%mhr)TNX~rwUnRV&QEAs?9}?0Y9jVc6K&Nhm2TUC(B0K(OB2 z+p9`LL*o!v{9;=$sHH_3k`L_{m%@U>!jLe;cBfoIK~3%B(zHFSx$i9Y#1s=gVYES^ zhBLDce8V@%du5Dvduh;UlNdhoUt*@VJ_mlLe1Cf>O^ct>Sm#4RC3!N9X*-^1YW z>gTI>HD*)lNFU3lG<}&kRAwK_Oy%)RNI~p&=k5(cg0-%R3l{q{QsW)R>0Q*nX6Kw@ zS|;B%@#>`VZXNYlSZnW{%`1UGK#mBf_SBu-*;HS@q(njcscY5mbAlDF#dQW(JRsYQ zI3o(z2%qM8WNUX&G|hCNl*@b3hel9K_(1cEQn^R`?|ZgY%|Brc(J$FmxQiJXq_TL$ z$OJA%Cuj!_>>DVDcXYvz)+k(`C_ei{IeRkOc5mjj^Q-dKck`bZg2D`gBMs_om5f* z_tBvUcUqM+1Yl`qFyAO8`H8z!)gju{^$sL`3F1NtDp>qqcP7gtN(TxdqS-8X#4!s%#6wIYRA;XBZapa*o=%)97b&ymPRTbT_mf`5Dy%* zpNV<&XJJ8e{P;XRK16C%CR0sG;EWU%6m9|hLC9&|r-lxVi%TJ87wrBbHhPjZj}@2_$=9GCADn%KptWNW2E zN(_O+W5_FS)ivBwGL5S7CYY_ec0!Aq|D9EQ=F*Mii3zGrs+ z#Kb4QK0XSz>soiU%c{2zYv13S&u>po)u}iGXc!T%-E={$=kYnPu#%nqB+-w&x6NR? zz+Zbqyj}RLCJ-V|*B6U@!IBn}Gc!3iWj@UTJk!)79r0q@@bKthXC7kVU)xKX-GyfN zNUmNr-CmR})T=|Eob)es=eGxRMzW`5>?(qiSC_((uMb+46JNicxVnlrs1FhA{#pa^ zpr=t=v9+ij3Rx+wp#H z?`GXKzp$WRE!%ESp9XSK!v>Nqhp&Gi-H?8}VFjqm;Gy8*suW7W zbRLkAJcCgbn%8mJrj&{ubcf|7#7xf4r7q)dZ&{oqB~f$+(|L!1SOLzEuT43%u#gdD zRVjvkG5f0$f5*O+vsV(WA;hTsbak z01zwNI@&W%!r1sOO2K8n5r1biXY}dC8$8m3#a11&9XqB?q3@?yzVqr@TSG_{*C=1q zZrG|3KA5bMwQ6g}8wa5^E$x>V6SW$la^jUoOEB|ic2pg+2Y-)6)W#p$+d40cC# zX~6zhudZjdRps6{1v_TG={+jK64xCERD_Q6&!0R=tE)eymaEtXwVGtO?G?L{Temja zg;ZRr;EB}2-{Z%rRH)e=;L57U?=Fri{!sU2Msr-Ma71@@%;=~QC+pw<(x8J{>z zk^xCeuONVju5x|TNdgFK*nLONeQ)Z8!2Ybj{BU^{8JBq`0KKWs8-{~L=K-BPKJqpO z6!a6voH7H0eJ6s@0Net2j8sQQF3Gaz?@W_{Tz$VX$0}{to#oI(Tkg-gl7mIP875uR zpIG(N5xgWv=aKu-mNcsK*XO|SL5KZK0t9_wzPl7;*mfv^?yfqiP##HU;xboD0F(t} zwfOHO38{5vK6@W0zPm_nHc+s$IqYa>9@x-uD-}dSQo@)81+xuBbRx27$z^*nL!5GN zLu`ivRBN&!aDJ=zBpHmh{amNwsk4IAs42_GIX)l-h@Mq!v^DRq))ZSDkUv;Q0W$1b zYN48=W9fP@^6?`N0I{Ng66;P`uyCj3Z}1*O-U4Jg>|>u!xucb;LZ?gw1riVVMnYQL zGmDDfAE78$eSI7*mz4`f;`dxvf4br=4NlYURO={6GYt%rneW{BvHj95A|xy%N~IFJi}`8DW(gjczdSrVMAY)vuTN9;Duz+>OaKyZ?i4KMa~zEq z;ngwV4ovmI0mi;^75=7XY%Eh(*HdNeCSf${!OfKZButO?&Yf=qYc#0i<6~d{O!r0- z->+X+o8O5U6s2WC8aA6#CW7$(Pj4XG;JgGe^;6`l?r06I=-;Lh)ulJCjZZmzo zy`dHiaSsOg@M@+J9?}|&swuEgF6-#3eo&OvA~zxP3@!yD%s@nKnQgQ1w8uB|v$8Jb zl){~BUoDj1bvn$XK5EDN>zmQL)FK3Hini~#vVJPONDzM8Gu26D)ZEJQ8=mOvyQR8A zV_$lLxPDqZLIPXf1ksdEe0!#>U$bdS>JAP?hOM8H!1k%DYTJi(bfx9}!pk>p*s~i& zoPfc{53yK_DTZ&A+#V>U?ivVRltma|A4spQQIa{P}Mx7$JB1 zKUXxvBP_wCii12DWOfV_1_vWw<@et~frzm>A;^z4Jq|9o3@F>JUc$xG!a+)PV-(0` zNO`WBj}T&iq?+gDNG&{e855+h2zymC?C$SN(h9>3_$jb)BA#(YokNOy1ma%R2AG0g zEa2(Q)R+sX;DU!<@T-#`JnJ>)S#I#GGni-X!Lu%4p0zM%&Rd8g2dkhA?V@jGmIP@-Cm@yTh*|Y*DY7azC($s=;#4Gz3A(+1YFjS z;a1kfIJoc5U%YtNvFdCFV(w%8uwF`)9BmKwuy}ak9R5uvp1WPb)B4dF*$}3-@}$uC zm%7LFQ%u~7b@th5+;^IX{WeKQ;W>QA-4a`5wR2I8CQM9UuM6CT`|)5=iQ?6$-Br08 z>8vHbLy~&%)de4qwOPTm$M=L%9u+Kh^ti4`=vVKo37lqifExBo8YW)?)cP7{+J-Ot?UVh!80rA&-B>#6O>oL34TDR7_54g)3yJxH~I}?IpRX(ZHca z!D1a|e(nafWxpBXpnmM}vNH1xtg(btMfj{c_QlcdeZy<{(1!m z*TK%x?L~Q2?BVMhRJcg~IfHC6Dgz%xs(Zz};w7~N1e*w9##q_!u^uLs zO1Xv7h`=W;0_<0kHpRQQA7N&F6$dwBD*K-;v8KSqV`&`z_km>p@Gb2wu^Yk>7jr{_zc>8s4 zRq_PB546j@3>*FQf{L(QTj^SdMXFKZurFNsmkUtuT`P&~i98-*Uo;h!2W2IbFfv0P z&_>kAwSQIy`R!QYzq6$TOv~BzpLIpQ##+;>6?evL$0QN8j_+>jb_-b}?}V~U?!h1-j~Zm*!uHlG^Dlh}8rUM$&cRGmS=yup zF075;Ko%stW$iHk(1&1#7CFN70CpvUhi=zjBP&WJYf})wT6>ncL6?~NOK&q2F3`HV z@@i_@hoDz}ds*$Yk#CQqQuLt{qKPckq-b(FK`p6%NeN-&i|%|6K7@h9c;Q>u&nLqG zQDn=t$c(ZqeRi!akVjY7*-XzH`Vj13PD9B*UzJhXagJUA!&WA@)3l2r}nD*>D z-wKUVt}WMxIps7&29d+}QH{?PyanxvZ%j8JOI&ry^eQRI+vSN=Nff&Do=$M+I%ap^ z+XCA)n|o{H%b2B83v2y8y*Az;HFXXV=dmT84Eu+*-bQq=crWhBmfv-RR3k5u#gF*r zYhDv^bHYr=iLT9B8+UCy1~bTlr`aC6*4y##pmFKmr?qG4ky$$tv^iW9bsN({R=0X4 zdX4POuCN$p%pA`GC)V0aDMTQ=ZcVoIHu?}Kok4_%KkRQA?M*SYpqw(C8u``O?nuSA z^L$KCJdO|BVApo)`~5=*sZuY6G$t;%_R1TF3L&ejru&LBfeUtF-Z3 zl#pN+nK34vc)9IEVB2f8J+Fgj3~(wX_-%>zCJ%R4IivhzFU#G<%=9$wPXr*um&{7z(!re&!L0MFCD0oqXg0iuL%hv1FRUz`Ek)od5!lLYw2r7_p@ zN0pgCLJ}HmBdMwzlj=?Bq9qm4*1JCC2V98M zrZ^G1G) zp%NWHh88-+8`9hl=uw>jI4jEq<+yB-%~PE?DFO&V#y%}5uv%@Lr5*JpG?W3syaR!0 zb8`&;&z9$R4Ih}NY7k+glnBZT!B%h&T zL63sE83I~ynshFr4>W<311K50q_lZXvW(_!PWzb00XGt-ny<~(lb1IE=>ZV#-@p@M zh^dfXT=DeO()Dw)SCq9H)|O$?|S@4$}uhsCo9 z45pZ3d2LaMDZR~LhVyClk<03LR&?TYtL7Zk7JubbSt>95w%AG$637@XFV6V-_3O~b z@Vhx3PJC(sce5)Bi@4l9eG$JlMyTU#INsta*kn0& ze6;f#!@y~c$|@*$gwWQum0YW!N)=4Mx4WB)3dx{H0bo#cA}-d`VO6z+rXQ5_p&z^f z1(M{{R9@Z}#-2%|N%L+W$aM`4%4DJz=utr0Dr@<6#XRC|PqwxyP<((8BU)-vWZn;W ztGhPf98jT5Fb~uP+73D~Lf1pXb$d}sR5TH4oxp%Y06ai3%m5u=x^t)C^lO0zr;wuI zFT_OGej@hsD__p}puF9ml8$a}e`aQwnVA*Qn@hzfg-69tzpMKCnZ@_@xm@CN0OVw8 z0T5FOw1Pr-Xp}dATVxzQ5ji<4BvkkA-F8T|8pzp7u>bQhS|xvzfrgi@#*!YUFt-o4)%Rs0xG0|$yp zivb6}30p}2pQ`HEag8rRK(0gCldeo|Fj`lxn_UU`dYYfo1A1qx%Ki7Qg^ZtETetRV?3Z(HC3eF`I zDrN|D12B^W+F@nn*$(T74W;52HJMnUbZ1Od-L#{>lh*VooMQsre$=DUkIfTYQQ0*a=R z-_@*pF5jAlh%MM+1W*?Ml;a*fl(VW5cqnujlnI_i1;A9xlJRM&k$jt6XXO`*zSGJM zhs{v3&02LuZaLf0Zv5xxLs*YvccwZsLQcx5I_3r#J54GgmW*c=8w!PKVt%3siIP4I zpu2y0QlNGY#nGqJO4KYK<*;&DGt z;Lp?)LLUnbmJg$x^mkSk1CU=tMC9H_DX2{XH%uu*<>R9Ur*fImIEBX=f=D!!UZ;Pm zwrAqhDm@a7q_PC^+ffT*HB8h4KS)lS@)~vR*)dG4o_Z+|pK#)oH473gD1|lPLhSZ8 zR97A+!WMDEsz-u&VS`e4FG4CWGbA_>HYnK|T)j-?wa{P0_NZZJCVe#3C4Ibo6b1K= z9XtbfD9P4d$lp9@V@IA|;-z^;LftL8jj2b*vFkDFkeX@&@==8mQ9eDk%1v zAodqna6n0fs&x!hf?fk`KDMR5cvR-hi&;vu819*J0RE{lCsLqJk#?MH*=tEPa+`hLjDsjc0Xd=i`SHjcXN%H6_Ko2+;~NoAA$lh-zCZ}k$F9nE$-$7EQ7%$)nx#Rv<-vL{VOOCU&`(iao4|PuwwJ`WWzfxme9JK7V+L zE<>?V=y**9p{foPStKBq2||(7Co#rQ+DnyaX&l^#`AODbA6V*k z$r-b~Al>YJXiu!rtZG)t%j8$L$6a>y>QzZJEXM?*V<~iz`JOshF`zoa%6}t;N;kJx zAn$2V>04zL6B9!x0=6!2u*i%~1kQKSN&_$xfWV@Ba{P!MRqnX*v}KvX!TsVtPi>3}pA8Mpw*=b-xFxq18Zuyq_m2-wqZ5JfeY7r>KH}l}YPs^j zLp|&2(rA_H+S<8v`Gj||ZtKq;HMD%i*~&-^I`PdLL*Qd}td1Xbr?d+L zC)s4UOc|XB9^e0cmQio-z!f6E>f+gk1cm7*X=_1f!J9y+)`65_nbHH0qAAckkmP}c zhzNLTZO04y_PxXLpC3^vL*aT{A40u_-L(Xlqpd1Nh!V8RHoL1|5+JgFSA*UZN+1w9 zL%q67wkq-G&jBcttqqpWLQ3`$b;5er)9U(tjl2h_bPW zU|DT01V-}iYi92U{K;~_#uA5BwmFnm*X3gvTEW(h>TNl_()@Z%n zg>*M;CK#KRh{h{{5cXtD(#hOQLKN?*6*9{b1xgC)%S1SR=aEM(exE!gN-N^UEanEo zT-SWDf_(_%%X~n9!JS`0E>yyZ)MD$TpwCyf#l2^5|F2nBe~;mG-surnDtTdH;X=>i z_b{t5Je@)uh5A@#8mr0&I*pBXJ*9SzgXg|LjCYB0CiNlxTt$_LCO>e_2IfsDkOXF8$+KFcxDh4fbzc8iWI22rO$;;cXrNeC7DnRoArajU9$M&V_>LXASZ87?H2>C5$upobn2bies;2u|oxHSYuf z-Y%O97O!v8WBe;xAcw*9z+Tb;7fbel4N0E{awo50SPdrKsVUEM)qp_8fYK4FC($WR z4_I4E8>za79A0&>TSFj~(8w(6dfjt2#!BU{o!fsFie*xitHgYylbhnKBc*RH4HU}o zIa(^Z?4M(x=TKErS~~G;6Nk+yv^Ptim>^4iR#OjF0^urxn0LvVLZxw_)Gh-`-pP=! z{)8LT(<>o)-u6-y2{CbI{f8U{C{)$I`TgR3Zx*k9x-TMC0na?=VW})#HRtp1%)N)Bo+mLt3P}V*cl-A3zExHvC^9j5@3H$V_bSVw zhO_enB;WM%5-x;$LE6v>A>k&lVAG&3PfVih%_?ty!E-pBJ(&p+#jy)IRMeeeViLl_ zUdOu)nn=~#bg<}yM&9#Er1yo_{tF3JT)d$BnbeXJ2}VXgdngVgspYu-mjwNuqNOc_ zHi7hmOf`o<9X}OFD7V?zBr9BZpbXrBFfz~~RXtwVJI(Fw?F$XKXT3{$%!acxtp^i_8KDqtp;<3C6}TM_AAToeooM$Bl$C?JK2YpQ z1tCw8Km!*r#VF2Q3=J(bZQDmscu6;EubdzC^r1J|S*Gysuc%o?Bo5((uwhm!t>b#d zMJ(M;f8VbCgTm4N8p1WGJn?u*&j=(MfMe2&M`Pp5S1NT?GQ3^V9YOxL9xE5wI>lE2yIxxQ0J?4b zS!X`jyhS9nO&qyP0wHz8({@?uvs$MSE9YM;GyBhHjDhuk?4<=brtCxHT2)~$B^)9g zN6bLghh9ox^BgheP*ucB2^&5;+bJR()xTrJyp*oMhreUs*4VVT z+3ygA$qv9O6%obzJBcA|Y`wFhc>a%(yE#7e>N`h-gR#%mF@)3(qHn7EF-KsDN61Gf zGIj^C)z;z=zc-QQodQpC_h90UZJyMYce&o5$(nPti!%^!*iSr--S_ul5CqIa^V#Xz zhid0uCWO{CPy}8^Y{wBH^(DCRNZSVjU3O$6h6u1Ho{HivzC~si>xE^5LyN15(e2n* zST>hwaeFX}kQMRbAtHK}PK(?Zx&Wj7@g5o=uBQ455%n2r5$gxY>{gX|VKaC`_cN~B3h&GHIwO$RgjCa%wU8j)`V$mnku zu_yF=2v;zhYbEMcLQPw{fq9@N5jBf1-kKI>h#?H26XE|mgaUhF!iTUOGlY=Z@+F>) zCvs7>I*{O~MTV{+_gxjj^&zJb8N!T^qr{#t^da2Ai~y>r%_C8t1!TTRdrwJP9$q7V zOtNx*mk%Le=9z2@KnPvf)9G%T->eJkMz=`o$k?75hfl44fvg$Xs<_7Zb3zl!jX9HdbY)}W^T{Fw#rDnj-xy;b|P>iA9CCKX_S zSwx6=l|%yf-n8DI6tvB68A#f;?L;(fj>`tB6zFVd&^g-tewJz$*#D1Zp+s8EU_;=0!$UX7d50nN?(ipN2M*E2Sa_h9 z8OWCmF$oDm=LdGH%R*K$3mMgAW|}tZT=KS4r%rJ``+>VOT&_yxvHKZQ(Y2O=qi|X( z>@9Fy(Sc4!Kj=a@HYmO&a%0AJ#i1uzhWsKKhs4QVyC*cYRgv9)1j~Y2UCGP0=dYO} zWO5$sc!-EK=4?cLj*j;Alb=vj9%?QHPzq?|=H|LgM;ZZkJ6lT%>1YWTPHi0ok-GOP zHqiiUW#{TQs5tWz=?NLEbr^{b8H}3t0+gBaZQU0*abEz9>O~<%XKQy5spjV9F5oSL z<4b&h<(A69yXicaHDUUd;$^;mHeg7^&!!ioZ#3sx2vgPRfX3e}LtJmv(g(l1~X-$4QJtG@1U;ZyvRYxj7-7Xx(1?d_hjCfl5 z5&8@+UcWC4)Olnr#8}Oj(uPbA7pCU}%_An8vmIq~$x)lX zHLV_O^=Spzhto|a_(MtU5rF`bx6dKXCMSiCGi#i~?@t;=x&0(0Li*^87t_P3)BV4^ zVDFaYEG!X+3Cwt|l^nJc3ENyZkEi6=MrBYi1nUD7$1_uZ4Lm!RF6POOx zYk6Vmpz!cyXliL59tODR83YpSe4P}McIRx~tOq9m(S5!zH{mLa76e{Ab~P~Ox)+Y# zD@MiS+t4Ti%zre1q5U??=^WvN;!IQz5H-m&XlCNzP=d}K!v@&a+bYC_uc4YE4_I(V z5Y3~_-O0cxikVnR#d9{buu*`qAsi88OJLej2#+gXOuEtgEa0*4vx!PvJvY&)YgYAMCumJYq7k^x9g{))>BG(Qtya z=K*g*Lt%DP%@Mr?CS5PK7uD}-7PTz$z>vCEIC@^n87gzo=K&3?y#U~`=T8z#qL^qH z(%k+S50@1}!*CWDZvdB@Fhj%w7}e_Tu(2s177ChlbMChDLxK7)7vSsH`!JkTJT5@_ zGRQ%9w-VAZk)53lcuB(0@NjDY7zMfK*RdHNN8Ho>4WNv2p{X($mYPK#v8G^g5lP#< zAbMF@S)@e_inV^%?s4&fLuh`q!FIKm6*}Qj5OD!t zQx1$s56D0(W+R{9rmlP5h-TpRI4nV0fcCc*q9{`Ocofbt-kqXr_!&$`0+0t7QYKE$ zp1+HGg`;o*Y3Nv8wLUuDsRG(wMN5F<;*HO5LW^JzDJdyGJ+Mo@eEBkm)d+w7By1t^ zIeZBszreuWL{tcr1yUPBZbeZv+&2sl>Qoc7&xzFjh`a{k@1k z_vafeKwBhm`ravq6EyY(6B^y7LjRebPL5FM2{Trp)cn zb#TXsYb~{#VPa+N`1_={IO|@p)Z{w9YZ-u!K)-Ejzs(JuXOa?6_GXV~=AY<-6VuBz zhNdKFjQj=1iBU&u-P_azW6*;KDQGm4Qfj<(>At@yZ*Bb*x=P}~ zB>fd8Ja79Qlex|$_*%I>icJTIU5?00CxR^Ij>lrf^veh zmu~z5(popP8^E@=FY+*Gcrd(Km$wGRMSAg&p2IAiih;iyQEMlRf18HpA;_a@l4KY$ zC1o}kx=$2o-F<5|+jb(cvn#TDPQpn060nZ5z|#T9^b0fAQ4E_A3)GP2(YxC~c7y&i zMWiSZpftaz;VOUaOPA7T4N?K_?opUR8@L3-(krJah>eerW9%_-ZiHib8nmz=gYTN_ zN`ZF{tSAWjHg>&EPd5*fl4RKl>z9{A9JLI%WTW=jp7p6_%ywF<5(l~VRk#)-EqoqF z`%qh8F>GM$sSMoHwPe)91FTp9b{UBG_<#mtWSLr)ILNKGz8=WijEE@L2T+(fL@V5* zqkEK{&2RGczR06T%DH-CZ{NLxq+1hX;!94Q{=?GQ*@<}l((-b%-Ax z`T_I-g@MRhI^0M>2M5z!qdba$k9W_}VDqY{&;^aej<@TFvol>ZU3VWKD z7nV#kk36^K(0$|qSf}Y50ONhJI`*&v`iY??5ZP}NeVLA0ti7h@5lj{e>1bfU8aUiQ zY>*GV*yG3ZuL%TyU6JMg43#v{$0vR`3jCDroAMV)*+hY3->a&-mgo$gpC#oU^*^2g zvCX9Hh94;!(&UAG+gHbH5Ih9J%lW1-X3SwdX-PZp(`wiSiV})Oe*x#??Ccy#(TH3h z7!?(TH0Oqf63fK$_alc@{r-VHwtC+4_t2S>4Q4t6x_)8nUHH#cIB^>P5{5=L#MaQ# z(qa@pI<)I*5a2FM{QO!F2Pza>4#W4XIC^iO9IOry*>C9B3;p=f7+L1no9H~R+J*+R z&O{VIOR@EVR8|f*4yo`Z*6eI-I$9#xL5=PLouLsklXDNWu~FavW;+rXP~gm%6qEfM z-v_iwrFiT3Xz3HlGKe|U7%8t{5F-s`&2SoKTDKT7}8hTNJ^I{h4gs(~{5 z41{KSiGued#o6M|Ue|#FhgdgT8yk6O4TV#0LELfln=ay@*;%C1KnDKr0k;Tu=a&=q zpITYTK|;dKxh|vw9FZ5V5Nlr?X!iYr2-o1CCWLrlVAj7aUG~P&`}R-VhxBa!8_h&} zDc*Q53+>O~&5?Kz6Ue+S|M~N05S&myYjhi8)W*j@gHh`@=R&NYmqK>;wIF!G!7O6r zk@jHtH^eJH&l1pbh)*?zA?aI;fU8P##650AAa74e+G9U(So{b*aEZ_?ZVX+}h7I2Z zoLPS z*2d9M^({V0O8`WW(h8>H!k`pbJe1xn)Lct|+`gjR-16(KPy4ev>nukkm2($Lex**kg!V(a_=UqYxBgh4ehw|M=tP|gmnjWM zx$RD$J-Yx#0a(#0fGTr(9=idFKnh|_==S;rc{vooG(X&Upa6?O=dIur*v$ZkW-bMp zIQXnBX!Boy#FXo>V!R3j8VQ>J>FeK~0+ads>$93gM^u^9+83nRmr}qb6<#d>IsPZ; zdP{>YZbs;g1%2+&w5q7n{^~0MHV^v6Hn)0pGa#Lu?@B>>K~BRvZ4lcG`E3y}5z;`- z+}G-^A!YN^zTYG5H%Oa3g!Ay~ z8WE8F^2sf*;;8r@{}> zT4hUDmm)MoE5T~vzohXR?*#~y(Rl>My_xC>@ctyIaLvIjyL^b~IG~{!-Y}6a=6AL3 zFd!%n<^$b(VNfGUL;^sl07{_2pm(RpQk9mK&4YR=LCDh`|L~MM2zZ(G_$$Oj3LTCU zp!3A*!O7}R58hUWP%jf)PbwTFg54mms(_aM-GC^eOtst}9v4v_qxn8QcnCfL^@9q; zpS(PEmTeyo?4w;OQP2%=VQqHKZIQOuB2MbJ*Vg1=P7DUR(wgwv3GH$R8PI%Cp1hoV zcmo%_q6PS6OOVenO*?wMg5I|ndL$pq>o86T}1Of4n^p-HQIucZ$3# z35XV2=x%_N54bc6j6bs(G<`%@aR9_ua3TPK88c*26ap?By}WR4Un2-mJBP6lxd2?| zxV;7444Ok$pt3yoy~(f}AEYAI)0`{Hec34>F_9jXcP-$XlarG~Q{^_Dpr8)=#o?|E zv@*|V1YXt?^z`%u^gvhFV=oEbFZE(+fD_5qq{8oX0IURtf)1qs?uP*t!J>_(2YS_D z%QxckWPA3+w3Uz$;5aLbc&dAPW?|PN42H<8r5K zTU%v7qq{(rA-b|_C1bU)=(8|-x{!LAN#=%H-#R>=7Oi+ zaZcmnLODl5z-99nd;^Vn=Ri|hk5{N?*qfW0@=iQ#ZS&mcDgA8@EL=AZVy9L&HbUs( ztqBq%BO`U>fSK`dct^eJf$$a835aQ|*&Zl}{d5Z{qK4p(?))mUZ3{iw{$j{@@Jfy6 zU9^cBM4yW7u>!!hN8<2ur6o;j#V)b--qM^J(QPw{{3LnNg*bEbw}k=#WPr zyd)H0mp128;(!PdQ|7Xj4lij+|M>Cx!S`0FdlgD!7Vs=-$liW050~4I|2Pe>iCER) zx*u>4(f|S@cA`IBmjXej=}<{7v^*xk|EMOxgyY5hc2n?q+plO*;QqP*L*;PYHh=r( z&Cj|zF@Unccbk@01cDKGC&@3c@T~y=#Y#_DpRNUcMB;T2 zze3Lw51?BWqmi~bXoAyKefl)sefV4KnA<@f0GXyB=TNRoIcjkRMA%OI=OsHR#>m6_ z%Np%nf5RIR=D-z{3a&u1f;a;Jnz|r}qBoFjSb$eCj7LhPN3S#-@gMOU4IfsrJ08S> z(n_MgRa5}&(i}nI0Q4as19(3aCp>fXNh-Ixq@-l_-XW|8>}iBjnnIGu=-f}k{5gmb zp^g{=F$PGS5~SZh9zUk+?CP?I8RF!`0aVn|(!ytX!Fp@Hr+fsxSO0+=vc4dwJHp6@ ze1>IOW@ahy&hM61wpY}3;QcE~6)yHQY#^Ks6V`OpRa48$I?vBCSz21|jR>5dF4ZLZ zrnwg+I&Lj@dM{S~5F5+dvgHxv>{w5)dw+UmUuC|1$aDJ*WY0)yu<~sq z0I{w4lVe;6ssxD07QE*r6*3%5h|6%Djv9#>7Wf9_v64PhOY*R$Ky$jARrL+`+gVbl%1OQ;|zfP}qydEW&x6JjEwXHRMQ zksy5fK)uksUjcce#Rcg%qX>==OeYSPfob8ipI16{1slt&GrsnN*9Ab%0eh-iK!}dq z_b=kp(bFf&+*?ZG4`@sBfRpzn%-lmZu?yg923+ikxxBGBFoZ_!E{ z8+-ct%6Rds*RPS;@ary&RFp%UZD~ylcoJD?2@dVBJMo*2K=h2IQOASwLetZz7fcy)gtwh})<^eW+88|Js{!S-Z3hvD2+WI|t*^v)v_ z0w1G)a^mk1ss#~OFJN$tD6p;1H*3D*o;{lZdWJM8^Zvb8UDo|7bAhPz681E)u&GJ` zg~Ak#Gb2i%dG@QisN|{Jnr&jOe7m2DPQF;Pb1IH{I`#0+~|ezWVR; zOgX;C2GWC`^1E|=Ig$k>kaP%U^6yI}cUdGA;xwMJ za0nIYC-snLvZLL}SAKhK~SCi)wR%>guSE&e>mMx$`Rzr&-N`PFkK~rua?292$ z6cDIbkgz6!3YLlr7?4!NfC2&ukOHzA5)rMU0!0#2K|n=>urCQ)2VhvLodyYWcKh6QAPmIJM1j`k&8U^7OtFUlahZN!MsW`>#MWQv2r-Xkrj|9AfY( zTvPeEgoI|eyYnQ~iagvl>U|-G;=-d<6cfB{?^)Vij#Dw)Zu& zHSmF;gC_dj@Ae58RH`bU8mcbe$ZN!(O(s1?w9;g?VZXTZp)Vs?mf6%F)bi&v=&J)kA8_^hxWl04^^d;mK+`+w55gDkvzlufC&KK<6@6XLHQFIJepM3dFt++SF@k{5Ri=URJ6+ ziNtUinK^?4p=b8)L)x}7DwK9trmQ#IlE8$*UxZ>DFty}G`8UoSCcLN%_kr}VLC;oJ z7csyuhh=$~O4)!tVj&thhH~2^2X8S~A`;LOVM;~bv8Ha+7S7x1?e7l)y*OWxpW1X$ z`TUwAhhOqkM}Y^*ZCC{1H*9=_j&!<$t=J*R6vudcE1>`EBUCM5_2>p@(9=^C36vN4 zOt0N7I1G=bs9~d^Bo{Rt=?Df>wK7pFPtR-sMV$+PY$lDaL{?D2q#!NBq1OK-BxQ5(F_1usP6r(a;z|Jmkp0Z!OIkyKvv^z| z-ujj0k-fGt7Vgh-&wMp@22zRo!xI?C249PXx$b5vHa;##44O@-!^ak=RV2cTrgPmO zdtlkd(3}JUhHdny4os)k1vLIZM%ub#1osPDuEB^wZ(>tD;5u-~bcIzFN09cpA>lLg z#zDEexf;Ez9K;)%JkqXt&5n;rn|7i-Ra8+N+8r7JT1x z#~R?;*z4s*+gOZ$&z&o*j^J!G{z!rN=j|yPnp9Ftq8f;3GeKf%6Z#<4XF`i#fJ1RX z^Bk&NQ4=@Ir!_t&I)evNiFf77^gf<-cy4&>d1-Uha81kccP?OvRD=f4ujY|^Y;l6i zy%_wHj*fsceK8`NK^jPlXYw^04PEM?5H`q*rXn-lyKLH!`L)6xg$ho6fNyp8likQeEz;3fP`!Gp%=~SEI^@ zqQ^5l>;xkVFXZOY&9cywub0aqJplin`pLG{Bqqo*UgjN$1d71FC@aeb9YnEfIo@gp zJ%+a8gYz#yc6#8};@ly`pV!&JltBxVFR>J^R4-n2Kp9h@pTtioo(TUg*J88J@Kdiz ziBk7KmVIDQ-EU(=&Iip?K)_67h&7v3WjXQ3zyVPmjOeS z#Z8Wj%ej_gA2uiQ=#s+g1xjbfa)e@Ob{Dhw%^Q`=-q2SySM2OtfGCbsSh>1dK0RUx zDF&Qh<#$yRQfbM>9fR4WrKNPgo3>jgR5+8eIyAI$)1dVK3=l=b9OSejr|%}lqbHUw z1B@=&8*+Q%0M{=sF-Hs^Ljbl|(<|-^ zA^CZE9Fa()E}|bJSs%GPH^3~0mS=#94SE*LdI3Y|n>ds?0lC&VrL2fXTQxC=eLIaZ zFjbtrG3aT{wf2TV`EAf%z_obB=nzA%9#y&67qxlax-6|UQ-hICe7Jl}$R%VOe0QUs z2w^RI6{0f{JKF9FHoickvcvtHoSdo(=(M%O$f%6>@5hlGbtvUG{LD6kpv*w!Y-XGO zXzaOfA5N-SUCwYYC(Ow!iG`DPGUCFQOE!b~p{Nsw2B3aH7M@ZzD9_LFX)~?5Kp>wU z6UBq}tO#B1!`l{H5mN1&ZfpWc-&*&>PT3A)0ShrcUZ?nSK0j1nxMynv778moi0Ie1 zMNPQ{_KCKVF6#LHC83fQLWvm@Rg-wFB+y#{QPkaCltvwLs-ees%9`%qZ~nN~rPD+r zR4L=T(=38|>k@%6!%6WIYN3UKTS4GhHYc`MpRG-fJ4 z7jv^9{Q9FnHy-&TK+6{7`ij!dn+iX3pWs2U$^QNRTea;1DM`q2LJqI-?+We68)g=3 zk(Y|-$6Rs!fUNPO$bAYEk3p74Y$Rdy?E@}}yTg`ds)6_H21nN@Wfl6-<70Kf9Z?^D z@=`p_SUfeWG|Vbp{}K76sQje76FVe(@R_BV!vJTijyKo6#0-37oqw$FhJfw88_El~ zw-cC`Qk#LeOV|_rcpx?8Be+a3O7@VmgsHH{A=vV1SqUo1uEbLCN7Yon0&EQ(#R9q( zQb~ntb$A9t6ZXc!kOF`k!Qx>i@+Rgdtt>bWn5Qjd3>z92fkTtd7Bv+ZLardSK^wOg zKwq78uk@=WK~}Hj-GdAOF1d!LiQ5#|>E}Lxi6?oBlL{tG_BHec|7Gs`{tpv5d<_yt z;{1n}lfpV4=uU&X*4|{K^uS{w-3T^D7c;j=$@8^Xv`NmD$nx`p4ypjTAGxBZs2@m5 z$^g|fxH&^|(zZ{ifg#E{$>h-{7U+GZ!ISp_QaCeEs*DZH%+i7>3<`y7QLRxlw^w%y z_|B||l_3-;ujwoNvZbX1dwjp@U-O5RK5%V9bUrOx{`Fk2JJr+|o}Fyrx7=~IIqhsL z+H}~bJoNGTjt>T{DdJVB7?;GdIsI1Ov{r2W=`a;>;jkx6+TIQah-z6@38$ z8e#Zpd>?Pm6Y%Y<0jM_Bc&rP=D&QnkcFkPn1DYm|XZch6`Q66-F9wp>k~aT*aiR+vRKp91FDUpf#jKDU7zkdCGBzB~g(7A&*?@=8%Y{wdT?In$Xgto=gfyg)W zuJ9Z^)7aEBtDB{GGpQsBN(7D<(qk(?Y5D^Wt}(2zK-WvTXluRt!r2g(7_$QV09Tu* zpXoz>^2Pr^qru+*jUJ<$w(rh&7SHmS={ub-=CE^5#H8-bX6H&p1;gUh8%+N53^(*U zM&m6VpNQ*vLu~cV60;ez*8UNAzkmwlJp#77)}Dmd@R24bd826Pek(Vh%Mr`0u}-(* z%00q^onmE-aAe*)5gv#9_8 literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-with-long-labels-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-with-long-labels-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..3c8e666ecdea638582e9ead1ec7b8a7c8e5e1a29 GIT binary patch literal 25110 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 literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-styled-subgraphs-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-styled-subgraphs-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..e2a6b9454af6b994d35647bed405486a2e983385 GIT binary patch literal 23784 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


Rvp~CrkhytKV}|~Q-0nk5#G5L>-2-Oo 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
^^Cyk`y^QkGstvpFZFa;?vVW*fM86- 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 literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/git-graph-spec-js-sequencediagram-should-render-a-simple-git-graph-1-snap.png b/e2e/spec/__image_snapshots__/git-graph-spec-js-sequencediagram-should-render-a-simple-git-graph-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..c53502031f31e98bf0d3e31e6fc1826ac7d56a65 GIT binary patch literal 3249 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>i1B%QlYbpRzjKx9jP7LeL$-HD>;K}xM zaSW-L^Y*$SBZC6Z0fPhkpFdnAqr&y8?ED!W28M- O2?kGBKbLh*2~7ZyoZj&O literal 0 HcmV?d00001 diff --git a/e2e/spec/__image_snapshots__/sequencediagram-spec-js-sequencediagram-should-render-a-simple-sequence-diagrams-1-snap.png b/e2e/spec/__image_snapshots__/sequencediagram-spec-js-sequencediagram-should-render-a-simple-sequence-diagrams-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..fe6735ab3b36daef3463103f4b9e04a83cfe01a9 GIT binary patch literal 47514 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 literal 0 HcmV?d00001 diff --git a/e2e/spec/classDiagram.spec.js b/e2e/spec/classDiagram.spec.js new file mode 100644 index 000000000..e4fba5a2c --- /dev/null +++ b/e2e/spec/classDiagram.spec.js @@ -0,0 +1,27 @@ +/* eslint-env jest */ +import { imgSnapshotTest } from '../helpers/util.js' +const { toMatchImageSnapshot } = require('jest-image-snapshot') + +expect.extend({ toMatchImageSnapshot }) + +describe('Sequencediagram', () => { + it('should render a simple class diagrams', async () => { + await imgSnapshotTest(page, ` + classDiagram + Class01 <|-- AveryLongClass : Cool + Class03 *-- Class04 + Class05 o-- Class06 + Class07 .. Class08 + Class09 --> C2 : Where am i? + Class09 --* C3 + Class09 --|> Class07 + Class07 : equals() + Class07 : Object[] elementData + Class01 : size() + Class01 : int chimp + Class01 : int gorilla + Class08 <--> C2: Cool label + `, + {}) + }) +}) diff --git a/e2e/spec/flowchart.spec.js b/e2e/spec/flowchart.spec.js index b9d96a3d1..fd4092747 100644 --- a/e2e/spec/flowchart.spec.js +++ b/e2e/spec/flowchart.spec.js @@ -1,23 +1,267 @@ /* eslint-env jest */ -import mermaidUrl from '../helpers/util.js' +import { imgSnapshotTest } from '../helpers/util.js' const { toMatchImageSnapshot } = require('jest-image-snapshot') expect.extend({ toMatchImageSnapshot }) -describe('Google', () => { - it('should apa', async () => { - const url = mermaidUrl(`graph TD - A[Christmas] -->|Get money| B(Go shopping) - B --> C{Let me think} - C -->|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] - `, {}) +describe('Flowcart', () => { + it('should render a simple flowchart', async () => { + await imgSnapshotTest(page, `graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me think} + C -->|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[fa:fa-car Car] + `, + {}) + }) + it('should render a simple flowchart with line breaks', async () => { + await imgSnapshotTest(page, ` + graph TD + A[Christmas] -->|Get money| B(Go shopping) + B --> C{Let me thinksssss
ssssssssssssssssssssss
sssssssssssssssssssssssssss} + C -->|One| D[Laptop] + C -->|Two| E[iPhone] + C -->|Three| F[Car] + `, + {}) + }) - await page.goto(url) + it('should render a flowchart full of circles', async () => { + await imgSnapshotTest(page, ` + graph LR + 47(SAM.CommonFA.FMESummary)-->48(SAM.CommonFA.CommonFAFinanceBudget) + 37(SAM.CommonFA.BudgetSubserviceLineVolume)-->48(SAM.CommonFA.CommonFAFinanceBudget) + 35(SAM.CommonFA.PopulationFME)-->47(SAM.CommonFA.FMESummary) + 41(SAM.CommonFA.MetricCost)-->47(SAM.CommonFA.FMESummary) + 44(SAM.CommonFA.MetricOutliers)-->47(SAM.CommonFA.FMESummary) + 46(SAM.CommonFA.MetricOpportunity)-->47(SAM.CommonFA.FMESummary) + 40(SAM.CommonFA.OPVisits)-->47(SAM.CommonFA.FMESummary) + 38(SAM.CommonFA.CommonFAFinanceRefund)-->47(SAM.CommonFA.FMESummary) + 43(SAM.CommonFA.CommonFAFinancePicuDays)-->47(SAM.CommonFA.FMESummary) + 42(SAM.CommonFA.CommonFAFinanceNurseryDays)-->47(SAM.CommonFA.FMESummary) + 45(SAM.CommonFA.MetricPreOpportunity)-->46(SAM.CommonFA.MetricOpportunity) + 35(SAM.CommonFA.PopulationFME)-->45(SAM.CommonFA.MetricPreOpportunity) + 41(SAM.CommonFA.MetricCost)-->45(SAM.CommonFA.MetricPreOpportunity) + 41(SAM.CommonFA.MetricCost)-->44(SAM.CommonFA.MetricOutliers) + 39(SAM.CommonFA.ChargeDetails)-->43(SAM.CommonFA.CommonFAFinancePicuDays) + 39(SAM.CommonFA.ChargeDetails)-->42(SAM.CommonFA.CommonFAFinanceNurseryDays) + 39(SAM.CommonFA.ChargeDetails)-->41(SAM.CommonFA.MetricCost) + 39(SAM.CommonFA.ChargeDetails)-->40(SAM.CommonFA.OPVisits) + 35(SAM.CommonFA.PopulationFME)-->39(SAM.CommonFA.ChargeDetails) + 36(SAM.CommonFA.PremetricCost)-->39(SAM.CommonFA.ChargeDetails) + `, + {}) + }) + it('should render a flowchart full of icons', async () => { + await imgSnapshotTest(page, ` + graph TD + 9e122290_1ec3_e711_8c5a_005056ad0002("fa:fa-creative-commons My System | Test Environment") + 82072290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Shared Business Logic Server:Service 1") + db052290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Shared Business Logic Server:Service 2") + 4e112290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Shared Report Server:Service 1") + 30122290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Shared Report Server:Service 2") + 5e112290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Dedicated Test Business Logic Server:Service 1") + c1112290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs Dedicated Test Business Logic Server:Service 2") + b7042290_1ec3_e711_8c5a_005056ad0002("fa:fa-circle [DBServer\\SharedDbInstance].[SupportDb]") + 8f102290_1ec3_e711_8c5a_005056ad0002("fa:fa-circle [DBServer\\SharedDbInstance].[DevelopmentDb]") + 0e102290_1ec3_e711_8c5a_005056ad0002("fa:fa-circle [DBServer\\SharedDbInstance].[TestDb]") + 07132290_1ec3_e711_8c5a_005056ad0002("fa:fa-circle [DBServer\\SharedDbInstance].[SharedReportingDb]") + c7072290_1ec3_e711_8c5a_005056ad0002("fa:fa-server Shared Business Logic Server") + ca122290_1ec3_e711_8c5a_005056ad0002("fa:fa-server Shared Report Server") + 68102290_1ec3_e711_8c5a_005056ad0002("fa:fa-server Dedicated Test Business Logic Server") + f4112290_1ec3_e711_8c5a_005056ad0002("fa:fa-database [DBServer\\SharedDbInstance]") + d6072290_1ec3_e711_8c5a_005056ad0002("fa:fa-server DBServer") + 71082290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs DBServer\\:MSSQLSERVER") + c0102290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs DBServer\\:SQLAgent") + 9a072290_1ec3_e711_8c5a_005056ad0002("fa:fa-cogs DBServer\\:SQLBrowser") + 1d0a2290_1ec3_e711_8c5a_005056ad0002("fa:fa-server VmHost1") + 200a2290_1ec3_e711_8c5a_005056ad0002("fa:fa-server VmHost2") + 1c0a2290_1ec3_e711_8c5a_005056ad0002("fa:fa-server VmHost3") + 9e122290_1ec3_e711_8c5a_005056ad0002-->82072290_1ec3_e711_8c5a_005056ad0002 + 9e122290_1ec3_e711_8c5a_005056ad0002-->db052290_1ec3_e711_8c5a_005056ad0002 + 9e122290_1ec3_e711_8c5a_005056ad0002-->4e112290_1ec3_e711_8c5a_005056ad0002 + 9e122290_1ec3_e711_8c5a_005056ad0002-->30122290_1ec3_e711_8c5a_005056ad0002 + 9e122290_1ec3_e711_8c5a_005056ad0002-->5e112290_1ec3_e711_8c5a_005056ad0002 + 9e122290_1ec3_e711_8c5a_005056ad0002-->c1112290_1ec3_e711_8c5a_005056ad0002 + 82072290_1ec3_e711_8c5a_005056ad0002-->b7042290_1ec3_e711_8c5a_005056ad0002 + 82072290_1ec3_e711_8c5a_005056ad0002-->8f102290_1ec3_e711_8c5a_005056ad0002 + 82072290_1ec3_e711_8c5a_005056ad0002-->0e102290_1ec3_e711_8c5a_005056ad0002 + 82072290_1ec3_e711_8c5a_005056ad0002-->c7072290_1ec3_e711_8c5a_005056ad0002 + db052290_1ec3_e711_8c5a_005056ad0002-->c7072290_1ec3_e711_8c5a_005056ad0002 + db052290_1ec3_e711_8c5a_005056ad0002-->82072290_1ec3_e711_8c5a_005056ad0002 + 4e112290_1ec3_e711_8c5a_005056ad0002-->b7042290_1ec3_e711_8c5a_005056ad0002 + 4e112290_1ec3_e711_8c5a_005056ad0002-->8f102290_1ec3_e711_8c5a_005056ad0002 + 4e112290_1ec3_e711_8c5a_005056ad0002-->0e102290_1ec3_e711_8c5a_005056ad0002 + 4e112290_1ec3_e711_8c5a_005056ad0002-->07132290_1ec3_e711_8c5a_005056ad0002 + 4e112290_1ec3_e711_8c5a_005056ad0002-->ca122290_1ec3_e711_8c5a_005056ad0002 + 30122290_1ec3_e711_8c5a_005056ad0002-->ca122290_1ec3_e711_8c5a_005056ad0002 + 30122290_1ec3_e711_8c5a_005056ad0002-->4e112290_1ec3_e711_8c5a_005056ad0002 + 5e112290_1ec3_e711_8c5a_005056ad0002-->8f102290_1ec3_e711_8c5a_005056ad0002 + 5e112290_1ec3_e711_8c5a_005056ad0002-->68102290_1ec3_e711_8c5a_005056ad0002 + c1112290_1ec3_e711_8c5a_005056ad0002-->68102290_1ec3_e711_8c5a_005056ad0002 + c1112290_1ec3_e711_8c5a_005056ad0002-->5e112290_1ec3_e711_8c5a_005056ad0002 + b7042290_1ec3_e711_8c5a_005056ad0002-->f4112290_1ec3_e711_8c5a_005056ad0002 + 8f102290_1ec3_e711_8c5a_005056ad0002-->f4112290_1ec3_e711_8c5a_005056ad0002 + 0e102290_1ec3_e711_8c5a_005056ad0002-->f4112290_1ec3_e711_8c5a_005056ad0002 + 07132290_1ec3_e711_8c5a_005056ad0002-->f4112290_1ec3_e711_8c5a_005056ad0002 + c7072290_1ec3_e711_8c5a_005056ad0002-->1d0a2290_1ec3_e711_8c5a_005056ad0002 + ca122290_1ec3_e711_8c5a_005056ad0002-->200a2290_1ec3_e711_8c5a_005056ad0002 + 68102290_1ec3_e711_8c5a_005056ad0002-->1c0a2290_1ec3_e711_8c5a_005056ad0002 + f4112290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002 + f4112290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002 + f4112290_1ec3_e711_8c5a_005056ad0002-->c0102290_1ec3_e711_8c5a_005056ad0002 + f4112290_1ec3_e711_8c5a_005056ad0002-->9a072290_1ec3_e711_8c5a_005056ad0002 + d6072290_1ec3_e711_8c5a_005056ad0002-->1c0a2290_1ec3_e711_8c5a_005056ad0002 + 71082290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002 + c0102290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002 + c0102290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002 + 9a072290_1ec3_e711_8c5a_005056ad0002-->d6072290_1ec3_e711_8c5a_005056ad0002 + 9a072290_1ec3_e711_8c5a_005056ad0002-->71082290_1ec3_e711_8c5a_005056ad0002 + `, + {}) + }) - const image = await page.screenshot() + it('should render subgraphs', async () => { + await imgSnapshotTest(page, ` + graph TB + subgraph One + a1-->a2 + end + `, + {}) + }) - expect(image).toMatchImageSnapshot() + it('should render styled subgraphs', async () => { + await imgSnapshotTest(page, ` + graph TB + A + B + subgraph foo[Foo SubGraph] + C + D + end + subgraph bar[Bar SubGraph] + E + F + end + G + + A-->B + B-->C + C-->D + B-->D + D-->E + E-->A + E-->F + F-->D + F-->G + B-->G + G-->D + + style foo fill:#F99,stroke-width:2px,stroke:#F0F + style bar fill:#999,stroke-width:10px,stroke:#0F0 + `, + {}) + }) + + it('should render a flowchart with ling sames and class definitoins', async () => { + await imgSnapshotTest(page, `graph LR + sid-B3655226-6C29-4D00-B685-3D5C734DC7E1[" + + 提交申请 + 熊大 + "]; + class sid-B3655226-6C29-4D00-B685-3D5C734DC7E1 node-executed; + sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A[" + 负责人审批 + 强子 + "]; + class sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A node-executed; + sid-E27C0367-E6D6-497F-9736-3CDC21FDE221[" + DBA审批 + 强子 + "]; + class sid-E27C0367-E6D6-497F-9736-3CDC21FDE221 node-executed; + sid-BED98281-9585-4D1B-934E-BD1AC6AC0EFD[" + SA审批 + 阿美 + "]; + class sid-BED98281-9585-4D1B-934E-BD1AC6AC0EFD node-executed; + sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7[" + 主管审批 + 光头强 + "]; + class sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7 node-executed; + sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89[" + DBA确认 + 强子 + "]; + class sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89 node-executed; + sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937[" + SA确认 + 阿美 + "]; + class sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937 node-executed; + sid-4FC27B48-A6F9-460A-A675-021F5854FE22[" + 结束 + "]; + class sid-4FC27B48-A6F9-460A-A675-021F5854FE22 node-executed; + sid-19DD9E9F-98C1-44EE-B604-842AFEE76F1E[" + SA执行1 + 强子 + "]; + class sid-19DD9E9F-98C1-44EE-B604-842AFEE76F1E node-executed; + sid-6C2120F3-D940-4958-A067-0903DCE879C4[" + SA执行2 + 强子 + "]; + class sid-6C2120F3-D940-4958-A067-0903DCE879C4 node-executed; + sid-9180E2A0-5C4B-435F-B42F-0D152470A338[" + DBA执行1 + 强子 + "]; + class sid-9180E2A0-5C4B-435F-B42F-0D152470A338 node-executed; + sid-03A2C3AC-5337-48A5-B154-BB3FD0EC8DAD[" + DBA执行3 + 强子 + "]; + class sid-03A2C3AC-5337-48A5-B154-BB3FD0EC8DAD node-executed; + sid-D5E1F2F4-306C-47A2-BF74-F66E3D769756[" + DBA执行2 + 强子 + "]; + class sid-D5E1F2F4-306C-47A2-BF74-F66E3D769756 node-executed; + sid-8C3F2F1D-F014-4F99-B966-095DC1A2BD93[" + DBA执行4 + 强子 + "]; + class sid-8C3F2F1D-F014-4F99-B966-095DC1A2BD93 node-executed; + sid-1897B30A-9C5C-4D5B-B80B-76A038785070[" + 负责人确认 + 梁静茹 + "]; + class sid-1897B30A-9C5C-4D5B-B80B-76A038785070 node-executed; + sid-B3655226-6C29-4D00-B685-3D5C734DC7E1-->sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7; + sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A-->sid-1897B30A-9C5C-4D5B-B80B-76A038785070; + sid-E27C0367-E6D6-497F-9736-3CDC21FDE221-->sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89; + sid-BED98281-9585-4D1B-934E-BD1AC6AC0EFD-->sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937; + sid-19DD9E9F-98C1-44EE-B604-842AFEE76F1E-->sid-6C2120F3-D940-4958-A067-0903DCE879C4; + sid-9180E2A0-5C4B-435F-B42F-0D152470A338-->sid-D5E1F2F4-306C-47A2-BF74-F66E3D769756; + sid-03A2C3AC-5337-48A5-B154-BB3FD0EC8DAD-->sid-8C3F2F1D-F014-4F99-B966-095DC1A2BD93; + sid-6C2120F3-D940-4958-A067-0903DCE879C4-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A; + sid-1897B30A-9C5C-4D5B-B80B-76A038785070-->sid-4FC27B48-A6F9-460A-A675-021F5854FE22; + sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937-->sid-19DD9E9F-98C1-44EE-B604-842AFEE76F1E; + sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89-->sid-9180E2A0-5C4B-435F-B42F-0D152470A338; + sid-A1B3CD96-7697-4D7C-BEAA-73D187B1BE89-->sid-03A2C3AC-5337-48A5-B154-BB3FD0EC8DAD; + sid-D5E1F2F4-306C-47A2-BF74-F66E3D769756-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A; + sid-8C3F2F1D-F014-4F99-B966-095DC1A2BD93-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A; + sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-BED98281-9585-4D1B-934E-BD1AC6AC0EFD; + sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-E27C0367-E6D6-497F-9736-3CDC21FDE221; + sid-3E35A7FF-A2F4-4E07-9247-DBF884C81937-->sid-6C2120F3-D940-4958-A067-0903DCE879C4; + sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4DA958A0-26D9-4D47-93A7-70F39FD7D51A; + sid-7CE72B24-E0C1-46D3-8132-8BA66BE05AA7-->sid-4FC27B48-A6F9-460A-A675-021F5854FE22; + `, + {}) }) }) diff --git a/e2e/spec/gantt.spec.js b/e2e/spec/gantt.spec.js new file mode 100644 index 000000000..7ead76f21 --- /dev/null +++ b/e2e/spec/gantt.spec.js @@ -0,0 +1,42 @@ +/* eslint-env jest */ +import { imgSnapshotTest } from '../helpers/util.js' +const { toMatchImageSnapshot } = require('jest-image-snapshot') + +expect.extend({ toMatchImageSnapshot }) + +describe('Sequencediagram', () => { + it('should render a gantt chart', async () => { + await imgSnapshotTest(page, ` + gantt + dateFormat YYYY-MM-DD + axisFormat %d/%m + title Adding GANTT diagram to mermaid + excludes weekdays 2014-01-10 + + section A section + Completed task :done, des1, 2014-01-06,2014-01-08 + Active task :active, des2, 2014-01-09, 3d + Future task : des3, after des2, 5d + Future task2 : des4, after des3, 5d + + section Critical tasks + Completed task in the critical line :crit, done, 2014-01-06,24h + Implement parser and jison :crit, done, after des1, 2d + Create tests for parser :crit, active, 3d + Future task in critical line :crit, 5d + Create tests for renderer :2d + Add to mermaid :1d + + section Documentation + Describe gantt syntax :active, a1, after des1, 3d + Add gantt diagram to demo page :after a1 , 20h + Add another diagram to demo page :doc1, after a1 , 48h + + section Last section + Describe gantt syntax :after doc1, 3d + Add gantt diagram to demo page : 20h + Add another diagram to demo page : 48h + `, + {}) + }) +}) diff --git a/e2e/spec/gitGraph.spec.js b/e2e/spec/gitGraph.spec.js new file mode 100644 index 000000000..43886134e --- /dev/null +++ b/e2e/spec/gitGraph.spec.js @@ -0,0 +1,29 @@ +/* eslint-env jest */ +import { imgSnapshotTest } from '../helpers/util.js' +const { toMatchImageSnapshot } = require('jest-image-snapshot') + +expect.extend({ toMatchImageSnapshot }) + +describe('Sequencediagram', () => { + it('should render a simple git graph', async () => { + await imgSnapshotTest(page, ` + gitGraph: + options + { + "nodeSpacing": 150, + "nodeRadius": 10 + } + end + commit + branch newbranch + checkout newbranch + commit + commit + checkout master + commit + commit + merge newbranch + `, + {}) + }) +}) diff --git a/e2e/spec/sequencediagram.spec.js b/e2e/spec/sequencediagram.spec.js new file mode 100644 index 000000000..61572d2d9 --- /dev/null +++ b/e2e/spec/sequencediagram.spec.js @@ -0,0 +1,35 @@ +/* eslint-env jest */ +import { imgSnapshotTest } from '../helpers/util.js' +const { toMatchImageSnapshot } = require('jest-image-snapshot') + +expect.extend({ toMatchImageSnapshot }) + +describe('Sequencediagram', () => { + it('should render a simple sequence diagrams', async () => { + await imgSnapshotTest(page, ` + sequenceDiagram + participant Alice + participant Bob + participant John as John
Second Line + Alice ->> Bob: Hello Bob, how are you? + Bob-->>John: How about you John? + Bob--x Alice: I am good thanks! + Bob-x John: I am good thanks! + Note right of John: Bob thinks a long
long time, so long
that the text does
not fit on a row. + Bob-->Alice: Checking with John... + alt either this + Alice->>John: Yes + else or this + Alice->>John: No + else or this will happen + Alice->John: Maybe + end + par this happens in parallel + Alice -->> Bob: Parallel message 1 + and + Alice -->> John: Parallel message 2 + end + `, + {}) + }) +}) From 9290aa2b6156c6507d5bd91a9049d8d31c597676 Mon Sep 17 00:00:00 2001 From: Fabio Spampinato Date: Tue, 4 Jun 2019 03:14:35 +0200 Subject: [PATCH 086/103] =?UTF-8?q?Replaced=20=E2=80=9Cmoment=E2=80=9D=20w?= =?UTF-8?q?ith=20=E2=80=9Cmoment-mini"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 ++- src/diagrams/gantt/ganttDb.js | 2 +- src/logger.js | 2 +- yarn.lock | 11 ++++++++--- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 77dfaae21..da68e89e7 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "graphlibrary": "^2.2.0", "he": "^1.2.0", "lodash": "^4.17.11", - "moment": "^2.23.0", + "moment-mini": "^2.22.1", "scope-css": "^1.2.1" }, "devDependencies": { @@ -62,6 +62,7 @@ "identity-obj-proxy": "^3.0.0", "jest": "^23.6.0", "jison": "^0.4.18", + "moment": "^2.23.0", "node-sass": "^4.11.0", "sass-loader": "^7.1.0", "standard": "^12.0.1", diff --git a/src/diagrams/gantt/ganttDb.js b/src/diagrams/gantt/ganttDb.js index b4e4fda76..4b075f752 100644 --- a/src/diagrams/gantt/ganttDb.js +++ b/src/diagrams/gantt/ganttDb.js @@ -1,4 +1,4 @@ -import moment from 'moment' +import moment from 'moment-mini' import { logger } from '../../logger' let dateFormat = '' diff --git a/src/logger.js b/src/logger.js index adaadf31d..eefaccf34 100644 --- a/src/logger.js +++ b/src/logger.js @@ -1,4 +1,4 @@ -import moment from 'moment' +import moment from 'moment-mini' export const LEVELS = { debug: 1, diff --git a/yarn.lock b/yarn.lock index 8e373dc64..05126cf55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5539,10 +5539,15 @@ mixin-object@^2.0.1: dependencies: minimist "0.0.8" +moment-mini@^2.22.1: + version "2.22.1" + resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.22.1.tgz#bc32d73e43a4505070be6b53494b17623183420d" + integrity sha512-OUCkHOz7ehtNMYuZjNciXUfwTuz8vmF1MTbAy59ebf+ZBYZO5/tZKuChVWCX+uDo+4idJBpGltNfV8st+HwsGw== + moment@^2.23.0: - version "2.23.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225" - integrity sha512-3IE39bHVqFbWWaPOMHZF98Q9c3LDKGTmypMiTM2QygGXXElkFWIH7GxfmlwmY2vwa+wmNsoYZmG2iusf1ZjJoA== + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== move-concurrently@^1.0.1: version "1.0.1" From 00be016979c3bc732b488b5095ca2afbd71b8d0f Mon Sep 17 00:00:00 2001 From: Fabio Spampinato Date: Tue, 4 Jun 2019 03:17:14 +0200 Subject: [PATCH 087/103] =?UTF-8?q?Avoiding=20publishing=20the=20=E2=80=9C?= =?UTF-8?q?src=E2=80=9D=20folder=20to=20NPM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index da68e89e7..57d1d68a0 100644 --- a/package.json +++ b/package.json @@ -72,8 +72,7 @@ "yarn-upgrade-all": "^0.5.0" }, "files": [ - "dist", - "src" + "dist" ], "jest": { "moduleNameMapper": { From fef85cf25985bb388aac05b43a6d4f48953ea05c Mon Sep 17 00:00:00 2001 From: Fabio Spampinato Date: Tue, 4 Jun 2019 03:32:56 +0200 Subject: [PATCH 088/103] Importing only specific modules from "lodash" --- package.json | 5 ++++- src/diagrams/git/gitGraphAst.js | 23 +++++++++++++---------- src/diagrams/git/gitGraphRenderer.js | 25 ++++++++++++++++--------- yarn.lock | 15 +++++++++++++++ 4 files changed, 48 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 57d1d68a0..e73b01299 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,10 @@ "dagre-layout": "^0.8.8", "graphlibrary": "^2.2.0", "he": "^1.2.0", - "lodash": "^4.17.11", + "lodash.assign": "^4.2.0", + "lodash.maxby": "^4.6.0", + "lodash.orderby": "^4.6.0", + "lodash.uniqby": "^4.7.0", "moment-mini": "^2.22.1", "scope-css": "^1.2.1" }, diff --git a/src/diagrams/git/gitGraphAst.js b/src/diagrams/git/gitGraphAst.js index e734453b7..f71a15a8c 100644 --- a/src/diagrams/git/gitGraphAst.js +++ b/src/diagrams/git/gitGraphAst.js @@ -1,4 +1,6 @@ -import _ from 'lodash' +import maxBy from 'lodash.maxby' +import orderBy from 'lodash.orderby' +import uniqBy from 'lodash.uniqby' import { logger } from '../../logger' @@ -145,7 +147,7 @@ function upsert (arr, key, newval) { } function prettyPrintCommitHistory (commitArr) { - const commit = _.maxBy(commitArr, 'seq') + const commit = maxBy(commitArr, 'seq') let line = '' commitArr.forEach(function (c) { if (c === commit) { @@ -155,9 +157,9 @@ function prettyPrintCommitHistory (commitArr) { } }) const label = [line, commit.id, commit.seq] - _.each(branches, function (value, key) { - if (value === commit.id) label.push(key) - }) + for (let branch in branches) { + if (branches[branch] === commit.id) label.push(branch) + } logger.debug(label.join(' ')) if (Array.isArray(commit.parent)) { const newCommit = commits[commit.parent[0]] @@ -169,7 +171,7 @@ function prettyPrintCommitHistory (commitArr) { const nextCommit = commits[commit.parent] upsert(commitArr, commit, nextCommit) } - commitArr = _.uniqBy(commitArr, 'id') + commitArr = uniqBy(commitArr, 'id') prettyPrintCommitHistory(commitArr) } @@ -188,9 +190,10 @@ export const clear = function () { } export const getBranchesAsObjArray = function () { - const branchArr = _.map(branches, function (value, key) { - return { 'name': key, 'commit': commits[value] } - }) + const branchArr = [] + for (let branch in branches) { + branchArr.push({ name: branch, commit: commits[branches[branch]] }) + } return branchArr } @@ -201,7 +204,7 @@ export const getCommitsArray = function () { return commits[key] }) commitArr.forEach(function (o) { logger.debug(o.id) }) - return _.orderBy(commitArr, ['seq'], ['desc']) + return orderBy(commitArr, ['seq'], ['desc']) } export const getCurrentBranch = function () { return curBranch } export const getDirection = function () { return direction } diff --git a/src/diagrams/git/gitGraphRenderer.js b/src/diagrams/git/gitGraphRenderer.js index 3ef56478d..79aae45fe 100644 --- a/src/diagrams/git/gitGraphRenderer.js +++ b/src/diagrams/git/gitGraphRenderer.js @@ -1,5 +1,5 @@ -import _ from 'lodash' import * as d3 from 'd3' +import assign from 'lodash.assign' import db from './gitGraphAst' import gitGraphParser from './parser/gitGraph' @@ -160,7 +160,7 @@ function cloneNode (svg, selector) { function renderCommitHistory (svg, commitid, branches, direction) { let commit const numCommits = Object.keys(allCommitsDict).length - if (_.isString(commitid)) { + if (typeof commitid === 'string') { do { commit = allCommitsDict[commitid] logger.debug('in renderCommitHistory', commit.id, commit.seq) @@ -189,7 +189,13 @@ function renderCommitHistory (svg, commitid, branches, direction) { .attr('stroke', config.nodeStrokeColor) .attr('stroke-width', config.nodeStrokeWidth) - const branch = _.find(branches, ['commit', commit]) + let branch + for (let branchName in branches) { + if (branches[branchName].commit === commit) { + branch = branches[branchName] + break + } + } if (branch) { logger.debug('found branch ', branch.name) svg.select('#node-' + commit.id + ' p') @@ -211,7 +217,7 @@ function renderCommitHistory (svg, commitid, branches, direction) { } while (commitid && allCommitsDict[commitid]) } - if (_.isArray(commitid)) { + if (Array.isArray(commitid)) { logger.debug('found merge commmit', commitid) renderCommitHistory(svg, commitid[0], branches, direction) branchNum++ @@ -223,11 +229,11 @@ function renderCommitHistory (svg, commitid, branches, direction) { function renderLines (svg, commit, direction, branchColor) { branchColor = branchColor || 0 while (commit.seq > 0 && !commit.lineDrawn) { - if (_.isString(commit.parent)) { + if (typeof commit.parent === 'string') { svgDrawLineForCommits(svg, commit.id, commit.parent, direction, branchColor) commit.lineDrawn = true commit = allCommitsDict[commit.parent] - } else if (_.isArray(commit.parent)) { + } else if (Array.isArray(commit.parent)) { svgDrawLineForCommits(svg, commit.id, commit.parent[0], direction, branchColor) svgDrawLineForCommits(svg, commit.id, commit.parent[1], direction, branchColor + 1) renderLines(svg, allCommitsDict[commit.parent[1]], direction, branchColor + 1) @@ -246,7 +252,7 @@ export const draw = function (txt, id, ver) { // Parse the graph definition parser.parse(txt + '\n') - config = _.extend(config, apiConfig, db.getOptions()) + config = assign(config, apiConfig, db.getOptions()) logger.debug('effective options', config) const direction = db.getDirection() allCommitsDict = db.getCommits() @@ -259,11 +265,12 @@ export const draw = function (txt, id, ver) { const svg = d3.select(`[id="${id}"]`) svgCreateDefs(svg) branchNum = 1 - _.each(branches, function (v) { + for (let branch in branches) { + const v = branches[branch] renderCommitHistory(svg, v.commit.id, branches, direction) renderLines(svg, v.commit, direction) branchNum++ - }) + } svg.attr('height', function () { if (direction === 'BT') return Object.keys(allCommitsDict).length * config.nodeSpacing return (branches.length + 1) * config.branchOffset diff --git a/yarn.lock b/yarn.lock index 05126cf55..e0acdf892 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5163,11 +5163,21 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" +lodash.maxby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.maxby/-/lodash.maxby-4.6.0.tgz#082240068f3c7a227aa00a8380e4f38cf0786e3d" + integrity sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0= + lodash.mergewith@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ== +lodash.orderby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz#e697f04ce5d78522f54d9338b32b81a3393e4eb3" + integrity sha1-5pfwTOXXhSL1TZM4syuBozk+TrM= + lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" @@ -5203,6 +5213,11 @@ lodash.templatesettings@^3.0.0: lodash._reinterpolate "^3.0.0" lodash.escape "^3.0.0" +lodash.uniqby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" + integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= + lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.3.0, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" From ed3d15501a54b3a1129f4083019fb0f7ad7e49e2 Mon Sep 17 00:00:00 2001 From: Fabio Spampinato Date: Tue, 4 Jun 2019 03:52:01 +0200 Subject: [PATCH 089/103] =?UTF-8?q?Aligned=20=E2=80=9Clodash=E2=80=9D=20ve?= =?UTF-8?q?rsion=20with=20other=20dependencies,=20so=20that=20it=20gets=20?= =?UTF-8?q?deduplicated?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 5 +---- src/diagrams/git/gitGraphAst.js | 10 ++++------ src/diagrams/git/gitGraphRenderer.js | 4 ++-- yarn.lock | 15 --------------- 4 files changed, 7 insertions(+), 27 deletions(-) diff --git a/package.json b/package.json index e73b01299..6e26956a4 100644 --- a/package.json +++ b/package.json @@ -41,10 +41,7 @@ "dagre-layout": "^0.8.8", "graphlibrary": "^2.2.0", "he": "^1.2.0", - "lodash.assign": "^4.2.0", - "lodash.maxby": "^4.6.0", - "lodash.orderby": "^4.6.0", - "lodash.uniqby": "^4.7.0", + "lodash": "^4.17.5", "moment-mini": "^2.22.1", "scope-css": "^1.2.1" }, diff --git a/src/diagrams/git/gitGraphAst.js b/src/diagrams/git/gitGraphAst.js index f71a15a8c..f7338c5ed 100644 --- a/src/diagrams/git/gitGraphAst.js +++ b/src/diagrams/git/gitGraphAst.js @@ -1,6 +1,4 @@ -import maxBy from 'lodash.maxby' -import orderBy from 'lodash.orderby' -import uniqBy from 'lodash.uniqby' +import _ from 'lodash' import { logger } from '../../logger' @@ -147,7 +145,7 @@ function upsert (arr, key, newval) { } function prettyPrintCommitHistory (commitArr) { - const commit = maxBy(commitArr, 'seq') + const commit = _.maxBy(commitArr, 'seq') let line = '' commitArr.forEach(function (c) { if (c === commit) { @@ -171,7 +169,7 @@ function prettyPrintCommitHistory (commitArr) { const nextCommit = commits[commit.parent] upsert(commitArr, commit, nextCommit) } - commitArr = uniqBy(commitArr, 'id') + commitArr = _.uniqBy(commitArr, 'id') prettyPrintCommitHistory(commitArr) } @@ -204,7 +202,7 @@ export const getCommitsArray = function () { return commits[key] }) commitArr.forEach(function (o) { logger.debug(o.id) }) - return orderBy(commitArr, ['seq'], ['desc']) + return _.orderBy(commitArr, ['seq'], ['desc']) } export const getCurrentBranch = function () { return curBranch } export const getDirection = function () { return direction } diff --git a/src/diagrams/git/gitGraphRenderer.js b/src/diagrams/git/gitGraphRenderer.js index 79aae45fe..00f56ed1a 100644 --- a/src/diagrams/git/gitGraphRenderer.js +++ b/src/diagrams/git/gitGraphRenderer.js @@ -1,5 +1,5 @@ import * as d3 from 'd3' -import assign from 'lodash.assign' +import _ from 'lodash' import db from './gitGraphAst' import gitGraphParser from './parser/gitGraph' @@ -252,7 +252,7 @@ export const draw = function (txt, id, ver) { // Parse the graph definition parser.parse(txt + '\n') - config = assign(config, apiConfig, db.getOptions()) + config = _.assign(config, apiConfig, db.getOptions()) logger.debug('effective options', config) const direction = db.getDirection() allCommitsDict = db.getCommits() diff --git a/yarn.lock b/yarn.lock index e0acdf892..05126cf55 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5163,21 +5163,11 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash.maxby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.maxby/-/lodash.maxby-4.6.0.tgz#082240068f3c7a227aa00a8380e4f38cf0786e3d" - integrity sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0= - lodash.mergewith@^4.6.0: version "4.6.1" resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" integrity sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ== -lodash.orderby@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz#e697f04ce5d78522f54d9338b32b81a3393e4eb3" - integrity sha1-5pfwTOXXhSL1TZM4syuBozk+TrM= - lodash.restparam@^3.0.0: version "3.6.1" resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" @@ -5213,11 +5203,6 @@ lodash.templatesettings@^3.0.0: lodash._reinterpolate "^3.0.0" lodash.escape "^3.0.0" -lodash.uniqby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI= - lodash@^4.0.0, lodash@^4.13.1, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.3.0, lodash@~4.17.10: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" From 2c1913af237997aaf7941770461c94a02253e069 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 4 Jun 2019 19:01:24 +0000 Subject: [PATCH 090/103] Bump sshpk from 1.13.1 to 1.16.1 Bumps [sshpk](https://github.com/joyent/node-sshpk) from 1.13.1 to 1.16.1. - [Release notes](https://github.com/joyent/node-sshpk/releases) - [Commits](https://github.com/joyent/node-sshpk/compare/v1.13.1...v1.16.1) --- yarn.lock | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/yarn.lock b/yarn.lock index 81f0cbefa..e504932fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1110,12 +1110,16 @@ asn1.js@^4.0.0: minimalistic-assert "^1.0.0" asn1@~0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + version "0.2.4" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + dependencies: + safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^1.1.1: version "1.4.1" @@ -1415,8 +1419,9 @@ batch@0.6.1: integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bcrypt-pbkdf@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" @@ -2635,6 +2640,7 @@ dagre-layout@^0.8.8: dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" @@ -2941,10 +2947,12 @@ ebnf-parser@0.1.10: resolved "https://registry.yarnpkg.com/ebnf-parser/-/ebnf-parser-0.1.10.tgz#cd1f6ba477c5638c40c97ed9b572db5bab5d8331" ecc-jsbn@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" + safer-buffer "^2.1.0" ee-first@1.1.1: version "1.1.1" @@ -3993,6 +4001,7 @@ get-value@^2.0.3, get-value@^2.0.6: getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" @@ -5563,6 +5572,7 @@ js-yaml@^3.7.0: jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsdom@^11.5.1: version "11.12.0" @@ -8087,7 +8097,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3": +"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -8555,17 +8565,18 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" sshpk@^1.7.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + version "1.16.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" - dashdash "^1.12.0" - getpass "^0.1.1" - optionalDependencies: 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@^6.0.0: @@ -9100,6 +9111,7 @@ tunnel-agent@^0.6.0: tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" From c79fcf7ad5dfff972cb420e78933bf04ba1408e1 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Fri, 7 Jun 2019 15:23:24 +0200 Subject: [PATCH 091/103] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 416bb6543..d69181241 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ Ever wanted to simplify documentation and avoid heavy tools like Visio when expl This is why mermaid was born, a simple markdown-like script language for generating charts from text via javascript. +**Mermaid was nomiated and won the JS Open Source Awards (2019) in the catory The most existing use of technology!!! Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintin the project.** ### Flowchart From e2dba9e9b8fe35676f3af9a9efc816f29988eaf0 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sat, 8 Jun 2019 09:09:44 +0200 Subject: [PATCH 092/103] Added job listing --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index d69181241..f49363d9f 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,22 @@ This is why mermaid was born, a simple markdown-like script language for generat **Mermaid was nomiated and won the JS Open Source Awards (2019) in the catory The most existing use of technology!!! Thanks to all involved, people committing pull requests, people answering questions and special thanks to Tyler Long who is helping me maintin the project.** +### Are you someone who wants to take an active role in improving mermaid? + +Look at the list of areas we need help with: + +* Development - help solving issues +* Development - work with the build environment, with JS we keep updating the tools we use +* Development - new diagram types +* Development - Handling Pull Requests +* Test - testing in connection with realeases, regression testing +* Test - verification of fixed issues +* Test - test of pull requests and verification testing +* Release management - more of a PL role, make roadmap for the project, coordinating the work +* Release management - classification and monitoring of incoming issues + +If you think lending a hand to one or more of these areas would be fun, please send an email tp knsv@sveido.com! + ### Flowchart ``` From 2f7da8b5770611d4887777007c5ced02b84c98b9 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sun, 9 Jun 2019 06:49:40 -0700 Subject: [PATCH 093/103] Added test of usage via webpack to the e2e tests --- e2e/platform/bundle-test.js | 10 ++++++++ e2e/platform/webpackUsage.html | 23 ++++++++++++++++++ ...-render-a-simple-class-diagrams-1-snap.png | Bin 39930 -> 36445 bytes ...der-a-flowchart-full-of-circles-1-snap.png | Bin 32370 -> 30158 bytes ...ender-a-flowchart-full-of-icons-1-snap.png | Bin 39073 -> 37527 bytes ...ing-sames-and-class-definitoins-1-snap.png | Bin 27458 -> 25117 bytes ...hould-render-a-simple-flowchart-1-snap.png | Bin 21645 -> 20537 bytes ...mple-flowchart-with-line-breaks-1-snap.png | Bin 25110 -> 22269 bytes ...-should-render-styled-subgraphs-1-snap.png | Bin 23784 -> 24238 bytes ...lowcart-should-render-subgraphs-1-snap.png | Bin 5946 -> 5789 bytes ...ram-should-render-a-gantt-chart-1-snap.png | Bin 48472 -> 41827 bytes ...nder-a-simple-sequence-diagrams-1-snap.png | Bin 47514 -> 39241 bytes ...nder-a-simple-sequence-diagrams-1-snap.png | Bin 0 -> 15052 bytes e2e/spec/webpackUsage.spec.js | 16 ++++++++++++ package.json | 1 + webpack.config.e2e.js | 3 ++- 16 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 e2e/platform/bundle-test.js create mode 100644 e2e/platform/webpackUsage.html create mode 100644 e2e/spec/__image_snapshots__/webpack-usage-spec-js-sequencediagram-should-render-a-simple-sequence-diagrams-1-snap.png create mode 100644 e2e/spec/webpackUsage.spec.js diff --git a/e2e/platform/bundle-test.js b/e2e/platform/bundle-test.js new file mode 100644 index 000000000..29fe5955b --- /dev/null +++ b/e2e/platform/bundle-test.js @@ -0,0 +1,10 @@ +import mermaid from '../../dist/mermaid.core' + +mermaid.initialize({ + theme: 'forest', + gantt: { axisFormatter: [ + ['%Y-%m-%d', (d) => { + return d.getDay() === 1 + }] + ] } +}) diff --git a/e2e/platform/webpackUsage.html b/e2e/platform/webpackUsage.html new file mode 100644 index 000000000..32123d902 --- /dev/null +++ b/e2e/platform/webpackUsage.html @@ -0,0 +1,23 @@ + + + + +
+graph LR +A-->B +
+
+gantt +title A Gantt Diagram +dateFormat YYYY-MM-DD +section Section +A task :a1, 2014-01-01, 30d +Another task :after a1 , 20d +section Another +Task in sec :2014-01-12 , 12d +another task : 24d +
+ + + + \ No newline at end of file diff --git a/e2e/spec/__image_snapshots__/class-diagram-spec-js-sequencediagram-should-render-a-simple-class-diagrams-1-snap.png b/e2e/spec/__image_snapshots__/class-diagram-spec-js-sequencediagram-should-render-a-simple-class-diagrams-1-snap.png index 7beeb0245167d5b33f5018e2029d021895386a91..e46a768563e7482d45bc51c5ef6c9990205837a4 100644 GIT binary patch literal 36445 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 D4k^OK diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-circles-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-circles-1-snap.png index c6d41377d7060666583b89583d6ebeaa6a38d146..2bd733c15caab9f5ac93864593b4bf60ae4190d3 100644 GIT binary patch literal 30158 zcmb6BWmuM7)Gi7GN(e{^NQZ$mf=GuV-3=n$-Hm`sh;)aPfRqRbh%`udcS}iwbi*F^ zv)0=0{;`iQeyPNL&1=ROXH7pT%1hkEB*R2PLb@v@DXNTwbc+TF2}KhF4ZiZ(^@Bb9 zf$XF#A%axYN3o8CM1v$H`clehk`C;$BheMfuAx|__={je58=LrAia$@^BOFQ^Cu@|3=}vYZ_)bWiD1zBuc1r3q5tTp2w%|HCI_4D?nv8vaJz>q|*1rBcK;(UG`FVoC>aAgW zcb&jyqb&vx`JM5(IeA-K*5caz;F>H9+8J5QNaV%8y~z~3j{f;7xzQ;pTRS}P!lLN~ zd3k^KSGtD?9<)4tf*O=Ox$PQG!7Cymflf+Fy5`L1CP4r{r~S7pj){|ti^J)!teXVB zNaZI&8e3IOO-WZ*F8H}ebad7H;V^51Z1Smm0lB$PVxB0tx)IX)lS?8mq7@bv!h>&9 zQ&V$raLiCjAlAVR9fv}{Cy~9SwY7>r7%wwj3VEoXRkv2s$43Z0QB*>r=D$x|;L`KG zdJbRl_xG_paK~g8PD6(rw=8<9|;Q1&N}$p7x267*e|u+{r2tKQ?js~@FnHB zxw)UeepT}a%G~|fKB2OoGNVwae$d5K3^O}uauIl!T(iuy*Lyku?^OaJ&DEcgd=*ty z)u(oI0w4VRW?_^Sm2aG5uC=m{~oY^GWc`h_DB5)zzh zCawQ=vo$RDa?d*(@zILzWHUqwC8vTj|ICYi!Ez4oemn4a2DfyS~3JBjL79sab-x__~HCatJet zp6-22DtvR+Ut`^1zkss6z5O*iyNV$RFH=|&c}Swi^qE8i6^!Jm+m3dubau_dI}6In z&KR^*5^vs+&%Zsm3j^IQ73Aknj*P^klTG}SV=RK95rgs-cX@TyX=jG_Z(pj6tZXPe zbb&)nO)WMyR&o&5_?~!Hl%Ut~57XYytkZ70b8^zs!Lk}`EqISnJB$W4j}W`@$B(C` zJ&6mj8!KDt#3Ww4K-$~eLp=PvXVzjv@9kbI>vY5Az6>#&ZfHY8Lvr*TT5U1RNL@a! zW9G+?ANM44N5Dt8wd30kS^gX{aDCS_D|N05n+U#ndUnQcIYKWUPVq@TcXO@}^WR;? zEM?rrC*l}`tKSL=cwIIK3)BlYO0Sx6g_l#^=3Zt*Har%=ehl-esHR3F5l&$+Q|Ta^ z#L)^{j9e|QJj?E9#*y;F25}t*#euo8#zZOIyyuRKH2&^CySk)d`*sXv%cM?!PEMXI zx4K_kfBua;<__)oXF?i5`^AvzH*&UB0|{PFZ5H(;OJ3Fpu!C1-K> z;>94REg;9DtT^dm@LA8D3Op)Yhgnf5eT6 zk8f-FbPu*GHWG1JD!E3le`^OB8}4xC?u)FS_(bEqwr@lZKg^=hP#XzmsNUUD@6616 zurpKjN?bh9X}a8MJTE`rpf82jR+i3xjY;|4rGI!h4pe{-%?tW-wH`X^Hbl+IgftO! zs6qDGt}&@^#^olyV{YNp)GT2$T9$uUbEnj;XLOVB$oudC<@4vyiM&oZPSZ)x%oGbo z1DPxELRW`&q0~3G^Ye$#mZ*K3i+!*9Z=-)y)Yg{N)#XY{OB0o7kBsLkP}pBtNu?3K z5il^o7dSH}3kWz{I|{4)C$jqX!p6qta$TWefz9`|gwHjqe40QP|L&!q)6L?d2*Ex6 z`$NnuEOZpW`k8Do9xGr2~)F5Xq3sL zFOR~AqldjoJB(_mf6^PMs}r-cvm@#sdlKHFL#N&jwS|Sn!oP*)+qZB3JD#?KDn_Eu zWj7})BZJjn=y_*t>cQBI^&=jhSY9W-3)XbrnC7McrYeUezPY*jnQArhx0jl+UDQQ< zf0rr#_Hy4)A%(PxnEu6ym42*lg`&6iyv;>{nN3Jt_f?r`;4II=s$_AS-#)!LHkPn2O|ZMl zX*H40g%PP=-~fC2mre8hyq@V7LPNZmmFiuG>q`&Ut%;YGmW*X){jP2l3*xJNsY`yi zLi)4SE;{w$l>BYgE}NR=mPDR)_1!{N(5PMh5i|1# zUMJ##p`o6Y?)ehOm2PuRvMpEg{QPGrI;atp{J($MB%kfn2v}NvGq*qYQ{EyQV>z~#*m)_wP;~TC&nI))kWo@nYF9gVR@oeFj2fGo8geAfB+6p!@u2Nw zNBF2}XtXahes@VVoLu$TR@@^c?IgFFZ?nc&+b?6Q z*OX9H#PIRCUS8GHZw*c$eP$}~=9l$v)3TU&u4J}`OaHy47-Sxo4W8lL{*@56v5Z0U zPZ88I_V)DXI9m^BXfW#P@zw+|x5uL^FQ;%Bc*QWKx4I08b<`ElnOkg+{TiNt1t{`s{P7 zv44|h>3aw1H#5EK{&;olTkY?b|Nd3h(dn)AIKaTba6iN`?3gY!!NR)Fdf9p6hb`j! zlh_-5+Xn4{k>J0>Luc13g3OA(RDKCnRYC*WD8kibj1ccycFkGJ{t=ZT3cpcUehocu zX-&=Bre#U1={F0RNzDsie*R2!T9xOpnL1>>xYG2_{-m_0CE$&=^Wu=2AFxN3c$j1O zjr#=VhDgx+;&!v!ImF3Kj)(kpy8YKz7fGBJ1R?jGaqKrE+H;29jT!yBY^1g=(ynR> z!hiUcWc#6*SU^gZYWSpe+k*X<;q`%aXLomJ;>Q45CbnOBp*<|u3LCX_al=j+GUr5q z$V;B2q$CO+`*$Px>$PWH4R~$1sFHSV`X**(E~Nd3Dn>uzS-syY2%Wv_=rFIX^L|S5 zIg#UW-F&;ghu6gq=k){s05SWu0V-AG3HjHnxyvJd)rcY z`-h-7J$_7t1pite&Qo`-U@LZEbB(XsBq` z`uSeD>voN*np&yPmG8mWn}*DvhkROv@zK#uyI8u#7j61i?gA>WUQxn%!Q!$xpWsC+ z$jJ$=tP~|9-~1FB3WLtIu;m(>nrec#-`nrD+aJ|P=WExe6s)FRqwrHxw2w+m92^-@ z#mB>InJlaNn(G$MR?CkjlRIos?y9Kj9B}7e+HY7CQa_Wj$rPg>baJ1&uCMrO1a@j> zSt)VQU%sSmX?<+S=^Cz3kVl`DmF4&4i#{1SIR;k9T4{QEI`tGfcVwl%dVxuE;N9<< zB_Fxs81a4{(T82r)N(T(w5hA(|49y0BxmRPt!a9qNGFmhM?&$dVF_WIwX6z3o$+oLM{G>0M?`5kO0G?`WZ*LFF zZ_$sBjcsYT>~7F6=b`W0vKfyV`4Lw}@R65CJxnYhm~&2^~(9im#2GIbEr&o zbb+b-Zqc!^%M|^CD%}ZeW>E40>H7grOLJem0~DsCzyAp@Z&k!SEL!c1X`>fiSaRmI zKi6urF9wz@D~;$3{V^N9WGMIC_4ywJX}jx`I})mE*WRpxDk`azjQ@R8?&`J6L^PVu-4%Tj#~X4TJ!Q)ZWn%>JFQJ^~D zy?y((vqN*OXK{C)H}Q1-=Bgi#;rrlV$2qUviW51rbEDBww@O!*^w3b$KAYCofIQW2 zAN!bx#>U$8uJBm?^JIA7<5M$l5_lny~6>OJ(IW!})p}*~EXhEz1KRN*vE7EWy@hcUXL6 z7QVRHew*iH3xKaLX6xbcCBy4^Pk!jH%xQCCwUR&2}&^|t% z9u!1he|`RJaj6|9P*h4P<5{eURT%;8 zNfg^PS#ue1CI34($gQs@7H&Ygyt?)8__&G<7#fY9PgR;!OipwnPg-Usihy99xt*O^ zlm8PEZq_@I#F6hG2@6yEHU867d4>rfz+tkIr<~yZI0cHC@nq*=Bx&Toq$u|3+ zHZz@S=TAdJ%Ie=W2bV%zU29S!gs&4}`z9bE<}o3m9b^X`d^L={M9*0iWi2gPK>o0l z^ZhiL7d~7OMzQg_4R(PMwYB#EaKWgJ+rwE%u;rNF96zXWwQ>3NNL4jf@SmpJ4W5{I z_@B$O+6&uVd!C@6Aj6}L=OkfhT3Vrf%vDtqq|X`qCQ(pQv3R`?dRKL{bQu}Dl7xLp zKjQ9Y7Z#54su_xj@j5u%QPr4lwB`cLl*HrUm_Quq<@D%D?hj9w)fazZCRTfxIy)7P zkMoIHp}Te0?ACAYkX%V?iL@wwQD!2ETf1gD&D@p!%=sxO2t(-l)F__ijkvL~am9%m zV_fa^`Q~@MhO~+~&k*=F(Cpt)4h#YG*a$IA>MVp4zGz~^lmaeT11XE0f6Vm(=k z`VN$%p`jrWC8a1PLrhvvi;4R*hVEURod!@8cET52mHjbj(Z1!Tc?RFPNB6_$$`klt zb)6n?dN=_~({>H0G!Gy8!9h{d(b@i%ClW-p;fkE8%J;>quDs}i zAg};yU*Dm>_2Iu4WQ3*y5G~FR9oKPts@!(>J{g&`rzc;H>o$u1N>>~OpK}nXB^qKx zB8M+3+TZ8Ka(fFe-C%^K@p* ziMjgH(xKO(h>hj%e|vFh>4G+Y4eN<~3eD4}kzc<)f)4So{_HQgX@44vSP-7!Z$A4! zNIpJ3v$}#;bHxAtmmXluK|niWta+ctjgrq9qg-n?%O~5!!~}M#qL$W%HPNR}pBxON z_jq8d@Yw%($60go?!Oh^0U-sn7eBQEbr&ng1eh74axE!2xfPJ<+&w(lEr!1ONHY3Y zf^;{}#K;H?FygUHJRSkT(DoGt4mzkmh)1ZYtuTvcW@c(9svnM|33?@RT15A}9ewrR zPObj@ne3O{d>_;pIFRnk+Y0GIVd@3&s{vORC(mqWcmU_ZJL4^~GQ8L^;7FRNabt6E zKCEwSIQMLO(_)_bf*!Iid#RcehBG_mvD=P>g5*7i_@V}S}LFYBREQtuymLPnn2m#!4?pf)|nC!Ju z$om*|q+hO8K;f!%SVDt2bcf^lM!cFoy=qMe$i(^4=2~l#o(Js;CC@KPIr|IwJ**@0g3<5~ z$b{y3_U|l%Si`-xCfF%(+8?qZl&~1U`dV+^q=pb<(rQa!M%r>D$!<+oL`+Of=-yTI zjRh(J352`BBxB-$=%f^@c{l~2|n$WT=MLKoJ>#~O@r6Whl^@+(?bNxV!9!~p!z)P|YLQMXJK|Yk` z884+412;vNVUdEtz)?o(*WPm3Xt=njS#9naiq-sb^GwXl%S{1T-?hpyQ{_(vre{;_ zvr0<|08XeV2#!WD1d!-{MOx3OC;4(s&uusN6}nQv=tlI#F0NJ~aY*apucdTer$7** zLF4u+Z_p~F0yjcDD+6fCe7M{GvQ%_*G?f)|3>XypPY1@v#I3BDU^lvZc_DOOM<*w# z)cC&s@mhtR%0ILohMWVu6pAWi(wCx?d~9*kj+~>KdHKKa$yjvMbh1mTDTVbgs8?Xk zSu@5rCrgabLE(V{HvFHU%c9kiEt7zOh2>>@!a^&$3sN+e8+u-U3U5qHizq0%!piFE z;!r4o*E_q#()JS#YyA54YyV>YhAL~YLq+9TBLAkCNLJnX*0oqar+URbf^W`NOp;=s zNL9&dFK0Av-*wrhBd4oNI(-Ca)*&Ab_0sO{P0YQRx7TN@-*xLggMj+Xq>E5Ilw>gC zP5=qjS0oSY*RNj#k`^NW!g}6zU+-;WFcFjS)U3~97w_SlL-n1RQUZa+g;_d(tLJL) z#G*$uE#9b-D|esaWRtN8mrrwG!$bK^U-4%>!MRe;fqe^a(e_QPfXXwuW_aHRa5A$_ zwW?_$VP=F>ZeaVro@f1dL`1E*=|0jrI;o)W@Cj=|t<64NlVGd;hXTrcc76REqAf2* z0jQUSV@2(AN((YOZf)-yySi2|GTc|#!$IA4A z{SVt&U;B$=mLk1|F3|dToy~Dq`&SV#+2^F@L{cU>pn2hsTZ2~u=xet?mF=kao~CE5 z4<0n9;p59u*tePZCyWp@l?I6n4HwTY4{mVFCR;k9N|2UUQva+CUI7q_v#UQ#`TW^( zanVOpBd@YD^3R{X_^hEJLuWp=Rc3c`?rXNVIPT7_DXD18t9D$p}AffN_> z=uzmato7^4pI#AHMo``QmXh9ByPwg|aG)8V?97Hz@)H}y5D`jqQl*afY;0NqjJY*l zte0IkE32x?xjBBrZCdu}&!4B)>*?2NX6ZWOpb)!mokr)Y@YhU3d3zrn{XjllsL}sU zjAH)zU-qk`;$0ODjpps?ilDHtRe1G?krC29it(Jg3^JI40QVA@*}8Q4cQ=aw3Q@A0r~z-oKyK>p9NVU5bx4gvZ z3hw@lQ@;cB5=2)+Ae?_BpKqO^mCnp)|L3ugG>>7i)&7R|(>qh;+Mz;hcy;%kq{sy2!Zl1lXCN84j!qHT4kr_6J6jqxAMSE+RR-%*H6O>Kogo*K0Y9PiG*G&kn~66)!FFNRL;F(>ED83`C7 zejiVopP1N>e!c5^eUN_k#}C)t-+tEf;rDk4J5G6B#ceAO|~XJjf{^E4JfW&&J7P2bX#36 z$0#@)uK57HMl4Fc>goA;RE(4VyLU9Ohyx=dFWgUYpUjn)KL?ZE`{wv@oV1v`I}aeA zywO`rhem+6mseJzl9D{;H`d9*{sZPud0j^v!R~SgJ z2m{2yp#(f5rn`5Uh40(`pDe)Lk+HF^(8spNO;~L9%N_WDAG95Bq_d;-Zq9K5=N$}6 z+;kScF@YXE2$CJ>aWGgIwT1QfC-n4RyM5d~)+EW=ATjG*KhP-BZknF{SmksdpM*r# zaPc-UUz{xW~b&Q1ypg}eKy_a>W|sOaALrmqAj zn_!5OK9Q$z6*>{mN@GwN;_>ENy@;9VYtK>6Pl+hYYHkW69|xh!WMd?^%B5hde*Ch1 zH>9oYoOL%jCG=EwBL^C0M_(TuE$w?CW;G1ic(1yDSKem#7Znx#_cz%tIxbGk#3UPAara48 zRn>pgiv4zx%^eFnyVYTZn*?}G|Bn(5`^)SIwJdMcQt0L_CA=7Xad2?(rIFEU<#%wy zo_U{Z*Pj|vl7+>CcLs~*x_ut}^=l^~q4sUQkk}eRVJ&YquFRQ0}e*S@hS&H;hvJ~xYVK?32Fy4Z__&~^q85E6{mc7_GqO4&L zz8Vy{#K<0)b5K~^e!ZK?R{aKjXsGSd0oa87;j&IPCK=9nKp zS;c@dEh-xN=Wnm_s*^8h|IU1r<>jNyI_CmU6sR7v?INtz!A)`iW>{#i?sdo4brk8m zNoAoSA~M14u|M%%u;-yVt#{y|fLSl`JR$?XjfJIcH^M6vI^)L1H)H?-y}+iMPWL*& zjD;mNapqGnG$i10SbU0%EbLr}iHS-3%n2QwSzwW$b!zHCR$}+|L<3!AsUzwN4*2kd z<}RWxZPt%#LdPh!gP00A?5OB8p_=ZcGj?HNU-5{DN;@w-vS+5)NJKNCNlEhm)QWk zSsKW7B=wpe@62wN5{;m~J)SfZIGJ(kQ~TNad#_R~h>&LI32Mi`r;0fXHrCe8#1Bo& zCSQjhp4?^|FVa~8LJX)4MWLTMEhab^lU1kMztzy7EtIsc=z~a5S`^CH^ckI(I%s(( zg@Bm#OEld#@^c|RB+#-%NDHE+`G-D?qC!c0(x3jb~1dRy-O}X9dyT7V6)YSHdWY}C7 z6#emLAEHVM!+g*^dlmzBV+ZDj_ixMcQimn+IiCv~n9hiS=?5*gZi|9FUQWQ5Kw!-qkc|LQE#fid%hf+w$GR$eqV_)o`Fl6@GhiS={RSE)GGTxT5{R+!m-U!LBjz4i0-l>KA#OAv2> zE5p|0%{>ka3v+p`F$0TWfACjMy-0g~#&xBO2!;nP%2L36UHeXl0FrMoycmdhI05M* z{W2$WbaVt%TlIPkmqX9{hzMbozkE5XC%bI`og}ZgIJc-Md}>N-V`JlKl58J?!Oea` z!&4wH2=tnd8;u3Z8|(^r2m>1%*gYR7CNvQ?9X9sX@Dhlr2(Ar7krEYMwKllVru+5# zcWgE`wj>O(AgV}|marWh#fVRzqL_XP{sh-kSw)4q(zB3c!c)Z`f@bhgNN8l$*Qdb< zAl!22?%nNuB0Ri5P0OG@7Ukr$P4W#@wMm2O$fS zkvyfZxw$8u4*nz?Uy(?WAQm7aCWa~#&m4ukF^foUNz2H947+`71Lm=}X${0@p!mEOoC){L~?%noZa%=o|QlZ%4%q(oq3Vy7x8a=m= z&>FFiHDk9R8+g~vYy<=ynDrtBQ^en(&MzU{x_9r8O3TU^n3;_SGsQwFcuR4IvDgp6 zS^3=o%8Dzb8NRDC<>%+`gg-d{-ROsIVQx;t$oNf0gOS$Xo(L#-ic&#s?F?_Sy0$ij zmQ6p}VzMk9A^;&Rjfoims8||cga`z$0K6IlWnuLs6v4Iyqv{24msKbN%-WTB2pOoI z^eK=INJs_9dhqx|^CILZ{D#*Qw$qoR2E_%WMm!+3C+zqp!tK|1F?@*I6L4F zVbHc9jTt!Tvrl{0>OqyOu$^6m$;_>+OavqMpYL`5&CC4Db(f&)0r`3pJHux&_&0^|~R{xtdlsKdEPdJg*xy8hp))iftWco6TF zrnee;dEBxcgqqrO%m5TPZ06<|mM$kd1=-oCanhjJWy4=m`-~LjShE!0X>HTE zrhMOF)t14GeEA1h5JKr(=}xHO51zK3uTKRux;nE7nZ}lg*DS6@dR+KatDjNteDph? zHqA8Rbia_139?U3w^bp$)wJ9hlLWaHYTrwCKqfok!@I#DA>i=EExv-^SJ?Q$qxj84 zdvZzf8=>Zu*PORpP+BC4ab!?%@M0ME+#h%`LSo`-e))zj2tGlj-U8_F0Q4erIJ6o+Z*zI04Q)m+8KfK?`g8&V25$lUOn%#K>$B)TS5d@ zf0F(-_|?Z_`|Gz_1ry|zWDE?D z0l9q5>3hUvg$qZ5-H2{rYU+df=0a_qcvh>S1sFXKXbmVpOfu_9yn~d&=hBn3vh(7^ z%U8%&n;=)7QX==j7--MQ)n!i-#i~(_cg=^*aelM;{iCC$QAh{`&;}+l??y&DBf7y^5wT03$Fm%ET z%i7qmc-HBv``?Gx)$rgM5dHsqxadpw6pgU1;?dmn z&FL!eG6(_R0kI`RCcbZ)Ayv46NkAYNB8ZUIK>9Ih4b8{Ws(|;cd-_2MD*8vn*8lZO z9VSEAIcmJ73gQ+ZYeC#X|EY88A38xn${W1#vwrM z35kdt_7=s|i*>`qvpf!QZmBvrutT{tga9P;27eOcEmz3%{WP*IGb+cKkKm3If3J0? zWJyrzTcE;YIz-Aq19{(wF6I-QA$S{v{{zTEM@tgkhI*>&A({}wi@?O396H1~1WlNf z-O#^g>9Fg6>w%Cc`d^Q+WCDGK^0q|RJnpMH)WR-#=ca!itRQv1y_Jo0#$GTg4Ym(N zko(l5A)x_g2?T8(J$Qgp=&El*j0=DiuN+u?W>ywZN(Z-CDqcw5!l?v}yBhM?hIou@ zoEdvVnK2BaC9XVA$9_ifSgaLe)_WY7LhdIfT~cfk|7Ax<#!aG5cK(dCqEFOat1?$Dz9u1aE4S(io8X?UqZ3_zq$lMr15bxHt^o#$Ab|PLgG8$zW z-LDF%s^WL$iC)%V5QN;Xudm@WEUc~~V#{Y|XB7Odp@^8ZyVu!(rd8w2->G48zsBF- zJLLg9W@ZjezuGc;vC7j1p_rxh^>yuOqaWHBBj!Z61FQzk(e?KBXwdxLL&`!?M@J5t zD?|ffxxqfPu(dS>D6kXGx7EQ}`)UT_=y$NNmXhu24UV@aZ@G%?!5#?}&myE23DTVe zc703X0UVo2&?KPlLQRzbS)$?QYJTsd@Fh90UE!;B?#mUn&5r(t-<>fM9;>OoNc!FJ zch{WLz&@|t@9Mw!Zg&P6jL@e~OQ1tOerS~OETq8~2}vS+E4QR1EgT2S!lI1F=aPn& z)&NxAwoI`C9=DxGY_&h)A4+iS{TtX@jToD23m)EgU{q3AtNS=yvgK&p>sAL|iNk`AcD882ql~&WNIY2?D@? zY5bfujcIwj;ri&-{F}u=3Z8#^yRW5aQ9GXgSz2la+inulK>&ylR{3nyPE1TpGkB&m zl(*Kj-`9Qlf|ND5wnHzNIcN@suf1C+6$q7@%*1Z(_W29{NJcH6s~3zGl3rh~3LiA0 zQ~x`cxshxu6aG#;GH2WNe@le~K%o{vHIM@3?r+cQck-)Zum_=|<5SF3ecAl~n2NdX zB+7aA|1}TO)h*+`S*VBnuk}84#{a0LDk=e;BWN#7R^&upJ*@O7i#=F9z_@$2-Lf2V za3YTTxJEY+P~-JHbZ)3ci^v?c1kj2&RvbwX0BIf{PXN#h393&(Y=|jtO@aUpX#qMe zu6SIb(|5pO`0o!6Tb9@EwUHx?_@6&HK~-hL+7b+WBStsH@*=(0HTz`&Sz|{YerV{2 zpaEk*$XbQyaojBCoQ_&EKUg6aITvLdIiZ=Y}_DDd<4ZQRfX6DXrV)8HV$5p!@$p?a3w zo5JIO0%Z@|QbKHO zWO{nUtSw~mUaRZfH^k#}+o2fXMO)U*&Td^^F(_lCDmc3h zH#gC#sbX;Ksi>$R^|`o0v4H05nT-p`3D9q0XbEpjA zkitAdLJyXId^XY$I2|&~(J?WQ5?C9@7740<;y2*?G!Z=mmk=8I1GpChhGm-PMn3vn zPDx1=Xb!q>_r#D~x2IY`N603+Vqf3n&nqaoN4RjlC$PAe^u}hQhgdvpeU60F0+}=i zE(N_VGrju}hcXjL{^8-FPrp7#Ql;mSWrObHZ^gxk5kN``M&Pm6dLO;@ogC1JtK9PP zxUDT~0PRc~MQ_a$O8)*e<#_hY<7iX^nVy~=LK=#}xc7fdZ@)bp^d-P&M*(YQe}&Bv zgg_9+b=?hE0PK5R9thtE!&blk_fc<}uhD3%iXP@W-ASVWCa5Q+Gl2ckGQywGb-Rjy}j73=qoRPg@(jUs&kzqK2S)fvZ&bDTuCV@)Gzt@ z$mLpoV2grc4Y$|A+W+P2$Plvxb714(7KRHbKHn|?6X zkieEpJm9V5RskCK;w4=FKtcJSS-Q-NLp392WAmIzqrRyx^$j==i%DkjKg{~M5qQ1j zo(d3&cby|`iR`KU5MQIAp$U>p7WzA?G4Cqm3v3H&_R0BCEQ;t;i=jtA22LTP5fLpg7|pS^G#9^bAw=^!PP->cXx+)LsxHd zHVL*Tgd3}6O$|882f-z)O&=KecM*QD#GJt9+Ya~oIw5%$JZt;#xeJ;^#18tOiIQ7j z5ImwYbxv6Q)1HL1`iSKDb2s3AO$+t|U|ribIIcVZX&ua3M#LEP^`C;ry5-9M%(Uk* z7uS18Z1SZ`d~AL{Xs&;@f4_mv(Nh8w5BUWIL%#h|uh(HkBN8-Qn1ub&jbHxzuIzW1b9P-;3xDks$i)&Bj>;M--ID!u<(jD9g z!2Et~ZG4Q3wkSA;hT;d?70Ga|K(p5UIh1n{^B*u+aG;{zf8RHsP(z3*mJqZ3=Z_)| z#ROvIJiW6HTrJB#j~4Jh88}-Ei9lq4^`EYRs6dmEv4F6?#tO+B(l48`x~~M*cuuIO z|A1`q!>FAY^iD-aH64z=q_TIw{ePHr2eS4z)+Ox_qq{{6^6rT}Lq>iNy$E2)7|_agp~zg5A1eF$I|W)dZ@F0Zy@Fa3KJp~x3;zuc6Z{3!7WJj zI_N?^wilRd>m-rP;ayUHp~^#NJRsVO@8J$r*JyzT_(U!Vf4l4dL5A>$>$VmrS+CK2 zLa!-2;oarsTM-cvNqKohl*&6&8RR5IHEnHKsCAI!r+fT(Wsv{vE+}hequc06!i5chrGn>vH#DG|!Xq%Tus{iY zz{~5Q$ZGuJOlSHRdQsbiZoaaD|jni>xp)eaAO&h-gwcd(7(`|mcP6W7Z+!fJrpqU z25k`1D)r4CHLxlpxOFBtRRLG5potus7vlRhzJP;=ii-N^$rDKLg{G(LDHvhV`jZ51 zY;N*`kbsPg4BGO&^6J%lzNV(890pCd4Gj&ets5Xk3aUP9@^>-kQr8KK@9V#Z<`Qzh z;b5aZ1fB=I8@3yGfh$MjdhOG1svS=Pm9uG{iiYJXoaA1`TezcFsr!}B|E+HDtRi&6 zA{>i%TK*#i(tJ(b?p||ll8`qai|6J;yJ=VwSbE5qB7%S8y4OD6Uh&UP-8^CV-L5xx zEP}zVSf0G){BxRmQwZ`bav-Z)Sgb?BQ{NVOZF038k`^Sq98vl=_&P#fpyYLSS9OH2 z)t{cGOTCIz&R#oK`zN7f73(i1tb3msZX>Fx#T^s?P=S;(bbwExqxz-%r`vYElbdst znQmWEjU!8^DPnakUgawpR2=P=u*8EI&OEF8rrFjFaDrlfHFt7+>(Kk=h2PDK#%GoP zCkycEf`^@2G9N{yERH>FosyVd-3bu?x6(aee)h`o-xpUK}Y*#R;3xw6y?{$(!^txPA`R0y4*PAawNh_KJ#& z^M%0ZgM9iQAq+Q~QAL}V^UE|evS?;Uss)3=T?QsCYjeIlci;~58%T4R1el6Qc)&Gv zciFq6rcF(%xBaW@C7+RC>uB*n7Gq&yA(e$9Dhg&);9Op`A*P<*FLu;WB6}y9u5UrS zP-)0Ew)zdc3W3!}N)zrkU9G=!)R{_L1$4QqKLXSG155`oKou1~NEQ;4L!#pmNDHjI zMQd;B7+>tfezxG6IgoHrMVD~&U&rwL9 z+ur$OsK359`7c%ZSuYD7$x6WCmtCQn*_W>k$UjM?34VV3r3TL8WR(*ZB&s05W7HMP zi4Zf}A{4;bxA=d#FnjC&4HTYj>dil4cMuQ~sy8-fUOs8K;Rg`u+dMCf^bW4q?(diG z9Uea7;|nC`E;@h<3MZ#Lh&&hQ1vkE4Zd61osk;}~Dz_Bh(QstZW1=vMXRBpK1(Cht z^pon*e^Qc*J)2r~qU*goTPHtX-d}aGeCaf%v+2C+*e zGn4NyEHU30Ate*`8M3*6tE}rf^P7kPu(Q9GNw}^WUVW<~-$yK$CZL0lf8r~x^y*dJ zw}N5|(DN(2zvt&mK?NS@X1m#vsIW568$aGo-#`pZ(CZfy1B2R~JD+d`h9exRwC4sY zNhy_-l)$AJ1{QnRa!;XSzG1Z(H^4&&C$d_r;z1y4DV@{(*EYlf;}P6nDz0e`(E);>wT}I!(le*XaKW?aKY8?(X3_$0-1DmPG&;z zK}@W5?fi)GH8ZjIg-w#revE|6{<0nsKK|o~_N>4_&$EjQtF4JUrIXg4$CC*wt~KSB zqZg%GHv1FO30=@t%DI@}wXnfXfl>H(CG^;rpzGn4F`oX+*{>e5|2ak1Lb@E;}|@AgN{ z?&P*prx)nd{K|uzugc8G7@x~RlZW?yC+6;j`^!d#T`wCar53Y=-c#Luu-`@kJ`ncOULXqFn**53nhD8B(ursv{PS7*vyxhtx3UF12F!hiE+ z#x~;n*xcDUV!iG+oGMiN)JboSdFR#E&RSZ3*O2NI8y)3+?y=A5eKgv*JNEL%C-BWp zJ1aA@qNitIj;x0)+*;Gn)~?Nw_m*w`7!f<`vm{a)8Y5)J*H90>t0$ir9UZwy%gV<0nrgr= zfN6BnHBN~%zz^#W8Q2>LYw1JS_GS$1Mb+0HVqsx-`5c$Aq^MBQ&@6ARDPYB1J?9E{ z*~W`C*7I|TJJ!D|!RPcQJ=1#?C`!-kk&@D92`k3H$EOZywCupZbNOj>R8*_KJyn+0 z){)&SLv3LN|Gm_F`jU4cJ>}Eec5-X=m>EdBc(S<=Dy8-qNtkpBF`$ znTCk-chrO>90$_UOhrn_P4n|G2#LcL-Km=E6S%j%z7!!m28kR(Lc*^-J+gHNef*wq zn~u|C-}o*iU+gK#?@Ahjcl2xx-@Pv!2?+?kO-vXtGF0WYhRiG36so`_uDIrffzbjY z#ECvyN$^tB(t6OD1;e+Q_#q7uMPQifa2!rBBw-&*MYrx>4YGpCe)ay(-i)TM8>EFf zeJ&rZtWuu{QIYejV%@JVf(d)hIpTd%eF5TzJYa&)>_*{`jd%cAqsNc4T|L8whGc?2 zk$yWr*Af$NlZ*z@&}D7F2kH)dyKCE(iPz)1v^48lS^wC#>hsTk`+b#cE2b|>WD+pp z`mpl*_b*E)EA^?7&SQT4;sT~x41FahF)`zOzuVjMWOlyWwqi3YBAy-;n&BK14~2l} zui)j*A72wdsZ8bPhLFFu{A!r6`0RPecHypY^iE~nBlwSbShP>8A6cw)oz(4?T%4@Z zGct-pmAE+BMO4t(Xb!}?OjYcP=ZT87T2B8`7@e5-0;PC+u1*fPFyyCdfm*?}n9RjR zEIyC@L>%h5-K!Lkor>V`h{La>#D0Fh>1S!4ry(a-9*F%(QB2Gu*E@yRNjaL3lCofP zynv6ARIB0opf2#^Su#uxpHP7|zRx*x9GhX$+u;N6-X@mVf$K-{2H&G8B zWIp#gR)Lc09}vo1eCJf zBe-8tfpq8YnT$&|{JG>{@uwnSxY5kl=! zNhEXTtzC9WqNI{3G7lk^c}Nld=BW$|3Cm1|Wp?g&pZ_@@&UKwn=i_N#UDv91YpwTv z-skxZ_kI6v2X0-G@^}CK$rNF1Clc!1r0Mwdk^HwJ?w!R&%_G8svKp^a>EEuK>iz!v z)tJepk`iHxuC64tO)@6E)Mca?i}PA`Z1qOI?J3xB*y}BGlh^b5H!qLN-Gg+|K8L&e zT@bg$(!Af*3_}@9!xs*ti)Sxi?yjhI*DyEVoZo-L3WsU3FF$-ePcZQ{H*em2zAHq|{wyb_Hkz62k-UcP z5>*E|k+j&@)14-{jGvdWOQ4;&X=zD0bH)d)Vq_v9Qc{dZE%a*;6iJZrfqKf_7_{iYrTK4o93H+|5X0^$epy5GQu^! zjp?A{=%LP#zH}9oE-k57OwH-FPF!3eO&`n+wksYtM&+reqZ7|KifQnMxmO~Z%M>tQ zDO2Sl5Oi)g@whK%7Wq8b2x(fMn=I9Pjd0fH@Xz81WK5_ zK4_NnLTW{JsZVw#2o2&y$K0!Qgm9bt4<3jK3M%1(N9~Sxv!@)&8t9AY^cQ|6$Hycl zng63>#$UBQ!@7HDelX#l^YUDn_-?br=EOOr&!2g&rhm&*Rf^)REcf!{5yWT}b zZ4D{8#yP=69M?O4J__QjbFZbF#OTF_!*+62UFFp0XX@$TJjTGNJeopbZ!-N(qY zTvwMmU#=NFF#JuImTTSl;aU}&%@Jk_>iQNFmju<(`o${}ax}Symk0ci!p5ICrWACx z%r%738ZaqCF_=qoUm99zSRiW?kLCUqeGi7?ilbk_?V}+Y&`6RyiuAJC@uXV91dWKw zrjc**#!{GxDg+~4n9JVWkwK+e^cP&rpKdl%n4c%CTHX<<7xu2>ze?$tK73zgdYJuh zrW)al#_TPd8%(_-`W1eD5ylDh!AagCAdr%JrA!>s7Dx;0fZisKk6WAittl!4T0^!X z2I-*zyWEzhPmJAskZ<2V6cyFjriXbW3u))6t!8ElanGOM`6nOW9s6iWZKIf&#J_)U zT@}p8Yi(_{TVC8Y<{s+$(*Wg1TEozJJ(B_HN*F8!2Ipp+k&sjWS$!UFz_hAej>~kQ zL@$z7?G?YO=DsS6e7~^cZi`PGKl01ZaFUHr(uIjJq}rAodx7}KNaa_rY#WiVn-YQs zAs(A>PwE)m#COE{wEL4}fd~w7i%Uv2L4Yd*0X^FSTfK^eUScip?YuiRvrnUpa~%eN zGD`2~^4u5Z#TB+C_Pf_9V=4RcrqNN~SFF2&JKny$?7ohF(K>AY5FGB3E~K6WE|@RFWTrkWWHl6AV_GmMgDFFeDqPAnYx`mpol;t!b zPo@S&bxUBNzVyxWY51MS^^9v(&gvE|`wDy1AIpwi&A;8Lfm{S}`de{{6j9VPs!v=a z1{%`klIUM)v}g$X>C-Kp^&(-3TB_bdnJshOdt)@ioIJVsbn_4G-m~Y-{PJj1cD4~& z$QIx8j{PvD6H|7ZwpLzoB?~YW5_|;8()jSM=f@YvrGRzn-yU)4}c?^Xxutf_Uby1wGdsu3FvB%zNn-|+S zI%UmfuivZSI#2PySH}Rmw4Xoo3?GJQ5Dz~)^q@npkGtjg#jNU*kkH?!?c@}7QkiY2 zG48fp(zUO3-J^l>rk&=yOM}S;5fkenPf*C{N6XX;f&K@Su~3IC4I^7yw<9im&J_r* za&HNnlfC}Xhc_A`T}N{jRcdaDyzbq*aj>0|@5s;j@Zmz_DPKL6&(sk9pix(m;nXVv zb(rLe?yX!oXJGJ+=C_ge@JSf;1+ubl(lzVlLZj5NIA{*dt%3um^KIC$X-+ljYKloq zPldK+QmI3L_qrM-io*A$c&(oLt0ULZ0x-0?hQ{dBEYLtZ_=6}wn11~A22Zg>ucno$ zDe(*W-3^+GO;ZC6T)ZwGjLlGr1(*5>)YP#T2{vcngU#Wm%@7~!BIL!CVMaU_I!j5@ zf{PnBZan^a6HzN**^xs5Ae%ilOMbKL8jjh2!N2Llm9i&o{C<9ZEnvK-Ai|1|iu%O% zjA?&y&%~F~KgO3HRW;AC7Q2-LBLn>x4Ku9HmYID)XV}>J8$t8B+&xGreiFMd9;fWR zNlaAqG*FAYo-(Rs8w&2N093w>UnR~S@p!B4{^zpIsS$_puV*+To7+E){n^8WpMdH2OH{=)HbaoP?J zncd~YROY52RsBlCrurY8O!d^&M-m@BVSn0Dcv~_yASfsXaR;|CZ2gdHg~d()tuusWgP6D-DW2Hiih{tIU-cZUFm zf`UrA1&D1To7KCrjTL>Ci8kh*zcUf5%prCR7{!k=m zu^mBI0=WgApu_je2|F$(uj3-}@V0spXCVo%gPcX+$Z>9x?GADLc9FTwlP<8c+H!H5#m{L@&5N>oiauAZT3x4s=*`p#4M zv}wMpFx0x_MEDpsq139?tIaE(i@|21h($qBOiT@*(E`sU3MTGK@H}(SRUfY>qqL`| zCmT%_l^a;s1QRB=9Xt_{rew&1f5~%<;}k8-PBmx-zIl^~m1lHaC352PnYH1D>NW(e=6hfG&;*hE-rd2#&`{C=t+j8-BrrbX>&)if~) zZMUKVigLbjkYH5y_^bOEHn!7Ww2cgz*HX9>evFCu?$|7vPz8Sq)D9=G<)O?uPn}5z zQ;DL`y8CD?JBJ|M5!fw7ODi106-Nt2uukHlqE21B7nz*)qXDI8(;~h&d8eorv&0wF zzkM&Hr?PQ!tl1s&m5IROZqREZa4ooRb#--V$I*7H5jM|l7g@aAuY)REw_(Hi6DLkk zXAWV@nq9j#xWwp0pMQ@199x&k>tMMp99Ji&x6&VkYbnaeI@nnV0CjEvsg}zpfSYxh z85TP3>HZgSqEH%I8&ps&z|uyW-Ep9&F_I@PBBBalQ$d=~Q=nn#nM0R_l_NtV6qcV9 zIDS!+`*X$cFTQ>I)BD;U%I7NA0i&=aj|_9zSe`mM2i2F;~_pV^7y9_vOOH@AE=o?JXUEh9_h21ag%3q~vqRh%!K zB&e;_+hKs}8)<($ODKu=EaHv1Y+UGm4mZ$%9vQvp+X&^Jj9cFdW8b|q0LDG)1 zc3m+ByyBlx;DV>;iSK9 z+bf$RRu|KCE;#97>CRv7-UeB%`0;`TkIz9-kjm*B7r3fH1E>evGDMCzWP1q`UU-F( z8o(0XdWIOQWtlXYys*#^wwwz#U|_tPWxK4^+gq8uo#``&sg2#u zU26*W<y=BYb(CT?0-P_*lgl5ptGo$8oq1~}gIH)rH?p!W6k zd&Kta(KvA64!TUE6}3cx&Z^hld*`OS<9 zTqkO%Q+^sv-_qwusQpxFPeoOSI2az(_$0tu=%ExdQihwzk&792$Yt2?j*ITg8Fo<2 zzL>0WD9JG6Jg{a=#E8eFpCSQT_(jAfSI5PKnZyF}g8y|^U$xsQBWkk#4f-Wia|UyB zow3>3YGPvM75{n@`RUUZgiK6#EMtpm17SbqyFF=fv4_MmK^`Q~=@%3hhAT6Kb9ld_yGh9+gWbO5Vo>UD#)qg|rat_1q$^P#i>;3rDRFmDi zc_{k*jX%m8rkeEGdaaNAu*q-{0v!o}5jv!}F)EXuX(3`k_^?b~!3k!qOq)9Dx> z4}^|-fO&>_vwY+-1H6{LUhPWJGpUQ!F1L|O0DiUy=rg(K85Tj6J#mv(0$a8uzB<%@ zbELJGOfeuScEJQFEpN@sub*Wms)o!Gfl0Q+}77&FeWwUb0?FUZA z+=8RYg!taQXYcJCTZ#S?s;EZ~A7+n@c$|e9Rur#lGSieIDwcfAs*%k;iqrE@0{9Id z+PgQ=NcI!6buPQ&qE^89yV)vL)E)c5V$>}!<^JFCZrSg25SHJ4xq$_s-L48&tec&9 z_B_m^eZlG0uoejzqgZOH)narEjq2ifAx+;XeSDNA%%-Lm_vr7x>#IY8xwyIa#Y~n8 z?6dNXG`jxOu54s?xfRu-`(w*)HH&7~aL3N2e4LKs^EVzk?incMd}_on(y=)K*#nq1 z8##--6h0oF6k*i@l68=|^L-1~mN#fUBF!=k1796g6%*?ecnFD6niy(0)(;F!oTHu0F6cl8JSrMCuTP>n2J49 z%__Oy#l%QpIISg;nB|mZ{uKRmJlR;$vmi2#wp-IE_f*uX?H(g<-t2%05s16;Sqm2W zwnVS{Or&3WYk^xXutQ=h0OOfpWjO?t6jePh6+tHX8gwc$m8-%!Pl3yro@EU5C+hhm z>PX+v+davDEj|7G zUHhDwH=oi086&mkr6sQ#15izxO)*54s%lzA3KYMx~iH&MWI#r)KOoNeFZ zHySZ1s!YT&Pk>JqJrmZ0T>FbS1h>|b(FG04tn&tOJS1hYLx*&+ zc3R5H_pm;m-X{1-3MeAkIhj|nOTOq^O?0;9yHH_jzdN|9Z%CWidJ^}+wQXA*RKR>k zZ9d^Xij?Efo4`2fjq~bbSBDGuiSc)6G%OIz)lZ++va|b;QpUvkA@eZx$ISE=`o`ra zYzr>eG&G)|Axq*9WmPi0KH+qX-;|wc7M1!l5}gTKS?tF>Zhf!5-l*|w*Nb3coAt0e z_uRL4e;wFlko01~orXaZ68{3jWAbK`lIbT-j$>0^US5Et&yRE#n!?$rfS+xv^t)Zc=peqJUzZtqm8#e+UxSsb-kzz-2X*8feQNcoY45}}6X97Mx2#V%CkhT*7(Sy9rLYfvO)XJB6a3YDkDAR9uOI!69xeLq1NNxdNXh`< zR}12Aj*KnT98gV|0A{`Kt$I43)un_EbIg8&5-I@CQt_s^P{?GA`KaHVvpHev|?E>dcr8||}CKdN;P36MwBwj?rX z@7i@9&P6&_qy2c!|M1++&7#n9SXw5Di_66{HcG>LB<}tD@P?WHA>7EZR zOz|biApaA3Ew^GktLz<=Za~T)`6B2lP)W2Ls>zFb^QJ1tIpZWyh}W=Q^MzDd1{_dp zj(t8LIE#;el~>fPoC1}tuBN7|_iyq>h+WxTHwO>>H$m^>Pt!jBH)J;}!s1r%jR$YC5`E=>G^wn~AlfNggXdrSz zMY+&aLm~3-5lo|(ioI6H$7U_?nwx^e8C}?M>*eHrSJTm%qpWOf5|WbVFseE_l~r}E zVa%OjYB$<${*P<`rOtopA)4i2_!5sY6kIca%>lR2ruij<5~#)lqDVPXJmm~}oRm0S z0bM+2tl%y+v>TWW(ACq+1f7@IFq4{E0{?*|tW|vMtR6{yp*{sxBv*CN$@(QE3lKG+ zG(@jqx8xkiE#f*PUUZSjArx`5>*19{sAUNN^Y zIILl6z#u+Ww1w0y*kq%!4hK+dH+>WQnQu#aO+lhBuYUQpbP2((g?^*GAt^)fjij8u znl%c4r@w_OiCvt6MSS4MM1>-*YortWdO*jY?lLZ{kIu;%6M%h1eMR6(1jGg4^#_;k z7i2cW4$gL$+JOVg2>r=}gW>>vPX81Y64K^9oTy`I=^N_q9Dx-(e0%x#o-$1x_vJfk zAs%9x7xvO_AT&F+(|RT#K8fYt=V~1A!KQa1K<>i#UFmdFd(VS0xQ~@ZJUlw z3N6{0!5ylKi=P*pM?7XHz(VMNa3+~TQp^GW36$!)L$0Ad(T!<=*#ZSZtdAcb&?^ED zj`g7YCWR#!i7*7dsePhY&3C&@>jEH?umlvAJ{UK#=ac)Oi4%|6*}$r63;Qx3!~!-( zk%tObU4wt9qwpW*G7XPE!((M1pQ8Kkx-r%Csk@ty*Gqoe!I(>7DJpr)%gIbQH&qd9 zeWw`HqE19pQ_J*p3!BVs+N5JgbZYhP;Iem@AFf*C=_0H|5c!XYZL@1Q2;<^|d4#7) zZ|Z4o2?o=)FM9(LUHzEaMUt7Ah^hFe#fK>`GQZSxim&&W+3vJg$C8q8%6IMf^e$q4 ztwu33F_qKzV3Tpmjc1jgjjENdFw$?HjxsL3Hy6Ceb3xe?KSPSx|KMIX`TAH$iG11m zUw=z5;ZK(~Ffrq$Xe;w7ym%g1wFWQ56u>ZlY z&_S-lukiRQcaZzwSAP7JAIW|2D?k2!$d4=uN07wQ12rlp{QY^!%t!y zJgwpXknI%2gpmq*@2w#r-A59C^+L%hZga|6Y0xoY=h{fV^#S4egIE-lf~0v*$uQ%f z8kn5cAVUIC51?&^k_=;(<7uFD!D%VVj&9w}P(sc};d8(FErtXZrZ$i#B;a$}BT z2HIFzOUD?=C^o2RbU%+5?uGn4+`n|!Rz_1kEZ8xUC&58S6~?6Y#uvtXip11SA@r|* z@6LZgdG)`4tdoXB@UNHPkkAVuUI{Np6~)5;=dY++K7RfG|5EvAzK>2yA|hxbh1!{Q zbyJh_XWeaW=)t1;+azv=CMGDJkI-5PXu!WOs~vu1H7tt8n<| zxAPCyE(Da3#B-cS5tFo`rWO{Dsi{A4&3qV`l=sFrq(S?2UtUg5$ljiV-LU&U2gl%~ z4cw-`yQ-2>OFWPSf4g7h8b-N*E_v@bC+o$!vkhlkJp zdB-O6`l~ZDBIdXLv9Yn$shHI0UkLA`F3vUkz5QYTSw2FYN#65t{$ayTrt>l0AzZ-wl%Dou~y0RxxpK z-nIA>EQio|vwjzFJu0%8;ADF8BzS^>k@0h2pnkJ2uAvl-Hwm4>$Eep*QaHiE!A$C9 zSrfDZ!Z?l!_L$TO2JImf9}fD(rYhb)w_?(&9hJ(4eJXf%`%F1{sRZW>Kh%=~yCI6SOk*q30D@eZ!@KH6)+eq)Z7mKGfolMcqh zT2CJzpX!GDO%*;KcnuCJef$31 zc`01=@BThJJTIvXSpLmTb9!EH{L7U3`hXus^T z^79|_@{-}<;Vt*X8f|k6N4*+JY3}Iw{PU;KKYyKJ7jq^Z%lUr7{p7E%N}k%M)YR1I zZ#Su>;C7$GvwpzG7b_A-G&eV=yUpDs6|-JmW`>i*>iF#{GA2gC!GZJEty@8q0x_^f zboKQIO5^Y9?4${2lleLZ;it@mhlkrNb>1D$*BG%l524^YIqmZZ5vJ~YEQ~`7ccx%s zLf_xt4{MpQHjo+17s8tQr&h%@_r2O!&KJSdZ9+O@3rnL-LJg&ey|x#ayXLK}t!Zg# zMW#ax3l+Y;==JB@d=-{crfsmwS2Sp^S>D!vi1x#yDuKQ%;R7ixEz0QVXeP}cgH>CNUKo>AHeN%ysHM+Vntal zsVbB(eD_XHL7@qbSn$O5OoObmGY>Wq6RSQO^(&9BD2w#t6BD09LfUj#i;VkIEORRY zh+_%w_tBvFv!)Ld3HU@mSuMjlK(DJ_z@cXdN2~udJUY(UL$UPv&!0b8+1a{R7pH9& zQ2E5t6`op*bFkCg5kA167fP7Dx;%gM=n=f>0~8dLZVE9RHdzLt0~fc#;g4%@7THK} zE_t0w_t#Qr+rv;^MJb#Gi{9fmFRDgU%NPS=*XdBj#7q9sX9>bsi>y5R;sE3r`&rxC5%>jWlxr4QDwWWFI}4KCQ+zeGV+!E zUg%P{ic!%kW0{+Wb8wl$B4sx`3`MQoCl$9>b9leNy@ zU5~dB6{xnh78WT=-qx1w^XJc@Qhc#-aos(!Ts(i52(AvV`F?LIcO~47>oj+%4ygd^{v>7kesc>0l@t0s8Gn`bL?e z$wf)Y$syT_&DnWOsabSX`6^xGAtdS!YJ)=K4bDKKv(d`z4n3Ar~W zDI)Tw^1{TVl7!3hHZgOYUZdyZI04t&by|Ilg-i>J9jPbh7&fcFErnlZ+MGMEl^XV} z{QM-iu)6xnz<`J9!{5p*B?iPTg*JGrZ+%p^khQTvhV8d>ak_(v=g|>{7mTk)$MkNr z-Hwgqryi^J)k$M_G<&t}5>}sV`DZbcb?+;V9n4 zz@Rnkb3gU-Y)Tkb!6hIFgbuM(cYO5?9-h6KmDSGAKk2z0eSNxvbRKP?cp|w&-x3mh zg_G}dabd5nZZGXnwd^kVy(u$Bv#}vIv9xR&8$(N1Xg%4bJ~<0%>+k=()HO1{{rua( zfs(Lr(`ePM#eqv*@rJUV9#dgMeQ-{W?ZqXkiE&nYbMyC~KW$JijBoBfth;J2zAvz* zIayvuk7JK#6fDY~v_ej2x7?jvP!IxFMp|hxR^s#0?^g8FaQu1a+P`S8g@sXUY;2e` zDuVw0wf?7yeE7h>ztY#<)HMIKF!cGE|IEcQ*U8C={Y1MCtMz;fffB>r-Q7sFl6TMS zmTRS?x_PwRou7WEm8E53imR<#FOX&O6`6E=TaAh#NFq*&me4I@p zJ!irRJ6ysiJbdWk))S^MfM$cHu5od3)$Rfb)po>1_G_kk`h7MBtIx5p_jivdTStrU zys0^oR@Zn2uLaCRBEb96504S?%+k+nN_>)%cHh=GL>D$(eLLMJF1A~t-JEIoo~>wP zyE*DUXo|7Ev0-d#nv|2{IX=E_c}h-BZenaKluI$GDbVu!OI)0kxOj*Db)gyYuYxJO z#KEnih8iK1i?b1rcGwwkRddxfLK*4la*F#4Gm7sIUpj1Gc*pYzQZq7M7N1k{kM>XP zXHL=jdHMTeN=Qm}bgrKWwf_0@t=w#6Z%9=;ngDVJ# zK3e;?jn03N_6sHw!z%4uM=XNNwX#(T zlSdEqp3bK$u)`=((P zX=7uOhhi@Kt;8Np!^0tuCAAiod(7U}I{8*kpM6|hWMtB=53yU3VY8fkgoS0h`}c2J z5i6dnt5{Q$Az7h91Tlxayd8P?;m@l}D2qGQN1*`$dQILpPtMO#DK>oHy?a+=K2~z& zPwP!`Uw{%dWq|CLxY>*3GNDZJGb<7fGPKgnLXl)Sxi3?^IxEjsak*=9{vLd99Yas` z_P$YJH8Y**mdF{aJi>LT*|76N*2*Y%UHUvBZeP58qoY24!owwKZNO-j;`gra%iN)> z-&0aA0ln|e%xQhJf3oeH`{_q8CnqO>!}+BppY)|r7VUV=``0J!Gy9Dg9+ECDWCaD= z?~IJ>Hyom3V?X=(t=y>*qM>PRS2A{3VdM@Bzd6jW=(OZ{EDAKb+_M zN|X}LF3FBja0XhPR;Wy-{>2G?hE((m+r7KBb#DC|hb^s|@AekgI5;_fPfxe`;%d}r z$|GA_TmLjg@{?10^QPEwM{79mjaOixWMWA1hf`Ywx&hz{T!i}m{f_{5Zr`~R&F5$- zNJ}IfB@v4KB?rSI%lwIrJq5FwZj{xfZ$Pc+y{WLEqVGIN=-*pfUI74|N;R?Z`#CCI z%D(!-WT@^uN$CXi;1$v2s#*a&FBjR6SVUL!3H9t0Z-2eJ@ z<~AV*C3!4C-kZ|so%-{D?rvA}i6erQ-uQP=bTIJ}jW+*OSGhI@p5`%siQnR@ z5mMLCSXf_|(bLO&`qF%p=i9g2QO_7rtajwvm}WlM%|>h9zq~-*wc(0dOtB9%l07wgPJug`$CBi$jGA(_5 zg{tSzhSrQN`aSim8#Wn9#m4+W*^CRzV!}ASeBhhWe)oQgW4Goejgd$U8;AQR!)3I*7I=Vd6Xx7 zs-(O;f#de1?mvWCPhsZ6KD1?ms+yWuz5x8b^n7L6?MtFbu`vXgJS<8>)AnFA-|9I} z*3;Capp{K{2e8#m>%?)U-pzcvcC3o#SAk}Y(@x!Sf|Cev9rw;q!K;&n1dhD?KPhEO zDJAQ4+?F#kG;Dhsd3kv@cKbRb1=sJ|f_UE65Xow2Fgor`izds>u8tO~2&<^@YI|Hh zMnmI~isMe#ZrYhVy?MMdlbm!v(q@6C*r?CQ+gFBN%l2v@@d}8ziX-$M7!%N3eljV)}iu+ zU~Ne+qH?cRJWWUMY7tSfA3cQ@#>B)# zBIwSq?RFS$GbaoWXkaB2LtQ;)_u#;=$s1V4H#)js=@k{ead9|%`=#_OEa|{T#EiEluIy++m0@ymcB%Q7=8a2*zWKeT%nI7WEh8h< zGW91~TJ=&1{PDiNE?C%h)iw(ZrACfY$vJX#qeXL15YPi&(562)tdgoSv9P&`_48oO zj@$Lfd$)o@;74eUqvB}&Wn>(`Ga*%C|05{23+&@gIPlh{rj&msC%p>`sVpriyW@Bw z$+-%k*Cp>BIT{`u9(p9Si$}dSHDyQ@4PLLvnzgRbZAP!Y{lM2JNlt@uv0OoM+*j90 zHf?yvT$C<~)y>)sv)F!3!E&a)XLq6fO{t-DVcP=I#io&<{_*zIhm$$K(Xp}OcOAE7 z;mmw6uifemlWK3Tk~RE&aao$g1Izy2jxWIbA_qO^w^M z92J4qm%AfRuFm({P+nyY>|P$PI4=Yrb31O=ShkPWo@!n}cVc(3M?&|a49?IO4ezyl zTTx*O%f8U=hmVi%U331+vf9GJ0xCUnrYsez4m{%zZkPU{q1z7UeC+BPU1c?1@&GBR z+z!5ijzvc=++v-iL{CCtekJ=?q(Qf@MjJVrckjux@-L!b#yjI zKT9P(k3BkaD9{X~W#6X+C{9%qV5_Q`Nwt}##1PGCF^s^OOmcLDRX={{gTw}%S245q zRel96%`y|zaJg(HXd|R}czu@b02CMh&h^1rL-M%3@33`q(^G8IpUO# z7U`nScw7r8D=QA8K61ZnZf%BikOYH^?iE! z4nlb!{Jyzr^khMkfQH7h_5Fp4M4tU8U6F-un@YZdnupc<+@UoBZaoZMzk3P+;zM;k zFdd(ogR-L!4Gf8kiwmK^`CCFQ6Mg^wSyv>>&X9X~c{wn)2(IZ>wYBFoH0V}VR&BxL zMgdX6{?DBXc-Rs-8cuZ74^M3-R14nDJn53Pdtb3p+xh4FP|A6Xa+KJ=2m%+}*hH1h z!{Xv%+sCgkpRNMy4E%hDcJFj0QBhHGVBr!#y;_+u0iqHkft0ui{68!_JenZ~KPA%T z?MF2=k|ZNy$rg4xCQ40n37oj5CSgJ>kwilc(vUPv0%05#cXxN-u;IW)pt4<3?yPKY z_r~$qoov_aAgR?jJRxR&n^aufuLR3f_j`d^Ex25LuT6qo@%+D8jwaYdy|CKUthT*bO;q$7CO3F5Cs8v-iw!M zPY`fD`P+;q9i@QTe@B2>2#IW?Y*59de?yA2;~*daOP-Di7`K}QBWg!S2cV>d?d_17 z8rKFU({~oBKZm-o!qW+MLm6jD-B{Qdp!)6uO)Zv_Sh2Dko#E|2&SR#t1IZvj`;1sE~t&B^0h3 zWYl0)k&BB9sVD{h(3lu9kbh|-r(9qB>+Q~uENpFU)haDDLunkVo%dp_T!3`a1PHjXJDf;^U=3?MqKjZ_{g;n3(W35wVJY z?iNF@nDMJyweH|>M7z{_PWTNiY*XX#$Vj`36PsbE7nzwW>=W8G4!E$m2oU6Y#I(>J z+CDSmf%FZFnio_y5lKmGquw|K#sv}Z*yXySf>Zygf`*0}lPEtwztk6%10{F&=g`e} z4)s)0yb!COJPQKp$>}Kp5z$e11t4VDbGOOJ82W7fk-|g2hK0Sdv3bg zKPS;cvfwtgpsK2>13UFyCWNkhxIQ#GF%b)30eM|kQCr)JNfaRIr%#`5prOsp&iMdZSu~n2o4GY3GfDR@cD&>Hx2HWNa=+0t&h=Oa?!?=%46iu6JrwCJ$noTAD3J-|-)q?BUf&?!?F zz(SW#nrlMp)cwJ2X>QJh?ll)p^&o-Y`5SB{Z~}q?iLj`p#IU|lnwpqUv$5Uw@VI`C zE9VgbOHL9FN1<&3BuRIbFeI_~P*J@NJz-_+!b40}~HyY;33!f|+djpSnNn z&WnH}u-mDJf`jP{XJv}2MjGx(xnSb~8^xA?*IR;mqzKnP_vhvT|$2G+A zN%&gN$?Y0-{F1sr2M6|+Q$JdNyx%A) zE_T+d>CJA3gK1)B27K-fYLtRMaUkLSxm{n56aZ@#X|(~0gW1)nXylt z7HT)h=;+)pC@63n*G^Z!tv;UtRpRLA2$@e?PwxRWHFe*!h>p(AfFD12V`5`XOifd& zt4TpK09jQ0_3Qf|mhZV&Ea_jg)!gdh67`C2L|Sr|z9Cc6*rsAqaqroZMOfsT^>KJX zPKJW!aDbOU&^-%_Z8{ox4UI170#2t(k%>QC&cLL3Q~!Ynq`S7}=7s2~N^g9(hiI>< z;BhAkdOUAzY+Md`=>7mIL{Jb8kQ&2ny5ANtRpJ=?{*{);y_GQw`wCam>&)Vrq8 zqJcvDK<51$M$2s?!#XU5uzck7#}&7h89jY#hKVSil#`*n-0Y@kP3uh%2uw{~P^6_9 zYw!@<7%5!&lP(E3fr5%E5m}0^CGZ8-mlbPxgkcf}4Y+c|mkXc+0|*e!n4-9!aqrF_ zwcPYHxxn1M?={kx13C0&trlr$GM3AXLIHLhBuq-9yjk55x>aTt{i)ez2Hk0M9^v$l zAN$nS@`Iaj+`<_@ut&+~5Tu-|(vcS~e89do`1hWc+o5u8UES$?APb0<9FF&1v|~%^ z=p+$Rp{_!KqJ_o;J?hr4)3d$k4mt9^eWtx?`Q!F7+GD^utZSEs0s37F<^Ww}44?^a zjuv}?-rio}e0_O5R^!NGRewqYVmH~Ww=j-}!bkp0n}xPwfE4rd^HnwrzSRr0zX8XI zi;I^m`;nTDmwlFuWR9-IgzB?g+UMS$F8LJ+Xsx)63=I;-txc5K*~Y21BV63W&Cy+t zvCOmD#Jdl%`%X`F*#S?uVX9EqOZW)D^ZP*`g zTR3c;$vSMFG;ln7cEoTFxHiE>FbyH4DN3uTxDTo%+*dp$3Bq_!mH>4#yccw4Wf^zbE%nR#oj< z8)$brDGJzMshJ5$e0~d#WLn1b`tWif%T)`!ir|i2!N^#`LCpX?^Y#NSE3H%jLL=>z z%=`iZr>m)lU z{VCx$FhVn{tD`k*u84B?NFkzWiB^8c42ot!sZYqxRbNk$edUz{p} zja%%z@0vAq>jsAG&ps<0dHHsFdin>f)=WtG`T0{NwO41HuvVX8UBgu)K#GvRN1+Lb z|Hl4Gg9NC_S681}+7g;)1TlSt8+~!Dc9$ag5Tb2e-NWtehwxTSpfH2HaxqVQ?NwGr zXgOUg3V#N_Ly!PkS;}Yb9w77oZ(pI=PY@vkmz8ORMGz@!XfzM!Pw+TdbGg(}YH09* zX4TOvW3)Y0c6s{mEWjk%WP^v_?Cfsa`6a+%wFv=d1$0H}@xQS%7rwHBmtkBZ*LMRW z^EoU>jMe}Cf6&ScusZyOcU)3Q{s|N=nFo-H&Hx)2qYv8Ozi? zJKc;iC|9&T2>-yp-qeQ!Q_!pXx!3M_VDJV&=TE;9JoOhkl7L>cY! zirYbfAw1|F&$o{sk(6>8caQY9#>){sDl02XOhvY`tnA&!aDLlLITVWBakIi``fU8> zz`X^KFGeS+eX*&ir~t`5I0_jE@8fLtcm(Pd>xN!x@ghwJeb7m)0ChSRA!W7Gs~Tq zZ}D2Tq3hRIEpEOV>tjnSO3DP-ov=^A0`hJ|0=PoGyW0;^K7zcyGnmrv3?n5ZTx2us zR?~OIz`%%$ds|#m0)l%qxB+tNXFsFBQB*B1DoRSaPYn8}e#FrcClntWN2U#rkru=qa zAt1|zogLYe12iX>a~+c@oBrvEiAacrfZOpk#%18d3Bnb65c()B&8(;Z>}rSvULry; zYi(-sgw@quXsfJtIdmN~eO78HBKP*~&*h$-Z!s=+z_rVJvk#I>26!ALCEqN!jCwzO z2D=9dyjCoDJpLgeO%tw!;H-DY9%CVm6lk_JHh%W>e7m_hI9cP^enOHnbObpA&y*At zu3rw;#7ZU(~q-tt(pZ%S}5wgynEl39x z1zMMsw6w&CKR5Y92sQiW&FIc%KjnYiGltF0O>0}*)^;NfAl!fd{spy7L`~hHdpT=> z3~cn)e&w;9Q2mw2x;g=fA3zvEPDRC6C07LGV7DzsZEbDPnt5#IZvZ2lB0{f#O%4F{ zZI$&WK!Y|r(*hTlmpxG`{&Tw4A8tGia&mFmn|9r?fd(HC7-;bE3<&_u?7ztPi}vs@ zU=<<6h4h)gzst*pDX9+;=G~w4*AYx_fJg8?eY&Dn|KSNdOK%^a@84|WGcsrl`$C{4 zYL1R&J0A{(zY?KCyA)Die7(l&>Djjd|4!>I)93B0=b%lwA#nyHIU~%!? ztlx`O%?cxfbUQe?oSYSKzc;b5S62JoxOu8s9X4OV>3sd#e{Q_o35vPDzgl;1e4-Ax zorBqP_xLKP%EysKBCF$-b3)F4FoK_1W>QLNGE=-9f}%PS;$t!}Fo2Mmz}WlM)AQir z0yAtgM6v7dmj}rYHjWbLa0o3Oj&lg*l$el^TqPqiGIAq`Tz+sO-~=Lrqy6l{Co<@h`g)0Bf8)P34}-$5~2s@ZQDK{ zH#eK1=gR(bbJ=GO=I!B40G@$=zm||_YHa)jWfjs1U{Gn{F?N>&V}R#~G|L-Xtfy~(F{#mnef`=P&Zr6&vq3{a67!F)uC9md?BCNR zBV+giR#OB6zO?svrVp7Wj=H@p93h{1?Rcq`IY2t|;qpLwdElS|#P}H=q#t(0uYH7f zf7$S{KNlal-Z{Gj9Y47C`(#FwbXZ z!}c5Blp%7qHBpJ6Gt;%s&`EKOnV~n)3!%SW!CGe%s`HqFm=c^0!=4y}ZMylJ37MEC zS^Wy~5D!wkGVD&TNWoR*!j7BlIbLpfRCxD^#AX`O(`c38gkfG>_li_9Y^UdC%erL3WnSSN0AMy!=Ww0 zca;mzJJAER>_6WT(Elkk8|YYwPU2*aRPzn~#s( z^~ijoqPtsaZ-1YjnR)s0c!q23)Q2PlZpbT;m<7mXBc!tQw&`A~1EB@waFbI_4o3?l z_q&DlXAI2D%yr|1(y1#iv=}X7j0Ba}4qZ6NZ~^;)DUOR!0D-3VXLhsjN}8c*xvK;f zx$cdIeNxa!PtQrCh?mhSIg4#-`WWc<*wU-)X6(7B>cWbM~my}rQpczq~_!>=;`S#ihKC4 znGx)9Z*6TUDJ#prc_R*yNZ5I0Wo5I=%f8@#HC$irL_c@qy*`k=9>nYL!S_-I7YFg- zD=Vogxx2^5AjVJ`8LhYr$i8_)N-Gnm18B#|#i5%h;@dZ2xX_A<3O0fO{5sg2r0;LZ z9q;ddmo;`>gAkCnpWnjL66~Io$TJ1+ReN5D*k$MC!IlUB>5hzy%-Yd$=V%FvUeh8- zW(BpilTPnnCCiZ%1|5v(*myPm1R9HpiK(+bm@U*!(lJbHH}FOLZThUn|pzwD^A{pVz`zPw1Ot&IaH z!0K`Jfi&p~N8A1MF*%pzW@LDUATwM*T!nz6n6dm_?!5x?qTRD59^ym)rgrIi)M zH*dyR{`uEFY%NIRkbx}g9~k&hKp=jpE0W!GFw0$vrR6V(NB19sny?MVB*0)m{XG;S z2VQn7z4Drx!IhPcl?6(|n7Rz0{U(~oqj^>?et_J)YU%d*RR)C3xZdOAl#k1cST@3LAGVC zwC_2)jSICe4b+cp_}CCC!CtVqZsOo@IL5u8{;$HlO$Vu7^x`8C zJU{*(9^QJeHgGy~eeR*JyL<57|LP!95aHW`oC4i(9yDRPa0w`V10%6IL=x#Ju`gJ+ zDoC!=$>03&Km3k(r>-$e7B)h`dd*=7Z`R2+#jAR>wX1$McvE_JSIA*Ul@ zDFU^_4L|LzV}^IX2&<5mU5+ObMUOIk(M0@W2o<;9Jz|unGaO%+SGFO84&4WIC^r2z z9EY80*lNKL*sFrA1#W8k3FL2gm9{LR1Q{5eZEl(Y=;ja%Rx39R zM+AJmNl?J~U(b0z%A<}#VRayQzUc@DmCbpNgIO~Gbidj8`A$ggMFCU8z}q(5TQq6Y zzsFq^xG{3a+Qz1NY;38TU0Ee!e`4n94jv`p{Nkdpq$K;(r$(e)mfwnd3Oz0z35kgT zLr6e=NuQa8g=(Sx@#9vAXc7P)17UaMado=9Uw*tN0ULP)YjV9T0d+S6D3=gcb=Vwj z1f~ickJT~FomR6Do&|qlMh3c;hZ{K(Sh5JxJTejr89R2f;ST`si{EcJz)q$U&aYU> zuY8U)3wR175x5`Wz4-{48ZCEi@3~ zMUb8Ygbknjcq5?>a`U83AcdcRf^u>+VFkR43ADxKkU=X31_ro@@Vj$9_`(O#!pXCR z*Jo6x3sfF`0e3h0*X-XJq$|pOfylGfuJ-jIAA~!E+}tQ`-3kHD&_?h0j0~4d8XKZ7 zi`~&ym{?@c0d69)d6C-NI*_V+@PO#f|A@w%fBbkKT(svIdAS7Tja# zyYh17JNWpo)W@IPqlgEa<}R(wy}5%m{qDHaKM#*5pd(n@vu|m<@)3RkumZ~8qsNbR zSxG-LIYaWPbg~ho)M5Ia( zAp*ZX0G4*^gCkN=_>e>^-K~;HzwI;MuFV>rqrVlJSfR=g4&~=xaXWFTAcO5mGze?n zCU*@8Bu{S0g)zE_F7Cke+i*;o3?ZJQAO%nT{wRb#-Be*@{U>55+=6?y1|^rsY;nm%5Fe z>g=ZO8Oovwh@W&UESV5&hs+QnqNhm>Il1+rg$L-wPzj>}T_Q3)pkMojhK5!z9CSd# zaNh6XGFWD$epRSUSgD|4_H#%wL2x~1yhvev7uUsRJMf>_3%Vroo+4OX;KFrwb_S_R zz*+ixbkx?>g)J*9o0o^KYPkCjum;FE@laJFp~u>Zt%awhJ%UyXgB<@%PT+?nPJ5>3 z-{oZU!W(x$JzVO!AxnCd>q*6HkC62SJLc5NT<1AWPi71iv$Ktxdo(|NpP1bd?=L5z zXJl-ip01y`ds{<;{uKrz+)gpH8wG9czHg5uyD8Ge;O4nq4(K3eRq)T^)6omLr&+Me zY4;2N4Vycp$ty1Y3LXN)EVFZSQ^9$JE)5$ShF6vy8>am-`;7A}mK>8Raa>S?pXCSP zmA>S;p&C}0le6v+{wiGonvKOh$@$gQlT9ywWN1IEk+HFo;81{UPj!%Z1M-0X&UsUa zU_N~%P=K^%;c?X)DWZ7D;_=pZI)r`obMjlr+_C<+(tykMCwK_-t);OM`5!eY?zOb^ zV@}QpM2vNGEGN6b_~n54cqP~S_wVDtBP=OlgB5o=->Uo+ViSZ25W#!~AROOLj873N zSZ_tubxocf1cbIDZZ0j&8(t63$ruv84nB{bJqw5Eo0jX=GdnT2Ibea!lTlCgLEo4K z1HSfRuM2FzXud!C;5mXD$I|MDpCT(0&wDt^MNnx)`#tW1&zsU^cANQk2%+5lYQJFx z(Cy@un1X_WH^@{VDq-AbWQ>=L>;=Hw*cNPcELj23(?*EHh>01g6iy>_?cH9!238p& zThQBY-%f!rAEJ(*ZdqM_{`#;EkuV0`2N8}-bUWgMAsU1Ru`urh2_jO#=iWblsC#;~ zA4?8@N*P!SLK9h04l3{w9YJaC?u$jqODHdW8kNgtp<~2tZ)aB0pKp2D0DEY$)eg|GjZmQHb>{wXU6Q+?5Fl zhyw)l<+K!J)Fn8dK79)MZ(`V@z58jG_H&yOlwEstoGc1gRfX5cdnj_bL*^3|!LXyC znMCo}WmG>DcmR1h$lBVqBk`)}$Vy74*4Ix@%DW&kw-5udYhS$!!0w;fs(+?_vJ|p^ zo0c2){6|oBl-ftwc`?~qho zy&D}^CmqFFEqP93Zn0(U-~i!nL=#@@7=SQVW)UkQJH+OC^Z{vpp80Q}_5~iC?JDPe zvgzqm$U~rIXIEww6g&_V#PGNlx_w6<1QuFqYF~q{;crnSlCYlH*<5cRUA@wmsMqY9 z-!_3Fr>Q9|)m{F{jWyvX7ciPu<~u_}GUEQyl9Kr;$C)LV_~=d$hy{bD6UDVJnKjjCm@{dn;Fh{x`hjj(C0=T6 z<3OFh1rb1?0POLivarflH(lN2B)Zb@+3boeCf6gi4uMM)g!uu12YC9vAb7wqmps&K z;Gu?z3pF4=LY5Ke0o+wHSn+wzS~swKJm;pd2b-Eu>a?u3Noby_S?U`buRc_DHtGvu zWu8`1SMS~&BY+HQQhGY6q@*PDAbN&Q_KJ~>!?prB5Z?c7Vn`UAcDGKOn&#A$dz^3K zjg@cU0W61Z2qOv*_ap?BwB>jvk&EcQOI^K2W#PAP4?rn~>!s-EP(48)55bG(2J5YH z1JJQpNe)2JpWA+Z8?s;!$68omC-a)?Z~r+yjzv4txcfFkj_xloP&f(Y>K5DFbs7D} zRUb~-fb1ahA<)>67R*Gz$u}`EslC2Bht$}2sDslU*KYJeXIa@Yl7Vd>V++@Q;Qw$! zi`g7yiD^@Rto+!*>FjWGJ(ci2OB5-)p&Te7^={{C4ekQ)FqcDKLE+P=Fn>C6T3T8v zE-ftr!+4M#$SuTvdgC#e3>5l8KO|&j7q+Je&CSh=OBL@B5%u<`o`bro3t1>o>Arly zZ-yVJl`i8#CoY9J{OAN9>w8n~_K+>HdIyp7Kl;d_>5Glq>z(j{DePMrgoT6hu*8=**^Cse>#gE+L@@`VO>yMA&oM zd8Hri>Q!HPC3%sYcw|7@hjnwd>@4`+OC%dpMKIBaLgC4IT-t(=G$`8$b6m zpF|uFTnJiBoL+~TQ#E=0#s~yW224`STel3sS`W2Qgu%boK;p47lRHQ=ZpReRW549C z_GMS(#CO^XFehYC^*u~T%nM05!yd&LKILqU|_}QCp+Q> zcc$x*FT=7xbbw<437DI>xCR3m(m^EsrGiAjiVv#hQCC&y>>=bIdooQ(RcA5temFN1 z*ZtDuDzReg!h=+3!UKW}z}TB%Aj@HEoYsNV%-Hxo1495<4=7(EB79+|5K__XrG;-K zW>iu=IKWU$93U)R76{fV1eKb?Y~zX%J)FwpVz>R$f#d1o4Rmw`xJQ^zfC!0>k^JZ2 zU;_|1A$$^b@wU3Ux}~-C>-X<3Av+)$!PMB^-p-9343b4w?(jds*L$N}_q@Jp;aNOU ze=FL#|JDi~i4Ej~GGr5b;l2~AepHC2&TSMn7{bh;P`jTgF^kqFCwb&5pLA)$G7aj( zK?*bnMa74F4j+W|^-=ZPZXgU}NWi8R7k>&QmW71&iw_r%QBd2FfB%;2o36VSk&s}6 zG}Bt-$Tj3RkrOw;QAgz3YhI)Lm;15zsvYwqrne9c5Cabj%(-OnlA@wY zgUGo)YhR!3&@nS7m6wBcA$4)lc5r&{`mC_w0nPF~yA|dSi!Vdh*BKUg-t$iB2QpgJ zAbY9!rJD6^8&#t`h=TAUC^(zr<$;GABXF5#oAC*X0Aqn$(`;RVv>QB?2VU|`JiK<; zIynzAx;^szQ>*Y|%QTSrBjlAs0$GNK!Ez9aS0a-$8K!leQ0o z>VwXt!(0;@&^Yt;D3-k50^d?2G5c8QUKo&QX;B062Ed=KqQQ2_75px7>%UHr-9Xeq zB$yP8$;w)oGAzo?b{@5esA;%9zix#oF4hV`k1IliPnN(>!NrAV*c*pnasMK!4_J%z zV`ly{Bo;Cgm@0PMKREbnzBQK{xFCcr39+!r$kwBHpT%`{vVpPFZ(5ER{{R3(KH;(7 z^8!pHh*pr7kAIq-y$SBu98f7Gr7&a)Re`$N52QSQ0#{e*pbQ6>?z~Y~zfD2WI$?Dk z=j~0h-~c%w_yxjYxVlt=55dHW`B+|#3(h_8lv|XOJ>MP|+JMOlzoKV!{aATShlpg( z&!d35!&2?Eiv#9j?a}y#n+tzB5&@Evv-2*(_knm9B5%*C>nYwB3CcwmON040eN|P} z?-0c^G^Bx20U8Z5Vm>BL67y*lx2qcR)}V4_%1B++U4P-^pKfWl9jVp?ubCkK1IIzv z#AIy2vKo=Lny9qmy7~ZvI%_TldLbb)V7#FtLJ#cjAN*}NtATAtbK77cqN4r%9i#Oy z{Cy(sZn&(OArmhSyB!V9Ika0RQ;DIb$JTLce93YP6~)uo!XmxCJ_P<2MxGzCu#m^g zh^eUjDCYiS>cOA+pRqGUT={>_hP*b*_4W5}eI@GNm7`29{@Qk2;DCPG(bEGXX5mFe*5KO!Mg-lB%xDH1=N@=0_%O})!vcZ!Sgz);U!?Z` zg$w}jQXep&*}?MxAE4TChZD%SOWl>v0N^bh3=nDtK-Z6&xwcdgq_F8e| z2SI?Az+dBqSSV=fG3J^f5M_d4>T|d8Dagk_W(CYvYOsUfp@rbWHM_Afk?MA|J=FynVf{_tlzw9{Y7l7VnZY2j7Sxgc{;%LP zJH$#CWMzGXk_Z#mBA}>1QVh}`?~XPxVITR#$H%B@YlRGnpcuXHhA8z zBSz9irMkzMSCrn9HzzA(7nPK_q}BO|wDS!8Gt%~daO_(^t`~4zVN65q%YWE%jRk<~ z<=@EyQqgQ)Fbp8CsEC-jVA5l(sF_#(VekQrunP_vIV$C@iFCeG3YGa#4@Gv?5MCMPE`adBJQ z+cT*Yus~%iC@Cp{@U{_1++cMcIyHb6S_;ONrPm)A)&}=(V6i+iQNWTYFSCc}I1PC{ z9<|Ap&-&bX+>yfDa((~#h8iU7z8>4i#vuO{=izM#4GBqsw0|_acGHL>$KQo_WOeaq zl34h=ub?YJ<&FdYht+oRmpjig^dDHS^`Sdg3xmVM(8MKNTzEk_^7i$;)!~zmkWb^r z$JL=V7nPSAz;s4k%+LyqctV{c1SMgiqQ-Ft(Z?=M_oWGreP{;$-g=_&(ck@et8(V{ zy?auCFzqNZv$H=#4*n?G>pUR?a&oW+WaQ+CCj2K&yf0iFle#4kKJyb;fbc&T0hNVV zt9t4O4^lKn<{~19LMR0oGz+ED3ZVC63G_ZpMkpRMxx-N!smJ2S1M zQzoLdJ!e1kG;{{;JQMaE0-@jU;EMnTtlam>Tie>!d$?xIhwF{{5{4jK&H))&njJ-X z`D9d#TdT8;ULZdy!qft|2(cQRNVCuF!HTz-sF42p^=k}=$sY^iwA$|w2~N+*V4$W> z?muew!`ql|4cy{-Up3JJH&;3*-`+&d#sA`> zIvpD+UfksC%ezaKW1CN6-HIzJWQK;6v2NZ}mXjN3OPP@{FbKc6*u=uAt%e~ zZw-Qq0yE!4N}MJo?%iez9J+9>05JeAP}#&J8v>NM;9P;0c`7W{mmm;4;vGvM^dn0$ zT}G4nn1L~3V&5;hrbaw^np#D)M$3kbn<(GGPyace13+r65HFOJ@x;fHFH zIcFe~N`1_kLHV0^#cGT1T?ubbp9#_o-DR$xR6)C;xwSD`+Nu#3)E*tr( z;Srn)%F5xL9j8+L{l%SK6IsZp-yVyjp`EH%+hzv@$k07|@07doH7#GmuFP}@>n`Cv zdD}g?CvWy*{`?U=yK+)d(dvhE$s4#ll~=FA;Hwc*TUyfij@E3e$>LvgT4@#LyE}ffD|cw{wzLTWs_g4Rfzan64#w4e~NTd%RZdyLDW(~VZlzyblv*&wEW8I z!Uuch;C$x#J9u#UzkXScmm2vM`ugr%Pc&Sr#B#bN?=ECc+9&7cZKiNqsAn!NQo|GC zLIa!QEgCxd+E(TDrfWPdr}>GLt}X!dvz%6OrtPZw)C zJ4dS&yiJ*Fruv;*c=ZDBId}hY9n2;V{Q8PFU4Ba}SOXbZ!Fn{FqipM~3~OHq9~ytYqphhK z?{c)69u~%-49mSXKwECqr;2s!R{zmfEaG7*W@3HVva@|YAjxtWzv)l|hCoJbZ7>!t zE_`KA8S`5@WgDC1x6F|VPI~nvrK%id0fm%s)A~(c02t zda$~iQ|NeRO2X&x?U6})$dee}L;1&#aaG_wVAeSg6{CI#g0d2l5f>ugIAEm2WhMSv zR=-UOTF5z^IY;%Xzmel526g6~fX>!adF+-qntT-8&bOGiW*WpOL&fj}`4to0&yvp$ z$+K7*x`&cqx|UndvAmyekw4tvl4B-Te2gNbI=@?GP&x6;VRNV)QhXsI&4^92%Xt4*KTkR2AiM5YI+~BN(u@AAVi19*GYi4N5-o2<&m49zJ3z3 zHZ#=Gp}nQRXKrWu;|(6642*?YWd}is`)UomPTQ$x{IlP8EzHA{$i-_Vu-_f(R%my5 z_KfVAY20xBc`oeL{`Da$@B^i$YL0(9&fHz=pe0`YE*sIcuxs2F)PC46COMcXE0~^f zYXp|zE;%_Zd{v3tUdMS(e!jfnvU&cSQUzGDfeZnL%JcQnQ!k8$aJVGI*G>@LzMZo+ zKsCTMv#DfY;L{cqomEm2$iT#(?0$)EyuWvk3f$KgrkM1E2d{?_zm zI_$V-IzlCs9v7rDeJr%JVi6y6Cayl9{;&4FJRIu&e|IElLp`A)RFovuQ7i-m|R5VQ})&}E6S!1w`?e|ZSWNk6eZ&{iYQlDEiTesIQ))^ z_Az^z427|gw1DK`jZO8R(hW5=Q_)Mr`t`H=tlI1Kw}P}BzkRI7vSlAruW@lyq5M*Z zdJ-vtAx~1u%Fp$9cn~CoEkuM=7Psw?(C(smtw}u!B3g1NFFkP z7B~u3;OA95M%&%+ngaY^veJid4t?-9!WI{k#RZjJPC151^FGfyC?ZbT6adCZuSJSy z%OT^uJU8EwlxqEx^;a${#zr5RG0`}FeDqV$1&6O6oI|>1CREPW*Q*;EdFlBh{`S9i z2yrY~OzcQd%ZNT;o60NJn}&qyb5xYp-cDSw(!x~O)vpXp|4?*KolX7OG2AlXPlZDD z_ZVyTLq?d2vaU{=dZjN*&vsBiM9H_gcnLvI&i-sBak(fw!x>DYbFF{C>OT5o@PLf* zWFpe^fRmMxS3TMN*s;WCIzga9<*eThC|}kK8d_J#CY>4~TMioq%r#Uyy}23W zIW??CJe7CLtR`Y~`QW8P$Y5VC)7ZTXus8NoKm8_ObK^zsGbpw;Hp6J?p@Y_uyE=R6 zO`U%#jRTE~eYAXA*WuQbU`4;_`ykDvPR{q=xbo$4DI)i0O{RkL{ITGTODB=VG75vH z=b{4U{AA3gZ$soDHa$8O0)+jS3h9gLFau}8KWfvB4yiEbONmX@ZX8)8YH_z8S7 zW*+xb=Ys-fxtX}ZsV^XIx``+jkkJ{lOJymcwM|P}R`yJ7twyvGTZ+YGSWzg8@Q%=M zFC!m5%uwi^O?oWjr#>>06d74~=K1qa`Np{mr#>>LW8NlrUGxgsGS{!o6n2pg3ev)1 zF3{tV)D_%ygiRGXBCqb$k=<_QT8ZmB&__Wm^%yt5yNvUO$Ka`3*mLj*7CMpRfC=U7 z-Y<`gvN{(g>Xy%7&j0!uW@vu(6rYl;g(a1&lctYOX?n`(jRgTqqBuKCY?TjRB~D`B zM8pTY=%MT+nKq4FY8agQLAzUh#;Q9jC&$ob+!WRpr-8SH(aH;MA;JnKM1re-bWrZ% z$6XD#yJcaDXbiHYVe#b%t`JNrC( zyNaBXCOoGRxruuT;1*tcUe9ZKcPG;ei7&IP?A-eGdQ}U!7V((Iz2!Z*ckb*`nrdEq zGCaPIc0s}@+uN+ArAN4MX*4UxwCEcT)@Y5mQIi*k{G_w@|``7Ox@bJXe2D3?cmWMD=Yh}Y`Ttr%a%mIR%gcJq*WVIcZrMZ zbMsNMfO_T|T^FOai&GabS1-;7I4=I$Sl}@-26dWjY<#oq%Ea^V@bk5ArwvY?bW5^c zf?H{yt*s2JXS@FbOJ$T?Js-eYWCs%fjXllm=v!J)8LOP>H8_4e`Av;DtvVolqG$q{ zN#f-9@BRY6{g!(FzC(EOy>uV-{rbuc7>*fpgn?Won*&*!C=m7PLR zF>-LYJJiU&`^}3jBeuI@QEgtBU9xzHzEqynAzmjCG@rIYu9QMzCY80Ov}ujmG(*eao|V#Od#pj6{q;GUo)vC9;wYK!@YFT%P#MHm~R7IXZ>7%RCpDap&QzB?sBPS zSX{#FY*n~Wd@+#mgr|J_gjcz3p0SH!SdZhfr;J!KRYg;@HsL-4{bdVxH%iDa^jzUe@D+*-4f^zp8-U^1KDJN&-gW1atte!rUm8*48=v z(aOJ2Lr#u%FL;but|27WM_#}FVYJ-Xs>ld_X_ckG+q@#r0dmrtRF=M^GO7U3`}$I| zou(+Xj*fTE?%gbZ7VL{XE@U{Y5nuQ>ZA!-^Jfdty^G3-*+~S&b(F5RnfWdbUl}pmpRvQQ*`Ri6A1TLzeRl=#mh4xrwl+RJsGCI&NKQQ+ZeE zL0vt)9veW#3m+;b*rkfuyOjJ3_F9xBJXde?{Qh}Pvo16^nBI~UB-FEA$@`LPQWYSyAqffAS?6RH^WRSmCng`zYVcis4^7VjFH89@4?6{KAOeshi!WW zi|*409)|E8Q4Ml$_x-ZbUi_-ZHj0`Nt)oOhsKu)-nrvw305R+G5#}kKXU%pCiPk1L zzXC!SPONo%My88TQ2Qw54By6BYWZR2gx3+4OR-la$|R$#366YWcG-7%8})!E8^B|LI!TB9%HmKAIw;`V+TxFKZkq!-wB zVvmlDjQCD>Uhro;x^1CErO|p9OzMX|7CFbj1?oZfg1JUtL*v$W_qNKvn)(vsYHq9& zD@n5BT1TZz2OIu2uw?qSwa8j>fiq|HX|ti|R@K)CjNj|$`Y_IadWVcv)yLxT8xn}F z+i}3`y9%`Y$M_505{2YD>1zGUKh^=?yz5g@#c&qeBo>c6U<((QmMmffXlwg(=6OFw8CyJWk)rwk~K(s`T0-8&VjIU{mJ*=PI+`M0j{q1ykuFe{io+*eG zsJc4rIcQT;zbnY(m$~-2Sh2%YEOQ?`Xr7=SDJz;ZulW|rgW4QWmOk|IaMwk75JJ*8 zhSTEhlpKth)^V;sLx3+oN>CceV{m?$tXqAo| z1cbDEw_*lp3Z(SbzaLr~o;#O~8iHMfAq86Mx0AzuBwmq5`uJDM37hpDvEsPK8 zt5shH{ZY%e^4zC~juyMU>J9tc)=YTH$(L&=`Ld-XJ}-*SA9No&BV&?(d|#C}i}N^i z8y5O=Q9_=^cJ7{DF>WmwtbsVcq)*`Iv4>i56$5YFKYdz%xinYi=oQbhAEu3Q3lT&C zJvn&-dq8b3xe|8Uy+KJjn>Rl-EuY>%{2YU6^pmDxK79B7Sx!&+m07_!_fqq!P7&R> zJ!j9K5C7h|#aTWEX(y?<`I6^EuR5<*?Ax$_6Y>6!Q|5isP{euyx1BnK9Oo_a{GtVxa$s^f$28XIZobCHEs!khb>s@9}$<@}hH z3P>-qWv`}o{9;L{SQ9-}+seKpTM|)27C}B%(J%pw$(WYPd}-C}XZ=c6M;3tw0S~aZ zGtlhg*p}*9MG>}Bx%fvhV{l?3K;JK`@cSEgfR^dTaTsbgf_B*#(loS5P%sx6q)ItA zKt3;hI2o;dhGu4M_G}{DYl+F|o&TJmc~JTB8=<@sUp#wWk4W5DbcXIRUq#2DS@a=drRqUw{mO)p zvl9@*o;~@g1}So7C40O)6ArqBQIbc*kq}yS&*#KcJEL!RtmRXvW?Z+&isfuEVyTe1 zTbcdspwi?kPHkSXwUx^hS8yyBu^W2-)D$JPHe+C5K+d)IXpU*&DO4OHXE&2J;J9CO zE{+pf`=T>9=Nhf^>i61>LI-T_%)@e#JiRySw2zNZ^nny-y91of9&2A83+h6#g(0jc z5GTzj0cg({MNY<`DBF?)q@7zBWSQ!%0bI8~O1LSGzBgxC8a~USHFMV}mPN#%Sz@=c za+S%3rx+z6EhlG)`65i?&4Fgy0uyR-jPs76Tj89I%@>*KB{axqfy%=uVFmNefzv}? zKAww5f<_%Hwg-B+a9lI0earp#cwgyGgH9wI3{6PgrhZ%2Cq79lEEAr+axqnI;x#Q0 zkCDRLAQ`zbhR`E|0j$)isW#n)rir0WTM}s|UgU_^F6@7te(m10s;a6Mk4e&d@xTOq z!rP2mSr*ndMo~t3IvNxoi~4+7kBGQAo0rtwiJ?YjsQB2?jT!rVy1i79k}Z>@0ST2Nx0}qKrwzsepZNxSLUmiO=^C+Mfs{RQgowbLC4@_hla;8z8EXT$T&dK z)*z{+5g`(d>P|45TyZ{v3BiPDgDzls+~kCVc#qAP9E>8l<(t34#g7T^-@o@lymW`m zlY!y1Syfe*7>ZWm#E6LCCuji3Jq9KwPp^%VNFpgOUYxB96Qj3h=*Lt}pB;(S>DyxKV&egoEYOhIIqcv9US0 zu5k(}cI6e-W+~Q4n-HtdN+y0wYqXqGSKa|qpw!^tU{`^IesGPJn%XsViLMe; zl~l*_$YDj8J>_J`lG?qJN=g>un)jR0^N@v8Liz%5mRsyT`wPwhmS7o5p+=~0A% zD=T1W(HVQZ=#|Ji4@bBkPn|i_PPYo^$zE8-$;s+=ZyJGoHjfGAT^WibRWqasUksr$ z6;Q_8f`F$rOH!0two0{IDyd0Qi`oxbV`ok{MH&Q;9@@1q3TRtY1MO`j2dV2F!?ij`3==BzP0bd+ z-{j)H_92XPeebqIhm84-P6lF_bywm7_u5Sfm}fQu1s+0?gD{z!WS@ia-Xl*h#ObN3 zss^*Mw-EU+bVw&W8rbIHA@!fLfEu9rv$9c+Dabzw9SG%#|d;j5Pu63%-gZzSmqfnZ$iHx%54`2RrCv?l<*3VqIqylhFzL9Zm(mR!3 zB%M}U6B(PMZxdnIHMJ*d1mjfqYSK7LVlYO2*>z_TixsBZ4t47m(#DNgd0tFY9x>$# z+NYW^)@}ubs7VfwZOhkroa9rQdH^?A3XHBstPR4#SsN|A)nJ(>qg_+jkh@>URK=cK zq;bHZr~mG=XIn5zs&Le&Y6Tua$F?!+;Ul?Y4fBccg26w9WnwXnsXjl4h&_dft|e@+ zBBAssU1@D=#KYH?)Z&v&(@`&fKX3aKTG7SMMA+Lw)MU{7MN}x}Mp=_&_o&Eu% zO?Qh1NoKu}P$uL)bO|OM zINqTtPUIg+&m!a>7`kfJT^Z%K6O@^y;o%l_TtW&EYF`nxZ*e+G(Q~v!0)3i`p$i>H zl)@QFcZP>5`2b1CFssD8KQ_$rEkrvYnue(~e~$ePy)9g%oZs!s#8tUR1 zfb??j?%fuA+JFE?bgdAG#$vxW<* zTlh9sd|_CU$!VBOhJiEMk&$G8j+0EVd)IHM7x=U7=GffB?HNw$693P2BQ%r=%J@Pn z0^j`ZgJnu|v|}feGTIlA@UCHBJ<6)DO;MxWrN1rA)0Z;CR47e!qzJjp?Cjj-G>ex*VAi(kyziwr6|sC{DNuay!fq~Hy!7v z>I$Hf{cl1_=0owicP_C+5YY2-)vO6Vqg9`ED{B9hPzKIQaP8{R5(DPNu4Rob)H zfAaN_dw1@%|3^?EL=ZX85)@a|J9nJM)V+_2n(QIROLSKGzl@{IYZ0U=7dN*ws7EI{ zC9(5md~2?S&uYHvuJ{H+YEOA_UpoZ^%v9$ElkjASh_!W+_5@@W5?Xcw73H_-thD#m zb-Yrj*U*q_Xy9>*&^8FV4|2lksH(j<@nVaYp7#a> z2H=rpy)Q+hUtup4CLB5K*!gr%VhiIr;ggyUMRbiTZowz71_WOIcK7_OJ^V83AmqldVx!F5%$r z__s2>$^nG@>sIoGwO@$0b!bg~%jct|skvJ=btHJj?VC5#K~QMB1W49}Syk#kdh#*< zh&oA8kYl-pCED>(Et{anFiZF}wWNT@gXJ+O2?RwBqp2N+S zwSP@P+w=nf*2N)`g5>4!`ufJmn3x=FW#ES0@4lqEm)!J6KOWNrvge==U zbHD5smtyv@Q=Bo4xevv~Dl#f*zO499pB@sH3%oHaLP;Q^2caZj>f*T*C(={3{R}!g zvkXv2Xo)_}!cdQ~&=zm6edRs6P?{jpe@w4zw0i`HhrRui?czxhkSyBLRB{LEeiGGR z6;mPKG)K{QDgpANp3hv$L~*B0v6aZ`!t=EZm};Vt4xj0y`Ob_dwIoT}cb7OhiLxf* zlQGQbG{*8I{D*|EG}@RN$MB(S&g*_}kq}Y3t*ou<^Z9llFw|2n@FRZ*v+F14-l&EvL7y}s?ighm zT2kp7cXzuKPt;IqW@0ksn8Klc{xaGv-P775O#|P%`Mq-ks1=qI&Q=%nd#i6-qs!g| z^)8mDeWo({R8++WUzP}eyB#$n16DRF2j>d=SAiUF!*~*$_pcEg-%L~mn6;)A#gV|} zvQatN=?d6TQosWD#L&&V9YwB(T--&qRU#ba|1J@I@Fg^6IM09gNW+db=4yo zX%|}II;5;n(sjSvJudVJDg6ROr_jAzuSAUZ2!2quct&%4NOPoUM8Sx#>)^q*SvQUX znK+KuO1Ay4u0eP$08D>tP^Ky=AZSa!CC)p?W*A4lSd(vDv0H_lR>k=%MDz;g8D)F% zc8jmvTJrViugMx;G#Sx=0p{2-N@~kW$`j7U%x@uNs23yF1hIvK9Y+Uv!|I1 zdP@q4WC}3I6D{v7^og@1Xr1b%CLslvXZVPkY;4CX9#W)0!9zYjk}E9tsZ#^})^aSL zDS&C+5x#uj4^jfx6V~byh4reJbc10d10*f9t_%I=SFc5zJ5gx>ws+qk-WomwXbcq< zw7`p6QOij7*U_q0&-5bjLDFfCW?npIAJH3O*vgR*{Kv4sC0Fsl{wj=3&fy(rbTPqQq!y zjBFSj9R_ApKm$c39O%6*wj}!t%hz>ZL2XgnUO{TEzt~;!@HzRF|MjH?w>}JICEM5} z^KLoROstUyy!IHVecO^_X4SHlcyq3>SL_170gdQMEWixNgky(eb%C8RmvmwA3AH4l~T_h{HK<-ys?7Eu@0PoW;e%c|9t@N zC`UWcmjH(HOXyzilCS1cS!BaVtvvr5N6PpM9_7FEEW7$T#YO2?bbA#tA8*i&NsjI` z?-k1*pw%%EeT@j|ULI1fl*N!Fl z8}BhPX`gz2c-XfhJX$gFh=Kwc6G$HSeAv3SpQ1tH$gOFw2;58$Fm`^&O{UTrU-(LL za=!YCikdor8`gj|z#7{l{$(XP=defDt6sn?%M7$!g1^m#&?sWT+niE~RvVzG$34I8 z2~w~6)0muVfa-J!{e-(CpFBw>1ONvIaX4`@o;_>g7ZCw(5F)gHt4X-Q*$31}>8MQT z|L63BicdP56%X0dG6i<;I+Xb3%X8EGFLEgB<*}K$d+SzJ-k_wU277Wb`!MB4z2y9W*i!mkYr7GM zix>K)v7aH)62jHHchZPd$po}{{d!v$UgpY^z~(s=N8y}20n8;2#^Xx1fj&C zA;XIGy>4Qz3-c;93Gb4^gwL(pw+R^-IGg~M&{ILe)fM+NHCaKeHH13^MBT34yG=0- z3NfI=y=mbLp*cNxaP}XZhxdyP0)lEq0rw7$98mv-pbLp&0;>aIz?jes(8`20-L+@W zF{u0e8#ZKdi*8EOj_Ihkdzocb%|U?3#3XCEOMm3UD`5oYOJ!+JWjLqU(h!!49OLgr z5^ymZVO8kGedFyVZuFhwe>bTlE@+*0W&2%5M~rs7a^>j-3$AA6m0MrQ9L4zf-7=L6 zcMA^Y8}DH%9_NyASNUb`G9#pZ>=;Ccb=pr4q_j*A4{w5oW<{->785$^olXd+GG-mp z0Q=aAp0kq_cu?lMV7?)+;g}YXZozN!K^v`5C03~ zB3s*yuo$cGh(1fzPYZ2;$rGkJY=cpT=;qBk!s^7++Ma)nV`mV>0_O?|5FpnSy(i5u z=1cmZdlBK1X^3i=db4K90)n`nwszs?&%Utng`+Y}!aHvmW5KU$6mCE!OBXXzFcWT< zf`S>&Ai|n3zmQNa`gIT{?O|;pHYILq{TOTh`t`bjhdtwIAmv34O@=(0#j3)6#Gjh)DaS9S<=N0`^sU3$(NSW-sV&hnj1 za?NY_E1X)B9f)FAF?O`4JnYozrs1a-DA`TQ4a5Qv_lQP|T)igv0n8pCwFut+*W4N; ze>;$Dx?bfL_=|yDmrF+p3q#-4m--ElE1x50j=_>d9B633tl{-(5Y6qUzoiM$gaiaq zdRJX*oEPD^6mWjqF_LPz?e4;UVoZrYPUpB^VB&{ zfXP;&(#QPxT#oA0Wc-@9mT#vl_|aeJsxySE$uKrTMmJWOecjhBd)lyuvSUZz$g69v zvhG7$`etBAu=!cme&iu(S^xOTt)xIN&n!T_H5|)T-S_kCBPCe)$b{FvQ`|apAXq|L z#hRr3*FoY@0)l_Gm3~%)ci8q*KE1MTyP^4|^rim5(A?#!8(**6gNx6~xjc3*Lx1na zv}b-HJx!VEo63)EFG*dM;DFzQKleY`9U{J3|L5Cnfy8(FZ;2vt*+L<$TE#54ZCKaeA#_m`NQ_ep+S4C$nX L&hgx1e_a1>bjvxo diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-icons-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-flowchart-full-of-icons-1-snap.png index 5e31b9cca2412dd65ccf26a209781d20e1a14406..c2b24abb3c26b31500a809b187ad0e3a99463ed1 100644 GIT binary patch literal 37527 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 literal 39073 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⪻~;;3!=^7yuz=q^FRMWXnf;IB{qrYb^|RyS*_z|D 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 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-1-snap.png index ca54fc54b643b05b8c9ff1e5e590eae1e203cdcf..d2fd387869116a018f7cea0eee83fd4ee106b43b 100644 GIT binary patch literal 20537 zcmeIabzD|mv@Qx*n24e%jesZ|2}n1nNOyM_2!iq|-5~YS-K|KMba%IO!x@Y3 z+jsAKYM*`g{_FnEUoY^kHP@VDjyc9N#`7#by^t2Yeudx)1_s7;aj~az7#QcsFfg!G zurI=2!tLH!zz3$aoahsb%r>G03=A?1@u!a!93q!ToL$;HPfyq9>@<0^zZ87DuJb6} zn_D57(*Fv(50MoeF778qF&bh@?$1QNaqs1fT>NF`4#b|cp}k|cTMYE8$M@Iyv{R*pEI9aJ@-}d|ngw zKtBGuhKU6q)qkDGMt-gNPk*Vy?u-$bS%uPHs_s?DtGD1*G&)F~-JWSBIfsD}+d?j+ zF+5hEm%oNmP)u7g-=SfmSa3*s)Mbi1zxocD(6CUg#Hdj}Ps1{cMqTAtI}J7e&@u~5 zt%))d6B9mP-orW%A0Dr;Z^8%0M{*(L<65qWDEt4M}=QD0trB_$3HPQA{`&{!4>+t(77W$@#jOs2tMNl8hrT82?yrp~vR zfY8ubR(=0019uq3g6TZ=6>s0er+0ltWCZTZlL=6!xHt-aA> zayE^0JKh%EKR8(Q<6Z5&EyG74BO{ZcvHwlrV4nEPz4dpaPR9OfMP^w)-ixLf_Z9m1 zt$x?4xJbjvsk~NxJ1xfTAj>}>Kp|(6-Kb}giT_~!ua&_9MHUtrG5>>|3T;NU;qRAk zk9ODK6v^+dq81yzoubz&4<(|bqZfZqJm%jUrwA7~)-@e1*TTfS(^IteQgpfBgo9C& zM|;e@>KR&^D)ot{P=SG^*Trl1GOcEs#1E*y!unqDIG{bT3eCsTFJ330CyRaZ9i^P1 zb{wa>R>7&fG9(!5MY@WzEV^j9&Ru`qrkl3#ccFk`gDqJr|>- zF-)zN{j#*sY$Vz3_~ZP5zILzkT5C_bYF4UP;KeSPvA+3^0EILq;wZkb z*rHJ+&>{ZJG}IGr!4Qlxv+m77s?mU0W zvXM;P=DP+pAGK``Z2Xt)$|x7Yjo%Tqa|L!tfswj$tsn^=Y#pSAtc~SHF ztbn%LHM}IvGQZRp*1E9Q zjrqKGffr_GW}jAfgVoKt62!Z<8>z<@_UE)ac2?XC>OMD86}rMYwB3&%cXW*OB+Igj zmPZO4+rQmrD*r=*?5i*A>+bMvMrLMashE>oD=Vuje8IuNFl&dLYTWn!*=8d+e$Fm? zaPoGBhEjFvy==y-N3oVP9TXC|OgJKPb8{6kH5}`6^Yays50+4VD@looJkos-jfED* z@fh%K5~xYZ@UuTNujH1k`MBNdx@#+IVWCURYxmUBvNeNA951{Nxv92&HO-a1V z7@k6CZW7lRps(5C_RNnc%dqRA;qO?pE00sDUXBC4*wr6XPIO=WED3KVeu}{!pyAqp_`)SHGt$>i5Q=r5ne_y-KX0cZ~o7Q#VH#x<8;OjrDkVWG&D5SLy^PDiHszIcD)=`ua0lY54RkV`7MJ{Q2{>sHkW_2gZvH#3i%nuW&9BI6bmn87`4eNlCeajr}4+ zt)M$cM|8xhnNbgQ2`m*wt)lQG2am%6d9Q=;Cf)N+@G`9g+^IfTeBN>Qf8>+ z#Pts?cf@;1M{>zt>4MV~n?8w+ZL|01RmJhnkkLqKLA2xSeMbieE)wIu%qYFK$dq=0 z!{_#6u0>c_SU&l!zkWSUOh^dqZGcD8#1~_av?eAc0X9fcE3?bE%czzR8yoA}+t}6? zj7Fo=d)=Mbxw%!Z;xlz8Nks&H`}Y0MAB*j^G3_q|?45hL5_-=dZ~`kyu0BWg<{TY5%JE( z0O|sZi6^E5xgud+7; zld34WIom4V8qThmr`PK4dVPDbr)wZj|IXdJN=BzUuwkp-#zL_P36zQ{a*5TCzz;uv z{)}}xGd(Tl&tX2Ae(ur@gZ}JSK0ZEjus>`DzsWp5e4t@sl16fCQ&0fqh4bf=UG_IZ zhV7-L{Yq^X;$maTE?l~_loVkm=i*WhASKqr14A)OOB3RJ{K>%*vv_CS7s5NFq*>pE zy;5J*e7th?Y8M5HFV5Q=8>WA!-wuq{U2LfXr-9wL_xbnl-v^7#wZCb-_wuS2IeiFo zE_Tv5hXr4&G6Z8a`w?-+QAaz(Rp&KR=n;ky?J-5;WeR;6j*?sof$1y#?e%phh)MkzNpH~f+G-|*=B_wQc_zGJ8T?MO1( zXM>=a`7(sDMhcw3YE32qR+ro*{+EK{58n#aW1{%Jz>ZFDyfSyoBnQ+}L)pTUJXedS`V+{pEh9W|=~f*~kNPG*=cP6%q}Z(tI&HRc z7PubTMR8d^K`x7STBLOaEBQ}zeOcHYbMFHukTB_mNRayM3qd%)b0KV1e7q=Xam0SC z2fpksv7UoD(EL3IlzcXscZH#qkNf=j8u)E8ASfR{zhFv{r%#hr^Yol{N9-Z%pMxt?p3dg0WjHM) zhUCBef%Sz{P)k)+^$HG7U$Ny>cd~5!znKCdZfQw(w?aL&@b}p2YN7qTy-n`t58gk7)q2Qc-waJM>PcPf&(ZmgLToLMmcA$hb*D$? zGmmP85S}YPI}mu;_Y{8fB)%{)4;jj1>4DJ8(yOR<7F#fKwJk2$Uz+f=o+K$kak*Nb zJKP5__V~|qJsc1JfS_+^`TATN8~2X`@pwZSoLh>WZ^<;>kGBW^*!mAl;i+4&lU`8X zmh~iaON0k8c^!HbduIqz86Ug*+emq%==x~%ceu>vwmvaX#WcvRJUc0!i6+|*oEm=s zrw)o^{A{~{%TzHfikpXN4OtJ|-*QUY=|vZwh9*>@lG5tu3G|Tlj|c9tn%>{-+hL3P z+%7jX+T)EA;CSeiYIyi^|G;?x-7X!*e*=~#|3IjzSkO&O>Ag~4IRC}AuA>vW!5!<| zvlPxng_ZD`*Ooyt$k?jYi*?eNEeQ zT(vXEMfH%RFW=Bt!d6hE2kLhb(cKqWTIX8MrUSvwOmA&8ihxxw`RMo@q$*B`9`yYD zQW2b4edUf_TlJ)bY?hO301`s^Q(s-Y;i5J%fvbl?cJD6sO-}!ah%{v_N3F+?e?W1o zxxc^9OH#Jkwqw+t95(8-L+0(puTOFxtk)MvNK4DTc#%DrU!q*$jN{*C@%2iqv!{ zVQY&G;*w$%@2-N^4NamY2o4$QyYB(Wr+}9xKl`Faz_Z0I@{GeGeX~cIzTkDO9I>F= zQ>YzN47=_UaQ!j7a6yw^+{e!>F`A#WD@SMjU;%CZCT}KHJYbf9<#i;T(lv$+p1GKJ z1x7t+r?rZba6WFOJiUrkVXqx}K=u_*{Fyr|YgGrN0IxhEAf$8VTF>1DbIn6FRW;2s zSMNnxTUVLHZmfh26@5mIWcmT!`@Mjd{u^K+Ft+*#?| zTc>zaG(?5e-q5b7TQ=u1`^Elsa;bl~G<{HA~#4tq+h>FeE@%l`yY0?_KSAH?=~O z43vPA=;mBiqToq?EIa`5rAQts@mH@V{N!UPX~|;WQ9=S1f%X)jR>7+yS(L}yeU(s^ zr>W)@LU9YQRxaI^3BaOeeV>~frhh_yeqQc?Nr(%?5{wh#K9AyW5<#i+=oo1lUS9Rl z(NVvd+Yg`1o0(-&F2tioWtDnM;%_c282X=ldhc>_f_Z_Y>bE!U6b#7kdU{L%F#kFD zGc8Xk;Ay8}Tp?(B;qxsGqs<0Z>~!_?8qA7#cLJE*{Wf>iGc|t5*SWa1n{uAAYjx-?)f2`PT{ zmyQxmVZJ-g6FmEtlS}HEDoc1hiA?2?Dug<2l9^4{5k}BFcp!K6?(@De_n7ke^{p)% zVgZ-m>#iAUwr_G&@||}Jv6fawD*$Ajq^hwm$C)N1CN7q(Raz0rrl_#Iz~SHWUhG44 zLbu3=4GlPdWzZJfrq_3eUfgzRbX+CaonNf-+@+ny=4Q$7-+O!uq-Al*U<;JJ?B&gV zb#=+N^Y7+HJDYibyta^XxaO_`cL%fvryU>e8nlKp2S!B1TTW?(P%0+BkcASdDwtV2 zZn4KW)o#UUu+TK1@?g>0c4ctR-@HyoN4syfwF4vruxRC)k5X68H>AjaLV}FZP~m$&68?1N%0027k=|a*a7EcZ zBpI_n$i02{Zf1Xf;=$1-&erj+alXs`Yey$FfK8#RWm&#)@n!hMvr~=KI@5D=S^fQe zwzDmUP}Yd>JKy+SgR@I-a|i}>+U^-pD|hgVcHOxQ(KZDfaB;->>uSl|+Xw9fNv-@% zZEc=O-^Qhi;9L#Z-4IMNZQsPy49N8rG0{{~w_P0fH$D;&KRG=-X z1Q@=R1l?cW?3gOYPO9h&u!aU^EB!^VtMu!*k$~>b&$+!lHdDtbdD~3ac(Y2ct`PWM z<4&IkeEioF82|OWh{cuY=(!W+{GpYHGDybk1kgyUlA$Cn2l1{k02UF;20f4~2nFKd zOeQprcSddO3c+PJ$>8hNw-|5b$%Npi;d7W+Xdw^ysrVAsdFdaobHpA9!EYMG@b^~* zYL}6g5x%HLwc*)~nJA36U1v9HkirFzJ>c770l4u!!j@RLp2v>7h&b8!0rpL<>j zy$v%VIGf25h0r+L*-ZNMfz&C^0(QX&>Tka_nHYhL^mK;S7{Rd|lkw`edY_SsL2mL@ z(a?$>4(6`SazD#9)Tq$O@f0Arbt?{<*!TJFz{4eOqhJ1DgI^UYVK4p6OLi-emo zo{9B?Zsz3VWN{!5;5y6_vCUtKLPA2{MISqD&3}jb`}RYavykEcfVM|G zMIUpWf$UOPk0;bmvC=oUX(J%@$PJ}km3s5s%)RoP7ge18UkJ>-7k-V8O{ z{g`*Kvee}?o?_vtY#v*%7W0=gCCn`Fmf2Hm`IS)%rK${ZxiYt&nI(PM=+;b9L7t>5 zkCh6R6jez`Nc2$1=H2=QBhCKY`${R}>$N(srARAYaBw4)vd%Jjr|OMAr^{dwTVyc&10QHs7Ww zNO6(v;(;>iBNslYh~S20bLB;JzKY-gWKH`$m*q;6pRmqv6(02Qf5KaCB zp5F8b>wID=<>cQZyx4(@*s1Q5?t6pBc;tS;c$`A>Wv@Z>1F~Yx^Vkv^hIN0>E!O0L z(2KawfLD=u3k?W+#QwVX|J>+_@%YnU6apK#N-@=&)^KnjK(B9V*?pyxfg3(!{QsZKXRd16Cy?CQb`_FvZ zV0PaEYyVjm7Y^3>(^Q7~e@xDOldPCQ`JZKZ?C;?*XmlcvZbmg44WXUFP^iuI1r=D; zEVdCo}R*25L;=+0Fhz9~ptzDb%uyf9APvt3}J$!Rrmd(-8?zsG@I9*GwzW&LK z;e-tX*d?tN_a>*X3!di5x39xQhCOjpe~*KC-kXqIzz2nmxSA>qN+ys=gt*uXE6BP+ zE*kuZd&a)GNyg;2N5hTmQ*{r8kjA}r*^M*L0fwNMW-@;3CbIv^(5fgVo2dfOFmnpL2&)YH=K9}C#U(| zOTv^gGPSL|4++saFfEO{qCy(KK4t~v+siMW)?U&yWb;G36z@9bB$nI$WZ;d}=X3e= z0cTb?^~0c@^2V9-57F;CV3uwOHa&C2D~~+_UsbtSN}QU@ln!n^5QzK)40#s)C&c-G zLV2p-=90gnsi`HPu{mLKwy>Y;Z3Wlh!WaPHYEPBF)eikUn@*&ceU|REby>T!72{9g zr9b+xM-u@wmz%Gog7h<{v#W~g%laQphA>Ohx@p%b){BNPWo+*Z$xB*1nnP-`p3cHb zwSUn90Mk4(JF8_C1;|HbchuQBr*H^rR@cK7cOQNfJlE^IfIg5bDs6H(WCVAC}%j_R_-7x;&zm>W(*# z`P`l*)x(GLEn#nfn%~=OAE|Ydc5pDYo&TMPmsG-rY_Rc2iotLj_thekfT)wB+D-xCkE77_}Kr-)FR4p(}CZ|-UeA~o!YQ+3*#utRFu z^(j#r+J!axL(%f{$U2I7v3`jkZ`9Hf^M5sTaEauy)L>zGKRq*($T_9~4bE9Qs9@R! z1)oA|ELB@jLZ_~rPTc21txTjhD>l`}h2xz;kf75cc^}EY_^5p*g1%v=SJ~`w; zcw>|0M=K*`^7Kj!L6p!khvfL&dB>zLlqJikEfNRs{(z89{f(|4?+>qzw12qVg@=oq z(wni?yD>ACtd!w>I#eZ+r!UhXjI-U_61JA2RdEo`qLV8fB~dI^WR5}26Cb3_4y3|Itbb&RVN3V{+k~^Dk)r!xj>&rt$lD3Oao5lpIbJDG5 zZhC%H>Wbzc@~x;KV9&I6Spho!${jj7n)yMjW;ywGo*mO1m2RLv>!+X&D_yUvQ_f#I z*e2wzyn&reCN3c*RWf}5R=VP{HivJ~aljFg(QmEM)=Es5rXgZ}tlzPIYlI2TK^~&i zV4Brzdw>&QcIO*#yHH30k$d+-@Z9wD{MN#xHqHd_(c{j{%xjYAw9s5=)XSsgIoQE! zHsy$buDr^!>*3yB^zKNB`|swFow}i+IqjnT&Gxay)iT~Y&cV&=8#@Zp7k4j0m;;Pw z`G}E6BhA(ly>*-$Z#0sZIwATPTEWoM4g82h>fE6N6b19PtFyDSF?bl0Q%g+^_l;i9 z4+@MOE2b(@$?4rhwgd{fLjVFSl-kxaZ(PV<#!JuUsXUl?uhZ1p$Z9k8?b~$#XSiTN zWfhg;DZxfzXkuOHtr+h3Ko4cCE7V2w%*kbM|3Sb zgE=Q3kZY7oqvbU})qOEndisDO0rTxOiWQK?2(M` z-PZ0dncWadXuXOCJd{!%DdiONhpvzo=Sa64^6eK+j*jWZJc&0@uGbRav|7?g^+?k20Wulh&1^#3)hn6( zrN#0-r>tFp#!p`4dP75ad=>laqX&XdR_9+GRXn!XM$*D*yZ9smK>0@-gK_u!KDbnE zC0pfwsrZXnx!$a3sfd|-1NNT`mrPfpS^7uneN{hfTH%c;3ToDnJ;-x6G392FeKf)) zx=ec&d5DKET>B!eEy(*OwWte{3L)#od*7TBL4MI7z?A!lOWx*%++55Domq+}k(but z5r5X8D=hRO6oq_4LxA;5l*HBB4pCBdvJ>a*^^xF zubo0?qu+4G$Z-s?QB)y&y*{Q*kgK1kU6`xg<9;xMHs`jkam7ak?q zvnNoYFf4`b?J``Lo{UmFVe&j%1~Gz!o-lnm`-LCiOj+Jg3HJU+Y)dj^WfJ(9le5x` zmrREaD=JlQt?l6Yhn(3gkOS+N6vS;Q;ECmvp3A;lQCGZ@SG>KT@(*}<)b%Lv_7Od@ zf)^41h64Tl<9@uqL=S8su%jr13En{|*lXPOk9x)G{8V_R-V2S^pWt>%!q;6hO@Oyih z>PZ_4<%jZY+B}smgJy=(^XH%4_Gj=%Tz5yD_Gdz778-v5;_~np@+kg2%3UgR`k+B4aN@`(1N?N?V1cpikZF-2WM5FBJ(L3GW}FB1G6VuTG-(k_ zK&I%>joTo)B;%04|_b6*@P%94|pXV-5d z5{BvU@$q#R)(eV0$?c3<67$AgCx`a%E9kG~ynFwi-DS@LoX$Qm_bf6z@d%Xl#b@sI z#-&h5k)uNN4^j~v>^7$t9=vJ9MSr>(KS`l2CgvT?pcH0@V6%`zuL@xZ% zV6H97X`_+4r^?;EW(RacFM4Fr=cbf)Ct2u-kp9k_TQkoF^Hy+NGXg_bb}F0}OYxY~+fx=i*^58eSxNh+cd{@kd@vXOHMMV_z)8xR zwbqLgQ~;2|L_p)!ovN6Icl&ny@UVuwK7!#NLM3R0$V`SytU>)C1tJJZ=%cVZCp16W z5cAHft@nh}mPjQTob0$ci@2PNt7|I>Q1I0@=e+}(nwo$pnIguIkcr{}9bpKkbNU08 z2TvmT1vY?Ct9P3E!ii`MK$I#9jJ_TU5cEqrtY4R@sHhA-?zm8qAhn zi2&Ch%KAB(CMcy3SIgGe^jhu##cBW{^U94I9B22-2WAMSl@*h^AIYKw4w6AL!sdQ* z^oW>Lu2DNQ`tPnlP|4oc1P;?d8V(L6YME$-u}W9aVVLiT!FDB$V|xdL^4e$KWzt9v zXE!zi9v)6Mi*v#)`CFn-Hl}KZ>V=6f1!nAVjrkGtvb|}z2{IN#h&(>t-hcOfgmK9p zHiOkbe~|^ek~kpnZV0wYdQ2S5erca>Dnsl5Y}^L|m7t)YL~iR@U<@w)ZMb__zn;RB zy20V03$C@jGNcTuL)(Rj-Y8OXQ)lIXtg3D8m?@+6Z)*_RoxuKxoasIglECBtJp?w^ zFG^nfRb&WI+^JR^Z8U>?qpXFb@g|&Os60>GPSpxpLwU%iB`fMIVI5CHQJi*fcnhq%nxI`Z<1YXY-v$|Gu4}+j)t)p zf|RwsWo2c-5UJVNmPLCFAt2}YMj>i+e6a1boKw%{@aN@O%ZKL9d2h^Hw{EdPWC3-H z2WN=q-of#09=E@Q!Jd8QmekWLOWzMK!GU0?fpXgDXm1@6Y{kXLv)e7Jgq*y9Lo^zx6`na3W@ zJHZ=nNpMgj_&>@!On#z@!p>a;81oUYS33~w(*)B ziYwOwz4s;u@A$?-W~TLA8OiPBk{a1i2a;7>xd?gK~6`0(L8as=xAh*^=-?Lq&{BhUk+q7tCT3JeJe zLE=8|YH`i-wwfTUi5z43De zrb9{~sR6G2>wr#>Ara=j{lvrslEOd<$o8@t10;8~XKVHG#3;dn>C3N;RusIdxyZji z9ROX7zL}XBU3jvVnHf``2j1gH%RoxI>6f0dE8C7$ig1$U$ zfT9EsE5QMopZO>sFwF{}h3bK_-|Xy^0)0)31)6CPrwK#pBL{{6ZEs!eY@!DSt$?<+ zc5PkVV&RZk*K}h5qAC2_tPEJw+6ka>{4@UJU~dX#3!I=qN1Vu6FlPvP>Y;HT8VH~+ zOo3;GLrhJ29`*nsf>aO~r z!~q!68BjL#!m3*83E&u^g*`NWg1fOE=$|p7S94tUtq>dy`t;w2YgIBX_da0I-iIO+x>2{cV044|-`_z@|92v~ zgf-2_5g~P(TDm)sRvyW45XYaxHtV5gIIzF^gZx1hNxAMv>t67x0r1ppXGZz@)PpM_ zA;AD_;^XUk22|ZoT!04sv79puo}W9IZx{~&+u-!%7ztE?fq`$%w&1+C&Fbq-@JvGh zc}}xo`dgE}%vPi2m*HU`F0pQn;FLi;2^>4<>(`gaJ=Luxt{z8lSe&N6i6UhNB!LtV zcj=*~3$ed;c7Ub}In+>ID_6N4>YwfJ`J3`#x%JK1+$ivu;x?jK) z^C85ZS<$R618e&Ccj3jJv=F=1;S>->D?yj@fw@DJcdOo1+sH-iYuCEV9XFBi2-y>{ z+1Xhg_8ux9I$S9l>n^i5NA$PA7$P#z0g4GMyRs-UHg8Zd{!1Q$h}hdMcxrNHODPBB zm8SvWX-OHGJ}7Li4=985YG!H4xS?`b%FeD3;D~Ae3G`K_*VfGYPnvFlN)$A|dG$2a zK$1Ux{P;}h^L&y+R0#YVBedO6&q;Gk|_7#tf&sfl5%`is8ImE&CvQ2nM@Hrd~| zw6sLd6olSbkTcUjK!BpC)BW@iQ4mW|Jp24R%6`;vC$#vypr9av0{qqh&8Nx;>_3fv z_C@aH%h&{K^hEVN5HY9c=H*dE9pV*(dNWxvgvqEg;ge33L=asVI|(32R%v{)OE-vq zAMJ0#+fB|$4!l581_*2$L>!>1Rt34Jf`LJ@xcsCQH1!BL&6f8BPMy9IniW5W)5v1X zP^5^cQ2PMc1X9AwFnQJO^AeD2t?~gZ;`w%Ip1XyQkA|0cK*91BpI#7Ks<_|% zWRui(by$^~o7+zpAO~3a{SAmRFDpRPNe5z=fq?-8)gZw75{ZKl5()gNB(EGrT5f}$ zAhjc2G!63K;#gHx<^C*Ty^glqej);8p>|D%6ocHG;0rG!K~VsZ?=D>JhT@|3*Dpjv>a<>qj~EEvkXZq( z3xS|pImjosm-E``XlT5v2E)@Wr|O_A?|pmj5}*azh2i!}xkQP<5^FRl$H*6k3xr@w zfjve&TMJzUW+OaEmPwUI`ym=q@MO@|=oxh-eF7M1RY%aT2@alX>xLs&8VBk^W(?62Zse9J4a-ota>dk92^|p+SYx(ud~w(`}WYP zl!8oLTpW?o>Gq{)l;ryR`(I%&?uhdQ4`6`E4`l@{8=C@1tpX@P$gYa`5JY=K#7)3% z#5KD0lL%DJaDVQU^l)QiBO)A!)`9Z)>M#IUMClH4jQdDA==A5uCEI#p`(&VAk(B`W z7l0mmUwX)d6{v;~y*0E|X!!Uv&OpDlwe6qr$KrGE1X)?-qj+rPAf@3E5U96ORijkw1A;Ob5`;)L&(|*MELgnt}raXw!DHmW<13@5Y z!Bp<$C3^X}ZyGMF0JN);{_vhzCe)oNvhmOSFt{xzKS)ROr2q&4Zxw^&!8vRp{MNJ^ zoTJ)Mqu6QglM!Ic3lutPzZ$M9^c*F{bbE73XUDLQj(o_S4Bqk zAW6@xtYko(;t7UcN=QR_u@wX&ISC0LM4AqjX)>_?8#_DD!To?lv?yMCIyyRuPQmY% z;HOwa#ebML|I&I@rM=I`&(EypWpEy&x`KOz7GbusHa0f4AkS%UDfb=C2nYxmK^FX0 zqzX3tyYVaoEd&tI)3ceqOb0PC(#(M{3v0EHJg~00&WXffza_y0>mLR=Dn#h5>7fc| z`?pp7H4d;~$YG5`LqnDc8%MT#GZRxjTi*}3tk~v&q6!?xCiG-t-`4Q(xL+LM#kK#dXDAP zGqA;TFpWPVj(Q9#@h)_XTdM6+@4~N7w-06`%(u4tw6$$Cu|F&Juk}H@EfyW^B%uv* zagn9vv8u7@PnZ}UVUeqN3=6~8FV#TGwVIJYzzHoaZRu>dad-ABVFXP<6N#aBhvBX- zsOS?!eD5MPlPnYfT22d8(Be)D)WY-uV&<7ziB%$x&HT8E9RO2$78Y5Ma@jroM9IJY z>o%QsW%;Pvp=lJi^|K#8ek_hwlufZQhQ?=)WdT^N=YPzkp$~`;7?}vEXpr28*4DU9 zI7&YR$Wb*Z|@20xIO1|AH5vmGUmpWCGX)B2m#lFg%IY-Ea+r|km`an$H_ea?; z_sfEW@-K@AQ0HE08m3i&LmgOEbxK7_3T55fu5qJlN2eUMaqIKLn*I0WrdJA|f0Ds=6EN0g96erL-W?dATsp37A6?^h z+^`#I_iBb-y1+GJCLtpuqeqsLzcNOPp!m^)O5IcRS4?VQAqV7&p+#3Xr){AuI#*EM zW5B$GekS2}O4|iHG8GgQc#59KSiZ)i;Xz5tclGs7{M3G|az{mJrH+LQhDTv9`MEd7 zd1QJZ&BY*tjskPB2tW4M%#W2kSR49 zqN92@%=1Wzl}$}e{kUgCDa8TEwzw_7giIL#MKh(iAK!*p9w|n(-9TnLrm9jAxgnmxCLbO>Xa<@)tNTJ&614TyHeUkg5hLYY%>PJyb533FQf_yWX0Tr5+=ro#XC| zqg$4)+7oz)t_VJNYO=dSB2nhJeVWnwO2@u^T-bQfnPzCFgS7J7_3MOP#$&51{DFdt z+aZLxr@u+Kmw#!k@Z({`eqA}C+^RU(X~;f3>2U2Vwd*;A@yAAM3~t{U;dM_y&G4ER ztfW77USv(?ImQ`W7fvln5q7;nhw=L&&oZKQ6so5Xf`b3`d2Dd*&xq*E2RWibELf1O zX`XptU|`fD60_KQ$Wg`n`{L4Imuvun(_c6jtq)grgIrVu&g1a?!3krTs^i=GEfZkE zQ`pY8`6kWQZp5}|Yl-u(xya3u&qR)5{?p&RW@l$3vfAF`oEVqdF&>Pe1Y^H{C%2v* zjzC9;hrnywiRwi@TML^xpNV+|sAF8zc;K>wD-s{?21x3ZV-@-WU(~a&CS`|BD{?9`#-kdCEJxr{0Gj!VsaAX{- z4|Y4nOUIFumHl>dd}%hLNXxtc-mB|-z61;e8Ni%f?bn>E8A5z1Pskt23XL3wQlG2H9FlnYzIFS3@-#u_i0lyMwrDnwzJ%6otJZznTp3dUms#(*bwm!bKmJo(hL&u)oPgu zai<3|#vPcQK;G3oyJ$Bj`D-SXX5($V=55?_E=+m)g3+7pRq)2aaD@BGoT|9L^V)F; zWg~v2g*c)zrfe*C#5wa$mioxR`>d<&%2fv$3~F1i!7Y3T;3dK4LjCrW#{l|*L5rQg zmARI$Jty8jE zN}t=Obr?9daN{*NMAz_eWDSns;<>*20!QP)U0HxOJi*)hto9~E=L(11Lg9r&_O*(> zP;-|l|KRO1+oj-{X6?h@^*1nVp7UyWXt=B^hHX=}-`)HQa*PjwzMQ!oMjele_@0~07;l`Vu z)F5$x*PVq5sioaDL7K6{(c$2+_#f}Rbbo&Mq?((+1Rg2@{~}_TDyypUNSKfn<9E)A z1^Q)%>ZUZj+cL|bvA2}2U6rZp7$e}So>8=~5ZSsjcIv^m(QrXI^J=s<1~PC%!OY{N{Vq8N~4EmYoqkyx$Oc4rh+OMFVWe;7sPaQ zbdsbixSUr@?2}}ws4JY;LICf~PWn=t=9r;K6f?|}m6Vcl)<-hTpgQDy1L=QZATJ4~ zE#pE+(Ca>KH(=*_;KHE2-_*lcWNc*DDsZ?px>!bSyQa0zTLf>UG^bcxzrKX5L)}G2 zs+B1tj!m47uGBnd6yD11>hBMQl?>aDjSLuPxmtIMyPu$!JEhH`!3nO`$J`2()S+mf z`~3HkFhIskrSoa~)6^(QTibR9l|Lp-Wy?oOONz?7M=$EGV%WIwcGIdbS7{(gM87lP zs=9QVxPMRD*y!sKK>dZKBfqmx&P{#K%@u_ZT3)-GuDZDUU3 zN~hh`P3j6;V|Ydei5FmWlg-;hz|Pq~oCf^Xf-6dNs7+EMTKi`r{=`~os-CpCEnSs$ zbEDZefD-6tha23}*^xG#F-1ha8OLr|7%pFl>4Z2;48%H}?oN8*M@zaM=LRd+a}K$T z)ah02x5h13oq8xWyX{VHoV#%^5?}jBG3^kaX*mB2xTNd29j*DF@mH$ldx>lu9EA+( z6;6taOCe^Pv{q2rwZU=N>{ZV)XW6VZS5#EgUGA6P{8MAS*{p50@27|2-(fCU%2eNI zqL09OQ}gj7WQHO&{n7GE0dIWAWHCH4Xi3NjIoPK41)ZIIvx4ZyT0Ah{%d4t}l~}Je zL;o;HKjyd!Mp)S2t4B5D>SpQnq>fc~9<;E^=$#ySL9*FsiE?%aS{0vrwOHQY#EGgB z>eT)1Ec}Gb)kHRS_L=;ywzhW{+Vy(V!&Gx#J4QRN>X&S`MOgoS9It+%0fM6*G#^we zT?`jUub+Yjk+rjX%dPTw#e5px6mFZWJqAf!BI-f_*y& zO55Fb-d!WGd6`)}`E%H5sc55H9yJ4jstroJFzAcXP1Qw>Zrmpm_VR0iNt^{GF#oVs za{*)&8`s`A5$4$u`yw|2N{ni~+AK_DipXG$!7>nG>imdfpjS7$c6t)r5_9?j3F)-* znN5V|=?$D!j;fVA1-=`J%u-VRF0-uK4dsr4O>A1(zJ* z?0WrB>gin#G0r-cUadUrjdVXzT^KHrgl1UKQr4-N-H_?7>1Z1`WdyVPJ|SR`!Nu3M zYH69P$nq(0_$=Ik^OZd1E)Y;Q|i59rRJQ&V}S>SMkE z)y|24BhwluD#_8=V%bT zpUo4F9))ML)`Rl*7G!P;qUJ`t-#a)Q#{<%x6yve>B&td*A(W)fv)tT3x#T zD3#|u&PqSpg#Vz1volRb@qjdcYOOviMgv~_na;l5e0&`fW3car?R5aB+19tua4B#1 zoQH`ovW{<}ZYSSOoO{#j1p-$9oJNEq|9dvtc39!l@;y&RX9}r-dRuA zRmT}eCqe-yt;y}g52IRC0u2R}naSE?K-{F)&;FCve{3oLK5YLt>;AtN|Hmqx|7*H` hTmSw4%^FAU4zX8r)x~2dC literal 21645 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 UV~yJc90*|WboFyt=akR{0G*$F&;S4c diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-with-line-breaks-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-a-simple-flowchart-with-line-breaks-1-snap.png index 3c8e666ecdea638582e9ead1ec7b8a7c8e5e1a29..f321bb0b1d83a1121c5d61c3e55a876f2fb01acb 100644 GIT binary patch literal 22269 zcmce;1yojT^DhjDf*63PDBY=`(v2um(%mWw0@B^LNeL(+NOy-wbCUuhAl;30Bi(Rj z-_QH5v;Jp&@t*j;XRT-9zW2WNRddb!X685BS4lzY5&;^ASXgIhu&{8n z@Xx_7k&bVy;SaW*ij)LaZX3k{78VVb%)|R?&e6-GZtiW{r;Y1##pZJXUj^DCl#W=; z*tR7TRX$Tlu*5uMz9w+}O4D?k21WCmk)cKSG^`_hZJK6v<9i)mR_=lR?&mgLW+sW!L%;&HnOLkq7L zp@BbG7ayRIKX)!-^5;Li`R2;Xz)4G;Ze?e_lOFR~if6FWV6@YS%|ZP)Q&;_dzp#ZBme1BF%V(wD2BK>L8If1x|W zb^5ajx9iq(hm|2IAt%f3n%5rN!&bU29v@GR@fJRi>wG!bM>)XdC`dSPFc2lJ(y8>PmruJW6+w=1*zOLTI+Yuze8-U&=O ziA_#U5_DkO{vL=2ubGoT#YgmJg*P`gN-2toWNW!gt0*abdlcZRe{zDov2$Xwd5e!v zDnCDIYt)JSDiKkRL;)I8gxjw)JR?3DYRCfAroTWTfS`pE7jcG+~svrpjG!FKr?`B&g*ot;llPz zxVe8HA*}aTF6LkT{fZukq6wsi(dqpL2FTTAdCY`0p z*<0blwFNu5^|wyZbnma`_Ly72_D^yWhi>^276t~jmheXN!SA~~_VfI`Im67 zaF^YFDQAUI#%atYZ?-im;b5D5amd{26T_&do78PXs=No@CutupMWsLRwlwQbt<2QO z;gIq3%S_V9vFr{K^Hkl6EGrXuaWDvHPl*>7-*0_AKRrG^{_%KssZIAYL(Oz0<%NYb ze-X$0^s@a~-pG3|vY8&=NI;qw^^e7;r_ak#l{l`j`*~7dxpJ^;P2={B+aR!B@O8Dk-vmB**O>Ct!1HPVkAYk`ODadlR0jr>?E<60+us}wwJwU$nB?MI>G%02m5;Ya)X`(}gRb7Ec1B7Xc})Bk&TbaW)^{QI<`k-)^) zKPq|Lb2yQho+({9$$WZlF75q=@vd@*EWcRY6xpH+RD{sqOylt1#0cZo+*QkI5I*ZA3)XkHTgSW5dHuFdmfLO>{L`#|s&a4gVQY+#J_&PR&q8#7 z<2l)2GVYhjOL^7W7q0*A>eVz%J5MrJnmu)qO88NCYCty%TSTqWHJQp|>n1X?>f>Tb z&WaAj0^`cG#a{ZA{Ui|32?~Sa4ZVJxw34|wZm=H@_?$8|HQVHj~!HY?{0OGEWatrDe@LN4@ddK7&Sj zU9bQ}&zr6knRY+gUh3y_i}v@cpcC(1!i~TfLOD9|5xp5Q&rCh~k>$G_3mplMkMFto zmiL$^lCPE5F5AFFCTK>^{FedzPuaNtA6rhnC>VTYOo+XioR-E;PhYoumqF(2*|QrP z8^Ph>;e$!i!9RZdm|k16+PMMKvTS&^gC$ODWyL!US0j|zZ|J;^*1a`y^)kl2PW2ZS z76>j~QXegM=*>5h8g-ruFb+Zt9$$@^z=PmI%Td8gl!9s*85xViC3yy}3yj+Qg@hx;JK8T8<(sUAMdPjT$NL+=ga)*Mw*~484w1O2$2P!Ps_Q;H*$urusN+RjprO z+}h=LjorSH(usweyHG9fYiMY4cbcM**>h-F%3>+8YYoEzwdW^#xXg81>znwWKY!*# znECiL$HvCKYn?3g_VlR1=`qwTu~gU4_>!2EwEc@dDBZL>b*R`P>QNwt_SOg-f|pzK zopY6|Lq+D-sHyXmlOC~ha47it`uh3#b-{q*0cohNudmC>%lE?R$f$WHiJO|5Qe8f` zests>aO18742?|K`CGZ;N@i&2)z&CJMZQt{kj37twE6j$9-FOvpdV9*N~|~y4aYYP zoK8=U4_47@p`Sk|Jgxh%5bL(uS?;h@=(1`2!o`VHK2Ze90}~p<1u^L9xIY^aI>PKqV13iG@JOo4Iw^k)HJdM z`47A=FZeRYvg~NBjaBxhDN?VDqBTWDMa@P^Z8{@MN=nH1EVK2|j$!+IMdtk+2OiSW zK5S~~@v>oT*F>&UP-IU}KbPsM@;IDcS;_fuiTt`-Kvr(KY!t5r+s?o>O+Dr1rHP4& z#CBoU)^;V>{(Gml5Mk%X!Ohew`yNOoqO+XOrk*(uBFA~)I$7^4S>4{;tm5fe1v^~z zY&;|`&TuiRr`>UNMw?MTSDgj+s8 z^ddH-!=Yb4Ek!Pzjgc{Bo@on(LOnyDF_F5jr1S|aI=6XW_NGBgCpD8+ssGc0LBC2} zO;^_gNzQG-@ULPZyeQ_W#}_2|eA^>=%5^`GY3DY#tUhHRWX@^;39ny-&Ba?-# z?9Zz{$()OIQ-FbVDvBK^!?li$jSaH1YB@SQqn?K=!O6z0kr@V+u91QcnZ;J)xp0~m zz^wHZw2Njz8?|6R4x@vGv^e{T8fPb&{s(Sp_!sB-%S z6&OY9Kckqsa!Wc`r}$L{9Pk{SBH5O3PEA=^zc+8+UZbSU!9H^?9X4Dt?#$%WRFciq zPt)2rXI)o{`a{FQQb2s+q!<8fFJQ>X1gH)f`%Sp)@jk{$)9bf?P89Sf%HBW}$TFL$B@Z#hLpPFE9_tEAVjGkJM=6*R&f zYj(XiXZ6I5jZ+8d;j)wx2e%YODdZR-g20sFKUZ$?zXzGk01ZecgF`E)HW*&(`{kX~AcF*9~i+ zec@_Wm%{9VwZxafq|m|YlQr6uks=ukye$&w%t0x3Y5`R814uUnF=-Hzn z;#-HCTP>OynQEhk>gITnB7uzpF1MsI8g12hnhi^~bD2)Xc}Za?vJ$A$*F2jfVd2b0 z^J?;**wK5Drb}KS4h*#Vl^^<;Bw&EDH8+F(5AEDOC@{`tI0TW^dz1K>QYWw}zdrb* z+K>JS{&o$1bbfiMVU>bX*EUE zr;(| z#;x}*fj1Ds)T*JN5C{%W%FAPa&OS4U9yl!JIGOD%OS&$kXsrwus2cqghOics4EXyx z#mgQ%FaLV!6wY(Wf4ygjc3kPm*3P?DsbCsw$4gD^4~w_8=2e}N@W8Os?;3ee?&xSF z&k_&B9rTX~5i}b95as+SH1xUTLp2erIXWRB-LGH2N>+a_C}5OHQ%G5aF=T>=Qx5y> z_wl0&xItOqP3xc?%K+ZW3M)wb;6PS6E7vUh*Dn@_W#_n5dENMO2lA^?FCc2rn=He{ zV`g9Ey5%hGbzD?EKftcx9>0`}R`xj9QdLtcjO0NZ93K*Pja7QRoNKcPW&k0Sl$3-{ zayK?NRo|Yw)LXWRpsPy|+hBuT3Il8sD?+UdZ2?lOR-v;%Ja<-xRjW>6I#@K~!oER4 zDfKO>RGy_F<@TofTL8dJ7-bH3*VMs?1A5R{-q+Oc)fyZe1V{3TZzJN`!vazwzFYOt zMiNY{=iAeeM7cBu09WPnR}f^BLn9-rD0UmdLSm;Qx|24H3+-aN(Ysm+0LWOum-Y4a zZr+Nv>&S6H+uN%rc41T#U8Q*SZ`CqXA1Kabcxw0L42if;GhhV&Bb1{tf5DdLQA+8L?)g%th!epY`Ijh zppK5uwC(3|t(AlG5gHT27}cs_A1(3TF4|+Hre-qy<5}Ejm(d?_35D$f;c;=NERgA!d1ake;yMr2)zut1dyX(Z{E1l=4@*R9Ef(^_TRsI482x356Ue^&uy%) zcS4MUeWya~WFU27f~Yt9ro))|^XJLt#|Mi3j%sjJyFGSA;vrnYO8ZnZW42K1R;K2f z?8?aguuEfDGJD=pbz&pI8Xjw*)i~Au!9nJu03Bou#5AxCGj)TZcn)511SzmqF;I=)0C5#WP$-!rVFjkCo{^O04iBbH>k`iv>4X# zI9QMcH)Qt>^OTKE$kt}NSi0Su0RaJl1{{W!v12r7vaFs0$CU$=ftN?&7Y+|aK*`07iP}9QNc>P}A2) zN%O+k#d^Rg>JDbSFtf6f1jlUD!$}h)!7JZQG}hBK;?3I!S4sKcxW=f3vGw+#oy4}6 z_pN>Ns3|BCeM!c9e!RDW2p)52R8*2#ui0WP9^QPL(Aw?oXp7;o3<#p!*4?SP&fzXs zTT5FGX8|ISWzX8thpQa2ii+KK?IPf|=;?bMS8x61s%tr-fZ^S!Yth(CAh4FPd3&YD zT+O4P@lL}aHH}v69RH8-HR`@ z|21@7%5UgpHDgQ)@q@O{;US!-;wQVHj`>MVq&Ya~x(sDbTkg4CjArCRi!%q!ve9*o zFDt`qqe18{BljN8Dm^=1z#*18%;gRY`-v%B2!bk@Mi+ADWg>E zofXS1E7(W=c|mY^t8u|s5!~jrMhDh|7Y{NsrSRCY$-+-=+@4a44L%7^@rgVsuT?AI7U2U&koP7QED>}SF>BSjRxzW<=B#@H2iC<-k& zY9Su*Eso&Nb#?rbdB3c;tyC$$FH`;Q$O{S2kgLpcsEg67f=KE_Zm9zN`Ts6+@t@$y z{|v*vR{gspx~bU->n402hD_m$^;-3t)~#TMtX{JX2KdFA0S8y%HInrBdl45u8V5;c zOx(mL;y;TdU~0ICXsij4%m&JYMttHbW@PQ+s2bM2y*+6okl=4)YY@kya- zOfk`+)gY|b-87g7sNsS8D0s9~4ElPD^kwY@eVxPf1tD1eOPIcniD|6KFnt};i%)Q4 zUbt%lP}Mni6zybQ_u-PHVVtmw3PdXr7ag4TLX&o?)~{TR_2=Q8Ppk}hA<48u^!Kr; zscAWQP@%E029vIUvx|&d$=;?Rn1SBr{Po8qWMrA(JLy|{)S$4>DV%|!(G$_!Q3pTw z+LbG|V^g%Wv=F8aI8Oqvt@#XydQk#R1JN9nmoL-*`;WO!Yh%cJI{V@I#Zh#LFXnk= zc%B2II0MI2%bv)rIbqg+kWhq!gBwdt5C(!f{hWhEbU&%RtFM}sMb=v->G|c!e|J~9 zk9Uua1S>e@c16iSWBE<1FyPF)*C}h#pFuFC{j>QsIN`S zkzc3$!c!uyALkoth!p_fc|w67{gzeMk5Fb~=d)#*n96lAs~jIAW@KweVag-#CzFVX zku3+m;l`rMy0Q;GvOS8p_!m`&_E;XiLnc6tgZq=k$o(pv1YC_=z{Y7TkTJX^%VziQ zpYW{eE;JqpiC$i5t;pWv*S%j=XtO{(^I~T6dL=aB@Z;j=ZyR5?;s3MYDB3o&LSMA1 ztXlP2REO9}%SE7&3pOU}DIRX1jfVTky7cY+vtKwx+ccDDEc9$2?hEWMZrI=6KX4md zDT1+0Xf2~^PAG0r2T!kf7&F&5j!UtR3)d?kGJ1hl{E6Y^z#xf-$dx&r_!F^n4N|mp z$aJ@fXuc7?o%+{wb?}Ko<7EClT}oX1=EmuNPxl-SZg{)QzZd2RpGc32+5cbfw3~X1 zuk5HmMs32*@~KKcHhttVJGBP%Ht`VN*gC%cxl~NIWIMpVd5`5e`==^eWXYll!k;8; z`89akt-43Iw&!Bv8HCW5L6` z!jhk48>=3iYUCA;wS(zV^rFic!DitTJwF;iOnv!TNY!ck-4`h{>%Nc&$9hq(oe_0l zwqV1!+Rh|OQ7dQGnGuQez+(_mEG+bn;v*dgk}`q^nt?+iTK--!P7IF7#x{TSB6H%Z z_kKNqd5#M#4iPmI4d&K6EE|$~Z(n3jQ7ZJ}BUtNyaR0fW71yI!|ML)Y0pWMO8|#1G zVJ`gP;_CXJdd$TIxFA~pgM+!avVQ*^$A>-ZySxi&iov0t_reL;L8ys@XgJ>QS>HG4 z+NR88OAe;StSU4-xBh1c(~t|Fh*aFY6tgZUEF0H)Z#P6FQEBwz(a>*fTi~ao(!64R z!0Q+;fH1Ov&ezAzw#eidh9)Q1m6aFqtwm4gdg??aXBP@PEE=kcRvqy{4n6iYB@wgQ z4QdN&8qtwKWB_-1G*7>}y^DbsEHw>IY%q1 zM1}NfO^WM-?L#a*w~X#>hYF+5i!dR#Im88JQIi!EX_wKe*AT8DMa<5vgpJq zP7O>@C_Ust<(5P?vL<(^s2@5LFOf2{&S=G2E@-QcU7tL&YBb!> zY=7^r?yjh^s_4-u?EE=8aoJ}fqNfuPDvDZz`>5dq4^_Wl!WWnwRMLCnkbCc^l*A89 zgt`E!M~e>BtWN-CO6^-}^t|2AAnMdVb#b@0%~!|c;&)b}%o_s@TZE`M9!zQc@k_s! z9%N!Ca2*D78QYeZ#7XorBuMe7mtPL7bIgdHYA3R){`|7whPay$x?G9(oxsNooeW#$ z*K|wn&gyYp$CQ5a%x@BsZi(AEg|;=^))>WdqY2QRLM>`_T?2VbNdG8`^Gz9n;Tw8`VT*-FSD13~klihXnFRIaJ1 z5n}%OBAdVQd0q`X?D{JAt*g76+q7%=U@7m|^=N%HQrIO|^u+md@vD6WNZ6Lod=c8J zC*k}xjGo>(o=U)f&~AvS6S|gbDD+mL> zT

0;LlB`xuQT{^g{ThZ{Z8-z8!5A@%^ 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 diff --git a/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-styled-subgraphs-1-snap.png b/e2e/spec/__image_snapshots__/flowchart-spec-js-flowcart-should-render-styled-subgraphs-1-snap.png index e2a6b9454af6b994d35647bed405486a2e983385..561c6d80d170f10cb4d61297a461b8bd1c64e07c 100644 GIT binary patch literal 24238 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 literal 23784 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


Rvp~CrkhytKV}|~Q-0nk5#G5L>-2-Oo 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
&A0t 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 literal 48472 zcmeEuWmHycxAudGg@S<6p&%gLU5b=|pn!yQgLHQobcuj~luC&-NJ&X|E8UHBH+*xs z-}fD7jB|c`zs|4Y7<+8Q^{jQT`<`*ld0q1fcq%7(;~Mcb6bg0Yv6Pqs3Wa_Lg}R`6 zqtJjR{DEv(nkasK|HWsP<~Q6hhAx1V14`vaw1 z@S9+c(igAS^O<6Ey2WGfpvb^+BR7#RBUYFyUPQGPU~8> zc6MmYL~Tob>5rwQZ6%!Lo{=|+$2W!NJI*esi=}vjsh62chLV1M_~z0*T3P|6^Y&N{ z`^D~8ZtIoN+Mb7V1%I;COF~N~JmcUV(b6lSQu6W(V@?yP;z9V|%?3h~JdXl&>wKRj zOWa8GI&<;Grts`Jo$x%is5;qd(<=!f6ZkM(WTwv^`&A+JTDn{Uy~4uofOgZs06|1c z{UdCl`d8?eSG=l!B?Siuw|#S?n={o&G1qvRMRs_Ik3&}v%ag71y}^N+$;_>?bxs-` z)u?M~YBK3d>oENNSYDo|>Ud3nN?7>po1UYRp5B+9v?nC!tRI*)Uzm)njg^PID0)d` zF;dKAa}FVa&>QF0Edv8X!`tdjFN=o5dWtPZ^p;OI>aZIt_s7l71#}oSO1qnzn^~{d zvAVmv2fy~J<>255NtKBv_O@9YEo=L>?7zjz+!^`qolbj#KuK2JeI8OGGfB@Xaj|PA zm&C-FgMPm>+*#~FxoIVC>1R_ zg>;2f>5CW`Xz!w;8fL;oI^SRm`=_THhyNfaC%0c6j)Luu(i!Zsqg?op2mk*4&&Ym7rU3gzlkd;-C|J5shAZGy+;@Q zZF^ufltwsO9~S6-yjsF(KKL$C$PHh8VaktUzF*yn$uX|ONWVRXP4Mhs=7HyHM>aA6 z$BR0>DUW3n1SP#M$GUTztx z4?=ExtYCAQmgzr#H!Ag>MXPHOw@$}U+UhGnaK+-d{w80)iQRtjsg~EN1FGumXc>1| zK1nzMpXr75LV{Coxs%oO%nVCrXNF?>!O3=4hGsc8m>|Tpp* zKS!+WuPn8~ddF*TeSN2wmX@qFv9ZH&OSIQYQRWj>37)4%Jw;|J-&ArtIl2TNf#G@_ zr#2eE9e0)ounULU!9GlWeZ|@R^P7sAdhUyb)$sQKH1tb4+;M#F2dtHD`;7+dnbN+b_4NY7}*mnsOjBia~|=;lqa#j*i9Qk&yXWRn=i5I9QC3Tk*3JOHFjvANEUn?eTnl&g+%?*MB;n z?hdS4cpXgnUDBzquP21tyt$0cjY_tfsA{Zm*$xz{hS)TK3amUoZw{wwto6afJUv_% z+FTte;i)>^Q?FyaJ_8=Xiqh}?^ss?^xldk%OZfc6u8#FgLvdziMxRu`u^kqmT5A1y zbJVWuc6qMuEv*3?x@g4#)*N#Uc6Rn)By7N8azY&Vz@lx5Y7|(n(6`!G(6^l$9QQgu zZG=4x`M{)3Y-3|XVByvo&nE#<>c-E-!Te+#a&k-Ac-|gV@DGP&Vr=1qPx;nUqBE!a z6FeyW=683g6OX6r{BHa_IG71rHB6UJ;{Ma0Z5B)>&<~3mEU`+$!N)f`I5;4@j756C zI3Y8@bn@q`M!PN{RySc&bNny3;4GVqYN>qHd$V+Uz7IHmirglRDSE z6;t=4rS!dO0*#o8^Rr{0KMhSyBP{Q(&Cbmc!J+M8-je(S8*4sVn%~?Yzdl}h}P#ETanbqRfKwq_r@jltn)f2x@PoI;QmJaT za$OP4N#3kg~qFfy1KfTbY^E~ z2fL8)58JFCu%NARVXMpQtPd5uvt#e3CMNb4jj+;nmp(t6Az%p(=#tKL3gOX%rSzm= z$Wkqdgaq!|fy>DZLWxu!#{>C}I|7uH3bv# zDNs{W+xvl0g6pu{-=Ss19=ox>U!BE|vb3}m*RyeQy8KDh=NhW?#}9=}Wv1TV-W7+J z{aKG+zWgTC`1%JkGc$FfJ~%bn0i1r2c_yU5E|GIV*eF!R-muxh(a~^;*LDYwQjSKf z*ZJ`T@@&L`wDuLkXdG;8bces2em5U_52n3ci^-z#{jA77bw)2=b+Fiiq^723XQ|Kc z?DQD@T|$CI?o4ycE%&Oq59-XBtFN7zHJr5zjh;XjvvzPON|Lm;W>wDoy@`beLGx`` z7`B#{)?PvR+7C?c=b6e;r4v#0-;KM-QSiV=9Ur+e)Cy^=s!zGi`m^#yNUFr#0(em_5?GeMxxunk{1S4&fmjD>|o zK~XVZm2t1YZlROSwD%q*71iqF%Rg63COW~LI{=xqe0un1C8#wBlA~%(AAZo|f4 zB2s>Pe~5hiwtrIpNHzxZzQ%z&&TDmWn7LR;o|Zx#IxGjr&> zcQ@~xe-XTYzd2DX>ci`M{H(0+99M^L4?C6xL{R0VSjik4tB6?&e?-Fxmywo{(XV}b zwc>cK9L}YnI|))Pnh!;bI-EXgzB55RCHr+rfPlinOHRwtn7lmJk33d#1_t+#y##mu zBppRhy$1N|DV)n-m50ED$9_Ux)6v=S`qD@V3pf$;FCKZJ-CGvJ-|y1X2hO!c6AU*s zS7Q`ERf7YBiUS2ton!AT-T@C{R4aH3xN8%(yZeiHklwOJOAPO@qiI`PTcH=A6^?h+ zs0wdg!gxMA-^=9ApOnJfMl4FuHXuphfAonF@e&41#Q0mkCTe%J=xpeAI7t!$2UBcj z8hgH*DjxeZ`S3ff1%t7~aa-uY?xG-C3MpkOhkX5dzv}1@LqTETA%MAnu&{-nuh2;a zo!^C$31}6Bb{J7{aozrTrrqq-bm{5hlW|CZK8d9}tqi%=dn;;?LXiv&p)*UnIqacVQgr){BWZN3sn68#!;4*;so&f+uSqeZGa=lzve@n`@q z&2@v5$Vo}%Mf3GKN=sjR@OfkdUgPnTCrpuxL+0G?BO+u3&tH%D_h+j&0YF1+YrSF{ z>)m;M$!oUj*w_$#{Gzp7GwO?T?xjHn=qs%Sf=(met%yiNE0D;vxYtXLST^W-eNr`#P1^Gso-~ zMJsdr6JFI*kgEXZ5m8Boa%L$nQ!i&}l=Yr9ZonoH!O49W(Y(e=?y>Vsf2J{HPrS@~ zvsZ?NsI0845uzhz!}ASTY7+#C5%DfQI=U7@Uh7ZKvR`l|LvE8eKRXS9z(Im!a8=b9 z#KovsSh`e;UPcL>aa#-%GAL)=|0M?@^|VFI8%an|{|+9v!yO4ZO`hgk-Am%N(aR6& zCScYu0Z-^1HySCnSjF_uOG7 zgy0|CS<0D^VA#CQ+>u1^RlOvqCsl@kijlD$iLo*(b(sNl+}!;p6IGR!h*PUpdsgZa zN(6Y=r#7`UHu05BQdA`edZbjIq96HT>E^4JLJS=&G{y$- z#qj;>?{NO;HrDHBV1#|y>O5;z$Ce5T3XsO`QB$)Sw%$Sj;Z_?9*-HjGx&UwtMtscA zpFdx`cu~VfBbq^2xT<}e*&}rZmx4lmt~JWW!GW5AAt)=0(cQyC#!y!Jq)b#nNCt6-1Jnv9Sa$vwoyns6IbkXAj+& zPiDix3BQ1ZG!ii25&z&|13n6*f4LdZ#lTuEP0Gqa>wiBk*tYTOv=Pc0cLhC?nK zad3b)M}K%<9zN$ECQ@^9$l)Krr_?`%?4%S?_jM_{p#noP6qpQ@S2wk_C)h*3o&d;0 zpa_E3JK_cu3e$`pA~&|={)k3Lef4TOD$-r!ZEh~h4HE8)ci7lI2PeZp;e;1_x|k9P zAPIH#5uda-hmncpDeG*9+?mM%^`T#sZ0HFwaF;4RM5FC76%Y9RPYimn- zmlsflVa;odLGxnVWvF;g->*Uyb-ivfOyul-fd#}L0JGZ4f@*56r1{8R+)BGROU!ot zP0gFj9L^g$kT*l4qX{&B*iRiUBsm?3jz5c{e_lH>QeM9bSaNPTx4OzefF>f~&+kkE zx{@Jt_q`!w17l->Tk<+OcWyH%+keeLZab>6L;lWe7V2kGA=gL<)VJv=c&+cOt*wcP zi|3p4P(qaQ^Ygn5os)%yBrh64!T21_@-4Xi)}Ve^_{Wc}P+t(iCqjt1rlHnOQ!6xL zeDU2MQaj+705}7vxgU5IusW@2;Nsy01O`q6NSTMIHw_5%1d36?-Cv60#mC3T9J;j^ zH8eH(?7uEzUQo%=Xo2hz!)HeWwUY6lUl|uKUoJH2AZ`pHk#u$C$HZs6Lq&xSNJz_d ziTaMn=UBi7BPCV~vBrr=uV$cXMjSaJ3spXXCZLCK zH;%{32*Q~CpI-s>^S&YPYrmWJElyO604S!LnwsJ?=|(v@IYC8O3;x;)r8cC2 z=b!gVEXP`5FOX>H9};2+d3I-IC;|{nPr1{&Udj4k{u{t|+tWcT$X4Cvi)PmRF}b?h z0kJ!v#Q=^fZXwYv6dE>r>l0m2Pe?s^VhH7r&--AJvx7JKO`&YIvr^O)Nb~T*eY7$o z%j#1{lw6Xqrojl*@w^^KoB*;>_G_cDAtXH0^Ygw9dNq3aH*enbhF!-G!qC>%&QfMT z<>ci2%2prnloOK!vh^MZ~;tc0Zfm(ty8nIc5Cg|VT;T{f1}~|b36-VeedP3!Y-#u-v$VY zfNsnvaP-NwH94rNhsvE;P_ePGdl!G=V6X_uK7RZe(g-F;AMMwKZN2`3cJ3Ly>ZE0((`~5r0uG)xJQ zeAs*ghyy%l7nj>*pDtTFIW>)qjZHa%RXvuIYlJQ%%Z`k#t}WVNMA-XcbbtksgNZ}t zjpm(6tPIZ6{n{feYov%Li!rCD=jBlK^z`hh;Yd!j+(qn8A<^VgN~E)^Yj|wzv)TT% zUL|OlK)1l{$*|*x$jDoFs;iNY&dw(jy;H!w`ShwcYybqU7mYoU@^o}`D%9?*SL&h{;L>k%Km zKu(@`@v_Q7xMX6QM92taKO_avp+hbb2UwA6)Uj10K?PO?{vYW;h^(8^+vs0}NdPB0 z<(5c3t!(hozVftO8l0JW|5T*Dk&#>&pFpHzW<$ z$nB(6J@i<``GTFOJ3+3f<_GIiSTnidf90kdy~?1K_M49yu+5t|H%53y|Q>wy;!h6v~|pm-+nqzET&k&l{vpP z7jsumAQ22Ak_l)dp06{K*c<(E*x?`FJGcBGS~3-*7{_>EE%oH(@2lnC^w-DBI;VbU zY26tX>4I9`MUYYr&+w=#U-F2sjD>I&)WtC*7m%VCx8~S)1?I}Et zy_&yhr@xDj{25+X?mX9#yMg`n`hyoQanECgKeo5q_h)?!N>BF@DbA%lo5dmKDvM}J zbdM@KPw?*eP&fSC?r^ctda{dFJmfG%q~63Yi|(Py=% zV@JJ*iL`vtH@hfCl!r?^xXzxFyOxT0T=uL#v`hc0NgI4AWVpLZAN$4kia6IBYj=29 zqSasiT3BP2w_(1EMsTxTWT;G^>v;c6&ZLOHJ|UQyvreI=DJj%x|I5SVe*4A2 zH>bzkeREagqsKq(#F*n==@PcbawQsd2=t^+NNH$}t{gL8OA@VX^h%bm4wn{&GqKb` z&V&`pv@ESdua&W)S1#u~;rtG91v*-1U$)*B+K`4Gq06&a(W_t?{tQYET3KIPGd&-j zI~&hZ7fOoA?=diXvAK;oyZ=PytI9dnn)yTm3r+UiRN@<%;MBHCFXO4#Rsq5lLGkg7 zvNU+|BFFf-SXDuDGF~-(4Cfw1w4suly9Bw4C7wYFYc~+fw*t!_)hRxyiaaJ?tmEja zZ0PI4T1cWwD=?ZPot7iNo2S4!e)~kVa=Mz(x26_jBHXM{mpiVdXileaZk9)n5asN4 z++jW`S4!8uNn{T{L78|gpo8s5clo_OJa}Vlx?6IL*-NYvMUR{{B~>DXq}28|mhe6m)Sib;>E)=3ZxbRMe{$ zgT}G3I;{^85g~DLZuz@?*%_)89@nB$Q)!;nG*u5C5fn$o#)g7dtYpcK3JC%;N5eHI zc!u_H&u5e8OF+`BS9;o+y`6h{&WE$?f0rL$lSoy_k6Zij1O=Hjb1Qlj^TaGg$;q|E zTcxFiy(wERKh@jX94HnPVnUU=IS-dSzn=BSItx~At6xS_?I~zG%WB-IF>+iAv`7Pi zw!7_NnB;yy}ySHx(p$ZS-vonGYqvkgYXu-$sE~}vFK#{zh<0f6?QRede zMyD6)%6yTelwh=0V^8z$iu>!R4zn=SwE6Q9R}8BsZO`Sdn;sjokS%!peM9~g{8RbSp&9f@ zwq5tnfK|PIm{8rxVPRl)iSwpASnU_DbCr#KY@LCe)s=~AzwYio^$iWUM294p`0ew> zBY*mGCuEeqK1Hizgk z(2yE5$Um}F#k4~2uB;xtdX}dDyBhVd6X)0GBiQot(NJIJ=;H@56fGZY{vmmC^(xb{ z2?VLuB!vXDp*&qKNYp0_A|mf&V`~zH1Oh^Z#a4$)ZhsrdRIw61**l!uM0qa!}-X@OO_b^jxde?%IFnZJx4 zq{*EImX@l@B?Lm7OTD?Zl@eOO)H3)_bG05p31XUiJYqE!&uepCUY_M6r)lGANr}!} ztKrTc2MTDE%w(4c1MWA2j_UeWJ>EVvLgb;dYKDu~#o_Qr<=59|B(TK6!5J~})pV8I z@rvF4o9rAMyl#7(=$ES+DZI?7goF~nL2z!~yfT|BWIB+eZ<6?*3Kb9ZQV+W5X^BAqJnRu)-dlq`+n z=UMdo+=nRExDLpIDWj?t8~0IYQI#3W9H=0t&2z^9jojXBzWT;{@16Twb20T=H7`(7 z&JA$6;C%LP?qJ>%J5xOR_IpQV>n_i|pc0bbFXu&O=aee6rs*j|AvI9i-Y_tn%RS6< zF4z8&*1VfJd2CTM%=}DIY*zliW3I>+N_!w4`NoF$Q4~qF=gWL??>hEGa%!juauuTP zIIS%y#hza7Yc+HSOu^8B2z2^Rs<;AZZg{Y6U3XlQn=%*W?x+nEzMb#gFfBU9Kc4D% z(q_uS#1xJ4;&J!bDd)!t?*-T?CKgY_GjNBc>kjqr#*98S^K+`$+nIRMSreyc^cSBq zSNfbp_a$-(MQ3GICz$^Fi9QnC+_Y)<{aZ|xN?SQsK+>_ergC3tetbt!%99J75^r)q?C0W`Ko5s`a zRvqh4Z`Tr+zTLG}^O5j&-wC|7ya9leUeMyh!AUp6pO?&)e01g8teh74%6N2ObUG$? zT+P{6PDXqJEOGV6g~NkhtWnR+y7b$)toK<9Md;7T7}hL}iq~Zue>c>370R)@S(5JC zXT6P!3&6`KQp#A7d-KDqs(r6^Z;wn0S;jmgZ^L0dDRKY)XE`P-dW;{1dJY%d_ELxU zxA&b=$0q36_4ghl<$me|#AB!J1stghO=WN$UaD_l24iv)H>@f6Z&vg3@m(q_yOfb} zxc>R8Lc<&CwodCE=S$08^7jPFXVt$JuSreEYJDy(i*4@goY}x($S~zT>nZ;s)PnX^ zu`MoAiDaR3L1WD{&|iuTY7a_EIip&0ZZvCNell-T^~B2dwl<7Hy7NL^@1UToDk^v` zWtYbBRoabM%e{j#15RGjxV1fg%=g`t$XoZPMNvf%BQJ|dt}V3_e=)YfQI={aje$OU z+}G!Iwcm;s4jfuc|4b;q`Wbj=l{ZmDixCu!DfC07vhfs5-0pAVRIV>y6IiD1udn1k zH%#W+#Ky?79{8wds5g;dV{_~-yGB?u$IU-EEv*b-p_Mc0{gOe^CH(wGVT;&yn&)@( zwXh(}?I zyiM2D-agazn9bQa1`tbiH9Z3ZJVkkQRCcdmH?A`xUaxMTDQfnXdbndK=@a9V0XC(t zlcFzPScb3K)yWTyjOgO-D z^mkL{MCC#s%E|Sle7(Swh_kn~m6wat(%H$<*1`3?|B=`%ai3rT zxU|3jUtM0f+0PLHuh)EIA2l1p{WSzICe~lCm;3uuA#zLKw&83r{AWFjV-(cZ17Z>q%sqY)hk7e={Py(ACYGds z1LkZXla})>Z|~M|rA#94hLP-GDqK3D!>~BHdz+9j-DC~PI&VBOLyGd*z=lLA^iMCI zcu`Z>*5x~wKg&)NLD97slD6MK-UqfZ|8F^rZ?(@JDmFWO|G?7N*z8iu_y3`XEWQXH zMyb+LS0{Tcz%V_naKN4L#;=#xl`%Q^3%%MK*V`r|G~VZ(L9~1gMl3vWpT!kLL|+RH zmGXsi7#Fs&N|!w|y#$LAo2552oWrr>OvsZECgnFb>>5{+eK6xIOueR9ox`K0mFh(2 z$hVrn7bosrO+rrYvpnIULS0LIj7z-IVkfUsr)NV~bRc%^pC!^^1U%+@aMp0zav4b4jJ$f*ot{mpObDt6ma3P0W<5Ei>mnNtEjHdlMk6N6jFB4IaEdt{D5)j&F2)FgmwN zK-y1$p|>;~dqQ5IW+v>?%#>wgU0r(>x@kOb?86RqCMC?x+2$Vm57|MH>xLa+7}s! z(-TVF*61^JqhQAfy(!D!NB@w%hiSF#p6_eGK>A4LAv8vmq) z@&3InFKNPBFmps)@IQ?p>7LOI#S}HW48;)zdwsSNp{VaeMjTR)3&X=>{i>4~v=WWD z&E>vN@JA(Ry6bPI7f8wF_awVLzh3vVp`jkqnak1UP2cNZAJzvJ?)_kjJ1%tcqAx4+ zDmKh7-6&B;J7GUgNls_9Rr?$ADHX1@&z}%o?K?kHXLZvlB-$$?T3a)66GEw|6rQ%I z2@B^qYnLvLTueKE{zSSsJPvd9TsgeGT@ZpiV}W&5*kete zcEz=bkQxsp-dbBzZPD^NY`sX#wei^$Pa9Ri#4NZc#cGFN9}yKL84<+zg`iB~pJOSL zCMP%gVc%Mvx89q9i|Hj`k@VT0-#qnU<+Y0L1$;rF_Je~`T*&vq?ShGmIPK?5yyDW| zLej}G=SB}tn#LU~%W=8Bx#{MYTFY>;gfABiZRVCB&MqkuoSd4KC7Po`3Z8l@;8;pA(r_kUj<<7Tk4qpFZpChIt&hwFTtD&Q# z9@E3J#^Ci#KG6!Z?%m4fC`4`tsVl0WVC$gkyy12^)1SO3t29z70a`G20tLnGiSo_g zC6a7$PiE(dWzWud(atRI(acRQFH5&#tk2)iGdgtvAMwx33}|n!pd4W_w^~2rG%pr} z=Ege_%<1`;wH;&TR&FB{E#kxe8Xh@Pu~Mc8B7~=gq^jAWHFutI0DP}yB#}DNf61aMwb5Wl+w42F z94MlHF39DJrSLCaG-~EQj49!61pFmclH*RQ#m-_u=%jp|Zn0KFl|RLFpA(Ctfm0tx8D5gXFA2W6$ap5FBHqKL@IdLX=7LAhl6 zeARrUI0Trq#O;NyXjNk%H{C(t6#Y8~gt4HUiLOkdk`7z|=I}bX;NX;FZ(mS z;RQ|4^m_i~{_JuC0U-A38yjswg3B;`p1WyaWb{Eb9eB;RK0bV-^H2hU8ftE|%nl^f zKc`Mf9drdvO-(_?iRta_jRI-tthE5Bwtxt~dHeSBucHG4(V)GGc=rzVAPAr7t5&5e zoj42Zyh04_ySVP2WJwp$DINktnW2(P{_52$L>M#*!ZR1105rSCUtY z<3Gv(@mA0vx}2ZxlZDdWzwiI))2E>Rven`dlab==N2|B%*QcgzI+%x9f{j5~yLT@O z^ks;=7OP}tYO02*WKlYb|4m)`m;$8brJAWbD$vrZArdP&4orFMa0A|%6wqdZFx@(3R&Ol zM53VPh-K5il&xN3)EY^5aC{81d=`~zC zJ_I$!?Z63hZah4^M?jscfixa8ER)3}miji1S<_D;_wAc2jtGf$v4;_J`tjc$QWD~dw5voaSY0vJFqeIh@NEc1d93y znkV#}a-g8C`oWS4r#H&UiEfKGTxLg$T%xeHzTO4yK*VE73X~r6gx9$cC}3%*sOmg> z1c9|dxHM>^G+~RJ{A9?js0ER@Nq<(X2mT~5zlZ{EV`D>fHCLn^F8c-@GgZ)$-{mEPzD)a*t976dSbtOJ| z`H~*&<1Q#%;Gx}#1}KEC1hGq+Y^=gp!8>=n1=dR60M&~yuToN15b_`Nuqi1idC)Qx zJ$2AML3mo(Sau)UMCaE)s)fIQUt4N3^Hrma{p{=vW*5FaJweV3T=O~^eJEnLAb>Wf`j}Kh-t6W(`ny% z9V>x0Nv+bAD={$<409FYEs$r2%=B}6yK1!EvC zP5*gekDE7na`(JA6HajGGsQ0eO6Rt@i2=(_t-R8(|vyi!2h>y!)8?kSxQ zXnPe+;BvzYfO7K<2pM4Rqe(9x8no9M6cyqNjl0rp=UTz3s}80y5oVZG2L&fXMMrlv zuEVjXlx5+B$70yN$L1DnNEspZ9iGo1?M(v7*{zSCn>#uT!QT-DD!kVF#6+xF7FTA= zhsC;tdtJbZ>~#Sh`rvH!F$M=d5fKrg??VW}vBDnwKs`d_WjF35g}l$l$M=`?<}vMk z3&M=Su)_gN(})%^BO@B_xRCvEw=f8my}8;Vpy`8-ogQpHqgF)>2xa35w47_ICP2SP z$fhS2fH{cS34(~+?lP@|vdIICP3_VS19n})OC51M3oxNF16(+$iD8^WWJn7$Z>=N2WN8G>5)7HJ@r*g%sQjOA^i&L z3TE@_(rw1I6B2H7RfBjWSCXc3-Ql?lx&v;jaakDVh~cp!2MG>X1tMEf%ut}#a$Du% zcU)-({dqGcOT`0FjT|f{hw)lZq9CT|fY3lpQnFCL2@4_xpUw2e&CN{|5)^@u*DD+< z1;NB%o-TSuMg~lmL?fCSkelF;lC~rFgY;SpX%OM|K@c$yLJ+!wN(haD$18>AV?Uyx zdp@NN5Dm!dm~n04CECR6@(C1;2aG4v(&y@jC_EcmjCiM zJp{=*PhFI8_qbYFw zG2qe-VkCsXe%67=0^Cm*92TY@e4$T#37fo~#HykOL@{#k+gL#t+t2xnkcVI~$OuWQ z*+335TXLP4(;vn_tPeJHU%z>?x`_mAeEdd81`iO8#SaIDXV0D?&;q2tv9Jqx#Kf&2 zd?OTg=LH?~sMq-^Q0sXP%gV01e;Nu5+x!Cpra)l4=QH0FMqvylRa#!&_vs-zh~0eS z;z(cvnfFe>^$~^3wU7u1!v4v!joMzR3@YfLeIqY3dB*u&Rvs&^g}R+4484&&6Gk8L6=XGg$+ z<3AwsAEjLsd58DtEVzCU)Bg5$c@`o~;PW~Y1Ro`M0^AZowpV4$*|MXG%0LheHo=-z zzN)v#02_3jr{?F4SgP@vqufyh9=F(T{ar?jK>;nryYum|*9O_&--lt+9fEWqoZ&Oq z9R>QmwXrtvK{W7U`Wb|o5KF1(z3v|wn3tE==IU08?DA;*KP4J8=0LR2%Wh5>On$mh zyKbwun&9+hP65HS3R)n0;MANoRW$rk(Et=aB_)p#;8t$U9Rw8mM@s#x=ReK)5iPu6 zyE>ZZ1Hmd9xB2~L*0Yo$P9&6}L0_R&f=@=cm3lWEd9F7+x6`S{XZIg$+{$v?_e&zI zUlzIH=u`MdLx~p2mR~&ZFx%vR3L#{T7m?S1&hUSo4h>&!54_EA0P-S4ViXV>S~cx> zwtjvV1_LhHx2Vc($b{Wv;O7v{a>v{BBAzF_Z!X=qF!>MYEoH35gZ1SA$S&)&Ul|Ms z_<;kU1?GlwOA+Zi$ikEZ!=o6Pn6jH2j(6{Y9v$5EU3|R8-%Jbgnqd(qaJK(?ACTXG z+kk3+{&^9&Zh}JKVlN1`>i}paI9BxH-@N(2+S)qYmV$yJ(RunRieBmKPf)Y1t#re? z;Z9&Y&#s&(wz5+uTl;g@^4fr+yVkQow_D`TpM1Vs|$~}oN@(>UO(#j{! z0u-D|IzOQW{6#}UAonz-n0IbyD7UAX+MP-qcghQhf+H z7sczkWAb^=xZ`7kB!!34y)}@;y$5MAyX7b^pq~bq9|+tzM+zES8{S^U zivb)D<1--o^CcH@9gM*ChI{~9^bo)%pYz5YP`*(@g$2>K8{)Y{FkuaVKN~x{WPoYF zy5_@J1`<>unlAmyzyoAZ-_emRbpnz%h4=35iRYD!DZG?!5)P*;nc2)NaH9 z60u}Z`n`So_U5fyZ-2k6G+6-|B9xCH3||~7q*X6A*M;iReWT{`9;RDdhwpzd7it6Y znazNvQ%|9>JPb}~n4ds&25n+A1PgqAqlM0dAdB-{nCL$9>SpeQazxk@W`zcbDioslFettfHo9 zaKcgj)+>g?Fev`zQp496RXj7sd>Z0i;+f~U0X^DZXozJ3sh{CRnCY!E1rC<$J=I6Q zCD6-A$o2J89^=Y|YLQMuLk#;T?=U<>y6Vu~TH6H*{TIe!`TTzUQtBJGzx(#)7s3df zn|A|0x3|l}VQr5_M@1RhYZSxS6$-4+Wb6mmCk=OWq#$buB1l%qfRNg3S935k$8FN> z4M7m+_HCaR*+u}9C7Napbah|Jr9VpVn;VWMQ_<6-B;&W&nXdoC>dW_UEkHmdlllj+ zkeS6rsTVJZVFt^h=T=0~Y@yfWxMU&dPIz%ctkgL4_;PmgDD{>>K5+_$y+NT?W zkQe}Nf=qEi40xI*ON7856>X0OWD3c+47?C>I6H(Nh-4j5x`{&YLndg3N^Pi++rqQ zk&KUz2NSZrhQb=^YaghUxnBNa4fFy~35Cp;z9p!BZ>LH}vHw!3_Vh^J0vYEMI25}E zvfH;CAW|b0B2+Z@z-7So5UFic)bpHuYUooy7en;XBeep9tI;gljg5`IFd)+hQ^WWy zTJ7cQRY7mwpo7?W9^}|CUU}Wk%?*Zpn*bxipzId_v4=F=qF3(L2R(?QrYNiIhC1fT zl`E`HgpFzPmnSv+u#B)$Oty!rG!Lf=yUuLX=%WJN_SbYREJ7+PJ*t|hsi}!Hvliwy zCo=r7DfFzY!h9McE-Ur*_2m~Aa}V!<j8pKG1K6Xgs`}~oOB+W=?qLFWZ)jF^LIDdd4|5!dhs=bwWU#Wbv*{pyk7_+Al8XnXeTY#i;fkqNM_uJ*YiQ)~t~a>xtvuysKpm4HKpm$Z}l-W0v^jIl*C53aoe-ryr4@jz?}+Hf(#r#+Nr;nf#Zy_u1Jdlm_=%!*x> z=gGfB1s94|cpF?4i;>4E|M_8L`6}`oK`-_Tl>gl4J}2^{GfmF^T1{&dbkIyq=dseI zFd_Z^8rAiFal_JbW7uqR)nd&Axz#M(>Wc1dZFtp~jq1%3ygc-yPj+$B`H5o5<4aYYjoROoV|WdPP?mc{uA> zf&i*sdh1yhT#2Jz7P~dQrn!BI3OqiQ_NxEQT6=yn6!Bx>K(acwwBH|jZX!<+di>y@ z7l4g`ef#^f*ynKZMN$6+$}@>uQ=c#QqzL|ODxn+xb&HtO+;A=LEPU24U}Zc%xU>{= zXYusvZHC{hPExR$V);}MSo|+I-7~=D-ofm>tV^8R=tTwH(ppT)n1KQMoy-l>b>`syVrhYi_9EM_mvQx z&t0Qe{`N3KA!mn#_Z2&N)R|+fF73YE!TzUo^61Y4+Y=NbcZJ4weEOFM+`HgYviy6p z&a9!-nkGYOJQgFn9A#L4&x}$Ljvj-4XI8k?#dS)p>YHwyj}Ha~R$OO3)krLt{(Uqn zd#Zc9@19qS7up@`y~oA#4+xx0W)s14;fw6ktvMm0c$DztiF0Nhsy{0}R5^2MfAYc0 z0n_%WM{%W&ySN`dC|^G|`S3ZB>TVn#8NO_HW75*#Av!b-JEPik-};fK*hFA`w;YM4 z#-!2HU-((Z;diJr$ho(o(V4`fZ{x6gXY-6~dYbv>ZI_Q9EL{6i)My_KslS=G;}G`! zbVH=)i-T2;1{M{Z4MFE=jadgj{D#Fd_SkE*+AB_-M}KL^>G~=^*2O!{=T;~CP4bHe zdpBQmpNJiIz9ACaF_R-5G5n=0a$ek?$QEgvI8G|^;|-C>%3bFP{znykMyr$4K6nxq z-=4K~Eyk~V@jtko%kQ)AiwRrTB_#p2fJUddfs(-YA6MBv@~c(F`wkCwO5BLeuwdlRCk>TW!hNVPlqTAWjt?6nzypoZ%cCl z0o(M6LRDdW#5P#)vhLp!s(iY@Eb`QkK#-Uu7X;`8DqVF^IkTb}Y>i zdY(@;ar&}|X-=@x#+JEbQ(qwCSzj0pT7oHVH<64C!`f(7XXCEOeojAmJe1Lex7nLQl>!_y#!`*Uz(E+TS|Ul>$oOFmUJYlc=c#zB1MRZ$d!G^ zRf+yKkt-RItB`Omr~X25!&fDGy)TshE&6CKzFK~7Jm@sW1g~7h63Z^0`#D}DCYkWL zO@In9B|}VFoAYrpMn=Zw?&a=fhZBbdeue?<&&p(8$}H#HU3-Q`Mo$YJA5qHrL3Tqy z*P$`<8_QqlWHdX%!|%b5f`FxEG05LlJin3z4SbS@xY+RU%qOO%8UKDg$TI#H46U@^ zy9CMQ8Jt~A^Wu6}lxb98J2b#)Hty3mJ$TW@9Zqm*{6&XGOpwf1>?N?pYJH9ZT9H`&>zcwsW0G5&9oBc_U! zGiw?fLw7i{b-zW(MTbU3?Izp3kFd7BAC;K}xU+zr<3?ZN&N<0gUVc8+qg+}Jh6uGhp+#>#la^w>;l2=Kc2>v{Rc^6S8_RgS zg)6=lslvF3FvsdCgY4FN7iX`0T0|9l$WFvkO76ALEXbIGJgL%UAMG_dXVFOul3K& zE&T2`KWvCAe1dqljpC$YUXFHkCo&>kW=oBX7N8Mg;agjf!nvg-04X=7 zrotCCp%GIzJpA$P+lx?~Mr({bnVX;gU|efEU4IpNEKiu50Cvvm`#77H(JOxYR!`O_ zXE)GZb476|{oYgRwY;s`-``DbkbJ$ZpkwwxE}r)lunG`SSj`Lb@^oPGi4?j+2=xM8 z1l!4H=@p{AP7mUkFK>-e5CWXyoHIBS36y|Iu-FM*iB&DUL6Z3ib`H>McU;|8s3aA&l zl8_NJq)`TiBpOnbmzN7rcN|DrYmi{dZVz6O0(#INzET0a!Pf$4733=bw2Y02MKXAfaqdCycyZUYZW-9dmjgK+ z(BOmq8x+&<%~tim5WEIsfuY%&&d$zvvVbMR2WDh5*n%LSbVvvY(%p)Lk^&0S0@B?b79c4NB3&ZV z-CYkUNSBh*-Sw~Iz3=<|F@DCl_v(e`aLzt^ub6ADxxT*)fzHbftoB;E}90TZG3iOANMq{VB2$g7d{Tn95pP`395KzJp>BtKFp+X6ELZ+O@)v z^UVS12VDTq0CopWvTg(i1M7kG!~%~06Dm%L71GxzJ7-XLcs)pQaqlv9jsGCLghnc4 zvc~EsxR{agEUUijCI}Xdhg_qK|5Yw{U5Jehr&uj8d$m6S3p25QF|Po1oTLV9$>Fgv zz&y}kiwqABe~OHZT<6TGLb;y^R%-=Iq|}d&635bwM=ECYgHY0Ye}DfiuR>jkbgyW+ zBNSq;8ExF}+__A`^I6~q<&EY;wc@Y+<%Q*q^jm)8Q<+pUkZB4=y%>PHmAnYO&q*lu zGYMrIlpKD1q?@4D+RTEgnwnz4>!)ETAcDItf#Fe@)fZX*v!Xg&Nw7A~W+^Coo72(J zsQ=2+U|K^U$$XH+wUFTH{g4{S3~T8Get(*MT=jKrT*0IELgmlr99OB|w*^BOaBZ`o zcQJfD)XkS*V1MFeGOGLC%E{`oM*&*ed7vq zT?2PKj&DM*;+C~a&cofM%SwhR5>{t!^*=dmY2W*hSlZgYyGin@i+FB#I6v3}AJVIb zfAg(*E_Z%R(rZLSte((?PiJSsAshEm>@`DeV4)$*W7@XcRK zFNVvve=L7--~PT!L$?qlB&1pH`n>BiYFR1cA$b+!d#4~8aD&%$wA8W-9-fVI@miyM zoZv_VqRtPBO_Q{$-)5bwqNL@#qoXq@c-(lwU-e9*9FDmIh*C}jT{uscwLNR&SJc@S zc79zDlN52Owxj@UyD9${*C=J~B8%XgobvkVTt95}h_Otq>KhIYsEjQfoZf7Ro^QAx zH)JF*D1Ab|7;%Y8SgYLXY)krH5}&);;bh_)c6|ma^oE9jbQa&~s?xn7MgT2=IS2^Ba`j;Bz~ zdyKjC1cTC%Uj7(HoKolt6-A+D<5kzQR2T{B7rO6{$tNf?4^B+zY`vye5G8t=sjhNp zVR*H^{#mW?&f@mh?k{uMFOz84$pjb(ey`VH;N$m}7Z!M;Zr@`=%PUc4-jfV^jvJMl zDyc6Qll&8#)iU13?EDOMzRA{2XWyXu{`qSuh#m+o#VFqk22hC5{7ytgB#MM zH|uWjyGLzbP3+f4!s8=Tl534Tb3-eSf$?k8)6!^35HWv`)I_h|nz~ z&UBr}_lVk!53J@0ojCdXDvAr3XGXc^?B`I2t+ARtmFo=hWmo@9s2`FOUAJ9eP%10H zyQ5^p8SK$b{;}Lu<$miVx$w!e#m4(e;VjOR-nXWS+5v(Ry|%5CNv=tA_455GuFsML zD>*r@4r_Zl3kt$<&;#JWr($8D2=m z&=%|Y*sO$5qZ*DUDkE^B_EvxUvxM6UpApV?D%7Z}GcG?rJ9r$^UHs~ejfI2IOe^EZ z7j{K`+LM#0WpV%T%;zS>p@IWnlft=Pd4;Zcg^m}Sq!lf8@kA`DK?6YYhpo~23zM$c zCnw=Yp`qcGug%B5?kIJOZ-Qk)f1#}GF*7Sa|xiZwJuPdmARQfX* zr&@!!EJ=GB>K{FQP>^wdqW0X#)uv#pFeAfeb8R;DL0NZaXXW>;xro!lfv_*%0}>%# zCK$OV&5*Dmz)Rns$gJg7gjSsx!IDe!{IEG*<-2p{%grA@nVt=PprN7vDBo?*aJjzm z@zc?Gm4p+#k!3~U^D1fn{RHS_A@4exNB#r z4W0QXQZRN`wnD=qn%8>z!*pFWJld}k(orPRP(0gcze-Qd1m1+Fjrf1SG~{Ah_#+rm z6BAt|KDT=M!NcrEvbR6>O_oA@fRk!j1;f->kwSbNV8&2w-{`~(%+8K^ha);GDNGI) zHwunDD$ajt@I}pgr#G6p&))FQV~Ji1p+hi2`0l_r)T(YrM91kvK}xMlCdD=?MUIod zL(;ZBUNlwR0qP}hjuKTZF`}dDpygw9TRz^Mi zmWM)r82SBb#O-S9&bf4lfxmY(4mFP@UX}WHeE>ZSSE9okE>Z27lYScNHv1^0{nu6+ zP0i^NW@{Gia``UR#L;DQTj_1@k z&c~=g1aW|y{b0kzOysro;tS1T+q<~xJ9Am|j@K(aSvop@_(p{w4jYy&$*34r#3I^HQh+kdECkiR z5G9PQxsDHNj!<2ILMW6mlbDC6oS^x2Q^ED|J)_3ufP8cutf}j z_5lrd7a_c+m5F``MGJs8Aq@h~WLv6U?fIGO^z?MR^a!v&Ak6Cp2~bEI4QJWgGzs;jN7tX@HJ{jZQHBzk=iX1k3E zfg%?0X61qEf@qTh)of>NA{Izute|`ctRE1Tc(eZ1cFW)2f%k6hc-fQ-f)xP7yuYqPUr@Jyf{Q>3gmSBn=cqItf2&HADE^aYV!Dcxr2-1GWqeb_j)=%(R!Ks^~DI;mwx0)GH{FfnLlKSS?XtilNJaFg8*w_ulr zLF!7fGd);SAB z`yJqDs*J(yn*ZEy<~l?}EDmy(_>lT12;k0EP7My?TUuI5MKO0lU2b!GI|bGRglvca zOoEbwQo0N!pQ`iSRIOYdeotUUf#OLxtS*$g->PK;)(QGLz+hJ3wix%7O49|z0P+e} zU?(8*w-t`-2$3qVn~1{z6Y?J@O1=YurX7jiYqL*dDF4Gp6V#|BJ_ z6{ZLbn|bVU|32bnU`sh5Y%t&iG?swg6UgEkImN}qT=%N26#?{O7ElzUVl}w)HekCz zvFiaaS6hDk2mx{i0@reU*1jLebU|&n<1D^w_>Vim45AgkB4UYkQrPr01d#4DYIR`f)jr^5p0Q*i_0_+D8N=ii!T{u{tJk@GD81=!wUQs zC6I$e1O%ZbOau%yprBLvmO}rh=4M}O*J(&h4dBK^`OcJ zdNM%fGkm@mdQTc5aO~~v6+~brVvGA~az6dx50ecsW#ABcd{{bups@w>r7m@yp zn*#AihxN%WC?xv&`JuNB>;d10aM#^B9fe}l#A68n$xL)~^iDE~{JZY@#EW$OPqm>U z`Zt+%&hX!=x^a&GqLcLL4~LUi570>7s?E7}0^bz~4E2+fXCL+N(b5vjs`nXjLZLlr zzy$vPg}XvR6RdOB??NpU$QN^@m4T@LZ~;`cy7lb&$zbaU2naOR{9Dd_c{RknN-l$% zkB^9igaphJcfT4lMRdhwqE z<<{)dl1ZO+u(p_?Hme~Wg_pwCh1pm)L67ed5qFf8l_ic*kxa1*oA5{4dw3&1P3&t- zpULP*ZCxP5Eo%)+&WJmA8q>bbei>i{#7HU_{j-mnFq-Qh#r#To`jp3(MqI^VYL+nZ zKPfU4a{UaQ^(#68hs6}R_&Fq%c8nD5#(iZk)s2Yj&l@#$JQ@7g-S-u{>ZiNAdmnqI zS)J$Jw)Ig;7o4SP2k&qyD7kAEYW>3eq5!`fzJ$qOgt$Kq6nXuO_l!rC4#l3ll4dU4F$E0)r3^2@ya}TBJ53dqqlam3<4zuMgFZF zZ{k*1X*uIRNn5fokQYY#$sOtBQjT_uAj%9@X#3wlp-EcCT*;2M={23GxV}`hlkk5| zvFL5$|F?px@E!O~kt948v*j$n)&up9rtzUtXo%0&Nw}@v4t}d~;Beao#<|%X?%<(S(=dtHr_uJ&T;{w@3sFjEyijaWQIW>+3x+#D(2?Ti47CZ-*fKHk7?1@xVZ6hu>rfT|A! zIh7oRkftWFboqoJi4;n}?*M3K2c=426qZ~4Mz1|PVgwA#dj=Xz>H$VZ*z`cXe+A$q z4J~bf&72g-{j~w}whnypH4Kayz=T1a{Q>}?(AR;mQi00+3k35KU3mEi$iIOIhV)$k zaOnh%Er@4=cuf}w#`0!L)_0)<{&yu_BBKL z=NQqaLx6c+Ybp?z;$-LnXdZ;!ra>1CSY(87Y2Yy+VzdAQa_F^Srp$n*nGC4JA}uBm z-y!HVLLG+>=b4SLqrtQIhK1pQjW%rZ#eomOnm>X|lsRou0V~tRgosY=OCmTHM63+L z7h*$0L%@4MY0Swa*6-rKTS+WG5Bff!&JYb$MWB$7^4T=yp}9g(@H0yV`x!2V7sLbB z5O4rp?}Ars>=<6h6i7rmI5?mo9BXjUM5`)U15mq#VF2)b5`goNzW{FtblMO~4>V<@ z0dq5elrI!6m86`dkTvi;SBng~Y2eq!zr0ch#L8BndqBGns|-hBe*U4lIm3VBaB(f5 z(*si-*{KkOL;{YBQ0hHSHYL#zm3g2{-)zlDOGCuWQc_ZMJ}bh{^T&06)rgS#0Bo$> zq5cYc(;!klbT8$sGYT9Kf}i%U-44RsYlemi>Dn7UiD?ZAfz-ngG!MhY~j&_*C9 z4Y=!K;DeEK0Zep#*vs(AE$FHcDwY+G`~Ot`B#zqc`c(d>&KAEG$9#NY!&0HSGlWpU zgB9QF=A-Ph!9&O<;3dOBHI9~xfZz^T6>8b|hK36o3!r|fXKsFzp85v-P+4Uq3EB38 zS|xCDadL)V&)1=R@Q-u6*`I6Uq897N{+}q5C7^0h3=rpwuS`v27x+dXzwW_t7CdwU zKc#%`#7QOK+|GFDl~I~WAIA01!TTSqwn_SdY!;8>wJZ1A7tw}CB3Nx{rk($_bkp~q zR|eT+jb^E=5i_53-IvXx6W$X>i^$^r%tyQ_*#1xY?i=;2Rqjr?m2k-Mb>cNTqfWA* z5H0trPO`WEqO6dGUI$0@IVg_l<41?P%zKo?vfky7lO4$DTy{5;gXA|WvcjCW|4l!u zQme95Szq;L&0{^TdL19{_1YU>lyJJd9rHtHtta+Ul;2K-acY7LoxA>jnOFaS=6>#J z3|ASjZ6!B5!O=uFf5hYGw(PSxb-D7Hiet5iS)@~r)A3gG!yk)u0s>#3C0&}B%>O;0 z;@{e@{QIsa->y)iv+sCzq5JPYEWwi@##aW+S8}iU zji2bhG#kmz(O5LbSGq_;=yTTYrCJHnc>n2e94>n#eeo~th|*6G-qVM*r5AI|B!M)C zx6VKL#|j0ahpTh7v>L)XA|54L6!(_GpCT06wH!d#(LbHKhJX2@KmP;?B6M#2zrKs| zFZ*cvLu7pV-2Sh?Kf5Th(4QviUo=rr?x!|0yRoM=35=rO25y|Y+UD)^b?1Hg+gG1& z?%nU@N3KcfCjd9a!f9H3Gosop`fT8##so^CMB|Pqmie^y`oLUn?KDOabFj^ejc-f- zg@pn@A_@uJN_^Pi`T4ml`ws;i?;*n;Qsxc*c*z*Vk~@_H-mm4Pk9vM7(IDIV=eG&p z^MIoZ=R>0$Yhinr)#MLv418T4yWJYv&087C1l9I@kFNdkBMvMtsKoP~xITLmc`k^$ z4cBVwkW7E|F-j5WEh9z0>A*9Q-(kR_7;P%fipnc0(jAs8NPJGRvO{nj|WmO!(RajMkc1$ z|0uWQmq>~SMCWf-)d@nwqaVsVzeEvuNJO{L=N(NhT-LL6r{Buq{$r;<7k~q`eU`|g zy0g4c7M0nSpE4G+Wqx<8^a0R^T-=tq7J%4*NyZi?^}?jkaKYxRipW1Z`=Y6`oMhI( zhO5=xuBkr;U#T}r%m3{1i@v>hXx5-Of4Xsf&_rGM)Q!#2LR)V#IK_A@M?|FS%r{8W z`&N~w&`pxs=DPZ@KvYqF{*2vAR?n8!XBifF{C4D>Z=GkZVGGrjPFXID-9L3c*A6rK zHPlCHnfv$6vLbKx-ca8hS{c4$2vh8QNMxj6u%(iRxPS42Zvpg%$F}x zc=#?}saG8rw7E)Ete^BvV=}^Ub=%Em~Tw z4)*VMzo(d4;bv8qI*bW-7s)3F#v`q$#W$H*K;1NQ3)OJ&WyOJ_X4KY>VGDzG! z!nlGN|K8u0XwuzNFeFM&$2@I*azeexIg5g6Y=@SKDME#$}87Hp$MdUHhdVy!YPL1*{7 z`%WtEAAmWuvD}lu{=1ObDSUf6xKSO*p;r^7_jP{m83#l}eD;el0c6J~Fpz9;kXypO zEMl)|u=@>Avuw}CDM&?1!ic#}jc|KoC_JwJUR`Sp2x3`Qi1F>GG*ToFjgOQ{Llx62 zl~C!Uly$rO7J+OLk~E~JpOzjTMq-iH@q2bf?i+V=DtFd%hNC@-*49QX!>P3w!^5LW zV;O8f9m8?^#q)MQm+seYj`s|sN~SqsQhO(-N1HbAmGs8u55*+K6Z_LHpj=`-Z=Qa> z=n8_-4k?CCJjmhSWDmI{R<*%i7{C(W-(U3LXxDafiPg&{UhAN$FCcCVA7N{M^t(&T z@V0hM!*K41@#nXho~5}d#jGF^SI6wx-|voTPVB>g>I7Xq?8KXBcNzB^H>Pv7lkCSF zp$9&px>6h1zy9Fa7~m5*a_X0a%-ttd^t@1hlja zl256iZ#btB0bQxT()8ZR$r$@l;bCX|q2;u0H;yOu4Ise*b+9=*HXm6aHTx6QLS5or zE%P^prm9+*Q(u1myp6S{Ex8{=&S^3FriU(@-H&T}XMJU?+RwMYw$Qypbkb<#o%flg z&E|I<@?6?X{wx63b`_zOR^{>HhDWs%Rpb6K=eg)#(DnI6>Uv>wSoS%J2&xEc;oinA2 zIM`Jx#K8As4tMXmxy9lVxV}N?S(ZHvYQ?Mm+9@R`8xvMFG2_AKB&D|mTw52;gb|u! z^1(9@XW0xfmy1dIaNEy`{J-pNiOI#tYjwW)*`1^x^JiyiNJ*tGBn~Y<8KBY2E_sw) z;%?X3C`L*eC&M5gwsp%N_nwWAB~2~+d>7f{AxDWER4sJa;`N=)^Kq+hBm7boY z%jZF(*(Oqt&m|OIH{YaJ^L$97KRagp_D>Dv-^d~7$zH@a(yxM@WX&8%JHr{Bz#$qq znTGsS+ciBI8DTFsk;9(cfL=V;a@%F%;^i6%;N#ME@hdd+ZGF7nI%7ji8catqGNxfO zPIYiDY~l~22v**w^=NoF=<2V{K1Oz2vp?j0w{b8c6KJ{TNuPeaeo%wEA@i|yYWJ*` zR-q*YH%;1Ac)#MWUxsqG&J`>yhS0FWve-{=vtp~u8}G9NOr|wyk5Mc~F-7}9ZED+! z=TSLE^t*ScP9P#cmHoC2!2^XqfK7Jzn^b$l60z)c}KXPZq{Ba!rR>pJWauG;T!><~z6{4?rkbgcB zl@>Q| zyhqcmuG$xd#Wj4{y9cl1w&Uf!+TGuchUEzd&+h*$xO9(f^{Zwjdv|xUt6D?0x}$1^ z8IPXG^1pmFD52~D5hhh3<#XqW1)1ZzaN@U8I-cqC>D3%h^< zx4P+CETQwB=I>i?!pN<|y=7|3h>Ean9?K#HJ%S9Co=BOKWRb@{T~w5mnTg---=dS# zpgHI@4%-_W8R@Oq&H8ZX^R4O2c6(;Gc`U}eZMA{I!>F?Qs-ekQVk{*&hhr%W<{xR? z54g3x7_!(zU8hG%D-@m6D=Bi917$OP)c6p<}<$Q*Rg5!)L|%WsY$#@7EC9$;OPt8l7;{ zNPEcR+JxU>3PQXdCsdL_@p^06)X;uNwb0#cwYX(37gr%uXkc&6FjqI5+3{zP%d7fW z)ObscOqjIqqducU%0Rm9uZM&%sN=o2I4(s3NV*fm@pH3{QaJA7*ZXwmxh?XN3;)b} z^_v?yFdmtWCj?L&Glzum*bJ~4*yS#aWJ6nnK}+Wx;H2!%eLm%TsxMz611^4uPz694 zBXSzTDZAy-L%{MLE-y0fP6sleB zt*n~M3NJYCrokquT_|T3Rmptrw@oMDNJb~5+4{@VK2aqYU*^!{GTKy^n&c33 z7vbJ|DWvZ(e`pXGM`K=okxayZX9TCDkO>RFKs#_dajn|7FvYs!vpv_ezt~@yrc*Q> zb*OG_R|LY@ex1?fkrII>p^@p0wF*r5Oa~%^IRakq-Z7c09sgF!xWS~({p;id?`Y|E zhMv#RaPcusP>_SfaqQJ9Q5zcuG+U41hbi902S%?QQLd2&hkinwrpi1jWU8tKcVApf z0_2J1E%pa?*KQN2C)utd59AurQ#>(JP6I>AE|d4{7b@ctIO2H$MtrM?k9SIsBKY@2 z&FZr(j0I*r=O4?vZtMo!YUZOHar;$AiV&|)ZEHwA+&RLWp0@arwLtRTM-rNAE_o$r z-vn5o>jQ?hn8ak=pfa@WFj1fP3r!V#&t|&6I{#iOt)V%MW-TpFA@g}SgMLpS$#oi9 zVbG%Yj_LP-R+K*zS@#A9mC>A>BO2S=FL-sz%#7)mxMty)4v{qt6a($8LU6fjuQeZ| z$hCvQtL3aX=I~Ul(WrICKAc`*dfg!wjz@u0J3cy3XQJMM!Xv7D{7DbKp1Md|xWEfE*5%1^Jph-abms9VrJfu6mN z0{2!OxZLad2HEfD<`i8Qm+*=XZ*dp~q&hIMMCK05nXSl@lA6T`+Y%86M%L9`gj(X( zM>ex5kLaYvnz^4J=b)>D&Ao-)%zU7!^}M;FcnY1>c*{*H%3=D|#(k+uzWx$(J%b+A zz)}@whZVsFKmD+g+qcc^CIezRUY58CoCSVkd)4cRd6-D@@gufsxd|N}9p?PIdd-{G z=96x|zkWUQI9s=LV=ZH>_YwW*SJ6$;O7-VwKHoX{QILZ6+yE3?dK$!IpFVj)Lp6Ov zv%;(T}HyGZ*lP* z9K#eq!d|r}v%ukIr*J=s`*A$IwicR|a3-`vRy4}l(7rxrkKD1b!ZQ@O|qMb^+t%TOtC;OTN-wkd{MiJ4drx%r0WtX{a= zECEy_yP#Hj1$0e}K67QY9$3G7c|N8^E-dqVwtahL*!lhMMwe-&42HeE61&wt^xy&u z;3mfSFL*xAlI^kAT9C^H@u4TVT1+pCrx^{pw3-)YuI3vI3_Vb<=>iO5Lj5<~+lG$N zlc!JhVPnf2=(73~$h{ukFg`gnY)~4r{_~8mH8=reUADwp$6xJ!*7PQ93GiU)Aq0Bo zpWa2imO!$$zI$Q3RvWj+NX5+(?E?R2Tg~FU8wO^S zR_^Ey9o^NXq1<}k^UgNgA{iia+`i0>Uf}6Tub{Ab>BCm?d_RB z(~b2f$n9IN<~~_SDTgC#eZ1!m8wSX%9nOQBEhNr8nZSS(#G>HyiHp10pUwj9h!ND1 z-M4V8FKbVkm<^XDxa@wr_-i(GJm+LE`w~oNd>Tj`fo5gP7?IV9iV(auZs+BLtpqI@ zDazRlK(mdMia@c0VE_{Ek7bT$S=qqdOoriJWt9TJJ1|k~l=rJ2RKEGJBl2bpyZwds zcH)PJbjhZW+u7>J3;gogB@OlU_yX!&78Y{6 ze03i1FkN?6et3he z>)Lj2&q`REl!ZY%*SOEPFGff;x1H~BFF)r2xM=dmg9{+&{X#D8fNSa$cKU-a=bq!0 z`(BD^D>s$G)k-}g47%I^PhdTP=4ky}PoLgLT*UF|RO;)euA`;F?NmmEtoj+mZ1wrlHC>#~i`Vk4TlSt2_7&-)ZSCcJ!=oP9V)P@zXVu$n|I(bk%+~u z#DH%V75vEg`jLWDwb_ydngU7vM8Qp<2NPQ%{9=UA$t$sL9k9g*>ZNDhYeKEVxSalZ z8`9?_U0rP)%orFLV1W4J$p0ejlDR`9x^8NiVDn^7wg^yBj)ohx6&s!jXVBryuisIz zWieGcTyo0#?utXY$LVJY_Y1SmlT%6ki<#QF{FIcxjX2eyEA)w+Tyv=fS0meDabs-= zcH#W@WLF;j&ufv{K45dUn~vbZFoEQQQU-HxmGebTVy4~Yg&HAO2NBq`{nhFnf>Tj_ zX>nUCAn3<~&O`RA+HtJ#^&8+^UGS9`QUp9E(!HyeIY2YN1=G!~!G9 zBCj^syTnnAw(QYEmNngmkUev&d@&i@8&;L=k|C~H5ziy`#FZ+8cSt@DB{co)vJFEjMQy94j8>Oxf2TD``C3Q`&2LzPJ8J%Wt~2Hd*RlmVM~|6bx>- zBgNe&Y72{Uyr>mJjahqzYR4(-9L?kNy){9>Z(Aql2d=a+-|?Qbp#J?$DdQ_Ko>tXM=C)dQNVlUu6d~Y;-lZNv8 zQ`)f3y<=*9&ezS}*FW_vSClc^%nL4z_r$fw*!FCHu`M8EO(YN(zXvtwYnGPl#27)+ zr)9ssemnTebfwNc)Ggol$(b(8eeHB>&Y4Tkgp=KjHx*t~cIa~wvk`lic}n%C&l3;j z=1@ebyFGMH_*ThH%~Oh&Rs3Ca^FqY2s#3fR?YfENl(<+99e*E8o_xHQmNQ-V#u9oK z40{u!I~W9WQVGt5!Jih6JGR}pQBk#6I8*>Uvx%XQFT(CY%Gp%kG)vhQo{G&TXU&93 zi=~o>tF0a!Ij`j@YdrVBvG=-4fn~u;2(kew3l2_1$;oQB?hGU+HExteGBq+zpvq_i zx#X#+2sD2zfC8tJD70np#PfP^4r$)jFiukz$l%yUGa8b^CclG&lgSw91!BsUv-BcZ zWDK+{t)g0TyFEc=inQaa>znRSqu0pdLY`Co8Y5ImU(Lmq`zJe7lz{9~8c?vr456AoZIe6`t%p!96NU@Z^pG0RE z)+*~bOSC*qmvjACRFtAZlRiC-i(hjjoLgN}p;h8&T(vL48ujIicdh2uTt%NV0ZzH% zb7ZB)P6#5m=cnyo)EICQTbFC3y2ZeijEt0UOIOkp6TfQd-DfEH6zOo=(vro-76XV( zFRRV=`<#4kF2i)Nht+1s8Kaf^tj*2$q6X%r<}}4-rIe6+MFY~FY~Nt6uXdhaUtfV# zE(zw9WPzfbB0-we>meaJyW~CoEZM(?^EqHNGHj))$r4xNDm+hjfts3|ju$UhPIMP7 zZobS;iyBz_=d%5_plN-{>z=d-jn1x{L{L1cV)v;`+42G!Z=9Tg&?zx(7|-HW_VMNQ zDbM!@m$QKJdFTFp|cDnmC=BIw^H3D6-Ji7)5d1rzL8`>WO7aQVpYp&eg+#cH4 z-qv3nOUSby!{Me|n=Ut`01NhMZrx4HV4jGIx{;Om=4*0+MoT)O4#QZ7(1Sx$n6u~2 zWy){rQb71xDK*I^^b#30);9gl@t|G+uKo~ zH`1}#KT>r*In~xtSy#0%mF~R#3|5=A;<4$Kn|}IBMNxzT2G_2emgd=akW_8#J2Di- zo;R>ZGM)QwI%3Vl-JxL9-+H;VjiH*qHPz|if*VE`Xx&=uajF~|TBG|zS!4UO0ns+74eb{j293lFk)VRB?xq(iuP?%BsQOV5|4n8wDEs^v>l zK%F7?^wieUVkM(U*iu&oR^3LcNcG#`;EzQ+n50-&rKeoHb2P^`4=B#$V!4?P{>-pE zd3lPCgVPnwv7hkX=W5|SW9;8Ll!7O{aq#j|*G|2e)b~I$u4~+J-S@~T%dd?~jvBO~ zL{(z~cXj|=aADoWt~L0bwO*+`R^u)L_Z%az@F@M{Pm}ZLj#GTJ19o9TybKIqVKBEH zT6;I{+Cz3SUla1(Wnal<$2VR7H7`uL4&7?TW!9jd?@f|X&N<>q(|0fs+Ew@1|8t2v zddJXZf32zKXkT|FnzE^R7p-n=%)i-Exa)nT_x4CSnMT<&v6GIhYuMPdWyZHW<4VKN zd5)CXIePM5Z<8t1Na~tuebVEYh|xfDdqzIKLmAI$a^;$BQkLf2*~}R1 zjWv*qHal#&VI4@~2m^ZG2p+XL`T0vDXC}i?R=0h6L~!emV9mL3#-NAU#Aj4@+*Oz{ z!!_mM==WmXL(vqIIm#a=<*Y7@V{KtI&GyN7flnYw*u=5%52^rW&CyWpXHQTBmOof> zu5Mx|!$>3PXV32TCzKKRG(I(1(s5W9ZfiZC>`n!dC{Svia>H%x4DCpgF-v$ZLgsUY|bQy@A0ra7OO1&i6h+`_L{ApQ!;Dl8ox5?sFbO`zIe5jyKok z75|KtlE7U^Z4EXHZfzW>>G3*mJpko3`(Ox==3a5T*A$8hg7IPFv8#tsn3XNqbaNe? zAkz5=G`yTV&e&yWEms__cE$SG9Bi<4$9LW1;Yo;&?uG%3VWEn`e%r@Wr+(i#61e|7 z=fNp=`3g4Qc=n4NUDlAJq)&RX>XmX_)PIa-`RX{ME~nwpw~kr69w zo3;B7vF^;%9T_9q113RqD1POQ~gl+M`kTbFw{5hi!c!4M*?m5JEjlMb*A znAE-XIEnK|R))>?ZkS_Uxd>ZH*u7$_JwrPbG*h*;@ua6Fz4{lMEF7ON>6vd5Bd=L&-rJngZtE>vk)IFDNY^Myz_=i0zUylQ9ep+tbphl|KL)NU z>T94~zAO&FOZZKalFda!f#}_zmY~?#^4ki?KAlb4=WheSv|ii~o{#_Nc#D`=22`W2 zo8oQm@6T25i=?GC9fjFYQwB}m&i9f6Lm?Cr#4$eh6?ly`QN-bD>5T$sed<>Z{d#H(-|*w^42lhspmoGJlbHc zJ5I`vC+m}B&U@v}Apf(qm?6+6=-@q3iCw_NcPFF2nHoEI;iEBLIpv-O*u;$%Q~3f1 zO*`nEz8(mC{ z;V?Mz{Cv%c%?UdtOIlgyprP|k8m03M(<|8SpKu&8UvH&q_f@-I-FKOs)OxWulk4dm zzJI<;6q4;x?~B7zxD~hX@@UV8t0m9#97oH2E?A~&-#A@{{9Tv9!r3{Q=Hh9-?p$k; zDFI@A($9Vmg-48xly9Rs%0|PC5Mh6t^KyCUtR(F2^>bfiQZT% z1X?3S8k5dH?cF48A245tltELbyEIf_FkoY|#TI*N&94blIuoAY6GXk@B+gUoxOUxG zF*C4P_ukz)?5yJ3A|g{JrE#E69K|ej?WVaObke&ztHyK*iGSt)@S*wAl_NdQLE*2S z<(qQnwU-6={%FEn_$Lky1hnx26{=jYc) z5q`nnMm3pJe!NWbG8z4;F>^GqJ7eRIO<&8LQDMpffgs!{!)=OZw0v z$44+c&%J}@m+%OU5~ZQTq?;X@dR7VSL8nyXDH7-}i%!+h9_>|E$mQgs)VU#z;mjMw zxHS_>%;V&*Ja3diSuZOzL26KhF z+wsI-J_z#0%6J>4JwDz`sS$yWUgc||XRs2tO3Z&7C&VQQneamVQK-^3`n;60hEKz4 z;0}eNkbiSMj}OMdnC)@5pM} zbke-m-%=;{xfXd8zE6B=4rG(PZa&{wnbq_27+S$+myq?qu|7U}f{#JmRItau!5}JrV4Q+Sm9NIS4@8@|2s#~|H(3^K-@nMyr;Vd>7yTSL9-kFQ&pB&$9- zWcpCcrxwsPpQ`8c@NMU$o9Cd^QN5_dSu)>c0<%jzOxo+kr9rmG8(Y)AqNroTqAVMS zhT6_CK~l(+d4x|Nt;k}rHStXst20UdNZgkW<{9sJ*(W2;@nn_Thf^Q3+q>`IEBHVm zOiN98w{FURV7WHKJiOL5cB~{}VedE2ZTwMVqQzFfefb}>s04LOthpT`Mgr#Hk0x`i zD9^a`R55Jg+ab#dHJ{;hsol9FV1zpx$k*#1ttET^L4jUjdD-s#Gk%9_G!K6IG-dOV z@;<*-*JFt>)894Xc3_SF=7Lr#@T862|E#|JK-0SKbUTgc5n^Yjk| z>~#44?=GLWH5t9fT19^%#~0kVs5{Y8Xm&a+h?d|Hzsf9(cGSe#Jk;8DeBF@Oy#+O& zN{TX*>zv2{*Z4e#*ng~%$~P+LCzrX3SSome#P*sx-fLRP{=CA+(>``WLx zM=y^S?Wt^1QUwNqww_q3vTUrA(sQ!~Z!KARM%&N=j^OY(XWqD9R=ltt+jZ3nZtkhR zzE%`&ZUHZ)NN=l?es?XI=d4kFj z+;`E}7vY3!PFt1znJBz2EG%(@W%$DInLc^x&FhVdD|H(Q=&ir)tZB2{KC8rZeaH>| zaViu38P<1ZXhwaj^6FUr{rsv=$lh)Ad2f4E6k$7}U#9V@w342|;Z<=Y0Y9x$GivGh zyW$PzVIqNw%gj+2EV)~v4EOn>;B{J6JVTz+@9$HhzpH=td!Z&@_B!SU6>K!3sXKby zt~djz1Xy^HTBZO8b99*grQcZF(^niuTaR(AGs2GOQ>2q* zf51!1YV?rfyE5Ios~@J9)i#r*gK`jr)$*_#?CpNEb;Tj2U9$2=C1n_J#%hckt1jB7Y zmels17kFAY!9*!JtaQ)7PMGNbrkr~mPvXK=|H{jQ=SrBz20CrnoBR~@Tff$u)6X@Q z^9?P9Pc1OhRf1_#$;uuY8#gPw9c1dTBp7Go|5PSiZ+5V+dgI2*iLMjx<;xCLRhZ+# zg6Ou1JaGb7Y=m<$wJE5pT{v~Rj@CD~-n!Bj88jbf+|TEaVdV}TST00mJioy7`FOJy z?;Y=Ubp*%MxmD6h(1i2O(vSBT1SH=ps2wl z_;`-thqXU6Ti>dg>dm_Df94zz8B&9JqIwMu!$js~@&hJ+U(N^bI(BCsS(Q(MG|>MR zlm%`*cT`c&Sv#3CKs&-VKG(KnWUT{_a4{;&Exg`{vzMkVc6^(ApTDL?LW5c5L#EOI z8)2fVZ>Fd#eQkHc*qGOVi}B{~Rwf=EJvhD57pwmaQ+|T;GiWa8Uz-qun}tU~L9MSp zAaBkdgE?%*ynhxbaS^K(JKx2X1Z*DbAz}GO!hJ2Yly#%-p{d)}J7d#o$9C4SaC}xA z7Ca@~G7ztR(Mz7u)84qSlQG2F1UDq?zCYca_F>zL;SxUC~>Mv$t z=C$+I=GNeScWYN3Y@-%%ey~lliVw={Vnv#g*H6U65Et9VWe5&yMYi(cKC?kk9KE%C zY(;1vwpLOu6Lt5plkKnoZ{O3y9I+1M8#2&Sr*(FabBp9Lkp zZ3FTMP!re`ZM_=3A9XsbPXGbZF&C!I?&3a2?x+ebPC3dLK-ScdKO_V#0T~vFwo&N^ z$ID`SYB+>{WTSF`eQ1ZdI=ZZ|k!Tor%pJAuuce zwskpVBW5SP-Srop$r**wu*lnHVpKCp1wSq1yZg26$|8?IHRKgYB8PShcS$}AtLqx4 z_Mu@ppxdM(p^vpJuCLb~ll7dgqsT_9 zabbK2ec;9*<_ij3BAM=Ta#*>wXD;p^kP!~RH$cA&BUxbN$-r2NIJ}Bv5Nd`?zL+z` z@_7f+(;G18Lgi&V^yK`^RC+2cy)EYZqJq;K8T|3(%a<$u3mFx}Hun`(c3p0Qwv$Rk z2cVQM%d9AoPB`f2L92qH9mwFEsk6P(+qZ8c19%XT<^5#>_swPknB@Bf(Y-Ps<6dzP zfUatT&FN<7aeW8lAYk@@D(IYH5HP=nffLAQp+^g5Ks}X_feF#~#z7|;4e+zAK53TC ztqzuLACZ$c&^rxR)n;`&utH><5xKOf^RxXU8Hlml>@A^hzUpv3_Pw!0tm&%Gmq;zUHf>Lv4$}uikiVmh)JX}5A6B=blG+xpQ^w0dYQ?#)Qx#=Q8QjA8du?p6swAqvtvTUgR2_z%z+81*ue zlj-#cX&{6Lgvh|dhYN)~0ir0bRTm>r(;h4cag0`ptsz+LxeiaJUi$9V5fo+i0DF&t z)c~S>857)YU9II;*Qg+BrHb%?oR!dPajiJL|8>l!q1;7kcXu>Wn-Str`QF{Tq{Pg$ ztE(m$=P$LjPa#22E~d&5SVDa$4Nlnu2IZz)51!|(!<@BMM@#+f#%EeWzo4VT6PTZ1 z>m!14O)Hv-L?N8URNQfGH#G*8L7dl>1+9bludLwJQZz6wGE&hwAq1j&06OG=%OM|F zq99|OEI{-1L5UqcaJ~bM9ZLqaEwre>B;IDBYaB1oSJDMZAN?`$|8eNSA-ufty@`T% zNBzLWAQt-@H+Nuc2w>6g!VKt0u>VD&A>(`v?;P2UD$Xf`i1u-@%HJki(wX<_g?qeQ(Ps2RjggeFC`m~E41p1z{hl?0S{(TlkRv@QPr-0I9yEEV*98s1BI9_=esO;mM<#~ zX>T#-pMm;iVLD^?KhQ(SN>EHNze4o^7{)cUZzz#HP51gRV|!fLNJd;!&0X>qu`{NO zP|Qpc$~HYU{vmeg*v)_mpwm*=XW*bg+01vMD=^(pr%f5ag^=lhqw(43(fZ7(B1M0N z#T7OFxhGGZ8Y9+_x8zoNE=X)pVNp;hTk8|cTs}8upNS7iLg^C09&B?AY8wh}rNbnT z48HArjrI*Au4iGs*Hl(#Ce@{J34zr#nK#~E@ELpkoa|Ut? z-(5+3i+F_it>PuIL(dz8q<(UEa)gxBm{^^Cyk`y^QkGstvpFZFa;?vVW*fM86- z_u*Stn3<)qS@LA(3njGU$45y?r1!F=p_6im21#MT0&iwVn`?nln53eDkNy!B#*6dc z%7e#z0s+SF@y7d<%F&5fvu2c_;)A|5Uz)xR6?A_g7&{UlhM6`emTH1I&?Umc4*~GX;hlWypd`p=^y_khY3@!3A9(0_N zQu5q(rqR!(7A!S(OMUtj)8)e$Z+&|~cj%={m->cODGiRwKffNivDdpAydbp1NC~jS z>L?ioyII_Wa9DtKaJ{?xs#S{R%wt)40R59Usu{mdMqv)UvlhfkyZZy=G~BS^bo;og zJVt#@LhVX3v%}e2`xfq#-(H9tbly>$^1zdpu?Yk+HcwN-YUCKi4V~+ed!@UjTO4ck zh>XYR1gwP{o1b46F#rUCLqSe3OZp7e*4?^wtB;wK@y+&0TW86`rXW?Zy1E9n zg76C$4lqWYkaaOyv9n!LelEzuGB?(qRjC7O$w+j!oFt3;CBCBY9m2VfJale;x7Qe1 zT|K>C=(a>PNVuo4unq;#K~ruar)&dzF?W|FujU6sIa$BC2F;fBc30o1pI8=nw>kED z%kGAp_E}qAo_*P{w01fEI5+9*Z*%rG^vOsn7V4c|CmEb(wpx#2ZiN2sqo8P~DX9KH zl&nzO6i#jZJt^dT1pcS}L$wv-;R0_0&x9Kci`7>wo`&n~%?-9b5#l==nX&fdn2Shn9ukb)%!)oINTw-5@#I^di{WWfi-dt9ffYF~S(^=UDhcnn5d@qGyn7pc!Oip%uTHYL3liUfV{~@Xh>@80K^P`cxqG9 z)n0q0NoyTpDiE6S>gs{a(ywH=x>E8IoX|IJ2mSmu5q4-dJzv0A-4C-gvSsr_>1pQg z?aV1?+dL1~8$32yUGI-7Zv3ifTbJ^$H2OUEUgF_b>(O)Ja3!I7;tkjaziyqyW!!-N z{iVWVV@I8NaUj$7Zxbe*z28O|x%_I1!WsPlrHz|5H6nO=4Wmy$trYNhSIFC>VZMgW!nGQ+?1D*(F;zkskmS`bF=u&z0EuN0Cg(oNJXg{^IuX|e5yX!-)*UH4yEfsbPqisd9PQCl`f4?(WZg}nP(Q~hp zFQ$n*gSCxUteWChocUs0=I_r@(Q!LiLZk}1}5JwmN#b30cW|L10 z95}E_edM8}`9#q0TDX_zqQ1yIyXIW|5cye$(d~85{$O|mD|+zISG9e6nM|(r4f%M% zF%)K*GyxUi+$t{QD|hbwRoBVM>0BAIR_G_c^3bkL?AF1GQiTt?aN&Y`4j&3AeAv2m z1@1XrW!G}5iC+gtWxB7ejyB4d*P7c;EY!mV|C%64;Y)Glswb8)UXhShfIbnLlJu3H zetDt)J!0JX1XM!4Sy)OUl=5HuDNX?SM#L(Gr0xMEf{0U+NNZ74YRq*^7aVD{&kkl( zPEb?(ocn29OJZmB4k5X`WZAN_FiQA+bf`WPL=+owYxiw%OX1$3WT3=1BvuV_C7u6g z4%N`mAVkmjg%gQd5mw^7KBN*cTFY65lx-_omZWK?=O+lcU5uU}$%)JgWY#0>8DKyW z?UO(xl$a)Z&1IogOs^jhxzN$0EN|a+Uafy4$S=k#NB=!5vTehy93fms*W;H{r}_#B zH>b*%rdBAD371EA(@5Nrg;%S!r)O&I@ncMpDR#Gf4HuiAcu-{bi&N#wc$6YVich>H z^1~%dmT(Av5Yl$UHsE#W6DsG|C4&Gxc@l2acL(jmbT>tt=aT$)ywyk)cpCxP=Hp)y z<)ge63$_HtmnC0g&E?g|x+T?mNwgGP3wx2$d`n;{mek(fUJCAwP{4zvcuxe{gwznm zCz8Mx7OwAV%SvqM?keaO?hpjpXNrpJK6W=*{^&6<1EyFkN%V=?j!KH2b-jFie8AO> zIP>BWY!&f3D5m5h-$pIRjxP)cAeG=^@(p=_k0`&Ac7;G&>M7{_w#rb%i}!356?> zy$J*y2bI9BBHxhY7z|>?#8--CZ}0j>a#Is zUAhncl28POMSG>smDCB%Re*PrpCX8<1^kfqC1^PM`UBX5=#)yS!YriAVr7|69R#XT z(tVNEnxw3}9(gaphbQcB^z-i6OR*(=uK5)3=5WrYXI@E<1O?km9({Qr#j;`(S=0Qj#LLilhv$XPSlgrl2++-4Q=Cm&&F?UKvGdt*(7pL3%4>EDWRiR^bl^=QI>!>Hh0zTKk|SSctAwX zDPvu7_vCF)`Ms;jtY#-+zCe-Ur)#$L`}ETnXi6SlJf1Wl`047?zQ3-&SLW~{!cbAC zwRAZAz`EvUYl3jvMc;o&9s1p+sTM&`lGqYkUi{-zLQAoMsKXWiCFwwo;OhMR-IH@V zM<8L$&Tb>(olL24{Y1fWxY9DQm)@i0 zD^e~b7kLN1a$T7vel(29qWIV>hSjUoXR z7le&PlnSUT9sltSZiAJuAqbMo>}P*oSQA=I_-q=J;XI@;_pF}R>dmZbPiBxw-EVG0S25%W4PiasWP z`j}jJJ9`m2cPM={Oe7CDs7GmO8>xNB7<||fU#Ubr{UHU0XTs-byQ)$~Sq~jbDA>R9 z5}`6@mkdpi7=cZ0WOMX1FL_z)YBm;VH2lyn*;|F?aA3Y7ujkv?# zo^LQ4{%1D`ts&dxCL6kRIRM1ie_hgY_lmmKt&P2ZanIZKvHEWlGdd!pGE~i&T>Qo6 zhqgDE;OOaD`jVdZsLZNRQ=<@;Y8dn@#2S`&g;o_LCVCuPzLOHf0BPxmn=kEZNGnU$ zqJK!i(zP|P= z`k_8HEG^{-h=!$(R-BQ7XPq9R>@^nKZaX}8Fp-#PRQMQF%IWtyID*`3;n{ouPH0d7VECBE;y#K`dG1Axc0i0E>y!|_Ho@a zSRl^mOS&ogk``sY>oZ>dV9gJx?2c2n&5ZY)oO&_M^Ba|$rmwc2Qc0R+VEwkwywar$ zBhPu?TN8PFaI1}}rAY+LycWKj0F3MNro|{DT z$l$Thj3=o+51wWotkzgLsx5a->wJelgZ|aKO72(4yHuZA^X}ENaVB5+?lvnY7nGm# zKk=7v>o5|g_^dzVEvaWI~D z8{;-3;`H9XKXK$l-)*a!LaeMuQEu@We-X738^m|7y}X)5RGv2NEhk$^P3_uBEri;` zJ46lN2S*Q2PA=A^IVw^ILEfuG?E>wJE8(g`%2&sPpYo)xi4n6>9TjQrjL+j})HgI( z5`c}-cBNHdF)#p+?@)0aPZUYi-na5ep!1gQXJPZW&hcnrI)pm-k3NC(E?vHw7!mFe zP0w`Di;tImJU!BHe!G9%Hlx+9zO)gDC`!Z$1|j+nqHUsLQ5-{0=r4} zkbAZ_8n{Dn;0*SCml3$qJZvZsYQ$Dzt8eCLB4UnJ(k*$GNo1XUcbArP!kuL6<+`Okd#3c&S3`GWU1J=}4g8X8^^Kcr1ptytZ_f4vU;cquqyNkr$q1v6C~ow) zcF9Y*bl^b$aQpJAm)e!bE$&oxbvZ5T*291hECSX!O0bdjrXcy`#0xqmbIz}Go2(l> zJuWVeQ0Mc2$3ojSJ3E`3F(U4|`g)F$lXX-+YF+nek5-m&I}kyVa_ z(Qa;TMEb=by%#S0v0eAYamT=*pcG$?{59{?A~J|I2H-S^?2myDEaDafrYHRvZMddJ83}c4u_qcvxI`6E?OlHK0!m=`Yzcw-UGRn71ae?n_6XP=d zl%`1YlT#A%qOIEg*3sEnNdc1GN11?K^8NcAR!@f;g-scoaYb9^i!A!gKbNS65onO! z@%iDm8+5!nG%3*azE@%xVo? z^EDtcJ@81SNvO+$eqRKozH1bg3abGZ{4oz99D zQTGwo2<*m^va-wyM`IJ-EvC!p#CS!;u)c>c75VJjr?&OADnJUH@>#64yP@$0*rPID zXlYE~Jex#EhFiJkRUEfi%X_5c7fyj+WVCOZe+r-(h7H1=aaP(SC%$|me(!A}O zNzz=4o~E!*r_nhnGdl%{iat zd!$l^B_=U2K+MQiMMt;xVx+@4tN2Zu#q*J*VNSDeZjm`h?2oJJ9uBvEAcY?b!g`dIbY_Iej*Pkbecm` zcmzvCj-+g2^j?^vcKdGjLj}*m7e)oF)?yaLc8NyQyqX&N4-C*&JtZVGy0T-19_S){W;#PEoWpKiG%)lNMcq1d4*>u#8tw*6K@ z!O|Y@k(n{QGh#)k?Rl%Vz@CXU_J#K1;jj4X-};W8pW&zfwUzWwcl5uNi~j0_{_{cq iS?vFh`{-?VpEcuVzrLB2^$#ij=r1x@7(IXe5B~*huw6L- diff --git a/e2e/spec/__image_snapshots__/sequencediagram-spec-js-sequencediagram-should-render-a-simple-sequence-diagrams-1-snap.png b/e2e/spec/__image_snapshots__/sequencediagram-spec-js-sequencediagram-should-render-a-simple-sequence-diagrams-1-snap.png index fe6735ab3b36daef3463103f4b9e04a83cfe01a9..e029d234c66ccf0806efddf83044a1604f70c8a1 100644 GIT binary patch literal 39241 zcmce;WmJ`6v@W^;0YyTjq!k53k?u55KnV#6Nok}(Iu-`fAkwWOAWDdIgLId4cX#)h zpYD6cx##R3cZ|EwUSp_B_|{tQ_r5cp`OIf7-=}ht1b9?3IJ~ije=zJ6CGVp$+h`V0sH-SxiF?XUamypln#wz;^&5To)!(nKx)$EPh38jv zn=)EGMI}N#KX&HX?L7@swTPJKvk^lXu6Ht8GA~+cweqx*oqPCDfwT)nK>TpP`{1Oi zy~tL5*cxZ!#7)HQhH=}0hxpuGfwcpVin%MS)S)bU1j@C3Pcvf5eiW70NC-Hx z?FHU*$S?a5G8qvcPknc_geZW~P3EMD%*VI!L|qxh;*O8g(BO$fP}$iz+T$aoKzjG_ z=Nbtqx%ZnhD_Xw8(!Rb=f2cH`*076;?h)wBH0@?etbX;UsA|oa#+^)({CwZ5#BBSi zrJRe)Y6JQ$4*XiePw}^S)<+GSna7PDO1EmOTkq@z>PSa?#AIXJ&Ah+L!(T8wCd{b* z{Q0WS&)<>@4m*3YkKVg4T?+Za;u&^dUA^c*r{dwvbbra4FEi8g#v9tYJhP{xER8L* zAJ5MGNr_~$NLUU??@Az#8l(UAC#zi5-WB)#$@5IRQ>yIub~bM{&ooC`JPr402vk5! zs;IdoW{2!aM0&0xB?Ci2jlmiwtaN(!Yf1{2QOl*%{V7tT97-J>wAkT1cR<~6J7pxR zdPBQ-)-|?Oe0sNamSEA{bMoRNSmG6YH<(UqC#rGh`#C)~rkIBgWF)4wKM`LdCJreX zeuK?zV{NV58e?$|_pC1DIx+lX;9mB!XE9y7EW9z)nA>$X6%{4J)YaV`&8aVTTh;Q# z#BX*fS=qck7M})D2@GUeYz0Z0YPz;Qt0hFQNGzS{elscXBRWn{P2n)v+*`;m`7}F1>2^B?ZmPW}W zKgJo%GrNDZJDO|S?Mb0M|3tCtfFXFO%oR6SY_Rdsv&W`{=4u zEpdn+_+@wZ)~i}(%#R9^dW}Cm%{+k}=x@z9+m)yet!cmDpj6W#Mae1G<1 zU@Gh@X=6*v4aS+v_Di#3{-1ve6Jr<{8giQVH`mligeD}k9UnYN)2a9@+8kN(v^6GA zy}(kke8tkzvL$+}9W&TB@MMkqE)}2o?{ar$lv=*IMZ!rCjr7gB#}6g&Qi(6IbVh)+ zZM9cC@+Q=>cHGnLPOv+4H ziO%Vhuu`hr&k1!YQ<6*LPwslM%f_lyw`SlIi4R}Ac_=4AO#C9?%7$1~RYhlxF@1{s zSw}+ZRR#tE(B#O622wdI z6py3GyswZV7awYTkfC_KP)e^4(6{& zv?sXlpX^!WnsoZXDO{p(d>BCjTmu4WUcd^Rv+WzWuHI4l~v01 z&N#vOHG6r~Z}<=nDq1P2{m_;cnTR_Y{z*yKlOB~dR=qt+(;D*sWjJDEZ(lNT=(sjo zB}pHsKT=F9a`KAk_;~O`)INnb5&b9qdQ@F-qRjK>RBPqJasB;D2FAvn>FQ6!PMuO7 z9ZGz?3r5X=jU#qncl`Q6egT-n(Ox3v`0~IoxUF+ryVHZ(Wxp zG@7a#QBGI$ZD@E|ho znYzo}Ns3=NUkYukf!ts|TzE05vtcUO(eP;Z4%j&%&G{Mevqr7pKUrhdJSH9c5pA^w zTpd_u5Pk1wb=_W(6Hzv4R z1FZoMRkWZT=UVv@XT@20_?X8~3v*&=dun1^lE=yWIAO;KRc+^{Vzh$;pK7M&i}r*u zN{(?u)OXda#_!KGQ2hl~6c@=^v1}jMgfg`XI&t88@>vXONYZ{+$!PPsIOiLD#@)V~ zsfBg0)!tp;CT20@aIUhahs@EDh)uf`Nd$uKLJ^{_wpPS$3tbOS_pi@J99;_OlKq?D z2p`MKGefSq_3V3B!5a7W$`L*W#)$e)U8Ydx_7s<$7|51+p4TsyXFn=0+Zk3YP_|<~ z>4iw;%3KIc`+r_&Y?PLec!y=ZJ^vy_rqNwaA(oGJe! zbR@p)c{#bVqBMWAVY1e4f3KpVz(draL5hlZvwT&s95SO^f=F9Zumfi0(2%#w4%KLj z;pGrlpDNp(DLfWlxj4^XhE)JA!yDqmV(@UV{(LuFdyMC}%lb8S?o{OQf+61n#mhXV zddLqCxNh9Id$5UM%-kA@Z%Vjv@c=@7NFOQvM8MvEGuo5cWxMN__!jF5{$JRd#JMLg zZNw3FOf|DhiLZNW;w(mu^{~t-izC{$VvIr2b|K>)%k(7X!UA%6Za~2Bn!WVwVvI&= zm?b6U__F!hEkBi%01x)ji?+5`xpSt^EJ=&{!q?l=r&W~G&vSAXRrowPjKwVCrKBtx z(~*~VRaNA1bQEwUXVY#WxPGYoYrCBPBoO$_-BEXQ%`U~7CfC8VgULGN{QMd>gj=YZADk|jB(a~WnN_C^j{qOuQhOwjf-1==66jx*aw8*%s+Rmx7lCxnz25uWpR7?1~F66){2|CgUA;_K<@UEzI6n&`H90rmOw=k2Aw;6(K4 z0Mm)2q~uoD6ZUNLfnU^OOroOkf_Ag(+uibGRZWP^Z7QOO56~AbTyQ%*n9DWm3ksy> z*W-(omX|kfjp5xtI?8d{(EIrDBc4dUT)YsE)#&h{J>bT)=Xr~=JBbiZyON)5?Cs5! z?TzXmZZDj}#@<-`k@d@Nu8ko$L#IN_e(_IH+Nq|d=KPVoOzU0jOGnlBR*v-AM!KGn&4*#qeG4pXQvov6$B__(LP|3xD4V-8fjuw%-7 zFFeO|GzA4kg3BTcD#3MC@KGSu!>3O#tqc{+<+O{HeC7+Ni#^jB)a4l7=1i8Z@Hn|5 z^y;R5UBERlv4lLczQK|kP+lmuB4x`eU#fhfQPmslKWR$dNs_@_CLLF)_$@W3IblOu zqPcO|+1V#2C%?gcw2Pk|6YMz7wotmcyJzT}tydGpi8z16BfE8pmbP_$qB`x_5AqMf zJGX^|VnUhaCzqC*f4->B9P)tt>Q8=Wa=hy8@lKx(tJ+Ub+nFZf%a?yI_WVfGD&gzw z?A%@%qOh{E0&w;C)hnKR_wG5lx{_SJe1B`UwXv}giW)Bnr~vEF$Hm8IxF4S$t(lLN z(>gjj64DCQfJN^wWmQ}eb>YFlz^JLO?=G~_$Hc<&FU^OW2%r@v2Mb`5iSqRJ#_dj# zO;X8tUV1Pai>)2|vgbRe-K@-)FJIIOt*_w{(HR`?Zv;^B`nAOicjuX@njOi>$rX@J zf|X3yv3U9%2QM$1r^qK-o(M5BGq*1x@1|4X@oIHA8cc%IYE-0rf6|{}2!c7@NQq;r zaeIOqEBWE>ihpo0(H)I^R_imUB$dkDoZ%x2oi-Sz>Vt8wa&diJt2j#tzpaY-(_!T~ zlYBzUaFHFx`qq|yr6-1gk z)qfdW==uKaIvZQiYb@N$G&C(Au06QIp^JirVe58%mByzNiISvqJ_l%l+Nv~!*$wsQ zhibb}@%HYJRgTq|7;IRYN(L1H6_4)z`UH)D^>}e#{`0(-rEo`Xy9365GPS7RR(S%* zdW%DFYjY4BgM^F>`z{>qH{~?NghRPRu~w^!llKGWDU!i-54G8mN?8=|D#KZ|0T<`X zKR1{9C@Cpfb;^eicP6U6(-e|$B!g(KF*15>&NS;3w63pPzbB-{o0fBaIb6s&F)`tV z^C30SBL=WFrkW(CQESXY1A`l|zMrdeD=V#V>Oa+3or4^0ZNE5g&C&?kP8VZLKc}Ok z`ktHZBtj}>}eP^fav)NGc6N(g>==)Mq=XaL+QuS*6pz8izU2Qc# zNILCJ@9{~az*1yy*pA;V1F@A};F*SR_}AV~6mvJ}`r0T}eksfgM5+s2duh78e(nixYU^eusV;{!WX$vU_%}pEXhIv`rKU2E6x-|frmLSj zcW&CO*__Yr^w_y6j0KC7w%l@iaCc=WQU`q!4)(58;omMArW-<>oSfF7M77ype-T6@h(t5Ei~>S5&L{NQsb-NaqmG(--b*rELYhy8 z%@Gj6vS0Sxg2HfqxQM$omVYks?3lSenBI7*E)buZucdgky0Ouhgjuem#L?=OYNib2 z;lfu7isg21hK2343awu=K8d&lmhI*yGS{A%3LbF|7Z&ny;UQ*8ck}2zjN2XTda3_}EiiwHoJ$%H6hzOtuXgR0?dwIq0JkKqh zNlg3!G!oPWC7;ur85}>>>PP-t{U|{sBvgNkBC-L}Of4|!B@bEXyqF-fCSVB}X zHKoBNp(@CP|MKM+x6jT*>ZHI4?XocjPfr^_)=W=&$gm6P)Yr$SaH3O%m{_Be>Qaaz z8@TEj1JsF9!t$LHRW`J*_gEX5o+X4? zL8G=f=|C#pE1Y`o%9UAs>;N`W6I$7=A15?q6gjXj!F`ZkzO1))8KTFk z&?8q0ST8*G2;o=ABb)O7%9A2s$kt|G)f(|xjmpIGSxCvr6TdWQhWT_36C{$Hd z!4`9vcHOv4LUM70orB}j+bU}%3-5RDI4p++X4~SM;UwC@ecVfC{CtM<5Vmpke!P(V z7uZN1v)%w40xHz_%8G2#qd?dzoV_u0h3pd0p*JHO+TsMOfj`h-wHSfY&She8@o|a6 z3X+Ag^DVfduZXz`ppS;eqBve)Le+Vdi77?x=n`>}2Exeu_zVkPyLJs;7Xw5j2`#Pc zSh@Sg?yk||pELK zs#*BK{b)BEuq8RWwv3DnJ_PNl3|kb~krwrkg31H>JlnR%$GNduvA4&q+B zT^k(TRS}W6VDZx{fa*qF*F?FvxRAX?!m7iOoBS*4qPJB2^469NjV1`Gr#B{V9^M0EB$pty}m zfA-A*<3t5`V|*Meh$Z+`Jl`6&w)gg!Z{5Q4B){`~_)kL}nCSdynXstqZjD}cM}d`& zo12@-z%NFW`{8y~cX#N))?ChuYMi=2YVX8EdWf;c%l+99w}~%Zs*K{)zX=Eq;s4V$ z3WCJk4`GAttMhz(!kA*-Fv1=!4d&ejYyEXvILL32fFQIXOarO9#7Ys#$bw zY;18t_I`knfc7B!QjDEu=xIFGrM}33-6<(5U-0Ap?FDb5>a z1sX9+yX-t6VG39*aOgQ5`Btgyl9Kh9Lq#Kp7!dgU+}(YB8b%&nhY*(>78ywahjrt| z4b=KvA{w(OiS&bT@~!_AR4hR{0=h$why0|yt}&F^#=#*4jBNklz~*@0X2~ohB&64R zYI(T@Aodom6%Q4#?5w#b&=#i~gwzdq6jL8i#?Qwz+pxXFAosbzc znESG)={XuU9k6R_PQ;WE)WWRf7Xe)t&+th|JjU|=WTr~&H=GQFluuHUe)brl^0ZNM zYHDaigvvN+%4Dv`iHpa{jw<+6Avnf2#bmsry)|P1AaHk2(-axu=zJiwoE^`J3wj(2 zQ1e?F^#6R(Yfld~Mx21no6#~?;Nc9Rx~@-t66rMm*?V(GHCykY$LWD_zU4^MLU*d5 z&E&b&)z$s|eJHtPVeL@onva%76JLJ>O}slXJf^=BL|ywU(Bi_5t2O3)+)nGdGE5}o z{$53PbC=;IfE*y}e|hLnKI}N=&Z<=$26TVtr+Zk#BO_aX0CQKtDu9fp1u%teEBOdd zxE<;{q$)u&0|Y4~hTORm2=Ga*TKWEcOm3qVBpY~oq6Q1Bh^8|s)wA`m6%-T@7s=Er z+3a{glnp7OH$y`bc!F=w^KSi6$(V$~5@_N#1k`-ikkg+RSjqy7fSNi9vI>uR|A*VE znd^HMXS8TEdg)cRaHC!}a$W2;co{c-#N-tv^6Z@d6^ewoYTDXzfeZ91;IMf72M)<+ zTaI`W-D(7R)Y9zFBZ+Cb4l2l|EE^Dzfp)$jEKChWoEH%!xG03>40D=mi`R$F69m$? zu%rDYG*G}0AkaZ^k{2K+M2Df0fXhoz#MVPdhI=k{Sc$P(3Gk7U{sK`_u>~lILhA`k z0DH;cb|`=km`}@G?1AaE8LFqY&U~jR#845~kpWxt%)qMT>ARDMZ zMDob;Rvs;t6|VqBp|M=0vD}`Uh4N^5tRgW(qX4sr$S?gLr2r_3n8lfuA^EP1Ou!7d z#xC1~8rzBA*v(t*;#NR4=NWcf$Nc1{@;^Ik}4Y$?z>GyGu%h z0Zr_(L4uI5{Lnax?K5l!b{xfLK?MaqBizij2k*zHrm7)|wn6?{fP(-xoSvRWV6F|+ zxcBehpYKj3$|~D^UcUPu$Q|Ai0YY%LSRX!osEiY|Ti@Jd01Dx7XKCwrs~rnC9&zi< zY3Wni6H0`wUJWaZaY$%T9{H^tU56ubi~!RJEGjD6XcJz0n*5lo{9u;4H%liNXqVTo zUqcdq3;2=V6PgrWkHc>flakf|0e6MlNTwY1F)XYG;?Y2LB%q)C%#CmAIZTiw5R-#4l+$&0*$rbFI>-~9lJv=tj8F(+ zMs{0ed|^Qv%3*tPd3kxH7zioxNzwJ~?}uEmzgn`kKO1WWoDB*XUhGv>V3?K;LxALf zq!?nA2$Y7VmKIdg=RN^-(OV0wEp`dJM?<7 zDwX6#z5M;3WcRTCPm_RRoRFWN|EkrcLNf5O?fK5Pko&TAt1uJXHl^VlF5ZQFBmn6c zQ5VpNx{&JV=o}v(3)oD)%L{C1kOHdn^>8OR$A_g|GajmoG$BP11Lm{G2U}nvIE6)a zD_zMKp?=qgA^>^0C-nUgH~cCc3PltXFE3d`{Cfxc!DxtEVQz%LY~I^tyFcxqRq8|x ztmIOxmg{4no`7h6=k2ZZ`93xkkBM$P1NQj*d;=IkW13Q`)Z@pKP@WA#4;cZDa4c{} zMQ#UNP-B5Rbf>FxdmPMAAWR5=)}9}#1^MAIF->oi!h zy2B1Jh$FTYv293LNHvXkJ=7-i9iOq()zw+mf4zf5JvlWch&~ko_{$(5a3!fz3UWQD z8fam0AOm?1)ebO64`35af%S&YtkKS54^$$XkZGYp`^zdq+@%$Ib(NbtG+V#EE7w%% zWnZR6iIpw!Khgq;4G~Q$}bEBQL3=0Xhxmdnq2^v z0w$?9S>tC+;CU_CUIf{yk z%UZuJhJYGQASQ-DcXdzh85kP_V+f|tFgIlLbhNy*^k>y9ZD3~RhSBay$(HO`A{Utn5QiNbG2wqkEZZT3E-qG%5Bgy>{@}rbj0vR3i zWH9?%JwW_RKYsix$ma_FdpDwi5{FhvWo1$z%%6VwN?Q6F6nA59wtjrR&cmaO^s^T%>AX#TNZoHi+@M$mAw zGL%UWHorXZCX`7K0dH^XFZrrrJLbOE2_*A&*wxfI=$*+A}-Xkca%Zy$9YOlr&ab z=G<5CYrE!JH`mvJ5vgW#_xBl=MOwHL63cT?;X$ws2XGDX-~t}rB=9tbkoTdn6xp3B zkMsl1PEUOO{jUR50veagZnnkEYMY2gpb`+66!1=P$K24O`3gzcz`$S~D3dA3dqze~ zK=pvDQbEJ*^5x4>+{T2!gah5706caA`qUW(n*-WBNkC4M&;)aGahY8JEoD5=*CZq) z)v%9F3(1k5!^9y#JNz_mr$fNe;oh1&aGps22omEvFE37mhD$(3>;vdRkO+9rG<4)3 zlX^jgtq9;z#NBMi!nb4%-J6qC7;kJPQ=mbtUscP z=p8HrdXcpzfnJoT{CM-psM8bypk2?<&~A&oK4A5cM$KIaKR~=-uNr5o;hh{Vj^*U! z_}ky9Pgl?R29AY=OZfHK4;6klO@QYohdWaMwV9ZiaXq1q-)iL_1KRD1fb~_#eki21 z4M$I^(F!gc4uH8qbnzdhLS9^XWVEw75(`}6RxtV)3yuSEdlVp{^r~}E;CE5U0m*0R zeutSE=@LV4*B_`12x!C%Z zgZA))_xPV-xxJ{5QBe(G*_MSCa8BU>WPQRE0f8aa2&lQBOqBynyp=w*zOhjSk^{tg zq1^#YZxcwA?nBAY0BvDF5fFBfssRBQz>NUMiga0A_g38!cfH@g|79`62k#ZsX<`6L z*X?j26;TCHavQDJQt0UN#d1c=h#W2FppaAyhlNB5;56DrwgPq{N}zB+dZv(P5Tj^I z5N(D?v>EpnZXEhiFQBFRYHc*W;`GoTxV&yqqdBY&O9M3wJ%kBg<^Iu0q*((3INyjg6%YH z3Y!2*6jv7@=ASH`L?+po;RUMZ-FlZI)5%N+s6X`a} zL~*e|wZm9t~fH1vmt9;QiP?Q17X*k!kDh3_SJFi?HKlTg!0VIkC zk_c>vK)>Y&H5Oz5q{Kmz0h|)?l`AG|U8_QHN&xo++VeqUiAWSoOupF<0eC?=Q8qR< z`D_Xj)A=R@kkN+u-d0s=Sd|&BaXt1T65IELx)HMj8YRFdM+?|6fM)t$!dxiuDZflQ z8BnFAr3k)+tcx%kZ1#`{ZvHKaE`J5&b$1nu8sLsPdNY*PWgzQF0f24ap7 zBGK{5Nrt=$1u=_h?s=`p*mv$neq<07j8@fg?{P6x2@#%I6d!vi%AO3peUK0IsxbQc z3||TaXC=)6T5}{6B*Bw*_Jck8!J;bj=NlmT$idC=`usyJC?tA=5CbaH-?MrCKAOP@ zaUpfVb|oel>K6pLh?w2aw71_*QcQjfjKSpEnw1u_EpGtS2t3HfGB7seO<-+iUa*1i zf)fDj8OfzfckkXs@xJ`?Q=^Q5f&U4D6uzE|7ISw=DABrSc^QY zQOeFe>RudqM<2jqo9M8|uUGwj&p%llWDHFIT5@|4EiLA3$zQuZY4f7K$TO|aYFumt zt&nW1Zo`tO(~G+(RH|Nk=UjAJoLHz&pL@9aVUI>(v5>~lU^e$hFC7c$Zv7Gvo+-~5 zC_1{5Q=!@37-c8YlS&&Z?v_9+e4UbiLc_uQG>WcF{EO@o&T+VtFBUQ9xmT8T(?p5w zN>hUb*W3gSB>AxAbq&|GXW36FadEF3*%A8Bmio%uWr-Z2^QI}tJ@PK7sxtrj)pD#q zdWnkvyZSuu&E>e%mVJKaFC@UFY#M7`j*cEkKUr845Q=fq-^aXPEvH!a-1#}r-sJsF zLkN{+YURuf`CkzuV&Iz?vb=%fM8{qKWM}8HvyD66T0qXVK9Gq|(-A&BeVb>4y6r87 z7>dTn=bFJ$s(`R?SJIv&t48@-RUNmEL8DZ{QIS6x*ce(dTg%W9@1ZOqB*TQL`I zFzbAFIqAD1o~e@{B*TQ;)twV1ZpLA1N~xTFqL|?BupDq>erm>Cb4Ls~muvG=^!?cf z`Y(IZrTSlo#`y{-vU|e#f*08nNu?h~4`DZ=S-4d;ciw#V()Rz|HZVPYw`M}Te`kpq z)Ud^3A_;ef2r+(&AK!4zmt_(b_C6{JNVbz)8``(@>Hq7ZKK&B=tCT1RdK`vzj}zP% z>{L9&BeYzDvzM0&FxIzOA8Z-rT@e0Ik}_50Ne=ZEMn|%e5+UuuRPo8SQ$zcpiXag` z+YOzz0{QygKn!bp`?~6riX$2!+Zb#e3%#{`7Ul2L7?qXAC0$AFk|F~ow86V3t=C61 zX3VmT0`ZPl;vd4BUZz05wxzRt*sJzOu)u2Qd=jT)gxk)`88CA%ZkxG<;cON}>L(zu zzMo`)C&C_5@*2SrK0dOPfseG^*gR!52+8-0YcU@sVW4om&&r>S*!>W?A# zE`saDyr)@a?Sg0vq%HE^OzvcGiNUs@Q$7nmxqrAg@My!-fgTk<=$d1rbOj|X%|hcV zB71wx1$CT1b$(#L2<0(mPpXqxd@u-@|7)@#`4cU9kiy?zOKeMjWTr zYu{9QLL+e<^e2znf7%~Sh}7RmkpFDUNc8>L9eE=oa`E*2_?DJsh9j26xQku6(iRSD zfxq>#p$%3WV}E3MX7F%X;;)*thAF0?G2Yf7`)=zZnc6RtD=0g0`kGj)JL9oy`8EfS zg>q6V9_M|Z;f%F28T?A#UU7(xu47cld4!$d@#{gk13muwiI6 zmn2ygn@?Z6lRC6{EgV?iETK@wtUdU;z!{mdMw82j`JgO+tq7s1jle4pr zz}Qz1MJ1qCC`P|%m;DxRB+bUo8IS=$TV7sX+iT>sul!P(Lm^r5RN;J44x46S%cA{} z(?$^rx}WSs2@i(&2%M+#y#33va<@tE6Rv!ia!RM(sNCaIo_mALuVujMjv7 zu%}yS7l$=$>H`#HO^1;iAqFtgqVHQ!9w$uKreaHgSmnVF7!q_ECMV=jb~2Q zEyi_YYu1{{;}^}}F#9W-^MG+M*Yc@}u-A%C|Bm%5o{hS7?04_uzq;gY=9;Y5dQCUC z#2&b0dn8J%-uRb$qWQ<3H$Wudvc9VdS*@eSN`MGwU)R?9>f}28^5G5%3~Oo8)3rxf zc$@U45bM{Yt2<9}zCG^=<$urKu!j;OBI18Uh>pvspw-*-Zs#^#M5pRRw+iNNX4Lyk z1aGzVXC2g6cua^_kqAKGcz?%xb5B8@W2t#ZIYTk%q21WI@wB;=jg#OC?(yh0uLQ}C zdhwt7TlIgwtB3r=ViqKEOmMOPvHAOx`tl%GG(7!far8o)O2oVR8uvx>siyGl`+Mxm zE~sT9@x}y;(8jj5iBmTHh2hR4hl)E4e98YZM~>MVXM}tFk;E(cb}k+(mDrzHsVI}N z{1E#;pJ8v}#1nsKPoWk2e&9X(;ey$bW##Iy>{ps5mKAgtmPtrqEQz|M@@lRtSs9go zMkl?zP|=^gbQ49vo^pAszKCInX5U=ZW&6N~*|lJ*lP<>LyFiyNRD5S}gWt;N6Xs zlNIz}NC4BksnN@;Lmg7zMp}%1(KjVC>@4JH?)UaB7KBofQxj^4+U03W*YvFZ!Y@63 z@{7I11fh)+Xzd)`Y|pCoF=8TI@7M}-TV6fstI|%B@v=_&t_q!0YRj#p3+-I{J*(z} zww|A_lXo9w^NG-?tt-uCWt=_I9H|&zdNDCLYdPcM(;w^c68bkaMnZXeMpG#qsE;2N z1ui?ssFd&Eja0liS(He8e3gX-+ml{(^_I1GQs>?0F0&auf2v~P2N2>=91}@vf|s4C zJe4?&Gu(B6<*nK$sz`eNOkSI=KhSqgyc&$!bnq*muP;lSpWwyHhzw#L3q=@U(!^Wd zGuo?gX#pezic~J{9JL(Fu{-fOKB7q9UqZs%Xm#$b(^dwy+tvsln~t<`@3v~1N}k*2 zBh~czwj=$7FLrwye|{*111hSS9{*rfaiqboJG^h@JQG;d%OcDFvY$HG`dFfLN2N-v zwbZ2llMrex;Dou%<#21!pXm9Xqn%w{XXoo(qGOQlssc8VIhl7J9*$H0<#Yv0C-xyF zzwxhDK~{C1^bQXz2efAbQNd&hz2o?pDZYK__l~r;j^(_Z42oLpSnI~%y)*QMi} z?k!GsyLc-rx#HJ^_zSnQEMmR|VW$%@@HxoH7NMt^bHBZs)3pnNDH1PM>T;}ajtk~m zbbsL2b}j5blzJk6ZMs8F$Wi^NxrLwR6GX`X0r+Sx;MU%IHaqirWLYbsLH6%RX~<=ZdFo(}?Lf)pE=Os~ zgTkh&s@Jt!<`k6@tLH#;_BZ^-{=F2Q{(BN4ygIa&k8$bO**VB4!+)|P*;BJ`Imw5t zV1{LE#_e45D9~GZe+ic;X4s?p8>@p6Zeb0+qO1NsE~@!25D(R+c4b4>51r^%KP>Xwb#}rJm>5(c@3r|b3H~Q z$yZKWWA#--A|fJ8(+!*XbIvMFwP}l^NYDxTLqYocxrs7EZQUlFt7DKG@H|IP<~BP0 zbTImhj?QTZjv00S3XJY8>khxoZ*o$~-fq7+({s(An~cSd;`nZ81c_5-D7%(Ul&ta} z0@Ux{N%Md7aaM|Dl1zW>?Qb`)plC$gaMpTBOyS*~cs*iy$Cf>Q(g*l>eM1`FA#S|( zUH)PA_AjO!7x)i_Pv->dN;{)ZPIDGIQs@%hLQZjxj=juU5_%I?Dr9Dw!>u;69L1BI zY?wzqaxPjt7p+YzRjpQNe%<&!`^Iel zGq<8m*-^JLrMhDI-pn}DVeBV-PYZ&mhxiVEt&6`sFG7w}S$=ZO?KE8cG&VKcB8gqz zwTRokmmd}2WF~k<)f26Qj%n#7P;x@=3bj4de33TB^q$DFSzq!2R7(H87obgNtRB6^ zlQ}jwp~n!B(!A~mfKt8Zn@Z5j)nKfrJ+0x@=s4_8k7u}A4#siG(WMtcSpsjXTFtsF z?^-M-2W!-Zn|0ctmPe^&oNCB+kLfTg1F0{(i}!DG2oQh3P)I}eAnSCCYfw>1wx*t0 zp*WYDzKvF@ntUpnCzIJ;T!x^v8(S#G27jLeDw3 zMGlwYRMhf;XjI|;jg)p-@zR#j(ID>6A=`_i??TR=->dxGoolvI`?Jcz_T<=y^xUn# zkS2Y3nXBT210Ty%`($>a!0C!b;?|^Q4cSX^?nAM<{30_=Gqc-F<=vrTWo33e@AL9_ z$(kbT&|A5zkvfG}TJ@9TF9}BcL8FzP;4u(c8OllAfNfwl`MbTx#A} za>$F$=Nodw*_ermXVuIPxg##$*cc{(M@oyRFBlG*1_%9WzD}c;DePx(>_taV`+7Ta z(8uB)jWW*jkgMOZeC}^Qc9x*X^(S`oQ0Vp%Tsay8d*sFXMG|?}>2xVE8~8`xPm1`WxdN3js314)Iq71+hKH@@bPz z^@Fz!WnXTz7963ZqzY?06zD_3!dhC++@9Q@yi;s%S@Yd6E63`r(flG+$Qv1Kq==dR zu{rZtA=6x%iVq#RzyH2ddtlRyApX!_?4QTJoplmwj*8I+hxQI)@lynotky?`IfG!rU))2JuF z^=5GD&6J58%`qK#!DUfW+U{+Kt7nl>V5_*VMp+9|1gC9{t@@AD^f|ynl=gCpFpMY&A|JZo@XkRfz7h>hN~ryV82NhE9D@ zuz;$mW!$W8$CwSc$*?EQ&p?W_Cg+Ce_mq-tDN7TIkNh;2D$e4g{B_3XP2{syWl;jh z_39q`2dEJtelEv9GF@F=uS_*V(4YP;VYBBHE7fUlOlLDUQaCb6Pr!MR!A$Ikg4Zl; z4h%>p{(vAT=pl5$3{TTBhKs|0Z_4LC{jSWp?BCzD=Ve5xPe6G<%)-J{TqfXMl_ggH zCD>yka*c^=aV1z`1#&qPi(2sE6$Az1z?pAz4LdXgwooz>{y@AGLF)8hD@O!t#2J( zP;Xn>Pn;95p68*zLsQopdqG6S`KovZwfqs^j@rqNW&Wx_9W#A!OCtRnDU2_dk+$k) zct!@VchEboi50r^(`_A*u?b4C13lr54Qa43;xnxsatNK9rxizBy8V|+V|%~I{z!E? zYGsS|Bk}|qL)XHhwr-6{v0Re{%D%Udb)3wP?sNAF0wMy z_D6jTrOTBJ^{TUqJI_aKI~*>@Dk4WiamUkJ?k>(#kPa%=q8h)q7Z7`_HfbS2!zo3Z z*F#(U+K@B21ku?DGirUz{f$FLS^p~ixys%6d#}v*w%>{mFnD?XHJ3(5-tXbnJw4c- zw!x9p&tI`tF}EwtW=|HX-nn?!Zf!75%+9y4utsEPwfuzHbl_Ned1VFV)Rsz!fh%v! ziq794Icrva1JT(rL+7(5i^JMcXaf6*x5r!Z%Zb+h5W@|M?j#z?V;Tsv&*>5NQ)Ev~ zCYvDJI%MTwbXKJVL7hS-Rz-ehp!6Xg*I&c^xMpr)!6nLve|@N2MMdQxqM8FgJ>v}R zrlGMU(|l@qJbkvQwlL{da!A|jA@=?wqo0v*{@b@Bq6HR)h7U`6wfEPA?p0QGJMm|D zm6g$=X+)nK*fQGKGDgn>ujGvdF9E)9<@`v68uVsv#T$~6+*r|r2Uzn&&0_o zSg)_Hp%D`G$`QSmk_XkuxyD8o;5b%p%2K;dI}Lxk%@1C`f?mS06s@%<91jNoRosIUFPuOi%+%P z+r!8E6@Gi6H|lQ3a6aDtYS*NBndvSzHWv@}+%s!f#HWMG)YlYBJq zz^3}1&}kORv};k6O}jW@%8kJ*B-|#;{S$+igp-p1v?f69QrD$0O$5ggx*!QE<&yHA31k$(&gaxRQuv1>-M-CC*X6_#31C zKLjcGS_!_tsT67^bLGDjmygdt|8pVaDJk6rY5pQg$DS_E8}y)>IMEt?xcTOv*@k>% zOq}kjrIpYYHeI;+v0by7@7Jqy&OT{>F&9mm;*9fmW#`c@PKmD{x&@JV_@95&UyKIJ z{{Ow^|MiVNdP6jac>r8!sJMT!IXzrrNBZKR@7TJjehQ86%P^_=0=hu3rO+Y+JJ`xJxW;}cMY&5SsX8Nx-Z8uOZM_N?M2m(ZVxap#0nwBMT_!=Q>(Eh!`9nqMX_p@^-j-of zia3Er?)vVo$9f0sj^a47?NTpnryGc&+gxp&=pK=F_x#0+Q_!WR49-YT-@H=|-4OU4 zx3z;qTaOEL&6fxB{O4dkwLJd_BwD&=v8T*aAe=e|Wp6TQ%_y7gxaKZ1KJI|w5wX*K zeGmY=3k+-(J(`=_LRu9OpD`tFP#{W0Xq>GL3Qqtt7Jlm)7ahHb(+3dWf|h)KsDK@$ z``1`ld|?w5psNP2gGHynWQAs#OE~n%KR{Dgk1N{8*Y^eJeWL5mrbFdHl4uOl>o`%@ z2x!gy0;M|y6{OEpU^(&yghX*7&X$6PgC6=F%)kMbKt|ANY9x^MDa>^Qz~C-&oUqZ*zs%U582zpA|*h&Fa^hvoi& z0HpN~1ESlDJ+~djWx!6e&qItXx&(8xFqHXA(_t=k2N{e5fhdj8D<5cZf)awh{PfTa z-mng4bA18=zQVU-UnkQy6f06LL zj7&J0^<{2=;1D{vAYCRx)C15uLv|XZ#(Kuak`ORpqBpwE!Nz6+1YC14)A9wZ5hVjN zS)lLk{QLkHwwn@$bYPsV2Bt22e9nWd!JOm;=-$o1OWLpe0GT4vlm#DwL4}KehFG3` z|09~%4nNp{$(0T0->&aZ1=~SqR@>vi5YfnAJ$afAB3Kj$NGS+u1n$Bd6CzIqP01J7 z0YrPss$Hsv03xYtpY85S*j~GHhrnzp?rab`7BI+ut`fSA$RIHc-cBJiogig{*+DyK zFC&7~0DB>a<*1D{Wcy*56$UpVld3~#Xlb)^a;}2`f;7@l1m~t!F%Ksvr(=c^DED9X zrZ+-Q92uf~_FWn7o#4v*doUOR_uaDLh5^|U=9wCz_R2u}7YdR+=-m^-w&7|2_sI!&0?A(HHlTyoHqIwTLMKC{B zflhINdcj=2j*x&L8IBiply9NuKJ$Gal$l&0y3j0f2!uYg-Ql(=4BW;Tj)7)40p!o% zV0GZm3!rF(@1pq(txCaBZOf5SfBh?uQg$oE$pH&``|o=CO#cR<3&>Qqv=Tc&#FzuJ zGS|!_a4Z;lmjeLEl_$Q{!VLq$#zk@Ci_j1(dGt5aDV;g|}v=3H#S5Jcz~c@gi7+ zAxy-kYZiTk9;_ja9!#I!1NTQl8bnN(CO!xA=pfsWgmyThl3_1h$3#ZuVeS+8bU6O* zBuOIhP(+F01X2qyP*M(Afc%Fns1ki^1G$H*UOx zA0S`00I>iRZ8Q+m{Y*XwDLi!$DAjV{ zgU5JoKS+jL;u91!3sX9XXkcru9T8@O6f>Nq8pai1B4Psce6LmpdG)D52@C~>7sEq8 z4(CmSt0&eOpl3k(=`d>A0{#zQ@WKR{9vL+NJ^W=Dgv-g{reN2ehGYeAzLYs9z{eNy z;lm}E=u?N`)|J7$>cPPnFfHU9V78_mR2ok}wgHpf@1wPmZ-4kmcKboSaKi%_JEH-K z7l?iI7j9zL!FLcKrwdwA?D5&w*wW3W+Ym=5L1-}XiYV(}^|R*69wem=0uA^+g@rvW z2|OAoXg5C`p6rdWKp?EscXf5WdLm&3M@syp^O_n1Q5w7zH~Q2K^jJ8EYG$o;ix4!w zp(1B1yb*W@wY^$*(=~HM(}GCBvFjvoD9%4fI@)W6Vi_jD0|T6C90#i(GTP{ zM+YLhOACfgK2M6@cewBSx~_GtwJvASQmB$lED<(;h5Du-AQ--Fvx!fURQWLps#{aj zG+WDv-_(J=hrU_1<(Jx9OvS4lG6kY*?9YcBLWY2MM$WVbD;8aQp0C1LxU;|hgPR=K z@=tZ&zsPewo=%83k#=n<2S;8x-(W8?^q}T)S`*+&in`c<2<_02X-V9Z z>Y^)Pho=O#qG3x(5p}u$UIQKm1}nC;yvvU6Sh4y}S5bcTu1sBj7v7S>8}F=V0z8xs z7z^i5PYkeyre$bJczZ}4;a`k9ww>n9o4m4>L&E|g+a1QnPJ}N9X;|W}hU(Fy!6QpK zsBe`$Rygs2<#I#ij12qAm20<{^qt_~`1<#~ac*QE|1dMzQZKcTwlzRd5tsJlBUS?t zVgt}ph?l|5k`}0l zO%q%uBl}ptRR*f*WZAXfx?89NPowG<^W0-t1eRIH@!uv0d5XJXzOnQJ_+eo5K8~J- zQAiQ?A6l*vSmjNVvxq+SBkBDXB2iGQjzM0v(lPp?|lNN zJ?x{l>7nEYqgwd5%<17&5G2yso{BAAxOrRkgh}(;yI`jYWAk6194bQ&v+w#39uUZS zu%=Pj_<-6%Tsc5p_we*wT07-I$0ieu$W1h=6mTDzq3lHWkx-~`&@B~$_JOeIVcJo? zUPa31(k#TpWN%<=jMb?O#1}z!fEj4n8Edsi9Nu%p@4A<|-d2VA8E=8d zs{8`DYLIsPkk@o~b-l+?r`r7DL=6JI=6LaD z^Mng!>tM_Rj|UtHw}>8?mGwAc47~~{|;#^yj02v_hZGcNiHH3(X^~a2nw?C|1Jg52djgXM7 zDJdzqtf8EeT=+p$JwfVmaqqhU-@vovWLYqct;rSl+s|1aWv& zVC!L8o&uqS#Kio@MzNY=2dqjWgi+9jyf4&i-WF8dZ6YF%5yn13Ad8q(6ce8lB-jFX znlcp$8adiK4k3%1S?m#jgKz#2yWND_sZP!2bn|fzn3R%I(HuVj_I~2KcU4yJV&35V z@O}KFCf*Os!|%v%9sz`p*&@Dm@i>TcJ3)Ph@qrhTa0|Q@omfF~E@M9&{K9HYeKzBV zQOSKhmfc;3&a|2vFZ$o&cVa{5LIQwF?ZO@JOBsz{2-IJ>F52ibLvU6lj z!;ClI2P9_GptA--0}fiG0e*e3j8hO|Cj%p6G2%M*_%rAE8BofEt-hWh#CgyWiC_W= z64@y@fRNM|g56G%NYj=SLr~6;+;6!7k{&U!*I7Hwnk*P%psZw#=IjE&IvrXmxeN91?BS+pB7jKfx?rT_v~650T5GCzN(AuZWILE&ayQBX++Gp)2DFH+X?xAxA3`Lev5HGWwU8=D&z- z|AaeicZYE07sQK~n&0w*r$`j3EEUebzR)0dDuQs8|H%p5L1*$iD++_p`}b(ZG3hz_ zAcUWJqj6xYt7wnEyn=%8`S;7fC0Bqfi&_nBiw!0OuCRDz-jRdkcaK3a9oz#-ky_pL z_U;Wd4&5d!ybg*sXl=3jV5asI>oD1@O@esSAWJ-a>{xGXYJ1WT5!^XH_OFN1E?`Z2 zz_NygP=$)@d?Ccla3Njy(3!^{XAl+;C&ag)`qrhGYJ;q+k?SnYb>uO-h{&h+dl2{& zw}jv&S+Mb)c~c5{Wf7`#;wyz*a%pEznJ>{_;d;nzJy+{uppc6!_4A^+lq1XAstAyy_V8bG6q7j9Fkb@MBIO%|G~xmTpAl`n^s? z_9KjHAUgR9O+AR4@F^rlQzszrhhI-V7?i|&2B$wBh|!iLoZjOv6NTvt60BDEIP4B& z7h0=x_PJ{0n^{y=uoQ_f7%b{SS@74UAwZU~aNr7B+V>R|J1crgMiIPVTmSbqIRtVx zzWyEP^c%q8?Ku;#>z$jM8)<+=>v5cPWqEtRB_#zO$S#U$4)0gW z%PoY_uC?d++}zv+^&cu>@>AE4)oAca{Od7s29ppFn9_s^heU zvf^5XvfXD17Z_jvWe0)mHi?yIX{mSa^tgKyUVf)mZrNJ5xRt>tr?p*Xe)ip!0X+(y zLOQG4ile_z_$CIai=fBqYY%tlee%bO{ zF;^zTn(zEsCbKs@iUwrZRZq0$(0c>~sQXu}U&p?0-~8z7n3%wVyQQ4R`u~O@u_AmF z(MVg@(9l3CY#i^q^->s+KR~g-0-o;D2OA+XMOixb;|E~_SGZc?81pB`80%sD5YbWK zpy?Y(gLlc2XON}Bqm#YG8EfGJs(tZI$=E1aKO3~0SdVZbEXUagqaIUoB~LEfV{|p-N*$M zIE)3fEN1ZO(?@V%m39zM0er@8l%W*F{6YXJrC^{d0s(`TaSdcQ=SSPKSqA?~&L9A< zA>{NkZ#R)yu|wC3icTOJI+I}b_^#B^JM!Ow}DNP3Cc-D5$$h5Yvr zV{f=hPVA(s{Q{51XKfCLIZd)agUtnlrwF8b&=T|xPGT4EAO8Je#~>mQw;9qX?uNPn zMzP5*IyI<(;ohNRZVn)f=xk6Bp2W_C6p#ntOh?W2g~$?sLBb(mYU6W8 zx9x|2jdc?vK7gfdUO32UrBP*%mm>KqYHVz*-EC0`cNgfDl}iwe%GPH<#zwyWsT(mQhV;$VX==*GSQX@C={57u4%Xc-F~SpMjX_ zC#V-n#3Ud%q9BLUwhV$!6utwk<9Ty)6(Dc|TTz-t?8gbtVG%}DNx(*l$dMShz@I44 zzazuilX?~7i7dNoU}=*04rCa-pZtS&u{ilv$a;~wLC#oM)nTW>lfCLKY6WX77Gj#P z2j*))$~3aCzq|8@TpJx(h^!y*Pt)utb^yOE|HR77tOP>@Vb(@KJCJ8tmOzcldx9(` zsb}!;5WdpDPh#%E{A}{DF|!+s8q$glN69Z5-;Y`63|Ql!gB#f77^0G@5O5pN%2QyyNWue zP4c4&!d6FbY`FU80Nr`&^<(QWSk92dO)bjHzTocMF?faiSzFo!Cx8hFF?F=JH%yn> zMs>@zZZR$+BS<{hL#md9{(rp4e_I_s2djZ~<1j?Yb7cVifJG(SKLK|Qn+!~@cT$Kn z2oV=B-Kywy3}rziQbM-oiW5Og!p*}&p4sgta5M`1>yV8tJppkw{P;NmW}BDUac~5p z&Tzj4d>%(qeo;};@9q{8lOph0oK?x_yx;y^flC{IYly9Ywp<=%&FQ}b>n0WHpN|nx z8KXg1;R1lH7Ot>b!gj<9kT}Y|nl!q26z9Kl)`*ANIgaU(oX8oTkOP{08U3%aS){yo z6i%I*QLhT>9HL81y!!3bOi~G}@}lz?2Z&V*qsF0SIm11NJv?3Yi}DJ(!&=JyTwBzW zq#XCn&t^A|RQjK8f7ARA$S9>(WOO(sxG%fSzpg(^sOC#wmBkhrlTh)V#=*YxcEhrC zmUan^-m5$1O-vdr6A}-|6>^-qq4fNmA$3a1IrFfEt+lyKJN?tcvYo1%gM)=#7NbQS zW*5yfr5pZyn672@Hg5Y-lZt=Brb1m~O@-m8VDuXe8#sCW_Xj;}JofR$a)|prH#1gP ztZ}=E_oTt%wy^AQzLD^ObL?pu2P2PYPQi|#1Rl#%R1BVVPWvOCr8%*!6%>r;58&Po zGl-dv)9UJb+}Hak237z2wxUt0{e%&c#wW5aGBDjM4KPJD#)iWQRuEx=-HX0}Eez11 zfY}VZrXtWr1Hv&E=j>k{xE_@naEp)Wmd2>i&JFBC#4RQLLQfc;OTgAr6icx(dAE66 zMiFvO%0>89`6Y=PjRH|5=jU4SAi)zve=h+z4Xgp0;2u~kf%xGF-=;YL;ru#jLgDC$ z4gY&Qhe*uPApv&29ezIWNqW)kMc-0L?Xk0bjl^##w)Z`zU~LsJ623 z@4T3I-vTlr1j8@b0y*kgR`VGnT%!|r9!Cf?SwT?5Sz_P-?oI(8LVzRm7Yrep+kc(P z$iSdLax|;JQ!qyf-GP;B)-3Nt`2`th7@BQi&~mP4W-bMmLP`~+AKiZHx}<0zF!7Y1 z9w4)5K%ICJ3ir2^kzazRv762nh8rIu4zEX(#sj+^CoOb}tgRW=I}Nr%&IrlaRZGim zlvm{!&EfckQ&1n4BBZVmYqxWSJQ1xcn*A`+BDFN|AIcmQz=27R`A*+M??4SYa~KY+ z&btzy{kuof7|#X_23~pIsFOPT`fNJz5TXH?1A>o6gs6Nf_F!>gDwh}_pjpa@z6KDX z$a2B~Cy@RgG^~g^cVc4&Rx#}&j*^I_A<)12LcAP803~Q0AE7Cgbgf$f()i<8 zw`d0w7hkkZ$=e2YHR3?(}b-G900Y^k^%P}SVj*>I>c`a3=$WVp7F_))ReE`o4hP~z& zksan3!Z>RS0=7|S-c6(=@bwzwpN))+G#vU^7S|?3N1ExVA4AOT5r{1gI_yWdx`ZDr z-gXl0**}e)(cg)iL`C+pDGQ{#0BgRY=>?fBQeBY>XGA_Dv;saiHJ!|`xU&sDa~1-j9MK{FipmTF!?G$7{Y{|P2Z75^=iZ8(kHl<+~!r}-GxYz#9{pg zZzTlZ(JlAx-P6afgR@U9mYmd9ZRBXu63dk3D&qhYp=qThq43-a zR<|G{BqSwqu(RL5elXWD+!jmzZYg6K7d+{1Yj-7vld5lz^1=->jm~aq(I8ZwvI#<>z#;)1m|&JhK)>3I~ctjC4;isP_5hGdsG{p}Hedv!k+I|V!vDki3Y z*=CSc7l!V6l!hN$L}ER640nJo$W9oeuUq%)g(@a|nC+E#Pe_VDL^iu1xK9kP|%IC8;`1KR*CZDQv!?qr6W@Q*;0 z;Lrq-tq%!G7f#74i%}ZVD@6~H!tCaANfXCj6Ph15YNGITHRIS&gW!cwUc#px#b!+b z3sUqAM+x>jE{g!#jn4DumX^9?W0ef6frD@~L($%gvI>?!R5wsd-y!HEI_3UY8^qcr z@F>_dkFYhmIy?6RG{cM+ZkWK^6#v3Cz^Q?(hHHZj0%(mFVtrDWC2ja&GI$OEK45b< zGg%74w4*l|x_rLX;+pluCz=Pv2!W!5gPXJ@6 z0wz-~d8GKT>;eZ5&x-#vt0a4{>`-I89yem`U}L;mgc8F>HhiK>IKc+TKOnmPWw>qt z@W=l?0cbjZ12l&SXo5yJs%lg|*i<(o{sAYV)M2F+Gi!YY5Xb-iHV)NiKStUlTS!Nk zU!K}SY6Idq;T54R@|yfYk!Fk8U zw?E}>vkpv*~RYG3z8<<3Vg)`3>&>`cNlCr}^?jBFV z(7wHM(1!!|rjr$Fs%D)%J#vAOs#Hl)^riFR z!t&f__q^|H+M8EgTzk0ik-mP{KjF%e3>&Q6g7#)7>4ZL{APV*` zK$s!TIu)7e+c1AHnFahv#tk5J{LE`Xvq)N0R22NRpEpacKaSPS-Xtk0i7w_{5Iu+s zx{B0Tp>$&tdR6!Z+tEnQzS4w!@dW1>CN_b5(yML)pdbQ3fl??7+&{2^%g5*3NsF48 zxIAgOe`mYIm5isvI3Y{MQQ@NC^@kio|q13>(GGSQVI=8{KEn>MZi2`UmU-07Qgg&4O@?NK3R%gy5l0}hV1m^TXP z%eg3cF&ALq5Aw)ccUGyxJ5c~hU!i%fXslp_sgWa+*;j_D)wqmY&X+J|sZPytk;0n-^|{f0;liS;l%dWqo< z#-ZJEcc;N$^b$1EVl(VTdk|8F+A;&Mk?UY4hH9t~4LzQdFP6bo0w&91WK;zX+B*PP z449V_1`ufo!&!thEDfK)^z1TbCd@lh7%#E3R42T6f7^ zZ%{mqE`%5E-8kI@!BGJaw=iq&;=*h(0xptYFTBZcB_EDrBnRY=SZOS{=-qS$Lf5B8 zOdXL5yPan)9_ubi-qKQBT$~20$Mei?yTM&BDD+^!-zjKlJn;eGw7U;gi?D@RQxZr~ z1?UQi++z|nYt6E+`~3EjFR>^$@@j!MkO3-Fg@Xrg5t1kpk7E2|WZw^W+m5tmrbs)_ z*%`nbuo!enZv@c=gAvJo`~C?ACMILl7)B_nNZr*t5wfN0Qwo|dTk8yHw6_N5jWga&Mx}P`p2M%0jJc&%yHn^knNXVJ-sWo5w zM@G!RRLR4SUj!akyd_B$iF7y8jB=aw9x{^vrP)HMjlE;m`7II`m=|a3*Z;*`s!pz% z5i%%tpkT7h-P1Atux%2D_ei?+PTue^S65D?0wQKZrmtQuAqxq1_6HBXKU+aqcqnHT zU@L-ztXcN{Y2emSqEKPxz&f&#Q5ql{2Q$)2eGv~?-_-P&l2Yl}3gS}*@5&XcSHlZ3 z6euWVU}`#{qRUMLUX)mGdnm9+l2T6}Jq5=&+%;BqR=@ZLoUp_g6Ui%^{|x^N^{*g&32f!rukrx zljaDyOq5fWZ$t4@=nEV7J1h>ly1IfgR5|`A`A=2pj`AFOfu}J$&kTP~?9Q?1Cxf0~ zkQfEN8LTh9u=UgSq;-VgM9%{%h5UNl)g3g=0}lHm9+s9lMBZ6tjQ59$ocWcZ*~~~9 z;ZT174+~^l@v*UM0Ho0n_}+u!cc?u(Waj5)%%&-#DYqG9Y|UD^_sXqzM`rlz0iMB) z2vpH>(!l_A24w1OFp|eNk>xg_bAeNo8@_4?FcV}Z0QLoO!VV4z;nmIBhr+2^WCRQg zAv#x*5E5VmFu_{zFtA>T)gV~w!~qtjYKf?JK~7qkhvm_Pij|z%_|W3~d@3auSDfco zASsYjn)vazw}+DVv~vB9?-*Z#KRsbT~ZQ3k?ZhRSvc6(&&iK(g4XfBZs>ZdoFzF)sy z1o8SNPIaX9IPZRwevsc9HwoemVz3T&$yfL^0-->Ic85VW`a8szEYz-RB_UaYVpxGw zf;9g-I@kbQ^PO=_=->nzXoX66Ix&G%!kwRY^Jp^;4Ug)EfTZH3TbM=KNIzeu-YtWZ-H3z()5kxWFo;I9hu9sYe~X5 z_`R7MbTXKaI;um zJ{6z3Xv>aOZyR+TykW1pZqueCFu6_2VmW`{yl|jJz3#&eZeHLIf5B;W4u)}$c}~73 zT#|?zq+8pLDY!J}itZJm!g|TC!c&d(CEwt|fmf>2Ij;_Krm8z6-6r56jI0rP-QC?4 zi$k*1)YPUCgYeui5YZYrbIbd~qc;Ds>eiG{O+hd75CBL1t>}Q!@_;c)-9CIM;fVij z4tf5kMdh?e`>IyoV|-`A$oph`VlBT<>jzLrRZm=^_t-$|=CcrHXwz!}pcB~MhO&Oz zqT=PDb{zAWB%l7xQrSSaG&rPA_EiOVDjWZ9cevuhJe1jf7 z>r(IGzCJgI642mT_6%$LXo$pK^+72U{QNJZ=!6`J*Ymq};Shg@%Fw>FqGA=gb!ZKe z9wk;77at!wEoU?&v~C7qiUsztMXM|rCm_F(XrQH~C9?xPDW5D-SWZ{Ms0~0Sh3rPm z3EGcN3R=-P#FLPOE&Pmk83P!N0kMq4=nnR0WP>AN-6HE8jPe}>K8u=R6#bq3{lrBM ztPeUC;brvn4@_o9LD?gnP=XEPbVDZ;So0U)T_jt2ETHWV`N3KU6)+F00+}$GRkCvR zY8a>SqFqWnnh7rg57azsZ23mMQ|G|p12i_T=P<>}bUI}5+FX&4#|@7-9^;LVvk9TniK2zd- zwV!r{*ZUQf-)9Z{rw3H>4)<14M*F+JES;|uH)Y^?3@4yBU2NEV;cszQvj`(~7xi?A<#NQ@3OqqfA@;W;{wf(xMJL`21Agjdc zn+#vUairZlZrf(f1lkWlYT(mG2ur}b30IXzK!6Jf4Z0&9l32S|adjy8L2~HQ83AI!^=C2&O18M` zVTgn~5QyOViQjark8 zfM6Ts}7ne#VB<^ z_SE-&0JKQ16((?n>Wv@UFX*RG|U4skzw;>3*y4{EGctR1qUbRhoD@EZiF-E7{V(^IJQ+IIKk(m}pl$Fu$ zxEhD$J2bQxA|?1t-=)zFVJ8mCRoDWLz%B z&G9oR4)~rKsc+CZ2wt50`I8zFj@GjRB+^k4bSA9`e22q0;W4>TrgNX75hCx~4~mI+ zzSco-kV=!siwe=peH}|iJwddgH%!fjMcZRR40alMP&nY2z;7q&6?ms|Zr@(m28Uq} zI}uP8t;rF27p+Ngah9u<;~Q95?CZ63bb^!5JkQW7ddElEaXk2|YOKCCp7^f%Z*|N% z15>p@G4p3W=?tg7==)}%JGP!3p0?qWD-$T*`Z%^=jJWd@?K6kgo(wgzjj~`Y9 zlJ51_M$w4#0JD5g-ne`P{`r{Mv}B*HRZI-^^5qh_7MA!6e#VN^S2jwv{EEi2w%1-E5wFF-2egs*WAx_QYur_6`iCB&l9LLJ z`m#}FBMVCzTw(#{?2wQMLj8WMU?=M#Sh7g@5tJxhA;5Vx;oj+lL!(B%3Wa`q5+Ujn zS6lM6`|n8@%nGoGj=k3B)vZ!;e=YM0##IrK;%2MX*vwT{-hRVh(&6y)b%xCko?uye z?@b4aS*&o;jqMwRBjG*M)9RUTQ_E-eTF}M)aJW=e@4WMJ+@$tN%b&aBs|4?3Nfr!8J+I4 zv~)i;otsYG<^{-Vu{P5fw(So5 zQRrMAe1K|6qJd-vQTtJFa3x|Tv#hhDUrRd#J1&c}9hhaa7o7%9QPGrIEnQt!^X#9D zXp-;2-dBDQN*%rXi-=t{ZJ4wyGuZbp<=%jyJ z8v}bwhs+rrWM#iWz_|%%o$5M{$y107gp6bwb)J$WS_0ri0O@dN_t8&d%Kb%6I$cP@ zmcD%3H#%Cww(y;XpaK~8qX`HYl@2HF1W6OR$hQ%i5rqh08#(0voQw4*maxXy%psSt z?B&G?k#2-Dqbrd_D5TcBe0=)o&k_UZ+FDgnvsRC?3ojB99wJ-pA2&*7fwABNR_WJg z;|R1+eEHovCMKHwD3y73?OHf2O+!t64Iy#of^K~Zh%h!p+DvW-FN(q!yOEJG33-e2 zWOCRTKq1Hmm*s)zNzx_?=;F}#oIqZH4E0P*y}d{wNy60U{lkKTz3ML$gLc_VWCo%v z@uRkT116hZ;-NX@Exsr*!1stJr!tz%JI^-O_wK?B(&KmvftdffdZ5G4R1s}iG`kz( z&Q_r4Aw%LYpeFalBLuHdl^2C2URgk;vhgXlGyY%~PzQx<7D_a8#Mn>@P=~IV!?~Jrz0vjY5 zDx>p$6!zzs5dZS+nR+|Y1A|%|QwKYN))~P98r*pD?{FQ+>0YPABkG~43=;n%GUbx_ zpd#7qKnpA;hct=671ZB!P;5d{iwX;ctiPQi^Ki(3tOEzAh{+i@w;G~4N@EtGbNl@& zdV6}#rM8gaY_2r)Mi7U<+^zq5?p&`R>U=&TG{p|(4z;@lytQ8f2@Dk7jZMUQ9&<9# zsss{u6mxPxM}_I>cR=1mP)$^?SPy({lVp|zGDTz;fGNo%1+6viCq@`MWO@zqdCaJ-!~})XV`6PRL-VLU`mtD| zpjd{!wMBCgeOfd_;Y0|w_)KX`YyE@e@~wqNuJg0cOT-&$nh$;tQa51i)7Ja_1#2*{^8GN*czPPjXnY+wx2JR1g zx7*0Vkv!n$8OI*9eh0)~;tGl+ zt5;_dWAAx>I2(H=?0=5buZzJCF2DhI`6shk&&0FFoZSXW%F31vI9xrvy$!)Esvhjb z23v4-t279=q%D?2=ui|HTiK z1&7%9BYysjb5j!RwCr8F)6-|h$Ez7w<0u>>hRJ@uzP`uo?CNoagx+5dUFSp-WCG*&S`KPCi zFX9D%O{ZsihD9Z;9kQ{tJvlLCBUoPH`mO59M-w*%@7A_E9%=7mva)1`)_oGRk-TtW z-x7~_^ZCyMF)CSE&t9$w61nNI!q(Q(x~b`5K>z2%^;Z%{cm=4<%`dhv9%Xet+NOVV zJ@*zW-EX1e7A5XxTP5~6Pu=zCuVr{B!6R71a4<;B)|OjUZIhT=@RpL3)G7;wHJ9(q zIj(>eI=8AX?W!-8EGt%9+j7@S+Sh&zkEY>Dw^>-Y-=FT}K;CTq$Cj&Gt-jon`4U4v zH@`LP>vdtz$Vn$@Mdyqgl#-L;DrZjh*a`4CellIXX`i!h*4K6!xrpo6cgDFMQEqFy z$y{V)X-iWdL*J3iQ3OwQY{&cPA)JE?tTh?0*Jp=@{r!z$zMHnkC3{nDQ#^3VJzoBLjH4b^5_ zrsDXw7;^(*aT#Ns6qA*k#p1a3Ol;U=lvU<5C0+Vt_aS6)V&dY);*P(xXQmzymWb_y zl3aw$2Zlc<*)B6yU`21v&h8y-Fx|%0%Z_km(aySV9f+)VvleC?`)XX)Q<9qy+_^+; zcE_lj8#Z_1|u9b^m{d29om>ibhnSY21QbjrWwxUq!!__U2TrAl?*dS&(q7#?g zo@(wwhEJ@ZGdX%7UwmmMqt6TqDC}eZ((3B2Ir~)<(Wk4Eo1$xbfpnnET(V0WRdegK zt-1Nc#=*NDpG3&Xl9-r$slByuth?jv8TysG)y|wLet*Z(es)+k^OfW)6>1eD9LTiU+S-)!=^z6`tdi1a8~HX&Af{d=6K56T<+Yf(T*-Y+ z$meXytv5hO=r^p0jJVK|cU)fXbrdIi*GH_%_wg>$p*Z$^^YV%vrwtGKRp?@xxp62< ziQd9E%V48uJ^hAD6}MSq+^Ox0@XU#c zF!!!ewmj*nR{B%2>p$kZ&e}~jF#&B_Rp920p&ObbTM#8YT5zJ4lvh{lPxP&pn)&KW zLDN1I?VvO1bHI)+Ht;`5NLWDuC%26AfmC(eS#8V@aR8&Z@cWmKj+0Ha&T}Wjew4ja zKH93H-{o9eHvx2rem(cXx|hy7UZ6#6IZ-uCN$b9U6O7VQ=_+6gX@NP2u2+ig(O>$I z7of;`ZRmrazrV$torI=lbjY@Di{8(}lRIDQ>h2iHnbp-dU~0TtqS^sTJga@rwZ1Bc z*xDAskh`TVEiIZ;ySmzY>r?`OWfIoJ04@QoT2{2P+@_MO2A1GD-Uo}X z+7*-g{r!epw}OP6W-2Sbm6c`M4aTbfn(bILyzrDm)qOzhnca5ONF56)k1;gQeWI>! zxP^X?<1c2J=^jD9xVq*ewQI_wP2u)q{hZ1}+Q20j_X z9gD}GS@xUl|G9?&l-oxkA=LX-Yem7X8wqtQx{43}HK^AOcIm3kqC-7s+!Yxmk2M+Z zY;6lt=HQ&=b;LZ0NURAT{A!P|FtpKZ_0EI|ePJnn;F4CW84nhvMnY%&(I?+m0KW#+ zLtN!xn8+nsPQ^9F9kLY2z{oKd?#5w#;?!e3nkcA`UvTW0I0o zXC}S%KPNDlbS&&mZEyA!x76K%bBFOg>vJsjBa?xm&9s1?u;R9g&5d-kNvH(L1er|>PZ3tQ`=q~$d=S&E9}rKWo> zusZ+R-R?BC`aYXV$%XM9lCvUE#W{|b$&vv^4_qAYEv1>PeSP}MroFUD&2eDw9*)~(<3(ri}`3_ zi0ztU6H(ts77y_|;JRhkdGjWE%mnmK?HKvev1k+g;KzqUQy+5X1sX*d{}Cr}%T{o- zdZnhPKTta@V$S+ra@3KMmv${&Gg~6`WH@W~`3K=1pSJ!6!uFP45QYJUDu!>>m~@1e z`U^a@8-B-RKT$P>$;C^JtLI96RqosD(!+6&X0Xzc=IZbV_m{Hs^WPH8`AnAw%H3Vh z*=1L6cO4JOu;|Q_pPYXoi%J6jW3c0ti?FHD;-` zskYoV8YgigMO$7KBIyZQLok?=*!Gi$+$W*=rjfAvD(CFXN<%+F(^=|MkTvGkEg_%n z(2?)5(7kUu6R#!Tm6LbZE}P?TsIHFauwJ^v+j{*<4c}<4T67#}PHPauM4wirS8aw2 zj;A4Ro~F0=emqakSaHP`=^%@OQAN3L%eNAZ&8q`-(KQz)hx%DWUUFk%Fxn{}vmLf4 z8|S*BAFk~G20GGc;CLmM1&}thQ_gi2E@J)92^?~3J$~uZO4Rd3Xc&oGG74i)0jamx zrL&LlPZX7uF8WQet>5$b-Ic`yM~`lQ{+t0}Hnu#R9VC>_iJI<^#ZW1GK7i&q->Uq6+#g`66mvoEc7i#i59{-?LWTQ1fucXT4!{8RFJf03~N dZy|+qf?qBze!x-QAh`smwyw9`NTyxH~Uj5}{#IE3w;-FBdD-ziwKJZ-W1W~ zko{m18yXkaZ2Cn#HqGGAdOo>bd;8Td7MTVsrpwIrl2VF_o8O~mSs2+AGo;Vp>8P37 zP{`C?ZhKfIw1>{RNR?!GEqQk+Xoz#QBxmus^t?lP(q`r8>iYMgWe4HEUmDdtBiMe( zS5v`Ltbcze`oH*1!_WwJQ>3E884(ekqO!8u4)$Vo^H%Khy1NK0GE`DmJ!cA#EP=;RVr zvD*8RQ@#E4G(dx*v_d9zRuP5&_bXcdf9abN9D|ps`L4U@`$c(b*>2l?wC0@g0pG6U z^9W&I!^aQJ>sXn@Y4L=FZI*e) zvW%3UJF3!Mzxd?fky6glIj`bkt;@H5hcIcz^?Z7&nB=}A?-BJCWGjXP>vc;Vc+S9`B$`5cyv)+g~ElG+Z- zSNdt_-+TlKkz+&Yu}AstY6a!nnnx+3LH+@^8W#GJd6QTBSD8?y_GLa}ooS53>9AZ`2BlzflojaM>E8>UqVN2)fbzMX{)Uz=d%3l)Ku?8zN*RJ>aMm+D)$}A z62E>ew9Hb-!7eEg_1M!5*|dJ-_4+C~?+s#Nl^G8blKGWCYq&nMflk<9nb+gs@m6O|3kJh_-@ zdDZdqrFWO-+dn;(Ko`Dw?B~yuUrbkxDLEpzFdvCk{Cj7diEmkp>W$Fcm z#~y`cc^=KZd%oX>txiwQot*5R+R8^N#2>?oY-ihU3kii-RSt?S{`NdGzEZZTzrP^@ z=X-Q=Xnk@x7HPNa5+0vPfS-|Y#;@17>ewN0d5CMX`fSK|r}e`~%gv>H=8dANiUl|G z0yQ4zja{4}IPV1R^;-^Q$M5?d^uJ@S9B7W#_Go0TI(jTEjVE}*T{*moQS-kzKHWUl z>aM_Ob7yk$U1+pXsz`uKmS)-T{;1>b$Zl8ZcJf?T3ZrHzyU}>{ong<@Ih;dRC#UDm zN1Fo7R5m>HUgAN8di8oMrHhuLfll5c0i(=C-l?_fRuv6Gr~9lZ*pw8B8Mn}(L9 z8CNng#85Hp^QXpr->?K+9d2_LvYD8qYr0S<@Tq1iF%Ys{A!R@JP0N3-H{-^zy|S!j zNt(b&sfhKK@q0e0=*-^j{vw@`(p(9NW+Vp5`5drra~ES-m9xZqdu#JJceicLua3{m zh{(xlva&7rW-3#9&CSK{?PGr68FN~VP9@x$oS1lQ_$Benv-lEBo$z$rXA~7jRJ-9+ zO31AB>2b>Z?`1<$&dW1Zr<&I2Wi~c8Vy+dBC`R>;4xv-Dz;2+<#IIfPX9B-|7*K{r z*u_2dWt|(ydywp2Sm$FzRq#w&T1rn(t@~#N<%O$9O(`LQSDsf~mlqY~Wv; zY}RinoqY0xPxf(+&GzC2WnMMihs0}}o3>9ysHplNvpIejjag#g_V3b=kDnf%j?!{- zd+&~UViJbv=qPVLeCRh?ad`Hj^<<`WJZHf6qVkPv*Q$Fnm>+r^>5~b#c=u&Smn^WS z61too&y=5@q%)`&CjHJHTJKd%@%pArWje|qMj>EX-`MCYbn47K=9b@{n0}i{>G|_I zbfR{i-Tafv!@Tz`o%I38RYAkw2 z#`^yLetSBq0vQat3w@fSNcRD-M};BkzB1Lu#=+Q-1>{qdYyte)w9}VohkO$g{rDs#^>zNTp~=aOj74>&8xg65&24SfmPLvx zD%D{$l-)lJ%#MzZ5+2}hFLL=E9q}W%E1kfN?bX{`Yd&&7!!^_+Ap9CTEm|X4yOhNvd3`*&=-|k%E)kPX=xE@oLUrZ&wPn@IitfF zzrMbHhnblup#DiXtuBG-#?H_6YO++<+hWjGrCq`7W3)fN$mHZd-Wr=5tzZld-R7~I zBhqqC)APd5$SJhAwVp1-K?~X47@W3IbD{P1zoD0&Od+y4`*?bml!SF!%Q5LqvD`@M zHn+nPJ)eVljb7gP;$mw)~*#)o22SO92i>8lO% z*9Y|Rt`QJCdHK>kin;2$L964^z^_Ed9n@{69HQEH+bL4fvvzZx5k|@GH}}TqWp`IB zOoj^ary53b2`-3CC$OKP;^_V=Kb4StIq4qL3I!`$>xsPW(dyW#VEew?Sfyik(Q4u} z2E$|3d?to<<{6;8i3)?^!tZQHpUmh#-)u3&m@!QQvIqDTTirtI8yhw<=U0YyWpJ9Tl3PO+ zxGU%arQ6N25%lY`LZM+{LAkk3*v#1!fD{CsnrzoOG@Y!wh6F7uJn*Ig;A6YX55PaA_Zo14Uq zpz1MbSNeUXx)IOm{<{9wzJUU0uC-NvZ}3RzRvw3E}iOR=6N@$Zxf4)QbUEySo91GI_+_? z&CShvzq}ikugmw+7dm~vQlCsT%sl{j85gb4ZKdd)4pG`j17F3P=o-7F0iSqF(`RFqEJst6 zr(Z+@q5>&TS*uRso;-hkky`BPY@#FKHG;mvCso1t@A+2A+UB}KdeWq9{}ka-v;XYk zF>~K+?>8PQ4Ba#uE%!{`J>uu*M@}AaJH>wS9RdqG%X}<)b+tsNpZ&$NXLb8o2?}H+ zan7CprTTzJl2M=aweJOXv)L6%G$Z4cw%H$5Vi^_YoK5I=g#@{;%>v(?;dUo|^L9k} z?T95E<1+i5J69es6sW7Iz3+-qoF}^z-s}z3baZrPH4fd{O7rmH*Wqlr7c8;TfRop* zU3;}oXH9{Pz3=3DIKH~-S%1Kt+$L>2O2$4Tn>yP~2FxCxXl-rn>skfLRR~~=#>a7u z08)*)_Z}Et^vq3SV!QgoYoVFRmNnP^*YwD`gCmyBzO(adU*EraswaObopy8W>pn+I z+U6Q+mGmUne;Zo0CIW2}d+Srgm(M?W3cB^Z##Epv_2A&3u&8Kh+0BxML37TlWZaK1=tTIVpEwVx zH{t)nA(lu>N=fn9FGOtS4Vu%kvGo`n6A=-GCnb5*942yGPvShMM)V?&l_Sw@1x540 zA3lAV%KDt~C7WnI5>9jC3s=c>=DX7pAct2*%GmVkE<(Xl*B$HaeXixY%(2j)+mXOy zJ5XXv$6UEb6(V>*k0-DtS8y;^u^A$7(+C@aXt> zL^I0IPdqyf|61s2y46^v_q%s``Gdr;P!!kjtFrv?vUmUg3CiWx3xwKo11k5%{Axlzy4WK zBRh_aiVBO5cSQ@LU!-&yr^44SP7)H50rNsr^4$BJ@j*X-{$hm}ST<7OPQy3g>D3^H<5lAwy6S5)#re4_`wW zW7VlfIjjszC@B$Aiv_1D=V~QzTfb2S>U!fwE#GSS+3MjETM~Y!hu~4n9H$9<(7JqoO)qS(F7${uk?&#_14HQ{XqFSSw zF(6K;si{-C>^g1X>ka#XPHXb_eV~)`?cv{!J1_b_+&_NO2HDBk)ah7Oo9Rg;8PFq5XSC~Y{jm-|B8?ZxDAwp=nWVc^X z_{EHk>5(iODzwn=PL&9x5Qr!l4m}h6)~UDJD73l6+1{ zQLS*{xPV8I3hBb2S$Y$$jY;;Dfp`fZV$RtpxN_;z1T5TWuJaQ}Vm$g=EY1h>>6dVD zCX-xOGJeh$7js{~aRX~^tV(Eewmox=G)pD#O>;P%?TCGU;_fz7qR@bJ$jAJjmLqWz z;j}!S=ma|5{6XX-0shDY-C_m?1~$qQ~p0(6`Z2PFEFrfXeb`u9UdLsSo8J*R9tT#A1ow_^;l!~)*C73J3pOeRQsv3_&fWhk&&XD zTs81`M0bjXP^1~OMiCsSeAmH(5G>!HjgOJ0eIF2jwYI+g$#r+7H(NbgG>G)YVnL9f zpU!yoYY;$pagL zY>tQ^LMK=4f!patMO;9;(T%}f$+PY8XHU!8m*8}Cm;V%GsTI73WD1RlsGF=0nD0sv zOKVJI(Le9+?+=8li$~4IVT5SokKk74Q)GuC+LU8#x^e(jcLt0 zK>XM^-}CZIs4?f%&r@kB;Gs~@Rw}QkNGw`Ia5*C4CQ#f(x05#i4uGTXZUw;Oc|hSV?V`R{$uC~LN_*!HmRE{ch~7hDoG&H2e#l_Ry{ej}o%y1aAMBH0p zdNQprGdnvuHKnM#QsXmFY)#!7#W)2xc<#c5o=SIDDCpHk`bg2^WQ>5{6=IX5SKDZ>&Hq{|$ZACd+!sQvU?S~ACMltRt}yK#vh{d17F-NIZoKo;QwZ;HA6%kIP`yGY>v(Y-W}>fNJw!ng0?NHTKHOz9Xt@bz zz!Klipi%q*z+CWX?P)_Wd22h@7*Y>*M_rjA4AA}qa)gDm9myS`)MCcHU%{v#L89i@ zuO|?`GO*u!{Z%I-5W3oK>)5&F8#oga6R30G)NakmuT-6S#Ic*asnMy{dH9_4k(-;F zxP*l6&e9;7;LFa+h*UW3GZna7Kvbabq35rVUZbGUnkcYu+vZjm7r$tjKj!H>dI}o+D(~i( z-_|lJ^qogPe7FW{PFRMUMlNB}^F>omD0u3H0~TNfMuT&}FkhE7_96}rFD4HM2j}AD z%c;f1#Imv-ww34m+%1ThwZKZVXvw~&^rBrUGcq9o$yPWa`rRTu&UheI(KmI-{}0pC z+Q<`T@&U&XDwW;J@ZdC9;{!U2t*2VMJs&+nVPRoK{a%@0gF{0@B)sUW-wtMN0dD%CJCQL1H|sR%Pj}xqGQbrn zfLrGx=d~+l$RzfE-am*1M#g!FhwfZ$A+8s9VO5*=yu`D?6KH&kCph=Rz)1uJ(JK4= z`Aw+5Kp4A!nkZse%aQf-fDR80_-QpJ=ok%x*rspY&Jhd#0N*Ynt46;5N4qqkQozcj zJUlAPT3=q(oe&n&5#YMsNvRJ7ys_CEx_b0uV?X`;HS#67`71u z^vr~*DdlKLBn!GDRYc+;# zH~S+2*PZV#o5KQfn5n7H#DhyZb`t&{eWmPz0SA2Q$1-+v;}aTH5uWw_)r1%J%1U%zY`;{@G#Z87K>;5nFF&ttO^ zOrgb)XqCq?@k1Td1Ld4^AHg|;LrF$T`_Xo;r@_(Q`b|Q@ANGq%P;d4&TA3weWs$c& z03u8WvLy0>a#(nHE!b+BD}?EFb;97f)B|YqSWljVUK3yzi%IugbIx1;l?aQ9p1(mS z^Kxyx24y~692yft42x09?q`CJU7u>q*Q>{Qca>by&5a*LK|z5+G+Ca0<8{cv*Jm#P zp`5L`Ksh}Vt!)S#@G?1X#OYzx>DiAS#|K&3RY{;NK14-{>giEIfvD=#P6xI05n6&a z1Vg3v55OREJb~S7+}E(NVFki39mnnukO)~*11ub>vMzim93zOlR@)8%G4Ps!g`ui} zT>;6E2W5=OBb(3}F17~eJACO+L8itdli^|(kW4e5d@1w}w&r8n4WpQ~g8|YY;4#O$ zV@9i^6$te}7!a@m6e)*k-FVGgfKK3>A+DT5VofXZIE|^*lpd|6>*)cdsY;L^y;(KwMVVXk)tBZLQ`4 zlENunDl5egl(KZ-cN&f(_I)`}eZac}P<+2V-_yu*{UMw!Q14kp5>|qMJ_EiM%4KV= z2AVkTw1!V(joJ${Up?7l++1P*#I5%7|z#dNI-7xS^oL}(l(fM~wx zH94t=*<2nfY6KKTw#3W*a3|0G&;cV-2 zcK`^G?_~T=*TS2HRa8IboZ`h9Vd;k8I&cldX z0th9RBdoNswSE0Vef;z1&rk%Z`1#2`4&&%Tr8_!uTLDF7+INRa;TD2+y?U^pXy=Q; zaudZDt1wBfDrF9gAbj*daonY$$#YuQgDsGs;0A%p56sHj*B5$^9ZC5@jYl`cs<~~Z z{WeR!e*J3mx>{b@-r3c4vxz$78YN}NLSH5c>r3$xOb9vO`A5KSugn96Sqw z_-N4Es*&Dr>a!pZPb`EPSO@1pI5y^JmL-fuhXRu`H)oLJ{5%;m1=%}CMzglD@#`h4 zZk`GRQm$MhluBqR==6Mf1{8pV{+9oL<+HC}zXnr5AG8VRJ8>zg%X_?|5H+y5K3FW7@aqjWE@IYzFoWZ{0cj8Yg68yOj~2LsN#{qbqG21{{};tH zLS4FeaU9ev;vTS@bf0@$<5i>cmEDV*R^Ag*2GK_VHsMewq0BY4wCFX5(GUlTDrKqE zEaq0pI5}~*$8*uaUV;pU-3tVZRF;4J9Iy}-213J*q;_;7p9%2Ns-q2D2xQo_Sb*0J zV6mY4t8pHu2U(#CH8nNeW@8J7kG^s9 z=D7&$j7v9YKZJ$-(sUdV$tk=%qgd43>Gz4WL9l&3?oEbk9cS5(S zljT(?>D)iQAja{wUvWT}@m-*0O-}GdO zQP6{YK2Z4m`-i~nu zi?mcWjDJnFE6PV z)Cnj}o(Vk#VBQ30KzzwjaZJA zIa)4EtuzD@@APeOjHWt z#smx*1V3@2dT(-A!?(xaax~%z9ibxJC-gNm$cjc?9;m9Sl48MWi52O9eASpyE3$kB z5Ct|Bdgupm5cs=gj11dlO7%wHM9~3kb zZ&jILQwB~-G}hVkYY54*Nd~rZnfRfXeq-@Y4y=`AeL_i=fCnsmA4hDys8Y#rXpkdKaGa7xq z#j?bPAA`X-<|v+PvAopU+G@KaUu3C?0z#iTEQ>hIR}pjGCY#4;?e=Q<=2aFJ76#QH z-Xv^>2%Unlif5Ha8&VXWN7mrXH-a-43w|w7|8aozN!SNNpfLo&MZledDFog}M-zcT zMgA;~UAHZU1wQ_v{lfDaU83!t$n+;_UfNl_7i<1tYHqE!ET|~AAJ9qxjAEpiKo$RtWa62YqRnJpC=JK^OP{Rloton1vD_pi=rY9$mQiy_*k`e_z z$}jNfNI-LFyKfVql06RYL5y>C@NZrQ&IAPRgV6E3EQrasTU&OtvPo^wjjslQ*BUeq zEchW<>>yE2*ML-YXQ{FY9?Vf&R_+_Z3lWPVVd$NY55m*@G(|~b;sF$t`o}(v18-oajPK+fD=zc zIj?)k%Coo)Iui2qDE&XNM{CJm?YrJ>at~Qh)!ts!>3MI z1~)45JPlknBi0T#$}hkIMAP58#&Q%{cH);ggLf>-<3^ zrFSn22nak#m;$k)3g&Rph(kQv089@lg8z^Npp|cnkpXe<9}q&ePM=I;^p%gzf04Ca|Q;9 zfYy}seTVske4`HFcLMC@10SG^(+QJAzjL)aK0WpQs$C^$m>(+=Ko|-F35nkDhO=kS zf)|*-sZw8G-lqWW-m z)dN7bKQy?@_$A_Qe*X^EKCk0S+h>sg@n_G{00$7Y4tO##KQCcwdf##fyCWhX()l2u-?E z{mZ2A@$WU(Y7I8#P$|bwHHPRvB+iLzZURg|e}9>$lF+)N_4Ob7y;V_GKm_z84-XHr zWKfFHki>kCKYWtv?%h-kSFqFp;*bU@JE_UQcil91@Wf5~H09(Tf&UGA z?BwF2wY9837=R5FaKsYX2J{X%({J9s?Qo8d%OnXB{gI#V9~fxoc+VyX_$V3otB=FJ zgj7@9aX93v0yrg|81%-nK)LJ9-k5{(4#_I_Z7C5F&!YuO*$ z-`@v+GS70P6ldsJEbCu~@yE}Aow<|{XyJK6SE3b+ADF7uj^(!gT-J&VNAS=Efu~pq z^zHif>jUM^Y_YMiOG8C?UVuAD&(kco;`}3^PjZBUg;rzea_7xqrA;3sEP*E)?X689 zmb0*Msu~OiDnbAJCX6hPAFfszLI2(f{l{^csMw}Iy&&Q zwY8;bZ}{R-((>|_{&LXO)kSmqe)~fzZWtxXQc!v9U4d2Yn!#o6u;7U_WR%b7Q=? z6L>IFYZJBQJAcf|4;C`fvXvrC5m6J7aZg&;-itqj&VI%VxT0TB5HNj0FK|*qKYXZ$ zw!65rG(*vH>_iH{1=^X?NLHE%&N;MI3=4YjV&92b^v*$`pm)HxfJ}d(`>TZ74h{y$ zCQ=fykWogT%;osbw4H876$QmPLI$v>w?w>=BcqyRg;w4F-)|JAU`!dtGTld)VLwGv z*1;oXjcsafE@5cAjvso8I7k_3Ha0dfe2z@e+cHGz%vjaf2#sb044wKwcqJo}p=1Pd z8es|XTvnCSf<+LYU|tP?3tq76yk1WfE97}Xv&%@OF!a}!Q2@Syls;g+2ps?ia2jE~ zFppa@6Qz#cKY{{`Li+Wgp`p=f9RmX@P#u|!lVJs6ad9rH2SoT8?TFWF$^wyqI&=1H zM@bNjAb?e)p$=F>7~u2yGfduYBrHP`sbv4Yf7sU6mi2SwC2J(#??H~3_F0@|KoJ;n zsH*ZzJ6s;j_ob1F;-=&){HHskJRk^d`6tI9Lr~MRvp|X`&G9Z?{Q6V2aUGPwJ$m|A zh2Z&iL0`mn1>7`)@)1oqwPG>2_zha=kI;jK5j>*Hr0jn3DWdq4l(OKBBKrrW1-y}U z800`=1SFX;SdjsQjNh)|?5vIju6l8p{YKaZU-jwL5xm#LQ6&;S6JAMXrZ zrW7Ot?++OqK#=*#lQS^S!hqQGKpJ4QjSrbUc-ed%TNBiEG6JVPv2eEg$WVx91tY|!!Yj9-D?F(f{OWP;vtZnFA6>t*?uVYB_$>0CkKnj z&<^~e@W~$Pt8y*{(s2Z)2rf2QOIQ&>apmwE=_LMG80om~1u_DrsOjK&2VEFT7%VU& zg2)9OaW1^M4%FP>cipoPYru*#G=!4fHZFnnO2lS_PK7;iJK4t|ej-3V(#Zg#iGogM zD3E{QZ;uhLp#Lk-#_J>`&4A>4&~HsB(gifYf_YDM6y)_qTwL2=9O&ADGoUiz1gD3N z{06Ooga_glV8g;7I6ewC9myYLp8#q>p!HNC9>PHdDWIxzNd8 ziW_=KGtCSq%u{5m zp_AMJ0)7v));??pn1}kH7-kM^z}UU-DBW0R0Rai4D!yR0R2}c!LjHp%J)X$6HiNk2 zNrwscAmmv1cLtC*P9+>da7AS<2lK6r!%f48NblfppqGMs<7WZP+7S-ET?G0GFj&j3 z0=60l=|ictSz~Dp)~y2?cYT$o1}@LzutW^B0(?zA<^v1PTPTOJiYM1z@jHI;_C5#G z3Or!fJHbQ-B0!LSzJ7m>CWIRb`Y53J{}bg!fxrfy{uxFyp!SBFe(Y03K2zBJ zPgW~vQYBI~@Y6-@?AT$h9bpU3Igu4iMoEs~bR*Ytg870$m=BV3$W(>=Qz>_1$yO_% z;^7%oZH)~d0AJrmOYw_z?BoiSFw+Z5OC~`&irk+dcbv^l3D^r&9F`d%hgW6aJ9 z+7UWv&F$@JKwD>MB@XxZ^MIcs?LD{}3`tud=L)qA8uvHo%d+R7rF#clPsrp=80Oi8 zmJLAPliih(#7y(YgVW29nBR@NsDR)Of+dTX_VCQg-T%%fMMi7>3-bkPw*mg@21xuL zFy4gpzo2&l56=()wAk*OJHY$$%1fiFeG3a@uPXLUv93I z4;~H~Q40XNlWTNxTuf-_W8k;|Ce_u|I2}(1=|jM?g$Q}^TSZQ8d}&B8FTvJiY%@=V z0hR`ptp&RjJS${Qz}9#e+;wCS1GxXvih{6kOBW;9R{ambpTvk9*T2K_vZ^|cg5F9f zuqa)2Qp7z1^x9hN?eZ{Xln7|sv0DxocfSJ1RucOBpeb{=oKcjN$(!%+=nt80 z;^E-|gfa1gtJ)L_Mbn4I5!4T})ZPG0M)C}GB;1DQrwS0B@&I^B#ywN`Hm4UfKS0(1 zR4!l(G)R|aqlsEAYKIE3Nq|y=oi=3-ojCGvI@#HGw=7?wvtzleC=mJc@ZpD#A3x$W zBKM-8_}BI;c?r}Man#^Ei_0Q1M>BIPTmFLqS$?01PKR5qZg7skOX z!9YaOf(r{yOHnVd5Y4~Ti9;ONG%B}ZhZMSq2weYVcROr6U#uzk90H;9m~S_aj10j< z$^=XtIhc&VGfim{a|#cPub1}T6io?5Cf|=Lj+$gUK!DAtNp)_km4E zSWN83ty@xH2LasKs{;rUNg|K#rk;=Gu{A8|%lXLQeGVHtQhj0}uaUym-UL*D&%f7n z*yGkN^K0r89rI@TOEH;JkctFfOeyN$|7r{c#c12f-770hPc=S17KhRL3024FI|YBA zH}HEd<#Cex^S$3^-M1HEYm`3>YE*aldfGXXCgTFgMR)vm!?+#w1q*Xp?q_scB**UEX;oe>WjNLfT-~M6?elzqCq~tO z{jXzf?LQOHu-RJad83atu)ej@p)kI^9zN=^R#L|Bj#6gOQ(xJza7DTK_4n@?+}64{ zuY2%Is>R`#jjXt#jTxqUDF@Mw&d#)i6{nX&_jnCgZ+eW=_2E#{6_eY`N5wz<;aYDbI<%NGG+PRHOXklx4I-X)%oY#-b zZp`_fBwtCHd$f?;KkL{HZxucCDEEZfcH_C~xXSj}s=x6e@kDmR#=vPi_IOZ{lC|cd zb(UIL{LvBBlbl=6ay^)BrN){y`e#`x_c=3$^YVXe%scgLwrLl~3dvwP@7i20+DZ)c ze0zAG{EqWN$v%4ksn`&cXPSFkK8Ab(%L!Alea=@%xM+yB>*1vCbr0$6ABFW&j@Mj{ zYwap#tdRA|3Lbxn%Pkjgho>VqPV*fxy7EfLl#OGx-!ESD!?FD8|N6_Yu4^D_ONg?_R#q?zr+-6fnsb{I(q)oxBpq9(?zk3Yw4+vYj9>>ckanf%+m5;&v+P(V3#&xhpn5aN8#49= zmp&YQ#rls~fH9s}lH}t@zt-;xI;~!c8>WcOJ?Xqd&V$btu!A?;FllfraYl8J$Iiuu zfibRcB1oCSVB|paF720%-QOXDMf%r6@gs2pvpvTy_#H0ZXiF!$PCVY~*?;6b+W$+h z`DL|PzDmWUMOZL8&1g4DI;pU|6|WCAwgStYR#v~$Jq!LxbGiMS{9bbWxi9a+YhUWQo6*8(2n>@ zX=GzrqiR_mreaDpjg0~EW=d39k~|K_?!}#(3%xn-YjnoZv;}*%ho@iIDo%c5j(##l zVO)wDbRKptB*9qL^Vy^ezSet9CV`^*uM43q8Ov_LAs?h|*c0V$e&pWatba5gt$FU; zp3SLymy-*r^Uq^)2JI661Tytcpkf@Z-%z}#%!!hfr8amg75*Zy{)mbu^g7aAvW~Tx zIpg%zLf>PgcxWH%k754V60^ssBR6-P-qsfMom4lSPZqO%%+boXSN58*d% zshSmM4l+K!$oO=KGic9kg15VeQ98chU6Wr+@B6GXkB&kWW7=cew0|bm)jdDS6?y)e zGxIr9>uUUNXk=tieVDVzq}xO+XP{FVTZW0@7x&V4sdsM(<&M?cR;YJ9{zB9u& zW{#frO?K$aRnEgl^+Q5}Ou%drYHg;a{VrWPo7sw5DSwhH z%~$$Z)xqIi&+U@q!iyfKCO5fW;8jpf5mAokFZZaSZ=u*&?a|~J<3oR#s1?~+9UuMIoJl%n z!{YVS=x7o;6Gt@V!uhwKs(CP4_9z&H)|;Ki%%3i#XB}=cC(Uyaz^jRaD7F@?Wh-ru zkKCL*ow(wDl0Df?r|T>?v8X&|`cfSi2_gE$rQlkUv-SPaQ7!4CuUzEGdwxH31$c-Z z-<-Hpa$A|tv|_LI^~bAze<^?j*+5f0Hkzn}keH09RFvN4ieE@bV@F2_3~@U8QgIc7 z2@3A-MLax5M|zvLU`c{LxK2*)UjJvf(w#lB)#bWcWdng3o2-ouuR+Tm-wp5SX}dQN zhhbrl5$chtYWvc zWAm&d)0q^j2zViznkxS{`E9Q3ZTp5U4HL+!#ly%y!ccDkjA}-6@~amP@$PizA_1$_3>0$K|S5{cN`o(@aA!g_l5ZwM_sJH=4G917+x-6E5fG=<6d3}nl1 zd64<IfPt6B7L}%Xt9dl>6{G>-8*oZTAqgAP~)dbg-oW^EP!Kpqhy!Dy>c%C1QyuJ>y`ZM1cmxMl4|H$<)YV(dfDzUz76x{a7 z&8 zIjuD27YO42b8LiN$A2)Pd7h27<)n;Re1GHh%OnnqMLj6- z=O49`5_~0Ad-w6S=Qm~CJM8R!d$sBN^U*4(QbCR+*P*MJbZv*c$#_O0^CDLa;Ss*A z*VPfhU&dRv?={!$3R$L`HO_)*y(Tx*0CoO{J4Q&P(E1ZE-0b+&l!#Lhj`zFs>$@u{ z2@7lT@SnSwRIhW$z&_H}LO>M45;`-LUhT(a=_Fw(|x9~!a_!2P|zcH`4 ziT9qUQ><)ZsTZyojpTZ=toC4u6k6pEu5Ynx*|=?|e9L!Qd4R@f)f;CvFNY@h#n*R+ z2KawHrMjS>&aMA?*q$8aQ7I@=7)oSoz2M~Ptmil|Km3X0M*2zg@8vOr#+;{@otIgb zuTb@$(?mccH1q!I(7pxVq;b~~A*xcNBo?3%a$hRC(Y9)v`TbymMEDT3e~$KB5nHWU z2yr5AI`+F4z1lsO8qLw=sobj;s>wlBtGZ(+=UUF~=UX%iojZSkwIMoZCl9Z`o$yqC))I~Pva>a$^Qf{2)g-MISo7%hg9jq( zYY*4QHyn_4=^Z9y(nk zo)ZJ?4iVaq`uIo)DT1y=vY!>|$Mu3#>ohM1<7WF^FF6l`1ydLdJp1ie_B8Ysz%35+ z550ZOiuA0Rp;m$9gs~#!toG$0F~yQBx=%A^8Vc^29IZSBEtW<4tg07rHmY%;Q3GC8ZXD z(L~;1iT1VkK1r?)-LEpB4C4G`+o+w%QsYc*;!R3wcoLp8?nwlXs+34bSudcnG>KZ@ zhE&QzvZ1HbkIxnnWajws{Vjr_*Ox0kX*&NH8acX=EN)jp3fWk~|IV6{e`Z6FdHVJ5 zD?Ajt_sULqpKP1X;8sxGRk;4|`<=6Twx!@gn zo^OuYp{nZOWp^uG4seL%lZ+-``eu9@;#x#lrFH&5kwRY<$dsNa^GEP+4v$?vMNeE0{*WRj%su(8FT z=In=CRRvfJGE2(@2UQ#f18G$pR{q-@u3s! z>hVvTSjK~f^r!oCt!LbC+8^zdjeXS3@6V9OIG_0Opr$R!21<|1dMlP`z6tZ!UeL!a zR90yd>09h`#Oc6Gz^e9c&NQ|@<_}vI^<*@vd>cNx-1SU5ZC%p}xO8ys#CQc><;Md?_Y8uOWCR#jEA`2QLZ$21 zM%l|&86_i^ZRC}sgohvhdkD2-3(}9gm;nyzIx@%Xqju+=DUsq?!gk2!GK_;#8yoUs zToelrFN~njTs8bXJY4tkPh$txccUR;(V#i4k0GCfI}Yto8I72(gVFPDm9NOJ`o0Yo zXz0!|u?P!kH#pv1WqCPw2IyKM*X-v7a-q<+wtMdTlbK^AkS4iTV_Sdh=i+OnP*Dag zNMyQ_es?@fed1{4Ia{B>{?+jY6#E~}BNxycjOuu6BX~pHKdjD+?Y37#ZH@0!SKaAb z4UGLBCd3sy(H6?ndpWln=!t5P2N95-ql#_)o#hzem%?dM$1nVgy;uHLDNA{zn5wa7 zKJ7RT7ndy>pEvodPaLc5PKGJOKrl!5i6#Dd0Z#3ab^txC%rUcANFq`OposVvEIROZ z9GYk{$l6tuH90UnUkzXH=uGJl{_@N%*hRjNnOGSx(0=iBGW|3d{y8T0latdS-093* zuAahY)R=)Gs1fh23gsrohVUHSP5DuDHxyao*+@83Z-AmM!PMvm9**A|VU(8S|5xd7 z##eOO;Drp6SCLS;Y*NB}Lz#iL@H=9ZZ;)mRk^eVYEK1oX}X# z9~8k%*@SMNidi4T8}7F}H|BYKHG4IP>8EyR*dxXNi?uHSr?Oq!UKEu|DN{vCN#$FV!! zUCUa}dY=2f?&~_Q^E@wt-1WSQKQ0sK8#Z}ABH~2PJ4+7)568@*A+1;J)edszWkwa; z*moc9!_`ZCA(<;xGF3irC1>4w6zTYK-()o_}tccC!8ynwVx+>r=*Bp5GJoN+hmip+L zAMZUHjguWZMCY4bZ<@>=E#=KziF!8gTB~h90Vh+Vn8e-e==Acv+ht`p%gM=sJJZT} zxAhykGf-ne0@2zQUB0^3I2F1#HM?IyVRutqsiyoPzqh}2@l|_encSmK2a=ZLh!c(p zRKei7qf)fbDVBU)c_9TZMS4AZ5>|4`oxOH#IP1{)`hHecl9CZ(7ynEgP2Df< z*AVNvGSI}>7*gl4iK>NbU;}|@x?*{`!Hbvn!oj6xMn4lfGUH2sRavM#+x2(3V;xu1O%!%j0 z8Yb-z%%Dr-$9lu!HX@9NMew8NF|+$LGuP466-c6Xh3#&drfzod+Rk12WN|U5hFi{4 zmsM&1(eD{^XN>51esn&eZR#(5j zkOJ0b4OZex4)wzohIQ>vYtQzd5e%(2z zufEchN?~wLKU(tfWBET-l*}6+5>;hUceq68pkS4c=-$0Io|e^yqv5%(_6@pG-2Nse z{r4X|y4z-9f*23*WC^O!Waql$4Gq<`$>IBh1`Nm^DYYD$YoD1hDHDBe=4%F@YHRSYgx>s zkES|z#8~@?dpEI`C2d;R@$31Etf#$(*ZF@NPUc3PE*P^k`|?xS*w|wHb8Nrke0xMr z{Oom}0@iGI7>*wM>vX${vU}p^nr)ISa+~7!`b0I3{9A1D@xNlGGtC2^yEp4|POqJd za=$-vDqkV?Zjnot)%}U-xBgK}4C~VG+}l{6Coed`mh?h3HibiOns1qd>$`-k%fNbQ zDNpNf6gxk+wQA%Q)SEvWt-WP-%GD#YK(@%`+E!1R{67vgQA&Q)toGN3Wn}%S!*O*~ zF5&)Iw;`3o)8VK`j7LArwAwl_QwW$Q=XGp+$U*eT!r(GWpU~{B$hNckJpw|S_s*jn*3IGgFTUvhe%kg(zf8{Ewev)UMIzT8)65u z`-0}p#+UM`&(m}eL@EDL z2ikg@%~~E2a1en9*EJ4kD^zC0WV318{iX>wqp8TJ1aDR5%ITN!@NSpR5`vGfrj8-jj8@S{CPQJ+oEiOil_x!_I!%day!FT71h%1I68m3)U4%SLC!mI zYzb^AiT)k5dhnwZ_t@{>&kuL2476$n0U9(!ei8Y-`JIk?^NWt%Ci8WrE_8~j`~J!S zH0f{9;3j2cun}~pj8`_s{Iojb`-mri-+{sXGoHCmdj87OUAM4grjBS8uN>bh|>68Lz{+Q9L^oJ%hdkDTku{ z!NLne*Im7JSFU1g+kQ522}rWgwlb|-*EOusLk}+NK~2qdU^ovmDp^>8m`d1LPoE~8 z4r|Hqe{Q3rez2-B)94B@lmR?);K2M$C72aIeteT7t z6fv=cX=(_+eH)7V%D}O@5P2QJP^fb73CB&tnwlipSKU^-``hTh;Fbff6~2crF9PAO zNkMj04B8DIUM{H9^FyxwaT$NG=3C5zH6Fk;=_*}ZUB_kQGLDLfxL$bp)9d+S-Gs_% z=OQjiwAYL96zOd)o*yU%4=u(XK#BJjy8!=m1ZBs)Mcu_5*7W$$nb}JYUR$+~8ynxw zQMmszeDTG6!QZ}RbEr>;t~Z&?mSWDTJSfoGIlQ)K|MSInzZ-k)x4l+Udu`h}@AAFJ z7QY0x)5X8gqyP8IT09&6;~UxB3av3lu8^oA1(Ud2o24N6-4`~LLd|4{Y!b#j2mO0{ zdaOY16KL;;tS-qh3}8@~KHgRM!Dq8x&?ve=hQC01+n|tvyYEY=&Y)AEfe+2mA1fW# zgtHlbAd0?$Sqg0#Sh$yZ3ZfxbT=F3UegI`4n(Tn^VEPW)v zvW7OY6{KQNtqkntK-q>mKjy=EFeix0V~^RV?HSf{+gyIg4+`h~BcW#dci$3`wc zx?KO-4<39;nw=+KG2fRGihIMS1`q_I64sq^pxzR;RzJuJO7EH2*}o6gby`VKC0%Ft zFnVq4$ihErUr;?Arx_c5zCGpQ%9U)wcAF>0#;j$91#hSJM*JKZiAwqdPS4Eqpx!*c z`_4++EpzXOEq{Cjp30j{YQwWinC@T^N?{3SEhnZ^{QUeKUgtf=d#gS|BT9j{1E`cw z4GP={3uk7ce@WJf3<$Iq58LN4G4x*PaYu?{2cga-l^J7GjYr~<}%FW5-1 zrov)%oTw3pfsp|0JyeqoJ{By@hc)Uu`+~_td>_Dh`z8(HY$$Z{>T+{?*2qq80eSon z)TxAY&v)WE5uMn8x&}U8xX~2hISqOLP`~v97U|7F^n1m27$Uk(rFUT0=K(O=#f9dk8UKwnQk3`>) zOzb4UI(qp`QTfVlJ>z9VqVTBNDi!fA=<33eM-e}i!-kC4#N z^`yAZX0h;0TE!u;NO=O^ZUW4gzMOTRAiFY2Nr(D_sLc3Jz9No_&=M1ZD!4(D*NKUY zN(D0LXOAFvM{twA0}&BX;)A&$EbIsS7+P3tIJApGE3t0v+Hbmz@I4Wp-VeI&GWdrf2cZ!9 zEL0hI43gAUYu1#3sn5W|FY$0AiX^ya`J?K9jxLA$M71KK<6eYW=7%6w`EJ~61X}#p zp-I}Z_3PF#1VTB`-%L~mNZCPk?Zy9M@iiSCd**pFP3ktAL_jYr#YISk;CCmR*2fr? zK5C3CGJN7PGfu30{N?5!L0gNiaS;pz3{3MNdm%(LB6I`SrwmJ`2EIF&n%~Avgy;U| zVuQwkrZ$Ih>3EVgyk^%@#M|sn1h_g~yT&@3%_c64!iR4IE?0NaIRNW#f{3F8I>0!^ zQ&?id=GxWj>GKaR0NZ3|4t$b`M@~}y>|N|5QP)`uT6ZZ9XZ1(A%=M;O?%4>rB;p@dzITnW?Xj@^QnynHuNupX6>%kq|0Ic( z;KzZ|DrL#X!N%qVt|{KN6reB!@V|%bb8M@j@}_$qZUS{2c$OwnPSl6QdJW-+ZND3- z1vv>@(JM!4c|cXrXK2TWW*Ypmi$&Mz zAVo6!^s)$)!D(<1(UE=OG|@+_Dqv7{9TeU>kgY+6a}3MsbjpPl2pc^RF@YrK4^afM zHF^M!9&|s`c)o;B4J#bTOFTeqqXP#A@?FHsE^w%c7JH;%ArkwWm~(^Zi9KpK|7V7n z`9K1>mW@prO0EcP)$!@s*>(7TcrbCNlew|Ak!VS-zYjglM3YGr(NbXzt3!o=*LP!= z$HIn&m@$D{3qP__C_vSZ99ab(8X{{?j_ns5i4e~dSrq8wNT3ejSMg?L7sSTEUlX(Y zt^s;w8Lp!VK5mdUf_{1zJm&|nHOkG+C3a#+2f{3}D`qyr^e*DV2MtgPkHFOii*r3J zztU8_Veom%`?Fc8QSw?24wsWurmVGI#RrUxxLE{F**Waw=AJ=c z{4wv=fAqzZ%3XO9>0vrrYJ~RIub2Uz9Xm7=btU_?c*^t60RMDR>Xx(mMjTF_;rs$K z7m0l}u?a)$gBpOYR$WbP8!U#(^P11?3xmvmXUZHDKu80}eY+3Blubci9!(Qb9J1lC z@3`xt0Wmq~vSK(?pq(0e<-{}@kkz|O%5P%$tQY`alZX-z0>_TYpmplwaM(&tIAKbf0|j?bS34 zLRDuCIoGb$NJvo);+L!%4^K+4>8-3y!DlnUK(;7lqSRUP{LW*!CIS|@P8Umk#gh^; zlV;NP(?g70q}Pq>u(*)DI!TwU)q0bDz`O7Jay2#a2e+o?rPWAt@bm8y@qf*DzYCwX zIjVB>);8rr!<~N|?d=)CYGwBwu8LbtKl;h{wIw0Z!+NXx=g*&{ltD`qmJ3hpel#dW zu4i7#!k@WoClk}#HQu^Q%=bw+uBBa4R2Ba+wRPdtvBNZgZ{4}Mc_M1)mHqqNoYrj| z7&cYxIn*_;eucZ#aF<6E*YtFz)PtCd7vvR};zRuuTlsi+^r#*xcR=>J<0~V7;X)_X z<5A5U=M0}4>zEE)mhagg^2m|wJya2m9-y1D&FB+qE|hrMuSYU7GY?h`*-Js>ly5eN zV>I)|y0uvrzFcy5p>9ZVc1XxkU}Braz9t4>*sfUPv0r~9aej|vnjuicAU_;S5ERx1 zfekzEhy9Xm*rEt_G9LgKQsJ zWj`XA(0DGAA%r-D`VP95Rm+zf;w_*+`J;N9A7X)0KCItEnhl{YCrqVl&#bmcJLA+F zWCH7K2W3;ucX(E|a5Zwdh%6Lzj+Gv1mm7)iX@7F=(k+ljLa9PKgaBfcc4i_7noou& zg`b4tKUbn$QG;eRKYgOM#)rnHqqu(u7bw2)<2TYHNx9md0H0e!+FA@Sw5$kmDeiKYvZf({{6S!peYvtC;by%$1to zb9-m(Ge@MzPEdWaLwk<3W{i`Ph=pIi+__~+RRv!MG1d@I0fC2Nn0%Tz=#cXaFQXv4 zy^RRi0G$#^`EIY;a2=jC5mFBCan%T8xC=!n8wUpqP;uZMdBGNQv_WmbS;QXFci2j< zEY~a3L~wTbn3}&Z?+p1ZvMdv*2p!EnZU9B-(2oT}o0`jQ*+O{oy~S(1aH@+us>%Kt z#B2eN3L>$jb~yV(jN+yBN^3>Ao`SV3Yyye^Zy?9%-;;oKcp~4$i98Nu*~Dc4dN6o@ zz}Z?J0_eLe+Tglh9r#4E1rM{Q=K=+6?}&aP{)HfqiIcMio23rs_14xmAl>8Jif(bD zllxrS!$iFnWJl^BUex&vGb*dT!7hf<0@)oOq>E3GA|lIKGSj#!!oS|sF7e~8&?AsJ zOSG8P$I#j5aNa1gst|?S2sD{11GQgi-2vW#MA#9P1Xffn&(u~_-^WztdmdZm*Vzi3 z5{%Z26OOxpFK zckdNL3XUQTyZmO2ag{^j;z*ul(;d!@78!&h50wnbnDFfS;mwm}l!Ut7TL63e^1-c9 zbKy7$s$hiU?U#5=Rdt;gV`;M4=MX`iaY^FZ1GW3D9Y=?asvkMbbb47PnVRe9+<&yZ zvs0s5q`vehw5D7xqcj~Z6RR;w#Sk_k?etQSftO@96ZJ~QG`}|4?&ykp=;vI>8 z4Td_fJFbRGgzQTcTu-2aMv+F`of=}4R>D0(&E9?=tm^0uAtb-`-nvoGf%wFaLq0I} z<3$whDE>$>`^=AcRooD(MpASvd&)N`WN4nCaD~b6ZIrfsXXS8G+X#tDFi_8^KUq)Jh!l{ztG;ul;clYvz{D6DjQ^f9> zVd<;FC~2SxhayBN68!C3^`<4Jd-UJbA(=m(Y@~#u9%UrNgG`$@yS49Uqw2ps^BSQB zV&Rv#!vQDWBZ@0RcvmOomL-aO9_Bzkt=}8WZ@1+{o1I*~`l_`Rw~YeGcUi*Wa|aS% z_H?&S2!~X_)JRoUl^-b?>LNfEbbe5w>5b-n8yeCZ%zvd7XH!3>H|U(K6{ktjf(=o* z?U5Z1ZQT(@10H~JSI(ny416VtI=1g!J5IjRiU!nz03VL{fy%Xa_`WVgJ2y~D(GWLP zab<`lHTUprv8gGqwO`=2T(d?+_4=D#nT2|1OOL+NPO3#w(#CnaYKBUc5?5iyo~t0S zy2zp~VqB}-eB%~Nx7=m=`lV6(Z29gT%ADzImC`3zNO|cA#Jqb?p0t)exOK;0?hXzd zCpH$c5WT5Co=4*$VN3nhK>Cj`+2V`-TNv<);!bYOBY>P>R2zU&NHg2+5)9-NkmMtC zhKWkb`7%Z*JmleX&_+&El{>Kns4j&$PYEP?uw_BeVq#&T1CuqD6uuDJyubo*yf%=- ziCY>&V9BiI&~%ZTSW==GEUd>Mk7a>+ixUbo+sKf>Kt*F?RR=APJ@F zI@hDT+%^GbjfqDg=w*lZ5ZMrLLYJlvrXuDcxvoa(O$1cHIHcjOOAJUz`j6D(Api?V zu^ve~rQ~>#=)+1_dp0ZZ43*N%J`>YHL{0?8wH{EOkSYSOAF+qUZ;0WmLj+8$1IE9c zwLFd)N#e>Pcn?{UqX~OLT}8xzDBOs;N+;iK?ix%~iN+0Uod7_v!F?=lxrhTQbGa%a zlW1kn!h>_Z#1M=H#;|-jvGZ%uF-|^B>@QG}(ruBH+<>YJeuxBuARz*XkRiN39i5!A zc!(dFLjwyme`tRy&w+paQ)ez!V~?G`#(YNjyAKV75rC$VtHh90_$-)@~Pk ze1<59M_xHM)=F}PtxmV}`k;YbI%*5$+}OkfK$McSqC4T+aF{=Pwp}$u_-K|*FRXef zsGyO}SW9pqM|fXzywVqAUKV@0c6QNaHO61_q^3s9OkeukSRb(I@fRYfrHk%&i2-^D z>U`PJdfc@@j=#8k|3I{RHfBKc2Y|01Bw59~N{c*zL~Ej#f|uVj<^gFr7<#2Xo z6PYP$$NBmB#a6+ocorCK5N#q@V*~)h0^Ql>m)zq{D56FJE-a z=-rmyw%g)=x3}ScPLJXeweThQD`QpKwBOcN{F{Aj;~OS=9yt73Ccb@bbZVqd`tO1K zGdG1Bm)@Y!)GRdee08#@QG9AFU|Uw1tBZ|$q~t^Dnk`}}-&3|J+x(=?_N6;Sr`Yt` zEYSRM&Y7DCj^I3dZjAMmeZHfJ$*R&jQ-dj8@58iDwK`5z-laY^s5-wZtSZ?u>hgQ5 zw07~vV&{cx?8UvgmW*7Jg%$-(O?_GC*D_hNksxR#VY3i%_S9D=?bK>cSN&r;hwpUT zRH~|Sgq%2~*_9cd@?c$AZ(vZM#ND&@SyxzI$S^T!@0Q@0wcXAWRzu&Cp}_60OL9O<*6vH2Fi8t%<&4=dJjLGKh$Y|1v~!XQIns_&{olyPvfVyUzo747MggWU(h=D9nZG=VUz|jwKhO^ zlFI>QlOMvMD`|p)X2LcIyqXCy;RBtXW7ULS}=1nfY zKQ=TF!}`5@f2*!hfVxeQbaQMNF%Jm()jC|PBkca1dIFS@fe~a#>-Cu+Hho7=q=$&x z-3br>%HD}x2Bgy$NcO&po}dWGtBJQFblLR(CE2Il1uZ@?<3P=QfXu}ZGsa%mt_M{i zz!n7<9bCSkK6XSX+<7)#5c)%mmWt|!a{4_G66ny+oOzsj3}Na=M}gesFA0mX!gji! z0Gdb)0#<_^1%10RTZG%jV*iseO6Gzq!_yWIr&$W|y$qf|xiSwAqgw zROquPK3gm0Fl;Al0b50Ma@~a?1>i~R{}Jk3)MSydM51L0`(86<?RuKmIxXWIQXrB%<0aU~Qww5ZA-66OIKsP?=J2@I6JKCzf8g(e;2;5Esjk z(;dEWVLNa@ZulqImA%1ns!KSI<&vleW*{IX>jSu;O=4pve2>S4q~)~XJb*!G6yyT9 z%tf>RWGIz)0b}c*fSPqb7veE+O%lolw1@fcso?G|s-(mPk!wLg8?cEMa~O5)!eHdY zhMAp6umS;-mv`eh9UL6we&L41Mpq5DwtRJ&;Vyy;VFTR7X$tMWje|=6Zz5^NVTyd? z$qyYY`x@jx+~UtrgXc)yG;+qO5BK?o?~-^m8!lAj=l={y`Jb)P`YVn~io!^keMs4d zF)RHj=j<$`+2QPq87e^YyMX@^G^i#32t}au;<2fTy~BqQi#R>DNJu<_^DUDH>0-P& zr+{-m$OYHIe1M!n!Uy2ufU=gXCe)Jeb@Y)=Vc^_&#AR6Asj1ms^+rm@^B|F&b1_iV zlkAGP$D!yv1cTKHPRt4=c6@L=CCM+&P)8UjVcvqni4y$g@C%ZAg_Ila8U;v(Q7%hn zr$*{fVU2SdWZUr}p&<<&bdLhbD#F*x;X6apTEeU>zX%D@In?G9(jy`6_sPJjkEfZP zq+l(RSu;Vns`Az9i?8K3$d@J#$tbCi8H#o!FLn!*6%`G4vFmb1{$qRftOKM0U(kp; z%dB2j(#XVQ!qf!3@gHdMu{&rngVX|R`N#O_#gtCyARBDWiA@ynV}PN={uG@mhC*P_ zb;R7YUk1MFf3QNyegI0aj)UU}Zhsp~I{8dPD_!jQ(afl?=rrU4cxsTawm zA=8zzEEeF_Y*^eBS?_Bei59nQB@BSSxTycgvhe-?9dAJBV8~@yTMrkMt00SgxMFgs zO6F9)%W&Pzr4nw^Q`S!pDTNHRt^DyrBYV%MS64fMp>7#D7Az{7C0D0yZ*P99^z7-T znXbHWQD)xu)T+CiEcJD)yK4jlhA+Db`EM0^y-rj#aYOOvYaP04M&^E=TNN^uFG^eg z=*TVqB0Q54p~dRS5aPzsv5L7BS(tEC>mKQ^K30iswvek4>R-1|Io`bAps6XDg*8c_ zOe5T}PWYdJT4{RqIziAV^u%s=l{lww`jO`@bFb5;U3`9?5&6UDFG0QU>>P{;*6+Sq zeOJF9h^4c*+BDM4I{W`p3;drYC%PFp{m~~!uItAkdA-IsCuS}}*7Y&amA`^&6u9Al zA?)g{5pHxX$+1%fLW1Q|dU|504k*dyML5y$JITO4PwG zuQ%b~qa`)JR>J83P*>mxBSKsbSBm6X9k&iWzF`cZ{P0WU{v;uJL}Zzl=LwRfE66UW|}L1PN0XcisGQ>6*)n8j)CAqPH*C9 zgPsc=)9rZHOw_ICEvz+W6Q8w0oz)|GlVSm&K#HtUhg{ScEfqlm#v>a3LambWPLG^%bg>_=x z^3|)!$QBS2N+o%&;J%U+xINE#f=qn4P`(yJz!cEc#LQB5g6pECgVCf@XV#*C*A4=u ziSIaISyJ5ss;0oZ!o$OZLYmqx^KH{)wDS&W>2MfztW0l&YdzX<#JA|!-tp=dLC@Bu z=+u!@DFsIB80{2Fdxhk&1PLZ))qorpG93EHj-LF%RVKGp=Kqw-3M2kZ|VXI{z_lrlm+we!lQkFH0@ zsZT%t*?Cm$fJ(MYM-p4obNIbaNFP?2=!vwoz=}qD_MKUp4e&xLhhMx;$j{E5wQ#Vx z0Z@7u2r2;j&U5X*C>Hu1K?1qJ3zND?gq0MS(BfMyx{(q05hMf10R7+(ls`KlfN(|3 z1CeeEo_^zjVHjL_M(fQS!jNUO@3S1oxMB1492qt&aBpCsKuP$=WzxYmOX&^r~TM zi*QnU>{a?{LDD`3@5X~T-Qa=3?r^`CE0UEuI9Zb17%drYFsxAFv9Z$!hlQQ}t}quQ z%63wbnWZ0bO&!^i=tf_(X&>XxfkWt->m)Wam38Uk4l*Z=>NaDti@5$^b9o@^CGau| zDP#2b$p^#hhd94lSR~F}+c_i3tUZWh`_J*k?@|j>m_vX<$yhKHlg41FfeFU#nH}17puflxa!~6FQqtwTgd3bqSe8O>XOQe_%gM=c4)E7IJf8a)j072(yu#mr5fm)~ zVVmy#@pFRCL(rfI2`pGpr)$8fG7wB7^o5S%Vo{5xW)KP)`sekDdQwY){%|Zd151P8y?oNN%bZ-Q-#!POrL?E@{&gDr66 z(`fW49q!;sxdfmuKz9W1CZp2p%-Io|l99|Pdg1x#OChQ~)}FyKxyH_vx0%#+aw zC^QZX#R#jOxQPrH^S!@?vAjY>5gLoj>0tmoP0X0VEMzk!V>5?`hbfPaJg03zCrEWq z!Yee3CtC>9bQ1m=Fg%F)S$x-9#pyZuWqzFXeW1ypGxf1Oog56<1hjL+j}U3R4(d#D zFale_6gF>U9c1c7ZIm2V<9Rd&F`GwRwJS=ogX$x`5G%r#5d%6)o9X%uy_{@?-AI}vKq{A)@?Zk>&zI-`w zFbY|+hTv%t;vHdW5T|8?9||!u$IT>T6j6(x&a{e7Z6LS|KMU$jMgnPL{}H4EtA@C~ zul&6M+ZYvVH|ZhcYmz+e15yP9W}N~znGj(;lpjmr*F|+hvvC<%8X$mNhqoH!A>}wg zNy{0(MgV)ng#AL=SR*DjwpS?#+{dv$(0O1S$(!1YCVdR}Ij})ak&hyMKa@?PSDN3_ z#v8-_aI9Z$0q#$IYcZq|gpq+!*>Rr-AoAz09LL;11Uw1?>%ggJ`0Oql5=d=s0h)*D z3y^7mPd72_15b5ReENp7Z9-8``M=xr#ra zDZM}l0NDxVU;ewCC(Vg}Elvdh$U&)^pxIjUcVn^g=Imb{(Dl`P?fND9`p_h0s^iqg z(gLI}DK5dcXvB=%hjjFa^B>`RA;!ae@&SCk{`USm3O)~5lkb5^!!Xdl!;R_-PfZeb zZE=4vm`)9iLfi^MjKw6+^%NK-!U33oLuLM4{UF8WB6Ebjpk}J^QDEZl!Ko!Kf$noZ z4aS59=tMMWXX0PM$V{>|@*$}4P9yQxeljzeh<$zA{xr~rb>(3DYEMs%PqA#kG%)Fp zd&`!>tfIrWLLNUh6LCpRNhzZ z621se)R$+Qf}6QtyYaQOWktwLv#b_N7wo}D{imdoyVh+AYWtG7(C z62We(MCSJ)Nl7wMik22}`7&hX@Z?>`kwB}ci>CoIQ3WfjdJ>EUFoAXP=igl{2|fQD z+f6s<^R4gd`ZlPet$bWMZ1pO7ZDkB9vibb#KwI{;k#$V{4Pv>P13H3M^U~AQe!V^M zZ&g)5oPF}3R^XH=)+`tVI6r?3Xgs?P9~t!iI){data3_eF-TT#<@SG^inNNAtJe7E zu9=QKsmid&Z0Vt=@!OcR#llV;R#Dl4#?#{WPd?q0F(MHieU1@F7}nJ>Mpeb7HGpr} z%4=$R&6&;*03`whCoq;Qte>l5Y}{AFP;)6!yzZ;DS(gY zYk)?ri%fhT+0?CJ0bbr0A2Mb@XGU~IWdTAhBUS1ybwC=l4PbE;FdH;Jb=`#Krl%*j z@fre0^iYV1f$*LL0l5$Xs?>mqSmU=jhzc7VoXWPKe;!oQ+M!wGb;J=Y0w z@m$)Ol_jnhBhgA;ERNO%0%QWy%ITj53#wrCA~hzI6J)()szF2S zO0++o;#fTrB^v=}Mj*=SH|SS8B9SLVDU>v~W+ja>&5oW@oFHOlAi2e#mfAG?KQ8iUuGfL7rpQ;ec|-?&lX@RHo}$`y6?= zJaDQLzA!Qo9RLp$LT!dM?@BT#1$80e2;shVVrnbilnk@MUAzGBhCB(R8#Wk`MrO34 zvnPS7jtqvQSmur`js!$X7B1r)3=8RM*+22fl{qABZhCt!2aBJv5N9XW%{j=5h$H4L z*$)PxCde2t6>Ae5LI@oiY0@}KGS>aYB!eE#o6;woG0;^>9!SPiBDXPb%MQYZKtqy_ z44?$QhV1Mcxqk3rFsKB5fk~^euF`{Zs_%}^C)%!$3oW07mr0X}c9W=+-O?Nq871KyAw+g>&z*?)MHfPA1Abj<73e zeM$l%^^kt`!6Das*{7A`0v0@_+#hMi3MBSOV2m$`)~v$1;q0S@GFujV#4&nx?V|pGlHF1bAy2(Hi9n2Y@fo z>Yr#Vs4D3uixspTueV9V{nh}YPlop*=hMG4?P?Pr*Bb*e^S_|dmd&<|I$zg8%pKazK0Ognh){_vZ_T_47lGcec%u@`JhCH z38!mQ-9g}p7$c1XknW9oX6=HExOk(!BH`g6L=b!IW0BGoAi6Mch!>bv$lYF~y<^;8 zC5jKy=!V)28Xi&v|Mb zJ<3!}?R3taNp3dZM;*eP7F(1e*s)5;n}|pDuSdF}{XrQ?ZqkXtsINQn|At8Nr@K~~ zeM!K*3p{R9@z%Ql_m<%iwBu}Xj#C&bbsnftwm4e zLFjHaWROQ49hb^Dr}x(@Q^DWRYj<^klisEr`?+H_DWUd5`>oN;UWkVG;}*#c2Nj~d zMbZRvu|vDNyNiL87UD^haqUnBbYdKl5jw1t>c@M1%F9*UP=}%>z^L;J_**jB6k7lb zL;>-Vfx`jy@}#TRstxZjDpCP}3%s*Q(F5#=%n>BxJi&n>mDhdkEjUG!U1n@#=cmsT zAsGcvbAzPKc2urtnh|*!P9s!xv5*W9QYs+9(OP3GwndtN5Tk?60iGfv&gXeYGFua1Td~{iogHX6IzmoJI7=w_Vvy#b zTT7;TXkzXa8MKJ%h0t&T>C=tZZqNJGpa!l}szw14^N-NjxGl^%2pi-d!Q{?Igiy3F zKUJ_n+#;k3X8NM82h6&n^ zdp0Iro<3`AyaPETk{f&_`!-QP!<|3Rj%HaxM@7_)D4Ilo!c1myka~dH4|79IA`wa7H*Z{WaPZwoVN8J z$?WbenthmOzB<;%!GTvI^HlWE$@p1Xjnd=4$CqvA@$_0Ik=dtzD=0D&)KUh_W7mj2 zjxO*|*+^tu#g{b$1CuN}`(@p~YM`gX@T;bxVyn0~8|rK?TaF_;PTWayK8~)=&jAC? znPU1RVZZV2DsA24#~a-ICIv3Z;zn(Jj5Vp$;K9WA5gFOcV5-0A$LE|;E@EZ*4fU_> zXT+vwJa5!_vYY~c0BkrT3@)3@VvVgq%bc+Lh)@t_*6A5hKrFf3raf_V69aX&L#Lrq z{4Yq7?Ny1=$C9=?(48VJ^_)a*L`Z)6)kP09MckJM7s$01hI|(fDx$1dp^>!tyKRsJ zru6)mg#N`=xMZKXv^+R)#lExcTvaiZz0lINwzgWBKC1h@Yh(1`hq+OtjIx>2@=ysi zO!f3vZx_Gn7cRNptKvd-;))dVk6kYRcNN*c7C8X0_!N+vBNuzK;5IXU5e>q`%UqHKqc81pdi9mK}$xQjJ|^f7SVcPgi9Y+ZdbOU)vl#FUYU4U7h;n1m!1IQgi+wj})a4lYV8o(SHJE+o#&JCvv zC$^KfkI#7=W@Ofw^qGO&Dt4pV>BKou;6! zEEj^BRu#ep;3&ulKem%|oXmnk-9dwqL(g%E6qHvokn6^myOpw#c>sv4AHbZ!5SJgH z;xM8o`78T`m+@W zI6+QbTu~3iJ!u&RGK#NWx|LQ$@pg81D*(hK_aBturRv6$0uh=;~Gykx=PZ4X>4q1badE69q8n@4bo_;d!G>|MYYiK@hX!HsA|(W!L$`8oqB z7&r7GL_bF+w`1uM77CJXjy{a#D}rtmswM5^7)=G1vRi>tZ3bP|U>uYgI+gG8N3$#DwM>_Sk(N~bTxsR27D{uG1xKX*Yu8AA_<^m8egOMC$5 z8#KleKnFz6zaNFHy8*yBRQFnjQ365+`K|d2Aa%|lzb6x3`;;Syc1s;yKSupNtg)wkIJ0LBv?cJ5n+(T5ZxF7p3#&dKp_?) zXJ1!2bY^6Z2Hxu%wzT{747PH>**Zf3Ghej;&38tgZ8=+atu<@3Z|z5@Swz!l!#A~F zO*t)y9R(dX!e2>oarc_vIcG4$1a%^st?kusJaczTK`udtnL@n;5yW;V!O???Ku-bV zszIPfBT^GIEaz6gaY?s765tmZfu{BB`Ew$=Cqs`A{h@8m*b{R0uYQ!gii-ClD!GWI z%A&UCuuxa`g1)(3yXvd^ZYI9&JxkR}?m%I&pl z+BF;<&LLeV5a;W`XBPAN@~vM*Z)JOf|Kzya!FF}a zk?V6v_I1K4v_|{WnqO(nETsQA&(dgr(cG`=s`0-*vXEYm*4C6Uu zx28}wupd@Dpk=VxW_nxFCJ~WMNWU|)oTRD`_>B5^$A90yMRVW>{s<=jbq0Ts?D78! z&i>!ED*wYh|F;b251rA=yO*nsFx?K_V?TiG(s3}kjCASFrknHa(?-yitE~A<0~T5pQU(gxLd1cE z3~|I}OGbMZiP0fY-a_|X*@%ueVNWL*6hsoc3zWYN7*He zE~+1>3NM;(o82+Q+S3KB;+H4mzxc`?MOfvD!Lh7q_F6yhG4yv~=$H{zF^HejI6ld& zFK}R*&`~q;C3gU!>+lY1tV+%*`>NlV} z@3UwvN4K2hU2v^A2UHdVg9zndjPSQ`5#R$NQ*{l5 zxX-W8ile)S-r(cBD>yUHlezE2U66 zm6Rx=|2A|5=`6Hn;OW(%VNGEN@deq5h?qYLo-w2xT|+~zHD!l!IQnalO?(PO-<8Z< z6m)TguzAh{*9O6XdrAfkSprRv(c%!cUcl{a%q;-dgtV%VhI-^WaiC|A*EyZUk$v)0 zG9ZjP2+K-9|E)l_In(7M!jaA?X;X5p9pI%L5Jw{2z>@~Pd=!lc376?zSXX;4f2o!o z1hR$6eKOisUrkgx~;wOAa6DPsXeSvBK z?%5rPS8?aN!99RJg`+&jc$qvPd4huhP{B~TP_*93EI?E-D+{s0G4k{Ro*G3^Klc$@ zdXbJ@D+ovow!vL26+A4#H<-nES0)&YFJ!eeg%AuAkr-Lq=$(*Rgs3TL-$1{??H>^t zS&M3@jJyUT*O8A{f9=~j0`v{mADELF1N@uJpajomiJ)%gTJ-Y&In5<=IO#T5VS|$@ zbsPxuM+iwkwFpIziWDkwb#XW{f>!NQHt4t$$o-G@eNK9}EC9`-3t}v%JC!SwP}rkp zqCoF}-z`2@fQv_z2JL9uwr$0-2Hj`S8nSY50P$SU!5kSn*n!w_s&<3uTYwA=Cd{NH zhhH;7GT32z(Z2&9_5sBE7z#>yF_2O|(~MQc28P9qXF>c@am~N&6(!eor|Pf0pS{~ z_;+ZB0SvJM{h>KY4~{g)2hXE#-enF*m|OF99+V8oyv5)+fMU$2-n55=;rL=S{rMgs zes~9-1AqeQDm{Sk*3Z%2D@l?H`0*jWLvx5bD-+-AMfy^pH2~a;$WjSG5kN2Q6husU zFkrI?d%o_!Md!G9XmjxvxH{z9!4u>R)OSXy5p{X)=WDU))OrD-$M(_{xx z@T&(^RV(+ljLVrq!{6ei%-r}NuEcM%3?`E@0C2dt&ns+3`g__)I0pe+z))ArN85!U zzr*=di{XL=H;#J#)7)MB{PNE}eMHh4tb2Kbe!$stCEiSs=6-+!8K(3D*|H6j&*F?$`g~0EGQ*bUxNzvuJDvuy# zYemJ_t6fQ@{3juz`+QtCs^`KRK!T;OP0}{LX>t*$zFc3kIyX;`^Okqu%_8IYsv2(G`$~G@hMnmVez1nud=>b!*JN*j?Sz$hv;XiWN>=n!nEoy4%_N7*3 zUEGUjg+D$z(d7op0iF%9@ZH!uH?%&WLCr+IGWzDtTy6|z_#9CFS~HEmq^v*U5InKn^t9X3=gREoKih@`|IiD3^rG{mm+eByl>FoS>d}obUd>E_G&#mYG!52;$Dq2 zkMld@mmhhaYiXyJ8W@-&F0Gsx6{6j)lhq(7BQuirvg@f!ysqSk$*JJW-D?B7e!R}) zsI0KQy0i;sNb%ct>MOCEh&ZLB>Tw+hUeZ|R)4*jM5<%}dPae7-em8w z;3ypJoMTv(Gtic^UN0v-#zN0BSctmHV{~*Ga%Zng^)Z`|hS38eQP1LcVTv>SJNltp zU1(I%`>lwbar3=%b&)$kax?0Xb(v;oCw@OcUFLQY`W zj@KSjkkRcp75}+igqL?y{O<)X!``WQt+;PfexF~_Nti>X7WB(+TWtG8-2z;7T<>pF zW^8W3Gx5IXaueLZV3CDz=qpQZF{vt94}7xb-o^#(>q6<A#nmdTVX{ zmYdrzjuN0b1cL$d=3ktEFHB$!-2bL7wJyJ8qE0A8mIa0snX@Mm<=2Gpp|2Dpgz z8?P;!YHPg7Dl}04wCpJo|F<9JF@5Z7x4~tM&a8PttEie5tHxHJYQja&_-A*N+y11& zbq{8M2cK+rvE`fn(WyKPC zR^dPQ*Yo-%U#KYKkY+Cq*k--wvi%wZ*R-#9LRFkTzB;)C5`TFsD;6|&OHZi#(%dz; z106yz61#`z%Y>2Ry$;=fHAdjXeX-iQx{l5!2J8T|Lv+^$z?G6b*q{AT;?|w-oESH^ zmM!C|F6=1Sh)Pp1Wg%LDIyyPoi3Sf1T#63oPBu%S*-NXgu0H=eiEWzN5!KgIaUPwK z5}ivbl3*=|REJH`sRbu&+w#bLWHrB;@9q)cQ|{+T0i+JR{QnCB!~5JA+Dk@D~L?jj%ZEjxstA8`r=t7>q*d5xdQk&2E`& zAkIM{es8RscM05vkMFbia~s@_RP!e8Yg2x9)~sEEpk?pX(Fq-FVe>`7fC38?Ewbz& zRa(AfWYys#)pY13+yHIgbME|k5l|q(vgQAx)6J%|ak*X+e_?kOtV{qqS1DFweSl^X4@A1)JadI)_5J1`X8& zTDv&+<&a7i3M4TL8!D>4I{Z+6IJ4Uxotf@mKi0!CHbj0*fC(_nyGNo5FSYBuo^9Xl zFWcM^#OJ;Ka-K>^DN7d77^8i$P57}jNx#HsZq{mexNLbQN%EwOIag3vEytm^c_MOY@4{4;} zM_EPmtM2`e(yle8i7bq=tAY_h0c}uun3yao0VVSAMUmG+WlJe+Kq(3;vVzFOY*H00 z2vv&`ASDe(P!TDD5n47{TcBtYiWQ_*(cOYziQ;2RL4oa3Esybx`)~g`N&ihc$z<;L zedpYB&Rr!qCyRJQ2nfK5>N3sJ#j5WMA1uV;J=UcAK1=CWPCRP+tcoy!Av*0 zTTF8D#sX_X6!()Mw1j3ch@;pMJuaxEzWer`etSE<{$irQsX>w3_zS)68HTYRF+#$8 z#ClH@Hoe5+$=mYV~92b=Um>r2Ez+O`>Kx!MFKlD2%k~7p@M>?o}0bB0kO=-h_JYcrFrW zMK_t9HpRuRM{1-9eM?ZZwvK!_!6}S%aCGZG8p4MJ{V1X9?Y+B+yWG_^ozT^MV&AHO z@HIPc#&h4R#1ZEn`cDo4mzJVce$?58Qyc5AhWn~ugz z5EUEi$dS)O_-2=BP#zXq3Wj;^d+xmV2IbXRALEDm)b!|nX66RKnE~=}db()6hR*Z& zjhufq#5-XRjbi>!tbF9-rAlZ1a28%f4F!eZgEjDc>6+;zTZd7mw#vhw*e_72);=t+ zp=g@X7bGl(i%0bqB5ADvgeKL z0Q{F0_hNlAYGZrL8iVjnY0bQUgPPD~nOxq0Gl%!02clw9NkWFjr@}O diff --git a/e2e/spec/__image_snapshots__/webpack-usage-spec-js-sequencediagram-should-render-a-simple-sequence-diagrams-1-snap.png b/e2e/spec/__image_snapshots__/webpack-usage-spec-js-sequencediagram-should-render-a-simple-sequence-diagrams-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..9a8b3f2b6cbba4680c52468c00ed0b944518921d GIT binary patch literal 15052 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 literal 0 HcmV?d00001 diff --git a/e2e/spec/webpackUsage.spec.js b/e2e/spec/webpackUsage.spec.js new file mode 100644 index 000000000..88aafc9f2 --- /dev/null +++ b/e2e/spec/webpackUsage.spec.js @@ -0,0 +1,16 @@ +/* eslint-env jest */ +const { toMatchImageSnapshot } = require('jest-image-snapshot') + +expect.extend({ toMatchImageSnapshot }) + +describe('Sequencediagram', () => { + it('should render a simple sequence diagrams', async () => { + const url = 'http://localhost:9000/webpackUsage.html' + + await page.goto(url) + + const image = await page.screenshot() + + expect(image).toMatchImageSnapshot() + }) +}) diff --git a/package.json b/package.json index 40f1e699c..0950144c4 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "release": "yarn build -p --config webpack.config.prod.babel.js", "lint": "standard", "e2e": "yarn lint && jest e2e --config e2e/jest.config.js", + "dev": "yarn lint && webpack-dev-server --config webpack.config.e2e.js", "test": "yarn lint && jest src", "test:watch": "jest --watch src", "jison": "node -r @babel/register node_modules/.bin/gulp jison", diff --git a/webpack.config.e2e.js b/webpack.config.e2e.js index 38d01b449..ae9641a7a 100644 --- a/webpack.config.e2e.js +++ b/webpack.config.e2e.js @@ -28,7 +28,8 @@ module.exports = { target: 'web', entry: { mermaid: './src/mermaid.js', - e2e: './e2e/platform/viewer.js' + e2e: './e2e/platform/viewer.js', + 'bundle-test': './e2e/platform/bundle-test.js' }, node: { fs: 'empty' // jison generated code requires 'fs' From a8d9b269ff8060792e6fa1a4a5bb0b71c13b69c4 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sun, 9 Jun 2019 07:07:57 -0700 Subject: [PATCH 094/103] Fixed reference in test file --- src/diagrams/gantt/ganttDb.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diagrams/gantt/ganttDb.spec.js b/src/diagrams/gantt/ganttDb.spec.js index 2f5643ac5..bf2ed9c8d 100644 --- a/src/diagrams/gantt/ganttDb.spec.js +++ b/src/diagrams/gantt/ganttDb.spec.js @@ -1,5 +1,5 @@ /* eslint-env jasmine */ -import moment from 'moment' +import moment from 'moment-mini' import ganttDb from './ganttDb' describe('when using the ganttDb', function () { From 434a0334118213c5421280cfae058b1b9856c8b6 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Tue, 11 Jun 2019 08:22:55 -0700 Subject: [PATCH 095/103] Resolved an name change issue fom a merge --- src/diagrams/flowchart/flowRenderer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/diagrams/flowchart/flowRenderer.js b/src/diagrams/flowchart/flowRenderer.js index d020a0878..3fb9a31f5 100644 --- a/src/diagrams/flowchart/flowRenderer.js +++ b/src/diagrams/flowchart/flowRenderer.js @@ -71,7 +71,7 @@ export const addVertices = function (vert, g, svgId) { } else { const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text') - const rows = verticeText.split(//) + const rows = vertexText.split(//) for (let j = 0; j < rows.length; j++) { const tspan = document.createElementNS('http://www.w3.org/2000/svg', 'tspan') From 5b6e9747b7ed8ef498abc6a1882fc01db40a7eb8 Mon Sep 17 00:00:00 2001 From: Dan Shai Date: Fri, 14 Jun 2019 01:22:46 +0300 Subject: [PATCH 096/103] fixed class diagram 2nd pr --- src/diagrams/class/classRenderer.js | 580 ++++++++++++++-------------- 1 file changed, 284 insertions(+), 296 deletions(-) diff --git a/src/diagrams/class/classRenderer.js b/src/diagrams/class/classRenderer.js index 2b31c326d..fb74b571f 100644 --- a/src/diagrams/class/classRenderer.js +++ b/src/diagrams/class/classRenderer.js @@ -1,456 +1,444 @@ -import dagre from "dagre-layout"; -import graphlib from "graphlibrary"; -import * as d3 from "d3"; +import * as d3 from 'd3' +import dagre from 'dagre-layout' +import graphlib from 'graphlibrary' +import { logger } from '../../logger' +import classDb from './classDb' +import { parser } from './parser/classDiagram' -import classDb from "./classDb"; -import { logger } from "../../logger"; -import { parser } from "./parser/classDiagram"; +parser.yy = classDb -Array.prototype.removeIf = function(callback) { - var i = this.length; - while (i--) { - if (callback(this[i], i)) { - this.splice(i, 1); - } - } -}; +const idCache = {} -parser.yy = classDb; - -const idCache = {}; - -let classCnt = 0; +let classCnt = 0 const conf = { dividerMargin: 10, padding: 5, textHeight: 10 -}; +} // Todo optimize -const getGraphId = function(label) { - const keys = Object.keys(idCache); +const getGraphId = function (label) { + const keys = Object.keys(idCache) for (let i = 0; i < keys.length; i++) { if (idCache[keys[i]].label === label) { - return keys[i]; + return keys[i] } } - return undefined; -}; + return undefined +} /** * Setup arrow head and define the marker. The result is appended to the svg. */ -const insertMarkers = function(elem) { +const insertMarkers = function (elem) { elem - .append("defs") - .append("marker") - .attr("id", "extensionStart") - .attr("class", "extension") - .attr("refX", 0) - .attr("refY", 7) - .attr("markerWidth", 190) - .attr("markerHeight", 240) - .attr("orient", "auto") - .append("path") - .attr("d", "M 1,7 L18,13 V 1 Z"); + .append('defs') + .append('marker') + .attr('id', 'extensionStart') + .attr('class', 'extension') + .attr('refX', 0) + .attr('refY', 7) + .attr('markerWidth', 190) + .attr('markerHeight', 240) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 1,7 L18,13 V 1 Z') elem - .append("defs") - .append("marker") - .attr("id", "extensionEnd") - .attr("refX", 19) - .attr("refY", 7) - .attr("markerWidth", 20) - .attr("markerHeight", 28) - .attr("orient", "auto") - .append("path") - .attr("d", "M 1,1 V 13 L18,7 Z"); // this is actual shape for arrowhead + .append('defs') + .append('marker') + .attr('id', 'extensionEnd') + .attr('refX', 19) + .attr('refY', 7) + .attr('markerWidth', 20) + .attr('markerHeight', 28) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 1,1 V 13 L18,7 Z') // this is actual shape for arrowhead elem - .append("defs") - .append("marker") - .attr("id", "compositionStart") - .attr("class", "extension") - .attr("refX", 0) - .attr("refY", 7) - .attr("markerWidth", 190) - .attr("markerHeight", 240) - .attr("orient", "auto") - .append("path") - .attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + .append('defs') + .append('marker') + .attr('id', 'compositionStart') + .attr('class', 'extension') + .attr('refX', 0) + .attr('refY', 7) + .attr('markerWidth', 190) + .attr('markerHeight', 240) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z') elem - .append("defs") - .append("marker") - .attr("id", "compositionEnd") - .attr("refX", 19) - .attr("refY", 7) - .attr("markerWidth", 20) - .attr("markerHeight", 28) - .attr("orient", "auto") - .append("path") - .attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + .append('defs') + .append('marker') + .attr('id', 'compositionEnd') + .attr('refX', 19) + .attr('refY', 7) + .attr('markerWidth', 20) + .attr('markerHeight', 28) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z') elem - .append("defs") - .append("marker") - .attr("id", "aggregationStart") - .attr("class", "extension") - .attr("refX", 0) - .attr("refY", 7) - .attr("markerWidth", 190) - .attr("markerHeight", 240) - .attr("orient", "auto") - .append("path") - .attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + .append('defs') + .append('marker') + .attr('id', 'aggregationStart') + .attr('class', 'extension') + .attr('refX', 0) + .attr('refY', 7) + .attr('markerWidth', 190) + .attr('markerHeight', 240) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z') elem - .append("defs") - .append("marker") - .attr("id", "aggregationEnd") - .attr("refX", 19) - .attr("refY", 7) - .attr("markerWidth", 20) - .attr("markerHeight", 28) - .attr("orient", "auto") - .append("path") - .attr("d", "M 18,7 L9,13 L1,7 L9,1 Z"); + .append('defs') + .append('marker') + .attr('id', 'aggregationEnd') + .attr('refX', 19) + .attr('refY', 7) + .attr('markerWidth', 20) + .attr('markerHeight', 28) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 18,7 L9,13 L1,7 L9,1 Z') elem - .append("defs") - .append("marker") - .attr("id", "dependencyStart") - .attr("class", "extension") - .attr("refX", 0) - .attr("refY", 7) - .attr("markerWidth", 190) - .attr("markerHeight", 240) - .attr("orient", "auto") - .append("path") - .attr("d", "M 5,7 L9,13 L1,7 L9,1 Z"); + .append('defs') + .append('marker') + .attr('id', 'dependencyStart') + .attr('class', 'extension') + .attr('refX', 0) + .attr('refY', 7) + .attr('markerWidth', 190) + .attr('markerHeight', 240) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 5,7 L9,13 L1,7 L9,1 Z') elem - .append("defs") - .append("marker") - .attr("id", "dependencyEnd") - .attr("refX", 19) - .attr("refY", 7) - .attr("markerWidth", 20) - .attr("markerHeight", 28) - .attr("orient", "auto") - .append("path") - .attr("d", "M 18,7 L9,13 L14,7 L9,1 Z"); -}; + .append('defs') + .append('marker') + .attr('id', 'dependencyEnd') + .attr('refX', 19) + .attr('refY', 7) + .attr('markerWidth', 20) + .attr('markerHeight', 28) + .attr('orient', 'auto') + .append('path') + .attr('d', 'M 18,7 L9,13 L14,7 L9,1 Z') +} -let edgeCount = 0; -let total = 0; -const drawEdge = function(elem, path, relation) { - const getRelationType = function(type) { +let edgeCount = 0 +let total = 0 +const drawEdge = function (elem, path, relation) { + const getRelationType = function (type) { switch (type) { case classDb.relationType.AGGREGATION: - return "aggregation"; + return 'aggregation' case classDb.relationType.EXTENSION: - return "extension"; + return 'extension' case classDb.relationType.COMPOSITION: - return "composition"; + return 'composition' case classDb.relationType.DEPENDENCY: - return "dependency"; + return 'dependency' } - }; + } - path.points.removeIf(function(p, idx) { - return isNaN(p.y); - }); + path.points = path.points.filter(p => !Number.isNaN(p)) // The data for our line - const lineData = path.points; + const lineData = path.points // This is the accessor function we talked about above const lineFunction = d3 .line() - .x(function(d) { - return d.x; + .x(function (d) { + return d.x }) - .y(function(d) { - return d.y; + .y(function (d) { + return d.y }) - .curve(d3.curveBasis); + .curve(d3.curveBasis) const svgPath = elem - .append("path") - .attr("d", lineFunction(lineData)) - .attr("id", "edge" + edgeCount) - .attr("class", "relation"); - let url = ""; + .append('path') + .attr('d', lineFunction(lineData)) + .attr('id', 'edge' + edgeCount) + .attr('class', 'relation') + let url = '' if (conf.arrowMarkerAbsolute) { url = window.location.protocol + - "//" + + '//' + window.location.host + window.location.pathname + - window.location.search; - url = url.replace(/\(/g, "\\("); - url = url.replace(/\)/g, "\\)"); + window.location.search + url = url.replace(/\(/g, '\\(') + url = url.replace(/\)/g, '\\)') } - if (relation.relation.type1 !== "none") { + if (relation.relation.type1 !== 'none') { svgPath.attr( - "marker-start", - "url(" + + 'marker-start', + 'url(' + url + - "#" + + '#' + getRelationType(relation.relation.type1) + - "Start" + - ")" - ); + 'Start' + + ')' + ) } - if (relation.relation.type2 !== "none") { + if (relation.relation.type2 !== 'none') { svgPath.attr( - "marker-end", - "url(" + + 'marker-end', + 'url(' + url + - "#" + + '#' + getRelationType(relation.relation.type2) + - "End" + - ")" - ); + 'End' + + ')' + ) } - let x, y; - const l = path.points.length; + let x, y + const l = path.points.length if (l % 2 !== 0 && l > 1) { - const p1 = path.points[Math.floor(l / 2)]; - const p2 = path.points[Math.ceil(l / 2)]; - x = (p1.x + p2.x) / 2; - y = (p1.y + p2.y) / 2; + const p1 = path.points[Math.floor(l / 2)] + const p2 = path.points[Math.ceil(l / 2)] + x = (p1.x + p2.x) / 2 + y = (p1.y + p2.y) / 2 } else { - const p = path.points[Math.floor(l / 2)]; - x = p.x; - y = p.y; + const p = path.points[Math.floor(l / 2)] + x = p.x + y = p.y } - if (typeof relation.title !== "undefined") { - const g = elem.append("g").attr("class", "classLabel"); + if (typeof relation.title !== 'undefined') { + const g = elem.append('g').attr('class', 'classLabel') const label = g - .append("text") - .attr("class", "label") - .attr("x", x) - .attr("y", y) - .attr("fill", "red") - .attr("text-anchor", "middle") - .text(relation.title); + .append('text') + .attr('class', 'label') + .attr('x', x) + .attr('y', y) + .attr('fill', 'red') + .attr('text-anchor', 'middle') + .text(relation.title) - window.label = label; - const bounds = label.node().getBBox(); + window.label = label + const bounds = label.node().getBBox() - g.insert("rect", ":first-child") - .attr("class", "box") - .attr("x", bounds.x - conf.padding / 2) - .attr("y", bounds.y - conf.padding / 2) - .attr("width", bounds.width + conf.padding) - .attr("height", bounds.height + conf.padding); + g.insert('rect', ':first-child') + .attr('class', 'box') + .attr('x', bounds.x - conf.padding / 2) + .attr('y', bounds.y - conf.padding / 2) + .attr('width', bounds.width + conf.padding) + .attr('height', bounds.height + conf.padding) } - edgeCount++; -}; + edgeCount++ +} -const drawClass = function(elem, classDef) { - logger.info("Rendering class " + classDef); +const drawClass = function (elem, classDef) { + logger.info('Rendering class ' + classDef) - const addTspan = function(textEl, txt, isFirst) { + const addTspan = function (textEl, txt, isFirst) { const tSpan = textEl - .append("tspan") - .attr("x", conf.padding) - .text(txt); + .append('tspan') + .attr('x', conf.padding) + .text(txt) if (!isFirst) { - tSpan.attr("dy", conf.textHeight); + tSpan.attr('dy', conf.textHeight) } - }; + } - const id = "classId" + (classCnt % total); + const id = 'classId' + (classCnt % total) const classInfo = { id: id, label: classDef.id, width: 0, height: 0 - }; + } const g = elem - .append("g") - .attr("id", id) - .attr("class", "classGroup"); + .append('g') + .attr('id', id) + .attr('class', 'classGroup') const title = g - .append("text") - .attr("x", conf.padding) - .attr("y", conf.textHeight + conf.padding) - .text(classDef.id); + .append('text') + .attr('x', conf.padding) + .attr('y', conf.textHeight + conf.padding) + .text(classDef.id) - const titleHeight = title.node().getBBox().height; + const titleHeight = title.node().getBBox().height const membersLine = g - .append("line") // text label for the x axis - .attr("x1", 0) - .attr("y1", conf.padding + titleHeight + conf.dividerMargin / 2) - .attr("y2", conf.padding + titleHeight + conf.dividerMargin / 2); + .append('line') // text label for the x axis + .attr('x1', 0) + .attr('y1', conf.padding + titleHeight + conf.dividerMargin / 2) + .attr('y2', conf.padding + titleHeight + conf.dividerMargin / 2) const members = g - .append("text") // text label for the x axis - .attr("x", conf.padding) - .attr("y", titleHeight + conf.dividerMargin + conf.textHeight) - .attr("fill", "white") - .attr("class", "classText"); + .append('text') // text label for the x axis + .attr('x', conf.padding) + .attr('y', titleHeight + conf.dividerMargin + conf.textHeight) + .attr('fill', 'white') + .attr('class', 'classText') - let isFirst = true; - classDef.members.forEach(function(member) { - addTspan(members, member, isFirst); - isFirst = false; - }); + let isFirst = true + classDef.members.forEach(function (member) { + addTspan(members, member, isFirst) + isFirst = false + }) - const membersBox = members.node().getBBox(); + const membersBox = members.node().getBBox() const methodsLine = g - .append("line") // text label for the x axis - .attr("x1", 0) + .append('line') // text label for the x axis + .attr('x1', 0) .attr( - "y1", + 'y1', conf.padding + titleHeight + conf.dividerMargin + membersBox.height ) .attr( - "y2", + 'y2', conf.padding + titleHeight + conf.dividerMargin + membersBox.height - ); + ) const methods = g - .append("text") // text label for the x axis - .attr("x", conf.padding) + .append('text') // text label for the x axis + .attr('x', conf.padding) .attr( - "y", + 'y', titleHeight + 2 * conf.dividerMargin + membersBox.height + conf.textHeight ) - .attr("fill", "white") - .attr("class", "classText"); + .attr('fill', 'white') + .attr('class', 'classText') - isFirst = true; + isFirst = true - classDef.methods.forEach(function(method) { - addTspan(methods, method, isFirst); - isFirst = false; - }); + classDef.methods.forEach(function (method) { + addTspan(methods, method, isFirst) + isFirst = false + }) - const classBox = g.node().getBBox(); - g.insert("rect", ":first-child") - .attr("x", 0) - .attr("y", 0) - .attr("width", classBox.width + 2 * conf.padding) - .attr("height", classBox.height + conf.padding + 0.5 * conf.dividerMargin); + const classBox = g.node().getBBox() + g.insert('rect', ':first-child') + .attr('x', 0) + .attr('y', 0) + .attr('width', classBox.width + 2 * conf.padding) + .attr('height', classBox.height + conf.padding + 0.5 * conf.dividerMargin) - membersLine.attr("x2", classBox.width + 2 * conf.padding); - methodsLine.attr("x2", classBox.width + 2 * conf.padding); + membersLine.attr('x2', classBox.width + 2 * conf.padding) + methodsLine.attr('x2', classBox.width + 2 * conf.padding) - classInfo.width = classBox.width + 2 * conf.padding; - classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin; + classInfo.width = classBox.width + 2 * conf.padding + classInfo.height = classBox.height + conf.padding + 0.5 * conf.dividerMargin - idCache[id] = classInfo; - classCnt++; - return classInfo; -}; + idCache[id] = classInfo + classCnt++ + return classInfo +} -export const setConf = function(cnf) { - const keys = Object.keys(cnf); +export const setConf = function (cnf) { + const keys = Object.keys(cnf) - keys.forEach(function(key) { - conf[key] = cnf[key]; - }); -}; + keys.forEach(function (key) { + conf[key] = cnf[key] + }) +} /** * Draws a flowchart in the tag with id: id based on the graph definition in text. * @param text * @param id */ -export const draw = function(text, id) { - parser.yy.clear(); - parser.parse(text); +export const draw = function (text, id) { + parser.yy.clear() + parser.parse(text) - logger.info("Rendering diagram " + text); + logger.info('Rendering diagram ' + text) /// / Fetch the default direction, use TD if none was found - const diagram = d3.select(`[id="${id}"]`); - insertMarkers(diagram); + const diagram = d3.select(`[id='${id}']`) + insertMarkers(diagram) // Layout graph, Create a new directed graph const g = new graphlib.Graph({ multigraph: true - }); + }) // Set an object for the graph label g.setGraph({ isMultiGraph: true - }); + }) // Default to assigning a new object as a label for each new edge. - g.setDefaultEdgeLabel(function() { - return {}; - }); + g.setDefaultEdgeLabel(function () { + return {} + }) - const classes = classDb.getClasses(); - const keys = Object.keys(classes); - total = keys.length; + const classes = classDb.getClasses() + const keys = Object.keys(classes) + total = keys.length for (let i = 0; i < keys.length; i++) { - const classDef = classes[keys[i]]; - const node = drawClass(diagram, classDef); + const classDef = classes[keys[i]] + const node = drawClass(diagram, classDef) // Add nodes to the graph. The first argument is the node id. The second is // metadata about the node. In this case we're going to add labels to each of // our nodes. - g.setNode(node.id, node); - logger.info("Org height: " + node.height); + g.setNode(node.id, node) + logger.info('Org height: ' + node.height) } - const relations = classDb.getRelations(); - relations.forEach(function(relation) { + const relations = classDb.getRelations() + relations.forEach(function (relation) { logger.info( - "tjoho" + + 'tjoho' + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation) - ); + ) g.setEdge(getGraphId(relation.id1), getGraphId(relation.id2), { relation: relation - }); - }); - dagre.layout(g); - g.nodes().forEach(function(v) { - if (typeof v !== "undefined" && typeof g.node(v) !== "undefined") { - logger.debug("Node " + v + ": " + JSON.stringify(g.node(v))); - d3.select("#" + v).attr( - "transform", - "translate(" + + }) + }) + dagre.layout(g) + g.nodes().forEach(function (v) { + if (typeof v !== 'undefined' && typeof g.node(v) !== 'undefined') { + logger.debug('Node ' + v + ': ' + JSON.stringify(g.node(v))) + d3.select('#' + v).attr( + 'transform', + 'translate(' + (g.node(v).x - g.node(v).width / 2) + - "," + + ',' + (g.node(v).y - g.node(v).height / 2) + - " )" - ); + ' )' + ) } - }); - g.edges().forEach(function(e) { - if (typeof e !== "undefined" && typeof g.edge(e) !== "undefined") { + }) + g.edges().forEach(function (e) { + if (typeof e !== 'undefined' && typeof g.edge(e) !== 'undefined') { logger.debug( - "Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)) - ); - drawEdge(diagram, g.edge(e), g.edge(e).relation); + 'Edge ' + e.v + ' -> ' + e.w + ': ' + JSON.stringify(g.edge(e)) + ) + drawEdge(diagram, g.edge(e), g.edge(e).relation) } - }); + }) - diagram.attr("height", "100%"); - diagram.attr("width", "100%"); + diagram.attr('height', '100%') + diagram.attr('width', '100%') diagram.attr( - "viewBox", - "0 0 " + (g.graph().width + 20) + " " + (g.graph().height + 20) - ); -}; + 'viewBox', + '0 0 ' + (g.graph().width + 20) + ' ' + (g.graph().height + 20) + ) +} export default { setConf, draw -}; +} From 1e7e719dbff6cfd37070b59f4352b08d26a24117 Mon Sep 17 00:00:00 2001 From: Dan Shai Date: Fri, 14 Jun 2019 07:37:16 +0300 Subject: [PATCH 097/103] fixed class diagram 2nd pr --- src/diagrams/class/classRenderer.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/diagrams/class/classRenderer.js b/src/diagrams/class/classRenderer.js index fb74b571f..47ad21017 100644 --- a/src/diagrams/class/classRenderer.js +++ b/src/diagrams/class/classRenderer.js @@ -1,9 +1,9 @@ -import * as d3 from 'd3' -import dagre from 'dagre-layout' -import graphlib from 'graphlibrary' -import { logger } from '../../logger' -import classDb from './classDb' -import { parser } from './parser/classDiagram' +import * as d3 from 'd3'; +import dagre from 'dagre-layout'; +import graphlib from 'graphlibrary'; +import { logger } from '../../logger'; +import classDb from './classDb'; +import { parser } from './parser/classDiagram'; parser.yy = classDb @@ -150,7 +150,7 @@ const drawEdge = function (elem, path, relation) { } } - path.points = path.points.filter(p => !Number.isNaN(p)) + path.points = path.points.filter(p => !Number.isNaN(p.y)) // The data for our line const lineData = path.points From f057bd1e89a10dc3fe373e671fd69561d2afc928 Mon Sep 17 00:00:00 2001 From: Dan Shai Date: Fri, 14 Jun 2019 08:01:51 +0300 Subject: [PATCH 098/103] fixed class diagram 2nd pr --- src/diagrams/class/classRenderer.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/diagrams/class/classRenderer.js b/src/diagrams/class/classRenderer.js index 47ad21017..a64bae1be 100644 --- a/src/diagrams/class/classRenderer.js +++ b/src/diagrams/class/classRenderer.js @@ -1,9 +1,9 @@ -import * as d3 from 'd3'; -import dagre from 'dagre-layout'; -import graphlib from 'graphlibrary'; -import { logger } from '../../logger'; -import classDb from './classDb'; -import { parser } from './parser/classDiagram'; +import * as d3 from 'd3' +import dagre from 'dagre-layout' +import graphlib from 'graphlibrary' +import { logger } from '../../logger' +import classDb from './classDb' +import { parser } from './parser/classDiagram' parser.yy = classDb From 7493031d1141813559e703cb075ffd00239f1401 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sat, 15 Jun 2019 09:38:02 +0200 Subject: [PATCH 099/103] Small doc change --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f49363d9f..32f4c8113 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ sequenceDiagram loop Healthcheck John->>John: Fight against hypochondria end - Note right of John: Rational thoughts
prevail... + Note right of John: Rational thoughts
prevail! John-->>Alice: Great! John->>Bob: How about you? Bob-->>John: Jolly good! From 4cb0b9174b41ba9b12ffce35e978f94ee3b9c981 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sat, 15 Jun 2019 14:28:13 +0200 Subject: [PATCH 100/103] Added info diagram to show the version pf mermaid, buig fixes for gannt diagrams --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a3f262dbf..65ba2e4b5 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/abzicht/mermaid" + "url": "https://github.com/knsv/mermaid" }, "author": "Knut Sveidqvist", "license": "MIT", From 56676946529a36b5ce1344983ed803e5ce8f6e51 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Sat, 15 Jun 2019 14:29:26 +0200 Subject: [PATCH 101/103] info diagram to show version of mermaid, bugfixes for gantt chart --- dist/info.html | 41 ++ ...d-render-a-simple-info-diagrams-1-snap.png | Bin 0 -> 6858 bytes e2e/spec/info.spec.js | 15 + src/diagrams/gantt/ganttRenderer.js | 18 +- src/diagrams/info/info.spec.js | 15 + src/diagrams/info/infoDb.js | 36 + src/diagrams/info/infoRenderer.js | 57 ++ src/diagrams/info/parser/info.jison | 48 ++ src/diagrams/info/parser/info.js | 629 ++++++++++++++++++ src/mermaid.js | 2 +- src/mermaidAPI.js | 17 +- src/utils.js | 7 + 12 files changed, 874 insertions(+), 11 deletions(-) create mode 100644 dist/info.html create mode 100644 e2e/spec/__image_snapshots__/info-spec-js-sequencediagram-should-render-a-simple-info-diagrams-1-snap.png create mode 100644 e2e/spec/info.spec.js create mode 100644 src/diagrams/info/info.spec.js create mode 100644 src/diagrams/info/infoDb.js create mode 100644 src/diagrams/info/infoRenderer.js create mode 100644 src/diagrams/info/parser/info.jison create mode 100644 src/diagrams/info/parser/info.js diff --git a/dist/info.html b/dist/info.html new file mode 100644 index 000000000..31b678f1d --- /dev/null +++ b/dist/info.html @@ -0,0 +1,41 @@ + + + + + + Mermaid Quick Test Page + + + +
info + showInfo +
+ + + + + diff --git a/e2e/spec/__image_snapshots__/info-spec-js-sequencediagram-should-render-a-simple-info-diagrams-1-snap.png b/e2e/spec/__image_snapshots__/info-spec-js-sequencediagram-should-render-a-simple-info-diagrams-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..7c0c2a7e03a699a3887dc5f114f840bb54e29f32 GIT binary patch literal 6858 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 { + it('should render a simple info diagrams', async () => { + await imgSnapshotTest(page, ` + info + showInfo + `, + {}) + }) +}) diff --git a/src/diagrams/gantt/ganttRenderer.js b/src/diagrams/gantt/ganttRenderer.js index 43ab8790e..85c001bfd 100644 --- a/src/diagrams/gantt/ganttRenderer.js +++ b/src/diagrams/gantt/ganttRenderer.js @@ -165,24 +165,22 @@ export const draw = function (text, id) { } } - let taskClass = classStr + let taskClass = '' if (d.active) { if (d.crit) { taskClass += ' activeCrit' } else { - taskClass = 'active' + taskClass = ' active' } } else if (d.done) { if (d.crit) { taskClass = ' doneCrit' } else { - taskClass = 'done' + taskClass = ' done' } - } - - if (d.crit) { - if (taskClass.length > 0) { - taskClass += 'crit' + } else { + if (d.crit) { + taskClass += ' crit' } } @@ -191,11 +189,13 @@ export const draw = function (text, id) { } if (d.milestone) { - taskClass = ' milestone' + taskClass + taskClass = ' milestone ' + taskClass } taskClass += secNum + taskClass += ' ' + classStr + return res + taskClass }) diff --git a/src/diagrams/info/info.spec.js b/src/diagrams/info/info.spec.js new file mode 100644 index 000000000..5b7c50577 --- /dev/null +++ b/src/diagrams/info/info.spec.js @@ -0,0 +1,15 @@ +/* eslint-env jasmine */ +describe('when parsing an info graph it', function () { + var ex + beforeEach(function () { + ex = require('./parser/info').parser + ex.yy = require('./infoDb') + }) + + it('should handle an info definition', function () { + var str = `info + showInfo` + + ex.parse(str) + }) +}) diff --git a/src/diagrams/info/infoDb.js b/src/diagrams/info/infoDb.js new file mode 100644 index 000000000..cd79b024c --- /dev/null +++ b/src/diagrams/info/infoDb.js @@ -0,0 +1,36 @@ +/** + * Created by knut on 15-01-14. + */ +import { logger } from '../../logger' + +var message = '' +var info = false + +export const setMessage = txt => { + logger.debug('Setting message to: ' + txt) + message = txt +} + +export const getMessage = () => { + return message +} + +export const setInfo = inf => { + info = inf +} + +export const getInfo = () => { + return info +} + +// export const parseError = (err, hash) => { +// global.mermaidAPI.parseError(err, hash) +// } + +export default { + setMessage, + getMessage, + setInfo, + getInfo + // parseError +} diff --git a/src/diagrams/info/infoRenderer.js b/src/diagrams/info/infoRenderer.js new file mode 100644 index 000000000..e142a1c38 --- /dev/null +++ b/src/diagrams/info/infoRenderer.js @@ -0,0 +1,57 @@ +/** + * Created by knut on 14-12-11. + */ +import * as d3 from 'd3' +import db from './infoDb' +import infoParser from './parser/info.js' +import { logger } from '../../logger' + +const conf = { +} +export const setConf = function (cnf) { + const keys = Object.keys(cnf) + + keys.forEach(function (key) { + conf[key] = cnf[key] + }) +} + +/** + * Draws a an info picture in the tag with id: id based on the graph definition in text. + * @param text + * @param id + */ +export const draw = (txt, id, ver) => { + try { + const parser = infoParser.parser + parser.yy = db + logger.debug('Renering info diagram\n' + txt) + // Parse the graph definition + parser.parse(txt) + logger.debug('Parsed info diagram') + // Fetch the default direction, use TD if none was found + const svg = d3.select('#' + id) + + const g = svg.append('g') + + g.append('text') // text label for the x axis + .attr('x', 100) + .attr('y', 40) + .attr('class', 'version') + .attr('font-size', '32px') + .style('text-anchor', 'middle') + .text('v ' + ver) + + svg.attr('height', 100) + svg.attr('width', 400) + // svg.attr('viewBox', '0 0 300 150'); + } catch (e) { + logger.error('Error while rendering info diagram') + logger.error(e.message) + } +} + +export default { + setConf, + draw +} diff --git a/src/diagrams/info/parser/info.jison b/src/diagrams/info/parser/info.jison new file mode 100644 index 000000000..10a74e9c7 --- /dev/null +++ b/src/diagrams/info/parser/info.jison @@ -0,0 +1,48 @@ +/** mermaid + * http://knsv.github.io/mermaid/ + * (c) 2015 Knut Sveidqvist + * MIT license. + */ +%lex + +%options case-insensitive + +%{ + // Pre-lexer code can go here +%} + +%% + +"info" return 'info' ; +[\s\n\r]+ return 'NL' ; +[\s]+ return 'space'; +"showInfo" return 'showInfo'; +<> return 'EOF' ; +. return 'TXT' ; + +/lex + +%start start + +%% /* language grammar */ + +start +// %{ : info document 'EOF' { return yy; } } + : info document 'EOF' { return yy; } + ; + +document + : /* empty */ + | document line + ; + +line + : statement { } + | 'NL' + ; + +statement + : showInfo { yy.setInfo(true); } + ; + +%% \ No newline at end of file diff --git a/src/diagrams/info/parser/info.js b/src/diagrams/info/parser/info.js new file mode 100644 index 000000000..b4a07954d --- /dev/null +++ b/src/diagrams/info/parser/info.js @@ -0,0 +1,629 @@ +/* parser generated by jison 0.4.18 */ +/* + Returns a Parser object of the following structure: + + Parser: { + yy: {} + } + + Parser.prototype: { + yy: {}, + trace: function(), + symbols_: {associative list: name ==> number}, + terminals_: {associative list: number ==> name}, + productions_: [...], + performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), + table: [...], + defaultActions: {...}, + parseError: function(str, hash), + parse: function(input), + + lexer: { + EOF: 1, + parseError: function(str, hash), + setInput: function(input), + input: function(), + unput: function(str), + more: function(), + less: function(n), + pastInput: function(), + upcomingInput: function(), + showPosition: function(), + test_match: function(regex_match_array, rule_index), + next: function(), + lex: function(), + begin: function(condition), + popState: function(), + _currentRules: function(), + topState: function(), + pushState: function(condition), + + options: { + ranges: boolean (optional: true ==> token location info will include a .range[] member) + flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) + backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) + }, + + performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), + rules: [...], + conditions: {associative list: name ==> set}, + } + } + + + token location info (@$, _$, etc.): { + first_line: n, + last_line: n, + first_column: n, + last_column: n, + range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) + } + + + the parseError function receives a 'hash' object with these members for lexer and parser errors: { + text: (matched text) + token: (the produced terminal token, if any) + line: (yylineno) + } + while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { + loc: (yylloc) + expected: (string describing the set of expected tokens) + recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) + } +*/ +var parser = (function(){ +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[6,9,10,12]; +var parser = {trace: function trace () { }, +yy: {}, +symbols_: {"error":2,"start":3,"info":4,"document":5,"EOF":6,"line":7,"statement":8,"NL":9,"showInfo":10,"message":11,"say":12,"TXT":13,"$accept":0,"$end":1}, +terminals_: {2:"error",4:"info",6:"EOF",9:"NL",10:"showInfo",12:"say",13:"TXT"}, +productions_: [0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1],[8,1],[11,2]], +performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { +/* this == yyval */ + +var $0 = $$.length - 1; +switch (yystate) { +case 1: + return yy; +break; +case 4: + +break; +case 6: + yy.setInfo(true); +break; +case 7: + yy.setMessage($$[$0]); +break; +case 8: + this.$ = $$[$0-1].substring(1).trim().replace(/\\n/gm, "\n"); +break; +} +}, +table: [{3:1,4:[1,2]},{1:[3]},o($V0,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8],11:9,12:[1,10]},{1:[2,1]},o($V0,[2,3]),o($V0,[2,4]),o($V0,[2,5]),o($V0,[2,6]),o($V0,[2,7]),{13:[1,11]},o($V0,[2,8])], +defaultActions: {4:[2,1]}, +parseError: function parseError (str, hash) { + if (hash.recoverable) { + this.trace(str); + } else { + var error = new Error(str); + error.hash = hash; + throw error; + } +}, +parse: function parse(input) { + var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; + var args = lstack.slice.call(arguments, 1); + var lexer = Object.create(this.lexer); + var sharedState = { yy: {} }; + for (var k in this.yy) { + if (Object.prototype.hasOwnProperty.call(this.yy, k)) { + sharedState.yy[k] = this.yy[k]; + } + } + lexer.setInput(input, sharedState.yy); + sharedState.yy.lexer = lexer; + sharedState.yy.parser = this; + if (typeof lexer.yylloc == 'undefined') { + lexer.yylloc = {}; + } + var yyloc = lexer.yylloc; + lstack.push(yyloc); + var ranges = lexer.options && lexer.options.ranges; + if (typeof sharedState.yy.parseError === 'function') { + this.parseError = sharedState.yy.parseError; + } else { + this.parseError = Object.getPrototypeOf(this).parseError; + } + function popStack(n) { + stack.length = stack.length - 2 * n; + vstack.length = vstack.length - n; + lstack.length = lstack.length - n; + } + function lex() { + var token; + token = tstack.pop() || lexer.lex() || EOF; + if (typeof token !== 'number') { + if (token instanceof Array) { + tstack = token; + token = tstack.pop(); + } + token = self.symbols_[token] || token; + } + return token; + } + var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; + while (true) { + state = stack[stack.length - 1]; + if (this.defaultActions[state]) { + action = this.defaultActions[state]; + } else { + if (symbol === null || typeof symbol == 'undefined') { + symbol = lex(); + } + action = table[state] && table[state][symbol]; + } + if (typeof action === 'undefined' || !action.length || !action[0]) { + var errStr = ''; + expected = []; + for (p in table[state]) { + if (this.terminals_[p] && p > TERROR) { + expected.push('\'' + this.terminals_[p] + '\''); + } + } + if (lexer.showPosition) { + errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; + } else { + errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); + } + this.parseError(errStr, { + text: lexer.match, + token: this.terminals_[symbol] || symbol, + line: lexer.yylineno, + loc: yyloc, + expected: expected + }); + } + if (action[0] instanceof Array && action.length > 1) { + throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); + } + switch (action[0]) { + case 1: + stack.push(symbol); + vstack.push(lexer.yytext); + lstack.push(lexer.yylloc); + stack.push(action[1]); + symbol = null; + if (!preErrorSymbol) { + yyleng = lexer.yyleng; + yytext = lexer.yytext; + yylineno = lexer.yylineno; + yyloc = lexer.yylloc; + if (recovering > 0) { + recovering--; + } + } else { + symbol = preErrorSymbol; + preErrorSymbol = null; + } + break; + case 2: + len = this.productions_[action[1]][1]; + yyval.$ = vstack[vstack.length - len]; + yyval._$ = { + first_line: lstack[lstack.length - (len || 1)].first_line, + last_line: lstack[lstack.length - 1].last_line, + first_column: lstack[lstack.length - (len || 1)].first_column, + last_column: lstack[lstack.length - 1].last_column + }; + if (ranges) { + yyval._$.range = [ + lstack[lstack.length - (len || 1)].range[0], + lstack[lstack.length - 1].range[1] + ]; + } + r = this.performAction.apply(yyval, [ + yytext, + yyleng, + yylineno, + sharedState.yy, + action[1], + vstack, + lstack + ].concat(args)); + if (typeof r !== 'undefined') { + return r; + } + if (len) { + stack = stack.slice(0, -1 * len * 2); + vstack = vstack.slice(0, -1 * len); + lstack = lstack.slice(0, -1 * len); + } + stack.push(this.productions_[action[1]][0]); + vstack.push(yyval.$); + lstack.push(yyval._$); + newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; + stack.push(newState); + break; + case 3: + return true; + } + } + return true; +}}; +/* generated by jison-lex 0.3.4 */ +var lexer = (function(){ +var lexer = ({ + +EOF:1, + +parseError:function parseError(str, hash) { + if (this.yy.parser) { + this.yy.parser.parseError(str, hash); + } else { + throw new Error(str); + } + }, + +// resets the lexer, sets new input +setInput:function (input, yy) { + this.yy = yy || this.yy || {}; + this._input = input; + this._more = this._backtrack = this.done = false; + this.yylineno = this.yyleng = 0; + this.yytext = this.matched = this.match = ''; + this.conditionStack = ['INITIAL']; + this.yylloc = { + first_line: 1, + first_column: 0, + last_line: 1, + last_column: 0 + }; + if (this.options.ranges) { + this.yylloc.range = [0,0]; + } + this.offset = 0; + return this; + }, + +// consumes and returns one char from the input +input:function () { + var ch = this._input[0]; + this.yytext += ch; + this.yyleng++; + this.offset++; + this.match += ch; + this.matched += ch; + var lines = ch.match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno++; + this.yylloc.last_line++; + } else { + this.yylloc.last_column++; + } + if (this.options.ranges) { + this.yylloc.range[1]++; + } + + this._input = this._input.slice(1); + return ch; + }, + +// unshifts one char (or a string) into the input +unput:function (ch) { + var len = ch.length; + var lines = ch.split(/(?:\r\n?|\n)/g); + + this._input = ch + this._input; + this.yytext = this.yytext.substr(0, this.yytext.length - len); + //this.yyleng -= len; + this.offset -= len; + var oldLines = this.match.split(/(?:\r\n?|\n)/g); + this.match = this.match.substr(0, this.match.length - 1); + this.matched = this.matched.substr(0, this.matched.length - 1); + + if (lines.length - 1) { + this.yylineno -= lines.length - 1; + } + var r = this.yylloc.range; + + this.yylloc = { + first_line: this.yylloc.first_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.first_column, + last_column: lines ? + (lines.length === oldLines.length ? this.yylloc.first_column : 0) + + oldLines[oldLines.length - lines.length].length - lines[0].length : + this.yylloc.first_column - len + }; + + if (this.options.ranges) { + this.yylloc.range = [r[0], r[0] + this.yyleng - len]; + } + this.yyleng = this.yytext.length; + return this; + }, + +// When called from action, caches matched text and appends it on next action +more:function () { + this._more = true; + return this; + }, + +// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead. +reject:function () { + if (this.options.backtrack_lexer) { + this._backtrack = true; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + + } + return this; + }, + +// retain first n characters of the match +less:function (n) { + this.unput(this.match.slice(n)); + }, + +// displays already matched input, i.e. for error messages +pastInput:function () { + var past = this.matched.substr(0, this.matched.length - this.match.length); + return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); + }, + +// displays upcoming input, i.e. for error messages +upcomingInput:function () { + var next = this.match; + if (next.length < 20) { + next += this._input.substr(0, 20-next.length); + } + return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, ""); + }, + +// displays the character position where the lexing error occurred, i.e. for error messages +showPosition:function () { + var pre = this.pastInput(); + var c = new Array(pre.length + 1).join("-"); + return pre + this.upcomingInput() + "\n" + c + "^"; + }, + +// test the lexed token: return FALSE when not a match, otherwise return token +test_match:function(match, indexed_rule) { + var token, + lines, + backup; + + if (this.options.backtrack_lexer) { + // save context + backup = { + yylineno: this.yylineno, + yylloc: { + first_line: this.yylloc.first_line, + last_line: this.last_line, + first_column: this.yylloc.first_column, + last_column: this.yylloc.last_column + }, + yytext: this.yytext, + match: this.match, + matches: this.matches, + matched: this.matched, + yyleng: this.yyleng, + offset: this.offset, + _more: this._more, + _input: this._input, + yy: this.yy, + conditionStack: this.conditionStack.slice(0), + done: this.done + }; + if (this.options.ranges) { + backup.yylloc.range = this.yylloc.range.slice(0); + } + } + + lines = match[0].match(/(?:\r\n?|\n).*/g); + if (lines) { + this.yylineno += lines.length; + } + this.yylloc = { + first_line: this.yylloc.last_line, + last_line: this.yylineno + 1, + first_column: this.yylloc.last_column, + last_column: lines ? + lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : + this.yylloc.last_column + match[0].length + }; + this.yytext += match[0]; + this.match += match[0]; + this.matches = match; + this.yyleng = this.yytext.length; + if (this.options.ranges) { + this.yylloc.range = [this.offset, this.offset += this.yyleng]; + } + this._more = false; + this._backtrack = false; + this._input = this._input.slice(match[0].length); + this.matched += match[0]; + token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]); + if (this.done && this._input) { + this.done = false; + } + if (token) { + return token; + } else if (this._backtrack) { + // recover context + for (var k in backup) { + this[k] = backup[k]; + } + return false; // rule action called reject() implying the next rule should be tested instead. + } + return false; + }, + +// return next match in input +next:function () { + if (this.done) { + return this.EOF; + } + if (!this._input) { + this.done = true; + } + + var token, + match, + tempMatch, + index; + if (!this._more) { + this.yytext = ''; + this.match = ''; + } + var rules = this._currentRules(); + for (var i = 0; i < rules.length; i++) { + tempMatch = this._input.match(this.rules[rules[i]]); + if (tempMatch && (!match || tempMatch[0].length > match[0].length)) { + match = tempMatch; + index = i; + if (this.options.backtrack_lexer) { + token = this.test_match(tempMatch, rules[i]); + if (token !== false) { + return token; + } else if (this._backtrack) { + match = false; + continue; // rule action called reject() implying a rule MISmatch. + } else { + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + } else if (!this.options.flex) { + break; + } + } + } + if (match) { + token = this.test_match(match, rules[index]); + if (token !== false) { + return token; + } + // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace) + return false; + } + if (this._input === "") { + return this.EOF; + } else { + return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { + text: "", + token: null, + line: this.yylineno + }); + } + }, + +// return next match that has a token +lex:function lex () { + var r = this.next(); + if (r) { + return r; + } else { + return this.lex(); + } + }, + +// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack) +begin:function begin (condition) { + this.conditionStack.push(condition); + }, + +// pop the previously active lexer condition state off the condition stack +popState:function popState () { + var n = this.conditionStack.length - 1; + if (n > 0) { + return this.conditionStack.pop(); + } else { + return this.conditionStack[0]; + } + }, + +// produce the lexer rule set which is active for the currently active lexer condition state +_currentRules:function _currentRules () { + if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) { + return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules; + } else { + return this.conditions["INITIAL"].rules; + } + }, + +// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available +topState:function topState (n) { + n = this.conditionStack.length - 1 - Math.abs(n || 0); + if (n >= 0) { + return this.conditionStack[n]; + } else { + return "INITIAL"; + } + }, + +// alias for begin(condition) +pushState:function pushState (condition) { + this.begin(condition); + }, + +// return the number of states currently on the stack +stateStackSize:function stateStackSize() { + return this.conditionStack.length; + }, +options: {"case-insensitive":true}, +performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { + // Pre-lexer code can go here + +var YYSTATE=YY_START; +switch($avoiding_name_collisions) { +case 0:return 4 ; +break; +case 1:return 9 ; +break; +case 2:return 'space' +break; +case 3:return 10; +break; +case 4:return 12 ; +break; +case 5:return 6 ; +break; +case 6:return 13 ; +break; +} +}, +rules: [/^(?:info\b)/i,/^(?:[\s\n\r]+)/i,/^(?:[\s]+)/i,/^(?:showInfo\b)/i,/^(?:say\b)/i,/^(?:$)/i,/^(?:.)/i], +conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6],"inclusive":true}} +}); +return lexer; +})(); +parser.lexer = lexer; +function Parser () { + this.yy = {}; +} +Parser.prototype = parser;parser.Parser = Parser; +return new Parser; +})(); + + +if (typeof require !== 'undefined' && typeof exports !== 'undefined') { +exports.parser = parser; +exports.Parser = parser.Parser; +exports.parse = function () { return parser.parse.apply(parser, arguments); }; +exports.main = function commonjsMain (args) { + if (!args[1]) { + console.log('Usage: '+args[0]+' FILE'); + process.exit(1); + } + var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); + return exports.parser.parse(source); +}; +if (typeof module !== 'undefined' && require.main === module) { + exports.main(process.argv.slice(1)); +} +} \ No newline at end of file diff --git a/src/mermaid.js b/src/mermaid.js index a8f05ffea..183c11a1b 100644 --- a/src/mermaid.js +++ b/src/mermaid.js @@ -104,7 +104,7 @@ const init = function () { } const initialize = function (config) { - logger.debug('Initializing mermaid') + logger.debug('Initializing mermaid ') if (typeof config.mermaid !== 'undefined') { if (typeof config.mermaid.startOnLoad !== 'undefined') { mermaid.startOnLoad = config.mermaid.startOnLoad diff --git a/src/mermaidAPI.js b/src/mermaidAPI.js index 948ef1889..0a11268a0 100644 --- a/src/mermaidAPI.js +++ b/src/mermaidAPI.js @@ -13,6 +13,7 @@ */ import * as d3 from 'd3' import scope from 'scope-css' +import pkg from '../package.json' import { logger, setLogLevel } from './logger' import utils from './utils' @@ -31,6 +32,9 @@ import classDb from './diagrams/class/classDb' import gitGraphRenderer from './diagrams/git/gitGraphRenderer' import gitGraphParser from './diagrams/git/parser/gitGraph' import gitGraphAst from './diagrams/git/gitGraphAst' +import infoRenderer from './diagrams/info/infoRenderer' +import infoParser from './diagrams/info/parser/info' +import infoDb from './diagrams/info/infoDb' const themes = {} for (const themeName of ['default', 'forest', 'dark', 'neutral']) { @@ -236,6 +240,7 @@ function parse (text) { const graphType = utils.detectType(text) let parser + logger.debug('Type ' + graphType) switch (graphType) { case 'git': parser = gitGraphParser @@ -257,6 +262,11 @@ function parse (text) { parser = classParser parser.parser.yy = classDb break + case 'info': + logger.debug('info info info') + parser = infoParser + parser.parser.yy = infoDb + break } parser.parser.yy.parseError = (str, hash) => { @@ -429,6 +439,11 @@ const render = function (id, txt, cb, container) { classRenderer.setConf(config.class) classRenderer.draw(txt, id) break + case 'info': + config.class.arrowMarkerAbsolute = config.arrowMarkerAbsolute + infoRenderer.setConf(config.class) + infoRenderer.draw(txt, id, pkg.version) + break } d3.select(`[id="${id}"]`).selectAll('foreignobject > *').attr('xmlns', 'http://www.w3.org/1999/xhtml') @@ -482,7 +497,7 @@ const setConf = function (cnf) { } function initialize (options) { - logger.debug('Initializing mermaidAPI') + logger.debug('Initializing mermaidAPI ', pkg.version) // Update default config with options supplied at initialization if (typeof options === 'object') { setConf(options) diff --git a/src/utils.js b/src/utils.js index a18bed14a..3195621ac 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,4 +1,5 @@ import * as d3 from 'd3' +import { logger } from './logger' /** * @function detectType @@ -19,6 +20,7 @@ import * as d3 from 'd3' */ export const detectType = function (text) { text = text.replace(/^\s*%%.*\n/g, '\n') + logger.debug('Detecting diagram type based on the text ' + text) if (text.match(/^\s*sequenceDiagram/)) { return 'sequence' } @@ -34,6 +36,11 @@ export const detectType = function (text) { if (text.match(/^\s*gitGraph/)) { return 'git' } + + if (text.match(/^\s*info/)) { + return 'info' + } + return 'flowchart' } From bba6bb6255fd68e3630179344be5a29327fcb5cd Mon Sep 17 00:00:00 2001 From: Arthaey Date: Sun, 23 Jun 2019 19:56:50 -0700 Subject: [PATCH 102/103] Remove console.log in classDB. --- src/diagrams/class/classDb.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/diagrams/class/classDb.js b/src/diagrams/class/classDb.js index b2a9ed30b..227d95875 100644 --- a/src/diagrams/class/classDb.js +++ b/src/diagrams/class/classDb.js @@ -56,7 +56,6 @@ export const addMember = function (className, member) { } export const addMembers = function (className, MembersArr) { - console.log(className, MembersArr) if (Array.isArray(MembersArr)) { MembersArr.forEach(member => addMember(className, member)) } From 95967151ae61be7db104564dbf29db81a4415f11 Mon Sep 17 00:00:00 2001 From: Knut Sveidqvist Date: Tue, 25 Jun 2019 10:24:57 +0200 Subject: [PATCH 103/103] Release 8.1.0 --- .gitignore | 1 + package.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f2c5e7699..c9b735b11 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ dist/*.js dist/*.map yarn-error.log +.npmrc \ No newline at end of file diff --git a/package.json b/package.json index 65ba2e4b5..faf488ab2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mermaid", - "version": "8.0.0-rc.8", + "version": "8.1.0", "description": "Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.", "main": "dist/mermaid.core.js", "keywords": [