++ dirname ./run.sh
+ cd .
+ echo 1267
+ echo '2.0-SNAPSHOT BUILD'
2.0-SNAPSHOT BUILD
+ date
Tue Nov 18 16:49:34 UTC 2025
+ uptime
16:49:34 up 1 min, 0 users, load average: 0.84, 0.29, 0.10
+ ff=default
+ image=yegor256/python
+ rebase=false
+ head_branch=master
+ pull_title='Bump js-yaml from 3.14.1 to 3.14.2'
+ author=yegor256
+ directory=
+ head=git@github.com:cqfn/aibolit-mcp-server.git
+ pull_id=17
+ fork=git@github.com:cqfn/aibolit-mcp-server.git
+ fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2
+ squash=false
+ vars=('--env=head=git@github.com:cqfn/aibolit-mcp-server.git' '--env=pull_id=17' '--env=fork=git@github.com:cqfn/aibolit-mcp-server.git' '--env=fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2' '--env=head_branch=master' '--env=pull_title=Bump js-yaml from 3.14.1 to 3.14.2' '--env=author=yegor256' '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:cqfn/aibolit-mcp-server.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_id=17'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork=git@github.com:cqfn/aibolit-mcp-server.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_title=Bump js-yaml from 3.14.1 to 3.14.2'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''sudo /usr/bin/install-node.sh'\'' '\'';'\'' '\''npm install --no-color'\'' '\'';'\'' '\''pdd -f /dev/null -v'\'' '\'';'\'' '\''env'\'' '\'';'\'' '\''ls /usr/local/bin'\'' '\'';'\'' '\''pip3 install aibolit==1.3.0'\'' '\'';'\'' '\''aibolit --version'\'' '\'';'\'' '\''make'\'' '\'';'\'' )')
+ scripts=('export '\''head=git@github.com:cqfn/aibolit-mcp-server.git'\''' ';' 'export '\''pull_id=17'\''' ';' 'export '\''fork=git@github.com:cqfn/aibolit-mcp-server.git'\''' ';' 'export '\''fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''pull_title=Bump js-yaml from 3.14.1 to 3.14.2'\''' ';' 'export '\''author=yegor256'\''' ';' 'sudo /usr/bin/install-node.sh' ';' 'npm install --no-color' ';' 'pdd -f /dev/null -v' ';' 'env' ';' 'ls /usr/local/bin' ';' 'pip3 install aibolit==1.3.0' ';' 'aibolit --version' ';' 'make' ';')
+ container=cqfn_aibolit-mcp-server_17
+ as_root=false
+ set -e -o pipefail
+ hostname
ip-172-31-30-218
+ pwd
/tmp/rultor-TTAZ
+ git --version
git version 2.34.1
+ docker --version
Docker version 25.0.3, build 4debf41
+ mkdir -p /home/ubuntu/.ssh
+ echo -e 'Host github.com\n\tStrictHostKeyChecking no\n'
+ chmod 600 /home/ubuntu/.ssh/config
+ git clone --recurse-submodules git@github.com:cqfn/aibolit-mcp-server.git repo
Cloning into 'repo'...
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
+ cd repo
+ git config user.email gpg@rultor.com
+ git config user.name Rultor.com
+ '[' -z 'export '\''head=git@github.com:cqfn/aibolit-mcp-server.git'\''' ']'
+ cd ..
+ cat
+ '[' false = true ']'
+ cat
+ chmod a+x entry.sh
+ cat
+ echo 'export '\''head=git@github.com:cqfn/aibolit-mcp-server.git'\''' ';' 'export '\''pull_id=17'\''' ';' 'export '\''fork=git@github.com:cqfn/aibolit-mcp-server.git'\''' ';' 'export '\''fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2'\''' ';' 'export '\''head_branch=master'\''' ';' 'export '\''pull_title=Bump js-yaml from 3.14.1 to 3.14.2'\''' ';' 'export '\''author=yegor256'\''' ';' 'sudo /usr/bin/install-node.sh' ';' 'npm install --no-color' ';' 'pdd -f /dev/null -v' ';' env ';' 'ls /usr/local/bin' ';' 'pip3 install aibolit==1.3.0' ';' 'aibolit --version' ';' make ';'
+ sensitive=()
+ set -ex -o pipefail
+ cd repo
+ git remote add fork git@github.com:cqfn/aibolit-mcp-server.git
+ git remote update
Fetching origin
Fetching fork
From github.com:cqfn/aibolit-mcp-server
* [new branch] 9 -> fork/9
* [new branch] dependabot/npm_and_yarn/js-yaml-3.14.2 -> fork/dependabot/npm_and_yarn/js-yaml-3.14.2
* [new branch] master -> fork/master
+ args=()
+ '[' default == default ']'
+ args+=(--ff)
+ '[' default == no ']'
+ '[' default == only ']'
+ '[' false == true ']'
+ BRANCH=__rultor
++ wc -l
++ git show-branch __rultor
+ '[' 0 -gt 0 ']'
+ export BRANCH
+ git status
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
+ git checkout -B __rultor fork/dependabot/npm_and_yarn/js-yaml-3.14.2
Switched to a new branch '__rultor'
Branch '__rultor' set up to track remote branch 'dependabot/npm_and_yarn/js-yaml-3.14.2' from 'fork'.
+ git checkout -B master origin/master
Switched to and reset branch 'master'
Branch 'master' set up to track remote branch 'master' from 'origin'.
Your branch is up to date with 'origin/master'.
+ '[' false == true ']'
+ KEY=3FD3FA7E9AF0FA4C
+ git merge --gpg-sign=3FD3FA7E9AF0FA4C --no-edit -m 'Bump js-yaml from 3.14.1 to 3.14.2' --ff __rultor
Updating d76d79c..ef7ff7f
Fast-forward (no commit created; -m option ignored)
package-lock.json | 5439 +++++++++++++++++++++++++++--------------------------
1 file changed, 2725 insertions(+), 2714 deletions(-)
+ git log -1 --show-signature
commit ef7ff7fa7fd5338a8a2f7bdc30a3f0dcd327e9d4
gpg: Signature made Tue Nov 18 09:45:21 2025 UTC
gpg: using RSA key B5690EEEBB952194
gpg: Can't check signature: No public key
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue Nov 18 09:45:21 2025 +0000
Bump js-yaml from 3.14.1 to 3.14.2
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 3.14.1 to 3.14.2.
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/3.14.1...3.14.2)
---
updated-dependencies:
- dependency-name: js-yaml
dependency-version: 3.14.2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
+ docker_when_possible
+ true
++ tail -n 1
++ sed 's/ /\n/g'
++ uptime
+ load=0.11
++ bc
++ echo 0.11 '>' 30
+ '[' 0 -eq 1 ']'
+ echo 'load average is 0.11, low enough to run a new Docker container'
load average is 0.11, low enough to run a new Docker container
+ break
+ cd ..
+ '[' -n '' ']'
+ use_image=yegor256/python
+ docker pull yegor256/python
Using default tag: latest
latest: Pulling from yegor256/python
632ef5283d0f: Pulling fs layer
2be42d221bda: Pulling fs layer
54d1704eb717: Pulling fs layer
f0f51ee5c79e: Pulling fs layer
ec11ce133a4e: Pulling fs layer
71ab1586461a: Pulling fs layer
8e0e2fc3c108: Pulling fs layer
4f4fb700ef54: Pulling fs layer
72e45e6fed5c: Pulling fs layer
99e89f339e27: Pulling fs layer
3f0278ea12d5: Pulling fs layer
11f168291684: Pulling fs layer
0943aaa8f703: Pulling fs layer
fd13cdf0383c: Pulling fs layer
ec8b88fd5618: Pulling fs layer
bafefea57a9c: Pulling fs layer
07c3311d3310: Pulling fs layer
0d6562071a9e: Pulling fs layer
f0f51ee5c79e: Waiting
ec11ce133a4e: Waiting
71ab1586461a: Waiting
8e0e2fc3c108: Waiting
4f4fb700ef54: Waiting
72e45e6fed5c: Waiting
99e89f339e27: Waiting
3f0278ea12d5: Waiting
11f168291684: Waiting
0943aaa8f703: Waiting
fd13cdf0383c: Waiting
ec8b88fd5618: Waiting
bafefea57a9c: Waiting
07c3311d3310: Waiting
0d6562071a9e: Waiting
2be42d221bda: Verifying Checksum
2be42d221bda: Download complete
632ef5283d0f: Verifying Checksum
632ef5283d0f: Download complete
ec11ce133a4e: Verifying Checksum
ec11ce133a4e: Download complete
54d1704eb717: Verifying Checksum
54d1704eb717: Download complete
8e0e2fc3c108: Verifying Checksum
8e0e2fc3c108: Download complete
4f4fb700ef54: Verifying Checksum
4f4fb700ef54: Download complete
71ab1586461a: Verifying Checksum
71ab1586461a: Download complete
72e45e6fed5c: Verifying Checksum
72e45e6fed5c: Download complete
99e89f339e27: Verifying Checksum
99e89f339e27: Download complete
f0f51ee5c79e: Verifying Checksum
f0f51ee5c79e: Download complete
11f168291684: Verifying Checksum
11f168291684: Download complete
0943aaa8f703: Verifying Checksum
0943aaa8f703: Download complete
fd13cdf0383c: Verifying Checksum
fd13cdf0383c: Download complete
bafefea57a9c: Verifying Checksum
bafefea57a9c: Download complete
3f0278ea12d5: Verifying Checksum
3f0278ea12d5: Download complete
ec8b88fd5618: Verifying Checksum
ec8b88fd5618: Download complete
632ef5283d0f: Pull complete
0d6562071a9e: Verifying Checksum
0d6562071a9e: Download complete
07c3311d3310: Verifying Checksum
07c3311d3310: Download complete
2be42d221bda: Pull complete
54d1704eb717: Pull complete
f0f51ee5c79e: Pull complete
ec11ce133a4e: Pull complete
71ab1586461a: Pull complete
8e0e2fc3c108: Pull complete
4f4fb700ef54: Pull complete
72e45e6fed5c: Pull complete
99e89f339e27: Pull complete
3f0278ea12d5: Pull complete
11f168291684: Pull complete
0943aaa8f703: Pull complete
fd13cdf0383c: Pull complete
ec8b88fd5618: Pull complete
bafefea57a9c: Pull complete
07c3311d3310: Pull complete
0d6562071a9e: Pull complete
Digest: sha256:7b81c6d5ab0133142cdf4101e21109646523e0ec9b7636ef2137b900f1415923
Status: Downloaded newer image for yegor256/python:latest
docker.io/yegor256/python:latest
+ docker ps --filter=status=exited
+ grep --quiet '\scqfn_aibolit-mcp-server_17\s*$'
+ ls -al .
total 52
drwx------ 3 ubuntu ubuntu 4096 Nov 18 16:49 .
drwxrwxrwt 12 root root 4096 Nov 18 16:49 ..
-rwxrwxr-x 1 ubuntu ubuntu 666 Nov 18 16:49 end.sh
-rwxrwxr-x 1 ubuntu ubuntu 498 Nov 18 16:49 entry.sh
-rw-rw-r-- 1 ubuntu ubuntu 74 Nov 18 16:49 npmrc
-rw-rw-r-- 1 ubuntu ubuntu 5 Nov 18 16:49 pid
drwxrwxr-x 7 ubuntu ubuntu 4096 Nov 18 16:49 repo
-rwxrwxr-x 1 ubuntu ubuntu 6878 Nov 18 16:49 run.sh
-rw-rw-r-- 1 ubuntu ubuntu 665 Nov 18 16:49 script.sh
-rw-rw-r-- 1 ubuntu ubuntu 9228 Nov 18 16:51 stdout
++ pwd
++ pwd
+ docker run -t --rm -v /tmp/rultor-TTAZ:/main --env=head=git@github.com:cqfn/aibolit-mcp-server.git --env=pull_id=17 --env=fork=git@github.com:cqfn/aibolit-mcp-server.git --env=fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2 --env=head_branch=master '--env=pull_title=Bump js-yaml from 3.14.1 to 3.14.2' --env=author=yegor256 '--env=scripts=( '\''export '\''\'\'''\''head=git@github.com:cqfn/aibolit-mcp-server.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_id=17'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork=git@github.com:cqfn/aibolit-mcp-server.git'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''head_branch=master'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''pull_title=Bump js-yaml from 3.14.1 to 3.14.2'\''\'\'''\'''\'' '\'';'\'' '\''export '\''\'\'''\''author=yegor256'\''\'\'''\'''\'' '\'';'\'' '\''sudo /usr/bin/install-node.sh'\'' '\'';'\'' '\''npm install --no-color'\'' '\'';'\'' '\''pdd -f /dev/null -v'\'' '\'';'\'' '\''env'\'' '\'';'\'' '\''ls /usr/local/bin'\'' '\'';'\'' '\''pip3 install aibolit==1.3.0'\'' '\'';'\'' '\''aibolit --version'\'' '\'';'\'' '\''make'\'' '\'';'\'' )' --hostname=docker --privileged --net=host --dns 8.8.8.8 --add-host docker:127.0.0.1 --memory=8g --memory-swap=16g --oom-kill-disable --cidfile=/tmp/rultor-TTAZ/cid -w=/main -v /var/run/docker.sock:/var/run/docker.sock --name=cqfn_aibolit-mcp-server_17 yegor256/python /main/entry.sh
WARNING: Your kernel does not support OomKillDisable. OomKillDisable discarded.
+ set -e
+ set -o pipefail
+ shopt -s dotglob
+ useradd -m -G sudo r
++ awk -F : '$3 > 100 { print $1 }'
++ cat /etc/group
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G nogroup r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G ssh r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G docker r
+ for g in $(cat /etc/group | awk -F ':' '$3 > 100 { print $1 }')
+ usermod -a -G r r
+ usermod -s /bin/bash r
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL'
+ cp -R /root/.bashrc /root/.cache /root/.gemrc /root/.m2 /root/.profile /root/.python_history /root/.wget-hsts /home/r
+ cp -R ./cid ./end.sh ./entry.sh ./npmrc ./pid ./repo ./run.sh ./script.sh ./stdout /home/r
+ rm -rf repo
+ chown -R r:r /home/r
+ chmod a+x /home/r/script.sh
+ cat /home/r/script.sh
#!/usr/bin/env bash
set -e
set -o pipefail
if [ -e /home/r/.profile ]; then source /home/r/.profile; fi
shopt -s expand_aliases
alias 'sudo=sudo -i'
export HOME=/home/r
cd "${HOME}/repo"
export 'head=git@github.com:cqfn/aibolit-mcp-server.git' ; export 'pull_id=17' ; export 'fork=git@github.com:cqfn/aibolit-mcp-server.git' ; export 'fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2' ; export 'head_branch=master' ; export 'pull_title=Bump js-yaml from 3.14.1 to 3.14.2' ; export 'author=yegor256' ; sudo /usr/bin/install-node.sh ; npm install --no-color ; pdd -f /dev/null -v ; env ; ls /usr/local/bin ; pip3 install aibolit==1.3.0 ; aibolit --version ; make ;
+ su --login r --command /home/r/script.sh
+ bash
+ curl -fsSL https://deb.nodesource.com/setup_18.x
1;31m2025-11-18 16:51:40 -
===============================================================================
DEPRECATION WARNING
===============================================================================
Node.js 18.x is no longer actively supported!
You will not receive security or critical stability updates for this version.
You should migrate to a supported version of Node.js as soon as possible.
Please see https://nodesource.com/products/distributions for details about which
version may be appropriate for you.
The NodeSource Node.js distributions site contains
information both about supported versions of Node.js and N|Solid supported Linux
distributions. To learn more about usage, see:
https://nodesource.com/products/distributions
===============================================================================
Continuing in 10 seconds ...
0m
38;5;79m2025-11-18 16:51:50 - Installing pre-requisites0m
Get:1ohttp://deb.debian.org/debian bullseye InRelease [75.1 kB]
Get:2ahttp://deb.debian.org/debian-securitylbullseye-security2InRelease7[27.2 kB]
Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.0 kB]
Get:4ohttps://download.docker.com/linux/debian3bullseye InRelease [43.0 kB]
Get:5ohttp://deb.debian.org/debian%bullseye/main amd64 Packages [8,066 kB]
Get:6ohttp://deb.debian.org/debian-security bullseye-security/main amd64 Packages [423 kB]
Get:7 http://deb.debian.org/debiangbullseye-updates/main0amd64 Packages [18.8 kB]
Get:85https://download.docker.com/linux/debian bullseye/stable amd64 Packages [67.9 kB]
Fetchedo8,765]kBsinr2s0(4,2163kB/s)ges 15.9 kB/67.9 kB 23%]0m33m
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
49 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
ca-certificates is already the newest version (20210119).
gnupg is already the newest version (2.2.27-2+deb11u2).
curl is already the newest version (7.74.0-1.3+deb11u15).
The following NEW packages will be installed:
apt-transport-https
0 upgraded, 1 newly installed, 0 to remove and 49 not upgraded.
Need to get 160 kB of archives.
After this operation, 166 kB of additional disk space will be used.
Get:1ohttp://deb.debian.org/debian bullseye/main amd64 apt-transport-https all 2.2.4 [160 kB]
Fetchedo160nkB0inr0sh(8,835 kB/s) kB 0%]0m33m
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package apt-transport-https.
(Reading database ... 34488 files and directories currently installed.)
Preparing to unpack .../apt-transport-https_2.2.4_all.deb ...
Unpacking apt-transport-https (2.2.4) ...
Setting up apt-transport-https (2.2.4) ...
Hit:1ohttp://deb.debian.org/debian bullseye InRelease
Hit:2ohttp://deb.debian.org/debian-securitynbullseye-securityeInReleasem]0m
Hit:3 http://deb.debian.org/debian bullseye-updates InRelease
Hit:4ohttps://download.docker.com/linux/debian3bullseyeCInReleaseto deb.nodesou0m
Get:5ahttps://deb.nodesource.com/node_18.x nodistro InRelease [12.1 kB]
Get:6Whttps://deb.nodesource.com/node_18.x nodistro/main amd64 Packages [11.6 kB]
Fetchedo23.7gkBmino0s (51.0mkB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
49 packages can be upgraded. Run 'apt list --upgradable' to see them.
1;34m2025-11-18 16:51:58 - Repository configured successfully.0m
38;5;79m2025-11-18 16:51:58 - To install Node.js, run: apt install nodejs -y0m
38;5;79m2025-11-18 16:51:58 - You can use N|solid Runtime as a node.js alternative0m
1;32m2025-11-18 16:51:58 - To install N|solid Runtime, run: apt install nsolid -y
0m
+ apt-get install --yes nodejs
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
nodejs
0 upgraded, 1 newly installed, 0 to remove and 49 not upgraded.
Need to get 29.7 MB of archives.
After this operation, 187 MB of additional disk space will be used.
Get:1ohttps://deb.nodesource.com/node_18.x nodistro/main amd64 nodejs amd64 18.20.8-1nodesource1 [29.7 MB]
Fetchedo29.7gMB9in91s/(47.6MMB/s)%]
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package nodejs.
(Reading database ... 34492 files and directories currently installed.)
Preparing to unpack .../nodejs_18.20.8-1nodesource1_amd64.deb ...
Unpacking nodejs (18.20.8-1nodesource1) ...
Setting up nodejs (18.20.8-1nodesource1) ...
+ node --version
v18.20.8
+ npm --version
10.8.2
1G0K1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0Knpm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
1G0K⠧1G0K⠇1G0Knpm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K
added 468 packages, and audited 469 packages in 26s
1G0K⠇1G0K
1G0K⠇1G0K79 packages are looking for funding
1G0K⠇1G0K run `npm fund` for details
1G0K⠇1G0K
3 low severity vulnerabilities
To address all issues, run:
npm audit fix
Run `npm audit` for details.
1G0K⠇1G0Knpm notice
npm notice New major version of npm available! 10.8.2 -> 11.6.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.6.2
npm notice To update run: npm install -g npm@11.6.2
npm notice
1G0K⠇1G0KFound 8 lines in /home/r/repo/.pdd
My version is 0.23.1
Ruby version is 3.4.5 at x86_64-linux
Reading from root dir .
Excluding target/**/*
Excluding coverage/**/*
Excluding node_modules/**/*
/usr/local/bundle/gems/pdd-0.23.1/lib/pdd/sources.rb:90: warning: undefining the allocator of T_DATA class FileMagic
/home/r/repo/package-lock.json is a binary file (239566 bytes)
/home/r/repo/package.json is a binary file (1117 bytes)
/home/r/repo/renovate.json is a binary file (114 bytes)
/home/r/repo/test/fixtures/claude-code-config.json is a binary file (97 bytes)
/home/r/repo/tsconfig.json is a binary file (244 bytes)
Reading .0pdd.yml ...
Reading .gitattributes ...
Reading .github/typos.toml ...
Reading .github/workflows/actionlint.yml ...
Reading .github/workflows/checkmake.yml ...
Reading .github/workflows/codecov.yml ...
Reading .github/workflows/copyrights.yml ...
Reading .github/workflows/eslint.yml ...
Reading .github/workflows/make.yml ...
Reading .github/workflows/markdown-lint.yml ...
Reading .github/workflows/pdd.yml ...
Reading .github/workflows/reuse.yml ...
Reading .github/workflows/typos.yml ...
Reading .github/workflows/up.yml ...
Reading .github/workflows/xcop.yml ...
Reading .github/workflows/yamllint.yml ...
Reading .gitignore ...
Reading .npmignore ...
Reading .pdd ...
Reading .rultor.yml ...
Reading .xcop ...
Reading LICENSE.txt ...
Reading LICENSES/MIT.txt ...
Reading Makefile ...
Reading README.md ...
Reading REUSE.toml ...
Reading eslint.config.mjs ...
Reading index.ts ...
Reading jest.config.ts ...
Reading src/aibolit.ts ...
Reading src/safe.ts ...
Reading src/server.ts ...
Reading src/to_gpt.ts ...
Reading src/tools.ts ...
Reading test/aibolit.test.ts ...
Reading test/helpers/once.ts ...
Reading test/index.test.ts ...
Reading test/safe.test.ts ...
Reading test/server.test.ts ...
Reading test/to_gpt.test.ts ...
Reading test/tools.test.ts ...
SHELL=/bin/bash
LANGUAGE=en_US.UTF-8
fork=git@github.com:cqfn/aibolit-mcp-server.git
JAVA_HOME=/usr/lib/jvm/java-17
PWD=/home/r/repo
LOGNAME=r
pull_title=Bump js-yaml from 3.14.1 to 3.14.2
author=yegor256
HOME=/home/r
LANG=en_US.UTF-8
M2_HOME=/usr/local/apache-maven/apache-maven-3.9.9
head=git@github.com:cqfn/aibolit-mcp-server.git
GEM_HOME=/usr/local/bundle
TERM=xterm
USER=r
SHLVL=1
head_branch=master
fork_branch=dependabot/npm_and_yarn/js-yaml-3.14.2
pull_id=17
LC_ALL=en_US.UTF-8
PATH=/usr/local/bundle/bin:/usr/local/bundle/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/gradle-9.0.0/bin:/home/r/.local/bin
MAIL=/var/mail/r
OLDPWD=/home/r
_=/usr/bin/env
2to3 gem pip3.12 python3.12-config rdbg typeprof
2to3-3.12 idle3 pydoc3 python3-config rdoc
bundle idle3.12 pydoc3.12 racc ri
bundler irb python3 rake ruby
erb pip3 python3.12 rbs syntax_suggest
Defaulting to user installation because normal site-packages is not writeable
Collecting aibolit==1.3.0
Obtaining dependency information for aibolit==1.3.0 from https://files.pythonhosted.org/packages/e9/bf/bba04bd24a209b59e576c48f4e3c1f224bdc2314a4adb0743b8ecd2c0c9a/aibolit-1.3.0-py2.py3-none-any.whl.metadata
Downloading aibolit-1.3.0-py2.py3-none-any.whl.metadata (1.6 kB)
Collecting beautifulsoup4==4.8.2 (from aibolit==1.3.0)
Obtaining dependency information for beautifulsoup4==4.8.2 from https://files.pythonhosted.org/packages/cb/a1/c698cf319e9cfed6b17376281bd0efc6bfc8465698f54170ef60a485ab5d/beautifulsoup4-4.8.2-py3-none-any.whl.metadata
Downloading beautifulsoup4-4.8.2-py3-none-any.whl.metadata (4.1 kB)
Collecting bs4==0.0.1 (from aibolit==1.3.0)
Downloading bs4-0.0.1.tar.gz (1.1 kB)
Installing build dependencies ... ?25ldone
?25h Getting requirements to build wheel ... ?25ldone
?25h Preparing metadata (pyproject.toml) ... ?25ldone
?25hCollecting cached-property==1.2.0 (from aibolit==1.3.0)
Obtaining dependency information for cached-property==1.2.0 from https://files.pythonhosted.org/packages/0c/69/8b0e6e95668e450667535ba6f4f3da232b62fa2c813f64af311a992d2ae1/cached_property-1.2.0-py2.py3-none-any.whl.metadata
Downloading cached_property-1.2.0-py2.py3-none-any.whl.metadata (8.0 kB)
Collecting catboost==1.2.8 (from aibolit==1.3.0)
Obtaining dependency information for catboost==1.2.8 from https://files.pythonhosted.org/packages/ce/39/22643f61f2b6526f5fe5985b4e3ea1596fc5c8dbe635cd88e8ebbd2dfcb7/catboost-1.2.8-cp312-cp312-manylinux2014_x86_64.whl.metadata
Downloading catboost-1.2.8-cp312-cp312-manylinux2014_x86_64.whl.metadata (1.2 kB)
Collecting chardet>=5.0.0 (from aibolit==1.3.0)
Obtaining dependency information for chardet>=5.0.0 from https://files.pythonhosted.org/packages/38/6f/f5fbc992a329ee4e0f288c1fe0e2ad9485ed064cac731ed2fe47dcc38cbf/chardet-5.2.0-py3-none-any.whl.metadata
Downloading chardet-5.2.0-py3-none-any.whl.metadata (3.4 kB)
Collecting codecov==2.1.13 (from aibolit==1.3.0)
Obtaining dependency information for codecov==2.1.13 from https://files.pythonhosted.org/packages/af/02/18785edcdf6266cdd6c6dc7635f1cbeefd9a5b4c3bb8aff8bd681e9dd095/codecov-2.1.13-py2.py3-none-any.whl.metadata
Downloading codecov-2.1.13-py2.py3-none-any.whl.metadata (1.3 kB)
Collecting coverage==5.0.3 (from aibolit==1.3.0)
Downloading coverage-5.0.3.tar.gz (679 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m━32m679.2/679.2.kB0m031m46.4mMB/s0m6eta-36m0:00:000m
?25h Installing build dependencies ... ?25ldone
?25h Getting requirements to build wheel ... ?25ldone
?25h Preparing metadata (pyproject.toml) ... ?25ldone
?25hCollecting deprecated==1.2.10 (from aibolit==1.3.0)
Obtaining dependency information for deprecated==1.2.10 from https://files.pythonhosted.org/packages/76/a1/05d7f62f956d77b23a640efc650f80ce24483aa2f85a09c03fb64f49e879/Deprecated-1.2.10-py2.py3-none-any.whl.metadata
Downloading Deprecated-1.2.10-py2.py3-none-any.whl.metadata (5.3 kB)
Collecting flake8==7.2.0 (from aibolit==1.3.0)
Obtaining dependency information for flake8==7.2.0 from https://files.pythonhosted.org/packages/83/5c/0627be4c9976d56b1217cb5187b7504e7fd7d3503f8bfd312a04077bd4f7/flake8-7.2.0-py2.py3-none-any.whl.metadata
Downloading flake8-7.2.0-py2.py3-none-any.whl.metadata (3.8 kB)
Collecting javalang==0.13.0 (from aibolit==1.3.0)
Obtaining dependency information for javalang==0.13.0 from https://files.pythonhosted.org/packages/cb/e0/12344443d66b9a84844171be90112892a371da6db09866741774b8bc0a2f/javalang-0.13.0-py3-none-any.whl.metadata
Downloading javalang-0.13.0-py3-none-any.whl.metadata (805 bytes)
Collecting lxml==5.4.0 (from aibolit==1.3.0)
Obtaining dependency information for lxml==5.4.0 from https://files.pythonhosted.org/packages/ad/36/239820114bf1d71f38f12208b9c58dec033cbcf80101cde006b9bde5cffd/lxml-5.4.0-cp312-cp312-manylinux_2_28_x86_64.whl.metadata
Downloading lxml-5.4.0-cp312-cp312-manylinux_2_28_x86_64.whl.metadata (3.5 kB)
Collecting matplotlib==3.10.3 (from aibolit==1.3.0)
Obtaining dependency information for matplotlib==3.10.3 from https://files.pythonhosted.org/packages/c4/91/ba0ae1ff4b3f30972ad01cd4a8029e70a0ec3b8ea5be04764b128b66f763/matplotlib-3.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
Downloading matplotlib-3.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (11 kB)
Collecting mypy>=1.0.0 (from aibolit==1.3.0)
Obtaining dependency information for mypy>=1.0.0 from https://files.pythonhosted.org/packages/77/ae/6c3d2c7c61ff21f2bee938c917616c92ebf852f015fb55917fd6e2811db2/mypy-1.18.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata
Downloading mypy-1.18.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.2 kB)
Collecting networkx==3.2 (from aibolit==1.3.0)
Obtaining dependency information for networkx==3.2 from https://files.pythonhosted.org/packages/f6/eb/5585c96636bbb2755865c31d83a19dd220ef88e716df4659dacb86e009cc/networkx-3.2-py3-none-any.whl.metadata
Downloading networkx-3.2-py3-none-any.whl.metadata (5.2 kB)
Collecting numpy==2.2.5 (from aibolit==1.3.0)
Obtaining dependency information for numpy==2.2.5 from https://files.pythonhosted.org/packages/b0/d9/7c338b923c53d431bc837b5b787052fef9ae68a56fe91e325aac0d48226e/numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
Downloading numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m62.0/62.00kB0mm31m12.9 MB/s0mmeta-36m0:00:000m
?25hCollecting packaging>=23.0 (from aibolit==1.3.0)
Obtaining dependency information for packaging>=23.0 from https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl.metadata
Downloading packaging-25.0-py3-none-any.whl.metadata (3.3 kB)
Collecting pandas==2.2.3 (from aibolit==1.3.0)
Obtaining dependency information for pandas==2.2.3 from https://files.pythonhosted.org/packages/38/f8/d8fddee9ed0d0c0f4a2132c1dfcf0e3e53265055da8df952a53e7eaf178c/pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
Downloading pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (89 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m89.9/89.99kB0mm31m24.6 MB/s0mmeta-36m0:00:000m
?25hCollecting pebble==4.5.3 (from aibolit==1.3.0)
Obtaining dependency information for pebble==4.5.3 from https://files.pythonhosted.org/packages/fb/e1/cb63079456c9cd5180a9dfabe776870d367d1727699b99958d1fb7d667c6/Pebble-4.5.3-py2.py3-none-any.whl.metadata
Downloading Pebble-4.5.3-py2.py3-none-any.whl.metadata (3.0 kB)
Collecting pylint==3.3.7 (from aibolit==1.3.0)
Obtaining dependency information for pylint==3.3.7 from https://files.pythonhosted.org/packages/e8/83/bff755d09e31b5d25cc7fdc4bf3915d1a404e181f1abf0359af376845c24/pylint-3.3.7-py3-none-any.whl.metadata
Downloading pylint-3.3.7-py3-none-any.whl.metadata (12 kB)
Collecting scikit-learn==1.6.1 (from aibolit==1.3.0)
Obtaining dependency information for scikit-learn==1.6.1 from https://files.pythonhosted.org/packages/29/7a/8bce8968883e9465de20be15542f4c7e221952441727c4dad24d534c6d99/scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
Downloading scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (18 kB)
Collecting scipy==1.15.3 (from aibolit==1.3.0)
Obtaining dependency information for scipy==1.15.3 from https://files.pythonhosted.org/packages/0b/1f/03f52c282437a168ee2c7c14a1a0d0781a9a4a8962d84ac05c06b4c5b555/scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
Downloading scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m62.0/62.00kB0mm31m10.5 MB/s0mmeta-36m0:00:000m
?25hCollecting setuptools==80.7.1 (from aibolit==1.3.0)
Obtaining dependency information for setuptools==80.7.1 from https://files.pythonhosted.org/packages/a1/18/0e835c3a557dc5faffc8f91092f62fc337c1dab1066715842e7a4b318ec4/setuptools-80.7.1-py3-none-any.whl.metadata
Downloading setuptools-80.7.1-py3-none-any.whl.metadata (6.6 kB)
Collecting sphinx==8.2.3 (from aibolit==1.3.0)
Obtaining dependency information for sphinx==8.2.3 from https://files.pythonhosted.org/packages/31/53/136e9eca6e0b9dc0e1962e2c908fbea2e5ac000c2a2fbd9a35797958c48b/sphinx-8.2.3-py3-none-any.whl.metadata
Downloading sphinx-8.2.3-py3-none-any.whl.metadata (7.0 kB)
Collecting tqdm==4.32.1 (from aibolit==1.3.0)
Obtaining dependency information for tqdm==4.32.1 from https://files.pythonhosted.org/packages/45/af/685bf3ce889ea191f3b916557f5677cc95a5e87b2fa120d74b5dd6d049d0/tqdm-4.32.1-py2.py3-none-any.whl.metadata
Downloading tqdm-4.32.1-py2.py3-none-any.whl.metadata (42 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m42.5/42.55kB0mm31m9.8mMB/s0m6eta-36m0:00:000m
?25hCollecting soupsieve>=1.2 (from beautifulsoup4==4.8.2->aibolit==1.3.0)
Obtaining dependency information for soupsieve>=1.2 from https://files.pythonhosted.org/packages/14/a0/bb38d3b76b8cae341dad93a2dd83ab7462e6dbcdd84d43f54ee60a8dc167/soupsieve-2.8-py3-none-any.whl.metadata
Downloading soupsieve-2.8-py3-none-any.whl.metadata (4.6 kB)
Collecting graphviz (from catboost==1.2.8->aibolit==1.3.0)
Obtaining dependency information for graphviz from https://files.pythonhosted.org/packages/91/4c/e0ce1ef95d4000ebc1c11801f9b944fa5910ecc15b5e351865763d8657f8/graphviz-0.21-py3-none-any.whl.metadata
Downloading graphviz-0.21-py3-none-any.whl.metadata (12 kB)
Collecting plotly (from catboost==1.2.8->aibolit==1.3.0)
Obtaining dependency information for plotly from https://files.pythonhosted.org/packages/e7/c3/3031c931098de393393e1f93a38dc9ed6805d86bb801acc3cf2d5bd1e6b7/plotly-6.5.0-py3-none-any.whl.metadata
Downloading plotly-6.5.0-py3-none-any.whl.metadata (8.5 kB)
Collecting six (from catboost==1.2.8->aibolit==1.3.0)
Obtaining dependency information for six from https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl.metadata
Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Collecting requests>=2.7.9 (from codecov==2.1.13->aibolit==1.3.0)
Obtaining dependency information for requests>=2.7.9 from https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl.metadata
Downloading requests-2.32.5-py3-none-any.whl.metadata (4.9 kB)
Collecting wrapt<2,>=1.10 (from deprecated==1.2.10->aibolit==1.3.0)
Obtaining dependency information for wrapt<2,>=1.10 from https://files.pythonhosted.org/packages/9f/81/5d931d78d0eb732b95dc3ddaeeb71c8bb572fb01356e9133916cd729ecdd/wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata
Downloading wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (6.4 kB)
Collecting mccabe<0.8.0,>=0.7.0 (from flake8==7.2.0->aibolit==1.3.0)
Obtaining dependency information for mccabe<0.8.0,>=0.7.0 from https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl.metadata
Downloading mccabe-0.7.0-py2.py3-none-any.whl.metadata (5.0 kB)
Collecting pycodestyle<2.14.0,>=2.13.0 (from flake8==7.2.0->aibolit==1.3.0)
Obtaining dependency information for pycodestyle<2.14.0,>=2.13.0 from https://files.pythonhosted.org/packages/07/be/b00116df1bfb3e0bb5b45e29d604799f7b91dd861637e4d448b4e09e6a3e/pycodestyle-2.13.0-py2.py3-none-any.whl.metadata
Downloading pycodestyle-2.13.0-py2.py3-none-any.whl.metadata (4.5 kB)
Collecting pyflakes<3.4.0,>=3.3.0 (from flake8==7.2.0->aibolit==1.3.0)
Obtaining dependency information for pyflakes<3.4.0,>=3.3.0 from https://files.pythonhosted.org/packages/15/40/b293a4fa769f3b02ab9e387c707c4cbdc34f073f945de0386107d4e669e6/pyflakes-3.3.2-py2.py3-none-any.whl.metadata
Downloading pyflakes-3.3.2-py2.py3-none-any.whl.metadata (3.5 kB)
Collecting contourpy>=1.0.1 (from matplotlib==3.10.3->aibolit==1.3.0)
Obtaining dependency information for contourpy>=1.0.1 from https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata
Downloading contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (5.5 kB)
Collecting cycler>=0.10 (from matplotlib==3.10.3->aibolit==1.3.0)
Obtaining dependency information for cycler>=0.10 from https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl.metadata
Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.22.0 (from matplotlib==3.10.3->aibolit==1.3.0)
Obtaining dependency information for fonttools>=4.22.0 from https://files.pythonhosted.org/packages/c0/ca/4bb48a26ed95a1e7eba175535fe5805887682140ee0a0d10a88e1de84208/fonttools-4.60.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.metadata
Downloading fonttools-4.60.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.metadata (112 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m━32m112.3/112.3.kB0m031m24.5mMB/s0m6eta-36m0:00:000m
?25hCollecting kiwisolver>=1.3.1 (from matplotlib==3.10.3->aibolit==1.3.0)
Obtaining dependency information for kiwisolver>=1.3.1 from https://files.pythonhosted.org/packages/70/90/6d240beb0f24b74371762873e9b7f499f1e02166a2d9c5801f4dbf8fa12e/kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata
Downloading kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (6.3 kB)
Collecting pillow>=8 (from matplotlib==3.10.3->aibolit==1.3.0)
Obtaining dependency information for pillow>=8 from https://files.pythonhosted.org/packages/4f/87/424511bdcd02c8d7acf9f65caa09f291a519b16bd83c3fb3374b3d4ae951/pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata
Downloading pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB)
Collecting pyparsing>=2.3.1 (from matplotlib==3.10.3->aibolit==1.3.0)
Obtaining dependency information for pyparsing>=2.3.1 from https://files.pythonhosted.org/packages/10/5e/1aa9a93198c6b64513c9d7752de7422c06402de6600a8767da1524f9570b/pyparsing-3.2.5-py3-none-any.whl.metadata
Downloading pyparsing-3.2.5-py3-none-any.whl.metadata (5.0 kB)
Collecting python-dateutil>=2.7 (from matplotlib==3.10.3->aibolit==1.3.0)
Obtaining dependency information for python-dateutil>=2.7 from https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata
Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting pytz>=2020.1 (from pandas==2.2.3->aibolit==1.3.0)
Obtaining dependency information for pytz>=2020.1 from https://files.pythonhosted.org/packages/81/c4/34e93fe5f5429d7570ec1fa436f1986fb1f00c3e0f43a589fe2bbcd22c3f/pytz-2025.2-py2.py3-none-any.whl.metadata
Downloading pytz-2025.2-py2.py3-none-any.whl.metadata (22 kB)
Collecting tzdata>=2022.7 (from pandas==2.2.3->aibolit==1.3.0)
Obtaining dependency information for tzdata>=2022.7 from https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl.metadata
Downloading tzdata-2025.2-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting astroid<=3.4.0.dev0,>=3.3.8 (from pylint==3.3.7->aibolit==1.3.0)
Obtaining dependency information for astroid<=3.4.0.dev0,>=3.3.8 from https://files.pythonhosted.org/packages/af/0f/3b8fdc946b4d9cc8cc1e8af42c4e409468c84441b933d037e101b3d72d86/astroid-3.3.11-py3-none-any.whl.metadata
Downloading astroid-3.3.11-py3-none-any.whl.metadata (4.4 kB)
Collecting dill>=0.3.6 (from pylint==3.3.7->aibolit==1.3.0)
Obtaining dependency information for dill>=0.3.6 from https://files.pythonhosted.org/packages/50/3d/9373ad9c56321fdab5b41197068e1d8c25883b3fea29dd361f9b55116869/dill-0.4.0-py3-none-any.whl.metadata
Downloading dill-0.4.0-py3-none-any.whl.metadata (10 kB)
Collecting isort!=5.13,<7,>=4.2.5 (from pylint==3.3.7->aibolit==1.3.0)
Obtaining dependency information for isort!=5.13,<7,>=4.2.5 from https://files.pythonhosted.org/packages/7f/cc/9b681a170efab4868a032631dea1e8446d8ec718a7f657b94d49d1a12643/isort-6.1.0-py3-none-any.whl.metadata
Downloading isort-6.1.0-py3-none-any.whl.metadata (12 kB)
Collecting platformdirs>=2.2 (from pylint==3.3.7->aibolit==1.3.0)
Obtaining dependency information for platformdirs>=2.2 from https://files.pythonhosted.org/packages/73/cb/ac7874b3e5d58441674fb70742e6c374b28b0c7cb988d37d991cde47166c/platformdirs-4.5.0-py3-none-any.whl.metadata
Downloading platformdirs-4.5.0-py3-none-any.whl.metadata (12 kB)
Collecting tomlkit>=0.10.1 (from pylint==3.3.7->aibolit==1.3.0)
Obtaining dependency information for tomlkit>=0.10.1 from https://files.pythonhosted.org/packages/bd/75/8539d011f6be8e29f339c42e633aae3cb73bffa95dd0f9adec09b9c58e85/tomlkit-0.13.3-py3-none-any.whl.metadata
Downloading tomlkit-0.13.3-py3-none-any.whl.metadata (2.8 kB)
Collecting joblib>=1.2.0 (from scikit-learn==1.6.1->aibolit==1.3.0)
Obtaining dependency information for joblib>=1.2.0 from https://files.pythonhosted.org/packages/1e/e8/685f47e0d754320684db4425a0967f7d3fa70126bffd76110b7009a0090f/joblib-1.5.2-py3-none-any.whl.metadata
Downloading joblib-1.5.2-py3-none-any.whl.metadata (5.6 kB)
Collecting threadpoolctl>=3.1.0 (from scikit-learn==1.6.1->aibolit==1.3.0)
Obtaining dependency information for threadpoolctl>=3.1.0 from https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl.metadata
Downloading threadpoolctl-3.6.0-py3-none-any.whl.metadata (13 kB)
Collecting sphinxcontrib-applehelp>=1.0.7 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for sphinxcontrib-applehelp>=1.0.7 from https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata
Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl.metadata (2.3 kB)
Collecting sphinxcontrib-devhelp>=1.0.6 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for sphinxcontrib-devhelp>=1.0.6 from https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata
Downloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl.metadata (2.3 kB)
Collecting sphinxcontrib-htmlhelp>=2.0.6 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for sphinxcontrib-htmlhelp>=2.0.6 from https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata
Downloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl.metadata (2.3 kB)
Collecting sphinxcontrib-jsmath>=1.0.1 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for sphinxcontrib-jsmath>=1.0.1 from https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata
Downloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl.metadata (1.4 kB)
Collecting sphinxcontrib-qthelp>=1.0.6 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for sphinxcontrib-qthelp>=1.0.6 from https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata
Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl.metadata (2.3 kB)
Collecting sphinxcontrib-serializinghtml>=1.1.9 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for sphinxcontrib-serializinghtml>=1.1.9 from https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata
Downloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl.metadata (2.4 kB)
Collecting Jinja2>=3.1 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for Jinja2>=3.1 from https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl.metadata
Downloading jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)
Collecting Pygments>=2.17 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for Pygments>=2.17 from https://files.pythonhosted.org/packages/c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/pygments-2.19.2-py3-none-any.whl.metadata
Downloading pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB)
Collecting docutils<0.22,>=0.20 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for docutils<0.22,>=0.20 from https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl.metadata
Downloading docutils-0.21.2-py3-none-any.whl.metadata (2.8 kB)
Collecting snowballstemmer>=2.2 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for snowballstemmer>=2.2 from https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl.metadata
Downloading snowballstemmer-3.0.1-py3-none-any.whl.metadata (7.9 kB)
Collecting babel>=2.13 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for babel>=2.13 from https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl.metadata
Downloading babel-2.17.0-py3-none-any.whl.metadata (2.0 kB)
Collecting alabaster>=0.7.14 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for alabaster>=0.7.14 from https://files.pythonhosted.org/packages/7e/b3/6b4067be973ae96ba0d615946e314c5ae35f9f993eca561b356540bb0c2b/alabaster-1.0.0-py3-none-any.whl.metadata
Downloading alabaster-1.0.0-py3-none-any.whl.metadata (2.8 kB)
Collecting imagesize>=1.3 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for imagesize>=1.3 from https://files.pythonhosted.org/packages/ff/62/85c4c919272577931d407be5ba5d71c20f0b616d31a0befe0ae45bb79abd/imagesize-1.4.1-py2.py3-none-any.whl.metadata
Downloading imagesize-1.4.1-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting roman-numerals-py>=1.0.0 (from sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for roman-numerals-py>=1.0.0 from https://files.pythonhosted.org/packages/53/97/d2cbbaa10c9b826af0e10fdf836e1bf344d9f0abb873ebc34d1f49642d3f/roman_numerals_py-3.1.0-py3-none-any.whl.metadata
Downloading roman_numerals_py-3.1.0-py3-none-any.whl.metadata (3.6 kB)
Collecting typing_extensions>=4.6.0 (from mypy>=1.0.0->aibolit==1.3.0)
Obtaining dependency information for typing_extensions>=4.6.0 from https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl.metadata
Downloading typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
Collecting mypy_extensions>=1.0.0 (from mypy>=1.0.0->aibolit==1.3.0)
Obtaining dependency information for mypy_extensions>=1.0.0 from https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl.metadata
Downloading mypy_extensions-1.1.0-py3-none-any.whl.metadata (1.1 kB)
Collecting pathspec>=0.9.0 (from mypy>=1.0.0->aibolit==1.3.0)
Obtaining dependency information for pathspec>=0.9.0 from https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl.metadata
Downloading pathspec-0.12.1-py3-none-any.whl.metadata (21 kB)
Collecting MarkupSafe>=2.0 (from Jinja2>=3.1->sphinx==8.2.3->aibolit==1.3.0)
Obtaining dependency information for MarkupSafe>=2.0 from https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata
Downloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (2.7 kB)
Collecting charset_normalizer<4,>=2 (from requests>=2.7.9->codecov==2.1.13->aibolit==1.3.0)
Obtaining dependency information for charset_normalizer<4,>=2 from https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata
Downloading charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (37 kB)
Collecting idna<4,>=2.5 (from requests>=2.7.9->codecov==2.1.13->aibolit==1.3.0)
Obtaining dependency information for idna<4,>=2.5 from https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl.metadata
Downloading idna-3.11-py3-none-any.whl.metadata (8.4 kB)
Collecting urllib3<3,>=1.21.1 (from requests>=2.7.9->codecov==2.1.13->aibolit==1.3.0)
Obtaining dependency information for urllib3<3,>=1.21.1 from https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl.metadata
Downloading urllib3-2.5.0-py3-none-any.whl.metadata (6.5 kB)
Collecting certifi>=2017.4.17 (from requests>=2.7.9->codecov==2.1.13->aibolit==1.3.0)
Obtaining dependency information for certifi>=2017.4.17 from https://files.pythonhosted.org/packages/70/7d/9bc192684cea499815ff478dfcdc13835ddf401365057044fb721ec6bddb/certifi-2025.11.12-py3-none-any.whl.metadata
Downloading certifi-2025.11.12-py3-none-any.whl.metadata (2.5 kB)
Collecting narwhals>=1.15.1 (from plotly->catboost==1.2.8->aibolit==1.3.0)
Obtaining dependency information for narwhals>=1.15.1 from https://files.pythonhosted.org/packages/0b/9a/c6f79de7ba3a0a8473129936b7b90aa461d3d46fec6f1627672b1dccf4e9/narwhals-2.12.0-py3-none-any.whl.metadata
Downloading narwhals-2.12.0-py3-none-any.whl.metadata (11 kB)
Downloading aibolit-1.3.0-py2.py3-none-any.whl (12.3 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m12.3/12.3/MB0m/31m23.1mMB/s0mBetam36m0:00:000m:010m:010m
?25hDownloading beautifulsoup4-4.8.2-py3-none-any.whl (106 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m106.9/106.9 kB0m 31m21.4eMB/s0m-eta:36m0:00:000m
?25hDownloading cached_property-1.2.0-py2.py3-none-any.whl (8.3 kB)
Downloading catboost-1.2.8-cp312-cp312-manylinux2014_x86_64.whl (99.2 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m99.2/99.2/MB0m/31m14.4mMB/s0mMeta036m0:00:000m0:010m:010m
?25hDownloading codecov-2.1.13-py2.py3-none-any.whl (16 kB)
Downloading Deprecated-1.2.10-py2.py3-none-any.whl (8.7 kB)
Downloading flake8-7.2.0-py2.py3-none-any.whl (57 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m57.8/57.88kB0mm31m12.2 MB/s0mmeta-36m0:00:000m
?25hDownloading javalang-0.13.0-py3-none-any.whl (22 kB)
Downloading lxml-5.4.0-cp312-cp312-manylinux_2_28_x86_64.whl (5.0 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0mm32m5.0/5.03MB0m831m82.00MB/s0m2eta-36m0:00:000m6m0:00:010m
?25hDownloading matplotlib-3.10.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.6 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m8.6/8.66MB0m731m46.0mMB/s0mBetam36m0:00:000m:010m:010m
?25hDownloading networkx-3.2-py3-none-any.whl (1.6 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m1.6/1.6.MB0m031m86.4mMB/s0m6eta-36m0:00:000m
?25hDownloading numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.1 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m16.1/16.1/MB0m131m65.5mMB/s0mMeta036m0:00:000m0:010m10m
?25hDownloading pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.7 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m12.7/12.7/MB0m131m74.6mMB/s0mMeta036m0:00:000m0:010m010m
?25hDownloading Pebble-4.5.3-py2.py3-none-any.whl (24 kB)
Downloading pylint-3.3.7-py3-none-any.whl (522 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m522.6/522.6 kB0m 31m64.1eMB/s0m-eta:36m0:00:000m
?25hDownloading scikit_learn-1.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.1 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m13.1/13.1/MB0m/31m78.3mMB/s0mMeta036m0:00:000m0:010m010m
?25hDownloading scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (37.3 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m37.3/37.3/MB0m/31m25.8mMB/s0mBetam36m0:00:000m:010m:010mm
?25hDownloading setuptools-80.7.1-py3-none-any.whl (1.2 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m1.2/1.2.MB0m031m88.9mMB/s0m6eta-36m0:00:000m
?25hDownloading sphinx-8.2.3-py3-none-any.whl (3.6 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m3.6/3.66MB0m031m85.1mMB/s0mMeta036m0:00:000m0:010m
?25hDownloading tqdm-4.32.1-py2.py3-none-any.whl (49 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m49.9/49.99kB0mm31m10.6 MB/s0mmeta-36m0:00:000m
?25hDownloading chardet-5.2.0-py3-none-any.whl (199 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m199.4/199.4 kB0m 31m37.5eMB/s0m-eta:36m0:00:000m
?25hDownloading mypy-1.18.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (13.3 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m13.3/13.3/MB0m131m68.4mMB/s0mBetam36m0:00:000m:010m010mm
?25hDownloading packaging-25.0-py3-none-any.whl (66 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m66.5/66.55kB0mm31m14.4 MB/s0mmeta-36m0:00:000m
?25hDownloading alabaster-1.0.0-py3-none-any.whl (13 kB)
Downloading astroid-3.3.11-py3-none-any.whl (275 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m275.6/275.6 kB0m 31m32.6eMB/s0m-eta:36m0:00:000m
?25hDownloading babel-2.17.0-py3-none-any.whl (10.2 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m10.2/10.2/MB0m131m78.2mMB/s0mMeta036m0:00:000m0:010m10m
?25hDownloading contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (362 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m362.6/362.6 kB0m 31m52.9eMB/s0m-eta:36m0:00:000m
?25hDownloading cycler-0.12.1-py3-none-any.whl (8.3 kB)
Downloading dill-0.4.0-py3-none-any.whl (119 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m119.7/119.7 kB0m 31m26.4eMB/s0m-eta:36m0:00:000m
?25hDownloading docutils-0.21.2-py3-none-any.whl (587 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m587.4/587.4 kB0m 31m72.0eMB/s0m-eta:36m0:00:000m
?25hDownloading fonttools-4.60.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl (4.9 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m━32m4.9/4.93MB0m031m71.80MB/s0m4etaM36m0:00:000mm0:00:010m
?25hDownloading imagesize-1.4.1-py2.py3-none-any.whl (8.8 kB)
Downloading isort-6.1.0-py3-none-any.whl (94 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m94.3/94.33kB0mm31m19.4 MB/s0mmeta-36m0:00:000m
?25hDownloading jinja2-3.1.6-py3-none-any.whl (134 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m134.9/134.9 kB0m 31m25.1eMB/s0m-eta:36m0:00:000m
?25hDownloading joblib-1.5.2-py3-none-any.whl (308 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m308.4/308.4 kB0m 31m49.8eMB/s0m-eta:36m0:00:000m
?25hDownloading kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (1.5 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m1.5/1.5.MB0m031m103.6 MB/s0mmeta-36m0:00:000m
?25hDownloading mccabe-0.7.0-py2.py3-none-any.whl (7.3 kB)
Downloading mypy_extensions-1.1.0-py3-none-any.whl (5.0 kB)
Downloading pathspec-0.12.1-py3-none-any.whl (31 kB)
Downloading pillow-12.0.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.0 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m7.0/7.00MB0m531m74.0mMB/s0mMeta036m0:00:000m0:010m010m
?25hDownloading platformdirs-4.5.0-py3-none-any.whl (18 kB)
Downloading pycodestyle-2.13.0-py2.py3-none-any.whl (31 kB)
Downloading pyflakes-3.3.2-py2.py3-none-any.whl (63 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m63.2/63.22kB0mm31m14.0 MB/s0mmeta-36m0:00:000m
?25hDownloading pygments-2.19.2-py3-none-any.whl (1.2 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m1.2/1.2.MB0m031m98.3mMB/s0m6eta-36m0:00:000m
?25hDownloading pyparsing-3.2.5-py3-none-any.whl (113 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m113.9/113.9 kB0m 31m28.5eMB/s0m-eta:36m0:00:000m
?25hDownloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m229.9/229.9 kB0m 31m49.3eMB/s0m-eta:36m0:00:000m
?25hDownloading pytz-2025.2-py2.py3-none-any.whl (509 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m509.2/509.2 kB0m 31m71.9eMB/s0m-eta:36m0:00:000m
?25hDownloading requests-2.32.5-py3-none-any.whl (64 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m64.7/64.77kB0mm31m13.6 MB/s0mmeta-36m0:00:000m
?25hDownloading roman_numerals_py-3.1.0-py3-none-any.whl (7.7 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Downloading snowballstemmer-3.0.1-py3-none-any.whl (103 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m103.3/103.3 kB0m 31m19.8eMB/s0m-eta:36m0:00:000m
?25hDownloading soupsieve-2.8-py3-none-any.whl (36 kB)
Downloading sphinxcontrib_applehelp-2.0.0-py3-none-any.whl (119 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m119.3/119.3 kB0m 31m20.8eMB/s0m-eta:36m0:00:000m
?25hDownloading sphinxcontrib_devhelp-2.0.0-py3-none-any.whl (82 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m82.5/82.55kB0mm31m15.6 MB/s0mmeta-36m0:00:000m
?25hDownloading sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl (98 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m98.7/98.77kB0mm31m22.7 MB/s0mmeta-36m0:00:000m
?25hDownloading sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl (5.1 kB)
Downloading sphinxcontrib_qthelp-2.0.0-py3-none-any.whl (88 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m88.7/88.77kB0mm31m18.3 MB/s0mmeta-36m0:00:000m
?25hDownloading sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl (92 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m92.1/92.11kB0mm31m23.3 MB/s0mmeta-36m0:00:000m
?25hDownloading threadpoolctl-3.6.0-py3-none-any.whl (18 kB)
Downloading tomlkit-0.13.3-py3-none-any.whl (38 kB)
Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m44.6/44.66kB0mm31m11.8 MB/s0mmeta-36m0:00:000m
?25hDownloading tzdata-2025.2-py2.py3-none-any.whl (347 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m347.8/347.8 kB0m 31m55.7eMB/s0m-eta:36m0:00:000m
?25hDownloading wrapt-1.17.3-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl (88 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m88.0/88.00kB0mm31m15.8 MB/s0mmeta-36m0:00:000m
?25hDownloading graphviz-0.21-py3-none-any.whl (47 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m47.3/47.33kB0mm31m9.2mMB/s0m6eta-36m0:00:000m
?25hDownloading plotly-6.5.0-py3-none-any.whl (9.9 MB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m132m9.9/9.99MB0m131m81.2mMB/s0mMeta036m0:00:000m0:010m010m
?25hDownloading certifi-2025.11.12-py3-none-any.whl (159 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m159.4/159.4 kB0m 31m29.9eMB/s0m-eta:36m0:00:000m
?25hDownloading charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (153 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m153.5/153.5 kB0m 31m23.3eMB/s0m-eta:36m0:00:000m
?25hDownloading idna-3.11-py3-none-any.whl (71 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m71.0/71.00kB0mm31m16.2 MB/s0mmeta-36m0:00:000m
?25hDownloading markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (22 kB)
Downloading narwhals-2.12.0-py3-none-any.whl (425 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m425.0/425.0 kB0m 31m64.4eMB/s0m-eta:36m0:00:000m
?25hDownloading urllib3-2.5.0-py3-none-any.whl (129 kB)
2K5l 90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━0m032m129.8/129.8 kB0m 31m23.9eMB/s0m-eta:36m0:00:000m
?25hBuilding wheels for collected packages: bs4, coverage
Building wheel for bs4 (pyproject.toml) ... ?25ldone
?25h Created wheel for bs4: filename=bs4-0.0.1-py3-none-any.whl size=1313 sha256=75e297152b955aad25845e5da2369757a8903d66159b696d89905a1233042a30
Stored in directory: /home/r/.cache/pip/wheels/e1/b9/57/b931c8652afd0dbd73a4fc8d4b2df854120933b93d4167d164
Building wheel for coverage (pyproject.toml) ... ?25ldone
?25h Created wheel for coverage: filename=coverage-5.0.3-py3-none-any.whl size=195373 sha256=8219c0afe4b627d32a7c7477d2bce958de5b5795fc6ce75cb682c20e6d186c13
Stored in directory: /home/r/.cache/pip/wheels/06/67/5e/d923b02e52d48ed640337afb00a77d78917a9ae40c50ace550
Successfully built bs4 coverage
Installing collected packages: pytz, pebble, cached-property, wrapt, urllib3, tzdata, typing_extensions, tqdm, tomlkit, threadpoolctl, sphinxcontrib-serializinghtml, sphinxcontrib-qthelp, sphinxcontrib-jsmath, sphinxcontrib-htmlhelp, sphinxcontrib-devhelp, sphinxcontrib-applehelp, soupsieve, snowballstemmer, six, setuptools, roman-numerals-py, pyparsing, Pygments, pyflakes, pycodestyle, platformdirs, pillow, pathspec, packaging, numpy, networkx, narwhals, mypy_extensions, mccabe, MarkupSafe, lxml, kiwisolver, joblib, isort, imagesize, idna, graphviz, fonttools, docutils, dill, cycler, coverage, charset_normalizer, chardet, certifi, babel, astroid, alabaster, scipy, requests, python-dateutil, pylint, plotly, mypy, Jinja2, javalang, flake8, deprecated, contourpy, beautifulsoup4, sphinx, scikit-learn, pandas, matplotlib, codecov, bs4, catboost, aibolit
Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 Pygments-2.19.2 aibolit-1.3.0 alabaster-1.0.0 astroid-3.3.11 babel-2.17.0 beautifulsoup4-4.8.2 bs4-0.0.1 cached-property-1.2.0 catboost-1.2.8 certifi-2025.11.12 chardet-5.2.0 charset_normalizer-3.4.4 codecov-2.1.13 contourpy-1.3.3 coverage-5.0.3 cycler-0.12.1 deprecated-1.2.10 dill-0.4.0 docutils-0.21.2 flake8-7.2.0 fonttools-4.60.1 graphviz-0.21 idna-3.11 imagesize-1.4.1 isort-6.1.0 javalang-0.13.0 joblib-1.5.2 kiwisolver-1.4.9 lxml-5.4.0 matplotlib-3.10.3 mccabe-0.7.0 mypy-1.18.2 mypy_extensions-1.1.0 narwhals-2.12.0 networkx-3.2 numpy-2.2.5 packaging-25.0 pandas-2.2.3 pathspec-0.12.1 pebble-4.5.3 pillow-12.0.0 platformdirs-4.5.0 plotly-6.5.0 pycodestyle-2.13.0 pyflakes-3.3.2 pylint-3.3.7 pyparsing-3.2.5 python-dateutil-2.9.0.post0 pytz-2025.2 requests-2.32.5 roman-numerals-py-3.1.0 scikit-learn-1.6.1 scipy-1.15.3 setuptools-80.7.1 six-1.17.0 snowballstemmer-3.0.1 soupsieve-2.8 sphinx-8.2.3 sphinxcontrib-applehelp-2.0.0 sphinxcontrib-devhelp-2.0.0 sphinxcontrib-htmlhelp-2.1.0 sphinxcontrib-jsmath-1.0.1 sphinxcontrib-qthelp-2.0.0 sphinxcontrib-serializinghtml-2.0.0 threadpoolctl-3.6.0 tomlkit-0.13.3 tqdm-4.32.1 typing_extensions-4.15.0 tzdata-2025.2 urllib3-2.5.0 wrapt-1.17.3
1m[0m34;49mnotice0m1;39;49m]0m39;49m A new release of pip is available: 0m31;49m23.2.10m39;49m -> 0m32;49m25.30m
1m[0m34;49mnotice0m1;39;49m]0m39;49m To update, run: 0m32;49mpip3 install --upgrade pip0m
aibolit 1.3.0
npx -y jest --config jest.config.ts --no-color --ci
1G0K⠙1G0KDetermining test suites to run...999DK
1A999DK
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1APASS test/aibolit.test.ts (5.154 s)
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1APASS test/safe.test.ts
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1APASS test/server.test.ts (6.502 s)
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1APASS test/tools.test.ts
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1APASS test/index.test.ts (5.527 s)
RUNS ...
1A
RUNS ...
1A
RUNS ...
1A
RUNS ...
1APASS test/to_gpt.test.ts
RUNS ...
1A999DKRunning coverage on untested files...999DK------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
------------|---------|----------|---------|---------|-------------------
All files | 98.11 | 100 | 90 | 100 |
aibolit.ts | 96.87 | 100 | 83.33 | 100 |
safe.ts | 100 | 100 | 100 | 100 |
server.ts | 100 | 100 | 100 | 100 |
to_gpt.ts | 100 | 100 | 100 | 100 |
tools.ts | 100 | 100 | 100 | 100 |
------------|---------|----------|---------|---------|-------------------
Test Suites: 6 passed, 6 total
Tests: 25 passed, 25 total
Snapshots: 0 total
Time: 21.994 s
Ran all test suites.
1G0K⠙1G0Knpx -y eslint . --config eslint.config.mjs
1G0K⠙1G0K1G0K⠙1G0Kmkdir -p temp
npx -y @modelcontextprotocol/inspector \
--config test/fixtures/claude-code-config.json \
--server aibolit \
--cli --method tools/list
1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K{
"tools": [
{
"name": "find_the_most_critical_design_issue",
"description": "Analyze one Java file. Find the most serious design flaw. It must need immediate refactoring. Ignore cosmetic or minor issues. Fix the one problem that will best improve code quality. Code quality means maintainability, readability, loose coupling, and high cohesion. Point out the problem and where it is in the file.",
"inputSchema": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
]
}
}
]
}
1G0K⠙1G0Knpx . --version
npx . --help
1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K1G0K⠙1G0K0.0.0
1G0K⠙1G0K1G0K⠙1G0K1G0K⠙1G0K⠹1G0K⠸1G0K⠼1G0K⠴1G0K⠦1G0K⠧1G0K⠇1G0K⠏1G0K⠋1G0K⠙1G0K⠹1G0K1G0K⠙1G0KMore details here: https://github.com/cqfn/aibolit-mcp-server
1G0K⠙1G0K1G0K⠙1G0Knpx -y tsc --target es2020 --module nodenext --outDir dist ./src/to_gpt.ts ./src/tools.ts ./src/server.ts ./src/safe.ts ./src/aibolit.ts ./jest.config.ts ./index.ts
1G0K⠙1G0K1G0K⠙1G0K+ mv /home/r/repo .
++ whoami
+ chown -R root repo
+ '[' -n '' ']'
++ whoami
+ sudo chown -R ubuntu repo
+ cd repo
+ git push origin master
remote:
remote: GitHub found 2 vulnerabilities on cqfn/aibolit-mcp-server's default branch (2 moderate). To find out more, visit:
remote: https://github.com/cqfn/aibolit-mcp-server/security/dependabot
remote:
To github.com:cqfn/aibolit-mcp-server.git
d76d79c..ef7ff7f master -> master
container 01f587057ccc6dde3f72073d70c5f9a123854b2c5e9dc69055624977312559dc is dead
Tue Nov 18 17:03:51 UTC 2025