diff --git a/.github/readme/imgs/action_update.png b/.github/readme/imgs/action_update.png deleted file mode 100644 index 837fba7e..00000000 Binary files a/.github/readme/imgs/action_update.png and /dev/null differ diff --git a/.github/readme/imgs/example_action_update.png b/.github/readme/imgs/example_action_update.png new file mode 100644 index 00000000..8805818d Binary files /dev/null and b/.github/readme/imgs/example_action_update.png differ diff --git a/.github/readme/imgs/example_github_profil.png b/.github/readme/imgs/example_github_profil.png new file mode 100644 index 00000000..b580945e Binary files /dev/null and b/.github/readme/imgs/example_github_profil.png differ diff --git a/.github/readme/imgs/github_profile.png b/.github/readme/imgs/github_profile.png deleted file mode 100644 index b1d22a8e..00000000 Binary files a/.github/readme/imgs/github_profile.png and /dev/null differ diff --git a/.github/readme/imgs/personal_token_alt.png b/.github/readme/imgs/personal_token_alt.png deleted file mode 100644 index f5ec3eee..00000000 Binary files a/.github/readme/imgs/personal_token_alt.png and /dev/null differ diff --git a/.github/readme/imgs/personal_repo.png b/.github/readme/imgs/setup_personal_repository.png similarity index 100% rename from .github/readme/imgs/personal_repo.png rename to .github/readme/imgs/setup_personal_repository.png diff --git a/.github/readme/imgs/personal_token.png b/.github/readme/imgs/setup_personal_token.png similarity index 76% rename from .github/readme/imgs/personal_token.png rename to .github/readme/imgs/setup_personal_token.png index 760f023a..728f2143 100644 Binary files a/.github/readme/imgs/personal_token.png and b/.github/readme/imgs/setup_personal_token.png differ diff --git a/.github/readme/imgs/setup_private_contributions.png b/.github/readme/imgs/setup_private_contributions.png new file mode 100644 index 00000000..c4e9fca6 Binary files /dev/null and b/.github/readme/imgs/setup_private_contributions.png differ diff --git a/.github/readme/imgs/repo_secrets.png b/.github/readme/imgs/setup_repository_secret.png similarity index 100% rename from .github/readme/imgs/repo_secrets.png rename to .github/readme/imgs/setup_repository_secret.png diff --git a/.github/readme/imgs/token_repo_rights.png b/.github/readme/imgs/setup_token_repo_scope.png similarity index 100% rename from .github/readme/imgs/token_repo_rights.png rename to .github/readme/imgs/setup_token_repo_scope.png diff --git a/README.md b/README.md index 197c51cb..cc930385 100644 --- a/README.md +++ b/README.md @@ -2,42 +2,178 @@ ![Build](https://github.com/lowlighter/metrics/workflows/Build/badge.svg) -Generates your own GitHub metrics as an SVG image to put them on your profile page or elsewhere ! +Generates your own GitHub metrics image that you can embed on your profile page or elsewhere ! [![GitHub metrics](https://github.com/lowlighter/lowlighter/blob/master/metrics.classic.svg)](https://metrics.lecoq.io) But there's more with [plugins](https://github.com/lowlighter/metrics/tree/master/src/plugins) and [templates](https://github.com/lowlighter/metrics/tree/master/src/templates) ! -| Google PageSpeed plugin | Favorite music tracks plugin | Recently listened music plugin | -| :---------------------------------: | :---------------------------------: | :---------------------------------: | -|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.pagespeed.svg)|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.music.playlist.svg)|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.music.recent.svg)| -| **Most used languages plugin** | **Follow-up plugin** | **Coding Habits plugin** | -|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.languages.svg)|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.followup.svg)|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.habits.svg)| -| **Repositories traffic plugin** | **Lines of code plugin** | **Recent posts plugin** | -|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.traffic.svg)|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.lines.svg)| [](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.posts.svg)| -| **Isometric calendar plugin** | **Gists metrics plugin** | **Starred topics plugin** | -|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.isocalendar.svg)|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.gists.svg)|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.topics.svg)| -| **Projects plugin** | | -|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.projects.svg)| More to come soon ! | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
⏱️ Google PageSpeed plugin📅 Isometric calendar plugin
+ + + +
Alternate version + + + + +
+ + + +
Alternate version + + + + +
🎼 Favorite music tracks plugin🎧 Recently listened music plugin
+ + + + + + + +
🈷️ Most used languages plugin🎟️ Follow-up plugin
+ + + + + + + +
📌 Starred topics plugin🗂️ Active projects plugin
+ + + + + + + +
👨‍💻 Lines of code plugin🧮 Repositories traffic plugin
+ + + + + + + +
💡 Coding Habits plugin✒️ Recent posts plugin
+ + + + + + + +
🎫 Gists plugin
+ + + + + + More to come soon ! + +
-| Classic template | Terminal template | | -| :----------------: | :----------------: | :----------------: | -|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.classic.svg)|[](https://github.com/lowlighter/lowlighter/blob/master/metrics.terminal.svg)| More to come soon ! | + + + + + + + + + + + + + + + + + +
Classic templateTerminal template
+ + + +
+ More to come soon ! + +
## 🦑 Interested to get your own ? Try it now at [metrics.lecoq.io](https://metrics.lecoq.io/) with your GitHub username ! -Because some plugins required additional configuration and setup, not all of them are available at [metrics.lecoq.io](https://metrics.lecoq.io/), for a fully-featured experience, consider using this as a [GitHub Action](https://github.com/marketplace/actions/github-metrics-as-svg-image) ! +Because some plugins require additional configuration and setup, some of them are not available at [metrics.lecoq.io](https://metrics.lecoq.io/). +For a fully-featured experience, consider using this as a [GitHub Action](https://github.com/marketplace/actions/github-metrics-as-svg-image) instead ! # 📜 How to use ? -## ⚙️ Using GitHub Action on your profile repo (~5 min setup) +## ⚙️ Using GitHub Action on your profile repository (~5 min setup) -Setup a GitHub Action which is run periodically and push a generated SVG image on your repository. -See all supported options in [action.yml](https://github.com/lowlighter/metrics/blob/master/action.yml). +Setup a GitHub Action which runs periodically and pushes your generated metrics image on your repository. +See all supported options in [action.yml](action.yml). -Assuming your username is `my-github-user`, you can then embed your metrics in your personal repository's readme like below : +Assuming your username is `my-github-user`, you can then embed your metrics in your repository readme like below : ```markdown ![GitHub metrics](https://github.com/my-github-user/my-github-user/blob/master/github-metrics.svg) @@ -48,77 +184,75 @@ Assuming your username is `my-github-user`, you can then embed your metrics in y ### 0. Prepare your personal repository -If you don't know yet or haven't done it yet, create a repository with the same name as your GitHub username. +Create a repository with the same name as your GitHub username if it's not already done. -![Personal repository](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/personal_repo.png) +![Setup personal repository](.github/readme/imgs/setup_personal_repository.png) -The `README.md` of this repository will be displayed on your GitHub user profile like below : +The `README.md` of it will be displayed on your user profile : -![GitHub Profile](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/github_profile.png) +![GitHub Profile Example](.github/readme/imgs/example_github_profile.png) -### 1. Setup a GitHub token +### 1. Create a GitHub token -Go to `Developer settings` from your GitHub account settings and select `Personal access tokens` to create a new token. +From the `Developer settings` of your account settings, select `Personal access tokens` to create a new token. -You'll need to create a token with the `public_repo` right so this GitHub Action has enough permissions to push the updated SVG metrics on your personal repository. +No additional scopes are needed. -![Create a GitHub token](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/personal_token.png) +![Setup a GitHub personal token](.github/readme/imgs/setup_personal_token.png) -If you choose to use a bot account, you can put `public_repo` rights to the bot token and invite it as a collaborator on your personal profile repository so it has push access. This way, you can use a personnal token with no rights instead and reduce security issues. +### 2. Set your GitHub token in your personal repository secrets -### 2. Put your GitHub token in your personal repository secrets +Go to the `Settings` of your personal repository to create a new secret and paste your freshly generated GitHub token there. -Go to the `Settings` of your personal repository to create a new secret and paste your GitHub token here. +![Setup a repository secret](.github/readme/imgs/setup_repository_secret.png) -![Setup secret](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/repo_secrets.png) - -### 3. Create a new GitHub Action workflow on your personal repo +### 3. Create a new GitHub Action workflow on your personal repository Create a new workflow from the `Actions` tab of your personal repository and paste the following : ```yaml -name: GitHub metrics as SVG image +name: GitHub metrics on: - # Schedule the metrics update + # Schedule updates schedule: [{cron: "0 * * * *"}] - # (optional) Force update a commit occurs on master branch - # All commits tagged with [Skip GitHub Action] are automatically ignored by this GitHub action to avoid loops push: {branches: "master"} jobs: github-metrics: runs-on: ubuntu-latest steps: + # See action.yml for all options - uses: lowlighter/metrics@latest with: # Your GitHub token token: ${{ secrets.METRICS_TOKEN }} - # See https://github.com/lowlighter/metrics/blob/master/action.yml for all options + # GITHUB_TOKEN is a special auto-generated token restricted to current repository, which is used to push files in it + committer_token: ${{ secrets.GITHUB_TOKEN }} ``` -See all supported options in [action.yml](https://github.com/lowlighter/metrics/blob/master/action.yml). +See all supported options in [action.yml](action.yml). + +When using a token with additional permissions, it is advised to fork this repository to minimize security risks : +```yaml + - uses: my-github-username/metrics@latest +``` +In this case, consider watching new releases of this repository to stay up-to-date and enjoy latest features ! + +If you prefer examples rather than theory, check out this [workflow](https://github.com/lowlighter/lowlighter/blob/master/.github/workflows/metrics.yml) file which generates metrics daily. #### Preview vs release -It is possible to use `lowlighter/metrics@master` instead of `lowlighter/metrics@latest` to get new features before their release, but some breaking changes may occur occasionally which could result in your metrics not being generated. +It is possible to use `@master` instead of `@latest` to use new features before their official release. +Breaking changes may occur occasionally on `@master`, which could result in your metrics not being generated temporarily. #### What will happen ? -A new SVG image will be generated and committed to your repository on each run. -Because of this, the amount of your commits could be virtually increased which is probably unwanted. +A new metrics image will be generated and committed to your repository on each run. -To avoid this, you can use a bot token instead, which will still be able to track metrics of all your public repositories. -If you want to also track your private repositories metrics, you'll need to pass a personal token with full `repo` permissions to your personal `token`, and use the `committer_token` parameter to pass the bot account token. - -If you don't want to use a bot token, you can use the `plugin_selfskip` which will count out all your commits from your personal repository tagged with `[Skip GitHub Action]` made with your account, but these commits will still be linked to your account. - -![Action update](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/action_update.png) - -If you're using a token with additional permissions, it is advised to fork this repository. If it ever gets compromised, you'll be safe. -But don't forget to check it from time to time for new features ! +![Action update example](.github/readme/imgs/example_action_update.png) ### 4. Embed the link into your README.md -Edit your README.md on your repository and link it your image : +Edit your repository readme and add your metrics image : ```markdown ![GitHub metrics](https://github.com/my-github-user/my-github-user/blob/master/github-metrics.svg) @@ -130,7 +264,7 @@ Edit your README.md on your repository and link it your image : For conveniency, you can use the shared instance available at [metrics.lecoq.io](https://metrics.lecoq.io) without any additional setup. -Assuming your username is `my-github-user`, you can embed your metrics in your personal repository's readme like below : +Assuming your username is `my-github-user`, you can embed your metrics in your repository readme like below : ```markdown ![GitHub metrics](https://metrics.lecoq.io/my-github-user) @@ -144,80 +278,81 @@ Visit [metrics.lecoq.io](https://metrics.lecoq.io) for more informations. Since GitHub API has rate limitations, the shared instance has a few limitations : * Images are cached for 1 hour * Your generated metrics won't be updated during this amount of time when queried - * The rate limiter is enabled, although it won't affect already cached users metrics - * Plugins which consume additional requests, token rights or other configuration are disabled. + * A rate limiter is enabled, although it won't affect already cached users metrics + * Plugins which consume additional requests, or require additional token scopes are disabled -If you're appreciating this project, consider using it as a GitHub Action or deploy your own instance. +If you're appreciating this project, consider using it as a GitHub Action instead. -## 🏗️ Deploying your own instance (~15 min setup, depending on your sysadmin knowledge) +## 🏗️ Deploying your own web instance (~15 min setup, depending on your sysadmin knowledge) -You can setup your own instance if you choose to not use the GitHub Action or you want to allow others users to use your instance. +It is possible to setup your own instance if you don't want to use GitHub Actions or if you want to allow others users on your instance. -You'll need to create a GitHub token to setup it, however you do not need to grant any additional permissions to your token since it won't push images to any of your repositories. You may still require additional rights for some plugins if you decide to enable them though. +When sharing an instance, it is advised to restrict the number of users which can use it through the rate limiter or the access list, to avoid reaching the requests limit of GitHub APIs. -If you intend to share your instance, it is advised to setup either an access list to restrict which users can use it, or to configure the rate limiter to avoid reaching the requests limit of GitHub API. - -See all supported options in [settings.example.json](https://github.com/lowlighter/metrics/blob/master/settings.example.json). +See all supported options in [settings.example.json](settings.example.json).
💬 How to setup ? ### 0. Prepare your server -You'll need a server where you can install and configure apps. +You will need a server where you can setup and run a NodeJS application. ### 1. Create a GitHub token -In your account settings, go to `Developer settings` and select `Personal access tokens` to create a new token. -As explained above, you do not need to grant additional permissions to the token unless you want to enable additional plugins. +From the `Developer settings` of your account settings, select `Personal access tokens` to create a new token. -![Create a GitHub token](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/personal_token_alt.png) +No additional scopes are needed, unless you want to include your private repositories metrics or if you want to use the `traffic` plugin. -### 2. Install the dependancies +![Setup a GitHub personal token](.github/readme/imgs/setup_personal_token.png) -Connect to your server and ensure [NodeJS](https://nodejs.org/en/) is installed (see tested versions in the [build workflows](https://github.com/lowlighter/metrics/blob/master/.github/workflows/build.yml)). +Be sure to enable `Include private contributions on my profile` in your account settings to include your private repositories : -Then run the following commands : +![Enable "Include private contributions on my profile`"](.github/readme/imgs/setup_private_contributions.png) + + +### 2. Install dependencies + +Connect to server and ensure [NodeJS](https://nodejs.org/en/) is installed (see tested version in [workflow](.github/workflows/workflow.yml#L18)). + +Run the following commands to clone this repository, install dependencies and copy configuration example file : ```shell -# Clone this repository (or your fork) git clone https://github.com/lowlighter/metrics.git -# Install dependancies cd metrics/ npm install --only=prod -# Copy the settings exemple cp settings.example.json settings.json ``` ### 3. Configure your instance -Open and edit `settings.json` to configure your instance using a text editor of your choice. +Edit `settings.json` to configure your instance. ```javascript { + //See settings.example.json for all options //GitHub API token "token":"****************************************" - //See https://github.com/lowlighter/metrics/blob/master/settings.example.json for all options } ``` -See all supported options in [settings.example.json](https://github.com/lowlighter/metrics/blob/master/settings.example.json). +See all supported options in [settings.example.json](settings.example.json). ### 4. Start your instance -Start your instance once you've finished configuring it : +Run the following command to start your instance once you've finished configuring it : ```shell npm start ``` -And you should be able to access it on the port you provided ! +From your browser, you should be able to access your web instance on the port you provided in `setting.json`. ### 5. Embed the link into your README.md -Edit your `README.md` on your repository and include your metrics from your server domain : +Edit your repository readme and add your metrics image from your server domain : ```markdown ![GitHub metrics](https://my-personal-domain.com/my-github-user) @@ -225,16 +360,10 @@ Edit your `README.md` on your repository and include your metrics from your serv ### 6. (optional) Setup as service on your instance -If you want to ensure that your instance will be restarted after reboots or crashes, you should setup it as a service. -This is described below for linux-like systems with *systemd*. +To ensure that your instance will be restarted in case of reboots or crashs, you should setup it as a service. +This is described below for linux-like systems which supports *systemd*. -Create a new service file in `/etc/systemd/system` : - -```shell -nano /etc/systemd/system/github_metrics.service -``` - -Paste the following and edit it with the correct paths : +Create a new service file `/etc/systemd/system/github_metrics.service` and paste the following after editing paths inside : ``` [Unit] @@ -251,7 +380,7 @@ ExecStart=/usr/bin/node /path/to/metrics/index.mjs WantedBy=multi-user.target ``` -Reload services, enable it, start it and check it is up and running : +Reload services, enable it, start it and check if it is up and running : ```shell systemctl daemon-reload @@ -265,47 +394,57 @@ systemctl status github_metrics
⚠️ HTTP errors code -The following errors code can be encountered if on a server instance : -* `400 Bad request` : Query is invalid (e.g. unsupported template) -* `403 Forbidden` : User is not allowed in `restricted` users list -* `404 Not found` : GitHub API did not found the requested user -* `429 Too many requests` : Thrown when rate limiter is trigerred -* `500 Internal error` : An error ocurred while generating metrics images (logs can be seen if you're the owner of the instance) -* `503 Service unavailable` : Maximum user capacity reached, only already cached images can be accessed for now +The following errors code can be encountered on a web instance : + +| Error code | Description | +| ------------------------- | -------------------------------------------------------------------------- | +| `400 Bad request` | Invalid query (e.g. unsupported template) | +| `403 Forbidden` | User not allowed in `restricted` users list | +| `404 Not found` | GitHub API did not found the requested user | +| `429 Too many requests` | Thrown when rate limiter is trigerred | +| `500 Internal error` | Server error while generating metrics images (check logs for more details) | +| `503 Service unavailable` | Maximum user capacity reached, only cached images can be accessed for now |
🔗 HTTP parameters -Generated metrics from a server instance may be configured through url parameters. +Generated metrics images from a web instance can be configured through url parameters. -Base content is enabled by default, but you can pass `?base=0` to disable all base content or `?base.
=0` to disable a specific `
`. -For example, to opt-out from `activity`, `community` and `metadata`, pass `?base.activity=0&base.community=0&base.metadata=0` to url. +#### Configuring base content -Plugins are disabled by default, but you can pass `?=1` to enable a specific ``. -For example, to enable `music` plugin, pass `?music=1` to url. +Base content is enabled by default, but passing `?base=0` will disable all base content. +You can choose to selectively enable or disable a specific `
` with `?base.
=<1|0>`. +For example, to opt-out from `activity`, `community` and `metadata`, append `?base.activity=0&base.community=0&base.metadata=0` to your metrics url. + +#### Configuring plugins + +Plugins are disabled by default, but passing `?=1` will enable a specific ``. Plugin options can be passed with `?.
-# 📚 Documentations +# 📚 Documentation ## 🖼️ Templates -Templates allows you to style your metrics. -The default is the classic one, but you can change it for something more stylish. - -Some metrics may be displayed differently, and it is possible that not all plugins are supported or behave the same from one template to another. +Templates allows you to change the general appearance of your metrics images. +Some metrics may be displayed differently, and all plugins may not be supported or behave the same from one template to another. Consider trying them at [metrics.lecoq.io](https://metrics.lecoq.io) ! +Used template defaults to the `classic` one. + ## 🧩 Plugins -Plugins are features which are disabled by default but they can provide additional metrics. -In return they may require additional configuration and tend to consume additional API requests. +Plugins are features which can provide additional metrics and features. +In return, they may require additional configuration and consume additional API requests. ### 🗃️ Base content @@ -322,7 +461,7 @@ By default, generated metrics contains the following sections : * `repositories`, which contains your repositories stats (license, forks, stars, etc.) * `metadata`, which contains informations about generated metrics -You can explicitely opt-out from them, if you want to keep only a few sections or if you want to use a plugin as standalone. +You can explicitely opt-out from them, which can be useful if you only want to keep a few sections or to use a plugin as standalone. For example, to keep only `header` and `repositories` sections, add the following to your workflow : ```yaml @@ -336,16 +475,16 @@ For example, to keep only `header` and `repositories` sections, add the followin ### ⏱️ PageSpeed -The *pagespeed* plugin allows you to add the performances of the website attached to the GitHub user account : +The *pagespeed* plugin adds the performances of the website attached mentioned on your account : ![Pagespeed plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.pagespeed.svg) -These are computed through [Google's PageSpeed API](https://developers.google.com/speed/docs/insights/v5/get-started), which returns the same results as [web.dev](https://web.dev). +These are computed through [Google's PageSpeed API](https://developers.google.com/speed/docs/insights/v5/get-started), which yields the same results as [web.dev](https://web.dev).
💬 About -This plugin may require an API key that you can generate [here](https://developers.google.com/speed/docs/insights/v5/get-started) although it does not seem mandatory. It is still advised to provide it to avoid 429 HTTP errors. +Although not mandatory, you can generate an API key for PageSpeed API [here](https://developers.google.com/speed/docs/insights/v5/get-started) to avoid 429 HTTP errors. The website attached to the GitHub profile will be the one to be audited. Expect 10 to 30 seconds to generate the results. @@ -359,11 +498,11 @@ Add the following to your workflow : plugin_pagespeed_token: ${{ secrets.PAGESPEED_TOKEN }} ``` -It is possible to generate a detailled report along with scores : +You can display a detailed report along with scores : -![Pagespeed plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.pagespeed.detailed.svg) +![Pagespeed plugin (detailed)](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.pagespeed.detailed.svg) -See [performance scoring](https://web.dev/performance-scoring/) and [score calculator](https://googlechrome.github.io/lighthouse/scorecalc/) for more information about how PageSpeed compute these metrics. +See [performance scoring](https://web.dev/performance-scoring/) and [score calculator](https://googlechrome.github.io/lighthouse/scorecalc/) for more informations about how PageSpeed compute these statistics. Add the following to your workflow instead : ```yaml @@ -377,15 +516,47 @@ Add the following to your workflow instead :
+### 📅 Isometric calendar + +The *isocalendar* plugin displays an isometric view of your commits calendar, along with a few stats like current streak and commit average per day. + +![Isocalendar plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.isocalendar.svg) + +
+💬 About + +It will consume two additional GitHub requests. + +Add the following to your workflow : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_isocalendar: yes +``` + +Use the following instead to display a full-year instead : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_isocalendar: yes + plugin_isocalendar_duration: full-year +``` + +![Isocalendar plugin (full year)](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.isocalendar.fullyear.svg) + +
+ ### 🎼 Music The *music* plugin can work in the following modes : #### Playlist mode -Select randomly a few tracks from a given playlist so you can suggest your favorite tracks to your visitors. +Select randomly a few tracks from a given playlist so you can display your favorite tracks to your visitors. -![Languages plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.music.playlist.svg) +![Music plugin (playlist)](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.music.playlist.svg)
💬 About @@ -395,19 +566,19 @@ Select a music provider below for instructions.
Apple Music -You will need to extract the *embed* url of the playlist you want to share. +Extract the *embed* url of the playlist you want to share. -Connect to [music.apple.com](https://music.apple.com/) and select the playlist you want to share. -From the `...` menu, select `Share` and `Copy embed code`. +To do so, connect to [music.apple.com](https://music.apple.com/) and select the playlist you want to share. +From `...` menu, select `Share` and `Copy embed code`. -![Image](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/plugin_music_playlist_apple.png) +![Copy embed code of playlist](.github/readme/imgs/plugin_music_playlist_apple.png) -Paste the code in your clipboard and extract the source link from it : +Extract the source link from the code pasted in your clipboard : ```html ``` -Once you've extracted the embed url you can finish the setup by adding the following to your workflow : +Finish the plugin setup by adding the following to your workflow : ```yaml - uses: lowlighter/metrics@latest @@ -416,7 +587,7 @@ Once you've extracted the embed url you can finish the setup by adding the follo plugin_music: yes plugin_music_provider: apple plugin_music_mode: playlist - plugin_music_playlist: https://******** + plugin_music_playlist: https://******** # Extracted source link plugin_music_limit: 4 # Set the number of tracks you want to display ``` @@ -425,19 +596,19 @@ Once you've extracted the embed url you can finish the setup by adding the follo
Spotify -You will need to extract the *embed* url of the playlist you want to share. +Extract the *embed* url of the playlist you want to share. -Open Spotify and select the playlist you want to share. -From the `...` menu, select `Share` and `Copy embed code`. +To do so, Open Spotify and select the playlist you want to share. +From `...` menu, select `Share` and `Copy embed code`. -![Image](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/plugin_music_playlist_spotify.png) +![Copy embed code of playlist](.github/readme/imgs/plugin_music_playlist_spotify.png) -Paste the code in your clipboard and extract the source link from it : +Extract the source link from the code pasted in your clipboard : ```html ``` -Once you've extracted the embed url you can finish the setup by adding the following to your workflow : +Finish the plugin setup by adding the following to your workflow : ```yaml - uses: lowlighter/metrics@latest @@ -446,7 +617,7 @@ Once you've extracted the embed url you can finish the setup by adding the follo plugin_music: yes plugin_music_provider: spotify plugin_music_mode: playlist - plugin_music_playlist: https://******** + plugin_music_playlist: https://******** # Extracted source link plugin_music_limit: 4 ``` @@ -456,9 +627,9 @@ Once you've extracted the embed url you can finish the setup by adding the follo #### Recently played mode -Display the track you played recently. +Display tracks you played recently. -![Languages plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.music.recent.svg) +![Music plugin (recently played)](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.music.recent.svg)
💬 About @@ -479,29 +650,30 @@ So unfortunately this isn't available for now.
Spotify -Spotify does not have *personal tokens*, so it makes the processus a bit longer because you're required to follow the [authorization workflow](https://developer.spotify.com/documentation/general/guides/authorization-guide/)... Follow the instructions below for *TL;DR* and obtain the `refresh_token`. +Spotify does not have *personal tokens*, so it makes the process a bit longer because you're required to follow the [authorization workflow](https://developer.spotify.com/documentation/general/guides/authorization-guide/)... Follow the instructions below for a *TL;DR* to obtain a `refresh_token`. Sign-in to the [developer dashboard](https://developer.spotify.com/dashboard/) and create a new app. -Keep your `client_id` and `client_secret` and keep this tab open for now. +Keep your `client_id` and `client_secret` and let this tab open for now. -![Image](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/plugin_music_recent_spotify_token_0.png) +![Add a redirect url](.github/readme/imgs/plugin_music_recent_spotify_token_0.png) -Then open the settings and add a new *Redirect url*. Normally you use it to setup callbacks for your apps, but since we don't have one and it is mandatory as per the [authorization guide](https://developer.spotify.com/documentation/general/guides/authorization-guide/), just put `https://localhost`. +Open the settings and add a new *Redirect url*. Normally it is used to setup callbacks for apps, but just put `https://localhost` insteadd (it is mandatory as per the [authorization guide](https://developer.spotify.com/documentation/general/guides/authorization-guide/), even if not used). -Next forge the url for authorization with your `client_id` and the encoded `redirect_uri` you whitelisted, and access it from your browser. +Forge the authorization url with your `client_id` and the encoded `redirect_uri` you whitelisted, and access it from your browser : ``` https://accounts.spotify.com/authorize?client_id=********&response_type=code&scope=user-read-recently-played&redirect_uri=https%3A%2F%2Flocalhost ``` + When prompted, authorize your application. -![Image](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/plugin_music_recent_spotify_token_1.png) +![Authorize application](.github/readme/imgs/plugin_music_recent_spotify_token_1.png) -Next you'll be redirected to `redirect_uri`. Extract the generated authorization `code` from your url bar. +Once redirected to `redirect_uri`, extract the generated authorization `code` from your url bar. -![Image](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/plugin_music_recent_spotify_token_2.png) +![Extract authorization code from url](.github/readme/imgs/plugin_music_recent_spotify_token_2.png) -Then go back to the developer dashboard tab, open the web console of your browser and paste the following JavaScript code, with your own `client_id`, `client_secret`, authorization `code` and `redirect_uri`. +Go back to your developer dashboard tab, and open the web console of your browser to paste the following JavaScript code, with your own `client_id`, `client_secret`, authorization `code` and `redirect_uri`. ```js (async () => { @@ -530,7 +702,7 @@ It should return a JSON response with the following content : } ``` -Now that you've got your `client_id`, `client_secret` and `refresh_token` you can finish the setup by adding the following to your workflow : +With your `client_id`, `client_secret` and `refresh_token` you can finish the plugin setup by adding the following to your workflow : ```yaml - uses: lowlighter/metrics@latest with: @@ -546,41 +718,115 @@ Now that you've got your `client_id`, `client_secret` and `refresh_token` you ca
-### 📅 Isometric calendar +### 🈷️ Languages -The *isocalendar* plugin allows you to display an isometric view of your commits calendar, along with a few stats like your current streak and your commit average per day. +The *languages* plugin displays which programming languages you use the most across all your repositories. -![Isocalendar plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.isocalendar.svg) +![Languages plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.languages.svg)
💬 About -It will consume two additional GitHub requests. - Add the following to your workflow : ```yaml - uses: lowlighter/metrics@latest with: # ... other options - plugin_isocalendar: yes + plugin_languages: yes ``` -It is possible to extend display a full-year by adding the following instead : +
+ +### 🎟️ Follow-up + +The *follow-up* plugin displays the ratio of opened/closed issues and the ratio of opened/merged pull requests across all your repositories, which shows if they're well-maintened or not. + +![Follow-up plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.followup.svg) + +
+💬 About + +Add the following to your workflow : ```yaml - uses: lowlighter/metrics@latest with: # ... other options - plugin_isocalendar: yes - plugin_isocalendar_duration: full-year + plugin_followup: yes ``` -![Isocalendar plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.isocalendar.fullyear.svg) +
+ +### 📌 Topics + +The *topics* plugin displays your [starred topics](https://github.com/stars?filter=topics). +Check out [GitHub topics](https://github.com/topics) to search interesting topics. + +![Topics plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.topics.svg) + +
+💬 About + +This uses puppeteer to navigate through your starred topics page. + +You can choose to display and order topics by : +- Most `stars` +- Recent `activity` +- Recently `starred` by you +- `random`ly + +Add the following to your workflow : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_topics: yes + plugin_topics_sort: stars + plugin_topics_limit: 15 +``` + +
+ +### 🗂️ Projects + +The *projects* plugin displays the progress of your profile projects. + +![Projects plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.projects.svg) + +
+💬 About + +It will consume an additional GitHub request. + +Add the following to your workflow : +```yaml +- uses: lowlighter/metrics@latest + with: + # ... other options + plugin_projects: yes + plugin_projects_limit: 4 +``` + +Note that by default, profile projects have progress tracking disabled. +To enable it, open the `≡ Menu` and edit the project to opt-in to `Track project progress` (it can be a bit confusing since it's actually not in the project settings). + +![Enable "Track project progress"](.github/readme/imgs/plugin_projects_track_progress.png) + +
+💬 Create a personal project on GitHub + +On your profile, select the `Projects` tab : +![Create a new project](.github/readme/imgs/plugin_projects_create.png) + +Fill the informations and set visibility to *public* : +![Configure project](.github/readme/imgs/plugin_projects_setup.png) + +
### 👨‍💻 Lines -The *lines* of code plugin allows you to compute the number of lines of code you added and removed across all of your repositories. +The *lines* of code plugin displays the number of lines of code you added and removed across all of your repositories. ![Lines plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.lines.svg) @@ -601,24 +847,26 @@ Add the following to your workflow : ### 🧮 Traffic -The repositories *traffic* plugin allows you to compute the number of pages views across your repositories. +The repositories *traffic* plugin displays the number of pages views across your repositories. ![Traffic plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.traffic.svg) + ⚠️ This plugin requires a personal token with full repo scope. +
💬 About It will consume an additional GitHub request per repository. -Because of GitHub REST API limitation, the provided token will require full `repo` permissions to access traffic informations. +Because of GitHub REST API limitation, provided token requires full `repo` scope to access traffic informations. -![Token with repo permissions](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/token_repo_rights.png) +![Token with repo scope](.github/readme/imgs/setup_token_repo_scope.png) Add the following to your workflow : ```yaml - uses: lowlighter/metrics@latest with: - # token with "repo" rights + # Token with "repo" scope token: ${{ secrets.METRICS_TOKEN }} # ... other options plugin_traffic: yes @@ -628,7 +876,7 @@ Add the following to your workflow : ### 💡 Habits -The coding *habits* plugin allows you to add deduced coding about based on your recent activity, from up to 100 events. +The coding *habits* add deduced coding habits based on your recent activity, from up to 100 events. ![Habits plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.habits.svg) @@ -637,8 +885,8 @@ The coding *habits* plugin allows you to add deduced coding about based on your It will consume an additional GitHub request per event fetched. -Because of GitHub REST API limitation, the provided token will require full `repo` permissions to access **private** events. -By default, events that cannot be fetched will be ignored so you can still use this plugin with a public token. +Because of GitHub REST API limitation, provided token requires full `repo` scope to access **private** events. +Events that cannot be fetched will be ignored so it is still possible to use this plugin with a scope-less token. Add the following to your workflow : ```yaml @@ -653,7 +901,7 @@ Add the following to your workflow : ### ✒️ Posts -The recent *posts* plugin allows you to display recent articles you wrote on an external source, like [dev.to](https://dev.to). +The recent *posts* plugin displays recent articles you wrote on an external source, like [dev.to](https://dev.to). ![Posts plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.posts.svg) @@ -674,47 +922,9 @@ Add the following to your workflow :
-### 🎟️ Follow-up - -The *follow-up* plugin allows you to compute the ratio of opened/closed issues and the ratio of opened/merged pull requests on your repositories, which shows whether most of them are maintened or not. - -![Follow-up plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.followup.svg) - -
-💬 About - -Add the following to your workflow : -```yaml -- uses: lowlighter/metrics@latest - with: - # ... other options - plugin_followup: yes -``` - -
- -### 🈷️ Languages - -The *languages* plugin allows you to compute which languages you use the most in your repositories. - -![Languages plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.languages.svg) - -
-💬 About - -Add the following to your workflow : -```yaml -- uses: lowlighter/metrics@latest - with: - # ... other options - plugin_languages: yes -``` - -
- ### 🎫 Gists -The *gists* plugin allows you to display [gists](https://gist.github.com) metrics. +The *gists* plugin displays your [gists](https://gist.github.com) metrics. ![Gists plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.gists.svg) @@ -733,109 +943,21 @@ Add the following to your workflow :
-### 📌 Topics - -The *topics* plugin allows you to display your [starred topics](https://github.com/stars?filter=topics). -Check out [GitHub topics](https://github.com/topics) to search interesting topics. - -![Topics plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.topics.svg) - -
-💬 About - -This uses puppeteer to navigate through your starred topics page. - -You can choose to display and order topics by : -- Most `stars` -- Recent `activity` -- Recently `starred` by you -- `random`ly - -Add the following to your workflow : -```yaml -- uses: lowlighter/metrics@latest - with: - # ... other options - plugin_topics: yes - plugin_topics_sort: stars - plugin_topics_limit: 15 -``` - -
- -### 🗂️ Projects - -The *projects* plugin allows you to display your profile projects. - -![Projects plugin](https://github.com/lowlighter/lowlighter/blob/master/metrics.plugin.projects.svg) - -
-💬 About - -It will consume an additional GitHub request. - -Add the following to your workflow : -```yaml -- uses: lowlighter/metrics@latest - with: - # ... other options - plugin_projects: yes - plugin_projects_limit: 4 -``` - -Note that by default, projects created have progress tracking disabled. -To enable it, open the `≡ Menu` and edit the project to check `Track project progress` (this can be confusing because it's actually not in the project settings). - -![Image](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/plugin_projects_track_progress.png) - -
-💬 Create a personal project on GitHub - -On your profile, select the `Projects` tab : -![Image](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/plugin_projects_create.png) - -Fill the informations and set visibility to *public* : -![Image](https://github.com/lowlighter/metrics/blob/master/.github/readme/imgs/plugin_projects_setup.png) - -
- -
- -### ⏭️ Selfskip - -The *selfskip* plugin allows you to count out all commits tagged with `[Skip GitHub Action]` you authored on your personal repository from your reported commit counts. - -
-💬 About - -It will consume an additional GitHub request per page fetched of your commit activity from your personal repository. - -Add the following to your workflow : -```yaml -- uses: lowlighter/metrics@latest - with: - # ... other options - plugin_selfskip: yes -``` - -
- ## 💪 Contributing and customizing -If you would like to suggest a new feature, find a bug or need help, you can fill an [issue](https://github.com/lowlighter/metrics/issues) describing your problem. +To suggest a new feature, find a bug or need help, fill an [issue](https://github.com/lowlighter/metrics/issues) describing your problem or your needs. If you're motivated enough, you can submit a [pull request](https://github.com/lowlighter/metrics/pulls) to integrate new features or to solve open issues. -Read [contributing.md](https://github.com/lowlighter/metrics/blob/master/CONTRIBUTING.md) for more information about this. +Read [CONTRIBUTING.md](CONTRIBUTING.md) for more information about this. ## 📖 Useful references * [GitHub GraphQL API](https://docs.github.com/en/graphql) * [GitHub GraphQL Explorer](https://developer.github.com/v4/explorer/) * [GitHub Rest API](https://docs.github.com/en/rest) - -All icons were ripped across GitHub's site, but still remains the intellectual property of GitHub. -See [GitHub Logos and Usage](https://github.com/logos) for more information. +* [GitHub Octicons](https://github.com/primer/octicons) + * See [GitHub Logos and Usage](https://github.com/logos) for more information. ### ✨ Inspirations diff --git a/action.yml b/action.yml index 4be90ca7..0e5ae314 100644 --- a/action.yml +++ b/action.yml @@ -12,19 +12,15 @@ runs: # Inputs inputs: - # Your personal token - # Depending on your configurations, the following rights are needed : - # - (none) if you're using a "commiter_token" - # - "public_repo" if you're using this token to commit and push your metrics - # - "repo" for plugins like traffic or to include your private repositories metrics + # Personal user token + # No additional scopes are needed, unless if you want to include private repositories metrics or use the traffic plugin token: description: GitHub Personal Token required: true - # To avoid this action's commits to be counted in your stats, you can specify a bot token - # You must first grant push access on your personal repository to the bot account so it'll be able to push metrics + # Set to "${{ secrets.GITHUB_TOKEN }}" committer_token: - description: If provided, use this token for commits + description: Token used for commits default: "" # User to compute metrics @@ -33,32 +29,32 @@ inputs: description: GitHub username default: "" - # File or path to the generated metrics, relative to your repositories root + # Filepath of generated metrics (relative to repository root) filename: - description: Name of SVG image output + description: Path of SVG image output default: github-metrics.svg - # Optimize SVG image with SVGO, to minify, remove useless attributes and spaces - # Some templates based on white-spaces will auto-disable this option when used + # Optimize SVG image with SVGO (minify and remove useless attributes and spaces) + # Some templates may not support this option optimize: description: Optimize SVG image default: yes - # The number of repositories to use to compute metrics - # A high number increase your metrics accuracy, but may consume additional requests with plugins which use the REST API + # Number of repositories to use for metrics + # A high number increase metrics accuracy, but will consume additional API requests when using plugins repositories: - description: Number of repositories to use to compute metrics + description: Number of repositories to use default: 100 - # The name of the template to use + # Template to use # See https://github.com/lowlighter/metrics/tree/master/src/templates for supported templates template: description: Template to use default: classic - # Template base content, which are all enabled by 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 as parameters + # To disable everything (like if you want to use a plugin as standalone), pass an empty string # Supported values are : # - "header" (name, commits calendar, ...) # - "activity" (commits, issues/pull requests opened, ...) @@ -72,7 +68,7 @@ inputs: # Google PageSpeed plugin # Enable it to compute the performance for the website attached to "user" plugin_pagespeed: - description: Enable Google PageSpeed metrics for account attached website + description: Enable Google PageSpeed metrics for user's website default: no # Display additional PageSpeed audit metrics @@ -80,30 +76,29 @@ inputs: # First Contentful Paint, Speed Index, Largest Contentful Paint, Time to Interactive, Total Blocking Time, Cumulative Layout Shift # See https://web.dev/performance-scoring/ and https://googlechrome.github.io/lighthouse/scorecalc/ for more informations plugin_pagespeed_detailed: - description: Display additional PageSpeed audit metrics + description: Display additional PageSpeed metrics default: no - # When PageSpeed plugin is enabled, it is advised to generate a token to avoid the rate-limiter + # 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: - description: Google Pagespeed Personal Token + description: Pagespeed personal token default: "" # Lines of code plugin - # It'll retrieve your contributors stats and compute added/removed lines for each of your repositories + # Compute added/removed line for each of you repositories from your contributors stats plugin_lines: description: Enable lines of code metrics default: no - # Traffic plugin + # Traffic plugin ("token" must have "repo" permission) # Count views on your repositories - # "token" must have "repo" permission plugin_traffic: description: Enable repositories traffic metrics default: no # Coding habits plugin - # It'll search in your recent activity what've recently did, like if you're using spaces or tabs as indents, etc. + # Search in your recent activity what've recently did and deduce tidbits like if you're using spaces or tabs as indents, etc. plugin_habits: description: Enable coding habits metrics default: no @@ -111,30 +106,30 @@ inputs: # Number of activity events to base habits on # Maximum number of events is capped to 100 plugin_habits_from: - description: Number of activity events to base habits on + description: Number of activity events to use default: 100 # Languages plugins - # Compute the coding languages the most used on your repositories + # Compute the most used programming languages on your repositories plugin_languages: description: Enable most used languages metrics default: no # Follow-up plugin - # Display the number and the ratio of opened/closed issues and opened/merged pull requests + # Display the number and the ratio of opened/closed issues and opened/merged pull requests on your repositories plugin_followup: description: Enable owned repositories issues and pull requests metrics default: no # Music plugin - # Display tracks you recently listened to or your favorite tracks + # Display tracks you recently listened or your favorite tracks from a playlist plugin_music: - description: Enable music + description: Enable music plugin default: no # Music provider - # This is required in "recent" mode - # This is optional in "playlist" mode, in this case it will be deduced from "plugin_music_playlist" url + # Required in "recent" mode + # Optional in "playlist" mode (will be deduced from "plugin_music_playlist" url) # Supported values are : # - "apple" for Apple Music # - "spotify" for Spotify @@ -155,27 +150,21 @@ inputs: # - "playlist" : display tracks from a playlist randomly # - "recent" : display recently played tracks plugin_music_mode: - description: Use "recent" to display recently played music and "playlist" to display tracks randomly from a given playlist (*required if music plugin is enabled) + description: Use "recent" to display recently played music and "playlist" to display tracks randomly from a given playlist default: "" # Music playlist - # The embed playlist url (the one used for music player iframe) - # Will default mode to "playlist" when set + # The embed playlist url (source which is used for music player iframes) + # Will default "plugin_music_mode" to "playlist" when set plugin_music_playlist: description: Embed playlist url default: "" - # Tracks to display for music plugin + # Number of tracks to display for music plugin plugin_music_limit: description: Number of tracks to display default: 4 - # Self-skip plugin - # If you're using your personnal account for commits, this will substract all of your commits flagged with [Skip GitHub Action] - plugin_selfskip: - description: Skip commits flagged with [Skip GitHub Action] from commits count - default: no - # Posts plugin # Display recent posts from an external source plugin_posts: @@ -187,19 +176,18 @@ inputs: # Supported values are : # - "dev.to" for dev.to plugin_posts_source: - description: Posts source + description: Posts external source default: "" - # Posts limits - # Set number of posts to display + # Number of posts to display plugin_posts_limit: - description: Posts limit + description: Number of posts to display default: 4 # Isometric calendar plugin - # Display an isometric view of your commits calendar, along with a few stats like current streak and average commits per day + # Display an isometric view of your commits calendar along with a few stats like current streak and average commits per day plugin_isocalendar: - description: Display an isometric view of your commits calendar, along with a few additional stats + description: Display an isometric view of your commits calendar along with a few additional stats default: no # Duration shown by isometric calendar plugin @@ -208,19 +196,19 @@ inputs: description: Set isometric calendar duration default: half-year - # Gists plugins + # Gists plugin # Display gists metrics plugin_gists: description: Display gists metrics default: no - # Topics plugins + # Topics plugin # Display starred topics plugin_topics: description: Display starred topics default: no - # Sorting method of topics + # Sorting method of displayed topics # Supported values are : # - "stars" to sort them from most starred to least starred # - "activity" to sort them from most recent activity to least recent activity @@ -230,33 +218,32 @@ inputs: description: Sorting method of starred topics default: "stars" - # Limit the number of topics displayed - # Between 1 and 20 + # Number of topics to display (between 1 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 - # Projects plugins + # Projects plugin # Display active projects plugin_projects: description: Display active projects default: no - # Limit the number of projects displayed + # Number of active projects to display # Between 1 and 100 plugin_projects_limit: description: Number of active projects to display default: 4 # Enable debug mode - # Be sure to put all secrets in your repository secrets before to avoid any leaks ! + # Ensure you correctly put all sensitive informations in your repository secrets before ! debug: description: Enable debug logs default: no # Verify SVG after generation - # It tests whether SVG can be correctly parsed (used for testing) + # Test whether SVG can be correctly parsed (used for testing) verify: description: Verify SVG after genaration default: no @@ -268,7 +255,7 @@ inputs: default: no # When enabled, any plugins errors will throw - # By default, it will still generates metrics but renders an error message + # By default, metrics are still generated with an error message plugins_errors_fatal: description: Die on plugins errors default: no \ No newline at end of file diff --git a/action/dist/index.js b/action/dist/index.js index 93f26398..149609bc 100644 --- a/action/dist/index.js +++ b/action/dist/index.js @@ -1,4 +1,4 @@ -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,_NumberMAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER,_Stringprototype=String.prototype,_Mathround=Math.round,_StringfromCharCode=String.fromCharCode,_Mathabs=Math.abs,_Mathpow=Math.pow,_Mathceil=Math.ceil,_Mathfloor=Math.floor,_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__={80990:(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:f.resolve("node_modules")};if(t(`metrics/setup > load settings.json`),h.existsSync(r.ab+"settings.json")?(a.settings=JSON.parse(`${await h.promises.readFile(f.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(a.settings),t(`metrics/setup > load package.json`),h.existsSync(r.ab+"package.json")?(a.package=JSON.parse(`${await h.promises.readFile(f.resolve("package.json"))}`),t(`metrics/setup > load package.json > success`)):(t(`metrics/setup > load package.json > (missing)`),a.package={version:"2.7.0-beta",author:"lowlighter"}),h.existsSync(r.ab+"templates"))for(const e of await h.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 h.promises.readFile(f.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=>`${h.readFileSync(f.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(`eyJjbGFzc2ljIjp7InF1ZXJ5IjoicXVlcnkgTWV0cmljcyB7XHJcbiAgdXNlcihsb2dpbjogJGxvZ2luKSB7XHJcbiAgICBkYXRhYmFzZUlkXHJcbiAgICBuYW1lXHJcbiAgICBsb2dpblxyXG4gICAgY3JlYXRlZEF0XHJcbiAgICBhdmF0YXJVcmxcclxuICAgIHdlYnNpdGVVcmxcclxuICAgIGdpc3RzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzKGxhc3Q6ICRyZXBvc2l0b3JpZXMsIGlzRm9yazogZmFsc2UsIG93bmVyQWZmaWxpYXRpb25zOiBPV05FUikge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICAgIHRvdGFsRGlza1VzYWdlXHJcbiAgICAgIG5vZGVzIHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgd2F0Y2hlcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBzdGFyZ2F6ZXJzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgbGFuZ3VhZ2VzKGZpcnN0OiA0KSB7XHJcbiAgICAgICAgICBlZGdlcyB7XHJcbiAgICAgICAgICAgIHNpemVcclxuICAgICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgICAgY29sb3JcclxuICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaXNzdWVzX29wZW46IGlzc3VlcyhzdGF0ZXM6IE9QRU4pIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgaXNzdWVzX2Nsb3NlZDogaXNzdWVzKHN0YXRlczogQ0xPU0VEKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByX29wZW46IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE9QRU4pIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfbWVyZ2VkOiBwdWxsUmVxdWVzdHMoc3RhdGVzOiBNRVJHRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVsZWFzZXMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBmb3JrQ291bnRcclxuICAgICAgICBsaWNlbnNlSW5mbyB7XHJcbiAgICAgICAgICBzcGR4SWRcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHBhY2thZ2VzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3RhcnJlZFJlcG9zaXRvcmllcyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHdhdGNoaW5nIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3BvbnNvcnNoaXBzQXNTcG9uc29yIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3BvbnNvcnNoaXBzQXNNYWludGFpbmVyIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgY29udHJpYnV0aW9uc0NvbGxlY3Rpb24ge1xyXG4gICAgICB0b3RhbFJlcG9zaXRvcmllc1dpdGhDb250cmlidXRlZENvbW1pdHNcclxuICAgICAgdG90YWxDb21taXRDb250cmlidXRpb25zXHJcbiAgICAgIHJlc3RyaWN0ZWRDb250cmlidXRpb25zQ291bnRcclxuICAgICAgdG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnNcclxuICAgICAgdG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnNcclxuICAgICAgdG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnNcclxuICAgIH1cclxuICAgIGNhbGVuZGFyOmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uKGZyb206ICRjYWxlbmRhci5mcm9tLCB0bzogJGNhbGVuZGFyLnRvKSB7XHJcbiAgICAgIGNvbnRyaWJ1dGlvbkNhbGVuZGFyIHtcclxuICAgICAgICB3ZWVrcyB7XHJcbiAgICAgICAgICBjb250cmlidXRpb25EYXlzIHtcclxuICAgICAgICAgICAgY29sb3JcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8ge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBmb2xsb3dlcnMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBmb2xsb3dpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBpc3N1ZUNvbW1lbnRzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgb3JnYW5pemF0aW9ucyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiaW1hZ2UiOiI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ4MFwiIGhlaWdodD1cIjwlPSAxMlxyXG4gICsgKCEhYmFzZS5oZWFkZXIpKjgwXHJcbiAgKyAoISFiYXNlLm1ldGFkYXRhKSozOFxyXG4gICsgKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKjEyOFxyXG4gICsgKCEhYmFzZS5yZXBvc2l0b3JpZXMpKjEwOFxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooKCEhcGx1Z2lucy50cmFmZmljKXx8KCEhcGx1Z2lucy5saW5lcykpKSoxNlxyXG4gICsgKCEhcGx1Z2lucy5mb2xsb3d1cCkqNjhcclxuICArICghIXBsdWdpbnMucGFnZXNwZWVkKSoxMjYgKyAocGx1Z2lucy5wYWdlc3BlZWQ/LmRldGFpbGVkID8/IDApKjYqMjBcclxuICArICghIXBsdWdpbnMuaGFiaXRzKSo2OFxyXG4gICsgKCEhcGx1Z2lucy5sYW5ndWFnZXMpKjk2XHJcbiAgKyAoISFwbHVnaW5zLm11c2ljKSo2NCArIChwbHVnaW5zLm11c2ljPy50cmFja3M/Lmxlbmd0aCA/IDE0K01hdGgubWF4KDAsIHBsdWdpbnMubXVzaWMudHJhY2tzLmxlbmd0aC0xKSozNiA6IDApXHJcbiAgKyAoISFwbHVnaW5zLnBvc3RzKSo2NCArIChwbHVnaW5zLnBvc3RzPy5saXN0Py5sZW5ndGggPz8gMCkqNDBcclxuICArICghIXBsdWdpbnMuaXNvY2FsZW5kYXIpKjE5MiArIChwbHVnaW5zLmlzb2NhbGVuZGFyPy5kdXJhdGlvbiA9PT0gJ2Z1bGwteWVhcicpKjEwMFxyXG4gICsgKCEhcGx1Z2lucy5naXN0cykqNjhcclxuICArICghIXBsdWdpbnMudG9waWNzKSoxNjBcclxuICArICghIXBsdWdpbnMucHJvamVjdHMpKjIyICsgKHBsdWdpbnMucHJvamVjdHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo2MFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoKCEhcGx1Z2lucy5oYWJpdHMpKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKyghIXBsdWdpbnMubXVzaWMpKyghIXBsdWdpbnMucG9zdHMpKyghIXBsdWdpbnMuaXNvY2FsZW5kYXIpKyghIXBsdWdpbnMuZ2lzdHMpKyghIXBsdWdpbnMudG9waWNzKSsoISFwbHVnaW5zLnByb2plY3RzKSktMSkpKjRcclxuJT5cIj5cclxuXHJcbiAgPGRlZnM+PHN0eWxlPjwlPSBmb250cyAlPjwvc3R5bGU+PC9kZWZzPlxyXG5cclxuICA8c3R5bGU+XHJcbiAgICA8JT0gc3R5bGUgJT5cclxuICA8L3N0eWxlPlxyXG5cclxuICA8Zm9yZWlnbk9iamVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgPGRpdiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhclwiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gY29tcHV0ZWQuYXZhdGFyICU+XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9zcGFuPlxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHptLjUgNC43NWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAuNDcxLjY5NmwyLjUgMWEuNzUuNzUgMCAwMC41NTctMS4zOTJMOC41IDcuNzQyVjQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgSm9pbmVkIEdpdEh1YiA8JT0gY29tcHV0ZWQucmVnaXN0cmF0aW9uICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNS41IDMuNWEyIDIgMCAxMDAgNCAyIDIgMCAwMDAtNHpNMiA1LjVhMy41IDMuNSAwIDExNS44OTggMi41NDkgNS41MDcgNS41MDcgMCAwMTMuMDM0IDQuMDg0Ljc1Ljc1IDAgMTEtMS40ODIuMjM1IDQuMDAxIDQuMDAxIDAgMDAtNy45IDAgLjc1Ljc1IDAgMDEtMS40ODItLjIzNkE1LjUwNyA1LjUwNyAwIDAxMy4xMDIgOC4wNSAzLjQ5IDMuNDkgMCAwMTIgNS41ek0xMSA0YS43NS43NSAwIDEwMCAxLjUgMS41IDEuNSAwIDAxLjY2NiAyLjg0NC43NS43NSAwIDAwLS40MTYuNjcydi4zNTJhLjc1Ljc1IDAgMDAuNTc0LjczYzEuMi4yODkgMi4xNjIgMS4yIDIuNTIyIDIuMzcyYS43NS43NSAwIDEwMS40MzQtLjQ0IDUuMDEgNS4wMSAwIDAwLTIuNTYtMy4wMTJBMyAzIDAgMDAxMSA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIEZvbGxvd2VkIGJ5IDwlPSB1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50ICU+IHVzZXI8JT0gcyh1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjYWxlbmRhclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA8JT0gY29tcHV0ZWQuY2FsZW5kYXIubGVuZ3RoKjE1ICU+IDExXCIgd2lkdGg9XCI8JT0gY29tcHV0ZWQuY2FsZW5kYXIubGVuZ3RoKjE1ICU+XCIgaGVpZ2h0PVwiMTZcIj5cclxuICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbeCwge2NvbG9yfV0gb2YgT2JqZWN0LmVudHJpZXMoY29tcHV0ZWQuY2FsZW5kYXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz1cImRheVwiIHg9XCI8JT0geCoxNSAlPlwiIHk9XCIwXCIgd2lkdGg9XCIxMVwiIGhlaWdodD1cIjExXCIgZmlsbD1cIjwlPSBjb2xvciAlPlwiIHJ4PVwiMlwiIHJ5PVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xIDIuNUEyLjUgMi41IDAgMDEzLjUgMGg4Ljc1YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAwMS0xLjUgMFYxLjVoLThhMSAxIDAgMDAtMSAxdjYuNzA4QTIuNDkyIDIuNDkyIDAgMDEzLjUgOWgzLjI1YS43NS43NSAwIDAxMCAxLjVIMy41YTEgMSAwIDEwMCAyaDUuNzVhLjc1Ljc1IDAgMDEwIDEuNUgzLjVBMi41IDIuNSAwIDAxMSAxMS41di05em0xMy4yMyA3Ljc5YS43NS43NSAwIDAwMS4wNi0xLjA2bC0yLjUwNS0yLjUwNWEuNzUuNzUgMCAwMC0xLjA2IDBMOS4yMiA5LjIyOWEuNzUuNzUgMCAwMDEuMDYgMS4wNjFsMS4yMjUtMS4yMjR2Ni4xODRhLjc1Ljc1IDAgMDAxLjUgMFY5LjA2NmwxLjIyNCAxLjIyNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBDb250cmlidXRlZCB0byA8JT0gdXNlci5yZXBvc2l0b3JpZXNDb250cmlidXRlZFRvLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXNDb250cmlidXRlZFRvLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8JSBpZiAoYmFzZS5hY3Rpdml0eSkgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxLjc1YS43NS43NSAwIDAwLTEuNSAwdjEyLjVjMCAuNDE0LjMzNi43NS43NS43NWgxNC41YS43NS43NSAwIDAwMC0xLjVIMS41VjEuNzV6bTE0LjI4IDIuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDEwIDcuOTQgNy41MyA1LjQ3YS43NS43NSAwIDAwLTEuMDYgMEwzLjIyIDguNzJhLjc1Ljc1IDAgMDAxLjA2IDEuMDZMNyA3LjA2bDIuNDcgMi40N2EuNzUuNzUgMCAwMDEuMDYgMGw1LjI1LTUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIEFjdGl2aXR5XHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMC41IDcuNzVhMi41IDIuNSAwIDExLTUgMCAyLjUgMi41IDAgMDE1IDB6bTEuNDMuNzVhNC4wMDIgNC4wMDIgMCAwMS03Ljg2IDBILjc1YS43NS43NSAwIDExMC0xLjVoMy4zMmE0LjAwMSA0LjAwMSAwIDAxNy44NiAwaDMuMzJhLjc1Ljc1IDAgMTEwIDEuNWgtMy4zMnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLmNvbW1pdHMgJT4gQ29tbWl0PCU9IHMoY29tcHV0ZWQuY29tbWl0cykgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgMS43NWEuMjUuMjUgMCAwMS4yNS0uMjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1djcuNzM2YS43NS43NSAwIDEwMS41IDBWMS43NUExLjc1IDEuNzUgMCAwMDExLjI1IDBoLTguNUExLjc1IDEuNzUgMCAwMDEgMS43NXYxMS41YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMy4xN2EuNzUuNzUgMCAwMDAtMS41SDIuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek00Ljc1IDRhLjc1Ljc1IDAgMDAwIDEuNWg0LjVhLjc1Ljc1IDAgMDAwLTEuNWgtNC41ek00IDcuNzVBLjc1Ljc1IDAgMDE0Ljc1IDdoMmEuNzUuNzUgMCAwMTAgMS41aC0yQS43NS43NSAwIDAxNCA3Ljc1em0xMS43NzQgMy41MzdhLjc1Ljc1IDAgMDAtMS4wNDgtMS4wNzRMMTAuNyAxNC4xNDUgOS4yODEgMTIuNzJhLjc1Ljc1IDAgMDAtMS4wNjIgMS4wNThsMS45NDMgMS45NWEuNzUuNzUgMCAwMDEuMDU1LjAwOGw0LjU1Ny00LjQ1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9ucyAlPiBQdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zKSAlPiByZXZpZXdlZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuMTc3IDMuMDczTDkuNTczLjY3N0EuMjUuMjUgMCAwMTEwIC44NTR2NC43OTJhLjI1LjI1IDAgMDEtLjQyNy4xNzdMNy4xNzcgMy40MjdhLjI1LjI1IDAgMDEwLS4zNTR6TTMuNzUgMi41YS43NS43NSAwIDEwMCAxLjUuNzUuNzUgMCAwMDAtMS41em0tMi4yNS43NWEyLjI1IDIuMjUgMCAxMTMgMi4xMjJ2NS4yNTZhMi4yNTEgMi4yNTEgMCAxMS0xLjUgMFY1LjM3MkEyLjI1IDIuMjUgMCAwMTEuNSAzLjI1ek0xMSAyLjVoLTFWNGgxYTEgMSAwIDAxMSAxdjUuNjI4YTIuMjUxIDIuMjUxIDAgMTAxLjUgMFY1QTIuNSAyLjUgMCAwMDExIDIuNXptMSAxMC4yNWEuNzUuNzUgMCAxMTEuNSAwIC43NS43NSAwIDAxLTEuNSAwek0zLjc1IDEyYS43NS43NSAwIDEwMCAxLjUuNzUuNzUgMCAwMDAtMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucyAlPiBQdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9ucyAlPiBJc3N1ZTwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMi41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyYS43NS43NSAwIDAxLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDAxLjUzLS4yMmg0LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgyLjc1ek0xIDIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWgxMC41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2Ny41QTEuNzUgMS43NSAwIDAxMTMuMjUgMTJIOS4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTQgMTMuNTQzVjEySDIuNzVBMS43NSAxLjc1IDAgMDExIDEwLjI1di03LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudCAlPiBpc3N1ZSBjb21tZW50PCU9IHModXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8JSBpZiAoYmFzZS5jb21tdW5pdHkpIHsgJT5cclxuICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjMyNiAxLjk3M2ExLjIgMS4yIDAgMDExLjQ5LS44MzJjLjM4Ny4xMTIuOTc3LjMwNyAxLjU3NS42MDIuNTg2LjI5MSAxLjI0My43MSAxLjcgMS4yOTYuMDIyLjAyNy4wNDIuMDU2LjA2MS4wODRBMTMuMjIgMTMuMjIgMCAwMTggM2MuNjcgMCAxLjI4OS4wMzcgMS44NjEuMTA4bC4wNTEtLjA3Yy40NTctLjU4NiAxLjExNC0xLjAwNCAxLjctMS4yOTVhOS42NTQgOS42NTQgMCAwMTEuNTc2LS42MDIgMS4yIDEuMiAwIDAxMS40OS44MzJjLjE0LjQ5My4zNTYgMS4zNDcuNDc5IDIuMjkuMDc5LjYwNC4xMjMgMS4yOC4wNyAxLjkzNi41NDEuOTc3Ljc3MyAyLjExLjc3MyAzLjMwMUMxNiAxMyAxNC41IDE1IDggMTVzLTgtMi04LTUuNWMwLTEuMDM0LjIzOC0yLjEyOC43OTUtMy4xMTctLjA4LS43MTItLjAzNC0xLjQ2LjA1Mi0yLjEyLjEyMi0uOTQzLjM0LTEuNzk3LjQ3OS0yLjI5ek04IDEzLjA2NWM2IDAgNi41LTIgNi00LjI3QzEzLjM2MyA1LjkwNSAxMS4yNSA1IDggNXMtNS4zNjMuOTA0LTYgMy43OTZjLS41IDIuMjcgMCA0LjI3IDYgNC4yN3pcIj48L3BhdGg+PHBhdGggZD1cIk00IDhhMSAxIDAgMDEyIDB2MWExIDEgMCAwMS0yIDBWOHptMi4wNzggMi40OTJjLS4wODMtLjI2NC4xNDYtLjQ5Mi40MjItLjQ5MmgzYy4yNzYgMCAuNTA1LjIyOC40MjIuNDkyQzkuNjcgMTEuMzA0IDguODM0IDEyIDggMTJjLS44MzQgMC0xLjY2OS0uNjk2LTEuOTIyLTEuNTA4ek0xMCA4YTEgMSAwIDExMiAwdjFhMSAxIDAgMTEtMiAwVjh6XCI+PC9wYXRoPjwvc3ZnPiAgICAgICAgICAgICAgQ29tbXVuaXR5IHN0YXRzXHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgMTQuMjVjMCAuMTM4LjExMi4yNS4yNS4yNUg0di0xLjI1YS43NS43NSAwIDAxLjc1LS43NWgyLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS4yNWgyLjI1YS4yNS4yNSAwIDAwLjI1LS4yNVYxLjc1YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTguNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTIuNXpNMS43NSAxNkExLjc1IDEuNzUgMCAwMTAgMTQuMjVWMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDguNUMxMS4yMTYgMCAxMiAuNzg0IDEyIDEuNzV2MTIuNWMwIC4wODUtLjAwNi4xNjgtLjAxOC4yNWgyLjI2OGEuMjUuMjUgMCAwMC4yNS0uMjVWOC4yODVhLjI1LjI1IDAgMDAtLjExMS0uMjA4bC0xLjA1NS0uNzAzYS43NS43NSAwIDExLjgzMi0xLjI0OGwxLjA1NS43MDNjLjQ4Ny4zMjUuNzc5Ljg3MS43NzkgMS40NTZ2NS45NjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNmgtMy41YS43NS43NSAwIDAxLS4xOTctLjAyNmMtLjA5OS4wMTctLjIuMDI2LS4zMDMuMDI2aC0zYS43NS43NSAwIDAxLS43NS0uNzVWMTRoLTF2MS4yNWEuNzUuNzUgMCAwMS0uNzUuNzVoLTN6TTMgMy43NUEuNzUuNzUgMCAwMTMuNzUgM2guNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTMgMy43NXpNMy43NSA2YS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6TTMgOS43NUEuNzUuNzUgMCAwMTMuNzUgOWguNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTMgOS43NXpNNy43NSA5YS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6TTcgNi43NUEuNzUuNzUgMCAwMTcuNzUgNmguNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTcgNi43NXpNNy43NSAzYS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIE1lbWJlciBvZiA8JT0gdXNlci5vcmdhbml6YXRpb25zLnRvdGFsQ291bnQgJT4gb3JnYW5pemF0aW9uPCU9IHModXNlci5vcmdhbml6YXRpb25zLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNS41IDMuNWEyIDIgMCAxMDAgNCAyIDIgMCAwMDAtNHpNMiA1LjVhMy41IDMuNSAwIDExNS44OTggMi41NDkgNS41MDcgNS41MDcgMCAwMTMuMDM0IDQuMDg0Ljc1Ljc1IDAgMTEtMS40ODIuMjM1IDQuMDAxIDQuMDAxIDAgMDAtNy45IDAgLjc1Ljc1IDAgMDEtMS40ODItLjIzNkE1LjUwNyA1LjUwNyAwIDAxMy4xMDIgOC4wNSAzLjQ5IDMuNDkgMCAwMTIgNS41ek0xMSA0YS43NS43NSAwIDEwMCAxLjUgMS41IDEuNSAwIDAxLjY2NiAyLjg0NC43NS43NSAwIDAwLS40MTYuNjcydi4zNTJhLjc1Ljc1IDAgMDAuNTc0LjczYzEuMi4yODkgMi4xNjIgMS4yIDIuNTIyIDIuMzcyYS43NS43NSAwIDEwMS40MzQtLjQ0IDUuMDEgNS4wMSAwIDAwLTIuNTYtMy4wMTJBMyAzIDAgMDAxMSA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBGb2xsb3dpbmcgPCU9IHVzZXIuZm9sbG93aW5nLnRvdGFsQ291bnQgJT4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTY1IDIwLjU2NSAwIDAwOCAxMy4zOTNhMjAuNTYxIDIwLjU2MSAwIDAwMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc1Ljc1IDAgMDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjV6TTggMTQuMjVsLS4zNDUuNjY2LS4wMDItLjAwMS0uMDA2LS4wMDMtLjAxOC0uMDFhNy42NDMgNy42NDMgMCAwMS0uMzEtLjE3IDIyLjA3NSAyMi4wNzUgMCAwMS0zLjQzNC0yLjQxNEMyLjA0NSAxMC43MzEgMCA4LjM1IDAgNS41IDAgMi44MzYgMi4wODYgMSA0LjI1IDEgNS43OTcgMSA3LjE1MyAxLjgwMiA4IDMuMDIgOC44NDcgMS44MDIgMTAuMjAzIDEgMTEuNzUgMSAxMy45MTQgMSAxNiAyLjgzNiAxNiA1LjVjMCAyLjg1LTIuMDQ1IDUuMjMxLTMuODg1IDYuODE4YTIyLjA4IDIyLjA4IDAgMDEtMy43NDQgMi41ODRsLS4wMTguMDEtLjAwNi4wMDNoLS4wMDJMOCAxNC4yNXptMCAwbC4zNDUuNjY2YS43NTIuNzUyIDAgMDEtLjY5IDBMOCAxNC4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgU3BvbnNvcmluZyA8JT0gdXNlci5zcG9uc29yc2hpcHNBc1Nwb25zb3IudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIFN0YXJyZWQgPCU9IHVzZXIuc3RhcnJlZFJlcG9zaXRvcmllcy50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3RhcnJlZFJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjY3OSA3LjkzMmMuNDEyLS42MjEgMS4yNDItMS43NSAyLjM2Ni0yLjcxN0M1LjE3NSA0LjI0MiA2LjUyNyAzLjUgOCAzLjVjMS40NzMgMCAyLjgyNC43NDIgMy45NTUgMS43MTUgMS4xMjQuOTY3IDEuOTU0IDIuMDk2IDIuMzY2IDIuNzE3YS4xMTkuMTE5IDAgMDEwIC4xMzZjLS40MTIuNjIxLTEuMjQyIDEuNzUtMi4zNjYgMi43MTdDMTAuODI1IDExLjc1OCA5LjQ3MyAxMi41IDggMTIuNWMtMS40NzMgMC0yLjgyNC0uNzQyLTMuOTU1LTEuNzE1QzIuOTIgOS44MTggMi4wOSA4LjY5IDEuNjc5IDguMDY4YS4xMTkuMTE5IDAgMDEwLS4xMzZ6TTggMmMtMS45ODEgMC0zLjY3Ljk5Mi00LjkzMyAyLjA3OEMxLjc5NyA1LjE2OS44OCA2LjQyMy40MyA3LjFhMS42MTkgMS42MTkgMCAwMDAgMS43OThjLjQ1LjY3OCAxLjM2NyAxLjkzMiAyLjYzNyAzLjAyNEM0LjMyOSAxMy4wMDggNi4wMTkgMTQgOCAxNGMxLjk4MSAwIDMuNjctLjk5MiA0LjkzMy0yLjA3OCAxLjI3LTEuMDkxIDIuMTg3LTIuMzQ1IDIuNjM3LTMuMDIzYTEuNjE5IDEuNjE5IDAgMDAwLTEuNzk4Yy0uNDUtLjY3OC0xLjM2Ny0xLjkzMi0yLjYzNy0zLjAyM0MxMS42NzEgMi45OTIgOS45ODEgMiA4IDJ6bTAgOGEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgV2F0Y2hpbmcgPCU9IHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8JSB9ICU+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCUgaWYgKGJhc2UucmVwb3NpdG9yaWVzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMiAyLjVBMi41IDIuNSAwIDAxNC41IDBoOC43NWEuNzUuNzUgMCAwMS43NS43NXYxMi41YS43NS43NSAwIDAxLS43NS43NWgtMi41YS43NS43NSAwIDExMC0xLjVoMS43NXYtMmgtOGExIDEgMCAwMC0uNzE0IDEuNy43NS43NSAwIDAxLTEuMDcyIDEuMDVBMi40OTUgMi40OTUgMCAwMTIgMTEuNXYtOXptMTAuNS0xVjloLThjLS4zNTYgMC0uNjk0LjA3NC0xIC4yMDhWMi41YTEgMSAwIDAxMS0xaDh6TTUgMTIuMjV2My4yNWEuMjUuMjUgMCAwMC40LjJsMS40NS0xLjA4N2EuMjUuMjUgMCAwMS4zIDBMOC42IDE1LjdhLjI1LjI1IDAgMDAuNC0uMnYtMy4yNWEuMjUuMjUgMCAwMC0uMjUtLjI1aC0zLjVhLjI1LjI1IDAgMDAtLjI1LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gUmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04Ljc1Ljc1YS43NS43NSAwIDAwLTEuNSAwVjJoLS45ODRjLS4zMDUgMC0uNjA0LjA4LS44NjkuMjNsLTEuMjg4LjczN0EuMjUuMjUgMCAwMTMuOTg0IDNIMS43NWEuNzUuNzUgMCAwMDAgMS41aC40MjhMLjA2NiA5LjE5MmEuNzUuNzUgMCAwMC4xNTQuODM4bC41My0uNTMtLjUzLjUzdi4wMDFsLjAwMi4wMDIuMDAyLjAwMi4wMDYuMDA2LjAxNi4wMTUuMDQ1LjA0YTMuNTE0IDMuNTE0IDAgMDAuNjg2LjQ1QTQuNDkyIDQuNDkyIDAgMDAzIDExYy44OCAwIDEuNTU2LS4yMiAyLjAyMy0uNDU0YTMuNTE1IDMuNTE1IDAgMDAuNjg2LS40NWwuMDQ1LS4wNC4wMTYtLjAxNS4wMDYtLjAwNi4wMDItLjAwMi4wMDEtLjAwMkw1LjI1IDkuNWwuNTMuNTNhLjc1Ljc1IDAgMDAuMTU0LS44MzhMMy44MjIgNC41aC4xNjJjLjMwNSAwIC42MDQtLjA4Ljg2OS0uMjNsMS4yODktLjczN2EuMjUuMjUgMCAwMS4xMjQtLjAzM2guOTg0VjEzaC0yLjVhLjc1Ljc1IDAgMDAwIDEuNWg2LjVhLjc1Ljc1IDAgMDAwLTEuNWgtMi41VjMuNWguOTg0YS4yNS4yNSAwIDAxLjEyNC4wMzNsMS4yOS43MzZjLjI2NC4xNTIuNTYzLjIzMS44NjguMjMxaC4xNjJsLTIuMTEyIDQuNjkyYS43NS43NSAwIDAwLjE1NC44MzhsLjUzLS41My0uNTMuNTN2LjAwMWwuMDAyLjAwMi4wMDIuMDAyLjAwNi4wMDYuMDE2LjAxNS4wNDUuMDRhMy41MTcgMy41MTcgMCAwMC42ODYuNDVBNC40OTIgNC40OTIgMCAwMDEzIDExYy44OCAwIDEuNTU2LS4yMiAyLjAyMy0uNDU0YTMuNTEyIDMuNTEyIDAgMDAuNjg2LS40NWwuMDQ1LS4wNC4wMS0uMDEuMDA2LS4wMDUuMDA2LS4wMDYuMDAyLS4wMDIuMDAxLS4wMDItLjUyOS0uNTMxLjUzLjUzYS43NS43NSAwIDAwLjE1NC0uODM4TDEzLjgyMyA0LjVoLjQyN2EuNzUuNzUgMCAwMDAtMS41aC0yLjIzNGEuMjUuMjUgMCAwMS0uMTI0LS4wMzNsLTEuMjktLjczNkExLjc1IDEuNzUgMCAwMDkuNzM1IDJIOC43NVYuNzV6TTEuNjk1IDkuMjI3Yy4yODUuMTM1LjcxOC4yNzMgMS4zMDUuMjczczEuMDItLjEzOCAxLjMwNS0uMjczTDMgNi4zMjdsLTEuMzA1IDIuOXptMTAgMGMuMjg1LjEzNS43MTguMjczIDEuMzA1LjI3M3MxLjAyLS4xMzggMS4zMDUtLjI3M0wxMyA2LjMyN2wtMS4zMDUgMi45elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgUHJlZmVyIDwlPSBjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZSAlPiBsaWNlbnNlXHJcbiAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICBObyBsaWNlbnNlIHByZWZlcmVuY2VcclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgNy43NzVWMi43NWEuMjUuMjUgMCAwMS4yNS0uMjVoNS4wMjVhLjI1LjI1IDAgMDEuMTc3LjA3M2w2LjI1IDYuMjVhLjI1LjI1IDAgMDEwIC4zNTRsLTUuMDI1IDUuMDI1YS4yNS4yNSAwIDAxLS4zNTQgMGwtNi4yNS02LjI1YS4yNS4yNSAwIDAxLS4wNzMtLjE3N3ptLTEuNSAwVjIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWg1LjAyNWMuNDY0IDAgLjkxLjE4NCAxLjIzOC41MTNsNi4yNSA2LjI1YTEuNzUgMS43NSAwIDAxMCAyLjQ3NGwtNS4wMjYgNS4wMjZhMS43NSAxLjc1IDAgMDEtMi40NzQgMGwtNi4yNS02LjI1QTEuNzUgMS43NSAwIDAxMSA3Ljc3NXpNNiA1YTEgMSAwIDEwMCAyIDEgMSAwIDAwMC0yelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5yZXBvc2l0b3JpZXMucmVsZWFzZXMgJT4gUmVsZWFzZTwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5yZWxlYXNlcykgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04Ljg3OC4zOTJhMS43NSAxLjc1IDAgMDAtMS43NTYgMGwtNS4yNSAzLjA0NUExLjc1IDEuNzUgMCAwMDEgNC45NTF2Ni4wOThjMCAuNjI0LjMzMiAxLjIuODcyIDEuNTE0bDUuMjUgMy4wNDVhMS43NSAxLjc1IDAgMDAxLjc1NiAwbDUuMjUtMy4wNDVjLjU0LS4zMTMuODcyLS44OS44NzItMS41MTRWNC45NTFjMC0uNjI0LS4zMzItMS4yLS44NzItMS41MTRMOC44NzguMzkyek03Ljg3NSAxLjY5YS4yNS4yNSAwIDAxLjI1IDBsNC42MyAyLjY4NUw4IDcuMTMzIDMuMjQ1IDQuMzc1bDQuNjMtMi42ODV6TTIuNSA1LjY3N3Y1LjM3MmMwIC4wOS4wNDcuMTcxLjEyNS4yMTZsNC42MjUgMi42ODNWOC40MzJMMi41IDUuNjc3em02LjI1IDguMjcxbDQuNjI1LTIuNjgzYS4yNS4yNSAwIDAwLjEyNS0uMjE2VjUuNjc3TDguNzUgOC40MzJ2NS41MTZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IHVzZXIucGFja2FnZXMudG90YWxDb3VudCAlPiBQYWNrYWdlPCU9IHModXNlci5wYWNrYWdlcy50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgMy41YzAtLjEzMy4wNTgtLjMxOC4yODItLjU1LjIyNy0uMjM3LjU5Mi0uNDg0IDEuMS0uNzA4QzQuODk5IDEuNzk1IDYuMzU0IDEuNSA4IDEuNWMxLjY0NyAwIDMuMTAyLjI5NSA0LjExNy43NDIuNTEuMjI0Ljg3NC40NyAxLjEwMS43MDcuMjI0LjIzMy4yODIuNDE4LjI4Mi41NTEgMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgNS4yMDUgOS42NDYgNS41IDggNS41Yy0xLjY0NyAwLTMuMTAyLS4yOTUtNC4xMTctLjc0Mi0uNTEtLjIyNC0uODc0LS40Ny0xLjEwMS0uNzA3LS4yMjQtLjIzMy0uMjgyLS40MTgtLjI4Mi0uNTUxek0xIDMuNWMwLS42MjYuMjkyLTEuMTY1LjctMS41OS40MDYtLjQyMi45NTYtLjc2NyAxLjU3OS0xLjA0MUM0LjUyNS4zMiA2LjE5NSAwIDggMGMxLjgwNSAwIDMuNDc1LjMyIDQuNzIyLjg2OS42MjIuMjc0IDEuMTcyLjYyIDEuNTc4IDEuMDQuNDA4LjQyNi43Ljk2NS43IDEuNTkxdjljMCAuNjI2LS4yOTIgMS4xNjUtLjcgMS41OS0uNDA2LjQyMi0uOTU2Ljc2Ny0xLjU3OSAxLjA0MUMxMS40NzYgMTUuNjggOS44MDYgMTYgOCAxNmMtMS44MDUgMC0zLjQ3NS0uMzItNC43MjEtLjg2OS0uNjIzLS4yNzQtMS4xNzMtLjYyLTEuNTc5LTEuMDQtLjQwOC0uNDI2LS43LS45NjUtLjctMS41OTF2LTl6TTIuNSA4VjUuNzI0Yy4yNDEuMTUuNTAzLjI4Ni43NzkuNDA3QzQuNTI1IDYuNjggNi4xOTUgNyA4IDdjMS44MDUgMCAzLjQ3NS0uMzIgNC43MjItLjg2OS4yNzUtLjEyMS41MzctLjI1Ny43NzgtLjQwN1Y4YzAgLjEzMy0uMDU4LjMxOC0uMjgyLjU1LS4yMjcuMjM3LS41OTIuNDg0LTEuMS43MDhDMTEuMTAxIDkuNzA1IDkuNjQ2IDEwIDggMTBjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDdDMi41NTggOC4zMTggMi41IDguMTMzIDIuNSA4em0wIDIuMjI1VjEyLjVjMCAuMTMzLjA1OC4zMTguMjgyLjU1LjIyNy4yMzcuNTkyLjQ4NCAxLjEuNzA4IDEuMDE2LjQ0NyAyLjQ3MS43NDIgNC4xMTguNzQyIDEuNjQ3IDAgMy4xMDItLjI5NSA0LjExNy0uNzQyLjUxLS4yMjQuODc0LS40NyAxLjEwMS0uNzA3LjIyNC0uMjMzLjI4Mi0uNDE4LjI4Mi0uNTUxdi0yLjI3NWMtLjI0MS4xNS0uNTAzLjI4NS0uNzc4LjQwNi0xLjI0Ny41NDktMi45MTcuODY5LTQuNzIyLjg2OS0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5YTYuMjM2IDYuMjM2IDAgMDEtLjc3OS0uNDA2elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5kaXNrVXNhZ2UgJT4gdXNlZFxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxpbmVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy5saW5lcy5lcnJvciA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTIuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjQuNjY0YS4yNS4yNSAwIDAwLS4wNzMtLjE3N2wtMi45MTQtMi45MTRhLjI1LjI1IDAgMDAtLjE3Ny0uMDczSDIuNzV6TTEgMS43NUMxIC43ODQgMS43ODQgMCAyLjc1IDBoNy41ODZjLjQ2NCAwIC45MDkuMTg0IDEuMjM3LjUxM2wyLjkxNCAyLjkxNGMuMzI5LjMyOC41MTMuNzczLjUxMyAxLjIzN3Y5LjU4NkExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjEuNzV6bTcgMS41YS43NS43NSAwIDAxLjc1Ljc1djEuNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41djEuNWEuNzUuNzUgMCAwMS0xLjUgMFY3aC0xLjVhLjc1Ljc1IDAgMDEwLTEuNWgxLjVWNEEuNzUuNzUgMCAwMTggMy4yNXptLTMgOGEuNzUuNzUgMCAwMS43NS0uNzVoNC41YS43NS43NSAwIDAxMCAxLjVoLTQuNWEuNzUuNzUgMCAwMS0uNzUtLjc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5saW5lcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGluZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5saW5lcy5hZGRlZCAlPiBhZGRlZCwgPCU9IHBsdWdpbnMubGluZXMuZGVsZXRlZCAlPiByZW1vdmVkXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTY1IDIwLjU2NSAwIDAwOCAxMy4zOTNhMjAuNTYxIDIwLjU2MSAwIDAwMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc1Ljc1IDAgMDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjV6TTggMTQuMjVsLS4zNDUuNjY2LS4wMDItLjAwMS0uMDA2LS4wMDMtLjAxOC0uMDFhNy42NDMgNy42NDMgMCAwMS0uMzEtLjE3IDIyLjA3NSAyMi4wNzUgMCAwMS0zLjQzNC0yLjQxNEMyLjA0NSAxMC43MzEgMCA4LjM1IDAgNS41IDAgMi44MzYgMi4wODYgMSA0LjI1IDEgNS43OTcgMSA3LjE1MyAxLjgwMiA4IDMuMDIgOC44NDcgMS44MDIgMTAuMjAzIDEgMTEuNzUgMSAxMy45MTQgMSAxNiAyLjgzNiAxNiA1LjVjMCAyLjg1LTIuMDQ1IDUuMjMxLTMuODg1IDYuODE4YTIyLjA4IDIyLjA4IDAgMDEtMy43NDQgMi41ODRsLS4wMTguMDEtLjAwNi4wMDNoLS4wMDJMOCAxNC4yNXptMCAwbC4zNDUuNjY2YS43NTIuNzUyIDAgMDEtLjY5IDBMOCAxNC4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gdXNlci5zcG9uc29yc2hpcHNBc01haW50YWluZXIudG90YWxDb3VudCAlPiBTcG9uc29yPCU9IHModXNlci5zcG9uc29yc2hpcHNBc01haW50YWluZXIudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzICU+IFN0YXJnYXplcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUgMy4yNWEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0wIDIuMTIyYTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhBMi4yNSAyLjI1IDAgMDA1Ljc1IDguNWgxLjV2Mi4xMjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjguNWgxLjVhMi4yNSAyLjI1IDAgMDAyLjI1LTIuMjV2LS44NzhhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OGEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNUEuNzUuNzUgMCAwMTUgNi4yNXYtLjg3OHptMy43NSA3LjM3OGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0zLTguNzVhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5mb3JrcyAlPiBGb3JrPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLmZvcmtzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjc5IDcuOTMyYy40MTItLjYyMSAxLjI0Mi0xLjc1IDIuMzY2LTIuNzE3QzUuMTc1IDQuMjQyIDYuNTI3IDMuNSA4IDMuNWMxLjQ3MyAwIDIuODI0Ljc0MiAzLjk1NSAxLjcxNSAxLjEyNC45NjcgMS45NTQgMi4wOTYgMi4zNjYgMi43MTdhLjExOS4xMTkgMCAwMTAgLjEzNmMtLjQxMi42MjEtMS4yNDIgMS43NS0yLjM2NiAyLjcxN0MxMC44MjUgMTEuNzU4IDkuNDczIDEyLjUgOCAxMi41Yy0xLjQ3MyAwLTIuODI0LS43NDItMy45NTUtMS43MTVDMi45MiA5LjgxOCAyLjA5IDguNjkgMS42NzkgOC4wNjhhLjExOS4xMTkgMCAwMTAtLjEzNnpNOCAyYy0xLjk4MSAwLTMuNjcuOTkyLTQuOTMzIDIuMDc4QzEuNzk3IDUuMTY5Ljg4IDYuNDIzLjQzIDcuMWExLjYxOSAxLjYxOSAwIDAwMCAxLjc5OGMuNDUuNjc4IDEuMzY3IDEuOTMyIDIuNjM3IDMuMDI0QzQuMzI5IDEzLjAwOCA2LjAxOSAxNCA4IDE0YzEuOTgxIDAgMy42Ny0uOTkyIDQuOTMzLTIuMDc4IDEuMjctMS4wOTEgMi4xODctMi4zNDUgMi42MzctMy4wMjNhMS42MTkgMS42MTkgMCAwMDAtMS43OThjLS40NS0uNjc4LTEuMzY3LTEuOTMyLTIuNjM3LTMuMDIzQzExLjY3MSAyLjk5MiA5Ljk4MSAyIDggMnptMCA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMgJT4gV2F0Y2hlcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycykgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50cmFmZmljKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMS43NUEuNzUuNzUgMCAwMS43NSAxaDQuMjUzYzEuMjI3IDAgMi4zMTcuNTkgMyAxLjUwMUEzLjc0NCAzLjc0NCAwIDAxMTEuMDA2IDFoNC4yNDVhLjc1Ljc1IDAgMDEuNzUuNzV2MTAuNWEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNTA3YTIuMjUgMi4yNSAwIDAwLTEuNTkxLjY1OWwtLjYyMi42MjFhLjc1Ljc1IDAgMDEtMS4wNiAwbC0uNjIyLS42MjFBMi4yNSAyLjI1IDAgMDA1LjI1OCAxM0guNzVhLjc1Ljc1IDAgMDEtLjc1LS43NVYxLjc1em04Ljc1NSAzYTIuMjUgMi4yNSAwIDAxMi4yNS0yLjI1SDE0LjV2OWgtMy43NTdjLS43MSAwLTEuNC4yMDEtMS45OTIuNTcybC4wMDQtNy4zMjJ6bS0xLjUwNCA3LjMyNGwuMDA0LTUuMDczLS4wMDItMi4yNTNBMi4yNSAyLjI1IDAgMDA1LjAwMyAyLjVIMS41djloMy43NTdhMy43NSAzLjc1IDAgMDExLjk5NC41NzR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy50cmFmZmljLnZpZXdzLmNvdW50ICU+IHZpZXc8JT0gcyhwbHVnaW5zLnRyYWZmaWMudmlld3MuY291bnQpICU+IGluIGxhc3QgdHdvIHdlZWtzXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXApIHsgJT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcblxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgPGgzPklzc3VlczwvaDM+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJpc3N1ZXMtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSBwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudCA/IDAgOiAyMjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2Q3M2E0OVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzI4YTc0NVwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaG9yaXpvbnRhbCBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiI2Q3M2E0OVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAwMTEwLjY1LTUuMDAzLjc1Ljc1IDAgMDAuOTU5LTEuMTUzIDggOCAwIDEwMi41OTIgOC4zMy43NS43NSAwIDEwLTEuNDQ0LS40MDdBNi41IDYuNSAwIDAxMS41IDh6TTggMTJhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6bTAtOGEuNzUuNzUgMCAwMS43NS43NXYzLjVhLjc1Ljc1IDAgMTEtMS41IDB2LTMuNUEuNzUuNzUgMCAwMTggNHptNC43OCA0LjI4bDMtM2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTIuNDcgMi40Ny0uOTctLjk3YS43NDkuNzQ5IDAgMTAtMS4wNiAxLjA2bDEuNSAxLjVhLjc1Ljc1IDAgMDAxLjA2IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkICU+IENsb3NlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby13cmFwXCI+PCU9IHBsdWdpbnMuZm9sbG93dXAuaXNzdWVzLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgPGgzPlB1bGwgcmVxdWVzdHM8L2gzPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cC5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImJhclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIj5cclxuICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHItYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMuZm9sbG93dXAucHIuY291bnQgPyAwIDogMjIwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHItYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiM2ZjQyYzFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9ICgxLXBsdWdpbnMuZm9sbG93dXAucHIubWVyZ2VkL3BsdWdpbnMuZm9sbG93dXAucHIuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjNmY0MmMxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNSAzLjI1NFYzLjI1di4wMDVhLjc1Ljc1IDAgMTEwLS4wMDV2LjAwNHptLjQ1IDEuOWEyLjI1IDIuMjUgMCAxMC0xLjk1LjIxOHY1LjI1NmEyLjI1IDIuMjUgMCAxMDEuNSAwVjcuMTIzQTUuNzM1IDUuNzM1IDAgMDA5LjI1IDloMS4zNzhhMi4yNTEgMi4yNTEgMCAxMDAtMS41SDkuMjVhNC4yNSA0LjI1IDAgMDEtMy44LTIuMzQ2ek0xMi43NSA5YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41em0tOC41IDQuNWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZCAlPiBNZXJnZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjMjhhNzQ1XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5wci5vcGVuICU+IE9wZW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgIDxoMz5Nb3N0IHVzZWQgbGFuZ3VhZ2VzPC9oMz5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImJhclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIj5cclxuICAgICAgICAgICAgICA8bWFzayBpZD1cImxhbmd1YWdlcy1iYXJcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2xhbmd1YWdlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmZhdm9yaXRlcy5sZW5ndGggPyAwIDogNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHZhbHVlLCBjb2xvciwgeH0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNsYW5ndWFnZXMtYmFyKVwiIHg9XCI8JT0geCo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHZhbHVlKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIvPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXIgaG9yaXpvbnRhbC13cmFwIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZSwgY29sb3J9IG9mIHBsdWdpbnMubGFuZ3VhZ2VzLmZhdm9yaXRlcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBuby13cmFwIGxhbmd1YWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiPCU9IGNvbG9yICU+XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IG5hbWUgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMEExLjc1IDEuNzUgMCAwMDAgMS43NXYxMi41QzAgMTUuMjE2Ljc4NCAxNiAxLjc1IDE2aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxNC4yNVYxLjc1QTEuNzUgMS43NSAwIDAwMTQuMjUgMEgxLjc1ek0xLjUgMS43NWEuMjUuMjUgMCAwMS4yNS0uMjVoMTIuNWEuMjUuMjUgMCAwMS4yNS4yNXYxMi41YS4yNS4yNSAwIDAxLS4yNS4yNUgxLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNMTEuNzUgM2EuNzUuNzUgMCAwMC0uNzUuNzV2Ny41YS43NS43NSAwIDAwMS41IDB2LTcuNWEuNzUuNzUgMCAwMC0uNzUtLjc1em0tOC4yNS43NWEuNzUuNzUgMCAwMTEuNSAwdjUuNWEuNzUuNzUgMCAwMS0xLjUgMHYtNS41ek04IDNhLjc1Ljc1IDAgMDAtLjc1Ljc1djMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjVBLjc1Ljc1IDAgMDA4IDN6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5wcm9qZWN0cy50b3RhbENvdW50ICU+IFByb2plY3Q8JT0gcyhwbHVnaW5zLnByb2plY3RzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wcm9qZWN0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB1cGRhdGVkLCBwcm9ncmVzc30gb2YgcGx1Z2lucy5wcm9qZWN0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0wIDMuNzVDMCAyLjc4NC43ODQgMiAxLjc1IDJoMTIuNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djguNUExLjc1IDEuNzUgMCAwMTE0LjI1IDE0SDEuNzVBMS43NSAxLjc1IDAgMDEwIDEyLjI1di04LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY4LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOC41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMy41IDYuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDdhLjc1Ljc1IDAgMDEwIDEuNWgtN2EuNzUuNzUgMCAwMS0uNzUtLjc1em0uNzUgMi4yNWEuNzUuNzUgMCAwMDAgMS41aDRhLjc1Ljc1IDAgMDAwLTEuNWgtNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBuYW1lICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTggMGE4IDggMCAxMDAgMTZBOCA4IDAgMDA4IDB6bS41IDQuNzVhLjc1Ljc1IDAgMDAtMS41IDB2My41YS43NS43NSAwIDAwLjQ3MS42OTZsMi41IDFhLjc1Ljc1IDAgMDAuNTU3LTEuMzkyTDguNSA3Ljc0MlY0Ljc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlZCA8JT0gdXBkYXRlZCAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwcm9ncmVzcy5lbmFibGVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjV2Ny43MzZhLjc1Ljc1IDAgMTAxLjUgMFYxLjc1QTEuNzUgMS43NSAwIDAwMTEuMjUgMGgtOC41QTEuNzUgMS43NSAwIDAwMSAxLjc1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgzLjE3YS43NS43NSAwIDAwMC0xLjVIMi43NWEuMjUuMjUgMCAwMS0uMjUtLjI1VjEuNzV6TTQuNzUgNGEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6TTQgNy43NUEuNzUuNzUgMCAwMTQuNzUgN2gyYS43NS43NSAwIDAxMCAxLjVoLTJBLjc1Ljc1IDAgMDE0IDcuNzV6bTExLjc3NCAzLjUzN2EuNzUuNzUgMCAwMC0xLjA0OC0xLjA3NEwxMC43IDE0LjE0NSA5LjI4MSAxMi43MmEuNzUuNzUgMCAwMC0xLjA2MiAxLjA1OGwxLjk0MyAxLjk1YS43NS43NSAwIDAwMS4wNTUuMDA4bDQuNTU3LTQuNDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBbcHJvZ3Jlc3MuZG9uZSA/IGAke3Byb2dyZXNzLmRvbmV9IGRvbmVgIDogXCJcIiwgcHJvZ3Jlc3MuZG9pbmcgPyBgJHtwcm9ncmVzcy5kb2luZ30gZG9pbmdgIDogXCJcIiwgcHJvZ3Jlc3MudG9kbyA/IGAke3Byb2dyZXNzLnRvZG99IHRvZG9gIDogXCJcIl0uZmlsdGVyKHN0ciA9PiBzdHIpLmpvaW4oXCIgwrcgXCIpICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwcm9ncmVzcy5lbmFibGVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBob3Jpem9udGFsLXdyYXAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD1cInByb2plY3QtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLmRvbmUvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzI4QTc0NVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9pbmcvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzZGNDJDMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAoKHByb2dyZXNzLmRvbmUrcHJvZ3Jlc3MuZG9pbmcpL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy50b2RvL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5naXN0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTIuNWEuMjUuMjUgMCAwMC4yNS0uMjVWMS43NWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djEyLjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNkgxLjc1QTEuNzUgMS43NSAwIDAxMCAxNC4yNVYxLjc1em05LjIyIDMuNzJhLjc1Ljc1IDAgMDAwIDEuMDZMMTAuNjkgOCA5LjIyIDkuNDdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZsMi0yYS43NS43NSAwIDAwMC0xLjA2bC0yLTJhLjc1Ljc1IDAgMDAtMS4wNiAwek02Ljc4IDYuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0yIDJhLjc1Ljc1IDAgMDAwIDEuMDZsMiAyYS43NS43NSAwIDEwMS4wNi0xLjA2TDUuMzEgOGwxLjQ3LTEuNDd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy50b3RhbENvdW50ICU+IEdpc3Q8JT0gcyhwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5naXN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMgJT4gU3RhcmdhemVyPCU9IHMocGx1Z2lucy5naXN0cy5zdGFyZ2F6ZXJzKSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+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+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8JSB9ICU+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41Yy0yLjM2MyAwLTQgMS42OS00IDMuNzUgMCAuOTg0LjQyNCAxLjYyNS45ODQgMi4zMDRsLjIxNC4yNTNjLjIyMy4yNjQuNDcuNTU2LjY3My44NDguMjg0LjQxMS41MzcuODk2LjYyMSAxLjQ5YS43NS43NSAwIDAxLTEuNDg0LjIxMWMtLjA0LS4yODItLjE2My0uNTQ3LS4zNy0uODQ3YTguNjk1IDguNjk1IDAgMDAtLjU0Mi0uNjhjLS4wODQtLjEtLjE3My0uMjA1LS4yNjgtLjMyQzMuMjAxIDcuNzUgMi41IDYuNzY2IDIuNSA1LjI1IDIuNSAyLjMxIDQuODYzIDAgOCAwczUuNSAyLjMxIDUuNSA1LjI1YzAgMS41MTYtLjcwMSAyLjUtMS4zMjggMy4yNTktLjA5NS4xMTUtLjE4NC4yMi0uMjY4LjMxOS0uMjA3LjI0NS0uMzgzLjQ1My0uNTQxLjY4MS0uMjA4LjMtLjMzLjU2NS0uMzcuODQ3YS43NS43NSAwIDAxLTEuNDg1LS4yMTJjLjA4NC0uNTkzLjMzNy0xLjA3OC42MjEtMS40ODkuMjAzLS4yOTIuNDUtLjU4NC42NzMtLjg0OC4wNzUtLjA4OC4xNDctLjE3My4yMTMtLjI1My41NjEtLjY3OS45ODUtMS4zMi45ODUtMi4zMDQgMC0yLjA2LTEuNjM3LTMuNzUtNC0zLjc1ek02IDE1LjI1YS43NS43NSAwIDAxLjc1LS43NWgyLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMi41YS43NS43NSAwIDAxLS43NS0uNzV6TTUuNzUgMTJhLjc1Ljc1IDAgMDAwIDEuNWg0LjVhLjc1Ljc1IDAgMDAwLTEuNWgtNC41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgQ29kaW5nIGhhYml0c1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmhhYml0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiaGFiaXRzXCI+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5oYWJpdHMuaW5kZW50cy5zdHlsZSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+VXNlIDwlPSBwbHVnaW5zLmhhYml0cy5pbmRlbnRzLnN0eWxlICU+IGZvciBpbmRlbnRzPC9saT5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIGlmICghTnVtYmVyLmlzTmFOKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuaG91cikpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGxpPk1vc3RseSBwdXNoIGNvZGUgYXJvdW5kIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIgJT46MDA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMudG9waWNzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQuMTg0IDEuMTQzYTEuNzUgMS43NSAwIDAwLTIuNTAyLS41N0wuOTEyIDcuOTE2YTEuNzUgMS43NSAwIDAwLS41MyAyLjMybC40NDcuNzc1YTEuNzUgMS43NSAwIDAwMi4yNzUuNzAybDExLjc0NS01LjY1NmExLjc1IDEuNzUgMCAwMC43NTctMi40NTFsLTEuNDIyLTIuNDY0em0tMS42NTcuNjY5YS4yNS4yNSAwIDAxLjM1OC4wODFsMS40MjIgMi40NjRhLjI1LjI1IDAgMDEtLjEwOC4zNWwtMi4wMTYuOTctMS41MDUtMi42MDUgMS44NS0xLjI2ek05LjQzNiAzLjkybDEuMzkxIDIuNDEtNS40MiAyLjYxLS45NDItMS42MyA0Ljk3LTMuMzl6TTMuMjIyIDguMTU3bC0xLjQ2NiAxYS4yNS4yNSAwIDAwLS4wNzUuMzNsLjQ0Ny43NzVhLjI1LjI1IDAgMDAuMzI1LjFsMS41OTgtLjc2OS0uODMtMS40MzZ6bTYuMjUzIDIuMzA2YS43NS43NSAwIDAwLS45NDQtLjI1MmwtMS44MDkuODdhLjc1Ljc1IDAgMDAtLjI5My4yNTNMNC4zOCAxNC4zMjZhLjc1Ljc1IDAgMTAxLjIzOC44NDhsMS44ODEtMi43NXYyLjgyNmEuNzUuNzUgMCAwMDEuNSAwdi0yLjgyNmwxLjg4MSAyLjc1YS43NS43NSAwIDAwMS4yMzgtLjg0OGwtMi42NDQtMy44NjN6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBTdGFycmVkIHRvcGljc1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudG9waWNzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRvcGljcy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9waWNzIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgZGVzY3JpcHRpb259IG9mIHBsdWdpbnMudG9waWNzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0aXRsZT1cIjwlPSBkZXNjcmlwdGlvbiAlPlwiPjwlPSBuYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHpNNi4zNzkgNS4yMjdBLjI1LjI1IDAgMDA2IDUuNDQydjUuMTE3YS4yNS4yNSAwIDAwLjM3OS4yMTRsNC4yNjQtMi41NTlhLjI1LjI1IDAgMDAwLS40MjhMNi4zNzkgNS4yMjd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5tdXNpYy5tb2RlICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljLnByb3ZpZGVyKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMDAyIDIuNzI1YS43NS43NSAwIDAxLjc5Ny0uNjk5QzguNzkgMi40MiAxMy41OCA3LjIxIDEzLjk3NCAxMy4yMDFhLjc1Ljc1IDAgMTEtMS40OTcuMDk4IDEwLjUwMiAxMC41MDIgMCAwMC05Ljc3Ni05Ljc3Ni43NS43NSAwIDAxLS43LS43OTh6TTIgMTNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem0uODQtNS45NWEuNzUuNzUgMCAwMC0uMTc5IDEuNDg5YzIuNTA5LjMgNC41IDIuMjkxIDQuOCA0LjhhLjc1Ljc1IDAgMTAxLjQ5LS4xNzhBNy4wMDMgNy4wMDMgMCAwMDIuODM4IDcuMDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBGcm9tIDwlPSBwbHVnaW5zLm11c2ljLnByb3ZpZGVyICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubXVzaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljLnRyYWNrcy5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWNrbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUgPSBcIlwiLCBhcnRpc3QgPSBcIlwiLCBhcnR3b3JrID0gXCJcIn0gb2YgcGx1Z2lucy5tdXNpYy50cmFja3MpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gYXJ0d29yayAlPlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIGFsdD1cIlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj48JT0gbmFtZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcnRpc3RcIj48JT0gYXJ0aXN0ICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBObyBtdXNpYyByZWNlbnRseSBsaXN0ZW5lZFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMucG9zdHMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjQ1Ni43MzRhMS43NSAxLjc1IDAgMDEyLjgyNi41MDRsLjYxMyAxLjMyN2EzLjA4MSAzLjA4MSAwIDAwMi4wODQgMS43MDdsMi40NTQuNTg0YzEuMzMyLjMxNyAxLjggMS45NzIuODMyIDIuOTRMMTEuMDYgMTBsMy43MiAzLjcyYS43NS43NSAwIDExLTEuMDYxIDEuMDZMMTAgMTEuMDZsLTIuMjA0IDIuMjA1Yy0uOTY4Ljk2OC0yLjYyMy41LTIuOTQtLjgzMmwtLjU4NC0yLjQ1NGEzLjA4MSAzLjA4MSAwIDAwLTEuNzA3LTIuMDg0bC0xLjMyNy0uNjEzYTEuNzUgMS43NSAwIDAxLS41MDQtMi44MjZMNC40NTYuNzM0ek01LjkyIDEuODY2YS4yNS4yNSAwIDAwLS40MDQtLjA3MkwxLjc5NCA1LjUxNmEuMjUuMjUgMCAwMC4wNzIuNDA0bDEuMzI4LjYxM0E0LjU4MiA0LjU4MiAwIDAxNS43MyA5LjYzbC41ODQgMi40NTRhLjI1LjI1IDAgMDAuNDIuMTJsNS40Ny01LjQ3YS4yNS4yNSAwIDAwLS4xMi0uNDJMOS42MyA1LjczYTQuNTgxIDQuNTgxIDAgMDEtMy4wOTgtMi41MzdMNS45MiAxLjg2NnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIFJlY2VudCBhcnRpY2xlc1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wb3N0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjAwMiAyLjcyNWEuNzUuNzUgMCAwMS43OTctLjY5OUM4Ljc5IDIuNDIgMTMuNTggNy4yMSAxMy45NzQgMTMuMjAxYS43NS43NSAwIDExLTEuNDk3LjA5OCAxMC41MDIgMTAuNTAyIDAgMDAtOS43NzYtOS43NzYuNzUuNzUgMCAwMS0uNy0uNzk4ek0yIDEzYTEgMSAwIDExMiAwIDEgMSAwIDAxLTIgMHptLjg0LTUuOTVhLjc1Ljc1IDAgMDAtLjE3OSAxLjQ4OWMyLjUwOS4zIDQuNSAyLjI5MSA0LjggNC44YS43NS43NSAwIDEwMS40OS0uMTc4QTcuMDAzIDcuMDAzIDAgMDAyLjgzOCA3LjA1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgRnJvbSA8JT0gcGx1Z2lucy5wb3N0cy5zb3VyY2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMucG9zdHMubGlzdC5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7dGl0bGUsIGRhdGV9IG9mIHBsdWdpbnMucG9zdHMubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBwb3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC43NSAwYS43NS43NSAwIDAxLjc1Ljc1VjJoNVYuNzVhLjc1Ljc1IDAgMDExLjUgMFYyaDEuMjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMC41QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMy43NUMxIDIuNzg0IDEuNzg0IDIgMi43NSAySDRWLjc1QS43NS43NSAwIDAxNC43NSAwem0wIDMuNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjVWNmgtMTFWMy43NWEuMjUuMjUgMCAwMS4yNS0uMjVoMnptLTIuMjUgNHY2Ljc1YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNy41aC0xMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj48JT0gZGF0ZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj48JT0gdGl0bGUgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djkuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDYuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTkuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djkuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDEzSDguMDZsLTIuNTczIDIuNTczQTEuNDU3IDEuNDU3IDAgMDEzIDE0LjU0M1YxM0gxLjc1QTEuNzUgMS43NSAwIDAxMCAxMS4yNXYtOS41ek05IDlhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tLjI1LTUuMjVhLjc1Ljc1IDAgMDAtMS41IDB2Mi41YS43NS43NSAwIDAwMS41IDB2LTIuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgTm8gcmVjZW50IHBvc3RzXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNzUgMGEuNzUuNzUgMCAwMS43NS43NVYyaDVWLjc1YS43NS43NSAwIDAxMS41IDBWMmgxLjI1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTAuNUExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjMuNzVDMSAyLjc4NCAxLjc4NCAyIDIuNzUgMkg0Vi43NUEuNzUuNzUgMCAwMTQuNzUgMHptMCAzLjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1VjZoLTExVjMuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDJ6bS0yLjI1IDR2Ni43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjcuNWgtMTF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb250cmlidXRpb25zIGNhbGVuZGFyXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhci5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5pc29jYWxlbmRhci5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgaWYgKCFwbHVnaW5zLmlzb2NhbGVuZGFyLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuOTk4IDE0LjVjMi44MzIgMCA1LTEuOTggNS00LjUgMC0xLjQ2My0uNjgtMi4xOS0xLjg3OS0zLjM4M2wtLjAzNi0uMDM3Yy0xLjAxMy0xLjAwOC0yLjMtMi4yOS0yLjgzNC00LjQzNC0uMzIyLjI1Ni0uNjMuNTc5LS44NjQuOTUzLS40MzIuNjk2LS42MjEgMS41OC0uMDQ2IDIuNzMuNDczLjk0Ny42NyAyLjI4NC0uMjc4IDMuMjMyLS42MS42MS0xLjU0NS44NC0yLjQwMy42MzNhMi43ODggMi43ODggMCAwMS0xLjQzNi0uODc0QTMuMjEgMy4yMSAwIDAwMyAxMGMwIDIuNTMgMi4xNjQgNC41IDQuOTk4IDQuNXpNOS41MzMuNzUzQzkuNDk2LjM0IDkuMTYuMDA5IDguNzcuMTQ2IDcuMDM1Ljc1IDQuMzQgMy4xODcgNS45OTcgNi41Yy4zNDQuNjg5LjI4NSAxLjIxOC4wMDMgMS41LS40MTkuNDE5LTEuNTQuNDg3LTIuMDQtLjgzMi0uMTczLS40NTQtLjY1OS0uNzYyLTEuMDM1LS40NTRDMi4wMzYgNy40NCAxLjUgOC43MDIgMS41IDEwYzAgMy41MTIgMi45OTggNiA2LjQ5OCA2czYuNS0yLjUgNi41LTZjMC0yLjEzNy0xLjEyOC0zLjI2LTIuMzEyLTQuNDM4LTEuMTktMS4xODQtMi40MzYtMi40MjUtMi42NTMtNC44MXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgc3RyZWFrIDwlPSBwbHVnaW5zLmlzb2NhbGVuZGFyLnN0cmVhay5jdXJyZW50ICU+IGRheTwlPSBzKHBsdWdpbnMuaXNvY2FsZW5kYXIuc3RyZWFrLmN1cnJlbnQpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIH48JT0gcGx1Z2lucy5pc29jYWxlbmRhci5hdmVyYWdlICU+IGNvbW1pdHMgcGVyIGRheVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmlzb2NhbGVuZGFyLnN2ZykgeyAlPlxyXG4gICAgICAgICAgICA8JS0gcGx1Z2lucy5pc29jYWxlbmRhci5zdmcgJT5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLm1ldGFkYXRhKSB7ICU+XHJcbiAgICAgICAgPGZvb3Rlcj5cclxuICAgICAgICAgIDxzcGFuPlRoZXNlIG1ldHJpY3MgPCU9ICFjb21wdXRlZC50b2tlbi5zY29wZXMuaW5jbHVkZXMoXCJyZXBvXCIpID8gXCJkb2VzIG5vdCBpbmNsdWRlXCIgOiBcImluY2x1ZGVzXCIgJT4gcHJpdmF0ZSBjb250cmlidXRpb25zPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+TGFzdCB1cGRhdGVkIDwlPSBuZXcgRGF0ZSgpICU+PC9zcGFuPlxyXG4gICAgICAgIDwvZm9vdGVyPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JlaWduT2JqZWN0PlxyXG48L3N2Zz4iLCJzdHlsZSI6Ii8qIFNWRyBnbG9iYWwgY29udGV4dCAqL1xyXG4gIHN2ZyB7XHJcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBTZWdvZSBVSSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgQXBwbGUgQ29sb3IgRW1vamksIFNlZ29lIFVJIEVtb2ppO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG5cclxuLyogSGVhZGVycyAqL1xyXG4gIGgxLCBoMiwgaDMge1xyXG4gICAgbWFyZ2luOiA4cHggMCAycHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY29sb3I6ICMwMzY2ZDY7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIH1cclxuICBoMSBzdmcsIGgyIHN2ZywgaDMgc3ZnIHtcclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICB9XHJcbiAgaDEge1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG4gIGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcbiAgaDMge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gIH1cclxuXHJcbi8qIEZpZWxkcyAqL1xyXG4gIHNlY3Rpb24gPiAuZmllbGQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIH1cclxuICAuZmllbGQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAuZmllbGQgc3ZnIHtcclxuICAgIG1hcmdpbjogMCA4cHg7XHJcbiAgICBmaWxsOiAjOTU5ZGE1O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgfVxyXG4gIC5maWVsZC5lcnJvciB7XHJcbiAgICBjb2xvcjogI2NiMjQzMTtcclxuICB9XHJcbiAgLmZpZWxkLmVycm9yIHN2ZyB7XHJcbiAgICBmaWxsOiAjY2IyNDMxO1xyXG4gIH1cclxuXHJcbi8qIERpc3BsYXlzICovXHJcbiAgLnJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuICAucm93IHNlY3Rpb24ge1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgfVxyXG4gIC5jb2x1bW4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuICAuY2VudGVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICB9XHJcbiAgLmhvcml6b250YWwtd3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsIC5maWVsZCB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcbiAgLm5vLXdyYXAge1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB9XHJcbiAgLmZpbGwtd2lkdGgge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuLyogVXNlciBhdmF0YXIgKi9cclxuICAuYXZhdGFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBtYXJnaW46IDAgNnB4O1xyXG4gIH1cclxuXHJcbi8qIENvbW1pdCBjYWxlbmRhciAqL1xyXG4gIC5jYWxlbmRhci5maWVsZCB7XHJcbiAgICBtYXJnaW46IDRweCAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDdweDtcclxuICB9XHJcbiAgLmNhbGVuZGFyIC5kYXkge1xyXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEoMjcsMzEsMzUsLjA0KTtcclxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xyXG4gIH1cclxuXHJcbi8qIFByb2dyZXNzIGJhcnMgKi9cclxuICBzdmcuYmFyIHtcclxuICAgIG1hcmdpbjogNHB4IDA7XHJcbiAgfVxyXG5cclxuLyogTGFuZ3VhZ2UgKi9cclxuICAuZmllbGQubGFuZ3VhZ2Uge1xyXG4gICAgbWFyZ2luOiAwIDhweDtcclxuICAgIGZsZXgtZ3JvdzogMDtcclxuICB9XHJcblxyXG4gIC5maWVsZC5sYW5ndWFnZSBzbWFsbCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xyXG4gICAgb3BhY2l0eTogLjc7XHJcbiAgfVxyXG5cclxuLyogTGFiZWxzICovXHJcbiAgLmxhYmVsIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGMUY4RkY7XHJcbiAgICBjb2xvcjogIzAzNjZENjtcclxuICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMjJweDtcclxuICAgIG1hcmdpbjogMnB4IDVweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gIH1cclxuXHJcbiAgLmxhYmVsOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNEREVFRkY7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuLyogSGFiaXRzICovXHJcbiAgLmhhYml0cyB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDM3cHg7XHJcbiAgfVxyXG5cclxuLyogRm9vdGVyICovXHJcbiAgZm9vdGVyIHtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIH1cclxuXHJcbi8qIFNwZWVkIHRlc3QgY2F0ZWdvcmllcyAqL1xyXG4gIC5jYXRlZ29yaWVzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgICBtYXJnaW4tdG9wOiA0cHg7XHJcbiAgfVxyXG4gIC5jYXRlZ29yaWUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgfVxyXG5cclxuLyogR2F1Z2VzICovXHJcbiAgLmdhdWdlIHtcclxuICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgfVxyXG4gIC5nYXVnZS5oaWdoIHtcclxuICAgIGNvbG9yOiAjMThiNjYzO1xyXG4gIH1cclxuICAuZ2F1Z2UuYXZlcmFnZSB7XHJcbiAgICBjb2xvcjogI2ZiOGMwMDtcclxuICB9XHJcbiAgLmdhdWdlLmxvdyB7XHJcbiAgICBjb2xvcjogI2U1MzkzNTtcclxuICB9XHJcbiAgLmdhdWdlLWJhc2UsIC5nYXVnZS1hcmMge1xyXG4gICAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XHJcbiAgICBzdHJva2Utd2lkdGg6IDEwO1xyXG4gIH1cclxuICAuZ2F1Z2UtYmFzZSB7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogLjI7XHJcbiAgfVxyXG4gIC5nYXVnZS1hcmMge1xyXG4gICAgZmlsbDogbm9uZTtcclxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xyXG4gICAgYW5pbWF0aW9uLWRlbGF5OiAyNTBtcztcclxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uLWdhdWdlIDFzIGVhc2UgZm9yd2FyZHNcclxuICB9XHJcbiAgLmdhdWdlIHRleHQge1xyXG4gICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gICAgZm9udC1zaXplOiA0MHB4O1xyXG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcclxuICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gIH1cclxuICAuZ2F1Z2UgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGNvbG9yOiAjNzc3Nzc3O1xyXG4gIH1cclxuICBAa2V5ZnJhbWVzIGFuaW1hdGlvbi1nYXVnZSB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMCAzMjk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5hdWRpdHMge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gIH1cclxuICAuYXVkaXQudGV4dCB7XHJcbiAgICBtaW4td2lkdGg6IDQycHg7XHJcbiAgfVxyXG4gIC5hdWRpdCBzdmcge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuICAuYXVkaXQuaGlnaCB7XHJcbiAgICBmaWxsOiAjMThiNjYzO1xyXG4gIH1cclxuICAuYXVkaXQuYXZlcmFnZSB7XHJcbiAgICBmaWxsOiAjZmI4YzAwO1xyXG4gIH1cclxuICAuYXVkaXQubG93IHtcclxuICAgIGZpbGw6ICNlNTM5MzU7XHJcbiAgfVxyXG5cclxuLyogTXVzaWMgcGx1Z2luICovXHJcbiAgLnRyYWNrbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDI4cHg7XHJcbiAgICBtYXJnaW4tdG9wOiA0cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgLnRyYWNrIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgfVxyXG4gIC50cmFjayBpbWcge1xyXG4gICAgbWFyZ2luOiAwIDEwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbiAgfVxyXG4gIC50cmFjayAubmFtZSB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTRweDtcclxuICB9XHJcbiAgLnRyYWNrIC5hcnRpc3Qge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgb3BhY2l0eTogLjc7XHJcbiAgfVxyXG5cclxuLyogUG9zdHMgcGx1Z2luICovXHJcbiAgLnBvc3Qge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3MgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIHdpZHRoOiA0MDBweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICBtYXgtaGVpZ2h0OiA0MHB4OztcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIC5kYXRlIHtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgb3BhY2l0eTogLjc7XHJcbiAgICB3aWR0aDogNDBweDtcclxuICAgIHBhZGRpbmctdG9wOiAxcHg7XHJcbiAgfVxyXG5cclxuLyogVG9waWNzICovXHJcbiAgLnRvcGljcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gIH1cclxuXHJcbi8qIEZhZGUgYW5pbWF0aW9uICovXHJcbiAgLmFmIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbi1mYWRlIDFzIGVhc2UgZm9yd2FyZHM7XHJcbiAgfVxyXG4gIEBrZXlmcmFtZXMgYW5pbWF0aW9uLWZhZGUge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLyogQ2FsZW5kYXIgKi9cclxuICA6cm9vdCB7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1iZzogI2ViZWRmMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJnOiAjOWJlOWE4O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYmc6ICM0MGM0NjM7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMy1iZzogIzMwYTE0ZTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJnOiAjMjE2ZTM5O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwxLWJnOiAjZmZlZTRhO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwyLWJnOiAjZmZjNTAxO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwzLWJnOiAjZmU5NjAwO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUw0LWJnOiAjMDMwMDFjO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDQtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDEtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gIH0iLCJmb250cyI6IiJ9LCJ0ZXJtaW5hbCI6eyJxdWVyeSI6InF1ZXJ5IE1ldHJpY3Mge1xyXG4gIHVzZXIobG9naW46ICRsb2dpbikge1xyXG4gICAgZGF0YWJhc2VJZFxyXG4gICAgbmFtZVxyXG4gICAgbG9naW5cclxuICAgIGNyZWF0ZWRBdFxyXG4gICAgYXZhdGFyVXJsXHJcbiAgICB3ZWJzaXRlVXJsXHJcbiAgICBnaXN0cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHJlcG9zaXRvcmllcyhsYXN0OiAkcmVwb3NpdG9yaWVzLCBpc0Zvcms6IGZhbHNlLCBvd25lckFmZmlsaWF0aW9uczogT1dORVIpIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgICB0b3RhbERpc2tVc2FnZVxyXG4gICAgICBub2RlcyB7XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHdhdGNoZXJzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhcmdhemVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhbmd1YWdlcyhmaXJzdDogNCkge1xyXG4gICAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgICBzaXplXHJcbiAgICAgICAgICAgIG5vZGUge1xyXG4gICAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19vcGVuOiBpc3N1ZXMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19jbG9zZWQ6IGlzc3VlcyhzdGF0ZXM6IENMT1NFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9vcGVuOiBwdWxsUmVxdWVzdHMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByX21lcmdlZDogcHVsbFJlcXVlc3RzKHN0YXRlczogTUVSR0VEKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlbGVhc2VzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9ya0NvdW50XHJcbiAgICAgICAgbGljZW5zZUluZm8ge1xyXG4gICAgICAgICAgc3BkeElkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBwYWNrYWdlcyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHN0YXJyZWRSZXBvc2l0b3JpZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICB3YXRjaGluZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzU3BvbnNvciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzTWFpbnRhaW5lciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uIHtcclxuICAgICAgdG90YWxSZXBvc2l0b3JpZXNXaXRoQ29udHJpYnV0ZWRDb21taXRzXHJcbiAgICAgIHRvdGFsQ29tbWl0Q29udHJpYnV0aW9uc1xyXG4gICAgICByZXN0cmljdGVkQ29udHJpYnV0aW9uc0NvdW50XHJcbiAgICAgIHRvdGFsSXNzdWVDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zXHJcbiAgICB9XHJcbiAgICBjYWxlbmRhcjpjb250cmlidXRpb25zQ29sbGVjdGlvbihmcm9tOiAkY2FsZW5kYXIuZnJvbSwgdG86ICRjYWxlbmRhci50bykge1xyXG4gICAgICBjb250cmlidXRpb25DYWxlbmRhciB7XHJcbiAgICAgICAgd2Vla3Mge1xyXG4gICAgICAgICAgY29udHJpYnV0aW9uRGF5cyB7XHJcbiAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXNDb250cmlidXRlZFRvIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93ZXJzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93aW5nIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgaXNzdWVDb21tZW50cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIG9yZ2FuaXphdGlvbnMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImltYWdlIjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0ODBcIiBoZWlnaHQ9XCI8JT0gNDhcclxuICArICghIWJhc2UuaGVhZGVyKSo2MlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMTA4XHJcbiAgKyAoISFiYXNlLmFjdGl2aXR5KSoxMDhcclxuICArICghIWJhc2UuY29tbXVuaXR5KSo5NFxyXG4gICsgKCEhYmFzZS5yZXBvc2l0b3JpZXMpKjE0MlxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLnRyYWZmaWMpKSoxOFxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLmZvbGxvd3VwKSkqMTAyXHJcbiAgKyAoKCEhYmFzZS5yZXBvc2l0b3JpZXMpKighIXBsdWdpbnMubGluZXMpKSozNFxyXG4gICsgKCEhcGx1Z2lucy5wYWdlc3BlZWQpKjExMFxyXG4gICsgKCEhcGx1Z2lucy5sYW5ndWFnZXMpKjEyNFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKS0xKSkqMjBcclxuJT5cIj5cclxuICA8JVxyXG4gICAgbWV0YS4kID0gYDxzcGFuIGNsYXNzPVwicHMxLXBhdGhcIj4ke2Ake3VzZXIubG9naW59YC50b0xvY2FsZUxvd2VyQ2FzZSgpfUBtZXRyaWNzPC9zcGFuPjo8c3BhbiBjbGFzcz1cInBzMS1sb2NhdGlvblwiPn48L3NwYW4+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+PC9iPiAgcGFja2FnZTwlPSBzKHVzZXIucGFja2FnZXMudG90YWxDb3VudCkgJT5cclxuZHIteCAgPGI+PCU9IGAke3VzZXIuZ2lzdHMudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgZ2lzdDwlPSBzKHVzZXIuZ2lzdHMudG90YWxDb3VudCkgJT5cclxuPCUgaWYgKHBsdWdpbnMuZm9sbG93dXApIHsgaWYgKHBsdWdpbnMuZm9sbG93dXAuZXJyb3IpIHsgLSU+XHJcbmQtLS0gIDxiPiAgICAgPC9iPiAgSVNTVUVTIDxzcGFuIGNsYXNzPVwiZXJyb3JcIj4oPCU9IHBsdWdpbnMuZm9sbG93dXAuZXJyb3IubWVzc2FnZSAlPik8L3NwYW4+XHJcbmQtLS0gIDxiPiAgICAgPC9iPiAgUFVMTF9SRVFVRVNUUyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG48JSB9IGVsc2UgeyAtJT5cclxuZHIteCAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+ICBJU1NVRVNcclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLm9wZW59YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUnOKUgOKUgCBvcGVuXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUlOKUgOKUgCBjbG9zZWRcclxuZHIteCAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+ICBQVUxMX1JFUVVFU1RTXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLnByLm9wZW59YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUnOKUgOKUgCBvcGVuXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAg4pSU4pSA4pSAIG1lcmdlZFxyXG48JSB9fSAtJT5cclxuPCUgaWYgKGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlLmxlbmd0aCkgeyAtJT5cclxuZHIteCAgICAgICAgIExJQ0VOU0VcclxuLXItLSAgICAgICAgIOKUlOKUgOKUgCA8JT0gY29tcHV0ZWQubGljZW5zZXMuZmF2b3JpdGUgJT5cclxuPCUgfSAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGluZXMpIHsgaWYgKHBsdWdpbnMubGluZXMuZXJyb3IpIHsgJT5cclxuPHNwYW4gY2xhc3M9XCJkaWZmIGVycm9yXCI+QEAgPCU9IHBsdWdpbnMubGluZXMuZXJyb3IubWVzc2FnZSAlPiBAQDwvc3Bhbj48JSB9IGVsc2UgeyAlPlxyXG48c3BhbiBjbGFzcz1cImRpZmZcIj5AQCAtPCU9IHBsdWdpbnMubGluZXMuZGVsZXRlZCAlPiArPCU9IHBsdWdpbnMubGluZXMuYWRkZWQgJT4gQEA8L3NwYW4+XHJcbjwlIH19IC0lPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gbG9jYWxlPC9kaXY+PCUjIC0lPlxyXG48ZGl2IGNsYXNzPVwic3Rkb3V0XCI+PCUjIC0lPlxyXG48JSBpZiAocGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IpIHsgLSU+XHJcbjxzcGFuIGNsYXNzPVwiZXJyb3JcIj48JT0gcGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IubWVzc2FnZSAlPjwvc3Bhbj48JSMgLSU+XHJcbjwlIH0gZWxzZSB7IGZvciAoY29uc3Qge25hbWUsIHZhbHVlfSBvZiBwbHVnaW5zLmxhbmd1YWdlcy5mYXZvcml0ZXMpIHsgLSU+XHJcbjxiPjwlPSBuYW1lLnRvTG9jYWxlVXBwZXJDYXNlKCkucGFkRW5kKDEyKSAlPjwvYj4gWzwlPSBcIiNcIi5yZXBlYXQoTWF0aC5jZWlsKDEwMCp2YWx1ZS81KSkucGFkRW5kKDIwKSAlPl0gPCU9ICgxMDAqdmFsdWUpLnRvRml4ZWQoMikucGFkRW5kKDUpICU+JVxyXG48JSB9fSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZCkgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGN1cmwgLUkgPCU9IHVzZXIud2Vic2l0ZVVybCAlPjwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmVycm9yKSB7IC0lPlxyXG48c3BhbiBjbGFzcz1cImVycm9yXCI+PCU9IHBsdWdpbnMucGFnZXNwZWVkLmVycm9yLm1lc3NhZ2UgJT48L3NwYW4+PCUgfSBlbHNlIHsgLSU+XHJcbjxiPlVzZXItQWdlbnQ8L2I+OiBHb29nbGUgUGFnZVNwZWVkIEFQSVxyXG48Yj5Mb2NhdGlvbjwvYj46IDwlPSB1c2VyLndlYnNpdGVVcmwgJT5cclxuPCUgZm9yIChjb25zdCB7c2NvcmUsIHRpdGxlfSBvZiBwbHVnaW5zLnBhZ2VzcGVlZC5zY29yZXMpIHsgLSU+XHJcbjxiPjwlPSBgWC0ke3RpdGxlLnJlcGxhY2UoLyAvZywgXCItXCIpfWAgJT48L2I+OiA8JT0gIU51bWJlci5pc05hTihzY29yZSkgPyBNYXRoLnJvdW5kKHNjb3JlKjEwMCkgOiBcIi1cIiAlPiVcclxuPCUgfX0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAtJT5cclxuXHJcbjxmb290ZXI+Q29ubmVjdGlvbiByZXNldCBieSA8JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT4uPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+LjwlPSBNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSAlPi48JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT48L2Zvb3Rlcj48JSMgLSU+XHJcbjwlIH0gLSU+PC9wcmU+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JlaWduT2JqZWN0PlxyXG48L3N2Zz5cclxuXHJcbiIsInN0eWxlIjoiLyogU1ZHIGdsb2JhbCBjb250ZXh0ICovXHJcbiAgc3ZnIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcblxyXG4vKiBUaXRsZSBiYXIgKi9cclxuICAuaGVhZGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAwIDhweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCM1MDRiNDUgMCUsIzNjM2IzNyAxMDAlKTtcclxuICB9XHJcblxyXG4gIC50aXRsZSB7XHJcbiAgICBjb2xvcjogI2Q1ZDBjZTtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcblxyXG4gIC5idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogOHB4O1xyXG4gICAgaGVpZ2h0OiAxMnB4O1xyXG4gICAgd2lkdGg6IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCM3ZDc4NzEgMCUsICM1OTU5NTMgMTAwJSk7XHJcbiAgICB0ZXh0LXNoYWRvdzogMHB4IDFweCAwcHggcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbi5leGl0IHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjZjM3NDU4IDAlLCAjZGU0YzEyIDEwMCUpO1xyXG4gIH1cclxuXHJcbi8qIFRlcm1pbmFsICovXHJcbiAgcHJlLCAuYmFubmVyLCBmb290ZXIge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICdDb3VyaWVyIFByaW1lJztcclxuICAgIGNvbG9yOiAjREREREREO1xyXG4gIH1cclxuICBwcmUge1xyXG4gICAgYmFja2dyb3VuZDogIzQyMDkyQjtcclxuICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgfVxyXG4gIC5iYW5uZXIsIGZvb3RlciB7XHJcbiAgICBjb2xvcjogI0FFOURBNztcclxuICB9XHJcblxyXG4vKiBQcm9tcHQgKi9cclxuICAucHMxLXBhdGgge1xyXG4gICAgY29sb3I6ICM3RURBMjk7XHJcbiAgfVxyXG5cclxuICAucHMxLWxvY2F0aW9uIHtcclxuICAgIGNvbG9yOiAjNDg3OGMwO1xyXG4gIH1cclxuXHJcbi8qIERpZmYgKi9cclxuICAuZGlmZiB7XHJcbiAgICBjb2xvcjogIzNBOTZERDtcclxuICB9XHJcblxyXG4vKiBFcnJvciAqL1xyXG4gIC5lcnJvciB7XHJcbiAgICBjb2xvcjogI2NiMjQzMTtcclxuICB9XHJcblxyXG4vKiBBbmltYXRpb25zICovXHJcbiAgLnN0ZGluLCBmb290ZXIge1xyXG4gICAgd2lkdGg6IDAlO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBhbmltYXRpb24tbmFtZTogc3RkaW4tYW5pbWF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICB9XHJcblxyXG4gIC5zdGRvdXQge1xyXG4gICAgbWF4LWhlaWdodDogMCU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHN0ZG91dC1hbmltYXRpb247XHJcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzdGRpbi1hbmltYXRpb24ge1xyXG4gICAgMCUgeyB3aWR0aDogMCU7IH1cclxuICAgIDEwMCUgeyB3aWR0aDogMTAwJTsgfVxyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzdGRvdXQtYW5pbWF0aW9uIHtcclxuICAgIDAlIHsgbWF4LWhlaWdodDogMDsgfVxyXG4gICAgMTAwJSB7IG1heC1oZWlnaHQ6IDM2MHB4OyB9XHJcbiAgfVxyXG5cclxuLyogQ2FsZW5kYXIgKi9cclxuICA6cm9vdCB7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1iZzogI2ViZWRmMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJnOiAjOWJlOWE4O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYmc6ICM0MGM0NjM7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMy1iZzogIzMwYTE0ZTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJnOiAjMjE2ZTM5O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwxLWJnOiAjZmZlZTRhO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwyLWJnOiAjZmZjNTAxO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwzLWJnOiAjZmU5NjAwO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUw0LWJnOiAjMDMwMDFjO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDQtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDEtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gIH0iLCJmb250cyI6IkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgc3JjOiB1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFEK2tBQklBQUFBQWNiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUEvaUFBQUFCd0FBQUFjaVR2ME1VZEVSVVlBQUQ2MEFBQUFLQUFBQUNvQS93RTFSMUJQVXdBQVAxUUFBQUF5QUFBQVFCYWJLSmhIVTFWQ0FBQSszQUFBQUhnQUFBQ2laNGR5eFU5VEx6SUFBQUlNQUFBQVR3QUFBR0J3MW8vV1kyMWhjQUFBQXlBQUFBQ3VBQUFCVXNSdFd5SmpkblFnQUFBTGFBQUFBRU1BQUFCc0p1RVFoV1p3WjIwQUFBUFFBQUFHOGdBQURoV2VOaFBPWjJGemNBQUFQcXdBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFNZ0FBQUwzd0FBRmRRZytIRXJtaGxZV1FBQUFHVUFBQUFOZ0FBQURZWG1ScXNhR2hsWVFBQUFjd0FBQUFnQUFBQUpBc1BBZmxvYlhSNEFBQUNYQUFBQU1FQUFBRFlMM1FkdzJ4dlkyRUFBQXVzQUFBQTBnQUFBTkl2QkJsK2JXRjRjQUFBQWV3QUFBQWdBQUFBSUFIUkFnWnVZVzFsQUFBNy9BQUFBY1FBQUFPVEFWeXVwbkJ2YzNRQUFEM0FBQUFBN0FBQUFVbGtYOFR5Y0hKbGNBQUFDc1FBQUFDaUFBQUF2VnF4M3pzQUFRQUFBQU1FbTFPdXd6UmZEenoxQUI4SUFBQUFBQURabklQaEFBQUFBTm43U1VmLzVQNWxCT2dGaHdBQUFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdCeitPdkN3TUJ5NXYrVC8wOVlYakFBUlZBQUN3Q3BGQWNRQUFFQUFBQm9BSEFBQlFBdkFBSUFBZ0FzQUZvQWpRQUFBS1lCQ2dBQ0FBRjQybU5nWVRuRE9JR0JsWUdCMVpqbERBTUR3MHdJelhTR29ZbEpDOGhuWU9Wa2dBRm1CaVFRR0Jyb3lIQ0FRWUZoQTV2RFh4Y0dCdlljWmdVRkJvYkpZSVZ6V0JZREtRVUdaZ0JuL1F5aUFIamFZem5ETUpVQkNGak9RRERqUzRiL0REWU1teG1NR0NZelBtWFVaTXhtMk0rd2lyRUVpTzh6SEdQWXczQ0hZVGRRWkRLUWRaTGhLY001aGdPTTl4azdHR29aVmpHc1ovZ0gxTVhGRU1CUUJzUWdtQVRFSnhpS3dXdzVCamVHQ0NBTnd2TVlxb0E4cnYvZmdPcHRHSll6ZWpHbU1iejQvNFRSa3FHZFFaV2hIZ2duQVcycFovQUZrdnNZbkJrMi92OERaTGVBNVNZRDNWYks0TUZnQk5UdEJ0Uy9pV0Vqa3pURE80WnBETi8rLy83L20wR0VZUjhUTzhOdUFCRlVQa2tBQUFCNDJtTmdZR0JtZ0dBWkJrWUdFUEFCOGhqQmZCWUdBeUROQVlSTVFEcWFvWTVody8vL1FKWUNReXlJOWYveC8wZi9OMEoxZ1FFakd3T2N5d2pTdzhTQUNvQ1N6Q3lzYk93Y25GemNQTHg4L0FLQ1FzSWlvbUxpRXBKUzBqS3ljdklLaWtyS0txcHE2aHFhV3RvNnVucjZCb1pHeGlhbVp1WVdsbGJXTnJaMkRQWU9qazdPTHE1dTdoNmVYdDQrdm43K0FZRkJ3U0doWWVFUmtWSFJNYkZ4OFFrTUJFRWlBMDBCQUJWTkg1Z0FBSGphclZkcld4dkhGWjdWRFl3QkE1S3dtM1hkVWNhaUxqdVNTZXM0eEZZY3NzdWlPRXBTZ1hHNzZ6VHRMaEx1L1pMMFJxL3AvYUw4bWJPaWZlcDh5MC9MZTJaV0NqamdQbjJlOGtIbm5abDM1bHpuekVKQ1N4SVBvekNXc3ZkRUxPNzJxUExnVVVTM1hMb1JKNC9sNkdGRWhXYjYwYXlZRllPQk9uQWJEUkl4aVVCdGo0VWpnc1J2a2FOSkpvOWJWTkNxb1JvdEttbzVQQzdXNnNJUHFCcklKUEd6UWkzd3MyWXhvRUt3ZnlScFhnRUU2WkJLL2FOeG9WREFNZFE0dk5yZzJmRmkzZkd2U2tEbGo2dE9GV3VLUkQ4NmpNZXJUc0VvTEdrcWVsUVBJdFpIcTBHUUUxdzVsUFJ4bjBwcmo4WTNuSVVnSElSVUNhTUdGWnZ4M2pzUnlPNG9rdFR2WTJvTGJOcGt0Qm5ITXJOc1dIUURVL2xJMGdhdmJ6RHo0MzRrRVkxUkttbXVIeVdZa2J3MngrZzJvOXVKbThSeDdDSmFOQjhNU094RkpIcE1ibURzOXVnYW8ydTk5TW1TR0REalNWa2N4UEV3amNueDRqajNJSlpEK0tQOHVFVmxMV0ZCcVpuQ3A1bWdIOUdNOG1sVytjZ0F0aVF0cXBod0l4SnltTTBjK0pJWDJWM1htcysvVkV6Q0FaWFhHMWdNNUVpT29DdmJLRGNSb2QwbzZidnBYaHlwdUJGTDJub1FZYzNsdU9TbXRHaEcwNFhBRzR1Q1RmTXNoc3BYS0JmbHAxUTRlRXpPQUliUXpIcUxMbWpKMWk3Q3JaSTRrSHdDYlNVeFU1SnRZKzJjSGw5WUZFSG9yemVtaFhOUm55NmtlWHVLNDhHRUFLNG5NaHlwbEpOcWdpMWNUZ2hKRjBaT3JFUnFWYnB0VlN5Y3M1MnVZNWR3UDNYdDVLWkZiUnc2WHBnWHhSQmFYTldJMTFIRWwzUldLSVEwVExkYnRLUkJsWkl1Qlcvd0FRRElFQzN4YUErakpaT3ZaUnkwWklJaUVZTUJOTk55a01oUklta1pZV3ZSaXU3dFIxbHB1QjFmcDRWRGRkU2lxdTd0UnIwSGR0SnRZTDVxNW1zNkV5dkJ3eWhiV1FuSVNYMWE5dmpLb2JUODdCTC9MT0dIbkZYa290anNSeG1IRC83NkkyUVlhcGZXR3dyYkp0aTE2N3dGTjVsbllualNoZjFkeko1TzFqa3B6SVNvS3NRcklIRnY3RGlPeVZaZGkwd1V3djJJVnBRdlExcEUrUzBvbEJ4S3NZYVpCRGI4NThvVlJ5eUxxdkI5bnlOUmd5Rll5MnF6SG4zb3VjOGpicXR3dHU2MTZMTE9ISlpYRUhpV245TlprZVZ6T2l1eGRIVldabmxWWnhXV245ZlpETXRyT3B0bCtRV2RYV0RwYVRWSkJGVVNoRnpKTmpudjhyVnBrVDZ4dURwZGZNOHV0azRzcmswWDM3ZUxVZ3U2NUozbk1QdjZiK3NyTzNyU3Z3YjhrN0RyZWZqSFVzRS9sdGZoSDhzbS9HTzVCdjlZZmhIK3Nid0IvMWgrQ2Y2eFhJZC9MTnRhZGt6bDN0UlFleVdSNkg1T0VwamM0amEydVhnM05OMzA2Q1l1NWd1NEUxMTVUbHBWdXFtNHd6K1Q0YkwzWDU3a09sdXNoRng2OU1KNlZuYnFZWVR1eUY1KzVVUjR6dVBjMHZKRlkvbUxPTTF5d3MvcXhQMDkweGFlRjZ2L0V2eTNmVTl0WnJlY092dDZHL0dBQTJmYmoxdVRicmJvSmQyKzNHblI1bitqb3NJSG9MK01GSW5WcG16TEx2Y0doUGIrYU5SVlhUU1RDQzhnMmkrZXBrM0hxZGNRNFR0b1lxdDBHYlFTK21yVDBMSjU0ZFBGd0RzY3RaV1VuUkhPdkh1YUp0djJQS3JnTnVSc1NRazNsNjNkNkxna3k5STlMcTJWbjR0OWJybHo2TjdLN0ZBN0NWV0NwKzl0d20zUFBrK2xJQmtxS3VOMXhYSXBTRjNnaEZ2ZTAzdFNtSWFIUU8wZ3h3b2FkdmpwbWd1TUZweDNoaEpsbTJzRmx4akpLS1BneXA4NUZTZXlFVTAyb29qZnZLVitxZ3VGMEpuRVFtSzJ2SmJIUW5VUXBsZW1TelJuMW5kVWw1VnlGdTlOUThqTzJFaVQySS9hc29PWG5hM1BKeVhibGFlQ0trMk03cC84aUxGSlBLdmE4MndwTHZsWFQxZ1NUTktWOEpmTzB5NVBVcnlGL3RIbUtPN1E1U0RxdTNoY1pTZHVaeHRPRGZmMnRWT3JlMjcvMUtwLzV0NW43UWcwM2ZHZXBYQmIwMTF2Qk51NHh1RFV1VlFrdEUwYjJCRWFsN2srMTJ6a1UzeXArZFoxTGxDRjY5UEd6YlBuNytoc0RvL09aTXYvV05MZC8xY1ZzMC9jeHpvS3JlcEV2VFRpM000dUd2QWRieEtWMXpHNjZ6VlVIcGZjbTJrSTdpTUVkWHZ0OFZtQ0cxNXQwMjNjOGpmT21lL2hPS2RXcFplQTM5VDBNc1JiSE1VUTRaWTdlSUVuMFhwYmMwSFRXNEJmMVdNaGRnRDZBQTZEWFQxMnpNd2VnSmw1d0p3dXdENXpHRHhrRG9Pdk1ZZkIxL1V4ZW1FQUZBRTVCc1g2MkxGemo0RHMzRHZNY3hoOWcza0d2Y3M4Zzc3SlBJTyt4VHBEZ0lSMU1raFpKNE1EMXNsZ3dKelhBWWJNWVhESUhBYVBtY1BnMjhhdWJhRHZHTHNZZmRmWXhlaDd4aTVHM3pkMk1mcUJzWXZSRDQxZGpINWs3R0wwWThTNE0wM2dUOHlJdGdEZnMvQTF3UGM1Nkdia1kvUlR2TFU1NTJjV011Zm5odVBrbkY5Zzh5dlRVMzlwUm1iSGtZVzg0MWNXTXYzWE9DY24vTVpDSnZ6V1FpYjhEdHg3MC9OK2IwYUcvb0dGVFArRGhVei9JM2JtaEQ5WnlJUS9XOGlFdjRENzZ2Uzh2NXFSb2YvTlFxYi8zVUttL3dNN2M4SS9MV1RDeUVJbWZLakhGODBuTGxYY2NhbFFEUEhmRTlwZzdIczBlMGpGNi8yanlXUGQrZ1Qxb0FQNkFBQjQybVB3M3NGd0lpaGlJeU5qWCtRR3hwMGNEQndNeVFVYkdkaWR0akJvU3pNemFJR1kydzFZRkRpRTJKbTVJRHdUSmcwMlNWWXdqOHRwRDQ4RGh3UExBUVptQm00Z245ZHBENE1ER0lMNE80RWtnOHRHRmNhT3dJZ05EaDBSSUg2S3kwWU5FSDhIQndORWdNRWxVbnFqT2tob0YwY0RBeU9MUTBkeUNFd0NCTFliTVNteGliQXk4Mm50WVB6ZnVvR2xkeU1UZzh0bTFoUTJCaGNYQUgyVkxnY0FBSGphWTJBZ0FJd2drR1VuQXdQem5QL2YvaFVoV0F6emdIQUt3eFNXeFF3TXJBck1jeGdZL3RXdzdQei9paldZZWRQL1YvL1NZSHBaelJnZkEvRkZBTW1FR1lnQUFBQUFpQUNJQUlnQWlBRGlBUEFCa0FKaUF3d0Q2Z1FnQkdRRXFnVW9CWEFGbmdYSUJlNEdMQVoyQnNBSFBBZTRDQklJaEFqcUNVQUp1Z29lQ21BS3BncmtDeW9MYUF2eURKNE5CZzFzRGRnT0pnN0FEMHdQeGhCQ0VJZ1EzQkYyRWNZU1JCTEFFd29UWWhRcUZLd1ZRQldZRmU0V1FoYkNGMFFYcWhnQUdEd1llQmpBR09vWkdCbmVHcHdiQmh2RUhDSWNwaDJFSGd3ZUdCNGtIcmdmQ0IvT0lISWd1aUZtSWhJaWtpTW1JNFFrRWlSbUpOWWxWaVc0SmpvbXdpYjBKM29uMmlnb0tOWXAyQ3J3S3p3cmFDdW9BQUI0MnJWOEIzd2MxYlgzdlZPM2FGZmExUlpKMjdSZHZhNTZXM2ZaNnU2eWJFdHlsOEZOMklCd0V6YkdnS20yQVp0Z0lOUWtOR09EUVhUNENDV1VKQThlNUZGQ1BnSUV5RXZndmNTRUlvMitjKy9NN0s2S2JYN3YvVDcvck5uWm1UdXo5L1QvdWVmTUlCYmRLSDNHTmZFNUtCbWxvaXEwS0RxL1BOK2Z6Z2tjYnVZeHh3Z01Kd3pxUkVaZzRmOHVEY2FJNFRDelZvdFpoTmhGOE1HaWJ0aERiUlpMU2dwQ2xpcExaYVFrSytSeHA2U21wSnBOY0ZkRG1WNnc1eUtibGJVSWZxOHZWSllhS1MvMXNxbGV0anhVRnFsSVpXRmJYbHBpc3p0d1BZWlBxMFZrVTJFcitIMWhQUmI4WElHTGRmbUdYL2VSRDdZc254bkpaQTRGMkhmZlpYeFdjenAvNTUxOHV0bnFZOTU5bHcxWVE5bzc3OVNHK0J4UDhJZHBRWThueUQ4VDlQemc1UWQrMlArdHljQUorQlo4aEJXTlpyMU9Pb2xiZEhxelVXU2xkZElhZ1RPWVVuR0xkRElWTWZqTDBXK1pQM09ua1JFNTBZTEhkU3pESW95Ym00N2IyeGRIN1FnaDNNdGhqQU10UE5ETzlDS0c4VE90anFnVkRnSWZNT3BMUE40Wk5TY25JNVRzVEhiWUxIREhwS0NnSWJ3UVdTUDIrMEpoTmxSZWc4MDJGeWJVaHVvd01JSjUxc0lVTTY2TURBOHVZaXoyUGJpbVp1cFUrT05PcDJXTTFOblQwKzNNLzhsSUcwNTMrVzd4dWVobWRCU05NcSt6YjNLblUveElONXFCVUFxTGRPaHpSUDR4cUhiMEsrNTZiZ2cxb1RhME9McGdWaTJqMVhsdERNc3d6U2tHUGFzMWFoaUV0V2lkS1Zsa3NjQXhEQXZ5VGNJNlhSWWxNWnR0Ylc1R3FMbXR1YTIxQlc0eVo4YTBhRU4xWlZtcE54RDBXLzBCYjhDczhSRHhXb1JjTEZMNXdZNU1IeEd2Tjc1TFA0RGdDblVuTlNad2IzeTNGRmQ0UmU0Q29PM0Y2Tk9FeEUvbWNaNVVaeDdUSlAyZzd0MUJqdjg2K2h6NStMUkRQdGlJZVhYdm1EUVFsWDZNc3IzZWNOaDdtbXlrNTFKTTdqUldoejN4dmRoSlhDRWZrdjRhMzVPMm56NU4rTWVpazZON3VRdytFODFDN2FnVDNSTjE4Q3lqUVJhTU5ZdmJxcTBjajZ1d2xzOEtNWXlXQnkzSkJDM0owMk1OUnBwT0FUUUM4d2ozSVY3TDhKMUpXQXVtdzJxWlBzU3lZcThPaTJLQUJkVXBnVDNFaXAzbnVvcGN3UGJDU0xhak0rcnM2R2hzUktpanM2T3pzYjJ4SFdZMzB4M004anVEV1FhTkM4VGh3amE3YkZleWNvVkRZYXZON3NaV2l4R0xWa1hkNEZoYzhVcklhYnNwRkM3QVpSR1FCcm1hRWF3V214M3VaQzR2aTRUZ0hpWm1uN2U3dzVlZDdmTmwrNHkxMSsxdWJ1OWNkTitGM21EUXUyT0JmTmlhcG5WdTZkd3pjM1pIMTgvWGVJTjNyYzNPOHJmL2MyTmVkdDRDUHRQamV5aHRkcjdmN2ZZLzYzZG5iSFg4eStoMGJWeXllRjh6YzhMbjhmaWVTVjlRU1U1KzQzZW4ycG9XSm1ON2lzdTFkdDZpbmRHZit6elNnUm0xbVZtR0pQM1hJOTN6cHZyeWpNazY2YitJakhoVUFqcCtDK2g0TXZLaVlqUUZkYUFWMFc2d1pSNHovQ0JpTllLR0ZRWVJoNURJb2I0a0xCcXdWaU5xKy9TWTV6RUlBdU9zRnFUUkNMMUlFTEtGMXFsVFMwcDhQb1NtZGt4dG45TllNcVVrV2wzcEsvWVY1V1E1MHMwcDhDUEdrSkdZc2N4TnYwOWhHRmRhWWljYWpDbTdRZUZ4d0FnajNLRFk5VENpQVB2SFgyRmt4cHpHMSs2YU0wZjl6enhqejBoTFR4dSt5VVkvMmZVakpWUERZZlUva3pnMG5IQ0NHNXFUY0diUTRiRFo3Y012MnVBenpjYldXeEtIanJ5WE9IUlA0aW5pTnc0QlR6Y0FUK3RSSS9wNzAvRmlVT3cwUFVhNEVqT29FYlBNTEwrVjVkaEN6SE44czJQeVV4bzQxU2w3eml4UWFnYUN4eURjbWVVWXRnK2NxdGlyQlpYT2F0RmdqdU43QlJDR24yOTF5RDlWY3M3eENJYlRYVlZzam1qUldTNUNzV3NTSk4wSkRocWhtZE9CeURwL3hCK29Eb1IweEh6c2NaY2M4dnVJRkcxMlhGNEJMa3Z4YjRKb1YxMmRyNUFJbkVpMHZDSkV4VXFzaG9pMUFqT2YzbXdsVnRHOG9hSWpKenNIQjdNeWs3S09FYSsxTEZDeVlUN1o2Uzl5TDlyN1VOL1JqalhMVnM0N3N1cWR1b0s1WlJkMlNUOXlRK3VTdzd1Sk1Td3BMR2d0akhRV1NxY1diNERJRnZSYzBuMEorZkQySGxseWM5ZnEyNlpzdmJyejRQeVIzUE9tUmVZWGJjWWhJUG96NW5YbUx4RERrbEM1elA0a0VyaTZHUks0RURES3pKQm9oUmVSQTZnWDlzQ1JSSFV3SmducEFpelI3WGlFcXNITVg0UUsxdTkyQmRnS29mQnU3blNKVkovaGRHYmdGNG1RY0xiMFM3YVhYNDA4eUhNUzdqYUgvdUJqY0s4dy9OSkorTHl3ODFHYkJXdHN1WWo0R0dJaEF1aTltZTZSSHdHSHc1UkZ6T1VWckZHWDR0S2JEQTkrOWVWREJwUGVsYUxUWC9MZWxWZitZWUJmYlRPNzBpM2FmdW5xMFZIcCtuNnRKZDFsdGdtei80SG52dm9xbm45Nk5wbkhlVENQdTVSNWFER2FUWDB4bVVkT2ZCNXVKNTJIeld5MU1JSklCRXdOdGR4c1NtSG9Ib2xDZG1icUg2Njg4cjFMOVBKc0h2cnlxd2VWMmZDMjA5SURyNzRxUGZTUDJZSXlJN3daUWZqRlc5VTVFWCtFMFhQNEtzNEF0bE9HNWtlVGl6RGlDc1ArOUdRV1hEc0RNU0lIQkpKS0pJQXZCNGpGWmJVQWJFQzVSQzVXMk9Nd2gvQWdrY3hsOUN3SEtNSUFkeTFERVhlZ0FBQkVCZ1VRd1hLRm00TEl5MHoxZ3lhS2l1OXB3RUdpa1RJOXZBeXhtTVA1ZkFBanV5a3RxQk44bWRKWEw2WG51RE55MHZmdlQ4L0pjT2VrdnlqOVo2WlAwQVhUVEhhTUFqZy9oeHNxeXBHK0dOQjVQYWxtWjBnbysxMjZLK2kyRnB3K1hXQjFCMTNwdnlzVFFrNXpxc2VyRzhCcHZNNmZKZFArSzNRVjUrTVlrRU4rTkFlTUdrRVE0ekJBSTNBT2VDMnhjb0tPZUtZRFJudVFPK0QzQi95aXhrRWdoTWxMYmNydk5WSGpLek41S1ZBbzlackk5QTk0Y0JXeEdPa1ZvdjNTSzJRZlYzbUNIRFB4V0pDT0pmUEJXNlgzbWIrQlZhUWdkOVFCaWdGZ0RsSGxSekhkRDRVWVRSckZNQ0lMUDB5d1NqMEd2Zi9BTEw1am50N0lMT2NjMWhkeEtEWFptQ3c1czB1NEpQeEpxcFhTeWpDY2o3a0tHWkFuNmt5MHFXNXl0ZzErMzREMEVXcFFNbUVLUFJ3UDh4d1J5R3laSDVpcnlIekpINTN2eDRBLy80Yno0TXIwcUUwMVVPUkhyZlJ1U1VINWJtTWc0ME1ORFkyTjhJZnpYTDRueUUyZmtHbEhMMHZIT0lIdlJ5WlVma3JQTURLUUpSQWxpZHc0cDBXeDBxaU9hdU0rYWlUVUQ1aFFTbGlkdG9oVkJFY0FPdnR2RVhha1IvVGJzeUlzY3dkODh2MXV1MGI3L1kwcEZ2SXBuSmRpa1hIbjB4QS9VbWhNOXFDOGFEYkJrakowQmw4TVV5RkVaYU5Xa2pTa2VGTGNhVFlhVjJWNFRNMFRmcEs2aGZGUmt2bjhoYjYrNXkrOTlQbSt2aGNHMndhbVR4OW9rN2ZjMEZIcHl5ZWVrTDQ2ZWhUYm5uZ0MyNDhlM3ZUMndZTnZiOXhJdHBzSVB6NUVDT3p5YVpoUlVUVGZDTEFLZEFFMkxJTUJKYkFBZURuQ2lKNFl2MEUvdy81QWhOaGNZSXdBVGFxaFZWQTdCTTFsdnlFaVhVNFYwUEM5eVpocE4zcndnTVZpYzZIUksxUUJzMHQrcHN0T3Mvbk1YeVM1TW9aWktxT25BR1IrRFh3cVJPYy81c01jUzBSa0JCRUZFT3l6SE15TXFOVm1tSjhjSTdPSTFKZ2VOZkVJSmd3RDc3RnI4bkdkVVNOOEswUUZnWnd5djUyYUc4RWlnb2k5Q1NqUnEwb1p3SjdmRjRPSjFJMHdUenpjcy9vODZUZytRUUlha0RySDUwckdUeXh0dW1qRHhsNXl5RDc3VjB1NG9YbTNiVmh6L3dicC9sMGtjcjFJcUE2bDRHZVg3MnhjdHFGeUl6bDJLSnhTVmtOOTVPaFg3SDlUZk5FVWJTekdBaThBR1V3ekVnQlFDQnlRdzVKTWhLQTJGcmdDYUpnWGV6VnlLSStyRDJ3aGRBY0NrVWpBbnFjbG9Wc21Td1ZhaW44SEowZzBpSUJZQ05oeThrRy9KVklKOGIyVWVlR0I1ZTJ6dTFiM1BubnBpbGZiM0thTXpCVHoxRnRhZCt6WmUrRnNJdHFLL2dzdlBIOHJCY0FHNDNYSHVhR09HMWN0M0JrTUhWeXo0ZDZsMDZ0dFRvc3J4MUJjdFczTjJ2T0l2SHVXTHVnTlR5TmtiN0JsYUJkVHV6Z0VPZ2d3RFFWUkZpcVBsbVpoSk9CbUVTTmVkcEFhTEFoWkxRRDVHYllIWk9sbmdjWndDRVpEcGhYeEJueGFqVE1YV1UwcStyQ1dsaVFvWmcwdWk4bXdGSHRUMlpsM2tsbmZlUm4xbTNQSjlyRGs4N2wwK0ZOYlNVZzZEeS9VY0VPdEkvdklYUCtrS2luc2VJM016ejN1a1FyOGplelRuNmF5dWd0RjBNem9OQkZnTlNaeVlubUJCYnZoZUpiYkJZTkFnSHdmREJlN2laaDhCSEhSUERpYklXS0tvQkovS0dBUCtRSlVUUEtrV1pETTVLSlNqTjBuUjJuaWowdTk3TTJFaWdMRHFnc3VQcjVzM2ZPN2VsNXM4NlFRQ1UwNTB0UnhjVVBOcGpuVHp5OU44ZVg0R1F1VG1jM1l1THRvVUhpdWNzMWoyN1lOclk5V1dOMjJqRnhEUWZtVWJhMXorcVArZ003dHgvLzB1MlYvOVJyNHF5VHVTY2o2ODFCdHRFb2pVNG1CV2s2bWl3V3pJazRpZ1M0WHVGbFhuaXMzNklmTEhLRkFRS05KbDJrVEljc2d3WGNNZGVaQUJScVhFckRISWJoSzMwcWZPQ05IRm01OFpQV2Fwd1kyUEY3WmNnaFArVTQ2dkhWS3d3WE56ZjMxZFZ0YXVTZERwUjRITnY3cm5lbHpsait3K2Z6N2UxWjFYL2JiQjNIa1RmM0l0Ulc5RFRNMzFsZXVuVDVqWFJXVjEyZEFDdy95Y3FDNWp3RXdaNGhQU1NJQUhuWUJJdmRESUdDN09hREcxeUxia1NPYUxwOUNneFBPZFZMMDZFRHBmbXVZVitoTGlBbmVoQnpTeTM3aEVxU0YyckFqa00vam02V1E3Q3VZTzRrbzBsSisvTDkydXl2TnFHZi9mSkRZeExzUThWajBGdWlXQlBiZ0FBaFVnNlpIcDFnRVFBZkVNWU1JT0lidkUybmtFT1RJd1hHcTZlZmxPWjBJNWRYa1ZVZEtuTG5PbklBUGJwRUJUc0ErM2duSTJIenluSXNaSncvbXJWLzJMSjJ6YlBQNko3ZHVmWEw5NXFWenVucCt1YTYrdDdKeVpXM3R5c3JLM3ZyWm14c2FOcytXdDl6UW9pTmRIWU5aT1RldFdIdlA4dVgzckYxeFUwN1dZRWZYa1VXSDgrZFhsczR2S3BwZldqay9YK0xMZSt2clYxUlVyS2l2N3kwbnV2Yjg2SmNjQ3pRcnVtYkNEQWNFY3lBQ2pnRjZlVDZtYTByNEIzckg2bG9nRUpaMWpXQS9oaE1GWXY0VmViaml6T2tsOHdwUkxPbTU3eHlnY2xpSDNYR1ZrM1ZzTnRVM2JvaHFsdlRHbTNvOFh1Y095em9tNnh2TWxtSVY5bDdBSlE0UzR6a1ZyUVNKajRhc0FGTUhab1RZWTNRWU02eXBGTURRR0srdU9kQzR3NHo5NWxiZ2pQckhiSTdEbXBITHgwQWNtTU1WMHZzUUFNa2MzQ2duR3JiTFVaMkZ1TTZzams4SWd3OXlPMjBXT2dOK3dnek1FN0NmT29rckV6Rmc0a3lrVXhQeDRFNjBuWE54cVNpZDRFRzlobGhVTThGMHFKTXVITUlJM09ITXBHQlRXU3pRWWdXN2g3R3NwcGg5emVTMUpXV1A5REIzWkNmWkFBb1AveXZkWmt0bnRWeHFicHJaYTVHZWxaNjFlTTFwdVRxOE15a3pQVDB6Q2U4a092VXJYTTM1MkxsVUZvQnUxUFhJdFNBRWtNVWl1aXpaVGJqU3BzZ2ozV3FtOEZTWUFFL05ad2Fydm9SOWRxNGFNcVROQ1JBV3FId1krTkNtOHNHY3pNUkFkMmNjZER2REt1Z1c0a3NtV3F3R0FjeFZBZFhELzdKUWJqQjNqUFRJM0dDMXpDQ2xXdHFyby96QVUvRlVtUi9TWHNJSGFmUmI5bVhJZmNPUU1WMGMxV1ZnQmh2QUJUTEtFbTRvNXVjZzRpSitGM0YzMU5nQ0xjVHd1RjV3TVg0T0hHSmczRUFZZzRodTlTVU82NHhhc2lEdnlTckxpaFRtdzArR0FubloxQzVsMzVPTWFWWVdLbS9BOWN3a2NHUGMwdSs3eCtiTjJML0J3TmMxc0FZbTJUU2pmVm4rNnFXN0Z4TW5tbVM0K1dsVGVYbGRIZnh4cDl1dVdiWndlMWYrOVVWRkwxdlNSS2UzdXJHNGFVbXdrempWM1ZhSHB1dkgvM0w1K3VucUFyRVNCcFdNcnVVT2N1Vm9EbHFNdXFLTE0reU1qdEZoVmtmZ0Z1SWhsQS9xc1FaeGpJYnJRMHdTMXJHTXJrK0xJV1ZEQW9zQWVva2kzMGtCR0JKNXNhT3BDYUdteFUyTDVyYkREV2VIUzBMQmdsQWdaTkM0NDB0aW9YQ0NIeXF4SzJFZExNeHFzVkVjUm1PNzRwL0s2V2wxT1lCY1pBNlVVc2RzazUxWHlNL20vMlhYek1GNVU1YlpJOHNiaWpzS0ZoNWNzRERISTZRbXAxcnNYSXVZNVc5YTJQUEl3QlVmN1Z6eTBQWVorOG8wck5QQXA1WGYzSEg3NTl0dng3WUhheGRVQmR6Rml5SlpBYTc4d0hkM2JEMjVjbXJEdEdubHEyZDIvV2IvcWdhOUtLWWJwWDl6cE9jVUhoclk4OXphR3lYcDlzRm4xbGhNVEw1WjU5Q2xPZmYrODc0WGNjMmowdExPQTdNS0M3cXVtbHBRS21NR1NKVzRGeUhPNXFOaVZCa3RRMXJ3TzFwMkxSSkZUYmNPYXpTK0ZvRmpXTEwwQW1BQys0a1RLaXFFMGJrRXk1a0NFYitlTU0xbXgrTlFYTmdyampzaVIxdXdScEgxc3N3dmlwTndieDBGZGJlUjdmNjVrbVBlQVAxK2dtd3JjZE5UTkJQWkZId0tYL0VrUkYvZmNFZzEwYi8vUFphT0hDTGJLMGIrekxqa3RlNTJvR2NtME9NR1ZTNUVkZEZxQVl0eVpCSXhKNElyQVU4QzZJNWdBMEZKYytWTXFUQS9KeXNjOUVLK2hKemVRSzFXTllGWUVGYnBNS2wwc0NvY2g2UWZkdnhlNXZ1NzU4MklydCt5NUlGTFJsNGprNy9rRWtyQzZjOStlOEdGVzdmOUZtdTM3L3RSQWhUYWZrTnY4N2FnNytaTmZVZm14cW1RaEo3RlM1Y1BiMWpmKzVic2d5NEVERFFEWW13Sm1oYU5GbUNBY3pRcUlKWWhFSWZ2RlFGbXlFbFNmQi9TZVdMWTJSeEJyQ1dvT0JUMmg0SkJEWUhja09QSml4SlVkVlhVTUZaMWxZUzFSRjU2NTFKOHhITHJkaTA3Lzc1bGkrODhmK1dqalNiSWtjMmVaUjlzdmZYTDNYditldlB5Z3lXK2JHN0k3WmRPRWRPZHZubGEvenZYWHZ0MmYzV0ZNZXkydTIxVHBwSk05bkZzdnlWYVU2M2lWQ0tqclNDak5PQjhialJMbG9sQVpjS05rWW5mNjBpSFVUWnZvRnlrVUVGT3F5ZVRoSXdRY3VFbWY5Kzc5Ky9IcEd6QytjMmJLZi9mKy8yVEZ4M3Y2VGwrRWFqUmRkSS9UcDJTL25sZG5PMC9mdGIzNXFGRGI2NlhlVTdtMWd4enEwRUhtNDdyd051V0k0QW1ETmVmaFBWYURkYjNnN3ZSNmdVdFdBaUNKRUhUSjg4ZWtjbVRaWGcxOVhaRUs4bUZJaWNNMGl1MWVzM2dUN3kwTTJxRG5ScFVYUUZhRmZTYlVvT1FOWlVaNUJxVnlUSUovU1Z4Sit3MUtlbXdJdXpZRVM0SFlPendIc0tRTld2SWxsMFBCMEM2STE5aXhwT1Y1U0Yva3NUaytyTHhReURQOXhJTnpCT1VpSGlmbEs3cElwL1NpMlRiSmEzN0RFUXE4MndoOEt3Y1hTcnpyQkFzRVVKUFA4aWE0Tisxb0xXY3dITGdrREhXZGV1eFR1ZHJJVm1pMkExK3hpL0s2OTZrVEVuWHZYL1NKUkMyZ0VubEtGSlVBSTRvbGJJcEtjNGltZkRTY2F6d204YjVwQmdIdVNxRkYxS01GVjlRb0NDUjdXVTArMlN2SURtQTlCMmgvU1ZwWUF3bmRveDFTTEl1clZEcWxyVm9UblJXSmNZaVFYWVFzRGdDYURoMWJWL0QwQlVCeURwait3eWpMdS9ENFZwVUV3b0dJajR3WXgzMXRaT2FjVVZaWEJsb1dtMmExS0E1YXRCVGRpM2FkSDlQMTMwYkg5N3hMMm9oRDVKdFptRHV1OXR1L1hydi9xK1BMTCtoV0RIclB4TDZhcGVYeVdaZDllY1lYanBkYkNrc1BvcnRqNS9DYWJmVVZCUlQ0NVoxWVFmb3dqVGlzNUFlY1ZqUHJVM1NhU0NFYUx1TkJrYXI5YldJUEV2V1VzSGs2Y29PWERjTlRhbXJxYTZxTEM4cFZPS0tONUFjTDhwT0VKdjNqSUpVcWZmR1Jkc050RFUyMHREeU10a3VsWXhMNDkva003aWFuc0gvdlZUK0ppZmV3eHRVY3ZFUmFkMVlFVk1tWElNdm9PTEc2RldnbXdPNlBTZzdHdUlBS1BMZFpBbkwxd0tVWW9KYUZVbzl5RVZYUVpUMVlycFU3QzBadXpLbjdyQnZ3MXhHRWJaUVRaeEtaMllaUlJTNjNqUitoakhGdytnQzBMdkxZUzVCc2pwakoydUR6U1JxQUhJZVRKd1pJa2twS1grUW9BNkQvZjVBMkIrZkdGRWhwYjVnVXN5SUFwL1k5TGcrbU1ocmI3elVQeFJOSVZvMS8rRGVDNlg3NmV3ZWxXYzNVdkx3b3gwelV6T3hpOXJLZDAxYkI1ampjZnNndW5JM3pITWVzWTg1bUlPWk1HVDlEQU9PdzF5Zlh0RWFRNUtpTlF6SnlBU3NMQ25CWlIwdFRiTm5UWXNDUXdOWmtjcmlnREd1TWxqR2ErUy9MVmJ6SWpYa0FoeW15QzBabjFPSFlvaUZVbG9uTGRPazdHMzFGRG81YjBxNDFFa0luYnQ2VnJyUEhyS256UzdJYVhXNzZWS1Z0RGdoOUt5UTFlcVVyR1RUbGZXYzgvQ3FyRlZOdWdXdVJ2TDFRTW1pdXZsZVg4RHRja252VEtKazgvQ0RZM2xHNGxNQWxZQ2JoYlFFTVA0Z29Ic2tkRU1PSXNnUk5MN3VCdU44RUR6OHBvQUNBUlRqaVB2RkNkUXpIOEJVL3h0L0xTOTh5QkhqVGtvWms2TXFIWjVOQlhyQlJKOEhYb0I3Q09ZWEpmWmY2N0d6SEtMb2kxU0ZCaldZeUZPdk80TVhpS0w2cW5JaXpBQ3hrS1M0TUZQSFNVb3ZyOTJFOWVOUlo2eEJnemJqd0NmdHdpakpLSS9iK3liYkc0YmNRQ0RYOEtaMVUveG9lWG94K1hnN3pTbjg4U045MGRzVHJLdDA1R1ZDTWxNOS9PWllFYVdZUm01bmVyMkU5cG1LM1pXaDNsTzVCbEtzVURJMkIrZ3VrUkQ0ZDFsRURJTjdpV01BMDNORVBSUFBVbFRnYjVHTnN6TnFvc1d6VW9JRElnRi9RQWtETVJNTm56R3dVVWJnVXRNWVJhNEtoc284STk5ejE4VFI5N1FXc3YyVHphSEI3M01EaWJvNnJITmtWckMzRDc4NmxtcWpjZmc0OHlrVk80TVdBOTFiL3ovVVNWam02NzE3djc3MVZycmRlRjhYQkN4NXl3M2RJbjM1K09QU2wwZEpBQ0xvOHJBY24vcmZ2dmJhZC9wVmpMa1laT0ZGT2Fnc1dnTFFDMkVCclJWSjRSM3cvMFRQbkpNVjhNRm9EL0hPSWExYVhqRGkzRFA3aVZnQ3dGWTh1M0xscy92KytnMTExSDlJc0JqL1g5ODljUERRVmU5eWR5MS9ZTXVXWHk2VDNodkx4NUdiZG0yNWdJQ2V4ZEkzbElkVmFEWWFpcWFXWUNUYUFCSVdZc2krbW5XWXdVMU54d09nU21GaVNTd21XUzVCRWV4cWtxUUp2VnE2NWc3UVNDMjFPWnFPaDJCNEVMQW13aUprd0dlK1RBTTZtSU40bHI5ODRtREU4Z3piTjJad1oyZlVYbDJOVVBYczZzYXBVWmh3WlhFdzMrOFA2YW1EVVFRYUZ1WGlycEpmMkJKeVkrcCs0MVhlczRyZW1YWnBSMXRtVmU2TWNGWkxybGFYN0VreTJhclhsbWJVQkRXUkdWbm5ieE0xWG4rRzl0RmJIb2F4bSs3dDZycDNrN3psaG02US9ubmloSFQ2Qm1aL3BrYWJuT0VSMGl3dVcwWktia0FqTW5wZE1WdmdTemZxMzZqRy90K2V3RWszSEY3LzZwVlh2dHJYUjdicll6a0tpVTIxYURwcWlOYUNrOUtBSDlQQUdRM1RwNlZBVkVkckJEekxxQjExTkR1ZVByV2hEcTZxSm5xVUhhblh4eXM2dER2SmxoaU9RbW84T3F1U1pjbzZKcHhjZHZqU3lxQW56K0ZNVnNKUFkrMjhzQzNUSGN4d3o2KzVnanBxYVdOQzN2bkRWNjlqNHhVNy9wMjdhLzZSMWYyM3VXekYyUjAxZFU0YWRCcWE4eHFuemc3azVFcjd4bW5rRjYvMDlNbSsvRGF3NjJ6YWQ5Y1JiWjJGc2VERkRFL2lNeFo2Z1kxVTQ4Qnh4ZlpKVllFRjc1WGRna2lKbk81U3gwNTc3a3FLOG5OREFZL0xIOVRTVlRPbHE0c0dZOUtkSWdmcitQS0xWYW1nUnhKclh6SzcxQVl2QmRXeWZ3QlVHeklXUGJScDQwQk8yTCs4YmVIcTRsVmJWangzK2FyN0crU09ydHprN0pON0I2OXNxQTB0YVoyN3FiQzljK1VqV3hiZlhTMWozTS85N295dTdqVUxzeXN0Wm51eXlXN0pQclJ6M2JIRnMyZTJFbytQOC96dW5LMDdOblkxdEdXWXJDa3BUbXRnKzZxMVJ6cW1WOWZKK1N4R2w0Q3V6QVZkeVVhUmFMR0FsUTRlc2w2aUZwTGlQcDBHNVd3VTlwdG8ycUpVa21MZEFwTWczVGdidkZ3WnpWS2swLzlKSGMxQnN2MVA2YlFjcWRrbE5EM1pUeWRkbGdnTXBkZnBzUUUxUnF0eEtwLzJOOURsSGJZYmhFZ0xKcVNmTEFZSzgxRXVvTUlJL01WS1hpb3NMSnNBbCtSMXNiR3hwdjZEVjEvOW9GNE9LQlFXN1Rsd1lNL214QUF6c3ZIM2I3MzFlK2FnT3QyUlBVY3Z2L3dvczB2QjFUcVlLMW1mQ3BPNXVrbU52NWxYWmd4cE9aMnhPdGt3Q3Zyb1hCT2dqZ0lVOExpNWF1UFE3aDZZUzR0MDFGQ2FsMXVhSk4zYVRPZDJJZGxlZzB0dzJTcjZ2VlVKaGlsK3Q4ZkhmcVBPZGZocWRxczh6OUZ2WVo3djB2cGk3K081QVFPTEJSTDgwK1hnejhKOE9STGZJZjlxZ2NRdTJNS293ZDhOa1luVVR3ZkhqVklHeUxFL2drb0NSQXhqWXovdGI2SU54cVRMYVJ5RkRxeDBKTWNJSFNJdzV5bytPMnV1WmVncDY3eHdOcmVQWWg1TThlckJWVThicXpQOXdsUHJkb3dKL3lrQjF4Um14c2hUVTl6K0JMby9acG9MTFphUkIxbXZqUHd3S29HNTMwTHp2bWkwcmpvN1RlU0lxSFJhRVlqU2RDZnBHWGtwVVlaOC9OakVyNm9pQW9Lai93MXgwS2NkRCs3WThRZTBlQUxSWTVLK0tkTHJlRWwxSE9Wc0dKVituRWUvMHE3Y2VyeE1lblZHbkFXZEgvMnhsbjRyVW1CNnErU0o1WDhicEJnZ3gzL0d4MlBnL0NWY0c4dTdhb0VIMXdNUFNsQkZOQUlzWUFrTFJDQ2E1RndnMTBuU3dSSlVwSktlSU5tSjBlQXNsQktFTzEyNit4UHFFdTZsN2NiU3ZUTmx0YVY5ZWo4TVQwa2thK1QzMHEweFVsWXhoVEZTMXVLamNSeC9IOURpVjNQSVNSbzAxQnd5M3FDaDVKRFdNcjlWelNGRlBDSFRpRlZiWlkvR2pyaDBJMzJNUmVuSVlId3VJM05JMGlsRjF6K1JHYWNiaDl1eGdlWWJENU9aMnF6c0E5OVRoMWFuOUJ2TmtVNnlhL2lseUU1eWI1SVJrZjV2VHU3djUrTDkvVERXam15QnNnZ3BBWE14L3BwaWJDV3BPRHViNkFkTjJ6QlZHbWtJejNxRzlGaDdnb0kzU0Z1dWY3aUk4Z2l2Z2QvZFEzODNLeG9rdjhjQXRGb2JiODJLdFZEWmtSV1NNS1h5YkpvMDFWOGQvOWxaMHBEODgveFNUL0Q3aitYZjVLOGtXMWsyWCtCdjJVOGhMcnRRMWlQQ3F1bFJseEVTQ0VqeWdXekU3Q05Wc3d0aG5BczV3K2tjaE5wSEJNQXdrQWJRT3BVZzUwMUsxNkxTWjhIc2NldHdSSERhelBaVWwvQzN2d211Vkx2WjVoUndST2QyY2tQbTFKRkhkSHFUUXhRTlNmaFBVbWFTUVJRZEpramoybExOTUovUlQ2VWQzQmVqSERLZ1REb2Y2M2dXQkFPTU1nOXViRjN1STcwKzZjZWNKTmh5N3c1bjVPUmtrRC9LMnlyT3lPYnkrNUVKcGRON0dwSGEzcFZtVVcrR2xMcGpNRlp4WTNQVGJHbEdzM1NWemUzMXBacnhVbTVqYXJvalhmZUJJY01WemphTXl1dlArMG44WTArZ0FsU05QbTA2N2dJbm5lekVHcmFpSE5CZENzeWFiWGFNT1NMQ0VhVUxPQnZ4SE9rWEdVUXNvR0xFYXZvUTZkOGxpREMzUlNSMDl6SXlGSFRJZHk0OTl3VkFycC91cWswWmptangyYTVDc1lzQThLdlhFRmhlV0loUVlYVmhWVmtwMEpidkR3UURrWWhlWGZwUGhKMnhuZ0pnR2kzcUNiRnVNS1g3MTBhV0ZBa1FEejA5MVUvVU1UcGxtWEh1YytldC90bmlUMDdlZnNPR2dhWTdaNXVNWHBzK09QK0YzdWYzcmU1NjVZN3B0N2F4SjM1eGo5VGZSdHpJbEliRzFobVhkZDEyYyttQzNxNmNvTFlvTGNXZm1sY29jVzBMWjNmY3M4Rm1sMlVSQkZtMDhKbmdPc3JRSjZkU0lEVVIxYXpaajlSY0xkQkNPcUJwYXBQYkl0RDBVZzJnY2pOZy9wbUh5czVXdVFxcEY1RUc3VndZanpoZ2ROOVB1Q1NhUGRsb0ZCc01VVjBkMndtaXNJVkNDSVhLUXBHQ1BPSVZ3ZnBENE9EbEZ0RXhIVU9LUk1ZbTdlTmJiUEEwMTZWUDczaHA4K2FYZHF5NHQ4SGx1NTJ1UGRGVi9HZHcrb0cydGdPZG5ZUFRwZzEyOHBtQUFJdnYyZmJCNGNNZmJGczh0MTMyN0Z3SzlmdFMrNUYxNjQ2MEx6aXljdVdSQmNRdWR3UHZYV0FIWjYwdjVTYlVsM0wvMS9XbGNjRDlYM1E1T3JxN3MrZkl3bzVEUFVzZm5HVTF1OUtUTTl2Zjc3L3VnNHN2K2VDYXpoc2p2bXoyaExvUVhiYzhzdkNXbnQ2akM2dktVN0xUN1g1NzdmUmRIMTUxMVllN3B0VFdFalRPVUpvT3hmVEptY3lnTStvVGVSS0ZKUklmYTdTVDZWUGkwRzVxZVVLaXVTYnFFOHR6YTMvQ0pZbytqUnVOWW9OQm4rS1dQVUdmZktGZ3hLL3FVNnlOUDFTSHg5U3N6NmhQN0djdTJra0hldFJ3N3dwWnNaNitsSzVZZkMrNXFDWjFVcTBpK3ZUakF6SkNhSis3V05hcmUvQUJXWjlrVFpLMWl2RCtJUEIrR3VoVEprQnh5Sm5WMVVuRXcwa2UwYjVBcnBlc3dPUzIwSjRGUkovTjhrSlU4NGE5b1lBZkx2U0UvVDVJaWpKSXptd25rZUtNS21URW9wZVFndDdjcUFIa2tDZmVkZVBTUjZlYmpINmJOcS9sMzliZi9PN21TLzV3WVB2UDA1bVYxcHYzc0NlMi9YYS96M25qMGNLd3RzeHF5cktGaTdhK2Y5TjFIdzdjc0hQVEJRTktEeXUzaEEraVVuVFJZNERSdEdxYmNiYjZRSVlHTXlKcDcyUWh3R050cnc1cnRRRVFLZEVUSkQvMkVRMnJZK0VrM0ZLTCsrSVhKWTZrajJ6QUw1VW9EWkYrbTU3QVhyVUhQZ3orMklYamtPUU1LM3ZVZ082OXJJZzFCdlNHM1J0L2c1ZFF1SEt2L0VtYVcxMitsK25pNXN0RDkvSEJVbk9SUHJtS0wvNlBqVlI0TDZtd2o2SDRkZnM5UTdJLzNpMnQ0UTZCREF0UkE5WkY5VUVHQ0VpankvS3lFZVVpVUZtZTVRWjFHdEpvM0tzVkdOb3NKWXJxc3lsS2IyRSt0WXNBcmFBbVhxSUdNZm42Ym5TMnE0bFZSZFNya1loNFZ1VDd6bnlYaEdzaGdJNi9MTGFHUmJWdjRqWEV6T3hGUlFnVk5SVFZWNWJUVnVPQVBSQW9reU9vWFZsT1ZYTGRTVnB6NjlTbmFDWnBYTHNoN3JaWFA3Ky81NlVGWVkwNXJOZTNQdEIyMWRVN1hwQXRzQzNCOE5nVE1lODkvTlpGOXkveGVvemhsTFFLenBtNXQvKzFXemY5N3VxcmY3ZnBjTnMxWFYzWHRNMjVwcWZubWpsRWg4RjljUHZCOTlXZ0RVU0hPVldIQTBpajBYYkxHcXUySCthT1gzOTNSSDFFYlRWSVM3SEc1SU5remExQlZmSkNkQ1FRMUNzMVY2VlRkRUxpRXBHZlBqcmoralR1ZFUyNWYyWFg1WTF6NDRuWjBybnRDdzR0WGhvL01KZnVuNlRSemRpN3R1M3dTc2taUzJIK3ZYUGRpZ2ZXUzUrb0IrUm9oMFpIcVUzUDV1ZWwrTkJhaEZJWXRJYUR5Y1B4WjZVMTdINTZmRFY5MG5RTmVwSGk2bWtLL3hyUXRxaTJMaS9aeUdGUjVXRVExRlBvQnE4c0J3Uk5OL0EwMktMWGNReHBVK3NtejcvUXFyK2Z0Q05wQkw3dkxLUGsyblVEcXErdGpoQUhBSWw5aEZRN0FtUFRYZEY2NWtWOXEybmlra1lwdHo3R3NjWWZUODJPTjlOczJrdTI3NE5YMlRrcm5oaldTTy9qOXVwWVp6L091ZU9xc1R6MEJJZS93TzJ4L0hCRWt2TWU5QWp3cVFINDVFQ3paT2JZd1pOejNlUlpuMEFMRXd0NEJEVlo0U0FwNWJOckU0L0xqd001VURxaFhYNGN5SHJHS2loenB3dlRCSGI0Ry9uWkdPbHIrcmt1TVRqRnhFN3lrV0dZMytmZ3c5clJLZXBEVGpWT1pjQk5ORHZvamdhcldONmpJUTlMYUh0cFFTcllZa2dTZVk1aFVMZEFsblRsTlhUaWdYTG9NRjB2YVVMSWJaR3Y2VWFUWHhFTms0VmdkU3kxdThsSGdyTkpnOG0ybzdhbTJUT25OOVFTZ3dxUy8wWlZFU2dzSEdjL2t4MmJURDFjOG9QbzluTEZLTG5YZ0dNMytsejVKWVh0aGZRUnBPdVZMeEdxSlo5U0s2TW1DS055TDU0NWZZMjU4NXFhWlJYMWlub3c3VE5tTFByWlN1bTVTYjlDRkxsYTNsdTV2SHRwNTJNMUE0dEhQcEYxaGZpa0cwQVdOZWh1eXMzSEtza2FRck9EZklveFNUaEpoN1NtVjZkbGlMMk02emhUeEJBaVkrVEFTeEluR0M5YjEvalI0TzdpNDFETUNNY042MVJkV1hWRTlXWFVsZjFQZkpqQ2I3YmtIRjZNQXZhVFB0ZlVSOWF3Sjg3dXhGUitYcnptZkRrdVh3YllxaEg0T0tIR2xudXVHdHZabjlobHZ2NXc1ODRQcjd5U2Juc1B0YmNmNnBXMzdJa2RIeDA0OE5FT2VYdDR3ZEVWSzQ0dWtMYzBiNE9jdndYbWs0MnEwR09uUWxwRzVGU2NEWWtPUXg1VjFaS1VJUmdyU21YSDE3N0NzZWhlU01jbVJITUZKWjN4c21qZW1FQitqdUVrcE9ma0lKUlRsVk5aVWdTVHpTTFM5c20xS3BVeDRYTUpkbnh0S2wwQnpBL0V5LzFyRXZEMHlvU0VESUNuakptbGJlTjlLK0RwdzJNek1obC83ZUR1aS9IVlErQlhJbDhuZ1Z6WjhlcENtRTNrNjlteDFyakx4dkgxSE1Nbjh0VkhBdG1rVUdrOGMzOFNTRm9UWiswRGF1cDdCbnowWTJ4WkdoOVFNdC9EWXpNVDRvZklNMHR6Z2E5RjZNS29EbFJFeUNPTFpRcG52U2loWnFQVXM0SmppallPQUw2SmRSMzZIRmR1Q3gzZmpjYVA3b3lDSGNKUEZjcSt4YWFWbjhpT3czc2pqZ1A4U1pXT0tXVS9uNTZsdFFhVERjV1ZTMDV0d3gwVTFOTzErV083eWZZTm42dm9pbHVhMkJOWmFTRnpXcFhHc2ZOMzIxNGM3ejUrcy9peVJwbitrK0EvTW9EK1psTExhNXlrbHBlYlVNdkxQVXN0cnhrMXpaeGVXdncvcWVYRlg5Snd0bUxlYitpTEdYTHYzdFc3SVR2THUyaEc3MFZsN1oxZEQxOXkvdDExc2RjekJINXg5ZFlkZWRuK3JwbkxkNVhSMXpUMC9yeGFYaWdnYjJXWU8yMUdmV2FXUVo4azZsTlRYUnVYTE5rL3A3WXUvbHFHbnNYelovcnlqUHBrVVdlenlpOW5xSTdray9VRGpMWVJQOHNOb1h5NjdnMWtZNVlaRk9pemJTeDl0azFwMEV0WUJjbEhlUUYvbUR3RXJGYno0ZzhCMnlZMDJKYkZCRTBXbnZFL2ZQaG5WTmRYdDYyWWRuaUcwZVJMTTNoYm41LzNxMk92azhPdksyMTR0QzlJT3R5L3ZqeGZWNUNSbW1rcGJuamtPQjZnV3ArbjFpRWJZZTRYczdkQ1pubnRZOGswek1ycW5VRldzamhTNGVPNFlBcy9icjJEdUl2QXhCSHlNZ1EvWnMzQ04yWll3bUtGL0VTMHNneVpRcFBiWWhuT3hIZ3l5U3JGR0R5cmRNckhqckcvaWExUlFMeFVFNFJmK2x3MHJGNUx2bnpHM3VvSmpoUVJKcmlEQTJ2T2g1Q0tQNVVWZitRdk5LQmlkNncrUmQ2dkFidzVVeDB4K0wrdEkrNkVDVFZJenhncmlvdktrcVhuNitQdFg0UFloQzJMNUw1Q2xwWmVSdXprVlNITWw3R2E1MWJaWU5VNklzeXpIRlZISy9KRFJscEluTFJHR0NzaXluMncvZ0RNT1RTeFFLaXU5azlXSXFTclJPTktoR20vMW9WRHVjVkpSMytXVkpvYkNtbGZNTk9aaDhoMisvWDNpU0ZQZy9IZXc2dnBRYk5LVHNEbDhlRVRVcXZQNHdva2tQVWsvcDAxSTB2S1ptYkdhbVF6WWY2WEEzMW5xUk1HLzVkMVF2MDU2NFQyaW5GMXd2ZndsRkpxaGI4ZzI1NXZ2bTZMdDRhVjRCblMrN1BpWmNMbWQvNjlRcTZueWRSTHIwZ1B4aUlRSTBteC9RVzRRdDMvL1BPWUhrcXJxUjRXa0Y2Qm9JVTJpUW1LV0ZXN0l0MWhvSTM1VkxRRktNOUhBV3BpQ1I0YkdmcThYRVU5VTNFT25heVgxazdaOGJOTi9sQlp6NWJ1R2RMQmhrVEZ6TUNHemtURkhINXkzNUZaSEE0V1RtSDU4cjBIbUxkaW9ueUxLWW5KOEFSTU5nTm9DS0liNUg1dnYxd2c3STgvNTAzTGc4RXh6M25MejI4RzRrUEhsQktENTM0bWZPSzRUdm1oOEVuS2poTWZDUi83a09jL1hNa2p0K0hQbExLampaUWRWMHBWU3RueERjSU1sMmxrK1FNMFpCQU91Sk9adTI0azMvNUQ0Y0VqMGtuMmoveFNTQ0RXUlhYbGtPUWE2TFBmY2o3c2lEM3lUUlpBbWRWMEJaM01ucnpJSStvbHI1UkFISS82NHNOQTVPVEJNdUpGTWRNUnkwMktDM096TTkwWmFRRXg5b1FiWUFjUHRnbWlsVVRYWkN5WGFteEtUVFhTZ09Wbnd1VTNrc0YrSWFhNzdBc2c1ZlVEeFJ6TGI5cTlhd3ZXNEwzVWhiNzJNYU5uTHIrZTdCNjREUFBNUjYvelMwbWhzWHI3cXNhTGowVjB3ZXMyMnZRRGh2VGRXOG5SUngvMW03YzdrN1pzSVY5MmJiWG81cmdOUTJUaEVETU82Ump6Q04rUERLamdwNzJmSWY0aUNHdENpd3R6blU4TzhueS8yLy85ZzRUandqdzF2djFkT3NrNUtNOVhSM1Y1Y0Q4cmhnQWQ0emtNWWNsTHArUUhKNUg2UnA0Y1R1VTVyZDdFaHdGZTYwVHltODVZd3ZOa21lZmxrVUIySUZ1VVZ5WEdjUmoyUFRqRzdFUU9rMklaTUw5QU5UNzgzVWNNank4N1FIUHR5NEhKSDlNbmdxN2RDNnpmc212M0pwN2xpZ2ZXazBQODBxRWhnM3VPenJKMUYySHJsaTFKenUxbS82T1BraTliZDZjYkJ2UzJqZGNGZFpGakZ6ZXUybDR0VjRFeHVnay95SlV6SDRQdU45UDY2QlFEc0RjVGxJbGdPcDQ4N3pjSUpzU0FUZzZTUnl0UUoyRUFxU2dTQmhDU0VYMTlTUkFGZklHd2ozWjlLM1ZpK2pUQkdNZ3lwbU9QRkFqeGg2dWoxWTNoQlROVGJEWnJwbGg0Uld2MXFxbVZjMElKQjVpUGM3SjhtZk5UVFdsT283NjVLeWZMNjQxOUlYbk90OHlWYkVqcEdhMmdGT1J4cEFMRkF1QWlmWWVJNlZUeVdnWjFUSkxXMHNtZUk3VmRjbWxUMDZYTnpYUWJuaGFPL2VlR1lvZGh1ei94RkxDRUcvMXgxTWY5SG5UWmhRcFJLK3BBbStqOFZubUF3KzJZMDA3RmdvNXR0bW9aWmc1NUM4dytZRGEvRDNGYW5aYlREWkluRHBFV283Vkl5NG5hVHNDZ3JFNkRCVkVuOUNHdFZseUJSSzA0dDYydHFLaXRvNjJqcUxXb1pVNmozeDlLUzgveis0ckowZytsaXppdHNnZ2d4SGlicE54RlFUYUJNUy9vSW9JeUt5OVNVSjk3b1JwWW9ieUwwRlRxVDJVWms4VXFUY3ZKK2RVMXhpUjdzc0grbzlhUWJMblRhbUdhamNQclJhM2RhalN5TjVIUGpSYUxwU3ZEN1haSUwxdlNCUTJ1Uy9aWVhmbGRiL0FmTVMrbGwwWHdHM05FcHpYWm90L05tMDBqdjA1MzFGdFNOU08vNVp3V3MxbkxGSFBPRVdlYTA1bCtGTzVpT2VyTlRFN1Y0NEZVczhNaVhZMTEwcmVnaU1EYkxPNTFoYmZMMENqbGJMSUhKRDhkY3lJamMxVkdyVFZ4NW1yZ25GN2s5T1JSS3AxT3Z6bUJ5VWprdEdJZjBnbUNiaEhTNllRZUpPaUVkZ1hXMXA3aEZxSmV0K3ZjOTRoT1RSU3ZxQkU1elNEUzZFV05mdGRQdmdrcDNSVVZGUzByV3RwSkV0YnNjbG5TaHYreHBDR2swVXNxZ3NvN1RvU3hMem1oamlwWkRvQS9XZW9yTXJJbGYxWUd0aFhsVHEwUHpIU0JBbVNZaW5mWGJkbzlkZVlyMkpEaG5sejRtOGNKZi9nV3EzVm5mbTJtL2N1czZkbkZWYWJraFRhcjFYWkptdDRiMkxvaXVyN3FuaWxXSzlnWHNsRDd1Z0NjYlFzNkgyMUMzMUV0eUNqQUFnOE9nSnNDU1ZjS0JNNU5XR3RjRFl3V3dNT25nalJiMVJlcmFMRDZaaFd0VVdmVTZnWkpod1l2aUh3OG9JSURNVEtvejRTTjJpUmpaekxXR2JBK1NhY25CNHhKSzFDU01XbXVJem8vOXFZV0RZQU5EUUViNUxhN0pyMnQ1aWZldGpNYWFBWGN0bkZENi9tdDU2M3NYYjYwYzlHOGpsa3o2K3RJYkFrRVNpTUJlNDRaa0Z6TWdkSG5TNFV6dk9obDh2ZThFRUdqQ2UvcU15ZGtXWlA0QXJZMEZTL2RWTHU4b3U2S3krcDJGS2VLUm9lb3plbkpiNXJiTmljdllEWjdaemJPbVRLdGtzcSs2T0lhVmtjVkpLNG94dnd1eXlUZVlmUVBQSDlCU1ZmMXF0TFVlZlVydHpnZE9wc2hOY3phMGl0S0t2SWphYTZpc3VLU3RESXIvRnVhb1hXNVJ2N3NOSTlSRytrWWNRK1RlQTFwR2RiSmNaL1dhd0J2WmhMTXJNY01mUlJmMFFDMThCQ01MWVBtMDNmcVpDSzNQMkFQcXNXRnlSZ2NiNzVhN3pyMnEzblB0M29OYVQ2VGNjYmhhU3ZhSkJrV1N3UUpEbTg2L2toRHNTVXpOYU5BbDErK3ZwK055cmthSTNKdHpLLzVlUUJsd2xTRGxmZG5kU2E4a3k0QjZNamhkY3pUOHNleXNpb3E0SStmNXdyc0Niam9ScWxGendaNkhTaE1GN05WQ2hOTEtPZXVuOFNlNTNsZ1hQMWtoSDdNanlmUDhSVWp1T3YvQTJBK2hmeDQybzJTVVd2Yk1CU0ZqOXkwWXc4TmcyMHZmWmtlMDBHdHBGMmhOS3dRQW4xWm9jMW9DM3RNTTJHN0pKRWp5UStGL3FuMVI0eXh0LzJnd1k1VXJVdkRPbVpqNjd2WDl4eGRTd0x3QWw4aGNIOTl4dmZFQXB2aVErSU16MFNWZUExdnhKZkVMYndXUHhPdll6TlRpVGZ3S2lzU3Q3R1YzVkVsV3M4WmZZc09nUVcyaEVxY29TMCtKVjdEa1Zna2J1R3QrSkY0blQ0dkUyK2drNzFQM01hNzdCWkRHTlM0Z1VXRkFpVThKSGJSUlEvN3BITm1OTWRRMWNRYXpiZkVXZVJaL0JiWTRKbzhpZW9CS3oxMWhubkh1Qk5kUFdkeE9JVGlYVkFiS2hwY0lhZkswRWxod2Rnd3J6bk9sNkl4bFVHclZycjQwOE0yWFRBMDlZMnRpdExMM1c1dlg1NlhXZzVOWXl0dDVabXRacHB2YzYwblhnNGFYeHJyWktmMHZuYUhTaFdWTDV1cmZHSm1hdEVZcjV0NUhNWjE3VlN5aUE3YllaWW5Gd0tQWmdNK01sZXdkc29mc0F4MTBVekhoRDAyRzViM0FIMk1jTUZuUUhycTEzWldmZmJ5YnUrZ1A3b1lEZnJMdmUwOCtQOXJxMWE4SHEvUGc4TmxWRHFxRERkQ0xuV01TMjFkWmVZeWRvSC83L3J2cmY0K0YvZW53dkVrQklPYU9jY3BRd05UanVFY0ZmeCtpbU9jVU1SZDQ2YTVpYTFxNzNKWFRYTmpDM1Y2ZklKZjMyS3pLSGphWllyWFRzSmdBRWJQWDBZUm5BekZMVzVSc2NWWlYxd291QVVucUtVeFlDOElOUVZqdk5Wbjg3V01wb2t4MFhOenZweDhTRGg4ZnZEMkxjRmZUS2RLdUhEandZdU1qd2I4Qkdpa2lXWmFhS1dOSUNIQ1JHaW5neWlkZE5GTkQ3MzAwYzhBTVFZWllwZ1JSaGxqbkFuaVRETEZOQWxtVUZCSk1zc2M4eXl3eUJJYXk2eXd5aHJyYkxESkZ0dnNrR0tYUGRKazJPZUFRNDQ0NW9SVHpzaVM0NXdMTHJuaW1odnlGTGpsam50MGloaThDMG00aEZ0NGhGZklJYXRhMG1zVm8yYnFaZXZaVHBSdDR5SDQyK292bHBNaWRkTXUvVHZLajVYWEoxUFRmSTVWUmZrWjZoY05SelZRQUFFQUFmLy9BQTk0Mm1OZ1pHQmc0QUZpSlNCbVltQUd3a1FHUm9Za2hoUWdMNVVoSGNobUFjc3dBQUFuMUFJMWVOcGpZR1JnWU9CaUNHRklZbUIyY2ZNSllSQkpMMHJOWmxESVNTekpZOUJoWUFIS012ei96d0JTaGN3V1kyQjJkZ3hSWUJEejlmY0Jra0grdmtBU0xzdVlWcFNZek1BQllvRXhDMWd2STFDRUVXZ21FOUErQlNESnhzREhrTXpBekNERUlBcXlIVWlMZzlXbXdObE1EQ0lNWWdDMXRoTVplTnBqWUdSZ1lPQmlzR0d3WTJCMmNmTUpZUkJKTDByTlpwRExTU3pKWTlCZ1lBSEtNdnovRHlTd3NZQUFBRnNhQzJzQUFBQUFBQUVBQUFBQTFhUW5DQUFBQUFEWm5JUGhBQUFBQU5uN1NVYz0nKSBmb3JtYXQoJ3dvZmYnKTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgc3JjOiB1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFFQ29BQklBQUFBQWRQUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUJBakFBQUFCd0FBQUFjaVR2MEhrZEVSVVlBQUQrNEFBQUFLQUFBQUNvQS93RTFSMUJQVXdBQVFGZ0FBQUF5QUFBQVFCYWJLSmhIVTFWQ0FBQS80QUFBQUhnQUFBQ2laNGR5eFU5VEx6SUFBQUlNQUFBQVR3QUFBR0J5QXBLMlkyMWhjQUFBQXhnQUFBQ3VBQUFCVXNSdFd5SmpkblFnQUFBTFlBQUFBRDRBQUFCc0o3RVJWbVp3WjIwQUFBUElBQUFHOGdBQURoV2VOaFBPWjJGemNBQUFQN0FBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFNZEFBQU1Ja0FBRnE0aUs1eE9HaGxZV1FBQUFHVUFBQUFOZ0FBQURZWG1ocFFhR2hsWVFBQUFjd0FBQUFnQUFBQUpBc1BBZTlvYlhSNEFBQUNYQUFBQUxvQUFBRFlLdWNaUG14dlkyRUFBQXVnQUFBQTBnQUFBTkpZZWtKT2JXRjRjQUFBQWV3QUFBQWdBQUFBSUFISEFoRnVZVzFsQUFBOUFBQUFBY0lBQUFOdit4OXFnbkJ2YzNRQUFEN0VBQUFBN0FBQUFVbGtmY1R5Y0hKbGNBQUFDcndBQUFDaUFBQUF2VnF4M3pzQUFRQUFBQU1FbXdpYmlRaGZEenoxQUI4SUFBQUFBQURabklQaEFBQUFBTm43U1RULzJ2My9CUElGcEFBQkFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdCeitPdkN3TUJ5NXYrdC83ZFlQakVBUlZBQUN3Q29HZ2NHQUFFQUFBQm9BRzRBQlFBeEFBSUFBZ0FzQUZvQWpRQUFBSndCRlFBQ0FBRjQybU5nWVRuRHRJZUJsWUdCMVpqbERBTUR3MHdJelhTR29ZbEpDOGhuNE9Ca2dBRm1CaVFRR0Jyb3lMQ0FRWUZoQTV2RFh4Y0dCdlljWmdVRkJvYkpZSVZ6V0JZREtRVUdaZ0IwbHd5eUFIamFKWTZoaXdKeEVJVy9BWlBaSmdnS2drVUZteUJjRS93elZvTkJPSk5nRXhHTDhXQnQ1eG9VWVMyYUJGRmsyd1dEV2N3SEJ5YkQxcDlQYng3dkc5N0FESk00NDZOS25QOXRQMnlwc0pBN2RqS3pJa2RDOCtTSWdERjdadXpvczJIT2dUVlRpNnluSFBMRmhheUxxZE9tOWxaRFYwSmFZbzJrK0tIK3NrK1Rpb3ZkblF3RkpwYXpFcEc3V29wUDBnendHTEVTeTJKQWxXLzNFTHZrTlJ2b04wKzNDdHF1djdaWjJoKy9ETG01dXhRVEtLK2VOOGs5TVFBQWVOcGpZR0JnWm9CZ0dRWkdCaER3QWZJWXdYd1dCZ01nelFHRVRFQTZtcUdPWWNQLy8wQ1dBa01zaVBYLzhmOUgvemRDZFlFQkl4c0RuTXNJMHNQRWdBcUFrc3dzckd6c0hKeGMzRHk4ZlB3Q2drTENJcUppNGhLU1V0SXlzbkx5Q29wS3lpcXFhdW9hbWxyYU9ycDYrZ2FHUnNZbXBtYm1GcFpXMWphMmRnejJEbzVPemk2dWJ1NGVubDdlUHI1Ky9nR0JRY0Vob1dIaEVaRlIwVEd4Y2ZFSkRBUkJJZ05OQVFBVlRSK1lBQUI0MnExWGExc2J4eFdlMVEyTUFRT1NzSnQxM1ZIR29pNDdra25yT01SV0hMTExvamhLVW9GeHUrczA3UzRTN3YyUzlFYXY2ZjJpL0ptem9uM3FmTXRQeTN0bVZnbzQ0RDU5bnZKQjU1MlpkK1pjNTh4Q1Frc1NENk13bHJMM1JDenU5cWp5NEZGRXQxeTZFU2VQNWVoaFJJVm0rdEdzbUJXRGdUcHdHdzBTTVlsQWJZK0ZJNExFYjVHalNTYVBXMVRRcXFFYUxTcHFPVHd1MXVyQ0Q2Z2F5Q1R4czBJdDhMTm1NYUJDc0g4a2FWNEJCT21RU3YyamNhRlF3REhVT0x6YTRObnhZdDN4cjBwQTVZK3JUaFZyaWtRL09vekhxMDdCS0N4cEtucFVEeUxXUjZ0QmtCTmNPWlQwY1o5S2E0L0dONXlGSUJ5RVZBbWpCaFdiOGQ0N0VjanVLSkxVNzJOcUMyemFaTFFaeHpLemJGaDBBMVA1U05JR3IyOHc4K04rSkJHTlVTcHByaDhsbUpHOE5zZm9OcVBiaVp2RWNld2lXalFmREVqc1JTUjZURzVnN1Bib0dxTnJ2ZlRKa2hndzQwbFpITVR4TUkzSjhlSTQ5eUNXUS9pai9MaEZaUzFoUWFtWndxZVpvQi9SalBKcFZ2bklBTFlrTGFxWWNDTVNjcGpOSFBpU0Y5bGQxNXJQdjFSTXdnR1YxeHRZRE9SSWpxQXIyeWczRWFIZEtPbTc2VjRjcWJnUlM5cDZFR0hONWJqa3ByUm9SdE9Gd0J1TGdrM3pMSWJLVnlnWDVhZFVPSGhNemdDRzBNeDZpeTVveWRZdXdxMlNPSkI4QW0wbE1WT1NiV1B0bkI1ZldCUkI2SzgzcG9WelVaOHVwSGw3aXVQQmhBQ3VKekljcVpTVGFvSXRYRTRJU1JkR1RxeEVhbFc2YlZVc25MT2RybU9YY0Q5MTdlU21SVzBjT2w2WUY4VVFXbHpWaU5kUnhKZDBWaWlFTkV5M1c3U2tRWldTTGdWdjhBRUF5QkF0OFdnUG95V1RyMlVjdEdTQ0loR0RBVFRUY3BESVVTSnBHV0ZyMFlydTdVZFphYmdkWDZlRlEzWFVvcXJ1N1VhOUIzYlNiV0MrYXVack9oTXJ3Y01vVzFrSnlFbDlXdmI0eXFHMC9Pd1MveXpoaDV4VjVLTFk3RWNaaHcvKytpTmtHR3FYMWhzSzJ5Yll0ZXU4QlRlWloySjQwb1g5WGN5ZVR0WTVLY3lFcUNyRUt5QnhiK3c0anNsV1hZdE1GTUw5aUZhVUwwTmFSUGt0S0pRY1NyR0dtUVEyL09mS0ZVY3NpNnJ3Zlo4alVZTWhXTXRxc3g1OTZMblBJMjZyY0xidXRlaXl6aHlXVnhCNGxwL1RXWkhsY3pvcnNYUjFWbVo1VldjVmxwL1gyUXpMYXpxYlpma0ZuVjFnNldrMVNRUlZFb1JjeVRZNTcvSzFhWkUrc2JnNlhYelBMclpPTEs1TkY5KzNpMUlMdXVTZDV6RDcrbS9yS3p0NjByOEcvSk93NjNuNHgxTEJQNWJYNFIvTEp2eGp1UWIvV0g0Ui9yRzhBZjlZZmduK3NWeUhmeXpiV25aTTVkN1VVSHNsa2VoK1RoS1kzT0kydHJsNE56VGQ5T2dtTHVZTHVCTmRlVTVhVmJxcHVNTS9rK0d5OTErZTVEcGJySVJjZXZUQ2VsWjI2bUdFN3NoZWZ1VkVlTTdqM05MeVJXUDVpempOY3NMUDZzVDlQZE1Xbmhlci94TDh0MzFQYldhM25EcjdlaHZ4Z0FObjI0OWJrMjYyNkNYZHZ0eHAwZVovbzZMQ0I2Qy9qQlNKMWFac3l5NzNCb1QyL21qVVZWMDBrd2d2SU5vdm5xWk54Nm5YRU9FN2FHS3JkQm0wRXZwcTA5Q3llZUhUeGNBN0hMV1ZsSjBSenJ4N21pYmI5anlxNERia2JFa0pONWV0M2VpNEpNdlNQUzZ0bForTGZXNjVjK2pleXV4UU93bFZncWZ2YmNKdHp6NVBwU0FaS2lyamRjVnlLVWhkNElSYjN0TjdVcGlHaDBEdElNY0tHbmI0NlpvTGpCYWNkNFlTWlp0ckJaY1l5U2lqNE1xZk9SVW5zaEZOTnFLSTM3eWxmcW9MaGRDWnhFSml0cnlXeDBKMUVLWlhwa3MwWjlaM1ZKZVZjaGJ2VFVQSXp0aElrOWlQMnJLRGw1MnR6eWNsMjVXbmdpcE5qTzZmL0lpeFNUeXIydk5zS1M3NVYwOVlFa3pTbGZDWHp0TXVUMUs4aGY3UjVpanUwT1VnNnJ0NFhHVW5ibWNiVGczMzlyVlRxM3R1LzlTcWYrYmVaKzBJTk4zeG5xVndXOU5kYndUYnVNYmcxTGxVSkxSTkc5Z1JHcGU1UHRkczVGTjhxZm5XZFM1UWhldlR4czJ6NSsvb2JBNlB6bVRMLzFqUzNmOVhGYk5QM01jNkNxM3FSTDAwNHR6T0xocndIVzhTbGRjeHV1czFWQjZYM0p0cENPNGpCSFY3N2ZGWmdodGViZE50M1BJM3pwbnY0VGluVnFXWGdOL1U5RExFV3h6RkVPR1dPM2lCSjlGNlczTkIwMXVBWDlWaklYWUErZ0FPZzEwOWRzek1Ib0NaZWNDY0xzQStjeGc4WkE2RHJ6R0h3ZGYxTVhwaEFCUUJPUWJGK3RpeGM0K0E3Tnc3ekhNWWZZTjVCcjNMUElPK3lUeUR2c1U2UTRDRWRUSklXU2VEQTliSllNQ2Mxd0dHekdGd3lCd0dqNW5ENE52R3JtMmc3eGk3R0gzWDJNWG9lOFl1UnQ4M2RqSDZnYkdMMFErTlhZeCtaT3hpOUdQRXVETk40RS9NaUxZQTM3UHdOY0QzT2VobTVHUDBVN3kxT2VkbkZqTG41NGJqNUp4ZllQTXIwMU4vYVVabXg1R0Z2T05YRmpMOTF6Z25KL3pHUWliODFrSW0vQTdjZTlQemZtOUdodjZCaFV6L2c0Vk0veU4yNW9RL1djaUVQMXZJaEwrQSsrcjB2TCtha2FIL3pVS20vOTFDcHY4RE8zUENQeTFrd3NoQ0pueW94eGZOSnk1VjNIR3BVQXp4M3hQYVlPeDdOSHRJeGV2OW84bGozZm9FOWFBRCtnQUFlTnBqOE43QmNDSW9ZaU1qWTEva0JzYWRIQXdjRE1rRkd4blluYll3YUVzek0yaUJtTnNOV0JRNGhOaVp1U0E4RXlZTk5rbFdNSS9MYVErUEE0Y0R5d0VHWmdadUlKL1hhUStEQXhpQytEdUJKSVBMUmhYR2pzQ0lEUTRkRVNCK2lzdEdEUkIvQndjRFJJREJKVko2b3pwSWFCZEhBd01qaTBOSGNnaE1BZ1MyR3pFcHNZbXdNdk5wN1dEODM3cUJwWGNqRTRQTFp0WVVOZ1lYRndCOWxTNEhBQUI0Mm1OZ0lBQ01JSkJsSndNRDh4d0dobjgxQ0JZakR5TVB3Mk9HeHl5TEdSaFlGV0N5LzEreEJqTnYrdi9xWHhwTUw2c1o0Mk1ndmdnQTFsRVZMZ0FBQUFBQWlBQ0lBSWdBaUFEY0FPb0JrQUpFQXVvRG5nUGFCREFFaGdVSUJWd0ZqQVc4QmVJR0pnWnFCcndIUEFleUNCWUlnQWpvQ1VRSnNnb1lDbG9Lb2dyaUN6QUxjQXY0REp3TkVnMlVEZm9PWWc4c0Q4Z1FSQkRZRVNnUmdoSXlFcVFUTmhQQ0ZBWVVmQlZFRmVvV2VoYldGendYbkJnY0dMUVpLaG1hR2RZYUVocGFHb29hdUJ1RUhEd2NwaDFXSGJRZVBCN2VIM1FmZ0IrTUlDQWdlQ0VjSWE0aDlpS1VJeklqM0NSaUpNQWxRQ1dnSmg0bXNpY2dKNVFvSmloY0tPNHBaQ21zS29JcmtpeWNMT2d0RkMxY0FBQjQycTE4Q1h3YjFiWDN2Yk5vdDJ4dGxoZkpzbVpHa21WWjhpN0Z1eEpudFMxbnQrUEVpZVBzRGxrZ0lhd2htSWFrSlFtVVFLRXBCR2hKZ0s5QUE0U0drQkFlYTF2YVF2ZW1mWlFDNzlIU1g3cTk5eWp3Q3NTVDc5dzdNMXBzaC9DKzcwR3NHYzNjR2QyejNIUCtaNWxCTExwTC9pUFh6VmVpZk9SQVRhZy91U2dlRllzNUhZZDdlTXd4T29iVGpacjBqSTZGZjdzTUdDT0d3OHg2STJZUll2dGh3NkloMkVOem5jNkNBb1NjVGM0cERYVVZRVjlaZ2FQQVliZkJYZk1helRwM0JCVzZXS2RPOUF2QlJrZER2TjdQT3Z4c1BOallrSEN3OEJtdnJ5dDBsK0oyREZ1WFU4ODY0Rk1uQ2lFejFvbGN6TXQ2aGZNL0ZzaUdiWXd5WStYTW5SSjc5aXdqdU96Ri9JTVA4c1YybDhDY1BjdEtycUR4d1FlTlFiN1NGL2kwTStEekJmam5BNzVQL2Z5MW4zNzVZMXNlcDhQMzRFT3MzbW8zbStTbmNjcGt0bHYxckx4QlhxZmo4bXdPbkpLZmRpQUd2M2JoWTVialBrSVdWSUo2dXA5MHoxdVNkQ09FOEJDSE1aWlNQSkRNRENPR0VabmUwcVFMRGdMNUdJMWtIeDlJMnZQeUVNb3J5U3QyMnVGR0prbG5JQ3pRczRRb05oaHZ3VXloRnhNU2cyMFlxR2YrMDhrMDhTdFc4RTJNMC8yK2Y4NmNCUXZnai91b3FHUnNhM016YzdDazZQeGlyM0JXOE5JUG1NMkZDK2dwNWdIT3ozMVVJQ0tUL0FGQ0JTd3lZU3NpL3pHbzdzS2Z1WHU0VTJnaDZrZExrLzF6cHpOR1U2Q0VZUm1teDVhdlo3R09ZeGdXeEdqQkpsTkZ5bXBnRURJT0ZlU1pXYU14UUNrTXM3MkxGaUcwcUg5UmY5OWl1TTJDVlBmc1dkT1NiUzMrWUVCMGlVRi8wRzd3UlZBWmRqbXRPSUwxOVhYcFhTc0dxaG9iT3JDWXRTdkVjR05ETzI3QmlheGRWZHo1dUQ1ckYwYm91ZTBsZVhrbFJZZmJiaXlpTzZlU1hLUXNPZ2NuZnEvdHJGRk9QTkI2azdKenBrMDUwZmkydHJOS1h0NzYremIyY1h0TmRYV043Wnl5K2JqQVZsNmlZMytsYlcza3FQMmNzdm1yY3ZCSDJsYU9uenNIbW4zMHdtNHV4cGVqR1NpRkZxRnJrKzZVazJjNWpCYjJUSEZ4UEY2VXFBaHlETStDcXBTRHFwVHBRQjh3ai9BSTRtR2hzRHd6Z2xoV1AyekFlcjNFZ3NaSXNJZFkvY0RFY1dRSU93em4yUGtEU1ZoTDhJdlRQWUVLRWY2TUJpK29qeGNYdXBXMW91aE9LQmh5RmJvVnh1dGRxamJCc1l4ZTFibmhpaGdPQlFuSEUrUmFSdWR5a29Pb3NZRmN6bnc5V0Z0VjI1R01SMm9ibmNrVjE2WG1MZTE3ZUVjd2tRZzIxRFluay9IcTJyYkNsdlZUUnlMN2xqMndOcGk0cFZaeVNUaGM2UW56NVI3eEJYdXBpYWprTHdXdmE3cjNEbXU1LzZyaFpWL3A1YjRyZWp6aTY3WXlBem41anIvTTArMzlscW1zcU9kbzMraE01b2pva1hzcnZPVU9NMy9iMkc5bitGMFczVGVBVmo2dHMvbElSTldvQTNXalRjbVJRc3p4NWRoZ1pIcGdaZktZNFVjUmE5QVpXTjBvNGhEU2MyakVndlY1MkdqUUcwZk1tT2Z4c0FsV2FVVUtHUXk2WWFUVGhYVzl5V1JOalNRaGxPeE9kczJjWHROUjB6NGxMbFZMc2NvS1Q0bTlBSDdPR3JTUzFhbndVVlBQZW82WUpHS01NT0VtNFdBQ2M4Qzh3dnE2ZUdORFVCdy8zb296NS9CdHU3cTZ0SC9NdHgxV3NiaXE4UHlkYnB0VkxJcTYyYzFqcytyckpRbittT3lCa25xUU85V1ZkWFNqdXlUcWNSU2UveGVYdTZTbTFPWm1wN1VwdzZSNnVTQjc0SFBhWVZqL2x3RXZyd2RlZHFJZWRERHBzbUNFZTlwY1lLQzZnd3pITm1DZTQxVFRWZ0ZheUlCUkg0V3JXSTVoUnhERyttRWpxR0pGeW9BNWpoL1dBVnRGSGpTMzdsSkRoeENNcExzYTc4RVFJdFExRytZeFRZeUx3V1lwWkNLYUREcWJ0bjVCVVNCYzllRjRnaGlGdEIzUjZkMFpveUpVRXlrUVRzY1RWSmVwSGdPN0V5SG0zNDhWdXBxVDdiSFpzNmJNbk5Kd290U3BMM0s5cFZpRlphVmx5MUxLN21NVjVWTnZlbUhrL3I2bFN4Y1BQcjdqRmYrMFJHL0hLOXlwbFJhdjYzdUMxeU91azJhMzFDeVBQeisxelZsWVVGVlpXV1ZMSlZmWXlFNkJ2L082L252WEROM1plczNPMVllWG5CL3JERGROYi9zeGNBTy93RHpBT3NCWFdGSGJDU013R2F0Y3RWQ0h3UkNIZ1lCemRvWjRDZHhQRHFCaDJFT3d3azB3eG9vc0VrdVVUODlTV3hraXpyQUZzdzc5SEw0eUZxdms1K0RLVDdtUDZ1Unl2eWo2OGJ1Y0lVanVqTEg4Q1BzQXZ4NzUwRFRsQjgxd3VESUZaMEs0dDFTeFJHYWsvQmlxaEVQRW5zRFhBWEwxTVB3K25qOHdjTUxsTEdmSWoydWFybU5jVGp2ZEk1TUp4VERUMkdDUEoxaWIxVjNybE95dnZmNzZhM2JKV2V1Mld2Zi82ZmJiLzdTZlh4L3d4Y09sbGh2azU4K2VsWisvd1ZJYWp2c0NocmwveDcxdnZJRjcvejZYempVS2MvMXg3bHd4aHJraUZFS1p1U3J6d3BXSXpwVndhd0JsbURWd3d1dXBvSE10dEx1Y2pFNmZYcE54ZTJNRFEvZUlDM0V6aStqTXJCTm16QmY4WFQ3K3hodnk4Yi9QTmFpenhwMW56K0pPYmRaa0J1aDV2SnZMaDNYVGdoWWw4NmN3RE9JYXcxNGJtQlhFZ0dSZE1GTUhFU1hlQzlDSXEwaUIzMGNSTW1NWDdIR1lRM2lVaVBobWVwWUQ3UWNRQVBkcXJnNVdoM1NHRWdLQ3dNVWw0aXJEZGZtWVdtOUtUYlhpT1FrcDhRNGNJcnBPU2ZKUjZ3MkcrNEVPcnZycGNrRklXQTNOMVQrNzMrVk9CRVBsamRhRkM2Mk41YUZnd3UyNi8yZlZ6UVpyUWhES242N21PcHE0VTIzVnR2elhOem1ySXFYTzZCVGVjWXNqNm82SFBTSGhwWmVFa0NjY2QwZmhFRDhsNml5TlZEazN2WjV2cTI0alBIZ1U3ZU1FamdIcFJKT1ZzUGdSd3crQXUyTXhaaEJlVDZ3QmdUazhNNTlLTUJpVXBLQ2tONVJTQTJyenEwdFc5TnMwNDJqemF5YlNiNk1yOTY0YUc4NVRWcVg4RDhYMXloOHEzN0VGL0RUSGtETWZLaDViL29kNkprOFppUzN3bmVyVnNQd21XNEJYSVJzcVM1YWE2T0tqZXRPZjBadFFrREVVVWE1VDVFWGhKakV5akd6WC84M1pGNHpnTlZ5cDZ4OTRsVDAvUDMvc1R6V2VZaVBIbERsY1ZCY2V4V2M1Z1RrSjkvY2xQZGtMZUlpY0pib042RGJPWnJtT0RLSHNaM1RTWXpwbDhzeW56RW1GSElVSU92K1hBR2VhOFRhVWg0cVRoWnBsQU4vWEM1OTV5QktnZDg1RmljLzM5dmIzd3gvZTVoVms0bHhsQ2dZeGVrQSt4RVg1cThHWmRUOWpBcldsaHFpVUdDSnk0NnpGSnFuSEVONmpIa3VhMGwrdkdsQ3NFbkdKeXE5cjdvODR2M2c5KzR0bDNOZzZlN0p6R2NmY1kwL3lWMWNKWnVNbnh5SmtvMXNRQWJld0Ivek9MT3JEUzFGVk1reVFKQjdtRkk4TTB5SUVobEV2Q1JRS1NndEtDcDMwcDNTWmRRMC9SVzFPampkbFBubnp5aXZmdlBOTytybGg4K1lONUk4N2RaOTg3cnZmbGM4ZFBvemQzLzB1ZHQvMzN2ZGVmUEhWVjE5ODhYdkFqOU1JY1ZYY0dSUkFOY21vSGVBVjZBWjhzQXdHL01CV3BIaU9FTDB5emU4QWtzSmlNRTdXcURST21DM1lsclkyOFVTQXJGMlhyWjdqRlFGTGlvQS8vcm5kNmhEdFRvY1RQK3p4ZXFXL3ZxRjREc1dSTUE5ZWJaSkNWVjZYeC96M2d2THk4L09wek82SE9ZS3ZSN1ZvMHdrSmN5d1JXUUdJUjBLd0R3QnpsR3J6NVRCZnhRZFhFQ2t5SzdYSUk1QTFES3pQcnNuSERTUkpTRkNMYXFTcVJ0R3RMVk9uVG8vOVdValNyN3BXQ01BSXc0VTBtS1FtaVBuZHFhRmxxK1gvd0NXeDltUnptWGorVXlEYVpNWGZXZGd4cjZlL2p4eU1ERHpieDUxYWRuVEwya2VINUU4R1JZOVgrRUR3QVE4cUt2THdmZk5XTmN4WVZIbUFIUDFiMkYxYml5ajlKMEZYQ29IK1p0U2RuQjNGT29EQmdDcDZFT3p3T2c3SVlrbUlRbkFlQzl3Qm1Nd3JLRHBIbGVDekdUVkpVa09EVkJoV1VETG9MQ1ZSc2FYRTJJS1JWVlFKZ0FTUklxQ00rQ1Iwc2tXL3UzWGhjdmtQM3o4WXRBbVZCc3ZVZlZNM2J1cGJ0SjZnMlo2Qi9rVUx1bnNKcmJWekgxdkluWHJpb2NlNmdsOGVldTZGbENOYUdsM0UrNFM1WGJQblJOdmJZOU5tVHAvcG5rdUlmUzdxS0pkb1BIWU55TG9MYUkyaUdoUlAxdGRncE1NOWVveDR4YWdhc0U1WGtZSXdnR0ZYZ2h4RkZ1aXFqc0hvS244dzdnK0tSb09IRUdiTEFDSlhmZDBFUFcxVWRva1U2M0c5ZzYycGZselJ6c2R2VTdaalAxRzJqOG9MWU1lQno1Yk9xcGZ2KzEwQmR5cFdOZmF1b3JFUFpTdnVRN0NaV3NSMEN1TFlYa0F5R0QxSlpYWUU4UG5NWktjZUFEa204bUo1SFF2cmlvT3dhQmNNNGtFTFI0QnMvUkFSbDVCQ0hFY0Q0ekJEeEZXTm9vSWt1Z09DcElrTDlFOGZWK2pKdUhVU3V0UnJZaUtIaWVVR3czb0doQ0hQdEs1Y3VmT0pwWi85ZnVpNVhrVlc5K3dldkh6WndoV3JLaXVTall5ZjhRck1TdTVJckwwOStrNWc3WW1yZnZqVDZrcFhoSWdwdFhMeC9FR3BvRXhrZ21LWkVpdC9FMmlLYzZjQm4wUlJNdGtHQ0pjMWtWQUR2QWxReUNtMHNMQzBpT0hJb3FXOEhLSHlhSGxWUlJBdUxRc0dDZzJHWXFCSHdVK01udmh1TFVRSVVuZHVsd0tJMkRWTkcwWDJMMTZlQ1QvN1gzdWM4YjM5VzQrdDJ2NzY2SzZYcDRhanorRXQyQ0J2WDFvWDdXL3UyekM4bUR2ZE1NWG02V2VOUGJkdmEyMGFlblRMNVUrdFhyZXk3ZGphWCtMYXgweGpTeXBteDJLOXNZSHVWRDlaVjJlQW5pa2dvekswNElRVmdBdXhLeWF3SzBXd0N3QitHemdIZGdqV0dpdWtsRFZVbWl4V1RxSFJDZWNHS0pRdFF4N1JYY0VUK2loZXdTbytKTXJtVjZUV2FDTlpIYzVXa21lVWgweTFnS2lqVFRwOGpYd0hXVEkrZ1RuUEhRSE5xbldmbDl4dXZTbGFac2xuTDN1UkxCTGNSd1hCb3NkZzNuNVlJNlhnbHVyUjlPUlVwdzVRQmpIY0JoQUR3NC9vcVRmUktkNkU0elFUVUZIaDhTQlVVVjlSRjZ2eWhEeEJvUnh1VVZKbDFCeXpUcDhkcWNVVGs4UnJURlpjeDd6NzdLcSsxTkJsVzErNytlYlh0bTVjbWVwYjlleDFzeGFSZk15aVdYMkRnMzNranp1MTlON2xnemVJNG0yWGJmbFdYOSszdG15NlZSUjJEUzYvZCttYnFZNk9ucDZPanBRY1d0TFYxZGZYMWJVRWRPenVDK2ZBSDUwQ1JsWVJIWE5naGpNVGp2ZUFkV013eHdCdFBKL1dNUlVLQUcwK0gwSytLbDhrQU9FbThnWUtRNnFPQVVVRnNNNlV0ZExPSkNiR29jU1N4N0RJL0pJb2xIeFF2cTZFNk5venY5bVluOWExeGFCYXpWVEp1Rk5VbmVUVDh1RjhyT3BhOTIwN05GMTdoNmlXb21Rd1c0cGIySWNCbzFBZnoybklKVURzTWp0TWZENFlNQ3Y0SFd1cHRjVGxvR0NHK25nMUo2SDRIQ2IzVzc0S2JiUS9aa0VtM3pWMk5DZjNCWFBZQWRoUG9uUHdvY3BrcUVqeDhDejRlR1p0WmtJWTdJM1BDeWlEeklDZk1BT3F5cm00VUp2RjR6bjRNSHN1L3prUktzS2F1d2FsdUdadUtuQUVzS2lSNEttZThmRldXVG5Gb2xxc1pjVHBPQXVyenBmOWZwNVRjcFZJWXllWk9WS0pTM0xtT2M5L1dPeHlGYk1XYnFwVTJlQVRIUEpiOGxzT3dkZFFLWm53SFhrVjRUQzQxenRBdng1Ri84VUo3R0ZBcENJS0o0TWdBOEtLMWVtMFpRRDEyZ0YxMmtXN3Y3U0k0bGJkcExqVmZta2tXelR1TzNzNEc5bks4ZkU0RjkwQnZGbWs4YVlnZzlPejRydXlrSWJUZFZucEZpTk9oM1dZNndBK25QL1FxWENJbVROMlV1VVFhMkVPVVQ3SVcwd0tqN0NFSlpWSDhoYmd6YzlBWDkrSEdGMUNkZWk2cEFWMEJWdkFaNEd5cXNGNk1HMzl3QjhqZmhjeGduUXBTaW15TExsaE1EWWlSMUozNHdiQ0dFUTBieVI3MkVEU0dRaUE4dFVGYXFzcTRVZEZLVktockZvYThGRjNVSTJESFpOZ3JYaTlQUWZ2czhWdmZQMndqcWxLSktvWUMrTmZQM3ZtM0pTQ1FjS25IMnFiUGoyVmdqL3Vvek9QN0g4ZzBsZnNkaGYvdkVydnRNNXFuejZ6akVLd2Z3azdsNXlQZW9WalJIZVBxV3NIK1MrczU0NXdjZFNGK3RHQzVOd2lGMk5rSUh4aW1SNFQxaU9PMFhNamlERmpJOHNZUnd3WXdqNEV6QUw0cGRQeEF3RENTR3FIMTgzdjdrYW91Nys3YjhFOHVOR2NhREFZQzRoQkMvSG9HYWVuTEMwcVFCV0d3WExMdGs2QzVnNHpJYkZlTTJWMnFaN0pzbVVpVy9zZnUrZnVYekpqbVMxMXphSjFTKzVZdUN6ZzU0c2NycEl5YnJhaHZEallLaTU5ZFB1ZW4rOVlmSFQ3VjY0ejZLeE9vOTVpYWZ6V2dpUC9jZU1SN0h1cWVtYTFWQ2JNaUU3ajRnYyt1Zi9HVThNOUhiZnYycmIrcDN1Mnp6RHE5SzQ4K2JWeWx4Um8zOTV6MWZGVlgvMzR6aXVmSEs1Z1MvMmxOcHVkZDN2M2ZQalFpN2psR1RrMTkvcjI2dnFCRzJMckVIUGhZOEIwWjhIUEppRENuNUpzUkVhd1AwWjJQZExyRFVNbWJEQUlLUjNIc0dRRkFrekNJakZHelUwd3VwRmdPbHN3THBvTlpjU1c0MG1nWE1pdm4rU29JMjNrL1hxMm5tWCtyYzZNaFg0MWtsNmliUHVpOHRlaVhlcXhUY3AyMGRnamFoRDk1cExyUDdtR08rSVR6bCttSUR3RjdSMDhtUDJOTlNyYk4rVEYrREZFZmZOTW9IVTcwT3BERllCZ2Q1emdzWjRqdUtJV2xrODUrREE5NXZUcmVZSmZBZk1SOUtCVEEyVVNYNVVtcThBYThUeUJIam9BdnR2SUJUcTRBTFNKWGFtTVJ6cWROaHdXRUVJMXNVaTRncmh5SC9MNmcwMUdiUUhwRmJ5WWljMHlMR0UxakE4d21XN1pvUi9Pbi9QSHQzODY5b0pDL1dXWHFUYkxlUFMycFVzV0w3L3R4WmVIVnIvSUhYbnMwSUlkWXZ1NzMzNUNZUUpyVkxaeUtEbXRzMjNNdkw5ckZyVmo2d0dmckFjZkhrT2R5V1FsQm9oSVBRNHNIQUtiK0dFOXdCVWwrTXJzTXd3MUMyR09JRjhBOU1HZ0tBVUNCaFhPTzlXY3Bwb0NoZmtydUZmTkNDbVJjQjFOK1hOVnNiWloxZlhPeld2MzMvNk5BLzNmWEZGZ3JmWlpZMmQvZmZUVFcvYis3ZTRuRmpjbnVWT0FqRWNGTDFDNDVwclh6cHorY1hXTllXR3dyTDV3NDkzWS9keHA3TDU3VjRkbUExcEJucnRCbmg2SWZKY3FZaXhTeEtlajR1Qnl4Q2VseGNjaERzUkh4S2FNSXpBc0xUYUk2Z09pendzM0xRRVYxMU9SS1ZIOTU4dUx4ZWYzN2ozL2hCeFd4RE04ckNycmIzWnV1UGYrKysvZHdCM1pKMzkwNW96ODBmNWNBWjF2ZU9uMDZSZXBiQWc5QVBoUkhIMm1nTjJZa3F1R3ViSWN4MjhqWXVJWkZnSXRqSTJ3T28xR0FXdzd4K2xXZ3VLSk9wSVpzY0JWMVZsWHNUdzMrZ1V1STZ5clNTZkd2K2gxeVZaa0FKaGcyRGJoU2owSEt5TTlYMUFzNDBybGVwUzVmR0NBNXRXQjJnWi9zRkcwU1g1SHdFektjYXBPZ2Zmd3UyZzlUUWVyUVEzMDZhbEpCY0hGeWtqK1hMNzhReExwZm9qdmFlbWNWZ05oL21DdVBOamJ1U05sb3Z3TGtpdy9ORVppSy9tZEg1RXY4amNGWDY1a2NtUlNqeDVTdUJ2U3VLdVVEOWJyZ1R1R0lhTmlLdFAxQTE3ajZ2akt4TVhIZzdUMXdHcjl0dkZYQVBzTUt5ZGVBT3dqVTZ4SHRjUVVFKzZacUNuT2NNL21yMU1NeldSeGRqYnJwaW1zdXc3WEVON0pQL3RYRlI0ZFU3WTNxZ1ZNOW1nVzcrU2ZFdWI5ZDNhZ25XRWNSblBBemh3Rk85T091cEt6bW9Fc0YyQU1FaWtBcW1NNHJlcGlZR2dtQktMczlEN0RhR1VYT055TzJvTEJZRndBYzVOTlhJNjVTVFJtS0VsbkZteXFEODQxUDFiRi9HellTTXpQMXRVdmFmNUUyZm9jdHVWdlg2MllvaWNYcWFiby8xQlQxTGVDbUtLeVI3SWRqRHhXSkJscmFqU3pkRlVDekJJR2RJYTRlMEJmRmhMN2lzeGdhY3pjZW92SndKTGF0RFdQb1l1SVowa2VHcXdVelc0Qm5RdlIvTzQ1czJmTm5ON2VvdnBWZnpBL3V6UnRtMHlDZnR2bnl6WEREWCsydEpXeWRGT1Q2bDczS2R0T2VXZG43aEZ0Qkw1S0hZRnY3dFNPMERnWW1IQStSd0Z3UlA3MVpBcWhNdXdUckZjVmhPVG5FU2NBbjBJRTZYT0FwUGtoa3ZZVFVzQVpZQTNTT0JOQ0FabzlTaWY5RkhycUprRDhiSnY4SnpyTHYyS1VDL014K3F2cU8zOHgrZnpUQ296UmFsckhQUUxoYXp4WlgweHlyajFrUFlJUEdjMmVMUUpKcmdKZERoTmdCSU5EWWlBb2pwdXNtc1FqcVFVeWJSdU4wYlBxQ2FwQVR2LzI1MysrdDRBcTZJemhCUXRrTmMzRnZLL05kZXl1RjErNnMwREEwNmxLeXVlRi9tVk1mOXBVcWJyM09zeDVKWnFmN0YwTXZxOEtJblNTQVFLb2dzRXFjd3o4MjJWV2xUSFBvaW9qUXdKZUhWWXpkbkQxaWlWOWl4YjB6QUcraStGNGt5MW96ZFpFWEViS1BXNFN2V2ZWT1Vtd0U0cVJnbzhvNUdQWEY5VkxuS1dXWDZMa1J1UUhwd3dLN21DUlpDMnM4WmtVSHV4dld5eTVpKzNCZ3BLa1VDWFdiMWYxdENJWEVlR3ZLZHRxUEwxUlBiSkg0NTM4R0p1bzhjK3E3eW9LVkNoSHVqc2pUY0dlNGxCVXFIdnljM1QyUlp4TTY0VG1DeUpvdFFZYUdVUnlVNk1RU0NIZEVFUjlPZ1YxYUFuUVVoS1dLVVBBRXJDWTI1WTlFbVVHRGlUekVhbkNoUW5UYlVHS3JiSldyNlk2RjNOK3pDZVUzamZ4RU5XZmpOdTc0dzVWaTlhbHRRampLWW9DMVUxMGVCaVpnTWFYZ2NZVXNWK3pBMTZXSTFrQWp1Z1FIalZnb2pobTAwV3NXQXAxejVnR0JFZ1NXYkdXYksxeFRLSVJaaVdNREpueDUwY0pXbE9Wbi9zeXBTVnViYzAxVklPNnIrZkZLaU14NnlIZDh0d3pMZmx4VlJNOHJsTGR5V2QwcFM3c25YenRNL1BrRGFMWEsrSzd4cDZlVEIrc050bUYvMkt6a25VR3R1RVk4S2dERFQ5VFgwQUtWV29NWGdxTGlZZ1hmSm1pQ1F5RGg0bEJDNVBpdFcvaVdYYUlpRCtsR0JERm4zZWdOZ200RjRkQWxMcThIRE1TREdIeFVrWWZRckZzYTYvd3JLbXVOUmExeWUzYzF0eWdxbE96NklhS0F2d0FwMm9OdmpyTm96Ni92OWpEbkJ2NzNtUThLUjJiajhjMDNXRlFCL0RsMXYvdHVobHIrdlNXV3o0OWVwUis3ci85OXYza2p6dDFsM3p1dWVma2MzY1Q5L3NjZHQvMTNtdG56dnp3aDJmT3ZLYkdCVmVBZkFJUXJLelRWcW9Pa2JodHZaNGlLTU1FVjBOV0tzZnI5ZHcyYlNTRXdQektpUU1wYUkyUmZIa0FpUlI1R1ltMVYyRHFKUXhmSmxpNCtXOS9lLzl1RFdiZG8yenZ2Rk5kcStMZFYxOTk3YlZYZ3hCKytzb3JQM3RxTXM2UEhSOWN1WElaNGJuOGI1VG5UV2dHZXFYN1NRZlFhcXJEU0s4ay8wdVRadklGOTVnQVVuWVBLT2NscEFjSzlZajJiUEVETENncEtmdXZKZUcrYnRoSXFqZ0dBbCs5TURhZ2phVVpGRnBHSUU1ay9HQ0lqVmxhd1JzbDQxbHk3ODhaRHNqVjNkeU1VUE9NNXVuSmRwajZGS25DSVlsQk00MG9WVlVJNldrMkpTZXZvdGZLRUdvMUpVVGI4aTZ1Tk1YT2piMjl2aGsrVDB0SmI3Y2xyekNTN3hDYk5qZEozZlZURjhhdTJxb3pPQ3J6QzIxbnZuRU14dTQ3ZUhBZitlTk8zU2FmLzg1MzVNOXVZelo2alRyZVdLR1RmRUZmWlVtbGFEWlp6TldzNUFtSlpiYlgybkRSSzkvQjNHM3ZQZlB3d3lkUFB2endNNW1ZOUZuUVBkS3p0UDBFckhHRGxtRVFrQUhPRzVnUndnVTl4Rk9rcXNTekRNbXRja3B1cFJUQ0JaM2VhTlJ0MDhZaW8xRy9jcktoTkwvUTB6VnpPdnpTVktLRzRYaWJXYXNjRm42dWg3NEltcHhNVFpmLyt6L2o1UzdSWFpUbnJDaDJxSkhVM0ZWaHA4Y3BGZnA2R3BOcVZDVTNqMHRPNUQ5NjE3cFZxOWJkeFIwNS9kU2ZXbDNoMHBab2pjdnZWMVE1MlMyMnhUckxJOEVMYURMZGx2R2M3dTQ1b0VCM2dUM3BBTjN1UXFsazEweU1kVDdNOEFUUFlOMndRYytRYWlQd1BMTlBxbG9zV05Wd0NwSDJEcnBMSFZNWG1qTjltaFNRcXFXQU1TdHJvV2dTaVNMY0NzZVVsRjhvcXhha2FpQmhoOEs4a01xa09xV0prZjFWUEFMeGw3bjZhOE56RmtwQzFXVWJibTcrNXZMVFgzbmtTcVVkVVF5YjQzZXZXVElZRHBXbnV2c3VyKzNwVy9YVXRubGZxYXNGdXJ5Qy9IZkJXMURRTmIrcnhSdXcydXhPVVJyKzdaYWpnMnVESk5XSmV3V3Z2WEQ5aHRuSmlvU2p3RmxnTHl1cDJMTng0ME9ERFRVQmtnSEJhQlhvMmtiUXRTaHFTTmJxc0JvMmtqeWRWclRNK0JnSzdhSW9JcExZd2hGUXE1WTJsZEtMT0JWYmRsR3NweXpSbElpYytLMXF0UHFVN1c5UGtLTStnZDFMWThPbC9qS1lPWUNNSE5kNlFmNVBldnhoVWlURGFvOGt5VG1TM2h5YVhtU0hRSWcwRjBPNkg5T0FPb0VhUlpFQ0NtTW1LVXQ4b2RhVk0ybm9wd0RzQ1JGUDlaYlhEeHg0ZlV0MWJsU1QyckppeFpiVStMaG03QWY3WGwyNzl0VjlURk0yR2h6NzNmWXJydGpPQkRMNWdRc2ZBeTFuYVMwWmFKRm96WVJYS2RMckZJbzBZa2pOR05DZG1JdnVWQkNFSjZHa05Cc2VQMEZuT0YyK3k5cmMxdGFVSnorb3pmbTRzaDM0elI5bmFUZzQ3YjBYUzk0eWtYMHNoNFo3bWJWWjgvOHJ6UDlkbVA5VTFKeE14R00yRnV0SU5SeVIydjRvZ1hpZ1l3U3hjSnlRWXJCR3lsVFVRVUNlRkpSeVFRcHJaUlJFcDhnbnhFNUtsYko4Y3FnN1JXYytaUzFiV0JlYjFtTDU1b09XMXM1WXJZc2RybE5wVWdIZGpzWTc5QlhWZFZXNk8rUHJKOFNpaTRzOWxqSVIvMFlPaTJVV1QvRTR1cC9Gajd1TEhDNDV4Y3pPeXUrQVFsSXN0NUJVTkdmWGx4azVJa0tUVVErRUc0WXNaa1pKZ1N0UWw4OE4yR2ZOaUlOQTZiKzhiTEJybkRRWlBsa3UzRGlaMk4ySkxNYU1LSXlSUDhaaVd5NTBhL2pPWTBIMXlLaXliY2VpL0VsckxzTWlkeHdzVW85c1NnZERlK1Vyc3Rmbmh4L21CUEgzNEszWmpQdjV6N05qekFyZzExSGdWenRLSkJ1QVhTeGhseDRZUkdKaTBKTkpRdmgyMUtxeEtVZFpKa2RMbDF3SU4xQnFxdVJIWDFVdDBTNWwrNnI4ZUN5WDlzN1RaeG9uTE95UDVHeGkwUVhHbEJQdnZZV2xkTHkzRDJpZFFuTVVhNVI4cktoMEsyM0w5RFJwYVlCTDlUUk5IS2YwTklWUVFDeHNGQXZUR1lOMFMxTldzRGRKZTRKNzdHVzhsU1R0SU5UN0JkRG9aTnJsNCtRN1dPSUNTbXViNy94L3YwMFRtd2RvbkRldGxEWFNSQ2RlcWZTTVlDeklUN1AzODRQSVRYSXdKRW9sRDFOd3lqTXhYT2FaR0JqclJvVlNZd05wbmVEVTBvVTZGelhCYVBPelh5S1pRNFk2THBsbUVaL0huWnVxcDAyTGVRVmRSUENTdmMrS2xkK053ZTgrU24rM0loa2d2OGRnbGxtZmFYdE10eWE2a2Nzdk5mSksyY1NtL2k3NVdadTJ3OTVLK2djWjhvTzRVMzZlYm1WKzBDdDg4bXZCRzVzMnJacjdFL2xVZFBjbC9Ddk9ESGpDaThKUDZkWk1UNWE1cmFTQ2ludUFic1RzSWMyUlY4RkFML0lFdzV5aEtQS1VEazBucFMxYXN0RmxERnNvM2FERTNGNXR4TzE4UEN4NHZHSDljOC9wdzE2UEVJN3p1TjBZaTNDbjdJNngrMDBHdDJneTVGdnhYdms2YTc3QkpMb05KbWFWd3c2Mjk4MnhDOXdIOHJ2SWhzcnBmRnpqV2FCMGZ0SnBUTWgzY1c5YmRUcHIzbWVWZVhUTG5aWGZ0ZFhVMUZUYmJOV3dJYkU4ZHJKamJBTi9GTzVmVE85UFlsZWxSYkxJbWI2eFVxWUpCYlIrSlo1dEtDeVhMR1o1cEtpaUtXWXJ3TXU0L2NEVmV0MGJsdkpRdk50OFFjRzVXOEJ2M01zZVIzV3d2UCtndEQvbis3Q0JiVzBCM09vQUNsZ0lQbktPNk5tZUFTVk1Ea05vUVBxc1JrbVBrZ0d4aGhGU0ZxRFJRU1NsSnp3WVpsUkFyTnk1L3RJWEFMa2kzZFVhbTBxVHRaOTNGVXBmQkhHZWRnMEpUT3JyRWFwdnIyOXJTZ0J0dFNLZ3huaWpXUU9OaGJtQU90Mk9ReFBNSkNPZGFlbk9kUGZIRTQwUWtTUmVGY3A5aWpXNnZIMm9lTzZUeTY4NDJ2Lzk0M3Z1WHJTeDVlQXNtNlU0VkpBZkczaHR5WU56Wm5YTytITEx6YnZZNC8veWxQeE9SVlF4VFBXSnRzN1VWNGNQM0ZQbTdVeDZpL2hBVlpXbjNsWmVQdlpHWFUxMWJhSW1XYXJJcFJUa2NobGZqaXBSTS9xQndtNFRDd0djRGNNYUE1R29YMGd1WHBVR0dEVTFJcFpTNURFSUdxZEhVam9hdmFzdVg1VkQ5T0pERlh1dlhvWFVqRWNFaGlJT3hEQnk2ZEhBKzhKSUJBWTBSNXJxYTJIK0ZmNWdZekJnVW9KclcyNGpHZzIySnd0ZDdGb3RYcTNONDBQZStyMjl1MS9kc09IVjNVT0hHN3pDdXlycTA4cHpucmMzdExkdlNMWVAxdFlPdHZQbFlFeVdOYldOdnZXVnI3dzFPakJ2a2VCVmk4bDcxYkQ3aWRZZDgrYnRhTzI0c3JmM3lnNnlSbThrZlhkMEhYUW1rN0dMMUZNaldmWFV5TGg2S2loWk1DUUdneFBxcWRtZEJabVNhbGFQbEZMVVlEOVJpaHJoK1Uyek43VzBiSnFkK2xhUFBUOHEyQ1BMMzFoLzZQMGJkdjNyM2djN201UHNjVERKTDlERVgrWHNTTWVPVkdwSFIxMlZhVzZrTEZyVTBMenpyUU1IZm4vOWpqaUpLeGcwRERROW91clFkNU1tSHl4ZEcxWWVIcGhNWWNqVFhpeVI2OFNGRy8yY29VTjA5ZWx5bHF5aU1DelByYi8wNklrS0l3WURjVkZUbUt6SGJvSnRPSnR0aGU0c2hVSGpGSWI5MEt2Mkl2eFo4RFljSGxKVXAzZHZ2WnFjd2IxeUJkV1ZKTlVib2pHZi9WVlJEcSt3YU42QW9qcHRUZGl0YVl5aUs0cmVLR3QwTi9CM0x1aU1IOXgvUjdJMW5TSG00U1NQYUI4dE4wd1NWUkdhSWlaY0NMTzlnb0NRRUJLQ2tnZ1hsb2NkQWdSeEpXcHpvT2kvU1A4SmtLalQrd2xkbHJPYnZjTFlMc2NOSys4OVliRVVsdWVaM0NWcmZyYm0wRnZici9uM3I1K000R2R0Vy92WTQ3dlAzUzE0NWkxT2NCVTFnWklTcjlFZjNQbTdXdys4dGZPOWUrWW8vZDZQQUNaYXd3ZFFFN3BjRVhGWUsxY2FNS1BIV3NIU09FenF2ZEs0Q21kSUd3c240VjVHUEpLNUtLZTBTUXZESkM5RUUyeUNXRVFMdzhwakpzcnpKYUxneFJuME1XazZRMm1TcG12a25rUEZ4U2FMV0dTeDNUaDBFMDVRZlBKRFhLd0NTRFZIZlBJa09YN3k1REUrMEdUMGUwcWtxaUFmZXJpVjFvaW41eURrTTZSRGVzN3BsOGxha2RkeGo0QXNhMUVIdWtONUNpR0llYjIyVmlJSWxKbG51VkdUZ1p3YU51b1kybU9vMS9QRDlEa3pyUlUzU3RRL25qTmFjMVhLcFVQb29oZUMxNnFyQTB2U1VkYytKVTdhNUFOaWtSaFV2WlpiYVJVZmwwWk85NlFSLzVTelBNWjFYbTRsUnZQUENvUDYvL0xudnRlWDErVGxCNHJ6ekM5Y2VlMG1NSzAzdmJweDQ2czNOVzdac2p3NTB0WTJBblptWHZkTXpXeU8xYjM2Rzc4M1AxNFVxNjdrV3RhdVg1ZG92ZmJYWC83eXI2OTk3OGJ0MjI5TWJPN3QzWndBUFFCNHhqMEU5bVk2Mm55Q0pjOGZxVStoU3NoZ1VCb1BwSFNyYkdSODNhRTBLUkJ0TWlBajllK1REMUlVYWpxaTFRbWFVTkE2RGRUQ3ltU1JDSEhvVnV6Rm41OHN3NDk3cjNsMDJTMWRxZHpLUTNXOG8zbERSM1h1d1l6WG9aNm01T1M4TzFmTHd6bXF0YVozM3ZDRGcwZHk4bUo3dFFEc3dnVzYvdWJ3Q3dzRXRCNmhBZ2F0c3lyUFVUOGdyMlB2cGNmWDBxZW8xNkZuNlhwdGd2RUhnYmRUMFJWSlkwZk1iT0pJZ0sveFYxMXlVc3BBYzVLZ1hZR1V5VWhZaDRaZ29TcU5Nd0lZSms0UFR2emlneFQrVGtWSnFZRVdMNlJHd2wrcFVEWEFJVlovcVpJZ2lDSWdxcUJlN2ZuUU8rcTVIUjd5MUdPZDUvdytyVU5zMVhoV2dpSGc2aWp3djU5OFZuenlqN1kzS3R1QWV4VjR4Y2k4eVJnSmRqRDJxMkE4RVF3bTRzRWZ5azhUUHQwSGZPb0FQdm5STElVNWJyQzYzQkI1Qms1S01Xa1BSRkNOQ3c2Q2orZlk5ZG5IbGNmay9NaEhLbmpxWTNLWHFGTXpQL0pxTnVpOCtxd250cDFUZDQ0cXJtVnlSY0FYUG9ENUhnQzcwNEVPMHdkdW5tbE5NRVN5Z1BCYU1hOUxBUGFnQ0k4OGl3T1lYakVuQmoycjB3VlNITU1vb3RYOE9lbUgxRTZTNEgyU29Va2ZHVFdFdENGcXcwWWtQV0pBSzErMWd4TnVETUQvbVk0TitzU0tUV25adU5qWHpCUDFwTEdaMmlieS9MS3cwU3ZzRkx6RnBkV0ozQjIxT2VFWWhKWTM5bnd0RXJ0dUZudjg3bStNblNFUktHTnVyTHZqZ1B6NGhQM2JOUVc0L1lvcmY3eG12Ym8rbmdBK1RrY2pKNmFSZUYwMTNCN1NwMjhZTmhrWmd5RXd2Z2V5TkJra3B4VW5SeUlRR0RxRUpobW8yWjNPdUdaNHpHcWk2UC9aNGlqOEFaODI3MzltY3o0VXZEZC9INnp6RjdFNERLUHg2ZUQ3NE9PMkFsNVpEanpLUjc3Y3VsNWtRbDNQVjFCV1ZKaXA2NDEvdXB6SndWcU0vSWZyci8vRG9VUDBjL2JHcHFhTnM1VlA5amdCcEcvdFZEN2ZVeENVaHJrWkZKQjNjcGZCZkdwUUV0MmNORVV4eDVzd1N2dGN5VVRTbFR6eHRUeFBYYVl5eFV4ZUtrVGNSalVkbHVWa1ZXTjRzU3ZBeTVLSHZtcVR0UjBRRzlhZ2FpSlR0V2lWaVV4c2w1YmRSRWF3SFJyS1ZGdGNaWVBxY1hPdzZJYXNVSVU5cmlGTitad2lyUEUyRHNEb2U3blJDc1gyd0x0SE1yd2p5Q0tRaFZla3lYRktPRk5KQ0xFcTd6NGZvT1JlTVlGM0l1a1F1QWhDbVl5RG42TkVPUWlsUDVkL2o2U0R2OElzME00ZXp3cnR6bCtuYkpWUDdOYWl2L2ZHNDNhSTljQldFTDJMbzJkb0wrQ0pldkxzVzA4cDJXSk1ySzJGbGt5Sk9hVTFxVUNLNUpUU1g3S3JNYXJ0cmNxMFRtWXV5aFM0eGwyVEFkc1pZMHdiNlVpMUo1SXpka0I1K1VZY05TcW14MDBMS0puSDRsVkw0NytFVjZiYXluN1lYV1czUjR1dEJWTmFVM3ZuWXpXTk1iWklyVnZ2VUYyV1hmQjJ2N0tHUFQ2bHZNRWZqY1lNdmxXUGJ4eWEzSzc4NjhIN0ZKNGVCZHNTby9hM0p6a25DWVNYamF2eFJiSnFmSkhQcWZHQmtZMkpBYWxhREdpdkdhRjlWMnFGVHlud2FjczA5K1VpUkpsSWZZOVcrSUxab2ZXUDZBdEZXZzZ0YWVuc0NxMVlmbjFpM3RMbFQrL2FmN1gyVHBHNnc4dS9HYTBxWHJiMllNdStGUSt0Ly9xTzJnNzJ1UElta1k3R1NySFNiakthQ3d2OVZ3MFA3ZStlbFg2UFNFZnp3dUl5RTU5bjhmbDdqdlovYWNZY2svcjhNNG03RjlQZTdIaXlIbHdSU1l1TzZ1anpsU3g5dmxKdGtNenR4cGJFQ2xHUUpLMUFsbTc2dERuVnZJRWFFcXFWUGpVc0l0bGJ4bG52eE50cE1IVHJUYkhyRnhUbXVhUUN1OHYxazY4Zk8va1NPZnhTMnl6dUZGbE83OU1nNk04UGh3TkdzU0xxS2ZTYU43eDhHb3NrRE1JbFN0OGp6UDFyN0dFMEJhMCtZY3Z5b3lVa3g4T1I2aDdIa1pmeVpPY0lrdExFazBxY3oyZkgrVlNScDZDNEZBRGNIaGUxMG1WdWdLK2JVQStrK1RwaUp0cXlxZ2ZzWDd5cTAzeVgrTU1NYnNjZ0h1byt0V2F5SUhzWWNPTGxHVWNJbmhNL29HZ3pZSGRydHRja2RSSFM3d3IwWDZ3T0dQamZxZ1Blb05ZQmY1Yy9mZWJNYWZueTc2ZmxkcjkxUHZWMFFqMHl5aDVXNDdCQnNheE1aSTdtVkRwbTRWUGo2NEF3L3c1U0IyeW9LcUIxSGFUakVLZER1WFhBUUZZZGtEUXJTY1FMaXVQcmdEaVRMZy8rVDh1QTRUc01qYTNOVS9JTzNHYWQwdEphYi9pcW9CS2tQaDJ5dUh1ZnVTb2NpWmh2NloydFpXVXlwSktTSjE0dDN5ZVdlYVZ4Sk8vRUN6M2VvaEw1WVh4emRrMkxQQmV5RjJqL25CcGc0R0kxd0ptMEJpZ1dqcThCNnI5d0RkQVJ1bFFOY0xIU3kvWmZtSzNQTGZoWmQrKzBxVWZ1VjdaeCtlT0czUHAyM3VpMWhlcVJWUnFUUHBNL3lUYkxlL2ZtQUVMRHA5bE0yNzA3WFErcmtOZFNIVStRZm9NcU4yMTgwNm1xb2E1aFJEcmV5T3RTdFBJOU1FZHlqU3ZmWXl1ajE5RVhFYlF6aVMrbzhFbjVwcGszSHJsSkNwUVd6MTA5djBuK1NYZXUycmNlT3hZZnIvYm4vM25yblcwY250SlZYOFh3ZFp1M01EdHl0T0ZtdkRQVDkwaHJmVUJiaE5UNnJCZXY5UVcrWUswdk1MSFdGMEZoMFIyZjdQMEZPYTJkY2EzY0Y4UFVRZEY2bjlVKzloR2UwVEN6T3BhdlZ2eXNkc1lzLzVRZThRbHNDWHNZYUNtVkhHUG5kb29lUzBteC9FOWE5WU1qakh1YmNrUXNnMGsrSkQvTnZzOFBRcXkrS1dsdGdVQTJINllmQmdlanZmcXJOUDJxQXBLVVpOYlN6RFdoaUw3VXhrOWVwWUk0SG8xa2hvSEl5Vk9ReEY1alpuNDZGWkJvckk1S2dyYzBvRmRmd21HbENXMGZBM1M3Q1BuNVdLY2dPZTJaZWRMTXBUd3JyNlZxNFZzMURpcSsyR01wTFZwMVdZamo4YWJycjkrS2pUaTJjV2xScWNVamZ2WUJtNGV2dmx5dHJXekhKdmFEOC94Z3BEMFdLNGdzNngwdUdibEZOQW43MWpsTnV5MUZuZk5DK2JGWWU5VlRwNzIrcnhvS0ZpKzN4YXFxb3JiQnhRWEd6V1dlRThkb2ZmS2NmQi96SGsvZWFSSlhlSkw3L2hIdFJVZ0RFMTZFbEhuaGlTdXJkWWI1VG56YXRDVDg4ZHU4d2lmZkpwMHd1bjYvVW9ORjc4dFBjeUdReHpRMGtyU0MyK05xNEo1dURFcVZsZ2NNWThrYjFwUUhnNUgyTnF0S1RwTUhyYkJraGdFSUhFREthL3hZSWcvU1dUd05UVzF0RG9TRFlYMzZCVDVLY1VxRFJQRE5od3MxT2JTcitGcGhmcUl4aHFsa1l1bDZGK1AvZ0RYaDdSclRyOFo1N0FlZmlVUkVTemZHUURaYnI5ODlvdU54ZE1NZ0ZSRS9lT3lFcDJ5enNXRHhvQzFhVlJXekxWOWNZUGlxejN2NnFTb1FVMzVvWG1lUlpiZkp1VzZmWUFyY2ZlV3d5ZDQ1TjFnQWNvcFFIdDJFRDNEZHpCZ3cvM0pTeDN4R3NJSmpKUUREb3ZDSFpkQ0FqaWV2UEFERVJCakJRSFRLSUdZK0FjekFIMkRyS0t4VGh1VUFPQ3VqNFNncERTcURFUm1yMWVPRG9oUVM2YXVBMVBMdnhQcUwyamVtMTE3T1FkNVU4ZDZLYVkxZFVxaXQzRjdvRDFmbnRleGZHaDlPeG1lTDJVZVlNVkh3ZU1zRlJ5QWNzTG42bDBpQ3g1UDVwc1JuYnpHTjdFcTFoelpCcTdaVkhLa3FLYVJCVU1ZTXFERTNnK1pQMGtxYlhTeWU3S1Z1ekk2djlmZHIvMkpUcDhiSUgzZXFQK3ZvTDVXRHNhbXcwQUVYQkxuMytPMFErZGVpZWVEeW5xTnpjcGd4dy9yQlN5Nm9aSGpUZEt3M2MrcXJlcVlBZjlrOXhCTHNRYnpKYk9MTm96cU81TWtnUXQrQVRMekJOR0MxNUxGbUk5WWJ6UG9SWkRJWlZpR0R5YkNBUEUybVhLcURTM1ZZbDc2ZXZwenlVcGNQSkQzejU5ZlZ6Vjg0ZjJIZHZMcTVQVjFUazJLd3FGZ0VXZGFTSjJrb1g3UUdBdlZ0T0ZSNDJydHc0RU5TWHhRVVV0OFVWT2UycTIyOTJoTlY5T3FFK29aUFc3MlkwRE4rcDFzT0Z6bWM3dnV1ek1zcmMrZVZnbnV6dTMySDNFNW1zZk44djhWUTZpMXlzdDhtMjhzaER1bjJWZFpVeW04N0JKMEJ4NjBSTVJydC9qdC9ML01Ud1I4TSt2SGxyZnJhVXBjbjczcDlpWHZzbjBMQVdPaXdqUDAzSDVWZ3l4ajU2Rml0RUFqNHIzSTVuTTZycG9yNUlJYnI3UGJpUXZuV0gvd0FzU0NyRVBlT0txc2g3S0tTeXRja05STWtaU0JHcFJpa2xCekhhaVBtRFJZRGJ4bk53eGF6MlhKNUZzdVJnVGNaUnBCWnJ6ZjNJN05adnhMcHpmcDVhbjF2NWdTUkdZd0czamlLakJhRDBiTHJDOTh0T2V2U056Sll6THN1ZVNjSWU0dnE2dXFHNmxZc1c3cG9RZmVjY0VMVkFldi9odzZvYnhjaUF5ZDl0VkNkOGxCOHZXSVl2N2crREZUWVhiSyt5bzF0TlpHR1dIdU5MeHlwS0ludm1YcnR6WE43SHZxK0wzd3hyV2dacHhYbmp6dWR0N25zaTZMMlg0a0pYMFhNMVVVVTVLRGI2aW03YnUzVWpZbHJRaTRIV2NzZjA3VzhEVFdoYnJRUmJVYnZVdzBwaXBJWEtZS1dkT1FEb05zOG16SGtyY1ltSTYvYTE1bnBMZ3BEbmpIUFlCd0Z6NEhJdTQyb1F3SzdOS0luUXNuRGFLUUE1eG5NZVFOV2JMUmdrOWxvSWdmeXpLdVFPYzhNeXp1VnZwR2VJVlcveVcrb2h4dWlMM0MvZ2FUWTA0UFFwc3Q2TnZhTXJCd2FYTnEvZVA3Y0dkTmJXMmpaVUd5b2o0WnRFRjRwTmp6ek1xV3N5cGNhOW1mZXBwUWxXVld3U0RYNkdZV3dxMnB5RWF2QTFpZndYZnZYTmJaODQwRGJuaHF2MFZScVpYWFY2NnQyeHFwU1RwZkwyYmFoS1Q2bHVheHlRVW5qbnVtc2llcENSaWRpMGU3Q1NVekVPM2Z6L0xhdHExYlhPdWMxalZ4VzdNenoyNG84Wll5amFMWVlFSUpCb1VjSXVtcGRqb3JSRW91N1pPeVBWQzB5NmlGL2k5aUhTY3lHdk9JSDlKMXI2OWg3QWZjS0tKYU1wTjlXcFpVK0F1a0ViNVMrcFVwQTVZSlVGTkRLRzVOeE5PdkJObmFYOStTeHZsUExvblo3c05qcVduQjk3Q1paZmRNdDAwekM2L043VHI5Y0d5dU1laW9yUTRaQStHSG1YUzNXd09lNFdzQmdDd0ZTaGFpV2VpWmlyaXpBcFlnNTV5MXpqelkxenB6WjFEQ1RYK2dWanBMVXkxSFJvOWF2NXdDOWZoUktTbGwwWnBkeS9zZDFuRjlOVXNmNXRicHp1NUpIbUN3Tmh2NHZFZjV0Q2dBQUFIamFqWkxCVGhzeEVJWi9Md0hSQTZpdGVrSTlXS2dIT0xCT29FZ1JPWVZJdVJRSklnRnFqN0MxZGhjbDhXSjdEN3hFSDZJdjBodXEraDU5aHg3NzIzRkxxRXJWWGEzOWVUei96S3pIQUo3akhnS0w1eU8rSlJiWUVPOFNaK2lJSXZFS1hvdlBpVHQ0S2I0blhzVkc5aXJ4R2w1azQ4U2IyTW8rVVNVNno3ajZHaU1FRnRnU0tuR0dkZkVoOFFyNm9rcmN3UnZ4SmZFcS9YOGtYc04ydHAxNEUyK3o5eGpCb01FZExHcVVxT0Foc1k4dWVqZ2tuZE9pT1Fldk52cG9qaEpua1dkeEw3REJEYm1JNmlFOVBYV0dkc2YxVG96cW1jWGhDSXB2U1czd2FIR05uQ3JEU0FxM1hCdmFOZWY1MHVxS3lxQlZmMVR4VU1NdW8yQmttanRibDVXWCs5M2VvVHl2dEJ5WjF0YmF5ak5ienpSSGM2TUxMNGV0cjR4MWNxZnl2bkZIU3BXMXI5cnJ2REF6ZGRzYXI5dDVuSzZheHFrVUlrYllEVm1lUEFnOHlnWWMwM1BLYTRGak0rVjR3QnJEcWZZeHdBUVgvSWFrcC81bzcwRitrSGQ3L2NIa1lqSWNMQmV6dHdqN3I4YjhEdkg0SEJiQ3l5aHdkRFk4YmJsVUh5NjFkYldaeTVnWi8xUGpYd3I3MWZORnh4MjdISFFOYlk2WlF0NHA1M0JIU3U2Zllvd1RpdGdSTnNRVnRtNjh5MTA5elkwdDFlbjRCRDhCK3JHb2VRQUFlTnBsaXRkT3dtQUFSczlmUmhHY0RNVXRibEd4eFZsWFhDaTRCU2VvcFRGZ0x3ZzFCV084MVVmMVBZeW1pVEhSYzNPK25IeElPSHgrOFBZdHdWOU1wMHE0Y09QQmk0eVBCdndFYUtTSlpscG9wWTBnSWNKRWFLZURLSjEwMFUwUHZmVFJ6d0F4QmhsaW1CRkdHV09jQ2VKTU1zVTBDV1pRVUVreXl4enpMTERJRWhyTHJMREtHdXRzc01rVzIreVFZcGM5MG1UWTU0QkRqamptaEZQT3lKTGpuQXN1dWVLYUcvSVV1T1dPZTNTS0dMd0xTYmlFVzNpRVY4Z2hxMXJTYXhXalp1cGw2OWxPbEczaklmamI2aStXa3lKMTB5NzlPOHFQbGRjblU5TjhqbFZGK1JucUZ6TEhOVzRBQVFBQi8vOEFEM2phWTJCa1lHRGdBV0lsSUdaaVlBYkNSQVpHaGlTR0ZDQXZsU0VkeUdZQnl6QUFBQ2ZVQWpWNDJtTmdaR0JnNEdJSVlVaGlZSFp4OHdsaEVFa3ZTczFtVU1oSkxNbGowR0ZnQWNveS9QL1BBRktGekJaallIWjJERkZnRVBQMTl3R1NRZjYrUUJJdXk1aFdsSmpNd0FGaWdURUxXQzhqVUlRUmFDWVQwRDRGSU1uR3dNZVF6TURNSU1RZ0NySWRTSXVEMWFiQTJVd01JZ3hpQUxXMkV4bDQybU5nWkdCZzRHS3dZYkJqWUhaeDh3bGhFRWt2U3MxbWtNdEpMTWxqMEdCZ0Fjb3kvUDhQSkxDeGdBQUFXeG9MYXdBQUFBQUFBUUFBQUFEVnBDY0lBQUFBQU5tY2crRUFBQUFBMmZ0Sk5BPT0nKSBmb3JtYXQoJ3dvZmYnKTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcbiJ9fQ==`,"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 v[s]?.name??""},get mode(){return k[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(v))t.test(d)&&(s=e);if(l||(l="recent"),!(s in v))throw{error:{message:s?`Unsupported provider "${s}"`:`Missing provider`},...o};if(!(l in k))throw{error:{message:`Unsupported mode "${l}"`},...o};if("playlist"===l){if(!d)throw{error:{message:`Missing playlist url`},...o};if(!v[s].embed.test(d))throw{error:{message:`Unsupported playlist url format`},...o}}switch(p=_Mathmax(1,_Mathmin(100,+p)),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 > loaded ${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(JSON.stringify(i)),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:`Spotify token must contain client id/secret and refresh token`};try{console.debug(`metrics/compute/${e}/plugins > music > requesting access token with refresh token for spotify`);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.log(a),console.debug(`metrics/compute/${e}/plugins > music > got new access token`),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.response?.status)throw{error:{message:`API returned ${e.response.status}`},...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 console.debug(`metrics/compute/${e}/plugins > music > success`),{...o,tracks:i}}throw{error:{message:`An error occured (could not retrieve tracks)`}}}catch(e){if(e.error?.message)throw e;throw console.debug(e),{error:{message:`An error occured`}}}}async function o({login:e,q:t},{conf:r,data:n,rest:a,graphql:o,plugins:i},{s:l,pending:s,imports:d}){const p=n.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}},c=d.imgb64(n.user.avatarUrl);n.plugins={};for(const c of Object.keys(d.plugins))s.push((async()=>{try{n.plugins[c]=await d.plugins[c]({login:e,q:t,imports:d,data:n,computed:p,rest:a,graphql:o},i[c])}catch(e){n.plugins[c]=e}finally{return{name:c,result:n.plugins[c]}}})());for(const c of n.user.repositories.nodes){for(const e of["watchers","stargazers","issues_open","issues_closed","pr_open","pr_merged","releases"])p.repositories[e]+=c[e].totalCount;p.repositories.forks+=c.forkCount,c.licenseInfo&&(p.licenses.used[c.licenseInfo.spdxId]=(p.licenses.used[c.licenseInfo.spdxId]||0)+1)}p.diskUsage=`${d.bytes(1e3*n.user.repositories.totalDiskUsage)}`,p.licenses.favorite=Object.entries(p.licenses.used).sort(([e,t],[r,n])=>n-t).slice(0,1).map(([e,t])=>e)||"",p.commits+=n.user.contributionsCollection.totalCommitContributions+n.user.contributionsCollection.restrictedContributionsCount;const u=(Date.now()-new Date(n.user.createdAt).getTime())/31536000000,m=_Mathfloor(u),g=_Mathceil(12*(u-m));p.registration=m?`${m} year${l(m)} ago`:`${g} month${l(g)} ago`,p.calendar=n.user.calendar.contributionCalendar.weeks.flatMap(({contributionDays:e})=>e).slice(0,14).reverse(),p.avatar=(await c)||"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",p.token.scopes=(await a.request("HEAD /")).headers["x-oauth-scopes"].split(", "),n.meta={version:r.package.version,author:r.package.author}}async function i({login:e,q:t},{graphql:r,rest:n,plugins:a,conf:o,die:i=!1}){try{console.debug(`metrics/compute/${e} > start`),console.debug(JSON.stringify(t));const m=t.template||o.settings.templates.default,g=_Mathmax(0,+t.repositories)||o.settings.repositories||100,h=[],f=(e,t="")=>1 graphql query`),Object.assign(A,await r(s.replace(/[$]login/,`"${e}"`).replace(/[$]repositories/,`${g}`).replace(/[$]calendar.to/,`"${new Date().toISOString()}"`).replace(/[$]calendar.from/,`"${new Date(Date.now()-1209600000).toISOString()}"`))),console.debug(`metrics/compute/${e} > compute`);const u=_[m].default||_[m];await u({login:e,q:t},{conf:o,data:A,rest:n,graphql:r,plugins:a},{s:f,pending:h,imports:{plugins:C,url:T,imgb64:S,axios:x,puppeteer:w,format:l,bytes:d,shuffle:p,htmlescape:c}});const y=await Promise.all(h);if(o.settings.debug)for(const{name:e,result:t=null}of y)console.debug(`plugin ${e} ${t?t.error?"failed":"success":"ignored"} : ${JSON.stringify(t).replace(/^(.{888}).+/,"$1...")}`);if(i){const e=y.filter(({result:e=null})=>!!e?.error).length;if(e)throw new Error(`${e} error${f(e)} found...`)}}console.debug(`metrics/compute/${e} > render`);let O=await y.render(v,{...A,s:f,style:k,fonts:E},{async:!0});if(o.optimize&&!t.raw){console.debug(`metrics/compute/${e} > optimize`);const t=new b({full:!0,plugins:[{cleanupAttrs:!0},{inlineStyles:!1}]}),{data:r}=await t.optimize(O);O=r}return console.debug(`metrics/compute/${e} > success`),O}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/g,">").replace(/"/g,""").replace(/'/g,"'")}function u({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:`########################`}),computed:n({avatar:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==",registration:"## years ago",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:{indents:{style:`########`}},languages:{favorites:Array(7).fill(null).map((e,t)=>({x:t,name:"######",color:"#ebedf0",value:1/(t+1)}))},topics:{list:[...Array(12).fill(null).map(()=>({name:"######",description:"",icon:null})),{name:`And ## more...`,description:"",icon:null}]},projects:{list:[...[,,,,].fill(null).map(()=>({name:"########",updated:"########",progress:{enabled:!0,todo:"##",doing:"##",done:"##",total:"##"}}))]}}[e]??{})]))})}r.r(t);var m={};r.r(m),r.d(m,{default:()=>n});var g={};r.r(g),r.d(g,{default:()=>i});var h=r(35747),f=r(85622),y=r(58509),b=r(20485),S=r(67192),x=r(2390);const v={apple:{name:"Apple Music",embed:/^https:..embed.music.apple.com.\w+.playlist/},spotify:{name:"Spotify",embed:/^https:..open.spotify.com.embed.playlist/}},k={playlist:"Suggested tracks",recent:"Recently played"},C={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 console.debug(e),{error:{message:`An error occured`}}}},gists:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.gists)return null;const{user:{gists:a}}=await t(` +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,_Stringprototype=String.prototype,_NumberPOSITIVE_INFINITY=Number.POSITIVE_INFINITY,_NumberNEGATIVE_INFINITY=Number.NEGATIVE_INFINITY,_NumberMAX_SAFE_INTEGER=Number.MAX_SAFE_INTEGER,_Mathround=Math.round,_StringfromCharCode=String.fromCharCode,_Mathabs=Math.abs,_Mathpow=Math.pow,_Mathceil=Math.ceil,_Mathfloor=Math.floor,_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__={75935:(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:f.resolve("node_modules")};if(t(`metrics/setup > load settings.json`),h.existsSync(r.ab+"settings.json")?(a.settings=JSON.parse(`${await h.promises.readFile(f.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(a.settings),t(`metrics/setup > load package.json`),h.existsSync(r.ab+"package.json")?(a.package=JSON.parse(`${await h.promises.readFile(f.resolve("package.json"))}`),t(`metrics/setup > load package.json > success`)):(t(`metrics/setup > load package.json > (missing)`),a.package={version:"2.7.0",author:"lowlighter"}),h.existsSync(r.ab+"templates"))for(const e of await h.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 h.promises.readFile(f.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=>`${h.readFileSync(f.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(`eyJjbGFzc2ljIjp7InF1ZXJ5IjoicXVlcnkgTWV0cmljcyB7XHJcbiAgdXNlcihsb2dpbjogJGxvZ2luKSB7XHJcbiAgICBkYXRhYmFzZUlkXHJcbiAgICBuYW1lXHJcbiAgICBsb2dpblxyXG4gICAgY3JlYXRlZEF0XHJcbiAgICBhdmF0YXJVcmxcclxuICAgIHdlYnNpdGVVcmxcclxuICAgIGdpc3RzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgcmVwb3NpdG9yaWVzKGxhc3Q6ICRyZXBvc2l0b3JpZXMsIGlzRm9yazogZmFsc2UsIG93bmVyQWZmaWxpYXRpb25zOiBPV05FUikge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICAgIHRvdGFsRGlza1VzYWdlXHJcbiAgICAgIG5vZGVzIHtcclxuICAgICAgICBuYW1lXHJcbiAgICAgICAgd2F0Y2hlcnMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBzdGFyZ2F6ZXJzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgbGFuZ3VhZ2VzKGZpcnN0OiA0KSB7XHJcbiAgICAgICAgICBlZGdlcyB7XHJcbiAgICAgICAgICAgIHNpemVcclxuICAgICAgICAgICAgbm9kZSB7XHJcbiAgICAgICAgICAgICAgY29sb3JcclxuICAgICAgICAgICAgICBuYW1lXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaXNzdWVzX29wZW46IGlzc3VlcyhzdGF0ZXM6IE9QRU4pIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgaXNzdWVzX2Nsb3NlZDogaXNzdWVzKHN0YXRlczogQ0xPU0VEKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByX29wZW46IHB1bGxSZXF1ZXN0cyhzdGF0ZXM6IE9QRU4pIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcHJfbWVyZ2VkOiBwdWxsUmVxdWVzdHMoc3RhdGVzOiBNRVJHRUQpIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVsZWFzZXMge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBmb3JrQ291bnRcclxuICAgICAgICBsaWNlbnNlSW5mbyB7XHJcbiAgICAgICAgICBzcGR4SWRcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHBhY2thZ2VzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3RhcnJlZFJlcG9zaXRvcmllcyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHdhdGNoaW5nIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3BvbnNvcnNoaXBzQXNTcG9uc29yIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgc3BvbnNvcnNoaXBzQXNNYWludGFpbmVyIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgY29udHJpYnV0aW9uc0NvbGxlY3Rpb24ge1xyXG4gICAgICB0b3RhbFJlcG9zaXRvcmllc1dpdGhDb250cmlidXRlZENvbW1pdHNcclxuICAgICAgdG90YWxDb21taXRDb250cmlidXRpb25zXHJcbiAgICAgIHJlc3RyaWN0ZWRDb250cmlidXRpb25zQ291bnRcclxuICAgICAgdG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnNcclxuICAgICAgdG90YWxQdWxsUmVxdWVzdENvbnRyaWJ1dGlvbnNcclxuICAgICAgdG90YWxQdWxsUmVxdWVzdFJldmlld0NvbnRyaWJ1dGlvbnNcclxuICAgIH1cclxuICAgIGNhbGVuZGFyOmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uKGZyb206ICRjYWxlbmRhci5mcm9tLCB0bzogJGNhbGVuZGFyLnRvKSB7XHJcbiAgICAgIGNvbnRyaWJ1dGlvbkNhbGVuZGFyIHtcclxuICAgICAgICB3ZWVrcyB7XHJcbiAgICAgICAgICBjb250cmlidXRpb25EYXlzIHtcclxuICAgICAgICAgICAgY29sb3JcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJlcG9zaXRvcmllc0NvbnRyaWJ1dGVkVG8ge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBmb2xsb3dlcnMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBmb2xsb3dpbmcge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICBpc3N1ZUNvbW1lbnRzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgb3JnYW5pemF0aW9ucyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiaW1hZ2UiOiI8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ4MFwiIGhlaWdodD1cIjwlPSAxMlxyXG4gICsgKCEhYmFzZS5oZWFkZXIpKjgwXHJcbiAgKyAoISFiYXNlLm1ldGFkYXRhKSozOFxyXG4gICsgKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKjEyOFxyXG4gICsgKCEhYmFzZS5yZXBvc2l0b3JpZXMpKjEwOFxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooKCEhcGx1Z2lucy50cmFmZmljKXx8KCEhcGx1Z2lucy5saW5lcykpKSoxNlxyXG4gICsgKCEhcGx1Z2lucy5mb2xsb3d1cCkqNjhcclxuICArICghIXBsdWdpbnMucGFnZXNwZWVkKSoxMjYgKyAocGx1Z2lucy5wYWdlc3BlZWQ/LmRldGFpbGVkID8/IDApKjYqMjBcclxuICArICghIXBsdWdpbnMuaGFiaXRzKSo2OFxyXG4gICsgKCEhcGx1Z2lucy5sYW5ndWFnZXMpKjk2XHJcbiAgKyAoISFwbHVnaW5zLm11c2ljKSo2NCArIChwbHVnaW5zLm11c2ljPy50cmFja3M/Lmxlbmd0aCA/IDE0K01hdGgubWF4KDAsIHBsdWdpbnMubXVzaWMudHJhY2tzLmxlbmd0aC0xKSozNiA6IDApXHJcbiAgKyAoISFwbHVnaW5zLnBvc3RzKSo2NCArIChwbHVnaW5zLnBvc3RzPy5saXN0Py5sZW5ndGggPz8gMCkqNDBcclxuICArICghIXBsdWdpbnMuaXNvY2FsZW5kYXIpKjE5MiArIChwbHVnaW5zLmlzb2NhbGVuZGFyPy5kdXJhdGlvbiA9PT0gJ2Z1bGwteWVhcicpKjEwMFxyXG4gICsgKCEhcGx1Z2lucy5naXN0cykqNjhcclxuICArICghIXBsdWdpbnMudG9waWNzKSoxNjBcclxuICArICghIXBsdWdpbnMucHJvamVjdHMpKjIyICsgKHBsdWdpbnMucHJvamVjdHM/Lmxpc3Q/Lmxlbmd0aCA/PyAwKSo2MFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoKCEhcGx1Z2lucy5oYWJpdHMpKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKyghIXBsdWdpbnMubXVzaWMpKyghIXBsdWdpbnMucG9zdHMpKyghIXBsdWdpbnMuaXNvY2FsZW5kYXIpKyghIXBsdWdpbnMuZ2lzdHMpKyghIXBsdWdpbnMudG9waWNzKSsoISFwbHVnaW5zLnByb2plY3RzKSktMSkpKjRcclxuJT5cIj5cclxuXHJcbiAgPGRlZnM+PHN0eWxlPjwlPSBmb250cyAlPjwvc3R5bGU+PC9kZWZzPlxyXG5cclxuICA8c3R5bGU+XHJcbiAgICA8JT0gc3R5bGUgJT5cclxuICA8L3N0eWxlPlxyXG5cclxuICA8Zm9yZWlnbk9iamVjdCB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiPlxyXG4gICAgPGRpdiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWxcIiB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIj5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLmhlYWRlcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgxIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImF2YXRhclwiIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gY29tcHV0ZWQuYXZhdGFyICU+XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4+PCU9IHVzZXIubmFtZSB8fCB1c2VyLmxvZ2luICU+PC9zcGFuPlxyXG4gICAgICAgICAgPC9oMT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHptLjUgNC43NWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAuNDcxLjY5NmwyLjUgMWEuNzUuNzUgMCAwMC41NTctMS4zOTJMOC41IDcuNzQyVjQuNzV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgSm9pbmVkIEdpdEh1YiA8JT0gY29tcHV0ZWQucmVnaXN0cmF0aW9uICU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNS41IDMuNWEyIDIgMCAxMDAgNCAyIDIgMCAwMDAtNHpNMiA1LjVhMy41IDMuNSAwIDExNS44OTggMi41NDkgNS41MDcgNS41MDcgMCAwMTMuMDM0IDQuMDg0Ljc1Ljc1IDAgMTEtMS40ODIuMjM1IDQuMDAxIDQuMDAxIDAgMDAtNy45IDAgLjc1Ljc1IDAgMDEtMS40ODItLjIzNkE1LjUwNyA1LjUwNyAwIDAxMy4xMDIgOC4wNSAzLjQ5IDMuNDkgMCAwMTIgNS41ek0xMSA0YS43NS43NSAwIDEwMCAxLjUgMS41IDEuNSAwIDAxLjY2NiAyLjg0NC43NS43NSAwIDAwLS40MTYuNjcydi4zNTJhLjc1Ljc1IDAgMDAuNTc0LjczYzEuMi4yODkgMi4xNjIgMS4yIDIuNTIyIDIuMzcyYS43NS43NSAwIDEwMS40MzQtLjQ0IDUuMDEgNS4wMSAwIDAwLTIuNTYtMy4wMTJBMyAzIDAgMDAxMSA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIEZvbGxvd2VkIGJ5IDwlPSB1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50ICU+IHVzZXI8JT0gcyh1c2VyLmZvbGxvd2Vycy50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjYWxlbmRhclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA8JT0gY29tcHV0ZWQuY2FsZW5kYXIubGVuZ3RoKjE1ICU+IDExXCIgd2lkdGg9XCI8JT0gY29tcHV0ZWQuY2FsZW5kYXIubGVuZ3RoKjE1ICU+XCIgaGVpZ2h0PVwiMTZcIj5cclxuICAgICAgICAgICAgICAgICAgPGc+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCBbeCwge2NvbG9yfV0gb2YgT2JqZWN0LmVudHJpZXMoY29tcHV0ZWQuY2FsZW5kYXIpKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBjbGFzcz1cImRheVwiIHg9XCI8JT0geCoxNSAlPlwiIHk9XCIwXCIgd2lkdGg9XCIxMVwiIGhlaWdodD1cIjExXCIgZmlsbD1cIjwlPSBjb2xvciAlPlwiIHJ4PVwiMlwiIHJ5PVwiMlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xIDIuNUEyLjUgMi41IDAgMDEzLjUgMGg4Ljc1YS43NS43NSAwIDAxLjc1Ljc1djMuNWEuNzUuNzUgMCAwMS0xLjUgMFYxLjVoLThhMSAxIDAgMDAtMSAxdjYuNzA4QTIuNDkyIDIuNDkyIDAgMDEzLjUgOWgzLjI1YS43NS43NSAwIDAxMCAxLjVIMy41YTEgMSAwIDEwMCAyaDUuNzVhLjc1Ljc1IDAgMDEwIDEuNUgzLjVBMi41IDIuNSAwIDAxMSAxMS41di05em0xMy4yMyA3Ljc5YS43NS43NSAwIDAwMS4wNi0xLjA2bC0yLjUwNS0yLjUwNWEuNzUuNzUgMCAwMC0xLjA2IDBMOS4yMiA5LjIyOWEuNzUuNzUgMCAwMDEuMDYgMS4wNjFsMS4yMjUtMS4yMjR2Ni4xODRhLjc1Ljc1IDAgMDAxLjUgMFY5LjA2NmwxLjIyNCAxLjIyNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICBDb250cmlidXRlZCB0byA8JT0gdXNlci5yZXBvc2l0b3JpZXNDb250cmlidXRlZFRvLnRvdGFsQ291bnQgJT4gcmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXNDb250cmlidXRlZFRvLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8JSBpZiAoYmFzZS5hY3Rpdml0eSkgeyAlPlxyXG4gICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSAxLjc1YS43NS43NSAwIDAwLTEuNSAwdjEyLjVjMCAuNDE0LjMzNi43NS43NS43NWgxNC41YS43NS43NSAwIDAwMC0xLjVIMS41VjEuNzV6bTE0LjI4IDIuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2TDEwIDcuOTQgNy41MyA1LjQ3YS43NS43NSAwIDAwLTEuMDYgMEwzLjIyIDguNzJhLjc1Ljc1IDAgMDAxLjA2IDEuMDZMNyA3LjA2bDIuNDcgMi40N2EuNzUuNzUgMCAwMDEuMDYgMGw1LjI1LTUuMjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIEFjdGl2aXR5XHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMC41IDcuNzVhMi41IDIuNSAwIDExLTUgMCAyLjUgMi41IDAgMDE1IDB6bTEuNDMuNzVhNC4wMDIgNC4wMDIgMCAwMS03Ljg2IDBILjc1YS43NS43NSAwIDExMC0xLjVoMy4zMmE0LjAwMSA0LjAwMSAwIDAxNy44NiAwaDMuMzJhLjc1Ljc1IDAgMTEwIDEuNWgtMy4zMnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLmNvbW1pdHMgJT4gQ29tbWl0PCU9IHMoY29tcHV0ZWQuY29tbWl0cykgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgMS43NWEuMjUuMjUgMCAwMS4yNS0uMjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1djcuNzM2YS43NS43NSAwIDEwMS41IDBWMS43NUExLjc1IDEuNzUgMCAwMDExLjI1IDBoLTguNUExLjc1IDEuNzUgMCAwMDEgMS43NXYxMS41YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMy4xN2EuNzUuNzUgMCAwMDAtMS41SDIuNzVhLjI1LjI1IDAgMDEtLjI1LS4yNVYxLjc1ek00Ljc1IDRhLjc1Ljc1IDAgMDAwIDEuNWg0LjVhLjc1Ljc1IDAgMDAwLTEuNWgtNC41ek00IDcuNzVBLjc1Ljc1IDAgMDE0Ljc1IDdoMmEuNzUuNzUgMCAwMTAgMS41aC0yQS43NS43NSAwIDAxNCA3Ljc1em0xMS43NzQgMy41MzdhLjc1Ljc1IDAgMDAtMS4wNDgtMS4wNzRMMTAuNyAxNC4xNDUgOS4yODEgMTIuNzJhLjc1Ljc1IDAgMDAtMS4wNjIgMS4wNThsMS45NDMgMS45NWEuNzUuNzUgMCAwMDEuMDU1LjAwOGw0LjU1Ny00LjQ1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0UmV2aWV3Q29udHJpYnV0aW9ucyAlPiBQdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zKSAlPiByZXZpZXdlZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuMTc3IDMuMDczTDkuNTczLjY3N0EuMjUuMjUgMCAwMTEwIC44NTR2NC43OTJhLjI1LjI1IDAgMDEtLjQyNy4xNzdMNy4xNzcgMy40MjdhLjI1LjI1IDAgMDEwLS4zNTR6TTMuNzUgMi41YS43NS43NSAwIDEwMCAxLjUuNzUuNzUgMCAwMDAtMS41em0tMi4yNS43NWEyLjI1IDIuMjUgMCAxMTMgMi4xMjJ2NS4yNTZhMi4yNTEgMi4yNTEgMCAxMS0xLjUgMFY1LjM3MkEyLjI1IDIuMjUgMCAwMTEuNSAzLjI1ek0xMSAyLjVoLTFWNGgxYTEgMSAwIDAxMSAxdjUuNjI4YTIuMjUxIDIuMjUxIDAgMTAxLjUgMFY1QTIuNSAyLjUgMCAwMDExIDIuNXptMSAxMC4yNWEuNzUuNzUgMCAxMTEuNSAwIC43NS43NSAwIDAxLTEuNSAwek0zLjc1IDEyYS43NS43NSAwIDEwMCAxLjUuNzUuNzUgMCAwMDAtMS41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbFB1bGxSZXF1ZXN0Q29udHJpYnV0aW9ucyAlPiBQdWxsIHJlcXVlc3Q8JT0gcyh1c2VyLmNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uLnRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zKSAlPiBvcGVuZWRcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICA8JT0gdXNlci5jb250cmlidXRpb25zQ29sbGVjdGlvbi50b3RhbElzc3VlQ29udHJpYnV0aW9ucyAlPiBJc3N1ZTwlPSBzKHVzZXIuY29udHJpYnV0aW9uc0NvbGxlY3Rpb24udG90YWxJc3N1ZUNvbnRyaWJ1dGlvbnMpICU+IG9wZW5lZFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNzUgMi41YS4yNS4yNSAwIDAwLS4yNS4yNXY3LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgyYS43NS43NSAwIDAxLjc1Ljc1djIuMTlsMi43Mi0yLjcyYS43NS43NSAwIDAxLjUzLS4yMmg0LjVhLjI1LjI1IDAgMDAuMjUtLjI1di03LjVhLjI1LjI1IDAgMDAtLjI1LS4yNUgyLjc1ek0xIDIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWgxMC41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2Ny41QTEuNzUgMS43NSAwIDAxMTMuMjUgMTJIOS4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTQgMTMuNTQzVjEySDIuNzVBMS43NSAxLjc1IDAgMDExIDEwLjI1di03LjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIDwlPSB1c2VyLmlzc3VlQ29tbWVudHMudG90YWxDb3VudCAlPiBpc3N1ZSBjb21tZW50PCU9IHModXNlci5pc3N1ZUNvbW1lbnRzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8JSBpZiAoYmFzZS5jb21tdW5pdHkpIHsgJT5cclxuICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjMyNiAxLjk3M2ExLjIgMS4yIDAgMDExLjQ5LS44MzJjLjM4Ny4xMTIuOTc3LjMwNyAxLjU3NS42MDIuNTg2LjI5MSAxLjI0My43MSAxLjcgMS4yOTYuMDIyLjAyNy4wNDIuMDU2LjA2MS4wODRBMTMuMjIgMTMuMjIgMCAwMTggM2MuNjcgMCAxLjI4OS4wMzcgMS44NjEuMTA4bC4wNTEtLjA3Yy40NTctLjU4NiAxLjExNC0xLjAwNCAxLjctMS4yOTVhOS42NTQgOS42NTQgMCAwMTEuNTc2LS42MDIgMS4yIDEuMiAwIDAxMS40OS44MzJjLjE0LjQ5My4zNTYgMS4zNDcuNDc5IDIuMjkuMDc5LjYwNC4xMjMgMS4yOC4wNyAxLjkzNi41NDEuOTc3Ljc3MyAyLjExLjc3MyAzLjMwMUMxNiAxMyAxNC41IDE1IDggMTVzLTgtMi04LTUuNWMwLTEuMDM0LjIzOC0yLjEyOC43OTUtMy4xMTctLjA4LS43MTItLjAzNC0xLjQ2LjA1Mi0yLjEyLjEyMi0uOTQzLjM0LTEuNzk3LjQ3OS0yLjI5ek04IDEzLjA2NWM2IDAgNi41LTIgNi00LjI3QzEzLjM2MyA1LjkwNSAxMS4yNSA1IDggNXMtNS4zNjMuOTA0LTYgMy43OTZjLS41IDIuMjcgMCA0LjI3IDYgNC4yN3pcIj48L3BhdGg+PHBhdGggZD1cIk00IDhhMSAxIDAgMDEyIDB2MWExIDEgMCAwMS0yIDBWOHptMi4wNzggMi40OTJjLS4wODMtLjI2NC4xNDYtLjQ5Mi40MjItLjQ5MmgzYy4yNzYgMCAuNTA1LjIyOC40MjIuNDkyQzkuNjcgMTEuMzA0IDguODM0IDEyIDggMTJjLS44MzQgMC0xLjY2OS0uNjk2LTEuOTIyLTEuNTA4ek0xMCA4YTEgMSAwIDExMiAwdjFhMSAxIDAgMTEtMiAwVjh6XCI+PC9wYXRoPjwvc3ZnPiAgICAgICAgICAgICAgQ29tbXVuaXR5IHN0YXRzXHJcbiAgICAgICAgICAgIDwvaDI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjUgMTQuMjVjMCAuMTM4LjExMi4yNS4yNS4yNUg0di0xLjI1YS43NS43NSAwIDAxLjc1LS43NWgyLjVhLjc1Ljc1IDAgMDEuNzUuNzV2MS4yNWgyLjI1YS4yNS4yNSAwIDAwLjI1LS4yNVYxLjc1YS4yNS4yNSAwIDAwLS4yNS0uMjVoLTguNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTIuNXpNMS43NSAxNkExLjc1IDEuNzUgMCAwMTAgMTQuMjVWMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDguNUMxMS4yMTYgMCAxMiAuNzg0IDEyIDEuNzV2MTIuNWMwIC4wODUtLjAwNi4xNjgtLjAxOC4yNWgyLjI2OGEuMjUuMjUgMCAwMC4yNS0uMjVWOC4yODVhLjI1LjI1IDAgMDAtLjExMS0uMjA4bC0xLjA1NS0uNzAzYS43NS43NSAwIDExLjgzMi0xLjI0OGwxLjA1NS43MDNjLjQ4Ny4zMjUuNzc5Ljg3MS43NzkgMS40NTZ2NS45NjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNmgtMy41YS43NS43NSAwIDAxLS4xOTctLjAyNmMtLjA5OS4wMTctLjIuMDI2LS4zMDMuMDI2aC0zYS43NS43NSAwIDAxLS43NS0uNzVWMTRoLTF2MS4yNWEuNzUuNzUgMCAwMS0uNzUuNzVoLTN6TTMgMy43NUEuNzUuNzUgMCAwMTMuNzUgM2guNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTMgMy43NXpNMy43NSA2YS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6TTMgOS43NUEuNzUuNzUgMCAwMTMuNzUgOWguNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTMgOS43NXpNNy43NSA5YS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6TTcgNi43NUEuNzUuNzUgMCAwMTcuNzUgNmguNWEuNzUuNzUgMCAwMTAgMS41aC0uNUEuNzUuNzUgMCAwMTcgNi43NXpNNy43NSAzYS43NS43NSAwIDAwMCAxLjVoLjVhLjc1Ljc1IDAgMDAwLTEuNWgtLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIE1lbWJlciBvZiA8JT0gdXNlci5vcmdhbml6YXRpb25zLnRvdGFsQ291bnQgJT4gb3JnYW5pemF0aW9uPCU9IHModXNlci5vcmdhbml6YXRpb25zLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNS41IDMuNWEyIDIgMCAxMDAgNCAyIDIgMCAwMDAtNHpNMiA1LjVhMy41IDMuNSAwIDExNS44OTggMi41NDkgNS41MDcgNS41MDcgMCAwMTMuMDM0IDQuMDg0Ljc1Ljc1IDAgMTEtMS40ODIuMjM1IDQuMDAxIDQuMDAxIDAgMDAtNy45IDAgLjc1Ljc1IDAgMDEtMS40ODItLjIzNkE1LjUwNyA1LjUwNyAwIDAxMy4xMDIgOC4wNSAzLjQ5IDMuNDkgMCAwMTIgNS41ek0xMSA0YS43NS43NSAwIDEwMCAxLjUgMS41IDEuNSAwIDAxLjY2NiAyLjg0NC43NS43NSAwIDAwLS40MTYuNjcydi4zNTJhLjc1Ljc1IDAgMDAuNTc0LjczYzEuMi4yODkgMi4xNjIgMS4yIDIuNTIyIDIuMzcyYS43NS43NSAwIDEwMS40MzQtLjQ0IDUuMDEgNS4wMSAwIDAwLTIuNTYtMy4wMTJBMyAzIDAgMDAxMSA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICBGb2xsb3dpbmcgPCU9IHVzZXIuZm9sbG93aW5nLnRvdGFsQ291bnQgJT4gdXNlcjwlPSBzKHVzZXIuZm9sbG93ZXJzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTY1IDIwLjU2NSAwIDAwOCAxMy4zOTNhMjAuNTYxIDIwLjU2MSAwIDAwMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc1Ljc1IDAgMDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjV6TTggMTQuMjVsLS4zNDUuNjY2LS4wMDItLjAwMS0uMDA2LS4wMDMtLjAxOC0uMDFhNy42NDMgNy42NDMgMCAwMS0uMzEtLjE3IDIyLjA3NSAyMi4wNzUgMCAwMS0zLjQzNC0yLjQxNEMyLjA0NSAxMC43MzEgMCA4LjM1IDAgNS41IDAgMi44MzYgMi4wODYgMSA0LjI1IDEgNS43OTcgMSA3LjE1MyAxLjgwMiA4IDMuMDIgOC44NDcgMS44MDIgMTAuMjAzIDEgMTEuNzUgMSAxMy45MTQgMSAxNiAyLjgzNiAxNiA1LjVjMCAyLjg1LTIuMDQ1IDUuMjMxLTMuODg1IDYuODE4YTIyLjA4IDIyLjA4IDAgMDEtMy43NDQgMi41ODRsLS4wMTguMDEtLjAwNi4wMDNoLS4wMDJMOCAxNC4yNXptMCAwbC4zNDUuNjY2YS43NTIuNzUyIDAgMDEtLjY5IDBMOCAxNC4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgU3BvbnNvcmluZyA8JT0gdXNlci5zcG9uc29yc2hpcHNBc1Nwb25zb3IudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLnNwb25zb3JzaGlwc0FzU3BvbnNvci50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgIFN0YXJyZWQgPCU9IHVzZXIuc3RhcnJlZFJlcG9zaXRvcmllcy50b3RhbENvdW50ICU+IHJlcG9zaXRvcjwlPSBzKHVzZXIuc3RhcnJlZFJlcG9zaXRvcmllcy50b3RhbENvdW50LCBcInlcIikgJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjY3OSA3LjkzMmMuNDEyLS42MjEgMS4yNDItMS43NSAyLjM2Ni0yLjcxN0M1LjE3NSA0LjI0MiA2LjUyNyAzLjUgOCAzLjVjMS40NzMgMCAyLjgyNC43NDIgMy45NTUgMS43MTUgMS4xMjQuOTY3IDEuOTU0IDIuMDk2IDIuMzY2IDIuNzE3YS4xMTkuMTE5IDAgMDEwIC4xMzZjLS40MTIuNjIxLTEuMjQyIDEuNzUtMi4zNjYgMi43MTdDMTAuODI1IDExLjc1OCA5LjQ3MyAxMi41IDggMTIuNWMtMS40NzMgMC0yLjgyNC0uNzQyLTMuOTU1LTEuNzE1QzIuOTIgOS44MTggMi4wOSA4LjY5IDEuNjc5IDguMDY4YS4xMTkuMTE5IDAgMDEwLS4xMzZ6TTggMmMtMS45ODEgMC0zLjY3Ljk5Mi00LjkzMyAyLjA3OEMxLjc5NyA1LjE2OS44OCA2LjQyMy40MyA3LjFhMS42MTkgMS42MTkgMCAwMDAgMS43OThjLjQ1LjY3OCAxLjM2NyAxLjkzMiAyLjYzNyAzLjAyNEM0LjMyOSAxMy4wMDggNi4wMTkgMTQgOCAxNGMxLjk4MSAwIDMuNjctLjk5MiA0LjkzMy0yLjA3OCAxLjI3LTEuMDkxIDIuMTg3LTIuMzQ1IDIuNjM3LTMuMDIzYTEuNjE5IDEuNjE5IDAgMDAwLTEuNzk4Yy0uNDUtLjY3OC0xLjM2Ny0xLjkzMi0yLjYzNy0zLjAyM0MxMS42NzEgMi45OTIgOS45ODEgMiA4IDJ6bTAgOGEyIDIgMCAxMDAtNCAyIDIgMCAwMDAgNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgV2F0Y2hpbmcgPCU9IHVzZXIud2F0Y2hpbmcudG90YWxDb3VudCAlPiByZXBvc2l0b3I8JT0gcyh1c2VyLndhdGNoaW5nLnRvdGFsQ291bnQsIFwieVwiKSAlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8JSB9ICU+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCUgaWYgKGJhc2UucmVwb3NpdG9yaWVzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMiAyLjVBMi41IDIuNSAwIDAxNC41IDBoOC43NWEuNzUuNzUgMCAwMS43NS43NXYxMi41YS43NS43NSAwIDAxLS43NS43NWgtMi41YS43NS43NSAwIDExMC0xLjVoMS43NXYtMmgtOGExIDEgMCAwMC0uNzE0IDEuNy43NS43NSAwIDAxLTEuMDcyIDEuMDVBMi40OTUgMi40OTUgMCAwMTIgMTEuNXYtOXptMTAuNS0xVjloLThjLS4zNTYgMC0uNjk0LjA3NC0xIC4yMDhWMi41YTEgMSAwIDAxMS0xaDh6TTUgMTIuMjV2My4yNWEuMjUuMjUgMCAwMC40LjJsMS40NS0xLjA4N2EuMjUuMjUgMCAwMS4zIDBMOC42IDE1LjdhLjI1LjI1IDAgMDAuNC0uMnYtMy4yNWEuMjUuMjUgMCAwMC0uMjUtLjI1aC0zLjVhLjI1LjI1IDAgMDAtLjI1LjI1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgPCU9IHVzZXIucmVwb3NpdG9yaWVzLnRvdGFsQ291bnQgJT4gUmVwb3NpdG9yPCU9IHModXNlci5yZXBvc2l0b3JpZXMudG90YWxDb3VudCwgXCJ5XCIpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04Ljc1Ljc1YS43NS43NSAwIDAwLTEuNSAwVjJoLS45ODRjLS4zMDUgMC0uNjA0LjA4LS44NjkuMjNsLTEuMjg4LjczN0EuMjUuMjUgMCAwMTMuOTg0IDNIMS43NWEuNzUuNzUgMCAwMDAgMS41aC40MjhMLjA2NiA5LjE5MmEuNzUuNzUgMCAwMC4xNTQuODM4bC41My0uNTMtLjUzLjUzdi4wMDFsLjAwMi4wMDIuMDAyLjAwMi4wMDYuMDA2LjAxNi4wMTUuMDQ1LjA0YTMuNTE0IDMuNTE0IDAgMDAuNjg2LjQ1QTQuNDkyIDQuNDkyIDAgMDAzIDExYy44OCAwIDEuNTU2LS4yMiAyLjAyMy0uNDU0YTMuNTE1IDMuNTE1IDAgMDAuNjg2LS40NWwuMDQ1LS4wNC4wMTYtLjAxNS4wMDYtLjAwNi4wMDItLjAwMi4wMDEtLjAwMkw1LjI1IDkuNWwuNTMuNTNhLjc1Ljc1IDAgMDAuMTU0LS44MzhMMy44MjIgNC41aC4xNjJjLjMwNSAwIC42MDQtLjA4Ljg2OS0uMjNsMS4yODktLjczN2EuMjUuMjUgMCAwMS4xMjQtLjAzM2guOTg0VjEzaC0yLjVhLjc1Ljc1IDAgMDAwIDEuNWg2LjVhLjc1Ljc1IDAgMDAwLTEuNWgtMi41VjMuNWguOTg0YS4yNS4yNSAwIDAxLjEyNC4wMzNsMS4yOS43MzZjLjI2NC4xNTIuNTYzLjIzMS44NjguMjMxaC4xNjJsLTIuMTEyIDQuNjkyYS43NS43NSAwIDAwLjE1NC44MzhsLjUzLS41My0uNTMuNTN2LjAwMWwuMDAyLjAwMi4wMDIuMDAyLjAwNi4wMDYuMDE2LjAxNS4wNDUuMDRhMy41MTcgMy41MTcgMCAwMC42ODYuNDVBNC40OTIgNC40OTIgMCAwMDEzIDExYy44OCAwIDEuNTU2LS4yMiAyLjAyMy0uNDU0YTMuNTEyIDMuNTEyIDAgMDAuNjg2LS40NWwuMDQ1LS4wNC4wMS0uMDEuMDA2LS4wMDUuMDA2LS4wMDYuMDAyLS4wMDIuMDAxLS4wMDItLjUyOS0uNTMxLjUzLjUzYS43NS43NSAwIDAwLjE1NC0uODM4TDEzLjgyMyA0LjVoLjQyN2EuNzUuNzUgMCAwMDAtMS41aC0yLjIzNGEuMjUuMjUgMCAwMS0uMTI0LS4wMzNsLTEuMjktLjczNkExLjc1IDEuNzUgMCAwMDkuNzM1IDJIOC43NVYuNzV6TTEuNjk1IDkuMjI3Yy4yODUuMTM1LjcxOC4yNzMgMS4zMDUuMjczczEuMDItLjEzOCAxLjMwNS0uMjczTDMgNi4zMjdsLTEuMzA1IDIuOXptMTAgMGMuMjg1LjEzNS43MTguMjczIDEuMzA1LjI3M3MxLjAyLS4xMzggMS4zMDUtLjI3M0wxMyA2LjMyN2wtMS4zMDUgMi45elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZS5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgUHJlZmVyIDwlPSBjb21wdXRlZC5saWNlbnNlcy5mYXZvcml0ZSAlPiBsaWNlbnNlXHJcbiAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICBObyBsaWNlbnNlIHByZWZlcmVuY2VcclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgNy43NzVWMi43NWEuMjUuMjUgMCAwMS4yNS0uMjVoNS4wMjVhLjI1LjI1IDAgMDEuMTc3LjA3M2w2LjI1IDYuMjVhLjI1LjI1IDAgMDEwIC4zNTRsLTUuMDI1IDUuMDI1YS4yNS4yNSAwIDAxLS4zNTQgMGwtNi4yNS02LjI1YS4yNS4yNSAwIDAxLS4wNzMtLjE3N3ptLTEuNSAwVjIuNzVDMSAxLjc4NCAxLjc4NCAxIDIuNzUgMWg1LjAyNWMuNDY0IDAgLjkxLjE4NCAxLjIzOC41MTNsNi4yNSA2LjI1YTEuNzUgMS43NSAwIDAxMCAyLjQ3NGwtNS4wMjYgNS4wMjZhMS43NSAxLjc1IDAgMDEtMi40NzQgMGwtNi4yNS02LjI1QTEuNzUgMS43NSAwIDAxMSA3Ljc3NXpNNiA1YTEgMSAwIDEwMCAyIDEgMSAwIDAwMC0yelwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5yZXBvc2l0b3JpZXMucmVsZWFzZXMgJT4gUmVsZWFzZTwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5yZWxlYXNlcykgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04Ljg3OC4zOTJhMS43NSAxLjc1IDAgMDAtMS43NTYgMGwtNS4yNSAzLjA0NUExLjc1IDEuNzUgMCAwMDEgNC45NTF2Ni4wOThjMCAuNjI0LjMzMiAxLjIuODcyIDEuNTE0bDUuMjUgMy4wNDVhMS43NSAxLjc1IDAgMDAxLjc1NiAwbDUuMjUtMy4wNDVjLjU0LS4zMTMuODcyLS44OS44NzItMS41MTRWNC45NTFjMC0uNjI0LS4zMzItMS4yLS44NzItMS41MTRMOC44NzguMzkyek03Ljg3NSAxLjY5YS4yNS4yNSAwIDAxLjI1IDBsNC42MyAyLjY4NUw4IDcuMTMzIDMuMjQ1IDQuMzc1bDQuNjMtMi42ODV6TTIuNSA1LjY3N3Y1LjM3MmMwIC4wOS4wNDcuMTcxLjEyNS4yMTZsNC42MjUgMi42ODNWOC40MzJMMi41IDUuNjc3em02LjI1IDguMjcxbDQuNjI1LTIuNjgzYS4yNS4yNSAwIDAwLjEyNS0uMjE2VjUuNjc3TDguNzUgOC40MzJ2NS41MTZ6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IHVzZXIucGFja2FnZXMudG90YWxDb3VudCAlPiBQYWNrYWdlPCU9IHModXNlci5wYWNrYWdlcy50b3RhbENvdW50KSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjUgMy41YzAtLjEzMy4wNTgtLjMxOC4yODItLjU1LjIyNy0uMjM3LjU5Mi0uNDg0IDEuMS0uNzA4QzQuODk5IDEuNzk1IDYuMzU0IDEuNSA4IDEuNWMxLjY0NyAwIDMuMTAyLjI5NSA0LjExNy43NDIuNTEuMjI0Ljg3NC40NyAxLjEwMS43MDcuMjI0LjIzMy4yODIuNDE4LjI4Mi41NTEgMCAuMTMzLS4wNTguMzE4LS4yODIuNTUtLjIyNy4yMzctLjU5Mi40ODQtMS4xLjcwOEMxMS4xMDEgNS4yMDUgOS42NDYgNS41IDggNS41Yy0xLjY0NyAwLTMuMTAyLS4yOTUtNC4xMTctLjc0Mi0uNTEtLjIyNC0uODc0LS40Ny0xLjEwMS0uNzA3LS4yMjQtLjIzMy0uMjgyLS40MTgtLjI4Mi0uNTUxek0xIDMuNWMwLS42MjYuMjkyLTEuMTY1LjctMS41OS40MDYtLjQyMi45NTYtLjc2NyAxLjU3OS0xLjA0MUM0LjUyNS4zMiA2LjE5NSAwIDggMGMxLjgwNSAwIDMuNDc1LjMyIDQuNzIyLjg2OS42MjIuMjc0IDEuMTcyLjYyIDEuNTc4IDEuMDQuNDA4LjQyNi43Ljk2NS43IDEuNTkxdjljMCAuNjI2LS4yOTIgMS4xNjUtLjcgMS41OS0uNDA2LjQyMi0uOTU2Ljc2Ny0xLjU3OSAxLjA0MUMxMS40NzYgMTUuNjggOS44MDYgMTYgOCAxNmMtMS44MDUgMC0zLjQ3NS0uMzItNC43MjEtLjg2OS0uNjIzLS4yNzQtMS4xNzMtLjYyLTEuNTc5LTEuMDQtLjQwOC0uNDI2LS43LS45NjUtLjctMS41OTF2LTl6TTIuNSA4VjUuNzI0Yy4yNDEuMTUuNTAzLjI4Ni43NzkuNDA3QzQuNTI1IDYuNjggNi4xOTUgNyA4IDdjMS44MDUgMCAzLjQ3NS0uMzIgNC43MjItLjg2OS4yNzUtLjEyMS41MzctLjI1Ny43NzgtLjQwN1Y4YzAgLjEzMy0uMDU4LjMxOC0uMjgyLjU1LS4yMjcuMjM3LS41OTIuNDg0LTEuMS43MDhDMTEuMTAxIDkuNzA1IDkuNjQ2IDEwIDggMTBjLTEuNjQ3IDAtMy4xMDItLjI5NS00LjExNy0uNzQyLS41MS0uMjI0LS44NzQtLjQ3LTEuMTAxLS43MDdDMi41NTggOC4zMTggMi41IDguMTMzIDIuNSA4em0wIDIuMjI1VjEyLjVjMCAuMTMzLjA1OC4zMTguMjgyLjU1LjIyNy4yMzcuNTkyLjQ4NCAxLjEuNzA4IDEuMDE2LjQ0NyAyLjQ3MS43NDIgNC4xMTguNzQyIDEuNjQ3IDAgMy4xMDItLjI5NSA0LjExNy0uNzQyLjUxLS4yMjQuODc0LS40NyAxLjEwMS0uNzA3LjIyNC0uMjMzLjI4Mi0uNDE4LjI4Mi0uNTUxdi0yLjI3NWMtLjI0MS4xNS0uNTAzLjI4NS0uNzc4LjQwNi0xLjI0Ny41NDktMi45MTcuODY5LTQuNzIyLjg2OS0xLjgwNSAwLTMuNDc1LS4zMi00LjcyMS0uODY5YTYuMjM2IDYuMjM2IDAgMDEtLjc3OS0uNDA2elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5kaXNrVXNhZ2UgJT4gdXNlZFxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxpbmVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy5saW5lcy5lcnJvciA/ICdlcnJvcicgOiAnJyAlPlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2MTIuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjQuNjY0YS4yNS4yNSAwIDAwLS4wNzMtLjE3N2wtMi45MTQtMi45MTRhLjI1LjI1IDAgMDAtLjE3Ny0uMDczSDIuNzV6TTEgMS43NUMxIC43ODQgMS43ODQgMCAyLjc1IDBoNy41ODZjLjQ2NCAwIC45MDkuMTg0IDEuMjM3LjUxM2wyLjkxNCAyLjkxNGMuMzI5LjMyOC41MTMuNzczLjUxMyAxLjIzN3Y5LjU4NkExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjEuNzV6bTcgMS41YS43NS43NSAwIDAxLjc1Ljc1djEuNWgxLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMS41djEuNWEuNzUuNzUgMCAwMS0xLjUgMFY3aC0xLjVhLjc1Ljc1IDAgMDEwLTEuNWgxLjVWNEEuNzUuNzUgMCAwMTggMy4yNXptLTMgOGEuNzUuNzUgMCAwMS43NS0uNzVoNC41YS43NS43NSAwIDAxMCAxLjVoLTQuNWEuNzUuNzUgMCAwMS0uNzUtLjc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5saW5lcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGluZXMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5saW5lcy5hZGRlZCAlPiBhZGRlZCwgPCU9IHBsdWdpbnMubGluZXMuZGVsZXRlZCAlPiByZW1vdmVkXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC4yNSAyLjVjLTEuMzM2IDAtMi43NSAxLjE2NC0yLjc1IDMgMCAyLjE1IDEuNTggNC4xNDQgMy4zNjUgNS42ODJBMjAuNTY1IDIwLjU2NSAwIDAwOCAxMy4zOTNhMjAuNTYxIDIwLjU2MSAwIDAwMy4xMzUtMi4yMTFDMTIuOTIgOS42NDQgMTQuNSA3LjY1IDE0LjUgNS41YzAtMS44MzYtMS40MTQtMy0yLjc1LTMtMS4zNzMgMC0yLjYwOS45ODYtMy4wMjkgMi40NTZhLjc1Ljc1IDAgMDEtMS40NDIgMEM2Ljg1OSAzLjQ4NiA1LjYyMyAyLjUgNC4yNSAyLjV6TTggMTQuMjVsLS4zNDUuNjY2LS4wMDItLjAwMS0uMDA2LS4wMDMtLjAxOC0uMDFhNy42NDMgNy42NDMgMCAwMS0uMzEtLjE3IDIyLjA3NSAyMi4wNzUgMCAwMS0zLjQzNC0yLjQxNEMyLjA0NSAxMC43MzEgMCA4LjM1IDAgNS41IDAgMi44MzYgMi4wODYgMSA0LjI1IDEgNS43OTcgMSA3LjE1MyAxLjgwMiA4IDMuMDIgOC44NDcgMS44MDIgMTAuMjAzIDEgMTEuNzUgMSAxMy45MTQgMSAxNiAyLjgzNiAxNiA1LjVjMCAyLjg1LTIuMDQ1IDUuMjMxLTMuODg1IDYuODE4YTIyLjA4IDIyLjA4IDAgMDEtMy43NDQgMi41ODRsLS4wMTguMDEtLjAwNi4wMDNoLS4wMDJMOCAxNC4yNXptMCAwbC4zNDUuNjY2YS43NTIuNzUyIDAgMDEtLjY5IDBMOCAxNC4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8JT0gdXNlci5zcG9uc29yc2hpcHNBc01haW50YWluZXIudG90YWxDb3VudCAlPiBTcG9uc29yPCU9IHModXNlci5zcG9uc29yc2hpcHNBc01haW50YWluZXIudG90YWxDb3VudCkgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IC4yNWEuNzUuNzUgMCAwMS42NzMuNDE4bDEuODgyIDMuODE1IDQuMjEuNjEyYS43NS43NSAwIDAxLjQxNiAxLjI3OWwtMy4wNDYgMi45Ny43MTkgNC4xOTJhLjc1Ljc1IDAgMDEtMS4wODguNzkxTDggMTIuMzQ3bC0zLjc2NiAxLjk4YS43NS43NSAwIDAxLTEuMDg4LS43OWwuNzItNC4xOTRMLjgxOCA2LjM3NGEuNzUuNzUgMCAwMS40MTYtMS4yOGw0LjIxLS42MTFMNy4zMjcuNjY4QS43NS43NSAwIDAxOCAuMjV6bTAgMi40NDVMNi42MTUgNS41YS43NS43NSAwIDAxLS41NjQuNDFsLTMuMDk3LjQ1IDIuMjQgMi4xODRhLjc1Ljc1IDAgMDEuMjE2LjY2NGwtLjUyOCAzLjA4NCAyLjc2OS0xLjQ1NmEuNzUuNzUgMCAwMS42OTggMGwyLjc3IDEuNDU2LS41My0zLjA4NGEuNzUuNzUgMCAwMS4yMTYtLjY2NGwyLjI0LTIuMTgzLTMuMDk2LS40NWEuNzUuNzUgMCAwMS0uNTY0LS40MUw4IDIuNjk0di4wMDF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzICU+IFN0YXJnYXplcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy5zdGFyZ2F6ZXJzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTUgMy4yNWEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0wIDIuMTIyYTIuMjUgMi4yNSAwIDEwLTEuNSAwdi44NzhBMi4yNSAyLjI1IDAgMDA1Ljc1IDguNWgxLjV2Mi4xMjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjguNWgxLjVhMi4yNSAyLjI1IDAgMDAyLjI1LTIuMjV2LS44NzhhMi4yNSAyLjI1IDAgMTAtMS41IDB2Ljg3OGEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNUEuNzUuNzUgMCAwMTUgNi4yNXYtLjg3OHptMy43NSA3LjM3OGEuNzUuNzUgMCAxMS0xLjUgMCAuNzUuNzUgMCAwMTEuNSAwem0zLTguNzVhLjc1Ljc1IDAgMTAwLTEuNS43NS43NSAwIDAwMCAxLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IGNvbXB1dGVkLnJlcG9zaXRvcmllcy5mb3JrcyAlPiBGb3JrPCU9IHMoY29tcHV0ZWQucmVwb3NpdG9yaWVzLmZvcmtzKSAlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNjc5IDcuOTMyYy40MTItLjYyMSAxLjI0Mi0xLjc1IDIuMzY2LTIuNzE3QzUuMTc1IDQuMjQyIDYuNTI3IDMuNSA4IDMuNWMxLjQ3MyAwIDIuODI0Ljc0MiAzLjk1NSAxLjcxNSAxLjEyNC45NjcgMS45NTQgMi4wOTYgMi4zNjYgMi43MTdhLjExOS4xMTkgMCAwMTAgLjEzNmMtLjQxMi42MjEtMS4yNDIgMS43NS0yLjM2NiAyLjcxN0MxMC44MjUgMTEuNzU4IDkuNDczIDEyLjUgOCAxMi41Yy0xLjQ3MyAwLTIuODI0LS43NDItMy45NTUtMS43MTVDMi45MiA5LjgxOCAyLjA5IDguNjkgMS42NzkgOC4wNjhhLjExOS4xMTkgMCAwMTAtLjEzNnpNOCAyYy0xLjk4MSAwLTMuNjcuOTkyLTQuOTMzIDIuMDc4QzEuNzk3IDUuMTY5Ljg4IDYuNDIzLjQzIDcuMWExLjYxOSAxLjYxOSAwIDAwMCAxLjc5OGMuNDUuNjc4IDEuMzY3IDEuOTMyIDIuNjM3IDMuMDI0QzQuMzI5IDEzLjAwOCA2LjAxOSAxNCA4IDE0YzEuOTgxIDAgMy42Ny0uOTkyIDQuOTMzLTIuMDc4IDEuMjctMS4wOTEgMi4xODctMi4zNDUgMi42MzctMy4wMjNhMS42MTkgMS42MTkgMCAwMDAtMS43OThjLS40NS0uNjc4LTEuMzY3LTEuOTMyLTIuNjM3LTMuMDIzQzExLjY3MSAyLjk5MiA5Ljk4MSAyIDggMnptMCA4YTIgMiAwIDEwMC00IDIgMiAwIDAwMCA0elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwlPSBjb21wdXRlZC5yZXBvc2l0b3JpZXMud2F0Y2hlcnMgJT4gV2F0Y2hlcjwlPSBzKGNvbXB1dGVkLnJlcG9zaXRvcmllcy53YXRjaGVycykgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy50cmFmZmljKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCA8JT0gcGx1Z2lucy50cmFmZmljLmVycm9yID8gJ2Vycm9yJyA6ICcnICU+XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTAgMS43NUEuNzUuNzUgMCAwMS43NSAxaDQuMjUzYzEuMjI3IDAgMi4zMTcuNTkgMyAxLjUwMUEzLjc0NCAzLjc0NCAwIDAxMTEuMDA2IDFoNC4yNDVhLjc1Ljc1IDAgMDEuNzUuNzV2MTAuNWEuNzUuNzUgMCAwMS0uNzUuNzVoLTQuNTA3YTIuMjUgMi4yNSAwIDAwLTEuNTkxLjY1OWwtLjYyMi42MjFhLjc1Ljc1IDAgMDEtMS4wNiAwbC0uNjIyLS42MjFBMi4yNSAyLjI1IDAgMDA1LjI1OCAxM0guNzVhLjc1Ljc1IDAgMDEtLjc1LS43NVYxLjc1em04Ljc1NSAzYTIuMjUgMi4yNSAwIDAxMi4yNS0yLjI1SDE0LjV2OWgtMy43NTdjLS43MSAwLTEuNC4yMDEtMS45OTIuNTcybC4wMDQtNy4zMjJ6bS0xLjUwNCA3LjMyNGwuMDA0LTUuMDczLS4wMDItMi4yNTNBMi4yNSAyLjI1IDAgMDA1LjAwMyAyLjVIMS41djloMy43NTdhMy43NSAzLjc1IDAgMDExLjk5NC41NzR6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLnRyYWZmaWMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRyYWZmaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy50cmFmZmljLnZpZXdzLmNvdW50ICU+IHZpZXc8JT0gcyhwbHVnaW5zLnRyYWZmaWMudmlld3MuY291bnQpICU+IGluIGxhc3QgdHdvIHdlZWtzXHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMuZm9sbG93dXApIHsgJT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcblxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgPGgzPklzc3VlczwvaDM+XHJcbiAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmZvbGxvd3VwLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJpc3N1ZXMtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSBwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jb3VudCA/IDAgOiAyMjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNpc3N1ZXMtYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiI2Q3M2E0OVwiLz5cclxuICAgICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2lzc3Vlcy1iYXIpXCIgeD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKDEtcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkL3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50KSoyMjAgfHwgMCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzI4YTc0NVwiLz5cclxuICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgaG9yaXpvbnRhbCBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiI2Q3M2E0OVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAwMTEwLjY1LTUuMDAzLjc1Ljc1IDAgMDAuOTU5LTEuMTUzIDggOCAwIDEwMi41OTIgOC4zMy43NS43NSAwIDEwLTEuNDQ0LS40MDdBNi41IDYuNSAwIDAxMS41IDh6TTggMTJhMSAxIDAgMTAwLTIgMSAxIDAgMDAwIDJ6bTAtOGEuNzUuNzUgMCAwMS43NS43NXYzLjVhLjc1Ljc1IDAgMTEtMS41IDB2LTMuNUEuNzUuNzUgMCAwMTggNHptNC43OCA0LjI4bDMtM2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZsLTIuNDcgMi40Ny0uOTctLjk3YS43NDkuNzQ5IDAgMTAtMS4wNiAxLjA2bDEuNSAxLjVhLjc1Ljc1IDAgMDAxLjA2IDB6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5pc3N1ZXMuY2xvc2VkICU+IENsb3NlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbD1cIiMyOGE3NDVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04IDEuNWE2LjUgNi41IDAgMTAwIDEzIDYuNSA2LjUgMCAwMDAtMTN6TTAgOGE4IDggMCAxMTE2IDBBOCA4IDAgMDEwIDh6bTkgM2ExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNi4yNWEuNzUuNzUgMCAwMC0xLjUgMHYzLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMy41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuby13cmFwXCI+PCU9IHBsdWdpbnMuZm9sbG93dXAuaXNzdWVzLm9wZW4gJT4gT3Blbjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgICAgPGgzPlB1bGwgcmVxdWVzdHM8L2gzPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5mb2xsb3d1cC5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5mb2xsb3d1cC5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImJhclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIj5cclxuICAgICAgICAgICAgICAgIDxtYXNrIGlkPVwicHItYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgICA8L21hc2s+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMuZm9sbG93dXAucHIuY291bnQgPyAwIDogMjIwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHItYmFyKVwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiM2ZjQyYzFcIi8+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwci1iYXIpXCIgeD1cIjwlPSAocGx1Z2lucy5mb2xsb3d1cC5wci5tZXJnZWQvcGx1Z2lucy5mb2xsb3d1cC5wci5jb3VudCkqMjIwIHx8IDAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9ICgxLXBsdWdpbnMuZm9sbG93dXAucHIubWVyZ2VkL3BsdWdpbnMuZm9sbG93dXAucHIuY291bnQpKjIyMCB8fCAwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjMjhhNzQ1XCIvPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBob3Jpem9udGFsIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjNmY0MmMxXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNSAzLjI1NFYzLjI1di4wMDVhLjc1Ljc1IDAgMTEwLS4wMDV2LjAwNHptLjQ1IDEuOWEyLjI1IDIuMjUgMCAxMC0xLjk1LjIxOHY1LjI1NmEyLjI1IDIuMjUgMCAxMDEuNSAwVjcuMTIzQTUuNzM1IDUuNzM1IDAgMDA5LjI1IDloMS4zNzhhMi4yNTEgMi4yNTEgMCAxMDAtMS41SDkuMjVhNC4yNSA0LjI1IDAgMDEtMy44LTIuMzQ2ek0xMi43NSA5YS43NS43NSAwIDEwMC0xLjUuNzUuNzUgMCAwMDAgMS41em0tOC41IDQuNWEuNzUuNzUgMCAxMDAtMS41Ljc1Ljc1IDAgMDAwIDEuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibm8td3JhcFwiPjwlPSBwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZCAlPiBNZXJnZWQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGw9XCIjMjhhNzQ1XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNy4xNzcgMy4wNzNMOS41NzMuNjc3QS4yNS4yNSAwIDAxMTAgLjg1NHY0Ljc5MmEuMjUuMjUgMCAwMS0uNDI3LjE3N0w3LjE3NyAzLjQyN2EuMjUuMjUgMCAwMTAtLjM1NHpNMy43NSAyLjVhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6bS0yLjI1Ljc1YTIuMjUgMi4yNSAwIDExMyAyLjEyMnY1LjI1NmEyLjI1MSAyLjI1MSAwIDExLTEuNSAwVjUuMzcyQTIuMjUgMi4yNSAwIDAxMS41IDMuMjV6TTExIDIuNWgtMVY0aDFhMSAxIDAgMDExIDF2NS42MjhhMi4yNTEgMi4yNTEgMCAxMDEuNSAwVjVBMi41IDIuNSAwIDAwMTEgMi41em0xIDEwLjI1YS43NS43NSAwIDExMS41IDAgLjc1Ljc1IDAgMDEtMS41IDB6TTMuNzUgMTJhLjc1Ljc1IDAgMTAwIDEuNS43NS43NSAwIDAwMC0xLjV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLXdyYXBcIj48JT0gcGx1Z2lucy5mb2xsb3d1cC5wci5vcGVuICU+IE9wZW48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgICAgIDxoMz5Nb3N0IHVzZWQgbGFuZ3VhZ2VzPC9oMz5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmxhbmd1YWdlcy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmVycm9yLm1lc3NhZ2UgJT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImJhclwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIj5cclxuICAgICAgICAgICAgICA8bWFzayBpZD1cImxhbmd1YWdlcy1iYXJcIj5cclxuICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQ2MFwiIGhlaWdodD1cIjhcIiBmaWxsPVwid2hpdGVcIiByeD1cIjVcIi8+XHJcbiAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgIDxyZWN0IG1hc2s9XCJ1cmwoI2xhbmd1YWdlcy1iYXIpXCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHBsdWdpbnMubGFuZ3VhZ2VzLmZhdm9yaXRlcy5sZW5ndGggPyAwIDogNDYwICU+XCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCIjZDFkNWRhXCIvPlxyXG4gICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUsIHZhbHVlLCBjb2xvciwgeH0gb2YgcGx1Z2lucy5sYW5ndWFnZXMuZmF2b3JpdGVzKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNsYW5ndWFnZXMtYmFyKVwiIHg9XCI8JT0geCo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IHZhbHVlKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiPCU9IGNvbG9yICU+XCIvPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBjZW50ZXIgaG9yaXpvbnRhbC13cmFwIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB2YWx1ZSwgY29sb3J9IG9mIHBsdWdpbnMubGFuZ3VhZ2VzLmZhdm9yaXRlcykgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBuby13cmFwIGxhbmd1YWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsPVwiPCU9IGNvbG9yICU+XCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNOCA0YTQgNCAwIDEwMCA4IDQgNCAwIDAwMC04elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IG5hbWUgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMEExLjc1IDEuNzUgMCAwMDAgMS43NXYxMi41QzAgMTUuMjE2Ljc4NCAxNiAxLjc1IDE2aDEyLjVBMS43NSAxLjc1IDAgMDAxNiAxNC4yNVYxLjc1QTEuNzUgMS43NSAwIDAwMTQuMjUgMEgxLjc1ek0xLjUgMS43NWEuMjUuMjUgMCAwMS4yNS0uMjVoMTIuNWEuMjUuMjUgMCAwMS4yNS4yNXYxMi41YS4yNS4yNSAwIDAxLS4yNS4yNUgxLjc1YS4yNS4yNSAwIDAxLS4yNS0uMjVWMS43NXpNMTEuNzUgM2EuNzUuNzUgMCAwMC0uNzUuNzV2Ny41YS43NS43NSAwIDAwMS41IDB2LTcuNWEuNzUuNzUgMCAwMC0uNzUtLjc1em0tOC4yNS43NWEuNzUuNzUgMCAwMTEuNSAwdjUuNWEuNzUuNzUgMCAwMS0xLjUgMHYtNS41ek04IDNhLjc1Ljc1IDAgMDAtLjc1Ljc1djMuNWEuNzUuNzUgMCAwMDEuNSAwdi0zLjVBLjc1Ljc1IDAgMDA4IDN6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5wcm9qZWN0cy50b3RhbENvdW50ICU+IFByb2plY3Q8JT0gcyhwbHVnaW5zLnByb2plY3RzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wcm9qZWN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wcm9qZWN0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8JSBmb3IgKGNvbnN0IHtuYW1lLCB1cGRhdGVkLCBwcm9ncmVzc30gb2YgcGx1Z2lucy5wcm9qZWN0cy5saXN0KSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0wIDMuNzVDMCAyLjc4NC43ODQgMiAxLjc1IDJoMTIuNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djguNUExLjc1IDEuNzUgMCAwMTE0LjI1IDE0SDEuNzVBMS43NSAxLjc1IDAgMDEwIDEyLjI1di04LjV6bTEuNzUtLjI1YS4yNS4yNSAwIDAwLS4yNS4yNXY4LjVjMCAuMTM4LjExMi4yNS4yNS4yNWgxMi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOC41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMy41IDYuMjVhLjc1Ljc1IDAgMDEuNzUtLjc1aDdhLjc1Ljc1IDAgMDEwIDEuNWgtN2EuNzUuNzUgMCAwMS0uNzUtLjc1em0uNzUgMi4yNWEuNzUuNzUgMCAwMDAgMS41aDRhLjc1Ljc1IDAgMDAwLTEuNWgtNHpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBuYW1lICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNSA4YTYuNSA2LjUgMCAxMTEzIDAgNi41IDYuNSAwIDAxLTEzIDB6TTggMGE4IDggMCAxMDAgMTZBOCA4IDAgMDA4IDB6bS41IDQuNzVhLjc1Ljc1IDAgMDAtMS41IDB2My41YS43NS43NSAwIDAwLjQ3MS42OTZsMi41IDFhLjc1Ljc1IDAgMDAuNTU3LTEuMzkyTDguNSA3Ljc0MlY0Ljc1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlZCA8JT0gdXBkYXRlZCAlPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGlmIChwcm9ncmVzcy5lbmFibGVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuNSAxLjc1YS4yNS4yNSAwIDAxLjI1LS4yNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjV2Ny43MzZhLjc1Ljc1IDAgMTAxLjUgMFYxLjc1QTEuNzUgMS43NSAwIDAwMTEuMjUgMGgtOC41QTEuNzUgMS43NSAwIDAwMSAxLjc1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgzLjE3YS43NS43NSAwIDAwMC0xLjVIMi43NWEuMjUuMjUgMCAwMS0uMjUtLjI1VjEuNzV6TTQuNzUgNGEuNzUuNzUgMCAwMDAgMS41aDQuNWEuNzUuNzUgMCAwMDAtMS41aC00LjV6TTQgNy43NUEuNzUuNzUgMCAwMTQuNzUgN2gyYS43NS43NSAwIDAxMCAxLjVoLTJBLjc1Ljc1IDAgMDE0IDcuNzV6bTExLjc3NCAzLjUzN2EuNzUuNzUgMCAwMC0xLjA0OC0xLjA3NEwxMC43IDE0LjE0NSA5LjI4MSAxMi43MmEuNzUuNzUgMCAwMC0xLjA2MiAxLjA1OGwxLjk0MyAxLjk1YS43NS43NSAwIDAwMS4wNTUuMDA4bDQuNTU3LTQuNDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwlPSBbcHJvZ3Jlc3MuZG9uZSA/IGAke3Byb2dyZXNzLmRvbmV9IGRvbmVgIDogXCJcIiwgcHJvZ3Jlc3MuZG9pbmcgPyBgJHtwcm9ncmVzcy5kb2luZ30gZG9pbmdgIDogXCJcIiwgcHJvZ3Jlc3MudG9kbyA/IGAke3Byb2dyZXNzLnRvZG99IHRvZG9gIDogXCJcIl0uZmlsdGVyKHN0ciA9PiBzdHIpLmpvaW4oXCIgwrcgXCIpICU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwlIGlmIChwcm9ncmVzcy5lbmFibGVkKSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGNlbnRlciBob3Jpem9udGFsLXdyYXAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiYmFyXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD1cInByb2plY3QtYmFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDYwXCIgaGVpZ2h0PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIHJ4PVwiNVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBtYXNrPVwidXJsKCNwcm9qZWN0LWJhcilcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI8JT0gKHByb2dyZXNzLmRvbmUvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzI4QTc0NVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAocHJvZ3Jlc3MuZG9uZS9wcm9ncmVzcy50b3RhbCkqNDYwICU+XCIgeT1cIjBcIiB3aWR0aD1cIjwlPSAocHJvZ3Jlc3MuZG9pbmcvcHJvZ3Jlc3MudG90YWwpKjQ2MCAlPlwiIGhlaWdodD1cIjhcIiBmaWxsPVwiIzZGNDJDMVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgbWFzaz1cInVybCgjcHJvamVjdC1iYXIpXCIgeD1cIjwlPSAoKHByb2dyZXNzLmRvbmUrcHJvZ3Jlc3MuZG9pbmcpL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiB5PVwiMFwiIHdpZHRoPVwiPCU9IChwcm9ncmVzcy50b2RvL3Byb2dyZXNzLnRvdGFsKSo0NjAgJT5cIiBoZWlnaHQ9XCI4XCIgZmlsbD1cIiNkMWQ1ZGFcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5naXN0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTEuNzUgMS41YS4yNS4yNSAwIDAwLS4yNS4yNXYxMi41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTIuNWEuMjUuMjUgMCAwMC4yNS0uMjVWMS43NWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djEyLjVBMS43NSAxLjc1IDAgMDExNC4yNSAxNkgxLjc1QTEuNzUgMS43NSAwIDAxMCAxNC4yNVYxLjc1em05LjIyIDMuNzJhLjc1Ljc1IDAgMDAwIDEuMDZMMTAuNjkgOCA5LjIyIDkuNDdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZsMi0yYS43NS43NSAwIDAwMC0xLjA2bC0yLTJhLjc1Ljc1IDAgMDAtMS4wNiAwek02Ljc4IDYuNTNhLjc1Ljc1IDAgMDAtMS4wNi0xLjA2bC0yIDJhLjc1Ljc1IDAgMDAwIDEuMDZsMiAyYS43NS43NSAwIDEwMS4wNi0xLjA2TDUuMzEgOGwxLjQ3LTEuNDd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy50b3RhbENvdW50ICU+IEdpc3Q8JT0gcyhwbHVnaW5zLmdpc3RzLnRvdGFsQ291bnQpICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5naXN0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5naXN0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggLjI1YS43NS43NSAwIDAxLjY3My40MThsMS44ODIgMy44MTUgNC4yMS42MTJhLjc1Ljc1IDAgMDEuNDE2IDEuMjc5bC0zLjA0NiAyLjk3LjcxOSA0LjE5MmEuNzUuNzUgMCAwMS0xLjA4OC43OTFMOCAxMi4zNDdsLTMuNzY2IDEuOThhLjc1Ljc1IDAgMDEtMS4wODgtLjc5bC43Mi00LjE5NEwuODE4IDYuMzc0YS43NS43NSAwIDAxLjQxNi0xLjI4bDQuMjEtLjYxMUw3LjMyNy42NjhBLjc1Ljc1IDAgMDE4IC4yNXptMCAyLjQ0NUw2LjYxNSA1LjVhLjc1Ljc1IDAgMDEtLjU2NC40MWwtMy4wOTcuNDUgMi4yNCAyLjE4NGEuNzUuNzUgMCAwMS4yMTYuNjY0bC0uNTI4IDMuMDg0IDIuNzY5LTEuNDU2YS43NS43NSAwIDAxLjY5OCAwbDIuNzcgMS40NTYtLjUzLTMuMDg0YS43NS43NSAwIDAxLjIxNi0uNjY0bDIuMjQtMi4xODMtMy4wOTYtLjQ1YS43NS43NSAwIDAxLS41NjQtLjQxTDggMi42OTR2LjAwMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmdpc3RzLnN0YXJnYXplcnMgJT4gU3RhcmdhemVyPCU9IHMocGx1Z2lucy5naXN0cy5zdGFyZ2F6ZXJzKSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+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+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8JSB9ICU+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLmhhYml0cykgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTggMS41Yy0yLjM2MyAwLTQgMS42OS00IDMuNzUgMCAuOTg0LjQyNCAxLjYyNS45ODQgMi4zMDRsLjIxNC4yNTNjLjIyMy4yNjQuNDcuNTU2LjY3My44NDguMjg0LjQxMS41MzcuODk2LjYyMSAxLjQ5YS43NS43NSAwIDAxLTEuNDg0LjIxMWMtLjA0LS4yODItLjE2My0uNTQ3LS4zNy0uODQ3YTguNjk1IDguNjk1IDAgMDAtLjU0Mi0uNjhjLS4wODQtLjEtLjE3My0uMjA1LS4yNjgtLjMyQzMuMjAxIDcuNzUgMi41IDYuNzY2IDIuNSA1LjI1IDIuNSAyLjMxIDQuODYzIDAgOCAwczUuNSAyLjMxIDUuNSA1LjI1YzAgMS41MTYtLjcwMSAyLjUtMS4zMjggMy4yNTktLjA5NS4xMTUtLjE4NC4yMi0uMjY4LjMxOS0uMjA3LjI0NS0uMzgzLjQ1My0uNTQxLjY4MS0uMjA4LjMtLjMzLjU2NS0uMzcuODQ3YS43NS43NSAwIDAxLTEuNDg1LS4yMTJjLjA4NC0uNTkzLjMzNy0xLjA3OC42MjEtMS40ODkuMjAzLS4yOTIuNDUtLjU4NC42NzMtLjg0OC4wNzUtLjA4OC4xNDctLjE3My4yMTMtLjI1My41NjEtLjY3OS45ODUtMS4zMi45ODUtMi4zMDQgMC0yLjA2LTEuNjM3LTMuNzUtNC0zLjc1ek02IDE1LjI1YS43NS43NSAwIDAxLjc1LS43NWgyLjVhLjc1Ljc1IDAgMDEwIDEuNWgtMi41YS43NS43NSAwIDAxLS43NS0uNzV6TTUuNzUgMTJhLjc1Ljc1IDAgMDAwIDEuNWg0LjVhLjc1Ljc1IDAgMDAwLTEuNWgtNC41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgQ29kaW5nIGhhYml0c1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMuaGFiaXRzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLmhhYml0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiaGFiaXRzXCI+XHJcbiAgICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5oYWJpdHMuaW5kZW50cy5zdHlsZSkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8bGk+VXNlIDwlPSBwbHVnaW5zLmhhYml0cy5pbmRlbnRzLnN0eWxlICU+IGZvciBpbmRlbnRzPC9saT5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICAgIDwlIGlmICghTnVtYmVyLmlzTmFOKHBsdWdpbnMuaGFiaXRzLmNvbW1pdHMuaG91cikpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGxpPk1vc3RseSBwdXNoIGNvZGUgYXJvdW5kIDwlPSBwbHVnaW5zLmhhYml0cy5jb21taXRzLmhvdXIgJT46MDA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMudG9waWNzKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTQuMTg0IDEuMTQzYTEuNzUgMS43NSAwIDAwLTIuNTAyLS41N0wuOTEyIDcuOTE2YTEuNzUgMS43NSAwIDAwLS41MyAyLjMybC40NDcuNzc1YTEuNzUgMS43NSAwIDAwMi4yNzUuNzAybDExLjc0NS01LjY1NmExLjc1IDEuNzUgMCAwMC43NTctMi40NTFsLTEuNDIyLTIuNDY0em0tMS42NTcuNjY5YS4yNS4yNSAwIDAxLjM1OC4wODFsMS40MjIgMi40NjRhLjI1LjI1IDAgMDEtLjEwOC4zNWwtMi4wMTYuOTctMS41MDUtMi42MDUgMS44NS0xLjI2ek05LjQzNiAzLjkybDEuMzkxIDIuNDEtNS40MiAyLjYxLS45NDItMS42MyA0Ljk3LTMuMzl6TTMuMjIyIDguMTU3bC0xLjQ2NiAxYS4yNS4yNSAwIDAwLS4wNzUuMzNsLjQ0Ny43NzVhLjI1LjI1IDAgMDAuMzI1LjFsMS41OTgtLjc2OS0uODMtMS40MzZ6bTYuMjUzIDIuMzA2YS43NS43NSAwIDAwLS45NDQtLjI1MmwtMS44MDkuODdhLjc1Ljc1IDAgMDAtLjI5My4yNTNMNC4zOCAxNC4zMjZhLjc1Ljc1IDAgMTAxLjIzOC44NDhsMS44ODEtMi43NXYyLjgyNmEuNzUuNzUgMCAwMDEuNSAwdi0yLjgyNmwxLjg4MSAyLjc1YS43NS43NSAwIDAwMS4yMzgtLjg0OGwtMi42NDQtMy44NjN6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBTdGFycmVkIHRvcGljc1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMudG9waWNzLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGQgZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMzQzIDEzLjY1N0E4IDggMCAxMTEzLjY1NyAyLjM0MyA4IDggMCAwMTIuMzQzIDEzLjY1N3pNNi4wMyA0Ljk3YS43NS43NSAwIDAwLTEuMDYgMS4wNkw2Ljk0IDggNC45NyA5Ljk3YS43NS43NSAwIDEwMS4wNiAxLjA2TDggOS4wNmwxLjk3IDEuOTdhLjc1Ljc1IDAgMTAxLjA2LTEuMDZMOS4wNiA4bDEuOTctMS45N2EuNzUuNzUgMCAxMC0xLjA2LTEuMDZMOCA2Ljk0IDYuMDMgNC45N3pcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIDwlPSBwbHVnaW5zLnRvcGljcy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9waWNzIGZpbGwtd2lkdGhcIj5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7bmFtZSwgZGVzY3JpcHRpb259IG9mIHBsdWdpbnMudG9waWNzLmxpc3QpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIiB0aXRsZT1cIjwlPSBkZXNjcmlwdGlvbiAlPlwiPjwlPSBuYW1lLnRvTG9jYWxlTG93ZXJDYXNlKCkgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljKSB7ICU+XHJcbiAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICA8aDIgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDhhNi41IDYuNSAwIDExMTMgMCA2LjUgNi41IDAgMDEtMTMgMHpNOCAwYTggOCAwIDEwMCAxNkE4IDggMCAwMDggMHpNNi4zNzkgNS4yMjdBLjI1LjI1IDAgMDA2IDUuNDQydjUuMTE3YS4yNS4yNSAwIDAwLjM3OS4yMTRsNC4yNjQtMi41NTlhLjI1LjI1IDAgMDAwLS40MjhMNi4zNzkgNS4yMjd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICA8JT0gcGx1Z2lucy5tdXNpYy5tb2RlICU+XHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBmaWxsLXdpZHRoXCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljLnByb3ZpZGVyKSB7ICU+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTIuMDAyIDIuNzI1YS43NS43NSAwIDAxLjc5Ny0uNjk5QzguNzkgMi40MiAxMy41OCA3LjIxIDEzLjk3NCAxMy4yMDFhLjc1Ljc1IDAgMTEtMS40OTcuMDk4IDEwLjUwMiAxMC41MDIgMCAwMC05Ljc3Ni05Ljc3Ni43NS43NSAwIDAxLS43LS43OTh6TTIgMTNhMSAxIDAgMTEyIDAgMSAxIDAgMDEtMiAwem0uODQtNS45NWEuNzUuNzUgMCAwMC0uMTc5IDEuNDg5YzIuNTA5LjMgNC41IDIuMjkxIDQuOCA0LjhhLjc1Ljc1IDAgMTAxLjQ5LS4xNzhBNy4wMDMgNy4wMDMgMCAwMDIuODM4IDcuMDV6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICBGcm9tIDwlPSBwbHVnaW5zLm11c2ljLnByb3ZpZGVyICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMubXVzaWMuZXJyb3IpIHsgJT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBlcnJvclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMi4zNDMgMTMuNjU3QTggOCAwIDExMTMuNjU3IDIuMzQzIDggOCAwIDAxMi4zNDMgMTMuNjU3ek02LjAzIDQuOTdhLjc1Ljc1IDAgMDAtMS4wNiAxLjA2TDYuOTQgOCA0Ljk3IDkuOTdhLjc1Ljc1IDAgMTAxLjA2IDEuMDZMOCA5LjA2bDEuOTcgMS45N2EuNzUuNzUgMCAxMDEuMDYtMS4wNkw5LjA2IDhsMS45Ny0xLjk3YS43NS43NSAwIDEwLTEuMDYtMS4wNkw4IDYuOTQgNi4wMyA0Ljk3elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPCU9IHBsdWdpbnMubXVzaWMuZXJyb3IubWVzc2FnZSAlPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPCUgfSBlbHNlIHsgJT5cclxuICAgICAgICAgICAgICAgIDwlIGlmIChwbHVnaW5zLm11c2ljLnRyYWNrcy5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYWNrbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwlIGZvciAoY29uc3Qge25hbWUgPSBcIlwiLCBhcnRpc3QgPSBcIlwiLCBhcnR3b3JrID0gXCJcIn0gb2YgcGx1Z2lucy5tdXNpYy50cmFja3MpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCw8JT0gYXJ0d29yayAlPlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIGFsdD1cIlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hbWVcIj48JT0gbmFtZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcnRpc3RcIj48JT0gYXJ0aXN0ICU+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gZWxzZSB7ICU+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xLjc1IDEuNWEuMjUuMjUgMCAwMC0uMjUuMjV2OS41YzAgLjEzOC4xMTIuMjUuMjUuMjVoMmEuNzUuNzUgMCAwMS43NS43NXYyLjE5bDIuNzItMi43MmEuNzUuNzUgMCAwMS41My0uMjJoNi41YS4yNS4yNSAwIDAwLjI1LS4yNXYtOS41YS4yNS4yNSAwIDAwLS4yNS0uMjVIMS43NXpNMCAxLjc1QzAgLjc4NC43ODQgMCAxLjc1IDBoMTIuNUMxNS4yMTYgMCAxNiAuNzg0IDE2IDEuNzV2OS41QTEuNzUgMS43NSAwIDAxMTQuMjUgMTNIOC4wNmwtMi41NzMgMi41NzNBMS40NTcgMS40NTcgMCAwMTMgMTQuNTQzVjEzSDEuNzVBMS43NSAxLjc1IDAgMDEwIDExLjI1di05LjV6TTkgOWExIDEgMCAxMS0yIDAgMSAxIDAgMDEyIDB6bS0uMjUtNS4yNWEuNzUuNzUgMCAwMC0xLjUgMHYyLjVhLjc1Ljc1IDAgMDAxLjUgMHYtMi41elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICBObyBtdXNpYyByZWNlbnRseSBsaXN0ZW5lZFxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgPCUgfSAlPlxyXG5cclxuICAgICAgPCUgaWYgKHBsdWdpbnMucG9zdHMpIHsgJT5cclxuICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgIDxoMiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk00LjQ1Ni43MzRhMS43NSAxLjc1IDAgMDEyLjgyNi41MDRsLjYxMyAxLjMyN2EzLjA4MSAzLjA4MSAwIDAwMi4wODQgMS43MDdsMi40NTQuNTg0YzEuMzMyLjMxNyAxLjggMS45NzIuODMyIDIuOTRMMTEuMDYgMTBsMy43MiAzLjcyYS43NS43NSAwIDExLTEuMDYxIDEuMDZMMTAgMTEuMDZsLTIuMjA0IDIuMjA1Yy0uOTY4Ljk2OC0yLjYyMy41LTIuOTQtLjgzMmwtLjU4NC0yLjQ1NGEzLjA4MSAzLjA4MSAwIDAwLTEuNzA3LTIuMDg0bC0xLjMyNy0uNjEzYTEuNzUgMS43NSAwIDAxLS41MDQtMi44MjZMNC40NTYuNzM0ek01LjkyIDEuODY2YS4yNS4yNSAwIDAwLS40MDQtLjA3MkwxLjc5NCA1LjUxNmEuMjUuMjUgMCAwMC4wNzIuNDA0bDEuMzI4LjYxM0E0LjU4MiA0LjU4MiAwIDAxNS43MyA5LjYzbC41ODQgMi40NTRhLjI1LjI1IDAgMDAuNDIuMTJsNS40Ny01LjQ3YS4yNS4yNSAwIDAwLS4xMi0uNDJMOS42MyA1LjczYTQuNTgxIDQuNTgxIDAgMDEtMy4wOTgtMi41MzdMNS45MiAxLjg2NnpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgIFJlY2VudCBhcnRpY2xlc1xyXG4gICAgICAgICAgPC9oMj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZmlsbC13aWR0aFwiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5wb3N0cy5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5wb3N0cy5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjAwMiAyLjcyNWEuNzUuNzUgMCAwMS43OTctLjY5OUM4Ljc5IDIuNDIgMTMuNTggNy4yMSAxMy45NzQgMTMuMjAxYS43NS43NSAwIDExLTEuNDk3LjA5OCAxMC41MDIgMTAuNTAyIDAgMDAtOS43NzYtOS43NzYuNzUuNzUgMCAwMS0uNy0uNzk4ek0yIDEzYTEgMSAwIDExMiAwIDEgMSAwIDAxLTIgMHptLjg0LTUuOTVhLjc1Ljc1IDAgMDAtLjE3OSAxLjQ4OWMyLjUwOS4zIDQuNSAyLjI5MSA0LjggNC44YS43NS43NSAwIDEwMS40OS0uMTc4QTcuMDAzIDcuMDAzIDAgMDAyLjgzOCA3LjA1elwiPjwvcGF0aD48L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgRnJvbSA8JT0gcGx1Z2lucy5wb3N0cy5zb3VyY2UgJT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgaWYgKHBsdWdpbnMucG9zdHMubGlzdC5sZW5ndGgpIHsgJT5cclxuICAgICAgICAgICAgICAgICAgPCUgZm9yIChjb25zdCB7dGl0bGUsIGRhdGV9IG9mIHBsdWdpbnMucG9zdHMubGlzdCkgeyAlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZCBwb3N0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNNC43NSAwYS43NS43NSAwIDAxLjc1Ljc1VjJoNVYuNzVhLjc1Ljc1IDAgMDExLjUgMFYyaDEuMjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMC41QTEuNzUgMS43NSAwIDAxMTMuMjUgMTZIMi43NUExLjc1IDEuNzUgMCAwMTEgMTQuMjVWMy43NUMxIDIuNzg0IDEuNzg0IDIgMi43NSAySDRWLjc1QS43NS43NSAwIDAxNC43NSAwem0wIDMuNWg4LjVhLjI1LjI1IDAgMDEuMjUuMjVWNmgtMTFWMy43NWEuMjUuMjUgMCAwMS4yNS0uMjVoMnptLTIuMjUgNHY2Ljc1YzAgLjEzOC4xMTIuMjUuMjUuMjVoMTAuNWEuMjUuMjUgMCAwMC4yNS0uMjVWNy41aC0xMXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb3NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGVcIj48JT0gZGF0ZSAlPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj48JT0gdGl0bGUgJT48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgICAgICA8JSB9IGVsc2UgeyAlPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS43NSAxLjVhLjI1LjI1IDAgMDAtLjI1LjI1djkuNWMwIC4xMzguMTEyLjI1LjI1LjI1aDJhLjc1Ljc1IDAgMDEuNzUuNzV2Mi4xOWwyLjcyLTIuNzJhLjc1Ljc1IDAgMDEuNTMtLjIyaDYuNWEuMjUuMjUgMCAwMC4yNS0uMjV2LTkuNWEuMjUuMjUgMCAwMC0uMjUtLjI1SDEuNzV6TTAgMS43NUMwIC43ODQuNzg0IDAgMS43NSAwaDEyLjVDMTUuMjE2IDAgMTYgLjc4NCAxNiAxLjc1djkuNUExLjc1IDEuNzUgMCAwMTE0LjI1IDEzSDguMDZsLTIuNTczIDIuNTczQTEuNDU3IDEuNDU3IDAgMDEzIDE0LjU0M1YxM0gxLjc1QTEuNzUgMS43NSAwIDAxMCAxMS4yNXYtOS41ek05IDlhMSAxIDAgMTEtMiAwIDEgMSAwIDAxMiAwem0tLjI1LTUuMjVhLjc1Ljc1IDAgMDAtMS41IDB2Mi41YS43NS43NSAwIDAwMS41IDB2LTIuNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgTm8gcmVjZW50IHBvc3RzXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCUgfSAlPlxyXG4gICAgICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhcikgeyAlPlxyXG4gICAgICAgIDxzZWN0aW9uPlxyXG4gICAgICAgICAgPGgyIGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTQuNzUgMGEuNzUuNzUgMCAwMS43NS43NVYyaDVWLjc1YS43NS43NSAwIDAxMS41IDBWMmgxLjI1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTAuNUExLjc1IDEuNzUgMCAwMTEzLjI1IDE2SDIuNzVBMS43NSAxLjc1IDAgMDExIDE0LjI1VjMuNzVDMSAyLjc4NCAxLjc4NCAyIDIuNzUgMkg0Vi43NUEuNzUuNzUgMCAwMTQuNzUgMHptMCAzLjVoOC41YS4yNS4yNSAwIDAxLjI1LjI1VjZoLTExVjMuNzVhLjI1LjI1IDAgMDEuMjUtLjI1aDJ6bS0yLjI1IDR2Ni43NWMwIC4xMzguMTEyLjI1LjI1LjI1aDEwLjVhLjI1LjI1IDAgMDAuMjUtLjI1VjcuNWgtMTF6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICBDb250cmlidXRpb25zIGNhbGVuZGFyXHJcbiAgICAgICAgICA8L2gyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbj5cclxuICAgICAgICAgICAgICA8JSBpZiAocGx1Z2lucy5pc29jYWxlbmRhci5lcnJvcikgeyAlPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkIGVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIj48cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0yLjM0MyAxMy42NTdBOCA4IDAgMTExMy42NTcgMi4zNDMgOCA4IDAgMDEyLjM0MyAxMy42NTd6TTYuMDMgNC45N2EuNzUuNzUgMCAwMC0xLjA2IDEuMDZMNi45NCA4IDQuOTcgOS45N2EuNzUuNzUgMCAxMDEuMDYgMS4wNkw4IDkuMDZsMS45NyAxLjk3YS43NS43NSAwIDEwMS4wNi0xLjA2TDkuMDYgOGwxLjk3LTEuOTdhLjc1Ljc1IDAgMTAtMS4wNi0xLjA2TDggNi45NCA2LjAzIDQuOTd6XCI+PC9wYXRoPjwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8JT0gcGx1Z2lucy5pc29jYWxlbmRhci5lcnJvci5tZXNzYWdlICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgPCUgaWYgKCFwbHVnaW5zLmlzb2NhbGVuZGFyLmVycm9yKSB7ICU+XHJcbiAgICAgICAgICAgICAgPHNlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiPjxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTcuOTk4IDE0LjVjMi44MzIgMCA1LTEuOTggNS00LjUgMC0xLjQ2My0uNjgtMi4xOS0xLjg3OS0zLjM4M2wtLjAzNi0uMDM3Yy0xLjAxMy0xLjAwOC0yLjMtMi4yOS0yLjgzNC00LjQzNC0uMzIyLjI1Ni0uNjMuNTc5LS44NjQuOTUzLS40MzIuNjk2LS42MjEgMS41OC0uMDQ2IDIuNzMuNDczLjk0Ny42NyAyLjI4NC0uMjc4IDMuMjMyLS42MS42MS0xLjU0NS44NC0yLjQwMy42MzNhMi43ODggMi43ODggMCAwMS0xLjQzNi0uODc0QTMuMjEgMy4yMSAwIDAwMyAxMGMwIDIuNTMgMi4xNjQgNC41IDQuOTk4IDQuNXpNOS41MzMuNzUzQzkuNDk2LjM0IDkuMTYuMDA5IDguNzcuMTQ2IDcuMDM1Ljc1IDQuMzQgMy4xODcgNS45OTcgNi41Yy4zNDQuNjg5LjI4NSAxLjIxOC4wMDMgMS41LS40MTkuNDE5LTEuNTQuNDg3LTIuMDQtLjgzMi0uMTczLS40NTQtLjY1OS0uNzYyLTEuMDM1LS40NTRDMi4wMzYgNy40NCAxLjUgOC43MDIgMS41IDEwYzAgMy41MTIgMi45OTggNiA2LjQ5OCA2czYuNS0yLjUgNi41LTZjMC0yLjEzNy0xLjEyOC0zLjI2LTIuMzEyLTQuNDM4LTEuMTktMS4xODQtMi40MzYtMi40MjUtMi42NTMtNC44MXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIEN1cnJlbnQgc3RyZWFrIDwlPSBwbHVnaW5zLmlzb2NhbGVuZGFyLnN0cmVhay5jdXJyZW50ICU+IGRheTwlPSBzKHBsdWdpbnMuaXNvY2FsZW5kYXIuc3RyZWFrLmN1cnJlbnQpICU+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCI+PHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMS41IDEuNzVhLjc1Ljc1IDAgMDAtMS41IDB2MTIuNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDE0LjVhLjc1Ljc1IDAgMDAwLTEuNUgxLjVWMS43NXptMTQuMjggMi41M2EuNzUuNzUgMCAwMC0xLjA2LTEuMDZMMTAgNy45NCA3LjUzIDUuNDdhLjc1Ljc1IDAgMDAtMS4wNiAwTDMuMjIgOC43MmEuNzUuNzUgMCAwMDEuMDYgMS4wNkw3IDcuMDZsMi40NyAyLjQ3YS43NS43NSAwIDAwMS4wNiAwbDUuMjUtNS4yNXpcIj48L3BhdGg+PC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgIH48JT0gcGx1Z2lucy5pc29jYWxlbmRhci5hdmVyYWdlICU+IGNvbW1pdHMgcGVyIGRheVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICA8JSB9ICU+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwlIGlmIChwbHVnaW5zLmlzb2NhbGVuZGFyLnN2ZykgeyAlPlxyXG4gICAgICAgICAgICA8JS0gcGx1Z2lucy5pc29jYWxlbmRhci5zdmcgJT5cclxuICAgICAgICAgIDwlIH0gJT5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgIDwlIH0gJT5cclxuXHJcbiAgICAgIDwlIGlmIChiYXNlLm1ldGFkYXRhKSB7ICU+XHJcbiAgICAgICAgPGZvb3Rlcj5cclxuICAgICAgICAgIDxzcGFuPlRoZXNlIG1ldHJpY3MgPCU9ICFjb21wdXRlZC50b2tlbi5zY29wZXMuaW5jbHVkZXMoXCJyZXBvXCIpID8gXCJkb2VzIG5vdCBpbmNsdWRlXCIgOiBcImluY2x1ZGVzXCIgJT4gcHJpdmF0ZSBjb250cmlidXRpb25zPC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4+TGFzdCB1cGRhdGVkIDwlPSBuZXcgRGF0ZSgpICU+PC9zcGFuPlxyXG4gICAgICAgIDwvZm9vdGVyPlxyXG4gICAgICA8JSB9ICU+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JlaWduT2JqZWN0PlxyXG48L3N2Zz4iLCJzdHlsZSI6Ii8qIFNWRyBnbG9iYWwgY29udGV4dCAqL1xyXG4gIHN2ZyB7XHJcbiAgICBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCBTZWdvZSBVSSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZiwgQXBwbGUgQ29sb3IgRW1vamksIFNlZ29lIFVJIEVtb2ppO1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6ICM3Nzc3Nzc7XHJcbiAgfVxyXG5cclxuLyogSGVhZGVycyAqL1xyXG4gIGgxLCBoMiwgaDMge1xyXG4gICAgbWFyZ2luOiA4cHggMCAycHg7XHJcbiAgICBwYWRkaW5nOiAwO1xyXG4gICAgY29sb3I6ICMwMzY2ZDY7XHJcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIH1cclxuICBoMSBzdmcsIGgyIHN2ZywgaDMgc3ZnIHtcclxuICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcclxuICB9XHJcbiAgaDEge1xyXG4gICAgZm9udC1zaXplOiAyMHB4O1xyXG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgfVxyXG4gIGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcbiAgaDMge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gIH1cclxuXHJcbi8qIEZpZWxkcyAqL1xyXG4gIHNlY3Rpb24gPiAuZmllbGQge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcclxuICAgIG1hcmdpbi1yaWdodDogNXB4O1xyXG4gIH1cclxuICAuZmllbGQge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAycHg7XHJcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gIH1cclxuICAuZmllbGQgc3ZnIHtcclxuICAgIG1hcmdpbjogMCA4cHg7XHJcbiAgICBmaWxsOiAjOTU5ZGE1O1xyXG4gICAgZmxleC1zaHJpbms6IDA7XHJcbiAgfVxyXG4gIC5maWVsZC5lcnJvciB7XHJcbiAgICBjb2xvcjogI2NiMjQzMTtcclxuICB9XHJcbiAgLmZpZWxkLmVycm9yIHN2ZyB7XHJcbiAgICBmaWxsOiAjY2IyNDMxO1xyXG4gIH1cclxuXHJcbi8qIERpc3BsYXlzICovXHJcbiAgLnJvdyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gIH1cclxuICAucm93IHNlY3Rpb24ge1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgfVxyXG4gIC5jb2x1bW4ge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuICAuY2VudGVyIHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gIH1cclxuICAuaG9yaXpvbnRhbCB7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWFyb3VuZDtcclxuICB9XHJcbiAgLmhvcml6b250YWwtd3JhcCB7XHJcbiAgICBmbGV4LXdyYXA6IHdyYXA7XHJcbiAgfVxyXG4gIC5ob3Jpem9udGFsIC5maWVsZCB7XHJcbiAgICBmbGV4OiAxIDEgMDtcclxuICB9XHJcbiAgLm5vLXdyYXAge1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICB9XHJcbiAgLmZpbGwtd2lkdGgge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgfVxyXG5cclxuLyogVXNlciBhdmF0YXIgKi9cclxuICAuYXZhdGFyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XHJcbiAgICBtYXJnaW46IDAgNnB4O1xyXG4gIH1cclxuXHJcbi8qIENvbW1pdCBjYWxlbmRhciAqL1xyXG4gIC5jYWxlbmRhci5maWVsZCB7XHJcbiAgICBtYXJnaW46IDRweCAwO1xyXG4gICAgbWFyZ2luLWxlZnQ6IDdweDtcclxuICB9XHJcbiAgLmNhbGVuZGFyIC5kYXkge1xyXG4gICAgb3V0bGluZTogMXB4IHNvbGlkIHJnYmEoMjcsMzEsMzUsLjA0KTtcclxuICAgIG91dGxpbmUtb2Zmc2V0OiAtMXB4O1xyXG4gIH1cclxuXHJcbi8qIFByb2dyZXNzIGJhcnMgKi9cclxuICBzdmcuYmFyIHtcclxuICAgIG1hcmdpbjogNHB4IDA7XHJcbiAgfVxyXG5cclxuLyogTGFuZ3VhZ2UgKi9cclxuICAuZmllbGQubGFuZ3VhZ2Uge1xyXG4gICAgbWFyZ2luOiAwIDhweDtcclxuICAgIGZsZXgtZ3JvdzogMDtcclxuICB9XHJcblxyXG4gIC5maWVsZC5sYW5ndWFnZSBzbWFsbCB7XHJcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xyXG4gICAgb3BhY2l0eTogLjc7XHJcbiAgfVxyXG5cclxuLyogTGFiZWxzICovXHJcbiAgLmxhYmVsIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNGMUY4RkY7XHJcbiAgICBjb2xvcjogIzAzNjZENjtcclxuICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMjJweDtcclxuICAgIG1hcmdpbjogMnB4IDVweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMnB4O1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gIH1cclxuXHJcbiAgLmxhYmVsOmhvdmVyIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICNEREVFRkY7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgfVxyXG5cclxuLyogSGFiaXRzICovXHJcbiAgLmhhYml0cyB7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XHJcbiAgICBwYWRkaW5nLWxlZnQ6IDM3cHg7XHJcbiAgfVxyXG5cclxuLyogRm9vdGVyICovXHJcbiAgZm9vdGVyIHtcclxuICAgIG1hcmdpbi10b3A6IDhweDtcclxuICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICAgIG9wYWNpdHk6IDAuNTtcclxuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xyXG4gIH1cclxuXHJcbi8qIFNwZWVkIHRlc3QgY2F0ZWdvcmllcyAqL1xyXG4gIC5jYXRlZ29yaWVzIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1hcm91bmQ7XHJcbiAgICBtYXJnaW4tdG9wOiA0cHg7XHJcbiAgfVxyXG4gIC5jYXRlZ29yaWUge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgZmxleDogMSAxIDA7XHJcbiAgfVxyXG5cclxuLyogR2F1Z2VzICovXHJcbiAgLmdhdWdlIHtcclxuICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDtcclxuICAgIGZpbGw6IG5vbmU7XHJcbiAgfVxyXG4gIC5nYXVnZS5oaWdoIHtcclxuICAgIGNvbG9yOiAjMThiNjYzO1xyXG4gIH1cclxuICAuZ2F1Z2UuYXZlcmFnZSB7XHJcbiAgICBjb2xvcjogI2ZiOGMwMDtcclxuICB9XHJcbiAgLmdhdWdlLmxvdyB7XHJcbiAgICBjb2xvcjogI2U1MzkzNTtcclxuICB9XHJcbiAgLmdhdWdlLWJhc2UsIC5nYXVnZS1hcmMge1xyXG4gICAgc3Ryb2tlOiBjdXJyZW50Q29sb3I7XHJcbiAgICBzdHJva2Utd2lkdGg6IDEwO1xyXG4gIH1cclxuICAuZ2F1Z2UtYmFzZSB7XHJcbiAgICBzdHJva2Utb3BhY2l0eTogLjI7XHJcbiAgfVxyXG4gIC5nYXVnZS1hcmMge1xyXG4gICAgZmlsbDogbm9uZTtcclxuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xyXG4gICAgYW5pbWF0aW9uLWRlbGF5OiAyNTBtcztcclxuICAgIGFuaW1hdGlvbjogYW5pbWF0aW9uLWdhdWdlIDFzIGVhc2UgZm9yd2FyZHNcclxuICB9XHJcbiAgLmdhdWdlIHRleHQge1xyXG4gICAgZmlsbDogY3VycmVudENvbG9yO1xyXG4gICAgZm9udC1zaXplOiA0MHB4O1xyXG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZTtcclxuICAgIHRleHQtYW5jaG9yOiBtaWRkbGU7XHJcbiAgICBmb250LXdlaWdodDogNjAwO1xyXG4gIH1cclxuICAuZ2F1Z2UgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGNvbG9yOiAjNzc3Nzc3O1xyXG4gIH1cclxuICBAa2V5ZnJhbWVzIGFuaW1hdGlvbi1nYXVnZSB7XHJcbiAgICBmcm9tIHtcclxuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMCAzMjk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIC5hdWRpdHMge1xyXG4gICAgbWFyZ2luLXRvcDogOHB4O1xyXG4gIH1cclxuICAuYXVkaXQudGV4dCB7XHJcbiAgICBtaW4td2lkdGg6IDQycHg7XHJcbiAgfVxyXG4gIC5hdWRpdCBzdmcge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gIH1cclxuICAuYXVkaXQuaGlnaCB7XHJcbiAgICBmaWxsOiAjMThiNjYzO1xyXG4gIH1cclxuICAuYXVkaXQuYXZlcmFnZSB7XHJcbiAgICBmaWxsOiAjZmI4YzAwO1xyXG4gIH1cclxuICAuYXVkaXQubG93IHtcclxuICAgIGZpbGw6ICNlNTM5MzU7XHJcbiAgfVxyXG5cclxuLyogTXVzaWMgcGx1Z2luICovXHJcbiAgLnRyYWNrbGlzdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xyXG4gICAgbWFyZ2luLWxlZnQ6IDI4cHg7XHJcbiAgICBtYXJnaW4tdG9wOiA0cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICB9XHJcbiAgLnRyYWNrIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XHJcbiAgfVxyXG4gIC50cmFjayBpbWcge1xyXG4gICAgbWFyZ2luOiAwIDEwcHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA3cHg7XHJcbiAgfVxyXG4gIC50cmFjayAubmFtZSB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMTRweDtcclxuICB9XHJcbiAgLnRyYWNrIC5hcnRpc3Qge1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgb3BhY2l0eTogLjc7XHJcbiAgfVxyXG5cclxuLyogUG9zdHMgcGx1Z2luICovXHJcbiAgLnBvc3Qge1xyXG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XHJcbiAgfVxyXG4gIC5wb3N0IC5pbmZvcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xyXG4gIH1cclxuICAucG9zdCAuaW5mb3MgLnRpdGxlIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIHdpZHRoOiA0MDBweDtcclxuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XHJcbiAgICBtYXgtaGVpZ2h0OiA0MHB4OztcclxuICB9XHJcbiAgLnBvc3QgLmluZm9zIC5kYXRlIHtcclxuICAgIGZsZXgtc2hyaW5rOiAwO1xyXG4gICAgZm9udC1zaXplOiAxMnB4O1xyXG4gICAgb3BhY2l0eTogLjc7XHJcbiAgICB3aWR0aDogNDBweDtcclxuICAgIHBhZGRpbmctdG9wOiAxcHg7XHJcbiAgfVxyXG5cclxuLyogVG9waWNzICovXHJcbiAgLnRvcGljcyB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC13cmFwOiB3cmFwO1xyXG4gIH1cclxuXHJcbi8qIEZhZGUgYW5pbWF0aW9uICovXHJcbiAgLmFmIHtcclxuICAgIG9wYWNpdHk6IDA7XHJcbiAgICBhbmltYXRpb246IGFuaW1hdGlvbi1mYWRlIDFzIGVhc2UgZm9yd2FyZHM7XHJcbiAgfVxyXG4gIEBrZXlmcmFtZXMgYW5pbWF0aW9uLWZhZGUge1xyXG4gICAgZnJvbSB7XHJcbiAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICB9XHJcbiAgICB0byB7XHJcbiAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuLyogQ2FsZW5kYXIgKi9cclxuICA6cm9vdCB7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1iZzogI2ViZWRmMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJnOiAjOWJlOWE4O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYmc6ICM0MGM0NjM7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMy1iZzogIzMwYTE0ZTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJnOiAjMjE2ZTM5O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwxLWJnOiAjZmZlZTRhO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwyLWJnOiAjZmZjNTAxO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwzLWJnOiAjZmU5NjAwO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUw0LWJnOiAjMDMwMDFjO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDQtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDEtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gIH0iLCJmb250cyI6IiJ9LCJ0ZXJtaW5hbCI6eyJxdWVyeSI6InF1ZXJ5IE1ldHJpY3Mge1xyXG4gIHVzZXIobG9naW46ICRsb2dpbikge1xyXG4gICAgZGF0YWJhc2VJZFxyXG4gICAgbmFtZVxyXG4gICAgbG9naW5cclxuICAgIGNyZWF0ZWRBdFxyXG4gICAgYXZhdGFyVXJsXHJcbiAgICB3ZWJzaXRlVXJsXHJcbiAgICBnaXN0cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHJlcG9zaXRvcmllcyhsYXN0OiAkcmVwb3NpdG9yaWVzLCBpc0Zvcms6IGZhbHNlLCBvd25lckFmZmlsaWF0aW9uczogT1dORVIpIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgICB0b3RhbERpc2tVc2FnZVxyXG4gICAgICBub2RlcyB7XHJcbiAgICAgICAgbmFtZVxyXG4gICAgICAgIHdhdGNoZXJzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgc3RhcmdhemVycyB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxhbmd1YWdlcyhmaXJzdDogNCkge1xyXG4gICAgICAgICAgZWRnZXMge1xyXG4gICAgICAgICAgICBzaXplXHJcbiAgICAgICAgICAgIG5vZGUge1xyXG4gICAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICAgICAgbmFtZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19vcGVuOiBpc3N1ZXMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlzc3Vlc19jbG9zZWQ6IGlzc3VlcyhzdGF0ZXM6IENMT1NFRCkge1xyXG4gICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgIH1cclxuICAgICAgICBwcl9vcGVuOiBwdWxsUmVxdWVzdHMoc3RhdGVzOiBPUEVOKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHByX21lcmdlZDogcHVsbFJlcXVlc3RzKHN0YXRlczogTUVSR0VEKSB7XHJcbiAgICAgICAgICB0b3RhbENvdW50XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlbGVhc2VzIHtcclxuICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9ya0NvdW50XHJcbiAgICAgICAgbGljZW5zZUluZm8ge1xyXG4gICAgICAgICAgc3BkeElkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBwYWNrYWdlcyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHN0YXJyZWRSZXBvc2l0b3JpZXMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgICB3YXRjaGluZyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzU3BvbnNvciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIHNwb25zb3JzaGlwc0FzTWFpbnRhaW5lciB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIGNvbnRyaWJ1dGlvbnNDb2xsZWN0aW9uIHtcclxuICAgICAgdG90YWxSZXBvc2l0b3JpZXNXaXRoQ29udHJpYnV0ZWRDb21taXRzXHJcbiAgICAgIHRvdGFsQ29tbWl0Q29udHJpYnV0aW9uc1xyXG4gICAgICByZXN0cmljdGVkQ29udHJpYnV0aW9uc0NvdW50XHJcbiAgICAgIHRvdGFsSXNzdWVDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RDb250cmlidXRpb25zXHJcbiAgICAgIHRvdGFsUHVsbFJlcXVlc3RSZXZpZXdDb250cmlidXRpb25zXHJcbiAgICB9XHJcbiAgICBjYWxlbmRhcjpjb250cmlidXRpb25zQ29sbGVjdGlvbihmcm9tOiAkY2FsZW5kYXIuZnJvbSwgdG86ICRjYWxlbmRhci50bykge1xyXG4gICAgICBjb250cmlidXRpb25DYWxlbmRhciB7XHJcbiAgICAgICAgd2Vla3Mge1xyXG4gICAgICAgICAgY29udHJpYnV0aW9uRGF5cyB7XHJcbiAgICAgICAgICAgIGNvbG9yXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXBvc2l0b3JpZXNDb250cmlidXRlZFRvIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93ZXJzIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgZm9sbG93aW5nIHtcclxuICAgICAgdG90YWxDb3VudFxyXG4gICAgfVxyXG4gICAgaXNzdWVDb21tZW50cyB7XHJcbiAgICAgIHRvdGFsQ291bnRcclxuICAgIH1cclxuICAgIG9yZ2FuaXphdGlvbnMge1xyXG4gICAgICB0b3RhbENvdW50XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsImltYWdlIjoiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0ODBcIiBoZWlnaHQ9XCI8JT0gNDhcclxuICArICghIWJhc2UuaGVhZGVyKSo2MlxyXG4gICsgKCEhYmFzZS5tZXRhZGF0YSkqMTA4XHJcbiAgKyAoISFiYXNlLmFjdGl2aXR5KSoxMDhcclxuICArICghIWJhc2UuY29tbXVuaXR5KSo5NFxyXG4gICsgKCEhYmFzZS5yZXBvc2l0b3JpZXMpKjE0MlxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLnRyYWZmaWMpKSoxOFxyXG4gICsgKCghIWJhc2UucmVwb3NpdG9yaWVzKSooISFwbHVnaW5zLmZvbGxvd3VwKSkqMTAyXHJcbiAgKyAoKCEhYmFzZS5yZXBvc2l0b3JpZXMpKighIXBsdWdpbnMubGluZXMpKSozNFxyXG4gICsgKCEhcGx1Z2lucy5wYWdlc3BlZWQpKjExMFxyXG4gICsgKCEhcGx1Z2lucy5sYW5ndWFnZXMpKjEyNFxyXG4gICsgTWF0aC5tYXgoMCwgKCgoISFiYXNlLm1ldGFkYXRhKSsoISFiYXNlLmhlYWRlcikrKCghIWJhc2UuYWN0aXZpdHkpfHwoISFiYXNlLmNvbW11bml0eSkpKyghIWJhc2UucmVwb3NpdG9yaWVzKSsoISFwbHVnaW5zLnBhZ2VzcGVlZCkrKCEhcGx1Z2lucy5sYW5ndWFnZXMpKS0xKSkqMjBcclxuJT5cIj5cclxuICA8JVxyXG4gICAgbWV0YS4kID0gYDxzcGFuIGNsYXNzPVwicHMxLXBhdGhcIj4ke2Ake3VzZXIubG9naW59YC50b0xvY2FsZUxvd2VyQ2FzZSgpfUBtZXRyaWNzPC9zcGFuPjo8c3BhbiBjbGFzcz1cInBzMS1sb2NhdGlvblwiPn48L3NwYW4+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+PC9iPiAgcGFja2FnZTwlPSBzKHVzZXIucGFja2FnZXMudG90YWxDb3VudCkgJT5cclxuZHIteCAgPGI+PCU9IGAke3VzZXIuZ2lzdHMudG90YWxDb3VudH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAgZ2lzdDwlPSBzKHVzZXIuZ2lzdHMudG90YWxDb3VudCkgJT5cclxuPCUgaWYgKHBsdWdpbnMuZm9sbG93dXApIHsgaWYgKHBsdWdpbnMuZm9sbG93dXAuZXJyb3IpIHsgLSU+XHJcbmQtLS0gIDxiPiAgICAgPC9iPiAgSVNTVUVTIDxzcGFuIGNsYXNzPVwiZXJyb3JcIj4oPCU9IHBsdWdpbnMuZm9sbG93dXAuZXJyb3IubWVzc2FnZSAlPik8L3NwYW4+XHJcbmQtLS0gIDxiPiAgICAgPC9iPiAgUFVMTF9SRVFVRVNUUyA8c3BhbiBjbGFzcz1cImVycm9yXCI+KDwlPSBwbHVnaW5zLmZvbGxvd3VwLmVycm9yLm1lc3NhZ2UgJT4pPC9zcGFuPlxyXG48JSB9IGVsc2UgeyAtJT5cclxuZHIteCAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+ICBJU1NVRVNcclxuLXItLSAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLm9wZW59YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUnOKUgOKUgCBvcGVuXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLmlzc3Vlcy5jbG9zZWR9YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUlOKUgOKUgCBjbG9zZWRcclxuZHIteCAgPGI+PCU9IGAke3BsdWdpbnMuZm9sbG93dXAuaXNzdWVzLmNvdW50fWAucGFkU3RhcnQoNSkgJT48L2I+ICBQVUxMX1JFUVVFU1RTXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLnByLm9wZW59YC5wYWRTdGFydCg1KSAlPjwvYj4gIOKUnOKUgOKUgCBvcGVuXHJcbi1yLS0gIDxiPjwlPSBgJHtwbHVnaW5zLmZvbGxvd3VwLnByLm1lcmdlZH1gLnBhZFN0YXJ0KDUpICU+PC9iPiAg4pSU4pSA4pSAIG1lcmdlZFxyXG48JSB9fSAtJT5cclxuPCUgaWYgKGNvbXB1dGVkLmxpY2Vuc2VzLmZhdm9yaXRlLmxlbmd0aCkgeyAtJT5cclxuZHIteCAgICAgICAgIExJQ0VOU0VcclxuLXItLSAgICAgICAgIOKUlOKUgOKUgCA8JT0gY29tcHV0ZWQubGljZW5zZXMuZmF2b3JpdGUgJT5cclxuPCUgfSAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGluZXMpIHsgaWYgKHBsdWdpbnMubGluZXMuZXJyb3IpIHsgJT5cclxuPHNwYW4gY2xhc3M9XCJkaWZmIGVycm9yXCI+QEAgPCU9IHBsdWdpbnMubGluZXMuZXJyb3IubWVzc2FnZSAlPiBAQDwvc3Bhbj48JSB9IGVsc2UgeyAlPlxyXG48c3BhbiBjbGFzcz1cImRpZmZcIj5AQCAtPCU9IHBsdWdpbnMubGluZXMuZGVsZXRlZCAlPiArPCU9IHBsdWdpbnMubGluZXMuYWRkZWQgJT4gQEA8L3NwYW4+XHJcbjwlIH19IC0lPlxyXG48L2Rpdj48JSB9IC0lPlxyXG48JSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtJT5cclxuPCUgaWYgKHBsdWdpbnMubGFuZ3VhZ2VzKSB7ICU+XHJcbjxkaXYgY2xhc3M9XCJzdGRpblwiPjwlLSBtZXRhLiQgJT4gbG9jYWxlPC9kaXY+PCUjIC0lPlxyXG48ZGl2IGNsYXNzPVwic3Rkb3V0XCI+PCUjIC0lPlxyXG48JSBpZiAocGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IpIHsgLSU+XHJcbjxzcGFuIGNsYXNzPVwiZXJyb3JcIj48JT0gcGx1Z2lucy5sYW5ndWFnZXMuZXJyb3IubWVzc2FnZSAlPjwvc3Bhbj48JSMgLSU+XHJcbjwlIH0gZWxzZSB7IGZvciAoY29uc3Qge25hbWUsIHZhbHVlfSBvZiBwbHVnaW5zLmxhbmd1YWdlcy5mYXZvcml0ZXMpIHsgLSU+XHJcbjxiPjwlPSBuYW1lLnRvTG9jYWxlVXBwZXJDYXNlKCkucGFkRW5kKDEyKSAlPjwvYj4gWzwlPSBcIiNcIi5yZXBlYXQoTWF0aC5jZWlsKDEwMCp2YWx1ZS81KSkucGFkRW5kKDIwKSAlPl0gPCU9ICgxMDAqdmFsdWUpLnRvRml4ZWQoMikucGFkRW5kKDUpICU+JVxyXG48JSB9fSAtJT5cclxuPC9kaXY+PCUgfSAtJT5cclxuPCUjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gLSU+XHJcbjwlIGlmIChwbHVnaW5zLnBhZ2VzcGVlZCkgeyAlPlxyXG48ZGl2IGNsYXNzPVwic3RkaW5cIj48JS0gbWV0YS4kICU+IGN1cmwgLUkgPCU9IHVzZXIud2Vic2l0ZVVybCAlPjwvZGl2PjwlIyAtJT5cclxuPGRpdiBjbGFzcz1cInN0ZG91dFwiPjwlIyAtJT5cclxuPCUgaWYgKHBsdWdpbnMucGFnZXNwZWVkLmVycm9yKSB7IC0lPlxyXG48c3BhbiBjbGFzcz1cImVycm9yXCI+PCU9IHBsdWdpbnMucGFnZXNwZWVkLmVycm9yLm1lc3NhZ2UgJT48L3NwYW4+PCUgfSBlbHNlIHsgLSU+XHJcbjxiPlVzZXItQWdlbnQ8L2I+OiBHb29nbGUgUGFnZVNwZWVkIEFQSVxyXG48Yj5Mb2NhdGlvbjwvYj46IDwlPSB1c2VyLndlYnNpdGVVcmwgJT5cclxuPCUgZm9yIChjb25zdCB7c2NvcmUsIHRpdGxlfSBvZiBwbHVnaW5zLnBhZ2VzcGVlZC5zY29yZXMpIHsgLSU+XHJcbjxiPjwlPSBgWC0ke3RpdGxlLnJlcGxhY2UoLyAvZywgXCItXCIpfWAgJT48L2I+OiA8JT0gIU51bWJlci5pc05hTihzY29yZSkgPyBNYXRoLnJvdW5kKHNjb3JlKjEwMCkgOiBcIi1cIiAlPiVcclxuPCUgfX0gLSU+XHJcbjwvZGl2PjwlIH0gLSU+XHJcbjwlIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0lPlxyXG48JSBpZiAoYmFzZS5tZXRhZGF0YSkgeyAtJT5cclxuXHJcbjxmb290ZXI+Q29ubmVjdGlvbiByZXNldCBieSA8JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT4uPCU9IE1hdGguZmxvb3IoMjU2Kk1hdGgucmFuZG9tKCkpICU+LjwlPSBNYXRoLmZsb29yKDI1NipNYXRoLnJhbmRvbSgpKSAlPi48JT0gTWF0aC5mbG9vcigyNTYqTWF0aC5yYW5kb20oKSkgJT48L2Zvb3Rlcj48JSMgLSU+XHJcbjwlIH0gLSU+PC9wcmU+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgPC9mb3JlaWduT2JqZWN0PlxyXG48L3N2Zz5cclxuXHJcbiIsInN0eWxlIjoiLyogU1ZHIGdsb2JhbCBjb250ZXh0ICovXHJcbiAgc3ZnIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICBjb2xvcjogIzc3Nzc3NztcclxuICB9XHJcblxyXG4vKiBUaXRsZSBiYXIgKi9cclxuICAuaGVhZGVyIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHRvcDogMDtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogMjBweDtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBwYWRkaW5nOiAwIDhweDtcclxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XHJcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCM1MDRiNDUgMCUsIzNjM2IzNyAxMDAlKTtcclxuICB9XHJcblxyXG4gIC50aXRsZSB7XHJcbiAgICBjb2xvcjogI2Q1ZDBjZTtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICB9XHJcblxyXG4gIC5idXR0b25zIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbiB7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcclxuICAgIGZvbnQtc2l6ZTogOHB4O1xyXG4gICAgaGVpZ2h0OiAxMnB4O1xyXG4gICAgd2lkdGg6IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMDAlO1xyXG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KCM3ZDc4NzEgMCUsICM1OTU5NTMgMTAwJSk7XHJcbiAgICB0ZXh0LXNoYWRvdzogMHB4IDFweCAwcHggcmdiYSgyNTUsMjU1LDI1NSwwLjIpO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbi5leGl0IHtcclxuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgjZjM3NDU4IDAlLCAjZGU0YzEyIDEwMCUpO1xyXG4gIH1cclxuXHJcbi8qIFRlcm1pbmFsICovXHJcbiAgcHJlLCAuYmFubmVyLCBmb290ZXIge1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgZm9udC1mYW1pbHk6ICdDb3VyaWVyIFByaW1lJztcclxuICAgIGNvbG9yOiAjREREREREO1xyXG4gIH1cclxuICBwcmUge1xyXG4gICAgYmFja2dyb3VuZDogIzQyMDkyQjtcclxuICAgIHBhZGRpbmc6IDEycHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgfVxyXG4gIC5iYW5uZXIsIGZvb3RlciB7XHJcbiAgICBjb2xvcjogI0FFOURBNztcclxuICB9XHJcblxyXG4vKiBQcm9tcHQgKi9cclxuICAucHMxLXBhdGgge1xyXG4gICAgY29sb3I6ICM3RURBMjk7XHJcbiAgfVxyXG5cclxuICAucHMxLWxvY2F0aW9uIHtcclxuICAgIGNvbG9yOiAjNDg3OGMwO1xyXG4gIH1cclxuXHJcbi8qIERpZmYgKi9cclxuICAuZGlmZiB7XHJcbiAgICBjb2xvcjogIzNBOTZERDtcclxuICB9XHJcblxyXG4vKiBFcnJvciAqL1xyXG4gIC5lcnJvciB7XHJcbiAgICBjb2xvcjogI2NiMjQzMTtcclxuICB9XHJcblxyXG4vKiBBbmltYXRpb25zICovXHJcbiAgLnN0ZGluLCBmb290ZXIge1xyXG4gICAgd2lkdGg6IDAlO1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgIG92ZXJmbG93OiBoaWRkZW47XHJcbiAgICBhbmltYXRpb24tbmFtZTogc3RkaW4tYW5pbWF0aW9uO1xyXG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogYm90aDtcclxuICB9XHJcblxyXG4gIC5zdGRvdXQge1xyXG4gICAgbWF4LWhlaWdodDogMCU7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgYW5pbWF0aW9uLW5hbWU6IHN0ZG91dC1hbmltYXRpb247XHJcbiAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBib3RoO1xyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzdGRpbi1hbmltYXRpb24ge1xyXG4gICAgMCUgeyB3aWR0aDogMCU7IH1cclxuICAgIDEwMCUgeyB3aWR0aDogMTAwJTsgfVxyXG4gIH1cclxuXHJcbiAgQGtleWZyYW1lcyBzdGRvdXQtYW5pbWF0aW9uIHtcclxuICAgIDAlIHsgbWF4LWhlaWdodDogMDsgfVxyXG4gICAgMTAwJSB7IG1heC1oZWlnaHQ6IDM2MHB4OyB9XHJcbiAgfVxyXG5cclxuLyogQ2FsZW5kYXIgKi9cclxuICA6cm9vdCB7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1iZzogI2ViZWRmMDtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LWJvcmRlcjogcmdiYSgyNywzMSwzNSwwLjA2KTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUwxLWJnOiAjOWJlOWE4O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYmc6ICM0MGM0NjM7XHJcbiAgICAtLWNvbG9yLWNhbGVuZGFyLWdyYXBoLWRheS1MMy1iZzogIzMwYTE0ZTtcclxuICAgIC0tY29sb3ItY2FsZW5kYXItZ3JhcGgtZGF5LUw0LWJnOiAjMjE2ZTM5O1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwxLWJnOiAjZmZlZTRhO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwyLWJnOiAjZmZjNTAxO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUwzLWJnOiAjZmU5NjAwO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1oYWxsb3dlZW4tZ3JhcGgtZGF5LUw0LWJnOiAjMDMwMDFjO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDQtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDMtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDItYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gICAgLS1jb2xvci1jYWxlbmRhci1ncmFwaC1kYXktTDEtYm9yZGVyOiByZ2JhKDI3LDMxLDM1LDAuMDYpO1xyXG4gIH0iLCJmb250cyI6IkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgc3JjOiB1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFEK2tBQklBQUFBQWNiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUEvaUFBQUFCd0FBQUFjaVR2ME1VZEVSVVlBQUQ2MEFBQUFLQUFBQUNvQS93RTFSMUJQVXdBQVAxUUFBQUF5QUFBQVFCYWJLSmhIVTFWQ0FBQSszQUFBQUhnQUFBQ2laNGR5eFU5VEx6SUFBQUlNQUFBQVR3QUFBR0J3MW8vV1kyMWhjQUFBQXlBQUFBQ3VBQUFCVXNSdFd5SmpkblFnQUFBTGFBQUFBRU1BQUFCc0p1RVFoV1p3WjIwQUFBUFFBQUFHOGdBQURoV2VOaFBPWjJGemNBQUFQcXdBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFNZ0FBQUwzd0FBRmRRZytIRXJtaGxZV1FBQUFHVUFBQUFOZ0FBQURZWG1ScXNhR2hsWVFBQUFjd0FBQUFnQUFBQUpBc1BBZmxvYlhSNEFBQUNYQUFBQU1FQUFBRFlMM1FkdzJ4dlkyRUFBQXVzQUFBQTBnQUFBTkl2QkJsK2JXRjRjQUFBQWV3QUFBQWdBQUFBSUFIUkFnWnVZVzFsQUFBNy9BQUFBY1FBQUFPVEFWeXVwbkJ2YzNRQUFEM0FBQUFBN0FBQUFVbGtYOFR5Y0hKbGNBQUFDc1FBQUFDaUFBQUF2VnF4M3pzQUFRQUFBQU1FbTFPdXd6UmZEenoxQUI4SUFBQUFBQURabklQaEFBQUFBTm43U1VmLzVQNWxCT2dGaHdBQUFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdCeitPdkN3TUJ5NXYrVC8wOVlYakFBUlZBQUN3Q3BGQWNRQUFFQUFBQm9BSEFBQlFBdkFBSUFBZ0FzQUZvQWpRQUFBS1lCQ2dBQ0FBRjQybU5nWVRuRE9JR0JsWUdCMVpqbERBTUR3MHdJelhTR29ZbEpDOGhuWU9Wa2dBRm1CaVFRR0Jyb3lIQ0FRWUZoQTV2RFh4Y0dCdlljWmdVRkJvYkpZSVZ6V0JZREtRVUdaZ0JuL1F5aUFIamFZem5ETUpVQkNGak9RRERqUzRiL0REWU1teG1NR0NZelBtWFVaTXhtMk0rd2lyRUVpTzh6SEdQWXczQ0hZVGRRWkRLUWRaTGhLY001aGdPTTl4azdHR29aVmpHc1ovZ0gxTVhGRU1CUUJzUWdtQVRFSnhpS3dXdzVCamVHQ0NBTnd2TVlxb0E4cnYvZmdPcHRHSll6ZWpHbU1iejQvNFRSa3FHZFFaV2hIZ2duQVcycFovQUZrdnNZbkJrMi92OERaTGVBNVNZRDNWYks0TUZnQk5UdEJ0Uy9pV0Vqa3pURE80WnBETi8rLy83L20wR0VZUjhUTzhOdUFCRlVQa2tBQUFCNDJtTmdZR0JtZ0dBWkJrWUdFUEFCOGhqQmZCWUdBeUROQVlSTVFEcWFvWTVody8vL1FKWUNReXlJOWYveC8wZi9OMEoxZ1FFakd3T2N5d2pTdzhTQUNvQ1N6Q3lzYk93Y25GemNQTHg4L0FLQ1FzSWlvbUxpRXBKUzBqS3ljdklLaWtyS0txcHE2aHFhV3RvNnVucjZCb1pHeGlhbVp1WVdsbGJXTnJaMkRQWU9qazdPTHE1dTdoNmVYdDQrdm43K0FZRkJ3U0doWWVFUmtWSFJNYkZ4OFFrTUJFRWlBMDBCQUJWTkg1Z0FBSGphclZkcld4dkhGWjdWRFl3QkE1S3dtM1hkVWNhaUxqdVNTZXM0eEZZY3NzdWlPRXBTZ1hHNzZ6VHRMaEx1L1pMMFJxL3AvYUw4bWJPaWZlcDh5MC9MZTJaV0NqamdQbjJlOGtIbm5abDM1bHpuekVKQ1N4SVBvekNXc3ZkRUxPNzJxUExnVVVTM1hMb1JKNC9sNkdGRWhXYjYwYXlZRllPQk9uQWJEUkl4aVVCdGo0VWpnc1J2a2FOSkpvOWJWTkNxb1JvdEttbzVQQzdXNnNJUHFCcklKUEd6UWkzd3MyWXhvRUt3ZnlScFhnRUU2WkJLL2FOeG9WREFNZFE0dk5yZzJmRmkzZkd2U2tEbGo2dE9GV3VLUkQ4NmpNZXJUc0VvTEdrcWVsUVBJdFpIcTBHUUUxdzVsUFJ4bjBwcmo4WTNuSVVnSElSVUNhTUdGWnZ4M2pzUnlPNG9rdFR2WTJvTGJOcGt0Qm5ITXJOc1dIUURVL2xJMGdhdmJ6RHo0MzRrRVkxUkttbXVIeVdZa2J3MngrZzJvOXVKbThSeDdDSmFOQjhNU094RkpIcE1ibURzOXVnYW8ydTk5TW1TR0REalNWa2N4UEV3amNueDRqajNJSlpEK0tQOHVFVmxMV0ZCcVpuQ3A1bWdIOUdNOG1sVytjZ0F0aVF0cXBod0l4SnltTTBjK0pJWDJWM1htcysvVkV6Q0FaWFhHMWdNNUVpT29DdmJLRGNSb2QwbzZidnBYaHlwdUJGTDJub1FZYzNsdU9TbXRHaEcwNFhBRzR1Q1RmTXNoc3BYS0JmbHAxUTRlRXpPQUliUXpIcUxMbWpKMWk3Q3JaSTRrSHdDYlNVeFU1SnRZKzJjSGw5WUZFSG9yemVtaFhOUm55NmtlWHVLNDhHRUFLNG5NaHlwbEpOcWdpMWNUZ2hKRjBaT3JFUnFWYnB0VlN5Y3M1MnVZNWR3UDNYdDVLWkZiUnc2WHBnWHhSQmFYTldJMTFIRWwzUldLSVEwVExkYnRLUkJsWkl1Qlcvd0FRRElFQzN4YUErakpaT3ZaUnkwWklJaUVZTUJOTk55a01oUklta1pZV3ZSaXU3dFIxbHB1QjFmcDRWRGRkU2lxdTd0UnIwSGR0SnRZTDVxNW1zNkV5dkJ3eWhiV1FuSVNYMWE5dmpLb2JUODdCTC9MT0dIbkZYa290anNSeG1IRC83NkkyUVlhcGZXR3dyYkp0aTE2N3dGTjVsbllualNoZjFkeko1TzFqa3B6SVNvS3NRcklIRnY3RGlPeVZaZGkwd1V3djJJVnBRdlExcEUrUzBvbEJ4S3NZYVpCRGI4NThvVlJ5eUxxdkI5bnlOUmd5Rll5MnF6SG4zb3VjOGpicXR3dHU2MTZMTE9ISlpYRUhpV245TlprZVZ6T2l1eGRIVldabmxWWnhXV245ZlpETXRyT3B0bCtRV2RYV0RwYVRWSkJGVVNoRnpKTmpudjhyVnBrVDZ4dURwZGZNOHV0azRzcmswWDM3ZUxVZ3U2NUozbk1QdjZiK3NyTzNyU3Z3YjhrN0RyZWZqSFVzRS9sdGZoSDhzbS9HTzVCdjlZZmhIK3Nid0IvMWgrQ2Y2eFhJZC9MTnRhZGt6bDN0UlFleVdSNkg1T0VwamM0amEydVhnM05OMzA2Q1l1NWd1NEUxMTVUbHBWdXFtNHd6K1Q0YkwzWDU3a09sdXNoRng2OU1KNlZuYnFZWVR1eUY1KzVVUjR6dVBjMHZKRlkvbUxPTTF5d3MvcXhQMDkweGFlRjZ2L0V2eTNmVTl0WnJlY092dDZHL0dBQTJmYmoxdVRicmJvSmQyKzNHblI1bitqb3NJSG9MK01GSW5WcG16TEx2Y0doUGIrYU5SVlhUU1RDQzhnMmkrZXBrM0hxZGNRNFR0b1lxdDBHYlFTK21yVDBMSjU0ZFBGd0RzY3RaV1VuUkhPdkh1YUp0djJQS3JnTnVSc1NRazNsNjNkNkxna3k5STlMcTJWbjR0OWJybHo2TjdLN0ZBN0NWV0NwKzl0d20zUFBrK2xJQmtxS3VOMXhYSXBTRjNnaEZ2ZTAzdFNtSWFIUU8wZ3h3b2FkdmpwbWd1TUZweDNoaEpsbTJzRmx4akpLS1BneXA4NUZTZXlFVTAyb29qZnZLVitxZ3VGMEpuRVFtSzJ2SmJIUW5VUXBsZW1TelJuMW5kVWw1VnlGdTlOUThqTzJFaVQySS9hc29PWG5hM1BKeVhibGFlQ0trMk03cC84aUxGSlBLdmE4MndwTHZsWFQxZ1NUTktWOEpmTzB5NVBVcnlGL3RIbUtPN1E1U0RxdTNoY1pTZHVaeHRPRGZmMnRWT3JlMjcvMUtwLzV0NW43UWcwM2ZHZXBYQmIwMTF2Qk51NHh1RFV1VlFrdEUwYjJCRWFsN2srMTJ6a1UzeXArZFoxTGxDRjY5UEd6YlBuNytoc0RvL09aTXYvV05MZC8xY1ZzMC9jeHpvS3JlcEV2VFRpM000dUd2QWRieEtWMXpHNjZ6VlVIcGZjbTJrSTdpTUVkWHZ0OFZtQ0cxNXQwMjNjOGpmT21lL2hPS2RXcFplQTM5VDBNc1JiSE1VUTRaWTdlSUVuMFhwYmMwSFRXNEJmMVdNaGRnRDZBQTZEWFQxMnpNd2VnSmw1d0p3dXdENXpHRHhrRG9Pdk1ZZkIxL1V4ZW1FQUZBRTVCc1g2MkxGemo0RHMzRHZNY3hoOWcza0d2Y3M4Zzc3SlBJTyt4VHBEZ0lSMU1raFpKNE1EMXNsZ3dKelhBWWJNWVhESUhBYVBtY1BnMjhhdWJhRHZHTHNZZmRmWXhlaDd4aTVHM3pkMk1mcUJzWXZSRDQxZGpINWs3R0wwWThTNE0wM2dUOHlJdGdEZnMvQTF3UGM1Nkdia1kvUlR2TFU1NTJjV011Zm5odVBrbkY5Zzh5dlRVMzlwUm1iSGtZVzg0MWNXTXYzWE9DY24vTVpDSnZ6V1FpYjhEdHg3MC9OK2IwYUcvb0dGVFArRGhVei9JM2JtaEQ5WnlJUS9XOGlFdjRENzZ2Uzh2NXFSb2YvTlFxYi8zVUttL3dNN2M4SS9MV1RDeUVJbWZLakhGODBuTGxYY2NhbFFEUEhmRTlwZzdIczBlMGpGNi8yanlXUGQrZ1Qxb0FQNkFBQjQybVB3M3NGd0lpaGlJeU5qWCtRR3hwMGNEQndNeVFVYkdkaWR0akJvU3pNemFJR1kydzFZRkRpRTJKbTVJRHdUSmcwMlNWWXdqOHRwRDQ4RGh3UExBUVptQm00Z245ZHBENE1ER0lMNE80RWtnOHRHRmNhT3dJZ05EaDBSSUg2S3kwWU5FSDhIQndORWdNRWxVbnFqT2tob0YwY0RBeU9MUTBkeUNFd0NCTFliTVNteGliQXk4Mm50WVB6ZnVvR2xkeU1UZzh0bTFoUTJCaGNYQUgyVkxnY0FBSGphWTJBZ0FJd2drR1VuQXdQem5QL2YvaFVoV0F6emdIQUt3eFNXeFF3TXJBck1jeGdZL3RXdzdQei9paldZZWRQL1YvL1NZSHBaelJnZkEvRkZBTW1FR1lnQUFBQUFpQUNJQUlnQWlBRGlBUEFCa0FKaUF3d0Q2Z1FnQkdRRXFnVW9CWEFGbmdYSUJlNEdMQVoyQnNBSFBBZTRDQklJaEFqcUNVQUp1Z29lQ21BS3BncmtDeW9MYUF2eURKNE5CZzFzRGRnT0pnN0FEMHdQeGhCQ0VJZ1EzQkYyRWNZU1JCTEFFd29UWWhRcUZLd1ZRQldZRmU0V1FoYkNGMFFYcWhnQUdEd1llQmpBR09vWkdCbmVHcHdiQmh2RUhDSWNwaDJFSGd3ZUdCNGtIcmdmQ0IvT0lISWd1aUZtSWhJaWtpTW1JNFFrRWlSbUpOWWxWaVc0SmpvbXdpYjBKM29uMmlnb0tOWXAyQ3J3S3p3cmFDdW9BQUI0MnJWOEIzd2MxYlgzdlZPM2FGZmExUlpKMjdSZHZhNTZXM2ZaNnU2eWJFdHlsOEZOMklCd0V6YkdnS20yQVp0Z0lOUWtOR09EUVhUNENDV1VKQThlNUZGQ1BnSUV5RXZndmNTRUlvMitjKy9NN0s2S2JYN3YvVDcvck5uWm1UdXo5L1QvdWVmTUlCYmRLSDNHTmZFNUtCbWxvaXEwS0RxL1BOK2Z6Z2tjYnVZeHh3Z01Kd3pxUkVaZzRmOHVEY2FJNFRDelZvdFpoTmhGOE1HaWJ0aERiUlpMU2dwQ2xpcExaYVFrSytSeHA2U21wSnBOY0ZkRG1WNnc1eUtibGJVSWZxOHZWSllhS1MvMXNxbGV0anhVRnFsSVpXRmJYbHBpc3p0d1BZWlBxMFZrVTJFcitIMWhQUmI4WElHTGRmbUdYL2VSRDdZc254bkpaQTRGMkhmZlpYeFdjenAvNTUxOHV0bnFZOTU5bHcxWVE5bzc3OVNHK0J4UDhJZHBRWThueUQ4VDlQemc1UWQrMlArdHljQUorQlo4aEJXTlpyMU9Pb2xiZEhxelVXU2xkZElhZ1RPWVVuR0xkRElWTWZqTDBXK1pQM09ua1JFNTBZTEhkU3pESW95Ym00N2IyeGRIN1FnaDNNdGhqQU10UE5ETzlDS0c4VE90anFnVkRnSWZNT3BMUE40Wk5TY25JNVRzVEhiWUxIREhwS0NnSWJ3UVdTUDIrMEpoTmxSZWc4MDJGeWJVaHVvd01JSjUxc0lVTTY2TURBOHVZaXoyUGJpbVp1cFUrT05PcDJXTTFOblQwKzNNLzhsSUcwNTMrVzd4dWVobWRCU05NcSt6YjNLblUveElONXFCVUFxTGRPaHpSUDR4cUhiMEsrNTZiZ2cxb1RhME9McGdWaTJqMVhsdERNc3d6U2tHUGFzMWFoaUV0V2lkS1Zsa3NjQXhEQXZ5VGNJNlhSWWxNWnR0Ylc1R3FMbXR1YTIxQlc0eVo4YTBhRU4xWlZtcE54RDBXLzBCYjhDczhSRHhXb1JjTEZMNXdZNU1IeEd2Tjc1TFA0RGdDblVuTlNad2IzeTNGRmQ0UmU0Q29PM0Y2Tk9FeEUvbWNaNVVaeDdUSlAyZzd0MUJqdjg2K2h6NStMUkRQdGlJZVhYdm1EUVFsWDZNc3IzZWNOaDdtbXlrNTFKTTdqUldoejN4dmRoSlhDRWZrdjRhMzVPMm56NU4rTWVpazZON3VRdytFODFDN2FnVDNSTjE4Q3lqUVJhTU5ZdmJxcTBjajZ1d2xzOEtNWXlXQnkzSkJDM0owMk1OUnBwT0FUUUM4d2ozSVY3TDhKMUpXQXVtdzJxWlBzU3lZcThPaTJLQUJkVXBnVDNFaXAzbnVvcGN3UGJDU0xhak0rcnM2R2hzUktpanM2T3pzYjJ4SFdZMzB4M004anVEV1FhTkM4VGh3amE3YkZleWNvVkRZYXZON3NaV2l4R0xWa1hkNEZoYzhVcklhYnNwRkM3QVpSR1FCcm1hRWF3V214M3VaQzR2aTRUZ0hpWm1uN2U3dzVlZDdmTmwrNHkxMSsxdWJ1OWNkTitGM21EUXUyT0JmTmlhcG5WdTZkd3pjM1pIMTgvWGVJTjNyYzNPOHJmL2MyTmVkdDRDUHRQamV5aHRkcjdmN2ZZLzYzZG5iSFg4eStoMGJWeXllRjh6YzhMbjhmaWVTVjlRU1U1KzQzZW4ycG9XSm1ON2lzdTFkdDZpbmRHZit6elNnUm0xbVZtR0pQM1hJOTN6cHZyeWpNazY2YitJakhoVUFqcCtDK2g0TXZLaVlqUUZkYUFWMFc2d1pSNHovQ0JpTllLR0ZRWVJoNURJb2I0a0xCcXdWaU5xKy9TWTV6RUlBdU9zRnFUUkNMMUlFTEtGMXFsVFMwcDhQb1NtZGt4dG45TllNcVVrV2wzcEsvWVY1V1E1MHMwcDhDUEdrSkdZc2N4TnYwOWhHRmRhWWljYWpDbTdRZUZ4d0FnajNLRFk5VENpQVB2SFgyRmt4cHpHMSs2YU0wZjl6enhqejBoTFR4dSt5VVkvMmZVakpWUERZZlUva3pnMG5IQ0NHNXFUY0diUTRiRFo3Y012MnVBenpjYldXeEtIanJ5WE9IUlA0aW5pTnc0QlR6Y0FUK3RSSS9wNzAvRmlVT3cwUFVhNEVqT29FYlBNTEwrVjVkaEN6SE44czJQeVV4bzQxU2w3eml4UWFnYUN4eURjbWVVWXRnK2NxdGlyQlpYT2F0RmdqdU43QlJDR24yOTF5RDlWY3M3eENJYlRYVlZzam1qUldTNUNzV3NTSk4wSkRocWhtZE9CeURwL3hCK29Eb1IweEh6c2NaY2M4dnVJRkcxMlhGNEJMa3Z4YjRKb1YxMmRyNUFJbkVpMHZDSkV4VXFzaG9pMUFqT2YzbXdsVnRHOG9hSWpKenNIQjdNeWs3S09FYSsxTEZDeVlUN1o2Uzl5TDlyN1VOL1JqalhMVnM0N3N1cWR1b0s1WlJkMlNUOXlRK3VTdzd1Sk1Td3BMR2d0akhRV1NxY1diNERJRnZSYzBuMEorZkQySGxseWM5ZnEyNlpzdmJyejRQeVIzUE9tUmVZWGJjWWhJUG96NW5YbUx4RERrbEM1elA0a0VyaTZHUks0RURES3pKQm9oUmVSQTZnWDlzQ1JSSFV3SmducEFpelI3WGlFcXNITVg0UUsxdTkyQmRnS29mQnU3blNKVkovaGRHYmdGNG1RY0xiMFM3YVhYNDA4eUhNUzdqYUgvdUJqY0s4dy9OSkorTHl3ODFHYkJXdHN1WWo0R0dJaEF1aTltZTZSSHdHSHc1UkZ6T1VWckZHWDR0S2JEQTkrOWVWREJwUGVsYUxUWC9MZWxWZitZWUJmYlRPNzBpM2FmdW5xMFZIcCtuNnRKZDFsdGdtei80SG52dm9xbm45Nk5wbkhlVENQdTVSNWFER2FUWDB4bVVkT2ZCNXVKNTJIeld5MU1JSklCRXdOdGR4c1NtSG9Ib2xDZG1icUg2Njg4cjFMOVBKc0h2cnlxd2VWMmZDMjA5SURyNzRxUGZTUDJZSXlJN3daUWZqRlc5VTVFWCtFMFhQNEtzNEF0bE9HNWtlVGl6RGlDc1ArOUdRV1hEc0RNU0lIQkpKS0pJQXZCNGpGWmJVQWJFQzVSQzVXMk9Nd2gvQWdrY3hsOUN3SEtNSUFkeTFERVhlZ0FBQkVCZ1VRd1hLRm00TEl5MHoxZ3lhS2l1OXB3RUdpa1RJOXZBeXhtTVA1ZkFBanV5a3RxQk44bWRKWEw2WG51RE55MHZmdlQ4L0pjT2VrdnlqOVo2WlAwQVhUVEhhTUFqZy9oeHNxeXBHK0dOQjVQYWxtWjBnbysxMjZLK2kyRnB3K1hXQjFCMTNwdnlzVFFrNXpxc2VyRzhCcHZNNmZKZFArSzNRVjUrTVlrRU4rTkFlTUdrRVE0ekJBSTNBT2VDMnhjb0tPZUtZRFJudVFPK0QzQi95aXhrRWdoTWxMYmNydk5WSGpLek41S1ZBbzlackk5QTk0Y0JXeEdPa1ZvdjNTSzJRZlYzbUNIRFB4V0pDT0pmUEJXNlgzbWIrQlZhUWdkOVFCaWdGZ0RsSGxSekhkRDRVWVRSckZNQ0lMUDB5d1NqMEd2Zi9BTEw1am50N0lMT2NjMWhkeEtEWFptQ3c1czB1NEpQeEpxcFhTeWpDY2o3a0tHWkFuNmt5MHFXNXl0ZzErMzREMEVXcFFNbUVLUFJ3UDh4d1J5R3laSDVpcnlIekpINTN2eDRBLy80Yno0TXIwcUUwMVVPUkhyZlJ1U1VINWJtTWc0ME1ORFkyTjhJZnpYTDRueUUyZmtHbEhMMHZIT0lIdlJ5WlVma3JQTURLUUpSQWxpZHc0cDBXeDBxaU9hdU0rYWlUVUQ1aFFTbGlkdG9oVkJFY0FPdnR2RVhha1IvVGJzeUlzY3dkODh2MXV1MGI3L1kwcEZ2SXBuSmRpa1hIbjB4QS9VbWhNOXFDOGFEYkJrakowQmw4TVV5RkVaYU5Xa2pTa2VGTGNhVFlhVjJWNFRNMFRmcEs2aGZGUmt2bjhoYjYrNXkrOTlQbSt2aGNHMndhbVR4OW9rN2ZjMEZIcHl5ZWVrTDQ2ZWhUYm5uZ0MyNDhlM3ZUMndZTnZiOXhJdHBzSVB6NUVDT3p5YVpoUlVUVGZDTEFLZEFFMkxJTUJKYkFBZURuQ2lKNFl2MEUvdy81QWhOaGNZSXdBVGFxaFZWQTdCTTFsdnlFaVhVNFYwUEM5eVpocE4zcndnTVZpYzZIUksxUUJzMHQrcHN0T3Mvbk1YeVM1TW9aWktxT25BR1IrRFh3cVJPYy81c01jUzBSa0JCRUZFT3l6SE15TXFOVm1tSjhjSTdPSTFKZ2VOZkVJSmd3RDc3RnI4bkdkVVNOOEswUUZnWnd5djUyYUc4RWlnb2k5Q1NqUnEwb1p3SjdmRjRPSjFJMHdUenpjcy9vODZUZytRUUlha0RySDUwckdUeXh0dW1qRHhsNXl5RDc3VjB1NG9YbTNiVmh6L3dicC9sMGtjcjFJcUE2bDRHZVg3MnhjdHFGeUl6bDJLSnhTVmtOOTVPaFg3SDlUZk5FVWJTekdBaThBR1V3ekVnQlFDQnlRdzVKTWhLQTJGcmdDYUpnWGV6VnlLSStyRDJ3aGRBY0NrVWpBbnFjbG9Wc21Td1ZhaW44SEowZzBpSUJZQ05oeThrRy9KVklKOGIyVWVlR0I1ZTJ6dTFiM1BubnBpbGZiM0thTXpCVHoxRnRhZCt6WmUrRnNJdHFLL2dzdlBIOHJCY0FHNDNYSHVhR09HMWN0M0JrTUhWeXo0ZDZsMDZ0dFRvc3J4MUJjdFczTjJ2T0l2SHVXTHVnTlR5TmtiN0JsYUJkVHV6Z0VPZ2d3RFFWUkZpcVBsbVpoSk9CbUVTTmVkcEFhTEFoWkxRRDVHYllIWk9sbmdjWndDRVpEcGhYeEJueGFqVE1YV1UwcStyQ1dsaVFvWmcwdWk4bXdGSHRUMlpsM2tsbmZlUm4xbTNQSjlyRGs4N2wwK0ZOYlNVZzZEeS9VY0VPdEkvdklYUCtrS2luc2VJM016ejN1a1FyOGplelRuNmF5dWd0RjBNem9OQkZnTlNaeVlubUJCYnZoZUpiYkJZTkFnSHdmREJlN2laaDhCSEhSUERpYklXS0tvQkovS0dBUCtRSlVUUEtrV1pETTVLSlNqTjBuUjJuaWowdTk3TTJFaWdMRHFnc3VQcjVzM2ZPN2VsNXM4NlFRQ1UwNTB0UnhjVVBOcGpuVHp5OU44ZVg0R1F1VG1jM1l1THRvVUhpdWNzMWoyN1lOclk5V1dOMjJqRnhEUWZtVWJhMXorcVArZ003dHgvLzB1MlYvOVJyNHF5VHVTY2o2ODFCdHRFb2pVNG1CV2s2bWl3V3pJazRpZ1M0WHVGbFhuaXMzNklmTEhLRkFRS05KbDJrVEljc2d3WGNNZGVaQUJScVhFckRISWJoSzMwcWZPQ05IRm01OFpQV2Fwd1kyUEY3WmNnaFArVTQ2dkhWS3d3WE56ZjMxZFZ0YXVTZERwUjRITnY3cm5lbHpsait3K2Z6N2UxWjFYL2JiQjNIa1RmM0l0Ulc5RFRNMzFsZXVuVDVqWFJXVjEyZEFDdy95Y3FDNWp3RXdaNGhQU1NJQUhuWUJJdmRESUdDN09hREcxeUxia1NPYUxwOUNneFBPZFZMMDZFRHBmbXVZVitoTGlBbmVoQnpTeTM3aEVxU0YyckFqa00vam02V1E3Q3VZTzRrbzBsSisvTDkydXl2TnFHZi9mSkRZeExzUThWajBGdWlXQlBiZ0FBaFVnNlpIcDFnRVFBZkVNWU1JT0lidkUybmtFT1RJd1hHcTZlZmxPWjBJNWRYa1ZVZEtuTG5PbklBUGJwRUJUc0ErM2duSTJIenluSXNaSncvbXJWLzJMSjJ6YlBQNko3ZHVmWEw5NXFWenVucCt1YTYrdDdKeVpXM3R5c3JLM3ZyWm14c2FOcytXdDl6UW9pTmRIWU5aT1RldFdIdlA4dVgzckYxeFUwN1dZRWZYa1VXSDgrZFhsczR2S3BwZldqay9YK0xMZSt2clYxUlVyS2l2N3kwbnV2Yjg2SmNjQ3pRcnVtYkNEQWNFY3lBQ2pnRjZlVDZtYTByNEIzckg2bG9nRUpaMWpXQS9oaE1GWXY0VmViaml6T2tsOHdwUkxPbTU3eHlnY2xpSDNYR1ZrM1ZzTnRVM2JvaHFsdlRHbTNvOFh1Y095em9tNnh2TWxtSVY5bDdBSlE0UzR6a1ZyUVNKajRhc0FGTUhab1RZWTNRWU02eXBGTURRR0srdU9kQzR3NHo5NWxiZ2pQckhiSTdEbXBITHgwQWNtTU1WMHZzUUFNa2MzQ2duR3JiTFVaMkZ1TTZzams4SWd3OXlPMjBXT2dOK3dnek1FN0NmT29rckV6Rmc0a3lrVXhQeDRFNjBuWE54cVNpZDRFRzlobGhVTThGMHFKTXVITUlJM09ITXBHQlRXU3pRWWdXN2g3R3NwcGg5emVTMUpXV1A5REIzWkNmWkFBb1AveXZkWmt0bnRWeHFicHJaYTVHZWxaNjFlTTFwdVRxOE15a3pQVDB6Q2U4a092VXJYTTM1MkxsVUZvQnUxUFhJdFNBRWtNVWl1aXpaVGJqU3BzZ2ozV3FtOEZTWUFFL05ad2Fydm9SOWRxNGFNcVROQ1JBV3FId1krTkNtOHNHY3pNUkFkMmNjZER2REt1Z1c0a3NtV3F3R0FjeFZBZFhELzdKUWJqQjNqUFRJM0dDMXpDQ2xXdHFyby96QVUvRlVtUi9TWHNJSGFmUmI5bVhJZmNPUU1WMGMxV1ZnQmh2QUJUTEtFbTRvNXVjZzRpSitGM0YzMU5nQ0xjVHd1RjV3TVg0T0hHSmczRUFZZzRodTlTVU82NHhhc2lEdnlTckxpaFRtdzArR0FubloxQzVsMzVPTWFWWVdLbS9BOWN3a2NHUGMwdSs3eCtiTjJML0J3TmMxc0FZbTJUU2pmVm4rNnFXN0Z4TW5tbVM0K1dsVGVYbGRIZnh4cDl1dVdiWndlMWYrOVVWRkwxdlNSS2UzdXJHNGFVbXdrempWM1ZhSHB1dkgvM0w1K3VucUFyRVNCcFdNcnVVT2N1Vm9EbHFNdXFLTE0reU1qdEZoVmtmZ0Z1SWhsQS9xc1FaeGpJYnJRMHdTMXJHTXJrK0xJV1ZEQW9zQWVva2kzMGtCR0JKNXNhT3BDYUdteFUyTDVyYkREV2VIUzBMQmdsQWdaTkM0NDB0aW9YQ0NIeXF4SzJFZExNeHFzVkVjUm1PNzRwL0s2V2wxT1lCY1pBNlVVc2RzazUxWHlNL20vMlhYek1GNVU1YlpJOHNiaWpzS0ZoNWNzRERISTZRbXAxcnNYSXVZNVc5YTJQUEl3QlVmN1Z6eTBQWVorOG8wck5QQXA1WGYzSEg3NTl0dng3WUhheGRVQmR6Rml5SlpBYTc4d0hkM2JEMjVjbXJEdEdubHEyZDIvV2IvcWdhOUtLWWJwWDl6cE9jVUhoclk4OXphR3lYcDlzRm4xbGhNVEw1WjU5Q2xPZmYrODc0WGNjMmowdExPQTdNS0M3cXVtbHBRS21NR1NKVzRGeUhPNXFOaVZCa3RRMXJ3TzFwMkxSSkZUYmNPYXpTK0ZvRmpXTEwwQW1BQys0a1RLaXFFMGJrRXk1a0NFYitlTU0xbXgrTlFYTmdyampzaVIxdXdScEgxc3N3dmlwTndieDBGZGJlUjdmNjVrbVBlQVAxK2dtd3JjZE5UTkJQWkZId0tYL0VrUkYvZmNFZzEwYi8vUFphT0hDTGJLMGIrekxqa3RlNTJvR2NtME9NR1ZTNUVkZEZxQVl0eVpCSXhKNElyQVU4QzZJNWdBMEZKYytWTXFUQS9KeXNjOUVLK2hKemVRSzFXTllGWUVGYnBNS2wwc0NvY2g2UWZkdnhlNXZ1NzU4MklydCt5NUlGTFJsNGprNy9rRWtyQzZjOStlOEdGVzdmOUZtdTM3L3RSQWhUYWZrTnY4N2FnNytaTmZVZm14cW1RaEo3RlM1Y1BiMWpmKzVic2d5NEVERFFEWW13Sm1oYU5GbUNBY3pRcUlKWWhFSWZ2RlFGbXlFbFNmQi9TZVdMWTJSeEJyQ1dvT0JUMmg0SkJEWUhja09QSml4SlVkVlhVTUZaMWxZUzFSRjU2NTFKOHhITHJkaTA3Lzc1bGkrODhmK1dqalNiSWtjMmVaUjlzdmZYTDNYditldlB5Z3lXK2JHN0k3WmRPRWRPZHZubGEvenZYWHZ0MmYzV0ZNZXkydTIxVHBwSk05bkZzdnlWYVU2M2lWQ0tqclNDak5PQjhialJMbG9sQVpjS05rWW5mNjBpSFVUWnZvRnlrVUVGT3F5ZVRoSXdRY3VFbWY5Kzc5Ky9IcEd6QytjMmJLZi9mKy8yVEZ4M3Y2VGwrRWFqUmRkSS9UcDJTL25sZG5PMC9mdGIzNXFGRGI2NlhlVTdtMWd4enEwRUhtNDdyd051V0k0QW1ETmVmaFBWYURkYjNnN3ZSNmdVdFdBaUNKRUhUSjg4ZWtjbVRaWGcxOVhaRUs4bUZJaWNNMGl1MWVzM2dUN3kwTTJxRG5ScFVYUUZhRmZTYlVvT1FOWlVaNUJxVnlUSUovU1Z4Sit3MUtlbXdJdXpZRVM0SFlPendIc0tRTld2SWxsMFBCMEM2STE5aXhwT1Y1U0Yva3NUaytyTHhReURQOXhJTnpCT1VpSGlmbEs3cElwL1NpMlRiSmEzN0RFUXE4MndoOEt3Y1hTcnpyQkFzRVVKUFA4aWE0Tisxb0xXY3dITGdrREhXZGV1eFR1ZHJJVm1pMkExK3hpL0s2OTZrVEVuWHZYL1NKUkMyZ0VubEtGSlVBSTRvbGJJcEtjNGltZkRTY2F6d204YjVwQmdIdVNxRkYxS01GVjlRb0NDUjdXVTArMlN2SURtQTlCMmgvU1ZwWUF3bmRveDFTTEl1clZEcWxyVm9UblJXSmNZaVFYWVFzRGdDYURoMWJWL0QwQlVCeURwait3eWpMdS9ENFZwVUV3b0dJajR3WXgzMXRaT2FjVVZaWEJsb1dtMmExS0E1YXRCVGRpM2FkSDlQMTMwYkg5N3hMMm9oRDVKdFptRHV1OXR1L1hydi9xK1BMTCtoV0RIclB4TDZhcGVYeVdaZDllY1lYanBkYkNrc1BvcnRqNS9DYWJmVVZCUlQ0NVoxWVFmb3dqVGlzNUFlY1ZqUHJVM1NhU0NFYUx1TkJrYXI5YldJUEV2V1VzSGs2Y29PWERjTlRhbXJxYTZxTEM4cFZPS0tONUFjTDhwT0VKdjNqSUpVcWZmR1Jkc050RFUyMHREeU10a3VsWXhMNDkva003aWFuc0gvdlZUK0ppZmV3eHRVY3ZFUmFkMVlFVk1tWElNdm9PTEc2RldnbXdPNlBTZzdHdUlBS1BMZFpBbkwxd0tVWW9KYUZVbzl5RVZYUVpUMVlycFU3QzBadXpLbjdyQnZ3MXhHRWJaUVRaeEtaMllaUlJTNjNqUitoakhGdytnQzBMdkxZUzVCc2pwakoydUR6U1JxQUhJZVRKd1pJa2twS1grUW9BNkQvZjVBMkIrZkdGRWhwYjVnVXN5SUFwL1k5TGcrbU1ocmI3elVQeFJOSVZvMS8rRGVDNlg3NmV3ZWxXYzNVdkx3b3gwelV6T3hpOXJLZDAxYkI1ampjZnNndW5JM3pITWVzWTg1bUlPWk1HVDlEQU9PdzF5Zlh0RWFRNUtpTlF6SnlBU3NMQ25CWlIwdFRiTm5UWXNDUXdOWmtjcmlnREd1TWxqR2ErUy9MVmJ6SWpYa0FoeW15QzBabjFPSFlvaUZVbG9uTGRPazdHMzFGRG81YjBxNDFFa0luYnQ2VnJyUEhyS256UzdJYVhXNzZWS1Z0RGdoOUt5UTFlcVVyR1RUbGZXYzgvQ3FyRlZOdWdXdVJ2TDFRTW1pdXZsZVg4RHRja252VEtKazgvQ0RZM2xHNGxNQWxZQ2JoYlFFTVA0Z29Ic2tkRU1PSXNnUk5MN3VCdU44RUR6OHBvQUNBUlRqaVB2RkNkUXpIOEJVL3h0L0xTOTh5QkhqVGtvWms2TXFIWjVOQlhyQlJKOEhYb0I3Q09ZWEpmWmY2N0d6SEtMb2kxU0ZCaldZeUZPdk80TVhpS0w2cW5JaXpBQ3hrS1M0TUZQSFNVb3ZyOTJFOWVOUlo2eEJnemJqd0NmdHdpakpLSS9iK3liYkc0YmNRQ0RYOEtaMVUveG9lWG94K1hnN3pTbjg4U045MGRzVHJLdDA1R1ZDTWxNOS9PWllFYVdZUm01bmVyMkU5cG1LM1pXaDNsTzVCbEtzVURJMkIrZ3VrUkQ0ZDFsRURJTjdpV01BMDNORVBSUFBVbFRnYjVHTnN6TnFvc1d6VW9JRElnRi9RQWtETVJNTm56R3dVVWJnVXRNWVJhNEtoc284STk5ejE4VFI5N1FXc3YyVHphSEI3M01EaWJvNnJITmtWckMzRDc4NmxtcWpjZmc0OHlrVk80TVdBOTFiL3ovVVNWam02NzE3djc3MVZycmRlRjhYQkN4NXl3M2RJbjM1K09QU2wwZEpBQ0xvOHJBY24vcmZ2dmJhZC9wVmpMa1laT0ZGT2Fnc1dnTFFDMkVCclJWSjRSM3cvMFRQbkpNVjhNRm9EL0hPSWExYVhqRGkzRFA3aVZnQ3dGWTh1M0xscy92KytnMTExSDlJc0JqL1g5ODljUERRVmU5eWR5MS9ZTXVXWHk2VDNodkx4NUdiZG0yNWdJQ2V4ZEkzbElkVmFEWWFpcWFXWUNUYUFCSVdZc2krbW5XWXdVMU54d09nU21GaVNTd21XUzVCRWV4cWtxUUp2VnE2NWc3UVNDMjFPWnFPaDJCNEVMQW13aUprd0dlK1RBTTZtSU40bHI5ODRtREU4Z3piTjJad1oyZlVYbDJOVVBYczZzYXBVWmh3WlhFdzMrOFA2YW1EVVFRYUZ1WGlycEpmMkJKeVkrcCs0MVhlczRyZW1YWnBSMXRtVmU2TWNGWkxybGFYN0VreTJhclhsbWJVQkRXUkdWbm5ieE0xWG4rRzl0RmJIb2F4bSs3dDZycDNrN3psaG02US9ubmloSFQ2Qm1aL3BrYWJuT0VSMGl3dVcwWktia0FqTW5wZE1WdmdTemZxMzZqRy90K2V3RWszSEY3LzZwVlh2dHJYUjdicll6a0tpVTIxYURwcWlOYUNrOUtBSDlQQUdRM1RwNlZBVkVkckJEekxxQjExTkR1ZVByV2hEcTZxSm5xVUhhblh4eXM2dER2SmxoaU9RbW84T3F1U1pjbzZKcHhjZHZqU3lxQW56K0ZNVnNKUFkrMjhzQzNUSGN4d3o2KzVnanBxYVdOQzN2bkRWNjlqNHhVNy9wMjdhLzZSMWYyM3VXekYyUjAxZFU0YWRCcWE4eHFuemc3azVFcjd4bW5rRjYvMDlNbSsvRGF3NjJ6YWQ5Y1JiWjJGc2VERkRFL2lNeFo2Z1kxVTQ4Qnh4ZlpKVllFRjc1WGRna2lKbk81U3gwNTc3a3FLOG5OREFZL0xIOVRTVlRPbHE0c0dZOUtkSWdmcitQS0xWYW1nUnhKclh6SzcxQVl2QmRXeWZ3QlVHeklXUGJScDQwQk8yTCs4YmVIcTRsVmJWangzK2FyN0crU09ydHprN0pON0I2OXNxQTB0YVoyN3FiQzljK1VqV3hiZlhTMWozTS85N295dTdqVUxzeXN0Wm51eXlXN0pQclJ6M2JIRnMyZTJFbytQOC96dW5LMDdOblkxdEdXWXJDa3BUbXRnKzZxMVJ6cW1WOWZKK1N4R2w0Q3V6QVZkeVVhUmFMR0FsUTRlc2w2aUZwTGlQcDBHNVd3VTlwdG8ycUpVa21MZEFwTWczVGdidkZ3WnpWS2swLzlKSGMxQnN2MVA2YlFjcWRrbE5EM1pUeWRkbGdnTXBkZnBzUUUxUnF0eEtwLzJOOURsSGJZYmhFZ0xKcVNmTEFZSzgxRXVvTUlJL01WS1hpb3NMSnNBbCtSMXNiR3hwdjZEVjEvOW9GNE9LQlFXN1Rsd1lNL214QUF6c3ZIM2I3MzFlK2FnT3QyUlBVY3Z2L3dvczB2QjFUcVlLMW1mQ3BPNXVrbU52NWxYWmd4cE9aMnhPdGt3Q3Zyb1hCT2dqZ0lVOExpNWF1UFE3aDZZUzR0MDFGQ2FsMXVhSk4zYVRPZDJJZGxlZzB0dzJTcjZ2VlVKaGlsK3Q4ZkhmcVBPZGZocWRxczh6OUZ2WVo3djB2cGk3K081QVFPTEJSTDgwK1hnejhKOE9STGZJZjlxZ2NRdTJNS293ZDhOa1luVVR3ZkhqVklHeUxFL2drb0NSQXhqWXovdGI2SU54cVRMYVJ5RkRxeDBKTWNJSFNJdzV5bytPMnV1WmVncDY3eHdOcmVQWWg1TThlckJWVThicXpQOXdsUHJkb3dKL3lrQjF4Um14c2hUVTl6K0JMby9acG9MTFphUkIxbXZqUHd3S29HNTMwTHp2bWkwcmpvN1RlU0lxSFJhRVlqU2RDZnBHWGtwVVlaOC9OakVyNm9pQW9Lai93MXgwS2NkRCs3WThRZTBlQUxSWTVLK0tkTHJlRWwxSE9Wc0dKVituRWUvMHE3Y2VyeE1lblZHbkFXZEgvMnhsbjRyVW1CNnErU0o1WDhicEJnZ3gzL0d4MlBnL0NWY0c4dTdhb0VIMXdNUFNsQkZOQUlzWUFrTFJDQ2E1RndnMTBuU3dSSlVwSktlSU5tSjBlQXNsQktFTzEyNit4UHFFdTZsN2NiU3ZUTmx0YVY5ZWo4TVQwa2thK1QzMHEweFVsWXhoVEZTMXVLamNSeC9IOURpVjNQSVNSbzAxQnd5M3FDaDVKRFdNcjlWelNGRlBDSFRpRlZiWlkvR2pyaDBJMzJNUmVuSVlId3VJM05JMGlsRjF6K1JHYWNiaDl1eGdlWWJENU9aMnF6c0E5OVRoMWFuOUJ2TmtVNnlhL2lseUU1eWI1SVJrZjV2VHU3djUrTDkvVERXam15QnNnZ3BBWE14L3BwaWJDV3BPRHViNkFkTjJ6QlZHbWtJejNxRzlGaDdnb0kzU0Z1dWY3aUk4Z2l2Z2QvZFEzODNLeG9rdjhjQXRGb2JiODJLdFZEWmtSV1NNS1h5YkpvMDFWOGQvOWxaMHBEODgveFNUL0Q3aitYZjVLOGtXMWsyWCtCdjJVOGhMcnRRMWlQQ3F1bFJseEVTQ0VqeWdXekU3Q05Wc3d0aG5BczV3K2tjaE5wSEJNQXdrQWJRT3BVZzUwMUsxNkxTWjhIc2NldHdSSERhelBaVWwvQzN2d211Vkx2WjVoUndST2QyY2tQbTFKRkhkSHFUUXhRTlNmaFBVbWFTUVJRZEpramoybExOTUovUlQ2VWQzQmVqSERLZ1REb2Y2M2dXQkFPTU1nOXViRjN1STcwKzZjZWNKTmh5N3c1bjVPUmtrRC9LMnlyT3lPYnkrNUVKcGRON0dwSGEzcFZtVVcrR2xMcGpNRlp4WTNQVGJHbEdzM1NWemUzMXBacnhVbTVqYXJvalhmZUJJY01WemphTXl1dlArMG44WTArZ0FsU05QbTA2N2dJbm5lekVHcmFpSE5CZENzeWFiWGFNT1NMQ0VhVUxPQnZ4SE9rWEdVUXNvR0xFYXZvUTZkOGxpREMzUlNSMDl6SXlGSFRJZHk0OTl3VkFycC91cWswWmptangyYTVDc1lzQThLdlhFRmhlV0loUVlYVmhWVmtwMEpidkR3UURrWWhlWGZwUGhKMnhuZ0pnR2kzcUNiRnVNS1g3MTBhV0ZBa1FEejA5MVUvVU1UcGxtWEh1YytldC90bmlUMDdlZnNPR2dhWTdaNXVNWHBzK09QK0YzdWYzcmU1NjVZN3B0N2F4SjM1eGo5VGZSdHpJbEliRzFobVhkZDEyYyttQzNxNmNvTFlvTGNXZm1sY29jVzBMWjNmY3M4Rm1sMlVSQkZtMDhKbmdPc3JRSjZkU0lEVVIxYXpaajlSY0xkQkNPcUJwYXBQYkl0RDBVZzJnY2pOZy9wbUh5czVXdVFxcEY1RUc3VndZanpoZ2ROOVB1Q1NhUGRsb0ZCc01VVjBkMndtaXNJVkNDSVhLUXBHQ1BPSVZ3ZnBENE9EbEZ0RXhIVU9LUk1ZbTdlTmJiUEEwMTZWUDczaHA4K2FYZHF5NHQ4SGx1NTJ1UGRGVi9HZHcrb0cydGdPZG5ZUFRwZzEyOHBtQUFJdnYyZmJCNGNNZmJGczh0MTMyN0Z3SzlmdFMrNUYxNjQ2MEx6aXljdVdSQmNRdWR3UHZYV0FIWjYwdjVTYlVsM0wvMS9XbGNjRDlYM1E1T3JxN3MrZkl3bzVEUFVzZm5HVTF1OUtUTTl2Zjc3L3VnNHN2K2VDYXpoc2p2bXoyaExvUVhiYzhzdkNXbnQ2akM2dktVN0xUN1g1NzdmUmRIMTUxMVllN3B0VFdFalRPVUpvT3hmVEptY3lnTStvVGVSS0ZKUklmYTdTVDZWUGkwRzVxZVVLaXVTYnFFOHR6YTMvQ0pZbytqUnVOWW9OQm4rS1dQVUdmZktGZ3hLL3FVNnlOUDFTSHg5U3N6NmhQN0djdTJra0hldFJ3N3dwWnNaNitsSzVZZkMrNXFDWjFVcTBpK3ZUakF6SkNhSis3V05hcmUvQUJXWjlrVFpLMWl2RCtJUEIrR3VoVEprQnh5Sm5WMVVuRXcwa2UwYjVBcnBlc3dPUzIwSjRGUkovTjhrSlU4NGE5b1lBZkx2U0UvVDVJaWpKSXptd25rZUtNS21URW9wZVFndDdjcUFIa2tDZmVkZVBTUjZlYmpINmJOcS9sMzliZi9PN21TLzV3WVB2UDA1bVYxcHYzc0NlMi9YYS96M25qMGNLd3RzeHF5cktGaTdhK2Y5TjFIdzdjc0hQVEJRTktEeXUzaEEraVVuVFJZNERSdEdxYmNiYjZRSVlHTXlKcDcyUWh3R050cnc1cnRRRVFLZEVUSkQvMkVRMnJZK0VrM0ZLTCsrSVhKWTZrajJ6QUw1VW9EWkYrbTU3QVhyVUhQZ3orMklYamtPUU1LM3ZVZ082OXJJZzFCdlNHM1J0L2c1ZFF1SEt2L0VtYVcxMitsK25pNXN0RDkvSEJVbk9SUHJtS0wvNlBqVlI0TDZtd2o2SDRkZnM5UTdJLzNpMnQ0UTZCREF0UkE5WkY5VUVHQ0VpankvS3lFZVVpVUZtZTVRWjFHdEpvM0tzVkdOb3NKWXJxc3lsS2IyRSt0WXNBcmFBbVhxSUdNZm42Ym5TMnE0bFZSZFNya1loNFZ1VDd6bnlYaEdzaGdJNi9MTGFHUmJWdjRqWEV6T3hGUlFnVk5SVFZWNWJUVnVPQVBSQW9reU9vWFZsT1ZYTGRTVnB6NjlTbmFDWnBYTHNoN3JaWFA3Ky81NlVGWVkwNXJOZTNQdEIyMWRVN1hwQXRzQzNCOE5nVE1lODkvTlpGOXkveGVvemhsTFFLenBtNXQvKzFXemY5N3VxcmY3ZnBjTnMxWFYzWHRNMjVwcWZubWpsRWg4RjljUHZCOTlXZ0RVU0hPVldIQTBpajBYYkxHcXUySCthT1gzOTNSSDFFYlRWSVM3SEc1SU5remExQlZmSkNkQ1FRMUNzMVY2VlRkRUxpRXBHZlBqcmoralR1ZFUyNWYyWFg1WTF6NDRuWjBybnRDdzR0WGhvL01KZnVuNlRSemRpN3R1M3dTc2taUzJIK3ZYUGRpZ2ZXUzUrb0IrUm9oMFpIcVUzUDV1ZWwrTkJhaEZJWXRJYUR5Y1B4WjZVMTdINTZmRFY5MG5RTmVwSGk2bWtLL3hyUXRxaTJMaS9aeUdGUjVXRVExRlBvQnE4c0J3Uk5OL0EwMktMWGNReHBVK3NtejcvUXFyK2Z0Q05wQkw3dkxLUGsyblVEcXErdGpoQUhBSWw5aEZRN0FtUFRYZEY2NWtWOXEybmlra1lwdHo3R3NjWWZUODJPTjlOczJrdTI3NE5YMlRrcm5oaldTTy9qOXVwWVp6L091ZU9xc1R6MEJJZS93TzJ4L0hCRWt2TWU5QWp3cVFINDVFQ3paT2JZd1pOejNlUlpuMEFMRXd0NEJEVlo0U0FwNWJOckU0L0xqd001VURxaFhYNGN5SHJHS2loenB3dlRCSGI0Ry9uWkdPbHIrcmt1TVRqRnhFN3lrV0dZMytmZ3c5clJLZXBEVGpWT1pjQk5ORHZvamdhcldONmpJUTlMYUh0cFFTcllZa2dTZVk1aFVMZEFsblRsTlhUaWdYTG9NRjB2YVVMSWJaR3Y2VWFUWHhFTms0VmdkU3kxdThsSGdyTkpnOG0ybzdhbTJUT25OOVFTZ3dxUy8wWlZFU2dzSEdjL2t4MmJURDFjOG9QbzluTEZLTG5YZ0dNMytsejVKWVh0aGZRUnBPdVZMeEdxSlo5U0s2TW1DS055TDU0NWZZMjU4NXFhWlJYMWlub3c3VE5tTFByWlN1bTVTYjlDRkxsYTNsdTV2SHRwNTJNMUE0dEhQcEYxaGZpa0cwQVdOZWh1eXMzSEtza2FRck9EZklveFNUaEpoN1NtVjZkbGlMMk02emhUeEJBaVkrVEFTeEluR0M5YjEvalI0TzdpNDFETUNNY042MVJkV1hWRTlXWFVsZjFQZkpqQ2I3YmtIRjZNQXZhVFB0ZlVSOWF3Sjg3dXhGUitYcnptZkRrdVh3YllxaEg0T0tIR2xudXVHdHZabjlobHZ2NXc1ODRQcjd5U2Juc1B0YmNmNnBXMzdJa2RIeDA0OE5FT2VYdDR3ZEVWSzQ0dWtMYzBiNE9jdndYbWs0MnEwR09uUWxwRzVGU2NEWWtPUXg1VjFaS1VJUmdyU21YSDE3N0NzZWhlU01jbVJITUZKWjN4c21qZW1FQitqdUVrcE9ma0lKUlRsVk5aVWdTVHpTTFM5c20xS3BVeDRYTUpkbnh0S2wwQnpBL0V5LzFyRXZEMHlvU0VESUNuakptbGJlTjlLK0RwdzJNek1obC83ZUR1aS9IVlErQlhJbDhuZ1Z6WjhlcENtRTNrNjlteDFyakx4dkgxSE1Nbjh0VkhBdG1rVUdrOGMzOFNTRm9UWiswRGF1cDdCbnowWTJ4WkdoOVFNdC9EWXpNVDRvZklNMHR6Z2E5RjZNS29EbFJFeUNPTFpRcG52U2loWnFQVXM0SmppallPQUw2SmRSMzZIRmR1Q3gzZmpjYVA3b3lDSGNKUEZjcSt4YWFWbjhpT3czc2pqZ1A4U1pXT0tXVS9uNTZsdFFhVERjV1ZTMDV0d3gwVTFOTzErV083eWZZTm42dm9pbHVhMkJOWmFTRnpXcFhHc2ZOMzIxNGM3ejUrcy9peVJwbitrK0EvTW9EK1psTExhNXlrbHBlYlVNdkxQVXN0cnhrMXpaeGVXdncvcWVYRlg5Snd0bUxlYitpTEdYTHYzdFc3SVR2THUyaEc3MFZsN1oxZEQxOXkvdDExc2RjekJINXg5ZFlkZWRuK3JwbkxkNVhSMXpUMC9yeGFYaWdnYjJXWU8yMUdmV2FXUVo4azZsTlRYUnVYTE5rL3A3WXUvbHFHbnNYelovcnlqUHBrVVdlenlpOW5xSTdray9VRGpMWVJQOHNOb1h5NjdnMWtZNVlaRk9pemJTeDl0azFwMEV0WUJjbEhlUUYvbUR3RXJGYno0ZzhCMnlZMDJKYkZCRTBXbnZFL2ZQaG5WTmRYdDYyWWRuaUcwZVJMTTNoYm41LzNxMk92azhPdksyMTR0QzlJT3R5L3ZqeGZWNUNSbW1rcGJuamtPQjZnV3ArbjFpRWJZZTRYczdkQ1pubnRZOGswek1ycW5VRldzamhTNGVPNFlBcy9icjJEdUl2QXhCSHlNZ1EvWnMzQ04yWll3bUtGL0VTMHNneVpRcFBiWWhuT3hIZ3l5U3JGR0R5cmRNckhqckcvaWExUlFMeFVFNFJmK2x3MHJGNUx2bnpHM3VvSmpoUVJKcmlEQTJ2T2g1Q0tQNVVWZitRdk5LQmlkNncrUmQ2dkFidzVVeDB4K0wrdEkrNkVDVFZJenhncmlvdktrcVhuNitQdFg0UFloQzJMNUw1Q2xwWmVSdXprVlNITWw3R2E1MWJaWU5VNklzeXpIRlZISy9KRFJscEluTFJHR0NzaXluMncvZ0RNT1RTeFFLaXU5azlXSXFTclJPTktoR20vMW9WRHVjVkpSMytXVkpvYkNtbGZNTk9aaDhoMisvWDNpU0ZQZy9IZXc2dnBRYk5LVHNEbDhlRVRVcXZQNHdva2tQVWsvcDAxSTB2S1ptYkdhbVF6WWY2WEEzMW5xUk1HLzVkMVF2MDU2NFQyaW5GMXd2ZndsRkpxaGI4ZzI1NXZ2bTZMdDRhVjRCblMrN1BpWmNMbWQvNjlRcTZueWRSTHIwZ1B4aUlRSTBteC9RVzRRdDMvL1BPWUhrcXJxUjRXa0Y2Qm9JVTJpUW1LV0ZXN0l0MWhvSTM1VkxRRktNOUhBV3BpQ1I0YkdmcThYRVU5VTNFT25heVgxazdaOGJOTi9sQlp6NWJ1R2RMQmhrVEZ6TUNHemtURkhINXkzNUZaSEE0V1RtSDU4cjBIbUxkaW9ueUxLWW5KOEFSTU5nTm9DS0liNUg1dnYxd2c3STgvNTAzTGc4RXh6M25MejI4RzRrUEhsQktENTM0bWZPSzRUdm1oOEVuS2poTWZDUi83a09jL1hNa2p0K0hQbExLampaUWRWMHBWU3RueERjSU1sMmxrK1FNMFpCQU91Sk9adTI0azMvNUQ0Y0VqMGtuMmoveFNTQ0RXUlhYbGtPUWE2TFBmY2o3c2lEM3lUUlpBbWRWMEJaM01ucnpJSStvbHI1UkFISS82NHNOQTVPVEJNdUpGTWRNUnkwMktDM096TTkwWmFRRXg5b1FiWUFjUHRnbWlsVVRYWkN5WGFteEtUVFhTZ09Wbnd1VTNrc0YrSWFhNzdBc2c1ZlVEeFJ6TGI5cTlhd3ZXNEwzVWhiNzJNYU5uTHIrZTdCNjREUFBNUjYvelMwbWhzWHI3cXNhTGowVjB3ZXMyMnZRRGh2VGRXOG5SUngvMW03YzdrN1pzSVY5MmJiWG81cmdOUTJUaEVETU82Ump6Q04rUERLamdwNzJmSWY0aUNHdENpd3R6blU4TzhueS8yLy85ZzRUandqdzF2djFkT3NrNUtNOVhSM1Y1Y0Q4cmhnQWQ0emtNWWNsTHArUUhKNUg2UnA0Y1R1VTVyZDdFaHdGZTYwVHltODVZd3ZOa21lZmxrVUIySUZ1VVZ5WEdjUmoyUFRqRzdFUU9rMklaTUw5QU5UNzgzVWNNank4N1FIUHR5NEhKSDlNbmdxN2RDNnpmc212M0pwN2xpZ2ZXazBQODBxRWhnM3VPenJKMUYySHJsaTFKenUxbS82T1BraTliZDZjYkJ2UzJqZGNGZFpGakZ6ZXUybDR0VjRFeHVnay95SlV6SDRQdU45UDY2QlFEc0RjVGxJbGdPcDQ4N3pjSUpzU0FUZzZTUnl0UUoyRUFxU2dTQmhDU0VYMTlTUkFGZklHd2ozWjlLM1ZpK2pUQkdNZ3lwbU9QRkFqeGg2dWoxWTNoQlROVGJEWnJwbGg0Uld2MXFxbVZjMElKQjVpUGM3SjhtZk5UVFdsT283NjVLeWZMNjQxOUlYbk90OHlWYkVqcEdhMmdGT1J4cEFMRkF1QWlmWWVJNlZUeVdnWjFUSkxXMHNtZUk3VmRjbWxUMDZYTnpYUWJuaGFPL2VlR1lvZGh1ei94RkxDRUcvMXgxTWY5SG5UWmhRcFJLK3BBbStqOFZubUF3KzJZMDA3RmdvNXR0bW9aWmc1NUM4dytZRGEvRDNGYW5aYlREWkluRHBFV283Vkl5NG5hVHNDZ3JFNkRCVkVuOUNHdFZseUJSSzA0dDYydHFLaXRvNjJqcUxXb1pVNmozeDlLUzgveis0ckowZytsaXppdHNnZ2d4SGlicE54RlFUYUJNUy9vSW9JeUt5OVNVSjk3b1JwWW9ieUwwRlRxVDJVWms4VXFUY3ZKK2RVMXhpUjdzc0grbzlhUWJMblRhbUdhamNQclJhM2RhalN5TjVIUGpSYUxwU3ZEN1haSUwxdlNCUTJ1Uy9aWVhmbGRiL0FmTVMrbGwwWHdHM05FcHpYWm90L05tMDBqdjA1MzFGdFNOU08vNVp3V3MxbkxGSFBPRVdlYTA1bCtGTzVpT2VyTlRFN1Y0NEZVczhNaVhZMTEwcmVnaU1EYkxPNTFoYmZMMENqbGJMSUhKRDhkY3lJamMxVkdyVFZ4NW1yZ25GN2s5T1JSS3AxT3Z6bUJ5VWprdEdJZjBnbUNiaEhTNllRZUpPaUVkZ1hXMXA3aEZxSmV0K3ZjOTRoT1RSU3ZxQkU1elNEUzZFV05mdGRQdmdrcDNSVVZGUzByV3RwSkV0YnNjbG5TaHYreHBDR2swVXNxZ3NvN1RvU3hMem1oamlwWkRvQS9XZW9yTXJJbGYxWUd0aFhsVHEwUHpIU0JBbVNZaW5mWGJkbzlkZVlyMkpEaG5sejRtOGNKZi9nV3EzVm5mbTJtL2N1czZkbkZWYWJraFRhcjFYWkptdDRiMkxvaXVyN3FuaWxXSzlnWHNsRDd1Z0NjYlFzNkgyMUMzMUV0eUNqQUFnOE9nSnNDU1ZjS0JNNU5XR3RjRFl3V3dNT25nalJiMVJlcmFMRDZaaFd0VVdmVTZnWkpod1l2aUh3OG9JSURNVEtvejRTTjJpUmpaekxXR2JBK1NhY25CNHhKSzFDU01XbXVJem8vOXFZV0RZQU5EUUViNUxhN0pyMnQ1aWZldGpNYWFBWGN0bkZENi9tdDU2M3NYYjYwYzlHOGpsa3o2K3RJYkFrRVNpTUJlNDRaa0Z6TWdkSG5TNFV6dk9obDh2ZThFRUdqQ2UvcU15ZGtXWlA0QXJZMEZTL2RWTHU4b3U2S3krcDJGS2VLUm9lb3plbkpiNXJiTmljdllEWjdaemJPbVRLdGtzcSs2T0lhVmtjVkpLNG94dnd1eXlUZVlmUVBQSDlCU1ZmMXF0TFVlZlVydHpnZE9wc2hOY3phMGl0S0t2SWphYTZpc3VLU3RESXIvRnVhb1hXNVJ2N3NOSTlSRytrWWNRK1RlQTFwR2RiSmNaL1dhd0J2WmhMTXJNY01mUlJmMFFDMThCQ01MWVBtMDNmcVpDSzNQMkFQcXNXRnlSZ2NiNzVhN3pyMnEzblB0M29OYVQ2VGNjYmhhU3ZhSkJrV1N3UUpEbTg2L2toRHNTVXpOYU5BbDErK3ZwK055cmthSTNKdHpLLzVlUUJsd2xTRGxmZG5kU2E4a3k0QjZNamhkY3pUOHNleXNpb3E0SStmNXdyc0Niam9ScWxGendaNkhTaE1GN05WQ2hOTEtPZXVuOFNlNTNsZ1hQMWtoSDdNanlmUDhSVWp1T3YvQTJBK2hmeDQybzJTVVd2Yk1CU0ZqOXkwWXc4TmcyMHZmWmtlMDBHdHBGMmhOS3dRQW4xWm9jMW9DM3RNTTJHN0pKRWp5UStGL3FuMVI0eXh0LzJnd1k1VXJVdkRPbVpqNjd2WDl4eGRTd0x3QWw4aGNIOTl4dmZFQXB2aVErSU16MFNWZUExdnhKZkVMYndXUHhPdll6TlRpVGZ3S2lzU3Q3R1YzVkVsV3M4WmZZc09nUVcyaEVxY29TMCtKVjdEa1Zna2J1R3QrSkY0blQ0dkUyK2drNzFQM01hNzdCWkRHTlM0Z1VXRkFpVThKSGJSUlEvN3BITm1OTWRRMWNRYXpiZkVXZVJaL0JiWTRKbzhpZW9CS3oxMWhubkh1Qk5kUFdkeE9JVGlYVkFiS2hwY0lhZkswRWxod2Rnd3J6bk9sNkl4bFVHclZycjQwOE0yWFRBMDlZMnRpdExMM1c1dlg1NlhXZzVOWXl0dDVabXRacHB2YzYwblhnNGFYeHJyWktmMHZuYUhTaFdWTDV1cmZHSm1hdEVZcjV0NUhNWjE3VlN5aUE3YllaWW5Gd0tQWmdNK01sZXdkc29mc0F4MTBVekhoRDAyRzViM0FIMk1jTUZuUUhycTEzWldmZmJ5YnUrZ1A3b1lEZnJMdmUwOCtQOXJxMWE4SHEvUGc4TmxWRHFxRERkQ0xuV01TMjFkWmVZeWRvSC83L3J2cmY0K0YvZW53dkVrQklPYU9jY3BRd05UanVFY0ZmeCtpbU9jVU1SZDQ2YTVpYTFxNzNKWFRYTmpDM1Y2ZklKZjMyS3pLSGphWllyWFRzSmdBRWJQWDBZUm5BekZMVzVSc2NWWlYxd291QVVucUtVeFlDOElOUVZqdk5Wbjg3V01wb2t4MFhOenZweDhTRGg4ZnZEMkxjRmZUS2RLdUhEandZdU1qd2I4Qkdpa2lXWmFhS1dOSUNIQ1JHaW5neWlkZE5GTkQ3MzAwYzhBTVFZWllwZ1JSaGxqbkFuaVRETEZOQWxtVUZCSk1zc2M4eXl3eUJJYXk2eXd5aHJyYkxESkZ0dnNrR0tYUGRKazJPZUFRNDQ0NW9SVHpzaVM0NXdMTHJuaW1odnlGTGpsam50MGloaThDMG00aEZ0NGhGZklJYXRhMG1zVm8yYnFaZXZaVHBSdDR5SDQyK292bHBNaWRkTXUvVHZLajVYWEoxUFRmSTVWUmZrWjZoY05SelZRQUFFQUFmLy9BQTk0Mm1OZ1pHQmc0QUZpSlNCbVltQUd3a1FHUm9Za2hoUWdMNVVoSGNobUFjc3dBQUFuMUFJMWVOcGpZR1JnWU9CaUNHRklZbUIyY2ZNSllSQkpMMHJOWmxESVNTekpZOUJoWUFIS012ei96d0JTaGN3V1kyQjJkZ3hSWUJEejlmY0Jra0grdmtBU0xzdVlWcFNZek1BQllvRXhDMWd2STFDRUVXZ21FOUErQlNESnhzREhrTXpBekNERUlBcXlIVWlMZzlXbXdObE1EQ0lNWWdDMXRoTVplTnBqWUdSZ1lPQmlzR0d3WTJCMmNmTUpZUkJKTDByTlpwRExTU3pKWTlCZ1lBSEtNdnovRHlTd3NZQUFBRnNhQzJzQUFBQUFBQUVBQUFBQTFhUW5DQUFBQUFEWm5JUGhBQUFBQU5uN1NVYz0nKSBmb3JtYXQoJ3dvZmYnKTtcclxuICBmb250LXdlaWdodDogbm9ybWFsO1xyXG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuICBmb250LWRpc3BsYXk6IHN3YXA7XHJcbn1cclxuXHJcbkBmb250LWZhY2Uge1xyXG4gIGZvbnQtZmFtaWx5OiAnQ291cmllciBQcmltZSc7XHJcbiAgc3JjOiB1cmwoJ2RhdGE6YXBwbGljYXRpb24vZm9udC13b2ZmO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGQwOUdSZ0FCQUFBQUFFQ29BQklBQUFBQWRQUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCR1JsUk5BQUJBakFBQUFCd0FBQUFjaVR2MEhrZEVSVVlBQUQrNEFBQUFLQUFBQUNvQS93RTFSMUJQVXdBQVFGZ0FBQUF5QUFBQVFCYWJLSmhIVTFWQ0FBQS80QUFBQUhnQUFBQ2laNGR5eFU5VEx6SUFBQUlNQUFBQVR3QUFBR0J5QXBLMlkyMWhjQUFBQXhnQUFBQ3VBQUFCVXNSdFd5SmpkblFnQUFBTFlBQUFBRDRBQUFCc0o3RVJWbVp3WjIwQUFBUElBQUFHOGdBQURoV2VOaFBPWjJGemNBQUFQN0FBQUFBSUFBQUFDQUFBQUJCbmJIbG1BQUFNZEFBQU1Ja0FBRnE0aUs1eE9HaGxZV1FBQUFHVUFBQUFOZ0FBQURZWG1ocFFhR2hsWVFBQUFjd0FBQUFnQUFBQUpBc1BBZTlvYlhSNEFBQUNYQUFBQUxvQUFBRFlLdWNaUG14dlkyRUFBQXVnQUFBQTBnQUFBTkpZZWtKT2JXRjRjQUFBQWV3QUFBQWdBQUFBSUFISEFoRnVZVzFsQUFBOUFBQUFBY0lBQUFOdit4OXFnbkJ2YzNRQUFEN0VBQUFBN0FBQUFVbGtmY1R5Y0hKbGNBQUFDcndBQUFDaUFBQUF2VnF4M3pzQUFRQUFBQU1FbXdpYmlRaGZEenoxQUI4SUFBQUFBQURabklQaEFBQUFBTm43U1RULzJ2My9CUElGcEFBQkFBZ0FBZ0FBQUFBQUFIamFZMkJrWUdCeitPdkN3TUJ5NXYrdC83ZFlQakVBUlZBQUN3Q29HZ2NHQUFFQUFBQm9BRzRBQlFBeEFBSUFBZ0FzQUZvQWpRQUFBSndCRlFBQ0FBRjQybU5nWVRuRHRJZUJsWUdCMVpqbERBTUR3MHdJelhTR29ZbEpDOGhuNE9Ca2dBRm1CaVFRR0Jyb3lMQ0FRWUZoQTV2RFh4Y0dCdlljWmdVRkJvYkpZSVZ6V0JZREtRVUdaZ0IwbHd5eUFIamFKWTZoaXdKeEVJVy9BWlBaSmdnS2drVUZteUJjRS93elZvTkJPSk5nRXhHTDhXQnQ1eG9VWVMyYUJGRmsyd1dEV2N3SEJ5YkQxcDlQYng3dkc5N0FESk00NDZOS25QOXRQMnlwc0pBN2RqS3pJa2RDOCtTSWdERjdadXpvczJIT2dUVlRpNnluSFBMRmhheUxxZE9tOWxaRFYwSmFZbzJrK0tIK3NrK1Rpb3ZkblF3RkpwYXpFcEc3V29wUDBnendHTEVTeTJKQWxXLzNFTHZrTlJ2b04wKzNDdHF1djdaWjJoKy9ETG01dXhRVEtLK2VOOGs5TVFBQWVOcGpZR0JnWm9CZ0dRWkdCaER3QWZJWXdYd1dCZ01nelFHRVRFQTZtcUdPWWNQLy8wQ1dBa01zaVBYLzhmOUgvemRDZFlFQkl4c0RuTXNJMHNQRWdBcUFrc3dzckd6c0hKeGMzRHk4ZlB3Q2drTENJcUppNGhLU1V0SXlzbkx5Q29wS3lpcXFhdW9hbWxyYU9ycDYrZ2FHUnNZbXBtYm1GcFpXMWphMmRnejJEbzVPemk2dWJ1NGVubDdlUHI1Ky9nR0JRY0Vob1dIaEVaRlIwVEd4Y2ZFSkRBUkJJZ05OQVFBVlRSK1lBQUI0MnExWGExc2J4eFdlMVEyTUFRT1NzSnQxM1ZIR29pNDdra25yT01SV0hMTExvamhLVW9GeHUrczA3UzRTN3YyUzlFYXY2ZjJpL0ptem9uM3FmTXRQeTN0bVZnbzQ0RDU5bnZKQjU1MlpkK1pjNTh4Q1Frc1NENk13bHJMM1JDenU5cWp5NEZGRXQxeTZFU2VQNWVoaFJJVm0rdEdzbUJXRGdUcHdHdzBTTVlsQWJZK0ZJNExFYjVHalNTYVBXMVRRcXFFYUxTcHFPVHd1MXVyQ0Q2Z2F5Q1R4czBJdDhMTm1NYUJDc0g4a2FWNEJCT21RU3YyamNhRlF3REhVT0x6YTRObnhZdDN4cjBwQTVZK3JUaFZyaWtRL09vekhxMDdCS0N4cEtucFVEeUxXUjZ0QmtCTmNPWlQwY1o5S2E0L0dONXlGSUJ5RVZBbWpCaFdiOGQ0N0VjanVLSkxVNzJOcUMyemFaTFFaeHpLemJGaDBBMVA1U05JR3IyOHc4K04rSkJHTlVTcHByaDhsbUpHOE5zZm9OcVBiaVp2RWNld2lXalFmREVqc1JTUjZURzVnN1Bib0dxTnJ2ZlRKa2hndzQwbFpITVR4TUkzSjhlSTQ5eUNXUS9pai9MaEZaUzFoUWFtWndxZVpvQi9SalBKcFZ2bklBTFlrTGFxWWNDTVNjcGpOSFBpU0Y5bGQxNXJQdjFSTXdnR1YxeHRZRE9SSWpxQXIyeWczRWFIZEtPbTc2VjRjcWJnUlM5cDZFR0hONWJqa3ByUm9SdE9Gd0J1TGdrM3pMSWJLVnlnWDVhZFVPSGhNemdDRzBNeDZpeTVveWRZdXdxMlNPSkI4QW0wbE1WT1NiV1B0bkI1ZldCUkI2SzgzcG9WelVaOHVwSGw3aXVQQmhBQ3VKekljcVpTVGFvSXRYRTRJU1JkR1RxeEVhbFc2YlZVc25MT2RybU9YY0Q5MTdlU21SVzBjT2w2WUY4VVFXbHpWaU5kUnhKZDBWaWlFTkV5M1c3U2tRWldTTGdWdjhBRUF5QkF0OFdnUG95V1RyMlVjdEdTQ0loR0RBVFRUY3BESVVTSnBHV0ZyMFlydTdVZFphYmdkWDZlRlEzWFVvcXJ1N1VhOUIzYlNiV0MrYXVack9oTXJ3Y01vVzFrSnlFbDlXdmI0eXFHMC9Pd1MveXpoaDV4VjVLTFk3RWNaaHcvKytpTmtHR3FYMWhzSzJ5Yll0ZXU4QlRlWloySjQwb1g5WGN5ZVR0WTVLY3lFcUNyRUt5QnhiK3c0anNsV1hZdE1GTUw5aUZhVUwwTmFSUGt0S0pRY1NyR0dtUVEyL09mS0ZVY3NpNnJ3Zlo4alVZTWhXTXRxc3g1OTZMblBJMjZyY0xidXRlaXl6aHlXVnhCNGxwL1RXWkhsY3pvcnNYUjFWbVo1VldjVmxwL1gyUXpMYXpxYlpma0ZuVjFnNldrMVNRUlZFb1JjeVRZNTcvSzFhWkUrc2JnNlhYelBMclpPTEs1TkY5KzNpMUlMdXVTZDV6RDcrbS9yS3p0NjByOEcvSk93NjNuNHgxTEJQNWJYNFIvTEp2eGp1UWIvV0g0Ui9yRzhBZjlZZmduK3NWeUhmeXpiV25aTTVkN1VVSHNsa2VoK1RoS1kzT0kydHJsNE56VGQ5T2dtTHVZTHVCTmRlVTVhVmJxcHVNTS9rK0d5OTErZTVEcGJySVJjZXZUQ2VsWjI2bUdFN3NoZWZ1VkVlTTdqM05MeVJXUDVpempOY3NMUDZzVDlQZE1Xbmhlci94TDh0MzFQYldhM25EcjdlaHZ4Z0FObjI0OWJrMjYyNkNYZHZ0eHAwZVovbzZMQ0I2Qy9qQlNKMWFac3l5NzNCb1QyL21qVVZWMDBrd2d2SU5vdm5xWk54Nm5YRU9FN2FHS3JkQm0wRXZwcTA5Q3llZUhUeGNBN0hMV1ZsSjBSenJ4N21pYmI5anlxNERia2JFa0pONWV0M2VpNEpNdlNQUzZ0bForTGZXNjVjK2pleXV4UU93bFZncWZ2YmNKdHp6NVBwU0FaS2lyamRjVnlLVWhkNElSYjN0TjdVcGlHaDBEdElNY0tHbmI0NlpvTGpCYWNkNFlTWlp0ckJaY1l5U2lqNE1xZk9SVW5zaEZOTnFLSTM3eWxmcW9MaGRDWnhFSml0cnlXeDBKMUVLWlhwa3MwWjlaM1ZKZVZjaGJ2VFVQSXp0aElrOWlQMnJLRGw1MnR6eWNsMjVXbmdpcE5qTzZmL0lpeFNUeXIydk5zS1M3NVYwOVlFa3pTbGZDWHp0TXVUMUs4aGY3UjVpanUwT1VnNnJ0NFhHVW5ibWNiVGczMzlyVlRxM3R1LzlTcWYrYmVaKzBJTk4zeG5xVndXOU5kYndUYnVNYmcxTGxVSkxSTkc5Z1JHcGU1UHRkczVGTjhxZm5XZFM1UWhldlR4czJ6NSsvb2JBNlB6bVRMLzFqUzNmOVhGYk5QM01jNkNxM3FSTDAwNHR6T0xocndIVzhTbGRjeHV1czFWQjZYM0p0cENPNGpCSFY3N2ZGWmdodGViZE50M1BJM3pwbnY0VGluVnFXWGdOL1U5RExFV3h6RkVPR1dPM2lCSjlGNlczTkIwMXVBWDlWaklYWUErZ0FPZzEwOWRzek1Ib0NaZWNDY0xzQStjeGc4WkE2RHJ6R0h3ZGYxTVhwaEFCUUJPUWJGK3RpeGM0K0E3Tnc3ekhNWWZZTjVCcjNMUElPK3lUeUR2c1U2UTRDRWRUSklXU2VEQTliSllNQ2Mxd0dHekdGd3lCd0dqNW5ENE52R3JtMmc3eGk3R0gzWDJNWG9lOFl1UnQ4M2RqSDZnYkdMMFErTlhZeCtaT3hpOUdQRXVETk40RS9NaUxZQTM3UHdOY0QzT2VobTVHUDBVN3kxT2VkbkZqTG41NGJqNUp4ZllQTXIwMU4vYVVabXg1R0Z2T05YRmpMOTF6Z25KL3pHUWliODFrSW0vQTdjZTlQemZtOUdodjZCaFV6L2c0Vk0veU4yNW9RL1djaUVQMXZJaEwrQSsrcjB2TCtha2FIL3pVS20vOTFDcHY4RE8zUENQeTFrd3NoQ0pueW94eGZOSnk1VjNIR3BVQXp4M3hQYVlPeDdOSHRJeGV2OW84bGozZm9FOWFBRCtnQUFlTnBqOE43QmNDSW9ZaU1qWTEva0JzYWRIQXdjRE1rRkd4blluYll3YUVzek0yaUJtTnNOV0JRNGhOaVp1U0E4RXlZTk5rbFdNSS9MYVErUEE0Y0R5d0VHWmdadUlKL1hhUStEQXhpQytEdUJKSVBMUmhYR2pzQ0lEUTRkRVNCK2lzdEdEUkIvQndjRFJJREJKVko2b3pwSWFCZEhBd01qaTBOSGNnaE1BZ1MyR3pFcHNZbXdNdk5wN1dEODM3cUJwWGNqRTRQTFp0WVVOZ1lYRndCOWxTNEhBQUI0Mm1OZ0lBQ01JSkJsSndNRDh4d0dobjgxQ0JZakR5TVB3Mk9HeHl5TEdSaFlGV0N5LzEreEJqTnYrdi9xWHhwTUw2c1o0Mk1ndmdnQTFsRVZMZ0FBQUFBQWlBQ0lBSWdBaUFEY0FPb0JrQUpFQXVvRG5nUGFCREFFaGdVSUJWd0ZqQVc4QmVJR0pnWnFCcndIUEFleUNCWUlnQWpvQ1VRSnNnb1lDbG9Lb2dyaUN6QUxjQXY0REp3TkVnMlVEZm9PWWc4c0Q4Z1FSQkRZRVNnUmdoSXlFcVFUTmhQQ0ZBWVVmQlZFRmVvV2VoYldGendYbkJnY0dMUVpLaG1hR2RZYUVocGFHb29hdUJ1RUhEd2NwaDFXSGJRZVBCN2VIM1FmZ0IrTUlDQWdlQ0VjSWE0aDlpS1VJeklqM0NSaUpNQWxRQ1dnSmg0bXNpY2dKNVFvSmloY0tPNHBaQ21zS29JcmtpeWNMT2d0RkMxY0FBQjQycTE4Q1h3YjFiWDN2Yk5vdDJ4dGxoZkpzbVpHa21WWjhpN0Z1eEpudFMxbnQrUEVpZVBzRGxrZ0lhd2htSWFrSlFtVVFLRXBCR2hKZ0s5QUE0U0drQkFlYTF2YVF2ZW1mWlFDNzlIU1g3cTk5eWp3Q3NTVDc5dzdNMXBzaC9DKzcwR3NHYzNjR2QyejNIUCtaNWxCTExwTC9pUFh6VmVpZk9SQVRhZy91U2dlRllzNUhZZDdlTXd4T29iVGpacjBqSTZGZjdzTUdDT0d3OHg2STJZUll2dGh3NkloMkVOem5jNkNBb1NjVGM0cERYVVZRVjlaZ2FQQVliZkJYZk1helRwM0JCVzZXS2RPOUF2QlJrZER2TjdQT3Z4c1BOallrSEN3OEJtdnJ5dDBsK0oyREZ1WFU4ODY0Rk1uQ2lFejFvbGN6TXQ2aGZNL0ZzaUdiWXd5WStYTW5SSjc5aXdqdU96Ri9JTVA4c1YybDhDY1BjdEtycUR4d1FlTlFiN1NGL2kwTStEekJmam5BNzVQL2Z5MW4zNzVZMXNlcDhQMzRFT3MzbW8zbStTbmNjcGt0bHYxckx4QlhxZmo4bXdPbkpLZmRpQUd2M2JoWTVialBrSVdWSUo2dXA5MHoxdVNkQ09FOEJDSE1aWlNQSkRNRENPR0VabmUwcVFMRGdMNUdJMWtIeDlJMnZQeUVNb3J5U3QyMnVGR0prbG5JQ3pRczRRb05oaHZ3VXloRnhNU2cyMFlxR2YrMDhrMDhTdFc4RTJNMC8yK2Y4NmNCUXZnai91b3FHUnNhM016YzdDazZQeGlyM0JXOE5JUG1NMkZDK2dwNWdIT3ozMVVJQ0tUL0FGQ0JTd3lZU3NpL3pHbzdzS2Z1WHU0VTJnaDZrZExrLzF6cHpOR1U2Q0VZUm1teDVhdlo3R09ZeGdXeEdqQkpsTkZ5bXBnRURJT0ZlU1pXYU14UUNrTXM3MkxGaUcwcUg5UmY5OWl1TTJDVlBmc1dkT1NiUzMrWUVCMGlVRi8wRzd3UlZBWmRqbXRPSUwxOVhYcFhTc0dxaG9iT3JDWXRTdkVjR05ETzI3QmlheGRWZHo1dUQ1ckYwYm91ZTBsZVhrbFJZZmJiaXlpTzZlU1hLUXNPZ2NuZnEvdHJGRk9QTkI2azdKenBrMDUwZmkydHJOS1h0NzYremIyY1h0TmRYV043Wnl5K2JqQVZsNmlZMytsYlcza3FQMmNzdm1yY3ZCSDJsYU9uenNIbW4zMHdtNHV4cGVqR1NpRkZxRnJrKzZVazJjNWpCYjJUSEZ4UEY2VXFBaHlETStDcXBTRHFwVHBRQjh3ai9BSTRtR2hzRHd6Z2xoV1AyekFlcjNFZ3NaSXNJZFkvY0RFY1dRSU93em4yUGtEU1ZoTDhJdlRQWUVLRWY2TUJpK29qeGNYdXBXMW91aE9LQmh5RmJvVnh1dGRxamJCc1l4ZTFibmhpaGdPQlFuSEUrUmFSdWR5a29Pb3NZRmN6bnc5V0Z0VjI1R01SMm9ibmNrVjE2WG1MZTE3ZUVjd2tRZzIxRFluay9IcTJyYkNsdlZUUnlMN2xqMndOcGk0cFZaeVNUaGM2UW56NVI3eEJYdXBpYWprTHdXdmE3cjNEbXU1LzZyaFpWL3A1YjRyZWp6aTY3WXlBem41anIvTTArMzlscW1zcU9kbzMraE01b2pva1hzcnZPVU9NMy9iMkc5bitGMFczVGVBVmo2dHMvbElSTldvQTNXalRjbVJRc3p4NWRoZ1pIcGdaZktZNFVjUmE5QVpXTjBvNGhEU2MyakVndlY1MkdqUUcwZk1tT2Z4c0FsV2FVVUtHUXk2WWFUVGhYVzl5V1JOalNRaGxPeE9kczJjWHROUjB6NGxMbFZMc2NvS1Q0bTlBSDdPR3JTUzFhbndVVlBQZW82WUpHS01NT0VtNFdBQ2M4Qzh3dnE2ZUdORFVCdy8zb296NS9CdHU3cTZ0SC9NdHgxV3NiaXE4UHlkYnB0VkxJcTYyYzFqcytyckpRbittT3lCa25xUU85V1ZkWFNqdXlUcWNSU2UveGVYdTZTbTFPWm1wN1VwdzZSNnVTQjc0SFBhWVZqL2x3RXZyd2RlZHFJZWRERHBzbUNFZTlwY1lLQzZnd3pITm1DZTQxVFRWZ0ZheUlCUkg0V3JXSTVoUnhERyttRWpxR0pGeW9BNWpoL1dBVnRGSGpTMzdsSkRoeENNcExzYTc4RVFJdFExRytZeFRZeUx3V1lwWkNLYUREcWJ0bjVCVVNCYzllRjRnaGlGdEIzUjZkMFpveUpVRXlrUVRzY1RWSmVwSGdPN0V5SG0zNDhWdXBxVDdiSFpzNmJNbk5Kd290U3BMM0s5cFZpRlphVmx5MUxLN21NVjVWTnZlbUhrL3I2bFN4Y1BQcjdqRmYrMFJHL0hLOXlwbFJhdjYzdUMxeU91azJhMzFDeVBQeisxelZsWVVGVlpXV1ZMSlZmWXlFNkJ2L082L252WEROM1plczNPMVllWG5CL3JERGROYi9zeGNBTy93RHpBT3NCWFdGSGJDU013R2F0Y3RWQ0h3UkNIZ1lCemRvWjRDZHhQRHFCaDJFT3d3azB3eG9vc0VrdVVUODlTV3hraXpyQUZzdzc5SEw0eUZxdms1K0RLVDdtUDZ1Unl2eWo2OGJ1Y0lVanVqTEg4Q1BzQXZ4NzUwRFRsQjgxd3VESUZaMEs0dDFTeFJHYWsvQmlxaEVQRW5zRFhBWEwxTVB3K25qOHdjTUxsTEdmSWoydWFybU5jVGp2ZEk1TUp4VERUMkdDUEoxaWIxVjNybE95dnZmNzZhM2JKV2V1Mld2Zi82ZmJiLzdTZlh4L3d4Y09sbGh2azU4K2VsWisvd1ZJYWp2c0NocmwveDcxdnZJRjcvejZYempVS2MvMXg3bHd4aHJraUZFS1p1U3J6d3BXSXpwVndhd0JsbURWd3d1dXBvSE10dEx1Y2pFNmZYcE54ZTJNRFEvZUlDM0V6aStqTXJCTm16QmY4WFQ3K3hodnk4Yi9QTmFpenhwMW56K0pPYmRaa0J1aDV2SnZMaDNYVGdoWWw4NmN3RE9JYXcxNGJtQlhFZ0dSZE1GTUhFU1hlQzlDSXEwaUIzMGNSTW1NWDdIR1lRM2lVaVBobWVwWUQ3UWNRQVBkcXJnNVdoM1NHRWdLQ3dNVWw0aXJEZGZtWVdtOUtUYlhpT1FrcDhRNGNJcnBPU2ZKUjZ3MkcrNEVPcnZycGNrRklXQTNOMVQrNzMrVk9CRVBsamRhRkM2Mk41YUZnd3UyNi8yZlZ6UVpyUWhES242N21PcHE0VTIzVnR2elhOem1ySXFYTzZCVGVjWXNqNm82SFBTSGhwWmVFa0NjY2QwZmhFRDhsNml5TlZEazN2WjV2cTI0alBIZ1U3ZU1FamdIcFJKT1ZzUGdSd3crQXUyTXhaaEJlVDZ3QmdUazhNNTlLTUJpVXBLQ2tONVJTQTJyenEwdFc5TnMwNDJqemF5YlNiNk1yOTY0YUc4NVRWcVg4RDhYMXloOHEzN0VGL0RUSGtETWZLaDViL29kNkprOFppUzN3bmVyVnNQd21XNEJYSVJzcVM1YWE2T0tqZXRPZjBadFFrREVVVWE1VDVFWGhKakV5akd6WC84M1pGNHpnTlZ5cDZ4OTRsVDAvUDMvc1R6V2VZaVBIbERsY1ZCY2V4V2M1Z1RrSjkvY2xQZGtMZUlpY0pib042RGJPWnJtT0RLSHNaM1RTWXpwbDhzeW56RW1GSElVSU92K1hBR2VhOFRhVWg0cVRoWnBsQU4vWEM1OTV5QktnZDg1RmljLzM5dmIzd3gvZTVoVms0bHhsQ2dZeGVrQSt4RVg1cThHWmRUOWpBcldsaHFpVUdDSnk0NnpGSnFuSEVONmpIa3VhMGwrdkdsQ3NFbkdKeXE5cjdvODR2M2c5KzR0bDNOZzZlN0p6R2NmY1kwL3lWMWNKWnVNbnh5SmtvMXNRQWJld0Ivek9MT3JEUzFGVk1reVFKQjdtRkk4TTB5SUVobEV2Q1JRS1NndEtDcDMwcDNTWmRRMC9SVzFPampkbFBubnp5aXZmdlBOTytybGg4K1lONUk4N2RaOTg3cnZmbGM4ZFBvemQzLzB1ZHQvMzN2ZGVmUEhWVjE5ODhYdkFqOU1JY1ZYY0dSUkFOY21vSGVBVjZBWjhzQXdHL01CV3BIaU9FTDB5emU4QWtzSmlNRTdXcURST21DM1lsclkyOFVTQXJGMlhyWjdqRlFGTGlvQS8vcm5kNmhEdFRvY1RQK3p4ZXFXL3ZxRjREc1dSTUE5ZWJaSkNWVjZYeC96M2d2THk4L09wek82SE9ZS3ZSN1ZvMHdrSmN5d1JXUUdJUjBLd0R3QnpsR3J6NVRCZnhRZFhFQ2t5SzdYSUk1QTFES3pQcnNuSERTUkpTRkNMYXFTcVJ0R3RMVk9uVG8vOVdValNyN3BXQ01BSXc0VTBtS1FtaVBuZHFhRmxxK1gvd0NXeDltUnptWGorVXlEYVpNWGZXZGd4cjZlL2p4eU1ERHpieDUxYWRuVEwya2VINUU4R1JZOVgrRUR3QVE4cUt2THdmZk5XTmN4WVZIbUFIUDFiMkYxYml5ajlKMEZYQ29IK1p0U2RuQjNGT29EQmdDcDZFT3p3T2c3SVlrbUlRbkFlQzl3Qm1Nd3JLRHBIbGVDekdUVkpVa09EVkJoV1VETG9MQ1ZSc2FYRTJJS1JWVlFKZ0FTUklxQ00rQ1Iwc2tXL3UzWGhjdmtQM3o4WXRBbVZCc3ZVZlZNM2J1cGJ0SjZnMlo2Qi9rVUx1bnNKcmJWekgxdkluWHJpb2NlNmdsOGVldTZGbENOYUdsM0UrNFM1WGJQblJOdmJZOU5tVHAvcG5rdUlmUzdxS0pkb1BIWU55TG9MYUkyaUdoUlAxdGRncE1NOWVveDR4YWdhc0U1WGtZSXdnR0ZYZ2h4RkZ1aXFqc0hvS244dzdnK0tSb09IRUdiTEFDSlhmZDBFUFcxVWRva1U2M0c5ZzYycGZselJ6c2R2VTdaalAxRzJqOG9MWU1lQno1Yk9xcGZ2KzEwQmR5cFdOZmF1b3JFUFpTdnVRN0NaV3NSMEN1TFlYa0F5R0QxSlpYWUU4UG5NWktjZUFEa204bUo1SFF2cmlvT3dhQmNNNGtFTFI0QnMvUkFSbDVCQ0hFY0Q0ekJEeEZXTm9vSWt1Z09DcElrTDlFOGZWK2pKdUhVU3V0UnJZaUtIaWVVR3czb0doQ0hQdEs1Y3VmT0pwWi85ZnVpNVhrVlc5K3dldkh6WndoV3JLaXVTall5ZjhRck1TdTVJckwwOStrNWc3WW1yZnZqVDZrcFhoSWdwdFhMeC9FR3BvRXhrZ21LWkVpdC9FMmlLYzZjQm4wUlJNdGtHQ0pjMWtWQUR2QWxReUNtMHNMQzBpT0hJb3FXOEhLSHlhSGxWUlJBdUxRc0dDZzJHWXFCSHdVK01udmh1TFVRSVVuZHVsd0tJMkRWTkcwWDJMMTZlQ1QvN1gzdWM4YjM5VzQrdDJ2NzY2SzZYcDRhanorRXQyQ0J2WDFvWDdXL3UyekM4bUR2ZE1NWG02V2VOUGJkdmEyMGFlblRMNVUrdFhyZXk3ZGphWCtMYXgweGpTeXBteDJLOXNZSHVWRDlaVjJlQW5pa2dvekswNElRVmdBdXhLeWF3SzBXd0N3QitHemdIZGdqV0dpdWtsRFZVbWl4V1RxSFJDZWNHS0pRdFF4N1JYY0VUK2loZXdTbytKTXJtVjZUV2FDTlpIYzVXa21lVWgweTFnS2lqVFRwOGpYd0hXVEkrZ1RuUEhRSE5xbldmbDl4dXZTbGFac2xuTDN1UkxCTGNSd1hCb3NkZzNuNVlJNlhnbHVyUjlPUlVwdzVRQmpIY0JoQUR3NC9vcVRmUktkNkU0elFUVUZIaDhTQlVVVjlSRjZ2eWhEeEJvUnh1VVZKbDFCeXpUcDhkcWNVVGs4UnJURlpjeDd6NzdLcSsxTkJsVzErNytlYlh0bTVjbWVwYjlleDFzeGFSZk15aVdYMkRnMzNranp1MTlON2xnemVJNG0yWGJmbFdYOSszdG15NlZSUjJEUzYvZCttYnFZNk9ucDZPanBRY1d0TFYxZGZYMWJVRWRPenVDK2ZBSDUwQ1JsWVJIWE5naGpNVGp2ZUFkV013eHdCdFBKL1dNUlVLQUcwK0gwSytLbDhrQU9FbThnWUtRNnFPQVVVRnNNNlV0ZExPSkNiR29jU1N4N0RJL0pJb2xIeFF2cTZFNk5venY5bVluOWExeGFCYXpWVEp1Rk5VbmVUVDh1RjhyT3BhOTIwN05GMTdoNmlXb21Rd1c0cGIySWNCbzFBZnoybklKVURzTWp0TWZENFlNQ3Y0SFd1cHRjVGxvR0NHK25nMUo2SDRIQ2IzVzc0S2JiUS9aa0VtM3pWMk5DZjNCWFBZQWRoUG9uUHdvY3BrcUVqeDhDejRlR1p0WmtJWTdJM1BDeWlEeklDZk1BT3F5cm00VUp2RjR6bjRNSHN1L3prUktzS2F1d2FsdUdadUtuQUVzS2lSNEttZThmRldXVG5Gb2xxc1pjVHBPQXVyenBmOWZwNVRjcFZJWXllWk9WS0pTM0xtT2M5L1dPeHlGYk1XYnFwVTJlQVRIUEpiOGxzT3dkZFFLWm53SFhrVjRUQzQxenRBdng1Ri84VUo3R0ZBcENJS0o0TWdBOEtLMWVtMFpRRDEyZ0YxMmtXN3Y3U0k0bGJkcExqVmZta2tXelR1TzNzNEc5bks4ZkU0RjkwQnZGbWs4YVlnZzlPejRydXlrSWJUZFZucEZpTk9oM1dZNndBK25QL1FxWENJbVROMlV1VVFhMkVPVVQ3SVcwd0tqN0NFSlpWSDhoYmd6YzlBWDkrSEdGMUNkZWk2cEFWMEJWdkFaNEd5cXNGNk1HMzl3QjhqZmhjeGduUXBTaW15TExsaE1EWWlSMUozNHdiQ0dFUTBieVI3MkVEU0dRaUE4dFVGYXFzcTRVZEZLVktockZvYThGRjNVSTJESFpOZ3JYaTlQUWZ2czhWdmZQMndqcWxLSktvWUMrTmZQM3ZtM0pTQ1FjS25IMnFiUGoyVmdqL3Vvek9QN0g4ZzBsZnNkaGYvdkVydnRNNXFuejZ6akVLd2Z3azdsNXlQZW9WalJIZVBxV3NIK1MrczU0NXdjZFNGK3RHQzVOd2lGMk5rSUh4aW1SNFQxaU9PMFhNamlERmpJOHNZUnd3WXdqNEV6QUw0cGRQeEF3RENTR3FIMTgzdjdrYW91Nys3YjhFOHVOR2NhREFZQzRoQkMvSG9HYWVuTEMwcVFCV0d3WExMdGs2QzVnNHpJYkZlTTJWMnFaN0pzbVVpVy9zZnUrZnVYekpqbVMxMXphSjFTKzVZdUN6ZzU0c2NycEl5YnJhaHZEallLaTU5ZFB1ZW4rOVlmSFQ3VjY0ejZLeE9vOTVpYWZ6V2dpUC9jZU1SN0h1cWVtYTFWQ2JNaUU3ajRnYyt1Zi9HVThNOUhiZnYycmIrcDN1Mnp6RHE5SzQ4K2JWeWx4Um8zOTV6MWZGVlgvMzR6aXVmSEs1Z1MvMmxOcHVkZDN2M2ZQalFpN2psR1RrMTkvcjI2dnFCRzJMckVIUGhZOEIwWjhIUEppRENuNUpzUkVhd1AwWjJQZExyRFVNbWJEQUlLUjNIc0dRRkFrekNJakZHelUwd3VwRmdPbHN3THBvTlpjU1c0MG1nWE1pdm4rU29JMjNrL1hxMm5tWCtyYzZNaFg0MWtsNmliUHVpOHRlaVhlcXhUY3AyMGRnamFoRDk1cExyUDdtR08rSVR6bCttSUR3RjdSMDhtUDJOTlNyYk4rVEYrREZFZmZOTW9IVTcwT3BERllCZ2Q1emdzWjRqdUtJV2xrODUrREE5NXZUcmVZSmZBZk1SOUtCVEEyVVNYNVVtcThBYThUeUJIam9BdnR2SUJUcTRBTFNKWGFtTVJ6cWROaHdXRUVJMXNVaTRncmh5SC9MNmcwMUdiUUhwRmJ5WWljMHlMR0UxakE4d21XN1pvUi9Pbi9QSHQzODY5b0pDL1dXWHFUYkxlUFMycFVzV0w3L3R4WmVIVnIvSUhYbnMwSUlkWXZ1NzMzNUNZUUpyVkxaeUtEbXRzMjNNdkw5ckZyVmo2d0dmckFjZkhrT2R5V1FsQm9oSVBRNHNIQUtiK0dFOXdCVWwrTXJzTXd3MUMyR09JRjhBOU1HZ0tBVUNCaFhPTzlXY3Bwb0NoZmtydUZmTkNDbVJjQjFOK1hOVnNiWloxZlhPeld2MzMvNk5BLzNmWEZGZ3JmWlpZMmQvZmZUVFcvYis3ZTRuRmpjbnVWT0FqRWNGTDFDNDVwclh6cHorY1hXTllXR3dyTDV3NDkzWS9keHA3TDU3VjRkbUExcEJucnRCbmg2SWZKY3FZaXhTeEtlajR1Qnl4Q2VseGNjaERzUkh4S2FNSXpBc0xUYUk2Z09pendzM0xRRVYxMU9SS1ZIOTU4dUx4ZWYzN2ozL2hCeFd4RE04ckNycmIzWnV1UGYrKysvZHdCM1pKMzkwNW96ODBmNWNBWjF2ZU9uMDZSZXBiQWc5QVBoUkhIMm1nTjJZa3F1R3ViSWN4MjhqWXVJWkZnSXRqSTJ3T28xR0FXdzd4K2xXZ3VLSk9wSVpzY0JWMVZsWHNUdzMrZ1V1STZ5clNTZkd2K2gxeVZaa0FKaGcyRGJoU2owSEt5TTlYMUFzNDBybGVwUzVmR0NBNXRXQjJnWi9zRkcwU1g1SHdFektjYXBPZ2Zmd3UyZzlUUWVyUVEzMDZhbEpCY0hGeWtqK1hMNzhReExwZm9qdmFlbWNWZ05oL21DdVBOamJ1U05sb3Z3TGtpdy9ORVppSy9tZEg1RXY4amNGWDY1a2NtUlNqeDVTdUJ2U3VLdVVEOWJyZ1R1R0lhTmlLdFAxQTE3ajZ2akt4TVhIZzdUMXdHcjl0dkZYQVBzTUt5ZGVBT3dqVTZ4SHRjUVVFKzZacUNuT2NNL21yMU1NeldSeGRqYnJwaW1zdXc3WEVON0pQL3RYRlI0ZFU3WTNxZ1ZNOW1nVzcrU2ZFdWI5ZDNhZ25XRWNSblBBemh3Rk85T091cEt6bW9Fc0YyQU1FaWtBcW1NNHJlcGlZR2dtQktMczlEN0RhR1VYT055TzJvTEJZRndBYzVOTlhJNjVTVFJtS0VsbkZteXFEODQxUDFiRi9HellTTXpQMXRVdmFmNUUyZm9jdHVWdlg2MllvaWNYcWFiby8xQlQxTGVDbUtLeVI3SWRqRHhXSkJscmFqU3pkRlVDekJJR2RJYTRlMEJmRmhMN2lzeGdhY3pjZW92SndKTGF0RFdQb1l1SVowa2VHcXdVelc0Qm5RdlIvTzQ1czJmTm5ON2VvdnBWZnpBL3V6UnRtMHlDZnR2bnl6WEREWCsydEpXeWRGT1Q2bDczS2R0T2VXZG43aEZ0Qkw1S0hZRnY3dFNPMERnWW1IQStSd0Z3UlA3MVpBcWhNdXdUckZjVmhPVG5FU2NBbjBJRTZYT0FwUGtoa3ZZVFVzQVpZQTNTT0JOQ0FabzlTaWY5RkhycUprRDhiSnY4SnpyTHYyS1VDL014K3F2cU8zOHgrZnpUQ296UmFsckhQUUxoYXp4WlgweHlyajFrUFlJUEdjMmVMUUpKcmdKZERoTmdCSU5EWWlBb2pwdXNtc1FqcVFVeWJSdU4wYlBxQ2FwQVR2LzI1MysrdDRBcTZJemhCUXRrTmMzRnZLL05kZXl1RjErNnMwREEwNmxLeXVlRi9tVk1mOXBVcWJyM09zeDVKWnFmN0YwTXZxOEtJblNTQVFLb2dzRXFjd3o4MjJWV2xUSFBvaW9qUXdKZUhWWXpkbkQxaWlWOWl4YjB6QUcraStGNGt5MW96ZFpFWEViS1BXNFN2V2ZWT1Vtd0U0cVJnbzhvNUdQWEY5VkxuS1dXWDZMa1J1UUhwd3dLN21DUlpDMnM4WmtVSHV4dld5eTVpKzNCZ3BLa1VDWFdiMWYxdENJWEVlR3ZLZHRxUEwxUlBiSkg0NTM4R0p1bzhjK3E3eW9LVkNoSHVqc2pUY0dlNGxCVXFIdnljM1QyUlp4TTY0VG1DeUpvdFFZYUdVUnlVNk1RU0NIZEVFUjlPZ1YxYUFuUVVoS1dLVVBBRXJDWTI1WTlFbVVHRGlUekVhbkNoUW5UYlVHS3JiSldyNlk2RjNOK3pDZVUzamZ4RU5XZmpOdTc0dzVWaTlhbHRRampLWW9DMVUxMGVCaVpnTWFYZ2NZVXNWK3pBMTZXSTFrQWp1Z1FIalZnb2pobTAwV3NXQXAxejVnR0JFZ1NXYkdXYksxeFRLSVJaaVdNREpueDUwY0pXbE9Wbi9zeXBTVnViYzAxVklPNnIrZkZLaU14NnlIZDh0d3pMZmx4VlJNOHJsTGR5V2QwcFM3c25YenRNL1BrRGFMWEsrSzd4cDZlVEIrc050bUYvMkt6a25VR3R1RVk4S2dERFQ5VFgwQUtWV29NWGdxTGlZZ1hmSm1pQ1F5RGg0bEJDNVBpdFcvaVdYYUlpRCtsR0JERm4zZWdOZ200RjRkQWxMcThIRE1TREdIeFVrWWZRckZzYTYvd3JLbXVOUmExeWUzYzF0eWdxbE96NklhS0F2d0FwMm9OdmpyTm96Ni92OWpEbkJ2NzNtUThLUjJiajhjMDNXRlFCL0RsMXYvdHVobHIrdlNXV3o0OWVwUis3ci85OXYza2p6dDFsM3p1dWVma2MzY1Q5L3NjZHQvMTNtdG56dnp3aDJmT3ZLYkdCVmVBZkFJUXJLelRWcW9Pa2JodHZaNGlLTU1FVjBOV0tzZnI5ZHcyYlNTRXdQektpUU1wYUkyUmZIa0FpUlI1R1ltMVYyRHFKUXhmSmxpNCtXOS9lLzl1RFdiZG8yenZ2Rk5kcStMZFYxOTk3YlZYZ3hCKytzb3JQM3RxTXM2UEhSOWN1WElaNGJuOGI1VG5UV2dHZXFYN1NRZlFhcXJEU0s4ay8wdVRadklGOTVnQVVuWVBLT2NscEFjSzlZajJiUEVETENncEtmdXZKZUcrYnRoSXFqZ0dBbCs5TURhZ2phVVpGRnBHSUU1ay9HQ0lqVmxhd1JzbDQxbHk3ODhaRHNqVjNkeU1VUE9NNXVuSmRwajZGS25DSVlsQk00MG9WVlVJNldrMkpTZXZvdGZLRUdvMUpVVGI4aTZ1Tk1YT2piMjl2aGsrVDB0SmI3Y2xyekNTN3hDYk5qZEozZlZURjhhdTJxb3pPQ3J6QzIxbnZuRU14dTQ3ZUhBZitlTk8zU2FmLzg1MzVNOXVZelo2alRyZVdLR1RmRUZmWlVtbGFEWlp6TldzNUFtSlpiYlgybkRSSzkvQjNHM3ZQZlB3d3lkUFB2endNNW1ZOUZuUVBkS3p0UDBFckhHRGxtRVFrQUhPRzVnUndnVTl4Rk9rcXNTekRNbXRja3B1cFJUQ0JaM2VhTlJ0MDhZaW8xRy9jcktoTkwvUTB6VnpPdnpTVktLRzRYaWJXYXNjRm42dWg3NEltcHhNVFpmLyt6L2o1UzdSWFpUbnJDaDJxSkhVM0ZWaHA4Y3BGZnA2R3BOcVZDVTNqMHRPNUQ5NjE3cFZxOWJkeFIwNS9kU2ZXbDNoMHBab2pjdnZWMVE1MlMyMnhUckxJOEVMYURMZGx2R2M3dTQ1b0VCM2dUM3BBTjN1UXFsazEweU1kVDdNOEFUUFlOMndRYytRYWlQd1BMTlBxbG9zV05Wd0NwSDJEcnBMSFZNWG1qTjltaFNRcXFXQU1TdHJvV2dTaVNMY0NzZVVsRjhvcXhha2FpQmhoOEs4a01xa09xV0prZjFWUEFMeGw3bjZhOE56RmtwQzFXVWJibTcrNXZMVFgzbmtTcVVkVVF5YjQzZXZXVElZRHBXbnV2c3VyKzNwVy9YVXRubGZxYXNGdXJ5Qy9IZkJXMURRTmIrcnhSdXcydXhPVVJyKzdaYWpnMnVESk5XSmV3V3Z2WEQ5aHRuSmlvU2p3RmxnTHl1cDJMTng0ME9ERFRVQmtnSEJhQlhvMmtiUXRTaHFTTmJxc0JvMmtqeWRWclRNK0JnSzdhSW9JcExZd2hGUXE1WTJsZEtMT0JWYmRsR3NweXpSbElpYytLMXF0UHFVN1c5UGtLTStnZDFMWThPbC9qS1lPWUNNSE5kNlFmNVBldnhoVWlURGFvOGt5VG1TM2h5YVhtU0hRSWcwRjBPNkg5T0FPb0VhUlpFQ0NtTW1LVXQ4b2RhVk0ybm9wd0RzQ1JGUDlaYlhEeHg0ZlV0MWJsU1QyckppeFpiVStMaG03QWY3WGwyNzl0VjlURk0yR2h6NzNmWXJydGpPQkRMNWdRc2ZBeTFuYVMwWmFKRm96WVJYS2RMckZJbzBZa2pOR05DZG1JdnVWQkNFSjZHa05Cc2VQMEZuT0YyK3k5cmMxdGFVSnorb3pmbTRzaDM0elI5bmFUZzQ3YjBYUzk0eWtYMHNoNFo3bWJWWjgvOHJ6UDlkbVA5VTFKeE14R00yRnV0SU5SeVIydjRvZ1hpZ1l3U3hjSnlRWXJCR3lsVFVRVUNlRkpSeVFRcHJaUlJFcDhnbnhFNUtsYko4Y3FnN1JXYytaUzFiV0JlYjFtTDU1b09XMXM1WXJZc2RybE5wVWdIZGpzWTc5QlhWZFZXNk8rUHJKOFNpaTRzOWxqSVIvMFlPaTJVV1QvRTR1cC9Gajd1TEhDNDV4Y3pPeXUrQVFsSXN0NUJVTkdmWGx4azVJa0tUVVErRUc0WXNaa1pKZ1N0UWw4OE4yR2ZOaUlOQTZiKzhiTEJybkRRWlBsa3UzRGlaMk4ySkxNYU1LSXlSUDhaaVd5NTBhL2pPWTBIMXlLaXliY2VpL0VsckxzTWlkeHdzVW85c1NnZERlK1Vyc3Rmbmh4L21CUEgzNEszWmpQdjV6N05qekFyZzExSGdWenRLSkJ1QVhTeGhseDRZUkdKaTBKTkpRdmgyMUtxeEtVZFpKa2RMbDF3SU4xQnFxdVJIWDFVdDBTNWwrNnI4ZUN5WDlzN1RaeG9uTE95UDVHeGkwUVhHbEJQdnZZV2xkTHkzRDJpZFFuTVVhNVI4cktoMEsyM0w5RFJwYVlCTDlUUk5IS2YwTklWUVFDeHNGQXZUR1lOMFMxTldzRGRKZTRKNzdHVzhsU1R0SU5UN0JkRG9aTnJsNCtRN1dPSUNTbXViNy94L3YwMFRtd2RvbkRldGxEWFNSQ2RlcWZTTVlDeklUN1AzODRQSVRYSXdKRW9sRDFOd3lqTXhYT2FaR0JqclJvVlNZd05wbmVEVTBvVTZGelhCYVBPelh5S1pRNFk2THBsbUVaL0huWnVxcDAyTGVRVmRSUENTdmMrS2xkK053ZTgrU24rM0loa2d2OGRnbGxtZmFYdE10eWE2a2Nzdk5mSksyY1NtL2k3NVdadTJ3OTVLK2djWjhvTzRVMzZlYm1WKzBDdDg4bXZCRzVzMnJacjdFL2xVZFBjbC9Ddk9ESGpDaThKUDZkWk1UNWE1cmFTQ2ludUFic1RzSWMyUlY4RkFML0lFdzV5aEtQS1VEazBucFMxYXN0RmxERnNvM2FERTNGNXR4TzE4UEN4NHZHSDljOC9wdzE2UEVJN3p1TjBZaTNDbjdJNngrMDBHdDJneTVGdnhYdms2YTc3QkpMb05KbWFWd3c2Mjk4MnhDOXdIOHJ2SWhzcnBmRnpqV2FCMGZ0SnBUTWgzY1c5YmRUcHIzbWVWZVhUTG5aWGZ0ZFhVMUZUYmJOV3dJYkU4ZHJKamJBTi9GTzVmVE85UFlsZWxSYkxJbWI2eFVxWUpCYlIrSlo1dEtDeVhMR1o1cEtpaUtXWXJ3TXU0L2NEVmV0MGJsdkpRdk50OFFjRzVXOEJ2M01zZVIzV3d2UCtndEQvbis3Q0JiVzBCM09vQUNsZ0lQbktPNk5tZUFTVk1Ea05vUVBxc1JrbVBrZ0d4aGhGU0ZxRFJRU1NsSnp3WVpsUkFyTnk1L3RJWEFMa2kzZFVhbTBxVHRaOTNGVXBmQkhHZWRnMEpUT3JyRWFwdnIyOXJTZ0J0dFNLZ3huaWpXUU9OaGJtQU90Mk9ReFBNSkNPZGFlbk9kUGZIRTQwUWtTUmVGY3A5aWpXNnZIMm9lTzZUeTY4NDJ2Lzk0M3Z1WHJTeDVlQXNtNlU0VkpBZkczaHR5WU56Wm5YTytITEx6YnZZNC8veWxQeE9SVlF4VFBXSnRzN1VWNGNQM0ZQbTdVeDZpL2hBVlpXbjNsWmVQdlpHWFUxMWJhSW1XYXJJcFJUa2NobGZqaXBSTS9xQndtNFRDd0djRGNNYUE1R29YMGd1WHBVR0dEVTFJcFpTNURFSUdxZEhVam9hdmFzdVg1VkQ5T0pERlh1dlhvWFVqRWNFaGlJT3hEQnk2ZEhBKzhKSUJBWTBSNXJxYTJIK0ZmNWdZekJnVW9KclcyNGpHZzIySnd0ZDdGb3RYcTNONDBQZStyMjl1MS9kc09IVjNVT0hHN3pDdXlycTA4cHpucmMzdExkdlNMWVAxdFlPdHZQbFlFeVdOYldOdnZXVnI3dzFPakJ2a2VCVmk4bDcxYkQ3aWRZZDgrYnRhTzI0c3JmM3lnNnlSbThrZlhkMEhYUW1rN0dMMUZNaldmWFV5TGg2S2loWk1DUUdneFBxcWRtZEJabVNhbGFQbEZMVVlEOVJpaHJoK1Uyek43VzBiSnFkK2xhUFBUOHEyQ1BMMzFoLzZQMGJkdjNyM2djN201UHNjVERKTDlERVgrWHNTTWVPVkdwSFIxMlZhVzZrTEZyVTBMenpyUU1IZm4vOWpqaUpLeGcwRERROW91clFkNU1tSHl4ZEcxWWVIcGhNWWNqVFhpeVI2OFNGRy8yY29VTjA5ZWx5bHF5aU1DelByYi8wNklrS0l3WURjVkZUbUt6SGJvSnRPSnR0aGU0c2hVSGpGSWI5MEt2Mkl2eFo4RFljSGxKVXAzZHZ2WnFjd2IxeUJkV1ZKTlVib2pHZi9WVlJEcSt3YU42QW9qcHRUZGl0YVl5aUs0cmVLR3QwTi9CM0x1aU1IOXgvUjdJMW5TSG00U1NQYUI4dE4wd1NWUkdhSWlaY0NMTzlnb0NRRUJLQ2tnZ1hsb2NkQWdSeEpXcHpvT2kvU1A4SmtLalQrd2xkbHJPYnZjTFlMc2NOSys4OVliRVVsdWVaM0NWcmZyYm0wRnZici9uM3I1K000R2R0Vy92WTQ3dlAzUzE0NWkxT2NCVTFnWklTcjlFZjNQbTdXdys4dGZPOWUrWW8vZDZQQUNaYXd3ZFFFN3BjRVhGWUsxY2FNS1BIV3NIU09FenF2ZEs0Q21kSUd3c240VjVHUEpLNUtLZTBTUXZESkM5RUUyeUNXRVFMdzhwakpzcnpKYUxneFJuME1XazZRMm1TcG12a25rUEZ4U2FMV0dTeDNUaDBFMDVRZlBKRFhLd0NTRFZIZlBJa09YN3k1REUrMEdUMGUwcWtxaUFmZXJpVjFvaW41eURrTTZSRGVzN3BsOGxha2RkeGo0QXNhMUVIdWtONUNpR0llYjIyVmlJSWxKbG51VkdUZ1p3YU51b1kybU9vMS9QRDlEa3pyUlUzU3RRL25qTmFjMVhLcFVQb29oZUMxNnFyQTB2U1VkYytKVTdhNUFOaWtSaFV2WlpiYVJVZmwwWk85NlFSLzVTelBNWjFYbTRsUnZQUENvUDYvL0xudnRlWDErVGxCNHJ6ekM5Y2VlMG1NSzAzdmJweDQ2czNOVzdac2p3NTB0WTJBblptWHZkTXpXeU8xYjM2Rzc4M1AxNFVxNjdrV3RhdVg1ZG92ZmJYWC83eXI2OTk3OGJ0MjI5TWJPN3QzWndBUFFCNHhqMEU5bVk2Mm55Q0pjOGZxVStoU3NoZ1VCb1BwSFNyYkdSODNhRTBLUkJ0TWlBajllK1REMUlVYWpxaTFRbWFVTkE2RGRUQ3ltU1JDSEhvVnV6Rm41OHN3NDk3cjNsMDJTMWRxZHpLUTNXOG8zbERSM1h1d1l6WG9aNm01T1M4TzFmTHd6bXF0YVozM3ZDRGcwZHk4bUo3dFFEc3dnVzYvdWJ3Q3dzRXRCNmhBZ2F0c3lyUFVUOGdyMlB2cGNmWDBxZW8xNkZuNlhwdGd2RUhnYmRUMFJWSlkwZk1iT0pJZ0sveFYxMXlVc3BBYzVLZ1hZR1V5VWhZaDRaZ29TcU5Nd0lZSms0UFR2emlneFQrVGtWSnFZRVdMNlJHd2wrcFVEWEFJVlovcVpJZ2lDSWdxcUJlN2ZuUU8rcTVIUjd5MUdPZDUvdytyVU5zMVhoV2dpSGc2aWp3djU5OFZuenlqN1kzS3R1QWV4VjR4Y2k4eVJnSmRqRDJxMkE4RVF3bTRzRWZ5azhUUHQwSGZPb0FQdm5STElVNWJyQzYzQkI1Qms1S01Xa1BSRkNOQ3c2Q2orZlk5ZG5IbGNmay9NaEhLbmpxWTNLWHFGTXpQL0pxTnVpOCtxd250cDFUZDQ0cXJtVnlSY0FYUG9ENUhnQzcwNEVPMHdkdW5tbE5NRVN5Z1BCYU1hOUxBUGFnQ0k4OGl3T1lYakVuQmoycjB3VlNITU1vb3RYOE9lbUgxRTZTNEgyU29Va2ZHVFdFdENGcXcwWWtQV0pBSzErMWd4TnVETUQvbVk0TitzU0tUV25adU5qWHpCUDFwTEdaMmlieS9MS3cwU3ZzRkx6RnBkV0ozQjIxT2VFWWhKWTM5bnd0RXJ0dUZudjg3bStNblNFUktHTnVyTHZqZ1B6NGhQM2JOUVc0L1lvcmY3eG12Ym8rbmdBK1RrY2pKNmFSZUYwMTNCN1NwMjhZTmhrWmd5RXd2Z2V5TkJra3B4VW5SeUlRR0RxRUpobW8yWjNPdUdaNHpHcWk2UC9aNGlqOEFaODI3MzltY3o0VXZEZC9INnp6RjdFNERLUHg2ZUQ3NE9PMkFsNVpEanpLUjc3Y3VsNWtRbDNQVjFCV1ZKaXA2NDEvdXB6SndWcU0vSWZyci8vRG9VUDBjL2JHcHFhTnM1VlA5amdCcEcvdFZEN2ZVeENVaHJrWkZKQjNjcGZCZkdwUUV0MmNORVV4eDVzd1N2dGN5VVRTbFR6eHRUeFBYYVl5eFV4ZUtrVGNSalVkbHVWa1ZXTjRzU3ZBeTVLSHZtcVR0UjBRRzlhZ2FpSlR0V2lWaVV4c2w1YmRSRWF3SFJyS1ZGdGNaWVBxY1hPdzZJYXNVSVU5cmlGTitad2lyUEUyRHNEb2U3blJDc1gyd0x0SE1yd2p5Q0tRaFZla3lYRktPRk5KQ0xFcTd6NGZvT1JlTVlGM0l1a1F1QWhDbVl5RG42TkVPUWlsUDVkL2o2U0R2OElzME00ZXp3cnR6bCtuYkpWUDdOYWl2L2ZHNDNhSTljQldFTDJMbzJkb0wrQ0pldkxzVzA4cDJXSk1ySzJGbGt5Sk9hVTFxVUNLNUpUU1g3S3JNYXJ0cmNxMFRtWXV5aFM0eGwyVEFkc1pZMHdiNlVpMUo1SXpka0I1K1VZY05TcW14MDBMS0puSDRsVkw0NytFVjZiYXluN1lYV1czUjR1dEJWTmFVM3ZuWXpXTk1iWklyVnZ2VUYyV1hmQjJ2N0tHUFQ2bHZNRWZqY1lNdmxXUGJ4eWEzSzc4NjhIN0ZKNGVCZHNTby9hM0p6a25DWVNYamF2eFJiSnFmSkhQcWZHQmtZMkpBYWxhREdpdkdhRjlWMnFGVHlud2FjczA5K1VpUkpsSWZZOVcrSUxab2ZXUDZBdEZXZzZ0YWVuc0NxMVlmbjFpM3RMbFQrL2FmN1gyVHBHNnc4dS9HYTBxWHJiMllNdStGUSt0Ly9xTzJnNzJ1UElta1k3R1NySFNiakthQ3d2OVZ3MFA3ZStlbFg2UFNFZnp3dUl5RTU5bjhmbDdqdlovYWNZY2svcjhNNG03RjlQZTdIaXlIbHdSU1l1TzZ1anpsU3g5dmxKdGtNenR4cGJFQ2xHUUpLMUFsbTc2dERuVnZJRWFFcXFWUGpVc0l0bGJ4bG52eE50cE1IVHJUYkhyRnhUbXVhUUN1OHYxazY4Zk8va1NPZnhTMnl6dUZGbE83OU1nNk04UGh3TkdzU0xxS2ZTYU43eDhHb3NrRE1JbFN0OGp6UDFyN0dFMEJhMCtZY3Z5b3lVa3g4T1I2aDdIa1pmeVpPY0lrdExFazBxY3oyZkgrVlNScDZDNEZBRGNIaGUxMG1WdWdLK2JVQStrK1RwaUp0cXlxZ2ZzWDd5cTAzeVgrTU1NYnNjZ0h1byt0V2F5SUhzWWNPTGxHVWNJbmhNL29HZ3pZSGRydHRja2RSSFM3d3IwWDZ3T0dQamZxZ1Blb05ZQmY1Yy9mZWJNYWZueTc2ZmxkcjkxUHZWMFFqMHl5aDVXNDdCQnNheE1aSTdtVkRwbTRWUGo2NEF3L3c1U0IyeW9LcUIxSGFUakVLZER1WFhBUUZZZGtEUXJTY1FMaXVQcmdEaVRMZy8rVDh1QTRUc01qYTNOVS9JTzNHYWQwdEphYi9pcW9CS2tQaDJ5dUh1ZnVTb2NpWmh2NloydFpXVXlwSktTSjE0dDN5ZVdlYVZ4Sk8vRUN6M2VvaEw1WVh4emRrMkxQQmV5RjJqL25CcGc0R0kxd0ptMEJpZ1dqcThCNnI5d0RkQVJ1bFFOY0xIU3kvWmZtSzNQTGZoWmQrKzBxVWZ1VjdaeCtlT0czUHAyM3VpMWhlcVJWUnFUUHBNL3lUYkxlL2ZtQUVMRHA5bE0yNzA3WFErcmtOZFNIVStRZm9NcU4yMTgwNm1xb2E1aFJEcmV5T3RTdFBJOU1FZHlqU3ZmWXl1ajE5RVhFYlF6aVMrbzhFbjVwcGszSHJsSkNwUVd6MTA5djBuK1NYZXUycmNlT3hZZnIvYm4vM25yblcwY250SlZYOFh3ZFp1M01EdHl0T0ZtdkRQVDkwaHJmVUJiaE5UNnJCZXY5UVcrWUswdk1MSFdGMEZoMFIyZjdQMEZPYTJkY2EzY0Y4UFVRZEY2bjlVKzloR2UwVEN6T3BhdlZ2eXNkc1lzLzVRZThRbHNDWHNZYUNtVkhHUG5kb29lUzBteC9FOWE5WU1qakh1YmNrUXNnMGsrSkQvTnZzOFBRcXkrS1dsdGdVQTJINllmQmdlanZmcXJOUDJxQXBLVVpOYlN6RFdoaUw3VXhrOWVwWUk0SG8xa2hvSEl5Vk9ReEY1alpuNDZGWkJvckk1S2dyYzBvRmRmd21HbENXMGZBM1M3Q1BuNVdLY2dPZTJaZWRMTXBUd3JyNlZxNFZzMURpcSsyR01wTFZwMVdZamo4YWJycjkrS2pUaTJjV2xScWNVamZ2WUJtNGV2dmx5dHJXekhKdmFEOC94Z3BEMFdLNGdzNngwdUdibEZOQW43MWpsTnV5MUZuZk5DK2JGWWU5VlRwNzIrcnhvS0ZpKzN4YXFxb3JiQnhRWEd6V1dlRThkb2ZmS2NmQi96SGsvZWFSSlhlSkw3L2hIdFJVZ0RFMTZFbEhuaGlTdXJkWWI1VG56YXRDVDg4ZHU4d2lmZkpwMHd1bjYvVW9ORjc4dFBjeUdReHpRMGtyU0MyK05xNEo1dURFcVZsZ2NNWThrYjFwUUhnNUgyTnF0S1RwTUhyYkJraGdFSUhFREthL3hZSWcvU1dUd05UVzF0RG9TRFlYMzZCVDVLY1VxRFJQRE5od3MxT2JTcitGcGhmcUl4aHFsa1l1bDZGK1AvZ0RYaDdSclRyOFo1N0FlZmlVUkVTemZHUURaYnI5ODlvdU54ZE1NZ0ZSRS9lT3lFcDJ5enNXRHhvQzFhVlJXekxWOWNZUGlxejN2NnFTb1FVMzVvWG1lUlpiZkp1VzZmWUFyY2ZlV3d5ZDQ1TjFnQWNvcFFIdDJFRDNEZHpCZ3cvM0pTeDN4R3NJSmpKUUREb3ZDSFpkQ0FqaWV2UEFERVJCakJRSFRLSUdZK0FjekFIMkRyS0t4VGh1VUFPQ3VqNFNncERTcURFUm1yMWVPRG9oUVM2YXVBMVBMdnhQcUwyamVtMTE3T1FkNVU4ZDZLYVkxZFVxaXQzRjdvRDFmbnRleGZHaDlPeG1lTDJVZVlNVkh3ZU1zRlJ5QWNzTG42bDBpQ3g1UDVwc1JuYnpHTjdFcTFoelpCcTdaVkhLa3FLYVJCVU1ZTXFERTNnK1pQMGtxYlhTeWU3S1Z1ekk2djlmZHIvMkpUcDhiSUgzZXFQK3ZvTDVXRHNhbXcwQUVYQkxuMytPMFErZGVpZWVEeW5xTnpjcGd4dy9yQlN5Nm9aSGpUZEt3M2MrcXJlcVlBZjlrOXhCTHNRYnpKYk9MTm96cU81TWtnUXQrQVRMekJOR0MxNUxGbUk5WWJ6UG9SWkRJWlZpR0R5YkNBUEUybVhLcURTM1ZZbDc2ZXZwenlVcGNQSkQzejU5ZlZ6Vjg0ZjJIZHZMcTVQVjFUazJLd3FGZ0VXZGFTSjJrb1g3UUdBdlZ0T0ZSNDJydHc0RU5TWHhRVVV0OFVWT2UycTIyOTJoTlY5T3FFK29aUFc3MlkwRE4rcDFzT0Z6bWM3dnV1ek1zcmMrZVZnbnV6dTMySDNFNW1zZk44djhWUTZpMXlzdDhtMjhzaER1bjJWZFpVeW04N0JKMEJ4NjBSTVJydC9qdC9ML01Ud1I4TSt2SGxyZnJhVXBjbjczcDlpWHZzbjBMQVdPaXdqUDAzSDVWZ3l4ajU2Rml0RUFqNHIzSTVuTTZycG9yNUlJYnI3UGJpUXZuV0gvd0FzU0NyRVBlT0txc2g3S0tTeXRja05STWtaU0JHcFJpa2xCekhhaVBtRFJZRGJ4bk53eGF6MlhKNUZzdVJnVGNaUnBCWnJ6ZjNJN05adnhMcHpmcDVhbjF2NWdTUkdZd0czamlLakJhRDBiTHJDOTh0T2V2U056Sll6THN1ZVNjSWU0dnE2dXFHNmxZc1c3cG9RZmVjY0VMVkFldi9odzZvYnhjaUF5ZDl0VkNkOGxCOHZXSVl2N2crREZUWVhiSyt5bzF0TlpHR1dIdU5MeHlwS0ludm1YcnR6WE43SHZxK0wzd3hyV2dacHhYbmp6dWR0N25zaTZMMlg0a0pYMFhNMVVVVTVLRGI2aW03YnUzVWpZbHJRaTRIV2NzZjA3VzhEVFdoYnJRUmJVYnZVdzBwaXBJWEtZS1dkT1FEb05zOG16SGtyY1ltSTYvYTE1bnBMZ3BEbmpIUFlCd0Z6NEhJdTQyb1F3SzdOS0luUXNuRGFLUUE1eG5NZVFOV2JMUmdrOWxvSWdmeXpLdVFPYzhNeXp1VnZwR2VJVlcveVcrb2h4dWlMM0MvZ2FUWTA0UFFwc3Q2TnZhTXJCd2FYTnEvZVA3Y0dkTmJXMmpaVUd5b2o0WnRFRjRwTmp6ek1xV3N5cGNhOW1mZXBwUWxXVld3U0RYNkdZV3dxMnB5RWF2QTFpZndYZnZYTmJaODQwRGJuaHF2MFZScVpYWFY2NnQyeHFwU1RwZkwyYmFoS1Q2bHVheHlRVW5qbnVtc2llcENSaWRpMGU3Q1NVekVPM2Z6L0xhdHExYlhPdWMxalZ4VzdNenoyNG84Wll5amFMWVlFSUpCb1VjSXVtcGRqb3JSRW91N1pPeVBWQzB5NmlGL2k5aUhTY3lHdk9JSDlKMXI2OWg3QWZjS0tKYU1wTjlXcFpVK0F1a0ViNVMrcFVwQTVZSlVGTkRLRzVOeE5PdkJObmFYOStTeHZsUExvblo3c05qcVduQjk3Q1paZmRNdDAwekM2L043VHI5Y0d5dU1laW9yUTRaQStHSG1YUzNXd09lNFdzQmdDd0ZTaGFpV2VpWmlyaXpBcFlnNTV5MXpqelkxenB6WjFEQ1RYK2dWanBMVXkxSFJvOWF2NXdDOWZoUktTbGwwWnBkeS9zZDFuRjlOVXNmNXRicHp1NUpIbUN3Tmh2NHZFZjV0Q2dBQUFIamFqWkxCVGhzeEVJWi9Md0hSQTZpdGVrSTlXS2dIT0xCT29FZ1JPWVZJdVJRSklnRnFqN0MxZGhjbDhXSjdEN3hFSDZJdjBodXEraDU5aHg3NzIzRkxxRXJWWGEzOWVUei96S3pIQUo3akhnS0w1eU8rSlJiWUVPOFNaK2lJSXZFS1hvdlBpVHQ0S2I0blhzVkc5aXJ4R2w1azQ4U2IyTW8rVVNVNno3ajZHaU1FRnRnU0tuR0dkZkVoOFFyNm9rcmN3UnZ4SmZFcS9YOGtYc04ydHAxNEUyK3o5eGpCb01FZExHcVVxT0Foc1k4dWVqZ2tuZE9pT1Fldk52cG9qaEpua1dkeEw3REJEYm1JNmlFOVBYV0dkc2YxVG96cW1jWGhDSXB2U1czd2FIR05uQ3JEU0FxM1hCdmFOZWY1MHVxS3lxQlZmMVR4VU1NdW8yQmttanRibDVXWCs5M2VvVHl2dEJ5WjF0YmF5ak5ienpSSGM2TUxMNGV0cjR4MWNxZnl2bkZIU3BXMXI5cnJ2REF6ZGRzYXI5dDVuSzZheHFrVUlrYllEVm1lUEFnOHlnWWMwM1BLYTRGak0rVjR3QnJEcWZZeHdBUVgvSWFrcC81bzcwRitrSGQ3L2NIa1lqSWNMQmV6dHdqN3I4YjhEdkg0SEJiQ3l5aHdkRFk4YmJsVUh5NjFkYldaeTVnWi8xUGpYd3I3MWZORnh4MjdISFFOYlk2WlF0NHA1M0JIU3U2Zllvd1RpdGdSTnNRVnRtNjh5MTA5elkwdDFlbjRCRDhCK3JHb2VRQUFlTnBsaXRkT3dtQUFSczlmUmhHY0RNVXRibEd4eFZsWFhDaTRCU2VvcFRGZ0x3ZzFCV084MVVmMVBZeW1pVEhSYzNPK25IeElPSHgrOFBZdHdWOU1wMHE0Y09QQmk0eVBCdndFYUtTSlpscG9wWTBnSWNKRWFLZURLSjEwMFUwUHZmVFJ6d0F4QmhsaW1CRkdHV09jQ2VKTU1zVTBDV1pRVUVreXl4enpMTERJRWhyTHJMREtHdXRzc01rVzIreVFZcGM5MG1UWTU0QkRqamptaEZQT3lKTGpuQXN1dWVLYUcvSVV1T1dPZTNTS0dMd0xTYmlFVzNpRVY4Z2hxMXJTYXhXalp1cGw2OWxPbEczaklmamI2aStXa3lKMTB5NzlPOHFQbGRjblU5TjhqbFZGK1JucUZ6TEhOVzRBQVFBQi8vOEFEM2phWTJCa1lHRGdBV0lsSUdaaVlBYkNSQVpHaGlTR0ZDQXZsU0VkeUdZQnl6QUFBQ2ZVQWpWNDJtTmdaR0JnNEdJSVlVaGlZSFp4OHdsaEVFa3ZTczFtVU1oSkxNbGowR0ZnQWNveS9QL1BBRktGekJaallIWjJERkZnRVBQMTl3R1NRZjYrUUJJdXk1aFdsSmpNd0FGaWdURUxXQzhqVUlRUmFDWVQwRDRGSU1uR3dNZVF6TURNSU1RZ0NySWRTSXVEMWFiQTJVd01JZ3hpQUxXMkV4bDQybU5nWkdCZzRHS3dZYkJqWUhaeDh3bGhFRWt2U3MxbWtNdEpMTWxqMEdCZ0Fjb3kvUDhQSkxDeGdBQUFXeG9MYXdBQUFBQUFBUUFBQUFEVnBDY0lBQUFBQU5tY2crRUFBQUFBMmZ0Sk5BPT0nKSBmb3JtYXQoJ3dvZmYnKTtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxuICBmb250LXN0eWxlOiBub3JtYWw7XHJcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xyXG59XHJcbiJ9fQ==`,"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 v[s]?.name??""},get mode(){return k[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(v))t.test(d)&&(s=e);if(l||(l="recent"),!(s in v))throw{error:{message:s?`Unsupported provider "${s}"`:`Missing provider`},...o};if(!(l in k))throw{error:{message:`Unsupported mode "${l}"`},...o};if("playlist"===l){if(!d)throw{error:{message:`Missing playlist url`},...o};if(!v[s].embed.test(d))throw{error:{message:`Unsupported playlist url format`},...o}}switch(p=_Mathmax(1,_Mathmin(100,+p)),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 > loaded ${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(JSON.stringify(i)),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:`Spotify token must contain client id/secret and refresh token`};try{console.debug(`metrics/compute/${e}/plugins > music > requesting access token with refresh token for spotify`);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.log(a),console.debug(`metrics/compute/${e}/plugins > music > got new access token`),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.response?.status)throw{error:{message:`API returned ${e.response.status}`},...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 console.debug(`metrics/compute/${e}/plugins > music > success`),{...o,tracks:i}}throw{error:{message:`An error occured (could not retrieve tracks)`}}}catch(e){if(e.error?.message)throw e;throw console.debug(e),{error:{message:`An error occured`}}}}async function o({login:e,q:t},{conf:r,data:n,rest:a,graphql:o,plugins:i},{s:l,pending:s,imports:d}){const p=n.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}},c=d.imgb64(n.user.avatarUrl);n.plugins={};for(const c of Object.keys(d.plugins))s.push((async()=>{try{n.plugins[c]=await d.plugins[c]({login:e,q:t,imports:d,data:n,computed:p,rest:a,graphql:o},i[c])}catch(e){n.plugins[c]=e}finally{return{name:c,result:n.plugins[c]}}})());for(const c of n.user.repositories.nodes){for(const e of["watchers","stargazers","issues_open","issues_closed","pr_open","pr_merged","releases"])p.repositories[e]+=c[e].totalCount;p.repositories.forks+=c.forkCount,c.licenseInfo&&(p.licenses.used[c.licenseInfo.spdxId]=(p.licenses.used[c.licenseInfo.spdxId]||0)+1)}p.diskUsage=`${d.bytes(1e3*n.user.repositories.totalDiskUsage)}`,p.licenses.favorite=Object.entries(p.licenses.used).sort(([e,t],[r,n])=>n-t).slice(0,1).map(([e,t])=>e)||"",p.commits+=n.user.contributionsCollection.totalCommitContributions+n.user.contributionsCollection.restrictedContributionsCount;const u=(Date.now()-new Date(n.user.createdAt).getTime())/31536000000,m=_Mathfloor(u),g=_Mathceil(12*(u-m));p.registration=m?`${m} year${l(m)} ago`:`${g} month${l(g)} ago`,p.calendar=n.user.calendar.contributionCalendar.weeks.flatMap(({contributionDays:e})=>e).slice(0,14).reverse(),p.avatar=(await c)||"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M9QDwADhgGAWjR9awAAAABJRU5ErkJggg==",p.token.scopes=(await a.request("HEAD /")).headers["x-oauth-scopes"].split(", "),n.meta={version:r.package.version,author:r.package.author}}async function i({login:e,q:t},{graphql:r,rest:n,plugins:a,conf:o,die:i=!1}){try{console.debug(`metrics/compute/${e} > start`),console.debug(JSON.stringify(t));const m=t.template||o.settings.templates.default,g=_Mathmax(0,+t.repositories)||o.settings.repositories||100,h=[],f=(e,t="")=>1 graphql query`),Object.assign(A,await r(s.replace(/[$]login/,`"${e}"`).replace(/[$]repositories/,`${g}`).replace(/[$]calendar.to/,`"${new Date().toISOString()}"`).replace(/[$]calendar.from/,`"${new Date(Date.now()-1209600000).toISOString()}"`))),console.debug(`metrics/compute/${e} > compute`);const u=_[m].default||_[m];await u({login:e,q:t},{conf:o,data:A,rest:n,graphql:r,plugins:a},{s:f,pending:h,imports:{plugins:C,url:T,imgb64:S,axios:x,puppeteer:w,format:l,bytes:d,shuffle:p,htmlescape:c}});const y=await Promise.all(h);if(o.settings.debug)for(const{name:e,result:t=null}of y)console.debug(`plugin ${e} ${t?t.error?"failed":"success":"ignored"} : ${JSON.stringify(t).replace(/^(.{888}).+/,"$1...")}`);if(i){const e=y.filter(({result:e=null})=>!!e?.error).length;if(e)throw new Error(`${e} error${f(e)} found...`)}}console.debug(`metrics/compute/${e} > render`);let O=await y.render(v,{...A,s:f,style:k,fonts:E},{async:!0});if(o.optimize&&!t.raw){console.debug(`metrics/compute/${e} > optimize`);const t=new b({full:!0,plugins:[{cleanupAttrs:!0},{inlineStyles:!1}]}),{data:r}=await t.optimize(O);O=r}return console.debug(`metrics/compute/${e} > success`),O}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/g,">").replace(/"/g,""").replace(/'/g,"'")}function u({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:`########################`}),computed:n({avatar:"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mOcOnfpfwAGfgLYttYINwAAAABJRU5ErkJggg==",registration:"## years ago",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:{indents:{style:`########`}},languages:{favorites:Array(7).fill(null).map((e,t)=>({x:t,name:"######",color:"#ebedf0",value:1/(t+1)}))},topics:{list:[...Array(12).fill(null).map(()=>({name:"######",description:"",icon:null})),{name:`And ## more...`,description:"",icon:null}]},projects:{list:[...[,,,,].fill(null).map(()=>({name:"########",updated:"########",progress:{enabled:!0,todo:"##",doing:"##",done:"##",total:"##"}}))]}}[e]??{})]))})}r.r(t);var m={};r.r(m),r.d(m,{default:()=>n});var g={};r.r(g),r.d(g,{default:()=>i});var h=r(35747),f=r(85622),y=r(58509),b=r(20485),S=r(67192),x=r(2390);const v={apple:{name:"Apple Music",embed:/^https:..embed.music.apple.com.\w+.playlist/},spotify:{name:"Spotify",embed:/^https:..open.spotify.com.embed.playlist/}},k={playlist:"Suggested tracks",recent:"Recently played"},C={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 console.debug(e),{error:{message:`An error occured`}}}},gists:async function({login:e,graphql:t,q:r},{enabled:n=!1}={}){try{if(!n||!r.gists)return null;const{user:{gists:a}}=await t(` query Gists { user(login: "${e}") { gists(last: 100) { @@ -63,18 +63,18 @@ module.exports=(()=>{var _Mathhypot=Math.hypot,_Mathacos=Math.acos,_Mathtan=Math } } } - `),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){throw console.debug(e),{error:{message:`An error occured`}}}},selfskip:async function({login:e,rest:t,computed:r,q:n},{enabled:a=!1}={}){try{if(!a||!n.selfskip)return null;let o=0;for(let r=0;;r++){const{data:n}=await t.repos.listCommits({owner:e,repo:e,author:e,per_page:100,page:r});if(o+=n.filter(({commit:e})=>/\[Skip GitHub Action\]/.test(e.message)).length,!n.length)break}return r.commits-=o,{commits:o}}catch(e){throw console.debug(e),{error:{message:`An error occured`}}}},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));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 > loaded ${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(!n.length)break;s.push(...n)}if(i&&(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})}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 console.debug(e),{error:{message:`An error occured`}}}},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)??[],s={count:0,uniques:0},l=await Promise.all(i.map(async t=>await n.repos.getViews({owner:e,repo:t})));return 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){if(403===e.status)throw{error:{message:`Insufficient token rights`}};throw console.debug(e),{error:{message:`An error occured`}}}}},_={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 w=r(34651),T=r(78835),E=r(3584),A=r.t(E),O=r(32882),P=r.t(O),L=r(29483),z=r.t(L);(async function(){const[e,t,n,a,o]=[P,z,A,m,g].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 as SVG image`),console.log(`========================================================`),console.log(`Version | 2.7.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=t.context.repo.owner;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={};let S=(e.getInput("base")||"").split(",").map(e=>e.trim());for(const e of l.settings.plugins.base.parts)b[`base.${e}`]=S.includes(e);console.log(`Base parts | ${S.join(", ")||"(none)"}`);const x={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")),from:+e.getInput("plugin_habits_from")||100},selfskip:{enabled:i(e.getInput("plugin_selfskip"))},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"))}};let v=Object.fromEntries(Object.entries(x).filter(([e,t])=>t.enabled).map(([e])=>[e,!0]));if(console.log(`Plugins enabled | ${Object.entries(x).filter(([e,t])=>t.enabled).map(([e])=>e).join(", ")}`),x.pagespeed.enabled&&(x.pagespeed.token=e.getInput("plugin_pagespeed_token"),console.log(`Pagespeed token | ${x.pagespeed.token?"provided":"missing"}`),v[`pagespeed.detailed`]=i(e.getInput(`plugin_pagespeed_detailed`)),console.log(`Pagespeed detailed | ${v["pagespeed.detailed"]}`)),x.music.enabled){for(const t of["provider","mode","playlist","limit"])v[`music.${t}`]=e.getInput(`plugin_music_${t}`)||null;console.log(`Music provider | ${v["music.provider"]}`),console.log(`Music plugin mode | ${v["music.mode"]}`),console.log(`Music playlist | ${v["music.playlist"]}`),console.log(`Music tracks limit | ${v["music.limit"]}`),x.music.token=e.getInput("plugin_music_token")||"",console.log(`Music token | ${x.music.token?"provided":"missing"}`)}if(x.posts.enabled){for(const t of["source","limit"])v[`posts.${t}`]=e.getInput(`plugin_posts_${t}`)||null;console.log(`Posts provider | ${v["posts.provider"]}`),console.log(`Posts limit | ${v["posts.limit"]}`)}if(x.isocalendar.enabled&&(v["isocalendar.duration"]=e.getInput("plugin_isocalendar_duration")??"half-year",console.log(`Isocalendar duration| ${v["isocalendar.duration"]}`)),x.topics.enabled){for(const t of["sort","limit"])v[`topics.${t}`]=e.getInput(`plugin_topics_${t}`)||null;console.log(`Topics sort mode | ${v["topics.sort"]}`),console.log(`Topics limit | ${v["topics.limit"]}`)}if(x.projects.enabled){for(const t of["limit"])v[`projects.${t}`]=e.getInput(`plugin_projects_${t}`)||null;console.log(`Projects limit | ${v["projects.limit"]}`)}const k=+e.getInput("repositories")||100;console.log(`Repositories to use | ${k}`);const C=i(e.getInput("plugins_errors_fatal"));console.log(`Plugin errors | ${C?"die":"ignore"}`),v={...v,base:!1,...b,repositories:k,template:d};const _=await o({login:f,q:v},{graphql:c,rest:u,plugins:x,conf:l,die:C});console.log(`Render | complete`);const w=i(e.getInput("verify"));if(console.log(`Verify SVG | ${w}`),w){const[e]=[await r.e(344).then(r.t.bind(r,53344,1))].map(e=>e&&e.default?e.default:e),t=e.parseXml(_);if(t.errors.length)throw new Error(`Malformed SVG : \n${t.errors.join("\n")}`);console.log(`SVG valid | yes`)}const T=i(e.getInput("dryrun"));if(T)console.log(`Dry-run | complete`);else{console.log(`Repository | ${t.context.repo.owner}/${t.context.repo.repo}`);const r=e.getInput("committer_token")||e.getInput("token");if(console.log(`Committer token | ${r?"provided":"missing"}`),!r)throw new Error("You must provide a valid GitHub token to commit your metrics");const n=t.getOctokit(r);console.log(`Committer REST API | ok`);try{console.log(`Committer | ${(await n.users.getAuthenticated()).data.login}`)}catch{console.log(`Committer | (unknown)`)}let a=null;try{const{data:e}=await n.repos.getContent({...t.context.repo,path:m});a=e.sha}catch(e){console.debug(e)}console.log(`Previous render sha | ${a||"none"}`),await n.repos.createOrUpdateFileContents({...t.context.repo,path:m,message:`Update ${m} - [Skip GitHub Action]`,content:Buffer.from(_).toString("base64"),...(a?{sha:a}:{})}),console.log(`Commit to repo | ok`)}console.log(`Success !`),process.exit(0)}catch(t){console.error(t),i(e.getInput("debug"))||console.debug("An error occured, logging debug message :",...s),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.1",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.9"} ${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.7"} ${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.0",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"],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"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],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}"],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"],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}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/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"],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"]},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",{mediaType:{previews:["antiope"]}}],createSuite:["POST /repos/{owner}/{repo}/check-suites",{mediaType:{previews:["antiope"]}}],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}",{mediaType:{previews:["antiope"]}}],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}",{mediaType:{previews:["antiope"]}}],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations",{mediaType:{previews:["antiope"]}}],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs",{mediaType:{previews:["antiope"]}}],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs",{mediaType:{previews:["antiope"]}}],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites",{mediaType:{previews:["antiope"]}}],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest",{mediaType:{previews:["antiope"]}}],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences",{mediaType:{previews:["antiope"]}}],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}",{mediaType:{previews:["antiope"]}}]},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"]},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",{mediaType:{previews:["sombra"]}}],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits",{mediaType:{previews:["sombra"]}}],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits",{mediaType:{previews:["sombra"]}}],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits",{mediaType:{previews:["sombra"]}}],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits",{mediaType:{previews:["sombra"]}}],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits",{mediaType:{previews:["sombra"]}}]},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"]},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}"],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}"]},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://developer.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}/{archive_format}/{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",{mediaType:{previews:["black-panther"]}}],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}"],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"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],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"]},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.2.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.10"} ${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";var n=r(19520),a=r(29801),o=r(92074),i=r(87481),s=r(98605),l=r(57211),d=r(75955).http,p=r(75955).https,c=r(78835),u=r(78761),m=r(35131),g=r(3034),h=r(95261),f=/https:?/;e.exports=function(e){return new Promise(function(t,r){var y=function(e){t(e)},b=function(e){r(e)},S=e.data,x=e.headers;if(x["User-Agent"]||x["user-agent"]||(x["User-Agent"]="axios/"+m.version),S&&!n.isStream(S)){if(Buffer.isBuffer(S));else if(n.isArrayBuffer(S))S=Buffer.from(new Uint8Array(S));else if(n.isString(S))S=Buffer.from(S,"utf-8");else return b(g("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));x["Content-Length"]=S.length}var v;if(e.auth){var k=e.auth.username||"",C=e.auth.password||"";v=k+":"+C}var _=o(e.baseURL,e.url),w=c.parse(_),T=w.protocol||"http:";if(!v&&w.auth){var E=w.auth.split(":"),A=E[0]||"",O=E[1]||"";v=A+":"+O}v&&delete x.Authorization;var P=f.test(T),L=P?e.httpsAgent:e.httpAgent,z={path:i(w.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:x,agent:L,agents:{http:e.httpAgent,https:e.httpsAgent},auth:v};e.socketPath?z.socketPath=e.socketPath:(z.hostname=w.hostname,z.port=w.port);var R=e.proxy;if(!R&&!1!==R){var M=T.slice(0,-1)+"_proxy",I=process.env[M]||process.env[M.toUpperCase()];if(I){var W=c.parse(I),q=process.env.no_proxy||process.env.NO_PROXY,B=!0;if(q){var N=q.split(",").map(function(e){return e.trim()});B=!N.some(function(e){return!!e&&("*"===e||"."===e[0]&&w.hostname.substr(w.hostname.length-e.length)===e||w.hostname===e)})}if(B&&(R={host:W.hostname,port:W.port},W.auth)){var D=W.auth.split(":");R.auth={username:D[0],password:D[1]}}}}if(R&&(z.hostname=R.host,z.host=R.host,z.headers.host=w.hostname+(w.port?":"+w.port:""),z.port=R.port,z.path=T+"//"+w.hostname+(w.port?":"+w.port:"")+z.path,R.auth)){var F=Buffer.from(R.auth.username+":"+R.auth.password,"utf8").toString("base64");z.headers["Proxy-Authorization"]="Basic "+F}var G=P&&(!R||f.test(R.protocol)),U;e.transport?U=e.transport:0===e.maxRedirects?U=G?l:s:(e.maxRedirects&&(z.maxRedirects=e.maxRedirects),U=G?p:d),-1e.maxContentLength&&(r.destroy(),b(g("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,o)))}),r.on("error",function(t){j.aborted||b(h(t,e,null,o))}),r.on("end",function(){var t=Buffer.concat(s);"arraybuffer"!==e.responseType&&(t=t.toString(e.responseEncoding),(!e.responseEncoding||"utf8"===e.responseEncoding)&&(t=n.stripBOM(t))),i.data=t,a(y,b,i)})}}});j.on("error",function(t){j.aborted&&"ERR_FR_TOO_MANY_REDIRECTS"!==t.code||b(h(t,e,null,j))}),e.timeout&&j.setTimeout(e.timeout,function(){j.abort(),b(g("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",j))}),e.cancelToken&&e.cancelToken.promise.then(function(e){j.aborted||(j.abort(),b(e))}),n.isStream(S)?S.on("error",function(t){b(h(t,e,null,j))}).pipe(j):j.end(S)})}},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),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)}},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){I("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(I("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;I("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(I("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;I("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;I("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(I("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 I("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;I("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 I("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+M.slice(1):W+M}}E.push(M)}}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},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="",M=E;M{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.isTag=void 0,t.isTag=function(e){return"tag"===e.type||"script"===e.type||"style"===e.type},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";/** + `),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){throw console.debug(e),{error:{message:`An error occured`}}}},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));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 > loaded ${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(!n.length)break;s.push(...n)}if(i&&(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})}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 console.debug(e),{error:{message:`An error occured`}}}},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)??[],s={count:0,uniques:0},l=await Promise.all(i.map(async t=>await n.repos.getViews({owner:e,repo:t})));return 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){if(403===e.status)throw{error:{message:`Insufficient token rights`}};throw console.debug(e),{error:{message:`An error occured`}}}}},_={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 w=r(34651),T=r(78835),E=r(3584),A=r.t(E),O=r(32882),P=r.t(O),L=r(29483),z=r.t(L);(async function(){const[e,t,n,a,o]=[P,z,A,m,g].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 as SVG image`),console.log(`========================================================`),console.log(`Version | 2.7.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={};let S=(e.getInput("base")||"").split(",").map(e=>e.trim());for(const e of l.settings.plugins.base.parts)b[`base.${e}`]=S.includes(e);console.log(`Base parts | ${S.join(", ")||"(none)"}`);const x={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")),from:+e.getInput("plugin_habits_from")||100},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"))}};let v=Object.fromEntries(Object.entries(x).filter(([e,t])=>t.enabled).map(([e])=>[e,!0]));if(console.log(`Plugins enabled | ${Object.entries(x).filter(([e,t])=>t.enabled).map(([e])=>e).join(", ")}`),x.pagespeed.enabled&&(x.pagespeed.token=e.getInput("plugin_pagespeed_token"),console.log(`Pagespeed token | ${x.pagespeed.token?"provided":"missing"}`),v[`pagespeed.detailed`]=i(e.getInput(`plugin_pagespeed_detailed`)),console.log(`Pagespeed detailed | ${v["pagespeed.detailed"]}`)),x.music.enabled){for(const t of["provider","mode","playlist","limit"])v[`music.${t}`]=e.getInput(`plugin_music_${t}`)||null;console.log(`Music provider | ${v["music.provider"]}`),console.log(`Music plugin mode | ${v["music.mode"]}`),console.log(`Music playlist | ${v["music.playlist"]}`),console.log(`Music tracks limit | ${v["music.limit"]}`),x.music.token=e.getInput("plugin_music_token")||"",console.log(`Music token | ${x.music.token?"provided":"missing"}`)}if(x.posts.enabled){for(const t of["source","limit"])v[`posts.${t}`]=e.getInput(`plugin_posts_${t}`)||null;console.log(`Posts provider | ${v["posts.provider"]}`),console.log(`Posts limit | ${v["posts.limit"]}`)}if(x.isocalendar.enabled&&(v["isocalendar.duration"]=e.getInput("plugin_isocalendar_duration")??"half-year",console.log(`Isocalendar duration| ${v["isocalendar.duration"]}`)),x.topics.enabled){for(const t of["sort","limit"])v[`topics.${t}`]=e.getInput(`plugin_topics_${t}`)||null;console.log(`Topics sort mode | ${v["topics.sort"]}`),console.log(`Topics limit | ${v["topics.limit"]}`)}if(x.projects.enabled){for(const t of["limit"])v[`projects.${t}`]=e.getInput(`plugin_projects_${t}`)||null;console.log(`Projects limit | ${v["projects.limit"]}`)}const k=+e.getInput("repositories")||100;console.log(`Repositories to use | ${k}`);const C=i(e.getInput("plugins_errors_fatal"));console.log(`Plugin errors | ${C?"die":"ignore"}`),v={...v,base:!1,...b,repositories:k,template:d};const _=await o({login:f,q:v},{graphql:c,rest:u,plugins:x,conf:l,die:C});console.log(`Render | complete`);const w=i(e.getInput("verify"));if(console.log(`Verify SVG | ${w}`),w){const[e]=[await r.e(344).then(r.t.bind(r,53344,1))].map(e=>e&&e.default?e.default:e),t=e.parseXml(_);if(t.errors.length)throw new Error(`Malformed SVG : \n${t.errors.join("\n")}`);console.log(`SVG valid | yes`)}const T=i(e.getInput("dryrun"));if(T)console.log(`Dry-run | complete`);else{console.log(`Repository | ${t.context.repo.owner}/${t.context.repo.repo}`);const r=e.getInput("committer_token")||e.getInput("token");if(console.log(`Committer token | ${r?"provided":"missing"}`),!r)throw new Error("You must provide a valid GitHub token to commit your metrics");const n=t.getOctokit(r);console.log(`Committer REST API | ok`);try{console.log(`Committer | ${(await n.users.getAuthenticated()).data.login}`)}catch{console.log(`Committer | (unknown)`)}let a=null;try{const{data:e}=await n.repos.getContent({...t.context.repo,path:m});a=e.sha}catch(e){console.debug(e)}console.log(`Previous render sha | ${a||"none"}`),await n.repos.createOrUpdateFileContents({...t.context.repo,path:m,message:`Update ${m} - [Skip GitHub Action]`,content:Buffer.from(_).toString("base64"),...(a?{sha:a}:{})}),console.log(`Commit to repo | ok`)}console.log(`Success !`),process.exit(0)}catch(t){console.error(t),i(e.getInput("debug"))||console.debug("An error occured, logging debug message :",...s),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.1",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.9"} ${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.7"} ${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.0",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"],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"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],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}"],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"],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}"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/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"],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"]},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",{mediaType:{previews:["antiope"]}}],createSuite:["POST /repos/{owner}/{repo}/check-suites",{mediaType:{previews:["antiope"]}}],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}",{mediaType:{previews:["antiope"]}}],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}",{mediaType:{previews:["antiope"]}}],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations",{mediaType:{previews:["antiope"]}}],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs",{mediaType:{previews:["antiope"]}}],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs",{mediaType:{previews:["antiope"]}}],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites",{mediaType:{previews:["antiope"]}}],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest",{mediaType:{previews:["antiope"]}}],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences",{mediaType:{previews:["antiope"]}}],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}",{mediaType:{previews:["antiope"]}}]},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"]},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",{mediaType:{previews:["sombra"]}}],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits",{mediaType:{previews:["sombra"]}}],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits",{mediaType:{previews:["sombra"]}}],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits",{mediaType:{previews:["sombra"]}}],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits",{mediaType:{previews:["sombra"]}}],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits",{mediaType:{previews:["sombra"]}}]},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"]},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}"],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}"]},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://developer.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}/{archive_format}/{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",{mediaType:{previews:["black-panther"]}}],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}"],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"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],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"]},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.2.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.10"} ${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";var n=r(19520),a=r(29801),o=r(92074),i=r(87481),s=r(98605),l=r(57211),d=r(75955).http,p=r(75955).https,c=r(78835),u=r(78761),m=r(35131),g=r(3034),h=r(95261),f=/https:?/;e.exports=function(e){return new Promise(function(t,r){var y=function(e){t(e)},b=function(e){r(e)},S=e.data,x=e.headers;if(x["User-Agent"]||x["user-agent"]||(x["User-Agent"]="axios/"+m.version),S&&!n.isStream(S)){if(Buffer.isBuffer(S));else if(n.isArrayBuffer(S))S=Buffer.from(new Uint8Array(S));else if(n.isString(S))S=Buffer.from(S,"utf-8");else return b(g("Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream",e));x["Content-Length"]=S.length}var v;if(e.auth){var k=e.auth.username||"",C=e.auth.password||"";v=k+":"+C}var _=o(e.baseURL,e.url),w=c.parse(_),T=w.protocol||"http:";if(!v&&w.auth){var E=w.auth.split(":"),A=E[0]||"",O=E[1]||"";v=A+":"+O}v&&delete x.Authorization;var P=f.test(T),L=P?e.httpsAgent:e.httpAgent,z={path:i(w.path,e.params,e.paramsSerializer).replace(/^\?/,""),method:e.method.toUpperCase(),headers:x,agent:L,agents:{http:e.httpAgent,https:e.httpsAgent},auth:v};e.socketPath?z.socketPath=e.socketPath:(z.hostname=w.hostname,z.port=w.port);var R=e.proxy;if(!R&&!1!==R){var M=T.slice(0,-1)+"_proxy",I=process.env[M]||process.env[M.toUpperCase()];if(I){var W=c.parse(I),q=process.env.no_proxy||process.env.NO_PROXY,B=!0;if(q){var N=q.split(",").map(function(e){return e.trim()});B=!N.some(function(e){return!!e&&("*"===e||"."===e[0]&&w.hostname.substr(w.hostname.length-e.length)===e||w.hostname===e)})}if(B&&(R={host:W.hostname,port:W.port},W.auth)){var D=W.auth.split(":");R.auth={username:D[0],password:D[1]}}}}if(R&&(z.hostname=R.host,z.host=R.host,z.headers.host=w.hostname+(w.port?":"+w.port:""),z.port=R.port,z.path=T+"//"+w.hostname+(w.port?":"+w.port:"")+z.path,R.auth)){var F=Buffer.from(R.auth.username+":"+R.auth.password,"utf8").toString("base64");z.headers["Proxy-Authorization"]="Basic "+F}var G=P&&(!R||f.test(R.protocol)),U;e.transport?U=e.transport:0===e.maxRedirects?U=G?l:s:(e.maxRedirects&&(z.maxRedirects=e.maxRedirects),U=G?p:d),-1e.maxContentLength&&(r.destroy(),b(g("maxContentLength size of "+e.maxContentLength+" exceeded",e,null,o)))}),r.on("error",function(t){j.aborted||b(h(t,e,null,o))}),r.on("end",function(){var t=Buffer.concat(s);"arraybuffer"!==e.responseType&&(t=t.toString(e.responseEncoding),(!e.responseEncoding||"utf8"===e.responseEncoding)&&(t=n.stripBOM(t))),i.data=t,a(y,b,i)})}}});j.on("error",function(t){j.aborted&&"ERR_FR_TOO_MANY_REDIRECTS"!==t.code||b(h(t,e,null,j))}),e.timeout&&j.setTimeout(e.timeout,function(){j.abort(),b(g("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED",j))}),e.cancelToken&&e.cancelToken.promise.then(function(e){j.aborted||(j.abort(),b(e))}),n.isStream(S)?S.on("error",function(t){b(h(t,e,null,j))}).pipe(j):j.end(S)})}},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),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)}},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){I("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(I("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;I("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(I("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;I("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;I("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(I("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 I("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;I("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 I("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+M.slice(1):W+M}}E.push(M)}}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},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="",M=E;M{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.isTag=void 0,t.isTag=function(e){return"tag"===e.type||"script"===e.type||"style"===e.type},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 * @project EJS * @license {@link http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0} - */function n(e,r){var n;if(r.some(function(r){return n=t.resolveInclude(e,r,!0),g.existsSync(n)}))return n}function a(e,r){var a=r.views,o=/^[A-Za-z]+:\\|^\//.exec(e),i,s;if(o&&o.length)e=e.replace(/^\/*/,""),i=Array.isArray(r.root)?n(e,r.root):t.resolveInclude(e,r.root||"/",!0);else if(r.filename&&(s=t.resolveInclude(e,r.filename),g.existsSync(s)&&(i=s)),!i&&Array.isArray(a)&&(i=n(e,a)),!i&&"function"!=typeof r.includer)throw new Error("Could not find the include file \""+r.escapeFunction(e)+"\"");return i}function i(e,r){var n=e.filename,a=1> ":" ")+r+"| "+e}).join("\n");throw e.path=d,e.message=(d||"ejs")+":"+n+"\n"+p+"\n\n"+e.message,e}function u(e){return e.replace(/;(\s*$)/,"$1")}function m(e,r){r=r||{};var n={};this.templateText=e,this.mode=null,this.truncate=!1,this.currentLine=1,this.source="",n.client=r.client||!1,n.escapeFunction=r.escape||r.escapeFunction||h.escapeXML,n.compileDebug=!1!==r.compileDebug,n.debug=!!r.debug,n.filename=r.filename,n.openDelimiter=r.openDelimiter||t.openDelimiter||"<",n.closeDelimiter=r.closeDelimiter||t.closeDelimiter||">",n.delimiter=r.delimiter||t.delimiter||"%",n.strict=r.strict||!1,n.context=r.context,n.cache=r.cache||!1,n.rmWhitespace=r.rmWhitespace,n.root=r.root,n.includer=r.includer,n.outputFunctionName=r.outputFunctionName,n.localsName=r.localsName||t.localsName||"locals",n.views=r.views,n.async=r.async,n.destructuredLocals=r.destructuredLocals,n.legacyInclude="undefined"==typeof r.legacyInclude||!!r.legacyInclude,n._with=!n.strict&&("undefined"==typeof r._with||r._with),this.opts=n,this.regex=this.createRegex()}var g=r(35747),o=r(85622),h=r(74998),f=!1,y=r(52021).i8,b=["delimiter","scope","context","debug","compileDebug","client","_with","rmWhitespace","strict","filename","async"],S=b.concat("cache"),x=/^\uFEFF/;t.cache=h.cache,t.fileLoader=g.readFileSync,t.localsName="locals",t.promiseImpl=new Function("return this;")().Promise,t.resolveInclude=function(e,t,r){var n=o.dirname,a=o.extname,i=o.resolve,s=i(r?t:n(t),e),l=a(e);return l||(s+=".ejs"),s},t.compile=function(e,t){var r;return t&&t.scope&&(!f&&(console.warn("`scope` option is deprecated and will be removed in EJS 3"),f=!0),!t.context&&(t.context=t.scope),delete t.scope),r=new m(e,t),r.compile()},t.render=function(e,t,r){var n=t||{},a=r||{};return 2==arguments.length&&h.shallowCopyFromList(a,n,b),i(a,e)(n)},t.renderFile=function(){var e=Array.prototype.slice.call(arguments),t=e.shift(),r={filename:t},n,a,o;return"function"==typeof arguments[arguments.length-1]&&(n=e.pop()),e.length?(a=e.shift(),e.length?h.shallowCopy(r,e.pop()):(a.settings&&(a.settings.views&&(r.views=a.settings.views),a.settings["view cache"]&&(r.cache=!0),o=a.settings["view options"],o&&h.shallowCopy(r,o)),h.shallowCopyFromList(r,a,S)),r.filename=t):a={},s(r,a,n)},t.Template=m,t.clearCache=function(){t.cache.reset()},m.modes={EVAL:"eval",ESCAPED:"escaped",RAW:"raw",COMMENT:"comment",LITERAL:"literal"},m.prototype={createRegex:function(){var e="(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)",t=h.escapeRegExpChars(this.opts.delimiter),r=h.escapeRegExpChars(this.opts.openDelimiter),n=h.escapeRegExpChars(this.opts.closeDelimiter);return e=e.replace(/%/g,t).replace(//g,n),new RegExp(e)},compile:function(){var t=this.opts,r="",n="",a=t.escapeFunction,s,l,e;if(!this.source){if(this.generateSource(),r+=" var __output = \"\";\n function __append(s) { if (s !== undefined && s !== null) __output += s }\n",t.outputFunctionName&&(r+=" var "+t.outputFunctionName+" = __append;\n"),t.destructuredLocals&&t.destructuredLocals.length){for(var d=" var __locals = ("+t.localsName+" || {}),\n",u=0,m;u[ \t]*/gm,"_%>");var t=this,r=this.parseTemplateText(),n=this.opts.delimiter,a=this.opts.openDelimiter,o=this.opts.closeDelimiter;r&&r.length&&r.forEach(function(e,i){var s;if(0===e.indexOf(a+n)&&0!==e.indexOf(a+n+n)&&(s=r[i+2],s!=n+o&&s!="-"+n+o&&s!="_"+n+o))throw new Error("Could not find matching close tag for \""+e+"\".");t.scanLine(e)})},parseTemplateText:function(){for(var e=this.templateText,t=this.regex,r=t.exec(e),n=[],a;r;)a=r.index,0!==a&&(n.push(e.substring(0,a)),e=e.slice(a)),n.push(r[0]),e=e.slice(r[0].length),r=t.exec(e);return e&&n.push(e),n},_addOutput:function(e){return this.truncate&&(e=e.replace(/^(?:\r\n|\r|\n)/,""),this.truncate=!1),e?void(e=e.replace(/\\/g,"\\\\"),e=e.replace(/\n/g,"\\n"),e=e.replace(/\r/g,"\\r"),e=e.replace(/"/g,"\\\""),this.source+=" ; __append(\""+e+"\")\n"):e},scanLine:function(e){var t=this,r=this.opts.delimiter,n=this.opts.openDelimiter,a=this.opts.closeDelimiter,o=0;switch(o=e.split("\n").length-1,e){case n+r:case n+r+"_":this.mode=m.modes.EVAL;break;case n+r+"=":this.mode=m.modes.ESCAPED;break;case n+r+"-":this.mode=m.modes.RAW;break;case n+r+"#":this.mode=m.modes.COMMENT;break;case n+r+r:this.mode=m.modes.LITERAL,this.source+=" ; __append(\""+e.replace(n+r+r,n+r)+"\")\n";break;case r+r+a:this.mode=m.modes.LITERAL,this.source+=" ; __append(\""+e.replace(r+r+a,r+a)+"\")\n";break;case r+a:case"-"+r+a:case"_"+r+a:this.mode==m.modes.LITERAL&&this._addOutput(e),this.mode=null,this.truncate=0===e.indexOf("-")||0===e.indexOf("_");break;default:if(this.mode){switch(this.mode){case m.modes.EVAL:case m.modes.ESCAPED:case m.modes.RAW:e.lastIndexOf("//")>e.lastIndexOf("\n")&&(e+="\n");}switch(this.mode){case m.modes.EVAL:this.source+=" ; "+e+"\n";break;case m.modes.ESCAPED:this.source+=" ; __append(escapeFn("+u(e)+"))\n";break;case m.modes.RAW:this.source+=" ; __append("+u(e)+")\n";break;case m.modes.COMMENT:break;case m.modes.LITERAL:this._addOutput(e);}}else this._addOutput(e);}t.opts.compileDebug&&o&&(this.currentLine+=o,this.source+=" ; __line = "+this.currentLine+"\n")}},t.escapeXML=h.escapeXML,t.__express=t.renderFile,t.VERSION=y,t.name="ejs","undefined"!=typeof window&&(window.ejs=t)},74998:(e,t)=>{"use strict";function r(e){return n[e]||e}t.escapeRegExpChars=function(e){return e?(e+"").replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"):""};var n={"&":"&","<":"<",">":">",'"':""","'":"'"};t.escapeXML=function(e){return null==e?"":(e+"").replace(/[&<>'"]/g,r)},t.escapeXML.toString=function(){return Function.prototype.toString.call(this)+";\n"+"var _ENCODE_HTML_RULES = {\n \"&\": \"&\"\n , \"<\": \"<\"\n , \">\": \">\"\n , '\"': \""\"\n , \"'\": \"'\"\n }\n , _MATCH_HTML = /[&<>'\"]/g;\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n};\n"},t.shallowCopy=function(e,t){for(var r in t=t||{},t)e[r]=t[r];return e},t.shallowCopyFromList=function(e,t,r){for(var n=0,a;n{var n=r(86343),a=function(){},o=function(e){return e.setHeader&&"function"==typeof e.abort},i=function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length},s=function(e,t,r){if("function"==typeof t)return s(e,null,t);t||(t={}),r=n(r||a);var l=e._writableState,d=e._readableState,p=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=!1,m=function(){e.writable||g()},g=function(){c=!1,p||r.call(e)},h=function(){p=!1,c||r.call(e)},f=function(t){r.call(e,t?new Error("exited with error code: "+t):null)},y=function(t){r.call(e,t)},b=function(){process.nextTick(S)},S=function(){return u?void 0:p&&!(d&&d.ended&&!d.destroyed)?r.call(e,new Error("premature close")):c&&!(l&&l.ended&&!l.destroyed)?r.call(e,new Error("premature close")):void 0},x=function(){e.req.on("finish",g)};return o(e)?(e.on("complete",g),e.on("abort",b),e.req?x():e.on("request",x)):c&&!l&&(e.on("end",m),e.on("close",m)),i(e)&&e.on("exit",f),e.on("end",h),e.on("finish",g),!1!==t.error&&e.on("error",y),e.on("close",b),function(){u=!0,e.removeListener("complete",g),e.removeListener("abort",b),e.removeListener("request",x),e.req&&e.req.removeListener("finish",g),e.removeListener("end",m),e.removeListener("close",m),e.removeListener("finish",g),e.removeListener("exit",f),e.removeListener("end",h),e.removeListener("error",y),e.removeListener("close",b)}};e.exports=s},27235:function(e,t,r){"use strict";function n(e){var t=Object.keys(e).join("|"),r=a(e);t+="|#[xX][\\da-fA-F]+|#\\d+";var n=new RegExp("&(?:"+t+");","g");return function(e){return(e+"").replace(n,r)}}function a(e){return function(t){if("#"===t.charAt(1)){var r=t.charAt(2);return"X"===r||"x"===r?p.default(parseInt(t.substr(3),16)):p.default(parseInt(t.substr(2),10))}return e[t.slice(1,-1)]}}var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeHTML=t.decodeHTMLStrict=t.decodeXML=void 0;var s=o(r(20933)),l=o(r(19151)),d=o(r(44816)),p=o(r(62190));t.decodeXML=n(d.default),t.decodeHTMLStrict=n(s.default);var c=function(e,t){return e=e||1114111>>10),e=56320|1023&e),t+=_StringfromCharCode(e),t}var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=a(r(93879));t.default=n},4414:function(e,t,r){"use strict";function n(e){return Object.keys(e).sort().reduce(function(t,r){return t[e[r]]="&"+r+";",t},{})}function a(e){for(var t=[],r=[],n=0,a=Object.keys(e),o;nl||t.splice(i,l,t[i]+"-"+t[s])}return r.unshift("["+t.join("")+"]"),new RegExp(r.join("|"),"g")}function o(e){return"&#x"+e.codePointAt(0).toString(16).toUpperCase()+";"}function i(e,t){return function(r){return r.replace(t,function(t){return e[t]}).replace(g,o)}}var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.escape=t.encodeHTML=t.encodeXML=void 0;var l=s(r(44816)),d=n(l.default),p=a(d);t.encodeXML=i(d,p);var c=s(r(20933)),u=n(c.default),m=a(u);t.encodeHTML=i(u,m);var g=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,h=a(d);t.escape=function(e){return e.replace(h,o).replace(g,o)}},83982:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.escape=t.encodeHTML=t.encodeXML=t.encode=t.decodeStrict=t.decode=void 0;var n=r(27235),a=r(4414);t.decode=function(e,t){return(!t||0>=t?n.decodeXML:n.decodeHTML)(e)},t.decodeStrict=function(e,t){return(!t||0>=t?n.decodeXML:n.decodeHTMLStrict)(e)},t.encode=function(e,t){return(!t||0>=t?a.encodeXML:a.encodeHTML)(e)};var o=r(4414);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return o.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return o.encodeHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return o.escape}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return o.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return o.encodeHTML}});var i=r(27235);Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return i.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return i.decodeXML}})},61421:(e,t,r)=>{"use strict";e.exports=r(93008)},93008:(e,t,r)=>{"use strict";var n=r(32260),a=n("%TypeError%");e.exports=function(e,t){if(null==e)throw new a(t||"Cannot call method on "+e);return e}},32260:(e,t,r)=>{"use strict";var n=Number.prototype,a=TypeError,o=Object.getOwnPropertyDescriptor;if(o)try{o({},"")}catch(t){o=null}var i=function(){throw new a},s=o?function(){try{return arguments.callee,i}catch(e){try{return o(arguments,"callee").get}catch(e){return i}}}():i,l=r(41869)(),d=Object.getPrototypeOf||function(e){return e.__proto__},p=x?d(x):void 0,c=v?v.constructor:void 0,u=k?d(k):void 0,m=k?k():void 0,g="undefined"==typeof Uint8Array?void 0:d(Uint8Array),h={"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?void 0:ArrayBuffer,"%ArrayBufferPrototype%":"undefined"==typeof ArrayBuffer?void 0:ArrayBuffer.prototype,"%ArrayIteratorPrototype%":l?d([][Symbol.iterator]()):void 0,"%ArrayPrototype%":Array.prototype,"%ArrayProto_entries%":Array.prototype.entries,"%ArrayProto_forEach%":Array.prototype.forEach,"%ArrayProto_keys%":Array.prototype.keys,"%ArrayProto_values%":Array.prototype.values,"%AsyncFromSyncIteratorPrototype%":void 0,"%AsyncFunction%":c,"%AsyncFunctionPrototype%":c?c.prototype:void 0,"%AsyncGenerator%":k?d(m):void 0,"%AsyncGeneratorFunction%":u,"%AsyncGeneratorPrototype%":u?u.prototype:void 0,"%AsyncIteratorPrototype%":m&&l&&Symbol.asyncIterator?m[Symbol.asyncIterator]():void 0,"%Atomics%":"undefined"==typeof Atomics?void 0:Atomics,"%Boolean%":Boolean,"%BooleanPrototype%":Boolean.prototype,"%DataView%":"undefined"==typeof DataView?void 0:DataView,"%DataViewPrototype%":"undefined"==typeof DataView?void 0:DataView.prototype,"%Date%":Date,"%DatePrototype%":Date.prototype,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%ErrorPrototype%":Error.prototype,"%eval%":eval,"%EvalError%":EvalError,"%EvalErrorPrototype%":EvalError.prototype,"%Float32Array%":"undefined"==typeof Float32Array?void 0:Float32Array,"%Float32ArrayPrototype%":"undefined"==typeof Float32Array?void 0:Float32Array.prototype,"%Float64Array%":"undefined"==typeof Float64Array?void 0:Float64Array,"%Float64ArrayPrototype%":"undefined"==typeof Float64Array?void 0:Float64Array.prototype,"%Function%":Function,"%FunctionPrototype%":Function.prototype,"%Generator%":x?d(x()):void 0,"%GeneratorFunction%":p,"%GeneratorPrototype%":p?p.prototype:void 0,"%Int8Array%":"undefined"==typeof Int8Array?void 0:Int8Array,"%Int8ArrayPrototype%":"undefined"==typeof Int8Array?void 0:Int8Array.prototype,"%Int16Array%":"undefined"==typeof Int16Array?void 0:Int16Array,"%Int16ArrayPrototype%":"undefined"==typeof Int16Array?void 0:Int8Array.prototype,"%Int32Array%":"undefined"==typeof Int32Array?void 0:Int32Array,"%Int32ArrayPrototype%":"undefined"==typeof Int32Array?void 0:Int32Array.prototype,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":l?d(d([][Symbol.iterator]())):void 0,"%JSON%":"object"==typeof JSON?JSON:void 0,"%JSONParse%":"object"==typeof JSON?JSON.parse:void 0,"%Map%":"undefined"==typeof Map?void 0:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&l?d(new Map()[Symbol.iterator]()):void 0,"%MapPrototype%":"undefined"==typeof Map?void 0:Map.prototype,"%Math%":Math,"%Number%":Number,"%NumberPrototype%":n,"%Object%":Object,"%ObjectPrototype%":Object.prototype,"%ObjProto_toString%":Object.prototype.toString,"%ObjProto_valueOf%":Object.prototype.valueOf,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?void 0:Promise,"%PromisePrototype%":"undefined"==typeof Promise?void 0:Promise.prototype,"%PromiseProto_then%":"undefined"==typeof Promise?void 0:Promise.prototype.then,"%Promise_all%":"undefined"==typeof Promise?void 0:Promise.all,"%Promise_reject%":"undefined"==typeof Promise?void 0:Promise.reject,"%Promise_resolve%":"undefined"==typeof Promise?void 0:Promise.resolve,"%Proxy%":"undefined"==typeof Proxy?void 0:Proxy,"%RangeError%":RangeError,"%RangeErrorPrototype%":RangeError.prototype,"%ReferenceError%":ReferenceError,"%ReferenceErrorPrototype%":ReferenceError.prototype,"%Reflect%":"undefined"==typeof Reflect?void 0:Reflect,"%RegExp%":RegExp,"%RegExpPrototype%":RegExp.prototype,"%Set%":"undefined"==typeof Set?void 0:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&l?d(new Set()[Symbol.iterator]()):void 0,"%SetPrototype%":"undefined"==typeof Set?void 0:Set.prototype,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,"%SharedArrayBufferPrototype%":"undefined"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer.prototype,"%String%":String,"%StringIteratorPrototype%":l?d(""[Symbol.iterator]()):void 0,"%StringPrototype%":_Stringprototype,"%Symbol%":l?Symbol:void 0,"%SymbolPrototype%":l?Symbol.prototype:void 0,"%SyntaxError%":SyntaxError,"%SyntaxErrorPrototype%":SyntaxError.prototype,"%ThrowTypeError%":s,"%TypedArray%":g,"%TypedArrayPrototype%":g?g.prototype:void 0,"%TypeError%":a,"%TypeErrorPrototype%":a.prototype,"%Uint8Array%":"undefined"==typeof Uint8Array?void 0:Uint8Array,"%Uint8ArrayPrototype%":"undefined"==typeof Uint8Array?void 0:Uint8Array.prototype,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,"%Uint8ClampedArrayPrototype%":"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray.prototype,"%Uint16Array%":"undefined"==typeof Uint16Array?void 0:Uint16Array,"%Uint16ArrayPrototype%":"undefined"==typeof Uint16Array?void 0:Uint16Array.prototype,"%Uint32Array%":"undefined"==typeof Uint32Array?void 0:Uint32Array,"%Uint32ArrayPrototype%":"undefined"==typeof Uint32Array?void 0:Uint32Array.prototype,"%URIError%":URIError,"%URIErrorPrototype%":URIError.prototype,"%WeakMap%":"undefined"==typeof WeakMap?void 0:WeakMap,"%WeakMapPrototype%":"undefined"==typeof WeakMap?void 0:WeakMap.prototype,"%WeakSet%":"undefined"==typeof WeakSet?void 0:WeakSet,"%WeakSetPrototype%":"undefined"==typeof WeakSet?void 0:WeakSet.prototype},f=r(10373),y=f.call(Function.call,_Stringprototype.replace),b=function(e){var t=[];return y(e,/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,function(e,r,n,a){t[t.length]=n?y(a,/\\(\\)?/g,"$1"):r||e}),t},S=function(e,t){if(!(e in h))throw new SyntaxError("intrinsic "+e+" does not exist!");if("undefined"==typeof h[e]&&!t)throw new a("intrinsic "+e+" exists, but is not available. Please file an issue!");return h[e]},x,v,k;e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new TypeError("intrinsic name must be a non-empty string");if(1=r.length){var l=o(n,r[s]);if(!t&&!(r[s]in n))throw new a("base intrinsic for "+e+" exists, but the property is not available.");n=l&&"get"in l&&!("originalValue"in l.get)?l.get:n[r[s]]}else n=n[r[s]];return n}},69334:(e,t,r)=>{"use strict";var n=r(10373),a=r(32260),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},38790:(e,t,r)=>{"use strict";var n=r(32260),a=r(69334),o=a(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&o(e,".prototype.")?a(r):r}},46909:(e,t,r)=>{const n=r(35304)("extract-zip"),{createWriteStream:a,promises:o}=r(35747),i=r(74205),s=r(85622),{promisify:l}=r(31669),d=r(92413),p=r(11790),c=l(p.open),u=l(d.pipeline);class m{constructor(e,t){this.zipPath=e,this.opts=t}async extract(){return n("opening",this.zipPath,"with opts",this.opts),this.zipfile=await c(this.zipPath,{lazyEntries:!0}),this.canceled=!1,new Promise((e,t)=>{this.zipfile.on("error",e=>{this.canceled=!0,t(e)}),this.zipfile.readEntry(),this.zipfile.on("close",()=>{this.canceled||(n("zip extraction complete"),e())}),this.zipfile.on("entry",async e=>{if(this.canceled)return void n("skipping entry",e.fileName,{cancelled:this.canceled});if(n("zipfile entry",e.fileName),e.fileName.startsWith("__MACOSX/"))return void this.zipfile.readEntry();const r=s.dirname(s.join(this.opts.dir,e.fileName));try{await o.mkdir(r,{recursive:!0});const t=await o.realpath(r),a=s.relative(this.opts.dir,t);if(a.split(s.sep).includes(".."))throw new Error(`Out of bound path "${t}" found while processing file ${e.fileName}`);await this.extractEntry(e),n("finished processing",e.fileName),this.zipfile.readEntry()}catch(e){this.canceled=!0,this.zipfile.close(),t(e)}})})}async extractEntry(e){if(this.canceled)return void n("skipping entry extraction",e.fileName,{cancelled:this.canceled});this.opts.onEntry&&this.opts.onEntry(e,this.zipfile);const t=s.join(this.opts.dir,e.fileName),r=65535&e.externalFileAttributes>>16,d=61440,p=(r&d)===40960;let c=(r&d)===16384;!c&&e.fileName.endsWith("/")&&(c=!0);const m=e.versionMadeBy>>8;c||(c=0===m&&16===e.externalFileAttributes),n("extracting entry",{filename:e.fileName,isDir:c,isSymlink:p});const g=511&this.getExtractedMode(r,c),h=c?t:s.dirname(t),f={recursive:!0};if(c&&(f.mode=g),n("mkdir",{dir:h,...f}),await o.mkdir(h,f),!c){n("opening read stream",t);const r=await l(this.zipfile.openReadStream.bind(this.zipfile))(e);if(p){const e=await i(r);n("creating symlink",e,t),await o.symlink(e,t)}else await u(r,a(t,{mode:g}))}}getExtractedMode(e,t){let r=e;return 0===r&&(t?(this.opts.defaultDirMode&&(r=parseInt(this.opts.defaultDirMode,10)),!r&&(r=493)):(this.opts.defaultFileMode&&(r=parseInt(this.opts.defaultFileMode,10)),!r&&(r=420))),r}}e.exports=async function(e,t){if(n("creating target directory",t.dir),!s.isAbsolute(t.dir))throw new Error("Target directory is expected to be absolute");return await o.mkdir(t.dir,{recursive:!0}),t.dir=await o.realpath(t.dir),new m(e,t).extract()}},84203:(e,t,r)=>{function n(e,t){t=t||{},g.call(this),this.fd=e,this.pend=new m,this.pend.max=1,this.refCount=0,this.autoClose=!!t.autoClose}function a(e,t){t=t||{},p.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=t.end,this.pos=this.start,this.destroyed=!1}function o(e,t){t=t||{},c.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=null==t.end?1/0:+t.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}function i(e,t){g.call(this),t=t||{},this.refCount=0,this.buffer=e,this.maxChunkSize=t.maxChunkSize||_NumberMAX_SAFE_INTEGER}var s=r(35747),l=r(31669),d=r(92413),p=d.Readable,c=d.Writable,u=d.PassThrough,m=r(1520),g=r(28614).EventEmitter;t.createFromBuffer=function(e,t){return new i(e,t)},t.createFromFd=function(e,t){return new n(e,t)},t.BufferSlicer=i,t.FdSlicer=n,l.inherits(n,g),n.prototype.read=function(e,t,r,n,a){var o=this;o.pend.go(function(i){s.read(o.fd,e,t,r,n,function(e,t,r){i(),a(e,t,r)})})},n.prototype.write=function(e,t,r,n,a){var o=this;o.pend.go(function(i){s.write(o.fd,e,t,r,n,function(e,t,r){i(),a(e,t,r)})})},n.prototype.createReadStream=function(e){return new a(this,e)},n.prototype.createWriteStream=function(e){return new o(this,e)},n.prototype.ref=function(){this.refCount+=1},n.prototype.unref=function(){function e(e){e?t.emit("error",e):t.emit("close")}var t=this;if(t.refCount-=1,!(0t.refCount)throw new Error("invalid unref");t.autoClose&&s.close(t.fd,e)}},l.inherits(a,p),a.prototype._read=function(e){var t=this;if(!t.destroyed){var r=_Mathmin(t._readableState.highWaterMark,e);return null!=t.endOffset&&(r=_Mathmin(r,t.endOffset-t.pos)),0>=r?(t.destroyed=!0,t.push(null),void t.context.unref()):void t.context.pend.go(function(e){if(t.destroyed)return e();var n=new Buffer(r);s.read(t.context.fd,n,0,r,t.pos,function(r,a){r?t.destroy(r):0===a?(t.destroyed=!0,t.push(null),t.context.unref()):(t.pos+=a,t.push(n.slice(0,a))),e()})})}},a.prototype.destroy=function(e){this.destroyed||(e=e||new Error("stream destroyed"),this.destroyed=!0,this.emit("error",e),this.context.unref())},l.inherits(o,c),o.prototype._write=function(e,t,r){var n=this;if(!n.destroyed){if(n.pos+e.length>n.endOffset){var a=new Error("maximum file length exceeded");return a.code="ETOOBIG",n.destroy(),void r(a)}n.context.pend.go(function(t){return n.destroyed?t():void s.write(n.context.fd,e,0,e.length,n.pos,function(e,a){e?(n.destroy(),t(),r(e)):(n.bytesWritten+=a,n.pos+=a,n.emit("progress"),t(),r())})})}},o.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.context.unref())},l.inherits(i,g),i.prototype.read=function(e,t,r,n,a){var o=n+r,i=o-this.buffer.length,s=0=r.length){nr.endOffset){var i=new Error("maximum file length exceeded");return i.code="ETOOBIG",r.destroyed=!0,void a(i)}e.copy(t.buffer,r.pos,0,e.length),r.bytesWritten+=e.length,r.pos=o,r.emit("progress"),a()}},r.destroy=function(){r.destroyed=!0},r},i.prototype.ref=function(){this.refCount+=1},i.prototype.unref=function(){if(this.refCount-=1,0>this.refCount)throw new Error("invalid unref")}},20138:(e,t,r)=>{"use strict";const n=r(85622),a=r(90031),o=r(68719),i=Symbol("findUp.stop");e.exports=async(e,t={})=>{let r=n.resolve(t.cwd||"");const{root:o}=n.parse(r),s=[].concat(e),l=async t=>{if("function"!=typeof e)return a(s,t);const r=await e(t.cwd);return"string"==typeof r?a([r],t):r};for(;;){const e=await l({...t,cwd:r});if(e===i)return;if(e)return n.resolve(r,e);if(r===o)return;r=n.dirname(r)}},e.exports.sync=(e,t={})=>{let r=n.resolve(t.cwd||"");const{root:o}=n.parse(r),s=[].concat(e),l=t=>{if("function"!=typeof e)return a.sync(s,t);const r=e(t.cwd);return"string"==typeof r?a.sync([r],t):r};for(;;){const e=l({...t,cwd:r});if(e===i)return;if(e)return n.resolve(r,e);if(r===o)return;r=n.dirname(r)}},e.exports.exists=o,e.exports.sync.exists=o.sync,e.exports.stop=i},39597:(e,t,r)=>{var n;try{n=r(35304)("follow-redirects")}catch(e){n=function(){}}e.exports=n},75955:(e,t,r)=>{function n(e,t){h.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var r=this;this._onNativeResponse=function(e){r._processResponse(e)},this._performRequest()}function a(e,t){clearTimeout(e._timeout),e._timeout=setTimeout(function(){e.emit("timeout")},t)}function o(){clearTimeout(this._timeout)}function i(e){var t={maxRedirects:21,maxBodyLength:10485760},r={};return Object.keys(e).forEach(function(a){var o=a+":",i=r[o]=e[a],s=t[a]=Object.create(i);s.request=function(e,a,i){if("string"==typeof e){var s=e;try{e=l(new u(s))}catch(t){e=c.parse(s)}}else u&&e instanceof u?e=l(e):(i=a,a=e,e={protocol:o});return"function"==typeof a&&(i=a,a=null),a=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},e,a),a.nativeProtocols=r,f.equal(a.protocol,o,"protocol mismatch"),y("options",a),new n(a,i)},s.get=function(e,t,r){var n=s.request(e,t,r);return n.end(),n}}),t}function s(){}function l(e){var t={protocol:e.protocol,hostname:e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,hash:e.hash,search:e.search,pathname:e.pathname,path:e.pathname+e.search,href:e.href};return""!==e.port&&(t.port=+e.port),t}function d(e,t){var r;for(var n in t)e.test(n)&&(r=t[n],delete t[n]);return r}function p(e,t){function r(e){Error.captureStackTrace(this,this.constructor),this.message=e||t}return r.prototype=new Error,r.prototype.constructor=r,r.prototype.name="Error ["+e+"]",r.prototype.code=e,r}var c=r(78835),u=c.URL,m=r(98605),g=r(57211),h=r(92413).Writable,f=r(42357),y=r(39597),b=Object.create(null);["abort","aborted","connect","error","socket","timeout"].forEach(function(e){b[e]=function(t,r,n){this._redirectable.emit(e,t,r,n)}});var S=p("ERR_FR_REDIRECTION_FAILURE",""),x=p("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded"),v=p("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),k=p("ERR_STREAM_WRITE_AFTER_END","write after end");n.prototype=Object.create(h.prototype),n.prototype.write=function(e,t,r){if(this._ending)throw new k;if(!("string"==typeof e||"object"==typeof e&&"length"in e))throw new TypeError("data should be a string, Buffer or Uint8Array");return"function"==typeof t&&(r=t,t=null),0===e.length?void(r&&r()):void(this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,r)):(this.emit("error",new v),this.abort()))},n.prototype.end=function(e,t,r){if("function"==typeof e?(r=e,e=t=null):"function"==typeof t&&(r=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,r);else{var n=this,a=this._currentRequest;this.write(e,t,function(){n._ended=!0,a.end(null,null,r)}),this._ending=!0}},n.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)},n.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)},n.prototype.setTimeout=function(e,t){if(t&&this.once("timeout",t),this.socket)a(this,e);else{var r=this;this._currentRequest.once("socket",function(){a(r,e)})}return this.once("response",o),this.once("error",o),this},["abort","flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){n.prototype[e]=function(t,r){return this._currentRequest[e](t,r)}}),["aborted","connection","socket"].forEach(function(e){Object.defineProperty(n.prototype,e,{get:function(){return this._currentRequest[e]}})}),n.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(!e.hostname&&(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");0>t?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}},n.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)return void this.emit("error",new TypeError("Unsupported protocol "+e));if(this._options.agents){var r=e.substr(0,e.length-1);this._options.agent=this._options.agents[r]}var n=this._currentRequest=t.request(this._options,this._onNativeResponse);for(var a in this._currentUrl=c.format(this._options),n._redirectable=this,b)a&&n.on(a,b[a]);if(this._isRedirect){var o=0,s=this,l=this._requestBodyBuffers;(function e(t){if(n===s._currentRequest)if(t)s.emit("error",t);else if(ot){if(this._currentRequest.removeAllListeners(),this._currentRequest.on("error",s),this._currentRequest.abort(),e.destroy(),++this._redirectCount>this._options.maxRedirects)return void this.emit("error",new x);(301!==t&&302!==t||"POST"!==this._options.method)&&(303!==t||/^(?:GET|HEAD)$/.test(this._options.method))||(this._options.method="GET",this._requestBodyBuffers=[],d(/^content-/i,this._options.headers));var n=d(/^host$/i,this._options.headers)||c.parse(this._currentUrl).hostname,a=c.resolve(this._currentUrl,r);y("redirecting to",a),this._isRedirect=!0;var o=c.parse(a);if(Object.assign(this._options,o),o.hostname!==n&&d(/^authorization$/i,this._options.headers),"function"==typeof this._options.beforeRedirect){var i={headers:e.headers};try{this._options.beforeRedirect.call(null,this._options,i)}catch(e){return void this.emit("error",e)}this._sanitizeOptions(this._options)}try{this._performRequest()}catch(e){var l=new S("Redirected request failed: "+e.message);l.cause=e,this.emit("error",l)}}else e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[]},e.exports=i({http:m,https:g}),e.exports.wrap=i},21760:(e,t,r)=>{e.exports=r(35747).constants||r(27619)},52755:(e,t,r)=>{function n(e){return e&&"realpath"===e.syscall&&("ELOOP"===e.code||"ENOMEM"===e.code||"ENAMETOOLONG"===e.code)}function a(e,t,r){return c?s(e,t,r):void("function"==typeof t&&(r=t,t=null),s(e,t,function(a,o){n(a)?u.realpath(e,t,r):r(a,o)}))}function o(e,t){if(c)return l(e,t);try{return l(e,t)}catch(r){if(n(r))return u.realpathSync(e,t);throw r}}e.exports=a,a.realpath=a,a.sync=o,a.realpathSync=o,a.monkeypatch=function(){i.realpath=a,i.realpathSync=o},a.unmonkeypatch=function(){i.realpath=s,i.realpathSync=l};var i=r(35747),s=i.realpath,l=i.realpathSync,d=process.version,c=/^v[0-5]\./.test(d),u=r(21846)},21846:(e,t,r)=>{function n(){function e(e){e&&(n.message=e.message,e=n,t(e))}function t(e){if(e)if(process.throwDeprecation)throw e;else if(!process.noDeprecation){var t="fs: missing callback "+(e.stack||e.message);process.traceDeprecation?console.trace(t):console.error(t)}}var r;if(l){var n=new Error;r=e}else r=t;return r}function a(e){return"function"==typeof e?e:n()}var o=r(85622),i="win32"===process.platform,s=r(35747),l=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG),d=o.normalize;if(i)var c=/(.*?)(?:[\/\\]+|$)/g;else var c=/(.*?)(?:[\/]+|$)/g;if(i)var u=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;else var u=/^[\/]*/;t.realpathSync=function(e,t){function r(){var t=u.exec(e);d=t[0].length,g=t[0],h=t[0],f="",i&&!l[h]&&(s.lstatSync(h),l[h]=!0)}if(e=o.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return t[e];var n=e,a={},l={},d,g,h,f;for(r();d=e.length)return t&&(t[h]=e),r(null,e);c.lastIndex=b;var n=c.exec(e);return v=S,S+=n[0],x=v+n[1],b=c.lastIndex,y[x]||t&&t[x]===x?process.nextTick(l):t&&Object.prototype.hasOwnProperty.call(t,x)?g(t[x]):s.lstat(x,d)}function d(e,n){if(e)return r(e);if(!n.isSymbolicLink())return y[x]=!0,t&&(t[x]=x),process.nextTick(l);if(!i){var a=n.dev.toString(32)+":"+n.ino.toString(32);if(f.hasOwnProperty(a))return m(null,f[a],x)}s.stat(x,function(e){return e?r(e):void s.readlink(x,function(e,t){i||(f[a]=t),m(e,t)})})}function m(e,n,a){if(e)return r(e);var i=o.resolve(v,n);t&&(t[a]=i),g(i)}function g(t){e=o.resolve(t,e.slice(b)),n()}if("function"!=typeof r&&(r=a(t),t=null),e=o.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return process.nextTick(r.bind(null,null,t[e]));var h=e,f={},y={},b,S,x,v;n()}},66431:e=>{"use strict";var t=Array.prototype.slice,r=Object.prototype.toString;e.exports=function(e){var n=this;if("function"!=typeof n||r.call(n)!=="[object Function]")throw new TypeError("Function.prototype.bind called on incompatible "+n);for(var a=t.call(arguments,1),o=function(){if(this instanceof p){var r=n.apply(this,a.concat(t.call(arguments)));return Object(r)===r?r:this}return n.apply(e,a.concat(t.call(arguments)))},s=_Mathmax(0,n.length-a.length),l=[],d=0,p;d{"use strict";var n=r(66431);e.exports=Function.prototype.bind||n},15459:(e,t,r)=>{"use strict";const{PassThrough:n}=r(92413);e.exports=e=>{e={...e};const{array:t}=e;let{encoding:r}=e;const a="buffer"===r;let o=!1;t?o=!(r||a):r=r||"utf8",a&&(r=null);const i=new n({objectMode:o});r&&i.setEncoding(r);let s=0;const l=[];return i.on("data",e=>{l.push(e),o?s=l.length:s+=e.length}),i.getBufferedValue=()=>t?l:a?Buffer.concat(l,s):l.join(""),i.getBufferedLength=()=>s,i}},74205:(e,t,r)=>{"use strict";async function n(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};const{maxBuffer:r}=t;let n;return await new Promise((l,d)=>{const p=e=>{e&&n.getBufferedLength()<=a.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),d(e)};n=o(e,i(t),e=>e?void p(e):void l()),n.on("data",()=>{n.getBufferedLength()>r&&p(new s)})}),n.getBufferedValue()}const{constants:a}=r(64293),o=r(537),i=r(15459);class s extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}e.exports=n,e.exports.default=n,e.exports.buffer=(e,t)=>n(e,{...t,encoding:"buffer"}),e.exports.array=(e,t)=>n(e,{...t,array:!0}),e.exports.MaxBufferError=s},3589:(e,t,r)=>{function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function a(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())}function o(e,t){return e.localeCompare(t)}function i(e,t){e.ignore=t.ignore||[],Array.isArray(e.ignore)||(e.ignore=[e.ignore]),e.ignore.length&&(e.ignore=e.ignore.map(s))}function s(e){var t=null;if("/**"===e.slice(-3)){var r=e.replace(/(\/\*\*)+$/,"");t=new m(r,{dot:!0})}return{matcher:new m(e,{dot:!0}),gmatcher:t}}function l(e,t){var r=t;return r="/"===t.charAt(0)?p.join(e.root,t):u(t)||""===t?t:e.changedCwd?p.resolve(e.cwd,t):p.resolve(t),"win32"===process.platform&&(r=r.replace(/\\/g,"/")),r}function d(e,t){return!!e.ignore.length&&e.ignore.some(function(e){return e.matcher.match(t)||!!(e.gmatcher&&e.gmatcher.match(t))})}t.alphasort=o,t.alphasorti=a,t.setopts=function(e,t,r){if(r||(r={}),r.matchBase&&-1===t.indexOf("/")){if(r.noglobstar)throw new Error("base matching requires globstar");t="**/"+t}e.silent=!!r.silent,e.pattern=t,e.strict=!1!==r.strict,e.realpath=!!r.realpath,e.realpathCache=r.realpathCache||Object.create(null),e.follow=!!r.follow,e.dot=!!r.dot,e.mark=!!r.mark,e.nodir=!!r.nodir,e.nodir&&(e.mark=!0),e.sync=!!r.sync,e.nounique=!!r.nounique,e.nonull=!!r.nonull,e.nosort=!!r.nosort,e.nocase=!!r.nocase,e.stat=!!r.stat,e.noprocess=!!r.noprocess,e.absolute=!!r.absolute,e.maxLength=r.maxLength||1/0,e.cache=r.cache||Object.create(null),e.statCache=r.statCache||Object.create(null),e.symlinks=r.symlinks||Object.create(null),i(e,r),e.changedCwd=!1;var a=process.cwd();n(r,"cwd")?(e.cwd=p.resolve(r.cwd),e.changedCwd=e.cwd!==a):e.cwd=a,e.root=r.root||p.resolve(e.cwd,"/"),e.root=p.resolve(e.root),"win32"===process.platform&&(e.root=e.root.replace(/\\/g,"/")),e.cwdAbs=u(e.cwd)?e.cwd:l(e,e.cwd),"win32"===process.platform&&(e.cwdAbs=e.cwdAbs.replace(/\\/g,"/")),e.nomount=!!r.nomount,r.nonegate=!0,r.nocomment=!0,e.minimatch=new m(t,r),e.options=e.minimatch.options},t.ownProp=n,t.makeAbs=l,t.finish=function(t){for(var r=t.nounique,n=r?[]:Object.create(null),s=0,e=t.matches.length,p;s{function n(e,t,r){if("function"==typeof t&&(r=t,t={}),t||(t={}),t.sync){if(r)throw new TypeError("callback provided to sync glob");return f(e,t)}return new o(e,t,r)}function a(e,t){if(null===t||"object"!=typeof t)return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function o(e,t,r){function a(){--n._processing,0>=n._processing&&(l?process.nextTick(function(){n._finish()}):n._finish())}if("function"==typeof t&&(r=t,t=null),t&&t.sync){if(r)throw new TypeError("callback provided to sync glob");return new E(e,t)}if(!(this instanceof o))return new o(e,t,r);x(this,e,t),this._didRealPath=!1;var s=this.minimatch.set.length;this.matches=Array(s),"function"==typeof r&&(r=T(r),this.on("error",r),this.on("end",function(e){r(null,e)}));var n=this;if(this._processing=0,this._emitQueue=[],this._processQueue=[],this.paused=!1,this.noprocess)return this;if(0===s)return a();for(var l=!0,d=0;dthis.maxLength)return t();if(!this.stat&&v(this.cache,r)){var a=this.cache[r];if(Array.isArray(a)&&(a="DIR"),!n||"DIR"===a)return t(null,a);if(n&&"FILE"===a)return t()}var o=this.statCache[r];if(void 0!==o){if(!1===o)return t(null,o);var i=o.isDirectory()?"DIR":"FILE";return n&&"FILE"===i?t():t(null,i,o)}var l=this,d=k("stat\0"+r,function(n,a){return a&&a.isSymbolicLink()?s.stat(r,function(n,o){n?l._stat2(e,r,null,a,t):l._stat2(e,r,n,o,t)}):void l._stat2(e,r,n,a,t)});d&&s.lstat(r,d)},o.prototype._stat2=function(e,t,r,n,a){if(r&&("ENOENT"===r.code||"ENOTDIR"===r.code))return this.statCache[t]=!1,a();var o="/"===e.slice(-1);if(this.statCache[t]=n,"/"===t.slice(-1)&&n&&!n.isDirectory())return a(null,!1,n);var i=!0;return n&&(i=n.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||i,o&&"FILE"===i?a():a(null,i,n)}},6587:(e,t,r)=>{function n(e,t){if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");return new a(e,t).found}function a(e,t){if(!e)throw new Error("must provide pattern");if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof a))return new a(e,t);if(y(this,e,t),this.noprocess)return this;var r=this.minimatch.set.length;this.matches=Array(r);for(var n=0;nthis.maxLength)return!1;if(!this.stat&&b(this.cache,t)){var n=this.cache[t];if(Array.isArray(n)&&(n="DIR"),!r||"DIR"===n)return n;if(r&&"FILE"===n)return!1}var a=this.statCache[t];if(!a){var i;try{i=o.lstatSync(t)}catch(e){if(e&&("ENOENT"===e.code||"ENOTDIR"===e.code))return this.statCache[t]=!1,!1}if(i&&i.isSymbolicLink())try{a=o.statSync(t)}catch(e){a=i}else a=i}this.statCache[t]=a;var n=!0;return a&&(n=a.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||n,!(r&&"FILE"===n)&&n},a.prototype._mark=function(e){return g.mark(this,e)},a.prototype._makeAbs=function(e){return g.makeAbs(this,e)}},15542:e=>{"use strict";e.exports=(e,t)=>{t=t||process.argv;const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return-1!==n&&(-1===a||n{"use strict";var n=global.Symbol,a=r(3448);e.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&a()}},3448:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var a=Object.getOwnPropertyDescriptor(e,t);if(42!==a.value||!0!==a.enumerable)return!1}return!0}},98496:(e,t,r)=>{"use strict";var n=r(10373);e.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},75782:(e,t,r)=>{function n(e){if(!(this instanceof n))return new n(e);if("string"==typeof e&&(e=l.parse(e)),!e)throw new Error("an HTTP(S) proxy server `host` and `port` must be specified!");u("creating new HttpsProxyAgent instance: %o",e),p.call(this,e);var t=Object.assign({},e);this.secureProxy=!!t.protocol&&/^https:?$/i.test(t.protocol),t.host=t.hostname||t.host,t.port=+t.port||(this.secureProxy?443:80),this.secureProxy&&!("ALPNProtocols"in t)&&(t.ALPNProtocols=["http 1.1"]),t.host&&t.path&&(delete t.path,delete t.pathname),this.proxy=t}function a(e){e.resume()}function o(e,t){return!t&&80===e||t&&443===e}var i=r(11631),s=r(4016),l=r(78835),d=r(42357),p=r(67208),c=r(31669).inherits,u=r(35304)("https-proxy-agent");e.exports=n,c(n,p),n.prototype.callback=function(e,t,r){function n(){var e=y.read();e?g(e):y.once("readable",n)}function l(){y.removeListener("end",c),y.removeListener("error",m),y.removeListener("close",p),y.removeListener("readable",n)}function p(e){u("onclose had error %o",e)}function c(){u("onend")}function m(e){l(),r(e)}function g(o){S.push(o),x+=o.length;var d=Buffer.concat(S,x),p=d.toString("ascii");if(!~p.indexOf("\r\n\r\n"))return u("have not received end of HTTP headers yet..."),void n();var c=p.substring(0,p.indexOf("\r\n")),m=+c.split(" ")[1];if(u("got proxy server response: %o",c),200==m){var g=y;S=d=null,t.secureEndpoint&&(u("upgrading proxy-connected socket to TLS connection: %o",t.host),t.socket=y,t.servername=t.servername||t.host,t.host=null,t.hostname=null,t.port=null,g=s.connect(t)),l(),e.once("socket",a),r(null,g)}else l(),y.destroy(),y=new i.Socket,y.readable=!0,S=d,e.once("socket",h),r(null,y)}function h(e){u("replaying proxy buffer for failed request"),d(0{"use strict";function a(t){return /http(s)?:\/\/(\w+:?\w*@)?(\S+)(:\d+)?((?<=\.)\w+)+(\/([\w#!:.?+=&%@!\-/])*)?/gi.test(t)}function o(t){return /(?<=\S+)\.(jpg|png|jpeg)/gi.test(t)}function i(t){return t.toString("base64")}function s(a){var e=n(35747),r=n(85622);return e.statSync(a).isFile()?i(e.readFileSync(r.resolve(a)).toString("base64")):null}function l(t){return o(t)?Promise.resolve(s(t)):Promise.reject("[*] Occurent some error... [validTypeImage] == false")}e.exports=function(t){return a(t)?n(22434)(t).then(function(t){return t.buffer()}).then(i):l(t)}},13121:(e,t,r)=>{function n(e){return l(function t(){var r=s[e],n=r.length,o=a(arguments);try{for(var l=0;ln?(r.splice(0,n),process.nextTick(function(){t.apply(null,o)})):delete s[e]}})}function a(e){for(var t=e.length,r=[],n=0;n{try{var a=n(31669);if("function"!=typeof a.inherits)throw"";t.exports=a.inherits}catch(r){t.exports=n(99494)}},99494:e=>{e.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},80641:(e,t)=>{"use strict";/*! + */function n(e,r){var n;if(r.some(function(r){return n=t.resolveInclude(e,r,!0),g.existsSync(n)}))return n}function a(e,r){var a=r.views,o=/^[A-Za-z]+:\\|^\//.exec(e),i,s;if(o&&o.length)e=e.replace(/^\/*/,""),i=Array.isArray(r.root)?n(e,r.root):t.resolveInclude(e,r.root||"/",!0);else if(r.filename&&(s=t.resolveInclude(e,r.filename),g.existsSync(s)&&(i=s)),!i&&Array.isArray(a)&&(i=n(e,a)),!i&&"function"!=typeof r.includer)throw new Error("Could not find the include file \""+r.escapeFunction(e)+"\"");return i}function i(e,r){var n=e.filename,a=1> ":" ")+r+"| "+e}).join("\n");throw e.path=d,e.message=(d||"ejs")+":"+n+"\n"+p+"\n\n"+e.message,e}function u(e){return e.replace(/;(\s*$)/,"$1")}function m(e,r){r=r||{};var n={};this.templateText=e,this.mode=null,this.truncate=!1,this.currentLine=1,this.source="",n.client=r.client||!1,n.escapeFunction=r.escape||r.escapeFunction||h.escapeXML,n.compileDebug=!1!==r.compileDebug,n.debug=!!r.debug,n.filename=r.filename,n.openDelimiter=r.openDelimiter||t.openDelimiter||"<",n.closeDelimiter=r.closeDelimiter||t.closeDelimiter||">",n.delimiter=r.delimiter||t.delimiter||"%",n.strict=r.strict||!1,n.context=r.context,n.cache=r.cache||!1,n.rmWhitespace=r.rmWhitespace,n.root=r.root,n.includer=r.includer,n.outputFunctionName=r.outputFunctionName,n.localsName=r.localsName||t.localsName||"locals",n.views=r.views,n.async=r.async,n.destructuredLocals=r.destructuredLocals,n.legacyInclude="undefined"==typeof r.legacyInclude||!!r.legacyInclude,n._with=!n.strict&&("undefined"==typeof r._with||r._with),this.opts=n,this.regex=this.createRegex()}var g=r(35747),o=r(85622),h=r(74998),f=!1,y=r(52021).i8,b=["delimiter","scope","context","debug","compileDebug","client","_with","rmWhitespace","strict","filename","async"],S=b.concat("cache"),x=/^\uFEFF/;t.cache=h.cache,t.fileLoader=g.readFileSync,t.localsName="locals",t.promiseImpl=new Function("return this;")().Promise,t.resolveInclude=function(e,t,r){var n=o.dirname,a=o.extname,i=o.resolve,s=i(r?t:n(t),e),l=a(e);return l||(s+=".ejs"),s},t.compile=function(e,t){var r;return t&&t.scope&&(!f&&(console.warn("`scope` option is deprecated and will be removed in EJS 3"),f=!0),!t.context&&(t.context=t.scope),delete t.scope),r=new m(e,t),r.compile()},t.render=function(e,t,r){var n=t||{},a=r||{};return 2==arguments.length&&h.shallowCopyFromList(a,n,b),i(a,e)(n)},t.renderFile=function(){var e=Array.prototype.slice.call(arguments),t=e.shift(),r={filename:t},n,a,o;return"function"==typeof arguments[arguments.length-1]&&(n=e.pop()),e.length?(a=e.shift(),e.length?h.shallowCopy(r,e.pop()):(a.settings&&(a.settings.views&&(r.views=a.settings.views),a.settings["view cache"]&&(r.cache=!0),o=a.settings["view options"],o&&h.shallowCopy(r,o)),h.shallowCopyFromList(r,a,S)),r.filename=t):a={},s(r,a,n)},t.Template=m,t.clearCache=function(){t.cache.reset()},m.modes={EVAL:"eval",ESCAPED:"escaped",RAW:"raw",COMMENT:"comment",LITERAL:"literal"},m.prototype={createRegex:function(){var e="(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)",t=h.escapeRegExpChars(this.opts.delimiter),r=h.escapeRegExpChars(this.opts.openDelimiter),n=h.escapeRegExpChars(this.opts.closeDelimiter);return e=e.replace(/%/g,t).replace(//g,n),new RegExp(e)},compile:function(){var t=this.opts,r="",n="",a=t.escapeFunction,s,l,e;if(!this.source){if(this.generateSource(),r+=" var __output = \"\";\n function __append(s) { if (s !== undefined && s !== null) __output += s }\n",t.outputFunctionName&&(r+=" var "+t.outputFunctionName+" = __append;\n"),t.destructuredLocals&&t.destructuredLocals.length){for(var d=" var __locals = ("+t.localsName+" || {}),\n",u=0,m;u[ \t]*/gm,"_%>");var t=this,r=this.parseTemplateText(),n=this.opts.delimiter,a=this.opts.openDelimiter,o=this.opts.closeDelimiter;r&&r.length&&r.forEach(function(e,i){var s;if(0===e.indexOf(a+n)&&0!==e.indexOf(a+n+n)&&(s=r[i+2],s!=n+o&&s!="-"+n+o&&s!="_"+n+o))throw new Error("Could not find matching close tag for \""+e+"\".");t.scanLine(e)})},parseTemplateText:function(){for(var e=this.templateText,t=this.regex,r=t.exec(e),n=[],a;r;)a=r.index,0!==a&&(n.push(e.substring(0,a)),e=e.slice(a)),n.push(r[0]),e=e.slice(r[0].length),r=t.exec(e);return e&&n.push(e),n},_addOutput:function(e){return this.truncate&&(e=e.replace(/^(?:\r\n|\r|\n)/,""),this.truncate=!1),e?void(e=e.replace(/\\/g,"\\\\"),e=e.replace(/\n/g,"\\n"),e=e.replace(/\r/g,"\\r"),e=e.replace(/"/g,"\\\""),this.source+=" ; __append(\""+e+"\")\n"):e},scanLine:function(e){var t=this,r=this.opts.delimiter,n=this.opts.openDelimiter,a=this.opts.closeDelimiter,o=0;switch(o=e.split("\n").length-1,e){case n+r:case n+r+"_":this.mode=m.modes.EVAL;break;case n+r+"=":this.mode=m.modes.ESCAPED;break;case n+r+"-":this.mode=m.modes.RAW;break;case n+r+"#":this.mode=m.modes.COMMENT;break;case n+r+r:this.mode=m.modes.LITERAL,this.source+=" ; __append(\""+e.replace(n+r+r,n+r)+"\")\n";break;case r+r+a:this.mode=m.modes.LITERAL,this.source+=" ; __append(\""+e.replace(r+r+a,r+a)+"\")\n";break;case r+a:case"-"+r+a:case"_"+r+a:this.mode==m.modes.LITERAL&&this._addOutput(e),this.mode=null,this.truncate=0===e.indexOf("-")||0===e.indexOf("_");break;default:if(this.mode){switch(this.mode){case m.modes.EVAL:case m.modes.ESCAPED:case m.modes.RAW:e.lastIndexOf("//")>e.lastIndexOf("\n")&&(e+="\n");}switch(this.mode){case m.modes.EVAL:this.source+=" ; "+e+"\n";break;case m.modes.ESCAPED:this.source+=" ; __append(escapeFn("+u(e)+"))\n";break;case m.modes.RAW:this.source+=" ; __append("+u(e)+")\n";break;case m.modes.COMMENT:break;case m.modes.LITERAL:this._addOutput(e);}}else this._addOutput(e);}t.opts.compileDebug&&o&&(this.currentLine+=o,this.source+=" ; __line = "+this.currentLine+"\n")}},t.escapeXML=h.escapeXML,t.__express=t.renderFile,t.VERSION=y,t.name="ejs","undefined"!=typeof window&&(window.ejs=t)},74998:(e,t)=>{"use strict";function r(e){return n[e]||e}t.escapeRegExpChars=function(e){return e?(e+"").replace(/[|\\{}()[\]^$+*?.]/g,"\\$&"):""};var n={"&":"&","<":"<",">":">",'"':""","'":"'"};t.escapeXML=function(e){return null==e?"":(e+"").replace(/[&<>'"]/g,r)},t.escapeXML.toString=function(){return Function.prototype.toString.call(this)+";\n"+"var _ENCODE_HTML_RULES = {\n \"&\": \"&\"\n , \"<\": \"<\"\n , \">\": \">\"\n , '\"': \""\"\n , \"'\": \"'\"\n }\n , _MATCH_HTML = /[&<>'\"]/g;\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n};\n"},t.shallowCopy=function(e,t){for(var r in t=t||{},t)e[r]=t[r];return e},t.shallowCopyFromList=function(e,t,r){for(var n=0,a;n{var n=r(86343),a=function(){},o=function(e){return e.setHeader&&"function"==typeof e.abort},i=function(e){return e.stdio&&Array.isArray(e.stdio)&&3===e.stdio.length},s=function(e,t,r){if("function"==typeof t)return s(e,null,t);t||(t={}),r=n(r||a);var l=e._writableState,d=e._readableState,p=t.readable||!1!==t.readable&&e.readable,c=t.writable||!1!==t.writable&&e.writable,u=!1,m=function(){e.writable||g()},g=function(){c=!1,p||r.call(e)},h=function(){p=!1,c||r.call(e)},f=function(t){r.call(e,t?new Error("exited with error code: "+t):null)},y=function(t){r.call(e,t)},b=function(){process.nextTick(S)},S=function(){return u?void 0:p&&!(d&&d.ended&&!d.destroyed)?r.call(e,new Error("premature close")):c&&!(l&&l.ended&&!l.destroyed)?r.call(e,new Error("premature close")):void 0},x=function(){e.req.on("finish",g)};return o(e)?(e.on("complete",g),e.on("abort",b),e.req?x():e.on("request",x)):c&&!l&&(e.on("end",m),e.on("close",m)),i(e)&&e.on("exit",f),e.on("end",h),e.on("finish",g),!1!==t.error&&e.on("error",y),e.on("close",b),function(){u=!0,e.removeListener("complete",g),e.removeListener("abort",b),e.removeListener("request",x),e.req&&e.req.removeListener("finish",g),e.removeListener("end",m),e.removeListener("close",m),e.removeListener("finish",g),e.removeListener("exit",f),e.removeListener("end",h),e.removeListener("error",y),e.removeListener("close",b)}};e.exports=s},27235:function(e,t,r){"use strict";function n(e){var t=Object.keys(e).join("|"),r=a(e);t+="|#[xX][\\da-fA-F]+|#\\d+";var n=new RegExp("&(?:"+t+");","g");return function(e){return(e+"").replace(n,r)}}function a(e){return function(t){if("#"===t.charAt(1)){var r=t.charAt(2);return"X"===r||"x"===r?p.default(parseInt(t.substr(3),16)):p.default(parseInt(t.substr(2),10))}return e[t.slice(1,-1)]}}var o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.decodeHTML=t.decodeHTMLStrict=t.decodeXML=void 0;var s=o(r(20933)),l=o(r(19151)),d=o(r(44816)),p=o(r(62190));t.decodeXML=n(d.default),t.decodeHTMLStrict=n(s.default);var c=function(e,t){return e=e||1114111>>10),e=56320|1023&e),t+=_StringfromCharCode(e),t}var a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var o=a(r(93879));t.default=n},4414:function(e,t,r){"use strict";function n(e){return Object.keys(e).sort().reduce(function(t,r){return t[e[r]]="&"+r+";",t},{})}function a(e){for(var t=[],r=[],n=0,a=Object.keys(e),o;nl||t.splice(i,l,t[i]+"-"+t[s])}return r.unshift("["+t.join("")+"]"),new RegExp(r.join("|"),"g")}function o(e){return"&#x"+e.codePointAt(0).toString(16).toUpperCase()+";"}function i(e,t){return function(r){return r.replace(t,function(t){return e[t]}).replace(g,o)}}var s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.escape=t.encodeHTML=t.encodeXML=void 0;var l=s(r(44816)),d=n(l.default),p=a(d);t.encodeXML=i(d,p);var c=s(r(20933)),u=n(c.default),m=a(u);t.encodeHTML=i(u,m);var g=/(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,h=a(d);t.escape=function(e){return e.replace(h,o).replace(g,o)}},83982:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.decodeXMLStrict=t.decodeHTML5Strict=t.decodeHTML4Strict=t.decodeHTML5=t.decodeHTML4=t.decodeHTMLStrict=t.decodeHTML=t.decodeXML=t.encodeHTML5=t.encodeHTML4=t.escape=t.encodeHTML=t.encodeXML=t.encode=t.decodeStrict=t.decode=void 0;var n=r(27235),a=r(4414);t.decode=function(e,t){return(!t||0>=t?n.decodeXML:n.decodeHTML)(e)},t.decodeStrict=function(e,t){return(!t||0>=t?n.decodeXML:n.decodeHTMLStrict)(e)},t.encode=function(e,t){return(!t||0>=t?a.encodeXML:a.encodeHTML)(e)};var o=r(4414);Object.defineProperty(t,"encodeXML",{enumerable:!0,get:function(){return o.encodeXML}}),Object.defineProperty(t,"encodeHTML",{enumerable:!0,get:function(){return o.encodeHTML}}),Object.defineProperty(t,"escape",{enumerable:!0,get:function(){return o.escape}}),Object.defineProperty(t,"encodeHTML4",{enumerable:!0,get:function(){return o.encodeHTML}}),Object.defineProperty(t,"encodeHTML5",{enumerable:!0,get:function(){return o.encodeHTML}});var i=r(27235);Object.defineProperty(t,"decodeXML",{enumerable:!0,get:function(){return i.decodeXML}}),Object.defineProperty(t,"decodeHTML",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTMLStrict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML4",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTML5",{enumerable:!0,get:function(){return i.decodeHTML}}),Object.defineProperty(t,"decodeHTML4Strict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeHTML5Strict",{enumerable:!0,get:function(){return i.decodeHTMLStrict}}),Object.defineProperty(t,"decodeXMLStrict",{enumerable:!0,get:function(){return i.decodeXML}})},46909:(e,t,r)=>{const n=r(35304)("extract-zip"),{createWriteStream:a,promises:o}=r(35747),i=r(74205),s=r(85622),{promisify:l}=r(31669),d=r(92413),p=r(11790),c=l(p.open),u=l(d.pipeline);class m{constructor(e,t){this.zipPath=e,this.opts=t}async extract(){return n("opening",this.zipPath,"with opts",this.opts),this.zipfile=await c(this.zipPath,{lazyEntries:!0}),this.canceled=!1,new Promise((e,t)=>{this.zipfile.on("error",e=>{this.canceled=!0,t(e)}),this.zipfile.readEntry(),this.zipfile.on("close",()=>{this.canceled||(n("zip extraction complete"),e())}),this.zipfile.on("entry",async e=>{if(this.canceled)return void n("skipping entry",e.fileName,{cancelled:this.canceled});if(n("zipfile entry",e.fileName),e.fileName.startsWith("__MACOSX/"))return void this.zipfile.readEntry();const r=s.dirname(s.join(this.opts.dir,e.fileName));try{await o.mkdir(r,{recursive:!0});const t=await o.realpath(r),a=s.relative(this.opts.dir,t);if(a.split(s.sep).includes(".."))throw new Error(`Out of bound path "${t}" found while processing file ${e.fileName}`);await this.extractEntry(e),n("finished processing",e.fileName),this.zipfile.readEntry()}catch(e){this.canceled=!0,this.zipfile.close(),t(e)}})})}async extractEntry(e){if(this.canceled)return void n("skipping entry extraction",e.fileName,{cancelled:this.canceled});this.opts.onEntry&&this.opts.onEntry(e,this.zipfile);const t=s.join(this.opts.dir,e.fileName),r=65535&e.externalFileAttributes>>16,d=61440,p=(r&d)===40960;let c=(r&d)===16384;!c&&e.fileName.endsWith("/")&&(c=!0);const m=e.versionMadeBy>>8;c||(c=0===m&&16===e.externalFileAttributes),n("extracting entry",{filename:e.fileName,isDir:c,isSymlink:p});const g=511&this.getExtractedMode(r,c),h=c?t:s.dirname(t),f={recursive:!0};if(c&&(f.mode=g),n("mkdir",{dir:h,...f}),await o.mkdir(h,f),!c){n("opening read stream",t);const r=await l(this.zipfile.openReadStream.bind(this.zipfile))(e);if(p){const e=await i(r);n("creating symlink",e,t),await o.symlink(e,t)}else await u(r,a(t,{mode:g}))}}getExtractedMode(e,t){let r=e;return 0===r&&(t?(this.opts.defaultDirMode&&(r=parseInt(this.opts.defaultDirMode,10)),!r&&(r=493)):(this.opts.defaultFileMode&&(r=parseInt(this.opts.defaultFileMode,10)),!r&&(r=420))),r}}e.exports=async function(e,t){if(n("creating target directory",t.dir),!s.isAbsolute(t.dir))throw new Error("Target directory is expected to be absolute");return await o.mkdir(t.dir,{recursive:!0}),t.dir=await o.realpath(t.dir),new m(e,t).extract()}},84203:(e,t,r)=>{function n(e,t){t=t||{},g.call(this),this.fd=e,this.pend=new m,this.pend.max=1,this.refCount=0,this.autoClose=!!t.autoClose}function a(e,t){t=t||{},p.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=t.end,this.pos=this.start,this.destroyed=!1}function o(e,t){t=t||{},c.call(this,t),this.context=e,this.context.ref(),this.start=t.start||0,this.endOffset=null==t.end?1/0:+t.end,this.bytesWritten=0,this.pos=this.start,this.destroyed=!1,this.on("finish",this.destroy.bind(this))}function i(e,t){g.call(this),t=t||{},this.refCount=0,this.buffer=e,this.maxChunkSize=t.maxChunkSize||_NumberMAX_SAFE_INTEGER}var s=r(35747),l=r(31669),d=r(92413),p=d.Readable,c=d.Writable,u=d.PassThrough,m=r(1520),g=r(28614).EventEmitter;t.createFromBuffer=function(e,t){return new i(e,t)},t.createFromFd=function(e,t){return new n(e,t)},t.BufferSlicer=i,t.FdSlicer=n,l.inherits(n,g),n.prototype.read=function(e,t,r,n,a){var o=this;o.pend.go(function(i){s.read(o.fd,e,t,r,n,function(e,t,r){i(),a(e,t,r)})})},n.prototype.write=function(e,t,r,n,a){var o=this;o.pend.go(function(i){s.write(o.fd,e,t,r,n,function(e,t,r){i(),a(e,t,r)})})},n.prototype.createReadStream=function(e){return new a(this,e)},n.prototype.createWriteStream=function(e){return new o(this,e)},n.prototype.ref=function(){this.refCount+=1},n.prototype.unref=function(){function e(e){e?t.emit("error",e):t.emit("close")}var t=this;if(t.refCount-=1,!(0t.refCount)throw new Error("invalid unref");t.autoClose&&s.close(t.fd,e)}},l.inherits(a,p),a.prototype._read=function(e){var t=this;if(!t.destroyed){var r=_Mathmin(t._readableState.highWaterMark,e);return null!=t.endOffset&&(r=_Mathmin(r,t.endOffset-t.pos)),0>=r?(t.destroyed=!0,t.push(null),void t.context.unref()):void t.context.pend.go(function(e){if(t.destroyed)return e();var n=new Buffer(r);s.read(t.context.fd,n,0,r,t.pos,function(r,a){r?t.destroy(r):0===a?(t.destroyed=!0,t.push(null),t.context.unref()):(t.pos+=a,t.push(n.slice(0,a))),e()})})}},a.prototype.destroy=function(e){this.destroyed||(e=e||new Error("stream destroyed"),this.destroyed=!0,this.emit("error",e),this.context.unref())},l.inherits(o,c),o.prototype._write=function(e,t,r){var n=this;if(!n.destroyed){if(n.pos+e.length>n.endOffset){var a=new Error("maximum file length exceeded");return a.code="ETOOBIG",n.destroy(),void r(a)}n.context.pend.go(function(t){return n.destroyed?t():void s.write(n.context.fd,e,0,e.length,n.pos,function(e,a){e?(n.destroy(),t(),r(e)):(n.bytesWritten+=a,n.pos+=a,n.emit("progress"),t(),r())})})}},o.prototype.destroy=function(){this.destroyed||(this.destroyed=!0,this.context.unref())},l.inherits(i,g),i.prototype.read=function(e,t,r,n,a){var o=n+r,i=o-this.buffer.length,s=0=r.length){nr.endOffset){var i=new Error("maximum file length exceeded");return i.code="ETOOBIG",r.destroyed=!0,void a(i)}e.copy(t.buffer,r.pos,0,e.length),r.bytesWritten+=e.length,r.pos=o,r.emit("progress"),a()}},r.destroy=function(){r.destroyed=!0},r},i.prototype.ref=function(){this.refCount+=1},i.prototype.unref=function(){if(this.refCount-=1,0>this.refCount)throw new Error("invalid unref")}},20138:(e,t,r)=>{"use strict";const n=r(85622),a=r(90031),o=r(68719),i=Symbol("findUp.stop");e.exports=async(e,t={})=>{let r=n.resolve(t.cwd||"");const{root:o}=n.parse(r),s=[].concat(e),l=async t=>{if("function"!=typeof e)return a(s,t);const r=await e(t.cwd);return"string"==typeof r?a([r],t):r};for(;;){const e=await l({...t,cwd:r});if(e===i)return;if(e)return n.resolve(r,e);if(r===o)return;r=n.dirname(r)}},e.exports.sync=(e,t={})=>{let r=n.resolve(t.cwd||"");const{root:o}=n.parse(r),s=[].concat(e),l=t=>{if("function"!=typeof e)return a.sync(s,t);const r=e(t.cwd);return"string"==typeof r?a.sync([r],t):r};for(;;){const e=l({...t,cwd:r});if(e===i)return;if(e)return n.resolve(r,e);if(r===o)return;r=n.dirname(r)}},e.exports.exists=o,e.exports.sync.exists=o.sync,e.exports.stop=i},39597:(e,t,r)=>{var n;try{n=r(35304)("follow-redirects")}catch(e){n=function(){}}e.exports=n},75955:(e,t,r)=>{function n(e,t){h.call(this),this._sanitizeOptions(e),this._options=e,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],t&&this.on("response",t);var r=this;this._onNativeResponse=function(e){r._processResponse(e)},this._performRequest()}function a(e,t){clearTimeout(e._timeout),e._timeout=setTimeout(function(){e.emit("timeout")},t)}function o(){clearTimeout(this._timeout)}function i(e){var t={maxRedirects:21,maxBodyLength:10485760},r={};return Object.keys(e).forEach(function(a){var o=a+":",i=r[o]=e[a],s=t[a]=Object.create(i);s.request=function(e,a,i){if("string"==typeof e){var s=e;try{e=l(new u(s))}catch(t){e=c.parse(s)}}else u&&e instanceof u?e=l(e):(i=a,a=e,e={protocol:o});return"function"==typeof a&&(i=a,a=null),a=Object.assign({maxRedirects:t.maxRedirects,maxBodyLength:t.maxBodyLength},e,a),a.nativeProtocols=r,f.equal(a.protocol,o,"protocol mismatch"),y("options",a),new n(a,i)},s.get=function(e,t,r){var n=s.request(e,t,r);return n.end(),n}}),t}function s(){}function l(e){var t={protocol:e.protocol,hostname:e.hostname.startsWith("[")?e.hostname.slice(1,-1):e.hostname,hash:e.hash,search:e.search,pathname:e.pathname,path:e.pathname+e.search,href:e.href};return""!==e.port&&(t.port=+e.port),t}function d(e,t){var r;for(var n in t)e.test(n)&&(r=t[n],delete t[n]);return r}function p(e,t){function r(e){Error.captureStackTrace(this,this.constructor),this.message=e||t}return r.prototype=new Error,r.prototype.constructor=r,r.prototype.name="Error ["+e+"]",r.prototype.code=e,r}var c=r(78835),u=c.URL,m=r(98605),g=r(57211),h=r(92413).Writable,f=r(42357),y=r(39597),b=Object.create(null);["abort","aborted","connect","error","socket","timeout"].forEach(function(e){b[e]=function(t,r,n){this._redirectable.emit(e,t,r,n)}});var S=p("ERR_FR_REDIRECTION_FAILURE",""),x=p("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded"),v=p("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),k=p("ERR_STREAM_WRITE_AFTER_END","write after end");n.prototype=Object.create(h.prototype),n.prototype.write=function(e,t,r){if(this._ending)throw new k;if(!("string"==typeof e||"object"==typeof e&&"length"in e))throw new TypeError("data should be a string, Buffer or Uint8Array");return"function"==typeof t&&(r=t,t=null),0===e.length?void(r&&r()):void(this._requestBodyLength+e.length<=this._options.maxBodyLength?(this._requestBodyLength+=e.length,this._requestBodyBuffers.push({data:e,encoding:t}),this._currentRequest.write(e,t,r)):(this.emit("error",new v),this.abort()))},n.prototype.end=function(e,t,r){if("function"==typeof e?(r=e,e=t=null):"function"==typeof t&&(r=t,t=null),!e)this._ended=this._ending=!0,this._currentRequest.end(null,null,r);else{var n=this,a=this._currentRequest;this.write(e,t,function(){n._ended=!0,a.end(null,null,r)}),this._ending=!0}},n.prototype.setHeader=function(e,t){this._options.headers[e]=t,this._currentRequest.setHeader(e,t)},n.prototype.removeHeader=function(e){delete this._options.headers[e],this._currentRequest.removeHeader(e)},n.prototype.setTimeout=function(e,t){if(t&&this.once("timeout",t),this.socket)a(this,e);else{var r=this;this._currentRequest.once("socket",function(){a(r,e)})}return this.once("response",o),this.once("error",o),this},["abort","flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(e){n.prototype[e]=function(t,r){return this._currentRequest[e](t,r)}}),["aborted","connection","socket"].forEach(function(e){Object.defineProperty(n.prototype,e,{get:function(){return this._currentRequest[e]}})}),n.prototype._sanitizeOptions=function(e){if(e.headers||(e.headers={}),e.host&&(!e.hostname&&(e.hostname=e.host),delete e.host),!e.pathname&&e.path){var t=e.path.indexOf("?");0>t?e.pathname=e.path:(e.pathname=e.path.substring(0,t),e.search=e.path.substring(t))}},n.prototype._performRequest=function(){var e=this._options.protocol,t=this._options.nativeProtocols[e];if(!t)return void this.emit("error",new TypeError("Unsupported protocol "+e));if(this._options.agents){var r=e.substr(0,e.length-1);this._options.agent=this._options.agents[r]}var n=this._currentRequest=t.request(this._options,this._onNativeResponse);for(var a in this._currentUrl=c.format(this._options),n._redirectable=this,b)a&&n.on(a,b[a]);if(this._isRedirect){var o=0,s=this,l=this._requestBodyBuffers;(function e(t){if(n===s._currentRequest)if(t)s.emit("error",t);else if(ot){if(this._currentRequest.removeAllListeners(),this._currentRequest.on("error",s),this._currentRequest.abort(),e.destroy(),++this._redirectCount>this._options.maxRedirects)return void this.emit("error",new x);(301!==t&&302!==t||"POST"!==this._options.method)&&(303!==t||/^(?:GET|HEAD)$/.test(this._options.method))||(this._options.method="GET",this._requestBodyBuffers=[],d(/^content-/i,this._options.headers));var n=d(/^host$/i,this._options.headers)||c.parse(this._currentUrl).hostname,a=c.resolve(this._currentUrl,r);y("redirecting to",a),this._isRedirect=!0;var o=c.parse(a);if(Object.assign(this._options,o),o.hostname!==n&&d(/^authorization$/i,this._options.headers),"function"==typeof this._options.beforeRedirect){var i={headers:e.headers};try{this._options.beforeRedirect.call(null,this._options,i)}catch(e){return void this.emit("error",e)}this._sanitizeOptions(this._options)}try{this._performRequest()}catch(e){var l=new S("Redirected request failed: "+e.message);l.cause=e,this.emit("error",l)}}else e.responseUrl=this._currentUrl,e.redirects=this._redirects,this.emit("response",e),this._requestBodyBuffers=[]},e.exports=i({http:m,https:g}),e.exports.wrap=i},21760:(e,t,r)=>{e.exports=r(35747).constants||r(27619)},52755:(e,t,r)=>{function n(e){return e&&"realpath"===e.syscall&&("ELOOP"===e.code||"ENOMEM"===e.code||"ENAMETOOLONG"===e.code)}function a(e,t,r){return c?s(e,t,r):void("function"==typeof t&&(r=t,t=null),s(e,t,function(a,o){n(a)?u.realpath(e,t,r):r(a,o)}))}function o(e,t){if(c)return l(e,t);try{return l(e,t)}catch(r){if(n(r))return u.realpathSync(e,t);throw r}}e.exports=a,a.realpath=a,a.sync=o,a.realpathSync=o,a.monkeypatch=function(){i.realpath=a,i.realpathSync=o},a.unmonkeypatch=function(){i.realpath=s,i.realpathSync=l};var i=r(35747),s=i.realpath,l=i.realpathSync,d=process.version,c=/^v[0-5]\./.test(d),u=r(21846)},21846:(e,t,r)=>{function n(){function e(e){e&&(n.message=e.message,e=n,t(e))}function t(e){if(e)if(process.throwDeprecation)throw e;else if(!process.noDeprecation){var t="fs: missing callback "+(e.stack||e.message);process.traceDeprecation?console.trace(t):console.error(t)}}var r;if(l){var n=new Error;r=e}else r=t;return r}function a(e){return"function"==typeof e?e:n()}var o=r(85622),i="win32"===process.platform,s=r(35747),l=process.env.NODE_DEBUG&&/fs/.test(process.env.NODE_DEBUG),d=o.normalize;if(i)var c=/(.*?)(?:[\/\\]+|$)/g;else var c=/(.*?)(?:[\/]+|$)/g;if(i)var u=/^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/;else var u=/^[\/]*/;t.realpathSync=function(e,t){function r(){var t=u.exec(e);d=t[0].length,g=t[0],h=t[0],f="",i&&!l[h]&&(s.lstatSync(h),l[h]=!0)}if(e=o.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return t[e];var n=e,a={},l={},d,g,h,f;for(r();d=e.length)return t&&(t[h]=e),r(null,e);c.lastIndex=b;var n=c.exec(e);return v=S,S+=n[0],x=v+n[1],b=c.lastIndex,y[x]||t&&t[x]===x?process.nextTick(l):t&&Object.prototype.hasOwnProperty.call(t,x)?g(t[x]):s.lstat(x,d)}function d(e,n){if(e)return r(e);if(!n.isSymbolicLink())return y[x]=!0,t&&(t[x]=x),process.nextTick(l);if(!i){var a=n.dev.toString(32)+":"+n.ino.toString(32);if(f.hasOwnProperty(a))return m(null,f[a],x)}s.stat(x,function(e){return e?r(e):void s.readlink(x,function(e,t){i||(f[a]=t),m(e,t)})})}function m(e,n,a){if(e)return r(e);var i=o.resolve(v,n);t&&(t[a]=i),g(i)}function g(t){e=o.resolve(t,e.slice(b)),n()}if("function"!=typeof r&&(r=a(t),t=null),e=o.resolve(e),t&&Object.prototype.hasOwnProperty.call(t,e))return process.nextTick(r.bind(null,null,t[e]));var h=e,f={},y={},b,S,x,v;n()}},66431:e=>{"use strict";var t=Array.prototype.slice,r=Object.prototype.toString;e.exports=function(e){var n=this;if("function"!=typeof n||r.call(n)!=="[object Function]")throw new TypeError("Function.prototype.bind called on incompatible "+n);for(var a=t.call(arguments,1),o=function(){if(this instanceof p){var r=n.apply(this,a.concat(t.call(arguments)));return Object(r)===r?r:this}return n.apply(e,a.concat(t.call(arguments)))},s=_Mathmax(0,n.length-a.length),l=[],d=0,p;d{"use strict";var n=r(66431);e.exports=Function.prototype.bind||n},15459:(e,t,r)=>{"use strict";const{PassThrough:n}=r(92413);e.exports=e=>{e={...e};const{array:t}=e;let{encoding:r}=e;const a="buffer"===r;let o=!1;t?o=!(r||a):r=r||"utf8",a&&(r=null);const i=new n({objectMode:o});r&&i.setEncoding(r);let s=0;const l=[];return i.on("data",e=>{l.push(e),o?s=l.length:s+=e.length}),i.getBufferedValue=()=>t?l:a?Buffer.concat(l,s):l.join(""),i.getBufferedLength=()=>s,i}},74205:(e,t,r)=>{"use strict";async function n(e,t){if(!e)return Promise.reject(new Error("Expected a stream"));t={maxBuffer:1/0,...t};const{maxBuffer:r}=t;let n;return await new Promise((l,d)=>{const p=e=>{e&&n.getBufferedLength()<=a.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),d(e)};n=o(e,i(t),e=>e?void p(e):void l()),n.on("data",()=>{n.getBufferedLength()>r&&p(new s)})}),n.getBufferedValue()}const{constants:a}=r(64293),o=r(537),i=r(15459);class s extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}}e.exports=n,e.exports.default=n,e.exports.buffer=(e,t)=>n(e,{...t,encoding:"buffer"}),e.exports.array=(e,t)=>n(e,{...t,array:!0}),e.exports.MaxBufferError=s},3589:(e,t,r)=>{function n(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function a(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())}function o(e,t){return e.localeCompare(t)}function i(e,t){e.ignore=t.ignore||[],Array.isArray(e.ignore)||(e.ignore=[e.ignore]),e.ignore.length&&(e.ignore=e.ignore.map(s))}function s(e){var t=null;if("/**"===e.slice(-3)){var r=e.replace(/(\/\*\*)+$/,"");t=new m(r,{dot:!0})}return{matcher:new m(e,{dot:!0}),gmatcher:t}}function l(e,t){var r=t;return r="/"===t.charAt(0)?p.join(e.root,t):u(t)||""===t?t:e.changedCwd?p.resolve(e.cwd,t):p.resolve(t),"win32"===process.platform&&(r=r.replace(/\\/g,"/")),r}function d(e,t){return!!e.ignore.length&&e.ignore.some(function(e){return e.matcher.match(t)||!!(e.gmatcher&&e.gmatcher.match(t))})}t.alphasort=o,t.alphasorti=a,t.setopts=function(e,t,r){if(r||(r={}),r.matchBase&&-1===t.indexOf("/")){if(r.noglobstar)throw new Error("base matching requires globstar");t="**/"+t}e.silent=!!r.silent,e.pattern=t,e.strict=!1!==r.strict,e.realpath=!!r.realpath,e.realpathCache=r.realpathCache||Object.create(null),e.follow=!!r.follow,e.dot=!!r.dot,e.mark=!!r.mark,e.nodir=!!r.nodir,e.nodir&&(e.mark=!0),e.sync=!!r.sync,e.nounique=!!r.nounique,e.nonull=!!r.nonull,e.nosort=!!r.nosort,e.nocase=!!r.nocase,e.stat=!!r.stat,e.noprocess=!!r.noprocess,e.absolute=!!r.absolute,e.maxLength=r.maxLength||1/0,e.cache=r.cache||Object.create(null),e.statCache=r.statCache||Object.create(null),e.symlinks=r.symlinks||Object.create(null),i(e,r),e.changedCwd=!1;var a=process.cwd();n(r,"cwd")?(e.cwd=p.resolve(r.cwd),e.changedCwd=e.cwd!==a):e.cwd=a,e.root=r.root||p.resolve(e.cwd,"/"),e.root=p.resolve(e.root),"win32"===process.platform&&(e.root=e.root.replace(/\\/g,"/")),e.cwdAbs=u(e.cwd)?e.cwd:l(e,e.cwd),"win32"===process.platform&&(e.cwdAbs=e.cwdAbs.replace(/\\/g,"/")),e.nomount=!!r.nomount,r.nonegate=!0,r.nocomment=!0,e.minimatch=new m(t,r),e.options=e.minimatch.options},t.ownProp=n,t.makeAbs=l,t.finish=function(t){for(var r=t.nounique,n=r?[]:Object.create(null),s=0,e=t.matches.length,p;s{function n(e,t,r){if("function"==typeof t&&(r=t,t={}),t||(t={}),t.sync){if(r)throw new TypeError("callback provided to sync glob");return f(e,t)}return new o(e,t,r)}function a(e,t){if(null===t||"object"!=typeof t)return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}function o(e,t,r){function a(){--n._processing,0>=n._processing&&(l?process.nextTick(function(){n._finish()}):n._finish())}if("function"==typeof t&&(r=t,t=null),t&&t.sync){if(r)throw new TypeError("callback provided to sync glob");return new E(e,t)}if(!(this instanceof o))return new o(e,t,r);x(this,e,t),this._didRealPath=!1;var s=this.minimatch.set.length;this.matches=Array(s),"function"==typeof r&&(r=T(r),this.on("error",r),this.on("end",function(e){r(null,e)}));var n=this;if(this._processing=0,this._emitQueue=[],this._processQueue=[],this.paused=!1,this.noprocess)return this;if(0===s)return a();for(var l=!0,d=0;dthis.maxLength)return t();if(!this.stat&&v(this.cache,r)){var a=this.cache[r];if(Array.isArray(a)&&(a="DIR"),!n||"DIR"===a)return t(null,a);if(n&&"FILE"===a)return t()}var o=this.statCache[r];if(void 0!==o){if(!1===o)return t(null,o);var i=o.isDirectory()?"DIR":"FILE";return n&&"FILE"===i?t():t(null,i,o)}var l=this,d=k("stat\0"+r,function(n,a){return a&&a.isSymbolicLink()?s.stat(r,function(n,o){n?l._stat2(e,r,null,a,t):l._stat2(e,r,n,o,t)}):void l._stat2(e,r,n,a,t)});d&&s.lstat(r,d)},o.prototype._stat2=function(e,t,r,n,a){if(r&&("ENOENT"===r.code||"ENOTDIR"===r.code))return this.statCache[t]=!1,a();var o="/"===e.slice(-1);if(this.statCache[t]=n,"/"===t.slice(-1)&&n&&!n.isDirectory())return a(null,!1,n);var i=!0;return n&&(i=n.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||i,o&&"FILE"===i?a():a(null,i,n)}},6587:(e,t,r)=>{function n(e,t){if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");return new a(e,t).found}function a(e,t){if(!e)throw new Error("must provide pattern");if("function"==typeof t||3===arguments.length)throw new TypeError("callback provided to sync glob\nSee: https://github.com/isaacs/node-glob/issues/167");if(!(this instanceof a))return new a(e,t);if(y(this,e,t),this.noprocess)return this;var r=this.minimatch.set.length;this.matches=Array(r);for(var n=0;nthis.maxLength)return!1;if(!this.stat&&b(this.cache,t)){var n=this.cache[t];if(Array.isArray(n)&&(n="DIR"),!r||"DIR"===n)return n;if(r&&"FILE"===n)return!1}var a=this.statCache[t];if(!a){var i;try{i=o.lstatSync(t)}catch(e){if(e&&("ENOENT"===e.code||"ENOTDIR"===e.code))return this.statCache[t]=!1,!1}if(i&&i.isSymbolicLink())try{a=o.statSync(t)}catch(e){a=i}else a=i}this.statCache[t]=a;var n=!0;return a&&(n=a.isDirectory()?"DIR":"FILE"),this.cache[t]=this.cache[t]||n,!(r&&"FILE"===n)&&n},a.prototype._mark=function(e){return g.mark(this,e)},a.prototype._makeAbs=function(e){return g.makeAbs(this,e)}},15542:e=>{"use strict";e.exports=(e,t)=>{t=t||process.argv;const r=e.startsWith("-")?"":1===e.length?"-":"--",n=t.indexOf(r+e),a=t.indexOf("--");return-1!==n&&(-1===a||n{"use strict";var n=global.Symbol,a=r(3448);e.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&a()}},3448:e=>{"use strict";e.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var e={},t=Symbol("test"),r=Object(t);if("string"==typeof t)return!1;if("[object Symbol]"!==Object.prototype.toString.call(t))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(t in e[t]=42,e)return!1;if("function"==typeof Object.keys&&0!==Object.keys(e).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(e).length)return!1;var n=Object.getOwnPropertySymbols(e);if(1!==n.length||n[0]!==t)return!1;if(!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var a=Object.getOwnPropertyDescriptor(e,t);if(42!==a.value||!0!==a.enumerable)return!1}return!0}},98496:(e,t,r)=>{"use strict";var n=r(10373);e.exports=n.call(Function.call,Object.prototype.hasOwnProperty)},75782:(e,t,r)=>{function n(e){if(!(this instanceof n))return new n(e);if("string"==typeof e&&(e=l.parse(e)),!e)throw new Error("an HTTP(S) proxy server `host` and `port` must be specified!");u("creating new HttpsProxyAgent instance: %o",e),p.call(this,e);var t=Object.assign({},e);this.secureProxy=!!t.protocol&&/^https:?$/i.test(t.protocol),t.host=t.hostname||t.host,t.port=+t.port||(this.secureProxy?443:80),this.secureProxy&&!("ALPNProtocols"in t)&&(t.ALPNProtocols=["http 1.1"]),t.host&&t.path&&(delete t.path,delete t.pathname),this.proxy=t}function a(e){e.resume()}function o(e,t){return!t&&80===e||t&&443===e}var i=r(11631),s=r(4016),l=r(78835),d=r(42357),p=r(67208),c=r(31669).inherits,u=r(35304)("https-proxy-agent");e.exports=n,c(n,p),n.prototype.callback=function(e,t,r){function n(){var e=y.read();e?g(e):y.once("readable",n)}function l(){y.removeListener("end",c),y.removeListener("error",m),y.removeListener("close",p),y.removeListener("readable",n)}function p(e){u("onclose had error %o",e)}function c(){u("onend")}function m(e){l(),r(e)}function g(o){S.push(o),x+=o.length;var d=Buffer.concat(S,x),p=d.toString("ascii");if(!~p.indexOf("\r\n\r\n"))return u("have not received end of HTTP headers yet..."),void n();var c=p.substring(0,p.indexOf("\r\n")),m=+c.split(" ")[1];if(u("got proxy server response: %o",c),200==m){var g=y;S=d=null,t.secureEndpoint&&(u("upgrading proxy-connected socket to TLS connection: %o",t.host),t.socket=y,t.servername=t.servername||t.host,t.host=null,t.hostname=null,t.port=null,g=s.connect(t)),l(),e.once("socket",a),r(null,g)}else l(),y.destroy(),y=new i.Socket,y.readable=!0,S=d,e.once("socket",h),r(null,y)}function h(e){u("replaying proxy buffer for failed request"),d(0{"use strict";function a(t){return /http(s)?:\/\/(\w+:?\w*@)?(\S+)(:\d+)?((?<=\.)\w+)+(\/([\w#!:.?+=&%@!\-/])*)?/gi.test(t)}function o(t){return /(?<=\S+)\.(jpg|png|jpeg)/gi.test(t)}function i(t){return t.toString("base64")}function s(a){var e=n(35747),r=n(85622);return e.statSync(a).isFile()?i(e.readFileSync(r.resolve(a)).toString("base64")):null}function l(t){return o(t)?Promise.resolve(s(t)):Promise.reject("[*] Occurent some error... [validTypeImage] == false")}e.exports=function(t){return a(t)?n(22434)(t).then(function(t){return t.buffer()}).then(i):l(t)}},13121:(e,t,r)=>{function n(e){return l(function t(){var r=s[e],n=r.length,o=a(arguments);try{for(var l=0;ln?(r.splice(0,n),process.nextTick(function(){t.apply(null,o)})):delete s[e]}})}function a(e){for(var t=e.length,r=[],n=0;n{try{var a=n(31669);if("function"!=typeof a.inherits)throw"";t.exports=a.inherits}catch(r){t.exports=n(99494)}},99494:e=>{e.exports="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},80641:(e,t)=>{"use strict";/*! * is-plain-object * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. - */function r(e){return"[object Object]"===Object.prototype.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPlainObject=function(e){var t,n;return!1!==r(e)&&((t=e.constructor,void 0===t)||(n=t.prototype,!1!==r(n)&&!1!==n.hasOwnProperty("isPrototypeOf")))}},31894:(e,t,r)=>{"use strict";var n=r(7158);e.exports=n},7158:(e,t,r)=>{"use strict";function n(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var a=r(3434),o=r(86156);e.exports.Type=r(78099),e.exports.Schema=r(58126),e.exports.FAILSAFE_SCHEMA=r(21712),e.exports.JSON_SCHEMA=r(75698),e.exports.CORE_SCHEMA=r(11277),e.exports.DEFAULT_SAFE_SCHEMA=r(23713),e.exports.DEFAULT_FULL_SCHEMA=r(17028),e.exports.load=a.load,e.exports.loadAll=a.loadAll,e.exports.safeLoad=a.safeLoad,e.exports.safeLoadAll=a.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=r(41030),e.exports.MINIMAL_SCHEMA=r(21712),e.exports.SAFE_SCHEMA=r(23713),e.exports.DEFAULT_SCHEMA=r(17028),e.exports.scan=n("scan"),e.exports.parse=n("parse"),e.exports.compose=n("compose"),e.exports.addConstructor=n("addConstructor")},39990:e=>{"use strict";function t(e){return"undefined"==typeof e||null===e}e.exports.isNothing=t,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:t(e)?[]:[e]},e.exports.repeat=function(e,t){var r="",n;for(n=0;n{"use strict";function n(e,t){var r,n,a,o,i,s,l;if(null===t)return{};for(r={},n=Object.keys(t),(a=0,o=n.length);a=e)r="x",n=2;else if(65535>=e)r="u",n=4;else if(4294967295>=e)r="U",n=8;else throw new R("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+z.repeat("0",n-t.length)+t}function o(e){this.schema=e.schema||M,this.indent=_Mathmax(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=z.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=n(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function i(e,t){for(var r=z.repeat(" ",t),n=0,a=-1,o="",i=e.length,s;n=e||161<=e&&55295>=e&&8232!==e&&8233!==e||57344<=e&&65533>=e&&65279!==e||65536<=e&&1114111>=e}function u(e){return p(e)&&!d(e)&&65279!==e&&13!==e&&10!==e}function m(e,t){return p(e)&&65279!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&58!==e&&(35!==e||t&&u(t))}function g(e){return p(e)&&65279!==e&&!d(e)&&45!==e&&63!==e&&58!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&35!==e&&38!==e&&42!==e&&33!==e&&124!==e&&61!==e&&62!==e&&39!==e&&34!==e&&37!==e&&64!==e&&96!==e}function h(e){return /^\n* /.test(e)}function f(e,t,r,n,a){var o=!1,s=!1,l=-1!==n,c=-1,u=g(e.charCodeAt(0))&&!d(e.charCodeAt(e.length-1)),f,y,b;if(t)for(f=0;fn&&" "!==e[c+1],c=f);else if(!p(y))return 5;b=0n&&" "!==e[c+1]}return o||s?9=e.flowLevel;switch(f(t,d,e.indent,s,a)){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+b(t,e.indent)+S(i(t,o));case 4:return">"+b(t,e.indent)+S(i(x(t,s),o));case 5:return"\""+k(t,s)+"\"";default:throw new R("impossible error: invalid scalar style");}}()}function b(e,t){var r=h(e)?t+"":"",n="\n"===e[e.length-1],a=n&&("\n"===e[e.length-2]||"\n"===e),o=a?"+":n?"":"-";return r+o+"\n"}function S(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function x(e,t){for(var r=/(\n+)([^\n]*)/g,n=function(){var n=e.indexOf("\n");return n=-1===n?e.length:n,r.lastIndex=n,v(e.slice(0,n),t)}(),a="\n"===e[0]||" "===e[0],o,i;i=r.exec(e);){var s=i[1],l=i[2];o=" "===l[0],n+=s+(a||o||""===l?"":"\n")+v(l,t),a=o}return n}function v(e,t){if(""===e||" "===e[0])return e;for(var r=0,n=0,a=0,o="",i,s;i=/ [^ ]/g.exec(e);)a=i.index,a-r>t&&(s=n>r?n:a,o+="\n"+e.slice(r,s),r=s+1),n=a;return o+="\n",o+=e.length-r>t&&n>r?e.slice(r,n)+"\n"+e.slice(n+1):e.slice(r),o.slice(1)}function k(e){for(var t="",r=0,n,o,s;r=n&&(o=e.charCodeAt(r+1),56320<=o&&57343>=o)){t+=a(1024*(n-55296)+o-56320+65536),r++;continue}s=B[n],t+=!s&&p(n)?e[r]:s||a(n)}return t}function C(e,t,r){var n="",a=e.tag,o,i;for(o=0,i=r.length;o tag resolver accepts not \""+l+"\" style");e.dump=n}return!0}return!1}function A(e,t,r,n,a,o){e.tag=null,e.dump=r,E(e,r,!1)||E(e,r,!0);var i=W.call(e.dump);n&&(n=0>e.flowLevel||e.flowLevel>t);var s="[object Object]"===i||"[object Array]"===i,l,d;if(s&&(l=e.duplicates.indexOf(r),d=-1!==l),(null!==e.tag&&"?"!==e.tag||d||2!==e.indent&&0 "+e.dump)}return!0}function O(e,t){var r=[],n=[],a,o;for(P(e,r,n),a=0,o=n.length;a{"use strict";function t(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=t},3434:(e,t,r)=>{"use strict";function n(e){return Object.prototype.toString.call(e)}function a(e){return 10===e||13===e}function o(e){return 9===e||32===e}function s(e){return 9===e||32===e||10===e||13===e}function l(e){return 44===e||91===e||93===e||123===e||125===e}function d(e){var t;return 48<=e&&57>=e?e-48:(t=32|e,97<=t&&102>=t?t-97+10:-1)}function p(e){return 120===e?2:117===e?4:85===e?8:0}function c(e){return 48<=e&&57>=e?e-48:-1}function u(e){return 48===e?"\0":97===e?"\x07":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\x0B":102===e?"\f":114===e?"\r":101===e?"\x1B":32===e?" ":34===e?"\"":47===e?"/":92===e?"\\":78===e?"\x85":95===e?"\xA0":76===e?"\u2028":80===e?"\u2029":""}function m(e){return 65535>=e?_StringfromCharCode(e):_StringfromCharCode((e-65536>>10)+55296,(1023&e-65536)+56320)}function g(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||j,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function h(e,t){return new F(t,new G(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function f(e,t){throw h(e,t)}function y(e,t){e.onWarning&&e.onWarning.call(null,h(e,t))}function b(e,t,r,n){var a,o,i,s;if(t=i||f(e,"expected valid JSON character");else V.test(s)&&f(e,"the stream contains non-printable characters");e.result+=s}}function S(e,t,r,n){var a,o,i,s;for(D.isObject(r)||f(e,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),(i=0,s=a.length);i=t){m=!0,y=e.input.charCodeAt(e.position);continue}else{e.position=u,e.line=g,e.lineStart=h,e.lineIndent=f;break}m&&(b(e,c,u,!1),_(e,e.line-g),c=u=e.position,m=!1),o(y)||(u=e.position+1),y=e.input.charCodeAt(++e.position)}return(b(e,c,u,!1),!!e.result)||(e.kind=n,e.result=i,!1)}function T(e,t){var r,n,o;if(r=e.input.charCodeAt(e.position),39!==r)return!1;for(e.kind="scalar",e.result="",e.position++,n=o=e.position;0!==(r=e.input.charCodeAt(e.position));)if(39!==r)a(r)?(b(e,n,o,!0),_(e,k(e,!1,t)),n=o=e.position):e.position===e.lineStart&&C(e)?f(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);else if(b(e,n,e.position,!0),r=e.input.charCodeAt(++e.position),39===r)n=e.position,e.position++,o=e.position;else return!0;f(e,"unexpected end of the stream within a single quoted scalar")}function E(e,t){var r,n,o,i,s,l;if(l=e.input.charCodeAt(e.position),34!==l)return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return b(e,r,e.position,!0),e.position++,!0;if(92===l){if(b(e,r,e.position,!0),l=e.input.charCodeAt(++e.position),a(l))k(e,!1,t);else if(256>l&&J[l])e.result+=$[l],e.position++;else if(0<(s=p(l))){for(o=s,i=0;0s&&(s=e.lineIndent),a(g)){l++;continue}if(e.lineIndentt)&&0!==d)f(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(I(e,t,4,!0,h)&&(u?p=e.result:c=e.result),!u&&(x(e,i,l,d,p,c,y,b),d=p=c=null),k(e,!0,-1),S=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==S)f(e,"bad indentation of a mapping entry");else if(e.lineIndentt?o=1:e.lineIndent===t?o=0:e.lineIndentt?o=1:e.lineIndent===t?o=0:e.lineIndent tag; it should be \"scalar\", not \""+e.kind+"\""),c=0,u=e.implicitTypes.length;c tag; it should be \""+m.kind+"\", not \""+e.kind+"\""),m.resolve(e.result)?(e.result=m.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):f(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):f(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||s}function W(e){var t=e.position,r=!1,n,i,l,d;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(d=e.input.charCodeAt(e.position))&&(k(e,!0,-1),d=e.input.charCodeAt(e.position),!(0i.length&&f(e,"directive name must not be less than one character in length");0!==d;){for(;o(d);)d=e.input.charCodeAt(++e.position);if(35===d){do d=e.input.charCodeAt(++e.position);while(0!==d&&!a(d));break}if(a(d))break;for(n=e.position;0!==d&&!s(d);)d=e.input.charCodeAt(++e.position);l.push(e.input.slice(n,e.position))}0!==d&&v(e),H.call(ee,i)?ee[i](e,i,l):y(e,"unknown document directive \""+i+"\"")}return k(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,k(e,!0,-1)):r&&f(e,"directives end mark is expected"),I(e,e.lineIndent-1,4,!1,!0),k(e,!0,-1),e.checkLineBreaks&&K.test(e.input.slice(t,e.position))&&y(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&C(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,k(e,!0,-1))):void(e.positionZ;Z++)J[Z]=u(Z)?1:0,$[Z]=u(Z);var ee={YAML:function(e,t,r){var n,a,o;null!==e.version&&f(e,"duplication of %YAML directive"),1!==r.length&&f(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),null===n&&f(e,"ill-formed argument of the YAML directive"),a=parseInt(n[1],10),o=parseInt(n[2],10),1!==a&&f(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=2>o,1!==o&&2!==o&&y(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,a;2!==r.length&&f(e,"TAG directive accepts exactly two arguments"),n=r[0],a=r[1],X.test(n)||f(e,"ill-formed tag handle (first argument) of the TAG directive"),H.call(e.tagMap,n)&&f(e,"there is a previously declared suffix for \""+n+"\" tag handle"),Q.test(a)||f(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=a}};e.exports.loadAll=B,e.exports.load=N,e.exports.safeLoadAll=function(e,t,r){return"object"==typeof t&&null!==t&&"undefined"==typeof r&&(r=t,t=null),B(e,t,D.extend({schema:U},r))},e.exports.safeLoad=function(e,t){return N(e,D.extend({schema:U},t))}},79989:(e,t,r)=>{"use strict";function n(e,t,r,n,a){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=a}var a=r(39990);n.prototype.getSnippet=function(e,t){var r,n,o,i,s;if(!this.buffer)return null;for(e=e||4,t=t||75,r="",n=this.position;0t/2-1){r=" ... ",n+=5;break}for(o="",i=this.position;it/2-1){o=" ... ",i-=5;break}return s=this.buffer.slice(n,i),a.repeat(" ",e)+r+s+o+"\n"+a.repeat(" ",e+this.position-n+r.length)+"^"},n.prototype.toString=function(e){var t="",r;return this.name&&(t+="in \""+this.name+"\" "),t+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(t+=":\n"+r)),t},e.exports=n},58126:(e,t,r)=>{"use strict";function n(e,t,r){var a=[];return e.include.forEach(function(e){r=n(e,t,r)}),e[t].forEach(function(e){r.forEach(function(t,r){t.tag===e.tag&&t.kind===e.kind&&a.push(r)}),r.push(e)}),r.filter(function(e,t){return-1===a.indexOf(t)})}function a(){function e(e){t[e.kind][e.tag]=t.fallback[e.tag]=e}var t={scalar:{},sequence:{},mapping:{},fallback:{}},r,n;for(r=0,n=arguments.length;r{"use strict";var n=r(58126);e.exports=new n({include:[r(75698)]})},17028:(e,t,r)=>{"use strict";var n=r(58126);e.exports=n.DEFAULT=new n({include:[r(23713)],explicit:[r(7988),r(19817),r(42939)]})},23713:(e,t,r)=>{"use strict";var n=r(58126);e.exports=new n({include:[r(11277)],implicit:[r(21136),r(37255)],explicit:[r(58212),r(82769),r(8234),r(31745)]})},21712:(e,t,r)=>{"use strict";var n=r(58126);e.exports=new n({explicit:[r(51497),r(506),r(58865)]})},75698:(e,t,r)=>{"use strict";var n=r(58126);e.exports=new n({include:[r(21712)],implicit:[r(30421),r(79193),r(76048),r(44514)]})},78099:(e,t,r)=>{"use strict";function n(e){var t={};return null!==e&&Object.keys(e).forEach(function(r){e[r].forEach(function(e){t[e+""]=r})}),t}var a=r(41030),o=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],i=["scalar","sequence","mapping"];e.exports=function(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(-1===o.indexOf(t))throw new a("Unknown option \""+t+"\" is met in definition of \""+e+"\" YAML type.")}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=n(t.styleAliases||null),-1===i.indexOf(this.kind))throw new a("Unknown kind \""+this.kind+"\" is specified for \""+e+"\" YAML type.")}},58212:(e,t,r)=>{"use strict";function n(e){var t=e.replace(/[\r\n=]/g,""),r=t.length,n=0,a=[],i,s;for(i=0;i>16),a.push(255&n>>8),a.push(255&n)),n=n<<6|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r".indexOf(t.charAt(i));return s=6*(r%4),0===s?(a.push(255&n>>16),a.push(255&n>>8),a.push(255&n)):18===s?(a.push(255&n>>10),a.push(255&n>>2)):12==s&&a.push(255&n>>4),o?o.from?o.from(a):new o(a):a}function a(e){return o&&o.isBuffer(e)}var o;try{var i=require;o=i("buffer").Buffer}catch(e){}var s=r(78099);e.exports=new s("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=0,r=e.length,n,a;for(a=0;an)return!1;t+=6}return 0==t%8},construct:n,predicate:a,represent:function(e){var t="",r=0,n=e.length,a,o;for(a=0;a>18],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>12],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>6],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r]),r=(r<<8)+e[a];return o=n%3,0===o?(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>18],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>12],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>6],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r]):2===o?(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>10],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>4],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r<<2],t+="="):1==o&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>2],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r<<4],t+="=",t+="="),t}})},79193:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},44514:(e,t,r)=>{"use strict";var n=r(39990),a=r(78099);e.exports=new a("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!!(/^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*|[-+]?\.(?:inf|Inf|INF)|\.(?:nan|NaN|NAN))$/.test(e)&&"_"!==e[e.length-1])},construct:function(e){var t,r,n,a;return(t=e.replace(/_/g,"").toLowerCase(),r="-"===t[0]?-1:1,a=[],0<="+-".indexOf(t[0])&&(t=t.slice(1)),".inf"===t)?1===r?_NumberPOSITIVE_INFINITY:_NumberNEGATIVE_INFINITY:".nan"===t?NaN:0<=t.indexOf(":")?(t.split(":").forEach(function(e){a.unshift(parseFloat(e,10))}),t=0,n=1,a.forEach(function(e){t+=e*n,n*=60}),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(0!=e%1||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN";}else if(_NumberPOSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf";}else if(_NumberNEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf";}else if(n.isNegativeZero(e))return"-0.0";return r=e.toString(10),/^[-+]?[0-9]+e/.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},76048:(e,t,r)=>{"use strict";function n(e){return 48<=e&&57>=e||65<=e&&70>=e||97<=e&&102>=e}function a(e){return 48<=e&&55>=e}function o(e){return 48<=e&&57>=e}var i=r(39990),s=r(78099);e.exports=new s("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length,r=0,i=!1,s;if(!t)return!1;if(s=e[r],("-"===s||"+"===s)&&(s=e[++r]),"0"===s){if(r+1===t)return!0;if(s=e[++r],"b"===s){for(r++;r{"use strict";function n(e){if(null===e)return!1;try{var t=o.parse("("+e+")",{range:!0});return"Program"===t.type&&1===t.body.length&&"ExpressionStatement"===t.body[0].type&&("ArrowFunctionExpression"===t.body[0].expression.type||"FunctionExpression"===t.body[0].expression.type)}catch(e){return!1}}function a(e){var t="("+e+")",r=o.parse(t,{range:!0}),n=[],a;if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"ArrowFunctionExpression"!==r.body[0].expression.type&&"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(e){n.push(e.name)}),a=r.body[0].expression.body.range,"BlockStatement"===r.body[0].expression.body.type?new Function(n,t.slice(a[0]+1,a[1]-1)):new Function(n,"return "+t.slice(a[0],a[1]))}var o;try{var i=require;o=i("esprima")}catch(e){"undefined"!=typeof window&&(o=window.esprima)}var s=r(78099);e.exports=new s("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:n,construct:a,predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},19817:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(r&&(n=r[1]),3{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return"undefined"==typeof e},represent:function(){return""}})},58865:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null===e?{}:e}})},37255:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},30421:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},82769:(e,t,r)=>{"use strict";var n=r(78099),a=Object.prototype.hasOwnProperty,o=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t=[],r=e,n,i,s,l,d;for(n=0,i=r.length;n{"use strict";var n=r(78099),a=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t=e,r,n,o,i,s;for(s=Array(t.length),r=0,n=t.length;r{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null===e?[]:e}})},31745:(e,t,r)=>{"use strict";var n=r(78099),a=Object.prototype.hasOwnProperty;e.exports=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t=e,r;for(r in t)if(a.call(t,r)&&null!==t[r])return!1;return!0},construct:function(e){return null===e?{}:e}})},51497:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null===e?"":e}})},21136:(e,t,r)=>{"use strict";var n=r(78099),a=/^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$/,o=/^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\.([0-9]*))?(?:[ \t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$/;e.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==a.exec(e)||null!==o.exec(e))},construct:function(e){var t=0,r=null,n,i,s,l,d,p,c,u,m,g;if(n=a.exec(e),null===n&&(n=o.exec(e)),null===n)throw new Error("Date resolve error");if(i=+n[1],s=+n[2]-1,l=+n[3],!n[4])return new Date(Date.UTC(i,s,l));if(d=+n[4],p=+n[5],c=+n[6],n[7]){for(t=n[7].slice(0,3);3>t.length;)t+="0";t=+t}return n[9]&&(u=+n[10],m=+(n[11]||0),r=6e4*(60*u+m),"-"===n[9]&&(r=-r)),g=new Date(Date.UTC(i,s,l,d,p,c,t)),r&&g.setTime(g.getTime()-r),g},instanceOf:Date,represent:function(e){return e.toISOString()}})},90031:(e,t,r)=>{"use strict";function n({type:e}){if(!(e in p))throw new Error(`Invalid type specified: ${e}`)}const a=r(85622),o=r(35747),{promisify:i}=r(31669),s=r(96902),l=i(o.stat),d=i(o.lstat),p={directory:"isDirectory",file:"isFile"},c=(e,t)=>void 0===e||t[p[e]]();e.exports=async(e,t)=>{t={cwd:process.cwd(),type:"file",allowSymlinks:!0,...t},n(t);const r=t.allowSymlinks?l:d;return s(e,async e=>{try{const n=await r(a.resolve(t.cwd,e));return c(t.type,n)}catch(e){return!1}},t)},e.exports.sync=(e,t)=>{t={cwd:process.cwd(),allowSymlinks:!0,type:"file",...t},n(t);const r=t.allowSymlinks?o.statSync:o.lstatSync;for(const n of e)try{const e=r(a.resolve(t.cwd,n));if(c(t.type,e))return n}catch(e){}}},51993:(e,t,r)=>{function n(e,r){e=e||{},r=r||{};var n={};return Object.keys(r).forEach(function(e){n[e]=r[e]}),Object.keys(e).forEach(function(t){n[t]=e[t]}),n}function a(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!!(r.nocomment||"#"!==t.charAt(0))&&(""===t.trim()?""===e:new o(t,r).match(e))}function o(e,t){if(!(this instanceof o))return new o(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==p.sep&&(e=e.split(p.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function i(e,t){if(t||(this instanceof o?t=this.options:t={}),e="undefined"==typeof e?this.pattern:e,"undefined"==typeof e)throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:m(e)}function s(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==p.sep&&(e=e.split(p.sep).join("/")),e=e.split(y),this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var a,o;for(o=e.length-1;0<=o&&(a=e[o],!a);o--);for(o=0;o>> no match, partial?",e,p,t,c),p===i))}var g;if("string"==typeof l?(g=n.nocase?d.toLowerCase()===l.toLowerCase():d===l,this.debug("string match",l,d,g)):(g=d.match(l),this.debug("pattern match",l,d,g)),!g)return!1}if(a===i&&o===s)return!0;if(a===i)return r;if(o===s){var h=a===i-1&&""===e[a];return h}throw new Error("wtf?")}},23607:(e,t,r)=>{function n(e,t,r,s){"function"==typeof t?(r=t,t={}):(!t||"object"!=typeof t)&&(t={mode:t});var l=t.mode,d=t.fs||o;void 0===l&&(l=i&~process.umask()),s||(s=null);var c=r||function(){};e=a.resolve(e),d.mkdir(e,l,function(r){if(!r)return s=s||e,c(null,s);switch(r.code){case"ENOENT":n(a.dirname(e),t,function(r,a){r?c(r,a):n(e,t,c,a)});break;default:d.stat(e,function(e,t){e||!t.isDirectory()?c(r,s):c(null,s)});}})}var a=r(85622),o=r(35747),i=parseInt("0777",8);e.exports=n.mkdirp=n.mkdirP=n,n.sync=function e(t,r,n){r&&"object"==typeof r||(r={mode:r});var s=r.mode,l=r.fs||o;void 0===s&&(s=i&~process.umask()),n||(n=null),t=a.resolve(t);try{l.mkdirSync(t,s),n=n||t}catch(o){switch(o.code){case"ENOENT":n=e(a.dirname(t),r,n),e(t,r,n);break;default:var d;try{d=l.statSync(t)}catch(e){throw o}if(!d.isDirectory())throw o;}}return n}},64994:e=>{function t(e){if(e+="",!(100=1.5*r?"s":"")}var o=24*(60*60000);e.exports=function(e,a){a=a||{};var o=typeof e;if("string"==o&&0e.size?(i=!0,void s(new a(`content size at ${e.url} over limit: ${e.size}`,"max-size"))):void(n+=t.length,r.push(t))}),t.on("end",function(){if(!i){clearTimeout(l);try{o(Buffer.concat(r,n))}catch(t){s(new a(`Could not create Buffer from response body for ${e.url}: ${t.message}`,"system",t))}}})})}function s(e,t){if("function"!=typeof I)throw new Error("The package `encoding` must be installed to use the textConverted() function");const r=t.get("content-type");let n="utf-8",a,o;return r&&(a=/charset=([^;]*)/i.exec(r)),o=e.slice(0,1024).toString(),!a&&o&&(a=/=i.follow)return n(new a(`maximum redirect reached at: ${i.url}`,"max-redirect")),void o();const s={headers:new F(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:i.body,signal:i.signal,timeout:i.timeout,size:i.size};return 303!==e.statusCode&&i.body&&null===u(i)?(n(new a("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void o()):((303===e.statusCode||(301===e.statusCode||302===e.statusCode)&&"POST"===i.method)&&(s.method="GET",s.body=void 0,s.headers.delete("content-length")),r(w(new J(l,s))),void o());}}e.once("end",function(){d&&d.removeEventListener("abort",g)});let s=e.pipe(new $);const l={url:i.url,status:e.statusCode,statusText:e.statusMessage,headers:t,size:i.size,timeout:i.timeout,counter:i.counter},c=t.get("Content-Encoding");if(!i.compress||"HEAD"===i.method||null===c||204===e.statusCode||304===e.statusCode)return p=new V(s,l),void r(p);const m={flush:P.Z_SYNC_FLUSH,finishFlush:P.Z_SYNC_FLUSH};if("gzip"==c||"x-gzip"==c)return s=s.pipe(P.createGunzip(m)),p=new V(s,l),void r(p);if("deflate"==c||"x-deflate"==c){const t=e.pipe(new $);return void t.once("data",function(e){s=8==(15&e[0])?s.pipe(P.createInflate()):s.pipe(P.createInflateRaw()),p=new V(s,l),r(p)})}return"br"==c&&"function"==typeof P.createBrotliDecompress?(s=s.pipe(P.createBrotliDecompress()),p=new V(s,l),void r(p)):void(p=new V(s,l),r(p))}),m(h,i)})}Object.defineProperty(t,"__esModule",{value:!0});var T=n(r(92413)),E=n(r(98605)),A=n(r(78835)),O=n(r(57211)),P=n(r(78761));const L=T.Readable,z=Symbol("buffer"),R=Symbol("type");class M{constructor(){this[R]="";const e=arguments[0],t=arguments[1],r=[];let n=0;if(e){const t=e,a=+t.length;for(let e=0;et?_Mathmax(e+t,0):_Mathmin(t,e),a=void 0===r?e:0>r?_Mathmax(e+r,0):_Mathmin(r,e);const o=_Mathmax(a-n,0),i=this[z],s=i.slice(n,n+o),l=new M([],{type:arguments[2]});return l[z]=s,l}}Object.defineProperties(M.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}}),Object.defineProperty(M.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0}),a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,a.prototype.name="FetchError";let I;try{I=r(40142).convert}catch(t){}const W=Symbol("Body internals"),q=T.PassThrough;o.prototype={get body(){return this[W].body},get bodyUsed(){return this[W].disturbed},arrayBuffer(){return i.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return i.call(this).then(function(t){return Object.assign(new M([],{type:e.toLowerCase()}),{[z]:t})})},json(){var e=this;return i.call(this).then(function(t){try{return JSON.parse(t.toString())}catch(t){return o.Promise.reject(new a(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return i.call(this).then(function(e){return e.toString()})},buffer(){return i.call(this)},textConverted(){var e=this;return i.call(this).then(function(t){return s(t,e.headers)})}},Object.defineProperties(o.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}}),o.mixIn=function(e){for(const t of Object.getOwnPropertyNames(o.prototype))if(!(t in e)){const r=Object.getOwnPropertyDescriptor(o.prototype,t);Object.defineProperty(e,t,r)}},o.Promise=global.Promise;const B=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,N=/[^\t\x20-\x7e\x80-\xff]/,D=Symbol("map");class F{constructor(){let e=0=o?{value:void 0,done:!0}:(this[G].index=n+1,{value:a[n],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(U,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const j=Symbol("Response internals"),H=E.STATUS_CODES;class V{constructor(){let e=0this[j].status}get redirected(){return 0{e.exports=function(e){var t=e[0],r=e[1]-1;if(0>r&&0>=t)return i;if(-1===t)return function(e){return e<=r};if(0===t)return function(e){return e===r};if(1===t)return 0>r?o:function(e){return e>=r};var n=r%t;return(0>n&&(n+=t),1=r&&e%t===n}:(t*=-1,function(e){return e<=r&&e%t===n})};var n=r(27510),o=n.trueFunc,i=n.falseFunc},88970:(e,t,r)=>{var n=r(30151),a=r(50880);e.exports=function(e){return a(n(e))},e.exports.parse=n,e.exports.compile=a},30151:e=>{e.exports=function(e){if(e=e.trim().toLowerCase(),"even"===e)return[2,0];if("odd"===e)return[2,1];var r=e.match(t);if(!r)throw new SyntaxError("n-th rule couldn't be parsed ('"+e+"')");var n;return r[1]?(n=parseInt(r[1],10),isNaN(n)&&("-"===r[1].charAt(0)?n=-1:n=1)):n=0,[n,r[3]?parseInt((r[2]||"")+r[3],10):0]};var t=/^([+\-]?\d*n)?\s*(?:([+\-]?)\s*(\d+))?$/},47905:(e,t,r)=>{"use strict";var n;if(!Object.keys){var a=Object.prototype.hasOwnProperty,o=Object.prototype.toString,s=r(7595),l=Object.prototype.propertyIsEnumerable,d=!l.call({toString:null},"toString"),p=l.call(function(){},"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(e){var t=e.constructor;return t&&t.prototype===e},m={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},g=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!m["$"+e]&&a.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{u(window[e])}catch(t){return!0}}catch(t){return!0}return!1}(),h=function(e){if("undefined"==typeof window||!g)return u(e);try{return u(e)}catch(t){return!1}};n=function(e){var t=null!==e&&"object"==typeof e,r="[object Function]"===o.call(e),n=s(e),l=t&&"[object String]"===o.call(e),u=[];if(!t&&!r&&!n)throw new TypeError("Object.keys called on a non-object");if(l&&0{"use strict";var n=Array.prototype.slice,a=r(7595),i=Object.keys,s=i?function(e){return i(e)}:r(47905),l=Object.keys;s.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return a(e)?l(n.call(e)):l(e)})}else Object.keys=s;return Object.keys||s},e.exports=s},7595:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var r=t.call(e),n="[object Arguments]"===r;return n||(n="[object Array]"!==r&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&0<=e.length&&"[object Function]"===t.call(e.callee)),n}},81699:(e,t,r)=>{"use strict";var n=r(98496),a=r(61421),o=r(38790),i=o("Object.prototype.propertyIsEnumerable");e.exports=function(e){var t=a(e),r=[];for(var o in t)n(t,o)&&i(t,o)&&r.push(t[o]);return r}},67670:(e,t,r)=>{"use strict";var n=r(3087),a=r(81699),o=r(64450),i=r(51454),s=o();n(s,{getPolyfill:o,implementation:a,shim:i}),e.exports=s},64450:(e,t,r)=>{"use strict";var n=r(81699);e.exports=function(){return"function"==typeof Object.values?Object.values:n}},51454:(e,t,r)=>{"use strict";var n=r(64450),a=r(3087);e.exports=function(){var e=n();return a(Object,{values:e},{values:function(){return Object.values!==e}}),e}},86343:(e,t,r)=>{function n(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function a(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}var o=r(42884);e.exports=o(n),e.exports.strict=o(a),n.proto=n(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return n(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return a(this)},configurable:!0})})},19821:(e,t,r)=>{"use strict";const n=r(19840),a=e=>{if(!((_NumberisInteger(e)||e===1/0)&&0{r--,0{r++;const i=n(e,...o);t(i),i.then(a,a)},i=(n,a,...i)=>{rnew Promise(r=>i(e,r,...t));return Object.defineProperties(s,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length},clearQueue:{value:()=>{t.length=0}}}),s};e.exports=a,e.exports.default=a},96902:(e,t,r)=>{"use strict";const n=r(19821);class a extends Error{constructor(e){super(),this.value=e}}const o=async(e,t)=>t(await e),i=async e=>{const t=await Promise.all(e);if(!0===t[1])throw new a(t[0]);return!1},s=async(e,t,r)=>{r={concurrency:1/0,preserveOrder:!0,...r};const s=n(r.concurrency),l=[...e].map(e=>[e,s(o,e,t)]),d=n(r.preserveOrder?1:1/0);try{await Promise.all(l.map(e=>d(i,e)))}catch(e){if(e instanceof a)return e.value;throw e}};e.exports=s,e.exports.default=s},19840:e=>{"use strict";const t=(e,...t)=>new Promise(r=>{r(e(...t))});e.exports=t,e.exports.default=t},68719:(e,t,r)=>{"use strict";const n=r(35747),{promisify:a}=r(31669),o=a(n.access);e.exports=async e=>{try{return await o(e),!0}catch(e){return!1}},e.exports.sync=e=>{try{return n.accessSync(e),!0}catch(e){return!1}}},61056:e=>{"use strict";function t(e){return"/"===e.charAt(0)}function r(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/.exec(e),r=t[1]||"",n=!!(r&&":"!==r.charAt(1));return!!(t[2]||n)}e.exports="win32"===process.platform?r:t,e.exports.posix=t,e.exports.win32=r},1520:e=>{function t(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}function r(e){function t(t){if(a)throw new Error("callback called twice");if(a=!0,e.error=e.error||t,e.pending-=1,0{"use strict";const n=r(85622),a=r(20138),o=async e=>{const t=await a("package.json",{cwd:e});return t&&n.dirname(t)};e.exports=o,e.exports.default=o,e.exports.sync=e=>{const t=a.sync("package.json",{cwd:e});return t&&n.dirname(t)}},10208:(e,t,r)=>{"use strict";function n(e,t){var r=(a("npm_config_no_proxy")||a("no_proxy")).toLowerCase();return!r||"*"!==r&&r.split(/[,\s]/).every(function(r){if(!r)return!0;var n=r.match(/^(.+):(\d+)$/),a=n?n[1]:r,o=n?parseInt(n[2]):0;return!!(o&&o!==t)||(/^[.*]/.test(a)?("*"===a.charAt(0)&&(a=a.slice(1)),!s.call(e,a)):e!==a)})}function a(e){return process.env[e.toLowerCase()]||process.env[e.toUpperCase()]||""}var o=r(78835).parse,i={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},s=_Stringprototype.endsWith||function(e){return e.length<=this.length&&-1!==this.indexOf(e,this.length-e.length)};t.getProxyForUrl=function(e){var t="string"==typeof e?o(e):e||{},r=t.protocol,s=t.host,l=t.port;if("string"!=typeof s||!s||"string"!=typeof r)return"";if(r=r.split(":",1)[0],s=s.replace(/:\d*$/,""),l=parseInt(l)||i[r]||0,!n(s,l))return"";var d=a("npm_config_"+r+"_proxy")||a(r+"_proxy")||a("npm_config_proxy")||a("all_proxy");return d&&-1===d.indexOf("://")&&(d=r+"://"+d),d}},537:(e,t,r)=>{var n=r(86343),a=r(10852),o=r(35747),i=function(){},s=/^v?\.0/.test(process.version),l=function(e){return"function"==typeof e},d=function(e){return!!s&&!!o&&(e instanceof(o.ReadStream||i)||e instanceof(o.WriteStream||i))&&l(e.close)},p=function(e){return e.setHeader&&l(e.abort)},c=function(e,t,r,o){o=n(o);var s=!1;e.on("close",function(){s=!0}),a(e,{readable:t,writable:r},function(e){return e?o(e):void(s=!0,o())});var c=!1;return function(t){if(!s)return c?void 0:(c=!0,d(e)?e.close(i):p(e)?e.abort():l(e.destroy)?e.destroy():void o(t||new Error("stream was destroyed")))}},u=function(e){e()},m=function(e,t){return e.pipe(t)};e.exports=function(){var e=Array.prototype.slice.call(arguments),t=l(e[e.length-1]||i)&&e.pop()||i;if(Array.isArray(e[0])&&(e=e[0]),2>e.length)throw new Error("pump requires two streams per minimum");var r=e.map(function(a,o){var i=o{const n=r(90176);e.exports=n.default},77601:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Accessibility=void 0;t.Accessibility=class e{constructor(e){this._client=e}async snapshot(e={}){const{interestingOnly:t=!0,root:n=null}=e,{nodes:a}=await this._client.send("Accessibility.getFullAXTree");let o=null;if(n){const{node:e}=await this._client.send("DOM.describeNode",{objectId:n._remoteObject.objectId});o=e.backendNodeId}const i=r.createTree(a);let s=i;if(o&&(s=i.find(e=>e.payload.backendDOMNodeId===o),!s))return null;if(!t)return this.serializeTree(s)[0];const l=new Set;return this.collectInterestingNodes(l,i,!1),l.has(s)?this.serializeTree(s,l)[0]:null}serializeTree(e,t){const r=[];for(const n of e.children)r.push(...this.serializeTree(n,t));if(t&&!t.has(e))return r;const n=e.serialize();return r.length&&(n.children=r),[n]}collectInterestingNodes(e,t,r){if(t.isInteresting(r)&&e.add(t),!t.isLeafNode()){r=r||t.isControl();for(const n of t.children)this.collectInterestingNodes(e,n,r)}}};class r{constructor(e){this.children=[],this._richlyEditable=!1,this._editable=!1,this._focusable=!1,this._hidden=!1,this.payload=e,this._name=this.payload.name?this.payload.name.value:"",this._role=this.payload.role?this.payload.role.value:"Unknown",this._ignored=this.payload.ignored;for(const t of this.payload.properties||[])"editable"===t.name&&(this._richlyEditable="richtext"===t.value.value,this._editable=!0),"focusable"===t.name&&(this._focusable=t.value.value),"hidden"===t.name&&(this._hidden=t.value.value)}_isPlainTextField(){return!this._richlyEditable&&(!!this._editable||"textbox"===this._role||"searchbox"===this._role)}_isTextOnlyObject(){const e=this._role;return"LineBreak"===e||"text"===e||"InlineTextBox"===e}_hasFocusableChild(){if(void 0===this._cachedHasFocusableChild){this._cachedHasFocusableChild=!1;for(const e of this.children)if(e._focusable||e._hasFocusableChild()){this._cachedHasFocusableChild=!0;break}}return this._cachedHasFocusableChild}find(e){if(e(this))return this;for(const t of this.children){const r=t.find(e);if(r)return r}return null}isLeafNode(){if(!this.children.length)return!0;if(this._isPlainTextField()||this._isTextOnlyObject())return!0;switch(this._role){case"doc-cover":case"graphics-symbol":case"img":case"Meter":case"scrollbar":case"slider":case"separator":case"progressbar":return!0;default:}return!this._hasFocusableChild()&&(!!(this._focusable&&this._name)||!!("heading"===this._role&&this._name))}isControl(){switch(this._role){case"button":case"checkbox":case"ColorWell":case"combobox":case"DisclosureTriangle":case"listbox":case"menu":case"menubar":case"menuitem":case"menuitemcheckbox":case"menuitemradio":case"radio":case"scrollbar":case"searchbox":case"slider":case"spinbutton":case"switch":case"tab":case"textbox":case"tree":case"treeitem":return!0;default:return!1;}}isInteresting(e){const t=this._role;return!("Ignored"===t||this._hidden||this._ignored)&&(!!(this._focusable||this._richlyEditable)||!!this.isControl()||!e&&this.isLeafNode()&&!!this._name)}serialize(){const e=new Map;for(const t of this.payload.properties||[])e.set(t.name.toLowerCase(),t.value.value);this.payload.name&&e.set("name",this.payload.name.value),this.payload.value&&e.set("value",this.payload.value.value),this.payload.description&&e.set("description",this.payload.description.value);const t={role:this._role},r=["name","value","description","keyshortcuts","roledescription","valuetext"],n=t=>e.get(t);for(const a of r)e.has(a)&&(t[a]=n(a));const a=["disabled","expanded","focused","modal","multiline","multiselectable","readonly","required","selected"],o=t=>e.get(t);for(const e of a){if("focused"===e&&"WebArea"===this._role)continue;const r=o(e);r&&(t[e]=o(e))}const i=["checked","pressed"];for(const r of i){if(!e.has(r))continue;const n=e.get(r);t[r]="mixed"===n?"mixed":"true"===n}const s=["level","valuemax","valuemin"],l=t=>e.get(t);for(const r of s)e.has(r)&&(t[r]=l(r));const d=["autocomplete","haspopup","invalid","orientation"],p=t=>e.get(t);for(const e of d){const r=p(e);r&&"false"!==r&&(t[e]=p(e))}return t}static createTree(e){const t=new Map;for(const n of e)t.set(n.nodeId,new r(n));for(const r of t.values())for(const e of r.payload.childIds||[])r.children.push(t.get(e));return t.values().next().value}}},79867:(e,t)=>{"use strict";async function r(e,t,r,n){const{nodes:a}=await e.send("Accessibility.queryAXTree",{objectId:t._remoteObject.objectId,accessibleName:r,role:n}),o=a.filter(e=>"text"!==e.role.value);return o}function n(e){const t=e=>e.replace(/ +/g," ").trim(),r=new Set(["name","role"]),n={},a=e.replace(/\[\s*(?\w+)\s*=\s*"(?\\.|[^"\\]*)"\s*\]/,(e,a,o)=>{if(a=a.trim(),!r.has(a))throw new Error("Unkown aria attribute \"${groups.attribute}\" in selector");return n[a]=t(o),""});return a&&!n.name&&(n.name=t(a)),n}Object.defineProperty(t,"__esModule",{value:!0}),t.ariaHandler=void 0;const a=async(e,t)=>{const a=e.executionContext(),{name:o,role:i}=n(t),s=await r(a._client,e,o,i);return 1>s.length?null:a._adoptBackendNodeId(s[0].backendDOMNodeId)},o=async(e,t)=>{const a=e.executionContext(),{name:o,role:i}=n(t),s=await r(a._client,e,o,i);return Promise.all(s.map(e=>a._adoptBackendNodeId(e.backendDOMNodeId)))};t.ariaHandler={queryOne:a,waitFor:async(e,t,r)=>{return e.waitForSelectorInPage((e,t)=>globalThis.ariaQuerySelector(t),t,r,{name:"ariaQuerySelector",pptrFunction:async t=>{const r=await e._document(),n=await a(r,t);return n}})},queryAll:o,queryAllArray:async(e,t)=>{const r=await o(e,t),n=e.executionContext(),a=n.evaluateHandle((...e)=>e,...r);return a}}},10487:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserContext=t.Browser=void 0;const n=r(85668),a=r(47674),o=r(69668),i=r(2680),s=r(58602);class l extends i.EventEmitter{constructor(e,t,r,n,a,o){super(),this._ignoreHTTPSErrors=r,this._defaultViewport=n,this._process=a,this._connection=e,this._closeCallback=o||function(){},this._defaultContext=new d(this._connection,this,null),this._contexts=new Map;for(const i of t)this._contexts.set(i,new d(this._connection,this,i));this._targets=new Map,this._connection.on(s.ConnectionEmittedEvents.Disconnected,()=>this.emit("disconnected")),this._connection.on("Target.targetCreated",this._targetCreated.bind(this)),this._connection.on("Target.targetDestroyed",this._targetDestroyed.bind(this)),this._connection.on("Target.targetInfoChanged",this._targetInfoChanged.bind(this))}static async create(e,t,r,n,a,o){const i=new l(e,t,r,n,a,o);return await e.send("Target.setDiscoverTargets",{discover:!0}),i}process(){return this._process}async createIncognitoBrowserContext(){const{browserContextId:e}=await this._connection.send("Target.createBrowserContext"),t=new d(this._connection,this,e);return this._contexts.set(e,t),t}browserContexts(){return[this._defaultContext,...Array.from(this._contexts.values())]}defaultBrowserContext(){return this._defaultContext}async _disposeContext(e){await this._connection.send("Target.disposeBrowserContext",{browserContextId:e||void 0}),this._contexts.delete(e)}async _targetCreated(e){const t=e.targetInfo,{browserContextId:r}=t,a=r&&this._contexts.has(r)?this._contexts.get(r):this._defaultContext,i=new o.Target(t,a,()=>this._connection.createSession(t),this._ignoreHTTPSErrors,this._defaultViewport);n.assert(!this._targets.has(e.targetInfo.targetId),"Target should not exist before targetCreated"),this._targets.set(e.targetInfo.targetId,i),(await i._initializedPromise)&&(this.emit("targetcreated",i),a.emit("targetcreated",i))}async _targetDestroyed(e){const t=this._targets.get(e.targetId);t._initializedCallback(!1),this._targets.delete(e.targetId),t._closedCallback(),(await t._initializedPromise)&&(this.emit("targetdestroyed",t),t.browserContext().emit("targetdestroyed",t))}_targetInfoChanged(e){const t=this._targets.get(e.targetInfo.targetId);n.assert(t,"target should exist before targetInfoChanged");const r=t.url(),a=t._isInitialized;t._targetInfoChanged(e.targetInfo),a&&r!==t.url()&&(this.emit("targetchanged",t),t.browserContext().emit("targetchanged",t))}wsEndpoint(){return this._connection.url()}async newPage(){return this._defaultContext.newPage()}async _createPageInContext(e){const{targetId:t}=await this._connection.send("Target.createTarget",{url:"about:blank",browserContextId:e||void 0}),r=await this._targets.get(t);n.assert(await r._initializedPromise,"Failed to create target for page");const a=await r.page();return a}targets(){return Array.from(this._targets.values()).filter(e=>e._isInitialized)}target(){return this.targets().find(e=>"browser"===e.type())}async waitForTarget(e,t={}){function r(t){e(t)&&i(t)}const{timeout:n=3e4}=t,o=this.targets().find(e);if(o)return o;let i;const s=new Promise(e=>i=e);this.on("targetcreated",r),this.on("targetchanged",r);try{return n?await a.helper.waitWithTimeout(s,"target",n):await s}finally{this.removeListener("targetcreated",r),this.removeListener("targetchanged",r)}}async pages(){const e=await Promise.all(this.browserContexts().map(e=>e.pages()));return e.reduce((e,t)=>e.concat(t),[])}async version(){const e=await this._getVersion();return e.product}async userAgent(){const e=await this._getVersion();return e.userAgent}async close(){await this._closeCallback.call(null),this.disconnect()}disconnect(){this._connection.dispose()}isConnected(){return!this._connection._closed}_getVersion(){return this._connection.send("Browser.getVersion")}}t.Browser=l;class d extends i.EventEmitter{constructor(e,t,r){super(),this._connection=e,this._browser=t,this._id=r}targets(){return this._browser.targets().filter(e=>e.browserContext()===this)}waitForTarget(e,t={}){return this._browser.waitForTarget(t=>t.browserContext()===this&&e(t),t)}async pages(){const e=await Promise.all(this.targets().filter(e=>"page"===e.type()).map(e=>e.page()));return e.filter(e=>!!e)}isIncognito(){return!!this._id}async overridePermissions(e,t){const r=new Map([["geolocation","geolocation"],["midi","midi"],["notifications","notifications"],["camera","videoCapture"],["microphone","audioCapture"],["background-sync","backgroundSync"],["ambient-light-sensor","sensors"],["accelerometer","sensors"],["gyroscope","sensors"],["magnetometer","sensors"],["accessibility-events","accessibilityEvents"],["clipboard-read","clipboardReadWrite"],["clipboard-write","clipboardReadWrite"],["payment-handler","paymentHandler"],["idle-detection","idleDetection"],["midi-sysex","midiSysex"]]),n=t.map(e=>{const t=r.get(e);if(!t)throw new Error("Unknown permission: "+e);return t});await this._connection.send("Browser.grantPermissions",{origin:e,browserContextId:this._id||void 0,permissions:n})}async clearPermissionOverrides(){await this._connection.send("Browser.resetPermissions",{browserContextId:this._id||void 0})}newPage(){return this._browser._createPageInContext(this._id)}browser(){return this._browser}async close(){n.assert(this._id,"Non-incognito profiles cannot be closed!"),await this._browser._disposeContext(this._id)}}t.BrowserContext=d},10714:function(e,t,r){"use strict";async function n(e){const t=new URL("/json/version",e),r=await c.getFetch();try{const e=await r(t.toString(),{method:"GET"});if(!e.ok)throw new Error(`HTTP ${e.statusText}`);const n=await e.json();return n.webSocketDebuggerUrl}catch(e){throw e.message=`Failed to fetch browser webSocket URL from ${t}: `+e.message,e}}var a=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]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!=r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.connectToBrowser=void 0;const s=r(10487),l=r(85668),d=r(47674),p=r(58602),c=r(84763),u=r(23222),m=async()=>u.isNode?(await Promise.resolve().then(()=>i(r(17662)))).NodeWebSocketTransport:(await Promise.resolve().then(()=>i(r(96937)))).BrowserWebSocketTransport;t.connectToBrowser=async e=>{const{browserWSEndpoint:t,browserURL:r,ignoreHTTPSErrors:o=!1,defaultViewport:i={width:800,height:600},transport:a,slowMo:c=0}=e;l.assert(1===+!!t+ +!!r+ +!!a,"Exactly one of browserWSEndpoint, browserURL or transport must be passed to puppeteer.connect");let u=null;if(a)u=new p.Connection("",a,c);else if(t){const e=await m(),r=await e.create(t);u=new p.Connection(t,r,c)}else if(r){const e=await n(r),t=await m(),a=await t.create(e);u=new p.Connection(e,a,c)}const{browserContextIds:g}=await u.send("Target.getBrowserContexts");return s.Browser.create(u,g,o,i,null,()=>u.send("Browser.close").catch(d.debugError))}},96937:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserWebSocketTransport=void 0;class r{constructor(e){this._ws=e,this._ws.addEventListener("message",e=>{this.onmessage&&this.onmessage.call(null,e.data)}),this._ws.addEventListener("close",()=>{this.onclose&&this.onclose.call(null)}),this._ws.addEventListener("error",()=>{}),this.onmessage=null,this.onclose=null}static create(e){return new Promise((t,n)=>{const a=new WebSocket(e);a.addEventListener("open",()=>t(new r(a))),a.addEventListener("error",n)})}send(e){this._ws.send(e)}close(){this._ws.close()}}t.BrowserWebSocketTransport=r},58602:(e,t,r)=>{"use strict";function n(e,t,r){let n=`Protocol error (${t}): ${r.error.message}`;return"data"in r.error&&(n+=` ${r.error.data}`),a(e,n)}function a(e,t){return e.message=t,e}Object.defineProperty(t,"__esModule",{value:!0}),t.CDPSession=t.CDPSessionEmittedEvents=t.Connection=t.ConnectionEmittedEvents=void 0;const o=r(85668),i=r(49259),s=i.debug("puppeteer:protocol:SEND \u25BA"),l=i.debug("puppeteer:protocol:RECV \u25C0"),d=r(2680);t.ConnectionEmittedEvents={Disconnected:Symbol("Connection.Disconnected")};class p extends d.EventEmitter{constructor(e,t,r=0){super(),this._lastId=0,this._sessions=new Map,this._closed=!1,this._callbacks=new Map,this._url=e,this._delay=r,this._transport=t,this._transport.onmessage=this._onMessage.bind(this),this._transport.onclose=this._onClose.bind(this)}static fromSession(e){return e._connection}session(e){return this._sessions.get(e)||null}url(){return this._url}send(e,...t){const r=t.length?t[0]:void 0,n=this._rawSend({method:e,params:r});return new Promise((t,r)=>{this._callbacks.set(n,{resolve:t,reject:r,error:new Error,method:e})})}_rawSend(e){const t=++this._lastId,r=JSON.stringify(Object.assign({},e,{id:t}));return s(r),this._transport.send(r),t}async _onMessage(e){this._delay&&(await new Promise(e=>setTimeout(e,this._delay))),l(e);const t=JSON.parse(e);if("Target.attachedToTarget"===t.method){const e=t.params.sessionId,r=new c(this,t.params.targetInfo.type,e);this._sessions.set(e,r)}else if("Target.detachedFromTarget"===t.method){const e=this._sessions.get(t.params.sessionId);e&&(e._onClosed(),this._sessions.delete(t.params.sessionId))}if(t.sessionId){const e=this._sessions.get(t.sessionId);e&&e._onMessage(t)}else if(t.id){const e=this._callbacks.get(t.id);e&&(this._callbacks.delete(t.id),t.error?e.reject(n(e.error,e.method,t)):e.resolve(t.result))}else this.emit(t.method,t.params)}_onClose(){if(!this._closed){this._closed=!0,this._transport.onmessage=null,this._transport.onclose=null;for(const e of this._callbacks.values())e.reject(a(e.error,`Protocol error (${e.method}): Target closed.`));this._callbacks.clear();for(const e of this._sessions.values())e._onClosed();this._sessions.clear(),this.emit(t.ConnectionEmittedEvents.Disconnected)}}dispose(){this._onClose(),this._transport.close()}async createSession(e){const{sessionId:t}=await this.send("Target.attachToTarget",{targetId:e.targetId,flatten:!0});return this._sessions.get(t)}}t.Connection=p,t.CDPSessionEmittedEvents={Disconnected:Symbol("CDPSession.Disconnected")};class c extends d.EventEmitter{constructor(e,t,r){super(),this._callbacks=new Map,this._connection=e,this._targetType=t,this._sessionId=r}send(e,...t){if(!this._connection)return Promise.reject(new Error(`Protocol error (${e}): Session closed. Most likely the ${this._targetType} has been closed.`));const r=t.length?t[0]:void 0,n=this._connection._rawSend({sessionId:this._sessionId,method:e,params:r||{}});return new Promise((t,r)=>{this._callbacks.set(n,{resolve:t,reject:r,error:new Error,method:e})})}_onMessage(e){if(e.id&&this._callbacks.has(e.id)){const t=this._callbacks.get(e.id);this._callbacks.delete(e.id),e.error?t.reject(n(t.error,t.method,e)):t.resolve(e.result)}else o.assert(!e.id),this.emit(e.method,e.params)}async detach(){if(!this._connection)throw new Error(`Session already detached. Most likely the ${this._targetType} has been closed.`);await this._connection.send("Target.detachFromTarget",{sessionId:this._sessionId})}_onClosed(){for(const e of this._callbacks.values())e.reject(a(e.error,`Protocol error (${e.method}): Target closed.`));this._callbacks.clear(),this._connection=null,this.emit(t.CDPSessionEmittedEvents.Disconnected)}}t.CDPSession=c},16051:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleMessage=void 0;t.ConsoleMessage=class e{constructor(e,t,r,n){this._type=e,this._text=t,this._args=r,this._stackTraceLocations=n}type(){return this._type}text(){return this._text}args(){return this._args}location(){return this._stackTraceLocations.length?this._stackTraceLocations[0]:{}}stackTrace(){return this._stackTraceLocations}}},35204:(e,t,r)=>{"use strict";function n(e){const t=[];for(const r of e)t.push({offset:r.startOffset,type:0,range:r}),t.push({offset:r.endOffset,type:1,range:r});t.sort((e,t)=>{if(e.offset!==t.offset)return e.offset-t.offset;if(e.type!==t.type)return t.type-e.type;const r=e.range.endOffset-e.range.startOffset,n=t.range.endOffset-t.range.startOffset;return 0===e.type?n-r:r-n});const r=[],n=[];let a=0;for(const o of t){if(r.length&&a1{"use strict";async function n(e,t,r,...n){async function a(e){async function t(){if(i)return void r();const a=await o(...n);a?r(a):setTimeout(t,e)}let r;const a=new Promise(e=>r=e);return await t(),a}const o=new Function("...args",e);let i=!1;return r&&setTimeout(()=>i=!0,r),"raf"===t?await async function(){async function e(){if(i)return void t();const r=await o(...n);r?t(r):requestAnimationFrame(e)}let t;const r=new Promise(e=>t=e);return await e(),r}():"mutation"===t?await async function(){const e=await o(...n);if(e)return Promise.resolve(e);let t;const r=new Promise(e=>t=e),a=new MutationObserver(async()=>{i&&(a.disconnect(),t());const e=await o(...n);e&&(a.disconnect(),t(e))});return a.observe(document,{childList:!0,subtree:!0,attributes:!0}),r}():"number"==typeof t?await a(t):void 0}Object.defineProperty(t,"__esModule",{value:!0}),t.WaitTask=t.DOMWorld=void 0;const a=r(85668),o=r(47674),i=r(54954),s=r(29554),l=r(90419),d=r(23222);class p{constructor(e,t,r){this._documentPromise=null,this._contextPromise=null,this._contextResolveCallback=null,this._detached=!1,this._waitTasks=new Set,this._boundFunctions=new Map,this._ctxBindings=new Set,this._settingUpBinding=null,this._frameManager=e,this._frame=t,this._timeoutSettings=r,this._setContext(null),e._client.on("Runtime.bindingCalled",e=>this._onBindingCalled(e))}frame(){return this._frame}async _setContext(e){if(e){this._contextResolveCallback.call(null,e),this._contextResolveCallback=null;for(const e of this._waitTasks)e.rerun()}else this._documentPromise=null,this._contextPromise=new Promise(e=>{this._contextResolveCallback=e})}_hasContext(){return!this._contextResolveCallback}_detach(){this._detached=!0;for(const e of this._waitTasks)e.terminate(new Error("waitForFunction failed: frame got detached."))}executionContext(){if(this._detached)throw new Error(`Execution context is not available in detached frame "${this._frame.url()}" (are you trying to evaluate?)`);return this._contextPromise}async evaluateHandle(e,...t){const r=await this.executionContext();return r.evaluateHandle(e,...t)}async evaluate(e,...t){const r=await this.executionContext();return r.evaluate(e,...t)}async $(e){const t=await this._document(),r=await t.$(e);return r}async _document(){return this._documentPromise?this._documentPromise:(this._documentPromise=this.executionContext().then(async e=>{const t=await e.evaluateHandle("document");return t.asElement()}),this._documentPromise)}async $x(e){const t=await this._document(),r=await t.$x(e);return r}async $eval(e,t,...r){const n=await this._document();return n.$eval(e,t,...r)}async $$eval(e,t,...r){const n=await this._document(),a=await n.$$eval(e,t,...r);return a}async $$(e){const t=await this._document(),r=await t.$$(e);return r}async content(){return await this.evaluate(()=>{let e="";return document.doctype&&(e=new XMLSerializer().serializeToString(document.doctype)),document.documentElement&&(e+=document.documentElement.outerHTML),e})}async setContent(e,t={}){const{waitUntil:r=["load"],timeout:n=this._timeoutSettings.navigationTimeout()}=t;await this.evaluate(e=>{document.open(),document.write(e),document.close()},e);const a=new i.LifecycleWatcher(this._frameManager,this._frame,r,n),o=await Promise.race([a.timeoutOrTerminationPromise(),a.lifecyclePromise()]);if(a.dispose(),o)throw o}async addScriptTag(e){async function t(e,t){const r=document.createElement("script");r.src=e,t&&(r.type=t);const n=new Promise((e,t)=>{r.onload=e,r.onerror=t});return document.head.appendChild(r),await n,r}function r(e,t="text/javascript"){const r=document.createElement("script");r.type=t,r.text=e;let n=null;if(r.onerror=t=>n=t,document.head.appendChild(r),n)throw n;return r}const{url:n=null,path:a=null,content:i=null,type:s=""}=e;if(null!==n)try{const e=await this.executionContext();return(await e.evaluateHandle(t,n,s)).asElement()}catch(e){throw new Error(`Loading script from ${n} failed`)}if(null!==a){if(!d.isNode)throw new Error("Cannot pass a filepath to addScriptTag in the browser environment.");const e=await o.helper.importFSModule();let t=await e.promises.readFile(a,"utf8");t+="//# sourceURL="+a.replace(/\n/g,"");const n=await this.executionContext();return(await n.evaluateHandle(r,t,s)).asElement()}if(null!==i){const e=await this.executionContext();return(await e.evaluateHandle(r,i,s)).asElement()}throw new Error("Provide an object with a `url`, `path` or `content` property")}async addStyleTag(e){async function t(e){const t=document.createElement("link");t.rel="stylesheet",t.href=e;const r=new Promise((e,r)=>{t.onload=e,t.onerror=r});return document.head.appendChild(t),await r,t}async function r(e){const t=document.createElement("style");t.type="text/css",t.appendChild(document.createTextNode(e));const r=new Promise((e,r)=>{t.onload=e,t.onerror=r});return document.head.appendChild(t),await r,t}const{url:n=null,path:a=null,content:i=null}=e;if(null!==n)try{const e=await this.executionContext();return(await e.evaluateHandle(t,n)).asElement()}catch(e){throw new Error(`Loading style from ${n} failed`)}if(null!==a){if(!d.isNode)throw new Error("Cannot pass a filepath to addStyleTag in the browser environment.");const e=await o.helper.importFSModule();let t=await e.promises.readFile(a,"utf8");t+="/*# sourceURL="+a.replace(/\n/g,"")+"*/";const n=await this.executionContext();return(await n.evaluateHandle(r,t)).asElement()}if(null!==i){const e=await this.executionContext();return(await e.evaluateHandle(r,i)).asElement()}throw new Error("Provide an object with a `url`, `path` or `content` property")}async click(e,t){const r=await this.$(e);a.assert(r,"No node found for selector: "+e),await r.click(t),await r.dispose()}async focus(e){const t=await this.$(e);a.assert(t,"No node found for selector: "+e),await t.focus(),await t.dispose()}async hover(e){const t=await this.$(e);a.assert(t,"No node found for selector: "+e),await t.hover(),await t.dispose()}async select(e,...t){const r=await this.$(e);a.assert(r,"No node found for selector: "+e);const n=await r.select(...t);return await r.dispose(),n}async tap(e){const t=await this.$(e);await t.tap(),await t.dispose()}async type(e,t,r){const n=await this.$(e);a.assert(n,"No node found for selector: "+e),await n.type(t,r),await n.dispose()}async waitForSelector(e,t){const{updatedSelector:r,queryHandler:n}=l.getQueryHandlerAndSelector(e);return n.waitFor(this,r,t)}async addBindingToContext(e,t){if(!this._ctxBindings.has(p.bindingIdentifier(t,e._contextId))){if(this._settingUpBinding)return await this._settingUpBinding,this.addBindingToContext(e,t);this._settingUpBinding=(async t=>{const r=o.helper.pageBindingInitString("internal",t);try{await e._client.send("Runtime.addBinding",{name:t,executionContextId:e._contextId}),await e.evaluate(r)}catch(e){const t=e.message.includes("Execution context was destroyed"),r=e.message.includes("Cannot find context with specified id");return t||r?void 0:void o.debugError(e)}this._ctxBindings.add(p.bindingIdentifier(t,e._contextId))})(t),await this._settingUpBinding,this._settingUpBinding=null}}async _onBindingCalled(e){function t(e,t,r){globalThis[e].callbacks.get(t).resolve(r),globalThis[e].callbacks.delete(t)}let r;if(this._hasContext()){const n=await this.executionContext();try{r=JSON.parse(e.payload)}catch{return}const{type:a,name:i,seq:s,args:l}=r;if("internal"===a&&this._ctxBindings.has(p.bindingIdentifier(i,n._contextId))&&n._contextId===e.executionContextId)try{const e=await this._boundFunctions.get(i)(...l);await n.evaluate(t,i,s,e)}catch(e){if(e.message.includes("Protocol error"))return;o.debugError(e)}}}async waitForSelectorInPage(e,t,r,n){const{visible:a=!1,hidden:i=!1,timeout:s=this._timeoutSettings.timeout()}=r,l=a||i?"raf":"mutation",d=`selector \`${t}\`${i?" to be hidden":""}`,p={domWorld:this,predicateBody:o.helper.makePredicateString(async function(e,t,r){const n=predicateQueryHandler?await predicateQueryHandler(document,e):document.querySelector(e);return checkWaitForOptions(n,t,r)},e),title:d,polling:l,timeout:s,args:[t,a,i],binding:n},u=new c(p),m=await u.promise,g=m.asElement();return g?g:(await m.dispose(),null)}async waitForXPath(e,t){const{visible:r=!1,hidden:n=!1,timeout:a=this._timeoutSettings.timeout()}=t,i=r||n?"raf":"mutation",s=`XPath \`${e}\`${n?" to be hidden":""}`,l={domWorld:this,predicateBody:o.helper.makePredicateString(function(e,t,r){const n=document.evaluate(e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;return checkWaitForOptions(n,t,r)}),title:s,polling:i,timeout:a,args:[e,r,n]},d=new c(l),p=await d.promise,u=p.asElement();return u?u:(await p.dispose(),null)}waitForFunction(e,t={},...r){const{polling:n="raf",timeout:a=this._timeoutSettings.timeout()}=t,o={domWorld:this,predicateBody:e,title:"function",polling:n,timeout:a,args:r},i=new c(o);return i.promise}async title(){return this.evaluate(()=>document.title)}}t.DOMWorld=p,p.bindingIdentifier=(e,t)=>`${e}_${t}`;class c{constructor(e){if(this._runCount=0,this._terminated=!1,o.helper.isString(e.polling))a.assert("raf"===e.polling||"mutation"===e.polling,"Unknown polling option: "+e.polling);else if(o.helper.isNumber(e.polling))a.assert(0{this._resolve=e,this._reject=t}),e.timeout){const t=new s.TimeoutError(`waiting for ${e.title} failed: timeout ${e.timeout}ms exceeded`);this._timeoutTimer=setTimeout(()=>this.terminate(t),e.timeout)}this.rerun()}terminate(e){this._terminated=!0,this._reject(e),this._cleanup()}async rerun(){const e=++this._runCount;let t=null,r=null;const a=await this._domWorld.executionContext();if(!(this._terminated||e!==this._runCount)&&(this._binding&&(await this._domWorld.addBindingToContext(a,this._binding.name)),!(this._terminated||e!==this._runCount))){try{t=await a.evaluateHandle(n,this._predicateBody,this._polling,this._timeout,...this._args)}catch(e){r=e}if(this._terminated||e!==this._runCount)return void(t&&(await t.dispose()));if(!r&&(await this._domWorld.evaluate(e=>!e,t).catch(()=>!0)))return void(await t.dispose());if(r){if(r.message.includes("TypeError: binding is not a function"))return this.rerun();if(r.message.includes("Execution context is not available in detached frame"))return void this.terminate(new Error("waitForFunction failed: frame got detached."));if(r.message.includes("Execution context was destroyed"))return;if(r.message.includes("Cannot find context with specified id"))return;this._reject(r)}else this._resolve(t);this._cleanup()}}_cleanup(){clearTimeout(this._timeoutTimer),this._domWorld._waitTasks.delete(this)}}t.WaitTask=c},49259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debug=void 0;const n=r(23222);t.debug=e=>n.isNode?r(35304)(e):(...t)=>{const r=globalThis.__PUPPETEER_DEBUG;if(!r)return;const n="*"===r||(r.endsWith("*")?e.startsWith(r):e===r);n&&console.log(`${e}:`,...t)}},34906:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.devicesMap=void 0;const r=[{name:"Blackberry PlayBook",userAgent:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+",viewport:{width:600,height:1024,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Blackberry PlayBook landscape",userAgent:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+",viewport:{width:1024,height:600,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"BlackBerry Z30",userAgent:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"BlackBerry Z30 landscape",userAgent:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy Note 3",userAgent:"Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy Note 3 landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy Note II",userAgent:"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy Note II landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy S III",userAgent:"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy S III landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy S5",userAgent:"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy S5 landscape",userAgent:"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:768,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:768,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad Mini",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:768,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad Mini landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:768,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad Pro",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:1366,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad Pro landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1366,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 4",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53",viewport:{width:320,height:480,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 4 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53",viewport:{width:480,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 5",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:320,height:568,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 5 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:568,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 6",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 6 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 6 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 6 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 7",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 7 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 7 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 7 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 8",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 8 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 8 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 8 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone SE",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:320,height:568,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone SE landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:568,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone X",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:812,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone X landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:812,height:375,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone XR",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",viewport:{width:414,height:896,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone XR landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",viewport:{width:896,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"JioPhone 2",userAgent:"Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5",viewport:{width:240,height:320,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"JioPhone 2 landscape",userAgent:"Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5",viewport:{width:320,height:240,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Kindle Fire HDX",userAgent:"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true",viewport:{width:800,height:1280,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Kindle Fire HDX landscape",userAgent:"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true",viewport:{width:1280,height:800,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"LG Optimus L70",userAgent:"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:384,height:640,deviceScaleFactor:1.25,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"LG Optimus L70 landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:384,deviceScaleFactor:1.25,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Microsoft Lumia 550",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Microsoft Lumia 950",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:360,height:640,deviceScaleFactor:4,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Microsoft Lumia 950 landscape",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:640,height:360,deviceScaleFactor:4,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 10",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:800,height:1280,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 10 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:1280,height:800,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 4",userAgent:"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:384,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 4 landscape",userAgent:"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:384,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 5",userAgent:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 5 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 5X",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 5X landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 6",userAgent:"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 6 landscape",userAgent:"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 6P",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 6P landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 7",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:600,height:960,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 7 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:960,height:600,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nokia Lumia 520",userAgent:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)",viewport:{width:320,height:533,deviceScaleFactor:1.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nokia Lumia 520 landscape",userAgent:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)",viewport:{width:533,height:320,deviceScaleFactor:1.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nokia N9",userAgent:"Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",viewport:{width:480,height:854,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nokia N9 landscape",userAgent:"Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",viewport:{width:854,height:480,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 2",userAgent:"Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:411,height:731,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 2 landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:731,height:411,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 2 XL",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:411,height:823,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 2 XL landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:823,height:411,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}}],n={};t.devicesMap=n;for(const a of r)n[a.name]=a},2915:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Dialog=void 0;const n=r(85668);t.Dialog=class e{constructor(e,t,r,n=""){this._handled=!1,this._client=e,this._type=t,this._message=r,this._defaultValue=n}type(){return this._type}message(){return this._message}defaultValue(){return this._defaultValue}async accept(e){n.assert(!this._handled,"Cannot accept dialog which is already handled!"),this._handled=!0,await this._client.send("Page.handleJavaScriptDialog",{accept:!0,promptText:e})}async dismiss(){n.assert(!this._handled,"Cannot dismiss dialog which is already handled!"),this._handled=!0,await this._client.send("Page.handleJavaScriptDialog",{accept:!1})}}},3449:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EmulationManager=void 0;t.EmulationManager=class e{constructor(e){this._emulatingMobile=!1,this._hasTouch=!1,this._client=e}async emulateViewport(e){const t=e.isMobile||!1,r=e.width,n=e.height,a=e.deviceScaleFactor||1,o=e.isLandscape?{angle:90,type:"landscapePrimary"}:{angle:0,type:"portraitPrimary"},i=e.hasTouch||!1;await Promise.all([this._client.send("Emulation.setDeviceMetricsOverride",{mobile:t,width:r,height:n,deviceScaleFactor:a,screenOrientation:o}),this._client.send("Emulation.setTouchEmulationEnabled",{enabled:i})]);const s=this._emulatingMobile!==t||this._hasTouch!==i;return this._emulatingMobile=t,this._hasTouch=i,s}}},29554:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.puppeteerErrors=t.TimeoutError=void 0;class r extends Error{constructor(e){super(e),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor)}}class n extends r{}t.TimeoutError=n,t.puppeteerErrors={TimeoutError:n}},2680:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EventEmitter=void 0;const a=n(r(78229));t.EventEmitter=class e{constructor(){this.eventsMap=new Map,this.emitter=a.default(this.eventsMap)}on(e,t){return this.emitter.on(e,t),this}off(e,t){return this.emitter.off(e,t),this}removeListener(e,t){return this.off(e,t),this}addListener(e,t){return this.on(e,t),this}emit(e,t){return this.emitter.emit(e,t),0{t(n),this.off(e,r)};return this.on(e,r)}listenerCount(e){return this.eventListenersCount(e)}removeAllListeners(e){return e?this.eventsMap.delete(e):this.eventsMap.clear(),this}eventListenersCount(e){return this.eventsMap.has(e)?this.eventsMap.get(e).length:0}}},59574:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExecutionContext=t.EVALUATION_SCRIPT_URL=void 0;const n=r(85668),a=r(47674),o=r(79272);t.EVALUATION_SCRIPT_URL="__puppeteer_evaluation_script__";t.ExecutionContext=class e{constructor(e,t,r){this._client=e,this._world=r,this._contextId=t.id}frame(){return this._world?this._world.frame():null}async evaluate(e,...t){return await this._evaluateInternal(!0,e,...t)}async evaluateHandle(e,...t){return this._evaluateInternal(!1,e,...t)}async _evaluateInternal(e,r,...n){function i(e){if("bigint"==typeof e)return{unserializableValue:`${e.toString()}n`};if(Object.is(e,-0))return{unserializableValue:"-0"};if(Object.is(e,1/0))return{unserializableValue:"Infinity"};if(Object.is(e,-Infinity))return{unserializableValue:"-Infinity"};if(Object.is(e,NaN))return{unserializableValue:"NaN"};const t=e&&e instanceof o.JSHandle?e:null;if(t){if(t._context!==this)throw new Error("JSHandles can be evaluated only in the context they were created!");if(t._disposed)throw new Error("JSHandle is disposed!");return t._remoteObject.unserializableValue?{unserializableValue:t._remoteObject.unserializableValue}:t._remoteObject.objectId?{objectId:t._remoteObject.objectId}:{value:t._remoteObject.value}}return{value:e}}function s(e){if(e.message.includes("Object reference chain is too long"))return{result:{type:"undefined"}};if(e.message.includes("Object couldn't be returned by value"))return{result:{type:"undefined"}};if(e.message.endsWith("Cannot find context with specified id")||e.message.endsWith("Inspected target navigated or closed"))throw new Error("Execution context was destroyed, most likely because of a navigation.");throw e}const l=`//# sourceURL=${t.EVALUATION_SCRIPT_URL}`;if(a.helper.isString(r)){const t=this._contextId,n=r,i=/^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$/m.test(n)?n:n+"\n"+l,{exceptionDetails:d,result:p}=await this._client.send("Runtime.evaluate",{expression:i,contextId:t,returnByValue:e,awaitPromise:!0,userGesture:!0}).catch(s);if(d)throw new Error("Evaluation failed: "+a.helper.getExceptionMessage(d));return e?a.helper.valueFromRemoteObject(p):o.createJSHandle(this,p)}if("function"!=typeof r)throw new Error(`Expected to get |string| or |function| as the first argument, but got "${r}" instead.`);let d=r.toString();try{new Function("("+d+")")}catch(e){d=d.startsWith("async ")?"async function "+d.substring(6):"function "+d;try{new Function("("+d+")")}catch(e){throw new Error("Passed function is not well-serializable!")}}let p;try{p=this._client.send("Runtime.callFunctionOn",{functionDeclaration:d+"\n"+l+"\n",executionContextId:this._contextId,arguments:n.map(i.bind(this)),returnByValue:e,awaitPromise:!0,userGesture:!0})}catch(e){throw e instanceof TypeError&&e.message.startsWith("Converting circular structure to JSON")&&(e.message+=" Are you passing a nested JSHandle?"),e}const{exceptionDetails:c,result:u}=await p.catch(s);if(c)throw new Error("Evaluation failed: "+a.helper.getExceptionMessage(c));return e?a.helper.valueFromRemoteObject(u):o.createJSHandle(this,u)}async queryObjects(e){n.assert(!e._disposed,"Prototype JSHandle is disposed!"),n.assert(e._remoteObject.objectId,"Prototype JSHandle must not be referencing primitive value");const t=await this._client.send("Runtime.queryObjects",{prototypeObjectId:e._remoteObject.objectId});return o.createJSHandle(this,t.objects)}async _adoptBackendNodeId(e){const{object:t}=await this._client.send("DOM.resolveNode",{backendNodeId:e,executionContextId:this._contextId});return o.createJSHandle(this,t)}async _adoptElementHandle(e){n.assert(e.executionContext()!==this,"Cannot adopt handle that already belongs to this execution context"),n.assert(this._world,"Cannot adopt handle without DOMWorld");const t=await this._client.send("DOM.describeNode",{objectId:e._remoteObject.objectId});return this._adoptBackendNodeId(t.node.backendNodeId)}}},23254:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileChooser=void 0;const n=r(85668);t.FileChooser=class e{constructor(e,t){this._handled=!1,this._element=e,this._multiple="selectSingle"!==t.mode}isMultiple(){return this._multiple}async accept(e){n.assert(!this._handled,"Cannot accept FileChooser which is already handled!"),this._handled=!0,await this._element.uploadFile(...e)}async cancel(){n.assert(!this._handled,"Cannot cancel FileChooser which is already handled!"),this._handled=!0}}},71886:(e,t,r)=>{"use strict";function n(e){i.assert(void 0===e.networkIdleTimeout,"ERROR: networkIdleTimeout option is no longer supported."),i.assert(void 0===e.networkIdleInflight,"ERROR: networkIdleInflight option is no longer supported."),i.assert("networkidle"!==e.waitUntil,"ERROR: \"networkidle\" option is no longer supported. Use \"networkidle2\" instead")}Object.defineProperty(t,"__esModule",{value:!0}),t.Frame=t.FrameManager=t.FrameManagerEmittedEvents=void 0;const a=r(49259),o=r(2680),i=r(85668),s=r(47674),l=r(59574),d=r(54954),p=r(5295),c=r(97966),u="__puppeteer_utility_world__";t.FrameManagerEmittedEvents={FrameAttached:Symbol("FrameManager.FrameAttached"),FrameNavigated:Symbol("FrameManager.FrameNavigated"),FrameDetached:Symbol("FrameManager.FrameDetached"),LifecycleEvent:Symbol("FrameManager.LifecycleEvent"),FrameNavigatedWithinDocument:Symbol("FrameManager.FrameNavigatedWithinDocument"),ExecutionContextCreated:Symbol("FrameManager.ExecutionContextCreated"),ExecutionContextDestroyed:Symbol("FrameManager.ExecutionContextDestroyed")};class m extends o.EventEmitter{constructor(e,t,r,n){super(),this._frames=new Map,this._contextIdToContext=new Map,this._isolatedWorlds=new Set,this._client=e,this._page=t,this._networkManager=new c.NetworkManager(e,r,this),this._timeoutSettings=n,this._client.on("Page.frameAttached",e=>this._onFrameAttached(e.frameId,e.parentFrameId)),this._client.on("Page.frameNavigated",e=>this._onFrameNavigated(e.frame)),this._client.on("Page.navigatedWithinDocument",e=>this._onFrameNavigatedWithinDocument(e.frameId,e.url)),this._client.on("Page.frameDetached",e=>this._onFrameDetached(e.frameId)),this._client.on("Page.frameStoppedLoading",e=>this._onFrameStoppedLoading(e.frameId)),this._client.on("Runtime.executionContextCreated",e=>this._onExecutionContextCreated(e.context)),this._client.on("Runtime.executionContextDestroyed",e=>this._onExecutionContextDestroyed(e.executionContextId)),this._client.on("Runtime.executionContextsCleared",()=>this._onExecutionContextsCleared()),this._client.on("Page.lifecycleEvent",e=>this._onLifecycleEvent(e)),this._client.on("Target.attachedToTarget",async e=>this._onFrameMoved(e))}async initialize(){const e=await Promise.all([this._client.send("Page.enable"),this._client.send("Page.getFrameTree")]),{frameTree:t}=e[1];this._handleFrameTree(t),await Promise.all([this._client.send("Page.setLifecycleEventsEnabled",{enabled:!0}),this._client.send("Runtime.enable").then(()=>this._ensureIsolatedWorld(u)),this._networkManager.initialize()])}networkManager(){return this._networkManager}async navigateFrame(e,t,r={}){async function a(e,t,r,n){try{const a=await e.send("Page.navigate",{url:t,referrer:r,frameId:n});return p=!!a.loaderId,a.errorText?new Error(`${a.errorText} at ${t}`):null}catch(e){return e}}n(r);const{referer:o=this._networkManager.extraHTTPHeaders().referer,waitUntil:i=["load"],timeout:s=this._timeoutSettings.navigationTimeout()}=r,l=new d.LifecycleWatcher(this,e,i,s);let p=!1,c=await Promise.race([a(this._client,t,o,e._id),l.timeoutOrTerminationPromise()]);if(c||(c=await Promise.race([l.timeoutOrTerminationPromise(),p?l.newDocumentNavigationPromise():l.sameDocumentNavigationPromise()])),l.dispose(),c)throw c;return l.navigationResponse()}async waitForFrameNavigation(e,t={}){n(t);const{waitUntil:r=["load"],timeout:a=this._timeoutSettings.navigationTimeout()}=t,o=new d.LifecycleWatcher(this,e,r,a),i=await Promise.race([o.timeoutOrTerminationPromise(),o.sameDocumentNavigationPromise(),o.newDocumentNavigationPromise()]);if(o.dispose(),i)throw i;return o.navigationResponse()}async _onFrameMoved(e){"iframe"!==e.targetInfo.type||a.debug("puppeteer:frame")(`The frame '${e.targetInfo.targetId}' moved to another session. `+`Out-of-process iframes (OOPIF) are not supported by Puppeteer yet. `+`https://github.com/puppeteer/puppeteer/issues/2548`)}_onLifecycleEvent(e){const r=this._frames.get(e.frameId);r&&(r._onLifecycleEvent(e.loaderId,e.name),this.emit(t.FrameManagerEmittedEvents.LifecycleEvent,r))}_onFrameStoppedLoading(e){const r=this._frames.get(e);r&&(r._onLoadingStopped(),this.emit(t.FrameManagerEmittedEvents.LifecycleEvent,r))}_handleFrameTree(e){if(e.frame.parentId&&this._onFrameAttached(e.frame.id,e.frame.parentId),this._onFrameNavigated(e.frame),!!e.childFrames)for(const t of e.childFrames)this._handleFrameTree(t)}page(){return this._page}mainFrame(){return this._mainFrame}frames(){return Array.from(this._frames.values())}frame(e){return this._frames.get(e)||null}_onFrameAttached(e,r){if(this._frames.has(e))return;i.assert(r);const n=this._frames.get(r),a=new g(this,n,e);this._frames.set(a._id,a),this.emit(t.FrameManagerEmittedEvents.FrameAttached,a)}_onFrameNavigated(e){const r=!e.parentId;let n=r?this._mainFrame:this._frames.get(e.id);if(i.assert(r||n,"We either navigate top level or have old version of the navigated frame"),n)for(const e of n.childFrames())this._removeFramesRecursively(e);r&&(n?(this._frames.delete(n._id),n._id=e.id):n=new g(this,null,e.id),this._frames.set(e.id,n),this._mainFrame=n),n._navigated(e),this.emit(t.FrameManagerEmittedEvents.FrameNavigated,n)}async _ensureIsolatedWorld(e){this._isolatedWorlds.has(e)||(this._isolatedWorlds.add(e),await this._client.send("Page.addScriptToEvaluateOnNewDocument",{source:`//# sourceURL=${l.EVALUATION_SCRIPT_URL}`,worldName:e}),await Promise.all(this.frames().map(t=>this._client.send("Page.createIsolatedWorld",{frameId:t._id,grantUniveralAccess:!0,worldName:e}).catch(s.debugError))))}_onFrameNavigatedWithinDocument(e,r){const n=this._frames.get(e);n&&(n._navigatedWithinDocument(r),this.emit(t.FrameManagerEmittedEvents.FrameNavigatedWithinDocument,n),this.emit(t.FrameManagerEmittedEvents.FrameNavigated,n))}_onFrameDetached(e){const t=this._frames.get(e);t&&this._removeFramesRecursively(t)}_onExecutionContextCreated(e){const t=e.auxData,r=t?t.frameId:null,n=this._frames.get(r)||null;let a=null;n&&(e.auxData&&!!e.auxData.isDefault?a=n._mainWorld:e.name===u&&!n._secondaryWorld._hasContext()&&(a=n._secondaryWorld)),e.auxData&&"isolated"===e.auxData.type&&this._isolatedWorlds.add(e.name);const o=new l.ExecutionContext(this._client,e,a);a&&a._setContext(o),this._contextIdToContext.set(e.id,o)}_onExecutionContextDestroyed(e){const t=this._contextIdToContext.get(e);t&&(this._contextIdToContext.delete(e),t._world&&t._world._setContext(null))}_onExecutionContextsCleared(){for(const e of this._contextIdToContext.values())e._world&&e._world._setContext(null);this._contextIdToContext.clear()}executionContextById(e){const t=this._contextIdToContext.get(e);return i.assert(t,"INTERNAL ERROR: missing context with id = "+e),t}_removeFramesRecursively(e){for(const t of e.childFrames())this._removeFramesRecursively(t);e._detach(),this._frames.delete(e._id),this.emit(t.FrameManagerEmittedEvents.FrameDetached,e)}}t.FrameManager=m;class g{constructor(e,t,r){this._url="",this._detached=!1,this._loaderId="",this._lifecycleEvents=new Set,this._frameManager=e,this._parentFrame=t,this._url="",this._id=r,this._detached=!1,this._loaderId="",this._mainWorld=new p.DOMWorld(e,this,e._timeoutSettings),this._secondaryWorld=new p.DOMWorld(e,this,e._timeoutSettings),this._childFrames=new Set,this._parentFrame&&this._parentFrame._childFrames.add(this)}async goto(e,t={}){return await this._frameManager.navigateFrame(this,e,t)}async waitForNavigation(e={}){return await this._frameManager.waitForFrameNavigation(this,e)}executionContext(){return this._mainWorld.executionContext()}async evaluateHandle(e,...t){return this._mainWorld.evaluateHandle(e,...t)}async evaluate(e,...t){return this._mainWorld.evaluate(e,...t)}async $(e){return this._mainWorld.$(e)}async $x(e){return this._mainWorld.$x(e)}async $eval(e,t,...r){return this._mainWorld.$eval(e,t,...r)}async $$eval(e,t,...r){return this._mainWorld.$$eval(e,t,...r)}async $$(e){return this._mainWorld.$$(e)}async content(){return this._secondaryWorld.content()}async setContent(e,t={}){return this._secondaryWorld.setContent(e,t)}name(){return this._name||""}url(){return this._url}parentFrame(){return this._parentFrame}childFrames(){return Array.from(this._childFrames)}isDetached(){return this._detached}async addScriptTag(e){return this._mainWorld.addScriptTag(e)}async addStyleTag(e){return this._mainWorld.addStyleTag(e)}async click(e,t={}){return this._secondaryWorld.click(e,t)}async focus(e){return this._secondaryWorld.focus(e)}async hover(e){return this._secondaryWorld.hover(e)}select(e,...t){return this._secondaryWorld.select(e,...t)}async tap(e){return this._secondaryWorld.tap(e)}async type(e,t,r){return this._mainWorld.type(e,t,r)}waitFor(e,t={},...r){if(console.warn("waitFor is deprecated and will be removed in a future release. See https://github.com/puppeteer/puppeteer/issues/6214 for details and how to migrate your code."),s.helper.isString(e)){const r=e;return r.startsWith("//")?this.waitForXPath(r,t):this.waitForSelector(r,t)}return s.helper.isNumber(e)?new Promise(t=>setTimeout(t,e)):"function"==typeof e?this.waitForFunction(e,t,...r):Promise.reject(new Error("Unsupported target type: "+typeof e))}waitForTimeout(e){return new Promise(t=>{setTimeout(t,e)})}async waitForSelector(e,t={}){const r=await this._secondaryWorld.waitForSelector(e,t);if(!r)return null;const n=await this._mainWorld.executionContext(),a=await n._adoptElementHandle(r);return await r.dispose(),a}async waitForXPath(e,t={}){const r=await this._secondaryWorld.waitForXPath(e,t);if(!r)return null;const n=await this._mainWorld.executionContext(),a=await n._adoptElementHandle(r);return await r.dispose(),a}waitForFunction(e,t={},...r){return this._mainWorld.waitForFunction(e,t,...r)}async title(){return this._secondaryWorld.title()}_navigated(e){this._name=e.name,this._url=`${e.url}${e.urlFragment||""}`}_navigatedWithinDocument(e){this._url=e}_onLifecycleEvent(e,t){"init"===t&&(this._loaderId=e,this._lifecycleEvents.clear()),this._lifecycleEvents.add(t)}_onLoadingStopped(){this._lifecycleEvents.add("DOMContentLoaded"),this._lifecycleEvents.add("load")}_detach(){this._detached=!0,this._mainWorld._detach(),this._secondaryWorld._detach(),this._parentFrame&&this._parentFrame._childFrames.delete(this),this._parentFrame=null}}t.Frame=g},68610:(e,t,r)=>{"use strict";function n(e){const t=[];for(const r in e)Object.is(e[r],void 0)||t.push({name:r,value:e[r]+""});return t}Object.defineProperty(t,"__esModule",{value:!0}),t.HTTPRequest=void 0;const a=r(85668),o=r(47674);t.HTTPRequest=class e{constructor(e,t,r,n,a,o){this._failureText=null,this._response=null,this._fromMemoryCache=!1,this._interceptionHandled=!1,this._headers={},this._client=e,this._requestId=a.requestId,this._isNavigationRequest=a.requestId===a.loaderId&&"Document"===a.type,this._interceptionId=r,this._allowInterception=n,this._url=a.request.url,this._resourceType=a.type.toLowerCase(),this._method=a.request.method,this._postData=a.request.postData,this._frame=t,this._redirectChain=o;for(const i of Object.keys(a.request.headers))this._headers[i.toLowerCase()]=a.request.headers[i]}url(){return this._url}resourceType(){return this._resourceType}method(){return this._method}postData(){return this._postData}headers(){return this._headers}response(){return this._response}frame(){return this._frame}isNavigationRequest(){return this._isNavigationRequest}redirectChain(){return this._redirectChain.slice()}failure(){return this._failureText?{errorText:this._failureText}:null}async continue(e={}){if(!this._url.startsWith("data:")){a.assert(this._allowInterception,"Request Interception is not enabled!"),a.assert(!this._interceptionHandled,"Request is already handled!");const{url:t,method:r,postData:i,headers:s}=e;this._interceptionHandled=!0;const l=i?Buffer.from(i).toString("base64"):void 0;await this._client.send("Fetch.continueRequest",{requestId:this._interceptionId,url:t,method:r,postData:l,headers:s?n(s):void 0}).catch(e=>{o.debugError(e)})}}async respond(e){if(this._url.startsWith("data:"))return;a.assert(this._allowInterception,"Request Interception is not enabled!"),a.assert(!this._interceptionHandled,"Request is already handled!"),this._interceptionHandled=!0;const t=e.body&&o.helper.isString(e.body)?Buffer.from(e.body):e.body||null,r={};if(e.headers)for(const t of Object.keys(e.headers))r[t.toLowerCase()]=e.headers[t];e.contentType&&(r["content-type"]=e.contentType),t&&!("content-length"in r)&&(r["content-length"]=Buffer.byteLength(t)+""),await this._client.send("Fetch.fulfillRequest",{requestId:this._interceptionId,responseCode:e.status||200,responsePhrase:s[e.status||200],responseHeaders:n(r),body:t?t.toString("base64"):void 0}).catch(e=>{o.debugError(e)})}async abort(e="failed"){if(!this._url.startsWith("data:")){const t=i[e];a.assert(t,"Unknown error code: "+e),a.assert(this._allowInterception,"Request Interception is not enabled!"),a.assert(!this._interceptionHandled,"Request is already handled!"),this._interceptionHandled=!0,await this._client.send("Fetch.failRequest",{requestId:this._interceptionId,errorReason:t}).catch(e=>{o.debugError(e)})}}};const i={aborted:"Aborted",accessdenied:"AccessDenied",addressunreachable:"AddressUnreachable",blockedbyclient:"BlockedByClient",blockedbyresponse:"BlockedByResponse",connectionaborted:"ConnectionAborted",connectionclosed:"ConnectionClosed",connectionfailed:"ConnectionFailed",connectionrefused:"ConnectionRefused",connectionreset:"ConnectionReset",internetdisconnected:"InternetDisconnected",namenotresolved:"NameNotResolved",timedout:"TimedOut",failed:"Failed"},s={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"}},59206:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HTTPResponse=void 0;const n=r(55468);t.HTTPResponse=class e{constructor(e,t,r){this._contentPromise=null,this._headers={},this._client=e,this._request=t,this._bodyLoadedPromise=new Promise(e=>{this._bodyLoadedPromiseFulfill=e}),this._remoteAddress={ip:r.remoteIPAddress,port:r.remotePort},this._status=r.status,this._statusText=r.statusText,this._url=t.url(),this._fromDiskCache=!!r.fromDiskCache,this._fromServiceWorker=!!r.fromServiceWorker;for(const n of Object.keys(r.headers))this._headers[n.toLowerCase()]=r.headers[n];this._securityDetails=r.securityDetails?new n.SecurityDetails(r.securityDetails):null}_resolveBody(e){return this._bodyLoadedPromiseFulfill(e)}remoteAddress(){return this._remoteAddress}url(){return this._url}ok(){return 0===this._status||200<=this._status&&299>=this._status}status(){return this._status}statusText(){return this._statusText}headers(){return this._headers}securityDetails(){return this._securityDetails}buffer(){return this._contentPromise||(this._contentPromise=this._bodyLoadedPromise.then(async e=>{if(e)throw e;const t=await this._client.send("Network.getResponseBody",{requestId:this._request._requestId});return Buffer.from(t.body,t.base64Encoded?"base64":"utf8")})),this._contentPromise}async text(){const e=await this.buffer();return e.toString("utf8")}async json(){const e=await this.text();return JSON.parse(e)}request(){return this._request}fromCache(){return this._fromDiskCache||this._request._fromMemoryCache}fromServiceWorker(){return this._fromServiceWorker}frame(){return this._request.frame()}}},80771:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Touchscreen=t.Mouse=t.Keyboard=void 0;const n=r(85668),a=r(85654);t.Keyboard=class e{constructor(e){this._modifiers=0,this._pressedKeys=new Set,this._client=e}async down(e,t={text:void 0}){const r=this._keyDescriptionForString(e),n=this._pressedKeys.has(r.code);this._pressedKeys.add(r.code),this._modifiers|=this._modifierBit(r.key);const a=void 0===t.text?r.text:t.text;await this._client.send("Input.dispatchKeyEvent",{type:a?"keyDown":"rawKeyDown",modifiers:this._modifiers,windowsVirtualKeyCode:r.keyCode,code:r.code,key:r.key,text:a,unmodifiedText:a,autoRepeat:n,location:r.location,isKeypad:3===r.location})}_modifierBit(e){return"Alt"===e?1:"Control"===e?2:"Meta"===e?4:"Shift"===e?8:0}_keyDescriptionForString(e){const t=8&this._modifiers,r={key:"",keyCode:0,code:"",text:"",location:0},o=a.keyDefinitions[e];return n.assert(o,`Unknown key: "${e}"`),o.key&&(r.key=o.key),t&&o.shiftKey&&(r.key=o.shiftKey),o.keyCode&&(r.keyCode=o.keyCode),t&&o.shiftKeyCode&&(r.keyCode=o.shiftKeyCode),o.code&&(r.code=o.code),o.location&&(r.location=o.location),1===r.key.length&&(r.text=r.key),o.text&&(r.text=o.text),t&&o.shiftText&&(r.text=o.shiftText),-9&this._modifiers&&(r.text=""),r}async up(e){const t=this._keyDescriptionForString(e);this._modifiers&=~this._modifierBit(t.key),this._pressedKeys.delete(t.code),await this._client.send("Input.dispatchKeyEvent",{type:"keyUp",modifiers:this._modifiers,key:t.key,windowsVirtualKeyCode:t.keyCode,code:t.code,location:t.location})}async sendCharacter(e){await this._client.send("Input.insertText",{text:e})}charIsKey(e){return!!a.keyDefinitions[e]}async type(e,t={}){const r=t.delay||null;for(const n of e)this.charIsKey(n)?await this.press(n,{delay:r}):(r&&(await new Promise(e=>setTimeout(e,r))),await this.sendCharacter(n))}async press(e,t={}){const{delay:r=null}=t;await this.down(e,t),r&&(await new Promise(e=>setTimeout(e,t.delay))),await this.up(e)}};t.Mouse=class e{constructor(e,t){this._x=0,this._y=0,this._button="none",this._client=e,this._keyboard=t}async move(e,t,r={}){const{steps:n=1}=r,a=this._x,o=this._y;this._x=e,this._y=t;for(let s=1;s<=n;s++)await this._client.send("Input.dispatchMouseEvent",{type:"mouseMoved",button:this._button,x:a+(this._x-a)*(s/n),y:o+(this._y-o)*(s/n),modifiers:this._keyboard._modifiers})}async click(e,t,r={}){const{delay:n=null}=r;null===n?await Promise.all([this.move(e,t),this.down(r),this.up(r)]):(await Promise.all([this.move(e,t),this.down(r)]),await new Promise(e=>setTimeout(e,n)),await this.up(r))}async down(e={}){const{button:t="left",clickCount:r=1}=e;this._button=t,await this._client.send("Input.dispatchMouseEvent",{type:"mousePressed",button:t,x:this._x,y:this._y,modifiers:this._keyboard._modifiers,clickCount:r})}async up(e={}){const{button:t="left",clickCount:r=1}=e;this._button="none",await this._client.send("Input.dispatchMouseEvent",{type:"mouseReleased",button:t,x:this._x,y:this._y,modifiers:this._keyboard._modifiers,clickCount:r})}async wheel(e={}){const{deltaX:t=0,deltaY:r=0}=e;await this._client.send("Input.dispatchMouseEvent",{type:"mouseWheel",x:this._x,y:this._y,deltaX:t,deltaY:r,modifiers:this._keyboard._modifiers,pointerType:"mouse"})}};t.Touchscreen=class e{constructor(e,t){this._client=e,this._keyboard=t}async tap(e,t){const r=[{x:_Mathround(e),y:_Mathround(t)}];await this._client.send("Input.dispatchTouchEvent",{type:"touchStart",touchPoints:r,modifiers:this._keyboard._modifiers}),await this._client.send("Input.dispatchTouchEvent",{type:"touchEnd",touchPoints:[],modifiers:this._keyboard._modifiers})}}},79272:function(e,t,r){"use strict";function n(e,t){const r=e.frame();if("node"===t.subtype&&r){const n=r._frameManager;return new m(e,e._client,t,n.page(),n)}return new u(e,e._client,t)}function a(e){let t=0;for(let r=0;r{const r={__proto__:null};return r[t]=e[t],r},e),r=await t.getProperties(),n=r.get(e)||null;return await t.dispose(),n}async getProperties(){const e=await this._client.send("Runtime.getProperties",{objectId:this._remoteObject.objectId,ownProperties:!0}),t=new Map;for(const r of e.result)r.enumerable&&t.set(r.name,n(this._context,r.value));return t}async jsonValue(){if(this._remoteObject.objectId){const e=await this._client.send("Runtime.callFunctionOn",{functionDeclaration:"function() { return this; }",objectId:this._remoteObject.objectId,returnByValue:!0,awaitPromise:!0});return d.helper.valueFromRemoteObject(e.result)}return d.helper.valueFromRemoteObject(this._remoteObject)}asElement(){return null}async dispose(){this._disposed||(this._disposed=!0,await d.helper.releaseObject(this._client,this._remoteObject))}toString(){if(this._remoteObject.objectId){const e=this._remoteObject.subtype||this._remoteObject.type;return"JSHandle@"+e}return"JSHandle:"+d.helper.valueFromRemoteObject(this._remoteObject)}}t.JSHandle=u;class m extends u{constructor(e,t,r,n,a){super(e,t,r),this._client=t,this._remoteObject=r,this._page=n,this._frameManager=a}asElement(){return this}async contentFrame(){const e=await this._client.send("DOM.describeNode",{objectId:this._remoteObject.objectId});return"string"==typeof e.node.frameId?this._frameManager.frame(e.node.frameId):null}async _scrollIntoViewIfNeeded(){const e=await this.evaluate(async(e,t)=>{if(!e.isConnected)return"Node is detached from document";if(e.nodeType!==Node.ELEMENT_NODE)return"Node is not of type HTMLElement";if(!t)return e.scrollIntoView({block:"center",inline:"center",behavior:"instant"}),!1;const r=await new Promise(t=>{const r=new IntersectionObserver(e=>{t(e[0].intersectionRatio),r.disconnect()});r.observe(e)});return 1!==r&&e.scrollIntoView({block:"center",inline:"center",behavior:"instant"}),!1},this._page.isJavaScriptEnabled());if(e)throw new Error(e)}async _clickablePoint(){const[e,t]=await Promise.all([this._client.send("DOM.getContentQuads",{objectId:this._remoteObject.objectId}).catch(d.debugError),this._client.send("Page.getLayoutMetrics")]);if(!e||!e.quads.length)throw new Error("Node is either not visible or not an HTMLElement");const{clientWidth:r,clientHeight:n}=t.layoutViewport,o=e.quads.map(e=>this._fromProtocolQuad(e)).map(e=>this._intersectQuadWithViewport(e,r,n)).filter(e=>1d.debugError(e))}_fromProtocolQuad(e){return[{x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},{x:e[6],y:e[7]}]}_intersectQuadWithViewport(e,t,r){return e.map(e=>({x:_Mathmin(_Mathmax(e.x,0),t),y:_Mathmin(_Mathmax(e.y,0),r)}))}async hover(){await this._scrollIntoViewIfNeeded();const{x:e,y:t}=await this._clickablePoint();await this._page.mouse.move(e,t)}async click(e={}){await this._scrollIntoViewIfNeeded();const{x:t,y:r}=await this._clickablePoint();await this._page.mouse.click(t,r,e)}async select(...e){for(const t of e)l.assert(d.helper.isString(t),"Values must be strings. Found value \""+t+"\" of type \""+typeof t+"\"");return this.evaluate((e,t)=>{if("select"!==e.nodeName.toLowerCase())throw new Error("Element is not a "),!c.isNode)throw new Error(`JSHandle#uploadFile can only be used in Node environments.`);const n=await Promise.resolve().then(()=>s(r(85622))),a=await d.helper.importFSModule(),o=await Promise.all(e.map(async e=>{const t=n.resolve(e);try{await a.promises.access(t,a.constants.R_OK)}catch(t){if("ENOENT"===t.code)throw new Error(`${e} does not exist or is not readable`)}return t})),{objectId:i}=this._remoteObject,{node:p}=await this._client.send("DOM.describeNode",{objectId:i}),{backendNodeId:u}=p;0===o.length?await this.evaluate(e=>{e.files=new DataTransfer().files,e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}):await this._client.send("DOM.setFileInputFiles",{objectId:i,files:o,backendNodeId:u})}async tap(){await this._scrollIntoViewIfNeeded();const{x:e,y:t}=await this._clickablePoint();await this._page.touchscreen.tap(e,t)}async focus(){await this.evaluate(e=>e.focus())}async type(e,t){await this.focus(),await this._page.keyboard.type(e,t)}async press(e,t){await this.focus(),await this._page.keyboard.press(e,t)}async boundingBox(){const e=await this._getBoxModel();if(!e)return null;const t=e.model.border,r=_Mathmin(t[0],t[2],t[4],t[6]),n=_Mathmin(t[1],t[3],t[5],t[7]),a=_Mathmax(t[0],t[2],t[4],t[6])-r,o=_Mathmax(t[1],t[3],t[5],t[7])-n;return{x:r,y:n,width:a,height:o}}async boxModel(){const e=await this._getBoxModel();if(!e)return null;const{content:t,padding:r,border:n,margin:a,width:o,height:i}=e.model;return{content:this._fromProtocolQuad(t),padding:this._fromProtocolQuad(r),border:this._fromProtocolQuad(n),margin:this._fromProtocolQuad(a),width:o,height:i}}async screenshot(e={}){let t=!1,r=await this.boundingBox();l.assert(r,"Node is either not visible or not an HTMLElement");const n=this._page.viewport();if(n&&(r.width>n.width||r.height>n.height)){const e={width:_Mathmax(n.width,_Mathceil(r.width)),height:_Mathmax(n.height,_Mathceil(r.height))};await this._page.setViewport(Object.assign({},n,e)),t=!0}await this._scrollIntoViewIfNeeded(),r=await this.boundingBox(),l.assert(r,"Node is either not visible or not an HTMLElement"),l.assert(0!==r.width,"Node has 0 width."),l.assert(0!==r.height,"Node has 0 height.");const{layoutViewport:{pageX:a,pageY:o}}=await this._client.send("Page.getLayoutMetrics"),i=Object.assign({},r);i.x+=a,i.y+=o;const s=await this._page.screenshot(Object.assign({},{clip:i},e));return t&&(await this._page.setViewport(n)),s}async $(e){const{updatedSelector:t,queryHandler:r}=p.getQueryHandlerAndSelector(e);return r.queryOne(this,t)}async $$(e){const{updatedSelector:t,queryHandler:r}=p.getQueryHandlerAndSelector(e);return r.queryAll(this,t)}async $eval(e,t,...r){const n=await this.$(e);if(!n)throw new Error(`Error: failed to find element matching selector "${e}"`);const a=await n.evaluate(t,...r);return await n.dispose(),a}async $$eval(e,t,...r){const{updatedSelector:n,queryHandler:a}=p.getQueryHandlerAndSelector(e),o=await a.queryAllArray(this,n),i=await o.evaluate(t,...r);return await o.dispose(),i}async $x(e){const t=await this.evaluateHandle((e,t)=>{const r=e.ownerDocument||e,n=r.evaluate(t,e,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE),a=[];for(let r;r=n.iterateNext();)a.push(r);return a},e),r=await t.getProperties();await t.dispose();const n=[];for(const t of r.values()){const e=t.asElement();e&&n.push(e)}return n}async isIntersectingViewport(){return await this.evaluate(async e=>{const t=await new Promise(t=>{const r=new IntersectionObserver(e=>{t(e[0].intersectionRatio),r.disconnect()});r.observe(e)});return 0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LifecycleWatcher=void 0;const n=r(85668),a=r(47674),o=r(29554),i=r(71886),s=r(97966),l=r(58602),d=new Map([["load","load"],["domcontentloaded","DOMContentLoaded"],["networkidle0","networkIdle"],["networkidle2","networkAlmostIdle"]]);t.LifecycleWatcher=class e{constructor(e,t,r,o){Array.isArray(r)?r=r.slice():"string"==typeof r&&(r=[r]),this._expectedLifecycle=r.map(e=>{const t=d.get(e);return n.assert(t,"Unknown value for options.waitUntil: "+e),t}),this._frameManager=e,this._frame=t,this._initialLoaderId=t._loaderId,this._timeout=o,this._navigationRequest=null,this._eventListeners=[a.helper.addEventListener(e._client,l.CDPSessionEmittedEvents.Disconnected,()=>this._terminate(new Error("Navigation failed because browser has disconnected!"))),a.helper.addEventListener(this._frameManager,i.FrameManagerEmittedEvents.LifecycleEvent,this._checkLifecycleComplete.bind(this)),a.helper.addEventListener(this._frameManager,i.FrameManagerEmittedEvents.FrameNavigatedWithinDocument,this._navigatedWithinDocument.bind(this)),a.helper.addEventListener(this._frameManager,i.FrameManagerEmittedEvents.FrameDetached,this._onFrameDetached.bind(this)),a.helper.addEventListener(this._frameManager.networkManager(),s.NetworkManagerEmittedEvents.Request,this._onRequest.bind(this))],this._sameDocumentNavigationPromise=new Promise(e=>{this._sameDocumentNavigationCompleteCallback=e}),this._lifecyclePromise=new Promise(e=>{this._lifecycleCallback=e}),this._newDocumentNavigationPromise=new Promise(e=>{this._newDocumentNavigationCompleteCallback=e}),this._timeoutPromise=this._createTimeoutPromise(),this._terminationPromise=new Promise(e=>{this._terminationCallback=e}),this._checkLifecycleComplete()}_onRequest(e){e.frame()===this._frame&&e.isNavigationRequest()&&(this._navigationRequest=e)}_onFrameDetached(e){return this._frame===e?void this._terminationCallback.call(null,new Error("Navigating frame was detached")):void this._checkLifecycleComplete()}navigationResponse(){return this._navigationRequest?this._navigationRequest.response():null}_terminate(e){this._terminationCallback.call(null,e)}sameDocumentNavigationPromise(){return this._sameDocumentNavigationPromise}newDocumentNavigationPromise(){return this._newDocumentNavigationPromise}lifecyclePromise(){return this._lifecyclePromise}timeoutOrTerminationPromise(){return Promise.race([this._timeoutPromise,this._terminationPromise])}_createTimeoutPromise(){if(!this._timeout)return new Promise(()=>{});const e="Navigation timeout of "+this._timeout+" ms exceeded";return new Promise(e=>this._maximumTimer=setTimeout(e,this._timeout)).then(()=>new o.TimeoutError(e))}_navigatedWithinDocument(e){e!==this._frame||(this._hasSameDocumentNavigation=!0,this._checkLifecycleComplete())}_checkLifecycleComplete(){function e(t,r){for(const e of r)if(!t._lifecycleEvents.has(e))return!1;for(const n of t.childFrames())if(!e(n,r))return!1;return!0}e(this._frame,this._expectedLifecycle)&&(this._lifecycleCallback(),(this._frame._loaderId!==this._initialLoaderId||this._hasSameDocumentNavigation)&&(this._hasSameDocumentNavigation&&this._sameDocumentNavigationCompleteCallback(),this._frame._loaderId!==this._initialLoaderId&&this._newDocumentNavigationCompleteCallback()))}dispose(){a.helper.removeEventListeners(this._eventListeners),clearTimeout(this._maximumTimer)}}},97966:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NetworkManager=t.NetworkManagerEmittedEvents=void 0;const n=r(2680),a=r(85668),o=r(47674),i=r(68610),s=r(59206);t.NetworkManagerEmittedEvents={Request:Symbol("NetworkManager.Request"),Response:Symbol("NetworkManager.Response"),RequestFailed:Symbol("NetworkManager.RequestFailed"),RequestFinished:Symbol("NetworkManager.RequestFinished")};class l extends n.EventEmitter{constructor(e,t,r){super(),this._requestIdToRequest=new Map,this._requestIdToRequestWillBeSentEvent=new Map,this._extraHTTPHeaders={},this._offline=!1,this._credentials=null,this._attemptedAuthentications=new Set,this._userRequestInterceptionEnabled=!1,this._protocolRequestInterceptionEnabled=!1,this._userCacheDisabled=!1,this._requestIdToInterceptionId=new Map,this._client=e,this._ignoreHTTPSErrors=t,this._frameManager=r,this._client.on("Fetch.requestPaused",this._onRequestPaused.bind(this)),this._client.on("Fetch.authRequired",this._onAuthRequired.bind(this)),this._client.on("Network.requestWillBeSent",this._onRequestWillBeSent.bind(this)),this._client.on("Network.requestServedFromCache",this._onRequestServedFromCache.bind(this)),this._client.on("Network.responseReceived",this._onResponseReceived.bind(this)),this._client.on("Network.loadingFinished",this._onLoadingFinished.bind(this)),this._client.on("Network.loadingFailed",this._onLoadingFailed.bind(this))}async initialize(){await this._client.send("Network.enable"),this._ignoreHTTPSErrors&&(await this._client.send("Security.setIgnoreCertificateErrors",{ignore:!0}))}async authenticate(e){this._credentials=e,await this._updateProtocolRequestInterception()}async setExtraHTTPHeaders(e){this._extraHTTPHeaders={};for(const t of Object.keys(e)){const r=e[t];a.assert(o.helper.isString(r),`Expected value of header "${t}" to be String, but "${typeof r}" is found.`),this._extraHTTPHeaders[t.toLowerCase()]=r}await this._client.send("Network.setExtraHTTPHeaders",{headers:this._extraHTTPHeaders})}extraHTTPHeaders(){return Object.assign({},this._extraHTTPHeaders)}async setOfflineMode(e){this._offline===e||(this._offline=e,await this._client.send("Network.emulateNetworkConditions",{offline:this._offline,latency:0,downloadThroughput:-1,uploadThroughput:-1}))}async setUserAgent(e){await this._client.send("Network.setUserAgentOverride",{userAgent:e})}async setCacheEnabled(e){this._userCacheDisabled=!e,await this._updateProtocolCacheDisabled()}async setRequestInterception(e){this._userRequestInterceptionEnabled=e,await this._updateProtocolRequestInterception()}async _updateProtocolRequestInterception(){const e=this._userRequestInterceptionEnabled||!!this._credentials;e===this._protocolRequestInterceptionEnabled||(this._protocolRequestInterceptionEnabled=e,e?await Promise.all([this._updateProtocolCacheDisabled(),this._client.send("Fetch.enable",{handleAuthRequests:!0,patterns:[{urlPattern:"*"}]})]):await Promise.all([this._updateProtocolCacheDisabled(),this._client.send("Fetch.disable")]))}async _updateProtocolCacheDisabled(){await this._client.send("Network.setCacheDisabled",{cacheDisabled:this._userCacheDisabled||this._protocolRequestInterceptionEnabled})}_onRequestWillBeSent(e){if(this._protocolRequestInterceptionEnabled&&!e.request.url.startsWith("data:")){const t=e.requestId,r=this._requestIdToInterceptionId.get(t);return void(r?(this._onRequest(e,r),this._requestIdToInterceptionId.delete(t)):this._requestIdToRequestWillBeSentEvent.set(e.requestId,e))}this._onRequest(e,null)}_onAuthRequired(e){let t="Default";this._attemptedAuthentications.has(e.requestId)?t="CancelAuth":this._credentials&&(t="ProvideCredentials",this._attemptedAuthentications.add(e.requestId));const{username:r,password:n}=this._credentials||{username:void 0,password:void 0};this._client.send("Fetch.continueWithAuth",{requestId:e.requestId,authChallengeResponse:{response:t,username:r,password:n}}).catch(o.debugError)}_onRequestPaused(e){!this._userRequestInterceptionEnabled&&this._protocolRequestInterceptionEnabled&&this._client.send("Fetch.continueRequest",{requestId:e.requestId}).catch(o.debugError);const t=e.networkId,r=e.requestId;if(t&&this._requestIdToRequestWillBeSentEvent.has(t)){const e=this._requestIdToRequestWillBeSentEvent.get(t);this._onRequest(e,r),this._requestIdToRequestWillBeSentEvent.delete(t)}else this._requestIdToInterceptionId.set(t,r)}_onRequest(e,r){let n=[];if(e.redirectResponse){const t=this._requestIdToRequest.get(e.requestId);t&&(this._handleRequestRedirect(t,e.redirectResponse),n=t._redirectChain)}const a=e.frameId?this._frameManager.frame(e.frameId):null,o=new i.HTTPRequest(this._client,a,r,this._userRequestInterceptionEnabled,e,n);this._requestIdToRequest.set(e.requestId,o),this.emit(t.NetworkManagerEmittedEvents.Request,o)}_onRequestServedFromCache(e){const t=this._requestIdToRequest.get(e.requestId);t&&(t._fromMemoryCache=!0)}_handleRequestRedirect(e,r){const n=new s.HTTPResponse(this._client,e,r);e._response=n,e._redirectChain.push(e),n._resolveBody(new Error("Response body is unavailable for redirect responses")),this._requestIdToRequest.delete(e._requestId),this._attemptedAuthentications.delete(e._interceptionId),this.emit(t.NetworkManagerEmittedEvents.Response,n),this.emit(t.NetworkManagerEmittedEvents.RequestFinished,e)}_onResponseReceived(e){const r=this._requestIdToRequest.get(e.requestId);if(r){const n=new s.HTTPResponse(this._client,r,e.response);r._response=n,this.emit(t.NetworkManagerEmittedEvents.Response,n)}}_onLoadingFinished(e){const r=this._requestIdToRequest.get(e.requestId);r&&(r.response()&&r.response()._resolveBody(null),this._requestIdToRequest.delete(r._requestId),this._attemptedAuthentications.delete(r._interceptionId),this.emit(t.NetworkManagerEmittedEvents.RequestFinished,r))}_onLoadingFailed(e){const r=this._requestIdToRequest.get(e.requestId);if(r){r._failureText=e.errorText;const n=r.response();n&&n._resolveBody(null),this._requestIdToRequest.delete(r._requestId),this._attemptedAuthentications.delete(r._interceptionId),this.emit(t.NetworkManagerEmittedEvents.RequestFailed,r)}}}t.NetworkManager=l},95320:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.paperFormats=void 0,t.paperFormats={letter:{width:8.5,height:11},legal:{width:8.5,height:14},tabloid:{width:11,height:17},ledger:{width:17,height:11},a0:{width:33.1,height:46.8},a1:{width:23.4,height:33.1},a2:{width:16.54,height:23.4},a3:{width:11.7,height:16.54},a4:{width:8.27,height:11.7},a5:{width:5.83,height:8.27},a6:{width:4.13,height:5.83}}},4258:(e,t,r)=>{"use strict";function n(e){if("undefined"==typeof e)return;let t;if(u.helper.isNumber(e))t=e;else if(u.helper.isString(e)){const r=e;let n=r.substring(r.length-2).toLowerCase(),a="";T.hasOwnProperty(n)?a=r.substring(0,r.length-2):(n="px",a=r);const o=+a;c.assert(!isNaN(o),"Failed to parse parameter value: "+r),t=o*T[n]}else throw new Error("page.pdf() Cannot handle parameter type: "+typeof e);return t/96}Object.defineProperty(t,"__esModule",{value:!0}),t.Page=void 0;const a=r(2680),o=r(58602),i=r(2915),s=r(3449),l=r(71886),d=r(80771),p=r(64189),c=r(85668),u=r(47674),m=r(35204),g=r(41418),h=r(79272),f=r(97966),y=r(77601),b=r(44261),S=r(23254),x=r(16051),v=r(95320),k=r(23222);class C{constructor(){this._chain=Promise.resolve(void 0)}postTask(e){const t=this._chain.then(e);return this._chain=t.catch(()=>{}),t}}class _ extends a.EventEmitter{constructor(e,t,r){super(),this._closed=!1,this._timeoutSettings=new b.TimeoutSettings,this._pageBindings=new Map,this._javascriptEnabled=!0,this._workers=new Map,this._fileChooserInterceptors=new Set,this._client=e,this._target=t,this._keyboard=new d.Keyboard(e),this._mouse=new d.Mouse(e,this._keyboard),this._touchscreen=new d.Touchscreen(e,this._keyboard),this._accessibility=new y.Accessibility(e),this._frameManager=new l.FrameManager(e,this,r,this._timeoutSettings),this._emulationManager=new s.EmulationManager(e),this._tracing=new p.Tracing(e),this._coverage=new m.Coverage(e),this._screenshotTaskQueue=new C,this._viewport=null,e.on("Target.attachedToTarget",t=>{if("worker"!==t.targetInfo.type)return void e.send("Target.detachFromTarget",{sessionId:t.sessionId}).catch(u.debugError);const r=o.Connection.fromSession(e).session(t.sessionId),n=new g.WebWorker(r,t.targetInfo.url,this._addConsoleMessage.bind(this),this._handleException.bind(this));this._workers.set(t.sessionId,n),this.emit("workercreated",n)}),e.on("Target.detachedFromTarget",e=>{const t=this._workers.get(e.sessionId);t&&(this.emit("workerdestroyed",t),this._workers.delete(e.sessionId))}),this._frameManager.on(l.FrameManagerEmittedEvents.FrameAttached,e=>this.emit("frameattached",e)),this._frameManager.on(l.FrameManagerEmittedEvents.FrameDetached,e=>this.emit("framedetached",e)),this._frameManager.on(l.FrameManagerEmittedEvents.FrameNavigated,e=>this.emit("framenavigated",e));const n=this._frameManager.networkManager();n.on(f.NetworkManagerEmittedEvents.Request,e=>this.emit("request",e)),n.on(f.NetworkManagerEmittedEvents.Response,e=>this.emit("response",e)),n.on(f.NetworkManagerEmittedEvents.RequestFailed,e=>this.emit("requestfailed",e)),n.on(f.NetworkManagerEmittedEvents.RequestFinished,e=>this.emit("requestfinished",e)),this._fileChooserInterceptors=new Set,e.on("Page.domContentEventFired",()=>this.emit("domcontentloaded")),e.on("Page.loadEventFired",()=>this.emit("load")),e.on("Runtime.consoleAPICalled",e=>this._onConsoleAPI(e)),e.on("Runtime.bindingCalled",e=>this._onBindingCalled(e)),e.on("Page.javascriptDialogOpening",e=>this._onDialog(e)),e.on("Runtime.exceptionThrown",e=>this._handleException(e.exceptionDetails)),e.on("Inspector.targetCrashed",()=>this._onTargetCrashed()),e.on("Performance.metrics",e=>this._emitMetrics(e)),e.on("Log.entryAdded",e=>this._onLogEntryAdded(e)),e.on("Page.fileChooserOpened",e=>this._onFileChooser(e)),this._target._isClosedPromise.then(()=>{this.emit("close"),this._closed=!0})}static async create(e,t,r,n){const a=new _(e,t,r);return await a._initialize(),n&&(await a.setViewport(n)),a}async _initialize(){await Promise.all([this._frameManager.initialize(),this._client.send("Target.setAutoAttach",{autoAttach:!0,waitForDebuggerOnStart:!1,flatten:!0}),this._client.send("Performance.enable"),this._client.send("Log.enable")])}async _onFileChooser(e){if(!this._fileChooserInterceptors.size)return;const t=this._frameManager.frame(e.frameId),r=await t.executionContext(),n=await r._adoptBackendNodeId(e.backendNodeId),a=Array.from(this._fileChooserInterceptors);this._fileChooserInterceptors.clear();const o=new S.FileChooser(n,e);for(const t of a)t.call(null,o)}isJavaScriptEnabled(){return this._javascriptEnabled}async waitForFileChooser(e={}){this._fileChooserInterceptors.size||(await this._client.send("Page.setInterceptFileChooserDialog",{enabled:!0}));const{timeout:t=this._timeoutSettings.timeout()}=e;let r;const n=new Promise(e=>r=e);return this._fileChooserInterceptors.add(r),u.helper.waitWithTimeout(n,"waiting for file chooser",t).catch(e=>{throw this._fileChooserInterceptors.delete(r),e})}async setGeolocation(e){const{longitude:t,latitude:r,accuracy:n=0}=e;if(-180>t||180r||90n)throw new Error(`Invalid accuracy "${n}": precondition 0 <= ACCURACY failed.`);await this._client.send("Emulation.setGeolocationOverride",{longitude:t,latitude:r,accuracy:n})}target(){return this._target}browser(){return this._target.browser()}browserContext(){return this._target.browserContext()}_onTargetCrashed(){this.emit("error",new Error("Page crashed!"))}_onLogEntryAdded(e){const{level:t,text:r,args:n,source:a,url:o,lineNumber:i}=e.entry;n&&n.map(e=>u.helper.releaseObject(this._client,e)),"worker"!==a&&this.emit("console",new x.ConsoleMessage(t,r,[],[{url:o,lineNumber:i}]))}mainFrame(){return this._frameManager.mainFrame()}get keyboard(){return this._keyboard}get touchscreen(){return this._touchscreen}get coverage(){return this._coverage}get tracing(){return this._tracing}get accessibility(){return this._accessibility}frames(){return this._frameManager.frames()}workers(){return Array.from(this._workers.values())}async setRequestInterception(e){return this._frameManager.networkManager().setRequestInterception(e)}setOfflineMode(e){return this._frameManager.networkManager().setOfflineMode(e)}setDefaultNavigationTimeout(e){this._timeoutSettings.setDefaultNavigationTimeout(e)}setDefaultTimeout(e){this._timeoutSettings.setDefaultTimeout(e)}async $(e){return this.mainFrame().$(e)}async evaluateHandle(e,...t){const r=await this.mainFrame().executionContext();return r.evaluateHandle(e,...t)}async queryObjects(e){const t=await this.mainFrame().executionContext();return t.queryObjects(e)}async $eval(e,t,...r){return this.mainFrame().$eval(e,t,...r)}async $$eval(e,t,...r){return this.mainFrame().$$eval(e,t,...r)}async $$(e){return this.mainFrame().$$(e)}async $x(e){return this.mainFrame().$x(e)}async cookies(...e){const t=(await this._client.send("Network.getCookies",{urls:e.length?e:[this.url()]})).cookies,r=["priority"];return t.map(e=>{for(const t of r)delete e[t];return e})}async deleteCookie(...e){const t=this.url();for(const r of e){const e=Object.assign({},r);!r.url&&t.startsWith("http")&&(e.url=t),await this._client.send("Network.deleteCookies",e)}}async setCookie(...e){const t=this.url(),r=t.startsWith("http"),n=e.map(e=>{const n=Object.assign({},e);return!n.url&&r&&(n.url=t),c.assert("about:blank"!==n.url,`Blank page can not have cookie "${n.name}"`),c.assert(!_Stringprototype.startsWith.call(n.url||"","data:"),`Data URL page can not have cookie "${n.name}"`),n});await this.deleteCookie(...n),n.length&&(await this._client.send("Network.setCookies",{cookies:n}))}async addScriptTag(e){return this.mainFrame().addScriptTag(e)}async addStyleTag(e){return this.mainFrame().addStyleTag(e)}async exposeFunction(e,t){if(this._pageBindings.has(e))throw new Error(`Failed to add page binding with name ${e}: window['${e}'] already exists!`);this._pageBindings.set(e,t);const r=u.helper.pageBindingInitString("exposedFun",e);await this._client.send("Runtime.addBinding",{name:e}),await this._client.send("Page.addScriptToEvaluateOnNewDocument",{source:r}),await Promise.all(this.frames().map(e=>e.evaluate(r).catch(u.debugError)))}async authenticate(e){return this._frameManager.networkManager().authenticate(e)}async setExtraHTTPHeaders(e){return this._frameManager.networkManager().setExtraHTTPHeaders(e)}async setUserAgent(e){return this._frameManager.networkManager().setUserAgent(e)}async metrics(){const e=await this._client.send("Performance.getMetrics");return this._buildMetricsObject(e.metrics)}_emitMetrics(e){this.emit("metrics",{title:e.title,metrics:this._buildMetricsObject(e.metrics)})}_buildMetricsObject(e){const t={};for(const r of e||[])w.has(r.name)&&(t[r.name]=r.value);return t}_handleException(e){const t=u.helper.getExceptionMessage(e),r=new Error(t);r.stack="",this.emit("pageerror",r)}async _onConsoleAPI(e){if(0===e.executionContextId)return;const t=this._frameManager.executionContextById(e.executionContextId),r=e.args.map(e=>h.createJSHandle(t,e));this._addConsoleMessage(e.type,r,e.stackTrace)}async _onBindingCalled(e){let t;try{t=JSON.parse(e.payload)}catch{return}const{type:r,name:n,seq:a,args:o}=t;if("exposedFun"!==r||!this._pageBindings.has(n))return;let i=null;try{const e=await this._pageBindings.get(n)(...o);i=u.helper.pageBindingDeliverResultString(n,a,e)}catch(e){i=e instanceof Error?u.helper.pageBindingDeliverErrorString(n,a,e.message,e.stack):u.helper.pageBindingDeliverErrorValueString(n,a,e)}this._client.send("Runtime.evaluate",{expression:i,contextId:e.executionContextId}).catch(u.debugError)}_addConsoleMessage(e,t,r){if(!this.listenerCount("console"))return void t.forEach(e=>e.dispose());const n=[];for(const a of t){const e=a._remoteObject;e.objectId?n.push(a.toString()):n.push(u.helper.valueFromRemoteObject(e))}const a=[];if(r)for(const e of r.callFrames)a.push({url:e.url,lineNumber:e.lineNumber,columnNumber:e.columnNumber});const o=new x.ConsoleMessage(e,n.join(" "),t,a);this.emit("console",o)}_onDialog(e){let t=null;const r=new Set(["alert","confirm","prompt","beforeunload"]);r.has(e.type)&&(t=e.type),c.assert(t,"Unknown javascript dialog type: "+e.type);const n=new i.Dialog(this._client,t,e.message,e.defaultPrompt);this.emit("dialog",n)}url(){return this.mainFrame().url()}async content(){return await this._frameManager.mainFrame().content()}async setContent(e,t={}){await this._frameManager.mainFrame().setContent(e,t)}async goto(e,t={}){return await this._frameManager.mainFrame().goto(e,t)}async reload(e){const t=await Promise.all([this.waitForNavigation(e),this._client.send("Page.reload")]);return t[0]}async waitForNavigation(e={}){return await this._frameManager.mainFrame().waitForNavigation(e)}_sessionClosePromise(){return this._disconnectPromise||(this._disconnectPromise=new Promise(e=>this._client.once(o.CDPSessionEmittedEvents.Disconnected,()=>e(new Error("Target closed"))))),this._disconnectPromise}async waitForRequest(e,t={}){const{timeout:r=this._timeoutSettings.timeout()}=t;return u.helper.waitForEvent(this._frameManager.networkManager(),f.NetworkManagerEmittedEvents.Request,t=>u.helper.isString(e)?e===t.url():"function"==typeof e&&!!e(t),r,this._sessionClosePromise())}async waitForResponse(e,t={}){const{timeout:r=this._timeoutSettings.timeout()}=t;return u.helper.waitForEvent(this._frameManager.networkManager(),f.NetworkManagerEmittedEvents.Response,t=>u.helper.isString(e)?e===t.url():"function"==typeof e&&!!e(t),r,this._sessionClosePromise())}async goBack(e={}){return this._go(-1,e)}async goForward(e={}){return this._go(1,e)}async _go(e,t){const r=await this._client.send("Page.getNavigationHistory"),n=r.entries[r.currentIndex+e];if(!n)return null;const a=await Promise.all([this.waitForNavigation(t),this._client.send("Page.navigateToHistoryEntry",{entryId:n.id})]);return a[0]}async bringToFront(){await this._client.send("Page.bringToFront")}async emulate(e){await Promise.all([this.setViewport(e.viewport),this.setUserAgent(e.userAgent)])}async setJavaScriptEnabled(e){this._javascriptEnabled===e||(this._javascriptEnabled=e,await this._client.send("Emulation.setScriptExecutionDisabled",{value:!e}))}async setBypassCSP(e){await this._client.send("Page.setBypassCSP",{enabled:e})}async emulateMediaType(e){c.assert("screen"===e||"print"===e||null===e,"Unsupported media type: "+e),await this._client.send("Emulation.setEmulatedMedia",{media:e||""})}async emulateMediaFeatures(e){null===e&&(await this._client.send("Emulation.setEmulatedMedia",{features:null})),Array.isArray(e)&&(e.every(e=>{const t=e.name;return c.assert(/^prefers-(?:color-scheme|reduced-motion)$/.test(t),"Unsupported media feature: "+t),!0}),await this._client.send("Emulation.setEmulatedMedia",{features:e}))}async emulateTimezone(e){try{await this._client.send("Emulation.setTimezoneOverride",{timezoneId:e||""})}catch(t){if(t.message.includes("Invalid timezone"))throw new Error(`Invalid timezone ID: ${e}`);throw t}}async emulateIdleState(e){e?await this._client.send("Emulation.setIdleOverride",{isUserActive:e.isUserActive,isScreenUnlocked:e.isScreenUnlocked}):await this._client.send("Emulation.clearIdleOverride")}async emulateVisionDeficiency(e){const t=new Set(["none","achromatopsia","blurredVision","deuteranopia","protanopia","tritanopia"]);try{c.assert(!e||t.has(e),`Unsupported vision deficiency: ${e}`),await this._client.send("Emulation.setEmulatedVisionDeficiency",{type:e||"none"})}catch(e){throw e}}async setViewport(e){const t=await this._emulationManager.emulateViewport(e);this._viewport=e,t&&(await this.reload())}viewport(){return this._viewport}async evaluate(e,...t){return this._frameManager.mainFrame().evaluate(e,...t)}async evaluateOnNewDocument(e,...t){const r=u.helper.evaluationString(e,...t);await this._client.send("Page.addScriptToEvaluateOnNewDocument",{source:r})}async setCacheEnabled(e=!0){await this._frameManager.networkManager().setCacheEnabled(e)}async screenshot(e={}){let t=null;if(e.type)c.assert("png"===e.type||"jpeg"===e.type,"Unknown options.type value: "+e.type),t=e.type;else if(e.path){const r=e.path,n=r.slice(r.lastIndexOf(".")+1).toLowerCase();"png"===n?t="png":("jpg"===n||"jpeg"===n)&&(t="jpeg"),c.assert(t,`Unsupported screenshot type for extension \`.${n}\``)}return t||(t="png"),e.quality&&(c.assert("jpeg"===t,"options.quality is unsupported for the "+t+" screenshots"),c.assert("number"==typeof e.quality,"Expected options.quality to be a number but found "+typeof e.quality),c.assert(_NumberisInteger(e.quality),"Expected options.quality to be an integer"),c.assert(0<=e.quality&&100>=e.quality,"Expected options.quality to be between 0 and 100 (inclusive), got "+e.quality)),c.assert(!e.clip||!e.fullPage,"options.clip and options.fullPage are exclusive"),e.clip&&(c.assert("number"==typeof e.clip.x,"Expected options.clip.x to be a number but found "+typeof e.clip.x),c.assert("number"==typeof e.clip.y,"Expected options.clip.y to be a number but found "+typeof e.clip.y),c.assert("number"==typeof e.clip.width,"Expected options.clip.width to be a number but found "+typeof e.clip.width),c.assert("number"==typeof e.clip.height,"Expected options.clip.height to be a number but found "+typeof e.clip.height),c.assert(0!==e.clip.width,"Expected options.clip.width not to be 0."),c.assert(0!==e.clip.height,"Expected options.clip.height not to be 0.")),this._screenshotTaskQueue.postTask(()=>this._screenshotTask(t,e))}async _screenshotTask(e,t){function r(e){const t=_Mathround(e.x),r=_Mathround(e.y),n=_Mathround(e.width+e.x-t),a=_Mathround(e.height+e.y-r);return{x:t,y:r,width:n,height:a,scale:1}}await this._client.send("Target.activateTarget",{targetId:this._target._targetId});let n=t.clip?r(t.clip):void 0;if(t.fullPage){const e=await this._client.send("Page.getLayoutMetrics"),t=_Mathceil(e.contentSize.width),r=_Mathceil(e.contentSize.height);n={x:0,y:0,width:t,height:r,scale:1};const{isMobile:a=!1,deviceScaleFactor:o=1,isLandscape:i=!1}=this._viewport||{},s=i?{angle:90,type:"landscapePrimary"}:{angle:0,type:"portraitPrimary"};await this._client.send("Emulation.setDeviceMetricsOverride",{mobile:a,width:t,height:r,deviceScaleFactor:o,screenOrientation:s})}const a=t.omitBackground&&"png"===e;a&&(await this._client.send("Emulation.setDefaultBackgroundColorOverride",{color:{r:0,g:0,b:0,a:0}}));const o=await this._client.send("Page.captureScreenshot",{format:e,quality:t.quality,clip:n});a&&(await this._client.send("Emulation.setDefaultBackgroundColorOverride")),t.fullPage&&this._viewport&&(await this.setViewport(this._viewport));const i="base64"===t.encoding?o.data:Buffer.from(o.data,"base64");if(!k.isNode&&t.path)throw new Error("Screenshots can only be written to a file path in a Node environment.");const s=await u.helper.importFSModule();return t.path&&(await s.promises.writeFile(t.path,i)),i}async pdf(e={}){const{scale:t=1,displayHeaderFooter:r=!1,headerTemplate:a="",footerTemplate:o="",printBackground:i=!1,landscape:s=!1,pageRanges:l="",preferCSSPageSize:d=!1,margin:p={},path:m=null}=e;let g=8.5,h=11;if(e.format){const t=v.paperFormats[e.format.toLowerCase()];c.assert(t,"Unknown paper format: "+e.format),g=t.width,h=t.height}else g=n(e.width)||g,h=n(e.height)||h;const f=n(p.top)||0,y=n(p.left)||0,b=n(p.bottom)||0,S=n(p.right)||0,x=await this._client.send("Page.printToPDF",{transferMode:"ReturnAsStream",landscape:s,displayHeaderFooter:r,headerTemplate:a,footerTemplate:o,printBackground:i,scale:t,paperWidth:g,paperHeight:h,marginTop:f,marginBottom:b,marginLeft:y,marginRight:S,pageRanges:l,preferCSSPageSize:d});return await u.helper.readProtocolStream(this._client,x.stream,m)}async title(){return this.mainFrame().title()}async close(e={runBeforeUnload:void 0}){c.assert(!!this._client._connection,"Protocol error: Connection closed. Most likely the page has been closed.");const t=!!e.runBeforeUnload;t?await this._client.send("Page.close"):(await this._client._connection.send("Target.closeTarget",{targetId:this._target._targetId}),await this._target._isClosedPromise)}isClosed(){return this._closed}get mouse(){return this._mouse}click(e,t={}){return this.mainFrame().click(e,t)}focus(e){return this.mainFrame().focus(e)}hover(e){return this.mainFrame().hover(e)}select(e,...t){return this.mainFrame().select(e,...t)}tap(e){return this.mainFrame().tap(e)}type(e,t,r){return this.mainFrame().type(e,t,r)}waitFor(e,t={},...r){return this.mainFrame().waitFor(e,t,...r)}waitForTimeout(e){return this.mainFrame().waitForTimeout(e)}waitForSelector(e,t={}){return this.mainFrame().waitForSelector(e,t)}waitForXPath(e,t={}){return this.mainFrame().waitForXPath(e,t)}waitForFunction(e,t={},...r){return this.mainFrame().waitForFunction(e,t,...r)}}t.Page=_;const w=new Set(["Timestamp","Documents","Frames","JSEventListeners","Nodes","LayoutCount","RecalcStyleCount","LayoutDuration","RecalcStyleDuration","ScriptDuration","TaskDuration","JSHeapUsedSize","JSHeapTotalSize"]),T={px:1,in:96,cm:37.8,mm:3.78}},39006:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Puppeteer=void 0;const n=r(29554),a=r(34906),o=r(90419),i=r(10714);class s{constructor(e){this._changedProduct=!1,this._isPuppeteerCore=e.isPuppeteerCore}connect(e){return i.connectToBrowser(e)}get devices(){return a.devicesMap}get errors(){return n.puppeteerErrors}registerCustomQueryHandler(e,t){o.registerCustomQueryHandler(e,t)}unregisterCustomQueryHandler(e){o.unregisterCustomQueryHandler(e)}customQueryHandlerNames(){return o.customQueryHandlerNames()}clearCustomQueryHandlers(){o.clearCustomQueryHandlers()}}t.Puppeteer=s},90419:(e,t,r)=>{"use strict";function n(e){const t={};return e.queryOne&&(t.queryOne=async(t,r)=>{const n=await t.evaluateHandle(e.queryOne,r),a=n.asElement();return a?a:(await n.dispose(),null)},t.waitFor=(t,r,n)=>t.waitForSelectorInPage(e.queryOne,r,n)),e.queryAll&&(t.queryAll=async(t,r)=>{const n=await t.evaluateHandle(e.queryAll,r),a=await n.getProperties();await n.dispose();const o=[];for(const e of a.values()){const t=e.asElement();t&&o.push(t)}return o},t.queryAllArray=async(t,r)=>{const n=await t.evaluateHandle(e.queryAll,r),a=await n.evaluateHandle(e=>Array.from(e));return a}),t}function a(e){p.has(e)&&!d.has(e)&&p.delete(e)}function o(){return[...p.keys()].filter(e=>!d.has(e))}Object.defineProperty(t,"__esModule",{value:!0}),t.getQueryHandlerAndSelector=t.clearCustomQueryHandlers=t.customQueryHandlerNames=t.unregisterCustomQueryHandler=t.registerCustomQueryHandler=void 0;const i=r(79867),s=n({queryOne:(e,t)=>e.querySelector(t),queryAll:(e,t)=>e.querySelectorAll(t)}),l=n({queryOne:(e,t)=>{let r=null;const n=e=>{const a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);do{const e=a.currentNode;if(e.shadowRoot&&n(e.shadowRoot),e instanceof ShadowRoot)continue;!r&&e.matches(t)&&(r=e)}while(!r&&a.nextNode())};return e instanceof Document&&(e=e.documentElement),n(e),r},queryAll:(e,t)=>{const r=[],n=e=>{const a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);do{const e=a.currentNode;if(e.shadowRoot&&n(e.shadowRoot),e instanceof ShadowRoot)continue;e.matches(t)&&r.push(e)}while(a.nextNode())};return e instanceof Document&&(e=e.documentElement),n(e),r}}),d=new Map([["aria",i.ariaHandler],["pierce",l]]),p=new Map(d);t.registerCustomQueryHandler=function(e,t){if(p.get(e))throw new Error(`A custom query handler named "${e}" already exists`);const r=/^[a-zA-Z]+$/.test(e);if(!r)throw new Error(`Custom query handler names may only contain [a-zA-Z]`);const a=n(t);p.set(e,a)},t.unregisterCustomQueryHandler=a,t.customQueryHandlerNames=o,t.clearCustomQueryHandlers=function(){o().forEach(a)},t.getQueryHandlerAndSelector=function(e){const t=/^[a-zA-Z]+\//.test(e);if(!t)return{updatedSelector:e,queryHandler:s};const r=e.indexOf("/"),n=e.slice(0,r),a=e.slice(r+1),o=p.get(n);if(!o)throw new Error(`Query set to use "${n}", but no query handler of that name was found`);return{updatedSelector:a,queryHandler:o}}},55468:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SecurityDetails=void 0;t.SecurityDetails=class e{constructor(e){this._subjectName=e.subjectName,this._issuer=e.issuer,this._validFrom=e.validFrom,this._validTo=e.validTo,this._protocol=e.protocol,this._sanList=e.sanList}issuer(){return this._issuer}validFrom(){return this._validFrom}validTo(){return this._validTo}protocol(){return this._protocol}subjectName(){return this._subjectName}subjectAlternativeNames(){return this._sanList}}},69668:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Target=void 0;const n=r(4258),a=r(41418);t.Target=class e{constructor(e,t,r,n,a){this._targetInfo=e,this._browserContext=t,this._targetId=e.targetId,this._sessionFactory=r,this._ignoreHTTPSErrors=n,this._defaultViewport=a,this._pagePromise=null,this._workerPromise=null,this._initializedPromise=new Promise(e=>this._initializedCallback=e).then(async e=>{if(!e)return!1;const t=this.opener();if(!t||!t._pagePromise||"page"!==this.type())return!0;const r=await t._pagePromise;if(!r.listenerCount("popup"))return!0;const n=await this.page();return r.emit("popup",n),!0}),this._isClosedPromise=new Promise(e=>this._closedCallback=e),this._isInitialized="page"!==this._targetInfo.type||""!==this._targetInfo.url,this._isInitialized&&this._initializedCallback(!0)}createCDPSession(){return this._sessionFactory()}async page(){return"page"!==this._targetInfo.type&&"background_page"!==this._targetInfo.type&&"webview"!==this._targetInfo.type||this._pagePromise||(this._pagePromise=this._sessionFactory().then(e=>n.Page.create(e,this,this._ignoreHTTPSErrors,this._defaultViewport))),this._pagePromise}async worker(){return"service_worker"!==this._targetInfo.type&&"shared_worker"!==this._targetInfo.type?null:(this._workerPromise||(this._workerPromise=this._sessionFactory().then(e=>new a.WebWorker(e,this._targetInfo.url,()=>{},()=>{}))),this._workerPromise)}url(){return this._targetInfo.url}type(){const e=this._targetInfo.type;return"page"===e||"background_page"===e||"service_worker"===e||"shared_worker"===e||"browser"===e||"webview"===e?e:"other"}browser(){return this._browserContext.browser()}browserContext(){return this._browserContext}opener(){const{openerId:e}=this._targetInfo;return e?this.browser()._targets.get(e):null}_targetInfoChanged(e){if(this._targetInfo=e,!this._isInitialized&&("page"!==this._targetInfo.type||""!==this._targetInfo.url))return this._isInitialized=!0,void this._initializedCallback(!0)}}},44261:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TimeoutSettings=void 0;t.TimeoutSettings=class e{constructor(){this._defaultTimeout=null,this._defaultNavigationTimeout=null}setDefaultTimeout(e){this._defaultTimeout=e}setDefaultNavigationTimeout(e){this._defaultNavigationTimeout=e}navigationTimeout(){return null===this._defaultNavigationTimeout?null===this._defaultTimeout?30000:this._defaultTimeout:this._defaultNavigationTimeout}timeout(){return null===this._defaultTimeout?30000:this._defaultTimeout}}},64189:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tracing=void 0;const n=r(85668),a=r(47674);t.Tracing=class e{constructor(e){this._recording=!1,this._path="",this._client=e}async start(e={}){n.assert(!this._recording,"Cannot start recording trace while already recording trace.");const{path:t=null,screenshots:r=!1,categories:a=["-*","devtools.timeline","v8.execute","disabled-by-default-devtools.timeline","disabled-by-default-devtools.timeline.frame","toplevel","blink.console","blink.user_timing","latencyInfo","disabled-by-default-devtools.timeline.stack","disabled-by-default-v8.cpu_profiler","disabled-by-default-v8.cpu_profiler.hires"]}=e;r&&a.push("disabled-by-default-devtools.screenshot"),this._path=t,this._recording=!0,await this._client.send("Tracing.start",{transferMode:"ReturnAsStream",categories:a.join(",")})}async stop(){let e,t;const r=new Promise((r,n)=>{e=r,t=n});return this._client.once("Tracing.tracingComplete",r=>{a.helper.readProtocolStream(this._client,r.stream,this._path).then(e,t)}),await this._client.send("Tracing.end"),this._recording=!1,r}}},85654:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.keyDefinitions=void 0,t.keyDefinitions={0:{keyCode:48,key:"0",code:"Digit0"},1:{keyCode:49,key:"1",code:"Digit1"},2:{keyCode:50,key:"2",code:"Digit2"},3:{keyCode:51,key:"3",code:"Digit3"},4:{keyCode:52,key:"4",code:"Digit4"},5:{keyCode:53,key:"5",code:"Digit5"},6:{keyCode:54,key:"6",code:"Digit6"},7:{keyCode:55,key:"7",code:"Digit7"},8:{keyCode:56,key:"8",code:"Digit8"},9:{keyCode:57,key:"9",code:"Digit9"},Power:{key:"Power",code:"Power"},Eject:{key:"Eject",code:"Eject"},Abort:{keyCode:3,code:"Abort",key:"Cancel"},Help:{keyCode:6,code:"Help",key:"Help"},Backspace:{keyCode:8,code:"Backspace",key:"Backspace"},Tab:{keyCode:9,code:"Tab",key:"Tab"},Numpad5:{keyCode:12,shiftKeyCode:101,key:"Clear",code:"Numpad5",shiftKey:"5",location:3},NumpadEnter:{keyCode:13,code:"NumpadEnter",key:"Enter",text:"\r",location:3},Enter:{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\r":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\n":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},ShiftLeft:{keyCode:16,code:"ShiftLeft",key:"Shift",location:1},ShiftRight:{keyCode:16,code:"ShiftRight",key:"Shift",location:2},ControlLeft:{keyCode:17,code:"ControlLeft",key:"Control",location:1},ControlRight:{keyCode:17,code:"ControlRight",key:"Control",location:2},AltLeft:{keyCode:18,code:"AltLeft",key:"Alt",location:1},AltRight:{keyCode:18,code:"AltRight",key:"Alt",location:2},Pause:{keyCode:19,code:"Pause",key:"Pause"},CapsLock:{keyCode:20,code:"CapsLock",key:"CapsLock"},Escape:{keyCode:27,code:"Escape",key:"Escape"},Convert:{keyCode:28,code:"Convert",key:"Convert"},NonConvert:{keyCode:29,code:"NonConvert",key:"NonConvert"},Space:{keyCode:32,code:"Space",key:" "},Numpad9:{keyCode:33,shiftKeyCode:105,key:"PageUp",code:"Numpad9",shiftKey:"9",location:3},PageUp:{keyCode:33,code:"PageUp",key:"PageUp"},Numpad3:{keyCode:34,shiftKeyCode:99,key:"PageDown",code:"Numpad3",shiftKey:"3",location:3},PageDown:{keyCode:34,code:"PageDown",key:"PageDown"},End:{keyCode:35,code:"End",key:"End"},Numpad1:{keyCode:35,shiftKeyCode:97,key:"End",code:"Numpad1",shiftKey:"1",location:3},Home:{keyCode:36,code:"Home",key:"Home"},Numpad7:{keyCode:36,shiftKeyCode:103,key:"Home",code:"Numpad7",shiftKey:"7",location:3},ArrowLeft:{keyCode:37,code:"ArrowLeft",key:"ArrowLeft"},Numpad4:{keyCode:37,shiftKeyCode:100,key:"ArrowLeft",code:"Numpad4",shiftKey:"4",location:3},Numpad8:{keyCode:38,shiftKeyCode:104,key:"ArrowUp",code:"Numpad8",shiftKey:"8",location:3},ArrowUp:{keyCode:38,code:"ArrowUp",key:"ArrowUp"},ArrowRight:{keyCode:39,code:"ArrowRight",key:"ArrowRight"},Numpad6:{keyCode:39,shiftKeyCode:102,key:"ArrowRight",code:"Numpad6",shiftKey:"6",location:3},Numpad2:{keyCode:40,shiftKeyCode:98,key:"ArrowDown",code:"Numpad2",shiftKey:"2",location:3},ArrowDown:{keyCode:40,code:"ArrowDown",key:"ArrowDown"},Select:{keyCode:41,code:"Select",key:"Select"},Open:{keyCode:43,code:"Open",key:"Execute"},PrintScreen:{keyCode:44,code:"PrintScreen",key:"PrintScreen"},Insert:{keyCode:45,code:"Insert",key:"Insert"},Numpad0:{keyCode:45,shiftKeyCode:96,key:"Insert",code:"Numpad0",shiftKey:"0",location:3},Delete:{keyCode:46,code:"Delete",key:"Delete"},NumpadDecimal:{keyCode:46,shiftKeyCode:110,code:"NumpadDecimal",key:"\0",shiftKey:".",location:3},Digit0:{keyCode:48,code:"Digit0",shiftKey:")",key:"0"},Digit1:{keyCode:49,code:"Digit1",shiftKey:"!",key:"1"},Digit2:{keyCode:50,code:"Digit2",shiftKey:"@",key:"2"},Digit3:{keyCode:51,code:"Digit3",shiftKey:"#",key:"3"},Digit4:{keyCode:52,code:"Digit4",shiftKey:"$",key:"4"},Digit5:{keyCode:53,code:"Digit5",shiftKey:"%",key:"5"},Digit6:{keyCode:54,code:"Digit6",shiftKey:"^",key:"6"},Digit7:{keyCode:55,code:"Digit7",shiftKey:"&",key:"7"},Digit8:{keyCode:56,code:"Digit8",shiftKey:"*",key:"8"},Digit9:{keyCode:57,code:"Digit9",shiftKey:"(",key:"9"},KeyA:{keyCode:65,code:"KeyA",shiftKey:"A",key:"a"},KeyB:{keyCode:66,code:"KeyB",shiftKey:"B",key:"b"},KeyC:{keyCode:67,code:"KeyC",shiftKey:"C",key:"c"},KeyD:{keyCode:68,code:"KeyD",shiftKey:"D",key:"d"},KeyE:{keyCode:69,code:"KeyE",shiftKey:"E",key:"e"},KeyF:{keyCode:70,code:"KeyF",shiftKey:"F",key:"f"},KeyG:{keyCode:71,code:"KeyG",shiftKey:"G",key:"g"},KeyH:{keyCode:72,code:"KeyH",shiftKey:"H",key:"h"},KeyI:{keyCode:73,code:"KeyI",shiftKey:"I",key:"i"},KeyJ:{keyCode:74,code:"KeyJ",shiftKey:"J",key:"j"},KeyK:{keyCode:75,code:"KeyK",shiftKey:"K",key:"k"},KeyL:{keyCode:76,code:"KeyL",shiftKey:"L",key:"l"},KeyM:{keyCode:77,code:"KeyM",shiftKey:"M",key:"m"},KeyN:{keyCode:78,code:"KeyN",shiftKey:"N",key:"n"},KeyO:{keyCode:79,code:"KeyO",shiftKey:"O",key:"o"},KeyP:{keyCode:80,code:"KeyP",shiftKey:"P",key:"p"},KeyQ:{keyCode:81,code:"KeyQ",shiftKey:"Q",key:"q"},KeyR:{keyCode:82,code:"KeyR",shiftKey:"R",key:"r"},KeyS:{keyCode:83,code:"KeyS",shiftKey:"S",key:"s"},KeyT:{keyCode:84,code:"KeyT",shiftKey:"T",key:"t"},KeyU:{keyCode:85,code:"KeyU",shiftKey:"U",key:"u"},KeyV:{keyCode:86,code:"KeyV",shiftKey:"V",key:"v"},KeyW:{keyCode:87,code:"KeyW",shiftKey:"W",key:"w"},KeyX:{keyCode:88,code:"KeyX",shiftKey:"X",key:"x"},KeyY:{keyCode:89,code:"KeyY",shiftKey:"Y",key:"y"},KeyZ:{keyCode:90,code:"KeyZ",shiftKey:"Z",key:"z"},MetaLeft:{keyCode:91,code:"MetaLeft",key:"Meta",location:1},MetaRight:{keyCode:92,code:"MetaRight",key:"Meta",location:2},ContextMenu:{keyCode:93,code:"ContextMenu",key:"ContextMenu"},NumpadMultiply:{keyCode:106,code:"NumpadMultiply",key:"*",location:3},NumpadAdd:{keyCode:107,code:"NumpadAdd",key:"+",location:3},NumpadSubtract:{keyCode:109,code:"NumpadSubtract",key:"-",location:3},NumpadDivide:{keyCode:111,code:"NumpadDivide",key:"/",location:3},F1:{keyCode:112,code:"F1",key:"F1"},F2:{keyCode:113,code:"F2",key:"F2"},F3:{keyCode:114,code:"F3",key:"F3"},F4:{keyCode:115,code:"F4",key:"F4"},F5:{keyCode:116,code:"F5",key:"F5"},F6:{keyCode:117,code:"F6",key:"F6"},F7:{keyCode:118,code:"F7",key:"F7"},F8:{keyCode:119,code:"F8",key:"F8"},F9:{keyCode:120,code:"F9",key:"F9"},F10:{keyCode:121,code:"F10",key:"F10"},F11:{keyCode:122,code:"F11",key:"F11"},F12:{keyCode:123,code:"F12",key:"F12"},F13:{keyCode:124,code:"F13",key:"F13"},F14:{keyCode:125,code:"F14",key:"F14"},F15:{keyCode:126,code:"F15",key:"F15"},F16:{keyCode:127,code:"F16",key:"F16"},F17:{keyCode:128,code:"F17",key:"F17"},F18:{keyCode:129,code:"F18",key:"F18"},F19:{keyCode:130,code:"F19",key:"F19"},F20:{keyCode:131,code:"F20",key:"F20"},F21:{keyCode:132,code:"F21",key:"F21"},F22:{keyCode:133,code:"F22",key:"F22"},F23:{keyCode:134,code:"F23",key:"F23"},F24:{keyCode:135,code:"F24",key:"F24"},NumLock:{keyCode:144,code:"NumLock",key:"NumLock"},ScrollLock:{keyCode:145,code:"ScrollLock",key:"ScrollLock"},AudioVolumeMute:{keyCode:173,code:"AudioVolumeMute",key:"AudioVolumeMute"},AudioVolumeDown:{keyCode:174,code:"AudioVolumeDown",key:"AudioVolumeDown"},AudioVolumeUp:{keyCode:175,code:"AudioVolumeUp",key:"AudioVolumeUp"},MediaTrackNext:{keyCode:176,code:"MediaTrackNext",key:"MediaTrackNext"},MediaTrackPrevious:{keyCode:177,code:"MediaTrackPrevious",key:"MediaTrackPrevious"},MediaStop:{keyCode:178,code:"MediaStop",key:"MediaStop"},MediaPlayPause:{keyCode:179,code:"MediaPlayPause",key:"MediaPlayPause"},Semicolon:{keyCode:186,code:"Semicolon",shiftKey:":",key:";"},Equal:{keyCode:187,code:"Equal",shiftKey:"+",key:"="},NumpadEqual:{keyCode:187,code:"NumpadEqual",key:"=",location:3},Comma:{keyCode:188,code:"Comma",shiftKey:"<",key:","},Minus:{keyCode:189,code:"Minus",shiftKey:"_",key:"-"},Period:{keyCode:190,code:"Period",shiftKey:">",key:"."},Slash:{keyCode:191,code:"Slash",shiftKey:"?",key:"/"},Backquote:{keyCode:192,code:"Backquote",shiftKey:"~",key:"`"},BracketLeft:{keyCode:219,code:"BracketLeft",shiftKey:"{",key:"["},Backslash:{keyCode:220,code:"Backslash",shiftKey:"|",key:"\\"},BracketRight:{keyCode:221,code:"BracketRight",shiftKey:"}",key:"]"},Quote:{keyCode:222,code:"Quote",shiftKey:"\"",key:"'"},AltGraph:{keyCode:225,code:"AltGraph",key:"AltGraph"},Props:{keyCode:247,code:"Props",key:"CrSel"},Cancel:{keyCode:3,key:"Cancel",code:"Abort"},Clear:{keyCode:12,key:"Clear",code:"Numpad5",location:3},Shift:{keyCode:16,key:"Shift",code:"ShiftLeft",location:1},Control:{keyCode:17,key:"Control",code:"ControlLeft",location:1},Alt:{keyCode:18,key:"Alt",code:"AltLeft",location:1},Accept:{keyCode:30,key:"Accept"},ModeChange:{keyCode:31,key:"ModeChange"}," ":{keyCode:32,key:" ",code:"Space"},Print:{keyCode:42,key:"Print"},Execute:{keyCode:43,key:"Execute",code:"Open"},"":{keyCode:46,key:"\0",code:"NumpadDecimal",location:3},a:{keyCode:65,key:"a",code:"KeyA"},b:{keyCode:66,key:"b",code:"KeyB"},c:{keyCode:67,key:"c",code:"KeyC"},d:{keyCode:68,key:"d",code:"KeyD"},e:{keyCode:69,key:"e",code:"KeyE"},f:{keyCode:70,key:"f",code:"KeyF"},g:{keyCode:71,key:"g",code:"KeyG"},h:{keyCode:72,key:"h",code:"KeyH"},i:{keyCode:73,key:"i",code:"KeyI"},j:{keyCode:74,key:"j",code:"KeyJ"},k:{keyCode:75,key:"k",code:"KeyK"},l:{keyCode:76,key:"l",code:"KeyL"},m:{keyCode:77,key:"m",code:"KeyM"},n:{keyCode:78,key:"n",code:"KeyN"},o:{keyCode:79,key:"o",code:"KeyO"},p:{keyCode:80,key:"p",code:"KeyP"},q:{keyCode:81,key:"q",code:"KeyQ"},r:{keyCode:82,key:"r",code:"KeyR"},s:{keyCode:83,key:"s",code:"KeyS"},t:{keyCode:84,key:"t",code:"KeyT"},u:{keyCode:85,key:"u",code:"KeyU"},v:{keyCode:86,key:"v",code:"KeyV"},w:{keyCode:87,key:"w",code:"KeyW"},x:{keyCode:88,key:"x",code:"KeyX"},y:{keyCode:89,key:"y",code:"KeyY"},z:{keyCode:90,key:"z",code:"KeyZ"},Meta:{keyCode:91,key:"Meta",code:"MetaLeft",location:1},"*":{keyCode:106,key:"*",code:"NumpadMultiply",location:3},"+":{keyCode:107,key:"+",code:"NumpadAdd",location:3},"-":{keyCode:109,key:"-",code:"NumpadSubtract",location:3},"/":{keyCode:111,key:"/",code:"NumpadDivide",location:3},";":{keyCode:186,key:";",code:"Semicolon"},"=":{keyCode:187,key:"=",code:"Equal"},",":{keyCode:188,key:",",code:"Comma"},".":{keyCode:190,key:".",code:"Period"},"`":{keyCode:192,key:"`",code:"Backquote"},"[":{keyCode:219,key:"[",code:"BracketLeft"},"\\":{keyCode:220,key:"\\",code:"Backslash"},"]":{keyCode:221,key:"]",code:"BracketRight"},"'":{keyCode:222,key:"'",code:"Quote"},Attn:{keyCode:246,key:"Attn"},CrSel:{keyCode:247,key:"CrSel",code:"Props"},ExSel:{keyCode:248,key:"ExSel"},EraseEof:{keyCode:249,key:"EraseEof"},Play:{keyCode:250,key:"Play"},ZoomOut:{keyCode:251,key:"ZoomOut"},")":{keyCode:48,key:")",code:"Digit0"},"!":{keyCode:49,key:"!",code:"Digit1"},"@":{keyCode:50,key:"@",code:"Digit2"},"#":{keyCode:51,key:"#",code:"Digit3"},$:{keyCode:52,key:"$",code:"Digit4"},"%":{keyCode:53,key:"%",code:"Digit5"},"^":{keyCode:54,key:"^",code:"Digit6"},"&":{keyCode:55,key:"&",code:"Digit7"},"(":{keyCode:57,key:"(",code:"Digit9"},A:{keyCode:65,key:"A",code:"KeyA"},B:{keyCode:66,key:"B",code:"KeyB"},C:{keyCode:67,key:"C",code:"KeyC"},D:{keyCode:68,key:"D",code:"KeyD"},E:{keyCode:69,key:"E",code:"KeyE"},F:{keyCode:70,key:"F",code:"KeyF"},G:{keyCode:71,key:"G",code:"KeyG"},H:{keyCode:72,key:"H",code:"KeyH"},I:{keyCode:73,key:"I",code:"KeyI"},J:{keyCode:74,key:"J",code:"KeyJ"},K:{keyCode:75,key:"K",code:"KeyK"},L:{keyCode:76,key:"L",code:"KeyL"},M:{keyCode:77,key:"M",code:"KeyM"},N:{keyCode:78,key:"N",code:"KeyN"},O:{keyCode:79,key:"O",code:"KeyO"},P:{keyCode:80,key:"P",code:"KeyP"},Q:{keyCode:81,key:"Q",code:"KeyQ"},R:{keyCode:82,key:"R",code:"KeyR"},S:{keyCode:83,key:"S",code:"KeyS"},T:{keyCode:84,key:"T",code:"KeyT"},U:{keyCode:85,key:"U",code:"KeyU"},V:{keyCode:86,key:"V",code:"KeyV"},W:{keyCode:87,key:"W",code:"KeyW"},X:{keyCode:88,key:"X",code:"KeyX"},Y:{keyCode:89,key:"Y",code:"KeyY"},Z:{keyCode:90,key:"Z",code:"KeyZ"},":":{keyCode:186,key:":",code:"Semicolon"},"<":{keyCode:188,key:"<",code:"Comma"},_:{keyCode:189,key:"_",code:"Minus"},">":{keyCode:190,key:">",code:"Period"},"?":{keyCode:191,key:"?",code:"Slash"},"~":{keyCode:192,key:"~",code:"Backquote"},"{":{keyCode:219,key:"{",code:"BracketLeft"},"|":{keyCode:220,key:"|",code:"Backslash"},"}":{keyCode:221,key:"}",code:"BracketRight"},'"':{keyCode:222,key:"\"",code:"Quote"},SoftLeft:{key:"SoftLeft",code:"SoftLeft",location:4},SoftRight:{key:"SoftRight",code:"SoftRight",location:4},Camera:{keyCode:44,key:"Camera",code:"Camera",location:4},Call:{key:"Call",code:"Call",location:4},EndCall:{keyCode:95,key:"EndCall",code:"EndCall",location:4},VolumeDown:{keyCode:182,key:"VolumeDown",code:"VolumeDown",location:4},VolumeUp:{keyCode:183,key:"VolumeUp",code:"VolumeUp",location:4}}},41418:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WebWorker=void 0;const n=r(2680),a=r(47674),o=r(59574),i=r(79272);class s extends n.EventEmitter{constructor(e,t,r,n){super(),this._client=e,this._url=t,this._executionContextPromise=new Promise(e=>this._executionContextCallback=e);let s;this._client.once("Runtime.executionContextCreated",async t=>{s=t=>new i.JSHandle(r,e,t);const r=new o.ExecutionContext(e,t.context,null);this._executionContextCallback(r)}),this._client.send("Runtime.enable").catch(a.debugError),this._client.on("Runtime.consoleAPICalled",e=>r(e.type,e.args.map(s),e.stackTrace)),this._client.on("Runtime.exceptionThrown",e=>n(e.exceptionDetails))}url(){return this._url}async executionContext(){return this._executionContextPromise}async evaluate(e,...t){return(await this._executionContextPromise).evaluate(e,...t)}async evaluateHandle(e,...t){return(await this._executionContextPromise).evaluateHandle(e,...t)}}t.WebWorker=s},85668:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assert=void 0,t.assert=(e,t)=>{if(!e)throw new Error(t)}},84763: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)"default"!=r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getFetch=void 0;const i=r(23222);t.getFetch=async()=>i.isNode?await Promise.resolve().then(()=>o(r(22434))):globalThis.fetch},47674:function(e,t,r){"use strict";function n(e,t,r){return e.on(t,r),{emitter:e,eventName:t,handler:r}}function a(e){for(const t of e)t.emitter.removeListener(t.eventName,t.handler);e.length=0}function o(e){return"string"==typeof e||e instanceof String}function i(e,...t){return o(e)?(m.assert(0===t.length,"Cannot evaluate a string with arguments"),e):`(${e})(${t.map(function(e){return Object.is(e,void 0)?"undefined":JSON.stringify(e)}).join(",")})`}async function s(){if(!g.isNode)throw new Error("Cannot load the fs module API outside of Node.");const e=await Promise.resolve().then(()=>p(r(35747)));return e.promises?e:e.default}var l=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]}),d=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),p=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!=r&&Object.hasOwnProperty.call(e,r)&&l(t,e,r);return d(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.helper=t.debugError=void 0;const c=r(29554),u=r(49259),m=r(85668),g=r(23222);t.debugError=u.debug("puppeteer:error"),t.helper={evaluationString:i,pageBindingInitString:function(e,t){return i(function(e,t){const r=window,n=r[t];r[t]=(...r)=>{const a=window[t];let o=a.callbacks;o||(o=new Map,a.callbacks=o);const i=(a.lastSeq||0)+1;a.lastSeq=i;const s=new Promise((e,t)=>o.set(i,{resolve:e,reject:t}));return n(JSON.stringify({type:e,name:t,seq:i,args:r})),s}},e,t)},pageBindingDeliverResultString:function(e,t,r){return i(function(e,t,r){window[e].callbacks.get(t).resolve(r),window[e].callbacks.delete(t)},e,t,r)},pageBindingDeliverErrorString:function(e,t,r,n){return i(function(e,t,r,n){const a=new Error(r);a.stack=n,window[e].callbacks.get(t).reject(a),window[e].callbacks.delete(t)},e,t,r,n)},pageBindingDeliverErrorValueString:function(e,t,r){return i(function(e,t,r){window[e].callbacks.get(t).reject(r),window[e].callbacks.delete(t)},e,t,r)},makePredicateString:function(e,t){const r=t?`const predicateQueryHandler = ${t};`:"";return` + */function r(e){return"[object Object]"===Object.prototype.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.isPlainObject=function(e){var t,n;return!1!==r(e)&&((t=e.constructor,void 0===t)||(n=t.prototype,!1!==r(n)&&!1!==n.hasOwnProperty("isPrototypeOf")))}},31894:(e,t,r)=>{"use strict";var n=r(7158);e.exports=n},7158:(e,t,r)=>{"use strict";function n(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}var a=r(3434),o=r(86156);e.exports.Type=r(78099),e.exports.Schema=r(58126),e.exports.FAILSAFE_SCHEMA=r(21712),e.exports.JSON_SCHEMA=r(75698),e.exports.CORE_SCHEMA=r(11277),e.exports.DEFAULT_SAFE_SCHEMA=r(23713),e.exports.DEFAULT_FULL_SCHEMA=r(17028),e.exports.load=a.load,e.exports.loadAll=a.loadAll,e.exports.safeLoad=a.safeLoad,e.exports.safeLoadAll=a.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=r(41030),e.exports.MINIMAL_SCHEMA=r(21712),e.exports.SAFE_SCHEMA=r(23713),e.exports.DEFAULT_SCHEMA=r(17028),e.exports.scan=n("scan"),e.exports.parse=n("parse"),e.exports.compose=n("compose"),e.exports.addConstructor=n("addConstructor")},39990:e=>{"use strict";function t(e){return"undefined"==typeof e||null===e}e.exports.isNothing=t,e.exports.isObject=function(e){return"object"==typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:t(e)?[]:[e]},e.exports.repeat=function(e,t){var r="",n;for(n=0;n{"use strict";function n(e,t){var r,n,a,o,i,s,l;if(null===t)return{};for(r={},n=Object.keys(t),(a=0,o=n.length);a=e)r="x",n=2;else if(65535>=e)r="u",n=4;else if(4294967295>=e)r="U",n=8;else throw new R("code point within a string may not be greater than 0xFFFFFFFF");return"\\"+r+z.repeat("0",n-t.length)+t}function o(e){this.schema=e.schema||M,this.indent=_Mathmax(1,e.indent||2),this.noArrayIndent=e.noArrayIndent||!1,this.skipInvalid=e.skipInvalid||!1,this.flowLevel=z.isNothing(e.flowLevel)?-1:e.flowLevel,this.styleMap=n(this.schema,e.styles||null),this.sortKeys=e.sortKeys||!1,this.lineWidth=e.lineWidth||80,this.noRefs=e.noRefs||!1,this.noCompatMode=e.noCompatMode||!1,this.condenseFlow=e.condenseFlow||!1,this.implicitTypes=this.schema.compiledImplicit,this.explicitTypes=this.schema.compiledExplicit,this.tag=null,this.result="",this.duplicates=[],this.usedDuplicates=null}function i(e,t){for(var r=z.repeat(" ",t),n=0,a=-1,o="",i=e.length,s;n=e||161<=e&&55295>=e&&8232!==e&&8233!==e||57344<=e&&65533>=e&&65279!==e||65536<=e&&1114111>=e}function u(e){return p(e)&&!d(e)&&65279!==e&&13!==e&&10!==e}function m(e,t){return p(e)&&65279!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&58!==e&&(35!==e||t&&u(t))}function g(e){return p(e)&&65279!==e&&!d(e)&&45!==e&&63!==e&&58!==e&&44!==e&&91!==e&&93!==e&&123!==e&&125!==e&&35!==e&&38!==e&&42!==e&&33!==e&&124!==e&&61!==e&&62!==e&&39!==e&&34!==e&&37!==e&&64!==e&&96!==e}function h(e){return /^\n* /.test(e)}function f(e,t,r,n,a){var o=!1,s=!1,l=-1!==n,c=-1,u=g(e.charCodeAt(0))&&!d(e.charCodeAt(e.length-1)),f,y,b;if(t)for(f=0;fn&&" "!==e[c+1],c=f);else if(!p(y))return 5;b=0n&&" "!==e[c+1]}return o||s?9=e.flowLevel;switch(f(t,d,e.indent,s,a)){case 1:return t;case 2:return"'"+t.replace(/'/g,"''")+"'";case 3:return"|"+b(t,e.indent)+S(i(t,o));case 4:return">"+b(t,e.indent)+S(i(x(t,s),o));case 5:return"\""+k(t,s)+"\"";default:throw new R("impossible error: invalid scalar style");}}()}function b(e,t){var r=h(e)?t+"":"",n="\n"===e[e.length-1],a=n&&("\n"===e[e.length-2]||"\n"===e),o=a?"+":n?"":"-";return r+o+"\n"}function S(e){return"\n"===e[e.length-1]?e.slice(0,-1):e}function x(e,t){for(var r=/(\n+)([^\n]*)/g,n=function(){var n=e.indexOf("\n");return n=-1===n?e.length:n,r.lastIndex=n,v(e.slice(0,n),t)}(),a="\n"===e[0]||" "===e[0],o,i;i=r.exec(e);){var s=i[1],l=i[2];o=" "===l[0],n+=s+(a||o||""===l?"":"\n")+v(l,t),a=o}return n}function v(e,t){if(""===e||" "===e[0])return e;for(var r=0,n=0,a=0,o="",i,s;i=/ [^ ]/g.exec(e);)a=i.index,a-r>t&&(s=n>r?n:a,o+="\n"+e.slice(r,s),r=s+1),n=a;return o+="\n",o+=e.length-r>t&&n>r?e.slice(r,n)+"\n"+e.slice(n+1):e.slice(r),o.slice(1)}function k(e){for(var t="",r=0,n,o,s;r=n&&(o=e.charCodeAt(r+1),56320<=o&&57343>=o)){t+=a(1024*(n-55296)+o-56320+65536),r++;continue}s=B[n],t+=!s&&p(n)?e[r]:s||a(n)}return t}function C(e,t,r){var n="",a=e.tag,o,i;for(o=0,i=r.length;o tag resolver accepts not \""+l+"\" style");e.dump=n}return!0}return!1}function A(e,t,r,n,a,o){e.tag=null,e.dump=r,E(e,r,!1)||E(e,r,!0);var i=W.call(e.dump);n&&(n=0>e.flowLevel||e.flowLevel>t);var s="[object Object]"===i||"[object Array]"===i,l,d;if(s&&(l=e.duplicates.indexOf(r),d=-1!==l),(null!==e.tag&&"?"!==e.tag||d||2!==e.indent&&0 "+e.dump)}return!0}function O(e,t){var r=[],n=[],a,o;for(P(e,r,n),a=0,o=n.length;a{"use strict";function t(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}t.prototype=Object.create(Error.prototype),t.prototype.constructor=t,t.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=t},3434:(e,t,r)=>{"use strict";function n(e){return Object.prototype.toString.call(e)}function a(e){return 10===e||13===e}function o(e){return 9===e||32===e}function s(e){return 9===e||32===e||10===e||13===e}function l(e){return 44===e||91===e||93===e||123===e||125===e}function d(e){var t;return 48<=e&&57>=e?e-48:(t=32|e,97<=t&&102>=t?t-97+10:-1)}function p(e){return 120===e?2:117===e?4:85===e?8:0}function c(e){return 48<=e&&57>=e?e-48:-1}function u(e){return 48===e?"\0":97===e?"\x07":98===e?"\b":116===e?"\t":9===e?"\t":110===e?"\n":118===e?"\x0B":102===e?"\f":114===e?"\r":101===e?"\x1B":32===e?" ":34===e?"\"":47===e?"/":92===e?"\\":78===e?"\x85":95===e?"\xA0":76===e?"\u2028":80===e?"\u2029":""}function m(e){return 65535>=e?_StringfromCharCode(e):_StringfromCharCode((e-65536>>10)+55296,(1023&e-65536)+56320)}function g(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||j,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function h(e,t){return new F(t,new G(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function f(e,t){throw h(e,t)}function y(e,t){e.onWarning&&e.onWarning.call(null,h(e,t))}function b(e,t,r,n){var a,o,i,s;if(t=i||f(e,"expected valid JSON character");else V.test(s)&&f(e,"the stream contains non-printable characters");e.result+=s}}function S(e,t,r,n){var a,o,i,s;for(D.isObject(r)||f(e,"cannot merge mappings; the provided source object is unacceptable"),a=Object.keys(r),(i=0,s=a.length);i=t){m=!0,y=e.input.charCodeAt(e.position);continue}else{e.position=u,e.line=g,e.lineStart=h,e.lineIndent=f;break}m&&(b(e,c,u,!1),_(e,e.line-g),c=u=e.position,m=!1),o(y)||(u=e.position+1),y=e.input.charCodeAt(++e.position)}return(b(e,c,u,!1),!!e.result)||(e.kind=n,e.result=i,!1)}function T(e,t){var r,n,o;if(r=e.input.charCodeAt(e.position),39!==r)return!1;for(e.kind="scalar",e.result="",e.position++,n=o=e.position;0!==(r=e.input.charCodeAt(e.position));)if(39!==r)a(r)?(b(e,n,o,!0),_(e,k(e,!1,t)),n=o=e.position):e.position===e.lineStart&&C(e)?f(e,"unexpected end of the document within a single quoted scalar"):(e.position++,o=e.position);else if(b(e,n,e.position,!0),r=e.input.charCodeAt(++e.position),39===r)n=e.position,e.position++,o=e.position;else return!0;f(e,"unexpected end of the stream within a single quoted scalar")}function E(e,t){var r,n,o,i,s,l;if(l=e.input.charCodeAt(e.position),34!==l)return!1;for(e.kind="scalar",e.result="",e.position++,r=n=e.position;0!==(l=e.input.charCodeAt(e.position));){if(34===l)return b(e,r,e.position,!0),e.position++,!0;if(92===l){if(b(e,r,e.position,!0),l=e.input.charCodeAt(++e.position),a(l))k(e,!1,t);else if(256>l&&J[l])e.result+=$[l],e.position++;else if(0<(s=p(l))){for(o=s,i=0;0s&&(s=e.lineIndent),a(g)){l++;continue}if(e.lineIndentt)&&0!==d)f(e,"bad indentation of a sequence entry");else if(e.lineIndentt)&&(I(e,t,4,!0,h)&&(u?p=e.result:c=e.result),!u&&(x(e,i,l,d,p,c,y,b),d=p=c=null),k(e,!0,-1),S=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==S)f(e,"bad indentation of a mapping entry");else if(e.lineIndentt?o=1:e.lineIndent===t?o=0:e.lineIndentt?o=1:e.lineIndent===t?o=0:e.lineIndent tag; it should be \"scalar\", not \""+e.kind+"\""),c=0,u=e.implicitTypes.length;c tag; it should be \""+m.kind+"\", not \""+e.kind+"\""),m.resolve(e.result)?(e.result=m.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):f(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):f(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||s}function W(e){var t=e.position,r=!1,n,i,l,d;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(d=e.input.charCodeAt(e.position))&&(k(e,!0,-1),d=e.input.charCodeAt(e.position),!(0i.length&&f(e,"directive name must not be less than one character in length");0!==d;){for(;o(d);)d=e.input.charCodeAt(++e.position);if(35===d){do d=e.input.charCodeAt(++e.position);while(0!==d&&!a(d));break}if(a(d))break;for(n=e.position;0!==d&&!s(d);)d=e.input.charCodeAt(++e.position);l.push(e.input.slice(n,e.position))}0!==d&&v(e),H.call(ee,i)?ee[i](e,i,l):y(e,"unknown document directive \""+i+"\"")}return k(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,k(e,!0,-1)):r&&f(e,"directives end mark is expected"),I(e,e.lineIndent-1,4,!1,!0),k(e,!0,-1),e.checkLineBreaks&&K.test(e.input.slice(t,e.position))&&y(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&C(e)?void(46===e.input.charCodeAt(e.position)&&(e.position+=3,k(e,!0,-1))):void(e.positionZ;Z++)J[Z]=u(Z)?1:0,$[Z]=u(Z);var ee={YAML:function(e,t,r){var n,a,o;null!==e.version&&f(e,"duplication of %YAML directive"),1!==r.length&&f(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(r[0]),null===n&&f(e,"ill-formed argument of the YAML directive"),a=parseInt(n[1],10),o=parseInt(n[2],10),1!==a&&f(e,"unacceptable YAML version of the document"),e.version=r[0],e.checkLineBreaks=2>o,1!==o&&2!==o&&y(e,"unsupported YAML version of the document")},TAG:function(e,t,r){var n,a;2!==r.length&&f(e,"TAG directive accepts exactly two arguments"),n=r[0],a=r[1],X.test(n)||f(e,"ill-formed tag handle (first argument) of the TAG directive"),H.call(e.tagMap,n)&&f(e,"there is a previously declared suffix for \""+n+"\" tag handle"),Q.test(a)||f(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=a}};e.exports.loadAll=B,e.exports.load=N,e.exports.safeLoadAll=function(e,t,r){return"object"==typeof t&&null!==t&&"undefined"==typeof r&&(r=t,t=null),B(e,t,D.extend({schema:U},r))},e.exports.safeLoad=function(e,t){return N(e,D.extend({schema:U},t))}},79989:(e,t,r)=>{"use strict";function n(e,t,r,n,a){this.name=e,this.buffer=t,this.position=r,this.line=n,this.column=a}var a=r(39990);n.prototype.getSnippet=function(e,t){var r,n,o,i,s;if(!this.buffer)return null;for(e=e||4,t=t||75,r="",n=this.position;0t/2-1){r=" ... ",n+=5;break}for(o="",i=this.position;it/2-1){o=" ... ",i-=5;break}return s=this.buffer.slice(n,i),a.repeat(" ",e)+r+s+o+"\n"+a.repeat(" ",e+this.position-n+r.length)+"^"},n.prototype.toString=function(e){var t="",r;return this.name&&(t+="in \""+this.name+"\" "),t+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(t+=":\n"+r)),t},e.exports=n},58126:(e,t,r)=>{"use strict";function n(e,t,r){var a=[];return e.include.forEach(function(e){r=n(e,t,r)}),e[t].forEach(function(e){r.forEach(function(t,r){t.tag===e.tag&&t.kind===e.kind&&a.push(r)}),r.push(e)}),r.filter(function(e,t){return-1===a.indexOf(t)})}function a(){function e(e){t[e.kind][e.tag]=t.fallback[e.tag]=e}var t={scalar:{},sequence:{},mapping:{},fallback:{}},r,n;for(r=0,n=arguments.length;r{"use strict";var n=r(58126);e.exports=new n({include:[r(75698)]})},17028:(e,t,r)=>{"use strict";var n=r(58126);e.exports=n.DEFAULT=new n({include:[r(23713)],explicit:[r(7988),r(19817),r(42939)]})},23713:(e,t,r)=>{"use strict";var n=r(58126);e.exports=new n({include:[r(11277)],implicit:[r(21136),r(37255)],explicit:[r(58212),r(82769),r(8234),r(31745)]})},21712:(e,t,r)=>{"use strict";var n=r(58126);e.exports=new n({explicit:[r(51497),r(506),r(58865)]})},75698:(e,t,r)=>{"use strict";var n=r(58126);e.exports=new n({include:[r(21712)],implicit:[r(30421),r(79193),r(76048),r(44514)]})},78099:(e,t,r)=>{"use strict";function n(e){var t={};return null!==e&&Object.keys(e).forEach(function(r){e[r].forEach(function(e){t[e+""]=r})}),t}var a=r(41030),o=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],i=["scalar","sequence","mapping"];e.exports=function(e,t){if(t=t||{},Object.keys(t).forEach(function(t){if(-1===o.indexOf(t))throw new a("Unknown option \""+t+"\" is met in definition of \""+e+"\" YAML type.")}),this.tag=e,this.kind=t.kind||null,this.resolve=t.resolve||function(){return!0},this.construct=t.construct||function(e){return e},this.instanceOf=t.instanceOf||null,this.predicate=t.predicate||null,this.represent=t.represent||null,this.defaultStyle=t.defaultStyle||null,this.styleAliases=n(t.styleAliases||null),-1===i.indexOf(this.kind))throw new a("Unknown kind \""+this.kind+"\" is specified for \""+e+"\" YAML type.")}},58212:(e,t,r)=>{"use strict";function n(e){var t=e.replace(/[\r\n=]/g,""),r=t.length,n=0,a=[],i,s;for(i=0;i>16),a.push(255&n>>8),a.push(255&n)),n=n<<6|"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r".indexOf(t.charAt(i));return s=6*(r%4),0===s?(a.push(255&n>>16),a.push(255&n>>8),a.push(255&n)):18===s?(a.push(255&n>>10),a.push(255&n>>2)):12==s&&a.push(255&n>>4),o?o.from?o.from(a):new o(a):a}function a(e){return o&&o.isBuffer(e)}var o;try{var i=require;o=i("buffer").Buffer}catch(e){}var s=r(78099);e.exports=new s("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=0,r=e.length,n,a;for(a=0;an)return!1;t+=6}return 0==t%8},construct:n,predicate:a,represent:function(e){var t="",r=0,n=e.length,a,o;for(a=0;a>18],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>12],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>6],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r]),r=(r<<8)+e[a];return o=n%3,0===o?(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>18],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>12],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>6],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r]):2===o?(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>10],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>4],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r<<2],t+="="):1==o&&(t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r>>2],t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"[63&r<<4],t+="=",t+="="),t}})},79193:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},44514:(e,t,r)=>{"use strict";var n=r(39990),a=r(78099);e.exports=new a("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!!(/^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*|[-+]?\.(?:inf|Inf|INF)|\.(?:nan|NaN|NAN))$/.test(e)&&"_"!==e[e.length-1])},construct:function(e){var t,r,n,a;return(t=e.replace(/_/g,"").toLowerCase(),r="-"===t[0]?-1:1,a=[],0<="+-".indexOf(t[0])&&(t=t.slice(1)),".inf"===t)?1===r?_NumberPOSITIVE_INFINITY:_NumberNEGATIVE_INFINITY:".nan"===t?NaN:0<=t.indexOf(":")?(t.split(":").forEach(function(e){a.unshift(parseFloat(e,10))}),t=0,n=1,a.forEach(function(e){t+=e*n,n*=60}),r*t):r*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(0!=e%1||n.isNegativeZero(e))},represent:function(e,t){var r;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN";}else if(_NumberPOSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf";}else if(_NumberNEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf";}else if(n.isNegativeZero(e))return"-0.0";return r=e.toString(10),/^[-+]?[0-9]+e/.test(r)?r.replace("e",".e"):r},defaultStyle:"lowercase"})},76048:(e,t,r)=>{"use strict";function n(e){return 48<=e&&57>=e||65<=e&&70>=e||97<=e&&102>=e}function a(e){return 48<=e&&55>=e}function o(e){return 48<=e&&57>=e}var i=r(39990),s=r(78099);e.exports=new s("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length,r=0,i=!1,s;if(!t)return!1;if(s=e[r],("-"===s||"+"===s)&&(s=e[++r]),"0"===s){if(r+1===t)return!0;if(s=e[++r],"b"===s){for(r++;r{"use strict";function n(e){if(null===e)return!1;try{var t=o.parse("("+e+")",{range:!0});return"Program"===t.type&&1===t.body.length&&"ExpressionStatement"===t.body[0].type&&("ArrowFunctionExpression"===t.body[0].expression.type||"FunctionExpression"===t.body[0].expression.type)}catch(e){return!1}}function a(e){var t="("+e+")",r=o.parse(t,{range:!0}),n=[],a;if("Program"!==r.type||1!==r.body.length||"ExpressionStatement"!==r.body[0].type||"ArrowFunctionExpression"!==r.body[0].expression.type&&"FunctionExpression"!==r.body[0].expression.type)throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(e){n.push(e.name)}),a=r.body[0].expression.body.range,"BlockStatement"===r.body[0].expression.body.type?new Function(n,t.slice(a[0]+1,a[1]-1)):new Function(n,"return "+t.slice(a[0],a[1]))}var o;try{var i=require;o=i("esprima")}catch(e){"undefined"!=typeof window&&(o=window.esprima)}var s=r(78099);e.exports=new s("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:n,construct:a,predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},19817:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:function(e){if(null===e)return!1;if(0===e.length)return!1;var t=e,r=/\/([gim]*)$/.exec(e),n="";if("/"===t[0]){if(r&&(n=r[1]),3{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:function(){return!0},construct:function(){},predicate:function(e){return"undefined"==typeof e},represent:function(){return""}})},58865:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null===e?{}:e}})},37255:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},30421:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},82769:(e,t,r)=>{"use strict";var n=r(78099),a=Object.prototype.hasOwnProperty,o=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t=[],r=e,n,i,s,l,d;for(n=0,i=r.length;n{"use strict";var n=r(78099),a=Object.prototype.toString;e.exports=new n("tag:yaml.org,2002:pairs",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t=e,r,n,o,i,s;for(s=Array(t.length),r=0,n=t.length;r{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null===e?[]:e}})},31745:(e,t,r)=>{"use strict";var n=r(78099),a=Object.prototype.hasOwnProperty;e.exports=new n("tag:yaml.org,2002:set",{kind:"mapping",resolve:function(e){if(null===e)return!0;var t=e,r;for(r in t)if(a.call(t,r)&&null!==t[r])return!1;return!0},construct:function(e){return null===e?{}:e}})},51497:(e,t,r)=>{"use strict";var n=r(78099);e.exports=new n("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null===e?"":e}})},21136:(e,t,r)=>{"use strict";var n=r(78099),a=/^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$/,o=/^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\.([0-9]*))?(?:[ \t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$/;e.exports=new n("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==a.exec(e)||null!==o.exec(e))},construct:function(e){var t=0,r=null,n,i,s,l,d,p,c,u,m,g;if(n=a.exec(e),null===n&&(n=o.exec(e)),null===n)throw new Error("Date resolve error");if(i=+n[1],s=+n[2]-1,l=+n[3],!n[4])return new Date(Date.UTC(i,s,l));if(d=+n[4],p=+n[5],c=+n[6],n[7]){for(t=n[7].slice(0,3);3>t.length;)t+="0";t=+t}return n[9]&&(u=+n[10],m=+(n[11]||0),r=6e4*(60*u+m),"-"===n[9]&&(r=-r)),g=new Date(Date.UTC(i,s,l,d,p,c,t)),r&&g.setTime(g.getTime()-r),g},instanceOf:Date,represent:function(e){return e.toISOString()}})},90031:(e,t,r)=>{"use strict";function n({type:e}){if(!(e in p))throw new Error(`Invalid type specified: ${e}`)}const a=r(85622),o=r(35747),{promisify:i}=r(31669),s=r(96902),l=i(o.stat),d=i(o.lstat),p={directory:"isDirectory",file:"isFile"},c=(e,t)=>void 0===e||t[p[e]]();e.exports=async(e,t)=>{t={cwd:process.cwd(),type:"file",allowSymlinks:!0,...t},n(t);const r=t.allowSymlinks?l:d;return s(e,async e=>{try{const n=await r(a.resolve(t.cwd,e));return c(t.type,n)}catch(e){return!1}},t)},e.exports.sync=(e,t)=>{t={cwd:process.cwd(),allowSymlinks:!0,type:"file",...t},n(t);const r=t.allowSymlinks?o.statSync:o.lstatSync;for(const n of e)try{const e=r(a.resolve(t.cwd,n));if(c(t.type,e))return n}catch(e){}}},51993:(e,t,r)=>{function n(e,r){e=e||{},r=r||{};var n={};return Object.keys(r).forEach(function(e){n[e]=r[e]}),Object.keys(e).forEach(function(t){n[t]=e[t]}),n}function a(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!!(r.nocomment||"#"!==t.charAt(0))&&(""===t.trim()?""===e:new o(t,r).match(e))}function o(e,t){if(!(this instanceof o))return new o(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==p.sep&&(e=e.split(p.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function i(e,t){if(t||(this instanceof o?t=this.options:t={}),e="undefined"==typeof e?this.pattern:e,"undefined"==typeof e)throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:m(e)}function s(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==p.sep&&(e=e.split(p.sep).join("/")),e=e.split(y),this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var a,o;for(o=e.length-1;0<=o&&(a=e[o],!a);o--);for(o=0;o>> no match, partial?",e,p,t,c),p===i))}var g;if("string"==typeof l?(g=n.nocase?d.toLowerCase()===l.toLowerCase():d===l,this.debug("string match",l,d,g)):(g=d.match(l),this.debug("pattern match",l,d,g)),!g)return!1}if(a===i&&o===s)return!0;if(a===i)return r;if(o===s){var h=a===i-1&&""===e[a];return h}throw new Error("wtf?")}},23607:(e,t,r)=>{function n(e,t,r,s){"function"==typeof t?(r=t,t={}):(!t||"object"!=typeof t)&&(t={mode:t});var l=t.mode,d=t.fs||o;void 0===l&&(l=i&~process.umask()),s||(s=null);var c=r||function(){};e=a.resolve(e),d.mkdir(e,l,function(r){if(!r)return s=s||e,c(null,s);switch(r.code){case"ENOENT":n(a.dirname(e),t,function(r,a){r?c(r,a):n(e,t,c,a)});break;default:d.stat(e,function(e,t){e||!t.isDirectory()?c(r,s):c(null,s)});}})}var a=r(85622),o=r(35747),i=parseInt("0777",8);e.exports=n.mkdirp=n.mkdirP=n,n.sync=function e(t,r,n){r&&"object"==typeof r||(r={mode:r});var s=r.mode,l=r.fs||o;void 0===s&&(s=i&~process.umask()),n||(n=null),t=a.resolve(t);try{l.mkdirSync(t,s),n=n||t}catch(o){switch(o.code){case"ENOENT":n=e(a.dirname(t),r,n),e(t,r,n);break;default:var d;try{d=l.statSync(t)}catch(e){throw o}if(!d.isDirectory())throw o;}}return n}},64994:e=>{function t(e){if(e+="",!(100=1.5*r?"s":"")}var o=24*(60*60000);e.exports=function(e,a){a=a||{};var o=typeof e;if("string"==o&&0e.size?(i=!0,void s(new a(`content size at ${e.url} over limit: ${e.size}`,"max-size"))):void(n+=t.length,r.push(t))}),t.on("end",function(){if(!i){clearTimeout(l);try{o(Buffer.concat(r,n))}catch(t){s(new a(`Could not create Buffer from response body for ${e.url}: ${t.message}`,"system",t))}}})})}function s(e,t){if("function"!=typeof I)throw new Error("The package `encoding` must be installed to use the textConverted() function");const r=t.get("content-type");let n="utf-8",a,o;return r&&(a=/charset=([^;]*)/i.exec(r)),o=e.slice(0,1024).toString(),!a&&o&&(a=/=i.follow)return n(new a(`maximum redirect reached at: ${i.url}`,"max-redirect")),void o();const s={headers:new F(i.headers),follow:i.follow,counter:i.counter+1,agent:i.agent,compress:i.compress,method:i.method,body:i.body,signal:i.signal,timeout:i.timeout,size:i.size};return 303!==e.statusCode&&i.body&&null===u(i)?(n(new a("Cannot follow redirect with body being a readable stream","unsupported-redirect")),void o()):((303===e.statusCode||(301===e.statusCode||302===e.statusCode)&&"POST"===i.method)&&(s.method="GET",s.body=void 0,s.headers.delete("content-length")),r(w(new J(l,s))),void o());}}e.once("end",function(){d&&d.removeEventListener("abort",g)});let s=e.pipe(new $);const l={url:i.url,status:e.statusCode,statusText:e.statusMessage,headers:t,size:i.size,timeout:i.timeout,counter:i.counter},c=t.get("Content-Encoding");if(!i.compress||"HEAD"===i.method||null===c||204===e.statusCode||304===e.statusCode)return p=new V(s,l),void r(p);const m={flush:P.Z_SYNC_FLUSH,finishFlush:P.Z_SYNC_FLUSH};if("gzip"==c||"x-gzip"==c)return s=s.pipe(P.createGunzip(m)),p=new V(s,l),void r(p);if("deflate"==c||"x-deflate"==c){const t=e.pipe(new $);return void t.once("data",function(e){s=8==(15&e[0])?s.pipe(P.createInflate()):s.pipe(P.createInflateRaw()),p=new V(s,l),r(p)})}return"br"==c&&"function"==typeof P.createBrotliDecompress?(s=s.pipe(P.createBrotliDecompress()),p=new V(s,l),void r(p)):void(p=new V(s,l),r(p))}),m(h,i)})}Object.defineProperty(t,"__esModule",{value:!0});var T=n(r(92413)),E=n(r(98605)),A=n(r(78835)),O=n(r(57211)),P=n(r(78761));const L=T.Readable,z=Symbol("buffer"),R=Symbol("type");class M{constructor(){this[R]="";const e=arguments[0],t=arguments[1],r=[];let n=0;if(e){const t=e,a=+t.length;for(let e=0;et?_Mathmax(e+t,0):_Mathmin(t,e),a=void 0===r?e:0>r?_Mathmax(e+r,0):_Mathmin(r,e);const o=_Mathmax(a-n,0),i=this[z],s=i.slice(n,n+o),l=new M([],{type:arguments[2]});return l[z]=s,l}}Object.defineProperties(M.prototype,{size:{enumerable:!0},type:{enumerable:!0},slice:{enumerable:!0}}),Object.defineProperty(M.prototype,Symbol.toStringTag,{value:"Blob",writable:!1,enumerable:!1,configurable:!0}),a.prototype=Object.create(Error.prototype),a.prototype.constructor=a,a.prototype.name="FetchError";let I;try{I=r(40142).convert}catch(t){}const W=Symbol("Body internals"),q=T.PassThrough;o.prototype={get body(){return this[W].body},get bodyUsed(){return this[W].disturbed},arrayBuffer(){return i.call(this).then(function(e){return e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength)})},blob(){let e=this.headers&&this.headers.get("content-type")||"";return i.call(this).then(function(t){return Object.assign(new M([],{type:e.toLowerCase()}),{[z]:t})})},json(){var e=this;return i.call(this).then(function(t){try{return JSON.parse(t.toString())}catch(t){return o.Promise.reject(new a(`invalid json response body at ${e.url} reason: ${t.message}`,"invalid-json"))}})},text(){return i.call(this).then(function(e){return e.toString()})},buffer(){return i.call(this)},textConverted(){var e=this;return i.call(this).then(function(t){return s(t,e.headers)})}},Object.defineProperties(o.prototype,{body:{enumerable:!0},bodyUsed:{enumerable:!0},arrayBuffer:{enumerable:!0},blob:{enumerable:!0},json:{enumerable:!0},text:{enumerable:!0}}),o.mixIn=function(e){for(const t of Object.getOwnPropertyNames(o.prototype))if(!(t in e)){const r=Object.getOwnPropertyDescriptor(o.prototype,t);Object.defineProperty(e,t,r)}},o.Promise=global.Promise;const B=/[^\^_`a-zA-Z\-0-9!#$%&'*+.|~]/,N=/[^\t\x20-\x7e\x80-\xff]/,D=Symbol("map");class F{constructor(){let e=0=o?{value:void 0,done:!0}:(this[G].index=n+1,{value:a[n],done:!1})}},Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]())));Object.defineProperty(U,Symbol.toStringTag,{value:"HeadersIterator",writable:!1,enumerable:!1,configurable:!0});const j=Symbol("Response internals"),H=E.STATUS_CODES;class V{constructor(){let e=0this[j].status}get redirected(){return 0{e.exports=function(e){var t=e[0],r=e[1]-1;if(0>r&&0>=t)return i;if(-1===t)return function(e){return e<=r};if(0===t)return function(e){return e===r};if(1===t)return 0>r?o:function(e){return e>=r};var n=r%t;return(0>n&&(n+=t),1=r&&e%t===n}:(t*=-1,function(e){return e<=r&&e%t===n})};var n=r(27510),o=n.trueFunc,i=n.falseFunc},88970:(e,t,r)=>{var n=r(30151),a=r(50880);e.exports=function(e){return a(n(e))},e.exports.parse=n,e.exports.compile=a},30151:e=>{e.exports=function(e){if(e=e.trim().toLowerCase(),"even"===e)return[2,0];if("odd"===e)return[2,1];var r=e.match(t);if(!r)throw new SyntaxError("n-th rule couldn't be parsed ('"+e+"')");var n;return r[1]?(n=parseInt(r[1],10),isNaN(n)&&("-"===r[1].charAt(0)?n=-1:n=1)):n=0,[n,r[3]?parseInt((r[2]||"")+r[3],10):0]};var t=/^([+\-]?\d*n)?\s*(?:([+\-]?)\s*(\d+))?$/},47905:(e,t,r)=>{"use strict";var n;if(!Object.keys){var a=Object.prototype.hasOwnProperty,o=Object.prototype.toString,s=r(7595),l=Object.prototype.propertyIsEnumerable,d=!l.call({toString:null},"toString"),p=l.call(function(){},"prototype"),c=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],u=function(e){var t=e.constructor;return t&&t.prototype===e},m={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},g=function(){if("undefined"==typeof window)return!1;for(var e in window)try{if(!m["$"+e]&&a.call(window,e)&&null!==window[e]&&"object"==typeof window[e])try{u(window[e])}catch(t){return!0}}catch(t){return!0}return!1}(),h=function(e){if("undefined"==typeof window||!g)return u(e);try{return u(e)}catch(t){return!1}};n=function(e){var t=null!==e&&"object"==typeof e,r="[object Function]"===o.call(e),n=s(e),l=t&&"[object String]"===o.call(e),u=[];if(!t&&!r&&!n)throw new TypeError("Object.keys called on a non-object");if(l&&0{"use strict";var n=Array.prototype.slice,a=r(7595),i=Object.keys,s=i?function(e){return i(e)}:r(47905),l=Object.keys;s.shim=function(){if(Object.keys){var e=function(){var e=Object.keys(arguments);return e&&e.length===arguments.length}(1,2);e||(Object.keys=function(e){return a(e)?l(n.call(e)):l(e)})}else Object.keys=s;return Object.keys||s},e.exports=s},7595:e=>{"use strict";var t=Object.prototype.toString;e.exports=function(e){var r=t.call(e),n="[object Arguments]"===r;return n||(n="[object Array]"!==r&&null!==e&&"object"==typeof e&&"number"==typeof e.length&&0<=e.length&&"[object Function]"===t.call(e.callee)),n}},81699:(e,t,r)=>{"use strict";var n=r(98496),a=r(66652),o=r(38426),i=o("Object.prototype.propertyIsEnumerable");e.exports=function(e){var t=a(e),r=[];for(var o in t)n(t,o)&&i(t,o)&&r.push(t[o]);return r}},67670:(e,t,r)=>{"use strict";var n=r(3087),a=r(81699),o=r(64450),i=r(51454),s=o();n(s,{getPolyfill:o,implementation:a,shim:i}),e.exports=s},66652:(e,t,r)=>{"use strict";e.exports=r(2686)},2686:(e,t,r)=>{"use strict";var n=r(91862),a=n("%TypeError%");e.exports=function(e,t){if(null==e)throw new a(t||"Cannot call method on "+e);return e}},91862:(e,t,r)=>{"use strict";var n=SyntaxError,a=Function,o=TypeError,i=function(e){try{return Function("\"use strict\"; return ("+e+").constructor;")()}catch(t){}},s=Object.getOwnPropertyDescriptor;if(s)try{s({},"")}catch(t){s=null}var l=function(){throw new o},d=s?function(){try{return arguments.callee,l}catch(e){try{return s(arguments,"callee").get}catch(e){return l}}}():l,p=r(41869)(),c=Object.getPrototypeOf||function(e){return e.__proto__},u=i("async function* () {}"),m=u?u.prototype:void 0,g=m?m.prototype:void 0,h="undefined"==typeof Uint8Array?void 0:c(Uint8Array),f={"%AggregateError%":"undefined"==typeof AggregateError?void 0:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?void 0:ArrayBuffer,"%ArrayIteratorPrototype%":p?c([][Symbol.iterator]()):void 0,"%AsyncFromSyncIteratorPrototype%":void 0,"%AsyncFunction%":i("async function () {}"),"%AsyncGenerator%":m,"%AsyncGeneratorFunction%":u,"%AsyncIteratorPrototype%":g?c(g):void 0,"%Atomics%":"undefined"==typeof Atomics?void 0:Atomics,"%BigInt%":"undefined"==typeof BigInt?void 0:BigInt,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?void 0:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":"undefined"==typeof Float32Array?void 0:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?void 0:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?void 0:FinalizationRegistry,"%Function%":a,"%GeneratorFunction%":i("function* () {}"),"%Int8Array%":"undefined"==typeof Int8Array?void 0:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?void 0:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?void 0:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":p?c(c([][Symbol.iterator]())):void 0,"%JSON%":"object"==typeof JSON?JSON:void 0,"%Map%":"undefined"==typeof Map?void 0:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&p?c(new Map()[Symbol.iterator]()):void 0,"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?void 0:Promise,"%Proxy%":"undefined"==typeof Proxy?void 0:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":"undefined"==typeof Reflect?void 0:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?void 0:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&p?c(new Set()[Symbol.iterator]()):void 0,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?void 0:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":p?c(""[Symbol.iterator]()):void 0,"%Symbol%":p?Symbol:void 0,"%SyntaxError%":n,"%ThrowTypeError%":d,"%TypedArray%":h,"%TypeError%":o,"%Uint8Array%":"undefined"==typeof Uint8Array?void 0:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?void 0:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?void 0:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?void 0:Uint32Array,"%URIError%":URIError,"%WeakMap%":"undefined"==typeof WeakMap?void 0:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?void 0:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?void 0:WeakSet},y={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},b=r(10373),S=r(98496),x=b.call(Function.call,Array.prototype.concat),v=b.call(Function.apply,Array.prototype.splice),k=b.call(Function.call,_Stringprototype.replace),C=function(e){var t=[];return k(e,/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,function(e,r,n,a){t[t.length]=n?k(a,/\\(\\)?/g,"$1"):r||e}),t},_=function(e,t){var r=e,a;if(S(y,r)&&(a=y[r],r="%"+a[0]+"%"),S(f,r)){var i=f[r];if("undefined"==typeof i&&!t)throw new o("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:a,name:r,value:i}}throw new n("intrinsic "+e+" does not exist!")};e.exports=function(e,t){if("string"!=typeof e||0===e.length)throw new o("intrinsic name must be a non-empty string");if(1=r.length){var h=s(d,g);if(m=!!h,!t&&!(g in d))throw new o("base intrinsic for "+e+" exists, but the property is not available.");d=m&&"get"in h&&!("originalValue"in h.get)?h.get:d[g]}else m=S(d,g),d=d[g];m&&!p&&(f[l]=d)}return d}},23909:(e,t,r)=>{"use strict";var n=r(10373),a=r(91862),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},38426:(e,t,r)=>{"use strict";var n=r(91862),a=r(23909),o=a(n("String.prototype.indexOf"));e.exports=function(e,t){var r=n(e,!!t);return"function"==typeof r&&o(e,".prototype.")?a(r):r}},64450:(e,t,r)=>{"use strict";var n=r(81699);e.exports=function(){return"function"==typeof Object.values?Object.values:n}},51454:(e,t,r)=>{"use strict";var n=r(64450),a=r(3087);e.exports=function(){var e=n();return a(Object,{values:e},{values:function(){return Object.values!==e}}),e}},86343:(e,t,r)=>{function n(e){var t=function(){return t.called?t.value:(t.called=!0,t.value=e.apply(this,arguments))};return t.called=!1,t}function a(e){var t=function(){if(t.called)throw new Error(t.onceError);return t.called=!0,t.value=e.apply(this,arguments)},r=e.name||"Function wrapped with `once`";return t.onceError=r+" shouldn't be called more than once",t.called=!1,t}var o=r(42884);e.exports=o(n),e.exports.strict=o(a),n.proto=n(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return n(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return a(this)},configurable:!0})})},19821:(e,t,r)=>{"use strict";const n=r(19840),a=e=>{if(!((_NumberisInteger(e)||e===1/0)&&0{r--,0{r++;const i=n(e,...o);t(i),i.then(a,a)},i=(n,a,...i)=>{rnew Promise(r=>i(e,r,...t));return Object.defineProperties(s,{activeCount:{get:()=>r},pendingCount:{get:()=>t.length},clearQueue:{value:()=>{t.length=0}}}),s};e.exports=a,e.exports.default=a},96902:(e,t,r)=>{"use strict";const n=r(19821);class a extends Error{constructor(e){super(),this.value=e}}const o=async(e,t)=>t(await e),i=async e=>{const t=await Promise.all(e);if(!0===t[1])throw new a(t[0]);return!1},s=async(e,t,r)=>{r={concurrency:1/0,preserveOrder:!0,...r};const s=n(r.concurrency),l=[...e].map(e=>[e,s(o,e,t)]),d=n(r.preserveOrder?1:1/0);try{await Promise.all(l.map(e=>d(i,e)))}catch(e){if(e instanceof a)return e.value;throw e}};e.exports=s,e.exports.default=s},19840:e=>{"use strict";const t=(e,...t)=>new Promise(r=>{r(e(...t))});e.exports=t,e.exports.default=t},68719:(e,t,r)=>{"use strict";const n=r(35747),{promisify:a}=r(31669),o=a(n.access);e.exports=async e=>{try{return await o(e),!0}catch(e){return!1}},e.exports.sync=e=>{try{return n.accessSync(e),!0}catch(e){return!1}}},61056:e=>{"use strict";function t(e){return"/"===e.charAt(0)}function r(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/.exec(e),r=t[1]||"",n=!!(r&&":"!==r.charAt(1));return!!(t[2]||n)}e.exports="win32"===process.platform?r:t,e.exports.posix=t,e.exports.win32=r},1520:e=>{function t(){this.pending=0,this.max=1/0,this.listeners=[],this.waiting=[],this.error=null}function r(e){function t(t){if(a)throw new Error("callback called twice");if(a=!0,e.error=e.error||t,e.pending-=1,0{"use strict";const n=r(85622),a=r(20138),o=async e=>{const t=await a("package.json",{cwd:e});return t&&n.dirname(t)};e.exports=o,e.exports.default=o,e.exports.sync=e=>{const t=a.sync("package.json",{cwd:e});return t&&n.dirname(t)}},10208:(e,t,r)=>{"use strict";function n(e,t){var r=(a("npm_config_no_proxy")||a("no_proxy")).toLowerCase();return!r||"*"!==r&&r.split(/[,\s]/).every(function(r){if(!r)return!0;var n=r.match(/^(.+):(\d+)$/),a=n?n[1]:r,o=n?parseInt(n[2]):0;return!!(o&&o!==t)||(/^[.*]/.test(a)?("*"===a.charAt(0)&&(a=a.slice(1)),!s.call(e,a)):e!==a)})}function a(e){return process.env[e.toLowerCase()]||process.env[e.toUpperCase()]||""}var o=r(78835).parse,i={ftp:21,gopher:70,http:80,https:443,ws:80,wss:443},s=_Stringprototype.endsWith||function(e){return e.length<=this.length&&-1!==this.indexOf(e,this.length-e.length)};t.getProxyForUrl=function(e){var t="string"==typeof e?o(e):e||{},r=t.protocol,s=t.host,l=t.port;if("string"!=typeof s||!s||"string"!=typeof r)return"";if(r=r.split(":",1)[0],s=s.replace(/:\d*$/,""),l=parseInt(l)||i[r]||0,!n(s,l))return"";var d=a("npm_config_"+r+"_proxy")||a(r+"_proxy")||a("npm_config_proxy")||a("all_proxy");return d&&-1===d.indexOf("://")&&(d=r+"://"+d),d}},537:(e,t,r)=>{var n=r(86343),a=r(10852),o=r(35747),i=function(){},s=/^v?\.0/.test(process.version),l=function(e){return"function"==typeof e},d=function(e){return!!s&&!!o&&(e instanceof(o.ReadStream||i)||e instanceof(o.WriteStream||i))&&l(e.close)},p=function(e){return e.setHeader&&l(e.abort)},c=function(e,t,r,o){o=n(o);var s=!1;e.on("close",function(){s=!0}),a(e,{readable:t,writable:r},function(e){return e?o(e):void(s=!0,o())});var c=!1;return function(t){if(!s)return c?void 0:(c=!0,d(e)?e.close(i):p(e)?e.abort():l(e.destroy)?e.destroy():void o(t||new Error("stream was destroyed")))}},u=function(e){e()},m=function(e,t){return e.pipe(t)};e.exports=function(){var e=Array.prototype.slice.call(arguments),t=l(e[e.length-1]||i)&&e.pop()||i;if(Array.isArray(e[0])&&(e=e[0]),2>e.length)throw new Error("pump requires two streams per minimum");var r=e.map(function(a,o){var i=o{const n=r(90176);e.exports=n.default},77601:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Accessibility=void 0;t.Accessibility=class e{constructor(e){this._client=e}async snapshot(e={}){const{interestingOnly:t=!0,root:n=null}=e,{nodes:a}=await this._client.send("Accessibility.getFullAXTree");let o=null;if(n){const{node:e}=await this._client.send("DOM.describeNode",{objectId:n._remoteObject.objectId});o=e.backendNodeId}const i=r.createTree(a);let s=i;if(o&&(s=i.find(e=>e.payload.backendDOMNodeId===o),!s))return null;if(!t)return this.serializeTree(s)[0];const l=new Set;return this.collectInterestingNodes(l,i,!1),l.has(s)?this.serializeTree(s,l)[0]:null}serializeTree(e,t){const r=[];for(const n of e.children)r.push(...this.serializeTree(n,t));if(t&&!t.has(e))return r;const n=e.serialize();return r.length&&(n.children=r),[n]}collectInterestingNodes(e,t,r){if(t.isInteresting(r)&&e.add(t),!t.isLeafNode()){r=r||t.isControl();for(const n of t.children)this.collectInterestingNodes(e,n,r)}}};class r{constructor(e){this.children=[],this._richlyEditable=!1,this._editable=!1,this._focusable=!1,this._hidden=!1,this.payload=e,this._name=this.payload.name?this.payload.name.value:"",this._role=this.payload.role?this.payload.role.value:"Unknown",this._ignored=this.payload.ignored;for(const t of this.payload.properties||[])"editable"===t.name&&(this._richlyEditable="richtext"===t.value.value,this._editable=!0),"focusable"===t.name&&(this._focusable=t.value.value),"hidden"===t.name&&(this._hidden=t.value.value)}_isPlainTextField(){return!this._richlyEditable&&(!!this._editable||"textbox"===this._role||"searchbox"===this._role)}_isTextOnlyObject(){const e=this._role;return"LineBreak"===e||"text"===e||"InlineTextBox"===e}_hasFocusableChild(){if(void 0===this._cachedHasFocusableChild){this._cachedHasFocusableChild=!1;for(const e of this.children)if(e._focusable||e._hasFocusableChild()){this._cachedHasFocusableChild=!0;break}}return this._cachedHasFocusableChild}find(e){if(e(this))return this;for(const t of this.children){const r=t.find(e);if(r)return r}return null}isLeafNode(){if(!this.children.length)return!0;if(this._isPlainTextField()||this._isTextOnlyObject())return!0;switch(this._role){case"doc-cover":case"graphics-symbol":case"img":case"Meter":case"scrollbar":case"slider":case"separator":case"progressbar":return!0;default:}return!this._hasFocusableChild()&&(!!(this._focusable&&this._name)||!!("heading"===this._role&&this._name))}isControl(){switch(this._role){case"button":case"checkbox":case"ColorWell":case"combobox":case"DisclosureTriangle":case"listbox":case"menu":case"menubar":case"menuitem":case"menuitemcheckbox":case"menuitemradio":case"radio":case"scrollbar":case"searchbox":case"slider":case"spinbutton":case"switch":case"tab":case"textbox":case"tree":case"treeitem":return!0;default:return!1;}}isInteresting(e){const t=this._role;return!("Ignored"===t||this._hidden||this._ignored)&&(!!(this._focusable||this._richlyEditable)||!!this.isControl()||!e&&this.isLeafNode()&&!!this._name)}serialize(){const e=new Map;for(const t of this.payload.properties||[])e.set(t.name.toLowerCase(),t.value.value);this.payload.name&&e.set("name",this.payload.name.value),this.payload.value&&e.set("value",this.payload.value.value),this.payload.description&&e.set("description",this.payload.description.value);const t={role:this._role},r=["name","value","description","keyshortcuts","roledescription","valuetext"],n=t=>e.get(t);for(const a of r)e.has(a)&&(t[a]=n(a));const a=["disabled","expanded","focused","modal","multiline","multiselectable","readonly","required","selected"],o=t=>e.get(t);for(const e of a){if("focused"===e&&"WebArea"===this._role)continue;const r=o(e);r&&(t[e]=o(e))}const i=["checked","pressed"];for(const r of i){if(!e.has(r))continue;const n=e.get(r);t[r]="mixed"===n?"mixed":"true"===n}const s=["level","valuemax","valuemin"],l=t=>e.get(t);for(const r of s)e.has(r)&&(t[r]=l(r));const d=["autocomplete","haspopup","invalid","orientation"],p=t=>e.get(t);for(const e of d){const r=p(e);r&&"false"!==r&&(t[e]=p(e))}return t}static createTree(e){const t=new Map;for(const n of e)t.set(n.nodeId,new r(n));for(const r of t.values())for(const e of r.payload.childIds||[])r.children.push(t.get(e));return t.values().next().value}}},79867:(e,t)=>{"use strict";async function r(e,t,r,n){const{nodes:a}=await e.send("Accessibility.queryAXTree",{objectId:t._remoteObject.objectId,accessibleName:r,role:n}),o=a.filter(e=>"text"!==e.role.value);return o}function n(e){const t=e=>e.replace(/ +/g," ").trim(),r=new Set(["name","role"]),n={},a=e.replace(/\[\s*(?\w+)\s*=\s*"(?\\.|[^"\\]*)"\s*\]/,(e,a,o)=>{if(a=a.trim(),!r.has(a))throw new Error("Unkown aria attribute \"${groups.attribute}\" in selector");return n[a]=t(o),""});return a&&!n.name&&(n.name=t(a)),n}Object.defineProperty(t,"__esModule",{value:!0}),t.ariaHandler=void 0;const a=async(e,t)=>{const a=e.executionContext(),{name:o,role:i}=n(t),s=await r(a._client,e,o,i);return 1>s.length?null:a._adoptBackendNodeId(s[0].backendDOMNodeId)},o=async(e,t)=>{const a=e.executionContext(),{name:o,role:i}=n(t),s=await r(a._client,e,o,i);return Promise.all(s.map(e=>a._adoptBackendNodeId(e.backendDOMNodeId)))};t.ariaHandler={queryOne:a,waitFor:async(e,t,r)=>{return e.waitForSelectorInPage((e,t)=>globalThis.ariaQuerySelector(t),t,r,{name:"ariaQuerySelector",pptrFunction:async t=>{const r=await e._document(),n=await a(r,t);return n}})},queryAll:o,queryAllArray:async(e,t)=>{const r=await o(e,t),n=e.executionContext(),a=n.evaluateHandle((...e)=>e,...r);return a}}},10487:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserContext=t.Browser=void 0;const n=r(85668),a=r(47674),o=r(69668),i=r(2680),s=r(58602);class l extends i.EventEmitter{constructor(e,t,r,n,a,o){super(),this._ignoreHTTPSErrors=r,this._defaultViewport=n,this._process=a,this._connection=e,this._closeCallback=o||function(){},this._defaultContext=new d(this._connection,this,null),this._contexts=new Map;for(const i of t)this._contexts.set(i,new d(this._connection,this,i));this._targets=new Map,this._connection.on(s.ConnectionEmittedEvents.Disconnected,()=>this.emit("disconnected")),this._connection.on("Target.targetCreated",this._targetCreated.bind(this)),this._connection.on("Target.targetDestroyed",this._targetDestroyed.bind(this)),this._connection.on("Target.targetInfoChanged",this._targetInfoChanged.bind(this))}static async create(e,t,r,n,a,o){const i=new l(e,t,r,n,a,o);return await e.send("Target.setDiscoverTargets",{discover:!0}),i}process(){return this._process}async createIncognitoBrowserContext(){const{browserContextId:e}=await this._connection.send("Target.createBrowserContext"),t=new d(this._connection,this,e);return this._contexts.set(e,t),t}browserContexts(){return[this._defaultContext,...Array.from(this._contexts.values())]}defaultBrowserContext(){return this._defaultContext}async _disposeContext(e){await this._connection.send("Target.disposeBrowserContext",{browserContextId:e||void 0}),this._contexts.delete(e)}async _targetCreated(e){const t=e.targetInfo,{browserContextId:r}=t,a=r&&this._contexts.has(r)?this._contexts.get(r):this._defaultContext,i=new o.Target(t,a,()=>this._connection.createSession(t),this._ignoreHTTPSErrors,this._defaultViewport);n.assert(!this._targets.has(e.targetInfo.targetId),"Target should not exist before targetCreated"),this._targets.set(e.targetInfo.targetId,i),(await i._initializedPromise)&&(this.emit("targetcreated",i),a.emit("targetcreated",i))}async _targetDestroyed(e){const t=this._targets.get(e.targetId);t._initializedCallback(!1),this._targets.delete(e.targetId),t._closedCallback(),(await t._initializedPromise)&&(this.emit("targetdestroyed",t),t.browserContext().emit("targetdestroyed",t))}_targetInfoChanged(e){const t=this._targets.get(e.targetInfo.targetId);n.assert(t,"target should exist before targetInfoChanged");const r=t.url(),a=t._isInitialized;t._targetInfoChanged(e.targetInfo),a&&r!==t.url()&&(this.emit("targetchanged",t),t.browserContext().emit("targetchanged",t))}wsEndpoint(){return this._connection.url()}async newPage(){return this._defaultContext.newPage()}async _createPageInContext(e){const{targetId:t}=await this._connection.send("Target.createTarget",{url:"about:blank",browserContextId:e||void 0}),r=await this._targets.get(t);n.assert(await r._initializedPromise,"Failed to create target for page");const a=await r.page();return a}targets(){return Array.from(this._targets.values()).filter(e=>e._isInitialized)}target(){return this.targets().find(e=>"browser"===e.type())}async waitForTarget(e,t={}){function r(t){e(t)&&i(t)}const{timeout:n=3e4}=t,o=this.targets().find(e);if(o)return o;let i;const s=new Promise(e=>i=e);this.on("targetcreated",r),this.on("targetchanged",r);try{return n?await a.helper.waitWithTimeout(s,"target",n):await s}finally{this.removeListener("targetcreated",r),this.removeListener("targetchanged",r)}}async pages(){const e=await Promise.all(this.browserContexts().map(e=>e.pages()));return e.reduce((e,t)=>e.concat(t),[])}async version(){const e=await this._getVersion();return e.product}async userAgent(){const e=await this._getVersion();return e.userAgent}async close(){await this._closeCallback.call(null),this.disconnect()}disconnect(){this._connection.dispose()}isConnected(){return!this._connection._closed}_getVersion(){return this._connection.send("Browser.getVersion")}}t.Browser=l;class d extends i.EventEmitter{constructor(e,t,r){super(),this._connection=e,this._browser=t,this._id=r}targets(){return this._browser.targets().filter(e=>e.browserContext()===this)}waitForTarget(e,t={}){return this._browser.waitForTarget(t=>t.browserContext()===this&&e(t),t)}async pages(){const e=await Promise.all(this.targets().filter(e=>"page"===e.type()).map(e=>e.page()));return e.filter(e=>!!e)}isIncognito(){return!!this._id}async overridePermissions(e,t){const r=new Map([["geolocation","geolocation"],["midi","midi"],["notifications","notifications"],["camera","videoCapture"],["microphone","audioCapture"],["background-sync","backgroundSync"],["ambient-light-sensor","sensors"],["accelerometer","sensors"],["gyroscope","sensors"],["magnetometer","sensors"],["accessibility-events","accessibilityEvents"],["clipboard-read","clipboardReadWrite"],["clipboard-write","clipboardReadWrite"],["payment-handler","paymentHandler"],["idle-detection","idleDetection"],["midi-sysex","midiSysex"]]),n=t.map(e=>{const t=r.get(e);if(!t)throw new Error("Unknown permission: "+e);return t});await this._connection.send("Browser.grantPermissions",{origin:e,browserContextId:this._id||void 0,permissions:n})}async clearPermissionOverrides(){await this._connection.send("Browser.resetPermissions",{browserContextId:this._id||void 0})}newPage(){return this._browser._createPageInContext(this._id)}browser(){return this._browser}async close(){n.assert(this._id,"Non-incognito profiles cannot be closed!"),await this._browser._disposeContext(this._id)}}t.BrowserContext=d},10714:function(e,t,r){"use strict";async function n(e){const t=new URL("/json/version",e),r=await c.getFetch();try{const e=await r(t.toString(),{method:"GET"});if(!e.ok)throw new Error(`HTTP ${e.statusText}`);const n=await e.json();return n.webSocketDebuggerUrl}catch(e){throw e.message=`Failed to fetch browser webSocket URL from ${t}: `+e.message,e}}var a=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]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!=r&&Object.hasOwnProperty.call(e,r)&&a(t,e,r);return o(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.connectToBrowser=void 0;const s=r(10487),l=r(85668),d=r(47674),p=r(58602),c=r(84763),u=r(23222),m=async()=>u.isNode?(await Promise.resolve().then(()=>i(r(17662)))).NodeWebSocketTransport:(await Promise.resolve().then(()=>i(r(96937)))).BrowserWebSocketTransport;t.connectToBrowser=async e=>{const{browserWSEndpoint:t,browserURL:r,ignoreHTTPSErrors:o=!1,defaultViewport:i={width:800,height:600},transport:a,slowMo:c=0}=e;l.assert(1===+!!t+ +!!r+ +!!a,"Exactly one of browserWSEndpoint, browserURL or transport must be passed to puppeteer.connect");let u=null;if(a)u=new p.Connection("",a,c);else if(t){const e=await m(),r=await e.create(t);u=new p.Connection(t,r,c)}else if(r){const e=await n(r),t=await m(),a=await t.create(e);u=new p.Connection(e,a,c)}const{browserContextIds:g}=await u.send("Target.getBrowserContexts");return s.Browser.create(u,g,o,i,null,()=>u.send("Browser.close").catch(d.debugError))}},96937:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BrowserWebSocketTransport=void 0;class r{constructor(e){this._ws=e,this._ws.addEventListener("message",e=>{this.onmessage&&this.onmessage.call(null,e.data)}),this._ws.addEventListener("close",()=>{this.onclose&&this.onclose.call(null)}),this._ws.addEventListener("error",()=>{}),this.onmessage=null,this.onclose=null}static create(e){return new Promise((t,n)=>{const a=new WebSocket(e);a.addEventListener("open",()=>t(new r(a))),a.addEventListener("error",n)})}send(e){this._ws.send(e)}close(){this._ws.close()}}t.BrowserWebSocketTransport=r},58602:(e,t,r)=>{"use strict";function n(e,t,r){let n=`Protocol error (${t}): ${r.error.message}`;return"data"in r.error&&(n+=` ${r.error.data}`),a(e,n)}function a(e,t){return e.message=t,e}Object.defineProperty(t,"__esModule",{value:!0}),t.CDPSession=t.CDPSessionEmittedEvents=t.Connection=t.ConnectionEmittedEvents=void 0;const o=r(85668),i=r(49259),s=i.debug("puppeteer:protocol:SEND \u25BA"),l=i.debug("puppeteer:protocol:RECV \u25C0"),d=r(2680);t.ConnectionEmittedEvents={Disconnected:Symbol("Connection.Disconnected")};class p extends d.EventEmitter{constructor(e,t,r=0){super(),this._lastId=0,this._sessions=new Map,this._closed=!1,this._callbacks=new Map,this._url=e,this._delay=r,this._transport=t,this._transport.onmessage=this._onMessage.bind(this),this._transport.onclose=this._onClose.bind(this)}static fromSession(e){return e._connection}session(e){return this._sessions.get(e)||null}url(){return this._url}send(e,...t){const r=t.length?t[0]:void 0,n=this._rawSend({method:e,params:r});return new Promise((t,r)=>{this._callbacks.set(n,{resolve:t,reject:r,error:new Error,method:e})})}_rawSend(e){const t=++this._lastId,r=JSON.stringify(Object.assign({},e,{id:t}));return s(r),this._transport.send(r),t}async _onMessage(e){this._delay&&(await new Promise(e=>setTimeout(e,this._delay))),l(e);const t=JSON.parse(e);if("Target.attachedToTarget"===t.method){const e=t.params.sessionId,r=new c(this,t.params.targetInfo.type,e);this._sessions.set(e,r)}else if("Target.detachedFromTarget"===t.method){const e=this._sessions.get(t.params.sessionId);e&&(e._onClosed(),this._sessions.delete(t.params.sessionId))}if(t.sessionId){const e=this._sessions.get(t.sessionId);e&&e._onMessage(t)}else if(t.id){const e=this._callbacks.get(t.id);e&&(this._callbacks.delete(t.id),t.error?e.reject(n(e.error,e.method,t)):e.resolve(t.result))}else this.emit(t.method,t.params)}_onClose(){if(!this._closed){this._closed=!0,this._transport.onmessage=null,this._transport.onclose=null;for(const e of this._callbacks.values())e.reject(a(e.error,`Protocol error (${e.method}): Target closed.`));this._callbacks.clear();for(const e of this._sessions.values())e._onClosed();this._sessions.clear(),this.emit(t.ConnectionEmittedEvents.Disconnected)}}dispose(){this._onClose(),this._transport.close()}async createSession(e){const{sessionId:t}=await this.send("Target.attachToTarget",{targetId:e.targetId,flatten:!0});return this._sessions.get(t)}}t.Connection=p,t.CDPSessionEmittedEvents={Disconnected:Symbol("CDPSession.Disconnected")};class c extends d.EventEmitter{constructor(e,t,r){super(),this._callbacks=new Map,this._connection=e,this._targetType=t,this._sessionId=r}send(e,...t){if(!this._connection)return Promise.reject(new Error(`Protocol error (${e}): Session closed. Most likely the ${this._targetType} has been closed.`));const r=t.length?t[0]:void 0,n=this._connection._rawSend({sessionId:this._sessionId,method:e,params:r||{}});return new Promise((t,r)=>{this._callbacks.set(n,{resolve:t,reject:r,error:new Error,method:e})})}_onMessage(e){if(e.id&&this._callbacks.has(e.id)){const t=this._callbacks.get(e.id);this._callbacks.delete(e.id),e.error?t.reject(n(t.error,t.method,e)):t.resolve(e.result)}else o.assert(!e.id),this.emit(e.method,e.params)}async detach(){if(!this._connection)throw new Error(`Session already detached. Most likely the ${this._targetType} has been closed.`);await this._connection.send("Target.detachFromTarget",{sessionId:this._sessionId})}_onClosed(){for(const e of this._callbacks.values())e.reject(a(e.error,`Protocol error (${e.method}): Target closed.`));this._callbacks.clear(),this._connection=null,this.emit(t.CDPSessionEmittedEvents.Disconnected)}}t.CDPSession=c},16051:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleMessage=void 0;t.ConsoleMessage=class e{constructor(e,t,r,n){this._type=e,this._text=t,this._args=r,this._stackTraceLocations=n}type(){return this._type}text(){return this._text}args(){return this._args}location(){return this._stackTraceLocations.length?this._stackTraceLocations[0]:{}}stackTrace(){return this._stackTraceLocations}}},35204:(e,t,r)=>{"use strict";function n(e){const t=[];for(const r of e)t.push({offset:r.startOffset,type:0,range:r}),t.push({offset:r.endOffset,type:1,range:r});t.sort((e,t)=>{if(e.offset!==t.offset)return e.offset-t.offset;if(e.type!==t.type)return t.type-e.type;const r=e.range.endOffset-e.range.startOffset,n=t.range.endOffset-t.range.startOffset;return 0===e.type?n-r:r-n});const r=[],n=[];let a=0;for(const o of t){if(r.length&&a1{"use strict";async function n(e,t,r,...n){async function a(e){async function t(){if(i)return void r();const a=await o(...n);a?r(a):setTimeout(t,e)}let r;const a=new Promise(e=>r=e);return await t(),a}const o=new Function("...args",e);let i=!1;return r&&setTimeout(()=>i=!0,r),"raf"===t?await async function(){async function e(){if(i)return void t();const r=await o(...n);r?t(r):requestAnimationFrame(e)}let t;const r=new Promise(e=>t=e);return await e(),r}():"mutation"===t?await async function(){const e=await o(...n);if(e)return Promise.resolve(e);let t;const r=new Promise(e=>t=e),a=new MutationObserver(async()=>{i&&(a.disconnect(),t());const e=await o(...n);e&&(a.disconnect(),t(e))});return a.observe(document,{childList:!0,subtree:!0,attributes:!0}),r}():"number"==typeof t?await a(t):void 0}Object.defineProperty(t,"__esModule",{value:!0}),t.WaitTask=t.DOMWorld=void 0;const a=r(85668),o=r(47674),i=r(54954),s=r(29554),l=r(90419),d=r(23222);class p{constructor(e,t,r){this._documentPromise=null,this._contextPromise=null,this._contextResolveCallback=null,this._detached=!1,this._waitTasks=new Set,this._boundFunctions=new Map,this._ctxBindings=new Set,this._settingUpBinding=null,this._frameManager=e,this._frame=t,this._timeoutSettings=r,this._setContext(null),e._client.on("Runtime.bindingCalled",e=>this._onBindingCalled(e))}frame(){return this._frame}async _setContext(e){if(e){this._contextResolveCallback.call(null,e),this._contextResolveCallback=null;for(const e of this._waitTasks)e.rerun()}else this._documentPromise=null,this._contextPromise=new Promise(e=>{this._contextResolveCallback=e})}_hasContext(){return!this._contextResolveCallback}_detach(){this._detached=!0;for(const e of this._waitTasks)e.terminate(new Error("waitForFunction failed: frame got detached."))}executionContext(){if(this._detached)throw new Error(`Execution context is not available in detached frame "${this._frame.url()}" (are you trying to evaluate?)`);return this._contextPromise}async evaluateHandle(e,...t){const r=await this.executionContext();return r.evaluateHandle(e,...t)}async evaluate(e,...t){const r=await this.executionContext();return r.evaluate(e,...t)}async $(e){const t=await this._document(),r=await t.$(e);return r}async _document(){return this._documentPromise?this._documentPromise:(this._documentPromise=this.executionContext().then(async e=>{const t=await e.evaluateHandle("document");return t.asElement()}),this._documentPromise)}async $x(e){const t=await this._document(),r=await t.$x(e);return r}async $eval(e,t,...r){const n=await this._document();return n.$eval(e,t,...r)}async $$eval(e,t,...r){const n=await this._document(),a=await n.$$eval(e,t,...r);return a}async $$(e){const t=await this._document(),r=await t.$$(e);return r}async content(){return await this.evaluate(()=>{let e="";return document.doctype&&(e=new XMLSerializer().serializeToString(document.doctype)),document.documentElement&&(e+=document.documentElement.outerHTML),e})}async setContent(e,t={}){const{waitUntil:r=["load"],timeout:n=this._timeoutSettings.navigationTimeout()}=t;await this.evaluate(e=>{document.open(),document.write(e),document.close()},e);const a=new i.LifecycleWatcher(this._frameManager,this._frame,r,n),o=await Promise.race([a.timeoutOrTerminationPromise(),a.lifecyclePromise()]);if(a.dispose(),o)throw o}async addScriptTag(e){async function t(e,t){const r=document.createElement("script");r.src=e,t&&(r.type=t);const n=new Promise((e,t)=>{r.onload=e,r.onerror=t});return document.head.appendChild(r),await n,r}function r(e,t="text/javascript"){const r=document.createElement("script");r.type=t,r.text=e;let n=null;if(r.onerror=t=>n=t,document.head.appendChild(r),n)throw n;return r}const{url:n=null,path:a=null,content:i=null,type:s=""}=e;if(null!==n)try{const e=await this.executionContext();return(await e.evaluateHandle(t,n,s)).asElement()}catch(e){throw new Error(`Loading script from ${n} failed`)}if(null!==a){if(!d.isNode)throw new Error("Cannot pass a filepath to addScriptTag in the browser environment.");const e=await o.helper.importFSModule();let t=await e.promises.readFile(a,"utf8");t+="//# sourceURL="+a.replace(/\n/g,"");const n=await this.executionContext();return(await n.evaluateHandle(r,t,s)).asElement()}if(null!==i){const e=await this.executionContext();return(await e.evaluateHandle(r,i,s)).asElement()}throw new Error("Provide an object with a `url`, `path` or `content` property")}async addStyleTag(e){async function t(e){const t=document.createElement("link");t.rel="stylesheet",t.href=e;const r=new Promise((e,r)=>{t.onload=e,t.onerror=r});return document.head.appendChild(t),await r,t}async function r(e){const t=document.createElement("style");t.type="text/css",t.appendChild(document.createTextNode(e));const r=new Promise((e,r)=>{t.onload=e,t.onerror=r});return document.head.appendChild(t),await r,t}const{url:n=null,path:a=null,content:i=null}=e;if(null!==n)try{const e=await this.executionContext();return(await e.evaluateHandle(t,n)).asElement()}catch(e){throw new Error(`Loading style from ${n} failed`)}if(null!==a){if(!d.isNode)throw new Error("Cannot pass a filepath to addStyleTag in the browser environment.");const e=await o.helper.importFSModule();let t=await e.promises.readFile(a,"utf8");t+="/*# sourceURL="+a.replace(/\n/g,"")+"*/";const n=await this.executionContext();return(await n.evaluateHandle(r,t)).asElement()}if(null!==i){const e=await this.executionContext();return(await e.evaluateHandle(r,i)).asElement()}throw new Error("Provide an object with a `url`, `path` or `content` property")}async click(e,t){const r=await this.$(e);a.assert(r,"No node found for selector: "+e),await r.click(t),await r.dispose()}async focus(e){const t=await this.$(e);a.assert(t,"No node found for selector: "+e),await t.focus(),await t.dispose()}async hover(e){const t=await this.$(e);a.assert(t,"No node found for selector: "+e),await t.hover(),await t.dispose()}async select(e,...t){const r=await this.$(e);a.assert(r,"No node found for selector: "+e);const n=await r.select(...t);return await r.dispose(),n}async tap(e){const t=await this.$(e);await t.tap(),await t.dispose()}async type(e,t,r){const n=await this.$(e);a.assert(n,"No node found for selector: "+e),await n.type(t,r),await n.dispose()}async waitForSelector(e,t){const{updatedSelector:r,queryHandler:n}=l.getQueryHandlerAndSelector(e);return n.waitFor(this,r,t)}async addBindingToContext(e,t){if(!this._ctxBindings.has(p.bindingIdentifier(t,e._contextId))){if(this._settingUpBinding)return await this._settingUpBinding,this.addBindingToContext(e,t);this._settingUpBinding=(async t=>{const r=o.helper.pageBindingInitString("internal",t);try{await e._client.send("Runtime.addBinding",{name:t,executionContextId:e._contextId}),await e.evaluate(r)}catch(e){const t=e.message.includes("Execution context was destroyed"),r=e.message.includes("Cannot find context with specified id");return t||r?void 0:void o.debugError(e)}this._ctxBindings.add(p.bindingIdentifier(t,e._contextId))})(t),await this._settingUpBinding,this._settingUpBinding=null}}async _onBindingCalled(e){function t(e,t,r){globalThis[e].callbacks.get(t).resolve(r),globalThis[e].callbacks.delete(t)}let r;if(this._hasContext()){const n=await this.executionContext();try{r=JSON.parse(e.payload)}catch{return}const{type:a,name:i,seq:s,args:l}=r;if("internal"===a&&this._ctxBindings.has(p.bindingIdentifier(i,n._contextId))&&n._contextId===e.executionContextId)try{const e=await this._boundFunctions.get(i)(...l);await n.evaluate(t,i,s,e)}catch(e){if(e.message.includes("Protocol error"))return;o.debugError(e)}}}async waitForSelectorInPage(e,t,r,n){const{visible:a=!1,hidden:i=!1,timeout:s=this._timeoutSettings.timeout()}=r,l=a||i?"raf":"mutation",d=`selector \`${t}\`${i?" to be hidden":""}`,p={domWorld:this,predicateBody:o.helper.makePredicateString(async function(e,t,r){const n=predicateQueryHandler?await predicateQueryHandler(document,e):document.querySelector(e);return checkWaitForOptions(n,t,r)},e),title:d,polling:l,timeout:s,args:[t,a,i],binding:n},u=new c(p),m=await u.promise,g=m.asElement();return g?g:(await m.dispose(),null)}async waitForXPath(e,t){const{visible:r=!1,hidden:n=!1,timeout:a=this._timeoutSettings.timeout()}=t,i=r||n?"raf":"mutation",s=`XPath \`${e}\`${n?" to be hidden":""}`,l={domWorld:this,predicateBody:o.helper.makePredicateString(function(e,t,r){const n=document.evaluate(e,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue;return checkWaitForOptions(n,t,r)}),title:s,polling:i,timeout:a,args:[e,r,n]},d=new c(l),p=await d.promise,u=p.asElement();return u?u:(await p.dispose(),null)}waitForFunction(e,t={},...r){const{polling:n="raf",timeout:a=this._timeoutSettings.timeout()}=t,o={domWorld:this,predicateBody:e,title:"function",polling:n,timeout:a,args:r},i=new c(o);return i.promise}async title(){return this.evaluate(()=>document.title)}}t.DOMWorld=p,p.bindingIdentifier=(e,t)=>`${e}_${t}`;class c{constructor(e){if(this._runCount=0,this._terminated=!1,o.helper.isString(e.polling))a.assert("raf"===e.polling||"mutation"===e.polling,"Unknown polling option: "+e.polling);else if(o.helper.isNumber(e.polling))a.assert(0{this._resolve=e,this._reject=t}),e.timeout){const t=new s.TimeoutError(`waiting for ${e.title} failed: timeout ${e.timeout}ms exceeded`);this._timeoutTimer=setTimeout(()=>this.terminate(t),e.timeout)}this.rerun()}terminate(e){this._terminated=!0,this._reject(e),this._cleanup()}async rerun(){const e=++this._runCount;let t=null,r=null;const a=await this._domWorld.executionContext();if(!(this._terminated||e!==this._runCount)&&(this._binding&&(await this._domWorld.addBindingToContext(a,this._binding.name)),!(this._terminated||e!==this._runCount))){try{t=await a.evaluateHandle(n,this._predicateBody,this._polling,this._timeout,...this._args)}catch(e){r=e}if(this._terminated||e!==this._runCount)return void(t&&(await t.dispose()));if(!r&&(await this._domWorld.evaluate(e=>!e,t).catch(()=>!0)))return void(await t.dispose());if(r){if(r.message.includes("TypeError: binding is not a function"))return this.rerun();if(r.message.includes("Execution context is not available in detached frame"))return void this.terminate(new Error("waitForFunction failed: frame got detached."));if(r.message.includes("Execution context was destroyed"))return;if(r.message.includes("Cannot find context with specified id"))return;this._reject(r)}else this._resolve(t);this._cleanup()}}_cleanup(){clearTimeout(this._timeoutTimer),this._domWorld._waitTasks.delete(this)}}t.WaitTask=c},49259:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.debug=void 0;const n=r(23222);t.debug=e=>n.isNode?r(35304)(e):(...t)=>{const r=globalThis.__PUPPETEER_DEBUG;if(!r)return;const n="*"===r||(r.endsWith("*")?e.startsWith(r):e===r);n&&console.log(`${e}:`,...t)}},34906:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.devicesMap=void 0;const r=[{name:"Blackberry PlayBook",userAgent:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+",viewport:{width:600,height:1024,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Blackberry PlayBook landscape",userAgent:"Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/7.2.1.0 Safari/536.2+",viewport:{width:1024,height:600,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"BlackBerry Z30",userAgent:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"BlackBerry Z30 landscape",userAgent:"Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy Note 3",userAgent:"Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy Note 3 landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy Note II",userAgent:"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy Note II landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy S III",userAgent:"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:360,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy S III landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Galaxy S5",userAgent:"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Galaxy S5 landscape",userAgent:"Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:768,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:768,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad Mini",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:768,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad Mini landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:768,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPad Pro",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1024,height:1366,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPad Pro landscape",userAgent:"Mozilla/5.0 (iPad; CPU OS 11_0 like Mac OS X) AppleWebKit/604.1.34 (KHTML, like Gecko) Version/11.0 Mobile/15A5341f Safari/604.1",viewport:{width:1366,height:1024,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 4",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53",viewport:{width:320,height:480,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 4 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 7_1_2 like Mac OS X) AppleWebKit/537.51.2 (KHTML, like Gecko) Version/7.0 Mobile/11D257 Safari/9537.53",viewport:{width:480,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 5",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:320,height:568,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 5 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:568,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 6",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 6 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 6 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 6 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 7",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 7 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 7 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 7 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 8",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:667,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 8 landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:667,height:375,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone 8 Plus",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:414,height:736,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone 8 Plus landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:736,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone SE",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:320,height:568,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone SE landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/10.0 Mobile/14E304 Safari/602.1",viewport:{width:568,height:320,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone X",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:375,height:812,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone X landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1",viewport:{width:812,height:375,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"iPhone XR",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",viewport:{width:414,height:896,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"iPhone XR landscape",userAgent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1",viewport:{width:896,height:414,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"JioPhone 2",userAgent:"Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5",viewport:{width:240,height:320,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"JioPhone 2 landscape",userAgent:"Mozilla/5.0 (Mobile; LYF/F300B/LYF-F300B-001-01-15-130718-i;Android; rv:48.0) Gecko/48.0 Firefox/48.0 KAIOS/2.5",viewport:{width:320,height:240,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Kindle Fire HDX",userAgent:"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true",viewport:{width:800,height:1280,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Kindle Fire HDX landscape",userAgent:"Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true",viewport:{width:1280,height:800,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"LG Optimus L70",userAgent:"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:384,height:640,deviceScaleFactor:1.25,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"LG Optimus L70 landscape",userAgent:"Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:384,deviceScaleFactor:1.25,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Microsoft Lumia 550",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:640,height:360,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Microsoft Lumia 950",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:360,height:640,deviceScaleFactor:4,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Microsoft Lumia 950 landscape",userAgent:"Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2486.0 Mobile Safari/537.36 Edge/14.14263",viewport:{width:640,height:360,deviceScaleFactor:4,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 10",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:800,height:1280,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 10 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:1280,height:800,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 4",userAgent:"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:384,height:640,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 4 landscape",userAgent:"Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:384,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 5",userAgent:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:360,height:640,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 5 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:640,height:360,deviceScaleFactor:3,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 5X",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 5X landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 6",userAgent:"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 6 landscape",userAgent:"Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 6P",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:412,height:732,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 6P landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:732,height:412,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nexus 7",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:600,height:960,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nexus 7 landscape",userAgent:"Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Safari/537.36",viewport:{width:960,height:600,deviceScaleFactor:2,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nokia Lumia 520",userAgent:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)",viewport:{width:320,height:533,deviceScaleFactor:1.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nokia Lumia 520 landscape",userAgent:"Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)",viewport:{width:533,height:320,deviceScaleFactor:1.5,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Nokia N9",userAgent:"Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",viewport:{width:480,height:854,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Nokia N9 landscape",userAgent:"Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13",viewport:{width:854,height:480,deviceScaleFactor:1,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 2",userAgent:"Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:411,height:731,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 2 landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:731,height:411,deviceScaleFactor:2.625,isMobile:!0,hasTouch:!0,isLandscape:!0}},{name:"Pixel 2 XL",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:411,height:823,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!1}},{name:"Pixel 2 XL landscape",userAgent:"Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3765.0 Mobile Safari/537.36",viewport:{width:823,height:411,deviceScaleFactor:3.5,isMobile:!0,hasTouch:!0,isLandscape:!0}}],n={};t.devicesMap=n;for(const a of r)n[a.name]=a},2915:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Dialog=void 0;const n=r(85668);t.Dialog=class e{constructor(e,t,r,n=""){this._handled=!1,this._client=e,this._type=t,this._message=r,this._defaultValue=n}type(){return this._type}message(){return this._message}defaultValue(){return this._defaultValue}async accept(e){n.assert(!this._handled,"Cannot accept dialog which is already handled!"),this._handled=!0,await this._client.send("Page.handleJavaScriptDialog",{accept:!0,promptText:e})}async dismiss(){n.assert(!this._handled,"Cannot dismiss dialog which is already handled!"),this._handled=!0,await this._client.send("Page.handleJavaScriptDialog",{accept:!1})}}},3449:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.EmulationManager=void 0;t.EmulationManager=class e{constructor(e){this._emulatingMobile=!1,this._hasTouch=!1,this._client=e}async emulateViewport(e){const t=e.isMobile||!1,r=e.width,n=e.height,a=e.deviceScaleFactor||1,o=e.isLandscape?{angle:90,type:"landscapePrimary"}:{angle:0,type:"portraitPrimary"},i=e.hasTouch||!1;await Promise.all([this._client.send("Emulation.setDeviceMetricsOverride",{mobile:t,width:r,height:n,deviceScaleFactor:a,screenOrientation:o}),this._client.send("Emulation.setTouchEmulationEnabled",{enabled:i})]);const s=this._emulatingMobile!==t||this._hasTouch!==i;return this._emulatingMobile=t,this._hasTouch=i,s}}},29554:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.puppeteerErrors=t.TimeoutError=void 0;class r extends Error{constructor(e){super(e),this.name=this.constructor.name,Error.captureStackTrace(this,this.constructor)}}class n extends r{}t.TimeoutError=n,t.puppeteerErrors={TimeoutError:n}},2680:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EventEmitter=void 0;const a=n(r(78229));t.EventEmitter=class e{constructor(){this.eventsMap=new Map,this.emitter=a.default(this.eventsMap)}on(e,t){return this.emitter.on(e,t),this}off(e,t){return this.emitter.off(e,t),this}removeListener(e,t){return this.off(e,t),this}addListener(e,t){return this.on(e,t),this}emit(e,t){return this.emitter.emit(e,t),0{t(n),this.off(e,r)};return this.on(e,r)}listenerCount(e){return this.eventListenersCount(e)}removeAllListeners(e){return e?this.eventsMap.delete(e):this.eventsMap.clear(),this}eventListenersCount(e){return this.eventsMap.has(e)?this.eventsMap.get(e).length:0}}},59574:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ExecutionContext=t.EVALUATION_SCRIPT_URL=void 0;const n=r(85668),a=r(47674),o=r(79272);t.EVALUATION_SCRIPT_URL="__puppeteer_evaluation_script__";t.ExecutionContext=class e{constructor(e,t,r){this._client=e,this._world=r,this._contextId=t.id}frame(){return this._world?this._world.frame():null}async evaluate(e,...t){return await this._evaluateInternal(!0,e,...t)}async evaluateHandle(e,...t){return this._evaluateInternal(!1,e,...t)}async _evaluateInternal(e,r,...n){function i(e){if("bigint"==typeof e)return{unserializableValue:`${e.toString()}n`};if(Object.is(e,-0))return{unserializableValue:"-0"};if(Object.is(e,1/0))return{unserializableValue:"Infinity"};if(Object.is(e,-Infinity))return{unserializableValue:"-Infinity"};if(Object.is(e,NaN))return{unserializableValue:"NaN"};const t=e&&e instanceof o.JSHandle?e:null;if(t){if(t._context!==this)throw new Error("JSHandles can be evaluated only in the context they were created!");if(t._disposed)throw new Error("JSHandle is disposed!");return t._remoteObject.unserializableValue?{unserializableValue:t._remoteObject.unserializableValue}:t._remoteObject.objectId?{objectId:t._remoteObject.objectId}:{value:t._remoteObject.value}}return{value:e}}function s(e){if(e.message.includes("Object reference chain is too long"))return{result:{type:"undefined"}};if(e.message.includes("Object couldn't be returned by value"))return{result:{type:"undefined"}};if(e.message.endsWith("Cannot find context with specified id")||e.message.endsWith("Inspected target navigated or closed"))throw new Error("Execution context was destroyed, most likely because of a navigation.");throw e}const l=`//# sourceURL=${t.EVALUATION_SCRIPT_URL}`;if(a.helper.isString(r)){const t=this._contextId,n=r,i=/^[\040\t]*\/\/[@#] sourceURL=\s*(\S*?)\s*$/m.test(n)?n:n+"\n"+l,{exceptionDetails:d,result:p}=await this._client.send("Runtime.evaluate",{expression:i,contextId:t,returnByValue:e,awaitPromise:!0,userGesture:!0}).catch(s);if(d)throw new Error("Evaluation failed: "+a.helper.getExceptionMessage(d));return e?a.helper.valueFromRemoteObject(p):o.createJSHandle(this,p)}if("function"!=typeof r)throw new Error(`Expected to get |string| or |function| as the first argument, but got "${r}" instead.`);let d=r.toString();try{new Function("("+d+")")}catch(e){d=d.startsWith("async ")?"async function "+d.substring(6):"function "+d;try{new Function("("+d+")")}catch(e){throw new Error("Passed function is not well-serializable!")}}let p;try{p=this._client.send("Runtime.callFunctionOn",{functionDeclaration:d+"\n"+l+"\n",executionContextId:this._contextId,arguments:n.map(i.bind(this)),returnByValue:e,awaitPromise:!0,userGesture:!0})}catch(e){throw e instanceof TypeError&&e.message.startsWith("Converting circular structure to JSON")&&(e.message+=" Are you passing a nested JSHandle?"),e}const{exceptionDetails:c,result:u}=await p.catch(s);if(c)throw new Error("Evaluation failed: "+a.helper.getExceptionMessage(c));return e?a.helper.valueFromRemoteObject(u):o.createJSHandle(this,u)}async queryObjects(e){n.assert(!e._disposed,"Prototype JSHandle is disposed!"),n.assert(e._remoteObject.objectId,"Prototype JSHandle must not be referencing primitive value");const t=await this._client.send("Runtime.queryObjects",{prototypeObjectId:e._remoteObject.objectId});return o.createJSHandle(this,t.objects)}async _adoptBackendNodeId(e){const{object:t}=await this._client.send("DOM.resolveNode",{backendNodeId:e,executionContextId:this._contextId});return o.createJSHandle(this,t)}async _adoptElementHandle(e){n.assert(e.executionContext()!==this,"Cannot adopt handle that already belongs to this execution context"),n.assert(this._world,"Cannot adopt handle without DOMWorld");const t=await this._client.send("DOM.describeNode",{objectId:e._remoteObject.objectId});return this._adoptBackendNodeId(t.node.backendNodeId)}}},23254:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.FileChooser=void 0;const n=r(85668);t.FileChooser=class e{constructor(e,t){this._handled=!1,this._element=e,this._multiple="selectSingle"!==t.mode}isMultiple(){return this._multiple}async accept(e){n.assert(!this._handled,"Cannot accept FileChooser which is already handled!"),this._handled=!0,await this._element.uploadFile(...e)}async cancel(){n.assert(!this._handled,"Cannot cancel FileChooser which is already handled!"),this._handled=!0}}},71886:(e,t,r)=>{"use strict";function n(e){i.assert(void 0===e.networkIdleTimeout,"ERROR: networkIdleTimeout option is no longer supported."),i.assert(void 0===e.networkIdleInflight,"ERROR: networkIdleInflight option is no longer supported."),i.assert("networkidle"!==e.waitUntil,"ERROR: \"networkidle\" option is no longer supported. Use \"networkidle2\" instead")}Object.defineProperty(t,"__esModule",{value:!0}),t.Frame=t.FrameManager=t.FrameManagerEmittedEvents=void 0;const a=r(49259),o=r(2680),i=r(85668),s=r(47674),l=r(59574),d=r(54954),p=r(5295),c=r(97966),u="__puppeteer_utility_world__";t.FrameManagerEmittedEvents={FrameAttached:Symbol("FrameManager.FrameAttached"),FrameNavigated:Symbol("FrameManager.FrameNavigated"),FrameDetached:Symbol("FrameManager.FrameDetached"),LifecycleEvent:Symbol("FrameManager.LifecycleEvent"),FrameNavigatedWithinDocument:Symbol("FrameManager.FrameNavigatedWithinDocument"),ExecutionContextCreated:Symbol("FrameManager.ExecutionContextCreated"),ExecutionContextDestroyed:Symbol("FrameManager.ExecutionContextDestroyed")};class m extends o.EventEmitter{constructor(e,t,r,n){super(),this._frames=new Map,this._contextIdToContext=new Map,this._isolatedWorlds=new Set,this._client=e,this._page=t,this._networkManager=new c.NetworkManager(e,r,this),this._timeoutSettings=n,this._client.on("Page.frameAttached",e=>this._onFrameAttached(e.frameId,e.parentFrameId)),this._client.on("Page.frameNavigated",e=>this._onFrameNavigated(e.frame)),this._client.on("Page.navigatedWithinDocument",e=>this._onFrameNavigatedWithinDocument(e.frameId,e.url)),this._client.on("Page.frameDetached",e=>this._onFrameDetached(e.frameId)),this._client.on("Page.frameStoppedLoading",e=>this._onFrameStoppedLoading(e.frameId)),this._client.on("Runtime.executionContextCreated",e=>this._onExecutionContextCreated(e.context)),this._client.on("Runtime.executionContextDestroyed",e=>this._onExecutionContextDestroyed(e.executionContextId)),this._client.on("Runtime.executionContextsCleared",()=>this._onExecutionContextsCleared()),this._client.on("Page.lifecycleEvent",e=>this._onLifecycleEvent(e)),this._client.on("Target.attachedToTarget",async e=>this._onFrameMoved(e))}async initialize(){const e=await Promise.all([this._client.send("Page.enable"),this._client.send("Page.getFrameTree")]),{frameTree:t}=e[1];this._handleFrameTree(t),await Promise.all([this._client.send("Page.setLifecycleEventsEnabled",{enabled:!0}),this._client.send("Runtime.enable").then(()=>this._ensureIsolatedWorld(u)),this._networkManager.initialize()])}networkManager(){return this._networkManager}async navigateFrame(e,t,r={}){async function a(e,t,r,n){try{const a=await e.send("Page.navigate",{url:t,referrer:r,frameId:n});return p=!!a.loaderId,a.errorText?new Error(`${a.errorText} at ${t}`):null}catch(e){return e}}n(r);const{referer:o=this._networkManager.extraHTTPHeaders().referer,waitUntil:i=["load"],timeout:s=this._timeoutSettings.navigationTimeout()}=r,l=new d.LifecycleWatcher(this,e,i,s);let p=!1,c=await Promise.race([a(this._client,t,o,e._id),l.timeoutOrTerminationPromise()]);if(c||(c=await Promise.race([l.timeoutOrTerminationPromise(),p?l.newDocumentNavigationPromise():l.sameDocumentNavigationPromise()])),l.dispose(),c)throw c;return l.navigationResponse()}async waitForFrameNavigation(e,t={}){n(t);const{waitUntil:r=["load"],timeout:a=this._timeoutSettings.navigationTimeout()}=t,o=new d.LifecycleWatcher(this,e,r,a),i=await Promise.race([o.timeoutOrTerminationPromise(),o.sameDocumentNavigationPromise(),o.newDocumentNavigationPromise()]);if(o.dispose(),i)throw i;return o.navigationResponse()}async _onFrameMoved(e){"iframe"!==e.targetInfo.type||a.debug("puppeteer:frame")(`The frame '${e.targetInfo.targetId}' moved to another session. `+`Out-of-process iframes (OOPIF) are not supported by Puppeteer yet. `+`https://github.com/puppeteer/puppeteer/issues/2548`)}_onLifecycleEvent(e){const r=this._frames.get(e.frameId);r&&(r._onLifecycleEvent(e.loaderId,e.name),this.emit(t.FrameManagerEmittedEvents.LifecycleEvent,r))}_onFrameStoppedLoading(e){const r=this._frames.get(e);r&&(r._onLoadingStopped(),this.emit(t.FrameManagerEmittedEvents.LifecycleEvent,r))}_handleFrameTree(e){if(e.frame.parentId&&this._onFrameAttached(e.frame.id,e.frame.parentId),this._onFrameNavigated(e.frame),!!e.childFrames)for(const t of e.childFrames)this._handleFrameTree(t)}page(){return this._page}mainFrame(){return this._mainFrame}frames(){return Array.from(this._frames.values())}frame(e){return this._frames.get(e)||null}_onFrameAttached(e,r){if(this._frames.has(e))return;i.assert(r);const n=this._frames.get(r),a=new g(this,n,e);this._frames.set(a._id,a),this.emit(t.FrameManagerEmittedEvents.FrameAttached,a)}_onFrameNavigated(e){const r=!e.parentId;let n=r?this._mainFrame:this._frames.get(e.id);if(i.assert(r||n,"We either navigate top level or have old version of the navigated frame"),n)for(const e of n.childFrames())this._removeFramesRecursively(e);r&&(n?(this._frames.delete(n._id),n._id=e.id):n=new g(this,null,e.id),this._frames.set(e.id,n),this._mainFrame=n),n._navigated(e),this.emit(t.FrameManagerEmittedEvents.FrameNavigated,n)}async _ensureIsolatedWorld(e){this._isolatedWorlds.has(e)||(this._isolatedWorlds.add(e),await this._client.send("Page.addScriptToEvaluateOnNewDocument",{source:`//# sourceURL=${l.EVALUATION_SCRIPT_URL}`,worldName:e}),await Promise.all(this.frames().map(t=>this._client.send("Page.createIsolatedWorld",{frameId:t._id,grantUniveralAccess:!0,worldName:e}).catch(s.debugError))))}_onFrameNavigatedWithinDocument(e,r){const n=this._frames.get(e);n&&(n._navigatedWithinDocument(r),this.emit(t.FrameManagerEmittedEvents.FrameNavigatedWithinDocument,n),this.emit(t.FrameManagerEmittedEvents.FrameNavigated,n))}_onFrameDetached(e){const t=this._frames.get(e);t&&this._removeFramesRecursively(t)}_onExecutionContextCreated(e){const t=e.auxData,r=t?t.frameId:null,n=this._frames.get(r)||null;let a=null;n&&(e.auxData&&!!e.auxData.isDefault?a=n._mainWorld:e.name===u&&!n._secondaryWorld._hasContext()&&(a=n._secondaryWorld)),e.auxData&&"isolated"===e.auxData.type&&this._isolatedWorlds.add(e.name);const o=new l.ExecutionContext(this._client,e,a);a&&a._setContext(o),this._contextIdToContext.set(e.id,o)}_onExecutionContextDestroyed(e){const t=this._contextIdToContext.get(e);t&&(this._contextIdToContext.delete(e),t._world&&t._world._setContext(null))}_onExecutionContextsCleared(){for(const e of this._contextIdToContext.values())e._world&&e._world._setContext(null);this._contextIdToContext.clear()}executionContextById(e){const t=this._contextIdToContext.get(e);return i.assert(t,"INTERNAL ERROR: missing context with id = "+e),t}_removeFramesRecursively(e){for(const t of e.childFrames())this._removeFramesRecursively(t);e._detach(),this._frames.delete(e._id),this.emit(t.FrameManagerEmittedEvents.FrameDetached,e)}}t.FrameManager=m;class g{constructor(e,t,r){this._url="",this._detached=!1,this._loaderId="",this._lifecycleEvents=new Set,this._frameManager=e,this._parentFrame=t,this._url="",this._id=r,this._detached=!1,this._loaderId="",this._mainWorld=new p.DOMWorld(e,this,e._timeoutSettings),this._secondaryWorld=new p.DOMWorld(e,this,e._timeoutSettings),this._childFrames=new Set,this._parentFrame&&this._parentFrame._childFrames.add(this)}async goto(e,t={}){return await this._frameManager.navigateFrame(this,e,t)}async waitForNavigation(e={}){return await this._frameManager.waitForFrameNavigation(this,e)}executionContext(){return this._mainWorld.executionContext()}async evaluateHandle(e,...t){return this._mainWorld.evaluateHandle(e,...t)}async evaluate(e,...t){return this._mainWorld.evaluate(e,...t)}async $(e){return this._mainWorld.$(e)}async $x(e){return this._mainWorld.$x(e)}async $eval(e,t,...r){return this._mainWorld.$eval(e,t,...r)}async $$eval(e,t,...r){return this._mainWorld.$$eval(e,t,...r)}async $$(e){return this._mainWorld.$$(e)}async content(){return this._secondaryWorld.content()}async setContent(e,t={}){return this._secondaryWorld.setContent(e,t)}name(){return this._name||""}url(){return this._url}parentFrame(){return this._parentFrame}childFrames(){return Array.from(this._childFrames)}isDetached(){return this._detached}async addScriptTag(e){return this._mainWorld.addScriptTag(e)}async addStyleTag(e){return this._mainWorld.addStyleTag(e)}async click(e,t={}){return this._secondaryWorld.click(e,t)}async focus(e){return this._secondaryWorld.focus(e)}async hover(e){return this._secondaryWorld.hover(e)}select(e,...t){return this._secondaryWorld.select(e,...t)}async tap(e){return this._secondaryWorld.tap(e)}async type(e,t,r){return this._mainWorld.type(e,t,r)}waitFor(e,t={},...r){if(console.warn("waitFor is deprecated and will be removed in a future release. See https://github.com/puppeteer/puppeteer/issues/6214 for details and how to migrate your code."),s.helper.isString(e)){const r=e;return r.startsWith("//")?this.waitForXPath(r,t):this.waitForSelector(r,t)}return s.helper.isNumber(e)?new Promise(t=>setTimeout(t,e)):"function"==typeof e?this.waitForFunction(e,t,...r):Promise.reject(new Error("Unsupported target type: "+typeof e))}waitForTimeout(e){return new Promise(t=>{setTimeout(t,e)})}async waitForSelector(e,t={}){const r=await this._secondaryWorld.waitForSelector(e,t);if(!r)return null;const n=await this._mainWorld.executionContext(),a=await n._adoptElementHandle(r);return await r.dispose(),a}async waitForXPath(e,t={}){const r=await this._secondaryWorld.waitForXPath(e,t);if(!r)return null;const n=await this._mainWorld.executionContext(),a=await n._adoptElementHandle(r);return await r.dispose(),a}waitForFunction(e,t={},...r){return this._mainWorld.waitForFunction(e,t,...r)}async title(){return this._secondaryWorld.title()}_navigated(e){this._name=e.name,this._url=`${e.url}${e.urlFragment||""}`}_navigatedWithinDocument(e){this._url=e}_onLifecycleEvent(e,t){"init"===t&&(this._loaderId=e,this._lifecycleEvents.clear()),this._lifecycleEvents.add(t)}_onLoadingStopped(){this._lifecycleEvents.add("DOMContentLoaded"),this._lifecycleEvents.add("load")}_detach(){this._detached=!0,this._mainWorld._detach(),this._secondaryWorld._detach(),this._parentFrame&&this._parentFrame._childFrames.delete(this),this._parentFrame=null}}t.Frame=g},68610:(e,t,r)=>{"use strict";function n(e){const t=[];for(const r in e)Object.is(e[r],void 0)||t.push({name:r,value:e[r]+""});return t}Object.defineProperty(t,"__esModule",{value:!0}),t.HTTPRequest=void 0;const a=r(85668),o=r(47674);t.HTTPRequest=class e{constructor(e,t,r,n,a,o){this._failureText=null,this._response=null,this._fromMemoryCache=!1,this._interceptionHandled=!1,this._headers={},this._client=e,this._requestId=a.requestId,this._isNavigationRequest=a.requestId===a.loaderId&&"Document"===a.type,this._interceptionId=r,this._allowInterception=n,this._url=a.request.url,this._resourceType=a.type.toLowerCase(),this._method=a.request.method,this._postData=a.request.postData,this._frame=t,this._redirectChain=o;for(const i of Object.keys(a.request.headers))this._headers[i.toLowerCase()]=a.request.headers[i]}url(){return this._url}resourceType(){return this._resourceType}method(){return this._method}postData(){return this._postData}headers(){return this._headers}response(){return this._response}frame(){return this._frame}isNavigationRequest(){return this._isNavigationRequest}redirectChain(){return this._redirectChain.slice()}failure(){return this._failureText?{errorText:this._failureText}:null}async continue(e={}){if(!this._url.startsWith("data:")){a.assert(this._allowInterception,"Request Interception is not enabled!"),a.assert(!this._interceptionHandled,"Request is already handled!");const{url:t,method:r,postData:i,headers:s}=e;this._interceptionHandled=!0;const l=i?Buffer.from(i).toString("base64"):void 0;await this._client.send("Fetch.continueRequest",{requestId:this._interceptionId,url:t,method:r,postData:l,headers:s?n(s):void 0}).catch(e=>{o.debugError(e)})}}async respond(e){if(this._url.startsWith("data:"))return;a.assert(this._allowInterception,"Request Interception is not enabled!"),a.assert(!this._interceptionHandled,"Request is already handled!"),this._interceptionHandled=!0;const t=e.body&&o.helper.isString(e.body)?Buffer.from(e.body):e.body||null,r={};if(e.headers)for(const t of Object.keys(e.headers))r[t.toLowerCase()]=e.headers[t];e.contentType&&(r["content-type"]=e.contentType),t&&!("content-length"in r)&&(r["content-length"]=Buffer.byteLength(t)+""),await this._client.send("Fetch.fulfillRequest",{requestId:this._interceptionId,responseCode:e.status||200,responsePhrase:s[e.status||200],responseHeaders:n(r),body:t?t.toString("base64"):void 0}).catch(e=>{o.debugError(e)})}async abort(e="failed"){if(!this._url.startsWith("data:")){const t=i[e];a.assert(t,"Unknown error code: "+e),a.assert(this._allowInterception,"Request Interception is not enabled!"),a.assert(!this._interceptionHandled,"Request is already handled!"),this._interceptionHandled=!0,await this._client.send("Fetch.failRequest",{requestId:this._interceptionId,errorReason:t}).catch(e=>{o.debugError(e)})}}};const i={aborted:"Aborted",accessdenied:"AccessDenied",addressunreachable:"AddressUnreachable",blockedbyclient:"BlockedByClient",blockedbyresponse:"BlockedByResponse",connectionaborted:"ConnectionAborted",connectionclosed:"ConnectionClosed",connectionfailed:"ConnectionFailed",connectionrefused:"ConnectionRefused",connectionreset:"ConnectionReset",internetdisconnected:"InternetDisconnected",namenotresolved:"NameNotResolved",timedout:"TimedOut",failed:"Failed"},s={100:"Continue",101:"Switching Protocols",102:"Processing",103:"Early Hints",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",306:"Switch Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Too Early",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",510:"Not Extended",511:"Network Authentication Required"}},59206:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HTTPResponse=void 0;const n=r(55468);t.HTTPResponse=class e{constructor(e,t,r){this._contentPromise=null,this._headers={},this._client=e,this._request=t,this._bodyLoadedPromise=new Promise(e=>{this._bodyLoadedPromiseFulfill=e}),this._remoteAddress={ip:r.remoteIPAddress,port:r.remotePort},this._status=r.status,this._statusText=r.statusText,this._url=t.url(),this._fromDiskCache=!!r.fromDiskCache,this._fromServiceWorker=!!r.fromServiceWorker;for(const n of Object.keys(r.headers))this._headers[n.toLowerCase()]=r.headers[n];this._securityDetails=r.securityDetails?new n.SecurityDetails(r.securityDetails):null}_resolveBody(e){return this._bodyLoadedPromiseFulfill(e)}remoteAddress(){return this._remoteAddress}url(){return this._url}ok(){return 0===this._status||200<=this._status&&299>=this._status}status(){return this._status}statusText(){return this._statusText}headers(){return this._headers}securityDetails(){return this._securityDetails}buffer(){return this._contentPromise||(this._contentPromise=this._bodyLoadedPromise.then(async e=>{if(e)throw e;const t=await this._client.send("Network.getResponseBody",{requestId:this._request._requestId});return Buffer.from(t.body,t.base64Encoded?"base64":"utf8")})),this._contentPromise}async text(){const e=await this.buffer();return e.toString("utf8")}async json(){const e=await this.text();return JSON.parse(e)}request(){return this._request}fromCache(){return this._fromDiskCache||this._request._fromMemoryCache}fromServiceWorker(){return this._fromServiceWorker}frame(){return this._request.frame()}}},80771:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Touchscreen=t.Mouse=t.Keyboard=void 0;const n=r(85668),a=r(85654);t.Keyboard=class e{constructor(e){this._modifiers=0,this._pressedKeys=new Set,this._client=e}async down(e,t={text:void 0}){const r=this._keyDescriptionForString(e),n=this._pressedKeys.has(r.code);this._pressedKeys.add(r.code),this._modifiers|=this._modifierBit(r.key);const a=void 0===t.text?r.text:t.text;await this._client.send("Input.dispatchKeyEvent",{type:a?"keyDown":"rawKeyDown",modifiers:this._modifiers,windowsVirtualKeyCode:r.keyCode,code:r.code,key:r.key,text:a,unmodifiedText:a,autoRepeat:n,location:r.location,isKeypad:3===r.location})}_modifierBit(e){return"Alt"===e?1:"Control"===e?2:"Meta"===e?4:"Shift"===e?8:0}_keyDescriptionForString(e){const t=8&this._modifiers,r={key:"",keyCode:0,code:"",text:"",location:0},o=a.keyDefinitions[e];return n.assert(o,`Unknown key: "${e}"`),o.key&&(r.key=o.key),t&&o.shiftKey&&(r.key=o.shiftKey),o.keyCode&&(r.keyCode=o.keyCode),t&&o.shiftKeyCode&&(r.keyCode=o.shiftKeyCode),o.code&&(r.code=o.code),o.location&&(r.location=o.location),1===r.key.length&&(r.text=r.key),o.text&&(r.text=o.text),t&&o.shiftText&&(r.text=o.shiftText),-9&this._modifiers&&(r.text=""),r}async up(e){const t=this._keyDescriptionForString(e);this._modifiers&=~this._modifierBit(t.key),this._pressedKeys.delete(t.code),await this._client.send("Input.dispatchKeyEvent",{type:"keyUp",modifiers:this._modifiers,key:t.key,windowsVirtualKeyCode:t.keyCode,code:t.code,location:t.location})}async sendCharacter(e){await this._client.send("Input.insertText",{text:e})}charIsKey(e){return!!a.keyDefinitions[e]}async type(e,t={}){const r=t.delay||null;for(const n of e)this.charIsKey(n)?await this.press(n,{delay:r}):(r&&(await new Promise(e=>setTimeout(e,r))),await this.sendCharacter(n))}async press(e,t={}){const{delay:r=null}=t;await this.down(e,t),r&&(await new Promise(e=>setTimeout(e,t.delay))),await this.up(e)}};t.Mouse=class e{constructor(e,t){this._x=0,this._y=0,this._button="none",this._client=e,this._keyboard=t}async move(e,t,r={}){const{steps:n=1}=r,a=this._x,o=this._y;this._x=e,this._y=t;for(let s=1;s<=n;s++)await this._client.send("Input.dispatchMouseEvent",{type:"mouseMoved",button:this._button,x:a+(this._x-a)*(s/n),y:o+(this._y-o)*(s/n),modifiers:this._keyboard._modifiers})}async click(e,t,r={}){const{delay:n=null}=r;null===n?await Promise.all([this.move(e,t),this.down(r),this.up(r)]):(await Promise.all([this.move(e,t),this.down(r)]),await new Promise(e=>setTimeout(e,n)),await this.up(r))}async down(e={}){const{button:t="left",clickCount:r=1}=e;this._button=t,await this._client.send("Input.dispatchMouseEvent",{type:"mousePressed",button:t,x:this._x,y:this._y,modifiers:this._keyboard._modifiers,clickCount:r})}async up(e={}){const{button:t="left",clickCount:r=1}=e;this._button="none",await this._client.send("Input.dispatchMouseEvent",{type:"mouseReleased",button:t,x:this._x,y:this._y,modifiers:this._keyboard._modifiers,clickCount:r})}async wheel(e={}){const{deltaX:t=0,deltaY:r=0}=e;await this._client.send("Input.dispatchMouseEvent",{type:"mouseWheel",x:this._x,y:this._y,deltaX:t,deltaY:r,modifiers:this._keyboard._modifiers,pointerType:"mouse"})}};t.Touchscreen=class e{constructor(e,t){this._client=e,this._keyboard=t}async tap(e,t){const r=[{x:_Mathround(e),y:_Mathround(t)}];await this._client.send("Input.dispatchTouchEvent",{type:"touchStart",touchPoints:r,modifiers:this._keyboard._modifiers}),await this._client.send("Input.dispatchTouchEvent",{type:"touchEnd",touchPoints:[],modifiers:this._keyboard._modifiers})}}},79272:function(e,t,r){"use strict";function n(e,t){const r=e.frame();if("node"===t.subtype&&r){const n=r._frameManager;return new m(e,e._client,t,n.page(),n)}return new u(e,e._client,t)}function a(e){let t=0;for(let r=0;r{const r={__proto__:null};return r[t]=e[t],r},e),r=await t.getProperties(),n=r.get(e)||null;return await t.dispose(),n}async getProperties(){const e=await this._client.send("Runtime.getProperties",{objectId:this._remoteObject.objectId,ownProperties:!0}),t=new Map;for(const r of e.result)r.enumerable&&t.set(r.name,n(this._context,r.value));return t}async jsonValue(){if(this._remoteObject.objectId){const e=await this._client.send("Runtime.callFunctionOn",{functionDeclaration:"function() { return this; }",objectId:this._remoteObject.objectId,returnByValue:!0,awaitPromise:!0});return d.helper.valueFromRemoteObject(e.result)}return d.helper.valueFromRemoteObject(this._remoteObject)}asElement(){return null}async dispose(){this._disposed||(this._disposed=!0,await d.helper.releaseObject(this._client,this._remoteObject))}toString(){if(this._remoteObject.objectId){const e=this._remoteObject.subtype||this._remoteObject.type;return"JSHandle@"+e}return"JSHandle:"+d.helper.valueFromRemoteObject(this._remoteObject)}}t.JSHandle=u;class m extends u{constructor(e,t,r,n,a){super(e,t,r),this._client=t,this._remoteObject=r,this._page=n,this._frameManager=a}asElement(){return this}async contentFrame(){const e=await this._client.send("DOM.describeNode",{objectId:this._remoteObject.objectId});return"string"==typeof e.node.frameId?this._frameManager.frame(e.node.frameId):null}async _scrollIntoViewIfNeeded(){const e=await this.evaluate(async(e,t)=>{if(!e.isConnected)return"Node is detached from document";if(e.nodeType!==Node.ELEMENT_NODE)return"Node is not of type HTMLElement";if(!t)return e.scrollIntoView({block:"center",inline:"center",behavior:"instant"}),!1;const r=await new Promise(t=>{const r=new IntersectionObserver(e=>{t(e[0].intersectionRatio),r.disconnect()});r.observe(e)});return 1!==r&&e.scrollIntoView({block:"center",inline:"center",behavior:"instant"}),!1},this._page.isJavaScriptEnabled());if(e)throw new Error(e)}async _clickablePoint(){const[e,t]=await Promise.all([this._client.send("DOM.getContentQuads",{objectId:this._remoteObject.objectId}).catch(d.debugError),this._client.send("Page.getLayoutMetrics")]);if(!e||!e.quads.length)throw new Error("Node is either not visible or not an HTMLElement");const{clientWidth:r,clientHeight:n}=t.layoutViewport,o=e.quads.map(e=>this._fromProtocolQuad(e)).map(e=>this._intersectQuadWithViewport(e,r,n)).filter(e=>1d.debugError(e))}_fromProtocolQuad(e){return[{x:e[0],y:e[1]},{x:e[2],y:e[3]},{x:e[4],y:e[5]},{x:e[6],y:e[7]}]}_intersectQuadWithViewport(e,t,r){return e.map(e=>({x:_Mathmin(_Mathmax(e.x,0),t),y:_Mathmin(_Mathmax(e.y,0),r)}))}async hover(){await this._scrollIntoViewIfNeeded();const{x:e,y:t}=await this._clickablePoint();await this._page.mouse.move(e,t)}async click(e={}){await this._scrollIntoViewIfNeeded();const{x:t,y:r}=await this._clickablePoint();await this._page.mouse.click(t,r,e)}async select(...e){for(const t of e)l.assert(d.helper.isString(t),"Values must be strings. Found value \""+t+"\" of type \""+typeof t+"\"");return this.evaluate((e,t)=>{if("select"!==e.nodeName.toLowerCase())throw new Error("Element is not a "),!c.isNode)throw new Error(`JSHandle#uploadFile can only be used in Node environments.`);const n=await Promise.resolve().then(()=>s(r(85622))),a=await d.helper.importFSModule(),o=await Promise.all(e.map(async e=>{const t=n.resolve(e);try{await a.promises.access(t,a.constants.R_OK)}catch(t){if("ENOENT"===t.code)throw new Error(`${e} does not exist or is not readable`)}return t})),{objectId:i}=this._remoteObject,{node:p}=await this._client.send("DOM.describeNode",{objectId:i}),{backendNodeId:u}=p;0===o.length?await this.evaluate(e=>{e.files=new DataTransfer().files,e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0}))}):await this._client.send("DOM.setFileInputFiles",{objectId:i,files:o,backendNodeId:u})}async tap(){await this._scrollIntoViewIfNeeded();const{x:e,y:t}=await this._clickablePoint();await this._page.touchscreen.tap(e,t)}async focus(){await this.evaluate(e=>e.focus())}async type(e,t){await this.focus(),await this._page.keyboard.type(e,t)}async press(e,t){await this.focus(),await this._page.keyboard.press(e,t)}async boundingBox(){const e=await this._getBoxModel();if(!e)return null;const t=e.model.border,r=_Mathmin(t[0],t[2],t[4],t[6]),n=_Mathmin(t[1],t[3],t[5],t[7]),a=_Mathmax(t[0],t[2],t[4],t[6])-r,o=_Mathmax(t[1],t[3],t[5],t[7])-n;return{x:r,y:n,width:a,height:o}}async boxModel(){const e=await this._getBoxModel();if(!e)return null;const{content:t,padding:r,border:n,margin:a,width:o,height:i}=e.model;return{content:this._fromProtocolQuad(t),padding:this._fromProtocolQuad(r),border:this._fromProtocolQuad(n),margin:this._fromProtocolQuad(a),width:o,height:i}}async screenshot(e={}){let t=!1,r=await this.boundingBox();l.assert(r,"Node is either not visible or not an HTMLElement");const n=this._page.viewport();if(n&&(r.width>n.width||r.height>n.height)){const e={width:_Mathmax(n.width,_Mathceil(r.width)),height:_Mathmax(n.height,_Mathceil(r.height))};await this._page.setViewport(Object.assign({},n,e)),t=!0}await this._scrollIntoViewIfNeeded(),r=await this.boundingBox(),l.assert(r,"Node is either not visible or not an HTMLElement"),l.assert(0!==r.width,"Node has 0 width."),l.assert(0!==r.height,"Node has 0 height.");const{layoutViewport:{pageX:a,pageY:o}}=await this._client.send("Page.getLayoutMetrics"),i=Object.assign({},r);i.x+=a,i.y+=o;const s=await this._page.screenshot(Object.assign({},{clip:i},e));return t&&(await this._page.setViewport(n)),s}async $(e){const{updatedSelector:t,queryHandler:r}=p.getQueryHandlerAndSelector(e);return r.queryOne(this,t)}async $$(e){const{updatedSelector:t,queryHandler:r}=p.getQueryHandlerAndSelector(e);return r.queryAll(this,t)}async $eval(e,t,...r){const n=await this.$(e);if(!n)throw new Error(`Error: failed to find element matching selector "${e}"`);const a=await n.evaluate(t,...r);return await n.dispose(),a}async $$eval(e,t,...r){const{updatedSelector:n,queryHandler:a}=p.getQueryHandlerAndSelector(e),o=await a.queryAllArray(this,n),i=await o.evaluate(t,...r);return await o.dispose(),i}async $x(e){const t=await this.evaluateHandle((e,t)=>{const r=e.ownerDocument||e,n=r.evaluate(t,e,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE),a=[];for(let r;r=n.iterateNext();)a.push(r);return a},e),r=await t.getProperties();await t.dispose();const n=[];for(const t of r.values()){const e=t.asElement();e&&n.push(e)}return n}async isIntersectingViewport(){return await this.evaluate(async e=>{const t=await new Promise(t=>{const r=new IntersectionObserver(e=>{t(e[0].intersectionRatio),r.disconnect()});r.observe(e)});return 0{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LifecycleWatcher=void 0;const n=r(85668),a=r(47674),o=r(29554),i=r(71886),s=r(97966),l=r(58602),d=new Map([["load","load"],["domcontentloaded","DOMContentLoaded"],["networkidle0","networkIdle"],["networkidle2","networkAlmostIdle"]]);t.LifecycleWatcher=class e{constructor(e,t,r,o){Array.isArray(r)?r=r.slice():"string"==typeof r&&(r=[r]),this._expectedLifecycle=r.map(e=>{const t=d.get(e);return n.assert(t,"Unknown value for options.waitUntil: "+e),t}),this._frameManager=e,this._frame=t,this._initialLoaderId=t._loaderId,this._timeout=o,this._navigationRequest=null,this._eventListeners=[a.helper.addEventListener(e._client,l.CDPSessionEmittedEvents.Disconnected,()=>this._terminate(new Error("Navigation failed because browser has disconnected!"))),a.helper.addEventListener(this._frameManager,i.FrameManagerEmittedEvents.LifecycleEvent,this._checkLifecycleComplete.bind(this)),a.helper.addEventListener(this._frameManager,i.FrameManagerEmittedEvents.FrameNavigatedWithinDocument,this._navigatedWithinDocument.bind(this)),a.helper.addEventListener(this._frameManager,i.FrameManagerEmittedEvents.FrameDetached,this._onFrameDetached.bind(this)),a.helper.addEventListener(this._frameManager.networkManager(),s.NetworkManagerEmittedEvents.Request,this._onRequest.bind(this))],this._sameDocumentNavigationPromise=new Promise(e=>{this._sameDocumentNavigationCompleteCallback=e}),this._lifecyclePromise=new Promise(e=>{this._lifecycleCallback=e}),this._newDocumentNavigationPromise=new Promise(e=>{this._newDocumentNavigationCompleteCallback=e}),this._timeoutPromise=this._createTimeoutPromise(),this._terminationPromise=new Promise(e=>{this._terminationCallback=e}),this._checkLifecycleComplete()}_onRequest(e){e.frame()===this._frame&&e.isNavigationRequest()&&(this._navigationRequest=e)}_onFrameDetached(e){return this._frame===e?void this._terminationCallback.call(null,new Error("Navigating frame was detached")):void this._checkLifecycleComplete()}navigationResponse(){return this._navigationRequest?this._navigationRequest.response():null}_terminate(e){this._terminationCallback.call(null,e)}sameDocumentNavigationPromise(){return this._sameDocumentNavigationPromise}newDocumentNavigationPromise(){return this._newDocumentNavigationPromise}lifecyclePromise(){return this._lifecyclePromise}timeoutOrTerminationPromise(){return Promise.race([this._timeoutPromise,this._terminationPromise])}_createTimeoutPromise(){if(!this._timeout)return new Promise(()=>{});const e="Navigation timeout of "+this._timeout+" ms exceeded";return new Promise(e=>this._maximumTimer=setTimeout(e,this._timeout)).then(()=>new o.TimeoutError(e))}_navigatedWithinDocument(e){e!==this._frame||(this._hasSameDocumentNavigation=!0,this._checkLifecycleComplete())}_checkLifecycleComplete(){function e(t,r){for(const e of r)if(!t._lifecycleEvents.has(e))return!1;for(const n of t.childFrames())if(!e(n,r))return!1;return!0}e(this._frame,this._expectedLifecycle)&&(this._lifecycleCallback(),(this._frame._loaderId!==this._initialLoaderId||this._hasSameDocumentNavigation)&&(this._hasSameDocumentNavigation&&this._sameDocumentNavigationCompleteCallback(),this._frame._loaderId!==this._initialLoaderId&&this._newDocumentNavigationCompleteCallback()))}dispose(){a.helper.removeEventListeners(this._eventListeners),clearTimeout(this._maximumTimer)}}},97966:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NetworkManager=t.NetworkManagerEmittedEvents=void 0;const n=r(2680),a=r(85668),o=r(47674),i=r(68610),s=r(59206);t.NetworkManagerEmittedEvents={Request:Symbol("NetworkManager.Request"),Response:Symbol("NetworkManager.Response"),RequestFailed:Symbol("NetworkManager.RequestFailed"),RequestFinished:Symbol("NetworkManager.RequestFinished")};class l extends n.EventEmitter{constructor(e,t,r){super(),this._requestIdToRequest=new Map,this._requestIdToRequestWillBeSentEvent=new Map,this._extraHTTPHeaders={},this._offline=!1,this._credentials=null,this._attemptedAuthentications=new Set,this._userRequestInterceptionEnabled=!1,this._protocolRequestInterceptionEnabled=!1,this._userCacheDisabled=!1,this._requestIdToInterceptionId=new Map,this._client=e,this._ignoreHTTPSErrors=t,this._frameManager=r,this._client.on("Fetch.requestPaused",this._onRequestPaused.bind(this)),this._client.on("Fetch.authRequired",this._onAuthRequired.bind(this)),this._client.on("Network.requestWillBeSent",this._onRequestWillBeSent.bind(this)),this._client.on("Network.requestServedFromCache",this._onRequestServedFromCache.bind(this)),this._client.on("Network.responseReceived",this._onResponseReceived.bind(this)),this._client.on("Network.loadingFinished",this._onLoadingFinished.bind(this)),this._client.on("Network.loadingFailed",this._onLoadingFailed.bind(this))}async initialize(){await this._client.send("Network.enable"),this._ignoreHTTPSErrors&&(await this._client.send("Security.setIgnoreCertificateErrors",{ignore:!0}))}async authenticate(e){this._credentials=e,await this._updateProtocolRequestInterception()}async setExtraHTTPHeaders(e){this._extraHTTPHeaders={};for(const t of Object.keys(e)){const r=e[t];a.assert(o.helper.isString(r),`Expected value of header "${t}" to be String, but "${typeof r}" is found.`),this._extraHTTPHeaders[t.toLowerCase()]=r}await this._client.send("Network.setExtraHTTPHeaders",{headers:this._extraHTTPHeaders})}extraHTTPHeaders(){return Object.assign({},this._extraHTTPHeaders)}async setOfflineMode(e){this._offline===e||(this._offline=e,await this._client.send("Network.emulateNetworkConditions",{offline:this._offline,latency:0,downloadThroughput:-1,uploadThroughput:-1}))}async setUserAgent(e){await this._client.send("Network.setUserAgentOverride",{userAgent:e})}async setCacheEnabled(e){this._userCacheDisabled=!e,await this._updateProtocolCacheDisabled()}async setRequestInterception(e){this._userRequestInterceptionEnabled=e,await this._updateProtocolRequestInterception()}async _updateProtocolRequestInterception(){const e=this._userRequestInterceptionEnabled||!!this._credentials;e===this._protocolRequestInterceptionEnabled||(this._protocolRequestInterceptionEnabled=e,e?await Promise.all([this._updateProtocolCacheDisabled(),this._client.send("Fetch.enable",{handleAuthRequests:!0,patterns:[{urlPattern:"*"}]})]):await Promise.all([this._updateProtocolCacheDisabled(),this._client.send("Fetch.disable")]))}async _updateProtocolCacheDisabled(){await this._client.send("Network.setCacheDisabled",{cacheDisabled:this._userCacheDisabled||this._protocolRequestInterceptionEnabled})}_onRequestWillBeSent(e){if(this._protocolRequestInterceptionEnabled&&!e.request.url.startsWith("data:")){const t=e.requestId,r=this._requestIdToInterceptionId.get(t);return void(r?(this._onRequest(e,r),this._requestIdToInterceptionId.delete(t)):this._requestIdToRequestWillBeSentEvent.set(e.requestId,e))}this._onRequest(e,null)}_onAuthRequired(e){let t="Default";this._attemptedAuthentications.has(e.requestId)?t="CancelAuth":this._credentials&&(t="ProvideCredentials",this._attemptedAuthentications.add(e.requestId));const{username:r,password:n}=this._credentials||{username:void 0,password:void 0};this._client.send("Fetch.continueWithAuth",{requestId:e.requestId,authChallengeResponse:{response:t,username:r,password:n}}).catch(o.debugError)}_onRequestPaused(e){!this._userRequestInterceptionEnabled&&this._protocolRequestInterceptionEnabled&&this._client.send("Fetch.continueRequest",{requestId:e.requestId}).catch(o.debugError);const t=e.networkId,r=e.requestId;if(t&&this._requestIdToRequestWillBeSentEvent.has(t)){const e=this._requestIdToRequestWillBeSentEvent.get(t);this._onRequest(e,r),this._requestIdToRequestWillBeSentEvent.delete(t)}else this._requestIdToInterceptionId.set(t,r)}_onRequest(e,r){let n=[];if(e.redirectResponse){const t=this._requestIdToRequest.get(e.requestId);t&&(this._handleRequestRedirect(t,e.redirectResponse),n=t._redirectChain)}const a=e.frameId?this._frameManager.frame(e.frameId):null,o=new i.HTTPRequest(this._client,a,r,this._userRequestInterceptionEnabled,e,n);this._requestIdToRequest.set(e.requestId,o),this.emit(t.NetworkManagerEmittedEvents.Request,o)}_onRequestServedFromCache(e){const t=this._requestIdToRequest.get(e.requestId);t&&(t._fromMemoryCache=!0)}_handleRequestRedirect(e,r){const n=new s.HTTPResponse(this._client,e,r);e._response=n,e._redirectChain.push(e),n._resolveBody(new Error("Response body is unavailable for redirect responses")),this._requestIdToRequest.delete(e._requestId),this._attemptedAuthentications.delete(e._interceptionId),this.emit(t.NetworkManagerEmittedEvents.Response,n),this.emit(t.NetworkManagerEmittedEvents.RequestFinished,e)}_onResponseReceived(e){const r=this._requestIdToRequest.get(e.requestId);if(r){const n=new s.HTTPResponse(this._client,r,e.response);r._response=n,this.emit(t.NetworkManagerEmittedEvents.Response,n)}}_onLoadingFinished(e){const r=this._requestIdToRequest.get(e.requestId);r&&(r.response()&&r.response()._resolveBody(null),this._requestIdToRequest.delete(r._requestId),this._attemptedAuthentications.delete(r._interceptionId),this.emit(t.NetworkManagerEmittedEvents.RequestFinished,r))}_onLoadingFailed(e){const r=this._requestIdToRequest.get(e.requestId);if(r){r._failureText=e.errorText;const n=r.response();n&&n._resolveBody(null),this._requestIdToRequest.delete(r._requestId),this._attemptedAuthentications.delete(r._interceptionId),this.emit(t.NetworkManagerEmittedEvents.RequestFailed,r)}}}t.NetworkManager=l},95320:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.paperFormats=void 0,t.paperFormats={letter:{width:8.5,height:11},legal:{width:8.5,height:14},tabloid:{width:11,height:17},ledger:{width:17,height:11},a0:{width:33.1,height:46.8},a1:{width:23.4,height:33.1},a2:{width:16.54,height:23.4},a3:{width:11.7,height:16.54},a4:{width:8.27,height:11.7},a5:{width:5.83,height:8.27},a6:{width:4.13,height:5.83}}},4258:(e,t,r)=>{"use strict";function n(e){if("undefined"==typeof e)return;let t;if(u.helper.isNumber(e))t=e;else if(u.helper.isString(e)){const r=e;let n=r.substring(r.length-2).toLowerCase(),a="";T.hasOwnProperty(n)?a=r.substring(0,r.length-2):(n="px",a=r);const o=+a;c.assert(!isNaN(o),"Failed to parse parameter value: "+r),t=o*T[n]}else throw new Error("page.pdf() Cannot handle parameter type: "+typeof e);return t/96}Object.defineProperty(t,"__esModule",{value:!0}),t.Page=void 0;const a=r(2680),o=r(58602),i=r(2915),s=r(3449),l=r(71886),d=r(80771),p=r(64189),c=r(85668),u=r(47674),m=r(35204),g=r(41418),h=r(79272),f=r(97966),y=r(77601),b=r(44261),S=r(23254),x=r(16051),v=r(95320),k=r(23222);class C{constructor(){this._chain=Promise.resolve(void 0)}postTask(e){const t=this._chain.then(e);return this._chain=t.catch(()=>{}),t}}class _ extends a.EventEmitter{constructor(e,t,r){super(),this._closed=!1,this._timeoutSettings=new b.TimeoutSettings,this._pageBindings=new Map,this._javascriptEnabled=!0,this._workers=new Map,this._fileChooserInterceptors=new Set,this._client=e,this._target=t,this._keyboard=new d.Keyboard(e),this._mouse=new d.Mouse(e,this._keyboard),this._touchscreen=new d.Touchscreen(e,this._keyboard),this._accessibility=new y.Accessibility(e),this._frameManager=new l.FrameManager(e,this,r,this._timeoutSettings),this._emulationManager=new s.EmulationManager(e),this._tracing=new p.Tracing(e),this._coverage=new m.Coverage(e),this._screenshotTaskQueue=new C,this._viewport=null,e.on("Target.attachedToTarget",t=>{if("worker"!==t.targetInfo.type)return void e.send("Target.detachFromTarget",{sessionId:t.sessionId}).catch(u.debugError);const r=o.Connection.fromSession(e).session(t.sessionId),n=new g.WebWorker(r,t.targetInfo.url,this._addConsoleMessage.bind(this),this._handleException.bind(this));this._workers.set(t.sessionId,n),this.emit("workercreated",n)}),e.on("Target.detachedFromTarget",e=>{const t=this._workers.get(e.sessionId);t&&(this.emit("workerdestroyed",t),this._workers.delete(e.sessionId))}),this._frameManager.on(l.FrameManagerEmittedEvents.FrameAttached,e=>this.emit("frameattached",e)),this._frameManager.on(l.FrameManagerEmittedEvents.FrameDetached,e=>this.emit("framedetached",e)),this._frameManager.on(l.FrameManagerEmittedEvents.FrameNavigated,e=>this.emit("framenavigated",e));const n=this._frameManager.networkManager();n.on(f.NetworkManagerEmittedEvents.Request,e=>this.emit("request",e)),n.on(f.NetworkManagerEmittedEvents.Response,e=>this.emit("response",e)),n.on(f.NetworkManagerEmittedEvents.RequestFailed,e=>this.emit("requestfailed",e)),n.on(f.NetworkManagerEmittedEvents.RequestFinished,e=>this.emit("requestfinished",e)),this._fileChooserInterceptors=new Set,e.on("Page.domContentEventFired",()=>this.emit("domcontentloaded")),e.on("Page.loadEventFired",()=>this.emit("load")),e.on("Runtime.consoleAPICalled",e=>this._onConsoleAPI(e)),e.on("Runtime.bindingCalled",e=>this._onBindingCalled(e)),e.on("Page.javascriptDialogOpening",e=>this._onDialog(e)),e.on("Runtime.exceptionThrown",e=>this._handleException(e.exceptionDetails)),e.on("Inspector.targetCrashed",()=>this._onTargetCrashed()),e.on("Performance.metrics",e=>this._emitMetrics(e)),e.on("Log.entryAdded",e=>this._onLogEntryAdded(e)),e.on("Page.fileChooserOpened",e=>this._onFileChooser(e)),this._target._isClosedPromise.then(()=>{this.emit("close"),this._closed=!0})}static async create(e,t,r,n){const a=new _(e,t,r);return await a._initialize(),n&&(await a.setViewport(n)),a}async _initialize(){await Promise.all([this._frameManager.initialize(),this._client.send("Target.setAutoAttach",{autoAttach:!0,waitForDebuggerOnStart:!1,flatten:!0}),this._client.send("Performance.enable"),this._client.send("Log.enable")])}async _onFileChooser(e){if(!this._fileChooserInterceptors.size)return;const t=this._frameManager.frame(e.frameId),r=await t.executionContext(),n=await r._adoptBackendNodeId(e.backendNodeId),a=Array.from(this._fileChooserInterceptors);this._fileChooserInterceptors.clear();const o=new S.FileChooser(n,e);for(const t of a)t.call(null,o)}isJavaScriptEnabled(){return this._javascriptEnabled}async waitForFileChooser(e={}){this._fileChooserInterceptors.size||(await this._client.send("Page.setInterceptFileChooserDialog",{enabled:!0}));const{timeout:t=this._timeoutSettings.timeout()}=e;let r;const n=new Promise(e=>r=e);return this._fileChooserInterceptors.add(r),u.helper.waitWithTimeout(n,"waiting for file chooser",t).catch(e=>{throw this._fileChooserInterceptors.delete(r),e})}async setGeolocation(e){const{longitude:t,latitude:r,accuracy:n=0}=e;if(-180>t||180r||90n)throw new Error(`Invalid accuracy "${n}": precondition 0 <= ACCURACY failed.`);await this._client.send("Emulation.setGeolocationOverride",{longitude:t,latitude:r,accuracy:n})}target(){return this._target}browser(){return this._target.browser()}browserContext(){return this._target.browserContext()}_onTargetCrashed(){this.emit("error",new Error("Page crashed!"))}_onLogEntryAdded(e){const{level:t,text:r,args:n,source:a,url:o,lineNumber:i}=e.entry;n&&n.map(e=>u.helper.releaseObject(this._client,e)),"worker"!==a&&this.emit("console",new x.ConsoleMessage(t,r,[],[{url:o,lineNumber:i}]))}mainFrame(){return this._frameManager.mainFrame()}get keyboard(){return this._keyboard}get touchscreen(){return this._touchscreen}get coverage(){return this._coverage}get tracing(){return this._tracing}get accessibility(){return this._accessibility}frames(){return this._frameManager.frames()}workers(){return Array.from(this._workers.values())}async setRequestInterception(e){return this._frameManager.networkManager().setRequestInterception(e)}setOfflineMode(e){return this._frameManager.networkManager().setOfflineMode(e)}setDefaultNavigationTimeout(e){this._timeoutSettings.setDefaultNavigationTimeout(e)}setDefaultTimeout(e){this._timeoutSettings.setDefaultTimeout(e)}async $(e){return this.mainFrame().$(e)}async evaluateHandle(e,...t){const r=await this.mainFrame().executionContext();return r.evaluateHandle(e,...t)}async queryObjects(e){const t=await this.mainFrame().executionContext();return t.queryObjects(e)}async $eval(e,t,...r){return this.mainFrame().$eval(e,t,...r)}async $$eval(e,t,...r){return this.mainFrame().$$eval(e,t,...r)}async $$(e){return this.mainFrame().$$(e)}async $x(e){return this.mainFrame().$x(e)}async cookies(...e){const t=(await this._client.send("Network.getCookies",{urls:e.length?e:[this.url()]})).cookies,r=["priority"];return t.map(e=>{for(const t of r)delete e[t];return e})}async deleteCookie(...e){const t=this.url();for(const r of e){const e=Object.assign({},r);!r.url&&t.startsWith("http")&&(e.url=t),await this._client.send("Network.deleteCookies",e)}}async setCookie(...e){const t=this.url(),r=t.startsWith("http"),n=e.map(e=>{const n=Object.assign({},e);return!n.url&&r&&(n.url=t),c.assert("about:blank"!==n.url,`Blank page can not have cookie "${n.name}"`),c.assert(!_Stringprototype.startsWith.call(n.url||"","data:"),`Data URL page can not have cookie "${n.name}"`),n});await this.deleteCookie(...n),n.length&&(await this._client.send("Network.setCookies",{cookies:n}))}async addScriptTag(e){return this.mainFrame().addScriptTag(e)}async addStyleTag(e){return this.mainFrame().addStyleTag(e)}async exposeFunction(e,t){if(this._pageBindings.has(e))throw new Error(`Failed to add page binding with name ${e}: window['${e}'] already exists!`);this._pageBindings.set(e,t);const r=u.helper.pageBindingInitString("exposedFun",e);await this._client.send("Runtime.addBinding",{name:e}),await this._client.send("Page.addScriptToEvaluateOnNewDocument",{source:r}),await Promise.all(this.frames().map(e=>e.evaluate(r).catch(u.debugError)))}async authenticate(e){return this._frameManager.networkManager().authenticate(e)}async setExtraHTTPHeaders(e){return this._frameManager.networkManager().setExtraHTTPHeaders(e)}async setUserAgent(e){return this._frameManager.networkManager().setUserAgent(e)}async metrics(){const e=await this._client.send("Performance.getMetrics");return this._buildMetricsObject(e.metrics)}_emitMetrics(e){this.emit("metrics",{title:e.title,metrics:this._buildMetricsObject(e.metrics)})}_buildMetricsObject(e){const t={};for(const r of e||[])w.has(r.name)&&(t[r.name]=r.value);return t}_handleException(e){const t=u.helper.getExceptionMessage(e),r=new Error(t);r.stack="",this.emit("pageerror",r)}async _onConsoleAPI(e){if(0===e.executionContextId)return;const t=this._frameManager.executionContextById(e.executionContextId),r=e.args.map(e=>h.createJSHandle(t,e));this._addConsoleMessage(e.type,r,e.stackTrace)}async _onBindingCalled(e){let t;try{t=JSON.parse(e.payload)}catch{return}const{type:r,name:n,seq:a,args:o}=t;if("exposedFun"!==r||!this._pageBindings.has(n))return;let i=null;try{const e=await this._pageBindings.get(n)(...o);i=u.helper.pageBindingDeliverResultString(n,a,e)}catch(e){i=e instanceof Error?u.helper.pageBindingDeliverErrorString(n,a,e.message,e.stack):u.helper.pageBindingDeliverErrorValueString(n,a,e)}this._client.send("Runtime.evaluate",{expression:i,contextId:e.executionContextId}).catch(u.debugError)}_addConsoleMessage(e,t,r){if(!this.listenerCount("console"))return void t.forEach(e=>e.dispose());const n=[];for(const a of t){const e=a._remoteObject;e.objectId?n.push(a.toString()):n.push(u.helper.valueFromRemoteObject(e))}const a=[];if(r)for(const e of r.callFrames)a.push({url:e.url,lineNumber:e.lineNumber,columnNumber:e.columnNumber});const o=new x.ConsoleMessage(e,n.join(" "),t,a);this.emit("console",o)}_onDialog(e){let t=null;const r=new Set(["alert","confirm","prompt","beforeunload"]);r.has(e.type)&&(t=e.type),c.assert(t,"Unknown javascript dialog type: "+e.type);const n=new i.Dialog(this._client,t,e.message,e.defaultPrompt);this.emit("dialog",n)}url(){return this.mainFrame().url()}async content(){return await this._frameManager.mainFrame().content()}async setContent(e,t={}){await this._frameManager.mainFrame().setContent(e,t)}async goto(e,t={}){return await this._frameManager.mainFrame().goto(e,t)}async reload(e){const t=await Promise.all([this.waitForNavigation(e),this._client.send("Page.reload")]);return t[0]}async waitForNavigation(e={}){return await this._frameManager.mainFrame().waitForNavigation(e)}_sessionClosePromise(){return this._disconnectPromise||(this._disconnectPromise=new Promise(e=>this._client.once(o.CDPSessionEmittedEvents.Disconnected,()=>e(new Error("Target closed"))))),this._disconnectPromise}async waitForRequest(e,t={}){const{timeout:r=this._timeoutSettings.timeout()}=t;return u.helper.waitForEvent(this._frameManager.networkManager(),f.NetworkManagerEmittedEvents.Request,t=>u.helper.isString(e)?e===t.url():"function"==typeof e&&!!e(t),r,this._sessionClosePromise())}async waitForResponse(e,t={}){const{timeout:r=this._timeoutSettings.timeout()}=t;return u.helper.waitForEvent(this._frameManager.networkManager(),f.NetworkManagerEmittedEvents.Response,t=>u.helper.isString(e)?e===t.url():"function"==typeof e&&!!e(t),r,this._sessionClosePromise())}async goBack(e={}){return this._go(-1,e)}async goForward(e={}){return this._go(1,e)}async _go(e,t){const r=await this._client.send("Page.getNavigationHistory"),n=r.entries[r.currentIndex+e];if(!n)return null;const a=await Promise.all([this.waitForNavigation(t),this._client.send("Page.navigateToHistoryEntry",{entryId:n.id})]);return a[0]}async bringToFront(){await this._client.send("Page.bringToFront")}async emulate(e){await Promise.all([this.setViewport(e.viewport),this.setUserAgent(e.userAgent)])}async setJavaScriptEnabled(e){this._javascriptEnabled===e||(this._javascriptEnabled=e,await this._client.send("Emulation.setScriptExecutionDisabled",{value:!e}))}async setBypassCSP(e){await this._client.send("Page.setBypassCSP",{enabled:e})}async emulateMediaType(e){c.assert("screen"===e||"print"===e||null===e,"Unsupported media type: "+e),await this._client.send("Emulation.setEmulatedMedia",{media:e||""})}async emulateMediaFeatures(e){null===e&&(await this._client.send("Emulation.setEmulatedMedia",{features:null})),Array.isArray(e)&&(e.every(e=>{const t=e.name;return c.assert(/^prefers-(?:color-scheme|reduced-motion)$/.test(t),"Unsupported media feature: "+t),!0}),await this._client.send("Emulation.setEmulatedMedia",{features:e}))}async emulateTimezone(e){try{await this._client.send("Emulation.setTimezoneOverride",{timezoneId:e||""})}catch(t){if(t.message.includes("Invalid timezone"))throw new Error(`Invalid timezone ID: ${e}`);throw t}}async emulateIdleState(e){e?await this._client.send("Emulation.setIdleOverride",{isUserActive:e.isUserActive,isScreenUnlocked:e.isScreenUnlocked}):await this._client.send("Emulation.clearIdleOverride")}async emulateVisionDeficiency(e){const t=new Set(["none","achromatopsia","blurredVision","deuteranopia","protanopia","tritanopia"]);try{c.assert(!e||t.has(e),`Unsupported vision deficiency: ${e}`),await this._client.send("Emulation.setEmulatedVisionDeficiency",{type:e||"none"})}catch(e){throw e}}async setViewport(e){const t=await this._emulationManager.emulateViewport(e);this._viewport=e,t&&(await this.reload())}viewport(){return this._viewport}async evaluate(e,...t){return this._frameManager.mainFrame().evaluate(e,...t)}async evaluateOnNewDocument(e,...t){const r=u.helper.evaluationString(e,...t);await this._client.send("Page.addScriptToEvaluateOnNewDocument",{source:r})}async setCacheEnabled(e=!0){await this._frameManager.networkManager().setCacheEnabled(e)}async screenshot(e={}){let t=null;if(e.type)c.assert("png"===e.type||"jpeg"===e.type,"Unknown options.type value: "+e.type),t=e.type;else if(e.path){const r=e.path,n=r.slice(r.lastIndexOf(".")+1).toLowerCase();"png"===n?t="png":("jpg"===n||"jpeg"===n)&&(t="jpeg"),c.assert(t,`Unsupported screenshot type for extension \`.${n}\``)}return t||(t="png"),e.quality&&(c.assert("jpeg"===t,"options.quality is unsupported for the "+t+" screenshots"),c.assert("number"==typeof e.quality,"Expected options.quality to be a number but found "+typeof e.quality),c.assert(_NumberisInteger(e.quality),"Expected options.quality to be an integer"),c.assert(0<=e.quality&&100>=e.quality,"Expected options.quality to be between 0 and 100 (inclusive), got "+e.quality)),c.assert(!e.clip||!e.fullPage,"options.clip and options.fullPage are exclusive"),e.clip&&(c.assert("number"==typeof e.clip.x,"Expected options.clip.x to be a number but found "+typeof e.clip.x),c.assert("number"==typeof e.clip.y,"Expected options.clip.y to be a number but found "+typeof e.clip.y),c.assert("number"==typeof e.clip.width,"Expected options.clip.width to be a number but found "+typeof e.clip.width),c.assert("number"==typeof e.clip.height,"Expected options.clip.height to be a number but found "+typeof e.clip.height),c.assert(0!==e.clip.width,"Expected options.clip.width not to be 0."),c.assert(0!==e.clip.height,"Expected options.clip.height not to be 0.")),this._screenshotTaskQueue.postTask(()=>this._screenshotTask(t,e))}async _screenshotTask(e,t){function r(e){const t=_Mathround(e.x),r=_Mathround(e.y),n=_Mathround(e.width+e.x-t),a=_Mathround(e.height+e.y-r);return{x:t,y:r,width:n,height:a,scale:1}}await this._client.send("Target.activateTarget",{targetId:this._target._targetId});let n=t.clip?r(t.clip):void 0;if(t.fullPage){const e=await this._client.send("Page.getLayoutMetrics"),t=_Mathceil(e.contentSize.width),r=_Mathceil(e.contentSize.height);n={x:0,y:0,width:t,height:r,scale:1};const{isMobile:a=!1,deviceScaleFactor:o=1,isLandscape:i=!1}=this._viewport||{},s=i?{angle:90,type:"landscapePrimary"}:{angle:0,type:"portraitPrimary"};await this._client.send("Emulation.setDeviceMetricsOverride",{mobile:a,width:t,height:r,deviceScaleFactor:o,screenOrientation:s})}const a=t.omitBackground&&"png"===e;a&&(await this._client.send("Emulation.setDefaultBackgroundColorOverride",{color:{r:0,g:0,b:0,a:0}}));const o=await this._client.send("Page.captureScreenshot",{format:e,quality:t.quality,clip:n});a&&(await this._client.send("Emulation.setDefaultBackgroundColorOverride")),t.fullPage&&this._viewport&&(await this.setViewport(this._viewport));const i="base64"===t.encoding?o.data:Buffer.from(o.data,"base64");if(!k.isNode&&t.path)throw new Error("Screenshots can only be written to a file path in a Node environment.");const s=await u.helper.importFSModule();return t.path&&(await s.promises.writeFile(t.path,i)),i}async pdf(e={}){const{scale:t=1,displayHeaderFooter:r=!1,headerTemplate:a="",footerTemplate:o="",printBackground:i=!1,landscape:s=!1,pageRanges:l="",preferCSSPageSize:d=!1,margin:p={},path:m=null}=e;let g=8.5,h=11;if(e.format){const t=v.paperFormats[e.format.toLowerCase()];c.assert(t,"Unknown paper format: "+e.format),g=t.width,h=t.height}else g=n(e.width)||g,h=n(e.height)||h;const f=n(p.top)||0,y=n(p.left)||0,b=n(p.bottom)||0,S=n(p.right)||0,x=await this._client.send("Page.printToPDF",{transferMode:"ReturnAsStream",landscape:s,displayHeaderFooter:r,headerTemplate:a,footerTemplate:o,printBackground:i,scale:t,paperWidth:g,paperHeight:h,marginTop:f,marginBottom:b,marginLeft:y,marginRight:S,pageRanges:l,preferCSSPageSize:d});return await u.helper.readProtocolStream(this._client,x.stream,m)}async title(){return this.mainFrame().title()}async close(e={runBeforeUnload:void 0}){c.assert(!!this._client._connection,"Protocol error: Connection closed. Most likely the page has been closed.");const t=!!e.runBeforeUnload;t?await this._client.send("Page.close"):(await this._client._connection.send("Target.closeTarget",{targetId:this._target._targetId}),await this._target._isClosedPromise)}isClosed(){return this._closed}get mouse(){return this._mouse}click(e,t={}){return this.mainFrame().click(e,t)}focus(e){return this.mainFrame().focus(e)}hover(e){return this.mainFrame().hover(e)}select(e,...t){return this.mainFrame().select(e,...t)}tap(e){return this.mainFrame().tap(e)}type(e,t,r){return this.mainFrame().type(e,t,r)}waitFor(e,t={},...r){return this.mainFrame().waitFor(e,t,...r)}waitForTimeout(e){return this.mainFrame().waitForTimeout(e)}waitForSelector(e,t={}){return this.mainFrame().waitForSelector(e,t)}waitForXPath(e,t={}){return this.mainFrame().waitForXPath(e,t)}waitForFunction(e,t={},...r){return this.mainFrame().waitForFunction(e,t,...r)}}t.Page=_;const w=new Set(["Timestamp","Documents","Frames","JSEventListeners","Nodes","LayoutCount","RecalcStyleCount","LayoutDuration","RecalcStyleDuration","ScriptDuration","TaskDuration","JSHeapUsedSize","JSHeapTotalSize"]),T={px:1,in:96,cm:37.8,mm:3.78}},39006:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Puppeteer=void 0;const n=r(29554),a=r(34906),o=r(90419),i=r(10714);class s{constructor(e){this._changedProduct=!1,this._isPuppeteerCore=e.isPuppeteerCore}connect(e){return i.connectToBrowser(e)}get devices(){return a.devicesMap}get errors(){return n.puppeteerErrors}registerCustomQueryHandler(e,t){o.registerCustomQueryHandler(e,t)}unregisterCustomQueryHandler(e){o.unregisterCustomQueryHandler(e)}customQueryHandlerNames(){return o.customQueryHandlerNames()}clearCustomQueryHandlers(){o.clearCustomQueryHandlers()}}t.Puppeteer=s},90419:(e,t,r)=>{"use strict";function n(e){const t={};return e.queryOne&&(t.queryOne=async(t,r)=>{const n=await t.evaluateHandle(e.queryOne,r),a=n.asElement();return a?a:(await n.dispose(),null)},t.waitFor=(t,r,n)=>t.waitForSelectorInPage(e.queryOne,r,n)),e.queryAll&&(t.queryAll=async(t,r)=>{const n=await t.evaluateHandle(e.queryAll,r),a=await n.getProperties();await n.dispose();const o=[];for(const e of a.values()){const t=e.asElement();t&&o.push(t)}return o},t.queryAllArray=async(t,r)=>{const n=await t.evaluateHandle(e.queryAll,r),a=await n.evaluateHandle(e=>Array.from(e));return a}),t}function a(e){p.has(e)&&!d.has(e)&&p.delete(e)}function o(){return[...p.keys()].filter(e=>!d.has(e))}Object.defineProperty(t,"__esModule",{value:!0}),t.getQueryHandlerAndSelector=t.clearCustomQueryHandlers=t.customQueryHandlerNames=t.unregisterCustomQueryHandler=t.registerCustomQueryHandler=void 0;const i=r(79867),s=n({queryOne:(e,t)=>e.querySelector(t),queryAll:(e,t)=>e.querySelectorAll(t)}),l=n({queryOne:(e,t)=>{let r=null;const n=e=>{const a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);do{const e=a.currentNode;if(e.shadowRoot&&n(e.shadowRoot),e instanceof ShadowRoot)continue;!r&&e.matches(t)&&(r=e)}while(!r&&a.nextNode())};return e instanceof Document&&(e=e.documentElement),n(e),r},queryAll:(e,t)=>{const r=[],n=e=>{const a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);do{const e=a.currentNode;if(e.shadowRoot&&n(e.shadowRoot),e instanceof ShadowRoot)continue;e.matches(t)&&r.push(e)}while(a.nextNode())};return e instanceof Document&&(e=e.documentElement),n(e),r}}),d=new Map([["aria",i.ariaHandler],["pierce",l]]),p=new Map(d);t.registerCustomQueryHandler=function(e,t){if(p.get(e))throw new Error(`A custom query handler named "${e}" already exists`);const r=/^[a-zA-Z]+$/.test(e);if(!r)throw new Error(`Custom query handler names may only contain [a-zA-Z]`);const a=n(t);p.set(e,a)},t.unregisterCustomQueryHandler=a,t.customQueryHandlerNames=o,t.clearCustomQueryHandlers=function(){o().forEach(a)},t.getQueryHandlerAndSelector=function(e){const t=/^[a-zA-Z]+\//.test(e);if(!t)return{updatedSelector:e,queryHandler:s};const r=e.indexOf("/"),n=e.slice(0,r),a=e.slice(r+1),o=p.get(n);if(!o)throw new Error(`Query set to use "${n}", but no query handler of that name was found`);return{updatedSelector:a,queryHandler:o}}},55468:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SecurityDetails=void 0;t.SecurityDetails=class e{constructor(e){this._subjectName=e.subjectName,this._issuer=e.issuer,this._validFrom=e.validFrom,this._validTo=e.validTo,this._protocol=e.protocol,this._sanList=e.sanList}issuer(){return this._issuer}validFrom(){return this._validFrom}validTo(){return this._validTo}protocol(){return this._protocol}subjectName(){return this._subjectName}subjectAlternativeNames(){return this._sanList}}},69668:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Target=void 0;const n=r(4258),a=r(41418);t.Target=class e{constructor(e,t,r,n,a){this._targetInfo=e,this._browserContext=t,this._targetId=e.targetId,this._sessionFactory=r,this._ignoreHTTPSErrors=n,this._defaultViewport=a,this._pagePromise=null,this._workerPromise=null,this._initializedPromise=new Promise(e=>this._initializedCallback=e).then(async e=>{if(!e)return!1;const t=this.opener();if(!t||!t._pagePromise||"page"!==this.type())return!0;const r=await t._pagePromise;if(!r.listenerCount("popup"))return!0;const n=await this.page();return r.emit("popup",n),!0}),this._isClosedPromise=new Promise(e=>this._closedCallback=e),this._isInitialized="page"!==this._targetInfo.type||""!==this._targetInfo.url,this._isInitialized&&this._initializedCallback(!0)}createCDPSession(){return this._sessionFactory()}async page(){return"page"!==this._targetInfo.type&&"background_page"!==this._targetInfo.type&&"webview"!==this._targetInfo.type||this._pagePromise||(this._pagePromise=this._sessionFactory().then(e=>n.Page.create(e,this,this._ignoreHTTPSErrors,this._defaultViewport))),this._pagePromise}async worker(){return"service_worker"!==this._targetInfo.type&&"shared_worker"!==this._targetInfo.type?null:(this._workerPromise||(this._workerPromise=this._sessionFactory().then(e=>new a.WebWorker(e,this._targetInfo.url,()=>{},()=>{}))),this._workerPromise)}url(){return this._targetInfo.url}type(){const e=this._targetInfo.type;return"page"===e||"background_page"===e||"service_worker"===e||"shared_worker"===e||"browser"===e||"webview"===e?e:"other"}browser(){return this._browserContext.browser()}browserContext(){return this._browserContext}opener(){const{openerId:e}=this._targetInfo;return e?this.browser()._targets.get(e):null}_targetInfoChanged(e){if(this._targetInfo=e,!this._isInitialized&&("page"!==this._targetInfo.type||""!==this._targetInfo.url))return this._isInitialized=!0,void this._initializedCallback(!0)}}},44261:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TimeoutSettings=void 0;t.TimeoutSettings=class e{constructor(){this._defaultTimeout=null,this._defaultNavigationTimeout=null}setDefaultTimeout(e){this._defaultTimeout=e}setDefaultNavigationTimeout(e){this._defaultNavigationTimeout=e}navigationTimeout(){return null===this._defaultNavigationTimeout?null===this._defaultTimeout?30000:this._defaultTimeout:this._defaultNavigationTimeout}timeout(){return null===this._defaultTimeout?30000:this._defaultTimeout}}},64189:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Tracing=void 0;const n=r(85668),a=r(47674);t.Tracing=class e{constructor(e){this._recording=!1,this._path="",this._client=e}async start(e={}){n.assert(!this._recording,"Cannot start recording trace while already recording trace.");const{path:t=null,screenshots:r=!1,categories:a=["-*","devtools.timeline","v8.execute","disabled-by-default-devtools.timeline","disabled-by-default-devtools.timeline.frame","toplevel","blink.console","blink.user_timing","latencyInfo","disabled-by-default-devtools.timeline.stack","disabled-by-default-v8.cpu_profiler","disabled-by-default-v8.cpu_profiler.hires"]}=e;r&&a.push("disabled-by-default-devtools.screenshot"),this._path=t,this._recording=!0,await this._client.send("Tracing.start",{transferMode:"ReturnAsStream",categories:a.join(",")})}async stop(){let e,t;const r=new Promise((r,n)=>{e=r,t=n});return this._client.once("Tracing.tracingComplete",r=>{a.helper.readProtocolStream(this._client,r.stream,this._path).then(e,t)}),await this._client.send("Tracing.end"),this._recording=!1,r}}},85654:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.keyDefinitions=void 0,t.keyDefinitions={0:{keyCode:48,key:"0",code:"Digit0"},1:{keyCode:49,key:"1",code:"Digit1"},2:{keyCode:50,key:"2",code:"Digit2"},3:{keyCode:51,key:"3",code:"Digit3"},4:{keyCode:52,key:"4",code:"Digit4"},5:{keyCode:53,key:"5",code:"Digit5"},6:{keyCode:54,key:"6",code:"Digit6"},7:{keyCode:55,key:"7",code:"Digit7"},8:{keyCode:56,key:"8",code:"Digit8"},9:{keyCode:57,key:"9",code:"Digit9"},Power:{key:"Power",code:"Power"},Eject:{key:"Eject",code:"Eject"},Abort:{keyCode:3,code:"Abort",key:"Cancel"},Help:{keyCode:6,code:"Help",key:"Help"},Backspace:{keyCode:8,code:"Backspace",key:"Backspace"},Tab:{keyCode:9,code:"Tab",key:"Tab"},Numpad5:{keyCode:12,shiftKeyCode:101,key:"Clear",code:"Numpad5",shiftKey:"5",location:3},NumpadEnter:{keyCode:13,code:"NumpadEnter",key:"Enter",text:"\r",location:3},Enter:{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\r":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},"\n":{keyCode:13,code:"Enter",key:"Enter",text:"\r"},ShiftLeft:{keyCode:16,code:"ShiftLeft",key:"Shift",location:1},ShiftRight:{keyCode:16,code:"ShiftRight",key:"Shift",location:2},ControlLeft:{keyCode:17,code:"ControlLeft",key:"Control",location:1},ControlRight:{keyCode:17,code:"ControlRight",key:"Control",location:2},AltLeft:{keyCode:18,code:"AltLeft",key:"Alt",location:1},AltRight:{keyCode:18,code:"AltRight",key:"Alt",location:2},Pause:{keyCode:19,code:"Pause",key:"Pause"},CapsLock:{keyCode:20,code:"CapsLock",key:"CapsLock"},Escape:{keyCode:27,code:"Escape",key:"Escape"},Convert:{keyCode:28,code:"Convert",key:"Convert"},NonConvert:{keyCode:29,code:"NonConvert",key:"NonConvert"},Space:{keyCode:32,code:"Space",key:" "},Numpad9:{keyCode:33,shiftKeyCode:105,key:"PageUp",code:"Numpad9",shiftKey:"9",location:3},PageUp:{keyCode:33,code:"PageUp",key:"PageUp"},Numpad3:{keyCode:34,shiftKeyCode:99,key:"PageDown",code:"Numpad3",shiftKey:"3",location:3},PageDown:{keyCode:34,code:"PageDown",key:"PageDown"},End:{keyCode:35,code:"End",key:"End"},Numpad1:{keyCode:35,shiftKeyCode:97,key:"End",code:"Numpad1",shiftKey:"1",location:3},Home:{keyCode:36,code:"Home",key:"Home"},Numpad7:{keyCode:36,shiftKeyCode:103,key:"Home",code:"Numpad7",shiftKey:"7",location:3},ArrowLeft:{keyCode:37,code:"ArrowLeft",key:"ArrowLeft"},Numpad4:{keyCode:37,shiftKeyCode:100,key:"ArrowLeft",code:"Numpad4",shiftKey:"4",location:3},Numpad8:{keyCode:38,shiftKeyCode:104,key:"ArrowUp",code:"Numpad8",shiftKey:"8",location:3},ArrowUp:{keyCode:38,code:"ArrowUp",key:"ArrowUp"},ArrowRight:{keyCode:39,code:"ArrowRight",key:"ArrowRight"},Numpad6:{keyCode:39,shiftKeyCode:102,key:"ArrowRight",code:"Numpad6",shiftKey:"6",location:3},Numpad2:{keyCode:40,shiftKeyCode:98,key:"ArrowDown",code:"Numpad2",shiftKey:"2",location:3},ArrowDown:{keyCode:40,code:"ArrowDown",key:"ArrowDown"},Select:{keyCode:41,code:"Select",key:"Select"},Open:{keyCode:43,code:"Open",key:"Execute"},PrintScreen:{keyCode:44,code:"PrintScreen",key:"PrintScreen"},Insert:{keyCode:45,code:"Insert",key:"Insert"},Numpad0:{keyCode:45,shiftKeyCode:96,key:"Insert",code:"Numpad0",shiftKey:"0",location:3},Delete:{keyCode:46,code:"Delete",key:"Delete"},NumpadDecimal:{keyCode:46,shiftKeyCode:110,code:"NumpadDecimal",key:"\0",shiftKey:".",location:3},Digit0:{keyCode:48,code:"Digit0",shiftKey:")",key:"0"},Digit1:{keyCode:49,code:"Digit1",shiftKey:"!",key:"1"},Digit2:{keyCode:50,code:"Digit2",shiftKey:"@",key:"2"},Digit3:{keyCode:51,code:"Digit3",shiftKey:"#",key:"3"},Digit4:{keyCode:52,code:"Digit4",shiftKey:"$",key:"4"},Digit5:{keyCode:53,code:"Digit5",shiftKey:"%",key:"5"},Digit6:{keyCode:54,code:"Digit6",shiftKey:"^",key:"6"},Digit7:{keyCode:55,code:"Digit7",shiftKey:"&",key:"7"},Digit8:{keyCode:56,code:"Digit8",shiftKey:"*",key:"8"},Digit9:{keyCode:57,code:"Digit9",shiftKey:"(",key:"9"},KeyA:{keyCode:65,code:"KeyA",shiftKey:"A",key:"a"},KeyB:{keyCode:66,code:"KeyB",shiftKey:"B",key:"b"},KeyC:{keyCode:67,code:"KeyC",shiftKey:"C",key:"c"},KeyD:{keyCode:68,code:"KeyD",shiftKey:"D",key:"d"},KeyE:{keyCode:69,code:"KeyE",shiftKey:"E",key:"e"},KeyF:{keyCode:70,code:"KeyF",shiftKey:"F",key:"f"},KeyG:{keyCode:71,code:"KeyG",shiftKey:"G",key:"g"},KeyH:{keyCode:72,code:"KeyH",shiftKey:"H",key:"h"},KeyI:{keyCode:73,code:"KeyI",shiftKey:"I",key:"i"},KeyJ:{keyCode:74,code:"KeyJ",shiftKey:"J",key:"j"},KeyK:{keyCode:75,code:"KeyK",shiftKey:"K",key:"k"},KeyL:{keyCode:76,code:"KeyL",shiftKey:"L",key:"l"},KeyM:{keyCode:77,code:"KeyM",shiftKey:"M",key:"m"},KeyN:{keyCode:78,code:"KeyN",shiftKey:"N",key:"n"},KeyO:{keyCode:79,code:"KeyO",shiftKey:"O",key:"o"},KeyP:{keyCode:80,code:"KeyP",shiftKey:"P",key:"p"},KeyQ:{keyCode:81,code:"KeyQ",shiftKey:"Q",key:"q"},KeyR:{keyCode:82,code:"KeyR",shiftKey:"R",key:"r"},KeyS:{keyCode:83,code:"KeyS",shiftKey:"S",key:"s"},KeyT:{keyCode:84,code:"KeyT",shiftKey:"T",key:"t"},KeyU:{keyCode:85,code:"KeyU",shiftKey:"U",key:"u"},KeyV:{keyCode:86,code:"KeyV",shiftKey:"V",key:"v"},KeyW:{keyCode:87,code:"KeyW",shiftKey:"W",key:"w"},KeyX:{keyCode:88,code:"KeyX",shiftKey:"X",key:"x"},KeyY:{keyCode:89,code:"KeyY",shiftKey:"Y",key:"y"},KeyZ:{keyCode:90,code:"KeyZ",shiftKey:"Z",key:"z"},MetaLeft:{keyCode:91,code:"MetaLeft",key:"Meta",location:1},MetaRight:{keyCode:92,code:"MetaRight",key:"Meta",location:2},ContextMenu:{keyCode:93,code:"ContextMenu",key:"ContextMenu"},NumpadMultiply:{keyCode:106,code:"NumpadMultiply",key:"*",location:3},NumpadAdd:{keyCode:107,code:"NumpadAdd",key:"+",location:3},NumpadSubtract:{keyCode:109,code:"NumpadSubtract",key:"-",location:3},NumpadDivide:{keyCode:111,code:"NumpadDivide",key:"/",location:3},F1:{keyCode:112,code:"F1",key:"F1"},F2:{keyCode:113,code:"F2",key:"F2"},F3:{keyCode:114,code:"F3",key:"F3"},F4:{keyCode:115,code:"F4",key:"F4"},F5:{keyCode:116,code:"F5",key:"F5"},F6:{keyCode:117,code:"F6",key:"F6"},F7:{keyCode:118,code:"F7",key:"F7"},F8:{keyCode:119,code:"F8",key:"F8"},F9:{keyCode:120,code:"F9",key:"F9"},F10:{keyCode:121,code:"F10",key:"F10"},F11:{keyCode:122,code:"F11",key:"F11"},F12:{keyCode:123,code:"F12",key:"F12"},F13:{keyCode:124,code:"F13",key:"F13"},F14:{keyCode:125,code:"F14",key:"F14"},F15:{keyCode:126,code:"F15",key:"F15"},F16:{keyCode:127,code:"F16",key:"F16"},F17:{keyCode:128,code:"F17",key:"F17"},F18:{keyCode:129,code:"F18",key:"F18"},F19:{keyCode:130,code:"F19",key:"F19"},F20:{keyCode:131,code:"F20",key:"F20"},F21:{keyCode:132,code:"F21",key:"F21"},F22:{keyCode:133,code:"F22",key:"F22"},F23:{keyCode:134,code:"F23",key:"F23"},F24:{keyCode:135,code:"F24",key:"F24"},NumLock:{keyCode:144,code:"NumLock",key:"NumLock"},ScrollLock:{keyCode:145,code:"ScrollLock",key:"ScrollLock"},AudioVolumeMute:{keyCode:173,code:"AudioVolumeMute",key:"AudioVolumeMute"},AudioVolumeDown:{keyCode:174,code:"AudioVolumeDown",key:"AudioVolumeDown"},AudioVolumeUp:{keyCode:175,code:"AudioVolumeUp",key:"AudioVolumeUp"},MediaTrackNext:{keyCode:176,code:"MediaTrackNext",key:"MediaTrackNext"},MediaTrackPrevious:{keyCode:177,code:"MediaTrackPrevious",key:"MediaTrackPrevious"},MediaStop:{keyCode:178,code:"MediaStop",key:"MediaStop"},MediaPlayPause:{keyCode:179,code:"MediaPlayPause",key:"MediaPlayPause"},Semicolon:{keyCode:186,code:"Semicolon",shiftKey:":",key:";"},Equal:{keyCode:187,code:"Equal",shiftKey:"+",key:"="},NumpadEqual:{keyCode:187,code:"NumpadEqual",key:"=",location:3},Comma:{keyCode:188,code:"Comma",shiftKey:"<",key:","},Minus:{keyCode:189,code:"Minus",shiftKey:"_",key:"-"},Period:{keyCode:190,code:"Period",shiftKey:">",key:"."},Slash:{keyCode:191,code:"Slash",shiftKey:"?",key:"/"},Backquote:{keyCode:192,code:"Backquote",shiftKey:"~",key:"`"},BracketLeft:{keyCode:219,code:"BracketLeft",shiftKey:"{",key:"["},Backslash:{keyCode:220,code:"Backslash",shiftKey:"|",key:"\\"},BracketRight:{keyCode:221,code:"BracketRight",shiftKey:"}",key:"]"},Quote:{keyCode:222,code:"Quote",shiftKey:"\"",key:"'"},AltGraph:{keyCode:225,code:"AltGraph",key:"AltGraph"},Props:{keyCode:247,code:"Props",key:"CrSel"},Cancel:{keyCode:3,key:"Cancel",code:"Abort"},Clear:{keyCode:12,key:"Clear",code:"Numpad5",location:3},Shift:{keyCode:16,key:"Shift",code:"ShiftLeft",location:1},Control:{keyCode:17,key:"Control",code:"ControlLeft",location:1},Alt:{keyCode:18,key:"Alt",code:"AltLeft",location:1},Accept:{keyCode:30,key:"Accept"},ModeChange:{keyCode:31,key:"ModeChange"}," ":{keyCode:32,key:" ",code:"Space"},Print:{keyCode:42,key:"Print"},Execute:{keyCode:43,key:"Execute",code:"Open"},"":{keyCode:46,key:"\0",code:"NumpadDecimal",location:3},a:{keyCode:65,key:"a",code:"KeyA"},b:{keyCode:66,key:"b",code:"KeyB"},c:{keyCode:67,key:"c",code:"KeyC"},d:{keyCode:68,key:"d",code:"KeyD"},e:{keyCode:69,key:"e",code:"KeyE"},f:{keyCode:70,key:"f",code:"KeyF"},g:{keyCode:71,key:"g",code:"KeyG"},h:{keyCode:72,key:"h",code:"KeyH"},i:{keyCode:73,key:"i",code:"KeyI"},j:{keyCode:74,key:"j",code:"KeyJ"},k:{keyCode:75,key:"k",code:"KeyK"},l:{keyCode:76,key:"l",code:"KeyL"},m:{keyCode:77,key:"m",code:"KeyM"},n:{keyCode:78,key:"n",code:"KeyN"},o:{keyCode:79,key:"o",code:"KeyO"},p:{keyCode:80,key:"p",code:"KeyP"},q:{keyCode:81,key:"q",code:"KeyQ"},r:{keyCode:82,key:"r",code:"KeyR"},s:{keyCode:83,key:"s",code:"KeyS"},t:{keyCode:84,key:"t",code:"KeyT"},u:{keyCode:85,key:"u",code:"KeyU"},v:{keyCode:86,key:"v",code:"KeyV"},w:{keyCode:87,key:"w",code:"KeyW"},x:{keyCode:88,key:"x",code:"KeyX"},y:{keyCode:89,key:"y",code:"KeyY"},z:{keyCode:90,key:"z",code:"KeyZ"},Meta:{keyCode:91,key:"Meta",code:"MetaLeft",location:1},"*":{keyCode:106,key:"*",code:"NumpadMultiply",location:3},"+":{keyCode:107,key:"+",code:"NumpadAdd",location:3},"-":{keyCode:109,key:"-",code:"NumpadSubtract",location:3},"/":{keyCode:111,key:"/",code:"NumpadDivide",location:3},";":{keyCode:186,key:";",code:"Semicolon"},"=":{keyCode:187,key:"=",code:"Equal"},",":{keyCode:188,key:",",code:"Comma"},".":{keyCode:190,key:".",code:"Period"},"`":{keyCode:192,key:"`",code:"Backquote"},"[":{keyCode:219,key:"[",code:"BracketLeft"},"\\":{keyCode:220,key:"\\",code:"Backslash"},"]":{keyCode:221,key:"]",code:"BracketRight"},"'":{keyCode:222,key:"'",code:"Quote"},Attn:{keyCode:246,key:"Attn"},CrSel:{keyCode:247,key:"CrSel",code:"Props"},ExSel:{keyCode:248,key:"ExSel"},EraseEof:{keyCode:249,key:"EraseEof"},Play:{keyCode:250,key:"Play"},ZoomOut:{keyCode:251,key:"ZoomOut"},")":{keyCode:48,key:")",code:"Digit0"},"!":{keyCode:49,key:"!",code:"Digit1"},"@":{keyCode:50,key:"@",code:"Digit2"},"#":{keyCode:51,key:"#",code:"Digit3"},$:{keyCode:52,key:"$",code:"Digit4"},"%":{keyCode:53,key:"%",code:"Digit5"},"^":{keyCode:54,key:"^",code:"Digit6"},"&":{keyCode:55,key:"&",code:"Digit7"},"(":{keyCode:57,key:"(",code:"Digit9"},A:{keyCode:65,key:"A",code:"KeyA"},B:{keyCode:66,key:"B",code:"KeyB"},C:{keyCode:67,key:"C",code:"KeyC"},D:{keyCode:68,key:"D",code:"KeyD"},E:{keyCode:69,key:"E",code:"KeyE"},F:{keyCode:70,key:"F",code:"KeyF"},G:{keyCode:71,key:"G",code:"KeyG"},H:{keyCode:72,key:"H",code:"KeyH"},I:{keyCode:73,key:"I",code:"KeyI"},J:{keyCode:74,key:"J",code:"KeyJ"},K:{keyCode:75,key:"K",code:"KeyK"},L:{keyCode:76,key:"L",code:"KeyL"},M:{keyCode:77,key:"M",code:"KeyM"},N:{keyCode:78,key:"N",code:"KeyN"},O:{keyCode:79,key:"O",code:"KeyO"},P:{keyCode:80,key:"P",code:"KeyP"},Q:{keyCode:81,key:"Q",code:"KeyQ"},R:{keyCode:82,key:"R",code:"KeyR"},S:{keyCode:83,key:"S",code:"KeyS"},T:{keyCode:84,key:"T",code:"KeyT"},U:{keyCode:85,key:"U",code:"KeyU"},V:{keyCode:86,key:"V",code:"KeyV"},W:{keyCode:87,key:"W",code:"KeyW"},X:{keyCode:88,key:"X",code:"KeyX"},Y:{keyCode:89,key:"Y",code:"KeyY"},Z:{keyCode:90,key:"Z",code:"KeyZ"},":":{keyCode:186,key:":",code:"Semicolon"},"<":{keyCode:188,key:"<",code:"Comma"},_:{keyCode:189,key:"_",code:"Minus"},">":{keyCode:190,key:">",code:"Period"},"?":{keyCode:191,key:"?",code:"Slash"},"~":{keyCode:192,key:"~",code:"Backquote"},"{":{keyCode:219,key:"{",code:"BracketLeft"},"|":{keyCode:220,key:"|",code:"Backslash"},"}":{keyCode:221,key:"}",code:"BracketRight"},'"':{keyCode:222,key:"\"",code:"Quote"},SoftLeft:{key:"SoftLeft",code:"SoftLeft",location:4},SoftRight:{key:"SoftRight",code:"SoftRight",location:4},Camera:{keyCode:44,key:"Camera",code:"Camera",location:4},Call:{key:"Call",code:"Call",location:4},EndCall:{keyCode:95,key:"EndCall",code:"EndCall",location:4},VolumeDown:{keyCode:182,key:"VolumeDown",code:"VolumeDown",location:4},VolumeUp:{keyCode:183,key:"VolumeUp",code:"VolumeUp",location:4}}},41418:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.WebWorker=void 0;const n=r(2680),a=r(47674),o=r(59574),i=r(79272);class s extends n.EventEmitter{constructor(e,t,r,n){super(),this._client=e,this._url=t,this._executionContextPromise=new Promise(e=>this._executionContextCallback=e);let s;this._client.once("Runtime.executionContextCreated",async t=>{s=t=>new i.JSHandle(r,e,t);const r=new o.ExecutionContext(e,t.context,null);this._executionContextCallback(r)}),this._client.send("Runtime.enable").catch(a.debugError),this._client.on("Runtime.consoleAPICalled",e=>r(e.type,e.args.map(s),e.stackTrace)),this._client.on("Runtime.exceptionThrown",e=>n(e.exceptionDetails))}url(){return this._url}async executionContext(){return this._executionContextPromise}async evaluate(e,...t){return(await this._executionContextPromise).evaluate(e,...t)}async evaluateHandle(e,...t){return(await this._executionContextPromise).evaluateHandle(e,...t)}}t.WebWorker=s},85668:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assert=void 0,t.assert=(e,t)=>{if(!e)throw new Error(t)}},84763: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)"default"!=r&&Object.hasOwnProperty.call(e,r)&&n(t,e,r);return a(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getFetch=void 0;const i=r(23222);t.getFetch=async()=>i.isNode?await Promise.resolve().then(()=>o(r(22434))):globalThis.fetch},47674:function(e,t,r){"use strict";function n(e,t,r){return e.on(t,r),{emitter:e,eventName:t,handler:r}}function a(e){for(const t of e)t.emitter.removeListener(t.eventName,t.handler);e.length=0}function o(e){return"string"==typeof e||e instanceof String}function i(e,...t){return o(e)?(m.assert(0===t.length,"Cannot evaluate a string with arguments"),e):`(${e})(${t.map(function(e){return Object.is(e,void 0)?"undefined":JSON.stringify(e)}).join(",")})`}async function s(){if(!g.isNode)throw new Error("Cannot load the fs module API outside of Node.");const e=await Promise.resolve().then(()=>p(r(35747)));return e.promises?e:e.default}var l=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]}),d=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e["default"]=t}),p=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!=r&&Object.hasOwnProperty.call(e,r)&&l(t,e,r);return d(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.helper=t.debugError=void 0;const c=r(29554),u=r(49259),m=r(85668),g=r(23222);t.debugError=u.debug("puppeteer:error"),t.helper={evaluationString:i,pageBindingInitString:function(e,t){return i(function(e,t){const r=window,n=r[t];r[t]=(...r)=>{const a=window[t];let o=a.callbacks;o||(o=new Map,a.callbacks=o);const i=(a.lastSeq||0)+1;a.lastSeq=i;const s=new Promise((e,t)=>o.set(i,{resolve:e,reject:t}));return n(JSON.stringify({type:e,name:t,seq:i,args:r})),s}},e,t)},pageBindingDeliverResultString:function(e,t,r){return i(function(e,t,r){window[e].callbacks.get(t).resolve(r),window[e].callbacks.delete(t)},e,t,r)},pageBindingDeliverErrorString:function(e,t,r,n){return i(function(e,t,r,n){const a=new Error(r);a.stack=n,window[e].callbacks.get(t).reject(a),window[e].callbacks.delete(t)},e,t,r,n)},pageBindingDeliverErrorValueString:function(e,t,r){return i(function(e,t,r){window[e].callbacks.get(t).reject(r),window[e].callbacks.delete(t)},e,t,r)},makePredicateString:function(e,t){const r=t?`const predicateQueryHandler = ${t};`:"";return` (() => { ${r} const checkWaitForOptions = ${function(e,t,r){if(!e)return r;if(!t&&!r)return e;const n=e.nodeType===Node.TEXT_NODE?e.parentElement:e,a=window.getComputedStyle(n),o=a&&"hidden"!==a.visibility&&function(){const e=n.getBoundingClientRect();return!!(e.top||e.bottom||e.width||e.height)}();return t===o||r===!o?e:null}}; @@ -166,4 +166,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){I("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(I("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;I("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(I("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(h,e))}function h(e){var t=e._readableState;I("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;I("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(T,t,e))}function T(e,t){if(I("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 I("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;I("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 I("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,M;R=M=P[0];for(var f=1;fM?M=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++]],I=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-=I[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=>{e._req.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[M];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[M]._socket.resume()}function p(e){const t=this[M];t._socket.removeListener("data",f),t._readyState=U.CLOSING,t._closeCode=e[R],t.emit("error",e),t._socket.destroy()}function c(){this[M].emitClose()}function u(e){this[M].emit("message",e)}function m(e){const t=this[M];t.pong(e,!t._isServer,I),t.emit("ping",e)}function g(e){this[M].emit("pong",e)}function h(){const e=this[M];this.removeListener("close",h),this.removeListener("end",y),e._readyState=U.CLOSING,e._socket.read(),e._receiver.end(),this.removeListener("data",f),this[M]=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[M]._receiver.write(e)||this.pause()}function y(){const e=this[M];e._readyState=U.CLOSING,e._receiver.end(),this.end()}function b(){const e=this[M];this.removeListener("error",b),this.on("error",I),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:M,NOOP:I}=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[M]=this,e[M]=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.0\",\"_inBundle\":false,\"_integrity\":\"sha512-fmkJBknJKoZwem3/IKSSLpkdNXZeBu5Q7GA/aRsr2btgrptmSCxi2oFjZHqGdK9DoTil9PIHlPIZw2EcRJXRvw==\",\"_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.0.tgz\",\"_shasum\":\"26df088803a2350dff2c27f96fef99fe49442aca\",\"_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.0\"}")},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\":\"