From e7e0bf1ae6aa4af97123c664ceccad500307db26 Mon Sep 17 00:00:00 2001 From: Muhammad Nadeem Date: Mon, 4 Sep 2023 04:34:57 +0500 Subject: [PATCH] Created BarChartCustomVisual with custom formatting --- .github/workflows/build.yml | 31 - .github/workflows/codeql-analysis.yml | 67 - .gitignore | 7 - .tmp/build/.tmp/precompile/visualPlugin.d.ts | 4 + .tmp/build/src/barChart.d.ts | 71 + .../src/localization/localizationHelper.d.ts | 60 + .../src/localization/localizedResources.d.ts | 2 + .tmp/build/src/objectEnumerationUtility.d.ts | 25 + .tmp/drop/pbiviz.json | 1 + .tmp/drop/status | 2 + .tmp/drop/visual.css | 43 + .tmp/drop/visual.css.map | 1 + .tmp/drop/visual.js | 1 + .tmp/drop/visual.js.map | 1 + .tmp/precompile/visualPlugin.ts | 32 + .travis.yml | 16 - README.md | 40 +- SECURITY.md | 41 - Tutorial/ColorPalette.md | 41 - Tutorial/ConditionalFormatting.md | 44 - Tutorial/DataBinding.md | 82 - Tutorial/DataBoundObjects.md | 142 - Tutorial/ExtensibilityUtils.md | 50 - Tutorial/ExternalLibraries.md | 43 - Tutorial/HighContrastSupport.md | 133 - Tutorial/LaunchURL.md | 78 - Tutorial/Locale.md | 70 - Tutorial/ReportPageTooltips.md | 44 - Tutorial/Selection.md | 78 - Tutorial/StaticObjects.md | 159 - Tutorial/StaticVisual.md | 65 - Tutorial/Typings.md | 36 - Tutorial/images/AddTypings.png | Bin 41635 -> 0 bytes Tutorial/images/ApplyReportPageTooltip.png | Bin 16323 -> 0 bytes Tutorial/images/CondFormatSupport.png | Bin 105297 -> 0 bytes .../images/ConditionalFormattingEntry.png | Bin 21104 -> 0 bytes Tutorial/images/DataBinding.png | Bin 9971 -> 0 bytes Tutorial/images/ExternalLibraries.png | Bin 21492 -> 0 bytes Tutorial/images/HC_sampleBarChart_dark2.png | Bin 3043 -> 0 bytes .../images/HC_sampleBarChart_standard.png | Bin 3141 -> 0 bytes Tutorial/images/HC_sampleBarChart_white.png | Bin 3231 -> 0 bytes Tutorial/images/InstallTypings.png | Bin 28048 -> 0 bytes Tutorial/images/LocaleInSampleBarChart.png | Bin 21348 -> 0 bytes Tutorial/images/MakeExternalsDirectory.png | Bin 8040 -> 0 bytes Tutorial/images/ObjectDataBoundProperty.png | Bin 8635 -> 0 bytes Tutorial/images/ObjectShowProperty.png | Bin 5348 -> 0 bytes Tutorial/images/PropertyPane.png | Bin 12396 -> 0 bytes Tutorial/images/ReportPageTooltip.png | Bin 3456 -> 0 bytes Tutorial/images/SampleBarChart.png | Bin 8759 -> 0 bytes Tutorial/images/UsingTypings.png | Bin 78087 -> 0 bytes Tutorial/images/launchURLtoggle.png | Bin 5652 -> 0 bytes azure-pipelines.yml | 33 - capabilities.json | 57 +- ...2_1DFF_4A96_ABFE_BF8588197166.3.2.0.pbiviz | Bin 0 -> 29557 bytes dist/package.json | 17 + package-lock.json | 10797 +++++++++++----- pbiviz.json | 8 +- src/barChart.ts | 250 +- webpack.statistics.dev.html | 39 + webpack.statistics.prod.html | 39 + 60 files changed, 7619 insertions(+), 5131 deletions(-) delete mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 .tmp/build/.tmp/precompile/visualPlugin.d.ts create mode 100644 .tmp/build/src/barChart.d.ts create mode 100644 .tmp/build/src/localization/localizationHelper.d.ts create mode 100644 .tmp/build/src/localization/localizedResources.d.ts create mode 100644 .tmp/build/src/objectEnumerationUtility.d.ts create mode 100644 .tmp/drop/pbiviz.json create mode 100644 .tmp/drop/status create mode 100644 .tmp/drop/visual.css create mode 100644 .tmp/drop/visual.css.map create mode 100644 .tmp/drop/visual.js create mode 100644 .tmp/drop/visual.js.map create mode 100644 .tmp/precompile/visualPlugin.ts delete mode 100644 .travis.yml delete mode 100644 SECURITY.md delete mode 100644 Tutorial/ColorPalette.md delete mode 100644 Tutorial/ConditionalFormatting.md delete mode 100644 Tutorial/DataBinding.md delete mode 100644 Tutorial/DataBoundObjects.md delete mode 100644 Tutorial/ExtensibilityUtils.md delete mode 100644 Tutorial/ExternalLibraries.md delete mode 100644 Tutorial/HighContrastSupport.md delete mode 100644 Tutorial/LaunchURL.md delete mode 100644 Tutorial/Locale.md delete mode 100644 Tutorial/ReportPageTooltips.md delete mode 100644 Tutorial/Selection.md delete mode 100644 Tutorial/StaticObjects.md delete mode 100644 Tutorial/StaticVisual.md delete mode 100644 Tutorial/Typings.md delete mode 100644 Tutorial/images/AddTypings.png delete mode 100644 Tutorial/images/ApplyReportPageTooltip.png delete mode 100644 Tutorial/images/CondFormatSupport.png delete mode 100644 Tutorial/images/ConditionalFormattingEntry.png delete mode 100644 Tutorial/images/DataBinding.png delete mode 100644 Tutorial/images/ExternalLibraries.png delete mode 100644 Tutorial/images/HC_sampleBarChart_dark2.png delete mode 100644 Tutorial/images/HC_sampleBarChart_standard.png delete mode 100644 Tutorial/images/HC_sampleBarChart_white.png delete mode 100644 Tutorial/images/InstallTypings.png delete mode 100644 Tutorial/images/LocaleInSampleBarChart.png delete mode 100644 Tutorial/images/MakeExternalsDirectory.png delete mode 100644 Tutorial/images/ObjectDataBoundProperty.png delete mode 100644 Tutorial/images/ObjectShowProperty.png delete mode 100644 Tutorial/images/PropertyPane.png delete mode 100644 Tutorial/images/ReportPageTooltip.png delete mode 100644 Tutorial/images/SampleBarChart.png delete mode 100644 Tutorial/images/UsingTypings.png delete mode 100644 Tutorial/images/launchURLtoggle.png delete mode 100644 azure-pipelines.yml create mode 100644 dist/PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166.3.2.0.pbiviz create mode 100644 dist/package.json create mode 100644 webpack.statistics.dev.html create mode 100644 webpack.statistics.prod.html diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 7667f13..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,31 +0,0 @@ -# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: build - -on: - push: - branches: [ main ] - pull_request: - branches: [ main ] - -jobs: - build: - - runs-on: ubuntu-latest - - strategy: - matrix: - node-version: [14.x] - - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - run: npm ci - - run: npm run lint - - run: npm test - env: - CI: true diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index 97fee86..0000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,67 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ main ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ main ] - schedule: - - cron: '20 13 * * 2' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - - strategy: - fail-fast: false - matrix: - language: [ 'javascript' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ] - # Learn more: - # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.gitignore b/.gitignore index d20a533..3c3629e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1 @@ -typings node_modules -.DS_Store -.tmp -dist -.api - -webpack.statistics.*.html \ No newline at end of file diff --git a/.tmp/build/.tmp/precompile/visualPlugin.d.ts b/.tmp/build/.tmp/precompile/visualPlugin.d.ts new file mode 100644 index 0000000..75a5bc0 --- /dev/null +++ b/.tmp/build/.tmp/precompile/visualPlugin.d.ts @@ -0,0 +1,4 @@ +import powerbiVisualsApi from "powerbi-visuals-api"; +import IVisualPlugin = powerbiVisualsApi.visuals.plugins.IVisualPlugin; +declare var PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166: IVisualPlugin; +export default PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166; diff --git a/.tmp/build/src/barChart.d.ts b/.tmp/build/src/barChart.d.ts new file mode 100644 index 0000000..bbc8922 --- /dev/null +++ b/.tmp/build/src/barChart.d.ts @@ -0,0 +1,71 @@ +import "./../style/visual.less"; +import powerbiVisualsApi from "powerbi-visuals-api"; +import "regenerator-runtime/runtime"; +import powerbi = powerbiVisualsApi; +import EnumerateVisualObjectInstancesOptions = powerbi.EnumerateVisualObjectInstancesOptions; +import IVisual = powerbi.extensibility.IVisual; +import VisualObjectInstanceEnumeration = powerbi.VisualObjectInstanceEnumeration; +import VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions; +import VisualConstructorOptions = powerbi.extensibility.visual.VisualConstructorOptions; +export declare class BarChart implements IVisual { + private svg; + private host; + private selectionManager; + private barContainer; + private xAxis; + private barDataPoints; + private barChartSettings; + private tooltipServiceWrapper; + private locale; + private element; + private barSelection; + static Config: { + xScalePadding: number; + width: number; + transparentOpacity: number; + margins: { + top: number; + right: number; + bottom: number; + left: number; + }; + xAxisFontMultiplier: number; + }; + /** + * Creates instance of BarChart. This method is only called once. + * + * @constructor + * @param {VisualConstructorOptions} options - Contains references to the element that will + * contain the visual and a reference to the host + * which contains services. + */ + constructor(options: VisualConstructorOptions); + /** + * Updates the state of the visual. Every sequential databinding and resize will call update. + * + * @function + * @param {VisualUpdateOptions} options - Contains references to the size of the container + * and the dataView which contains all the data + * the visual had queried. + */ + update(options: VisualUpdateOptions): void; + private static wordBreak; + private handleClick; + private handleContextMenu; + private syncSelectionState; + /** + * Enumerates through the objects defined in the capabilities and adds the properties to the format pane + * + * @function + * @param {EnumerateVisualObjectInstancesOptions} options - Map of defined objects + */ + enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration; + /** + * Destroy runs when the visual is removed. Any cleanup that the visual needs to + * do should be done here. + * + * @function + */ + destroy(): void; + private getTooltipData; +} diff --git a/.tmp/build/src/localization/localizationHelper.d.ts b/.tmp/build/src/localization/localizationHelper.d.ts new file mode 100644 index 0000000..24788ba --- /dev/null +++ b/.tmp/build/src/localization/localizationHelper.d.ts @@ -0,0 +1,60 @@ +export interface Localization { + "ar-SA": string; + "bg-BG": string; + "ca-ES": string; + "cs-CZ": string; + "da-DK": string; + "de-DE": string; + "el-GR": string; + "en-US": string; + "es-ES": string; + "et-EE": string; + "eU-ES": string; + "fi-FI": string; + "fr-FR": string; + "gl-ES": string; + "he-IL": string; + "hi-IN": string; + "hr-HR": string; + "hu-HU": string; + "id-ID": string; + "it-IT": string; + "ja-JP": string; + "kk-KZ": string; + "ko-KR": string; + "it-LT": string; + "lv-LV": string; + "ms-MY": string; + "nb-NO": string; + "nl-NL": string; + "pl-PL": string; + "pt-BR": string; + "pt-PT": string; + "ro-RO": string; + "ru-RU": string; + "sk-SK": string; + "sl-SI": string; + "sr-Cyrl-RS": string; + "sr-Latn-RS": string; + "sv-SE": string; + "th-TH": string; + "tr-TR": string; + "uk-UA": string; + "vi-VN": string; + "zh-CN": string; + "zh-TW": string; +} +export interface LocalizaionResources { + defaultValue: string; + localization: Localization; +} +export interface Resources { + [key: string]: LocalizaionResources; +} +/** + * Returns the localized string in the locale transfared using the key that was given to serch the resources + * + * @param {string} locale - the locale in which PowerBI is currently running + * @param {object} key - specify a key for the string you want localized in your visual + */ +export declare function getLocalizedString(locale: string, key: string): string; diff --git a/.tmp/build/src/localization/localizedResources.d.ts b/.tmp/build/src/localization/localizedResources.d.ts new file mode 100644 index 0000000..a272788 --- /dev/null +++ b/.tmp/build/src/localization/localizedResources.d.ts @@ -0,0 +1,2 @@ +import { Resources } from "./localizationHelper"; +export declare let localizedResources: Resources; diff --git a/.tmp/build/src/objectEnumerationUtility.d.ts b/.tmp/build/src/objectEnumerationUtility.d.ts new file mode 100644 index 0000000..7d457fd --- /dev/null +++ b/.tmp/build/src/objectEnumerationUtility.d.ts @@ -0,0 +1,25 @@ +import powerbiVisualsApi from "powerbi-visuals-api"; +import powerbi = powerbiVisualsApi; +import DataViewObjects = powerbi.DataViewObjects; +import DataViewCategoryColumn = powerbi.DataViewCategoryColumn; +/** + * Gets property value for a particular object. + * + * @function + * @param {DataViewObjects} objects - Map of defined objects. + * @param {string} objectName - Name of desired object. + * @param {string} propertyName - Name of desired property. + * @param {T} defaultValue - Default value of desired property. + */ +export declare function getValue(objects: DataViewObjects, objectName: string, propertyName: string, defaultValue: T): T; +/** + * Gets property value for a particular object in a category. + * + * @function + * @param {DataViewCategoryColumn} category - List of category objects. + * @param {number} index - Index of category object. + * @param {string} objectName - Name of desired object. + * @param {string} propertyName - Name of desired property. + * @param {T} defaultValue - Default value of desired property. + */ +export declare function getCategoricalObjectValue(category: DataViewCategoryColumn, index: number, objectName: string, propertyName: string, defaultValue: T): T; diff --git a/.tmp/drop/pbiviz.json b/.tmp/drop/pbiviz.json new file mode 100644 index 0000000..e21986d --- /dev/null +++ b/.tmp/drop/pbiviz.json @@ -0,0 +1 @@ +{"visual":{"name":"Bar Chart","displayName":"barChart","guid":"PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166","visualClassName":"BarChart","version":"3.2.0","description":"Bar Chart Custom Visual","supportUrl":"like.programming@gmail.co","gitHubUrl":""},"author":{"name":"Safia Khan","email":"like.programming@gmail.com"},"apiVersion":"3.8.0","style":"style/visual.less","stringResources":{},"capabilities":{"dataRoles":[{"displayName":"Category Data","name":"category","kind":"Grouping"},{"displayName":"Measure Data","name":"measure","kind":"Measure"},{"displayName":"Tooltips","name":"Tooltips","kind":"Measure"}],"dataViewMappings":[{"conditions":[{"category":{"max":1},"measure":{"max":1}}],"categorical":{"categories":{"for":{"in":"category"}},"values":{"select":[{"bind":{"to":"measure"}}]}}}],"objects":{"enableAxis":{"displayName":"Enable Axis","properties":{"show":{"displayName":"Enable Axis","type":{"bool":true}},"fill":{"displayName":"Color","type":{"fill":{"solid":{"color":true}}}}}},"generalView":{"displayName":"General View","properties":{"width":{"displayName":"Bars Width","type":{"integer":true}}}}},"tooltips":{"supportedTypes":{"default":true,"canvas":true},"roles":["Tooltips"],"supportEnhancedTooltips":true},"supportsLandingPage":false,"drilldown":{"roles":["category"]}},"content":{"js":"var PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166;(()=>{var t={4792:(t,e,n)=>{\"use strict\";var r=Array.prototype;r.slice,r.map},1077:(t,e,n)=>{\"use strict\";function r(t,e){return te?1:t>=e?0:NaN}n.d(e,{Z:()=>r})},4355:(t,e,n)=>{\"use strict\";n.d(e,{ZP:()=>a});var r=n(1077),i=(0,n(9173).Z)(r.Z),o=i.right;i.left;const a=o},9173:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(1077);function i(t){var e;return 1===t.length&&(e=t,t=function(t,n){return(0,r.Z)(e(t),n)}),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[o],n)<0?r=o+1:i=o}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[o],n)>0?i=o:r=o+1}return r}}}},902:(t,e,n)=>{\"use strict\";n(4792),n(4355),n(7614)},91:(t,e,n)=>{\"use strict\";n.d(e,{G9:()=>o.G9,b4:()=>r.ZP,ly:()=>o.ly,sd:()=>o.ZP,w6:()=>i.Z});var r=n(4355),i=(n(902),n(4081),n(4893)),o=n(7614)},4893:(t,e,n)=>{\"use strict\";function r(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(i);++rr})},4081:(t,e,n)=>{\"use strict\";n(4792)},7614:(t,e,n)=>{\"use strict\";n.d(e,{G9:()=>s,ZP:()=>a,ly:()=>u});var r=Math.sqrt(50),i=Math.sqrt(10),o=Math.sqrt(2);function a(t,e,n){var r,i,o,a,u=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((r=e0)for(t=Math.ceil(t/a),e=Math.floor(e/a),o=new Array(i=Math.ceil(e-t+1));++u=0?(u>=r?10:u>=i?5:u>=o?2:1)*Math.pow(10,s):-Math.pow(10,-s)/(u>=r?10:u>=i?5:u>=o?2:1)}function u(t,e,n){var a=Math.abs(e-t)/Math.max(0,n),s=Math.pow(10,Math.floor(Math.log(a)/Math.LN10)),u=a/s;return u>=r?s*=10:u>=i?s*=5:u>=o&&(s*=2),e{\"use strict\";n.d(e,{t:()=>r});var r=Array.prototype.slice},7953:(t,e,n)=>{\"use strict\";n.d(e,{LL:()=>v});var r=n(4844),i=n(9985),o=1,a=2,s=3,u=4,c=1e-6;function l(t){return\"translate(\"+(t+.5)+\",0)\"}function h(t){return\"translate(0,\"+(t+.5)+\")\"}function f(t){return function(e){return+t(e)}}function d(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function p(){return!this.__axis}function g(t,e){var n=[],g=null,v=null,y=6,m=6,w=3,Z=t===o||t===u?-1:1,_=t===u||t===a?\"x\":\"y\",b=t===o||t===s?l:h;function x(r){var l=null==g?e.ticks?e.ticks.apply(e,n):e.domain():g,h=null==v?e.tickFormat?e.tickFormat.apply(e,n):i.Z:v,x=Math.max(y,0)+w,M=e.range(),S=+M[0]+.5,N=+M[M.length-1]+.5,A=(e.bandwidth?d:f)(e.copy()),k=r.selection?r.selection():r,C=k.selectAll(\".domain\").data([null]),E=k.selectAll(\".tick\").data(l,e).order(),P=E.exit(),T=E.enter().append(\"g\").attr(\"class\",\"tick\"),L=E.select(\"line\"),B=E.select(\"text\");C=C.merge(C.enter().insert(\"path\",\".tick\").attr(\"class\",\"domain\").attr(\"stroke\",\"currentColor\")),E=E.merge(T),L=L.merge(T.append(\"line\").attr(\"stroke\",\"currentColor\").attr(_+\"2\",Z*y)),B=B.merge(T.append(\"text\").attr(\"fill\",\"currentColor\").attr(_,Z*x).attr(\"dy\",t===o?\"0em\":t===s?\"0.71em\":\"0.32em\")),r!==k&&(C=C.transition(r),E=E.transition(r),L=L.transition(r),B=B.transition(r),P=P.transition(r).attr(\"opacity\",c).attr(\"transform\",(function(t){return isFinite(t=A(t))?b(t):this.getAttribute(\"transform\")})),T.attr(\"opacity\",c).attr(\"transform\",(function(t){var e=this.parentNode.__axis;return b(e&&isFinite(e=e(t))?e:A(t))}))),P.remove(),C.attr(\"d\",t===u||t==a?m?\"M\"+Z*m+\",\"+S+\"H0.5V\"+N+\"H\"+Z*m:\"M0.5,\"+S+\"V\"+N:m?\"M\"+S+\",\"+Z*m+\"V0.5H\"+N+\"V\"+Z*m:\"M\"+S+\",0.5H\"+N),E.attr(\"opacity\",1).attr(\"transform\",(function(t){return b(A(t))})),L.attr(_+\"2\",Z*y),B.attr(_,Z*x).text(h),k.filter(p).attr(\"fill\",\"none\").attr(\"font-size\",10).attr(\"font-family\",\"sans-serif\").attr(\"text-anchor\",t===a?\"start\":t===u?\"end\":\"middle\"),k.each((function(){this.__axis=A}))}return x.scale=function(t){return arguments.length?(e=t,x):e},x.ticks=function(){return n=r.t.call(arguments),x},x.tickArguments=function(t){return arguments.length?(n=null==t?[]:r.t.call(t),x):n.slice()},x.tickValues=function(t){return arguments.length?(g=null==t?null:r.t.call(t),x):g&&g.slice()},x.tickFormat=function(t){return arguments.length?(v=t,x):v},x.tickSize=function(t){return arguments.length?(y=m=+t,x):y},x.tickSizeInner=function(t){return arguments.length?(y=+t,x):y},x.tickSizeOuter=function(t){return arguments.length?(m=+t,x):m},x.tickPadding=function(t){return arguments.length?(w=+t,x):w},x}function v(t){return g(s,t)}},9985:(t,e,n)=>{\"use strict\";function r(t){return t}n.d(e,{Z:()=>r})},9216:(t,e,n)=>{\"use strict\";n.d(e,{LL:()=>r.LL});var r=n(7953)},2300:(t,e,n)=>{\"use strict\";n.d(e,{UI:()=>r.Z}),n(9226),n(7719);var r=n(3998)},3998:(t,e,n)=>{\"use strict\";n.d(e,{O:()=>r,Z:()=>a});var r=\"$\";function i(){}function o(t,e){var n=new i;if(t instanceof i)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var r,o=-1,a=t.length;if(null==e)for(;++o{\"use strict\";n(3998)},7719:(t,e,n)=>{\"use strict\";var r=n(3998);function i(){}var o=r.Z.prototype;i.prototype=function(t,e){var n=new i;if(t instanceof i)t.each((function(t){n.add(t)}));else if(t){var r=-1,o=t.length;if(null==e)for(;++r{\"use strict\";n.d(e,{B8:()=>M,Il:()=>i,J5:()=>a,SU:()=>x,Ss:()=>S,Ym:()=>P,ZP:()=>Z,xV:()=>o});var r=n(4087);function i(){}var o=.7,a=1/o,s=\"\\\\s*([+-]?\\\\d+)\\\\s*\",u=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",c=\"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",l=/^#([0-9a-f]{3,8})$/,h=new RegExp(\"^rgb\\\\(\"+[s,s,s]+\"\\\\)$\"),f=new RegExp(\"^rgb\\\\(\"+[c,c,c]+\"\\\\)$\"),d=new RegExp(\"^rgba\\\\(\"+[s,s,s,u]+\"\\\\)$\"),p=new RegExp(\"^rgba\\\\(\"+[c,c,c,u]+\"\\\\)$\"),g=new RegExp(\"^hsl\\\\(\"+[u,c,c]+\"\\\\)$\"),v=new RegExp(\"^hsla\\\\(\"+[u,c,c,u]+\"\\\\)$\"),y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function m(){return this.rgb().formatHex()}function w(){return this.rgb().formatRgb()}function Z(t){var e,n;return t=(t+\"\").trim().toLowerCase(),(e=l.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?_(e):3===n?new S(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?new S(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?new S(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=h.exec(t))?new S(e[1],e[2],e[3],1):(e=f.exec(t))?new S(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=d.exec(t))?b(e[1],e[2],e[3],e[4]):(e=p.exec(t))?b(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=g.exec(t))?C(e[1],e[2]/100,e[3]/100,1):(e=v.exec(t))?C(e[1],e[2]/100,e[3]/100,e[4]):y.hasOwnProperty(t)?_(y[t]):\"transparent\"===t?new S(NaN,NaN,NaN,0):null}function _(t){return new S(t>>16&255,t>>8&255,255&t,1)}function b(t,e,n,r){return r<=0&&(t=e=n=NaN),new S(t,e,n,r)}function x(t){return t instanceof i||(t=Z(t)),t?new S((t=t.rgb()).r,t.g,t.b,t.opacity):new S}function M(t,e,n,r){return 1===arguments.length?x(t):new S(t,e,n,null==r?1:r)}function S(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function N(){return\"#\"+k(this.r)+k(this.g)+k(this.b)}function A(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?\"rgb(\":\"rgba(\")+Math.max(0,Math.min(255,Math.round(this.r)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.g)||0))+\", \"+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?\")\":\", \"+t+\")\")}function k(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?\"0\":\"\")+t.toString(16)}function C(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new T(t,e,n,r)}function E(t){if(t instanceof T)return new T(t.h,t.s,t.l,t.opacity);if(t instanceof i||(t=Z(t)),!t)return new T;if(t instanceof T)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,o=Math.min(e,n,r),a=Math.max(e,n,r),s=NaN,u=a-o,c=(a+o)/2;return u?(s=e===a?(n-r)/u+6*(n0&&c<1?0:s,new T(s,u,c,t.opacity)}function P(t,e,n,r){return 1===arguments.length?E(t):new T(t,e,n,null==r?1:r)}function T(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function L(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}(0,r.Z)(i,Z,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:m,formatHex:m,formatHsl:function(){return E(this).formatHsl()},formatRgb:w,toString:w}),(0,r.Z)(S,M,(0,r.l)(i,{brighter:function(t){return t=null==t?a:Math.pow(a,t),new S(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new S(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:N,formatHex:N,formatRgb:A,toString:A})),(0,r.Z)(T,P,(0,r.l)(i,{brighter:function(t){return t=null==t?a:Math.pow(a,t),new T(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new T(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new S(L(t>=240?t-240:t+120,i,r),L(t,i,r),L(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?\"hsl(\":\"hsla(\")+(this.h||0)+\", \"+100*(this.s||0)+\"%, \"+100*(this.l||0)+\"%\"+(1===t?\")\":\", \"+t+\")\")}}))},8218:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>p});var r=n(4087),i=n(6372),o=n(1144),a=-.14861,s=1.78277,u=-.29227,c=-.90649,l=1.97294,h=l*c,f=l*s,d=s*u-c*a;function p(t,e,n,r){return 1===arguments.length?function(t){if(t instanceof g)return new g(t.h,t.s,t.l,t.opacity);t instanceof i.Ss||(t=(0,i.SU)(t));var e=t.r/255,n=t.g/255,r=t.b/255,a=(d*r+h*e-f*n)/(d+h-f),s=r-a,p=(l*(n-a)-u*s)/c,v=Math.sqrt(p*p+s*s)/(l*a*(1-a)),y=v?Math.atan2(p,s)*o.B-120:NaN;return new g(y<0?y+360:y,v,a,t.opacity)}(t):new g(t,e,n,null==r?1:r)}function g(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}(0,r.Z)(g,p,(0,r.l)(i.Il,{brighter:function(t){return t=null==t?i.J5:Math.pow(i.J5,t),new g(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?i.xV:Math.pow(i.xV,t),new g(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*o.V,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),h=Math.sin(t);return new i.Ss(255*(e+n*(a*r+s*h)),255*(e+n*(u*r+c*h)),255*(e+n*(l*r)),this.opacity)}}))},4087:(t,e,n)=>{\"use strict\";function r(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function i(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}n.d(e,{Z:()=>r,l:()=>i})},241:(t,e,n)=>{\"use strict\";n.d(e,{Uc:()=>w});var r=n(4087),i=n(6372),o=n(1144),a=.96422,s=1,u=.82521,c=4/29,l=6/29,h=3*l*l,f=l*l*l;function d(t){if(t instanceof p)return new p(t.l,t.a,t.b,t.opacity);if(t instanceof Z)return _(t);t instanceof i.Ss||(t=(0,i.SU)(t));var e,n,r=m(t.r),o=m(t.g),c=m(t.b),l=g((.2225045*r+.7168786*o+.0606169*c)/s);return r===o&&o===c?e=n=l:(e=g((.4360747*r+.3850649*o+.1430804*c)/a),n=g((.0139322*r+.0971045*o+.7141733*c)/u)),new p(116*l-16,500*(e-l),200*(l-n),t.opacity)}function p(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}function g(t){return t>f?Math.pow(t,1/3):t/h+c}function v(t){return t>l?t*t*t:h*(t-c)}function y(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function m(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function w(t,e,n,r){return 1===arguments.length?function(t){if(t instanceof Z)return new Z(t.h,t.c,t.l,t.opacity);if(t instanceof p||(t=d(t)),0===t.a&&0===t.b)return new Z(NaN,0{\"use strict\";n.d(e,{B:()=>i,V:()=>r});var r=Math.PI/180,i=180/Math.PI},7539:(t,e,n)=>{\"use strict\";var r,i,o,a;n.d(e,{WU:()=>i,jH:()=>o}),a={decimal:\".\",thousands:\",\",grouping:[3],currency:[\"$\",\"\"],minus:\"-\"},r=(0,n(4463).Z)(a),i=r.format,o=r.formatPrefix},3085:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(8885);function i(t){return(t=(0,r.Z)(Math.abs(t)))?t[1]:NaN}},8885:(t,e,n)=>{\"use strict\";function r(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf(\"e\"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}n.d(e,{Z:()=>r})},8129:(t,e,n)=>{\"use strict\";function r(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),o.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}n.d(e,{Z:()=>r})},576:(t,e,n)=>{\"use strict\";function r(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}n.d(e,{Z:()=>r})},2994:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o,y:()=>r});var r,i=n(8885);function o(t,e){var n=(0,i.Z)(t,e);if(!n)return t+\"\";var o=n[0],a=n[1],s=a-(r=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,u=o.length;return s===u?o:s>u?o+new Array(s-u+1).join(\"0\"):s>0?o.slice(0,s)+\".\"+o.slice(s):\"0.\"+new Array(1-s).join(\"0\")+(0,i.Z)(t,Math.max(0,e+s-1))[0]}},2043:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(8885);function i(t,e){var n=(0,r.Z)(t,e);if(!n)return t+\"\";var i=n[0],o=n[1];return o<0?\"0.\"+new Array(-o).join(\"0\")+i:i.length>o+1?i.slice(0,o+1)+\".\"+i.slice(o+1):i+new Array(o-i.length+2).join(\"0\")}},6196:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=/^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;function i(t){if(!(e=r.exec(t)))throw new Error(\"invalid format: \"+t);var e;return new o({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function o(t){this.fill=void 0===t.fill?\" \":t.fill+\"\",this.align=void 0===t.align?\">\":t.align+\"\",this.sign=void 0===t.sign?\"-\":t.sign+\"\",this.symbol=void 0===t.symbol?\"\":t.symbol+\"\",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?\"\":t.type+\"\"}i.prototype=o.prototype,o.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?\"0\":\"\")+(void 0===this.width?\"\":Math.max(1,0|this.width))+(this.comma?\",\":\"\")+(void 0===this.precision?\"\":\".\"+Math.max(0,0|this.precision))+(this.trim?\"~\":\"\")+this.type}},1485:(t,e,n)=>{\"use strict\";function r(t){t:for(var e,n=t.length,r=1,i=-1;r0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(e+1):t}n.d(e,{Z:()=>r})},8814:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(2994),i=n(2043);const o={\"%\":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+\"\"},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return(0,i.Z)(100*t,e)},r:i.Z,s:r.Z,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}}},9890:(t,e,n)=>{\"use strict\";function r(t){return t}n.d(e,{Z:()=>r})},5594:(t,e,n)=>{\"use strict\";n.d(e,{F0:()=>s.Z,S5:()=>a.Z,WU:()=>r.WU,YQ:()=>i.Z,jH:()=>r.jH,zB:()=>o.Z});var r=n(7539),i=(n(4463),n(6196)),o=n(8195),a=n(3726),s=n(7655)},4463:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>d});var r=n(3085),i=n(8129),o=n(576),a=n(6196),s=n(1485),u=n(8814),c=n(2994),l=n(9890),h=Array.prototype.map,f=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];function d(t){var e=void 0===t.grouping||void 0===t.thousands?l.Z:(0,i.Z)(h.call(t.grouping,Number),t.thousands+\"\"),n=void 0===t.currency?\"\":t.currency[0]+\"\",d=void 0===t.currency?\"\":t.currency[1]+\"\",p=void 0===t.decimal?\".\":t.decimal+\"\",g=void 0===t.numerals?l.Z:(0,o.Z)(h.call(t.numerals,String)),v=void 0===t.percent?\"%\":t.percent+\"\",y=void 0===t.minus?\"-\":t.minus+\"\",m=void 0===t.nan?\"NaN\":t.nan+\"\";function w(t){var r=(t=(0,a.Z)(t)).fill,i=t.align,o=t.sign,l=t.symbol,h=t.zero,w=t.width,Z=t.comma,_=t.precision,b=t.trim,x=t.type;\"n\"===x?(Z=!0,x=\"g\"):u.Z[x]||(void 0===_&&(_=12),b=!0,x=\"g\"),(h||\"0\"===r&&\"=\"===i)&&(h=!0,r=\"0\",i=\"=\");var M=\"$\"===l?n:\"#\"===l&&/[boxX]/.test(x)?\"0\"+x.toLowerCase():\"\",S=\"$\"===l?d:/[%p]/.test(x)?v:\"\",N=u.Z[x],A=/[defgprs%]/.test(x);function k(t){var n,a,u,l=M,d=S;if(\"c\"===x)d=N(t)+d,t=\"\";else{var v=(t=+t)<0;if(t=isNaN(t)?m:N(Math.abs(t),_),b&&(t=(0,s.Z)(t)),v&&0==+t&&(v=!1),l=(v?\"(\"===o?o:y:\"-\"===o||\"(\"===o?\"\":o)+l,d=(\"s\"===x?f[8+c.y/3]:\"\")+d+(v&&\"(\"===o?\")\":\"\"),A)for(n=-1,a=t.length;++n(u=t.charCodeAt(n))||u>57){d=(46===u?p+t.slice(n+1):t.slice(n))+d,t=t.slice(0,n);break}}Z&&!h&&(t=e(t,1/0));var k=l.length+t.length+d.length,C=k>1)+l+t+d+C.slice(k);break;default:t=C+l+t+d}return g(t)}return _=void 0===_?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_)),k.toString=function(){return t+\"\"},k}return{format:w,formatPrefix:function(t,e){var n=w(((t=(0,a.Z)(t)).type=\"f\",t)),i=3*Math.max(-8,Math.min(8,Math.floor((0,r.Z)(e)/3))),o=Math.pow(10,-i),s=f[8+i/3];return function(t){return n(o*t)+s}}}}},8195:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(3085);function i(t){return Math.max(0,-(0,r.Z)(Math.abs(t)))}},3726:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(3085);function i(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,r.Z)(e)/3)))-(0,r.Z)(Math.abs(t)))}},7655:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(3085);function i(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,(0,r.Z)(e)-(0,r.Z)(t))+1}},8122:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(1265);function i(t,e){var n,i=e?e.length:0,o=t?Math.min(i,t.length):0,a=new Array(o),s=new Array(i);for(n=0;n{\"use strict\";function r(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function i(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),o=t[i],a=t[i+1],s=i>0?t[i-1]:2*o-a,u=ii,t:()=>r})},5692:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(9885);function i(t){var e=t.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*e),o=t[(i+e-1)%e],a=t[i%e],s=t[(i+1)%e],u=t[(i+2)%e];return(0,r.t)((n-i/e)*e,o,a,s,u)}}},5910:(t,e,n)=>{\"use strict\";n.d(e,{ZP:()=>s,wx:()=>o,yi:()=>a});var r=n(5302);function i(t,e){return function(n){return t+n*e}}function o(t,e){var n=e-t;return n?i(t,n>180||n<-180?n-360*Math.round(n/360):n):(0,r.Z)(isNaN(t)?e:t)}function a(t){return 1==(t=+t)?s:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):(0,r.Z)(isNaN(e)?n:e)}}function s(t,e){var n=e-t;return n?i(t,n):(0,r.Z)(isNaN(t)?e:t)}},5302:(t,e,n)=>{\"use strict\";function r(t){return function(){return t}}n.d(e,{Z:()=>r})},8499:(t,e,n)=>{\"use strict\";var r=n(8218),i=n(5910);function o(t){return function e(n){function o(e,o){var a=t((e=(0,r.Z)(e)).h,(o=(0,r.Z)(o)).h),s=(0,i.ZP)(e.s,o.s),u=(0,i.ZP)(e.l,o.l),c=(0,i.ZP)(e.opacity,o.opacity);return function(t){return e.h=a(t),e.s=s(t),e.l=u(Math.pow(t,n)),e.opacity=c(t),e+\"\"}}return n=+n,o.gamma=e,o}(1)}o(i.wx),o(i.ZP)},88:(t,e,n)=>{\"use strict\";function r(t,e){var n=new Date;return e-=t=+t,function(r){return n.setTime(t+e*r),n}}n.d(e,{Z:()=>r})},997:(t,e,n)=>{\"use strict\";var r=n(241),i=n(5910);function o(t){return function(e,n){var o=t((e=(0,r.Uc)(e)).h,(n=(0,r.Uc)(n)).h),a=(0,i.ZP)(e.c,n.c),s=(0,i.ZP)(e.l,n.l),u=(0,i.ZP)(e.opacity,n.opacity);return function(t){return e.h=o(t),e.c=a(t),e.l=s(t),e.opacity=u(t),e+\"\"}}}o(i.wx),o(i.ZP)},4038:(t,e,n)=>{\"use strict\";var r=n(6372),i=n(5910);function o(t){return function(e,n){var o=t((e=(0,r.Ym)(e)).h,(n=(0,r.Ym)(n)).h),a=(0,i.ZP)(e.s,n.s),s=(0,i.ZP)(e.l,n.l),u=(0,i.ZP)(e.opacity,n.opacity);return function(t){return e.h=o(t),e.s=a(t),e.l=s(t),e.opacity=u(t),e+\"\"}}}o(i.wx),o(i.ZP)},3413:(t,e,n)=>{\"use strict\";n.d(e,{k4:()=>i.Z,sX:()=>r.Z,uL:()=>o.Z});var r=n(1265),i=(n(8122),n(3626)),o=(n(8528),n(5720));n(9843),n(6697),n(588),n(3414),n(4038),n(997),n(8499)},3626:(t,e,n)=>{\"use strict\";function r(t,e){return e-=t=+t,function(n){return t+e*n}}n.d(e,{Z:()=>r})},8528:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(1265);function i(t,e){var n,i={},o={};for(n in null!==t&&\"object\"==typeof t||(t={}),null!==e&&\"object\"==typeof e||(e={}),e)n in t?i[n]=(0,r.Z)(t[n],e[n]):o[n]=e[n];return function(t){for(n in i)o[n]=i[n](t);return o}}},3414:(t,e,n)=>{\"use strict\";n.d(e,{ZP:()=>s});var r=n(6372),i=n(9885),o=n(5692),a=n(5910);const s=function t(e){var n=(0,a.yi)(e);function i(t,e){var i=n((t=(0,r.B8)(t)).r,(e=(0,r.B8)(e)).r),o=n(t.g,e.g),s=n(t.b,e.b),u=(0,a.ZP)(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=o(e),t.b=s(e),t.opacity=u(e),t+\"\"}}return i.gamma=t,i}(1);function u(t){return function(e){var n,i,o=e.length,a=new Array(o),s=new Array(o),u=new Array(o);for(n=0;n{\"use strict\";function r(t,e){return e-=t=+t,function(n){return Math.round(t+e*n)}}n.d(e,{Z:()=>r})},9843:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>a});var r=n(3626),i=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,o=new RegExp(i.source,\"g\");function a(t,e){var n,a,s,u=i.lastIndex=o.lastIndex=0,c=-1,l=[],h=[];for(t+=\"\",e+=\"\";(n=i.exec(t))&&(a=o.exec(e));)(s=a.index)>u&&(s=e.slice(u,s),l[c]?l[c]+=s:l[++c]=s),(n=n[0])===(a=a[0])?l[c]?l[c]+=a:l[++c]=a:(l[++c]=null,h.push({i:c,x:(0,r.Z)(n,a)})),u=o.lastIndex;return u{\"use strict\";n.d(e,{Z:()=>o,y:()=>i});var r=180/Math.PI,i={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function o(t,e,n,i,o,a){var s,u,c;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(c=t*n+e*i)&&(n-=t*c,i-=e*c),(u=Math.sqrt(n*n+i*i))&&(n/=u,i/=u,c/=u),t*i{\"use strict\";var r=n(3626),i=n(2490);function o(t,e,n,i){function o(t){return t.length?t.pop()+\" \":\"\"}return function(a,s){var u=[],c=[];return a=t(a),s=t(s),function(t,i,o,a,s,u){if(t!==o||i!==a){var c=s.push(\"translate(\",null,e,null,n);u.push({i:c-4,x:(0,r.Z)(t,o)},{i:c-2,x:(0,r.Z)(i,a)})}else(o||a)&&s.push(\"translate(\"+o+e+a+n)}(a.translateX,a.translateY,s.translateX,s.translateY,u,c),function(t,e,n,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:n.push(o(n)+\"rotate(\",null,i)-2,x:(0,r.Z)(t,e)})):e&&n.push(o(n)+\"rotate(\"+e+i)}(a.rotate,s.rotate,u,c),function(t,e,n,a){t!==e?a.push({i:n.push(o(n)+\"skewX(\",null,i)-2,x:(0,r.Z)(t,e)}):e&&n.push(o(n)+\"skewX(\"+e+i)}(a.skewX,s.skewX,u,c),function(t,e,n,i,a,s){if(t!==n||e!==i){var u=a.push(o(a)+\"scale(\",null,\",\",null,\")\");s.push({i:u-4,x:(0,r.Z)(t,n)},{i:u-2,x:(0,r.Z)(e,i)})}else 1===n&&1===i||a.push(o(a)+\"scale(\"+n+\",\"+i+\")\")}(a.scaleX,a.scaleY,s.scaleX,s.scaleY,u,c),a=s=null,function(t){for(var e,n=-1,r=c.length;++n{\"use strict\";n.d(e,{X:()=>c,z:()=>u});var r,i,o,a,s=n(6511);function u(t){return\"none\"===t?s.y:(r||(r=document.createElement(\"DIV\"),i=document.documentElement,o=document.defaultView),r.style.transform=t,t=o.getComputedStyle(i.appendChild(r),null).getPropertyValue(\"transform\"),i.removeChild(r),t=t.slice(7,-1).split(\",\"),(0,s.Z)(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}function c(t){return null==t?s.y:(a||(a=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")),a.setAttribute(\"transform\",t),(t=a.transform.baseVal.consolidate())?(t=t.matrix,(0,s.Z)(t.a,t.b,t.c,t.d,t.e,t.f)):s.y)}},1265:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>h});var r=n(6372),i=n(3414),o=n(8122),a=n(88),s=n(3626),u=n(8528),c=n(9843),l=n(5302);function h(t,e){var n,h=typeof e;return null==e||\"boolean\"===h?(0,l.Z)(e):(\"number\"===h?s.Z:\"string\"===h?(n=(0,r.ZP)(e))?(e=n,i.ZP):c.Z:e instanceof r.ZP?i.ZP:e instanceof Date?a.Z:Array.isArray(e)?o.Z:\"function\"!=typeof e.valueOf&&\"function\"!=typeof e.toString||isNaN(e)?u.Z:s.Z)(t,e)}},588:()=>{\"use strict\";Math.SQRT2},4057:(t,e,n)=>{\"use strict\";n.d(e,{U:()=>i,t:()=>o});var r=Array.prototype,i=r.map,o=r.slice},274:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>a});var r=n(91),i=n(8348),o=n(7603);function a(){var t,e,n=(0,o.Z)().unknown(void 0),s=n.domain,u=n.range,c=[0,1],l=!1,h=0,f=0,d=.5;function p(){var n=s().length,i=c[1]{\"use strict\";function r(t){return function(){return t}}n.d(e,{Z:()=>r})},5236:(t,e,n)=>{\"use strict\";n.d(e,{JG:()=>p,ZP:()=>g,yR:()=>c});var r=n(91),i=n(3413),o=n(4057),a=n(8749),s=n(4299),u=[0,1];function c(t){return t}function l(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:(0,a.Z)(isNaN(e)?NaN:.5)}function h(t){var e,n=t[0],r=t[t.length-1];return n>r&&(e=n,n=r,r=e),function(t){return Math.max(n,Math.min(r,t))}}function f(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i2?d:f,a=l=null,w}function w(e){return isNaN(e=+e)?n:(a||(a=r(p.map(t),g,v)))(t(y(e)))}return w.invert=function(n){return y(e((l||(l=r(g,p.map(t),i.k4)))(n)))},w.domain=function(t){return arguments.length?(p=o.U.call(t,s.Z),y===c||(y=h(p)),m()):p.slice()},w.range=function(t){return arguments.length?(g=o.t.call(t),m()):g.slice()},w.rangeRound=function(t){return g=o.t.call(t),v=i.uL,m()},w.clamp=function(t){return arguments.length?(y=t?h(p):c,w):y!==c},w.interpolate=function(t){return arguments.length?(v=t,m()):v},w.unknown=function(t){return arguments.length?(n=t,w):n},function(n,r){return t=n,e=r,m()}}()(t,e)}},4547:(t,e,n)=>{\"use strict\";n(5236),n(289),n(2685),n(4250),n(5437),n(5128)},9898:(t,e,n)=>{\"use strict\";n(4057),n(289)},5315:(t,e,n)=>{\"use strict\";n.d(e,{BY:()=>i.Z,ti:()=>r.Z});var r=n(274),i=(n(9898),n(289));n(2685),n(5437),n(7603),n(5128),n(2110),n(6602),n(6297),n(8383),n(819),n(4250),n(9313),n(4547),n(7197)},8348:(t,e,n)=>{\"use strict\";function r(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}n.d(e,{o:()=>r})},289:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>s});var r=n(91),i=n(5236),o=n(8348),a=n(7197);function s(){var t=(0,i.ZP)(i.yR,i.yR);return t.copy=function(){return(0,i.JG)(t,s())},o.o.apply(t,arguments),function(t){var e=t.domain;return t.ticks=function(t){var n=e();return(0,r.sd)(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return(0,a.Z)(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var i,o=e(),a=0,s=o.length-1,u=o[a],c=o[s];return c0?(u=Math.floor(u/i)*i,c=Math.ceil(c/i)*i,i=(0,r.G9)(u,c,n)):i<0&&(u=Math.ceil(u*i)/i,c=Math.floor(c*i)/i,i=(0,r.G9)(u,c,n)),i>0?(o[a]=Math.floor(u/i)*i,o[s]=Math.ceil(c/i)*i,e(o)):i<0&&(o[a]=Math.ceil(u*i)/i,o[s]=Math.floor(c*i)/i,e(o)),t},t}(t)}},2685:(t,e,n)=>{\"use strict\";n(91),n(5594),n(5236)},4299:(t,e,n)=>{\"use strict\";function r(t){return+t}n.d(e,{Z:()=>r})},7603:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>s});var r=n(2300),i=n(4057),o=n(8348),a={name:\"implicit\"};function s(){var t=(0,r.UI)(),e=[],n=[],u=a;function c(r){var i=r+\"\",o=t.get(i);if(!o){if(u!==a)return u;t.set(i,o=e.push(r))}return n[(o-1)%n.length]}return c.domain=function(n){if(!arguments.length)return e.slice();e=[],t=(0,r.UI)();for(var i,o,a=-1,s=n.length;++a{\"use strict\";n(289),n(5236)},2110:(t,e,n)=>{\"use strict\";n(91),n(4057)},6602:(t,e,n)=>{\"use strict\";n(91),n(4057),n(289)},4250:(t,e,n)=>{\"use strict\";n(5236),n(289),n(2685),n(5437),n(5128)},9313:(t,e,n)=>{\"use strict\";n(91),n(5236)},5437:(t,e,n)=>{\"use strict\";n(289),n(5236)},6297:(t,e,n)=>{\"use strict\";n(91),n(4057)},7197:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(91),i=n(5594);function o(t,e,n,o){var a,s=(0,r.ly)(t,e,n);switch((o=(0,i.YQ)(null==o?\",f\":o)).type){case\"s\":var u=Math.max(Math.abs(t),Math.abs(e));return null!=o.precision||isNaN(a=(0,i.S5)(s,u))||(o.precision=a),(0,i.jH)(o,u);case\"\":case\"e\":case\"g\":case\"p\":case\"r\":null!=o.precision||isNaN(a=(0,i.F0)(s,Math.max(Math.abs(t),Math.abs(e))))||(o.precision=a-(\"e\"===o.type));break;case\"f\":case\"%\":null!=o.precision||isNaN(a=(0,i.zB)(s))||(o.precision=a-2*(\"%\"===o.type))}return(0,i.WU)(o)}},8383:(t,e,n)=>{\"use strict\";n(91),n(4057),n(5236)},819:(t,e,n)=>{\"use strict\";n(8383)},9077:(t,e,n)=>{\"use strict\";function r(t){return function(){return t}}n.d(e,{Z:()=>r})},9795:(t,e,n)=>{\"use strict\";n(789),n(4017)},789:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>s});var r=n(3888),i=n(1986);function o(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===i.P&&e.documentElement.namespaceURI===i.P?e.createElement(t):e.createElementNS(n,t)}}function a(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function s(t){var e=(0,r.Z)(t);return(e.local?a:o)(e)}},9825:(t,e,n)=>{\"use strict\";n.d(e,{B:()=>i.B,Ys:()=>r.Z}),n(9795),n(789),n(9548),n(3095),n(3888),n(1986);var r=n(4017),i=(n(9628),n(3933),n(4793),n(9649),n(5109))},9548:(t,e,n)=>{\"use strict\";var r=0;function i(){this._=\"@\"+(++r).toString(36)}i.prototype=function(){return new i}.prototype={constructor:i,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}}},3083:(t,e,n)=>{\"use strict\";function r(t){return function(){return this.matches(t)}}n.d(e,{Z:()=>r})},3095:(t,e,n)=>{\"use strict\";n(5553)},3888:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(1986);function i(t){var e=t+=\"\",n=e.indexOf(\":\");return n>=0&&\"xmlns\"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.Z.hasOwnProperty(e)?{space:r.Z[e],local:t}:t}},1986:(t,e,n)=>{\"use strict\";n.d(e,{P:()=>r,Z:()=>i});var r=\"http://www.w3.org/1999/xhtml\";const i={svg:\"http://www.w3.org/2000/svg\",xhtml:r,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"}},4017:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(3933);function i(t){return\"string\"==typeof t?new r.Y1([[document.querySelector(t)]],[document.documentElement]):new r.Y1([[t]],r.Jz)}},9628:(t,e,n)=>{\"use strict\";n(3933)},9911:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(789);function i(t){var e=\"function\"==typeof t?t:(0,r.Z)(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))}},1033:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>l});var r=n(3888);function i(t){return function(){this.removeAttribute(t)}}function o(t){return function(){this.removeAttributeNS(t.space,t.local)}}function a(t,e){return function(){this.setAttribute(t,e)}}function s(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function u(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function c(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function l(t,e){var n=(0,r.Z)(t);if(arguments.length<2){var l=this.node();return n.local?l.getAttributeNS(n.space,n.local):l.getAttribute(n)}return this.each((null==e?n.local?o:i:\"function\"==typeof e?n.local?c:u:n.local?s:a)(n,e))}},7124:(t,e,n)=>{\"use strict\";function r(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}n.d(e,{Z:()=>r})},6198:(t,e,n)=>{\"use strict\";function r(t){return t.trim().split(/^|\\s+/)}function i(t){return t.classList||new o(t)}function o(t){this._node=t,this._names=r(t.getAttribute(\"class\")||\"\")}function a(t,e){for(var n=i(t),r=-1,o=e.length;++rh}),o.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute(\"class\",this._names.join(\" \")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(t){return this._names.indexOf(t)>=0}}},9397:(t,e,n)=>{\"use strict\";function r(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function i(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}function o(t){return this.select(t?i:r)}n.d(e,{Z:()=>o})},8650:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>c});var r=n(3933),i=n(8737),o=n(9077),a=\"$\";function s(t,e,n,r,o,a){for(var s,u=0,c=e.length,l=a.length;u=M&&(M=x+1);!(b=Z[M])&&++M{\"use strict\";function r(t){return arguments.length?this.property(\"__data__\",t):this.node().__data__}n.d(e,{Z:()=>r})},5362:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>s});var r=n(5021);function i(t,e,n){var i=(0,r.Z)(t),o=i.CustomEvent;\"function\"==typeof o?o=new o(e,n):(o=i.document.createEvent(\"Event\"),n?(o.initEvent(e,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(e,!1,!1)),t.dispatchEvent(o)}function o(t,e){return function(){return i(this,t,e)}}function a(t,e){return function(){return i(this,t,e.apply(this,arguments))}}function s(t,e){return this.each((\"function\"==typeof e?a:o)(t,e))}},8358:(t,e,n)=>{\"use strict\";function r(t){for(var e=this._groups,n=0,r=e.length;nr})},4670:(t,e,n)=>{\"use strict\";function r(){return!this.node()}n.d(e,{Z:()=>r})},8737:(t,e,n)=>{\"use strict\";n.d(e,{F:()=>a,Z:()=>o});var r=n(327),i=n(3933);function o(){return new i.Y1(this._enter||this._groups.map(r.Z),this._parents)}function a(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}a.prototype={constructor:a,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}}},2978:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(327),i=n(3933);function o(){return new i.Y1(this._exit||this._groups.map(r.Z),this._parents)}},4652:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(3933),i=n(3083);function o(t){\"function\"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=new Array(n),a=0;a{\"use strict\";function r(){this.innerHTML=\"\"}function i(t){return function(){this.innerHTML=t}}function o(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?\"\":e}}function a(t){return arguments.length?this.each(null==t?r:(\"function\"==typeof t?o:i)(t)):this.node().innerHTML}n.d(e,{Z:()=>a})},3933:(t,e,n)=>{\"use strict\";n.d(e,{Jz:()=>B,Y1:()=>I});var r=n(4958),i=n(1344),o=n(4652),a=n(8650),s=n(8737),u=n(2978),c=n(2105),l=n(8244),h=n(8221),f=n(2322),d=n(7124),p=n(8098),g=n(9317),v=n(3912),y=n(4670),m=n(8358),w=n(1033),Z=n(9986),_=n(9152),b=n(6198),x=n(7647),M=n(5267),S=n(1242),N=n(8275),A=n(9911),k=n(1053),C=n(1261),E=n(9397),P=n(4391),T=n(5109),L=n(5362),B=[null];function I(t,e){this._groups=t,this._parents=e}I.prototype=function(){return new I([[document.documentElement]],B)}.prototype={constructor:I,select:r.Z,selectAll:i.Z,filter:o.Z,data:a.Z,enter:s.Z,exit:u.Z,join:c.Z,merge:l.Z,order:h.Z,sort:f.Z,call:d.Z,nodes:p.Z,node:g.Z,size:v.Z,empty:y.Z,each:m.Z,attr:w.Z,style:Z.Z,property:_.Z,classed:b.Z,text:x.Z,html:M.Z,raise:S.Z,lower:N.Z,append:A.Z,insert:k.Z,remove:C.Z,clone:E.Z,datum:P.Z,on:T.ZP,dispatch:L.Z}},1053:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>a});var r=n(789),i=n(2634);function o(){return null}function a(t,e){var n=\"function\"==typeof t?t:(0,r.Z)(t),a=null==e?o:\"function\"==typeof e?e:(0,i.Z)(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),a.apply(this,arguments)||null)}))}},2105:(t,e,n)=>{\"use strict\";function r(t,e,n){var r=this.enter(),i=this,o=this.exit();return r=\"function\"==typeof t?t(r):r.append(t+\"\"),null!=e&&(i=e(i)),null==n?o.remove():n(o),r&&i?r.merge(i).order():i}n.d(e,{Z:()=>r})},8275:(t,e,n)=>{\"use strict\";function r(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},8244:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(3933);function i(t){for(var e=this._groups,n=t._groups,i=e.length,o=n.length,a=Math.min(i,o),s=new Array(i),u=0;u{\"use strict\";function r(){for(var t=this._groups,e=0,n=t.length;er})},8098:(t,e,n)=>{\"use strict\";function r(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t}n.d(e,{Z:()=>r})},5109:(t,e,n)=>{\"use strict\";n.d(e,{B:()=>i,ZP:()=>c});var r={},i=null;function o(t,e,n){return t=a(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function a(t,e,n){return function(r){var o=i;i=r;try{t.call(this,this.__data__,e,n)}finally{i=o}}}function s(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+\"\"),a=o.length;if(!(arguments.length<2)){for(c=e?u:s,null==n&&(n=!1),r=0;r{\"use strict\";function r(){for(var t=this._groups,e=-1,n=t.length;++e=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this}n.d(e,{Z:()=>r})},9152:(t,e,n)=>{\"use strict\";function r(t){return function(){delete this[t]}}function i(t,e){return function(){this[t]=e}}function o(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function a(t,e){return arguments.length>1?this.each((null==e?r:\"function\"==typeof e?o:i)(t,e)):this.node()[t]}n.d(e,{Z:()=>a})},1242:(t,e,n)=>{\"use strict\";function r(){this.nextSibling&&this.parentNode.appendChild(this)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},1261:(t,e,n)=>{\"use strict\";function r(){var t=this.parentNode;t&&t.removeChild(this)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},4958:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(3933),i=n(2634);function o(t){\"function\"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=new Array(n),a=0;a{\"use strict\";n.d(e,{Z:()=>o});var r=n(3933),i=n(3545);function o(t){\"function\"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=[],a=[],s=0;s{\"use strict\";function r(){var t=0;return this.each((function(){++t})),t}n.d(e,{Z:()=>r})},2322:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(3933);function i(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=o);for(var n=this._groups,i=n.length,a=new Array(i),s=0;se?1:t>=e?0:NaN}},327:(t,e,n)=>{\"use strict\";function r(t){return new Array(t.length)}n.d(e,{Z:()=>r})},9986:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>s});var r=n(5021);function i(t){return function(){this.style.removeProperty(t)}}function o(t,e,n){return function(){this.style.setProperty(t,e,n)}}function a(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function s(t,e,n){return arguments.length>1?this.each((null==e?i:\"function\"==typeof e?a:o)(t,e,null==n?\"\":n)):function(t,e){return t.style.getPropertyValue(e)||(0,r.Z)(t).getComputedStyle(t,null).getPropertyValue(e)}(this.node(),t)}},7647:(t,e,n)=>{\"use strict\";function r(){this.textContent=\"\"}function i(t){return function(){this.textContent=t}}function o(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?\"\":e}}function a(t){return arguments.length?this.each(null==t?r:(\"function\"==typeof t?o:i)(t)):this.node().textContent}n.d(e,{Z:()=>a})},2634:(t,e,n)=>{\"use strict\";function r(){}function i(t){return null==t?r:function(){return this.querySelector(t)}}n.d(e,{Z:()=>i})},3545:(t,e,n)=>{\"use strict\";function r(){return[]}function i(t){return null==t?r:function(){return this.querySelectorAll(t)}}n.d(e,{Z:()=>i})},5553:(t,e,n)=>{\"use strict\";n(5109)},4793:(t,e,n)=>{\"use strict\";n(5553)},9649:(t,e,n)=>{\"use strict\";n(5553)},5021:(t,e,n)=>{\"use strict\";function r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}n.d(e,{Z:()=>r})},6116:(t,e,n)=>{\"use strict\";n.d(e,{q:()=>i});class r{constructor(t){this.cache={},this.clearCacheInterval=null!=t?t:r.defaultClearCacheInterval,this.clearCache()}getData(t){return this.cache[t]}setData(t,e){this.cache[t]=e,null==this.clearCacheTimerId&&(this.clearCacheTimerId=setTimeout((()=>this.clearCache()),this.clearCacheInterval))}clearCache(){this.cache={},this.clearCacheTimerId=void 0}}r.defaultClearCacheInterval=864e5;const i=new r},7802:(t,e,n)=>{\"use strict\";n.d(e,{y:()=>r});var r,i=n(7281),o=n(4732),a=n(1363),s=n(6116);!function(t){const e=\"...\";let n,r,u,c;function l(){if(n)return;n=document.createElement(\"span\"),document.body.appendChild(n);const t=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");t.setAttribute(\"height\",\"0\"),t.setAttribute(\"width\",\"0\"),t.setAttribute(\"position\",\"absolute\"),t.style.top=\"0px\",t.style.left=\"0px\",t.style.position=\"absolute\",t.style.height=\"0px\",t.style.width=\"0px\",r=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\"),t.appendChild(r),document.body.appendChild(t);let e=document.createElement(\"canvas\");u=e.getContext(\"2d\");let i=window.getComputedStyle(r);c=i?i.fontFamily:\"\"}function h(t,e){return l(),u.font=(t.fontStyle||\"\")+\" \"+(t.fontVariant||\"\")+\" \"+(t.fontWeight||\"\")+\" \"+t.fontSize+\" \"+(t.fontFamily||c),u.measureText(e||t.text).width}function f(t,e){for(l();r.firstChild;)r.removeChild(r.firstChild);return r.setAttribute(\"style\",null),r.style.visibility=\"hidden\",r.style.fontFamily=t.fontFamily||c,r.style.fontVariant=t.fontVariant,r.style.fontSize=t.fontSize,r.style.fontWeight=t.fontWeight,r.style.fontStyle=t.fontStyle,r.style.whiteSpace=t.whiteSpace||\"nowrap\",r.appendChild(document.createTextNode(e||t.text)),r.getBBox()}function d(e){let n=e.fontFamily+e.fontSize,r=s.q.getData(n);if(null==r){let i={fontFamily:e.fontFamily,fontSize:e.fontSize,text:\"M\"};r=t.measureSvgTextRect(i),r.height>0&&s.q.setData(n,r)}return r}function p(t,e=!1){let n=d(t).height;return e&&(n*=.7),n}function g(t){let e=window.getComputedStyle(t);return e?{text:t.textContent,fontFamily:e.fontFamily,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontVariant:e.fontVariant,whiteSpace:e.whiteSpace}:{text:t.textContent,fontFamily:\"\",fontSize:\"0\"}}function v(t,n){if(l(),0===t.text.length)return t.text;let r=h(t);if(rr)s=c+1;else{if(!(nn&&c--,a.substr(3,c-3)+e}t.removeSpanElement=function(){n&&n.remove&&n.remove(),n=null},t.measureSvgTextWidth=h,t.measureSvgTextRect=f,t.measureSvgTextHeight=function(t,e){return f(t,e).height},t.estimateSvgTextBaselineDelta=function(t){let e=d(t);return e.y+e.height},t.estimateSvgTextHeight=p,t.measureSvgTextElementWidth=function(t){return h(g(t))},t.getMeasurementProperties=function(t){const e=window.getComputedStyle(t);return{text:t.value||t.textContent,fontFamily:e.fontFamily,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontVariant:e.fontVariant,whiteSpace:e.whiteSpace}},t.getSvgMeasurementProperties=g,t.getDivElementWidth=function(t){const e=window.getComputedStyle(t);return e?e.width:\"0\"},t.getTailoredTextOrDefault=v,t.svgEllipsis=function(t,e){let n=g(t),r=n.text,i=v(n,e);r!==i&&(t.textContent=i)},t.wordBreak=function(t,e,n,r=0){let i=g(t),o=p(i)+r,s=Math.max(1,Math.floor(n/o)),u=t?t.getAttribute(\"y\"):null,c=t?t.textContent:null;t.textContent=null;let l=a.ql(c,i,h,e,s);const f=document.createDocumentFragment();for(let t=0,n=l.length;t{\"use strict\";n.d(e,{ql:()=>s});const r=\" \",i=/[\\s\\n]+/g;function o(t,e,n){return e.text=t,n(e)}function a(t,e,n,r){return e.text=t,n(e,r)}function s(t,e,n,s,u,c){c=c||((t,e)=>t.text);let l=[],h=function(t){return t.split(i)}(t),f=0,d=[];for(let t of h){if(u>0&&l.length>=u-1){d.push(t);continue}let i=0===d.length?o(t,e,n):o(r+t,e,n);if(f+i>s){if(0===d.length){l.push(a(t,e,c,s)),f=0,d=[];continue}l.push(a(d.join(r),e,c,s)),f=0,d=[]}d.push(t),f+=i}return d&&d.length&&l.push(a(d.join(r),e,c,s)),l}},880:(t,e,n)=>{\"use strict\";n.d(e,{p:()=>s});var r=n(6837),i=n(282),o=n(5572);const a=500;function s(t,e,n=a){return new u({tooltipService:t,rootElement:e,handleTouchDelay:n})}class u{constructor(t){this.visualHostTooltipService=t.tooltipService,this.rootElement=t.rootElement,this.handleTouchDelay=t.handleTouchDelay}addTooltip(t,e,n,i){if(!t||!this.visualHostTooltipService.enabled())return;let a=this.rootElement,s=(0,r.Z)(t.nodes());s.on(\"mouseover.tooltip\",((t,r)=>{if(!this.canDisplayTooltip(t))return;let i=this.getCoordinates(t,a,!0),o=e(r);if(null==o)return;let s=n?[n(r)]:[];this.visualHostTooltipService.show({coordinates:i,isTouchEvent:!1,dataItems:o,identities:s})})),s.on(\"mouseout.tooltip\",((t,e)=>{this.visualHostTooltipService.hide({isTouchEvent:!1,immediately:!1})})),s.on(\"mousemove.tooltip\",((t,r)=>{if(!this.canDisplayTooltip(t))return;let o,s=this.getCoordinates(t,a,!0);if(i&&(o=e(r),null==o))return;let u=n?[n(r)]:[];this.visualHostTooltipService.move({coordinates:s,isTouchEvent:!1,dataItems:o,identities:u})}));let u=o.ME(),c=o.dF();o.bQ(),s.on(u+\".tooltip\",((t,r)=>{let i=this.getCoordinates(t,a,!0),o=e(r),s=n?[n(r)]:[];this.handleTouchTimeoutId=window.setTimeout((()=>{this.visualHostTooltipService.show({coordinates:i,isTouchEvent:!0,dataItems:o,identities:s}),this.handleTouchTimeoutId=void 0}),this.handleTouchDelay)})),s.on(c+\".tooltip\",(()=>{this.cancelTouchTimeoutEvents()}))}cancelTouchTimeoutEvents(){this.handleTouchTimeoutId&&clearTimeout(this.handleTouchTimeoutId)}hide(){this.visualHostTooltipService.hide({immediately:!0,isTouchEvent:!1})}canDisplayTooltip(t){let e=!0;const n=t;return void 0!==n.buttons&&(e=!(0!==n.buttons)),e=e&&null==this.handleTouchTimeoutId,e}getCoordinates(t,e,n){let r;if(n){let n,i=t;for(;n=i.sourceEvent;)i=n;let o=e.getBoundingClientRect();r=[i.clientX-o.left-e.clientLeft,i.clientY-o.top-e.clientTop]}else{let e=(0,i.Z)(t);e&&e.length>0&&(r=e[0])}return r}}},5572:(t,e,n)=>{\"use strict\";function r(){return\"touchstart\"}function i(){return\"touchend\"}function o(){return!1}n.d(e,{ME:()=>r,bQ:()=>o,dF:()=>i})},6455:(t,e,n)=>{\"use strict\";function r(t){return\"object\"==typeof t&&\"length\"in t?t:Array.from(t)}n.d(e,{Z:()=>r})},5486:(t,e,n)=>{\"use strict\";function r(t){return function(){return t}}n.d(e,{Z:()=>r})},5418:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>s});var r=n(844),i=n(8156);function o(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===i.P&&e.documentElement.namespaceURI===i.P?e.createElement(t):e.createElementNS(n,t)}}function a(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function s(t){var e=(0,r.Z)(t);return(e.local?a:o)(e)}},1304:(t,e,n)=>{\"use strict\";function r(t){return function(){return this.matches(t)}}function i(t){return function(e){return e.matches(t)}}n.d(e,{P:()=>i,Z:()=>r})},844:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(8156);function i(t){var e=t+=\"\",n=e.indexOf(\":\");return n>=0&&\"xmlns\"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.Z.hasOwnProperty(e)?{space:r.Z[e],local:t}:t}},8156:(t,e,n)=>{\"use strict\";n.d(e,{P:()=>r,Z:()=>i});var r=\"http://www.w3.org/1999/xhtml\";const i={svg:\"http://www.w3.org/2000/svg\",xhtml:r,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"}},574:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(5691);function i(t,e){if(t=(0,r.Z)(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var i=n.createSVGPoint();return i.x=t.clientX,i.y=t.clientY,[(i=i.matrixTransform(e.getScreenCTM().inverse())).x,i.y]}if(e.getBoundingClientRect){var o=e.getBoundingClientRect();return[t.clientX-o.left-e.clientLeft,t.clientY-o.top-e.clientTop]}}return[t.pageX,t.pageY]}},282:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(574),i=n(5691);function o(t,e){return t.target&&(t=(0,i.Z)(t),void 0===e&&(e=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>(0,r.Z)(t,e)))}},6837:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(6455),i=n(762);function o(t){return\"string\"==typeof t?new i.Y1([document.querySelectorAll(t)],[document.documentElement]):new i.Y1([null==t?[]:(0,r.Z)(t)],i.Jz)}},3855:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(5418);function i(t){var e=\"function\"==typeof t?t:(0,r.Z)(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))}},8190:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>l});var r=n(844);function i(t){return function(){this.removeAttribute(t)}}function o(t){return function(){this.removeAttributeNS(t.space,t.local)}}function a(t,e){return function(){this.setAttribute(t,e)}}function s(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function u(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function c(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function l(t,e){var n=(0,r.Z)(t);if(arguments.length<2){var l=this.node();return n.local?l.getAttributeNS(n.space,n.local):l.getAttribute(n)}return this.each((null==e?n.local?o:i:\"function\"==typeof e?n.local?c:u:n.local?s:a)(n,e))}},9049:(t,e,n)=>{\"use strict\";function r(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}n.d(e,{Z:()=>r})},9660:(t,e,n)=>{\"use strict\";function r(t){return t.trim().split(/^|\\s+/)}function i(t){return t.classList||new o(t)}function o(t){this._node=t,this._names=r(t.getAttribute(\"class\")||\"\")}function a(t,e){for(var n=i(t),r=-1,o=e.length;++rh}),o.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute(\"class\",this._names.join(\" \")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(t){return this._names.indexOf(t)>=0}}},1280:(t,e,n)=>{\"use strict\";function r(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function i(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function o(t){return this.select(t?i:r)}n.d(e,{Z:()=>o})},869:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>l});var r=n(762),i=n(6580),o=n(6455),a=n(5486);function s(t,e,n,r,o,a){for(var s,u=0,c=e.length,l=a.length;u=N&&(N=S+1);!(M=b[N])&&++N{\"use strict\";function r(t){return arguments.length?this.property(\"__data__\",t):this.node().__data__}n.d(e,{Z:()=>r})},2461:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>s});var r=n(4416);function i(t,e,n){var i=(0,r.Z)(t),o=i.CustomEvent;\"function\"==typeof o?o=new o(e,n):(o=i.document.createEvent(\"Event\"),n?(o.initEvent(e,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(e,!1,!1)),t.dispatchEvent(o)}function o(t,e){return function(){return i(this,t,e)}}function a(t,e){return function(){return i(this,t,e.apply(this,arguments))}}function s(t,e){return this.each((\"function\"==typeof e?a:o)(t,e))}},5353:(t,e,n)=>{\"use strict\";function r(t){for(var e=this._groups,n=0,r=e.length;nr})},352:(t,e,n)=>{\"use strict\";function r(){return!this.node()}n.d(e,{Z:()=>r})},6580:(t,e,n)=>{\"use strict\";n.d(e,{F:()=>a,Z:()=>o});var r=n(530),i=n(762);function o(){return new i.Y1(this._enter||this._groups.map(r.Z),this._parents)}function a(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}a.prototype={constructor:a,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}}},7772:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(530),i=n(762);function o(){return new i.Y1(this._exit||this._groups.map(r.Z),this._parents)}},3425:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(762),i=n(1304);function o(t){\"function\"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=new Array(n),a=0;a{\"use strict\";function r(){this.innerHTML=\"\"}function i(t){return function(){this.innerHTML=t}}function o(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?\"\":e}}function a(t){return arguments.length?this.each(null==t?r:(\"function\"==typeof t?o:i)(t)):this.node().innerHTML}n.d(e,{Z:()=>a})},762:(t,e,n)=>{\"use strict\";n.d(e,{Jz:()=>V,Y1:()=>D});var r=n(9652),i=n(8566),o=n(5025),a=n(1706),s=n(3425),u=n(869),c=n(6580),l=n(7772),h=n(9979),f=n(1566),d=n(2158),p=n(3004),g=n(9049),v=n(7899),y=n(9405),m=n(4019),w=n(352),Z=n(5353),_=n(8190),b=n(7981),x=n(9973),M=n(9660),S=n(5341),N=n(1088),A=n(9588),k=n(2573),C=n(3855),E=n(954),P=n(8327),T=n(1280),L=n(5045),B=n(7797),I=n(2461),F=n(4478),V=[null];function D(t,e){this._groups=t,this._parents=e}D.prototype=function(){return new D([[document.documentElement]],V)}.prototype={constructor:D,select:r.Z,selectAll:i.Z,selectChild:o.Z,selectChildren:a.Z,filter:s.Z,data:u.Z,enter:c.Z,exit:l.Z,join:h.Z,merge:f.Z,selection:function(){return this},order:d.Z,sort:p.Z,call:g.Z,nodes:v.Z,node:y.Z,size:m.Z,empty:w.Z,each:Z.Z,attr:_.Z,style:b.Z,property:x.Z,classed:M.Z,text:S.Z,html:N.Z,raise:A.Z,lower:k.Z,append:C.Z,insert:E.Z,remove:P.Z,clone:T.Z,datum:L.Z,on:B.Z,dispatch:I.Z,[Symbol.iterator]:F.Z}},954:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>a});var r=n(5418),i=n(9029);function o(){return null}function a(t,e){var n=\"function\"==typeof t?t:(0,r.Z)(t),a=null==e?o:\"function\"==typeof e?e:(0,i.Z)(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),a.apply(this,arguments)||null)}))}},4478:(t,e,n)=>{\"use strict\";function*r(){for(var t=this._groups,e=0,n=t.length;er})},9979:(t,e,n)=>{\"use strict\";function r(t,e,n){var r=this.enter(),i=this,o=this.exit();return r=\"function\"==typeof t?t(r):r.append(t+\"\"),null!=e&&(i=e(i)),null==n?o.remove():n(o),r&&i?r.merge(i).order():i}n.d(e,{Z:()=>r})},2573:(t,e,n)=>{\"use strict\";function r(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},1566:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(762);function i(t){if(!(t instanceof r.Y1))throw new Error(\"invalid merge\");for(var e=this._groups,n=t._groups,i=e.length,o=n.length,a=Math.min(i,o),s=new Array(i),u=0;u{\"use strict\";function r(){for(var t=this._groups,e=0,n=t.length;er})},7899:(t,e,n)=>{\"use strict\";function r(){return Array.from(this)}n.d(e,{Z:()=>r})},7797:(t,e,n)=>{\"use strict\";function r(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+\"\"),u=s.length;if(!(arguments.length<2)){for(c=e?i:r,o=0;oo})},2158:(t,e,n)=>{\"use strict\";function r(){for(var t=this._groups,e=-1,n=t.length;++e=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this}n.d(e,{Z:()=>r})},9973:(t,e,n)=>{\"use strict\";function r(t){return function(){delete this[t]}}function i(t,e){return function(){this[t]=e}}function o(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function a(t,e){return arguments.length>1?this.each((null==e?r:\"function\"==typeof e?o:i)(t,e)):this.node()[t]}n.d(e,{Z:()=>a})},9588:(t,e,n)=>{\"use strict\";function r(){this.nextSibling&&this.parentNode.appendChild(this)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},8327:(t,e,n)=>{\"use strict\";function r(){var t=this.parentNode;t&&t.removeChild(this)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},9652:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>o});var r=n(762),i=n(9029);function o(t){\"function\"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=new Array(n),a=0;a{\"use strict\";n.d(e,{Z:()=>a});var r=n(762),i=n(6455),o=n(6176);function a(t){t=\"function\"==typeof t?function(t){return function(){var e=t.apply(this,arguments);return null==e?[]:(0,i.Z)(e)}}(t):(0,o.Z)(t);for(var e=this._groups,n=e.length,a=[],s=[],u=0;u{\"use strict\";n.d(e,{Z:()=>a});var r=n(1304),i=Array.prototype.find;function o(){return this.firstElementChild}function a(t){return this.select(null==t?o:function(t){return function(){return i.call(this.children,t)}}(\"function\"==typeof t?t:(0,r.P)(t)))}},1706:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>a});var r=n(1304),i=Array.prototype.filter;function o(){return this.children}function a(t){return this.selectAll(null==t?o:function(t){return function(){return i.call(this.children,t)}}(\"function\"==typeof t?t:(0,r.P)(t)))}},4019:(t,e,n)=>{\"use strict\";function r(){let t=0;for(const e of this)++t;return t}n.d(e,{Z:()=>r})},3004:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(762);function i(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=o);for(var n=this._groups,i=n.length,a=new Array(i),s=0;se?1:t>=e?0:NaN}},530:(t,e,n)=>{\"use strict\";function r(t){return new Array(t.length)}n.d(e,{Z:()=>r})},7981:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>s});var r=n(4416);function i(t){return function(){this.style.removeProperty(t)}}function o(t,e,n){return function(){this.style.setProperty(t,e,n)}}function a(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function s(t,e,n){return arguments.length>1?this.each((null==e?i:\"function\"==typeof e?a:o)(t,e,null==n?\"\":n)):function(t,e){return t.style.getPropertyValue(e)||(0,r.Z)(t).getComputedStyle(t,null).getPropertyValue(e)}(this.node(),t)}},5341:(t,e,n)=>{\"use strict\";function r(){this.textContent=\"\"}function i(t){return function(){this.textContent=t}}function o(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?\"\":e}}function a(t){return arguments.length?this.each(null==t?r:(\"function\"==typeof t?o:i)(t)):this.node().textContent}n.d(e,{Z:()=>a})},9029:(t,e,n)=>{\"use strict\";function r(){}function i(t){return null==t?r:function(){return this.querySelector(t)}}n.d(e,{Z:()=>i})},6176:(t,e,n)=>{\"use strict\";function r(){return[]}function i(t){return null==t?r:function(){return this.querySelectorAll(t)}}n.d(e,{Z:()=>i})},5691:(t,e,n)=>{\"use strict\";function r(t){let e;for(;e=t.sourceEvent;)t=e;return t}n.d(e,{Z:()=>r})},4416:(t,e,n)=>{\"use strict\";function r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}n.d(e,{Z:()=>r})},4732:(t,e,n)=>{\"use strict\";n.d(e,{BB:()=>i});const r=\"px\";function i(t){return t+r}},7281:(t,e,n)=>{\"use strict\";function r(t,e){function n(){}n.prototype=t;let r=new n;return e&&e(r),r}n.d(e,{ED:()=>r})},5666:t=>{var e=function(t){\"use strict\";var e,n=Object.prototype,r=n.hasOwnProperty,i=\"function\"==typeof Symbol?Symbol:{},o=i.iterator||\"@@iterator\",a=i.asyncIterator||\"@@asyncIterator\",s=i.toStringTag||\"@@toStringTag\";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},\"\")}catch(t){u=function(t,e,n){return t[e]=n}}function c(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),a=new k(r||[]);return o._invoke=function(t,e,n){var r=h;return function(i,o){if(r===d)throw new Error(\"Generator is already running\");if(r===p){if(\"throw\"===i)throw o;return E()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===g)continue;return s}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=d;var u=l(t,e,n);if(\"normal\"===u.type){if(r=n.done?p:f,u.arg===g)continue;return{value:u.arg,done:n.done}}\"throw\"===u.type&&(r=p,n.method=\"throw\",n.arg=u.arg)}}}(t,n,a),o}function l(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=c;var h=\"suspendedStart\",f=\"suspendedYield\",d=\"executing\",p=\"completed\",g={};function v(){}function y(){}function m(){}var w={};u(w,o,(function(){return this}));var Z=Object.getPrototypeOf,_=Z&&Z(Z(C([])));_&&_!==n&&r.call(_,o)&&(w=_);var b=m.prototype=v.prototype=Object.create(w);function x(t){[\"next\",\"throw\",\"return\"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function M(t,e){function n(i,o,a,s){var u=l(t[i],t,o);if(\"throw\"!==u.type){var c=u.arg,h=c.value;return h&&\"object\"==typeof h&&r.call(h,\"__await\")?e.resolve(h.__await).then((function(t){n(\"next\",t,a,s)}),(function(t){n(\"throw\",t,a,s)})):e.resolve(h).then((function(t){c.value=t,a(c)}),(function(t){return n(\"throw\",t,a,s)}))}s(u.arg)}var i;this._invoke=function(t,r){function o(){return new e((function(e,i){n(t,r,e,i)}))}return i=i?i.then(o,o):o()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,\"throw\"===n.method){if(t.iterator.return&&(n.method=\"return\",n.arg=e,S(t,n),\"throw\"===n.method))return g;n.method=\"throw\",n.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return g}var i=l(r,t.iterator,n.arg);if(\"throw\"===i.type)return n.method=\"throw\",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,\"return\"!==n.method&&(n.method=\"next\",n.arg=e),n.delegate=null,g):o:(n.method=\"throw\",n.arg=new TypeError(\"iterator result is not an object\"),n.delegate=null,g)}function N(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(N,this),this.reset(!0)}function C(t){if(t){var n=t[o];if(n)return n.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;A(n)}return i}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,n,r){return this.delegate={iterator:C(t),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=e),g}},t}(t.exports);try{regeneratorRuntime=e}catch(t){\"object\"==typeof globalThis?globalThis.regeneratorRuntime=e:Function(\"r\",\"regeneratorRuntime = r\")(e)}},7800:(t,e,n)=>{\"use strict\";n.d(e,{v:()=>v});var r=n(9825),i=n(5315),o=n(9216),a=(n(5666),n(880)),s=n(7802),u=n(6363),c=n(8753);let l=!0,h=\"#000000\",f=\"Width\",d=30;function p(t,e,n){if(n.isHighContrast)return n.background.value;const r={solid:{color:n.getColor(`${t.values[e]}`).value}};return(0,u.b)(t,e,\"colorSelector\",\"fill\",r).solid.color}function g(t,e,n){return e.isHighContrast?e.foreground.value:(0,u.N)(t,\"enableAxis\",\"fill\",{solid:{color:n}}).solid.color}class v{constructor(t){this.host=t.host,this.element=t.element,this.selectionManager=t.host.createSelectionManager(),this.locale=t.host.locale,this.selectionManager.registerOnSelectCallback((()=>{this.syncSelectionState(this.barSelection,this.selectionManager.getSelectionIds())})),this.tooltipServiceWrapper=(0,a.p)(this.host.tooltipService,t.element),this.svg=(0,r.Ys)(t.element).append(\"svg\").classed(\"barChart\",!0),this.barContainer=this.svg.append(\"g\").classed(\"barContainer\",!0),this.xAxis=this.svg.append(\"g\").classed(\"xAxis\",!0),this.handleContextMenu()}update(t){let e=function(t,e){let n=t.dataViews;if(!(n&&n[0]&&n[0].categorical&&n[0].categorical.categories&&n[0].categorical.categories[0].source&&n[0].categorical.values))return{dataPoints:[],dataMax:0,settings:{}};let r,i=n[0].categorical,o=i.categories[0],a=i.values[0],s=[],c=e.colorPalette,v=n[0].metadata.objects;const y=function(t){return t.isHighContrast?t.foreground.value:null}(c);let m={enableAxis:{show:(0,u.N)(v,\"enableAxis\",\"show\",l),fill:g(v,c,h)},generalView:{width:(0,u.N)(v,\"generalView\",\"width\",d),displayName:(0,u.N)(v,\"generalView\",\"displayName\",f)}};const w=c.isHighContrast?2:0;for(let t=0,n=Math.max(o.values.length,a.values.length);tt.category))).rangeRound([0,a]).padding(.2),m=(0,o.LL)(y);const w=t.dataViews[0]?t.dataViews[0].metadata.objects:null;this.xAxis.attr(\"transform\",\"translate(0, \"+s+\")\").call(m).attr(\"color\",g(w,this.host.colorPalette,h));const Z=this.xAxis.selectAll(\"text\");v.wordBreak(Z,y.bandwidth(),s),this.barSelection=this.barContainer.selectAll(\".bar\").data(this.barDataPoints);const _=this.barSelection.enter().append(\"rect\").merge(this.barSelection);_.classed(\"bar\",!0);const b=e.settings.generalView.width;_.attr(\"width\",b).attr(\"height\",(t=>s-c(t.value))).attr(\"y\",(t=>c(t.value))).attr(\"x\",(t=>y(t.category))).style(\"fill\",(t=>t.color)),this.tooltipServiceWrapper.addTooltip(_,(t=>this.getTooltipData(t)),(t=>t.selectionId)),this.syncSelectionState(_,this.selectionManager.getSelectionIds()),_.on(\"click\",(t=>{if(this.host.hostCapabilities.allowInteractions){const e=r.B.ctrlKey;this.selectionManager.select(t.selectionId,e).then((t=>{this.syncSelectionState(_,t)})),r.B.stopPropagation()}})),this.barSelection.exit().remove(),this.handleClick(_)}static wordBreak(t,e,n){t.each((function(){s.y.wordBreak(this,e,n)}))}handleClick(t){this.svg.on(\"click\",(e=>{this.host.hostCapabilities.allowInteractions&&this.selectionManager.clear().then((()=>{this.syncSelectionState(t,[])}))}))}handleContextMenu(){this.svg.on(\"contextmenu\",(()=>{const t=n(9825).B,e=t.target;let i=(0,r.Ys)(e).datum();this.selectionManager.showContextMenu(i?i.selectionId:{},{x:t.clientX,y:t.clientY}),t.preventDefault()}))}syncSelectionState(t,e){t&&e&&e.length}enumerateObjectInstances(t){let e=t.objectName,n=[];if(!this.barChartSettings||!this.barChartSettings.enableAxis||!this.barDataPoints)return n;switch(e){case\"enableAxis\":n.push({objectName:e,properties:{show:this.barChartSettings.enableAxis.show,fill:this.barChartSettings.enableAxis.fill},selector:null});break;case\"generalView\":n.push({objectName:e,properties:{width:this.barChartSettings.generalView.width},validValues:{width:{numberRange:{min:30,max:100}}},selector:null})}return n}destroy(){}getTooltipData(t){let e=(0,c.Z)(this.locale,\"LanguageKey\");return[{displayName:t.category,value:t.value.toString(),color:t.color,header:e&&\"displayed language \"+e}]}}v.Config={xScalePadding:.1,width:30,transparentOpacity:.4,margins:{top:0,right:0,bottom:25,left:30},xAxisFontMultiplier:.04}},8753:(t,e,n)=>{\"use strict\";n.d(e,{Z:()=>i});var r=n(5735);function i(t,e){return r.N&&e&&r.N[e]&&(r.N[e].localization[t]||r.N[e].defaultValue)}},5735:(t,e,n)=>{\"use strict\";n.d(e,{N:()=>r});let r={LanguageKey:{defaultValue:\"English(English)\",localization:{\"ar-SA\":\"العربية (Arabic)\",\"bg-BG\":\"български (Bulgarian)\",\"ca-ES\":\"català (Catalan)\",\"cs-CZ\":\"čeština (Czech)\",\"da-DK\":\"dansk (Danish)\",\"de-DE\":\"Deutsche (German)\",\"el-GR\":\"ελληνικά (Greek)\",\"en-US\":\"English (English)\",\"es-ES\":\"español service (Spanish)\",\"et-EE\":\"eesti (Estonian)\",\"eU-ES\":\"Euskal (Basque)\",\"fi-FI\":\"suomi (Finnish)\",\"fr-FR\":\"français (French)\",\"gl-ES\":\"galego (Galician)\",\"he-IL\":\"עברית (Hebrew)\",\"hi-IN\":\"हिन्दी (Hindi)\",\"hr-HR\":\"hrvatski (Croatian)\",\"hu-HU\":\"magyar (Hungarian)\",\"id-ID\":\"Bahasa Indonesia (Indonesian)\",\"it-IT\":\"italiano (Italian)\",\"ja-JP\":\"日本の (Japanese)\",\"kk-KZ\":\"Қазақ (Kazakh)\",\"ko-KR\":\"한국의 (Korean)\",\"it-LT\":\"Lietuvos (Lithuanian)\",\"lv-LV\":\"Latvijas (Latvian)\",\"ms-MY\":\"Bahasa Melayu (Malay)\",\"nb-NO\":\"norsk (Norwegian)\",\"nl-NL\":\"Nederlands (Dutch)\",\"pl-PL\":\"polski (Polish)\",\"pt-BR\":\"português (Portuguese)\",\"pt-PT\":\"português (Portuguese)\",\"ro-RO\":\"românesc (Romanian)\",\"ru-RU\":\"русский (Russian)\",\"sk-SK\":\"slovenský (Slovak)\",\"sl-SI\":\"slovenski (Slovenian)\",\"sr-Cyrl-RS\":\"српски (Serbian)\",\"sr-Latn-RS\":\"srpski (Serbian)\",\"sv-SE\":\"svenska (Swedish)\",\"th-TH\":\"ไทย (Thai)\",\"tr-TR\":\"Türk (Turkish)\",\"uk-UA\":\"український (Ukrainian)\",\"vi-VN\":\"tiếng Việt (Vietnamese)\",\"zh-CN\":\"中国 (Chinese-Simplified)\",\"zh-TW\":\"中國 (Chinese-Tranditional)\"}}}},6363:(t,e,n)=>{\"use strict\";function r(t,e,n,r){if(t){let r=t[e];if(r){let t=r[n];if(void 0!==t)return t}}return r}function i(t,e,n,r,i){let o=t.objects;if(o){let t=o[e];if(t){let e=t[n];if(e){let t=e[r];if(void 0!==t)return t}}}return i}n.d(e,{N:()=>r,b:()=>i})}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})};var r={};(()=>{\"use strict\";n.r(r),n.d(r,{default:()=>o});var t=n(7800),e=window.powerbi,i={name:\"PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166\",displayName:\"barChart\",class:\"BarChart\",apiVersion:\"3.8.0\",create:e=>{if(t.v)return new t.v(e);throw\"Visual instance not found\"},createModalDialog:(t,e,n)=>{const r=globalThis.dialogRegistry;t in r&&new r[t](e,n)},custom:!0};void 0!==e&&(e.visuals=e.visuals||{},e.visuals.plugins=e.visuals.plugins||{},e.visuals.plugins.PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166=i);const o=i})(),PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166=r})();","css":"p {\n font-size: 20px;\n font-weight: bold;\n}\np em {\n background: yellow;\n padding: 5px;\n}\n.xAxis path {\n display: none;\n}\n.helpLink {\n position: absolute;\n top: 0px;\n right: 12px;\n display: block;\n width: 20px;\n height: 20px;\n border: 2px solid #80B0E0;\n border-radius: 20px;\n color: #80B0E0;\n text-align: center;\n font-size: 16px;\n line-height: 20px;\n}\n.helpLink.hidden {\n display: none;\n}\n.LandingPage {\n position: absolute;\n text-align: center;\n top: 12px;\n font-size: 12pt;\n right: 15px;\n}\n.LandingPageHelpLink {\n position: absolute;\n text-decoration: underline;\n top: 50px;\n font-size: 12pt;\n right: 15px;\n}\n\n","iconBase64":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2RpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpBOEJGMzkxN0NBRDNFMDExQTcxQ0JFODI3ODBCQUE5RSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3NEY1QjA1NUQ0OTAxMUUwQTgxREI2NjMxMkNEMUNEMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo3NEY1QjA1NEQ0OTAxMUUwQTgxREI2NjMxMkNEMUNEMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5Mjk5RDU1ODBGRDRFMDExQTcxQ0JFODI3ODBCQUE5RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpBOEJGMzkxN0NBRDNFMDExQTcxQ0JFODI3ODBCQUE5RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpDoNX0AAAI3SURBVHjarJRLSFVRFIY9t7SiRDGLoEEPCRJRaCSYkxCiFCXCF+LIMExQLkilgumgwkbdBuWDRC2EomhURCOjgagkXEgKLUKhidobM6H0+i34rxyPnuvEA5/rXPda/1l7739vJxKJxG3ls93+hEKhTILxJhgMftmsiPxdhHw4CfepeR8dCyjWwwB0kZy3iVgCoQ2ewnmXxhrBD7Cgr/ZQVA17fDRPw2UYhzK6G99IsBse6/0QNME+H8FT4EA/YiPqOgA1q4IMzBNuw6iKjkCpj+Av+AdnEEmD3bxfhzvuDk30HaEaLsEkXCO53rN+Bwg5qsvTuj/TjGYtx9nINhRmEx7AYWiFW7AXOuEcbPOUvIZ2mnrl+PkQUbNEh4QHNKUSDdsSBWEOlmxTEfvs26FL9Khe211if6Acgee+xo7xzMgBxfq9qPe3fgWBGN2lEnqtG9nExM7CV3jp3bDos2bKJB0nHFRxAxRpA/5CIXyHh5ABv6GZqd9dJ6iz2SjbxMMypGhJFtTlNzu3kK7xgDxpove8U66FK2A+s6nul5gVVMEL+Ak7lG/T+g9JcIOGar2CRUoogxMwpP/bLTJMB9bRhDbkk5bBUU0y3ES0xS04CBfN9RSHiY90vJK0BHaSzG9h2eejS3RJeVfdtrGzuGyd8CX7Yq6ExuCH63jaVMPkFOv6OibB6DKs2+VEQp+WYBoqERn2sVWWRNN0YurIfeL14U6YkpkLYCSG6e0yqdCxvKBLIm5FgAEAV0nKuwMYRUsAAAAASUVORK5CYII="},"visualEntryPoint":""} \ No newline at end of file diff --git a/.tmp/drop/status b/.tmp/drop/status new file mode 100644 index 0000000..0b4fb95 --- /dev/null +++ b/.tmp/drop/status @@ -0,0 +1,2 @@ +1693783140011 +PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166 \ No newline at end of file diff --git a/.tmp/drop/visual.css b/.tmp/drop/visual.css new file mode 100644 index 0000000..b1e99f4 --- /dev/null +++ b/.tmp/drop/visual.css @@ -0,0 +1,43 @@ +p { + font-size: 20px; + font-weight: bold; +} +p em { + background: yellow; + padding: 5px; +} +.xAxis path { + display: none; +} +.helpLink { + position: absolute; + top: 0px; + right: 12px; + display: block; + width: 20px; + height: 20px; + border: 2px solid #80B0E0; + border-radius: 20px; + color: #80B0E0; + text-align: center; + font-size: 16px; + line-height: 20px; +} +.helpLink.hidden { + display: none; +} +.LandingPage { + position: absolute; + text-align: center; + top: 12px; + font-size: 12pt; + right: 15px; +} +.LandingPageHelpLink { + position: absolute; + text-decoration: underline; + top: 50px; + font-size: 12pt; + right: 15px; +} + diff --git a/.tmp/drop/visual.css.map b/.tmp/drop/visual.css.map new file mode 100644 index 0000000..647b734 --- /dev/null +++ b/.tmp/drop/visual.css.map @@ -0,0 +1 @@ +{"version":3,"file":"visual.css","mappings":"AAAA;EACE,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,kBAAkB;EAClB,YAAY;AACd;AACA;EACE,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,WAAW;EACX,cAAc;EACd,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,mBAAmB;EACnB,cAAc;EACd,kBAAkB;EAClB,eAAe;EACf,iBAAiB;AACnB;AACA;EACE,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,kBAAkB;EAClB,SAAS;EACT,eAAe;EACf,WAAW;AACb;AACA;EACE,kBAAkB;EAClB,0BAA0B;EAC1B,SAAS;EACT,eAAe;EACf,WAAW;AACb","sources":["webpack:///./style/visual.less"],"sourcesContent":["p {\n font-size: 20px;\n font-weight: bold;\n}\np em {\n background: yellow;\n padding: 5px;\n}\n.xAxis path {\n display: none;\n}\n.helpLink {\n position: absolute;\n top: 0px;\n right: 12px;\n display: block;\n width: 20px;\n height: 20px;\n border: 2px solid #80B0E0;\n border-radius: 20px;\n color: #80B0E0;\n text-align: center;\n font-size: 16px;\n line-height: 20px;\n}\n.helpLink.hidden {\n display: none;\n}\n.LandingPage {\n position: absolute;\n text-align: center;\n top: 12px;\n font-size: 12pt;\n right: 15px;\n}\n.LandingPageHelpLink {\n position: absolute;\n text-decoration: underline;\n top: 50px;\n font-size: 12pt;\n right: 15px;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/.tmp/drop/visual.js b/.tmp/drop/visual.js new file mode 100644 index 0000000..152d37d --- /dev/null +++ b/.tmp/drop/visual.js @@ -0,0 +1 @@ +var PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166;(()=>{var t={4792:(t,e,n)=>{"use strict";var r=Array.prototype;r.slice,r.map},1077:(t,e,n)=>{"use strict";function r(t,e){return te?1:t>=e?0:NaN}n.d(e,{Z:()=>r})},4355:(t,e,n)=>{"use strict";n.d(e,{ZP:()=>a});var r=n(1077),i=(0,n(9173).Z)(r.Z),o=i.right;i.left;const a=o},9173:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(1077);function i(t){var e;return 1===t.length&&(e=t,t=function(t,n){return(0,r.Z)(e(t),n)}),{left:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[o],n)<0?r=o+1:i=o}return r},right:function(e,n,r,i){for(null==r&&(r=0),null==i&&(i=e.length);r>>1;t(e[o],n)>0?i=o:r=o+1}return r}}}},902:(t,e,n)=>{"use strict";n(4792),n(4355),n(7614)},91:(t,e,n)=>{"use strict";n.d(e,{G9:()=>o.G9,b4:()=>r.ZP,ly:()=>o.ly,sd:()=>o.ZP,w6:()=>i.Z});var r=n(4355),i=(n(902),n(4081),n(4893)),o=n(7614)},4893:(t,e,n)=>{"use strict";function r(t,e,n){t=+t,e=+e,n=(i=arguments.length)<2?(e=t,t=0,1):i<3?1:+n;for(var r=-1,i=0|Math.max(0,Math.ceil((e-t)/n)),o=new Array(i);++rr})},4081:(t,e,n)=>{"use strict";n(4792)},7614:(t,e,n)=>{"use strict";n.d(e,{G9:()=>s,ZP:()=>a,ly:()=>u});var r=Math.sqrt(50),i=Math.sqrt(10),o=Math.sqrt(2);function a(t,e,n){var r,i,o,a,u=-1;if(n=+n,(t=+t)==(e=+e)&&n>0)return[t];if((r=e0)for(t=Math.ceil(t/a),e=Math.floor(e/a),o=new Array(i=Math.ceil(e-t+1));++u=0?(u>=r?10:u>=i?5:u>=o?2:1)*Math.pow(10,s):-Math.pow(10,-s)/(u>=r?10:u>=i?5:u>=o?2:1)}function u(t,e,n){var a=Math.abs(e-t)/Math.max(0,n),s=Math.pow(10,Math.floor(Math.log(a)/Math.LN10)),u=a/s;return u>=r?s*=10:u>=i?s*=5:u>=o&&(s*=2),e{"use strict";n.d(e,{t:()=>r});var r=Array.prototype.slice},7953:(t,e,n)=>{"use strict";n.d(e,{LL:()=>v});var r=n(4844),i=n(9985),o=1,a=2,s=3,u=4,c=1e-6;function l(t){return"translate("+(t+.5)+",0)"}function h(t){return"translate(0,"+(t+.5)+")"}function f(t){return function(e){return+t(e)}}function d(t){var e=Math.max(0,t.bandwidth()-1)/2;return t.round()&&(e=Math.round(e)),function(n){return+t(n)+e}}function p(){return!this.__axis}function g(t,e){var n=[],g=null,v=null,y=6,m=6,w=3,Z=t===o||t===u?-1:1,_=t===u||t===a?"x":"y",b=t===o||t===s?l:h;function x(r){var l=null==g?e.ticks?e.ticks.apply(e,n):e.domain():g,h=null==v?e.tickFormat?e.tickFormat.apply(e,n):i.Z:v,x=Math.max(y,0)+w,M=e.range(),S=+M[0]+.5,N=+M[M.length-1]+.5,A=(e.bandwidth?d:f)(e.copy()),k=r.selection?r.selection():r,C=k.selectAll(".domain").data([null]),E=k.selectAll(".tick").data(l,e).order(),P=E.exit(),T=E.enter().append("g").attr("class","tick"),L=E.select("line"),B=E.select("text");C=C.merge(C.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),E=E.merge(T),L=L.merge(T.append("line").attr("stroke","currentColor").attr(_+"2",Z*y)),B=B.merge(T.append("text").attr("fill","currentColor").attr(_,Z*x).attr("dy",t===o?"0em":t===s?"0.71em":"0.32em")),r!==k&&(C=C.transition(r),E=E.transition(r),L=L.transition(r),B=B.transition(r),P=P.transition(r).attr("opacity",c).attr("transform",(function(t){return isFinite(t=A(t))?b(t):this.getAttribute("transform")})),T.attr("opacity",c).attr("transform",(function(t){var e=this.parentNode.__axis;return b(e&&isFinite(e=e(t))?e:A(t))}))),P.remove(),C.attr("d",t===u||t==a?m?"M"+Z*m+","+S+"H0.5V"+N+"H"+Z*m:"M0.5,"+S+"V"+N:m?"M"+S+","+Z*m+"V0.5H"+N+"V"+Z*m:"M"+S+",0.5H"+N),E.attr("opacity",1).attr("transform",(function(t){return b(A(t))})),L.attr(_+"2",Z*y),B.attr(_,Z*x).text(h),k.filter(p).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===a?"start":t===u?"end":"middle"),k.each((function(){this.__axis=A}))}return x.scale=function(t){return arguments.length?(e=t,x):e},x.ticks=function(){return n=r.t.call(arguments),x},x.tickArguments=function(t){return arguments.length?(n=null==t?[]:r.t.call(t),x):n.slice()},x.tickValues=function(t){return arguments.length?(g=null==t?null:r.t.call(t),x):g&&g.slice()},x.tickFormat=function(t){return arguments.length?(v=t,x):v},x.tickSize=function(t){return arguments.length?(y=m=+t,x):y},x.tickSizeInner=function(t){return arguments.length?(y=+t,x):y},x.tickSizeOuter=function(t){return arguments.length?(m=+t,x):m},x.tickPadding=function(t){return arguments.length?(w=+t,x):w},x}function v(t){return g(s,t)}},9985:(t,e,n)=>{"use strict";function r(t){return t}n.d(e,{Z:()=>r})},9216:(t,e,n)=>{"use strict";n.d(e,{LL:()=>r.LL});var r=n(7953)},2300:(t,e,n)=>{"use strict";n.d(e,{UI:()=>r.Z}),n(9226),n(7719);var r=n(3998)},3998:(t,e,n)=>{"use strict";n.d(e,{O:()=>r,Z:()=>a});var r="$";function i(){}function o(t,e){var n=new i;if(t instanceof i)t.each((function(t,e){n.set(e,t)}));else if(Array.isArray(t)){var r,o=-1,a=t.length;if(null==e)for(;++o{"use strict";n(3998)},7719:(t,e,n)=>{"use strict";var r=n(3998);function i(){}var o=r.Z.prototype;i.prototype=function(t,e){var n=new i;if(t instanceof i)t.each((function(t){n.add(t)}));else if(t){var r=-1,o=t.length;if(null==e)for(;++r{"use strict";n.d(e,{B8:()=>M,Il:()=>i,J5:()=>a,SU:()=>x,Ss:()=>S,Ym:()=>P,ZP:()=>Z,xV:()=>o});var r=n(4087);function i(){}var o=.7,a=1/o,s="\\s*([+-]?\\d+)\\s*",u="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",c="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",l=/^#([0-9a-f]{3,8})$/,h=new RegExp("^rgb\\("+[s,s,s]+"\\)$"),f=new RegExp("^rgb\\("+[c,c,c]+"\\)$"),d=new RegExp("^rgba\\("+[s,s,s,u]+"\\)$"),p=new RegExp("^rgba\\("+[c,c,c,u]+"\\)$"),g=new RegExp("^hsl\\("+[u,c,c]+"\\)$"),v=new RegExp("^hsla\\("+[u,c,c,u]+"\\)$"),y={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function m(){return this.rgb().formatHex()}function w(){return this.rgb().formatRgb()}function Z(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=l.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?_(e):3===n?new S(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?new S(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?new S(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=h.exec(t))?new S(e[1],e[2],e[3],1):(e=f.exec(t))?new S(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=d.exec(t))?b(e[1],e[2],e[3],e[4]):(e=p.exec(t))?b(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=g.exec(t))?C(e[1],e[2]/100,e[3]/100,1):(e=v.exec(t))?C(e[1],e[2]/100,e[3]/100,e[4]):y.hasOwnProperty(t)?_(y[t]):"transparent"===t?new S(NaN,NaN,NaN,0):null}function _(t){return new S(t>>16&255,t>>8&255,255&t,1)}function b(t,e,n,r){return r<=0&&(t=e=n=NaN),new S(t,e,n,r)}function x(t){return t instanceof i||(t=Z(t)),t?new S((t=t.rgb()).r,t.g,t.b,t.opacity):new S}function M(t,e,n,r){return 1===arguments.length?x(t):new S(t,e,n,null==r?1:r)}function S(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function N(){return"#"+k(this.r)+k(this.g)+k(this.b)}function A(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function k(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function C(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new T(t,e,n,r)}function E(t){if(t instanceof T)return new T(t.h,t.s,t.l,t.opacity);if(t instanceof i||(t=Z(t)),!t)return new T;if(t instanceof T)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,o=Math.min(e,n,r),a=Math.max(e,n,r),s=NaN,u=a-o,c=(a+o)/2;return u?(s=e===a?(n-r)/u+6*(n0&&c<1?0:s,new T(s,u,c,t.opacity)}function P(t,e,n,r){return 1===arguments.length?E(t):new T(t,e,n,null==r?1:r)}function T(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function L(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}(0,r.Z)(i,Z,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:m,formatHex:m,formatHsl:function(){return E(this).formatHsl()},formatRgb:w,toString:w}),(0,r.Z)(S,M,(0,r.l)(i,{brighter:function(t){return t=null==t?a:Math.pow(a,t),new S(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new S(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:N,formatHex:N,formatRgb:A,toString:A})),(0,r.Z)(T,P,(0,r.l)(i,{brighter:function(t){return t=null==t?a:Math.pow(a,t),new T(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?o:Math.pow(o,t),new T(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new S(L(t>=240?t-240:t+120,i,r),L(t,i,r),L(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}))},8218:(t,e,n)=>{"use strict";n.d(e,{Z:()=>p});var r=n(4087),i=n(6372),o=n(1144),a=-.14861,s=1.78277,u=-.29227,c=-.90649,l=1.97294,h=l*c,f=l*s,d=s*u-c*a;function p(t,e,n,r){return 1===arguments.length?function(t){if(t instanceof g)return new g(t.h,t.s,t.l,t.opacity);t instanceof i.Ss||(t=(0,i.SU)(t));var e=t.r/255,n=t.g/255,r=t.b/255,a=(d*r+h*e-f*n)/(d+h-f),s=r-a,p=(l*(n-a)-u*s)/c,v=Math.sqrt(p*p+s*s)/(l*a*(1-a)),y=v?Math.atan2(p,s)*o.B-120:NaN;return new g(y<0?y+360:y,v,a,t.opacity)}(t):new g(t,e,n,null==r?1:r)}function g(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}(0,r.Z)(g,p,(0,r.l)(i.Il,{brighter:function(t){return t=null==t?i.J5:Math.pow(i.J5,t),new g(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?i.xV:Math.pow(i.xV,t),new g(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*o.V,e=+this.l,n=isNaN(this.s)?0:this.s*e*(1-e),r=Math.cos(t),h=Math.sin(t);return new i.Ss(255*(e+n*(a*r+s*h)),255*(e+n*(u*r+c*h)),255*(e+n*(l*r)),this.opacity)}}))},4087:(t,e,n)=>{"use strict";function r(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function i(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}n.d(e,{Z:()=>r,l:()=>i})},241:(t,e,n)=>{"use strict";n.d(e,{Uc:()=>w});var r=n(4087),i=n(6372),o=n(1144),a=.96422,s=1,u=.82521,c=4/29,l=6/29,h=3*l*l,f=l*l*l;function d(t){if(t instanceof p)return new p(t.l,t.a,t.b,t.opacity);if(t instanceof Z)return _(t);t instanceof i.Ss||(t=(0,i.SU)(t));var e,n,r=m(t.r),o=m(t.g),c=m(t.b),l=g((.2225045*r+.7168786*o+.0606169*c)/s);return r===o&&o===c?e=n=l:(e=g((.4360747*r+.3850649*o+.1430804*c)/a),n=g((.0139322*r+.0971045*o+.7141733*c)/u)),new p(116*l-16,500*(e-l),200*(l-n),t.opacity)}function p(t,e,n,r){this.l=+t,this.a=+e,this.b=+n,this.opacity=+r}function g(t){return t>f?Math.pow(t,1/3):t/h+c}function v(t){return t>l?t*t*t:h*(t-c)}function y(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function m(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function w(t,e,n,r){return 1===arguments.length?function(t){if(t instanceof Z)return new Z(t.h,t.c,t.l,t.opacity);if(t instanceof p||(t=d(t)),0===t.a&&0===t.b)return new Z(NaN,0{"use strict";n.d(e,{B:()=>i,V:()=>r});var r=Math.PI/180,i=180/Math.PI},7539:(t,e,n)=>{"use strict";var r,i,o,a;n.d(e,{WU:()=>i,jH:()=>o}),a={decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"},r=(0,n(4463).Z)(a),i=r.format,o=r.formatPrefix},3085:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(8885);function i(t){return(t=(0,r.Z)(Math.abs(t)))?t[1]:NaN}},8885:(t,e,n)=>{"use strict";function r(t,e){if((n=(t=e?t.toExponential(e-1):t.toExponential()).indexOf("e"))<0)return null;var n,r=t.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+t.slice(n+1)]}n.d(e,{Z:()=>r})},8129:(t,e,n)=>{"use strict";function r(t,e){return function(n,r){for(var i=n.length,o=[],a=0,s=t[0],u=0;i>0&&s>0&&(u+s+1>r&&(s=Math.max(1,r-u)),o.push(n.substring(i-=s,i+s)),!((u+=s+1)>r));)s=t[a=(a+1)%t.length];return o.reverse().join(e)}}n.d(e,{Z:()=>r})},576:(t,e,n)=>{"use strict";function r(t){return function(e){return e.replace(/[0-9]/g,(function(e){return t[+e]}))}}n.d(e,{Z:()=>r})},2994:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o,y:()=>r});var r,i=n(8885);function o(t,e){var n=(0,i.Z)(t,e);if(!n)return t+"";var o=n[0],a=n[1],s=a-(r=3*Math.max(-8,Math.min(8,Math.floor(a/3))))+1,u=o.length;return s===u?o:s>u?o+new Array(s-u+1).join("0"):s>0?o.slice(0,s)+"."+o.slice(s):"0."+new Array(1-s).join("0")+(0,i.Z)(t,Math.max(0,e+s-1))[0]}},2043:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(8885);function i(t,e){var n=(0,r.Z)(t,e);if(!n)return t+"";var i=n[0],o=n[1];return o<0?"0."+new Array(-o).join("0")+i:i.length>o+1?i.slice(0,o+1)+"."+i.slice(o+1):i+new Array(o-i.length+2).join("0")}},6196:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function i(t){if(!(e=r.exec(t)))throw new Error("invalid format: "+t);var e;return new o({fill:e[1],align:e[2],sign:e[3],symbol:e[4],zero:e[5],width:e[6],comma:e[7],precision:e[8]&&e[8].slice(1),trim:e[9],type:e[10]})}function o(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}i.prototype=o.prototype,o.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type}},1485:(t,e,n)=>{"use strict";function r(t){t:for(var e,n=t.length,r=1,i=-1;r0){if(!+t[r])break t;i=0}}return i>0?t.slice(0,i)+t.slice(e+1):t}n.d(e,{Z:()=>r})},8814:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(2994),i=n(2043);const o={"%":function(t,e){return(100*t).toFixed(e)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,e){return t.toExponential(e)},f:function(t,e){return t.toFixed(e)},g:function(t,e){return t.toPrecision(e)},o:function(t){return Math.round(t).toString(8)},p:function(t,e){return(0,i.Z)(100*t,e)},r:i.Z,s:r.Z,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}}},9890:(t,e,n)=>{"use strict";function r(t){return t}n.d(e,{Z:()=>r})},5594:(t,e,n)=>{"use strict";n.d(e,{F0:()=>s.Z,S5:()=>a.Z,WU:()=>r.WU,YQ:()=>i.Z,jH:()=>r.jH,zB:()=>o.Z});var r=n(7539),i=(n(4463),n(6196)),o=n(8195),a=n(3726),s=n(7655)},4463:(t,e,n)=>{"use strict";n.d(e,{Z:()=>d});var r=n(3085),i=n(8129),o=n(576),a=n(6196),s=n(1485),u=n(8814),c=n(2994),l=n(9890),h=Array.prototype.map,f=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function d(t){var e=void 0===t.grouping||void 0===t.thousands?l.Z:(0,i.Z)(h.call(t.grouping,Number),t.thousands+""),n=void 0===t.currency?"":t.currency[0]+"",d=void 0===t.currency?"":t.currency[1]+"",p=void 0===t.decimal?".":t.decimal+"",g=void 0===t.numerals?l.Z:(0,o.Z)(h.call(t.numerals,String)),v=void 0===t.percent?"%":t.percent+"",y=void 0===t.minus?"-":t.minus+"",m=void 0===t.nan?"NaN":t.nan+"";function w(t){var r=(t=(0,a.Z)(t)).fill,i=t.align,o=t.sign,l=t.symbol,h=t.zero,w=t.width,Z=t.comma,_=t.precision,b=t.trim,x=t.type;"n"===x?(Z=!0,x="g"):u.Z[x]||(void 0===_&&(_=12),b=!0,x="g"),(h||"0"===r&&"="===i)&&(h=!0,r="0",i="=");var M="$"===l?n:"#"===l&&/[boxX]/.test(x)?"0"+x.toLowerCase():"",S="$"===l?d:/[%p]/.test(x)?v:"",N=u.Z[x],A=/[defgprs%]/.test(x);function k(t){var n,a,u,l=M,d=S;if("c"===x)d=N(t)+d,t="";else{var v=(t=+t)<0;if(t=isNaN(t)?m:N(Math.abs(t),_),b&&(t=(0,s.Z)(t)),v&&0==+t&&(v=!1),l=(v?"("===o?o:y:"-"===o||"("===o?"":o)+l,d=("s"===x?f[8+c.y/3]:"")+d+(v&&"("===o?")":""),A)for(n=-1,a=t.length;++n(u=t.charCodeAt(n))||u>57){d=(46===u?p+t.slice(n+1):t.slice(n))+d,t=t.slice(0,n);break}}Z&&!h&&(t=e(t,1/0));var k=l.length+t.length+d.length,C=k>1)+l+t+d+C.slice(k);break;default:t=C+l+t+d}return g(t)}return _=void 0===_?6:/[gprs]/.test(x)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_)),k.toString=function(){return t+""},k}return{format:w,formatPrefix:function(t,e){var n=w(((t=(0,a.Z)(t)).type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor((0,r.Z)(e)/3))),o=Math.pow(10,-i),s=f[8+i/3];return function(t){return n(o*t)+s}}}}},8195:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(3085);function i(t){return Math.max(0,-(0,r.Z)(Math.abs(t)))}},3726:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(3085);function i(t,e){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor((0,r.Z)(e)/3)))-(0,r.Z)(Math.abs(t)))}},7655:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(3085);function i(t,e){return t=Math.abs(t),e=Math.abs(e)-t,Math.max(0,(0,r.Z)(e)-(0,r.Z)(t))+1}},8122:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(1265);function i(t,e){var n,i=e?e.length:0,o=t?Math.min(i,t.length):0,a=new Array(o),s=new Array(i);for(n=0;n{"use strict";function r(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}function i(t){var e=t.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),o=t[i],a=t[i+1],s=i>0?t[i-1]:2*o-a,u=ii,t:()=>r})},5692:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(9885);function i(t){var e=t.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*e),o=t[(i+e-1)%e],a=t[i%e],s=t[(i+1)%e],u=t[(i+2)%e];return(0,r.t)((n-i/e)*e,o,a,s,u)}}},5910:(t,e,n)=>{"use strict";n.d(e,{ZP:()=>s,wx:()=>o,yi:()=>a});var r=n(5302);function i(t,e){return function(n){return t+n*e}}function o(t,e){var n=e-t;return n?i(t,n>180||n<-180?n-360*Math.round(n/360):n):(0,r.Z)(isNaN(t)?e:t)}function a(t){return 1==(t=+t)?s:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):(0,r.Z)(isNaN(e)?n:e)}}function s(t,e){var n=e-t;return n?i(t,n):(0,r.Z)(isNaN(t)?e:t)}},5302:(t,e,n)=>{"use strict";function r(t){return function(){return t}}n.d(e,{Z:()=>r})},8499:(t,e,n)=>{"use strict";var r=n(8218),i=n(5910);function o(t){return function e(n){function o(e,o){var a=t((e=(0,r.Z)(e)).h,(o=(0,r.Z)(o)).h),s=(0,i.ZP)(e.s,o.s),u=(0,i.ZP)(e.l,o.l),c=(0,i.ZP)(e.opacity,o.opacity);return function(t){return e.h=a(t),e.s=s(t),e.l=u(Math.pow(t,n)),e.opacity=c(t),e+""}}return n=+n,o.gamma=e,o}(1)}o(i.wx),o(i.ZP)},88:(t,e,n)=>{"use strict";function r(t,e){var n=new Date;return e-=t=+t,function(r){return n.setTime(t+e*r),n}}n.d(e,{Z:()=>r})},997:(t,e,n)=>{"use strict";var r=n(241),i=n(5910);function o(t){return function(e,n){var o=t((e=(0,r.Uc)(e)).h,(n=(0,r.Uc)(n)).h),a=(0,i.ZP)(e.c,n.c),s=(0,i.ZP)(e.l,n.l),u=(0,i.ZP)(e.opacity,n.opacity);return function(t){return e.h=o(t),e.c=a(t),e.l=s(t),e.opacity=u(t),e+""}}}o(i.wx),o(i.ZP)},4038:(t,e,n)=>{"use strict";var r=n(6372),i=n(5910);function o(t){return function(e,n){var o=t((e=(0,r.Ym)(e)).h,(n=(0,r.Ym)(n)).h),a=(0,i.ZP)(e.s,n.s),s=(0,i.ZP)(e.l,n.l),u=(0,i.ZP)(e.opacity,n.opacity);return function(t){return e.h=o(t),e.s=a(t),e.l=s(t),e.opacity=u(t),e+""}}}o(i.wx),o(i.ZP)},3413:(t,e,n)=>{"use strict";n.d(e,{k4:()=>i.Z,sX:()=>r.Z,uL:()=>o.Z});var r=n(1265),i=(n(8122),n(3626)),o=(n(8528),n(5720));n(9843),n(6697),n(588),n(3414),n(4038),n(997),n(8499)},3626:(t,e,n)=>{"use strict";function r(t,e){return e-=t=+t,function(n){return t+e*n}}n.d(e,{Z:()=>r})},8528:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(1265);function i(t,e){var n,i={},o={};for(n in null!==t&&"object"==typeof t||(t={}),null!==e&&"object"==typeof e||(e={}),e)n in t?i[n]=(0,r.Z)(t[n],e[n]):o[n]=e[n];return function(t){for(n in i)o[n]=i[n](t);return o}}},3414:(t,e,n)=>{"use strict";n.d(e,{ZP:()=>s});var r=n(6372),i=n(9885),o=n(5692),a=n(5910);const s=function t(e){var n=(0,a.yi)(e);function i(t,e){var i=n((t=(0,r.B8)(t)).r,(e=(0,r.B8)(e)).r),o=n(t.g,e.g),s=n(t.b,e.b),u=(0,a.ZP)(t.opacity,e.opacity);return function(e){return t.r=i(e),t.g=o(e),t.b=s(e),t.opacity=u(e),t+""}}return i.gamma=t,i}(1);function u(t){return function(e){var n,i,o=e.length,a=new Array(o),s=new Array(o),u=new Array(o);for(n=0;n{"use strict";function r(t,e){return e-=t=+t,function(n){return Math.round(t+e*n)}}n.d(e,{Z:()=>r})},9843:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var r=n(3626),i=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,o=new RegExp(i.source,"g");function a(t,e){var n,a,s,u=i.lastIndex=o.lastIndex=0,c=-1,l=[],h=[];for(t+="",e+="";(n=i.exec(t))&&(a=o.exec(e));)(s=a.index)>u&&(s=e.slice(u,s),l[c]?l[c]+=s:l[++c]=s),(n=n[0])===(a=a[0])?l[c]?l[c]+=a:l[++c]=a:(l[++c]=null,h.push({i:c,x:(0,r.Z)(n,a)})),u=o.lastIndex;return u{"use strict";n.d(e,{Z:()=>o,y:()=>i});var r=180/Math.PI,i={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function o(t,e,n,i,o,a){var s,u,c;return(s=Math.sqrt(t*t+e*e))&&(t/=s,e/=s),(c=t*n+e*i)&&(n-=t*c,i-=e*c),(u=Math.sqrt(n*n+i*i))&&(n/=u,i/=u,c/=u),t*i{"use strict";var r=n(3626),i=n(2490);function o(t,e,n,i){function o(t){return t.length?t.pop()+" ":""}return function(a,s){var u=[],c=[];return a=t(a),s=t(s),function(t,i,o,a,s,u){if(t!==o||i!==a){var c=s.push("translate(",null,e,null,n);u.push({i:c-4,x:(0,r.Z)(t,o)},{i:c-2,x:(0,r.Z)(i,a)})}else(o||a)&&s.push("translate("+o+e+a+n)}(a.translateX,a.translateY,s.translateX,s.translateY,u,c),function(t,e,n,a){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),a.push({i:n.push(o(n)+"rotate(",null,i)-2,x:(0,r.Z)(t,e)})):e&&n.push(o(n)+"rotate("+e+i)}(a.rotate,s.rotate,u,c),function(t,e,n,a){t!==e?a.push({i:n.push(o(n)+"skewX(",null,i)-2,x:(0,r.Z)(t,e)}):e&&n.push(o(n)+"skewX("+e+i)}(a.skewX,s.skewX,u,c),function(t,e,n,i,a,s){if(t!==n||e!==i){var u=a.push(o(a)+"scale(",null,",",null,")");s.push({i:u-4,x:(0,r.Z)(t,n)},{i:u-2,x:(0,r.Z)(e,i)})}else 1===n&&1===i||a.push(o(a)+"scale("+n+","+i+")")}(a.scaleX,a.scaleY,s.scaleX,s.scaleY,u,c),a=s=null,function(t){for(var e,n=-1,r=c.length;++n{"use strict";n.d(e,{X:()=>c,z:()=>u});var r,i,o,a,s=n(6511);function u(t){return"none"===t?s.y:(r||(r=document.createElement("DIV"),i=document.documentElement,o=document.defaultView),r.style.transform=t,t=o.getComputedStyle(i.appendChild(r),null).getPropertyValue("transform"),i.removeChild(r),t=t.slice(7,-1).split(","),(0,s.Z)(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}function c(t){return null==t?s.y:(a||(a=document.createElementNS("http://www.w3.org/2000/svg","g")),a.setAttribute("transform",t),(t=a.transform.baseVal.consolidate())?(t=t.matrix,(0,s.Z)(t.a,t.b,t.c,t.d,t.e,t.f)):s.y)}},1265:(t,e,n)=>{"use strict";n.d(e,{Z:()=>h});var r=n(6372),i=n(3414),o=n(8122),a=n(88),s=n(3626),u=n(8528),c=n(9843),l=n(5302);function h(t,e){var n,h=typeof e;return null==e||"boolean"===h?(0,l.Z)(e):("number"===h?s.Z:"string"===h?(n=(0,r.ZP)(e))?(e=n,i.ZP):c.Z:e instanceof r.ZP?i.ZP:e instanceof Date?a.Z:Array.isArray(e)?o.Z:"function"!=typeof e.valueOf&&"function"!=typeof e.toString||isNaN(e)?u.Z:s.Z)(t,e)}},588:()=>{"use strict";Math.SQRT2},4057:(t,e,n)=>{"use strict";n.d(e,{U:()=>i,t:()=>o});var r=Array.prototype,i=r.map,o=r.slice},274:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var r=n(91),i=n(8348),o=n(7603);function a(){var t,e,n=(0,o.Z)().unknown(void 0),s=n.domain,u=n.range,c=[0,1],l=!1,h=0,f=0,d=.5;function p(){var n=s().length,i=c[1]{"use strict";function r(t){return function(){return t}}n.d(e,{Z:()=>r})},5236:(t,e,n)=>{"use strict";n.d(e,{JG:()=>p,ZP:()=>g,yR:()=>c});var r=n(91),i=n(3413),o=n(4057),a=n(8749),s=n(4299),u=[0,1];function c(t){return t}function l(t,e){return(e-=t=+t)?function(n){return(n-t)/e}:(0,a.Z)(isNaN(e)?NaN:.5)}function h(t){var e,n=t[0],r=t[t.length-1];return n>r&&(e=n,n=r,r=e),function(t){return Math.max(n,Math.min(r,t))}}function f(t,e,n){var r=t[0],i=t[1],o=e[0],a=e[1];return i2?d:f,a=l=null,w}function w(e){return isNaN(e=+e)?n:(a||(a=r(p.map(t),g,v)))(t(y(e)))}return w.invert=function(n){return y(e((l||(l=r(g,p.map(t),i.k4)))(n)))},w.domain=function(t){return arguments.length?(p=o.U.call(t,s.Z),y===c||(y=h(p)),m()):p.slice()},w.range=function(t){return arguments.length?(g=o.t.call(t),m()):g.slice()},w.rangeRound=function(t){return g=o.t.call(t),v=i.uL,m()},w.clamp=function(t){return arguments.length?(y=t?h(p):c,w):y!==c},w.interpolate=function(t){return arguments.length?(v=t,m()):v},w.unknown=function(t){return arguments.length?(n=t,w):n},function(n,r){return t=n,e=r,m()}}()(t,e)}},4547:(t,e,n)=>{"use strict";n(5236),n(289),n(2685),n(4250),n(5437),n(5128)},9898:(t,e,n)=>{"use strict";n(4057),n(289)},5315:(t,e,n)=>{"use strict";n.d(e,{BY:()=>i.Z,ti:()=>r.Z});var r=n(274),i=(n(9898),n(289));n(2685),n(5437),n(7603),n(5128),n(2110),n(6602),n(6297),n(8383),n(819),n(4250),n(9313),n(4547),n(7197)},8348:(t,e,n)=>{"use strict";function r(t,e){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(e).domain(t)}return this}n.d(e,{o:()=>r})},289:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(91),i=n(5236),o=n(8348),a=n(7197);function s(){var t=(0,i.ZP)(i.yR,i.yR);return t.copy=function(){return(0,i.JG)(t,s())},o.o.apply(t,arguments),function(t){var e=t.domain;return t.ticks=function(t){var n=e();return(0,r.sd)(n[0],n[n.length-1],null==t?10:t)},t.tickFormat=function(t,n){var r=e();return(0,a.Z)(r[0],r[r.length-1],null==t?10:t,n)},t.nice=function(n){null==n&&(n=10);var i,o=e(),a=0,s=o.length-1,u=o[a],c=o[s];return c0?(u=Math.floor(u/i)*i,c=Math.ceil(c/i)*i,i=(0,r.G9)(u,c,n)):i<0&&(u=Math.ceil(u*i)/i,c=Math.floor(c*i)/i,i=(0,r.G9)(u,c,n)),i>0?(o[a]=Math.floor(u/i)*i,o[s]=Math.ceil(c/i)*i,e(o)):i<0&&(o[a]=Math.ceil(u*i)/i,o[s]=Math.floor(c*i)/i,e(o)),t},t}(t)}},2685:(t,e,n)=>{"use strict";n(91),n(5594),n(5236)},4299:(t,e,n)=>{"use strict";function r(t){return+t}n.d(e,{Z:()=>r})},7603:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(2300),i=n(4057),o=n(8348),a={name:"implicit"};function s(){var t=(0,r.UI)(),e=[],n=[],u=a;function c(r){var i=r+"",o=t.get(i);if(!o){if(u!==a)return u;t.set(i,o=e.push(r))}return n[(o-1)%n.length]}return c.domain=function(n){if(!arguments.length)return e.slice();e=[],t=(0,r.UI)();for(var i,o,a=-1,s=n.length;++a{"use strict";n(289),n(5236)},2110:(t,e,n)=>{"use strict";n(91),n(4057)},6602:(t,e,n)=>{"use strict";n(91),n(4057),n(289)},4250:(t,e,n)=>{"use strict";n(5236),n(289),n(2685),n(5437),n(5128)},9313:(t,e,n)=>{"use strict";n(91),n(5236)},5437:(t,e,n)=>{"use strict";n(289),n(5236)},6297:(t,e,n)=>{"use strict";n(91),n(4057)},7197:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(91),i=n(5594);function o(t,e,n,o){var a,s=(0,r.ly)(t,e,n);switch((o=(0,i.YQ)(null==o?",f":o)).type){case"s":var u=Math.max(Math.abs(t),Math.abs(e));return null!=o.precision||isNaN(a=(0,i.S5)(s,u))||(o.precision=a),(0,i.jH)(o,u);case"":case"e":case"g":case"p":case"r":null!=o.precision||isNaN(a=(0,i.F0)(s,Math.max(Math.abs(t),Math.abs(e))))||(o.precision=a-("e"===o.type));break;case"f":case"%":null!=o.precision||isNaN(a=(0,i.zB)(s))||(o.precision=a-2*("%"===o.type))}return(0,i.WU)(o)}},8383:(t,e,n)=>{"use strict";n(91),n(4057),n(5236)},819:(t,e,n)=>{"use strict";n(8383)},9077:(t,e,n)=>{"use strict";function r(t){return function(){return t}}n.d(e,{Z:()=>r})},9795:(t,e,n)=>{"use strict";n(789),n(4017)},789:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(3888),i=n(1986);function o(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===i.P&&e.documentElement.namespaceURI===i.P?e.createElement(t):e.createElementNS(n,t)}}function a(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function s(t){var e=(0,r.Z)(t);return(e.local?a:o)(e)}},9825:(t,e,n)=>{"use strict";n.d(e,{B:()=>i.B,Ys:()=>r.Z}),n(9795),n(789),n(9548),n(3095),n(3888),n(1986);var r=n(4017),i=(n(9628),n(3933),n(4793),n(9649),n(5109))},9548:(t,e,n)=>{"use strict";var r=0;function i(){this._="@"+(++r).toString(36)}i.prototype=function(){return new i}.prototype={constructor:i,get:function(t){for(var e=this._;!(e in t);)if(!(t=t.parentNode))return;return t[e]},set:function(t,e){return t[this._]=e},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}}},3083:(t,e,n)=>{"use strict";function r(t){return function(){return this.matches(t)}}n.d(e,{Z:()=>r})},3095:(t,e,n)=>{"use strict";n(5553)},3888:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(1986);function i(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.Z.hasOwnProperty(e)?{space:r.Z[e],local:t}:t}},1986:(t,e,n)=>{"use strict";n.d(e,{P:()=>r,Z:()=>i});var r="http://www.w3.org/1999/xhtml";const i={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},4017:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(3933);function i(t){return"string"==typeof t?new r.Y1([[document.querySelector(t)]],[document.documentElement]):new r.Y1([[t]],r.Jz)}},9628:(t,e,n)=>{"use strict";n(3933)},9911:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(789);function i(t){var e="function"==typeof t?t:(0,r.Z)(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))}},1033:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(3888);function i(t){return function(){this.removeAttribute(t)}}function o(t){return function(){this.removeAttributeNS(t.space,t.local)}}function a(t,e){return function(){this.setAttribute(t,e)}}function s(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function u(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function c(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function l(t,e){var n=(0,r.Z)(t);if(arguments.length<2){var l=this.node();return n.local?l.getAttributeNS(n.space,n.local):l.getAttribute(n)}return this.each((null==e?n.local?o:i:"function"==typeof e?n.local?c:u:n.local?s:a)(n,e))}},7124:(t,e,n)=>{"use strict";function r(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}n.d(e,{Z:()=>r})},6198:(t,e,n)=>{"use strict";function r(t){return t.trim().split(/^|\s+/)}function i(t){return t.classList||new o(t)}function o(t){this._node=t,this._names=r(t.getAttribute("class")||"")}function a(t,e){for(var n=i(t),r=-1,o=e.length;++rh}),o.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}}},9397:(t,e,n)=>{"use strict";function r(){return this.parentNode.insertBefore(this.cloneNode(!1),this.nextSibling)}function i(){return this.parentNode.insertBefore(this.cloneNode(!0),this.nextSibling)}function o(t){return this.select(t?i:r)}n.d(e,{Z:()=>o})},8650:(t,e,n)=>{"use strict";n.d(e,{Z:()=>c});var r=n(3933),i=n(8737),o=n(9077),a="$";function s(t,e,n,r,o,a){for(var s,u=0,c=e.length,l=a.length;u=M&&(M=x+1);!(b=Z[M])&&++M{"use strict";function r(t){return arguments.length?this.property("__data__",t):this.node().__data__}n.d(e,{Z:()=>r})},5362:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(5021);function i(t,e,n){var i=(0,r.Z)(t),o=i.CustomEvent;"function"==typeof o?o=new o(e,n):(o=i.document.createEvent("Event"),n?(o.initEvent(e,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(e,!1,!1)),t.dispatchEvent(o)}function o(t,e){return function(){return i(this,t,e)}}function a(t,e){return function(){return i(this,t,e.apply(this,arguments))}}function s(t,e){return this.each(("function"==typeof e?a:o)(t,e))}},8358:(t,e,n)=>{"use strict";function r(t){for(var e=this._groups,n=0,r=e.length;nr})},4670:(t,e,n)=>{"use strict";function r(){return!this.node()}n.d(e,{Z:()=>r})},8737:(t,e,n)=>{"use strict";n.d(e,{F:()=>a,Z:()=>o});var r=n(327),i=n(3933);function o(){return new i.Y1(this._enter||this._groups.map(r.Z),this._parents)}function a(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}a.prototype={constructor:a,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}}},2978:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(327),i=n(3933);function o(){return new i.Y1(this._exit||this._groups.map(r.Z),this._parents)}},4652:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(3933),i=n(3083);function o(t){"function"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=new Array(n),a=0;a{"use strict";function r(){this.innerHTML=""}function i(t){return function(){this.innerHTML=t}}function o(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function a(t){return arguments.length?this.each(null==t?r:("function"==typeof t?o:i)(t)):this.node().innerHTML}n.d(e,{Z:()=>a})},3933:(t,e,n)=>{"use strict";n.d(e,{Jz:()=>B,Y1:()=>I});var r=n(4958),i=n(1344),o=n(4652),a=n(8650),s=n(8737),u=n(2978),c=n(2105),l=n(8244),h=n(8221),f=n(2322),d=n(7124),p=n(8098),g=n(9317),v=n(3912),y=n(4670),m=n(8358),w=n(1033),Z=n(9986),_=n(9152),b=n(6198),x=n(7647),M=n(5267),S=n(1242),N=n(8275),A=n(9911),k=n(1053),C=n(1261),E=n(9397),P=n(4391),T=n(5109),L=n(5362),B=[null];function I(t,e){this._groups=t,this._parents=e}I.prototype=function(){return new I([[document.documentElement]],B)}.prototype={constructor:I,select:r.Z,selectAll:i.Z,filter:o.Z,data:a.Z,enter:s.Z,exit:u.Z,join:c.Z,merge:l.Z,order:h.Z,sort:f.Z,call:d.Z,nodes:p.Z,node:g.Z,size:v.Z,empty:y.Z,each:m.Z,attr:w.Z,style:Z.Z,property:_.Z,classed:b.Z,text:x.Z,html:M.Z,raise:S.Z,lower:N.Z,append:A.Z,insert:k.Z,remove:C.Z,clone:E.Z,datum:P.Z,on:T.ZP,dispatch:L.Z}},1053:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var r=n(789),i=n(2634);function o(){return null}function a(t,e){var n="function"==typeof t?t:(0,r.Z)(t),a=null==e?o:"function"==typeof e?e:(0,i.Z)(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),a.apply(this,arguments)||null)}))}},2105:(t,e,n)=>{"use strict";function r(t,e,n){var r=this.enter(),i=this,o=this.exit();return r="function"==typeof t?t(r):r.append(t+""),null!=e&&(i=e(i)),null==n?o.remove():n(o),r&&i?r.merge(i).order():i}n.d(e,{Z:()=>r})},8275:(t,e,n)=>{"use strict";function r(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},8244:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(3933);function i(t){for(var e=this._groups,n=t._groups,i=e.length,o=n.length,a=Math.min(i,o),s=new Array(i),u=0;u{"use strict";function r(){for(var t=this._groups,e=0,n=t.length;er})},8098:(t,e,n)=>{"use strict";function r(){var t=new Array(this.size()),e=-1;return this.each((function(){t[++e]=this})),t}n.d(e,{Z:()=>r})},5109:(t,e,n)=>{"use strict";n.d(e,{B:()=>i,ZP:()=>c});var r={},i=null;function o(t,e,n){return t=a(t,e,n),function(e){var n=e.relatedTarget;n&&(n===this||8&n.compareDocumentPosition(this))||t.call(this,e)}}function a(t,e,n){return function(r){var o=i;i=r;try{t.call(this,this.__data__,e,n)}finally{i=o}}}function s(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+""),a=o.length;if(!(arguments.length<2)){for(c=e?u:s,null==n&&(n=!1),r=0;r{"use strict";function r(){for(var t=this._groups,e=-1,n=t.length;++e=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this}n.d(e,{Z:()=>r})},9152:(t,e,n)=>{"use strict";function r(t){return function(){delete this[t]}}function i(t,e){return function(){this[t]=e}}function o(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function a(t,e){return arguments.length>1?this.each((null==e?r:"function"==typeof e?o:i)(t,e)):this.node()[t]}n.d(e,{Z:()=>a})},1242:(t,e,n)=>{"use strict";function r(){this.nextSibling&&this.parentNode.appendChild(this)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},1261:(t,e,n)=>{"use strict";function r(){var t=this.parentNode;t&&t.removeChild(this)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},4958:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(3933),i=n(2634);function o(t){"function"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=new Array(n),a=0;a{"use strict";n.d(e,{Z:()=>o});var r=n(3933),i=n(3545);function o(t){"function"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=[],a=[],s=0;s{"use strict";function r(){var t=0;return this.each((function(){++t})),t}n.d(e,{Z:()=>r})},2322:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(3933);function i(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=o);for(var n=this._groups,i=n.length,a=new Array(i),s=0;se?1:t>=e?0:NaN}},327:(t,e,n)=>{"use strict";function r(t){return new Array(t.length)}n.d(e,{Z:()=>r})},9986:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(5021);function i(t){return function(){this.style.removeProperty(t)}}function o(t,e,n){return function(){this.style.setProperty(t,e,n)}}function a(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function s(t,e,n){return arguments.length>1?this.each((null==e?i:"function"==typeof e?a:o)(t,e,null==n?"":n)):function(t,e){return t.style.getPropertyValue(e)||(0,r.Z)(t).getComputedStyle(t,null).getPropertyValue(e)}(this.node(),t)}},7647:(t,e,n)=>{"use strict";function r(){this.textContent=""}function i(t){return function(){this.textContent=t}}function o(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function a(t){return arguments.length?this.each(null==t?r:("function"==typeof t?o:i)(t)):this.node().textContent}n.d(e,{Z:()=>a})},2634:(t,e,n)=>{"use strict";function r(){}function i(t){return null==t?r:function(){return this.querySelector(t)}}n.d(e,{Z:()=>i})},3545:(t,e,n)=>{"use strict";function r(){return[]}function i(t){return null==t?r:function(){return this.querySelectorAll(t)}}n.d(e,{Z:()=>i})},5553:(t,e,n)=>{"use strict";n(5109)},4793:(t,e,n)=>{"use strict";n(5553)},9649:(t,e,n)=>{"use strict";n(5553)},5021:(t,e,n)=>{"use strict";function r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}n.d(e,{Z:()=>r})},6116:(t,e,n)=>{"use strict";n.d(e,{q:()=>i});class r{constructor(t){this.cache={},this.clearCacheInterval=null!=t?t:r.defaultClearCacheInterval,this.clearCache()}getData(t){return this.cache[t]}setData(t,e){this.cache[t]=e,null==this.clearCacheTimerId&&(this.clearCacheTimerId=setTimeout((()=>this.clearCache()),this.clearCacheInterval))}clearCache(){this.cache={},this.clearCacheTimerId=void 0}}r.defaultClearCacheInterval=864e5;const i=new r},7802:(t,e,n)=>{"use strict";n.d(e,{y:()=>r});var r,i=n(7281),o=n(4732),a=n(1363),s=n(6116);!function(t){const e="...";let n,r,u,c;function l(){if(n)return;n=document.createElement("span"),document.body.appendChild(n);const t=document.createElementNS("http://www.w3.org/2000/svg","svg");t.setAttribute("height","0"),t.setAttribute("width","0"),t.setAttribute("position","absolute"),t.style.top="0px",t.style.left="0px",t.style.position="absolute",t.style.height="0px",t.style.width="0px",r=document.createElementNS("http://www.w3.org/2000/svg","text"),t.appendChild(r),document.body.appendChild(t);let e=document.createElement("canvas");u=e.getContext("2d");let i=window.getComputedStyle(r);c=i?i.fontFamily:""}function h(t,e){return l(),u.font=(t.fontStyle||"")+" "+(t.fontVariant||"")+" "+(t.fontWeight||"")+" "+t.fontSize+" "+(t.fontFamily||c),u.measureText(e||t.text).width}function f(t,e){for(l();r.firstChild;)r.removeChild(r.firstChild);return r.setAttribute("style",null),r.style.visibility="hidden",r.style.fontFamily=t.fontFamily||c,r.style.fontVariant=t.fontVariant,r.style.fontSize=t.fontSize,r.style.fontWeight=t.fontWeight,r.style.fontStyle=t.fontStyle,r.style.whiteSpace=t.whiteSpace||"nowrap",r.appendChild(document.createTextNode(e||t.text)),r.getBBox()}function d(e){let n=e.fontFamily+e.fontSize,r=s.q.getData(n);if(null==r){let i={fontFamily:e.fontFamily,fontSize:e.fontSize,text:"M"};r=t.measureSvgTextRect(i),r.height>0&&s.q.setData(n,r)}return r}function p(t,e=!1){let n=d(t).height;return e&&(n*=.7),n}function g(t){let e=window.getComputedStyle(t);return e?{text:t.textContent,fontFamily:e.fontFamily,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontVariant:e.fontVariant,whiteSpace:e.whiteSpace}:{text:t.textContent,fontFamily:"",fontSize:"0"}}function v(t,n){if(l(),0===t.text.length)return t.text;let r=h(t);if(rr)s=c+1;else{if(!(nn&&c--,a.substr(3,c-3)+e}t.removeSpanElement=function(){n&&n.remove&&n.remove(),n=null},t.measureSvgTextWidth=h,t.measureSvgTextRect=f,t.measureSvgTextHeight=function(t,e){return f(t,e).height},t.estimateSvgTextBaselineDelta=function(t){let e=d(t);return e.y+e.height},t.estimateSvgTextHeight=p,t.measureSvgTextElementWidth=function(t){return h(g(t))},t.getMeasurementProperties=function(t){const e=window.getComputedStyle(t);return{text:t.value||t.textContent,fontFamily:e.fontFamily,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontVariant:e.fontVariant,whiteSpace:e.whiteSpace}},t.getSvgMeasurementProperties=g,t.getDivElementWidth=function(t){const e=window.getComputedStyle(t);return e?e.width:"0"},t.getTailoredTextOrDefault=v,t.svgEllipsis=function(t,e){let n=g(t),r=n.text,i=v(n,e);r!==i&&(t.textContent=i)},t.wordBreak=function(t,e,n,r=0){let i=g(t),o=p(i)+r,s=Math.max(1,Math.floor(n/o)),u=t?t.getAttribute("y"):null,c=t?t.textContent:null;t.textContent=null;let l=a.ql(c,i,h,e,s);const f=document.createDocumentFragment();for(let t=0,n=l.length;t{"use strict";n.d(e,{ql:()=>s});const r=" ",i=/[\s\n]+/g;function o(t,e,n){return e.text=t,n(e)}function a(t,e,n,r){return e.text=t,n(e,r)}function s(t,e,n,s,u,c){c=c||((t,e)=>t.text);let l=[],h=function(t){return t.split(i)}(t),f=0,d=[];for(let t of h){if(u>0&&l.length>=u-1){d.push(t);continue}let i=0===d.length?o(t,e,n):o(r+t,e,n);if(f+i>s){if(0===d.length){l.push(a(t,e,c,s)),f=0,d=[];continue}l.push(a(d.join(r),e,c,s)),f=0,d=[]}d.push(t),f+=i}return d&&d.length&&l.push(a(d.join(r),e,c,s)),l}},880:(t,e,n)=>{"use strict";n.d(e,{p:()=>s});var r=n(6837),i=n(282),o=n(5572);const a=500;function s(t,e,n=a){return new u({tooltipService:t,rootElement:e,handleTouchDelay:n})}class u{constructor(t){this.visualHostTooltipService=t.tooltipService,this.rootElement=t.rootElement,this.handleTouchDelay=t.handleTouchDelay}addTooltip(t,e,n,i){if(!t||!this.visualHostTooltipService.enabled())return;let a=this.rootElement,s=(0,r.Z)(t.nodes());s.on("mouseover.tooltip",((t,r)=>{if(!this.canDisplayTooltip(t))return;let i=this.getCoordinates(t,a,!0),o=e(r);if(null==o)return;let s=n?[n(r)]:[];this.visualHostTooltipService.show({coordinates:i,isTouchEvent:!1,dataItems:o,identities:s})})),s.on("mouseout.tooltip",((t,e)=>{this.visualHostTooltipService.hide({isTouchEvent:!1,immediately:!1})})),s.on("mousemove.tooltip",((t,r)=>{if(!this.canDisplayTooltip(t))return;let o,s=this.getCoordinates(t,a,!0);if(i&&(o=e(r),null==o))return;let u=n?[n(r)]:[];this.visualHostTooltipService.move({coordinates:s,isTouchEvent:!1,dataItems:o,identities:u})}));let u=o.ME(),c=o.dF();o.bQ(),s.on(u+".tooltip",((t,r)=>{let i=this.getCoordinates(t,a,!0),o=e(r),s=n?[n(r)]:[];this.handleTouchTimeoutId=window.setTimeout((()=>{this.visualHostTooltipService.show({coordinates:i,isTouchEvent:!0,dataItems:o,identities:s}),this.handleTouchTimeoutId=void 0}),this.handleTouchDelay)})),s.on(c+".tooltip",(()=>{this.cancelTouchTimeoutEvents()}))}cancelTouchTimeoutEvents(){this.handleTouchTimeoutId&&clearTimeout(this.handleTouchTimeoutId)}hide(){this.visualHostTooltipService.hide({immediately:!0,isTouchEvent:!1})}canDisplayTooltip(t){let e=!0;const n=t;return void 0!==n.buttons&&(e=!(0!==n.buttons)),e=e&&null==this.handleTouchTimeoutId,e}getCoordinates(t,e,n){let r;if(n){let n,i=t;for(;n=i.sourceEvent;)i=n;let o=e.getBoundingClientRect();r=[i.clientX-o.left-e.clientLeft,i.clientY-o.top-e.clientTop]}else{let e=(0,i.Z)(t);e&&e.length>0&&(r=e[0])}return r}}},5572:(t,e,n)=>{"use strict";function r(){return"touchstart"}function i(){return"touchend"}function o(){return!1}n.d(e,{ME:()=>r,bQ:()=>o,dF:()=>i})},6455:(t,e,n)=>{"use strict";function r(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}n.d(e,{Z:()=>r})},5486:(t,e,n)=>{"use strict";function r(t){return function(){return t}}n.d(e,{Z:()=>r})},5418:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(844),i=n(8156);function o(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===i.P&&e.documentElement.namespaceURI===i.P?e.createElement(t):e.createElementNS(n,t)}}function a(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function s(t){var e=(0,r.Z)(t);return(e.local?a:o)(e)}},1304:(t,e,n)=>{"use strict";function r(t){return function(){return this.matches(t)}}function i(t){return function(e){return e.matches(t)}}n.d(e,{P:()=>i,Z:()=>r})},844:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(8156);function i(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),r.Z.hasOwnProperty(e)?{space:r.Z[e],local:t}:t}},8156:(t,e,n)=>{"use strict";n.d(e,{P:()=>r,Z:()=>i});var r="http://www.w3.org/1999/xhtml";const i={svg:"http://www.w3.org/2000/svg",xhtml:r,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"}},574:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(5691);function i(t,e){if(t=(0,r.Z)(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var i=n.createSVGPoint();return i.x=t.clientX,i.y=t.clientY,[(i=i.matrixTransform(e.getScreenCTM().inverse())).x,i.y]}if(e.getBoundingClientRect){var o=e.getBoundingClientRect();return[t.clientX-o.left-e.clientLeft,t.clientY-o.top-e.clientTop]}}return[t.pageX,t.pageY]}},282:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(574),i=n(5691);function o(t,e){return t.target&&(t=(0,i.Z)(t),void 0===e&&(e=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>(0,r.Z)(t,e)))}},6837:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(6455),i=n(762);function o(t){return"string"==typeof t?new i.Y1([document.querySelectorAll(t)],[document.documentElement]):new i.Y1([null==t?[]:(0,r.Z)(t)],i.Jz)}},3855:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(5418);function i(t){var e="function"==typeof t?t:(0,r.Z)(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))}},8190:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(844);function i(t){return function(){this.removeAttribute(t)}}function o(t){return function(){this.removeAttributeNS(t.space,t.local)}}function a(t,e){return function(){this.setAttribute(t,e)}}function s(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function u(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function c(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function l(t,e){var n=(0,r.Z)(t);if(arguments.length<2){var l=this.node();return n.local?l.getAttributeNS(n.space,n.local):l.getAttribute(n)}return this.each((null==e?n.local?o:i:"function"==typeof e?n.local?c:u:n.local?s:a)(n,e))}},9049:(t,e,n)=>{"use strict";function r(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}n.d(e,{Z:()=>r})},9660:(t,e,n)=>{"use strict";function r(t){return t.trim().split(/^|\s+/)}function i(t){return t.classList||new o(t)}function o(t){this._node=t,this._names=r(t.getAttribute("class")||"")}function a(t,e){for(var n=i(t),r=-1,o=e.length;++rh}),o.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}}},1280:(t,e,n)=>{"use strict";function r(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function i(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function o(t){return this.select(t?i:r)}n.d(e,{Z:()=>o})},869:(t,e,n)=>{"use strict";n.d(e,{Z:()=>l});var r=n(762),i=n(6580),o=n(6455),a=n(5486);function s(t,e,n,r,o,a){for(var s,u=0,c=e.length,l=a.length;u=N&&(N=S+1);!(M=b[N])&&++N{"use strict";function r(t){return arguments.length?this.property("__data__",t):this.node().__data__}n.d(e,{Z:()=>r})},2461:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(4416);function i(t,e,n){var i=(0,r.Z)(t),o=i.CustomEvent;"function"==typeof o?o=new o(e,n):(o=i.document.createEvent("Event"),n?(o.initEvent(e,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(e,!1,!1)),t.dispatchEvent(o)}function o(t,e){return function(){return i(this,t,e)}}function a(t,e){return function(){return i(this,t,e.apply(this,arguments))}}function s(t,e){return this.each(("function"==typeof e?a:o)(t,e))}},5353:(t,e,n)=>{"use strict";function r(t){for(var e=this._groups,n=0,r=e.length;nr})},352:(t,e,n)=>{"use strict";function r(){return!this.node()}n.d(e,{Z:()=>r})},6580:(t,e,n)=>{"use strict";n.d(e,{F:()=>a,Z:()=>o});var r=n(530),i=n(762);function o(){return new i.Y1(this._enter||this._groups.map(r.Z),this._parents)}function a(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}a.prototype={constructor:a,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}}},7772:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(530),i=n(762);function o(){return new i.Y1(this._exit||this._groups.map(r.Z),this._parents)}},3425:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(762),i=n(1304);function o(t){"function"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=new Array(n),a=0;a{"use strict";function r(){this.innerHTML=""}function i(t){return function(){this.innerHTML=t}}function o(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function a(t){return arguments.length?this.each(null==t?r:("function"==typeof t?o:i)(t)):this.node().innerHTML}n.d(e,{Z:()=>a})},762:(t,e,n)=>{"use strict";n.d(e,{Jz:()=>V,Y1:()=>D});var r=n(9652),i=n(8566),o=n(5025),a=n(1706),s=n(3425),u=n(869),c=n(6580),l=n(7772),h=n(9979),f=n(1566),d=n(2158),p=n(3004),g=n(9049),v=n(7899),y=n(9405),m=n(4019),w=n(352),Z=n(5353),_=n(8190),b=n(7981),x=n(9973),M=n(9660),S=n(5341),N=n(1088),A=n(9588),k=n(2573),C=n(3855),E=n(954),P=n(8327),T=n(1280),L=n(5045),B=n(7797),I=n(2461),F=n(4478),V=[null];function D(t,e){this._groups=t,this._parents=e}D.prototype=function(){return new D([[document.documentElement]],V)}.prototype={constructor:D,select:r.Z,selectAll:i.Z,selectChild:o.Z,selectChildren:a.Z,filter:s.Z,data:u.Z,enter:c.Z,exit:l.Z,join:h.Z,merge:f.Z,selection:function(){return this},order:d.Z,sort:p.Z,call:g.Z,nodes:v.Z,node:y.Z,size:m.Z,empty:w.Z,each:Z.Z,attr:_.Z,style:b.Z,property:x.Z,classed:M.Z,text:S.Z,html:N.Z,raise:A.Z,lower:k.Z,append:C.Z,insert:E.Z,remove:P.Z,clone:T.Z,datum:L.Z,on:B.Z,dispatch:I.Z,[Symbol.iterator]:F.Z}},954:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var r=n(5418),i=n(9029);function o(){return null}function a(t,e){var n="function"==typeof t?t:(0,r.Z)(t),a=null==e?o:"function"==typeof e?e:(0,i.Z)(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),a.apply(this,arguments)||null)}))}},4478:(t,e,n)=>{"use strict";function*r(){for(var t=this._groups,e=0,n=t.length;er})},9979:(t,e,n)=>{"use strict";function r(t,e,n){var r=this.enter(),i=this,o=this.exit();return r="function"==typeof t?t(r):r.append(t+""),null!=e&&(i=e(i)),null==n?o.remove():n(o),r&&i?r.merge(i).order():i}n.d(e,{Z:()=>r})},2573:(t,e,n)=>{"use strict";function r(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},1566:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(762);function i(t){if(!(t instanceof r.Y1))throw new Error("invalid merge");for(var e=this._groups,n=t._groups,i=e.length,o=n.length,a=Math.min(i,o),s=new Array(i),u=0;u{"use strict";function r(){for(var t=this._groups,e=0,n=t.length;er})},7899:(t,e,n)=>{"use strict";function r(){return Array.from(this)}n.d(e,{Z:()=>r})},7797:(t,e,n)=>{"use strict";function r(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+""),u=s.length;if(!(arguments.length<2)){for(c=e?i:r,o=0;oo})},2158:(t,e,n)=>{"use strict";function r(){for(var t=this._groups,e=-1,n=t.length;++e=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this}n.d(e,{Z:()=>r})},9973:(t,e,n)=>{"use strict";function r(t){return function(){delete this[t]}}function i(t,e){return function(){this[t]=e}}function o(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function a(t,e){return arguments.length>1?this.each((null==e?r:"function"==typeof e?o:i)(t,e)):this.node()[t]}n.d(e,{Z:()=>a})},9588:(t,e,n)=>{"use strict";function r(){this.nextSibling&&this.parentNode.appendChild(this)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},8327:(t,e,n)=>{"use strict";function r(){var t=this.parentNode;t&&t.removeChild(this)}function i(){return this.each(r)}n.d(e,{Z:()=>i})},9652:(t,e,n)=>{"use strict";n.d(e,{Z:()=>o});var r=n(762),i=n(9029);function o(t){"function"!=typeof t&&(t=(0,i.Z)(t));for(var e=this._groups,n=e.length,o=new Array(n),a=0;a{"use strict";n.d(e,{Z:()=>a});var r=n(762),i=n(6455),o=n(6176);function a(t){t="function"==typeof t?function(t){return function(){var e=t.apply(this,arguments);return null==e?[]:(0,i.Z)(e)}}(t):(0,o.Z)(t);for(var e=this._groups,n=e.length,a=[],s=[],u=0;u{"use strict";n.d(e,{Z:()=>a});var r=n(1304),i=Array.prototype.find;function o(){return this.firstElementChild}function a(t){return this.select(null==t?o:function(t){return function(){return i.call(this.children,t)}}("function"==typeof t?t:(0,r.P)(t)))}},1706:(t,e,n)=>{"use strict";n.d(e,{Z:()=>a});var r=n(1304),i=Array.prototype.filter;function o(){return this.children}function a(t){return this.selectAll(null==t?o:function(t){return function(){return i.call(this.children,t)}}("function"==typeof t?t:(0,r.P)(t)))}},4019:(t,e,n)=>{"use strict";function r(){let t=0;for(const e of this)++t;return t}n.d(e,{Z:()=>r})},3004:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(762);function i(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=o);for(var n=this._groups,i=n.length,a=new Array(i),s=0;se?1:t>=e?0:NaN}},530:(t,e,n)=>{"use strict";function r(t){return new Array(t.length)}n.d(e,{Z:()=>r})},7981:(t,e,n)=>{"use strict";n.d(e,{Z:()=>s});var r=n(4416);function i(t){return function(){this.style.removeProperty(t)}}function o(t,e,n){return function(){this.style.setProperty(t,e,n)}}function a(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function s(t,e,n){return arguments.length>1?this.each((null==e?i:"function"==typeof e?a:o)(t,e,null==n?"":n)):function(t,e){return t.style.getPropertyValue(e)||(0,r.Z)(t).getComputedStyle(t,null).getPropertyValue(e)}(this.node(),t)}},5341:(t,e,n)=>{"use strict";function r(){this.textContent=""}function i(t){return function(){this.textContent=t}}function o(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function a(t){return arguments.length?this.each(null==t?r:("function"==typeof t?o:i)(t)):this.node().textContent}n.d(e,{Z:()=>a})},9029:(t,e,n)=>{"use strict";function r(){}function i(t){return null==t?r:function(){return this.querySelector(t)}}n.d(e,{Z:()=>i})},6176:(t,e,n)=>{"use strict";function r(){return[]}function i(t){return null==t?r:function(){return this.querySelectorAll(t)}}n.d(e,{Z:()=>i})},5691:(t,e,n)=>{"use strict";function r(t){let e;for(;e=t.sourceEvent;)t=e;return t}n.d(e,{Z:()=>r})},4416:(t,e,n)=>{"use strict";function r(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}n.d(e,{Z:()=>r})},4732:(t,e,n)=>{"use strict";n.d(e,{BB:()=>i});const r="px";function i(t){return t+r}},7281:(t,e,n)=>{"use strict";function r(t,e){function n(){}n.prototype=t;let r=new n;return e&&e(r),r}n.d(e,{ED:()=>r})},5666:t=>{var e=function(t){"use strict";var e,n=Object.prototype,r=n.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(t){u=function(t,e,n){return t[e]=n}}function c(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),a=new k(r||[]);return o._invoke=function(t,e,n){var r=h;return function(i,o){if(r===d)throw new Error("Generator is already running");if(r===p){if("throw"===i)throw o;return E()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=S(a,n);if(s){if(s===g)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(r===h)throw r=p,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r=d;var u=l(t,e,n);if("normal"===u.type){if(r=n.done?p:f,u.arg===g)continue;return{value:u.arg,done:n.done}}"throw"===u.type&&(r=p,n.method="throw",n.arg=u.arg)}}}(t,n,a),o}function l(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}t.wrap=c;var h="suspendedStart",f="suspendedYield",d="executing",p="completed",g={};function v(){}function y(){}function m(){}var w={};u(w,o,(function(){return this}));var Z=Object.getPrototypeOf,_=Z&&Z(Z(C([])));_&&_!==n&&r.call(_,o)&&(w=_);var b=m.prototype=v.prototype=Object.create(w);function x(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function M(t,e){function n(i,o,a,s){var u=l(t[i],t,o);if("throw"!==u.type){var c=u.arg,h=c.value;return h&&"object"==typeof h&&r.call(h,"__await")?e.resolve(h.__await).then((function(t){n("next",t,a,s)}),(function(t){n("throw",t,a,s)})):e.resolve(h).then((function(t){c.value=t,a(c)}),(function(t){return n("throw",t,a,s)}))}s(u.arg)}var i;this._invoke=function(t,r){function o(){return new e((function(e,i){n(t,r,e,i)}))}return i=i?i.then(o,o):o()}}function S(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,"throw"===n.method){if(t.iterator.return&&(n.method="return",n.arg=e,S(t,n),"throw"===n.method))return g;n.method="throw",n.arg=new TypeError("The iterator does not provide a 'throw' method")}return g}var i=l(r,t.iterator,n.arg);if("throw"===i.type)return n.method="throw",n.arg=i.arg,n.delegate=null,g;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,g):o:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,g)}function N(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function A(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function k(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(N,this),this.reset(!0)}function C(t){if(t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i=0;--o){var a=this.tryEntries[o],s=a.completion;if("root"===a.tryLoc)return i("end");if(a.tryLoc<=this.prev){var u=r.call(a,"catchLoc"),c=r.call(a,"finallyLoc");if(u&&c){if(this.prev=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),A(n),g}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if("throw"===r.type){var i=r.arg;A(n)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:C(t),resultName:n,nextLoc:r},"next"===this.method&&(this.arg=e),g}},t}(t.exports);try{regeneratorRuntime=e}catch(t){"object"==typeof globalThis?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}},7800:(t,e,n)=>{"use strict";n.d(e,{v:()=>v});var r=n(9825),i=n(5315),o=n(9216),a=(n(5666),n(880)),s=n(7802),u=n(6363),c=n(8753);let l=!0,h="#000000",f="Width",d=30;function p(t,e,n){if(n.isHighContrast)return n.background.value;const r={solid:{color:n.getColor(`${t.values[e]}`).value}};return(0,u.b)(t,e,"colorSelector","fill",r).solid.color}function g(t,e,n){return e.isHighContrast?e.foreground.value:(0,u.N)(t,"enableAxis","fill",{solid:{color:n}}).solid.color}class v{constructor(t){this.host=t.host,this.element=t.element,this.selectionManager=t.host.createSelectionManager(),this.locale=t.host.locale,this.selectionManager.registerOnSelectCallback((()=>{this.syncSelectionState(this.barSelection,this.selectionManager.getSelectionIds())})),this.tooltipServiceWrapper=(0,a.p)(this.host.tooltipService,t.element),this.svg=(0,r.Ys)(t.element).append("svg").classed("barChart",!0),this.barContainer=this.svg.append("g").classed("barContainer",!0),this.xAxis=this.svg.append("g").classed("xAxis",!0),this.handleContextMenu()}update(t){let e=function(t,e){let n=t.dataViews;if(!(n&&n[0]&&n[0].categorical&&n[0].categorical.categories&&n[0].categorical.categories[0].source&&n[0].categorical.values))return{dataPoints:[],dataMax:0,settings:{}};let r,i=n[0].categorical,o=i.categories[0],a=i.values[0],s=[],c=e.colorPalette,v=n[0].metadata.objects;const y=function(t){return t.isHighContrast?t.foreground.value:null}(c);let m={enableAxis:{show:(0,u.N)(v,"enableAxis","show",l),fill:g(v,c,h)},generalView:{width:(0,u.N)(v,"generalView","width",d),displayName:(0,u.N)(v,"generalView","displayName",f)}};const w=c.isHighContrast?2:0;for(let t=0,n=Math.max(o.values.length,a.values.length);tt.category))).rangeRound([0,a]).padding(.2),m=(0,o.LL)(y);const w=t.dataViews[0]?t.dataViews[0].metadata.objects:null;this.xAxis.attr("transform","translate(0, "+s+")").call(m).attr("color",g(w,this.host.colorPalette,h));const Z=this.xAxis.selectAll("text");v.wordBreak(Z,y.bandwidth(),s),this.barSelection=this.barContainer.selectAll(".bar").data(this.barDataPoints);const _=this.barSelection.enter().append("rect").merge(this.barSelection);_.classed("bar",!0);const b=e.settings.generalView.width;_.attr("width",b).attr("height",(t=>s-c(t.value))).attr("y",(t=>c(t.value))).attr("x",(t=>y(t.category))).style("fill",(t=>t.color)),this.tooltipServiceWrapper.addTooltip(_,(t=>this.getTooltipData(t)),(t=>t.selectionId)),this.syncSelectionState(_,this.selectionManager.getSelectionIds()),_.on("click",(t=>{if(this.host.hostCapabilities.allowInteractions){const e=r.B.ctrlKey;this.selectionManager.select(t.selectionId,e).then((t=>{this.syncSelectionState(_,t)})),r.B.stopPropagation()}})),this.barSelection.exit().remove(),this.handleClick(_)}static wordBreak(t,e,n){t.each((function(){s.y.wordBreak(this,e,n)}))}handleClick(t){this.svg.on("click",(e=>{this.host.hostCapabilities.allowInteractions&&this.selectionManager.clear().then((()=>{this.syncSelectionState(t,[])}))}))}handleContextMenu(){this.svg.on("contextmenu",(()=>{const t=n(9825).B,e=t.target;let i=(0,r.Ys)(e).datum();this.selectionManager.showContextMenu(i?i.selectionId:{},{x:t.clientX,y:t.clientY}),t.preventDefault()}))}syncSelectionState(t,e){t&&e&&e.length}enumerateObjectInstances(t){let e=t.objectName,n=[];if(!this.barChartSettings||!this.barChartSettings.enableAxis||!this.barDataPoints)return n;switch(e){case"enableAxis":n.push({objectName:e,properties:{show:this.barChartSettings.enableAxis.show,fill:this.barChartSettings.enableAxis.fill},selector:null});break;case"generalView":n.push({objectName:e,properties:{width:this.barChartSettings.generalView.width},validValues:{width:{numberRange:{min:30,max:100}}},selector:null})}return n}destroy(){}getTooltipData(t){let e=(0,c.Z)(this.locale,"LanguageKey");return[{displayName:t.category,value:t.value.toString(),color:t.color,header:e&&"displayed language "+e}]}}v.Config={xScalePadding:.1,width:30,transparentOpacity:.4,margins:{top:0,right:0,bottom:25,left:30},xAxisFontMultiplier:.04}},8753:(t,e,n)=>{"use strict";n.d(e,{Z:()=>i});var r=n(5735);function i(t,e){return r.N&&e&&r.N[e]&&(r.N[e].localization[t]||r.N[e].defaultValue)}},5735:(t,e,n)=>{"use strict";n.d(e,{N:()=>r});let r={LanguageKey:{defaultValue:"English(English)",localization:{"ar-SA":"العربية (Arabic)","bg-BG":"български (Bulgarian)","ca-ES":"català (Catalan)","cs-CZ":"čeština (Czech)","da-DK":"dansk (Danish)","de-DE":"Deutsche (German)","el-GR":"ελληνικά (Greek)","en-US":"English (English)","es-ES":"español service (Spanish)","et-EE":"eesti (Estonian)","eU-ES":"Euskal (Basque)","fi-FI":"suomi (Finnish)","fr-FR":"français (French)","gl-ES":"galego (Galician)","he-IL":"עברית (Hebrew)","hi-IN":"हिन्दी (Hindi)","hr-HR":"hrvatski (Croatian)","hu-HU":"magyar (Hungarian)","id-ID":"Bahasa Indonesia (Indonesian)","it-IT":"italiano (Italian)","ja-JP":"日本の (Japanese)","kk-KZ":"Қазақ (Kazakh)","ko-KR":"한국의 (Korean)","it-LT":"Lietuvos (Lithuanian)","lv-LV":"Latvijas (Latvian)","ms-MY":"Bahasa Melayu (Malay)","nb-NO":"norsk (Norwegian)","nl-NL":"Nederlands (Dutch)","pl-PL":"polski (Polish)","pt-BR":"português (Portuguese)","pt-PT":"português (Portuguese)","ro-RO":"românesc (Romanian)","ru-RU":"русский (Russian)","sk-SK":"slovenský (Slovak)","sl-SI":"slovenski (Slovenian)","sr-Cyrl-RS":"српски (Serbian)","sr-Latn-RS":"srpski (Serbian)","sv-SE":"svenska (Swedish)","th-TH":"ไทย (Thai)","tr-TR":"Türk (Turkish)","uk-UA":"український (Ukrainian)","vi-VN":"tiếng Việt (Vietnamese)","zh-CN":"中国 (Chinese-Simplified)","zh-TW":"中國 (Chinese-Tranditional)"}}}},6363:(t,e,n)=>{"use strict";function r(t,e,n,r){if(t){let r=t[e];if(r){let t=r[n];if(void 0!==t)return t}}return r}function i(t,e,n,r,i){let o=t.objects;if(o){let t=o[e];if(t){let e=t[n];if(e){let t=e[r];if(void 0!==t)return t}}}return i}n.d(e,{N:()=>r,b:()=>i})}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r](o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),n.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var r={};(()=>{"use strict";n.r(r),n.d(r,{default:()=>o});var t=n(7800),e=window.powerbi,i={name:"PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166",displayName:"barChart",class:"BarChart",apiVersion:"3.8.0",create:e=>{if(t.v)return new t.v(e);throw"Visual instance not found"},createModalDialog:(t,e,n)=>{const r=globalThis.dialogRegistry;t in r&&new r[t](e,n)},custom:!0};void 0!==e&&(e.visuals=e.visuals||{},e.visuals.plugins=e.visuals.plugins||{},e.visuals.plugins.PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166=i);const o=i})(),PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166=r})(); \ No newline at end of file diff --git a/.tmp/drop/visual.js.map b/.tmp/drop/visual.js.map new file mode 100644 index 0000000..abf7f73 --- /dev/null +++ b/.tmp/drop/visual.js.map @@ -0,0 +1 @@ +{"version":3,"file":"visual.js","mappings":";;;;;;;;;AAAA;;AAEO;AACA;;;;;;;;;;;;ACHP,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACFoC;AACF;;AAElC,sBAAsB,8DAAQ,CAAC,2DAAS;AACjC;AACA;AACP,iEAAe,WAAW,EAAC;;;;;;;;;;;;;ACNS;;AAEpC,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,+DAAS;AACpB;AACA;;;;;;;;;;;;AChC8B;AACA;AACI;AACJ;AACI;AACN;AACK;AACS;;AAE1C,6BAAe,sCAAW;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,OAAO;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;AC1EoE;AACnB;AACF;AACN;AACU;AACF;AACN;AACM;AACiC;AACtB;AACI;AAC3B;AACE;AACI;AACF;AACJ;AACI;AACI;AACE;AACN;AACF;AACM;AACR;AAC6B;AACjB;AACF;AACV;;;;;;;;;;;;AC1BrC,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;ACZ6B;AACQ;AACN;AACI;;AAEnC,6BAAe,oCAAS;AACxB;AACA;AACA;;;;;;;;;;;;;;ACRA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClDO;;;;;;;;;;;;;;;ACAuB;AACI;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yGAAyG,0DAAQ;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C,mFAAmF;;AAE9H;AACA;AACA,2CAA2C,gCAAgC,8DAA8D;AACzI;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC,gCAAgC;;AAEzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,yBAAyB;AACpD;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,kDAAK;AAChC;;AAEA;AACA,gEAAgE,kDAAK;AACrE;;AAEA;AACA,+DAA+D,kDAAK;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;AC7KA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;ACGgB;;;;;;;;;;;;;;;ACLuB;AACF;AACA;AACE;AACI;AACE;;;;;;;;;;;;;ACLtC;;AAEP;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,yEAAyE,8CAA8C;AACvH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gEAAgE,sBAAsB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,iEAAe,GAAG,EAAC;;;;;;;;;;AC1EK;;AAExB,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,YAAY,kCAAkC,IAAI;AACjG,yDAAyD,+BAA+B;AACxF;;AAEA;AACA,8BAA8B,kDAAkD;AAChF,2BAA2B,4CAA4C;AACvE,+BAA+B,wDAAwD;AACvF,uBAAuB,cAAc,cAAc;AACnD,gCAAgC,mCAAmC,cAAc;AACjF,kCAAkC,oBAAoB,cAAc;AACpE,0BAA0B,YAAY;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;ACxE6C;;AAE7C;;AAEA,YAAY,qDAAG;;AAEf;AACA;AACA;AACA;AACA;AACA,SAAS,iDAAM;AACf;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2DAA2D,iBAAiB;;AAE5E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sEAAe,mDAAG,IAAC;;;;;;;;;;;;;;;;;;;;;ACtCwB;;AAEpC;;AAEA;AACA;;AAEP;AACA;AACA;AACA,yBAAyB,IAAI;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+DAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,+DAAM,WAAW,2DAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,+DAAM,WAAW,2DAAM;AACvB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClX2C;AACyB;AACzB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,oDAAG,OAAO,+DAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAO;AACzC;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,+DAAM,uBAAuB,2DAAM,CAAC,sDAAK;AACzC;AACA,oBAAoB,yDAAQ,YAAY,yDAAQ;AAChD;AACA,GAAG;AACH;AACA,oBAAoB,uDAAM,YAAY,uDAAM;AAC5C;AACA,GAAG;AACH;AACA,iDAAiD,sDAAO;AACxD;AACA;AACA;AACA;AACA,eAAe,oDAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC5DD,6BAAe,oCAAS;AACxB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACT2C;AACO;AACP;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,oDAAG,OAAO,+DAAU;AACzC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;;AAEe;AACf;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA,+DAAM,WAAW,2DAAM,CAAC,sDAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oDAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iCAAiC,sDAAO;AACxC;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,sDAAO;AACvB;AACA;;AAEA,+DAAM,WAAW,2DAAM,CAAC,sDAAK;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC1HM;AACA;;;;;;;;;;;;;;;ACDgC;;AAEvC;AACO;AACA;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc;AACf,WAAW,+DAAY;AACvB;AACA;AACA;AACA;;;;;;;;;;;;;ACnB+C;;AAE/C,6BAAe,oCAAS;AACxB,aAAa,sEAAa;AAC1B;;;;;;;;;;;;ACJA;AACA;AACA;AACA,6BAAe,oCAAS;AACxB,gGAAgG;AAChG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACbA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACjBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;ACN+C;;AAExC;;AAEP,6BAAe,oCAAS;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Y;AACZ;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,2DAAK;AAClB,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtByC;AACb;AACY;AACD;;AAEvC,iEAAe;AACf,cAAc,uDAAK;;AAEnB;AACA,2BAA2B,uDAAQ,mBAAmB,uDAAQ;AAC9D;AACA;AACA,kBAAkB,4DAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,CAAC,IAAI,EAAC;;AAEN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,cAAc,uDAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,yBAAyB,uDAAK;AAC9B,+BAA+B,6DAAW;;;;;;;;;;;;ACtDjD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;ACJ8B;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA,yCAAyC;AACzC,4BAA4B;AAC5B;AACA,MAAM,OAAO;AACb;AACA,cAAc,SAAS,4DAAM,SAAS;AACtC;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,OAAO;AACpC;AACA,SAAS;AACT;;;;;;;;;;;;;AC/DA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzB+B;AACY;;AAE3C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,4DAAM,SAAS,GAAG,aAAa,4DAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,gCAAgC;AACjE,cAAc,sDAAsD,4DAAM,OAAO;AACjF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,cAAc,qDAAqD,4DAAM,OAAO;AAChF,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,aAAa,4DAAM,SAAS,GAAG,aAAa,4DAAM,SAAS;AACzE,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO,mDAAmD,qDAAQ;AAC3D,mDAAmD,qDAAQ;;;;;;;;;;;;;;AC9DlB;;AAEhD;AACA;AACA;AACA;;AAEO;AACP,+BAA+B,yDAAQ;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS,+DAAS;AAClB;;AAEO;AACP,4BAA4B,yDAAQ;AACpC;AACA;AACA,iEAAiE,yDAAQ;AACzE;AACA,SAAS,+DAAS;AAClB;;;;;;;;;;;;;;;;;;;;ACxB+B;AACP;AACI;AACF;AACI;AACA;AACA;AACI;;AAElC,6BAAe,oCAAS;AACxB;AACA,wCAAwC,8DAAQ;AAChD,0BAA0B,wDAAM;AAChC,+BAA+B,8DAAK,eAAe,sDAAG,IAAI,wDAAM;AAChE,qBAAqB,0DAAK,GAAG,sDAAG;AAChC,4BAA4B,sDAAI;AAChC,2BAA2B,uDAAK;AAChC,0FAA0F,wDAAM;AAChG,QAAQ,wDAAM;AACd;;;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;AC/DA;;AAEO;AACA;;;;;;;;;;;;;;;;ACHoC;AACV;AACD;;AAEjB;AACf,cAAc,6DAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yDAAQ,sBAAsB,0BAA0B;AACzE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,qDAAS;AAClB;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;ACnGA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACJgC;AACoE;AACjE;AACD;AACJ;;AAE9B;;AAEO;AACP;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,QAAQ,8DAAQ;AAChB;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,YAAY,0DAAM;AAClB;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA,oBAAoB,iEAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wFAAwF,uEAAiB;AACzG;;AAEA;AACA,wCAAwC,gDAAG,SAAS,wDAAM;AAC1D;;AAEA;AACA,uCAAuC,kDAAK;AAC5C;;AAEA;AACA,mBAAmB,kDAAK,wBAAwB,sEAAgB;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;;;;;;;;;;;;;;;;AC3HsC;AACE;AACL;AACL;AACI;AACC;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;AC1F4B;AACO;AACL;;AAEf;AACf;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBgB;;AAII;;AAIF;;AAIH;;AAIG;;AAKC;;AAKJ;;AAIK;;AAIA;;AAIC;;AAIL;;AAIG;;AAQG;;AAIQ;;AAQT;;AAIC;;;;;;;;;;;;;ACzEf;AACP;AACA;AACA,gCAAgC;AAChC,+CAA+C;AAC/C;AACA;AACA;;AAEO;AACP;AACA;AACA,uCAAuC;AACvC,6DAA6D;AAC7D;AACA;AACA;;;;;;;;;;;;;;;;;AChB8C;AACU;AACvB;AACK;;AAE/B;AACP;;AAEA;AACA;AACA,WAAW,yDAAK;AAChB;;AAEA;AACA;AACA,WAAW,gEAAU;AACrB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,WAAW,iEAAa;;AAExB;AACA;AACA;AACA,aAAa,iEAAa;AAC1B,MAAM;AACN;AACA;AACA,aAAa,iEAAa;AAC1B;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEe;AACf,cAAc,iEAAU,CAAC,2DAAQ,EAAE,2DAAQ;;AAE3C;AACA,WAAW,2DAAI;AACf;;AAEA,EAAE,qDAAS;;AAEX;AACA;;;;;;;;;;;;;ACvE+B;AACE;AACP;AACqB;AACd;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,4BAA4B;AAC3E;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,OAAO;AAC/B,iCAAiC,UAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,QAAQ,YAAY,OAAO;AAC3B,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B,mCAAmC;AAC9D,0BAA0B;AAC1B,KAAK;AACL;;AAEA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;;;;;;;;;;;AChJA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACFkC;AACJ;AACG;;AAE1B,gBAAgB;;AAER;AACf,cAAc,4DAAG;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,4DAAG;AAC5B;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,kDAAK;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,EAAE,qDAAS;;AAEX;AACA;;;;;;;;;;;;AC5CmC;AACsB;AACxB;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;ACjDkE;AACpC;AACG;;AAElB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;ACzDgC;AACF;AACK;AACF;;AAElB;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACxDsC;AACE;AACL;AACL;AACK;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEO;AACP;AACA;;;;;;;;;;;;AC9F2C;AACL;AACE;;AAEzB;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC7BmC;AACY;AACd;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AClCgC;AACF;AACG;;AAElB;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;ACvCkC;AAC+E;;AAEjH,6BAAe,oCAAS;AACxB,aAAa,4DAAQ;AACrB;AACA,cAAc,oEAAe;AAC7B;AACA;AACA;AACA,4DAA4D,oEAAe;AAC3E,aAAa,iEAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,mEAAc;AAC1E;AACA;AACA;AACA;AACA,4DAA4D,mEAAc;AAC1E;AACA;AACA;AACA,SAAS,2DAAM;AACf;;;;;;;;;;;;;AC5B4C;AACsE;AACxE;AACd;AAC4B;AACvB;AACP;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;ACtIgC;AACS;AACiE;AACzE;;AAEjC,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;ACPA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;ACJgC;AACF;;AAE9B,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;ACLoC;AACD;;AAEnC;AACA;AACA;AACA;AACA,mBAAmB,uDAAK,8CAA8C,uDAAK;AAC3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,+DAAS;AAC1B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACxB2C;AACE;AACJ;AACI;AACJ;AACQ;AACE;AACJ;AACJ;AACM;AACM;AACR;AACM;AACC;AACb;AACI;AACF;AACO;;;;;;;;;;ACjBlD;;AAEe;AACf;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;AC1BA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;ACJwC;AACZ;;AAE5B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;ACPsC;;AAEtC,6BAAe,oCAAS;AACxB;AACA;AACA,SAAS,4DAAU,2BAA2B,OAAO,4DAAU,uBAAuB;AACtF;;;;;;;;;;;;;ACNO;;AAEP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACRgD;;AAElD,6BAAe,oCAAS;AACxB;AACA,YAAY,iEAAS;AACrB,YAAY,iEAAS,eAAe,4DAAI;AACxC;;;;;;;;;;ACNkD;;AAElD,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;ACNiC;;AAEjC,6BAAe,oCAAS;AACxB,mDAAmD,6DAAO;AAC1D;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACPqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,+DAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxDA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1EA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;ACVkC;AACA;AACC;;AAEnC,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA,MAAM;AACN,qBAAqB,sDAAS;AAC9B;AACA;;AAEA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;A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;AAElC,6BAAe,oCAAS;;AAExB,+JAA+J,OAAO;AACtK,yHAAyH,OAAO;AAChI;AACA;AACA;AACA;AACA;;AAEA,SAAS,QAAQ;AACjB;AACA;;AAEA,aAAa,uDAAS;AACtB;;;;;;;;;;;;ACjBA,6BAAe,sCAAW;;AAE1B,4DAA4D,OAAO;AACnE,yDAAyD,OAAO;AAChE;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACVA,6BAAe,sCAAW;AAC1B;AACA,yBAAyB,oBAAoB;AAC7C;AACA;;;;;;;;;;;;;;ACJA;;AAEO;;AAEP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA,8CAA8C,OAAO;AACrD,6BAA6B,OAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;AC1GA,6BAAe,sCAAW;;AAE1B,6DAA6D,QAAQ;AACrE,6EAA6E,SAAS;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3BA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;ACPkC;AACC;;AAEnC,6BAAe,oCAAS;AACxB,6CAA6C,8DAAQ;;AAErD,sFAAsF,OAAO;AAC7F,gHAAgH,OAAO;AACvH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,uDAAS;AACtB;;;;;;;;;;;;;;AChBkC;AACO;;AAEzC,6BAAe,oCAAS;AACxB,6CAA6C,iEAAW;;AAExD,0FAA0F,OAAO;AACjG,+DAA+D,OAAO;AACtE;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,uDAAS;AACtB;;;;;;;;;;;;AChBA,6BAAe,sCAAW;AAC1B;AACA,yBAAyB,SAAS;AAClC;AACA;;;;;;;;;;;;;ACJkC;;AAElC,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA,uFAAuF,OAAO;AAC9F,yGAAyG,OAAO;AAChH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,uDAAS;AACtB;;AAEA;AACA;AACA;;;;;;;;;;;;ACvBA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;ACFoC;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,SAAS,4DAAW;AACpB;;;;;;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxBA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;ACRqC;;AAErC,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;;;;;;;;;;ACNwC;AACZ;;AAE5B,6BAAe,oCAAS;AACxB;;AAEA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;ACbwC;AACZ;;AAE5B,6BAAe,oCAAS;AACxB;;AAEA,2EAA2E,OAAO;AAClF;AACA;;AAEA;AACA;;;;;;;;;;;;ACXA,6BAAe,oCAAS;AACxB;AACA;AACA,2BAA2B;AAC3B;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AACpE;AACP;;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2G;AAC3G;AAC6C;AACsC;AAC5E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA,mBAAmB,qGAAuB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qGAAuB;AACvC;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,8EAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gEAAwB;AAC5C;AACA,6CAA6C,UAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gEAAwB;AAC9C;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,+EAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,wDAAwD;AACzD;;;;;;;;;;;;ACnXA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,mDAAmD,UAAU;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChImD;AACX;AACxC;AACO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iEAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,kCAAkC,wEAAyB;AAC3D,gCAAgC,sEAAuB;AACvD,6BAA6B,qEAAsB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wCAAwC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iEAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;ACrCA,6BAAe,oCAAS;AACxB;AACA;AACA,qBAAqB;AACrB;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;;ACJuC;AACD;;AAEtC;AACA;AACA;AACA;AACA,mBAAmB,0DAAK,8CAA8C,0DAAK;AAC3E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,kEAAS;AAC1B;AACA;AACA;AACA;;;;;;;;;;;;;ACxBA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;ACVyC;;AAEzC,6BAAe,oCAAS;AACxB;AACA;AACA,SAAS,+DAAU,2BAA2B,OAAO,+DAAU,uBAAuB,QAAQ;AAC9F;;;;;;;;;;;;;ACNO;;AAEP,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC,EAAC;;;;;;;;;;;;;ACRyC;;AAE3C,6BAAe,oCAAS;AACxB,UAAU,oEAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnBmC;AACQ;;AAE3C,6BAAe,oCAAS;AACxB,uBAAuB;AACvB,aAAa,oEAAW;AACxB;AACA;AACA;AACA,qCAAqC,gEAAO;AAC5C;;;;;;;;;;;;;;ACV+B;AACsB;;AAErD,6BAAe,oCAAS;AACxB;AACA,YAAY,oEAAS;AACrB,YAAY,oEAAS,0BAA0B,8DAAK,aAAa,+DAAI;AACrE;;;;;;;;;;;;;ACPoC;;AAEpC,6BAAe,oCAAS;AACxB,mDAAmD,gEAAO;AAC1D;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;ACPwC;;AAExC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB,iBAAiB,kEAAS;;AAE1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxDA,6BAAe,sCAAW;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACLA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1EA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;;;ACZqC;AACA;AACL;AACM;;AAEtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA;AACA;AACA,MAAM;AACN,qBAAqB,yDAAS;AAC9B;AACA;;AAEA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,qBAAqB,yDAAS;AAC9B;AACA;;AAEA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;;AAEA;AACA;AACA;;AAEA,2CAA2C,iEAAQ;;AAEnD,uGAAuG,OAAO;AAC9G;AACA;AACA;AACA,eAAe,8DAAK;AACpB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,0DAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;ACpHA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;;ACJuC;;AAEvC;AACA,eAAe,+DAAW;AAC1B;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;ACjCA,6BAAe,oCAAS;;AAExB,4DAA4D,OAAO;AACnE,+DAA+D,OAAO;AACtE;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACTA,6BAAe,sCAAW;AAC1B;AACA;;;;;;;;;;;;;;;ACFiC;AACI;;AAErC,6BAAe,sCA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,OAAO;AAC9F,yGAAyG,OAAO;AAChH;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,0DAAS;AACtB;;AAEA;AACA;AACA;;;;;;;;;;;;ACvBA,6BAAe,oCAAS;AACxB;AACA;;;;;;;;;;;;;;ACFuC;;AAEvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,SAAS,+DAAW;AACpB;;;;;;;;;;;;AClCA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxBA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;ACNA;AACA;AACA;;AAEA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;ACRA,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;;;;;;;;;;;ACJA,6BAAe,oCAAS;AACxB;AACA;AACA,2BAA2B;AAC3B;;;;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAK;AACvB;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;;;;;;;;;;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,aAAa;AACb,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,MAAM;AACN,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;AACA;AACA;;AAEA;;AAEA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,cAAc;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,mBAAmB;AACpD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,aAAa;AACb;AACA;;AAEA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA,YAAY;AACZ;AACA;AACA;;AAEA,YAAY;AACZ;AACA;AACA;;AAEA,YAAY;AACZ;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;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","sources":["webpack:///./node_modules/d3-array/src/array.js","webpack:///./node_modules/d3-array/src/ascending.js","webpack:///./node_modules/d3-array/src/bisect.js","webpack:///./node_modules/d3-array/src/bisector.js","webpack:///./node_modules/d3-array/src/histogram.js","webpack:///./node_modules/d3-array/src/index.js","webpack:///./node_modules/d3-array/src/range.js","webpack:///./node_modules/d3-array/src/threshold/freedmanDiaconis.js","webpack:///./node_modules/d3-array/src/ticks.js","webpack:///./node_modules/d3-axis/src/array.js","webpack:///./node_modules/d3-axis/src/axis.js","webpack:///./node_modules/d3-axis/src/identity.js","webpack:///./node_modules/d3-axis/src/index.js","webpack:///./node_modules/d3-collection/src/index.js","webpack:///./node_modules/d3-collection/src/map.js","webpack:///./node_modules/d3-collection/src/nest.js","webpack:///./node_modules/d3-collection/src/set.js","webpack:///./node_modules/d3-color/src/color.js","webpack:///./node_modules/d3-color/src/cubehelix.js","webpack:///./node_modules/d3-color/src/define.js","webpack:///./node_modules/d3-color/src/lab.js","webpack:///./node_modules/d3-color/src/math.js","webpack:///./node_modules/d3-format/src/defaultLocale.js","webpack:///./node_modules/d3-format/src/exponent.js","webpack:///./node_modules/d3-format/src/formatDecimal.js","webpack:///./node_modules/d3-format/src/formatGroup.js","webpack:///./node_modules/d3-format/src/formatNumerals.js","webpack:///./node_modules/d3-format/src/formatPrefixAuto.js","webpack:///./node_modules/d3-format/src/formatRounded.js","webpack:///./node_modules/d3-format/src/formatSpecifier.js","webpack:///./node_modules/d3-format/src/formatTrim.js","webpack:///./node_modules/d3-format/src/formatTypes.js","webpack:///./node_modules/d3-format/src/identity.js","webpack:///./node_modules/d3-format/src/index.js","webpack:///./node_modules/d3-format/src/locale.js","webpack:///./node_modules/d3-format/src/precisionFixed.js","webpack:///./node_modules/d3-format/src/precisionPrefix.js","webpack:///./node_modules/d3-format/src/precisionRound.js","webpack:///./node_modules/d3-interpolate/src/array.js","webpack:///./node_modules/d3-interpolate/src/basis.js","webpack:///./node_modules/d3-interpolate/src/basisClosed.js","webpack:///./node_modules/d3-interpolate/src/color.js","webpack:///./node_modules/d3-interpolate/src/constant.js","webpack:///./node_modules/d3-interpolate/src/cubehelix.js","webpack:///./node_modules/d3-interpolate/src/date.js","webpack:///./node_modules/d3-interpolate/src/hcl.js","webpack:///./node_modules/d3-interpolate/src/hsl.js","webpack:///./node_modules/d3-interpolate/src/index.js","webpack:///./node_modules/d3-interpolate/src/number.js","webpack:///./node_modules/d3-interpolate/src/object.js","webpack:///./node_modules/d3-interpolate/src/rgb.js","webpack:///./node_modules/d3-interpolate/src/round.js","webpack:///./node_modules/d3-interpolate/src/string.js","webpack:///./node_modules/d3-interpolate/src/transform/decompose.js","webpack:///./node_modules/d3-interpolate/src/transform/index.js","webpack:///./node_modules/d3-interpolate/src/transform/parse.js","webpack:///./node_modules/d3-interpolate/src/value.js","webpack:///./node_modules/d3-interpolate/src/zoom.js","webpack:///./node_modules/d3-scale/src/array.js","webpack:///./node_modules/d3-scale/src/band.js","webpack:///./node_modules/d3-scale/src/constant.js","webpack:///./node_modules/d3-scale/src/continuous.js","webpack:///./node_modules/d3-scale/src/diverging.js","webpack:///./node_modules/d3-scale/src/identity.js","webpack:///./node_modules/d3-scale/src/index.js","webpack:///./node_modules/d3-scale/src/init.js","webpack:///./node_modules/d3-scale/src/linear.js","webpack:///./node_modules/d3-scale/src/log.js","webpack:///./node_modules/d3-scale/src/number.js","webpack:///./node_modules/d3-scale/src/ordinal.js","webpack:///./node_modules/d3-scale/src/pow.js","webpack:///./node_modules/d3-scale/src/quantile.js","webpack:///./node_modules/d3-scale/src/quantize.js","webpack:///./node_modules/d3-scale/src/sequential.js","webpack:///./node_modules/d3-scale/src/sequentialQuantile.js","webpack:///./node_modules/d3-scale/src/symlog.js","webpack:///./node_modules/d3-scale/src/threshold.js","webpack:///./node_modules/d3-scale/src/tickFormat.js","webpack:///./node_modules/d3-scale/src/time.js","webpack:///./node_modules/d3-scale/src/utcTime.js","webpack:///./node_modules/d3-selection/src/constant.js","webpack:///./node_modules/d3-selection/src/create.js","webpack:///./node_modules/d3-selection/src/creator.js","webpack:///./node_modules/d3-selection/src/index.js","webpack:///./node_modules/d3-selection/src/local.js","webpack:///./node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/d3-selection/src/mouse.js","webpack:///./node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/d3-selection/src/select.js","webpack:///./node_modules/d3-selection/src/selectAll.js","webpack:///./node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/d3-selection/src/selector.js","webpack:///./node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/d3-selection/src/touch.js","webpack:///./node_modules/d3-selection/src/touches.js","webpack:///./node_modules/d3-selection/src/window.js","webpack:///./node_modules/powerbi-visuals-utils-formattingutils/lib/src/storageService/ephemeralStorageService.js","webpack:///./node_modules/powerbi-visuals-utils-formattingutils/lib/src/textMeasurementService.js","webpack:///./node_modules/powerbi-visuals-utils-formattingutils/lib/src/wordBreaker.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/lib/tooltipService.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/lib/tooltipTouch.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/array.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/constant.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/creator.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/matcher.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/namespace.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/namespaces.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/pointer.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/pointers.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selectAll.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/append.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/attr.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/call.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/classed.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/clone.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/data.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/datum.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/dispatch.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/each.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/empty.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/enter.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/exit.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/filter.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/html.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/index.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/insert.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/iterator.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/join.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/lower.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/merge.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/node.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/nodes.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/on.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/order.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/property.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/raise.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/remove.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/select.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/selectAll.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/selectChild.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/selectChildren.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/size.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/sort.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/sparse.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/style.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selection/text.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selector.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/selectorAll.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/sourceEvent.js","webpack:///./node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection/src/window.js","webpack:///./node_modules/powerbi-visuals-utils-typeutils/lib/pixelConverter.js","webpack:///./node_modules/powerbi-visuals-utils-typeutils/lib/prototype.js","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./src/barChart.ts","webpack:///./src/localization/localizationHelper.ts","webpack:///./src/localization/localizedResources.ts","webpack:///./src/objectEnumerationUtility.ts","webpack:///webpack/bootstrap","webpack:///webpack/runtime/compat get default export","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///webpack/runtime/make namespace object","webpack:///./.tmp/precompile/visualPlugin.ts"],"sourcesContent":["var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import {slice} from \"./array\";\nimport bisect from \"./bisect\";\nimport constant from \"./constant\";\nimport extent from \"./extent\";\nimport identity from \"./identity\";\nimport range from \"./range\";\nimport {tickStep} from \"./ticks\";\nimport sturges from \"./threshold/sturges\";\n\nexport default function() {\n var value = identity,\n domain = extent,\n threshold = sturges;\n\n function histogram(data) {\n var i,\n n = data.length,\n x,\n values = new Array(n);\n\n for (i = 0; i < n; ++i) {\n values[i] = value(data[i], i, data);\n }\n\n var xz = domain(values),\n x0 = xz[0],\n x1 = xz[1],\n tz = threshold(values, x0, x1);\n\n // Convert number of thresholds into uniform thresholds.\n if (!Array.isArray(tz)) {\n tz = tickStep(x0, x1, tz);\n tz = range(Math.ceil(x0 / tz) * tz, x1, tz); // exclusive\n }\n\n // Remove any thresholds outside the domain.\n var m = tz.length;\n while (tz[0] <= x0) tz.shift(), --m;\n while (tz[m - 1] > x1) tz.pop(), --m;\n\n var bins = new Array(m + 1),\n bin;\n\n // Initialize bins.\n for (i = 0; i <= m; ++i) {\n bin = bins[i] = [];\n bin.x0 = i > 0 ? tz[i - 1] : x0;\n bin.x1 = i < m ? tz[i] : x1;\n }\n\n // Assign data to bins by value, ignoring any outside the domain.\n for (i = 0; i < n; ++i) {\n x = values[i];\n if (x0 <= x && x <= x1) {\n bins[bisect(tz, x, 0, m)].push(data[i]);\n }\n }\n\n return bins;\n }\n\n histogram.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(_), histogram) : value;\n };\n\n histogram.domain = function(_) {\n return arguments.length ? (domain = typeof _ === \"function\" ? _ : constant([_[0], _[1]]), histogram) : domain;\n };\n\n histogram.thresholds = function(_) {\n return arguments.length ? (threshold = typeof _ === \"function\" ? _ : Array.isArray(_) ? constant(slice.call(_)) : constant(_), histogram) : threshold;\n };\n\n return histogram;\n}\n","export {default as bisect, bisectRight, bisectLeft} from \"./bisect\";\nexport {default as ascending} from \"./ascending\";\nexport {default as bisector} from \"./bisector\";\nexport {default as cross} from \"./cross\";\nexport {default as descending} from \"./descending\";\nexport {default as deviation} from \"./deviation\";\nexport {default as extent} from \"./extent\";\nexport {default as histogram} from \"./histogram\";\nexport {default as thresholdFreedmanDiaconis} from \"./threshold/freedmanDiaconis\";\nexport {default as thresholdScott} from \"./threshold/scott\";\nexport {default as thresholdSturges} from \"./threshold/sturges\";\nexport {default as max} from \"./max\";\nexport {default as mean} from \"./mean\";\nexport {default as median} from \"./median\";\nexport {default as merge} from \"./merge\";\nexport {default as min} from \"./min\";\nexport {default as pairs} from \"./pairs\";\nexport {default as permute} from \"./permute\";\nexport {default as quantile} from \"./quantile\";\nexport {default as range} from \"./range\";\nexport {default as scan} from \"./scan\";\nexport {default as shuffle} from \"./shuffle\";\nexport {default as sum} from \"./sum\";\nexport {default as ticks, tickIncrement, tickStep} from \"./ticks\";\nexport {default as transpose} from \"./transpose\";\nexport {default as variance} from \"./variance\";\nexport {default as zip} from \"./zip\";\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","import {map} from \"../array\";\nimport ascending from \"../ascending\";\nimport number from \"../number\";\nimport quantile from \"../quantile\";\n\nexport default function(values, min, max) {\n values = map.call(values, number).sort(ascending);\n return Math.ceil((max - min) / (2 * (quantile(values, 0.75) - quantile(values, 0.25)) * Math.pow(values.length, -1 / 3)));\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export var slice = Array.prototype.slice;\n","import {slice} from \"./array\";\nimport identity from \"./identity\";\n\nvar top = 1,\n right = 2,\n bottom = 3,\n left = 4,\n epsilon = 1e-6;\n\nfunction translateX(x) {\n return \"translate(\" + (x + 0.5) + \",0)\";\n}\n\nfunction translateY(y) {\n return \"translate(0,\" + (y + 0.5) + \")\";\n}\n\nfunction number(scale) {\n return function(d) {\n return +scale(d);\n };\n}\n\nfunction center(scale) {\n var offset = Math.max(0, scale.bandwidth() - 1) / 2; // Adjust for 0.5px offset.\n if (scale.round()) offset = Math.round(offset);\n return function(d) {\n return +scale(d) + offset;\n };\n}\n\nfunction entering() {\n return !this.__axis;\n}\n\nfunction axis(orient, scale) {\n var tickArguments = [],\n tickValues = null,\n tickFormat = null,\n tickSizeInner = 6,\n tickSizeOuter = 6,\n tickPadding = 3,\n k = orient === top || orient === left ? -1 : 1,\n x = orient === left || orient === right ? \"x\" : \"y\",\n transform = orient === top || orient === bottom ? translateX : translateY;\n\n function axis(context) {\n var values = tickValues == null ? (scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain()) : tickValues,\n format = tickFormat == null ? (scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity) : tickFormat,\n spacing = Math.max(tickSizeInner, 0) + tickPadding,\n range = scale.range(),\n range0 = +range[0] + 0.5,\n range1 = +range[range.length - 1] + 0.5,\n position = (scale.bandwidth ? center : number)(scale.copy()),\n selection = context.selection ? context.selection() : context,\n path = selection.selectAll(\".domain\").data([null]),\n tick = selection.selectAll(\".tick\").data(values, scale).order(),\n tickExit = tick.exit(),\n tickEnter = tick.enter().append(\"g\").attr(\"class\", \"tick\"),\n line = tick.select(\"line\"),\n text = tick.select(\"text\");\n\n path = path.merge(path.enter().insert(\"path\", \".tick\")\n .attr(\"class\", \"domain\")\n .attr(\"stroke\", \"currentColor\"));\n\n tick = tick.merge(tickEnter);\n\n line = line.merge(tickEnter.append(\"line\")\n .attr(\"stroke\", \"currentColor\")\n .attr(x + \"2\", k * tickSizeInner));\n\n text = text.merge(tickEnter.append(\"text\")\n .attr(\"fill\", \"currentColor\")\n .attr(x, k * spacing)\n .attr(\"dy\", orient === top ? \"0em\" : orient === bottom ? \"0.71em\" : \"0.32em\"));\n\n if (context !== selection) {\n path = path.transition(context);\n tick = tick.transition(context);\n line = line.transition(context);\n text = text.transition(context);\n\n tickExit = tickExit.transition(context)\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { return isFinite(d = position(d)) ? transform(d) : this.getAttribute(\"transform\"); });\n\n tickEnter\n .attr(\"opacity\", epsilon)\n .attr(\"transform\", function(d) { var p = this.parentNode.__axis; return transform(p && isFinite(p = p(d)) ? p : position(d)); });\n }\n\n tickExit.remove();\n\n path\n .attr(\"d\", orient === left || orient == right\n ? (tickSizeOuter ? \"M\" + k * tickSizeOuter + \",\" + range0 + \"H0.5V\" + range1 + \"H\" + k * tickSizeOuter : \"M0.5,\" + range0 + \"V\" + range1)\n : (tickSizeOuter ? \"M\" + range0 + \",\" + k * tickSizeOuter + \"V0.5H\" + range1 + \"V\" + k * tickSizeOuter : \"M\" + range0 + \",0.5H\" + range1));\n\n tick\n .attr(\"opacity\", 1)\n .attr(\"transform\", function(d) { return transform(position(d)); });\n\n line\n .attr(x + \"2\", k * tickSizeInner);\n\n text\n .attr(x, k * spacing)\n .text(format);\n\n selection.filter(entering)\n .attr(\"fill\", \"none\")\n .attr(\"font-size\", 10)\n .attr(\"font-family\", \"sans-serif\")\n .attr(\"text-anchor\", orient === right ? \"start\" : orient === left ? \"end\" : \"middle\");\n\n selection\n .each(function() { this.__axis = position; });\n }\n\n axis.scale = function(_) {\n return arguments.length ? (scale = _, axis) : scale;\n };\n\n axis.ticks = function() {\n return tickArguments = slice.call(arguments), axis;\n };\n\n axis.tickArguments = function(_) {\n return arguments.length ? (tickArguments = _ == null ? [] : slice.call(_), axis) : tickArguments.slice();\n };\n\n axis.tickValues = function(_) {\n return arguments.length ? (tickValues = _ == null ? null : slice.call(_), axis) : tickValues && tickValues.slice();\n };\n\n axis.tickFormat = function(_) {\n return arguments.length ? (tickFormat = _, axis) : tickFormat;\n };\n\n axis.tickSize = function(_) {\n return arguments.length ? (tickSizeInner = tickSizeOuter = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeInner = function(_) {\n return arguments.length ? (tickSizeInner = +_, axis) : tickSizeInner;\n };\n\n axis.tickSizeOuter = function(_) {\n return arguments.length ? (tickSizeOuter = +_, axis) : tickSizeOuter;\n };\n\n axis.tickPadding = function(_) {\n return arguments.length ? (tickPadding = +_, axis) : tickPadding;\n };\n\n return axis;\n}\n\nexport function axisTop(scale) {\n return axis(top, scale);\n}\n\nexport function axisRight(scale) {\n return axis(right, scale);\n}\n\nexport function axisBottom(scale) {\n return axis(bottom, scale);\n}\n\nexport function axisLeft(scale) {\n return axis(left, scale);\n}\n","export default function(x) {\n return x;\n}\n","export {\n axisTop,\n axisRight,\n axisBottom,\n axisLeft\n} from \"./axis\";\n","export {default as nest} from \"./nest\";\nexport {default as set} from \"./set\";\nexport {default as map} from \"./map\";\nexport {default as keys} from \"./keys\";\nexport {default as values} from \"./values\";\nexport {default as entries} from \"./entries\";\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import map from \"./map\";\n\nexport default function() {\n var keys = [],\n sortKeys = [],\n sortValues,\n rollup,\n nest;\n\n function apply(array, depth, createResult, setResult) {\n if (depth >= keys.length) {\n if (sortValues != null) array.sort(sortValues);\n return rollup != null ? rollup(array) : array;\n }\n\n var i = -1,\n n = array.length,\n key = keys[depth++],\n keyValue,\n value,\n valuesByKey = map(),\n values,\n result = createResult();\n\n while (++i < n) {\n if (values = valuesByKey.get(keyValue = key(value = array[i]) + \"\")) {\n values.push(value);\n } else {\n valuesByKey.set(keyValue, [value]);\n }\n }\n\n valuesByKey.each(function(values, key) {\n setResult(result, key, apply(values, depth, createResult, setResult));\n });\n\n return result;\n }\n\n function entries(map, depth) {\n if (++depth > keys.length) return map;\n var array, sortKey = sortKeys[depth - 1];\n if (rollup != null && depth >= keys.length) array = map.entries();\n else array = [], map.each(function(v, k) { array.push({key: k, values: entries(v, depth)}); });\n return sortKey != null ? array.sort(function(a, b) { return sortKey(a.key, b.key); }) : array;\n }\n\n return nest = {\n object: function(array) { return apply(array, 0, createObject, setObject); },\n map: function(array) { return apply(array, 0, createMap, setMap); },\n entries: function(array) { return entries(apply(array, 0, createMap, setMap), 0); },\n key: function(d) { keys.push(d); return nest; },\n sortKeys: function(order) { sortKeys[keys.length - 1] = order; return nest; },\n sortValues: function(order) { sortValues = order; return nest; },\n rollup: function(f) { rollup = f; return nest; }\n };\n}\n\nfunction createObject() {\n return {};\n}\n\nfunction setObject(object, key, value) {\n object[key] = value;\n}\n\nfunction createMap() {\n return map();\n}\n\nfunction setMap(map, key, value) {\n map.set(key, value);\n}\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? new Rgb(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? new Rgb((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\nimport {Color, rgbConvert, Rgb} from \"./color.js\";\nimport {deg2rad, rad2deg} from \"./math.js\";\n\n// https://observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) return hcl2lab(o);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\nfunction hcl2lab(o) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return hcl2lab(this).rgb();\n }\n}));\n","export var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\n}\n","// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatDecimal from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimal(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (i0 > 0) { if (!+s[i]) break out; i0 = 0; } break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","export {default as formatDefaultLocale, format, formatPrefix} from \"./defaultLocale.js\";\nexport {default as formatLocale} from \"./locale.js\";\nexport {default as formatSpecifier, FormatSpecifier} from \"./formatSpecifier.js\";\nexport {default as precisionFixed} from \"./precisionFixed.js\";\nexport {default as precisionPrefix} from \"./precisionPrefix.js\";\nexport {default as precisionRound} from \"./precisionRound.js\";\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Perform the initial formatting.\n var valueNegative = value < 0;\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import value from \"./value\";\n\nexport default function(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import {basis} from \"./basis\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","import constant from \"./constant\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n}\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","export {default as interpolate} from \"./value\";\nexport {default as interpolateArray} from \"./array\";\nexport {default as interpolateBasis} from \"./basis\";\nexport {default as interpolateBasisClosed} from \"./basisClosed\";\nexport {default as interpolateDate} from \"./date\";\nexport {default as interpolateDiscrete} from \"./discrete\";\nexport {default as interpolateHue} from \"./hue\";\nexport {default as interpolateNumber} from \"./number\";\nexport {default as interpolateObject} from \"./object\";\nexport {default as interpolateRound} from \"./round\";\nexport {default as interpolateString} from \"./string\";\nexport {interpolateTransformCss, interpolateTransformSvg} from \"./transform/index\";\nexport {default as interpolateZoom} from \"./zoom\";\nexport {default as interpolateRgb, rgbBasis as interpolateRgbBasis, rgbBasisClosed as interpolateRgbBasisClosed} from \"./rgb\";\nexport {default as interpolateHsl, hslLong as interpolateHslLong} from \"./hsl\";\nexport {default as interpolateLab} from \"./lab\";\nexport {default as interpolateHcl, hclLong as interpolateHclLong} from \"./hcl\";\nexport {default as interpolateCubehelix, cubehelixLong as interpolateCubehelixLong} from \"./cubehelix\";\nexport {default as piecewise} from \"./piecewise\";\nexport {default as quantize} from \"./quantize\";\n","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n}\n","import value from \"./value\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis\";\nimport basisClosed from \"./basisClosed\";\nimport nogamma, {gamma} from \"./color\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n}\n","import number from \"./number\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number\";\nimport {parseCss, parseSvg} from \"./parse\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import decompose, {identity} from \"./decompose\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb\";\nimport array from \"./array\";\nimport date from \"./date\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport string from \"./string\";\nimport constant from \"./constant\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : Array.isArray(b) ? array\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(domain) {\n var a = domain[0], b = domain[domain.length - 1], t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1);\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export {\n default as scaleBand,\n point as scalePoint\n} from \"./band\";\n\nexport {\n default as scaleIdentity\n} from \"./identity\";\n\nexport {\n default as scaleLinear\n} from \"./linear\";\n\nexport {\n default as scaleLog\n} from \"./log\";\n\nexport {\n default as scaleSymlog\n} from \"./symlog\";\n\nexport {\n default as scaleOrdinal,\n implicit as scaleImplicit\n} from \"./ordinal\";\n\nexport {\n default as scalePow,\n sqrt as scaleSqrt\n} from \"./pow\";\n\nexport {\n default as scaleQuantile\n} from \"./quantile\";\n\nexport {\n default as scaleQuantize\n} from \"./quantize\";\n\nexport {\n default as scaleThreshold\n} from \"./threshold\";\n\nexport {\n default as scaleTime\n} from \"./time\";\n\nexport {\n default as scaleUtc\n} from \"./utcTime\";\n\nexport {\n default as scaleSequential,\n sequentialLog as scaleSequentialLog,\n sequentialPow as scaleSequentialPow,\n sequentialSqrt as scaleSequentialSqrt,\n sequentialSymlog as scaleSequentialSymlog\n} from \"./sequential\";\n\nexport {\n default as scaleSequentialQuantile\n} from \"./sequentialQuantile\";\n\nexport {\n default as scaleDiverging,\n divergingLog as scaleDivergingLog,\n divergingPow as scaleDivergingPow,\n divergingSqrt as scaleDivergingSqrt,\n divergingSymlog as scaleDivergingSymlog\n} from \"./diverging\";\n\nexport {\n default as tickFormat\n} from \"./tickFormat\";\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","export default function(x) {\n return +x;\n}\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import creator from \"./creator\";\nimport select from \"./select\";\n\nexport default function(name) {\n return select(creator(name).call(document.documentElement));\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export {default as create} from \"./create\";\nexport {default as creator} from \"./creator\";\nexport {default as local} from \"./local\";\nexport {default as matcher} from \"./matcher\";\nexport {default as mouse} from \"./mouse\";\nexport {default as namespace} from \"./namespace\";\nexport {default as namespaces} from \"./namespaces\";\nexport {default as clientPoint} from \"./point\";\nexport {default as select} from \"./select\";\nexport {default as selectAll} from \"./selectAll\";\nexport {default as selection} from \"./selection/index\";\nexport {default as selector} from \"./selector\";\nexport {default as selectorAll} from \"./selectorAll\";\nexport {styleValue as style} from \"./selection/style\";\nexport {default as touch} from \"./touch\";\nexport {default as touches} from \"./touches\";\nexport {default as window} from \"./window\";\nexport {event, customEvent} from \"./selection/on\";\n","var nextId = 0;\n\nexport default function local() {\n return new Local;\n}\n\nfunction Local() {\n this._ = \"@\" + (++nextId).toString(36);\n}\n\nLocal.prototype = local.prototype = {\n constructor: Local,\n get: function(node) {\n var id = this._;\n while (!(id in node)) if (!(node = node.parentNode)) return;\n return node[id];\n },\n set: function(node, value) {\n return node[this._] = value;\n },\n remove: function(node) {\n return this._ in node && delete node[this._];\n },\n toString: function() {\n return this._;\n }\n};\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node) {\n var event = sourceEvent();\n if (event.changedTouches) event = event.changedTouches[0];\n return point(node, event);\n}\n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : selector], root);\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n return this.parentNode.insertBefore(this.cloneNode(false), this.nextSibling);\n}\n\nfunction selection_cloneDeep() {\n return this.parentNode.insertBefore(this.cloneNode(true), this.nextSibling);\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {event} from \"./selection/on\";\n\nexport default function() {\n var current = event, source;\n while (source = current.sourceEvent) current = source;\n return current;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches, identifier) {\n if (arguments.length < 3) identifier = touches, touches = sourceEvent().changedTouches;\n\n for (var i = 0, n = touches ? touches.length : 0, touch; i < n; ++i) {\n if ((touch = touches[i]).identifier === identifier) {\n return point(node, touch);\n }\n }\n\n return null;\n}\n","import sourceEvent from \"./sourceEvent\";\nimport point from \"./point\";\n\nexport default function(node, touches) {\n if (touches == null) touches = sourceEvent().touches;\n\n for (var i = 0, n = touches ? touches.length : 0, points = new Array(n); i < n; ++i) {\n points[i] = point(node, touches[i]);\n }\n\n return points;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved.\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\nexport class EphemeralStorageService {\r\n constructor(clearCacheInterval) {\r\n this.cache = {};\r\n this.clearCacheInterval = (clearCacheInterval != null)\r\n ? clearCacheInterval\r\n : EphemeralStorageService.defaultClearCacheInterval;\r\n this.clearCache();\r\n }\r\n getData(key) {\r\n return this.cache[key];\r\n }\r\n setData(key, data) {\r\n this.cache[key] = data;\r\n if (this.clearCacheTimerId == null) {\r\n this.clearCacheTimerId = setTimeout(() => this.clearCache(), this.clearCacheInterval);\r\n }\r\n }\r\n clearCache() {\r\n this.cache = {};\r\n this.clearCacheTimerId = undefined;\r\n }\r\n}\r\nEphemeralStorageService.defaultClearCacheInterval = (1000 * 60 * 60 * 24); // 1 day\r\nexport const ephemeralStorageService = new EphemeralStorageService();\r\n//# sourceMappingURL=ephemeralStorageService.js.map","/*\r\n* Power BI Visualizations\r\n*\r\n* Copyright (c) Microsoft Corporation\r\n* All rights reserved.\r\n* MIT License\r\n*\r\n* Permission is hereby granted, free of charge, to any person obtaining a copy\r\n* of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n* in the Software without restriction, including without limitation the rights\r\n* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n* copies of the Software, and to permit persons to whom the Software is\r\n* furnished to do so, subject to the following conditions:\r\n*\r\n* The above copyright notice and this permission notice shall be included in\r\n* all copies or substantial portions of the Software.\r\n*\r\n* THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n* THE SOFTWARE.\r\n*/\r\n// powerbi.extensibility.utils.type\r\nimport { pixelConverter as PixelConverter, prototype as Prototype } from \"powerbi-visuals-utils-typeutils\";\r\n// powerbi.extensibility.utils.formatting\r\nimport * as wordBreaker from \"./wordBreaker\";\r\nimport { ephemeralStorageService } from \"./storageService/ephemeralStorageService\";\r\nexport var textMeasurementService;\r\n(function (textMeasurementService) {\r\n const ellipsis = \"...\";\r\n let spanElement;\r\n let svgTextElement;\r\n let canvasCtx;\r\n let fallbackFontFamily;\r\n /**\r\n * Idempotent function for adding the elements to the DOM.\r\n */\r\n function ensureDOM() {\r\n if (spanElement) {\r\n return;\r\n }\r\n spanElement = document.createElement(\"span\");\r\n document.body.appendChild(spanElement);\r\n // The style hides the svg element from the canvas, preventing canvas from scrolling down to show svg black square.\r\n // tslint:disable-next-line\r\n const svgElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\r\n svgElement.setAttribute(\"height\", \"0\");\r\n svgElement.setAttribute(\"width\", \"0\");\r\n svgElement.setAttribute(\"position\", \"absolute\");\r\n svgElement.style.top = \"0px\";\r\n svgElement.style.left = \"0px\";\r\n svgElement.style.position = \"absolute\";\r\n svgElement.style.height = \"0px\";\r\n svgElement.style.width = \"0px\";\r\n // tslint:disable-next-line\r\n svgTextElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\r\n svgElement.appendChild(svgTextElement);\r\n document.body.appendChild(svgElement);\r\n let canvasElement = document.createElement(\"canvas\");\r\n canvasCtx = canvasElement.getContext(\"2d\");\r\n let style = window.getComputedStyle(svgTextElement);\r\n if (style) {\r\n fallbackFontFamily = style.fontFamily;\r\n }\r\n else {\r\n fallbackFontFamily = \"\";\r\n }\r\n }\r\n /**\r\n * Removes spanElement from DOM.\r\n */\r\n function removeSpanElement() {\r\n if (spanElement && spanElement.remove) {\r\n spanElement.remove();\r\n }\r\n spanElement = null;\r\n }\r\n textMeasurementService.removeSpanElement = removeSpanElement;\r\n /**\r\n * This method measures the width of the text with the given SVG text properties.\r\n * @param textProperties The text properties to use for text measurement.\r\n * @param text The text to measure.\r\n */\r\n function measureSvgTextWidth(textProperties, text) {\r\n ensureDOM();\r\n canvasCtx.font =\r\n (textProperties.fontStyle || \"\") + \" \" +\r\n (textProperties.fontVariant || \"\") + \" \" +\r\n (textProperties.fontWeight || \"\") + \" \" +\r\n textProperties.fontSize + \" \" +\r\n (textProperties.fontFamily || fallbackFontFamily);\r\n return canvasCtx.measureText(text || textProperties.text).width;\r\n }\r\n textMeasurementService.measureSvgTextWidth = measureSvgTextWidth;\r\n /**\r\n * This method return the rect with the given SVG text properties.\r\n * @param textProperties The text properties to use for text measurement.\r\n * @param text The text to measure.\r\n */\r\n function measureSvgTextRect(textProperties, text) {\r\n ensureDOM();\r\n // Removes DOM elements faster than innerHTML\r\n while (svgTextElement.firstChild) {\r\n svgTextElement.removeChild(svgTextElement.firstChild);\r\n }\r\n svgTextElement.setAttribute(\"style\", null);\r\n svgTextElement.style.visibility = \"hidden\";\r\n svgTextElement.style.fontFamily = textProperties.fontFamily || fallbackFontFamily;\r\n svgTextElement.style.fontVariant = textProperties.fontVariant;\r\n svgTextElement.style.fontSize = textProperties.fontSize;\r\n svgTextElement.style.fontWeight = textProperties.fontWeight;\r\n svgTextElement.style.fontStyle = textProperties.fontStyle;\r\n svgTextElement.style.whiteSpace = textProperties.whiteSpace || \"nowrap\";\r\n svgTextElement.appendChild(document.createTextNode(text || textProperties.text));\r\n // We're expecting the browser to give a synchronous measurement here\r\n // We're using SVGTextElement because it works across all browsers\r\n return svgTextElement.getBBox();\r\n }\r\n textMeasurementService.measureSvgTextRect = measureSvgTextRect;\r\n /**\r\n * This method measures the height of the text with the given SVG text properties.\r\n * @param textProperties The text properties to use for text measurement.\r\n * @param text The text to measure.\r\n */\r\n function measureSvgTextHeight(textProperties, text) {\r\n return measureSvgTextRect(textProperties, text).height;\r\n }\r\n textMeasurementService.measureSvgTextHeight = measureSvgTextHeight;\r\n /**\r\n * This method returns the text Rect with the given SVG text properties.\r\n * Does NOT return text width; obliterates text value\r\n * @param {TextProperties} textProperties - The text properties to use for text measurement\r\n */\r\n function estimateSvgTextRect(textProperties) {\r\n let propertiesKey = textProperties.fontFamily + textProperties.fontSize;\r\n let rect = ephemeralStorageService.getData(propertiesKey);\r\n if (rect == null) {\r\n // To estimate we check the height of a particular character, once it is cached, subsequent\r\n // calls should always get the height from the cache (regardless of the text).\r\n let estimatedTextProperties = {\r\n fontFamily: textProperties.fontFamily,\r\n fontSize: textProperties.fontSize,\r\n text: \"M\",\r\n };\r\n rect = textMeasurementService.measureSvgTextRect(estimatedTextProperties);\r\n // NOTE: In some cases (disconnected/hidden DOM) we may provide incorrect measurement results (zero sized bounding-box), so\r\n // we only store values in the cache if we are confident they are correct.\r\n if (rect.height > 0)\r\n ephemeralStorageService.setData(propertiesKey, rect);\r\n }\r\n return rect;\r\n }\r\n /**\r\n * This method returns the text Rect with the given SVG text properties.\r\n * @param {TextProperties} textProperties - The text properties to use for text measurement\r\n */\r\n function estimateSvgTextBaselineDelta(textProperties) {\r\n let rect = estimateSvgTextRect(textProperties);\r\n return rect.y + rect.height;\r\n }\r\n textMeasurementService.estimateSvgTextBaselineDelta = estimateSvgTextBaselineDelta;\r\n /**\r\n * This method estimates the height of the text with the given SVG text properties.\r\n * @param {TextProperties} textProperties - The text properties to use for text measurement\r\n */\r\n function estimateSvgTextHeight(textProperties, tightFightForNumeric = false) {\r\n let height = estimateSvgTextRect(textProperties).height;\r\n // replace it with new baseline calculation\r\n if (tightFightForNumeric)\r\n height *= 0.7;\r\n return height;\r\n }\r\n textMeasurementService.estimateSvgTextHeight = estimateSvgTextHeight;\r\n /**\r\n * This method measures the width of the svgElement.\r\n * @param svgElement The SVGTextElement to be measured.\r\n */\r\n function measureSvgTextElementWidth(svgElement) {\r\n return measureSvgTextWidth(getSvgMeasurementProperties(svgElement));\r\n }\r\n textMeasurementService.measureSvgTextElementWidth = measureSvgTextElementWidth;\r\n /**\r\n * This method fetches the text measurement properties of the given DOM element.\r\n * @param element The selector for the DOM Element.\r\n */\r\n function getMeasurementProperties(element) {\r\n const style = window.getComputedStyle(element);\r\n return {\r\n text: element.value || element.textContent,\r\n fontFamily: style.fontFamily,\r\n fontSize: style.fontSize,\r\n fontWeight: style.fontWeight,\r\n fontStyle: style.fontStyle,\r\n fontVariant: style.fontVariant,\r\n whiteSpace: style.whiteSpace\r\n };\r\n }\r\n textMeasurementService.getMeasurementProperties = getMeasurementProperties;\r\n /**\r\n * This method fetches the text measurement properties of the given SVG text element.\r\n * @param element The SVGTextElement to be measured.\r\n */\r\n function getSvgMeasurementProperties(element) {\r\n let style = window.getComputedStyle(element);\r\n if (style) {\r\n return {\r\n text: element.textContent,\r\n fontFamily: style.fontFamily,\r\n fontSize: style.fontSize,\r\n fontWeight: style.fontWeight,\r\n fontStyle: style.fontStyle,\r\n fontVariant: style.fontVariant,\r\n whiteSpace: style.whiteSpace\r\n };\r\n }\r\n else {\r\n return {\r\n text: element.textContent,\r\n fontFamily: \"\",\r\n fontSize: \"0\",\r\n };\r\n }\r\n }\r\n textMeasurementService.getSvgMeasurementProperties = getSvgMeasurementProperties;\r\n /**\r\n * This method returns the width of a div element.\r\n * @param element The div element.\r\n */\r\n function getDivElementWidth(element) {\r\n const style = window.getComputedStyle(element);\r\n if (style)\r\n return style.width;\r\n else\r\n return \"0\";\r\n }\r\n textMeasurementService.getDivElementWidth = getDivElementWidth;\r\n /**\r\n * Compares labels text size to the available size and renders ellipses when the available size is smaller.\r\n * @param textProperties The text properties (including text content) to use for text measurement.\r\n * @param maxWidth The maximum width available for rendering the text.\r\n */\r\n function getTailoredTextOrDefault(textProperties, maxWidth) {\r\n ensureDOM();\r\n let strLength = textProperties.text.length;\r\n if (strLength === 0) {\r\n return textProperties.text;\r\n }\r\n let width = measureSvgTextWidth(textProperties);\r\n if (width < maxWidth) {\r\n return textProperties.text;\r\n }\r\n // Create a copy of the textProperties so we don't modify the one that's passed in.\r\n let copiedTextProperties = Prototype.inherit(textProperties);\r\n // Take the properties and apply them to svgTextElement\r\n // Then, do the binary search to figure out the substring we want\r\n // Set the substring on textElement argument\r\n let text = copiedTextProperties.text = ellipsis + copiedTextProperties.text;\r\n let min = 1;\r\n let max = text.length;\r\n let i = ellipsis.length;\r\n while (min <= max) {\r\n // num | 0 prefered to Math.floor(num) for performance benefits\r\n i = (min + max) / 2 | 0;\r\n copiedTextProperties.text = text.substr(0, i);\r\n width = measureSvgTextWidth(copiedTextProperties);\r\n if (maxWidth > width) {\r\n min = i + 1;\r\n }\r\n else if (maxWidth < width) {\r\n max = i - 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n // Since the search algorithm almost never finds an exact match,\r\n // it will pick one of the closest two, which could result in a\r\n // value bigger with than 'maxWidth' thus we need to go back by\r\n // one to guarantee a smaller width than 'maxWidth'.\r\n copiedTextProperties.text = text.substr(0, i);\r\n width = measureSvgTextWidth(copiedTextProperties);\r\n if (width > maxWidth) {\r\n i--;\r\n }\r\n return text.substr(ellipsis.length, i - ellipsis.length) + ellipsis;\r\n }\r\n textMeasurementService.getTailoredTextOrDefault = getTailoredTextOrDefault;\r\n /**\r\n * Compares labels text size to the available size and renders ellipses when the available size is smaller.\r\n * @param textElement The SVGTextElement containing the text to render.\r\n * @param maxWidth The maximum width available for rendering the text.\r\n */\r\n function svgEllipsis(textElement, maxWidth) {\r\n let properties = getSvgMeasurementProperties(textElement);\r\n let originalText = properties.text;\r\n let tailoredText = getTailoredTextOrDefault(properties, maxWidth);\r\n if (originalText !== tailoredText) {\r\n textElement.textContent = tailoredText;\r\n }\r\n }\r\n textMeasurementService.svgEllipsis = svgEllipsis;\r\n /**\r\n * Word break textContent of SVG element into s\r\n * Each tspan will be the height of a single line of text\r\n * @param textElement - the SVGTextElement containing the text to wrap\r\n * @param maxWidth - the maximum width available\r\n * @param maxHeight - the maximum height available (defaults to single line)\r\n * @param linePadding - (optional) padding to add to line height\r\n */\r\n function wordBreak(textElement, maxWidth, maxHeight, linePadding = 0) {\r\n let properties = getSvgMeasurementProperties(textElement);\r\n let height = estimateSvgTextHeight(properties) + linePadding;\r\n let maxNumLines = Math.max(1, Math.floor(maxHeight / height));\r\n // Save y of parent textElement to apply as first tspan dy\r\n let firstDY = textElement ? textElement.getAttribute(\"y\") : null;\r\n // Store and clear text content\r\n let labelText = textElement ? textElement.textContent : null;\r\n textElement.textContent = null;\r\n // Append a tspan for each word broken section\r\n let words = wordBreaker.splitByWidth(labelText, properties, measureSvgTextWidth, maxWidth, maxNumLines);\r\n const fragment = document.createDocumentFragment();\r\n for (let i = 0, ilen = words.length; i < ilen; i++) {\r\n const dy = i === 0 ? firstDY : height;\r\n properties.text = words[i];\r\n // tslint:disable-next-line\r\n const textElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\r\n textElement.setAttribute(\"x\", \"0\");\r\n textElement.setAttribute(\"dy\", dy ? dy.toString() : null);\r\n textElement.appendChild(document.createTextNode(getTailoredTextOrDefault(properties, maxWidth)));\r\n fragment.appendChild(textElement);\r\n }\r\n textElement.appendChild(fragment);\r\n }\r\n textMeasurementService.wordBreak = wordBreak;\r\n /**\r\n * Word break textContent of span element into s\r\n * Each span will be the height of a single line of text\r\n * @param textElement - the element containing the text to wrap\r\n * @param maxWidth - the maximum width available\r\n * @param maxHeight - the maximum height available (defaults to single line)\r\n * @param linePadding - (optional) padding to add to line height\r\n */\r\n function wordBreakOverflowingText(textElement, maxWidth, maxHeight, linePadding = 0) {\r\n const properties = getSvgMeasurementProperties(textElement);\r\n let height = estimateSvgTextHeight(properties) + linePadding;\r\n let maxNumLines = Math.max(1, Math.floor(maxHeight / height));\r\n // Store and clear text content\r\n const labelText = textElement.textContent;\r\n textElement.textContent = null;\r\n // Append a span for each word broken section\r\n const words = wordBreaker.splitByWidth(labelText, properties, measureSvgTextWidth, maxWidth, maxNumLines);\r\n const fragment = document.createDocumentFragment();\r\n for (let i = 0; i < words.length; i++) {\r\n const span = document.createElement(\"span\");\r\n span.classList.add(\"overflowingText\");\r\n span.style.overflow = \"hidden\";\r\n span.style.whiteSpace = \"nowrap\";\r\n span.style.textOverflow = \"ellipsis\";\r\n span.style.display = \"block\";\r\n span.style.width = PixelConverter.toString(maxWidth);\r\n span.appendChild(document.createTextNode(words[i]));\r\n span.appendChild(document.createTextNode(getTailoredTextOrDefault(properties, maxWidth)));\r\n fragment.appendChild(span);\r\n }\r\n textElement.appendChild(fragment);\r\n }\r\n textMeasurementService.wordBreakOverflowingText = wordBreakOverflowingText;\r\n})(textMeasurementService || (textMeasurementService = {}));\r\n//# sourceMappingURL=textMeasurementService.js.map","const SPACE = \" \";\r\nconst BREAKERS_REGEX = /[\\s\\n]+/g;\r\nfunction search(index, content, backward) {\r\n if (backward) {\r\n for (let i = index - 1; i > -1; i--) {\r\n if (hasBreakers(content[i]))\r\n return i + 1;\r\n }\r\n }\r\n else {\r\n for (let i = index, ilen = content.length; i < ilen; i++) {\r\n if (hasBreakers(content[i]))\r\n return i;\r\n }\r\n }\r\n return backward ? 0 : content.length;\r\n}\r\n/**\r\n * Find the word nearest the cursor specified within content\r\n * @param index - point within content to search forward/backward from\r\n * @param content - string to search\r\n*/\r\nexport function find(index, content) {\r\n let result = { start: 0, end: 0 };\r\n if (content.length === 0) {\r\n return result;\r\n }\r\n result.start = search(index, content, true);\r\n result.end = search(index, content, false);\r\n return result;\r\n}\r\n/**\r\n * Test for presence of breakers within content\r\n * @param content - string to test\r\n*/\r\nexport function hasBreakers(content) {\r\n BREAKERS_REGEX.lastIndex = 0;\r\n return BREAKERS_REGEX.test(content);\r\n}\r\n/**\r\n * Count the number of pieces when broken by BREAKERS_REGEX\r\n * ~2.7x faster than WordBreaker.split(content).length\r\n * @param content - string to break and count\r\n*/\r\nexport function wordCount(content) {\r\n let count = 1;\r\n BREAKERS_REGEX.lastIndex = 0;\r\n BREAKERS_REGEX.exec(content);\r\n while (BREAKERS_REGEX.lastIndex !== 0) {\r\n count++;\r\n BREAKERS_REGEX.exec(content);\r\n }\r\n return count;\r\n}\r\nexport function getMaxWordWidth(content, textWidthMeasurer, properties) {\r\n let words = split(content);\r\n let maxWidth = 0;\r\n for (let w of words) {\r\n properties.text = w;\r\n maxWidth = Math.max(maxWidth, textWidthMeasurer(properties));\r\n }\r\n return maxWidth;\r\n}\r\nfunction split(content) {\r\n return content.split(BREAKERS_REGEX);\r\n}\r\nfunction getWidth(content, properties, textWidthMeasurer) {\r\n properties.text = content;\r\n return textWidthMeasurer(properties);\r\n}\r\nfunction truncate(content, properties, truncator, maxWidth) {\r\n properties.text = content;\r\n return truncator(properties, maxWidth);\r\n}\r\n/**\r\n * Split content by breakers (words) and greedy fit as many words\r\n * into each index in the result based on max width and number of lines\r\n * e.g. Each index in result corresponds to a line of content\r\n * when used by AxisHelper.LabelLayoutStrategy.wordBreak\r\n * @param content - string to split\r\n * @param properties - text properties to be used by @param:textWidthMeasurer\r\n * @param textWidthMeasurer - function to calculate width of given text content\r\n * @param maxWidth - maximum allowed width of text content in each result\r\n * @param maxNumLines - maximum number of results we will allow, valid values must be greater than 0\r\n * @param truncator - (optional) if specified, used as a function to truncate content to a given width\r\n*/\r\nexport function splitByWidth(content, properties, textWidthMeasurer, maxWidth, maxNumLines, truncator) {\r\n // Default truncator returns string as-is\r\n truncator = truncator ? truncator : (properties, maxWidth) => properties.text;\r\n let result = [];\r\n let words = split(content);\r\n let usedWidth = 0;\r\n let wordsInLine = [];\r\n for (let word of words) {\r\n // Last line? Just add whatever is left\r\n if ((maxNumLines > 0) && (result.length >= maxNumLines - 1)) {\r\n wordsInLine.push(word);\r\n continue;\r\n }\r\n // Determine width if we add this word\r\n // Account for SPACE we will add when joining...\r\n let wordWidth = wordsInLine.length === 0\r\n ? getWidth(word, properties, textWidthMeasurer)\r\n : getWidth(SPACE + word, properties, textWidthMeasurer);\r\n // If width would exceed max width,\r\n // then push used words and start new split result\r\n if (usedWidth + wordWidth > maxWidth) {\r\n // Word alone exceeds max width, just add it.\r\n if (wordsInLine.length === 0) {\r\n result.push(truncate(word, properties, truncator, maxWidth));\r\n usedWidth = 0;\r\n wordsInLine = [];\r\n continue;\r\n }\r\n result.push(truncate(wordsInLine.join(SPACE), properties, truncator, maxWidth));\r\n usedWidth = 0;\r\n wordsInLine = [];\r\n }\r\n // ...otherwise, add word and continue\r\n wordsInLine.push(word);\r\n usedWidth += wordWidth;\r\n }\r\n // Push remaining words onto result (if any)\r\n if (wordsInLine && wordsInLine.length) {\r\n result.push(truncate(wordsInLine.join(SPACE), properties, truncator, maxWidth));\r\n }\r\n return result;\r\n}\r\n//# sourceMappingURL=wordBreaker.js.map","import { selectAll, pointers } from \"d3-selection\";\r\nimport * as touch from \"./tooltipTouch\";\r\nconst DefaultHandleTouchDelay = 500;\r\nexport function createTooltipServiceWrapper(tooltipService, rootElement, handleTouchDelay = DefaultHandleTouchDelay) {\r\n return new TooltipServiceWrapper({\r\n tooltipService: tooltipService,\r\n rootElement: rootElement,\r\n handleTouchDelay: handleTouchDelay,\r\n });\r\n}\r\nexport class TooltipServiceWrapper {\r\n constructor(options) {\r\n this.visualHostTooltipService = options.tooltipService;\r\n this.rootElement = options.rootElement;\r\n this.handleTouchDelay = options.handleTouchDelay;\r\n }\r\n addTooltip(selection, getTooltipInfoDelegate, getDataPointIdentity, reloadTooltipDataOnMouseMove) {\r\n if (!selection || !this.visualHostTooltipService.enabled()) {\r\n return;\r\n }\r\n let rootNode = this.rootElement;\r\n let internalSelection = selectAll(selection.nodes());\r\n // Mouse events\r\n internalSelection.on(\"mouseover.tooltip\", (event, data) => {\r\n // Ignore mouseover while handling touch events\r\n if (!this.canDisplayTooltip(event)) {\r\n return;\r\n }\r\n let coordinates = this.getCoordinates(event, rootNode, true);\r\n let tooltipInfo = getTooltipInfoDelegate(data);\r\n if (tooltipInfo == null) {\r\n return;\r\n }\r\n let selectionIds = getDataPointIdentity ? [getDataPointIdentity(data)] : [];\r\n this.visualHostTooltipService.show({\r\n coordinates: coordinates,\r\n isTouchEvent: false,\r\n dataItems: tooltipInfo,\r\n identities: selectionIds\r\n });\r\n });\r\n internalSelection.on(\"mouseout.tooltip\", (event, data) => {\r\n this.visualHostTooltipService.hide({\r\n isTouchEvent: false,\r\n immediately: false,\r\n });\r\n });\r\n internalSelection.on(\"mousemove.tooltip\", (event, data) => {\r\n // Ignore mousemove while handling touch events\r\n if (!this.canDisplayTooltip(event)) {\r\n return;\r\n }\r\n let coordinates = this.getCoordinates(event, rootNode, true);\r\n let tooltipInfo;\r\n if (reloadTooltipDataOnMouseMove) {\r\n tooltipInfo = getTooltipInfoDelegate(data);\r\n if (tooltipInfo == null) {\r\n return;\r\n }\r\n }\r\n let selectionIds = getDataPointIdentity ? [getDataPointIdentity(data)] : [];\r\n this.visualHostTooltipService.move({\r\n coordinates: coordinates,\r\n isTouchEvent: false,\r\n dataItems: tooltipInfo,\r\n identities: selectionIds\r\n });\r\n });\r\n // --- Touch events ---\r\n let touchStartEventName = touch.touchStartEventName();\r\n let touchEndEventName = touch.touchEndEventName();\r\n let isPointerEvent = touch.usePointerEvents();\r\n internalSelection.on(touchStartEventName + \".tooltip\", (event, data) => {\r\n let coordinates = this.getCoordinates(event, rootNode, true);\r\n let tooltipInfo = getTooltipInfoDelegate(data);\r\n let selectionIds = getDataPointIdentity ? [getDataPointIdentity(data)] : [];\r\n this.handleTouchTimeoutId = window.setTimeout(() => {\r\n this.visualHostTooltipService.show({\r\n coordinates: coordinates,\r\n isTouchEvent: true,\r\n dataItems: tooltipInfo,\r\n identities: selectionIds\r\n });\r\n this.handleTouchTimeoutId = undefined;\r\n }, this.handleTouchDelay);\r\n });\r\n internalSelection.on(touchEndEventName + \".tooltip\", () => {\r\n this.cancelTouchTimeoutEvents();\r\n });\r\n }\r\n cancelTouchTimeoutEvents() {\r\n if (this.handleTouchTimeoutId) {\r\n clearTimeout(this.handleTouchTimeoutId);\r\n }\r\n }\r\n hide() {\r\n this.visualHostTooltipService.hide({ immediately: true, isTouchEvent: false });\r\n }\r\n canDisplayTooltip(event) {\r\n let canDisplay = true;\r\n const mouseEvent = event;\r\n if (mouseEvent.buttons !== undefined) {\r\n // Check mouse buttons state\r\n let hasMouseButtonPressed = mouseEvent.buttons !== 0;\r\n canDisplay = !hasMouseButtonPressed;\r\n }\r\n // Make sure we are not ignoring mouse events immediately after touch end.\r\n canDisplay = canDisplay && (this.handleTouchTimeoutId == null);\r\n return canDisplay;\r\n }\r\n getCoordinates(event, rootNode, isPointerEvent) {\r\n let coordinates;\r\n if (isPointerEvent) {\r\n // DO NOT USE - WebKit bug in getScreenCTM with nested SVG results in slight negative coordinate shift\r\n // Also, IE will incorporate transform scale but WebKit does not, forcing us to detect browser and adjust appropriately.\r\n // Just use non-scaled coordinates for all browsers, and adjust for the transform scale later (see lineChart.findIndex)\r\n // coordinates = d3.mouse(rootNode);\r\n // copied from d3_eventSource (which is not exposed)\r\n let e = event, s;\r\n while (s = e.sourceEvent)\r\n e = s;\r\n let rect = rootNode.getBoundingClientRect();\r\n coordinates = [\r\n e.clientX - rect.left - rootNode.clientLeft,\r\n e.clientY - rect.top - rootNode.clientTop\r\n ];\r\n }\r\n else {\r\n let touchCoordinates = pointers(event);\r\n if (touchCoordinates && touchCoordinates.length > 0) {\r\n coordinates = touchCoordinates[0];\r\n }\r\n }\r\n return coordinates;\r\n }\r\n}\r\n//# sourceMappingURL=tooltipService.js.map","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved.\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\nexport function touchStartEventName() {\r\n let eventName = \"touchstart\";\r\n return eventName;\r\n}\r\nexport function touchEndEventName() {\r\n let eventName = \"touchend\";\r\n return eventName;\r\n}\r\nexport function usePointerEvents() {\r\n let eventName = touchStartEventName();\r\n return eventName === \"pointerdown\" || eventName === \"MSPointerDown\";\r\n}\r\n//# sourceMappingURL=tooltipTouch.js.map","export default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","import pointer from \"./pointer.js\";\nimport sourceEvent from \"./sourceEvent.js\";\n\nexport default function(events, node) {\n if (events.target) { // i.e., instanceof Event, not TouchList or iterable\n events = sourceEvent(events);\n if (node === undefined) node = events.currentTarget;\n events = events.touches || [events];\n }\n return Array.from(events, event => pointer(event, node));\n}\n","import array from \"./array.js\";\nimport {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([document.querySelectorAll(selector)], [document.documentElement])\n : new Selection([selector == null ? [] : array(selector)], root);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport array from \"../array.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = array(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","export default function() {\n return !this.node();\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(selection) {\n if (!(selection instanceof Selection)) throw new Error(\"invalid merge\");\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n return Array.from(this);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n var group = select.apply(this, arguments);\n return group == null ? [] : array(group);\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return this.children;\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved.\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\nconst PxPtRatio = 4 / 3;\r\nconst PixelString = \"px\";\r\n/**\r\n * Appends 'px' to the end of number value for use as pixel string in styles\r\n */\r\nexport function toString(px) {\r\n return px + PixelString;\r\n}\r\n/**\r\n * Converts point value (pt) to pixels\r\n * Returns a string for font-size property\r\n * e.g. fromPoint(8) => '24px'\r\n */\r\nexport function fromPoint(pt) {\r\n return toString(fromPointToPixel(pt));\r\n}\r\n/**\r\n * Converts point value (pt) to pixels\r\n * Returns a number for font-size property\r\n * e.g. fromPoint(8) => 24px\r\n */\r\nexport function fromPointToPixel(pt) {\r\n return (PxPtRatio * pt);\r\n}\r\n/**\r\n * Converts pixel value (px) to pt\r\n * e.g. toPoint(24) => 8\r\n */\r\nexport function toPoint(px) {\r\n return px / PxPtRatio;\r\n}\r\n//# sourceMappingURL=pixelConverter.js.map","/*\r\n * Power BI Visualizations\r\n *\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved.\r\n * MIT License\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"\"Software\"\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\n * THE SOFTWARE.\r\n */\r\n/**\r\n * Returns a new object with the provided obj as its prototype.\r\n */\r\nexport function inherit(obj, extension) {\r\n function wrapCtor() { }\r\n wrapCtor.prototype = obj;\r\n let inherited = new wrapCtor();\r\n if (extension)\r\n extension(inherited);\r\n return inherited;\r\n}\r\n/**\r\n * Returns a new object with the provided obj as its prototype\r\n * if, and only if, the prototype has not been previously set\r\n */\r\nexport function inheritSingle(obj) {\r\n let proto = Object.getPrototypeOf(obj);\r\n if (proto === Object.prototype || proto === Array.prototype)\r\n obj = inherit(obj);\r\n return obj;\r\n}\r\n/**\r\n * Uses the provided callback function to selectively replace contents in the provided array.\r\n * @return A new array with those values overriden\r\n * or undefined if no overrides are necessary.\r\n */\r\nexport function overrideArray(prototype, override) {\r\n if (!prototype)\r\n return;\r\n let overwritten;\r\n for (let i = 0, len = prototype.length; i < len; i++) {\r\n let value = override(prototype[i]);\r\n if (value) {\r\n if (!overwritten)\r\n overwritten = inherit(prototype);\r\n overwritten[i] = value;\r\n }\r\n }\r\n return overwritten;\r\n}\r\n//# sourceMappingURL=prototype.js.map","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import \"./../style/visual.less\";\r\nimport {\r\n event as d3Event,\r\n select as d3Select\r\n} from \"d3-selection\";\r\nimport {\r\n scaleLinear,\r\n scaleBand\r\n} from \"d3-scale\";\r\n\r\nimport { axisBottom } from \"d3-axis\";\r\n\r\nimport powerbiVisualsApi from \"powerbi-visuals-api\";\r\nimport \"regenerator-runtime/runtime\";\r\nimport powerbi = powerbiVisualsApi;\r\n\r\ntype Selection = d3.Selection;\r\nconst getEvent = () => require(\"d3-selection\").event;\r\n\r\n// powerbi.visuals\r\nimport DataViewCategoryColumn = powerbi.DataViewCategoryColumn;\r\nimport DataViewObjects = powerbi.DataViewObjects;\r\nimport EnumerateVisualObjectInstancesOptions = powerbi.EnumerateVisualObjectInstancesOptions;\r\nimport Fill = powerbi.Fill;\r\nimport ISandboxExtendedColorPalette = powerbi.extensibility.ISandboxExtendedColorPalette;\r\nimport ISelectionId = powerbi.visuals.ISelectionId;\r\nimport ISelectionManager = powerbi.extensibility.ISelectionManager;\r\nimport IVisual = powerbi.extensibility.IVisual;\r\nimport IVisualHost = powerbi.extensibility.visual.IVisualHost;\r\nimport PrimitiveValue = powerbi.PrimitiveValue;\r\nimport VisualObjectInstance = powerbi.VisualObjectInstance;\r\nimport VisualObjectInstanceEnumeration = powerbi.VisualObjectInstanceEnumeration;\r\nimport VisualTooltipDataItem = powerbi.extensibility.VisualTooltipDataItem;\r\nimport VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions;\r\nimport VisualConstructorOptions = powerbi.extensibility.visual.VisualConstructorOptions;\r\n\r\nimport {createTooltipServiceWrapper, ITooltipServiceWrapper} from \"powerbi-visuals-utils-tooltiputils\";\r\nimport { textMeasurementService } from \"powerbi-visuals-utils-formattingutils\";\r\n\r\nimport { getValue, getCategoricalObjectValue } from \"./objectEnumerationUtility\";\r\nimport { getLocalizedString } from \"./localization/localizationHelper\"\r\n\r\n/**\r\n * Interface for BarCharts viewmodel.\r\n *\r\n * @interface\r\n * @property {BarChartDataPoint[]} dataPoints - Set of data points the visual will render.\r\n * @property {number} dataMax - Maximum data value in the set of data points.\r\n */\r\ninterface BarChartViewModel {\r\n dataPoints: BarChartDataPoint[];\r\n dataMax: number;\r\n settings: BarChartSettings;\r\n}\r\n\r\n/**\r\n * Interface for BarChart data points.\r\n *\r\n * @interface\r\n * @property {number} value - Data value for point.\r\n * @property {string} category - Corresponding category of data value.\r\n * @property {string} color - Color corresponding to data point.\r\n * @property {ISelectionId} selectionId - Id assigned to data point for cross filtering\r\n * and visual interaction.\r\n */\r\ninterface BarChartDataPoint {\r\n value: PrimitiveValue;\r\n category: string;\r\n color: string;\r\n strokeColor: string;\r\n strokeWidth: number;\r\n selectionId: ISelectionId;\r\n}\r\n\r\n/**\r\n * Interface for BarChart settings.\r\n *\r\n * @interface\r\n * @property {{show:boolean}} enableAxis - Object property that allows axis to be enabled.\r\n * @property {{generalView.width:number}} Bars - Width - Controls width of plotted bars\r\n */\r\ninterface BarChartSettings {\r\n enableAxis: {\r\n show: boolean;\r\n fill: string;\r\n };\r\n\r\n generalView: {\r\n displayName: string;\r\n width: number;\r\n };\r\n}\r\n\r\nlet defaultSettings: BarChartSettings = {\r\n enableAxis: {\r\n show: true,\r\n fill: \"#000000\",\r\n },\r\n generalView: {\r\n displayName: 'Width',\r\n width: 30,\r\n }\r\n};\r\n\r\n/**\r\n * Function that converts queried data into a view model that will be used by the visual.\r\n *\r\n * @function\r\n * @param {VisualUpdateOptions} options - Contains references to the size of the container\r\n * and the dataView which contains all the data\r\n * the visual had queried.\r\n * @param {IVisualHost} host - Contains references to the host which contains services\r\n */\r\nfunction visualTransform(options: VisualUpdateOptions, host: IVisualHost): BarChartViewModel {\r\n let dataViews = options.dataViews;\r\n let viewModel: BarChartViewModel = {\r\n dataPoints: [],\r\n dataMax: 0,\r\n settings: {}\r\n };\r\n\r\n if (!dataViews\r\n || !dataViews[0]\r\n || !dataViews[0].categorical\r\n || !dataViews[0].categorical.categories\r\n || !dataViews[0].categorical.categories[0].source\r\n || !dataViews[0].categorical.values\r\n ) {\r\n return viewModel;\r\n }\r\n\r\n let categorical = dataViews[0].categorical;\r\n let category = categorical.categories[0];\r\n let dataValue = categorical.values[0];\r\n\r\n let barChartDataPoints: BarChartDataPoint[] = [];\r\n let dataMax: number;\r\n\r\n let colorPalette: ISandboxExtendedColorPalette = host.colorPalette;\r\n let objects = dataViews[0].metadata.objects;\r\n\r\n const strokeColor: string = getColumnStrokeColor(colorPalette);\r\n\r\n let barChartSettings: BarChartSettings = {\r\n enableAxis: {\r\n show: getValue(objects, 'enableAxis', 'show', defaultSettings.enableAxis.show),\r\n fill: getAxisTextFillColor(objects, colorPalette, defaultSettings.enableAxis.fill),\r\n },\r\n generalView: {\r\n width: getValue(objects, 'generalView', 'width', defaultSettings.generalView.width),\r\n displayName: getValue(objects, 'generalView', 'displayName', defaultSettings.generalView.displayName),\r\n },\r\n };\r\n\r\n const strokeWidth: number = getColumnStrokeWidth(colorPalette.isHighContrast);\r\n\r\n for (let i = 0, len = Math.max(category.values.length, dataValue.values.length); i < len; i++) {\r\n const color: string = getColumnColorByIndex(category, i, colorPalette);\r\n\r\n const selectionId: ISelectionId = host.createSelectionIdBuilder()\r\n .withCategory(category, i)\r\n .createSelectionId();\r\n\r\n barChartDataPoints.push({\r\n color,\r\n strokeColor,\r\n strokeWidth,\r\n selectionId,\r\n value: dataValue.values[i],\r\n category: `${category.values[i]}`,\r\n });\r\n }\r\n\r\n dataMax = dataValue.maxLocal;\r\n\r\n return {\r\n dataPoints: barChartDataPoints,\r\n dataMax: dataMax,\r\n settings: barChartSettings,\r\n };\r\n}\r\n\r\nfunction getColumnColorByIndex(\r\n category: DataViewCategoryColumn,\r\n index: number,\r\n colorPalette: ISandboxExtendedColorPalette,\r\n): string {\r\n if (colorPalette.isHighContrast) {\r\n return colorPalette.background.value;\r\n }\r\n\r\n const defaultColor: Fill = {\r\n solid: {\r\n color: colorPalette.getColor(`${category.values[index]}`).value,\r\n }\r\n };\r\n\r\n return getCategoricalObjectValue(\r\n category,\r\n index,\r\n 'colorSelector',\r\n 'fill',\r\n defaultColor\r\n ).solid.color;\r\n}\r\n\r\nfunction getColumnStrokeColor(colorPalette: ISandboxExtendedColorPalette): string {\r\n return colorPalette.isHighContrast\r\n ? colorPalette.foreground.value\r\n : null;\r\n}\r\n\r\nfunction getColumnStrokeWidth(isHighContrast: boolean): number {\r\n return isHighContrast\r\n ? 2\r\n : 0;\r\n}\r\n\r\nfunction getAxisTextFillColor(\r\n objects: DataViewObjects,\r\n colorPalette: ISandboxExtendedColorPalette,\r\n defaultColor: string\r\n): string {\r\n if (colorPalette.isHighContrast) {\r\n return colorPalette.foreground.value;\r\n }\r\n\r\n return getValue(\r\n objects,\r\n \"enableAxis\",\r\n \"fill\",\r\n {\r\n solid: {\r\n color: defaultColor,\r\n }\r\n },\r\n ).solid.color;\r\n}\r\n\r\nexport class BarChart implements IVisual {\r\n private svg: Selection;\r\n private host: IVisualHost;\r\n private selectionManager: ISelectionManager;\r\n private barContainer: Selection;\r\n private xAxis: Selection;\r\n private barDataPoints: BarChartDataPoint[];\r\n private barChartSettings: BarChartSettings;\r\n private tooltipServiceWrapper: ITooltipServiceWrapper;\r\n private locale: string;\r\n private element: HTMLElement;\r\n\r\n private barSelection: d3.Selection;\r\n\r\n static Config = {\r\n xScalePadding: 0.1,\r\n width: 30,\r\n transparentOpacity: 0.4,\r\n margins: {\r\n top: 0,\r\n right: 0,\r\n bottom: 25,\r\n left: 30,\r\n },\r\n xAxisFontMultiplier: 0.04,\r\n };\r\n\r\n /**\r\n * Creates instance of BarChart. This method is only called once.\r\n *\r\n * @constructor\r\n * @param {VisualConstructorOptions} options - Contains references to the element that will\r\n * contain the visual and a reference to the host\r\n * which contains services.\r\n */\r\n constructor(options: VisualConstructorOptions) {\r\n this.host = options.host;\r\n this.element = options.element;\r\n this.selectionManager = options.host.createSelectionManager();\r\n this.locale = options.host.locale;\r\n\r\n this.selectionManager.registerOnSelectCallback(() => {\r\n this.syncSelectionState(this.barSelection, this.selectionManager.getSelectionIds());\r\n });\r\n\r\n this.tooltipServiceWrapper = createTooltipServiceWrapper(this.host.tooltipService, options.element);\r\n\r\n this.svg = d3Select(options.element)\r\n .append('svg')\r\n .classed('barChart', true);\r\n\r\n this.barContainer = this.svg\r\n .append('g')\r\n .classed('barContainer', true);\r\n\r\n this.xAxis = this.svg\r\n .append('g')\r\n .classed('xAxis', true);\r\n\r\n this.handleContextMenu();\r\n }\r\n\r\n /**\r\n * Updates the state of the visual. Every sequential databinding and resize will call update.\r\n *\r\n * @function\r\n * @param {VisualUpdateOptions} options - Contains references to the size of the container\r\n * and the dataView which contains all the data\r\n * the visual had queried.\r\n */\r\n public update(options: VisualUpdateOptions) {\r\n let viewModel: BarChartViewModel = visualTransform(options, this.host);\r\n let settings = this.barChartSettings = viewModel.settings;\r\n this.barDataPoints = viewModel.dataPoints;\r\n \r\n let width = options.viewport.width;\r\n let height = options.viewport.height;\r\n\r\n this.svg\r\n .attr(\"width\", width)\r\n .attr(\"height\", height);\r\n\r\n if (settings.enableAxis.show) {\r\n let margins = BarChart.Config.margins;\r\n height -= margins.bottom;\r\n }\r\n\r\n this.xAxis\r\n .style(\"font-size\", Math.min(height, width) * BarChart.Config.xAxisFontMultiplier)\r\n .style(\"fill\", settings.enableAxis.fill);\r\n\r\n let yScale = scaleLinear()\r\n .domain([0, viewModel.dataMax])\r\n .range([height, 0]);\r\n\r\n let xScale = scaleBand()\r\n .domain(viewModel.dataPoints.map(d => d.category))\r\n .rangeRound([0, width])\r\n .padding(0.2);\r\n\r\n let xAxis = axisBottom(xScale);\r\n const colorObjects = options.dataViews[0] ? options.dataViews[0].metadata.objects : null;\r\n this.xAxis.attr('transform', 'translate(0, ' + height + ')')\r\n .call(xAxis)\r\n .attr(\"color\", getAxisTextFillColor(\r\n colorObjects,\r\n this.host.colorPalette,\r\n defaultSettings.enableAxis.fill\r\n ));\r\n\r\n const textNodes = this.xAxis.selectAll(\"text\")\r\n BarChart.wordBreak(textNodes, xScale.bandwidth(), height);\r\n\r\n this.barSelection = this.barContainer\r\n .selectAll('.bar')\r\n .data(this.barDataPoints);\r\n\r\n const barSelectionMerged = this.barSelection\r\n .enter()\r\n .append('rect')\r\n .merge(this.barSelection);\r\n\r\n barSelectionMerged.classed('bar', true);\r\n\r\n const barWidth: number = viewModel.settings.generalView.width;\r\n barSelectionMerged\r\n .attr(\"width\", barWidth)\r\n .attr(\"height\", d => height - yScale(d.value))\r\n .attr(\"y\", d => yScale(d.value))\r\n .attr(\"x\", d => xScale(d.category))\r\n .style(\"fill\", (dataPoint: BarChartDataPoint) => dataPoint.color)\r\n\r\n this.tooltipServiceWrapper.addTooltip(barSelectionMerged,\r\n (datapoint: BarChartDataPoint) => this.getTooltipData(datapoint),\r\n (datapoint: BarChartDataPoint) => datapoint.selectionId\r\n );\r\n\r\n this.syncSelectionState(\r\n barSelectionMerged,\r\n this.selectionManager.getSelectionIds()\r\n );\r\n\r\n barSelectionMerged.on('click', (d) => {\r\n // Allow selection only if the visual is rendered in a view that supports interactivity (e.g. Report)\r\n if (this.host.hostCapabilities.allowInteractions) {\r\n const isCtrlPressed: boolean = (d3Event).ctrlKey;\r\n this.selectionManager\r\n .select(d.selectionId, isCtrlPressed)\r\n .then((ids: ISelectionId[]) => {\r\n this.syncSelectionState(barSelectionMerged, ids);\r\n });\r\n (d3Event).stopPropagation();\r\n }\r\n });\r\n this.barSelection\r\n .exit()\r\n .remove();\r\n this.handleClick(barSelectionMerged);\r\n }\r\n\r\n private static wordBreak(\r\n textNodes: Selection,\r\n allowedWidth: number,\r\n maxHeight: number\r\n ) {\r\n textNodes.each(function () {\r\n textMeasurementService.wordBreak(\r\n this,\r\n allowedWidth,\r\n maxHeight);\r\n });\r\n }\r\n\r\n private handleClick(barSelection: d3.Selection) {\r\n // Clear selection when clicking outside a bar\r\n this.svg.on('click', (d) => {\r\n if (this.host.hostCapabilities.allowInteractions) {\r\n this.selectionManager\r\n .clear()\r\n .then(() => {\r\n this.syncSelectionState(barSelection, []);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private handleContextMenu() {\r\n this.svg.on('contextmenu', () => {​​\r\n const mouseEvent: MouseEvent = getEvent();\r\n const eventTarget: EventTarget = mouseEvent.target;\r\n let dataPoint: any = d3Select(eventTarget).datum();\r\n this.selectionManager.showContextMenu(dataPoint ? dataPoint.selectionId : {}, {\r\n x: mouseEvent.clientX,\r\n y: mouseEvent.clientY\r\n });\r\n mouseEvent.preventDefault();\r\n });\r\n }\r\n\r\n private syncSelectionState(\r\n selection: Selection,\r\n selectionIds: ISelectionId[]\r\n ): void {\r\n if (!selection || !selectionIds) {\r\n return;\r\n }\r\n\r\n if (!selectionIds.length) {\r\n selection\r\n return;\r\n }\r\n }\r\n\r\n /**\r\n * Enumerates through the objects defined in the capabilities and adds the properties to the format pane\r\n *\r\n * @function\r\n * @param {EnumerateVisualObjectInstancesOptions} options - Map of defined objects\r\n */\r\n public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration {\r\n let objectName = options.objectName;\r\n let objectEnumeration: VisualObjectInstance[] = [];\r\n\r\n if (!this.barChartSettings ||\r\n !this.barChartSettings.enableAxis ||\r\n !this.barDataPoints) {\r\n return objectEnumeration;\r\n }\r\n\r\n switch (objectName) {\r\n case 'enableAxis':\r\n objectEnumeration.push({\r\n objectName: objectName,\r\n properties: {\r\n show: this.barChartSettings.enableAxis.show,\r\n fill: this.barChartSettings.enableAxis.fill,\r\n },\r\n selector: null\r\n });\r\n break;\r\n case 'generalView':\r\n objectEnumeration.push({\r\n objectName: objectName,\r\n properties: {\r\n width: this.barChartSettings.generalView.width,\r\n },\r\n validValues: {\r\n width: {\r\n numberRange: {\r\n min: 30,\r\n max: 100\r\n }\r\n }\r\n },\r\n selector: null\r\n });\r\n break;\r\n };\r\n\r\n return objectEnumeration;\r\n }\r\n\r\n /**\r\n * Destroy runs when the visual is removed. Any cleanup that the visual needs to\r\n * do should be done here.\r\n *\r\n * @function\r\n */\r\n public destroy(): void {\r\n // Perform any cleanup tasks here\r\n }\r\n\r\n private getTooltipData(value: any): VisualTooltipDataItem[] {\r\n let language = getLocalizedString(this.locale, \"LanguageKey\");\r\n return [{\r\n displayName: value.category,\r\n value: value.value.toString(),\r\n color: value.color,\r\n header: language && \"displayed language \" + language\r\n }];\r\n }\r\n\r\n}\r\n","import { localizedResources as myResources } from \"./localizedResources\";\r\n\r\nexport interface Localization {\r\n \"ar-SA\": string;\r\n \"bg-BG\": string;\r\n \"ca-ES\": string;\r\n \"cs-CZ\": string;\r\n \"da-DK\": string;\r\n \"de-DE\": string;\r\n \"el-GR\": string;\r\n \"en-US\": string;\r\n \"es-ES\": string;\r\n \"et-EE\": string;\r\n \"eU-ES\": string;\r\n \"fi-FI\": string;\r\n \"fr-FR\": string;\r\n \"gl-ES\": string;\r\n \"he-IL\": string;\r\n \"hi-IN\": string;\r\n \"hr-HR\": string;\r\n \"hu-HU\": string;\r\n \"id-ID\": string;\r\n \"it-IT\": string;\r\n \"ja-JP\": string;\r\n \"kk-KZ\": string;\r\n \"ko-KR\": string;\r\n \"it-LT\": string;\r\n \"lv-LV\": string;\r\n \"ms-MY\": string;\r\n \"nb-NO\": string;\r\n \"nl-NL\": string;\r\n \"pl-PL\": string;\r\n \"pt-BR\": string;\r\n \"pt-PT\": string;\r\n \"ro-RO\": string;\r\n \"ru-RU\": string;\r\n \"sk-SK\": string;\r\n \"sl-SI\": string;\r\n \"sr-Cyrl-RS\": string;\r\n \"sr-Latn-RS\": string;\r\n \"sv-SE\": string;\r\n \"th-TH\": string;\r\n \"tr-TR\": string;\r\n \"uk-UA\": string;\r\n \"vi-VN\": string;\r\n \"zh-CN\": string;\r\n \"zh-TW\": string;\r\n}\r\n\r\nexport interface LocalizaionResources {\r\n defaultValue: string;\r\n localization: Localization;\r\n}\r\n\r\nexport interface Resources {\r\n [key: string]: LocalizaionResources;\r\n}\r\n\r\n/**\r\n * Returns the localized string in the locale transfared using the key that was given to serch the resources\r\n *\r\n * @param {string} locale - the locale in which PowerBI is currently running\r\n * @param {object} key - specify a key for the string you want localized in your visual\r\n */\r\nexport function getLocalizedString(locale: string, key: string): string {\r\n return myResources && key && myResources[key] && (((myResources[key]).localization[locale]) || (myResources[key]).defaultValue);\r\n}\r\n","import { Resources } from \"./localizationHelper\";\r\n\r\nexport let localizedResources: Resources = {};\r\nlocalizedResources[\"LanguageKey\"] = {\r\n defaultValue: \"English(English)\",\r\n localization: {\r\n \"ar-SA\": \"العربية (Arabic)\",\r\n \"bg-BG\": \"български (Bulgarian)\",\r\n \"ca-ES\": \"català (Catalan)\",\r\n \"cs-CZ\": \"čeština (Czech)\",\r\n \"da-DK\": \"dansk (Danish)\",\r\n \"de-DE\": \"Deutsche (German)\",\r\n \"el-GR\": \"ελληνικά (Greek)\",\r\n \"en-US\": \"English (English)\",\r\n \"es-ES\": \"español service (Spanish)\",\r\n \"et-EE\": \"eesti (Estonian)\",\r\n \"eU-ES\": \"Euskal (Basque)\",\r\n \"fi-FI\": \"suomi (Finnish)\",\r\n \"fr-FR\": \"français (French)\",\r\n \"gl-ES\": \"galego (Galician)\",\r\n \"he-IL\": \"עברית (Hebrew)\",\r\n \"hi-IN\": \"हिन्दी (Hindi)\",\r\n \"hr-HR\": \"hrvatski (Croatian)\",\r\n \"hu-HU\": \"magyar (Hungarian)\",\r\n \"id-ID\": \"Bahasa Indonesia (Indonesian)\",\r\n \"it-IT\": \"italiano (Italian)\",\r\n \"ja-JP\": \"日本の (Japanese)\",\r\n \"kk-KZ\": \"Қазақ (Kazakh)\",\r\n \"ko-KR\": \"한국의 (Korean)\",\r\n \"it-LT\": \"Lietuvos (Lithuanian)\",\r\n \"lv-LV\": \"Latvijas (Latvian)\",\r\n \"ms-MY\": \"Bahasa Melayu (Malay)\",\r\n \"nb-NO\": \"norsk (Norwegian)\",\r\n \"nl-NL\": \"Nederlands (Dutch)\",\r\n \"pl-PL\": \"polski (Polish)\",\r\n \"pt-BR\": \"português (Portuguese)\",\r\n \"pt-PT\": \"português (Portuguese)\",\r\n \"ro-RO\": \"românesc (Romanian)\",\r\n \"ru-RU\": \"русский (Russian)\",\r\n \"sk-SK\": \"slovenský (Slovak)\",\r\n \"sl-SI\": \"slovenski (Slovenian)\",\r\n \"sr-Cyrl-RS\": \"српски (Serbian)\",\r\n \"sr-Latn-RS\": \"srpski (Serbian)\",\r\n \"sv-SE\": \"svenska (Swedish)\",\r\n \"th-TH\": \"ไทย (Thai)\",\r\n \"tr-TR\": \"Türk (Turkish)\",\r\n \"uk-UA\": \"український (Ukrainian)\",\r\n \"vi-VN\": \"tiếng Việt (Vietnamese)\",\r\n \"zh-CN\": \"中国 (Chinese-Simplified)\",\r\n \"zh-TW\": \"中國 (Chinese-Tranditional)\"\r\n }\r\n};\r\n","import powerbiVisualsApi from \"powerbi-visuals-api\";\r\nimport powerbi = powerbiVisualsApi;\r\n\r\nimport DataViewObject = powerbi.DataViewObject;\r\nimport DataViewObjects = powerbi.DataViewObjects;\r\nimport DataViewCategoryColumn = powerbi.DataViewCategoryColumn;\r\n\r\n/**\r\n * Gets property value for a particular object.\r\n *\r\n * @function\r\n * @param {DataViewObjects} objects - Map of defined objects.\r\n * @param {string} objectName - Name of desired object.\r\n * @param {string} propertyName - Name of desired property.\r\n * @param {T} defaultValue - Default value of desired property.\r\n */\r\nexport function getValue(objects: DataViewObjects, objectName: string, propertyName: string, defaultValue: T): T {\r\n if (objects) {\r\n let object = objects[objectName];\r\n if (object) {\r\n let property: T = object[propertyName];\r\n if (property !== undefined) {\r\n return property;\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n}\r\n\r\n/**\r\n * Gets property value for a particular object in a category.\r\n *\r\n * @function\r\n * @param {DataViewCategoryColumn} category - List of category objects.\r\n * @param {number} index - Index of category object.\r\n * @param {string} objectName - Name of desired object.\r\n * @param {string} propertyName - Name of desired property.\r\n * @param {T} defaultValue - Default value of desired property.\r\n */\r\nexport function getCategoricalObjectValue(category: DataViewCategoryColumn, index: number, objectName: string, propertyName: string, defaultValue: T): T {\r\n let categoryObjects = category.objects;\r\n\r\n if (categoryObjects) {\r\n let categoryObject: DataViewObject = categoryObjects[index];\r\n if (categoryObject) {\r\n let object = categoryObject[objectName];\r\n if (object) {\r\n let property: T = object[propertyName];\r\n if (property !== undefined) {\r\n return property;\r\n }\r\n }\r\n }\r\n }\r\n return defaultValue;\r\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { BarChart } from \"../../src/barChart\";\nimport powerbiVisualsApi from \"powerbi-visuals-api\";\nimport IVisualPlugin = powerbiVisualsApi.visuals.plugins.IVisualPlugin;\nimport VisualConstructorOptions = powerbiVisualsApi.extensibility.visual.VisualConstructorOptions;\nimport DialogConstructorOptions = powerbiVisualsApi.extensibility.visual.DialogConstructorOptions;\nvar powerbiKey: any = \"powerbi\";\nvar powerbi: any = window[powerbiKey];\nvar PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166_DEBUG: IVisualPlugin = {\n name: 'PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166_DEBUG',\n displayName: 'barChart',\n class: 'BarChart',\n apiVersion: '3.8.0',\n create: (options?: VisualConstructorOptions) => {\n if (BarChart) {\n return new BarChart(options);\n }\n throw 'Visual instance not found';\n },\n createModalDialog: (dialogId: string, options: DialogConstructorOptions, initialState: object) => {\n const dialogRegistry = (globalThis).dialogRegistry;\n if (dialogId in dialogRegistry) {\n new dialogRegistry[dialogId](options, initialState);\n }\n },\n custom: true\n};\nif (typeof powerbi !== \"undefined\") {\n powerbi.visuals = powerbi.visuals || {};\n powerbi.visuals.plugins = powerbi.visuals.plugins || {};\n powerbi.visuals.plugins[\"PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166_DEBUG\"] = PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166_DEBUG;\n}\nexport default PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166_DEBUG;"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/.tmp/precompile/visualPlugin.ts b/.tmp/precompile/visualPlugin.ts new file mode 100644 index 0000000..a1d5cbe --- /dev/null +++ b/.tmp/precompile/visualPlugin.ts @@ -0,0 +1,32 @@ +import { BarChart } from "../../src/barChart"; +import powerbiVisualsApi from "powerbi-visuals-api"; +import IVisualPlugin = powerbiVisualsApi.visuals.plugins.IVisualPlugin; +import VisualConstructorOptions = powerbiVisualsApi.extensibility.visual.VisualConstructorOptions; +import DialogConstructorOptions = powerbiVisualsApi.extensibility.visual.DialogConstructorOptions; +var powerbiKey: any = "powerbi"; +var powerbi: any = window[powerbiKey]; +var PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166: IVisualPlugin = { + name: 'PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166', + displayName: 'barChart', + class: 'BarChart', + apiVersion: '3.8.0', + create: (options?: VisualConstructorOptions) => { + if (BarChart) { + return new BarChart(options); + } + throw 'Visual instance not found'; + }, + createModalDialog: (dialogId: string, options: DialogConstructorOptions, initialState: object) => { + const dialogRegistry = (globalThis).dialogRegistry; + if (dialogId in dialogRegistry) { + new dialogRegistry[dialogId](options, initialState); + } + }, + custom: true +}; +if (typeof powerbi !== "undefined") { + powerbi.visuals = powerbi.visuals || {}; + powerbi.visuals.plugins = powerbi.visuals.plugins || {}; + powerbi.visuals.plugins["PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166"] = PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166; +} +export default PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166; \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0475915..0000000 --- a/.travis.yml +++ /dev/null @@ -1,16 +0,0 @@ -os: - - linux -sudo: required -dist: trusty -language: node_js -node_js: - - "10" -install: - - npm install -script: - - npm run lint - - npm run test -after_success: - - node node_modules/coveralls/bin/coveralls.js < coverage/lcov.info -notifications: - email: false diff --git a/README.md b/README.md index 244728c..2b1454d 100644 --- a/README.md +++ b/README.md @@ -1,39 +1 @@ -# PowerBI-visuals-sampleBarChart -[![Build Status](https://travis-ci.org/Microsoft/PowerBI-visuals-samplebarchart.svg?branch=master)](https://travis-ci.org/Microsoft/PowerBI-visuals-samplebarchart) -Bar Chart Custom Visual sample. - - -### Setting Up Environment - -Before starting creating your first custom visual follow by [this](https://github.com/Microsoft/PowerBI-visuals/blob/master/Readme.md#setting-up-environment) -setting up environment instruction. - - -### Install dev dependencies: - -Once you have cloned this example, run these commands to install dependencies and to connect the visual into powerbi. - -``` -npm install # This command will install all necessary modules -``` - -### Start dev app -``` -pbiviz start -``` - -### Building Bar Chart -1. [Building a Visual with Static Data](Tutorial/StaticVisual.md) -2. [Adding Databinding to the Bar Chart](Tutorial/DataBinding.md) -3. [Adding Color to the Bar Chart](Tutorial/ColorPalette.md) -4. [Adding Selection and Interaction with Other Visuals](Tutorial/Selection.md) -5. [Adding Static Objects to Property Pane](Tutorial/StaticObjects.md) -6. [Adding Databound Objects to Property Pane](Tutorial/DataBoundObjects.md) -7. [Adding Powerbi Extensibility Utils](Tutorial/ExtensibilityUtils.md) -8. [Adding URL Launcher element to the Bar Chart](Tutorial/LaunchURL.md) -9. [Adding Report Page tooltips support to the Bar Chart](Tutorial/ReportPageTooltips.md) -10. [Adding Conditional Formatting support to the Bar Chart](Tutorial/ConditionalFormatting.md) -11. [Accessibility: Adding High-Contrast Mode Support](Tutorial/HighContrastSupport.md) -12. [Finally Package for Distribution ... Done](https://github.com/Microsoft/PowerBI-visuals/blob/master/tools/usage.md#packaging-your-visual-for-distribution) - - +"# safiakhan786" diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index e138ec5..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,41 +0,0 @@ - - -## Security - -Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). - -If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. - -## Reporting Security Issues - -**Please do not report security vulnerabilities through public GitHub issues.** - -Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). - -If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). - -You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). - -Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: - - * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) - * Full paths of source file(s) related to the manifestation of the issue - * The location of the affected source code (tag/branch/commit or direct URL) - * Any special configuration required to reproduce the issue - * Step-by-step instructions to reproduce the issue - * Proof-of-concept or exploit code (if possible) - * Impact of the issue, including how an attacker might exploit the issue - -This information will help us triage your report more quickly. - -If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. - -## Preferred Languages - -We prefer all communications to be in English. - -## Policy - -Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). - - diff --git a/Tutorial/ColorPalette.md b/Tutorial/ColorPalette.md deleted file mode 100644 index bdb8bd3..0000000 --- a/Tutorial/ColorPalette.md +++ /dev/null @@ -1,41 +0,0 @@ -# Adding Color to your Visual -Color is exposed as one of the services available on `IVisualHost`. - -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/a521bc6b9930f630861dc08e27330030766ae057) for what was added at this step. - -## Add Color to Data Points -Each data point will be represented by a different color. Add color to the BarChartDataPoint interface. - -```typescript -/** - * Interface for BarChart data points. - * - * @interface - * @property {number} value - Data value for point. - * @property {string} category - Corresponding category of data value. - * @property {string} color - Color corresponding to data point. - */ -interface BarChartDataPoint { - value: number; - category: string; - color: string; -}; -``` - -## Color Palette -`colorPalette` is a service that manages the colors used on your visual. An instance of it is available on `IVisualHost`. - -## Assigning Color to Data Points -We defined `visualTransform` as a construct to convert `dataView` to a view model Bar Chart can use. -Since we iterate through the data points in `visualTransform` it is also the ideal place to assign colors. - -```typescript -let colorPalette: IColorPalette = host.colorPalette; // host: IVisualHost -for (let i = 0, len = Math.max(category.values.length, dataValue.values.length); i < len; i++) { - barChartDataPoints.push({ - category: category.values[i], - value: dataValue.values[i], - color: colorPalette.getColor(category.values[i]).value, - }); -} -``` diff --git a/Tutorial/ConditionalFormatting.md b/Tutorial/ConditionalFormatting.md deleted file mode 100644 index 2e87772..0000000 --- a/Tutorial/ConditionalFormatting.md +++ /dev/null @@ -1,44 +0,0 @@ -# Adding conditional formatting to your Visual -[Conditional formatting](https://docs.microsoft.com/en-us/power-bi/visuals/service-tips-and-tricks-for-color-formatting#conditional-formatting-for-visualizations) of custom properties is supported by updating `VisualObjectInstance` object's properties as enumerated under `enumerateObjectInstances` method. - -See [commit](https://github.com/microsoft/powerbi-visuals-api/commit/8fe88399c5ba82feeec4541ce5bf8e02a3ecd15a) for what was added at this step. - -Conditional formatting can only be applied to the following property types: -* Color -* Text -* Icon -* Web URL - -## Add a conditional color formatting entry in the format pane -To add the conditional color formatting button in the format pane for the desired object, under the `enumerateObjectInstances` method, make the following change: - -Via `propertyInstanceKind` property of enumerated `VisualObjectInstance`, list all the properties that you'd like to have the conditional formatting entry applied to in the format pane. -Use `VisualEnumerationInstanceKinds` enum to declare the type of the desired format (constant, rule or both). - -```typescript -// List your conditional formatting properties -propertyInstanceKind: { - fill: VisualEnumerationInstanceKinds.ConstantOrRule -} -``` -![](images/ConditionalFormattingEntry.png) - -## Define how conditional formatting behaves -Using `createDataViewWildcardSelector` declared under `powerbi-visuals-utils-dataviewutils`, specify whether conditional formatting will be applied to instances, totals, or both. For more information, see [DataViewWildcard](https://docs.microsoft.com/en-us/power-bi/developer/visuals/utils-dataview#dataviewwildcard). - -In `enumerateObjectInstances`, make the following changes to the objects you want to apply conditional formatting to: - -* Replace the `VisualObjectInstance`'s `selector` value with a `dataViewWildcard.createDataViewWildcardSelector()` call. Specify the desired option from `DataViewWildcardMatchingOption` enum to define whether conditional formatting is applied to instances, totals, or both. - -* Add the `altConstantValueSelector` property having the value previously defined for the `selector` property. - -```typescript -// Define whether the conditional formatting will apply to instances, totals, or both -selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals), - -// Add this property with the value previously defined for the selector property -altConstantValueSelector: barDataPoint.selectionId.getSelector() -``` -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/956923b641bb1eacb613bf55a91f77725bc42431) for how conditional formatting was applied to sample bar chart. - -![](images/CondFormatSupport.png) \ No newline at end of file diff --git a/Tutorial/DataBinding.md b/Tutorial/DataBinding.md deleted file mode 100644 index 79fad8f..0000000 --- a/Tutorial/DataBinding.md +++ /dev/null @@ -1,82 +0,0 @@ -# Adding Databinding to Bar Chart -Databinding can be done by defining your visual capabilities. -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/3c6e8186436b63bf0cf97d2cdd5dde8aa8d08709) for what was added at this step. - -To add databinding, all changes will be located in `capabilities.json`. A sample schema is already in place for you. - -Databinding can be done on the field well. - -![](images/DataBinding.png) - -## Adding Data Roles -Currently, data roles are added for you, but customizations can still be made. - -`displayName` is the name shown on the field well. -`name` is the internal name used to reference this data role. - -`0` for the kind property refers to the grouping or category. Groupings resemble a discrete number of values. -`1` for the kind property refers to the values for each of the groupings. - -```json -"dataRoles": [ - { - "displayName": "Category Data", - "name": "category", - "kind": 0 - }, - { - "displayName": "Measure Data", - "name": "measure", - "kind": 1 - } -], -``` - -For more information, see the section about [Data Roles](https://github.com/Microsoft/PowerBI-visuals/blob/master/Capabilities/Capabilities.md#define-the-data-fields-your-visual-expects---dataroles). - -## Adding Conditions to DataViewMapping -Define conditions within your dataViewMappings to determine how many fields can be bound for each field well. -Use the internal `name` defined in your dataRoles to reference each field. - -```json - "dataViewMappings": [ - { - "conditions": [ - { - "category": { - "max": 1 - }, - "measure": { - "max": 1 - } - } - ], - } - ] -``` - -For more information, see the section about [Data View Mapping](https://github.com/Microsoft/PowerBI-visuals/blob/master/Capabilities/DataViewMappings.md). - -## Defining and Using `visualTransform` -DataView is the structure that PowerBI provides to your visual and it contains the queried data to be visualized. -However, DataView provides your data in different forms such as categorical and table forms. In this instance we're building a categorical visual and we will only need the use the categorical property on the DataView. - -Defining visualTransform will allow you to convert DataView into a view model your visual will use. -IVisualHost is required because when defining individual data points, you will want to assign colors and selection to them. - -```typescript -/** - * Function that converts queried data into a view model that will be used by the visual - * - * @function - * @param {VisualUpdateOptions} options - Contains references to the size of the container - * and the dataView which contains all the data - * the visual had queried. - * @param {IVisualHost} host - Contains references to the host which contains services - */ -function visualTransform(options: VisualUpdateOptions, host: IVisualHost): BarChartViewModel { - /*Convert dataView to your viewModel*/ -} - -``` -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/3c6e8186436b63bf0cf97d2cdd5dde8aa8d08709) for what was added to visualTransform diff --git a/Tutorial/DataBoundObjects.md b/Tutorial/DataBoundObjects.md deleted file mode 100644 index 421cb7e..0000000 --- a/Tutorial/DataBoundObjects.md +++ /dev/null @@ -1,142 +0,0 @@ -# Databound Objects -Databound objects are similar to static objects, however they typically deal with data selection. -We will be changing the color associated with the data point. - -![](images/ObjectDataBoundProperty.png) - -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/3018a4ef020ee5de8a87be5f29f008bd5cf8fe63) for what was added at this step. - -## Define Object in Capabilities -Similar to static objects, we will define another object in the capabilities -`colorSelector` is the internal name that will be referenced in the `dataView`. -`displayName` is the name that will be shown on the property pane. - -`fill` is a `StructuralObjectValue` and is not associated with a primitive type. - -```typescript -"colorSelector": { - "displayName": "Data Colors", - "properties": { - "fill": { - "displayName": "Color", - "type": { - "fill": { - "solid": { - "color": true - } - } - } - } - } -} -``` - -For more information, see the section about using [Objects](../Capabilities/Objects.md). - -## Using Object Enumeration Utility -Similarly with static objects, we will need to retrieve object details from the `dataView`. However, instead of the object values being within metadata, the object values are associated with each category. - -```typescript -/** - * Gets property value for a particular object in a category. - * - * @function - * @param {DataViewCategoryColumn} category - List of category objects. - * @param {number} index - Index of category object. - * @param {string} objectName - Name of desired object. - * @param {string} propertyName - Name of desired property. - * @param {T} defaultValue - Default value of desired property. - */ -export function getCategoricalObjectValue(category: DataViewCategoryColumn, index: number, objectName: string, propertyName: string, defaultValue: T): T { - let categoryObjects = category.objects; - - if(categoryObjects) { - let categoryObject: DataViewObject = categoryObjects[index]; - if(categoryObject) { - let object = categoryObject[objectName]; - if(object) { - let property: T = object[propertyName]; - if(property !== undefined) { - return property; - } - } - } - } - return defaultValue; -} -``` - -See [objectEnumerationUtility.ts](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/blob/master/src/objectEnumerationUtility.ts) for source code. - -## Defining Default Color and Retrieving Categorical Object from DataView -Each color is now associated with each category inside `dataView`. We will set each data point to its cooresponding color. - -```typescript -for (let i = 0, len = Math.max(category.values.length, dataValue.values.length); i < len; i++) { - let defaultColor: Fill = { - solid: { - color: colorPalette.getColor(category.values[i]).value - } - } - - barChartDataPoints.push({ - category: category.values[i], - value: dataValue.values[i], - color: getCategoricalObjectValue(category, i, 'colorSelector', 'fill', defaultColor).solid.color, - selectionId: host.createSelectionIdBuilder() - .withCategory(category, i) - .createSelectionId() - }); -} -``` - -## Populate Property Pane with `enumerateObjectInstances` -`enumerateObjectInstances` is used to populate the property pane with objects. -For this instance, we would like a color picker per category we have. Each category be rendered on the property pane. - -We will do this by adding an additional case to the switch statement for `colorSelector` and iterate through each data point with the associated color. - -Selection is required to associate the color with a datapoint. - -```typescript -/** - * Enumerates through the objects defined in the capabilities and adds the properties to the format pane - * - * @function - * @param {EnumerateVisualObjectInstancesOptions} options - Map of defined objects - */ -public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration { - let objectName = options.objectName; - let objectEnumeration: VisualObjectInstance[] = []; - - switch(objectName) { - case 'enableAxis': - objectEnumeration.push({ - objectName: objectName, - properties: { - show: this.barChartSettings.enableAxis.show, - }, - selector: null - }); - break; - case 'colorSelector': - for(let barDataPoint of this.barDataPoints) { - objectEnumeration.push({ - objectName: objectName, - displayName: barDataPoint.category, - properties: { - fill: { - solid: { - color: barDataPoint.color - } - } - }, - selector: barDataPoint.selectionId.getSelector() - }); - } - break; - }; - - return objectEnumeration; -} -``` diff --git a/Tutorial/ExtensibilityUtils.md b/Tutorial/ExtensibilityUtils.md deleted file mode 100644 index 7d095f2..0000000 --- a/Tutorial/ExtensibilityUtils.md +++ /dev/null @@ -1,50 +0,0 @@ -# Powerbi Extensibility Utils -PowerBI provides several tools that help to cover the main needs to build your own visual. - -### NPM packages -1. [DataViewUtils](https://www.npmjs.com/package/powerbi-visuals-utils-dataviewutils) is a set of functions and classes in order to simplify parsing of the DataView objects for PowerBI custom visuals. -2. [ChartUtils](https://www.npmjs.com/package/powerbi-visuals-utils-chartutils) helps to simplify development of axes, labels and legend for PowerBI custom visuals. -3. [ColorUtils](https://www.npmjs.com/package/powerbi-visuals-utils-colorutils) is a tool to manage color manipulations for PowerBI custom visuals -4. [TypeUtils](https://www.npmjs.com/package/powerbi-visuals-utils-tooltiputils) helps to use the Tooltip API for PowerBI custom visuals and extends the basic types for PowerBI custom visuals. -5. [InteractivityUtils](https://www.npmjs.com/package/powerbi-visuals-utils-interactivityutils) is a set of functions and classes for implementation of cross-selection and cross-filtering for PowerBI custom visuals. -6. [FormattingUtils](https://www.npmjs.com/package/powerbi-visuals-utils-formattingutils) are interfaces for creating PowerBI custom visuals. -7. [SVGUtils](https://www.npmjs.com/package/powerbi-visuals-utils-svgutils) is a tool for SVG manipulations for PowerBI custom visuals. - -### How to install - To install the package you should run the following command in the directory with your current custom visual: - -```bash -npm install powerbi-visuals-utils-svgutils --save -``` -This command installs the package and adds a package as a dependency to your ```package.json``` - -### Including package dependencies -After installation of the package you should include all necessary js dependencies into your project. -You can find more information on each package github page. - -For example here is the installation guide for [SVGUtils](https://github.com/Microsoft/powerbi-visuals-utils-svgutils/blob/dev/documentation/docs/usage/installation-guide.md#how-to-instal) package. - -### How to use -Having installed the package with all dependencies, you can use these utils in your project. -Let's change the following instruction by using SVGUtils package: - -```typescript - this.xAxis - .attr('transform', 'translate(0, ' + height + ')') - .call(xAxis); -``` - -At first, import SVGUtils module in top of your typescript file: - -```typescript - import SVGUtils = powerbi.extensibility.utils.svg; -``` - -After that user can use all available module methods -```typescript - this.xAxis - .attr('transform', SVGUtils.translate(0, height)) - .call(xAxis); -``` - -To get more information about SVGItils package, please check the following [documentation](https://github.com/Microsoft/powerbi-visuals-utils-svgutils/) diff --git a/Tutorial/ExternalLibraries.md b/Tutorial/ExternalLibraries.md deleted file mode 100644 index ab548fa..0000000 --- a/Tutorial/ExternalLibraries.md +++ /dev/null @@ -1,43 +0,0 @@ -# Adding External Libraries - -PowerBI encourages you to use libraries of your choice. - -**NOTE:** We currently provide you with JQuery, d3, and lodash preloaded. However, we plan to remove these libraries in the future version. - -**Supplied Library Versions** - -* JQuery - 2.2.0 -* d3 - 3.5.5 -* lodash - 3.6.0 - -## Adding External Libraries -Download the external library of your choice. - -Create an external folder in the root of your visual. - -![](images/MakeExternalsDirectory.png) - -Copy your library into the external folder. - -![](images/ExternalLibraries.png) - -Add the library to your `tsconfig.json` file. -```json -{ - "compilerOptions": { - "allowJs": true, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "target": "ES5", - "sourceMap": true, - "out": "./.tmp/build/visual.js" - }, - "files": [ - ".api/v1.1.0/PowerBI-visuals.d.ts", - "external/easeljs-0.8.2.min.js", - "src/visual.ts" - ] -} -``` - -Refer to [this](Typings.md) if you'd like to add typings for your JS file to get intellisense and compile time safety on them. diff --git a/Tutorial/HighContrastSupport.md b/Tutorial/HighContrastSupport.md deleted file mode 100644 index a1ad392..0000000 --- a/Tutorial/HighContrastSupport.md +++ /dev/null @@ -1,133 +0,0 @@ -# Accessibility: Adding High-Contrast Mode Support -Windows *High-Contrast* setting makes text and apps easier to see by using more distinct colors. -Read more about [high-contrast support in Power BI](https://powerbi.microsoft.com/en-us/blog/power-bi-desktop-june-2018-feature-summary/#highContrast). - -Adding high-contrast support to your visual requires the following: -1. On init: Detect whether Power BI is in high-contrast mode and if so, get current high-contrast colors. -2. Every update: Change the way the visual renders to make it easier to see. - -See this [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/61011c82b66ca0d3321868f1d089c65101ca42e6) to learn how high-contrast was implemented in Sample Bar Chart, the files [src/barChart.ts](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/61011c82b66ca0d3321868f1d089c65101ca42e6#diff-433142f7814fee940a0ffc98dc75bfcb) and [capabilities.json](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/61011c82b66ca0d3321868f1d089c65101ca42e6#diff-290828b604cfa62f1cb310f2e90c52fd) contain the main changes. - -## On Init -The [colorPalette](./ColorPalette.md) member of `options.host` has several properties for high-contrast mode. Use these properties to determine whether high-contrast mode is active, and if so, what colors to use. - -### Detect that Power BI is in high-contrast mode -If `host.colorPalette.isHighContrast` is `true`, high-contrast mode is active and the visual should draw itself accordingly. - -### Get high-contrast colors -In high-contrast mode, your visual should limit itself to the following colors: -* **Foreground** color is used to draw any lines, icons, text and outline or fill of shapes. -* **Background** color is used for background, and as the fill color of outlined shapes. -* **Foreground - selected** color is used to indicate a selected or active element. -* **Hyperlink** color is used only for hyperlink text. - -Note: If a secondary color is needed, foreground color may be used with some opacity (Power BI native visuals use 40% opacity). Use this sparingly to keep the visual details easy to see. - -You can store these values during initialization: - -```typescript - private isHighContrast: boolean; - - private foregroundColor: string; - private backgroundColor: string; - private foregroundSelectedColor: string; - private hyperlinkColor: string; - //... - - constructor(options: VisualConstructorOptions) { - this.host = options.host; - let colorPalette: ISandboxExtendedColorPalette = host.colorPalette; - //... - this.isHighContrast = colorPalette.isHighContrast; - if (this.isHighContrast) { - this.foregroundColor = colorPalette.foreground.value; - this.backgroundColor = colorPalette.background.value; - this.foregroundSelectedColor = colorPalette.foregroundSelected.value; - this.hyperlinkColor = colorPalette.hyperlink.value; - } -``` -Alternatively, you can store the `host` object during initialization and access the relevant `colorPalette` properties during update. - -## On Update -The specific implementation of high-contrast support vary from visual to visual and depend on the details of the graphic design. Typically, high-contrast mode requires a slightly different design than the default, in order to keep the important details easy to distinguish with the limited colors. -Here are some guidelines followed by Power BI native visuals: -* All data points use the same color (foreground). -* All text, axes, arrows, lines etc. use foreground color. -* Thick shapes are drawn as outlines, with thick strokes (at least 2 pixels) and background color fill. -* When relevant, data points are distinguished by different marker shapes, data lines are distinguished by different dashing. -* When a data element is highlighted, all other elements change their opacity to 40%. -* For slicers, active filter elements use foreground-selected color. - -In Sample Bar Chart, for example, all bars are drawn with 2 pixels thick foreground outline and background fill. Compare the way it looks with default colors and with a couple of high-contrast themes: - -![Sample Bar Chart using standard colors](images/HC_sampleBarChart_standard.png) - -![Sample Bar Chart using *Dark #2* color theme](images/HC_sampleBarChart_dark2.png) -![Sample Bar Chart using *White* color theme](images/HC_sampleBarChart_white.png) - -Here is one place in the `visualTransform` function that was changed to support high-contrast, it is called as part of rendering during `update`: - -**before** -```typescript - for (let i = 0, len = Math.max(category.values.length, dataValue.values.length); i < len; i++) { - let defaultColor: Fill = { - solid: { - color: colorPalette.getColor(category.values[i] + '').value - } - }; - - barChartDataPoints.push({ - category: category.values[i] + '', - value: dataValue.values[i], - color: getCategoricalObjectValue(category, i, 'colorSelector', 'fill', defaultColor).solid.color, - selectionId: host.createSelectionIdBuilder() - .withCategory(category, i) - .createSelectionId() - }); - } -``` - -**after** -```typescript - for (let i = 0, len = Math.max(category.values.length, dataValue.values.length); i < len; i++) { - const color: string = getColumnColorByIndex(category, i, colorPalette); - - const selectionId: ISelectionId = host.createSelectionIdBuilder() - .withCategory(category, i) - .createSelectionId(); - - barChartDataPoints.push({ - color, - strokeColor, - strokeWidth, - selectionId, - value: dataValue.values[i], - category: `${category.values[i]}`, - }); - } - - //... - - function getColumnColorByIndex( - category: DataViewCategoryColumn, - index: number, - colorPalette: ISandboxExtendedColorPalette, - ): string { - if (colorPalette.isHighContrast) { - return colorPalette.background.value; - } - - const defaultColor: Fill = { - solid: { - color: colorPalette.getColor(`${category.values[index]}`).value, - } - }; - - return getCategoricalObjectValue(category, index, 'colorSelector', 'fill', defaultColor).solid.color; - } -``` - - - - - diff --git a/Tutorial/LaunchURL.md b/Tutorial/LaunchURL.md deleted file mode 100644 index b004453..0000000 --- a/Tutorial/LaunchURL.md +++ /dev/null @@ -1,78 +0,0 @@ -# Opening a URL in a new tab/window -Launch URL allows opening a new browser tab (or window), by delegating the actual work to Power BI. - -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/2ecc5cf74b9bc6fbf5c03f84c3ab24841b489d4e) for what was added at this step. - -Note: custom visuals are hosted in Power BI inside sandboxed iframes, this prevents opening a new browser tab (or window) in "the usual way", e.g. using `window.open('http://some.link.net','_blank')`. - -## Usage -Use the `host.launchUrl()` API call, passing your destenation URL as a string argument: - -```typescript -this.host.launchUrl('http://some.link.net'); -``` - -## Restrictions -* Use only absolute paths, not relative ones. `http://some.link.net/subfolder/page.html` is fine, `/page.html` won't be opened. -* Currently only `http` and `https` protocols are supported. Avoid `ftp`, `mailto` etc. - -## Best practices -1. For most cases, it is best to only open a link as a response to a user's explicit action. Make it easy for the user to understand that clicking the link or button will result in opening a new tab. Triggering a `launchUrl()` call without a user's action, or as a side effect of a different action can be confusing or frustrating for the user. -2. If the link is not crucial for the proper functioning of the visual, it is recommanded to provide the report's author a way to disable and hide the link. This is especially relevant for special Power BI use-cases, such as embedding a report in a 3rd party application or publishing it to the web. -3. Avoid Triggering a `launchUrl()` call from inside a loop, the visual's `update` function, or any other frequently recurring code. - -## Step by step example -### Adding a link launching element -The following lines were added to the visual's `constructor` function: -```typescript - this.helpLinkElement = this.createHelpLinkElement(); - options.element.appendChild(this.helpLinkElement); -``` -And, a private function creating and attaching the anchor element was added: -```typescript -private createHelpLinkElement(): Element { - let linkElement = document.createElement("a"); - linkElement.textContent = "?"; - linkElement.setAttribute("title", "Open documentation"); - linkElement.setAttribute("class", "helpLink"); - linkElement.addEventListener("click", () => { - this.host.launchUrl("https://github.com/Microsoft/PowerBI-visuals/blob/master/Readme.md#developing-your-first-powerbi-visual"); - }); - return linkElement; -}; -``` -Finally, an entry in the visual.less file defines the style for the link element ([see here](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/2ecc5cf74b9bc6fbf5c03f84c3ab24841b489d4e#diff-96b5545ad582c6d540c60ebff2c9f806)) - -### Adding a toggling mechanism -This requires adding a static object (see [static object tutorial](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/blob/master/Tutorial/StaticObjects.md)), so that the report's author can toggle the visibility of the link element (default is set to hidden). -A `showHelpLink` boolean static object was added to `capabilities.json` objects entry: - -```typescript -"objects": { -//... - "generalView": { - "displayName": "General View", - "properties": - //... - "showHelpLink": { - "displayName": "Show Help Button", - "type": { - "bool": true - } - } - } - } - } -``` - -![](images/launchURLtoggle.png) - -And, in the visual's `update` function, the following lines were added: -```typescript - if (settings.generalView.showHelpLink) { - this.helpLinkElement.classList.remove("hidden"); - } else { - this.helpLinkElement.classList.add("hidden"); - } -``` -The `hidden` class is defined in visual.less to control the display of the element. diff --git a/Tutorial/Locale.md b/Tutorial/Locale.md deleted file mode 100644 index d60d826..0000000 --- a/Tutorial/Locale.md +++ /dev/null @@ -1,70 +0,0 @@ -# Localizing your Custom Visuals - -Visuals can now know PowerBI's locale, so they can display localized information -(read more about [Supported languages and countries/regions for Power BI](https://powerbi.microsoft.com/en-us/documentation/powerbi-supported-languages/)).
-The `locale` string is passed on `IVisualHost`. - -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/388670c71a873bf7412e771164ea3cbb8522a63e) for what was added at this step. - -## Localizing the tooltips - -In the sample we display the current locale in the tooltip. - -![Sample BarChart with Locale](./images/LocaleInSampleBarChart.png) - -Each of these bar charts was created under different locale (English, Basque and Hindi). - -The BarChart contructor now has a `locale` member which is instantiated in the constructor with the host `locale` instance. - -```typescript - private locale: string; - ... - this.locale = options.host.locale; -``` - -A `LocalizaionResources` interface was added, which helps in localizing strings. It defines the required string for each locale, and also the 'defaultValue', which will be displayed if the visual wansn't adapted to this locale.
-`myResources` is an instance of this interface, which holds the localized strings: - -```typescript -module powerbi.extensibility.visual { - - export var myResources: Resources = {}; - myResources["LanguageKey"] = { - defaultValue: "English(English)", - localization: { - "ar-SA": "العربية (Arabic)", - "bg-BG": "български (Bulgarian)", - ..., - "zh-CN": "中国 (Chinese-Simplified)", - "zh-TW": "中國 (Chinese-Tranditional)" - } - }; - -} -``` -Getting a localized string is easy using `getLocalizedString`. -```typescript - /** - * Returns the localized string in the locale transfared using the key that was given to serch the resources - * - * @param {string} locale - the locale in which PowerBI is currently running - * @param {object} key - specify a key for the string you want localized in your visual - */ - export function getLocalizedString(locale: string, key: string): string { - return myResources && key && myResources[key] && (((myResources[key]).localization[locale])|| (myResources[key]).defaultValue); - } -``` - -The data for the tooltip is than derived from the current `locale`: - -```typescript -private getTooltipData(value: any): VisualTooltipDataItem[] { - let language = getLocalizedString(this.locale,"LanguageKey"); - return [{ - displayName: value.category, - value: value.value.toString(), - color: value.color, - header: language && "displayed language " + language - }]; -} -``` diff --git a/Tutorial/ReportPageTooltips.md b/Tutorial/ReportPageTooltips.md deleted file mode 100644 index 4bc775b..0000000 --- a/Tutorial/ReportPageTooltips.md +++ /dev/null @@ -1,44 +0,0 @@ -# Adding Report Page Tooltips support to Bar Chart -Report page tooltips support can be done by updating your visual capabilities. -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/42aa6b6d69dea0b5e75bb6a78779b524efde9800) for what was added at this step. - -To add report page tooltips support, most changes will be located in `capabilities.json`. A sample schema is already in place for you. - -Report page tooltips definition can be done on the Format pane. - -![](images/ReportPageTooltip.png) - -## Support Canvas Tooltips -To support displaying report page tooltips, add "tooltips" definition to capabilities.json as follows - -```json -"tooltips": { - "supportedTypes": { - "default": true, - "canvas": true - }, - "roles": [ - "tooltips" - ] -} -``` - -`supportedTypes` is the tooltips configuration supported by the visual and reflected on the field well. - `default` specifies whether the "automatic" tooltips binding via data field is supported. - `canvas` specifies whether the report page tooltips are supported. - -`roles` optional. Once defined, instructs what data roles will be bound to the selected tooltip option in fields well. - - -For more information, see the Report Page Tooltips usage guidlines [Report Page Tooltips](https://powerbi.microsoft.com/en-us/blog/power-bi-desktop-march-2018-feature-summary/#tooltips). - -## Applying report page tooltips -For displaying the report page tooltip, upon calling ITooltipService.Show(options: TooltipShowOptions) or ITooltipService.Move(options: TooltipMoveOptions), the PowerBI host will consume the selectionId ('identities' property of 'options' argument above). -Therefore, the SelectionId should represent the selected data (category, series, etc) of the item you hovered above to be retreived by the tooltip. - -See more on building SelectionId under [Adding Selection and Interactions with Other Visuals](https://github.com/Microsoft/PowerBI-visuals/blob/master/Tutorial/Selection.md) - -Example of sending the selectionId to tooltip display calls: - -![](images/ApplyReportPageTooltip.png) - diff --git a/Tutorial/Selection.md b/Tutorial/Selection.md deleted file mode 100644 index cef5461..0000000 --- a/Tutorial/Selection.md +++ /dev/null @@ -1,78 +0,0 @@ -# Adding Selection and Interactions with Other Visuals -Selection provides the ability for the user to interact with your visual and also interact with other visuals. - -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/b765940e9b9a14b3360cded30b329224ab572475) for what was added at this step. - -## Adding Selection to Each Data Point -Since each data point is unique, selection must be added to each data point. Add a property for selection on BarChartDataPoint interface. - -```typescript -/** - * Interface for BarChart data points. - * - * @interface - * @property {number} value - Data value for point. - * @property {string} category - Corresponding category of data value. - * @property {string} color - Color corresponding to data point. - * @property {ISelectionId} selectionId - Id assigned to data point for cross filtering - * and visual interaction. - */ -interface BarChartDataPoint { - value: number; - category: string; - color: string; - selectionId: ISelectionId; -}; -``` - -## Assigning Selection Ids to Each Data Point -Since we iterate through the data points in `visualTransform` it is also the ideal place to create your selection ids. -The host variable is a `IVisualHost`, which contains services that the visual may use such as color and selection builder. - -Use the selection builder factory method on `IVisualHost` to create a new selection id. -Since we're making selection only based on the category, we only need to define selection `withCategory`. - -**NOTE**: A new selection builder must be created per data point. - -```typescript -for (let i = 0, len = Math.max(category.values.length, dataValue.values.length); i < len; i++) { - barChartDataPoints.push({ - category: category.values[i], - value: dataValue.values[i], - color: colorPalette.getColor(category.values[i]).value, - selectionId: host.createSelectionIdBuilder() - .withCategory(category, i) - .createSelectionId() - }); -} -``` - -For more information, see the section about using [Selection Id Builder](https://github.com/Microsoft/PowerBI-visuals/blob/master/Visual/Selection.md#creating-selection-ids-selectionidbuilder). - -## Interacting with your Data Points -Each bar on the bar chart can be interacted with once a selection id is assigned to the data point. -The bar chart will listen to click events. - -Use the selection manager factory method on `IVisualHost` to create selection manager. This allow for cross filtering and clearing selections. - -```typescript -let selectionManager = this.selectionManager; - -//This must be an anonymous function instead of a lambda because -//d3 uses 'this' as the reference to the element that was clicked. -bars.on('click', function(d) { - selectionManager.select(d.selectionId).then((ids: ISelectionId[]) => { - bars.attr({ - 'fill-opacity': ids.length > 0 ? BarChart.Config.transparentOpacity : BarChart.Config.solidOpacity - }); - - d3.select(this).attr({ - 'fill-opacity': BarChart.Config.solidOpacity - }); - }); - - (d3.event).stopPropagation(); -}); -``` - -For more information, see the section about using [Selection Manager](https://github.com/Microsoft/PowerBI-visuals/blob/master/Visual/Selection.md#managing-selection-selectionmanager). diff --git a/Tutorial/StaticObjects.md b/Tutorial/StaticObjects.md deleted file mode 100644 index a1097ef..0000000 --- a/Tutorial/StaticObjects.md +++ /dev/null @@ -1,159 +0,0 @@ -# Static Objects -Objects can be added to further customize what the visual can do. These customizations can just be UI changes, but can also be changes related to the data that was queried. -We will be using static objects to render an x axis for the Bar Chart. - -Objects can be toggled on the property pane. - -![](images/PropertyPane.png) - -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/7602bb5c34aca97f02ea8e713f841a4ce19929c7) for what was added at this step. - -## Define Object in Capabilities -Define an objects property inside your capabilities. This defines the object you plan to display in the property pane. -`enableAxis` is the internal name that will be referenced in the `dataView`. -`displayName` is the name that will be shown on the property pane. - -`bool` is a `PrimitiveValue` and is typically used with static objects such as text boxes or switches. - -**NOTE**: `show` is a special property on `properties`. It enables the switch on the actual object. Since show is a switch, it is typed as a `bool`. - -![](images/ObjectShowProperty.png) - -```typescript -"objects": { - "enableAxis": { - "displayName": "Enable Axis", - "properties": { - "show": { - "displayName": "Enable Axis", - "type": { "bool": true } - } - } - } -} -``` - -For more information, see the section about using [Objects](https://github.com/Microsoft/PowerBI-visuals/blob/master/Capabilities/Objects.md). - -## Defining Property Settings -Although this is optional, it is best to localize most settings onto a single object so that all settings can be easily referenced. - -```typescript -/** - * Interface for BarCharts viewmodel. - * - * @interface - * @property {BarChartDataPoint[]} dataPoints - Set of data points the visual will render. - * @property {number} dataMax - Maximum data value in the set of data points. - * @property {BarChartSettings} settings - Object property settings - */ -interface BarChartViewModel { - dataPoints: BarChartDataPoint[]; - dataMax: number; - settings: BarChartSettings; -}; - -/** - * Interface for BarChart settings. - * - * @interface - * @property {{show:boolean}} enableAxis - Object property that allows axis to be enabled. - */ -interface BarChartSettings { - enableAxis: { - show: boolean; - }; -} -``` -## Defining and Using Object Enumeration Utility -Object property values are available as metadata on the `dataView`. However, there is currently no service to help retrieve these properties. -ObjectEnumerationUtility is a set of static functions used to retrieve object values from the `dataView`. ObjectEnumerationUtility can be used for other visual projects. - -**NOTE**: Object Enumeration Utility is optional, but it is great option to iterate through the `dataView` and retrieve object properties. - -```typescript -/** - * Gets property value for a particular object. - * - * @function - * @param {DataViewObjects} objects - Map of defined objects. - * @param {string} objectName - Name of desired object. - * @param {string} propertyName - Name of desired property. - * @param {T} defaultValue - Default value of desired property. - */ -export function getValue(objects: DataViewObjects, objectName: string, propertyName: string, defaultValue: T ): T { - if(objects) { - let object = objects[objectName]; - if(object) { - let property: T = object[propertyName]; - if(property !== undefined) { - return property; - } - } - } - return defaultValue; -} -``` - -See [objectEnumerationUtility.ts](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/blob/master/src/objectEnumerationUtility.ts) for source code. - -## Retrieving Property Values from DataView -`visualTransform` is the ideal place to manipulate the visual's viewmodel. We will continue this pattern and retrieve the object properties from the `dataView`. - -Define the default state of the property and use getValue to retrieve the property from the `dataView`. - -```typescript -let defaultSettings: BarChartSettings = { - enableAxis: { - show: false, - } -}; - -let barChartSettings: BarChartSettings = { - enableAxis: { - show: getValue(objects, 'enableAxis', 'show', defaultSettings.enableAxis.show), - } -} -``` - -## Populate Property Pane with `enumerateObjectInstances` -`enumerateObjectInstances` is an optional method on `IVisual`. Its purpose is to enumerate through all objects and to place them within the property pane. -Each object will be called with `enumerateObjectInstances`. The object's name will be available on `EnumerateVisualObjectInstancesOptions`. - -For each object, define the property with its current state. - -```typescript -/** - * Enumerates through the objects defined in the capabilities and adds the properties to the format pane - * - * @function - * @param {EnumerateVisualObjectInstancesOptions} options - Map of defined objects - */ -public enumerateObjectInstances(options: EnumerateVisualObjectInstancesOptions): VisualObjectInstanceEnumeration { - let objectName = options.objectName; - let objectEnumeration: VisualObjectInstance[] = []; - - switch(objectName) { - case 'enableAxis': - objectEnumeration.push({ - objectName: objectName, - properties: { - show: this.barChartSettings.enableAxis.show, - }, - selector: null - }); - }; - - return objectEnumeration; -} -``` - -## Control Property Logic in Update -Once an object has been added to the property pane, each toggle will trigger an update. -Add specific object logic in `if` blocks. -```typescript -if(settings.enableAxis.show) { - let margins = BarChart.Config.margins; - height -= margins.bottom; -} - ``` diff --git a/Tutorial/StaticVisual.md b/Tutorial/StaticVisual.md deleted file mode 100644 index b203239..0000000 --- a/Tutorial/StaticVisual.md +++ /dev/null @@ -1,65 +0,0 @@ -# Building a Static Visual -Typically, it is easier to build your visual with static data before adding PowerBIs data binding. -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/f5ef02a5851c98671b46fedc1e7f7e7133001d7c) for what was added at this step. - -## Setting up ViewModel -It is important to define your view model now and iterate on what is exposed to your visual as you are building it. - -```typescript -/** - * Interface for BarCharts viewmodel. - * - * @interface - * @property {BarChartDataPoint[]} dataPoints - Set of data points the visual will render. - * @property {number} dataMax - Maximum data value in the set of data points. - */ -interface BarChartViewModel { - dataPoints: BarChartDataPoint[]; - dataMax: number; -}; - -/** - * Interface for BarChart data points. - * - * @interface - * @property {number} value - Data value for point. - * @property {string} category - Coresponding category of data value. - */ -interface BarChartDataPoint { - value: number; - category: string; -}; -``` - -## Using Static Data -Using static data is a great way to test your visual without databinding. Notice your view model will not change even when -databinding is added. We will go into how to add databinding to your visual later. - -```typescript -let testData: BarChartDataPoint[] = [ - { - value: 10, - category: 'a' - }, - { - value: 20, - category: 'b' - }, - { - value: 1, - category: 'c' - }, - { - value: 100, - category: 'd' - }, - { - value: 500, - category: 'e' - }]; - -let viewModel: BarChartViewModel = { - dataPoints: testData, - dataMax: d3.max(testData.map((dataPoint) => dataPoint.value)) -}; -``` \ No newline at end of file diff --git a/Tutorial/Typings.md b/Tutorial/Typings.md deleted file mode 100644 index cb2b956..0000000 --- a/Tutorial/Typings.md +++ /dev/null @@ -1,36 +0,0 @@ -# Installing Typings for d3 -Installing typings will give you access to d3 types so you can utilize typescript types. -See [commit](https://github.com/Microsoft/PowerBI-visuals-sampleBarChart/commit/2bb0f64718864a27e7d4b9c5b1d35d267bba6202) for what was added at this step. - -For a more indepth details about typings, visit their repo. [Typings Documentation](https://github.com/typings/typings) - -## Install Typings CLI -In order to use typings in your project, you must first install typings to your computer. This is a one time installation. -```javascript -// install typings globally -npm install typings -g -``` -## Add Typings to your Project -To have types for a specific library, run the following command. - -* **save** - Persists the types within this project. -* **global** - Tells typings that we want this dependency to be globally available. - -```javascript -// install d3 typings -typings install --save --global dt~d3 -``` - -You should now have a typings directory in your visual project. - -![](images/InstallTypings.png) - -## Adding Typings to your PowerBI Visual -Open your `tsconfig.json` file and add your `index.d.ts` to your list of files - -![](images/AddTypings.png) - -## Utilize Types in your Visual -Now you should be able to use types within your code. - -![](images/UsingTypings.png) \ No newline at end of file diff --git a/Tutorial/images/AddTypings.png b/Tutorial/images/AddTypings.png deleted file mode 100644 index 3e3f29747541d0b2dfbab9941956fb12dbf7af63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41635 zcmZU)1CS<7&@DW+tsUF8ZQHhObH}q|+s2MIt>LEH!2?tpO~3*c9lP4 zZDuqLn+-}H0G=FxCYQ`ZB*aQXGaab#-Q)AAo)IFq>PYH_M(eBL^GnOT!zaH3z@HlN z{N%?0YTz~)z;vbVPW%jj{wo59p0@Kdnyw(d53wKu0QCym<67^z*0K}0l+D?)<{7>^ zIshY31j-3GfWtViTV)EKVHift{7k4Pcral(CWPwKEtv;!&uYN&IV2?HS|2n7+T%Ms zm+#k~;v>Bb;)E@|4yNP_!D4I#R9tDvXFl2CFI~YvqtE-^NNtcWaiOy+2BJGx3i1hK zXk>(Sv{MV)0DVmmKDg`6#jQTO4klqpPd<>(&^G4S? z7z)RBn*3Ns_;A+xjlt}AgT?kog}S`n!{T<=`gfnG&uu1N1y5E#XK XoM(Xta5^x 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 diff --git a/Tutorial/images/CondFormatSupport.png b/Tutorial/images/CondFormatSupport.png deleted file mode 100644 index c1aaaae2d62fdbb1773890cdfcf4cc1cad1a0b5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105297 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

    ^{YKJK_C`hwP{UbgbEi(-(l10gPfI7>bk$ z_%MRAk_kem&wi#=8>hV%+R6r-U6JFJY(RheODTGlqP{f*tALw=roWjEKf_`sVkBgo zfnFTx|F_~!?TFCT%4!=s0g6lI%tIg3my0r`4;jfbLR_Di>FaON1a zItVSKg^GPf(=07=f0dG^++~I^^@!X2r|H*M8jqeWZmfU;85Cx{Y zIUa9GG9SpOzQom3GE8(3idp0 z4J0#lK?Kr5`tgf??mv|wad@8;qg4Eq+#SYIx(m@ykO7}Us&$Ckurwg%Z z0y&cUGNqQ11xH9c4oh$Tpq++T&J4{$fLA&r$5^2F=7Jw0k5Qh6vej=J)rhoodWgf0 zyWM7{_Qq`iV*M9k@P*yM6Ryj*#eQr`(3;b%3>9c^dpH$B|M{%bq4uMJ)Z7pnmN)(D zgSYF=nI^li?`H~j!WVRwk6j7yf2Dt8cGVI|cz*Y7b1%Zxy$b{zP6pCdp6cR5Oc38z zYvZm+#du>H7kGQmHxV{D#98C(xz>kojRDa&&obO6g2Eq^+f0W<5xC~1dIaTBT8b=B zi?e{aFHglTLmPkGuVZ3xHkRGCN7871A%|7cN4koYRj%=O7G^iNdrj^=bi|Vfjc@HU zVXVR0whHPy4~gB!*64c_DtjDPw-&Z%>$=E2$`v(NjvS#>*1sMgA2(%%Lx7XCbA z7HT}`8LhHVS8fb?_jxNh$JZL^sng!y15M^%(;_yr5#L2yCLWI#TFn?t4#-&o|DKme1}*!SV@H|A zBYIsm@pAjd+7SC&5p#~Mh-!Q_V?K))g9v9F z15#sFuU}q655$Y+D-4){p7Wxaj%nfb>>tj*z>w))wU_M;A4LLekpn^rg4Y(b-Snkc zcJ@9;Vx>JsP?HTj*!meeCRgB*7=^S{+IprRik7tZ8Sl!per2s|dft4gb0Rx44{ zz3weG=60s|d@FzNFL>z8+U$O-tMAZR^6vLnAJTtm@v&TZgl?)hl(^^I8JF~3AzrI? zWAt*mPoBYgNV9ofs`$Da6U3?Zq-ay$bqkB|IQ{zOVR@}53=`HSu&oK{{8(ZH%&4p z0sBk6oh8iGVUw?Mz#2j^dad;pWGE145WW{uj3M5+(#$ zIVB7Nnnn1lJ>6x2-3bKAsa?ujZK7T$v9N0eq#9AvyZR6Uc|=pggC zZKxGy(KE7mb)2dVQd+LAljHCBlxsKbJye@|**~?*e$na$?hcICOLlqNEQKO5r+3$V z^vSVrY~1ZPj8_T-mQYSwMBDINf25|RUHp8yjU`qZRQbUsXsv5JFi zBK%XJ?X^LHYMsZ{v&nx+O3|=^iYuKI9(Y>O@Ey69r#g**U+@)kTh{F-{-W)y>iy}; z>AFSlg^JZCQTN4RP_2UOF;7_peVb~q3B{?imv2$I`BGa=T2$l8Js~@$B*16ab=!Hn zS`$Of`^|xPu4wGmNQ|lYSXe=y|FynBc_6jTa8H3s%#-xh;YVmhqt8YMcJwcbAnl)(2 zq@Ol}+TRvLnB4w1=E(cGa<1K2ZuO^Qt28$*#f@ma-fbOhxhkW|v_4=yFsg#yhy(KF z6fOjZ5pAlIjg)xg$$GRvb2FCn6Wpq?Z16jA!tOR9@_+PW!id_@IDuPY-h+OW#csE#)Xk6I z>C()|SI>omwA{&E7S`U+#A`d%E$0u9)#yW9X?7=RFm=;{Om*P<*dtS>*N^2i$;TW= zICyYEPpPl-mwKi2DV|3n4tfdaDxjx8A(3GHiJJUb@XS`L&aAugaYu?pv8w zW_GvmG*4&y(XlXP!*ggd>TFCFx2O7LTB&5EYojpbHrkD>ISs{1d17d$x;~fIxZ13! z?O?LmK;?mk6F0gQIuEvox-(iV4wCzB^|d*TJX>ph#dgJ|l35W)R$kvDxg{@NUUrQ# zl^tYIW6`#l?X-O%swb3q6GHH`Ce1q=JL zYj!rW#S40l-!uIhz0cK?_}A8&&rL0f0qYxv{~|JQ4@8e~@mLUfLoA}A^zB!bC}(Ph zsANpzqKe>j!-*aPY*$&v&#f*X0HQW(aQ;LeY{1r9)RLqg!1G}J4I2d*Ock$1Hz7|BwzM9u;%bwqyZNuVK4@AqFd;Zbk8`=D_Qb_ zqNC5QqE_XFbMPJNiy=ryyG!P+dpjb4OOl&Y>)i+6D zMQ0}0mhJr5{c61S+F2O0gg;`~3qvQ*vSY!&KFn~52umWH_p&q3< zw#zXXMOz(RH|>{A*~4+tvWSSB(x1P=|NJ+CNE?#f%fsDqaNrgHe&5D);vnB{UYYy< z$ok8mIJ#&J6b|n0?(Xi+;O-8=-Q8UV_u%dp2tIfM1PE@y-Q687=R0rCS9S02o~k{y zx_kH9kFCG8jRu};T1gRTm{K#ivhAaohCdRn?n2vBYF}6k2T|~apicH%PgIf*R?F`fWPgIVrZ+RnOKJfm41qAmqxjiJDco3 zjTMryN#y{r8%51vdEP;5{S;@!%9K&gq)|voUEF0e8XdC_)r@>(XHkT3|h(sQ4FBHtfTOCmFUYA zUjX_B$zQjJEBkPBF)J`mu8<;VJ0z3nny$15?>=cJ8HtGTGgrE5a^L3t=uk@8ETuo+ z=322N7(Cg&+wSCp)q;5Mz^CjB38&hODA+J*hxKWJl2E@|&;M458PHBS32zmF=Sd`0 zZ*G?1-{JGbQF6=}7Dv-l8Vb$XrmrsiDy>(nL9fQPLq>v6fKzGn?{3#$Sv2}!Zkhci z_SOmQ!&~=LOdby&CIGSXYJnD=HYG=2&o-{PsXv;>nz&sKHb2*ap*QR9sX<34zOXMC zv_0_8q(Uq~%#j?15l8dz3bf-{nkc9z5^#F^OQrAET;uBU^PxjmFtSEL$Nz&Rkoax< z{=mwA_dw9id<{Cy^c;(C6XOynd(bgY!y=F^%;9nQV*C(jXZbeRZ;Jof)I)8;= z;jo_jvAR93JgLjGAL~S3Ea9Wn2UlBMSUD%#78o$jfv^yt_Y&amuQ_rC4fRape)_RA z#OAgbXV_GJ@cnD^Sk)$`1uI$~*`g((a|)Nu)hw%@>=oNOI*=X+`sm@`8lLo2TC>9N-8ppfdrPm6ZNuTX*FNBv~Tgo@X+sL?Oy>!ypu*-Q{+xS+C zIZwxrSDSiF{f9gTzgNzW)4M?qDb5;8DzO`=1cZ3squ7`+obKC^xh)9+%{@6exv^Ez zEOgAeMZ10o(R5MvBP7v_;0M~sk&21ZBhyq{snGS!7UU`FY}zofDEMMhxwc8@i2v{d z!TSHaJk5CssS(a_MqTJ=u9S6rc5|9huyqy!g(X`U}U z##Xeo1;(GMX~lL!HSB2gJ446^uVRuP)y+9+uuy&Wo=K$5tDx8v7cc_g^MUG`Fm2Xh z;up$ub2S!o%xC5tl1arRkRd><9qc<;@A7$V-^H=ynt7rLVq!*9`C}i0=xj+erqsPp zH%jM45L(Qrv9y;b@}{O?pywIr6oJ2=m{~z6P{|sS_BL~eaFkJKvT{dpRN-lEq#*q| zAT9ynE`{)YDmjq%%@$fpTK8vTZV3n&JI1P(V2%^GuD~!yNjs*L;Z}~BR&PRYf0arqlj(jG8%JQg9BtP zU`SUe`U)l$+1nU!wEyI0&#b%RhKYXG(ZfT*g(8M)C<+--YAE8XppGFbGfgeD-Q)e* zSH+MeDmvO^P-hdSb@lEU)u-}n{3lG$x2KbI^z`zwTLQqh5qvcJQ30RJ93nbX-KVVB zj#kr(l@jQvC}^l`x_a~RVy@m(7D?6_{6lHFLFoj`QTWP!Omk6|g7y@x@)TZEhT6(y zOHquEVj-A`E8ciN5;i~vQXrC_M|Xa_RM%M^U9PeAK}!RhPbrDjxp%=2 z_FxO79BAWjFx`%WUC=OfB7?aKKwr)$glo=UWQ2saWvf%o{VHRi>21`GmGq^*@B1|5 zA-BnQ(jtEBxoG-A1fQ5vn+x-VVikdX^=|zE?iG}NKISj5;&iR;`Y~{^@3|Em zG;*1Pz2?BZ>1g*sRWX$3dJ%B3$LuHQSbs6cW7J^yy!r#7o4kVk3HhPrt(B>_dw1uY zKV%5&uhC9<_gqZCMLG|1S%;2;eoCdvK3PK`dylr+ypP#BLuy8W994@7#=kyd7&xrI z`wFI^sl{e!zthe??+&S!??bouiw&!!yQqgW2(F1ynv$CG+Y<(jqXz79?jPe|>={Ke z@Zv5J?#bdX>{4XN_?vv{+2uP?VlDvVX z2W;gD(p1BSqG8s}ij3AJNkb#XZ{B;GYcyEF-WprRzAI<|uARvTzwhRuB4$5cwF{+$ zvOx<4&~QWi%Lcjvi_Y!!Am3})QjNfnBG5U@C1faxfYZjv7pZDtJo@pavf8<8mTYYFjb?$|B9CC%?)>H0$Kngb8lZL{+ogT$M6i^(Db{2l>{p_PU}Lg$tt@c?FdY zM5LK2f#E;6cJ#csv+kO1bEs=l`eu^@_7(oR7kWHo6px+Bf9!m5p!DI5I%7tQAg7;P z8CydJ6?-eMBtxyMk^$)rx?%tKA6<(;Ve$omqaPrje>i@~Ht4udygc4ypNr9z6s((4 z$!tcy%zUs`|M3&=?E3rkluW(AWalQP2Q(f&h@3E(E4DKPxWh7&*G}sT(R9g}Ru|Kz zx4m`KqDwy^;XN*GSN>%Ufsi{jo}zAZUZ`z*o<=MQ@a6p6&Z>?BKwVchI+BHbc6$uy ziFo?0eooVc+8eB?)xY@mewUxEXR8Xtpg#sl7W}(g?;N7ZH>lF&XUc(};NM#vWbkx&Ew^ttky0FN`G)W55ataeve+Z8kVt`4UsH;YLOJK$_YlDt1*!HP z2Ygb`cf@bxW4SxT2&xKDL4@4>NOJY4g3SF;)%8h~x;YTjwzqoVf9{>zn8Z{yw}^<7 z6mKp4c!98g>g@#%Tb@5!Em;N~!=bbGfHLh2|4yDT2t(vYV0) z@Q3yId^D^Cwv_*gMn0&CYkrDqYEsFv^YXS=R?47;Z+MN9;A!5|+KVR+y>&`Gs)_^N zkK)JFCyl{IOP5dVIv24$8`khu5yazVLJE5;?B4dk_bVwD`(ysX?VJi}ULW@FPv51^ zvL8=e`iv;eyWZlk{eUlJV+8D@M;mR`G>8Rs#z-TJ=ydJMph zxY-P&93T^mu|Z2%$d-m>$J@?u-;QQ?@TkGVsm)qG0Mhy3kP^?h=sR2(V@Er1?nw+k zQh)BVOZSRc8ufO|V;|MbRTKB`<}SIJpG`8i;V!(Sx7M9}Wk(fbF1)Qj)%AGVwMbEc z{Dr$@W1pJgaoe62V0uz?mqUs5lT9`0Z{Y$(cB`F?l0a_7Jq)aog8d^?Uix3vy+E20wPmU zN#*AlrV4I{&AJgq--o0%JhCgr+yl?@*rNCxno`FcxA#jb*%rt)qNOgwrYx;%mQ&&8 zXDgmWRLXNZ)_;30iGrmiHS({xi&?`jEq$zr09B=m+05GmFnAvP_!LU8yqk&>RKj5- z=&-T9lsysFk4x)9pox{Oh>-h`HXK(d6fuI#`D(kwY_YuG^^9v>ydO>5dG1s@k^D^L zV+NAm;-qjVmq-Nf=Ougq$#RY=lUUj|FSX-w1`I@Nfm3=z)9mr#o zFH$el+mgRK{T8Y%U9@#FWReLzJe_IUcqXW(X1XG%mRF}gKsZKm1WCg zU;D3PCINs}gI1X?N459j)6IEg1Irm#bN8{QdJ)p`-DwQAkqpQgg9a6ugG#XXa->mF zj)l0#{~2Fawa4)h2UAr%6n&V**VNxwEk#v6KAbq9`f)_tlSDLr9Q~zD-hQ5p_iuF0 zHoD)v27BUqyZ87^rI%?pWQOVQ@8O>aBA+^n5x)zVro!~kUT@QF+V0V+=WpS}5=`Fb zcd1c;bwa+&S+t8pggcJt>d$aDmX=%hWe>CNp1QX;aCcuRZ12$NMqkc{)#vT&&O4aa zKkqg*^*#(-4u07J&8i2jt!5hrqxW{t>(|IkrciA;@wT~hbv5n*C-F^}o()0EO%84n z?rXLq4mI<3mx-w$tDG|J^|?MNi6GZZ)ooy26g4fm!b47ME3#!zDcsOVNbTt|L&gk_HhY>oR< z*E`Od=baC1vG@gX70%a&oM}xgs}047V*Dm%EIbO9VyYb$_J7WqHr$UV@+kYAJ9i{I z$_&ZrSFV|ujkB-#XltFb^i!bW_127FB%}VtS!qK`0NJqV;8gd@|0fGftKsbs!(MUR z4yF>n+G4;3oKxQ4%8&s+jl!R>axQs-f;(9kLl1A33I`V(Z>mUDIKGBOr!9m&iv73ewH3E~YkoUtka3R)+WOWJKAf+t25iRY#>?J}>bRvK z*JdA{_M0$-hnD>MsMkJ{jewPNiS9*LPIgUUQ@ETXRg*`}d%)V}3%2*EMA%(|_s{c!^DVYdm(;QQ4%lVDarLN4!YTKOS&0cE z47!XyxPbt(@uk#y=r@=jY1MT;KjGwDOY3r*PWQxOhdkf+)2-?=@V9fKHrp4>S`i4e zdiWQs7OfiIT;CRHVuD$_gJSpJqMR!-menq0lXgftujAfzUNoWLoZDAKDlo;Vkx6 zS0QpneZVR_3L#VaR52;=RI>9e@h-wcfoRPK&l#yvvByZnUuV)XiXDE_V3~=xZ6Vw% z3b@}y&;{H9)ibaVX`pi6h8kNO!|A#^Z-$N}=p$u|`T81?r-SE-_;2zIk1pzsRs`wh zL>BB}HO=8DV3#~?*0%Oy5fFrUuL{%k^faLOTO%VT1sctMNdLNBZLxdN&iEa<$%_ap zva0UuJ`Q|cbuGTN9C}9_#EdNAm739G5N%^c+;@l}A5~BY?njAn6h2NLU#xHxnyTRP%YIr>7=470{jw=69nCgn z_#&Kad~&G4-z8Ouhi~EPXzIM3g0=)=u_+%Za%stFmB_E-F<=nX?4v0@{!Bo0sjC5q zW02TjX3*|lx^KtgQM_{T*t@EXow0tf;UXGZ#9GLvI9=fUOLuv_2_`>Cgm@mMpartA zN;V7|c=A*u+&u8OVd+*Q3R)^8Luqb7CJZAXNrbtdv#TaIZ$d0f-3yH6_6ev;85DzF zPpkQIdcJjeO!)OG;J1B!M^7A}jmDTidXrE!ytBWqE^w})E z7}&>=mTlYR1nrvf&)aUY08@V5s6tc-UMUoGg?%z|-ZMSMO6^$1uE|)=6Cse~&I%b& zNx?;;TpdtU#@j;L+s&i6tv0TiDB~ zzM4W$=W`IW#{H5vZmhKQJQzD>(eI$dZYF_E~Pc2{c*&PoTvE5$J zyHyP6C7y8{?Sv;Nd*ydkdXRg1jv-If6@IHmk*{Af(=eU1@>R$olD5hdan)5j`ZRCK zIfv3uDsSi=!z0#UozPA&jCATIXX<-%WMU9S;PoyawTBe2*ey8e+`Pm*Z2_sYXzgx%?YU#X}G8ico*hNgwQ;W>p{^{2)cM^nvia!wxa>_UaDZY2@VU(apDHB{C^KK8Vk5#Nf#+dPcgilDE zcoNLt&vy_BKpCvJq#W>?#9r*{7h*CQ2^A!3p{aD&)B6B_IHny~;gsgxc%N>MpWtPg z-dx4{cCj{EMtvn(H(YP`vs*s{^BRdL>ss&KOU1zVB+;k{sOU3M$Y{PVf{b<3R&rXm ziLWFk5|07O>4}f?mkRFai7DZsX^H$M!QDK=B!sz#XesqTo-!BRJ9L*hemc=cV03|_ zWVXrJwZN*#YZACt&D~t{S8%;>3N+vdFdz}hg`v`3M)~iw_$2*#SR{d=u|6MCCb2j0 zs@MB~o1Dm7DX;oSUTPo~@<+3}yPu1tG7zm;%!tc-vM}{Ne|{(c1#;z;I>W(|0>m(N z(WoxwphG$M9|j%tdvxOFh}bRHCnuSfZntOd&YmAMRF-_U4v=QCGr!@ZeB%$=g>i~h z!Lo2<;)YN{$IHne>Q!0xo&%Zfzp*}!k640ddbj<)f*(lvJszviodE)^j?Y#S8V`F<4NHRgfwMWJ8b-*$!Qn{&- zrQ91>QuCs;`?A6jjjssY=NUOx-dlbvRoNX+Wc ze-q2oefbti<`mD7g<5*Jn?GqREMaj)Y_O+;cs%O_IY6JK3vCKT2Oc zs%MF2Eu(rusHtkMw5vhb9caJBU^RQYwvmOv=;L@4Sy9nVxOssMg(Wj~4L>y=u*JO9Kg3{RjDKg z*&`b`spOTB%N>nV_jHLCeF}9wS58a$!jr}fJwd;BnuDUnlznj`$%@C$TUXE!)v+M0 zm}--EN8v5-ZkQE7B9-)TLebve{3fqfxkn?3{{aGlcCT!B7)rs-P6YQ zt1J6p(alw{RLSb7MKFpK|NJJ_FCsm>1+!ez8okO5B`sz9TlsUfReXYqG_H4KQiim8 zcrQ&QQp|xFr})QnO+GwI6v3-|{qmG~^tu_6nkze7 zhEPy5J_5#8ms3^7≻EdvVD~sj)oDMr>}4K-P2tS#w#n?vuPek?{a_#&u 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 K$!JuRnP9vmw>P$~KADdSNLvYl>Au`Trh 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 D=GA3i diff --git a/Tutorial/images/DataBinding.png b/Tutorial/images/DataBinding.png deleted file mode 100644 index 2c79979f71831a439628ba6c311a03143649b624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9971 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 diff --git a/Tutorial/images/ExternalLibraries.png b/Tutorial/images/ExternalLibraries.png deleted file mode 100644 index b2d70240f2ea01ddec44bbf1a8b5c46215d92841..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21492 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 K1;0p)7Le#bkyX7!}oaGmQL_3N@T6YokP2 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 Sl&c*mkD;EiZjH9%^Zx_l?W~Ca diff --git a/Tutorial/images/HC_sampleBarChart_dark2.png b/Tutorial/images/HC_sampleBarChart_dark2.png deleted file mode 100644 index de42bd06d1890bd6ad867b60a25b410ad40f8708..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3043 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 ARsaA1 diff --git a/Tutorial/images/HC_sampleBarChart_white.png b/Tutorial/images/HC_sampleBarChart_white.png deleted file mode 100644 index 1b7eade392cd2bd8b2295c3c74a39a2e1f85a46b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3231 zcmeHJYgm%m7N+Z1rgpL{FQtwnMH)J4cq1GwQ%o^G#Zj|kr6_8n=Cx9!h^#av6+LNX z7Xhaf9q*cHsS^})YSj>s@>8{d~7h zqMTH=YHbC9Kq^S*V*m)W&PCB3lr|_Vk0?QY3bif?ROs1L&lym!rbIe*O9l8#Zj*xN-C5%}Pp2+qP{}RaM=-efy3bJJi+HckbM|XU`rj zEiG+rZ5YN+1x31foK2-n^NbnwplDmY$xTk&!_nkuozgb8>QWb93+B zy_=t(fA8MCf`S4nfl8$jA3b{X`0?W>Po5MO7E&mbr%#_gd-klPq=ZhVS5#C~R#sM3 zRaIA4*VWb4*Vi{SH4zC6B8^XFQi)6kktwJ07*rmg%9Aq)L_UqkU=rm_BA-W<^QbK? zEerQrZwLzy+)UNRUKqB4 z>OtwsVRYq;qv>X?CyRr>O;tV^ao}L;)`&vS^m3m?`uC;AU})Xw%lRYxrnlb--kxTa z<M_n`l)*T>NACuVs4fZzKj6z025E4R0 zqWnAynz*>rxOW7bu|`#&x($NS0ERg4@VKGnk%GX0hRG1Q@Y?O`<0Q+9TiN#F| zB&(J78z#!!YC)GHr6hjJg9}NJ^bG85VdJcBkaJ`rVid+NQ$3(jPiKy640!kH7OY-T z8{DfuFw?3@DTxkIvU9tZfg4>KZuVCfQ_5nTeaEQWbiw4fdFw)L%3EH`?zHA@fOnk< zF<|*!ER8MNC74wBS&F`xLTbal|8Yz>H-66a8hO`{ZmHPA*m_ku;Y75PU{lGvREgTS zss?a-b_)q-;mF!rrfj*4m3;c8i^_FEtO@9>pe=8Geh%uf?*yv%z@_>P}rj|aYOwrFO+O&~v62nD{l0y0WdF*5Hka@oYL^eXuh#h;*nHiI!80KBGlC_u3u|Bjiy zLj6PUx3#Trkhds8sNeWU9Ik8O7_I>v=+MVFC=~Qhmg;L{w*X&`P&|kF$?owKSAa#5 z*qta#BU=}UxNdjM*q%*&YLox+{THVwch;$id2+HBb1iFJ$m-7;?gFPcS3q)h??=cz zBt#qe8$tkB769|ijK-Via-8B`lMy9sK=L!}grM;GITzh-bit0If8T?@XNz1kRVrrk zhAf%Warj4GOqtp%@Iq-dQe_*=!AD!t+?}DudTlLi{J4GiV|)U4eTH|(gMzbF^{3$g z6^@ZUt!BYSN_5+WNl%r`rw@Wi9j-EN^V6QQ-A%Zlz)h&913o~juuBkxRUD?=T1 z+73oCpaK!dx=?g@>A2t4e&ILLnuM=B3TIPL^HvM^8H zg5l-(bu?**inK<2S&EDt)T%jzd7itpSM)a3e5$Di?F#kCuV~me9ORN0|I_Sq4kjBA zmsXN%l#b8N^#9aMd!6^7!lwLjbV9fGi4eg{OwA+RD*T{`Wh29(sO!=kSrtspJyohq$RC4?o^^p0V-~+=W z4P}SGMSKwppv}G;8X6p_aZ3#monv)`4FmC?rSpeQH8xMH#CPx49+(OEWO549z;RT8 zal)pW3WJ8zVbk9}7pTMOH)ev+s8Yir!{}g7TAB%Xw|j67#W(^w=q)S{WH;=>L!N3b z-hN=5Jk_IGJN6xOqc8^|!$;(P0!hMDV0Rcgj{3@yl0s@)^_-_CM1^9&y7t#g<1e?NK zL_}UvM1)A*!Pdmw$`}MhEjY;?S_wm@#${|2N-ddeFEe2qA>MHm#~<)jA&gi^3`HJ7 zNnS|4QxJ{m%MVK8Vn5KhTq8^jd5CQ!p|!KNJApU8`mwY$)3UO%oYT_N>_t$&s5A@$ zg2+55B2rfF$wk48rHO$wTn;#S5M)Xax?Bo(v0zJejdZYI&+e~x)yy!t6?@VbbeeB9 zuWy=WE#7%8Abzx{#|QX3m;vihAmima8*vjLdXFevx>`>6SUSRt-lW1PAhZiuw@aPJ zn)8m(($+`w8b?HGpFo(w!Y~e?LF|Y4UCUDl4MMS_rzb)@po54@abQ&LE-Bo>I~M)- zk6~e9m;S-SVBJ0=^Z2}t6z=I}kjAg+wy-3h2p8g_U=nXn}CIQ`k?TZKPAJ9i74U8lB5!6N6kxJ^qU?c|FJUmXD5O*xHju*eTr> z_c+VL&FJ`bI>){fP3PB1TPkWf&WWvM!xWawb(jO|OIPQTgsN>Q`0)w4Mg0(>c%Jl< zN4>R)Th-2Qey?7N`3?`$>>&BNk?}50x`g6>M*QZF zG!D5;1l7nZgbf1$+Ilr|)nA$Q*;^1St^@fV*0hsjgZ>_L8L_@| z#1FR(y1s+&Jd5s`1C8HC;$O~cd3__~7Z2VrwgsllKIHERBxS~(p61H?O zSyksj{U8EwW;S$261N-da5wSuU34U56(Ak6uWdEnUiGW1^ z_jZ8IgHf!93^xhD2&wh?zYt*>1!&pfVfat2({duy`cS;^o z30ynWMhH3ArkKzJJW7aVoMZnJoH(ldH6>CakrY}%(4=r$u9d=*yiYNV5-~NnGlDam za#&MF zImPUwHko>`d#L@BiKNEAG@u#4^uf#oJq2+Doh2qF1|+5@jwVhd_EB0=5-LW^zmiU( zlKl`DwKZV=lQ=KxCG;#TCQBw*Ahsi(^i}zrbHX9l3@;m39Z?+;Ti7F!Gt~{<;g>_> z&)lEQKf|Y^q?54Lv97RA)pBYGY4B;-E+Q;m)gqfy?CWv!bK`R}G&wcFJ7qcL?EkqI zz81gszizx%J@7pEgl&eijeU%>i6ez`${5M~FESufJhC&=J(2?(8poH(p3$7?fzg;{ zhN)HWv2(b$eBih%vrB7?x8pe?I72Lk><3v+LD~)rTxSlWb`$m`j*xbk z4l7&fJ0|P1n@GF-Ju9899bKb_{pelaJEw+fdTF{X`!aep$DXp0$BMf5hE)6KM(aDq zdTe{!bKaQWG(jCe$v}Pm6Tq~=1R#PT@F9@l+2Lj3nc#6?$>6lHK4TSP%%Vi2{KoJh z3&2!BgGHnIbbu}vHW=|3ksQwdNhFNw2jq{Wh?}#{V}(`prXq*2SWY1=XiblP z{GbxibkUmbPm(^8rUPCB^aE>(mx`T=pMI@MPD$ZP7fIGj`6i$yUBpu*xsyp#l`&+{ zE)h3VQjqVFxQd_F@n*H8J?lTXJRm}f1%D0Z4#pAl5ku}_?)gIIK_*>5A{CRwG`Ki8 zFlaqkMh!V=Tv4<_6mzOsq`99C*x|jF-%%Od5k(M2T7l9=(#oo})MHdfR<&3M*Hzb2*QM7c|6R3RF%~i1viWXVV^C(DVfr*G zJ5S&HdnJ2tb*8QNH8k+Ih<{gc{;w_2z9QLjSx{NJQBG6OJ?cH&^qTR4_bPgsewMu-xwpLk^fU&&50QzahQNxzi+fMfPh8Ax#xnnN*Y3oicKOOmQWJnQoY?@0!30-!qVc>L_(F3b4G+sA&qWKhD=h7-bOD* z-Q#JJG&7rhx{vx3@+T$a@K< z(xP@?IHXUe;rB%IW!~N1r<(dsNA^tCCp|0oltVx{LtnvQ$S_3zq;RVJx*55f)>MOM z>Nxhw{mJgsIao;Sdx4(uh5PZt{8hrIV+JQ}r6#rSJsL@xbqe?zd>#XjiV{%`=!_29_rn;-UJv(WC65i?wOle{uY-RSiaq95O^&Pi4zll8>-?u!Qo3ag9qiu`w zZoZ{A#%9U9%6{~|fO-15109EalMk2g+UwNk(QDniCgUbE>>c^o@JeME?@;X)Zdq!g zVbWwR?ptU(YkWJUb-%pmwQHI_W~>|3&gwPuyjZi|aBj}zV1Km~cSgHbma?6^m_nB# zp(3m@>$ClA^x$r;Y+iSi(p6bf*WkSTSb`WAHM>UM9?BuY&e0_q_v=Iz6uVKrtqsJh z49ag37KEELrVHKmvT_AXMAIA^ITIrd-JScD090C%nEm^fd4PG& z_z+7X6X-5cvJN}s?G~P+R{F9#?~9k4k1;4kC(%z7eN|Lz1*8eFKN6l&-GQXjq*P=A zUuUF?`qc(5`+bs|$$Y)hjR3hXb> zRLs!Kjd5_AePy0xG-20aJz%O}q2Z{kGONj~>YcBeuU=GG>bgBbvXt#eTMpirYD8|e zU9etm9oynRC^St{4Rei_3#iP=sc3ic)5-(} zzSqquKyLHpW!-OGD9I=vBV{_Z*6=_KM>2F9Nycaw|L-sw;GhO=EGA)<2#zV)OCxmc zccr)E-%vBtHPW zjhr<1#4k9kOFfNswWo79ad5c4Fd*h{;9OIhfHez3CD5$DPz}Q5iz<|I9!k{GI>BC7 zVjHJUrmoct))-gc*;hMoIqY54ULal3T~)#i!||hYGvHC>(Myp(N*y0(3);J1tf9q_ z#z=B~b(EAFm>%dIEEy2F%!1+#0X zf@wBW-8@ad=KN54$;pHT_{;Pgg7brO>+7;h2Bdx%1b7FySp-zL0#RapS}#%qs&I-$ zzCzMlq2;6du%L(TnHLObPGmR=$0EJ&{J+=>cM2p-8t|)!oOtnKld`q59ogzHzD`Yq z7|vb&Ca4@}SF<}6HP=^A(6PTAsQnI0reE|T1wN=ac$S69;ys%DSo90!ot z*Vy1`NK84#=6WYap2M#{w%AP}Re9^#?-;V-TgY1+z0{wDpHIMSz{&!Gg%yS6f?h=J zh-dOb^1d6Sc?R7%g?mbZggFef##a^?#MWnc;CxRrUvT1*ZNzf7d~gpI3D*iA>DL^p zb*P5RA2e2`oB8C~dh4Sgt=LzRV$pAoU_owSZ&7EaY1Te*F}E;XFX_t}AF3_fXYf@V^jAkLkz$oNjB~%;eos}b z-NX6KkI*c6am+h{{0ElKAW8^9v{ZF0>K@Kqp+EOoq4!D6mkT7%JPc# zk0uBC)pI*Frn938Dt4-a*&HqF9!%wjdd{~6By3c5zlOq9f2g);zi8EaMA>Csg$&CK zh5YIbDa@f8tpBGeZKG>x+35IWbJw~94Run_ZN;6^9Nui4({jkQcr;;pEqs)8t9OpO zdA{s+c6>Q`nEdAY8oETSM#{q%7j9IX1~P9B61(QVod*7OH4M5V9t}j(*bnU*l2RDi zPpS7cn-IleQ4bU{7j)PU9tM;uH(#p+C-}7h-+aVzit#OM^>0|a;3|-s0oo$Ww_zEQVc9fSHLse@8kZ_AlO^LAmvQG|r$c*vr<-Nf zquU8^>AZ_>4|-4UOM=_9oBT@-SW37|xK&(5>_@U?&OG*T6nxYxc3FWoG6mj}Ly)`9 zNsQjg4-+*|d&x9c^y9k2r5cSG zN>?YB7iAtdtaDhl-`Kx#jMROrldYv&HT1~68n2kjA1c(`D%oa<+k<=g$>59hb1fb@ z=S7giFxr70KgTGk6KMx=lA@dZ zA0Zq&PtPIU2rB$W1(Eec8B0?2yYC7({jT~DV-Mo$Vx{BfHpR|WDYq$4QE6e(6E8#^ z3{WwVXV^%6y(Q2khQ2O+GnKnbdj$c{-oVJ`+(Iv8G$G%8q6IC#F27s&H~+8@$|c2# z-{{Pjubd2?NZ`3=fn{ZA*+1be%Qm}uTqi8@S+-QSfP0mDBfexlPl266D?oXM z)CT_vp%8D0nT-A&RuB#!}aJs3jc3t5cKX#4M*o$>6%=WLzJe^x2zVP zE>_p)i1mLpXTdZQDp9jWvtw3X&#etdzN|#h)BT5gpaz1V`ykTmA@{E!)t5Aa;BE-w zvCeXS5MN}>2ooWagk5u)Ft|3I(Mn-vpjkTj&+%D#xFPu>?Emq09qOH}Pun5)e;Zg$ zkk}|WpQAj6W&D}O96%}aEIA{oEsQR5Bx)*ZJFM4ZHvFrf_8;-s;b?LP!N|sd`H=Cb zb+2Ks<)CS=E!{djHkp%BgUa@w{b2$rdoftufhom6=JM)Qhnq{w@MNhmrRqEG5<}K# z%ioq6`@cvCtY&Rl8Z756YfTIc7LDlj?R%vDH4Uir*^GbbhCTD@nOTkM4g5E?vedJe zpHu2<(_s|rY$sQ&J|6*-(toi3OKr3vE=WT14mpuxso+_vtiNh(o4X~}o8qotVU0J? zD>{kg@Nn)FX|Zgx zx!ji~c~Fvj;K&kVYP!div(Wz4dq&$%jnw<<)uyq#xwgg2DcHN8!_&dp zTE=7se?}3z=ig_-9U2;dx+n-?4Z=v0k+B8|+JOmD71!R_sM6TjXip%?9s=4x*m7lU z`c(cCD%a`=7ujv`l4fUZP3;xlU$AfXU-ct5u!dl+q~@e1^Nrik)|y`5$kxD^-p$$$ zP*MN^;dSE%e6==q(kF7Wwz6^LcH<*{Z@~@t4*Z#cnCQKUlO-Rqnv6V=h^>P$5gR=# zJtHwc91#%_uY-{Zx1y-{f87CBe8gr>PIlZ346d%O^sX%QwhpEYOk7-C42;YS%*=Fv z7Icp8Hct9(bT*D8A4dL{9Z_RPLkDv^Cv#gHBA{J;16yY&K4N0vK>z#S$2^VQ%>U0w zHje)-3$Q>2;2j1gdPau-Z5z;)7x*i;yt$jPm71uzwXuyOU<`g%CKlfJ_W!Rt|7XPi z(Nq2Z^kiXU{hvMm$DRLr@-hGy@IMyxv0LxI0=A1Ej+fzoZ#_R8qqEHn2#6qvq^OXR z8|ZN>vQox@_ukV8yP}7DMhdA4hd;Z4#>96T+1jDzLU6)*LH;IpAu0pvamN|-L3wjyD!hWO-&QD`J(PvpX3?g8kjD$lD92B zs+2BjMeH$mch^=40T%cM-~Qul>!R$=`&A&PPh#zXZ!8~ht0>3k@%Cx$&4)1-1Qz%a z{0sYBW5v<&DCr0B74RXF5oEDn^}ZvV8ha)MMI!=y{L4{u3li9B%TwQ5=#hYikBSp} zk-y*V{|p)~J3C%&@X<61f|46I>^$wmmL=dyU1TWy!!|owKhA^#b#&(z7nJc9%)>V@ zQb90MJ!~+ptFmz~P0(X@BHi&`#K08%FCV5!&-rhnAkJFv0*4#=T-GKh13Ei9`vAoV z;`jUW3lP;72fRd_VsUVL6`x&CX}|;!;=Hq%#sTTgo5$PPb<>ZX=tg0qvQ`l9Op?xYhU`SlFYN-#U7AQ;~7{ksK zRH4hNU-fu;js8Y+!&%*q6qls#gyaKRup)a8p7goN%nnLAOz~vZN<-+{1I6=@8-=qt zLA!}Sa83>Tws*QPy3@bL6F8x&3|ONZSMC@v6$PtHkuk=9IPKR?H*H~)eM0Ou8rj>E3dM3m>4hG+TVkXmJ*V2=)JfvMDNK`My=ig+)h< zUZOz_4sLH8z$ZFniK_BNDR_CZxF`Oik5|Wh>;*2Y(aZH>FVug)t@4DGcXByfcHDlS z*$DvaOVOE#@jwHoWP%e5t&U@H3Baqr=(+n=JPzz%fjioq0wQL5H_9g=3%pvA^~0clM!tYoI3?plW=MIkxcxA-{@GQ8-)(eD?Cfs^&u=$TRazFKTC$JXt9@ADee4 zO;nZ~y%;u>!q9a_IN80Yla-zwMbuu4bn7JUNg_o@lbZEgNV_qBCcDdy8=1szD#*eW z9^+w(eHs+nCa;gq{FEL-HGJaO8&qnB%IUOzYqvp;W(y}fu%Zca1<{4BLK%W0Q3^LT z>SwhgChN@d#8K@Q6z^p66yJ}k5`uOS@uoi~JjL|@pGx%03XMG}PEE62ac7NH7X*xX04dmnRIJ}TP{ z=A|MqRihzz??^gM>zUfikfV0;=YXocJ-`2E^=DoRbG0ToTWV{UZQ9?o1-v>%hb^-d z$x(TOi?l7D_CPG-<^>Qw_9jM{sBFmcAbO?Eo5$NTW=vfxLm))t=BDGC_7D$i7&)Th z$J2Nm6-_jrh5y<@fDv){LI=_F5V<;9Go*Erb=|J|J+$e@;Yz64*KT5xAgryg$0IHe&auX(fjHw=5cH)CxcOY8v6;Eul{2FTI!AO3C4hSG#Z2$6zQI;{U z&-5wq*4EZ;ds#i6w>HEm-Ct~}EK18MMIl}#ne@Azo#%bAWPGT8&rht!zho6+LGT!n z^tM178@vW7NlU=9PtPr#^EcKn4sJL7MK`2Ts(rzCKI*m5%~7#PsQpD-Ip9l9YIm`3 z|I0Ob+QK?s*0g{c_8qHkZeZ%VIy`o{1QfCjXJ0tsEI#AP=l#wK7Pn{l3oSEZ{6nX` zR5GOE6vE5ju~=cs81}@1u{3HPBU_ZxTs&(J@&_uhkbl`8LgtNfH8Ms(qZ^?{sUj67 zh25{|fSxqTZ*rmf^zpTy`9^fsLKcZ@e4+&p5h&>FZZp5mz?NLe+&5{eG*HCy+xvnL0cQ9|}HpK+YjIgDg zZ?5(_Pm+f>mtUO8(HpV=65h;0pmJt`#<_H)L?w<3r!%R|CGv1dM8jR@gVPBBY$~?b z+3Z+}7EbH9GsHYcj!RPwVJhBX??T=5+ z9mB6T`_Am7=i4ww-g0{bh*5MvmI8srjsg+uGh_Mp3iuu?hy)<5?elF1GayFwSivyx z^G9HwM1Z8l_02CYp(|nNCy*@tCSc^9BH2lfk%2b083Ck)Bu5`A4s0k+A~?ac7+EC% zv=Q3{U`Q_BM!e7ezXxlUcCtd;KjEv}MOree>HL^cGCYG5j-p;`sdZYg!w5M&>%STpt0J5y|HyeQ z?NdzzQ@J&blC&weB-&nQcKL)V+sb)uL`L{#{Yer>csk5&UXff+-{UMCTpYKrqQy+< z{x|LJ^f1@_r_Hh`?VZU<&jo=2NHJfd*8}tO>lXmS#_?LCN-cK()Ii-0;ofi}=p9$W zOWKTX60L4te$tEjW^pkZ4f3sL#thSSTC+#Bu9ZBXCcv*qeUNoaiV_*RwY3-~Ca=U) zJhNJiah*3hE*9SgHM1WxN5!@8Tn0mxP^9%REAiv(BBJ@f;)}kTG5(qdqD}OD)HrMm zj>(S*!+t(csyTZlvnaQl+ybR7(!}*sZy*!h#^^or&o*Ad2-W9Qm@sg8vS@{~)O*O4 zK<2vNJD3$(g(FERXMQR-+cb8bP^i-x+aG}l5j@0dPB8ab@#XEwl52NG#1G6LY!08Z zR9NCAM}%r=Ysh{|b@#6yQF1Q)kku{VB}2{1>G8XJ#=1yQi`x{dE3*ITq77fgY1QFn zq6HHu@}1M&h|ufRqlDZ4VS&l*CC%MU4hS65b52+zZKrJa-6^|9Ei+5YgqN%ynWt5| zOKiMC+%JuChd;5E>f# zY{hj6^xB0-p_ou!gq0Ha^;R*+s}HrR)vv8^a2l3H9Wr9H>x?Vnp?YM?bc?%y&3WKkI8lqbF)p`BLL`&A&(g02M6QSba83z< zK*k-zjFL?D9(XhI`FvMf5ipnAOJ6C2LwLW zA|oLm1{`Faj-yN&r&r91(^@O}7d|uEZQy;LPSIfj+7XOK>*t#A?+Iw}no$k#|L1)} zg{)G8`A~}f<^8bfR{-Op;HGJkun>`%d%2}5c~E0inp?mD4&+u2QGLqAT2nv9|AesW zada|Fd9q3$J{JQaIBrz8J9mX@Ji%`nB!v~>@fX7Sw0EVw^!V&4|`w1~lXG1-{p#_#F zxChVe&+$BD>Lx}=xjFYHj;ljMfNOBM zjwz=~A2E$9{xSbF-OnoxYBf}&@tSR^pUC076$zn|V)VoTYypErn2aFL@HNP$!S13)? z9pL_YT3}1W+^(2-Nl{)0#El?p>%YXQSs$naHj|qgsv*W^QivPxl~=BcewCVk+C!(L zFPoUGa>CS^p(zeph^uL+{>23vyh4T*J1@(?%w{_+O9yeH2n14F-V zM$tCX3sTzPWcWcBv)*A7!RC>f_|m-0=bqmjbM4AN!rPr6tMZ=d3m{Hwtq>*%&3sh)$t)~{>(c$Gc&)vF)uIxO-;Cz$yTZ; zLWw5eYyK@Y5`5E?8VOBR{dc&|B_&Rz*?XVAq+rJ0M5#h)zLqksp^nIXH#8?ymE-x^ z?Vy2}zRudEW647+qDGaqV?`q-fsSK>m$OwR+x2}j{4b=84mQHel4ojqnRY~xzf(aLu!;o zh~mu<6p6re29x5AvJ}T-va%)i3q|;yAsk}hYGo53)Xtb){9Gtg%vml~`3w#uo?{R& z^%|$??-m(ZN}ed>hpP5&o3tTT4Ec?X&`Bd62L)*$+;#a{4Epo45ryQEmWoq(sf`3e z=KfyreYz5JRbX-nxc(M5(yNi8tUua*)5%tr^sux)&FmoxY2PyIKWsda!vARVx5Pdy z7bB9VsT-1PIlB6qxLfgA;Lu`8ZBDxCHe0;r4NYsZa3NFBu7%L>f-y0IW#7_4(miFi z*~p3D6;*=^w=f)-XhM;lf2cH`XD=POE6r~<3q}uAb`LX66+E z9+V#1UxV!b_+F2;W;>@59B;He)f(5q)$RyZY#p&w;7&b~^1p{@`mjbLlMAP)p<;G_ z;VzsFY6FtynGIZ1*=W%2+`3-w%*$MM>ZLUiEMHRpQjfU-S&$LSKl6`MWN=dJM?gFu zDL9LSW;Khw^})X`8~~m^&GwDX27>Ny5`fM%?Q59cnR*4HHV~pP=Xqd7#y_9pgT1l9 zYMuT8CIDhpv-7n^+o2tz0mE* zjyYQ}DYuILNcvg8LeR3t8dfrHF0$<<`=xm~E;?YnaQSlh{IeN+pR%19-%%4Qcngbt zNH>-9`?ql1$rh*MEppt~;?;pu0k2~YAHuHoOZfCpvb4U?Z_Q_S7ldz1WBEt$Mfx63 zw5zQ6LQf1m7k7oa|5o{$)G;2$bjADDlb&pYxIUyXf-t|IwD``XZx@Hk2tKb@#QaSh zt>;O~*Zw*1naf7k@rqGd#k>p(=&H(HCU={5cW-6bKp1bYzo(M19b2S&oD(I#A35A! z`%#~DBq-Y0*}QWM*}ljP3^z$6fP3B0wZ#T`=Pee84xI&fQrbJi{vzR{iBv zdFLZhwmrc=3Kk!qtCGUCu1bqB!tQn+X9$($e{=3;C$O(m22((`v7-PL$W(zaprR}cb=8>7S#SwC>bs73%&Nt0LSln>g=U5((C~5d-~%2jOe4oBV`?6 zwQ7ah(D4@%TO61L31Y#toE;S9w7sk)JRgpLX{tzmfY0A=BYBSfI_5tuh)WcZ0*NFH z`~*fDeiHyVNAimt69U<08wHpG$&iN%1AB^708*ewgg?H(sm6*x)RIim2s|nvA%=;3 zxB??Js0O!q7S3%15SF`_pzN#<{5xbwqFPk0O4gSA-&Ulq?BKt z;dGjQJJ218paBzbuv6qBeRo}I(C}yl(~uXS4Szh+SmgJFA|Jl9Q3``@$eO^furU>qy5{KI<<8DTOa;`AO;jJ zZE63~n&A^74#lKA9wL&(XD1ac>O|n*RzoZx$c!bO zG>{NVD(q-s#of)s?#BPpA@}Z4pn>T9O$Gl`Mg;_gGWL`P>-Vh;o5i%1jeLQra*Gqw z7XjI-k@$SHhGMjYnrRk@6~W<;;FLcLYM_EX&P6>i^-ozJVk+)gOHBh=2=^Th1k_@! zaAujqAu-lUIW!wU)069UJPZF2hSmmbMJ(UMb_h3P|nv&f&=Cb~Zo!%ufOKKXk8p z3NVVl8D)(m6N+$pF-(d1%amt%?y>Y%&BK2zItwV;LWkfXZ)JPrD}Vmf>At?G{=wMm zu;@UQ9G!qL@j!rME9i~k+o|JPu#=y`@^ z0#O@3r_|1_iROx;-;MicNp!5|8A^n7O&!oT6)Z|@pAwgxTTu_W z6O2VC$IOoGdxdQg+N?my6uc^3rSkyxt!~WlVKd@fwosc8uR}hUU@cuzpsYuF9W~Sr zsqEB&6*VicvX1aeg~@+nPBy83xd!)P2fc0^Lc8x*^qdMP3s-!hMmDgRhB6m!9{Z_n zl=>OZ4eLvNs3UG@d+%YK3}fOJ_9S@-pr@IQT-Lgrn%?0lCln-5IQ zj8MKqT60b>fER6l72QMK=b>@M{k7RkxtkzTY+0-CkO$>S2kX_tusNMts&eb2q9<;B zmr*=oMwJ$s|MmJ93cua>KS|O`;QuX2%1BV^ly2O$!Lpf*y^8wP-u3l$zCPAnTru?=_}30HK3nE+fRCQ=w?HVl z=m>Wv(K|(#nvT;Onp~jVeiB3Znq!dA1?2&gU*-(as+htckH|Kg8Mz)#J7aH57yN?| z$g}4V|HFaZ0<`?=M;QtRN8&BR}q8+KbGzHzTxZ*!!{RkM~6nWr9jj zR~3C(;0Z=a;GTu@RsBJF!X4rVtrYO_FOcb_x>kB0=fnBjQ?@>Y*2}+bYAzJ?EdH

    r(giCd2^}``CIqvwXql41@nMrwwwc{c-Pp()9UWk$Nxmje?@> zIfGE}jl=I#_*xH#YPRsn*vqfv#~0UEsIj*T%$BE`vCXoaC(_?7Ub4%ozF0XP3}9Cb zuf+W1^yU79`j2C;a!#*eqNj9bZ&~8cOS($hy`Td3r}e+uV)EVW!9u|WZhPdbsG)fRFB7fzDQ~rY`8n>8&^j+r@p9g1DLzFSmu-Y54^LC+k*}my zIrp5e?B`Igb=yx{jS!_i`2=k7M;!c5Eig!okB4RPw@|-ZRja7=a_nYv4@uVgY^8D7 zPAb0<_MN?rR{p*X_3C^<-Mcrvt2jtc#fQsU&rX6$d z<;dI{oIw8*=i-ihM`#XBmmGtHosAB2v9$4!y%z<^S@YFeS4xIYwxEBaY#G!3q6ZQcPvD%NfghEqa+|-UF+g8FpoqOc_p*h)&vQ-bS?OEuw17F&rF`uWHBEOs$wim7>jx_q3jVtLKfzX)OQ_~4r zik)<_6X>ShrAqCl?t-$`cu%d-_S5DOJjae*fBfRkZT9NZebqDeb(aGQ(e-Me^Uu>%^mc#S zt?napKv}?iul~GC;L{&m)fgq|*rpT0Z$#I~9?c%4?<$WVSd0{rW%6jgQ~BsahMo7} z-o>9C+pYTV0r@j`uXjTVATJ!OXM<4ff5)!;5VaA>&zpbCZ81a$gayC7`gm#iBtH6| z`NB&~1?10CI13b~^67D;W&t0a3z>foB_-v3;Mq$JGLFSLA=SP5cKfH0$~!pbv0SmW zmoIHs$nY@Ud#JRrXV0oy_m4bZcfCR0){uSu8tdP{a&TH-<-trS&5jZNQ#_z_bO5UI zyx7O71Wg=UH)V-D4R7-C+QvL4AS`P(Nay=t6GSK;(?P8lq*_NOF-sZH^BY21&uPvWbwtSIDFf3Jt{ zRV7orm&u0$abzs(F5cx07f8^qu+b%3UqsuM3#iAZr=J@98NqvpQgK=>aBK63bnd`< zG+o$_@*yh;??%jstrzTO)RaU{a;PPyoT}Vf*=-T!;{D-LWAt<{%-16(jAWIsv#{50 z=}esXA$gQA(4Tsk7Xzi9nxM8jAh|06@Xw=Ir05F6P*5AXsw9NK#J~@N85Udif0T*3c+O}| zZk=y*l0eH^zy1C>!|Cadxof0hH@$CMo;p&c+z(q&p*&%&#@D^Yt z#9v#s!*0kD8fki~8}=?aAb)i3+6iVi&)ckQZmya7vt0gPd4vq-1e|}zUSML*1k=BK zYQAr92P#T~%~cLoXOFgx{b#87QOL7Fh;>0>aGFri6tHn36g0%B__u<4WENKdDSG23SQA3TPo{wpC zm_V?)&H!K28kt1EEmCR)k;7j<^Ky3fAK|lu#SAOsT;zJ3f2`<7(`ciuGAm+5>SraxO`x9e|#Z8d5WYkEDQLioBuKqAa9Lw-=+jYOHTqNcmMc@xdFwy3dRA@ zC>;z5xZr?;%%cMMkH;W=UJ`iKj|fOyms2I81Kx=o!XKZCTdIf2-rW26ON-Ou1`aoL z%B#a+ACJ&qaRh`carRQ57JOrC;Hm*7c)+R$>M=X$eXj^pH3<^E#GKD=?*s2e%wI~L{vko%y9iD zsDZfr+MoYC+ClLfkyk>(-lzeQrW58kDLN7U5C&{h!c^FiS_5>f1D3P^hZMogpV?mjW(@Ba#_#GE)AIPEPG}TX+FC${38t!F|Li zj={P{OmmPq?Q(;1q^l78??;} ze0m3D%s23>q#@mTZpWF^k+CRH6akwdO)zACMJPw)HpBM-@Bh#x-_y2uPb~(e8#T9o z6w=eheo@*-di0_65F`%V4w=oV)22%?@t%t*(V!yK=IGubcb=98Vn*y=MOmC;{Hv+V zKa&y-lIO1ZV&*aBlOI90lP8P9}*iFI$yHx#6LgyT%vYPQn|eF#=1Z@yq!u~Vimne#NoBod=a z=QfN6#{Y3CuaW4sW6~t6#E@3CcEm6rF`=(4D3kFGzq14gXa5*b!&|}V?_gP-Tl@xg zRj1TH^a{YZru3C7jp5FFq`?%ZQt1ju?x2STSVoc+Bj59n;`(LnzQBfFA(SfZ#L91a z;DD~-Obm}iptjVx6bp?Ey>EJ>te&X`cl9rqxm>bP;~HOxR&V-y zuq2J!{bz*a@`6RQ`LF+{suRCvm5gq-_0ph0T{MT+;nqi^k=7Xvi|}-`QIggx>`a1$ z70Sf(fF_G{CZwAH?=O|IEp6aqLhxYxc;Ex@UqUyW01wlgTMnLKA?gr@&>F$ySMY=;8q?@5bx*O^4kdjoo%lFLSeLv57|N7o< zE&iFc=Bzo){LbFjzG64zxe4O+vi|{n9;1bTBxva7Zr$2a>xI+qarM!|WL4PeVhYQ> zz-nHWWp7&Jg1vS-h4r=4(gKUlc2CE;RB6=yE!D0v)GyKdQcoi7;4RieeriFH*;11Xp?? z=u}ju)CVdR-7)cXvsNbZPAHSC3Y5raJGB#X_Inl8aL*TOkFOZaRlYA3 z5Bby!=XO9#W${rC#vB&v%VPgOiaS;+u%QKl8#?fz{6nJ%UGi@<(NQvtIaMnx3?tm{ zs^SkTLW1xUXWCN=cOnlnj+9pEX5}2A+B&7mGRC(`;3<4I2GRL6^ux9`G}d1?SEaau zt&S`oq{75vh(7hH9HJ;`TqPonIoue${`}-}pp)<{&YGs6o zpl3HaNGOQH_s3R-V&!VlxS?E8G2$mgNJQ^#u`;+E5QDXI-HYsAuGs3*f*=#Rf*;>q z#KSOWGWr4+XQ+PnZJ^@hWe>MiDC}TBo)1^(7Z~ZLr6FpDv_to&bwfpLRcsvi?5U&6 zUh#AFj)zobf0gh^Jnih*#UC-d!;X%Eg7E-Q2C&-J&H{Mv)qzR>2CDl(zOeWw zn-!YaT-N6ZJgQEitmmO8406xZKeqLbeS)|Xwx=|{IS5LP32KyEwkah4t_fySoClx3l|j6+VzpG%!b<_sa3- z(;QLXvOf>Y8cD)}Kr2__fRCo`uCxP~9Q&Qk#}(%SZ3HcV&$X_g$QC3SqMe>G^Fzbkbj; zLd9Qw6bzOk=&tOKT6n9d{XQ>Sz7Lye@*aI!xsp&wp`RGDNKcX+^x323cLm9V@~)q# zxkGk~radE?aK}@$yr)#Z7u3*9dl`2;EvCNUEUj)bqd*|f6kC*Q zm_a<7(V9uRrjlo8{u<1pS20<_KSByIUTSdr4V~GA&F#!=h@n1K0Z)|i^t8`vlowUa zE|xe>L682p$4IYh?he5vZ>i^36HJvyhHLXpi(ei{`5!)r)YsF^e1@KTUXkU!0i_?G zvOo!80stu&*T_Sz$V#*jUfu#SfAjgKQkA>r=EHz2lwi&AL@`pxM&-va^}q zhbd||#Y&$MHyDYYRW_kKuW{y5icb~|p5Af3L;I$_k*7^FeXp0gj#`n0QwzqdOV10B zOk?2QDzqKQZS$2qo{N9^s6j{cCNWlO_?$pu&H_G>4`Y~u-5%)$&w-DD&_R3i4$W}> z1+GOADx3oZgyvp~-g-}M`7AlT)pgmQA`?)Qi%zoY{<#WgZK7P#zkudb)PP@h!J%3U zsHG8CY%*G`&`z`xsNMk)phc?2!LF(5KPo6@G53$%z<1GtW zQh67ztLP?LiaYG{O_h-MHX%9}-J5p(HOW+A=n_oMFDtRFp|j00PD4#|zcK>)(5)I7 zz3cR%ZwZcNk>&ii?;qe_GKLIw6KArgGgU)*00a~-=yB)ii11p z!drvrpS5H;oOASChOWO_>R|F!3H;}#h=(MqF>-GcIKru8b$Y6$u)a`X&z8L%A&y<9 zl!O&aBDgrNaqXZBJU22!t2>vFM;|&!^O8W7Nl{X~oCr24y)CWlbXp&A`5AZesWjr1 zQE?VhFwaNlt0h1V! zxiL2pRwQ3DT3I(do|L9U;D?aJf(6qN)`&(WAYb}h-RUN4L&T_#1;L`YVsAXCLijJP z=pA83%x|5;#pPB@ep?237o#0&!Pz0ZbtOrc9(iEMuY8aBWER34gH~D@0-_)G!m0De zo4EQ&>lbJOFZrb$2V*9|MV8_7QTVZpZkVRle{eNt*@_urH{jKh`PZxULsGV9mO`>I zW*xtosa8MVERo10-~wQg5T0laO6d;NA?vAXIunM);6!{|e`x6e1n2rDMccS^WI26h z?6CWcUKRbk2Yv4pt=<8ZqI{0m%lyFxF^qpo{(wqkjJOL-RcPe1%HPqYI}_iO+6W+B z@ap6}i_9=~WV*#Jm}LVv(`zlMizTmaH%|+akh}$7BDY&kUh>^W2ZWXK7t@VnZ<)p^ z%D(4lf@N__YZ+lV7>c+vd{}wV%o8 zm8fnUq2>(F68&ji9Ez0-FXT#K|iMvw{2Ne~o+jR?1oOq^CR9F;(bes62-LY`=#Z6^ShgtB9*@&l% z4Fr$4l7M^rS(S)vbGb)p!fIJHYKz?15Bld*;P2Q#1A{4GcV3q<*SO-k?>)7+X^ePk z^n4d4Pt&Niy^Z>hp5+gD=uNr9WQk@H69S-*==6VcSz})}9-P2Up7elHjoSyR9b*8m zJw7}uzff)wO&{Ls9i7qq9rwx|NEzzO5exzKmo%BV!paRQ@%byf>)uXnNRL%kkGS5& zyQ(v$n>tCo-rQ>&N1Cby)avbQi1*>vJ(l?-eCm_BQ>T}C=9o;TdA3tDr*Z04m!aCj z!Lwrh?90cYMSck4ube`_HTICxbF`%{4KOxECLHbFfO3YW?VZ^@V}t*Jm=>?`r(!sC z$V%z}H^skpG7x*AT&Z|*oZ1fq|H{%bqXS4iG*2kUrX=QFBP!xE)A{*leeyt&&&?6X zN;7@sLXgOko*agiwYP;pot4!+N8;5$O(aA<@>^2pR?%d@--=1?KOqbDzafjs<_ltl znl6)33@C0tM{5|Oy>E-7a&gb?#-R4jsQ11Ra!z>>Jq645ALIJ6F+E=9-hwH4dbjdO zb1#)o5MvdgWCw0e?gBO1NsWiz$5!wAK3qOuSWN;`BVI8kzVSfynQAn1+p4uc^pCu~ zC~__c86}LOj(apM#!W-p<2|&vxS1lur%G~E!{U*+r*p&{tRd=|cJyN9x9cD3Mfpr* zTnu4E>z`ROOWOojatcxtiRpJD%~Z&J!q@x3ZYv@;8UDX!EsBSEf0l_bdjADz$T`Jno1K>#fW38b!Up$A`a%V49{+(+Z?t?wxT4O}M{40%`*s8SZf&hXcW?e=T5<(yO+*>KM^2q?Tf%aN3u60{ZN&^} z#II@V!tm#Fek74IpcPmP$Wqy{-Fc#+*Ux^dT+eI9F36&rxj6VJ0s=Q@6TKL5wlgA7 zVY=v^Jcx24&z1gN;?4Tbx*XQjMh|FQ)u46TKrbLav-Bp+vVO6GBQMdS?u{vQwk3QtDFPVnz^HyEekpOu!2ZdaOx~i{|f6ZnQBl@Q3B8mb@ zJX7xM6oqSS3PmuYd_gGzTJ4$$I`R&lYA97vwivP?%qMe2$}w_wBoMU}`R)M7DO1=W zOKuU97-@vWUB=$YlLyAB>b#L=W+x1TOWCS(L$)9#pJpA%6adafTqt8rp6Z?i9Yhl4 zN)%tA)*!A%w&3z|<^`m$y%&?L7RWjx-}1c`>UyNIhl9>~9=gH@YUfW#(Wt7yAjjc#-TgCwruh(ahIi+K;-o*@iT;(^CXo(lR zWn&|g<}N~7yim@A%v{Yf-mC6vIZtHRU=%&TNLA8{jpHEqCrQ7IPTKMEF`(fua3CqsBs>mu4|lQ24!F?`ai(Jw3s$b zp72R%)Z6C0(V7_1s?Mey_y4&rk0zOJQvU22hCO%}K$|KQ-WPhoI@9)xAa{s_v?APr zn;2!Yk;?v2Br#{>t4K66!iSrOL9-ucMRe=*m+CB5nr^S#NxgBMlvuUWR~%I7Net_9 z#;t@^=?d99l}e&Nmm(@kBuFE9-r*}z!Qu4nu&{i0Kb$>^z<=^OaVvD7CL-HlfoMVu zJUKRpZV|FIeyM>f>O^%(Qrj=FWGgag8YF|`(b@PY1<6`D5TC!=BuY1B0srEBc+h>Q z>6EOlbr9bSS>*`KD@RY;RLPO;r@1-<9+<%~I!7hIP|Ls#XtlpaJ$69gS8Jhwg2IRP z%O)N&ic*68;%RPCkiqo-a@l71zq2^?SaD9b?~?jId8`+-WUF|+ z-+c%GuOB$Q68QE*Az>Jj1S5+kF}R;wn~z%et3aGOE!c^n{A0!O*!^VMb%%itav!SE zCCG9475TP7Ic$(5oFnb2L02>pQE@rHz!?m8=}!p_X&|uZ7t>r;4$mZ*s%3muJ4PyS zO7dx{NJEJhj%ll+f4R|8wM8?qC`v<-Oy&b}`1N6o;J&xn$>ukzRdHTPyHb)G_B7uL zGHgH)jX;WaQ zXxT!>V!_`GhPC7neZJ$6)F9#~JK8fDLvjLIr(Fl4pk{M$JKk`XyC5s}TxRPgUS($t z8?q|=_L8-V-{DqIA~bJn0H=B2zWmZ`XYy9GgjI8+RQxkZ1f#cPOW@#}aB4F7MZJKf zm5AKYoe38;_S7D!a|o7~{l#Kf;8_}iXprTn*_jbCMS zK+{FB-0aVBI+@)rX5WdwG^~7Z>FH^8$@j9|plIWR!%WPU2v>Hf91hEG3{{hn8pFf! z<~Ks1Mmi>->$`X0?c-or2z^!z>{$@fYkSUtmU8?QcZ?^RNz$$Yc_OuDYpH#ZeN|^H zU?^;|lhh587DF3J_5qq^9=uQn zc2dtN51buZPplbcyq9xXPo&Z?<(X1p%4^4s5xda!V((V0T=Tk4*0&5*{-hf#PP+Nl zE|zX2cA_dwNr(OlI;wCCpU}!`)jxcv;E#<8x%QIdJtmsHix6_s7^IK%Z@;^KBe^V?%Rw={o~ zSJJq8zTI>WGcUF*ePbXKFW`z!hhtwPLRJJT=-~vo4Jn7eZ})GW!Xa50zzD!TlPARh zi$*;kEF_fJMn=}Fytj`ZmtT#cDJ8KLF7T$TdU&RoT;fCT6oa2h65GPP{)%s7#M%b& zH1>BWzjJDiGL8!_KSD{X@adHGrelf}6|?EC1cr!Gg09X7j^qN$>`b{h)7EP$hSB(( zqDDBVBuorZ3LbAH(pX}FC1h;{#uTyml$u*{2Vn1rYTbwFQXRRetf%wg2Fxf&&cDj_ z+@*Iu)Lghwg~@$R#!GCCfQl!G9U7ky)QlY7+o1osPiK zq9crxdWGP1L`vlCsDH>#-^!)@-lyk&na39)eC@9k!p8$88X~{Dj~nC{Bl%{8bQTr6 zsu4S*e;4M;j0lZ99Bhy2D1doY)lz3UhWlg=j&=eUbo!kJME?xkWpk9qE1RW?e=K7B?@xt=~(b7q#yfz|?ZKPkV}pTibtT_&Z!3r2$JXTB8{L z)L=58aZcMhXkM@k%=6uknD+`s5w3LGYR2G%Ez+v|>=9G|$Wem@ylZ6a10+i9wUeOn z^^z{t{tqXSxg9_EBmg6lc?#+ufzE{1%D@*B0Q>L;=+Lz6ckf#eVUT=K+ z%f|&S{EvE~mV7X0t1P>^I6wG&HO2+2Iz@Fy@8dRwfaBrH3iX_>B5>`$JmNuXjz|9N zEYx;6DBb@uh##mHgXGcD#v2r5&S30v8WtlH(E+uc5Tdp#_bmiA1`w9vjD~E5#Br(! z5afF_%x4#lh`n61@q${fN@A)d!%Hjxv?&DQ4{(K#RUy4bR8<2}pRZX`R&;Su`i^zHzPe+!A|55%Sq4z(b#`218rAJ6Wn^O7=Txi(ZQs)e zbY3cv4RcI~?I-tKzi)9Ric8TZkV=Jzo+YV@^aO^Ozaa_ zjPR)vql9%cId&ONm6_Okjea#_ZM8Z=D+oU>OP_#Ei1UvKwx>ZSiRT6TJFpBXOr} zq_i(xPZ&8|F$*OYoz;HuiU?fbzmr1;alea3n0X@e!mIxcUNVz1tAG5eGk3{rgT-F? z&~x|fnq#)Ds$onaG~t6yt+FHZN*RNy_u2tGIX&p?yS;6VvLk#}GgP7puEyNCluTp04E(n< z1WZC3;nuq0{H%#7zpj}su+a8aTMEyxRzMaihYYQ56GMgGHE;#`VVFtH<4j?NU4 zk0IfX0Q%Ju0L|UH-OT0RMv+8U*2s1^07?^k{S{l(5MQ(|X<~WWe~`jUIDw^SRv3-C(1acH8okfXPu~E=Oy?DF%rtp)I3Z`|5gsa>9X8=J~RCI|Yv@dW<3^Y)g zI%4+9xM@#CM}W-=lZ(aER%REHY0NjmI}}nS9z;J2{*l}s?+7p6T|Q}U&QYex3WLl# z#~N$2hnvaoT(<2VKF14G(LuVbGxUopXO4c{_Ha-DIen_3C&LSk5)3FwcI=-TC9r|& z$+=FuL#PA*&vwlA#IuP$00V%{8^@Tu`v)b8Zv~e_M-+@~c)Gh{ zMyW4>MKyw;Mh+h8aO=P8Xs!SezY&MH;BO9w1GRL_C+rFG{~wZPK=bI7`WX$r z4siSfW`O^0OWCA3;{b4<(^ww;@cqW}0=#!iFx zYU#~3#IHao_FwhCudYU42I76766XLZ@TM|e)~H~IsY&k+BOp#)wQ(-3f?s0?wSMB;HQb4-*}sGv z;I}o%Z@~A;c=44e?ov_@o}L&bF#lr}(W z#=vzBEnb`S_#NQsFBpKT-|^8hl+d*9f0CxG!Hq@gc2dh;R4tW;YmXxZEm>RG#hMYn z_Gfq5UE&1%Q+$*X0awVGrGcU3$}nO~TuDL{q60y<8u%aCI}}yC$9nfPBNE1ObNs?_>o{MJ)}-q&8Dmzbo(&iB5%y zAm^d(<9ty;Y`E|;=~EJIq)R24NCW8eRY^)*2uTVv&WQo85m~71HvuuyGdwgjGPca| zSQ(b!ZI;#_0jN<@Iq+)W#M2oC!Tv8ajfEtD_k*_PW3`t^aO4HFqV19V-E$^z>t?`;rl?a42ehx&``Q@{R2_M_R9HZDkpt^&R}{`8=^*-gxaV|!sk znvYLjs%lh98Mo?S%ocL#JXl!vNF=KFg`^zZ(c}KUb@=p>7MC=38ZC|1gg z>Q9BDvjo;woLK=-g|CDeR$4G-LV}A8hnq z?=L;nPFH3rET67>HpFa`Pb7IcxBkceM}#hVSPs*p@9x`V1_p@+7+db8HDzxR8I^HX zs&{kvEMWoo&PBvA=ycx`v-~V99jV|+^+KFb@?HpIqN5Y@99bIVWi|4hHh2F#Ib2^p z`;2nf&wsT%*T{XiZRQsHysfG9r@*l4momm<27 zcJKKHzRdUq4aen07fh?%AfGizH*7wAk9=mbr+!Y&cXpuB32HCk&5lfXgVo6Ic$uPd z=|4bGGKOs0=@#uE<4w=(cs@vD_FSOBnudhFlbNnmojbyQd#%{9<455tE<<%AV*D`y zi{s-dNxc$(uHC#ecTYR4WIg(i^z%O6R=;-+h;>>}R!duIzwN7Vp{gLYm6*if#GNno zqNx#GV6+N>tJs4qpY68nw|TsbT6~S9MQS;|NlE0#ehqGc(L(JovT1q;S1J}y`+*Exp|^|lSb3@YAn^n;CMIAs>44t@ go+jWgO9NUTo9H7qk4cq^)uxV%`oh=Je#0Lf$#%K!iX diff --git a/Tutorial/images/LocaleInSampleBarChart.png b/Tutorial/images/LocaleInSampleBarChart.png deleted file mode 100644 index 312dc0991939ddaa80653b6008d487b46f65a911..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21348 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 Q3m-pm)cV(=BhJ_VFR{fgN&o-= diff --git a/Tutorial/images/MakeExternalsDirectory.png b/Tutorial/images/MakeExternalsDirectory.png deleted file mode 100644 index 807e7263a787034e7d00f69339604b6d8ac31079..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8040 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 diff --git a/Tutorial/images/ObjectDataBoundProperty.png b/Tutorial/images/ObjectDataBoundProperty.png deleted file mode 100644 index 292d362b793ac3161bfa9b840c6e480a53510955..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8635 zcmdUTWmH_jwk8myfj}Av5WH~+(zt8m!QFxePjCsYjk{YKLU0XEAT$I5f#47Pn>h3zHYFF*rr}qB7??h{;Dd6Fd1f-N^mSfLP;h`_(llfUiio6q z@sNTPw5WtHqCy~+`j`slvIGREa%0k9429w-DqIpw4BT^U9+t8db5z{tC&7%nyLrFG z{YG04ZV)#e7eN;R-^DkcptR<4JT2*RLn*?om$i`CKh2sI5>Z2Qks|7UWNqHFZiVw3 z217$3Y}onp>XtgVWO}|t+vp+ip)*2EkURAe%F|F6G{Mx=gv03aRgjz^%6o4`lecmi zE-|rSy{EKzbnVVDskWCrPnm}fr?$iiET}<}m?-Kt4RYU6k|L5t#B)>QHj|D(xwxPF zQM*;(2w^b+(j`jxMro<7$`L9YkLX^B`N}y5TT4|y)Np|J4-b{MdSD4xJo5NKEa8D_ z%YOOi+f9hldbI!761~--ZEfD$Vs=FkPM)>ITi*x1lb(*`hN17LQMuNf^FM+zddriY z8iq)Q#Ro?%<%a56=v6A9inusQ+sySv@3OXtB?guJou}D1j_E$w3g^-g^9^Q~FWtNQ zi4}P!3#rVxr}P_N$8Tl3BVA|R4+fUyE=SJ5^m~!Hn_G<4xOBxg;fDKKsuo85FCXkB zCVXwYKArw#UwtAl$oi%;Nf-g%x(enp$F2$yKE$Xqj21T3j`y_!>Bn4tZ)b0#;9-sS z$OwKVknd#gWP$r-^4IWf)xm-KD3R>f(Wy@|CgSNcIsLsQQlq4e*e zF8YHM*az~;3rabkNuk$E5tPxnSK~eoVVyv5xS-d3!MzMI2cuecX?;NzOTw2m$1uPX z2=>O zM5GEtISN}?##964DP}M1NP~wVxM$44jz|ZTE=83a z8gne#Pl?t-aO8UnQZ(o$jdV~e9_z+Bz&zi#X|!k(PQISB*N`(vm83_|+YMf!n_r5fXZ7zmi{Vsu5qp$qx!e+TC@k?WPyM&iQUEjPU;iPGyc>C-v{!AoA zcR+XQp^>+8yPyO<^ow&(=F*d;(dC;%=phlhaHvFA2v}v2P>(PM8w*4Q&xO-=qig2% zLqrJZqgZ?JdfY6Dj(Co^kHn*8Cuo1B!j$|ce6@tPShk+q2cKqFNeM9dC6T7~u2!#x zt)8r6tzJCE=?z|f5nX7d*{ns*LdvSnnr~IcW5dHvRx>1${UTd0TOwPq9^Ej&Q1EAQ zeQUjSeV?`SKt~3BKUu#|f8E;jfbIYyZ6}i=wRFI^A8W95kn}rEN+*+KRj@Xf#-Y~Y z^HtVe{ZD0FigKEs<wKVGWVzdS{D|AE( z843#QF!@M0;`LNS)Zj=7`xtY#Zg=s~3 z#k}skPJUUzRNNG7O0R5B_jA>`Z{D(4pU*oVjFW_6zcTzvipt3Hk6M2|E>ugD6qGL& z(oW7+yK1g9F{%F0<&|sDIjLHYBGDZ*jQyxv;i13IqIG}RQ))H}yN zCq73c@))6rh!+_aQTK>$Q~AyCTkE&lZ%uIyq!e<>H{SQj8TPeGK;Av)9p_yl=HoEC zuwhI`%&(7$F=LYl?X1KEik`JS;}opoZ+`{nw?DpY-Z|$BQ!|r) zsyGw!g!^P~19yF9)3oj$wk^kvpGNnoYwM zWL03kWLr1>;p;M@xQ?-}e&RTRxOZUQ0ipYO%J?bP8& zLc+t;MAY7tk~2s1{uW;F$#3Y9n-Aa9+BqK5ok`y@+PLl>?&s*;tDUEK>;5*`FZM>^ z305LM^@g}+oWAP2DWNf_i^Adxgkj!0haA7S}f)~ku9NmD3ZsQiJE8`pBW=U0?& z>{?%Q-_r7jG!^^k57a3d`tL&}KI*#^p6TE{~nRS^|iG4i^eKau- z1Nb&G^?if}*t*z-lut%DN7!oETGB*QHq#7JF6q9rmNVE3{bcn~I0lV|>wohbzF5>h z{8MsSqEqUxf~O{)C6Y~on0}X_o~SO#ssS#-;k351S+zRFQH5W@zPm-PiDo9o+{$@o zYpkaXowLjJEPBM^^-4xz)gv0%8YHWuj9kSOBovZ~`Y_wj>oB;_@dx)4#tiN-?jTMliEB*FgVmAtm3pdiYV-Ni zd6I+Q5x<#cy_`P}o?jDQrTj|iq6!f;Qr;@YD5mk^ocF07YOC@kb@9_D)UYovve!0G5`SqvB&!x^EcNR(<;O=K@O^fdU`GLNq1QHVmt9;awxvh(ykBFWcQ&Pqjv^9|rY5dYiS* zu1$OHSNxdzF+*8{Xdh``@cMc#|GGu>?chg&&gRqE^Tvh7&p!hP@AVW8x)&M(I0HzX z{1!UgB0V?0{eJ%$c|mvZ`@rlMv~?6Ic?;R=nveYXgqgZJD9-2Qq3piWPwlhPrcScE zY4*DGcVvf@n}HNPp&LFA*KQ$lIbJ&jD*V?tiErNq&V<;(-(wEVn|48KF z$(3Zq!m|$Hqtc!H--XG`JGwffWx!x4+I9 zuLonJiOpQi20O_Db}siH?vAXkSBsK3EY*!spQgBI5uzO6qe(?$1pDHmd>D#@=Hc6Y z8&oH{R2N%8lsj-(u~j>$ST z^?*P!iWhCs_+fQbc7AoWMWpCwWK<$q{?W=02~5`yn{h4$FgqF!Tk*@xOI(?C)MB=H zxu+;7s0e!<0}lgL6_HoYj+_=&&X(4k-i|H+p+!Lv^A-V`j@BL)5O2pfPVOS!;&lHQ zAp*4j-iFda{xQVkwK$!Dss=>H+07cl&&kKhMJIs+fk4FEtZYQIWaa;54qS=T*?D-l zh(Mul-@fI1%ggEPW((yO78Ztb@j!WaIDiox?mkW)7Tz3A?)3khYfR1mg>~aeTfPlw-r+ygZ8OPM1L`L(J$Xk z*oDsVm}3$HQJ^;+>?-^v&;CqOzf9g1k7bMoixz=Rnz5Z*bdCynX6MCC%c%2ccEHHH zhS9m3-G2GA$;5UsMlbbZsUlx;=+4`d;K zf*uf@(KaYW`};CdpuG-(_-%6Rg2J||-}*kZjW=_A6|WiK3ES&$&DO%l_Fw-ft4Rin zROJ2%NGFAT{-|2mCJ);za|*oBHT^#u_eiSYFr!r)x0HPPBqZW@&c3#`Ha;r(pb~U@ z6j?0Swwj_`=DPAN?cF<-pocrby#-{h*Z!|9!O;XN(TVS=%=T*o>4AHzmfi#!0pb}wVtYTi#2E0c;sncsy6rw|y?^EQWJJ;85_P|oBm)-F{$3RoM= zER7~&p18levA?@Mqc(#)1(g+7*0jZJ&wNzJCFPt{JDQ%a>FrSK%QREVH1Q(4yV}UlbC(wdd@l^Tzlt1rC#=28lZRGUSLa`?Q?7+>eA}*>(gcF5 zY|fba#Vdp8!p3Zrs&$EaFqH^mg2y~}ri-b?eYv=~U_cl$EG;eVz67JfHGStA?fvl? zPMZgZho^oWH|td!`6oho3VBa=W)jWy4Gj7VM#l*Lu;nS#OLYWuU1}*AmAZQ)|h;@TxS_gVN@>jyVyVNAyNnDk(8I0Q-98N z?#Lb#bzfKUy*=t{t=eSSgr`)=ec>zMpKvg)&YG)ho*Kbwkb7AfAES^+UF>_d?OFzG z607b0dI!%0!!mLtlIx4U!(7xpYE@4L@E~}W||jfltnP3J8t$x1!RVD zQ&M2Dq|o)l?ipmrtOaJV*WMibu!n`#<{Oc`GKc_tvrV*YJruW?lhM9+*f=)vPT1Y< zc=fx-jLF;aosXS0h>U7EP!=8EfEJ;la+{M5P0~iTZQjxrUposOZ3N&V29=n1QV##? z^;SG+)X~vV-YYXN>abW*AWX%3^DWxGz9QMLsmRAcjMpRv?)sYJcTYAwE&sUbuH^TBiC_56v!<(b`5-^t6UOn1Tf z=J!{F(9WU-q~A$9Uq#cKpFHHkZVbdvpK@_GR)j7>X5iRFEcEnWOA$679f6pu+S}Xn zIWLHbcHL`CoGNb zh-wqg`d(#TQ%i#FMJg0%Zc3F51at72&|PN-H_mdMlPu;PA3{=;9>ndtJVwr5`)%WUewJ;YMRJrE!grBMHPS}UEpgEZ-Dc4mtSm{n9*?^1}beM2bVIF7cH3Jq0W-@nbYt_X?|c#S;du61zpk$P{AYV?-&9FNj)Rm zk#koJtF;YH4A4OWFw7Xg&dQt_m{@c?qn%wr%F=F-*2@Od#&SwA>TCGe$Z9S}@tojV zC+dcFVP6nhGhS%{oN`Il>{u@$7;Ge5w9NGmaN=up$7(et;DnoEuZ0i+*PWJ~JUPcZ z;`H`vX_N;D+8IyPZH2ml5D}rb*MneMIl){NUrtAN{Q*9@)GSal+YGE-Mx1yG!6ovW z8pY$MDYh)KwL2m!)Jh}LDDHFCgBjKwlxa9_bT;d)x|1w+ut>W2bq*iQbQX{^YyuTY zCN-49uPle`i5v#K->cOSODRcwYRX&%`o-mR?e!|WORq)O1ml&NNrRuiQ5SIEF>gb4s zrg_E7f@CuEP$oVeP1<-&$+4TSQFjY|2jc+L8mKz-L=i;LOYSmaqcPHg-Cfb|@);bI zrZHz^(&fVj0qo0gbO&84Cs7RJ9!%Gy*Z5<2xI}F ziw_dKuyOkcG3Q64O&rrB)wr#chP?dqtDH4p(G)%w@`|`FBbiXL62$<9Ps|eYqz?id zbQNtyX&s=U7xLlKg^F*|bo?>ok8ybq1 zwsNpNe;^Bf8l_~e0q2b)(txLy2sm#DJ7v=hdI)#p8d#L~5pSIXL(dY-&h~gXLrb?J zozO+1b8R1IR^VL(p&Ohi;JdLf;NeWdOB}f*`{h*GLPg~< z|C`yQ%&cxgQ@``w0+Y{PN7o*D`gWUR1$=(zZ%ipCw%dC;gV0|V)TJaPNjW3WNT61M z*QfT~M<=6_>Od7nJj~^`&vgX&y--s-|AhyJA_09;w+nxQs&7~I7dSJAhlhqvA@&T6 z1QZm?8zYDnYfp#0rHb9)y_o0c6D< zfW)+%oPi5~^IY)R3_TmE@i|#f%ga-HRxNpVs_nahc-tOJ+b2K=t|MpjKHXSf_kADA z^y0<9gZh~BpAG~*l}OJ_g-$taRN{s`aU?1COJTYD#)yB_jEVFot(up@-44Z{N`bTO zFWG1y;5a91AVeh)OTzJiCh)Q=)wwr@xRqY&n`KuhM%9wr`L5xp=g&Htkf=!mRQuYz zh775)fpoSX0T;g&Jhvyu)qb>j?uZr07s|)8u(1ugxBH$s=yim0pYD?L*+~ih_8@Zn z-Ii|ld}U?j>esh;3i12)xAhGTS5GZ3=@k-cXOmjuDHUkYq(|M%1?V|Ah70RLbuW)1 z3AFQ1jh^3o=#N$A^1uG($_2xMGeEq7e6=4)WA)9HJ3l!&5%0@kkJy0kqQj+%{1H?d z*7y84Ib&m*U5YW6x<3p;pzViOFMv6~W-@RPEw%_QA&fY#4I)U`O%OMiGD!=@mgM8n zHr6()3hwVqq$zE6-_Vkm$CN(B;>8D~N`$pRlLIlpB*$;BPV51mrqf`fn#27Ha~?)S z?t0M?OU|YU;co<=Eq&X_4;m>_VCPfo3UQ-%R>S!EHv)w%{d%FaNgpCNOR_1wAAM%th>$wyINui?#%VtP+U4 z#K`mylld|fREC}z##;r{csnd*Wdhct1{^TMs>c7zg#Pbkp>xeeMcY6>N%6))i=|VX z0A}1rui%3p&fulTFge0Z8;Pi9^f3gWWzH>%@sTJ1Q1j8vtJcD3gfak9@$zyJRm#IC zIpJPRf8MZ8J{52Lexq1@m4xV#NxOGkSok)}7O8+sZo`{o?nN-OnMx!j6hscGx!n zj5XcJ{LH}-PFhl+36OmvehQY3K*Q#7rV{aZ4=93E5-+LqJ)qndTYQbEL;ppeDAxU2 zVud@L&$0(}eKuo;jV?H0F6_FDF5Q8~mS{dt1f zQi>D=QY5-C4ZgLjTP@ zpMiNT0Mtnt%WEpD^v}UuRBk9#b|1_c?>}~2$J7R%00hvdIMA$rYbG*+GlnT|OFayu z_ z=^20y3HCUwQ8+;3xyDnP1b}+&WtAj_mPtv0s{cP2@@1oq5{wxW8(RoytRG8XBV!fu zg-TADaM5V#LFB`E;`1M|6rH5hnE+|U!^3ksM{cq^TSt!&^GVUGd1>!qIARzaJW4>0 z7d>?aJVysp*M}*6vnI&RGAE!IOm0^@ZRc8?)xUrLF7Xk|7nKU2_w|f9Z?`9-qu)df zxg_*510-wsN(%X2E|#PnN;6Hnm^#)^$aXCAgF##z;nccDQlU`*OHR2Yykxa35liW1YF&-Z0FkSWi*wfdTUi8k>?1q(EOvGc_s`f;=(W6aH-HNBmNY8@>gmW*85FjtM zCyH@(YhJcyiBqpEgi6Iz2-*}^+W#mSkE97y%+AivvuwXT9{dZN%dn(|XS_C#UqjBf zr((k+HA)N{Y=~PGK9d!4=W(S!*QJ}p*l91=RkR*RE9eTtA`-#S0YMr#-9 z+<7O!VOS48K0Yo3^o_^*5E->+UjmhKYild}t4st!6;M}}L3cM7wut1jotYDE3CO!s zAmQq3wNBQD%Z*!{@?O^$lAw0NJ09+Du#X+bq_QOfL=X}IIqpHn-%E3|pK` zU{!!Ra?z`-Fhz<`3AqH1xljnaG4H;qkK|PagOsfr*Jw zaiPIhJ>f`NF^!dtEmkz2x&)B=e~Bi@D$Ho6OtX+hQZirF14Df!88dIpE_aev$xD&kAN_-!^ZI!xjEsE;Ol=m zvF#|PDGlg#oMQP^Ok(1Os1%HysB()Tv@uI*j4j8ZhTHNLIU%+~W0s@TW(d3%bR@VP zD!JKfcf?O|dlSNpc4~!BE!LkCH^=`g%s&}ixw2)Q796JMRk-7(hKClYV8?+Q=al3u z^D;WiZK*r_mafH!$FtzSc$$2agEOq1TvXv=2#QtjB$D1ns8?`Y#(}^uDHavuxDYKvt}^E z@#Ha92E#BZMR;?G;<7H7D^W^{yV2*utrTJo1^B(+QN}NJc|am_e_38I1q%21GDoXn z9Kb0ogL{$4znZz%*sb9iARl^BV*UL7l8o4vRU2-!2dtbx$8z%b>x_S2VJpe0$=1Nk GL;n}`BoM>^ diff --git a/Tutorial/images/ObjectShowProperty.png b/Tutorial/images/ObjectShowProperty.png deleted file mode 100644 index 6f82c69f2967b3af7c289e4b362556ad576b841b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5348 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 diff --git a/Tutorial/images/PropertyPane.png b/Tutorial/images/PropertyPane.png deleted file mode 100644 index 5c233f878ff9c2e5923fdfb694cfe889670060ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12396 zcmbVyWmH^2wskk|PA9>G1PGcy&_;p;*Wm8%?oN;dw-AB`cMb0D?k*kNgWJ2z%r`S@ zeQUiRuh*ifd#mcyty^_Y?Y&Qj$;*miq7k8iKp;#BaS=t}e>L!Thk^urcXqaX1%c3V z%!P&JC4_}3KJjqah z3IkOnF+CAnT(IcaM;t`4oKRA92ofUtCF*;+{7pSD`rC6qnuCM1Wj@c*`s2IQyOt~8 zEAM{3ZER3|3KKzYy8|d2y;4M<|LE`cIW8VqI6Fc7K6qoju0KX-%R)kMAiS#mRl|ES zzucL{+|L?MK2NP*pq%gG;6Vfdc5s|=agirs1zRYh>Yxlaacx)8M7!{>I4T6MF)5pD z!{bb^y9j89PNsMHaP`Sh1du>-CRL*Spy)3#JbWo}-*%!;QBu(ByucmOL8;tOju-1B zLECwGrqZY2AWZy63ECUmAE=5l9K7lSY^(1{-Q;|7StFXyo}iIWq`T%D^R7D-5`V(H zI&)RFhW0+Q-RCfhqoAc3^SgRHv7dLf#8eIS{|!wsW?r21P3$g+v8ft@4D$_+8i)>6 z(osnlvWTOjMeos8X8-)YOUOSc;bl9+xP3;MWy+mGPRKr(T(JJ==n2hsj^UDCaE$HK zyp7mRc5Jqvb37i{5WOC`z@a(}N!i(@DM6>qxeHc5Qk2ox=+k;K=b!K}ajE+|&$xxn zF-ULK8qJ-GvwP#ms)t(a&wYYep&rJq{yDyJ8y{8jU5Qhp2|h;pZif^4mW(15PRM zA%lzr+$%`Tg~{y4u!dBJcoZNe2=}FpffcQ%9RcAZS16pqYh`iti4bWDsZdmIVI6r8 z0aCZnsr-9tzpgP0GkhhK1VKW1%qh?VTxt-r;B1D@4wxMjA$Xj@!ix5$GrSzh3dG`< zTuyv|E!HNrX5_~G6Mef~bKRj1!jDng@nVhmL|YB6HK11>Bq}s6zd-ky03YU$_NhBF zR-ST7LkV1nq5RcC$T_1yzE%Nm%5ut-9U>z-Ii71KR?WhLH~f)BtW5MpCd1gpj>=z} zzt(?29t01h!tMEn(yUl7A#af4zN!27_r~k*u`+!h{NDKe^$-{2YmWXaHQr(t4oFIX zb}&=NQ9Fm>sG(;?;M_YBth{ixcJB26dn+vnGkGns>q}Rx*%0Cm?~b?=4L7MKPJS$w zHruYGb?o)gjk^<;6MO{j0RDD=9O*SY6})g%WE9e%l%Urg2nuO^6g;?8q4ZstT@D8L zr|(bSo$`f=OuU|t6O!?yZuoz^(HwCs{ICC7C~&vl2nwTb*-0r?S4%xU$#ScAzDZ zs_#{wdtU`?W&S;a*a zoD0a5u$=KPKo{?w#c_-JH2@`4O%O?dOE5`je5R-#03!P>6X|%(RKFR$`nq(OltC_CxuIXO*u)w!~&x4UFo*Kb3 z%p>O%)*!u1y{xz_yR5*+)GXLM?GfRDeSvx_?Va|>{J{JWg@h4k7C4M#jns)ji1amP z(98(Rk^QpaB{OI7hbF_I4+cazM2GJhj4_B8U!H$sh_L<9_U88+uQgDIStMciz@kN}a^tk7CH}t1e)G(gbv}nbM~XF%b<6z1e7IGLmDs`GgN?(& zgWKfrAsiFj^FqF!m1UpQ2lKm8tlwDbSiK~VPVCOo&d@EcrsxV*`*r`|Kv^DHt2`pw zFt%mx75DV2F44u{L&g2GA?4YGeU0tgj^RG0?!)p$Vpm7k7|*YFV%W%0AIP@(6w>(9 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 diff --git a/Tutorial/images/ReportPageTooltip.png b/Tutorial/images/ReportPageTooltip.png deleted file mode 100644 index 143336625b0abf2f07d75ffd5d3307cd2f098e1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3456 zcma)m))vm(wUs-b9X-OGzdZd3#9eqJoUP1x$ZzErxPmXh%-)QLr#=(7=Lg_wfiP>2 z2p%5cS3d@CZ)o*ZuBGD$3$u&SK1(I^R7qRedvlk%fll+!&goC#JZYyn!pv4t{B(bM zF)dH-^&f>LlN}NkmSSeo)1W#tvsg*Xpihq%T82j7J;?KLEd=Eum-$5sR|w-s#|xI5 zD;D2p60|4A$F)haVLQ{W??+?+-0o?+^xz0j>RF^fXzOEHV91ldm!wu!naM9jl`E@r zL*pHBn+@v|(Ffo6zpTvkrlTFpOz8QAMhmW-{r&yxSm`Wr-U#%7D8N^xZCp53LY`_# zZWjWE+IaG1;JPq!i}V{oUU9dKwD_rWtNg@*ij$z154HQ*X#0dgeBVF-Y5wfh6?F=bD z0sf3{>10R8vDLMER_`BOH%oE$p5cB4EHVZk`itKD58 z5kgwe*qTE4gPVmi=HK!F0R#R^efPTR=;R2ZD6pO@F1>fqRuh9I zN7i?J$ZO!}BE_O$iFV8(P#hC~=h?c3S({fv&G3DeJR<0(ndz_B6qW?W)g-V3XifFIi#X*q-r*9(+@VF{)TY#?+e1_bXPS)r$IHnd~+cjhJJ z^>1u8XaoTrjIcb}dhe5%w>>!_9Gz!RX(KE4BQ;LuoDW?I0n2FDSg~T=#1xAcZfK*r z3c^%6abtyMYEy|nUc5LzWnd%B2v;EEOZC@V)WZ^<`wq+MOzOjxFzIncii9^58j*Ed zMO;oBS@B>_p1UNd(euFMwLX3{GTQX2$O zLI(e+vX#^^$@zY6OT(SBglaf|L>z~1-NZEo>ln_S?-L>lgfvU%E7U&S1~@lFsMupa z3}h$&pXB^^u9olU1iUQ}>r4MdPO6<>X0OJLQp8)&0@Sl!p=dyVT2e1gx*I2w2{@As zP*Mc?hyqPuM8UTtqwCYeE1AHhgO+rt_})9Bm8xE6%r`cod1{Q=5qE22X`+SLwsWqJ z2puJ<5P^#NAJ_#GQ@1>S7T^1$#;xjZ%*L1TcFMSdE+VWa9L_DJqtL%(&p**klb4F?Vy@o0W!v2g^;% z>RA%7yi*WCg%NulIQsXLbyQK1I-S~Gp_Gr%AeL>Nt?vAq_pP^4E4EFe!?H9xlEvVAbe} zLA*^42{Qz>Gg)BpB@y&P6$j`sL~>BQN2uYu!qM!nsfi;Akj*$d&PKJ_sQ zl)(u1imM)3HjF35}j@=KIJ85v@2{=^_ueETd zP~1lh4|92l2s4$p-1}8XTQr50+}C$}RRBSWU%zA5gzV;jKagt)XwwV#lRkA_B@arfLg zICsuRE?#~dI)~lUDFmE4Oci;x<{0v2qK;+!f_1Q(2_L-u*RlVkun$ZtgD05mt}l+h z>v~a0KQN9aPmO(9TB37Hdw8T<0)I^IECY(uJ1~R|Hba(oH%#T`>fbH_SSjcXq?dWDc3C zhLqIHOIKbPyHz{HrE7l5bp0-)XR&HD4NYCFLOpnelUDh`Q!cg|Q?xM{$<86!%}KSN z z$vNb(ZX2X-0p*m`lyqrgyjiC|No4zMe?FY@Gm+&rOjd3kPK_RVvEQA%shWaPf<@M+ zbsAU&f|t4kfIeAVWOCSwby|N$_^Ufdz@OHJqN)D7w)`h8T-+kzq2>8>UFoG?O3OQb z1MM-d{X~LakcQc0b&mU~tub=E#{c23RUQP-b;;b}!j>vHh4%{PR?y0=V`LG6E?C38 zpGl1fz@`lpY~4$0>fABA<`eZYNLN@`I3sZH;F&Da^m8vHM-ev`$~YyyxDrtTmkSo? zxD5Fe-o$#v&2wb68l<7y;}W5SK(uwI*G8BG)5{`~-B>l-^CI%I z-h872<2umGzajzpsu*#YO&UAAu)%sO@`x(@{jBFnQVTCP#HVNvoOHs9 zzG_78NjXif`Hdg>lYC|0cu0%6xF=_}js&+n7!uiAkom<3#O|GP>1>#1$j#x)9EW|FVJ z(+fh0wx9>{2pDd=+1A!JzL%@DK3#fG`^;B_fu2;m@O$xg`zfuctRkV1awg$6fRdO8 zNU}V1>w#QBC87De6yw3AM};NcJ~16B{RTFDmce7uWueE&HIsqIsU;``0n?Dr%95bg zFmF3$+h73BV3~4^v0^~{=fJ00kJ_3L`19cRjjX7;W>#HS7u;$tE-tR>v+g_HL}f6# zPb$FO+}VZSU(TJB&QQNNgc~(GgG*Gw&wHCyFg>NS9B@IG(r2GYa66-Mz1SDigQ2v= zhx#->4=N!0T_fH@G BqEi3> diff --git a/Tutorial/images/SampleBarChart.png b/Tutorial/images/SampleBarChart.png deleted file mode 100644 index a6eebcc70c9f2a570a974c28824a2481f6332de9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8759 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 Ykj`+M!t}2^`_n#`M=8q`O1<>`59AihTmS$7 diff --git a/Tutorial/images/UsingTypings.png b/Tutorial/images/UsingTypings.png deleted file mode 100644 index 38865f5078a27ad024fbf755d0ac2a1b16ae54ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78087 zcmZs?1CS`O(l)%dZQHhO+vZu@=2_deZQI6K+qQSVbNSw?|DUc@Wjc-NOeRS^>4{K~ z6NiPuf&u^lfR&UGQ33z}-2Ph@B!z_u6ddi$EPt5-0BD3H zdw{E;$Tqsp&VXs8ke*~E9>OFz&0q%nttv(k35p^pfT$=4D)b8=F%pJT5S94@#^;%! zq9}kI!U^u&^t|x@@V3sTr<+$+R_0z;T<5F<`bVdu;Ne9TfDw?ea4oD0WNyrlr(?52 zDFDDz0MO=FveO0~ov`aO&$gzoO|0G5C-OApp>&y;ifIoi9RDlVh_Hs||0o=D9aC!*|3Ar%<4T1Lj3D52OGhK3` zpGlIiqu<4xawSxPjev?LBlXHJH~OO|6lnbY*#BDxSeXF0InYf4uy!6n3a@}Z1=?O)8PKi77@pZsFX)#Xq~CvF;U zKQAz|d$oRA3LfyC4x@QwzpEk5``P#CUI8~@Tl=T|v3tN<`*?4&X+PPK_-w@oa<{8m z+d&Ckfxb^AbW<|owSMrs6J0SyY(KC?K8D2YXd$xeZiB}F_DG68;R* z5|dT~^sRjNH2QeAZf~~|j-33Ad6xkG`8~wpvBTfchYYaf3e=bM5GykW3XsAJpyRiP zij3JwENr*MFxD;@QU!z72l?vHz(j_b2cQx_HU~V?2lNMsd^dEegC9arV>IB40M#T= z#~ueIU~!j*1D-CRau>`3%w`wR9V91^j{#ttu>KBmDgd+&XoUb`KrjgbcL>Nq5GW3V z1ej9rJPywUN>f-a4*U>2M2K>%6dg(o zQQ?sSE{Q-2sW^B+C_V3&;)jB78H5TE6|f783zTX^N1&AuuK=$oY@V2+Q<*779|{BU z6!7mssXDk{fZT&U_9Wg2GXcN%q}t$YMZLd}@Ip@ZR9Vnu!;Zy%6W>{ew+MUX6VHLq zi_ewLr_RZq!aYhqVt4|6VGBnXj)ohmFoWZ~ zZXIU*p$XoS{M3Mpj|-QJzQef#+Bw@f_q6^|=uzx3;IaKt{mknO9m4|i5aSYaA5#kR znjwm5ASy6QEUG`sBZ?gZ9Mg}{fx(jTjlq<8nX%j8y?<(?YW#9AYfxvFr|v*Gs*MACGX`VP8JRr z&K?da4m{^ECnhH=Com^8=Z)ix{k%iD6R16^_-m#Z0XR+r25$EOl#llu-!;+?hn(CHlQOQDWG3KB9JZ+KS&4& zE(km{8?+oWBQz!?DU>c67Fr3)3PKD*4T>*mAgUq~BoZb18M0`^#P9dtDUp2W!V#3= zpyA2CpKkgu6}OQ)N*!n8I0SX1dDK1|UeiDdgUdxSL>hGv_jU)xLP~H-Z`HXVew!S#EM7S$Z|_s&61CkQo_~pR#2_S?7|sY7^m2AnD!a&nJO5y z7}Qw!3^omg80r~0ZJ2DStgtNCtwNcY*|-hae$g4=S#AFUq=}-D)97kNX^5)pvI%K! zXrgM)Xi90>w%allHb1acwr(`4w8=F8n34NKH&U~eGqJtgGx8l4R3jWPSXNkc061DI zS0x81M?1q|?sYivBSRehQKW zrvbwP!-M@wJVsQ;Wx@Q1u#GR6W{CJujl#x4!9pCvT*F(#uT8_^j&RBBfIC*?4~krEXjE5(y$hKiQpx>AR*r!|vUXOd@6g3qV&Q_gJnk0Hu~!wlJmJlh z!{y!FLC_o4TPl&jG5sXnhvK#F_kPrIdPgIUxzp@77rOnmONgMTar`9*Ci*|uKG(FKiozHZp7|dA@IqyDq5FZjp;PLQJg;0fVBhI6q zBQ_&DvhK1|K2h&&-;~A)jt%aS))i)2W*s(SekFD*rq7Eyubb=M$L1NcruxCXEZ)nX z>y5i@x0Z~K4i6jgH#9qysfQ`+skEu$YC>u&zK5SCZyuJamdzKbgSF+&Z7!Sd<*@P5 zD?4PpVeGWDUqaPy+|;$BiiK_p8gl%)I;%hIJ|8sqn4zA2rgeiHps@w#`3O4*KGkttMq zPew%hap0>>L&nObZNVYZ!*|=Q*=%;t9`K!&m?x`8xW&i^*5>9`_qzJ)*J`=^13_FCA zH95v@nL_%zPy@D?5wnPg#Fn3=;BHS19uudnAsP1(CvwRapC5v_q19tzMZODefAL9Y5!)Y zr__^#JB7i5J?mEUB)&~~b$!};yuEmV7n|{uz<Ksm3bKI5sm>ulRV0UI`cl)A;E!@L=q%Z^O z6aY)4-u*6_ zH*3Rfm~`gBiA&DW&2eIFy^~m+4>ewWsKKip@71us7O^x`RMc~L9&b{HBsDDkk^-Jk znz+eE<#a1oI`!@kNkvz$j7Zh6ezg*f=TPXX&@0upbDci(yp5j9Ji)$ZduESjk#F_3 z3$bHvj@VM{uJn+<LnePa2*2$IyUq=+AayR|Fx9<&6(j*K6|eZ(yQe2 z)y~k)@pv`D3cVM zT)(If8HA!ad`6{wN!{YzlKl)6;}HWm9gZ>A)Y9O}#B1t1{D93IRGp`l?S(!Ex{IvK z$y@VN=<^E57N{~XL`X?UKKM(-o@lusv_RP?-7EOTInqlKAi{CHJE6AND6Tcr6H__e za?P1jt{u(8`pqLmI8rBadQ5w=$*}>daKcoTb{XBP``K4fT4}UA)oRQV#){0!!K&Fp z+oE^=Zgp*`dZ}@VeAUmQZbxCpex+>T&vNjZ$z0Re)JWDu*9Os+(z4@t#WvTN*w}HQ zO~@9X7utt9oJUM(Or~7)Oh4Tx-Hq<=m-HKL2Wn?@d%N4Ydw1!`m%}IT=u6^nKCqrh z--&NAz@ol50;M`J2$wPY)8V=}`?uSt@UVDJ#guuN`5U8|5zkS`5!sPk$vJ5ZIT*PD zdC&Hr=YURd?gadjO{r>0YB~8?2=2p#ayJbY=)@9m+m8Qu&Y+CUtFo3 zk)5WwUFV$Z7xU(iLKn%;2DjMzx0~)am-h?jDL-!CVH;E$B;365ktSv70Dmk2;&uWK z(}5+nBf$F-kN~tz{gEC)DTLttRYtyZ@DUu>4FEy&0H^$+Apj}!0uM*f`Y>OKI31|Q zfXxMP+n{rT80&&fVlLxYOaR)29TfPSK|Nt)3+gBglPIa6RAUZ3G9~oTp?3oP3SsBS z=MFG5Wzdd+)j+iab%mL#$W0?|WqWyeX@gUr<(Re8Zfh@o zKlV`d;ChGp@Bw{^N&*!FwS_W+bceExguE%d*+}*+x?gzcuTtoo5Y;pl{wpP`Yg7FV zEd*#7gw)Pd8I@ACq+5g)@<~aSvAS@5i%b7$>=6@217?>YUc@SYu#0xAn?8(RtEoph6< zfGrXM7x95jj=zUgk*E9|;H7^7Wn}5o*<0*9|7b8k(}}ZPTquV1crnX>_ESg4Y2u5; z*i!#(z7gysh5CVRPJgOGs~tt<;p+ab(({RB70phDO@@8CS*BU8iFVuAGw)%pda-b_ zMEjupkU9PY>MNh#4=#Tv0Y3LjfZg>4*}?NCYvts<)_MmeIm%X^apr&ZQ#$_S{SDk2X1>>`?h`RgZqQj9bk|8XDTQYh;GPXoQ|zpk@zE-W8_gp zsq|%PRLXtAN)qAN8Aerd+3+=VRhJuXR^L z7qEAg5A0Xg=OWNGxFVQWXj4diD7jcy>_SXUL~$f^tY5}hB1&iPO`i9Ch)PS-0L*88 z(bOA_(zCnmzG6Ag(%lQ_Dzx$MBROB{c0DZR8pq?+_6n)=ha>coir|VbdfiIX4jot3 z>g$K*1ndcRFKkI!Yue;$HJe?zY2L+;-&f|`Jox22#~y*c@0XgFPQUbLpa&)=0AC0j z+52xQcI2ZSqqTiyvb(qkS=>HMHJ>~6d8V<7-v8aqD$G!g(j z1(4nief#bx2<0_FYf zFu*f-Zg8`^WDh?kGrpZDzE^&`N^uFvke|*JNFna5bHc36Kpg(u}83aLN7s1(Fh)v)dO zbZ;G*A~mbh@WNGY%o1Z=W1V?gM2z=q#g4hn`j2&!nUT@D37w(Cu+%`uxZ0@g9N`e; zjrZ{KcJxTlz~a`%@JV5Ag`aJoNt}zle3|B--w>%|XQxFPGi~v~;*u}$N#q;FpHh`$ zb+d3JVD+mfu$imqSWMz(iU>+DU?b4+!xw_swuh(9UKa{%7bbjuTqZL z{jB5I@37;t$+RBTayBw~A*yC@v&QVsIw)>l->5^yVd1p?{vF7F{jJa#Q55Q88JW_#+t~j-QUCzpap(G5wJ~)zByhL+W$VP{&P()939i5Of3WF^2>vPJ zY|TrgA*(FZ||7GMqc0^2_j2$iQoh|Kb3I1W%(8$ik znU{#@ACCTe{p&eR-7WvmldaRg!}=Q_{Xbgh8R;14|7-iND$hT-Tnd)%roS{qENx6} zo&NgZV`1mu`KSEhyEV{{7*pt>aBlr|8^H26c7D> zyPgjU6m|d&06+jhQbbV29q_UnRwG%pgZ*3BpfGS^1YSneCMZDP#E^0gp9ge0TwRL1 z|3$VIGDETi(hP*VKXW`iJ_~pT(LB&Bh6Qvc*(J$)&~sR_46t`c6*_0 zEG!1=O_r_p(90#|5M_U9lM8~Q%(|;}W>7`DfGF>uWdA^%myu!jZCu* zK<#Rs8&t{shm?Icghl?MWo>FihQ4T?JO~cCOxo=RpK@7zH_U@ zg!m0dRPV)4(Bu-h|A=E#E1PzKZMK~aK!NWavd-HlM$b*5YDXMI)k^b$hKqjryTL7S z1XN`BK-M#J+4uH+RkKF@o_U&0MGIu(B8DzRf!c-ru?8y*r{FJRzXxWT&L3ZpcWcG` z+RLcMhFj60(6Bi@T`=qTl{RdrdE}tIiZC?9`q|xi(||VqIs9r=Pj7QjI|I{Dl53&k zV~gMrUMQP!zk>(uPA@nZ6xQWB0)~C8TCu|ZEKaA}-5_|O$}fjm8eP8zG-y0MzC7@Q z%d6NkX&^>BQ;L$eGq9u+@l*>b1foGA#On>WY4zIQVkRo?I}xEYYGFgVopq!}MU3zQ z&dwwS12&V{fw#BzRnU#F7i$VT%NGck?QptEmgq)%0{|dkVMIwh9YdNLuc5?TJXm|m zG=M2LnUKKJ*`e>+(ER(z2pCawbM_!leR;k2-t}B_(8u@QP}}wWzhk#Ax(-QPQb&`PJ1|>()MrhrgK9=NZ>|^43}KeX&f#ns23iq2>6$OE&DBtf{9y znc4otwgg|xtO0d5&O35n?);r5`kem!K2!6@qtsT~`?cf-4L&97)7ouh4yE)obDGe| z1iy!`sG`M+B>_1Z~(v%wo$1bE*3CK2Q;l)R;rVMnKPhnW3Rb?w{Ya zn{i)}t^xuU)E5r59TNk0`sCTv)U=!9bsZ2CG-zq> zc6Xl%{1adoi(VgPAmd?$?9BX1O_ELR0j~PiS!As+JI7a#+ru|CXC_3N}R3>8v%d?rbs`5Lk2m_}gB@ukMgotn|x0xgzc1&7QK<&xO#5^pYhZ)Q=qy@+T z)b(h%uZ|jUJS;0dtsb<08xM(C*#@y?sHmSQ=eMKsppK%=+>3%lZ{QzJ?kk%`r5(#iXyD8)4?UXyMrR2vgfWQ~Y#F7st- zdC3D_{dubA{8}cVqj?I3Bnx3)YQ%(GnBDxi`b9U=K~4@(`%KAaf&x6x#UKR?d`OzV zZ1piLf{fyG5XknZB2mAnBWC53$S2^9ZHN*b-Ae~oE}h*m?-8cGY$S-7jDq$E`RUT= zlZcqgVI36>yT6cm zcb^a&B#>wItp9FsWHtk#Ny*^-Hvb6|S`BW{#lAZVP?FL6#JGlmNZHrH^N0{a=VQ9R9%!bH!EQA#8qP*y@T;E@760_*kn zr|Uv!!qCHMJg2Ha?4*tsYDIlJyF+2{u(*d3)ACGW?WS0rp2q%O2fLJ(7vG+DZ0g|B zKG@<2E*Y^ER76F<=tiZcVO$OwlbkisWw~8~^Y*{!<`XMY90a~d%^7>Hn}+Py%c3Yg zKq$6%uti%~d@wM03r*lDGB+b2wvHv50;;2C#@d!Wl8B8JwbG+p6Cvi68qqzd2+1r( zhj}ailQ0dLUdqolG{NS46)7TlnsO;E%G135S-8y5>C)0$z=58Qxx~X6ZoSpf(x_^% zXC~%r#lr*uO^(F zVQ7{c@y9?D8$ysFq^Z8E4nCjyTrt3E{{puODfe z)xF5HQkG?Y4{;&)sRX-->XZ|55^A!`e^z^Z#Cv`Q3_ zs}1Dpn96hskpX@HB5K!jCBr~IN-*w8r9s6yxeb6-)tK0UWDpU55TgSd_*szlyak2$ zfa&IChBF~b1AnWM)mKmj{Khzn zRsY8)$T3P95jCjh?ku_L8vmE!WzQl~bRGBkx_GI=ludIVDyH}` zS1+(qg+lnyhz#c}g?5SMccT<_l62E)SWybIwJ<1CSXuODI6WCLBA}4)}zOl_DXSRX-o|F5f;0Ch7M6y$0*FdW zI^jUXbj7#vZB|;$43iGwd#7O*H8VnJwaPDyEWvi>kF9L9!B-u`r|0_P31ej3@*{y` zgm9<)x>+V9qlEk~wgS@nanlzAfp@*<{hiE1a@aJGfK$X4+<}VKiGH20t`8B)0_)b% zHzVDbu%ROfHsTI`1`;9AEUc>K1p*hS5LeR+1*RCCEfBm~MKLU~{ecUk8Kr?N%wcV! zT-2aW_v_5OIYfJzvSc>_cq$*0DnX;w@&#;%)a3m$cI2|mlg-)?Q>@#DA}GB!lLufC zh0^2lY;Uf`HmOWbW`JVW-bqm>a|9gX#R%e!l-=|i3nS; zoj}r1lqYlEh0{Rog#mHQx%9Z#zjfLb1Mz%ZwM*eRG+T(zgol)f2n$3MTug|w4RU&# zBfRCfHkgOC<`pw=xEEVA#XCms+u0)KGHL$9=AV-J$x9gy0~yRu%f>~kE$Z~`a#og= zbbZ($=o|4W3qoWS!jf3056G$_Y7mZ47oJ6E#BR?vu<3muffp+B2G^2oL3Pw&Ljl?l zJwga_u*TIyeKs;%K=zhChv!8&{J3ezD)=I^YB;GM$yRtgE5GYFTNDHnANGr}CUp@F zgG{BvRz+N!z(p@@Fc1+@Y)?}QPQ8}_#PPP4mL{*E|2fg>;Q)a>4zUf}&tZ~Rjmg1B zC5@=_Hxu@J6-iRB(7rO_UTH`@7rdn91VPR1c_p7<#My1>+ltAvfU_%+W8q@QZL-}Z z>@3S$jeaZ+cli~l%SvY;wnuPEnP^`m#n4Cy5f336Cu6#9L&Re??=;(l5_(3+uy>Znd~*lin4 zgda$%V8PcF@vp0(m5fJMMOdHu*V^HM&+I0U`ccKzm*uR@YF%U7G1DE}R(zLx; zELNzQnVE&3Xsw&82u;YSlK^gCBw}maoXp)TV4W)N;i9A09P56p-eG&h^P6DVw#Bf_ z$_@w(*iDNBRI@WlA+I`NA%f0XeMoV1{%`Af-+KZ&NB8HLO%iz^oc23v0!-v!|C`jI zy5o>E4Mj3=vcILzTZ{MUT`Sasn2k+h9|<3SK#49-MMH!-(r`DFhQ1~jS9VeaSX@UQ zmK_L{p}`aW5j~AL%erylFn55I2u~YHUBdhQXO4hEP0vlcK0u3vmC&cB0Wi$kZ9kTJ z(d2*%(sV<8;`8%!cNllfmkayyy;2@wwIPU?Q&B?1LG#kd)T&-Y&x|D4eMW_chPX{K z`SN5eb3k%4B9Mo?>k4EQYQ1L4iZ$i{^H5*xTEelLaSK$Km}p*fk$ADQ~*m%JgG1 zLo+s<>C`Ihl&Wsyyur{Rk*ZxhFyiU?H>3JLp(H50E=+uginqjkObue?uvqn>(~s+U z?jjKR)^nqfV^V??WQI02qUUS)* z73w$eopND@6HGKWP|hk}o_j0T23F~5K<}|pbaJJW-NFhO(mUN75%E%n+DOP)3!Qi5 zOqpuMIg3M5TX4XmmMy5*`)79`=(rQ2BqWc?id3w+(%-_Bq1qL=Zch%xV7c@?iVIsP zvboDm$*@}*__l>kp`c3AQ!-aL{@6jrCb~jr77H$MEliBRSIHx|l7c$%b^tIgtm}X- z{Qjf}M~-uU1X+j_%?`0_1hJg|UGFrDmw69I$T^5#zNE(d!0kZKI??9l=a{f>gL!B^ zC19_C@q_9-6mvI4Q{2UoqmhOXd*)?9{;~-s{AMA#Oe5|60Mb3 z>;Obo)}OZgjyJ0v1y3MSEhl)|m*dKEt-?&?05ZBe37+Lb^Z-w&kY8FmJ~!N_{!KfMDl`u@mvwvC~h%rJK$z#*T9qE4r<);uh3 zcb}JmFJP*HbVjTpbnt*{NI^1R2)Rs5Wf^4=Ucv?1`HA#^(^2{gMOgD zIgXEN{H)#>i1s;0(cD=R4rXH$Wg{sfsQn_{Qp2BUx)Rr}hv2)VXTLN8%h$W)%gH zbDCa%@aqj2XJDgO%jVg^yH`ukORasRh!dpyzq-z`coicZ}Iw!XT(GRS^9^@bk-$ zVM9;79vgu5EK`#yk1EJ~dEl7ICqKBRSvh>l%NL5`Os=WxtO|8(vij%&^RQtTnj>TD zaRqNl`;De5YUf#`HwNW@3?9s-t8@(shD`|);!%nc540^|V z=e&}7;{(cxf2Fb@bavHY@-@OzY}~5rnD$U^0We-33 z9fg(muE$ui;Irk@iwG$Bos-;@I-d;MC zKA5%1o0`!9s$BZwjWD+uP2bCOtPa4hkD0u_dq^M_+^E*wG%rF*3ZdHf43UvE}PmReOVnEP2%bEq3@CoTg6(s+6lLl zPtkYc2k;fxAm`8fqGN2o_kT-Nwy2D!3VjCR&A|7-IT#q3kNN~=_|TIvLFak#D9-{= zX5geoRMyd+7n1pT8@I*Yy8vn3AsaC7`TRHl0{Y@k}4&c>VdndNRwbr;$8|9pT=>0pN4EeU|O&k-+OmWw5QTM};!bf{ug`zCxu zCOU2WbY=YTw*}VQ`x!(g8B7(NIrpnm!Uih|z{+;lc14Dgl{lai-95p%~OK9IoVaa`JV^z#V2hBFl!T{hy zw{G`Lu7NY%J~1MX%+|p?I%=UqEydKr?W@2tc(C0rTZ3Bcff!T;S7Vd^!fNB5f6`qy zQ&DNC<$b%cKdZ*byuFkERXS%Qx@L`iw^rk3V78-;fJs|?+9;#Wg_J*cMZp@~eG&Cmi|>R;mC@$Ni!9^<#8Y@b=#F|!Q+D#Wi<73~&p*?g8nM}qXp$io?h~MBFE3z|R z6UTe?0B)tvz9A*hiPZcJ%zM=IsvNL^bEWCV!+Y_Pbo%y0j&-k+f7orNqWs8p31?_6 z(Rsq247KzuW6sB+>`-X#$(9}t2Q=!yGnWv!6dsGgifs#ay-7_ccl!y1PW7$FjQ8IRgncM!@Zq{vOwdArU z6$QtRFM8w{(_U8qwsTs74$Hy^sK_KH^2&6{qK@|M^?U1NzG`axJ@P_JthMuZ?j8;~ zGT!fFCLg`O5aM<8^+5A~)c3BiF$J@o_@ z7}C09h;#OD)T_ldO!BBBy`tx!H4J8uAS*8)z>IURnV6y2*DPOjI$U;%*$2n3i?%s3 zRjG>7Q()62NA0)GXfJpqH+dP9#Gan;l>|*bES>Typ-eA|5!vF|-%`vYbF?M9tLo{- z_;81btb3c7%sS}xv8$_&K!>5@&?xGu!7KI#)G}aJnYk$vUww)c2P|~0k!%ybXbvH( zwC4BozTIDWwXRCoJ_<#?Y~<#pwN0LZAxFvxmDPL7nqtRxce+W0X^2pQBjM2Uzrg(sG=;@YcqJ_L_gAU8# zmI7QX;*8$bio%@xC~iFN*KfkyvYw5p2#p8o*_z(3`x^(QdWpt6V!>P7Wuyp3O(tMl zCu;r3#&l&eWXYH#4hs1;j{;y3>69rR_}9T3^nwAk8(({UDnAEA(5x0s_*>ynbNMlH z(w9vo$=pZeMJJSv1&`RYCnosv+Q66urhwo^_T`?v>8uw=uLtdQq#t57NRZ!A4(PC?s>!84l;ha>0M%PpW1V<|bJ5=5ZHJ1@!8$nmMC=R{y- zAmUX)FN)$)w^CbHMLRnfAYwZA;hAHv>vr)4XYmE_o9KYm78Pcz?@y30V=t6QZc1lv z4yI`RPic!MXDZwH@#h5T^(ee(7Ss(aT<#)O9pD;`keco(VZ>v~D}*cc=XDxusA|8G zOicaaY9%tz_%`l0N;NS||ICKFS?6!=^WBEi)Hbgp;55b^c=MrkJ$;8SmeS}TtI>v! z{Ai3puGPITc~7&`Q%n)&e#9lwyB!}K7Wt~6onD&$r81zU6NSR~sgUe}M=G}yZ3`I{ zh>%Yw0qzdQ^ zWypj3+h1};ZQy%-0F`3+CVy25z2$Nmp9w~;SR>O-oZZ8CVkg%W;)m~7nL6{)wWH;F zheF>;@7_H^t&0vFR$XXSW{qu|1Jl{c3@~bm;|Qx8jD#wj=D?mc7;iJ3oY$p)aPZvK zqI9I*J@t}OPU5``(!23O$8n`}2ZEuP6}g28eXD!XiooxF$6x1nFc>IfMS(4`2W8%g|K{g%= zS_~*>QV3M$$?FF-NcFKFt6s?03Bx39mNEJQS@*+gxxLPRzNki2L9XcZQQ(ut)XbV! z6`j5DxJAL&4cH*v4C~Y`4fKnC%6ybQ-y@CxD$_a>Ve16z3}ThU?0o4Jm1dg)Jc85r60DJn%Ucz1Y6>2r8S`F3&N$HmKM-D%L88Q+}CP#l+6Z2z-)jR6PlVMBYJ80kq zI>^(T?6cV}?0>Wrz~63d$T^N^%!joJN_SQ@;_H01#2Xs#(eS#}&s(9cCVM5E5*L!q zhM2*9jNvenVqkDm`zSIpz|bUSScxEFjM4j!QIUXDyN9hVE-JsHM{#p;6|F{0nH9If zXj-x(7kXclJe|HlL5&_=5h;B(r9jT2^Y5@J0`c)(Iv`>fi*PgVEk$T4 zuBYz`?rgiJUUa0H(4C3Q9)Yx~j9I)1nI-PpAsB68OWLoRbCtaE2(zbq#C-kbtJ%?t zYc<`D-|s$qkoHo6V_s1!Tv-{GRP#^>2n+s{cB?^w_Dz^{k)gXoeJ!)`3QbDIbV|R+?4^fZz59(&4BXaH!S@8_If~QCiN{0DK)DF#) zm$uD^)i9mPayQ70%LaiK%?til^Ggt?^e*??c)@wV#D> z16m-?)S9xEToKsrdWbSxKyeg5D_G=DPQe;cuf;xJ#DiRSbUp-NL%=L@i#bn8G_jUt z*E9qGawrBbhnBO@XRW4?-pgYvTVKpq>36sqK#U_3kq=Vtt5VXw`RH{uY!6p{!SdR+ zd>ajN_Kb8~b0>jc1*rL>kjgCdd;-FLn!M}uu4eJI7_H$BI-_>A`BWanh6wkG;+&;DPc>C#)(4)isPw~DU&nx2ZQye<+-YZV8Rc{@N zAB-MGX4(mbO^MrjKYJOUS!bJsvo8^`Uj~^+@3qZ{V>28rEKM+`*} zWr1!IdpMqE2Y%0PQ%+QUrL{L0p2t+9+W3Gy>y6IJ6mnOulypxzE8R~Ue%P%FCl}Bs zD_~aLz_}PZBlgi2i{eX5JO#9!qEMZVpU7FZ)a{~Lg>1${h!%9iXGrEcws?05%RqJv zK+CQDl^N_9`_^=N%kH(9T&#uv%$@pY{?snw>E;2$YnK%qD&T)9K#=G!s3r(hLZy=t4QZFm}QU+)gu979Gg%bgbqciRkj<#U00{z%=33#)Lan${XrNF&a8|NX;| zBO%(2iAXsxf9IZ|q9Qcrs@Vx@q#?`3-ouZX&s&;v{B%7Xumg5%5+;n0ACEB|6{!>! z(*xqAVgw&rx1MoolFsd6&2NC`Nv=(oLh$n4WW3({v&IMF$x+xtj|Zv2|FJ83Zh4*G z#87yIFWBq%;xN}Z&BDm70N9lf7gv5E96NhQ?}IQSXl)PkT6Ft@D1oswLZtG3ob`!! z3brz3vkGcJ4n$PhE^6TOPz3U$l2JlTJ&xtdp0qz9$AIibD;2!0be%B-in~l?$7*69hVm+E4PE+0#HpSWG=iQco6N5?9&ZS=UY(&9lku&hgpw%U~12? zY%yoVKh!19k3Jzg+b8Tnu|$h_d=;;9ISj>D)bq;`!=(~ZQKkqqpB#PQvx$5=CA1J* zJs^qc;nSSeHJjgvCt_R8uU{Z7B!|N9s$7a)LyKBgz{y8!$9*aoil5&IzOgCKDN1af zK8uuGwsab>i1~;U`8>i?nrmuxd!sBjpBN)ZGpyuJmWrUkIQRH-odG&ip}63Qt# zf4A+jlX_ZKSfH4E1T73h6aIqc8R%a=t-syI!dnmYvgqlJH}O+~%=mO9nCc$7g;$aR zJqjtc58Q#FVWRH1gh3i~adgclCB3@qfgiv}bsx})YLAk_dc;4J{iJd~Qk+V~(7|W| zgY6dg!t%YHLsBpR09)&vaAt=h%Y%7_ynLD8b;38SFtGSxl!NO4PQ)qDOF-9)!}D)1 z&)G_B9odq{e^DUq6q))J%}E1J$+(udJ`)johz@}wRO5;wc#aG{GWGD~H? z@_AIE@K9p=4btKI1@i9NLq_(TyCk01%67?d;r7PS>FdI+LTaLhjUZtz($UsyI?KcU zeT&=Ke9z-0OmGK%^&J zf9ETM)WhPg=8$n1QO?&;jO)(&^ueT}sr5zAQr5(bWfoXQ|^#ngZ?-PXoJ_u zRc$?_^;I6asPu}O`7m+M5c1lpw?$XV);AQb`?TOXQe*fR5zJ$=Wv6n+t;quS#M=PzTO7&PvOa2)YWGG$sz$Tu_ z=o-x?9jM~T-Gh5(Ua$5I`FK@fs<&PC;PVSwO+ogRg;ba&{o92;`W7E`is8MwhX9;* z0#&)JlSM7-Y?m%80$O?^iNoW;n#Hv^mmxF#(eVI$vQX4ap!cdXxMpW7Q+p4UBT`mV zL-tgn$^v0VWx2~WMnOIhM^$c6(OTq8DShg>h5nOnWUq5KJ7v9gsfdaVEnt4YtP?X> znvNehgc19X=-*jdwxlvp2qm049C@a}1o#P93U*BIXJ$vE5MNIm^<{R+>DE@~821o_ zT)%K*NH}Rm&KuZ|i)jt?ASyX~uoj5K6u8%r^n8qR@QhI4-gJ`DMh3d3$Leu;#(BvqTt%NNo? zWomCzH+Y>1OTXMY{-gHMiGTt{HYd3Ds*7PtD$xTmQN2RE2WSNWB_P``KLoVSW@{@e zt3bCVF|)qQ%gbi@vqw1sy*S1X)c(n(>oTptN(SgocAoA62#?wLCbQJieL}mo#gOZj zq&z!ouApfjylH2HxymfHw?bp3%L3q~$++3$E#G9ITl^+|tY&Lge_7yn-goeg*6#GD zdHU73&w^L6=p5680S9wk{;6~>4AC!r@%hJ&%Z!%WW0;H%(5Kdd+7`iXs(kpPk*uL1 zPdhQbnW#yR;_3g=-(|gNF};L#okNPv%$poVLm@PLiRyq2w=))~(EZP(wV-dsk(Po+y61 zg8Y#~L?Zw2xg8xH#8yL|o%6-g0c!Us9a+kl9>8nn=^0I&G6oljAHRm}LOE4s6zzM6 z;cf~<#vzJi_EtDf*nCw08#?%oW+%L=PjZtq--WNNo$vmLh{=!WNoh)F*svkScr08D zp^H9 zE1Yf=s=`JMV4*=n$!F(79R@^}C478J|MO$clSChUvge`p6S2UcAR>>Z&g=~;EEWM_ zy;KBr`KaZff-`N`O=IhLdafL9cLk58znG;u&=i2xK2&wg?nQ$QUpuf`%?#8|VtHd% zq!|i0$321XxYr9xK=I#GYIQ*FNtK(JcQ;k$943yFGj@@dxsXlR6#cJ7F+WZiLY`%3 z%hu*&n+}eM5PR(Zf$l*;B?#M&`->~7y8GEe95sJ^e?V(D8rrA)qT|Z9JN=UUjP=$x z@>;h$Tu)5+K-y-A{nHoA%j*|r*uaqO+00RKY6wbpJ^f{M8Y%&wJzVjXRtS3B^2W*# zw>K#T?6s-!4p~^oYYlz-4M{Y43O@qx$|uD~wobV8yLs@j$4!pU8$B(>?cJ15weeGa zn)<35-Gx~q;gn8o7d=(Zl#~gRDJpRpWVWA}1VTh5WLP_6S&TMftu@8>Bz6eYX6W*U+7e>;*@%KVQ(5Na@FdshqCxIs!NQ_&ZO!WP4oKp& zWf*~-;8qaiV&lBq<~dU0Ze>hRV68nnTLW^+d6nIeSpf9KO40XUiCyP45KW5^N~-A< z>N<2lCU`;YQhM5LV6C5X{LJ^f=;{SWeUH2rnP_7(O3EfMI2%JmFBoj9yPL;1EqvY9 zlV>NN;H2)6BST{?_At^-cWuUWrOu$#3;jx}JZ7dBoL3GeGD_!E!AC;Whwz9|dEol9 z<}K6*76U%m|NPur`VH1+S3qh*5f0o;W{K=g`^mnXkw9+hllSvV5(O1+`7Hbr2*=e`=_?4j|E%I8&+4?#$0G&BtgOx{>KBqIJJ+LUB z)$_z_6jPV%V!9usaniuyrywr814^{>*Lit+YlpLR2o4Mo$EKAr8B3OuS0toy-kcq> z&Dp&<+fle71Pl&u7x(fF@xs>y!0A$8tcOY{EiIiUm`@c)6iAs{MAW&gp=f4qOt zuq7VakF)c?%7gfY_0-_yK(1?hJtF9xA%@hpXEX~LK3Vn=UTi*OrA{2yE>nv#k%-04-${Jg~4Q!o9{2$58<0b2}1)&JA1SGfSx&(;SL^%3xqmtu|HmIIy5QOYvKpWtjRdgsVi)gtPRU@m$yg714g3A!;>!IwgPa5e;ScJj5Jg zefOpBTFz68L*1;Ol=?#&|EtXqMrtxI6%{EYEde=)$r|(xXe)Hsg9zKJWxu=WO93k= zZAeO00P}5=#;{xDwAGByj3{CE{FtD~yz&Da#kTl~>OtElE@rzDP)8kwlq2I=<`dA; z`>fV*($MU7D;TDx(hmu4D~DOxP1mfjH)0^}`QW}t8+S9xbU)yfRjw7(Dlj7i3YPbr z>h&z^%Yb)@hgsGhK&<4+_HzNIc5##VL|8+5R%fP?0jj)o=FJ9)?WDk z?uP01KgWg9vqTLPQW&Zi1L%J1W6|OnUaj`cSZhW%WcY@Rv-}Z!p(`Eo*qb=AHuKp* zyYVq%)zVTYD*zznEM9I0+{X36fT>Y2xOh_9VCjNUJyEcSw(nB-X6W8(m3?v%UP_O$ zPi?S@wxbM$6z@V+zAbUNJgj_fpV7~dte|2ubjK3lbZ_W-#E2~5ZKhtl5N>AG*|c}s_vB7ku-_mf-#;ok+vM=Z_7@_oLgmh7Bty01&Y=$gO3ep|uCEU!j^PM- zofF8#sR-Ucww>~sag-dL60it5z_=R=;Sl6@M?cr>kEyQe5CTq^5(W;ipGy~`X+wom zl>Ukb{QhW!epWTamddDVIZpO_Z-ndS(iB7iWGef#QuH5HeZ#YQh!r>Q-k?WH;R99C%=EeHQ6T`y2q6{KmL=J9whzw6U5Zn26}|_# z?|oShV_6B#;$-KKJ=h%U4&t=t)V2d0YR_G%@*h=Vp2)Fx#JU}MNKMZ6lHFeoXkjdK zE%v9MJv)fnpG`c!`EGwwM!P26C%a|&1aN7{YpndH=Pget${;5rk_mT4Mae%-D*cSg zGMo%Q-5~Ex0a<)~VMo60(RaT4-Ysh#ws;)Eebyk9^x2vW8DeIA?~%RO?co>hhR#b% zl5Hfk0%lF!n;+f}HlrkDPx34sgdfBD)UpE~%KOr`QN^c^1wJ*TP&FzAF2kP*UYi#Y zCt!C1VGUtuk8%2koZ<2xBZ%mwb^V{-6N!-+1~90wCRu-5DJ#`3=~#|6uH=Cr(sb*IiTLxM6?6o6Rw_tatcSdGD`hHQ=SRm^YN;213|B)3S*}xfJ-xfROWQ2TPZ$Ck@>^hT3w}Fh(O-f;4`NNFx@4x{`$B%$Ty~R9+U3SI){)#ym212dNGcp^ht17e za!7<4FSv$o+1^cTu}(5s^EgG-5!~yz21f zl0h{e!mN_2dc4kidnHO<|LqMXEY!EH7%=xijXW-r^ZQU0sRA4t1<-&Rm*MTIc4DJj##Tj~}dBw5DJ~f)P0U*66!!lTton77z>cSo9 zROYe6mW9nzJays2>G?mR@(O~EL-draxm*qa9z)8$N%@Yuz>TvA)b71qXXh42gk?>E zIp~sOf#UqTuEM+XPx`G)BI0%yc}6ISzOu6nVyq4BU18t-s~2_t4$_(f*=R>@3U?N? zD5Me^NcP>Q*8Ac@{N~EPvj8Rp5ALVM#BsWo@%7Gq$7^sf*c`LcB)i~93`PrL=zVZa zc)qvYPSEz+!ILu4Up}0OR3*i~1_lr?F@taL58YQpbncs&hJ$5HuPA05w3|cZu7Yes+E5CLLwcnr95&Dl_Oc9T zKbq_;SN~kg`oJA?;SIGO?iX&rMqGuwL&ZoWH0!La0>2w*I}!Ky_ak(1_L6FKDIuV{ z|A75Fcx&MN}bwFb#8&{b0#z!A1cH8^)GYA;}z+l<` z3kG+j>9MO2-=gBth=$wwoEo;8Hi%6-Z>DQNnu$k>J@4(``MKKJJZVs`J)mAwb4R^o zW7P}~e_%cnkGTu4MUbG~bhVxYq;LHgKPnLGIIBP_(qxwI+AX?lHqetk2%5wdUbpA* zDHey1YmWy!Z|*~~e=~j?*B?j<&epNGWdbs${YVm3d2*TMh4J0x*#lqG0d>*+R`*{e zt;z4WK6pdg)7Rg07v0xD+^>p9hdokJD;=8MoVZN@NZS*=vU?3LbRjsN_s%+ry8|?~ z1II}$p|7uO;>$qhC5dug;8oiucLafNU>$rx+w+oj=6oq26Us01vUttu zd6On_YCvP1mSp!lk#>(A4u>@>#QWyIQwNKN&9eH0WvLUVJLCTaaP~#?0IDsN| zT#aCgT>C#Qi#dj)tmZ$$75T8J+0jCROz@-WNJ&2tK+s?-3A9ue&3og_p^~3 z2UDrbMAi>!d&GikX@)5S`8e_^-9xKug=x(u)CTB|aUhQYnSfd&dtybp1hgDH@)sbR z(msyg(`L7@-Ez!};|@}{hj{9lNO&Z2`kN)~#oC!hu;lj%#m0)4&EMS$)(@N4y-OQF znKAJ-E#PMSzGi@fQnGm;?8NX6L5!3P(dLzm^2P?^ zmzNc{h0Lxpiz1aHP<%aVDM6=Q7;-fl1>s&;!1A(HSaOTl|6t)>JA&LRD@c+)yLIzU z)W3AP-BxW%J^zN~)j$Bw+&I{7Emb=>*itR#7AbO(S(Acvl#n)xzk+jDy9q*JT!ynN z1#3GEDi0aT6f?7CB~nrYc*cJJmu9Y{q}lqYDoR6WP>}10daTKu$4&dJhQ7Aue`|@RGaz@ZlQ4It^aifYAWxxWAfSm763)Xb6XwVy719VV(f+%W-+Z_#f zvuS&V6bN+Zox4fpVTe+=J#r7~Filh7GWJzO@DC^BBbN*kEZeXE!cQ7vW<|*4(qFD^Up6CQSevuHhH4!0xPq z8xG8WKrck0%wNCTkSYp|lB$F|@}qF9*vv=Vn41z+X%LV$$cLtsk@8>Po&q3Bq$ z5<6Ci`bqsqDUHAhW}U4hBrN=R(fJaA5+|Q#3{sN`ryuwq*tYta1<>E31eWByW0~Dz zvL!RZH1+!lvFr38Scpiu_xq=oK@MF&{eTCf@fmn3?|@uYFfPVEKu<*`1u_NTUJY>q zsx$O^w6{IYa9Js6I7qshIxNdG1oV6U&u5DjW;Qm#Uc47GEJBA1FaSU016Cf;GET(j zyvkCC(xth!I{O&o;MYF_dA_25x<#b=0i5d-FcZ##Z`vav4^&v|W$LiijeO$*=Yveg;*Z!+aVU$z*rwpXjjmi0!fG_Tq%y!fwceZ>ns#m8Y5U*Da z`2FeHHCZ}gp>3$*-V*-Z<~Q&cttXCyyAxY>(LOK)PWu(o*}?ntR!G8_x$-}1v*=r& zT6)MyA$E}Hw=NZ;D*p8rkeDP@GvnVeTG5v&y_vHOwo?K6fLIlj z%fe;}nn-_YCiOnu(KbQ`AcnrJy;@pc3&=PchQCda;K8Sfrul^}J`hzb&Nxjx9No?2 zSPbT)?H3SdHo-;(KP50sZz=^^M*ql!gD!j(@(xYvX8KfWL}bBA}K9+yKZ=nr&M6HjhO1dz}?gDeR7T zB+3mW-R8gd7N*jI1OdCnJ}gMF4W0s`kR3Z*w6<}M|aDGxKa$S$&;_J&0pAKKnF1{qyt_O@UP$# zd}c#Df9A!%+X+FLIvcFo=eEDgYu{#p{N#BAf*E@I`T+KHQ#0_qZhlj%)#gU5x}!&Q z!>D)kC5?!*b14hvG-IG7VZQLbUUT!;C5W_j>_!iLnSJQdb#HjXZ|g8iRs)?%{5pm; z+Ocf^#^M`r@z8=rlJ!gfx-nECr5y)6rCZ`ZK7e*e|1J7_NbYUT)UB6RV$qoTe4j#m z&G7%57#R_55f^x#XKOJK-BZDSX@#T-M|w#gbF{mM7^Ws^*e^KezjiH!k3NbE%~3qz z^i~Y~VMb66(?{+0d#Zf3P1$Hb(m=B{#GTKoAhr9O2sD49P^A9emT^;xBgkZhHL4+G zgbFROaM7ghvo`I>q%EXPJe9Y@JDcF*;Iu)Nh1IDc2sMod1MUUoK8v{faI)+xC9=8` zaMC1U>i8o6(N3Gav7r?8@S;|@m)J$Yj(Q;HC}A~%QXqGlECLbRtOr?rJ)Ch1Z-qQC zF(x$B4O8M5-=Z}#F~YZ$J)V_A8ES*33XB63lH6X;LJnL&hSW~Co;Tc&)3wN_m*mgi zqZbpbQMSp}p+6`wkYt@Me|i`RR?B#DnB-<~Mr(TZA{GV}9B)TM_42>7U}D~iTS-a} zEk*gw{NSSS2*5K`fCY%WApp1nx<^}CrPwJf0Tj+vv6Uv@uHhH-0iiT+Y``#n0}Woc zI~f8TVw0@Tp=a$uKN!&Sh|CFb)4?uV9V05tDKVVA$Eac5+c|@|MQ|&AkB`b_@ z?D@5eRXXoz6Q3bG$s0psY$F0Zr|T(%Vn>_E;qyh8?CetKs(<~b5<&CfhkE(@T0=(q zHWpCMKOCoV^mb zbpN4VF8OAzo_=Yeaq}M;L`_8SroIkwHZB|&2)~qAvgQuS^)f;k^>qE;*3#^D#dK;3kT*;+0Y7_3%BZLS(y#hExI)QVn1* zU_yGky24rQQd*opNFM1licfiG{-9rd`k|6*qW}(Q`NZypf`K#DWy;HGPHH$uV1iBL z^KkmCcVjxA&djP%U7gLHuRj*J;P7a~0nNEc((8w8uxIXyrmtK*}{B zl`VSTHnfHrCX(W1D|bzf34Bcf0n3DwQH_XrsiET*f*srJsmKUGL@Q`}$NA9X?8R3S zdf+q*jI!x*`8jCdbO16>ytWuZ{Ws$;t>l<3~f05DbL? zNt|l~$-kc8u%cQ_8qC02CivI~UDql{|t2f^>AqJszNE%k0gYKoU}) z;m>Zu02vi0uO=6vW%14@Q%|mV93rQtj?WHh%L_${5@at-ouhJa&onV&Uy@ftJHdLP zCag<9%D8xNJ15@P@PSfDT7>HWUx{XNL4r2UrDys%fjR~hQj>?+3s>FmHqnyINaEF_ z!S&2ZDfBGrVY2Db>pP6?jtlS&)ydaGG4s5uSxH%|~L@tCz3XwwQOYl+4beYCO?(g;`Vqi{?^E99kC+^@A_DJb4>L{rE-t1Z8gczdO0#{6x0;$T*-()Ocm^( zXMCh=oHW3EELK<1o;|7D5e(9~)MON~eEsykQ^B6OtPMu?i{n z5)TrR75{OAnlmsLi**``LZU~v(1(ZXgmYN>%W8AkUnJ*{zbLk=N%lY}430Tw4V>t0 z(v>lm#c|2}7q#K-`f&-A2TJ)}PHOW70?}6=yw9uaZ*0-c!52 z#<-lYKd8Z~Y8{Xd-#~yEK~#2mI7purmjDQa3ij@YHAd1`Q?hePY!TL3Mz69z7-kU& z{5CM3(4S3gK2m9WlPpAyiu5awL-d7^Ofr>1=-eVMIdQP~kIKo*{ zs4N?M|HpShXIbCiVsM(U_1R#uiJf+~@jjjJGE2GbsF+?r8}9+w~2b;{b)_0^_2?ks#2o^t_%BxT1pMk*iF?Md?H#@gRUOZ z4h14vUcG&%#wN(frovQCx2o!WLQXqK6YL^#Y(yTYAsUFs^8-5xMz3s4i6(>1Z=j)t zn8Cy%6fBFATX|_qER8QV9yi9#M84i0Pguy<9KzPZ`dZk|MjM!lQr|`cy0BH`HNa^1 zTmVGSfg=Ta9|Yze>Nvs92Vn67zaoiRt226=Zh`MX5^-rnTvU=T4An<<#U*HE51+k>d6NwflcTaXH0lE0Va$Lof zP_o-WUQrdwbLd@wfx^A@ytxST0X}79B3(OISlb}T zPUa-d^mYBmKBE0D{FR%_*2Be94Mtb zIjKWSNaFqGVcS1Q@_F6woY&l8WJn0YrhU})j5`%BufguGT6$RZEGO!Cf5vkEr$KlL zp#8LpFg?#NBxh1@OOIO8J&_hzvmJb!B5xNQ3P!kfMUIId5z9UIR$vfvwi$mgST04O zlH;4t(-ufoIq53K7lpkP-$Cv-5;7cSq5oQ4yi+e`>0pHd=qA=y8@=Kj)X$9@cdAQUhuj3xPEa9 zE3u;YEzGXsTbH>?BXgA63gGP;9-pf7+~!P^wj%f>QvHfW(E@A1#03hh^?C1ozK;&I z*UA_z*M)13+0@w z;maYn%(3y)5uUebZT(@+SBZ(iu!ks}6S0B7+021Q$!SfiY{w5qZKx)M*>Djid6nf+ z!CORe5`trO7#u6Hwb);X{14)AidmeA@+j=)lJW(vL-~5mauzwW%{HqF{JZ>i4!CX! z6lnAPq{#sb=4#|ARn(3&d!>%`thBIg#(}A_@WeuDoFEj|ECObY1k}`#J{DW@`V6FJ zcvr<>DKmW`re{?Vl-QIh9d?~7po$tD`!XEpQ(IICdg#oBE2MfAgDFEee-NKo*1TF z(&}_~ik48RPDdNZb_1C65xQMpL=vMa_%-pBn%WRPX4;^-%PJ>NshLeJzB<835!ZwL zCF&kKQrbKeX6ApR!Df0Iu6siEyPx&?41G(efTmG13xibm_wf4qktygTearJP$X3N= z5B5XWRjUfO0~9Df?X4z#HmFA|Uq0~F`yDrGO-s_6*6RU$y)6lRJg+6VyBtZTS|rBS z_WWW|igmUZP3Wn5_Zpk+c*gwi;nPzk`8dK)$wV5}sL0t9eTrd&sucn*E=fHV&I0E$ zwqrv~3*CYs5tv;^eKO4s9qd(T`8KEn0;Uy|`1QUwPm{s$|cn?D~G)6V@M4a3R z9R|c_&FA2AI&jV%{bS?MqqSf_#*|hSCZ@~p6XY+Xw|hj01qJy;s*)72dw!DI!{L?4v&16QbR!Qy6MXS&fhWj$h(C z{-k-IDHs*c$-+ji#r_dS2>T!dY0A%MA2&;>*SE5^rur~*)=pB%#@vOdh)dP_(^<(* zd}M*of^kS9$r;|AWg;U5snsa}Ef_l{Fn z@-PiqLKg~~#m}fHY<6m1*?Usp^r-i+ox{$FCt$vV?^Kkxq0omzt;d|CndbuPvc+T< zh+DaA^v=8p<&ZUaDs5;~<*j~qk=K@g=m0+=QQfJ!>Y=JMYBOo2TH2~0GWhF`1Zz?k zN6ZV$>Mm#w?~Fg*RhRGZ5`wEdf^#OL_+b21&Q4bR9ar=*cNSRn41Q@&;r46G`)k3Z znwgS0w$nRhmfM)FHG`~)6VFXkli_UtkW&KzN4$W#quwCaW<@RVuKTXUYHD|OoAfa* zL2UTvDTF^e2>33N>!gg-zSP-yz2D)mZ!VU0WlGaqjb-bqMWNu1)P3JzOlZ)9RgZKJ z-amhptnO9l6P3dY;oD&#^t2RJD+mphdfB_PHd#}OK zzr{K^;mw5-0|NN{;pfN4hldAWf$*!aiC&gzg<$^)2{~iv!6=A}EcLE0n4gMq7 z2{a&mfCvr_3=H_wwf7Hvt5tZ4_xQL=Eh6#HNdId0tAOw$&|RFsCe-r%d=zp00|Nt7 zT2axFPLJk{^6xI_egvwW6Ik+4ZL^$SFZ9ooTqcp71UJeX;Q43&Jqf!K;MW5z^;=fi0 z4qWX39PH$r5D);=;wGET9Y)vv0=Vt_&7<0H5Vxr8gBE@U_0M|zD!}~+lslnSO%8Fn zTq5zXu&_853_9v6PNI>N|7+r^9Dsu5ZmY43SQe}k*Nhiwgs7<3|DO>iz^+Q=3+V0l zgkWzA#S>nfH8XBBT~Rh2^UMFWw4HJhJux&@XBU^foxT7so#j6s%E~Bet@!`h5iJ;S zEmSfHE3-73#&)}1|DoFZ#b2$Z1^>Nxtxa&~vLVYq>67R6IsfZh*5J^m*w>4o)ulE6 zc}$fE@Zrmt2=+Ap*`D7*{N!7|fmLf!|GkfYSO5iXHHZkSLH^m*e~txxC^+~KSLhDp z(tkJL!`F)Nlj~Rt4L1E}Xb*n=G6jKEK`&c*f!n9x*wCJK1UZpiX=#YLe%eEZbFx4m zxc={Mu-%zys{w{K!vjQe6SzLrh^zUXw-aqUZ!;1tL!gczgM|xoyHuX;bvJ}r9za+q zbeAXFartqZ!4>1|O*E@zbQT8*=D+I4eE8L4waCbp%;aM<0wVq%{M>5AKl}CL;T@PO zlBDrr+xB8Yh8+4sh0h4f_H(`KRtE&qr;;F9sw18Mis)Y#vz*t zQ|^1XjShY9mJh9^AAM}&-LlmsV~W{3t=9T&EN})0^DoYoqFZYGx8CKSUu8e#IT=A zws#Yo%y2_53tAxU$}d%=5y4NE>7st;drbQizT4GZD}Sl~d#mVk$DKmFX{BBgtmm&0 zw9unS6>M-tH>5cNLg@4&tXk~PQYWZpuQoeguPbW0`)3P8U$2xsx_o+3;4wn*0Bst) zc32ZN_WjX{J>Gw;I4y_ZP;$A&jeo20JEraiDo+zS4p*P%_Ww%yVwQAB+ouu1dPgY| z_ZNcv7WpkAtR;&R1e^J#bjMCA%$)!A8pW<*fNL^gu$|C8JzIN)fxYDt`l3_2#{;97 zqZ=_QNky2rTcZk-qeN(Z^ zY6hRiOr14cbdAoxg-Bg|4@C3ccPs=RzG61^gWcABs&;LNEG!!AP^!jneeHwtro0)1F%8CW*en3j$4oJ)t zxSWrhamo!xV6|8Z{6q|E zKBD@gy4m5XeVUT1{)#^C31X!ZpThb>0mlP&+^!K>l+w(#>HTJi@pbygliv6)X@SUBpJ6!W%wvim*Va-#_eTP`wLG>~t-D`-q<6i)H zT(LFKx5u45XZ|Ib+Q12JxVq?$^K{G;zBCVd-sI`-Q+)7sPPp?s=Hy+ooP%z@ha)wk z3BwXq%y!{^q`U9P^Exn^CT&D{wda^LJm>%f^`YSFgbefMk;NBavaDz+KqybUZ zyAd%uoXPEb7ysfj8Du+H`TD>x+mcHoqo+^z`xQd!O0bge3X6Z3{+R8_=~-{ zc=HcXM^Sz!?&6NG$|QiT1!Vd9E9RCPtzvlLw_%PqW_jEG?1K(!bkCv@^z~OE0?l^T z(7~!7deC%VEhbY6wYE3TTIv>&L+djD@CFA~)|(@Hw>6Q>Qrc}72lPCi4hURZiBt70 zlh?Bu!!gs->b4=Kg#F9vblA9?Tjv||Fy1%3=;~vAM{c_>#>Royu_kQ(Q`mBzY1gkb zY^`>SdHFc1U19fV?wlbZVhf@32H!Zx8GV4!d#(U(Q~91tI(Bup)Db4DV%e)+cUN2T zFi}xOl5*Uy2roXa{>N41iF8Xh)Tw;hZ}-f#TO|EA&zI?>%)XuGV+MT;{W*JZFayVf z&g|68pPWRvkX>%B(B-lM@rVF8+u_t~dOZaiHGlJ%t$mIlU z8>sjzpf1?$xPGpVks0w*k?azZvbh-Z!_{BS7hJRz+^7pUmM& z?(0I0%~2!7sMF_n+>63v=WgFXO0x5xK704lW^Tqgehf49AR5}(0s#Yl0_Uddi4#j{ zT~dPtO>UD^dwY9;rlzKu-0pMSYMJXW03@W9KhwMA~?2SLy+TM#?c)v@(3J)acHFi)H(?a&A`F2Lxvf2*7 zl{{#fbGCc*E^4c+8FfUb<^KUII%KxyvB59$w4a7G`+i`4>eLOIonMi2L5a4V%wweN zWyR;Ie{{yqWwhi?_MApisEbXsdC#_9$$Dix)99kVZlP0$7IYztQKGLr(K6d722PKUn<#>Z*$N8_I8g8xg zu-oo^yQ>*hE%*AwEM2cq!Pj+rncd(z)Ug=^+;g$ftT}^k#c6%tFEDodGk^Q3@jh?D zVT|j5I=f=Db70pkYySb3{nNv53|QW8>?fXYQkjm4-@Og`$^Oo2I`tK^%e7Y;KpKZ= z4aVW>H$LeH<`u*dR~+?$(|x8x0q8ya5-b)QZjp}c%0bu}kUP9C88XPVlE^$UYx(a~-H8voRJu`QcDoVC%f#v3n3L)sFl-=zsDFzIwq{o;#LjR*r%!b9@H( z)N3iGjVyp*gHE?v#ljJ3Z8|4Ks50q;*U+5@pUc?n=SI;Sv%_~eJQ72SO5ZVIYHS1) z*V$XgttXh~_?A_135q;nLmF}h`eb4I4X-fW_?RO^?-{i_bJ@GIw!ubrgVgKpymx$v zyu?ql-;b>0$rA2-f?Ueht@S2jXsQYYwBI`TB|uQly;uFPFMAF7sf%T@Adhldy1KG{ zUg_{iab=#snac*l$Y<+4pFQk?OXLOnwkVRPWWe(k7=^Jp_#ff~UN?+RP}w0NHJByO z77XcE;StX3c9ELBj}LchB9Ix6XBG5g@*clL<^~?%h77ZtWBHH2f;8@t70gF$vw`#zg$LqjYI3B=QO}x;-#b^Jsn6_RA zn*70T>Bn~S8S=6-U2}Ur$wobF=sE$w#E-7|Bxfy21l1bsKt>~SveZ#`&@G4jeTc)X zkoxY+BSsNjaGRsx(@sBk8lyYl-qYcS74`e0u!ONFk!2+;3DgUY3TJ zL*}2Inds3KoTu8pi`^H&ZXf9-V9ivS&mM9Wk?cWu02f;jOoJU?X_((DZF4kyoE_f%YZFFnSeBAWHg9U7xfx z?SwZais>evH?dY^G7RCttI>nM(d~v4f@T$XrlDI7FtAcTaU^2$*}$rQFnHY(0V%4* zy%jnoExZ9AyI1+;={CQD`9^Pb5fiy51>DA1R3Z4=q8g>(OIHUqBE_97o!gxe6ALS7 z?$S5okthVW#9VDT9oy^kgn(Jm;h~*WRNn5M3}iXz#H4^7?i(NX-ccGCc98+vY&x!44b?9W0J}2Nvwd)?a=wfZw(f^`u}k89#c=#a zN3qB0x^ha~21FU-P2RU0JtkweeT6(u{GIw7LalMoh_EF~QztbynKbYjrdCS<@-=SL zKM2D1dz9L#>rt}9^2l+!&INm&#a{s1=7t1g(%ot1hFx8&!E{wjmYe*?BuW?a-gaQU zz>-Y@^@^YqliN?$O2{-#&I2VS??i%H!nZh$z&BNnaA`7dzLaU5#Icm(OgF*FjI%(I zuY%Ph)VxKpRLspPbc{-;>a#?GRW1IScGy4?LqNhMace@*P_zGhHH||`ind;w!1Bsj zA(NSCip=HqCShN~E4tZ(wIhLg_aTi{rp>rxUsD!sQuJ#Q=H$(#QH(%WsQ{lXLPby& z-b5!fRNaP3zNf!^p-s09ELE*c$)93-z9i)GE)HPH3f*|$R+rUiJTZpE88-nXXVo*F zqGc%^ay-yPRf<7UDJa2qBZ`jg1I@*D%g;m=54ci>StuRHIAM-@(8)rRBBL=a`#IYk zdwrwX(GO?4!wv)!TeWuTQ zKll5dbN-!c_MW-6X4d+y_4!#{Kyq6yG7W@i`^2Z;;6C6x4eofUw7A$xULtn|3G~AR z8U}b&!`E#PX(OHdVL$hjZE?V5}ydYX>oS|Rc^HB*&rtEJLBO` zV?x?MUszu2(RA?(-FCOT7t~DsvRp!?j*1rN)qMC70H>*l6uL5OFxVkemHei=Gr__v z>Z!Tz7os>;Xp;WI(}q$Vw!Qk&+DKtbF?H=UuW4euGsLjj#OCc8D&g{MCT$f_k3l)$ z+A4uKa|9B3!aUZ$`m9ROO(e@VF(qrU_IZU$d;GEb`bNpl8Qp)!dwE>&OE>L)bx{~i z%BS$;#?gA}N9?R;&)C|$!=?5`O?imUb-kF{T&coPtl$T=4w$PA(rYl_yoZIgQMEF+ zsMUE;9b$>%lqKXCTNh&DmWEkGJx%^ZRJQmJ8By8J$386JPEr z-cdS2G`k4S-G1~&(42hqgSvmIsk@{eq@{7BeTxnCP?ZYPtjlr*{lP|_?jYrM zQu5I)`XtE3u2QV$yEW!dNX$2@D!u(7ucsZxhp9yl5N~ zkg9SPLp3dM4YryPQ<+0dR5i3{OoQOk@-lpk+)meqb_Gb`mtKpiN&gYW} zQ9~^fmj!lSLuhf)+!FmW2fr`DR_bvuJh03weyAU@17t7NsWR4foo}U|#t9_iORyN> zx`%%(vg3C~`8d&P@(8AS4~OEJ31mSBGf@;c$S#>(CRWWc(OP_44i^Z7HCowzLPpS@ zt-Ft_it{Kt_bW^ZHh6mvK=%O2=I!d!TwJM-3pFnJB?WhMOW9|X#MEEpc0ve-JG+@* zjDpVf#D^yiw-)9-!sC6y*x)tnn*PF%kmSzEcbPi?p-;d-l_mO0;=A%LSWg_AXq)4$ zO^-hBTi9ommm%K#nxnA)>>bk0M0qncd^DF&(EtNBN6HJVonwOe#&XZ{3ri=T{0jjs~CTnTMbF>5a=vAYEp$SP(oj&PS` z!g98vt0q&$ecI6&tKlQpjRvFgzj9)!YG`N&MZ$TJDFzei`QRB5bwRub--`v{(21#jpkPichi_y(t3cHd^g3h&D*wmsMtT=W93C6&v#rk1+Vsn z@47Q`4%y=$nL7I6MOe|@fdhy6iJN#-D%gSWqgyPZ_8RA`b~(yp{y9xtaIpE|JT)3N z+vHN75EIH;!a|O(KtwYCuvA9quA9XLj21}HP&ZpN;DFn&4Evn>E`hnnV@82+T4P*V z_Ck%eV5)n1a^_~PBn5A%x1eav3v{%R&YJ;?yZQKhu3R(@={s(VGwJwSp{xkcd3I)M z$s%P4==*UjyfOkIt>h6=Z$xak>)H zpf+xx`E2t^+%o8@JprhUa480>2_}Q{3;@H%M)@{A?Hi0q!4C8QcJPTR`b`0yF1V-T zIcevr@6!FDG9K&UgKWA23(x78%szf1q^A5?eRKG}CoIYZ>_{*3YuNW^{AssPgQ+t( zs<$r}{Yod_z^lHCd23v!rGVKLdO)=wBRoP0?tiv4S}E2njsM)TNg85ytSwFM%N&&r zw?J(0h{QxQnulI5D&hPZ8qd$y7C*!j6nUo$eQw>} z;%F}ZgFE?1Z(09osAC*T$c!x!d0LY#l}#l-2K{Lw9wq;7K&PemJ<#J#Adfdd-J8hA zAUA9Aq=!d)@O1-CPi8SLzD`_T^nTs6wM>oxPbhoU)A&FGX#T$^yaf0wXW-SG^LsSY zh{xZLbU`As|3tA*`-b!mQLngGWs6adNI>~Kjf}_;mFMQNB?SY8g^>q(%rtX}V3T&&lAthc#)M65a6raKoEmYoCE# zb(5`sAlb^JxV|T^45BBf_vEcUq}!mGOyvOuw3NfO#)kIebLsFchvin^x=5{a_@8%y z<5HgU-6fikAIg{_`)tl>n&B+mCX;C{CQSt&ggmCX33yH}SXnDzUyZ9Wz7}03#q1^X zz;xai!$7+YSwXKcL3az7Fq0eZKhHuWHxC76_rH%ocT|JD7C8E6T8!pzc_X~p5bU$A zmC2qy)F-dgTcbz2MwKkw>0Xj>+(?(9>86A{o!M@(nR-_#sEy6VC1cBynHjTKCB&tz z`Rz}*!wy(QSG8b5>%f98?d!i+(p_KocRih~$rzB|z=DSef+9W&3PoTQx&Oc=BxoZE zkcIK{Q>gE&RI=hsSja61^)71_>WR~!2Hkr!vCATA`146+C-ohUa!tS(*khNeteL8_fQWo znCt&cIe_mnCLu<@9JW+Y!u!Xf$3FP$kB{R?hEe_FtCPWjguF>GF{RfA zfSgy|9<(#**IXDSEos4epQ|c}$~pCICmz1)9w@(rIHhzUNW8Qwg$UL7;$LR)5}>G1 z{ei4?n9emHsQd6?UyV%=on?fMa_R?LlK*Drw1yGTPD>A4sg}L0VzrK1DwBMMl~=-_ z`WXS;3~RlFDCW^bL8Kg+YJ+urejc4^*M$>_#Wa{eA=C3t1{Z_eFEM%EgN#_MokZ8&H6XGUwqq#qH}N)#n{f0DpRQf!FjX(5C8&CTBWZoYnqo;Dm~ zBzPlDG-ySs@{u`?&Rm&W)t;4!HCq#Vd3h zU7=j9AWAzH97*#nxrBH8nK$%7cCdKk(b013)8XF3H=Z^yNriQ7cuf`dJeEp6kbE6n z+B^mCu3+LNjYNQ;m5#L>7ovOlBm*k8zYAu!YFx=XDz6|S{*rQ0a89U~Q%gbxFAx^n z>0RL_$u+G=jjpeLxzaE@xG+w{L?$62u`0P1!zA9$m8`$)20kx2CL{CBK$@biFn zkCL)5sf$aa0xd2XljL%{Qo=+EQ~7qxqis0~RMh==rsQt>+LJ)j+o3$6R@MZYwH_6D zZ@^8unBeR*9*rpW{0+~QV$sBygjLeBUbBmSl*(bhYD6$7OQDOMP*rJoBrJgFu>od2 z6@yry;gac#!q?pRTyNBbxPZMd;;w3Z^UuwMJL5g8Vx$YTF%{s*e3XC~aAHp8i+e>Q z7bDWuky-lL2JJp=wf)Y})Lh_HK!bbWG(YhD$iv&|315BkW^g<<(>|y#b@H}^K{$5D z=$NIy(RXRLRT9Idel6rufOde5qomICab(k-#uJ8bh`9@pY53lKEqiS+dDv~&jo_w_ zWEjS@HsJQ|R~zyen`@+Nfwo>cDf*zxB}{W@bpG~&_rs{PHOD2z-Er{!sd;*eC|06k zpXbEEc!)}}B54z&8%8@M`L=d@{Z0_SXR!Nnz|5H=@gxnWhP?E|_UeHg!gCwS`}-Bm z2dzo}Z0pi)JTGVwXa3|jk>?@FWuJ({v6w75{In_=#W!uoW+Cl--@8@U4#wRf2m6_P zi$3e|yF9OO_wM*tny%|&RtuyPvyU5&uEKRUhF6LYrvsQG^t1h^I;9Y*Lc3l$f!VU0 zu4iNe0GO(6}%5>XxQpQq}f^%`Ik=ZR_w@z88=o(+$D!`=9uY{Lls zN2KG9xHxgPm}I^xh}@i38%4CApT<(kIye%wMo(bcg8B!D4f`cVkPD1*th2``kLQuL zVpfVMpVP0%2MecUGwOLM9GzoUiku`Ne$CO;jMRB3dh@Bpb?&D|H4-`+5FCo+E0|~z zb$Xhzu7v8Yf(*j%%5Bxjxa1VZ`SlBM@y9rE6|MMqlE<_sV{zi6t&1aYHL%6WX1t#9 zafhX&ww!}2-5Qa#V-y4C$WDiwg?BNz0ovJ`VQ2@>F=E`U&+Rzj+jS$u)9%_nw_{r(x8$C%%?@iXGyC}$3L16=E=r}cNCJ+;k z%cd7CQ$T#TCtKZj;e8io=h!oPZX)8AWQoD1oeD~XxGFv8!D^HeAlb(?&pR4d)YE4 z==dbooL%=UU6uueB6EZtAB$A(=jT(=*_eYmLX4d{rjx;54Vbl^#l77XlRd$|Tyfbj zBVdf8vx$qL8jC|K_kzN2_@B4j;%66(4%aSs{kER4Ulr)=8TL=B$0Z6r1CtnOKDnCo zcO}%Wvi#s217&p?)HPCJXvc5Odl#EOkcd9oF$p?E2J^qEypwoOT%hrGswdtkA3s|K zQ6p>Tz(})?UBl45My3-WLw2@RSvFesryQrGtCQAu8k}Xk4YFhY+g7W(@U<{Be z;5xFmA6eAzO`tXbX8UCxo8NF*&}A+$EJa>av__0%^-B|hV-;XHX?{Kk$e%OZ`5nGj zGl>I*MEDyx^*>W3=sl<>&5H=gfS=0PaW-yXWQuRnX(C?eWp4pHlT;9+5lb#HB~wg9 zRAVkDuTCMO)}#CP6th&fJdl>bM zm|j3YF*=q8fhq){x+QZ(+=W8M?a*OGl=F83nTlnR^X{hEE=Z`Kf;${=Z1e@*Rn8~bJ`*h zV<=frhc8HkMnkmMCDtYG83MTFe$NU3Kxpgf5650+28`5NMT-aSbg+9E1mVgmq&tae)9qggQ`6NzIVKR4(Sc!+1!2B0 zAS#K>2#+@BdlfH%@fxZAin!00atCt(%p`+WD9(1gQ7nM6ic_#2L5OJaTvXsnK9^p( zurV{}qnf^Ws?hLwKNRAq_@3w&J8S+C>!_29ETwXWvDcc8=JK2JfJD~4L*kDGv@Mx3M^6P+oIJ9_(KE8gS@)*-nf zTof1SYzWs?*A(`b`SST*=F;2w0UXeR!$dc4URiY`yavop)eU-iLj`WlDAVM`&5M$^ zMP)aS*T)9goZP)_yMz>BEj~3Qr20{(NcOuf>cNnU1IJ9fG9!Jd{nleid3iC$21LmC zkog@KH#Z5WXL(~maT{kgH&<83&kn;FH)L&(vhTN{av*ko$^z=PycKlE974COrWvW) ztqhF^?{YFi(I=G|m~3KLv)*N}V@69PEPU7_r*9|1 zb!V6;UUPA6_2VR?AY+Mma&k3RCn#GxG843-6Iw^DgxD|5JjZ@w>eUtM$$Q@c40 z*{N^EoLX?duBLYHE!N?TePrJ>mzFzX!i{jF-_grbro7KQQ-%M_0*EtHkh<^E-x*`L zpuD+X6FjyqK@5-BcWO+|@P1L9Fhw2fIq_jv#gq4uTFg%l$B|~ZU+**7kdjHbU{--z zL$*rULMA6_=L36ZOk|mz8-)&UDjEumZYZB0vuLA5i7Y_-^CN9|KRK}{ctWDNQE`J_ z3IjEm+4D(@R;I34;fv^A4R)_2i>*?Zv7%rlI|Ae&|8yprpD010mfR<;(&mCpt zK?Zq@#o{882>$GS4D*sDSIM93SZKnx6|#a0coW?hr$i}nKZEw?b8X58T;-~-L5#iv z?u}2LgNOs%+(hDj1N0hdWE4`$;XfC~@^2oY*rY2hOvnA5aGwm7+0TvFarg0jHQi&R19^~E9d-&( zUN(O_2uW}8SvSujJ-sgE88cA-xFMH`)Qo2HG3(DokG@Oj2vfNmrX6g(dX{}0nX5D1 z{Ekb?se(Cp1LNlBHjaN7l&*tl6f}{T4Q1Z78ccuHYRl()uvhMW^Ai5{midB4K78-) zFVXrZ{uj>t;_Oe>%yIaDNn7_b&kCqyzrAsqmu$A**s(UoUwVd!+@cFfvn22iEuvwp zv#;dCsccPdxD)sJBMpeD_$tA)RRu0%PWM~gLK=T>^^Cfvo7o51T3l*l>eI+bE^o^B zG`^Xya6%Hk^S+Q#GUB43#D{555CPZYES+Q+*+s)d@|6fBzm73+@=4B0-9P~drwRJg z{tkMXkyD01*tkS>$qP<+Dl__{a9c_%KuRt#!|__EX$Wh-Jr#TBVPR)7`fNj>Y9N`< zL1MZ1xMW-U(Je%fNm1hQN53A#62LnST09q)hAqnKy`%0H-eC6SvSB6BK%qk(7*jMF ziZR$0exR07RZ$^RXUFSl*@<0{l&29FGG$M2;*dPJw-9GJ^_`WKah0N;B_%U|qWU>> zL>pPBrQ@j}|YJ{pgACwRdtO=KiY?ppP5B6&E(CyuNtZo^~tsPB{(`&9ZKFkePtmN28qZGd|0FYL0r#1X7@0)nnuS2FPRq&uHilW+|E??k2cg4{KT*+dsxMxAJ zPHw*|dVvYdfB18-hvvwcaC+Y{qIy1O9k-usEK5h0FRot`QMZchEH*VK<(|C(@S9)W zpe|ZI^|Wl{eycNf1DAae72ui1Qa{eCg)L#N7LQoH=|N z@M->|fwURw%CnCwZ2Q{a#!Tk`Q2iekH)3#WhS84V}hAL;z@OMSpfMa3>GI z%(=Fv`jvd&V|-FGjs!dh`T zdOv@jNfynrBXt+LU<~VZZwQC@hdH-xX)4l7^EO%m6$ zs4rQZu49gE+9k$}uoqP&o5lGIuG>4z4VmYmPF zPWP=QGfQ{eC7s3wqv-GZLX{zpWncL>w3|4B{L=Um(Uw`B@RXbjHz&;(XWRDiE@Kli zZD|dSde27nOR$%W{Gby(@$5_MQwv5v<78v9Z}}qXqWBC8_jF125m=IuVX0lM z%}8rw{bH?I0)7!8dfNW;I=mqBa&kdC=aASa^vKxo;Hn07VK8t%n`eVds@zD}8WgEF zdcSC0;iG~lk-$h6hy|`3Kko=!K$h- z)2p~SFYd>G1J%^vK|7rV88Xmx|G1wTJir98-Z2C99@hVaiUa6i14uT$_4~s+Mf7y- zn`leGLcu_)ioYnq9JT^zM0HtKEh?LAN510kdIvNB;8ODFKtTLNtKo$AQyAV?cO1>F zN<>wK=~d+cLZDyisF}t?&x#$)2atUFyf3Qq8!_yLjC}dLfS!`sdV)}&oB-^pn z{t5l6W8C&}SX~4u_`9^2u!eeAp*T-ztypB5toPKITMc&b6^Y&JT=cjj(J$R3;qMiT zA<*9>)$QBI)}MMT{n0})lbIIOGLlr;hy|a3<{MXHBKA$q}YH; zE#DTmt`o7mW~GAJ+}wNuR*j!O#(_yyXjoWbF|mO#h$qXcv^9F7D1k3ofC|2~=EI$5 z!YbW}%lQu`00Qi4>acH7!Fx({7sUCHYfqLpaJfUGNVzk}amy>V7x%z*ayNyA^gXgx zbcO?7JD1!S)`59aeqV;%IdrdVBauiG2?pQNiKXw?T>65a5?@v~k2g!E3t9qGB-sqfq+N=r!A zca;h>jLYp`lnR*KUsMP^VU}7FnrG3H%RbiFDECj1V`#dif-cc5ek?^+-!H$GzRqk$ zy2ebnqs<7_^PvEKIAPnU$l$e5iBTo4s*uvqMZQJM+8$@!m954{?pe=?JJ9d-P6fw zT4UARtYU66x!W@j%pZP$m#6BU*}F`>Bwo1n>6ta2VN_wj&lJ{6dE#B{0=(5zT&{SG}j z1$lm+Y^eVgIC)wYn$Wf|lTI!%b*3u`6&;kx9^F!K2u-Tp@;B+!CNGNM3?&^nCL|5& zX&So*{efNvO<^<~88Wlz|3{NV(IZ zMZqiv7J+^zX-SfO1>~tC8G)p1W(V+F_;MIJx+6pI6S=tMK)Yuo!Zn}O0y}f`4mRRj zLe#6{4L#c4!p|K5d3_NKonwRKnHPnNG9jwevARY5FqaDRhkwiklT2mz8vO;PUiJpJsG`FZySWDl(vHD*%JYJ@9AELa-Smje0SC# z-jPXaK~!;%=c2!f=`jFJO-sm6Z?9KkdRQb6sg~(gt*x~cNSz)3g6H^gT$;=5bRc^{ z-@CG+`Mu*I@VVaM<=Gi$RpGSE&W{S;#pK8waCf!+jnL8g((YSjOrL`4x6d)&?VdXf zj|GGIl@>6Y3&5AL2>iWvXZHQec?WooE+Y*V2L>VLPV1BLza62->nYwL+)qO>2-`;q!a6nTe>AEoT_@GU6z@}>W`MSpY9Tl} zIqwY&j}G7%EQ!jKc#^t&|01?T#?O)J#;rWJFl`J)7KBbPCGAqRR7BRD^^{~r%FT^+ z61MQof@E7Q60#mLJvX&}R=Ks`kT!aE4K?UVQavR6MeRUr zyDR%sHmjYNEH$Qzs;E{%q!PArL?)&tg7#8p^@=p5`tnp76n8!^n4-| zks340%77;t&(8v6kluLX;>-Srb;{oo;L7eyCXP@_dv%sRw2xkEzvv=j}aKi0knoQtCH+&ZX{Db&a7kTZUekT_C5lPw%i z_f+Ym7oh`7Bly~iKeR2_3?!yh4xkS{6r^Bq$_k@-uwl!DrO4t75{+5($AV2#hs?=a)I zy%-9YR))sVeH)uU(2$2M4;k$lNa)s#I5Q{NAHy5ZOlr-EP5TvKKtLl)U9Qqs9&0lC zrQR!Kq?B@5lPFY4;ZaD&gHd^`*m>u3SVUhEgDFr!f{En8=(jq%LI%533*?@86u_?@ zXHBFLpZdZO>3XoN2^4>%AU6M=;tZp#ft9KSE6 z;-wI6Y&y#*w)#q9A~{ZJaVw&UjixhjN0--f0bi)VI1^G5Hi%`EnqZTiT-=Vd(>L~N z7)8CENkFRlZkAmn;gQ5|c>I2k-H!4%Hg@G4=%LZrF^Tf5M40FJoNJ+L1=m}EIZa~# zFb6W)7#cFy3T0*%;SrW9kbftzA&9{}=WLR){{l&gcf{vU!Z651Yn{!4xg8iwx&SWB z)EknU{zFfQ3<89Ib!skdTkcLOE)caa>y<}>qS&Z^BKW(jltS;?)r_8+ zi0vrD2%A5q;EXUqF7Zp!2x~;m@D91yabZk=;6!S93j{QPo!La>*8VMn0T99JH{`l) z2wNuZfx#et11BUL23zq9y=J)#T3&mTYD^WyKdXq@w_3G4J}CwAwl-Z$GxxVdG_@aP zEJHel-r(ng@w=EPao-?QPDrg6X?2QbyD$4Cjpk1&^3 zWJTsyV{#(T1PQ;w!j;j~Q|jxFB`7>J4U4XJu<$=ONB3~rp0WPphma$<6f{{`R=3Ic zpEuQnl+>rMl7rG1Bn+yQ7sfS_j4U@YW0d-Tp6u&?Xlc%A99lsmK#)2n6g}%JKPgFB zNNU<1C8arP<=mIbj%9^Z=3Ib%hGC0Jh!e9i4ssLO4O7Kv2!M*%UcWp)8vr}~_^m3X z^7(CAgl?@jb?6*_pyzj<7Gd27==%^9J_%YB12>rX=&LPD+*K45n1XfV=#4^Kr?x{l ze8u4xP6Z2`_z}B0V6jZ;`?40sq8wg~lFj3)bqURxXO7H&ZA67zq%`N1fu=h|#_6hx z(p$x0rbF8tzm`S82%9^iyi>Qd=IHf|uW~r(kIv^Q%DwqBlv_a44~v3NWX{qvR-bU- zh%*$Q#urYK$S~mGzDUhS8PcwP3vQ)=rs&RfSP=^=eB(_Zjpvt)1xYL=ukuHCqh-G{ z;;5jX9CX#hwhd^7B+kaPWwESY3AkhMhW7ulgn5up%1#hz9`GFn0UDdZTI)(JPR6N# z4+A+vntQeteak5wUPVLztk1JE=&y;ugPl*@eUf#@Q~zXar2!kK{kx*Nx%NkF9=?`^ zd}Xwzm!oA(5YE|rVP5h%hNWmI6)D#`@u_Ro6ik8I(f06yVxDX=!$49Fmgc$W4&ItNySL{{&7TWkJDf+=hZYf zf--Jezxq8L?YxDIBso71ioLo4wY$hE4ikzoDS|RlD-i|;z=;XzVv^PLWD>0(xMzDo zz=4t+$Gt=jC0?FF(2k65zAGtygC9T~FXNpG^71QFr+fWnQI(IINuYGXsvc4}B z`x$PXpPLsS(PM&RNm#BQ;rVX>CXWkT)=Jk?hGysA?k6#Fi}7E5XABJi_OA%MBLHS% zUSpCaY5whz$^Z+Yn=&Da%>VR$K?1&Qq5QWGT#xG9NSqgRyY9~2KHc2HAMeCH_?*ef zdPH+PJwSsZzJ|r9@krX<32wOcWv-;_hEn@shiCkWyYF;$#NLU>)DXr298|==C(m1c zZ)c~kxzA`#gq7-%z%;Y4p1Vnne2r6Cp}oQTc7hA@T13%I>31IKw=Lq$S8{Q`ds6wu zG{2IaV5`MAt^ykj?yB>TNTt6b5CFQ|X&{lCO$=}8!tJCWDwYUEP>i|e6}LeSb-R=a zDrQkKz^GXAbTO4u%KYeBGLfuJ7m1Rswd@1Q`a^ICJaYebEj1JbV==+Q#tyse{v`Z-S?abw z7{@6rB^AMS=(s_#&)f&&!s~)$R9@hje0=M)Dt++FpYU?PrqNv_B=A1`=9BBzQtA_H zacNH1+}Fuj<@dA5Ii2kVd$p3QIuE|F^EKlr+0G8eTh;gKxb{~k%Q>enYeEir@mdqn zl(;}Z^TTIQD;-f!HCy`xF)27G86rr#cE{mlc7Kg-`_qLg8Wrvf0M!;~HSVX_8X1w< z->{mT9UW0O#o~iBFSe-Jk(dXBswOV@g(T2x4Bc)CXC{+hj={HV-Fbo6T<_Sf z%d2*T_Gj?59)P6XOv|){pg%nS{{>^{*1v*r4br^A#hr}~e1F8M6^c|%6|&y2LooqA zv`_0F<@S{isNB4u*n+WgX)X@ff^)%_>KkYL5TlbMJDCg}KWs;sNZf7Cdo1lEDX_&9;c zC=h;?A>FiHil&Z{3@%;>Acu*v*3V5B=_SeV|=D~>`LdU`uJgI@=v4Au8gSeWVRC;3BPXhbojIgt*bk}PRz|`kB1KH~)im=ZF%;hp z%TZA;qzXWO!>8)+xkOBEMs8oSuYD6Q_Ik!jQC&&>KNI*!W50UKz5T)7+GvVIE>02lUdCEvRe9m@2b!8MAjDIYF;D4${~=|dP0&DGCLz#=15i$@6^0h6dth3 z?uz`+7#{k{Eqz19AUMARE5h@JUDmA>Y@RU_IH20e4dOGCBeQ@Wil@`^H$+tF;qsq@ zgG@~MX0-ygGVj}>WY7{_kfws^{;l$I+~V?3l=8Pp#Zc}(&<;!oACht3^ubA|OP5kR zPbQLBRK~3@QlGasI=#4BF;oo4(^$B@9;!McP`nw@Km~IdMgCT|RNeaG>6>H3M}E`@ z;X^q-mwNeuX}O^L7J$C|n9X9E!@RM#G}}c4v`XM5;Kd@|=#J_@x}LCeKL_kd4W;FU zqII@<;XJQ%8_K?Sddl(Kq?_H`$bv&13KP_2bj(h>#u?);rp93r9kBan)mPGF2UNf< zk?EC-Tg!rjN`(U)x&s5&eKJ!XUaKh@+j-Itf-*-H^(40A;n7{ zJTwGq%;}Zw!^xxr$HSn_VkAOI4ZcvC6|yX;q`KAOuI~PO5AqKwM&l#36Z{I}9OqLy(gqb}?roOB7OghLTVgr?k#$AiqA8@M$`~>MB`>Zc5+Ft% zM6aOuwLe0jY;Sr5Ke+Hza%B5-rjF6Q{LL&X)mK;$3oC!7wah(#5 zNBRZdT2{V-LTxSU1B#*{?rueK%~+Ph6L7`}AcwszD<$b1Eca>Gm>CP@hlM>wzu*Oi z)D$ByN=MW=s+f&v@9Y%CjVeMiiieH276vETfu&~^{c&MmmpRD6H}X|m6w-)0s`Bw=M)5iYCj#!vg^d-H;MOx zdfB6z5Mt28K-Zr+b$>F=J150nk6y5}?j2M2DTE%S6{=cRdKkO{&^+Q=&h+whQ`<}O zgAlQMf_f8k&7xk*#3Wp|Kw3JQ%P+H*^)f_>j>;sI^#1EF32RNiy(ejD0}n_8WocyJ z5IW>YtYg#~Tp3^|0-su88It&@siSIS2~cQoT3g6A#;Z)gT#}ssmNU=6D4e%MQXmnf5Q7m*fq&KF zOaEy}BfwuiTxrrLyEJjOZrfP=ZLsJqD(kSc&n6^eF#WH_33TF{znfws{^ARWSf&aS zFkyulGlMN7rDj4H9SnKV{LKm!9jH^GVQOPW-!2rCwB`Gk7kCwA9DGlxwQfW!NJx5R zj~o4?=^MVPsi&}#!zjrfJ4V~+Z}raoXPBo#L;D=K4n#*~Na>30kvnwdUAhz|%*NGc zjVqimTGN!me6Lm9E2ck;njcGyi^m+BYP<*Zj8TEZRM8qUQHjOj+Ad0E!`C=*vJXJElSASPEBV#4~iNEOfK5(ezhFf(*_|+ehQhP|jo6!5( zX*=y3L&f`dt?vWMuX7O>N5jyfg9BGhbvwk25PxqW*Jk$>zM71K++}GKaX3u+FL;Kg zx2>|hzOU!a-en#K6lmCvlRBox{GzN6LPSin2*n= z-f{4pUuwP)(<%x2zvHT24#`Maa$Z;7#Y1osGM22T5WGZG z`Q5c^qS_{aX8>UlCb{$r#A2shMC!#eA%uLj9^xKlWRSZ&#HZN;&PfJ210%ZSjPy6k z!Cy_ZajVLZsPFHL{}t~u{E)C4BAtTCfpF{Gn}9bqt&R;)T9ZF^6s$?>K#SaB_#Xk1 z?r55e1|#zr(PuNP_Grr$0Dp}Z~-!DeQaJ$cZG`T=AWmG_FLM>Px1(`snl zD|A%Dsw?SslzY|1VzOvr%G@@Q&;k!cTK*DFYX{P)qS_LbePkn+ zTgez?_`OJ>C8(^+1Oa0O?&o@Ny^6%scHra#mCNzsDSAx(h3^Lptnm0CtM_zN2p~3E zFCkoRf2>921A3UndoDyK`dey**#rD>K;@<{D)L-p)hUZLVI4fbBIiLkhC8Gd>MNCe z(;r4g#=MLZVu1aZ_T&Gog%uF;FZ~4^G%&{BBK|lJivspv1ps8nQ0qA${lf$?r``o6i->$D&PjW}!$OY~11aN~A01}#9C7qy`mCmgOf_{qv(pD3m_4We&d0r)>U z=Liy{9f^ZY0=nJxe1{QOsn0T3qF-y!tXyy`9#3LZ8UG211G37L8_!_oq#X6c^p6%2 z3HRS%&@&xzb#?uDK4dL7PKMGDw4y|mLkIc%ugmzwt z@tLAi)&qeCSWgYbWT*!vXy8ScV8e`qW&aoI(_#(1>{Iq!zaWZkjR*1x4gT6%(CP>U z%dvNEI=$Yx!l)Mn`%jmF0yMD3edSj@!wKWMx)utjJ@{My$UA=Pk144M@#CJAu&jSj zKKfMPkYd+7U%&RwC>frgosEkvBsy7f){gb9#7}@UIG+t21P7BgsYGfuY)59SwY?-Z z%2WLp4Wus#6gWF3uxfIXZ3q!=z@^jlE7RRBHxWv_fvN)TVFZQjfuE@m3<@!B&Q7Lz zlTY}q-59(>XSv?A^ZSDLh$JlJf4)YK0Q9o%H7mvIe(I0aq!`UMug8l<94gTBD1S?W za~+Hk3|p&Y$i9X4>}!m(|2eN;P>?^|p`h2Vrb>dkwIBfIN(|neNS_C&sDBTE2EyM7 zB!?UWE$u&Nr5^<3n&8sj9D*e9pNm$9%Y58Ce?QXHZY(@vewzU+sEro z1i|Xg$?x=utndYzD z0ASPGVZ&t!hw=Zj0iE7~MHothtrwYsf`Tp1V~YIm|FEzAQlIpTh^O0K@ryF#)0jbI zuhli+rp^Mv>-7IS1SR>ikbmwY6zv zZCWv%_tk160|eVYH&+WN@~>BXrpgB3Q1UvF1c)R-4AiTI;x)@fJ9g%&aYk@Bb0WQ6 zn9}%SD=hl2@c<7E(%ueX99d!8aV=iBW1_4JwAb6+E+HFS52teNNT?%?wt%BidddGi zFa#j&ber*rX=S8KqJK8SUi@49smhdq{CBczf`opq^wPY4L)J+|8B$#Dovq! zhiB^yylmEt`+Iv0S`0|`;(;wQlvsy3Q0v|8ypT1ya(fj)$mUj*ra8s3#2@%sx*;nF ze%XSAKIV)e(iLSy#jfjFM6SMkBHG@ilM{IQGU)8Iz(D9 z17|`j<49>f1VFqN6u6ilTXY6L0wNsWYi9N1oyan!Y+6tUD*9p7sV-wCO_JmYT}Vk8 zbSnhjA3L^*eK>sd0W15T$oTl<&9UsNcIzz;-`kvNY`dOKf3*MsYer|wbs^>s_>|Bs zZ#VMb8(n=(>@h-VWqRP3KSGRvtNj|ZzZMPNrFk(s<&1L1j-h*QoLAPJT&yuy#_qpX zcR<-;Y=U(Qlr&40M2X49LD5FsF#KfN@AKII?5~CUBr1~oZe!neVf%ai-D*73kjyp> zytV6w6%&2aj3oNDValL4MKscDgk*>DY0D#3EKQ7(SC4zLl~51Pwy#RNZyV>rWN-yd zC6cr6^}}NDmjk)qG@ZfVX;%(6eLLJ=T9=cLc<_+^3mpsg!V;)^+jZKNG~_{d+|QoU z+}@uB#?sZoBLD?UdjU@TO#TyI8ly(-PI81fM*0xc06* z?^}bj-(=eB-5S*@LXoCM$9hIq@C^= zGhNu`?A{p&f5U?-f9AsHc7d-^m7SfP#_do5q1{B(@SHO)CnuN2Zjm5{>tH|yp0&$- zTF1NXE{ya@Q}Y{uv5=YjZEQx12dO7XLa*;AHn#_9LCrtwVSG&?ue<~n>-e47Q=J<$ zw+)TaITWzq6Y*|m{Kt%K27mB-XZ#*F)MqO5XU-Srgqx3RAA$^QKQ>&qQ_6Ae6R^$Q z_UR})F2Sg|XnwlV*ZQ13+OyvkdraYT?#3PW;3Y(BAzr`*C%Rs*PBxbE)C4gJYvffY z3Ww!KdqW+&_4nDrCEHve_fNmE&9%H-npogpi`ueYq!}qz9okZYv-bcUt2Doun zhlFN1&PgzV!cyUTQ=!552~3J;2;34Ab}hsv(V--_(ojJ8anbVmRjGUBHQu~4^4o;s zIbI1K(``?%H5LAJxBPhHnw%4~;!>Y-9E1qQ)1mp8e>546d?y0DzM~-7wBdzNQS2A; zBtVsUnh`{NzJ+Hsqdty1P~uPOuRUJotycZmyFc=J`dn$pY$=PW{EYoIW~5=PBm{wu ziC*xN`dY|a`zk;!Tzt-a)*O$+*HD0D3+p|@d^U|Ufin&gmyR+Su%H@EGbqij6)i48 zii#m77VV=J2#Jh`2%)SeD0tS2&^ysGTWE<%e|bClBpS`*EMPOvO=)~lBese76@$FWq2!cR%2 zwlaz25X2YgW#Q*`48=#Mxn#{i87KjvmC*TsjzQt~P)&UW`a*xX%j+(U`cs=EisWnN zlJp0H6|DI+kMx!9NU;r%S=YdI^Dnm$HRmQ^no$(kXi5g;7xlE^EMNE3}oD-lyd$fmucV($AQq2ItM zmS?iX!ER>1;numpLsLqoz3aT*=>WBph$40}&HH093HnBWf-9RAU38NM1_ z4VU|yoS5M!slX~J^e69@#rPta)$m7ef9R=0K|3PGP?y!uL|~eUzHTPoa&XOr7W+v% zG0}aLj;FPjabzyq7eR{K!<2^Efhw!NVC^DF-w@;nO;FkwDc%0?+Z;xoT%@C;#xb;i z`;1>&-zlt!XI=x}#E+0~*@Cbk#e6mBiSu1op`x)8#h%Z(~};OPP(vZU6aNZP|{WaJTX}KMNEI&;v+RwV@#~eX#Y6aD}s^zvg-b-P7 z0sN82x|35tZI6epBiuSNm_GtQ$n_|kJ15I10vsQ|Lp%+WeVY&{KOVr*Y&$`ZS&RwN zYk>fGKros{^s~;hV?Ye9G~N!8dq@)9_Y&yfR})#!_m$szz3FKUIIGA71~h(#2Soc)( z6A6I1M8YWxTS5tJz7Q8TU({a-ZKs%d8E{R;ZPeCPO6*1lEF%`sm=nt=G!LN-p821V z7m#{ktp24!t~i6JjCzOs4E79UPD?F1V@F_Go7}HzgHtnLGTU4JIST~WYU)VOF;2}< z=GK^s8_rQd2P*S$p2rQUhUH0jQC&#ltt0{X$tx#x{JNbjDdt)+R+Nc4n)wcq1DvAv;;N;h=2 zq8i3S`uHBgt|WlF;Bo*UWxp%8hZ_u$t0$MjK)CoBQ(Dt@3h+^$%)Lj!dPikqv3AJe z$U#Seq;FZQoR)W^)eUEx5Pj}ki``ZGFh7DPz;lTornj$N@7uXeylFC!0euc{LU8wz zf}wgzEXp~-e>H_=C-5dXbz=2*bnSppXqEEnX4wV ze@Jzh++vL`57{g3u4NJCR|kA&HXqCO_&y7PfhTWYWk^(@nwRyiT=tPg|60pFE6 zG54j})O**pqZBTD;V)ruX~+*B)DE8T)bQznI9#BYsaOs;1YqKlW}fk-fS&J-^GzUl z4R=SvPte0(%$C=ytR4(%YHF!;)QGtSKt#tjg}W>LOi$>~)x3L|-iiZ2kAmIAwx&4<`{ zLT>N}kuxu1MH-{3I~>%EYzG1-)u838SW)ic&4P6$gV}+FV{pz8GRoj8u7IfU1mA>C ziquEQ{O`+=+c#L#OJY?}6KA9}uCy$pBOF3NR|9SG7K<7__gY9WJ0Q<(UO~_E9Q!uf z3qQgHIC`1T;FFY+)&$Yfoez5XjLa=A=at8VR0oB?`{U5fHH{a?z$Rx^-Xx>rhH3(? zs=+TDHXEk;8-|};Euoef_!uSCJ@17;3-VQ%GutKYMvqOH!9<95W zW@a%H){tLvdr8kXZpne$Jm<~5su0e7V`<2=uyP%NpOZTdoi%xeG{wPm{|RPMFx=QI zz&J&euNys$QQaR-hoWfo@NPJx{E%uSOpjL3)e5V~XyQCInKTx>X2Zf-%q)wxrJmLVr_Wi_4?Mu%x;?vwd8@U6zV2 zY-n?W?Ng#k?=cCYA*|hSaWfjAgcy$_HI9ti zL;{~;pksWL-XI0IN%@+{XO#^`V%vVsX5yZMah9| zg^IvA=Vsdwn*nVpP3jih&yU3c<8Nw#3sjbkmf&H=C4aF=MLcY9NReBLq9obb10Eck zgKHE-$4MKIVm7cclz2UwQiVSA@#4Q7YqO0pEV(}$9bX%`oW)>TU8H0Ly3cj^9PUPw z@p=DUwLZJM2reC+5TmqDS^=LmRqO|)!3Ea%S^Q$@dfoabmd(iSH8Tr;PHMs zT`zdiYZOgY~SlCIXzUJ6zRDXVX?!n4~S5njpojsHyr; z1u{^2nCwk^u!pFoDcL7S-SL2TAig9&^SDa@>*;L1_6pnfKGD2(J$`6xq*>BGs7o-8 zarfSlP)`4ymH@NUgrun%hP*1?^WB=0GdE&YtvnPG*TATEcvp-nErfGDKPrEs_UmO{sDC`=T|1+x5i5D( zO|(Sz92O^lHgq986n9j~ z5Y#vEoknIcfYh~O|E0@LH6z5yj&jL>Jh(1X@HN(X95r!e3 zu;lgjjrB%B7*hl2{AGjEODUBQ&f--9CF%lJ)D!zUw6JsnM~y6LZ$X(fWp&h->+DGP zU>MH4UJBaZ_Mxcxk!Bw{G;vqq{0#X({H=K5Oux@0Q^k^tAy-<%shl>W-PXFho4SmN zHyv2wG%p`kBd^MiDI)7xr3;oh?tnQ!F1B7L)Lcr##g#t2&C)C^ENpbJ-`L2;5c6_( zYDonMwY0Ff_7KhEvex{D_O8loa;G-c;IZsox?66CF?NsE|Eqh^+|jF{UKsqKEam89 zyQ8>$gKF^V{B-imB5?@7ub5nyBz5=u%Q(>+H6> zci^FB|3>fRFYbxqZ?&UdYfW2?TV0v!^L)%KXNVk>{^nowZEjqaQRt5QSut+t{rD^j zL#|3XF{XmhuJ>Kp-be)PWx04k`fQB70;S&QgTP z!ScC)-no(z)+M zp3JPx*LO>@=)YHEVb)=34@K(K>0)g~kA_AsMQjt9-8dD;xwCbXHM5niVn47{16obWns*BD^)e)H1x$Wbb3DcMR79K7V5$WjawP8iH_ z+@uj1*%*Rn1+EL^-QegLcc1_+M0a={@oJ@_s!Pxt$>r9`ZRFlj_KjtCUT|dXy)cir ze!k$O1Y72RKvGw?w?f^)VCGCcs)p6;A0J(#RULeYVr3}y2pwGeQf-6Sc^L7-zZf8* zOr;zq+`S{4a`2q8Crk{XYAeAz{k1}8=iTf?XdBoHn=aVCdUgV6ELbEL4ty_5CUqSg&DeYqdxGAr#rrjxsXlFgH9c|S7ag=a4auKlFTqL6+It2s z*!A%hrqiHMTva7w24nY(P~gz|RuJJ0IL|ph|73m~=vvwZjLWCA98geuy};&EFh63h z5l{qg$GDJYpWMcH=Uxlo)n)d(Km;lVCG@xe{k!qaVgreST#vhD!sh6s^6 zFj36L0~aY-QdJP*jBxf2_nUauH)S5N=v{2KFgApnjDY6AtED9Fkz3wv1e%LkGusw8 zQH>B{N(&ypMns7c++!;?Rb(g(h|f?}O5;pfMy&NAA~y8w^QpTDPBWMwqo(M7b6`z5 zZ`ku#e3Bb9P@`n{cs@!{(LPVndr6qP8kLB0wUg!(lIRs{XWbv<*M*Vr5Cq4zo zF+yvj$3km|iYax0P2@e2f!}yE^NlL)8#kscCb2a5yRaq`PYK7(vhj#G4DTrzeAtDM z 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 diff --git a/Tutorial/images/launchURLtoggle.png b/Tutorial/images/launchURLtoggle.png deleted file mode 100644 index 828c074cfd523007efeb8d2c28472fe615c7899f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5652 zcmeHLXIPV4wnjZ31-pPs7dU`H6halGNkn>0kfszNG!c*@(k&pUL|P~Y2nr^UKtMnU zH6Ce!06`!GkzPU-kc7|)6X(pG>y$G;=Kj5T_FmcRUF&=DWUam0_uSl6?-&<97Y7H& zF$4YUmK+@W0PJ0Q_y8N>^nZ_Jf9(sf)YIW8CJWB7nP1$mnOx)GC`~xB<9v{V;{b=b zF+`V*i;9ZM%F4>i%WG(8fI#Y?0A&zJ8w3LB>+2gC8QI#}LZMK1clZ1E?}I?;AW#Jq ziiJWOLGeIP8X1HigJP)ACR!3mJL#`t99shf`k@g3YJ@`5LFq|3GPq(fN{(`4y;x(t z45b)IVbgkLS}~ATtWK+tqtz>aFJ>?G@Abg%^~&Tl5G5W&#XxB}+GBVSg(yZL%20^F z6{0YWC`Kd7(1^hAM6vHgneRj(tqBT)!4eY_)6>(DNMwF~eqm8jb#--JU0r$_xgw2> z#ZW8oW9eji1(}TPU#(yt#@UNChEE^ESB#O<=|5J*YCo1fUcnl#XliO|ZfcrgPr}M9DdH8K7p5gpn>NVFUwt4-idb^<={9SVsQN$QPxyYn9*pw+9%6+bX74(DdW60=FF^r`HtbXX|dozN!J< z20u}GdFx{&)!x0tas6ifxtkFZBG9Ap7*RB`I2mOjBUw_0g|AKb=V z@AVJA8EdncL5eTN!)k^{@(T05uZ#%R>*XY_pr>XCO_YI!yqOPJ`8*(RWcnNQ)YhCG z7SWeM+Kt4fVcnF`{uGP8li≶dEfubCW)czCf(migIf&_fpi%>lc`qM?c&9mHWK! zzVQC)$7u7kG)>U?Cb+vxo5w#nzlA??4|%A)WP_4@0i|%nwr|!9Y{>;1NyJUbg^malmCAWqF{F&G*N*GM)r(H=}Q z>FTw>Nz1(MVLGn6=r?ggRni$JDn#tUy*FsY@=jwd-BsG~98H2~*@8CW@(wLY#%Zd+ zU(myRm+A|Yz6|w?dJBYBP(6g290C`SOPH>L!MpWg25aikNUFC-Y&T_b<8izzQRv`< zI_tJh@N|JJX&TeWoMzq3!yT~MoxQ=BuK95NxfW+1kHMy{#z30SJ?q0!Y8E9?=NsG3 ztD5v|-qZHH5VlCZTZ-y!c6Aa7d+ z*P-OeAh7(=QG>S3(^i8cmj3A6OT(3VT<9KvrK4TZNX;j>A{G)cr%pR`I+XhcVv7=N z$%W>(wFm(ZJLEA-;kg|)Z?`lb2sq20dJW0(vBGfF%G0fbq0|csRvcORFTQL8gtWFe zN5T!kn8Asm15{2y@&eFtclI0`%W;kbM??gbQW`ZyjF z*&yR-`$EF7w^$ULlN6Nog<$r9}#Pj$Kfaj(Nm&seUE&q&= z&Vdn^1@M}-t%N`&di54Hl&43Bq1O$$ym0!a;=Kf0=H-ksbt@0D)Isp(4yEeg@B6PM zEDD^y#xNM6+#Td^H!>*C;%Ce$=B5WLaZCyLF8jtvXhxhj*!1);ga)DP2Wx(tGGZj> zkzPwrt1}D4yL0t$)wPYxzTrUeUwBY7wEAIbNA9e)nRHFAyGrDPw&10L5>k1IkkD26 z(#$FcH}UAsA^6vFp}-DL(!;_{a)KJpnpqig-bGpouB?-$Aj5}+IZ2m08->?kZmbg# zn>=9AsxL!frEM4+S7>#wi0=}-SB;i& zB?RVn2!PNKulWd`ZaQIiUqyyjCY^P|WUnP0-uU=-TTTf`9gj#L+&8d^CRtU?`E(<=V41$uL6ySWzmrvFC3zlqC^OOqaWcXq|c^e z`JvKnxGBy_w}M1OMkoWoXZ>-DRpP4d$?XIO91}J?HDCR7^vbP-hOfTDLfkJAt8i(` z9iEU%FZcemjUADJ66V__D}ZS`{6dfGYmDboZ10zgk+_wn#&_CK@!!^(aPfd)U2ZGh zNgg6xxIRAV%l?;zwU{gQUIdpF`IKZyjbZq$O^4Jw4I$Xp3t<253%C38vT+9lwApzG ztwR6{&fWV2S?H5?a|}Q~>L=`XX@Pqr_SZO(eof@!2HeBdozy?NX}WzVu8A@)J5u1Z zrsO`~aAMNtS>H_L*}c)mxA?e^bXe44N{FF%Yhc7egaV2?_{z@IE@bu7V^gT;C`PG3 zp=N0Q^hG@{uHR(63ILBzr93z|!)P;kyxhI-*}`Y&gF<2x8j^~S?v>+Zc7e?$BvqP6 zB?OQB@G4waKIn%(Hr1+jl#?ODCsGDRl~tAtCsWYMXd_UEFpL9`0QufNii% z);0n}L-|~IUh@8|8jLY9TbWnqsYI;R9~H{?**o%qtAG1UbMWcCzr zIOki~Hw&L$V;qTVvn#6SjfMWJuRaRQ=}`$-=Kv7)N0m|mIV06>`7Zema0M$T2ZBfj zcGBn7%gDO?S#)6~RD-wL`!SbuH~qVJX~|iZb`LV|iM22!Yu>y08~?3fxn1A`-+fSe zAzyhlX^q;Eppmhe45Vpz88$^ftQ+V7{b1vQjuh^Iod=?X6w) zEJZ1MXGIGuF&*?b+VAy9;7;;Z?6_A&^F>Ufli5`ZW8kp;sx$t?USP)5E~WJK5pYVK zo|ZDh+3QKp_8DQ;WoNa&$Mk>7wSSs~*#cMN;oVmDROCW<9I&1)OusovYO(U=3*PN~ zI)XSI9%5iO@CFKMuUrM;9PV`dnWpr_C|KKZT zzMR?fGeYX=B_wxM>Sv!@D?Y;pzugL_Uz6<(h?255Q+JINF=?UD3M0S)SJ6vb3$gt2 z(yl|T7Rc=y{Gy)%`tm||=98E5PmL1dWm1dS8pYwC_Geg%$UlQ$OlZ4?UKB;IK2YNI z;Ra*3CUi1twv&h-Dx(7&x3O@D$5~@2)=cv*)8N!RRYm0UtBdl7OT3)P6@ZF266+aP zdRKV9hE@efs2ESAqxez%?tz|j@x?SL|94xiTzh35HVMAr+ZWyDC)CNauD|`9kpH2t zP>d=2u*$bz6g|YpckItfBA3ZAIag6ZgtWZ(eN+-UP_=5qPowCu^&}LHE-Ub9p>*x2 z4VLMy?9^1E(d7j`e{B#uVljYA*vudO;3;0?n3(%a^~D->m&NeS;O%!W=clIu0dU^b z3_1`snts1f<7UDS?VN5rUSO~!WUw`}Cq@PSwLY!~bFTgBvI6lVq&k3KtR{c2)4gb{{v zUpHw*82*AfRzK*6Sb_5+=4aH~jqkN|g%x%`Bz%kS<{X$00PSwv@n5!#rVDur=>teB zda(;V0UHVSu-SW^2keZ^CPDts9Y*@TBqCk6Vc3i^*OcQ0K7xC-f`+V+#isSp!tN^k zH<>BU>JXA3Q}=c5$@J6iotaz1aiIt}{B2P;PG7RL^43&sT88DzH2u3v*3Iw}KGo6! zV7(QM5iiB1wu4uXOu4V>kipA0iN(lQ_1pxdZap!QuxWj3K%8RyV1<1O5}Ca_nlqLy zrG7sm7mD_`H4WqJ_+GPqF$5fwl|O>J<;@e+kffIrr+TCkCI=0$hZ@6>`I?PrpK^_YW<9&|I5O@n2ZeVLm@vq8XuPneqwF;}nCH?F>mnsEw#wU7rEG#sx)2 ze#}$yPzb$Bt*Yppl?IIzd3?7+x38ZDD{or6-N5I2Fdn|fxYVziJoChA5ks_;_{LFw z$FH=6t#W=Izty{^!tctjwSMXF&h3W4zjY)3+n4YFb<X#`+$7Vbe-ZZ{wD2bX>a4mN-XB!=9YX4>DSr>4H{ZshKL>)__~t7?~KD!+D$|CVak(F)}tl4_SaQ@J@y>UdPT z-0lA+rg-+04+I!4gm4{*`dXrHaM>BnK36CNxl&kzUw^5U)UmB}GJ-uV68L za%1$J^+Fjpl~JUw&=x}4CAIc_w_y*5#it57*T!q4y_axvp~yb>o2q8V2IoM!8n-ho zGkX@K{MKj8@BjF>MlJ9f3-GvcA5%`LFe_i()G{JhPsFNFHtY9#VYFKnGXI9ky&LJv zusWq~J`FY~iN>Zdij)*OL#Uay)9QDR2O#DC>pR09=j2=9ZXMp$m{XMSeS+}6&Sm!o zLLZ0m%k5hYXlaGXJ4A0tq3%zE-`#JjEmwBQZt!Feb*gk6Km`RfQzb_Tt9y?l& X25X$)DM^hVZ@&z5O|KX0I6e6bgJZWL diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 3046c7c..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,33 +0,0 @@ -# Node.js -# Build a general Node.js project with npm. -# Add steps that analyze code, save build artifacts, deploy, and more: -# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript - -pool: - vmImage: 'Ubuntu 16.04' - -steps: -- task: NodeTool@0 - inputs: - versionSpec: '10.x' - displayName: 'Install Node.js' - -- script: | - npm install - npm run lint - npm run test - displayName: 'npm install, lint and test' - -- task: PublishTestResults@2 - inputs: - testResultsFormat: 'JUnit' - testResultsFiles: '**/TESTS-*.xml' - testRunTitle: 'Custom Visual unit-tests' - mergeTestResults: true - -#- task: PublishCodeCoverageResults@1 -# inputs: -# codeCoverageTool: 'cobertura' # Options: cobertura, jaCoCo -# summaryFileLocation: '**/*-coverage.xml' -# reportDirectory: '**/html-report' -# failIfCoverageEmpty: true \ No newline at end of file diff --git a/capabilities.json b/capabilities.json index 10a8857..0d7fcf3 100644 --- a/capabilities.json +++ b/capabilities.json @@ -68,67 +68,14 @@ } } }, - "colorSelector": { - "displayName": "Data Colors", - "properties": { - "fill": { - "displayName": "Color", - "type": { - "fill": { - "solid": { - "color": true - } - } - } - } - } - }, "generalView": { "displayName": "General View", "properties": { - "opacity": { - "displayName": "Bars Opacity", + "width": { + "displayName": "Bars Width", "type": { "integer": true } - }, - "showHelpLink": { - "displayName": "Show Help Button", - "type": { - "bool": true - } - } - } - }, - "averageLine": { - "displayName": "Average Line", - "objectCategory": 2, - "properties": { - "show": { - "type": { - "bool": true - } - }, - "displayName": { - "type": { - "text": true - } - }, - "fill": { - "displayName": "Color", - "type": { - "fill": { - "solid": { - "color": true - } - } - } - }, - "showDataLabel": { - "displayName": "Data label", - "type": { - "bool": true - } } } } diff --git a/dist/PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166.3.2.0.pbiviz b/dist/PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166.3.2.0.pbiviz new file mode 100644 index 0000000000000000000000000000000000000000..f009a8a213714c8219f6ecfbeab2390310a2110a GIT binary patch literal 29557 zcmV)aK&rn`O9KQ7000080Aac#S9IK*u{r?&07U`-01N;C0B~VrYhh<)E^2dcZk18X zPQx$|JeRMC_FRR&NqV9QL{vx>5~UY}qHW`*hB&tTs8p){J9gX@4hV^ZeVDapW@nC9 zoeu1YRFu~+4PY1!!X9)Tibn6awBQkHWCW)0j9ZGq;|^=+0%1ri3s&@lghKLCB4e~J zZ%a1_H=Mz#;gLjfBR51@s#gnij_&%#=Y!)O% zr>i`U;!!f}4f6h7mgS>aJjrKCcAqC%G>)QveAAyyLb0ZM`We0}yQbqi+3T&bx2MWr z^>fVxWsvSrYP)4Ym8kHr@RK#lc2F8>eZxOI*iT+7tx&1OMXP1Jw9u9S1yLJGh4$#h zR*)K{ISW?ac^8xsf=m4(|Lnt=ruxCG{kwBJjA$%SqYJZ*_8GWpgi3O9KQ7000080Aac# zSL_`?I+Jh!08?!N06_o%0CHt>Z*_8GWpgi3LP=jkR$n7MB*8ZRxu5+@X?Au0c~t$V9`fqSyAssNB6MafFK=Wh0!?wMF52o!)q zp-?DP74DC({bcP0$Ikt6=q>rNbNt+kk6tXiI6Y>^Ge21c-rZaA<Jys?U- zdF(BhemMX4`O@=)#x%l4`{{S+iiQ-#hxB3onG+91HG)xFi@W z|0k{GeQJ4<-USGce$Pa=8v#!e`W6F_A9xb2<0(&|c7QVVR^Fu__^D4R$1^YWeux5m z8Q+&i;f0s-c@*CreFK>Qplth8CPT_+Kg7ZLQyi^VP!}|_4C4*=l6A~WAeJIEhaj_6 z0Qe9^LF%uPys(y1E(Zokzz~+XAVY*N6 zu~h2bw|j%8W2B6;5K})LuM>WR9AKJ$Iv!%C*nJkq-W@WSG(toU<3l>*_CN{)`1yxb`qUahbq-aWSBmp-VC|vD&_H^H8V#fh z{Oxt^wuz(m=$QR!K!X-F{xo2hZ9!j+kMCG;C)0yFmdxZcq~CPKAU8g0!z`)=q5_h# zL_@5;O~3s?%S6)3+Jq^G&I=s=)UCmjTZ0!DFzLnf^%CZJqA+^i97(dVm~A@#c?+ga zEga&Ai1yWOXqxr##!DA4HE)5E=yA&Zz%Y0{HP1rPM1FHbliKjjVXa0Z6^-MGo7Upf zP*H4DH5s9|j}Fg%AI5)kII zhxpZmwY7Qb4LK|qM;d$qE+4S=-Ckeuj9 z_FO?;8s&v1OZ2AEV-U>&Pa@mvw>XAt*AuU+=mrLrC8nx6dFomtWBt^PN4Dj_uRrSG zPc&*ews~4CNr{g=o>!qGO83oQFAD3Gr7F7nWSfuA8-bnrF z=S2NBV7n9C;qq=eyfKSl=NKBMGiM7~;#%hXHj0;CT6odR!ZPVxv)dfmcQD|!8}!JV##|2E&CVc*QdS_w>pKn8y9aRuWqU zC?l-N&=h9mqJ74-GEpIQpFy%Yx`e+Daf>-mp8*j6a!qVgg9IA@Ai%GxR|pL7Vk_DxdlaBfE_p``|IT zG*nO7>uri=&kIzElx!@37d3#0ai*@esXB}b^XCdS>-EI{1*Z@Q28HA+Z|MhjR4Rd1 z)?v>3S6W%DuI`1?1@dLd3^4wdLC;T4=4I$&$vX`CwLsLhD*GPB|FDvG z?hF9|mYTTH z2g&lV?QyO&s@RbZns)b45jSqUeyvHlC>;ZYX3Mf3h4AAmr7_sxZhz2hc1iuvvj;iA z7W4@K;?JW1zZdY>$CBde)A1kl?)xycazsYD5Q&>QAGez65y%TEDjTD#Bi~HR)1S(~ zbm1T)Bkp0#N83jzD)tS2A~uJ>2<4tRLS2HFDXeJYOcRFFrWUr0(YZG?1<;74<7i^$ zd(z@(4x4Gr0NZewUa`4Rm8YgsT_n(hqg3Vx`WPpZY#$hI{Cs2MM%wc|sqNzRG>u}% zXA3WJDu^_$r34)~;D*6ETa^btjv?b@!;(S{U1O>8xPU|gCe}q~d&z}ds`XseeR47b z$uH#s4u_hi0rz4@W1$KgS$oYC#ATN>ZF*sB=4XDF=w*dEcRb0oL0QEn&w!+j)jC-i za(igt-angJOq@M@Elk-f9Uw3UJn;Bhi1*M%CvU1~pQEs+SA@&!b}iQ4N^1EKVN;i@ z^ltx9Aic`cQqS|mmJps;00E|4ffDxiP@#)y{i8gaO+gn8TxOrPP4XLLLXYY2W#$rN zk=ohDM@_r0&$i-3_)@lmOa~SZqsVgPEFo=Ww2#BY=Ml0Hf-sIt{6+i7=`)L2n#(oe zWu;|H9<6b!29j9h$V;!_%As%##Fak__rbR8Y5@SUrzMW zqrCj|>&pKz0}!}pfBiROY}E%|{c3XGV*QQzhci@O0G0m0=Pz$pAV~i;o?l`SR7j0s zTv#%xiHglXpul{!C;ODa|BBgX+u6M$c(yKOH|csiyI0I# zuHeqS_mK5mB3HFLy+O0pZ!s@S{lBmI%>s6Vj@@my+pS)Qd4FGfPPfx(iN~cE`yqGw zt$x4LZ8Ptebu2)%ZODAd{W+Gk?Lo6^u}eSsJJ!(c^{i&Q%`O9P`q{DY7j`y$<^{_r zoYD8D)rR8Oo@PfpT>B9$d(Ob>bedL^UB=N(=-5`j*>1J~)H)9CZlVZEw>yJwvt_fX zH{&UR=r+6EPP5OZXps?fm{Qc>R;LL`(KJGJqhq&v{Xx5Dv1t^00XCxDZuXk^8eRp_ z4UYw^&cGh@ZAwo3;4`(h1JKws_LoTnZGv(w+X6s$UMNvD^Wx6}yR8Ae(6?5n*KE=2 zJPKw!jIsGmYtS6XTyv1b92@={SawgQa2^6qx&U9kmvVewc%OX$({8nz9RX(P&0zud zoPli(x@}Qo6!_O%K|ajYvU9z3%~@W!iM%L(43yZCQ4c(qcX%a2=~n?+J|^ zjC{-Lw{1}_;hv}fh+zO&6N!jyLPfjRYPZ_GJe7Kjm}?I@dMYob0$=|7I`Ux4Rt%>oonyWY%a&VX<04k z0lV^JehI7?;39(Tc9#KV0JW$&0+cWSq`|txlT;2>v)k&oo9t>mT_nCoEwTqd5_1oh z%*!Z_kYIq;V1CROQIaZHExQX@8Bzuof){|S(Mh}29N3tIoq!r_912lqtJ&-J#q%8x zfOet1ZL0+{hfx<*?nM;xyBWWc6Bb&qh*E{OR=?M_m>bEUQ>P4I4Z znzq_Ky9f39voI$tKmbfFNDR|y%)KS9U`@N<0RVoI-o;U(7BMUuO{ZSshccx(V4-*I z{VmFPLbu-qx`jj_8d!vY0Abm~FI}`Czy#pLG$&g?_4GE2y-TNOwfj9_W;sg+)&>(^ zyi@amCk$G!kSg4^TQC7&=vQ9AHCEB-c6!iNkxXa;cG`sLB$9GG0qrygFcy@op{d>K z1FLC4^2)pOpl2&FajjmDtx$4Zt*@@Aukb&}#^W{ei*6s-K2vj}Yg<4=t6;svHM-db zQJ1Zvo0(*?P&cd*FcT$7AeHrCCIidmfMJ>1?E*=_@+-R!qy(LS0lAa%Koi!~4lFfs zbmxir0Q0Pi%S7U#PE=%r(S_O2W7!-9<_FUm-ou%K)U{ervdwa0v^tQ~!-Ql3(~3|4 zz378*&%+Sr31sN@fLuW?xJH%-tiOp|qcFcgGRX-UdSh8#nIa}TYybu@q}n`JDWROm zodJwxf#^GJ3u?_+K)VY<1mGn__SeG6f-fBSBXnudrR_@!$OIk)GzOwe8ZEsvBCg+q zHJxcQr`Z9*?=rc-0x7{#-0!lR1@}^t>{{5Pd;#pi(js1yW%OAIe=q?wPShR1${^kq zIRZskz4j*Gf-H@Kwxt1LvSBu^Nb~v~zcsY8`&Hwn!!p~J6b&hGlV>(y zp9S?c(&#nHdoMgPbTGIZH25u_(s76px_oR;9mWb?53=g3k)i^TIFk8f2bATdohtDZt*L z65;!s@SU(nMg1vIz}+~7Z}Q|xoV$HGcIl{r5cAf1%hW$h;5nz&3r!6nvZvY5r)ubN zS-tO^KMq)ilVaz=w({@Dkfz)@Xh(wRs4o8VjKF1pWmYy>IJ5wMp|NEr8g{o7IpG z#koOYb|D*PAtcP{DTb#@dXi?3h*8lI=H=*?DG7EMjnL{5o4STqi!@uO^~gv7KX{yM zg!R}wTi3d$MtB~>92BW>onvYf_+dT7r#4%kxzqDTX9S>}W*y-sr*0P**xH>w1sqS$ z?UCgq62}QcrBjZl9M|s-;|MPmNBFRpBYY@vghj>?l8hq+dpW{uWdtZ&gUg4Jo_DPg zuK{+rd77SeEhjy<`_?FgUsyD=PX@f8u^?pN=0;g=`|KmTN4upe)~cuvQpM+5p{=!X;Aa*vh~PplXG)>*PlZpxpNpaRZIn(mpLl>`VPlcby* zrlzBFvjNFScJe)YBc227@ckv(i}ScrpPn7IdroFX>EU6ZWck#QQ^m^F!=-x2h=|la zkJS<7bwpoN2VisuvL6|cdZTkL)(1S|q2F_$rbg%FB>yy*pXS@2F6F07^~pLfEI0DA zd^>k-G0<To1X34rzRAh<+YQ>G@Jj=xt<#G?wz^gg z{+&ut=N6hrtA+aEK|T?D6WEumDHO#6V7ej9bYy$5Uja^d%9-yrPl0I;3ql$&k*6*) zhO`cUowSBZIv*J^vKRGm4ymKGMmg$Pjxx6Pk(i-KB9X+902!3JVdjJr$Xo&BI)t1m zxx{ZK_bie?$US&CL2{2A6%+%Ma01e`9IQkp|FM)FsC2Xx-Y1%%nG@?b?Z<5~gbl{3 zd^Sb~(0Di}+&XLf2P}ZE1Kh;3 zg&Uks*%kav*vw5%*Y)YCmv4Gkhb@Tu^eGDxb6w7u?-Esta!TWULZS)`6+HiFqQoM_ zkaUmm;km}_G_Ea9dHw1XL<3`1Thy;m;E3xUTe(I6l0@Az>+93RJe#s>%|~N(x~e6Z z44J%B!-i~l4s|^emiN%KrmDDF9DtDJi_UIm9TP`~jXot($vn__eG-;j;^joY8}T5f;((poB+sm5Ox$R_0@ zaycBVpU`Vba?H@J=BcL~2b`NsI`vGW1dZ($l01Cuk3QB&pR~z0cr83NJfOMcbOH2| zr>!AvT1pE}W3$Xsi4Wj}{vu~A&3=Gu&p=qZtmdXUZTY&DgcS2om5c_zIRrEJ*Fwt> zZieW1#o*CMCZJh?E0kJUnUyiL=6*F4t%m|npF(I#{C)nBxeN?4T19C8{!kO$Yp^g~)gb#BQ z8jlZ`CNzI;7>#DL*|FLkAeKhY?)H2A?rBtOSY4}YcL%3a^DK8ciqX>i)guiZl+t$qg?JOZ)XEvs*}5r_xVjB;9ZLe<2a)}Uu&%@NkzwtKA>=3JX% zMy_B4x~Dy+_`#A58Q2ENG!`m0+y3)ZecNNyYG+{SDN8g?rb%|ojQz7 zww}m$y_0ecU$KI1?BgUdQ|MV$p~w6Jfj|NwMAhv6si9VG+eziR<;i(``1-E{t$!KN z%H=+5Ul%48uqUps>7F@CVS^){&wz6km;6imTo=!0z|Jy5Sl2tfhCyK|h``t6+wQL6 zAr#z@*84l7)v#N@V7oTRmv#d6h8>DKx-35`8-5DTbqp3l^eadSfW!vz@ z?wleoXtmm%w#d}5diJ2*X#pfy1MpO`4O#3)+v+si%^qgjk`uB`@<(>_g`@hhAYe_| z-Z4IORI7pR7~{uO7#C8{Ln69xaFa=H~gvOb4oMq-K#UZ59_iEf6rvfhT*C8 zBNnN`EnC&`=O1MyfBR0^DS~KnKjTw>=>@R0Ymhx=w8qog#37#%pqFCy^Sd=}!i}{s*yJ4_;9T0h9D-=Y( z-|v(|L8t}IRRoqf8`I`E9orKMe*qiT{-JIWC~TsudWf5FK0>wm%iC2H0_XBQ^d7fi zJufAi=vz4Bx8GmE1{|G*%yTQ_z(7&diIDbt!Y~=VpXC%D$C4jDwMQ}famqL#MiV_S zYpO(8v&~6`qekCu?xBetVM21xTjbG7at1+GoyA7zOY6B7$ggOg4I->H^idz3;2&dM zOKSF0j8u{2I&z!Eb(F#)VQ3yUlJ%tsdSv)@H(`D)LG8T(rClg)K7~ES(8LNnRHfVI zAC=W|CbMf!@{PYmwEAo+aM0=PvFEOIdD-@KKH^Z<3e8E3GcN~Da(RmcExiHn@%Dg3SFK@XDp8b(bF44pKYki{BB z8I32XPy!ZHQ%Q+Qex;C-L$T{g0Y)wFsHXSgwFD-f37vz<+_c(X6HI2CgA}kEKZ;#n zU^gP{W;6WQL#_H!I7Gqrd^r>zfP4Mv#|As#n{1cYp2BXJ@eEVOR$E*MHN67Vu zGrz=>5qYq^i?j27GhM{d4K2Jc<2XVWOh3H#0)KWS76ym(i&7-jMbXH(M+Z=c%mtvp zJaou_ArVioJSBI_%Lp^HC+rs;Io|JMYB6FQGC#Ag9^+Ik+8DSPjy=esyKkkz!DLsfJLX-|d#0U@xPEEc`F$pnA z<>^TzW;oS>WQiJ}EKQU{Y!fVekV&Wq(xBkG>I*(oPj)%2G3_}!=dSRh%?7ZR4^J&a zeN98G)S@G<3diV1-oy-pqM6!4Xg%Z~O{I`0w2erHs)m*0jo=Bcpz%NnHOrPkMkGR+ z|COKhD}(}vu-k__gr-jBUqxzaDGkIfMnJ0D!}vTzCm}Pr@zd!-_z&Gry@XR+9p8m{ zKfH{&_jxE%5pUQ(5ydLTVHASS^j&MCJdYsDC>Nf5Gn0!j z){axeTF@+_ucU(sN54z({cJ>|NxX>p8>q62pXMeToWw zQeT;vGA26B>9PQir@(DSf_rA~qMAEBC+QS2VTayCu4SPy99)-CZuy+JFOgH zg<8NPsU9}yxatFCN}-Em5QKO{1bD>K%7#>Qjvlf^W z;~2na=mvcg^X`oZZU7mBQRt8XCO)5>oQ*G|+rLcC8Yxdw0&&IHP&sTBs$2?m;2%ps;gcu3#G%qsVis>Rtg{mDtsjuo>NR6khcMIFAB1uE5E$JZ-p;^r7thCZhm%E zeNUglc3A?GpFf)=ff7oJEJ}97(>e8gku#HvQ5OguiC80bO^DA8Y;B-5v(gHuY2hdK zdGDS>N^zfM8}8+<_lD_u(UKq}v=TRlQQ~5>@e%7ClDmJ9awm&@Ym$~nnYya5jy^8R zNa#M0`LL`Z(^Th11Y&M25fPqIc=!q>3`q!;YTP3Y!SzaoF4T&G%5PGuCdO*@eg!sn zHWekQ-@2)(t8+lE1=lp|1$|lG$gF)Ss`qH%nvcgts0hW}?C#Q@0U7d<3Q_D>xVDZm z-1$r~9uq!!TF}&pgh4%Mu3(?mFg%ZtZJORVoaCxGcwrp=hol#kPNTYKp7NT}uA^~8>lEI?nqk+} zS4xR%-l=b%bvMO1q0VPjEXS?R$pEV$Yoob7^wA*`edw*t=#WAq+3=L(tWU>2>W1N` zM%rQ8RFD0-J#m`YSdhs5b0~|6wI(Kd^(eFAFpRM7pK-L-OhoM8vJxDITHEb(_k}>; zNoIqJW1b=|c4I=Hq(=Bh*TyK^FzODPm;5m>IrfHehE!$!B36B{nWHY${lbPcidmLmnDwx$)ctiMSBJHrbD(UA>24 zZtaVpzWTbJ4EC5wW~#@weeehyS%mFK8_^%9*^q{LN+`zE z)5mIx2A8FA4j?Tkjk6ll@X#@h#86Jv;09`N)i|#8aoirPw$<7*Tnbgf-tt%B>gQz{ zSC~?Ts|0$V`~z{7d@Zh8ZToR0-RE|uE=>NSqAjxZ>k4fliFiU=h(aQ23tQc$&=z7^ zr`gA}POpjEOI)klLZ#Rp^yovMzC*Lx;tq!vy${4!7ftXx{O}byL&{h)aV|F@W2&=;|mXlg0auxXc5x@ycu*vT@4B zO#+&Z{A$V9i5?YpvAl0mKEEjEMkub};2bQjXlTi297$+Gv)jd6L%eJjinEeDR_qZ* zkIxU-y~dr7bFLD(2w55OJnxImZp_qV#T1;Zv8Wh5q&XTTC-ia&FPCyMdNdg`^Td2I zZBIu1AR~5tvZ8CuVOG+^rJIO{d@|x|aRKt>+LJOL*Pgs*>m9}>l8&GkYQMB^OB9ik zTzlQxA^949kU$u1nfyll@L;h-JkRlYEuJsoSs?;t0S_xo4O-q)V+|vm_19(Zt&u+gKm#?!Xr0qM@bu)c39p~k;M}h?#X;6|;N;guaAJ2rJ)%=EMNu353YuuVur+}3LJH{TN zcpY-OmKm-x?SpA`&gpbK7y|+qc#_@l0X2k(_{?wcE5#@Oi(`w2pB;NsGCO0TFeMeFN{;7hJDh0F zXXz=RfkIS{ziI#J=I^$v>!t>pT@HPS-LT$M1hP%A!CgT zB?>hMgnyL`1Eu$YRkqzjBo_8z+5xfBpr^3gSs6&4NAe(HQzl1X6Ji+F$O@*&3MyH+ zw$t`A9R+z`JfYJLAAaP3PTfSz*5bu7B&T4z@h3Eg>wHSr+uEc~VL!QHl-$&keVXeO ziQ0hrJQ&o*mwbfxFQKYq1RRq5 zHR>t8A`wvnERk8KLh%>uvpF1<_2+VZ+@quzGtF49dDhppZBV!L~@-q2=WFu1&l|sGt+(fKW zRs0*RonWPn-KlA@5?$?!S0m9}kv zVZxnSAWWhS{SWsUn8-yyY~H5qm*Q=1YO14*4r@uZ45}{BAiwUU0qY0|h(_$rqAB_0 zNRP^w0mnD!(>JevqGP-~hkB5CK-|eciIX?HN7RIorQ2^C*%cvl(_4ghvAl?ut98m} z?=b^lL)>NaV&MlfycLFGV_`lO`H8NcDBarv@}`IpofXRuM0>1mn~h`@_}B$TN9yuy zxJG8|HS`F;zfJnvqQ7nW+nJb}l5?sbdr6lNLYoI@^LC)^?R%(ok)|u>?Cj>|rg771 zMDZNGb*!`GdQL5x(|tM~DvfsBOoOh)u-Wx=RNz7m_KB`~)a)KFOPwRc>Y5{f>5! zc-=}UG&ar@a&z6o5Oa<2TQM0mfxxCeI>l=pxH*cbKGma7$4|0eG$>~I_gA>zul%kK zj8&KkfVKu`Nygn_f5M+RAlyB?Y_Fa(`prVLDDOZ(Y2h?sK{)r!_Q%K6G~GVA}V?37*dtE z@(cwai@`h&+$S~=j>WFv-^^`v^ym*t?~njgDY^T=$?eJcRM_xO$9|n$B_OfxPlhS% zb?T9JL!r&W`l8l6y#neb5mdhs5_MuVDp5}{G{eF)PiG*Zrs$8q5G5l0!n-It;m9t) zBXq37wNU7F~VGH9dVlC#R7 za}<6?0Gw?oc*E+h0{tEkl!=$B38IJPT}OklFbiEVu1wJ~V+MonHzIizB2>fjYp>9R zq1Qgp>FrAo<2udOzO3~d4Go36kG-9b)`6zHyZ8P`1cm_`Zf78DNo}u%pR8PCvX?C^tOF z189)LAI0i$W5~qKDg|LiEMZP8;tr9*ouk@K!lF{&CD|-;xo}|Pnv0cx9*;m+4GfCx zgsAjj{|U=KrlBPUrJ=H-vPqFa47+%ZY2E-opJtiILw4Ub-KL`3s1($-WI0v0g<@{( zPtLI`v{opQ)YPu|<(YmkB~5r!Q_Uu2E~LRgV;UD}Ra$J#h3&FU z;sdjB$Cw$7kiiQc3E;A`DMh}}j-=#8rD=9!sVQ$6P1S9q=;#VFbww9FK(hV@AE$x0 z!~g=~*UT66Gkc>CNrV>HA_Z>9fg57qHby47w>#~9Qn`Vv3?7L#`vdyv;)xnA z26!Jkd~UbId8*y)(^XQwSMcSg2)(vE2*%14a6I!> zZB=a~!Cti$^Vzl~&V(&GK<+l>>2Iq~`TF)i@9LmsQ!-+Vz}b);7I@e=9DZgbZIsKS zCrpr!EGM@uKC(sNEXmcjOo#Jt+|0OPHpeMirNm&QxqbKd2qOg%BdL%N1T93_ZVBZB z!b0B7B#$AYtPT9e-46`^Z7QEawP>hh%$(HPBr#W%Z>}O>iYD2O&*ME_&kMgJ`A0QIz_ai zG?^ifVgEER4UEtW4E?D!Qs*3E%eX%C%~K!BiqJaT4~(fu+Ai$)=M-i^%ezJ+(X6-t zITdN!GDotFhDx-Si6pI zY(!|xswUY)eVA^E5}|Og-C~iM=qK0qAvIp_P8L{?^vtLxPqH{6AiH|!$5BFTPi_Y_aRY)N0kk`4gYSa8R-H6fF+ zOk`abxaL&nnp4!%*?SF*)G9A29T&*Qrw7p?9zyQ3IxS?*1OQxGze4yZ3mvV!wqQ?3e|guB)sSe>|WS zzdVOlRMgQtH3)!K%SID({`@0aFr$J9q|L+Ujik%|zWZLK1Pc?x>Kz#J^hxx}hYtRzgsNR5n2i>;dxVAMwnI8c^X3Sz0FRdjkUbvr*{~aTOqg_)T7XhbB<%PzD zFnj)<+k(qChG!@7f~+ovPYiLzvq_$_Pe`REuKjr%&A5thnQcwz>hIl`jE@D>iOVbR z7uN~rf~w8023JKldEoyYBzHmfwbnk)b0~X2aIh_!E_gyh^)|CW64|@TcRI+ekb=I( z2)f7|bT2Gve+ZjCE#{qr)*qRk7%zwUbbPxE!UWGeU4s{Vmd%2O6kVLrYT#q}+9z&~ z?rD}{)DOJXo2H(VZs7kLhAn)wWA9|B=W++Dj_K{eU~qQ3NS6VW7naPvd!Jm-oktG! zsf-h|+W>Fp+YK5&WA<Mzd*btGXod}M2B<&-_pRA{CV~rchd%dsSJJimbt|X}XI= zgLt2q6@YY$HAJsabM2Z|3KbEeBA;C5E+rbN0MW)T#p}!sQlv>S_lY{mePUHitR0gm zaQJBLOx2_*oA&7;6Wx0l(Sk&*5mF}RVN4zr-Ly}n)>DzPi3rPWPLs@z@Re{DpV3eWYfs+g4`@v zz!vNZ-9~45>sD@(Stn@LBr{Rl6n5g%^BGhKb2oqrr&Qq_e%*!Z)z(4{9v^XkMFwa6g*fL7Ij6??^htU*uGMC+j-#*H-B3zkzyK38 zEuxt#W<`R5Kj@vp@g>7b1Km_b7K>!)oa`86nvoV7HD~RdV#LD2>s9e}2H2Sq9nA!7 ztXzLQn*arP_;c+lLlt)C%9D;2Tb-P&@=>0lsngQEQyFjE1r*h)S(@yl89GP-nh50Zy!D} zF5QpgH#p9<+8Zcg4ljU30y}XpL1Mv6n3aB3Ad7Z>=+0s`E;!n8xC^8;e(R_16$@}9 z+ZycI;Z+J%TW35nPOelWd^%PbBcuQxGR#D z>S!Bxoo4sYoeq`t(bWID4{u)6!9lg6qpbbQ%cPGhEtR!ewYIGUPidj((46l$Q>+#! zXi-u2X0cPfyx^tFJ`Hq1&d3_DDLYMV7*f^aJ_o|>^Evz3riWMhJ(PovI@E2orE?xq zxO6t?c7!LD++M9I*mh64=QVAsBi!@)O)R^hClFy!el?mcbn%;!Nn#VeuJEgc7NK*O zj5m8|-is3hqZ!{(y*&$sR6H-oR^4E$ESxqUu>_tgu?sTL=urG)3JVVTZpldujX>X! zQDhgM-cvZ9HspItt?EHbpAi%r+V`0tcUl;9mcsTx+DmE`TAaSawzTk^|AQ;fLD_3^ zLhJ&(=k6E>QuDZYr7b6NN@lEI5m5AcpO*o!cnw+@Dcr$rO}1sQTaj55tomw{f5Y{}y}cLI2d;u+*xAjBw6ohx`i zCg9BA0ZB7)R`SW2VuSn371H*Nu;Kp3?c6fG>3LPT?E6t@e&}26r)Ku|w=H4>&!-DJWS^ zv`gL1vrzH;i%y#g%YInR|Cm>uE_P?~FbbK#mt5m3{dR~cA{iQ{++?FkBc%dK8rlW0 zyAXw8rek?(ru3;YRu(6NTaHG9Or4lSN^fjBA$nBCCnx?WZVNH=p_<(B!4?EJ`oqbb~CP1@g z+qR9b?P=S#ZBHB1w#}KgZToB6?rGb$cmB8!ckjmT%T`52WkyC;y;fzMJcq`mXsyvO zLGW%zO^0N=I-uK?Y2$5!{7|ce#2D0i%#o%qw~`)$duyS_)edYBlaXfG(ajH%M5Bbo zE%?^v?xrpPSoV<7SIaxq~JzoJH7}}F(wuN+uNi7$n)N* z(&}wAZ!!_l8}*4##~`XEevgOpUUW9x0rMDwwiS<4+)rE5CU>*c5n6*H!G}%H-@_iy zJPG}A2_$wkA1DIbn*$bpsx4IOwi+HzsG(ALT^I^cKlSEkrcKDoR}oHiT&QZYdqJ3A z-o^C)K>B3=XjRl}pCEL?F^UmAv^t(D8tyX{kNepM29a|#jxmp3oi|6YiT+97(t6H2 zPA|jZt11vaMZxtsIKw6pD3`#@a-It8?)9vvG}Fe8bvc6!LDk7b+pT zK(tNoN};7U0xOvb+Hu3XBT=Cwku&H7gdBimS;1;KZl-=x*Fsdi)G|Fbdm5K4y%t2O zJ4eH4yd>a1lJ7>N7igg-3T0AmL9)Ecin0*XKMPUiS_>)hTwoB5DBBL6K)DHtptD#-3fuRmyQuj7lHDtlQs)Whw969%KO z>n=ssu3NNZXA1=eDOo5xfmvh70vi!`4#QAyc$V*^+?{9~qy zqtle8hBMqT`h1Gzmv+v1eBoG~L3}_=7!^D5HqFECnDl$??er2zVd5`d$Tl1tgx)w} z)t0@U$MZ{Gjw^13$H+GF)y@QQ(n?*_lTX{rxTsi1HN;(oN1tC_{LLJpQWh)d*MGNQ zLSfF<-BMwm{B^N|)<2mN=bMwy?P2v>hsm{fY>OP#=zS6?G;D^L#iuff8qX>-gS>JK zi<>w89(--D=Q^=4lK+i5=!Ud%32d3USWQ|P=$7UR)hSQDF6fx1*-CEBwiY z(y_}?Ep0YKV*d-mYsIemJfhSBi^IuY!+5H&^B2@pzKiB0hVA!sk%p|trIZrWtFC?Q z5MY{%%8UF-SHDpa?S(j?#_ z3;*2iCm_RsU1=$Ni{{YjPG+(CfwEI0?IA1vtR-3Cko*IlZ_9bh%fYEE)9?(u_);HGL(v+p$;Vf+)v(%M>7 z+iFzNV$?v|ZMH=F*(%?{@Ej_fSEVMg(m2)6A(w-b<@8g@)_swZPB3BT4bTHHh&2mV zKDHOMKv0eaCNdPafd}~M!Uq-LRAdU$?f2ZDl;sdOX$137a8%vcfi894#TDJ~X-qO? z#vDVlb>^H8tZL=sm32fBU`4l|rsq6FfsR9+V5Z}Yh+sE(1F8SJiRgV0D#Uo6c)ApW z6`jrK-KD8a?dyunfXBPjkI!ej*W%>-LM_3|al4pOpas$DwCwkT(;M4bNCm{K=VYX5sHcUO*!{~8U1x9ryp1J&lbpVoUpA&Nxyx# zDBp92&z)%+#@pzi5HMHhb%M!@Af+fEge1>MM8F5f>mfDM6Te!zy3acsY3GY{|Goe2 zP*;IAGO}uw*I2h1;XU%Ic$^+KuWghvt+*^kX9&oQTC?d;J}!2l@wsH&+Ntdym`E(M zgC{R%UVoltViMEe( zbN+bG7X3#GP|{nVtDV=oj|H|cb5&Pa)76F^l{60YRqS9tpbQkx`-`t*sZ|Q6<2mQ$ zcV%JmaI-)=i30l~7{+{GXv&4S@^<%%l^XN_28v{`7;`&=XLGz>ILzv zSntSkl=k;xe_ba`^Uo*q`*DNf8Y#A*Hh&TxXIda}op(OfJILXrV*n27PQ)Y5o92R$Z5g-=m zgi%0ZW(4mUsuE34k`%=kW+(hN?9^cPvYpd44`D&balLg^ z0)wrGPAlfrMKHP`qM|~{BhN%n%WBgWtF2F=YfiwSQiJEF8SP-QY$CZo7)BVyjWJFu zS?c$nw3;Ce9u=T>bLvO75oIc`YM&BiwW&Ox^d}`VsP7dO+8= zpF5M=urfbPo0kM469utFb&ea(`hTlV>PQG=If!ZVOrz+Uw0PpTAC! z+-OGTrdY`_FSI-QAr3V?ZrVEc6AXJc!(9=>t^4POy;4P4&Nw|`g0MC~Dpd~ay~I`p zY_6E3wdquOeYPAoMqI52@vE+Zz93Ox!1X|MfeYGBW107GiV^@=4lKKYq|E ztN+9c(+!%nXDoN{&D_inVTZfV;{=%5_yy{>bIm(Bg@0=&aj5tYzD=L=YQ8K-+qV}B8q0kw+PI~+g}^OXS{YN z*S?nSmqlQ+qNg7Mj2j--7V`EZqrAiYdyCq75nCec`PXbxnAtV0_ zF`|n)(dq{9?@b(0mI1(|v++5rIVX9ZPI>1kAbA|%*oOHLon=+BSXHsFU^d8sOO66! zu=G*7_m`fZli3DTZ3i^lrrG^)sZ5S-*B|Nq$oWWqna5q-<@3TTJ{etI^Qc7`5{jSZ z{d1(dUUMD0`$>2Hv1H9*+}nV+yQBbp=2Ae{g(;wJ)5OBLLRrJqO}#lVl_NclMUT9qETtccg%VpZZHE@&xa z4pK8*NOQXH4lnN21X}1->Q@nxUC-hM_w!*9IH0CWFEG5;lU264ag|EW0PcFY z{<)(xwFF=WO?g)pyT4f$F*S!Ra=HD~R~NTRW>0o#o3H}+0;^xc5BL=uLi%PHCKZv- zuj$%nUVKPzTeVZVkBdpmpAjF##;G=OCocW83o~Il9pd-S=kJ4fw4{s+Xt0C3n~8`C z*{Uyc!`X^4B6w>B`x=6R+T~}k`;p43^n`j*}XS&wSHx*t_v)hD5M9zUA7=dnR@skC%vBsAN*xFXVwj3f{W_db`}M$l#!*J@gCL` zyl(iUcB)5;ef{gwGlBO*0!0isJI<62Cw<^AC>7P*@@mXI>T|j-Tix~x3k?~VGSjCitL)lum3lmlM)Wv;K4y}p|ZACRiRYpp-SB~A%lJHtaq-u^4% zA3y*8eGce$ciH|k%4peRLSWEyxLb;gss`z{P@d81%q zpboa{h>?+sqaj4`617sR6->I(WD~ysQa0*ry(HC^V3i{eMcv*o z(VNnvEf`>5y4cI(_*PmppHVE)fQNA4?8C~xvMUlyhAK`}dtRpP3h@l}#WdngDM}k> zG(G+BWrlukmfo=$^9W4)MWJ`0j9wdCK>pG*YH+E3>OvT4K!+*Lh==+|3;S9u(b;oa zxAC=cM|Y?MQ1BZj)-T?6z1o|_k4f~i$N#JclA_yfJ6Z|ourYC~i+c9Vkis0^%4&6# zsZzFG$+vi&N_6HiTw_*d_*=9rq8`ch>QyrQ&A#RN)$>{ny>;FF`B@40Z7=fauJf+f z8g=lbhCz^PwVun1aSFWA& ztTQ&_3~8H<9sP*t)&^p)q1jn5cXUr?I0x94w)kvUyud)dJk z@$RgM+jZ+^d(?gGNQL2-%N_LL7khUv)?p?hx=|cpb_>kyda2MZF#v@5DN*DjNGp=m zuf7!r?gbOf+SGH$LE36yc0|w~668xl*TNkdOTe&2>sTeGdkvW zzBvZ6)-a5MTFj0c7P)7I2?R8)#0^ONA;^MfB{Ywzz9wh!1zxW!T?AAt;v7u zKmO>y7?yHKu4xb)*$14#@bz_Cy7KG|s5KG7=-_Lb2t0Vbueg~p&t$-@I?YJ!vb zTgJKpd;tY4$sW=vxs_8?r%5mWIDg3>#=VoUm!}CXs3?)lW?QBkOUV!wKCTz+xa)t(F5o+PjODB(Q7?IV@l_s6YYA?6Q`*8)%ApMG1(-<5Jq(M~>eD1YE+=ET+_^ZV`WJId_%L^Ti+5JK!ozW;$f14 zC`6)_ER;~otx66$wnL11%{jjRSz(jN%#TgC5%qk28UNhrD;ECV9;q>hix^+p6XK_bN?B#Leh8<=eHCWBRbDiixyd?C5oc`4X^2 z_(!+8cZma6#uQ(j&`2$d=V;!-l=jieOtM9Gn~sC&+DauUsLRq9@z<3E%-OYjp%}-V zvfNJM{gDoX3tbi5dyLNMwghoP_b1Wg>rL5A_HsJj zJQ3C-t|GJ_`hE0vp}=>vnC~!p;eRaf0)fJ;w{L+nwsG5UJ>}faa6=izpSvRGGPFpW zZ2WGoJ&%aoe+5;uEMxB8UxplJ?uBNw0i+1bx>FeoIx)*+Q@->-&#i*$WiFrD=?@U~ zA+^C!s>MAG6^bY=x6?z;3|UWXcTAc^nvzOJ;#3`BTp@z*9G{JQ8JarXIdE*O&v9;m z0*2(?Nc(nzfOs}jf&U2byYnB%kX)&zfit#(A*M4%5(&Nyzq(oj@|K?2Jen&+jcjG$ zMRc1$MP14!yuHb&CkzBy;TlO;cmQel-SPRwC)JbcYfL@suuntZ`t355t3q3)+^rDi zTsxyU(}XmL45lm50-sGvU3QTa9B%)kY34bqM-6Cf19?B={LTGjNlJ%+sZ!M~#rlj` zEWBV>oWOmxM&!^h7J3&~zNWt5LL6{D^(>4}ShpH3DoH=*1IXE=wN2$NB+)WP+8JNu zyX*)l$^vCd5dWVQQmPd}W{vqjLNIuzhS~@UsMsK^!LSR5Lq9@oXaFb5<#XDwp-G_^ z;ukeywuz*G^|^H#YWXH%LpiwLx2IaKr8YY^LIa&KD|Ah^>f4Zf2=gq3+HLOO;%FLGH4nh}1HRNe8yIuiAT+WJ&W@C0&81Q8}G=ggBKbVuUc?scM9u-H% zc!YiN;Z!lGAl%_~_GUb<5F=MX{U%D!QvfN(Wlm~q1qx`unay|kX`UK*+YkL+`$z|^ zS41prd`@~3UO8CiGnAu`vXZKVn?bYBuPFUCVnqc3JmOevs7Z}cA17z$+YrX{Xh<7I zBcgt(jW%qs`Qpw+jR4!r_EC(VO;ddgWNuYdAQQ?N=$l2LsyF7hXk;YxeZugi1dx?d zeQHJ@Dh-~@&Av;S)k_mhZK)*c@t?4=b2pl~KNX!juq07~bg=70DbCavyaM~kTSV&U zStl8AXpg$^XC!TJQGe1U0osm+3rLfNiS%yjJR{I8VuFenb&MW#aWTHskPxJjglmKT z;fh2+O*;ZpEI3Pw~H$Z^o1 z1FWJKy`AYb(umh+1vEB{3vhaNB)EZCEyKLOtdS~6{{||zy2Pm-L^4_y5H8&;&Y|Az z5%R&$-Gai1SDO%H^`4o7$625%#`OdEgSg!;XI>IL9t6u?zPZqL90N7oB6dN@;o*jvv=1W(`=*&na?mR(-MS{$OvpiL|LX452r9c^t&hr-M zuFR=ro+~~;N{zG>c}Lp1bkYc6#yK%NvkgW)<>v*gKIXkTFKehLE^MrSC}FOko`fXF zRgYO%5gXf4@`>BeW`G)QxY{YoEl&bRc_W8fk01!?Yx0Emx;YZVS3#c5VHygZF_s2? z2`p^z;X9WHJcL8C?T_e5_q$v6&a|ybag?FX z4`qP0f3o5D=Hpcy+TYT8J$SX)LK=feyo7Hb@HJ_)J1*$CzbG8)mp_7Ig88c&r}6x9 z*0t!lI1zKXNw*Jz=9HsVF_~E6;+}42ug8i3#!9Ew^{^CjaHw&YJ$9ugq?cvIXd&~P z3fez2AM-Qf!|YttxV4$70b0BMxS0-kMosn=b-uM*Qd(euO%6DX{fB7ZlgsX>XX<`w z)UCgeYA2ThgghG*?_XN5gNldR2HHa%LhRoVSk4}Ski@4SAW!w#&kI^-O%dbn#=%5 z(zryb8l&Y#YFS{5$j39WYdY9txeg|e+~iAfE``<2_h3RT+SNTxxH6Nk9|7fo}I zNH-q@@m`ctKQydSKGCCK*?`gyX0k-)D6s4OFoRn0L!RiZfRAW=&r&K(;L)on1;zY9 z%#-iZK3}S8H-NO3blFXOO2DUxE0v5W{KM@Je{={R*5MzG zAVbo9dwQhgFZ4Th%mU4sT+t<2t8)BeLT!I1{mhG&RO?Uy*aWAPBIZaXL2uXnf!XQ> za$0`~vLd^ni}Q32T*8Ntv|?8~Ri1&WfMI?(r>HwAak737kprgX`coLGb&Y%Onq6)Rs-BkLp zv8){&DCtoW!#^b?7UXJSTA}tp^lj7-;>l7Y($W4Rn^T1L$a-(Hf&qS|a7K;uLYikz znwr^-P5pMF4S5t1Y-F%RQj^y$&GS)BYu1DG%J1qmIKqeeeVZ&ExR#1wP!SOeZ!)oA zG(I>Ss#oh^p8y3Hh6eYY|6_Xe^)ntb&PcJ6a!1Fg-W$G4d{U@o>700=8zNZ{#AC=SaaB!)YWrV#s ztHQi2w6AQG4H6ttAP09rqw<_2l=uHg4;F5zt%Z+e`rnKZDG{GvFH96o^LF+TMQkWsr%HjNetFfMY9a)@G2Q_V~G?I3>xDEh}+qnd#M%N zpqoRDclnw~aUY3d!^6_$WDNaRekBGJD#*buXbOdS0&~{#@bFR!9S!wPj}lB4Bt3~S zV$zl^!Yh2D)yekz?n^9NU0Gx`bjvw2!i=|oOn&t!k{CFLGH!>VFegLBvV<5D#%e-J?QVcpDbjdsU}{K8D!TH? zp?sl(XIq&3u@?uqSY_Sw(2%a)EhN4M)8ow!AF2Y3XCdJQ_Mjog`wJhK`yS*v%^I8H zliwgyzh53%=I?r$X4m-Y{L$V>wwwg`8~p3#dYp@=n>K1tX-jgXiA3MjfVp1u}5e^8BYH#d5??L(Ir_B136judJwW>)-!p!^Xx zRJu@teZs{jFDIc4ghVS4hO~`W2qbg488D}_eF`DR+sE`r45zYw(=5eOWV-fKNN;l2 z4U7GHI|BZAt%j+S4*3Zz0V(Ifq{c-Z;YMXTt>Q3MDuJu7eHr)uGe=3s?L|<5ux(bi zYip3$kzMM92p%~f)wT}LsFjQuo)G3?tdG59k zsjZQx;CvN6#$4X%Y3-aLF(E%a8^TRkQ5EQXcA|ys$ksX!VZ%Q~q8#Wzx}C|vdf9v2 zMp1cZvPRzoy)a0T2^SxHESM=o)o2B~@efodmj@eWWb(s=Da*w)i`h0vm;~T|X8Y=v z1vgWN!E~oW5l}w_JB-Y=fXdTxQr(3chRlg4A44rXd|UesT+Xp?b)x7roZ}G^MU4JI zsog+1pcR2ZsqCT3DZ2n3jA5NbCO+16a>T(LtWVNQ^_~!Jlym_h1;w^DX2SVfxNi0I z55iGCXD#A$kL$HAQ__WK!iT7WdLqWAyCGBr{?FtpRrS*8;xo0Sa-PTV+s6SVH?mLq z2M)omPp{JR+d`b5r^ok$h>U{NnZT1NF@3&lp}s%a`ZyFfT!AH(3kk_ukh8;{KJBUP z>-u?EP|Nt)Vry6(CgJrB@!0Fk{4Hv41QbGI7x0LWeXeZZ54 z8K2Pk$ALm$U*h8>iFI-};G5tz8v!|f#v#7f4CK)^fo!}5`xGORNO)P3UA&``MoNvq zhT!>9iGogG^siz!ll@_7^?vKn1?HdULlmdW*ryo-ioF%?u}~vr5~VxLa8-%GeCf!< zX(qrkk?rM2c6H+*ccdK04>tlElqIwpX5%r@@A^HxL8p$nB8)+|mIG8yalM2_L@%3b z7H`v)AGYIfFMbF?(L#lY!hud>c-`+%@DEvByc9}=R?3*%Ns-KvgA)}i`KiBjk8VO? z)`ft|`|uoGeqT3u)qbb@s~YlP*m&Ez+zsyM7uDovA=rWS@Q66=b0XlG#BQstk(Cga z-jd^Q|9~!K5#;Qly!Z}3HqfuTiMb*-Ox=5;Xr#fT|HALfp&oVgiMhs0?|^u6Ap{cN zFf@%|Zg6-mybP?|5{DH6z(!w5dGZYPscSS|?X4o+UiiAGI(6XgY##UblDadzbz_k{ z_QeZ~*7yHDv$$e55D&k9`A#n%xPKB6YO6Aj0>iP@{T#2ghzIw*AHB`Wq65UdMvbO@ zE&|NiC3v?rO;KOV#qDK&)1Z4>MJpP>UR4Pj4@F47{Xk%Dj+B4XP=au~T-O+d5IwpP zZJ_XyL+LX2>LC<0x!N+k&PICY31sT+-Fi0OqBHtkvlCL z46z0pAs^q9T5>sw8Zu7$%X8$N_21-~cPvhKA5oOJhqF!L!!rbd< z>BXj_JuQ!w*Y4mDhpEHbSq*e6vbcD8>InUGMRPO&3Y-~GVZ*fg@c9JX_3HLU{#mU@ zz-!o;$Awc!-pKr#qaLb%`#I$~(U9DajtoyX@G3aKUMETVVCNIzSyt z>&#VO=2^qGoTAlLwYre!I8-zarr`gUS-RZ|+!pwJI^8cd6#T^OU5he#F~V9R=Xz_3 z6pw^BRhWfxZ9Gh7vb2~a4U?na`XhOxtQST80st`bV}J)YW6q15LLNHim_|^c$htBH zZh!IMtM55g>`#>>v=`~F7ckjXh-El~dfgmg7hHir07QiVO9*h9!hwspO(>qcNOUV0 zQMLOI$GLppmB+b)-|NS~m?1j22WMGgk-Yyi0zt02(KGL1usMO?c#lB;&s+cRqm}RbXMb=IHXQI4t3_Bm zH$qn*7I3IV zSH~MM@M~Jd)b}%f`=cE{I+$j6&(_1Y#*RITGU5AmsrLK)SV&T1A(2su&=(GTJG5q$ z)XW1##P0)JR|=y`Za6(M;z$%@2vL02%QWwP-7;dd2m2P4A~^ZnVR5Z5D(3RqEc{lk zbv+S-6Y2U#B?sGEDc9ZNVz?{)je#K}`<#E@)b_Rqziab(o6T~fA~+DfgN=lZC_i1BMCwWd}>D`n6dna6X*%$aS%qFklvmX9uI9ga>vj z!O&laiHR;+wIjETc8(usb4d9F&O)+XjJ(cg$Wk#a{ZbmPBm!`k1z8lpv84pecWd*9J2U^ZI`F+Z|!bB z&2R4?%Vv5Wxb#J?2+nwqc4GjNB@KRT*1S1KHyB`5R2?9U*y$W#{gf zoL=lBHE-`&P^@u#3zjj?)f@%<*EoqMc7jOYwK+o}G|9Pr%g4as z8HU2=FkB2)7=nc+KhKNrSd^VDN{(sU?AY(4AYqbVwdnucZ4anW{jDlIjz z=B$|wV~cK9#_IHllZyHiV-RVRH1WU)$eE>FfQ~Zuz-dEQ8m{H)p4Eo{sUHLu(9&G1 ztES;@7A_vxYfAgkU81(U?TlgkS4$XYrY zlQ_;ar*?%#V@68WByd&wyA0<~K-2A-N~S^=$E+X(Tu8DpM-`pgYt?Y=C8P;9-O4r(AF@!R6i1lJLa* zh7-5-xVeJ*xU^&go;KtixI*-9Q@Z%|e4ZjQuOyG5awAA%%7j83r%YH%MTU>G?UPms zpm?`^^&Zd8c^-h2?&H)}q1Yzh$fdx!BHPSDQ-yai*N{(KjmOh%^V1@8*sR5_4l)(l zj~d#hQ-wn!`IqEQ7^%R1IkUY-1zS5Az3$tbh{D8a2glZ8Y5SvH*q^(-3l9b+&<7UjwZ8l{`JXDKylI^qJG zw5%7_@e?qFa>Qck7v~e1#hDw-zj$aUGP_kfmLPkcy(SiFI?%WTma^D25DUjRyly(T z(pGTIemJ*7G@VM0vpJ-XbnE_NC~PM}lwlt=Q+DKIr|Pf*<;OOuT9Tt)q6$qo62^&^?;r%BW|j7 zmv^vJ{JDh^50rOmEMG=nT^7Ss-;YtXeKbHEF8Z@Ls&S&v?`u@MY(Jsv7&_VGyPP)k zS@g^E_cTLArH-4rLZ$*^ccl|Y^~8#%y1cz!o2sNktyy&gpAl0^I~l>)g%_(9Bko_E z>IE-DbIVd1b8Gn-jf^P_WbLIb;_N5*v4QA5Yyei^z)#Q$Lu<1|HCBzB??`G$s&uZrTN#Cs74Jjxi&#=B> zk6+4PK4uMFnrczKLNl%qj_b(a(sAaD4NslQu;juaFHM>JCf>rVfobl+!K-JFN88xZ zHmTo|`Vh)vG(MFwrk(zi+tR6Wm~>rH@yNQI%SA<{dVE%+m?GenViNuxH%(Aivq>&c z+iapxmYZ6$@r`Qfk5r|EDL<3#Qqnp{CO(t>B9f*Js)ZB$VOjcAnoW6sO>#3ITjA3? zVoi@OGt$(ZpNHm@`iM^@{a+f5lPQa{iu$b9=VGtczedhUd6<*~qf&CUlC=wZ;RbFe z;A!nvM5sGHZ16^=WDN!dCNAm|PspuzLkio$cI3;~Y^!c4sEM-slH?&I2_ z28QDoHp-@FAMC0s@Ot@*x*QH`IB@*X$eq~+K*~kdi-coEBZWHAD!YTO&f#?tBlZAP z(2__K-2&~)3lfhC!lviTAQqp{Dfj?V;-|TFA}uW5m6dO3C0S4~43Ph~{v^o%82`H( z<$q`X-&Ga=D-q@2X7*3d@_*M@{GT`epDK(0ePPW1%=`b-TvU>Ug!<2s;Q!|CzunLI HKi>ZWhiv&@ literal 0 HcmV?d00001 diff --git a/dist/package.json b/dist/package.json new file mode 100644 index 0000000..0cf1067 --- /dev/null +++ b/dist/package.json @@ -0,0 +1,17 @@ +{ + "version": "3.2.0", + "author": {"name":"Safia Khan","email":"like.programming@gmail.com"}, + "resources": [ + { + "resourceId": "rId0", + "sourceType": 5, + "file": "resources/PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166.pbiviz.json" + } + ], + "visual": {"name":"Bar Chart","displayName":"barChart","guid":"PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166","visualClassName":"BarChart","version":"3.2.0","description":"Bar Chart Custom Visual","supportUrl":"like.programming@gmail.co","gitHubUrl":""}, + "metadata": { + "pbivizjson": { + "resourceId": "rId0" + } + } + } \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ce1f30f..e71fa02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,30 +1,55 @@ { "name": "visual", "version": "3.2.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { + "packages": { + "": { + "name": "visual", + "version": "3.2.0", + "dependencies": { + "regenerator-runtime": "^0.13.9" + }, + "devDependencies": { + "@types/d3": "5.7.2", + "d3": "5.12.0", + "powerbi-visuals-api": "^3.8.3", + "powerbi-visuals-tools": "^3.3.2", + "powerbi-visuals-utils-dataviewutils": "^2.4.1", + "powerbi-visuals-utils-formattingutils": "^4.7.1", + "powerbi-visuals-utils-interactivityutils": "^5.7.1", + "powerbi-visuals-utils-tooltiputils": "^2.5.2", + "tslint": "^5.20.1", + "tslint-microsoft-contrib": "^6.2.0" + } + }, + "node_modules/@babel/code-frame": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz", "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", "dev": true, - "requires": { + "dependencies": { "@babel/highlight": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/compat-data": { + "node_modules/@babel/compat-data": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/core": { + "node_modules/@babel/core": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.8.3", "@babel/generator": "^7.9.0", "@babel/helper-module-transforms": "^7.9.0", @@ -41,130 +66,177 @@ "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" } }, - "@babel/generator": { + "node_modules/@babel/generator": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.15.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-annotate-as-pure": { + "node_modules/@babel/helper-annotate-as-pure": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz", "integrity": "sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-builder-binary-assignment-operator-visitor": { + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz", "integrity": "sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-explode-assignable-expression": "^7.14.5", "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-compilation-targets": { + "node_modules/@babel/helper-compilation-targets": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.15.0", "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "@babel/helper-create-regexp-features-plugin": { + "node_modules/@babel/helper-create-regexp-features-plugin": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz", "integrity": "sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.14.5", "regexpu-core": "^4.7.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/helper-explode-assignable-expression": { + "node_modules/@babel/helper-explode-assignable-expression": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz", "integrity": "sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-function-name": { + "node_modules/@babel/helper-function-name": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz", "integrity": "sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-get-function-arity": "^7.14.5", "@babel/template": "^7.14.5", "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-get-function-arity": { + "node_modules/@babel/helper-get-function-arity": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz", "integrity": "sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-hoist-variables": { + "node_modules/@babel/helper-hoist-variables": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz", "integrity": "sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-member-expression-to-functions": { + "node_modules/@babel/helper-member-expression-to-functions": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.15.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-imports": { + "node_modules/@babel/helper-module-imports": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz", "integrity": "sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-module-transforms": { + "node_modules/@babel/helper-module-transforms": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-imports": "^7.14.5", "@babel/helper-replace-supers": "^7.15.0", "@babel/helper-simple-access": "^7.14.8", @@ -173,358 +245,521 @@ "@babel/template": "^7.14.5", "@babel/traverse": "^7.15.0", "@babel/types": "^7.15.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-optimise-call-expression": { + "node_modules/@babel/helper-optimise-call-expression": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz", "integrity": "sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-plugin-utils": { + "node_modules/@babel/helper-plugin-utils": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz", "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-remap-async-to-generator": { + "node_modules/@babel/helper-remap-async-to-generator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz", "integrity": "sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.14.5", "@babel/helper-wrap-function": "^7.14.5", "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-replace-supers": { + "node_modules/@babel/helper-replace-supers": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-member-expression-to-functions": "^7.15.0", "@babel/helper-optimise-call-expression": "^7.14.5", "@babel/traverse": "^7.15.0", "@babel/types": "^7.15.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-simple-access": { + "node_modules/@babel/helper-simple-access": { "version": "7.14.8", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz", "integrity": "sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.8" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-skip-transparent-expression-wrappers": { + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz", "integrity": "sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-split-export-declaration": { + "node_modules/@babel/helper-split-export-declaration": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz", "integrity": "sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA==", "dev": true, - "requires": { + "dependencies": { "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz", "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-validator-option": { + "node_modules/@babel/helper-validator-option": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "@babel/helper-wrap-function": { + "node_modules/@babel/helper-wrap-function": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz", "integrity": "sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-function-name": "^7.14.5", "@babel/template": "^7.14.5", "@babel/traverse": "^7.14.5", "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/helpers": { + "node_modules/@babel/helpers": { "version": "7.15.3", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.3.tgz", "integrity": "sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g==", "dev": true, - "requires": { + "dependencies": { "@babel/template": "^7.14.5", "@babel/traverse": "^7.15.0", "@babel/types": "^7.15.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz", "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.14.5", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/parser": { + "node_modules/@babel/parser": { "version": "7.15.3", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.3.tgz", "integrity": "sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA==", - "dev": true + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } }, - "@babel/plugin-proposal-async-generator-functions": { + "node_modules/@babel/plugin-proposal-async-generator-functions": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz", "integrity": "sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.14.5", "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-dynamic-import": { + "node_modules/@babel/plugin-proposal-dynamic-import": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz", "integrity": "sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-dynamic-import instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-json-strings": { + "node_modules/@babel/plugin-proposal-json-strings": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz", "integrity": "sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-json-strings instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-nullish-coalescing-operator": { + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz", "integrity": "sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-numeric-separator": { + "node_modules/@babel/plugin-proposal-numeric-separator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz", "integrity": "sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-object-rest-spread": { + "node_modules/@babel/plugin-proposal-object-rest-spread": { "version": "7.14.7", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz", "integrity": "sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.14.7", "@babel/helper-compilation-targets": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-catch-binding": { + "node_modules/@babel/plugin-proposal-optional-catch-binding": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz", "integrity": "sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-optional-chaining": { + "node_modules/@babel/plugin-proposal-optional-chaining": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz", "integrity": "sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-proposal-unicode-property-regex": { + "node_modules/@babel/plugin-proposal-unicode-property-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz", "integrity": "sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-unicode-property-regex instead.", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-async-generators": { + "node_modules/@babel/plugin-syntax-async-generators": { "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-dynamic-import": { + "node_modules/@babel/plugin-syntax-dynamic-import": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-json-strings": { + "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-nullish-coalescing-operator": { + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-numeric-separator": { + "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-object-rest-spread": { + "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-catch-binding": { + "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-optional-chaining": { + "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-syntax-top-level-await": { + "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-arrow-functions": { + "node_modules/@babel/plugin-transform-arrow-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz", "integrity": "sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-async-to-generator": { + "node_modules/@babel/plugin-transform-async-to-generator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz", "integrity": "sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-imports": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-remap-async-to-generator": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoped-functions": { + "node_modules/@babel/plugin-transform-block-scoped-functions": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz", "integrity": "sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-block-scoping": { + "node_modules/@babel/plugin-transform-block-scoping": { "version": "7.15.3", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz", "integrity": "sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-classes": { + "node_modules/@babel/plugin-transform-classes": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz", "integrity": "sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-annotate-as-pure": "^7.14.5", "@babel/helper-function-name": "^7.14.5", "@babel/helper-optimise-call-expression": "^7.14.5", @@ -532,264 +767,426 @@ "@babel/helper-replace-supers": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-computed-properties": { + "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz", "integrity": "sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-destructuring": { + "node_modules/@babel/plugin-transform-destructuring": { "version": "7.14.7", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz", "integrity": "sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-dotall-regex": { + "node_modules/@babel/plugin-transform-dotall-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz", "integrity": "sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-duplicate-keys": { + "node_modules/@babel/plugin-transform-duplicate-keys": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz", "integrity": "sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-exponentiation-operator": { + "node_modules/@babel/plugin-transform-exponentiation-operator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz", "integrity": "sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-for-of": { + "node_modules/@babel/plugin-transform-for-of": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz", "integrity": "sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-function-name": { + "node_modules/@babel/plugin-transform-function-name": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz", "integrity": "sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-function-name": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-literals": { + "node_modules/@babel/plugin-transform-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz", "integrity": "sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-member-expression-literals": { + "node_modules/@babel/plugin-transform-member-expression-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz", "integrity": "sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-amd": { + "node_modules/@babel/plugin-transform-modules-amd": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz", "integrity": "sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-commonjs": { + "node_modules/@babel/plugin-transform-modules-commonjs": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz", "integrity": "sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.15.0", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-simple-access": "^7.14.8", "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-systemjs": { + "node_modules/@babel/plugin-transform-modules-systemjs": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz", "integrity": "sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-module-transforms": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-validator-identifier": "^7.14.5", "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-modules-umd": { + "node_modules/@babel/plugin-transform-modules-umd": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz", "integrity": "sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-module-transforms": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-named-capturing-groups-regex": { + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { "version": "7.14.9", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz", "integrity": "sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "@babel/plugin-transform-new-target": { + "node_modules/@babel/plugin-transform-new-target": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz", "integrity": "sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-object-super": { + "node_modules/@babel/plugin-transform-object-super": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz", "integrity": "sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-replace-supers": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-parameters": { + "node_modules/@babel/plugin-transform-parameters": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz", "integrity": "sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-property-literals": { + "node_modules/@babel/plugin-transform-property-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz", "integrity": "sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-regenerator": { + "node_modules/@babel/plugin-transform-regenerator": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz", "integrity": "sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg==", "dev": true, - "requires": { + "dependencies": { "regenerator-transform": "^0.14.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-reserved-words": { + "node_modules/@babel/plugin-transform-reserved-words": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz", "integrity": "sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-shorthand-properties": { + "node_modules/@babel/plugin-transform-shorthand-properties": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz", "integrity": "sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-spread": { + "node_modules/@babel/plugin-transform-spread": { "version": "7.14.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz", "integrity": "sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-sticky-regex": { + "node_modules/@babel/plugin-transform-sticky-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz", "integrity": "sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-template-literals": { + "node_modules/@babel/plugin-transform-template-literals": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz", "integrity": "sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-typeof-symbol": { + "node_modules/@babel/plugin-transform-typeof-symbol": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz", "integrity": "sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/plugin-transform-unicode-regex": { + "node_modules/@babel/plugin-transform-unicode-regex": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz", "integrity": "sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.14.5", "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-env": { + "node_modules/@babel/preset-env": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", "dev": true, - "requires": { + "dependencies": { "@babel/compat-data": "^7.9.0", "@babel/helper-compilation-targets": "^7.8.7", "@babel/helper-module-imports": "^7.8.3", @@ -850,57 +1247,66 @@ "invariant": "^2.2.2", "levenary": "^1.1.1", "semver": "^5.5.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/preset-modules": { + "node_modules/@babel/preset-modules": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", "@babel/plugin-transform-dotall-regex": "^7.4.4", "@babel/types": "^7.4.4", "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "@babel/runtime": { + "node_modules/@babel/runtime": { "version": "7.9.2", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "dev": true, - "requires": { + "dependencies": { "regenerator-runtime": "^0.13.4" } }, - "@babel/runtime-corejs3": { + "node_modules/@babel/runtime-corejs3": { "version": "7.9.2", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz", "integrity": "sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA==", "dev": true, - "requires": { + "dependencies": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, - "@babel/template": { + "node_modules/@babel/template": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.14.5.tgz", "integrity": "sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.14.5", "@babel/parser": "^7.14.5", "@babel/types": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/traverse": { + "node_modules/@babel/traverse": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.14.5", "@babel/generator": "^7.15.0", "@babel/helper-function-name": "^7.14.5", @@ -910,30 +1316,94 @@ "@babel/types": "^7.15.0", "debug": "^4.1.0", "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "@babel/types": { + "node_modules/@babel/types": { "version": "7.15.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.14.9", "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" } }, - "@polka/url": { + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", + "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@polka/url": { "version": "1.0.0-next.19", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.19.tgz", "integrity": "sha512-kHR9OHwP9WLpyC0i/WCAQCgf5hXkR9C+/21qxmrn+YwRlDRnBlqrcrFpXxhJTA9LDHJWa/FjoO2LJ12q8iWlEQ==", "dev": true }, - "@types/d3": { + "node_modules/@types/d3": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/@types/d3/-/d3-5.7.2.tgz", "integrity": "sha512-7/wClB8ycneWGy3jdvLfXKTd5SoTg9hji7IdJ0RuO9xTY54YpJ8zlcFADcXhY1J3kCBwxp+/1jeN6a5OMwgYOw==", "dev": true, - "requires": { + "dependencies": { "@types/d3-array": "^1", "@types/d3-axis": "*", "@types/d3-brush": "*", @@ -967,842 +1437,1025 @@ "@types/d3-zoom": "*" } }, - "@types/d3-array": { + "node_modules/@types/d3-array": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-1.2.7.tgz", "integrity": "sha512-51vHWuUyDOi+8XuwPrTw3cFqyh2Slg9y8COYkRfjCPG9TfYqY0hoNPzv/8BrcAy0FeQBzqEo/D/8Nk2caOQJnA==", "dev": true }, - "@types/d3-axis": { + "node_modules/@types/d3-axis": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-1.0.12.tgz", "integrity": "sha512-BZISgSD5M8TgURyNtcPAmUB9sk490CO1Thb6/gIn0WZTt3Y50IssX+2Z0vTccoqZksUDTep0b+o4ofXslvNbqg==", "dev": true, - "requires": { + "dependencies": { "@types/d3-selection": "*" } }, - "@types/d3-brush": { + "node_modules/@types/d3-brush": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-1.0.10.tgz", "integrity": "sha512-J8jREATIrfJaAfhJivqaEKPnJsRlwwrOPje+ABqZFgamADjll+q9zaDXnYyjiGPPsiJEU+Qq9jQi5rECxIOfhg==", "dev": true, - "requires": { + "dependencies": { "@types/d3-selection": "*" } }, - "@types/d3-chord": { + "node_modules/@types/d3-chord": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-1.0.9.tgz", "integrity": "sha512-UA6lI9CVW5cT5Ku/RV4hxoFn4mKySHm7HEgodtfRthAj1lt9rKZEPon58vyYfk+HIAm33DtJJgZwMXy2QgyPXw==", "dev": true }, - "@types/d3-collection": { + "node_modules/@types/d3-collection": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/d3-collection/-/d3-collection-1.0.8.tgz", "integrity": "sha512-y5lGlazdc0HNO0F3UUX2DPE7OmYvd9Kcym4hXwrJcNUkDaypR5pX+apuMikl9LfTxKItJsY9KYvzBulpCKyvuQ==", "dev": true }, - "@types/d3-color": { + "node_modules/@types/d3-color": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-1.2.2.tgz", "integrity": "sha512-6pBxzJ8ZP3dYEQ4YjQ+NVbQaOflfgXq/JbDiS99oLobM2o72uAST4q6yPxHv6FOTCRC/n35ktuo8pvw/S4M7sw==", "dev": true }, - "@types/d3-contour": { + "node_modules/@types/d3-contour": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-1.3.0.tgz", "integrity": "sha512-AUCUIjEnC5lCGBM9hS+MryRaFLIrPls4Rbv6ktqbd+TK/RXZPwOy9rtBWmGpbeXcSOYCJTUDwNJuEnmYPJRxHQ==", "dev": true, - "requires": { + "dependencies": { "@types/d3-array": "*", "@types/geojson": "*" } }, - "@types/d3-dispatch": { + "node_modules/@types/d3-dispatch": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-1.0.7.tgz", "integrity": "sha512-M+z84G7UKwK6hEPnGCSccOg8zJ3Nk2hgDQ9sCstHXgsFU0sMxlIZVKqKB5oxUDbALqQG6ucg0G9e8cmOSlishg==", "dev": true }, - "@types/d3-drag": { + "node_modules/@types/d3-drag": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-1.2.3.tgz", "integrity": "sha512-rWB5SPvkYVxW3sqUxHOJUZwifD0KqvKwvt1bhNqcLpW6Azsd0BJgRNcyVW8GAferaAk5r8dzeZnf9zKlg9+xMQ==", "dev": true, - "requires": { + "dependencies": { "@types/d3-selection": "*" } }, - "@types/d3-dsv": { + "node_modules/@types/d3-dsv": { "version": "1.0.36", "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-1.0.36.tgz", "integrity": "sha512-jbIWQ27QJcBNMZbQv0NSQMHnBDCmxghAxePxgyiPH1XPCRkOsTBei7jcdi3fDrUCGpCV3lKrSZFSlOkhUQVClA==", "dev": true }, - "@types/d3-ease": { + "node_modules/@types/d3-ease": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-1.0.9.tgz", "integrity": "sha512-U5ADevQ+W6fy32FVZZC9EXallcV/Mi12A5Tkd0My5MrC7T8soMQEhlDAg88XUWm0zoCQlB4XV0en/24LvuDB4Q==", "dev": true }, - "@types/d3-fetch": { + "node_modules/@types/d3-fetch": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-1.1.5.tgz", "integrity": "sha512-o9c0ItT5/Gl3wbNuVpzRnYX1t3RghzeWAjHUVLuyZJudiTxC4f/fC0ZPFWLQ2lVY8pAMmxpV8TJ6ETYCgPeI3A==", "dev": true, - "requires": { + "dependencies": { "@types/d3-dsv": "*" } }, - "@types/d3-force": { + "node_modules/@types/d3-force": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-1.2.1.tgz", "integrity": "sha512-jqK+I36uz4kTBjyk39meed5y31Ab+tXYN/x1dn3nZEus9yOHCLc+VrcIYLc/aSQ0Y7tMPRlIhLetulME76EiiA==", "dev": true }, - "@types/d3-format": { + "node_modules/@types/d3-format": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-1.3.1.tgz", "integrity": "sha512-KAWvReOKMDreaAwOjdfQMm0HjcUMlQG47GwqdVKgmm20vTd2pucj0a70c3gUSHrnsmo6H2AMrkBsZU2UhJLq8A==", "dev": true }, - "@types/d3-geo": { + "node_modules/@types/d3-geo": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-1.11.1.tgz", "integrity": "sha512-Ox8WWOG3igDRoep/dNsGbOiSJYdUG3ew/6z0ETvHyAtXZVBjOE0S96zSSmzgl0gqQ3RdZjn2eeJOj9oRcMZPkQ==", "dev": true, - "requires": { + "dependencies": { "@types/geojson": "*" } }, - "@types/d3-hierarchy": { + "node_modules/@types/d3-hierarchy": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-1.1.6.tgz", "integrity": "sha512-vvSaIDf/Ov0o3KwMT+1M8+WbnnlRiGjlGD5uvk83a1mPCTd/E5x12bUJ/oP55+wUY/4Kb5kc67rVpVGJ2KUHxg==", "dev": true }, - "@types/d3-interpolate": { + "node_modules/@types/d3-interpolate": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-1.3.1.tgz", "integrity": "sha512-z8Zmi08XVwe8e62vP6wcA+CNuRhpuUU5XPEfqpG0hRypDE5BWNthQHB1UNWWDB7ojCbGaN4qBdsWp5kWxhT1IQ==", "dev": true, - "requires": { + "dependencies": { "@types/d3-color": "*" } }, - "@types/d3-path": { + "node_modules/@types/d3-path": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-1.0.8.tgz", "integrity": "sha512-AZGHWslq/oApTAHu9+yH/Bnk63y9oFOMROtqPAtxl5uB6qm1x2lueWdVEjsjjV3Qc2+QfuzKIwIR5MvVBakfzA==", "dev": true }, - "@types/d3-polygon": { + "node_modules/@types/d3-polygon": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-1.0.7.tgz", "integrity": "sha512-Xuw0eSjQQKs8jTiNbntWH0S+Xp+JyhqxmQ0YAQ3rDu6c3kKMFfgsaGN7Jv5u3zG6yVX/AsLP/Xs/QRjmi9g43Q==", "dev": true }, - "@types/d3-quadtree": { + "node_modules/@types/d3-quadtree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-1.0.7.tgz", "integrity": "sha512-0ajFawWicfjsaCLh6NzxOyVDYhQAmMFbsiI3MPGLInorauHFEh9/Cl6UHNf+kt/J1jfoxKY/ZJaKAoDpbvde5Q==", "dev": true }, - "@types/d3-random": { + "node_modules/@types/d3-random": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-1.1.2.tgz", "integrity": "sha512-Jui+Zn28pQw/3EayPKaN4c/PqTvqNbIPjHkgIIFnxne1FdwNjfHtAIsZIBMKlquQNrrMjFzCrlF2gPs3xckqaA==", "dev": true }, - "@types/d3-scale": { + "node_modules/@types/d3-scale": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-2.1.1.tgz", "integrity": "sha512-kNTkbZQ+N/Ip8oX9PByXfDLoCSaZYm+VUOasbmsa6KD850/ziMdYepg/8kLg2plHzoLANdMqPoYQbvExevLUHg==", "dev": true, - "requires": { + "dependencies": { "@types/d3-time": "*" } }, - "@types/d3-scale-chromatic": { + "node_modules/@types/d3-scale-chromatic": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-1.3.1.tgz", "integrity": "sha512-Ny3rLbV5tnmqgW7w/poCcef4kXP8mHPo/p8EjTS5d9OUk8MlqAeRaM8eF7Vyv7QMLiIXNE94Pa1cMLSPkXQBoQ==", "dev": true }, - "@types/d3-selection": { + "node_modules/@types/d3-selection": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-1.4.1.tgz", "integrity": "sha512-bv8IfFYo/xG6dxri9OwDnK3yCagYPeRIjTlrcdYJSx+FDWlCeBDepIHUpqROmhPtZ53jyna0aUajZRk0I3rXNA==", "dev": true }, - "@types/d3-shape": { + "node_modules/@types/d3-shape": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-1.3.2.tgz", "integrity": "sha512-LtD8EaNYCaBRzHzaAiIPrfcL3DdIysc81dkGlQvv7WQP3+YXV7b0JJTtR1U3bzeRieS603KF4wUo+ZkJVenh8w==", "dev": true, - "requires": { + "dependencies": { "@types/d3-path": "*" } }, - "@types/d3-time": { + "node_modules/@types/d3-time": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-1.0.10.tgz", "integrity": "sha512-aKf62rRQafDQmSiv1NylKhIMmznsjRN+MnXRXTqHoqm0U/UZzVpdrtRnSIfdiLS616OuC1soYeX1dBg2n1u8Xw==", "dev": true }, - "@types/d3-time-format": { + "node_modules/@types/d3-time-format": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-2.1.1.tgz", "integrity": "sha512-tJSyXta8ZyJ52wDDHA96JEsvkbL6jl7wowGmuf45+fAkj5Y+SQOnz0N7/H68OWmPshPsAaWMQh+GAws44IzH3g==", "dev": true }, - "@types/d3-timer": { + "node_modules/@types/d3-timer": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-1.0.9.tgz", "integrity": "sha512-WvfJ3LFxBbWjqRGz9n7GJt08RrTHPJDVsIwwoCMROlqF+iDacYiAFjf9oqnq0mXpb2juA2N/qjKP+MKdal3YNQ==", "dev": true }, - "@types/d3-transition": { + "node_modules/@types/d3-transition": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-1.1.5.tgz", "integrity": "sha512-4IexeQEmEk2u5/ZxqHPCiKxX+sn7uPsg+wb6zL3KLqj8jFlhcueAo3a5Tj1Z74VBeeeQjirdSFNtR87Gox/iwA==", "dev": true, - "requires": { + "dependencies": { "@types/d3-selection": "*" } }, - "@types/d3-voronoi": { + "node_modules/@types/d3-voronoi": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/@types/d3-voronoi/-/d3-voronoi-1.1.9.tgz", "integrity": "sha512-DExNQkaHd1F3dFPvGA/Aw2NGyjMln6E9QzsiqOcBgnE+VInYnFBHBBySbZQts6z6xD+5jTfKCP7M4OqMyVjdwQ==", "dev": true }, - "@types/d3-zoom": { + "node_modules/@types/d3-zoom": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/@types/d3-zoom/-/d3-zoom-1.7.4.tgz", "integrity": "sha512-5jnFo/itYhJeB2khO/lKe730kW/h2EbKMOvY0uNp3+7NdPm4w63DwPEMxifQZ7n902xGYK5DdU67FmToSoy4VA==", "dev": true, - "requires": { + "dependencies": { "@types/d3-interpolate": "*", "@types/d3-selection": "*" } }, - "@types/eslint": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.28.0.tgz", - "integrity": "sha512-07XlgzX0YJUn4iG1ocY4IX9DzKSmMGUs6ESKlxWhZRaa0fatIWaHWUVapcuGa8r5HFnTqzj+4OCjd5f7EZ/i/A==", + "node_modules/@types/eslint": { + "version": "8.44.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.2.tgz", + "integrity": "sha512-sdPRb9K6iL5XZOmBubg8yiFp5yS/JdUDQsq5e6h95km91MCYMuvp7mh1fjPEYUhvHepKpZOjnEaMBR4PxjWDzg==", "dev": true, - "requires": { + "dependencies": { "@types/estree": "*", "@types/json-schema": "*" } }, - "@types/eslint-scope": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.1.tgz", - "integrity": "sha512-SCFeogqiptms4Fg29WpOTk5nHIzfpKCemSN63ksBQYKTcXoJEmJagV+DhVmbapZzY4/5YaOV1nZwrsU79fFm1g==", + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, - "requires": { + "dependencies": { "@types/eslint": "*", "@types/estree": "*" } }, - "@types/estree": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz", - "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==", + "node_modules/@types/estree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", + "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==", "dev": true }, - "@types/geojson": { + "node_modules/@types/geojson": { "version": "7946.0.7", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.7.tgz", "integrity": "sha512-wE2v81i4C4Ol09RtsWFAqg3BUitWbHSpSlIo+bNdsCJijO9sjme+zm+73ZMCa/qMC8UEERxzGbvmr1cffo2SiQ==", "dev": true }, - "@types/glob": { + "node_modules/@types/glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.4.tgz", "integrity": "sha512-w+LsMxKyYQm347Otw+IfBXOv9UWVjpHpCDdbBMt8Kz/xbvCYNjP+0qPh91Km3iKfSRLBB0P7fAMf0KHrPu+MyA==", "dev": true, - "requires": { + "dependencies": { "@types/minimatch": "*", "@types/node": "*" } }, - "@types/json-schema": { + "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", "dev": true }, - "@types/minimatch": { + "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", "dev": true }, - "@types/node": { + "node_modules/@types/node": { "version": "16.7.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.2.tgz", "integrity": "sha512-TbG4TOx9hng8FKxaVrCisdaxKxqEwJ3zwHoCWXZ0Jw6mnvTInpaB99/2Cy4+XxpXtjNv9/TgfGSvZFyfV/t8Fw==", "dev": true }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", + "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "peer": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" } }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", + "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "dev": true, + "peer": true }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", + "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "dev": true, + "peer": true }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", + "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "dev": true, + "peer": true }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", + "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", + "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", + "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "node_modules/@webassemblyjs/helper-numbers/node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", "dev": true }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "node_modules/@webassemblyjs/helper-numbers/node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", + "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" } }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", + "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", "dev": true, - "requires": { + "peer": true, + "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", + "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", "dev": true, - "requires": { + "peer": true, + "dependencies": { "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", + "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "dev": true, + "peer": true }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", + "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", + "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", + "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" } }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", + "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" } }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", + "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" } }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", + "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", "@xtuc/long": "4.2.2" } }, - "@xtuc/ieee754": { + "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "@xtuc/long": { + "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "accepts": { + "node_modules/accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, - "requires": { + "dependencies": { "mime-types": "~2.1.24", "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" } }, - "acorn": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.4.1.tgz", - "integrity": "sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==", - "dev": true + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-import-assertions": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz", - "integrity": "sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==", - "dev": true + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } }, - "acorn-walk": { + "node_modules/acorn-walk": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.1.1.tgz", "integrity": "sha512-FbJdceMlPHEAWJOILDk1fXD8lnTlEIWFkqtfk+MvmL5q/qlHfN7GEHcsFZWt/Tea9jRNPWUZG4G976nqAAmU9w==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "ajv": { + "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, - "requires": { + "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ajv-errors": { + "node_modules/ajv-errors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } }, - "ajv-keywords": { + "node_modules/ajv-keywords": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } }, - "ansi-colors": { + "node_modules/ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "ansi-html": { + "node_modules/ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "anymatch": { + "node_modules/anymatch": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, - "requires": { + "dependencies": { "micromatch": "^3.1.4", "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "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" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "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" - } - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/anymatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "argparse": { + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true, + "peer": true + }, + "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, - "requires": { + "dependencies": { "sprintf-js": "~1.0.2" } }, - "arr-diff": { + "node_modules/arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "arr-flatten": { + "node_modules/arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "arr-union": { + "node_modules/arr-union": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "array-flatten": { + "node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, - "array-union": { + "node_modules/array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, - "requires": { + "dependencies": { "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "array-uniq": { + "node_modules/array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "array-unique": { + "node_modules/array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "asn1": { + "node_modules/asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, - "requires": { + "dependencies": { "safer-buffer": "~2.1.0" } }, - "asn1.js": { + "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0", "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "assert": { + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", "dev": true, - "requires": { + "dependencies": { "es6-object-assign": "^1.1.0", "is-nan": "^1.2.1", "object-is": "^1.0.1", "util": "^0.12.0" } }, - "assert-plus": { + "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "assign-symbols": { + "node_modules/assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "async": { + "node_modules/async": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", "dev": true }, - "async-each": { + "node_modules/async-each": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", "dev": true }, - "async-limiter": { + "node_modules/async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", "dev": true }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", "dev": true }, - "at-least-node": { + "node_modules/at-least-node": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4.0.0" + } }, - "atob": { + "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } }, - "available-typed-arrays": { + "node_modules/available-typed-arrays": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "aws-sign2": { + "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "aws4": { + "node_modules/aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", "dev": true }, - "babel-loader": { + "node_modules/babel-loader": { "version": "8.2.2", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.2.tgz", "integrity": "sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g==", "dev": true, - "requires": { + "dependencies": { "find-cache-dir": "^3.3.1", "loader-utils": "^1.4.0", "make-dir": "^3.1.0", "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" } }, - "babel-plugin-dynamic-import-node": { + "node_modules/babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", "dev": true, - "requires": { + "dependencies": { "object.assign": "^4.1.0" } }, - "balanced-match": { + "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "base": { + "node_modules/base": { "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, - "requires": { + "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", "component-emitter": "^1.2.1", @@ -1811,113 +2464,160 @@ "mixin-deep": "^1.2.0", "pascalcase": "^0.1.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "base64-inline-loader": { + "node_modules/base64-inline-loader": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/base64-inline-loader/-/base64-inline-loader-1.1.1.tgz", "integrity": "sha512-v/bHvXQ8sW28t9ZwBsFGgyqZw2bpT49/dtPTtlmixoSM/s9wnOngOKFVQLRH8BfMTy6jTl5m5CdvqpZt8y5d6g==", "dev": true, - "requires": { + "dependencies": { "file-loader": "^1.1.11", "loader-utils": "^1.1.0", "mime-types": "^2.1.18" + }, + "engines": { + "node": ">=6.2", + "npm": ">=3.8" + }, + "peerDependencies": { + "webpack": "^4.x" } }, - "base64-js": { + "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "batch": { + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", "dev": true }, - "bcrypt-pbkdf": { + "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, - "requires": { + "dependencies": { "tweetnacl": "^0.14.3" } }, - "big.js": { + "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "binary-extensions": { + "node_modules/binary-extensions": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "bindings": { + "node_modules/bindings": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, "optional": true, - "requires": { + "dependencies": { "file-uri-to-path": "1.0.0" } }, - "bn.js": { + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true, + "peer": true + }, + "node_modules/bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", "dev": true }, - "body-parser": { + "node_modules/body-parser": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.1.0", "content-type": "~1.0.4", "debug": "2.6.9", @@ -1929,61 +2629,71 @@ "raw-body": "2.4.0", "type-is": "~1.6.17" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/body-parser/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" } }, - "bonjour": { + "node_modules/bonjour": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "dev": true, - "requires": { + "dependencies": { "array-flatten": "^2.1.0", "deep-equal": "^1.0.1", "dns-equal": "^1.0.0", @@ -1992,37 +2702,40 @@ "multicast-dns-service-types": "^1.1.0" } }, - "brace-expansion": { + "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "requires": { + "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "braces": { + "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, - "requires": { + "dependencies": { "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" } }, - "brorand": { + "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browserify-aes": { + "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, - "requires": { + "dependencies": { "buffer-xor": "^1.0.3", "cipher-base": "^1.0.0", "create-hash": "^1.1.0", @@ -2031,45 +2744,45 @@ "safe-buffer": "^5.0.1" } }, - "browserify-cipher": { + "node_modules/browserify-cipher": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, - "requires": { + "dependencies": { "browserify-aes": "^1.0.4", "browserify-des": "^1.0.0", "evp_bytestokey": "^1.0.0" } }, - "browserify-des": { + "node_modules/browserify-des": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "des.js": "^1.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "browserify-rsa": { + "node_modules/browserify-rsa": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^5.0.0", "randombytes": "^2.0.1" } }, - "browserify-sign": { + "node_modules/browserify-sign": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^5.1.1", "browserify-rsa": "^4.0.1", "create-hash": "^1.2.0", @@ -2079,90 +2792,173 @@ "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, - "browserify-zlib": { + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, - "requires": { + "dependencies": { "pako": "~1.0.5" } }, - "browserslist": { + "node_modules/browserslist": { "version": "4.16.8", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.8.tgz", "integrity": "sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ==", "dev": true, - "requires": { + "dependencies": { "caniuse-lite": "^1.0.30001251", "colorette": "^1.3.0", "electron-to-chromium": "^1.3.811", "escalade": "^3.1.1", "node-releases": "^1.1.75" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" } }, - "buffer": { + "node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", "dev": true, - "requires": { + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" } }, - "buffer-from": { + "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, - "buffer-indexof": { + "node_modules/buffer-indexof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", "dev": true }, - "buffer-xor": { + "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", "dev": true }, - "builtin-modules": { + "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "builtin-status-codes": { + "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, - "bytes": { + "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "cache-base": { + "node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", + "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "dev": true, + "peer": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "peer": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "peer": true + }, + "node_modules/cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, - "requires": { + "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", "get-value": "^2.0.6", @@ -2172,97 +2968,126 @@ "to-object-path": "^0.3.0", "union-value": "^1.0.0", "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "call-bind": { + "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "camelcase": { + "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "caniuse-lite": { + "node_modules/caniuse-lite": { "version": "1.0.30001252", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz", "integrity": "sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw==", - "dev": true + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } }, - "caseless": { + "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", "dev": true }, - "chalk": { + "node_modules/chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "chokidar": { + "node_modules/chokidar": { "version": "2.1.8", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", "dev": true, - "requires": { + "dependencies": { "anymatch": "^2.0.0", "async-each": "^1.0.1", "braces": "^2.3.2", - "fsevents": "^1.2.7", "glob-parent": "^3.1.0", "inherits": "^2.0.3", "is-binary-path": "^1.0.0", @@ -2272,239 +3097,291 @@ "readdirp": "^2.2.1", "upath": "^1.1.1" }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chokidar/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "chrome-trace-event": { + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "peer": true + }, + "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.0" + } }, - "cipher-base": { + "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" } }, - "class-utils": { + "node_modules/class-utils": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, - "requires": { + "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", "isobject": "^3.0.0", "static-extend": "^0.1.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "cliui": { + "node_modules/cliui": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, - "requires": { + "dependencies": { "string-width": "^3.1.0", "strip-ansi": "^5.2.0", "wrap-ansi": "^5.1.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "clone": { + "node_modules/clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8" + } }, - "collection-visit": { + "node_modules/collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, - "requires": { + "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "color-convert": { + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "colorette": { + "node_modules/colorette": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", "integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", "dev": true }, - "combined-stream": { + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, - "requires": { + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" } }, - "commander": { + "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "commondir": { + "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, - "compare-versions": { + "node_modules/compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", "dev": true }, - "component-emitter": { + "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "compressible": { + "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, - "requires": { + "dependencies": { "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "compression": { + "node_modules/compression": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.5", "bytes": "3.0.0", "compressible": "~2.0.16", @@ -2513,201 +3390,296 @@ "safe-buffer": "5.1.2", "vary": "~1.1.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "concat-map": { + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, - "connect": { + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/connect": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", "parseurl": "~1.3.3", "utils-merge": "1.0.1" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">= 0.10.0" } }, - "connect-history-api-fallback": { + "node_modules/connect-history-api-fallback": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "console-browserify": { + "node_modules/console-browserify": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", "dev": true }, - "constants-browserify": { + "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", "dev": true }, - "content-disposition": { + "node_modules/content-disposition": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" } }, - "content-type": { + "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "convert-source-map": { + "node_modules/convert-source-map": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "~5.1.1" } }, - "cookie": { + "node_modules/cookie": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "cookie-signature": { + "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, - "copy-anything": { + "node_modules/copy-anything": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.3.tgz", "integrity": "sha512-GK6QUtisv4fNS+XcI7shX0Gx9ORg7QqIznyfho79JTnX1XhLiyZHfftvGiziqzRiEi/Bjhgpi+D2o7HxJFPnDQ==", "dev": true, - "requires": { + "dependencies": { "is-what": "^3.12.0" } }, - "copy-descriptor": { + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "peer": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "core-js": { + "node_modules/core-js": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "dev": true + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "core-js-compat": { + "node_modules/core-js-compat": { "version": "3.16.3", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.16.3.tgz", "integrity": "sha512-A/OtSfSJQKLAFRVd4V0m6Sep9lPdjD8bpN8v3tCCGwE0Tmh0hOiVDm9tw6mXmWOKOSZIyr3EkywPo84cJjGvIQ==", "dev": true, - "requires": { + "dependencies": { "browserslist": "^4.16.8", "semver": "7.0.0" }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "core-js-pure": { + "node_modules/core-js-pure": { "version": "3.16.3", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.16.3.tgz", "integrity": "sha512-6In+2RwN0FT5yK0ZnhDP5rco/NnuuFZhHauQizZiHo5lDnqAvq8Phxcpy3f+prJOqtKodt/cftBl/GTOW0kiqQ==", - "dev": true + "deprecated": "core-js-pure@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "coveralls": { + "node_modules/coveralls": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==", "dev": true, - "requires": { + "dependencies": { "js-yaml": "^3.13.1", "lcov-parse": "^1.0.0", "log-driver": "^1.2.7", "minimist": "^1.2.5", "request": "^2.88.2" + }, + "bin": { + "coveralls": "bin/coveralls.js" + }, + "engines": { + "node": ">=6" } }, - "create-ecdh": { + "node_modules/create-ecdh": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "create-hash": { + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.1", "inherits": "^2.0.1", "md5.js": "^1.3.4", @@ -2715,12 +3687,12 @@ "sha.js": "^2.4.0" } }, - "create-hmac": { + "node_modules/create-hmac": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, - "requires": { + "dependencies": { "cipher-base": "^1.0.3", "create-hash": "^1.1.0", "inherits": "^2.0.1", @@ -2729,25 +3701,28 @@ "sha.js": "^2.4.8" } }, - "cross-spawn": { + "node_modules/cross-spawn": { "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, - "requires": { + "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", "semver": "^5.5.0", "shebang-command": "^1.2.0", "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" } }, - "crypto-browserify": { + "node_modules/crypto-browserify": { "version": "3.12.0", "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, - "requires": { + "dependencies": { "browserify-cipher": "^1.0.0", "browserify-sign": "^4.0.0", "create-ecdh": "^4.0.0", @@ -2759,14 +3734,17 @@ "public-encrypt": "^4.0.0", "randombytes": "^2.0.0", "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" } }, - "css-loader": { + "node_modules/css-loader": { "version": "5.2.7", "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-5.2.7.tgz", "integrity": "sha512-Q7mOvpBNBG7YrVGMxRxcBJZFL75o+cH2abNASdibkj/fffYD8qWbInZrD0S9ccI6vZclF3DsHE7njGlLtaHbhg==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.1.0", "loader-utils": "^2.0.0", "postcss": "^8.2.15", @@ -2778,52 +3756,89 @@ "schema-utils": "^3.0.0", "semver": "^7.3.5" }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.27.0 || ^5.0.0" + } + }, + "node_modules/css-loader/node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/css-loader/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-loader/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "cssesc": { + "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } }, - "d3": { + "node_modules/cyclist": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.2.tgz", + "integrity": "sha512-0sVXIohTfLqVIW3kb/0n6IiWF3Ifj5nm2XaSrLq2DI6fKIGa2fYAZdk917rUneaeLVpYfFcyXE2ft0fe3remsA==", + "dev": true, + "peer": true + }, + "node_modules/d3": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/d3/-/d3-5.12.0.tgz", "integrity": "sha512-flYVMoVuhPFHd9zVCe2BxIszUWqBcd5fvQGMNRmSiBrgdnh6Vlruh60RJQTouAK9xPbOB0plxMvBm4MoyODXNg==", "dev": true, - "requires": { + "dependencies": { "d3-array": "1", "d3-axis": "1", "d3-brush": "1", @@ -2857,24 +3872,24 @@ "d3-zoom": "1" } }, - "d3-array": { + "node_modules/d3-array": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.4.tgz", "integrity": "sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==", "dev": true }, - "d3-axis": { + "node_modules/d3-axis": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.12.tgz", "integrity": "sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==", "dev": true }, - "d3-brush": { + "node_modules/d3-brush": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.1.3.tgz", "integrity": "sha512-v8bbYyCFKjyCzFk/tdWqXwDykY8YWqhXYjcYxfILIit085VZOpj4XJKOMccTsvWxgzSLMJQg5SiqHjslsipEDg==", "dev": true, - "requires": { + "dependencies": { "d3-dispatch": "1", "d3-drag": "1", "d3-interpolate": "1", @@ -2882,151 +3897,162 @@ "d3-transition": "1" } }, - "d3-chord": { + "node_modules/d3-chord": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.6.tgz", "integrity": "sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==", "dev": true, - "requires": { + "dependencies": { "d3-array": "1", "d3-path": "1" } }, - "d3-collection": { + "node_modules/d3-collection": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.7.tgz", "integrity": "sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==", "dev": true }, - "d3-color": { + "node_modules/d3-color": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.4.0.tgz", "integrity": "sha512-TzNPeJy2+iEepfiL92LAAB7fvnp/dV2YwANPVHdDWmYMm23qIJBYww3qT8I8C1wXrmrg4UWs7BKc2tKIgyjzHg==", "dev": true }, - "d3-contour": { + "node_modules/d3-contour": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-1.3.2.tgz", "integrity": "sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==", "dev": true, - "requires": { + "dependencies": { "d3-array": "^1.1.1" } }, - "d3-dispatch": { + "node_modules/d3-dispatch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.5.tgz", "integrity": "sha512-vwKx+lAqB1UuCeklr6Jh1bvC4SZgbSqbkGBLClItFBIYH4vqDJCA7qfoy14lXmJdnBOdxndAMxjCbImJYW7e6g==", "dev": true }, - "d3-drag": { + "node_modules/d3-drag": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.4.tgz", "integrity": "sha512-ICPurDETFAelF1CTHdIyiUM4PsyZLaM+7oIBhmyP+cuVjze5vDZ8V//LdOFjg0jGnFIZD/Sfmk0r95PSiu78rw==", "dev": true, - "requires": { + "dependencies": { "d3-dispatch": "1", "d3-selection": "1" } }, - "d3-dsv": { + "node_modules/d3-dsv": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.1.1.tgz", "integrity": "sha512-1EH1oRGSkeDUlDRbhsFytAXU6cAmXFzc52YUe6MRlPClmWb85MP1J5x+YJRzya4ynZWnbELdSAvATFW/MbxaXw==", "dev": true, - "requires": { + "dependencies": { "commander": "2", "iconv-lite": "0.4", "rw": "1" - } - }, - "d3-ease": { + }, + "bin": { + "csv2json": "bin/dsv2json", + "csv2tsv": "bin/dsv2dsv", + "dsv2dsv": "bin/dsv2dsv", + "dsv2json": "bin/dsv2json", + "json2csv": "bin/json2dsv", + "json2dsv": "bin/json2dsv", + "json2tsv": "bin/json2dsv", + "tsv2csv": "bin/dsv2dsv", + "tsv2json": "bin/dsv2json" + } + }, + "node_modules/d3-ease": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.5.tgz", "integrity": "sha512-Ct1O//ly5y5lFM9YTdu+ygq7LleSgSE4oj7vUt9tPLHUi8VCV7QoizGpdWRWAwCO9LdYzIrQDg97+hGVdsSGPQ==", "dev": true }, - "d3-fetch": { + "node_modules/d3-fetch": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-1.1.2.tgz", "integrity": "sha512-S2loaQCV/ZeyTyIF2oP8D1K9Z4QizUzW7cWeAOAS4U88qOt3Ucf6GsmgthuYSdyB2HyEm4CeGvkQxWsmInsIVA==", "dev": true, - "requires": { + "dependencies": { "d3-dsv": "1" } }, - "d3-force": { + "node_modules/d3-force": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.2.1.tgz", "integrity": "sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==", "dev": true, - "requires": { + "dependencies": { "d3-collection": "1", "d3-dispatch": "1", "d3-quadtree": "1", "d3-timer": "1" } }, - "d3-format": { + "node_modules/d3-format": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.1.tgz", "integrity": "sha512-TUswGe6hfguUX1CtKxyG2nymO+1lyThbkS1ifLX0Sr+dOQtAD5gkrffpHnx+yHNKUZ0Bmg5T4AjUQwugPDrm0g==", "dev": true }, - "d3-geo": { + "node_modules/d3-geo": { "version": "1.11.6", "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.11.6.tgz", "integrity": "sha512-z0J8InXR9e9wcgNtmVnPTj0TU8nhYT6lD/ak9may2PdKqXIeHUr8UbFLoCtrPYNsjv6YaLvSDQVl578k6nm7GA==", "dev": true, - "requires": { + "dependencies": { "d3-array": "1" } }, - "d3-hierarchy": { + "node_modules/d3-hierarchy": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.8.tgz", "integrity": "sha512-L+GHMSZNwTpiq4rt9GEsNcpLa4M96lXMR8M/nMG9p5hBE0jy6C+3hWtyZMenPQdwla249iJy7Nx0uKt3n+u9+w==", "dev": true }, - "d3-interpolate": { + "node_modules/d3-interpolate": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.3.2.tgz", "integrity": "sha512-NlNKGopqaz9qM1PXh9gBF1KSCVh+jSFErrSlD/4hybwoNX/gt1d8CDbDW+3i+5UOHhjC6s6nMvRxcuoMVNgL2w==", "dev": true, - "requires": { + "dependencies": { "d3-color": "1" } }, - "d3-path": { + "node_modules/d3-path": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.8.tgz", "integrity": "sha512-J6EfUNwcMQ+aM5YPOB8ZbgAZu6wc82f/0WFxrxwV6Ll8wBwLaHLKCqQ5Imub02JriCVVdPjgI+6P3a4EWJCxAg==", "dev": true }, - "d3-polygon": { + "node_modules/d3-polygon": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.5.tgz", "integrity": "sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w==", "dev": true }, - "d3-quadtree": { + "node_modules/d3-quadtree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.6.tgz", "integrity": "sha512-NUgeo9G+ENQCQ1LsRr2qJg3MQ4DJvxcDNCiohdJGHt5gRhBW6orIB5m5FJ9kK3HNL8g9F4ERVoBzcEwQBfXWVA==", "dev": true }, - "d3-random": { + "node_modules/d3-random": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.2.tgz", "integrity": "sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==", "dev": true }, - "d3-scale": { + "node_modules/d3-scale": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-2.2.2.tgz", "integrity": "sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==", "dev": true, - "requires": { + "dependencies": { "d3-array": "^1.2.0", "d3-collection": "1", "d3-format": "1", @@ -3035,58 +4061,58 @@ "d3-time-format": "2" } }, - "d3-scale-chromatic": { + "node_modules/d3-scale-chromatic": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz", "integrity": "sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==", "dev": true, - "requires": { + "dependencies": { "d3-color": "1", "d3-interpolate": "1" } }, - "d3-selection": { + "node_modules/d3-selection": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.4.0.tgz", "integrity": "sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg==", "dev": true }, - "d3-shape": { + "node_modules/d3-shape": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.3.5.tgz", "integrity": "sha512-VKazVR3phgD+MUCldapHD7P9kcrvPcexeX/PkMJmkUov4JM8IxsSg1DvbYoYich9AtdTsa5nNk2++ImPiDiSxg==", "dev": true, - "requires": { + "dependencies": { "d3-path": "1" } }, - "d3-time": { + "node_modules/d3-time": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.1.0.tgz", "integrity": "sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==", "dev": true }, - "d3-time-format": { + "node_modules/d3-time-format": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.2.1.tgz", "integrity": "sha512-VA6WqORO1+H1SvSzgl2oT0z3niANh3opa8Cencpen1LFthw/bEX71R/DgjPlWw78J4UHmD0jCPP1W0HpwMkhjg==", "dev": true, - "requires": { + "dependencies": { "d3-time": "1" } }, - "d3-timer": { + "node_modules/d3-timer": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.9.tgz", "integrity": "sha512-rT34J5HnQUHhcLvhSB9GjCkN0Ddd5Y8nCwDBG2u6wQEeYxT/Lf51fTFFkldeib/sE/J0clIe0pnCfs6g/lRbyg==", "dev": true }, - "d3-transition": { + "node_modules/d3-transition": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.2.0.tgz", "integrity": "sha512-VJ7cmX/FPIPJYuaL2r1o1EMHLttvoIuZhhuAlRoOxDzogV8iQS6jYulDm3xEU3TqL80IZIhI551/ebmCMrkvhw==", "dev": true, - "requires": { + "dependencies": { "d3-color": "1", "d3-dispatch": "1", "d3-ease": "1", @@ -3095,18 +4121,18 @@ "d3-timer": "1" } }, - "d3-voronoi": { + "node_modules/d3-voronoi": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.4.tgz", "integrity": "sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==", "dev": true }, - "d3-zoom": { + "node_modules/d3-zoom": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.8.3.tgz", "integrity": "sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==", "dev": true, - "requires": { + "dependencies": { "d3-dispatch": "1", "d3-drag": "1", "d3-interpolate": "1", @@ -3114,116 +4140,152 @@ "d3-transition": "1" } }, - "dashdash": { + "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, - "requires": { + "dependencies": { "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" } }, - "debug": { + "node_modules/debug": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", "dev": true, - "requires": { + "dependencies": { "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "decamelize": { + "node_modules/decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "decode-uri-component": { + "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "deep-equal": { + "node_modules/deep-equal": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "dev": true, - "requires": { + "dependencies": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", "is-regex": "^1.0.4", "object-is": "^1.0.1", "object-keys": "^1.1.1", "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "default-gateway": { + "node_modules/default-gateway": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "dev": true, - "requires": { + "dependencies": { "execa": "^1.0.0", "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" } }, - "define-properties": { + "node_modules/define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "dev": true, - "requires": { + "dependencies": { "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" } }, - "define-property": { + "node_modules/define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, - "requires": { + "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "del": { + "node_modules/del": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, - "requires": { + "dependencies": { "@types/glob": "^7.1.1", "globby": "^6.1.0", "is-path-cwd": "^2.0.0", @@ -3231,132 +4293,187 @@ "p-map": "^2.0.0", "pify": "^4.0.1", "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" } }, - "delayed-stream": { + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.0" + } }, - "depd": { + "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "des.js": { + "node_modules/des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "minimalistic-assert": "^1.0.0" } }, - "destroy": { + "node_modules/destroy": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-node": { + "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "diff": { + "node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.3.1" + } }, - "diffie-hellman": { + "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.1.0", "miller-rabin": "^4.0.0", "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "dns-equal": { + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", "dev": true }, - "dns-packet": { + "node_modules/dns-packet": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.4.tgz", "integrity": "sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==", "dev": true, - "requires": { + "dependencies": { "ip": "^1.1.0", "safe-buffer": "^5.0.1" } }, - "dns-txt": { + "node_modules/dns-txt": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, - "requires": { + "dependencies": { "buffer-indexof": "^1.0.0" } }, - "domain-browser": { + "node_modules/domain-browser": { "version": "4.22.0", "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-4.22.0.tgz", "integrity": "sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw==", - "dev": true + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://bevry.me/fund" + } }, - "duplexer": { + "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", "dev": true }, - "ecc-jsbn": { + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "peer": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, - "requires": { + "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, - "ee-first": { + "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", "dev": true }, - "electron-to-chromium": { + "node_modules/electron-to-chromium": { "version": "1.3.818", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.818.tgz", "integrity": "sha512-c/Z9gIr+jDZAR9q+mn40hEc1NharBT+8ejkarjbCDnBNFviI6hvcC5j2ezkAXru//bTnQp5n6iPi0JA83Tla1Q==", "dev": true }, - "elliptic": { + "node_modules/elliptic": { "version": "6.5.4", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.11.9", "brorand": "^1.1.0", "hash.js": "^1.0.0", @@ -3364,78 +4481,88 @@ "inherits": "^2.0.4", "minimalistic-assert": "^1.0.1", "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "emoji-regex": { + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, - "emojis-list": { + "node_modules/emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "encodeurl": { + "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "end-of-stream": { + "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "dev": true, - "requires": { + "dependencies": { "once": "^1.4.0" } }, - "enhanced-resolve": { + "node_modules/enhanced-resolve": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.1.2", "memory-fs": "^0.5.0", "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" } }, - "errno": { + "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, - "requires": { + "dependencies": { "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" } }, - "error-stack-parser": { + "node_modules/error-stack-parser": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz", "integrity": "sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==", "dev": true, - "requires": { + "dependencies": { "stackframe": "^1.1.1" } }, - "es-abstract": { + "node_modules/es-abstract": { "version": "1.18.5", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.5.tgz", "integrity": "sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", @@ -3453,137 +4580,185 @@ "string.prototype.trimend": "^1.0.4", "string.prototype.trimstart": "^1.0.4", "unbox-primitive": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es-module-lexer": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.7.1.tgz", - "integrity": "sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw==", + "node_modules/es-module-lexer": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.0.tgz", + "integrity": "sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==", "dev": true }, - "es-to-primitive": { + "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, - "requires": { + "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "es6-object-assign": { + "node_modules/es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, - "escalade": { + "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "escape-html": { + "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", "dev": true }, - "escape-string-regexp": { + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "dev": true, - "requires": { - "esrecurse": "^4.3.0", + "peer": true, + "dependencies": { + "esrecurse": "^4.1.0", "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "esrecurse": { + "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, - "requires": { + "dependencies": { "estraverse": "^5.2.0" }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "engines": { + "node": ">=4.0" } }, - "estraverse": { + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true + "dev": true, + "engines": { + "node": ">=4.0" + } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "etag": { + "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "eventemitter3": { + "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "events": { + "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.x" + } }, - "eventsource": { + "node_modules/eventsource": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.1.0.tgz", "integrity": "sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg==", "dev": true, - "requires": { + "dependencies": { "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" } }, - "evp_bytestokey": { + "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, - "requires": { + "dependencies": { "md5.js": "^1.3.4", "safe-buffer": "^5.1.1" } }, - "execa": { + "node_modules/execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, - "requires": { + "dependencies": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", "is-stream": "^1.1.0", @@ -3591,14 +4766,17 @@ "p-finally": "^1.0.0", "signal-exit": "^3.0.0", "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" } }, - "expand-brackets": { + "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, - "requires": { + "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", "extend-shallow": "^2.0.1", @@ -3607,48 +4785,55 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "express": { + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express": { "version": "4.17.1", "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.7", "array-flatten": "1.1.1", "body-parser": "1.19.0", @@ -3680,69 +4865,77 @@ "utils-merge": "1.0.1", "vary": "~1.1.2" }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true, + "engines": { + "node": ">=0.6" } }, - "extend": { + "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "extend-shallow": { + "node_modules/extend-shallow": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, - "requires": { + "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" } }, - "extglob": { + "node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, - "requires": { + "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", "expand-brackets": "^2.1.4", @@ -3752,151 +4945,191 @@ "snapdragon": "^0.8.1", "to-regex": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "extra-watch-webpack-plugin": { + "node_modules/extra-watch-webpack-plugin": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/extra-watch-webpack-plugin/-/extra-watch-webpack-plugin-1.0.3.tgz", "integrity": "sha512-ZScQdMH6hNofRRN6QMQFg+aa5vqimfBgnPXmRDhdaLpttT6hrzpY9Oyren3Gh/FySPrgsvKCNbx/NFA7XNdIsg==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.2", "is-glob": "^4.0.0", "lodash.uniq": "^4.5.0", "schema-utils": "^0.4.0" - }, + } + }, + "node_modules/extra-watch-webpack-plugin/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" } }, - "extsprintf": { + "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "dev": true, + "engines": [ + "node >=0.6.0" + ] }, - "fast-deep-equal": { + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, - "faye-websocket": { + "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, - "requires": { + "dependencies": { "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "file-loader": { + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", + "dev": true, + "peer": true + }, + "node_modules/file-loader": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "dev": true, - "requires": { + "dependencies": { "loader-utils": "^1.0.2", "schema-utils": "^0.4.5" }, + "engines": { + "node": ">= 4.3 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, "dependencies": { - "schema-utils": { - "version": "0.4.7", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", - "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-keywords": "^3.1.0" - } - } + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" } }, - "file-uri-to-path": { + "node_modules/file-uri-to-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, "optional": true }, - "fill-range": { + "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, - "requires": { + "dependencies": { "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "finalhandler": { + "node_modules/finalhandler": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -3905,1791 +5138,2508 @@ "statuses": "~1.5.0", "unpipe": "~1.0.0" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "ms": "2.0.0" } }, - "find-cache-dir": { + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/find-cache-dir": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "dev": true, - "requires": { + "dependencies": { "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "find-up": { + "node_modules/find-up": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, - "requires": { + "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "peer": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "follow-redirects": { + "node_modules/follow-redirects": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.2.tgz", "integrity": "sha512-yLR6WaE2lbF0x4K2qE2p9PEXKLDjUjnR/xmjS3wHAYxtlsI9MLLBJUZirAHKzUZDGLxje7w/cXR49WOUo4rbsA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } }, - "for-in": { + "node_modules/for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "foreach": { + "node_modules/foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", "dev": true }, - "forever-agent": { + "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "form-data": { + "node_modules/form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, - "requires": { + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" } }, - "forwarded": { + "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "fragment-cache": { + "node_modules/fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, - "requires": { + "dependencies": { "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "fresh": { + "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "friendly-errors-webpack-plugin": { + "node_modules/friendly-errors-webpack-plugin": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz", "integrity": "sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw==", "dev": true, - "requires": { + "dependencies": { "chalk": "^1.1.3", "error-stack-parser": "^2.0.0", "string-width": "^2.0.0" }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/friendly-errors-webpack-plugin/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/friendly-errors-webpack-plugin/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/friendly-errors-webpack-plugin/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha512-OMcX/4IC/uqEPVgGeyfN22LJk6AZrMkRZHxcHBMBvHScDGgwTm2GT2Wkgtocyd3JfZffjj2kYUDXXII0Fk9W0g==", + "dev": true, + "peer": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "fs-extra": { + "node_modules/fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, - "requires": { + "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/fs-write-stream-atomic/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "fs.realpath": { + "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, - "fsevents": { + "node_modules/fsevents": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "The v1 package contains DANGEROUS / INSECURE binaries. Upgrade to safe fsevents v2", "dev": true, + "hasInstallScript": true, "optional": true, - "requires": { + "os": [ + "darwin" + ], + "dependencies": { "bindings": "^1.5.0", "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" } }, - "function-bind": { + "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "gensync": { + "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, - "get-caller-file": { + "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } }, - "get-intrinsic": { + "node_modules/get-intrinsic": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "get-stream": { + "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, - "requires": { + "dependencies": { "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" } }, - "get-value": { + "node_modules/get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "getpass": { + "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, - "requires": { + "dependencies": { "assert-plus": "^1.0.0" } }, - "glob": { + "node_modules/glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, - "requires": { + "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" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "glob-parent": { + "node_modules/glob-parent": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, - "requires": { + "dependencies": { "is-glob": "^3.1.0", "path-dirname": "^1.0.0" - }, + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "glob-to-regexp": { + "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "globals": { + "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "globby": { + "node_modules/globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "dev": true, - "requires": { + "dependencies": { "array-union": "^1.0.1", "glob": "^7.0.3", "object-assign": "^4.0.1", "pify": "^2.0.0", "pinkie-promise": "^2.0.0" }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "gzip-size": { + "node_modules/gzip-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", "dev": true, - "requires": { + "dependencies": { "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "handle-thing": { + "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "har-schema": { + "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "har-validator": { + "node_modules/har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", "dev": true, - "requires": { + "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "has": { + "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-ansi": { + "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "has-bigints": { + "node_modules/has-bigints": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "has-symbols": { + "node_modules/has-symbols": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "has-tostringtag": { + "node_modules/has-tostringtag": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "has-value": { + "node_modules/has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, - "requires": { + "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "has-values": { + "node_modules/has-values": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, - "requires": { + "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "hash-base": { + "node_modules/hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "engines": { + "node": ">=4" } }, - "hash.js": { + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "minimalistic-assert": "^1.0.1" } }, - "hmac-drbg": { + "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, - "requires": { + "dependencies": { "hash.js": "^1.0.3", "minimalistic-assert": "^1.0.0", "minimalistic-crypto-utils": "^1.0.1" } }, - "hpack.js": { + "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", "readable-stream": "^2.0.1", "wbuf": "^1.1.0" - }, + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "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" } }, - "html-entities": { + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-entities": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", "dev": true }, - "http-deceiver": { + "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", "dev": true }, - "http-errors": { + "node_modules/http-errors": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", "dev": true, - "requires": { + "dependencies": { "depd": "~1.1.2", "inherits": "2.0.4", "setprototypeof": "1.1.1", "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" } }, - "http-parser-js": { + "node_modules/http-parser-js": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", "dev": true }, - "http-proxy": { + "node_modules/http-proxy": { "version": "1.18.1", "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, - "requires": { + "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" } }, - "http-proxy-middleware": { + "node_modules/http-proxy-middleware": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", "dev": true, - "requires": { + "dependencies": { "http-proxy": "^1.17.0", "is-glob": "^4.0.0", "lodash": "^4.17.11", "micromatch": "^3.1.10" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "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" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-proxy-middleware/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" } }, - "http-signature": { + "node_modules/http-proxy-middleware/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, - "requires": { + "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "https-browserify": { + "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, - "iconv-lite": { + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" } }, - "icss-utils": { + "node_modules/icss-utils": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "ieee754": { + "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "image-size": { + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA==", + "dev": true, + "peer": true + }, + "node_modules/image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", "dev": true, - "optional": true + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } }, - "immediate": { + "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", "dev": true }, - "import-local": { + "node_modules/import-local": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "dev": true, - "requires": { + "dependencies": { "pkg-dir": "^3.0.0", "resolve-cwd": "^2.0.0" }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } - } + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/import-local/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.19" } }, - "inflight": { + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "dev": true, + "peer": true + }, + "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, - "requires": { + "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "internal-ip": { + "node_modules/internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "dev": true, - "requires": { + "dependencies": { "default-gateway": "^4.2.0", "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" } }, - "internal-slot": { + "node_modules/internal-slot": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", "dev": true, - "requires": { + "dependencies": { "get-intrinsic": "^1.1.0", "has": "^1.0.3", "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" } }, - "invariant": { + "node_modules/invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, - "requires": { + "dependencies": { "loose-envify": "^1.0.0" } }, - "ip": { + "node_modules/ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", "dev": true }, - "ip-regex": { + "node_modules/ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "ipaddr.js": { + "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.10" + } }, - "is-absolute-url": { + "node_modules/is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "is-accessor-descriptor": { + "node_modules/is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, - "requires": { + "dependencies": { "kind-of": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-arguments": { + "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-bigint": { + "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", "dev": true, - "requires": { + "dependencies": { "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-binary-path": { + "node_modules/is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, - "requires": { + "dependencies": { "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-boolean-object": { + "node_modules/is-boolean-object": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-buffer": { + "node_modules/is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "is-callable": { + "node_modules/is-callable": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-core-module": { + "node_modules/is-core-module": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz", "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", "dev": true, - "requires": { + "dependencies": { "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-data-descriptor": { + "node_modules/is-data-descriptor": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, - "requires": { + "dependencies": { "kind-of": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-date-object": { + "node_modules/is-date-object": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-descriptor": { + "node_modules/is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, - "requires": { + "dependencies": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", "kind-of": "^5.0.0" }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "is-extendable": { + "node_modules/is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-extglob": { + "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-fullwidth-code-point": { + "node_modules/is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "is-generator-function": { + "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-glob": { + "node_modules/is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, - "requires": { + "dependencies": { "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-nan": { + "node_modules/is-nan": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-negative-zero": { + "node_modules/is-negative-zero": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-number": { + "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12.0" + } }, - "is-number-object": { + "node_modules/is-number-object": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-path-cwd": { + "node_modules/is-path-cwd": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "is-path-in-cwd": { + "node_modules/is-path-in-cwd": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, - "requires": { + "dependencies": { "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" } }, - "is-path-inside": { + "node_modules/is-path-inside": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, - "requires": { + "dependencies": { "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" } }, - "is-plain-object": { + "node_modules/is-plain-object": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, - "requires": { + "dependencies": { "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "is-regex": { + "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-stream": { + "node_modules/is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-string": { + "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", "dev": true, - "requires": { + "dependencies": { "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-symbol": { + "node_modules/is-symbol": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", "dev": true, - "requires": { + "dependencies": { "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typed-array": { + "node_modules/is-typed-array": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.7.tgz", "integrity": "sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA==", "dev": true, - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.4", "call-bind": "^1.0.2", "es-abstract": "^1.18.5", "foreach": "^2.0.5", "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "is-typedarray": { + "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-what": { + "node_modules/is-what": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", "dev": true }, - "is-windows": { + "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "is-wsl": { + "node_modules/is-wsl": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "isarray": { + "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "isexe": { + "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, - "isobject": { + "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "isstream": { + "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "jest-worker": { - "version": "27.0.6", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.0.6.tgz", - "integrity": "sha512-qupxcj/dRuA3xHPMUd40gr2EaAurFbkwzOh7wfPaeE9id7hyjURRQoqNfHifHK3XjJU6YJJUQKILGUnwGPEOCA==", + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, - "requires": { + "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "js-tokens": { + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "js-yaml": { + "node_modules/js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, - "requires": { + "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "jsbn": { + "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, - "jsesc": { + "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } }, - "json-loader": { + "node_modules/json-loader": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", "dev": true }, - "json-parse-better-errors": { + "node_modules/json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true, + "peer": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { + "node_modules/json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "json-stringify-safe": { + "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, - "json3": { + "node_modules/json3": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", "dev": true }, - "json5": { + "node_modules/json5": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" } }, - "jsonfile": { + "node_modules/jsonfile": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "requires": { - "graceful-fs": "^4.1.6", + "dependencies": { "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" } }, - "jsprim": { + "node_modules/jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, - "requires": { + "engines": [ + "node >=0.6.0" + ], + "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" } }, - "jszip": { + "node_modules/jszip": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.2.2.tgz", "integrity": "sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA==", "dev": true, - "requires": { + "dependencies": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", "set-immediate-shim": "~1.0.1" - }, + } + }, + "node_modules/jszip/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "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" + } + }, + "node_modules/jszip/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "killable": { + "node_modules/killable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", "dev": true }, - "kind-of": { + "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "lcov-parse": { + "node_modules/lcov-parse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-1.0.0.tgz", "integrity": "sha1-6w1GtUER68VhrLTECO+TY73I9+A=", - "dev": true + "dev": true, + "bin": { + "lcov-parse": "bin/cli.js" + } }, - "less": { + "node_modules/less": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/less/-/less-3.13.1.tgz", "integrity": "sha512-SwA1aQXGUvp+P5XdZslUOhhLnClSLIjWvJhmd+Vgib5BFIr9lMNlQwmwUNOjXThF/A0x+MCYYPeWEfeWiLRnTw==", "dev": true, - "requires": { + "dependencies": { "copy-anything": "^2.0.1", + "tslib": "^1.10.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { "errno": "^0.1.1", "graceful-fs": "^4.1.2", "image-size": "~0.5.0", "make-dir": "^2.1.0", "mime": "^1.4.1", "native-request": "^1.0.5", - "source-map": "~0.6.0", - "tslib": "^1.10.0" - }, - "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "optional": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "optional": true - } + "source-map": "~0.6.0" } }, - "less-loader": { + "node_modules/less-loader": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", "dev": true, - "requires": { + "dependencies": { "clone": "^2.1.1", "loader-utils": "^1.1.0", "pify": "^4.0.1" + }, + "engines": { + "node": ">= 4.8.0" + }, + "peerDependencies": { + "less": "^2.3.1 || ^3.0.0", + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/less/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" } }, - "leven": { + "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "levenary": { + "node_modules/levenary": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", "dev": true, - "requires": { + "dependencies": { "leven": "^3.1.0" + }, + "engines": { + "node": ">= 6" } }, - "lie": { + "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", "dev": true, - "requires": { + "dependencies": { "immediate": "~3.0.5" } }, - "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", - "dev": true + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } }, - "loader-utils": { + "node_modules/loader-utils": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "dev": true, - "requires": { + "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", "json5": "^1.0.1" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" } }, - "locate-path": { + "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, - "requires": { + "dependencies": { "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, - "lodash.clonedeep": { + "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, - "lodash.defaults": { + "node_modules/lodash.defaults": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", "dev": true }, - "lodash.isequal": { + "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=", "dev": true }, - "lodash.uniq": { + "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", "dev": true }, - "log-driver": { + "node_modules/log-driver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.7.tgz", "integrity": "sha512-U7KCmLdqsGHBLeWqYlFA0V0Sl6P08EE1ZrmA9cxjUE0WVqT9qnyVDPz1kzpFEP0jdJuFnasWIfSd7fsaNXkpbg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.6" + } }, - "loglevel": { + "node_modules/loglevel": { "version": "1.7.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } }, - "loose-envify": { + "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, - "requires": { + "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" } }, - "lru-cache": { + "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "requires": { + "dependencies": { "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" } }, - "make-dir": { + "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "requires": { + "dependencies": { "semver": "^6.0.0" }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "map-cache": { + "node_modules/map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "map-visit": { + "node_modules/map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, - "requires": { + "dependencies": { "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "md5.js": { + "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1", "safe-buffer": "^5.1.2" } }, - "media-typer": { + "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "memory-fs": { + "node_modules/memory-fs": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", "dev": true, - "requires": { + "dependencies": { "errno": "^0.1.3", "readable-stream": "^2.0.1" }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/memory-fs/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "dependencies": { - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "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" + } + }, + "node_modules/memory-fs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "merge-descriptors": { + "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, - "merge-stream": { + "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, - "methods": { + "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "micromatch": { + "node_modules/micromatch": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", "dev": true, - "requires": { + "dependencies": { "braces": "^3.0.1", "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" } }, - "miller-rabin": { + "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, - "requires": { + "dependencies": { "bn.js": "^4.0.0", "brorand": "^1.0.1" }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } + "bin": { + "miller-rabin": "bin/miller-rabin" } }, - "mime": { + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } }, - "mime-db": { + "node_modules/mime-db": { "version": "1.49.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.32", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", "dev": true, - "requires": { + "dependencies": { "mime-db": "1.49.0" + }, + "engines": { + "node": ">= 0.6" } }, - "mini-css-extract-plugin": { + "node_modules/mini-css-extract-plugin": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", "dev": true, - "requires": { + "dependencies": { "loader-utils": "^2.0.0", "schema-utils": "^3.0.0", "webpack-sources": "^1.1.0" }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, "dependencies": { - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "minimalistic-assert": { + "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", "dev": true }, - "minimalistic-crypto-utils": { + "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", "dev": true }, - "minimatch": { + "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, - "requires": { + "dependencies": { "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" } }, - "minimist": { + "node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, - "mixin-deep": { + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "peer": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, - "requires": { + "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" } }, - "mkdirp": { + "node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, - "requires": { + "dependencies": { "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==", + "dev": true, + "peer": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, - "ms": { + "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "multicast-dns": { + "node_modules/multicast-dns": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, - "requires": { + "dependencies": { "dns-packet": "^1.3.1", "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" } }, - "multicast-dns-service-types": { + "node_modules/multicast-dns-service-types": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, - "nan": { + "node_modules/nan": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.15.0.tgz", "integrity": "sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==", "dev": true, "optional": true }, - "nanoid": { + "node_modules/nanoid": { "version": "3.1.25", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.25.tgz", "integrity": "sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==", - "dev": true + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } }, - "nanomatch": { + "node_modules/nanomatch": { "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, - "requires": { + "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", "define-property": "^2.0.2", @@ -5701,272 +7651,567 @@ "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "native-request": { + "node_modules/native-request": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/native-request/-/native-request-1.0.9.tgz", "integrity": "sha512-KTRwqMwWCkoLZfjes3yBhK6XHwZ5Q1jPsdVra9hug8HNRbMsfTJm8a8L6/WOYi1h5eWNwlBaYy8V5SpJwkDgKw==", "dev": true, "optional": true }, - "negotiator": { + "node_modules/negotiator": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "neo-async": { + "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, - "nice-try": { + "node_modules/nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", "dev": true }, - "node-forge": { + "node_modules/node-forge": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "peer": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "peer": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/node-libs-browser/node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true, + "peer": true + }, + "node_modules/node-libs-browser/node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "peer": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dev": true, + "peer": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/node-libs-browser/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true, + "peer": true + }, + "node_modules/node-libs-browser/node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true, + "peer": true + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "peer": true + }, + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/node-libs-browser/node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "peer": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/node-libs-browser/node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "peer": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/node-libs-browser/node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==", + "dev": true, + "peer": true + }, + "node_modules/node-libs-browser/node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "peer": true, + "dependencies": { + "inherits": "2.0.3" + } }, - "node-releases": { + "node_modules/node-releases": { "version": "1.1.75", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz", "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", "dev": true }, - "normalize-path": { + "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "npm-run-path": { + "node_modules/npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, - "requires": { + "dependencies": { "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" } }, - "oauth-sign": { + "node_modules/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "dev": true, + "engines": { + "node": "*" + } }, - "object-assign": { + "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "object-copy": { + "node_modules/object-copy": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, - "requires": { + "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", "kind-of": "^3.0.3" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "object-inspect": { + "node_modules/object-inspect": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "object-is": { + "node_modules/object-is": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object-keys": { + "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4" + } }, - "object-visit": { + "node_modules/object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, - "requires": { + "dependencies": { "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "object.assign": { + "node_modules/object.assign": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3", "has-symbols": "^1.0.1", "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "object.pick": { + "node_modules/object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, - "requires": { + "dependencies": { "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "obuf": { + "node_modules/obuf": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "on-finished": { + "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", "dev": true, - "requires": { + "dependencies": { "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" } }, - "on-headers": { + "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "once": { + "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "requires": { + "dependencies": { "wrappy": "1" } }, - "opener": { + "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } }, - "opn": { + "node_modules/opn": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "dev": true, - "requires": { + "dependencies": { "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" } }, - "original": { + "node_modules/original": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "dev": true, - "requires": { + "dependencies": { "url-parse": "^1.4.3" } }, - "os-browserify": { + "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", "dev": true }, - "p-finally": { + "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "p-limit": { + "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, - "requires": { + "dependencies": { "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "p-locate": { + "node_modules/p-locate": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, - "requires": { + "dependencies": { "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" } }, - "p-map": { + "node_modules/p-map": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "p-retry": { + "node_modules/p-retry": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", "dev": true, - "requires": { + "dependencies": { "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" } }, - "p-try": { + "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "pako": { + "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, - "parse-asn1": { + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "peer": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/parallel-transform/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", "dev": true, - "requires": { + "dependencies": { "asn1.js": "^5.2.0", "browserify-aes": "^1.0.0", "evp_bytestokey": "^1.0.0", @@ -5974,252 +8219,330 @@ "safe-buffer": "^5.1.1" } }, - "parseurl": { + "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "pascalcase": { + "node_modules/pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-browserify": { + "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true }, - "path-dirname": { + "node_modules/path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", "dev": true }, - "path-exists": { + "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "path-is-absolute": { + "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "path-is-inside": { + "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", "dev": true }, - "path-key": { + "node_modules/path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "path-parse": { + "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "path-to-regexp": { + "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, - "pbkdf2": { + "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", "dev": true, - "requires": { + "dependencies": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", "ripemd160": "^2.0.1", "safe-buffer": "^5.0.1", "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" } }, - "performance-now": { + "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, - "picomatch": { + "node_modules/picomatch": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } }, - "pify": { + "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "pinkie": { + "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "pinkie-promise": { + "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, - "requires": { + "dependencies": { "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "pkg-dir": { + "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "requires": { + "dependencies": { "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "portfinder": { + "node_modules/portfinder": { "version": "1.0.28", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", "dev": true, - "requires": { + "dependencies": { "async": "^2.6.2", "debug": "^3.1.1", "mkdirp": "^0.5.5" }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, "dependencies": { - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "lodash": "^4.17.14" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" } }, - "posix-character-classes": { + "node_modules/posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "postcss": { + "node_modules/postcss": { "version": "8.3.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.3.6.tgz", "integrity": "sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A==", "dev": true, - "requires": { + "dependencies": { "colorette": "^1.2.2", "nanoid": "^3.1.23", "source-map-js": "^0.6.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" } }, - "postcss-modules-extract-imports": { + "node_modules/postcss-modules-extract-imports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true + "dev": true, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } }, - "postcss-modules-local-by-default": { + "node_modules/postcss-modules-local-by-default": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^6.0.2", "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-scope": { + "node_modules/postcss-modules-scope": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", "dev": true, - "requires": { + "dependencies": { "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-modules-values": { + "node_modules/postcss-modules-values": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, - "requires": { + "dependencies": { "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" } }, - "postcss-selector-parser": { + "node_modules/postcss-selector-parser": { "version": "6.0.6", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz", "integrity": "sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg==", "dev": true, - "requires": { + "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" } }, - "postcss-value-parser": { + "node_modules/postcss-value-parser": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", "dev": true }, - "powerbi-models": { + "node_modules/powerbi-models": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/powerbi-models/-/powerbi-models-1.8.0.tgz", "integrity": "sha512-MXXnw3kBR7m3UcxmowVIQ8cxBTJ1CC/rxfFht6ur8bsKhXV01DSgrn3iLk9GRmExjITTvipwO56goRAJGxZq+w==", "dev": true }, - "powerbi-visuals-api": { + "node_modules/powerbi-visuals-api": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/powerbi-visuals-api/-/powerbi-visuals-api-3.8.3.tgz", "integrity": "sha512-CyZuXgHhc7jalR/j6UMzfVUkeG53JVAMpFvsmcGIWxu1Vke7+5931qOdqZjfsBwaQ7hpGA2RJPJAzREjMQJFCg==", "dev": true, - "requires": { + "dependencies": { "semver": "^7.3.2" - }, + } + }, + "node_modules/powerbi-visuals-api/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, - "powerbi-visuals-tools": { + "node_modules/powerbi-visuals-tools": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/powerbi-visuals-tools/-/powerbi-visuals-tools-3.3.2.tgz", "integrity": "sha512-mtmMLdGThhv3uW/wYU3mFLyxSwPXe8VN8kAvjM7mwf1YbmMqJTTX/waLZhJW3s1Uxg0kNYU1jpMH6BZ9O2vZQg==", "dev": true, - "requires": { + "dependencies": { "@babel/core": "7.9.0", "@babel/plugin-syntax-dynamic-import": "7.8.3", "@babel/preset-env": "7.9.0", @@ -6278,108 +8601,436 @@ "webpack-bundle-analyzer": "4.4.2", "webpack-dev-server": "^3.11.2" }, + "bin": { + "pbiviz": "bin/pbiviz.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dev": true, "dependencies": { - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - } + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" } }, - "powerbi-visuals-utils-dataviewutils": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-dataviewutils/-/powerbi-visuals-utils-dataviewutils-2.4.1.tgz", - "integrity": "sha512-xgI4ru1KWcYFTbftLsR7Pzg14cslVPajUZUyRk6nzCEQvUMN/kVtPpVT5+s8UuhDZe7zpqSDAhSGS5yAcn9GcA==", + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", "dev": true }, - "powerbi-visuals-utils-formattingutils": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-formattingutils/-/powerbi-visuals-utils-formattingutils-4.7.1.tgz", - "integrity": "sha512-17pOtW+UNjhPz+dotk9Cu9FBLPueVU0MV6uXPjlu6Uu7YvqA/7GCUsopAq/erCI8e8vgTQZkHy9jwGbPJM+LaQ==", + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "dev": true + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", "dev": true, - "requires": { - "powerbi-visuals-utils-dataviewutils": "2.4.1", - "powerbi-visuals-utils-typeutils": "2.3.1" + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" } }, - "powerbi-visuals-utils-interactivityutils": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-interactivityutils/-/powerbi-visuals-utils-interactivityutils-5.7.1.tgz", - "integrity": "sha512-8DPuAPFBII+I42PhOcracoQedSFwZB9mx3zMupbRLB2kerrAego6sV0JIlTKOkCOXPGTEqFrcjeGrLNlbL2zrQ==", + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/terser": { + "version": "5.19.3", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.19.3.tgz", + "integrity": "sha512-pQzJ9UJzM0IgmT4FAtYI6+VqFf0lj/to58AV0Xfgg0Up37RyPG7Al+1cepC6/BVuAxR9oNb41/DL4DEoHJvTdg==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/terser-webpack-plugin": { + "version": "5.3.9", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz", + "integrity": "sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.8" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/powerbi-visuals-tools/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/powerbi-visuals-tools/node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/powerbi-visuals-tools/node_modules/webpack": { + "version": "5.88.2", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.88.2.tgz", + "integrity": "sha512-JmcgNZ1iKj+aiR0OvTYtWQqJwq37Pf683dY9bVORwVbUrDhLhdn/PlO2sHsFHPkj7sHNQF3JwaAkp49V+Sq1tQ==", + "dev": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/powerbi-visuals-tools/node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true, - "requires": { + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/powerbi-visuals-utils-dataviewutils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-dataviewutils/-/powerbi-visuals-utils-dataviewutils-2.4.1.tgz", + "integrity": "sha512-xgI4ru1KWcYFTbftLsR7Pzg14cslVPajUZUyRk6nzCEQvUMN/kVtPpVT5+s8UuhDZe7zpqSDAhSGS5yAcn9GcA==", + "dev": true + }, + "node_modules/powerbi-visuals-utils-formattingutils": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-formattingutils/-/powerbi-visuals-utils-formattingutils-4.7.1.tgz", + "integrity": "sha512-17pOtW+UNjhPz+dotk9Cu9FBLPueVU0MV6uXPjlu6Uu7YvqA/7GCUsopAq/erCI8e8vgTQZkHy9jwGbPJM+LaQ==", + "dev": true, + "dependencies": { + "powerbi-visuals-utils-dataviewutils": "2.4.1", + "powerbi-visuals-utils-typeutils": "2.3.1" + } + }, + "node_modules/powerbi-visuals-utils-interactivityutils": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-interactivityutils/-/powerbi-visuals-utils-interactivityutils-5.7.1.tgz", + "integrity": "sha512-8DPuAPFBII+I42PhOcracoQedSFwZB9mx3zMupbRLB2kerrAego6sV0JIlTKOkCOXPGTEqFrcjeGrLNlbL2zrQ==", + "dev": true, + "dependencies": { "d3-selection": "^2.0.0", "powerbi-models": "1.8.0", "powerbi-visuals-utils-svgutils": "^2.3.2", "powerbi-visuals-utils-typeutils": "2.3.1" - }, - "dependencies": { - "d3-selection": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", - "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==", - "dev": true - } } }, - "powerbi-visuals-utils-svgutils": { + "node_modules/powerbi-visuals-utils-interactivityutils/node_modules/d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==", + "dev": true + }, + "node_modules/powerbi-visuals-utils-svgutils": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-svgutils/-/powerbi-visuals-utils-svgutils-2.3.2.tgz", "integrity": "sha512-FKlCWUVfHwyXw2Xs6anK5ARJnZyXZw2d3x4rPEQf+J0eRsKyDoVxNVMONlGnraNYxFDj1k/j7MmRxuTALbUK/A==", "dev": true, - "requires": { + "dependencies": { "d3-selection": "^2.0.0", "d3-timer": "^2.0.0", "powerbi-visuals-utils-typeutils": "^2.3.1" - }, - "dependencies": { - "d3-selection": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", - "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==", - "dev": true - }, - "d3-timer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", - "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", - "dev": true - } } }, - "powerbi-visuals-utils-tooltiputils": { + "node_modules/powerbi-visuals-utils-svgutils/node_modules/d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==", + "dev": true + }, + "node_modules/powerbi-visuals-utils-svgutils/node_modules/d3-timer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz", + "integrity": "sha512-TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==", + "dev": true + }, + "node_modules/powerbi-visuals-utils-tooltiputils": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-tooltiputils/-/powerbi-visuals-utils-tooltiputils-2.5.2.tgz", "integrity": "sha512-zvKGYm+icBpWMEAI5Y+9gIK3q9jMpDVlRWyPZUJaPytAwnREpHxkVsW2cB4K5HOMe9RqFBpALeaBiVgHCRqjxA==", "dev": true, - "requires": { - "d3-selection": "^2.0.0" - }, "dependencies": { - "d3-selection": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", - "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==", - "dev": true - } + "d3-selection": "^2.0.0" } }, - "powerbi-visuals-utils-typeutils": { + "node_modules/powerbi-visuals-utils-tooltiputils/node_modules/d3-selection": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-2.0.0.tgz", + "integrity": "sha512-XoGGqhLUN/W14NmaqcO/bb1nqjDAw5WtSYb2X8wiuQWvSZUsUVYsOSkOybUrNvcBjaywBdYPy03eXHMXjk9nZA==", + "dev": true + }, + "node_modules/powerbi-visuals-utils-typeutils": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/powerbi-visuals-utils-typeutils/-/powerbi-visuals-utils-typeutils-2.3.1.tgz", "integrity": "sha512-mO2MCTR/nqbQjtZDZTP7k80Sr/oNNIR6a2t5s6fmn9yGoRS4ne7ZNJRhNnyBbyz9Frapvqnr1/OeBuRUYnU1jw==", "dev": true, - "requires": { + "dependencies": { "coveralls": "^3.1.0" } }, - "powerbi-visuals-webpack-plugin": { + "node_modules/powerbi-visuals-webpack-plugin": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/powerbi-visuals-webpack-plugin/-/powerbi-visuals-webpack-plugin-2.3.1.tgz", "integrity": "sha512-SWsuHTIj01UMh2D5eWSilEAJ0RBrOzX5wOvoWy5fBIPS/vulvPkIb/tHE8xcAmWglSpV1KA/kcHyN3HuSkXxSg==", "dev": true, - "requires": { + "dependencies": { "ajv": "6.12.3", "chalk": "^4.1.1", "compare-versions": "^3.6.0", @@ -6388,545 +9039,682 @@ "lodash.clonedeep": "4.5.0", "webpack-sources": "1.4.3" }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", + "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "dev": true, "dependencies": { - "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", - "dev": true, - "requires": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^1.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", - "dev": true - } + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/jszip": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", + "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "dev": true, + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" } }, - "process": { + "node_modules/powerbi-visuals-webpack-plugin/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/powerbi-visuals-webpack-plugin/node_modules/universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6.0" + } }, - "process-nextick-args": { + "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "proxy-addr": { + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true, + "peer": true + }, + "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, - "requires": { + "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" } }, - "prr": { + "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, - "psl": { + "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, - "public-encrypt": { + "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, - "requires": { + "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" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } } }, - "pump": { + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "dev": true, - "requires": { + "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, - "punycode": { + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "peer": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "qs": { + "node_modules/qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.6" + } }, - "querystring": { + "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "querystring-es3": { + "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "querystringify": { + "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", "dev": true }, - "randombytes": { + "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.1.0" } }, - "randomfill": { + "node_modules/randomfill": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, - "requires": { + "dependencies": { "randombytes": "^2.0.5", "safe-buffer": "^5.1.0" } }, - "range-parser": { + "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "raw-body": { + "node_modules/raw-body": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, - "requires": { + "dependencies": { "bytes": "3.1.0", "http-errors": "1.7.2", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" } }, - "readable-stream": { + "node_modules/raw-body/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" } }, - "readdirp": { + "node_modules/readdirp": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, - "requires": { + "dependencies": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", "readable-stream": "^2.0.2" }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/readdirp/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "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" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readdirp/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "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" + } + }, + "node_modules/readdirp/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/readdirp/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" } }, - "regenerate": { + "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", "dev": true }, - "regenerate-unicode-properties": { + "node_modules/regenerate-unicode-properties": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "dev": true, - "requires": { + "dependencies": { "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" } }, - "regenerator-runtime": { + "node_modules/regenerator-runtime": { "version": "0.13.9", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, - "regenerator-transform": { + "node_modules/regenerator-transform": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "^7.8.4" } }, - "regex-not": { + "node_modules/regex-not": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, - "requires": { + "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "regexp.prototype.flags": { + "node_modules/regexp.prototype.flags": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "regexpu-core": { + "node_modules/regexpu-core": { "version": "4.7.1", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", "dev": true, - "requires": { + "dependencies": { "regenerate": "^1.4.0", "regenerate-unicode-properties": "^8.2.0", "regjsgen": "^0.5.1", "regjsparser": "^0.6.4", "unicode-match-property-ecmascript": "^1.0.4", "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" } }, - "regjsgen": { + "node_modules/regjsgen": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", "dev": true }, - "regjsparser": { + "node_modules/regjsparser": { "version": "0.6.9", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", "dev": true, - "requires": { + "dependencies": { "jsesc": "~0.5.0" }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" } }, - "remove-trailing-separator": { + "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, - "repeat-element": { + "node_modules/repeat-element": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "repeat-string": { + "node_modules/repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "request": { + "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", "dev": true, - "requires": { + "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", @@ -6948,160 +9736,207 @@ "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } + "engines": { + "node": ">= 6" } }, - "require-directory": { + "node_modules/request/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "require-main-filename": { + "node_modules/require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, - "requires-port": { + "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, - "resolve": { + "node_modules/resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, - "requires": { + "dependencies": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "resolve-cwd": { + "node_modules/resolve-cwd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, - "requires": { + "dependencies": { "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "resolve-from": { + "node_modules/resolve-from": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "resolve-url": { + "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", "dev": true }, - "ret": { + "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.12" + } }, - "retry": { + "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true + "dev": true, + "engines": { + "node": ">= 4" + } }, - "rimraf": { + "node_modules/rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, - "requires": { + "dependencies": { "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" } }, - "ripemd160": { + "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, - "requires": { + "dependencies": { "hash-base": "^3.0.0", "inherits": "^2.0.1" } }, - "rw": { + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg==", + "dev": true, + "peer": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rw": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=", "dev": true }, - "safe-buffer": { + "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "safe-regex": { + "node_modules/safe-regex": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, - "requires": { + "dependencies": { "ret": "~0.1.10" } }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "schema-utils": { + "node_modules/schema-utils": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, - "requires": { + "dependencies": { "@types/json-schema": "^7.0.5", "ajv": "^6.12.4", "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, - "select-hose": { + "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", "dev": true }, - "selfsigned": { + "node_modules/selfsigned": { "version": "1.10.11", "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.11.tgz", "integrity": "sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA==", "dev": true, - "requires": { + "dependencies": { "node-forge": "^0.10.0" } }, - "semver": { + "node_modules/semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "dev": true, + "bin": { + "semver": "bin/semver" + } }, - "send": { + "node_modules/send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "dev": true, - "requires": { + "dependencies": { "debug": "2.6.9", "depd": "~1.1.2", "destroy": "~1.0.4", @@ -7116,47 +9951,47 @@ "range-parser": "~1.2.1", "statuses": "~1.5.0" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } + "ms": "2.0.0" } }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", "dev": true, - "requires": { + "peer": true, + "dependencies": { "randombytes": "^2.1.0" } }, - "serve-index": { + "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, - "requires": { + "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", @@ -7165,174 +10000,207 @@ "mime-types": "~2.1.17", "parseurl": "~1.3.2" }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - } + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" } }, - "serve-static": { + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/serve-static": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "dev": true, - "requires": { + "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" } }, - "set-blocking": { + "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, - "set-immediate-shim": { + "node_modules/set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "set-value": { + "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, - "requires": { + "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", "is-plain-object": "^2.0.3", "split-string": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "setimmediate": { + "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", "dev": true }, - "setprototypeof": { + "node_modules/setprototypeof": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", "dev": true }, - "sha.js": { + "node_modules/sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.1", "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" } }, - "shebang-command": { + "node_modules/shebang-command": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, - "requires": { + "dependencies": { "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "shebang-regex": { + "node_modules/shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "side-channel": { + "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "signal-exit": { + "node_modules/signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", "dev": true }, - "sirv": { + "node_modules/sirv": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.16.tgz", "integrity": "sha512-x56DISeIgSUGVJrQS3mwu+UvtnzHenKDFBQL+UlAswxwk9b2Cpc0KGVvftoIJZgweOOXbMZzyXFYgVElOuSI1Q==", "dev": true, - "requires": { + "dependencies": { "@polka/url": "^1.0.0-next.19", "mime": "^2.3.1", "totalist": "^1.0.0" }, - "dependencies": { - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - } + "engines": { + "node": ">= 10" + } + }, + "node_modules/sirv/node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" } }, - "snapdragon": { + "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, - "requires": { + "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", "define-property": "^0.2.5", @@ -7342,191 +10210,223 @@ "source-map-resolve": "^0.5.0", "use": "^3.1.0" }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "engines": { + "node": ">=0.10.0" } }, - "snapdragon-node": { + "node_modules/snapdragon-node": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, - "requires": { + "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", "snapdragon-util": "^3.0.1" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" } }, - "snapdragon-util": { + "node_modules/snapdragon-util": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, - "requires": { + "dependencies": { "kind-of": "^3.2.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "sockjs": { + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/sockjs": { "version": "0.3.21", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", "dev": true, - "requires": { + "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^3.4.0", "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } } }, - "sockjs-client": { + "node_modules/sockjs-client": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.2.tgz", "integrity": "sha512-ZzRxPBISQE7RpzlH4tKJMQbHM9pabHluk0WBaxAQ+wm/UieeBVBou0p4wVnSQGN9QmpAZygQ0cDIypWuqOFmFQ==", "dev": true, - "requires": { + "dependencies": { "debug": "^3.2.6", "eventsource": "^1.0.7", "faye-websocket": "^0.11.3", "inherits": "^2.0.4", "json3": "^3.3.3", "url-parse": "^1.5.3" - }, + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "ms": "^2.1.1" } }, - "source-list-map": { + "node_modules/sockjs/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, - "source-map": { + "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "source-map-concat": { + "node_modules/source-map-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/source-map-concat/-/source-map-concat-1.0.1.tgz", "integrity": "sha1-B+ADHiyRVwRl2+v6nSpGg5AFk7M=", + "deprecated": "Unsupported package", "dev": true, - "requires": { + "dependencies": { "source-map": "^0.5.3", "urix": "^0.1.0" } }, - "source-map-js": { + "node_modules/source-map-js": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "source-map-resolve": { + "node_modules/source-map-resolve": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, - "requires": { + "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", @@ -7534,49 +10434,54 @@ "urix": "^0.1.0" } }, - "source-map-support": { - "version": "0.5.19", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", - "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, - "requires": { + "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, - "source-map-url": { + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-url": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", "dev": true }, - "spdy": { + "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, - "requires": { + "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" + }, + "engines": { + "node": ">=6.0.0" } }, - "spdy-transport": { + "node_modules/spdy-transport": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, - "requires": { + "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", "hpack.js": "^2.1.6", @@ -7585,27 +10490,30 @@ "wbuf": "^1.7.3" } }, - "split-string": { + "node_modules/split-string": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, - "requires": { + "dependencies": { "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "sprintf-js": { + "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "sshpk": { + "node_modules/sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, - "requires": { + "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", @@ -7615,346 +10523,613 @@ "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.2.tgz", + "integrity": "sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q==", + "dev": true, + "peer": true, + "dependencies": { + "figgy-pudding": "^3.5.1" } }, - "stackframe": { + "node_modules/stackframe": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz", "integrity": "sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==", "dev": true }, - "static-extend": { + "node_modules/static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, - "requires": { + "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "statuses": { + "node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.6" + } }, - "stream-browserify": { + "node_modules/stream-browserify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, - "requires": { + "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" } }, - "stream-http": { + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "peer": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "dev": true, - "requires": { + "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.4", "readable-stream": "^3.6.0", "xtend": "^4.0.2" } }, - "string-width": { + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true, + "peer": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-width": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, - "requires": { + "dependencies": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "string.prototype.trimend": { + "node_modules/string.prototype.trimend": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "string.prototype.trimstart": { + "node_modules/string.prototype.trimstart": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "dev": true, - "requires": { + "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "strip-ansi": { + "node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, - "requires": { + "dependencies": { "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "strip-eof": { + "node_modules/strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "supports-color": { + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" } }, - "tapable": { + "node_modules/tapable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "terser": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.7.2.tgz", - "integrity": "sha512-0Omye+RD4X7X69O0eql3lC4Heh/5iLj3ggxR/B5ketZLOtLiOqukUgjw3q4PDnNQbsrkKr3UMypqStQG3XKRvw==", + "node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", "dev": true, - "requires": { + "peer": true, + "dependencies": { "commander": "^2.20.0", - "source-map": "~0.7.2", - "source-map-support": "~0.5.19" + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" } }, - "terser-webpack-plugin": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.1.4.tgz", - "integrity": "sha512-C2WkFwstHDhVEmsmlCxrXUtVklS+Ir1A7twrYzrDrQQOIMOaVAYykaoo/Aq1K0QRkMoY2hhvDQY1cm4jnIMFwA==", + "node_modules/terser-webpack-plugin": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", + "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", "dev": true, - "requires": { - "jest-worker": "^27.0.2", - "p-limit": "^3.1.0", - "schema-utils": "^3.0.0", - "serialize-javascript": "^6.0.0", + "peer": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^4.0.0", "source-map": "^0.6.1", - "terser": "^5.7.0" + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "peer": true, "dependencies": { - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "peer": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "peer": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "peer": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "peer": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "peer": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "peer": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "peer": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "thunky": { + "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "timers-browserify": { + "node_modules/timers-browserify": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, - "requires": { + "dependencies": { "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" } }, - "to-fast-properties": { + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==", + "dev": true, + "peer": true + }, + "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "to-object-path": { + "node_modules/to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, - "requires": { + "dependencies": { "kind-of": "^3.0.2" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" } }, - "to-regex": { + "node_modules/to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, - "requires": { + "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", "regex-not": "^1.0.2", "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" } }, - "to-regex-range": { + "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "requires": { + "dependencies": { "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" } }, - "toidentifier": { + "node_modules/toidentifier": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.6" + } }, - "totalist": { + "node_modules/totalist": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", - "dev": true + "dev": true, + "engines": { + "node": ">=6" + } }, - "tough-cookie": { + "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, - "requires": { + "dependencies": { "psl": "^1.1.28", "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" } }, - "ts-loader": { + "node_modules/ts-loader": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.2.tgz", "integrity": "sha512-HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==", "dev": true, - "requires": { + "dependencies": { "chalk": "^2.3.0", "enhanced-resolve": "^4.0.0", "loader-utils": "^1.0.2", "micromatch": "^4.0.0", "semver": "^6.0.0" }, + "engines": { + "node": ">=8.6" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/ts-loader/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ts-loader/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" } }, - "tslib": { + "node_modules/tslib": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", "dev": true }, - "tslint": { + "node_modules/tslint": { "version": "5.20.1", "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", "chalk": "^2.3.0", @@ -7969,251 +11144,348 @@ "tslib": "^1.8.0", "tsutils": "^2.29.0" }, - "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "bin": { + "tslint": "bin/tslint" + }, + "engines": { + "node": ">=4.8.0" + }, + "peerDependencies": { + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" } }, - "tslint-microsoft-contrib": { + "node_modules/tslint-microsoft-contrib": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-6.2.0.tgz", "integrity": "sha512-6tfi/2tHqV/3CL77pULBcK+foty11Rr0idRDxKnteTaKm6gWF9qmaCNU17HVssOuwlYNyOmd9Jsmjd+1t3a3qw==", + "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", "dev": true, - "requires": { + "dependencies": { "tsutils": "^2.27.2 <2.29.0" }, + "peerDependencies": { + "tslint": "^5.1.0", + "typescript": "^2.1.0 || ^3.0.0" + } + }, + "node_modules/tslint-microsoft-contrib/node_modules/tsutils": { + "version": "2.28.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", + "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", + "dev": true, "dependencies": { - "tsutils": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz", - "integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - } + "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + } + }, + "node_modules/tslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "tsutils": { + "node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, - "requires": { + "dependencies": { "tslib": "^1.8.1" + }, + "peerDependencies": { + "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" } }, - "tty-browserify": { + "node_modules/tty-browserify": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true }, - "tunnel-agent": { + "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, - "requires": { + "dependencies": { "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" } }, - "tweetnacl": { + "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, - "type-is": { + "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, - "requires": { + "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" } }, - "typescript": { + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true, + "peer": true + }, + "node_modules/typescript": { "version": "3.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", - "dev": true + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } }, - "unbox-primitive": { + "node_modules/unbox-primitive": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", "dev": true, - "requires": { + "dependencies": { "function-bind": "^1.1.1", "has-bigints": "^1.0.1", "has-symbols": "^1.0.2", "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "unicode-canonical-property-names-ecmascript": { + "node_modules/unicode-canonical-property-names-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-match-property-ecmascript": { + "node_modules/unicode-match-property-ecmascript": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "dev": true, - "requires": { + "dependencies": { "unicode-canonical-property-names-ecmascript": "^1.0.4", "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" } }, - "unicode-match-property-value-ecmascript": { + "node_modules/unicode-match-property-value-ecmascript": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "unicode-property-aliases-ecmascript": { + "node_modules/unicode-property-aliases-ecmascript": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } }, - "union-value": { + "node_modules/union-value": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, - "requires": { + "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", "is-extendable": "^0.1.1", "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "peer": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "peer": true, + "dependencies": { + "imurmurhash": "^0.1.4" } }, - "universalify": { + "node_modules/universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true + "dev": true, + "engines": { + "node": ">= 10.0.0" + } }, - "unpipe": { + "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "unset-value": { + "node_modules/unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, - "requires": { + "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } - } - } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true - } + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, - "upath": { + "node_modules/upath": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "urix": { + "node_modules/urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, - "url": { + "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", "dev": true, - "requires": { + "dependencies": { "punycode": "1.3.2", "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } } }, - "url-parse": { + "node_modules/url-parse": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.3.tgz", "integrity": "sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==", "dev": true, - "requires": { + "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" } }, - "use": { + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "util": { + "node_modules/util": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", @@ -8222,139 +11494,262 @@ "which-typed-array": "^1.1.2" } }, - "util-deprecate": { + "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, - "utils-merge": { + "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.4.0" + } }, - "uuid": { + "node_modules/uuid": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz", "integrity": "sha512-vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==", - "dev": true + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } }, - "vary": { + "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true + "dev": true, + "engines": { + "node": ">= 0.8" + } }, - "verror": { + "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, - "requires": { + "engines": [ + "node >=0.6.0" + ], + "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, - "vm-browserify": { + "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, - "watchpack": { + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack/node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/watchpack/node_modules/binary-extensions": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.2.0.tgz", - "integrity": "sha512-up4YAn/XHgZHIxFBVCdlMiWDj6WaLKpwVeGQk2I5thdYxF/KmF0aaz6TfJZ/hfl1h/XlcDr7k1KH7ThDagpFaA==", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" + "optional": true, + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchpack/node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "optional": true, + "peer": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/watchpack/node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/watchpack/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/watchpack/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchpack/node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" } }, - "wbuf": { + "node_modules/wbuf": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, - "requires": { + "dependencies": { "minimalistic-assert": "^1.0.0" } }, - "webpack": { - "version": "5.51.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.51.1.tgz", - "integrity": "sha512-xsn3lwqEKoFvqn4JQggPSRxE4dhsRcysWTqYABAZlmavcoTmwlOb9b1N36Inbt/eIispSkuHa80/FJkDTPos1A==", + "node_modules/webpack": { + "version": "4.46.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz", + "integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==", "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.0", - "@types/estree": "^0.0.50", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.8.0", - "es-module-lexer": "^0.7.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", + "enhanced-resolve": "^4.5.0", + "eslint-scope": "^4.0.3", "json-parse-better-errors": "^1.0.2", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.2.0", - "webpack-sources": "^3.2.0" - }, - "dependencies": { - "enhanced-resolve": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.2.tgz", - "integrity": "sha512-F27oB3WuHDzvR2DOGNTaYy0D5o0cnrv8TeI482VM4kYgQd/FT9lUQwuNsJ0oOHtBUq7eiW5ytqzp7nBFknL+GA==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "tapable": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", - "integrity": "sha512-FBk4IesMV1rBxX2tfiK8RAmogtWn53puLOQlvO8XuwlgxcYbP4mVPS9Ph4aeamSyyVjOl24aYWAuc8U5kCVwMw==", - "dev": true + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.7.4", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true }, - "webpack-sources": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.0.tgz", - "integrity": "sha512-fahN08Et7P9trej8xz/Z7eRu8ltyiygEo/hnRi9KqBUs80KeDcnf96ZJo++ewWd84fEf3xSX9bp4ZS9hbw0OBw==", - "dev": true + "webpack-command": { + "optional": true } } }, - "webpack-bundle-analyzer": { + "node_modules/webpack-bundle-analyzer": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.2.tgz", "integrity": "sha512-PIagMYhlEzFfhMYOzs5gFT55DkUdkyrJi/SxJp8EF3YMWhS+T9vvs2EoTetpk5qb6VsCq02eXTlRDOydRhDFAQ==", "dev": true, - "requires": { + "dependencies": { "acorn": "^8.0.4", "acorn-walk": "^8.0.0", "chalk": "^4.1.0", @@ -8365,125 +11760,163 @@ "sirv": "^1.0.7", "ws": "^7.3.1" }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", + "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, - "webpack-dev-middleware": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz", - "integrity": "sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ==", + "node_modules/webpack-dev-middleware/node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" + "bin": { + "mime": "cli.js" }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, "dependencies": { - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "mime": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", - "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "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" + } + }, + "node_modules/webpack-dev-middleware/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" } }, - "webpack-dev-server": { + "node_modules/webpack-dev-server": { "version": "3.11.2", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz", "integrity": "sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==", "dev": true, - "requires": { + "dependencies": { "ansi-html": "0.0.7", "bonjour": "^3.5.0", "chokidar": "^2.1.8", @@ -8518,214 +11951,491 @@ "ws": "^6.2.1", "yargs": "^13.3.2" }, - "dependencies": { - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "ws": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", - "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true } } }, - "webpack-log": { + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", + "integrity": "sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/webpack-log": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "dev": true, - "requires": { + "dependencies": { "ansi-colors": "^3.0.0", "uuid": "^3.3.2" }, - "dependencies": { - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true - } + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-log/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" } }, - "webpack-sources": { + "node_modules/webpack-sources": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "dev": true, - "requires": { + "dependencies": { "source-list-map": "^2.0.0", "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "dev": true, + "peer": true, + "bin": { + "acorn": "bin/acorn" }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "peer": true, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "peer": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "peer": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "peer": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "peer": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "peer": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ==", + "dev": true, + "peer": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/webpack/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "peer": true, + "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" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "peer": true, + "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" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "peer": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" } }, - "websocket-driver": { + "node_modules/webpack/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/webpack/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "peer": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, - "requires": { + "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" } }, - "websocket-extensions": { + "node_modules/websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "which": { + "node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, - "requires": { + "dependencies": { "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" } }, - "which-boxed-primitive": { + "node_modules/which-boxed-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", "dev": true, - "requires": { + "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", "is-number-object": "^1.0.4", "is-string": "^1.0.5", "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "which-module": { + "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "which-typed-array": { + "node_modules/which-typed-array": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.6.tgz", "integrity": "sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q==", "dev": true, - "requires": { + "dependencies": { "available-typed-arrays": "^1.0.4", "call-bind": "^1.0.2", "es-abstract": "^1.18.5", "foreach": "^2.0.5", "has-tostringtag": "^1.0.0", "is-typed-array": "^1.1.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "wrap-ansi": { + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "peer": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/wrap-ansi": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^3.2.0", "string-width": "^3.0.0", "strip-ansi": "^5.0.0" }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" } }, - "wrappy": { + "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "ws": { + "node_modules/ws": { "version": "7.5.3", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "xtend": { + "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true + "dev": true, + "engines": { + "node": ">=0.4" + } }, - "y18n": { + "node_modules/y18n": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", "dev": true }, - "yallist": { + "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "yargs": { + "node_modules/yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, - "requires": { + "dependencies": { "cliui": "^5.0.0", "find-up": "^3.0.0", "get-caller-file": "^2.0.1", @@ -8736,85 +12446,98 @@ "which-module": "^2.0.0", "y18n": "^4.0.0", "yargs-parser": "^13.1.2" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } } }, - "yargs-parser": { + "node_modules/yargs-parser": { "version": "13.1.2", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, - "requires": { + "dependencies": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true + "node_modules/yargs/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } } } } diff --git a/pbiviz.json b/pbiviz.json index 7fdef6a..ab186e1 100644 --- a/pbiviz.json +++ b/pbiviz.json @@ -5,14 +5,14 @@ "guid": "PBI_CV_9894B302_1DFF_4A96_ABFE_BF8588197166", "visualClassName": "BarChart", "version": "3.2.0", - "description": "Sample bar chart", - "supportUrl": "pbicvsupport@microsoft.com", + "description": "Bar Chart Custom Visual", + "supportUrl": "like.programming@gmail.co", "gitHubUrl": "" }, "apiVersion": "3.8.0", "author": { - "name": "Author name", - "email": "author@mail.com" + "name": "Safia Khan", + "email": "like.programming@gmail.com" }, "assets": { "icon": "assets/icon.png" diff --git a/src/barChart.ts b/src/barChart.ts index 0a71079..2d01342 100644 --- a/src/barChart.ts +++ b/src/barChart.ts @@ -15,7 +15,6 @@ import "regenerator-runtime/runtime"; import powerbi = powerbiVisualsApi; type Selection = d3.Selection; -import ScaleLinear = d3.ScaleLinear; const getEvent = () => require("d3-selection").event; // powerbi.visuals @@ -34,14 +33,12 @@ import VisualObjectInstanceEnumeration = powerbi.VisualObjectInstanceEnumeration import VisualTooltipDataItem = powerbi.extensibility.VisualTooltipDataItem; import VisualUpdateOptions = powerbi.extensibility.visual.VisualUpdateOptions; import VisualConstructorOptions = powerbi.extensibility.visual.VisualConstructorOptions; -import VisualEnumerationInstanceKinds = powerbi.VisualEnumerationInstanceKinds; import {createTooltipServiceWrapper, ITooltipServiceWrapper} from "powerbi-visuals-utils-tooltiputils"; import { textMeasurementService } from "powerbi-visuals-utils-formattingutils"; import { getValue, getCategoricalObjectValue } from "./objectEnumerationUtility"; import { getLocalizedString } from "./localization/localizationHelper" -import { dataViewWildcard } from "powerbi-visuals-utils-dataviewutils"; /** * Interface for BarCharts viewmodel. @@ -80,8 +77,7 @@ interface BarChartDataPoint { * * @interface * @property {{show:boolean}} enableAxis - Object property that allows axis to be enabled. - * @property {{generalView.opacity:number}} Bars Opacity - Controls opacity of plotted bars, values range between 10 (almost transparent) to 100 (fully opaque, default) - * @property {{generalView.showHelpLink:boolean}} Show Help Button - When TRUE, the plot displays a button which launch a link to documentation. + * @property {{generalView.width:number}} Bars - Width - Controls width of plotted bars */ interface BarChartSettings { enableAxis: { @@ -90,34 +86,19 @@ interface BarChartSettings { }; generalView: { - opacity: number; - showHelpLink: boolean; - helpLinkColor: string; - }; - - averageLine: { - show: boolean; displayName: string; - fill: string; - showDataLabel: boolean; + width: number; }; } let defaultSettings: BarChartSettings = { enableAxis: { - show: false, + show: true, fill: "#000000", }, generalView: { - opacity: 100, - showHelpLink: false, - helpLinkColor: "#80B0E0", - }, - averageLine: { - show: false, - displayName: "Average Line", - fill: "#888888", - showDataLabel: false + displayName: 'Width', + width: 30, } }; @@ -166,15 +147,8 @@ function visualTransform(options: VisualUpdateOptions, host: IVisualHost): BarCh fill: getAxisTextFillColor(objects, colorPalette, defaultSettings.enableAxis.fill), }, generalView: { - opacity: getValue(objects, 'generalView', 'opacity', defaultSettings.generalView.opacity), - showHelpLink: getValue(objects, 'generalView', 'showHelpLink', defaultSettings.generalView.showHelpLink), - helpLinkColor: strokeColor, - }, - averageLine: { - show: getValue(objects, 'averageLine', 'show', defaultSettings.averageLine.show), - displayName: getValue(objects, 'averageLine', 'displayName', defaultSettings.averageLine.displayName), - fill: getValue(objects, 'averageLine', 'fill', defaultSettings.averageLine.fill), - showDataLabel: getValue(objects, 'averageLine', 'showDataLabel', defaultSettings.averageLine.showDataLabel), + width: getValue(objects, 'generalView', 'width', defaultSettings.generalView.width), + displayName: getValue(objects, 'generalView', 'displayName', defaultSettings.generalView.displayName), }, }; @@ -273,18 +247,13 @@ export class BarChart implements IVisual { private barChartSettings: BarChartSettings; private tooltipServiceWrapper: ITooltipServiceWrapper; private locale: string; - private helpLinkElement: Selection; private element: HTMLElement; - private isLandingPageOn: boolean; - private LandingPageRemoved: boolean; - private LandingPage: Selection; - private averageLine: Selection; private barSelection: d3.Selection; static Config = { xScalePadding: 0.1, - solidOpacity: 1, + width: 30, transparentOpacity: 0.4, margins: { top: 0, @@ -327,13 +296,6 @@ export class BarChart implements IVisual { .append('g') .classed('xAxis', true); - this.initAverageLine(); - - const helpLinkElement: Element = this.createHelpLinkElement(); - options.element.appendChild(helpLinkElement); - - this.helpLinkElement = d3Select(helpLinkElement); - this.handleContextMenu(); } @@ -349,8 +311,7 @@ export class BarChart implements IVisual { let viewModel: BarChartViewModel = visualTransform(options, this.host); let settings = this.barChartSettings = viewModel.settings; this.barDataPoints = viewModel.dataPoints; - // Turn on landing page in capabilities and remove comment to turn on landing page! - // this.HandleLandingPage(options); + let width = options.viewport.width; let height = options.viewport.height; @@ -363,11 +324,6 @@ export class BarChart implements IVisual { height -= margins.bottom; } - this.helpLinkElement - .classed("hidden", !settings.generalView.showHelpLink) - .style("border-color", settings.generalView.helpLinkColor) - .style("color", settings.generalView.helpLinkColor); - this.xAxis .style("font-size", Math.min(height, width) * BarChart.Config.xAxisFontMultiplier) .style("fill", settings.enableAxis.fill); @@ -393,7 +349,6 @@ export class BarChart implements IVisual { const textNodes = this.xAxis.selectAll("text") BarChart.wordBreak(textNodes, xScale.bandwidth(), height); - this.handleAverageLineUpdate(height, width, yScale); this.barSelection = this.barContainer .selectAll('.bar') @@ -406,17 +361,13 @@ export class BarChart implements IVisual { barSelectionMerged.classed('bar', true); - const opacity: number = viewModel.settings.generalView.opacity / 100; + const barWidth: number = viewModel.settings.generalView.width; barSelectionMerged - .attr("width", xScale.bandwidth()) + .attr("width", barWidth) .attr("height", d => height - yScale(d.value)) .attr("y", d => yScale(d.value)) .attr("x", d => xScale(d.category)) - .style("fill-opacity", opacity) - .style("stroke-opacity", opacity) .style("fill", (dataPoint: BarChartDataPoint) => dataPoint.color) - .style("stroke", (dataPoint: BarChartDataPoint) => dataPoint.strokeColor) - .style("stroke-width", (dataPoint: BarChartDataPoint) => `${dataPoint.strokeWidth}px`); this.tooltipServiceWrapper.addTooltip(barSelectionMerged, (datapoint: BarChartDataPoint) => this.getTooltipData(datapoint), @@ -494,36 +445,9 @@ export class BarChart implements IVisual { } if (!selectionIds.length) { - const opacity: number = this.barChartSettings.generalView.opacity / 100; selection - .style("fill-opacity", opacity) - .style("stroke-opacity", opacity); return; } - - const self: this = this; - - selection.each(function (barDataPoint: BarChartDataPoint) { - const isSelected: boolean = self.isSelectionIdInArray(selectionIds, barDataPoint.selectionId); - - const opacity: number = isSelected - ? BarChart.Config.solidOpacity - : BarChart.Config.transparentOpacity; - - d3Select(this) - .style("fill-opacity", opacity) - .style("stroke-opacity", opacity); - }); - } - - private isSelectionIdInArray(selectionIds: ISelectionId[], selectionId: ISelectionId): boolean { - if (!selectionIds || !selectionId) { - return false; - } - - return selectionIds.some((currentSelectionId: ISelectionId) => { - return currentSelectionId.includes(selectionId); - }); } /** @@ -553,37 +477,16 @@ export class BarChart implements IVisual { selector: null }); break; - case 'colorSelector': - for (let barDataPoint of this.barDataPoints) { - objectEnumeration.push({ - objectName: objectName, - displayName: barDataPoint.category, - properties: { - fill: { - solid: { - color: barDataPoint.color - } - } - }, - propertyInstanceKind: { - fill: VisualEnumerationInstanceKinds.ConstantOrRule - }, - altConstantValueSelector: barDataPoint.selectionId.getSelector(), - selector: dataViewWildcard.createDataViewWildcardSelector(dataViewWildcard.DataViewWildcardMatchingOption.InstancesAndTotals) - }); - } - break; case 'generalView': objectEnumeration.push({ objectName: objectName, properties: { - opacity: this.barChartSettings.generalView.opacity, - showHelpLink: this.barChartSettings.generalView.showHelpLink + width: this.barChartSettings.generalView.width, }, validValues: { - opacity: { + width: { numberRange: { - min: 10, + min: 30, max: 100 } } @@ -591,18 +494,6 @@ export class BarChart implements IVisual { selector: null }); break; - case 'averageLine': - objectEnumeration.push({ - objectName: objectName, - properties: { - show: this.barChartSettings.averageLine.show, - displayName: this.barChartSettings.averageLine.displayName, - fill: this.barChartSettings.averageLine.fill, - showDataLabel: this.barChartSettings.averageLine.showDataLabel - }, - selector: null - }); - break; }; return objectEnumeration; @@ -628,117 +519,4 @@ export class BarChart implements IVisual { }]; } - private createHelpLinkElement(): Element { - let linkElement = document.createElement("a"); - linkElement.textContent = "?"; - linkElement.setAttribute("title", "Open documentation"); - linkElement.setAttribute("class", "helpLink"); - linkElement.addEventListener("click", () => { - this.host.launchUrl("https://microsoft.github.io/PowerBI-visuals/tutorials/building-bar-chart/adding-url-launcher-element-to-the-bar-chart/"); - }); - return linkElement; - }; - - private handleLandingPage(options: VisualUpdateOptions) { - if (!options.dataViews || !options.dataViews.length) { - if (!this.isLandingPageOn) { - this.isLandingPageOn = true; - const SampleLandingPage: Element = this.createSampleLandingPage(); - this.element.appendChild(SampleLandingPage); - - this.LandingPage = d3Select(SampleLandingPage); - } - - } else { - if (this.isLandingPageOn && !this.LandingPageRemoved) { - this.LandingPageRemoved = true; - this.LandingPage.remove(); - } - } - } - - private createSampleLandingPage(): Element { - let div = document.createElement("div"); - - let header = document.createElement("h1"); - header.textContent = "Sample Bar Chart Landing Page"; - header.setAttribute("class", "LandingPage"); - let p1 = document.createElement("a"); - p1.setAttribute("class", "LandingPageHelpLink"); - p1.textContent = "Learn more about Landing page"; - - p1.addEventListener("click", () => { - this.host.launchUrl("https://microsoft.github.io/PowerBI-visuals/docs/overview/"); - }); - - div.appendChild(header); - div.appendChild(p1); - - return div; - } - - private getColorValue(color: Fill | string): string { - // Override color settings if in high contrast mode - if (this.host.colorPalette.isHighContrast) { - return this.host.colorPalette.foreground.value; - } - - // If plain string, just return it - if (typeof (color) === 'string') { - return color; - } - // Otherwise, extract string representation from Fill type object - return color.solid.color; - } - - private initAverageLine() { - this.averageLine = this.svg - .append('g') - .classed('averageLine', true); - - this.averageLine.append('line') - .attr('id', 'averageLine'); - - this.averageLine.append('text') - .attr('id', 'averageLineLabel'); - } - - private handleAverageLineUpdate(height: number, width: number, yScale: ScaleLinear) { - let average = this.calculateAverage(); - let fontSize = Math.min(height, width) * BarChart.Config.xAxisFontMultiplier; - let chosenColor = this.getColorValue(this.barChartSettings.averageLine.fill); - // If there's no room to place lable above line, place it below - let labelYOffset = fontSize * ((yScale(average) > fontSize * 1.5) ? -0.5 : 1.5); - - this.averageLine - .style("font-size", fontSize) - .style("display", (this.barChartSettings.averageLine.show) ? "initial" : "none") - .attr("transform", "translate(0, " + Math.round(yScale(average)) + ")"); - - this.averageLine.select("#averageLine") - .style("stroke", chosenColor) - .style("stroke-width", "3px") - .style("stroke-dasharray", "6,6") - .attr("x1", 0) - .attr("x1", "" + width); - - this.averageLine.select("#averageLineLabel") - .text("Average: " + average.toFixed(2)) - .attr("transform", "translate(0, " + labelYOffset + ")") - .style("fill", this.barChartSettings.averageLine.showDataLabel ? chosenColor : "none"); - } - - private calculateAverage(): number { - if (this.barDataPoints.length === 0) { - return 0; - } - - let total = 0; - - this.barDataPoints.forEach((value: BarChartDataPoint) => { - total += value.value; - }); - - return total / this.barDataPoints.length; - } } diff --git a/webpack.statistics.dev.html b/webpack.statistics.dev.html new file mode 100644 index 0000000..5bdb795 --- /dev/null +++ b/webpack.statistics.dev.html @@ -0,0 +1,39 @@ + + + + + + Webpack Bundle Analyzer [4 Sep 2023 at 03:56] + + + + + + + + +

    + + + \ No newline at end of file diff --git a/webpack.statistics.prod.html b/webpack.statistics.prod.html new file mode 100644 index 0000000..9078125 --- /dev/null +++ b/webpack.statistics.prod.html @@ -0,0 +1,39 @@ + + + + + + Webpack Bundle Analyzer [4 Sep 2023 at 04:19] + + + + + + + + +
    + + + \ No newline at end of file