From 159b0757a8f39ff9b9d0a6ce2c581b3522131b0d Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Mon, 28 Dec 2020 20:04:44 +0100 Subject: [PATCH] Version 2.10 (#30) --- .../imgs/plugin_projects_repositories.png | Bin 0 -> 123331 bytes .github/workflows/workflow.yml | 116 ++------- CONTRIBUTING.md | 111 +++++---- README.md | 112 +++++++-- action.yml | 33 ++- action/dist/index.js | 70 +----- action/index.mjs | 14 +- package-lock.json | 2 +- package.json | 2 +- settings.example.json | 2 +- src/html/app.js | 6 +- src/html/index.html | 17 +- src/metrics.mjs | 53 +++-- src/plugins/gists/index.mjs | 30 +-- src/plugins/isocalendar/index.mjs | 21 +- src/plugins/music/index.mjs | 2 +- src/plugins/pagespeed/index.mjs | 20 +- src/plugins/posts/index.mjs | 2 +- src/plugins/projects/index.mjs | 49 ++-- src/plugins/topics/index.mjs | 25 +- src/queries/calendar.graphql | 15 ++ .../query.graphql => queries/common.graphql} | 40 +--- src/queries/gists.graphql | 20 ++ src/queries/projects.graphql | 17 ++ src/queries/projects.repository.graphql | 16 ++ src/queries/repositories.graphql | 46 ++++ src/queries/repository.graphql | 43 ++++ src/setup.mjs | 46 +++- src/templates/classic/image.svg | 45 +++- src/templates/classic/style.css | 12 + src/templates/classic/template.mjs | 2 +- src/templates/common.mjs | 5 +- src/templates/index.mjs | 2 + src/templates/repository/image.svg | 220 ++++++++++++++++++ src/templates/repository/template.mjs | 60 +++++ src/templates/terminal/query.graphql | 103 -------- src/templates/terminal/template.mjs | 2 +- utils/build.mjs | 48 ++-- utils/workflow.yml | 52 +---- 39 files changed, 922 insertions(+), 559 deletions(-) create mode 100644 .github/readme/imgs/plugin_projects_repositories.png create mode 100644 src/queries/calendar.graphql rename src/{templates/classic/query.graphql => queries/common.graphql} (55%) create mode 100644 src/queries/gists.graphql create mode 100644 src/queries/projects.graphql create mode 100644 src/queries/projects.repository.graphql create mode 100644 src/queries/repositories.graphql create mode 100644 src/queries/repository.graphql create mode 100644 src/templates/repository/image.svg create mode 100644 src/templates/repository/template.mjs delete mode 100644 src/templates/terminal/query.graphql diff --git a/.github/readme/imgs/plugin_projects_repositories.png b/.github/readme/imgs/plugin_projects_repositories.png new file mode 100644 index 0000000000000000000000000000000000000000..b957a40ed1e7bed6cb300d49c524dafb821ed83d GIT binary patch literal 123331 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எ&0IdaAu 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%0Dytu5{qW*rN#?1Wd68EL6z4kmiYmN1JUQ&h0 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%0A$M@N&U_Nd%42y9VB5g@5^Re^MC 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 literal 0 HcmV?d00001 diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index ce1947db..51a56121 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -45,7 +45,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - template: ["classic","terminal"] + template: ["classic","repository","terminal"] steps: - name: ${{ matrix.template }} > Base @@ -53,7 +53,7 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: header, activity, community, repositories, metadata plugins_errors_fatal: yes @@ -63,32 +63,21 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes plugin_pagespeed: yes plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }} - - - name: ${{ matrix.template }} > Plugin > PageSpeed (detailed) - uses: lowlighter/metrics@master - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_pagespeed: yes plugin_pagespeed_detailed: yes - plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }} + plugin_pagespeed_screenshot: yes - name: ${{ matrix.template }} > Plugin > Music (playlist - apple) uses: lowlighter/metrics@master with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes @@ -100,7 +89,7 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes @@ -112,7 +101,7 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes @@ -125,7 +114,7 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes @@ -137,18 +126,7 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_isocalendar: yes - - - name: ${{ matrix.template }} > Plugin > Isocalendar (full year) - uses: lowlighter/metrics@master - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes @@ -160,25 +138,12 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes plugin_habits: yes plugin_habits_from: 5 - - - name: ${{ matrix.template }} > Plugin > Habits (charts) - uses: lowlighter/metrics@master - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_habits: yes - plugin_habits_from: 5 - plugin_habits_facts: no plugin_habits_charts: yes - name: ${{ matrix.template }} > Plugin > Languages @@ -186,7 +151,7 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes @@ -197,32 +162,22 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes plugin_followup: yes - - name: ${{ matrix.template }} > Plugin > Lines + - name: ${{ matrix.template }} > Plugin > Lines and Traffic uses: lowlighter/metrics@master with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes plugin_lines: yes - - - name: ${{ matrix.template }} > Plugin > Traffic - uses: lowlighter/metrics@master - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes plugin_traffic: yes - name: ${{ matrix.template }} > Plugin > Gists @@ -230,70 +185,49 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes plugin_gists: yes - - name: ${{ matrix.template }} > Plugin > Topics (stars) - uses: lowlighter/metrics@master - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_topics: yes - plugin_topics_sort: stars - - - name: ${{ matrix.template }} > Plugin > Topics (activity) - uses: lowlighter/metrics@master - with: - token: ${{ secrets.METRICS_TOKEN }} - dryrun: yes - repositories: 1 - template: ${{ matrix.template }} - base: "" - plugins_errors_fatal: yes - plugin_topics: yes - plugin_topics_sort: activity - - name: ${{ matrix.template }} > Plugin > Topics (starred) uses: lowlighter/metrics@master with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes plugin_topics: yes - plugin_topics_sort: starred + plugin_topics_mode: starred + plugin_topics_sort: random - - name: ${{ matrix.template }} > Plugin > Topics (random) + - name: ${{ matrix.template }} > Plugin > Topics (mastered) uses: lowlighter/metrics@master with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes plugin_topics: yes - plugin_topics_sort: random + plugin_topics_mode: mastered + plugin_topics_sort: stars - name: ${{ matrix.template }} > Plugin > Projects uses: lowlighter/metrics@master with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes plugin_projects: yes + plugin_projects_repositories: lowlighter/metrics/projects/1 plugin_projects_limit: 2 - name: ${{ matrix.template }} > Plugin > Tweets @@ -301,7 +235,7 @@ jobs: with: token: ${{ secrets.METRICS_TOKEN }} dryrun: yes - repositories: 1 + repositories: 0 template: ${{ matrix.template }} base: "" plugins_errors_fatal: yes diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 12d90fc2..d0121d54 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,69 +6,98 @@ Nice ! Read the few sections below to understand how this project is structured. ### ๐Ÿ‘จโ€๐Ÿ’ป General informations -#### Adding new metrics and plugins through GraphQL API, REST API or Third-Party service +#### Adding new metrics through GraphQL API, REST API or Third-Party service -When updating a single template, changes should be made through [GitHub GraphQL API](https://docs.github.com/en/graphql) by editing the GraphQL query from `templates/*/query.graphql`. Computed or formatting can be made in `templates/*/template.mjs`. -Raw queried data should be exposed directly into `data.user`, whereas computed data should be stored in `data.computed`. +When possible, try to use the [GitHub GraphQL API](https://docs.github.com/en/graphql) by editing queries in `source/queries` or the [GitHub Rest API](https://docs.github.com/en/rest). Use `puppeteer` in last resort. -When making a new plugin, a new folder with its name must be created in `src/plugins`. -Plugins entry point `src/plugins/*/index.mjs` will have access to `{login, q, imports, data, computed, rest, graphql}`. -It should be self-sufficient and independant from others plugins and used template. -Data generated should be exposed in `data.computed.plugins[plugin]` where `plugin` is the plugin's name. +Data computing and formatting should be made in `templates/*/template.mjs` if it's template specific, or in `templates/common.mjs` if it can be made available for all templates. + +Raw queried data should be be exposed directly into `data.user`, whereas computed data should be stored in `data.computed`. #### Updating SVG templates -The SVG templates are located in `templates/*/image.svg` and include CSS from `templates/*/style.css`. +SVG templates are located in `templates/*/image.svg` and include CSS from `templates/*/style.css`. -It is rendered with [EJS](https://github.com/mde/ejs) so it is actually possible to include variables (e.g. `<%= user.name %>`) and execute simple code, like control statements. +These are rendered through [EJS](https://github.com/mde/ejs), so it is actually possible to include variables (e.g. `<%= user.name %>`) and execute simple code, like control statements. -Plugins errors should be handled gracefully by displaying the error message. +Exposed variables contains `user`, `computed` and `plugins` data, along with custom `style` and `fonts`. -#### Metrics server and GitHub action +#### Creating a new plugin -Unless when integrating new features directly tied to these, it is not needed to edit them when creating a new template or plugin. -Keep in mind that SVG image is actually generated from `src/metrics.mjs`, independently from the metrics server and GitHub action. +Start by creating a new folder in `source/plugins`, along with its entry point `index.mjs`. -Metrics server code is located in `src/app.mjs` and instantiates an `express` server app, `octokit`s instances, middlewares (like rate-limiter) and routes. +A plugin function has access to a lot of data, such as user's `login`, `rest` and `graphql` GitHub API handlers, `imports` of various utilitaries functions and modules, and various data. See others plugins for examples. -GitHub action code is located in `action/index.mjs` and instantiates `octokit`s instances and retrieves action parameters. -It then use directly `src/metrics.mjs` to generate the SVG image and commit them to user's repository. +Plugins should be self-sufficient and independant from others plugins. + +Plugins errors should be handled gracefully by displaying an error message when it fails. + +For user's convenience, a placeholder image can be generated to preview metrics without executing queries. +This use a [Proxy](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) which "fills" with dummy data, though it has its limit (especially with iterable structures) so you may need to patch the placeholder function. It is located in `source/metrics.mjs` + +When adding new options, be sure to patch both `action.yml` and `action/index.mjs` to support them. + +#### Metrics web instance + +Web instance code is located in `source/app.mjs` and instantiates an `express` server app. + +#### GitHub action + +GitHub action code is located in `action/index.mjs` and retrieves action parameters, which are converted into `q` parameters. +Once SVG image is generated through `source/metrics.mjs`, it is committed to user's repository. #### Testing new features -To test new features, setup a metrics server with a test token and `debug` mode enabled. -It allows fast prototyping and to rapidly test SVG renders in a browser. +To test new features, setup a metrics web instance with a personal token and `debug` mode enabled. +You can then test SVG renders in your browser and ensure that everything works as expected. + +### ๐Ÿ—› Fonts + +Follow the following process to integrate custom fonts. +It should be avoided when possible as it increases drastically the size of generated metrics. + +1. Find a font on [fonts.google.com](https://fonts.google.com/) + - Select regular, bold, italic and bold+italic fonts + - Open `embed` tab and extract the `href` +2. Open extracted `href` and append `&text=` params with used characters from SVG + - e.g. `&text=%26%27"%7C%60%5E%40ยฐ%3F!%23%24%25()*%2B%2C-.%2F0123456789%3A%3B<%3D>ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5D_abcdefghijklmnopqrstuvwxyz%7B%7D~โ”€โ””โ”œโ–‡โ–กโœ•` +3. Download each font file from url links from the generated stylesheet +4. Convert them into base64 with `woff` extension on [transfonter.org]https://transfonter.org/) and download archive +5. Extract archive and copy the content of the generated stylesheet to `templates/*/fonts.css` +6. Update your template + - Include `` to your `templates/*/image.svg` + - Edit your `templates/*/style.css` to use yout new font ### ๐Ÿ—‚๏ธ Project structure #### Metrics generator -* `src/setup.mjs` contains the configuration setup -* `src/metrics.mjs` contains the metrics renderer -* `src/templates/*` contains templates files -* `src/templates/*/image.svg` contains the template used by the generated SVG image -* `src/templates/*/query.graphql` is the GraphQL query sent to GitHub GraphQL API -* `src/templates/*/style.css` contains the style used by the generated SVG image -* `src/templates/*/template.mjs` contains the code which prepares data for rendering -* `src/plugins/*` contains the source code of metrics plugins +* `source/setup.mjs` contains configuration setup +* `source/metrics.mjs` contains the metrics renderer +* `source/templates/*` contains templates files +* `source/templates/*/image.svg` contains the image template used to render metrics +* `source/templates/*/style.css` contains the style used to render metrics +* `source/templates/*/fonts.css` contains additional fonts used to render metrics +* `source/templates/*/template.mjs` contains the code used to prepare metrics data before rendering +* `source/plugins/*` contains source code of plugins +* `source/queries/*` contains GraphQL queries -#### Metrics server instance +#### Web instance -* `index.mjs` contains the metrics server entry point -* `src/app.mjs` contains the metrics server code which serves, renders, restricts/rate limit, etc. -* `src/html/*` contains the metrics server static files +* `index.mjs` contains metrics web instance entry point +* `source/app.mjs` contains metrics web instance source code +* `source/html/*` contains metrics web instance static files #### GitHub action -* `action.yml` contains the GitHub action descriptor -* `action/index.mjs` contains the GitHub action code +* `action.yml` contains GitHub action descriptor +* `action/index.mjs` contains GitHub action source code * `action/dist/index.js` contains compiled the GitHub action code (auto-generated) #### Others * `tests/metrics.mjs` contains tests -* `utils/build.mjs` allows to rebuild plugins and template indexes and GitHub action - +* `utils/build.mjs` contains a tool used to rebuild plugins and template indexes and GitHub action ### ๐Ÿ“ฆ Used packages @@ -100,17 +129,3 @@ It allows fast prototyping and to rapidly test SVG renders in a browser. * To print colors in console * [babel/minify](https://github.com/babel/minify) * To minify code - -### ๐Ÿ—› Fonts - -1. Find a font on [fonts.google.com](https://fonts.google.com/) - - Select regular, bold, italic and bold+italic fonts - - Open `embed` tab and extract the `href` -2. Open extracted `href` and append `&text=` params with used characters from SVG - - e.g. `&text=%26%27"%7C%60%5E%40ยฐ%3F!%23%24%25()*%2B%2C-.%2F0123456789%3A%3B<%3D>ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5D_abcdefghijklmnopqrstuvwxyz%7B%7D~โ”€โ””โ”œโ–‡โ–กโœ•` -3. Download each font file from url links from the generated stylesheet -4. Convert them into base64 with `woff` extension on [transfonter.org]https://transfonter.org/) and download archive -5. Extract archive and copy the content of the generated stylesheet to `templates/*/fonts.css` -6. Update your template - - Include `` to your `templates/*/image.svg` - - Edit your `templates/*/style.css` to use yout new font diff --git a/README.md b/README.md index f5665a29..347750d0 100644 --- a/README.md +++ b/README.md @@ -18,21 +18,26 @@ But there's more with [plugins](https://github.com/lowlighter/metrics/tree/maste -
Alternate version +
Detailed audit version - +
+
With screenshot version + + + +
-
Alternate version +
Full year version - +
@@ -68,17 +73,22 @@ But there's more with [plugins](https://github.com/lowlighter/metrics/tree/maste - ๐Ÿ“Œ Starred topics plugin - ๐Ÿ—‚๏ธ Active projects plugin + ๐Ÿ“Œ Starred topics plugin + ๐Ÿ—‚๏ธ Active projects plugin - + +
Mastered and known technologies version + + + +
- + @@ -489,23 +499,23 @@ Used template defaults to the `classic` one. Classic โœ”๏ธ + โœ”๏ธN + โœ”๏ธ + โœ”๏ธ + โœ”๏ธ + โœ”๏ธ + โœ”๏ธN + โœ”๏ธN โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ โœ”๏ธ - โœ”๏ธ - โœ”๏ธ - โœ”๏ธ - โœ”๏ธ - โœ”๏ธ - โœ”๏ธ - โœ”๏ธ - โœ”๏ธ + โœ”๏ธN Terminal - โœ”๏ธP + โœ”๏ธP โœ”๏ธ โŒ โŒ @@ -520,12 +530,30 @@ Used template defaults to the `classic` one. โŒ โœ”๏ธ + + RepositoryMR + โœ”๏ธ + โŒ + โŒ + โŒ + โŒ + โœ”๏ธ + โŒ + โœ”๏ธ + โœ”๏ธ + โœ”๏ธ + โŒ + โŒ + โŒ + โŒ + **Legend** * **P** : Partial support *(Hover cell for more informations)* -* **M** : Plugin is not released yet but is available on `@master` -* **N** : Plugin is already released, but new features are available on `@master` +* **M** : Feature is not released yet but is available on `@master` +* **N** : Feature is already released, but new ones are available on `@master` +* **R** : Repository template (all plugins content will be restricted to related repository) ## ๐Ÿงฉ Plugins @@ -600,6 +628,20 @@ Add the following to your workflow instead : plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }} ``` + ๐Ÿšง The feature below is only available on @master + +You can also display the screenshot taken by PageSpeed API : + +![Pagespeed plugin (screenshot)](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.pagespeed.screenshot.svg) + +Add the following to your workflow : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_pagespeed_screenshot: yes +``` +
### ๐Ÿ“… Isometric calendar @@ -872,6 +914,21 @@ Add the following to your workflow : plugin_topics_limit: 15 ``` + ๐Ÿšง The feature below is only available on @master + +It is possible to display starred topics as `Mastered and known technologies` instead : + +![Topics plugin (mastered)](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.topics.mastered.svg) + +Add the following to your workflow instead : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_topics: yes + plugin_topics_mode: mastered +``` +
### ๐Ÿ—‚๏ธ Projects @@ -914,6 +971,23 @@ Fill the informations and set visibility to *public* : + ๐Ÿšง The feature below is only available on @master + +It is possible to display projects related to repositories along with personal projects. + +To do so, open your repository project and retrieve the last url endpoint, in the format `:user/:repository/projects/:project_id` (for example, `lowlighter/metrics/projects/1`) and add it in the `plugin_projects_repositories` option. Enable `Track project progress` in the project settings to display a progress bar in generated metrics. + +![Add a repository project](.github/readme/imgs/plugin_projects_repositories.png) + +Add the following to your workflow : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_projects: yes + plugin_projects_repositories: :user/:repository1/projects/:project_id, :user/:repository2/projects/:project_id, ... +``` + ### ๐Ÿ‘จโ€๐Ÿ’ป Lines diff --git a/action.yml b/action.yml index d6d2d489..df485ecc 100644 --- a/action.yml +++ b/action.yml @@ -59,6 +59,13 @@ inputs: description: Template to use default: classic + # Raw query parameters (JSON string) + # Some templates may require additional parameters which you can specify here + # Do not use this option to pass plugins parameters as they'll be overwritten by the other options + query: + description: Additional query parameters + default: "{}" + # Template base content # Pass a string of comma-separated values # To disable everything (like if you want to use a plugin as standalone), pass an empty string @@ -86,6 +93,11 @@ inputs: description: Display additional PageSpeed metrics default: no + # Display the final screenshot of audited website taken by PageSpeed audit + plugin_pagespeed_screenshot: + description: Display a screenshot of your website + default: no + # PageSpeed API token (optional, avoid hitting requests limit) # See https://developers.google.com/speed/docs/insights/v5/get-started for more informations plugin_pagespeed_token: @@ -243,6 +255,15 @@ inputs: description: Display starred topics default: no + # Topics plugin mode + # Change the way topics are displayed + # Supported values are : + # - "starred" to display starred topics as interests labels + # - "mastered" to display starred topics as mastered/known technologies icons + plugin_topics_mode: + description: Display starred topics + default: "starred" + # Sorting method of displayed topics # Supported values are : # - "stars" to sort them from most starred to least starred @@ -253,11 +274,11 @@ inputs: description: Sorting method of starred topics default: "stars" - # Number of topics to display (between 1 and 20) + # Number of topics to display (between 0 and 20) # If more topics must be displayed, they will be grouped in an ellipsis plugin_topics_limit: description: Number of starred topics to display - default: 15 + default: 0 # Projects plugin # Display active projects @@ -265,6 +286,14 @@ inputs: description: Display active projects default: no + # Display active repository projects + # By default, only user owned projects are displayed, with this option it is possible to display projects from repositories + # List of comma-separated projects identifier, in the following format :user/:repo/projects/:project_id + # The limit of displayed projects will automatically be updated so listed projects will fit + plugin_projects_repositories: + description: List of repository project identifiers to disaplay + default: "" + # Number of active projects to display # Between 1 and 100 plugin_projects_limit: diff --git a/action/dist/index.js b/action/dist/index.js index 9d1d697d..23e698a9 100644 --- a/action/dist/index.js +++ b/action/dist/index.js @@ -1,75 +1,23 @@ -module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math.tan,_Mathasin=Math.asin,_Mathsin=Math.sin,_Mathcos=Math.cos,_MathPI=Math.PI,_Mathsqrt=Math.sqrt,_NumberisInteger=Number.isInteger,_NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_NumberNEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,_Stringprototype=String.prototype,_NumberMAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER,_StringfromCharCode=String.fromCharCode,_Mathabs=Math.abs,_Mathpow=Math.pow,_Mathround=Math.round,_Mathfloor=Math.floor,_Mathceil=Math.ceil,_Mathmax=Math.max,_Mathmin=Math.min;function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={exports:{}},r=!0;try{__webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),r=!1}finally{r&&delete __webpack_module_cache__[e]}return t.exports}var __webpack_modules__={45274:(e,t,r)=>{"use strict";async function n({log:e=!0}={}){const t=e?console.debug:()=>null;t(`metrics/setup > setup`);const n="src/templates",a={templates:{},settings:{},statics:r.ab+"html",node_modules:b.resolve("node_modules")};if(t(`metrics/setup > load settings.json`),y.existsSync(r.ab+"settings.json")?(a.settings=JSON.parse(`${await y.promises.readFile(b.resolve("settings.json"))}`),t(`metrics/setup > load settings.json > success`)):t(`metrics/setup > load settings.json > (missing)`),a.settings.templates||(a.settings.templates={default:"classic",enabled:[]}),a.settings.plugins||(a.settings.plugins={}),a.settings.plugins.base={parts:["header","activity","community","repositories","metadata"]},a.settings.debug&&t(S.inspect(a.settings,{depth:1/0,maxStringLength:256})),t(`metrics/setup > load package.json`),y.existsSync(r.ab+"package.json")?(a.package=JSON.parse(`${await y.promises.readFile(b.resolve("package.json"))}`),t(`metrics/setup > load package.json > success`)):(t(`metrics/setup > load package.json > (missing)`),a.package={version:"2.9.0",author:"lowlighter"}),y.existsSync(r.ab+"templates"))for(const e of await y.promises.readdir(n)){if(/.*[.]mjs$/.test(e))continue;t(`metrics/setup > load template [${e}]`);const r=[`${n}/${e}/query.graphql`,`${n}/${e}/image.svg`,`${n}/${e}/style.css`,`${n}/${e}/fonts.css`],[o,i,s,l]=await Promise.all(r.map(async e=>`${await y.promises.readFile(b.resolve(e))}`));a.templates[e]={query:o,image:i,style:s,fonts:l},t(`metrics/setup > load template [${e}] > success`),a.settings.debug&&Object.defineProperty(a.templates,e,{get(){t(`metrics/setup > reload template [${e}]`);const[n,a,o,i]=r.map(e=>`${y.readFileSync(b.resolve(e))}`);return t(`metrics/setup > reload template [${e}] > success`),{query:n,image:a,style:o,fonts:i}}})}else t(`metrics/setup > load templates from build`),a.templates=JSON.parse(Buffer.from(`eyJjbGFzc2ljIjp7InF1ZXJ5IjoicXVlcnkgTWV0cmljcyB7XHJcbiAgdXNlcihsb2dpbjogJGxvZ2luKSB7XHJcbiAgICBkYXRhYmFzZUlkXHJcbiAgICBuYW1lXHJcbiAgICBsb2dpblxyXG4gICAgY3JlYXRlZEF0XHJcbiAgICBhdmF0YXJVcmxcclxuICAgIHdlYnNpdGVVcmxcclxuICAgIGlzSGlyZWFibGVcclxuICAgIHR3aXR0ZXJVc2VybmFtZVxyXG4gICAgZ2lzdHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXMobGFzdDogJHJlcG9zaXRvcmllcywgaXNGb3JrOiBmYWxzZSwgb3duZXJBZmZpbGlhdGlvbnM6IE9XTkVSKSB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgICAgdG90YWxEaXNrVXNhZ2VcclxuICAgICAgbm9kZXMge1xyXG4gICAgICAgIG5hbWVcclxuICAgICAgICB3YXRjaGVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHN0YXJnYXplcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBsYW5ndWFnZXMoZmlyc3Q6IDQpIHtcclxuICAgICAgICAgIGVkZ2VzIHtcclxuICAgICAgICAgICAgc2l6ZVxyXG4gICAgICAgICAgICBub2RlIHtcclxuICAgICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgICAgIG5hbWVcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfb3BlbjogaXNzdWVzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBpc3N1ZXNfY2xvc2VkOiBpc3N1ZXMoc3RhdGVzOiBDTE9TRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfb3BlbjogcHVsbFJlcXVlc3RzKHN0YXRlczogT1BFTikge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9tZXJnZWQ6IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE1FUkdFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICByZWxlYXNlcyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZvcmtDb3VudFxyXG4gICAgICAgIGxpY2Vuc2VJbmZvIHtcclxuICAgICAgICAgIHNwZHhJZFxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcGFja2FnZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzdGFycmVkUmVwb3NpdG9yaWVzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgd2F0Y2hpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc1Nwb25zb3Ige1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBzcG9uc29yc2hpcHNBc01haW50YWluZXIge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBjb250cmlidXRpb25zQ29sbGVjdGlvbiB7XHJcbiAgICAgIHRvdGFsUmVwb3NpdG9yaWVzV2l0aENvbnRyaWJ1dGVkQ29tbWl0c1xyXG4gICAgICB0b3RhbENvbW1pdENvbnRyaWJ1dGlvbnNcclxuICAgICAgcmVzdHJpY3RlZENvbnRyaWJ1dGlvbnNDb3VudFxyXG4gICAgICB0b3RhbElzc3VlQ29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9uc1xyXG4gICAgICB0b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9uc1xyXG4gICAgfVxyXG4gICAgY2FsZW5kYXI6Y29udHJpYnV0aW9uc0NvbGxlY3Rpb24oZnJvbTogJGNhbGVuZGFyLmZyb20sIHRvOiAkY2FsZW5kYXIudG8pIHtcclxuICAgICAgY29udHJpYnV0aW9uQ2FsZW5kYXIge1xyXG4gICAgICAgIHdlZWtzIHtcclxuICAgICAgICAgIGNvbnRyaWJ1dGlvbkRheXMge1xyXG4gICAgICAgICAgICBjb2xvclxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzQ29udHJpYnV0ZWRUbyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2VycyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGZvbGxvd2luZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGlzc3VlQ29tbWVudHMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBvcmdhbml6YXRpb25zIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCJpbWFnZSI6IjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDgwXCIgaGVpZ2h0PVwiPCU9IDEyXHJcbiAgKyAoISFiYXNlLmhlYWRlcikqODAgKyAodXNlci5pc0hpcmVhYmxlKSoxNlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMzhcclxuICArICgoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSoxMjhcclxuICArICghIWJhc2UucmVwb3NpdG9yaWVzKSoxMDhcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCghIXBsdWdpbnMudHJhZmZpYyl8fCghIXBsdWdpbnMubGluZXMpKSkqMTZcclxuICArICghIXBsdWdpbnMuZm9sbG93dXApKjY4XHJcbiAgKyAoISFwbHVnaW5zLnBhZ2VzcGVlZCkqMTI2ICsgKHBsdWdpbnMucGFnZXNwZWVkPy5kZXRhaWxlZCA/PyAwKSo2KjIwXHJcbiAgKyAoISFwbHVnaW5zLmhhYml0cykqMjggKyAoISFwbHVnaW5zLmhhYml0cz8uZmFjdHMpKjU4ICsgKCEhcGx1Z2lucy5oYWJpdHM/LmNoYXJ0cykqMjI2XHJcbiAgKyAoISFwbHVnaW5zLmxhbmd1YWdlcykqOTZcclxuICArICghIXBsdWdpbnMubXVzaWMpKjY0ICsgKHBsdWdpbnMubXVzaWM/LnRyYWNrcz8ubGVuZ3RoID8gMTQrTWF0aC5tYXgoMCwgcGx1Z2lucy5tdXNpYy50cmFja3MubGVuZ3RoLTEpKjM2IDogMClcclxuICArICghIXBsdWdpbnMucG9zdHMpKjY0ICsgKHBsdWdpbnMucG9zdHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo0MFxyXG4gICsgKCEhcGx1Z2lucy5pc29jYWxlbmRhcikqMTkyICsgKHBsdWdpbnMuaXNvY2FsZW5kYXI/LmR1cmF0aW9uID09PSAnZnVsbC15ZWFyJykqMTAwXHJcbiAgKyAoISFwbHVnaW5zLmdpc3RzKSo2OFxyXG4gICsgKCEhcGx1Z2lucy50b3BpY3MpKjE2MFxyXG4gICsgKCEhcGx1Z2lucy5wcm9qZWN0cykqMjIgKyAocGx1Z2lucy5wcm9qZWN0cz8ubGlzdD8ubGVuZ3RoID8/IDApKjYwICsgKCEhcGx1Z2lucy5wcm9qZWN0cz8uZXJyb3IpKjIyXHJcbiAgKyAoISFwbHVnaW5zLnR3ZWV0cykqNjQgKyAocGx1Z2lucy50d2VldHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo5MFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoKCEhcGx1Z2lucy5oYWJpdHMpKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKyghIXBsdWdpbnMubXVzaWMpKyghIXBsdWdpbnMucG9zdHMpKyghIXBsdWdpbnMuaXNvY2FsZW5kYXIpKyghIXBsdWdpbnMuZ2lzdHMpKyghIXBsdWdpbnMudG9waWNzKSsoISFwbHVnaW5zLnByb2plY3RzKSktMSkpKjRcclxuJT5cIj5cclxuXHJcbiAgPGRlZnM+PHN0eWxlPjwlPSBmb250cyAlPjwvc3R5bGU+PC9kZWZzPlxyXG5cclxuICA8c3R5bGU+XHJcbiAgICA8JT0gc3R5bGUgJT5cclxuICA8L3N0eWxlPlxyXG5cclxuICA8Zm9yZWlnbk9iamVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgPGRpdiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhclwiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gY29tcHV0ZWQuYXZhdGFyICU+XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9zcGFuPlxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBjb21wdXRlZC5jYWtlZGF5ID8gJ2Nha2VkYXknIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChjb21wdXRlZC5jYWtlZGF5KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDEuNWExLjI1IDEuMjUgMCAxMDAgMi41aDIuMzA5Yy0uMjMzLS44MTgtLjU0Mi0xLjQwMS0uODc4LTEuNzkzLS40My0uNTAyLS45MTUtLjcwNy0xLjQzMS0uNzA3ek0yIDIuNzVjMCAuNDUuMTA4Ljg3NS4zIDEuMjVoLS41NUExLjc1IDEuNzUgMCAwMDAgNS43NXYyYzAgLjY5OC40MDkgMS4zIDEgMS41ODJ2NC45MThjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgxMC41QTEuNzUgMS43NSAwIDAwMTUgMTQuMjVWOS4zMzJjLjU5MS0uMjgxIDEtLjg4NCAxLTEuNTgydi0yQTEuNzUgMS43NSAwIDAwMTQuMjUgNGgtLjU1YTIuNzUgMi43NSAwIDAwLTIuNDUtNGMtLjk4NCAwLTEuODc0LjQyLTIuNTcgMS4yM0E1LjA4NiA1LjA4NiAwIDAwOCAyLjI3NGE1LjA4NiA1LjA4NiAwIDAwLS42OC0xLjA0MkM2LjYyMy40MiA1LjczMyAwIDQuNzUgMEEyLjc1IDIuNzUgMCAwMDIgMi43NXpNOC45NDEgNGgyLjMwOWExLjI1IDEuMjUgMCAxMDAtMi41Yy0uNTE2IDAtMSAuMjA1LTEuNDMuNzA3LS4zMzcuMzkyLS42NDYuOTc1LS44NzkgMS43OTN6bS0xLjg0IDEuNUgxLjc1YS4yNS4yNSAwIDAwLS4yNS4yNXYyYzAgLjEzOC4xMTIuMjUuMjUuMjVoNS41VjUuNWgtLjE0OXptMS42NDkgMFY4aDUuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTJhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNS41em0wIDRoNC43NXY0Ljc1YS4yNS4yNSAwIDAxLS4yNS4yNWgtNC41di01em0tMS41IDB2NWgtNC41YS4yNS4yNSAwIDAxLS4yNS0uMjVWOS41aDQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBKb2luZWQgR2l0SHViIDwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0uNSA0Ljc1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMC40NzEuNjk2bDIuNSAxYS43NS43NSAwIDAwLjU1Ny0xLjM5Mkw4LjUgNy43NDJWNC43NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEpvaW5lZCBHaXRIdWIgPCU9IGNvbXB1dGVkLnJlZ2lzdHJhdGlvbiAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUuNSAzLjVhMiAyIDAgMTAwIDQgMiAyIDAgMDAwLTR6TTIgNS41YTMuNSAzLjUgMCAxMTUuODk4IDIuNTQ5IDUuNTA3IDUuNTA3IDAgMDEzLjAzNCA0LjA4NC43NS43NSAwIDExLTEuNDgyLjIzNSA0LjAwMSA0LjAwMSAwIDAwLTcuOSAwIC43NS43NSAwIDAxLTEuNDgyLS4yMzZBNS41MDcgNS41MDcgMCAwMTMuMTAyIDguMDUgMy40OSAzLjQ5IDAgMDEyIDUuNXpNMTEgNGEuNzUuNzUgMCAxMDAgMS41IDEuNSAxLjUgMCAwMS42NjYgMi44NDQuNzUuNzUgMCAwMC0uNDE2LjY3MnYuMzUyYS43NS43NSAwIDAwLjU3NC43M2MxLjIuMjg5IDIuMTYyIDEuMiAyLjUyMiAyLjM3MmEuNzUuNzUgMCAxMDEuNDM0LS40NCA1LjAxIDUuMDEgMCAwMC0yLjU2LTMuMDEyQTMgMyAwIDAwMTEgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBGb2xsb3dlZCBieSA8JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSBpZiAodXNlci5pc0hpcmVhYmxlKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGlyZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNi43NSAwQTEuNzUgMS43NSAwIDAwNSAxLjc1VjNIMS43NUExLjc1IDEuNzUgMCAwMDAgNC43NXY4LjVDMCAxNC4yMTYuNzg0IDE1IDEuNzUgMTVoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDEzLjI1di04LjVBMS43NSAxLjc1IDAgMDAxNC4yNSAzSDExVjEuNzVBMS43NSAxLjc1IDAgMDA5LjI1IDBoLTIuNXpNOS41IDNWMS43NWEuMjUuMjUgMCAwMC0uMjUtLjI1aC0yLjVhLjI1LjI1IDAgMDAtLjI1LjI1VjNoM3pNNSA0LjVIMS43NWEuMjUuMjUgMCAwMC0uMjUuMjVWNmEyIDIgMCAwMDIgMmg5YTIgMiAwIDAwMi0yVjQuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNUg1em0tMS41IDVhMy40ODQgMy40ODQgMCAwMS0yLS42Mjd2NC4zNzdjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNVY4Ljg3M2EzLjQ4NCAzLjQ4NCAwIDAxLTIgLjYyN2gtOXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBmb3IgaGlyZSAhXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNhbGVuZGFyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT4gMTFcIiB3aWR0aD1cIjwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT5cIiBoZWlnaHQ9XCIxNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IFt4LCB7Y29sb3J9XSBvZiBPYmplY3QuZW50cmllcyhjb21wdXRlZC5jYWxlbmRhcikpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPVwiZGF5XCIgeD1cIjwlPSB4KjE1ICU+XCIgeT1cIjBcIiB3aWR0aD1cIjExXCIgaGVpZ2h0PVwiMTFcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIgcng9XCIyXCIgcnk9XCIyXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEgMi41QTIuNSAyLjUgMCAwMTMuNSAwaDguNzVhLjc1Ljc1IDAgMDEuNzUuNzV2My41YS43NS43NSAwIDAxLTEuNSAwVjEuNWgtOGExIDEgMCAwMC0xIDF2Ni43MDhBMi40OTIgMi40OTIgMCAwMTMuNSA5aDMuMjVhLjc1Ljc1IDAgMDEwIDEuNUgzLjVhMSAxIDAgMTAwIDJoNS43NWEuNzUuNzUgMCAwMTAgMS41SDMuNUEyLjUgMi41IDAgMDExIDExLjV2LTl6bTEzLjIzIDcuNzlhLjc1Ljc1IDAgMDAxLjA2LTEuMDZsLTIuNTA1LTIuNTA1YS43NS43NSAwIDAwLTEuMDYgMEw5LjIyIDkuMjI5YS43NS43NSAwIDAwMS4wNiAxLjA2MWwxLjIyNS0xLjIyNHY2LjE4NGEuNzUuNzUgMCAwMDEuNSAwVjkuMDY2bDEuMjI0IDEuMjI0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIENvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDwlIGlmIChiYXNlLmFjdGl2aXR5KSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgQWN0aXZpdHlcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEwLjUgNy43NWEyLjUgMi41IDAgMTEtNSAwIDIuNSAyLjUgMCAwMTUgMHptMS40My43NWE0LjAwMiA0LjAwMiAwIDAxLTcuODYgMEguNzVhLjc1Ljc1IDAgMTEwLTEuNWgzLjMyYTQuMDAxIDQuMDAxIDAgMDE3Ljg2IDBoMy4zMmEuNzUuNzUgMCAxMTAgMS41aC0zLjMyelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQuY29tbWl0cyAlPiBDb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjV2Ny43MzZhLjc1Ljc1IDAgMTAxLjUgMFYxLjc1QTEuNzUgMS43NSAwIDAwMTEuMjUgMGgtOC41QTEuNzUgMS43NSAwIDAwMSAxLjc1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgzLjE3YS43NS43NSAwIDAwMC0xLjVIMi43NWEuMjUuMjUgMCAwMS0uMjUtLjI1VjEuNzV6TTQuNzUgNGEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6TTQgNy43NUEuNzUuNzUgMCAwMTQuNzUgN2gyYS43NS43NSAwIDAxMCAxLjVoLTJBLjc1Ljc1IDAgMDE0IDcuNzV6bTExLjc3NCAzLjUzN2EuNzUuNzUgMCAwMC0xLjA0OC0xLjA3NEwxMC43IDE0LjE0NSA5LjI4MSAxMi43MmEuNzUuNzUgMCAwMC0xLjA2MiAxLjA1OGwxLjk0MyAxLjk1YS43NS43NSAwIDAwMS4wNTUuMDA4bDQuNTU3LTQuNDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zICU+IFB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zICU+IFB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zICU+IElzc3VlPCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi43NSAyLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDQuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDIuNzV6TTEgMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDEwLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExMy4yNSAxMkg5LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxNCAxMy41NDNWMTJIMi43NUExLjc1IDEuNzUgMCAwMTEgMTAuMjV2LTcuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50ICU+IGlzc3VlIGNvbW1lbnQ8JT0gcyh1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwlIGlmIChiYXNlLmNvbW11bml0eSkgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuMzI2IDEuOTczYTEuMiAxLjIgMCAwMTEuNDktLjgzMmMuMzg3LjExMi45NzcuMzA3IDEuNTc1LjYwMi41ODYuMjkxIDEuMjQzLjcxIDEuNyAxLjI5Ni4wMjIuMDI3LjA0Mi4wNTYuMDYxLjA4NEExMy4yMiAxMy4yMiAwIDAxOCAzYy42NyAwIDEuMjg5LjAzNyAxLjg2MS4xMDhsLjA1MS0uMDdjLjQ1Ny0uNTg2IDEuMTE0LTEuMDA0IDEuNy0xLjI5NWE5LjY1NCA5LjY1NCAwIDAxMS41NzYtLjYwMiAxLjIgMS4yIDAgMDExLjQ5LjgzMmMuMTQuNDkzLjM1NiAxLjM0Ny40NzkgMi4yOS4wNzkuNjA0LjEyMyAxLjI4LjA3IDEuOTM2LjU0MS45NzcuNzczIDIuMTEuNzczIDMuMzAxQzE2IDEzIDE0LjUgMTUgOCAxNXMtOC0yLTgtNS41YzAtMS4wMzQuMjM4LTIuMTI4Ljc5NS0zLjExNy0uMDgtLjcxMi0uMDM0LTEuNDYuMDUyLTIuMTIuMTIyLS45NDMuMzQtMS43OTcuNDc5LTIuMjl6TTggMTMuMDY1YzYgMCA2LjUtMiA2LTQuMjdDMTMuMzYzIDUuOTA1IDExLjI1IDUgOCA1cy01LjM2My45MDQtNiAzLjc5NmMtLjUgMi4yNyAwIDQuMjcgNiA0LjI3elwiPjwvcGF0aD48cGF0aCBkPVwiTTQgOGExIDEgMCAwMTIgMHYxYTEgMSAwIDAxLTIgMFY4em0yLjA3OCAyLjQ5MmMtLjA4My0uMjY0LjE0Ni0uNDkyLjQyMi0uNDkyaDNjLjI3NiAwIC41MDUuMjI4LjQyMi40OTJDOS42NyAxMS4zMDQgOC44MzQgMTIgOCAxMmMtLjgzNCAwLTEuNjY5LS42OTYtMS45MjItMS41MDh6TTEwIDhhMSAxIDAgMTEyIDB2MWExIDEgMCAxMS0yIDBWOHpcIj48L3BhdGg+PC9zdmc+ICAgICAgICAgICAgICBDb21tdW5pdHkgc3RhdHNcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxNC4yNWMwIC4xMzguMTEyLjI1LjI1LjI1SDR2LTEuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDIuNWEuNzUuNzUgMCAwMS43NS43NXYxLjI1aDIuMjVhLjI1LjI1IDAgMDAuMjUtLjI1VjEuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtOC41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41ek0xLjc1IDE2QTEuNzUgMS43NSAwIDAxMCAxNC4yNVYxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoOC41QzExLjIxNiAwIDEyIC43ODQgMTIgMS43NXYxMi41YzAgLjA4NS0uMDA2LjE2OC0uMDE4LjI1aDIuMjY4YS4yNS4yNSAwIDAwLjI1LS4yNVY4LjI4NWEuMjUuMjUgMCAwMC0uMTExLS4yMDhsLTEuMDU1LS43MDNhLjc1Ljc1IDAgMTEuODMyLTEuMjQ4bDEuMDU1LjcwM2MuNDg3LjMyNS43NzkuODcxLjc3OSAxLjQ1NnY1Ljk2NUExLjc1IDEuNzUgMCAwMTE0LjI1IDE2aC0zLjVhLjc1Ljc1IDAgMDEtLjE5Ny0uMDI2Yy0uMDk5LjAxNy0uMi4wMjYtLjMwMy4wMjZoLTNhLjc1Ljc1IDAgMDEtLjc1LS43NVYxNGgtMXYxLjI1YS43NS43NSAwIDAxLS43NS43NWgtM3pNMyAzLjc1QS43NS43NSAwIDAxMy43NSAzaC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxMyAzLjc1ek0zLjc1IDZhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpNMyA5Ljc1QS43NS43NSAwIDAxMy43NSA5aC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxMyA5Ljc1ek03Ljc1IDlhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpNNyA2Ljc1QS43NS43NSAwIDAxNy43NSA2aC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxNyA2Ljc1ek03Ljc1IDNhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgTWVtYmVyIG9mIDwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPiBvcmdhbml6YXRpb248JT0gcyh1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01LjUgMy41YTIgMiAwIDEwMCA0IDIgMiAwIDAwMC00ek0yIDUuNWEzLjUgMy41IDAgMTE1Ljg5OCAyLjU0OSA1LjUwNyA1LjUwNyAwIDAxMy4wMzQgNC4wODQuNzUuNzUgMCAxMS0xLjQ4Mi4yMzUgNC4wMDEgNC4wMDEgMCAwMC03LjkgMCAuNzUuNzUgMCAwMS0xLjQ4Mi0uMjM2QTUuNTA3IDUuNTA3IDAgMDEzLjEwMiA4LjA1IDMuNDkgMy40OSAwIDAxMiA1LjV6TTExIDRhLjc1Ljc1IDAgMTAwIDEuNSAxLjUgMS41IDAgMDEuNjY2IDIuODQ0Ljc1Ljc1IDAgMDAtLjQxNi42NzJ2LjM1MmEuNzUuNzUgMCAwMC41NzQuNzNjMS4yLjI4OSAyLjE2MiAxLjIgMi41MjIgMi4zNzJhLjc1Ljc1IDAgMTAxLjQzNC0uNDQgNS4wMSA1LjAxIDAgMDAtMi41Ni0zLjAxMkEzIDMgMCAwMDExIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIEZvbGxvd2luZyA8JT0gdXNlci5mb2xsb3dpbmcudG90YWxDb3VudCAlPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI1IDIuNWMtMS4zMzYgMC0yLjc1IDEuMTY0LTIuNzUgMyAwIDIuMTUgMS41OCA0LjE0NCAzLjM2NSA1LjY4MkEyMC41NjUgMjAuNTY1IDAgMDA4IDEzLjM5M2EyMC41NjEgMjAuNTYxIDAgMDAzLjEzNS0yLjIxMUMxMi45MiA5LjY0NCAxNC41IDcuNjUgMTQuNSA1LjVjMC0xLjgzNi0xLjQxNC0zLTIuNzUtMy0xLjM3MyAwLTIuNjA5Ljk4Ni0zLjAyOSAyLjQ1NmEuNzUuNzUgMCAwMS0xLjQ0MiAwQzYuODU5IDMuNDg2IDUuNjIzIDIuNSA0LjI1IDIuNXpNOCAxNC4yNWwtLjM0NS42NjYtLjAwMi0uMDAxLS4wMDYtLjAwMy0uMDE4LS4wMWE3LjY0MyA3LjY0MyAwIDAxLS4zMS0uMTcgMjIuMDc1IDIyLjA3NSAwIDAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDggMjIuMDggMCAwMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMkw4IDE0LjI1em0wIDBsLjM0NS42NjZhLjc1Mi43NTIgMCAwMS0uNjkgMEw4IDE0LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBTcG9uc29yaW5nIDwlPSB1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgU3RhcnJlZCA8JT0gdXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjc5IDcuOTMyYy40MTItLjYyMSAxLjI0Mi0xLjc1IDIuMzY2LTIuNzE3QzUuMTc1IDQuMjQyIDYuNTI3IDMuNSA4IDMuNWMxLjQ3MyAwIDIuODI0Ljc0MiAzLjk1NSAxLjcxNSAxLjEyNC45NjcgMS45NTQgMi4wOTYgMi4zNjYgMi43MTdhLjExOS4xMTkgMCAwMTAgLjEzNmMtLjQxMi42MjEtMS4yNDIgMS43NS0yLjM2NiAyLjcxN0MxMC44MjUgMTEuNzU4IDkuNDczIDEyLjUgOCAxMi41Yy0xLjQ3MyAwLTIuODI0LS43NDItMy45NTUtMS43MTVDMi45MiA5LjgxOCAyLjA5IDguNjkgMS42NzkgOC4wNjhhLjExOS4xMTkgMCAwMTAtLjEzNnpNOCAyYy0xLjk4MSAwLTMuNjcuOTkyLTQuOTMzIDIuMDc4QzEuNzk3IDUuMTY5Ljg4IDYuNDIzLjQzIDcuMWExLjYxOSAxLjYxOSAwIDAwMCAxLjc5OGMuNDUuNjc4IDEuMzY3IDEuOTMyIDIuNjM3IDMuMDI0QzQuMzI5IDEzLjAwOCA2LjAxOSAxNCA4IDE0YzEuOTgxIDAgMy42Ny0uOTkyIDQuOTMzLTIuMDc4IDEuMjctMS4wOTEgMi4xODctMi4zNDUgMi42MzctMy4wMjNhMS42MTkgMS42MTkgMCAwMDAtMS43OThjLS40NS0uNjc4LTEuMzY3LTEuOTMyLTIuNjM3LTMuMDIzQzExLjY3MSAyLjk5MiA5Ljk4MSAyIDggMnptMCA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBXYXRjaGluZyA8JT0gdXNlci53YXRjaGluZy50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yIDIuNUEyLjUgMi41IDAgMDE0LjUgMGg4Ljc1YS43NS43NSAwIDAxLjc1Ljc1djEyLjVhLjc1Ljc1IDAgMDEtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMTEwLTEuNWgxLjc1di0yaC04YTEgMSAwIDAwLS43MTQgMS43Ljc1Ljc1IDAgMDEtMS4wNzIgMS4wNUEyLjQ5NSAyLjQ5NSAwIDAxMiAxMS41di05em0xMC41LTFWOWgtOGMtLjM1NiAwLS42OTQuMDc0LTEgLjIwOFYyLjVhMSAxIDAgMDExLTFoOHpNNSAxMi4yNXYzLjI1YS4yNS4yNSAwIDAwLjQuMmwxLjQ1LTEuMDg3YS4yNS4yNSAwIDAxLjMgMEw4LjYgMTUuN2EuMjUuMjUgMCAwMC40LS4ydi0zLjI1YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTMuNWEuMjUuMjUgMCAwMC0uMjUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gdXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCAlPiBSZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguNzUuNzVhLjc1Ljc1IDAgMDAtMS41IDBWMmgtLjk4NGMtLjMwNSAwLS42MDQuMDgtLjg2OS4yM2wtMS4yODguNzM3QS4yNS4yNSAwIDAxMy45ODQgM0gxLjc1YS43NS43NSAwIDAwMCAxLjVoLjQyOEwuMDY2IDkuMTkyYS43NS43NSAwIDAwLjE1NC44MzhsLjUzLS41My0uNTMuNTN2LjAwMWwuMDAyLjAwMi4wMDIuMDAyLjAwNi4wMDYuMDE2LjAxNS4wNDUuMDRhMy41MTQgMy41MTQgMCAwMC42ODYuNDVBNC40OTIgNC40OTIgMCAwMDMgMTFjLjg4IDAgMS41NTYtLjIyIDIuMDIzLS40NTRhMy41MTUgMy41MTUgMCAwMC42ODYtLjQ1bC4wNDUtLjA0LjAxNi0uMDE1LjAwNi0uMDA2LjAwMi0uMDAyLjAwMS0uMDAyTDUuMjUgOS41bC41My41M2EuNzUuNzUgMCAwMC4xNTQtLjgzOEwzLjgyMiA0LjVoLjE2MmMuMzA1IDAgLjYwNC0uMDguODY5LS4yM2wxLjI4OS0uNzM3YS4yNS4yNSAwIDAxLjEyNC0uMDMzaC45ODRWMTNoLTIuNWEuNzUuNzUgMCAwMDAgMS41aDYuNWEuNzUuNzUgMCAwMDAtMS41aC0yLjVWMy41aC45ODRhLjI1LjI1IDAgMDEuMTI0LjAzM2wxLjI5LjczNmMuMjY0LjE1Mi41NjMuMjMxLjg2OC4yMzFoLjE2MmwtMi4xMTIgNC42OTJhLjc1Ljc1IDAgMDAuMTU0LjgzOGwuNTMtLjUzLS41My41M3YuMDAxbC4wMDIuMDAyLjAwMi4wMDIuMDA2LjAwNi4wMTYuMDE1LjA0NS4wNGEzLjUxNyAzLjUxNyAwIDAwLjY4Ni40NUE0LjQ5MiA0LjQ5MiAwIDAwMTMgMTFjLjg4IDAgMS41NTYtLjIyIDIuMDIzLS40NTRhMy41MTIgMy41MTIgMCAwMC42ODYtLjQ1bC4wNDUtLjA0LjAxLS4wMS4wMDYtLjAwNS4wMDYtLjAwNi4wMDItLjAwMi4wMDEtLjAwMi0uNTI5LS41MzEuNTMuNTNhLjc1Ljc1IDAgMDAuMTU0LS44MzhMMTMuODIzIDQuNWguNDI3YS43NS43NSAwIDAwMC0xLjVoLTIuMjM0YS4yNS4yNSAwIDAxLS4xMjQtLjAzM2wtMS4yOS0uNzM2QTEuNzUgMS43NSAwIDAwOS43MzUgMkg4Ljc1Vi43NXpNMS42OTUgOS4yMjdjLjI4NS4xMzUuNzE4LjI3MyAxLjMwNS4yNzNzMS4wMi0uMTM4IDEuMzA1LS4yNzNMMyA2LjMyN2wtMS4zMDUgMi45em0xMCAwYy4yODUuMTM1LjcxOC4yNzMgMS4zMDUuMjczczEuMDItLjEzOCAxLjMwNS0uMjczTDEzIDYuMzI3bC0xLjMwNSAyLjl6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlLmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICBQcmVmZXIgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+IGxpY2Vuc2VcclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIE5vIGxpY2Vuc2UgcHJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSA3Ljc3NVYyLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg1LjAyNWEuMjUuMjUgMCAwMS4xNzcuMDczbDYuMjUgNi4yNWEuMjUuMjUgMCAwMTAgLjM1NGwtNS4wMjUgNS4wMjVhLjI1LjI1IDAgMDEtLjM1NCAwbC02LjI1LTYuMjVhLjI1LjI1IDAgMDEtLjA3My0uMTc3em0tMS41IDBWMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDUuMDI1Yy40NjQgMCAuOTEuMTg0IDEuMjM4LjUxM2w2LjI1IDYuMjVhMS43NSAxLjc1IDAgMDEwIDIuNDc0bC01LjAyNiA1LjAyNmExLjc1IDEuNzUgMCAwMS0yLjQ3NCAwbC02LjI1LTYuMjVBMS43NSAxLjc1IDAgMDExIDcuNzc1ek02IDVhMSAxIDAgMTAwIDIgMSAxIDAgMDAwLTJ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5yZWxlYXNlcyAlPiBSZWxlYXNlPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnJlbGVhc2VzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguODc4LjM5MmExLjc1IDEuNzUgMCAwMC0xLjc1NiAwbC01LjI1IDMuMDQ1QTEuNzUgMS43NSAwIDAwMSA0Ljk1MXY2LjA5OGMwIC42MjQuMzMyIDEuMi44NzIgMS41MTRsNS4yNSAzLjA0NWExLjc1IDEuNzUgMCAwMDEuNzU2IDBsNS4yNS0zLjA0NWMuNTQtLjMxMy44NzItLjg5Ljg3Mi0xLjUxNFY0Ljk1MWMwLS42MjQtLjMzMi0xLjItLjg3Mi0xLjUxNEw4Ljg3OC4zOTJ6TTcuODc1IDEuNjlhLjI1LjI1IDAgMDEuMjUgMGw0LjYzIDIuNjg1TDggNy4xMzMgMy4yNDUgNC4zNzVsNC42My0yLjY4NXpNMi41IDUuNjc3djUuMzcyYzAgLjA5LjA0Ny4xNzEuMTI1LjIxNmw0LjYyNSAyLjY4M1Y4LjQzMkwyLjUgNS42Nzd6bTYuMjUgOC4yNzFsNC42MjUtMi42ODNhLjI1LjI1IDAgMDAuMTI1LS4yMTZWNS42NzdMOC43NSA4LjQzMnY1LjUxNnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gdXNlci5wYWNrYWdlcy50b3RhbENvdW50ICU+IFBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAzLjVjMC0uMTMzLjA1OC0uMzE4LjI4Mi0uNTUuMjI3LS4yMzcuNTkyLS40ODQgMS4xLS43MDhDNC44OTkgMS43OTUgNi4zNTQgMS41IDggMS41YzEuNjQ3IDAgMy4xMDIuMjk1IDQuMTE3Ljc0Mi41MS4yMjQuODc0LjQ3IDEuMTAxLjcwNy4yMjQuMjMzLjI4Mi40MTguMjgyLjU1MSAwIC4xMzMtLjA1OC4zMTgtLjI4Mi41NS0uMjI3LjIzNy0uNTkyLjQ4NC0xLjEuNzA4QzExLjEwMSA1LjIwNSA5LjY0NiA1LjUgOCA1LjVjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDctLjIyNC0uMjMzLS4yODItLjQxOC0uMjgyLS41NTF6TTEgMy41YzAtLjYyNi4yOTItMS4xNjUuNy0xLjU5LjQwNi0uNDIyLjk1Ni0uNzY3IDEuNTc5LTEuMDQxQzQuNTI1LjMyIDYuMTk1IDAgOCAwYzEuODA1IDAgMy40NzUuMzIgNC43MjIuODY5LjYyMi4yNzQgMS4xNzIuNjIgMS41NzggMS4wNC40MDguNDI2LjcuOTY1LjcgMS41OTF2OWMwIC42MjYtLjI5MiAxLjE2NS0uNyAxLjU5LS40MDYuNDIyLS45NTYuNzY3LTEuNTc5IDEuMDQxQzExLjQ3NiAxNS42OCA5LjgwNiAxNiA4IDE2Yy0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5LS42MjMtLjI3NC0xLjE3My0uNjItMS41NzktMS4wNC0uNDA4LS40MjYtLjctLjk2NS0uNy0xLjU5MXYtOXpNMi41IDhWNS43MjRjLjI0MS4xNS41MDMuMjg2Ljc3OS40MDdDNC41MjUgNi42OCA2LjE5NSA3IDggN2MxLjgwNSAwIDMuNDc1LS4zMiA0LjcyMi0uODY5LjI3NS0uMTIxLjUzNy0uMjU3Ljc3OC0uNDA3VjhjMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgOS43MDUgOS42NDYgMTAgOCAxMGMtMS42NDcgMC0zLjEwMi0uMjk1LTQuMTE3LS43NDItLjUxLS4yMjQtLjg3NC0uNDctMS4xMDEtLjcwN0MyLjU1OCA4LjMxOCAyLjUgOC4xMzMgMi41IDh6bTAgMi4yMjVWMTIuNWMwIC4xMzMuMDU4LjMxOC4yODIuNTUuMjI3LjIzNy41OTIuNDg0IDEuMS43MDggMS4wMTYuNDQ3IDIuNDcxLjc0MiA0LjExOC43NDIgMS42NDcgMCAzLjEwMi0uMjk1IDQuMTE3LS43NDIuNTEtLjIyNC44NzQtLjQ3IDEuMTAxLS43MDcuMjI0LS4yMzMuMjgyLS40MTguMjgyLS41NTF2LTIuMjc1Yy0uMjQxLjE1LS41MDMuMjg1LS43NzguNDA2LTEuMjQ3LjU0OS0yLjkxNy44NjktNC43MjIuODY5LTEuODA1IDAtMy40NzUtLjMyLTQuNzIxLS44NjlhNi4yMzYgNi4yMzYgMCAwMS0uNzc5LS40MDZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPiB1c2VkXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGluZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNC42NjRhLjI1LjI1IDAgMDAtLjA3My0uMTc3bC0yLjkxNC0yLjkxNGEuMjUuMjUgMCAwMC0uMTc3LS4wNzNIMi43NXpNMSAxLjc1QzEgLjc4NCAxLjc4NCAwIDIuNzUgMGg3LjU4NmMuNDY0IDAgLjkwOS4xODQgMS4yMzcuNTEzbDIuOTE0IDIuOTE0Yy4zMjkuMzI4LjUxMy43NzMuNTEzIDEuMjM3djkuNTg2QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMS43NXptNyAxLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS41aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjV2MS41YS43NS43NSAwIDAxLTEuNSAwVjdoLTEuNWEuNzUuNzUgMCAwMTAtMS41aDEuNVY0QS43NS43NSAwIDAxOCAzLjI1em0tMyA4YS43NS43NSAwIDAxLjc1LS43NWg0LjVhLjc1Ljc1IDAgMDEwIDEuNWgtNC41YS43NS43NSAwIDAxLS43NS0uNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5saW5lcy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IGFkZGVkLCA8JT0gcGx1Z2lucy5saW5lcy5kZWxldGVkICU+IHJlbW92ZWRcclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI1IDIuNWMtMS4zMzYgMC0yLjc1IDEuMTY0LTIuNzUgMyAwIDIuMTUgMS41OCA0LjE0NCAzLjM2NSA1LjY4MkEyMC41NjUgMjAuNTY1IDAgMDA4IDEzLjM5M2EyMC41NjEgMjAuNTYxIDAgMDAzLjEzNS0yLjIxMUMxMi45MiA5LjY0NCAxNC41IDcuNjUgMTQuNSA1LjVjMC0xLjgzNi0xLjQxNC0zLTIuNzUtMy0xLjM3MyAwLTIuNjA5Ljk4Ni0zLjAyOSAyLjQ1NmEuNzUuNzUgMCAwMS0xLjQ0MiAwQzYuODU5IDMuNDg2IDUuNjIzIDIuNSA0LjI1IDIuNXpNOCAxNC4yNWwtLjM0NS42NjYtLjAwMi0uMDAxLS4wMDYtLjAwMy0uMDE4LS4wMWE3LjY0MyA3LjY0MyAwIDAxLS4zMS0uMTcgMjIuMDc1IDIyLjA3NSAwIDAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDggMjIuMDggMCAwMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMkw4IDE0LjI1em0wIDBsLjM0NS42NjZhLjc1Mi43NTIgMCAwMS0uNjkgMEw4IDE0LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSB1c2VyLnNwb25zb3JzaGlwc0FzTWFpbnRhaW5lci50b3RhbENvdW50ICU+IFNwb25zb3I8JT0gcyh1c2VyLnNwb25zb3JzaGlwc0FzTWFpbnRhaW5lci50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMgJT4gU3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNSAzLjI1YS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6bTAgMi4xMjJhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OEEyLjI1IDIuMjUgMCAwMDUuNzUgOC41aDEuNXYyLjEyOGEyLjI1MSAyLjI1MSAwIDEwMS41IDBWOC41aDEuNWEyLjI1IDIuMjUgMCAwMDIuMjUtMi4yNXYtLjg3OGEyLjI1IDIuMjUgMCAxMC0xLjUgMHYuODc4YS43NS43NSAwIDAxLS43NS43NWgtNC41QS43NS43NSAwIDAxNSA2LjI1di0uODc4em0zLjc1IDcuMzc4YS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6bTMtOC43NWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQucmVwb3NpdG9yaWVzLmZvcmtzICU+IEZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS42NzkgNy45MzJjLjQxMi0uNjIxIDEuMjQyLTEuNzUgMi4zNjYtMi43MTdDNS4xNzUgNC4yNDIgNi41MjcgMy41IDggMy41YzEuNDczIDAgMi44MjQuNzQyIDMuOTU1IDEuNzE1IDEuMTI0Ljk2NyAxLjk1NCAyLjA5NiAyLjM2NiAyLjcxN2EuMTE5LjExOSAwIDAxMCAuMTM2Yy0uNDEyLjYyMS0xLjI0MiAxLjc1LTIuMzY2IDIuNzE3QzEwLjgyNSAxMS43NTggOS40NzMgMTIuNSA4IDEyLjVjLTEuNDczIDAtMi44MjQtLjc0Mi0zLjk1NS0xLjcxNUMyLjkyIDkuODE4IDIuMDkgOC42OSAxLjY3OSA4LjA2OGEuMTE5LjExOSAwIDAxMC0uMTM2ek04IDJjLTEuOTgxIDAtMy42Ny45OTItNC45MzMgMi4wNzhDMS43OTcgNS4xNjkuODggNi40MjMuNDMgNy4xYTEuNjE5IDEuNjE5IDAgMDAwIDEuNzk4Yy40NS42NzggMS4zNjcgMS45MzIgMi42MzcgMy4wMjRDNC4zMjkgMTMuMDA4IDYuMDE5IDE0IDggMTRjMS45ODEgMCAzLjY3LS45OTIgNC45MzMtMi4wNzggMS4yNy0xLjA5MSAyLjE4Ny0yLjM0NSAyLjYzNy0zLjAyM2ExLjYxOSAxLjYxOSAwIDAwMC0xLjc5OGMtLjQ1LS42NzgtMS4zNjctMS45MzItMi42MzctMy4wMjNDMTEuNjcxIDIuOTkyIDkuOTgxIDIgOCAyem0wIDhhMiAyIDAgMTAwLTQgMiAyIDAgMDAwIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycyAlPiBXYXRjaGVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLndhdGNoZXJzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRyYWZmaWMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IgPyAnZXJyb3InIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMCAxLjc1QS43NS43NSAwIDAxLjc1IDFoNC4yNTNjMS4yMjcgMCAyLjMxNy41OSAzIDEuNTAxQTMuNzQ0IDMuNzQ0IDAgMDExMS4wMDYgMWg0LjI0NWEuNzUuNzUgMCAwMS43NS43NXYxMC41YS43NS43NSAwIDAxLS43NS43NWgtNC41MDdhMi4yNSAyLjI1IDAgMDAtMS41OTEuNjU5bC0uNjIyLjYyMWEuNzUuNzUgMCAwMS0xLjA2IDBsLS42MjItLjYyMUEyLjI1IDIuMjUgMCAwMDUuMjU4IDEzSC43NWEuNzUuNzUgMCAwMS0uNzUtLjc1VjEuNzV6bTguNzU1IDNhMi4yNSAyLjI1IDAgMDEyLjI1LTIuMjVIMTQuNXY5aC0zLjc1N2MtLjcxIDAtMS40LjIwMS0xLjk5Mi41NzJsLjAwNC03LjMyMnptLTEuNTA0IDcuMzI0bC4wMDQtNS4wNzMtLjAwMi0yLjI1M0EyLjI1IDIuMjUgMCAwMDUuMDAzIDIuNUgxLjV2OWgzLjc1N2EzLjc1IDMuNzUgMCAwMTEuOTk0LjU3NHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHJhZmZpYy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMudHJhZmZpYy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMudmlld3MuY291bnQgJT4gdmlldzwlPSBzKHBsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudCkgJT4gaW4gbGFzdCB0d28gd2Vla3NcclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cCkgeyAlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aDM+SXNzdWVzPC9oMz5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXAuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZm9sbG93dXAuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICA8bWFzayBpZD1cImlzc3Vlcy1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50ID8gMCA6IDIyMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDczYTQ5XCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjaXNzdWVzLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAoMS1wbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjZDczYTQ5XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDAxMTAuNjUtNS4wMDMuNzUuNzUgMCAwMC45NTktMS4xNTMgOCA4IDAgMTAyLjU5MiA4LjMzLjc1Ljc1IDAgMTAtMS40NDQtLjQwN0E2LjUgNi41IDAgMDExLjUgOHpNOCAxMmExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnptMC04YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAxMS0xLjUgMHYtMy41QS43NS43NSAwIDAxOCA0em00Ljc4IDQuMjhsMy0zYS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMi40NyAyLjQ3LS45Ny0uOTdhLjc0OS43NDkgMCAxMC0xLjA2IDEuMDZsMS41IDEuNWEuNzUuNzUgMCAwMDEuMDYgMHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQgJT4gQ2xvc2VkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiIzI4YTc0NVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMub3BlbiAlPiBPcGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aDM+UHVsbCByZXF1ZXN0czwvaDM+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJwci1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCA/IDAgOiAyMjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzZmNDJjMVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiMyOGE3NDVcIi8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhvcml6b250YWwgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiM2ZjQyYzFcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01IDMuMjU0VjMuMjV2LjAwNWEuNzUuNzUgMCAxMTAtLjAwNXYuMDA0em0uNDUgMS45YTIuMjUgMi4yNSAwIDEwLTEuOTUuMjE4djUuMjU2YTIuMjUgMi4yNSAwIDEwMS41IDBWNy4xMjNBNS43MzUgNS43MzUgMCAwMDkuMjUgOWgxLjM3OGEyLjI1MSAyLjI1MSAwIDEwMC0xLjVIOS4yNWE0LjI1IDQuMjUgMCAwMS0zLjgtMi4zNDZ6TTEyLjc1IDlhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6bS04LjUgNC41YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby13cmFwXCI+PCU9IHBsdWdpbnMuZm9sbG93dXAucHIubWVyZ2VkICU+IE1lcmdlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03LjE3NyAzLjA3M0w5LjU3My42NzdBLjI1LjI1IDAgMDExMCAuODU0djQuNzkyYS4yNS4yNSAwIDAxLS40MjcuMTc3TDcuMTc3IDMuNDI3YS4yNS4yNSAwIDAxMC0uMzU0ek0zLjc1IDIuNWEuNzUuNzUgMCAxMDAgMS41Ljc1Ljc1IDAgMDAwLTEuNXptLTIuMjUuNzVhMi4yNSAyLjI1IDAgMTEzIDIuMTIydjUuMjU2YTIuMjUxIDIuMjUxIDAgMTEtMS41IDBWNS4zNzJBMi4yNSAyLjI1IDAgMDExLjUgMy4yNXpNMTEgMi41aC0xVjRoMWExIDEgMCAwMTEgMXY1LjYyOGEyLjI1MSAyLjI1MSAwIDEwMS41IDBWNUEyLjUgMi41IDAgMDAxMSAyLjV6bTEgMTAuMjVhLjc1Ljc1IDAgMTExLjUgMCAuNzUuNzUgMCAwMS0xLjUgMHpNMy43NSAxMmEuNzUuNzUgMCAxMDAgMS41Ljc1Ljc1IDAgMDAwLTEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5sYW5ndWFnZXMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgPGgzPk1vc3QgdXNlZCBsYW5ndWFnZXM8L2gzPlxyXG4gICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxtYXNrIGlkPVwibGFuZ3VhZ2VzLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjbGFuZ3VhZ2VzLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzLmxlbmd0aCA/IDAgOiA0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgdmFsdWUsIGNvbG9yLCB4fSBvZiBwbHVnaW5zLmxhbmd1YWdlcy5mYXZvcml0ZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2xhbmd1YWdlcy1iYXIpXCIgeD1cIjwlPSB4KjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gdmFsdWUqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCI8JT0gY29sb3IgJT5cIi8+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBob3Jpem9udGFsLXdyYXAgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHZhbHVlLCBjb2xvcn0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyIG5vLXdyYXAgbGFuZ3VhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCI8JT0gY29sb3IgJT5cIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDRhNCA0IDAgMTAwIDggNCA0IDAgMDAwLTh6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gbmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAwQTEuNzUgMS43NSAwIDAwMCAxLjc1djEyLjVDMCAxNS4yMTYuNzg0IDE2IDEuNzUgMTZoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDE0LjI1VjEuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAwSDEuNzV6TTEuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgxMi41YS4yNS4yNSAwIDAxLjI1LjI1djEyLjVhLjI1LjI1IDAgMDEtLjI1LjI1SDEuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek0xMS43NSAzYS43NS43NSAwIDAwLS43NS43NXY3LjVhLjc1Ljc1IDAgMDAxLjUgMHYtNy41YS43NS43NSAwIDAwLS43NS0uNzV6bS04LjI1Ljc1YS43NS43NSAwIDAxMS41IDB2NS41YS43NS43NSAwIDAxLTEuNSAwdi01LjV6TTggM2EuNzUuNzUgMCAwMC0uNzUuNzV2My41YS43NS43NSAwIDAwMS41IDB2LTMuNUEuNzUuNzUgMCAwMDggM3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLnRvdGFsQ291bnQgJT4gUHJvamVjdDwlPSBzKHBsdWdpbnMucHJvamVjdHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHVwZGF0ZWQsIHByb2dyZXNzfSBvZiBwbHVnaW5zLnByb2plY3RzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMy43NUMwIDIuNzg0Ljc4NCAyIDEuNzUgMmgxMi41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OC41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTRIMS43NUExLjc1IDEuNzUgMCAwMTAgMTIuMjV2LTguNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djguNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEyLjVhLjI1LjI1IDAgMDAuMjUtLjI1di04LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0zLjUgNi4yNWEuNzUuNzUgMCAwMS43NS0uNzVoN2EuNzUuNzUgMCAwMTAgMS41aC03YS43NS43NSAwIDAxLS43NS0uNzV6bS43NSAyLjI1YS43NS43NSAwIDAwMCAxLjVoNGEuNzUuNzUgMCAwMDAtMS41aC00elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCU9IG5hbWUgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHptLjUgNC43NWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAuNDcxLjY5NmwyLjUgMWEuNzUuNzUgMCAwMC41NTctMS4zOTJMOC41IDcuNzQyVjQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGVkIDwlPSB1cGRhdGVkICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi41IDEuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDguNWEuMjUuMjUgMCAwMS4yNS4yNXY3LjczNmEuNzUuNzUgMCAxMDEuNSAwVjEuNzVBMS43NSAxLjc1IDAgMDAxMS4yNSAwaC04LjVBMS43NSAxLjc1IDAgMDAxIDEuNzV2MTEuNWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDMuMTdhLjc1Ljc1IDAgMDAwLTEuNUgyLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNNC43NSA0YS43NS43NSAwIDAwMCAxLjVoNC41YS43NS43NSAwIDAwMC0xLjVoLTQuNXpNNCA3Ljc1QS43NS43NSAwIDAxNC43NSA3aDJhLjc1Ljc1IDAgMDEwIDEuNWgtMkEuNzUuNzUgMCAwMTQgNy43NXptMTEuNzc0IDMuNTM3YS43NS43NSAwIDAwLTEuMDQ4LTEuMDc0TDEwLjcgMTQuMTQ1IDkuMjgxIDEyLjcyYS43NS43NSAwIDAwLTEuMDYyIDEuMDU4bDEuOTQzIDEuOTVhLjc1Ljc1IDAgMDAxLjA1NS4wMDhsNC41NTctNC40NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCU9IFtwcm9ncmVzcy5kb25lID8gYCR7cHJvZ3Jlc3MuZG9uZX0gZG9uZWAgOiBcIlwiLCBwcm9ncmVzcy5kb2luZyA/IGAke3Byb2dyZXNzLmRvaW5nfSBkb2luZ2AgOiBcIlwiLCBwcm9ncmVzcy50b2RvID8gYCR7cHJvZ3Jlc3MudG9kb30gdG9kb2AgOiBcIlwiXS5maWx0ZXIoc3RyID0+IHN0cikuam9pbihcIiDCtyBcIikgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyIGhvcml6b250YWwtd3JhcCBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHJvamVjdC1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0NjBcIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIndoaXRlXCIgcng9XCI1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3Byb2plY3QtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhBNzQ1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiPCU9IChwcm9ncmVzcy5kb25lL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy5kb2luZy9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjNkY0MkMxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiPCU9ICgocHJvZ3Jlc3MuZG9uZStwcm9ncmVzcy5kb2luZykvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLnRvZG8vcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLmdpc3RzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djEyLjVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNVYxLjc1YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2MTIuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDE2SDEuNzVBMS43NSAxLjc1IDAgMDEwIDE0LjI1VjEuNzV6bTkuMjIgMy43MmEuNzUuNzUgMCAwMDAgMS4wNkwxMC42OSA4IDkuMjIgOS40N2EuNzUuNzUgMCAxMDEuMDYgMS4wNmwyLTJhLjc1Ljc1IDAgMDAwLTEuMDZsLTItMmEuNzUuNzUgMCAwMC0xLjA2IDB6TTYuNzggNi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTIgMmEuNzUuNzUgMCAwMDAgMS4wNmwyIDJhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMNS4zMSA4bDEuNDctMS40N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQgJT4gR2lzdDwlPSBzKHBsdWdpbnMuZ2lzdHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmdpc3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAuMjVhLjc1Ljc1IDAgMDEuNjczLjQxOGwxLjg4MiAzLjgxNSA0LjIxLjYxMmEuNzUuNzUgMCAwMS40MTYgMS4yNzlsLTMuMDQ2IDIuOTcuNzE5IDQuMTkyYS43NS43NSAwIDAxLTEuMDg4Ljc5MUw4IDEyLjM0N2wtMy43NjYgMS45OGEuNzUuNzUgMCAwMS0xLjA4OC0uNzlsLjcyLTQuMTk0TC44MTggNi4zNzRhLjc1Ljc1IDAgMDEuNDE2LTEuMjhsNC4yMS0uNjExTDcuMzI3LjY2OEEuNzUuNzUgMCAwMTggLjI1em0wIDIuNDQ1TDYuNjE1IDUuNWEuNzUuNzUgMCAwMS0uNTY0LjQxbC0zLjA5Ny40NSAyLjI0IDIuMTg0YS43NS43NSAwIDAxLjIxNi42NjRsLS41MjggMy4wODQgMi43NjktMS40NTZhLjc1Ljc1IDAgMDEuNjk4IDBsMi43NyAxLjQ1Ni0uNTMtMy4wODRhLjc1Ljc1IDAgMDEuMjE2LS42NjRsMi4yNC0yLjE4My0zLjA5Ni0uNDVhLjc1Ljc1IDAgMDEtLjU2NC0uNDFMOCAyLjY5NHYuMDAxelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZ2lzdHMuc3RhcmdhemVycyAlPiBTdGFyZ2F6ZXI8JT0gcyhwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUgMy4yNWEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0wIDIuMTIyYTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhBMi4yNSAyLjI1IDAgMDA1Ljc1IDguNWgxLjV2Mi4xMjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjguNWgxLjVhMi4yNSAyLjI1IDAgMDAyLjI1LTIuMjV2LS44NzhhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OGEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNUEuNzUuNzUgMCAwMTUgNi4yNXYtLjg3OHptMy43NSA3LjM3OGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0zLTguNzVhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy5mb3JrcyAlPiBGb3JrPCU9IHMocGx1Z2lucy5naXN0cy5mb3JrcykgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQpIHsgJT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQuMDY0IDBhOC43NSA4Ljc1IDAgMDAtNi4xODcgMi41NjNsLS40NTkuNDU4Yy0uMzE0LjMxNC0uNjE2LjY0MS0uOTA0Ljk3OUgzLjMxYTEuNzUgMS43NSAwIDAwLTEuNDkuODMzTC4xMSA3LjYwN2EuNzUuNzUgMCAwMC40MTggMS4xMWwzLjEwMi45NTRjLjAzNy4wNTEuMDc5LjEuMTI0LjE0NWwyLjQyOSAyLjQyOGMuMDQ2LjA0Ni4wOTQuMDg4LjE0NS4xMjVsLjk1NCAzLjEwMmEuNzUuNzUgMCAwMDEuMTEuNDE4bDIuNzc0LTEuNzA3YTEuNzUgMS43NSAwIDAwLjgzMy0xLjQ5VjkuNDg1Yy4zMzgtLjI4OC42NjUtLjU5Ljk3OS0uOTA0bC40NTgtLjQ1OUE4Ljc1IDguNzUgMCAwMDE2IDEuOTM2VjEuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAwaC0uMTg2ek0xMC41IDEwLjYyNWMtLjA4OC4wNi0uMTc3LjExOC0uMjY2LjE3NWwtMi4zNSAxLjUyMS41NDggMS43ODMgMS45NDktMS4yYS4yNS4yNSAwIDAwLjExOS0uMjEzdi0yLjA2NnpNMy42NzggOC4xMTZMNS4yIDUuNzY2Yy4wNTgtLjA5LjExNy0uMTc4LjE3Ni0uMjY2SDMuMzA5YS4yNS4yNSAwIDAwLS4yMTMuMTE5bC0xLjIgMS45NSAxLjc4Mi41NDd6bTUuMjYtNC40OTNBNy4yNSA3LjI1IDAgMDExNC4wNjMgMS41aC4xODZhLjI1LjI1IDAgMDEuMjUuMjV2LjE4NmE3LjI1IDcuMjUgMCAwMS0yLjEyMyA1LjEyN2wtLjQ1OS40NThhMTUuMjEgMTUuMjEgMCAwMS0yLjQ5OSAyLjAybC0yLjMxNyAxLjUtMi4xNDMtMi4xNDMgMS41LTIuMzE3YTE1LjI1IDE1LjI1IDAgMDEyLjAyLTIuNWwuNDU4LS40NThoLjAwMnpNMTIgNWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS04LjQ0IDkuNTZhMS41IDEuNSAwIDEwLTIuMTItMi4xMmMtLjczNC43My0xLjA0NyAyLjMzMi0xLjE1IDMuMDAzYS4yMy4yMyAwIDAwLjI2NS4yNjVjLjY3MS0uMTAzIDIuMjczLS40MTYgMy4wMDUtMS4xNDh6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIFBhZ2VTcGVlZCBJbnNpZ2h0c1xyXG4gICAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy43NzUgMy4yNzVhLjc1Ljc1IDAgMDAxLjA2IDEuMDZsMS4yNS0xLjI1YTIgMiAwIDExMi44MyAyLjgzbC0yLjUgMi41YTIgMiAwIDAxLTIuODMgMCAuNzUuNzUgMCAwMC0xLjA2IDEuMDYgMy41IDMuNSAwIDAwNC45NSAwbDIuNS0yLjVhMy41IDMuNSAwIDAwLTQuOTUtNC45NWwtMS4yNSAxLjI1em0tNC42OSA5LjY0YTIgMiAwIDAxMC0yLjgzbDIuNS0yLjVhMiAyIDAgMDEyLjgzIDAgLjc1Ljc1IDAgMDAxLjA2LTEuMDYgMy41IDMuNSAwIDAwLTQuOTUgMGwtMi41IDIuNWEzLjUgMy41IDAgMDA0Ljk1IDQuOTVsMS4yNS0xLjI1YS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMS4yNSAxLjI1YTIgMiAwIDAxLTIuODMgMHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IHVzZXIud2Vic2l0ZVVybCAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQuZXJyb3IpIHsgJT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjYXRlZ29yaWVzXCI+XHJcbiAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtzY29yZSwgdGl0bGV9IG9mIHBsdWdpbnMucGFnZXNwZWVkLnNjb3JlcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcmllIGNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTIwIDEyMFwiIHdpZHRoPVwiNTBcIiBoZWlnaHQ9XCI1MFwiIGNsYXNzPVwiZ2F1Z2UgPCU9ICFOdW1iZXIuaXNOYU4oc2NvcmUpID8gKHNjb3JlID49IDAuOSA/ICdoaWdoJyA6IHNjb3JlID49IDAuNSA/ICdhdmVyYWdlJyA6ICdsb3cnKSA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiZ2F1Z2UtYmFzZVwiIHI9XCI1M1wiIGN4PVwiNjBcIiBjeT1cIjYwXCI+PC9jaXJjbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImdhdWdlLWFyY1wiIHRyYW5zZm9ybT1cInJvdGF0ZSgtOTAgNjAgNjApXCIgcj1cIjUzXCIgY3g9XCI2MFwiIGN5PVwiNjBcIiBzdHJva2UtZGFzaGFycmF5PVwiPCU9IHNjb3JlICogMzI5ICU+IDMyOVwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCB4PVwiNjBcIiB5PVwiNjBcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiA+PCU9IE1hdGgucm91bmQoc2NvcmUqMTAwKSAlPjwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0IHg9XCI2MFwiIHk9XCI2MFwiIGRvbWluYW50LWJhc2VsaW5lPVwiY2VudHJhbFwiID4tPC90ZXh0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj48JT0gdGl0bGUgJT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQuZGV0YWlsZWQpIHsgJT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1ZGl0cyByb3dcIj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUuNzUuNzVBLjc1Ljc1IDAgMDE2LjUgMGgzYS43NS43NSAwIDAxMCAxLjVoLS43NXYxbC0uMDAxLjA0MWE2LjcxOCA2LjcxOCAwIDAxMy40NjQgMS40MzVsLjAwNy0uMDA2Ljc1LS43NWEuNzUuNzUgMCAxMTEuMDYgMS4wNmwtLjc1Ljc1LS4wMDYuMDA3YTYuNzUgNi43NSAwIDExLTEwLjU0OCAwTDIuNzIgNS4wM2wtLjc1LS43NWEuNzUuNzUgMCAwMTEuMDYtMS4wNmwuNzUuNzUuMDA3LjAwNkE2LjcxOCA2LjcxOCAwIDAxNy4yNSAyLjU0MWEuNzU2Ljc1NiAwIDAxMC0uMDQxdi0xSDYuNWEuNzUuNzUgMCAwMS0uNzUtLjc1ek04IDE0LjVBNS4yNSA1LjI1IDAgMTA4IDRhNS4yNSA1LjI1IDAgMDAwIDEwLjV6bS4zODktNi43bDEuMzMtMS4zM2EuNzUuNzUgMCAxMTEuMDYxIDEuMDZMOS40NSA4Ljg2MUExLjUwMiAxLjUwMiAwIDAxOCAxMC43NWExLjUgMS41IDAgMTEuMzg5LTIuOTV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFRpbWUgdG8gaW50ZXJhY3RpdmVcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTA2LjAxNiA0LjAzNS43NS43NSAwIDAxMS4zODgtLjU3IDggOCAwIDExLTQuMzctNC4zNy43NS43NSAwIDAxLS41NjkgMS4zODlBNi40NzkgNi40NzkgMCAwMDggMS41em02LjI4LjIyYS43NS43NSAwIDAxMCAxLjA2bC00LjA2MyA0LjA2NGEyLjUgMi41IDAgMTEtMS4wNi0xLjA2TDEzLjIyIDEuNzJhLjc1Ljc1IDAgMDExLjA2IDB6TTcgOGExIDEgMCAxMTIgMCAxIDEgMCAwMS0yIDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFNwZWVkIEluZGV4XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS42NDMgMy4xNDNMLjQyNyAxLjkyN0EuMjUuMjUgMCAwMDAgMi4xMDRWNS43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDMuNjQ2YS4yNS4yNSAwIDAwLjE3Ny0uNDI3TDIuNzE1IDQuMjE1YTYuNSA2LjUgMCAxMS0xLjE4IDQuNDU4Ljc1Ljc1IDAgMTAtMS40OTMuMTU0IDguMDAxIDguMDAxIDAgMTAxLjYtNS42ODR6TTcuNzUgNGEuNzUuNzUgMCAwMS43NS43NXYyLjk5MmwyLjAyOC44MTJhLjc1Ljc1IDAgMDEtLjU1NyAxLjM5MmwtMi41LTFBLjc1Ljc1IDAgMDE3IDguMjV2LTMuNUEuNzUuNzUgMCAwMTcuNzUgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgVG90YWwgQmxvY2tpbmcgVGltZVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTExLjEzNCAxLjUzNUM5LjcyMiAyLjU2MiA4LjE2IDQuMDU3IDYuODg5IDUuMzEyIDUuOCA2LjM4NyA1LjA0MSA3LjQwMSA0LjU3NSA4LjI5NGEzLjc0NSAzLjc0NSAwIDAwLTMuMjI3IDEuMDU0Yy0uNDMuNDMxLS42OSAxLjA2Ni0uODYgMS42NTdhMTEuOTgyIDExLjk4MiAwIDAwLS4zNTggMS45MTRBMjEuMjYzIDIxLjI2MyAwIDAwMCAxNS4yMDN2LjA1NGwuNzUtLjAwNy0uMDA3Ljc1aC4wNTRhMTQuNDA0IDE0LjQwNCAwIDAwLjY1NC0uMDEyIDIxLjI0MyAyMS4yNDMgMCAwMDEuNjMtLjExOGMuNjItLjA3IDEuMy0uMTggMS45MTQtLjM1Ny41OTItLjE3IDEuMjI2LS40MyAxLjY1Ny0uODYxYTMuNzQ1IDMuNzQ1IDAgMDAxLjA1NS0zLjIxN2MuOTA4LS40NjEgMS45NDItMS4yMTYgMy4wNC0yLjMgMS4yNzktMS4yNjIgMi43NjQtMi44MjUgMy43NzUtNC4yNDkuNTAxLS43MDYuOTIzLTEuNDI4IDEuMTI1LTIuMDk2LjItLjY1OS4yMzUtMS40NjktLjM2OC0yLjA3LS42MDYtLjYwNy0xLjQyLS41NS0yLjA2OS0uMzQtLjY2LjIxMy0xLjM3Ni42NDYtMi4wNzYgMS4xNTV6bS0zLjk1IDguNDhhMy43NiAzLjc2IDAgMDAtMS4xOS0xLjE5MiA5Ljc1OCA5Ljc1OCAwIDAxMS4xNjEtMS42MDdsMS42NTggMS42NThhOS44NTMgOS44NTMgMCAwMS0xLjYzIDEuMTQyek0uNzQyIDE2bC4wMDctLjc1LS43NS4wMDhBLjc1Ljc1IDAgMDAuNzQzIDE2ek0xMi4wMTYgMi43NDljLTEuMjI0Ljg5LTIuNjA1IDIuMTg5LTMuODIyIDMuMzg0bDEuNzE4IDEuNzE4YzEuMjEtMS4yMDUgMi41MS0yLjU5NyAzLjM4Ny0zLjgzMy40Ny0uNjYyLjc4LTEuMjI3LjkxMi0xLjY2Mi4xMzQtLjQ0NC4wMzItLjU1MS4wMDktLjU3NWgtLjAwMVYxLjc4Yy0uMDE0LS4wMTQtLjExMi0uMTEzLS41NDguMDI3LS40MzIuMTQtLjk5NS40NjItMS42NTUuOTQyek0xLjYyIDEzLjA4OWExOS41NiAxOS41NiAwIDAwLS4xMDQgMS4zOTUgMTkuNTUgMTkuNTUgMCAwMDEuMzk2LS4xMDQgMTAuNTI4IDEwLjUyOCAwIDAwMS42NjgtLjMwOWMuNTI2LS4xNTEuODU2LS4zMjUgMS4wMTEtLjQ4YTIuMjUgMi4yNSAwIDAwLTMuMTgyLTMuMTgyYy0uMTU1LjE1NS0uMzI5LjQ4NS0uNDggMS4wMWExMC41MTUgMTAuNTE1IDAgMDAtLjMwOSAxLjY3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBGaXJzdCBDb250ZW50ZnVsIFBhaW50XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAyLjVhLjI1LjI1IDAgMDAtLjI1LjI1djEwLjVjMCAuMTM4LjExMi4yNS4yNS4yNWguOTRhLjc2Ljc2IDAgMDEuMDMtLjAzbDYuMDc3LTYuMDc4YTEuNzUgMS43NSAwIDAxMi40MTItLjA2TDE0LjUgMTAuMzFWMi43NWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6bTEyLjUgMTFINC44MWw1LjA0OC01LjA0N2EuMjUuMjUgMCAwMS4zNDQtLjAwOWw0LjI5OCAzLjg4OXYuOTE3YS4yNS4yNSAwIDAxLS4yNS4yNXptMS43NS0uMjVWMi43NUExLjc1IDEuNzUgMCAwMDE0LjI1IDFIMS43NUExLjc1IDEuNzUgMCAwMDAgMi43NXYxMC41QzAgMTQuMjE2Ljc4NCAxNSAxLjc1IDE1aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxMy4yNXpNNS41IDZhLjUuNSAwIDExLTEgMCAuNS41IDAgMDExIDB6TTcgNmEyIDIgMCAxMS00IDAgMiAyIDAgMDE0IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIExhcmdlc3QgQ29udGVudGZ1bCBQYWludFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuNzUgMTRBMS43NSAxLjc1IDAgMDE2IDEyLjI1di04LjVDNiAyLjc4NCA2Ljc4NCAyIDcuNzUgMmg2LjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY4LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNGgtNi41em0tLjI1LTEuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWg2LjVhLjI1LjI1IDAgMDAuMjUtLjI1di04LjVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNi41YS4yNS4yNSAwIDAwLS4yNS4yNXY4LjV6TTQuOSAzLjUwOGEuNzUuNzUgMCAwMS0uMjc0IDEuMDI1LjI1LjI1IDAgMDAtLjEyNi4yMTd2Ni41YS4yNS4yNSAwIDAwLjEyNi4yMTcuNzUuNzUgMCAwMS0uNzUyIDEuMjk4QTEuNzUgMS43NSAwIDAxMyAxMS4yNXYtNi41YzAtLjY0OS4zNTMtMS4yMTQuODc0LTEuNTE2YS43NS43NSAwIDAxMS4wMjUuMjc0ek0xLjYyNSA1LjUzM2EuNzUuNzUgMCAxMC0uNzUyLTEuMjk5QTEuNzUgMS43NSAwIDAwMCA1Ljc1djQuNWMwIC42NDkuMzUzIDEuMjE0Ljg3NCAxLjUxNWEuNzUuNzUgMCAxMC43NTItMS4yOTguMjUuMjUgMCAwMS0uMTI2LS4yMTd2LTQuNWEuMjUuMjUgMCAwMS4xMjYtLjIxN3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgQ3VtdWxhdGl2ZSBMYXlvdXQgU2hpZnRcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7c2NvcmUsIHN1ZmZpeCA9IFwiXCIsIHRocmVzaG9sZH0gb2YgW1xyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5pbnRlcmFjdGl2ZS8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy43ODUsIDcuM119LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5zcGVlZEluZGV4LzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlszLjM4NywgNS44XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLnRvdGFsQmxvY2tpbmdUaW1lLzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsuMjg3LCAuNl19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5maXJzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi4zMzYsIDRdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MubGFyZ2VzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi41LCA0XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTorcGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5jdW11bGF0aXZlTGF5b3V0U2hpZnQsIHRocmVzaG9sZDpbLjEsIC4yNV19XHJcbiAgICAgICAgICAgICAgICBdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF1ZGl0IHRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBzY29yZS50b0ZpeGVkKDIpLnJlcGxhY2UoL1suXTArJC8sIFwiXCIpICU+IDwlPSBzdWZmaXggJT5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgTi9BXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKE51bWJlci5pc05hTihzY29yZSkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImF1ZGl0XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTggMGE4IDggMCAxMDAgMTZBOCA4IDAgMDA4IDB6bTMuMjggNS43OGEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTUuNSA1LjVhLjc1Ljc1IDAgMTAxLjA2IDEuMDZsNS41LTUuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzBdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBoaWdoXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTExLjc4LTEuNzJhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDYuNzUgOS4xOSA1LjI4IDcuNzJhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2bDIgMmEuNzUuNzUgMCAwMDEuMDYgMGw0LjUtNC41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIGlmIChzY29yZSA8PSB0aHJlc2hvbGRbMV0pIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImF1ZGl0IGF2ZXJhZ2VcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVhNi41IDYuNSAwIDEwMCAxMyA2LjUgNi41IDAgMDAwLTEzek0wIDhhOCA4IDAgMTExNiAwQTggOCAwIDAxMCA4em05IDNhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tLjI1LTYuMjVhLjc1Ljc1IDAgMDAtMS41IDB2My41YS43NS43NSAwIDAwMS41IDB2LTMuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBsb3dcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC40Ny4yMkEuNzUuNzUgMCAwMTUgMGg2YS43NS43NSAwIDAxLjUzLjIybDQuMjUgNC4yNWMuMTQxLjE0LjIyLjMzMS4yMi41M3Y2YS43NS43NSAwIDAxLS4yMi41M2wtNC4yNSA0LjI1QS43NS43NSAwIDAxMTEgMTZINWEuNzUuNzUgMCAwMS0uNTMtLjIyTC4yMiAxMS41M0EuNzUuNzUgMCAwMTAgMTFWNWEuNzUuNzUgMCAwMS4yMi0uNTNMNC40Ny4yMnptLjg0IDEuMjhMMS41IDUuMzF2NS4zOGwzLjgxIDMuODFoNS4zOGwzLjgxLTMuODFWNS4zMUwxMC42OSAxLjVINS4zMXpNOCA0YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAwMS0xLjUgMHYtMy41QS43NS43NSAwIDAxOCA0em0wIDhhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVjLTIuMzYzIDAtNCAxLjY5LTQgMy43NSAwIC45ODQuNDI0IDEuNjI1Ljk4NCAyLjMwNGwuMjE0LjI1M2MuMjIzLjI2NC40Ny41NTYuNjczLjg0OC4yODQuNDExLjUzNy44OTYuNjIxIDEuNDlhLjc1Ljc1IDAgMDEtMS40ODQuMjExYy0uMDQtLjI4Mi0uMTYzLS41NDctLjM3LS44NDdhOC42OTUgOC42OTUgMCAwMC0uNTQyLS42OGMtLjA4NC0uMS0uMTczLS4yMDUtLjI2OC0uMzJDMy4yMDEgNy43NSAyLjUgNi43NjYgMi41IDUuMjUgMi41IDIuMzEgNC44NjMgMCA4IDBzNS41IDIuMzEgNS41IDUuMjVjMCAxLjUxNi0uNzAxIDIuNS0xLjMyOCAzLjI1OS0uMDk1LjExNS0uMTg0LjIyLS4yNjguMzE5LS4yMDcuMjQ1LS4zODMuNDUzLS41NDEuNjgxLS4yMDguMy0uMzMuNTY1LS4zNy44NDdhLjc1Ljc1IDAgMDEtMS40ODUtLjIxMmMuMDg0LS41OTMuMzM3LTEuMDc4LjYyMS0xLjQ4OS4yMDMtLjI5Mi40NS0uNTg0LjY3My0uODQ4LjA3NS0uMDg4LjE0Ny0uMTczLjIxMy0uMjUzLjU2MS0uNjc5Ljk4NS0xLjMyLjk4NS0yLjMwNCAwLTIuMDYtMS42MzctMy43NS00LTMuNzV6TTYgMTUuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDIuNWEuNzUuNzUgMCAwMTAgMS41aC0yLjVhLjc1Ljc1IDAgMDEtLjc1LS43NXpNNS43NSAxMmEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb2RpbmcgaGFiaXRzIGFuZCByZWNlbnQgYWN0aXZpdHlcclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8JSBpZiAocGx1Z2lucy5oYWJpdHMuZmFjdHMpIHsgJT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmhhYml0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJoYWJpdHNcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmluZGVudHMuc3R5bGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+VXNlIDwlPSBwbHVnaW5zLmhhYml0cy5pbmRlbnRzLnN0eWxlICU+IGZvciBpbmRlbnRzPC9saT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPk1vc3RseSBwdXNoIGNvZGUgYXJvdW5kIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIgJT46MDA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT5Nb3N0bHkgYWN0aXZlIG9uIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheS50b0xvY2FsZUxvd2VyQ2FzZSgpICU+PC9saT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmNoYXJ0cykgeyAlPlxyXG4gICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4ocGx1Z2lucy5oYWJpdHMuY29tbWl0cy5ob3VyKSkgeyAlPlxyXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtbiBjaGFydFwiPlxyXG4gICAgICAgICAgICAgIDxoMz5Db21taXQgYWN0aXZpdHkgcGVyIHRpbWUgb2YgdGhlIGRheTwvaDM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWJhcnNcIj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAobGV0IGggPSAwOyBoIDwgMjQ7IGgrKykgeyBjb25zdCBwID0gKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuaG91cnNbaF0/PzApLyhwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXJzLm1heD8/MSk7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48JT0gcGx1Z2lucy5oYWJpdHMuY29tbWl0cy5ob3Vyc1toXSAlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyXCIgc3R5bGU9XCJoZWlnaHQ6IDwlPSBwKjUwICU+cHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MPCU9IE1hdGguY2VpbChwLzAuMjUpICU+LWJnKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBgJHtofWAucGFkU3RhcnQoMiwgMCkgJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmICghTnVtYmVyLmlzTmFOKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuZGF5KSkgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY29sdW1uIGNoYXJ0XCI+XHJcbiAgICAgICAgICAgICAgICA8aDM+Q29tbWl0IGFjdGl2aXR5IHBlciBkYXk8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWJhcnNcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChsZXQgZCA9IDA7IGQgPCA3OyBkKyspIHsgY29uc3QgcCA9IChwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheXNbZF0/PzApLyhwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheXMubWF4Pz8xKTsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48JT0gcGx1Z2lucy5oYWJpdHMuY29tbWl0cy5kYXlzW2RdICU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhclwiIHN0eWxlPVwiaGVpZ2h0OiA8JT0gcCo1MCAlPnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDwlPSBNYXRoLmNlaWwocC8wLjI1KSAlPi1iZylcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBbXCJTdW5cIiwgXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIl1bZF0gJT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5saW5ndWlzdC5hdmFpbGFibGUpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtbiBjaGFydFwiPlxyXG4gICAgICAgICAgICAgICAgPGgzPkxhbmd1YWdlIGFjdGl2aXR5PC9oMz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC1iYXJzIGhvcml6b250YWxcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbbGFuZ3VhZ2UsIHBdIG9mIHBsdWdpbnMuaGFiaXRzLmxpbmd1aXN0Lm9yZGVyZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPjwlPSBsYW5ndWFnZSAlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIiBzdHlsZT1cIndpZHRoOiA8JT0gcCo4MCAlPiU7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MPCU9IE1hdGguY2VpbChwLzAuMjUpICU+LWJnKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPjwlPSBNYXRoLnJvdW5kKDEwMCpwKSAlPiU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy50b3BpY3MpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNC4xODQgMS4xNDNhMS43NSAxLjc1IDAgMDAtMi41MDItLjU3TC45MTIgNy45MTZhMS43NSAxLjc1IDAgMDAtLjUzIDIuMzJsLjQ0Ny43NzVhMS43NSAxLjc1IDAgMDAyLjI3NS43MDJsMTEuNzQ1LTUuNjU2YTEuNzUgMS43NSAwIDAwLjc1Ny0yLjQ1MWwtMS40MjItMi40NjR6bS0xLjY1Ny42NjlhLjI1LjI1IDAgMDEuMzU4LjA4MWwxLjQyMiAyLjQ2NGEuMjUuMjUgMCAwMS0uMTA4LjM1bC0yLjAxNi45Ny0xLjUwNS0yLjYwNSAxLjg1LTEuMjZ6TTkuNDM2IDMuOTJsMS4zOTEgMi40MS01LjQyIDIuNjEtLjk0Mi0xLjYzIDQuOTctMy4zOXpNMy4yMjIgOC4xNTdsLTEuNDY2IDFhLjI1LjI1IDAgMDAtLjA3NS4zM2wuNDQ3Ljc3NWEuMjUuMjUgMCAwMC4zMjUuMWwxLjU5OC0uNzY5LS44My0xLjQzNnptNi4yNTMgMi4zMDZhLjc1Ljc1IDAgMDAtLjk0NC0uMjUybC0xLjgwOS44N2EuNzUuNzUgMCAwMC0uMjkzLjI1M0w0LjM4IDE0LjMyNmEuNzUuNzUgMCAxMDEuMjM4Ljg0OGwxLjg4MS0yLjc1djIuODI2YS43NS43NSAwIDAwMS41IDB2LTIuODI2bDEuODgxIDIuNzVhLjc1Ljc1IDAgMDAxLjIzOC0uODQ4bC0yLjY0NC0zLjg2M3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIFN0YXJyZWQgdG9waWNzXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50b3BpY3MuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMudG9waWNzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3BpY3MgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCBkZXNjcmlwdGlvbn0gb2YgcGx1Z2lucy50b3BpY3MubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbFwiIHRpdGxlPVwiPCU9IGRlc2NyaXB0aW9uICU+XCI+PCU9IG5hbWUudG9Mb2NhbGVMb3dlckNhc2UoKSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwek02LjM3OSA1LjIyN0EuMjUuMjUgMCAwMDYgNS40NDJ2NS4xMTdhLjI1LjI1IDAgMDAuMzc5LjIxNGw0LjI2NC0yLjU1OWEuMjUuMjUgMCAwMDAtLjQyOEw2LjM3OSA1LjIyN3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLm11c2ljLm1vZGUgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMucHJvdmlkZXIpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4wMDIgMi43MjVhLjc1Ljc1IDAgMDEuNzk3LS42OTlDOC43OSAyLjQyIDEzLjU4IDcuMjEgMTMuOTc0IDEzLjIwMWEuNzUuNzUgMCAxMS0xLjQ5Ny4wOTggMTAuNTAyIDEwLjUwMiAwIDAwLTkuNzc2LTkuNzc2Ljc1Ljc1IDAgMDEtLjctLjc5OHpNMiAxM2ExIDEgMCAxMTIgMCAxIDEgMCAwMS0yIDB6bS44NC01Ljk1YS43NS43NSAwIDAwLS4xNzkgMS40ODljMi41MDkuMyA0LjUgMi4yOTEgNC44IDQuOGEuNzUuNzUgMCAxMDEuNDktLjE3OEE3LjAwMyA3LjAwMyAwIDAwMi44MzggNy4wNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEZyb20gPCU9IHBsdWdpbnMubXVzaWMucHJvdmlkZXIgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5tdXNpYy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5tdXNpYy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMudHJhY2tzLmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhY2tsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSA9IFwiXCIsIGFydGlzdCA9IFwiXCIsIGFydHdvcmsgPSBcIlwifSBvZiBwbHVnaW5zLm11c2ljLnRyYWNrcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LDwlPSBhcnR3b3JrICU+XCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgYWx0PVwiXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPjwlPSBuYW1lICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFydGlzdFwiPjwlPSBhcnRpc3QgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY5LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyYS43NS43NSAwIDAxLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDAxLjUzLS4yMmg2LjVhLjI1LjI1IDAgMDAuMjUtLjI1di05LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0wIDEuNzVDMCAuNzg0Ljc4NCAwIDEuNzUgMGgxMi41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY5LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxM0g4LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxMyAxNC41NDNWMTNIMS43NUExLjc1IDEuNzUgMCAwMTAgMTEuMjV2LTkuNXpNOSA5YTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS01LjI1YS43NS43NSAwIDAwLTEuNSAwdjIuNWEuNzUuNzUgMCAwMDEuNSAwdi0yLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIE5vIG11c2ljIHJlY2VudGx5IGxpc3RlbmVkXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNDU2LjczNGExLjc1IDEuNzUgMCAwMTIuODI2LjUwNGwuNjEzIDEuMzI3YTMuMDgxIDMuMDgxIDAgMDAyLjA4NCAxLjcwN2wyLjQ1NC41ODRjMS4zMzIuMzE3IDEuOCAxLjk3Mi44MzIgMi45NEwxMS4wNiAxMGwzLjcyIDMuNzJhLjc1Ljc1IDAgMTEtMS4wNjEgMS4wNkwxMCAxMS4wNmwtMi4yMDQgMi4yMDVjLS45NjguOTY4LTIuNjIzLjUtMi45NC0uODMybC0uNTg0LTIuNDU0YTMuMDgxIDMuMDgxIDAgMDAtMS43MDctMi4wODRsLTEuMzI3LS42MTNhMS43NSAxLjc1IDAgMDEtLjUwNC0yLjgyNkw0LjQ1Ni43MzR6TTUuOTIgMS44NjZhLjI1LjI1IDAgMDAtLjQwNC0uMDcyTDEuNzk0IDUuNTE2YS4yNS4yNSAwIDAwLjA3Mi40MDRsMS4zMjguNjEzQTQuNTgyIDQuNTgyIDAgMDE1LjczIDkuNjNsLjU4NCAyLjQ1NGEuMjUuMjUgMCAwMC40Mi4xMmw1LjQ3LTUuNDdhLjI1LjI1IDAgMDAtLjEyLS40Mkw5LjYzIDUuNzNhNC41ODEgNC41ODEgMCAwMS0zLjA5OC0yLjUzN0w1LjkyIDEuODY2elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgUmVjZW50IGFydGljbGVzXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnBvc3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnBvc3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMDAyIDIuNzI1YS43NS43NSAwIDAxLjc5Ny0uNjk5QzguNzkgMi40MiAxMy41OCA3LjIxIDEzLjk3NCAxMy4yMDFhLjc1Ljc1IDAgMTEtMS40OTcuMDk4IDEwLjUwMiAxMC41MDIgMCAwMC05Ljc3Ni05Ljc3Ni43NS43NSAwIDAxLS43LS43OTh6TTIgMTNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem0uODQtNS45NWEuNzUuNzUgMCAwMC0uMTc5IDEuNDg5YzIuNTA5LjMgNC41IDIuMjkxIDQuOCA0LjhhLjc1Ljc1IDAgMTAxLjQ5LS4xNzhBNy4wMDMgNy4wMDMgMCAwMDIuODM4IDcuMDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBGcm9tIDwlPSBwbHVnaW5zLnBvc3RzLnNvdXJjZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cy5saXN0Lmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHt0aXRsZSwgZGF0ZX0gb2YgcGx1Z2lucy5wb3N0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHBvc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDBhLjc1Ljc1IDAgMDEuNzUuNzVWMmg1Vi43NWEuNzUuNzUgMCAwMTEuNSAwVjJoMS4yNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djEwLjVBMS43NSAxLjc1IDAgMDExMy4yNSAxNkgyLjc1QTEuNzUgMS43NSAwIDAxMSAxNC4yNVYzLjc1QzEgMi43ODQgMS43ODQgMiAyLjc1IDJINFYuNzVBLjc1Ljc1IDAgMDE0Ljc1IDB6bTAgMy41aDguNWEuMjUuMjUgMCAwMS4yNS4yNVY2aC0xMVYzLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgyem0tMi4yNSA0djYuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMC41YS4yNS4yNSAwIDAwLjI1LS4yNVY3LjVoLTExelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPjwlPSBkYXRlICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPjwlPSB0aXRsZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBObyByZWNlbnQgcG9zdHNcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLnR3ZWV0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNzMuNSAyMjIuM1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGQ9XCJNMjczLjUgMjYuM2ExMDkuNzcgMTA5Ljc3IDAgMCAxLTMyLjIgOC44IDU2LjA3IDU2LjA3IDAgMCAwIDI0LjctMzEgMTEzLjM5IDExMy4zOSAwIDAgMS0zNS43IDEzLjYgNTYuMSA1Ni4xIDAgMCAwLTk3IDM4LjQgNTQgNTQgMCAwIDAgMS41IDEyLjhBMTU5LjY4IDE1OS42OCAwIDAgMSAxOS4xIDEwLjNhNTYuMTIgNTYuMTIgMCAwIDAgMTcuNCA3NC45IDU2LjA2IDU2LjA2IDAgMCAxLTI1LjQtN3YuN2E1Ni4xMSA1Ni4xMSAwIDAgMCA0NSA1NSA1NS42NSA1NS42NSAwIDAgMS0xNC44IDIgNjIuMzkgNjIuMzkgMCAwIDEtMTAuNi0xIDU2LjI0IDU2LjI0IDAgMCAwIDUyLjQgMzkgMTEyLjg3IDExMi44NyAwIDAgMS02OS43IDI0IDExOSAxMTkgMCAwIDEtMTMuNC0uOCAxNTguODMgMTU4LjgzIDAgMCAwIDg2IDI1LjJjMTAzLjIgMCAxNTkuNi04NS41IDE1OS42LTE1OS42IDAtMi40LS4xLTQuOS0uMi03LjNhMTE0LjI1IDExNC4yNSAwIDAgMCAyOC4xLTI5LjFcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIExhdGVzdCB0d2VldHNcclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnR3ZWV0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSAhcGx1Z2lucy50d2VldHMucHJvZmlsZSA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50d2VldHMucHJvZmlsZT8udmVyaWZpZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOS41ODUuNTJhMi42NzggMi42NzggMCAwMC0zLjE3IDBsLS45MjguNjhhMS4xNzggMS4xNzggMCAwMS0uNTE4LjIxNUwzLjgzIDEuNTlhMi42NzggMi42NzggMCAwMC0yLjI0IDIuMjRsLS4xNzUgMS4xNGExLjE3OCAxLjE3OCAwIDAxLS4yMTUuNTE4bC0uNjguOTI4YTIuNjc4IDIuNjc4IDAgMDAwIDMuMTdsLjY4LjkyOGMuMTEzLjE1My4xODYuMzMuMjE1LjUxOGwuMTc1IDEuMTM4YTIuNjc4IDIuNjc4IDAgMDAyLjI0IDIuMjRsMS4xMzguMTc1Yy4xODcuMDI5LjM2NS4xMDIuNTE4LjIxNWwuOTI4LjY4YTIuNjc4IDIuNjc4IDAgMDAzLjE3IDBsLjkyOC0uNjhhMS4xNyAxLjE3IDAgMDEuNTE4LS4yMTVsMS4xMzgtLjE3NWEyLjY3OCAyLjY3OCAwIDAwMi4yNDEtMi4yNDFsLjE3NS0xLjEzOGMuMDI5LS4xODcuMTAyLS4zNjUuMjE1LS41MThsLjY4LS45MjhhMi42NzggMi42NzggMCAwMDAtMy4xN2wtLjY4LS45MjhhMS4xNzkgMS4xNzkgMCAwMS0uMjE1LS41MThMMTQuNDEgMy44M2EyLjY3OCAyLjY3OCAwIDAwLTIuMjQtMi4yNGwtMS4xMzgtLjE3NWExLjE3OSAxLjE3OSAwIDAxLS41MTgtLjIxNUw5LjU4NS41MnpNNy4zMDMgMS43MjhjLjQxNS0uMzA1Ljk4LS4zMDUgMS4zOTQgMGwuOTI4LjY4Yy4zNDguMjU2Ljc1Mi40MjMgMS4xOC40ODlsMS4xMzYuMTc0Yy41MS4wNzguOTA5LjQ3OC45ODcuOTg3bC4xNzQgMS4xMzdjLjA2Ni40MjcuMjMzLjgzMS40ODkgMS4xOGwuNjguOTI3Yy4zMDUuNDE1LjMwNS45OCAwIDEuMzk0bC0uNjguOTI4YTIuNjc4IDIuNjc4IDAgMDAtLjQ4OSAxLjE4bC0uMTc0IDEuMTM2YTEuMTc4IDEuMTc4IDAgMDEtLjk4Ny45ODdsLTEuMTM3LjE3NGEyLjY3OCAyLjY3OCAwIDAwLTEuMTguNDg5bC0uOTI3LjY4Yy0uNDE1LjMwNS0uOTguMzA1LTEuMzk0IDBsLS45MjgtLjY4YTIuNjc4IDIuNjc4IDAgMDAtMS4xOC0uNDg5bC0xLjEzNi0uMTc0YTEuMTc4IDEuMTc4IDAgMDEtLjk4Ny0uOTg3bC0uMTc0LTEuMTM3YTIuNjc4IDIuNjc4IDAgMDAtLjQ4OS0xLjE4bC0uNjgtLjkyN2ExLjE3OCAxLjE3OCAwIDAxMC0xLjM5NGwuNjgtLjkyOGMuMjU2LS4zNDguNDIzLS43NTIuNDg5LTEuMThsLjE3NC0xLjEzNmMuMDc4LS41MS40NzgtLjkwOS45ODctLjk4N2wxLjEzNy0uMTc0YTIuNjc4IDIuNjc4IDAgMDAxLjE4LS40ODlsLjkyNy0uNjh6TTExLjI4IDYuNzhhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDcgOC45NCA1Ljc4IDcuNzJhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2bDEuNzUgMS43NWEuNzUuNzUgMCAwMDEuMDYgMGwzLjc1LTMuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDIuMzdhNi41IDYuNSAwIDAwNi41IDExLjI2Ljc1Ljc1IDAgMDEuNzUgMS4yOTggOCA4IDAgMTEzLjk5NC03LjI3My43NTQuNzU0IDAgMDEuMDA2LjA5NXYxLjVhMi43NSAyLjc1IDAgMDEtNS4wNzIgMS40NzVBNCA0IDAgMTExMiA4djEuMjVhMS4yNSAxLjI1IDAgMDAyLjUgMFY3Ljg2N2E2LjUgNi41IDAgMDAtOS43NS01LjQ5NlYyLjM3ek0xMC41IDhhMi41IDIuNSAwIDEwLTUgMCAyLjUgMi41IDAgMDA1IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnR3ZWV0cy51c2VybmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAoIXBsdWdpbnMudHdlZXRzLnByb2ZpbGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA6IHR3aXR0ZXIgdXNlcm5hbWUgbm90IGZvdW5kXHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLnByb2ZpbGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLmxpc3QubGVuZ3RoKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7dGV4dCwgY3JlYXRlZF9hdH0gb2YgcGx1Z2lucy50d2VldHMubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3ZWV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlLSB0ZXh0ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+PCU9IG5ldyBEYXRlKGNyZWF0ZWRfYXQpLnRvR01UU3RyaW5nKCkgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIE5vIHJlY2VudCB0d2VldHNcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNzUgMGEuNzUuNzUgMCAwMS43NS43NVYyaDVWLjc1YS43NS43NSAwIDAxMS41IDBWMmgxLjI1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTAuNUExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjMuNzVDMSAyLjc4NCAxLjc4NCAyIDIuNzUgMkg0Vi43NUEuNzUuNzUgMCAwMTQuNzUgMHptMCAzLjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1VjZoLTExVjMuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDJ6bS0yLjI1IDR2Ni43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjcuNWgtMTF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb250cmlidXRpb25zIGNhbGVuZGFyXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhci5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5pc29jYWxlbmRhci5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgaWYgKCFwbHVnaW5zLmlzb2NhbGVuZGFyLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuOTk4IDE0LjVjMi44MzIgMCA1LTEuOTggNS00LjUgMC0xLjQ2My0uNjgtMi4xOS0xLjg3OS0zLjM4M2wtLjAzNi0uMDM3Yy0xLjAxMy0xLjAwOC0yLjMtMi4yOS0yLjgzNC00LjQzNC0uMzIyLjI1Ni0uNjMuNTc5LS44NjQuOTUzLS40MzIuNjk2LS42MjEgMS41OC0uMDQ2IDIuNzMuNDczLjk0Ny42NyAyLjI4NC0uMjc4IDMuMjMyLS42MS42MS0xLjU0NS44NC0yLjQwMy42MzNhMi43ODggMi43ODggMCAwMS0xLjQzNi0uODc0QTMuMjEgMy4yMSAwIDAwMyAxMGMwIDIuNTMgMi4xNjQgNC41IDQuOTk4IDQuNXpNOS41MzMuNzUzQzkuNDk2LjM0IDkuMTYuMDA5IDguNzcuMTQ2IDcuMDM1Ljc1IDQuMzQgMy4xODcgNS45OTcgNi41Yy4zNDQuNjg5LjI4NSAxLjIxOC4wMDMgMS41LS40MTkuNDE5LTEuNTQuNDg3LTIuMDQtLjgzMi0uMTczLS40NTQtLjY1OS0uNzYyLTEuMDM1LS40NTRDMi4wMzYgNy40NCAxLjUgOC43MDIgMS41IDEwYzAgMy41MTIgMi45OTggNiA2LjQ5OCA2czYuNS0yLjUgNi41LTZjMC0yLjEzNy0xLjEyOC0zLjI2LTIuMzEyLTQuNDM4LTEuMTktMS4xODQtMi40MzYtMi40MjUtMi42NTMtNC44MXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgc3RyZWFrIDwlPSBwbHVnaW5zLmlzb2NhbGVuZGFyLnN0cmVhay5jdXJyZW50ICU+IGRheTwlPSBzKHBsdWdpbnMuaXNvY2FsZW5kYXIuc3RyZWFrLmN1cnJlbnQpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIH48JT0gcGx1Z2lucy5pc29jYWxlbmRhci5hdmVyYWdlICU+IGNvbW1pdHMgcGVyIGRheVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmlzb2NhbGVuZGFyLnN2ZykgeyAlPlxyXG4gICAgICAgICAgICA8JS0gcGx1Z2lucy5pc29jYWxlbmRhci5zdmcgJT5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLm1ldGFkYXRhKSB7ICU+XHJcbiAgICAgICAgPGZvb3Rlcj5cclxuICAgICAgICAgIDxzcGFuPlRoZXNlIG1ldHJpY3MgPCU9ICFjb21wdXRlZC50b2tlbi5zY29wZXMuaW5jbHVkZXMoXCJyZXBvXCIpID8gXCJkb2VzIG5vdCBpbmNsdWRlIGFsbFwiIDogXCJpbmNsdWRlc1wiICU+IHByaXZhdGUgY29udHJpYnV0aW9uczwlIGlmICgoY29uZmlnLnRpbWV6b25lPy5uYW1lKSYmKCFjb25maWcudGltZXpvbmU/LmVycm9yKSkgeyAlPiwgdGltZXpvbmUgPCU9IGNvbmZpZy50aW1lem9uZS5uYW1lICU+PCUgfSAlPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPkxhc3QgdXBkYXRlZCA8JT0gbmV3IERhdGUoKS50b0dNVFN0cmluZygpICU+IHdpdGggbG93bGlnaHRlci9tZXRyaWNzQDwlPSBtZXRhLnZlcnNpb24gJT48L3NwYW4+XHJcbiAgICAgICAgPC9mb290ZXI+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2ZvcmVpZ25PYmplY3Q+XHJcbjwvc3ZnPiIsInN0eWxlIjoiLyogU1ZHIGdsb2JhbCBjb250ZXh0ICovXHJcbiAgc3ZnIHtcclxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBBcHBsZSBDb2xvciBFbW9qaSwgU2Vnb2UgVUkgRW1vamk7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcblxyXG4vKiBIZWFkZXJzICovXHJcbiAgaDEsIGgyLCBoMyB7XHJcbiAgICBtYXJnaW46IDhweCAwIDJweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBjb2xvcjogIzAzNjZkNjtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgfVxyXG4gIGgxIHN2ZywgaDIgc3ZnLCBoMyBzdmcge1xyXG4gICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gIH1cclxuICBoMSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiAgaDIge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gIH1cclxuICBoMyB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuLyogRmllbGRzICovXHJcbiAgc2VjdGlvbiA+IC5maWVsZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG4gIC5maWVsZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDJweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgfVxyXG4gIC5maWVsZCBzdmcge1xyXG4gICAgbWFyZ2luOiAwIDhweDtcclxuICAgIGZpbGw6ICM5NTlkYTU7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICB9XHJcbiAgLmZpZWxkLmVycm9yIHtcclxuICAgIGNvbG9yOiAjY2IyNDMxO1xyXG4gIH1cclxuICAuZmllbGQuZXJyb3Igc3ZnIHtcclxuICAgIGZpbGw6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogRGlzcGxheXMgKi9cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfVxyXG4gIC5yb3cgc2VjdGlvbiB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcbiAgLmNvbHVtbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5jZW50ZXIge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbC13cmFwIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcbiAgLmhvcml6b250YWwgLmZpZWxkIHtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuICAubm8td3JhcCB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAuZmlsbC13aWR0aCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4vKiBVc2VyIGF2YXRhciAqL1xyXG4gIC5hdmF0YXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogQ29tbWl0IGNhbGVuZGFyICovXHJcbiAgLmNhbGVuZGFyLmZpZWxkIHtcclxuICAgIG1hcmdpbjogNHB4IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogN3B4O1xyXG4gIH1cclxuICAuY2FsZW5kYXIgLmRheSB7XHJcbiAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNywzMSwzNSwuMDQpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XHJcbiAgfVxyXG5cclxuLyogUHJvZ3Jlc3MgYmFycyAqL1xyXG4gIHN2Zy5iYXIge1xyXG4gICAgbWFyZ2luOiA0cHggMDtcclxuICB9XHJcblxyXG4vKiBMYW5ndWFnZSAqL1xyXG4gIC5maWVsZC5sYW5ndWFnZSB7XHJcbiAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgZmxleC1ncm93OiAwO1xyXG4gIH1cclxuXHJcbiAgLmZpZWxkLmxhbmd1YWdlIHNtYWxsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4vKiBMYWJlbHMgKi9cclxuICAubGFiZWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YxRjhGRjtcclxuICAgIGNvbG9yOiAjMDM2NkQ2O1xyXG4gICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gICAgbWFyZ2luOiAycHggNXB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfVxyXG5cclxuICAubGFiZWw6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RERUVGRjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4vKiBIYWJpdHMgKi9cclxuICAuaGFiaXRzIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogMzdweDtcclxuICB9XHJcblxyXG4vKiBGb290ZXIgKi9cclxuICBmb290ZXIge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgY29sb3I6ICM2NjY2NjY7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcblxyXG4vKiBTcGVlZCB0ZXN0IGNhdGVnb3JpZXMgKi9cclxuICAuY2F0ZWdvcmllcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gIH1cclxuICAuY2F0ZWdvcmllIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuXHJcbi8qIEdhdWdlcyAqL1xyXG4gIC5nYXVnZSB7XHJcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XHJcbiAgICBmaWxsOiBub25lO1xyXG4gIH1cclxuICAuZ2F1Z2UuaGlnaCB7XHJcbiAgICBjb2xvcjogIzE4YjY2MztcclxuICB9XHJcbiAgLmdhdWdlLmF2ZXJhZ2Uge1xyXG4gICAgY29sb3I6ICNmYjhjMDA7XHJcbiAgfVxyXG4gIC5nYXVnZS5sb3cge1xyXG4gICAgY29sb3I6ICNlNTM5MzU7XHJcbiAgfVxyXG4gIC5nYXVnZS1iYXNlLCAuZ2F1Z2UtYXJjIHtcclxuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAxMDtcclxuICB9XHJcbiAgLmdhdWdlLWJhc2Uge1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IC4yO1xyXG4gIH1cclxuICAuZ2F1Z2UtYXJjIHtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcclxuICAgIGFuaW1hdGlvbi1kZWxheTogMjUwbXM7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbi1nYXVnZSAxcyBlYXNlIGZvcndhcmRzXHJcbiAgfVxyXG4gIC5nYXVnZSB0ZXh0IHtcclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHJcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB9XHJcbiAgLmdhdWdlIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZ2F1Z2Uge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAgMzI5O1xyXG4gICAgfVxyXG4gIH1cclxuICAuYXVkaXRzIHtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICB9XHJcbiAgLmF1ZGl0LnRleHQge1xyXG4gICAgbWluLXdpZHRoOiA0MnB4O1xyXG4gIH1cclxuICAuYXVkaXQgc3ZnIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgLmF1ZGl0LmhpZ2gge1xyXG4gICAgZmlsbDogIzE4YjY2MztcclxuICB9XHJcbiAgLmF1ZGl0LmF2ZXJhZ2Uge1xyXG4gICAgZmlsbDogI2ZiOGMwMDtcclxuICB9XHJcbiAgLmF1ZGl0LmxvdyB7XHJcbiAgICBmaWxsOiAjZTUzOTM1O1xyXG4gIH1cclxuXHJcbi8qIE11c2ljIHBsdWdpbiAqL1xyXG4gIC50cmFja2xpc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbi1sZWZ0OiAyOHB4O1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIC50cmFjayB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIH1cclxuICAudHJhY2sgaW1nIHtcclxuICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xyXG4gIH1cclxuICAudHJhY2sgLm5hbWUge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgfVxyXG4gIC50cmFjayAuYXJ0aXN0IHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbi8qIFBvc3RzIHBsdWdpbiAqL1xyXG4gIC5wb3N0IHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB3aWR0aDogNDAwcHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgbWF4LWhlaWdodDogNDBweDs7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyAuZGF0ZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMXB4O1xyXG4gIH1cclxuXHJcbi8qIFRvcGljcyAqL1xyXG4gIC50b3BpY3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcblxyXG4vKiBUd2VldHMgKi9cclxuICAudHdlZXQge1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgbWFyZ2luLXRvcDogNnB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjNzc3Nzc3QjI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcclxuICB9XHJcblxyXG4gIC50d2VldCAubWVudGlvbiwgLnR3ZWV0IC5saW5rLCAudHdlZXQgLmhhc2h0YWcge1xyXG4gICAgY29sb3I6ICMwMzY2ZDY7XHJcbiAgfVxyXG5cclxuICAudHdlZXQgLmRhdGUge1xyXG4gICAgbWFyZ2luOiA2cHggMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbi8qIENoYXJ0cyBhbmQgZ3JhcGhzICovXHJcbiAgLmNoYXJ0IHtcclxuICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gIH1cclxuXHJcbiAgLmNoYXJ0LWJhcnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiA4cHggMCA0cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyAuZW50cnkge1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzIC5lbnRyeSAudmFsdWUge1xyXG4gICAgZm9udC1zaXplOiA5cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyAuYmFyIHtcclxuICAgIHdpZHRoOiA3cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmcpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogc3BhY2UtYmV0d2VlbjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzLmhvcml6b250YWwgLmVudHJ5IHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIC5lbnRyeSAubmFtZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgbWluLXdpZHRoOiAzMCU7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIC5iYXIge1xyXG4gICAgaGVpZ2h0OiA3cHg7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogRmFkZSBhbmltYXRpb24gKi9cclxuICAuYWYge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uLWZhZGUgMXMgZWFzZSBmb3J3YXJkcztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZmFkZSB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuICAgIHRvIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4vKiBDYWtlIGRheSAqL1xyXG4gIC5jYWtlZGF5LCAuY2FrZWRheSBzdmcge1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tcmFpbmJvdyAxLjJzO1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVwcygxKTtcclxuICB9XHJcblxyXG4vKiBSYWluYm93IGFuaW1hdGlvbiAqL1xyXG4gIEBrZXlmcmFtZXMgYW5pbWF0aW9uLXJhaW5ib3cge1xyXG4gICAgMCUsIDEwMCV7IGNvbG9yOiAjN0YwMEZGOyBmaWxsOiAjN0YwMEZGOyB9XHJcbiAgICAxNCUgeyBjb2xvcjogI0E5MzNGRjsgZmlsbDogI0E5MzNGRjsgfVxyXG4gICAgMjkleyBjb2xvcjogIzAwN0ZGRjsgZmlsbDogIzAwN0ZGRjsgfVxyXG4gICAgNDMleyBjb2xvcjogIzAwRkY3RjsgZmlsbDogIzAwRkY3RjsgfVxyXG5cdFx0NTcleyBjb2xvcjogI0ZGRkYwMDsgZmlsbDogI0ZGRkYwMDsgfVxyXG5cdFx0NzEleyBjb2xvcjogI0ZGN0YwMDsgZmlsbDogI0ZGN0YwMDsgfVxyXG5cdFx0ODYleyBjb2xvcjogI0ZGMDAwMDsgZmlsbDogI0ZGMDAwMDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiIifSwidGVybWluYWwiOnsicXVlcnkiOiJxdWVyeSBNZXRyaWNzIHtcclxuICB1c2VyKGxvZ2luOiAkbG9naW4pIHtcclxuICAgIGRhdGFiYXNlSWRcclxuICAgIG5hbWVcclxuICAgIGxvZ2luXHJcbiAgICBjcmVhdGVkQXRcclxuICAgIGF2YXRhclVybFxyXG4gICAgd2Vic2l0ZVVybFxyXG4gICAgaXNIaXJlYWJsZVxyXG4gICAgdHdpdHRlclVzZXJuYW1lXHJcbiAgICBnaXN0cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHJlcG9zaXRvcmllcyhsYXN0OiAkcmVwb3NpdG9yaWVzLCBpc0Zvcms6IGZhbHNlLCBvd25lckFmZmlsaWF0aW9uczogT1dORVIpIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgICB0b3RhbERpc2tVc2FnZVxyXG4gICAgICBub2RlcyB7XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHdhdGNoZXJzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhcmdhemVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhbmd1YWdlcyhmaXJzdDogNCkge1xyXG4gICAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgICBzaXplXHJcbiAgICAgICAgICAgIG5vZGUge1xyXG4gICAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19vcGVuOiBpc3N1ZXMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19jbG9zZWQ6IGlzc3VlcyhzdGF0ZXM6IENMT1NFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9vcGVuOiBwdWxsUmVxdWVzdHMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByX21lcmdlZDogcHVsbFJlcXVlc3RzKHN0YXRlczogTUVSR0VEKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlbGVhc2VzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9ya0NvdW50XHJcbiAgICAgICAgbGljZW5zZUluZm8ge1xyXG4gICAgICAgICAgc3BkeElkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBwYWNrYWdlcyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHN0YXJyZWRSZXBvc2l0b3JpZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICB3YXRjaGluZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzU3BvbnNvciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzTWFpbnRhaW5lciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uIHtcclxuICAgICAgdG90YWxSZXBvc2l0b3JpZXNXaXRoQ29udHJpYnV0ZWRDb21taXRzXHJcbiAgICAgIHRvdGFsQ29tbWl0Q29udHJpYnV0aW9uc1xyXG4gICAgICByZXN0cmljdGVkQ29udHJpYnV0aW9uc0NvdW50XHJcbiAgICAgIHRvdGFsSXNzdWVDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zXHJcbiAgICB9XHJcbiAgICBjYWxlbmRhcjpjb250cmlidXRpb25zQ29sbGVjdGlvbihmcm9tOiAkY2FsZW5kYXIuZnJvbSwgdG86ICRjYWxlbmRhci50bykge1xyXG4gICAgICBjb250cmlidXRpb25DYWxlbmRhciB7XHJcbiAgICAgICAgd2Vla3Mge1xyXG4gICAgICAgICAgY29udHJpYnV0aW9uRGF5cyB7XHJcbiAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXNDb250cmlidXRlZFRvIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93ZXJzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93aW5nIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgaXNzdWVDb21tZW50cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIG9yZ2FuaXphdGlvbnMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImltYWdlIjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0ODBcIiBoZWlnaHQ9XCI8JT0gNDhcclxuICArICghIWJhc2UuaGVhZGVyKSo2MlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMTA4XHJcbiAgKyAoISFiYXNlLmFjdGl2aXR5KSoxMDhcclxuICArICghIWJhc2UuY29tbXVuaXR5KSo5NFxyXG4gICsgKCEhYmFzZS5yZXBvc2l0b3JpZXMpKjE0MlxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLnRyYWZmaWMpKSoxOFxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLmZvbGxvd3VwKSkqMTAyXHJcbiAgKyAoKCEhYmFzZS5yZXBvc2l0b3JpZXMpKighIXBsdWdpbnMubGluZXMpKSozNFxyXG4gICsgKCEhcGx1Z2lucy5wYWdlc3BlZWQpKjExMCArIChwbHVnaW5zLnBhZ2VzcGVlZD8uZGV0YWlsZWQgPz8gMCkqNioxNlxyXG4gICsgKCEhcGx1Z2lucy5sYW5ndWFnZXMpKjEyNFxyXG4gICsgKCEhcGx1Z2lucy5naXN0cykqNThcclxuICArIE1hdGgubWF4KDAsICgoKCEhYmFzZS5tZXRhZGF0YSkrKCEhYmFzZS5oZWFkZXIpKygoISFiYXNlLmFjdGl2aXR5KXx8KCEhYmFzZS5jb21tdW5pdHkpKSsoISFiYXNlLnJlcG9zaXRvcmllcykrKCEhcGx1Z2lucy5wYWdlc3BlZWQpKyghIXBsdWdpbnMubGFuZ3VhZ2VzKSsoISFwbHVnaW5zLmdpc3RzKSktMSkpKjIwXHJcbiU+XCI+XHJcbiAgPCVcclxuICAgIG1ldGEuJCA9IGA8c3BhbiBjbGFzcz1cInBzMS1wYXRoXCI+JHtgJHt1c2VyLmxvZ2lufWAudG9Mb2NhbGVMb3dlckNhc2UoKX1AbWV0cmljczwvc3Bhbj46PHNwYW4gY2xhc3M9XCJwczEtbG9jYXRpb25cIj5+PC9zcGFuPiR7Y29tcHV0ZWQudG9rZW4uc2NvcGVzLmluY2x1ZGVzKFwicmVwb1wiKSA/IFwiI1wiIDogXCIkXCJ9YFxyXG4gICAgbWV0YS5hbmltYXRpb25zID0gIW1ldGEucGxhY2Vob2xkZXIgPyB7c3RkaW46LjE2LCBzdGRvdXQ6LjI4LCBsZW5ndGg6KDIrT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoK09iamVjdC5rZXlzKHBsdWdpbnMpLmxlbmd0aCl9IDoge3N0ZGluOjAsIHN0ZG91dDowLCBsZW5ndGg6MH1cclxuICAlPlxyXG5cclxuICA8ZGVmcz48c3R5bGU+PCU9IGZvbnRzICU+PC9zdHlsZT48L2RlZnM+XHJcblxyXG4gIDxzdHlsZT5cclxuICAgIDwlPSBzdHlsZSAlPlxyXG4gICAgICAuc3RkaW4sIC5zdGRvdXQge1xyXG4gICAgICAgIGFuaW1hdGlvbi1kdXJhdGlvbjogPCU9IG1ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgLnN0ZG91dCB7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA8JT0gbWV0YS5hbmltYXRpb25zLnN0ZG91dCAlPnM7XHJcbiAgICAgIH1cclxuICAgICAgPCUgZm9yIChsZXQgaSA9IDAsIGQgPSAwOyBpIDwgbWV0YS5hbmltYXRpb25zLmxlbmd0aDsgaSsrLCBkKz1tZXRhLmFuaW1hdGlvbnMuc3RkaW4rbWV0YS5hbmltYXRpb25zLnN0ZG91dCkgeyAlPlxyXG4gICAgICAgIC5zdGRpbjpudGgtb2YtdHlwZSg8JT0gaSsxICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkICU+cztcclxuICAgICAgICB9XHJcbiAgICAgICAgLnN0ZG91dDpudGgtb2YtdHlwZSg8JT0gaSsyICU+KSB7XHJcbiAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IDwlPSBkK21ldGEuYW5pbWF0aW9ucy5zdGRpbiAlPnM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIDwlIGlmIChpID09PSBtZXRhLmFuaW1hdGlvbnMubGVuZ3RoLTEpIHsgJT5cclxuICAgICAgICAgIGZvb3RlciB7XHJcbiAgICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogPCU9IGQgJT5zO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG4gIDwvc3R5bGU+XHJcblxyXG4gIDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICA8ZGl2IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj48L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbnNcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilIA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b25cIj7ilqE8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJidXR0b24gZXhpdFwiPuKclTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbjxwcmU+PCUjIC0lPlxyXG48JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAlPlxyXG48ZGl2IGNsYXNzPVwiYmFubmVyXCI+PCUjIC0lPlxyXG5HaXRIdWIgbWV0cmljcyBnZW5lcmF0b3IgPCU9IG1ldGEudmVyc2lvbiAlPlxyXG5UaGVzZSBnZW5lcmF0ZWQgbWV0cmljcyBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk9cclxuV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGFwcGxpY2FibGUgbGF3LlxyXG5cclxuTGFzdCBnZW5lcmF0ZWQ6IDwlPSBuZXcgRGF0ZSgpLnRvR01UU3RyaW5nKCkgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IHdob2FtaTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPGI+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9iPiByZWdpc3RlcmVkPTwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24ubWF0Y2goL14uKz8gW3ltXS8pWzBdLnJlcGxhY2UoLyAvZywgXCJcIikgJT4sIHVpZD08JT0gYCR7dXNlci5kYXRhYmFzZUlkfWAuc3Vic3RyKC00KSAlPiwgZ2lkPTwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPlxyXG4gIGNvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+IDxiPjwlIGZvciAoY29uc3QgW3gsIHtjb2xvcn1dIG9mIE9iamVjdC5lbnRyaWVzKGNvbXB1dGVkLmNhbGVuZGFyKSkgeyAtJT48c3BhbiBzdHlsZT1cImNvbG9yOjwlPSBjb2xvciAlPlwiPiM8L3NwYW4+PCUgfSAlPjwvYj5cclxuICBmb2xsb3dlZCBieSA8Yj48JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPjwvYj4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpfHwoYmFzZS5jb21tdW5pdHkpKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gZ2l0IHN0YXR1czwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKGJhc2UuYWN0aXZpdHkpIHsgLSU+XHJcbjxiPlJlY2VudCBhY3Rpdml0eTwvYj5cclxuICA8Yj48JT0gYCR7Y29tcHV0ZWQuY29tbWl0c31gLnBhZFN0YXJ0KDUpICU+PC9iPiBjb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zfWAucGFkU3RhcnQoNSkgJT48L2I+IHB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gcHVsbCByZXF1ZXN0PCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWU8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICA8Yj48JT0gYCR7dXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gaXNzdWUgY29tbWVudDwlPSBzKHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50KSAlPlxyXG48JSB9IC0lPlxyXG48JSBpZiAoKGJhc2UuYWN0aXZpdHkpJiYoYmFzZS5jb21tdW5pdHkpKSB7IC0lPlxyXG5cclxuPCUgfSAtJT5cclxuPCUgaWYgKGJhc2UuY29tbXVuaXR5KSB7IC0lPlxyXG48Yj5UcmFja2VkIGFjdGl2aXR5PC9iPlxyXG4gIDxiPjwlPSBgJHt1c2VyLmZvbGxvd2luZy50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHVzZXI8JT0gcyh1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50KSAlPiBmb2xsb3dlZFxyXG4gIDxiPjwlPSBgJHt1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzcG9uc29yZWRcclxuICA8Yj48JT0gYCR7dXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPiBzdGFycmVkXHJcbiAgPGI+PCU9IGAke3VzZXIud2F0Y2hpbmcudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPiB3YXRjaGVkXHJcbjwlIH0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBscyAtbGggZ2l0aHViL3JlcG9zaXRvcmllczwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuVG90YWwgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+IC0gPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPlxyXG48JSBpZiAocGx1Z2lucy50cmFmZmljKSB7IGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgLSU+XHJcbi0tLS0gIDxiPiAgICAgPC9iPiAgdmlld3MgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG48JSB9IGVsc2UgeyAtJT5cclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgdmlld3NcclxuPCUgfX0gLSU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuc3RhcmdhemVyc31gLnBhZFN0YXJ0KDUpICU+PC9iPiAgc3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3N9YC5wYWRTdGFydCg1KSAlPjwvYj4gIGZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHdhdGNoZXI8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMpICU+XHJcbmRyLXggIDxiPjwlPSBgJHt1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbjwlIGlmIChwbHVnaW5zLmZvbGxvd3VwKSB7IGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7IC0lPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIElTU1VFUyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG5kLS0tICA8Yj4gICAgIDwvYj4gIFBVTExfUkVRVUVTVFMgPHNwYW4gY2xhc3M9XCJlcnJvclwiPig8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+KTwvc3Bhbj5cclxuPCUgfSBlbHNlIHsgLSU+XHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgSVNTVUVTXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkfWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJTilIDilIAgY2xvc2VkXHJcbmRyLXggIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgUFVMTF9SRVFVRVNUU1xyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5vcGVufWAucGFkU3RhcnQoNSkgJT48L2I+ICDilJzilIDilIAgb3BlblxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUlOKUgOKUgCBtZXJnZWRcclxuPCUgfX0gLSU+XHJcbjwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgLSU+XHJcbmRyLXggICAgICAgICBMSUNFTlNFXHJcbi1yLS0gICAgICAgICDilJTilIDilIAgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+XHJcbjwlIH0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxpbmVzKSB7IGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbjxzcGFuIGNsYXNzPVwiZGlmZiBlcnJvclwiPkBAIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yLm1lc3NhZ2UgJT4gQEA8L3NwYW4+PCUgfSBlbHNlIHsgJT5cclxuPHNwYW4gY2xhc3M9XCJkaWZmXCI+QEAgLTwlPSBwbHVnaW5zLmxpbmVzLmRlbGV0ZWQgJT4gKzwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IEBAPC9zcGFuPlxyXG48JSB9fSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmdpc3RzKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gbHMgLWxoIGdpdGh1Yi9naXN0czwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuVG90YWwgPCU9IHBsdWdpbnMuZ2lzdHMudG90YWxDb3VudCAlPiBnaXN0PCU9IHMocGx1Z2lucy5naXN0cy50b3RhbENvdW50KSAlPlxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy5naXN0cy5zdGFyZ2F6ZXJzfWAucGFkU3RhcnQoNSkgJT48L2I+ICBzdGFyZ2F6ZXI8JT0gcyhwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmdpc3RzLmZvcmtzfWAucGFkU3RhcnQoNSkgJT48L2I+ICBmb3JrPCU9IHMocGx1Z2lucy5naXN0cy5mb3JrcykgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcykgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGxvY2FsZTwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7IC0lPlxyXG48c3BhbiBjbGFzcz1cImVycm9yXCI+PCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT48L3NwYW4+PCUjIC0lPlxyXG48JSB9IGVsc2UgeyBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZX0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7IC0lPlxyXG48Yj48JT0gbmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpLnBhZEVuZCgxMikgJT48L2I+IFs8JT0gXCIjXCIucmVwZWF0KE1hdGguY2VpbCgxMDAqdmFsdWUvNSkpLnBhZEVuZCgyMCkgJT5dIDwlPSAoMTAwKnZhbHVlKS50b0ZpeGVkKDIpLnBhZEVuZCg1KSAlPiVcclxuPCUgfX0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAocGx1Z2lucy5wYWdlc3BlZWQpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBjdXJsIC08JT0gcGx1Z2lucy5wYWdlc3BlZWQuZGV0YWlsZWQgPyBcInZcIiA6IFwiXCIgJT5JIDwlPSB1c2VyLndlYnNpdGVVcmwgJT48L2Rpdj48JSMgLSU+XHJcbjxkaXYgY2xhc3M9XCJzdGRvdXRcIj48JSMgLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvcikgeyAtJT5cclxuPHNwYW4gY2xhc3M9XCJlcnJvclwiPjwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5lcnJvci5tZXNzYWdlICU+PC9zcGFuPjwlIH0gZWxzZSB7IC0lPlxyXG48Yj5Vc2VyLUFnZW50PC9iPjogR29vZ2xlIFBhZ2VTcGVlZCBBUElcclxuPGI+TG9jYXRpb248L2I+OiA8JT0gdXNlci53ZWJzaXRlVXJsICU+XHJcbjwlIGZvciAoY29uc3Qge3Njb3JlLCB0aXRsZX0gb2YgcGx1Z2lucy5wYWdlc3BlZWQuc2NvcmVzKSB7IC0lPlxyXG48Yj48JT0gYFgtJHt0aXRsZS5yZXBsYWNlKC8gL2csIFwiLVwiKX1gICU+PC9iPjogPCU9ICFOdW1iZXIuaXNOYU4oc2NvcmUpID8gTWF0aC5yb3VuZChzY29yZSoxMDApIDogXCItXCIgJT4lXHJcbjwlIH0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5kZXRhaWxlZCkgeyBmb3IgKGNvbnN0IHtuYW1lLCBzY29yZSwgc3VmZml4ID0gXCJcIiwgdGhyZXNob2xkfSBvZiBbXHJcbiAge25hbWU6XCJUaW1lIHRvIGludGVyYWN0aXZlXCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuaW50ZXJhY3RpdmUvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzMuNzg1LCA3LjNdfSxcclxuICB7bmFtZTpcIlNwZWVkIEluZGV4XCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3Muc3BlZWRJbmRleC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy4zODcsIDUuOF19LFxyXG4gIHtuYW1lOlwiVG90YWwgQmxvY2tpbmcgVGltZVwiLCBzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLnRvdGFsQmxvY2tpbmdUaW1lLzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsuMjg3LCAuNl19LFxyXG4gIHtuYW1lOlwiRmlyc3QgQ29udGVudGZ1bCBQYWludFwiLCBzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLmZpcnN0Q29udGVudGZ1bFBhaW50LzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsyLjMzNiwgNF19LFxyXG4gIHtuYW1lOlwiTGFyZ2VzdCBDb250ZW50ZnVsIFBhaW50XCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MubGFyZ2VzdENvbnRlbnRmdWxQYWludC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMi41LCA0XX0sXHJcbiAge25hbWU6XCJDdW11bGF0aXZlIExheW91dCBTaGlmdFwiLCBzY29yZTorcGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5jdW11bGF0aXZlTGF5b3V0U2hpZnQsIHRocmVzaG9sZDpbLjEsIC4yNV19XHJcbl0pIHsgLSU+XHJcbjxiPiZndDsgPCU9IG5hbWUgJT48L2I+OiA8JT0gIU51bWJlci5pc05hTihzY29yZSkgPyBzY29yZSA6IFwiLVwiICU+PCU9IHN1ZmZpeCAlPiA8JSBpZiAoTnVtYmVyLmlzTmFOKHNjb3JlKSkgeyAlPjwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzBdKSB7ICU+KG9rICspPCUgfSBlbHNlIGlmIChzY29yZSA8PSB0aHJlc2hvbGRbMV0pIHsgJT4ob2spPCUgfSBlbHNlIHsgJT4oYmFkKTwlIH0gJT5cclxuPCUgfX19IC0lPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKGJhc2UubWV0YWRhdGEpIHsgLSU+XHJcblxyXG48Zm9vdGVyPkNvbm5lY3Rpb24gcmVzZXQgYnkgPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+LjwlPSBNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSAlPi48JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT4uPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+PC9mb290ZXI+PCUjIC0lPlxyXG48JSB9IC0lPjwvcHJlPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9yZWlnbk9iamVjdD5cclxuPC9zdmc+XHJcblxyXG4iLCJzdHlsZSI6Ii8qIFNWRyBnbG9iYWwgY29udGV4dCAqL1xyXG4gIHN2ZyB7XHJcbiAgICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG5cclxuLyogVGl0bGUgYmFyICovXHJcbiAgLmhlYWRlciB7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDIwcHg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgcGFkZGluZzogMCA4cHg7XHJcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xyXG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDVweDtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjNTA0YjQ1IDAlLCMzYzNiMzcgMTAwJSk7XHJcbiAgfVxyXG5cclxuICAudGl0bGUge1xyXG4gICAgY29sb3I6ICNkNWQwY2U7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgfVxyXG5cclxuICAuYnV0dG9ucyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC5idXR0b24ge1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgICBmb250LXNpemU6IDhweDtcclxuICAgIGhlaWdodDogMTJweDtcclxuICAgIHdpZHRoOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogMTAwJTtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjN2Q3ODcxIDAlLCAjNTk1OTUzIDEwMCUpO1xyXG4gICAgdGV4dC1zaGFkb3c6IDBweCAxcHggMHB4IHJnYmEoMjU1LDI1NSwyNTUsMC4yKTtcclxuICB9XHJcblxyXG4gIC5idXR0b24uZXhpdCB7XHJcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoI2YzNzQ1OCAwJSwgI2RlNGMxMiAxMDAlKTtcclxuICB9XHJcblxyXG4vKiBUZXJtaW5hbCAqL1xyXG4gIHByZSwgLmJhbm5lciwgZm9vdGVyIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgICBjb2xvcjogI0RERERERDtcclxuICB9XHJcbiAgcHJlIHtcclxuICAgIGJhY2tncm91bmQ6ICM0MjA5MkI7XHJcbiAgICBwYWRkaW5nOiAxMnB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIH1cclxuICAuYmFubmVyLCBmb290ZXIge1xyXG4gICAgY29sb3I6ICNBRTlEQTc7XHJcbiAgfVxyXG5cclxuLyogUHJvbXB0ICovXHJcbiAgLnBzMS1wYXRoIHtcclxuICAgIGNvbG9yOiAjN0VEQTI5O1xyXG4gIH1cclxuXHJcbiAgLnBzMS1sb2NhdGlvbiB7XHJcbiAgICBjb2xvcjogIzQ4NzhjMDtcclxuICB9XHJcblxyXG4vKiBEaWZmICovXHJcbiAgLmRpZmYge1xyXG4gICAgY29sb3I6ICMzQTk2REQ7XHJcbiAgfVxyXG5cclxuLyogRXJyb3IgKi9cclxuICAuZXJyb3Ige1xyXG4gICAgY29sb3I6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogQW5pbWF0aW9ucyAqL1xyXG4gIC5zdGRpbiwgZm9vdGVyIHtcclxuICAgIHdpZHRoOiAwJTtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHN0ZGluLWFuaW1hdGlvbjtcclxuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGJvdGg7XHJcbiAgfVxyXG5cclxuICAuc3Rkb3V0IHtcclxuICAgIG1heC1oZWlnaHQ6IDAlO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBzdGRvdXQtYW5pbWF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3RkaW4tYW5pbWF0aW9uIHtcclxuICAgIDAlIHsgd2lkdGg6IDAlOyB9XHJcbiAgICAxMDAlIHsgd2lkdGg6IDEwMCU7IH1cclxuICB9XHJcblxyXG4gIEBrZXlmcmFtZXMgc3Rkb3V0LWFuaW1hdGlvbiB7XHJcbiAgICAwJSB7IG1heC1oZWlnaHQ6IDA7IH1cclxuICAgIDEwMCUgeyBtYXgtaGVpZ2h0OiAzNjBweDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiJAZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRCtrQUJJQUFBQUFjYkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFBL2lBQUFBQndBQUFBY2lUdjBNVWRFUlVZQUFENjBBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFQMVFBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUErM0FBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCdzFvL1dZMjFoY0FBQUF5QUFBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxhQUFBQUVNQUFBQnNKdUVRaFdad1oyMEFBQVBRQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUHF3QUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWdBQUFMM3dBQUZkUWcrSEVybWhsWVdRQUFBR1VBQUFBTmdBQUFEWVhtUnFzYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWZsb2JYUjRBQUFDWEFBQUFNRUFBQURZTDNRZHcyeHZZMkVBQUF1c0FBQUEwZ0FBQU5JdkJCbCtiV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSFJBZ1p1WVcxbEFBQTcvQUFBQWNRQUFBT1RBVnl1cG5CdmMzUUFBRDNBQUFBQTdBQUFBVWxrWDhUeWNISmxjQUFBQ3NRQUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW0xT3V3elJmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NVZi81UDVsQk9nRmh3QUFBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K1QvMDlZWGpBQVJWQUFDd0NwRkFjUUFBRUFBQUJvQUhBQUJRQXZBQUlBQWdBc0FGb0FqUUFBQUtZQkNnQUNBQUY0Mm1OZ1lUbkRPSUdCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobllPVmtnQUZtQmlRUUdCcm95SENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCbi9ReWlBSGphWXpuRE1KVUJDRmpPUUREalM0Yi9ERFlNbXhtTUdDWXpQbVhVWk14bTJNK3dpckVFaU84ekhHUFl3M0NIWVRkUVpES1FkWkxoS2NNNWhnT005eGs3R0dvWlZqR3NaL2dIMU1YRkVNQlFCc1FnbUFURUp4aUt3V3c1QmplR0NDQU53dk1ZcW9BOHJ2L2ZnT3B0R0pZemVqR21NYno0LzRUUmtxR2RRWldoSGdnbkFXMnBaL0FGa3ZzWW5CazIvdjhEWkxlQTVTWUQzVmJLNE1GZ0JOVHRCdFMvaVdFamt6VERPNFpwRE4vKy8vNy9tMEdFWVI4VE84TnVBQkZVUGtrQUFBQjQybU5nWUdCbWdHQVpCa1lHRVBBQjhoakJmQllHQXlETkFZUk1RRHFhb1k1aHcvLy9RSllDUXl5STlmL3gvMGYvTjBKMWdRRWpHd09jeXdqU3c4U0FDb0NTekN5c2JPd2NuRnpjUEx4OC9BS0NRc0lpb21MaUVwSlMwakt5Y3ZJS2lrcktLcXBxNmhxYVd0bzZ1bnI2Qm9aR3hpYW1adVlXbGxiV05yWjJEUFlPams3T0xxNXU3aDZlWHQ0K3ZuNytBWUZCd1NHaFllRVJrVkhSTWJGeDhRa01CRUVpQTAwQkFCVk5INWdBQUhqYXJWZHJXeHZIRlo3VkRZd0JBNUt3bTNYZFVjYWlManVTU2VzNHhGWWNzc3VpT0VwU2dYRzc2elR0TGhMdS9aTDBScS9wL2FMOG1iT2lmZXA4eTAvTGUyWldDampnUG4yZThrSG5uWmwzNWx6bnpFSkNTeElQb3pDV3N2ZEVMTzcycVBMZ1VVUzNYTG9SSjQvbDZHRkVoV2I2MGF5WUZZT0JPbkFiRFJJeGlVQnRqNFVqZ3NSdmthTkpKbzliVk5DcW9Sb3RLbW81UEM3VzZzSVBxQnJJSlBHelFpM3dzMll4b0VLd2Z5UnBYZ0VFNlpCSy9hTnhvVkRBTWRRNHZOcmcyZkZpM2ZHdlNrRGxqNnRPRld1S1JEODZqTWVyVHNFb0xHa3FlbFFQSXRaSHEwR1FFMXc1bFBSeG4wcHJqOFkzbklVZ0hJUlVDYU1HRlp2eDNqc1J5TzRva3RUdlkyb0xiTnBrdEJuSE1yTnNXSFFEVS9sSTBnYXZiekR6NDM0a0VZMVJLbW11SHlXWWtidzJ4K2cybzl1Sm04Ung3Q0phTkI4TVNPeEZKSHBNYm1Eczl1Z2FvMnU5OU1tU0dERGpTVmtjeFBFd2pjbng0amozSUpaRCtLUDh1RVZsTFdGQnFabkNwNW1nSDlHTThtbFcrY2dBdGlRdHFwaHdJeEp5bU0wYytKSVgyVjNYbXMrL1ZFekNBWlhYRzFnTTVFaU9vQ3ZiS0RjUm9kMG82YnZwWGh5cHVCRkwybm9RWWMzbHVPU210R2hHMDRYQUc0dUNUZk1zaHNwWEtCZmxwMVE0ZUV6T0FJYlF6SHFMTG1qSjFpN0NyWkk0a0h3Q2JTVXhVNUp0WSsyY0hsOVlGRUhvcnplbWhYTlJueTZrZVh1SzQ4R0VBSzRuTWh5cGxKTnFnaTFjVGdoSkYwWk9yRVJxVmJwdFZTeWNzNTJ1WTVkd1AzWHQ1S1pGYlJ3NlhwZ1h4UkJhWE5XSTExSEVsM1JXS0lRMFRMZGJ0S1JCbFpJdUJXL3dBUURJRUMzeGFBK2pKWk92WlJ5MFpJSWlFWU1CTk5OeWtNaFJJbWtaWVd2Uml1N3RSMWxwdUIxZnA0VkRkZFNpcXU3dFJyMEhkdEp0WUw1cTVtczZFeXZCd3loYldRbklTWDFhOXZqS29iVDg3QkwvTE9HSG5GWGtvdGpzUnhtSEQvNzZJMlFZYXBmV0d3cmJKdGkxNjd3Rk41bG5ZbmpTaGYxZHpKNU8xamtweklTb0tzUXJJSEZ2N0RpT3lWWmRpMHdVd3YySVZwUXZRMXBFK1Mwb2xCeEtzWWFaQkRiODU4b1ZSeXlMcXZCOW55TlJneUZZeTJxekhuM291YzhqYnF0d3R1NjE2TExPSEpaWEVIaVduOU5aa2VWek9pdXhkSFZXWm5sVlp4V1duOWZaRE10ck9wdGwrUVdkWFdEcGFUVkpCRlVTaEZ6Sk5qbnY4clZwa1Q2eHVEcGRmTTh1dGs0c3JrMFgzN2VMVWd1NjVKM25NUHY2Yitzck8zclN2d2I4azdEcmVmakhVc0UvbHRmaEg4c20vR081QnY5WWZoSCtzYndCLzFoK0NmNnhYSWQvTE50YWRremwzdFJRZXlXUjZINU9FcGpjNGphMnVYZzNOTjMwNkNZdTVndTRFMTE1VGxwVnVxbTR3eitUNGJMM1g1N2tPbHVzaEZ4NjlNSjZWbmJxWVlUdXlGNSs1VVI0enVQYzB2SkZZL21MT00xeXdzL3F4UDA5MHhhZUY2di9FdnkzZlU5dFpyZWNPdnQ2Ry9HQUEyZmJqMXVUYnJib0pkMiszR25SNW4ram9zSUhvTCtNRkluVnBtekxMdmNHaFBiK2FOUlZYVFNUQ0M4ZzJpK2VwazNIcWRjUTRUdG9ZcXQwR2JRUyttclQwTEo1NGRQRndEc2N0WldVblJIT3ZIdWFKdHYyUEtyZ051UnNTUWszbDYzZDZMZ2t5OUk5THEyVm40dDlicmx6Nk43SzdGQTdDVldDcCs5dHdtM1BQaytsSUJrcUt1TjF4WElwU0YzZ2hGdmUwM3RTbUlhSFFPMGd4d29hZHZqcG1ndU1GcHgzaGhKbG0yc0ZseGpKS0tQZ3lwODVGU2V5RVUwMm9vamZ2S1YrcWd1RjBKbkVRbUsydkpiSFFuVVFwbGVtU3pSbjFuZFVsNVZ5RnU5TlE4ak8yRWlUMkkvYXNvT1huYTNQSnlYYmxhZUNLazJNN3AvOGlMRkpQS3ZhODJ3cEx2bFhUMWdTVE5LVjhKZk8weTVQVXJ5Ri90SG1LTzdRNVNEcXUzaGNaU2R1Wnh0T0RmZjJ0Vk9yZTI3LzFLcC81dDVuN1FnMDNmR2VwWEJiMDExdkJOdTR4dURVdVZRa3RFMGIyQkVhbDdrKzEyemtVM3lwK2RaMUxsQ0Y2OVBHemJQbjcraHNEby9PWk12L1dOTGQvMWNWczAvY3h6b0tyZXBFdlRUaTNNNHVHdkFkYnhLVjF6RzY2elZVSHBmY20ya0k3aU1FZFh2dDhWbUNHMTV0MDIzYzhqZk9tZS9oT0tkV3BaZUEzOVQwTXNSYkhNVVE0Wlk3ZUlFbjBYcGJjMEhUVzRCZjFXTWhkZ0Q2QUE2RFhUMTJ6TXdlZ0psNXdKd3V3RDV6R0R4a0RvT3ZNWWZCMS9VeGVtRUFGQUU1QnNYNjJMRnpqNERzM0R2TWN4aDlnM2tHdmNzOGc3N0pQSU8reFRwRGdJUjFNa2haSjRNRDFzbGd3SnpYQVliTVlYRElIQWFQbWNQZzI4YXViYUR2R0xzWWZkZll4ZWg3eGk1RzN6ZDJNZnFCc1l2UkQ0MWRqSDVrN0dMMFk4UzRNMDNnVDh5SXRnRGZzL0Exd1BjNTZHYmtZL1JUdkxVNTUyY1dNdWZuaHVQa25GOWc4eXZUVTM5cFJtYkhrWVc4NDFjV012M1hPQ2NuL01aQ0p2eldRaWI4RHR4NzAvTitiMGFHL29HRlRQK0RoVXovSTNibWhEOVp5SVEvVzhpRXY0RDc2dlM4djVxUm9mL05RcWIvM1VLbS93TTdjOEkvTFdUQ3lFSW1mS2pIRjgwbkxsWGNjYWxRRFBIZkU5cGc3SHMwZTBqRjYvMmp5V1BkK2dUMW9BUDZBQUI0Mm1QdzNzRndJaWhpSXlOalgrUUd4cDBjREJ3TXlRVWJHZGlkdGpCb1N6TXphSUdZMncxWUZEaUUySm01SUR3VEpnMDJTVll3ajh0cEQ0OERod1BMQVFabUJtNGduOWRwRDRNREdJTDRPNEVrZzh0R0ZjYU93SWdORGgwUklINkt5MFlORUg4SEJ3TkVnTUVsVW5xak9raG9GMGNEQXlPTFEwZHlDRXdDQkxZYk1TbXhpYkF5ODJudFlQemZ1b0dsZHlNVGc4dG0xaFEyQmhjWEFIMlZMZ2NBQUhqYVkyQWdBSXdna0dVbkF3UHpuUC9mL2hVaFdBenpnSEFLd3hTV3hRd01yQXJNY3hnWS90V3c3UHovaWpXWWVkUC9WLy9TWUhwWnpSZ2ZBL0ZGQU1tRUdZZ0FBQUFBaUFDSUFJZ0FpQURpQVBBQmtBSmlBd3dENmdRZ0JHUUVxZ1VvQlhBRm5nWElCZTRHTEFaMkJzQUhQQWU0Q0JJSWhBanFDVUFKdWdvZUNtQUtwZ3JrQ3lvTGFBdnlESjROQmcxc0RkZ09KZzdBRDB3UHhoQkNFSWdRM0JGMkVjWVNSQkxBRXdvVFloUXFGS3dWUUJXWUZlNFdRaGJDRjBRWHFoZ0FHRHdZZUJqQUdPb1pHQm5lR3B3YkJodkVIQ0ljcGgyRUhnd2VHQjRrSHJnZkNCL09JSElndWlGbUloSWlraU1tSTRRa0VpUm1KTllsVmlXNEpqb213aWIwSjNvbjJpZ29LTllwMkNyd0t6d3JhQ3VvQUFCNDJyVjhCM3djMWJYM3ZWTzNhRmZhMVJaSjI3UmR2YTU2VzNmWjZ1NnliRXR5bDhGTjJJQndFemJHZ0ttMkFadGdJTlFrTkdPRFFYVDRDQ1dVSkE4ZTVGRkNQZ0lFeUV2Z3ZjU0VJbzIrYysvTTdLNktiWDd2L1Q3L3JOblptVHV6OS9UL3VlZk1JQmJkS0gzR05mRTVLQm1sb2lxMEtEcS9QTitmemdrY2J1WXh4d2dNSnd6cVJFWmc0Zjh1RGNhSTRUQ3pWb3RaaE5oRjhNR2lidGhEYlJaTFNncENsaXBMWmFRa0srUnhwNlNtcEpwTmNGZERtVjZ3NXlLYmxiVUlmcTh2VkpZYUtTLzFzcWxldGp4VUZxbElaV0ZiWGxwaXN6dHdQWVpQcTBWa1UyRXIrSDFoUFJiOFhJR0xkZm1HWC9lUkQ3WXNueG5KWkE0RjJIZmZaWHhXY3pwLzU1MTh1dG5xWTk1OWx3MVlROW83NzlTRytCeFA4SWRwUVk4bnlEOFQ5UHpnNVFkKzJQK3R5Y0FKK0JaOGhCV05acjFPT29sYmRIcXpVV1NsZGRJYWdUT1lVbkdMZERJVk1makwwVytaUDNPbmtSRTUwWUxIZFN6RElveWJtNDdiMnhkSDdRZ2gzTXRoakFNdFBORE85Q0tHOFRPdGpxZ1ZEZ0lmTU9wTFBONFpOU2NuSTVUc1RIYllMSERIcEtDZ0lid1FXU1AyKzBKaE5sUmVnODAyRnliVWh1b3dNSUo1MXNJVU02Nk1EQTh1WWl6MlBiaW1adXBVK09OT3AyV00xTm5UMCszTS84bElHMDUzK1c3eHVlaG1kQlNOTXEremIzS25VL3hJTjVxQlVBcUxkT2h6UlA0eHFIYjBLKzU2YmdnMW9UYTBPTHBnVmkyajFYbHRETXN3elNrR1BhczFhaGlFdFdpZEtWbGtzY0F4REF2eVRjSTZYUllsTVp0dGJXNUdxTG10dWEyMUJXNHlaOGEwYUVOMVpWbXBOeEQwVy8wQmI4Q3M4UkR4V29SY0xGTDV3WTVNSHhHdk43NUxQNERnQ25Vbk5TWndiM3kzRkZkNFJlNENvTzNGNk5PRXhFL21jWjVVWng3VEpQMmc3dDFCanY4NitoejUrTFJEUHRpSWVYWHZtRFFRbFg2TXNyM2VjTmg3bW15azUxSk03alJXaHozeHZkaEpYQ0Vma3Y0YTM1TzJuejVOK01laWs2Tjd1UXcrRTgxQzdhZ1QzUk4xOEN5alFSYU1OWXZicXEwY2o2dXdsczhLTVl5V0J5M0pCQzNKMDJNTlJwcE9BVFFDOHdqM0lWN0w4SjFKV0F1bXcycVpQc1N5WXE4T2kyS0FCZFVwZ1QzRWlwM251b3Bjd1BiQ1NMYWpNK3JzNkdoc1JLaWpzNk96c2IyeEhXWTMweDNNOGp1RFdRYU5DOFRod2phN2JGZXljb1ZEWWF2TjdzWldpeEdMVmtYZDRGaGM4VXJJYWJzcEZDN0FaUkdRQnJtYUVhd1dteDN1WkM0dmk0VGdIaVptbjdlN3c1ZWQ3Zk5sKzR5MTErMXVidTljZE4rRjNtRFF1Mk9CZk5pYXBuVnU2ZHd6YzNaSDE4L1hlSU4zcmMzTzhyZi9jMk5lZHQ0Q1B0UGpleWh0ZHI3ZjdmWS82M2RuYkhYOHkraDBiVnl5ZUY4emM4TG44ZmllU1Y5UVNVNSs0M2VuMnBvV0ptTjdpc3UxZHQ2aW5kR2YrenpTZ1JtMW1WbUdKUDNYSTkzenB2cnlqTWs2NmIrSWpIaFVBanArQytoNE12S2lZalFGZGFBVjBXNndaUjR6L0NCaU5ZS0dGUVlSaDVESW9iNGtMQnF3VmlOcSsvU1k1ekVJQXVPc0ZxVFJDTDFJRUxLRjFxbFRTMHA4UG9TbWRreHRuOU5ZTXFVa1dsM3BLL1lWNVdRNTBzMHA4Q1BHa0pHWXNjeE52MDloR0ZkYVlpY2FqQ203UWVGeHdBZ2ozS0RZOVRDaUFQdkhYMkZreHB6RzErNmFNMGY5enp4anowaExUeHUreVVZLzJmVWpKVlBEWWZVL2t6ZzBuSENDRzVxVGNHYlE0YkRaN2NNdjJ1QXp6Y2JXV3hLSGpyeVhPSFJQNGluaU53NEJUemNBVCt0UkkvcDcwL0ZpVU93MFBVYTRFak9vRWJQTUxMK1Y1ZGhDekhOOHMyUHlVeG80MVNsN3ppeFFhZ2FDeHlEY21lVVl0ZytjcXRpckJaWE9hdEZnanVON0JSQ0duMjkxeUQ5VmNzN3hDSWJUWFZWc2ptalJXUzVDc1dzU0pOMEpEaHFobWRPQnlEcC94QitvRG9SMHhIenNjWmNjOHZ1SUZHMTJYRjRCTGt2eGI0Sm9WMTJkcjVBSW5FaTB2Q0pFeFVxc2hvaTFBak9mM213bFZ0RzhvYUlqSnpzSEI3TXlrN0tPRWErMUxGQ3lZVDdaNlM5eUw5cjdVTi9SampYTFZzNDdzdXFkdW9LNVpSZDJTVDl5USt1U3c3dUpNU3dwTEdndGpIUVdTcWNXYjRESUZ2UmMwbjBKK2ZEMkhsbHljOWZxMjZac3Zicno0UHlSM1BPbVJlWVhiY1loSVBvejVuWG1MeEREa2xDNXpQNGtFcmk2R1JLNEVEREt6SkJvaFJlUkE2Z1g5c0NSUkhVd0pnbnBBaXpSN1hpRXFzSE1YNFFLMXU5MkJkZ0tvZkJ1N25TSlZKL2hkR2JnRjRtUWNMYjBTN2FYWDQwOHlITVM3amFIL3VCamNLOHcvTkpKK0x5dzgxR2JCV3RzdVlqNEdHSWhBdWk5bWU2Ukh3R0h3NVJGek9VVnJGR1g0dEtiREE5KzllVkRCcFBlbGFMVFgvTGVsVmYrWVlCZmJUTzcwaTNhZnVucTBWSHArbjZ0SmQxbHRnbXovNEhudnZvcW5uOTZOcG5IZVRDUHU1UjVhREdhVFgweG1VZE9mQjV1SjUySHpXeTFNSUpJQkV3TnRkeHNTbUhvSG9sQ2RtYnFINjY4OHIxTDlQSnNIdnJ5cXdlVjJmQzIwOUlEcjc0cVBmU1AyWUl5STd3WlFmakZXOVU1RVgrRTBYUDRLczRBdGxPRzVrZVRpekRpQ3NQKzlHUVdYRHNETVNJSEJKSktKSUF2QjRqRlpiVUFiRUM1UkM1VzJPTXdoL0Fna2N4bDlDd0hLTUlBZHkxREVYZWdBQUJFQmdVUXdYS0ZtNExJeTB6MWd5YUtpdTlwd0VHaWtUSTl2QXl4bU1QNWZBQWp1eWt0cUJOOG1kSlhMNlhudUROeTB2ZnZUOC9KY09la3Z5ajlaNlpQMEFYVFRIYU1BamcvaHhzcXlwRytHTkI1UGFsbVowZ28rMTI2SytpMkZwdytYV0IxQjEzcHZ5c1RRazV6cXNlckc4QnB2TTZmSmRQK0szUVY1K01Za0VOK05BZU1Ha0VRNHpCQUkzQU9lQzJ4Y29LT2VLWURSbnVRTytEM0IveWl4a0VnaE1sTGJjcnZOVkhqS3pONUtWQW85WnJJOUE5NGNCV3hHT2tWb3YzU0syUWZWM21DSERQeFdKQ09KZlBCVzZYM21iK0JWYVFnZDlRQmlnRmdEbEhsUnpIZEQ0VVlUUnJGTUNJTFAweXdTajBHdmYvQUxMNWpudDdJTE9jYzFoZHhLRFhabUN3NXMwdTRKUHhKcXBYU3lqQ2NqN2tLR1pBbjZreTBxVzV5dGcxKzM0RDBFV3BRTW1FS1BSd1A4eHdSeUd5Wkg1aXJ5SHpKSDUzdng0QS8vNGJ6NE1yMHFFMDFVT1JIcmZSdVNVSDVibU1nNDBNTkRZMk44SWZ6WEw0bnlFMmZrR2xITDB2SE9JSHZSeVpVZmtyUE1ES1FKUkFsaWR3NHAwV3gwcWlPYXVNK2FpVFVENWhRU2xpZHRvaFZCRWNBT3Z0dkVYYWtSL1Ric3lJc2N3ZDg4djF1dTBiNy9ZMHBGdklwbkpkaWtYSG4weEEvVW1oTTlxQzhhRGJCa2pKMEJsOE1VeUZFWmFOV2tqU2tlRkxjYVRZYVYyVjRUTTBUZnBLNmhmRlJrdm44aGI2KzV5Kzk5UG0rdmhjRzJ3YW1UeDlvazdmYzBGSHB5eWVla0w0NmVoVGJubmdDMjQ4ZTN2VDJ3WU52Yjl4SXRwc0lQejVFQ096eWFaaFJVVFRmQ0xBS2RBRTJMSU1CSmJBQWVEbkNpSjRZdjBFL3cvNUFoTmhjWUl3QVRhcWhWVkE3Qk0xbHZ5RWlYVTRWMFBDOXlaaHBOM3J3Z01WaWM2SFJLMVFCczB0K3BzdE9zL25NWHlTNU1vWlpLcU9uQUdSK0RYd3FST2MvNXNNY1MwUmtCQkVGRU95ekhNeU1xTlZtbUo4Y0k3T0kxSmdlTmZFSUpnd0Q3N0ZyOG5HZFVTTjhLMFFGZ1p3eXY1MmFHOEVpZ29pOUNTalJxMG9ad0o3ZkY0T0oxSTB3VHp6Y3Mvbzg2VGcrUVFJYWtEckg1MHJHVHl4dHVtakR4bDV5eUQ3N1YwdTRvWG0zYlZoei93YnAvbDBrY3IxSXFBNmw0R2VYNzJ4Y3RxRnlJemwyS0p4U1ZrTjk1T2hYN0g5VGZORVViU3pHQWk4QUdVd3pFZ0JRQ0J5UXc1Sk1oS0EyRnJnQ2FKZ1hlelZ5S0krckQyd2hkQWNDa1VqQW5xY2xvVnNtU3dWYWluOEhKMGcwaUlCWUNOaHk4a0cvSlZJSjhiMlVlZUdCNWUyenUxYjNQbm5waWxmYjNLYU16QlR6MUZ0YWQrelplK0ZzSXRxSy9nc3ZQSDhyQmNBRzQzWEh1YUdPRzFjdDNCa01IVnl6NGQ2bDA2dHRUb3NyeDFCY3RXM04ydk9Jdkh1V0x1Z05UeU5rYjdCbGFCZFR1emdFT2dnd0RRVlJGaXFQbG1aaEpPQm1FU05lZHBBYUxBaFpMUUQ1R2JZSFpPbG5nY1p3Q0VaRHBoWHhCbnhhalRNWFdVMHErckNXbGlRb1pnMHVpOG13Rkh0VDJabDNrbG5mZVJuMW0zUEo5ckRrODdsMCtGTmJTVWc2RHkvVWNFT3RJL3ZJWFAra0tpbnNlSTNNenozdWtRcjhqZXpUbjZheXVndEYwTXpvTkJGZ05TWnlZbm1CQmJ2aGVKYmJCWU5BZ0h3ZkRCZTdpWmg4QkhIUlBEaWJJV0tLb0JKL0tHQVArUUpVVFBLa1daRE01S0pTak4wblIybmlqMHU5N00yRWlnTERxZ3N1UHI1czNmTzdlbDVzODZRUUNVMDUwdFJ4Y1VQTnBqblR6eTlOOGVYNEdRdVRtYzNZdUx0b1VIaXVjczFqMjdZTnJZOVdXTjIyakZ4RFFmbVViYTF6K3FQK2dNN3R4Ly8wdTJWLzlScjRxeVR1U2NqNjgxQnR0RW9qVTRtQldrNm1pd1d6SWs0aWdTNFh1RmxYbmlzMzZJZkxIS0ZBUUtOSmwya1RJY3Nnd1hjTWRlWkFCUnFYRXJESEliaEszMHFmT0NOSEZtNThaUFdhcHdZMlBGN1pjZ2hQK1U0NnZIVkt3d1hOemYzMWRWdGF1U2REcFI0SE52N3JuZWx6bGordytmejdlMVoxWC9iYkIzSGtUZjNJdFJXOURUTTMxbGV1blQ1alhSV1YxMmRBQ3cveWNxQzVqd0V3WjRoUFNTSUFIbllCSXZkRElHQzdPYURHMXlMYmtTT2FMcDlDZ3hQT2RWTDA2RURwZm11WVYraExpQW5laEJ6U3kzN2hFcVNGMnJBamtNL2ptNldRN0N1WU80a28wbEorL0w5MnV5dk5xR2YvZkpEWXhMc1E4VmowRnVpV0JQYmdBQWhVZzZaSHAxZ0VRQWZFTVlNSU9JYnZFMm5rRU9USXdYR3E2ZWZsT1owSTVkWGtWVWRLbkxuT25JQVBicEVCVHNBKzNnbkkySHp5bklzWkp3L21yVi8yTEoyemJQUDZKN2R1ZlhMOTVxVnp1bnArdWE2K3Q3SnlaVzN0eXNySzN2clpteHNhTnMrV3Q5elFvaU5kSFlOWk9UZXRXSHZQOHVYM3JGMXhVMDdXWUVmWGtVV0g4K2RYbHM0dktwcGZXamsvWCtMTGUrdnJWMVJVcktpdjd5MG51dmI4NkpjY0N6UXJ1bWJDREFjRWN5QUNqZ0Y2ZVQ2bWEwcjRCM3JINmxvZ0VKWjFqV0EvaGhNRll2NFZlYmppek9rbDh3cFJMT201N3h5Z2NsaUgzWEdWazNWc050VTNib2hxbHZUR20zbzhYdWNPeXpvbTZ4dk1sbUlWOWw3QUpRNFM0emtWclFTSmo0YXNBRk1IWm9UWVkzUVlNNnlwRk1EUUdLK3VPZEM0dzR6OTVsYmdqUHJIYkk3RG1wSEx4MEFjbU1NVjB2c1FBTWtjM0NnbkdyYkxVWjJGdU02c2prOElndzl5TzIwV09nTit3Z3pNRTdDZk9va3JFekZnNGt5a1V4UHg0RTYwblhOeHFTaWQ0RUc5aGxoVU04RjBxSk11SE1JSTNPSE1wR0JUV1N6UVlnVzdoN0dzcHBoOXplUzFKV1dQOURCM1pDZlpBQW9QL3l2ZFprdG50VnhxYnByWmE1R2VsWjYxZU0xcHVUcThNeWt6UFQwekNlOGtPdlVyWE0zNTJMbFVGb0J1MVBYSXRTQUVrTVVpdWl6WlRialNwc2dqM1dxbThGU1lBRS9OWndhcnZvUjlkcTRhTXFUTkNSQVdxSHdZK05DbThzR2N6TVJBZDJjY2REdkRLdWdXNGtzbVdxd0dBY3hWQWRYRC83SlFiakIzalBUSTNHQzF6Q0NsV3Rxcm8vekFVL0ZVbVIvU1hzSUhhZlJiOW1YSWZjT1FNVjBjMVdWZ0JodkFCVExLRW00bzV1Y2c0aUorRjNGMzFOZ0NMY1R3dUY1d01YNE9IR0pnM0VBWWc0aHU5U1VPNjR4YXNpRHZ5U3JMaWhUbXcwK0dBbm5aMUM1bDM1T01hVllXS20vQTljd2tjR1BjMHUrN3grYk4yTC9Cd05jMXNBWW0yVFNqZlZuKzZxVzdGeE1ubW1TNCtXbFRlWGxkSGZ4eHA5dXVXYlp3ZTFmKzlVVkZMMXZTUktlM3VyRzRhVW13a3pqVjNWYUhwdXZILzNMNSt1bnFBckVTQnBXTXJ1VU9jdVZvRGxxTXVxS0xNK3lNanRGaFZrZmdGdUlobEEvcXNRWnhqSWJyUTB3UzFyR01yaytMSVdWREFvc0Flb2tpMzBrQkdCSjVzYU9wQ2FHbXhVMkw1cmJERFdlSFMwTEJnbEFnWk5DNDQwdGlvWENDSHlxeEsyRWRMTXhxc1ZFY1JtTzc0cC9LNldsMU9ZQmNaQTZVVXNkc2s1MVh5TS9tLzJYWHpNRjVVNWJaSThzYmlqc0tGaDVjc0RESEk2UW1wMXJzWEl1WTVXOWEyUFBJd0JVZjdWenkwUFlaKzhvMHJOUEFwNVhmM0hINzU5dHZ4N1lIYXhkVUJkekZpeUpaQWE3OHdIZDNiRDI1Y21yRHRHbmxxMmQyL1diL3FnYTlLS1licFg5enBPY1VIaHJZODl6YUd5WHA5c0ZuMWxoTVRMNVo1OUNsT2ZmKzg3NFhjYzJqMHRMT0E3TUtDN3F1bWxwUUttTUdTSlc0RnlITzVxTmlWQmt0UTFyd08xcDJMUkpGVGJjT2F6UytGb0ZqV0xMMEFtQUMrNGtUS2lxRTBia0V5NWtDRWIrZU1NMW14K05RWE5ncmpqc2lSMXV3UnBIMXNzd3ZpcE53YngwRmRiZVI3ZjY1a21QZUFQMStnbXdyY2ROVE5CUFpGSHdLWC9Fa1JGL2ZjRWcxMGIvL1BaYU9IQ0xiSzBiK3pMamt0ZTUyb0djbTBPTUdWUzVFZGRGcUFZdHlaQkl4SjRJckFVOEM2STVnQTBGSmMrVk1xVEEvSnlzYzlFSytoSnplUUsxV05ZRllFRmJwTUtsMHNDb2NoNlFmZHZ4ZTV2dTc1ODJJcnQreTVJRkxSbDRqazcva0VrckM2YzkrZThHRlc3ZjlGbXUzNy90UkFoVGFma052ODdhZzcrWk5mVWZteHFtUWhKN0ZTNWNQYjFqZis1YnNneTRFRERRRFltd0ptaGFORm1DQWN6UXFJSlloRUlmdkZRRm15RWxTZkIvU2VXTFkyUnhCckNXb09CVDJoNEpCRFlIY2tPUEppeEpVZFZYVU1GWjFsWVMxUkY1NjUxSjh4SExyZGkwNy83NWxpKzg4ZitXampTYklrYzJlWlI5c3ZmWEwzWHYrZXZQeWd5VytiRzdJN1pkT0VkT2R2bmxhL3p2WFh2dDJmM1dGTWV5MnUyMVRwcEpNOW5Gc3Z5VmFVNjNpVkNLanJTQ2pOT0I4YmpSTGxvbEFaY0tOa1luZjYwaUhVVFp2b0Z5a1VFRk9xeWVUaEl3UWN1RW1mOSs3OSsvSHBHekMrYzJiS2YvZisvMlRGeDN2NlRsK0VhalJkZEkvVHAyUy9ubGRuTzAvZnRiMzVxRkRiNjZYZVU3bTFneHpxMEVIbTQ3cndOdVdJNEFtRE5lZmhQVmFEZGIzZzd2UjZnVXRXQWlDSkVIVEo4OGVrY21UWlhnMTlYWkVLOG1GSWljTTBpdTFlczNnVDd5ME0ycURuUnBVWFFGYUZmU2JVb09RTlpVWjVCcVZ5VElKL1NWeEordzFLZW13SXV6WUVTNEhZT3p3SHNLUU5XdklsbDBQQjBDNkkxOWl4cE9WNVNGL2tzVGsrckx4UXlEUDl4SU56Qk9VaUhpZmxLN3BJcC9TaTJUYkphMzdERVFxODJ3aDhLd2NYU3J6ckJBc0VVSlBQOGlhNE4rMW9MV2N3SExna0RIV2RldXhUdWRySVZtaTJBMSt4aS9LNjk2a1RFblh2WC9TSlJDMmdFbmxLRkpVQUk0b2xiSXBLYzRpbWZEU2NhendtOGI1cEJnSHVTcUZGMUtNRlY5UW9DQ1I3V1UwKzJTdklEbUE5QjJoL1NWcFlBd25kb3gxU0xJdXJWRHFsclZvVG5SV0pjWWlRWFlRc0RnQ2FEaDFiVi9EMEJVQnlEcGord3lqTHUvRDRWcFVFd29HSWo0d1l4MzF0Wk9hY1VWWlhCbG9XbTJhMUtBNWF0QlRkaTNhZEg5UDEzMGJIOTd4TDJvaEQ1SnRabUR1dTl0dS9YcnYvcStQTEwraFdESHJQeEw2YXBlWHlXWmQ5ZWNZWGpwZGJDa3NQb3J0ajUvQ2FiZlVWQlJUNDVaMVlRZm93alRpczVBZWNWalByVTNTYVNDRWFMdU5Ca2FyOWJXSVBFdldVc0hrNmNvT1hEY05UYW1ycWE2cUxDOHBWT0tLTjVBY0w4cE9FSnYzaklKVXFmZkdSZHNOdERVMjB0RHlNdGt1bFl4TDQ5L2tNN2lhbnNIL3ZWVCtKaWZld3h0VWN2RVJhZDFZRVZNbVhJTXZvT0xHNkZXZ213TzZQU2c3R3VJQUtQTGRaQW5MMXdLVVlvSmFGVW85eUVWWFFaVDFZcnBVN0MwWnV6S243ckJ2dzF4R0ViWlFUWnhLWjJZWlJSUzYzalIraGpIRncrZ0MwTHZMWVM1QnNqcGpKMnVEelNScUFISWVUSndaSWtrcEtYK1FvQTZEL2Y1QTJCK2ZHRkVocGI1Z1VzeUlBcC9ZOUxnK21NaHJiN3pVUHhSTklWbzEvK0RlQzZYNzZld2VsV2MzVXZMd294MHpVek94aTlyS2QwMWJCNWpqY2ZzZ3VuSTN6SE1lc1k4NW1JT1pNR1Q5REFPT3cxeWZYdEVhUTVLaU5Rekp5QVNzTENuQlpSMHRUYk5uVFlzQ1F3TlprY3JpZ0RHdU1sakdhK1MvTFZieklqWGtBaHlteUMwWm4xT0hZb2lGVWxvbkxkT2s3RzMxRkRvNWIwcTQxRWtJbmJ0NlZyclBIcktuelM3SWFYVzc2VktWdERnaDlLeVExZXFVckdUVGxmV2M4L0NxckZWTnVnV3VSdkwxUU1taXV2bGVYOER0Y2tudlRLSms4L0NEWTNsRzRsTUFsWUNiaGJRRU1QNGdvSHNrZEVNT0lzZ1JOTDd1QnVOOEVEejhwb0FDQVJUamlQdkZDZFF6SDhCVS94dC9MUzk4eUJIalRrb1prNk1xSFo1TkJYckJSSjhIWG9CN0NPWVhKZlpmNjdHekhLTG9pMVNGQmpXWXlGT3ZPNE1YaUtMNnFuSWl6QUN4a0tTNE1GUEhTVW92cjkyRTllTlJaNnhCZ3piandDZnR3aWpKS0kvYit5YmJHNGJjUUNEWDhLWjFVL3hvZVhveCtYZzd6U244OFNOOTBkc1RyS3QwNUdWQ01sTTkvT1pZRWFXWVJtNW5lcjJFOXBtSzNaV2gzbE81QmxLc1VESTJCK2d1a1JENGQxbEVESU43aVdNQTAzTkVQUlBQVWxUZ2I1R05zek5xb3NXelVvSURJZ0YvUUFrRE1STU5uekd3VVViZ1V0TVlSYTRLaHNvOEk5OXoxOFRSOTdRV3N2MlR6YUhCNzNNRGlibzZySE5rVnJDM0Q3ODZsbXFqY2ZnNDh5a1ZPNE1XQTkxYi96L1VTVmptNjcxN3Y3NzFWcnJkZUY4WEJDeDV5dzNkSW4zNStPUFNsMGRKQUNMbzhyQWNuL3JmdnZiYWQvcFZqTGtZWk9GRk9hZ3NXZ0xRQzJFQnJSVko0UjN3LzBUUG5KTVY4TUZvRC9IT0lhMWFYakRpM0RQN2lWZ0N3Rlk4dTNMbHMvdisrZzExMUg5SXNCai9YOTg5Y1BEUVZlOXlkeTEvWU11V1h5NlQzaHZMeDVHYmRtMjVnSUNleGRJM2xJZFZhRFlhaXFhV1lDVGFBQklXWXNpK21uV1l3VTFOeHdPZ1NtRmlTU3dtV1M1QkVleHFrcVFKdlZxNjVnN1FTQzIxT1pxT2gyQjRFTEFtd2lKa3dHZStUQU02bUlONGxyOTg0bURFOGd6Yk4yWndaMmZVWGwyTlVQWHM2c2FwVVpod1pYRXczKzhQNmFtRFVRUWFGdVhpcnBKZjJCSnlZK3ArNDFYZXM0cmVtWFpwUjF0bVZlNk1jRlpMcmxhWDdFa3kyYXJYbG1iVUJEV1JHVm5uYnhNMVhuK0c5dEZiSG9heG0rN3Q2cnAzazd6bGhtNlEvbm5paEhUNkJtWi9wa2Fibk9FUjBpd3VXMFpLYmtBak1ucGRNVnZnU3pmcTM2akcvdCtld0VrM0hGNy82cFZYdnRyWFI3YnJZemtLaVUyMWFEcHFpTmFDazlLQUg5UEFHUTNUcDZWQVZFZHJCRHpMcUIxMU5EdWVQcldoRHE2cUpucVVIYW5YeHlzNnREdkpsaGlPUW1vOE9xdVNaY282SnB4Y2R2alN5cUFueitGTVZzSlBZKzI4c0MzVEhjeHd6Nis1Z2pwcWFXTkMzdm5EVjY5ajR4VTcvcDI3YS82UjFmMjN1V3pGMlIwMWRVNGFkQnFhOHhxbnpnN2s1RXI3eG1ua0Y2LzA5TW0rL0RhdzYyemFkOWNSYloyRnNlREZERS9pTXhaNmdZMVU0OEJ4eGZaSlZZRUY3NVhkZ2tpSm5PNVN4MDU3N2txSzhuTkRBWS9MSDlUU1ZUT2xxNHNHWTlLZElnZnIrUEtMVmFtZ1J4SnJYeks3MUFZdkJkV3lmd0JVR3pJV1BiUnA0MEJPMkwrOGJlSHE0bFZiVmp4MythcjdHK1NPcnR6azdKTjdCNjlzcUEwdGFaMjdxYkM5YytVald4YmZYUzFqM00vOTdveXU3alVMc3lzdFpudXl5VzdKUHJSejNiSEZzMmUyRW8rUDgvenVuSzA3Tm5ZMXRHV1lyQ2twVG10Zys2cTFSenFtVjlmSitTeEdsNEN1ekFWZHlVYVJhTEdBbFE0ZXNsNmlGcExpUHAwRzVXd1U5cHRvMnFKVWttTGRBcE1nM1RnYnZGd1p6VktrMC85SkhjMUJzdjFQNmJRY3Fka2xORDNaVHlkZGxnZ01wZGZwc1FFMVJxdHhLcC8yTjlEbEhiWWJoRWdMSnFTZkxBWUs4MUV1b01JSS9NVktYaW9zTEpzQWwrUjFzYkd4cHY2RFYxLzlvRjRPS0JRVzdUbHdZTS9teEFBenN2SDNiNzMxZSthZ090MlJQVWN2di93b3MwdkIxVHFZSzFtZkNwTzV1a21OdjVsWFpneHBPWjJ4T3Rrd0N2cm9YQk9namdJVThMaTVhdVBRN2g2WVM0dDAxRkNhbDF1YUpOM2FUT2QySWRsZWcwdHcyU3I2dlZVSmhpbCt0OGZIZnFQT2RmaHFkcXM4ejlGdllaN3YwdnBpNytPNUFRT0xCUkw4MCtYZ3o4SjhPUkxmSWY5cWdjUXUyTUtvd2Q4TmtZblVUd2ZIalZJR3lMRS9na29DUkF4all6L3RiNklOeHFUTGFSeUZEcXgwSk1jSUhTSXc1eW8rTzJ1dVplZ3A2N3h3TnJlUFloNU04ZXJCVlU4YnF6UDl3bFByZG93Si95a0IxeFJteHNoVFU5eitCTG8vWnBvTExaYVJCMW12alB3d0tvRzUzMEx6dm1pMHJqbzdUZVNJcUhSYUVZalNkQ2ZwR1hrcFVZWjgvTmpFcjZvaUFvS2ovdzF4MEtjZEQrN1k4UWUwZUFMUlk1SytLZExyZUVsMUhPVnNHSlYrbkVlLzBxN2NlcnhNZW5WR25BV2RILzJ4bG40clVtQjZxK1NKNVg4YnBCZ2d4My9HeDJQZy9DVmNHOHU3YW9FSDF3TVBTbEJGTkFJc1lBa0xSQ0NhNUZ3ZzEwblN3UkpVcEpLZUlObUowZUFzbEJLRU8xMjYreFBxRXU2bDdjYlN2VE5sdGFWOWVqOE1UMGtrYStUMzBxMHhVbFl4aFRGUzF1S2pjUngvSDlEaVYzUElTUm8wMUJ3eTNxQ2g1SkRXTXI5VnpTRkZQQ0hUaUZWYlpZL0dqcmgwSTMyTVJlbklZSHd1STNOSTBpbEYxeitSR2FjYmg5dXhnZVliRDVPWjJxenNBOTlUaDFhbjlCdk5rVTZ5YS9pbHlFNXliNUlSa2Y1dlR1N3Y1K0w5L1REV2pteUJzZ2dwQVhNeC9wcGliQ1dwT0R1YjZBZE4yekJWR21rSXozcUc5Rmg3Z29JM1NGdXVmN2lJOGdpdmdkL2RRMzgzS3hva3Y4Y0F0Rm9iYjgyS3RWRFprUldTTUtYeWJKbzAxVjhkLzlsWjBwRDg4L3hTVC9EN2orWGY1SzhrVzFrMlgrQnYyVThoTHJ0UTFpUENxdWxSbHhFU0NFanlnV3pFN0NOVnN3dGhuQXM1dytrY2hOcEhCTUF3a0FiUU9wVWc1MDFLMTZMU1o4SHNjZXR3UkhEYXpQWlVsL0MzdndtdVZMdlo1aFJ3Uk9kMmNrUG0xSkZIZEhxVFF4UU5TZmhQVW1hU1FSUWRKa2pqMmxMTk1KL1JUNlVkM0JlakhES2dURG9mNjNnV0JBT01NZzl1YkYzdUk3MCs2Y2VjSk5oeTd3NW41T1Jra0QvSzJ5ck95T2J5KzVFSnBkTjdHcEhhM3BWbVVXK0dsTHBqTUZaeFkzUFRiR2xHczNTVnplMzFwWnJ4VW01amFyb2pYZmVCSWNNVnpqYU15dXZQKzBuOFkwK2dBbFNOUG0wNjdnSW5uZXpFR3JhaUhOQmRDc3lhYlhhTU9TTENFYVVMT0J2eEhPa1hHVVFzb0dMRWF2b1E2ZDhsaURDM1JTUjA5ekl5RkhUSWR5NDk5d1ZBcnAvdXFrMFpqbWp4MmE1Q3NZc0E4S3ZYRUZoZVdJaFFZWFZoVlZrcDBKYnZEd1FEa1loZVhmcFBoSjJ4bmdKZ0dpM3FDYkZ1TUtYNzEwYVdGQWtRRHowOTFVL1VNVHBsbVhIdWMrZXQvdG5pVDA3ZWZzT0dnYVk3WjV1TVhwcytPUCtGM3VmM3JlNTY1WTdwdDdheEozNXhqOVRmUnR6SWxJYkcxaG1YZGQxMmMrbUMzcTZjb0xZb0xjV2ZtbGNvY1cwTFozZmNzOEZtbDJVUkJGbTA4Sm5nT3NyUUo2ZFNJRFVSMWF6Wmo5UmNMZEJDT3FCcGFwUGJJdEQwVWcyZ2NqTmcvcG1IeXM1V3VRcXBGNUVHN1Z3WWp6aGdkTjlQdUNTYVBkbG9GQnNNVVYwZDJ3bWlzSVZDQ0lYS1FwR0NQT0lWd2ZwRDRPRGxGdEV4SFVPS1JNWW03ZU5iYlBBMDE2VlA3M2hwOCthWGRxeTR0OEhsdTUydVBkRlYvR2R3K29HMnRnT2RuWVBUcGcxMjhwbUFBSXZ2MmZiQjRjTWZiRnM4dDEzMjdGd0s5ZnRTKzVGMTY0NjBMeml5Y3VXUkJjUXVkd1B2WFdBSFo2MHY1U2JVbDNMLzEvV2xjY0Q5WDNRNU9ycTdzK2ZJd281RFBVc2ZuR1UxdTlLVE05dmY3Ny91ZzRzditlQ2F6aHNqdm16MmhMb1FYYmM4c3ZDV250NmpDNnZLVTdMVDdYNTc3ZlJkSDE1MTFZZTdwdFRXRWpUT1VKb094ZlRKbWN5Z00rb1RlUktGSlJJZmE3U1Q2VlBpMEc1cWVVS2l1U2JxRTh0emEzL0NKWW8ralJ1TllvTkJuK0tXUFVHZmZLRmd4Sy9xVTZ5TlAxU0h4OVNzejZoUDdHY3Uya2tIZXRSdzd3cFpzWjYrbEs1WWZDKzVxQ1oxVXEwaSt2VGpBekpDYUorN1dOYXJlL0FCV1o5a1RaSzFpdkQrSVBCK0d1aFRKa0J4eUpuVjFVbkV3MGtlMGI1QXJwZXN3T1MyMEo0RlJKL044a0pVODRhOW9ZQWZMdlNFL1Q1SWlqSkl6bXdua2VLTUttVEVvcGVRZ3Q3Y3FBSGtrQ2ZlZGVQU1I2ZWJqSDZiTnEvbDM5YmYvTzdtUy81d1lQdlAwNW1WMXB2M3NDZTIvWGEvejNuajBjS3d0c3hxeXJLRmk3YStmOU4xSHc3Y3NIUFRCUU5LRHl1M2hBK2lVblRSWTREUnRHcWJjYmI2UUlZR015SnA3MlFod0dOdHJ3NXJ0UUVRS2RFVEpELzJFUTJyWStFazNGS0wrK0lYSlk2a2oyekFMNVVvRFpGK201N0FYclVIUGd6KzJJWGprT1FNSzN2VWdPNjlySWcxQnZTRzNSdC9nNWRRdUhLdi9FbWFXMTIrbCtuaTVzdEQ5L0hCVW5PUlBybUtMLzZQalZSNEw2bXdqNkg0ZGZzOVE3SS8zaTJ0NFE2QkRBdFJBOVpGOVVFR0NFaWp5L0t5RWVVaVVGbWU1UVoxR3RKbzNLc1ZHTm9zSllycXN5bEtiMkUrdFlzQXJhQW1YcUlHTWZuNmJuUzJxNGxWUmRTcmtZaDRWdVQ3em55WGhHc2hnSTYvTExhR1JiVnY0alhFek94RlJRZ1ZOUlRWVjViVFZ1T0FQUkFva3lPb1hWbE9WWExkU1ZwejY5U25hQ1pwWExzaDdyWlhQNysvNTZVRllZMDVyTmUzUHRCMjFkVTdYcEF0c0MzQjhOZ1RNZTg5L05aRjl5L3hlb3pobExRS3pwbTV0LysxV3pmOTd1cXJmN2ZwY05zMVhWM1h0TTI1cHFmbm1qbEVoOEY5Y1B2Qjk5V2dEVVNIT1ZXSEEwaWowWGJMR3F1MkgrYU9YMzkzUkgxRWJUVklTN0hHNUlOa3phMUJWZkpDZENRUTFDczFWNlZUZEVMaUVwR2ZQanJqK2pUdWRVMjVmMlhYNVkxejQ0blowcm50Q3c0dFhoby9NSmZ1bjZUUnpkaTd0dTN3U3NrWlMySCt2WFBkaWdmV1M1K29CK1JvaDBaSHFVM1A1dWVsK05CYWhGSVl0SWFEeWNQeFo2VTE3SDU2ZkRWOTBuUU5lcEhpNm1rSy94clF0cWkyTGkvWnlHRlI1V0VRMUZQb0JxOHNCd1JOTi9BMDJLTFhjUXhwVStzbXo3L1FxcitmdENOcEJMN3ZMS1BrMm5VRHFxK3RqaEFIQUlsOWhGUTdBbVBUWGRGNjVrVjlxMm5pa2tZcHR6N0dzY1lmVDgyT045TnMya3UyNzROWDJUa3JuaGpXU08vajl1cFlaei9PdWVPcXNUejBCSWUvd08yeC9IQkVrdk1lOUFqd3FRSDQ1RUN6Wk9iWXdaTnozZVJabjBBTEV3dDRCRFZaNFNBcDViTnJFNC9MandNNVVEcWhYWDRjeUhyR0tpaHpwd3ZUQkhiNEcvblpHT2xyK3JrdU1UakZ4RTd5a1dHWTMrZmd3OXJSS2VwRFRqVk9aY0JOTkR2b2pnYXJXTjZqSVE5TGFIdHBRU3JZWWtnU2VZNWhVTGRBbG5UbE5YVGlnWExvTUYwdmFVTEliWkd2NlVhVFh4RU5rNFZnZFN5MXU4bEhnck5KZzhtMm83YW0yVE9uTjlRU2d3cVMvMFpWRVNnc0hHYy9reDJiVEQxYzhvUG85bkxGS0xuWGdHTTMrbHo1SllYdGhmUVJwT3VWTHhHcUpaOVNLNk1tQ0tOeUw1NDVmWTI1ODVxYVpSWDFpbm93N1RObUxQclpTdW01U2I5Q0ZMbGEzbHU1dkh0cDUyTTFBNHRIUHBGMWhmaWtHMEFXTmVodXlzM0hLc2thUXJPRGZJb3hTVGhKaDdTbVY2ZGxpTDJNNnpoVHhCQWlZK1RBU3hJbkdDOWIxL2pSNE83aTQxRE1DTWNONjFSZFdYVkU5V1hVbGYxUGZKakNiN2JrSEY2TUF2YVRQdGZVUjlhd0o4N3V4RlIrWHJ6bWZEa3VYd2JZcWhINE9LSEdsbnV1R3R2Wm45aGx2djV3NTg0UHI3eVNibnNQdGJjZjZwVzM3SWtkSHgwNDhORU9lWHQ0d2RFVks0NHVrTGMwYjRPY3Z3WG1rNDJxMEdPblFscEc1RlNjRFlrT1F4NVYxWktVSVJnclNtWEgxNzdDc2VoZVNNY21SSE1GSlozeHNtamVtRUIranVFa3BPZmtJSlJUbFZOWlVnU1R6U0xTOXNtMUtwVXg0WE1KZG54dEtsMEJ6QS9FeS8xckV2RDB5b1NFRElDbmpKbWxiZU45SytEcHcyTXpNaGwvN2VEdWkvSFZRK0JYSWw4bmdWelo4ZXBDbUUzazY5bXgxcmpMeHZIMUhNTW44dFZIQXRta1VHazhjMzhTU0ZvVForMERhdXA3Qm56MFkyeFpHaDlRTXQvRFl6TVQ0b2ZJTTB0emdhOUY2TUtvRGxSRXlDT0xaUXBudlNpaFpxUFVzNEpqaWpZT0FMNkpkUjM2SEZkdUN4M2ZqY2FQN295Q0hjSlBGY3EreGFhVm44aU93M3NqamdQOFNaV09LV1UvbjU2bHRRYVREY1dWUzA1dHd4MFUxTk8xK1dPN3lmWU5uNnZvaWx1YTJCTlphU0Z6V3BYR3NmTjMyMTRjN3o1K3MvaXlScG4raytBL01vRCtabExMYTV5a2xwZWJVTXZMUFVzdHJ4azF6WnhlV3Z3L3FlWEZYOUp3dG1MZWIraUxHWEx2M3RXN0lUdkx1MmhHNzBWbDdaMWREMTl5L3QxMXNkY3pCSDV4OWRZZGVkbitycG5MZDVYUjF6VDAvcnhhWGlnZ2IyV1lPMjFHZldhV1FaOGs2bE5UWFJ1WExOay9wN1l1L2xxR25zWHpaL3J5alBwa1VXZXp5aTlucUk3a2svVURqTFlSUDhzTm9YeTY3ZzFrWTVZWkZPaXpiU3g5dGsxcDBFdFlCY2xIZVFGL21Ed0VyRmJ6NGc4QjJ5WTAySmJGQkUwV252RS9mUGhuVk5kWHQ2MllkbmlHMGVSTE0zaGJuNS8zcTJPdms4T3ZLMjE0dEM5SU90eS92anhmVjVDUm1ta3BibmprT0I2Z1dwK24xaUViWWU0WHM3ZENabm50WThrMHpNcnFuVUZXc2poUzRlTzRZQXMvYnIyRHVJdkF4Qkh5TWdRL1pzM0NOMlpZd21LRi9FUzBzZ3laUXBQYllobk94SGd5eVNyRkdEeXJkTXJIanJHL2lhMVJRTHhVRTRSZitsdzByRjVMdm56RzN1b0pqaFFSSnJpREEydk9oNUNLUDVVVmYrUXZOS0JpZDZ3K1JkNnZBYnc1VXgweCtMK3RJKzZFQ1RWSXp4Z3Jpb3ZLa3FYbjYrUHRYNFBZaEMyTDVMNUNscFplUnV6a1ZTSE1sN0dhNTFiWllOVTZJc3l6SEZWSEsvSkRSbHBJbkxSR0dDc2l5bjJ3L2dETU9UU3hRS2l1OWs5V0lxU3JST05LaEdtLzFvVkR1Y1ZKUjMrV1ZKb2JDbWxmTU5PWmg4aDIrL1gzaVNGUGcvSGV3NnZwUWJOS1RzRGw4ZUVUVXF2UDR3b2trUFVrL3AwMUkwdktabWJHYW1RellmNlhBMzFucVJNRy81ZDFRdjA1NjRUMmluRjF3dmZ3bEZKcWhiOGcyNTV2dm02THQ0YVY0Qm5TKzdQaVpjTG1kLzY5UXE2bnlkUkxyMGdQeGlJUUkwbXgvUVc0UXQzLy9QT1lIa3FycVI0V2tGNkJvSVUyaVFtS1dGVzdJdDFob0kzNVZMUUZLTTlIQVdwaUNSNGJHZnE4WEVVOVUzRU9uYXlYMWs3WjhiTk4vbEJaejVidUdkTEJoa1RGek1DR3prVEZISDV5MzVGWkhBNFdUbUg1OHIwSG1MZGlvbnlMS1luSjhBUk1OZ05vQ0tJYjVINXZ2MXdnN0k4LzUwM0xnOEV4ejNuTHoyOEc0a1BIbEJLRDUzNG1mT0s0VHZtaDhFbktqaE1mQ1IvN2tPYy9YTWtqdCtIUGxMS2pqWlFkVjBwVlN0bnhEY0lNbDJsaytRTTBaQkFPdUpPWnUyNGszLzVENGNFajBrbjJqL3hTU0NEV1JYWGxrT1FhNkxQZmNqN3NpRDN5VFJaQW1kVjBCWjNNbnJ6SUkrb2xyNVJBSEkvNjRzTkE1T1RCTXVKRk1kTVJ5MDJLQzNPek05MFphUUV4OW9RYllBY1B0Z21pbFVUWFpDeVhhbXhLVFRYU2dPVm53dVUza3NGK0lhYTc3QXNnNWZVRHhSekxiOXE5YXd2VzRMM1VoYjcyTWFObkxyK2U3QjY0RFBQTVI2L3pTMG1oc1hyN3FzYUxqMFYwd2VzMjJ2UURodlRkVzhuUlJ4LzFtN2M3azdac0lWOTJiYlhvNXJnTlEyVGhFRE1PNlJqekNOK1BES2pncDcyZklmNGlDR3RDaXd0em5VOE84bnkvMi8vOWc0VGp3ancxdnYxZE9zazVLTTlYUjNWNWNEOHJoZ0FkNHprTVljbExwK1FISjVINlJwNGNUdVU1cmQ3RWh3RmU2MFR5bTg1WXd2TmttZWZsa1VCMklGdVVWeVhHY1JqMlBUakc3RVFPazJJWk1MOUFOVDc4M1VjTWp5ODdRSFB0eTRISkg5TW5ncTdkQzZ6ZnNtdjNKcDdsaWdmV2swUDgwcUVoZzN1T3pySjFGMkhybGkxSnp1MW0vNk9Qa2k5YmQ2Y2JCdlMyamRjRmRaRmpGemV1Mmw0dFY0RXh1Z2sveUpVekg0UHVOOVA2NkJRRHNEY1RsSWxnT3A0ODd6Y0lKc1NBVGc2U1J5dFFKMkVBcVNnU0JoQ1NFWDE5U1JBRmZJR3dqM1o5SzNWaStqVEJHTWd5cG1PUEZBanhoNnVqMVkzaEJUTlRiRFpycGxoNFJXdjFxcW1WYzBJSkI1aVBjN0o4bWZOVFRXbE9vNzY1S3lmTDY0MTlJWG5PdDh5VmJFanBHYTJnRk9SeHBBTEZBdUFpZlllSTZWVHlXZ1oxVEpMVzBzbWVJN1ZkY21sVDA2WE56WFFibmhhTy9lZUdZb2RodXoveEZMQ0VHLzF4MU1mOUhuVFpoUXBSSytwQW0rajhWbm1BdysyWTAwN0ZnbzV0dG1vWlpnNTVDOHcrWURhL0QzRmFuWmJURFpJbkRwRVdvN1ZJeTRuYVRzQ2dyRTZEQlZFbjlDR3RWbHlCUkswNHQ2MnRxS2l0bzYyanFMV29aVTZqM3g5S1M4L3orNHJKMGcrbGl6aXRzZ2dneEhpYnBOeEZRVGFCTVMvb0lvSXlLeTlTVUo5N29ScFlvYnlMMEZUcVQyVVprOFVxVGN2SitkVTF4aVI3c3NIK285YVFiTG5UYW1HYWpjUHJSYTNkYWpTeU41SFBqUmFMcFN2RDdYWklMMXZTQlEydVMvWllYZmxkYi9BZk1TK2xsMFh3RzNORXB6WFpvdC9ObTAwanYwNTMxRnRTTlNPLzVad1dzMW5MRkhQT0VXZWEwNWwrRk81aU9lck5URTdWNDRGVXM4TWlYWTExMHJlZ2lNRGJMTzUxaGJmTDBDamxiTElISkQ4ZGN5SWpjMVZHclRWeDVtcmduRjdrOU9SUktwMU92em1CeVVqa3RHSWYwZ21DYmhIUzZZUWVKT2lFZGdYVzFwN2hGcUpldCt2Yzk0aE9UUlN2cUJFNXpTRFM2RVdOZnRkUHZna3AzUlVWRlMwcld0cEpFdGJzY2xuU2h2K3hwQ0drMFVzcWdzbzdUb1N4THptaGppcFpEb0EvV2Vvck1ySWxmMVlHdGhYbFRxMFB6SFNCQW1TWWluZlhiZG85ZGVZcjJKRGhubHo0bThjSmYvZ1dxM1ZuZm0ybS9jdXM2ZG5GVmFia2hUYXIxWFpKbXQ0YjJMb2l1cjdxbmlsV0s5Z1hzbEQ3dWdDY2JRczZIMjFDMzFFdHlDakFBZzhPZ0pzQ1NWY0tCTTVOV0d0Y0RZd1d3TU9uZ2pSYjFSZXJhTEQ2WmhXdFVXZlU2Z1pKaHdZdmlIdzhvSUlETVRLb3o0U04yaVJqWnpMV0diQStTYWNuQjR4SksxQ1NNV211SXpvLzlxWVdEWUFORFFFYjVMYTdKcjJ0NWlmZXRqTWFhQVhjdG5GRDYvbXQ1NjNzWGI2MGM5RzhqbGt6Nit0SWJBa0VTaU1CZTQ0WmtGek1nZEhuUzRVenZPaGw4dmU4RUVHakNlL3FNeWRrV1pQNEFyWTBGUy9kVkx1OG91Nkt5K3AyRktlS1JvZW96ZW5KYjVyYk5pY3ZZRFo3WnpiT21US3Rrc3ErNk9JYVZrY1ZKSzRveHZ3dXl5VGVZZlFQUEg5QlNWZjFxdExVZWZVcnR6Z2RPcHNoTmN6YTBpdEtLdklqYWE2aXN1S1N0RElyL0Z1YW9YVzVSdjdzTkk5Ukcra1ljUStUZUExcEdkYkpjWi9XYXdCdlpoTE1yTWNNZlJSZjBRQzE4QkNNTFlQbTAzZnFaQ0szUDJBUHFzV0Z5UmdjYjc1YTd6cjJxM25QdDNvTmFUNlRjY2JoYVN2YUpCa1dTd1FKRG04Ni9raERzU1V6TmFOQWwxKyt2cCtOeXJrYUkzSnR6Sy81ZVFCbHdsU0RsZmRuZFNhOGt5NEI2TWpoZGN6VDhzZXlzaW9xNEkrZjV3cnNDYmpvUnFsRnp3WjZIU2hNRjdOVkNoTkxLT2V1bjhTZTUzbGdYUDFraEg3TWp5ZlA4UlVqdU92L0EyQStoZng0Mm8yU1VXdmJNQlNGajl5MFl3OE5nMjB2ZlprZTAwR3RwRjJoTkt3UUFuMVpvYzFvQzN0TU0yRzdKSkVqeVErRi9xbjFSNHl4dC8yZ3dZNVVyVXZET21aajY3dlg5eHhkU3dMd0FsOGhjSDk5eHZmRUFwdmlRK0lNejBTVmVBMXZ4SmZFTGJ3V1B4T3ZZek5UaVRmd0tpc1N0N0dWM1ZFbFdzOFpmWXNPZ1FXMmhFcWNvUzArSlY3RGtWZ2tidUd0K0pGNG5UNHZFMitnazcxUDNNYTc3QlpER05TNGdVV0ZBaVU4SkhiUlJRLzdwSE5tTk1kUTFjUWF6YmZFV2VSWi9CYlk0Sm84aWVvQkt6MTFobm5IdUJOZFBXZHhPSVRpWFZBYktocGNJYWZLMEVsaHdkZ3dyem5PbDZJeGxVR3JWcnI0MDhNMlhUQTA5WTJ0aXRMTDNXNXZYNTZYV2c1Tll5dHQ1Wm10WnBwdmM2MG5YZzRhWHhyclpLZjB2bmFIU2hXVkw1dXJmR0ptYXRFWXI1dDVITVoxN1ZTeWlBN2JZWlluRndLUFpnTStNbGV3ZHNvZnNBeDEwVXpIaEQwMkc1YjNBSDJNY01GblFIcnExM1pXZmZieWJ1K2dQN29ZRGZyTHZlMDgrUDlycTFhOEhxL1BnOE5sVkRxcUREZENMbldNUzIxZFplWXlkb0gvNy9ydnJmNCtGL2Vud3ZFa0JJT2FPY2NwUXdOVGp1RWNGZngraW1PY1VNUmQ0NmE1aWExcTczSlhUWE5qQzNWNmZJSmYzMkt6S0hqYVpZclhUc0pnQUViUFgwWVJuQXpGTFc1UnNjVlpWMXdvdUFVbnFLVXhZQzhJTlFWanZOVm44N1dNcG9reDBYTnp2cHg4U0RoOGZ2RDJMY0ZmVEtkS3VIRGp3WXVNandiOEJHaWtpV1phYUtXTklDSENSR2luZ3lpZGRORk5ENzMwMGM4QU1RWVpZcGdSUmhsam5BbmlURExGTkFsbVVGQkpNc3NjOHl5d3lCSWF5Nnl3eWhycmJMREpGdHZza0dLWFBkSmsyT2VBUTQ0NDVvUlR6c2lTNDV3TExybmltaHZ5RkxqbGpudDBpaGk4QzBtNGhGdDRoRmZJSWF0YTBtc1ZvMmJxWmV2WlRwUnQ0eUg0MitvdmxwTWlkZE11L1R2S2o1WFhKMVBUZkk1VlJma1o2aGNOUnpWUUFBRUFBZi8vQUE5NDJtTmdaR0JnNEFGaUpTQm1ZbUFHd2tRR1JvWWtoaFFnTDVVaEhjaG1BY3N3QUFBbjFBSTFlTnBqWUdSZ1lPQmlDR0ZJWW1CMmNmTUpZUkJKTDByTlpsRElTU3pKWTlCaFlBSEtNdnovendCU2hjd1dZMkIyZGd4UllCRHo5ZmNCa2tIK3ZrQVNMc3VZVnBTWXpNQUJZb0V4QzFndkkxQ0VFV2dtRTlBK0JTREp4c0RIa016QXpDREVJQXF5SFVpTGc5V213TmxNRENJTVlnQzF0aE1aZU5wallHUmdZT0Jpc0dHd1kyQjJjZk1KWVJCSkwwck5acERMU1N6Slk5QmdZQUhLTXZ6L0R5U3dzWUFBQUZzYUMyc0FBQUFBQUFFQUFBQUExYVFuQ0FBQUFBRFpuSVBoQUFBQUFObjdTVWM9JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcblxyXG5AZm9udC1mYWNlIHtcclxuICBmb250LWZhbWlseTogJ0NvdXJpZXIgUHJpbWUnO1xyXG4gIHNyYzogdXJsKCdkYXRhOmFwcGxpY2F0aW9uL2ZvbnQtd29mZjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxkMDlHUmdBQkFBQUFBRUNvQUJJQUFBQUFkUFFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQkdSbFJOQUFCQWpBQUFBQndBQUFBY2lUdjBIa2RFUlVZQUFEKzRBQUFBS0FBQUFDb0Evd0UxUjFCUFV3QUFRRmdBQUFBeUFBQUFRQmFiS0poSFUxVkNBQUEvNEFBQUFIZ0FBQUNpWjRkeXhVOVRMeklBQUFJTUFBQUFUd0FBQUdCeUFwSzJZMjFoY0FBQUF4Z0FBQUN1QUFBQlVzUnRXeUpqZG5RZ0FBQUxZQUFBQUQ0QUFBQnNKN0VSVm1ad1oyMEFBQVBJQUFBRzhnQUFEaFdlTmhQT1oyRnpjQUFBUDdBQUFBQUlBQUFBQ0FBQUFCQm5iSGxtQUFBTWRBQUFNSWtBQUZxNGlLNXhPR2hsWVdRQUFBR1VBQUFBTmdBQUFEWVhtaHBRYUdobFlRQUFBY3dBQUFBZ0FBQUFKQXNQQWU5b2JYUjRBQUFDWEFBQUFMb0FBQURZS3VjWlBteHZZMkVBQUF1Z0FBQUEwZ0FBQU5KWWVrSk9iV0Y0Y0FBQUFld0FBQUFnQUFBQUlBSEhBaEZ1WVcxbEFBQTlBQUFBQWNJQUFBTnYreDlxZ25CdmMzUUFBRDdFQUFBQTdBQUFBVWxrZmNUeWNISmxjQUFBQ3J3QUFBQ2lBQUFBdlZxeDN6c0FBUUFBQUFNRW13aWJpUWhmRHp6MUFCOElBQUFBQUFEWm5JUGhBQUFBQU5uN1NUVC8ydjMvQlBJRnBBQUJBQWdBQWdBQUFBQUFBSGphWTJCa1lHQnorT3ZDd01CeTV2K3QvN2RZUGpFQVJWQUFDd0NvR2djR0FBRUFBQUJvQUc0QUJRQXhBQUlBQWdBc0FGb0FqUUFBQUp3QkZRQUNBQUY0Mm1OZ1lUbkR0SWVCbFlHQjFaamxEQU1EdzB3SXpYU0dvWWxKQzhobjRPQmtnQUZtQmlRUUdCcm95TENBUVlGaEE1dkRYeGNHQnZZY1pnVUZCb2JKWUlWeldCWURLUVVHWmdCMGx3eXlBSGphSlk2aGl3SnhFSVcvQVpQWkpnZ0tna1VGbXlCY0Uvd3pWb05CT0pOZ0V4R0w4V0J0NXhvVVlTMmFCRkZrMndXRFdjd0hCeWJEMXA5UGJ4N3ZHOTdBREpNNDQ2TktuUDl0UDJ5cHNKQTdkakt6SWtkQzgrU0lnREY3WnV6b3MySE9nVFZUaTZ5bkhQTEZoYXlMcWRPbTlsWkRWMEphWW8yaytLSCtzaytUaW92ZG5Rd0ZKcGF6RXBHN1dvcFAwZ3p3R0xFU3kySkFsVy8zRUx2a05Sdm9OMCszQ3RxdXY3WloyaCsvRExtNXV4UVRLSytlTjhrOU1RQUFlTnBqWUdCZ1pvQmdHUVpHQmhEd0FmSVl3WHdXQmdNZ3pRR0VURUE2bXFHT1ljUC8vMENXQWtNc2lQWC84ZjlIL3pkQ2RZRUJJeHNEbk1zSTBzUEVnQXFBa3N3c3JHenNISnhjM0R5OGZQd0Nna0xDSXFKaTRoS1NVdEl5c25MeUNvcEt5aXFxYXVvYW1scmFPcnA2K2dhR1JzWW1wbWJtRnBaVzFqYTJkZ3oyRG81T3ppNnVidTRlbmw3ZVByNSsvZ0dCUWNFaG9XSGhFWkZSMFRHeGNmRUpEQVJCSWdOTkFRQVZUUitZQUFCNDJxMVhhMXNieHhXZTFRMk1BUU9Tc0p0MTNWSEdvaTQ3a2tuck9NUldITExMb2poS1VvRnh1K3MwN1M0Uzd2MlM5RWF2NmYyaS9KbXpvbjNxZk10UHkzdG1WZ280NEQ1OW52SkI1NTJaZCtaYzU4eENRa3NTRDZNd2xyTDNSQ3p1OXFqeTRGRkV0MXk2RVNlUDVlaGhSSVZtK3RHc21CV0RnVHB3R3cwU01ZbEFiWStGSTRMRWI1R2pTU2FQVzFUUXFxRWFMU3BxT1R3dTF1ckNENmdheUNUeHMwSXQ4TE5tTWFCQ3NIOGthVjRCQk9tUVN2MmpjYUZRd0RIVU9MemE0Tm54WXQzeHIwcEE1WStyVGhWcmlrUS9Pb3pIcTA3QktDeHBLbnBVRHlMV1I2dEJrQk5jT1pUMGNaOUthNC9HTjV5RklCeUVWQW1qQmhXYjhkNDdFY2p1S0pMVTcyTnFDMnphWkxRWnh6S3piRmgwQTFQNVNOSUdyMjh3OCtOK0pCR05VU3Bwcmg4bG1KRzhOc2ZvTnFQYmladkVjZXdpV2pRZkRFanNSU1I2VEc1ZzdQYm9HcU5ydmZUSmtoZ3c0MGxaSE1UeE1JM0o4ZUk0OXlDV1EvaWovTGhGWlMxaFFhbVp3cWVab0IvUmpQSnBWdm5JQUxZa0xhcVljQ01TY3BqTkhQaVNGOWxkMTVyUHYxUk13Z0dWMXh0WURPUklqcUFyMnlnM0VhSGRLT203NlY0Y3FiZ1JTOXA2RUdITjViamtwclJvUnRPRndCdUxnazN6TEliS1Z5Z1g1YWRVT0hoTXpnQ0cwTXg2aXk1b3lkWXV3cTJTT0pCOEFtMGxNVk9TYldQdG5CNWZXQlJCNks4M3BvVnpVWjh1cEhsN2l1UEJoQUN1SnpJY3FaU1Rhb0l0WEU0SVNSZEdUcXhFYWxXNmJWVXNuTE9kcm1PWGNEOTE3ZVNtUlcwY09sNllGOFVRV2x6VmlOZFJ4SmQwVmlpRU5FeTNXN1NrUVpXU0xnVnY4QUVBeUJBdDhXZ1BveVdUcjJVY3RHU0NJaEdEQVRUVGNwRElVU0pwR1dGcjBZcnU3VWRaYWJnZFg2ZUZRM1hVb3FydTdVYTlCM2JTYldDK2F1WnJPaE1yd2NNb1cxa0p5RWw5V3ZiNHlxRzAvT3dTL3l6aGg1eFY1S0xZN0VjWmh3LysraU5rR0dxWDFoc0syeWJZdGV1OEJUZVpaMko0MG9YOVhjeWVUdFk1S2N5RXFDckVLeUJ4Yit3NGpzbFdYWXRNRk1MOWlGYVVMME5hUlBrdEtKUWNTckdHbVFRMi9PZktGVWNzaTZyd2ZaOGpVWU1oV010cXN4NTk2TG5QSTI2cmNMYnV0ZWl5emh5V1Z4QjRscC9UV1pIbGN6b3JzWFIxVm1aNVZXY1ZscC9YMlF6TGF6cWJaZmtGblYxZzZXazFTUVJWRW9SY3lUWTU3L0sxYVpFK3NiZzZYWHpQTHJaT0xLNU5GOSszaTFJTHV1U2Q1ekQ3K20vckt6dDYwcjhHL0pPdzYzbjR4MUxCUDViWDRSL0xKdnhqdVFiL1dINFIvckc4QWY5WWZnbitzVnlIZnl6YlduWk01ZDdVVUhzbGtlaCtUaEtZM09JMnRybDROelRkOU9nbUx1WUx1Qk5kZVU1YVZicXB1TU0vaytHeTkxK2U1RHBicklSY2V2VENlbFoyNm1HRTdzaGVmdVZFZU03ajNOTHlSV1A1aXpqTmNzTFA2c1Q5UGRNV25oZXIveEw4dDMxUGJXYTNuRHI3ZWh2eGdBTm4yNDliazI2MjZDWGR2dHhwMGVaL282TENCNkMvakJTSjFhWnN5eTczQm9UMi9talVWVjAwa3dndklOb3ZucVpOeDZuWEVPRTdhR0tyZEJtMEV2cHEwOUN5ZWVIVHhjQTdITFdWbEowUnpyeDdtaWJiOWp5cTREYmtiRWtKTjVldDNlaTRKTXZTUFM2dGxaK0xmVzY1YytqZXl1eFFPd2xWZ3FmdmJjSnR6ejVQcFNBWktpcmpkY1Z5S1VoZDRJUmIzdE43VXBpR2gwRHRJTWNLR25iNDZab0xqQmFjZDRZU1padHJCWmNZeVNpajRNcWZPUlVuc2hGTk5xS0kzN3lsZnFvTGhkQ1p4RUppdHJ5V3gwSjFFS1pYcGtzMFo5WjNWSmVWY2hidlRVUEl6dGhJazlpUDJyS0RsNTJ0enljbDI1V25naXBOak82Zi9JaXhTVHlyMnZOc0tTNzVWMDlZRWt6U2xmQ1h6dE11VDFLOGhmN1I1aWp1ME9VZzZydDRYR1VuYm1jYlRnMzM5clZUcTN0dS85U3FmK2JlWiswSU5OM3hucVZ3VzlOZGJ3VGJ1TWJnMUxsVUpMUk5HOWdSR3BlNVB0ZHM1Rk44cWZuV2RTNVFoZXZUeHMyejUrL29iQTZQem1UTC8xalMzZjlYRmJOUDNNYzZDcTNxUkwwMDR0ek9MaHJ3SFc4U2xkY3h1dXMxVkI2WDNKdHBDTzRqQkhWNzdmRlpnaHRlYmROdDNQSTN6cG52NFRpblZxV1hnTi9VOURMRVd4ekZFT0dXTzNpQko5RjZXM05CMDF1QVg5VmpJWFlBK2dBT2cxMDlkc3pNSG9DWmVjQ2NMc0ErY3hnOFpBNkRyekdId2RmMU1YcGhBQlFCT1FiRit0aXhjNCtBN053N3pITVlmWU41QnIzTFBJTyt5VHlEdnNVNlE0Q0VkVEpJV1NlREE5YkpZTUNjMXdHR3pHRnd5QndHajVuRDROdkdybTJnN3hpN0dIM1gyTVhvZThZdVJ0ODNkakg2Z2JHTDBRK05YWXgrWk94aTlHUEV1RE5ONEUvTWlMWUEzN1B3TmNEM09laG01R1AwVTd5MU9lZG5GakxuNTRiajVKeGZZUE1yMDFOL2FVWm14NUdGdk9OWEZqTDkxemduSi96R1FpYjgxa0ltL0E3Y2U5UHpmbTlHaHY2QmhVei9nNFZNL3lOMjVvUS9XY2lFUDF2SWhMK0ErK3IwdkwrYWthSC96VUttLzkxQ3B2OERPM1BDUHkxa3dzaENKbnlveHhmTkp5NVYzSEdwVUF6eDN4UGFZT3g3Tkh0SXhldjlvOGxqM2ZvRTlhQUQrZ0FBZU5wajhON0JjQ0lvWWlNalkxL2tCc2FkSEF3Y0RNa0ZHeG5ZbmJZd2FFc3pNMmlCbU5zTldCUTRoTmladVNBOEV5WU5Oa2xXTUkvTGFRK1BBNGNEeXdFR1pnWnVJSi9YYVErREF4aUMrRHVCSklQTFJoWEdqc0NJRFE0ZEVTQitpc3RHRFJCL0J3Y0RSSURCSlZKNm96cElhQmRIQXdNamkwTkhjZ2hNQWdTMkd6RXBzWW13TXZOcDdXRDgzN3FCcFhjakU0UExadFlVTmdZWEZ3QjlsUzRIQUFCNDJtTmdJQUNNSUpCbEp3TUQ4eHdHaG44MUNCWWpEeU1QdzJPR3h5eUxHUmhZRldDeS8xK3hCak52K3YvcVh4cE1MNnNaNDJNZ3ZnZ0ExbEVWTGdBQUFBQUFpQUNJQUlnQWlBRGNBT29Ca0FKRUF1b0RuZ1BhQkRBRWhnVUlCVndGakFXOEJlSUdKZ1pxQnJ3SFBBZXlDQllJZ0Fqb0NVUUpzZ29ZQ2xvS29ncmlDekFMY0F2NERKd05FZzJVRGZvT1lnOHNEOGdRUkJEWUVTZ1JnaEl5RXFRVE5oUENGQVlVZkJWRUZlb1dlaGJXRnp3WG5CZ2NHTFFaS2htYUdkWWFFaHBhR29vYXVCdUVIRHdjcGgxV0hiUWVQQjdlSDNRZmdCK01JQ0FnZUNFY0lhNGg5aUtVSXpJajNDUmlKTUFsUUNXZ0poNG1zaWNnSjVRb0ppaGNLTzRwWkNtc0tvSXJraXljTE9ndEZDMWNBQUI0MnExOENYd2IxYlgzdmJOb3QyeHRsaGZKc21aR2ttVlo4aTdGdXhKbnRTMW50K1BFaWVQc0Rsa2dJYXdobUlha0pRbVVRS0VwQkdoSmdLOUFBNFNHa0JBZWExdmFRdmVtZlpRQzc5SFNYN3E5OXlqd0NzU1Q3OXc3TTFwc2gvQys3MEdzR2MzY0dkMnozSFArWjVsQkxMcEwvaVBYelZlaWZPUkFUYWcvdVNnZUZZczVIWWQ3ZU13eE9vYlRqWnIwakk2RmY3c01HQ09Hdzh4NkkyWVJZdnRodzZJaDJFTnpuYzZDQW9TY1RjNHBEWFVWUVY5WmdhUEFZYmZCWGZNYXpUcDNCQlc2V0tkTzlBdkJSa2REdk43UE92eHNQTmpZa0hDdzhCbXZyeXQwbCtKMkRGdVhVODg2NEZNbkNpRXoxb2xjek10NmhmTS9Gc2lHYll3eVkrWE1uUko3OWl3anVPekYvSU1QOHNWMmw4Q2NQY3RLcnFEeHdRZU5RYjdTRi9pME0rRHpCZmpuQTc1UC9meTFuMzc1WTFzZXA4UDM0RU9zM21vM20rU25jY3BrdGx2MXJMeEJYcWZqOG13T25KS2ZkaUFHdjNiaFk1YmpQa0lXVklKNnVwOTB6MXVTZENPRThCQ0hNWlpTUEpETURDT0dFWm5lMHFRTERnTDVHSTFrSHg5STJ2UHlFTW9yeVN0MjJ1RkdKa2xuSUN6UXM0UW9OaGh2d1V5aEZ4TVNnMjBZcUdmKzA4azA4U3RXOEUyTTAvMitmODZjQlF2Z2ovdW9xR1JzYTNNemM3Q2s2UHhpcjNCVzhOSVBtTTJGQytncDVnSE96MzFVSUNLVC9BRkNCU3d5WVNzaS96R283c0tmdVh1NFUyZ2g2a2RMay8xenB6TkdVNkNFWVJtbXg1YXZaN0dPWXhnV3hHakJKbE5GeW1wZ0VESU9GZVNaV2FNeFFDa01zNzJMRmlHMHFIOVJmOTlpdU0yQ1ZQZnNXZE9TYlMzK1lFQjBpVUYvMEc3d1JWQVpkam10T0lMMTlYWHBYU3NHcWhvYk9yQ1l0U3ZFY0dORE8yN0JpYXhkVmR6NXVENXJGMGJvdWUwbGVYa2xSWWZiYml5aU82ZVNYS1FzT2djbmZxL3RyRkZPUE5CNms3SnpwazA1MGZpMnRyTktYdDc2K3piMmNYdE5kWFdON1p5eStiakFWbDZpWTMrbGJXM2txUDJjc3ZtcmN2QkgybGFPbnpzSG1uMzB3bTR1eHBlakdTaUZGcUZyays2VWsyYzVqQmIyVEhGeFBGNlVxQWh5RE0rQ3FwU0RxcFRwUUI4d2ovQUk0bUdoc0R3emdsaFdQMnpBZXIzRWdzWklzSWRZL2NERWNXUUlPd3puMlBrRFNWaEw4SXZUUFlFS0VmNk1CaStvanhjWHVwVzFvdWhPS0JoeUZib1Z4dXRkcWpiQnNZeGUxYm5oaWhnT0JRbkhFK1JhUnVkeWtvT29zWUZjem53OVdGdFYyNUdNUjJvYm5ja1YxNlhtTGUxN2VFY3drUWcyMURZbmsvSHEycmJDbHZWVFJ5TDdsajJ3TnBpNHBWWnlTVGhjNlFuejVSN3hCWHVwaWFqa0x3V3ZhN3IzRG11NS82cmhaVi9wNWI0cmVqemk2N1l5QXpuNWpyL00wKzM5bHFtc3FPZG8zK2hNNW9qb2tYc3J2T1VPTTMvYjJHOW4rRjBXM1RlQVZqNnRzL2xJUk5Xb0EzV2pUY21SUXN6eDVkaGdaSHBnWmZLWTRVY1JhOUFaV04wbzRoRFNjMmpFZ3ZWNTJHalFHMGZNbU9meHNBbFdhVVVLR1F5NllhVFRoWFc5eVdSTmpTUWhsT3hPZHMyY1h0TlIwejRsTGxWTHNjb0tUNG05QUg3T0dyU1MxYW53VVZQUGVvNllKR0tNTU9FbTRXQUNjOEM4d3ZxNmVHTkRVQncvM29vejUvQnR1N3E2dEgvTXR4MVdzYmlxOFB5ZGJwdFZMSXE2MmMxanMrcnJKUW4rbU95QmtucVFPOVdWZFhTanV5VHFjUlNlL3hlWHU2U20xT1ptcDdVcHc2UjZ1U0I3NEhQYVlWai9sd0V2cndkZWRxSWVkRERwc21DRWU5cGNZS0M2Z3d6SE5tQ2U0MVRUVmdGYXlJQlJINFdyV0k1aFJ4REcrbUVqcUdKRnlvQTVqaC9XQVZ0RkhqUzM3bEpEaHhDTXBMc2E3OEVRSXRRMUcrWXhUWXlMd1dZcFpDS2FERHFidG41QlVTQmM5ZUY0Z2hpRnRCM1I2ZDBab3lKVUV5a1FUc2NUVkplcEhnTzdFeUhtMzQ4VnVwcVQ3YkhaczZiTW5OSndvdFNwTDNLOXBWaUZaYVZseTFMSzdtTVY1Vk52ZW1Iay9yNmxTeGNQUHI3akZmKzBSRy9ISzl5cGxSYXY2M3VDMXlPdWsyYTMxQ3lQUHorMXpWbFlVRlZaV1dWTEpWZll5RTZCdi9PNi9udlhETjNaZXMzTzFZZVhuQi9yRERkTmIvc3hjQU8vd0R6QU9zQlhXRkhiQ1NNd0dhdGN0VkNId1JDSGdZQnpkb1o0Q2R4UERxQmgyRU93d2swd3hvb3NFa3VVVDg5U1d4a2l6ckFGc3c3OUhMNHlGcXZrNStES1Q3bVA2dVJ5dnlqNjhidWNJVWp1akxIOENQc0F2eDc1MERUbEI4MXd1RElGWjBLNHQxU3hSR2FrL0JpcWhFUEVuc0RYQVhMMU1Qdytuajh3Y01MbExHZklqMnVhcm1OY1RqdmRJNU1KeFREVDJHQ1BKMWliMVYzcmxPeXZ2Zjc2YTNiSldldTJXdmYvNmZiYi83U2ZYeC93eGNPbGxodms1OCtlbForL3dWSWFqdnNDaHJsL3g3MXZ2SUY3L3o2WHpqVUtjLzF4N2x3eGhya2lGRUtadVNyendwV0l6cFZ3YXdCbG1EVnd3dXVwb0hNdHRMdWNqRTZmWHBOeGUyTURRL2VJQzNFemkrak1yQk5tekJmOFhUNyt4aHZ5OGIvUE5haXp4cDFueitKT2JkWmtCdWg1dkp2TGgzWFRnaFlsODZjd0RPSWF3MTRibUJYRWdHUmRNRk1IRVNYZUM5Q0lxMGlCMzBjUk1tTVg3SEdZUTNpVWlQaG1lcFlEN1FjUUFQZHFyZzVXaDNTR0VnS0N3TVVsNGlyRGRmbVlXbTlLVGJYaU9Ra3A4UTRjSXJwT1NmSlI2dzJHKzRFT3J2cnBja0ZJV0EzTjFUKzczK1ZPQkVQbGpkYUZDNjJONWFGZ3d1MjYvMmZWelFaclFoREtuNjdtT3BxNFUyM1Z0dnpYTnptcklxWE82QlRlY1lzajZvNkhQU0hocFplRWtDY2NkMGZoRUQ4bDZpeU5WRGszdlo1dnEyNGpQSGdVN2VNRWpnSHBSSk9Wc1BnUnd3K0F1Mk14WmhCZVQ2d0JnVGs4TTU5S01CaVVwS0NrTjVSU0EycnpxMHRXOU5zMDQyanpheWJTYjZNcjk2NGFHODVUVnFYOEQ4WDF5aDhxMzdFRi9EVEhrRE1mS2g1Yi9vZDZKazhaaVMzd25lclZzUHdtVzRCWElSc3FTNWFhNk9LamV0T2YwWnRRa0RFVVVhNVQ1RVhoSmpFeWpHelgvODNaRjR6Z05WeXA2eDk0bFQwL1AzL3NUeldlWWlQSGxEbGNWQmNleFdjNWdUa0o5L2NsUGRrTGVJaWNKYm9ONkRiT1pybU9ES0hzWjNUU1l6cGw4c3luekVtRkhJVUlPditYQUdlYThUYVVoNHFUaFpwbEFOL1hDNTk1eUJLZ2Q4NUZpYy8zOXZiM3d4L2U1aFZrNGx4bENnWXhla0EreEVYNXE4R1pkVDlqQXJXbGhxaVVHQ0p5NDZ6RkpxbkhFTjZqSGt1YTBsK3ZHbENzRW5HSnlxOXI3bzg0djNnOSs0dGwzTmc2ZTdKekdjZmNZMC95VjFjSlp1TW54eUprbzFzUUFiZXdCL3pPTE9yRFMxRlZNa3lRSkI3bUZJOE0weUlFaGxFdkNSUUtTZ3RLQ3AzMHAzU1pkUTAvUlcxT2pqZGxQbm56eWl2ZnZQTk8rcmxoOCtZTjVJODdkWjk4N3J2ZmxjOGRQb3pkMy8wdWR0LzMzdmRlZlBIVlYxOTg4WHZBajlNSWNWWGNHUlJBTmNtb0hlQVY2QVo4c0F3Ry9NQldwSGlPRUwweXplOEFrc0ppTUU3V3FEUk9tQzNZbHJZMjhVU0FyRjJYclo3akZRRkxpb0EvL3JuZDZoRHRUb2NUUCt6eGVxVy92cUY0RHNXUk1BOWViWkpDVlY2WHgvejNndkx5OC9PcHpPNkhPWUt2UjdWbzB3a0pjeXdSV1FHSVIwS3dEd0J6bEdyejVUQmZ4UWRYRUNreUs3WElJNUExREt6UHJzbkhEU1JKU0ZDTGFxU3FSdEd0TFZPblRvLzlXVWpTcjdwV0NNQUl3NFUwbUtRbWlQbmRxYUZscStYL3dDV3g5bVJ6bVhqK1V5RGFaTVhmV2RneHI2ZS9qeHlNRER6Yng1MWFkblRMMmtlSDVFOEdSWTlYK0VEd0FROHFLdkx3ZmZOV05jeFlWSG1BSFAxYjJGMWJpeWo5SjBGWENvSCtadFNkbkIzRk9vREJnQ3A2RU96d09nN0lZa21JUW5BZUM5d0JtTXdyS0RwSGxlQ3pHVFZKVWtPRFZCaFdVRExvTENWUnNhWEUySUtSVlZRSmdBU1JJcUNNK0NSMHNrVy91M1hoY3ZrUDN6OFl0QW1WQnN2VWZWTTNidXBidEo2ZzJaNkIva1VMdW5zSnJiVnpIMXZJblhyaW9jZTZnbDhlZXU2RmxDTmFHbDNFKzRTNVhiUG5STnZiWTlObVRwL3Bua3VJZlM3cUtKZG9QSFlOeUxvTGFJMmlHaFJQMXRkZ3BNTTllb3g0eGFnYXNFNVhrWUl3Z0dGWGdoeEZGdWlxanNIb0tuOHc3ZytLUm9PSEVHYkxBQ0pYZmQwRVBXMVVkb2tVNjNHOWc2MnBmbHpSenNkdlU3WmpQMUcyajhvTFlNZUJ6NWJPcXBmdisxMEJkeXBXTmZhdW9yRVBaU3Z1UTdDWldzUjBDdUxZWGtBeUdEMUpaWFlFOFBuTVpLY2VBRGttOG1KNUhRdnJpb093YUJjTTRrRUxSNEJzL1JBUmw1QkNIRWNENHpCRHhGV05vb0lrdWdPQ3BJa0w5RThmVitqSnVIVVN1dFJyWWlLSGllVUd3M29HaENIUHRLNWN1Zk9KcFovOWZ1aTVYa1ZXOSt3ZXZIelp3aFdyS2l1U2pZeWY4UXJNU3U1SXJMMDkrazVnN1ltcmZ2alQ2a3BYaElncHRYTHgvRUdwb0V4a2dtS1pFaXQvRTJpS2M2Y0JuMFJSTXRrR0NKYzFrVkFEdkFsUXlDbTBzTEMwaU9ISW9xVzhIS0h5YUhsVlJSQXVMUXNHQ2cyR1lxQkh3VStNbnZodUxVUUlVbmR1bHdLSTJEVk5HMFgyTDE2ZUNULzdYM3VjOGIzOVc0K3Qydjc2Nks2WHA0YWp6K0V0MkNCdlgxb1g3Vy91MnpDOG1EdmRNTVhtNldlTlBiZHZhMjBhZW5UTDVVK3RYcmV5N2RqYVgrTGF4MHhqU3lwbXgySzlzWUh1VkQ5WlYyZUFuaWtnb3pLMDRJUVZnQXV4S3lhd0swV3dDd0IrR3pnSGRnaldHaXVrbERWVW1peFdUcUhSQ2VjR0tKUXRReDdSWGNFVCtpaGV3U28rSk1ybVY2VFdhQ05aSGM1V2ttZVVoMHkxZ0tpalRUcDhqWHdIV1RJK2dUblBIUUhOcW5XZmw5eHV2U2xhWnNsbkwzdVJMQkxjUndYQm9zZGczbjVZSTZYZ2x1clI5T1JVcHc1UUJqSGNCaEFEdzQvb3FUZlJLZDZFNHpRVFVGSGg4U0JVVVY5UkY2dnloRHhCb1J4dVVWSmwxQnl6VHA4ZHFjVVRrOFJyVEZaY3g3ejc3S3ErMU5CbFcxKzcrZWJYdG01Y21lcGI5ZXgxc3hhUmZNeWlXWDJEZzMza2p6dTE5TjdsZ3plSTRtMlhiZmxXWDkrM3RteTZWUlIyRFM2L2QrbWJxWTZPbnA2T2pwUWNXdExWMWRmWDFiVUVkT3p1QytmQUg1MENSbFlSSFhOZ2hqTVRqdmVBZFdNd3h3QnRQSi9XTVJVS0FHMCtIMEsrS2w4a0FPRW04Z1lLUTZxT0FVVUZzTTZVdGRMT0pDYkdvY1NTeDdESS9KSW9sSHhRdnE2RTZOb3p2OW1ZbjlhMXhhQmF6VlRKdUZOVW5lVFQ4dUY4ck9wYTkyMDdORjE3aDZpV29tUXdXNHBiMkljQm8xQWZ6Mm5JSlVEc01qdE1mRDRZTUN2NEhXdXB0Y1Rsb0dDRytuZzFKNkg0SENiM1c3NEtiYlEvWmtFbTN6VjJOQ2YzQlhQWUFkaFBvblB3b2Nwa3FFang4Q3o0ZUdadFprSVk3STNQQ3lpRHpJQ2ZNQU9xeXJtNFVKdkY0em40TUhzdS96a1JLc0thdXdhbHVHWnVLbkFFc0tpUjRLbWU4ZkZXV1RuRm9scXNaY1RwT0F1cnpwZjlmcDVUY3BWSVl5ZVpPVktKUzNMbU9jOS9XT3h5RmJNV2JxcFUyZUFUSFBKYjhsc093ZGRRS1pud0hYa1Y0VEM0MXp0QXZ4NUYvOFVKN0dGQXBDSUtKNE1nQThLSzFlbTBaUUQxMmdGMTJrVzd2N1NJNGxiZHBMalZmbWtrV3pUdU8zczRHOW5LOGZFNEY5MEJ2Rm1rOGFZZ2c5T3o0cnV5a0liVGRWbnBGaU5PaDNXWTZ3QStuUC9RcVhDSW1UTjJVdVVRYTJFT1VUN0lXMHdLajdDRUpaVkg4aGJnemM5QVg5K0hHRjFDZGVpNnBBVjBCVnZBWjRHeXFzRjZNRzM5d0I4amZoY3hnblFwU2lteUxMbGhNRFlpUjFKMzR3YkNHRVEwYnlSNzJFRFNHUWlBOHRVRmFxc3E0VWRGS1ZLaHJGb2E4RkYzVUkyREhaTmdyWGk5UFFmdnM4VnZmUDJ3anFsS0pLb1lDK05mUDN2bTNKU0NRY0tuSDJxYlBqMlZnai91b3pPUDdIOGcwbGZzZGhmL3ZFcnZ0TTVxbno2empFS3dmd2s3bDV5UGVvVmpSSGVQcVdzSCtTK3M1NDV3Y2RTRit0R0M1TndpRjJOa0lIeGltUjRUMWlPTzBYTWppREZqSThzWVJ3d1l3ajRFekFMNHBkUHhBd0RDU0dxSDE4M3Y3a2FvdTcrN2I4RTh1TkdjYURBWUM0aEJDL0hvR2FlbkxDMHFRQldHd1hMTHRrNkM1ZzR6SWJGZU0yVjJxWjdKc21VaVcvc2Z1K2Z1WHpKam1TMTF6YUoxUys1WXVDemc1NHNjcnBJeWJyYWh2RGpZS2k1OWRQdWVuKzlZZkhUN1Y2NHo2S3hPbzk1aWFmeldnaVAvY2VNUjdIdXFlbWExVkNiTWlFN2o0Z2MrdWYvR1U4TTlIYmZ2MnJiK3AzdTJ6ekRxOUs0OCtiVnlseFJvMzk1ejFmRlZYLzM0eml1ZkhLNWdTLzJsTnB1ZGQzdjNmUGpRaTdqbEdUazE5L3IyNnZxQkcyTHJFSFBoWThCMFo4SFBKaURDbjVKc1JFYXdQMFoyUGRMckRVTW1iREFJS1IzSHNHUUZBa3pDSWpGR3pVMHd1cEZnT2xzd0xwb05aY1NXNDBtZ1hNaXZuK1NvSTIzay9YcTJubVgrcmM2TWhYNDFrbDZpYlB1aTh0ZWlYZXF4VGNwMjBkZ2phaEQ5NXBMclA3bUdPK0lUemwrbUlEd0Y3UjA4bVAyTk5TcmJOK1RGK0RGRWZmTk1vSFU3ME9wREZZQmdkNXpnc1o0anVLSVdsazg1K0RBOTV2VHJlWUpmQWZNUjlLQlRBMlVTWDVVbXE4QWE4VHlCSGpvQXZ0dklCVHE0QUxTSlhhbU1SenFkTmh3V0VFSTFzVWk0Z3JoeUgvTDZnMDFHYlFIcEZieVlpYzB5TEdFMWpBOHdtVzdab1IvT24vUEh0Mzg2OW9KQy9XV1hxVGJMZVBTMnBVc1dMNy90eFplSFZyL0lIWG5zMElJZFl2dTczMzVDWVFKclZMWnlLRG10czIzTXZMOXJGclZqNndHZnJBY2ZIa09keVdRbEJvaElQUTRzSEFLYitHRTl3QlVsK01yc013dzFDMkdPSUY4QTlNR2dLQVVDQmhYT085V2NwcG9DaGZrcnVGZk5DQ21SY0IxTitYTlZzYlpaMWZYT3pXdjMzLzZOQS8zZlhGRmdyZlpaWTJkL2ZmVFRXL2IrN2U0bkZqY251Vk9BakVjRkwxQzQ1cHJYenB6K2NYV05ZV0d3ckw1dzQ5M1kvZHhwN0w1N1Y0ZG1BMXBCbnJ0Qm5oNklmSmNxWWl4U3hLZWo0dUJ5eENlbHhjY2hEc1JIeEthTUl6QXNMVGFJNmdPaXp3czNMUUVWMTFPUktWSDk1OHVMeGVmMzdqMy9oQnhXeERNOHJDcnJiM1p1dVBmKysrL2R3QjNaSjM5MDVvejgwZjVjQVoxdmVPbjA2UmVwYkFnOUFQaFJISDJtZ04yWWtxdUd1YkljeDI4all1SVpGZ0l0akkyd09vMUdBV3c3eCtsV2d1S0pPcElac2NCVjFWbFhzVHczK2dVdUk2eXJTU2ZHditoMXlWWmtBSmhnMkRiaFNqMEhLeU05WDFBczQwcmxlcFM1ZkdDQTV0V0IyZ1ovc0ZHMFNYNUh3RXpLY2FwT2dmZnd1Mmc5VFFlclFRMzA2YWxKQmNIRnlraitYTDc4UXhMcGZvanZhZW1jVmdOaC9tQ3VQTmpidVNObG92d0xraXcvTkVaaUsvbWRINUV2OGpjRlg2NWtjbVJTang1U3VCdlN1S3VVRDlicmdUdUdJYU5pS3RQMUExN2o2dmpLeE1YSGc3VDF3R3I5dHZGWEFQc01LeWRlQU93alU2eEh0Y1FVRSs2WnFDbk9jTS9tcjFNTXpXUnhkamJycGltc3V3N1hFTjdKUC90WEZSNGRVN1kzcWdWTTltZ1c3K1NmRXViOWQzYWduV0VjUm5QQXpod0ZPOU9PdXBLem1vRXNGMkFNRWlrQXFtTTRyZXBpWUdnbUJLTHM5RDdEYUdVWE9OeU8yb0xCWUZ3QWM1Tk5YSTY1U1RSbUtFbG5GbXlxRDg0MVAxYkYvR3pZU016UDF0VXZhZjVFMmZvY3R1VnZYNjJZb2ljWHFhYm8vMUJUMUxlQ21LS3lSN0lkakR4V0pCbHJhalN6ZEZVQ3pCSUdkSWE0ZTBCZkZoTDdpc3hnYWN6Y2Vvdkp3SkxhdERXUG9ZdUlaMGtlR3F3VXpXNEJuUXZSL080NXMyZk5uTjdlb3ZwVmZ6QS91elJ0bTB5Q2Z0dm55elhERFgrMnRKV3lkRk9UNmw3M0tkdE9lV2RuN2hGdEJMNUtIWUZ2N3RTTzBEZ1ltSEErUndGd1JQNzFaQXFoTXV3VHJGY1ZoT1RuRVNjQW4wSUU2WE9BcFBraGt2WVRVc0FaWUEzU09CTkNBWm85U2lmOUZIcnFKa0Q4Ykp2OEp6ckx2MktVQy9NeCtxdnFPMzh4K2Z6VENvelJhbHJIUFFMaGF6eFpYMHh5cmoxa1BZSVBHYzJlTFFKSnJnSmREaE5nQklORFlpQW9qcHVzbXNRanFRVXliUnVOMGJQcUNhcEFUdi8yNTMrK3Q0QXE2SXpoQlF0a05jM0Z2Sy9OZGV5dUYxKzZzMERBMDZsS3l1ZUYvbVZNZjlwVXFicjNPc3g1SlpxZjdGME12cThLSW5TU0FRS29nc0VxY3d6ODIyVldsVEhQb2lvalF3SmVIVll6ZG5EMWlpVjlpeGIwekFHK2krRjRreTFvemRaRVhFYktQVzRTdldmVk9VbXdFNHFSZ284bzVHUFhGOVZMbktXV1g2TGtSdVFIcHd3SzdtQ1JaQzJzOFprVUh1eHZXeXk1aSszQmdwS2tVQ1hXYjFmMXRDSVhFZUd2S2R0cVBMMVJQYkpINDUzOEdKdW84YytxN3lvS1ZDaEh1anNqVGNHZTRsQlVxSHZ5YzNUMlJaeE02NFRtQ3lKb3RRWWFHVVJ5VTZNUVNDSGRFRVI5T2dWMWFBblFVaEtXS1VQQUVyQ1kyNVk5RW1VR0RpVHpFYW5DaFFuVGJVR0tyYkpXcjZZNkYzTit6Q2VVM2pmeEVOV2ZqTnU3NHc1Vmk5YWx0UWpqS1lvQzFVMTBlQmlaZ01hWGdjWVVzVit6QTE2V0kxa0FqdWdRSGpWZ29qaG0wMFdzV0FwMXo1Z0dCRWdTV2JHV2JLMXhUS0lSWmlXTURKbng1MGNKV2xPVm4vc3lwU1Z1YmMwMVZJTzZyK2ZGS2lNeDZ5SGQ4dHd6TGZseFZSTThybExkeVdkMHBTN3NuWHp0TS9Qa0RhTFhLK0s3eHA2ZVRCK3NOdG1GLzJLemtuVUd0dUVZOEtnRERUOVRYMEFLVldvTVhncUxpWWdYZkptaUNReURoNGxCQzVQaXRXL2lXWGFJaUQrbEdCREZuM2VnTmdtNEY0ZEFsTHE4SERNU0RHSHhVa1lmUXJGc2E2L3dyS211TlJhMXllM2MxdHlncWxPejZJYUtBdndBcDJvTnZqck5vejYvdjlqRG5CdjczbVE4S1IyYmo4YzAzV0ZRQi9EbDF2L3R1aGxyK3ZTV1d6NDllcFIrN3IvOTl2M2tqenQxbDN6dXVlZmtjM2NUOS9zY2R0LzEzbXRuenZ6d2gyZk92S2JHQlZlQWZBSVFyS3pUVnFvT2tiaHR2WjRpS01NRVYwTldLc2ZyOWR3MmJTU0V3UHpLaVFNcGFJMlJmSGtBaVJSNUdZbTFWMkRxSlF4ZkpsaTQrVzkvZS85dURXYmRvMnp2dkZOZHErTGRWMTk5N2JWWGd4Qisrc29yUDN0cU1zNlBIUjljdVhJWjRibjhiNVRuVFdnR2VxWDdTUWZRYXFyRFNLOGsvMHVUWnZJRjk1Z0FVbllQS09jbHBBY0s5WWoyYlBFRExDZ3BLZnV2SmVHK2J0aElxamdHQWwrOU1EYWdqYVVaRkZwR0lFNWsvR0NJalZsYXdSc2w0MWx5Nzg4WkRzalYzZHlNVVBPTTV1bkpkcGo2RktuQ0lZbEJNNDBvVlZVSTZXazJKU2V2b3RmS0VHbzFKVVRiOGk2dU5NWE9qYjI5dmhrK1QwdEpiN2NscnpDUzd4Q2JOamRKM2ZWVEY4YXUycW96T0NyekMyMW52bkVNeHU0N2VIQWYrZU5PM1NhZi84NTM1TTl1WXpaNmpUcmVXS0dUZkVGZlpVbWxhRFpaek5XczVBbUpaYmJYMm5EUks5L0IzRzN2UGZQd3d5ZFBQdnp3TTVtWTlGblFQZEt6dFAwRXJIR0RsbUVRa0FIT0c1Z1J3Z1U5eEZPa3FzU3pETW10Y2twdXBSVENCWjNlYU5SdDA4WWlvMUcvY3JLaE5ML1EwelZ6T3Z6U1ZLS0c0WGliV2FzY0ZuNnVoNzRJbXB4TVRaZi8rei9qNVM3UlhaVG5yQ2gycUpIVTNGVmhwOGNwRmZwNkdwTnFWQ1UzajB0TzVEOTYxN3BWcTliZHhSMDUvZFNmV2wzaDBwWm9qY3Z2VjFRNTJTMjJ4VHJMSThFTGFETGRsdkdjN3U0NW9FQjNnVDNwQU4zdVFxbGsxMHlNZFQ3TThBVFBZTjJ3UWMrUWFpUHdQTE5QcWxvc1dOVndDcEgyRHJwTEhWTVhtak45bWhTUXFxV0FNU3Ryb1dnU2lTTGNDc2VVbEY4b3F4YWthaUJoaDhLOGtNcWtPcVdKa2YxVlBBTHhsN242YThOekZrcEMxV1ViYm03KzV2TFRYM25rU3FVZFVReWI0M2V2V1RJWURwV251dnN1ciszcFcvWFV0bmxmcWFzRnVyeUMvSGZCVzFEUU5iK3J4UnV3MnV4T1VScis3WmFqZzJ1REpOV0pld1d2dlhEOWh0bkppb1Nqd0ZsZ0x5dXAyTE54NDBPRERUVUJrZ0hCYUJYbzJrYlF0U2hxU05icXNCbzJranlkVnJUTStCZ0s3YUlvSXBMWXdoRlFxNVkybGRLTE9CVmJkbEdzcHl6UmxJaWMrSzFxdFBxVTdXOVBrS00rZ2QxTFk4T2wvaktZT1lDTUhOZDZRZjVQZXZ4aFVpVERhbzhreVRtUzNoeWFYbVNIUUlnMEYwTzZIOU9BT29FYVJaRUNDbU1tS1V0OG9kYVZNMm5vcHdEc0NSRlA5WmJYRHh4NGZVdDFibFNUMnJKaXhaYlUrTGhtN0FmN1hsMjc5dFY5VEZNMkdoejczZllycnRqT0JETDVnUXNmQXkxbmFTMFphSkZvellSWEtkTHJGSW8wWWtqTkdOQ2RtSXZ1VkJDRUo2R2tOQnNlUDBGbk9GMit5OXJjMXRhVUp6K296Zm00c2gzNHpSOW5hVGc0N2IwWFM5NHlrWDBzaDRaN21iVlo4LzhyelA5ZG1QOVUxSnhNeEdNMkZ1dElOUnlSMnY0b2dYaWdZd1N4Y0p5UVlyQkd5bFRVUVVDZUZKUnlRUXByWlJSRXA4Z254RTVLbGJKOGNxZzdSV2MrWlMxYldCZWIxbUw1NW9PVzFzNVlyWXNkcmxOcFVnSGRqc1k3OUJYVmRWVzZPK1BySjhTaWk0czlsaklSLzBZT2kyVVdUL0U0dXAvRmo3dUxIQzQ1eGN6T3l1K0FRbElzdDVCVU5HZlhseGs1SWtLVFVRK0VHNFlzWmtaSmdTdFFsODhOMkdmTmlJTkE2Yis4YkxCcm5EUVpQbGt1M0RpWjJOMkpMTWFNS0l5UlA4WmlXeTUwYS9qT1kwSDF5S2l5YmNlaS9FbHJMc01pZHh3c1VvOXNTZ2REZStVcnN0Zm5oeC9tQlBIMzRLM1pqUHY1ejdOanpBcmcxMUhnVnp0S0pCdUFYU3hobHg0WVJHSmkwSk5KUXZoMjFLcXhLVWRaSmtkTGwxd0lOMUJxcXVSSFgxVXQwUzVsKzZyOGVDeVg5czdUWnhvbkxPeVA1R3hpMFFYR2xCUHZ2WVdsZEx5M0QyaWRRbk1VYTVSOHJLaDBLMjNMOURScGFZQkw5VFJOSEtmME5JVlFRQ3hzRkF2VEdZTjBTMU5Xc0RkSmU0Sjc3R1c4bFNUdElOVDdCZERvWk5ybDQrUTdXT0lDU211YjcveC92MDBUbXdkb25EZXRsRFhTUkNkZXFmU01ZQ3pJVDdQMzg0UElUWEl3SkVvbEQxTnd5ak14WE9hWkdCanJSb1ZTWXdOcG5lRFUwb1U2RnpYQmFQT3pYeUtaUTRZNkxwbG1FWi9Iblp1cXAwMkxlUVZkUlBDU3ZjK0tsZCtOd2U4K1NuKzNJaGtndjhkZ2xsbWZhWHRNdHlhNmtjc3ZOZkpLMmNTbS9pNzVXWnUydzk1SytnY1o4b080VTM2ZWJtViswQ3Q4OG12Qkc1czJyWnI3RS9sVWRQY2wvQ3ZPREhqQ2k4SlA2ZFpNVDVhNXJhU0NpbnVBYnNUc0ljMlJWOEZBTC9JRXc1eWhLUEtVRGswbnBTMWFzdEZsREZzbzNhREUzRjV0eE8xOFBDeDR2R0g5YzgvcHcxNlBFSTd6dU4wWWkzQ243STZ4KzAwR3QyZ3k1RnZ4WHZrNmE3N0JKTG9OSm1hVnd3NjI5ODJ4Qzl3SDhydkloc3JwZkZ6aldhQjBmdEpwVE1oM2NXOWJkVHByM21lVmVYVExuWlhmdGRYVTFGVGJiTld3SWJFOGRySmpiQU4vRk81ZlRPOVBZbGVsUmJMSW1iNnhVcVlKQmJSK0paNXRLQ3lYTEdaNXBLaWlLV1lyd011NC9jRFZldDBibHZKUXZOdDhRY0c1VzhCdjNNc2VSM1d3dlArZ3REL24rN0NCYlcwQjNPb0FDbGdJUG5LTzZObWVBU1ZNRGtOb1FQcXNSa21Qa2dHeGhoRlNGcURSUVNTbEp6d1labFJBck55NS90SVhBTGtpM2RVYW0wcVR0WjkzRlVwZkJIR2VkZzBKVE9yckVhcHZyMjlyU2dCdHRTS2d4bmlqV1FPTmhibUFPdDJPUXhQTUpDT2RhZW5PZFBmSEU0MFFrU1JlRmNwOWlqVzZ2SDJvZU82VHk2ODQydi85NDN2dVhyU3g1ZUFzbTZVNFZKQWZHM2h0eVlOelpuWE8rSExMemJ2WTQvL3lsUHhPUlZReFRQV0p0czdVVjRjUDNGUG03VXg2aS9oQVZaV24zbFplUHZaR1hVMTFiYUltV2FySXBSVGtjaGxmamlwUk0vcUJ3bTRUQ3dHY0RjTWFBNUdvWDBndVhwVUdHRFUxSXBaUzVERUlHcWRIVWpvYXZhc3VYNVZEOU9KREZYdXZYb1hVakVjRWhpSU94REJ5NmRIQSs4SklCQVkwUjVycWEySCtGZjVnWXpCZ1VvSnJXMjRqR2cyMkp3dGQ3Rm90WHEzTjQwUGUrcjI5dTEvZHNPSFYzVU9IRzd6Q3V5cnEwOHB6bnJjM3RMZHZTTFlQMXRZT3R2UGxZRXlXTmJXTnZ2V1ZyN3cxT2pCdmtlQlZpOGw3MWJEN2lkWWQ4K2J0YU8yNHNyZjN5ZzZ5Um04a2ZYZDBIWFFtazdHTDFGTWpXZlhVeUxoNktpaFpNQ1FHZ3hQcXFkbWRCWm1TYWxhUGxGTFVZRDlSaWhyaCtVMnpON1cwYkpxZCtsYVBQVDhxMkNQTDMxaC82UDBiZHYzcjNnYzdtNVBzY1RESkw5REVYK1hzU01lT1ZHcEhSMTJWYVc2a0xGclUwTHp6clFNSGZuLzlqamlKS3hnMEREUTlvdXJRZDVNbUh5eGRHMVllSHBoTVljalRYaXlSNjhTRkcvMmNvVU4wOWVseWxxeWlNQ3pQcmIvMDZJa0tJd1lEY1ZGVG1Lekhib0p0T0p0dGhlNHNoVUhqRkliOTBLdjJJdnhaOERZY0hsSlVwM2R2dlpxY3diMXlCZFdWSk5VYm9qR2YvVlZSRHErd2FONkFvanB0VGRpdGFZeWlLNHJlS0d0ME4vQjNMdWlNSDl4L1I3STFuU0htNFNTUGFCOHROMHdTVlJHYUlpWmNDTE85Z29DUUVCS0NrZ2dYbG9jZEFnUnhKV3B6b09pL1NQOEprS2pUK3dsZGxyT2J2Y0xZTHNjTksrODlZYkVVbHVlWjNDVnJmcmJtMEZ2YnIvbjNyNStNNEdkdFcvdlk0N3ZQM1MxNDVpMU9jQlUxZ1pJU3I5RWYzUG03V3crOHRmTzllK1lvL2Q2UEFDWmF3d2RRRTdwY0VYRllLMWNhTUtQSFdzSFNPRXpxdmRLNENtZElHd3NuNFY1R1BKSzVLS2UwU1F2REpDOUVFMnlDV0VRTHc4cGpKc3J6SmFMZ3hSbjBNV2s2UTJtU3Btdmtua1BGeFNhTFdHU3gzVGgwRTA1UWZQSkRYS3dDU0RWSGZQSWtPWDd5NURFKzBHVDBlMHFrcWlBZmVyaVYxb2luNXlEa002UkRlczdwbDhsYWtkZHhqNEFzYTFFSHVrTjVDaUdJZWIyMlZpSUlsSmxudVZHVGdad2FOdW9ZMm1PbzEvUEQ5RGt6clJVM1N0US9uak5hYzFYS3BVUG9vaGVDMTZxckEwdlNVZGMrSlU3YTVBTmlrUmhVdlpaYmFSVWZsMFpPOTZRUi81U3pQTVoxWG00bFJ2UFBDb1A2Ly9MbnZ0ZVgxK1RsQjRyenpDOWNlZTBtTUswM3ZicHg0NnMzTlc3WnNqdzUwdFkyQW5abVh2ZE16V3lPMWIzNkc3ODNQMTRVcTY3a1d0YXVYNWRvdmZiWFgvN3lyNjk5NzhidDIyOU1iTzd0M1p3QVBRQjR4ajBFOW1ZNjJueUNKYzhmcVUraFNzaGdVQm9QcEhTcmJHUjgzYUUwS1JCdE1pQWo5ZStURDFJVWFqcWkxUW1hVU5BNkRkVEN5bVNSQ0hIb1Z1ekZuNThzdzQ5N3IzbDAyUzFkcWR6S1EzVzhvM2xEUjNYdXdZelhvWjZtNU9TOE8xZkx3em1xdGFaMzN2Q0RnMGR5OG1KN3RRRHN3Z1c2L3Vid0N3c0V0QjZoQWdhdHN5clBVVDhncjJQdnBjZlgwcWVvMTZGbjZYcHRndkVIZ2JkVDBSVkpZMGZNYk9KSWdLL3hWMTF5VXNwQWM1S2dYWUdVeVVoWWg0WmdvU3FOTXdJWUprNFBUdnppZ3hUK1RrVkpxWUVXTDZSR3dsK3BVRFhBSVZaL3FaSWdpQ0lncXFCZTdmblFPK3E1SFI3eTFHT2Q1L3crclVOczFYaFdnaUhnNmlqd3Y1OThWbnp5ajdZM0t0dUFleFY0eGNpOHlSZ0pkakQycTJBOEVRd200c0VmeWs4VFB0MEhmT29BUHZuUkxJVTVickM2M0JCNUJrNUtNV2tQUkZDTkN3NkNqK2ZZOWRuSGxjZmsvTWhIS25qcVkzS1hxRk16UC9KcU51aTgrcXdudHAxVGQ0NHFybVZ5UmNBWFBvRDVIZ0M3MDRFTzB3ZHVubWxOTUVTeWdQQmFNYTlMQVBhZ0NJODhpd09ZWGpFbkJqMnIwd1ZTSE1Nb290WDhPZW1IMUU2UzRIMlNvVWtmR1RXRXRDRnF3MFlrUFdKQUsxKzFneE51RE1EL21ZNE4rc1NLVFduWnVOalh6QlAxcExHWjJpYnkvTEt3MFN2c0ZMekZwZFdKM0IyMU9lRVloSlkzOW53dEVydHVGbnY4N20rTW5TRVJLR051ckx2amdQejRoUDNiTlFXNC9Zb3JmN3htdmJvK25nQStUa2NqSjZhUmVGMDEzQjdTcDI4WU5oa1pneUV3dmdleU5Ca2tweFVuUnlJUUdEcUVKaG1vMlozT3VHWjR6R3FpNlAvWjRpajhBWjgyNzM5bWN6NFV2RGQvSDZ6ekY3RTRES1B4NmVENzRPTzJBbDVaRGp6S1I3N2N1bDVrUWwzUFYxQldWSmlwNjQxL3Vwekp3VnFNL0lmcnIvL0RvVVAwYy9iR3BxYU5zNVZQOWpnQnBHL3RWRDdmVXhDVWhya1pGSkIzY3BmQmZHcFFFdDJjTkVVeHg1c3dTdnRjeVVUU2xUenh0VHhQWGFZeXhVeGVLa1RjUmpVZGx1VmtWV040c1N2QXk1S0h2bXFUdFIwUUc5YWdhaUpUdFdpVmlVeHNsNWJkUkVhd0hScktWRnRjWllQcWNYT3c2SWFzVUlVOXJpRk4rWndpclBFMkRzRG9lN25SQ3NYMndMdEhNcndqeUNLUWhWZWt5WEZLT0ZOSkNMRXE3ejRmb09SZU1ZRjNJdWtRdUFoQ21ZeURuNk5FT1FpbFA1ZC9qNlNEdjhJczBNNGV6d3J0emwrbmJKVlA3TmFpdi9mRzQzYUk5Y0JXRUwyTG8yZG9MK0NKZXZMc1cwOHAyV0pNcksyRmxreUpPYVUxcVVDSzVKVFNYN0tyTWFydHJjcTBUbVl1eWhTNHhsMlRBZHNaWTB3YjZVaTFKNUl6ZGtCNStVWWNOU3FteDAwTEtKbkg0bFZMNDcrRVY2YmF5bjdZWFdXM1I0dXRCVk5hVTN2bll6V05NYlpJclZ2dlVGMldYZkIydjdLR1BUNmx2TUVmamNZTXZsV1BieHlhM0s3ODY4SDdGSjRlQmRzU28vYTNKemtuQ1lTWGphdnhSYkpxZkpIUHFmR0JrWTJKQWFsYURHaXZHYUY5VjJxRlR5bndhY3MwOStVaVJKbElmWTlXK0lMWm9mV1A2QXRGV2c2dGFlbnNDcTFZZm4xaTN0TGxUKy9hZjdYMlRwRzZ3OHUvR2EwcVhyYjJZTXUrRlErdC8vcU8yZzcydVBJbWtZN0dTckhTYmpLYUN3djlWdzBQN2UrZWxYNlBTRWZ6d3VJeUU1OW44Zmw3anZaL2FjWWNrL3I4TTRtN0Y5UGU3SGl5SGx3UlNZdU82dWp6bFN4OXZsSnRrTXp0eHBiRUNsR1FKSzFBbG03NnREblZ2SUVhRXFxVlBqVXNJdGxieGxudnhOdHBNSFRyVGJIckZ4VG11YVFDdTh2MWs2OGZPL2tTT2Z4UzJ5enVGRmxPNzlNZzZNOFBod05Hc1NMcUtmU2FON3g4R29za0RNSWxTdDhqelAxcjdHRTBCYTArWWN2eW95VWt4OE9SNmg3SGtaZnlaT2NJa3RMRWswcWN6MmZIK1ZTUnA2QzRGQURjSGhlMTBtVnVnSytiVUEraytUcGlKdHF5cWdmc1g3eXEwM3lYK01NTWJzY2dIdW8rdFdheUlIc1ljT0xsR1VjSW5oTS9vR2d6WUhkcnR0Y2tkUkhTN3dyMFg2d09HUGpmcWdQZW9OWUJmNWMvZmViTWFmbnk3NmZsZHI5MVB2VjBRajB5eWg1VzQ3QkJzYXhNWkk3bVZEcG00VlBqNjRBdy93NVNCMnlvS3FCMUhhVGpFS2REdVhYQVFGWWRrRFFyU2NRTGl1UHJnRGlUTGcvK1Q4dUE0VHNNamEzTlUvSU8zR2FkMHRKYWIvaXFvQktrUGgyeXVIdWZ1U29jaVpodjZaMnRaV1V5cEpLU0oxNHQzeWVXZWFWeEpPL0VDejNlb2hMNVlYeHpkazJMUEJleUYyai9uQnBnNEdJMXdKbTBCaWdXanE4QjZyOXdEZEFSdWxRTmNMSFN5L1pmbUszUExmaFpkKyswcVVmdVY3WngrZU9HM1BwMjN1aTFoZXFSVlJxVFBwTS95VGJMZS9mbUFFTERwOWxNMjcwN1hRK3JrTmRTSFUrUWZvTXFOMjE4MDZtcW9hNWhSRHJleU90U3RQSTlNRWR5alN2Zll5dWoxOUVYRWJRemlTK284RW41cHBrM0hybEpDcFFXejEwOXYwbitTWGV1MnJjZU94WWZyL2JuLzNucm5XMGNudEpWWDhYd2RadTNNRHR5dE9GbXZEUFQ5MGhyZlVCYmhOVDZyQmV2OVFXK1lLMHZNTEhXRjBGaDBSMmY3UDBGT2EyZGNhM2NGOFBVUWRGNm45VSs5aEdlMFRDek9wYXZWdnlzZHNZcy81UWU4UWxzQ1hzWWFDbVZIR1BuZG9vZVMwbXgvRTlhOVlNampIdWJja1FzZzBrK0pEL052czhQUXF5K0tXbHRnVUEySDZZZkJnZWp2ZnFyTlAycUFwS1VaTmJTekRXaGlMN1V4azllcFlJNEhvMWtob0hJeVZPUXhGNWpabjQ2RlpCb3JJNUtncmMwb0ZkZndtR2xDVzBmQTNTN0NQbjVXS2NnT2UyWmVkTE1wVHdycjZWcTRWczFEaXErMkdNcExWcDFXWWpqOGFicnI5K0tqVGkyY1dsUnFjVWpmdllCbTRldnZseXRyV3pISnZhRDgveGdwRDBXSzRnczZ4MHVHYmxGTkFuNzFqbE51eTFGbmZOQytiRlllOVZUcDcyK3J4b0tGaSszeGFxcW9yYkJ4UVhHeldXZUU4ZG9mZktjZkIvekhrL2VhUkpYZUpMNy9oSHRSVWdERTE2RWxIbmhpU3VyZFliNVRuemF0Q1Q4OGR1OHdpZmZKcDB3dW42L1VvTkY3OHRQY3lHUXh6UTBrclNDMitOcTRKNXVERXFWbGdjTVk4a2IxcFFIZzVIMk5xdEtUcE1IcmJCa2hnRUlIRURLYS94WUlnL1NXVHdOVFcxdERvU0RZWDM2QlQ1S2NVcURSUEROaHdzMU9iU3IrRnBoZnFJeGhxbGtZdWw2RitQL2dEWGg3UnJUcjhaNTdBZWZpVVJFU3pmR1FEWmJyOTg5b3VOeGRNTWdGUkUvZU95RXAyeXpzV0R4b0MxYVZSV3pMVjljWVBpcXozdjZxU29RVTM1b1htZVJaYmZKdVc2ZllBcmNmZVd3eWQ0NU4xZ0Fjb3BRSHQyRUQzRGR6Qmd3LzNKU3gzeEdzSUpqSlFERG92Q0haZENBamlldlBBREVSQmpCUUhUS0lHWStBY3pBSDJEcktLeFRodVVBT0N1ajRTZ3BEU3FERVJtcjFlT0RvaFFTNmF1QTFQTHZ4UHFMMmplbTExN09RZDVVOGQ2S2FZMWRVcWl0M0Y3b0QxZm50ZXhmR2g5T3htZUwyVWVZTVZId2VNc0ZSeUFjc0xuNmwwaUN4NVA1cHNSbmJ6R043RXExaHpaQnE3WlZIS2txS2FSQlVNWU1xREUzZytaUDBrcWJYU3llN0tWdXpJNnY5ZmRyLzJKVHA4YklIM2VxUCt2b0w1V0RzYW13MEFFWEJMbjMrTzBRK2RlaWVlRHlucU56Y3BneHcvckJTeTZvWkhqVGRLdzNjK3FyZXFZQWY5azl4QkxzUWJ6SmJPTE5venFPNU1rZ1F0K0FUTHpCTkdDMTVMRm1JOVlielBvUlpESVpWaUdEeWJDQVBFMm1YS3FEUzNWWWw3NmV2cHp5VXBjUEpEM3o1OWZWelY4NGYySGR2THE1UFYxVGsyS3dxRmdFV2RhU0oya29YN1FHQXZWdE9GUjQycnR3NEVOU1h4UVVVdDhVVk9lMnEyMjkyaE5WOU9xRStvWlBXNzJZMEROK3Axc09Gem1jN3Z1dXpNc3JjK2VWZ251enUzMkgzRTVtc2ZOOHY4VlE2aTF5c3Q4bTI4c2hEdW4yVmRaVXltODdCSjBCeDYwUk1ScnQvanQvTC9NVHdSOE0rdkhscmZyYVVwY243M3A5aVh2c24wTEFXT2l3alAwM0g1Vmd5eGo1NkZpdEVBajRyM0k1bk02cnBvcjVJSWJyN1BiaVF2bldIL3dBc1NDckVQZU9LcXNoN0tLU3l0Y2tOUk1rWlNCR3BSaWtsQnpIYWlQbURSWURieG5Od3hhejJYSjVGc3VSZ1RjWlJwQlpyemYzSTdOWnZ4THB6ZnA1YW4xdjVnU1JHWXdHM2ppS2pCYUQwYkxyQzk4dE9ldlNOekpZekxzdWVTY0llNHZxNnVxRzZsWXNXN3BvUWZlY2NFTFZBZXYvaHc2b2J4Y2lBeWQ5dFZDZDhsQjh2V0lZdjdnK0RGVFlYYksreW8xdE5aR0dXSHVOTHh5cEtJbnZtWHJ0elhON0h2cStMM3d4cldnWnB4WG5qenVkdDduc2k2TDJYNGtKWDBYTTFVVVU1S0RiNmltN2J1M1VqWWxyUWk0SFdjc2YwN1c4RFRXaGJyUVJiVWJ2VXcwcGlwSVhLWUtXZE9RRG9OczhtekhrcmNZbUk2L2ExNW5wTGdwRG5qSFBZQndGejRISXU0Mm9Rd0s3TktJblFzbkRhS1FBNXhuTWVRTldiTFJnazlsb0lnZnl6S3VRT2M4TXl6dVZ2cEdlSVZXL3lXK29oeHVpTDNDL2dhVFkwNFBRcHN0Nk52YU1yQndhWE5xL2VQN2NHZE5iVzJqWlVHeW9qNFp0RUY0cE5qenpNcVdzeXBjYTltZmVwcFFsV1ZXd1NEWDZHWVd3cTJweUVhdkExaWZ3WGZ2WE5iWjg0MERibmhxdjBWUnFaWFhWNjZ0MnhxcFNUcGZMMmJhaEtUNmx1YXh5UVVuam51bXNpZXBDUmlkaTBlN0NTVXpFTzNmei9MYXRxMWJYT3VjMWpWeFc3TXp6MjRvOFpZeWphTFlZRUlKQm9VY0l1bXBkam9yUkVvdTdaT3lQVkMweTZpRi9pOWlIU2N5R3ZPSUg5SjFyNjloN0FmY0tLSmFNcE45V3BaVStBdWtFYjVTK3BVcEE1WUpVRk5ES0c1TnhOT3ZCTm5hWDkrU3h2bFBMb25aN3NOanFXbkI5N0NaWmZkTXQwMHpDNi9ON1RyOWNHeXVNZWlvclE0WkErR0htWFMzV3dPZTRXc0JnQ3dGU2hhaVdlaVppcml6QXBZZzU1eTF6anpZMXpweloxRENUWCtnVmpwTFV5MUhSbzlhdjV3QzlmaFJLU2xsMFpwZHkvc2QxbkY5TlVzZjV0YnB6dTVKSG1Dd05odjR2RWY1dENnQUFBSGphalpMQlRoc3hFSVovTHdIUkE2aXRla0k5V0tnSE9MQk9vRWdST1lWSXVSUUpJZ0ZxajdDMWRoY2w4V0o3RDd4RUg2SXYwaHVxK2g1OWh4NzcyM0ZMcUVyVlhhMzllVHovekt6SEFKN2pIZ0tMNXlPK0pSYllFTzhTWitpSUl2RUtYb3ZQaVR0NEtiNG5Yc1ZHOWlyeEdsNWs0OFNiMk1vK1VTVTZ6N2o2R2lNRUZ0Z1NLbkdHZGZFaDhRcjZva3Jjd1J2eEpmRXEvWDhrWHNOMnRwMTRFMit6OXhqQm9NRWRMR3FVcU9BaHNZOHVlamdrbmRPaU9RZXZOdnBvamhKbmtXZHhMN0RCRGJtSTZpRTlQWFdHZHNmMVRvenFtY1hoQ0lwdlNXM3dhSEdObkNyRFNBcTNYQnZhTmVmNTB1cUt5cUJWZjFUeFVNTXVvMkJrbWp0Ymw1V1grOTNlb1R5dnRCeVoxdGJheWpOYnp6UkhjNk1MTDRldHI0eDFjcWZ5dm5GSFNwVzFyOXJydkRBemRkc2FyOXQ1bks2YXhxa1VJa2JZRFZtZVBBZzh5Z1ljMDNQS2E0RmpNK1Y0d0JyRHFmWXh3QVFYL0lha3AvNW83MEYra0hkNy9jSGtZakljTEJlenR3ajdyOGI4RHZINEhCYkN5eWh3ZERZOGJibFVIeTYxZGJXWnk1Z1ovMVBqWHdyNzFmTkZ4eDI3SEhRTmJZNlpRdDRwNTNCSFN1NmZZb3dUaXRnUk5zUVZ0bTY4eTEwOXpZMHQxZW40QkQ4QityR29lUUFBZU5wbGl0ZE93bUFBUnM5ZlJoR2NETVV0YmxHeHhWbFhYQ2k0QlNlb3BURmdMd2cxQldPODFVZjFQWXltaVRIUmMzTytuSHhJT0h4KzhQWXR3VjlNcDBxNGNPUEJpNHlQQnZ3RWFLU0pabHBvcFkwZ0ljSkVhS2VES0oxMDBVMFB2ZlRSendBeEJobGltQkZHR1dPY0NlSk1Nc1UwQ1daUVVFa3l5eHp6TExESUVockxyTERLR3V0c3NNa1cyK3lRWXBjOTBtVFk1NEJEampqbWhGUE95SkxqbkFzdXVlS2FHL0lVdU9XT2UzU0tHTHdMU2JpRVczaUVWOGdocTFyU2F4V2padXBsNjlsT2xHM2pJZmpiNmkrV2t5SjEweTc5TzhxUGxkY25VOU44amxWRitSbnFGekxITlc0QUFRQUIvLzhBRDNqYVkyQmtZR0RnQVdJbElHWmlZQWJDUkFaR2hpU0dGQ0F2bFNFZHlHWUJ5ekFBQUNmVUFqVjQybU5nWkdCZzRHSUlZVWhpWUhaeDh3bGhFRWt2U3MxbVVNaEpMTWxqMEdGZ0Fjb3kvUC9QQUZLRnpCWmpZSFoyREZGZ0VQUDE5d0dTUWY2K1FCSXV5NWhXbEpqTXdBRmlnVEVMV0M4alVJUVJhQ1lUMEQ0RklNbkd3TWVRek1ETUlNUWdDcklkU0l1RDFhYkEyVXdNSWd4aUFMVzJFeGw0Mm1OZ1pHQmc0R0t3WWJCallIWng4d2xoRUVrdlNzMW1rTXRKTE1sajBHQmdBY295L1A4UEpMQ3hnQUFBV3hvTGF3QUFBQUFBQVFBQUFBRFZwQ2NJQUFBQUFObWNnK0VBQUFBQTJmdEpOQT09JykgZm9ybWF0KCd3b2ZmJyk7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xyXG4gIGZvbnQtZGlzcGxheTogc3dhcDtcclxufVxyXG4ifX0=`,"base64").toString("utf8"));return t(`metrics/setup > setup > success`),a}async function a({login:e,imports:t,q:r},{enabled:n=!1,token:a=""}={}){try{if(!n||!r.music)return null;const o={get provider(){return _[s]?.name??""},get mode(){return w[l]??"Unconfigured music plugin"}};let i=null,{"music.provider":s="","music.mode":l="","music.playlist":d=null,"music.limit":p=4}=r;if(d&&!l&&(l="playlist"),d&&!s)for(const[e,{embed:t}]of Object.entries(_))t.test(d)&&(s=e);if(l||(l="recent"),!(s in _))throw{error:{message:s?`Unsupported provider "${s}"`:`Missing provider`},...o};if(!(l in w))throw{error:{message:`Unsupported mode "${l}"`},...o};if("playlist"===l){if(!d)throw{error:{message:`Missing playlist url`},...o};if(!_[s].embed.test(d))throw{error:{message:`Unsupported playlist url format`},...o}}switch(p=_Mathmax(1,_Mathmin(100,+p)),console.debug(`metrics/compute/${e}/plugins > music > processing mode ${l} with provider ${s}`),l){case"playlist":{console.debug(`metrics/compute/${e}/plugins > music > starting browser`);const r=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > music > started ${await r.version()}`);const n=await r.newPage();console.debug(`metrics/compute/${e}/plugins > music > loading page`),await n.goto(d);const a=n.mainFrame();switch(s){case"apple":{await a.waitForSelector(".tracklist.playlist"),i=[...(await a.evaluate(()=>[...document.querySelectorAll(".tracklist li")].map(e=>({name:e.querySelector(".tracklist__track__name").innerText,artist:e.querySelector(".tracklist__track__sub").innerText,artwork:e.querySelector(".tracklist__track__artwork img").src}))))];break}case"spotify":{await a.waitForSelector("table"),i=[...(await a.evaluate(()=>[...document.querySelectorAll("table tr")].map(e=>({name:e.querySelector("td:nth-child(2) div:nth-child(1)").innerText,artist:e.querySelector("td:nth-child(2) div:nth-child(2)").innerText,artwork:window.getComputedStyle(document.querySelector("button[title=Play]").parentNode,null).backgroundImage.match(/^url\("(https:...+)"\)$/)[1]}))))];break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await r.close(),Array.isArray(i)&&(console.debug(`metrics/compute/${e}/plugins > music > found ${i.length} tracks`),console.debug(t.util.inspect(i,{depth:1/0,maxStringLength:256})),i=t.shuffle(i));break}case"recent":{const r=Date.now()-86400000;switch(s){case"spotify":{const[n,s,l]=a.split(",").map(e=>e.trim());if(!n||!s||!l)throw{error:{message:`Spotify token must contain client id/secret and refresh token`}};try{console.debug(`metrics/compute/${e}/plugins > music > requesting access token with spotify refresh token`);const{data:{access_token:a}}=await t.axios.post("https://accounts.spotify.com/api/token",`${new t.url.URLSearchParams({grant_type:"refresh_token",refresh_token:l,client_id:n,client_secret:s})}`,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});console.debug(`metrics/compute/${e}/plugins > music > got access token`),console.debug(`metrics/compute/${e}/plugins > music > querying spotify api`),i=(await t.axios(`https://api.spotify.com/v1/me/player/recently-played?limit=${p}&after=${r}`,{headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${a}`}})).data.items.map(({track:e})=>({name:e.name,artist:e.artists[0].name,artwork:e.album.images[0].url}))}catch(e){if(e.isAxiosError){const t=e.response?.status,r=e.response.data?.error_description??null,n=`API returned ${t}${r?` (${r})`:""}`;throw e=e.response?.data??null,{error:{message:n,instance:e},...o}}throw e}break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}break}default:throw{error:{message:`Unsupported mode "${l}"`},...o};}if(Array.isArray(i)){0 music > keeping only ${p} tracks`),i=i.slice(0,p)),console.debug(`metrics/compute/${e}/plugins > music > loading artworks`);for(const r of i)console.debug(`metrics/compute/${e}/plugins > music > processing ${r.name}`),r.artwork=await t.imgb64(r.artwork);return{...o,tracks:i}}throw{error:{message:`An error occured (could not retrieve tracks)`}}}catch(e){if(e.error?.message)throw e;throw{error:{message:"An error occured",instance:e}}}}async function o({login:e,q:t,dflags:r},{conf:n,data:a,rest:o,graphql:i,plugins:l},{s:d,pending:s,imports:p}){const c=a.computed={commits:0,sponsorships:0,licenses:{favorite:"",used:{}},token:{},repositories:{watchers:0,stargazers:0,issues_open:0,issues_closed:0,pr_open:0,pr_merged:0,forks:0,releases:0}},u=p.imgb64(a.user.avatarUrl);if(a.plugins={},console.debug(`metrics/compute/${e} > formatting common metrics`),t["config.timezone"]){const r=a.config.timezone={name:t["config.timezone"],offset:0};try{r.offset=+(1e3*(60*(60*new Date().toLocaleString("fr",{timeZoneName:"short",timeZone:r.name}).match(/UTC[+](?\d+)/)?.groups?.offset)))||0,console.debug(`metrics/compute/${e} > timezone set to ${r.name} (${0 failed to use timezone "${r.name}"`)}}for(const u of Object.keys(p.plugins))s.push((async()=>{try{console.debug(`metrics/compute/${e}/plugins > ${u} > started`),a.plugins[u]=await p.plugins[u]({login:e,q:t,imports:p,data:a,computed:c,rest:o,graphql:i},l[u]),console.debug(`metrics/compute/${e}/plugins > ${u} > completed (${null===a.plugins[u]?"skipped":"success"})`)}catch(t){console.debug(`metrics/compute/${e}/plugins > ${u} > completed (error)`),a.plugins[u]=t}finally{const e={name:u,result:a.plugins[u]};return console.debug(p.util.inspect(e,{depth:1/0,maxStringLength:256})),e}})());for(const u of a.user.repositories.nodes){for(const e of["watchers","stargazers","issues_open","issues_closed","pr_open","pr_merged","releases"])c.repositories[e]+=u[e].totalCount;c.repositories.forks+=u.forkCount,u.licenseInfo&&(c.licenses.used[u.licenseInfo.spdxId]=(c.licenses.used[u.licenseInfo.spdxId]??0)+1)}c.diskUsage=`${p.bytes(1e3*a.user.repositories.totalDiskUsage)}`,c.licenses.favorite=Object.entries(c.licenses.used).sort(([e,t],[r,n])=>n-t).slice(0,1).map(([e,t])=>e)??"",c.commits+=a.user.contributionsCollection.totalCommitContributions+a.user.contributionsCollection.restrictedContributionsCount;const m=(Date.now()-new Date(a.user.createdAt).getTime())/31536000000,g=_Mathfloor(m),h=_Mathceil(12*(m-g));c.registration=g?`${g} year${d(g)} ago`:`${h} month${d(h)} ago`,c.cakeday=[new Date,new Date(a.user.createdAt)].map(e=>e.toISOString().match(/(?\d{2}-\d{2})(?=T)/)?.groups?.mmdd).every((e,t,r)=>e===r[0]),c.calendar=a.user.calendar.contributionCalendar.weeks.flatMap(({contributionDays:e})=>e).slice(0,14).reverse(),c.avatar=(await u)||"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",c.token.scopes=(await o.request("HEAD /")).headers["x-oauth-scopes"].split(", "),a.meta={version:n.package.version,author:n.package.author},(r.includes("--cakeday")||t["dflag.cakeday"])&&(console.debug(`metrics/compute/${e} > applying dflag --cakeday`),c.cakeday=!0),(r.includes("--hireable")||t["dflag.hireable"])&&(console.debug(`metrics/compute/${e} > applying dflag --hireable`),a.user.isHireable=!0)}async function i({login:e,q:t,dflags:r=[]},{graphql:n,rest:a,plugins:o,conf:i,die:h=!1}){try{console.debug(`metrics/compute/${e} > start`),console.debug(S.inspect(t,{depth:1/0,maxStringLength:256}));const f=t.template||i.settings.templates.default,y=_Mathmax(0,+t.repositories)||i.settings.repositories||100,_=[],w=(e,t="")=>1 graphql query`),Object.assign(M,await n(s.replace(/[$]login/,`"${e}"`).replace(/[$]repositories/,`${y}`).replace(/[$]calendar.to/,`"${new Date().toISOString()}"`).replace(/[$]calendar.from/,`"${new Date(Date.now()-1209600000).toISOString()}"`))),console.debug(`metrics/compute/${e} > compute`);const g=E[f].default||E[f];await g({login:e,q:t,dflags:r},{conf:i,data:M,rest:a,graphql:n,plugins:o},{s:w,pending:_,imports:{plugins:T,url:O,imgb64:k,axios:C,puppeteer:A,run:m,fs:L,os:z,paths:b,util:S,format:l,bytes:d,shuffle:p,htmlescape:c,urlexpand:u}});const x=await Promise.all(_);{const e=x.filter(({result:e=null})=>e?.error);if(!h)console.warn(`${e.length} error${w(e.length)} found, ignoring...`),console.warn(S.inspect(e,{depth:1/0,maxStringLength:256}));else if(e.length)throw new Error(`${e.length} error${w(e.length)} found...`)}}console.debug(`metrics/compute/${e} > render`);let W=await x.render(P,{...M,s:w,style:R,fonts:I},{async:!0});if(i.optimize&&!t.raw){console.debug(`metrics/compute/${e} > optimize`);const t=new v({full:!0,plugins:[{cleanupAttrs:!0},{inlineStyles:!1}]}),{data:r}=await t.optimize(W);W=r}return console.debug(`metrics/compute/${e} > success`),W}catch(e){if(Array.isArray(e.errors)&&"NOT_FOUND"===e.errors[0].type)throw new Error("user not found");throw e}}function l(e){for(const{u:t,v:r}of[{u:"b",v:1000000000},{u:"m",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")}${t}`;return e}function d(e){for(const{u:t,v:r}of[{u:"E",v:1000000000000000000},{u:"P",v:1000000000000000},{u:"T",v:1000000000000},{u:"G",v:1000000000},{u:"M",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")} ${t}B`;return`${e} byte${1":!0,'"':!0,"'":!0}){return e.replace(/&(?!(?:amp|lt|gt|quot|apos);)/g,t["&"]?"&":"&").replace(//g,t[">"]?">":">").replace(/"/g,t["\""]?""":"\"").replace(/'/g,t["'"]?"'":"'")}async function u(e){try{return(await C.get(e)).request.res.responseUrl}catch{return e}}async function m(e,t){return await new Promise((r,n)=>{console.debug(`metrics/command > ${e}`);const a=P.exec(e,t);let[o,i]=["",""];a.stdout.on("data",e=>o+=e),a.stderr.on("data",e=>i+=e),a.on("close",t=>(console.debug(`metrics/command > ${e} > exited with code ${t}`),0===t?r(o):n(i)))})}function g({data:e,conf:t,q:r}){const n=e=>"object"==typeof e?new Proxy(e,{get(e,t){return t===Symbol.toPrimitive?()=>"##":t===Symbol.iterator?Reflect.get(e,t):/^plugins$/.test(t)?Reflect.get(e,t):/^error/.test(t)?void 0:n(t in e?Reflect.get(e,t):{})}}):e,a=Object.entries(t.settings.plugins).filter(([e,t])=>t.enabled).map(([e])=>e).filter(e=>e in r&&r[e]);Object.assign(e,{s(e,t){return"y"===t?"ies":"s"},meta:{version:t.package.version,author:t.package.author,placeholder:!0},user:n({name:`############`,websiteUrl:`########################`,isHireable:!1}),computed:n({avatar:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==",registration:"## years ago",cakeday:!1,calendar:Array(14).fill({color:"#ebedf0"}),licenses:{favorite:`########`},token:{scopes:[]}}),plugins:Object.fromEntries(a.map(e=>[e,n({posts:{source:"########",list:Array("posts.limit"in r?_Mathmax(+r["posts.limit"]||0,0):2).fill({title:"###### ###### ####### ######",date:"####"})},music:{provider:"########",tracks:Array("music.limit"in r?_Mathmax(+r["music.limit"]||0,0):4).fill({name:"##########",artist:"######",artwork:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg=="})},pagespeed:{detailed:!!r["pagespeed.detailed"],scores:["Performance","Accessibility","Best Practices","SEO"].map(e=>({title:e,score:NaN}))},followup:{issues:{count:0},pr:{count:0}},habits:{facts:!!(r["habits.facts"]??1),charts:!!r["habits.charts"],indents:{style:`########`},commits:{day:"####"},linguist:{ordered:[]}},languages:{favorites:Array(7).fill(null).map((e,t)=>({x:t,name:"######",color:"#ebedf0",value:1/(t+1)}))},topics:{list:[...Array("topics.limit"in r?_Mathmax(+r["topics.limit"]||0,0):12).fill(null).map(()=>({name:"######",description:"",icon:null})),{name:`And ## more...`,description:"",icon:null}]},projects:{list:[...Array("projects.limit"in r?_Mathmax(+r["projects.limit"]||0,0):4).fill(null).map(()=>({name:"########",updated:"########",progress:{enabled:!0,todo:"##",doing:"##",done:"##",total:"##"}}))]},tweets:{profile:{username:"########",verified:!1},list:[...Array("tweets.limit"in r?_Mathmax(+r["tweets.limit"]||0,0):2).fill(null).map(()=>({text:"###### ###### ####### ######".repeat(4),created_at:Date.now()}))]}}[e]??{})]))})}r.r(t);var h={};r.r(h),r.d(h,{default:()=>n});var f={};r.r(f),r.d(f,{default:()=>i});var y=r(35747),b=r(85622),S=r(31669),x=r(58509),v=r(20485),k=r(67192),C=r(2390);const _={apple:{name:"Apple Music",embed:/^https:..embed.music.apple.com.\w+.playlist/},spotify:{name:"Spotify",embed:/^https:..open.spotify.com.embed.playlist/}},w={playlist:"Suggested tracks",recent:"Recently played"},T={followup:async function({computed:e,q:t},{enabled:r=!1}={}){try{if(!r||!t.followup)return null;const n={issues:{get count(){return this.open+this.closed},get open(){return e.repositories.issues_open},get closed(){return e.repositories.issues_closed}},pr:{get count(){return this.open+this.merged},get open(){return e.repositories.pr_open},get merged(){return e.repositories.pr_merged}}};return n}catch(e){throw{error:{message:"An error occured",instance:e}}}},gists:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.gists)return null;console.debug(`metrics/compute/${e}/plugins > gists > querying api`);const{user:{gists:a}}=await t(` - query Gists { - user(login: "${e}") { - gists(last: 100) { - totalCount - nodes { - stargazerCount - isFork - forks { - totalCount - } - comments { - totalCount - } - } - } - } - } - `);console.debug(`metrics/compute/${e}/plugins > gists > processing ${a.nodes.length} gists`);let o=0,i=0,s=0;for(const e of a.nodes)e.isFork||(o+=e.stargazerCount,i+=e.forks.totalCount,s+=e.comments.totalCount);return{totalCount:a.totalCount,stargazers:o,forks:i,comments:s}}catch(e){throw{error:{message:"An error occured",instance:e}}}},habits:async function({login:e,rest:t,imports:r,data:n,q:a},{enabled:o=!1,from:i=100}={}){try{if(!o||!a.habits)return null;let{"habits.from":s=i.from??500,"habits.days":l=14,"habits.facts":d=!0,"habits.charts":p=!1}=a;s=_Mathmax(1,_Mathmin(1e3,+s)),l=_Mathmax(1,_Mathmin(30,+s));const c={facts:d,charts:p,commits:{hour:NaN,hours:{},day:NaN,days:{}},indents:{style:"",spaces:0,tabs:0},linguist:{available:!1,ordered:[],languages:{}}},u=_Mathceil(s/100),m=n.config.timezone?.offset??0;console.debug(`metrics/compute/${e}/plugins > habits > querying api`);const g=[];try{for(let r=0;r habits > loading page ${r}`),g.push(...(await t.activity.listEventsForAuthenticatedUser({username:e,per_page:100,page:r})).data)}catch{console.debug(`metrics/compute/${e}/plugins > habits > no more page to load`)}console.debug(`metrics/compute/${e}/plugins > habits > ${g.length} events loaded`);const h=g.filter(({type:e})=>"PushEvent"===e).filter(({actor:t})=>t.login===e).filter(({created_at:e})=>new Date(e)>new Date(Date.now()-1e3*(60*(60*(24*l)))));console.debug(`metrics/compute/${e}/plugins > habits > filtered out ${h.length} push events over last ${l} days`),console.debug(`metrics/compute/${e}/plugins > habits > loading patches`);const f=[...(await Promise.allSettled(h.flatMap(({payload:e})=>e.commits).map(e=>e.url).map(async e=>(await t.request(e)).data.files)))].filter(({status:e})=>"fulfilled"===e).map(({value:e})=>e).flatMap(e=>e.map(e=>({name:r.paths.basename(e.filename),patch:e.patch??""}))).map(({name:e,patch:t})=>({name:e,patch:t.split("\n").filter(e=>/^[-+]/.test(e)).map(e=>e.substring(1)).join("\n")}));{console.debug(`metrics/compute/${e}/plugins > habits > searching most active day of week`);const t=h.map(({created_at:e})=>new Date(new Date(e).getTime()+m).getDay());for(const e of t)c.commits.days[e]=(c.commits.days[e]??0)+1;c.commits.days.max=_Mathmax(...Object.values(c.commits.days)),c.commits.day=t.length?["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][Object.entries(c.commits.days).sort(([e,t],[r,n])=>n-t).map(([e,t])=>e)[0]]??NaN:NaN}{console.debug(`metrics/compute/${e}/plugins > habits > searching most active time of day`);const t=h.map(({created_at:e})=>new Date(new Date(e).getTime()+m).getHours());for(const e of t)c.commits.hours[e]=(c.commits.hours[e]??0)+1;c.commits.hours.max=_Mathmax(...Object.values(c.commits.hours)),c.commits.hour=t.length?`${Object.entries(c.commits.hours).sort(([e,t],[r,n])=>n-t).map(([e,t])=>e)[0]}`.padStart(2,"0"):NaN}if(console.debug(`metrics/compute/${e}/plugins > habits > searching indent style`),f.map(({patch:e})=>e.match(/((?:\t)|(?: )) /gm)??[]).forEach(e=>c.indents[/^\t/.test(e)?"tabs":"spaces"]++),c.indents.style=c.indents.spaces>c.indents.tabs?"spaces":c.indents.tabs>c.indents.spaces?"tabs":"",p){console.debug(`metrics/compute/${e}/plugins > habits > searching recently used languages using linguist`);const t={win32:"wsl"}[process.platform]??"";if(f.length&&(await r.run(`${t} which github-linguist`))){c.linguist.available=!0;const n=r.paths.join(r.os.tmpdir(),`${h[0]?.actor?.id??0}`);console.debug(`metrics/compute/${e}/plugins > habits > creating temp dir ${n} with ${f.length} files`),await r.fs.mkdir(n,{recursive:!0}),await Promise.all(f.map(async({name:e,patch:t},a)=>await r.fs.writeFile(r.paths.join(n,`${a}${r.paths.extname(e)}`),t))),console.debug(`metrics/compute/${e}/plugins > habits > creating temp git repository`),await r.run(`git init && git add . && git config user.name "linguist" && git config user.email "null@github.com" && git commit -m "linguist"`,{cwd:n}).catch(console.debug),await r.run(`git status`,{cwd:n}),console.debug(`metrics/compute/${e}/plugins > habits > running linguist`),(await r.run(`${t} github-linguist --breakdown`,{cwd:n})).split("\n").map(e=>e.match(/(?[\d.]+)%\s+(?\w+)/)?.groups).filter(e=>e).map(({value:e,language:t})=>c.linguist.languages[t]=(c.linguist.languages[t]??0)+e/100),c.linguist.ordered=Object.entries(c.linguist.languages).sort(([e,t],[r,n])=>n-t)}else console.debug(`metrics/compute/${e}/plugins > habits > linguist not available`)}return c}catch(e){if(e.error?.message)throw e;throw{error:{message:"An error occured",instance:e}}}},isocalendar:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.isocalendar)return null;let{"isocalendar.duration":a="half-year"}=r;a=["full-year","half-year"].includes(a)?a:"full-year";const o=new Date,s=new Date(o);"full-year"===a?s.setFullYear(o.getFullYear()-1):s.setHours(-4320);const l=new Date(s);l.setHours(-336),console.debug(`metrics/compute/${e}/plugins > isocalendar > querying api`);const d={};for(const[r,n,a]of[["padding",l,s],["weeks",s,o]]){console.debug(`metrics/compute/${e}/plugins > isocalendar > loading ${r} from "${n.toISOString()}" to "${a.toISOString()}"`);const{user:{calendar:{contributionCalendar:{weeks:o}}}}=await t(` - query Calendar { - user(login: "${e}") { - calendar:contributionsCollection(from: "${n.toISOString()}", to: "${a.toISOString()}") { - contributionCalendar { - weeks { - contributionDays { - contributionCount - color - date - } - } - } - } - } - } - `);d[r]=o}console.debug(`metrics/compute/${e}/plugins > isocalendar > applying padding`);const p=d.weeks[0].contributionDays,c=d.padding.flatMap(({contributionDays:e})=>e).filter(({date:e})=>!p.map(({date:e})=>e).includes(e));for(;7>p.length;)p.unshift(c.pop());console.debug(`metrics/compute/${e}/plugins > isocalendar > computing stats`);let u=0,m={max:0,current:0},g=[],h=0;for(const e of d.weeks)for(const t of e.contributionDays)g.push(t.contributionCount),u=_Mathmax(u,t.contributionCount),m.current=t.contributionCount?m.current+1:0,m.max=_Mathmax(m.max,m.current);h=(g.reduce((e,t)=>e+t,0)/g.length).toFixed(2).replace(/[.]0+$/,""),console.debug(`metrics/compute/${e}/plugins > isocalendar > computing svg render`);const f=6;let y=0,i=0,b=` - +module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math.tan,_Mathasin=Math.asin,_Mathsin=Math.sin,_Mathcos=Math.cos,_MathPI=Math.PI,_Mathsqrt=Math.sqrt,_NumberisInteger=Number.isInteger,_NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_NumberNEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,_Stringprototype=String.prototype,_NumberMAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER,_StringfromCharCode=String.fromCharCode,_Mathpow=Math.pow,_Mathabs=Math.abs,_Mathround=Math.round,_Mathfloor=Math.floor,_Mathceil=Math.ceil,_Mathmax=Math.max,_Mathmin=Math.min;function __webpack_require__(e){if(__webpack_module_cache__[e])return __webpack_module_cache__[e].exports;var t=__webpack_module_cache__[e]={exports:{}},r=!0;try{__webpack_modules__[e].call(t.exports,t,t.exports,__webpack_require__),r=!1}finally{r&&delete __webpack_module_cache__[e]}return t.exports}var __webpack_modules__={83994:(e,t,r)=>{"use strict";async function n({log:e=!0}={}){const t=e?console.debug:()=>null;t(`metrics/setup > setup`);const n="src/templates",a="src/queries",o={templates:{},queries:{},settings:{},statics:r.ab+"html",node_modules:b.resolve("node_modules")};if(t(`metrics/setup > load settings.json`),y.existsSync(r.ab+"settings.json")?(o.settings=JSON.parse(`${await y.promises.readFile(b.resolve("settings.json"))}`),t(`metrics/setup > load settings.json > success`)):t(`metrics/setup > load settings.json > (missing)`),o.settings.templates||(o.settings.templates={default:"classic",enabled:[]}),o.settings.plugins||(o.settings.plugins={}),o.settings.plugins.base={parts:["header","activity","community","repositories","metadata"]},o.settings.debug&&t(S.inspect(o.settings,{depth:1/0,maxStringLength:256})),t(`metrics/setup > load package.json`),y.existsSync(r.ab+"package.json")?(o.package=JSON.parse(`${await y.promises.readFile(b.resolve("package.json"))}`),t(`metrics/setup > load package.json > success`)):(t(`metrics/setup > load package.json > (missing)`),o.package={version:"2.10.0-beta",author:"lowlighter"}),y.existsSync(r.ab+"templates"))for(const e of await y.promises.readdir(n)){if(/.*[.]mjs$/.test(e))continue;t(`metrics/setup > load template [${e}]`);const r=[`${n}/${e}/image.svg`,`${n}/${e}/style.css`,`${n}/${e}/fonts.css`].map(t=>y.existsSync(b.resolve(t))?t:t.replace(`${n}/${e}/`,`${n}/classic/`)).map(e=>b.resolve(e)),[a,i,s]=await Promise.all(r.map(async e=>`${await y.promises.readFile(e)}`));o.templates[e]={image:a,style:i,fonts:s},t(`metrics/setup > load template [${e}] > success`),o.settings.debug&&Object.defineProperty(o.templates,e,{get(){t(`metrics/setup > reload template [${e}]`);const[n,a,o]=r.map(e=>`${y.readFileSync(e)}`);return t(`metrics/setup > reload template [${e}] > success`),{image:n,style:a,fonts:o}}})}else t(`metrics/setup > load templates from build`),o.templates=JSON.parse(Buffer.from(`eyJjbGFzc2ljIjp7ImltYWdlIjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0ODBcIiBoZWlnaHQ9XCI8JT0gMTJcclxuICArICghIWJhc2UuaGVhZGVyKSo4MCArICh1c2VyLmlzSGlyZWFibGUpKjE2XHJcbiAgKyAoISFiYXNlLm1ldGFkYXRhKSozOFxyXG4gICsgKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKjEyOFxyXG4gICsgKCEhYmFzZS5yZXBvc2l0b3JpZXMpKjEwOFxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooKCEhcGx1Z2lucy50cmFmZmljKXx8KCEhcGx1Z2lucy5saW5lcykpKSoxNlxyXG4gICsgKCEhcGx1Z2lucy5mb2xsb3d1cCkqNjhcclxuICArICghIXBsdWdpbnMucGFnZXNwZWVkKSoxMjYgKyAocGx1Z2lucy5wYWdlc3BlZWQ/LmRldGFpbGVkID8/IDApKjYqMjAgKyAoISFwbHVnaW5zLnBhZ2VzcGVlZD8uc2NyZWVuc2hvdCkqMzMwXHJcbiAgKyAoISFwbHVnaW5zLmhhYml0cykqMjggKyAoISFwbHVnaW5zLmhhYml0cz8uZmFjdHMpKjU4ICsgKCEhcGx1Z2lucy5oYWJpdHM/LmNoYXJ0cykqMjI2XHJcbiAgKyAoISFwbHVnaW5zLmxhbmd1YWdlcykqOTZcclxuICArICghIXBsdWdpbnMubXVzaWMpKjY0ICsgKHBsdWdpbnMubXVzaWM/LnRyYWNrcz8ubGVuZ3RoID8gMTQrTWF0aC5tYXgoMCwgcGx1Z2lucy5tdXNpYy50cmFja3MubGVuZ3RoLTEpKjM2IDogMClcclxuICArICghIXBsdWdpbnMucG9zdHMpKjY0ICsgKHBsdWdpbnMucG9zdHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo0MFxyXG4gICsgKCEhcGx1Z2lucy5pc29jYWxlbmRhcikqMTkyICsgKHBsdWdpbnMuaXNvY2FsZW5kYXI/LmR1cmF0aW9uID09PSAnZnVsbC15ZWFyJykqMTAwXHJcbiAgKyAoISFwbHVnaW5zLmdpc3RzKSo2OFxyXG4gICsgKCEhcGx1Z2lucy50b3BpY3MpKjE2MFxyXG4gICsgKCEhcGx1Z2lucy5wcm9qZWN0cykqMjIgKyAocGx1Z2lucy5wcm9qZWN0cz8ubGlzdD8ubGVuZ3RoID8/IDApKjYwICsgKCEhcGx1Z2lucy5wcm9qZWN0cz8uZXJyb3IpKjIyXHJcbiAgKyAoISFwbHVnaW5zLnR3ZWV0cykqNjQgKyAocGx1Z2lucy50d2VldHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo5MFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoKCEhcGx1Z2lucy5oYWJpdHMpKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKyghIXBsdWdpbnMubXVzaWMpKyghIXBsdWdpbnMucG9zdHMpKyghIXBsdWdpbnMuaXNvY2FsZW5kYXIpKyghIXBsdWdpbnMuZ2lzdHMpKyghIXBsdWdpbnMudG9waWNzKSsoISFwbHVnaW5zLnByb2plY3RzKSktMSkpKjRcclxuJT5cIj5cclxuXHJcbiAgPGRlZnM+PHN0eWxlPjwlPSBmb250cyAlPjwvc3R5bGU+PC9kZWZzPlxyXG5cclxuICA8c3R5bGU+XHJcbiAgICA8JT0gc3R5bGUgJT5cclxuICA8L3N0eWxlPlxyXG5cclxuICA8Zm9yZWlnbk9iamVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgPGRpdiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhclwiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gY29tcHV0ZWQuYXZhdGFyICU+XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9zcGFuPlxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBjb21wdXRlZC5jYWtlZGF5ID8gJ2Nha2VkYXknIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChjb21wdXRlZC5jYWtlZGF5KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDEuNWExLjI1IDEuMjUgMCAxMDAgMi41aDIuMzA5Yy0uMjMzLS44MTgtLjU0Mi0xLjQwMS0uODc4LTEuNzkzLS40My0uNTAyLS45MTUtLjcwNy0xLjQzMS0uNzA3ek0yIDIuNzVjMCAuNDUuMTA4Ljg3NS4zIDEuMjVoLS41NUExLjc1IDEuNzUgMCAwMDAgNS43NXYyYzAgLjY5OC40MDkgMS4zIDEgMS41ODJ2NC45MThjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgxMC41QTEuNzUgMS43NSAwIDAwMTUgMTQuMjVWOS4zMzJjLjU5MS0uMjgxIDEtLjg4NCAxLTEuNTgydi0yQTEuNzUgMS43NSAwIDAwMTQuMjUgNGgtLjU1YTIuNzUgMi43NSAwIDAwLTIuNDUtNGMtLjk4NCAwLTEuODc0LjQyLTIuNTcgMS4yM0E1LjA4NiA1LjA4NiAwIDAwOCAyLjI3NGE1LjA4NiA1LjA4NiAwIDAwLS42OC0xLjA0MkM2LjYyMy40MiA1LjczMyAwIDQuNzUgMEEyLjc1IDIuNzUgMCAwMDIgMi43NXpNOC45NDEgNGgyLjMwOWExLjI1IDEuMjUgMCAxMDAtMi41Yy0uNTE2IDAtMSAuMjA1LTEuNDMuNzA3LS4zMzcuMzkyLS42NDYuOTc1LS44NzkgMS43OTN6bS0xLjg0IDEuNUgxLjc1YS4yNS4yNSAwIDAwLS4yNS4yNXYyYzAgLjEzOC4xMTIuMjUuMjUuMjVoNS41VjUuNWgtLjE0OXptMS42NDkgMFY4aDUuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTJhLjI1LjI1IDAgMDAtLjI1LS4yNWgtNS41em0wIDRoNC43NXY0Ljc1YS4yNS4yNSAwIDAxLS4yNS4yNWgtNC41di01em0tMS41IDB2NWgtNC41YS4yNS4yNSAwIDAxLS4yNS0uMjVWOS41aDQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBKb2luZWQgR2l0SHViIDwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0uNSA0Ljc1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMC40NzEuNjk2bDIuNSAxYS43NS43NSAwIDAwLjU1Ny0xLjM5Mkw4LjUgNy43NDJWNC43NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEpvaW5lZCBHaXRIdWIgPCU9IGNvbXB1dGVkLnJlZ2lzdHJhdGlvbiAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUuNSAzLjVhMiAyIDAgMTAwIDQgMiAyIDAgMDAwLTR6TTIgNS41YTMuNSAzLjUgMCAxMTUuODk4IDIuNTQ5IDUuNTA3IDUuNTA3IDAgMDEzLjAzNCA0LjA4NC43NS43NSAwIDExLTEuNDgyLjIzNSA0LjAwMSA0LjAwMSAwIDAwLTcuOSAwIC43NS43NSAwIDAxLTEuNDgyLS4yMzZBNS41MDcgNS41MDcgMCAwMTMuMTAyIDguMDUgMy40OSAzLjQ5IDAgMDEyIDUuNXpNMTEgNGEuNzUuNzUgMCAxMDAgMS41IDEuNSAxLjUgMCAwMS42NjYgMi44NDQuNzUuNzUgMCAwMC0uNDE2LjY3MnYuMzUyYS43NS43NSAwIDAwLjU3NC43M2MxLjIuMjg5IDIuMTYyIDEuMiAyLjUyMiAyLjM3MmEuNzUuNzUgMCAxMDEuNDM0LS40NCA1LjAxIDUuMDEgMCAwMC0yLjU2LTMuMDEyQTMgMyAwIDAwMTEgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBGb2xsb3dlZCBieSA8JT0gdXNlci5mb2xsb3dlcnMudG90YWxDb3VudCAlPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSBpZiAodXNlci5pc0hpcmVhYmxlKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaGlyZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNi43NSAwQTEuNzUgMS43NSAwIDAwNSAxLjc1VjNIMS43NUExLjc1IDEuNzUgMCAwMDAgNC43NXY4LjVDMCAxNC4yMTYuNzg0IDE1IDEuNzUgMTVoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDEzLjI1di04LjVBMS43NSAxLjc1IDAgMDAxNC4yNSAzSDExVjEuNzVBMS43NSAxLjc1IDAgMDA5LjI1IDBoLTIuNXpNOS41IDNWMS43NWEuMjUuMjUgMCAwMC0uMjUtLjI1aC0yLjVhLjI1LjI1IDAgMDAtLjI1LjI1VjNoM3pNNSA0LjVIMS43NWEuMjUuMjUgMCAwMC0uMjUuMjVWNmEyIDIgMCAwMDIgMmg5YTIgMiAwIDAwMi0yVjQuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNUg1em0tMS41IDVhMy40ODQgMy40ODQgMCAwMS0yLS42Mjd2NC4zNzdjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNVY4Ljg3M2EzLjQ4NCAzLjQ4NCAwIDAxLTIgLjYyN2gtOXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBmb3IgaGlyZSAhXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNhbGVuZGFyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT4gMTFcIiB3aWR0aD1cIjwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT5cIiBoZWlnaHQ9XCIxNlwiPlxyXG4gICAgICAgICAgICAgICAgICA8Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IFt4LCB7Y29sb3J9XSBvZiBPYmplY3QuZW50cmllcyhjb21wdXRlZC5jYWxlbmRhcikpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPVwiZGF5XCIgeD1cIjwlPSB4KjE1ICU+XCIgeT1cIjBcIiB3aWR0aD1cIjExXCIgaGVpZ2h0PVwiMTFcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIgcng9XCIyXCIgcnk9XCIyXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEgMi41QTIuNSAyLjUgMCAwMTMuNSAwaDguNzVhLjc1Ljc1IDAgMDEuNzUuNzV2My41YS43NS43NSAwIDAxLTEuNSAwVjEuNWgtOGExIDEgMCAwMC0xIDF2Ni43MDhBMi40OTIgMi40OTIgMCAwMTMuNSA5aDMuMjVhLjc1Ljc1IDAgMDEwIDEuNUgzLjVhMSAxIDAgMTAwIDJoNS43NWEuNzUuNzUgMCAwMTAgMS41SDMuNUEyLjUgMi41IDAgMDExIDExLjV2LTl6bTEzLjIzIDcuNzlhLjc1Ljc1IDAgMDAxLjA2LTEuMDZsLTIuNTA1LTIuNTA1YS43NS43NSAwIDAwLTEuMDYgMEw5LjIyIDkuMjI5YS43NS43NSAwIDAwMS4wNiAxLjA2MWwxLjIyNS0xLjIyNHY2LjE4NGEuNzUuNzUgMCAwMDEuNSAwVjkuMDY2bDEuMjI0IDEuMjI0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIENvbnRyaWJ1dGVkIHRvIDwlPSB1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8udG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDwlIGlmIChiYXNlLmFjdGl2aXR5KSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgQWN0aXZpdHlcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEwLjUgNy43NWEyLjUgMi41IDAgMTEtNSAwIDIuNSAyLjUgMCAwMTUgMHptMS40My43NWE0LjAwMiA0LjAwMiAwIDAxLTcuODYgMEguNzVhLjc1Ljc1IDAgMTEwLTEuNWgzLjMyYTQuMDAxIDQuMDAxIDAgMDE3Ljg2IDBoMy4zMmEuNzUuNzUgMCAxMTAgMS41aC0zLjMyelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQuY29tbWl0cyAlPiBDb21taXQ8JT0gcyhjb21wdXRlZC5jb21taXRzKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjV2Ny43MzZhLjc1Ljc1IDAgMTAxLjUgMFYxLjc1QTEuNzUgMS43NSAwIDAwMTEuMjUgMGgtOC41QTEuNzUgMS43NSAwIDAwMSAxLjc1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgzLjE3YS43NS43NSAwIDAwMC0xLjVIMi43NWEuMjUuMjUgMCAwMS0uMjUtLjI1VjEuNzV6TTQuNzUgNGEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6TTQgNy43NUEuNzUuNzUgMCAwMTQuNzUgN2gyYS43NS43NSAwIDAxMCAxLjVoLTJBLjc1Ljc1IDAgMDE0IDcuNzV6bTExLjc3NCAzLjUzN2EuNzUuNzUgMCAwMC0xLjA0OC0xLjA3NEwxMC43IDE0LjE0NSA5LjI4MSAxMi43MmEuNzUuNzUgMCAwMC0xLjA2MiAxLjA1OGwxLjk0MyAxLjk1YS43NS43NSAwIDAwMS4wNTUuMDA4bDQuNTU3LTQuNDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zICU+IFB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnMpICU+IHJldmlld2VkXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zICU+IFB1bGwgcmVxdWVzdDwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsSXNzdWVDb250cmlidXRpb25zICU+IElzc3VlPCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9ucykgJT4gb3BlbmVkXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi43NSAyLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDQuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDIuNzV6TTEgMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDEwLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExMy4yNSAxMkg5LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxNCAxMy41NDNWMTJIMi43NUExLjc1IDEuNzUgMCAwMTEgMTAuMjV2LTcuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IHVzZXIuaXNzdWVDb21tZW50cy50b3RhbENvdW50ICU+IGlzc3VlIGNvbW1lbnQ8JT0gcyh1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwlIGlmIChiYXNlLmNvbW11bml0eSkgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuMzI2IDEuOTczYTEuMiAxLjIgMCAwMTEuNDktLjgzMmMuMzg3LjExMi45NzcuMzA3IDEuNTc1LjYwMi41ODYuMjkxIDEuMjQzLjcxIDEuNyAxLjI5Ni4wMjIuMDI3LjA0Mi4wNTYuMDYxLjA4NEExMy4yMiAxMy4yMiAwIDAxOCAzYy42NyAwIDEuMjg5LjAzNyAxLjg2MS4xMDhsLjA1MS0uMDdjLjQ1Ny0uNTg2IDEuMTE0LTEuMDA0IDEuNy0xLjI5NWE5LjY1NCA5LjY1NCAwIDAxMS41NzYtLjYwMiAxLjIgMS4yIDAgMDExLjQ5LjgzMmMuMTQuNDkzLjM1NiAxLjM0Ny40NzkgMi4yOS4wNzkuNjA0LjEyMyAxLjI4LjA3IDEuOTM2LjU0MS45NzcuNzczIDIuMTEuNzczIDMuMzAxQzE2IDEzIDE0LjUgMTUgOCAxNXMtOC0yLTgtNS41YzAtMS4wMzQuMjM4LTIuMTI4Ljc5NS0zLjExNy0uMDgtLjcxMi0uMDM0LTEuNDYuMDUyLTIuMTIuMTIyLS45NDMuMzQtMS43OTcuNDc5LTIuMjl6TTggMTMuMDY1YzYgMCA2LjUtMiA2LTQuMjdDMTMuMzYzIDUuOTA1IDExLjI1IDUgOCA1cy01LjM2My45MDQtNiAzLjc5NmMtLjUgMi4yNyAwIDQuMjcgNiA0LjI3elwiPjwvcGF0aD48cGF0aCBkPVwiTTQgOGExIDEgMCAwMTIgMHYxYTEgMSAwIDAxLTIgMFY4em0yLjA3OCAyLjQ5MmMtLjA4My0uMjY0LjE0Ni0uNDkyLjQyMi0uNDkyaDNjLjI3NiAwIC41MDUuMjI4LjQyMi40OTJDOS42NyAxMS4zMDQgOC44MzQgMTIgOCAxMmMtLjgzNCAwLTEuNjY5LS42OTYtMS45MjItMS41MDh6TTEwIDhhMSAxIDAgMTEyIDB2MWExIDEgMCAxMS0yIDBWOHpcIj48L3BhdGg+PC9zdmc+ICAgICAgICAgICAgICBDb21tdW5pdHkgc3RhdHNcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxNC4yNWMwIC4xMzguMTEyLjI1LjI1LjI1SDR2LTEuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDIuNWEuNzUuNzUgMCAwMS43NS43NXYxLjI1aDIuMjVhLjI1LjI1IDAgMDAuMjUtLjI1VjEuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNWgtOC41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41ek0xLjc1IDE2QTEuNzUgMS43NSAwIDAxMCAxNC4yNVYxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoOC41QzExLjIxNiAwIDEyIC43ODQgMTIgMS43NXYxMi41YzAgLjA4NS0uMDA2LjE2OC0uMDE4LjI1aDIuMjY4YS4yNS4yNSAwIDAwLjI1LS4yNVY4LjI4NWEuMjUuMjUgMCAwMC0uMTExLS4yMDhsLTEuMDU1LS43MDNhLjc1Ljc1IDAgMTEuODMyLTEuMjQ4bDEuMDU1LjcwM2MuNDg3LjMyNS43NzkuODcxLjc3OSAxLjQ1NnY1Ljk2NUExLjc1IDEuNzUgMCAwMTE0LjI1IDE2aC0zLjVhLjc1Ljc1IDAgMDEtLjE5Ny0uMDI2Yy0uMDk5LjAxNy0uMi4wMjYtLjMwMy4wMjZoLTNhLjc1Ljc1IDAgMDEtLjc1LS43NVYxNGgtMXYxLjI1YS43NS43NSAwIDAxLS43NS43NWgtM3pNMyAzLjc1QS43NS43NSAwIDAxMy43NSAzaC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxMyAzLjc1ek0zLjc1IDZhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpNMyA5Ljc1QS43NS43NSAwIDAxMy43NSA5aC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxMyA5Ljc1ek03Ljc1IDlhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpNNyA2Ljc1QS43NS43NSAwIDAxNy43NSA2aC41YS43NS43NSAwIDAxMCAxLjVoLS41QS43NS43NSAwIDAxNyA2Ljc1ek03Ljc1IDNhLjc1Ljc1IDAgMDAwIDEuNWguNWEuNzUuNzUgMCAwMDAtMS41aC0uNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgTWVtYmVyIG9mIDwlPSB1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCAlPiBvcmdhbml6YXRpb248JT0gcyh1c2VyLm9yZ2FuaXphdGlvbnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01LjUgMy41YTIgMiAwIDEwMCA0IDIgMiAwIDAwMC00ek0yIDUuNWEzLjUgMy41IDAgMTE1Ljg5OCAyLjU0OSA1LjUwNyA1LjUwNyAwIDAxMy4wMzQgNC4wODQuNzUuNzUgMCAxMS0xLjQ4Mi4yMzUgNC4wMDEgNC4wMDEgMCAwMC03LjkgMCAuNzUuNzUgMCAwMS0xLjQ4Mi0uMjM2QTUuNTA3IDUuNTA3IDAgMDEzLjEwMiA4LjA1IDMuNDkgMy40OSAwIDAxMiA1LjV6TTExIDRhLjc1Ljc1IDAgMTAwIDEuNSAxLjUgMS41IDAgMDEuNjY2IDIuODQ0Ljc1Ljc1IDAgMDAtLjQxNi42NzJ2LjM1MmEuNzUuNzUgMCAwMC41NzQuNzNjMS4yLjI4OSAyLjE2MiAxLjIgMi41MjIgMi4zNzJhLjc1Ljc1IDAgMTAxLjQzNC0uNDQgNS4wMSA1LjAxIDAgMDAtMi41Ni0zLjAxMkEzIDMgMCAwMDExIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIEZvbGxvd2luZyA8JT0gdXNlci5mb2xsb3dpbmcudG90YWxDb3VudCAlPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI1IDIuNWMtMS4zMzYgMC0yLjc1IDEuMTY0LTIuNzUgMyAwIDIuMTUgMS41OCA0LjE0NCAzLjM2NSA1LjY4MkEyMC41NjUgMjAuNTY1IDAgMDA4IDEzLjM5M2EyMC41NjEgMjAuNTYxIDAgMDAzLjEzNS0yLjIxMUMxMi45MiA5LjY0NCAxNC41IDcuNjUgMTQuNSA1LjVjMC0xLjgzNi0xLjQxNC0zLTIuNzUtMy0xLjM3MyAwLTIuNjA5Ljk4Ni0zLjAyOSAyLjQ1NmEuNzUuNzUgMCAwMS0xLjQ0MiAwQzYuODU5IDMuNDg2IDUuNjIzIDIuNSA0LjI1IDIuNXpNOCAxNC4yNWwtLjM0NS42NjYtLjAwMi0uMDAxLS4wMDYtLjAwMy0uMDE4LS4wMWE3LjY0MyA3LjY0MyAwIDAxLS4zMS0uMTcgMjIuMDc1IDIyLjA3NSAwIDAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDggMjIuMDggMCAwMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMkw4IDE0LjI1em0wIDBsLjM0NS42NjZhLjc1Mi43NTIgMCAwMS0uNjkgMEw4IDE0LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBTcG9uc29yaW5nIDwlPSB1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgU3RhcnJlZCA8JT0gdXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5zdGFycmVkUmVwb3NpdG9yaWVzLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjc5IDcuOTMyYy40MTItLjYyMSAxLjI0Mi0xLjc1IDIuMzY2LTIuNzE3QzUuMTc1IDQuMjQyIDYuNTI3IDMuNSA4IDMuNWMxLjQ3MyAwIDIuODI0Ljc0MiAzLjk1NSAxLjcxNSAxLjEyNC45NjcgMS45NTQgMi4wOTYgMi4zNjYgMi43MTdhLjExOS4xMTkgMCAwMTAgLjEzNmMtLjQxMi42MjEtMS4yNDIgMS43NS0yLjM2NiAyLjcxN0MxMC44MjUgMTEuNzU4IDkuNDczIDEyLjUgOCAxMi41Yy0xLjQ3MyAwLTIuODI0LS43NDItMy45NTUtMS43MTVDMi45MiA5LjgxOCAyLjA5IDguNjkgMS42NzkgOC4wNjhhLjExOS4xMTkgMCAwMTAtLjEzNnpNOCAyYy0xLjk4MSAwLTMuNjcuOTkyLTQuOTMzIDIuMDc4QzEuNzk3IDUuMTY5Ljg4IDYuNDIzLjQzIDcuMWExLjYxOSAxLjYxOSAwIDAwMCAxLjc5OGMuNDUuNjc4IDEuMzY3IDEuOTMyIDIuNjM3IDMuMDI0QzQuMzI5IDEzLjAwOCA2LjAxOSAxNCA4IDE0YzEuOTgxIDAgMy42Ny0uOTkyIDQuOTMzLTIuMDc4IDEuMjctMS4wOTEgMi4xODctMi4zNDUgMi42MzctMy4wMjNhMS42MTkgMS42MTkgMCAwMDAtMS43OThjLS40NS0uNjc4LTEuMzY3LTEuOTMyLTIuNjM3LTMuMDIzQzExLjY3MSAyLjk5MiA5Ljk4MSAyIDggMnptMCA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBXYXRjaGluZyA8JT0gdXNlci53YXRjaGluZy50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8JSBpZiAoYmFzZS5yZXBvc2l0b3JpZXMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yIDIuNUEyLjUgMi41IDAgMDE0LjUgMGg4Ljc1YS43NS43NSAwIDAxLjc1Ljc1djEyLjVhLjc1Ljc1IDAgMDEtLjc1Ljc1aC0yLjVhLjc1Ljc1IDAgMTEwLTEuNWgxLjc1di0yaC04YTEgMSAwIDAwLS43MTQgMS43Ljc1Ljc1IDAgMDEtMS4wNzIgMS4wNUEyLjQ5NSAyLjQ5NSAwIDAxMiAxMS41di05em0xMC41LTFWOWgtOGMtLjM1NiAwLS42OTQuMDc0LTEgLjIwOFYyLjVhMSAxIDAgMDExLTFoOHpNNSAxMi4yNXYzLjI1YS4yNS4yNSAwIDAwLjQuMmwxLjQ1LTEuMDg3YS4yNS4yNSAwIDAxLjMgMEw4LjYgMTUuN2EuMjUuMjUgMCAwMC40LS4ydi0zLjI1YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTMuNWEuMjUuMjUgMCAwMC0uMjUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gdXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCAlPiBSZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguNzUuNzVhLjc1Ljc1IDAgMDAtMS41IDBWMmgtLjk4NGMtLjMwNSAwLS42MDQuMDgtLjg2OS4yM2wtMS4yODguNzM3QS4yNS4yNSAwIDAxMy45ODQgM0gxLjc1YS43NS43NSAwIDAwMCAxLjVoLjQyOEwuMDY2IDkuMTkyYS43NS43NSAwIDAwLjE1NC44MzhsLjUzLS41My0uNTMuNTN2LjAwMWwuMDAyLjAwMi4wMDIuMDAyLjAwNi4wMDYuMDE2LjAxNS4wNDUuMDRhMy41MTQgMy41MTQgMCAwMC42ODYuNDVBNC40OTIgNC40OTIgMCAwMDMgMTFjLjg4IDAgMS41NTYtLjIyIDIuMDIzLS40NTRhMy41MTUgMy41MTUgMCAwMC42ODYtLjQ1bC4wNDUtLjA0LjAxNi0uMDE1LjAwNi0uMDA2LjAwMi0uMDAyLjAwMS0uMDAyTDUuMjUgOS41bC41My41M2EuNzUuNzUgMCAwMC4xNTQtLjgzOEwzLjgyMiA0LjVoLjE2MmMuMzA1IDAgLjYwNC0uMDguODY5LS4yM2wxLjI4OS0uNzM3YS4yNS4yNSAwIDAxLjEyNC0uMDMzaC45ODRWMTNoLTIuNWEuNzUuNzUgMCAwMDAgMS41aDYuNWEuNzUuNzUgMCAwMDAtMS41aC0yLjVWMy41aC45ODRhLjI1LjI1IDAgMDEuMTI0LjAzM2wxLjI5LjczNmMuMjY0LjE1Mi41NjMuMjMxLjg2OC4yMzFoLjE2MmwtMi4xMTIgNC42OTJhLjc1Ljc1IDAgMDAuMTU0LjgzOGwuNTMtLjUzLS41My41M3YuMDAxbC4wMDIuMDAyLjAwMi4wMDIuMDA2LjAwNi4wMTYuMDE1LjA0NS4wNGEzLjUxNyAzLjUxNyAwIDAwLjY4Ni40NUE0LjQ5MiA0LjQ5MiAwIDAwMTMgMTFjLjg4IDAgMS41NTYtLjIyIDIuMDIzLS40NTRhMy41MTIgMy41MTIgMCAwMC42ODYtLjQ1bC4wNDUtLjA0LjAxLS4wMS4wMDYtLjAwNS4wMDYtLjAwNi4wMDItLjAwMi4wMDEtLjAwMi0uNTI5LS41MzEuNTMuNTNhLjc1Ljc1IDAgMDAuMTU0LS44MzhMMTMuODIzIDQuNWguNDI3YS43NS43NSAwIDAwMC0xLjVoLTIuMjM0YS4yNS4yNSAwIDAxLS4xMjQtLjAzM2wtMS4yOS0uNzM2QTEuNzUgMS43NSAwIDAwOS43MzUgMkg4Ljc1Vi43NXpNMS42OTUgOS4yMjdjLjI4NS4xMzUuNzE4LjI3MyAxLjMwNS4yNzNzMS4wMi0uMTM4IDEuMzA1LS4yNzNMMyA2LjMyN2wtMS4zMDUgMi45em0xMCAwYy4yODUuMTM1LjcxOC4yNzMgMS4zMDUuMjczczEuMDItLjEzOCAxLjMwNS0uMjczTDEzIDYuMzI3bC0xLjMwNSAyLjl6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlLmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICBQcmVmZXIgPCU9IGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlICU+IGxpY2Vuc2VcclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIE5vIGxpY2Vuc2UgcHJlZmVyZW5jZVxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSA3Ljc3NVYyLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg1LjAyNWEuMjUuMjUgMCAwMS4xNzcuMDczbDYuMjUgNi4yNWEuMjUuMjUgMCAwMTAgLjM1NGwtNS4wMjUgNS4wMjVhLjI1LjI1IDAgMDEtLjM1NCAwbC02LjI1LTYuMjVhLjI1LjI1IDAgMDEtLjA3My0uMTc3em0tMS41IDBWMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDUuMDI1Yy40NjQgMCAuOTEuMTg0IDEuMjM4LjUxM2w2LjI1IDYuMjVhMS43NSAxLjc1IDAgMDEwIDIuNDc0bC01LjAyNiA1LjAyNmExLjc1IDEuNzUgMCAwMS0yLjQ3NCAwbC02LjI1LTYuMjVBMS43NSAxLjc1IDAgMDExIDcuNzc1ek02IDVhMSAxIDAgMTAwIDIgMSAxIDAgMDAwLTJ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5yZWxlYXNlcyAlPiBSZWxlYXNlPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnJlbGVhc2VzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguODc4LjM5MmExLjc1IDEuNzUgMCAwMC0xLjc1NiAwbC01LjI1IDMuMDQ1QTEuNzUgMS43NSAwIDAwMSA0Ljk1MXY2LjA5OGMwIC42MjQuMzMyIDEuMi44NzIgMS41MTRsNS4yNSAzLjA0NWExLjc1IDEuNzUgMCAwMDEuNzU2IDBsNS4yNS0zLjA0NWMuNTQtLjMxMy44NzItLjg5Ljg3Mi0xLjUxNFY0Ljk1MWMwLS42MjQtLjMzMi0xLjItLjg3Mi0xLjUxNEw4Ljg3OC4zOTJ6TTcuODc1IDEuNjlhLjI1LjI1IDAgMDEuMjUgMGw0LjYzIDIuNjg1TDggNy4xMzMgMy4yNDUgNC4zNzVsNC42My0yLjY4NXpNMi41IDUuNjc3djUuMzcyYzAgLjA5LjA0Ny4xNzEuMTI1LjIxNmw0LjYyNSAyLjY4M1Y4LjQzMkwyLjUgNS42Nzd6bTYuMjUgOC4yNzFsNC42MjUtMi42ODNhLjI1LjI1IDAgMDAuMTI1LS4yMTZWNS42NzdMOC43NSA4LjQzMnY1LjUxNnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gdXNlci5wYWNrYWdlcy50b3RhbENvdW50ICU+IFBhY2thZ2U8JT0gcyh1c2VyLnBhY2thZ2VzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAzLjVjMC0uMTMzLjA1OC0uMzE4LjI4Mi0uNTUuMjI3LS4yMzcuNTkyLS40ODQgMS4xLS43MDhDNC44OTkgMS43OTUgNi4zNTQgMS41IDggMS41YzEuNjQ3IDAgMy4xMDIuMjk1IDQuMTE3Ljc0Mi41MS4yMjQuODc0LjQ3IDEuMTAxLjcwNy4yMjQuMjMzLjI4Mi40MTguMjgyLjU1MSAwIC4xMzMtLjA1OC4zMTgtLjI4Mi41NS0uMjI3LjIzNy0uNTkyLjQ4NC0xLjEuNzA4QzExLjEwMSA1LjIwNSA5LjY0NiA1LjUgOCA1LjVjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDctLjIyNC0uMjMzLS4yODItLjQxOC0uMjgyLS41NTF6TTEgMy41YzAtLjYyNi4yOTItMS4xNjUuNy0xLjU5LjQwNi0uNDIyLjk1Ni0uNzY3IDEuNTc5LTEuMDQxQzQuNTI1LjMyIDYuMTk1IDAgOCAwYzEuODA1IDAgMy40NzUuMzIgNC43MjIuODY5LjYyMi4yNzQgMS4xNzIuNjIgMS41NzggMS4wNC40MDguNDI2LjcuOTY1LjcgMS41OTF2OWMwIC42MjYtLjI5MiAxLjE2NS0uNyAxLjU5LS40MDYuNDIyLS45NTYuNzY3LTEuNTc5IDEuMDQxQzExLjQ3NiAxNS42OCA5LjgwNiAxNiA4IDE2Yy0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5LS42MjMtLjI3NC0xLjE3My0uNjItMS41NzktMS4wNC0uNDA4LS40MjYtLjctLjk2NS0uNy0xLjU5MXYtOXpNMi41IDhWNS43MjRjLjI0MS4xNS41MDMuMjg2Ljc3OS40MDdDNC41MjUgNi42OCA2LjE5NSA3IDggN2MxLjgwNSAwIDMuNDc1LS4zMiA0LjcyMi0uODY5LjI3NS0uMTIxLjUzNy0uMjU3Ljc3OC0uNDA3VjhjMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgOS43MDUgOS42NDYgMTAgOCAxMGMtMS42NDcgMC0zLjEwMi0uMjk1LTQuMTE3LS43NDItLjUxLS4yMjQtLjg3NC0uNDctMS4xMDEtLjcwN0MyLjU1OCA4LjMxOCAyLjUgOC4xMzMgMi41IDh6bTAgMi4yMjVWMTIuNWMwIC4xMzMuMDU4LjMxOC4yODIuNTUuMjI3LjIzNy41OTIuNDg0IDEuMS43MDggMS4wMTYuNDQ3IDIuNDcxLjc0MiA0LjExOC43NDIgMS42NDcgMCAzLjEwMi0uMjk1IDQuMTE3LS43NDIuNTEtLjIyNC44NzQtLjQ3IDEuMTAxLS43MDcuMjI0LS4yMzMuMjgyLS40MTguMjgyLS41NTF2LTIuMjc1Yy0uMjQxLjE1LS41MDMuMjg1LS43NzguNDA2LTEuMjQ3LjU0OS0yLjkxNy44NjktNC43MjIuODY5LTEuODA1IDAtMy40NzUtLjMyLTQuNzIxLS44NjlhNi4yMzYgNi4yMzYgMCAwMS0uNzc5LS40MDZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLmRpc2tVc2FnZSAlPiB1c2VkXHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGluZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBwbHVnaW5zLmxpbmVzLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNC42NjRhLjI1LjI1IDAgMDAtLjA3My0uMTc3bC0yLjkxNC0yLjkxNGEuMjUuMjUgMCAwMC0uMTc3LS4wNzNIMi43NXpNMSAxLjc1QzEgLjc4NCAxLjc4NCAwIDIuNzUgMGg3LjU4NmMuNDY0IDAgLjkwOS4xODQgMS4yMzcuNTEzbDIuOTE0IDIuOTE0Yy4zMjkuMzI4LjUxMy43NzMuNTEzIDEuMjM3djkuNTg2QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMS43NXptNyAxLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS41aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjV2MS41YS43NS43NSAwIDAxLTEuNSAwVjdoLTEuNWEuNzUuNzUgMCAwMTAtMS41aDEuNVY0QS43NS43NSAwIDAxOCAzLjI1em0tMyA4YS43NS43NSAwIDAxLjc1LS43NWg0LjVhLjc1Ljc1IDAgMDEwIDEuNWgtNC41YS43NS43NSAwIDAxLS43NS0uNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxpbmVzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5saW5lcy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmxpbmVzLmFkZGVkICU+IGFkZGVkLCA8JT0gcGx1Z2lucy5saW5lcy5kZWxldGVkICU+IHJlbW92ZWRcclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjI1IDIuNWMtMS4zMzYgMC0yLjc1IDEuMTY0LTIuNzUgMyAwIDIuMTUgMS41OCA0LjE0NCAzLjM2NSA1LjY4MkEyMC41NjUgMjAuNTY1IDAgMDA4IDEzLjM5M2EyMC41NjEgMjAuNTYxIDAgMDAzLjEzNS0yLjIxMUMxMi45MiA5LjY0NCAxNC41IDcuNjUgMTQuNSA1LjVjMC0xLjgzNi0xLjQxNC0zLTIuNzUtMy0xLjM3MyAwLTIuNjA5Ljk4Ni0zLjAyOSAyLjQ1NmEuNzUuNzUgMCAwMS0xLjQ0MiAwQzYuODU5IDMuNDg2IDUuNjIzIDIuNSA0LjI1IDIuNXpNOCAxNC4yNWwtLjM0NS42NjYtLjAwMi0uMDAxLS4wMDYtLjAwMy0uMDE4LS4wMWE3LjY0MyA3LjY0MyAwIDAxLS4zMS0uMTcgMjIuMDc1IDIyLjA3NSAwIDAxLTMuNDM0LTIuNDE0QzIuMDQ1IDEwLjczMSAwIDguMzUgMCA1LjUgMCAyLjgzNiAyLjA4NiAxIDQuMjUgMSA1Ljc5NyAxIDcuMTUzIDEuODAyIDggMy4wMiA4Ljg0NyAxLjgwMiAxMC4yMDMgMSAxMS43NSAxIDEzLjkxNCAxIDE2IDIuODM2IDE2IDUuNWMwIDIuODUtMi4wNDUgNS4yMzEtMy44ODUgNi44MThhMjIuMDggMjIuMDggMCAwMS0zLjc0NCAyLjU4NGwtLjAxOC4wMS0uMDA2LjAwM2gtLjAwMkw4IDE0LjI1em0wIDBsLjM0NS42NjZhLjc1Mi43NTIgMCAwMS0uNjkgMEw4IDE0LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSB1c2VyLnNwb25zb3JzaGlwc0FzTWFpbnRhaW5lci50b3RhbENvdW50ICU+IFNwb25zb3I8JT0gcyh1c2VyLnNwb25zb3JzaGlwc0FzTWFpbnRhaW5lci50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMgJT4gU3RhcmdhemVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLnN0YXJnYXplcnMpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNSAzLjI1YS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6bTAgMi4xMjJhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OEEyLjI1IDIuMjUgMCAwMDUuNzUgOC41aDEuNXYyLjEyOGEyLjI1MSAyLjI1MSAwIDEwMS41IDBWOC41aDEuNWEyLjI1IDIuMjUgMCAwMDIuMjUtMi4yNXYtLjg3OGEyLjI1IDIuMjUgMCAxMC0xLjUgMHYuODc4YS43NS43NSAwIDAxLS43NS43NWgtNC41QS43NS43NSAwIDAxNSA2LjI1di0uODc4em0zLjc1IDcuMzc4YS43NS43NSAwIDExLTEuNSAwIC43NS43NSAwIDAxMS41IDB6bTMtOC43NWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQucmVwb3NpdG9yaWVzLmZvcmtzICU+IEZvcms8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuZm9ya3MpICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS42NzkgNy45MzJjLjQxMi0uNjIxIDEuMjQyLTEuNzUgMi4zNjYtMi43MTdDNS4xNzUgNC4yNDIgNi41MjcgMy41IDggMy41YzEuNDczIDAgMi44MjQuNzQyIDMuOTU1IDEuNzE1IDEuMTI0Ljk2NyAxLjk1NCAyLjA5NiAyLjM2NiAyLjcxN2EuMTE5LjExOSAwIDAxMCAuMTM2Yy0uNDEyLjYyMS0xLjI0MiAxLjc1LTIuMzY2IDIuNzE3QzEwLjgyNSAxMS43NTggOS40NzMgMTIuNSA4IDEyLjVjLTEuNDczIDAtMi44MjQtLjc0Mi0zLjk1NS0xLjcxNUMyLjkyIDkuODE4IDIuMDkgOC42OSAxLjY3OSA4LjA2OGEuMTE5LjExOSAwIDAxMC0uMTM2ek04IDJjLTEuOTgxIDAtMy42Ny45OTItNC45MzMgMi4wNzhDMS43OTcgNS4xNjkuODggNi40MjMuNDMgNy4xYTEuNjE5IDEuNjE5IDAgMDAwIDEuNzk4Yy40NS42NzggMS4zNjcgMS45MzIgMi42MzcgMy4wMjRDNC4zMjkgMTMuMDA4IDYuMDE5IDE0IDggMTRjMS45ODEgMCAzLjY3LS45OTIgNC45MzMtMi4wNzggMS4yNy0xLjA5MSAyLjE4Ny0yLjM0NSAyLjYzNy0zLjAyM2ExLjYxOSAxLjYxOSAwIDAwMC0xLjc5OGMtLjQ1LS42NzgtMS4zNjctMS45MzItMi42MzctMy4wMjNDMTEuNjcxIDIuOTkyIDkuOTgxIDIgOCAyem0wIDhhMiAyIDAgMTAwLTQgMiAyIDAgMDAwIDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycyAlPiBXYXRjaGVyPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLndhdGNoZXJzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRyYWZmaWMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IgPyAnZXJyb3InIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMCAxLjc1QS43NS43NSAwIDAxLjc1IDFoNC4yNTNjMS4yMjcgMCAyLjMxNy41OSAzIDEuNTAxQTMuNzQ0IDMuNzQ0IDAgMDExMS4wMDYgMWg0LjI0NWEuNzUuNzUgMCAwMS43NS43NXYxMC41YS43NS43NSAwIDAxLS43NS43NWgtNC41MDdhMi4yNSAyLjI1IDAgMDAtMS41OTEuNjU5bC0uNjIyLjYyMWEuNzUuNzUgMCAwMS0xLjA2IDBsLS42MjItLjYyMUEyLjI1IDIuMjUgMCAwMDUuMjU4IDEzSC43NWEuNzUuNzUgMCAwMS0uNzUtLjc1VjEuNzV6bTguNzU1IDNhMi4yNSAyLjI1IDAgMDEyLjI1LTIuMjVIMTQuNXY5aC0zLjc1N2MtLjcxIDAtMS40LjIwMS0xLjk5Mi41NzJsLjAwNC03LjMyMnptLTEuNTA0IDcuMzI0bC4wMDQtNS4wNzMtLjAwMi0yLjI1M0EyLjI1IDIuMjUgMCAwMDUuMDAzIDIuNUgxLjV2OWgzLjc1N2EzLjc1IDMuNzUgMCAwMTEuOTk0LjU3NHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHJhZmZpYy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMudHJhZmZpYy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMudmlld3MuY291bnQgJT4gdmlldzwlPSBzKHBsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudCkgJT4gaW4gbGFzdCB0d28gd2Vla3NcclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cCkgeyAlPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aDM+SXNzdWVzPC9oMz5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXAuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZm9sbG93dXAuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICA8bWFzayBpZD1cImlzc3Vlcy1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50ID8gMCA6IDIyMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDczYTQ5XCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjaXNzdWVzLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAoMS1wbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjZDczYTQ5XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDAxMTAuNjUtNS4wMDMuNzUuNzUgMCAwMC45NTktMS4xNTMgOCA4IDAgMTAyLjU5MiA4LjMzLjc1Ljc1IDAgMTAtMS40NDQtLjQwN0E2LjUgNi41IDAgMDExLjUgOHpNOCAxMmExIDEgMCAxMDAtMiAxIDEgMCAwMDAgMnptMC04YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAxMS0xLjUgMHYtMy41QS43NS43NSAwIDAxOCA0em00Ljc4IDQuMjhsMy0zYS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMi40NyAyLjQ3LS45Ny0uOTdhLjc0OS43NDkgMCAxMC0xLjA2IDEuMDZsMS41IDEuNWEuNzUuNzUgMCAwMDEuMDYgMHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQgJT4gQ2xvc2VkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiIzI4YTc0NVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMub3BlbiAlPiBPcGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgICA8aDM+UHVsbCByZXF1ZXN0czwvaDM+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJwci1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCA/IDAgOiAyMjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzZmNDJjMVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiMyOGE3NDVcIi8+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGhvcml6b250YWwgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiM2ZjQyYzFcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01IDMuMjU0VjMuMjV2LjAwNWEuNzUuNzUgMCAxMTAtLjAwNXYuMDA0em0uNDUgMS45YTIuMjUgMi4yNSAwIDEwLTEuOTUuMjE4djUuMjU2YTIuMjUgMi4yNSAwIDEwMS41IDBWNy4xMjNBNS43MzUgNS43MzUgMCAwMDkuMjUgOWgxLjM3OGEyLjI1MSAyLjI1MSAwIDEwMC0xLjVIOS4yNWE0LjI1IDQuMjUgMCAwMS0zLjgtMi4zNDZ6TTEyLjc1IDlhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6bS04LjUgNC41YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby13cmFwXCI+PCU9IHBsdWdpbnMuZm9sbG93dXAucHIubWVyZ2VkICU+IE1lcmdlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03LjE3NyAzLjA3M0w5LjU3My42NzdBLjI1LjI1IDAgMDExMCAuODU0djQuNzkyYS4yNS4yNSAwIDAxLS40MjcuMTc3TDcuMTc3IDMuNDI3YS4yNS4yNSAwIDAxMC0uMzU0ek0zLjc1IDIuNWEuNzUuNzUgMCAxMDAgMS41Ljc1Ljc1IDAgMDAwLTEuNXptLTIuMjUuNzVhMi4yNSAyLjI1IDAgMTEzIDIuMTIydjUuMjU2YTIuMjUxIDIuMjUxIDAgMTEtMS41IDBWNS4zNzJBMi4yNSAyLjI1IDAgMDExLjUgMy4yNXpNMTEgMi41aC0xVjRoMWExIDEgMCAwMTEgMXY1LjYyOGEyLjI1MSAyLjI1MSAwIDEwMS41IDBWNUEyLjUgMi41IDAgMDAxMSAyLjV6bTEgMTAuMjVhLjc1Ljc1IDAgMTExLjUgMCAuNzUuNzUgMCAwMS0xLjUgMHpNMy43NSAxMmEuNzUuNzUgMCAxMDAgMS41Ljc1Ljc1IDAgMDAwLTEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5sYW5ndWFnZXMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICAgICAgPGgzPk1vc3QgdXNlZCBsYW5ndWFnZXM8L2gzPlxyXG4gICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgIDxtYXNrIGlkPVwibGFuZ3VhZ2VzLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjbGFuZ3VhZ2VzLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzLmxlbmd0aCA/IDAgOiA0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgdmFsdWUsIGNvbG9yLCB4fSBvZiBwbHVnaW5zLmxhbmd1YWdlcy5mYXZvcml0ZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2xhbmd1YWdlcy1iYXIpXCIgeD1cIjwlPSB4KjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gdmFsdWUqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCI8JT0gY29sb3IgJT5cIi8+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBob3Jpem9udGFsLXdyYXAgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHZhbHVlLCBjb2xvcn0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyIG5vLXdyYXAgbGFuZ3VhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCI8JT0gY29sb3IgJT5cIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDRhNCA0IDAgMTAwIDggNCA0IDAgMDAwLTh6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gbmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAwQTEuNzUgMS43NSAwIDAwMCAxLjc1djEyLjVDMCAxNS4yMTYuNzg0IDE2IDEuNzUgMTZoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDE0LjI1VjEuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAwSDEuNzV6TTEuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgxMi41YS4yNS4yNSAwIDAxLjI1LjI1djEyLjVhLjI1LjI1IDAgMDEtLjI1LjI1SDEuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek0xMS43NSAzYS43NS43NSAwIDAwLS43NS43NXY3LjVhLjc1Ljc1IDAgMDAxLjUgMHYtNy41YS43NS43NSAwIDAwLS43NS0uNzV6bS04LjI1Ljc1YS43NS43NSAwIDAxMS41IDB2NS41YS43NS43NSAwIDAxLTEuNSAwdi01LjV6TTggM2EuNzUuNzUgMCAwMC0uNzUuNzV2My41YS43NS43NSAwIDAwMS41IDB2LTMuNUEuNzUuNzUgMCAwMDggM3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLnRvdGFsQ291bnQgJT4gUHJvamVjdDwlPSBzKHBsdWdpbnMucHJvamVjdHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHVwZGF0ZWQsIHByb2dyZXNzfSBvZiBwbHVnaW5zLnByb2plY3RzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMy43NUMwIDIuNzg0Ljc4NCAyIDEuNzUgMmgxMi41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OC41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTRIMS43NUExLjc1IDEuNzUgMCAwMTAgMTIuMjV2LTguNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djguNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEyLjVhLjI1LjI1IDAgMDAuMjUtLjI1di04LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0zLjUgNi4yNWEuNzUuNzUgMCAwMS43NS0uNzVoN2EuNzUuNzUgMCAwMTAgMS41aC03YS43NS43NSAwIDAxLS43NS0uNzV6bS43NSAyLjI1YS43NS43NSAwIDAwMCAxLjVoNGEuNzUuNzUgMCAwMDAtMS41aC00elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCU9IG5hbWUgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHptLjUgNC43NWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAuNDcxLjY5NmwyLjUgMWEuNzUuNzUgMCAwMC41NTctMS4zOTJMOC41IDcuNzQyVjQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGVkIDwlPSB1cGRhdGVkICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi41IDEuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDguNWEuMjUuMjUgMCAwMS4yNS4yNXY3LjczNmEuNzUuNzUgMCAxMDEuNSAwVjEuNzVBMS43NSAxLjc1IDAgMDAxMS4yNSAwaC04LjVBMS43NSAxLjc1IDAgMDAxIDEuNzV2MTEuNWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDMuMTdhLjc1Ljc1IDAgMDAwLTEuNUgyLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNNC43NSA0YS43NS43NSAwIDAwMCAxLjVoNC41YS43NS43NSAwIDAwMC0xLjVoLTQuNXpNNCA3Ljc1QS43NS43NSAwIDAxNC43NSA3aDJhLjc1Ljc1IDAgMDEwIDEuNWgtMkEuNzUuNzUgMCAwMTQgNy43NXptMTEuNzc0IDMuNTM3YS43NS43NSAwIDAwLTEuMDQ4LTEuMDc0TDEwLjcgMTQuMTQ1IDkuMjgxIDEyLjcyYS43NS43NSAwIDAwLTEuMDYyIDEuMDU4bDEuOTQzIDEuOTVhLjc1Ljc1IDAgMDAxLjA1NS4wMDhsNC41NTctNC40NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPCU9IFtwcm9ncmVzcy5kb25lID8gYCR7cHJvZ3Jlc3MuZG9uZX0gZG9uZWAgOiBcIlwiLCBwcm9ncmVzcy5kb2luZyA/IGAke3Byb2dyZXNzLmRvaW5nfSBkb2luZ2AgOiBcIlwiLCBwcm9ncmVzcy50b2RvID8gYCR7cHJvZ3Jlc3MudG9kb30gdG9kb2AgOiBcIlwiXS5maWx0ZXIoc3RyID0+IHN0cikuam9pbihcIiDCtyBcIikgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyIGhvcml6b250YWwtd3JhcCBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0NjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHJvamVjdC1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0NjBcIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIndoaXRlXCIgcng9XCI1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3Byb2plY3QtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhBNzQ1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiPCU9IChwcm9ncmVzcy5kb25lL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy5kb2luZy9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjNkY0MkMxXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiPCU9ICgocHJvZ3Jlc3MuZG9uZStwcm9ncmVzcy5kb2luZykvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLnRvZG8vcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLmdpc3RzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djEyLjVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNVYxLjc1YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2MTIuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDE2SDEuNzVBMS43NSAxLjc1IDAgMDEwIDE0LjI1VjEuNzV6bTkuMjIgMy43MmEuNzUuNzUgMCAwMDAgMS4wNkwxMC42OSA4IDkuMjIgOS40N2EuNzUuNzUgMCAxMDEuMDYgMS4wNmwyLTJhLjc1Ljc1IDAgMDAwLTEuMDZsLTItMmEuNzUuNzUgMCAwMC0xLjA2IDB6TTYuNzggNi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTIgMmEuNzUuNzUgMCAwMDAgMS4wNmwyIDJhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMNS4zMSA4bDEuNDctMS40N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQgJT4gR2lzdDwlPSBzKHBsdWdpbnMuZ2lzdHMudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmdpc3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNCAxLjc1QzQgLjc4NCA0Ljc4NCAwIDUuNzUgMGg1LjU4NmMuNDY0IDAgLjkwOS4xODQgMS4yMzcuNTEzbDIuOTE0IDIuOTE0Yy4zMjkuMzI4LjUxMy43NzMuNTEzIDEuMjM3djguNTg2QTEuNzUgMS43NSAwIDAxMTQuMjUgMTVoLTlhLjc1Ljc1IDAgMDEwLTEuNWg5YS4yNS4yNSAwIDAwLjI1LS4yNVY2aC0yLjc1QTEuNzUgMS43NSAwIDAxMTAgNC4yNVYxLjVINS43NWEuMjUuMjUgMCAwMC0uMjUuMjV2Mi41YS43NS43NSAwIDAxLTEuNSAwdi0yLjV6bTcuNS0uMTg4VjQuMjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyLjY4OGEuMjUyLjI1MiAwIDAwLS4wMTEtLjAxM2wtMi45MTQtMi45MTRhLjI3Mi4yNzIgMCAwMC0uMDEzLS4wMTF6TTUuNzIgNi43MmEuNzUuNzUgMCAwMDAgMS4wNmwxLjQ3IDEuNDctMS40NyAxLjQ3YS43NS43NSAwIDEwMS4wNiAxLjA2bDItMmEuNzUuNzUgMCAwMDAtMS4wNmwtMi0yYS43NS43NSAwIDAwLTEuMDYgMHpNMy4yOCA3Ljc4YS43NS43NSAwIDAwLTEuMDYtMS4wNmwtMiAyYS43NS43NSAwIDAwMCAxLjA2bDIgMmEuNzUuNzUgMCAwMDEuMDYtMS4wNkwxLjgxIDkuMjVsMS40Ny0xLjQ3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZ2lzdHMuZmlsZXMgJT4gRmlsZTwlPSBzKHBsdWdpbnMuZ2lzdHMuZmlsZXMpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi43NSAyLjVhLjI1LjI1IDAgMDAtLjI1LjI1djcuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDQuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTcuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDIuNzV6TTEgMi43NUMxIDEuNzg0IDEuNzg0IDEgMi43NSAxaDEwLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY3LjVBMS43NSAxLjc1IDAgMDExMy4yNSAxMkg5LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxNCAxMy41NDNWMTJIMi43NUExLjc1IDEuNzUgMCAwMTEgMTAuMjV2LTcuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLmNvbW1lbnRzICU+IENvbW1lbnQ8JT0gcyhwbHVnaW5zLmdpc3RzLmNvbW1lbnRzKSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy5zdGFyZ2F6ZXJzICU+IFN0YXJnYXplcjwlPSBzKHBsdWdpbnMuZ2lzdHMuc3RhcmdhemVycykgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01IDMuMjVhLjc1Ljc1IDAgMTEtMS41IDAgLjc1Ljc1IDAgMDExLjUgMHptMCAyLjEyMmEyLjI1IDIuMjUgMCAxMC0xLjUgMHYuODc4QTIuMjUgMi4yNSAwIDAwNS43NSA4LjVoMS41djIuMTI4YTIuMjUxIDIuMjUxIDAgMTAxLjUgMFY4LjVoMS41YTIuMjUgMi4yNSAwIDAwMi4yNS0yLjI1di0uODc4YTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhhLjc1Ljc1IDAgMDEtLjc1Ljc1aC00LjVBLjc1Ljc1IDAgMDE1IDYuMjV2LS44Nzh6bTMuNzUgNy4zNzhhLjc1Ljc1IDAgMTEtMS41IDAgLjc1Ljc1IDAgMDExLjUgMHptMy04Ljc1YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMuZ2lzdHMuZm9ya3MgJT4gRm9yazwlPSBzKHBsdWdpbnMuZ2lzdHMuZm9ya3MpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkKSB7ICU+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE0LjA2NCAwYTguNzUgOC43NSAwIDAwLTYuMTg3IDIuNTYzbC0uNDU5LjQ1OGMtLjMxNC4zMTQtLjYxNi42NDEtLjkwNC45NzlIMy4zMWExLjc1IDEuNzUgMCAwMC0xLjQ5LjgzM0wuMTEgNy42MDdhLjc1Ljc1IDAgMDAuNDE4IDEuMTFsMy4xMDIuOTU0Yy4wMzcuMDUxLjA3OS4xLjEyNC4xNDVsMi40MjkgMi40MjhjLjA0Ni4wNDYuMDk0LjA4OC4xNDUuMTI1bC45NTQgMy4xMDJhLjc1Ljc1IDAgMDAxLjExLjQxOGwyLjc3NC0xLjcwN2ExLjc1IDEuNzUgMCAwMC44MzMtMS40OVY5LjQ4NWMuMzM4LS4yODguNjY1LS41OS45NzktLjkwNGwuNDU4LS40NTlBOC43NSA4Ljc1IDAgMDAxNiAxLjkzNlYxLjc1QTEuNzUgMS43NSAwIDAwMTQuMjUgMGgtLjE4NnpNMTAuNSAxMC42MjVjLS4wODguMDYtLjE3Ny4xMTgtLjI2Ni4xNzVsLTIuMzUgMS41MjEuNTQ4IDEuNzgzIDEuOTQ5LTEuMmEuMjUuMjUgMCAwMC4xMTktLjIxM3YtMi4wNjZ6TTMuNjc4IDguMTE2TDUuMiA1Ljc2NmMuMDU4LS4wOS4xMTctLjE3OC4xNzYtLjI2NkgzLjMwOWEuMjUuMjUgMCAwMC0uMjEzLjExOWwtMS4yIDEuOTUgMS43ODIuNTQ3em01LjI2LTQuNDkzQTcuMjUgNy4yNSAwIDAxMTQuMDYzIDEuNWguMTg2YS4yNS4yNSAwIDAxLjI1LjI1di4xODZhNy4yNSA3LjI1IDAgMDEtMi4xMjMgNS4xMjdsLS40NTkuNDU4YTE1LjIxIDE1LjIxIDAgMDEtMi40OTkgMi4wMmwtMi4zMTcgMS41LTIuMTQzLTIuMTQzIDEuNS0yLjMxN2ExNS4yNSAxNS4yNSAwIDAxMi4wMi0yLjVsLjQ1OC0uNDU4aC4wMDJ6TTEyIDVhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tOC40NCA5LjU2YTEuNSAxLjUgMCAxMC0yLjEyLTIuMTJjLS43MzQuNzMtMS4wNDcgMi4zMzItMS4xNSAzLjAwM2EuMjMuMjMgMCAwMC4yNjUuMjY1Yy42NzEtLjEwMyAyLjI3My0uNDE2IDMuMDA1LTEuMTQ4elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBQYWdlU3BlZWQgSW5zaWdodHNcclxuICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuNzc1IDMuMjc1YS43NS43NSAwIDAwMS4wNiAxLjA2bDEuMjUtMS4yNWEyIDIgMCAxMTIuODMgMi44M2wtMi41IDIuNWEyIDIgMCAwMS0yLjgzIDAgLjc1Ljc1IDAgMDAtMS4wNiAxLjA2IDMuNSAzLjUgMCAwMDQuOTUgMGwyLjUtMi41YTMuNSAzLjUgMCAwMC00Ljk1LTQuOTVsLTEuMjUgMS4yNXptLTQuNjkgOS42NGEyIDIgMCAwMTAtMi44M2wyLjUtMi41YTIgMiAwIDAxMi44MyAwIC43NS43NSAwIDAwMS4wNi0xLjA2IDMuNSAzLjUgMCAwMC00Ljk1IDBsLTIuNSAyLjVhMy41IDMuNSAwIDAwNC45NSA0Ljk1bDEuMjUtMS4yNWEuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTEuMjUgMS4yNWEyIDIgMCAwMS0yLjgzIDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLndlYnNpdGVVcmwgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wYWdlc3BlZWQuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY2F0ZWdvcmllc1wiPlxyXG4gICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7c2NvcmUsIHRpdGxlfSBvZiBwbHVnaW5zLnBhZ2VzcGVlZC5zY29yZXMpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhdGVnb3JpZSBjb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDEyMCAxMjBcIiB3aWR0aD1cIjUwXCIgaGVpZ2h0PVwiNTBcIiBjbGFzcz1cImdhdWdlIDwlPSAhTnVtYmVyLmlzTmFOKHNjb3JlKSA/IChzY29yZSA+PSAwLjkgPyAnaGlnaCcgOiBzY29yZSA+PSAwLjUgPyAnYXZlcmFnZScgOiAnbG93JykgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImdhdWdlLWJhc2VcIiByPVwiNTNcIiBjeD1cIjYwXCIgY3k9XCI2MFwiPjwvY2lyY2xlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJnYXVnZS1hcmNcIiB0cmFuc2Zvcm09XCJyb3RhdGUoLTkwIDYwIDYwKVwiIHI9XCI1M1wiIGN4PVwiNjBcIiBjeT1cIjYwXCIgc3Ryb2tlLWRhc2hhcnJheT1cIjwlPSBzY29yZSAqIDMyOSAlPiAzMjlcIj48L2NpcmNsZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRleHQgeD1cIjYwXCIgeT1cIjYwXCIgZG9taW5hbnQtYmFzZWxpbmU9XCJjZW50cmFsXCIgPjwlPSBNYXRoLnJvdW5kKHNjb3JlKjEwMCkgJT48L3RleHQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dCB4PVwiNjBcIiB5PVwiNjBcIiBkb21pbmFudC1iYXNlbGluZT1cImNlbnRyYWxcIiA+LTwvdGV4dD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+PCU9IHRpdGxlICU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmRldGFpbGVkKSB7ICU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpdHMgcm93XCI+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk01Ljc1Ljc1QS43NS43NSAwIDAxNi41IDBoM2EuNzUuNzUgMCAwMTAgMS41aC0uNzV2MWwtLjAwMS4wNDFhNi43MTggNi43MTggMCAwMTMuNDY0IDEuNDM1bC4wMDctLjAwNi43NS0uNzVhLjc1Ljc1IDAgMTExLjA2IDEuMDZsLS43NS43NS0uMDA2LjAwN2E2Ljc1IDYuNzUgMCAxMS0xMC41NDggMEwyLjcyIDUuMDNsLS43NS0uNzVhLjc1Ljc1IDAgMDExLjA2LTEuMDZsLjc1Ljc1LjAwNy4wMDZBNi43MTggNi43MTggMCAwMTcuMjUgMi41NDFhLjc1Ni43NTYgMCAwMTAtLjA0MXYtMUg2LjVhLjc1Ljc1IDAgMDEtLjc1LS43NXpNOCAxNC41QTUuMjUgNS4yNSAwIDEwOCA0YTUuMjUgNS4yNSAwIDAwMCAxMC41em0uMzg5LTYuN2wxLjMzLTEuMzNhLjc1Ljc1IDAgMTExLjA2MSAxLjA2TDkuNDUgOC44NjFBMS41MDIgMS41MDIgMCAwMTggMTAuNzVhMS41IDEuNSAwIDExLjM4OS0yLjk1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBUaW1lIHRvIGludGVyYWN0aXZlXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVhNi41IDYuNSAwIDEwNi4wMTYgNC4wMzUuNzUuNzUgMCAwMTEuMzg4LS41NyA4IDggMCAxMS00LjM3LTQuMzcuNzUuNzUgMCAwMS0uNTY5IDEuMzg5QTYuNDc5IDYuNDc5IDAgMDA4IDEuNXptNi4yOC4yMmEuNzUuNzUgMCAwMTAgMS4wNmwtNC4wNjMgNC4wNjRhMi41IDIuNSAwIDExLTEuMDYtMS4wNkwxMy4yMiAxLjcyYS43NS43NSAwIDAxMS4wNiAwek03IDhhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBTcGVlZCBJbmRleFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjQzIDMuMTQzTC40MjcgMS45MjdBLjI1LjI1IDAgMDAwIDIuMTA0VjUuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWgzLjY0NmEuMjUuMjUgMCAwMC4xNzctLjQyN0wyLjcxNSA0LjIxNWE2LjUgNi41IDAgMTEtMS4xOCA0LjQ1OC43NS43NSAwIDEwLTEuNDkzLjE1NCA4LjAwMSA4LjAwMSAwIDEwMS42LTUuNjg0ek03Ljc1IDRhLjc1Ljc1IDAgMDEuNzUuNzV2Mi45OTJsMi4wMjguODEyYS43NS43NSAwIDAxLS41NTcgMS4zOTJsLTIuNS0xQS43NS43NSAwIDAxNyA4LjI1di0zLjVBLjc1Ljc1IDAgMDE3Ljc1IDR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIFRvdGFsIEJsb2NraW5nIFRpbWVcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4xMzQgMS41MzVDOS43MjIgMi41NjIgOC4xNiA0LjA1NyA2Ljg4OSA1LjMxMiA1LjggNi4zODcgNS4wNDEgNy40MDEgNC41NzUgOC4yOTRhMy43NDUgMy43NDUgMCAwMC0zLjIyNyAxLjA1NGMtLjQzLjQzMS0uNjkgMS4wNjYtLjg2IDEuNjU3YTExLjk4MiAxMS45ODIgMCAwMC0uMzU4IDEuOTE0QTIxLjI2MyAyMS4yNjMgMCAwMDAgMTUuMjAzdi4wNTRsLjc1LS4wMDctLjAwNy43NWguMDU0YTE0LjQwNCAxNC40MDQgMCAwMC42NTQtLjAxMiAyMS4yNDMgMjEuMjQzIDAgMDAxLjYzLS4xMThjLjYyLS4wNyAxLjMtLjE4IDEuOTE0LS4zNTcuNTkyLS4xNyAxLjIyNi0uNDMgMS42NTctLjg2MWEzLjc0NSAzLjc0NSAwIDAwMS4wNTUtMy4yMTdjLjkwOC0uNDYxIDEuOTQyLTEuMjE2IDMuMDQtMi4zIDEuMjc5LTEuMjYyIDIuNzY0LTIuODI1IDMuNzc1LTQuMjQ5LjUwMS0uNzA2LjkyMy0xLjQyOCAxLjEyNS0yLjA5Ni4yLS42NTkuMjM1LTEuNDY5LS4zNjgtMi4wNy0uNjA2LS42MDctMS40Mi0uNTUtMi4wNjktLjM0LS42Ni4yMTMtMS4zNzYuNjQ2LTIuMDc2IDEuMTU1em0tMy45NSA4LjQ4YTMuNzYgMy43NiAwIDAwLTEuMTktMS4xOTIgOS43NTggOS43NTggMCAwMTEuMTYxLTEuNjA3bDEuNjU4IDEuNjU4YTkuODUzIDkuODUzIDAgMDEtMS42MyAxLjE0MnpNLjc0MiAxNmwuMDA3LS43NS0uNzUuMDA4QS43NS43NSAwIDAwLjc0MyAxNnpNMTIuMDE2IDIuNzQ5Yy0xLjIyNC44OS0yLjYwNSAyLjE4OS0zLjgyMiAzLjM4NGwxLjcxOCAxLjcxOGMxLjIxLTEuMjA1IDIuNTEtMi41OTcgMy4zODctMy44MzMuNDctLjY2Mi43OC0xLjIyNy45MTItMS42NjIuMTM0LS40NDQuMDMyLS41NTEuMDA5LS41NzVoLS4wMDFWMS43OGMtLjAxNC0uMDE0LS4xMTItLjExMy0uNTQ4LjAyNy0uNDMyLjE0LS45OTUuNDYyLTEuNjU1Ljk0MnpNMS42MiAxMy4wODlhMTkuNTYgMTkuNTYgMCAwMC0uMTA0IDEuMzk1IDE5LjU1IDE5LjU1IDAgMDAxLjM5Ni0uMTA0IDEwLjUyOCAxMC41MjggMCAwMDEuNjY4LS4zMDljLjUyNi0uMTUxLjg1Ni0uMzI1IDEuMDExLS40OGEyLjI1IDIuMjUgMCAwMC0zLjE4Mi0zLjE4MmMtLjE1NS4xNTUtLjMyOS40ODUtLjQ4IDEuMDFhMTAuNTE1IDEwLjUxNSAwIDAwLS4zMDkgMS42N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgRmlyc3QgQ29udGVudGZ1bCBQYWludFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMi41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMC41YzAgLjEzOC4xMTIuMjUuMjUuMjVoLjk0YS43Ni43NiAwIDAxLjAzLS4wM2w2LjA3Ny02LjA3OGExLjc1IDEuNzUgMCAwMTIuNDEyLS4wNkwxNC41IDEwLjMxVjIuNzVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1em0xMi41IDExSDQuODFsNS4wNDgtNS4wNDdhLjI1LjI1IDAgMDEuMzQ0LS4wMDlsNC4yOTggMy44ODl2LjkxN2EuMjUuMjUgMCAwMS0uMjUuMjV6bTEuNzUtLjI1VjIuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAxSDEuNzVBMS43NSAxLjc1IDAgMDAwIDIuNzV2MTAuNUMwIDE0LjIxNi43ODQgMTUgMS43NSAxNWgxMi41QTEuNzUgMS43NSAwIDAwMTYgMTMuMjV6TTUuNSA2YS41LjUgMCAxMS0xIDAgLjUuNSAwIDAxMSAwek03IDZhMiAyIDAgMTEtNCAwIDIgMiAwIDAxNCAwelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBMYXJnZXN0IENvbnRlbnRmdWwgUGFpbnRcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk03Ljc1IDE0QTEuNzUgMS43NSAwIDAxNiAxMi4yNXYtOC41QzYgMi43ODQgNi43ODQgMiA3Ljc1IDJoNi41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OC41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTRoLTYuNXptLS4yNS0xLjc1YzAgLjEzOC4xMTIuMjUuMjUuMjVoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOC41YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTYuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OC41ek00LjkgMy41MDhhLjc1Ljc1IDAgMDEtLjI3NCAxLjAyNS4yNS4yNSAwIDAwLS4xMjYuMjE3djYuNWEuMjUuMjUgMCAwMC4xMjYuMjE3Ljc1Ljc1IDAgMDEtLjc1MiAxLjI5OEExLjc1IDEuNzUgMCAwMTMgMTEuMjV2LTYuNWMwLS42NDkuMzUzLTEuMjE0Ljg3NC0xLjUxNmEuNzUuNzUgMCAwMTEuMDI1LjI3NHpNMS42MjUgNS41MzNhLjc1Ljc1IDAgMTAtLjc1Mi0xLjI5OUExLjc1IDEuNzUgMCAwMDAgNS43NXY0LjVjMCAuNjQ5LjM1MyAxLjIxNC44NzQgMS41MTVhLjc1Ljc1IDAgMTAuNzUyLTEuMjk4LjI1LjI1IDAgMDEtLjEyNi0uMjE3di00LjVhLjI1LjI1IDAgMDEuMTI2LS4yMTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIEN1bXVsYXRpdmUgTGF5b3V0IFNoaWZ0XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge3Njb3JlLCBzdWZmaXggPSBcIlwiLCB0aHJlc2hvbGR9IG9mIFtcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuaW50ZXJhY3RpdmUvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzMuNzg1LCA3LjNdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3Muc3BlZWRJbmRleC8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy4zODcsIDUuOF19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy50b3RhbEJsb2NraW5nVGltZS8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbLjI4NywgLjZdfSxcclxuICAgICAgICAgICAgICAgICAge3Njb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuZmlyc3RDb250ZW50ZnVsUGFpbnQvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzIuMzM2LCA0XX0sXHJcbiAgICAgICAgICAgICAgICAgIHtzY29yZTpwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLmxhcmdlc3RDb250ZW50ZnVsUGFpbnQvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzIuNSwgNF19LFxyXG4gICAgICAgICAgICAgICAgICB7c2NvcmU6K3BsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuY3VtdWxhdGl2ZUxheW91dFNoaWZ0LCB0aHJlc2hvbGQ6Wy4xLCAuMjVdfVxyXG4gICAgICAgICAgICAgICAgXSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdWRpdCB0ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gc2NvcmUudG9GaXhlZCgyKS5yZXBsYWNlKC9bLl0wKyQvLCBcIlwiKSAlPiA8JT0gc3VmZml4ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIE4vQVxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwem0zLjI4IDUuNzhhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC01LjUgNS41YS43NS43NSAwIDEwMS4wNiAxLjA2bDUuNS01LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgaWYgKHNjb3JlIDw9IHRocmVzaG9sZFswXSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiYXVkaXQgaGlnaFwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek0wIDhhOCA4IDAgMTExNiAwQTggOCAwIDAxMCA4em0xMS43OC0xLjcyYS43NS43NSAwIDAwLTEuMDYtMS4wNkw2Ljc1IDkuMTkgNS4yOCA3LjcyYS43NS43NSAwIDAwLTEuMDYgMS4wNmwyIDJhLjc1Ljc1IDAgMDAxLjA2IDBsNC41LTQuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSBpZiAoc2NvcmUgPD0gdGhyZXNob2xkWzFdKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJhdWRpdCBhdmVyYWdlXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41YTYuNSA2LjUgMCAxMDAgMTMgNi41IDYuNSAwIDAwMC0xM3pNMCA4YTggOCAwIDExMTYgMEE4IDggMCAwMTAgOHptOSAzYTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS02LjI1YS43NS43NSAwIDAwLTEuNSAwdjMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiYXVkaXQgbG93XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNDcuMjJBLjc1Ljc1IDAgMDE1IDBoNmEuNzUuNzUgMCAwMS41My4yMmw0LjI1IDQuMjVjLjE0MS4xNC4yMi4zMzEuMjIuNTN2NmEuNzUuNzUgMCAwMS0uMjIuNTNsLTQuMjUgNC4yNUEuNzUuNzUgMCAwMTExIDE2SDVhLjc1Ljc1IDAgMDEtLjUzLS4yMkwuMjIgMTEuNTNBLjc1Ljc1IDAgMDEwIDExVjVhLjc1Ljc1IDAgMDEuMjItLjUzTDQuNDcuMjJ6bS44NCAxLjI4TDEuNSA1LjMxdjUuMzhsMy44MSAzLjgxaDUuMzhsMy44MS0zLjgxVjUuMzFMMTAuNjkgMS41SDUuMzF6TTggNGEuNzUuNzUgMCAwMS43NS43NXYzLjVhLjc1Ljc1IDAgMDEtMS41IDB2LTMuNUEuNzUuNzUgMCAwMTggNHptMCA4YTEgMSAwIDEwMC0yIDEgMSAwIDAwMCAyelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZC5zY3JlZW5zaG90KSB7ICU+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJzY3JlZW5zaG90XCIgc3JjPVwiPCU9IHBsdWdpbnMucGFnZXNwZWVkLnNjcmVlbnNob3QgJT5cIiB3aWR0aD1cIjQ1MlwiIGhlaWdodD1cIjMxNVwiLz5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCAxLjVjLTIuMzYzIDAtNCAxLjY5LTQgMy43NSAwIC45ODQuNDI0IDEuNjI1Ljk4NCAyLjMwNGwuMjE0LjI1M2MuMjIzLjI2NC40Ny41NTYuNjczLjg0OC4yODQuNDExLjUzNy44OTYuNjIxIDEuNDlhLjc1Ljc1IDAgMDEtMS40ODQuMjExYy0uMDQtLjI4Mi0uMTYzLS41NDctLjM3LS44NDdhOC42OTUgOC42OTUgMCAwMC0uNTQyLS42OGMtLjA4NC0uMS0uMTczLS4yMDUtLjI2OC0uMzJDMy4yMDEgNy43NSAyLjUgNi43NjYgMi41IDUuMjUgMi41IDIuMzEgNC44NjMgMCA4IDBzNS41IDIuMzEgNS41IDUuMjVjMCAxLjUxNi0uNzAxIDIuNS0xLjMyOCAzLjI1OS0uMDk1LjExNS0uMTg0LjIyLS4yNjguMzE5LS4yMDcuMjQ1LS4zODMuNDUzLS41NDEuNjgxLS4yMDguMy0uMzMuNTY1LS4zNy44NDdhLjc1Ljc1IDAgMDEtMS40ODUtLjIxMmMuMDg0LS41OTMuMzM3LTEuMDc4LjYyMS0xLjQ4OS4yMDMtLjI5Mi40NS0uNTg0LjY3My0uODQ4LjA3NS0uMDg4LjE0Ny0uMTczLjIxMy0uMjUzLjU2MS0uNjc5Ljk4NS0xLjMyLjk4NS0yLjMwNCAwLTIuMDYtMS42MzctMy43NS00LTMuNzV6TTYgMTUuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDIuNWEuNzUuNzUgMCAwMTAgMS41aC0yLjVhLjc1Ljc1IDAgMDEtLjc1LS43NXpNNS43NSAxMmEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb2RpbmcgaGFiaXRzIGFuZCByZWNlbnQgYWN0aXZpdHlcclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8JSBpZiAocGx1Z2lucy5oYWJpdHMuZmFjdHMpIHsgJT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmhhYml0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJoYWJpdHNcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmluZGVudHMuc3R5bGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8bGk+VXNlIDwlPSBwbHVnaW5zLmhhYml0cy5pbmRlbnRzLnN0eWxlICU+IGZvciBpbmRlbnRzPC9saT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAoIU51bWJlci5pc05hTihwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpPk1vc3RseSBwdXNoIGNvZGUgYXJvdW5kIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIgJT46MDA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaT5Nb3N0bHkgYWN0aXZlIG9uIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheS50b0xvY2FsZUxvd2VyQ2FzZSgpICU+PC9saT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmNoYXJ0cykgeyAlPlxyXG4gICAgICAgICAgPCUgaWYgKCFOdW1iZXIuaXNOYU4ocGx1Z2lucy5oYWJpdHMuY29tbWl0cy5ob3VyKSkgeyAlPlxyXG4gICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtbiBjaGFydFwiPlxyXG4gICAgICAgICAgICAgIDxoMz5Db21taXQgYWN0aXZpdHkgcGVyIHRpbWUgb2YgdGhlIGRheTwvaDM+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWJhcnNcIj5cclxuICAgICAgICAgICAgICAgIDwlIGZvciAobGV0IGggPSAwOyBoIDwgMjQ7IGgrKykgeyBjb25zdCBwID0gKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuaG91cnNbaF0/PzApLyhwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXJzLm1heD8/MSk7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48JT0gcGx1Z2lucy5oYWJpdHMuY29tbWl0cy5ob3Vyc1toXSAlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyXCIgc3R5bGU9XCJoZWlnaHQ6IDwlPSBwKjUwICU+cHg7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MPCU9IE1hdGguY2VpbChwLzAuMjUpICU+LWJnKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBgJHtofWAucGFkU3RhcnQoMiwgMCkgJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmICghTnVtYmVyLmlzTmFOKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuZGF5KSkgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uIGNsYXNzPVwiY29sdW1uIGNoYXJ0XCI+XHJcbiAgICAgICAgICAgICAgICA8aDM+Q29tbWl0IGFjdGl2aXR5IHBlciBkYXk8L2gzPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoYXJ0LWJhcnNcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChsZXQgZCA9IDA7IGQgPCA3OyBkKyspIHsgY29uc3QgcCA9IChwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheXNbZF0/PzApLyhwbHVnaW5zLmhhYml0cy5jb21taXRzLmRheXMubWF4Pz8xKTsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj48JT0gcGx1Z2lucy5oYWJpdHMuY29tbWl0cy5kYXlzW2RdICU+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhclwiIHN0eWxlPVwiaGVpZ2h0OiA8JT0gcCo1MCAlPnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDwlPSBNYXRoLmNlaWwocC8wLjI1KSAlPi1iZylcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBbXCJTdW5cIiwgXCJNb25cIiwgXCJUdWVcIiwgXCJXZWRcIiwgXCJUaHVcIiwgXCJGcmlcIiwgXCJTYXRcIl1bZF0gJT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cy5saW5ndWlzdC5hdmFpbGFibGUpIHsgJT5cclxuICAgICAgICAgICAgICA8c2VjdGlvbiBjbGFzcz1cImNvbHVtbiBjaGFydFwiPlxyXG4gICAgICAgICAgICAgICAgPGgzPkxhbmd1YWdlIGFjdGl2aXR5PC9oMz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGFydC1iYXJzIGhvcml6b250YWxcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbbGFuZ3VhZ2UsIHBdIG9mIHBsdWdpbnMuaGFiaXRzLmxpbmd1aXN0Lm9yZGVyZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPjwlPSBsYW5ndWFnZSAlPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYXJcIiBzdHlsZT1cIndpZHRoOiA8JT0gcCo4MCAlPiU7IGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MPCU9IE1hdGguY2VpbChwLzAuMjUpICU+LWJnKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPjwlPSBNYXRoLnJvdW5kKDEwMCpwKSAlPiU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy50b3BpY3MpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xNC4xODQgMS4xNDNhMS43NSAxLjc1IDAgMDAtMi41MDItLjU3TC45MTIgNy45MTZhMS43NSAxLjc1IDAgMDAtLjUzIDIuMzJsLjQ0Ny43NzVhMS43NSAxLjc1IDAgMDAyLjI3NS43MDJsMTEuNzQ1LTUuNjU2YTEuNzUgMS43NSAwIDAwLjc1Ny0yLjQ1MWwtMS40MjItMi40NjR6bS0xLjY1Ny42NjlhLjI1LjI1IDAgMDEuMzU4LjA4MWwxLjQyMiAyLjQ2NGEuMjUuMjUgMCAwMS0uMTA4LjM1bC0yLjAxNi45Ny0xLjUwNS0yLjYwNSAxLjg1LTEuMjZ6TTkuNDM2IDMuOTJsMS4zOTEgMi40MS01LjQyIDIuNjEtLjk0Mi0xLjYzIDQuOTctMy4zOXpNMy4yMjIgOC4xNTdsLTEuNDY2IDFhLjI1LjI1IDAgMDAtLjA3NS4zM2wuNDQ3Ljc3NWEuMjUuMjUgMCAwMC4zMjUuMWwxLjU5OC0uNzY5LS44My0xLjQzNnptNi4yNTMgMi4zMDZhLjc1Ljc1IDAgMDAtLjk0NC0uMjUybC0xLjgwOS44N2EuNzUuNzUgMCAwMC0uMjkzLjI1M0w0LjM4IDE0LjMyNmEuNzUuNzUgMCAxMDEuMjM4Ljg0OGwxLjg4MS0yLjc1djIuODI2YS43NS43NSAwIDAwMS41IDB2LTIuODI2bDEuODgxIDIuNzVhLjc1Ljc1IDAgMDAxLjIzOC0uODQ4bC0yLjY0NC0zLjg2M3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSB7c3RhcnJlZDpcIlN0YXJyZWQgdG9waWNzXCIsIG1hc3RlcmVkOlwiTWFzdGVyZWQgdGVjaG5vbG9naWVzIGFuZCB0b3BpY3NcIn1bcGx1Z2lucy50b3BpY3MubW9kZV0gJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRvcGljcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy50b3BpY3MuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b3BpY3MgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRvcGljcy5tb2RlID09PSBcInN0YXJyZWRcIikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgZGVzY3JpcHRpb259IG9mIHBsdWdpbnMudG9waWNzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxhYmVsXCIgdGl0bGU9XCI8JT0gZGVzY3JpcHRpb24gJT5cIj48JT0gbmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIGlmIChwbHVnaW5zLnRvcGljcy5tb2RlID09PSBcIm1hc3RlcmVkXCIpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIGljb259IG9mIHBsdWdpbnMudG9waWNzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCUgaWYgKGljb24pIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gaWNvbiAlPlwiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIGFsdD1cIjwlPSBuYW1lICU+XCIgdGl0bGU9XCI8JT0gbmFtZSAlPlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMTExMyAwIDYuNSA2LjUgMCAwMS0xMyAwek04IDBhOCA4IDAgMTAwIDE2QTggOCAwIDAwOCAwek02LjM3OSA1LjIyN0EuMjUuMjUgMCAwMDYgNS40NDJ2NS4xMTdhLjI1LjI1IDAgMDAuMzc5LjIxNGw0LjI2NC0yLjU1OWEuMjUuMjUgMCAwMDAtLjQyOEw2LjM3OSA1LjIyN3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIDwlPSBwbHVnaW5zLm11c2ljLm1vZGUgJT5cclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMucHJvdmlkZXIpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4wMDIgMi43MjVhLjc1Ljc1IDAgMDEuNzk3LS42OTlDOC43OSAyLjQyIDEzLjU4IDcuMjEgMTMuOTc0IDEzLjIwMWEuNzUuNzUgMCAxMS0xLjQ5Ny4wOTggMTAuNTAyIDEwLjUwMiAwIDAwLTkuNzc2LTkuNzc2Ljc1Ljc1IDAgMDEtLjctLjc5OHpNMiAxM2ExIDEgMCAxMTIgMCAxIDEgMCAwMS0yIDB6bS44NC01Ljk1YS43NS43NSAwIDAwLS4xNzkgMS40ODljMi41MDkuMyA0LjUgMi4yOTEgNC44IDQuOGEuNzUuNzUgMCAxMDEuNDktLjE3OEE3LjAwMyA3LjAwMyAwIDAwMi44MzggNy4wNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEZyb20gPCU9IHBsdWdpbnMubXVzaWMucHJvdmlkZXIgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5tdXNpYy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5tdXNpYy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMudHJhY2tzLmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhY2tsaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSA9IFwiXCIsIGFydGlzdCA9IFwiXCIsIGFydHdvcmsgPSBcIlwifSBvZiBwbHVnaW5zLm11c2ljLnRyYWNrcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LDwlPSBhcnR3b3JrICU+XCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgYWx0PVwiXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmFtZVwiPjwlPSBuYW1lICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFydGlzdFwiPjwlPSBhcnRpc3QgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXY5LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyYS43NS43NSAwIDAxLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDAxLjUzLS4yMmg2LjVhLjI1LjI1IDAgMDAuMjUtLjI1di05LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0wIDEuNzVDMCAuNzg0Ljc4NCAwIDEuNzUgMGgxMi41QzE1LjIxNiAwIDE2IC43ODQgMTYgMS43NXY5LjVBMS43NSAxLjc1IDAgMDExNC4yNSAxM0g4LjA2bC0yLjU3MyAyLjU3M0ExLjQ1NyAxLjQ1NyAwIDAxMyAxNC41NDNWMTNIMS43NUExLjc1IDEuNzUgMCAwMTAgMTEuMjV2LTkuNXpNOSA5YTEgMSAwIDExLTIgMCAxIDEgMCAwMTIgMHptLS4yNS01LjI1YS43NS43NSAwIDAwLTEuNSAwdjIuNWEuNzUuNzUgMCAwMDEuNSAwdi0yLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIE5vIG11c2ljIHJlY2VudGx5IGxpc3RlbmVkXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNDU2LjczNGExLjc1IDEuNzUgMCAwMTIuODI2LjUwNGwuNjEzIDEuMzI3YTMuMDgxIDMuMDgxIDAgMDAyLjA4NCAxLjcwN2wyLjQ1NC41ODRjMS4zMzIuMzE3IDEuOCAxLjk3Mi44MzIgMi45NEwxMS4wNiAxMGwzLjcyIDMuNzJhLjc1Ljc1IDAgMTEtMS4wNjEgMS4wNkwxMCAxMS4wNmwtMi4yMDQgMi4yMDVjLS45NjguOTY4LTIuNjIzLjUtMi45NC0uODMybC0uNTg0LTIuNDU0YTMuMDgxIDMuMDgxIDAgMDAtMS43MDctMi4wODRsLTEuMzI3LS42MTNhMS43NSAxLjc1IDAgMDEtLjUwNC0yLjgyNkw0LjQ1Ni43MzR6TTUuOTIgMS44NjZhLjI1LjI1IDAgMDAtLjQwNC0uMDcyTDEuNzk0IDUuNTE2YS4yNS4yNSAwIDAwLjA3Mi40MDRsMS4zMjguNjEzQTQuNTgyIDQuNTgyIDAgMDE1LjczIDkuNjNsLjU4NCAyLjQ1NGEuMjUuMjUgMCAwMC40Mi4xMmw1LjQ3LTUuNDdhLjI1LjI1IDAgMDAtLjEyLS40Mkw5LjYzIDUuNzNhNC41ODEgNC41ODEgMCAwMS0zLjA5OC0yLjUzN0w1LjkyIDEuODY2elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgUmVjZW50IGFydGljbGVzXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnBvc3RzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnBvc3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMDAyIDIuNzI1YS43NS43NSAwIDAxLjc5Ny0uNjk5QzguNzkgMi40MiAxMy41OCA3LjIxIDEzLjk3NCAxMy4yMDFhLjc1Ljc1IDAgMTEtMS40OTcuMDk4IDEwLjUwMiAxMC41MDIgMCAwMC05Ljc3Ni05Ljc3Ni43NS43NSAwIDAxLS43LS43OTh6TTIgMTNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem0uODQtNS45NWEuNzUuNzUgMCAwMC0uMTc5IDEuNDg5YzIuNTA5LjMgNC41IDIuMjkxIDQuOCA0LjhhLjc1Ljc1IDAgMTAxLjQ5LS4xNzhBNy4wMDMgNy4wMDMgMCAwMDIuODM4IDcuMDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBGcm9tIDwlPSBwbHVnaW5zLnBvc3RzLnNvdXJjZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cy5saXN0Lmxlbmd0aCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHt0aXRsZSwgZGF0ZX0gb2YgcGx1Z2lucy5wb3N0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIHBvc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDBhLjc1Ljc1IDAgMDEuNzUuNzVWMmg1Vi43NWEuNzUuNzUgMCAwMTEuNSAwVjJoMS4yNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djEwLjVBMS43NSAxLjc1IDAgMDExMy4yNSAxNkgyLjc1QTEuNzUgMS43NSAwIDAxMSAxNC4yNVYzLjc1QzEgMi43ODQgMS43ODQgMiAyLjc1IDJINFYuNzVBLjc1Ljc1IDAgMDE0Ljc1IDB6bTAgMy41aDguNWEuMjUuMjUgMCAwMS4yNS4yNVY2aC0xMVYzLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgyem0tMi4yNSA0djYuNzVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMC41YS4yNS4yNSAwIDAwLjI1LS4yNVY3LjVoLTExelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0ZVwiPjwlPSBkYXRlICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZVwiPjwlPSB0aXRsZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBObyByZWNlbnQgcG9zdHNcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLnR3ZWV0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAyNzMuNSAyMjIuM1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGQ9XCJNMjczLjUgMjYuM2ExMDkuNzcgMTA5Ljc3IDAgMCAxLTMyLjIgOC44IDU2LjA3IDU2LjA3IDAgMCAwIDI0LjctMzEgMTEzLjM5IDExMy4zOSAwIDAgMS0zNS43IDEzLjYgNTYuMSA1Ni4xIDAgMCAwLTk3IDM4LjQgNTQgNTQgMCAwIDAgMS41IDEyLjhBMTU5LjY4IDE1OS42OCAwIDAgMSAxOS4xIDEwLjNhNTYuMTIgNTYuMTIgMCAwIDAgMTcuNCA3NC45IDU2LjA2IDU2LjA2IDAgMCAxLTI1LjQtN3YuN2E1Ni4xMSA1Ni4xMSAwIDAgMCA0NSA1NSA1NS42NSA1NS42NSAwIDAgMS0xNC44IDIgNjIuMzkgNjIuMzkgMCAwIDEtMTAuNi0xIDU2LjI0IDU2LjI0IDAgMCAwIDUyLjQgMzkgMTEyLjg3IDExMi44NyAwIDAgMS02OS43IDI0IDExOSAxMTkgMCAwIDEtMTMuNC0uOCAxNTguODMgMTU4LjgzIDAgMCAwIDg2IDI1LjJjMTAzLjIgMCAxNTkuNi04NS41IDE1OS42LTE1OS42IDAtMi40LS4xLTQuOS0uMi03LjNhMTE0LjI1IDExNC4yNSAwIDAgMCAyOC4xLTI5LjFcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIExhdGVzdCB0d2VldHNcclxuICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnR3ZWV0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSAhcGx1Z2lucy50d2VldHMucHJvZmlsZSA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50d2VldHMucHJvZmlsZT8udmVyaWZpZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOS41ODUuNTJhMi42NzggMi42NzggMCAwMC0zLjE3IDBsLS45MjguNjhhMS4xNzggMS4xNzggMCAwMS0uNTE4LjIxNUwzLjgzIDEuNTlhMi42NzggMi42NzggMCAwMC0yLjI0IDIuMjRsLS4xNzUgMS4xNGExLjE3OCAxLjE3OCAwIDAxLS4yMTUuNTE4bC0uNjguOTI4YTIuNjc4IDIuNjc4IDAgMDAwIDMuMTdsLjY4LjkyOGMuMTEzLjE1My4xODYuMzMuMjE1LjUxOGwuMTc1IDEuMTM4YTIuNjc4IDIuNjc4IDAgMDAyLjI0IDIuMjRsMS4xMzguMTc1Yy4xODcuMDI5LjM2NS4xMDIuNTE4LjIxNWwuOTI4LjY4YTIuNjc4IDIuNjc4IDAgMDAzLjE3IDBsLjkyOC0uNjhhMS4xNyAxLjE3IDAgMDEuNTE4LS4yMTVsMS4xMzgtLjE3NWEyLjY3OCAyLjY3OCAwIDAwMi4yNDEtMi4yNDFsLjE3NS0xLjEzOGMuMDI5LS4xODcuMTAyLS4zNjUuMjE1LS41MThsLjY4LS45MjhhMi42NzggMi42NzggMCAwMDAtMy4xN2wtLjY4LS45MjhhMS4xNzkgMS4xNzkgMCAwMS0uMjE1LS41MThMMTQuNDEgMy44M2EyLjY3OCAyLjY3OCAwIDAwLTIuMjQtMi4yNGwtMS4xMzgtLjE3NWExLjE3OSAxLjE3OSAwIDAxLS41MTgtLjIxNUw5LjU4NS41MnpNNy4zMDMgMS43MjhjLjQxNS0uMzA1Ljk4LS4zMDUgMS4zOTQgMGwuOTI4LjY4Yy4zNDguMjU2Ljc1Mi40MjMgMS4xOC40ODlsMS4xMzYuMTc0Yy41MS4wNzguOTA5LjQ3OC45ODcuOTg3bC4xNzQgMS4xMzdjLjA2Ni40MjcuMjMzLjgzMS40ODkgMS4xOGwuNjguOTI3Yy4zMDUuNDE1LjMwNS45OCAwIDEuMzk0bC0uNjguOTI4YTIuNjc4IDIuNjc4IDAgMDAtLjQ4OSAxLjE4bC0uMTc0IDEuMTM2YTEuMTc4IDEuMTc4IDAgMDEtLjk4Ny45ODdsLTEuMTM3LjE3NGEyLjY3OCAyLjY3OCAwIDAwLTEuMTguNDg5bC0uOTI3LjY4Yy0uNDE1LjMwNS0uOTguMzA1LTEuMzk0IDBsLS45MjgtLjY4YTIuNjc4IDIuNjc4IDAgMDAtMS4xOC0uNDg5bC0xLjEzNi0uMTc0YTEuMTc4IDEuMTc4IDAgMDEtLjk4Ny0uOTg3bC0uMTc0LTEuMTM3YTIuNjc4IDIuNjc4IDAgMDAtLjQ4OS0xLjE4bC0uNjgtLjkyN2ExLjE3OCAxLjE3OCAwIDAxMC0xLjM5NGwuNjgtLjkyOGMuMjU2LS4zNDguNDIzLS43NTIuNDg5LTEuMThsLjE3NC0xLjEzNmMuMDc4LS41MS40NzgtLjkwOS45ODctLjk4N2wxLjEzNy0uMTc0YTIuNjc4IDIuNjc4IDAgMDAxLjE4LS40ODlsLjkyNy0uNjh6TTExLjI4IDYuNzhhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDcgOC45NCA1Ljc4IDcuNzJhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2bDEuNzUgMS43NWEuNzUuNzUgMCAwMDEuMDYgMGwzLjc1LTMuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00Ljc1IDIuMzdhNi41IDYuNSAwIDAwNi41IDExLjI2Ljc1Ljc1IDAgMDEuNzUgMS4yOTggOCA4IDAgMTEzLjk5NC03LjI3My43NTQuNzU0IDAgMDEuMDA2LjA5NXYxLjVhMi43NSAyLjc1IDAgMDEtNS4wNzIgMS40NzVBNCA0IDAgMTExMiA4djEuMjVhMS4yNSAxLjI1IDAgMDAyLjUgMFY3Ljg2N2E2LjUgNi41IDAgMDAtOS43NS01LjQ5NlYyLjM3ek0xMC41IDhhMi41IDIuNSAwIDEwLTUgMCAyLjUgMi41IDAgMDA1IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnR3ZWV0cy51c2VybmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSBpZiAoIXBsdWdpbnMudHdlZXRzLnByb2ZpbGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA6IHR3aXR0ZXIgdXNlcm5hbWUgbm90IGZvdW5kXHJcbiAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLnByb2ZpbGUpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHdlZXRzLmxpc3QubGVuZ3RoKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7dGV4dCwgY3JlYXRlZF9hdH0gb2YgcGx1Z2lucy50d2VldHMubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInR3ZWV0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlLSB0ZXh0ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYXRlXCI+PCU9IG5ldyBEYXRlKGNyZWF0ZWRfYXQpLnRvR01UU3RyaW5nKCkgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgIE5vIHJlY2VudCB0d2VldHNcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNzUgMGEuNzUuNzUgMCAwMS43NS43NVYyaDVWLjc1YS43NS43NSAwIDAxMS41IDBWMmgxLjI1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTAuNUExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjMuNzVDMSAyLjc4NCAxLjc4NCAyIDIuNzUgMkg0Vi43NUEuNzUuNzUgMCAwMTQuNzUgMHptMCAzLjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1VjZoLTExVjMuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDJ6bS0yLjI1IDR2Ni43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjcuNWgtMTF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb250cmlidXRpb25zIGNhbGVuZGFyXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhci5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5pc29jYWxlbmRhci5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgaWYgKCFwbHVnaW5zLmlzb2NhbGVuZGFyLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuOTk4IDE0LjVjMi44MzIgMCA1LTEuOTggNS00LjUgMC0xLjQ2My0uNjgtMi4xOS0xLjg3OS0zLjM4M2wtLjAzNi0uMDM3Yy0xLjAxMy0xLjAwOC0yLjMtMi4yOS0yLjgzNC00LjQzNC0uMzIyLjI1Ni0uNjMuNTc5LS44NjQuOTUzLS40MzIuNjk2LS42MjEgMS41OC0uMDQ2IDIuNzMuNDczLjk0Ny42NyAyLjI4NC0uMjc4IDMuMjMyLS42MS42MS0xLjU0NS44NC0yLjQwMy42MzNhMi43ODggMi43ODggMCAwMS0xLjQzNi0uODc0QTMuMjEgMy4yMSAwIDAwMyAxMGMwIDIuNTMgMi4xNjQgNC41IDQuOTk4IDQuNXpNOS41MzMuNzUzQzkuNDk2LjM0IDkuMTYuMDA5IDguNzcuMTQ2IDcuMDM1Ljc1IDQuMzQgMy4xODcgNS45OTcgNi41Yy4zNDQuNjg5LjI4NSAxLjIxOC4wMDMgMS41LS40MTkuNDE5LTEuNTQuNDg3LTIuMDQtLjgzMi0uMTczLS40NTQtLjY1OS0uNzYyLTEuMDM1LS40NTRDMi4wMzYgNy40NCAxLjUgOC43MDIgMS41IDEwYzAgMy41MTIgMi45OTggNiA2LjQ5OCA2czYuNS0yLjUgNi41LTZjMC0yLjEzNy0xLjEyOC0zLjI2LTIuMzEyLTQuNDM4LTEuMTktMS4xODQtMi40MzYtMi40MjUtMi42NTMtNC44MXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgc3RyZWFrIDwlPSBwbHVnaW5zLmlzb2NhbGVuZGFyLnN0cmVhay5jdXJyZW50ICU+IGRheTwlPSBzKHBsdWdpbnMuaXNvY2FsZW5kYXIuc3RyZWFrLmN1cnJlbnQpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIH48JT0gcGx1Z2lucy5pc29jYWxlbmRhci5hdmVyYWdlICU+IGNvbW1pdHMgcGVyIGRheVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmlzb2NhbGVuZGFyLnN2ZykgeyAlPlxyXG4gICAgICAgICAgICA8JS0gcGx1Z2lucy5pc29jYWxlbmRhci5zdmcgJT5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLm1ldGFkYXRhKSB7ICU+XHJcbiAgICAgICAgPGZvb3Rlcj5cclxuICAgICAgICAgIDxzcGFuPlRoZXNlIG1ldHJpY3MgPCU9ICFjb21wdXRlZC50b2tlbi5zY29wZXMuaW5jbHVkZXMoXCJyZXBvXCIpID8gXCJkb2VzIG5vdCBpbmNsdWRlIGFsbFwiIDogXCJpbmNsdWRlc1wiICU+IHByaXZhdGUgY29udHJpYnV0aW9uczwlIGlmICgoY29uZmlnLnRpbWV6b25lPy5uYW1lKSYmKCFjb25maWcudGltZXpvbmU/LmVycm9yKSkgeyAlPiwgdGltZXpvbmUgPCU9IGNvbmZpZy50aW1lem9uZS5uYW1lICU+PCUgfSAlPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuPkxhc3QgdXBkYXRlZCA8JT0gbmV3IERhdGUoKS50b0dNVFN0cmluZygpICU+IHdpdGggbG93bGlnaHRlci9tZXRyaWNzQDwlPSBtZXRhLnZlcnNpb24gJT48L3NwYW4+XHJcbiAgICAgICAgPC9mb290ZXI+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICA8L2Rpdj5cclxuICA8L2ZvcmVpZ25PYmplY3Q+XHJcbjwvc3ZnPiIsInN0eWxlIjoiLyogU1ZHIGdsb2JhbCBjb250ZXh0ICovXHJcbiAgc3ZnIHtcclxuICAgIGZvbnQtZmFtaWx5OiAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFNlZ29lIFVJLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmLCBBcHBsZSBDb2xvciBFbW9qaSwgU2Vnb2UgVUkgRW1vamk7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcblxyXG4vKiBIZWFkZXJzICovXHJcbiAgaDEsIGgyLCBoMyB7XHJcbiAgICBtYXJnaW46IDhweCAwIDJweDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBjb2xvcjogIzAzNjZkNjtcclxuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XHJcbiAgfVxyXG4gIGgxIHN2ZywgaDIgc3ZnLCBoMyBzdmcge1xyXG4gICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gIH1cclxuICBoMSB7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBmb250LXdlaWdodDogYm9sZDtcclxuICB9XHJcbiAgaDIge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gIH1cclxuICBoMyB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuLyogRmllbGRzICovXHJcbiAgc2VjdGlvbiA+IC5maWVsZCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNXB4O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XHJcbiAgfVxyXG4gIC5maWVsZCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDJweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgfVxyXG4gIC5maWVsZCBzdmcge1xyXG4gICAgbWFyZ2luOiAwIDhweDtcclxuICAgIGZpbGw6ICM5NTlkYTU7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICB9XHJcbiAgLmZpZWxkLmVycm9yIHtcclxuICAgIGNvbG9yOiAjY2IyNDMxO1xyXG4gIH1cclxuICAuZmllbGQuZXJyb3Igc3ZnIHtcclxuICAgIGZpbGw6ICNjYjI0MzE7XHJcbiAgfVxyXG5cclxuLyogRGlzcGxheXMgKi9cclxuICAucm93IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgfVxyXG4gIC5yb3cgc2VjdGlvbiB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcbiAgLmNvbHVtbiB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5jZW50ZXIge1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsIHtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbC13cmFwIHtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcbiAgLmhvcml6b250YWwgLmZpZWxkIHtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuICAubm8td3JhcCB7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAuZmlsbC13aWR0aCB7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4vKiBVc2VyIGF2YXRhciAqL1xyXG4gIC5hdmF0YXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogQ29tbWl0IGNhbGVuZGFyICovXHJcbiAgLmNhbGVuZGFyLmZpZWxkIHtcclxuICAgIG1hcmdpbjogNHB4IDA7XHJcbiAgICBtYXJnaW4tbGVmdDogN3B4O1xyXG4gIH1cclxuICAuY2FsZW5kYXIgLmRheSB7XHJcbiAgICBvdXRsaW5lOiAxcHggc29saWQgcmdiYSgyNywzMSwzNSwuMDQpO1xyXG4gICAgb3V0bGluZS1vZmZzZXQ6IC0xcHg7XHJcbiAgfVxyXG5cclxuLyogUHJvZ3Jlc3MgYmFycyAqL1xyXG4gIHN2Zy5iYXIge1xyXG4gICAgbWFyZ2luOiA0cHggMDtcclxuICB9XHJcblxyXG4vKiBMYW5ndWFnZSAqL1xyXG4gIC5maWVsZC5sYW5ndWFnZSB7XHJcbiAgICBtYXJnaW46IDAgOHB4O1xyXG4gICAgZmxleC1ncm93OiAwO1xyXG4gIH1cclxuXHJcbiAgLmZpZWxkLmxhbmd1YWdlIHNtYWxsIHtcclxuICAgIG1hcmdpbi1sZWZ0OiA0cHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4vKiBMYWJlbHMgKi9cclxuICAubGFiZWwge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0YxRjhGRjtcclxuICAgIGNvbG9yOiAjMDM2NkQ2O1xyXG4gICAgcGFkZGluZzogMCAxMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcclxuICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xyXG4gICAgbWFyZ2luOiAycHggNXB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDMycHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgfVxyXG5cclxuICAubGFiZWw6aG92ZXIge1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI0RERUVGRjtcclxuICAgIGN1cnNvcjogcG9pbnRlcjtcclxuICB9XHJcblxyXG4vKiBIYWJpdHMgKi9cclxuICAuaGFiaXRzIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcclxuICAgIHBhZGRpbmctbGVmdDogMzdweDtcclxuICB9XHJcblxyXG4vKiBGb290ZXIgKi9cclxuICBmb290ZXIge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gICAgZm9udC1zaXplOiAxMHB4O1xyXG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xyXG4gICAgY29sb3I6ICM2NjY2NjY7XHJcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcclxuICB9XHJcblxyXG4vKiBTcGVlZCB0ZXN0IGNhdGVnb3JpZXMgKi9cclxuICAuY2F0ZWdvcmllcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kO1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gIH1cclxuICAuY2F0ZWdvcmllIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZsZXg6IDEgMSAwO1xyXG4gIH1cclxuXHJcbi8qIEdhdWdlcyAqL1xyXG4gIC5nYXVnZSB7XHJcbiAgICBzdHJva2UtbGluZWNhcDogcm91bmQ7XHJcbiAgICBmaWxsOiBub25lO1xyXG4gIH1cclxuICAuZ2F1Z2UuaGlnaCB7XHJcbiAgICBjb2xvcjogIzE4YjY2MztcclxuICB9XHJcbiAgLmdhdWdlLmF2ZXJhZ2Uge1xyXG4gICAgY29sb3I6ICNmYjhjMDA7XHJcbiAgfVxyXG4gIC5nYXVnZS5sb3cge1xyXG4gICAgY29sb3I6ICNlNTM5MzU7XHJcbiAgfVxyXG4gIC5nYXVnZS1iYXNlLCAuZ2F1Z2UtYXJjIHtcclxuICAgIHN0cm9rZTogY3VycmVudENvbG9yO1xyXG4gICAgc3Ryb2tlLXdpZHRoOiAxMDtcclxuICB9XHJcbiAgLmdhdWdlLWJhc2Uge1xyXG4gICAgc3Ryb2tlLW9wYWNpdHk6IC4yO1xyXG4gIH1cclxuICAuZ2F1Z2UtYXJjIHtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcclxuICAgIGFuaW1hdGlvbi1kZWxheTogMjUwbXM7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbi1nYXVnZSAxcyBlYXNlIGZvcndhcmRzXHJcbiAgfVxyXG4gIC5nYXVnZSB0ZXh0IHtcclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICAgIGZvbnQtc2l6ZTogNDBweDtcclxuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XHJcbiAgICB0ZXh0LWFuY2hvcjogbWlkZGxlO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB9XHJcbiAgLmdhdWdlIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZ2F1Z2Uge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDAgMzI5O1xyXG4gICAgfVxyXG4gIH1cclxuICAuYXVkaXRzIHtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICB9XHJcbiAgLmF1ZGl0LnRleHQge1xyXG4gICAgbWluLXdpZHRoOiA0MnB4O1xyXG4gIH1cclxuICAuYXVkaXQgc3ZnIHtcclxuICAgIG1hcmdpbjogMDtcclxuICB9XHJcbiAgLmF1ZGl0LmhpZ2gge1xyXG4gICAgZmlsbDogIzE4YjY2MztcclxuICB9XHJcbiAgLmF1ZGl0LmF2ZXJhZ2Uge1xyXG4gICAgZmlsbDogI2ZiOGMwMDtcclxuICB9XHJcbiAgLmF1ZGl0LmxvdyB7XHJcbiAgICBmaWxsOiAjZTUzOTM1O1xyXG4gIH1cclxuXHJcbiAgLnNjcmVlbnNob3Qge1xyXG4gICAgd2lkdGg6IDQ1MnB4O1xyXG4gICAgaGVpZ2h0OiAzMTVweDtcclxuICAgIG1hcmdpbjogOHB4IDE0cHggNHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gIH1cclxuXHJcbi8qIE11c2ljIHBsdWdpbiAqL1xyXG4gIC50cmFja2xpc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICAgIG1hcmdpbi1sZWZ0OiAyOHB4O1xyXG4gICAgbWFyZ2luLXRvcDogNHB4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG4gIC50cmFjayB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIH1cclxuICAudHJhY2sgaW1nIHtcclxuICAgIG1hcmdpbjogMCAxMHB4O1xyXG4gICAgYm9yZGVyLXJhZGl1czogN3B4O1xyXG4gIH1cclxuICAudHJhY2sgLm5hbWUge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgbGluZS1oZWlnaHQ6IDE0cHg7XHJcbiAgfVxyXG4gIC50cmFjayAuYXJ0aXN0IHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbi8qIFBvc3RzIHBsdWdpbiAqL1xyXG4gIC5wb3N0IHtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIC50aXRsZSB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICB3aWR0aDogNDAwcHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xyXG4gICAgbWF4LWhlaWdodDogNDBweDs7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyAuZGF0ZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgd2lkdGg6IDQwcHg7XHJcbiAgICBwYWRkaW5nLXRvcDogMXB4O1xyXG4gIH1cclxuXHJcbi8qIFRvcGljcyAqL1xyXG4gIC50b3BpY3Mge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtd3JhcDogd3JhcDtcclxuICB9XHJcblxyXG4gIC50b3BpY3MgaW1nIHtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIG1hcmdpbjogNHB4O1xyXG4gIH1cclxuXHJcbi8qIFR3ZWV0cyAqL1xyXG4gIC50d2VldCB7XHJcbiAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICBtYXJnaW4tdG9wOiA2cHg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDE4cHg7XHJcbiAgICBib3JkZXItbGVmdDogM3B4IHNvbGlkICM3Nzc3NzdCMjtcclxuICAgIHBhZGRpbmctbGVmdDogNnB4O1xyXG4gIH1cclxuXHJcbiAgLnR3ZWV0IC5tZW50aW9uLCAudHdlZXQgLmxpbmssIC50d2VldCAuaGFzaHRhZyB7XHJcbiAgICBjb2xvcjogIzAzNjZkNjtcclxuICB9XHJcblxyXG4gIC50d2VldCAuZGF0ZSB7XHJcbiAgICBtYXJnaW46IDZweCAwO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgY29sb3I6ICM2NjY2NjY7XHJcbiAgfVxyXG5cclxuLyogQ2hhcnRzIGFuZCBncmFwaHMgKi9cclxuICAuY2hhcnQge1xyXG4gICAgcGFkZGluZzogMCA4cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBtYXJnaW46IDhweCAwIDRweDtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzIC5lbnRyeSB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbiAgLmNoYXJ0LWJhcnMgLmVudHJ5IC52YWx1ZSB7XHJcbiAgICBmb250LXNpemU6IDlweDtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzIC5iYXIge1xyXG4gICAgd2lkdGg6IDdweDtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1iZyk7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYm9yZGVyKTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzLmhvcml6b250YWwge1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBzcGFjZS1iZXR3ZWVuO1xyXG4gICAgaGVpZ2h0OiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgLmNoYXJ0LWJhcnMuaG9yaXpvbnRhbCAuZW50cnkge1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzLmhvcml6b250YWwgLmVudHJ5IC5uYW1lIHtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBtaW4td2lkdGg6IDMwJTtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzLmhvcml6b250YWwgLmJhciB7XHJcbiAgICBoZWlnaHQ6IDdweDtcclxuICAgIHdpZHRoOiBhdXRvO1xyXG4gICAgbWFyZ2luOiAwIDZweDtcclxuICB9XHJcblxyXG4vKiBGYWRlIGFuaW1hdGlvbiAqL1xyXG4gIC5hZiB7XHJcbiAgICBvcGFjaXR5OiAwO1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tZmFkZSAxcyBlYXNlIGZvcndhcmRzO1xyXG4gIH1cclxuICBAa2V5ZnJhbWVzIGFuaW1hdGlvbi1mYWRlIHtcclxuICAgIGZyb20ge1xyXG4gICAgICBvcGFjaXR5OiAwO1xyXG4gICAgfVxyXG4gICAgdG8ge1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8qIENha2UgZGF5ICovXHJcbiAgLmNha2VkYXksIC5jYWtlZGF5IHN2ZyB7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbi1yYWluYm93IDEuMnM7XHJcbiAgICBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTtcclxuICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXBzKDEpO1xyXG4gIH1cclxuXHJcbi8qIFJhaW5ib3cgYW5pbWF0aW9uICovXHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tcmFpbmJvdyB7XHJcbiAgICAwJSwgMTAwJXsgY29sb3I6ICM3RjAwRkY7IGZpbGw6ICM3RjAwRkY7IH1cclxuICAgIDE0JSB7IGNvbG9yOiAjQTkzM0ZGOyBmaWxsOiAjQTkzM0ZGOyB9XHJcbiAgICAyOSV7IGNvbG9yOiAjMDA3RkZGOyBmaWxsOiAjMDA3RkZGOyB9XHJcbiAgICA0MyV7IGNvbG9yOiAjMDBGRjdGOyBmaWxsOiAjMDBGRjdGOyB9XHJcblx0XHQ1NyV7IGNvbG9yOiAjRkZGRjAwOyBmaWxsOiAjRkZGRjAwOyB9XHJcblx0XHQ3MSV7IGNvbG9yOiAjRkY3RjAwOyBmaWxsOiAjRkY3RjAwOyB9XHJcblx0XHQ4NiV7IGNvbG9yOiAjRkYwMDAwOyBmaWxsOiAjRkYwMDAwOyB9XHJcbiAgfVxyXG5cclxuLyogQ2FsZW5kYXIgKi9cclxuICA6cm9vdCB7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1iZzogI2ViZWRmMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJnOiAjOWJlOWE4O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYmc6ICM0MGM0NjM7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMy1iZzogIzMwYTE0ZTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJnOiAjMjE2ZTM5O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwxLWJnOiAjZmZlZTRhO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwyLWJnOiAjZmZjNTAxO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwzLWJnOiAjZmU5NjAwO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUw0LWJnOiAjMDMwMDFjO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDQtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDEtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gIH0iLCJmb250cyI6IiJ9LCJyZXBvc2l0b3J5Ijp7ImltYWdlIjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0ODBcIiBoZWlnaHQ9XCI8JT0gMFxyXG4gICsgKCEhYmFzZS5oZWFkZXIpKjQyXHJcbiAgKyAoISFwbHVnaW5zLnRyYWZmaWMpKjE4XHJcbiAgKyAoISFwbHVnaW5zLmZvbGxvd3VwKSo2OFxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMjhcclxuICArICghIXBsdWdpbnMucHJvamVjdHMpKjIyICsgKHBsdWdpbnMucHJvamVjdHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo2MCArICghIXBsdWdpbnMucHJvamVjdHM/LmVycm9yKSoyMlxyXG4lPlwiPlxyXG5cclxuICA8ZGVmcz48c3R5bGU+PCU9IGZvbnRzICU+PC9zdHlsZT48L2RlZnM+XHJcblxyXG4gIDxzdHlsZT5cclxuICAgIDwlPSBzdHlsZSAlPlxyXG4gIDwvc3R5bGU+XHJcblxyXG4gIDxmb3JlaWduT2JqZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCI+XHJcbiAgICA8ZGl2IHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbFwiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiPlxyXG5cclxuICAgICAgPCUgaWYgKGVycm9ycy5sZW5ndGgpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IGVycm9ycy5tYXAoKHtlcnJvcn0pID0+IGVycm9yLm1lc3NhZ2UpLmpvaW4oXCIsIFwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSBlbHNlIHsgJT5cclxuXHJcbiAgICAgICAgPCUgaWYgKGJhc2UuaGVhZGVyKSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIDwlPSBjb21wdXRlZC5jYWtlZGF5ID8gJ2Nha2VkYXknIDogJycgJT5cIj5cclxuICAgICAgICAgICAgICAgICAgPCUgaWYgKGNvbXB1dGVkLmNha2VkYXkpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC43NSAxLjVhMS4yNSAxLjI1IDAgMTAwIDIuNWgyLjMwOWMtLjIzMy0uODE4LS41NDItMS40MDEtLjg3OC0xLjc5My0uNDMtLjUwMi0uOTE1LS43MDctMS40MzEtLjcwN3pNMiAyLjc1YzAgLjQ1LjEwOC44NzUuMyAxLjI1aC0uNTVBMS43NSAxLjc1IDAgMDAwIDUuNzV2MmMwIC42OTguNDA5IDEuMyAxIDEuNTgydjQuOTE4YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMTAuNUExLjc1IDEuNzUgMCAwMDE1IDE0LjI1VjkuMzMyYy41OTEtLjI4MSAxLS44ODQgMS0xLjU4MnYtMkExLjc1IDEuNzUgMCAwMDE0LjI1IDRoLS41NWEyLjc1IDIuNzUgMCAwMC0yLjQ1LTRjLS45ODQgMC0xLjg3NC40Mi0yLjU3IDEuMjNBNS4wODYgNS4wODYgMCAwMDggMi4yNzRhNS4wODYgNS4wODYgMCAwMC0uNjgtMS4wNDJDNi42MjMuNDIgNS43MzMgMCA0Ljc1IDBBMi43NSAyLjc1IDAgMDAyIDIuNzV6TTguOTQxIDRoMi4zMDlhMS4yNSAxLjI1IDAgMTAwLTIuNWMtLjUxNiAwLTEgLjIwNS0xLjQzLjcwNy0uMzM3LjM5Mi0uNjQ2Ljk3NS0uODc5IDEuNzkzem0tMS44NCAxLjVIMS43NWEuMjUuMjUgMCAwMC0uMjUuMjV2MmMwIC4xMzguMTEyLjI1LjI1LjI1aDUuNVY1LjVoLS4xNDl6bTEuNjQ5IDBWOGg1LjVhLjI1LjI1IDAgMDAuMjUtLjI1di0yYS4yNS4yNSAwIDAwLS4yNS0uMjVoLTUuNXptMCA0aDQuNzV2NC43NWEuMjUuMjUgMCAwMS0uMjUuMjVoLTQuNXYtNXptLTEuNSAwdjVoLTQuNWEuMjUuMjUgMCAwMS0uMjUtLjI1VjkuNWg0Ljc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBDcmVhdGVkIDwlPSBjb21wdXRlZC5yZWdpc3RyYXRpb24gJT5cclxuICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHptLjUgNC43NWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAuNDcxLjY5NmwyLjUgMWEuNzUuNzUgMCAwMC41NTctMS4zOTJMOC41IDcuNzQyVjQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIENyZWF0ZWQgPCU9IGNvbXB1dGVkLnJlZ2lzdHJhdGlvbiAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAzLjVjMC0uMTMzLjA1OC0uMzE4LjI4Mi0uNTUuMjI3LS4yMzcuNTkyLS40ODQgMS4xLS43MDhDNC44OTkgMS43OTUgNi4zNTQgMS41IDggMS41YzEuNjQ3IDAgMy4xMDIuMjk1IDQuMTE3Ljc0Mi41MS4yMjQuODc0LjQ3IDEuMTAxLjcwNy4yMjQuMjMzLjI4Mi40MTguMjgyLjU1MSAwIC4xMzMtLjA1OC4zMTgtLjI4Mi41NS0uMjI3LjIzNy0uNTkyLjQ4NC0xLjEuNzA4QzExLjEwMSA1LjIwNSA5LjY0NiA1LjUgOCA1LjVjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDctLjIyNC0uMjMzLS4yODItLjQxOC0uMjgyLS41NTF6TTEgMy41YzAtLjYyNi4yOTItMS4xNjUuNy0xLjU5LjQwNi0uNDIyLjk1Ni0uNzY3IDEuNTc5LTEuMDQxQzQuNTI1LjMyIDYuMTk1IDAgOCAwYzEuODA1IDAgMy40NzUuMzIgNC43MjIuODY5LjYyMi4yNzQgMS4xNzIuNjIgMS41NzggMS4wNC40MDguNDI2LjcuOTY1LjcgMS41OTF2OWMwIC42MjYtLjI5MiAxLjE2NS0uNyAxLjU5LS40MDYuNDIyLS45NTYuNzY3LTEuNTc5IDEuMDQxQzExLjQ3NiAxNS42OCA5LjgwNiAxNiA4IDE2Yy0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5LS42MjMtLjI3NC0xLjE3My0uNjItMS41NzktMS4wNC0uNDA4LS40MjYtLjctLjk2NS0uNy0xLjU5MXYtOXpNMi41IDhWNS43MjRjLjI0MS4xNS41MDMuMjg2Ljc3OS40MDdDNC41MjUgNi42OCA2LjE5NSA3IDggN2MxLjgwNSAwIDMuNDc1LS4zMiA0LjcyMi0uODY5LjI3NS0uMTIxLjUzNy0uMjU3Ljc3OC0uNDA3VjhjMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgOS43MDUgOS42NDYgMTAgOCAxMGMtMS42NDcgMC0zLjEwMi0uMjk1LTQuMTE3LS43NDItLjUxLS4yMjQtLjg3NC0uNDctMS4xMDEtLjcwN0MyLjU1OCA4LjMxOCAyLjUgOC4xMzMgMi41IDh6bTAgMi4yMjVWMTIuNWMwIC4xMzMuMDU4LjMxOC4yODIuNTUuMjI3LjIzNy41OTIuNDg0IDEuMS43MDggMS4wMTYuNDQ3IDIuNDcxLjc0MiA0LjExOC43NDIgMS42NDcgMCAzLjEwMi0uMjk1IDQuMTE3LS43NDIuNTEtLjIyNC44NzQtLjQ3IDEuMTAxLS43MDcuMjI0LS4yMzMuMjgyLS40MTguMjgyLS41NTF2LTIuMjc1Yy0uMjQxLjE1LS41MDMuMjg1LS43NzguNDA2LTEuMjQ3LjU0OS0yLjkxNy44NjktNC43MjIuODY5LTEuODA1IDAtMy40NzUtLjMyLTQuNzIxLS44NjlhNi4yMzYgNi4yMzYgMCAwMS0uNzc5LS40MDZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gY29tcHV0ZWQuZGlza1VzYWdlICU+IHVzZWRcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudHJhZmZpYykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMCAxLjc1QS43NS43NSAwIDAxLjc1IDFoNC4yNTNjMS4yMjcgMCAyLjMxNy41OSAzIDEuNTAxQTMuNzQ0IDMuNzQ0IDAgMDExMS4wMDYgMWg0LjI0NWEuNzUuNzUgMCAwMS43NS43NXYxMC41YS43NS43NSAwIDAxLS43NS43NWgtNC41MDdhMi4yNSAyLjI1IDAgMDAtMS41OTEuNjU5bC0uNjIyLjYyMWEuNzUuNzUgMCAwMS0xLjA2IDBsLS42MjItLjYyMUEyLjI1IDIuMjUgMCAwMDUuMjU4IDEzSC43NWEuNzUuNzUgMCAwMS0uNzUtLjc1VjEuNzV6bTguNzU1IDNhMi4yNSAyLjI1IDAgMDEyLjI1LTIuMjVIMTQuNXY5aC0zLjc1N2MtLjcxIDAtMS40LjIwMS0xLjk5Mi41NzJsLjAwNC03LjMyMnptLTEuNTA0IDcuMzI0bC4wMDQtNS4wNzMtLjAwMi0yLjI1M0EyLjI1IDIuMjUgMCAwMDUuMDAzIDIuNUgxLjV2OWgzLjc1N2EzLjc1IDMuNzUgMCAwMTEuOTk0LjU3NHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50cmFmZmljLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMudHJhZmZpYy52aWV3cy5jb3VudCAlPiB2aWV3PCU9IHMocGx1Z2lucy50cmFmZmljLnZpZXdzLmNvdW50KSAlPiBpbiBsYXN0IHR3byB3ZWVrc1xyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjYWxlbmRhclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT4gMTFcIiB3aWR0aD1cIjwlPSBjb21wdXRlZC5jYWxlbmRhci5sZW5ndGgqMTUgJT5cIiBoZWlnaHQ9XCIxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbeCwge2NvbG9yfV0gb2YgT2JqZWN0LmVudHJpZXMoY29tcHV0ZWQuY2FsZW5kYXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IGNsYXNzPVwiZGF5XCIgeD1cIjwlPSB4KjE1ICU+XCIgeT1cIjBcIiB3aWR0aD1cIjExXCIgaGVpZ2h0PVwiMTFcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIgcng9XCIyXCIgcnk9XCIyXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5saW5lcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy5saW5lcy5lcnJvciA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNC42NjRhLjI1LjI1IDAgMDAtLjA3My0uMTc3bC0yLjkxNC0yLjkxNGEuMjUuMjUgMCAwMC0uMTc3LS4wNzNIMi43NXpNMSAxLjc1QzEgLjc4NCAxLjc4NCAwIDIuNzUgMGg3LjU4NmMuNDY0IDAgLjkwOS4xODQgMS4yMzcuNTEzbDIuOTE0IDIuOTE0Yy4zMjkuMzI4LjUxMy43NzMuNTEzIDEuMjM3djkuNTg2QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMS43NXptNyAxLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS41aDEuNWEuNzUuNzUgMCAwMTAgMS41aC0xLjV2MS41YS43NS43NSAwIDAxLTEuNSAwVjdoLTEuNWEuNzUuNzUgMCAwMTAtMS41aDEuNVY0QS43NS43NSAwIDAxOCAzLjI1em0tMyA4YS43NS43NSAwIDAxLjc1LS43NWg0LjVhLjc1Ljc1IDAgMDEwIDEuNWgtNC41YS43NS43NSAwIDAxLS43NS0uNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubGluZXMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGluZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGluZXMuYWRkZWQgJT4gYWRkZWQsIDwlPSBwbHVnaW5zLmxpbmVzLmRlbGV0ZWQgJT4gcmVtb3ZlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cCkgeyAlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG5cclxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8aDM+SXNzdWVzPC9oMz5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cC5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJiYXJcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMjBcIiBoZWlnaHQ9XCI4XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwiaXNzdWVzLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjaXNzdWVzLWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQgPyAwIDogMjIwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2Q3M2E0OVwiLz5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjaXNzdWVzLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAoMS1wbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWQvcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaG9yaXpvbnRhbCBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiNkNzNhNDlcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgOGE2LjUgNi41IDAgMDExMC42NS01LjAwMy43NS43NSAwIDAwLjk1OS0xLjE1MyA4IDggMCAxMDIuNTkyIDguMzMuNzUuNzUgMCAxMC0xLjQ0NC0uNDA3QTYuNSA2LjUgMCAwMTEuNSA4ek04IDEyYTEgMSAwIDEwMC0yIDEgMSAwIDAwMCAyem0wLThhLjc1Ljc1IDAgMDEuNzUuNzV2My41YS43NS43NSAwIDExLTEuNSAwdi0zLjVBLjc1Ljc1IDAgMDE4IDR6bTQuNzggNC4yOGwzLTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0yLjQ3IDIuNDctLjk3LS45N2EuNzQ5Ljc0OSAwIDEwLTEuMDYgMS4wNmwxLjUgMS41YS43NS43NSAwIDAwMS4wNiAwelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkICU+IENsb3NlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMub3BlbiAlPiBPcGVuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgICA8aDM+UHVsbCByZXF1ZXN0czwvaDM+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXAuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bWFzayBpZD1cInByLWJhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHItYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50ID8gMCA6IDIyMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2QxZDVkYVwiLz5cclxuICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHItYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiM2ZjQyYzFcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3ByLWJhcilcIiB4PVwiPCU9IChwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZC9wbHVnaW5zLmZvbGxvd3VwLnByLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiMyOGE3NDVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiIzZmNDJjMVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUgMy4yNTRWMy4yNXYuMDA1YS43NS43NSAwIDExMC0uMDA1di4wMDR6bS40NSAxLjlhMi4yNSAyLjI1IDAgMTAtMS45NS4yMTh2NS4yNTZhMi4yNSAyLjI1IDAgMTAxLjUgMFY3LjEyM0E1LjczNSA1LjczNSAwIDAwOS4yNSA5aDEuMzc4YTIuMjUxIDIuMjUxIDAgMTAwLTEuNUg5LjI1YTQuMjUgNC4yNSAwIDAxLTMuOC0yLjM0NnpNMTIuNzUgOWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXptLTguNSA0LjVhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZCAlPiBNZXJnZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjMjhhNzQ1XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuXHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8JSB9ICU+XHJcblxyXG4gICAgICAgIDwlIGlmIChwbHVnaW5zLnByb2plY3RzKSB7ICU+XHJcbiAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAwQTEuNzUgMS43NSAwIDAwMCAxLjc1djEyLjVDMCAxNS4yMTYuNzg0IDE2IDEuNzUgMTZoMTIuNUExLjc1IDEuNzUgMCAwMDE2IDE0LjI1VjEuNzVBMS43NSAxLjc1IDAgMDAxNC4yNSAwSDEuNzV6TTEuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWgxMi41YS4yNS4yNSAwIDAxLjI1LjI1djEyLjVhLjI1LjI1IDAgMDEtLjI1LjI1SDEuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek0xMS43NSAzYS43NS43NSAwIDAwLS43NS43NXY3LjVhLjc1Ljc1IDAgMDAxLjUgMHYtNy41YS43NS43NSAwIDAwLS43NS0uNzV6bS04LjI1Ljc1YS43NS43NSAwIDAxMS41IDB2NS41YS43NS43NSAwIDAxLTEuNSAwdi01LjV6TTggM2EuNzUuNzUgMCAwMC0uNzUuNzV2My41YS43NS43NSAwIDAwMS41IDB2LTMuNUEuNzUuNzUgMCAwMDggM3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgQWN0aXZlIHByb2plY3RzXHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnByb2plY3RzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB1cGRhdGVkLCBwcm9ncmVzc30gb2YgcGx1Z2lucy5wcm9qZWN0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMy43NUMwIDIuNzg0Ljc4NCAyIDEuNzUgMmgxMi41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OC41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTRIMS43NUExLjc1IDEuNzUgMCAwMTAgMTIuMjV2LTguNXptMS43NS0uMjVhLjI1LjI1IDAgMDAtLjI1LjI1djguNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEyLjVhLjI1LjI1IDAgMDAuMjUtLjI1di04LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgxLjc1ek0zLjUgNi4yNWEuNzUuNzUgMCAwMS43NS0uNzVoN2EuNzUuNzUgMCAwMTAgMS41aC03YS43NS43NSAwIDAxLS43NS0uNzV6bS43NSAyLjI1YS43NS43NSAwIDAwMCAxLjVoNGEuNzUuNzUgMCAwMDAtMS41aC00elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8JT0gbmFtZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTggMGE4IDggMCAxMDAgMTZBOCA4IDAgMDA4IDB6bS41IDQuNzVhLjc1Ljc1IDAgMDAtMS41IDB2My41YS43NS43NSAwIDAwLjQ3MS42OTZsMi41IDFhLjc1Ljc1IDAgMDAuNTU3LTEuMzkyTDguNSA3Ljc0MlY0Ljc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGVkIDwlPSB1cGRhdGVkICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi41IDEuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDguNWEuMjUuMjUgMCAwMS4yNS4yNXY3LjczNmEuNzUuNzUgMCAxMDEuNSAwVjEuNzVBMS43NSAxLjc1IDAgMDAxMS4yNSAwaC04LjVBMS43NSAxLjc1IDAgMDAxIDEuNzV2MTEuNWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDMuMTdhLjc1Ljc1IDAgMDAwLTEuNUgyLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNNC43NSA0YS43NS43NSAwIDAwMCAxLjVoNC41YS43NS43NSAwIDAwMC0xLjVoLTQuNXpNNCA3Ljc1QS43NS43NSAwIDAxNC43NSA3aDJhLjc1Ljc1IDAgMDEwIDEuNWgtMkEuNzUuNzUgMCAwMTQgNy43NXptMTEuNzc0IDMuNTM3YS43NS43NSAwIDAwLTEuMDQ4LTEuMDc0TDEwLjcgMTQuMTQ1IDkuMjgxIDEyLjcyYS43NS43NSAwIDAwLTEuMDYyIDEuMDU4bDEuOTQzIDEuOTVhLjc1Ljc1IDAgMDAxLjA1NS4wMDhsNC41NTctNC40NXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8JT0gW3Byb2dyZXNzLmRvbmUgPyBgJHtwcm9ncmVzcy5kb25lfSBkb25lYCA6IFwiXCIsIHByb2dyZXNzLmRvaW5nID8gYCR7cHJvZ3Jlc3MuZG9pbmd9IGRvaW5nYCA6IFwiXCIsIHByb2dyZXNzLnRvZG8gPyBgJHtwcm9ncmVzcy50b2RvfSB0b2RvYCA6IFwiXCJdLmZpbHRlcihzdHIgPT4gc3RyKS5qb2luKFwiIMK3IFwiKSAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgaWYgKHByb2dyZXNzLmVuYWJsZWQpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXIgaG9yaXpvbnRhbC13cmFwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHJvamVjdC1iYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3Byb2plY3QtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhBNzQ1XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI3Byb2plY3QtYmFyKVwiIHg9XCI8JT0gKHByb2dyZXNzLmRvbmUvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLmRvaW5nL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiM2RjQyQzFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAoKHByb2dyZXNzLmRvbmUrcHJvZ3Jlc3MuZG9pbmcpL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy50b2RvL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAlPlxyXG4gICAgICAgIDxmb290ZXI+XHJcbiAgICAgICAgICA8c3Bhbj5MYXN0IHVwZGF0ZWQgPCU9IG5ldyBEYXRlKCkudG9HTVRTdHJpbmcoKSAlPiB3aXRoIGxvd2xpZ2h0ZXIvbWV0cmljc0A8JT0gbWV0YS52ZXJzaW9uICU+PC9zcGFuPlxyXG4gICAgICAgIDwvZm9vdGVyPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JlaWduT2JqZWN0PlxyXG48L3N2Zz4iLCJzdHlsZSI6Ii8qIFNWRyBnbG9iYWwgY29udGV4dCAqL1xyXG4gIHN2ZyB7XHJcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBTZWdvZSBVSSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgQXBwbGUgQ29sb3IgRW1vamksIFNlZ29lIFVJIEVtb2ppO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG5cclxuLyogSGVhZGVycyAqL1xyXG4gIGgxLCBoMiwgaDMge1xyXG4gICAgbWFyZ2luOiA4cHggMCAycHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY29sb3I6ICMwMzY2ZDY7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIH1cclxuICBoMSBzdmcsIGgyIHN2ZywgaDMgc3ZnIHtcclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICB9XHJcbiAgaDEge1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG4gIGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcbiAgaDMge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gIH1cclxuXHJcbi8qIEZpZWxkcyAqL1xyXG4gIHNlY3Rpb24gPiAuZmllbGQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIH1cclxuICAuZmllbGQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAuZmllbGQgc3ZnIHtcclxuICAgIG1hcmdpbjogMCA4cHg7XHJcbiAgICBmaWxsOiAjOTU5ZGE1O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgfVxyXG4gIC5maWVsZC5lcnJvciB7XHJcbiAgICBjb2xvcjogI2NiMjQzMTtcclxuICB9XHJcbiAgLmZpZWxkLmVycm9yIHN2ZyB7XHJcbiAgICBmaWxsOiAjY2IyNDMxO1xyXG4gIH1cclxuXHJcbi8qIERpc3BsYXlzICovXHJcbiAgLnJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuICAucm93IHNlY3Rpb24ge1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgfVxyXG4gIC5jb2x1bW4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuICAuY2VudGVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICB9XHJcbiAgLmhvcml6b250YWwtd3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsIC5maWVsZCB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcbiAgLm5vLXdyYXAge1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB9XHJcbiAgLmZpbGwtd2lkdGgge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuLyogVXNlciBhdmF0YXIgKi9cclxuICAuYXZhdGFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBtYXJnaW46IDAgNnB4O1xyXG4gIH1cclxuXHJcbi8qIENvbW1pdCBjYWxlbmRhciAqL1xyXG4gIC5jYWxlbmRhci5maWVsZCB7XHJcbiAgICBtYXJnaW46IDRweCAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDdweDtcclxuICB9XHJcbiAgLmNhbGVuZGFyIC5kYXkge1xyXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEoMjcsMzEsMzUsLjA0KTtcclxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xyXG4gIH1cclxuXHJcbi8qIFByb2dyZXNzIGJhcnMgKi9cclxuICBzdmcuYmFyIHtcclxuICAgIG1hcmdpbjogNHB4IDA7XHJcbiAgfVxyXG5cclxuLyogTGFuZ3VhZ2UgKi9cclxuICAuZmllbGQubGFuZ3VhZ2Uge1xyXG4gICAgbWFyZ2luOiAwIDhweDtcclxuICAgIGZsZXgtZ3JvdzogMDtcclxuICB9XHJcblxyXG4gIC5maWVsZC5sYW5ndWFnZSBzbWFsbCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xyXG4gICAgY29sb3I6ICM2NjY2NjY7XHJcbiAgfVxyXG5cclxuLyogTGFiZWxzICovXHJcbiAgLmxhYmVsIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGMUY4RkY7XHJcbiAgICBjb2xvcjogIzAzNjZENjtcclxuICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMjJweDtcclxuICAgIG1hcmdpbjogMnB4IDVweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gIH1cclxuXHJcbiAgLmxhYmVsOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNEREVFRkY7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuLyogSGFiaXRzICovXHJcbiAgLmhhYml0cyB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDM3cHg7XHJcbiAgfVxyXG5cclxuLyogRm9vdGVyICovXHJcbiAgZm9vdGVyIHtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XHJcbiAgfVxyXG5cclxuLyogU3BlZWQgdGVzdCBjYXRlZ29yaWVzICovXHJcbiAgLmNhdGVnb3JpZXMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICAgIG1hcmdpbi10b3A6IDRweDtcclxuICB9XHJcbiAgLmNhdGVnb3JpZSB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcblxyXG4vKiBHYXVnZXMgKi9cclxuICAuZ2F1Z2Uge1xyXG4gICAgc3Ryb2tlLWxpbmVjYXA6IHJvdW5kO1xyXG4gICAgZmlsbDogbm9uZTtcclxuICB9XHJcbiAgLmdhdWdlLmhpZ2gge1xyXG4gICAgY29sb3I6ICMxOGI2NjM7XHJcbiAgfVxyXG4gIC5nYXVnZS5hdmVyYWdlIHtcclxuICAgIGNvbG9yOiAjZmI4YzAwO1xyXG4gIH1cclxuICAuZ2F1Z2UubG93IHtcclxuICAgIGNvbG9yOiAjZTUzOTM1O1xyXG4gIH1cclxuICAuZ2F1Z2UtYmFzZSwgLmdhdWdlLWFyYyB7XHJcbiAgICBzdHJva2U6IGN1cnJlbnRDb2xvcjtcclxuICAgIHN0cm9rZS13aWR0aDogMTA7XHJcbiAgfVxyXG4gIC5nYXVnZS1iYXNlIHtcclxuICAgIHN0cm9rZS1vcGFjaXR5OiAuMjtcclxuICB9XHJcbiAgLmdhdWdlLWFyYyB7XHJcbiAgICBmaWxsOiBub25lO1xyXG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XHJcbiAgICBhbmltYXRpb24tZGVsYXk6IDI1MG1zO1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tZ2F1Z2UgMXMgZWFzZSBmb3J3YXJkc1xyXG4gIH1cclxuICAuZ2F1Z2UgdGV4dCB7XHJcbiAgICBmaWxsOiBjdXJyZW50Q29sb3I7XHJcbiAgICBmb250LXNpemU6IDQwcHg7XHJcbiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlO1xyXG4gICAgdGV4dC1hbmNob3I6IG1pZGRsZTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgfVxyXG4gIC5nYXVnZSAudGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxOHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG4gIEBrZXlmcmFtZXMgYW5pbWF0aW9uLWdhdWdlIHtcclxuICAgIGZyb20ge1xyXG4gICAgICBzdHJva2UtZGFzaGFycmF5OiAwIDMyOTtcclxuICAgIH1cclxuICB9XHJcbiAgLmF1ZGl0cyB7XHJcbiAgICBtYXJnaW4tdG9wOiA4cHg7XHJcbiAgfVxyXG4gIC5hdWRpdC50ZXh0IHtcclxuICAgIG1pbi13aWR0aDogNDJweDtcclxuICB9XHJcbiAgLmF1ZGl0IHN2ZyB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgfVxyXG4gIC5hdWRpdC5oaWdoIHtcclxuICAgIGZpbGw6ICMxOGI2NjM7XHJcbiAgfVxyXG4gIC5hdWRpdC5hdmVyYWdlIHtcclxuICAgIGZpbGw6ICNmYjhjMDA7XHJcbiAgfVxyXG4gIC5hdWRpdC5sb3cge1xyXG4gICAgZmlsbDogI2U1MzkzNTtcclxuICB9XHJcblxyXG4gIC5zY3JlZW5zaG90IHtcclxuICAgIHdpZHRoOiA0NTJweDtcclxuICAgIGhlaWdodDogMzE1cHg7XHJcbiAgICBtYXJnaW46IDhweCAxNHB4IDRweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICB9XHJcblxyXG4vKiBNdXNpYyBwbHVnaW4gKi9cclxuICAudHJhY2tsaXN0IHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgICBtYXJnaW4tbGVmdDogMjhweDtcclxuICAgIG1hcmdpbi10b3A6IDRweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuICAudHJhY2sge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcclxuICAgIG1hcmdpbi1ib3R0b206IDRweDtcclxuICB9XHJcbiAgLnRyYWNrIGltZyB7XHJcbiAgICBtYXJnaW46IDAgMTBweDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDdweDtcclxuICB9XHJcbiAgLnRyYWNrIC5uYW1lIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xyXG4gIH1cclxuICAudHJhY2sgLmFydGlzdCB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4vKiBQb3N0cyBwbHVnaW4gKi9cclxuICAucG9zdCB7XHJcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyAudGl0bGUge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgd2lkdGg6IDQwMHB4O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcclxuICAgIG1heC1oZWlnaHQ6IDQwcHg7O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3MgLmRhdGUge1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICAgIHdpZHRoOiA0MHB4O1xyXG4gICAgcGFkZGluZy10b3A6IDFweDtcclxuICB9XHJcblxyXG4vKiBUb3BpY3MgKi9cclxuICAudG9waWNzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG5cclxuICAudG9waWNzIGltZyB7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBtYXJnaW46IDRweDtcclxuICB9XHJcblxyXG4vKiBUd2VldHMgKi9cclxuICAudHdlZXQge1xyXG4gICAgZm9udC1zaXplOiAxM3B4O1xyXG4gICAgbWFyZ2luLXRvcDogNnB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcclxuICAgIG1hcmdpbi1sZWZ0OiAxOHB4O1xyXG4gICAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZCAjNzc3Nzc3QjI7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDZweDtcclxuICB9XHJcblxyXG4gIC50d2VldCAubWVudGlvbiwgLnR3ZWV0IC5saW5rLCAudHdlZXQgLmhhc2h0YWcge1xyXG4gICAgY29sb3I6ICMwMzY2ZDY7XHJcbiAgfVxyXG5cclxuICAudHdlZXQgLmRhdGUge1xyXG4gICAgbWFyZ2luOiA2cHggMDtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjNjY2NjY2O1xyXG4gIH1cclxuXHJcbi8qIENoYXJ0cyBhbmQgZ3JhcGhzICovXHJcbiAgLmNoYXJ0IHtcclxuICAgIHBhZGRpbmc6IDAgOHB4O1xyXG4gIH1cclxuXHJcbiAgLmNoYXJ0LWJhcnMge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbWFyZ2luOiA4cHggMCA0cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyAuZW50cnkge1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEwcHg7XHJcbiAgICBjb2xvcjogIzY2NjY2NjtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzIC5lbnRyeSAudmFsdWUge1xyXG4gICAgZm9udC1zaXplOiA5cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycyAuYmFyIHtcclxuICAgIHdpZHRoOiA3cHg7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmcpO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcik7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogc3BhY2UtYmV0d2VlbjtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICB9XHJcblxyXG4gIC5jaGFydC1iYXJzLmhvcml6b250YWwgLmVudHJ5IHtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIC5lbnRyeSAubmFtZSB7XHJcbiAgICBmbGV4LXNocmluazogMDtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgbWluLXdpZHRoOiAzMCU7XHJcbiAgfVxyXG5cclxuICAuY2hhcnQtYmFycy5ob3Jpem9udGFsIC5iYXIge1xyXG4gICAgaGVpZ2h0OiA3cHg7XHJcbiAgICB3aWR0aDogYXV0bztcclxuICAgIG1hcmdpbjogMCA2cHg7XHJcbiAgfVxyXG5cclxuLyogRmFkZSBhbmltYXRpb24gKi9cclxuICAuYWYge1xyXG4gICAgb3BhY2l0eTogMDtcclxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uLWZhZGUgMXMgZWFzZSBmb3J3YXJkcztcclxuICB9XHJcbiAgQGtleWZyYW1lcyBhbmltYXRpb24tZmFkZSB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgb3BhY2l0eTogMDtcclxuICAgIH1cclxuICAgIHRvIHtcclxuICAgICAgb3BhY2l0eTogMTtcclxuICAgIH1cclxuICB9XHJcblxyXG4vKiBDYWtlIGRheSAqL1xyXG4gIC5jYWtlZGF5LCAuY2FrZWRheSBzdmcge1xyXG4gICAgYW5pbWF0aW9uOiBhbmltYXRpb24tcmFpbmJvdyAxLjJzO1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogaW5maW5pdGU7XHJcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBzdGVwcygxKTtcclxuICB9XHJcblxyXG4vKiBSYWluYm93IGFuaW1hdGlvbiAqL1xyXG4gIEBrZXlmcmFtZXMgYW5pbWF0aW9uLXJhaW5ib3cge1xyXG4gICAgMCUsIDEwMCV7IGNvbG9yOiAjN0YwMEZGOyBmaWxsOiAjN0YwMEZGOyB9XHJcbiAgICAxNCUgeyBjb2xvcjogI0E5MzNGRjsgZmlsbDogI0E5MzNGRjsgfVxyXG4gICAgMjkleyBjb2xvcjogIzAwN0ZGRjsgZmlsbDogIzAwN0ZGRjsgfVxyXG4gICAgNDMleyBjb2xvcjogIzAwRkY3RjsgZmlsbDogIzAwRkY3RjsgfVxyXG5cdFx0NTcleyBjb2xvcjogI0ZGRkYwMDsgZmlsbDogI0ZGRkYwMDsgfVxyXG5cdFx0NzEleyBjb2xvcjogI0ZGN0YwMDsgZmlsbDogI0ZGN0YwMDsgfVxyXG5cdFx0ODYleyBjb2xvcjogI0ZGMDAwMDsgZmlsbDogI0ZGMDAwMDsgfVxyXG4gIH1cclxuXHJcbi8qIENhbGVuZGFyICovXHJcbiAgOnJvb3Qge1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktYmc6ICNlYmVkZjA7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1ib3JkZXI6IHJnYmEoMjcsMzEsMzUsMC4wNik7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMS1iZzogIzliZTlhODtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJnOiAjNDBjNDYzO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYmc6ICMzMGExNGU7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MNC1iZzogIzIxNmUzOTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMS1iZzogI2ZmZWU0YTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMi1iZzogI2ZmYzUwMTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MMy1iZzogI2ZlOTYwMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItaGFsbG93ZWVuLWdyYXBoLWRheS1MNC1iZzogIzAzMDAxYztcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwzLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwyLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICB9IiwiZm9udHMiOiIifSwidGVybWluYWwiOnsiaW1hZ2UiOiI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ4MFwiIGhlaWdodD1cIjwlPSA0OFxyXG4gICsgKCEhYmFzZS5oZWFkZXIpKjYyXHJcbiAgKyAoISFiYXNlLm1ldGFkYXRhKSoxMDhcclxuICArICghIWJhc2UuYWN0aXZpdHkpKjEwOFxyXG4gICsgKCEhYmFzZS5jb21tdW5pdHkpKjk0XHJcbiAgKyAoISFiYXNlLnJlcG9zaXRvcmllcykqMTQyXHJcbiAgKyAoKCEhYmFzZS5yZXBvc2l0b3JpZXMpKighIXBsdWdpbnMudHJhZmZpYykpKjE4XHJcbiAgKyAoKCEhYmFzZS5yZXBvc2l0b3JpZXMpKighIXBsdWdpbnMuZm9sbG93dXApKSoxMDJcclxuICArICgoISFiYXNlLnJlcG9zaXRvcmllcykqKCEhcGx1Z2lucy5saW5lcykpKjM0XHJcbiAgKyAoISFwbHVnaW5zLnBhZ2VzcGVlZCkqMTEwICsgKHBsdWdpbnMucGFnZXNwZWVkPy5kZXRhaWxlZCA/PyAwKSo2KjE2XHJcbiAgKyAoISFwbHVnaW5zLmxhbmd1YWdlcykqMTI0XHJcbiAgKyAoISFwbHVnaW5zLmdpc3RzKSo1OFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKyghIXBsdWdpbnMuZ2lzdHMpKS0xKSkqMjBcclxuJT5cIj5cclxuICA8JVxyXG4gICAgbWV0YS4kID0gYDxzcGFuIGNsYXNzPVwicHMxLXBhdGhcIj4ke2Ake3VzZXIubG9naW59YC50b0xvY2FsZUxvd2VyQ2FzZSgpfUBtZXRyaWNzPC9zcGFuPjo8c3BhbiBjbGFzcz1cInBzMS1sb2NhdGlvblwiPn48L3NwYW4+JHtjb21wdXRlZC50b2tlbi5zY29wZXMuaW5jbHVkZXMoXCJyZXBvXCIpID8gXCIjXCIgOiBcIiRcIn1gXHJcbiAgICBtZXRhLmFuaW1hdGlvbnMgPSAhbWV0YS5wbGFjZWhvbGRlciA/IHtzdGRpbjouMTYsIHN0ZG91dDouMjgsIGxlbmd0aDooMitPYmplY3Qua2V5cyhiYXNlKS5sZW5ndGgrT2JqZWN0LmtleXMocGx1Z2lucykubGVuZ3RoKX0gOiB7c3RkaW46MCwgc3Rkb3V0OjAsIGxlbmd0aDowfVxyXG4gICU+XHJcblxyXG4gIDxkZWZzPjxzdHlsZT48JT0gZm9udHMgJT48L3N0eWxlPjwvZGVmcz5cclxuXHJcbiAgPHN0eWxlPlxyXG4gICAgPCU9IHN0eWxlICU+XHJcbiAgICAgIC5zdGRpbiwgLnN0ZG91dCB7XHJcbiAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiA8JT0gbWV0YS5hbmltYXRpb25zLnN0ZGluICU+cztcclxuICAgICAgfVxyXG4gICAgICAuc3Rkb3V0IHtcclxuICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IDwlPSBtZXRhLmFuaW1hdGlvbnMuc3Rkb3V0ICU+cztcclxuICAgICAgfVxyXG4gICAgICA8JSBmb3IgKGxldCBpID0gMCwgZCA9IDA7IGkgPCBtZXRhLmFuaW1hdGlvbnMubGVuZ3RoOyBpKyssIGQrPW1ldGEuYW5pbWF0aW9ucy5zdGRpbittZXRhLmFuaW1hdGlvbnMuc3Rkb3V0KSB7ICU+XHJcbiAgICAgICAgLnN0ZGluOm50aC1vZi10eXBlKDwlPSBpKzEgJT4pIHtcclxuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogPCU9IGQgJT5zO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc3Rkb3V0Om50aC1vZi10eXBlKDwlPSBpKzIgJT4pIHtcclxuICAgICAgICAgIGFuaW1hdGlvbi1kZWxheTogPCU9IGQrbWV0YS5hbmltYXRpb25zLnN0ZGluICU+cztcclxuICAgICAgICB9XHJcbiAgICAgICAgPCUgaWYgKGkgPT09IG1ldGEuYW5pbWF0aW9ucy5sZW5ndGgtMSkgeyAlPlxyXG4gICAgICAgICAgZm9vdGVyIHtcclxuICAgICAgICAgICAgYW5pbWF0aW9uLWRlbGF5OiA8JT0gZCAlPnM7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgPCUgfSAlPlxyXG4gICAgICA8JSB9ICU+XHJcbiAgPC9zdHlsZT5cclxuXHJcbiAgPGZvcmVpZ25PYmplY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIj5cclxuICAgIDxkaXYgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sXCIgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCI+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPjwvc3Bhbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiPuKUgDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvblwiPuKWoTwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImJ1dHRvbiBleGl0XCI+4pyVPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuPHByZT48JSMgLSU+XHJcbjwlIGlmIChiYXNlLm1ldGFkYXRhKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJiYW5uZXJcIj48JSMgLSU+XHJcbkdpdEh1YiBtZXRyaWNzIGdlbmVyYXRvciA8JT0gbWV0YS52ZXJzaW9uICU+XHJcblRoZXNlIGdlbmVyYXRlZCBtZXRyaWNzIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOT1xyXG5XQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcuXHJcblxyXG5MYXN0IGdlbmVyYXRlZDogPCU9IG5ldyBEYXRlKCkudG9HTVRTdHJpbmcoKSAlPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKGJhc2UuaGVhZGVyKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gd2hvYW1pPC9kaXY+PCUjIC0lPlxyXG48ZGl2IGNsYXNzPVwic3Rkb3V0XCI+PCUjIC0lPlxyXG48Yj48JT0gdXNlci5uYW1lIHx8IHVzZXIubG9naW4gJT48L2I+IHJlZ2lzdGVyZWQ9PCU9IGNvbXB1dGVkLnJlZ2lzdHJhdGlvbi5tYXRjaCgvXi4rPyBbeW1dLylbMF0ucmVwbGFjZSgvIC9nLCBcIlwiKSAlPiwgdWlkPTwlPSBgJHt1c2VyLmRhdGFiYXNlSWR9YC5zdWJzdHIoLTQpICU+LCBnaWQ9PCU9IHVzZXIub3JnYW5pemF0aW9ucy50b3RhbENvdW50ICU+XHJcbiAgY29udHJpYnV0ZWQgdG8gPCU9IHVzZXIucmVwb3NpdG9yaWVzQ29udHJpYnV0ZWRUby50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIucmVwb3NpdG9yaWVzQ29udHJpYnV0ZWRUby50b3RhbENvdW50LCBcInlcIikgJT4gPGI+PCUgZm9yIChjb25zdCBbeCwge2NvbG9yfV0gb2YgT2JqZWN0LmVudHJpZXMoY29tcHV0ZWQuY2FsZW5kYXIpKSB7IC0lPjxzcGFuIHN0eWxlPVwiY29sb3I6PCU9IGNvbG9yICU+XCI+Izwvc3Bhbj48JSB9ICU+PC9iPlxyXG4gIGZvbGxvd2VkIGJ5IDxiPjwlPSB1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50ICU+PC9iPiB1c2VyPCU9IHModXNlci5mb2xsb3dlcnMudG90YWxDb3VudCkgJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmICgoYmFzZS5hY3Rpdml0eSl8fChiYXNlLmNvbW11bml0eSkpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBnaXQgc3RhdHVzPC9kaXY+PCUjIC0lPlxyXG48ZGl2IGNsYXNzPVwic3Rkb3V0XCI+PCUjIC0lPlxyXG48JSBpZiAoYmFzZS5hY3Rpdml0eSkgeyAtJT5cclxuPGI+UmVjZW50IGFjdGl2aXR5PC9iPlxyXG4gIDxiPjwlPSBgJHtjb21wdXRlZC5jb21taXRzfWAucGFkU3RhcnQoNSkgJT48L2I+IGNvbW1pdDwlPSBzKGNvbXB1dGVkLmNvbW1pdHMpICU+XHJcbiAgPGI+PCU9IGAke3VzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gcHVsbCByZXF1ZXN0PCU9IHModXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9ucykgJT4gcmV2aWV3ZWRcclxuICA8Yj48JT0gYCR7dXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9uc31gLnBhZFN0YXJ0KDUpICU+PC9iPiBwdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICA8Yj48JT0gYCR7dXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9uc31gLnBhZFN0YXJ0KDUpICU+PC9iPiBpc3N1ZTwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gIDxiPjwlPSBgJHt1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiBpc3N1ZSBjb21tZW50PCU9IHModXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnQpICU+XHJcbjwlIH0gLSU+XHJcbjwlIGlmICgoYmFzZS5hY3Rpdml0eSkmJihiYXNlLmNvbW11bml0eSkpIHsgLSU+XHJcblxyXG48JSB9IC0lPlxyXG48JSBpZiAoYmFzZS5jb21tdW5pdHkpIHsgLSU+XHJcbjxiPlRyYWNrZWQgYWN0aXZpdHk8L2I+XHJcbiAgPGI+PCU9IGAke3VzZXIuZm9sbG93aW5nLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+IGZvbGxvd2VkXHJcbiAgPGI+PCU9IGAke3VzZXIuc3BvbnNvcnNoaXBzQXNTcG9uc29yLnRvdGFsQ291bnR9YC5wYWRTdGFydCg1KSAlPjwvYj4gcmVwb3NpdG9yPCU9IHModXNlci5zcG9uc29yc2hpcHNBc1Nwb25zb3IudG90YWxDb3VudCwgXCJ5XCIpICU+IHNwb25zb3JlZFxyXG4gIDxiPjwlPSBgJHt1c2VyLnN0YXJyZWRSZXBvc2l0b3JpZXMudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiByZXBvc2l0b3I8JT0gcyh1c2VyLnN0YXJyZWRSZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+IHN0YXJyZWRcclxuICA8Yj48JT0gYCR7dXNlci53YXRjaGluZy50b3RhbENvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+IHJlcG9zaXRvcjwlPSBzKHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCwgXCJ5XCIpICU+IHdhdGNoZWRcclxuPCUgfSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChiYXNlLnJlcG9zaXRvcmllcykgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGxzIC1saCBnaXRodWIvcmVwb3NpdG9yaWVzPC9kaXY+PCUjIC0lPlxyXG48ZGl2IGNsYXNzPVwic3Rkb3V0XCI+PCUjIC0lPlxyXG5Ub3RhbCA8JT0gdXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT4gLSA8JT0gY29tcHV0ZWQuZGlza1VzYWdlICU+XHJcbjwlIGlmIChwbHVnaW5zLnRyYWZmaWMpIHsgaWYgKHBsdWdpbnMudHJhZmZpYy5lcnJvcikgeyAtJT5cclxuLS0tLSAgPGI+ICAgICA8L2I+ICB2aWV3cyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IubWVzc2FnZSAlPik8L3NwYW4+XHJcbjwlIH0gZWxzZSB7IC0lPlxyXG4tci0tICA8Yj48JT0gYCR7cGx1Z2lucy50cmFmZmljLnZpZXdzLmNvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+ICB2aWV3c1xyXG48JSB9fSAtJT5cclxuLXItLSAgPGI+PCU9IGAke2NvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzfWAucGFkU3RhcnQoNSkgJT48L2I+ICBzdGFyZ2F6ZXI8JT0gcyhjb21wdXRlZC5yZXBvc2l0b3JpZXMuc3RhcmdhemVycykgJT5cclxuLXItLSAgPGI+PCU9IGAke2NvbXB1dGVkLnJlcG9zaXRvcmllcy5mb3Jrc31gLnBhZFN0YXJ0KDUpICU+PC9iPiAgZm9yazwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5mb3JrcykgJT5cclxuLXItLSAgPGI+PCU9IGAke2NvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVyc31gLnBhZFN0YXJ0KDUpICU+PC9iPiAgd2F0Y2hlcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycykgJT5cclxuZHIteCAgPGI+PCU9IGAke3VzZXIucGFja2FnZXMudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgcGFja2FnZTwlPSBzKHVzZXIucGFja2FnZXMudG90YWxDb3VudCkgJT5cclxuPCUgaWYgKHBsdWdpbnMuZm9sbG93dXApIHsgaWYgKHBsdWdpbnMuZm9sbG93dXAuZXJyb3IpIHsgLSU+XHJcbmQtLS0gIDxiPiAgICAgPC9iPiAgSVNTVUVTIDxzcGFuIGNsYXNzPVwiZXJyb3JcIj4oPCU9IHBsdWdpbnMuZm9sbG93dXAuZXJyb3IubWVzc2FnZSAlPik8L3NwYW4+XHJcbmQtLS0gIDxiPiAgICAgPC9iPiAgUFVMTF9SRVFVRVNUUyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG48JSB9IGVsc2UgeyAtJT5cclxuZHIteCAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+ICBJU1NVRVNcclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLm9wZW59YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUnOKUgOKUgCBvcGVuXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUlOKUgOKUgCBjbG9zZWRcclxuZHIteCAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+ICBQVUxMX1JFUVVFU1RTXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLnByLm9wZW59YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUnOKUgOKUgCBvcGVuXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAg4pSU4pSA4pSAIG1lcmdlZFxyXG48JSB9fSAtJT5cclxuPCUgaWYgKGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlLmxlbmd0aCkgeyAtJT5cclxuZHIteCAgICAgICAgIExJQ0VOU0VcclxuLXItLSAgICAgICAgIOKUlOKUgOKUgCA8JT0gY29tcHV0ZWQubGljZW5zZXMuZmF2b3JpdGUgJT5cclxuPCUgfSAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGluZXMpIHsgaWYgKHBsdWdpbnMubGluZXMuZXJyb3IpIHsgJT5cclxuPHNwYW4gY2xhc3M9XCJkaWZmIGVycm9yXCI+QEAgPCU9IHBsdWdpbnMubGluZXMuZXJyb3IubWVzc2FnZSAlPiBAQDwvc3Bhbj48JSB9IGVsc2UgeyAlPlxyXG48c3BhbiBjbGFzcz1cImRpZmZcIj5AQCAtPCU9IHBsdWdpbnMubGluZXMuZGVsZXRlZCAlPiArPCU9IHBsdWdpbnMubGluZXMuYWRkZWQgJT4gQEA8L3NwYW4+XHJcbjwlIH19IC0lPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKHBsdWdpbnMuZ2lzdHMpIHsgJT5cclxuPGRpdiBjbGFzcz1cInN0ZGluXCI+PCUtIG1ldGEuJCAlPiBscyAtbGggZ2l0aHViL2dpc3RzPC9kaXY+PCUjIC0lPlxyXG48ZGl2IGNsYXNzPVwic3Rkb3V0XCI+PCUjIC0lPlxyXG5Ub3RhbCA8JT0gcGx1Z2lucy5naXN0cy50b3RhbENvdW50ICU+IGdpc3Q8JT0gcyhwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQpICU+XHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnN9YC5wYWRTdGFydCg1KSAlPjwvYj4gIHN0YXJnYXplcjwlPSBzKHBsdWdpbnMuZ2lzdHMuc3RhcmdhemVycykgJT5cclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMuZ2lzdHMuZm9ya3N9YC5wYWRTdGFydCg1KSAlPjwvYj4gIGZvcms8JT0gcyhwbHVnaW5zLmdpc3RzLmZvcmtzKSAlPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gbG9jYWxlPC9kaXY+PCUjIC0lPlxyXG48ZGl2IGNsYXNzPVwic3Rkb3V0XCI+PCUjIC0lPlxyXG48JSBpZiAocGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IpIHsgLSU+XHJcbjxzcGFuIGNsYXNzPVwiZXJyb3JcIj48JT0gcGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IubWVzc2FnZSAlPjwvc3Bhbj48JSMgLSU+XHJcbjwlIH0gZWxzZSB7IGZvciAoY29uc3Qge25hbWUsIHZhbHVlfSBvZiBwbHVnaW5zLmxhbmd1YWdlcy5mYXZvcml0ZXMpIHsgLSU+XHJcbjxiPjwlPSBuYW1lLnRvTG9jYWxlVXBwZXJDYXNlKCkucGFkRW5kKDEyKSAlPjwvYj4gWzwlPSBcIiNcIi5yZXBlYXQoTWF0aC5jZWlsKDEwMCp2YWx1ZS81KSkucGFkRW5kKDIwKSAlPl0gPCU9ICgxMDAqdmFsdWUpLnRvRml4ZWQoMikucGFkRW5kKDUpICU+JVxyXG48JSB9fSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZCkgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGN1cmwgLTwlPSBwbHVnaW5zLnBhZ2VzcGVlZC5kZXRhaWxlZCA/IFwidlwiIDogXCJcIiAlPkkgPCU9IHVzZXIud2Vic2l0ZVVybCAlPjwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmVycm9yKSB7IC0lPlxyXG48c3BhbiBjbGFzcz1cImVycm9yXCI+PCU9IHBsdWdpbnMucGFnZXNwZWVkLmVycm9yLm1lc3NhZ2UgJT48L3NwYW4+PCUgfSBlbHNlIHsgLSU+XHJcbjxiPlVzZXItQWdlbnQ8L2I+OiBHb29nbGUgUGFnZVNwZWVkIEFQSVxyXG48Yj5Mb2NhdGlvbjwvYj46IDwlPSB1c2VyLndlYnNpdGVVcmwgJT5cclxuPCUgZm9yIChjb25zdCB7c2NvcmUsIHRpdGxlfSBvZiBwbHVnaW5zLnBhZ2VzcGVlZC5zY29yZXMpIHsgLSU+XHJcbjxiPjwlPSBgWC0ke3RpdGxlLnJlcGxhY2UoLyAvZywgXCItXCIpfWAgJT48L2I+OiA8JT0gIU51bWJlci5pc05hTihzY29yZSkgPyBNYXRoLnJvdW5kKHNjb3JlKjEwMCkgOiBcIi1cIiAlPiVcclxuPCUgfSAtJT5cclxuPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmRldGFpbGVkKSB7IGZvciAoY29uc3Qge25hbWUsIHNjb3JlLCBzdWZmaXggPSBcIlwiLCB0aHJlc2hvbGR9IG9mIFtcclxuICB7bmFtZTpcIlRpbWUgdG8gaW50ZXJhY3RpdmVcIiwgc2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5pbnRlcmFjdGl2ZS8xMDAwLCBzdWZmaXg6XCJzXCIsIHRocmVzaG9sZDpbMy43ODUsIDcuM119LFxyXG4gIHtuYW1lOlwiU3BlZWQgSW5kZXhcIiwgc2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5zcGVlZEluZGV4LzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlszLjM4NywgNS44XX0sXHJcbiAge25hbWU6XCJUb3RhbCBCbG9ja2luZyBUaW1lXCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MudG90YWxCbG9ja2luZ1RpbWUvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6Wy4yODcsIC42XX0sXHJcbiAge25hbWU6XCJGaXJzdCBDb250ZW50ZnVsIFBhaW50XCIsIHNjb3JlOnBsdWdpbnMucGFnZXNwZWVkLm1ldHJpY3MuZmlyc3RDb250ZW50ZnVsUGFpbnQvMTAwMCwgc3VmZml4Olwic1wiLCB0aHJlc2hvbGQ6WzIuMzM2LCA0XX0sXHJcbiAge25hbWU6XCJMYXJnZXN0IENvbnRlbnRmdWwgUGFpbnRcIiwgc2NvcmU6cGx1Z2lucy5wYWdlc3BlZWQubWV0cmljcy5sYXJnZXN0Q29udGVudGZ1bFBhaW50LzEwMDAsIHN1ZmZpeDpcInNcIiwgdGhyZXNob2xkOlsyLjUsIDRdfSxcclxuICB7bmFtZTpcIkN1bXVsYXRpdmUgTGF5b3V0IFNoaWZ0XCIsIHNjb3JlOitwbHVnaW5zLnBhZ2VzcGVlZC5tZXRyaWNzLmN1bXVsYXRpdmVMYXlvdXRTaGlmdCwgdGhyZXNob2xkOlsuMSwgLjI1XX1cclxuXSkgeyAtJT5cclxuPGI+Jmd0OyA8JT0gbmFtZSAlPjwvYj46IDwlPSAhTnVtYmVyLmlzTmFOKHNjb3JlKSA/IHNjb3JlIDogXCItXCIgJT48JT0gc3VmZml4ICU+IDwlIGlmIChOdW1iZXIuaXNOYU4oc2NvcmUpKSB7ICU+PCUgfSBlbHNlIGlmIChzY29yZSA8PSB0aHJlc2hvbGRbMF0pIHsgJT4ob2sgKyk8JSB9IGVsc2UgaWYgKHNjb3JlIDw9IHRocmVzaG9sZFsxXSkgeyAlPihvayk8JSB9IGVsc2UgeyAlPihiYWQpPCUgfSAlPlxyXG48JSB9fX0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAtJT5cclxuXHJcbjxmb290ZXI+Q29ubmVjdGlvbiByZXNldCBieSA8JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT4uPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+LjwlPSBNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSAlPi48JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT48L2Zvb3Rlcj48JSMgLSU+XHJcbjwlIH0gLSU+PC9wcmU+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JlaWduT2JqZWN0PlxyXG48L3N2Zz5cclxuXHJcbiIsInN0eWxlIjoiLyogU1ZHIGdsb2JhbCBjb250ZXh0ICovXHJcbiAgc3ZnIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcblxyXG4vKiBUaXRsZSBiYXIgKi9cclxuICAuaGVhZGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAwIDhweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCM1MDRiNDUgMCUsIzNjM2IzNyAxMDAlKTtcclxuICB9XHJcblxyXG4gIC50aXRsZSB7XHJcbiAgICBjb2xvcjogI2Q1ZDBjZTtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcblxyXG4gIC5idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogOHB4O1xyXG4gICAgaGVpZ2h0OiAxMnB4O1xyXG4gICAgd2lkdGg6IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCM3ZDc4NzEgMCUsICM1OTU5NTMgMTAwJSk7XHJcbiAgICB0ZXh0LXNoYWRvdzogMHB4IDFweCAwcHggcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbi5leGl0IHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjZjM3NDU4IDAlLCAjZGU0YzEyIDEwMCUpO1xyXG4gIH1cclxuXHJcbi8qIFRlcm1pbmFsICovXHJcbiAgcHJlLCAuYmFubmVyLCBmb290ZXIge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICdDb3VyaWVyIFByaW1lJztcclxuICAgIGNvbG9yOiAjREREREREO1xyXG4gIH1cclxuICBwcmUge1xyXG4gICAgYmFja2dyb3VuZDogIzQyMDkyQjtcclxuICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgfVxyXG4gIC5iYW5uZXIsIGZvb3RlciB7XHJcbiAgICBjb2xvcjogI0FFOURBNztcclxuICB9XHJcblxyXG4vKiBQcm9tcHQgKi9cclxuICAucHMxLXBhdGgge1xyXG4gICAgY29sb3I6ICM3RURBMjk7XHJcbiAgfVxyXG5cclxuICAucHMxLWxvY2F0aW9uIHtcclxuICAgIGNvbG9yOiAjNDg3OGMwO1xyXG4gIH1cclxuXHJcbi8qIERpZmYgKi9cclxuICAuZGlmZiB7XHJcbiAgICBjb2xvcjogIzNBOTZERDtcclxuICB9XHJcblxyXG4vKiBFcnJvciAqL1xyXG4gIC5lcnJvciB7XHJcbiAgICBjb2xvcjogI2NiMjQzMTtcclxuICB9XHJcblxyXG4vKiBBbmltYXRpb25zICovXHJcbiAgLnN0ZGluLCBmb290ZXIge1xyXG4gICAgd2lkdGg6IDAlO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBhbmltYXRpb24tbmFtZTogc3RkaW4tYW5pbWF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICB9XHJcblxyXG4gIC5zdGRvdXQge1xyXG4gICAgbWF4LWhlaWdodDogMCU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHN0ZG91dC1hbmltYXRpb247XHJcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzdGRpbi1hbmltYXRpb24ge1xyXG4gICAgMCUgeyB3aWR0aDogMCU7IH1cclxuICAgIDEwMCUgeyB3aWR0aDogMTAwJTsgfVxyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzdGRvdXQtYW5pbWF0aW9uIHtcclxuICAgIDAlIHsgbWF4LWhlaWdodDogMDsgfVxyXG4gICAgMTAwJSB7IG1heC1oZWlnaHQ6IDM2MHB4OyB9XHJcbiAgfVxyXG5cclxuLyogQ2FsZW5kYXIgKi9cclxuICA6cm9vdCB7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1iZzogI2ViZWRmMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJnOiAjOWJlOWE4O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYmc6ICM0MGM0NjM7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMy1iZzogIzMwYTE0ZTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJnOiAjMjE2ZTM5O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwxLWJnOiAjZmZlZTRhO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwyLWJnOiAjZmZjNTAxO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwzLWJnOiAjZmU5NjAwO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUw0LWJnOiAjMDMwMDFjO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDQtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDEtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gIH0iLCJmb250cyI6IkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgc3JjOiB1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFEK2tBQklBQUFBQWNiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUEvaUFBQUFCd0FBQUFjaVR2ME1VZEVSVVlBQUQ2MEFBQUFLQUFBQUNvQS93RTFSMUJQVXdBQVAxUUFBQUF5QUFBQVFCYWJLSmhIVTFWQ0FBQSszQUFBQUhnQUFBQ2laNGR5eFU5VEx6SUFBQUlNQUFBQVR3QUFBR0J3MW8vV1kyMWhjQUFBQXlBQUFBQ3VBQUFCVXNSdFd5SmpkblFnQUFBTGFBQUFBRU1BQUFCc0p1RVFoV1p3WjIwQUFBUFFBQUFHOGdBQURoV2VOaFBPWjJGemNBQUFQcXdBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFNZ0FBQUwzd0FBRmRRZytIRXJtaGxZV1FBQUFHVUFBQUFOZ0FBQURZWG1ScXNhR2hsWVFBQUFjd0FBQUFnQUFBQUpBc1BBZmxvYlhSNEFBQUNYQUFBQU1FQUFBRFlMM1FkdzJ4dlkyRUFBQXVzQUFBQTBnQUFBTkl2QkJsK2JXRjRjQUFBQWV3QUFBQWdBQUFBSUFIUkFnWnVZVzFsQUFBNy9BQUFBY1FBQUFPVEFWeXVwbkJ2YzNRQUFEM0FBQUFBN0FBQUFVbGtYOFR5Y0hKbGNBQUFDc1FBQUFDaUFBQUF2VnF4M3pzQUFRQUFBQU1FbTFPdXd6UmZEenoxQUI4SUFBQUFBQURabklQaEFBQUFBTm43U1VmLzVQNWxCT2dGaHdBQUFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdCeitPdkN3TUJ5NXYrVC8wOVlYakFBUlZBQUN3Q3BGQWNRQUFFQUFBQm9BSEFBQlFBdkFBSUFBZ0FzQUZvQWpRQUFBS1lCQ2dBQ0FBRjQybU5nWVRuRE9JR0JsWUdCMVpqbERBTUR3MHdJelhTR29ZbEpDOGhuWU9Wa2dBRm1CaVFRR0Jyb3lIQ0FRWUZoQTV2RFh4Y0dCdlljWmdVRkJvYkpZSVZ6V0JZREtRVUdaZ0JuL1F5aUFIamFZem5ETUpVQkNGak9RRERqUzRiL0REWU1teG1NR0NZelBtWFVaTXhtMk0rd2lyRUVpTzh6SEdQWXczQ0hZVGRRWkRLUWRaTGhLY001aGdPTTl4azdHR29aVmpHc1ovZ0gxTVhGRU1CUUJzUWdtQVRFSnhpS3dXdzVCamVHQ0NBTnd2TVlxb0E4cnYvZmdPcHRHSll6ZWpHbU1iejQvNFRSa3FHZFFaV2hIZ2duQVcycFovQUZrdnNZbkJrMi92OERaTGVBNVNZRDNWYks0TUZnQk5UdEJ0Uy9pV0Vqa3pURE80WnBETi8rLy83L20wR0VZUjhUTzhOdUFCRlVQa2tBQUFCNDJtTmdZR0JtZ0dBWkJrWUdFUEFCOGhqQmZCWUdBeUROQVlSTVFEcWFvWTVody8vL1FKWUNReXlJOWYveC8wZi9OMEoxZ1FFakd3T2N5d2pTdzhTQUNvQ1N6Q3lzYk93Y25GemNQTHg4L0FLQ1FzSWlvbUxpRXBKUzBqS3ljdklLaWtyS0txcHE2aHFhV3RvNnVucjZCb1pHeGlhbVp1WVdsbGJXTnJaMkRQWU9qazdPTHE1dTdoNmVYdDQrdm43K0FZRkJ3U0doWWVFUmtWSFJNYkZ4OFFrTUJFRWlBMDBCQUJWTkg1Z0FBSGphclZkcld4dkhGWjdWRFl3QkE1S3dtM1hkVWNhaUxqdVNTZXM0eEZZY3NzdWlPRXBTZ1hHNzZ6VHRMaEx1L1pMMFJxL3AvYUw4bWJPaWZlcDh5MC9MZTJaV0NqamdQbjJlOGtIbm5abDM1bHpuekVKQ1N4SVBvekNXc3ZkRUxPNzJxUExnVVVTM1hMb1JKNC9sNkdGRWhXYjYwYXlZRllPQk9uQWJEUkl4aVVCdGo0VWpnc1J2a2FOSkpvOWJWTkNxb1JvdEttbzVQQzdXNnNJUHFCcklKUEd6UWkzd3MyWXhvRUt3ZnlScFhnRUU2WkJLL2FOeG9WREFNZFE0dk5yZzJmRmkzZkd2U2tEbGo2dE9GV3VLUkQ4NmpNZXJUc0VvTEdrcWVsUVBJdFpIcTBHUUUxdzVsUFJ4bjBwcmo4WTNuSVVnSElSVUNhTUdGWnZ4M2pzUnlPNG9rdFR2WTJvTGJOcGt0Qm5ITXJOc1dIUURVL2xJMGdhdmJ6RHo0MzRrRVkxUkttbXVIeVdZa2J3MngrZzJvOXVKbThSeDdDSmFOQjhNU094RkpIcE1ibURzOXVnYW8ydTk5TW1TR0REalNWa2N4UEV3amNueDRqajNJSlpEK0tQOHVFVmxMV0ZCcVpuQ3A1bWdIOUdNOG1sVytjZ0F0aVF0cXBod0l4SnltTTBjK0pJWDJWM1htcysvVkV6Q0FaWFhHMWdNNUVpT29DdmJLRGNSb2QwbzZidnBYaHlwdUJGTDJub1FZYzNsdU9TbXRHaEcwNFhBRzR1Q1RmTXNoc3BYS0JmbHAxUTRlRXpPQUliUXpIcUxMbWpKMWk3Q3JaSTRrSHdDYlNVeFU1SnRZKzJjSGw5WUZFSG9yemVtaFhOUm55NmtlWHVLNDhHRUFLNG5NaHlwbEpOcWdpMWNUZ2hKRjBaT3JFUnFWYnB0VlN5Y3M1MnVZNWR3UDNYdDVLWkZiUnc2WHBnWHhSQmFYTldJMTFIRWwzUldLSVEwVExkYnRLUkJsWkl1Qlcvd0FRRElFQzN4YUErakpaT3ZaUnkwWklJaUVZTUJOTk55a01oUklta1pZV3ZSaXU3dFIxbHB1QjFmcDRWRGRkU2lxdTd0UnIwSGR0SnRZTDVxNW1zNkV5dkJ3eWhiV1FuSVNYMWE5dmpLb2JUODdCTC9MT0dIbkZYa290anNSeG1IRC83NkkyUVlhcGZXR3dyYkp0aTE2N3dGTjVsbllualNoZjFkeko1TzFqa3B6SVNvS3NRcklIRnY3RGlPeVZaZGkwd1V3djJJVnBRdlExcEUrUzBvbEJ4S3NZYVpCRGI4NThvVlJ5eUxxdkI5bnlOUmd5Rll5MnF6SG4zb3VjOGpicXR3dHU2MTZMTE9ISlpYRUhpV245TlprZVZ6T2l1eGRIVldabmxWWnhXV245ZlpETXRyT3B0bCtRV2RYV0RwYVRWSkJGVVNoRnpKTmpudjhyVnBrVDZ4dURwZGZNOHV0azRzcmswWDM3ZUxVZ3U2NUozbk1QdjZiK3NyTzNyU3Z3YjhrN0RyZWZqSFVzRS9sdGZoSDhzbS9HTzVCdjlZZmhIK3Nid0IvMWgrQ2Y2eFhJZC9MTnRhZGt6bDN0UlFleVdSNkg1T0VwamM0amEydVhnM05OMzA2Q1l1NWd1NEUxMTVUbHBWdXFtNHd6K1Q0YkwzWDU3a09sdXNoRng2OU1KNlZuYnFZWVR1eUY1KzVVUjR6dVBjMHZKRlkvbUxPTTF5d3MvcXhQMDkweGFlRjZ2L0V2eTNmVTl0WnJlY092dDZHL0dBQTJmYmoxdVRicmJvSmQyKzNHblI1bitqb3NJSG9MK01GSW5WcG16TEx2Y0doUGIrYU5SVlhUU1RDQzhnMmkrZXBrM0hxZGNRNFR0b1lxdDBHYlFTK21yVDBMSjU0ZFBGd0RzY3RaV1VuUkhPdkh1YUp0djJQS3JnTnVSc1NRazNsNjNkNkxna3k5STlMcTJWbjR0OWJybHo2TjdLN0ZBN0NWV0NwKzl0d20zUFBrK2xJQmtxS3VOMXhYSXBTRjNnaEZ2ZTAzdFNtSWFIUU8wZ3h3b2FkdmpwbWd1TUZweDNoaEpsbTJzRmx4akpLS1BneXA4NUZTZXlFVTAyb29qZnZLVitxZ3VGMEpuRVFtSzJ2SmJIUW5VUXBsZW1TelJuMW5kVWw1VnlGdTlOUThqTzJFaVQySS9hc29PWG5hM1BKeVhibGFlQ0trMk03cC84aUxGSlBLdmE4MndwTHZsWFQxZ1NUTktWOEpmTzB5NVBVcnlGL3RIbUtPN1E1U0RxdTNoY1pTZHVaeHRPRGZmMnRWT3JlMjcvMUtwLzV0NW43UWcwM2ZHZXBYQmIwMTF2Qk51NHh1RFV1VlFrdEUwYjJCRWFsN2srMTJ6a1UzeXArZFoxTGxDRjY5UEd6YlBuNytoc0RvL09aTXYvV05MZC8xY1ZzMC9jeHpvS3JlcEV2VFRpM000dUd2QWRieEtWMXpHNjZ6VlVIcGZjbTJrSTdpTUVkWHZ0OFZtQ0cxNXQwMjNjOGpmT21lL2hPS2RXcFplQTM5VDBNc1JiSE1VUTRaWTdlSUVuMFhwYmMwSFRXNEJmMVdNaGRnRDZBQTZEWFQxMnpNd2VnSmw1d0p3dXdENXpHRHhrRG9Pdk1ZZkIxL1V4ZW1FQUZBRTVCc1g2MkxGemo0RHMzRHZNY3hoOWcza0d2Y3M4Zzc3SlBJTyt4VHBEZ0lSMU1raFpKNE1EMXNsZ3dKelhBWWJNWVhESUhBYVBtY1BnMjhhdWJhRHZHTHNZZmRmWXhlaDd4aTVHM3pkMk1mcUJzWXZSRDQxZGpINWs3R0wwWThTNE0wM2dUOHlJdGdEZnMvQTF3UGM1Nkdia1kvUlR2TFU1NTJjV011Zm5odVBrbkY5Zzh5dlRVMzlwUm1iSGtZVzg0MWNXTXYzWE9DY24vTVpDSnZ6V1FpYjhEdHg3MC9OK2IwYUcvb0dGVFArRGhVei9JM2JtaEQ5WnlJUS9XOGlFdjRENzZ2Uzh2NXFSb2YvTlFxYi8zVUttL3dNN2M4SS9MV1RDeUVJbWZLakhGODBuTGxYY2NhbFFEUEhmRTlwZzdIczBlMGpGNi8yanlXUGQrZ1Qxb0FQNkFBQjQybVB3M3NGd0lpaGlJeU5qWCtRR3hwMGNEQndNeVFVYkdkaWR0akJvU3pNemFJR1kydzFZRkRpRTJKbTVJRHdUSmcwMlNWWXdqOHRwRDQ4RGh3UExBUVptQm00Z245ZHBENE1ER0lMNE80RWtnOHRHRmNhT3dJZ05EaDBSSUg2S3kwWU5FSDhIQndORWdNRWxVbnFqT2tob0YwY0RBeU9MUTBkeUNFd0NCTFliTVNteGliQXk4Mm50WVB6ZnVvR2xkeU1UZzh0bTFoUTJCaGNYQUgyVkxnY0FBSGphWTJBZ0FJd2drR1VuQXdQem5QL2YvaFVoV0F6emdIQUt3eFNXeFF3TXJBck1jeGdZL3RXdzdQei9paldZZWRQL1YvL1NZSHBaelJnZkEvRkZBTW1FR1lnQUFBQUFpQUNJQUlnQWlBRGlBUEFCa0FKaUF3d0Q2Z1FnQkdRRXFnVW9CWEFGbmdYSUJlNEdMQVoyQnNBSFBBZTRDQklJaEFqcUNVQUp1Z29lQ21BS3BncmtDeW9MYUF2eURKNE5CZzFzRGRnT0pnN0FEMHdQeGhCQ0VJZ1EzQkYyRWNZU1JCTEFFd29UWWhRcUZLd1ZRQldZRmU0V1FoYkNGMFFYcWhnQUdEd1llQmpBR09vWkdCbmVHcHdiQmh2RUhDSWNwaDJFSGd3ZUdCNGtIcmdmQ0IvT0lISWd1aUZtSWhJaWtpTW1JNFFrRWlSbUpOWWxWaVc0SmpvbXdpYjBKM29uMmlnb0tOWXAyQ3J3S3p3cmFDdW9BQUI0MnJWOEIzd2MxYlgzdlZPM2FGZmExUlpKMjdSZHZhNTZXM2ZaNnU2eWJFdHlsOEZOMklCd0V6YkdnS20yQVp0Z0lOUWtOR09EUVhUNENDV1VKQThlNUZGQ1BnSUV5RXZndmNTRUlvMitjKy9NN0s2S2JYN3YvVDcvck5uWm1UdXo5L1QvdWVmTUlCYmRLSDNHTmZFNUtCbWxvaXEwS0RxL1BOK2Z6Z2tjYnVZeHh3Z01Kd3pxUkVaZzRmOHVEY2FJNFRDelZvdFpoTmhGOE1HaWJ0aERiUlpMU2dwQ2xpcExaYVFrSytSeHA2U21wSnBOY0ZkRG1WNnc1eUtibGJVSWZxOHZWSllhS1MvMXNxbGV0anhVRnFsSVpXRmJYbHBpc3p0d1BZWlBxMFZrVTJFcitIMWhQUmI4WElHTGRmbUdYL2VSRDdZc254bkpaQTRGMkhmZlpYeFdjenAvNTUxOHV0bnFZOTU5bHcxWVE5bzc3OVNHK0J4UDhJZHBRWThueUQ4VDlQemc1UWQrMlArdHljQUorQlo4aEJXTlpyMU9Pb2xiZEhxelVXU2xkZElhZ1RPWVVuR0xkRElWTWZqTDBXK1pQM09ua1JFNTBZTEhkU3pESW95Ym00N2IyeGRIN1FnaDNNdGhqQU10UE5ETzlDS0c4VE90anFnVkRnSWZNT3BMUE40Wk5TY25JNVRzVEhiWUxIREhwS0NnSWJ3UVdTUDIrMEpoTmxSZWc4MDJGeWJVaHVvd01JSjUxc0lVTTY2TURBOHVZaXoyUGJpbVp1cFUrT05PcDJXTTFOblQwKzNNLzhsSUcwNTMrVzd4dWVobWRCU05NcSt6YjNLblUveElONXFCVUFxTGRPaHpSUDR4cUhiMEsrNTZiZ2cxb1RhME9McGdWaTJqMVhsdERNc3d6U2tHUGFzMWFoaUV0V2lkS1Zsa3NjQXhEQXZ5VGNJNlhSWWxNWnR0Ylc1R3FMbXR1YTIxQlc0eVo4YTBhRU4xWlZtcE54RDBXLzBCYjhDczhSRHhXb1JjTEZMNXdZNU1IeEd2Tjc1TFA0RGdDblVuTlNad2IzeTNGRmQ0UmU0Q29PM0Y2Tk9FeEUvbWNaNVVaeDdUSlAyZzd0MUJqdjg2K2h6NStMUkRQdGlJZVhYdm1EUVFsWDZNc3IzZWNOaDdtbXlrNTFKTTdqUldoejN4dmRoSlhDRWZrdjRhMzVPMm56NU4rTWVpazZON3VRdytFODFDN2FnVDNSTjE4Q3lqUVJhTU5ZdmJxcTBjajZ1d2xzOEtNWXlXQnkzSkJDM0owMk1OUnBwT0FUUUM4d2ozSVY3TDhKMUpXQXVtdzJxWlBzU3lZcThPaTJLQUJkVXBnVDNFaXAzbnVvcGN3UGJDU0xhak0rcnM2R2hzUktpanM2T3pzYjJ4SFdZMzB4M004anVEV1FhTkM4VGh3amE3YkZleWNvVkRZYXZON3NaV2l4R0xWa1hkNEZoYzhVcklhYnNwRkM3QVpSR1FCcm1hRWF3V214M3VaQzR2aTRUZ0hpWm1uN2U3dzVlZDdmTmwrNHkxMSsxdWJ1OWNkTitGM21EUXUyT0JmTmlhcG5WdTZkd3pjM1pIMTgvWGVJTjNyYzNPOHJmL2MyTmVkdDRDUHRQamV5aHRkcjdmN2ZZLzYzZG5iSFg4eStoMGJWeXllRjh6YzhMbjhmaWVTVjlRU1U1KzQzZW4ycG9XSm1ON2lzdTFkdDZpbmRHZit6elNnUm0xbVZtR0pQM1hJOTN6cHZyeWpNazY2YitJakhoVUFqcCtDK2g0TXZLaVlqUUZkYUFWMFc2d1pSNHovQ0JpTllLR0ZRWVJoNURJb2I0a0xCcXdWaU5xKy9TWTV6RUlBdU9zRnFUUkNMMUlFTEtGMXFsVFMwcDhQb1NtZGt4dG45TllNcVVrV2wzcEsvWVY1V1E1MHMwcDhDUEdrSkdZc2N4TnYwOWhHRmRhWWljYWpDbTdRZUZ4d0FnajNLRFk5VENpQVB2SFgyRmt4cHpHMSs2YU0wZjl6enhqejBoTFR4dSt5VVkvMmZVakpWUERZZlUva3pnMG5IQ0NHNXFUY0diUTRiRFo3Y012MnVBenpjYldXeEtIanJ5WE9IUlA0aW5pTnc0QlR6Y0FUK3RSSS9wNzAvRmlVT3cwUFVhNEVqT29FYlBNTEwrVjVkaEN6SE44czJQeVV4bzQxU2w3eml4UWFnYUN4eURjbWVVWXRnK2NxdGlyQlpYT2F0RmdqdU43QlJDR24yOTF5RDlWY3M3eENJYlRYVlZzam1qUldTNUNzV3NTSk4wSkRocWhtZE9CeURwL3hCK29Eb1IweEh6c2NaY2M4dnVJRkcxMlhGNEJMa3Z4YjRKb1YxMmRyNUFJbkVpMHZDSkV4VXFzaG9pMUFqT2YzbXdsVnRHOG9hSWpKenNIQjdNeWs3S09FYSsxTEZDeVlUN1o2Uzl5TDlyN1VOL1JqalhMVnM0N3N1cWR1b0s1WlJkMlNUOXlRK3VTdzd1Sk1Td3BMR2d0akhRV1NxY1diNERJRnZSYzBuMEorZkQySGxseWM5ZnEyNlpzdmJyejRQeVIzUE9tUmVZWGJjWWhJUG96NW5YbUx4RERrbEM1elA0a0VyaTZHUks0RURES3pKQm9oUmVSQTZnWDlzQ1JSSFV3SmducEFpelI3WGlFcXNITVg0UUsxdTkyQmRnS29mQnU3blNKVkovaGRHYmdGNG1RY0xiMFM3YVhYNDA4eUhNUzdqYUgvdUJqY0s4dy9OSkorTHl3ODFHYkJXdHN1WWo0R0dJaEF1aTltZTZSSHdHSHc1UkZ6T1VWckZHWDR0S2JEQTkrOWVWREJwUGVsYUxUWC9MZWxWZitZWUJmYlRPNzBpM2FmdW5xMFZIcCtuNnRKZDFsdGdtei80SG52dm9xbm45Nk5wbkhlVENQdTVSNWFER2FUWDB4bVVkT2ZCNXVKNTJIeld5MU1JSklCRXdOdGR4c1NtSG9Ib2xDZG1icUg2Njg4cjFMOVBKc0h2cnlxd2VWMmZDMjA5SURyNzRxUGZTUDJZSXlJN3daUWZqRlc5VTVFWCtFMFhQNEtzNEF0bE9HNWtlVGl6RGlDc1ArOUdRV1hEc0RNU0lIQkpKS0pJQXZCNGpGWmJVQWJFQzVSQzVXMk9Nd2gvQWdrY3hsOUN3SEtNSUFkeTFERVhlZ0FBQkVCZ1VRd1hLRm00TEl5MHoxZ3lhS2l1OXB3RUdpa1RJOXZBeXhtTVA1ZkFBanV5a3RxQk44bWRKWEw2WG51RE55MHZmdlQ4L0pjT2VrdnlqOVo2WlAwQVhUVEhhTUFqZy9oeHNxeXBHK0dOQjVQYWxtWjBnbysxMjZLK2kyRnB3K1hXQjFCMTNwdnlzVFFrNXpxc2VyRzhCcHZNNmZKZFArSzNRVjUrTVlrRU4rTkFlTUdrRVE0ekJBSTNBT2VDMnhjb0tPZUtZRFJudVFPK0QzQi95aXhrRWdoTWxMYmNydk5WSGpLek41S1ZBbzlackk5QTk0Y0JXeEdPa1ZvdjNTSzJRZlYzbUNIRFB4V0pDT0pmUEJXNlgzbWIrQlZhUWdkOVFCaWdGZ0RsSGxSekhkRDRVWVRSckZNQ0lMUDB5d1NqMEd2Zi9BTEw1am50N0lMT2NjMWhkeEtEWFptQ3c1czB1NEpQeEpxcFhTeWpDY2o3a0tHWkFuNmt5MHFXNXl0ZzErMzREMEVXcFFNbUVLUFJ3UDh4d1J5R3laSDVpcnlIekpINTN2eDRBLy80Yno0TXIwcUUwMVVPUkhyZlJ1U1VINWJtTWc0ME1ORFkyTjhJZnpYTDRueUUyZmtHbEhMMHZIT0lIdlJ5WlVma3JQTURLUUpSQWxpZHc0cDBXeDBxaU9hdU0rYWlUVUQ1aFFTbGlkdG9oVkJFY0FPdnR2RVhha1IvVGJzeUlzY3dkODh2MXV1MGI3L1kwcEZ2SXBuSmRpa1hIbjB4QS9VbWhNOXFDOGFEYkJrakowQmw4TVV5RkVaYU5Xa2pTa2VGTGNhVFlhVjJWNFRNMFRmcEs2aGZGUmt2bjhoYjYrNXkrOTlQbSt2aGNHMndhbVR4OW9rN2ZjMEZIcHl5ZWVrTDQ2ZWhUYm5uZ0MyNDhlM3ZUMndZTnZiOXhJdHBzSVB6NUVDT3p5YVpoUlVUVGZDTEFLZEFFMkxJTUJKYkFBZURuQ2lKNFl2MEUvdy81QWhOaGNZSXdBVGFxaFZWQTdCTTFsdnlFaVhVNFYwUEM5eVpocE4zcndnTVZpYzZIUksxUUJzMHQrcHN0T3Mvbk1YeVM1TW9aWktxT25BR1IrRFh3cVJPYy81c01jUzBSa0JCRUZFT3l6SE15TXFOVm1tSjhjSTdPSTFKZ2VOZkVJSmd3RDc3RnI4bkdkVVNOOEswUUZnWnd5djUyYUc4RWlnb2k5Q1NqUnEwb1p3SjdmRjRPSjFJMHdUenpjcy9vODZUZytRUUlha0RySDUwckdUeXh0dW1qRHhsNXl5RDc3VjB1NG9YbTNiVmh6L3dicC9sMGtjcjFJcUE2bDRHZVg3MnhjdHFGeUl6bDJLSnhTVmtOOTVPaFg3SDlUZk5FVWJTekdBaThBR1V3ekVnQlFDQnlRdzVKTWhLQTJGcmdDYUpnWGV6VnlLSStyRDJ3aGRBY0NrVWpBbnFjbG9Wc21Td1ZhaW44SEowZzBpSUJZQ05oeThrRy9KVklKOGIyVWVlR0I1ZTJ6dTFiM1BubnBpbGZiM0thTXpCVHoxRnRhZCt6WmUrRnNJdHFLL2dzdlBIOHJCY0FHNDNYSHVhR09HMWN0M0JrTUhWeXo0ZDZsMDZ0dFRvc3J4MUJjdFczTjJ2T0l2SHVXTHVnTlR5TmtiN0JsYUJkVHV6Z0VPZ2d3RFFWUkZpcVBsbVpoSk9CbUVTTmVkcEFhTEFoWkxRRDVHYllIWk9sbmdjWndDRVpEcGhYeEJueGFqVE1YV1UwcStyQ1dsaVFvWmcwdWk4bXdGSHRUMlpsM2tsbmZlUm4xbTNQSjlyRGs4N2wwK0ZOYlNVZzZEeS9VY0VPdEkvdklYUCtrS2luc2VJM016ejN1a1FyOGplelRuNmF5dWd0RjBNem9OQkZnTlNaeVlubUJCYnZoZUpiYkJZTkFnSHdmREJlN2laaDhCSEhSUERpYklXS0tvQkovS0dBUCtRSlVUUEtrV1pETTVLSlNqTjBuUjJuaWowdTk3TTJFaWdMRHFnc3VQcjVzM2ZPN2VsNXM4NlFRQ1UwNTB0UnhjVVBOcGpuVHp5OU44ZVg0R1F1VG1jM1l1THRvVUhpdWNzMWoyN1lOclk5V1dOMjJqRnhEUWZtVWJhMXorcVArZ003dHgvLzB1MlYvOVJyNHF5VHVTY2o2ODFCdHRFb2pVNG1CV2s2bWl3V3pJazRpZ1M0WHVGbFhuaXMzNklmTEhLRkFRS05KbDJrVEljc2d3WGNNZGVaQUJScVhFckRISWJoSzMwcWZPQ05IRm01OFpQV2Fwd1kyUEY3WmNnaFArVTQ2dkhWS3d3WE56ZjMxZFZ0YXVTZERwUjRITnY3cm5lbHpsait3K2Z6N2UxWjFYL2JiQjNIa1RmM0l0Ulc5RFRNMzFsZXVuVDVqWFJXVjEyZEFDdy95Y3FDNWp3RXdaNGhQU1NJQUhuWUJJdmRESUdDN09hREcxeUxia1NPYUxwOUNneFBPZFZMMDZFRHBmbXVZVitoTGlBbmVoQnpTeTM3aEVxU0YyckFqa00vam02V1E3Q3VZTzRrbzBsSisvTDkydXl2TnFHZi9mSkRZeExzUThWajBGdWlXQlBiZ0FBaFVnNlpIcDFnRVFBZkVNWU1JT0lidkUybmtFT1RJd1hHcTZlZmxPWjBJNWRYa1ZVZEtuTG5PbklBUGJwRUJUc0ErM2duSTJIenluSXNaSncvbXJWLzJMSjJ6YlBQNko3ZHVmWEw5NXFWenVucCt1YTYrdDdKeVpXM3R5c3JLM3ZyWm14c2FOcytXdDl6UW9pTmRIWU5aT1RldFdIdlA4dVgzckYxeFUwN1dZRWZYa1VXSDgrZFhsczR2S3BwZldqay9YK0xMZSt2clYxUlVyS2l2N3kwbnV2Yjg2SmNjQ3pRcnVtYkNEQWNFY3lBQ2pnRjZlVDZtYTByNEIzckg2bG9nRUpaMWpXQS9oaE1GWXY0VmViaml6T2tsOHdwUkxPbTU3eHlnY2xpSDNYR1ZrM1ZzTnRVM2JvaHFsdlRHbTNvOFh1Y095em9tNnh2TWxtSVY5bDdBSlE0UzR6a1ZyUVNKajRhc0FGTUhab1RZWTNRWU02eXBGTURRR0srdU9kQzR3NHo5NWxiZ2pQckhiSTdEbXBITHgwQWNtTU1WMHZzUUFNa2MzQ2duR3JiTFVaMkZ1TTZzams4SWd3OXlPMjBXT2dOK3dnek1FN0NmT29rckV6Rmc0a3lrVXhQeDRFNjBuWE54cVNpZDRFRzlobGhVTThGMHFKTXVITUlJM09ITXBHQlRXU3pRWWdXN2g3R3NwcGg5emVTMUpXV1A5REIzWkNmWkFBb1AveXZkWmt0bnRWeHFicHJaYTVHZWxaNjFlTTFwdVRxOE15a3pQVDB6Q2U4a092VXJYTTM1MkxsVUZvQnUxUFhJdFNBRWtNVWl1aXpaVGJqU3BzZ2ozV3FtOEZTWUFFL05ad2Fydm9SOWRxNGFNcVROQ1JBV3FId1krTkNtOHNHY3pNUkFkMmNjZER2REt1Z1c0a3NtV3F3R0FjeFZBZFhELzdKUWJqQjNqUFRJM0dDMXpDQ2xXdHFyby96QVUvRlVtUi9TWHNJSGFmUmI5bVhJZmNPUU1WMGMxV1ZnQmh2QUJUTEtFbTRvNXVjZzRpSitGM0YzMU5nQ0xjVHd1RjV3TVg0T0hHSmczRUFZZzRodTlTVU82NHhhc2lEdnlTckxpaFRtdzArR0FubloxQzVsMzVPTWFWWVdLbS9BOWN3a2NHUGMwdSs3eCtiTjJML0J3TmMxc0FZbTJUU2pmVm4rNnFXN0Z4TW5tbVM0K1dsVGVYbGRIZnh4cDl1dVdiWndlMWYrOVVWRkwxdlNSS2UzdXJHNGFVbXdrempWM1ZhSHB1dkgvM0w1K3VucUFyRVNCcFdNcnVVT2N1Vm9EbHFNdXFLTE0reU1qdEZoVmtmZ0Z1SWhsQS9xc1FaeGpJYnJRMHdTMXJHTXJrK0xJV1ZEQW9zQWVva2kzMGtCR0JKNXNhT3BDYUdteFUyTDVyYkREV2VIUzBMQmdsQWdaTkM0NDB0aW9YQ0NIeXF4SzJFZExNeHFzVkVjUm1PNzRwL0s2V2wxT1lCY1pBNlVVc2RzazUxWHlNL20vMlhYek1GNVU1YlpJOHNiaWpzS0ZoNWNzRERISTZRbXAxcnNYSXVZNVc5YTJQUEl3QlVmN1Z6eTBQWVorOG8wck5QQXA1WGYzSEg3NTl0dng3WUhheGRVQmR6Rml5SlpBYTc4d0hkM2JEMjVjbXJEdEdubHEyZDIvV2IvcWdhOUtLWWJwWDl6cE9jVUhoclk4OXphR3lYcDlzRm4xbGhNVEw1WjU5Q2xPZmYrODc0WGNjMmowdExPQTdNS0M3cXVtbHBRS21NR1NKVzRGeUhPNXFOaVZCa3RRMXJ3TzFwMkxSSkZUYmNPYXpTK0ZvRmpXTEwwQW1BQys0a1RLaXFFMGJrRXk1a0NFYitlTU0xbXgrTlFYTmdyampzaVIxdXdScEgxc3N3dmlwTndieDBGZGJlUjdmNjVrbVBlQVAxK2dtd3JjZE5UTkJQWkZId0tYL0VrUkYvZmNFZzEwYi8vUFphT0hDTGJLMGIrekxqa3RlNTJvR2NtME9NR1ZTNUVkZEZxQVl0eVpCSXhKNElyQVU4QzZJNWdBMEZKYytWTXFUQS9KeXNjOUVLK2hKemVRSzFXTllGWUVGYnBNS2wwc0NvY2g2UWZkdnhlNXZ1NzU4MklydCt5NUlGTFJsNGprNy9rRWtyQzZjOStlOEdGVzdmOUZtdTM3L3RSQWhUYWZrTnY4N2FnNytaTmZVZm14cW1RaEo3RlM1Y1BiMWpmKzVic2d5NEVERFFEWW13Sm1oYU5GbUNBY3pRcUlKWWhFSWZ2RlFGbXlFbFNmQi9TZVdMWTJSeEJyQ1dvT0JUMmg0SkJEWUhja09QSml4SlVkVlhVTUZaMWxZUzFSRjU2NTFKOHhITHJkaTA3Lzc1bGkrODhmK1dqalNiSWtjMmVaUjlzdmZYTDNYditldlB5Z3lXK2JHN0k3WmRPRWRPZHZubGEvenZYWHZ0MmYzV0ZNZXkydTIxVHBwSk05bkZzdnlWYVU2M2lWQ0tqclNDak5PQjhialJMbG9sQVpjS05rWW5mNjBpSFVUWnZvRnlrVUVGT3F5ZVRoSXdRY3VFbWY5Kzc5Ky9IcEd6QytjMmJLZi9mKy8yVEZ4M3Y2VGwrRWFqUmRkSS9UcDJTL25sZG5PMC9mdGIzNXFGRGI2NlhlVTdtMWd4enEwRUhtNDdyd051V0k0QW1ETmVmaFBWYURkYjNnN3ZSNmdVdFdBaUNKRUhUSjg4ZWtjbVRaWGcxOVhaRUs4bUZJaWNNMGl1MWVzM2dUN3kwTTJxRG5ScFVYUUZhRmZTYlVvT1FOWlVaNUJxVnlUSUovU1Z4Sit3MUtlbXdJdXpZRVM0SFlPendIc0tRTld2SWxsMFBCMEM2STE5aXhwT1Y1U0Yva3NUaytyTHhReURQOXhJTnpCT1VpSGlmbEs3cElwL1NpMlRiSmEzN0RFUXE4MndoOEt3Y1hTcnpyQkFzRVVKUFA4aWE0Tisxb0xXY3dITGdrREhXZGV1eFR1ZHJJVm1pMkExK3hpL0s2OTZrVEVuWHZYL1NKUkMyZ0VubEtGSlVBSTRvbGJJcEtjNGltZkRTY2F6d204YjVwQmdIdVNxRkYxS01GVjlRb0NDUjdXVTArMlN2SURtQTlCMmgvU1ZwWUF3bmRveDFTTEl1clZEcWxyVm9UblJXSmNZaVFYWVFzRGdDYURoMWJWL0QwQlVCeURwait3eWpMdS9ENFZwVUV3b0dJajR3WXgzMXRaT2FjVVZaWEJsb1dtMmExS0E1YXRCVGRpM2FkSDlQMTMwYkg5N3hMMm9oRDVKdFptRHV1OXR1L1hydi9xK1BMTCtoV0RIclB4TDZhcGVYeVdaZDllY1lYanBkYkNrc1BvcnRqNS9DYWJmVVZCUlQ0NVoxWVFmb3dqVGlzNUFlY1ZqUHJVM1NhU0NFYUx1TkJrYXI5YldJUEV2V1VzSGs2Y29PWERjTlRhbXJxYTZxTEM4cFZPS0tONUFjTDhwT0VKdjNqSUpVcWZmR1Jkc050RFUyMHREeU10a3VsWXhMNDkva003aWFuc0gvdlZUK0ppZmV3eHRVY3ZFUmFkMVlFVk1tWElNdm9PTEc2RldnbXdPNlBTZzdHdUlBS1BMZFpBbkwxd0tVWW9KYUZVbzl5RVZYUVpUMVlycFU3QzBadXpLbjdyQnZ3MXhHRWJaUVRaeEtaMllaUlJTNjNqUitoakhGdytnQzBMdkxZUzVCc2pwakoydUR6U1JxQUhJZVRKd1pJa2twS1grUW9BNkQvZjVBMkIrZkdGRWhwYjVnVXN5SUFwL1k5TGcrbU1ocmI3elVQeFJOSVZvMS8rRGVDNlg3NmV3ZWxXYzNVdkx3b3gwelV6T3hpOXJLZDAxYkI1ampjZnNndW5JM3pITWVzWTg1bUlPWk1HVDlEQU9PdzF5Zlh0RWFRNUtpTlF6SnlBU3NMQ25CWlIwdFRiTm5UWXNDUXdOWmtjcmlnREd1TWxqR2ErUy9MVmJ6SWpYa0FoeW15QzBabjFPSFlvaUZVbG9uTGRPazdHMzFGRG81YjBxNDFFa0luYnQ2VnJyUEhyS256UzdJYVhXNzZWS1Z0RGdoOUt5UTFlcVVyR1RUbGZXYzgvQ3FyRlZOdWdXdVJ2TDFRTW1pdXZsZVg4RHRja252VEtKazgvQ0RZM2xHNGxNQWxZQ2JoYlFFTVA0Z29Ic2tkRU1PSXNnUk5MN3VCdU44RUR6OHBvQUNBUlRqaVB2RkNkUXpIOEJVL3h0L0xTOTh5QkhqVGtvWms2TXFIWjVOQlhyQlJKOEhYb0I3Q09ZWEpmWmY2N0d6SEtMb2kxU0ZCaldZeUZPdk80TVhpS0w2cW5JaXpBQ3hrS1M0TUZQSFNVb3ZyOTJFOWVOUlo2eEJnemJqd0NmdHdpakpLSS9iK3liYkc0YmNRQ0RYOEtaMVUveG9lWG94K1hnN3pTbjg4U045MGRzVHJLdDA1R1ZDTWxNOS9PWllFYVdZUm01bmVyMkU5cG1LM1pXaDNsTzVCbEtzVURJMkIrZ3VrUkQ0ZDFsRURJTjdpV01BMDNORVBSUFBVbFRnYjVHTnN6TnFvc1d6VW9JRElnRi9RQWtETVJNTm56R3dVVWJnVXRNWVJhNEtoc284STk5ejE4VFI5N1FXc3YyVHphSEI3M01EaWJvNnJITmtWckMzRDc4NmxtcWpjZmc0OHlrVk80TVdBOTFiL3ovVVNWam02NzE3djc3MVZycmRlRjhYQkN4NXl3M2RJbjM1K09QU2wwZEpBQ0xvOHJBY24vcmZ2dmJhZC9wVmpMa1laT0ZGT2Fnc1dnTFFDMkVCclJWSjRSM3cvMFRQbkpNVjhNRm9EL0hPSWExYVhqRGkzRFA3aVZnQ3dGWTh1M0xscy92KytnMTExSDlJc0JqL1g5ODljUERRVmU5eWR5MS9ZTXVXWHk2VDNodkx4NUdiZG0yNWdJQ2V4ZEkzbElkVmFEWWFpcWFXWUNUYUFCSVdZc2krbW5XWXdVMU54d09nU21GaVNTd21XUzVCRWV4cWtxUUp2VnE2NWc3UVNDMjFPWnFPaDJCNEVMQW13aUprd0dlK1RBTTZtSU40bHI5ODRtREU4Z3piTjJad1oyZlVYbDJOVVBYczZzYXBVWmh3WlhFdzMrOFA2YW1EVVFRYUZ1WGlycEpmMkJKeVkrcCs0MVhlczRyZW1YWnBSMXRtVmU2TWNGWkxybGFYN0VreTJhclhsbWJVQkRXUkdWbm5ieE0xWG4rRzl0RmJIb2F4bSs3dDZycDNrN3psaG02US9ubmloSFQ2Qm1aL3BrYWJuT0VSMGl3dVcwWktia0FqTW5wZE1WdmdTemZxMzZqRy90K2V3RWszSEY3LzZwVlh2dHJYUjdicll6a0tpVTIxYURwcWlOYUNrOUtBSDlQQUdRM1RwNlZBVkVkckJEekxxQjExTkR1ZVByV2hEcTZxSm5xVUhhblh4eXM2dER2SmxoaU9RbW84T3F1U1pjbzZKcHhjZHZqU3lxQW56K0ZNVnNKUFkrMjhzQzNUSGN4d3o2KzVnanBxYVdOQzN2bkRWNjlqNHhVNy9wMjdhLzZSMWYyM3VXekYyUjAxZFU0YWRCcWE4eHFuemc3azVFcjd4bW5rRjYvMDlNbSsvRGF3NjJ6YWQ5Y1JiWjJGc2VERkRFL2lNeFo2Z1kxVTQ4Qnh4ZlpKVllFRjc1WGRna2lKbk81U3gwNTc3a3FLOG5OREFZL0xIOVRTVlRPbHE0c0dZOUtkSWdmcitQS0xWYW1nUnhKclh6SzcxQVl2QmRXeWZ3QlVHeklXUGJScDQwQk8yTCs4YmVIcTRsVmJWangzK2FyN0crU09ydHprN0pON0I2OXNxQTB0YVoyN3FiQzljK1VqV3hiZlhTMWozTS85N295dTdqVUxzeXN0Wm51eXlXN0pQclJ6M2JIRnMyZTJFbytQOC96dW5LMDdOblkxdEdXWXJDa3BUbXRnKzZxMVJ6cW1WOWZKK1N4R2w0Q3V6QVZkeVVhUmFMR0FsUTRlc2w2aUZwTGlQcDBHNVd3VTlwdG8ycUpVa21MZEFwTWczVGdidkZ3WnpWS2swLzlKSGMxQnN2MVA2YlFjcWRrbE5EM1pUeWRkbGdnTXBkZnBzUUUxUnF0eEtwLzJOOURsSGJZYmhFZ0xKcVNmTEFZSzgxRXVvTUlJL01WS1hpb3NMSnNBbCtSMXNiR3hwdjZEVjEvOW9GNE9LQlFXN1Rsd1lNL214QUF6c3ZIM2I3MzFlK2FnT3QyUlBVY3Z2L3dvczB2QjFUcVlLMW1mQ3BPNXVrbU52NWxYWmd4cE9aMnhPdGt3Q3Zyb1hCT2dqZ0lVOExpNWF1UFE3aDZZUzR0MDFGQ2FsMXVhSk4zYVRPZDJJZGxlZzB0dzJTcjZ2VlVKaGlsK3Q4ZkhmcVBPZGZocWRxczh6OUZ2WVo3djB2cGk3K081QVFPTEJSTDgwK1hnejhKOE9STGZJZjlxZ2NRdTJNS293ZDhOa1luVVR3ZkhqVklHeUxFL2drb0NSQXhqWXovdGI2SU54cVRMYVJ5RkRxeDBKTWNJSFNJdzV5bytPMnV1WmVncDY3eHdOcmVQWWg1TThlckJWVThicXpQOXdsUHJkb3dKL3lrQjF4Um14c2hUVTl6K0JMby9acG9MTFphUkIxbXZqUHd3S29HNTMwTHp2bWkwcmpvN1RlU0lxSFJhRVlqU2RDZnBHWGtwVVlaOC9OakVyNm9pQW9Lai93MXgwS2NkRCs3WThRZTBlQUxSWTVLK0tkTHJlRWwxSE9Wc0dKVituRWUvMHE3Y2VyeE1lblZHbkFXZEgvMnhsbjRyVW1CNnErU0o1WDhicEJnZ3gzL0d4MlBnL0NWY0c4dTdhb0VIMXdNUFNsQkZOQUlzWUFrTFJDQ2E1RndnMTBuU3dSSlVwSktlSU5tSjBlQXNsQktFTzEyNit4UHFFdTZsN2NiU3ZUTmx0YVY5ZWo4TVQwa2thK1QzMHEweFVsWXhoVEZTMXVLamNSeC9IOURpVjNQSVNSbzAxQnd5M3FDaDVKRFdNcjlWelNGRlBDSFRpRlZiWlkvR2pyaDBJMzJNUmVuSVlId3VJM05JMGlsRjF6K1JHYWNiaDl1eGdlWWJENU9aMnF6c0E5OVRoMWFuOUJ2TmtVNnlhL2lseUU1eWI1SVJrZjV2VHU3djUrTDkvVERXam15QnNnZ3BBWE14L3BwaWJDV3BPRHViNkFkTjJ6QlZHbWtJejNxRzlGaDdnb0kzU0Z1dWY3aUk4Z2l2Z2QvZFEzODNLeG9rdjhjQXRGb2JiODJLdFZEWmtSV1NNS1h5YkpvMDFWOGQvOWxaMHBEODgveFNUL0Q3aitYZjVLOGtXMWsyWCtCdjJVOGhMcnRRMWlQQ3F1bFJseEVTQ0VqeWdXekU3Q05Wc3d0aG5BczV3K2tjaE5wSEJNQXdrQWJRT3BVZzUwMUsxNkxTWjhIc2NldHdSSERhelBaVWwvQzN2d211Vkx2WjVoUndST2QyY2tQbTFKRkhkSHFUUXhRTlNmaFBVbWFTUVJRZEpramoybExOTUovUlQ2VWQzQmVqSERLZ1REb2Y2M2dXQkFPTU1nOXViRjN1STcwKzZjZWNKTmh5N3c1bjVPUmtrRC9LMnlyT3lPYnkrNUVKcGRON0dwSGEzcFZtVVcrR2xMcGpNRlp4WTNQVGJHbEdzM1NWemUzMXBacnhVbTVqYXJvalhmZUJJY01WemphTXl1dlArMG44WTArZ0FsU05QbTA2N2dJbm5lekVHcmFpSE5CZENzeWFiWGFNT1NMQ0VhVUxPQnZ4SE9rWEdVUXNvR0xFYXZvUTZkOGxpREMzUlNSMDl6SXlGSFRJZHk0OTl3VkFycC91cWswWmptangyYTVDc1lzQThLdlhFRmhlV0loUVlYVmhWVmtwMEpidkR3UURrWWhlWGZwUGhKMnhuZ0pnR2kzcUNiRnVNS1g3MTBhV0ZBa1FEejA5MVUvVU1UcGxtWEh1YytldC90bmlUMDdlZnNPR2dhWTdaNXVNWHBzK09QK0YzdWYzcmU1NjVZN3B0N2F4SjM1eGo5VGZSdHpJbEliRzFobVhkZDEyYyttQzNxNmNvTFlvTGNXZm1sY29jVzBMWjNmY3M4Rm1sMlVSQkZtMDhKbmdPc3JRSjZkU0lEVVIxYXpaajlSY0xkQkNPcUJwYXBQYkl0RDBVZzJnY2pOZy9wbUh5czVXdVFxcEY1RUc3VndZanpoZ2ROOVB1Q1NhUGRsb0ZCc01VVjBkMndtaXNJVkNDSVhLUXBHQ1BPSVZ3ZnBENE9EbEZ0RXhIVU9LUk1ZbTdlTmJiUEEwMTZWUDczaHA4K2FYZHF5NHQ4SGx1NTJ1UGRGVi9HZHcrb0cydGdPZG5ZUFRwZzEyOHBtQUFJdnYyZmJCNGNNZmJGczh0MTMyN0Z3SzlmdFMrNUYxNjQ2MEx6aXljdVdSQmNRdWR3UHZYV0FIWjYwdjVTYlVsM0wvMS9XbGNjRDlYM1E1T3JxN3MrZkl3bzVEUFVzZm5HVTF1OUtUTTl2Zjc3L3VnNHN2K2VDYXpoc2p2bXoyaExvUVhiYzhzdkNXbnQ2akM2dktVN0xUN1g1NzdmUmRIMTUxMVllN3B0VFdFalRPVUpvT3hmVEptY3lnTStvVGVSS0ZKUklmYTdTVDZWUGkwRzVxZVVLaXVTYnFFOHR6YTMvQ0pZbytqUnVOWW9OQm4rS1dQVUdmZktGZ3hLL3FVNnlOUDFTSHg5U3N6NmhQN0djdTJra0hldFJ3N3dwWnNaNitsSzVZZkMrNXFDWjFVcTBpK3ZUakF6SkNhSis3V05hcmUvQUJXWjlrVFpLMWl2RCtJUEIrR3VoVEprQnh5Sm5WMVVuRXcwa2UwYjVBcnBlc3dPUzIwSjRGUkovTjhrSlU4NGE5b1lBZkx2U0UvVDVJaWpKSXptd25rZUtNS21URW9wZVFndDdjcUFIa2tDZmVkZVBTUjZlYmpINmJOcS9sMzliZi9PN21TLzV3WVB2UDA1bVYxcHYzc0NlMi9YYS96M25qMGNLd3RzeHF5cktGaTdhK2Y5TjFIdzdjc0hQVEJRTktEeXUzaEEraVVuVFJZNERSdEdxYmNiYjZRSVlHTXlKcDcyUWh3R050cnc1cnRRRVFLZEVUSkQvMkVRMnJZK0VrM0ZLTCsrSVhKWTZrajJ6QUw1VW9EWkYrbTU3QVhyVUhQZ3orMklYamtPUU1LM3ZVZ082OXJJZzFCdlNHM1J0L2c1ZFF1SEt2L0VtYVcxMitsK25pNXN0RDkvSEJVbk9SUHJtS0wvNlBqVlI0TDZtd2o2SDRkZnM5UTdJLzNpMnQ0UTZCREF0UkE5WkY5VUVHQ0VpankvS3lFZVVpVUZtZTVRWjFHdEpvM0tzVkdOb3NKWXJxc3lsS2IyRSt0WXNBcmFBbVhxSUdNZm42Ym5TMnE0bFZSZFNya1loNFZ1VDd6bnlYaEdzaGdJNi9MTGFHUmJWdjRqWEV6T3hGUlFnVk5SVFZWNWJUVnVPQVBSQW9reU9vWFZsT1ZYTGRTVnB6NjlTbmFDWnBYTHNoN3JaWFA3Ky81NlVGWVkwNXJOZTNQdEIyMWRVN1hwQXRzQzNCOE5nVE1lODkvTlpGOXkveGVvemhsTFFLenBtNXQvKzFXemY5N3VxcmY3ZnBjTnMxWFYzWHRNMjVwcWZubWpsRWg4RjljUHZCOTlXZ0RVU0hPVldIQTBpajBYYkxHcXUySCthT1gzOTNSSDFFYlRWSVM3SEc1SU5remExQlZmSkNkQ1FRMUNzMVY2VlRkRUxpRXBHZlBqcmoralR1ZFUyNWYyWFg1WTF6NDRuWjBybnRDdzR0WGhvL01KZnVuNlRSemRpN3R1M3dTc2taUzJIK3ZYUGRpZ2ZXUzUrb0IrUm9oMFpIcVUzUDV1ZWwrTkJhaEZJWXRJYUR5Y1B4WjZVMTdINTZmRFY5MG5RTmVwSGk2bWtLL3hyUXRxaTJMaS9aeUdGUjVXRVExRlBvQnE4c0J3Uk5OL0EwMktMWGNReHBVK3NtejcvUXFyK2Z0Q05wQkw3dkxLUGsyblVEcXErdGpoQUhBSWw5aEZRN0FtUFRYZEY2NWtWOXEybmlra1lwdHo3R3NjWWZUODJPTjlOczJrdTI3NE5YMlRrcm5oaldTTy9qOXVwWVp6L091ZU9xc1R6MEJJZS93TzJ4L0hCRWt2TWU5QWp3cVFINDVFQ3paT2JZd1pOejNlUlpuMEFMRXd0NEJEVlo0U0FwNWJOckU0L0xqd001VURxaFhYNGN5SHJHS2loenB3dlRCSGI0Ry9uWkdPbHIrcmt1TVRqRnhFN3lrV0dZMytmZ3c5clJLZXBEVGpWT1pjQk5ORHZvamdhcldONmpJUTlMYUh0cFFTcllZa2dTZVk1aFVMZEFsblRsTlhUaWdYTG9NRjB2YVVMSWJaR3Y2VWFUWHhFTms0VmdkU3kxdThsSGdyTkpnOG0ybzdhbTJUT25OOVFTZ3dxUy8wWlZFU2dzSEdjL2t4MmJURDFjOG9QbzluTEZLTG5YZ0dNMytsejVKWVh0aGZRUnBPdVZMeEdxSlo5U0s2TW1DS055TDU0NWZZMjU4NXFhWlJYMWlub3c3VE5tTFByWlN1bTVTYjlDRkxsYTNsdTV2SHRwNTJNMUE0dEhQcEYxaGZpa0cwQVdOZWh1eXMzSEtza2FRck9EZklveFNUaEpoN1NtVjZkbGlMMk02emhUeEJBaVkrVEFTeEluR0M5YjEvalI0TzdpNDFETUNNY042MVJkV1hWRTlXWFVsZjFQZkpqQ2I3YmtIRjZNQXZhVFB0ZlVSOWF3Sjg3dXhGUitYcnptZkRrdVh3YllxaEg0T0tIR2xudXVHdHZabjlobHZ2NXc1ODRQcjd5U2Juc1B0YmNmNnBXMzdJa2RIeDA0OE5FT2VYdDR3ZEVWSzQ0dWtMYzBiNE9jdndYbWs0MnEwR09uUWxwRzVGU2NEWWtPUXg1VjFaS1VJUmdyU21YSDE3N0NzZWhlU01jbVJITUZKWjN4c21qZW1FQitqdUVrcE9ma0lKUlRsVk5aVWdTVHpTTFM5c20xS3BVeDRYTUpkbnh0S2wwQnpBL0V5LzFyRXZEMHlvU0VESUNuakptbGJlTjlLK0RwdzJNek1obC83ZUR1aS9IVlErQlhJbDhuZ1Z6WjhlcENtRTNrNjlteDFyakx4dkgxSE1Nbjh0VkhBdG1rVUdrOGMzOFNTRm9UWiswRGF1cDdCbnowWTJ4WkdoOVFNdC9EWXpNVDRvZklNMHR6Z2E5RjZNS29EbFJFeUNPTFpRcG52U2loWnFQVXM0SmppallPQUw2SmRSMzZIRmR1Q3gzZmpjYVA3b3lDSGNKUEZjcSt4YWFWbjhpT3czc2pqZ1A4U1pXT0tXVS9uNTZsdFFhVERjV1ZTMDV0d3gwVTFOTzErV083eWZZTm42dm9pbHVhMkJOWmFTRnpXcFhHc2ZOMzIxNGM3ejUrcy9peVJwbitrK0EvTW9EK1psTExhNXlrbHBlYlVNdkxQVXN0cnhrMXpaeGVXdncvcWVYRlg5Snd0bUxlYitpTEdYTHYzdFc3SVR2THUyaEc3MFZsN1oxZEQxOXkvdDExc2RjekJINXg5ZFlkZWRuK3JwbkxkNVhSMXpUMC9yeGFYaWdnYjJXWU8yMUdmV2FXUVo4azZsTlRYUnVYTE5rL3A3WXUvbHFHbnNYelovcnlqUHBrVVdlenlpOW5xSTdray9VRGpMWVJQOHNOb1h5NjdnMWtZNVlaRk9pemJTeDl0azFwMEV0WUJjbEhlUUYvbUR3RXJGYno0ZzhCMnlZMDJKYkZCRTBXbnZFL2ZQaG5WTmRYdDYyWWRuaUcwZVJMTTNoYm41LzNxMk92azhPdksyMTR0QzlJT3R5L3ZqeGZWNUNSbW1rcGJuamtPQjZnV3ArbjFpRWJZZTRYczdkQ1pubnRZOGswek1ycW5VRldzamhTNGVPNFlBcy9icjJEdUl2QXhCSHlNZ1EvWnMzQ04yWll3bUtGL0VTMHNneVpRcFBiWWhuT3hIZ3l5U3JGR0R5cmRNckhqckcvaWExUlFMeFVFNFJmK2x3MHJGNUx2bnpHM3VvSmpoUVJKcmlEQTJ2T2g1Q0tQNVVWZitRdk5LQmlkNncrUmQ2dkFidzVVeDB4K0wrdEkrNkVDVFZJenhncmlvdktrcVhuNitQdFg0UFloQzJMNUw1Q2xwWmVSdXprVlNITWw3R2E1MWJaWU5VNklzeXpIRlZISy9KRFJscEluTFJHR0NzaXluMncvZ0RNT1RTeFFLaXU5azlXSXFTclJPTktoR20vMW9WRHVjVkpSMytXVkpvYkNtbGZNTk9aaDhoMisvWDNpU0ZQZy9IZXc2dnBRYk5LVHNEbDhlRVRVcXZQNHdva2tQVWsvcDAxSTB2S1ptYkdhbVF6WWY2WEEzMW5xUk1HLzVkMVF2MDU2NFQyaW5GMXd2ZndsRkpxaGI4ZzI1NXZ2bTZMdDRhVjRCblMrN1BpWmNMbWQvNjlRcTZueWRSTHIwZ1B4aUlRSTBteC9RVzRRdDMvL1BPWUhrcXJxUjRXa0Y2Qm9JVTJpUW1LV0ZXN0l0MWhvSTM1VkxRRktNOUhBV3BpQ1I0YkdmcThYRVU5VTNFT25heVgxazdaOGJOTi9sQlp6NWJ1R2RMQmhrVEZ6TUNHemtURkhINXkzNUZaSEE0V1RtSDU4cjBIbUxkaW9ueUxLWW5KOEFSTU5nTm9DS0liNUg1dnYxd2c3STgvNTAzTGc4RXh6M25MejI4RzRrUEhsQktENTM0bWZPSzRUdm1oOEVuS2poTWZDUi83a09jL1hNa2p0K0hQbExLampaUWRWMHBWU3RueERjSU1sMmxrK1FNMFpCQU91Sk9adTI0azMvNUQ0Y0VqMGtuMmoveFNTQ0RXUlhYbGtPUWE2TFBmY2o3c2lEM3lUUlpBbWRWMEJaM01ucnpJSStvbHI1UkFISS82NHNOQTVPVEJNdUpGTWRNUnkwMktDM096TTkwWmFRRXg5b1FiWUFjUHRnbWlsVVRYWkN5WGFteEtUVFhTZ09Wbnd1VTNrc0YrSWFhNzdBc2c1ZlVEeFJ6TGI5cTlhd3ZXNEwzVWhiNzJNYU5uTHIrZTdCNjREUFBNUjYvelMwbWhzWHI3cXNhTGowVjB3ZXMyMnZRRGh2VGRXOG5SUngvMW03YzdrN1pzSVY5MmJiWG81cmdOUTJUaEVETU82Ump6Q04rUERLamdwNzJmSWY0aUNHdENpd3R6blU4TzhueS8yLy85ZzRUandqdzF2djFkT3NrNUtNOVhSM1Y1Y0Q4cmhnQWQ0emtNWWNsTHArUUhKNUg2UnA0Y1R1VTVyZDdFaHdGZTYwVHltODVZd3ZOa21lZmxrVUIySUZ1VVZ5WEdjUmoyUFRqRzdFUU9rMklaTUw5QU5UNzgzVWNNank4N1FIUHR5NEhKSDlNbmdxN2RDNnpmc212M0pwN2xpZ2ZXazBQODBxRWhnM3VPenJKMUYySHJsaTFKenUxbS82T1BraTliZDZjYkJ2UzJqZGNGZFpGakZ6ZXUybDR0VjRFeHVnay95SlV6SDRQdU45UDY2QlFEc0RjVGxJbGdPcDQ4N3pjSUpzU0FUZzZTUnl0UUoyRUFxU2dTQmhDU0VYMTlTUkFGZklHd2ozWjlLM1ZpK2pUQkdNZ3lwbU9QRkFqeGg2dWoxWTNoQlROVGJEWnJwbGg0Uld2MXFxbVZjMElKQjVpUGM3SjhtZk5UVFdsT283NjVLeWZMNjQxOUlYbk90OHlWYkVqcEdhMmdGT1J4cEFMRkF1QWlmWWVJNlZUeVdnWjFUSkxXMHNtZUk3VmRjbWxUMDZYTnpYUWJuaGFPL2VlR1lvZGh1ei94RkxDRUcvMXgxTWY5SG5UWmhRcFJLK3BBbStqOFZubUF3KzJZMDA3RmdvNXR0bW9aWmc1NUM4dytZRGEvRDNGYW5aYlREWkluRHBFV283Vkl5NG5hVHNDZ3JFNkRCVkVuOUNHdFZseUJSSzA0dDYydHFLaXRvNjJqcUxXb1pVNmozeDlLUzgveis0ckowZytsaXppdHNnZ2d4SGlicE54RlFUYUJNUy9vSW9JeUt5OVNVSjk3b1JwWW9ieUwwRlRxVDJVWms4VXFUY3ZKK2RVMXhpUjdzc0grbzlhUWJMblRhbUdhamNQclJhM2RhalN5TjVIUGpSYUxwU3ZEN1haSUwxdlNCUTJ1Uy9aWVhmbGRiL0FmTVMrbGwwWHdHM05FcHpYWm90L05tMDBqdjA1MzFGdFNOU08vNVp3V3MxbkxGSFBPRVdlYTA1bCtGTzVpT2VyTlRFN1Y0NEZVczhNaVhZMTEwcmVnaU1EYkxPNTFoYmZMMENqbGJMSUhKRDhkY3lJamMxVkdyVFZ4NW1yZ25GN2s5T1JSS3AxT3Z6bUJ5VWprdEdJZjBnbUNiaEhTNllRZUpPaUVkZ1hXMXA3aEZxSmV0K3ZjOTRoT1RSU3ZxQkU1elNEUzZFV05mdGRQdmdrcDNSVVZGUzByV3RwSkV0YnNjbG5TaHYreHBDR2swVXNxZ3NvN1RvU3hMem1oamlwWkRvQS9XZW9yTXJJbGYxWUd0aFhsVHEwUHpIU0JBbVNZaW5mWGJkbzlkZVlyMkpEaG5sejRtOGNKZi9nV3EzVm5mbTJtL2N1czZkbkZWYWJraFRhcjFYWkptdDRiMkxvaXVyN3FuaWxXSzlnWHNsRDd1Z0NjYlFzNkgyMUMzMUV0eUNqQUFnOE9nSnNDU1ZjS0JNNU5XR3RjRFl3V3dNT25nalJiMVJlcmFMRDZaaFd0VVdmVTZnWkpod1l2aUh3OG9JSURNVEtvejRTTjJpUmpaekxXR2JBK1NhY25CNHhKSzFDU01XbXVJem8vOXFZV0RZQU5EUUViNUxhN0pyMnQ1aWZldGpNYWFBWGN0bkZENi9tdDU2M3NYYjYwYzlHOGpsa3o2K3RJYkFrRVNpTUJlNDRaa0Z6TWdkSG5TNFV6dk9obDh2ZThFRUdqQ2UvcU15ZGtXWlA0QXJZMEZTL2RWTHU4b3U2S3krcDJGS2VLUm9lb3plbkpiNXJiTmljdllEWjdaemJPbVRLdGtzcSs2T0lhVmtjVkpLNG94dnd1eXlUZVlmUVBQSDlCU1ZmMXF0TFVlZlVydHpnZE9wc2hOY3phMGl0S0t2SWphYTZpc3VLU3RESXIvRnVhb1hXNVJ2N3NOSTlSRytrWWNRK1RlQTFwR2RiSmNaL1dhd0J2WmhMTXJNY01mUlJmMFFDMThCQ01MWVBtMDNmcVpDSzNQMkFQcXNXRnlSZ2NiNzVhN3pyMnEzblB0M29OYVQ2VGNjYmhhU3ZhSkJrV1N3UUpEbTg2L2toRHNTVXpOYU5BbDErK3ZwK055cmthSTNKdHpLLzVlUUJsd2xTRGxmZG5kU2E4a3k0QjZNamhkY3pUOHNleXNpb3E0SStmNXdyc0Niam9ScWxGendaNkhTaE1GN05WQ2hOTEtPZXVuOFNlNTNsZ1hQMWtoSDdNanlmUDhSVWp1T3YvQTJBK2hmeDQybzJTVVd2Yk1CU0ZqOXkwWXc4TmcyMHZmWmtlMDBHdHBGMmhOS3dRQW4xWm9jMW9DM3RNTTJHN0pKRWp5UStGL3FuMVI0eXh0LzJnd1k1VXJVdkRPbVpqNjd2WDl4eGRTd0x3QWw4aGNIOTl4dmZFQXB2aVErSU16MFNWZUExdnhKZkVMYndXUHhPdll6TlRpVGZ3S2lzU3Q3R1YzVkVsV3M4WmZZc09nUVcyaEVxY29TMCtKVjdEa1Zna2J1R3QrSkY0blQ0dkUyK2drNzFQM01hNzdCWkRHTlM0Z1VXRkFpVThKSGJSUlEvN3BITm1OTWRRMWNRYXpiZkVXZVJaL0JiWTRKbzhpZW9CS3oxMWhubkh1Qk5kUFdkeE9JVGlYVkFiS2hwY0lhZkswRWxod2Rnd3J6bk9sNkl4bFVHclZycjQwOE0yWFRBMDlZMnRpdExMM1c1dlg1NlhXZzVOWXl0dDVabXRacHB2YzYwblhnNGFYeHJyWktmMHZuYUhTaFdWTDV1cmZHSm1hdEVZcjV0NUhNWjE3VlN5aUE3YllaWW5Gd0tQWmdNK01sZXdkc29mc0F4MTBVekhoRDAyRzViM0FIMk1jTUZuUUhycTEzWldmZmJ5YnUrZ1A3b1lEZnJMdmUwOCtQOXJxMWE4SHEvUGc4TmxWRHFxRERkQ0xuV01TMjFkWmVZeWRvSC83L3J2cmY0K0YvZW53dkVrQklPYU9jY3BRd05UanVFY0ZmeCtpbU9jVU1SZDQ2YTVpYTFxNzNKWFRYTmpDM1Y2ZklKZjMyS3pLSGphWllyWFRzSmdBRWJQWDBZUm5BekZMVzVSc2NWWlYxd291QVVucUtVeFlDOElOUVZqdk5Wbjg3V01wb2t4MFhOenZweDhTRGg4ZnZEMkxjRmZUS2RLdUhEandZdU1qd2I4Qkdpa2lXWmFhS1dOSUNIQ1JHaW5neWlkZE5GTkQ3MzAwYzhBTVFZWllwZ1JSaGxqbkFuaVRETEZOQWxtVUZCSk1zc2M4eXl3eUJJYXk2eXd5aHJyYkxESkZ0dnNrR0tYUGRKazJPZUFRNDQ0NW9SVHpzaVM0NXdMTHJuaW1odnlGTGpsam50MGloaThDMG00aEZ0NGhGZklJYXRhMG1zVm8yYnFaZXZaVHBSdDR5SDQyK292bHBNaWRkTXUvVHZLajVYWEoxUFRmSTVWUmZrWjZoY05SelZRQUFFQUFmLy9BQTk0Mm1OZ1pHQmc0QUZpSlNCbVltQUd3a1FHUm9Za2hoUWdMNVVoSGNobUFjc3dBQUFuMUFJMWVOcGpZR1JnWU9CaUNHRklZbUIyY2ZNSllSQkpMMHJOWmxESVNTekpZOUJoWUFIS012ei96d0JTaGN3V1kyQjJkZ3hSWUJEejlmY0Jra0grdmtBU0xzdVlWcFNZek1BQllvRXhDMWd2STFDRUVXZ21FOUErQlNESnhzREhrTXpBekNERUlBcXlIVWlMZzlXbXdObE1EQ0lNWWdDMXRoTVplTnBqWUdSZ1lPQmlzR0d3WTJCMmNmTUpZUkJKTDByTlpwRExTU3pKWTlCZ1lBSEtNdnovRHlTd3NZQUFBRnNhQzJzQUFBQUFBQUVBQUFBQTFhUW5DQUFBQUFEWm5JUGhBQUFBQU5uN1NVYz0nKSBmb3JtYXQoJ3dvZmYnKTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgc3JjOiB1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFFQ29BQklBQUFBQWRQUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUJBakFBQUFCd0FBQUFjaVR2MEhrZEVSVVlBQUQrNEFBQUFLQUFBQUNvQS93RTFSMUJQVXdBQVFGZ0FBQUF5QUFBQVFCYWJLSmhIVTFWQ0FBQS80QUFBQUhnQUFBQ2laNGR5eFU5VEx6SUFBQUlNQUFBQVR3QUFBR0J5QXBLMlkyMWhjQUFBQXhnQUFBQ3VBQUFCVXNSdFd5SmpkblFnQUFBTFlBQUFBRDRBQUFCc0o3RVJWbVp3WjIwQUFBUElBQUFHOGdBQURoV2VOaFBPWjJGemNBQUFQN0FBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFNZEFBQU1Ja0FBRnE0aUs1eE9HaGxZV1FBQUFHVUFBQUFOZ0FBQURZWG1ocFFhR2hsWVFBQUFjd0FBQUFnQUFBQUpBc1BBZTlvYlhSNEFBQUNYQUFBQUxvQUFBRFlLdWNaUG14dlkyRUFBQXVnQUFBQTBnQUFBTkpZZWtKT2JXRjRjQUFBQWV3QUFBQWdBQUFBSUFISEFoRnVZVzFsQUFBOUFBQUFBY0lBQUFOdit4OXFnbkJ2YzNRQUFEN0VBQUFBN0FBQUFVbGtmY1R5Y0hKbGNBQUFDcndBQUFDaUFBQUF2VnF4M3pzQUFRQUFBQU1FbXdpYmlRaGZEenoxQUI4SUFBQUFBQURabklQaEFBQUFBTm43U1RULzJ2My9CUElGcEFBQkFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdCeitPdkN3TUJ5NXYrdC83ZFlQakVBUlZBQUN3Q29HZ2NHQUFFQUFBQm9BRzRBQlFBeEFBSUFBZ0FzQUZvQWpRQUFBSndCRlFBQ0FBRjQybU5nWVRuRHRJZUJsWUdCMVpqbERBTUR3MHdJelhTR29ZbEpDOGhuNE9Ca2dBRm1CaVFRR0Jyb3lMQ0FRWUZoQTV2RFh4Y0dCdlljWmdVRkJvYkpZSVZ6V0JZREtRVUdaZ0IwbHd5eUFIamFKWTZoaXdKeEVJVy9BWlBaSmdnS2drVUZteUJjRS93elZvTkJPSk5nRXhHTDhXQnQ1eG9VWVMyYUJGRmsyd1dEV2N3SEJ5YkQxcDlQYng3dkc5N0FESk00NDZOS25QOXRQMnlwc0pBN2RqS3pJa2RDOCtTSWdERjdadXpvczJIT2dUVlRpNnluSFBMRmhheUxxZE9tOWxaRFYwSmFZbzJrK0tIK3NrK1Rpb3ZkblF3RkpwYXpFcEc3V29wUDBnendHTEVTeTJKQWxXLzNFTHZrTlJ2b04wKzNDdHF1djdaWjJoKy9ETG01dXhRVEtLK2VOOGs5TVFBQWVOcGpZR0JnWm9CZ0dRWkdCaER3QWZJWXdYd1dCZ01nelFHRVRFQTZtcUdPWWNQLy8wQ1dBa01zaVBYLzhmOUgvemRDZFlFQkl4c0RuTXNJMHNQRWdBcUFrc3dzckd6c0hKeGMzRHk4ZlB3Q2drTENJcUppNGhLU1V0SXlzbkx5Q29wS3lpcXFhdW9hbWxyYU9ycDYrZ2FHUnNZbXBtYm1GcFpXMWphMmRnejJEbzVPemk2dWJ1NGVubDdlUHI1Ky9nR0JRY0Vob1dIaEVaRlIwVEd4Y2ZFSkRBUkJJZ05OQVFBVlRSK1lBQUI0MnExWGExc2J4eFdlMVEyTUFRT1NzSnQxM1ZIR29pNDdra25yT01SV0hMTExvamhLVW9GeHUrczA3UzRTN3YyUzlFYXY2ZjJpL0ptem9uM3FmTXRQeTN0bVZnbzQ0RDU5bnZKQjU1MlpkK1pjNTh4Q1Frc1NENk13bHJMM1JDenU5cWp5NEZGRXQxeTZFU2VQNWVoaFJJVm0rdEdzbUJXRGdUcHdHdzBTTVlsQWJZK0ZJNExFYjVHalNTYVBXMVRRcXFFYUxTcHFPVHd1MXVyQ0Q2Z2F5Q1R4czBJdDhMTm1NYUJDc0g4a2FWNEJCT21RU3YyamNhRlF3REhVT0x6YTRObnhZdDN4cjBwQTVZK3JUaFZyaWtRL09vekhxMDdCS0N4cEtucFVEeUxXUjZ0QmtCTmNPWlQwY1o5S2E0L0dONXlGSUJ5RVZBbWpCaFdiOGQ0N0VjanVLSkxVNzJOcUMyemFaTFFaeHpLemJGaDBBMVA1U05JR3IyOHc4K04rSkJHTlVTcHByaDhsbUpHOE5zZm9OcVBiaVp2RWNld2lXalFmREVqc1JTUjZURzVnN1Bib0dxTnJ2ZlRKa2hndzQwbFpITVR4TUkzSjhlSTQ5eUNXUS9pai9MaEZaUzFoUWFtWndxZVpvQi9SalBKcFZ2bklBTFlrTGFxWWNDTVNjcGpOSFBpU0Y5bGQxNXJQdjFSTXdnR1YxeHRZRE9SSWpxQXIyeWczRWFIZEtPbTc2VjRjcWJnUlM5cDZFR0hONWJqa3ByUm9SdE9Gd0J1TGdrM3pMSWJLVnlnWDVhZFVPSGhNemdDRzBNeDZpeTVveWRZdXdxMlNPSkI4QW0wbE1WT1NiV1B0bkI1ZldCUkI2SzgzcG9WelVaOHVwSGw3aXVQQmhBQ3VKekljcVpTVGFvSXRYRTRJU1JkR1RxeEVhbFc2YlZVc25MT2RybU9YY0Q5MTdlU21SVzBjT2w2WUY4VVFXbHpWaU5kUnhKZDBWaWlFTkV5M1c3U2tRWldTTGdWdjhBRUF5QkF0OFdnUG95V1RyMlVjdEdTQ0loR0RBVFRUY3BESVVTSnBHV0ZyMFlydTdVZFphYmdkWDZlRlEzWFVvcXJ1N1VhOUIzYlNiV0MrYXVack9oTXJ3Y01vVzFrSnlFbDlXdmI0eXFHMC9Pd1MveXpoaDV4VjVLTFk3RWNaaHcvKytpTmtHR3FYMWhzSzJ5Yll0ZXU4QlRlWloySjQwb1g5WGN5ZVR0WTVLY3lFcUNyRUt5QnhiK3c0anNsV1hZdE1GTUw5aUZhVUwwTmFSUGt0S0pRY1NyR0dtUVEyL09mS0ZVY3NpNnJ3Zlo4alVZTWhXTXRxc3g1OTZMblBJMjZyY0xidXRlaXl6aHlXVnhCNGxwL1RXWkhsY3pvcnNYUjFWbVo1VldjVmxwL1gyUXpMYXpxYlpma0ZuVjFnNldrMVNRUlZFb1JjeVRZNTcvSzFhWkUrc2JnNlhYelBMclpPTEs1TkY5KzNpMUlMdXVTZDV6RDcrbS9yS3p0NjByOEcvSk93NjNuNHgxTEJQNWJYNFIvTEp2eGp1UWIvV0g0Ui9yRzhBZjlZZmduK3NWeUhmeXpiV25aTTVkN1VVSHNsa2VoK1RoS1kzT0kydHJsNE56VGQ5T2dtTHVZTHVCTmRlVTVhVmJxcHVNTS9rK0d5OTErZTVEcGJySVJjZXZUQ2VsWjI2bUdFN3NoZWZ1VkVlTTdqM05MeVJXUDVpempOY3NMUDZzVDlQZE1Xbmhlci94TDh0MzFQYldhM25EcjdlaHZ4Z0FObjI0OWJrMjYyNkNYZHZ0eHAwZVovbzZMQ0I2Qy9qQlNKMWFac3l5NzNCb1QyL21qVVZWMDBrd2d2SU5vdm5xWk54Nm5YRU9FN2FHS3JkQm0wRXZwcTA5Q3llZUhUeGNBN0hMV1ZsSjBSenJ4N21pYmI5anlxNERia2JFa0pONWV0M2VpNEpNdlNQUzZ0bForTGZXNjVjK2pleXV4UU93bFZncWZ2YmNKdHp6NVBwU0FaS2lyamRjVnlLVWhkNElSYjN0TjdVcGlHaDBEdElNY0tHbmI0NlpvTGpCYWNkNFlTWlp0ckJaY1l5U2lqNE1xZk9SVW5zaEZOTnFLSTM3eWxmcW9MaGRDWnhFSml0cnlXeDBKMUVLWlhwa3MwWjlaM1ZKZVZjaGJ2VFVQSXp0aElrOWlQMnJLRGw1MnR6eWNsMjVXbmdpcE5qTzZmL0lpeFNUeXIydk5zS1M3NVYwOVlFa3pTbGZDWHp0TXVUMUs4aGY3UjVpanUwT1VnNnJ0NFhHVW5ibWNiVGczMzlyVlRxM3R1LzlTcWYrYmVaKzBJTk4zeG5xVndXOU5kYndUYnVNYmcxTGxVSkxSTkc5Z1JHcGU1UHRkczVGTjhxZm5XZFM1UWhldlR4czJ6NSsvb2JBNlB6bVRMLzFqUzNmOVhGYk5QM01jNkNxM3FSTDAwNHR6T0xocndIVzhTbGRjeHV1czFWQjZYM0p0cENPNGpCSFY3N2ZGWmdodGViZE50M1BJM3pwbnY0VGluVnFXWGdOL1U5RExFV3h6RkVPR1dPM2lCSjlGNlczTkIwMXVBWDlWaklYWUErZ0FPZzEwOWRzek1Ib0NaZWNDY0xzQStjeGc4WkE2RHJ6R0h3ZGYxTVhwaEFCUUJPUWJGK3RpeGM0K0E3Tnc3ekhNWWZZTjVCcjNMUElPK3lUeUR2c1U2UTRDRWRUSklXU2VEQTliSllNQ2Mxd0dHekdGd3lCd0dqNW5ENE52R3JtMmc3eGk3R0gzWDJNWG9lOFl1UnQ4M2RqSDZnYkdMMFErTlhZeCtaT3hpOUdQRXVETk40RS9NaUxZQTM3UHdOY0QzT2VobTVHUDBVN3kxT2VkbkZqTG41NGJqNUp4ZllQTXIwMU4vYVVabXg1R0Z2T05YRmpMOTF6Z25KL3pHUWliODFrSW0vQTdjZTlQemZtOUdodjZCaFV6L2c0Vk0veU4yNW9RL1djaUVQMXZJaEwrQSsrcjB2TCtha2FIL3pVS20vOTFDcHY4RE8zUENQeTFrd3NoQ0pueW94eGZOSnk1VjNIR3BVQXp4M3hQYVlPeDdOSHRJeGV2OW84bGozZm9FOWFBRCtnQUFlTnBqOE43QmNDSW9ZaU1qWTEva0JzYWRIQXdjRE1rRkd4blluYll3YUVzek0yaUJtTnNOV0JRNGhOaVp1U0E4RXlZTk5rbFdNSS9MYVErUEE0Y0R5d0VHWmdadUlKL1hhUStEQXhpQytEdUJKSVBMUmhYR2pzQ0lEUTRkRVNCK2lzdEdEUkIvQndjRFJJREJKVko2b3pwSWFCZEhBd01qaTBOSGNnaE1BZ1MyR3pFcHNZbXdNdk5wN1dEODM3cUJwWGNqRTRQTFp0WVVOZ1lYRndCOWxTNEhBQUI0Mm1OZ0lBQ01JSkJsSndNRDh4d0dobjgxQ0JZakR5TVB3Mk9HeHl5TEdSaFlGV0N5LzEreEJqTnYrdi9xWHhwTUw2c1o0Mk1ndmdnQTFsRVZMZ0FBQUFBQWlBQ0lBSWdBaUFEY0FPb0JrQUpFQXVvRG5nUGFCREFFaGdVSUJWd0ZqQVc4QmVJR0pnWnFCcndIUEFleUNCWUlnQWpvQ1VRSnNnb1lDbG9Lb2dyaUN6QUxjQXY0REp3TkVnMlVEZm9PWWc4c0Q4Z1FSQkRZRVNnUmdoSXlFcVFUTmhQQ0ZBWVVmQlZFRmVvV2VoYldGendYbkJnY0dMUVpLaG1hR2RZYUVocGFHb29hdUJ1RUhEd2NwaDFXSGJRZVBCN2VIM1FmZ0IrTUlDQWdlQ0VjSWE0aDlpS1VJeklqM0NSaUpNQWxRQ1dnSmg0bXNpY2dKNVFvSmloY0tPNHBaQ21zS29JcmtpeWNMT2d0RkMxY0FBQjQycTE4Q1h3YjFiWDN2Yk5vdDJ4dGxoZkpzbVpHa21WWjhpN0Z1eEpudFMxbnQrUEVpZVBzRGxrZ0lhd2htSWFrSlFtVVFLRXBCR2hKZ0s5QUE0U0drQkFlYTF2YVF2ZW1mWlFDNzlIU1g3cTk5eWp3Q3NTVDc5dzdNMXBzaC9DKzcwR3NHYzNjR2QyejNIUCtaNWxCTExwTC9pUFh6VmVpZk9SQVRhZy91U2dlRllzNUhZZDdlTXd4T29iVGpacjBqSTZGZjdzTUdDT0d3OHg2STJZUll2dGh3NkloMkVOem5jNkNBb1NjVGM0cERYVVZRVjlaZ2FQQVliZkJYZk1helRwM0JCVzZXS2RPOUF2QlJrZER2TjdQT3Z4c1BOallrSEN3OEJtdnJ5dDBsK0oyREZ1WFU4ODY0Rk1uQ2lFejFvbGN6TXQ2aGZNL0ZzaUdiWXd5WStYTW5SSjc5aXdqdU96Ri9JTVA4c1YybDhDY1BjdEtycUR4d1FlTlFiN1NGL2kwTStEekJmam5BNzVQL2Z5MW4zNzVZMXNlcDhQMzRFT3MzbW8zbStTbmNjcGt0bHYxckx4QlhxZmo4bXdPbkpLZmRpQUd2M2JoWTVialBrSVdWSUo2dXA5MHoxdVNkQ09FOEJDSE1aWlNQSkRNRENPR0VabmUwcVFMRGdMNUdJMWtIeDlJMnZQeUVNb3J5U3QyMnVGR0prbG5JQ3pRczRRb05oaHZ3VXloRnhNU2cyMFlxR2YrMDhrMDhTdFc4RTJNMC8yK2Y4NmNCUXZnai91b3FHUnNhM016YzdDazZQeGlyM0JXOE5JUG1NMkZDK2dwNWdIT3ozMVVJQ0tUL0FGQ0JTd3lZU3NpL3pHbzdzS2Z1WHU0VTJnaDZrZExrLzF6cHpOR1U2Q0VZUm1teDVhdlo3R09ZeGdXeEdqQkpsTkZ5bXBnRURJT0ZlU1pXYU14UUNrTXM3MkxGaUcwcUg5UmY5OWl1TTJDVlBmc1dkT1NiUzMrWUVCMGlVRi8wRzd3UlZBWmRqbXRPSUwxOVhYcFhTc0dxaG9iT3JDWXRTdkVjR05ETzI3QmlheGRWZHo1dUQ1ckYwYm91ZTBsZVhrbFJZZmJiaXlpTzZlU1hLUXNPZ2NuZnEvdHJGRk9QTkI2azdKenBrMDUwZmkydHJOS1h0NzYremIyY1h0TmRYV043Wnl5K2JqQVZsNmlZMytsYlcza3FQMmNzdm1yY3ZCSDJsYU9uenNIbW4zMHdtNHV4cGVqR1NpRkZxRnJrKzZVazJjNWpCYjJUSEZ4UEY2VXFBaHlETStDcXBTRHFwVHBRQjh3ai9BSTRtR2hzRHd6Z2xoV1AyekFlcjNFZ3NaSXNJZFkvY0RFY1dRSU93em4yUGtEU1ZoTDhJdlRQWUVLRWY2TUJpK29qeGNYdXBXMW91aE9LQmh5RmJvVnh1dGRxamJCc1l4ZTFibmhpaGdPQlFuSEUrUmFSdWR5a29Pb3NZRmN6bnc5V0Z0VjI1R01SMm9ibmNrVjE2WG1MZTE3ZUVjd2tRZzIxRFluay9IcTJyYkNsdlZUUnlMN2xqMndOcGk0cFZaeVNUaGM2UW56NVI3eEJYdXBpYWprTHdXdmE3cjNEbXU1LzZyaFpWL3A1YjRyZWp6aTY3WXlBem41anIvTTArMzlscW1zcU9kbzMraE01b2pva1hzcnZPVU9NMy9iMkc5bitGMFczVGVBVmo2dHMvbElSTldvQTNXalRjbVJRc3p4NWRoZ1pIcGdaZktZNFVjUmE5QVpXTjBvNGhEU2MyakVndlY1MkdqUUcwZk1tT2Z4c0FsV2FVVUtHUXk2WWFUVGhYVzl5V1JOalNRaGxPeE9kczJjWHROUjB6NGxMbFZMc2NvS1Q0bTlBSDdPR3JTUzFhbndVVlBQZW82WUpHS01NT0VtNFdBQ2M4Qzh3dnE2ZUdORFVCdy8zb296NS9CdHU3cTZ0SC9NdHgxV3NiaXE4UHlkYnB0VkxJcTYyYzFqcytyckpRbittT3lCa25xUU85V1ZkWFNqdXlUcWNSU2UveGVYdTZTbTFPWm1wN1VwdzZSNnVTQjc0SFBhWVZqL2x3RXZyd2RlZHFJZWRERHBzbUNFZTlwY1lLQzZnd3pITm1DZTQxVFRWZ0ZheUlCUkg0V3JXSTVoUnhERyttRWpxR0pGeW9BNWpoL1dBVnRGSGpTMzdsSkRoeENNcExzYTc4RVFJdFExRytZeFRZeUx3V1lwWkNLYUREcWJ0bjVCVVNCYzllRjRnaGlGdEIzUjZkMFpveUpVRXlrUVRzY1RWSmVwSGdPN0V5SG0zNDhWdXBxVDdiSFpzNmJNbk5Kd290U3BMM0s5cFZpRlphVmx5MUxLN21NVjVWTnZlbUhrL3I2bFN4Y1BQcjdqRmYrMFJHL0hLOXlwbFJhdjYzdUMxeU91azJhMzFDeVBQeisxelZsWVVGVlpXV1ZMSlZmWXlFNkJ2L082L252WEROM1plczNPMVllWG5CL3JERGROYi9zeGNBTy93RHpBT3NCWFdGSGJDU013R2F0Y3RWQ0h3UkNIZ1lCemRvWjRDZHhQRHFCaDJFT3d3azB3eG9vc0VrdVVUODlTV3hraXpyQUZzdzc5SEw0eUZxdms1K0RLVDdtUDZ1Unl2eWo2OGJ1Y0lVanVqTEg4Q1BzQXZ4NzUwRFRsQjgxd3VESUZaMEs0dDFTeFJHYWsvQmlxaEVQRW5zRFhBWEwxTVB3K25qOHdjTUxsTEdmSWoydWFybU5jVGp2ZEk1TUp4VERUMkdDUEoxaWIxVjNybE95dnZmNzZhM2JKV2V1Mld2Zi82ZmJiLzdTZlh4L3d4Y09sbGh2azU4K2VsWisvd1ZJYWp2c0NocmwveDcxdnZJRjcvejZYempVS2MvMXg3bHd4aHJraUZFS1p1U3J6d3BXSXpwVndhd0JsbURWd3d1dXBvSE10dEx1Y2pFNmZYcE54ZTJNRFEvZUlDM0V6aStqTXJCTm16QmY4WFQ3K3hodnk4Yi9QTmFpenhwMW56K0pPYmRaa0J1aDV2SnZMaDNYVGdoWWw4NmN3RE9JYXcxNGJtQlhFZ0dSZE1GTUhFU1hlQzlDSXEwaUIzMGNSTW1NWDdIR1lRM2lVaVBobWVwWUQ3UWNRQVBkcXJnNVdoM1NHRWdLQ3dNVWw0aXJEZGZtWVdtOUtUYlhpT1FrcDhRNGNJcnBPU2ZKUjZ3MkcrNEVPcnZycGNrRklXQTNOMVQrNzMrVk9CRVBsamRhRkM2Mk41YUZnd3UyNi8yZlZ6UVpyUWhES242N21PcHE0VTIzVnR2elhOem1ySXFYTzZCVGVjWXNqNm82SFBTSGhwWmVFa0NjY2QwZmhFRDhsNml5TlZEazN2WjV2cTI0alBIZ1U3ZU1FamdIcFJKT1ZzUGdSd3crQXUyTXhaaEJlVDZ3QmdUazhNNTlLTUJpVXBLQ2tONVJTQTJyenEwdFc5TnMwNDJqemF5YlNiNk1yOTY0YUc4NVRWcVg4RDhYMXloOHEzN0VGL0RUSGtETWZLaDViL29kNkprOFppUzN3bmVyVnNQd21XNEJYSVJzcVM1YWE2T0tqZXRPZjBadFFrREVVVWE1VDVFWGhKakV5akd6WC84M1pGNHpnTlZ5cDZ4OTRsVDAvUDMvc1R6V2VZaVBIbERsY1ZCY2V4V2M1Z1RrSjkvY2xQZGtMZUlpY0pib042RGJPWnJtT0RLSHNaM1RTWXpwbDhzeW56RW1GSElVSU92K1hBR2VhOFRhVWg0cVRoWnBsQU4vWEM1OTV5QktnZDg1RmljLzM5dmIzd3gvZTVoVms0bHhsQ2dZeGVrQSt4RVg1cThHWmRUOWpBcldsaHFpVUdDSnk0NnpGSnFuSEVONmpIa3VhMGwrdkdsQ3NFbkdKeXE5cjdvODR2M2c5KzR0bDNOZzZlN0p6R2NmY1kwL3lWMWNKWnVNbnh5SmtvMXNRQWJld0Ivek9MT3JEUzFGVk1reVFKQjdtRkk4TTB5SUVobEV2Q1JRS1NndEtDcDMwcDNTWmRRMC9SVzFPampkbFBubnp5aXZmdlBOTytybGg4K1lONUk4N2RaOTg3cnZmbGM4ZFBvemQzLzB1ZHQvMzN2ZGVmUEhWVjE5ODhYdkFqOU1JY1ZYY0dSUkFOY21vSGVBVjZBWjhzQXdHL01CV3BIaU9FTDB5emU4QWtzSmlNRTdXcURST21DM1lsclkyOFVTQXJGMlhyWjdqRlFGTGlvQS8vcm5kNmhEdFRvY1RQK3p4ZXFXL3ZxRjREc1dSTUE5ZWJaSkNWVjZYeC96M2d2THk4L09wek82SE9ZS3ZSN1ZvMHdrSmN5d1JXUUdJUjBLd0R3QnpsR3J6NVRCZnhRZFhFQ2t5SzdYSUk1QTFES3pQcnNuSERTUkpTRkNMYXFTcVJ0R3RMVk9uVG8vOVdValNyN3BXQ01BSXc0VTBtS1FtaVBuZHFhRmxxK1gvd0NXeDltUnptWGorVXlEYVpNWGZXZGd4cjZlL2p4eU1ERHpieDUxYWRuVEwya2VINUU4R1JZOVgrRUR3QVE4cUt2THdmZk5XTmN4WVZIbUFIUDFiMkYxYml5ajlKMEZYQ29IK1p0U2RuQjNGT29EQmdDcDZFT3p3T2c3SVlrbUlRbkFlQzl3Qm1Nd3JLRHBIbGVDekdUVkpVa09EVkJoV1VETG9MQ1ZSc2FYRTJJS1JWVlFKZ0FTUklxQ00rQ1Iwc2tXL3UzWGhjdmtQM3o4WXRBbVZCc3ZVZlZNM2J1cGJ0SjZnMlo2Qi9rVUx1bnNKcmJWekgxdkluWHJpb2NlNmdsOGVldTZGbENOYUdsM0UrNFM1WGJQblJOdmJZOU5tVHAvcG5rdUlmUzdxS0pkb1BIWU55TG9MYUkyaUdoUlAxdGRncE1NOWVveDR4YWdhc0U1WGtZSXdnR0ZYZ2h4RkZ1aXFqc0hvS244dzdnK0tSb09IRUdiTEFDSlhmZDBFUFcxVWRva1U2M0c5ZzYycGZselJ6c2R2VTdaalAxRzJqOG9MWU1lQno1Yk9xcGZ2KzEwQmR5cFdOZmF1b3JFUFpTdnVRN0NaV3NSMEN1TFlYa0F5R0QxSlpYWUU4UG5NWktjZUFEa204bUo1SFF2cmlvT3dhQmNNNGtFTFI0QnMvUkFSbDVCQ0hFY0Q0ekJEeEZXTm9vSWt1Z09DcElrTDlFOGZWK2pKdUhVU3V0UnJZaUtIaWVVR3czb0doQ0hQdEs1Y3VmT0pwWi85ZnVpNVhrVlc5K3dldkh6WndoV3JLaXVTall5ZjhRck1TdTVJckwwOStrNWc3WW1yZnZqVDZrcFhoSWdwdFhMeC9FR3BvRXhrZ21LWkVpdC9FMmlLYzZjQm4wUlJNdGtHQ0pjMWtWQUR2QWxReUNtMHNMQzBpT0hJb3FXOEhLSHlhSGxWUlJBdUxRc0dDZzJHWXFCSHdVK01udmh1TFVRSVVuZHVsd0tJMkRWTkcwWDJMMTZlQ1QvN1gzdWM4YjM5VzQrdDJ2NzY2SzZYcDRhanorRXQyQ0J2WDFvWDdXL3UyekM4bUR2ZE1NWG02V2VOUGJkdmEyMGFlblRMNVUrdFhyZXk3ZGphWCtMYXgweGpTeXBteDJLOXNZSHVWRDlaVjJlQW5pa2dvekswNElRVmdBdXhLeWF3SzBXd0N3QitHemdIZGdqV0dpdWtsRFZVbWl4V1RxSFJDZWNHS0pRdFF4N1JYY0VUK2loZXdTbytKTXJtVjZUV2FDTlpIYzVXa21lVWgweTFnS2lqVFRwOGpYd0hXVEkrZ1RuUEhRSE5xbldmbDl4dXZTbGFac2xuTDN1UkxCTGNSd1hCb3NkZzNuNVlJNlhnbHVyUjlPUlVwdzVRQmpIY0JoQUR3NC9vcVRmUktkNkU0elFUVUZIaDhTQlVVVjlSRjZ2eWhEeEJvUnh1VVZKbDFCeXpUcDhkcWNVVGs4UnJURlpjeDd6NzdLcSsxTkJsVzErNytlYlh0bTVjbWVwYjlleDFzeGFSZk15aVdYMkRnMzNranp1MTlON2xnemVJNG0yWGJmbFdYOSszdG15NlZSUjJEUzYvZCttYnFZNk9ucDZPanBRY1d0TFYxZGZYMWJVRWRPenVDK2ZBSDUwQ1JsWVJIWE5naGpNVGp2ZUFkV013eHdCdFBKL1dNUlVLQUcwK0gwSytLbDhrQU9FbThnWUtRNnFPQVVVRnNNNlV0ZExPSkNiR29jU1N4N0RJL0pJb2xIeFF2cTZFNk5venY5bVluOWExeGFCYXpWVEp1Rk5VbmVUVDh1RjhyT3BhOTIwN05GMTdoNmlXb21Rd1c0cGIySWNCbzFBZnoybklKVURzTWp0TWZENFlNQ3Y0SFd1cHRjVGxvR0NHK25nMUo2SDRIQ2IzVzc0S2JiUS9aa0VtM3pWMk5DZjNCWFBZQWRoUG9uUHdvY3BrcUVqeDhDejRlR1p0WmtJWTdJM1BDeWlEeklDZk1BT3F5cm00VUp2RjR6bjRNSHN1L3prUktzS2F1d2FsdUdadUtuQUVzS2lSNEttZThmRldXVG5Gb2xxc1pjVHBPQXVyenBmOWZwNVRjcFZJWXllWk9WS0pTM0xtT2M5L1dPeHlGYk1XYnFwVTJlQVRIUEpiOGxzT3dkZFFLWm53SFhrVjRUQzQxenRBdng1Ri84VUo3R0ZBcENJS0o0TWdBOEtLMWVtMFpRRDEyZ0YxMmtXN3Y3U0k0bGJkcExqVmZta2tXelR1TzNzNEc5bks4ZkU0RjkwQnZGbWs4YVlnZzlPejRydXlrSWJUZFZucEZpTk9oM1dZNndBK25QL1FxWENJbVROMlV1VVFhMkVPVVQ3SVcwd0tqN0NFSlpWSDhoYmd6YzlBWDkrSEdGMUNkZWk2cEFWMEJWdkFaNEd5cXNGNk1HMzl3QjhqZmhjeGduUXBTaW15TExsaE1EWWlSMUozNHdiQ0dFUTBieVI3MkVEU0dRaUE4dFVGYXFzcTRVZEZLVktockZvYThGRjNVSTJESFpOZ3JYaTlQUWZ2czhWdmZQMndqcWxLSktvWUMrTmZQM3ZtM0pTQ1FjS25IMnFiUGoyVmdqL3Vvek9QN0g4ZzBsZnNkaGYvdkVydnRNNXFuejZ6akVLd2Z3azdsNXlQZW9WalJIZVBxV3NIK1MrczU0NXdjZFNGK3RHQzVOd2lGMk5rSUh4aW1SNFQxaU9PMFhNamlERmpJOHNZUnd3WXdqNEV6QUw0cGRQeEF3RENTR3FIMTgzdjdrYW91Nys3YjhFOHVOR2NhREFZQzRoQkMvSG9HYWVuTEMwcVFCV0d3WExMdGs2QzVnNHpJYkZlTTJWMnFaN0pzbVVpVy9zZnUrZnVYekpqbVMxMXphSjFTKzVZdUN6ZzU0c2NycEl5YnJhaHZEallLaTU5ZFB1ZW4rOVlmSFQ3VjY0ejZLeE9vOTVpYWZ6V2dpUC9jZU1SN0h1cWVtYTFWQ2JNaUU3ajRnYyt1Zi9HVThNOUhiZnYycmIrcDN1Mnp6RHE5SzQ4K2JWeWx4Um8zOTV6MWZGVlgvMzR6aXVmSEs1Z1MvMmxOcHVkZDN2M2ZQalFpN2psR1RrMTkvcjI2dnFCRzJMckVIUGhZOEIwWjhIUEppRENuNUpzUkVhd1AwWjJQZExyRFVNbWJEQUlLUjNIc0dRRkFrekNJakZHelUwd3VwRmdPbHN3THBvTlpjU1c0MG1nWE1pdm4rU29JMjNrL1hxMm5tWCtyYzZNaFg0MWtsNmliUHVpOHRlaVhlcXhUY3AyMGRnamFoRDk1cExyUDdtR08rSVR6bCttSUR3RjdSMDhtUDJOTlNyYk4rVEYrREZFZmZOTW9IVTcwT3BERllCZ2Q1emdzWjRqdUtJV2xrODUrREE5NXZUcmVZSmZBZk1SOUtCVEEyVVNYNVVtcThBYThUeUJIam9BdnR2SUJUcTRBTFNKWGFtTVJ6cWROaHdXRUVJMXNVaTRncmh5SC9MNmcwMUdiUUhwRmJ5WWljMHlMR0UxakE4d21XN1pvUi9Pbi9QSHQzODY5b0pDL1dXWHFUYkxlUFMycFVzV0w3L3R4WmVIVnIvSUhYbnMwSUlkWXZ1NzMzNUNZUUpyVkxaeUtEbXRzMjNNdkw5ckZyVmo2d0dmckFjZkhrT2R5V1FsQm9oSVBRNHNIQUtiK0dFOXdCVWwrTXJzTXd3MUMyR09JRjhBOU1HZ0tBVUNCaFhPTzlXY3Bwb0NoZmtydUZmTkNDbVJjQjFOK1hOVnNiWloxZlhPeld2MzMvNk5BLzNmWEZGZ3JmWlpZMmQvZmZUVFcvYis3ZTRuRmpjbnVWT0FqRWNGTDFDNDVwclh6cHorY1hXTllXR3dyTDV3NDkzWS9keHA3TDU3VjRkbUExcEJucnRCbmg2SWZKY3FZaXhTeEtlajR1Qnl4Q2VseGNjaERzUkh4S2FNSXpBc0xUYUk2Z09pendzM0xRRVYxMU9SS1ZIOTU4dUx4ZWYzN2ozL2hCeFd4RE04ckNycmIzWnV1UGYrKysvZHdCM1pKMzkwNW96ODBmNWNBWjF2ZU9uMDZSZXBiQWc5QVBoUkhIMm1nTjJZa3F1R3ViSWN4MjhqWXVJWkZnSXRqSTJ3T28xR0FXdzd4K2xXZ3VLSk9wSVpzY0JWMVZsWHNUdzMrZ1V1STZ5clNTZkd2K2gxeVZaa0FKaGcyRGJoU2owSEt5TTlYMUFzNDBybGVwUzVmR0NBNXRXQjJnWi9zRkcwU1g1SHdFektjYXBPZ2Zmd3UyZzlUUWVyUVEzMDZhbEpCY0hGeWtqK1hMNzhReExwZm9qdmFlbWNWZ05oL21DdVBOamJ1U05sb3Z3TGtpdy9ORVppSy9tZEg1RXY4amNGWDY1a2NtUlNqeDVTdUJ2U3VLdVVEOWJyZ1R1R0lhTmlLdFAxQTE3ajZ2akt4TVhIZzdUMXdHcjl0dkZYQVBzTUt5ZGVBT3dqVTZ4SHRjUVVFKzZacUNuT2NNL21yMU1NeldSeGRqYnJwaW1zdXc3WEVON0pQL3RYRlI0ZFU3WTNxZ1ZNOW1nVzcrU2ZFdWI5ZDNhZ25XRWNSblBBemh3Rk85T091cEt6bW9Fc0YyQU1FaWtBcW1NNHJlcGlZR2dtQktMczlEN0RhR1VYT055TzJvTEJZRndBYzVOTlhJNjVTVFJtS0VsbkZteXFEODQxUDFiRi9HellTTXpQMXRVdmFmNUUyZm9jdHVWdlg2MllvaWNYcWFiby8xQlQxTGVDbUtLeVI3SWRqRHhXSkJscmFqU3pkRlVDekJJR2RJYTRlMEJmRmhMN2lzeGdhY3pjZW92SndKTGF0RFdQb1l1SVowa2VHcXdVelc0Qm5RdlIvTzQ1czJmTm5ON2VvdnBWZnpBL3V6UnRtMHlDZnR2bnl6WEREWCsydEpXeWRGT1Q2bDczS2R0T2VXZG43aEZ0Qkw1S0hZRnY3dFNPMERnWW1IQStSd0Z3UlA3MVpBcWhNdXdUckZjVmhPVG5FU2NBbjBJRTZYT0FwUGtoa3ZZVFVzQVpZQTNTT0JOQ0FabzlTaWY5RkhycUprRDhiSnY4SnpyTHYyS1VDL014K3F2cU8zOHgrZnpUQ296UmFsckhQUUxoYXp4WlgweHlyajFrUFlJUEdjMmVMUUpKcmdKZERoTmdCSU5EWWlBb2pwdXNtc1FqcVFVeWJSdU4wYlBxQ2FwQVR2LzI1MysrdDRBcTZJemhCUXRrTmMzRnZLL05kZXl1RjErNnMwREEwNmxLeXVlRi9tVk1mOXBVcWJyM09zeDVKWnFmN0YwTXZxOEtJblNTQVFLb2dzRXFjd3o4MjJWV2xUSFBvaW9qUXdKZUhWWXpkbkQxaWlWOWl4YjB6QUcraStGNGt5MW96ZFpFWEViS1BXNFN2V2ZWT1Vtd0U0cVJnbzhvNUdQWEY5VkxuS1dXWDZMa1J1UUhwd3dLN21DUlpDMnM4WmtVSHV4dld5eTVpKzNCZ3BLa1VDWFdiMWYxdENJWEVlR3ZLZHRxUEwxUlBiSkg0NTM4R0p1bzhjK3E3eW9LVkNoSHVqc2pUY0dlNGxCVXFIdnljM1QyUlp4TTY0VG1DeUpvdFFZYUdVUnlVNk1RU0NIZEVFUjlPZ1YxYUFuUVVoS1dLVVBBRXJDWTI1WTlFbVVHRGlUekVhbkNoUW5UYlVHS3JiSldyNlk2RjNOK3pDZVUzamZ4RU5XZmpOdTc0dzVWaTlhbHRRampLWW9DMVUxMGVCaVpnTWFYZ2NZVXNWK3pBMTZXSTFrQWp1Z1FIalZnb2pobTAwV3NXQXAxejVnR0JFZ1NXYkdXYksxeFRLSVJaaVdNREpueDUwY0pXbE9Wbi9zeXBTVnViYzAxVklPNnIrZkZLaU14NnlIZDh0d3pMZmx4VlJNOHJsTGR5V2QwcFM3c25YenRNL1BrRGFMWEsrSzd4cDZlVEIrc050bUYvMkt6a25VR3R1RVk4S2dERFQ5VFgwQUtWV29NWGdxTGlZZ1hmSm1pQ1F5RGg0bEJDNVBpdFcvaVdYYUlpRCtsR0JERm4zZWdOZ200RjRkQWxMcThIRE1TREdIeFVrWWZRckZzYTYvd3JLbXVOUmExeWUzYzF0eWdxbE96NklhS0F2d0FwMm9OdmpyTm96Ni92OWpEbkJ2NzNtUThLUjJiajhjMDNXRlFCL0RsMXYvdHVobHIrdlNXV3o0OWVwUis3ci85OXYza2p6dDFsM3p1dWVma2MzY1Q5L3NjZHQvMTNtdG56dnp3aDJmT3ZLYkdCVmVBZkFJUXJLelRWcW9Pa2JodHZaNGlLTU1FVjBOV0tzZnI5ZHcyYlNTRXdQektpUU1wYUkyUmZIa0FpUlI1R1ltMVYyRHFKUXhmSmxpNCtXOS9lLzl1RFdiZG8yenZ2Rk5kcStMZFYxOTk3YlZYZ3hCKytzb3JQM3RxTXM2UEhSOWN1WElaNGJuOGI1VG5UV2dHZXFYN1NRZlFhcXJEU0s4ay8wdVRadklGOTVnQVVuWVBLT2NscEFjSzlZajJiUEVETENncEtmdXZKZUcrYnRoSXFqZ0dBbCs5TURhZ2phVVpGRnBHSUU1ay9HQ0lqVmxhd1JzbDQxbHk3ODhaRHNqVjNkeU1VUE9NNXVuSmRwajZGS25DSVlsQk00MG9WVlVJNldrMkpTZXZvdGZLRUdvMUpVVGI4aTZ1Tk1YT2piMjl2aGsrVDB0SmI3Y2xyekNTN3hDYk5qZEozZlZURjhhdTJxb3pPQ3J6QzIxbnZuRU14dTQ3ZUhBZitlTk8zU2FmLzg1MzVNOXVZelo2alRyZVdLR1RmRUZmWlVtbGFEWlp6TldzNUFtSlpiYlgybkRSSzkvQjNHM3ZQZlB3d3lkUFB2endNNW1ZOUZuUVBkS3p0UDBFckhHRGxtRVFrQUhPRzVnUndnVTl4Rk9rcXNTekRNbXRja3B1cFJUQ0JaM2VhTlJ0MDhZaW8xRy9jcktoTkwvUTB6VnpPdnpTVktLRzRYaWJXYXNjRm42dWg3NEltcHhNVFpmLyt6L2o1UzdSWFpUbnJDaDJxSkhVM0ZWaHA4Y3BGZnA2R3BOcVZDVTNqMHRPNUQ5NjE3cFZxOWJkeFIwNS9kU2ZXbDNoMHBab2pjdnZWMVE1MlMyMnhUckxJOEVMYURMZGx2R2M3dTQ1b0VCM2dUM3BBTjN1UXFsazEweU1kVDdNOEFUUFlOMndRYytRYWlQd1BMTlBxbG9zV05Wd0NwSDJEcnBMSFZNWG1qTjltaFNRcXFXQU1TdHJvV2dTaVNMY0NzZVVsRjhvcXhha2FpQmhoOEs4a01xa09xV0prZjFWUEFMeGw3bjZhOE56RmtwQzFXVWJibTcrNXZMVFgzbmtTcVVkVVF5YjQzZXZXVElZRHBXbnV2c3VyKzNwVy9YVXRubGZxYXNGdXJ5Qy9IZkJXMURRTmIrcnhSdXcydXhPVVJyKzdaYWpnMnVESk5XSmV3V3Z2WEQ5aHRuSmlvU2p3RmxnTHl1cDJMTng0ME9ERFRVQmtnSEJhQlhvMmtiUXRTaHFTTmJxc0JvMmtqeWRWclRNK0JnSzdhSW9JcExZd2hGUXE1WTJsZEtMT0JWYmRsR3NweXpSbElpYytLMXF0UHFVN1c5UGtLTStnZDFMWThPbC9qS1lPWUNNSE5kNlFmNVBldnhoVWlURGFvOGt5VG1TM2h5YVhtU0hRSWcwRjBPNkg5T0FPb0VhUlpFQ0NtTW1LVXQ4b2RhVk0ybm9wd0RzQ1JGUDlaYlhEeHg0ZlV0MWJsU1QyckppeFpiVStMaG03QWY3WGwyNzl0VjlURk0yR2h6NzNmWXJydGpPQkRMNWdRc2ZBeTFuYVMwWmFKRm96WVJYS2RMckZJbzBZa2pOR05DZG1JdnVWQkNFSjZHa05Cc2VQMEZuT0YyK3k5cmMxdGFVSnorb3pmbTRzaDM0elI5bmFUZzQ3YjBYUzk0eWtYMHNoNFo3bWJWWjgvOHJ6UDlkbVA5VTFKeE14R00yRnV0SU5SeVIydjRvZ1hpZ1l3U3hjSnlRWXJCR3lsVFVRVUNlRkpSeVFRcHJaUlJFcDhnbnhFNUtsYko4Y3FnN1JXYytaUzFiV0JlYjFtTDU1b09XMXM1WXJZc2RybE5wVWdIZGpzWTc5QlhWZFZXNk8rUHJKOFNpaTRzOWxqSVIvMFlPaTJVV1QvRTR1cC9Gajd1TEhDNDV4Y3pPeXUrQVFsSXN0NUJVTkdmWGx4azVJa0tUVVErRUc0WXNaa1pKZ1N0UWw4OE4yR2ZOaUlOQTZiKzhiTEJybkRRWlBsa3UzRGlaMk4ySkxNYU1LSXlSUDhaaVd5NTBhL2pPWTBIMXlLaXliY2VpL0VsckxzTWlkeHdzVW85c1NnZERlK1Vyc3Rmbmh4L21CUEgzNEszWmpQdjV6N05qekFyZzExSGdWenRLSkJ1QVhTeGhseDRZUkdKaTBKTkpRdmgyMUtxeEtVZFpKa2RMbDF3SU4xQnFxdVJIWDFVdDBTNWwrNnI4ZUN5WDlzN1RaeG9uTE95UDVHeGkwUVhHbEJQdnZZV2xkTHkzRDJpZFFuTVVhNVI4cktoMEsyM0w5RFJwYVlCTDlUUk5IS2YwTklWUVFDeHNGQXZUR1lOMFMxTldzRGRKZTRKNzdHVzhsU1R0SU5UN0JkRG9aTnJsNCtRN1dPSUNTbXViNy94L3YwMFRtd2RvbkRldGxEWFNSQ2RlcWZTTVlDeklUN1AzODRQSVRYSXdKRW9sRDFOd3lqTXhYT2FaR0JqclJvVlNZd05wbmVEVTBvVTZGelhCYVBPelh5S1pRNFk2THBsbUVaL0huWnVxcDAyTGVRVmRSUENTdmMrS2xkK053ZTgrU24rM0loa2d2OGRnbGxtZmFYdE10eWE2a2Nzdk5mSksyY1NtL2k3NVdadTJ3OTVLK2djWjhvTzRVMzZlYm1WKzBDdDg4bXZCRzVzMnJacjdFL2xVZFBjbC9Ddk9ESGpDaThKUDZkWk1UNWE1cmFTQ2ludUFic1RzSWMyUlY4RkFML0lFdzV5aEtQS1VEazBucFMxYXN0RmxERnNvM2FERTNGNXR4TzE4UEN4NHZHSDljOC9wdzE2UEVJN3p1TjBZaTNDbjdJNngrMDBHdDJneTVGdnhYdms2YTc3QkpMb05KbWFWd3c2Mjk4MnhDOXdIOHJ2SWhzcnBmRnpqV2FCMGZ0SnBUTWgzY1c5YmRUcHIzbWVWZVhUTG5aWGZ0ZFhVMUZUYmJOV3dJYkU4ZHJKamJBTi9GTzVmVE85UFlsZWxSYkxJbWI2eFVxWUpCYlIrSlo1dEtDeVhMR1o1cEtpaUtXWXJ3TXU0L2NEVmV0MGJsdkpRdk50OFFjRzVXOEJ2M01zZVIzV3d2UCtndEQvbis3Q0JiVzBCM09vQUNsZ0lQbktPNk5tZUFTVk1Ea05vUVBxc1JrbVBrZ0d4aGhGU0ZxRFJRU1NsSnp3WVpsUkFyTnk1L3RJWEFMa2kzZFVhbTBxVHRaOTNGVXBmQkhHZWRnMEpUT3JyRWFwdnIyOXJTZ0J0dFNLZ3huaWpXUU9OaGJtQU90Mk9ReFBNSkNPZGFlbk9kUGZIRTQwUWtTUmVGY3A5aWpXNnZIMm9lTzZUeTY4NDJ2Lzk0M3Z1WHJTeDVlQXNtNlU0VkpBZkczaHR5WU56Wm5YTytITEx6YnZZNC8veWxQeE9SVlF4VFBXSnRzN1VWNGNQM0ZQbTdVeDZpL2hBVlpXbjNsWmVQdlpHWFUxMWJhSW1XYXJJcFJUa2NobGZqaXBSTS9xQndtNFRDd0djRGNNYUE1R29YMGd1WHBVR0dEVTFJcFpTNURFSUdxZEhVam9hdmFzdVg1VkQ5T0pERlh1dlhvWFVqRWNFaGlJT3hEQnk2ZEhBKzhKSUJBWTBSNXJxYTJIK0ZmNWdZekJnVW9KclcyNGpHZzIySnd0ZDdGb3RYcTNONDBQZStyMjl1MS9kc09IVjNVT0hHN3pDdXlycTA4cHpucmMzdExkdlNMWVAxdFlPdHZQbFlFeVdOYldOdnZXVnI3dzFPakJ2a2VCVmk4bDcxYkQ3aWRZZDgrYnRhTzI0c3JmM3lnNnlSbThrZlhkMEhYUW1rN0dMMUZNaldmWFV5TGg2S2loWk1DUUdneFBxcWRtZEJabVNhbGFQbEZMVVlEOVJpaHJoK1Uyek43VzBiSnFkK2xhUFBUOHEyQ1BMMzFoLzZQMGJkdjNyM2djN201UHNjVERKTDlERVgrWHNTTWVPVkdwSFIxMlZhVzZrTEZyVTBMenpyUU1IZm4vOWpqaUpLeGcwRERROW91clFkNU1tSHl4ZEcxWWVIcGhNWWNqVFhpeVI2OFNGRy8yY29VTjA5ZWx5bHF5aU1DelByYi8wNklrS0l3WURjVkZUbUt6SGJvSnRPSnR0aGU0c2hVSGpGSWI5MEt2Mkl2eFo4RFljSGxKVXAzZHZ2WnFjd2IxeUJkV1ZKTlVib2pHZi9WVlJEcSt3YU42QW9qcHRUZGl0YVl5aUs0cmVLR3QwTi9CM0x1aU1IOXgvUjdJMW5TSG00U1NQYUI4dE4wd1NWUkdhSWlaY0NMTzlnb0NRRUJLQ2tnZ1hsb2NkQWdSeEpXcHpvT2kvU1A4SmtLalQrd2xkbHJPYnZjTFlMc2NOSys4OVliRVVsdWVaM0NWcmZyYm0wRnZici9uM3I1K000R2R0Vy92WTQ3dlAzUzE0NWkxT2NCVTFnWklTcjlFZjNQbTdXdys4dGZPOWUrWW8vZDZQQUNaYXd3ZFFFN3BjRVhGWUsxY2FNS1BIV3NIU09FenF2ZEs0Q21kSUd3c240VjVHUEpLNUtLZTBTUXZESkM5RUUyeUNXRVFMdzhwakpzcnpKYUxneFJuME1XazZRMm1TcG12a25rUEZ4U2FMV0dTeDNUaDBFMDVRZlBKRFhLd0NTRFZIZlBJa09YN3k1REUrMEdUMGUwcWtxaUFmZXJpVjFvaW41eURrTTZSRGVzN3BsOGxha2RkeGo0QXNhMUVIdWtONUNpR0llYjIyVmlJSWxKbG51VkdUZ1p3YU51b1kybU9vMS9QRDlEa3pyUlUzU3RRL25qTmFjMVhLcFVQb29oZUMxNnFyQTB2U1VkYytKVTdhNUFOaWtSaFV2WlpiYVJVZmwwWk85NlFSLzVTelBNWjFYbTRsUnZQUENvUDYvL0xudnRlWDErVGxCNHJ6ekM5Y2VlMG1NSzAzdmJweDQ2czNOVzdac2p3NTB0WTJBblptWHZkTXpXeU8xYjM2Rzc4M1AxNFVxNjdrV3RhdVg1ZG92ZmJYWC83eXI2OTk3OGJ0MjI5TWJPN3QzWndBUFFCNHhqMEU5bVk2Mm55Q0pjOGZxVStoU3NoZ1VCb1BwSFNyYkdSODNhRTBLUkJ0TWlBajllK1REMUlVYWpxaTFRbWFVTkE2RGRUQ3ltU1JDSEhvVnV6Rm41OHN3NDk3cjNsMDJTMWRxZHpLUTNXOG8zbERSM1h1d1l6WG9aNm01T1M4TzFmTHd6bXF0YVozM3ZDRGcwZHk4bUo3dFFEc3dnVzYvdWJ3Q3dzRXRCNmhBZ2F0c3lyUFVUOGdyMlB2cGNmWDBxZW8xNkZuNlhwdGd2RUhnYmRUMFJWSlkwZk1iT0pJZ0sveFYxMXlVc3BBYzVLZ1hZR1V5VWhZaDRaZ29TcU5Nd0lZSms0UFR2emlneFQrVGtWSnFZRVdMNlJHd2wrcFVEWEFJVlovcVpJZ2lDSWdxcUJlN2ZuUU8rcTVIUjd5MUdPZDUvdytyVU5zMVhoV2dpSGc2aWp3djU5OFZuenlqN1kzS3R1QWV4VjR4Y2k4eVJnSmRqRDJxMkE4RVF3bTRzRWZ5azhUUHQwSGZPb0FQdm5STElVNWJyQzYzQkI1Qms1S01Xa1BSRkNOQ3c2Q2orZlk5ZG5IbGNmay9NaEhLbmpxWTNLWHFGTXpQL0pxTnVpOCtxd250cDFUZDQ0cXJtVnlSY0FYUG9ENUhnQzcwNEVPMHdkdW5tbE5NRVN5Z1BCYU1hOUxBUGFnQ0k4OGl3T1lYakVuQmoycjB3VlNITU1vb3RYOE9lbUgxRTZTNEgyU29Va2ZHVFdFdENGcXcwWWtQV0pBSzErMWd4TnVETUQvbVk0TitzU0tUV25adU5qWHpCUDFwTEdaMmlieS9MS3cwU3ZzRkx6RnBkV0ozQjIxT2VFWWhKWTM5bnd0RXJ0dUZudjg3bStNblNFUktHTnVyTHZqZ1B6NGhQM2JOUVc0L1lvcmY3eG12Ym8rbmdBK1RrY2pKNmFSZUYwMTNCN1NwMjhZTmhrWmd5RXd2Z2V5TkJra3B4VW5SeUlRR0RxRUpobW8yWjNPdUdaNHpHcWk2UC9aNGlqOEFaODI3MzltY3o0VXZEZC9INnp6RjdFNERLUHg2ZUQ3NE9PMkFsNVpEanpLUjc3Y3VsNWtRbDNQVjFCV1ZKaXA2NDEvdXB6SndWcU0vSWZyci8vRG9VUDBjL2JHcHFhTnM1VlA5amdCcEcvdFZEN2ZVeENVaHJrWkZKQjNjcGZCZkdwUUV0MmNORVV4eDVzd1N2dGN5VVRTbFR6eHRUeFBYYVl5eFV4ZUtrVGNSalVkbHVWa1ZXTjRzU3ZBeTVLSHZtcVR0UjBRRzlhZ2FpSlR0V2lWaVV4c2w1YmRSRWF3SFJyS1ZGdGNaWVBxY1hPdzZJYXNVSVU5cmlGTitad2lyUEUyRHNEb2U3blJDc1gyd0x0SE1yd2p5Q0tRaFZla3lYRktPRk5KQ0xFcTd6NGZvT1JlTVlGM0l1a1F1QWhDbVl5RG42TkVPUWlsUDVkL2o2U0R2OElzME00ZXp3cnR6bCtuYkpWUDdOYWl2L2ZHNDNhSTljQldFTDJMbzJkb0wrQ0pldkxzVzA4cDJXSk1ySzJGbGt5Sk9hVTFxVUNLNUpUU1g3S3JNYXJ0cmNxMFRtWXV5aFM0eGwyVEFkc1pZMHdiNlVpMUo1SXpka0I1K1VZY05TcW14MDBMS0puSDRsVkw0NytFVjZiYXluN1lYV1czUjR1dEJWTmFVM3ZuWXpXTk1iWklyVnZ2VUYyV1hmQjJ2N0tHUFQ2bHZNRWZqY1lNdmxXUGJ4eWEzSzc4NjhIN0ZKNGVCZHNTby9hM0p6a25DWVNYamF2eFJiSnFmSkhQcWZHQmtZMkpBYWxhREdpdkdhRjlWMnFGVHlud2FjczA5K1VpUkpsSWZZOVcrSUxab2ZXUDZBdEZXZzZ0YWVuc0NxMVlmbjFpM3RMbFQrL2FmN1gyVHBHNnc4dS9HYTBxWHJiMllNdStGUSt0Ly9xTzJnNzJ1UElta1k3R1NySFNiakthQ3d2OVZ3MFA3ZStlbFg2UFNFZnp3dUl5RTU5bjhmbDdqdlovYWNZY2svcjhNNG03RjlQZTdIaXlIbHdSU1l1TzZ1anpsU3g5dmxKdGtNenR4cGJFQ2xHUUpLMUFsbTc2dERuVnZJRWFFcXFWUGpVc0l0bGJ4bG52eE50cE1IVHJUYkhyRnhUbXVhUUN1OHYxazY4Zk8va1NPZnhTMnl6dUZGbE83OU1nNk04UGh3TkdzU0xxS2ZTYU43eDhHb3NrRE1JbFN0OGp6UDFyN0dFMEJhMCtZY3Z5b3lVa3g4T1I2aDdIa1pmeVpPY0lrdExFazBxY3oyZkgrVlNScDZDNEZBRGNIaGUxMG1WdWdLK2JVQStrK1RwaUp0cXlxZ2ZzWDd5cTAzeVgrTU1NYnNjZ0h1byt0V2F5SUhzWWNPTGxHVWNJbmhNL29HZ3pZSGRydHRja2RSSFM3d3IwWDZ3T0dQamZxZ1Blb05ZQmY1Yy9mZWJNYWZueTc2ZmxkcjkxUHZWMFFqMHl5aDVXNDdCQnNheE1aSTdtVkRwbTRWUGo2NEF3L3c1U0IyeW9LcUIxSGFUakVLZER1WFhBUUZZZGtEUXJTY1FMaXVQcmdEaVRMZy8rVDh1QTRUc01qYTNOVS9JTzNHYWQwdEphYi9pcW9CS2tQaDJ5dUh1ZnVTb2NpWmh2NloydFpXVXlwSktTSjE0dDN5ZVdlYVZ4Sk8vRUN6M2VvaEw1WVh4emRrMkxQQmV5RjJqL25CcGc0R0kxd0ptMEJpZ1dqcThCNnI5d0RkQVJ1bFFOY0xIU3kvWmZtSzNQTGZoWmQrKzBxVWZ1VjdaeCtlT0czUHAyM3VpMWhlcVJWUnFUUHBNL3lUYkxlL2ZtQUVMRHA5bE0yNzA3WFErcmtOZFNIVStRZm9NcU4yMTgwNm1xb2E1aFJEcmV5T3RTdFBJOU1FZHlqU3ZmWXl1ajE5RVhFYlF6aVMrbzhFbjVwcGszSHJsSkNwUVd6MTA5djBuK1NYZXUycmNlT3hZZnIvYm4vM25yblcwY250SlZYOFh3ZFp1M01EdHl0T0ZtdkRQVDkwaHJmVUJiaE5UNnJCZXY5UVcrWUswdk1MSFdGMEZoMFIyZjdQMEZPYTJkY2EzY0Y4UFVRZEY2bjlVKzloR2UwVEN6T3BhdlZ2eXNkc1lzLzVRZThRbHNDWHNZYUNtVkhHUG5kb29lUzBteC9FOWE5WU1qakh1YmNrUXNnMGsrSkQvTnZzOFBRcXkrS1dsdGdVQTJINllmQmdlanZmcXJOUDJxQXBLVVpOYlN6RFdoaUw3VXhrOWVwWUk0SG8xa2hvSEl5Vk9ReEY1alpuNDZGWkJvckk1S2dyYzBvRmRmd21HbENXMGZBM1M3Q1BuNVdLY2dPZTJaZWRMTXBUd3JyNlZxNFZzMURpcSsyR01wTFZwMVdZamo4YWJycjkrS2pUaTJjV2xScWNVamZ2WUJtNGV2dmx5dHJXekhKdmFEOC94Z3BEMFdLNGdzNngwdUdibEZOQW43MWpsTnV5MUZuZk5DK2JGWWU5VlRwNzIrcnhvS0ZpKzN4YXFxb3JiQnhRWEd6V1dlRThkb2ZmS2NmQi96SGsvZWFSSlhlSkw3L2hIdFJVZ0RFMTZFbEhuaGlTdXJkWWI1VG56YXRDVDg4ZHU4d2lmZkpwMHd1bjYvVW9ORjc4dFBjeUdReHpRMGtyU0MyK05xNEo1dURFcVZsZ2NNWThrYjFwUUhnNUgyTnF0S1RwTUhyYkJraGdFSUhFREthL3hZSWcvU1dUd05UVzF0RG9TRFlYMzZCVDVLY1VxRFJQRE5od3MxT2JTcitGcGhmcUl4aHFsa1l1bDZGK1AvZ0RYaDdSclRyOFo1N0FlZmlVUkVTemZHUURaYnI5ODlvdU54ZE1NZ0ZSRS9lT3lFcDJ5enNXRHhvQzFhVlJXekxWOWNZUGlxejN2NnFTb1FVMzVvWG1lUlpiZkp1VzZmWUFyY2ZlV3d5ZDQ1TjFnQWNvcFFIdDJFRDNEZHpCZ3cvM0pTeDN4R3NJSmpKUUREb3ZDSFpkQ0FqaWV2UEFERVJCakJRSFRLSUdZK0FjekFIMkRyS0t4VGh1VUFPQ3VqNFNncERTcURFUm1yMWVPRG9oUVM2YXVBMVBMdnhQcUwyamVtMTE3T1FkNVU4ZDZLYVkxZFVxaXQzRjdvRDFmbnRleGZHaDlPeG1lTDJVZVlNVkh3ZU1zRlJ5QWNzTG42bDBpQ3g1UDVwc1JuYnpHTjdFcTFoelpCcTdaVkhLa3FLYVJCVU1ZTXFERTNnK1pQMGtxYlhTeWU3S1Z1ekk2djlmZHIvMkpUcDhiSUgzZXFQK3ZvTDVXRHNhbXcwQUVYQkxuMytPMFErZGVpZWVEeW5xTnpjcGd4dy9yQlN5Nm9aSGpUZEt3M2MrcXJlcVlBZjlrOXhCTHNRYnpKYk9MTm96cU81TWtnUXQrQVRMekJOR0MxNUxGbUk5WWJ6UG9SWkRJWlZpR0R5YkNBUEUybVhLcURTM1ZZbDc2ZXZwenlVcGNQSkQzejU5ZlZ6Vjg0ZjJIZHZMcTVQVjFUazJLd3FGZ0VXZGFTSjJrb1g3UUdBdlZ0T0ZSNDJydHc0RU5TWHhRVVV0OFVWT2UycTIyOTJoTlY5T3FFK29aUFc3MlkwRE4rcDFzT0Z6bWM3dnV1ek1zcmMrZVZnbnV6dTMySDNFNW1zZk44djhWUTZpMXlzdDhtMjhzaER1bjJWZFpVeW04N0JKMEJ4NjBSTVJydC9qdC9ML01Ud1I4TSt2SGxyZnJhVXBjbjczcDlpWHZzbjBMQVdPaXdqUDAzSDVWZ3l4ajU2Rml0RUFqNHIzSTVuTTZycG9yNUlJYnI3UGJpUXZuV0gvd0FzU0NyRVBlT0txc2g3S0tTeXRja05STWtaU0JHcFJpa2xCekhhaVBtRFJZRGJ4bk53eGF6MlhKNUZzdVJnVGNaUnBCWnJ6ZjNJN05adnhMcHpmcDVhbjF2NWdTUkdZd0czamlLakJhRDBiTHJDOTh0T2V2U056Sll6THN1ZVNjSWU0dnE2dXFHNmxZc1c3cG9RZmVjY0VMVkFldi9odzZvYnhjaUF5ZDl0VkNkOGxCOHZXSVl2N2crREZUWVhiSyt5bzF0TlpHR1dIdU5MeHlwS0ludm1YcnR6WE43SHZxK0wzd3hyV2dacHhYbmp6dWR0N25zaTZMMlg0a0pYMFhNMVVVVTVLRGI2aW03YnUzVWpZbHJRaTRIV2NzZjA3VzhEVFdoYnJRUmJVYnZVdzBwaXBJWEtZS1dkT1FEb05zOG16SGtyY1ltSTYvYTE1bnBMZ3BEbmpIUFlCd0Z6NEhJdTQyb1F3SzdOS0luUXNuRGFLUUE1eG5NZVFOV2JMUmdrOWxvSWdmeXpLdVFPYzhNeXp1VnZwR2VJVlcveVcrb2h4dWlMM0MvZ2FUWTA0UFFwc3Q2TnZhTXJCd2FYTnEvZVA3Y0dkTmJXMmpaVUd5b2o0WnRFRjRwTmp6ek1xV3N5cGNhOW1mZXBwUWxXVld3U0RYNkdZV3dxMnB5RWF2QTFpZndYZnZYTmJaODQwRGJuaHF2MFZScVpYWFY2NnQyeHFwU1RwZkwyYmFoS1Q2bHVheHlRVW5qbnVtc2llcENSaWRpMGU3Q1NVekVPM2Z6L0xhdHExYlhPdWMxalZ4VzdNenoyNG84Wll5amFMWVlFSUpCb1VjSXVtcGRqb3JSRW91N1pPeVBWQzB5NmlGL2k5aUhTY3lHdk9JSDlKMXI2OWg3QWZjS0tKYU1wTjlXcFpVK0F1a0ViNVMrcFVwQTVZSlVGTkRLRzVOeE5PdkJObmFYOStTeHZsUExvblo3c05qcVduQjk3Q1paZmRNdDAwekM2L043VHI5Y0d5dU1laW9yUTRaQStHSG1YUzNXd09lNFdzQmdDd0ZTaGFpV2VpWmlyaXpBcFlnNTV5MXpqelkxenB6WjFEQ1RYK2dWanBMVXkxSFJvOWF2NXdDOWZoUktTbGwwWnBkeS9zZDFuRjlOVXNmNXRicHp1NUpIbUN3Tmh2NHZFZjV0Q2dBQUFIamFqWkxCVGhzeEVJWi9Md0hSQTZpdGVrSTlXS2dIT0xCT29FZ1JPWVZJdVJRSklnRnFqN0MxZGhjbDhXSjdEN3hFSDZJdjBodXEraDU5aHg3NzIzRkxxRXJWWGEzOWVUei96S3pIQUo3akhnS0w1eU8rSlJiWUVPOFNaK2lJSXZFS1hvdlBpVHQ0S2I0blhzVkc5aXJ4R2w1azQ4U2IyTW8rVVNVNno3ajZHaU1FRnRnU0tuR0dkZkVoOFFyNm9rcmN3UnZ4SmZFcS9YOGtYc04ydHAxNEUyK3o5eGpCb01FZExHcVVxT0Foc1k4dWVqZ2tuZE9pT1Fldk52cG9qaEpua1dkeEw3REJEYm1JNmlFOVBYV0dkc2YxVG96cW1jWGhDSXB2U1czd2FIR05uQ3JEU0FxM1hCdmFOZWY1MHVxS3lxQlZmMVR4VU1NdW8yQmttanRibDVXWCs5M2VvVHl2dEJ5WjF0YmF5ak5ienpSSGM2TUxMNGV0cjR4MWNxZnl2bkZIU3BXMXI5cnJ2REF6ZGRzYXI5dDVuSzZheHFrVUlrYllEVm1lUEFnOHlnWWMwM1BLYTRGak0rVjR3QnJEcWZZeHdBUVgvSWFrcC81bzcwRitrSGQ3L2NIa1lqSWNMQmV6dHdqN3I4YjhEdkg0SEJiQ3l5aHdkRFk4YmJsVUh5NjFkYldaeTVnWi8xUGpYd3I3MWZORnh4MjdISFFOYlk2WlF0NHA1M0JIU3U2Zllvd1RpdGdSTnNRVnRtNjh5MTA5elkwdDFlbjRCRDhCK3JHb2VRQUFlTnBsaXRkT3dtQUFSczlmUmhHY0RNVXRibEd4eFZsWFhDaTRCU2VvcFRGZ0x3ZzFCV084MVVmMVBZeW1pVEhSYzNPK25IeElPSHgrOFBZdHdWOU1wMHE0Y09QQmk0eVBCdndFYUtTSlpscG9wWTBnSWNKRWFLZURLSjEwMFUwUHZmVFJ6d0F4QmhsaW1CRkdHV09jQ2VKTU1zVTBDV1pRVUVreXl4enpMTERJRWhyTHJMREtHdXRzc01rVzIreVFZcGM5MG1UWTU0QkRqamptaEZQT3lKTGpuQXN1dWVLYUcvSVV1T1dPZTNTS0dMd0xTYmlFVzNpRVY4Z2hxMXJTYXhXalp1cGw2OWxPbEczaklmamI2aStXa3lKMTB5NzlPOHFQbGRjblU5TjhqbFZGK1JucUZ6TEhOVzRBQVFBQi8vOEFEM2phWTJCa1lHRGdBV0lsSUdaaVlBYkNSQVpHaGlTR0ZDQXZsU0VkeUdZQnl6QUFBQ2ZVQWpWNDJtTmdaR0JnNEdJSVlVaGlZSFp4OHdsaEVFa3ZTczFtVU1oSkxNbGowR0ZnQWNveS9QL1BBRktGekJaallIWjJERkZnRVBQMTl3R1NRZjYrUUJJdXk1aFdsSmpNd0FGaWdURUxXQzhqVUlRUmFDWVQwRDRGSU1uR3dNZVF6TURNSU1RZ0NySWRTSXVEMWFiQTJVd01JZ3hpQUxXMkV4bDQybU5nWkdCZzRHS3dZYkJqWUhaeDh3bGhFRWt2U3MxbWtNdEpMTWxqMEdCZ0Fjb3kvUDhQSkxDeGdBQUFXeG9MYXdBQUFBQUFBUUFBQUFEVnBDY0lBQUFBQU5tY2crRUFBQUFBMmZ0Sk5BPT0nKSBmb3JtYXQoJ3dvZmYnKTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcbiJ9fQ==`,"base64").toString("utf8"));if(y.existsSync(r.ab+"queries"))for(const e of await y.promises.readdir(a)){const r=e.replace(/[.]graphql$/,"");t(`metrics/setup > load query [${r}]`),o.queries[`_${r}`]=`${await y.promises.readFile(b.resolve(`${a}/${e}`))}`,t(`metrics/setup > load query [${r}] > success`),o.settings.debug&&Object.defineProperty(o.queries,`_${r}`,{get(){t(`metrics/setup > reload query [${r}]`);const n=`${y.readFileSync(b.resolve(`${a}/${e}`))}`;return t(`metrics/setup > reload query [${r}] > success`),n}})}else t(`metrics/setup > load queries from build`),o.queries=JSON.parse(Buffer.from(`e30=`,"base64").toString("utf8"));return Object.keys(o.queries).map(e=>o.queries[e.substring(1)]=(t={})=>{let r=o.queries[e];for(const[e,n]of Object.entries(t))r=r.replace(new RegExp(`[$]${e}`,"g"),n);return r}),t(`metrics/setup > setup > success`),o}async function a({login:e,imports:t,q:r},{enabled:n=!1,token:a=""}={}){try{if(!n||!r.music)return null;const o={get provider(){return _[s]?.name??""},get mode(){return w[l]??"Unconfigured music plugin"}};let i=null,{"music.provider":s="","music.mode":l="","music.playlist":d=null,"music.limit":p=4}=r;if(d&&!l&&(l="playlist"),d&&!s)for(const[e,{embed:t}]of Object.entries(_))t.test(d)&&(s=e);if(l||(l="recent"),!(s in _))throw{error:{message:s?`Unsupported provider "${s}"`:`Missing provider`},...o};if(!(l in w))throw{error:{message:`Unsupported mode "${l}"`},...o};if("playlist"===l){if(!d)throw{error:{message:`Missing playlist url`},...o};if(!_[s].embed.test(d))throw{error:{message:`Unsupported playlist url format`},...o}}switch(p=_Mathmax(1,_Mathmin(100,+p)),console.debug(`metrics/compute/${e}/plugins > music > processing mode ${l} with provider ${s}`),l){case"playlist":{console.debug(`metrics/compute/${e}/plugins > music > starting browser`);const r=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > music > started ${await r.version()}`);const n=await r.newPage();console.debug(`metrics/compute/${e}/plugins > music > loading page`),await n.goto(d);const a=n.mainFrame();switch(s){case"apple":{await a.waitForSelector(".tracklist.playlist"),i=[...(await a.evaluate(()=>[...document.querySelectorAll(".tracklist li")].map(e=>({name:e.querySelector(".tracklist__track__name").innerText,artist:e.querySelector(".tracklist__track__sub").innerText,artwork:e.querySelector(".tracklist__track__artwork img").src}))))];break}case"spotify":{await a.waitForSelector("table"),i=[...(await a.evaluate(()=>[...document.querySelectorAll("table tr")].map(e=>({name:e.querySelector("td:nth-child(2) div:nth-child(1)").innerText,artist:e.querySelector("td:nth-child(2) div:nth-child(2)").innerText,artwork:window.getComputedStyle(document.querySelector("button[title=Play]").parentNode,null).backgroundImage.match(/^url\("(https:...+)"\)$/)[1]}))))];break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await r.close(),Array.isArray(i)&&(console.debug(`metrics/compute/${e}/plugins > music > found ${i.length} tracks`),console.debug(t.util.inspect(i,{depth:1/0,maxStringLength:256})),i=t.shuffle(i));break}case"recent":{const r=Date.now()-86400000;switch(s){case"spotify":{const[n,s,l]=a.split(",").map(e=>e.trim());if(!n||!s||!l)throw{error:{message:`Spotify token must contain client id/secret and refresh token`}};try{console.debug(`metrics/compute/${e}/plugins > music > requesting access token with spotify refresh token`);const{data:{access_token:a}}=await t.axios.post("https://accounts.spotify.com/api/token",`${new t.url.URLSearchParams({grant_type:"refresh_token",refresh_token:l,client_id:n,client_secret:s})}`,{headers:{"Content-Type":"application/x-www-form-urlencoded"}});console.debug(`metrics/compute/${e}/plugins > music > got access token`),console.debug(`metrics/compute/${e}/plugins > music > querying spotify api`),i=(await t.axios(`https://api.spotify.com/v1/me/player/recently-played?limit=${p}&after=${r}`,{headers:{Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${a}`}})).data.items.map(({track:e})=>({name:e.name,artist:e.artists[0].name,artwork:e.album.images[0].url}))}catch(e){if(e.isAxiosError){const t=e.response?.status,r=e.response.data?.error_description??null,n=`API returned ${t}${r?` (${r})`:""}`;throw e=e.response?.data??null,{error:{message:n,instance:e},...o}}throw e}break}default:throw{error:{message:`Unsupported mode "${l}" for provider "${s}"`},...o};}break}default:throw{error:{message:`Unsupported mode "${l}"`},...o};}if(Array.isArray(i)){0 music > keeping only ${p} tracks`),i.splice(p)),console.debug(`metrics/compute/${e}/plugins > music > loading artworks`);for(const r of i)console.debug(`metrics/compute/${e}/plugins > music > processing ${r.name}`),r.artwork=await t.imgb64(r.artwork);return{...o,tracks:i}}throw{error:{message:`An error occured (could not retrieve tracks)`}}}catch(e){if(e.error?.message)throw e;throw{error:{message:"An error occured",instance:e}}}}async function o({login:e,q:t,dflags:r},{conf:n,data:a,rest:o,graphql:i,plugins:l,queries:d},{s:p,pending:s,imports:c}){const u=a.computed={commits:0,sponsorships:0,licenses:{favorite:"",used:{}},token:{},repositories:{watchers:0,stargazers:0,issues_open:0,issues_closed:0,pr_open:0,pr_merged:0,forks:0,releases:0}},m=c.imgb64(a.user.avatarUrl);if(console.debug(`metrics/compute/${e} > formatting common metrics`),t["config.timezone"]){const r=a.config.timezone={name:t["config.timezone"],offset:0};try{r.offset=+(1e3*(60*(60*new Date().toLocaleString("fr",{timeZoneName:"short",timeZone:r.name}).match(/UTC[+](?\d+)/)?.groups?.offset)))||0,console.debug(`metrics/compute/${e} > timezone set to ${r.name} (${0 failed to use timezone "${r.name}"`)}}for(const m of Object.keys(c.plugins))s.push((async()=>{try{console.debug(`metrics/compute/${e}/plugins > ${m} > started`),a.plugins[m]=await c.plugins[m]({login:e,q:t,imports:c,data:a,computed:u,rest:o,graphql:i,queries:d},l[m]),console.debug(`metrics/compute/${e}/plugins > ${m} > completed (${null===a.plugins[m]?"skipped":"success"})`)}catch(t){console.debug(`metrics/compute/${e}/plugins > ${m} > completed (error)`),a.plugins[m]=t}finally{const e={name:m,result:a.plugins[m]};return console.debug(c.util.inspect(e,{depth:1/0,maxStringLength:256})),e}})());for(const m of a.user.repositories.nodes){for(const e of["watchers","stargazers","issues_open","issues_closed","pr_open","pr_merged","releases"])u.repositories[e]+=m[e].totalCount;u.repositories.forks+=m.forkCount,m.licenseInfo&&(u.licenses.used[m.licenseInfo.spdxId]=(u.licenses.used[m.licenseInfo.spdxId]??0)+1)}u.diskUsage=`${c.bytes(1e3*a.user.repositories.totalDiskUsage)}`,u.licenses.favorite=Object.entries(u.licenses.used).sort(([e,t],[r,n])=>n-t).slice(0,1).map(([e,t])=>e)??"",u.commits+=a.user.contributionsCollection.totalCommitContributions+a.user.contributionsCollection.restrictedContributionsCount;const g=(Date.now()-new Date(a.user.createdAt).getTime())/31536000000,h=_Mathfloor(g),f=_Mathceil(12*(g-h));u.registration=h?`${h} year${p(h)} ago`:`${f} month${p(f)} ago`,u.cakeday=[new Date,new Date(a.user.createdAt)].map(e=>e.toISOString().match(/(?\d{2}-\d{2})(?=T)/)?.groups?.mmdd).every((e,t,r)=>e===r[0]),u.calendar=a.user.calendar.contributionCalendar.weeks.flatMap(({contributionDays:e})=>e).slice(0,14).reverse(),u.avatar=(await m)||"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",u.token.scopes=(await o.request("HEAD /")).headers["x-oauth-scopes"].split(", "),a.meta={version:n.package.version,author:n.package.author},(r.includes("--cakeday")||t["dflag.cakeday"])&&(console.debug(`metrics/compute/${e} > applying dflag --cakeday`),u.cakeday=!0),(r.includes("--hireable")||t["dflag.hireable"])&&(console.debug(`metrics/compute/${e} > applying dflag --hireable`),a.user.isHireable=!0)}async function i({login:e,q:t,dflags:r=[]},{graphql:n,rest:a,plugins:o,conf:i,die:s=!1}){try{console.debug(`metrics/compute/${e} > start`),console.debug(S.inspect(t,{depth:1/0,maxStringLength:256}));const h=t.template||i.settings.templates.default,f=_Mathmax(0,+t.repositories)||i.settings.repositories||100,y=[],_=(e,t="")=>1 graphql query`),Object.assign(M,await n(I.common({login:e,"calendar.from":new Date(Date.now()-1209600000).toISOString(),"calendar.to":new Date().toISOString()})));{let t=null,r=0;do{console.debug(`metrics/compute/${e} > retrieving repositories after ${t}`);const{user:{repositories:{edges:a,nodes:o}}}=await n(I.repositories({login:e,after:t?`after: "${t}"`:"",repositories:_Mathmin(f,100)}));t=a?.[a?.length-1]?.cursor,M.user.repositories.nodes.push(...o),r=o.length}while(r&&t&&M.user.repositories.nodes.length keeping only ${f} repositories`),M.user.repositories.nodes.splice(f),console.debug(`metrics/compute/${e} > loaded ${M.user.repositories.nodes.length} repositories`)}console.debug(`metrics/compute/${e} > compute`);const g=E[h].default||E[h];await g({login:e,q:t,dflags:r},{conf:i,data:M,rest:a,graphql:n,plugins:o,queries:I},{s:_,pending:y,imports:{plugins:T,url:O,imgb64:k,axios:C,puppeteer:A,run:m,fs:L,os:z,paths:b,util:S,format:l,bytes:d,shuffle:p,htmlescape:c,urlexpand:u}});const x=await Promise.all(y);{const t=[...x.filter(({result:e=null})=>e?.error),...M.errors];if(t.length)if(console.warn(`metrics/compute/${e} > ${t.length} errors !`),s)throw new Error(`An error occured during rendering, dying`);else console.warn(S.inspect(t,{depth:1/0,maxStringLength:256}))}}console.debug(`metrics/compute/${e} > render`);let W=await x.render(w,{...M,s:_,style:P,fonts:R},{async:!0});if(i.optimize&&!t.raw){console.debug(`metrics/compute/${e} > optimize`);const t=new v({full:!0,plugins:[{cleanupAttrs:!0},{inlineStyles:!1}]}),{data:r}=await t.optimize(W);W=r}return console.debug(`metrics/compute/${e} > success`),W}catch(e){if(Array.isArray(e.errors)&&"NOT_FOUND"===e.errors[0].type)throw new Error("user not found");throw e}}function l(e){for(const{u:t,v:r}of[{u:"b",v:1000000000},{u:"m",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")}${t}`;return e}function d(e){for(const{u:t,v:r}of[{u:"E",v:1000000000000000000},{u:"P",v:1000000000000000},{u:"T",v:1000000000000},{u:"G",v:1000000000},{u:"M",v:1000000},{u:"k",v:1000}])if(1<=e/r)return`${(e/r).toFixed(2).substr(0,4).replace(/[.]0*$/,"")} ${t}B`;return`${e} byte${1":!0,'"':!0,"'":!0}){return e.replace(/&(?!(?:amp|lt|gt|quot|apos);)/g,t["&"]?"&":"&").replace(//g,t[">"]?">":">").replace(/"/g,t["\""]?""":"\"").replace(/'/g,t["'"]?"'":"'")}async function u(e){try{return(await C.get(e)).request.res.responseUrl}catch{return e}}async function m(e,t){return await new Promise((r,n)=>{console.debug(`metrics/command > ${e}`);const a=P.exec(e,t);let[o,i]=["",""];a.stdout.on("data",e=>o+=e),a.stderr.on("data",e=>i+=e),a.on("close",t=>(console.debug(`metrics/command > ${e} > exited with code ${t}`),0===t?r(o):n(i)))})}function g({data:e,conf:t,q:r}){const n=e=>"object"==typeof e&&e?new Proxy(e,{get(e,t){return t===Symbol.toPrimitive?()=>"##":t===Symbol.iterator?Reflect.get(e,t):/^plugins$/.test(t)?Reflect.get(e,t):/^error/.test(t)?void 0:n(t in e?Reflect.get(e,t):{})}}):e,a=Object.entries(t.settings.plugins).filter(([e,t])=>t.enabled).map(([e])=>e).filter(e=>e in r&&r[e]);Object.assign(e,{s(e,t){return"y"===t?"ies":"s"},meta:{version:t.package.version,author:t.package.author,placeholder:!0},user:n({name:`############`,websiteUrl:`########################`,isHireable:!1}),computed:n({avatar:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==",registration:"## years ago",cakeday:!1,calendar:Array(14).fill({color:"#ebedf0"}),licenses:{favorite:`########`},token:{scopes:[]}}),plugins:Object.fromEntries(a.map(e=>[e,n({posts:{source:"########",list:Array("posts.limit"in r?_Mathmax(+r["posts.limit"]||0,0):2).fill({title:"###### ###### ####### ######",date:"####"})},music:{provider:"########",tracks:Array("music.limit"in r?_Mathmax(+r["music.limit"]||0,0):4).fill({name:"##########",artist:"######",artwork:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg=="})},pagespeed:{detailed:!!r["pagespeed.detailed"],screenshot:r["pagespeed.screenshot"]?"data:image/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==":null,scores:["Performance","Accessibility","Best Practices","SEO"].map(e=>({title:e,score:NaN}))},followup:{issues:{count:0},pr:{count:0}},habits:{facts:!!(r["habits.facts"]??1),charts:!!r["habits.charts"],indents:{style:`########`},commits:{day:"####"},linguist:{ordered:[]}},languages:{favorites:Array(7).fill(null).map((e,t)=>({x:t,name:"######",color:"#ebedf0",value:1/(t+1)}))},topics:{mode:"topics.mode"in r?r["topics.mode"]:"starred",list:[...Array("topics.limit"in r?_Mathmax(+r["topics.limit"]||0,0):12).fill(null).map(()=>({name:"######",description:"",icon:null})),{name:`And ## more...`,description:"",icon:null}]},projects:{list:[...Array("projects.limit"in r?_Mathmax(+r["projects.limit"]||0,0):4).fill(null).map(()=>({name:"########",updated:"########",progress:{enabled:!0,todo:"##",doing:"##",done:"##",total:"##"}}))]},tweets:{profile:{username:"########",verified:!1},list:[...Array("tweets.limit"in r?_Mathmax(+r["tweets.limit"]||0,0):2).fill(null).map(()=>({text:"###### ###### ####### ######".repeat(4),created_at:Date.now()}))]}}[e]??{})]))})}r.r(t);var h={};r.r(h),r.d(h,{default:()=>n});var f={};r.r(f),r.d(f,{default:()=>i});var y=r(35747),b=r(85622),S=r(31669),x=r(58509),v=r(20485),k=r(67192),C=r(2390);const _={apple:{name:"Apple Music",embed:/^https:..embed.music.apple.com.\w+.playlist/},spotify:{name:"Spotify",embed:/^https:..open.spotify.com.embed.playlist/}},w={playlist:"Suggested tracks",recent:"Recently played"},T={followup:async function({computed:e,q:t},{enabled:r=!1}={}){try{if(!r||!t.followup)return null;const n={issues:{get count(){return this.open+this.closed},get open(){return e.repositories.issues_open},get closed(){return e.repositories.issues_closed}},pr:{get count(){return this.open+this.merged},get open(){return e.repositories.pr_open},get merged(){return e.repositories.pr_merged}}};return n}catch(e){throw{error:{message:"An error occured",instance:e}}}},gists:async function({login:e,graphql:t,q:r,queries:n},{enabled:a=!1}={}){try{if(!a||!r.gists)return null;console.debug(`metrics/compute/${e}/plugins > gists > querying api`);const{user:{gists:o}}=await t(n.gists({login:e}));console.debug(`metrics/compute/${e}/plugins > gists > processing ${o.nodes.length} gists`);let i=0,s=0,l=0,d=0;for(const e of o.nodes)e.isFork||(i+=e.stargazerCount,s+=e.forks.totalCount,l+=e.comments.totalCount,d+=e.files.length);return{totalCount:o.totalCount,stargazers:i,forks:s,files:d,comments:l}}catch(e){throw{error:{message:"An error occured",instance:e}}}},habits:async function({login:e,rest:t,imports:r,data:n,q:a},{enabled:o=!1,from:i=100}={}){try{if(!o||!a.habits)return null;let{"habits.from":s=i.from??500,"habits.days":l=14,"habits.facts":d=!0,"habits.charts":p=!1}=a;s=_Mathmax(1,_Mathmin(1e3,+s)),l=_Mathmax(1,_Mathmin(30,+s));const c={facts:d,charts:p,commits:{hour:NaN,hours:{},day:NaN,days:{}},indents:{style:"",spaces:0,tabs:0},linguist:{available:!1,ordered:[],languages:{}}},u=_Mathceil(s/100),m=n.config.timezone?.offset??0;console.debug(`metrics/compute/${e}/plugins > habits > querying api`);const g=[];try{for(let r=0;r habits > loading page ${r}`),g.push(...(await t.activity.listEventsForAuthenticatedUser({username:e,per_page:100,page:r})).data)}catch{console.debug(`metrics/compute/${e}/plugins > habits > no more page to load`)}console.debug(`metrics/compute/${e}/plugins > habits > ${g.length} events loaded`);const h=g.filter(({type:e})=>"PushEvent"===e).filter(({actor:t})=>t.login===e).filter(({created_at:e})=>new Date(e)>new Date(Date.now()-1e3*(60*(60*(24*l)))));console.debug(`metrics/compute/${e}/plugins > habits > filtered out ${h.length} push events over last ${l} days`),console.debug(`metrics/compute/${e}/plugins > habits > loading patches`);const f=[...(await Promise.allSettled(h.flatMap(({payload:e})=>e.commits).map(e=>e.url).map(async e=>(await t.request(e)).data.files)))].filter(({status:e})=>"fulfilled"===e).map(({value:e})=>e).flatMap(e=>e.map(e=>({name:r.paths.basename(e.filename),patch:e.patch??""}))).map(({name:e,patch:t})=>({name:e,patch:t.split("\n").filter(e=>/^[-+]/.test(e)).map(e=>e.substring(1)).join("\n")}));{console.debug(`metrics/compute/${e}/plugins > habits > searching most active day of week`);const t=h.map(({created_at:e})=>new Date(new Date(e).getTime()+m).getDay());for(const e of t)c.commits.days[e]=(c.commits.days[e]??0)+1;c.commits.days.max=_Mathmax(...Object.values(c.commits.days)),c.commits.day=t.length?["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][Object.entries(c.commits.days).sort(([e,t],[r,n])=>n-t).map(([e,t])=>e)[0]]??NaN:NaN}{console.debug(`metrics/compute/${e}/plugins > habits > searching most active time of day`);const t=h.map(({created_at:e})=>new Date(new Date(e).getTime()+m).getHours());for(const e of t)c.commits.hours[e]=(c.commits.hours[e]??0)+1;c.commits.hours.max=_Mathmax(...Object.values(c.commits.hours)),c.commits.hour=t.length?`${Object.entries(c.commits.hours).sort(([e,t],[r,n])=>n-t).map(([e,t])=>e)[0]}`.padStart(2,"0"):NaN}if(console.debug(`metrics/compute/${e}/plugins > habits > searching indent style`),f.map(({patch:e})=>e.match(/((?:\t)|(?: )) /gm)??[]).forEach(e=>c.indents[/^\t/.test(e)?"tabs":"spaces"]++),c.indents.style=c.indents.spaces>c.indents.tabs?"spaces":c.indents.tabs>c.indents.spaces?"tabs":"",p){console.debug(`metrics/compute/${e}/plugins > habits > searching recently used languages using linguist`);const t={win32:"wsl"}[process.platform]??"";if(f.length&&(await r.run(`${t} which github-linguist`))){c.linguist.available=!0;const n=r.paths.join(r.os.tmpdir(),`${h[0]?.actor?.id??0}`);console.debug(`metrics/compute/${e}/plugins > habits > creating temp dir ${n} with ${f.length} files`),await r.fs.mkdir(n,{recursive:!0}),await Promise.all(f.map(async({name:e,patch:t},a)=>await r.fs.writeFile(r.paths.join(n,`${a}${r.paths.extname(e)}`),t))),console.debug(`metrics/compute/${e}/plugins > habits > creating temp git repository`),await r.run(`git init && git add . && git config user.name "linguist" && git config user.email "null@github.com" && git commit -m "linguist"`,{cwd:n}).catch(console.debug),await r.run(`git status`,{cwd:n}),console.debug(`metrics/compute/${e}/plugins > habits > running linguist`),(await r.run(`${t} github-linguist --breakdown`,{cwd:n})).split("\n").map(e=>e.match(/(?[\d.]+)%\s+(?\w+)/)?.groups).filter(e=>e).map(({value:e,language:t})=>c.linguist.languages[t]=(c.linguist.languages[t]??0)+e/100),c.linguist.ordered=Object.entries(c.linguist.languages).sort(([e,t],[r,n])=>n-t)}else console.debug(`metrics/compute/${e}/plugins > habits > linguist not available`)}return c}catch(e){if(e.error?.message)throw e;throw{error:{message:"An error occured",instance:e}}}},isocalendar:async function({login:e,graphql:t,q:r,queries:n},{enabled:a=!1}={}){try{if(!a||!r.isocalendar)return null;let{"isocalendar.duration":o="half-year"}=r;o=["full-year","half-year"].includes(o)?o:"full-year";const s=new Date,l=new Date(s);"full-year"===o?l.setFullYear(s.getFullYear()-1):l.setHours(-4320);const d=new Date(l);d.setHours(-336),console.debug(`metrics/compute/${e}/plugins > isocalendar > querying api`);const p={};for(const[r,a,o]of[["padding",d,l],["weeks",l,s]]){console.debug(`metrics/compute/${e}/plugins > isocalendar > loading ${r} from "${a.toISOString()}" to "${o.toISOString()}"`);const{user:{calendar:{contributionCalendar:{weeks:i}}}}=await t(n.calendar({login:e,from:a.toISOString(),to:o.toISOString()}));p[r]=i}console.debug(`metrics/compute/${e}/plugins > isocalendar > applying padding`);const c=p.weeks[0].contributionDays,u=p.padding.flatMap(({contributionDays:e})=>e).filter(({date:e})=>!c.map(({date:e})=>e).includes(e));for(;7>c.length;)c.unshift(u.pop());console.debug(`metrics/compute/${e}/plugins > isocalendar > computing stats`);let m=0,g={max:0,current:0},h=[],f=0;for(const e of p.weeks)for(const t of e.contributionDays)h.push(t.contributionCount),m=_Mathmax(m,t.contributionCount),g.current=t.contributionCount?g.current+1:0,g.max=_Mathmax(g.max,g.current);f=(h.reduce((e,t)=>e+t,0)/h.length).toFixed(2).replace(/[.]0+$/,""),console.debug(`metrics/compute/${e}/plugins > isocalendar > computing svg render`);const y=6;let b=0,i=0,S=` + ${[1,2].map(e=>` ${[..."RGB"].map(t=>``).join("")} `).join("")} - `;for(const e of d.weeks){b+=``,i=0;for(const t of e.contributionDays){const e=t.contributionCount/u;b+=` - + `;for(const e of p.weeks){S+=``,i=0;for(const t of e.contributionDays){const e=t.contributionCount/m;S+=` + - - - `,i++}b+=``,y++}return b+=``,{streak:m,max:u,average:h,svg:b,duration:a}}catch(e){throw{error:{message:"An error occured",instance:e}}}},languages:async function({login:e,data:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.languages)return null;let{"languages.ignored":a="","languages.skipped":o=""}=r;a=decodeURIComponent(a).split(",").map(e=>e.trim().toLocaleLowerCase()).filter(e=>e),o=decodeURIComponent(o).split(",").map(e=>e.trim().toLocaleLowerCase()).filter(e=>e),console.debug(`metrics/compute/${e}/plugins > languages > processing ${t.user.repositories.nodes.length} repositories`);const s={colors:{},total:0,stats:{}};for(const r of t.user.repositories.nodes){if(o.includes(r.name.toLocaleLowerCase())){console.debug(`metrics/compute/${e}/plugins > languages > skipped repository ${r.name}`);continue}for(const{size:t,node:{color:n,name:o}}of Object.values(r.languages.edges)){if(a.includes(o.toLocaleLowerCase())){console.debug(`metrics/compute/${e}/plugins > languages > ignored language ${o}`);continue}s.stats[o]=(s.stats[o]??0)+t,s.colors[o]=n??"#ededed",s.total+=t}}console.debug(`metrics/compute/${e}/plugins > languages > computing stats`),Object.keys(s.stats).map(e=>s.stats[e]/=s.total),s.favorites=Object.entries(s.stats).sort(([e,t],[r,n])=>n-t).slice(0,8).map(([e,t])=>({name:e,value:t,color:s.colors[e],x:0}));for(let e=1;ee)??[];console.debug(`metrics/compute/${e}/plugins > lines > querying api`);const s={added:0,deleted:0},l=await Promise.all(i.map(async t=>await n.repos.getContributorsStats({owner:e,repo:t})));return console.debug(`metrics/compute/${e}/plugins > lines > computing total diff`),l.map(({data:t})=>{if(Array.isArray(t)){const[r]=t.filter(({author:t})=>t.login===e);r&&r.weeks.forEach(({a:e,d:t})=>(s.added+=e,s.deleted+=t))}}),s.added=r.format(s.added),s.deleted=r.format(s.deleted),s}catch(e){throw{error:{message:"An error occured",instance:e}}}},music:a,pagespeed:async function({login:e,imports:t,data:r,q:n},{enabled:a=!1,token:o=null}={}){try{if(!a||!n.pagespeed||!r.user.websiteUrl)return null;let{"pagespeed.detailed":i=!1}=n;i=!!i;let s=r.user.websiteUrl;/^https?:[/][/]/.test(s)||(s=`https://${s}`);const l={url:s,detailed:i,scores:[],metrics:{}};console.debug(`metrics/compute/${e}/plugins > pagespeed > querying api for ${s}`);const d=new Map;if(await Promise.all(["performance","accessibility","best-practices","seo"].map(async r=>{console.debug(`metrics/compute/${e}/plugins > pagespeed > performing audit ${r}`);const n=await t.axios.get(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?category=${r}&url=${s}&key=${o}`);console.debug(n.data);const{score:a,title:i}=n.data.lighthouseResult.categories[r];d.set(r,{score:a,title:i}),console.debug(`metrics/compute/${e}/plugins > pagespeed > performed audit ${r} (status code ${n.status})`)})),l.scores=[d.get("performance"),d.get("accessibility"),d.get("best-practices"),d.get("seo")],i){console.debug(`metrics/compute/${e}/plugins > pagespeed > performing detailed audit`);const r=await t.axios.get(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?&url=${s}&key=${o}`);console.debug(r.data),Object.assign(l.metrics,...r.data.lighthouseResult.audits.metrics.details.items),console.debug(`metrics/compute/${e}/plugins > pagespeed > performed detailed audit (status code ${r.status})`)}return l}catch(e){let t="An error occured";if(e.isAxiosError){const r=e.response?.status,n=e.response?.data?.error?.message?.match(/Lighthouse returned error: (?[A-Z_]+)/)?.groups?.description??null;t=`API returned ${r}${n?` (${n})`:""}`,e=e.response?.data??null}throw{error:{message:t,instance:e}}}},posts:async function({imports:e,data:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.posts)return null;const a=t.user.login;let{"posts.source":o="","posts.limit":i=4}=r;i=_Mathmax(1,_Mathmin(30,+i)),console.debug(`metrics/compute/${a}/plugins > posts > processing with source ${o}`);let s=null;switch(o){case"dev.to":{console.debug(`metrics/compute/${a}/plugins > posts > querying api`),s=(await e.axios.get(`https://dev.to/api/articles?username=${a}&state=fresh`)).data.map(({title:e,readable_publish_date:t})=>({title:e,date:t}));break}default:throw{error:{message:`Unsupported source "${o}"`}};}if(Array.isArray(s))return 0 posts > keeping only ${i} posts`),s=s.slice(0,i)),{source:o,list:s};throw{error:{message:`An error occured (could not retrieve posts)`}}}catch(e){throw{error:{message:"An error occured",instance:e}}}},projects:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.projects)return null;let{"projects.limit":a=4}=r;a=_Mathmax(1,_Mathmin(100,+a)),console.debug(`metrics/compute/${e}/plugins > projects > querying api`);const{user:{projects:o}}=await t(` - query Projects { - user(login: "${e}") { - projects(last: ${a}, states: OPEN, orderBy: {field: UPDATED_AT, direction: DESC}) { - totalCount - nodes { - name - updatedAt - progress { - doneCount - inProgressCount - todoCount - enabled - } - } - } - } - } - `);console.debug(`metrics/compute/${e}/plugins > posts > processing ${o.nodes.length} projects`);const i=[];for(const e of o.nodes){const t=(Date.now()-new Date(e.updatedAt).getTime())/86400000;let r=1>t?"less than 1 day ago":30>t?`${_Mathfloor(t)} day${2<=t?"s":""} ago`:new Date(e.updatedAt).toDateString().substring(4);const{enabled:n,todoCount:a,inProgressCount:o,doneCount:s}=e.progress;i.push({name:e.name,updated:r,progress:{enabled:n,todo:a,doing:o,done:s,total:a+o+s}})}return{list:i,totalCount:o.totalCount}}catch(e){let t="An error occured";throw e.errors?.map(({type:e})=>e)?.includes("INSUFFICIENT_SCOPES")&&(t="Insufficient token rights"),{error:{message:t,instance:e}}}},topics:async function({login:e,imports:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.topics)return null;let{"topics.sort":a="stars","topics.limit":o=15}=r;const i="random"===a;a={starred:"created",activity:"updated",stars:"stars",random:"created"}[a]??"starred",o=_Mathmax(1,_Mathmin(20,+o)),console.debug(`metrics/compute/${e}/plugins > topics > searching starred topics`);let s=[];console.debug(`metrics/compute/${e}/plugins > topics > starting browser`);const l=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > topics > started ${await l.version()}`);const d=await l.newPage();for(let t=1;100>=t;t++){console.debug(`metrics/compute/${e}/plugins > topics > loading page ${t}`),await d.goto(`https://github.com/stars/${e}/topics?direction=desc&page=${t}&sort=${a}`);const r=d.mainFrame();await Promise.race([r.waitForSelector("ul.repo-list"),r.waitForSelector(".blankslate")]);const n=await r.evaluate(()=>[...document.querySelectorAll("ul.repo-list li")].map(e=>({name:e.querySelector(".f3").innerText,description:e.querySelector(".f5").innerText,icon:e.querySelector("img")?.src??null})));if(console.debug(`metrics/compute/${e}/plugins > topics > extracted ${n.length} starred topics`),!n.length){console.debug(`metrics/compute/${e}/plugins > topics > no more page to load`);break}s.push(...n)}if(console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await l.close(),i&&(console.debug(`metrics/compute/${e}/plugins > topics > shuffling topics`),s=t.shuffle(s)),0 topics > keeping only ${o} topics`);const t=s.slice(o);s=s.slice(0,o),s.push({name:`And ${t.length} more...`,description:t.map(({name:e})=>e).join(", "),icon:null})}console.debug(`metrics/compute/${e}/plugins > topics > loading artworks`);for(const r of s)r.icon&&(console.debug(`metrics/compute/${e}/plugins > topics > processing ${r.name}`),r.icon=await t.imgb64(r.icon)),r.description=t.htmlescape(r.description);return{list:s}}catch(e){throw{error:{message:"An error occured",instance:e}}}},traffic:async function({login:e,imports:t,data:r,rest:n,q:a},{enabled:o=!1}={}){try{if(!o||!a.traffic)return null;const i=r.user.repositories.nodes.map(({name:e})=>e)??[];console.debug(`metrics/compute/${e}/plugins > traffic > querying api`);const s={count:0,uniques:0},l=await Promise.all(i.map(async t=>await n.repos.getViews({owner:e,repo:t})));return console.debug(`metrics/compute/${e}/plugins > traffic > computing stats`),l.filter(({data:e})=>e).map(({data:{count:e,uniques:t}})=>(s.count+=e,s.uniques+=t)),s.count=t.format(s.count),s.uniques=t.format(s.uniques),{views:s}}catch(e){let t="An error occured";throw 403===e.status&&(t="Insufficient token rights"),{error:{message:t,instance:e}}}},tweets:async function({login:e,imports:t,data:r,q:n},{enabled:a=!1,token:o=null}={}){try{if(!a||!n.tweets)return null;let{"tweets.limit":i=2}=n;i=_Mathmax(1,_Mathmin(10,+i));const s=r.user.twitterUsername;console.debug(`metrics/compute/${e}/plugins > tweets > loading twitter profile (@${s})`);const{data:{data:l=null}}=await t.axios.get(`https://api.twitter.com/2/users/by/username/${s}?user.fields=profile_image_url,verified`,{headers:{Authorization:`Bearer ${o}`}});console.debug(`metrics/compute/${e}/plugins > tweets > querying api`);const{data:{data:d=[]}}=await t.axios.get(`https://api.twitter.com/2/tweets/search/recent?query=from:${s}&tweet.fields=created_at&expansions=entities.mentions.username`,{headers:{Authorization:`Bearer ${o}`}});return l?.profile_image_url&&(console.debug(`metrics/compute/${e}/plugins > tweets > loading profile image`),l.profile_image=await t.imgb64(l.profile_image_url)),0 tweets > keeping only ${i} tweets`),d.splice(i)),await Promise.all(d.map(async r=>{r.mentions=r.entities?.mentions.map(({username:e})=>e)??[],console.debug(`metrics/compute/${e}/plugins > tweets > formatting tweet ${r.id}`),r.text=t.htmlescape(t.htmlescape(r.text,{"<":!0,">":!0}).replace(new RegExp(`@(${r.mentions.join("|")})`,"gi"),` @$1 `).replace(/(?#$1 `).replace(/\n/g,"
").replace(/https?:[/][/](t.co[/]\w+)/g,` $1 `),{"&":!0})})),{username:s,profile:l,list:d}}catch(e){let t="An error occured";if(e.isAxiosError){const r=e.response?.status,n=e.response?.data?.errors?.[0]?.message??null;t=`API returned ${r}${n?` (${n})`:""}`,e=e.response?.data??null}throw{error:{message:t,instance:e}}}}},E={classic:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments)},terminal:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l},{s:d,pending:s,imports:p}){await o(...arguments),t.raw=!0}};var A=r(34651),O=r(78835),P=r(63129);const L=require("fs/promises");var z=r(12087),R=r(3584),I=r.t(R),M=r(32882),W=r.t(M),q=r(29483),B=r.t(q);(async function(){const[e,t,n,a,o]=[W,B,I,h,f].map(e=>e&&e.default?e.default:e),i=(e,t=!1)=>"string"==typeof e?/^(?:[Tt]rue|[Oo]n|[Yy]es)$/.test(e):t,s=[];try{console.log(`GitHub metrics`),console.log(`========================================================`),console.log(`Version | 2.9.0`),process.on("unhandledRejection",e=>{throw e}),"push"===t.context.eventName&&t.context.payload&&t.context.payload.head_commit&&/\[Skip GitHub Action\]/.test(t.context.payload.head_commit.message)&&(console.log(`Skipped because [Skip GitHub Action] is in commit message`),process.exit(0));const l=await a({log:!1});console.log(`Configuration | loaded`);const d=e.getInput("template")||"classic";console.log(`Template to use | ${d}`);const p=e.getInput("token")||"";if(console.log(`Github token | ${p?"provided":"missing"}`),!p)throw new Error("You must provide a valid GitHub token to gather your metrics");const c=n.graphql.defaults({headers:{authorization:`token ${p}`}});console.log(`Github GraphQL API | ok`);const u=t.getOctokit(p);console.log(`Github REST API | ok`);const m=e.getInput("filename")||"github-metrics.svg";console.log(`SVG output file | ${m}`);const g=i(e.getInput("optimize"),!0);l.optimize=g,console.log(`SVG optimization | ${g}`);let h;try{h=(await u.users.getAuthenticated()).data.login}catch{h=t.context.repo.owner}const f=e.getInput("user")||h;console.log(`GitHub user | ${f}`);const y=i(e.getInput("debug"));y||(console.debug=e=>s.push(e)),console.log(`Debug mode | ${y}`);const b=(e.getInput("debug_flags")||"").split(" ").filter(e=>e);console.log(`Debug flags | ${b.join(" ")||"(none)"}`);const S={};let x=(e.getInput("base")||"").split(",").map(e=>e.trim());for(const e of l.settings.plugins.base.parts)S[`base.${e}`]=x.includes(e);console.log(`Base parts | ${x.join(", ")||"(none)"}`);const v={"config.timezone":e.getInput("config_timezone")||""};console.log(`Timezone | ${v["config.timezone"]||"(system default)"}`);const k={lines:{enabled:i(e.getInput("plugin_lines"))},traffic:{enabled:i(e.getInput("plugin_traffic"))},pagespeed:{enabled:i(e.getInput("plugin_pagespeed"))},habits:{enabled:i(e.getInput("plugin_habits"))},languages:{enabled:i(e.getInput("plugin_languages"))},followup:{enabled:i(e.getInput("plugin_followup"))},music:{enabled:i(e.getInput("plugin_music"))},posts:{enabled:i(e.getInput("plugin_posts"))},isocalendar:{enabled:i(e.getInput("plugin_isocalendar"))},gists:{enabled:i(e.getInput("plugin_gists"))},topics:{enabled:i(e.getInput("plugin_topics"))},projects:{enabled:i(e.getInput("plugin_projects"))},tweets:{enabled:i(e.getInput("plugin_tweets"))}};let C=Object.fromEntries(Object.entries(k).filter(([e,t])=>t.enabled).map(([e])=>[e,!0]));if(console.log(`Plugins enabled | ${Object.entries(k).filter(([e,t])=>t.enabled).map(([e])=>e).join(", ")}`),k.pagespeed.enabled&&(k.pagespeed.token=e.getInput("plugin_pagespeed_token")||"",C[`pagespeed.detailed`]=i(e.getInput(`plugin_pagespeed_detailed`)),console.log(`Pagespeed token | ${k.pagespeed.token?"provided":"missing"}`),console.log(`Pagespeed detailed | ${C["pagespeed.detailed"]}`)),k.languages.enabled){for(const t of["ignored","skipped"])C[`languages.${t}`]=e.getInput(`plugin_languages_${t}`)||null;console.log(`Languages ignored | ${C["languages.ignored"]||"(none)"}`),console.log(`Languages skipped repos | ${C["languages.skipped"]||"(none)"}`)}if(k.habits.enabled){for(const t of["from","days"])C[`habits.${t}`]=e.getInput(`plugin_habits_${t}`)||null;C[`habits.facts`]=i(e.getInput(`plugin_habits_facts`)),C[`habits.charts`]=i(e.getInput(`plugin_habits_charts`)),console.log(`Habits facts | ${C["habits.facts"]}`),console.log(`Habits charts | ${C["habits.charts"]}`),console.log(`Habits events to use | ${C["habits.from"]||"(default)"}`),console.log(`Habits days to keep | ${C["habits.days"]||"(default)"}`)}if(k.music.enabled){k.music.token=e.getInput("plugin_music_token")||"";for(const t of["provider","mode","playlist","limit"])C[`music.${t}`]=e.getInput(`plugin_music_${t}`)||null;console.log(`Music provider | ${C["music.provider"]||"(none)"}`),console.log(`Music plugin mode | ${C["music.mode"]||"(none)"}`),console.log(`Music playlist | ${C["music.playlist"]||"(none)"}`),console.log(`Music tracks limit | ${C["music.limit"]||"(default)"}`),console.log(`Music token | ${k.music.token?"provided":"missing"}`)}if(k.posts.enabled){for(const t of["source","limit"])C[`posts.${t}`]=e.getInput(`plugin_posts_${t}`)||null;console.log(`Posts source | ${C["posts.source"]||"(none)"}`),console.log(`Posts limit | ${C["posts.limit"]||"(default)"}`)}if(k.isocalendar.enabled&&(C["isocalendar.duration"]=e.getInput("plugin_isocalendar_duration")||"half-year",console.log(`Isocalendar duration | ${C["isocalendar.duration"]}`)),k.topics.enabled){for(const t of["sort","limit"])C[`topics.${t}`]=e.getInput(`plugin_topics_${t}`)||null;console.log(`Topics sort mode | ${C["topics.sort"]||"(default)"}`),console.log(`Topics limit | ${C["topics.limit"]||"(default)"}`)}if(k.projects.enabled){for(const t of["limit"])C[`projects.${t}`]=e.getInput(`plugin_projects_${t}`)||null;console.log(`Projects limit | ${C["projects.limit"]||"(default)"}`)}if(k.tweets.enabled){k.tweets.token=e.getInput("plugin_tweets_token")||null;for(const t of["limit"])C[`tweets.${t}`]=e.getInput(`plugin_tweets_${t}`)||null;console.log(`Twitter token | ${k.tweets.token?"provided":"missing"}`),console.log(`Tweets limit | ${C["tweets.limit"]||"(default)"}`)}const _=+e.getInput("repositories")||100;console.log(`Repositories to use | ${_}`);const w=i(e.getInput("plugins_errors_fatal"));console.log(`Plugin errors | ${w?"die":"warn"}`),C={...C,base:!1,...S,...v,repositories:_,template:d};const T=await o({login:f,q:C,dflags:b},{graphql:c,rest:u,plugins:k,conf:l,die:w});console.log(`Render | complete`);const E=i(e.getInput("verify"));if(console.log(`Verify SVG | ${E}`),E){const[e]=[await r.e(344).then(r.t.bind(r,53344,1))].map(e=>e&&e.default?e.default:e),t=e.parseXml(T);if(t.errors.length)throw new Error(`Malformed SVG : \n${t.errors.join("\n")}`);console.log(`SVG valid | yes`)}const A=i(e.getInput("dryrun"));if(A)console.log(`Dry-run | complete`);else{const r=t.context.ref.replace(/^refs[/]heads[/]/,"");console.log(`Repository | ${t.context.repo.owner}/${t.context.repo.repo}`),console.log(`Branch | ${r}`);const n=e.getInput("committer_token")||e.getInput("token")||"";if(console.log(`Committer token | ${n?"provided":"missing"}`),!n)throw new Error("You must provide a valid GitHub token to commit your metrics");const a=t.getOctokit(n);console.log(`Committer REST API | ok`);try{console.log(`Committer | ${(await a.users.getAuthenticated()).data.login}`)}catch{console.log(`Committer | (github-actions)`)}let o=null;try{const{repository:{object:{oid:e}}}=await c(` + + + `,i++}S+=``,b++}return S+=``,{streak:g,max:m,average:f,svg:S,duration:o}}catch(e){throw{error:{message:"An error occured",instance:e}}}},languages:async function({login:e,data:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.languages)return null;let{"languages.ignored":a="","languages.skipped":o=""}=r;a=decodeURIComponent(a).split(",").map(e=>e.trim().toLocaleLowerCase()).filter(e=>e),o=decodeURIComponent(o).split(",").map(e=>e.trim().toLocaleLowerCase()).filter(e=>e),console.debug(`metrics/compute/${e}/plugins > languages > processing ${t.user.repositories.nodes.length} repositories`);const s={colors:{},total:0,stats:{}};for(const r of t.user.repositories.nodes){if(o.includes(r.name.toLocaleLowerCase())){console.debug(`metrics/compute/${e}/plugins > languages > skipped repository ${r.name}`);continue}for(const{size:t,node:{color:n,name:o}}of Object.values(r.languages.edges)){if(a.includes(o.toLocaleLowerCase())){console.debug(`metrics/compute/${e}/plugins > languages > ignored language ${o}`);continue}s.stats[o]=(s.stats[o]??0)+t,s.colors[o]=n??"#ededed",s.total+=t}}console.debug(`metrics/compute/${e}/plugins > languages > computing stats`),Object.keys(s.stats).map(e=>s.stats[e]/=s.total),s.favorites=Object.entries(s.stats).sort(([e,t],[r,n])=>n-t).slice(0,8).map(([e,t])=>({name:e,value:t,color:s.colors[e],x:0}));for(let e=1;ee)??[];console.debug(`metrics/compute/${e}/plugins > lines > querying api`);const s={added:0,deleted:0},l=await Promise.all(i.map(async t=>await n.repos.getContributorsStats({owner:e,repo:t})));return console.debug(`metrics/compute/${e}/plugins > lines > computing total diff`),l.map(({data:t})=>{if(Array.isArray(t)){const[r]=t.filter(({author:t})=>t.login===e);r&&r.weeks.forEach(({a:e,d:t})=>(s.added+=e,s.deleted+=t))}}),s.added=r.format(s.added),s.deleted=r.format(s.deleted),s}catch(e){throw{error:{message:"An error occured",instance:e}}}},music:a,pagespeed:async function({login:e,imports:t,data:r,q:n},{enabled:a=!1,token:o=null}={}){try{if(!a||!n.pagespeed||!r.user.websiteUrl)return null;let{"pagespeed.detailed":i=!1,"pagespeed.screenshot":s=!1}=n;i=!!i;let l=r.user.websiteUrl;/^https?:[/][/]/.test(l)||(l=`https://${l}`);const d={url:l,detailed:i,scores:[],metrics:{}};console.debug(`metrics/compute/${e}/plugins > pagespeed > querying api for ${l}`);const p=new Map;if(await Promise.all(["performance","accessibility","best-practices","seo"].map(async r=>{console.debug(`metrics/compute/${e}/plugins > pagespeed > performing audit ${r}`);const n=await t.axios.get(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?category=${r}&url=${l}&key=${o}`);console.debug(n.data);const{score:a,title:i}=n.data.lighthouseResult.categories[r];p.set(r,{score:a,title:i}),console.debug(`metrics/compute/${e}/plugins > pagespeed > performed audit ${r} (status code ${n.status})`),s&&"performance"===r&&(d.screenshot=n.data.lighthouseResult.audits["final-screenshot"].details.data,console.debug(`metrics/compute/${e}/plugins > pagespeed > performed audit ${r} (status code ${n.status})`))})),d.scores=[p.get("performance"),p.get("accessibility"),p.get("best-practices"),p.get("seo")],i){console.debug(`metrics/compute/${e}/plugins > pagespeed > performing detailed audit`);const r=await t.axios.get(`https://www.googleapis.com/pagespeedonline/v5/runPagespeed?&url=${l}&key=${o}`);console.debug(r.data),Object.assign(d.metrics,...r.data.lighthouseResult.audits.metrics.details.items),console.debug(`metrics/compute/${e}/plugins > pagespeed > performed detailed audit (status code ${r.status})`)}return d}catch(e){let t="An error occured";if(e.isAxiosError){const r=e.response?.status,n=e.response?.data?.error?.message?.match(/Lighthouse returned error: (?[A-Z_]+)/)?.groups?.description??null;t=`API returned ${r}${n?` (${n})`:""}`,e=e.response?.data??null}throw{error:{message:t,instance:e}}}},posts:async function({imports:e,data:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.posts)return null;const a=t.user.login;let{"posts.source":o="","posts.limit":i=4}=r;i=_Mathmax(1,_Mathmin(30,+i)),console.debug(`metrics/compute/${a}/plugins > posts > processing with source ${o}`);let s=null;switch(o){case"dev.to":{console.debug(`metrics/compute/${a}/plugins > posts > querying api`),s=(await e.axios.get(`https://dev.to/api/articles?username=${a}&state=fresh`)).data.map(({title:e,readable_publish_date:t})=>({title:e,date:t}));break}default:throw{error:{message:`Unsupported source "${o}"`}};}if(Array.isArray(s))return 0 posts > keeping only ${i} posts`),s.splice(i)),{source:o,list:s};throw{error:{message:`An error occured (could not retrieve posts)`}}}catch(e){throw{error:{message:"An error occured",instance:e}}}},projects:async function({login:e,graphql:t,q:r,queries:n},{enabled:a=!1}={}){try{if(!a||!r.projects)return null;let{"projects.limit":o=4,"projects.repositories":i=""}=r;i=i?.split(",").map(e=>e.trim()).filter(e=>/[-\w]+[/][-\w]+[/]projects[/]\d+/.test(e))??[],o=_Mathmax(i.length,_Mathmin(100,+o)),console.debug(`metrics/compute/${e}/plugins > projects > querying api`);const{user:{projects:s}}=await t(n.projects({login:e,limit:o}));for(const r of i){console.debug(`metrics/compute/${e}/plugins > projects > querying api for ${r}`);const{user:a,repository:o,id:i}=r.match(/(?[-\w]+)[/](?[-\w]+)[/]projects[/](?\d+)/)?.groups,{user:{repository:{project:l}}}=await t(n["projects.repository"]({user:a,repository:o,id:i}));console.debug(`metrics/compute/${e}/plugins > projects > registering ${r}`),l.name=`${l.name} (${a}/${o})`,s.nodes.unshift(l),s.totalCount++}console.debug(`metrics/compute/${e}/plugins > projects > processing ${s.nodes.length} projects`);const l=[];for(const e of s.nodes){const t=(Date.now()-new Date(e.updatedAt).getTime())/86400000;let r=1>t?"less than 1 day ago":30>t?`${_Mathfloor(t)} day${2<=t?"s":""} ago`:new Date(e.updatedAt).toDateString().substring(4);const{enabled:n,todoCount:a,inProgressCount:o,doneCount:i}=e.progress;l.push({name:e.name,updated:r,progress:{enabled:n,todo:a,doing:o,done:i,total:a+o+i}})}return console.debug(`metrics/compute/${e}/plugins > projects > keeping only ${o} projects`),l.splice(o),{list:l,totalCount:s.totalCount}}catch(e){let t="An error occured";throw e.errors?.map(({type:e})=>e)?.includes("INSUFFICIENT_SCOPES")&&(t="Insufficient token rights"),{error:{message:t,instance:e}}}},topics:async function({login:e,imports:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.topics)return null;let{"topics.sort":a="stars","topics.mode":o="starred","topics.limit":i="mastered"===o?0:15}=r;const s="random"===a;a={starred:"created",activity:"updated",stars:"stars",random:"created"}[a]??"starred",i=_Mathmax(0,_Mathmin(20,+i)),o=["starred","mastered"].includes(o)?o:"starred",console.debug(`metrics/compute/${e}/plugins > topics > searching starred topics`);let l=[];console.debug(`metrics/compute/${e}/plugins > topics > starting browser`);const d=await t.puppeteer.launch({headless:!0,executablePath:process.env.PUPPETEER_BROWSER_PATH,args:["--no-sandbox","--disable-extensions","--disable-setuid-sandbox","--disable-dev-shm-usage"]});console.debug(`metrics/compute/${e}/plugins > topics > started ${await d.version()}`);const p=await d.newPage();for(let t=1;100>=t;t++){console.debug(`metrics/compute/${e}/plugins > topics > loading page ${t}`),await p.goto(`https://github.com/stars/${e}/topics?direction=desc&page=${t}&sort=${a}`);const r=p.mainFrame();await Promise.race([r.waitForSelector("ul.repo-list"),r.waitForSelector(".blankslate")]);const n=await r.evaluate(()=>[...document.querySelectorAll("ul.repo-list li")].map(e=>({name:e.querySelector(".f3").innerText,description:e.querySelector(".f5").innerText,icon:e.querySelector("img")?.src??null})));if(console.debug(`metrics/compute/${e}/plugins > topics > extracted ${n.length} starred topics`),!n.length){console.debug(`metrics/compute/${e}/plugins > topics > no more page to load`);break}l.push(...n)}if(console.debug(`metrics/compute/${e}/plugins > music > closing browser`),await d.close(),s&&(console.debug(`metrics/compute/${e}/plugins > topics > shuffling topics`),l=t.shuffle(l)),"starred"===o&&0 topics > keeping only ${i} topics`);const t=l.splice(i);l.push({name:`And ${t.length} more...`,description:t.map(({name:e})=>e).join(", "),icon:null})}console.debug(`metrics/compute/${e}/plugins > topics > loading artworks`);for(const r of l)r.icon&&(console.debug(`metrics/compute/${e}/plugins > topics > processing ${r.name}`),r.icon=await t.imgb64(r.icon)),r.description=t.htmlescape(r.description);return"mastered"===o&&(console.debug(`metrics/compute/${e}/plugins > topics > filtering topics with icon`),l=l.filter(({icon:e})=>e)),"mastered"===o&&0 topics > keeping only ${i} topics`),l.splice(i)),{mode:o,list:l}}catch(e){throw{error:{message:"An error occured",instance:e}}}},traffic:async function({login:e,imports:t,data:r,rest:n,q:a},{enabled:o=!1}={}){try{if(!o||!a.traffic)return null;const i=r.user.repositories.nodes.map(({name:e})=>e)??[];console.debug(`metrics/compute/${e}/plugins > traffic > querying api`);const s={count:0,uniques:0},l=await Promise.all(i.map(async t=>await n.repos.getViews({owner:e,repo:t})));return console.debug(`metrics/compute/${e}/plugins > traffic > computing stats`),l.filter(({data:e})=>e).map(({data:{count:e,uniques:t}})=>(s.count+=e,s.uniques+=t)),s.count=t.format(s.count),s.uniques=t.format(s.uniques),{views:s}}catch(e){let t="An error occured";throw 403===e.status&&(t="Insufficient token rights"),{error:{message:t,instance:e}}}},tweets:async function({login:e,imports:t,data:r,q:n},{enabled:a=!1,token:o=null}={}){try{if(!a||!n.tweets)return null;let{"tweets.limit":i=2}=n;i=_Mathmax(1,_Mathmin(10,+i));const s=r.user.twitterUsername;console.debug(`metrics/compute/${e}/plugins > tweets > loading twitter profile (@${s})`);const{data:{data:l=null}}=await t.axios.get(`https://api.twitter.com/2/users/by/username/${s}?user.fields=profile_image_url,verified`,{headers:{Authorization:`Bearer ${o}`}});console.debug(`metrics/compute/${e}/plugins > tweets > querying api`);const{data:{data:d=[]}}=await t.axios.get(`https://api.twitter.com/2/tweets/search/recent?query=from:${s}&tweet.fields=created_at&expansions=entities.mentions.username`,{headers:{Authorization:`Bearer ${o}`}});return l?.profile_image_url&&(console.debug(`metrics/compute/${e}/plugins > tweets > loading profile image`),l.profile_image=await t.imgb64(l.profile_image_url)),0 tweets > keeping only ${i} tweets`),d.splice(i)),await Promise.all(d.map(async r=>{r.mentions=r.entities?.mentions.map(({username:e})=>e)??[],console.debug(`metrics/compute/${e}/plugins > tweets > formatting tweet ${r.id}`),r.text=t.htmlescape(t.htmlescape(r.text,{"<":!0,">":!0}).replace(new RegExp(`@(${r.mentions.join("|")})`,"gi"),` @$1 `).replace(/(?#$1 `).replace(/\n/g,"
").replace(/https?:[/][/](t.co[/]\w+)/g,` $1 `),{"&":!0})})),{username:s,profile:l,list:d}}catch(e){let t="An error occured";if(e.isAxiosError){const r=e.response?.status,n=e.response?.data?.errors?.[0]?.message??null;t=`API returned ${r}${n?` (${n})`:""}`,e=e.response?.data??null}throw{error:{message:t,instance:e}}}}},E={classic:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l,queries:d},{s:p,pending:s,imports:c}){await o(...arguments)},repository:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l,queries:d},{s:p,pending:s,imports:c}){const{repo:u}=t;if(!u)return console.debug(`metrics/compute/${e}/${u} > error, repo was undefined`),n.errors.push({error:{message:`You must pass a "repo" argument to use this template`}}),await o(...arguments);console.debug(`metrics/compute/${e}/${u} > retrieving single repository ${u}`);const{user:{repository:m}}=await i(d.repository({login:e,repo:u}));n.user.repositories.nodes=[m],console.debug(`metrics/compute/${e}/${u} > querying api for commits`);const g=[];for(let o=0;1>o;o++){console.debug(`metrics/compute/${e}/${u} > loading page ${o}`);const{data:t}=await a.repos.listCommits({owner:e,repo:u,per_page:100,page:o});if(!t.length){console.debug(`metrics/compute/${e}/${u} > no more page to load`);break}g.push(...t)}console.debug(`metrics/compute/${e}/${u} > ${g.length} commits loaded`),n.user.createdAt=m.createdAt,n.user.repositories.totalDiskUsage=m.diskUsage;const h=new Date;h.setHours(0,0,0,0);const f=g.map(({commit:e})=>_Mathabs(_Mathceil((h-new Date(e.committer.date))/86400000))).slice(0,14),y=Array(14).fill(0);for(const o of f)y[o]++;const b=_Mathmax(...y);n.user.calendar.contributionCalendar.weeks=y.map(e=>({contributionDays:{color:e?`var(--color-calendar-graph-day-L${_Mathceil(e/b/.25)}-bg)`:"var(--color-calendar-graph-day-bg)"}})),t["projects.limit"]=0,await o(...arguments),await Promise.all(s),n.plugins.projects.list.map(t=>t.name=t.name.replace(`(${e}/${u})`,"").trim())},terminal:async function({login:e,q:t},{conf:r,data:n,rest:a,graphql:i,plugins:l,queries:d},{s:p,pending:s,imports:c}){await o(...arguments),t.raw=!0}};var A=r(34651),O=r(78835),P=r(63129);const L=require("fs/promises");var z=r(12087),R=r(3584),I=r.t(R),M=r(32882),W=r.t(M),q=r(29483),B=r.t(q);(async function(){const[e,t,n,a,o]=[W,B,I,h,f].map(e=>e&&e.default?e.default:e),i=(e,t=!1)=>"string"==typeof e?/^(?:[Tt]rue|[Oo]n|[Yy]es)$/.test(e):t,s=[];try{console.log(`GitHub metrics`),console.log(`========================================================`),console.log(`Version | 2.10.0-beta`),process.on("unhandledRejection",e=>{throw e}),"push"===t.context.eventName&&t.context.payload&&t.context.payload.head_commit&&/\[Skip GitHub Action\]/.test(t.context.payload.head_commit.message)&&(console.log(`Skipped because [Skip GitHub Action] is in commit message`),process.exit(0));const l=await a({log:!1});console.log(`Configuration | loaded`);const d=e.getInput("template")||"classic";console.log(`Template to use | ${d}`);const p=e.getInput("token")||"";if(console.log(`Github token | ${p?"provided":"missing"}`),!p)throw new Error("You must provide a valid GitHub token to gather your metrics");const c=n.graphql.defaults({headers:{authorization:`token ${p}`}});console.log(`Github GraphQL API | ok`);const u=t.getOctokit(p);console.log(`Github REST API | ok`);const m=e.getInput("filename")||"github-metrics.svg";console.log(`SVG output file | ${m}`);const g=i(e.getInput("optimize"),!0);l.optimize=g,console.log(`SVG optimization | ${g}`);let h;try{h=(await u.users.getAuthenticated()).data.login}catch{h=t.context.repo.owner}const f=e.getInput("user")||h;console.log(`GitHub user | ${f}`);const y=i(e.getInput("debug"));y||(console.debug=e=>s.push(e)),console.log(`Debug mode | ${y}`);const b=(e.getInput("debug_flags")||"").split(" ").filter(e=>e);console.log(`Debug flags | ${b.join(" ")||"(none)"}`);const S={};let x=(e.getInput("base")||"").split(",").map(e=>e.trim());for(const e of l.settings.plugins.base.parts)S[`base.${e}`]=x.includes(e);console.log(`Base parts | ${x.join(", ")||"(none)"}`);const v={"config.timezone":e.getInput("config_timezone")||""};console.log(`Timezone | ${v["config.timezone"]||"(system default)"}`);const k={lines:{enabled:i(e.getInput("plugin_lines"))},traffic:{enabled:i(e.getInput("plugin_traffic"))},pagespeed:{enabled:i(e.getInput("plugin_pagespeed"))},habits:{enabled:i(e.getInput("plugin_habits"))},languages:{enabled:i(e.getInput("plugin_languages"))},followup:{enabled:i(e.getInput("plugin_followup"))},music:{enabled:i(e.getInput("plugin_music"))},posts:{enabled:i(e.getInput("plugin_posts"))},isocalendar:{enabled:i(e.getInput("plugin_isocalendar"))},gists:{enabled:i(e.getInput("plugin_gists"))},topics:{enabled:i(e.getInput("plugin_topics"))},projects:{enabled:i(e.getInput("plugin_projects"))},tweets:{enabled:i(e.getInput("plugin_tweets"))}};let C=Object.fromEntries(Object.entries(k).filter(([e,t])=>t.enabled).map(([e])=>[e,!0]));if(console.log(`Plugins enabled | ${Object.entries(k).filter(([e,t])=>t.enabled).map(([e])=>e).join(", ")}`),k.pagespeed.enabled&&(k.pagespeed.token=e.getInput("plugin_pagespeed_token")||"",C[`pagespeed.detailed`]=i(e.getInput(`plugin_pagespeed_detailed`)),C[`pagespeed.screenshot`]=i(e.getInput(`plugin_pagespeed_screenshot`)),console.log(`Pagespeed token | ${k.pagespeed.token?"provided":"missing"}`),console.log(`Pagespeed detailed | ${C["pagespeed.detailed"]}`),console.log(`Pagespeed screenshot | ${C["pagespeed.screenshot"]}`)),k.languages.enabled){for(const t of["ignored","skipped"])C[`languages.${t}`]=e.getInput(`plugin_languages_${t}`)||null;console.log(`Languages ignored | ${C["languages.ignored"]||"(none)"}`),console.log(`Languages skipped repos | ${C["languages.skipped"]||"(none)"}`)}if(k.habits.enabled){for(const t of["from","days"])C[`habits.${t}`]=e.getInput(`plugin_habits_${t}`)||null;C[`habits.facts`]=i(e.getInput(`plugin_habits_facts`)),C[`habits.charts`]=i(e.getInput(`plugin_habits_charts`)),console.log(`Habits facts | ${C["habits.facts"]}`),console.log(`Habits charts | ${C["habits.charts"]}`),console.log(`Habits events to use | ${C["habits.from"]||"(default)"}`),console.log(`Habits days to keep | ${C["habits.days"]||"(default)"}`)}if(k.music.enabled){k.music.token=e.getInput("plugin_music_token")||"";for(const t of["provider","mode","playlist","limit"])C[`music.${t}`]=e.getInput(`plugin_music_${t}`)||null;console.log(`Music provider | ${C["music.provider"]||"(none)"}`),console.log(`Music plugin mode | ${C["music.mode"]||"(none)"}`),console.log(`Music playlist | ${C["music.playlist"]||"(none)"}`),console.log(`Music tracks limit | ${C["music.limit"]||"(default)"}`),console.log(`Music token | ${k.music.token?"provided":"missing"}`)}if(k.posts.enabled){for(const t of["source","limit"])C[`posts.${t}`]=e.getInput(`plugin_posts_${t}`)||null;console.log(`Posts source | ${C["posts.source"]||"(none)"}`),console.log(`Posts limit | ${C["posts.limit"]||"(default)"}`)}if(k.isocalendar.enabled&&(C["isocalendar.duration"]=e.getInput("plugin_isocalendar_duration")||"half-year",console.log(`Isocalendar duration | ${C["isocalendar.duration"]}`)),k.topics.enabled){for(const t of["mode","sort","limit"])C[`topics.${t}`]=e.getInput(`plugin_topics_${t}`)||null;console.log(`Topics mode | ${C["topics.mode"]||"(default)"}`),console.log(`Topics sort mode | ${C["topics.sort"]||"(default)"}`),console.log(`Topics limit | ${C["topics.limit"]||"(default)"}`)}if(k.projects.enabled){for(const t of["limit","repositories"])C[`projects.${t}`]=e.getInput(`plugin_projects_${t}`)||null;console.log(`Projects limit | ${C["projects.limit"]||"(default)"}`),console.log(`Projects repositories | ${C["projects.repositories"]||"(none)"}`)}if(k.tweets.enabled){k.tweets.token=e.getInput("plugin_tweets_token")||null;for(const t of["limit"])C[`tweets.${t}`]=e.getInput(`plugin_tweets_${t}`)||null;console.log(`Twitter token | ${k.tweets.token?"provided":"missing"}`),console.log(`Tweets limit | ${C["tweets.limit"]||"(default)"}`)}const _=+e.getInput("repositories")||100;console.log(`Repositories to use | ${_}`);const w=i(e.getInput("plugins_errors_fatal"));console.log(`Plugin errors | ${w?"die":"warn"}`);const T=JSON.parse(e.getInput("query")||"{}");console.log(`Query additional params | ${JSON.stringify(T)}`),C={...T,...C,base:!1,...S,...v,repositories:_,template:d};const E=await o({login:f,q:C,dflags:b},{graphql:c,rest:u,plugins:k,conf:l,die:w});console.log(`Render | complete`);const A=i(e.getInput("verify"));if(console.log(`Verify SVG | ${A}`),A){const[e]=[await r.e(344).then(r.t.bind(r,53344,1))].map(e=>e&&e.default?e.default:e),t=e.parseXml(E);if(t.errors.length)throw new Error(`Malformed SVG : \n${t.errors.join("\n")}`);console.log(`SVG valid | yes`)}const O=i(e.getInput("dryrun"));if(O)console.log(`Dry-run | complete`);else{const r=t.context.ref.replace(/^refs[/]heads[/]/,"");console.log(`Repository | ${t.context.repo.owner}/${t.context.repo.repo}`),console.log(`Branch | ${r}`);const n=e.getInput("committer_token")||e.getInput("token")||"";if(console.log(`Committer token | ${n?"provided":"missing"}`),!n)throw new Error("You must provide a valid GitHub token to commit your metrics");const a=t.getOctokit(n);console.log(`Committer REST API | ok`);try{console.log(`Committer | ${(await a.users.getAuthenticated()).data.login}`)}catch{console.log(`Committer | (github-actions)`)}let o=null;try{const{repository:{object:{oid:e}}}=await c(` query Sha { repository(owner: "${t.context.repo.owner}", name: "${t.context.repo.repo}") { object(expression: "${r}:${m}") { ... on Blob { oid } } } } - `);o=e}catch(e){console.debug(e)}console.log(`Previous render sha | ${o??"(none)"}`),await a.repos.createOrUpdateFileContents({...t.context.repo,path:m,message:`Update ${m} - [Skip GitHub Action]`,content:Buffer.from(T).toString("base64"),...(o?{sha:o}:{})}),console.log(`Commit to repo | ok`)}console.log(`Success, thanks for using metrics !`),process.exit(0)}catch(t){if(console.error(t),!i(e.getInput("debug")))for(const e of["_".repeat(64),"An error occured, logging debug message :",...s])console.log(e);e.setFailed(t.message),process.exit(1)}})().catch(()=>process.exit(1))},12541:function(e,t,r){"use strict";function n(e,t,r){const n=new p(e,t,r);process.stdout.write(n.toString()+s.EOL)}function a(e){return l.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function o(e){return l.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(12087)),l=r(74332);t.issueCommand=n,t.issue=function(e,t=""){n(e,{},t)};const d="::";class p{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r}toString(){let e=d+this.command;if(this.properties&&0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toCommandValue=function(e){return null===e||void 0===e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e)}},84873:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(35747),a=r(12087);class o{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH)if(n.existsSync(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(n.readFileSync(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${a.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10)}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,t]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:t}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}}t.Context=o},29483:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getOctokit=t.context=void 0;const i=o(r(84873)),s=r(24864);t.context=new i.Context,t.getOctokit=function(e,t){return new s.GitHub(s.getOctokitOptions(e,t))}},18145:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getApiBaseUrl=t.getProxyAgent=t.getAuthString=void 0;const i=o(r(66305));t.getAuthString=function(e,t){if(!e&&!t.auth)throw new Error("Parameter token or opts.auth is required");else if(e&&t.auth)throw new Error("Parameters token and opts.auth may not both be specified");return"string"==typeof t.auth?t.auth:`token ${e}`},t.getProxyAgent=function(e){const t=new i.HttpClient;return t.getAgent(e)},t.getApiBaseUrl=function(){return process.env.GITHUB_API_URL||"https://api.github.com"}},24864:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getOctokitOptions=t.GitHub=t.context=void 0;const i=o(r(84873)),s=o(r(18145)),l=r(40812),d=r(5462),p=r(19227);t.context=new i.Context;const c=s.getApiBaseUrl(),u={baseUrl:c,request:{agent:s.getProxyAgent(c)}};t.GitHub=l.Octokit.plugin(d.restEndpointMethods,p.paginateRest).defaults(u),t.getOctokitOptions=function(e,t){const r=Object.assign({},t||{}),n=s.getAuthString(e,r);return n&&(r.auth=n),r}},66305:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(98605),a=r(57211),o=r(92901);let i;var s;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"})(s=t.HttpCodes||(t.HttpCodes={}));var l;(function(e){e.Accept="accept",e.ContentType="content-type"})(l=t.Headers||(t.Headers={}));var d;(function(e){e.ApplicationJson="application/json"})(d=t.MediaTypes||(t.MediaTypes={})),t.getProxyUrl=function(e){let t=o.getProxyUrl(new URL(e));return t?t.href:""};const p=[s.MovedPermanently,s.ResourceMoved,s.SeeOther,s.TemporaryRedirect,s.PermanentRedirect],c=[s.BadGateway,s.ServiceUnavailable,s.GatewayTimeout],u=["OPTIONS","GET","DELETE","HEAD"];class m extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,m.prototype)}}t.HttpClientError=m;class g{constructor(e){this.message=e}readBody(){return new Promise(async e=>{let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e])}),this.message.on("end",()=>{e(t.toString())})})}}t.HttpClientResponse=g,t.isHttps=function(e){let t=new URL(e);return"https:"===t.protocol};class h{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=_Mathmax(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries))}options(e,t){return this.request("OPTIONS",e,null,t||{})}get(e,t){return this.request("GET",e,null,t||{})}del(e,t){return this.request("DELETE",e,null,t||{})}post(e,t,r){return this.request("POST",e,t,r||{})}patch(e,t,r){return this.request("PATCH",e,t,r||{})}put(e,t,r){return this.request("PUT",e,t,r||{})}head(e,t){return this.request("HEAD",e,null,t||{})}sendStream(e,t,r,n){return this.request(e,t,r,n)}async getJson(e,t={}){t[l.Accept]=this._getExistingOrDefaultHeader(t,l.Accept,d.ApplicationJson);let r=await this.get(e,t);return this._processResponse(r,this.requestOptions)}async postJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.post(e,n,r);return this._processResponse(a,this.requestOptions)}async putJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.put(e,n,r);return this._processResponse(a,this.requestOptions)}async patchJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.patch(e,n,r);return this._processResponse(a,this.requestOptions)}async request(e,t,r,n){if(this._disposed)throw new Error("Client has already been disposed.");let a=new URL(t),o=this._prepareRequest(e,a,n),i=this._allowRetries&&-1!=u.indexOf(e)?this._maxRetries+1:1,l=0,d;for(;l{this.requestRawWithCallback(e,t,function(e,t){e&&n(e),r(t)})})}requestRawWithCallback(e,t,r){let n;"string"==typeof t&&(e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let a=!1,o=(e,t)=>{a||(a=!0,r(e,t))},i=e.httpModule.request(e.options,e=>{let t=new g(e);o(null,t)});i.on("socket",e=>{n=e}),i.setTimeout(this._socketTimeout||180000,()=>{n&&n.end(),o(new Error("Request timeout: "+e.options.path),null)}),i.on("error",function(e){o(e,null)}),t&&"string"==typeof t&&i.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){i.end()}),t.pipe(i)):i.end()}getAgent(e){let t=new URL(e);return this._getAgent(t)}_prepareRequest(e,t,r){const o={parsedUrl:t},i="https:"===o.parsedUrl.protocol;o.httpModule=i?a:n;const s=i?443:80;return o.options={},o.options.host=o.parsedUrl.hostname,o.options.port=o.parsedUrl.port?parseInt(o.parsedUrl.port):s,o.options.path=(o.parsedUrl.pathname||"")+(o.parsedUrl.search||""),o.options.method=e,o.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(o.options.headers["user-agent"]=this.userAgent),o.options.agent=this._getAgent(o.parsedUrl),this.handlers&&this.handlers.forEach(e=>{e.prepareRequest(o.options)}),o}_mergeHeaders(e){const t=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},t(this.requestOptions.headers),t(e)):t(e||{})}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=(e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}))(this.requestOptions.headers)[t]),e[t]||n||r}_getAgent(e){let t=o.getProxyUrl(e),s=t&&t.hostname,l;if(this._keepAlive&&s&&(l=this._proxyAgent),this._keepAlive&&!s&&(l=this._agent),!!l)return l;const d="https:"===e.protocol;let p=100;if(!this.requestOptions||(p=this.requestOptions.maxSockets||n.globalAgent.maxSockets),s){i||(i=r(34603));const e={maxSockets:p,keepAlive:this._keepAlive,proxy:{proxyAuth:`${t.username}:${t.password}`,host:t.hostname,port:t.port}};let n;const a="https:"===t.protocol;n=d?a?i.httpsOverHttps:i.httpsOverHttp:a?i.httpOverHttps:i.httpOverHttp,l=n(e),this._proxyAgent=l}if(this._keepAlive&&!l){const e={keepAlive:this._keepAlive,maxSockets:p};l=d?new a.Agent(e):new n.Agent(e),this._agent=l}return l||(l=d?a.globalAgent:n.globalAgent),d&&this._ignoreSslError&&(l.options=Object.assign(l.options||{},{rejectUnauthorized:!1})),l}_performExponentialBackoff(e){e=_Mathmin(10,e);const t=5*_Mathpow(2,e);return new Promise(e=>setTimeout(()=>e(),t))}static dateTimeDeserializer(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e}return t}async _processResponse(e,t){return new Promise(async(r,n)=>{const a=e.message.statusCode,o={statusCode:a,result:null,headers:{}};a==s.NotFound&&r(o);let i,l;try{l=await e.readBody(),l&&0{"use strict";function r(e){if(!e.hostname)return!1;let t=process.env.no_proxy||process.env.NO_PROXY||"";if(!t)return!1;let r;e.port?r=+e.port:"http:"===e.protocol?r=80:"https:"===e.protocol&&(r=443);let n=[e.hostname.toUpperCase()];"number"==typeof r&&n.push(`${n[0]}:${r}`);for(let r of t.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e))if(n.some(e=>e===r))return!0;return!1}Object.defineProperty(t,"__esModule",{value:!0}),t.getProxyUrl=function(e){let t="https:"===e.protocol,n;if(r(e))return n;let a;return a=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY,a&&(n=new URL(a)),n},t.checkBypass=r},22899:(e,t)=>{"use strict";async function r(e){const t=3===e.split(/\./).length?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:t}}function n(e){return 3===e.split(/\./).length?`bearer ${e}`:`token ${e}`}async function a(e,t,r,a){const o=t.endpoint.merge(r,a);return o.headers.authorization=n(e),t(o)}Object.defineProperty(t,"__esModule",{value:!0});t.createTokenAuth=function(e){if(!e)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if("string"!=typeof e)throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return e=e.replace(/^(token|bearer) +/i,""),Object.assign(r.bind(null,e),{hook:a.bind(null,e)})}},40812:(e,t,r)=>{"use strict";function n(e,t){if(null==e)return{};var r={},n=Object.keys(e),a,o;for(o=0;o{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),this.hook=t,!!e.authStrategy){const{authStrategy:r}=e,n=a(e,["authStrategy"]),o=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",o.hook),this.auth=o}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{const r=d.createTokenAuth(e.auth);t.wrap("request",r.hook),this.auth=r}const n=this.constructor;n.plugins.forEach(t=>{Object.assign(this,t(this,e))})}static defaults(e){const t=class extends this{constructor(...t){const r=t[0]||{};return"function"==typeof e?void super(e(r)):void super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static plugin(...e){var t;const r=this.plugins,n=(t=class extends this{},t.plugins=r.concat(e.filter(e=>!r.includes(e))),t);return n}}p.VERSION="3.2.4",p.plugins=[],t.Octokit=p},70412:(e,t,r)=>{"use strict";function n(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function a(e,t){const r=Object.assign({},e);return Object.keys(t).forEach(n=>{k.isPlainObject(t[n])?n in e?r[n]=a(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function o(e){for(const t in e)void 0===e[t]&&delete e[t];return e}function i(e,t,r){if("string"==typeof t){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else r=Object.assign({},t);r.headers=n(r.headers),o(r),o(r.headers);const i=a(e||{},r);return e&&e.mediaType.previews.length&&(i.mediaType.previews=e.mediaType.previews.filter(e=>!i.mediaType.previews.includes(e)).concat(i.mediaType.previews)),i.mediaType.previews=i.mediaType.previews.map(e=>e.replace(/-preview/,"")),i}function s(e,t){const r=/\?/.test(e)?"&":"?",n=Object.keys(t);return 0===n.length?e:e+r+n.map(e=>"q"===e?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${e}=${encodeURIComponent(t[e])}`).join("&")}function l(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function d(e){const t=e.match(_);return t?t.map(l).reduce((e,t)=>e.concat(t),[]):[]}function p(e,t){return Object.keys(e).filter(e=>!t.includes(e)).reduce((t,r)=>(t[r]=e[r],t),{})}function c(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(e){return /%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")),e}).join("")}function u(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function m(e,t,r){return t="+"===e||"#"===e?c(t):u(t),r?u(r)+"="+t:t}function g(e){return void 0!==e&&null!==e}function h(e){return";"===e||"&"===e||"?"===e}function f(e,t,r,n){var a=e[r],o=[];if(!(g(a)&&""!==a))";"===t?g(a)&&o.push(u(r)):""===a&&("&"===t||"?"===t)?o.push(u(r)+"="):""===a&&o.push("");else if("string"==typeof a||"number"==typeof a||"boolean"==typeof a)a=a.toString(),n&&"*"!==n&&(a=a.substring(0,parseInt(n,10))),o.push(m(t,a,h(t)?r:""));else if("*"===n)Array.isArray(a)?a.filter(g).forEach(function(e){o.push(m(t,e,h(t)?r:""))}):Object.keys(a).forEach(function(e){g(a[e])&&o.push(m(t,a[e],e))});else{const e=[];Array.isArray(a)?a.filter(g).forEach(function(r){e.push(m(t,r))}):Object.keys(a).forEach(function(r){g(a[r])&&(e.push(u(r)),e.push(m(t,a[r].toString())))}),h(t)?o.push(u(r)+"="+e.join(",")):0!==e.length&&o.push(e.join(","))}return o}function y(e){return{expand:b.bind(null,e)}}function b(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(e,n,a){if(n){let e="";const a=[];if(-1!==r.indexOf(n.charAt(0))&&(e=n.charAt(0),n=n.substr(1)),n.split(/,/g).forEach(function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);a.push(f(t,e,n[1],n[2]||n[3]))}),e&&"+"!==e){var o=",";return"?"===e?o="&":"#"!==e&&(o=e),(0===a.length?"":e)+a.join(o)}return a.join(",")}return c(a)})}function S(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a=p(e,["method","baseUrl","url","headers","request","mediaType"]),o;const i=d(r);r=y(r).expand(a),/^http/.test(r)||(r=e.baseUrl+r);const l=Object.keys(e).filter(e=>i.includes(e)).concat("baseUrl"),c=p(a,l),u=/application\/octet-stream/i.test(n.accept);if(!u&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),e.mediaType.previews.length)){const t=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=t.concat(e.mediaType.previews).map(t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`}).join(",")}return["GET","HEAD"].includes(t)?r=s(r,c):"data"in c?o=c.data:Object.keys(c).length?o=c:n["content-length"]=0,n["content-type"]||"undefined"==typeof o||(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&"undefined"==typeof o&&(o=""),Object.assign({method:t,url:r,headers:n},"undefined"==typeof o?null:{body:o},e.request?{request:e.request}:null)}function x(e,t,r){return S(i(e,t,r))}function v(e,t){const r=i(e,t),n=x.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:v.bind(null,r),merge:i.bind(null,r),parse:S})}Object.defineProperty(t,"__esModule",{value:!0});var k=r(80641),C=r(1857);const _=/\{[^}]+\}/g,w=`octokit-endpoint.js/${"6.0.10"} ${C.getUserAgent()}`,T=v(null,{method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":w},mediaType:{format:"",previews:[]}});t.endpoint=T},3584:(e,t,r)=>{"use strict";function n(e,t,r){if("string"==typeof t&&r&&"query"in r)return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`));const n="string"==typeof t?Object.assign({query:t},r):t,a=Object.keys(n).reduce((e,t)=>l.includes(t)?(e[t]=n[t],e):(e.variables||(e.variables={}),e.variables[t]=n[t],e),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return d.test(o)&&(a.url=o.replace(d,"/api/graphql")),e(a).then(e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers))t[r]=e.headers[r];throw new s(a,{headers:t,data:e.data})}return e.data.data})}function a(e,t){const r=e.defaults(t);return Object.assign((e,t)=>n(r,e,t),{defaults:a.bind(null,r),endpoint:o.request.endpoint})}Object.defineProperty(t,"__esModule",{value:!0});var o=r(48826),i=r(1857);class s extends Error{constructor(e,t){const r=t.data.errors[0].message;super(r),Object.assign(this,t.data),Object.assign(this,{headers:t.headers}),this.name="GraphqlError",this.request=e,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const l=["method","baseUrl","url","headers","request","query","mediaType"],d=/\/api\/v3\/?$/,p=a(o.request,{headers:{"user-agent":`octokit-graphql.js/${"4.5.8"} ${i.getUserAgent()}`},method:"POST",url:"/graphql"});t.graphql=p,t.withCustomRequest=function(e){return a(e,{method:"POST",url:"/graphql"})}},19227:(e,t)=>{"use strict";function r(e){const t="total_count"in e.data&&!("url"in e.data);if(!t)return e;const r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;const o=Object.keys(e.data)[0],i=e.data[o];return e.data=i,"undefined"!=typeof r&&(e.data.incomplete_results=r),"undefined"!=typeof n&&(e.data.repository_selection=n),e.data.total_count=a,e}function n(e,t,n){const a="function"==typeof t?t.endpoint(n):e.request.endpoint(t,n),o="function"==typeof t?t:e.request,i=a.method,s=a.headers;let l=a.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!l)return{done:!0};const e=await o({method:i,url:l,headers:s}),t=r(e);return l=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:t}}})}}function a(e,t,r,a){return"function"==typeof r&&(a=r,r=void 0),o(e,[],n(e,t,r)[Symbol.asyncIterator](),a)}function o(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let i=!1;return t=t.concat(n?n(a.value,function(){i=!0}):a.value.data),i?t:o(e,t,r,n)})}function i(e){return{paginate:Object.assign(a.bind(null,e),{iterator:n.bind(null,e)})}}Object.defineProperty(t,"__esModule",{value:!0});const s=Object.assign(a,{iterator:n});i.VERSION="2.6.2",t.composePaginateRest=s,t.paginateRest=i},5462:(e,t)=>{"use strict";function r(e,t){const r={};for(const[a,o]of Object.entries(t))for(const[t,i]of Object.entries(o)){const[o,s,l]=i,[d,p]=o.split(/ /),c=Object.assign({method:d,url:p},s);r[a]||(r[a]={});const u=r[a];if(l){u[t]=n(e,a,t,c,l);continue}u[t]=e.request.defaults(c)}return r}function n(e,t,r,n,a){function o(...n){let o=i.endpoint.merge(...n);if(a.mapToData)return o=Object.assign({},o,{data:o[a.mapToData],[a.mapToData]:void 0}),i(o);if(a.renamed){const[n,o]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${n}.${o}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){const o=i.endpoint.merge(...n);for(const[n,i]of Object.entries(a.renamedParameters))n in o&&(e.log.warn(`"${n}" parameter is deprecated for "octokit.${t}.${r}()". Use "${i}" instead`),i in o||(o[i]=o[n]),delete o[n]);return i(o)}return i(...n)}const i=e.request.defaults(n);return Object.assign(o,i)}function a(e){return r(e,o)}Object.defineProperty(t,"__esModule",{value:!0});const o={actions:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createContentAttachment:["POST /content_references/{content_reference_id}/attachments",{mediaType:{previews:["corsair"]}}],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct",{mediaType:{previews:["scarlet-witch"]}}],getConductCode:["GET /codes_of_conduct/{key}",{mediaType:{previews:["scarlet-witch"]}}],getForRepo:["GET /repos/{owner}/{repo}/community/code_of_conduct",{mediaType:{previews:["scarlet-witch"]}}]},emojis:{get:["GET /emojis"]},enterpriseAdmin:{disableSelectedOrganizationGithubActionsEnterprise:["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],enableSelectedOrganizationGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],getAllowedActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/selected-actions"],getGithubActionsPermissionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions"],listSelectedOrganizationsEnabledGithubActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/organizations"],setAllowedActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"],setGithubActionsPermissionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions"],setSelectedOrganizationsEnabledGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits"]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",{mediaType:{previews:["mockingbird"]}}],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import"],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors"],getImportStatus:["GET /repos/{owner}/{repo}/import"],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],listForAuthenticatedUser:["GET /user/migrations",{mediaType:{previews:["wyandotte"]}}],listForOrg:["GET /orgs/{org}/migrations",{mediaType:{previews:["wyandotte"]}}],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs"],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],updateImport:["PATCH /repos/{owner}/{repo}/import"]},orgs:{blockUser:["PUT /orgs/{org}/blocks/{username}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createWebhook:["POST /orgs/{org}/hooks"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],get:["GET /orgs/{org}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],createCard:["POST /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],createColumn:["POST /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],createForAuthenticatedUser:["POST /user/projects",{mediaType:{previews:["inertia"]}}],createForOrg:["POST /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],createForRepo:["POST /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],delete:["DELETE /projects/{project_id}",{mediaType:{previews:["inertia"]}}],deleteCard:["DELETE /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],deleteColumn:["DELETE /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],get:["GET /projects/{project_id}",{mediaType:{previews:["inertia"]}}],getCard:["GET /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],getColumn:["GET /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission",{mediaType:{previews:["inertia"]}}],listCards:["GET /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],listCollaborators:["GET /projects/{project_id}/collaborators",{mediaType:{previews:["inertia"]}}],listColumns:["GET /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],listForOrg:["GET /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],listForRepo:["GET /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],listForUser:["GET /users/{username}/projects",{mediaType:{previews:["inertia"]}}],moveCard:["POST /projects/columns/cards/{card_id}/moves",{mediaType:{previews:["inertia"]}}],moveColumn:["POST /projects/columns/{column_id}/moves",{mediaType:{previews:["inertia"]}}],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],update:["PATCH /projects/{project_id}",{mediaType:{previews:["inertia"]}}],updateCard:["PATCH /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],updateColumn:["PATCH /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch",{mediaType:{previews:["lydian"]}}],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteLegacy:["DELETE /reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}},{deprecated:"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy"}],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createPagesSite:["POST /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],createRelease:["POST /repos/{owner}/{repo}/releases"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate",{mediaType:{previews:["baptiste"]}}],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head",{mediaType:{previews:["groot"]}}],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",{mediaType:{previews:["groot"]}}],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits",{mediaType:{previews:["cloak"]}}],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics",{mediaType:{previews:["mercy"]}}],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects",{mediaType:{previews:["inertia"]}}],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys"],deleteEmailForAuthenticated:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};a.VERSION="4.4.1",t.restEndpointMethods=a},48364:(e,t,r)=>{"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}Object.defineProperty(t,"__esModule",{value:!0});var a=r(86649),o=n(r(86343));const i=o(e=>console.warn(e));class s extends Error{constructor(e,t,r){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t,Object.defineProperty(this,"code",{get(){return i(new a.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),this.headers=r.headers||{};const n=Object.assign({},r.request);r.request.headers.authorization&&(n.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),n.url=n.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=n}}t.RequestError=s},48826:(e,t,r)=>{"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}function a(e){return e.arrayBuffer()}function o(e){(d.isPlainObject(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let t={},r,n;const o=e.request&&e.request.fetch||p;return o(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then(o=>{n=o.url,r=o.status;for(const e of o.headers)t[e[0]]=e[1];if(204!==r&&205!==r){if("HEAD"===e.method){if(400>r)return;throw new c.RequestError(o.statusText,r,{headers:t,request:e})}if(304===r)throw new c.RequestError("Not modified",r,{headers:t,request:e});if(400<=r)return o.text().then(n=>{const a=new c.RequestError(n,r,{headers:t,request:e});try{let e=JSON.parse(a.message);Object.assign(a,e);let t=e.errors;a.message=a.message+": "+t.map(JSON.stringify).join(", ")}catch(t){}throw a});const n=o.headers.get("content-type");return /application\/json/.test(n)?o.json():!n||/^text\/|charset=utf-8$/.test(n)?o.text():a(o)}}).then(e=>({status:r,url:n,headers:t,data:e})).catch(r=>{if(r instanceof c.RequestError)throw r;throw new c.RequestError(r.message,500,{headers:t,request:e})})}function i(e,t){const r=e.defaults(t);return Object.assign(function(e,t){const n=r.merge(e,t);if(!n.request||!n.request.hook)return o(r.parse(n));const a=(e,t)=>o(r.parse(r.merge(e,t)));return Object.assign(a,{endpoint:r,defaults:i.bind(null,r)}),n.request.hook(a,n)},{endpoint:r,defaults:i.bind(null,r)})}Object.defineProperty(t,"__esModule",{value:!0});var s=r(70412),l=r(1857),d=r(80641),p=n(r(22434)),c=r(48364);const u=i(s.endpoint,{headers:{"user-agent":`octokit-request.js/${"5.4.12"} ${l.getUserAgent()}`}});t.request=u},67208:function(e,t,r){"use strict";function n(e){return!!e&&"function"==typeof e.addRequest}function a(e){return!!e&&"function"==typeof e.addRequest}function o(){const{stack:e}=new Error;return"string"==typeof e&&e.split("\n").some(e=>-1!==e.indexOf("(https.js:"))}function i(e,t){return new i.Agent(e,t)}var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const l=r(28614),d=s(r(2929));(function(e){class t extends l.EventEmitter{constructor(e,t){super(),this.promisifiedCallback=void 0;let r=t;"function"==typeof e?this.callback=e:e&&(r=e),this.timeout=null,r&&"number"==typeof r.timeout&&(this.timeout=r.timeout),this.options=r||{},this.maxFreeSockets=1,this.maxSockets=1,this.sockets=[],this.requests=[]}get defaultPort(){return"number"==typeof this.explicitDefaultPort?this.explicitDefaultPort:o()?443:80}set defaultPort(e){this.explicitDefaultPort=e}get protocol(){return"string"==typeof this.explicitProtocol?this.explicitProtocol:o()?"https:":"http:"}set protocol(e){this.explicitProtocol=e}callback(){throw new Error("\"agent-base\" has no default implementation, you must subclass and override `callback()`")}addRequest(e,t){function r(t){e._hadError||(e.emit("error",t),e._hadError=!0)}function i(e){c||(null!==u&&(clearTimeout(u),u=null),r(e))}function s(t){function o(){g(i,p)}let i;if(!c){if(null!=u&&(clearTimeout(u),u=null),n(t)||a(t))return void t.addRequest(e,p);if(t)return i=t,i.on("free",o),void e.onSocket(i);const s=new Error(`no Duplex stream was returned to agent-base for \`${e.method} ${e.path}\``);r(s)}}const l=Object.assign({},t);"boolean"!=typeof l.secureEndpoint&&(l.secureEndpoint=o()),null==l.host&&(l.host="localhost"),null==l.port&&(l.port=l.secureEndpoint?443:80);const p=Object.assign(Object.assign({},this.options),l);p.host&&p.path&&delete p.path,delete p.agent,delete p.hostname,delete p._defaultAgent,delete p.defaultPort,delete p.createConnection,e._last=!0,e.shouldKeepAlive=!1;let c=!1,u=null;const m=this.timeout,g=this.freeSocket;if("function"!=typeof this.callback)return void r(new Error("`callback` is not defined"));this.promisifiedCallback||(3<=this.callback.length?this.promisifiedCallback=d.default(this.callback):this.promisifiedCallback=this.callback),"number"==typeof m&&0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,r){return new Promise((n,a)=>{e.call(this,t,r,(e,t)=>{e?a(e):n(t)})})}}},2390:(e,t,r)=>{e.exports=r(64579)},38007:(e,t,r)=>{"use strict";function n(e,t,r){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=r,t.auth){var a=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(e){e.headers.host=e.host,n(e,t,e.href)}}var a=r(19520),o=r(29801),i=r(92074),s=r(87481),l=r(98605),d=r(57211),p=r(75955).http,c=r(75955).https,u=r(78835),m=r(78761),g=r(35131),h=r(3034),f=r(95261),y=/https:?/;e.exports=function(e){return new Promise(function(t,r){var b=function(e){t(e)},S=function(e){r(e)},x=e.data,v=e.headers;if(v["User-Agent"]||v["user-agent"]||(v["User-Agent"]="axios/"+g.version),x&&!a.isStream(x)){if(Buffer.isBuffer(x));else if(a.isArrayBuffer(x))x=Buffer.from(new Uint8Array(x));else if(a.isString(x))x=Buffer.from(x,"utf-8");else return S(h("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));v["Content-Length"]=x.length}var k;if(e.auth){var C=e.auth.username||"",_=e.auth.password||"";k=C+":"+_}var w=i(e.baseURL,e.url),T=u.parse(w),E=T.protocol||"http:";if(!k&&T.auth){var A=T.auth.split(":"),O=A[0]||"",P=A[1]||"";k=O+":"+P}k&&delete v.Authorization;var L=y.test(E),z=L?e.httpsAgent:e.httpAgent,R={path:s(T.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:v,agent:z,agents:{http:e.httpAgent,https:e.httpsAgent},auth:k};e.socketPath?R.socketPath=e.socketPath:(R.hostname=T.hostname,R.port=T.port);var I=e.proxy;if(!I&&!1!==I){var M=E.slice(0,-1)+"_proxy",W=process.env[M]||process.env[M.toUpperCase()];if(W){var q=u.parse(W),B=process.env.no_proxy||process.env.NO_PROXY,N=!0;if(B){var D=B.split(",").map(function(e){return e.trim()});N=!D.some(function(e){return!!e&&("*"===e||"."===e[0]&&T.hostname.substr(T.hostname.length-e.length)===e||T.hostname===e)})}if(N&&(I={host:q.hostname,port:q.port,protocol:q.protocol},q.auth)){var F=q.auth.split(":");I.auth={username:F[0],password:F[1]}}}}I&&(R.headers.host=T.hostname+(T.port?":"+T.port:""),n(R,I,E+"//"+T.hostname+(T.port?":"+T.port:"")+R.path));var G=L&&(!I||y.test(I.protocol)),U;e.transport?U=e.transport:0===e.maxRedirects?U=G?d:l:(e.maxRedirects&&(R.maxRedirects=e.maxRedirects),U=G?c:p),-1e.maxContentLength&&(r.destroy(),S(h("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,n)))}),r.on("error",function(t){j.aborted||S(f(t,e,null,n))}),r.on("end",function(){var t=Buffer.concat(s);"arraybuffer"!==e.responseType&&(t=t.toString(e.responseEncoding),(!e.responseEncoding||"utf8"===e.responseEncoding)&&(t=a.stripBOM(t))),i.data=t,o(b,S,i)})}}});j.on("error",function(t){j.aborted&&"ERR_FR_TOO_MANY_REDIRECTS"!==t.code||S(f(t,e,null,j))}),e.timeout&&j.setTimeout(e.timeout,function(){j.abort(),S(h("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",j))}),e.cancelToken&&e.cancelToken.promise.then(function(e){j.aborted||(j.abort(),S(e))}),a.isStream(x)?x.on("error",function(t){S(f(t,e,null,j))}).pipe(j):j.end(x)})}},63500:(e,t,r)=>{"use strict";var n=r(19520),a=r(29801),o=r(47536),i=r(87481),s=r(92074),l=r(77912),d=r(11682),p=r(3034);e.exports=function(t){return new Promise(function(e,r){var c=t.data,u=t.headers;n.isFormData(c)&&delete u["Content-Type"];var m=new XMLHttpRequest;if(t.auth){var g=t.auth.username||"",h=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";u.Authorization="Basic "+btoa(g+":"+h)}var f=s(t.baseURL,t.url);if(m.open(t.method.toUpperCase(),i(f,t.params,t.paramsSerializer),!0),m.timeout=t.timeout,m.onreadystatechange=function(){if(m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in m?l(m.getAllResponseHeaders()):null,o=t.responseType&&"text"!==t.responseType?m.response:m.responseText,i={data:o,status:m.status,statusText:m.statusText,headers:n,config:t,request:m};a(e,r,i),m=null}},m.onabort=function(){m&&(r(p("Request aborted",t,"ECONNABORTED",m)),m=null)},m.onerror=function(){r(p("Network Error",t,null,m)),m=null},m.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),r(p(e,t,"ECONNABORTED",m)),m=null},n.isStandardBrowserEnv()){var y=(t.withCredentials||d(f))&&t.xsrfCookieName?o.read(t.xsrfCookieName):void 0;y&&(u[t.xsrfHeaderName]=y)}if("setRequestHeader"in m&&n.forEach(u,function(e,t){"undefined"==typeof c&&"content-type"===t.toLowerCase()?delete u[t]:m.setRequestHeader(t,e)}),n.isUndefined(t.withCredentials)||(m.withCredentials=!!t.withCredentials),t.responseType)try{m.responseType=t.responseType}catch(r){if("json"!==t.responseType)throw r}"function"==typeof t.onDownloadProgress&&m.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(e){m&&(m.abort(),r(e),m=null)}),c||(c=null),m.send(c)})}},64579:(e,t,r)=>{"use strict";function n(e){var t=new i(e),r=o(i.prototype.request,t);return a.extend(r,i.prototype,t),a.extend(r,t),r}var a=r(19520),o=r(69339),i=r(10353),s=r(59807),l=r(6769),d=n(l);d.Axios=i,d.create=function(e){return n(s(d.defaults,e))},d.Cancel=r(56305),d.CancelToken=r(99576),d.isCancel=r(57822),d.all=function(e){return Promise.all(e)},d.spread=r(83202),d.isAxiosError=r(34722),e.exports=d,e.exports.default=d},56305:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},99576:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var r=this;e(function(e){r.reason||(r.reason=new a(e),t(r.reason))})}var a=r(56305);n.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},n.source=function(){var e=new n(function(e){t=e}),t;return{token:e,cancel:t}},e.exports=n},57822:e=>{"use strict";e.exports=function(e){return!!(e&&e.__CANCEL__)}},10353:(e,t,r)=>{"use strict";function n(e){this.defaults=e,this.interceptors={request:new i,response:new i}}var a=r(19520),o=r(87481),i=r(88030),s=r(18944),l=r(59807);n.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=l(this.defaults,e),e.method=e.method?e.method.toLowerCase():this.defaults.method?this.defaults.method.toLowerCase():"get";var t=[s,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)r=r.then(t.shift(),t.shift());return r},n.prototype.getUri=function(e){return e=l(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},a.forEach(["delete","get","head","options"],function(e){n.prototype[e]=function(t,r){return this.request(l(r||{},{method:e,url:t,data:(r||{}).data}))}}),a.forEach(["post","put","patch"],function(e){n.prototype[e]=function(t,r,n){return this.request(l(n||{},{method:e,url:t,data:r}))}}),e.exports=n},88030:(e,t,r)=>{"use strict";function n(){this.handlers=[]}var a=r(19520);n.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},n.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},n.prototype.forEach=function(e){a.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=n},92074:(e,t,r)=>{"use strict";var n=r(55470),a=r(65824);e.exports=function(e,t){return e&&!n(t)?a(e,t):t}},3034:(e,t,r)=>{"use strict";var n=r(95261);e.exports=function(e,t,r,a,o){var i=new Error(e);return n(i,t,r,a,o)}},18944:(e,t,r)=>{"use strict";function n(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var a=r(19520),o=r(62479),i=r(57822),s=r(6769);e.exports=function(e){n(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=a.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),a.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=e.adapter||s.adapter;return t(e).then(function(t){return n(e),t.data=o(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(n(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},95261:e=>{"use strict";e.exports=function(e,t,r,n,a){return e.config=t,r&&(e.code=r),e.request=n,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},59807:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t){function r(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function a(a){n.isUndefined(t[a])?!n.isUndefined(e[a])&&(o[a]=r(void 0,e[a])):o[a]=r(e[a],t[a])}t=t||{};var o={},i=["url","method","data"],s=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],d=["validateStatus"];n.forEach(i,function(e){n.isUndefined(t[e])||(o[e]=r(void 0,t[e]))}),n.forEach(s,a),n.forEach(l,function(a){n.isUndefined(t[a])?!n.isUndefined(e[a])&&(o[a]=r(void 0,e[a])):o[a]=r(void 0,t[a])}),n.forEach(d,function(n){n in t?o[n]=r(e[n],t[n]):n in e&&(o[n]=r(void 0,e[n]))});var p=i.concat(s).concat(l).concat(d),c=Object.keys(e).concat(Object.keys(t)).filter(function(e){return-1===p.indexOf(e)});return n.forEach(c,a),o}},29801:(e,t,r)=>{"use strict";var n=r(3034);e.exports=function(e,t,r){var a=r.config.validateStatus;r.status&&a&&!a(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},62479:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t,r){return n.forEach(r,function(r){e=r(e,t)}),e}},6769:(e,t,r)=>{"use strict";function n(e,t){!a.isUndefined(e)&&a.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var a=r(19520),o=r(53293),i={"Content-Type":"application/x-www-form-urlencoded"},s={adapter:function(){var e;return"undefined"==typeof XMLHttpRequest?"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)&&(e=r(38007)):e=r(63500),e}(),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),a.isFormData(e)||a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)?e:a.isArrayBufferView(e)?e.buffer:a.isURLSearchParams(e)?(n(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):a.isObject(e)?(n(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return 200<=e&&300>e}};s.headers={common:{Accept:"application/json, text/plain, */*"}},a.forEach(["delete","get","head"],function(e){s.headers[e]={}}),a.forEach(["post","put","patch"],function(e){s.headers[e]=a.merge(i)}),e.exports=s},69339:e=>{"use strict";e.exports=function(e,t){return function(){for(var r=Array(arguments.length),n=0;n{"use strict";function n(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var a=r(19520);e.exports=function(e,t,r){if(!t)return e;var o;if(r)o=r(t);else if(a.isURLSearchParams(t))o=t.toString();else{var i=[];a.forEach(t,function(e,t){null===e||"undefined"==typeof e||(a.isArray(e)?t+="[]":e=[e],a.forEach(e,function(e){a.isDate(e)?e=e.toISOString():a.isObject(e)&&(e=JSON.stringify(e)),i.push(n(t)+"="+n(e))}))}),o=i.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},65824:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},47536:(e,t,r)=>{"use strict";var n=r(19520);e.exports=n.isStandardBrowserEnv()?function(){return{write:function(e,t,r,a,o,i){var s=[];s.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&s.push("expires="+new Date(r).toGMTString()),n.isString(a)&&s.push("path="+a),n.isString(o)&&s.push("domain="+o),!0===i&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},55470:e=>{"use strict";e.exports=function(e){return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},34722:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},11682:(e,t,r)=>{"use strict";var n=r(19520);e.exports=n.isStandardBrowserEnv()?function(){function e(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),a;return a=e(window.location.href),function(t){var r=n.isString(t)?e(t):t;return r.protocol===a.protocol&&r.host===a.host}}():function(){return function(){return!0}}()},53293:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t){n.forEach(e,function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])})}},77912:(e,t,r)=>{"use strict";var n=r(19520),a=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t={},r,o,s;return e?(n.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),r=n.trim(e.substr(0,s)).toLowerCase(),o=n.trim(e.substr(s+1)),r){if(t[r]&&0<=a.indexOf(r))return;t[r]="set-cookie"===r?(t[r]?t[r]:[]).concat([o]):t[r]?t[r]+", "+o:o}}),t):t}},83202:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},19520:(e,t,r)=>{"use strict";function n(e){return"[object Array]"===u.call(e)}function a(e){return"undefined"==typeof e}function o(e){return null!==e&&"object"==typeof e}function i(e){if("[object Object]"!==u.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function s(e){return"[object Function]"===u.call(e)}function d(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),n(e))for(var r=0,a=e.length;r{"use strict";function t(e,t,i){e instanceof RegExp&&(e=n(e,i)),t instanceof RegExp&&(t=n(t,i));var s=o(e,t,i);return s&&{start:s[0],end:s[1],pre:i.slice(0,s[0]),body:i.slice(s[0]+e.length,s[1]),post:i.slice(s[1]+t.length)}}function n(e,t){var r=t.match(e);return r?r[0]:null}function o(e,t,r){var n=r.indexOf(e),a=r.indexOf(t,n+1),o=n,s,l,d,p,c;if(0<=n&&0{function n(e,t,r){var n=p(l,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(n){var a=r?[t,n,r]:[t,n];e[n]=e.api[n]=p(s,null).apply(null,a)})}function a(){var e={registry:{}},t=i.bind(null,e);return n(t,e),t}function o(){return c||(console.warn("[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4"),c=!0),a()}var i=r(27798),s=r(82446),l=r(16436),d=Function.bind,p=d.bind(d),c=!1;o.Singular=function(){var e={registry:{}},t=i.bind(null,e,"h");return n(t,e,"h"),t}.bind(),o.Collection=a.bind(),e.exports=o,e.exports.Hook=o,e.exports.Singular=o.Singular,e.exports.Collection=o.Collection},82446:e=>{e.exports=function(e,t,r,n){var a=n;e.registry[r]||(e.registry[r]=[]),"before"===t&&(n=function(e,t){return Promise.resolve().then(a.bind(null,t)).then(e.bind(null,t))}),"after"===t&&(n=function(e,t){var r;return Promise.resolve().then(e.bind(null,t)).then(function(e){return r=e,a(r,t)}).then(function(){return r})}),"error"===t&&(n=function(e,t){return Promise.resolve().then(e.bind(null,t)).catch(function(e){return a(e,t)})}),e.registry[r].push({hook:n,orig:a})}},27798:e=>{function t(e,r,n,a){if("function"!=typeof n)throw new Error("method for before hook must be a function");return a||(a={}),Array.isArray(r)?r.reverse().reduce(function(r,n){return t.bind(null,e,n,r,a)},n)():Promise.resolve().then(function(){return e.registry[r]?e.registry[r].reduce(function(e,t){return t.hook.bind(null,e,a)},n)():n(a)})}e.exports=t},16436:e=>{e.exports=function(e,t,r){if(e.registry[t]){var n=e.registry[t].map(function(e){return e.orig}).indexOf(r);-1===n||e.registry[t].splice(n,1)}}},66616:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void n._init.call(this,e):new n(e)}const{Buffer:a}=r(64293),o=Symbol.for("BufferList");n._init=function(e){Object.defineProperty(this,o,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)},n.prototype._new=function(e){return new n(e)},n.prototype._offset=function(e){if(0===e)return[0,0];let t=0;for(let r=0;rthis.length||0>e)){const t=this._offset(e);return this._bufs[t[0]][t[1]]}},n.prototype.slice=function(e,t){return"number"==typeof e&&0>e&&(e+=this.length),"number"==typeof t&&0>t&&(t+=this.length),this.copy(null,0,e,t)},n.prototype.copy=function e(t,r,n,o){if(("number"!=typeof n||0>n)&&(n=0),("number"!=typeof o||o>this.length)&&(o=this.length),n>=this.length)return t||a.alloc(0);if(0>=o)return t||a.alloc(0);const e=!!t,s=this._offset(n),l=o-n;let d=l,p=e&&r||0,c=s[1];if(0===n&&o===this.length){if(!e)return 1===this._bufs.length?this._bufs[0]:a.concat(this._bufs,this.length);for(let e=0;er)this._bufs[e].copy(t,p,c),p+=r;else{this._bufs[e].copy(t,p,c,c+d),p+=r;break}d-=r,c&&(c=0)}return t.length>p?t.slice(0,p):t},n.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"==typeof t?t:this.length,0>e&&(e+=this.length),0>t&&(t+=this.length),e===t)return this._new();const r=this._offset(e),n=this._offset(t),a=this._bufs.slice(r[0],n[0]+1);return 0===n[1]?a.pop():a[a.length-1]=a[a.length-1].slice(0,n[1]),0!==r[1]&&(a[0]=a[0].slice(r[1])),this._new(a)},n.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},n.prototype.consume=function(e){var t=Number.isNaN,r=Math.trunc;if(e=r(e),t(e)||0>=e)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this},n.prototype.duplicate=function(){const e=this._new();for(let t=0;tt&&(t=this.length+t),0>t&&(t=0),0===e.length)return t>this.length?this.length:t;const n=this._offset(t);let o=n[0],i=n[1];for(;o=e.length){const r=t.indexOf(e,i);if(-1!==r)return this._reverseOffset([o,r]);i=t.length-e.length+1}else{const t=this._reverseOffset([o,i]);if(this._match(t,e))return t;i++}}i=0}return-1},n.prototype._match=function(e,t){if(this.length-e{"use strict";function n(e){if(!(this instanceof n))return new n(e);if("function"==typeof e){this._callback=e;const t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",function(e){e.on("error",t)}),this.on("unpipe",function(e){e.removeListener("error",t)}),e=null}i._init.call(this,e),a.call(this)}const a=r(30009).Duplex,o=r(94835),i=r(66616);o(n,a),Object.assign(n.prototype,i.prototype),n.prototype._new=function(e){return new n(e)},n.prototype._write=function(e,t,r){this._appendBuffer(e),"function"==typeof r&&r()},n.prototype._read=function(e){return this.length?void(e=_Mathmin(e,this.length),this.push(this.slice(0,e)),this.consume(e)):this.push(null)},n.prototype.end=function(e){a.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},n.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)},n.prototype._isBufferList=function(e){return e instanceof n||e instanceof i||n.isBufferList(e)},n.isBufferList=i.isBufferList,e.exports=n,e.exports.BufferListStream=n,e.exports.BufferList=i},94835:(t,r,n)=>{try{var a=n(31669);if("function"!=typeof a.inherits)throw"";t.exports=a.inherits}catch(r){t.exports=n(72739)}},72739:e=>{e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},71947:e=>{"use strict";function t(e,t,r){function n(e,r,n){return"string"==typeof t?t:t(e,r,n)}r||(r=Error);class a extends r{constructor(e,t,r){super(n(e,t,r))}}a.prototype.name=r.name,a.prototype.code=e,i[e]=a}function r(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>e+""),2r?0:+r,t.length)===t}function a(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function o(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}const i={};t("ERR_INVALID_OPT_VALUE",function(e,t){return"The value \""+t+"\" is invalid for option \""+e+"\""},TypeError),t("ERR_INVALID_ARG_TYPE",function(e,t,i){let s;"string"==typeof t&&n(t,"not ")?(s="must not be",t=t.replace(/^not /,"")):s="must be";let l;if(a(e," argument"))l=`The ${e} ${s} ${r(t,"type")}`;else{const n=o(e,".")?"property":"argument";l=`The "${e}" ${n} ${s} ${r(t,"type")}`}return l+=`. Received type ${typeof i}`,l},TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=i},18084:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void(s.call(this,e),l.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",a)))):new n(e)}function a(){this._writableState.ended||process.nextTick(o,this)}function o(e){e.end()}var i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=n;var s=r(11864),l=r(92042);r(94835)(n,s);for(var d=i(l.prototype),p=0,c;p{"use strict";function n(e){return this instanceof n?void a.call(this,e):new n(e)}e.exports=n;var a=r(57173);r(94835)(n,a),n.prototype._transform=function(e,t,r){r(null,e)}},11864:(e,t,r)=>{"use strict";function n(e){return z.from(e)}function a(e){return z.isBuffer(e)||e instanceof R}function o(e,t,r){return"function"==typeof e.prependListener?e.prependListener(t,r):void(e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r))}function i(e,t,n){A=A||r(18084),e=e||{},"boolean"!=typeof n&&(n=t instanceof A),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=N(this,e,"readableHighWaterMark",n),this.buffer=new W,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(!H&&(H=r(84882).s),this.decoder=new H(e.encoding),this.encoding=e.encoding)}function s(e){if(A=A||r(18084),!(this instanceof s))return new s(e);var t=this instanceof A;this._readableState=new i(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),L.call(this)}function l(e,t,r,a,o){M("readableAddChunk",t);var i=e._readableState;if(null===t)i.reading=!1,m(e,i);else{var s;if(o||(s=p(i,t)),s)Y(e,s);else if(!(i.objectMode||t&&0>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function u(e,t){return 0>=e||0===t.length&&t.ended?0:t.objectMode?1:e===e?(e>t.highWaterMark&&(t.highWaterMark=c(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0)):t.flowing&&t.length?t.buffer.head.data.length:t.length}function m(e,t){if(M("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?g(e):(t.needReadable=!1,!t.emittedReadable&&(t.emittedReadable=!0,h(e)))}}function g(e){var t=e._readableState;M("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(M("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;M("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,C(e)}function f(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(y,e,t))}function y(e,t){for(;!t.reading&&!t.ended&&(t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function w(e){var t=e._readableState;M("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(M("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function E(e,t){for(var r=0,n=e.length;r=t.highWaterMark)||t.ended))return M("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?w(this):g(this),null;if(e=u(e,t),0===e&&t.ended)return 0===t.length&&w(this),null;var a=t.needReadable;M("need readable",a),(0===t.length||t.length-e{"use strict";function n(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new d);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){w(t,e)}}function a(e){return O.from(e)}function o(e){return O.isBuffer(e)||e instanceof P}function i(){}function s(e,t,a){T=T||r(18084),e=e||{},"boolean"!=typeof a&&(a=t instanceof T),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=R(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){f(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function l(e){T=T||r(18084);var t=this instanceof T;return t||j.call(l,this)?void(this._writableState=new s(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),A.call(this)):new l(e)}function d(e,t){var r=new F;U(e,r),process.nextTick(t,r)}function p(e,t,r,n){var a;return null===r?a=new D:"string"!=typeof r&&!t.objectMode&&(a=new M("chunk",["string","Buffer"],r)),!a||(U(e,a),process.nextTick(n,a),!1)}function c(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=O.from(t,r)),t}function u(e,t,r,n,a,o){if(!r){var i=c(t,n,a);n!==i&&(r=!0,a="buffer",n=i)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){return{value:e,done:t}}function o(e){var t=e[d];if(null!==t){var r=e[h].read();null!==r&&(e[m]=null,e[d]=null,e[p]=null,t(a(r,!1)))}}function i(e){process.nextTick(o,e)}function s(e,t){return function(r,n){e.then(function(){return t[u]?void r(a(void 0,!0)):void t[g](r,n)},n)}}var l=r(26052),d=Symbol("lastResolve"),p=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),m=Symbol("lastPromise"),g=Symbol("handlePromise"),h=Symbol("stream"),f=Object.getPrototypeOf(function(){}),y=Object.setPrototypeOf((b={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(a(void 0,!0));if(this[h].destroyed)return new Promise(function(t,r){process.nextTick(function(){e[c]?r(e[c]):t(a(void 0,!0))})});var r=this[m],n;if(r)n=new Promise(s(r,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(a(o,!1));n=new Promise(this[g])}return this[m]=n,n}},n(b,Symbol.asyncIterator,function(){return this}),n(b,"return",function(){var e=this;return new Promise(function(t,r){e[h].destroy(null,function(e){return e?void r(e):void t(a(void 0,!0))})})}),b),f),b;e.exports=function(e){var t=Object.create(y,(r={},n(r,h,{value:e,writable:!0}),n(r,d,{value:null,writable:!0}),n(r,p,{value:null,writable:!0}),n(r,c,{value:null,writable:!0}),n(r,u,{value:e._readableState.endEmitted,writable:!0}),n(r,g,{value:function(e,r){var n=t[h].read();n?(t[m]=null,t[d]=null,t[p]=null,e(a(n,!1))):(t[d]=e,t[p]=r)},writable:!0}),r)),r;return t[m]=null,l(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var r=t[p];return null!==r&&(t[m]=null,t[d]=null,t[p]=null,r(e)),void(t[c]=e)}var n=t[d];null!==n&&(t[m]=null,t[d]=null,t[p]=null,n(a(void 0,!0))),t[u]=!0}),e.on("readable",i.bind(null,t)),t}},38568:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1,r;t>>0),r=this.head,n=0;r;)d(r.data,t,n),n+=r.data.length,r=r.next;return t}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(a+=i===o.length?o:o.slice(0,e),e-=i,0===e){i===o.length?(++r,this.head=t.next?t.next:this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,a}},{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),r=this.head,a=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),e-=i,0===e){i===o.length?(++a,this.head=r.next?r.next:this.tail=null):(this.head=r,r.data=o.slice(i));break}++a}return this.length-=a,t}},{key:h,value:function(e,t){return g(this,a({},t,{depth:0,customInspect:!1}))}}]),e}()},22126:e=>{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var o=this,i=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return i||s?(a?a(e):e&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,process.nextTick(n,this,e)):process.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!a&&e?o._writableState?o._writableState.errorEmitted?process.nextTick(r,o):(o._writableState.errorEmitted=!0,process.nextTick(t,o,e)):process.nextTick(t,o,e):a?(process.nextTick(r,o),a(e)):process.nextTick(r,o)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},26052:(e,t,r)=>{"use strict";function n(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=Array(r),a=0;a{"use strict";function n(e,t,r,n,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function a(e){return function(){var t=this,r=arguments;return new Promise(function(a,o){function i(e){n(l,a,o,i,s,"next",e)}function s(e){n(l,a,o,i,s,"throw",e)}var l=e.apply(t,r);i(void 0)})}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1,r;t{"use strict";function n(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}function a(e){if(e)throw e}function o(e){return e.setHeader&&"function"==typeof e.abort}function s(e,t,a,i){i=n(i);var s=!1;e.on("close",function(){s=!0}),void 0===g&&(g=r(26052)),g(e,{readable:t,writable:a},function(e){return e?i(e):void(s=!0,i())});var l=!1;return function(t){if(!s)return l?void 0:(l=!0,o(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new m("pipe")))}}function l(e){e()}function d(e,t){return e.pipe(t)}function p(e){return e.length?"function"==typeof e[e.length-1]?e.pop():a:a}var c=r(71947).q,u=c.ERR_MISSING_ARGS,m=c.ERR_STREAM_DESTROYED,g;e.exports=function(){for(var e=arguments.length,t=Array(e),r=0;rt.length)throw new u("streams");var a=t.map(function(e,r){var i=r{"use strict";function n(e,t,r){return null==e.highWaterMark?t?e[r]:null:e.highWaterMark}var a=r(71947).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,o){var i=n(t,o,r);if(null!=i){if(!(isFinite(i)&&_Mathfloor(i)===i)||0>i){var s=o?r:"highWaterMark";throw new a(s,i)}return _Mathfloor(i)}return e.objectMode?16:16384}}},47640:(e,t,r)=>{e.exports=r(92413)},30009:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):(t=e.exports=r(11864),t.Stream=n||t,t.Readable=t,t.Writable=r(92042),t.Duplex=r(18084),t.Transform=r(57173),t.PassThrough=r(11798),t.finished=r(26052),t.pipeline=r(14705))},27510:e=>{e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},63726:(e,t,r)=>{function a(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function o(e){return e.split("\\\\").join(y).split("\\{").join(b).split("\\}").join(S).split("\\,").join(x).split("\\.").join(v)}function i(e){return e.split(y).join("\\").split(b).join("{").split(S).join("}").split(x).join(",").split(v).join(".")}function s(e){if(!e)return[""];var t=[],r=f("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,i=n.split(",");i[i.length-1]+="{"+a+"}";var l=s(o);return o.length&&(i[i.length-1]+=l.shift(),i.push.apply(i,l)),t.push.apply(t,i),t}function l(e){return"{"+e+"}"}function d(e){return /^-?0\d/.test(e)}function p(e,t){return e<=t}function u(e,t){return e>=t}function g(e,t){var r=[],o=f("{","}",e);if(!o||/\$$/.test(o.pre))return[e];var m=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(o.body),b=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(o.body),v=m||b,C=0<=o.body.indexOf(",");if(!v&&!C)return o.post.match(/,.*\}/)?(e=o.pre+"{"+o.body+S+o.post,g(e)):[e];var _;if(v)_=o.body.split(/\.\./);else if(_=s(o.body),1===_.length&&(_=g(_[0],!1).map(l),1===_.length)){var w=o.post.length?g(o.post,!1):[""];return w.map(function(e){return o.pre+_[0]+e})}var T=o.pre,w=o.post.length?g(o.post,!1):[""],E;if(v){var A=a(_[0]),x=a(_[1]),y=_Mathmax(_[0].length,_[1].length),O=3==_.length?_Mathabs(a(_[2])):1,P=p;xR?"-"+W+I.slice(1):W+I}}E.push(I)}}else E=h(_,function(e){return g(e,!1)});for(var z=0;z{function a(e){if(l.isBuffer(e))return e;var t="function"==typeof l.alloc&&"function"==typeof l.from;if("number"==typeof e)return t?l.alloc(e):new l(e);if("string"==typeof e)return t?l.from(e):new l(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function o(e){var t=a(4);return t.writeInt32BE(e,0),t}function i(e,t){e=a(e),l.isBuffer(t)&&(t=t.readUInt32BE(0));for(var r=-1^~~t,o=0;o>>8;return-1^r}function s(){return o(i.apply(null,arguments))}var l=r(64293).Buffer,d=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(d=new Int32Array(d)),s.signed=function(){return i.apply(null,arguments)},s.unsigned=function(){return i.apply(null,arguments)>>>0},e.exports=s},95418:(e,t,r)=>{"use strict";var n=r(24888),a=r(37721),o=a(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&-1{"use strict";var n=r(10373),a=r(24888),o=a("%Function.prototype.apply%"),i=a("%Function.prototype.call%"),s=a("%Reflect.apply%",!0)||n.call(i,o),l=a("%Object.defineProperty%",!0);if(l)try{l({},"a",{value:1})}catch(t){l=null}e.exports=function(){return s(n,i,arguments)};var d=function(){return s(n,o,arguments)};l?l(e.exports,"apply",{value:d}):e.exports.apply=d},28729:(e,t,r)=>{"use strict";const n=r(35747),a=r(85622),o=n.lchown?"lchown":"chown",i=n.lchownSync?"lchownSync":"chownSync",s=n.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),l=(e,t,r)=>{try{return n[i](e,t,r)}catch(e){if("ENOENT"!==e.code)throw e}},d=(e,t,r)=>{try{return n.chownSync(e,t,r)}catch(e){if("ENOENT"!==e.code)throw e}},p=s?(e,t,r,a)=>o=>{o&&"EISDIR"===o.code?n.chown(e,t,r,a):a(o)}:(e,t,r,n)=>n,c=s?(e,t,r)=>{try{return l(e,t,r)}catch(n){if("EISDIR"!==n.code)throw n;d(e,t,r)}}:(e,t,r)=>l(e,t,r),u=process.version;let m=(e,t,r)=>n.readdir(e,t,r),g=(e,t)=>n.readdirSync(e,t);/^v4\./.test(u)&&(m=(e,t,r)=>n.readdir(e,r));const h=(e,t,r,a)=>{n[o](e,t,r,p(e,t,r,e=>{a(e&&"ENOENT"!==e.code?e:null)}))},f=(e,t,r,o,i)=>{if("string"==typeof t)return n.lstat(a.resolve(e,t),(n,a)=>n?i("ENOENT"===n.code?null:n):void(a.name=t,f(e,a,r,o,i)));if(t.isDirectory())y(a.resolve(e,t.name),r,o,n=>{if(n)return i(n);const s=a.resolve(e,t.name);h(s,r,o,i)});else{const n=a.resolve(e,t.name);h(n,r,o,i)}},y=(e,t,r,n)=>{m(e,{withFileTypes:!0},(a,o)=>{if(a){if("ENOENT"===a.code)return n();if("ENOTDIR"!==a.code&&"ENOTSUP"!==a.code)return n(a)}if(a||!o.length)return h(e,t,r,n);let i=o.length,s=null;const l=a=>s?void 0:a?n(s=a):0==--i?h(e,t,r,n):void 0;o.forEach(n=>f(e,n,t,r,l))})},b=(e,t,r,o)=>{if("string"==typeof t)try{const r=n.lstatSync(a.resolve(e,t));r.name=t,t=r}catch(e){if("ENOENT"===e.code)return;throw e}t.isDirectory()&&S(a.resolve(e,t.name),r,o),c(a.resolve(e,t.name),r,o)},S=(e,t,r)=>{let n;try{n=g(e,{withFileTypes:!0})}catch(n){if("ENOENT"===n.code)return;if("ENOTDIR"===n.code||"ENOTSUP"===n.code)return c(e,t,r);throw n}return n&&n.length&&n.forEach(n=>b(e,n,t,r)),c(e,t,r)};e.exports=y,y.sync=S},16755:e=>{e.exports=function(e,r){for(var n=[],a=0,o;a{"use strict";function t(e){if(!e)throw new TypeError("Expected implementation");var t=l.filter(function(t){return"function"!=typeof e[t]});if(t.length){var r="("+t.join(", ")+")";throw new Error("Expected functions "+r+" to be implemented")}}function r(e,t){for(var r=t.length,n,a,o;-1<--r;){for(n=a=t[r],t[r]=null,o=!0;a;){if(-1{"use strict";function n(e){return function(t,r,n){return r=r||{},r.adapter=r.adapter||l,e(t,r,n)}}function a(e){return function(t,r,n){return n=n||{},n.adapter=n.adapter||l,"function"!=typeof t&&(t=u(t,n,r)),t.shouldTestNextSiblings&&(r=i(n&&n.context||r,n.adapter)),r=Array.isArray(r)?n.adapter.removeSubsets(r):n.adapter.getChildren(r),e(t,r,n)}}function o(e,t){var r=t.getSiblings(e);if(!Array.isArray(r))return[];for(r=r.slice(0);r.shift()!==e;);return r}function i(e,t){Array.isArray(e)||(e=[e]);for(var r=e.slice(0),n=0,a=e.length,s;n{var n=r(27510).falseFunc,a=/[-[\]{}()*+?.,\\^$|#\s]/g,o={__proto__:null,equals:function(e,t,r){var n=t.name,a=t.value,o=r.adapter;return t.ignoreCase?(a=a.toLowerCase(),function(t){var r=o.getAttributeValue(t,n);return null!=r&&r.toLowerCase()===a&&e(t)}):function(t){return o.getAttributeValue(t,n)===a&&e(t)}},hyphen:function(e,t,r){var n=t.name,a=t.value,o=a.length,i=r.adapter;return t.ignoreCase?(a=a.toLowerCase(),function(t){var r=i.getAttributeValue(t,n);return null!=r&&(r.length===o||"-"===r.charAt(o))&&r.substr(0,o).toLowerCase()===a&&e(t)}):function(t){var r=i.getAttributeValue(t,n);return null!=r&&r.substr(0,o)===a&&(r.length===o||"-"===r.charAt(o))&&e(t)}},element:function(e,t,r){var o=t.name,i=t.value,s=r.adapter;if(/\s/.test(i))return n;i=i.replace(a,"\\$&");var l="(?:^|\\s)"+i+"(?:$|\\s)",d=t.ignoreCase?"i":"",p=new RegExp(l,d);return function(t){var r=s.getAttributeValue(t,o);return null!=r&&p.test(r)&&e(t)}},exists:function(e,t,r){var n=t.name,a=r.adapter;return function(t){return a.hasAttrib(t,n)&&e(t)}},start:function(e,t,r){var a=t.name,o=t.value,i=o.length,s=r.adapter;return 0===i?n:t.ignoreCase?(o=o.toLowerCase(),function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(0,i).toLowerCase()===o&&e(t)}):function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(0,i)===o&&e(t)}},end:function(e,t,r){var a=t.name,o=t.value,i=-o.length,s=r.adapter;return 0===i?n:t.ignoreCase?(o=o.toLowerCase(),function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(i).toLowerCase()===o&&e(t)}):function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(i)===o&&e(t)}},any:function(e,t,r){var o=t.name,i=t.value,s=r.adapter;if(""===i)return n;if(t.ignoreCase){var l=new RegExp(i.replace(a,"\\$&"),"i");return function(t){var r=s.getAttributeValue(t,o);return null!=r&&l.test(r)&&e(t)}}return function(t){var r=s.getAttributeValue(t,o);return null!=r&&0<=r.indexOf(i)&&e(t)}},not:function(e,t,r){var n=t.name,a=t.value,o=r.adapter;return""===a?function(t){return!!o.getAttributeValue(t,n)&&e(t)}:t.ignoreCase?(a=a.toLowerCase(),function(t){var r=o.getAttributeValue(t,n);return null!=r&&r.toLowerCase()!==a&&e(t)}):function(t){return o.getAttributeValue(t,n)!==a&&e(t)}}};e.exports={compile:function(e,t,r){if(r&&r.strict&&(t.ignoreCase||"not"===t.action))throw new Error("Unsupported attribute selector");return o[t.action](e,t,r)},rules:o}},22365:(e,t,r)=>{function n(e,t,r){var n=o(e,t,r);return a(n,t)}function a(e,t){var r=t.adapter;return function(t){return r.isTag(t)&&e(t)}}function o(e,t,r){var n=m(e,t);return l(n,t,r)}function i(e){return"pseudo"===e.type&&("scope"===e.name||Array.isArray(e.data)&&e.data.some(function(e){return e.some(i)}))}function s(e,t,r){var n=t.adapter,a=!!r&&!!r.length&&r.every(function(t){return t===w||!!n.getParent(t)});e.forEach(function(e){if(0f[e.type]}function p(e,t,r){return e.reduce(function(e,n){if(e===x)return e;if(!(n.type in y))throw new Error("Rule type "+n.type+" is not supported by css-select");return y[n.type](e,n,t,r)},t&&t.rootFunc||S)}function c(e,t){return t===x||e===S?e:e===x||t===S?t:function(r){return e(r)||t(r)}}function u(e){return e.some(d)}e.exports=n;var m=r(17525).parse,g=r(27510),h=r(65426),f=r(86721),y=r(35890),b=r(65582),S=g.trueFunc,x=g.falseFunc,v=b.filters,k={type:"descendant"},C={type:"_flexibleDescendant"},_={type:"pseudo",name:"scope"},w={};v.not=function(e,t,r,n){var a={xmlMode:!!(r&&r.xmlMode),strict:!!(r&&r.strict),adapter:r.adapter};if(a.strict&&(1{var n=r(91221),a=r(65582);e.exports={__proto__:null,attribute:n.compile,pseudo:a.compile,tag:function(e,t,r){var n=t.name,a=r.adapter;return function(t){return a.getName(t)===n&&e(t)}},descendant:function(e,t,r){var n="undefined"==typeof WeakSet?null:new WeakSet,a=r.adapter;return function(t){for(var r=!1;!r&&(t=a.getParent(t));)n&&n.has(t)||(r=e(t),!r&&n&&n.add(t));return r}},_flexibleDescendant:function(e,t,r){var n=r.adapter;return function(t){for(var r=e(t);!r&&(t=n.getParent(t));)r=e(t);return r}},parent:function(e,t,r){function n(t){return a.isTag(t)&&e(t)}if(r&&r.strict)throw new Error("Parent selector isn't part of CSS3");var a=r.adapter;return function(e){return a.getChildren(e).some(n)}},child:function(e,t,r){var n=r.adapter;return function(t){var r=n.getParent(t);return!!r&&e(r)}},sibling:function(e,t,r){var n=r.adapter;return function(t){for(var r=n.getSiblings(t),a=0;a{function n(e,t){var r={name:e,value:t};return function(e,t,n){return m(e,r,n)}}function a(e,t){return function(r){return!!t.getParent(r)&&e(r)}}function o(e,t){for(var r=0;e&&r{function n(e){var t=a[e.type];if(t===a.attribute)t=o[e.action],t===o.equals&&"id"===e.name&&(t=9),e.ignoreCase&&(t>>=1);else if(t===a.pseudo)if(!e.data)t=3;else if("has"===e.name||"contains"===e.name)t=0;else if("matches"===e.name||"not"===e.name){t=0;for(var r=0;rt&&(t=s)}1a))for(var o=r-1,s;0<=o&&a{function n(e,t){var r={};for(var n in e)r[n]=e[n].syntax;for(var n in t)n in e?t[n].syntax?r[n]=t[n].syntax:delete r[n]:t[n].syntax&&(r[n]=t[n].syntax);return r}var a=r(81515),o=r(58933),i=r(74291);e.exports={properties:n(a,i.properties),types:n(o,i.syntaxes)}},5355:e=>{function t(e){return{prev:null,next:null,data:e}}function r(e,t,r){var n;return null===a?n={prev:t,next:r,cursor:e.cursor}:(n=a,a=a.cursor,n.prev=t,n.next=r,n.cursor=e.cursor),e.cursor=n,n}function n(e){var t=e.cursor;e.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=a,a=t}var a=null,o=function(){this.cursor=null,this.head=null,this.tail=null};o.createItem=t,o.prototype.createItem=t,o.prototype.updateCursors=function(e,t,r,n){for(var a=this.cursor;null!==a;)a.prev===e&&(a.prev=t),a.next===r&&(a.next=n),a=a.cursor},o.prototype.getSize=function(){for(var e=0,t=this.head;t;)e++,t=t.next;return e},o.prototype.fromArray=function(e){var r=null;this.head=null;for(var n=0,a;n{function n(e,t){for(var r=t.length,n=a(e.lines,r),s=e.startLine,l=a(e.columns,r),d=e.startColumn,p=0{function n(e,t){function r(e,t){return n.slice(e,t).map(function(t,r){for(var n=e+r+1+"";n.lengthp?"\u2026":"")+n[c].substr(p,98)+(n[c].length>p+100-1?"\u2026":""));return[r(s,a),Array(o+d+2).join("-")+"^",r(a,l)].filter(Boolean).join("\n")}var a=r(41187);e.exports=function(e,t,r,o,i){var s=a("SyntaxError",e);return s.source=t,s.offset=r,s.line=o,s.column=i,s.sourceFragment=function(e){return n(s,isNaN(e)?0:e)},Object.defineProperty(s,"formattedMessage",{get:function(){return"Parse error: "+s.message+"\n"+n(s,2)}}),s.parseError={offset:r,line:o,column:i},s}},83058:(e,t,r)=>{var n=r(21713),a=n.TYPE,o=n.NAME,i=r(86716),s=i.cmpStr,l=a.EOF,d=a.WhiteSpace,p=a.Comment,c=16777215,u=24,m=function(){this.offsetAndType=null,this.balance=null,this.reset()};m.prototype={reset:function(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset},lookupType:function(e){return e+=this.tokenIndex,e>u:l},lookupOffset:function(e){return e+=this.tokenIndex,e>u,t(o,this.source,n)){case 1:break loop;case 2:r++;break loop;default:n=this.offsetAndType[r]&c,this.balance[a]===r&&(r=a);}}return r-this.tokenIndex},isBalanceEdge:function(e){return this.balance[this.tokenIndex]>u===d;e++,t++);0>u,this.tokenEnd=t&c):(this.tokenIndex=this.tokenCount,this.next())},next:function(){var e=this.tokenIndex+1;e>u,this.tokenEnd=e&c):(this.tokenIndex=this.tokenCount,this.eof=!0,this.tokenType=l,this.tokenStart=this.tokenEnd=this.source.length)},dump:function(){var e=this.firstCharOffset;return Array.prototype.slice.call(this.offsetAndType,0,this.tokenCount).map(function(t,r){var n=e,a=t&c;return e=a,{idx:r,type:o[t>>u],chunk:this.source.substring(n,a),balance:this.balance[r]}},this)}},e.exports=m},58248:e=>{var t="undefined"==typeof Uint32Array?Array:Uint32Array;e.exports=function(e,r){return null===e||e.length{var n=r(5355);e.exports=function(e){return{fromPlainObject:function(t){return e(t,{enter:function(e){e.children&&!1==e.children instanceof n&&(e.children=new n().fromArray(e.children))}}),t},toPlainObject:function(t){return e(t,{leave:function(e){e.children&&e.children instanceof n&&(e.children=e.children.toArray())}}),t}}}},59437:(e,t,r)=>{var n=r(41187);e.exports=function(e,t,r){var a=n("SyntaxError",e);return a.input=t,a.offset=r,a.rawMessage=e,a.message=a.rawMessage+"\n "+a.input+"\n--"+Array((a.offset||a.input.length)+1).join("-")+"^",a}},95561:e=>{function t(e){return e}function r(e){return 0===e.min&&0===e.max?"*":0===e.min&&1===e.max?"?":1===e.min&&0===e.max?e.comma?"#":"+":1===e.min&&1===e.max?"":(e.comma?"#":"")+(e.min===e.max?"{"+e.min+"}":"{"+e.min+","+(0===e.max?"":e.max)+"}")}function n(e){switch(e.type){case"Range":return" ["+(null===e.min?"-\u221E":e.min)+","+(null===e.max?"\u221E":e.max)+"]";default:throw new Error("Unknown node type `"+e.type+"`");}}function a(e,t,r,n){var a=" "===e.combinator||n?e.combinator:" "+e.combinator+" ",i=e.terms.map(function(e){return o(e,t,r,n)}).join(a);return(e.explicit||r)&&(i=(n||","===i[0]?"[":"[ ")+i+(n?"]":" ]")),i}function o(e,t,i,s){var l;switch(e.type){case"Group":l=a(e,t,i,s)+(e.disallowEmpty?"!":"");break;case"Multiplier":return o(e.term,t,i,s)+t(r(e),e);case"Type":l="<"+e.name+(e.opts?t(n(e.opts),e.opts):"")+">";break;case"Property":l="<'"+e.name+"'>";break;case"Keyword":l=e.name;break;case"AtKeyword":l="@"+e.name;break;case"Function":l=e.name+"(";break;case"String":case"Token":l=e.value;break;case"Comma":l=",";break;default:throw new Error("Unknown node type `"+e.type+"`");}return t(l,e)}e.exports=function(e,r){var n=t,a=!1,i=!1;return"function"==typeof r?n=r:r&&(a=!!r.forceBraces,i=!!r.compact,"function"==typeof r.decorate&&(n=r.decorate)),o(e,n,a,i)}},98333:(e,t,r)=>{e.exports={SyntaxError:r(59437),parse:r(81550),generate:r(95561),walk:r(55872)}},81550:(e,t,r)=>{function n(e){return e.substringToPos(e.findWsEnd(e.pos))}function a(e){for(var t=e.pos,r;tr||57t&&1===v[t])return g(e);switch(t){case 93:break;case 91:return d(e,y(e));case 60:return 39===e.nextCharCode()?c(e):m(e);case 124:return{type:"Combinator",value:e.substringToPos(124===e.nextCharCode()?e.pos+2:e.pos+1)};case 38:return e.pos++,e.eat(38),{type:"Combinator",value:"&&"};case 44:return e.pos++,{type:"Comma"};case 39:return d(e,{type:"String",value:i(e)});case 32:case 9:case 10:case 13:case 12:return{type:"Spaces",value:n(e)};case 64:return t=e.nextCharCode(),128>t&&1===v[t]?(e.pos++,{type:"AtKeyword",name:a(e)}):p(e);case 42:case 43:case 63:case 35:case 33:break;case 123:if(t=e.nextCharCode(),48>t||57r;r++)t[r]=e(_StringfromCharCode(r))?1:0;return t}(function(e){return /[a-zA-Z0-9\-]/.test(e)}),k={" ":1,"&&":2,"||":3,"|":4};S("[a&&#|<'c'>*||e() f{2} /,(% g#{1,2} h{2,})]!"),e.exports=S},22059:(e,t,r)=>{var n=r(59437),a=function(e){this.str=e,this.pos=0};a.prototype={charCodeAt:function(e){return e{function t(e){return"function"==typeof e?e:r}var r=function(){};e.exports=function(e,n,a){function o(e){switch(i.call(a,e),e.type){case"Group":e.terms.forEach(o);break;case"Multiplier":o(e.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+e.type);}s.call(a,e)}var i=r,s=r;if("function"==typeof n?i=n:n&&(i=t(n.enter),s=t(n.leave)),i===r&&s===r)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");o(e,a)}},31010:(e,t,r)=>{function n(e,t){var r=e.children,n=null;"function"==typeof t?r.forEach(function(e){null!==n&&t.call(this,n),this.node(e),n=e},this):r.forEach(this.node,this)}var a=r(95137),o=Object.prototype.hasOwnProperty;e.exports=function(e){function t(e){if(o.call(r,e.type))r[e.type].call(this,e);else throw new Error("Unknown node type: "+e.type)}var r={};if(e.node)for(var i in e.node)r[i]=e.node[i].generate;return function(e,r){var o="",i={children:n,node:t,chunk:function(e){o+=e},result:function(){return o}};return r&&("function"==typeof r.decorator&&(i=r.decorator(i)),r.sourceMap&&(i=a(i))),i.node(e),i.result()}}},95137:(e,t,r)=>{var n=r(52234).h,a={Atrule:!0,Selector:!0,Declaration:!0};e.exports=function(e){var t=new n,r=1,o=0,i={line:1,column:0},s={line:0,column:0},l=!1,d={line:1,column:0},p={generated:d},c=e.node;e.node=function(e){if(e.loc&&e.loc.start&&a.hasOwnProperty(e.type)){var n=e.loc.start.line,u=e.loc.start.column-1;(s.line!==n||s.column!==u)&&(s.line=n,s.column=u,i.line=r,i.column=o,l&&(l=!1,(i.line!==d.line||i.column!==d.column)&&t.addMapping(p)),l=!0,t.addMapping({source:e.loc.source,original:s,generated:i}))}c.call(this,e),l&&a.hasOwnProperty(e.type)&&(d.line=r,d.column=o)};var u=e.chunk;e.chunk=function(e){for(var t=0;t{e.exports=r(30826)},42164:(e,t,r)=>{function n(e,t,r){var n={};for(var a in e)e[a].syntax&&(n[a]=r?e[a].syntax:u(e[a].syntax,{compact:t}));return n}function a(e){for(var t=0;t"),k=function(e,t,r){if(this.valueCommonSyntax=x,this.syntax=t,this.generic=!1,this.properties={},this.types={},this.structure=r||S(e),e){if(e.types)for(var n in e.types)this.addType_(n,e.types[n]);if(e.generic)for(var n in this.generic=!0,p)this.addType_(n,p[n]);if(e.properties)for(var n in e.properties)this.addProperty_(n,e.properties[n])}};k.prototype={structure:{},checkStructure:function(e){function t(e,t){n.push({node:e,message:t})}var r=this.structure,n=[];return this.syntax.walk(e,function(e){r.hasOwnProperty(e.type)?r[e.type].check(e,t):t(e,"Unknown node type `"+e.type+"`")}),!!n.length&&n},createDescriptor:function(e,t,r){var n={type:t,name:r},a={type:t,name:r,syntax:null,match:null};return"function"==typeof e?a.match=h(e,n):("string"==typeof e?Object.defineProperty(a,"syntax",{get:function(){return Object.defineProperty(a,"syntax",{value:c(e)}),a.syntax}}):a.syntax=e,Object.defineProperty(a,"match",{get:function(){return Object.defineProperty(a,"match",{value:h(a.syntax,n)}),a.match}})),a},addProperty_:function(e,t){this.properties[e]=this.createDescriptor(t,"Property",e)},addType_:function(e,t){this.types[e]=this.createDescriptor(t,"Type",e),t===p["-ms-legacy-expression"]&&(this.valueCommonSyntax=v)},matchDeclaration:function(e){return"Declaration"===e.type?this.matchProperty(e.property,e.value):o(null,new Error("Not a Declaration node"))},matchProperty:function(e,t){var r=d.property(e);if(r.custom)return o(null,new Error("Lexer matching doesn't applicable for custom properties"));var n=r.vendor?this.getProperty(r.name)||this.getProperty(r.basename):this.getProperty(r.name);return n?i(this,n,t,!0):o(null,new s("Unknown property",e))},matchType:function(e,t){var r=this.getType(e);return r?i(this,r,t,!1):o(null,new s("Unknown type",e))},match:function(e,t){return"string"==typeof e||e&&e.type?("string"!=typeof e&&e.match||(e=this.createDescriptor(e,"Type","anonymous")),i(this,e,t,!1)):o(null,new s("Bad syntax"))},findValueFragments:function(e,t,r,n){return b.matchFragments(this,t,this.matchProperty(e,t),r,n)},findDeclarationValueFragments:function(e,t,r){return b.matchFragments(this,e.value,this.matchDeclaration(e),t,r)},findAllFragments:function(e,t,r){var n=[];return this.syntax.walk(e,{visit:"Declaration",enter:function(e){n.push.apply(n,this.findDeclarationValueFragments(e,t,r))}.bind(this)}),n},getProperty:function(e){return this.properties.hasOwnProperty(e)?this.properties[e]:null},getType:function(e){return this.types.hasOwnProperty(e)?this.types[e]:null},validate:function(){function e(n,a,o,i){return o.hasOwnProperty(a)?o[a]:void(o[a]=!1,null!==i.syntax&&m(i.syntax,function(i){if("Type"===i.type||"Property"===i.type){var s="Type"===i.type?n.types:n.properties,l="Type"===i.type?t:r;(!s.hasOwnProperty(i.name)||e(n,i.name,l,s[i.name]))&&(o[a]=!0)}},this))}var t={},r={};for(var n in this.types)e(this,n,t,this.types[n]);for(var n in this.properties)e(this,n,r,this.properties[n]);return t=Object.keys(t).filter(function(e){return t[e]}),r=Object.keys(r).filter(function(e){return r[e]}),t.length||r.length?{types:t,properties:r}:null},dump:function(e,t){return{generic:this.generic,types:n(this.types,!t,e),properties:n(this.properties,!t,e)}},toString:function(){return JSON.stringify(this.dump())}},e.exports=k},16044:(e,t,r)=>{function n(e){for(var t=e.tokens,r=e.longestMatch,n=r",l.css=g,l.mismatchOffset=p,l.loc={source:c&&c.loc&&c.loc.source||"",start:m,end:u},l.line=m?m.line:void 0,l.column=m?m.column:void 0,l.offset=m?m.offset:void 0,l.message=e+"\n syntax: "+l.syntax+"\n value: "+(l.css||"")+"\n --------"+Array(l.mismatchOffset+1).join("-")+"^",l}}},23479:(e,t,r)=>{function n(e,t){return null!==e&&e.type===c&&e.value.charCodeAt(0)===t}function a(e,t,r){for(;null!==e&&(e.type===u||e.type===m);)e=r(++t);return t}function o(e,t,r,n){if(!e)return 0;var a=e.value.charCodeAt(t);if(43===a||45===a){if(r)return 0;t++}for(;t{function n(e,t){return null!==e&&e.type===c&&e.value.charCodeAt(0)===t}function a(e,t){return e.value.charCodeAt(0)===t}function o(e,t,r){for(var n=t,a=0,i;n{function n(e,t){return te.max)return!0}return!1}function l(e,t){var r=e.index,n=0;do if(n++,e.balance<=r)break;while(e=t(n));return n}function d(e){return function(t,r,n){return null===t?0:t.type===S.Function&&o(t.value,C)?l(t,r):e(t,r,n)}}function p(e){return function(t){return null===t||t.type!==e?0:1}}function c(e){return function(t,r,n){if(null===t||t.type!==S.Dimension)return 0;var a=b(t.value,0);if(null!==e){var o=t.value.indexOf("\\",a),l=-1!==o&&i(t.value,o)?t.value.substring(a,o):t.value.substr(a);if(!1===e.hasOwnProperty(l.toLowerCase()))return 0}return s(n,t.value,a)?0:1}}function u(e){return"function"!=typeof e&&(e=function(){return 0}),function(t,r,n){return null!==t&&t.type===S.Number&&0===+t.value?1:e(t,r,n)}}var m=r(61063),g=m.isIdentifierStart,h=m.isHexDigit,f=m.isDigit,y=m.cmpStr,b=m.consumeNumber,S=m.TYPE,x=r(23479),v=r(77088),k=["unset","initial","inherit"],C=["calc(","-moz-calc(","-webkit-calc("];e.exports={"ident-token":p(S.Ident),"function-token":p(S.Function),"at-keyword-token":p(S.AtKeyword),"hash-token":p(S.Hash),"string-token":p(S.String),"bad-string-token":p(S.BadString),"url-token":p(S.Url),"bad-url-token":p(S.BadUrl),"delim-token":p(S.Delim),"number-token":p(S.Number),"percentage-token":p(S.Percentage),"dimension-token":p(S.Dimension),"whitespace-token":p(S.WhiteSpace),"CDO-token":p(S.CDO),"CDC-token":p(S.CDC),"colon-token":p(S.Colon),"semicolon-token":p(S.Semicolon),"comma-token":p(S.Comma),"[-token":p(S.LeftSquareBracket),"]-token":p(S.RightSquareBracket),"(-token":p(S.LeftParenthesis),")-token":p(S.RightParenthesis),"{-token":p(S.LeftCurlyBracket),"}-token":p(S.RightCurlyBracket),string:p(S.String),ident:p(S.Ident),"custom-ident":function(e){if(null===e||e.type!==S.Ident)return 0;var t=e.value.toLowerCase();return o(t,k)?0:a(t,"default")?0:1},"custom-property-name":function(e){return null===e||e.type!==S.Ident?0:45!==n(e.value,0)||45!==n(e.value,1)?0:1},"hex-color":function(e){if(null===e||e.type!==S.Hash)return 0;var t=e.value.length;if(4!==t&&5!==t&&7!==t&&9!==t)return 0;for(var r=1;re.index||e.balancee.index||e.balance{function n(e,t,r){return t===c&&r===u?e:e===c&&t===c&&r===c?e:("If"===e.type&&e.else===u&&t===c&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:r})}function a(e){return 2{function n(e){for(var t=null,r=null,n=e;null!==n;)r=n.prev,n.prev=t,t=n,n=r;return t}function a(e,t){if(e.length!==t.length)return!1;for(var r=0;r=n&&(n|=32),n!==a)return!1}return!0}function o(e){return null===e||e.type===m.Comma||e.type===m.Function||e.type===m.LeftParenthesis||e.type===m.LeftSquareBracket||e.type===m.LeftCurlyBracket||e.type===m.Delim}function i(e){return null===e||e.type===m.RightParenthesis||e.type===m.RightSquareBracket||e.type===m.RightCurlyBracket||e.type===m.Delim}function s(e,t,r){function n(){do E++,T=EA&&(A=E)}function b(){x={syntax:t.syntax,opts:t.syntax.opts||null!==x&&x.opts||null,prev:x},O={type:2,syntax:t.syntax,token:O.token,prev:O}}function S(){O=2===O.type?O.prev:{type:3,syntax:x.syntax,token:O.token,prev:O},x=x.prev}var x=null,v=null,k=null,C=null,_=0,w=null,T=null,E=-1,A=0,O={type:0,syntax:null,token:null,prev:null};for(n();null===w&&15000>++_;)switch(t.type){case"Match":if(null===v){if(null!==T&&(E!==e.length-1||"\\0"!==T.value&&"\\9"!==T.value)){t=c;break}w="Match";break}if(t=v.nextState,t===u)if(v.matchStack===O){t=c;break}else t=p;for(;v.syntaxStack!==x;)S();v=v.prev;break;case"Mismatch":if(null!==C&&!1!==C)(null===k||E>k.tokenIndex)&&(k=C,C=!1);else if(null===k){w="Mismatch";break}t=k.nextState,v=k.thenStack,x=k.syntaxStack,O=k.matchStack,E=k.tokenIndex,T=EE){for(;E":"<'"+t.name+"'>"));if(!1!==C&&null!==T&&"Type"===t.type){var q="custom-ident"===t.name&&T.type===m.Ident||"length"===t.name&&"0"===T.value;if(q){null===C&&(C=d(t,k)),t=c;break}}b(),t=W.match;break;case"Keyword":var z=t.name;if(null!==T){var B=T.value;if(-1!==B.indexOf("\\")&&(B=B.replace(/\\[09].*$/,"")),a(B,z)){y(),t=p;break}}t=c;break;case"AtKeyword":case"Function":if(null!==T&&a(T.value,t.name)){y(),t=p;break}t=c;break;case"Token":if(null!==T&&T.value===t.value){y(),t=p;break}t=c;break;case"Comma":null!==T&&T.type===m.Comma?o(O.token)?t=c:(y(),t=i(T)?c:p):t=o(O.token)||i(T)?p:c;break;case"String":for(var N="",I=E;I{function n(e,t){var r=[],n=0,o=0,s=t?t[o].node:null;for(a(e,i);!i.eof;){if(t)for(;o{function n(e){return"node"in e?e.node:n(e.match[0])}function a(e){return"node"in e?e.node:a(e.match[e.match.length-1])}var o=r(5355);e.exports={matchFragments:function(e,t,r,i,s){function l(r){if(null!==r.syntax&&r.syntax.type===i&&r.syntax.name===s){var p=n(r),c=a(r);e.syntax.walk(t,function(e,t,r){if(e===p){var n=new o;do{if(n.appendData(t.data),t.data===c)break;t=t.next}while(null!==t);d.push({parent:r,nodes:n})}})}Array.isArray(r.match)&&r.match.forEach(l)}var d=[];return null!==r.matched&&l(r.matched),d}}},25791:(e,t,r)=>{function n(e){return"number"==typeof e&&isFinite(e)&&_Mathfloor(e)===e&&0<=e}function a(e){return!!e&&n(e.offset)&&n(e.line)&&n(e.column)}function o(e,t){return function(r,n){if(!r||r.constructor!==Object)return n(r,"Type of node should be an Object");for(var o in r){var d=!0;if(!1!==l.call(r,o)){if("type"==o)r.type!==e&&n(r,"Wrong node type `"+r.type+"`, expected `"+e+"`");else if("loc"===o){if(null===r.loc)continue;else if(r.loc&&r.loc.constructor===Object)if("string"!=typeof r.loc.source)o+=".source";else if(!a(r.loc.start))o+=".start";else if(!a(r.loc.end))o+=".end";else continue;d=!1}else if(t.hasOwnProperty(o))for(var p=0,d=!1,c;!d&&p");else if(Array.isArray(u))d.push("List");else throw new Error("Wrong value `"+u+"` in `"+e+"."+s+"` structure definition");a[s]=d.join(" | ")}return{docs:a,check:o(e,n)}}var s=r(5355),l=Object.prototype.hasOwnProperty;e.exports={getStructureFromConfig:function(e){var t={};if(e.node)for(var r in e.node)if(l.call(e.node,r)){var n=e.node[r];if(n.structure)t[r]=i(r,n);else throw new Error("Missed `structure` field in `"+r+"` node type definition")}return t}}},29833:e=>{function t(e){function t(e){return null!==e&&("Type"===e.type||"Property"===e.type||"Keyword"===e.type)}function r(a){if(Array.isArray(a.match)){for(var o=0;o{function n(e){return function(){return this[e]()}}function a(e){var t={context:{},scope:{},atrule:{},pseudo:{}};if(e.parseContext)for(var r in e.parseContext)switch(typeof e.parseContext[r]){case"function":t.context[r]=e.parseContext[r];break;case"string":t.context[r]=n(e.parseContext[r]);}if(e.scope)for(var r in e.scope)t.scope[r]=e.scope[r];if(e.atrule)for(var r in e.atrule){var a=e.atrule[r];a.parse&&(t.atrule[r]=a.parse)}if(e.pseudo)for(var r in e.pseudo){var o=e.pseudo[r];o.parse&&(t.pseudo[r]=o.parse)}if(e.node)for(var r in e.node)t[r]=e.node[r].parse;return t}var o=r(70404),i=r(51708),s=r(83058),l=r(5355),d=r(61063),p=r(21713),c=r(86716).findWhiteSpaceStart,u=r(27190),m=function(){},g=p.TYPE,h=p.NAME,f=g.WhiteSpace,y=g.Ident,b=g.Function,S=g.Url,x=g.Hash,v=g.Percentage,k=g.Number,C=0;e.exports=function(e){var t={scanner:new s,locationMap:new o,filename:"",needPositions:!1,onParseError:m,onParseErrorThrow:!1,parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:u,createList:function(){return new l},createSingleNodeList:function(e){return new l().appendData(e)},getFirstListNode:function(e){return e&&e.first()},getLastListNode:function(e){return e.last()},parseWithFallback:function(e,t){var r=this.scanner.tokenIndex;try{return e.call(this)}catch(a){if(this.onParseErrorThrow)throw a;var n=t.call(this,r);return this.onParseErrorThrow=!0,this.onParseError(a,n),this.onParseErrorThrow=!1,n}},lookupNonWSType:function(e){do{var t=this.scanner.lookupType(e++);if(t!==f)return t}while(t!==C);return C},eat:function(e){if(this.scanner.tokenType!==e){var t=this.scanner.tokenStart,r=h[e]+" is expected";e===y?this.scanner.tokenType===b||this.scanner.tokenType===S?(t=this.scanner.tokenEnd-1,r="Identifier is expected but function found"):r="Identifier is expected":e===x?this.scanner.isDelim(35)&&(this.scanner.next(),t++,r="Name is expected"):e===v?this.scanner.tokenType===k&&(t=this.scanner.tokenEnd,r="Percent sign is expected"):this.scanner.source.charCodeAt(this.scanner.tokenStart)===e&&++t,this.error(r,t)}this.scanner.next()},consume:function(e){var t=this.scanner.getTokenValue();return this.eat(e),t},consumeFunctionName:function(){var e=this.scanner.source.substring(this.scanner.tokenStart,this.scanner.tokenEnd-1);return this.eat(b),e},getLocation:function(e,t){return this.needPositions?this.locationMap.getLocationRange(e,t,this.filename):null},getLocationFromList:function(e){if(this.needPositions){var t=this.getFirstListNode(e),r=this.getLastListNode(e);return this.locationMap.getLocationRange(null===t?this.scanner.tokenStart:t.loc.start.offset-this.locationMap.startOffset,null===r?this.scanner.tokenStart:r.loc.end.offset-this.locationMap.startOffset,this.filename)}return null},error:function(e,t){var r="undefined"!=typeof t&&t",t.needPositions=!!r.positions,t.onParseError="function"==typeof r.onParseError?r.onParseError:m,t.onParseErrorThrow=!1,t.parseAtrulePrelude=!("parseAtrulePrelude"in r)||!!r.parseAtrulePrelude,t.parseRulePrelude=!("parseRulePrelude"in r)||!!r.parseRulePrelude,t.parseValue=!("parseValue"in r)||!!r.parseValue,t.parseCustomProperty=!!("parseCustomProperty"in r)&&!!r.parseCustomProperty,!t.context.hasOwnProperty(n))throw new Error("Unknown context `"+n+"`");return a=t.context[n].call(t,r),t.scanner.eof||t.error(),a}}},27190:(e,t,r)=>{var n=r(61063).TYPE,a=n.WhiteSpace,o=n.Comment;e.exports=function(e){var t=this.createList(),r=null,n={recognizer:e,space:null,ignoreWS:!1,ignoreWSAfter:!1};for(this.scanner.skipSC();!this.scanner.eof;){switch(this.scanner.tokenType){case o:this.scanner.next();continue;case a:n.ignoreWS?this.scanner.next():n.space=this.WhiteSpace();continue;}if(r=e.getNode.call(this,n),void 0===r)break;null!==n.space&&(t.push(n.space),n.space=null),t.push(r),n.ignoreWSAfter?(n.ignoreWSAfter=!1,n.ignoreWS=!0):n.ignoreWS=!1}return t}},91849:e=>{e.exports={parse:{prelude:null,block:function(){return this.Block(!0)}}}},29864:(e,t,r)=>{var n=r(61063).TYPE,a=n.String,o=n.Ident,i=n.Url,s=n.Function,l=n.LeftParenthesis;e.exports={parse:{prelude:function(){var e=this.createList();switch(this.scanner.skipSC(),this.scanner.tokenType){case a:e.push(this.String());break;case i:case s:e.push(this.Url());break;default:this.error("String or url() is expected");}return(this.lookupNonWSType(0)===o||this.lookupNonWSType(0)===l)&&(e.push(this.WhiteSpace()),e.push(this.MediaQueryList())),e},block:null}}},20264:(e,t,r)=>{e.exports={"font-face":r(91849),import:r(29864),media:r(16258),page:r(46661),supports:r(19901)}},16258:e=>{e.exports={parse:{prelude:function(){return this.createSingleNodeList(this.MediaQueryList())},block:function(){return this.Block(!1)}}}},46661:e=>{e.exports={parse:{prelude:function(){return this.createSingleNodeList(this.SelectorList())},block:function(){return this.Block(!0)}}}},19901:(e,t,r)=>{function n(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,!1))}function a(){return this.scanner.skipSC(),this.scanner.tokenType===d&&this.lookupNonWSType(1)===c?this.createSingleNodeList(this.Declaration()):o.call(this)}function o(){var e=this.createList(),t=null,r;this.scanner.skipSC();scan:for(;!this.scanner.eof;){switch(this.scanner.tokenType){case s:t=this.WhiteSpace();continue;case l:this.scanner.next();continue;case p:r=this.Function(n,this.scope.AtrulePrelude);break;case d:r=this.Identifier();break;case u:r=this.Parentheses(a,this.scope.AtrulePrelude);break;default:break scan;}null!==t&&(e.push(t),t=null),e.push(r)}return e}var i=r(61063).TYPE,s=i.WhiteSpace,l=i.Comment,d=i.Ident,p=i.Function,c=i.Colon,u=i.LeftParenthesis;e.exports={parse:{prelude:function(){var e=o.call(this);return null===this.getFirstListNode(e)&&this.error("Condition is expected"),e},block:function(){return this.Block(!1)}}}},87526:(e,t,r)=>{var n=r(26577);e.exports={generic:!0,types:n.types,properties:n.properties,node:r(85369)}},88845:e=>{function t(e){return e&&e.constructor===Object}function r(e){if(t(e)){var r={};for(var n in e)o.call(e,n)&&(r[n]=e[n]);return r}return e}function n(e,a){for(var i in a)o.call(a,i)&&(t(e[i])?n(e[i],r(a[i])):e[i]=r(a[i]))}function a(e,i,s){for(var l in s)if(!1!==o.call(s,l))if(!0===s[l])l in i&&o.call(i,l)&&(e[l]=r(i[l]));else if(s[l])if(t(s[l])){var d={};n(d,e[l]),n(d,i[l]),e[l]=d}else if(Array.isArray(s[l])){var d={},p=s[l].reduce(function(e,t){return e[t]=!0,e},{});for(var c in e[l])o.call(e[l],c)&&(d[c]={},e[l]&&e[l][c]&&a(d[c],e[l][c],p));for(var c in i[l])o.call(i[l],c)&&(d[c]||(d[c]={}),i[l]&&i[l][c]&&a(d[c],i[l][c],p));e[l]=d}return e}var o=Object.prototype.hasOwnProperty,i={generic:!0,types:{},properties:{},parseContext:{},scope:{},atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};e.exports=function(e,t){return a(e,t,i)}},46808:(e,t,r)=>{e.exports={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude:function(e){return this.AtrulePrelude(e.atrule?e.atrule+"":null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",rule:"Rule",selectorList:"SelectorList",selector:"Selector",block:function(){return this.Block(!0)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},scope:r(38141),atrule:r(20264),pseudo:r(69302),node:r(85369)}},50997:(e,t,r)=>{e.exports={node:r(85369)}},66330:(e,t,r)=>{function n(e,t){for(var r in t)e[r]=t[r];return e}function a(e){var t=c(e),r=g(e),b=u(e),S=m(r),x={List:o,SyntaxError:i,TokenStream:s,Lexer:l,vendorPrefix:f.vendorPrefix,keyword:f.keyword,property:f.property,isCustomProperty:f.isCustomProperty,definitionSyntax:d,lexer:null,createLexer:function(e){return new l(e,x,x.lexer.structure)},tokenize:p,parse:t,walk:r,generate:b,find:r.find,findLast:r.findLast,findAll:r.findAll,clone:h,fromPlainObject:S.fromPlainObject,toPlainObject:S.toPlainObject,createSyntax:function(e){return a(y({},e))},fork:function(t){var r=y({},e);return a("function"==typeof t?t(r,n):y(r,t))}};return x.lexer=new l({generic:!0,types:e.types,properties:e.properties,node:e.node},x),x}var o=r(5355),i=r(51708),s=r(83058),l=r(42164),d=r(98333),p=r(61063),c=r(40283),u=r(31010),m=r(57208),g=r(87760),h=r(55933),f=r(87453),y=r(88845);t.create=function(e){return a(y({},e))}},59537:e=>{e.exports=function(){this.scanner.skipSC();var e=this.createSingleNodeList(this.IdSelector());return this.scanner.skipSC(),e}},21264:e=>{e.exports=function(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,!1))}},88036:(e,t,r)=>{var n=r(61063).TYPE,a=r(18204).mode,o=n.Comma;e.exports=function(){var e=this.createList();return this.scanner.skipSC(),e.push(this.Identifier()),this.scanner.skipSC(),this.scanner.tokenType===o&&(e.push(this.Operator()),e.push(this.parseCustomProperty?this.Value(null):this.Raw(this.scanner.tokenIndex,a.exclamationMarkOrSemicolon,!1))),e}},30826:(e,t,r)=>{e.exports=r(66330).create(function(){for(var e={},t=0,r;t{function n(e,t){var r=this.scanner.tokenStart+e,n=this.scanner.source.charCodeAt(r);for((43===n||45===n)&&(t&&this.error("Number sign is not allowed"),r++);r{function n(e){return this.Raw(e,i.leftCurlyBracketOrSemicolon,!0)}function a(){for(var e=1,t;t=this.scanner.lookupType(e);e++){if(t===p)return!0;if(t===d||t===s)return!1}return!1}var o=r(61063).TYPE,i=r(18204).mode,s=o.AtKeyword,l=o.Semicolon,d=o.LeftCurlyBracket,p=o.RightCurlyBracket;e.exports={name:"Atrule",structure:{name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]},parse:function(){var e=this.scanner.tokenStart,t=null,r=null,o,i;switch(this.eat(s),o=this.scanner.substrToCursor(e+1),i=o.toLowerCase(),this.scanner.skipSC(),!1===this.scanner.eof&&this.scanner.tokenType!==d&&this.scanner.tokenType!==l&&(this.parseAtrulePrelude?(t=this.parseWithFallback(this.AtrulePrelude.bind(this,o),n),"AtrulePrelude"===t.type&&null===t.children.head&&(t=null)):t=n.call(this,this.scanner.tokenIndex),this.scanner.skipSC()),this.scanner.tokenType){case l:this.scanner.next();break;case d:r=this.atrule.hasOwnProperty(i)&&"function"==typeof this.atrule[i].block?this.atrule[i].block.call(this):this.Block(a.call(this));}return{type:"Atrule",loc:this.getLocation(e,this.scanner.tokenStart),name:o,prelude:t,block:r}},generate:function(e){this.chunk("@"),this.chunk(e.name),null!==e.prelude&&(this.chunk(" "),this.node(e.prelude)),e.block?this.node(e.block):this.chunk(";")},walkContext:"atrule"}},24272:(e,t,r)=>{var n=r(61063).TYPE,a=n.Semicolon,o=n.LeftCurlyBracket;e.exports={name:"AtrulePrelude",structure:{children:[[]]},parse:function(e){var t=null;return null!==e&&(e=e.toLowerCase()),this.scanner.skipSC(),t=this.atrule.hasOwnProperty(e)&&"function"==typeof this.atrule[e].prelude?this.atrule[e].prelude.call(this):this.readSequence(this.scope.AtrulePrelude),this.scanner.skipSC(),!0!==this.scanner.eof&&this.scanner.tokenType!==o&&this.scanner.tokenType!==a&&this.error("Semicolon or block is expected"),null===t&&(t=this.createList()),{type:"AtrulePrelude",loc:this.getLocationFromList(t),children:t}},generate:function(e){this.children(e)},walkContext:"atrulePrelude"}},33434:(e,t,r)=>{function n(){this.scanner.eof&&this.error("Unexpected end of input");var e=this.scanner.tokenStart,t=!1,r=!0;return this.scanner.isDelim(42)?(t=!0,r=!1,this.scanner.next()):!this.scanner.isDelim(124)&&this.eat(i),this.scanner.isDelim(124)?61===this.scanner.source.charCodeAt(this.scanner.tokenStart+1)?t&&this.error("Identifier is expected",this.scanner.tokenEnd):(this.scanner.next(),this.eat(i)):t&&this.error("Vertical line is expected"),r&&this.scanner.tokenType===l&&(this.scanner.next(),this.eat(i)),{type:"Identifier",loc:this.getLocation(e,this.scanner.tokenStart),name:this.scanner.substrToCursor(e)}}function a(){var e=this.scanner.tokenStart,t=this.scanner.source.charCodeAt(e);return 61!==t&&126!==t&&94!==t&&36!==t&&42!==t&&124!==t&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.scanner.next(),61!==t&&(!this.scanner.isDelim(61)&&this.error("Equal sign is expected"),this.scanner.next()),this.scanner.substrToCursor(e)}var o=r(61063).TYPE,i=o.Ident,s=o.String,l=o.Colon,d=o.LeftSquareBracket,p=o.RightSquareBracket;e.exports={name:"AttributeSelector",structure:{name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]},parse:function(){var e=this.scanner.tokenStart,t=null,r=null,o=null,l;return this.eat(d),this.scanner.skipSC(),l=n.call(this),this.scanner.skipSC(),this.scanner.tokenType!==p&&(this.scanner.tokenType!==i&&(t=a.call(this),this.scanner.skipSC(),r=this.scanner.tokenType===s?this.String():this.Identifier(),this.scanner.skipSC()),this.scanner.tokenType===i&&(o=this.scanner.getTokenValue(),this.scanner.next(),this.scanner.skipSC())),this.eat(p),{type:"AttributeSelector",loc:this.getLocation(e,this.scanner.tokenStart),name:l,matcher:t,value:r,flags:o}},generate:function(e){var t=" ";this.chunk("["),this.node(e.name),null!==e.matcher&&(this.chunk(e.matcher),null!==e.value&&(this.node(e.value),"String"===e.value.type&&(t=""))),null!==e.flags&&(this.chunk(t),this.chunk(e.flags)),this.chunk("]")}}},5163:(e,t,r)=>{function n(e){return this.Raw(e,null,!0)}function a(){return this.parseWithFallback(this.Rule,n)}function o(e){return this.Raw(e,l.semicolonIncluded,!0)}function i(){if(this.scanner.tokenType===c)return o.call(this,this.scanner.tokenIndex);var e=this.parseWithFallback(this.Declaration,o);return this.scanner.tokenType===c&&this.scanner.next(),e}var s=r(61063).TYPE,l=r(18204).mode,d=s.WhiteSpace,p=s.Comment,c=s.Semicolon,u=s.AtKeyword,m=s.LeftCurlyBracket,g=s.RightCurlyBracket;e.exports={name:"Block",structure:{children:[["Atrule","Rule","Declaration"]]},parse:function(e){var t=e?i:a,r=this.scanner.tokenStart,o=this.createList();this.eat(m);scan:for(;!this.scanner.eof;)switch(this.scanner.tokenType){case g:break scan;case d:case p:this.scanner.next();break;case u:o.push(this.parseWithFallback(this.Atrule,n));break;default:o.push(t.call(this));}return this.scanner.eof||this.eat(g),{type:"Block",loc:this.getLocation(r,this.scanner.tokenStart),children:o}},generate:function(e){this.chunk("{"),this.children(e,function(e){"Declaration"===e.type&&this.chunk(";")}),this.chunk("}")},walkContext:"block"}},96809:(e,t,r)=>{var n=r(61063).TYPE,a=n.LeftSquareBracket,o=n.RightSquareBracket;e.exports={name:"Brackets",structure:{children:[[]]},parse:function(e,t){var r=this.scanner.tokenStart,n=null;return this.eat(a),n=e.call(this,t),this.scanner.eof||this.eat(o),{type:"Brackets",loc:this.getLocation(r,this.scanner.tokenStart),children:n}},generate:function(e){this.chunk("["),this.children(e),this.chunk("]")}}},4351:(e,t,r)=>{var n=r(61063).TYPE.CDC;e.exports={name:"CDC",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDC",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk("-->")}}},37691:(e,t,r)=>{var n=r(61063).TYPE.CDO;e.exports={name:"CDO",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDO",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk("")}}},58368:(e,t,r)=>{var n=r(22802).TYPE.CDO;e.exports={name:"CDO",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDO",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk(""}var p=r(43402),c=r(83982),u=r(53958);u.elementNames.__proto__=null,u.attributeNames.__proto__=null;var m={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0},g={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},h=e.exports=function(e,t){Array.isArray(e)||e.cheerio||(e=[e]),t=t||{};for(var r="",n=0,c;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=void 0,t.isTag=function(e){return"tag"===e.type||"script"===e.type||"style"===e.type},t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"},42515:e=>{e.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(e){return"tag"===e.type||"script"===e.type||"style"===e.type}}},43370:(e,t,r)=>{var n=e.exports;[r(64144),r(86755),r(69009),r(87431),r(75718),r(4614)].forEach(function(e){Object.keys(e).forEach(function(t){n[t]=e[t].bind(n)})})},4614:(e,t)=>{t.removeSubsets=function(e){for(var t=e.length,r,n,a;-1<--t;){for(r=n=e[t],e[t]=null,a=!0;n;){if(-1s.indexOf(d)?i===t?r.FOLLOWING|r.CONTAINED_BY:r.FOLLOWING:i===e?r.PRECEDING|r.CONTAINS:r.PRECEDING)};t.uniqueSort=function(e){var t=e.length,a,o;for(e=e.slice();-1<--t;)a=e[t],o=e.indexOf(a),-1{function n(e,t){return"function"==typeof t?function(r){return r.attribs&&t(r.attribs[e])}:function(r){return r.attribs&&r.attribs[e]===t}}function a(e,t){return function(r){return e(r)||t(r)}}var o=r(42515),i=t.isTag=o.isTag;t.testElement=function(e,t){for(var r in e)if(!e.hasOwnProperty(r));else if("tag_name"===r){if(!i(t)||!e.tag_name(t.name))return!1;}else if("tag_type"===r){if(!e.tag_type(t.type))return!1;}else if("tag_contains"===r){if(i(t)||!e.tag_contains(t.data))return!1;}else if(!t.attribs||!e[r](t.attribs[r]))return!1;return!0};var s={tag_name:function(e){return"function"==typeof e?function(t){return i(t)&&e(t.name)}:"*"===e?i:function(t){return i(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return!i(t)&&e(t.data)}:function(t){return!i(t)&&t.data===e}}};t.getElements=function(e,t,r,o){var i=Object.keys(e).map(function(t){var r=e[t];return t in s?s[t](r):n(t,r)});return 0===i.length?[]:this.filter(i.reduce(a),t,r,o)},t.getElementById=function(e,t,r){return Array.isArray(t)||(t=[t]),this.findOne(n("id",e),t,!1!==r)},t.getElementsByTagName=function(e,t,r,n){return this.filter(s.tag_name(e),t,r,n)},t.getElementsByTagType=function(e,t,r,n){return this.filter(s.tag_type(e),t,r,n)}},69009:(e,t)=>{t.removeElement=function(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}},t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var a=t.parent=e.parent;if(a){var o=a.children;o[o.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(t.parent=e,1!==e.children.push(t)){var r=e.children[e.children.length-2];r.next=t,t.prev=r,t.next=null}},t.append=function(e,t){var r=e.parent,n=e.next;if(t.next=n,t.prev=e,e.next=t,t.parent=r,!n)r&&r.children.push(t);else if(n.prev=t,r){var a=r.children;a.splice(a.lastIndexOf(n),0,t)}},t.prepend=function(e,t){var r=e.parent;if(r){var n=r.children;n.splice(n.lastIndexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},87431:(e,t,r)=>{function n(e,t,r,a){for(var o=[],s=0,l=t.length,d;s=--a))&&(d=t[s].children,!(r&&d&&0=a)));s++);return o}function a(e,t){for(var r=null,n=0,o=t.length;n{function n(e){return Array.isArray(e)?e.map(n).join(""):i(e)?"br"===e.name?"\n":n(e.children):e.type===a.CDATA?n(e.children):e.type===a.Text?e.data:""}var a=r(42515),o=r(1702),i=a.isTag;e.exports={getInnerHTML:function(e,t){return e.children?e.children.map(function(e){return o(e,t)}).join(""):""},getOuterHTML:o,getText:n}},86755:(e,t)=>{var r=t.getChildren=function(e){return e.children},n=t.getParent=function(e){return e.parent};t.getSiblings=function(e){var t=n(e);return t?r(t):[e]},t.getAttributeValue=function(e,t){return e.attribs&&e.attribs[t]},t.hasAttrib=function(e,t){return!!e.attribs&&hasOwnProperty.call(e.attribs,t)},t.getName=function(e){return e.name}},58509:(e,t,r)=>{"use strict";/** + `);o=e}catch(e){console.debug(e)}console.log(`Previous render sha | ${o??"(none)"}`),await a.repos.createOrUpdateFileContents({...t.context.repo,path:m,message:`Update ${m} - [Skip GitHub Action]`,content:Buffer.from(E).toString("base64"),...(o?{sha:o}:{})}),console.log(`Commit to repo | ok`)}console.log(`Success, thanks for using metrics !`),process.exit(0)}catch(t){if(console.error(t),!i(e.getInput("debug")))for(const e of["_".repeat(64),"An error occured, logging debug message :",...s])console.log(e);e.setFailed(t.message),process.exit(1)}})().catch(()=>process.exit(1))},12541:function(e,t,r){"use strict";function n(e,t,r){const n=new p(e,t,r);process.stdout.write(n.toString()+s.EOL)}function a(e){return l.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")}function o(e){return l.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t["default"]=e,t};Object.defineProperty(t,"__esModule",{value:!0});const s=i(r(12087)),l=r(74332);t.issueCommand=n,t.issue=function(e,t=""){n(e,{},t)};const d="::";class p{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r}toString(){let e=d+this.command;if(this.properties&&0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.toCommandValue=function(e){return null===e||void 0===e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e)}},84873:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;const n=r(35747),a=r(12087);class o{constructor(){if(this.payload={},process.env.GITHUB_EVENT_PATH)if(n.existsSync(process.env.GITHUB_EVENT_PATH))this.payload=JSON.parse(n.readFileSync(process.env.GITHUB_EVENT_PATH,{encoding:"utf8"}));else{const e=process.env.GITHUB_EVENT_PATH;process.stdout.write(`GITHUB_EVENT_PATH ${e} does not exist${a.EOL}`)}this.eventName=process.env.GITHUB_EVENT_NAME,this.sha=process.env.GITHUB_SHA,this.ref=process.env.GITHUB_REF,this.workflow=process.env.GITHUB_WORKFLOW,this.action=process.env.GITHUB_ACTION,this.actor=process.env.GITHUB_ACTOR,this.job=process.env.GITHUB_JOB,this.runNumber=parseInt(process.env.GITHUB_RUN_NUMBER,10),this.runId=parseInt(process.env.GITHUB_RUN_ID,10)}get issue(){const e=this.payload;return Object.assign(Object.assign({},this.repo),{number:(e.issue||e.pull_request||e).number})}get repo(){if(process.env.GITHUB_REPOSITORY){const[e,t]=process.env.GITHUB_REPOSITORY.split("/");return{owner:e,repo:t}}if(this.payload.repository)return{owner:this.payload.repository.owner.login,repo:this.payload.repository.name};throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'")}}t.Context=o},29483:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getOctokit=t.context=void 0;const i=o(r(84873)),s=r(24864);t.context=new i.Context,t.getOctokit=function(e,t){return new s.GitHub(s.getOctokitOptions(e,t))}},18145:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getApiBaseUrl=t.getProxyAgent=t.getAuthString=void 0;const i=o(r(66305));t.getAuthString=function(e,t){if(!e&&!t.auth)throw new Error("Parameter token or opts.auth is required");else if(e&&t.auth)throw new Error("Parameters token and opts.auth may not both be specified");return"string"==typeof t.auth?t.auth:`token ${e}`},t.getProxyAgent=function(e){const t=new i.HttpClient;return t.getAgent(e)},t.getApiBaseUrl=function(){return process.env.GITHUB_API_URL||"https://api.github.com"}},24864:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r]}})}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getOctokitOptions=t.GitHub=t.context=void 0;const i=o(r(84873)),s=o(r(18145)),l=r(40812),d=r(5462),p=r(19227);t.context=new i.Context;const c=s.getApiBaseUrl(),u={baseUrl:c,request:{agent:s.getProxyAgent(c)}};t.GitHub=l.Octokit.plugin(d.restEndpointMethods,p.paginateRest).defaults(u),t.getOctokitOptions=function(e,t){const r=Object.assign({},t||{}),n=s.getAuthString(e,r);return n&&(r.auth=n),r}},66305:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(98605),a=r(57211),o=r(92901);let i;var s;(function(e){e[e.OK=200]="OK",e[e.MultipleChoices=300]="MultipleChoices",e[e.MovedPermanently=301]="MovedPermanently",e[e.ResourceMoved=302]="ResourceMoved",e[e.SeeOther=303]="SeeOther",e[e.NotModified=304]="NotModified",e[e.UseProxy=305]="UseProxy",e[e.SwitchProxy=306]="SwitchProxy",e[e.TemporaryRedirect=307]="TemporaryRedirect",e[e.PermanentRedirect=308]="PermanentRedirect",e[e.BadRequest=400]="BadRequest",e[e.Unauthorized=401]="Unauthorized",e[e.PaymentRequired=402]="PaymentRequired",e[e.Forbidden=403]="Forbidden",e[e.NotFound=404]="NotFound",e[e.MethodNotAllowed=405]="MethodNotAllowed",e[e.NotAcceptable=406]="NotAcceptable",e[e.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",e[e.RequestTimeout=408]="RequestTimeout",e[e.Conflict=409]="Conflict",e[e.Gone=410]="Gone",e[e.TooManyRequests=429]="TooManyRequests",e[e.InternalServerError=500]="InternalServerError",e[e.NotImplemented=501]="NotImplemented",e[e.BadGateway=502]="BadGateway",e[e.ServiceUnavailable=503]="ServiceUnavailable",e[e.GatewayTimeout=504]="GatewayTimeout"})(s=t.HttpCodes||(t.HttpCodes={}));var l;(function(e){e.Accept="accept",e.ContentType="content-type"})(l=t.Headers||(t.Headers={}));var d;(function(e){e.ApplicationJson="application/json"})(d=t.MediaTypes||(t.MediaTypes={})),t.getProxyUrl=function(e){let t=o.getProxyUrl(new URL(e));return t?t.href:""};const p=[s.MovedPermanently,s.ResourceMoved,s.SeeOther,s.TemporaryRedirect,s.PermanentRedirect],c=[s.BadGateway,s.ServiceUnavailable,s.GatewayTimeout],u=["OPTIONS","GET","DELETE","HEAD"];class m extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,m.prototype)}}t.HttpClientError=m;class g{constructor(e){this.message=e}readBody(){return new Promise(async e=>{let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e])}),this.message.on("end",()=>{e(t.toString())})})}}t.HttpClientResponse=g,t.isHttps=function(e){let t=new URL(e);return"https:"===t.protocol};class h{constructor(e,t,r){this._ignoreSslError=!1,this._allowRedirects=!0,this._allowRedirectDowngrade=!1,this._maxRedirects=50,this._allowRetries=!1,this._maxRetries=1,this._keepAlive=!1,this._disposed=!1,this.userAgent=e,this.handlers=t||[],this.requestOptions=r,r&&(null!=r.ignoreSslError&&(this._ignoreSslError=r.ignoreSslError),this._socketTimeout=r.socketTimeout,null!=r.allowRedirects&&(this._allowRedirects=r.allowRedirects),null!=r.allowRedirectDowngrade&&(this._allowRedirectDowngrade=r.allowRedirectDowngrade),null!=r.maxRedirects&&(this._maxRedirects=_Mathmax(r.maxRedirects,0)),null!=r.keepAlive&&(this._keepAlive=r.keepAlive),null!=r.allowRetries&&(this._allowRetries=r.allowRetries),null!=r.maxRetries&&(this._maxRetries=r.maxRetries))}options(e,t){return this.request("OPTIONS",e,null,t||{})}get(e,t){return this.request("GET",e,null,t||{})}del(e,t){return this.request("DELETE",e,null,t||{})}post(e,t,r){return this.request("POST",e,t,r||{})}patch(e,t,r){return this.request("PATCH",e,t,r||{})}put(e,t,r){return this.request("PUT",e,t,r||{})}head(e,t){return this.request("HEAD",e,null,t||{})}sendStream(e,t,r,n){return this.request(e,t,r,n)}async getJson(e,t={}){t[l.Accept]=this._getExistingOrDefaultHeader(t,l.Accept,d.ApplicationJson);let r=await this.get(e,t);return this._processResponse(r,this.requestOptions)}async postJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.post(e,n,r);return this._processResponse(a,this.requestOptions)}async putJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.put(e,n,r);return this._processResponse(a,this.requestOptions)}async patchJson(e,t,r={}){let n=JSON.stringify(t,null,2);r[l.Accept]=this._getExistingOrDefaultHeader(r,l.Accept,d.ApplicationJson),r[l.ContentType]=this._getExistingOrDefaultHeader(r,l.ContentType,d.ApplicationJson);let a=await this.patch(e,n,r);return this._processResponse(a,this.requestOptions)}async request(e,t,r,n){if(this._disposed)throw new Error("Client has already been disposed.");let a=new URL(t),o=this._prepareRequest(e,a,n),i=this._allowRetries&&-1!=u.indexOf(e)?this._maxRetries+1:1,l=0,d;for(;l{this.requestRawWithCallback(e,t,function(e,t){e&&n(e),r(t)})})}requestRawWithCallback(e,t,r){let n;"string"==typeof t&&(e.options.headers["Content-Length"]=Buffer.byteLength(t,"utf8"));let a=!1,o=(e,t)=>{a||(a=!0,r(e,t))},i=e.httpModule.request(e.options,e=>{let t=new g(e);o(null,t)});i.on("socket",e=>{n=e}),i.setTimeout(this._socketTimeout||180000,()=>{n&&n.end(),o(new Error("Request timeout: "+e.options.path),null)}),i.on("error",function(e){o(e,null)}),t&&"string"==typeof t&&i.write(t,"utf8"),t&&"string"!=typeof t?(t.on("close",function(){i.end()}),t.pipe(i)):i.end()}getAgent(e){let t=new URL(e);return this._getAgent(t)}_prepareRequest(e,t,r){const o={parsedUrl:t},i="https:"===o.parsedUrl.protocol;o.httpModule=i?a:n;const s=i?443:80;return o.options={},o.options.host=o.parsedUrl.hostname,o.options.port=o.parsedUrl.port?parseInt(o.parsedUrl.port):s,o.options.path=(o.parsedUrl.pathname||"")+(o.parsedUrl.search||""),o.options.method=e,o.options.headers=this._mergeHeaders(r),null!=this.userAgent&&(o.options.headers["user-agent"]=this.userAgent),o.options.agent=this._getAgent(o.parsedUrl),this.handlers&&this.handlers.forEach(e=>{e.prepareRequest(o.options)}),o}_mergeHeaders(e){const t=e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{});return this.requestOptions&&this.requestOptions.headers?Object.assign({},t(this.requestOptions.headers),t(e)):t(e||{})}_getExistingOrDefaultHeader(e,t,r){let n;return this.requestOptions&&this.requestOptions.headers&&(n=(e=>Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}))(this.requestOptions.headers)[t]),e[t]||n||r}_getAgent(e){let t=o.getProxyUrl(e),s=t&&t.hostname,l;if(this._keepAlive&&s&&(l=this._proxyAgent),this._keepAlive&&!s&&(l=this._agent),!!l)return l;const d="https:"===e.protocol;let p=100;if(!this.requestOptions||(p=this.requestOptions.maxSockets||n.globalAgent.maxSockets),s){i||(i=r(34603));const e={maxSockets:p,keepAlive:this._keepAlive,proxy:{proxyAuth:`${t.username}:${t.password}`,host:t.hostname,port:t.port}};let n;const a="https:"===t.protocol;n=d?a?i.httpsOverHttps:i.httpsOverHttp:a?i.httpOverHttps:i.httpOverHttp,l=n(e),this._proxyAgent=l}if(this._keepAlive&&!l){const e={keepAlive:this._keepAlive,maxSockets:p};l=d?new a.Agent(e):new n.Agent(e),this._agent=l}return l||(l=d?a.globalAgent:n.globalAgent),d&&this._ignoreSslError&&(l.options=Object.assign(l.options||{},{rejectUnauthorized:!1})),l}_performExponentialBackoff(e){e=_Mathmin(10,e);const t=5*_Mathpow(2,e);return new Promise(e=>setTimeout(()=>e(),t))}static dateTimeDeserializer(e,t){if("string"==typeof t){let e=new Date(t);if(!isNaN(e.valueOf()))return e}return t}async _processResponse(e,t){return new Promise(async(r,n)=>{const a=e.message.statusCode,o={statusCode:a,result:null,headers:{}};a==s.NotFound&&r(o);let i,l;try{l=await e.readBody(),l&&0{"use strict";function r(e){if(!e.hostname)return!1;let t=process.env.no_proxy||process.env.NO_PROXY||"";if(!t)return!1;let r;e.port?r=+e.port:"http:"===e.protocol?r=80:"https:"===e.protocol&&(r=443);let n=[e.hostname.toUpperCase()];"number"==typeof r&&n.push(`${n[0]}:${r}`);for(let r of t.split(",").map(e=>e.trim().toUpperCase()).filter(e=>e))if(n.some(e=>e===r))return!0;return!1}Object.defineProperty(t,"__esModule",{value:!0}),t.getProxyUrl=function(e){let t="https:"===e.protocol,n;if(r(e))return n;let a;return a=t?process.env.https_proxy||process.env.HTTPS_PROXY:process.env.http_proxy||process.env.HTTP_PROXY,a&&(n=new URL(a)),n},t.checkBypass=r},22899:(e,t)=>{"use strict";async function r(e){const t=3===e.split(/\./).length?"app":/^v\d+\./.test(e)?"installation":"oauth";return{type:"token",token:e,tokenType:t}}function n(e){return 3===e.split(/\./).length?`bearer ${e}`:`token ${e}`}async function a(e,t,r,a){const o=t.endpoint.merge(r,a);return o.headers.authorization=n(e),t(o)}Object.defineProperty(t,"__esModule",{value:!0});t.createTokenAuth=function(e){if(!e)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if("string"!=typeof e)throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return e=e.replace(/^(token|bearer) +/i,""),Object.assign(r.bind(null,e),{hook:a.bind(null,e)})}},40812:(e,t,r)=>{"use strict";function n(e,t){if(null==e)return{};var r={},n=Object.keys(e),a,o;for(o=0;o{},info:()=>{},warn:console.warn.bind(console),error:console.error.bind(console)},e.log),this.hook=t,!!e.authStrategy){const{authStrategy:r}=e,n=a(e,["authStrategy"]),o=r(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:n},e.auth));t.wrap("request",o.hook),this.auth=o}else if(!e.auth)this.auth=async()=>({type:"unauthenticated"});else{const r=d.createTokenAuth(e.auth);t.wrap("request",r.hook),this.auth=r}const n=this.constructor;n.plugins.forEach(t=>{Object.assign(this,t(this,e))})}static defaults(e){const t=class extends this{constructor(...t){const r=t[0]||{};return"function"==typeof e?void super(e(r)):void super(Object.assign({},e,r,r.userAgent&&e.userAgent?{userAgent:`${r.userAgent} ${e.userAgent}`}:null))}};return t}static plugin(...e){var t;const r=this.plugins,n=(t=class extends this{},t.plugins=r.concat(e.filter(e=>!r.includes(e))),t);return n}}p.VERSION="3.2.4",p.plugins=[],t.Octokit=p},70412:(e,t,r)=>{"use strict";function n(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function a(e,t){const r=Object.assign({},e);return Object.keys(t).forEach(n=>{k.isPlainObject(t[n])?n in e?r[n]=a(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function o(e){for(const t in e)void 0===e[t]&&delete e[t];return e}function i(e,t,r){if("string"==typeof t){let[e,n]=t.split(" ");r=Object.assign(n?{method:e,url:n}:{url:e},r)}else r=Object.assign({},t);r.headers=n(r.headers),o(r),o(r.headers);const i=a(e||{},r);return e&&e.mediaType.previews.length&&(i.mediaType.previews=e.mediaType.previews.filter(e=>!i.mediaType.previews.includes(e)).concat(i.mediaType.previews)),i.mediaType.previews=i.mediaType.previews.map(e=>e.replace(/-preview/,"")),i}function s(e,t){const r=/\?/.test(e)?"&":"?",n=Object.keys(t);return 0===n.length?e:e+r+n.map(e=>"q"===e?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${e}=${encodeURIComponent(t[e])}`).join("&")}function l(e){return e.replace(/^\W+|\W+$/g,"").split(/,/)}function d(e){const t=e.match(_);return t?t.map(l).reduce((e,t)=>e.concat(t),[]):[]}function p(e,t){return Object.keys(e).filter(e=>!t.includes(e)).reduce((t,r)=>(t[r]=e[r],t),{})}function c(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(e){return /%[0-9A-Fa-f]/.test(e)||(e=encodeURI(e).replace(/%5B/g,"[").replace(/%5D/g,"]")),e}).join("")}function u(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}function m(e,t,r){return t="+"===e||"#"===e?c(t):u(t),r?u(r)+"="+t:t}function g(e){return void 0!==e&&null!==e}function h(e){return";"===e||"&"===e||"?"===e}function f(e,t,r,n){var a=e[r],o=[];if(!(g(a)&&""!==a))";"===t?g(a)&&o.push(u(r)):""===a&&("&"===t||"?"===t)?o.push(u(r)+"="):""===a&&o.push("");else if("string"==typeof a||"number"==typeof a||"boolean"==typeof a)a=a.toString(),n&&"*"!==n&&(a=a.substring(0,parseInt(n,10))),o.push(m(t,a,h(t)?r:""));else if("*"===n)Array.isArray(a)?a.filter(g).forEach(function(e){o.push(m(t,e,h(t)?r:""))}):Object.keys(a).forEach(function(e){g(a[e])&&o.push(m(t,a[e],e))});else{const e=[];Array.isArray(a)?a.filter(g).forEach(function(r){e.push(m(t,r))}):Object.keys(a).forEach(function(r){g(a[r])&&(e.push(u(r)),e.push(m(t,a[r].toString())))}),h(t)?o.push(u(r)+"="+e.join(",")):0!==e.length&&o.push(e.join(","))}return o}function y(e){return{expand:b.bind(null,e)}}function b(e,t){var r=["+","#",".","/",";","?","&"];return e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(e,n,a){if(n){let e="";const a=[];if(-1!==r.indexOf(n.charAt(0))&&(e=n.charAt(0),n=n.substr(1)),n.split(/,/g).forEach(function(r){var n=/([^:\*]*)(?::(\d+)|(\*))?/.exec(r);a.push(f(t,e,n[1],n[2]||n[3]))}),e&&"+"!==e){var o=",";return"?"===e?o="&":"#"!==e&&(o=e),(0===a.length?"":e)+a.join(o)}return a.join(",")}return c(a)})}function S(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),a=p(e,["method","baseUrl","url","headers","request","mediaType"]),o;const i=d(r);r=y(r).expand(a),/^http/.test(r)||(r=e.baseUrl+r);const l=Object.keys(e).filter(e=>i.includes(e)).concat("baseUrl"),c=p(a,l),u=/application\/octet-stream/i.test(n.accept);if(!u&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(t=>t.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),e.mediaType.previews.length)){const t=n.accept.match(/[\w-]+(?=-preview)/g)||[];n.accept=t.concat(e.mediaType.previews).map(t=>{const r=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${t}-preview${r}`}).join(",")}return["GET","HEAD"].includes(t)?r=s(r,c):"data"in c?o=c.data:Object.keys(c).length?o=c:n["content-length"]=0,n["content-type"]||"undefined"==typeof o||(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&"undefined"==typeof o&&(o=""),Object.assign({method:t,url:r,headers:n},"undefined"==typeof o?null:{body:o},e.request?{request:e.request}:null)}function x(e,t,r){return S(i(e,t,r))}function v(e,t){const r=i(e,t),n=x.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:v.bind(null,r),merge:i.bind(null,r),parse:S})}Object.defineProperty(t,"__esModule",{value:!0});var k=r(80641),C=r(1857);const _=/\{[^}]+\}/g,w=`octokit-endpoint.js/${"6.0.10"} ${C.getUserAgent()}`,T=v(null,{method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":w},mediaType:{format:"",previews:[]}});t.endpoint=T},3584:(e,t,r)=>{"use strict";function n(e,t,r){if("string"==typeof t&&r&&"query"in r)return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`));const n="string"==typeof t?Object.assign({query:t},r):t,a=Object.keys(n).reduce((e,t)=>l.includes(t)?(e[t]=n[t],e):(e.variables||(e.variables={}),e.variables[t]=n[t],e),{}),o=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return d.test(o)&&(a.url=o.replace(d,"/api/graphql")),e(a).then(e=>{if(e.data.errors){const t={};for(const r of Object.keys(e.headers))t[r]=e.headers[r];throw new s(a,{headers:t,data:e.data})}return e.data.data})}function a(e,t){const r=e.defaults(t);return Object.assign((e,t)=>n(r,e,t),{defaults:a.bind(null,r),endpoint:o.request.endpoint})}Object.defineProperty(t,"__esModule",{value:!0});var o=r(48826),i=r(1857);class s extends Error{constructor(e,t){const r=t.data.errors[0].message;super(r),Object.assign(this,t.data),Object.assign(this,{headers:t.headers}),this.name="GraphqlError",this.request=e,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}}const l=["method","baseUrl","url","headers","request","query","mediaType"],d=/\/api\/v3\/?$/,p=a(o.request,{headers:{"user-agent":`octokit-graphql.js/${"4.5.8"} ${i.getUserAgent()}`},method:"POST",url:"/graphql"});t.graphql=p,t.withCustomRequest=function(e){return a(e,{method:"POST",url:"/graphql"})}},19227:(e,t)=>{"use strict";function r(e){const t="total_count"in e.data&&!("url"in e.data);if(!t)return e;const r=e.data.incomplete_results,n=e.data.repository_selection,a=e.data.total_count;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count;const o=Object.keys(e.data)[0],i=e.data[o];return e.data=i,"undefined"!=typeof r&&(e.data.incomplete_results=r),"undefined"!=typeof n&&(e.data.repository_selection=n),e.data.total_count=a,e}function n(e,t,n){const a="function"==typeof t?t.endpoint(n):e.request.endpoint(t,n),o="function"==typeof t?t:e.request,i=a.method,s=a.headers;let l=a.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!l)return{done:!0};const e=await o({method:i,url:l,headers:s}),t=r(e);return l=((t.headers.link||"").match(/<([^>]+)>;\s*rel="next"/)||[])[1],{value:t}}})}}function a(e,t,r,a){return"function"==typeof r&&(a=r,r=void 0),o(e,[],n(e,t,r)[Symbol.asyncIterator](),a)}function o(e,t,r,n){return r.next().then(a=>{if(a.done)return t;let i=!1;return t=t.concat(n?n(a.value,function(){i=!0}):a.value.data),i?t:o(e,t,r,n)})}function i(e){return{paginate:Object.assign(a.bind(null,e),{iterator:n.bind(null,e)})}}Object.defineProperty(t,"__esModule",{value:!0});const s=Object.assign(a,{iterator:n});i.VERSION="2.6.2",t.composePaginateRest=s,t.paginateRest=i},5462:(e,t)=>{"use strict";function r(e,t){const r={};for(const[a,o]of Object.entries(t))for(const[t,i]of Object.entries(o)){const[o,s,l]=i,[d,p]=o.split(/ /),c=Object.assign({method:d,url:p},s);r[a]||(r[a]={});const u=r[a];if(l){u[t]=n(e,a,t,c,l);continue}u[t]=e.request.defaults(c)}return r}function n(e,t,r,n,a){function o(...n){let o=i.endpoint.merge(...n);if(a.mapToData)return o=Object.assign({},o,{data:o[a.mapToData],[a.mapToData]:void 0}),i(o);if(a.renamed){const[n,o]=a.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${n}.${o}()`)}if(a.deprecated&&e.log.warn(a.deprecated),a.renamedParameters){const o=i.endpoint.merge(...n);for(const[n,i]of Object.entries(a.renamedParameters))n in o&&(e.log.warn(`"${n}" parameter is deprecated for "octokit.${t}.${r}()". Use "${i}" instead`),i in o||(o[i]=o[n]),delete o[n]);return i(o)}return i(...n)}const i=e.request.defaults(n);return Object.assign(o,i)}function a(e){return r(e,o)}Object.defineProperty(t,"__esModule",{value:!0});const o={actions:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createContentAttachment:["POST /content_references/{content_reference_id}/attachments",{mediaType:{previews:["corsair"]}}],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct",{mediaType:{previews:["scarlet-witch"]}}],getConductCode:["GET /codes_of_conduct/{key}",{mediaType:{previews:["scarlet-witch"]}}],getForRepo:["GET /repos/{owner}/{repo}/community/code_of_conduct",{mediaType:{previews:["scarlet-witch"]}}]},emojis:{get:["GET /emojis"]},enterpriseAdmin:{disableSelectedOrganizationGithubActionsEnterprise:["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],enableSelectedOrganizationGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"],getAllowedActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/selected-actions"],getGithubActionsPermissionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions"],listSelectedOrganizationsEnabledGithubActionsEnterprise:["GET /enterprises/{enterprise}/actions/permissions/organizations"],setAllowedActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"],setGithubActionsPermissionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions"],setSelectedOrganizationsEnabledGithubActionsEnterprise:["PUT /enterprises/{enterprise}/actions/permissions/organizations"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},interactions:{getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits"]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline",{mediaType:{previews:["mockingbird"]}}],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{cancelImport:["DELETE /repos/{owner}/{repo}/import"],deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive",{mediaType:{previews:["wyandotte"]}}],getCommitAuthors:["GET /repos/{owner}/{repo}/import/authors"],getImportStatus:["GET /repos/{owner}/{repo}/import"],getLargeFiles:["GET /repos/{owner}/{repo}/import/large_files"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}",{mediaType:{previews:["wyandotte"]}}],listForAuthenticatedUser:["GET /user/migrations",{mediaType:{previews:["wyandotte"]}}],listForOrg:["GET /orgs/{org}/migrations",{mediaType:{previews:["wyandotte"]}}],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{mediaType:{previews:["wyandotte"]}}],mapCommitAuthor:["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"],setLfsPreference:["PATCH /repos/{owner}/{repo}/import/lfs"],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],startImport:["PUT /repos/{owner}/{repo}/import"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock",{mediaType:{previews:["wyandotte"]}}],updateImport:["PATCH /repos/{owner}/{repo}/import"]},orgs:{blockUser:["PUT /orgs/{org}/blocks/{username}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createInvitation:["POST /orgs/{org}/invitations"],createWebhook:["POST /orgs/{org}/hooks"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],get:["GET /orgs/{org}"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listBlockedUsers:["GET /orgs/{org}/blocks"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},projects:{addCollaborator:["PUT /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],createCard:["POST /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],createColumn:["POST /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],createForAuthenticatedUser:["POST /user/projects",{mediaType:{previews:["inertia"]}}],createForOrg:["POST /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],createForRepo:["POST /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],delete:["DELETE /projects/{project_id}",{mediaType:{previews:["inertia"]}}],deleteCard:["DELETE /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],deleteColumn:["DELETE /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],get:["GET /projects/{project_id}",{mediaType:{previews:["inertia"]}}],getCard:["GET /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],getColumn:["GET /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}],getPermissionForUser:["GET /projects/{project_id}/collaborators/{username}/permission",{mediaType:{previews:["inertia"]}}],listCards:["GET /projects/columns/{column_id}/cards",{mediaType:{previews:["inertia"]}}],listCollaborators:["GET /projects/{project_id}/collaborators",{mediaType:{previews:["inertia"]}}],listColumns:["GET /projects/{project_id}/columns",{mediaType:{previews:["inertia"]}}],listForOrg:["GET /orgs/{org}/projects",{mediaType:{previews:["inertia"]}}],listForRepo:["GET /repos/{owner}/{repo}/projects",{mediaType:{previews:["inertia"]}}],listForUser:["GET /users/{username}/projects",{mediaType:{previews:["inertia"]}}],moveCard:["POST /projects/columns/cards/{card_id}/moves",{mediaType:{previews:["inertia"]}}],moveColumn:["POST /projects/columns/{column_id}/moves",{mediaType:{previews:["inertia"]}}],removeCollaborator:["DELETE /projects/{project_id}/collaborators/{username}",{mediaType:{previews:["inertia"]}}],update:["PATCH /projects/{project_id}",{mediaType:{previews:["inertia"]}}],updateCard:["PATCH /projects/columns/cards/{card_id}",{mediaType:{previews:["inertia"]}}],updateColumn:["PATCH /projects/columns/{column_id}",{mediaType:{previews:["inertia"]}}]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch",{mediaType:{previews:["lydian"]}}],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}}],deleteLegacy:["DELETE /reactions/{reaction_id}",{mediaType:{previews:["squirrel-girl"]}},{deprecated:"octokit.reactions.deleteLegacy() is deprecated, see https://docs.github.com/v3/reactions/#delete-a-reaction-legacy"}],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions",{mediaType:{previews:["squirrel-girl"]}}]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createPagesSite:["POST /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],createRelease:["POST /repos/{owner}/{repo}/releases"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate",{mediaType:{previews:["baptiste"]}}],createWebhook:["POST /repos/{owner}/{repo}/hooks"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages",{mediaType:{previews:["switcheroo"]}}],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes",{mediaType:{previews:["london"]}}],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts",{mediaType:{previews:["dorian"]}}],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures",{mediaType:{previews:["zzzax"]}}],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head",{mediaType:{previews:["groot"]}}],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls",{mediaType:{previews:["groot"]}}],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics",{mediaType:{previews:["mercy"]}}],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits",{mediaType:{previews:["cloak"]}}],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics",{mediaType:{previews:["mercy"]}}],users:["GET /search/users"]},secretScanning:{getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateProjectPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForProjectInOrg:["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}",{mediaType:{previews:["inertia"]}}],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listProjectsInOrg:["GET /orgs/{org}/teams/{team_slug}/projects",{mediaType:{previews:["inertia"]}}],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeProjectInOrg:["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys"],deleteEmailForAuthenticated:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}"],list:["GET /users"],listBlockedByAuthenticated:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}};a.VERSION="4.4.1",t.restEndpointMethods=a},48364:(e,t,r)=>{"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}Object.defineProperty(t,"__esModule",{value:!0});var a=r(86649),o=n(r(86343));const i=o(e=>console.warn(e));class s extends Error{constructor(e,t,r){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="HttpError",this.status=t,Object.defineProperty(this,"code",{get(){return i(new a.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")),t}}),this.headers=r.headers||{};const n=Object.assign({},r.request);r.request.headers.authorization&&(n.headers=Object.assign({},r.request.headers,{authorization:r.request.headers.authorization.replace(/ .*$/," [REDACTED]")})),n.url=n.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=n}}t.RequestError=s},48826:(e,t,r)=>{"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e["default"]:e}function a(e){return e.arrayBuffer()}function o(e){(d.isPlainObject(e.body)||Array.isArray(e.body))&&(e.body=JSON.stringify(e.body));let t={},r,n;const o=e.request&&e.request.fetch||p;return o(e.url,Object.assign({method:e.method,body:e.body,headers:e.headers,redirect:e.redirect},e.request)).then(o=>{n=o.url,r=o.status;for(const e of o.headers)t[e[0]]=e[1];if(204!==r&&205!==r){if("HEAD"===e.method){if(400>r)return;throw new c.RequestError(o.statusText,r,{headers:t,request:e})}if(304===r)throw new c.RequestError("Not modified",r,{headers:t,request:e});if(400<=r)return o.text().then(n=>{const a=new c.RequestError(n,r,{headers:t,request:e});try{let e=JSON.parse(a.message);Object.assign(a,e);let t=e.errors;a.message=a.message+": "+t.map(JSON.stringify).join(", ")}catch(t){}throw a});const n=o.headers.get("content-type");return /application\/json/.test(n)?o.json():!n||/^text\/|charset=utf-8$/.test(n)?o.text():a(o)}}).then(e=>({status:r,url:n,headers:t,data:e})).catch(r=>{if(r instanceof c.RequestError)throw r;throw new c.RequestError(r.message,500,{headers:t,request:e})})}function i(e,t){const r=e.defaults(t);return Object.assign(function(e,t){const n=r.merge(e,t);if(!n.request||!n.request.hook)return o(r.parse(n));const a=(e,t)=>o(r.parse(r.merge(e,t)));return Object.assign(a,{endpoint:r,defaults:i.bind(null,r)}),n.request.hook(a,n)},{endpoint:r,defaults:i.bind(null,r)})}Object.defineProperty(t,"__esModule",{value:!0});var s=r(70412),l=r(1857),d=r(80641),p=n(r(22434)),c=r(48364);const u=i(s.endpoint,{headers:{"user-agent":`octokit-request.js/${"5.4.12"} ${l.getUserAgent()}`}});t.request=u},67208:function(e,t,r){"use strict";function n(e){return!!e&&"function"==typeof e.addRequest}function a(e){return!!e&&"function"==typeof e.addRequest}function o(){const{stack:e}=new Error;return"string"==typeof e&&e.split("\n").some(e=>-1!==e.indexOf("(https.js:"))}function i(e,t){return new i.Agent(e,t)}var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};const l=r(28614),d=s(r(2929));(function(e){class t extends l.EventEmitter{constructor(e,t){super(),this.promisifiedCallback=void 0;let r=t;"function"==typeof e?this.callback=e:e&&(r=e),this.timeout=null,r&&"number"==typeof r.timeout&&(this.timeout=r.timeout),this.options=r||{},this.maxFreeSockets=1,this.maxSockets=1,this.sockets=[],this.requests=[]}get defaultPort(){return"number"==typeof this.explicitDefaultPort?this.explicitDefaultPort:o()?443:80}set defaultPort(e){this.explicitDefaultPort=e}get protocol(){return"string"==typeof this.explicitProtocol?this.explicitProtocol:o()?"https:":"http:"}set protocol(e){this.explicitProtocol=e}callback(){throw new Error("\"agent-base\" has no default implementation, you must subclass and override `callback()`")}addRequest(e,t){function r(t){e._hadError||(e.emit("error",t),e._hadError=!0)}function i(e){c||(null!==u&&(clearTimeout(u),u=null),r(e))}function s(t){function o(){g(i,p)}let i;if(!c){if(null!=u&&(clearTimeout(u),u=null),n(t)||a(t))return void t.addRequest(e,p);if(t)return i=t,i.on("free",o),void e.onSocket(i);const s=new Error(`no Duplex stream was returned to agent-base for \`${e.method} ${e.path}\``);r(s)}}const l=Object.assign({},t);"boolean"!=typeof l.secureEndpoint&&(l.secureEndpoint=o()),null==l.host&&(l.host="localhost"),null==l.port&&(l.port=l.secureEndpoint?443:80);const p=Object.assign(Object.assign({},this.options),l);p.host&&p.path&&delete p.path,delete p.agent,delete p.hostname,delete p._defaultAgent,delete p.defaultPort,delete p.createConnection,e._last=!0,e.shouldKeepAlive=!1;let c=!1,u=null;const m=this.timeout,g=this.freeSocket;if("function"!=typeof this.callback)return void r(new Error("`callback` is not defined"));this.promisifiedCallback||(3<=this.callback.length?this.promisifiedCallback=d.default(this.callback):this.promisifiedCallback=this.callback),"number"==typeof m&&0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return function(t,r){return new Promise((n,a)=>{e.call(this,t,r,(e,t)=>{e?a(e):n(t)})})}}},2390:(e,t,r)=>{e.exports=r(64579)},38007:(e,t,r)=>{"use strict";function n(e,t,r){if(e.hostname=t.host,e.host=t.host,e.port=t.port,e.path=r,t.auth){var a=Buffer.from(t.auth.username+":"+t.auth.password,"utf8").toString("base64");e.headers["Proxy-Authorization"]="Basic "+a}e.beforeRedirect=function(e){e.headers.host=e.host,n(e,t,e.href)}}var a=r(19520),o=r(29801),i=r(92074),s=r(87481),l=r(98605),d=r(57211),p=r(75955).http,c=r(75955).https,u=r(78835),m=r(78761),g=r(35131),h=r(3034),f=r(95261),y=/https:?/;e.exports=function(e){return new Promise(function(t,r){var b=function(e){t(e)},S=function(e){r(e)},x=e.data,v=e.headers;if(v["User-Agent"]||v["user-agent"]||(v["User-Agent"]="axios/"+g.version),x&&!a.isStream(x)){if(Buffer.isBuffer(x));else if(a.isArrayBuffer(x))x=Buffer.from(new Uint8Array(x));else if(a.isString(x))x=Buffer.from(x,"utf-8");else return S(h("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));v["Content-Length"]=x.length}var k;if(e.auth){var C=e.auth.username||"",_=e.auth.password||"";k=C+":"+_}var w=i(e.baseURL,e.url),T=u.parse(w),E=T.protocol||"http:";if(!k&&T.auth){var A=T.auth.split(":"),O=A[0]||"",P=A[1]||"";k=O+":"+P}k&&delete v.Authorization;var L=y.test(E),z=L?e.httpsAgent:e.httpAgent,R={path:s(T.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:v,agent:z,agents:{http:e.httpAgent,https:e.httpsAgent},auth:k};e.socketPath?R.socketPath=e.socketPath:(R.hostname=T.hostname,R.port=T.port);var I=e.proxy;if(!I&&!1!==I){var M=E.slice(0,-1)+"_proxy",W=process.env[M]||process.env[M.toUpperCase()];if(W){var q=u.parse(W),B=process.env.no_proxy||process.env.NO_PROXY,N=!0;if(B){var D=B.split(",").map(function(e){return e.trim()});N=!D.some(function(e){return!!e&&("*"===e||"."===e[0]&&T.hostname.substr(T.hostname.length-e.length)===e||T.hostname===e)})}if(N&&(I={host:q.hostname,port:q.port,protocol:q.protocol},q.auth)){var F=q.auth.split(":");I.auth={username:F[0],password:F[1]}}}}I&&(R.headers.host=T.hostname+(T.port?":"+T.port:""),n(R,I,E+"//"+T.hostname+(T.port?":"+T.port:"")+R.path));var G=L&&(!I||y.test(I.protocol)),U;e.transport?U=e.transport:0===e.maxRedirects?U=G?d:l:(e.maxRedirects&&(R.maxRedirects=e.maxRedirects),U=G?c:p),-1e.maxContentLength&&(r.destroy(),S(h("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,n)))}),r.on("error",function(t){j.aborted||S(f(t,e,null,n))}),r.on("end",function(){var t=Buffer.concat(s);"arraybuffer"!==e.responseType&&(t=t.toString(e.responseEncoding),(!e.responseEncoding||"utf8"===e.responseEncoding)&&(t=a.stripBOM(t))),i.data=t,o(b,S,i)})}}});j.on("error",function(t){j.aborted&&"ERR_FR_TOO_MANY_REDIRECTS"!==t.code||S(f(t,e,null,j))}),e.timeout&&j.setTimeout(e.timeout,function(){j.abort(),S(h("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",j))}),e.cancelToken&&e.cancelToken.promise.then(function(e){j.aborted||(j.abort(),S(e))}),a.isStream(x)?x.on("error",function(t){S(f(t,e,null,j))}).pipe(j):j.end(x)})}},63500:(e,t,r)=>{"use strict";var n=r(19520),a=r(29801),o=r(47536),i=r(87481),s=r(92074),l=r(77912),d=r(11682),p=r(3034);e.exports=function(t){return new Promise(function(e,r){var c=t.data,u=t.headers;n.isFormData(c)&&delete u["Content-Type"];var m=new XMLHttpRequest;if(t.auth){var g=t.auth.username||"",h=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";u.Authorization="Basic "+btoa(g+":"+h)}var f=s(t.baseURL,t.url);if(m.open(t.method.toUpperCase(),i(f,t.params,t.paramsSerializer),!0),m.timeout=t.timeout,m.onreadystatechange=function(){if(m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in m?l(m.getAllResponseHeaders()):null,o=t.responseType&&"text"!==t.responseType?m.response:m.responseText,i={data:o,status:m.status,statusText:m.statusText,headers:n,config:t,request:m};a(e,r,i),m=null}},m.onabort=function(){m&&(r(p("Request aborted",t,"ECONNABORTED",m)),m=null)},m.onerror=function(){r(p("Network Error",t,null,m)),m=null},m.ontimeout=function(){var e="timeout of "+t.timeout+"ms exceeded";t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),r(p(e,t,"ECONNABORTED",m)),m=null},n.isStandardBrowserEnv()){var y=(t.withCredentials||d(f))&&t.xsrfCookieName?o.read(t.xsrfCookieName):void 0;y&&(u[t.xsrfHeaderName]=y)}if("setRequestHeader"in m&&n.forEach(u,function(e,t){"undefined"==typeof c&&"content-type"===t.toLowerCase()?delete u[t]:m.setRequestHeader(t,e)}),n.isUndefined(t.withCredentials)||(m.withCredentials=!!t.withCredentials),t.responseType)try{m.responseType=t.responseType}catch(r){if("json"!==t.responseType)throw r}"function"==typeof t.onDownloadProgress&&m.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&m.upload&&m.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(e){m&&(m.abort(),r(e),m=null)}),c||(c=null),m.send(c)})}},64579:(e,t,r)=>{"use strict";function n(e){var t=new i(e),r=o(i.prototype.request,t);return a.extend(r,i.prototype,t),a.extend(r,t),r}var a=r(19520),o=r(69339),i=r(10353),s=r(59807),l=r(6769),d=n(l);d.Axios=i,d.create=function(e){return n(s(d.defaults,e))},d.Cancel=r(56305),d.CancelToken=r(99576),d.isCancel=r(57822),d.all=function(e){return Promise.all(e)},d.spread=r(83202),d.isAxiosError=r(34722),e.exports=d,e.exports.default=d},56305:e=>{"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},99576:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise(function(e){t=e});var r=this;e(function(e){r.reason||(r.reason=new a(e),t(r.reason))})}var a=r(56305);n.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},n.source=function(){var e=new n(function(e){t=e}),t;return{token:e,cancel:t}},e.exports=n},57822:e=>{"use strict";e.exports=function(e){return!!(e&&e.__CANCEL__)}},10353:(e,t,r)=>{"use strict";function n(e){this.defaults=e,this.interceptors={request:new i,response:new i}}var a=r(19520),o=r(87481),i=r(88030),s=r(18944),l=r(59807);n.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=l(this.defaults,e),e.method=e.method?e.method.toLowerCase():this.defaults.method?this.defaults.method.toLowerCase():"get";var t=[s,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){t.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){t.push(e.fulfilled,e.rejected)});t.length;)r=r.then(t.shift(),t.shift());return r},n.prototype.getUri=function(e){return e=l(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},a.forEach(["delete","get","head","options"],function(e){n.prototype[e]=function(t,r){return this.request(l(r||{},{method:e,url:t,data:(r||{}).data}))}}),a.forEach(["post","put","patch"],function(e){n.prototype[e]=function(t,r,n){return this.request(l(n||{},{method:e,url:t,data:r}))}}),e.exports=n},88030:(e,t,r)=>{"use strict";function n(){this.handlers=[]}var a=r(19520);n.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},n.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},n.prototype.forEach=function(e){a.forEach(this.handlers,function(t){null!==t&&e(t)})},e.exports=n},92074:(e,t,r)=>{"use strict";var n=r(55470),a=r(65824);e.exports=function(e,t){return e&&!n(t)?a(e,t):t}},3034:(e,t,r)=>{"use strict";var n=r(95261);e.exports=function(e,t,r,a,o){var i=new Error(e);return n(i,t,r,a,o)}},18944:(e,t,r)=>{"use strict";function n(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var a=r(19520),o=r(62479),i=r(57822),s=r(6769);e.exports=function(e){n(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=a.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),a.forEach(["delete","get","head","post","put","patch","common"],function(t){delete e.headers[t]});var t=e.adapter||s.adapter;return t(e).then(function(t){return n(e),t.data=o(t.data,t.headers,e.transformResponse),t},function(t){return i(t)||(n(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)})}},95261:e=>{"use strict";e.exports=function(e,t,r,n,a){return e.config=t,r&&(e.code=r),e.request=n,e.response=a,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},59807:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t){function r(e,t){return n.isPlainObject(e)&&n.isPlainObject(t)?n.merge(e,t):n.isPlainObject(t)?n.merge({},t):n.isArray(t)?t.slice():t}function a(a){n.isUndefined(t[a])?!n.isUndefined(e[a])&&(o[a]=r(void 0,e[a])):o[a]=r(e[a],t[a])}t=t||{};var o={},i=["url","method","data"],s=["headers","auth","proxy","params"],l=["baseURL","transformRequest","transformResponse","paramsSerializer","timeout","timeoutMessage","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","decompress","maxContentLength","maxBodyLength","maxRedirects","transport","httpAgent","httpsAgent","cancelToken","socketPath","responseEncoding"],d=["validateStatus"];n.forEach(i,function(e){n.isUndefined(t[e])||(o[e]=r(void 0,t[e]))}),n.forEach(s,a),n.forEach(l,function(a){n.isUndefined(t[a])?!n.isUndefined(e[a])&&(o[a]=r(void 0,e[a])):o[a]=r(void 0,t[a])}),n.forEach(d,function(n){n in t?o[n]=r(e[n],t[n]):n in e&&(o[n]=r(void 0,e[n]))});var p=i.concat(s).concat(l).concat(d),c=Object.keys(e).concat(Object.keys(t)).filter(function(e){return-1===p.indexOf(e)});return n.forEach(c,a),o}},29801:(e,t,r)=>{"use strict";var n=r(3034);e.exports=function(e,t,r){var a=r.config.validateStatus;r.status&&a&&!a(r.status)?t(n("Request failed with status code "+r.status,r.config,null,r.request,r)):e(r)}},62479:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t,r){return n.forEach(r,function(r){e=r(e,t)}),e}},6769:(e,t,r)=>{"use strict";function n(e,t){!a.isUndefined(e)&&a.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var a=r(19520),o=r(53293),i={"Content-Type":"application/x-www-form-urlencoded"},s={adapter:function(){var e;return"undefined"==typeof XMLHttpRequest?"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process)&&(e=r(38007)):e=r(63500),e}(),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),a.isFormData(e)||a.isArrayBuffer(e)||a.isBuffer(e)||a.isStream(e)||a.isFile(e)||a.isBlob(e)?e:a.isArrayBufferView(e)?e.buffer:a.isURLSearchParams(e)?(n(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):a.isObject(e)?(n(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(t){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,validateStatus:function(e){return 200<=e&&300>e}};s.headers={common:{Accept:"application/json, text/plain, */*"}},a.forEach(["delete","get","head"],function(e){s.headers[e]={}}),a.forEach(["post","put","patch"],function(e){s.headers[e]=a.merge(i)}),e.exports=s},69339:e=>{"use strict";e.exports=function(e,t){return function(){for(var r=Array(arguments.length),n=0;n{"use strict";function n(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var a=r(19520);e.exports=function(e,t,r){if(!t)return e;var o;if(r)o=r(t);else if(a.isURLSearchParams(t))o=t.toString();else{var i=[];a.forEach(t,function(e,t){null===e||"undefined"==typeof e||(a.isArray(e)?t+="[]":e=[e],a.forEach(e,function(e){a.isDate(e)?e=e.toISOString():a.isObject(e)&&(e=JSON.stringify(e)),i.push(n(t)+"="+n(e))}))}),o=i.join("&")}if(o){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}},65824:e=>{"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},47536:(e,t,r)=>{"use strict";var n=r(19520);e.exports=n.isStandardBrowserEnv()?function(){return{write:function(e,t,r,a,o,i){var s=[];s.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&s.push("expires="+new Date(r).toGMTString()),n.isString(a)&&s.push("path="+a),n.isString(o)&&s.push("domain="+o),!0===i&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},55470:e=>{"use strict";e.exports=function(e){return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},34722:e=>{"use strict";e.exports=function(e){return"object"==typeof e&&!0===e.isAxiosError}},11682:(e,t,r)=>{"use strict";var n=r(19520);e.exports=n.isStandardBrowserEnv()?function(){function e(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}var t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a"),a;return a=e(window.location.href),function(t){var r=n.isString(t)?e(t):t;return r.protocol===a.protocol&&r.host===a.host}}():function(){return function(){return!0}}()},53293:(e,t,r)=>{"use strict";var n=r(19520);e.exports=function(e,t){n.forEach(e,function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])})}},77912:(e,t,r)=>{"use strict";var n=r(19520),a=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t={},r,o,s;return e?(n.forEach(e.split("\n"),function(e){if(s=e.indexOf(":"),r=n.trim(e.substr(0,s)).toLowerCase(),o=n.trim(e.substr(s+1)),r){if(t[r]&&0<=a.indexOf(r))return;t[r]="set-cookie"===r?(t[r]?t[r]:[]).concat([o]):t[r]?t[r]+", "+o:o}}),t):t}},83202:e=>{"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},19520:(e,t,r)=>{"use strict";function n(e){return"[object Array]"===u.call(e)}function a(e){return"undefined"==typeof e}function o(e){return null!==e&&"object"==typeof e}function i(e){if("[object Object]"!==u.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}function s(e){return"[object Function]"===u.call(e)}function d(e,t){if(null!==e&&"undefined"!=typeof e)if("object"!=typeof e&&(e=[e]),n(e))for(var r=0,a=e.length;r{"use strict";function t(e,t,i){e instanceof RegExp&&(e=n(e,i)),t instanceof RegExp&&(t=n(t,i));var s=o(e,t,i);return s&&{start:s[0],end:s[1],pre:i.slice(0,s[0]),body:i.slice(s[0]+e.length,s[1]),post:i.slice(s[1]+t.length)}}function n(e,t){var r=t.match(e);return r?r[0]:null}function o(e,t,r){var n=r.indexOf(e),a=r.indexOf(t,n+1),o=n,s,l,d,p,c;if(0<=n&&0{function n(e,t,r){var n=p(l,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(function(n){var a=r?[t,n,r]:[t,n];e[n]=e.api[n]=p(s,null).apply(null,a)})}function a(){var e={registry:{}},t=i.bind(null,e);return n(t,e),t}function o(){return c||(console.warn("[before-after-hook]: \"Hook()\" repurposing warning, use \"Hook.Collection()\". Read more: https://git.io/upgrade-before-after-hook-to-1.4"),c=!0),a()}var i=r(27798),s=r(82446),l=r(16436),d=Function.bind,p=d.bind(d),c=!1;o.Singular=function(){var e={registry:{}},t=i.bind(null,e,"h");return n(t,e,"h"),t}.bind(),o.Collection=a.bind(),e.exports=o,e.exports.Hook=o,e.exports.Singular=o.Singular,e.exports.Collection=o.Collection},82446:e=>{e.exports=function(e,t,r,n){var a=n;e.registry[r]||(e.registry[r]=[]),"before"===t&&(n=function(e,t){return Promise.resolve().then(a.bind(null,t)).then(e.bind(null,t))}),"after"===t&&(n=function(e,t){var r;return Promise.resolve().then(e.bind(null,t)).then(function(e){return r=e,a(r,t)}).then(function(){return r})}),"error"===t&&(n=function(e,t){return Promise.resolve().then(e.bind(null,t)).catch(function(e){return a(e,t)})}),e.registry[r].push({hook:n,orig:a})}},27798:e=>{function t(e,r,n,a){if("function"!=typeof n)throw new Error("method for before hook must be a function");return a||(a={}),Array.isArray(r)?r.reverse().reduce(function(r,n){return t.bind(null,e,n,r,a)},n)():Promise.resolve().then(function(){return e.registry[r]?e.registry[r].reduce(function(e,t){return t.hook.bind(null,e,a)},n)():n(a)})}e.exports=t},16436:e=>{e.exports=function(e,t,r){if(e.registry[t]){var n=e.registry[t].map(function(e){return e.orig}).indexOf(r);-1===n||e.registry[t].splice(n,1)}}},66616:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void n._init.call(this,e):new n(e)}const{Buffer:a}=r(64293),o=Symbol.for("BufferList");n._init=function(e){Object.defineProperty(this,o,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)},n.prototype._new=function(e){return new n(e)},n.prototype._offset=function(e){if(0===e)return[0,0];let t=0;for(let r=0;rthis.length||0>e)){const t=this._offset(e);return this._bufs[t[0]][t[1]]}},n.prototype.slice=function(e,t){return"number"==typeof e&&0>e&&(e+=this.length),"number"==typeof t&&0>t&&(t+=this.length),this.copy(null,0,e,t)},n.prototype.copy=function e(t,r,n,o){if(("number"!=typeof n||0>n)&&(n=0),("number"!=typeof o||o>this.length)&&(o=this.length),n>=this.length)return t||a.alloc(0);if(0>=o)return t||a.alloc(0);const e=!!t,s=this._offset(n),l=o-n;let d=l,p=e&&r||0,c=s[1];if(0===n&&o===this.length){if(!e)return 1===this._bufs.length?this._bufs[0]:a.concat(this._bufs,this.length);for(let e=0;er)this._bufs[e].copy(t,p,c),p+=r;else{this._bufs[e].copy(t,p,c,c+d),p+=r;break}d-=r,c&&(c=0)}return t.length>p?t.slice(0,p):t},n.prototype.shallowSlice=function(e,t){if(e=e||0,t="number"==typeof t?t:this.length,0>e&&(e+=this.length),0>t&&(t+=this.length),e===t)return this._new();const r=this._offset(e),n=this._offset(t),a=this._bufs.slice(r[0],n[0]+1);return 0===n[1]?a.pop():a[a.length-1]=a[a.length-1].slice(0,n[1]),0!==r[1]&&(a[0]=a[0].slice(r[1])),this._new(a)},n.prototype.toString=function(e,t,r){return this.slice(t,r).toString(e)},n.prototype.consume=function(e){var t=Number.isNaN,r=Math.trunc;if(e=r(e),t(e)||0>=e)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this},n.prototype.duplicate=function(){const e=this._new();for(let t=0;tt&&(t=this.length+t),0>t&&(t=0),0===e.length)return t>this.length?this.length:t;const n=this._offset(t);let o=n[0],i=n[1];for(;o=e.length){const r=t.indexOf(e,i);if(-1!==r)return this._reverseOffset([o,r]);i=t.length-e.length+1}else{const t=this._reverseOffset([o,i]);if(this._match(t,e))return t;i++}}i=0}return-1},n.prototype._match=function(e,t){if(this.length-e{"use strict";function n(e){if(!(this instanceof n))return new n(e);if("function"==typeof e){this._callback=e;const t=function(e){this._callback&&(this._callback(e),this._callback=null)}.bind(this);this.on("pipe",function(e){e.on("error",t)}),this.on("unpipe",function(e){e.removeListener("error",t)}),e=null}i._init.call(this,e),a.call(this)}const a=r(30009).Duplex,o=r(94835),i=r(66616);o(n,a),Object.assign(n.prototype,i.prototype),n.prototype._new=function(e){return new n(e)},n.prototype._write=function(e,t,r){this._appendBuffer(e),"function"==typeof r&&r()},n.prototype._read=function(e){return this.length?void(e=_Mathmin(e,this.length),this.push(this.slice(0,e)),this.consume(e)):this.push(null)},n.prototype.end=function(e){a.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)},n.prototype._destroy=function(e,t){this._bufs.length=0,this.length=0,t(e)},n.prototype._isBufferList=function(e){return e instanceof n||e instanceof i||n.isBufferList(e)},n.isBufferList=i.isBufferList,e.exports=n,e.exports.BufferListStream=n,e.exports.BufferList=i},94835:(t,r,n)=>{try{var a=n(31669);if("function"!=typeof a.inherits)throw"";t.exports=a.inherits}catch(r){t.exports=n(72739)}},72739:e=>{e.exports="function"==typeof Object.create?function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:function(e,t){if(t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}}},71947:e=>{"use strict";function t(e,t,r){function n(e,r,n){return"string"==typeof t?t:t(e,r,n)}r||(r=Error);class a extends r{constructor(e,t,r){super(n(e,t,r))}}a.prototype.name=r.name,a.prototype.code=e,i[e]=a}function r(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>e+""),2r?0:+r,t.length)===t}function a(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function o(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}const i={};t("ERR_INVALID_OPT_VALUE",function(e,t){return"The value \""+t+"\" is invalid for option \""+e+"\""},TypeError),t("ERR_INVALID_ARG_TYPE",function(e,t,i){let s;"string"==typeof t&&n(t,"not ")?(s="must not be",t=t.replace(/^not /,"")):s="must be";let l;if(a(e," argument"))l=`The ${e} ${s} ${r(t,"type")}`;else{const n=o(e,".")?"property":"argument";l=`The "${e}" ${n} ${s} ${r(t,"type")}`}return l+=`. Received type ${typeof i}`,l},TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=i},18084:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void(s.call(this,e),l.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",a)))):new n(e)}function a(){this._writableState.ended||process.nextTick(o,this)}function o(e){e.end()}var i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=n;var s=r(11864),l=r(92042);r(94835)(n,s);for(var d=i(l.prototype),p=0,c;p{"use strict";function n(e){return this instanceof n?void a.call(this,e):new n(e)}e.exports=n;var a=r(57173);r(94835)(n,a),n.prototype._transform=function(e,t,r){r(null,e)}},11864:(e,t,r)=>{"use strict";function n(e){return z.from(e)}function a(e){return z.isBuffer(e)||e instanceof R}function o(e,t,r){return"function"==typeof e.prependListener?e.prependListener(t,r):void(e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r))}function i(e,t,n){A=A||r(18084),e=e||{},"boolean"!=typeof n&&(n=t instanceof A),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=N(this,e,"readableHighWaterMark",n),this.buffer=new W,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(!H&&(H=r(84882).s),this.decoder=new H(e.encoding),this.encoding=e.encoding)}function s(e){if(A=A||r(18084),!(this instanceof s))return new s(e);var t=this instanceof A;this._readableState=new i(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),L.call(this)}function l(e,t,r,a,o){M("readableAddChunk",t);var i=e._readableState;if(null===t)i.reading=!1,m(e,i);else{var s;if(o||(s=p(i,t)),s)Y(e,s);else if(!(i.objectMode||t&&0>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function u(e,t){return 0>=e||0===t.length&&t.ended?0:t.objectMode?1:e===e?(e>t.highWaterMark&&(t.highWaterMark=c(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0)):t.flowing&&t.length?t.buffer.head.data.length:t.length}function m(e,t){if(M("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?g(e):(t.needReadable=!1,!t.emittedReadable&&(t.emittedReadable=!0,h(e)))}}function g(e){var t=e._readableState;M("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(M("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;M("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,C(e)}function f(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(y,e,t))}function y(e,t){for(;!t.reading&&!t.ended&&(t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function w(e){var t=e._readableState;M("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(M("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function E(e,t){for(var r=0,n=e.length;r=t.highWaterMark)||t.ended))return M("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?w(this):g(this),null;if(e=u(e,t),0===e&&t.ended)return 0===t.length&&w(this),null;var a=t.needReadable;M("need readable",a),(0===t.length||t.length-e{"use strict";function n(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new d);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){w(t,e)}}function a(e){return O.from(e)}function o(e){return O.isBuffer(e)||e instanceof P}function i(){}function s(e,t,a){T=T||r(18084),e=e||{},"boolean"!=typeof a&&(a=t instanceof T),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=R(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){f(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function l(e){T=T||r(18084);var t=this instanceof T;return t||j.call(l,this)?void(this._writableState=new s(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),A.call(this)):new l(e)}function d(e,t){var r=new F;U(e,r),process.nextTick(t,r)}function p(e,t,r,n){var a;return null===r?a=new D:"string"!=typeof r&&!t.objectMode&&(a=new M("chunk",["string","Buffer"],r)),!a||(U(e,a),process.nextTick(n,a),!1)}function c(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=O.from(t,r)),t}function u(e,t,r,n,a,o){if(!r){var i=c(t,n,a);n!==i&&(r=!0,a="buffer",n=i)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){return{value:e,done:t}}function o(e){var t=e[d];if(null!==t){var r=e[h].read();null!==r&&(e[m]=null,e[d]=null,e[p]=null,t(a(r,!1)))}}function i(e){process.nextTick(o,e)}function s(e,t){return function(r,n){e.then(function(){return t[u]?void r(a(void 0,!0)):void t[g](r,n)},n)}}var l=r(26052),d=Symbol("lastResolve"),p=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),m=Symbol("lastPromise"),g=Symbol("handlePromise"),h=Symbol("stream"),f=Object.getPrototypeOf(function(){}),y=Object.setPrototypeOf((b={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(a(void 0,!0));if(this[h].destroyed)return new Promise(function(t,r){process.nextTick(function(){e[c]?r(e[c]):t(a(void 0,!0))})});var r=this[m],n;if(r)n=new Promise(s(r,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(a(o,!1));n=new Promise(this[g])}return this[m]=n,n}},n(b,Symbol.asyncIterator,function(){return this}),n(b,"return",function(){var e=this;return new Promise(function(t,r){e[h].destroy(null,function(e){return e?void r(e):void t(a(void 0,!0))})})}),b),f),b;e.exports=function(e){var t=Object.create(y,(r={},n(r,h,{value:e,writable:!0}),n(r,d,{value:null,writable:!0}),n(r,p,{value:null,writable:!0}),n(r,c,{value:null,writable:!0}),n(r,u,{value:e._readableState.endEmitted,writable:!0}),n(r,g,{value:function(e,r){var n=t[h].read();n?(t[m]=null,t[d]=null,t[p]=null,e(a(n,!1))):(t[d]=e,t[p]=r)},writable:!0}),r)),r;return t[m]=null,l(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var r=t[p];return null!==r&&(t[m]=null,t[d]=null,t[p]=null,r(e)),void(t[c]=e)}var n=t[d];null!==n&&(t[m]=null,t[d]=null,t[p]=null,n(a(void 0,!0))),t[u]=!0}),e.on("readable",i.bind(null,t)),t}},38568:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1,r;t>>0),r=this.head,n=0;r;)d(r.data,t,n),n+=r.data.length,r=r.next;return t}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(a+=i===o.length?o:o.slice(0,e),e-=i,0===e){i===o.length?(++r,this.head=t.next?t.next:this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,a}},{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),r=this.head,a=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),e-=i,0===e){i===o.length?(++a,this.head=r.next?r.next:this.tail=null):(this.head=r,r.data=o.slice(i));break}++a}return this.length-=a,t}},{key:h,value:function(e,t){return g(this,a({},t,{depth:0,customInspect:!1}))}}]),e}()},22126:e=>{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var o=this,i=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return i||s?(a?a(e):e&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,process.nextTick(n,this,e)):process.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!a&&e?o._writableState?o._writableState.errorEmitted?process.nextTick(r,o):(o._writableState.errorEmitted=!0,process.nextTick(t,o,e)):process.nextTick(t,o,e):a?(process.nextTick(r,o),a(e)):process.nextTick(r,o)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},26052:(e,t,r)=>{"use strict";function n(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=Array(r),a=0;a{"use strict";function n(e,t,r,n,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function a(e){return function(){var t=this,r=arguments;return new Promise(function(a,o){function i(e){n(l,a,o,i,s,"next",e)}function s(e){n(l,a,o,i,s,"throw",e)}var l=e.apply(t,r);i(void 0)})}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1,r;t{"use strict";function n(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}function a(e){if(e)throw e}function o(e){return e.setHeader&&"function"==typeof e.abort}function s(e,t,a,i){i=n(i);var s=!1;e.on("close",function(){s=!0}),void 0===g&&(g=r(26052)),g(e,{readable:t,writable:a},function(e){return e?i(e):void(s=!0,i())});var l=!1;return function(t){if(!s)return l?void 0:(l=!0,o(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new m("pipe")))}}function l(e){e()}function d(e,t){return e.pipe(t)}function p(e){return e.length?"function"==typeof e[e.length-1]?e.pop():a:a}var c=r(71947).q,u=c.ERR_MISSING_ARGS,m=c.ERR_STREAM_DESTROYED,g;e.exports=function(){for(var e=arguments.length,t=Array(e),r=0;rt.length)throw new u("streams");var a=t.map(function(e,r){var i=r{"use strict";function n(e,t,r){return null==e.highWaterMark?t?e[r]:null:e.highWaterMark}var a=r(71947).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,o){var i=n(t,o,r);if(null!=i){if(!(isFinite(i)&&_Mathfloor(i)===i)||0>i){var s=o?r:"highWaterMark";throw new a(s,i)}return _Mathfloor(i)}return e.objectMode?16:16384}}},47640:(e,t,r)=>{e.exports=r(92413)},30009:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):(t=e.exports=r(11864),t.Stream=n||t,t.Readable=t,t.Writable=r(92042),t.Duplex=r(18084),t.Transform=r(57173),t.PassThrough=r(11798),t.finished=r(26052),t.pipeline=r(14705))},27510:e=>{e.exports={trueFunc:function(){return!0},falseFunc:function(){return!1}}},63726:(e,t,r)=>{function a(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function o(e){return e.split("\\\\").join(y).split("\\{").join(b).split("\\}").join(S).split("\\,").join(x).split("\\.").join(v)}function i(e){return e.split(y).join("\\").split(b).join("{").split(S).join("}").split(x).join(",").split(v).join(".")}function s(e){if(!e)return[""];var t=[],r=f("{","}",e);if(!r)return e.split(",");var n=r.pre,a=r.body,o=r.post,i=n.split(",");i[i.length-1]+="{"+a+"}";var l=s(o);return o.length&&(i[i.length-1]+=l.shift(),i.push.apply(i,l)),t.push.apply(t,i),t}function l(e){return"{"+e+"}"}function d(e){return /^-?0\d/.test(e)}function p(e,t){return e<=t}function u(e,t){return e>=t}function g(e,t){var r=[],o=f("{","}",e);if(!o||/\$$/.test(o.pre))return[e];var m=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(o.body),b=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(o.body),v=m||b,C=0<=o.body.indexOf(",");if(!v&&!C)return o.post.match(/,.*\}/)?(e=o.pre+"{"+o.body+S+o.post,g(e)):[e];var _;if(v)_=o.body.split(/\.\./);else if(_=s(o.body),1===_.length&&(_=g(_[0],!1).map(l),1===_.length)){var w=o.post.length?g(o.post,!1):[""];return w.map(function(e){return o.pre+_[0]+e})}var T=o.pre,w=o.post.length?g(o.post,!1):[""],E;if(v){var A=a(_[0]),x=a(_[1]),y=_Mathmax(_[0].length,_[1].length),O=3==_.length?_Mathabs(a(_[2])):1,P=p;xR?"-"+W+I.slice(1):W+I}}E.push(I)}}else E=h(_,function(e){return g(e,!1)});for(var z=0;z{function a(e){if(l.isBuffer(e))return e;var t="function"==typeof l.alloc&&"function"==typeof l.from;if("number"==typeof e)return t?l.alloc(e):new l(e);if("string"==typeof e)return t?l.from(e):new l(e);throw new Error("input must be buffer, number, or string, received "+typeof e)}function o(e){var t=a(4);return t.writeInt32BE(e,0),t}function i(e,t){e=a(e),l.isBuffer(t)&&(t=t.readUInt32BE(0));for(var r=-1^~~t,o=0;o>>8;return-1^r}function s(){return o(i.apply(null,arguments))}var l=r(64293).Buffer,d=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];"undefined"!=typeof Int32Array&&(d=new Int32Array(d)),s.signed=function(){return i.apply(null,arguments)},s.unsigned=function(){return i.apply(null,arguments)>>>0},e.exports=s},95418:(e,t,r)=>{"use strict";var n=r(24888),a=r(37721),o=a(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&-1{"use strict";var n=r(10373),a=r(24888),o=a("%Function.prototype.apply%"),i=a("%Function.prototype.call%"),s=a("%Reflect.apply%",!0)||n.call(i,o),l=a("%Object.defineProperty%",!0);if(l)try{l({},"a",{value:1})}catch(t){l=null}e.exports=function(){return s(n,i,arguments)};var d=function(){return s(n,o,arguments)};l?l(e.exports,"apply",{value:d}):e.exports.apply=d},28729:(e,t,r)=>{"use strict";const n=r(35747),a=r(85622),o=n.lchown?"lchown":"chown",i=n.lchownSync?"lchownSync":"chownSync",s=n.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),l=(e,t,r)=>{try{return n[i](e,t,r)}catch(e){if("ENOENT"!==e.code)throw e}},d=(e,t,r)=>{try{return n.chownSync(e,t,r)}catch(e){if("ENOENT"!==e.code)throw e}},p=s?(e,t,r,a)=>o=>{o&&"EISDIR"===o.code?n.chown(e,t,r,a):a(o)}:(e,t,r,n)=>n,c=s?(e,t,r)=>{try{return l(e,t,r)}catch(n){if("EISDIR"!==n.code)throw n;d(e,t,r)}}:(e,t,r)=>l(e,t,r),u=process.version;let m=(e,t,r)=>n.readdir(e,t,r),g=(e,t)=>n.readdirSync(e,t);/^v4\./.test(u)&&(m=(e,t,r)=>n.readdir(e,r));const h=(e,t,r,a)=>{n[o](e,t,r,p(e,t,r,e=>{a(e&&"ENOENT"!==e.code?e:null)}))},f=(e,t,r,o,i)=>{if("string"==typeof t)return n.lstat(a.resolve(e,t),(n,a)=>n?i("ENOENT"===n.code?null:n):void(a.name=t,f(e,a,r,o,i)));if(t.isDirectory())y(a.resolve(e,t.name),r,o,n=>{if(n)return i(n);const s=a.resolve(e,t.name);h(s,r,o,i)});else{const n=a.resolve(e,t.name);h(n,r,o,i)}},y=(e,t,r,n)=>{m(e,{withFileTypes:!0},(a,o)=>{if(a){if("ENOENT"===a.code)return n();if("ENOTDIR"!==a.code&&"ENOTSUP"!==a.code)return n(a)}if(a||!o.length)return h(e,t,r,n);let i=o.length,s=null;const l=a=>s?void 0:a?n(s=a):0==--i?h(e,t,r,n):void 0;o.forEach(n=>f(e,n,t,r,l))})},b=(e,t,r,o)=>{if("string"==typeof t)try{const r=n.lstatSync(a.resolve(e,t));r.name=t,t=r}catch(e){if("ENOENT"===e.code)return;throw e}t.isDirectory()&&S(a.resolve(e,t.name),r,o),c(a.resolve(e,t.name),r,o)},S=(e,t,r)=>{let n;try{n=g(e,{withFileTypes:!0})}catch(n){if("ENOENT"===n.code)return;if("ENOTDIR"===n.code||"ENOTSUP"===n.code)return c(e,t,r);throw n}return n&&n.length&&n.forEach(n=>b(e,n,t,r)),c(e,t,r)};e.exports=y,y.sync=S},16755:e=>{e.exports=function(e,r){for(var n=[],a=0,o;a{"use strict";function t(e){if(!e)throw new TypeError("Expected implementation");var t=l.filter(function(t){return"function"!=typeof e[t]});if(t.length){var r="("+t.join(", ")+")";throw new Error("Expected functions "+r+" to be implemented")}}function r(e,t){for(var r=t.length,n,a,o;-1<--r;){for(n=a=t[r],t[r]=null,o=!0;a;){if(-1{"use strict";function n(e){return function(t,r,n){return r=r||{},r.adapter=r.adapter||l,e(t,r,n)}}function a(e){return function(t,r,n){return n=n||{},n.adapter=n.adapter||l,"function"!=typeof t&&(t=u(t,n,r)),t.shouldTestNextSiblings&&(r=i(n&&n.context||r,n.adapter)),r=Array.isArray(r)?n.adapter.removeSubsets(r):n.adapter.getChildren(r),e(t,r,n)}}function o(e,t){var r=t.getSiblings(e);if(!Array.isArray(r))return[];for(r=r.slice(0);r.shift()!==e;);return r}function i(e,t){Array.isArray(e)||(e=[e]);for(var r=e.slice(0),n=0,a=e.length,s;n{var n=r(27510).falseFunc,a=/[-[\]{}()*+?.,\\^$|#\s]/g,o={__proto__:null,equals:function(e,t,r){var n=t.name,a=t.value,o=r.adapter;return t.ignoreCase?(a=a.toLowerCase(),function(t){var r=o.getAttributeValue(t,n);return null!=r&&r.toLowerCase()===a&&e(t)}):function(t){return o.getAttributeValue(t,n)===a&&e(t)}},hyphen:function(e,t,r){var n=t.name,a=t.value,o=a.length,i=r.adapter;return t.ignoreCase?(a=a.toLowerCase(),function(t){var r=i.getAttributeValue(t,n);return null!=r&&(r.length===o||"-"===r.charAt(o))&&r.substr(0,o).toLowerCase()===a&&e(t)}):function(t){var r=i.getAttributeValue(t,n);return null!=r&&r.substr(0,o)===a&&(r.length===o||"-"===r.charAt(o))&&e(t)}},element:function(e,t,r){var o=t.name,i=t.value,s=r.adapter;if(/\s/.test(i))return n;i=i.replace(a,"\\$&");var l="(?:^|\\s)"+i+"(?:$|\\s)",d=t.ignoreCase?"i":"",p=new RegExp(l,d);return function(t){var r=s.getAttributeValue(t,o);return null!=r&&p.test(r)&&e(t)}},exists:function(e,t,r){var n=t.name,a=r.adapter;return function(t){return a.hasAttrib(t,n)&&e(t)}},start:function(e,t,r){var a=t.name,o=t.value,i=o.length,s=r.adapter;return 0===i?n:t.ignoreCase?(o=o.toLowerCase(),function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(0,i).toLowerCase()===o&&e(t)}):function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(0,i)===o&&e(t)}},end:function(e,t,r){var a=t.name,o=t.value,i=-o.length,s=r.adapter;return 0===i?n:t.ignoreCase?(o=o.toLowerCase(),function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(i).toLowerCase()===o&&e(t)}):function(t){var r=s.getAttributeValue(t,a);return null!=r&&r.substr(i)===o&&e(t)}},any:function(e,t,r){var o=t.name,i=t.value,s=r.adapter;if(""===i)return n;if(t.ignoreCase){var l=new RegExp(i.replace(a,"\\$&"),"i");return function(t){var r=s.getAttributeValue(t,o);return null!=r&&l.test(r)&&e(t)}}return function(t){var r=s.getAttributeValue(t,o);return null!=r&&0<=r.indexOf(i)&&e(t)}},not:function(e,t,r){var n=t.name,a=t.value,o=r.adapter;return""===a?function(t){return!!o.getAttributeValue(t,n)&&e(t)}:t.ignoreCase?(a=a.toLowerCase(),function(t){var r=o.getAttributeValue(t,n);return null!=r&&r.toLowerCase()!==a&&e(t)}):function(t){return o.getAttributeValue(t,n)!==a&&e(t)}}};e.exports={compile:function(e,t,r){if(r&&r.strict&&(t.ignoreCase||"not"===t.action))throw new Error("Unsupported attribute selector");return o[t.action](e,t,r)},rules:o}},22365:(e,t,r)=>{function n(e,t,r){var n=o(e,t,r);return a(n,t)}function a(e,t){var r=t.adapter;return function(t){return r.isTag(t)&&e(t)}}function o(e,t,r){var n=m(e,t);return l(n,t,r)}function i(e){return"pseudo"===e.type&&("scope"===e.name||Array.isArray(e.data)&&e.data.some(function(e){return e.some(i)}))}function s(e,t,r){var n=t.adapter,a=!!r&&!!r.length&&r.every(function(t){return t===w||!!n.getParent(t)});e.forEach(function(e){if(0f[e.type]}function p(e,t,r){return e.reduce(function(e,n){if(e===x)return e;if(!(n.type in y))throw new Error("Rule type "+n.type+" is not supported by css-select");return y[n.type](e,n,t,r)},t&&t.rootFunc||S)}function c(e,t){return t===x||e===S?e:e===x||t===S?t:function(r){return e(r)||t(r)}}function u(e){return e.some(d)}e.exports=n;var m=r(17525).parse,g=r(27510),h=r(65426),f=r(86721),y=r(35890),b=r(65582),S=g.trueFunc,x=g.falseFunc,v=b.filters,k={type:"descendant"},C={type:"_flexibleDescendant"},_={type:"pseudo",name:"scope"},w={};v.not=function(e,t,r,n){var a={xmlMode:!!(r&&r.xmlMode),strict:!!(r&&r.strict),adapter:r.adapter};if(a.strict&&(1{var n=r(91221),a=r(65582);e.exports={__proto__:null,attribute:n.compile,pseudo:a.compile,tag:function(e,t,r){var n=t.name,a=r.adapter;return function(t){return a.getName(t)===n&&e(t)}},descendant:function(e,t,r){var n="undefined"==typeof WeakSet?null:new WeakSet,a=r.adapter;return function(t){for(var r=!1;!r&&(t=a.getParent(t));)n&&n.has(t)||(r=e(t),!r&&n&&n.add(t));return r}},_flexibleDescendant:function(e,t,r){var n=r.adapter;return function(t){for(var r=e(t);!r&&(t=n.getParent(t));)r=e(t);return r}},parent:function(e,t,r){function n(t){return a.isTag(t)&&e(t)}if(r&&r.strict)throw new Error("Parent selector isn't part of CSS3");var a=r.adapter;return function(e){return a.getChildren(e).some(n)}},child:function(e,t,r){var n=r.adapter;return function(t){var r=n.getParent(t);return!!r&&e(r)}},sibling:function(e,t,r){var n=r.adapter;return function(t){for(var r=n.getSiblings(t),a=0;a{function n(e,t){var r={name:e,value:t};return function(e,t,n){return m(e,r,n)}}function a(e,t){return function(r){return!!t.getParent(r)&&e(r)}}function o(e,t){for(var r=0;e&&r{function n(e){var t=a[e.type];if(t===a.attribute)t=o[e.action],t===o.equals&&"id"===e.name&&(t=9),e.ignoreCase&&(t>>=1);else if(t===a.pseudo)if(!e.data)t=3;else if("has"===e.name||"contains"===e.name)t=0;else if("matches"===e.name||"not"===e.name){t=0;for(var r=0;rt&&(t=s)}1a))for(var o=r-1,s;0<=o&&a{function n(e,t){var r={};for(var n in e)r[n]=e[n].syntax;for(var n in t)n in e?t[n].syntax?r[n]=t[n].syntax:delete r[n]:t[n].syntax&&(r[n]=t[n].syntax);return r}var a=r(81515),o=r(58933),i=r(74291);e.exports={properties:n(a,i.properties),types:n(o,i.syntaxes)}},5355:e=>{function t(e){return{prev:null,next:null,data:e}}function r(e,t,r){var n;return null===a?n={prev:t,next:r,cursor:e.cursor}:(n=a,a=a.cursor,n.prev=t,n.next=r,n.cursor=e.cursor),e.cursor=n,n}function n(e){var t=e.cursor;e.cursor=t.cursor,t.prev=null,t.next=null,t.cursor=a,a=t}var a=null,o=function(){this.cursor=null,this.head=null,this.tail=null};o.createItem=t,o.prototype.createItem=t,o.prototype.updateCursors=function(e,t,r,n){for(var a=this.cursor;null!==a;)a.prev===e&&(a.prev=t),a.next===r&&(a.next=n),a=a.cursor},o.prototype.getSize=function(){for(var e=0,t=this.head;t;)e++,t=t.next;return e},o.prototype.fromArray=function(e){var r=null;this.head=null;for(var n=0,a;n{function n(e,t){for(var r=t.length,n=a(e.lines,r),s=e.startLine,l=a(e.columns,r),d=e.startColumn,p=0{function n(e,t){function r(e,t){return n.slice(e,t).map(function(t,r){for(var n=e+r+1+"";n.lengthp?"\u2026":"")+n[c].substr(p,98)+(n[c].length>p+100-1?"\u2026":""));return[r(s,a),Array(o+d+2).join("-")+"^",r(a,l)].filter(Boolean).join("\n")}var a=r(41187);e.exports=function(e,t,r,o,i){var s=a("SyntaxError",e);return s.source=t,s.offset=r,s.line=o,s.column=i,s.sourceFragment=function(e){return n(s,isNaN(e)?0:e)},Object.defineProperty(s,"formattedMessage",{get:function(){return"Parse error: "+s.message+"\n"+n(s,2)}}),s.parseError={offset:r,line:o,column:i},s}},83058:(e,t,r)=>{var n=r(21713),a=n.TYPE,o=n.NAME,i=r(86716),s=i.cmpStr,l=a.EOF,d=a.WhiteSpace,p=a.Comment,c=16777215,u=24,m=function(){this.offsetAndType=null,this.balance=null,this.reset()};m.prototype={reset:function(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset},lookupType:function(e){return e+=this.tokenIndex,e>u:l},lookupOffset:function(e){return e+=this.tokenIndex,e>u,t(o,this.source,n)){case 1:break loop;case 2:r++;break loop;default:n=this.offsetAndType[r]&c,this.balance[a]===r&&(r=a);}}return r-this.tokenIndex},isBalanceEdge:function(e){return this.balance[this.tokenIndex]>u===d;e++,t++);0>u,this.tokenEnd=t&c):(this.tokenIndex=this.tokenCount,this.next())},next:function(){var e=this.tokenIndex+1;e>u,this.tokenEnd=e&c):(this.tokenIndex=this.tokenCount,this.eof=!0,this.tokenType=l,this.tokenStart=this.tokenEnd=this.source.length)},dump:function(){var e=this.firstCharOffset;return Array.prototype.slice.call(this.offsetAndType,0,this.tokenCount).map(function(t,r){var n=e,a=t&c;return e=a,{idx:r,type:o[t>>u],chunk:this.source.substring(n,a),balance:this.balance[r]}},this)}},e.exports=m},58248:e=>{var t="undefined"==typeof Uint32Array?Array:Uint32Array;e.exports=function(e,r){return null===e||e.length{var n=r(5355);e.exports=function(e){return{fromPlainObject:function(t){return e(t,{enter:function(e){e.children&&!1==e.children instanceof n&&(e.children=new n().fromArray(e.children))}}),t},toPlainObject:function(t){return e(t,{leave:function(e){e.children&&e.children instanceof n&&(e.children=e.children.toArray())}}),t}}}},59437:(e,t,r)=>{var n=r(41187);e.exports=function(e,t,r){var a=n("SyntaxError",e);return a.input=t,a.offset=r,a.rawMessage=e,a.message=a.rawMessage+"\n "+a.input+"\n--"+Array((a.offset||a.input.length)+1).join("-")+"^",a}},95561:e=>{function t(e){return e}function r(e){return 0===e.min&&0===e.max?"*":0===e.min&&1===e.max?"?":1===e.min&&0===e.max?e.comma?"#":"+":1===e.min&&1===e.max?"":(e.comma?"#":"")+(e.min===e.max?"{"+e.min+"}":"{"+e.min+","+(0===e.max?"":e.max)+"}")}function n(e){switch(e.type){case"Range":return" ["+(null===e.min?"-\u221E":e.min)+","+(null===e.max?"\u221E":e.max)+"]";default:throw new Error("Unknown node type `"+e.type+"`");}}function a(e,t,r,n){var a=" "===e.combinator||n?e.combinator:" "+e.combinator+" ",i=e.terms.map(function(e){return o(e,t,r,n)}).join(a);return(e.explicit||r)&&(i=(n||","===i[0]?"[":"[ ")+i+(n?"]":" ]")),i}function o(e,t,i,s){var l;switch(e.type){case"Group":l=a(e,t,i,s)+(e.disallowEmpty?"!":"");break;case"Multiplier":return o(e.term,t,i,s)+t(r(e),e);case"Type":l="<"+e.name+(e.opts?t(n(e.opts),e.opts):"")+">";break;case"Property":l="<'"+e.name+"'>";break;case"Keyword":l=e.name;break;case"AtKeyword":l="@"+e.name;break;case"Function":l=e.name+"(";break;case"String":case"Token":l=e.value;break;case"Comma":l=",";break;default:throw new Error("Unknown node type `"+e.type+"`");}return t(l,e)}e.exports=function(e,r){var n=t,a=!1,i=!1;return"function"==typeof r?n=r:r&&(a=!!r.forceBraces,i=!!r.compact,"function"==typeof r.decorate&&(n=r.decorate)),o(e,n,a,i)}},98333:(e,t,r)=>{e.exports={SyntaxError:r(59437),parse:r(81550),generate:r(95561),walk:r(55872)}},81550:(e,t,r)=>{function n(e){return e.substringToPos(e.findWsEnd(e.pos))}function a(e){for(var t=e.pos,r;tr||57t&&1===v[t])return g(e);switch(t){case 93:break;case 91:return d(e,y(e));case 60:return 39===e.nextCharCode()?c(e):m(e);case 124:return{type:"Combinator",value:e.substringToPos(124===e.nextCharCode()?e.pos+2:e.pos+1)};case 38:return e.pos++,e.eat(38),{type:"Combinator",value:"&&"};case 44:return e.pos++,{type:"Comma"};case 39:return d(e,{type:"String",value:i(e)});case 32:case 9:case 10:case 13:case 12:return{type:"Spaces",value:n(e)};case 64:return t=e.nextCharCode(),128>t&&1===v[t]?(e.pos++,{type:"AtKeyword",name:a(e)}):p(e);case 42:case 43:case 63:case 35:case 33:break;case 123:if(t=e.nextCharCode(),48>t||57r;r++)t[r]=e(_StringfromCharCode(r))?1:0;return t}(function(e){return /[a-zA-Z0-9\-]/.test(e)}),k={" ":1,"&&":2,"||":3,"|":4};S("[a&&#|<'c'>*||e() f{2} /,(% g#{1,2} h{2,})]!"),e.exports=S},22059:(e,t,r)=>{var n=r(59437),a=function(e){this.str=e,this.pos=0};a.prototype={charCodeAt:function(e){return e{function t(e){return"function"==typeof e?e:r}var r=function(){};e.exports=function(e,n,a){function o(e){switch(i.call(a,e),e.type){case"Group":e.terms.forEach(o);break;case"Multiplier":o(e.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+e.type);}s.call(a,e)}var i=r,s=r;if("function"==typeof n?i=n:n&&(i=t(n.enter),s=t(n.leave)),i===r&&s===r)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");o(e,a)}},31010:(e,t,r)=>{function n(e,t){var r=e.children,n=null;"function"==typeof t?r.forEach(function(e){null!==n&&t.call(this,n),this.node(e),n=e},this):r.forEach(this.node,this)}var a=r(95137),o=Object.prototype.hasOwnProperty;e.exports=function(e){function t(e){if(o.call(r,e.type))r[e.type].call(this,e);else throw new Error("Unknown node type: "+e.type)}var r={};if(e.node)for(var i in e.node)r[i]=e.node[i].generate;return function(e,r){var o="",i={children:n,node:t,chunk:function(e){o+=e},result:function(){return o}};return r&&("function"==typeof r.decorator&&(i=r.decorator(i)),r.sourceMap&&(i=a(i))),i.node(e),i.result()}}},95137:(e,t,r)=>{var n=r(52234).h,a={Atrule:!0,Selector:!0,Declaration:!0};e.exports=function(e){var t=new n,r=1,o=0,i={line:1,column:0},s={line:0,column:0},l=!1,d={line:1,column:0},p={generated:d},c=e.node;e.node=function(e){if(e.loc&&e.loc.start&&a.hasOwnProperty(e.type)){var n=e.loc.start.line,u=e.loc.start.column-1;(s.line!==n||s.column!==u)&&(s.line=n,s.column=u,i.line=r,i.column=o,l&&(l=!1,(i.line!==d.line||i.column!==d.column)&&t.addMapping(p)),l=!0,t.addMapping({source:e.loc.source,original:s,generated:i}))}c.call(this,e),l&&a.hasOwnProperty(e.type)&&(d.line=r,d.column=o)};var u=e.chunk;e.chunk=function(e){for(var t=0;t{e.exports=r(30826)},42164:(e,t,r)=>{function n(e,t,r){var n={};for(var a in e)e[a].syntax&&(n[a]=r?e[a].syntax:u(e[a].syntax,{compact:t}));return n}function a(e){for(var t=0;t"),k=function(e,t,r){if(this.valueCommonSyntax=x,this.syntax=t,this.generic=!1,this.properties={},this.types={},this.structure=r||S(e),e){if(e.types)for(var n in e.types)this.addType_(n,e.types[n]);if(e.generic)for(var n in this.generic=!0,p)this.addType_(n,p[n]);if(e.properties)for(var n in e.properties)this.addProperty_(n,e.properties[n])}};k.prototype={structure:{},checkStructure:function(e){function t(e,t){n.push({node:e,message:t})}var r=this.structure,n=[];return this.syntax.walk(e,function(e){r.hasOwnProperty(e.type)?r[e.type].check(e,t):t(e,"Unknown node type `"+e.type+"`")}),!!n.length&&n},createDescriptor:function(e,t,r){var n={type:t,name:r},a={type:t,name:r,syntax:null,match:null};return"function"==typeof e?a.match=h(e,n):("string"==typeof e?Object.defineProperty(a,"syntax",{get:function(){return Object.defineProperty(a,"syntax",{value:c(e)}),a.syntax}}):a.syntax=e,Object.defineProperty(a,"match",{get:function(){return Object.defineProperty(a,"match",{value:h(a.syntax,n)}),a.match}})),a},addProperty_:function(e,t){this.properties[e]=this.createDescriptor(t,"Property",e)},addType_:function(e,t){this.types[e]=this.createDescriptor(t,"Type",e),t===p["-ms-legacy-expression"]&&(this.valueCommonSyntax=v)},matchDeclaration:function(e){return"Declaration"===e.type?this.matchProperty(e.property,e.value):o(null,new Error("Not a Declaration node"))},matchProperty:function(e,t){var r=d.property(e);if(r.custom)return o(null,new Error("Lexer matching doesn't applicable for custom properties"));var n=r.vendor?this.getProperty(r.name)||this.getProperty(r.basename):this.getProperty(r.name);return n?i(this,n,t,!0):o(null,new s("Unknown property",e))},matchType:function(e,t){var r=this.getType(e);return r?i(this,r,t,!1):o(null,new s("Unknown type",e))},match:function(e,t){return"string"==typeof e||e&&e.type?("string"!=typeof e&&e.match||(e=this.createDescriptor(e,"Type","anonymous")),i(this,e,t,!1)):o(null,new s("Bad syntax"))},findValueFragments:function(e,t,r,n){return b.matchFragments(this,t,this.matchProperty(e,t),r,n)},findDeclarationValueFragments:function(e,t,r){return b.matchFragments(this,e.value,this.matchDeclaration(e),t,r)},findAllFragments:function(e,t,r){var n=[];return this.syntax.walk(e,{visit:"Declaration",enter:function(e){n.push.apply(n,this.findDeclarationValueFragments(e,t,r))}.bind(this)}),n},getProperty:function(e){return this.properties.hasOwnProperty(e)?this.properties[e]:null},getType:function(e){return this.types.hasOwnProperty(e)?this.types[e]:null},validate:function(){function e(n,a,o,i){return o.hasOwnProperty(a)?o[a]:void(o[a]=!1,null!==i.syntax&&m(i.syntax,function(i){if("Type"===i.type||"Property"===i.type){var s="Type"===i.type?n.types:n.properties,l="Type"===i.type?t:r;(!s.hasOwnProperty(i.name)||e(n,i.name,l,s[i.name]))&&(o[a]=!0)}},this))}var t={},r={};for(var n in this.types)e(this,n,t,this.types[n]);for(var n in this.properties)e(this,n,r,this.properties[n]);return t=Object.keys(t).filter(function(e){return t[e]}),r=Object.keys(r).filter(function(e){return r[e]}),t.length||r.length?{types:t,properties:r}:null},dump:function(e,t){return{generic:this.generic,types:n(this.types,!t,e),properties:n(this.properties,!t,e)}},toString:function(){return JSON.stringify(this.dump())}},e.exports=k},16044:(e,t,r)=>{function n(e){for(var t=e.tokens,r=e.longestMatch,n=r",l.css=g,l.mismatchOffset=p,l.loc={source:c&&c.loc&&c.loc.source||"",start:m,end:u},l.line=m?m.line:void 0,l.column=m?m.column:void 0,l.offset=m?m.offset:void 0,l.message=e+"\n syntax: "+l.syntax+"\n value: "+(l.css||"")+"\n --------"+Array(l.mismatchOffset+1).join("-")+"^",l}}},23479:(e,t,r)=>{function n(e,t){return null!==e&&e.type===c&&e.value.charCodeAt(0)===t}function a(e,t,r){for(;null!==e&&(e.type===u||e.type===m);)e=r(++t);return t}function o(e,t,r,n){if(!e)return 0;var a=e.value.charCodeAt(t);if(43===a||45===a){if(r)return 0;t++}for(;t{function n(e,t){return null!==e&&e.type===c&&e.value.charCodeAt(0)===t}function a(e,t){return e.value.charCodeAt(0)===t}function o(e,t,r){for(var n=t,a=0,i;n{function n(e,t){return te.max)return!0}return!1}function l(e,t){var r=e.index,n=0;do if(n++,e.balance<=r)break;while(e=t(n));return n}function d(e){return function(t,r,n){return null===t?0:t.type===S.Function&&o(t.value,C)?l(t,r):e(t,r,n)}}function p(e){return function(t){return null===t||t.type!==e?0:1}}function c(e){return function(t,r,n){if(null===t||t.type!==S.Dimension)return 0;var a=b(t.value,0);if(null!==e){var o=t.value.indexOf("\\",a),l=-1!==o&&i(t.value,o)?t.value.substring(a,o):t.value.substr(a);if(!1===e.hasOwnProperty(l.toLowerCase()))return 0}return s(n,t.value,a)?0:1}}function u(e){return"function"!=typeof e&&(e=function(){return 0}),function(t,r,n){return null!==t&&t.type===S.Number&&0===+t.value?1:e(t,r,n)}}var m=r(61063),g=m.isIdentifierStart,h=m.isHexDigit,f=m.isDigit,y=m.cmpStr,b=m.consumeNumber,S=m.TYPE,x=r(23479),v=r(77088),k=["unset","initial","inherit"],C=["calc(","-moz-calc(","-webkit-calc("];e.exports={"ident-token":p(S.Ident),"function-token":p(S.Function),"at-keyword-token":p(S.AtKeyword),"hash-token":p(S.Hash),"string-token":p(S.String),"bad-string-token":p(S.BadString),"url-token":p(S.Url),"bad-url-token":p(S.BadUrl),"delim-token":p(S.Delim),"number-token":p(S.Number),"percentage-token":p(S.Percentage),"dimension-token":p(S.Dimension),"whitespace-token":p(S.WhiteSpace),"CDO-token":p(S.CDO),"CDC-token":p(S.CDC),"colon-token":p(S.Colon),"semicolon-token":p(S.Semicolon),"comma-token":p(S.Comma),"[-token":p(S.LeftSquareBracket),"]-token":p(S.RightSquareBracket),"(-token":p(S.LeftParenthesis),")-token":p(S.RightParenthesis),"{-token":p(S.LeftCurlyBracket),"}-token":p(S.RightCurlyBracket),string:p(S.String),ident:p(S.Ident),"custom-ident":function(e){if(null===e||e.type!==S.Ident)return 0;var t=e.value.toLowerCase();return o(t,k)?0:a(t,"default")?0:1},"custom-property-name":function(e){return null===e||e.type!==S.Ident?0:45!==n(e.value,0)||45!==n(e.value,1)?0:1},"hex-color":function(e){if(null===e||e.type!==S.Hash)return 0;var t=e.value.length;if(4!==t&&5!==t&&7!==t&&9!==t)return 0;for(var r=1;re.index||e.balancee.index||e.balance{function n(e,t,r){return t===c&&r===u?e:e===c&&t===c&&r===c?e:("If"===e.type&&e.else===u&&t===c&&(t=e.then,e=e.match),{type:"If",match:e,then:t,else:r})}function a(e){return 2{function n(e){for(var t=null,r=null,n=e;null!==n;)r=n.prev,n.prev=t,t=n,n=r;return t}function a(e,t){if(e.length!==t.length)return!1;for(var r=0;r=n&&(n|=32),n!==a)return!1}return!0}function o(e){return null===e||e.type===m.Comma||e.type===m.Function||e.type===m.LeftParenthesis||e.type===m.LeftSquareBracket||e.type===m.LeftCurlyBracket||e.type===m.Delim}function i(e){return null===e||e.type===m.RightParenthesis||e.type===m.RightSquareBracket||e.type===m.RightCurlyBracket||e.type===m.Delim}function s(e,t,r){function n(){do E++,T=EA&&(A=E)}function b(){x={syntax:t.syntax,opts:t.syntax.opts||null!==x&&x.opts||null,prev:x},O={type:2,syntax:t.syntax,token:O.token,prev:O}}function S(){O=2===O.type?O.prev:{type:3,syntax:x.syntax,token:O.token,prev:O},x=x.prev}var x=null,v=null,k=null,C=null,_=0,w=null,T=null,E=-1,A=0,O={type:0,syntax:null,token:null,prev:null};for(n();null===w&&15000>++_;)switch(t.type){case"Match":if(null===v){if(null!==T&&(E!==e.length-1||"\\0"!==T.value&&"\\9"!==T.value)){t=c;break}w="Match";break}if(t=v.nextState,t===u)if(v.matchStack===O){t=c;break}else t=p;for(;v.syntaxStack!==x;)S();v=v.prev;break;case"Mismatch":if(null!==C&&!1!==C)(null===k||E>k.tokenIndex)&&(k=C,C=!1);else if(null===k){w="Mismatch";break}t=k.nextState,v=k.thenStack,x=k.syntaxStack,O=k.matchStack,E=k.tokenIndex,T=EE){for(;E":"<'"+t.name+"'>"));if(!1!==C&&null!==T&&"Type"===t.type){var q="custom-ident"===t.name&&T.type===m.Ident||"length"===t.name&&"0"===T.value;if(q){null===C&&(C=d(t,k)),t=c;break}}b(),t=W.match;break;case"Keyword":var z=t.name;if(null!==T){var B=T.value;if(-1!==B.indexOf("\\")&&(B=B.replace(/\\[09].*$/,"")),a(B,z)){y(),t=p;break}}t=c;break;case"AtKeyword":case"Function":if(null!==T&&a(T.value,t.name)){y(),t=p;break}t=c;break;case"Token":if(null!==T&&T.value===t.value){y(),t=p;break}t=c;break;case"Comma":null!==T&&T.type===m.Comma?o(O.token)?t=c:(y(),t=i(T)?c:p):t=o(O.token)||i(T)?p:c;break;case"String":for(var N="",I=E;I{function n(e,t){var r=[],n=0,o=0,s=t?t[o].node:null;for(a(e,i);!i.eof;){if(t)for(;o{function n(e){return"node"in e?e.node:n(e.match[0])}function a(e){return"node"in e?e.node:a(e.match[e.match.length-1])}var o=r(5355);e.exports={matchFragments:function(e,t,r,i,s){function l(r){if(null!==r.syntax&&r.syntax.type===i&&r.syntax.name===s){var p=n(r),c=a(r);e.syntax.walk(t,function(e,t,r){if(e===p){var n=new o;do{if(n.appendData(t.data),t.data===c)break;t=t.next}while(null!==t);d.push({parent:r,nodes:n})}})}Array.isArray(r.match)&&r.match.forEach(l)}var d=[];return null!==r.matched&&l(r.matched),d}}},25791:(e,t,r)=>{function n(e){return"number"==typeof e&&isFinite(e)&&_Mathfloor(e)===e&&0<=e}function a(e){return!!e&&n(e.offset)&&n(e.line)&&n(e.column)}function o(e,t){return function(r,n){if(!r||r.constructor!==Object)return n(r,"Type of node should be an Object");for(var o in r){var d=!0;if(!1!==l.call(r,o)){if("type"==o)r.type!==e&&n(r,"Wrong node type `"+r.type+"`, expected `"+e+"`");else if("loc"===o){if(null===r.loc)continue;else if(r.loc&&r.loc.constructor===Object)if("string"!=typeof r.loc.source)o+=".source";else if(!a(r.loc.start))o+=".start";else if(!a(r.loc.end))o+=".end";else continue;d=!1}else if(t.hasOwnProperty(o))for(var p=0,d=!1,c;!d&&p");else if(Array.isArray(u))d.push("List");else throw new Error("Wrong value `"+u+"` in `"+e+"."+s+"` structure definition");a[s]=d.join(" | ")}return{docs:a,check:o(e,n)}}var s=r(5355),l=Object.prototype.hasOwnProperty;e.exports={getStructureFromConfig:function(e){var t={};if(e.node)for(var r in e.node)if(l.call(e.node,r)){var n=e.node[r];if(n.structure)t[r]=i(r,n);else throw new Error("Missed `structure` field in `"+r+"` node type definition")}return t}}},29833:e=>{function t(e){function t(e){return null!==e&&("Type"===e.type||"Property"===e.type||"Keyword"===e.type)}function r(a){if(Array.isArray(a.match)){for(var o=0;o{function n(e){return function(){return this[e]()}}function a(e){var t={context:{},scope:{},atrule:{},pseudo:{}};if(e.parseContext)for(var r in e.parseContext)switch(typeof e.parseContext[r]){case"function":t.context[r]=e.parseContext[r];break;case"string":t.context[r]=n(e.parseContext[r]);}if(e.scope)for(var r in e.scope)t.scope[r]=e.scope[r];if(e.atrule)for(var r in e.atrule){var a=e.atrule[r];a.parse&&(t.atrule[r]=a.parse)}if(e.pseudo)for(var r in e.pseudo){var o=e.pseudo[r];o.parse&&(t.pseudo[r]=o.parse)}if(e.node)for(var r in e.node)t[r]=e.node[r].parse;return t}var o=r(70404),i=r(51708),s=r(83058),l=r(5355),d=r(61063),p=r(21713),c=r(86716).findWhiteSpaceStart,u=r(27190),m=function(){},g=p.TYPE,h=p.NAME,f=g.WhiteSpace,y=g.Ident,b=g.Function,S=g.Url,x=g.Hash,v=g.Percentage,k=g.Number,C=0;e.exports=function(e){var t={scanner:new s,locationMap:new o,filename:"",needPositions:!1,onParseError:m,onParseErrorThrow:!1,parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:u,createList:function(){return new l},createSingleNodeList:function(e){return new l().appendData(e)},getFirstListNode:function(e){return e&&e.first()},getLastListNode:function(e){return e.last()},parseWithFallback:function(e,t){var r=this.scanner.tokenIndex;try{return e.call(this)}catch(a){if(this.onParseErrorThrow)throw a;var n=t.call(this,r);return this.onParseErrorThrow=!0,this.onParseError(a,n),this.onParseErrorThrow=!1,n}},lookupNonWSType:function(e){do{var t=this.scanner.lookupType(e++);if(t!==f)return t}while(t!==C);return C},eat:function(e){if(this.scanner.tokenType!==e){var t=this.scanner.tokenStart,r=h[e]+" is expected";e===y?this.scanner.tokenType===b||this.scanner.tokenType===S?(t=this.scanner.tokenEnd-1,r="Identifier is expected but function found"):r="Identifier is expected":e===x?this.scanner.isDelim(35)&&(this.scanner.next(),t++,r="Name is expected"):e===v?this.scanner.tokenType===k&&(t=this.scanner.tokenEnd,r="Percent sign is expected"):this.scanner.source.charCodeAt(this.scanner.tokenStart)===e&&++t,this.error(r,t)}this.scanner.next()},consume:function(e){var t=this.scanner.getTokenValue();return this.eat(e),t},consumeFunctionName:function(){var e=this.scanner.source.substring(this.scanner.tokenStart,this.scanner.tokenEnd-1);return this.eat(b),e},getLocation:function(e,t){return this.needPositions?this.locationMap.getLocationRange(e,t,this.filename):null},getLocationFromList:function(e){if(this.needPositions){var t=this.getFirstListNode(e),r=this.getLastListNode(e);return this.locationMap.getLocationRange(null===t?this.scanner.tokenStart:t.loc.start.offset-this.locationMap.startOffset,null===r?this.scanner.tokenStart:r.loc.end.offset-this.locationMap.startOffset,this.filename)}return null},error:function(e,t){var r="undefined"!=typeof t&&t",t.needPositions=!!r.positions,t.onParseError="function"==typeof r.onParseError?r.onParseError:m,t.onParseErrorThrow=!1,t.parseAtrulePrelude=!("parseAtrulePrelude"in r)||!!r.parseAtrulePrelude,t.parseRulePrelude=!("parseRulePrelude"in r)||!!r.parseRulePrelude,t.parseValue=!("parseValue"in r)||!!r.parseValue,t.parseCustomProperty=!!("parseCustomProperty"in r)&&!!r.parseCustomProperty,!t.context.hasOwnProperty(n))throw new Error("Unknown context `"+n+"`");return a=t.context[n].call(t,r),t.scanner.eof||t.error(),a}}},27190:(e,t,r)=>{var n=r(61063).TYPE,a=n.WhiteSpace,o=n.Comment;e.exports=function(e){var t=this.createList(),r=null,n={recognizer:e,space:null,ignoreWS:!1,ignoreWSAfter:!1};for(this.scanner.skipSC();!this.scanner.eof;){switch(this.scanner.tokenType){case o:this.scanner.next();continue;case a:n.ignoreWS?this.scanner.next():n.space=this.WhiteSpace();continue;}if(r=e.getNode.call(this,n),void 0===r)break;null!==n.space&&(t.push(n.space),n.space=null),t.push(r),n.ignoreWSAfter?(n.ignoreWSAfter=!1,n.ignoreWS=!0):n.ignoreWS=!1}return t}},91849:e=>{e.exports={parse:{prelude:null,block:function(){return this.Block(!0)}}}},29864:(e,t,r)=>{var n=r(61063).TYPE,a=n.String,o=n.Ident,i=n.Url,s=n.Function,l=n.LeftParenthesis;e.exports={parse:{prelude:function(){var e=this.createList();switch(this.scanner.skipSC(),this.scanner.tokenType){case a:e.push(this.String());break;case i:case s:e.push(this.Url());break;default:this.error("String or url() is expected");}return(this.lookupNonWSType(0)===o||this.lookupNonWSType(0)===l)&&(e.push(this.WhiteSpace()),e.push(this.MediaQueryList())),e},block:null}}},20264:(e,t,r)=>{e.exports={"font-face":r(91849),import:r(29864),media:r(16258),page:r(46661),supports:r(19901)}},16258:e=>{e.exports={parse:{prelude:function(){return this.createSingleNodeList(this.MediaQueryList())},block:function(){return this.Block(!1)}}}},46661:e=>{e.exports={parse:{prelude:function(){return this.createSingleNodeList(this.SelectorList())},block:function(){return this.Block(!0)}}}},19901:(e,t,r)=>{function n(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,!1))}function a(){return this.scanner.skipSC(),this.scanner.tokenType===d&&this.lookupNonWSType(1)===c?this.createSingleNodeList(this.Declaration()):o.call(this)}function o(){var e=this.createList(),t=null,r;this.scanner.skipSC();scan:for(;!this.scanner.eof;){switch(this.scanner.tokenType){case s:t=this.WhiteSpace();continue;case l:this.scanner.next();continue;case p:r=this.Function(n,this.scope.AtrulePrelude);break;case d:r=this.Identifier();break;case u:r=this.Parentheses(a,this.scope.AtrulePrelude);break;default:break scan;}null!==t&&(e.push(t),t=null),e.push(r)}return e}var i=r(61063).TYPE,s=i.WhiteSpace,l=i.Comment,d=i.Ident,p=i.Function,c=i.Colon,u=i.LeftParenthesis;e.exports={parse:{prelude:function(){var e=o.call(this);return null===this.getFirstListNode(e)&&this.error("Condition is expected"),e},block:function(){return this.Block(!1)}}}},87526:(e,t,r)=>{var n=r(26577);e.exports={generic:!0,types:n.types,properties:n.properties,node:r(85369)}},88845:e=>{function t(e){return e&&e.constructor===Object}function r(e){if(t(e)){var r={};for(var n in e)o.call(e,n)&&(r[n]=e[n]);return r}return e}function n(e,a){for(var i in a)o.call(a,i)&&(t(e[i])?n(e[i],r(a[i])):e[i]=r(a[i]))}function a(e,i,s){for(var l in s)if(!1!==o.call(s,l))if(!0===s[l])l in i&&o.call(i,l)&&(e[l]=r(i[l]));else if(s[l])if(t(s[l])){var d={};n(d,e[l]),n(d,i[l]),e[l]=d}else if(Array.isArray(s[l])){var d={},p=s[l].reduce(function(e,t){return e[t]=!0,e},{});for(var c in e[l])o.call(e[l],c)&&(d[c]={},e[l]&&e[l][c]&&a(d[c],e[l][c],p));for(var c in i[l])o.call(i[l],c)&&(d[c]||(d[c]={}),i[l]&&i[l][c]&&a(d[c],i[l][c],p));e[l]=d}return e}var o=Object.prototype.hasOwnProperty,i={generic:!0,types:{},properties:{},parseContext:{},scope:{},atrule:["parse"],pseudo:["parse"],node:["name","structure","parse","generate","walkContext"]};e.exports=function(e,t){return a(e,t,i)}},46808:(e,t,r)=>{e.exports={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude:function(e){return this.AtrulePrelude(e.atrule?e.atrule+"":null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",rule:"Rule",selectorList:"SelectorList",selector:"Selector",block:function(){return this.Block(!0)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},scope:r(38141),atrule:r(20264),pseudo:r(69302),node:r(85369)}},50997:(e,t,r)=>{e.exports={node:r(85369)}},66330:(e,t,r)=>{function n(e,t){for(var r in t)e[r]=t[r];return e}function a(e){var t=c(e),r=g(e),b=u(e),S=m(r),x={List:o,SyntaxError:i,TokenStream:s,Lexer:l,vendorPrefix:f.vendorPrefix,keyword:f.keyword,property:f.property,isCustomProperty:f.isCustomProperty,definitionSyntax:d,lexer:null,createLexer:function(e){return new l(e,x,x.lexer.structure)},tokenize:p,parse:t,walk:r,generate:b,find:r.find,findLast:r.findLast,findAll:r.findAll,clone:h,fromPlainObject:S.fromPlainObject,toPlainObject:S.toPlainObject,createSyntax:function(e){return a(y({},e))},fork:function(t){var r=y({},e);return a("function"==typeof t?t(r,n):y(r,t))}};return x.lexer=new l({generic:!0,types:e.types,properties:e.properties,node:e.node},x),x}var o=r(5355),i=r(51708),s=r(83058),l=r(42164),d=r(98333),p=r(61063),c=r(40283),u=r(31010),m=r(57208),g=r(87760),h=r(55933),f=r(87453),y=r(88845);t.create=function(e){return a(y({},e))}},59537:e=>{e.exports=function(){this.scanner.skipSC();var e=this.createSingleNodeList(this.IdSelector());return this.scanner.skipSC(),e}},21264:e=>{e.exports=function(){return this.createSingleNodeList(this.Raw(this.scanner.tokenIndex,null,!1))}},88036:(e,t,r)=>{var n=r(61063).TYPE,a=r(18204).mode,o=n.Comma;e.exports=function(){var e=this.createList();return this.scanner.skipSC(),e.push(this.Identifier()),this.scanner.skipSC(),this.scanner.tokenType===o&&(e.push(this.Operator()),e.push(this.parseCustomProperty?this.Value(null):this.Raw(this.scanner.tokenIndex,a.exclamationMarkOrSemicolon,!1))),e}},30826:(e,t,r)=>{e.exports=r(66330).create(function(){for(var e={},t=0,r;t{function n(e,t){var r=this.scanner.tokenStart+e,n=this.scanner.source.charCodeAt(r);for((43===n||45===n)&&(t&&this.error("Number sign is not allowed"),r++);r{function n(e){return this.Raw(e,i.leftCurlyBracketOrSemicolon,!0)}function a(){for(var e=1,t;t=this.scanner.lookupType(e);e++){if(t===p)return!0;if(t===d||t===s)return!1}return!1}var o=r(61063).TYPE,i=r(18204).mode,s=o.AtKeyword,l=o.Semicolon,d=o.LeftCurlyBracket,p=o.RightCurlyBracket;e.exports={name:"Atrule",structure:{name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]},parse:function(){var e=this.scanner.tokenStart,t=null,r=null,o,i;switch(this.eat(s),o=this.scanner.substrToCursor(e+1),i=o.toLowerCase(),this.scanner.skipSC(),!1===this.scanner.eof&&this.scanner.tokenType!==d&&this.scanner.tokenType!==l&&(this.parseAtrulePrelude?(t=this.parseWithFallback(this.AtrulePrelude.bind(this,o),n),"AtrulePrelude"===t.type&&null===t.children.head&&(t=null)):t=n.call(this,this.scanner.tokenIndex),this.scanner.skipSC()),this.scanner.tokenType){case l:this.scanner.next();break;case d:r=this.atrule.hasOwnProperty(i)&&"function"==typeof this.atrule[i].block?this.atrule[i].block.call(this):this.Block(a.call(this));}return{type:"Atrule",loc:this.getLocation(e,this.scanner.tokenStart),name:o,prelude:t,block:r}},generate:function(e){this.chunk("@"),this.chunk(e.name),null!==e.prelude&&(this.chunk(" "),this.node(e.prelude)),e.block?this.node(e.block):this.chunk(";")},walkContext:"atrule"}},24272:(e,t,r)=>{var n=r(61063).TYPE,a=n.Semicolon,o=n.LeftCurlyBracket;e.exports={name:"AtrulePrelude",structure:{children:[[]]},parse:function(e){var t=null;return null!==e&&(e=e.toLowerCase()),this.scanner.skipSC(),t=this.atrule.hasOwnProperty(e)&&"function"==typeof this.atrule[e].prelude?this.atrule[e].prelude.call(this):this.readSequence(this.scope.AtrulePrelude),this.scanner.skipSC(),!0!==this.scanner.eof&&this.scanner.tokenType!==o&&this.scanner.tokenType!==a&&this.error("Semicolon or block is expected"),null===t&&(t=this.createList()),{type:"AtrulePrelude",loc:this.getLocationFromList(t),children:t}},generate:function(e){this.children(e)},walkContext:"atrulePrelude"}},33434:(e,t,r)=>{function n(){this.scanner.eof&&this.error("Unexpected end of input");var e=this.scanner.tokenStart,t=!1,r=!0;return this.scanner.isDelim(42)?(t=!0,r=!1,this.scanner.next()):!this.scanner.isDelim(124)&&this.eat(i),this.scanner.isDelim(124)?61===this.scanner.source.charCodeAt(this.scanner.tokenStart+1)?t&&this.error("Identifier is expected",this.scanner.tokenEnd):(this.scanner.next(),this.eat(i)):t&&this.error("Vertical line is expected"),r&&this.scanner.tokenType===l&&(this.scanner.next(),this.eat(i)),{type:"Identifier",loc:this.getLocation(e,this.scanner.tokenStart),name:this.scanner.substrToCursor(e)}}function a(){var e=this.scanner.tokenStart,t=this.scanner.source.charCodeAt(e);return 61!==t&&126!==t&&94!==t&&36!==t&&42!==t&&124!==t&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.scanner.next(),61!==t&&(!this.scanner.isDelim(61)&&this.error("Equal sign is expected"),this.scanner.next()),this.scanner.substrToCursor(e)}var o=r(61063).TYPE,i=o.Ident,s=o.String,l=o.Colon,d=o.LeftSquareBracket,p=o.RightSquareBracket;e.exports={name:"AttributeSelector",structure:{name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]},parse:function(){var e=this.scanner.tokenStart,t=null,r=null,o=null,l;return this.eat(d),this.scanner.skipSC(),l=n.call(this),this.scanner.skipSC(),this.scanner.tokenType!==p&&(this.scanner.tokenType!==i&&(t=a.call(this),this.scanner.skipSC(),r=this.scanner.tokenType===s?this.String():this.Identifier(),this.scanner.skipSC()),this.scanner.tokenType===i&&(o=this.scanner.getTokenValue(),this.scanner.next(),this.scanner.skipSC())),this.eat(p),{type:"AttributeSelector",loc:this.getLocation(e,this.scanner.tokenStart),name:l,matcher:t,value:r,flags:o}},generate:function(e){var t=" ";this.chunk("["),this.node(e.name),null!==e.matcher&&(this.chunk(e.matcher),null!==e.value&&(this.node(e.value),"String"===e.value.type&&(t=""))),null!==e.flags&&(this.chunk(t),this.chunk(e.flags)),this.chunk("]")}}},5163:(e,t,r)=>{function n(e){return this.Raw(e,null,!0)}function a(){return this.parseWithFallback(this.Rule,n)}function o(e){return this.Raw(e,l.semicolonIncluded,!0)}function i(){if(this.scanner.tokenType===c)return o.call(this,this.scanner.tokenIndex);var e=this.parseWithFallback(this.Declaration,o);return this.scanner.tokenType===c&&this.scanner.next(),e}var s=r(61063).TYPE,l=r(18204).mode,d=s.WhiteSpace,p=s.Comment,c=s.Semicolon,u=s.AtKeyword,m=s.LeftCurlyBracket,g=s.RightCurlyBracket;e.exports={name:"Block",structure:{children:[["Atrule","Rule","Declaration"]]},parse:function(e){var t=e?i:a,r=this.scanner.tokenStart,o=this.createList();this.eat(m);scan:for(;!this.scanner.eof;)switch(this.scanner.tokenType){case g:break scan;case d:case p:this.scanner.next();break;case u:o.push(this.parseWithFallback(this.Atrule,n));break;default:o.push(t.call(this));}return this.scanner.eof||this.eat(g),{type:"Block",loc:this.getLocation(r,this.scanner.tokenStart),children:o}},generate:function(e){this.chunk("{"),this.children(e,function(e){"Declaration"===e.type&&this.chunk(";")}),this.chunk("}")},walkContext:"block"}},96809:(e,t,r)=>{var n=r(61063).TYPE,a=n.LeftSquareBracket,o=n.RightSquareBracket;e.exports={name:"Brackets",structure:{children:[[]]},parse:function(e,t){var r=this.scanner.tokenStart,n=null;return this.eat(a),n=e.call(this,t),this.scanner.eof||this.eat(o),{type:"Brackets",loc:this.getLocation(r,this.scanner.tokenStart),children:n}},generate:function(e){this.chunk("["),this.children(e),this.chunk("]")}}},4351:(e,t,r)=>{var n=r(61063).TYPE.CDC;e.exports={name:"CDC",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDC",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk("-->")}}},37691:(e,t,r)=>{var n=r(61063).TYPE.CDO;e.exports={name:"CDO",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDO",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk("")}}},58368:(e,t,r)=>{var n=r(22802).TYPE.CDO;e.exports={name:"CDO",structure:[],parse:function(){var e=this.scanner.tokenStart;return this.eat(n),{type:"CDO",loc:this.getLocation(e,this.scanner.tokenStart)}},generate:function(){this.chunk(""}var p=r(43402),c=r(83982),u=r(53958);u.elementNames.__proto__=null,u.attributeNames.__proto__=null;var m={__proto__:null,style:!0,script:!0,xmp:!0,iframe:!0,noembed:!0,noframes:!0,plaintext:!0,noscript:!0},g={__proto__:null,area:!0,base:!0,basefont:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,isindex:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},h=e.exports=function(e,t){Array.isArray(e)||e.cheerio||(e=[e]),t=t||{};for(var r="",n=0,c;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Doctype=t.CDATA=t.Tag=t.Style=t.Script=t.Comment=t.Directive=t.Text=t.Root=t.isTag=void 0,t.isTag=function(e){return"tag"===e.type||"script"===e.type||"style"===e.type},t.Root="root",t.Text="text",t.Directive="directive",t.Comment="comment",t.Script="script",t.Style="style",t.Tag="tag",t.CDATA="cdata",t.Doctype="doctype"},42515:e=>{e.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(e){return"tag"===e.type||"script"===e.type||"style"===e.type}}},43370:(e,t,r)=>{var n=e.exports;[r(64144),r(86755),r(69009),r(87431),r(75718),r(4614)].forEach(function(e){Object.keys(e).forEach(function(t){n[t]=e[t].bind(n)})})},4614:(e,t)=>{t.removeSubsets=function(e){for(var t=e.length,r,n,a;-1<--t;){for(r=n=e[t],e[t]=null,a=!0;n;){if(-1s.indexOf(d)?i===t?r.FOLLOWING|r.CONTAINED_BY:r.FOLLOWING:i===e?r.PRECEDING|r.CONTAINS:r.PRECEDING)};t.uniqueSort=function(e){var t=e.length,a,o;for(e=e.slice();-1<--t;)a=e[t],o=e.indexOf(a),-1{function n(e,t){return"function"==typeof t?function(r){return r.attribs&&t(r.attribs[e])}:function(r){return r.attribs&&r.attribs[e]===t}}function a(e,t){return function(r){return e(r)||t(r)}}var o=r(42515),i=t.isTag=o.isTag;t.testElement=function(e,t){for(var r in e)if(!e.hasOwnProperty(r));else if("tag_name"===r){if(!i(t)||!e.tag_name(t.name))return!1;}else if("tag_type"===r){if(!e.tag_type(t.type))return!1;}else if("tag_contains"===r){if(i(t)||!e.tag_contains(t.data))return!1;}else if(!t.attribs||!e[r](t.attribs[r]))return!1;return!0};var s={tag_name:function(e){return"function"==typeof e?function(t){return i(t)&&e(t.name)}:"*"===e?i:function(t){return i(t)&&t.name===e}},tag_type:function(e){return"function"==typeof e?function(t){return e(t.type)}:function(t){return t.type===e}},tag_contains:function(e){return"function"==typeof e?function(t){return!i(t)&&e(t.data)}:function(t){return!i(t)&&t.data===e}}};t.getElements=function(e,t,r,o){var i=Object.keys(e).map(function(t){var r=e[t];return t in s?s[t](r):n(t,r)});return 0===i.length?[]:this.filter(i.reduce(a),t,r,o)},t.getElementById=function(e,t,r){return Array.isArray(t)||(t=[t]),this.findOne(n("id",e),t,!1!==r)},t.getElementsByTagName=function(e,t,r,n){return this.filter(s.tag_name(e),t,r,n)},t.getElementsByTagType=function(e,t,r,n){return this.filter(s.tag_type(e),t,r,n)}},69009:(e,t)=>{t.removeElement=function(e){if(e.prev&&(e.prev.next=e.next),e.next&&(e.next.prev=e.prev),e.parent){var t=e.parent.children;t.splice(t.lastIndexOf(e),1)}},t.replaceElement=function(e,t){var r=t.prev=e.prev;r&&(r.next=t);var n=t.next=e.next;n&&(n.prev=t);var a=t.parent=e.parent;if(a){var o=a.children;o[o.lastIndexOf(e)]=t}},t.appendChild=function(e,t){if(t.parent=e,1!==e.children.push(t)){var r=e.children[e.children.length-2];r.next=t,t.prev=r,t.next=null}},t.append=function(e,t){var r=e.parent,n=e.next;if(t.next=n,t.prev=e,e.next=t,t.parent=r,!n)r&&r.children.push(t);else if(n.prev=t,r){var a=r.children;a.splice(a.lastIndexOf(n),0,t)}},t.prepend=function(e,t){var r=e.parent;if(r){var n=r.children;n.splice(n.lastIndexOf(e),0,t)}e.prev&&(e.prev.next=t),t.parent=r,t.prev=e.prev,t.next=e,e.prev=t}},87431:(e,t,r)=>{function n(e,t,r,a){for(var o=[],s=0,l=t.length,d;s=--a))&&(d=t[s].children,!(r&&d&&0=a)));s++);return o}function a(e,t){for(var r=null,n=0,o=t.length;n{function n(e){return Array.isArray(e)?e.map(n).join(""):i(e)?"br"===e.name?"\n":n(e.children):e.type===a.CDATA?n(e.children):e.type===a.Text?e.data:""}var a=r(42515),o=r(1702),i=a.isTag;e.exports={getInnerHTML:function(e,t){return e.children?e.children.map(function(e){return o(e,t)}).join(""):""},getOuterHTML:o,getText:n}},86755:(e,t)=>{var r=t.getChildren=function(e){return e.children},n=t.getParent=function(e){return e.parent};t.getSiblings=function(e){var t=n(e);return t?r(t):[e]},t.getAttributeValue=function(e,t){return e.attribs&&e.attribs[t]},t.hasAttrib=function(e,t){return!!e.attribs&&hasOwnProperty.call(e.attribs,t)},t.getName=function(e){return e.name}},58509:(e,t,r)=>{"use strict";/** * @file Embedded JavaScript templating engine. {@link http://ejs.co} * @author Matthew Eernisse * @author Tiancheng "Timothy" Gu @@ -172,4 +120,4 @@ If you think this is a bug, please report it on the Puppeteer issue tracker.`}\n * ะžะ‘ะ•ะกะŸะ•ะงะ•ะะ˜ะ•ะœ ะ˜ะ›ะ˜ ะ˜ะกะŸะžะ›ะฌะ—ะžะ’ะะะ˜ะ•ะœ ะŸะ ะžะ“ะ ะะœะœะะžะ“ะž * ะžะ‘ะ•ะกะŸะ•ะงะ•ะะ˜ะฏ * ะ˜ะ›ะ˜ ะ˜ะะซะœะ˜ ะ”ะ•ะ™ะกะขะ’ะ˜ะฏะœะ˜ ะก ะŸะ ะžะ“ะ ะะœะœะะซะœ ะžะ‘ะ•ะกะŸะ•ะงะ•ะะ˜ะ•ะœ. - */function n(e,t){return e.renameElem("use"),e.removeAttr("d"),e.removeAttr("stroke"),e.removeAttr("fill"),e.addAttr({name:"xlink:href",local:"xlink:href",prefix:"none",value:"#"+t}),delete e.pathJS,e}function a(e,t){if(!e.isEmpty())for(let r of e.content)t(r),a(r,t)}var o=r(71921);t.type="full",t.active=!1,t.description="Finds elements with the same d, fill, and stroke, and converts them to elements referencing a single def.",t.fn=function(e){const t=new Map;let r=0;const i=[];a(e,e=>{if(!e.isElem("path")||!e.hasAttr("d"))return;const a=e.attr("d").value,o=e.hasAttr("fill")&&e.attr("fill").value||"",s=e.hasAttr("stroke")&&e.attr("stroke").value||"",l=a+";s:"+s+";f:"+o,d=t.get(l);return d?void(!d.reused&&(d.reused=!0,!d.elem.hasAttr("id")&&d.elem.addAttr({name:"id",local:"id",prefix:"",value:"reuse-"+r++}),i.push(d.elem)),e=n(e,d.elem.attr("id").value)):void t.set(l,{elem:e,reused:!1})});const s=new o({elem:"defs",prefix:"",local:"defs",content:[],attrs:[]},e);e.content[0].spliceContent(0,0,s);for(let t of i){const e=t.style,r=t.class;delete t.style,delete t.class;const a=t.clone();t.style=e,t.class=r,a.removeAttr("transform"),s.spliceContent(0,0,a),t=n(t,a.attr("id").value),t.removeAttr("id")}return e}},17549:(e,t)=>{"use strict";t.type="perItem",t.active=!1,t.description="sorts element attributes (disabled by default)",t.params={order:["id","width","height","x","x1","x2","y","y1","y2","cx","cy","r","fill","stroke","marker","d","points"]},t.fn=function(e,t){var r=[],n={},o=t.order.length+1,i=t.xmlnsOrder||"front";e.elem&&(e.eachAttr(function(e){r.push(e)}),r.sort(function(e,r){if(e.prefix!=r.prefix){if("front"==i){if("xmlns"==e.prefix)return-1;if("xmlns"==r.prefix)return 1}return e.prefix{"use strict";t.type="perItem",t.active=!0,t.description="Sorts children of to improve compression",t.fn=function(e){if(e.isElem("defs")){if(e.content){var t=e.content.reduce(function(e,t){return t.elem in e?e[t.elem]++:e[t.elem]=1,e},{});e.content.sort(function(e,r){var n=t[r.elem]-t[e.elem];if(0!=n)return n;var a=r.elem.length-e.elem.length;return 0==a?e.elem==r.elem?0:e.elem>r.elem?-1:1:a})}return!0}}},16974:(e,t,r)=>{function n(e,t,r,a){return t===r?a(null,!0):void e.lstat(t,function(o,i){return o&&"ENOENT"!==o.code?a(o):o||i.isDirectory()?n(e,p.join(t,".."),r,a):void a(null,!1)})}function a(e,t,r){l(e,{fs:t.fs},function(e,n){!e&&n&&t.own?o(n,t.uid,t.gid,r):r(e)})}var o=r(28729),i=r(15283),s=r(537),l=r(23607),d=r(35747),p=r(85622),c=r(12087),u="win32"===c.platform(),m=function(){},g=function(e){return e},h=u?function(e){return e.replace(/\\/g,"/").replace(/[:?<>|]/g,"_")}:g,f=function(e,t,r,n,a,o){var s=a||["."];return function(a){if(!s.length)return a();var l=s.shift(),d=p.join(r,l);t.call(e,d,function(t,c){return t?a(t):c.isDirectory()?void e.readdir(d,function(e,t){if(e)return a(e);o&&t.sort();for(var d=0;d{var n=r(31669),a=r(96986),o=r(1759),i=r(99318).Writable,s=r(99318).PassThrough,l=function(){},d=function(e){return e&=511,e&&512-e},p=function(e,t){var r=new u(e,t);return r.end(),r},c=function(e,t){return t.path&&(e.name=t.path),t.linkpath&&(e.linkname=t.linkpath),t.size&&(e.size=parseInt(t.size,10)),e.pax=t,e},u=function(e,t){this._parent=e,this.offset=t,s.call(this,{autoDestroy:!1})};n.inherits(u,s),u.prototype.destroy=function(e){this._parent.destroy(e)};var m=function(e){if(!(this instanceof m))return new m(e);i.call(this,e),e=e||{},this._offset=0,this._buffer=a(),this._missing=0,this._partial=!1,this._onparse=l,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var t=this,r=t._buffer,n=function(){t._continue()},s=function(e){return t._locked=!1,e?t.destroy(e):void(!t._stream&&n())},g=function(){t._stream=null;var e=d(t._header.size);e?t._parse(e,h):t._parse(512,x),t._locked||n()},h=function(){t._buffer.consume(d(t._header.size)),t._parse(512,x),n()},f=function(){var e=t._header.size;t._paxGlobal=o.decodePax(r.slice(0,e)),r.consume(e),g()},y=function(){var e=t._header.size;t._pax=o.decodePax(r.slice(0,e)),t._paxGlobal&&(t._pax=Object.assign({},t._paxGlobal,t._pax)),r.consume(e),g()},b=function(){var n=t._header.size;this._gnuLongPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),g()},S=function(){var n=t._header.size;this._gnuLongLinkPath=o.decodeLongPath(r.slice(0,n),e.filenameEncoding),r.consume(n),g()},x=function(){var a=t._offset,i;try{i=t._header=o.decode(r.slice(0,512),e.filenameEncoding)}catch(e){t.emit("error",e)}return(r.consume(512),!i)?(t._parse(512,x),void n()):"gnu-long-path"===i.type?(t._parse(i.size,b),void n()):"gnu-long-link-path"===i.type?(t._parse(i.size,S),void n()):"pax-global-header"===i.type?(t._parse(i.size,f),void n()):"pax-header"===i.type?(t._parse(i.size,y),void n()):(t._gnuLongPath&&(i.name=t._gnuLongPath,t._gnuLongPath=null),t._gnuLongLinkPath&&(i.linkname=t._gnuLongLinkPath,t._gnuLongLinkPath=null),t._pax&&(t._header=i=c(i,t._pax),t._pax=null),t._locked=!0,i.size&&"directory"!==i.type?void(t._stream=new u(t,a),t.emit("entry",i,t._stream,s),t._parse(i.size,g),n()):(t._parse(512,x),void t.emit("entry",i,p(t,a),s)))};this._onheader=x,this._parse(512,x)};n.inherits(m,i),m.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.emit("close"))},m.prototype._parse=function(e,t){this._destroyed||(this._offset+=e,this._missing=e,t===this._onheader&&(this._partial=!1),this._onparse=t)},m.prototype._continue=function(){if(!this._destroyed){var e=this._cb;this._cb=l,this._overflow?this._write(this._overflow,void 0,e):e()}},m.prototype._write=function(e,t,r){if(!this._destroyed){var n=this._stream,a=this._buffer,o=this._missing;if(e.length&&(this._partial=!0),e.lengtho&&(i=e.slice(o),e=e.slice(0,o)),n?n.end(e):a.append(e),this._overflow=i,this._onparse()}},m.prototype._final=function(e){return this._partial?this.destroy(new Error("Unexpected end of data")):void e()},e.exports=m},1759:(e,t)=>{function r(e){var t;if(128===e[0])t=!0;else if(255===e[0])t=!1;else return null;for(var r=[],n=e.length-1,a;0=t)?t:0<=e?e:(e+=t,0<=e?e:0):r},h=function(e){return 0===e?"file":1===e?"link":2===e?"symlink":3===e?"character-device":4===e?"block-device":5===e?"directory":6===e?"fifo":7===e?"contiguous-file":72===e?"pax-header":55===e?"pax-global-header":27===e?"gnu-long-link-path":28===e||30===e?"gnu-long-path":null},f=function(e){return"file"===e?0:"link"===e?1:"symlink"===e?2:"character-device"===e?3:"block-device"===e?4:"directory"===e?5:"fifo"===e?6:"contiguous-file"===e?7:"pax-header"===e?72:0},y=function(e,t,r,n){for(;rr;r++)t+=e[r];for(var n=156;512>n;n++)t+=e[n];return t},S=function(e,t){return e=e.toString(8),e.length>t?"7777777777777777777".slice(0,t)+" ":"0000000000000000000".slice(0,t-e.length)+e+" "},x=function(e,t,n){if(e=e.slice(t,t+n),t=0,128&e[t])return r(e);for(;t=_Mathpow(10,n)&&n++,r+n+e};t.decodeLongPath=function(e,t){return v(e,0,e.length,t)},t.encodePax=function(e){var t="";e.name&&(t+=k(" path="+e.name+"\n")),e.linkname&&(t+=k(" linkpath="+e.linkname+"\n"));var r=e.pax;if(r)for(var n in r)t+=k(" "+n+"="+r[n]+"\n");return Buffer.from(t)},t.decodePax=function(e){for(var t={};e.length;){for(var r=0;r{t.extract=r(62081),t.pack=r(85901)},78832:e=>{"use strict";function t(e,t,r){function n(e,r,n){return"string"==typeof t?t:t(e,r,n)}r||(r=Error);class a extends r{constructor(e,t,r){super(n(e,t,r))}}a.prototype.name=r.name,a.prototype.code=e,i[e]=a}function r(e,t){if(Array.isArray(e)){const r=e.length;return e=e.map(e=>e+""),2r?0:+r,t.length)===t}function a(e,t,r){return(void 0===r||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function o(e,t,r){return"number"!=typeof r&&(r=0),!(r+t.length>e.length)&&-1!==e.indexOf(t,r)}const i={};t("ERR_INVALID_OPT_VALUE",function(e,t){return"The value \""+t+"\" is invalid for option \""+e+"\""},TypeError),t("ERR_INVALID_ARG_TYPE",function(e,t,i){let s;"string"==typeof t&&n(t,"not ")?(s="must not be",t=t.replace(/^not /,"")):s="must be";let l;if(a(e," argument"))l=`The ${e} ${s} ${r(t,"type")}`;else{const n=o(e,".")?"property":"argument";l=`The "${e}" ${n} ${s} ${r(t,"type")}`}return l+=`. Received type ${typeof i}`,l},TypeError),t("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),t("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"}),t("ERR_STREAM_PREMATURE_CLOSE","Premature close"),t("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"}),t("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),t("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),t("ERR_STREAM_WRITE_AFTER_END","write after end"),t("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),t("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError),t("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),e.exports.q=i},8652:(e,t,r)=>{"use strict";function n(e){return this instanceof n?void(s.call(this,e),l.call(this,e),this.allowHalfOpen=!0,e&&(!1===e.readable&&(this.readable=!1),!1===e.writable&&(this.writable=!1),!1===e.allowHalfOpen&&(this.allowHalfOpen=!1,this.once("end",a)))):new n(e)}function a(){this._writableState.ended||process.nextTick(o,this)}function o(e){e.end()}var i=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};e.exports=n;var s=r(44347),l=r(53519);r(16095)(n,s);for(var d=i(l.prototype),p=0,c;p{"use strict";function n(e){return this instanceof n?void a.call(this,e):new n(e)}e.exports=n;var a=r(4114);r(16095)(n,a),n.prototype._transform=function(e,t,r){r(null,e)}},44347:(e,t,r)=>{"use strict";function n(e){return z.from(e)}function a(e){return z.isBuffer(e)||e instanceof R}function o(e,t,r){return"function"==typeof e.prependListener?e.prependListener(t,r):void(e._events&&e._events[t]?Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r))}function i(e,t,n){A=A||r(8652),e=e||{},"boolean"!=typeof n&&(n=t instanceof A),this.objectMode=!!e.objectMode,n&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=N(this,e,"readableHighWaterMark",n),this.buffer=new W,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(!H&&(H=r(84882).s),this.decoder=new H(e.encoding),this.encoding=e.encoding)}function s(e){if(A=A||r(8652),!(this instanceof s))return new s(e);var t=this instanceof A;this._readableState=new i(e,this,t),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),L.call(this)}function l(e,t,r,a,o){M("readableAddChunk",t);var i=e._readableState;if(null===t)i.reading=!1,m(e,i);else{var s;if(o||(s=p(i,t)),s)Y(e,s);else if(!(i.objectMode||t&&0>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function u(e,t){return 0>=e||0===t.length&&t.ended?0:t.objectMode?1:e===e?(e>t.highWaterMark&&(t.highWaterMark=c(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0)):t.flowing&&t.length?t.buffer.head.data.length:t.length}function m(e,t){if(M("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?g(e):(t.needReadable=!1,!t.emittedReadable&&(t.emittedReadable=!0,h(e)))}}function g(e){var t=e._readableState;M("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(M("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;M("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,C(e)}function f(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(y,e,t))}function y(e,t){for(;!t.reading&&!t.ended&&(t.length=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.first():t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function w(e){var t=e._readableState;M("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(M("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&0===e.length&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}function E(e,t){for(var r=0,n=e.length;r=t.highWaterMark)||t.ended))return M("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?w(this):g(this),null;if(e=u(e,t),0===e&&t.ended)return 0===t.length&&w(this),null;var a=t.needReadable;M("need readable",a),(0===t.length||t.length-e{"use strict";function n(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new d);r.writechunk=null,r.writecb=null,null!=t&&this.push(t),n(e);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";function n(e){var t=this;this.next=null,this.entry=null,this.finish=function(){w(t,e)}}function a(e){return O.from(e)}function o(e){return O.isBuffer(e)||e instanceof P}function i(){}function s(e,t,a){T=T||r(8652),e=e||{},"boolean"!=typeof a&&(a=t instanceof T),this.objectMode=!!e.objectMode,a&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=R(this,e,"writableHighWaterMark",a),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=!1===e.decodeStrings;this.decodeStrings=!o,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){f(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!1!==e.emitClose,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new n(this)}function l(e){T=T||r(8652);var t=this instanceof T;return t||j.call(l,this)?void(this._writableState=new s(e,this,t),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),A.call(this)):new l(e)}function d(e,t){var r=new F;U(e,r),process.nextTick(t,r)}function p(e,t,r,n){var a;return null===r?a=new D:"string"!=typeof r&&!t.objectMode&&(a=new M("chunk",["string","Buffer"],r)),!a||(U(e,a),process.nextTick(n,a),!1)}function c(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=O.from(t,r)),t}function u(e,t,r,n,a,o){if(!r){var i=c(t,n,a);n!==i&&(r=!0,a="buffer",n=i)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length{"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e,t){return{value:e,done:t}}function o(e){var t=e[d];if(null!==t){var r=e[h].read();null!==r&&(e[m]=null,e[d]=null,e[p]=null,t(a(r,!1)))}}function i(e){process.nextTick(o,e)}function s(e,t){return function(r,n){e.then(function(){return t[u]?void r(a(void 0,!0)):void t[g](r,n)},n)}}var l=r(68997),d=Symbol("lastResolve"),p=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),m=Symbol("lastPromise"),g=Symbol("handlePromise"),h=Symbol("stream"),f=Object.getPrototypeOf(function(){}),y=Object.setPrototypeOf((b={get stream(){return this[h]},next:function(){var e=this,t=this[c];if(null!==t)return Promise.reject(t);if(this[u])return Promise.resolve(a(void 0,!0));if(this[h].destroyed)return new Promise(function(t,r){process.nextTick(function(){e[c]?r(e[c]):t(a(void 0,!0))})});var r=this[m],n;if(r)n=new Promise(s(r,this));else{var o=this[h].read();if(null!==o)return Promise.resolve(a(o,!1));n=new Promise(this[g])}return this[m]=n,n}},n(b,Symbol.asyncIterator,function(){return this}),n(b,"return",function(){var e=this;return new Promise(function(t,r){e[h].destroy(null,function(e){return e?void r(e):void t(a(void 0,!0))})})}),b),f),b;e.exports=function(e){var t=Object.create(y,(r={},n(r,h,{value:e,writable:!0}),n(r,d,{value:null,writable:!0}),n(r,p,{value:null,writable:!0}),n(r,c,{value:null,writable:!0}),n(r,u,{value:e._readableState.endEmitted,writable:!0}),n(r,g,{value:function(e,r){var n=t[h].read();n?(t[m]=null,t[d]=null,t[p]=null,e(a(n,!1))):(t[d]=e,t[p]=r)},writable:!0}),r)),r;return t[m]=null,l(e,function(e){if(e&&"ERR_STREAM_PREMATURE_CLOSE"!==e.code){var r=t[p];return null!==r&&(t[m]=null,t[d]=null,t[p]=null,r(e)),void(t[c]=e)}var n=t[d];null!==n&&(t[m]=null,t[d]=null,t[p]=null,n(a(void 0,!0))),t[u]=!0}),e.on("readable",i.bind(null,t)),t}},63935:(e,t,r)=>{"use strict";function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function a(e){for(var t=1,r;t>>0),r=this.head,n=0;r;)d(r.data,t,n),n+=r.data.length,r=r.next;return t}},{key:"consume",value:function(e,t){var r;return eo.length?o.length:e;if(a+=i===o.length?o:o.slice(0,e),e-=i,0===e){i===o.length?(++r,this.head=t.next?t.next:this.tail=null):(this.head=t,t.data=o.slice(i));break}++r}return this.length-=r,a}},{key:"_getBuffer",value:function(e){var t=u.allocUnsafe(e),r=this.head,a=1;for(r.data.copy(t),e-=r.data.length;r=r.next;){var o=r.data,i=e>o.length?o.length:e;if(o.copy(t,t.length-e,0,i),e-=i,0===e){i===o.length?(++a,this.head=r.next?r.next:this.tail=null):(this.head=r,r.data=o.slice(i));break}++a}return this.length-=a,t}},{key:h,value:function(e,t){return g(this,a({},t,{depth:0,customInspect:!1}))}}]),e}()},42719:e=>{"use strict";function t(e,t){n(e,t),r(e)}function r(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function n(e,t){e.emit("error",t)}e.exports={destroy:function(e,a){var o=this,i=this._readableState&&this._readableState.destroyed,s=this._writableState&&this._writableState.destroyed;return i||s?(a?a(e):e&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,process.nextTick(n,this,e)):process.nextTick(n,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!a&&e?o._writableState?o._writableState.errorEmitted?process.nextTick(r,o):(o._writableState.errorEmitted=!0,process.nextTick(t,o,e)):process.nextTick(t,o,e):a?(process.nextTick(r,o),a(e)):process.nextTick(r,o)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}}},68997:(e,t,r)=>{"use strict";function n(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=Array(r),a=0;a{"use strict";function n(e,t,r,n,a,o,i){try{var s=e[o](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,a)}function a(e){return function(){var t=this,r=arguments;return new Promise(function(a,o){function i(e){n(l,a,o,i,s,"next",e)}function s(e){n(l,a,o,i,s,"throw",e)}var l=e.apply(t,r);i(void 0)})}}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function i(e){for(var t=1,r;t{"use strict";function n(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}function a(e){if(e)throw e}function o(e){return e.setHeader&&"function"==typeof e.abort}function s(e,t,a,i){i=n(i);var s=!1;e.on("close",function(){s=!0}),void 0===g&&(g=r(68997)),g(e,{readable:t,writable:a},function(e){return e?i(e):void(s=!0,i())});var l=!1;return function(t){if(!s)return l?void 0:(l=!0,o(e)?e.abort():"function"==typeof e.destroy?e.destroy():void i(t||new m("pipe")))}}function l(e){e()}function d(e,t){return e.pipe(t)}function p(e){return e.length?"function"==typeof e[e.length-1]?e.pop():a:a}var c=r(78832).q,u=c.ERR_MISSING_ARGS,m=c.ERR_STREAM_DESTROYED,g;e.exports=function(){for(var e=arguments.length,t=Array(e),r=0;rt.length)throw new u("streams");var a=t.map(function(e,r){var i=r{"use strict";function n(e,t,r){return null==e.highWaterMark?t?e[r]:null:e.highWaterMark}var a=r(78832).q.ERR_INVALID_OPT_VALUE;e.exports={getHighWaterMark:function(e,t,r,o){var i=n(t,o,r);if(null!=i){if(!(isFinite(i)&&_Mathfloor(i)===i)||0>i){var s=o?r:"highWaterMark";throw new a(s,i)}return _Mathfloor(i)}return e.objectMode?16:16384}}},95989:(e,t,r)=>{e.exports=r(92413)},99318:(e,t,r)=>{var n=r(92413);"disable"===process.env.READABLE_STREAM&&n?(e.exports=n.Readable,Object.assign(e.exports,n),e.exports.Stream=n):(t=e.exports=r(44347),t.Stream=n||t,t.Readable=t,t.Writable=r(53519),t.Duplex=r(8652),t.Transform=r(4114),t.PassThrough=r(549),t.finished=r(68997),t.pipeline=r(3477))},85901:(e,t,r)=>{function n(e){switch(e&a.S_IFMT){case a.S_IFBLK:return"block-device";case a.S_IFCHR:return"character-device";case a.S_IFDIR:return"directory";case a.S_IFIFO:return"fifo";case a.S_IFLNK:return"symlink";}return"file"}var a=r(21760),o=r(10852),i=r(16095),s=Buffer.alloc,l=r(99318).Readable,d=r(99318).Writable,p=r(24304).StringDecoder,c=r(1759),u=parseInt("755",8),m=parseInt("644",8),g=s(1024),h=function(){},f=function(e,t){t&=511,t&&e.push(g.slice(0,512-t))},y=function(e){d.call(this),this.written=0,this._to=e,this._destroyed=!1};i(y,d),y.prototype._write=function(e,t,r){return this.written+=e.length,this._to.push(e)?r():void(this._to._drain=r)},y.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var b=function(){d.call(this),this.linkname="",this._decoder=new p("utf-8"),this._destroyed=!1};i(b,d),b.prototype._write=function(e,t,r){this.linkname+=this._decoder.write(e),r()},b.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var S=function(){d.call(this),this._destroyed=!1};i(S,d),S.prototype._write=function(e,t,r){r(new Error("No body allowed for this entry"))},S.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var x=function(e){return this instanceof x?void(l.call(this,e),this._drain=h,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null):new x(e)};i(x,l),x.prototype.entry=function(e,t,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){"function"==typeof t&&(r=t,t=null),r||(r=h);var a=this;if(e.size&&"symlink"!==e.type||(e.size=0),e.type||(e.type=n(e.mode)),e.mode||(e.mode="directory"===e.type?u:m),e.uid||(e.uid=0),e.gid||(e.gid=0),e.mtime||(e.mtime=new Date),"string"==typeof t&&(t=Buffer.from(t)),Buffer.isBuffer(t)){e.size=t.length,this._encode(e);var i=this.push(t);return f(a,e.size),i?process.nextTick(r):this._drain=r,new S}if("symlink"===e.type&&!e.linkname){var s=new b;return o(s,function(t){return t?(a.destroy(),r(t)):void(e.linkname=s.linkname,a._encode(e),r())}),s}if(this._encode(e),"file"!==e.type&&"contiguous-file"!==e.type)return process.nextTick(r),new S;var l=new y(this);return this._stream=l,o(l,function(t){return a._stream=null,t?(a.destroy(),r(t)):l.written===e.size?void(f(a,e.size),a._finalizing&&a.finalize(),r()):(a.destroy(),r(new Error("size mismatch")))}),l}},x.prototype.finalize=function(){return this._stream?void(this._finalizing=!0):void(this._finalized||(this._finalized=!0,this.push(g),this.push(null)))},x.prototype.destroy=function(e){this._destroyed||(this._destroyed=!0,e&&this.emit("error",e),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())},x.prototype._encode=function(e){if(!e.pax){var t=c.encode(e);if(t)return void this.push(t)}this._encodePax(e)},x.prototype._encodePax=function(e){var t=c.encodePax({name:e.name,linkname:e.linkname,pax:e.pax}),r={name:"PaxHeader",mode:e.mode,uid:e.uid,gid:e.gid,size:t.length,mtime:e.mtime,type:"pax-header",linkname:e.linkname&&"PaxHeader",uname:e.uname,gname:e.gname,devmajor:e.devmajor,devminor:e.devminor};this.push(c.encode(r)),this.push(t),f(this,t.length),r.size=e.size,r.type=e.type,this.push(c.encode(r))},x.prototype._read=function(){var e=this._drain;this._drain=h,e()},e.exports=x},82309:(e,t,r)=>{function n(e,t,r){function n(){for(;l.length&&!p.paused;){var e=l.shift();if(null===e)return p.emit("end");p.emit("data",e)}}function o(){p.writable=!1,t.call(p),!p.readable&&p.autoDestroy&&p.destroy()}e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var i=!1,s=!1,l=[],d=!1,p=new a;return p.readable=p.writable=!0,p.paused=!1,p.autoDestroy=!(r&&!1===r.autoDestroy),p.write=function(t){return e.call(this,t),!p.paused},p.queue=p.push=function(e){return d?p:(null===e&&(d=!0),l.push(e),n(),p)},p.on("end",function(){p.readable=!1,!p.writable&&p.autoDestroy&&process.nextTick(function(){p.destroy()})}),p.end=function(e){if(!i)return i=!0,arguments.length&&p.write(e),o(),p},p.destroy=function(){if(!s)return s=!0,i=!0,l.length=0,p.writable=p.readable=!1,p.emit("close"),p},p.pause=function(){if(!p.paused)return p.paused=!0,p},p.resume=function(){return p.paused&&(p.paused=!1,p.emit("resume")),n(),p.paused||p.emit("drain"),p},p}var a=r(92413);t=e.exports=n,n.through=n},34603:(e,t,r)=>{e.exports=r(41296)},41296:(e,t,r)=>{"use strict";function n(e){var t=this;t.options=e||{},t.proxyOptions=t.options.proxy||{},t.maxSockets=t.options.maxSockets||d.Agent.defaultMaxSockets,t.requests=[],t.sockets=[],t.on("free",function(e,r,n,a){for(var s=o(r,n,a),l=0,d=t.requests.length,p;l=this.maxSockets?void a.requests.push(s):void a.createSocket(s,function(t){function r(){a.emit("free",t,s)}function n(){a.removeSocket(t),t.removeListener("free",r),t.removeListener("close",n),t.removeListener("agentRemove",n)}t.on("free",r),t.on("close",n),t.on("agentRemove",n),e.onSocket(t)})},n.prototype.createSocket=function(e,t){function r(r,n,i){if(l.removeAllListeners(),n.removeAllListeners(),200!==r.statusCode){g("tunneling socket could not be established, statusCode=%d",r.statusCode),n.destroy();var s=new Error("tunneling socket could not be established, statusCode="+r.statusCode);return s.code="ECONNRESET",e.request.emit("error",s),void a.removeSocket(o)}if(0{var n=r(82309),a=r(9961),o=r(17736);e.exports=function(){function e(e){if(!s)return s=a.header(d),p=0,!0;var t=1e5*s,r=new Int32Array(t),n=[];return p=a.decompress(d,function(e){n.push(e)},r,t,p),null===p?(s=0,!1):(e(Buffer.from(n)),!0)}function t(t){if(!l)try{return e(function(e){t.queue(e),null!==e&&(c+=e.length)})}catch(r){return t.emit("error",r),l=!0,!1}}var r=[],i=0,s=0,l=!1,d=null,p=null,c=0;return n(function(e){for(r.push(e),i+=e.length,null===d&&(d=o(function(){return r.shift()}));!l&&i-d.bytesRead+1>=(25e3+1e5*s||4);)t(this)},function(){for(;!l&&d&&i>d.bytesRead;)t(this);l||(null!==p&&this.emit("error",new Error("input stream ended prematurely")),this.queue(null))})}},17736:e=>{var t=[0,1,3,7,15,31,63,127,255];e.exports=function(e){var r=0,a=0,o=e(),i=function(s){if(null===s&&0!=r)return r=0,void a++;for(var l=0;0=o.length&&(a=0,o=e());var d=8-r;0===r&&0=d?(l<<=d,l|=t[d]&o[a++],r=0,s-=d):(l<<=s,l|=(o[a]&t[s]<<8-s-r)>>8-s-r,r+=s,s=0)}return l};return i.bytesRead=0,i}},9961:e=>{function t(e){this.name="Bzip2Error",this.message=e,this.stack=new Error().stack}t.prototype=new Error;var r={Error:function(e){throw new t(e)}},n={};n.Bzip2Error=t,n.crcTable=[0,79764919,159529838,222504665,319059676,398814059,445009330,507990021,638119352,583659535,797628118,726387553,890018660,835552979,1015980042,944750013,1276238704,1221641927,1167319070,1095957929,1595256236,1540665371,1452775106,1381403509,1780037320,1859660671,1671105958,1733955601,2031960084,2111593891,1889500026,1952343757,2552477408,2632100695,2443283854,2506133561,2334638140,2414271883,2191915858,2254759653,3190512472,3135915759,3081330742,3009969537,2905550212,2850959411,2762807018,2691435357,3560074640,3505614887,3719321342,3648080713,3342211916,3287746299,3467911202,3396681109,4063920168,4143685023,4223187782,4286162673,3779000052,3858754371,3904687514,3967668269,881225847,809987520,1023691545,969234094,662832811,591600412,771767749,717299826,311336399,374308984,453813921,533576470,25881363,88864420,134795389,214552010,2023205639,2086057648,1897238633,1976864222,1804852699,1867694188,1645340341,1724971778,1587496639,1516133128,1461550545,1406951526,1302016099,1230646740,1142491917,1087903418,2896545431,2825181984,2770861561,2716262478,3215044683,3143675388,3055782693,3001194130,2326604591,2389456536,2200899649,2280525302,2578013683,2640855108,2418763421,2498394922,3769900519,3832873040,3912640137,3992402750,4088425275,4151408268,4197601365,4277358050,3334271071,3263032808,3476998961,3422541446,3585640067,3514407732,3694837229,3640369242,1762451694,1842216281,1619975040,1682949687,2047383090,2127137669,1938468188,2001449195,1325665622,1271206113,1183200824,1111960463,1543535498,1489069629,1434599652,1363369299,622672798,568075817,748617968,677256519,907627842,853037301,1067152940,995781531,51762726,131386257,177728840,240578815,269590778,349224269,429104020,491947555,4046411278,4126034873,4172115296,4234965207,3794477266,3874110821,3953728444,4016571915,3609705398,3555108353,3735388376,3664026991,3290680682,3236090077,3449943556,3378572211,3174993278,3120533705,3032266256,2961025959,2923101090,2868635157,2813903052,2742672763,2604032198,2683796849,2461293480,2524268063,2284983834,2364738477,2175806836,2238787779,1569362073,1498123566,1409854455,1355396672,1317987909,1246755826,1192025387,1137557660,2072149281,2135122070,1912620623,1992383480,1753615357,1816598090,1627664531,1707420964,295390185,358241886,404320391,483945776,43990325,106832002,186451547,266083308,932423249,861060070,1041341759,986742920,613929101,542559546,756411363,701822548,3316196985,3244833742,3425377559,3370778784,3601682597,3530312978,3744426955,3689838204,3819031489,3881883254,3928223919,4007849240,4037393693,4100235434,4180117107,4259748804,2310601993,2373574846,2151335527,2231098320,2596047829,2659030626,2470359227,2550115596,2947551409,2876312838,2788305887,2733848168,3165939309,3094707162,3040238851,2985771188],n.array=function(e){var t=0,r=0,a=[0,1,3,7,15,31,63,127,255];return function(o){for(var i=0,s;0=s?(i<<=s,i|=a[s]&e[r++],t=0,o-=s):(i<<=o,i|=(e[r]&a[o]<<8-o-t)>>8-o-t,t+=o,o=0);return i}},n.simple=function(e,t){var r=n.array(e),a=n.header(r),o=!1,i=1e5*a,s=new Int32Array(i);do o=n.decompress(r,t,s,i);while(!o)},n.header=function(e){this.byteCount=new Int32Array(256),this.symToByte=new Uint8Array(256),this.mtfSymbol=new Int32Array(256),this.selectors=new Uint8Array(32768),4348520!=e(24)&&r.Error("No magic number found");var t=e(8)-48;return(1>t||9f;f++)g+=e(8).toString(16);if("177245385090"==g){var y=0|e(32);return y!==s&&r.Error("Error in bzip2: crc32 do not match"),e(null),null}"314159265359"!=g&&r.Error("eek not valid bzip data");var b=0|e(32);e(1)&&r.Error("unsupported obsolete version");var S=e(24);S>o&&r.Error("Initial position larger than buffer size");var x=e(16),v=0;for(f=0;16>f;f++)if(x&1<<15-f){var C=e(16);for(T=0;16>T;T++)C&1<<15-T&&(this.symToByte[v++]=16*f+T)}var _=e(3);(2>_||6<_)&&r.Error("another error");var w=e(15);0==w&&r.Error("meh");for(var f=0;f<_;f++)this.mtfSymbol[f]=f;for(var f=0;f=_&&r.Error("whoops another error");for(var E=this.mtfSymbol[T],C=T-1;0<=C;C--)this.mtfSymbol[C+1]=this.mtfSymbol[C];this.mtfSymbol[0]=E,this.selectors[f]=E}for(var A=v+2,O=[],P=new Uint8Array(d),L=new Uint16Array(l+1),T=0,z;T<_;T++){x=e(5);for(var f=0;fx||x>l)&&r.Error("I gave up a while ago on writing error messages"),!!e(1);)e(1)?x--:x++;P[f]=x}var R,I;R=I=P[0];for(var f=1;fI?I=P[f]:P[f]f;f++)this.mtfSymbol[f]=f,this.byteCount[f]=0;var B,N,A,D;for(B=N=A=D=0;;){for(A--||(A=u-1,D>=w&&r.Error("meow i'm a kitty, that's an error"),z=O[this.selectors[D++]],M=z.base,W=z.limit),f=z.minLen,T=e(f);f>z.maxLen&&r.Error("rawr i'm a dinosaur"),!(T<=W[f]);)f++,T=T<<1|e(1);T-=M[f],(0>T||T>=d)&&r.Error("moo i'm a cow");var F=z.permute[T];if(F==p||F==c){B||(B=1,x=0),x+=F==p?B:2*B,B<<=1;continue}if(B)for(B=0,N+x>o&&r.Error("Boom."),E=this.symToByte[this.mtfSymbol[0]],this.byteCount[E]+=x;x--;)a[N++]=E;if(F>v)break;N>=o&&r.Error("I can't think of anything. Error"),f=F-1,E=this.mtfSymbol[f];for(var C=f-1;0<=C;C--)this.mtfSymbol[C+1]=this.mtfSymbol[C];this.mtfSymbol[0]=E,E=this.symToByte[E],this.byteCount[E]++,a[N++]=E}(0>S||S>=N)&&r.Error("I'm a monkey and I'm throwing something at someone, namely you");for(var T=0,f=0;256>f;f++)C=T+this.byteCount[f],this.byteCount[f]=T,T=C;for(var f=0;f>=8,H=-1),N=N;for(var V,K,Y;N;){for(N--,K=U,G=a[G],U=255&G,G>>=8,3==H++?(V=U,Y=K,U=-1):(V=1,Y=U);V--;)m=4294967295&(m<<8^this.crcTable[255&(m>>24^Y)]),n(Y);U!=K&&(H=0)}return m=(-1^m)>>>0,(0|m)!=(0|b)&&r.Error("Error in bzip2: crc32 do not match"),s=4294967295&(m^(s<<1|s>>>31)),s},e.exports=n},1857:(e,t)=>{"use strict";function r(){return"object"==typeof navigator&&"userAgent"in navigator?navigator.userAgent:"object"==typeof process&&"version"in process?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:""}Object.defineProperty(t,"__esModule",{value:!0}),t.getUserAgent=r},47937:e=>{var t=/[\'\"]/;e.exports=function(e){return e?(t.test(e.charAt(0))&&(e=e.substr(1)),t.test(e.charAt(e.length-1))&&(e=e.substr(0,e.length-1)),e):""}},65941:(e,t,r)=>{e.exports=r(31669).deprecate},42884:e=>{function t(e,r){function n(){for(var t=Array(arguments.length),r=0;r{"use strict";const n=r(54058);n.createWebSocketStream=r(94477),n.Server=r(24256),n.Receiver=r(53721),n.Sender=r(77488),e.exports=n},7529:(t,r,n)=>{"use strict";function a(e,t){if(0===e.length)return d;if(1===e.length)return e[0];const r=Buffer.allocUnsafe(t);let n=0;for(let a=0;ai?o(e,t,n,a,i):r.mask(e,t,n,a,i)},toArrayBuffer:s,toBuffer:l,unmask(e,t){32>e.length?i(e,t):r.unmask(e,t)}}}catch(r){t.exports={concat:a,mask:o,toArrayBuffer:s,toBuffer:l,unmask:i}}},587:e=>{"use strict";e.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),EMPTY_BUFFER:Buffer.alloc(0),NOOP:()=>{}}},13137:e=>{"use strict";class t{constructor(e,t){this.target=t,this.type=e}}class r extends t{constructor(e,t){super("message",t),this.data=e}}class n extends t{constructor(e,t,r){super("close",r),this.wasClean=r._closeFrameReceived&&r._closeFrameSent,this.reason=t,this.code=e}}class a extends t{constructor(e){super("open",e)}}class o extends t{constructor(e,t){super("error",t),this.message=e.message,this.error=e}}e.exports={addEventListener(e,t,i){function s(e){t.call(this,new r(e,this))}function l(e,r){t.call(this,new n(e,r,this))}function d(e){t.call(this,new o(e,this))}function p(){t.call(this,new a(this))}if("function"==typeof t){const r=i&&i.once?"once":"on";"message"===e?(s._listener=t,this[r](e,s)):"close"===e?(l._listener=t,this[r](e,l)):"error"===e?(d._listener=t,this[r](e,d)):"open"===e?(p._listener=t,this[r](e,p)):this[r](e,t)}},removeEventListener(e,t){const r=this.listeners(e);for(let n=0;n{"use strict";function t(e,t,r){void 0===e[t]?e[t]=[r]:e[t].push(r)}const r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];e.exports={format:function(e){return Object.keys(e).map(t=>{let r=e[t];return Array.isArray(r)||(r=[r]),r.map(e=>[t].concat(Object.keys(e).map(t=>{let r=e[t];return Array.isArray(r)||(r=[r]),r.map(e=>!0===e?t:`${t}=${e}`).join("; ")})).join("; ")).join(", ")}).join(", ")},parse:function(e){const n=Object.create(null);if(void 0===e||""===e)return n;let a=Object.create(null),o=!1,s=!1,l=!1,d=-1,p=-1,c=0,u,m;for(;c{"use strict";const t=Symbol("kDone"),r=Symbol("kRun");e.exports=class e{constructor(e){this[t]=()=>{this.pending--,this[r]()},this.concurrency=e||1/0,this.jobs=[],this.pending=0}add(e){this.jobs.push(e),this[r]()}[r](){if(this.pending!==this.concurrency&&this.jobs.length){const e=this.jobs.shift();this.pending++,e(this[t])}}}},4162:(e,t,r)=>{"use strict";function n(e){this[h].push(e),this[m]+=e.length}function a(e){return this[m]+=e.length,1>this[u]._maxPayload||this[m]<=this[u]._maxPayload?void this[h].push(e):void(this[f]=new RangeError("Max payload size exceeded"),this[f][d]=1009,this.removeListener("data",a),this.reset())}function o(e){this[u]._inflate=null,e[d]=1007,this[g](e)}const i=r(78761),s=r(7529),l=r(23483),{kStatusCode:d,NOOP:p}=r(587),c=Buffer.from([0,0,255,255]),u=Symbol("permessage-deflate"),m=Symbol("total-length"),g=Symbol("callback"),h=Symbol("buffers"),f=Symbol("error");let y;class b{constructor(e,t,r){if(this._maxPayload=0|r,this._options=e||{},this._threshold=void 0===this._options.threshold?1024:this._options.threshold,this._isServer=!!t,this._deflate=null,this._inflate=null,this.params=null,!y){const e=void 0===this._options.concurrencyLimit?10:this._options.concurrencyLimit;y=new l(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};return this._options.serverNoContextTakeover&&(e.server_no_context_takeover=!0),this._options.clientNoContextTakeover&&(e.client_no_context_takeover=!0),this._options.serverMaxWindowBits&&(e.server_max_window_bits=this._options.serverMaxWindowBits),this._options.clientMaxWindowBits?e.client_max_window_bits=this._options.clientMaxWindowBits:null==this._options.clientMaxWindowBits&&(e.client_max_window_bits=!0),e}accept(e){return e=this.normalizeParams(e),this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e),this.params}cleanup(){if(this._inflate&&(this._inflate.close(),this._inflate=null),this._deflate){const e=this._deflate[g];this._deflate.close(),this._deflate=null,e&&e(new Error("The deflate stream was closed while data was being processed"))}}acceptAsServer(e){const t=this._options,r=e.find(e=>!(!1===t.serverNoContextTakeover&&e.server_no_context_takeover||e.server_max_window_bits&&(!1===t.serverMaxWindowBits||"number"==typeof t.serverMaxWindowBits&&t.serverMaxWindowBits>e.server_max_window_bits)||"number"==typeof t.clientMaxWindowBits&&!e.client_max_window_bits));if(!r)throw new Error("None of the extension offers can be accepted");return t.serverNoContextTakeover&&(r.server_no_context_takeover=!0),t.clientNoContextTakeover&&(r.client_no_context_takeover=!0),"number"==typeof t.serverMaxWindowBits&&(r.server_max_window_bits=t.serverMaxWindowBits),"number"==typeof t.clientMaxWindowBits?r.client_max_window_bits=t.clientMaxWindowBits:(!0===r.client_max_window_bits||!1===t.clientMaxWindowBits)&&delete r.client_max_window_bits,r}acceptAsClient(e){const t=e[0];if(!1===this._options.clientNoContextTakeover&&t.client_no_context_takeover)throw new Error("Unexpected parameter \"client_no_context_takeover\"");if(!t.client_max_window_bits)"number"==typeof this._options.clientMaxWindowBits&&(t.client_max_window_bits=this._options.clientMaxWindowBits);else if(!1===this._options.clientMaxWindowBits||"number"==typeof this._options.clientMaxWindowBits&&t.client_max_window_bits>this._options.clientMaxWindowBits)throw new Error("Unexpected or invalid parameter \"client_max_window_bits\"");return t}normalizeParams(e){return e.forEach(e=>{Object.keys(e).forEach(t=>{let r=e[t];if(1e||15e||15{this._decompress(e,t,(e,t)=>{n(),r(e,t)})})}compress(e,t,r){y.add(n=>{this._compress(e,t,(e,t)=>{n(),r(e,t)})})}_decompress(e,t,r){const n=this._isServer?"client":"server";if(!this._inflate){const e=`${n}_max_window_bits`,t="number"==typeof this.params[e]?this.params[e]:i.Z_DEFAULT_WINDOWBITS;this._inflate=i.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t}),this._inflate[u]=this,this._inflate[m]=0,this._inflate[h]=[],this._inflate.on("error",o),this._inflate.on("data",a)}this._inflate[g]=r,this._inflate.write(e),t&&this._inflate.write(c),this._inflate.flush(()=>{const e=this._inflate[f];if(e)return this._inflate.close(),this._inflate=null,void r(e);const a=s.concat(this._inflate[h],this._inflate[m]);t&&this.params[`${n}_no_context_takeover`]?(this._inflate.close(),this._inflate=null):(this._inflate[m]=0,this._inflate[h]=[]),r(null,a)})}_compress(e,t,r){const a=this._isServer?"server":"client";if(!this._deflate){const e=`${a}_max_window_bits`,t="number"==typeof this.params[e]?this.params[e]:i.Z_DEFAULT_WINDOWBITS;this._deflate=i.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t}),this._deflate[m]=0,this._deflate[h]=[],this._deflate.on("error",p),this._deflate.on("data",n)}this._deflate[g]=r,this._deflate.write(e),this._deflate.flush(i.Z_SYNC_FLUSH,()=>{if(!this._deflate)return;let e=s.concat(this._deflate[h],this._deflate[m]);t&&(e=e.slice(0,e.length-4)),this._deflate[g]=null,t&&this.params[`${a}_no_context_takeover`]?(this._deflate.close(),this._deflate=null):(this._deflate[m]=0,this._deflate[h]=[]),r(null,e)})}}e.exports=b},53721:(e,t,r)=>{"use strict";function n(e,t,r,a){const o=new e(r?`Invalid WebSocket frame: ${t}`:t);return Error.captureStackTrace(o,n),o[l]=a,o}const{Writable:a}=r(92413),o=r(4162),{BINARY_TYPES:i,EMPTY_BUFFER:s,kStatusCode:l,kWebSocket:d}=r(587),{concat:p,toArrayBuffer:c,unmask:u}=r(7529),{isValidStatusCode:m,isValidUTF8:g}=r(62015),h=0,f=1,y=2,b=3,S=4;e.exports=class e extends a{constructor(e,t,r,n){super(),this._binaryType=e||i[0],this[d]=void 0,this._extensions=t||{},this._isServer=!!r,this._maxPayload=0|n,this._bufferedBytes=0,this._buffers=[],this._compressed=!1,this._payloadLength=0,this._mask=void 0,this._fragmented=0,this._masked=!1,this._fin=!1,this._opcode=0,this._totalPayloadLength=0,this._messageLength=0,this._fragments=[],this._state=h,this._loop=!1}_write(e,t,r){return 8===this._opcode&&this._state==h?r():void(this._bufferedBytes+=e.length,this._buffers.push(e),this.startLoop(r))}consume(e){if(this._bufferedBytes-=e,e===this._buffers[0].length)return this._buffers.shift();if(e=r.length?t.set(this._buffers.shift(),n):(t.set(new Uint8Array(r.buffer,r.byteOffset,e),n),this._buffers[0]=r.slice(e)),e-=r.length}while(0this._bufferedBytes)return void(this._loop=!1);const e=this.consume(2);if(0!=(48&e[0]))return this._loop=!1,n(RangeError,"RSV2 and RSV3 must be clear",!0,1002);const t=64==(64&e[0]);if(t&&!this._extensions[o.extensionName])return this._loop=!1,n(RangeError,"RSV1 must be clear",!0,1002);if(this._fin=128==(128&e[0]),this._opcode=15&e[0],this._payloadLength=127&e[1],0===this._opcode){if(t)return this._loop=!1,n(RangeError,"RSV1 must be clear",!0,1002);if(!this._fragmented)return this._loop=!1,n(RangeError,"invalid opcode 0",!0,1002);this._opcode=this._fragmented}else if(1===this._opcode||2===this._opcode){if(this._fragmented)return this._loop=!1,n(RangeError,`invalid opcode ${this._opcode}`,!0,1002);this._compressed=t}else if(7this._opcode){if(!this._fin)return this._loop=!1,n(RangeError,"FIN must be set",!0,1002);if(t)return this._loop=!1,n(RangeError,"RSV1 must be clear",!0,1002);if(125this._bufferedBytes?void(this._loop=!1):(this._payloadLength=this.consume(2).readUInt16BE(0),this.haveLength())}getPayloadLength64(){if(8>this._bufferedBytes)return void(this._loop=!1);const e=this.consume(8),t=e.readUInt32BE(0);return t>_Mathpow(2,21)-1?(this._loop=!1,n(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",!1,1009)):(this._payloadLength=t*_Mathpow(2,32)+e.readUInt32BE(4),this.haveLength())}haveLength(){return this._payloadLength&&8>this._opcode&&(this._totalPayloadLength+=this._payloadLength,this._totalPayloadLength>this._maxPayload&&0this._bufferedBytes?void(this._loop=!1):void(this._mask=this.consume(4),this._state=S)}getData(e){let t=s;if(this._payloadLength){if(this._bufferedBytes{if(e)return t(e);if(r.length){if(this._messageLength+=r.length,this._messageLength>this._maxPayload&&0{"use strict";const{randomFillSync:n}=r(76417),a=r(4162),{EMPTY_BUFFER:o}=r(587),{isValidStatusCode:i}=r(62015),{mask:s,toBuffer:l}=r(7529),d=Buffer.alloc(4);class p{constructor(e,t){this._extensions=t||{},this._socket=e,this._firstFragment=!0,this._compress=!1,this._bufferedBytes=0,this._deflating=!1,this._queue=[]}static frame(e,t){const r=t.mask&&t.readOnly;let a=t.mask?6:2,o=e.length;65536<=e.length?(a+=8,o=127):125=o._threshold),this._compress=s):(s=!1,i=0),t.fin&&(this._firstFragment=!0),o){const e={fin:t.fin,rsv1:s,opcode:i,mask:t.mask,readOnly:l.readOnly};this._deflating?this.enqueue([this.dispatch,n,this._compress,e,r]):this.dispatch(n,this._compress,e,r)}else this.sendFrame(p.frame(n,{fin:t.fin,rsv1:!1,opcode:i,mask:t.mask,readOnly:l.readOnly}),r)}dispatch(e,t,r,n){if(!t)return void this.sendFrame(p.frame(e,r),n);const o=this._extensions[a.extensionName];this._bufferedBytes+=e.length,this._deflating=!0,o.compress(e,r.fin,(t,a)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");"function"==typeof n&&n(e);for(let t=0;t{"use strict";function n(e){e.emit("close")}function a(){!this.destroyed&&this._writableState.finished&&this.destroy()}function o(e){this.removeListener("error",o),this.destroy(),0===this.listenerCount("error")&&this.emit("error",e)}const{Duplex:i}=r(92413);e.exports=function(e,t){function r(){s&&e._socket.resume()}let s=!0;e.readyState===e.CONNECTING?e.once("open",function(){e._receiver.removeAllListeners("drain"),e._receiver.on("drain",r)}):(e._receiver.removeAllListeners("drain"),e._receiver.on("drain",r));const l=new i({...t,autoDestroy:!1,emitClose:!1,objectMode:!1,writableObjectMode:!1});return e.on("message",function(t){l.push(t)||(s=!1,e._socket.pause())}),e.once("error",function(e){l.destroyed||l.destroy(e)}),e.once("close",function(){l.destroyed||l.push(null)}),l._destroy=function(t,r){if(e.readyState===e.CLOSED)return r(t),void process.nextTick(n,l);let a=!1;e.once("error",function(e){a=!0,r(e)}),e.once("close",function(){a||r(t),process.nextTick(n,l)}),e.terminate()},l._final=function(t){return e.readyState===e.CONNECTING?void e.once("open",function(){l._final(t)}):void(null===e._socket||(e._socket._writableState.finished?(t(),l._readableState.endEmitted&&l.destroy()):(e._socket.once("finish",function(){t()}),e.close())))},l._read=function(){e.readyState!==e.OPEN||s||(s=!0,!e._receiver._writableState.needDrain&&e._socket.resume())},l._write=function(t,r,n){return e.readyState===e.CONNECTING?void e.once("open",function(){l._write(t,r,n)}):void e.send(t,n)},l.on("end",a),l.on("error",o),l}},62015:(e,t,r)=>{"use strict";try{const e=r(83914);t.isValidUTF8="object"==typeof e?e.Validation.isValidUTF8:e}catch(r){t.isValidUTF8=()=>!0}t.isValidStatusCode=e=>1e3<=e&&1014>=e&&1004!==e&&1005!==e&&1006!==e||3e3<=e&&4999>=e},24256:(e,t,r)=>{"use strict";function n(e,t){for(const r of Object.keys(t))e.on(r,t[r]);return function(){for(const r of Object.keys(t))e.removeListener(r,t[r])}}function a(e){e.emit("close")}function o(){this.destroy()}function i(e,t,r,n){e.writable&&(r=r||p[t],n={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(r),...n},e.write(`HTTP/1.1 ${t} ${p[t]}\r\n`+Object.keys(n).map(e=>`${e}: ${n[e]}`).join("\r\n")+"\r\n\r\n"+r)),e.removeListener("error",o),e.destroy()}const s=r(28614),{createHash:l}=r(76417),{createServer:d,STATUS_CODES:p}=r(98605),c=r(4162),u=r(54058),{format:m,parse:g}=r(75915),{GUID:h,kWebSocket:f}=r(587);e.exports=class e extends s{constructor(e,t){if(super(),e={maxPayload:104857600,perMessageDeflate:!1,handleProtocols:null,clientTracking:!0,verifyClient:null,noServer:!1,backlog:null,server:null,host:null,path:null,port:null,...e},null==e.port&&!e.server&&!e.noServer)throw new TypeError("One of the \"port\", \"server\", or \"noServer\" options must be specified");if(null==e.port?e.server&&(this._server=e.server):(this._server=d((e,t)=>{const r=p[426];t.writeHead(426,{"Content-Length":r.length,"Content-Type":"text/plain"}),t.end(r)}),this._server.listen(e.port,e.host,e.backlog,t)),this._server){const e=this.emit.bind(this,"connection");this._removeListeners=n(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,r,n)=>{this.handleUpgrade(t,r,n,e)}})}!0===e.perMessageDeflate&&(e.perMessageDeflate={}),e.clientTracking&&(this.clients=new Set),this.options=e}address(){if(this.options.noServer)throw new Error("The server is operating in \"noServer\" mode");return this._server?this._server.address():null}close(e){if(e&&this.once("close",e),this.clients)for(const e of this.clients)e.terminate();const t=this._server;return t&&(this._removeListeners(),this._removeListeners=this._server=null,null!=this.options.port)?void t.close(()=>this.emit("close")):void process.nextTick(a,this)}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?"),r=-1===t?e.url:e.url.slice(0,t);if(r!==this.options.path)return!1}return!0}handleUpgrade(e,t,r,n){t.on("error",o);const a=void 0!==e.headers["sec-websocket-key"]&&e.headers["sec-websocket-key"].trim(),s=+e.headers["sec-websocket-version"],l={};if("GET"!==e.method||"websocket"!==e.headers.upgrade.toLowerCase()||!a||!/^[+/0-9A-Za-z]{22}==$/.test(a)||8!==s&&13!==s||!this.shouldHandle(e))return i(t,400);if(this.options.perMessageDeflate){const r=new c(this.options.perMessageDeflate,!0,this.options.maxPayload);try{const t=g(e.headers["sec-websocket-extensions"]);t[c.extensionName]&&(r.accept(t[c.extensionName]),l[c.extensionName]=r)}catch(e){return i(t,400)}}if(this.options.verifyClient){const o={origin:e.headers[`${8===s?"sec-websocket-origin":"origin"}`],secure:!!(e.connection.authorized||e.connection.encrypted),req:e};if(2===this.options.verifyClient.length)return void this.options.verifyClient(o,(o,s,d,p)=>o?void this.completeUpgrade(a,l,e,t,r,n):i(t,s||401,d,p));if(!this.options.verifyClient(o))return i(t,401)}this.completeUpgrade(a,l,e,t,r,n)}completeUpgrade(e,t,r,n,a,i){if(!n.readable||!n.writable)return n.destroy();if(n[f])throw new Error("server.handleUpgrade() was called more than once with the same socket, possibly due to a misconfiguration");const s=l("sha1").update(e+h).digest("base64"),d=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${s}`],p=new u(null);let g=r.headers["sec-websocket-protocol"];if(g&&(g=g.trim().split(/ *, */),g=this.options.handleProtocols?this.options.handleProtocols(g,r):g[0],g&&(d.push(`Sec-WebSocket-Protocol: ${g}`),p._protocol=g)),t[c.extensionName]){const e=t[c.extensionName].params,r=m({[c.extensionName]:[e]});d.push(`Sec-WebSocket-Extensions: ${r}`),p._extensions=t}this.emit("headers",d,r),n.write(d.concat("\r\n").join("\r\n")),n.removeListener("error",o),p.setSocket(n,a,this.options.maxPayload),this.clients&&(this.clients.add(p),p.on("close",()=>this.clients.delete(p))),i(p,r)}}},54058:(e,t,r)=>{"use strict";function n(e,t,r,s){const l={protocolVersion:G[1],maxPayload:104857600,perMessageDeflate:!0,followRedirects:!1,maxRedirects:10,...s,createConnection:void 0,socketPath:void 0,hostname:void 0,protocol:void 0,timeout:void 0,method:void 0,host:void 0,path:void 0,port:void 0};if(!G.includes(l.protocolVersion))throw new RangeError(`Unsupported protocol version: ${l.protocolVersion} `+`(supported versions: ${G.join(", ")})`);let d;t instanceof T?(d=t,e._url=t.href):(d=new T(t),e._url=t);const p="ws+unix:"===d.protocol;if(!d.host&&(!p||!d.pathname))throw new Error(`Invalid URL: ${e.url}`);const c="wss:"===d.protocol||"https:"===d.protocol,u=c?443:80,m=_(16).toString("base64"),g=c?x.get:v.get;let h;if(l.createConnection=c?o:a,l.defaultPort=l.defaultPort||u,l.port=d.port||u,l.host=d.hostname.startsWith("[")?d.hostname.slice(1,-1):d.hostname,l.headers={"Sec-WebSocket-Version":l.protocolVersion,"Sec-WebSocket-Key":m,Connection:"Upgrade",Upgrade:"websocket",...l.headers},l.path=d.pathname+d.search,l.timeout=l.handshakeTimeout,l.perMessageDeflate&&(h=new E(!0===l.perMessageDeflate?{}:l.perMessageDeflate,!1,l.maxPayload),l.headers["Sec-WebSocket-Extensions"]=B({[E.extensionName]:h.offer()})),r&&(l.headers["Sec-WebSocket-Protocol"]=r),l.origin&&(13>l.protocolVersion?l.headers["Sec-WebSocket-Origin"]=l.origin:l.headers.Origin=l.origin),(d.username||d.password)&&(l.auth=`${d.username}:${d.password}`),p){const e=l.path.split(":");l.socketPath=e[0],l.path=e[1]}let f=e._req=g(l);l.timeout&&f.on("timeout",()=>{i(e,f,"Opening handshake has timed out")}),f.on("error",t=>{null===f||f.aborted||(f=e._req=null,e._readyState=U.CLOSING,e.emit("error",t),e.emitClose())}),f.on("response",a=>{const o=a.headers.location,d=a.statusCode;if(o&&l.followRedirects&&300<=d&&400>d){if(++e._redirects>l.maxRedirects)return void i(e,f,"Maximum redirects exceeded");f.abort();const a=new T(o,t);n(e,a,r,s)}else e.emit("unexpected-response",f,a)||i(e,f,`Unexpected server response: ${a.statusCode}`)}),f.on("upgrade",(t,n,a)=>{if(e.emit("upgrade",t),e.readyState!==U.CONNECTING)return;f=e._req=null;const o=w("sha1").update(m+z).digest("base64");if(t.headers["sec-websocket-accept"]!==o)return void i(e,n,"Invalid Sec-WebSocket-Accept header");const s=t.headers["sec-websocket-protocol"],d=(r||"").split(/, */);let p;if(!r&&s?p="Server sent a subprotocol but none was requested":r&&!s?p="Server sent no subprotocol":s&&!d.includes(s)&&(p="Server sent an invalid subprotocol"),p)return void i(e,n,p);if(s&&(e._protocol=s),h)try{const r=N(t.headers["sec-websocket-extensions"]);r[E.extensionName]&&(h.accept(r[E.extensionName]),e._extensions[E.extensionName]=h)}catch(t){return void i(e,n,"Invalid Sec-WebSocket-Extensions header")}e.setSocket(n,a,l.maxPayload)})}function a(e){return e.path=e.socketPath,k.connect(e)}function o(e){return e.path=void 0,e.servername||""===e.servername||(e.servername=e.host),C.connect(e)}function i(e,t,r){e._readyState=U.CLOSING;const n=new Error(r);Error.captureStackTrace(n,i),t.setHeader?(t.abort(),t.once("abort",e.emitClose.bind(e)),e.emit("error",n)):(t.destroy(n),t.once("error",e.emit.bind(e,"error")),t.once("close",e.emitClose.bind(e)))}function s(e,t,r){if(t){const r=D(t).length;e._socket?e._sender._bufferedBytes+=r:e._bufferedAmount+=r}if(r){const t=new Error(`WebSocket is not open: readyState ${e.readyState} `+`(${F[e.readyState]})`);r(t)}}function l(e,t){const r=this[I];r._socket.removeListener("data",f),r._socket.resume(),r._closeFrameReceived=!0,r._closeMessage=t,r._closeCode=e,1005===e?r.close():r.close(e,t)}function d(){this[I]._socket.resume()}function p(e){const t=this[I];t._socket.removeListener("data",f),t._readyState=U.CLOSING,t._closeCode=e[R],t.emit("error",e),t._socket.destroy()}function c(){this[I].emitClose()}function u(e){this[I].emit("message",e)}function m(e){const t=this[I];t.pong(e,!t._isServer,M),t.emit("ping",e)}function g(e){this[I].emit("pong",e)}function h(){const e=this[I];this.removeListener("close",h),this.removeListener("end",y),e._readyState=U.CLOSING,e._socket.read(),e._receiver.end(),this.removeListener("data",f),this[I]=void 0,clearTimeout(e._closeTimer),e._receiver._writableState.finished||e._receiver._writableState.errorEmitted?e.emitClose():(e._receiver.on("error",c),e._receiver.on("finish",c))}function f(e){this[I]._receiver.write(e)||this.pause()}function y(){const e=this[I];e._readyState=U.CLOSING,e._receiver.end(),this.end()}function b(){const e=this[I];this.removeListener("error",b),this.on("error",M),e&&(e._readyState=U.CLOSING,this.destroy())}const S=r(28614),x=r(57211),v=r(98605),k=r(11631),C=r(4016),{randomBytes:_,createHash:w}=r(76417),{URL:T}=r(78835),E=r(4162),A=r(53721),O=r(77488),{BINARY_TYPES:P,EMPTY_BUFFER:L,GUID:z,kStatusCode:R,kWebSocket:I,NOOP:M}=r(587),{addEventListener:W,removeEventListener:q}=r(13137),{format:B,parse:N}=r(75915),{toBuffer:D}=r(7529),F=["CONNECTING","OPEN","CLOSING","CLOSED"],G=[8,13];class U extends S{constructor(e,t,r){super(),this._binaryType=P[0],this._closeCode=1006,this._closeFrameReceived=!1,this._closeFrameSent=!1,this._closeMessage="",this._closeTimer=null,this._extensions={},this._protocol="",this._readyState=U.CONNECTING,this._receiver=null,this._sender=null,this._socket=null,null===e?this._isServer=!0:(this._bufferedAmount=0,this._isServer=!1,this._redirects=0,Array.isArray(t)?t=t.join(", "):"object"==typeof t&&null!==t&&(r=t,t=void 0),n(this,e,t,r))}get binaryType(){return this._binaryType}set binaryType(e){P.includes(e)&&(this._binaryType=e,this._receiver&&(this._receiver._binaryType=e))}get bufferedAmount(){return this._socket?this._socket._writableState.length+this._sender._bufferedBytes:this._bufferedAmount}get extensions(){return Object.keys(this._extensions).join()}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,r){const n=new A(this.binaryType,this._extensions,this._isServer,r);this._sender=new O(e,this._extensions),this._receiver=n,this._socket=e,n[I]=this,e[I]=this,n.on("conclude",l),n.on("drain",d),n.on("error",p),n.on("message",u),n.on("ping",m),n.on("pong",g),e.setTimeout(0),e.setNoDelay(),0{e||(this._closeFrameSent=!0,this._closeFrameReceived&&this._socket.end())}),this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),30000))}}ping(e,t,r){if(this.readyState===U.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");return"function"==typeof e?(r=e,e=t=void 0):"function"==typeof t&&(r=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===U.OPEN?void(void 0===t&&(t=!this._isServer),this._sender.ping(e||L,t,r)):void s(this,e,r)}pong(e,t,r){if(this.readyState===U.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");return"function"==typeof e?(r=e,e=t=void 0):"function"==typeof t&&(r=t,t=void 0),"number"==typeof e&&(e=e.toString()),this.readyState===U.OPEN?void(void 0===t&&(t=!this._isServer),this._sender.pong(e||L,t,r)):void s(this,e,r)}send(e,t,r){if(this.readyState===U.CONNECTING)throw new Error("WebSocket is not open: readyState 0 (CONNECTING)");if("function"==typeof t&&(r=t,t={}),"number"==typeof e&&(e=e.toString()),this.readyState!==U.OPEN)return void s(this,e,r);const n={binary:"string"!=typeof e,mask:!this._isServer,compress:!0,fin:!0,...t};this._extensions[E.extensionName]||(n.compress=!1),this._sender.send(e||L,n,r)}terminate(){if(this.readyState!==U.CLOSED){if(this.readyState===U.CONNECTING){return i(this,this._req,"WebSocket was closed before the connection was established")}this._socket&&(this._readyState=U.CLOSING,this._socket.destroy())}}}F.forEach((e,t)=>{const r={enumerable:!0,value:t};Object.defineProperty(U.prototype,e,r),Object.defineProperty(U,e,r)}),["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach(e=>{Object.defineProperty(U.prototype,e,{enumerable:!0})}),["open","error","close","message"].forEach(e=>{Object.defineProperty(U.prototype,`on${e}`,{configurable:!0,enumerable:!0,get(){const t=this.listeners(e);for(let e=0;e{function n(e,t,r){"function"==typeof t&&(r=t,t=null),null==t&&(t={}),null==t.autoClose&&(t.autoClose=!1),null==t.lazyEntries&&(t.lazyEntries=!1),null==t.decodeStrings&&(t.decodeStrings=!0),null==t.validateEntrySizes&&(t.validateEntrySizes=!0),null==t.strictFileNames&&(t.strictFileNames=!1),null==r&&(r=b),S.fstat(e,function(n,o){if(n)return r(n);var i=x.createFromFd(e,{autoClose:!0});a(i,o.size,t,r)})}function a(e,t,r,n){"function"==typeof r&&(n=r,r=null),null==r&&(r={}),null==r.autoClose&&(r.autoClose=!0),null==r.lazyEntries&&(r.lazyEntries=!1),null==r.decodeStrings&&(r.decodeStrings=!0);var a=!!r.decodeStrings;if(null==r.validateEntrySizes&&(r.validateEntrySizes=!0),null==r.strictFileNames&&(r.strictFileNames=!1),null==n&&(n=b),"number"!=typeof t)throw new Error("expected totalSize parameter to be a number");if(t>_NumberMAX_SAFE_INTEGER)throw new Error("zip file too large. only file sizes up to 2^52 are supported due to JavaScript's Number type being an IEEE 754 double.");e.ref();var s=_Mathmin(22+65535,t),l=E(s),d=t-l.length;u(e,l,0,s,d,function(p){if(p)return n(p);for(var c=s-22;0<=c;c-=1)if(101010256===l.readUInt32LE(c)){var m=l.slice(c),g=m.readUInt16LE(4);if(0!==g)return n(new Error("multi-disk zip files are not supported: found disk number: "+g));var h=m.readUInt16LE(10),b=m.readUInt32LE(16),S=m.readUInt16LE(20),x=m.length-22;if(S!==x)return n(new Error("invalid comment length. expected: "+x+". found: "+S));var v=a?f(m,22,m.length,!1):m.slice(22);if(65535!==h&&4294967295!==b)return n(null,new o(e,b,t,h,v,r.autoClose,r.lazyEntries,a,r.validateEntrySizes,r.strictFileNames));var k=E(20),C=d+c-k.length;return void u(e,k,0,k.length,C,function(i){if(i)return n(i);if(117853008!==k.readUInt32LE(0))return n(new Error("invalid zip64 end of central directory locator signature"));var s=y(k,8),l=E(56);u(e,l,0,l.length,s,function(i){return i?n(i):101075792===l.readUInt32LE(0)?(h=y(l,32),b=y(l,48),n(null,new o(e,b,t,h,v,r.autoClose,r.lazyEntries,a,r.validateEntrySizes,r.strictFileNames))):n(new Error("invalid zip64 end of central directory record signature"))})})}n(new Error("end of central directory record signature not found"))})}function o(e,t,r,n,a,o,i,s,d,p){var c=this;C.call(c),c.reader=e,c.reader.on("error",function(e){l(c,e)}),c.reader.once("close",function(){c.emit("close")}),c.readEntryCursor=t,c.fileSize=r,c.entryCount=n,c.comment=a,c.entriesRead=0,c.autoClose=!!o,c.lazyEntries=!!i,c.decodeStrings=!!s,c.validateEntrySizes=!!d,c.strictFileNames=!!p,c.isOpen=!0,c.emittedError=!1,c.lazyEntries||c._readEntry()}function s(e,t){e.autoClose&&e.close(),l(e,t)}function l(e,t){e.emittedError||(e.emittedError=!0,e.emit("error",t))}function d(){}function p(e,t){return new Date((127&e>>9)+1980,(15&e>>5)-1,31&e,31&t>>11,63&t>>5,2*(31&t),0)}function c(e){return-1===e.indexOf("\\")?/^[a-zA-Z]:/.test(e)||/^\//.test(e)?"absolute path: "+e:-1===e.split("/").indexOf("..")?null:"invalid relative path: "+e:"invalid characters in fileName: "+e}function u(e,t,r,n,a,o){return 0===n?setImmediate(function(){o(null,E(0))}):void e.read(t,r,n,a,function(e,t){return e?o(e):t?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0\xA0"[e[o]];return a}function y(e,t){var r=e.readUInt32LE(t),n=e.readUInt32LE(t+4);return 4294967296*n+r}function b(e){if(e)throw e}var S=r(35747),i=r(78761),x=r(84203),v=r(93514),k=r(31669),C=r(28614).EventEmitter,_=r(92413).Transform,w=r(92413).PassThrough,T=r(92413).Writable;t.open=function(e,t,r){"function"==typeof t&&(r=t,t=null),null==t&&(t={}),null==t.autoClose&&(t.autoClose=!0),null==t.lazyEntries&&(t.lazyEntries=!1),null==t.decodeStrings&&(t.decodeStrings=!0),null==t.validateEntrySizes&&(t.validateEntrySizes=!0),null==t.strictFileNames&&(t.strictFileNames=!1),null==r&&(r=b),S.open(e,"r",function(e,a){return e?r(e):void n(a,t,function(e,t){e&&S.close(a,b),r(e,t)})})},t.fromFd=n,t.fromBuffer=function(e,t,r){"function"==typeof t&&(r=t,t=null),null==t&&(t={}),t.autoClose=!1,null==t.lazyEntries&&(t.lazyEntries=!1),null==t.decodeStrings&&(t.decodeStrings=!0),null==t.validateEntrySizes&&(t.validateEntrySizes=!0),null==t.strictFileNames&&(t.strictFileNames=!1);var n=x.createFromBuffer(e,{maxChunkSize:65536});a(n,e.length,t,r)},t.fromRandomAccessReader=a,t.dosDateTimeToDate=p,t.validateFileName=c,t.ZipFile=o,t.Entry=d,t.RandomAccessReader=g,k.inherits(o,C),o.prototype.close=function(){this.isOpen&&(this.isOpen=!1,this.reader.unref())},o.prototype.readEntry=function(){if(!this.lazyEntries)throw new Error("readEntry() called without lazyEntries:true");this._readEntry()},o.prototype._readEntry=function(){var e=this;if(e.entryCount===e.entriesRead)return void setImmediate(function(){e.autoClose&&e.close(),e.emittedError||e.emit("end")});if(!e.emittedError){var t=E(46);u(e.reader,t,0,t.length,e.readEntryCursor,function(r){if(r)return s(e,r);if(!e.emittedError){var n=new d,a=t.readUInt32LE(0);return 33639248===a?(n.versionMadeBy=t.readUInt16LE(4),n.versionNeededToExtract=t.readUInt16LE(6),n.generalPurposeBitFlag=t.readUInt16LE(8),n.compressionMethod=t.readUInt16LE(10),n.lastModFileTime=t.readUInt16LE(12),n.lastModFileDate=t.readUInt16LE(14),n.crc32=t.readUInt32LE(16),n.compressedSize=t.readUInt32LE(20),n.uncompressedSize=t.readUInt32LE(24),n.fileNameLength=t.readUInt16LE(28),n.extraFieldLength=t.readUInt16LE(30),n.fileCommentLength=t.readUInt16LE(32),n.internalFileAttributes=t.readUInt16LE(36),n.externalFileAttributes=t.readUInt32LE(38),n.relativeOffsetOfLocalHeader=t.readUInt32LE(42),64&n.generalPurposeBitFlag?s(e,new Error("strong encryption is not supported")):void(e.readEntryCursor+=46,t=E(n.fileNameLength+n.extraFieldLength+n.fileCommentLength),u(e.reader,t,0,t.length,e.readEntryCursor,function(r){if(r)return s(e,r);if(!e.emittedError){var a=0!=(2048&n.generalPurposeBitFlag);n.fileName=e.decodeStrings?f(t,0,n.fileNameLength,a):t.slice(0,n.fileNameLength);var o=n.fileNameLength+n.extraFieldLength,l=t.slice(n.fileNameLength,o);n.extraFields=[];for(var d=0;dl.length)return s(e,new Error("extra field length exceeds extra field buffer size"));var h=E(u);l.copy(h,0,m,g),n.extraFields.push({id:p,data:h}),d=g}if(n.fileComment=e.decodeStrings?f(t,o,o+n.fileCommentLength,a):t.slice(o,o+n.fileCommentLength),n.comment=n.fileComment,e.readEntryCursor+=t.length,e.entriesRead+=1,4294967295===n.uncompressedSize||4294967295===n.compressedSize||4294967295===n.relativeOffsetOfLocalHeader){for(var b=null,d=0,S;db.length)return s(e,new Error("zip64 extended information extra field does not include uncompressed size"));n.uncompressedSize=y(b,x),x+=8}if(4294967295===n.compressedSize){if(x+8>b.length)return s(e,new Error("zip64 extended information extra field does not include compressed size"));n.compressedSize=y(b,x),x+=8}if(4294967295===n.relativeOffsetOfLocalHeader){if(x+8>b.length)return s(e,new Error("zip64 extended information extra field does not include relative header offset"));n.relativeOffsetOfLocalHeader=y(b,x),x+=8}}if(e.decodeStrings)for(var d=0,S;dS.data.length)continue;if(1!==S.data.readUInt8(0))continue;var k=S.data.readUInt32LE(1);if(v.unsigned(t.slice(0,n.fileNameLength))!==k)continue;n.fileName=f(S.data,5,S.data.length,!0);break}if(e.validateEntrySizes&&0===n.compressionMethod){var C=n.uncompressedSize;if(n.isEncrypted()&&(C+=12),n.compressedSize!==C){var _="compressed/uncompressed size mismatch for stored file: "+n.compressedSize+" != "+n.uncompressedSize;return s(e,new Error(_))}}if(e.decodeStrings){e.strictFileNames||(n.fileName=n.fileName.replace(/\\/g,"/"));var w=c(n.fileName,e.validateFileNameOptions);if(null!=w)return s(e,new Error(w))}e.emit("entry",n),e.lazyEntries||e._readEntry()}}))):s(e,new Error("invalid central directory file header signature: 0x"+a.toString(16)))}})}},o.prototype.openReadStream=function(e,t,r){var n=this,a=0,o=e.compressedSize;if(null==r)r=t,t={};else{if(null!=t.decrypt){if(!e.isEncrypted())throw new Error("options.decrypt can only be specified for encrypted entries");if(!1!==t.decrypt)throw new Error("invalid options.decrypt value: "+t.decrypt);if(e.isCompressed()&&!1!==t.decompress)throw new Error("entry is encrypted and compressed, and options.decompress !== false")}if(null!=t.decompress){if(!e.isCompressed())throw new Error("options.decompress can only be specified for compressed entries");if(!1!==t.decompress&&!0!==t.decompress)throw new Error("invalid options.decompress value: "+t.decompress)}if(null!=t.start||null!=t.end){if(e.isCompressed()&&!1!==t.decompress)throw new Error("start/end range not allowed for compressed entry without options.decompress === false");if(e.isEncrypted()&&!1!==t.decrypt)throw new Error("start/end range not allowed for encrypted entry without options.decrypt === false")}if(null!=t.start){if(a=t.start,0>a)throw new Error("options.start < 0");if(a>e.compressedSize)throw new Error("options.start > entry.compressedSize")}if(null!=t.end){if(o=t.end,0>o)throw new Error("options.end < 0");if(o>e.compressedSize)throw new Error("options.end > entry.compressedSize");if(on.fileSize)return r(new Error("file data overflows file bounds: "+h+" + "+e.compressedSize+" > "+n.fileSize));var y=n.reader.createReadStream({start:h+a,end:h+o}),b=y;if(g){var S=!1,x=i.createInflateRaw();y.on("error",function(e){setImmediate(function(){S||x.emit("error",e)})}),y.pipe(x),n.validateEntrySizes?(b=new m(e.uncompressedSize),x.on("error",function(e){setImmediate(function(){S||b.emit("error",e)})}),x.pipe(b)):b=x,b.destroy=function(){S=!0,x!==b&&x.unpipe(b),y.unpipe(x),y.destroy()}}r(null,b)}finally{n.reader.unref()}})},d.prototype.getLastModDate=function(){return p(this.lastModFileDate,this.lastModFileTime)},d.prototype.isEncrypted=function(){return 0!=(1&this.generalPurposeBitFlag)},d.prototype.isCompressed=function(){return 8===this.compressionMethod},k.inherits(m,_),m.prototype._transform=function(e,t,r){if(this.actualByteCount+=e.length,this.actualByteCount>this.expectedByteCount){var n="too many bytes in the stream. expected "+this.expectedByteCount+". got at least "+this.actualByteCount;return r(new Error(n))}r(null,e)},m.prototype._flush=function(e){if(this.actualByteCountt.refCount)throw new Error("invalid unref");t.close(e)}},g.prototype.createReadStream=function(e){var t=e.start,r=e.end;if(t===r){var n=new w;return setImmediate(function(){n.end()}),n}var a=this._readStreamForRange(t,r),o=!1,i=new h(this);a.on("error",function(e){setImmediate(function(){o||i.emit("error",e)})}),i.destroy=function(){a.unpipe(i),i.unref(),a.destroy()};var s=new m(r-t);return i.on("error",function(e){setImmediate(function(){o||s.emit("error",e)})}),s.destroy=function(){o=!0,i.unpipe(s),i.destroy()},a.pipe(i).pipe(s)},g.prototype._readStreamForRange=function(){throw new Error("not implemented")},g.prototype.read=function(e,t,r,n,a){var o=this.createReadStream({start:n,end:n+r}),i=new T,s=0;i._write=function(r,n,a){r.copy(e,t+s,0,r.length),s+=r.length,a()},i.on("finish",a),o.on("error",function(e){a(e)}),o.pipe(i)},g.prototype.close=function(e){setImmediate(e)},k.inherits(h,w),h.prototype._flush=function(e){this.unref(),e()},h.prototype.unref=function(){this.unreffedYet||(this.unreffedYet=!0,this.context.unref())};var E="function"==typeof Buffer.allocUnsafe?function(e){return Buffer.allocUnsafe(e)}:function(e){return new Buffer(e)}},84202:module=>{module.exports=eval("require")("bufferutil")},40142:module=>{module.exports=eval("require")("encoding")},83914:module=>{module.exports=eval("require")("utf-8-validate")},35131:e=>{"use strict";e.exports=JSON.parse("{\"_from\":\"axios@latest\",\"_id\":\"axios@0.21.1\",\"_inBundle\":false,\"_integrity\":\"sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==\",\"_location\":\"/axios\",\"_phantomChildren\":{},\"_requested\":{\"type\":\"tag\",\"registry\":true,\"raw\":\"axios@latest\",\"name\":\"axios\",\"escapedName\":\"axios\",\"rawSpec\":\"latest\",\"saveSpec\":null,\"fetchSpec\":\"latest\"},\"_requiredBy\":[\"#USER\",\"/\"],\"_resolved\":\"https://registry.npmjs.org/axios/-/axios-0.21.1.tgz\",\"_shasum\":\"22563481962f4d6bde9a76d516ef0e5d3c09b2b8\",\"_spec\":\"axios@latest\",\"_where\":\"C:\\\\Users\\\\lecoq\\\\Documents\\\\GitHub\\\\gitstats\",\"author\":{\"name\":\"Matt Zabriskie\"},\"browser\":{\"./lib/adapters/http.js\":\"./lib/adapters/xhr.js\"},\"bugs\":{\"url\":\"https://github.com/axios/axios/issues\"},\"bundleDependencies\":false,\"bundlesize\":[{\"path\":\"./dist/axios.min.js\",\"threshold\":\"5kB\"}],\"dependencies\":{\"follow-redirects\":\"^1.10.0\"},\"deprecated\":false,\"description\":\"Promise based HTTP client for the browser and node.js\",\"devDependencies\":{\"bundlesize\":\"^0.17.0\",\"coveralls\":\"^3.0.0\",\"es6-promise\":\"^4.2.4\",\"grunt\":\"^1.0.2\",\"grunt-banner\":\"^0.6.0\",\"grunt-cli\":\"^1.2.0\",\"grunt-contrib-clean\":\"^1.1.0\",\"grunt-contrib-watch\":\"^1.0.0\",\"grunt-eslint\":\"^20.1.0\",\"grunt-karma\":\"^2.0.0\",\"grunt-mocha-test\":\"^0.13.3\",\"grunt-ts\":\"^6.0.0-beta.19\",\"grunt-webpack\":\"^1.0.18\",\"istanbul-instrumenter-loader\":\"^1.0.0\",\"jasmine-core\":\"^2.4.1\",\"karma\":\"^1.3.0\",\"karma-chrome-launcher\":\"^2.2.0\",\"karma-coverage\":\"^1.1.1\",\"karma-firefox-launcher\":\"^1.1.0\",\"karma-jasmine\":\"^1.1.1\",\"karma-jasmine-ajax\":\"^0.1.13\",\"karma-opera-launcher\":\"^1.0.0\",\"karma-safari-launcher\":\"^1.0.0\",\"karma-sauce-launcher\":\"^1.2.0\",\"karma-sinon\":\"^1.0.5\",\"karma-sourcemap-loader\":\"^0.3.7\",\"karma-webpack\":\"^1.7.0\",\"load-grunt-tasks\":\"^3.5.2\",\"minimist\":\"^1.2.0\",\"mocha\":\"^5.2.0\",\"sinon\":\"^4.5.0\",\"typescript\":\"^2.8.1\",\"url-search-params\":\"^0.10.0\",\"webpack\":\"^1.13.1\",\"webpack-dev-server\":\"^1.14.1\"},\"homepage\":\"https://github.com/axios/axios\",\"jsdelivr\":\"dist/axios.min.js\",\"keywords\":[\"xhr\",\"http\",\"ajax\",\"promise\",\"node\"],\"license\":\"MIT\",\"main\":\"index.js\",\"name\":\"axios\",\"repository\":{\"type\":\"git\",\"url\":\"git+https://github.com/axios/axios.git\"},\"scripts\":{\"build\":\"NODE_ENV=production grunt build\",\"coveralls\":\"cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js\",\"examples\":\"node ./examples/server.js\",\"fix\":\"eslint --fix lib/**/*.js\",\"postversion\":\"git push && git push --tags\",\"preversion\":\"npm test\",\"start\":\"node ./sandbox/server.js\",\"test\":\"grunt test && bundlesize\",\"version\":\"npm run build && grunt version && git add -A dist && git add CHANGELOG.md bower.json package.json\"},\"typings\":\"./index.d.ts\",\"unpkg\":\"dist/axios.min.js\",\"version\":\"0.21.1\"}")},86721:e=>{"use strict";e.exports=JSON.parse("{\"universal\":50,\"tag\":30,\"attribute\":1,\"pseudo\":0,\"descendant\":-1,\"child\":-1,\"parent\":-1,\"sibling\":-1,\"adjacent\":-1}")},74291:e=>{"use strict";e.exports=JSON.parse("{\"properties\":{\"-moz-background-clip\":{\"comment\":\"deprecated syntax in old Firefox, https://developer.mozilla.org/en/docs/Web/CSS/background-clip\",\"syntax\":\"padding | border\"},\"-moz-border-radius-bottomleft\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-left-radius\",\"syntax\":\"<'border-bottom-left-radius'>\"},\"-moz-border-radius-bottomright\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius\",\"syntax\":\"<'border-bottom-right-radius'>\"},\"-moz-border-radius-topleft\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/border-top-left-radius\",\"syntax\":\"<'border-top-left-radius'>\"},\"-moz-border-radius-topright\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/border-bottom-right-radius\",\"syntax\":\"<'border-bottom-right-radius'>\"},\"-moz-osx-font-smoothing\":{\"comment\":\"misssed old syntax https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth\",\"syntax\":\"auto | grayscale\"},\"-moz-user-select\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/user-select\",\"syntax\":\"none | text | all | -moz-none\"},\"-ms-flex-align\":{\"comment\":\"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align\",\"syntax\":\"start | end | center | baseline | stretch\"},\"-ms-flex-item-align\":{\"comment\":\"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-align\",\"syntax\":\"auto | start | end | center | baseline | stretch\"},\"-ms-flex-line-pack\":{\"comment\":\"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-line-pack\",\"syntax\":\"start | end | center | justify | distribute | stretch\"},\"-ms-flex-negative\":{\"comment\":\"misssed old syntax implemented in IE; TODO: find references for comfirmation\",\"syntax\":\"<'flex-shrink'>\"},\"-ms-flex-pack\":{\"comment\":\"misssed old syntax implemented in IE, https://www.w3.org/TR/2012/WD-css3-flexbox-20120322/#flex-pack\",\"syntax\":\"start | end | center | justify | distribute\"},\"-ms-flex-order\":{\"comment\":\"misssed old syntax implemented in IE; https://msdn.microsoft.com/en-us/library/jj127303(v=vs.85).aspx\",\"syntax\":\"\"},\"-ms-flex-positive\":{\"comment\":\"misssed old syntax implemented in IE; TODO: find references for comfirmation\",\"syntax\":\"<'flex-grow'>\"},\"-ms-flex-preferred-size\":{\"comment\":\"misssed old syntax implemented in IE; TODO: find references for comfirmation\",\"syntax\":\"<'flex-basis'>\"},\"-ms-interpolation-mode\":{\"comment\":\"https://msdn.microsoft.com/en-us/library/ff521095(v=vs.85).aspx\",\"syntax\":\"nearest-neighbor | bicubic\"},\"-ms-grid-column-align\":{\"comment\":\"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466338.aspx\",\"syntax\":\"start | end | center | stretch\"},\"-ms-grid-row-align\":{\"comment\":\"add this property first since it uses as fallback for flexbox, https://msdn.microsoft.com/en-us/library/windows/apps/hh466348.aspx\",\"syntax\":\"start | end | center | stretch\"},\"-webkit-appearance\":{\"comment\":\"webkit specific keywords\",\"references\":[\"http://css-infos.net/property/-webkit-appearance\"],\"syntax\":\"none | button | button-bevel | caps-lock-indicator | caret | checkbox | default-button | listbox | listitem | media-fullscreen-button | media-mute-button | media-play-button | media-seek-back-button | media-seek-forward-button | media-slider | media-sliderthumb | menulist | menulist-button | menulist-text | menulist-textfield | push-button | radio | scrollbarbutton-down | scrollbarbutton-left | scrollbarbutton-right | scrollbarbutton-up | scrollbargripper-horizontal | scrollbargripper-vertical | scrollbarthumb-horizontal | scrollbarthumb-vertical | scrollbartrack-horizontal | scrollbartrack-vertical | searchfield | searchfield-cancel-button | searchfield-decoration | searchfield-results-button | searchfield-results-decoration | slider-horizontal | slider-vertical | sliderthumb-horizontal | sliderthumb-vertical | square-button | textarea | textfield\"},\"-webkit-background-clip\":{\"comment\":\"https://developer.mozilla.org/en/docs/Web/CSS/background-clip\",\"syntax\":\"[ | border | padding | content | text ]#\"},\"-webkit-column-break-after\":{\"comment\":\"added, http://help.dottoro.com/lcrthhhv.php\",\"syntax\":\"always | auto | avoid\"},\"-webkit-column-break-before\":{\"comment\":\"added, http://help.dottoro.com/lcxquvkf.php\",\"syntax\":\"always | auto | avoid\"},\"-webkit-column-break-inside\":{\"comment\":\"added, http://help.dottoro.com/lclhnthl.php\",\"syntax\":\"always | auto | avoid\"},\"-webkit-font-smoothing\":{\"comment\":\"https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth\",\"syntax\":\"auto | none | antialiased | subpixel-antialiased\"},\"-webkit-mask-box-image\":{\"comment\":\"missed; https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-mask-box-image\",\"syntax\":\"[ | | none ] [ {4} <-webkit-mask-box-repeat>{2} ]?\"},\"-webkit-print-color-adjust\":{\"comment\":\"missed\",\"references\":[\"https://developer.mozilla.org/en/docs/Web/CSS/-webkit-print-color-adjust\"],\"syntax\":\"economy | exact\"},\"-webkit-text-security\":{\"comment\":\"missed; http://help.dottoro.com/lcbkewgt.php\",\"syntax\":\"none | circle | disc | square\"},\"-webkit-user-drag\":{\"comment\":\"missed; http://help.dottoro.com/lcbixvwm.php\",\"syntax\":\"none | element | auto\"},\"-webkit-user-select\":{\"comment\":\"auto is supported by old webkit, https://developer.mozilla.org/en-US/docs/Web/CSS/user-select\",\"syntax\":\"auto | none | text | all\"},\"alignment-baseline\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#AlignmentBaselineProperty\"],\"syntax\":\"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical\"},\"baseline-shift\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#BaselineShiftProperty\"],\"syntax\":\"baseline | sub | super | \"},\"behavior\":{\"comment\":\"added old IE property https://msdn.microsoft.com/en-us/library/ms530723(v=vs.85).aspx\",\"syntax\":\"+\"},\"clip-rule\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/masking.html#ClipRuleProperty\"],\"syntax\":\"nonzero | evenodd\"},\"cue\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\"<'cue-before'> <'cue-after'>?\"},\"cue-after\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\" ? | none\"},\"cue-before\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\" ? | none\"},\"cursor\":{\"comment\":\"added legacy keywords: hand, -webkit-grab. -webkit-grabbing, -webkit-zoom-in, -webkit-zoom-out, -moz-grab, -moz-grabbing, -moz-zoom-in, -moz-zoom-out\",\"references\":[\"https://www.sitepoint.com/css3-cursor-styles/\"],\"syntax\":\"[ [ [ ]? , ]* [ auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing | hand | -webkit-grab | -webkit-grabbing | -webkit-zoom-in | -webkit-zoom-out | -moz-grab | -moz-grabbing | -moz-zoom-in | -moz-zoom-out ] ]\"},\"display\":{\"comment\":\"extended with -ms-flexbox\",\"syntax\":\"none | inline | block | list-item | inline-list-item | inline-block | inline-table | table | table-cell | table-column | table-column-group | table-footer-group | table-header-group | table-row | table-row-group | flex | inline-flex | grid | inline-grid | run-in | ruby | ruby-base | ruby-text | ruby-base-container | ruby-text-container | contents | -ms-flexbox | -ms-inline-flexbox | -ms-grid | -ms-inline-grid | -webkit-flex | -webkit-inline-flex | -webkit-box | -webkit-inline-box | -moz-inline-stack | -moz-box | -moz-inline-box\"},\"position\":{\"comment\":\"extended with -webkit-sticky\",\"syntax\":\"static | relative | absolute | sticky | fixed | -webkit-sticky\"},\"dominant-baseline\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#DominantBaselineProperty\"],\"syntax\":\"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge\"},\"image-rendering\":{\"comment\":\"extended with <-non-standard-image-rendering>, added SVG keywords optimizeSpeed and optimizeQuality\",\"references\":[\"https://developer.mozilla.org/en/docs/Web/CSS/image-rendering\",\"https://www.w3.org/TR/SVG/painting.html#ImageRenderingProperty\"],\"syntax\":\"auto | crisp-edges | pixelated | optimizeSpeed | optimizeQuality | <-non-standard-image-rendering>\"},\"fill\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#FillProperty\"],\"syntax\":\"\"},\"fill-opacity\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#FillProperty\"],\"syntax\":\"\"},\"fill-rule\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#FillProperty\"],\"syntax\":\"nonzero | evenodd\"},\"filter\":{\"comment\":\"extend with IE legacy syntaxes\",\"syntax\":\"none | | <-ms-filter-function-list>\"},\"glyph-orientation-horizontal\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#GlyphOrientationHorizontalProperty\"],\"syntax\":\"\"},\"glyph-orientation-vertical\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#GlyphOrientationVerticalProperty\"],\"syntax\":\"\"},\"kerning\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/text.html#KerningProperty\"],\"syntax\":\"auto | \"},\"letter-spacing\":{\"comment\":\"fix syntax -> \",\"references\":[\"https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/letter-spacing\"],\"syntax\":\"normal | \"},\"marker\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#MarkerProperties\"],\"syntax\":\"none | \"},\"marker-end\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#MarkerProperties\"],\"syntax\":\"none | \"},\"marker-mid\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#MarkerProperties\"],\"syntax\":\"none | \"},\"marker-start\":{\"comment\":\"added SVG property\",\"references\":[\"https://www.w3.org/TR/SVG/painting.html#MarkerProperties\"],\"syntax\":\"none | \"},\"max-width\":{\"comment\":\"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/max-width\",\"syntax\":\" | | none | max-content | min-content | fit-content | fill-available | <-non-standard-width>\"},\"min-width\":{\"comment\":\"extend by non-standard width keywords https://developer.mozilla.org/en-US/docs/Web/CSS/width\",\"syntax\":\" | | auto | max-content | min-content | fit-content | fill-available | <-non-standard-width>\"},\"opacity\":{\"comment\":\"strict to 0..1 -> \",\"syntax\":\"\"},\"overflow\":{\"comment\":\"extend by vendor keywords https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\",\"syntax\":\"[ visible | hidden | clip | scroll | auto ]{1,2} | <-non-standard-overflow>\"},\"pause\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\"<'pause-before'> <'pause-after'>?\"},\"pause-after\":{\"comment\":\"https://www.w3.org/TR/css3-speech/#property-index\",\"syntax\":\"