[Question]
  [
# Problem
Recreate the UI from a torrent program
Given no input, output the following:
```
+----------+----------+----------+
|a.exe     |##########|seeding   |
+----------+----------+----------+
|b.exe 10% |#         |leeching  |
+----------+----------+----------+
|c.exe     |##########|seeding   |
+----------+----------+----------+
|d.exe 20% |##        |leeching  |
+----------+----------+----------+
|e.exe     |##########|seeding   |
+----------+----------+----------+
|f.exe 30% |###       |leeching  |
+----------+----------+----------+
|g.exe     |##########|seeding   |
+----------+----------+----------+
|h.exe 40% |####      |leeching  |
+----------+----------+----------+
|i.exe     |##########|seeding   |
+----------+----------+----------+
|j.exe 50% |#####     |leeching  |
+----------+----------+----------+
|k.exe     |##########|seeding   |
+----------+----------+----------+
|l.exe 60% |######    |leeching  |
+----------+----------+----------+
|m.exe     |##########|seeding   |
+----------+----------+----------+
|n.exe 70% |#######   |leeching  |
+----------+----------+----------+
|o.exe     |##########|seeding   |
+----------+----------+----------+
|p.exe 80% |########  |leeching  |
+----------+----------+----------+
|q.exe     |##########|seeding   |
+----------+----------+----------+
|r.exe 90% |######### |leeching  |
+----------+----------+----------+
|s.exe     |##########|seeding   |
+----------+----------+----------+
|t.exe     |##########|seeding   |
+----------+----------+----------+
|u.exe     |##########|seeding   |
+----------+----------+----------+
|v.exe     |##########|seeding   |
+----------+----------+----------+
|w.exe     |##########|seeding   |
+----------+----------+----------+
|x.exe     |##########|seeding   |
+----------+----------+----------+
|y.exe     |##########|seeding   |
+----------+----------+----------+
|z.exe     |##########|seeding   |
+----------+----------+----------+
```
progress for programs are:
`b=10% d=20% f=30% h=40% j=50% l=60% n=70% p=80% r=90%`
amount of `#`'s for leeching programs is `progress/10`
the rest are all `seeding` with full progress bars.
# Rules
* Leading and trailing newlines allowed.
* Leading and trailing spaces allowed as long as it doesn't change shape of output.
* stdout and functions for output allowed.
* **Shortest code in bytes win**
  
[Answer]
# [Perl 5](https://www.perl.org/), 130 bytes
```
print$e=("+"."-"x10)x3 ."+
";printf"|$_.exe%4s |%-10s|%-9s |
$e",$|--&&$@++<9?("$@0%","#"x$@,leeching):("","#"x10,seeding)for a..z
```
[Try it online!](https://tio.run/##JYnLCsIwFAX3/YpwvC0peZCiLuoD8yciequFUkvjIkj@PVbdDMPMxPOwzXma@/FFfJRQsDCIjavjWlioAvvf7JDobDlyuQkilaZxYWG7eEEMTcmYqiKv1KE9SZB3JTRWiOT1wHx99OO93kn8Y@N0YL59W/ecxcXad84f "Perl 5 – Try It Online")
I expect that there are a few bytes that can be golfed, but I've ran out of inspiration. 
Short explanations:  
`$e` contains the separation line (`+----------+----------+----------+`); its construction is straight forward (`("+"."-"x10)x3 ."+\n"`).  
Then, I loop over the characters from `a` to `z`:  
Every time, print `"|$_.exe%4s |%-10s|%-9s |\n$e`; this is a standard `printf` with placeholders for strings (`%s`) and left-padded strings (`%-9s`).  
if `$|--&&$@++<9` is true (`$|` is a special variable that contains either 0 or 1, and decrementing it toggles its value), then the percentage is not 100%, and the three values in the print are `"$@0%","#"x$@,leeching` (`$@0%` is actually just `$@ . "0" . "%"` - remember that `$@` was incremented earlier), otherwise, the three values are `"","#"x10,seeding`).
[Answer]
# [SOGL V0.12](https://github.com/dzaima/SOGL), ~~90~~ ~~89~~ 88 [bytes](https://github.com/dzaima/SOGL/blob/master/chartable.md)
```
ēz{L┌* +3ΟQķ|;o".exe ”oēI»L*"% |”e» #*lLκ@*"┌5%8'Ω⅞█≡θ¹‘++++e'³>e2\+?X"⅓m÷Ko→∆)№(¤^▒«‘}o
```
[Try it Here!](https://dzaima.github.io/SOGLOnline/?code=JXUwMTEzeiU3QkwldTI1MEMqJTIwKzMldTAzOUZRJXUwMTM3JTdDJTNCbyUyMi5leGUlMjAldTIwMURvJXUwMTEzSSVCQkwqJTIyJTI1JTIwJTdDJXUyMDFEZSVCQiUyMCUyMypsTCV1MDNCQUAqJTIyJXUyNTBDNSUyNTglMjcldTAzQTkldTIxNUUldTI1ODgldTIyNjEldTAzQjglQjkldTIwMTgrKysrZSUyNyVCMyUzRWUyJTVDKyUzRlglMjIldTIxNTNtJUY3S28ldTIxOTIldTIyMDYlMjkldTIxMTYlMjglQTQlNUUldTI1OTIlQUIldTIwMTglN0Rv)
Explanation:
```
ē                                 push variable E (default = input, which default is 0) and increase it after (next ē call will result in 1, or next e call - 2)
 z{                               iterate over the lowercase alphabet
   L┌*                            push 10 dashes
       +                          push "+"
        3Ο                        encase 3 copies of the dashes in pluses
          Q                       output in a new line, without popping and without disabling auto-output
           ķ|                     output in a new line "|"
             ;o                   output the current iteration (the alphabet letter)
               ".exe ”o           output ".exe "
                       ē          push E and increase the variable after
                        I         increase it
                         5*       multiply by 5 (every 2 ē calls this gets called)
                           "% |”  push "% |"
e»                                  push (E)/2
   #*                               get that mant "#"s
     l                              get the length of that string
      Lκ                            push 10-length
        @*                          push that many spaces
          "..‘                      push "|leeching  |"
              ++++                  add all those strings on the stack together ((e+1)*5, "% |", "#..#", " .. ", "|leeching |") (done this way to leave the "+-+-+-+" on the stack)
                  e'³>              push e>19
                      e2\           push e divides by 2
                         +          add together (here works like OR)
                          ?         if that then
                           X          remove the added-together string
                            "..‘      push "    |##########|seeding   |"
                                }   END
                                 o  output POP (either the added string or full/seeding version)
implicitly output POP (since none of tTpP were called), which is the separator line
```
[Answer]
## Charcoal, ~~98~~ ~~85~~ 83 bytes
```
Ｆ³Ｂ⁻³⁴×¹¹ι³Ｍ↘ .exeＭ⁶→×#χ|seeding⸿Ｆ²⁵Ｃ⁰¦²↗Ｆβ↓⁺ι-Ｆ⁹«Ｊ⁷⁺³×⁴ι⁺⁺ι¹0% |#Ｐ⁺× ⁹|leeching×#ι
```
I thought copying a template would save me a lot of code but it all seems to add up somehow, although I managed to save 13 bytes by using a single loop to fix the 9 leeching rows. Explanation:
```
Ｆ³Ｂ⁻³⁴×¹¹ι³             Make the top row of boxes
Ｍ↘ .exeＭ⁶→×#χ|seeding⸿  Print .exe, the 10 #s and seeding
Ｆ²⁵Ｃ⁰¦²                 Make 25 copies of the boxes
↗Ｆβ↓⁺ι-                 Put the letters in at the start
Ｆ⁹«                     For the 9 leeching files
   Ｊ⁷⁺³×⁴ι              Move the cursor to the percentage column
   ⁺⁺ι¹0% |#            Print the percentage and the first # of progress
   Ｐ⁺× ⁹|leeching       Erase the rest of the progress and change the status
   ×#ι                  Print the desired amount of progress
```
(Side note: I seem to have discovered a bug in Charcoal; `|` is an ASCII character, but it's also counted as an arrow for the purposes of `Multiprint`, so you can't `Multiprint` it.)
[Answer]
# [Python 2](https://docs.python.org/2/), 182 177 bytes
Thanks to @officialaimm for shaving off 5 bytes by changing the format of the condition.
```
r=("+"+10*"-")*3+"+"
for i in range(26):z=i/2+1;print r+"\n|"+chr(97+i)+".exe "+["    |"+10*"#"+"|seeding ",`10*z`+"% |"+z*"#"+(10-z)*" "+"|leeching"][i%2and i<19]+"  |"
print r
```
[Try it online!](https://tio.run/##LY3RCoIwGIXvfYqfP4TNP8stKKx8EhMUXTqIKcuLGr77mtW5Opxz@M70nofRSO9twZCQRJZgijw5BI/RfbSgQRuwjekVk0d@doXeSxKXyWozgyW8mQWpHSzLT6Q54U69FCCVCEHLj7gJsOWpVKdND7itQ@Zqwnjt3bdmIksdTxDW5UOpdghTrEody8Z0oK8irwhXYPR/9v4D "Python 2 – Try It Online")
[Answer]
# Javascript, ~~232~~ ~~230~~ ~~228~~ 226 bytes
```
(s='+----------'.repeat(3),p=0)=>[...'abcdefghijklmnopqrstuvwxyz'].map((c,i)=>(b=i%2,p=b?p+10:p,x=b&p<91,`${s}+'
|${c}.exe ${x?p+'%':'   '} |${'#'.repeat(x?p/10:10).padEnd(10)}|${x?'leeching':'seeding '}  |`)).join`
`+`
${s}+`
```
* -2 Bytes thanks to @Stephen S - Using default function parameters
* -2 Bytes thanks to OP - Replacing some spaces
* -2 Bytes thanks to @Shaggy - Destructuring alphabet string
## Demo
```
f=
(s='+----------'.repeat(3),p=0)=>[...'abcdefghijklmnopqrstuvwxyz'].map((c,i)=>(b=i%2,p=b?p+10:p,x=b&p<91,`${s}+'
|${c}.exe ${x?p+'%':'   '} |${'#'.repeat(x?p/10:10).padEnd(10)}|${x?'leeching':'seeding '}  |`)).join`
`+`
${s}+`
console.log(f());
```
```
.as-console-wrapper { max-height: 100% !important; top: 0; }
```
[Answer]
# [Braingolf](https://github.com/gunnerwolf/braingolf), ~~673~~ 655 bytes
```
9..#+[#-]#+[#-]#+[#-]"+
|"!&@V"a.exe     |"!&@V9[##]"|seeding   |
"!&@v!&@v<1+>!&@V8##[# ]"|leeching  |
"!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<$_##>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<$_##>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<$_##>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<$_##>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<$_##>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<<$_##>>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<<<$_##>>>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<<<<$_##>>>>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@vv<<<<<<<<<$_##>>>>>>>>>!&@v!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv!&@v<1+>!&@v!&@vv$_!&@;
```
[Try it online!](https://tio.run/##SypKzMxLz89J@//fUk9PWTtaWTcWmVTS5qpRUlRzCFNK1EutSFUAAYiAZbSycqxSTXFqagrQBJAwF0i8DIRtDLXtQGoslJWjlRWAqnJSU5MzwMowVYHZKAJlNjYq8crKdnbEqIQqJU4tTDFNVMOVE6seoYFoHUhaiNeDrIkEXSjaCOujmoBKPJCy/v8fAA "Braingolf – Try It Online")
I've said it before and I'll say it again: Braingolf is bad at ASCII art.
At least this is only 1/3rd of the bytes it would take to actually hardcode the output
[Answer]
# [PHP](https://php.net/), 179 bytes
without input
```
for($a=a;$x<53;++$x&1?:$a++)printf($x&1?"
|$a.exe%4s |%-10s|%-10s|
":str_pad("",34,"+----------"),($y=$x%4>2&$x<36?++$z:"")?$y."0%":"",str_repeat("#",$y?:10),$y?leeching:seeding);
```
[Try it online!](https://tio.run/##PY1BDoIwFET3nMJ8f0mbFgKCLgrYo5hGipAYbFoWYLg7FmOcxbzJLGZsb7da2eDdy1HUja5wrs9FxTnOca4kas6ZdcM4dfTbQLSiTs1sSOkPK0nyzP88Auknd7O6pQCiKAXw5C9gguLS4EzK6ykOH8VFhY@3BGAKlxQyAiGLfcEZa/RE4QgCFyXzjO18GnPvh/EhvTFtIKu27QM "PHP – Try It Online")
# [PHP](https://php.net/), 176 bytes
with input
```
for($a=a;$x<53;)printf($x&1?"
|$a.exe%4s |%-10s|%-10s|
":str_pad("",34,"+----------"),($y=strstr($argn,++$x&1?:$a++)[2])?$y."0%":"",str_repeat("#",$y?:10),$y?leeching:seeding);
```
[Try it online!](https://tio.run/##Pc7dqsIwDAfw@z2FxExaWmVz86sz7EEOB6muc4rM0u1iA999RjmcEH7/myTEN346lr7xEdpwbQnOlCbxrKI1W1PGNpSzd9qwD9qyLe1YT3s20CGJoZjqZxBoyRY4HDdZIX24tX0tcFikJUQvtCs3uDjvZq94mSbdnxGYrg8nbysBoLNcg1r@F0gtcCQe4Bbf/7RS34sGrVLyZ/0rSxxXwB8Y3v@cCs472wuYg8axNGkiP/lw7tLc2qvpnKs4ZTFNbw "PHP – Try It Online")
[Answer]
# [V](https://github.com/DJMcMayhem/V), 107 bytes
```
¬azÓ./|&.exeò
ddÎAµ |±°#|seeding³ |
ÙÒ-4ñr+11lñddç^/P
jp4G9ñ8|R00%3l10r llRleeching4jñV{10g
çä/WylWl@"r#
```
[Try it online!](https://tio.run/##AYEAfv92///CrGF6w5MuL3wmLmV4ZcOyCmRkw45BwrUgfMKxwrAjfHNlZWRpbmfCsyB8CsOZw5ItNMOxcisxMWzDsWRkw6deL1AKanA0RznDsTh8UjAwJRszbDEwciBsbFJsZWVjaGluZxs0asOxVnsxMGcBCsOnw6QvV3lsV2xAInIj//8 "V – Try It Online")
Hexdump:
```
00000000: ac61 7ad3 2e2f 7c26 2e65 7865 f20a 6464  .az../|&.exe..dd
00000010: ce41 b520 7cb1 b023 7c73 6565 6469 6e67  .A. |..#|seeding
00000020: b320 7c0a d9d2 2d34 f172 2b31 316c f164  . |...-4.r+11l.d
00000030: 64e7 5e2f 500a 6a70 3447 39f1 387c 5230  d.^/P.jp4G9.8|R0
00000040: 3025 1b33 6c31 3072 206c 6c52 6c65 6563  0%.3l10r llRleec
00000050: 6869 6e67 1b34 6af1 567b 3130 6701 0ae7  hing.4j.V{10g...
00000060: e42f 5779 6c57 6c40 2272 23              ./WylWl@"r#
```
[Answer]
# [Japt](https://github.com/ETHproductions/japt), 121 bytes
```
;'++(-p10 +'+ ³
1
U+R+C£W=Yv ªY>20?10:Y¥1?1:V±1"|{X}.exe {4î hW>9?S:W+"0%"}|{10î h'#pW}|{10î hW<10?`äƒÊA`:`Ð:ˆg`}|"+R+U+R
```
[Try it online!](https://tio.run/##y0osKPn/31pdW1tDt8DQQEFbXVvh0GYuQ65Q7SBt50OLw20jyxQOrYq0MzKwNzSwijy01NDe0Crs0EZDpZrqiFq91IpUhWqTw@sUMsLtLO2DrcK1lQxUlWprqg0NQILqygXhcE64jaGBfcLhJYeaD3c5JlglHJ5gdagjPaG2RgloF9C@//8B "Japt – Try It Online")
[Answer]
# [Ruby](https://www.ruby-lang.org/), 141 bytes
```
puts s=(?++?-*10)*3+?+,(?a..?z).map{|c|["|#{c}.exe%4s |%-10s|%-9s |"%(c.ord%2>0||($.+=1)>9?["",?#*10,:seeding]:["#$.0%",?#*$.,:leeching]),s]}
```
[Try it online!](https://tio.run/##HYzdCoIwGEBfRaaDzc2PrbpxoN@DiBc2RwX9iEuonM@@VjeHAwfOvBzfMU7L02e@YSgEVqVWvNwLFJLhAIAfDrdhWoMNHQn5ajdwL0cPPgu00son1skJZRYe80h3rQqBFSAazdsaO0Ik5ukpjXduvNxPvelIXoCi/1CANFfn7PlXuPT9FuMX "Ruby – Try It Online")
[Answer]
# [Java (OpenJDK 8)](http://openjdk.java.net/), ~~244~~ ~~229~~ ~~228~~ ~~227~~ ~~226~~ ~~224~~ ~~222~~ ~~218~~ 217 bytes
```
o->{String x="----------+",z="+"+x+x+x,s=z;for(int c=96,p;++c<123;s+=s.format("%n|%c.exe%4s |%-10s|%-10s|%n"+z,c,p>9?"":p+"0%","##########".substring(0,p),p>9?"seeding":"leeching"))p=(p=c/2-48)>9|c%2>0?10:p;return s;}
```
[Try it online!](https://tio.run/##PVBNb8IwDL3zK6xMlVIlzQpD06Ck3HabduA47RBCytKFNGpSxEf57V0LjGfJtt57tiyXYi@Syilbbn4716yNliCN8B4@hLbnEcCd9EGEvuwrvYFdL@FVqLXdfn2DqLc@HpwAZb@NNUEbVjRWBl1Z9n5vFp/rUslA4TaXQwEcuirJzzcCDhwlDxBETxwRRA5DUM9PWVHVWNsAks9eqcsIkYvx5CXzhHvWazsRMIpsG0mmDiqaemijZJz6/2wROVFJXT5bIjR3BKURoujpAcR8s/bXU3BKXXxzeqU2PYPmyCglf4Y2jh3HjsvnSTJ9i/NZK6NJni7H6dxltQpNbcFnly67PmR19EHtWNUE5vrVwVhcMOGcOWLbGBPHg@0yuoy6Pw "Java (OpenJDK 8) – Try It Online")
-2 bytes thanks to @KevinCruijssen!
[Answer]
# Plain TeX, 306 bytes
```
\let\a\advance\def\b{+\r{\r-9-+}3\par}\def\s{\r~5|\r\#9\#|seeding\r~3|}\def\r#1#2{{\i0\loop#1\a\i1
\ifnum\i<#2\repeat}}\newcount\i\i`a\newcount\j\j1\tt\loop\b|\char\i.exe\ifodd\i\s\else\ifnum\i<`s\
\the\j0\%~|\r\#\j{\j-\j \a\j10 \r~\j}\a\j1|leeching\r~2|\else\s\fi\fi\endgraf\a\i1 \ifnum\i<`\{\repeat\b\bye
```
Ungolfed with some explanations:
```
\let\a\advance
\def\b{+\r{\r-9-+}3\par}%           The bar between rows: '+' + 3*(9*'-' + '-' + '+') + '\n'
\def\s{\r~5|\r\#9\#|seeding\r~3|}%  The common part for seeding lines, similar to \b
\def\r#1#2{{%                       Macro for repeating #1 #2 times
% Note the local grouping here which is needed for nested \loops and allows us to reuse the global \i
  \i0%
  \loop
    #1%
    \a\i1 %
    \ifnum\i<#2%
   \repeat%
}}%                                 
\newcount\i \i`a%                   Counter for ASCII values of letters, start with 'a'
\newcount\j \j1%                    Counter for percentages; shorter than modulo tricks
\tt
\loop
  \b|\char\i.exe%
  \ifodd\i
    \s%                             Odd lines are seeding lines
  \else
    \ifnum\i<`s\ %                  Even line up to 'r'
      \the\j0\%~|\r\#\j%            Print percentage and progress bar
      {\j-\j \a\j10 \r~\j}%         10-\j spaces after the progress bar
      \a\j1%
      |leeching\r~2|%
    \else
      \s%                           There's no \ifeven, hence the repetition here
    \fi
  \fi
  \endgraf%                         Print '\n'. \par doesn't work here, because \loop isn't a \long macro
  \a\i1
  \ifnum\i<`\{%                     Repeat until \j <= 'z'
\repeat
\b
\bye
```
[Answer]
# [Python 3](https://docs.python.org/3/), 255 bytes
I'm sure this can be golfed, updating soon:
```
e,l='.exe ',('+'+10*'-')*3+"+";print(l)
for i in zip(['|'+chr(z)+e+'    |'+"#"*10+'|seeding   |'if z%2or z>115else'|'+chr(z)+e+str((z-96)//2*10)+'% |'+(z-96)//2*"#"+(10-(z-96)//2)*" "+"|leeching  |"for z in range(97,123)],[l]*26):print(i[0],i[1],sep="\n")
```
[Try it online!](https://tio.run/##VY9BasMwEEX3PYVQCKPRyIll04S0pBdxvSjpJBYIxchetMJ3d@UEEjrLB///N/3v2F1DPc9s/BE2/MMCjAICsqWGAlDXJEm@99GFUXl8OV@jcMIFkVyvGpiATl1UCYkJRL4M5EpqWxJMA/O3C5cbdWeR1lUOpw9rX9kP/C87jFGpVBx2uN1WOY0E66XryXIrKVsWD4Jaiqw2eeZTd5uZ5GKXFrv4FS6sDntjqxpb0/hWVzt8u7/hmrI1rrGtGbg/ys8gcZ7/AA "Python 3 – Try It Online")
[Answer]
# [Japt](https://github.com/ETHproductions/japt), 98 bytes
```
;27Æ4î+ ¬q-pU=10ÃíC¬£'|²¬q[X+".exe {W=Yu ©°T<U©T*U ?W+'%:P}"'#pW/UªU `äÊA Ð:g`¸g!W]m!hUî)q|})c ·
```
Doesn't work in the latest version due to a bug that messes up `4î+`, `q-p10`, and `q|`, but it does work in [commit `f619c52`](https://github.com/ETHproductions/japt/tree/f619c52d28277eaf279903146e832360384acb02). [Test it online!](http://ethproductions.github.io/japt/?v=f619c52d28277eaf279903146e832360384acb02&code=OzI3xjTuKyCscS1wVT0xMMPtQ6yjJ3yyrHFbWCsiLmV4ZSB7Vz1ZdSCpsFQ8ValUKlUgP1crJyU6UH0iJyNwVy9VqlUgYOSDykEg0DqIZ2C4ZyFXXW0haFXuKXF8fSljILc=&input=)
[Answer]
# T-SQL, 238 bytes
```
DECLARE @ INT=1,@D CHAR(11)='+----------'L:PRINT @D+@D+@D+'+
|'+CHAR(@+96)+'.exe '+IIF(@%2=0AND
@<20,CONCAT(@/2,'0% |',REPLICATE('#',@/2),SPACE(10-@/2),'|leeching  |'),'    |##########|seeding   |')SET @+=1IF @<27GOTO L
PRINT @D+@D+@D+'+'
```
Procedural solution, formatted:
```
DECLARE @ INT=1, @D CHAR(11)='+----------'
L:
    PRINT @D + @D + @D + '+
|' + CHAR(@+96) + '.exe ' + 
    IIF(@%2=0 AND @<20, 
       CONCAT(@/2,'0% |',REPLICATE('#',@/2),SPACE(10-@/2),'|leeching  |'),
       '    |##########|seeding   |')
   SET @+=1
IF @<27 GOTO L
PRINT @D + @D + @D + '+'
```
Everything in the loop (up until the SET) is part of the same PRINT statement, including a line break inside the first string literal.
I'm working on a set-based solution (create and populate a table, then SELECT from it), but I'm not sure if its going to be smaller or not.
[Answer]
# Java 8, ~~271~~ ~~263~~ 262 bytes
```
o->{String a="+----------",b=a+a+a+"+\n",r=b;for(int c=96,t;++c<123;r+="|"+(char)c+".exe "+(t>0?(c/2-48)+"0%":"   ")+" |##########".substring(0,t>0?c/2-46:12)+"         |".substring(t>0?c/2-49:9)+(t>0?"leeching":"seeding ")+"  |\n"+b)t=c<115&c%2<1?1:0;return r;}
```
All this trouble for nothing.. >.> ;)  
([Shorter Java answer by *@OliverGrégoire*](https://codegolf.stackexchange.com/a/128624/52210).)
**Explanation:**
[Try it here.](https://tio.run/##TVDRTsIwFH33K25qMF26zW0qkZXCF4gPPKoPXSkyHB1pO6JhfPu8g0k8bZPe3nNzTs9WHmRU77XZrr46VUnn4EWW5ngDUBqv7VoqDYu@BFh6W5pPUPS12GrloQ44vp/w4HZe@lLBAgwI6OpodhzoUhAWXUHCQkjWL8LeDQmtKPi6thTFQInJOPScMTVNswdumSAtYVRtpA0UI7H@1oC1nyVzqu6z6PE5YCQZkZygOYJ3aG@vILFrCne2QJOwnzmPjPM065l/aP/zrqxJPgkuQqTSWm2wiSpO61X/o7MUtGifFYEX6DZ9ulOjbJrO0zzhVvvGGrD81PFLNvumqDCbIaJDXa5ghyHTS0JvHyCDIeEf5/Uurhsf77HlqYkVNU1VBUPUp@4X)
```
o->{                       // Method with unused Object parameter and String return-type
  String a="+----------",b=a+a+a+"+\n",
                           //  Temp String "+----------+----------+----------+\n"
         r=b;              //  Result-String
  for(int c=96,t;++c<123   //  Loop from 'a' to 'z':
      ;                    //    After every iteration:
       r+=                 //     Append the result-String with:
         "|"               //      A literal "|"
         +(char)c          //      + the character
         +".exe "          //      + literal ".exe "
         +(t>0?            //      If the current character is below 's' and even unicode:
           (c/2-48)+"0%"   //       + the percentage
          :                //      Else:
           "   ")          //       + the spaces
         +" |##########"   //      + the progress bar
           .substring(0,   //       By using a substring from 0 to 
             t>0?          //        If the current character is below 's' and even unicode:
              c/2-46       //         'b' = 3; 'd' = 4; 'f' = 6; etc.
             :             //        Else:
              12)          //         12 (the entire progress bar)
         +"         |"     //      + spaces after the progress bar
           .substring(     //       By using a substring from
             t>0?          //        If the current character is below 's' and even unicode:
              c/2-49       //         'b' = 0; 'd' = 1; 'f' = 2; etc.
             :             //        Else:
              9)           //         9 (all the spaces)
         +(t>0?            //      If the current character is below 's' and even unicode:
           "leeching"      //       + literal "leeching"
          :                //      Else:
           "seeding ")     //       + literal "seeding "
         +"  |\n"          //      + literal "  |" + new-line
         +b)               //      + `b` ("+----------+----------+----------+\n")
  t=c<115&c%2<1?           //   If the current character is below 's' and even unicode:
     1                     //    `t` = 1
    :                      //   Else:
     0;                    //    `t` = 0
                           //  End of loop
  return r;                //  Return the result-String
}                          // End of method
```
[Answer]
# [Charcoal](https://github.com/somebody1234/Charcoal), 154 149 143 130 103 bytes
```
Ａ⁵δＦβ«Ｆ³«+χ»+⸿Ａ∨﹪δ²›δ⁹⁵θ|ι.exe⎇θ… ⁵⁺⁺ δ% ⁰|⎇θ…#χ⁺…#∕δχ… ⁻χ∕δχ⎇θ|seeding   |⸿↧|leeching  |⸿Ａ⁺⁵δδ»Ｆ³«+χ»+
```
[Try it online!](https://tio.run/##jVFNSwMxEL3vrxgiQgZTqcoeZE8FwYtFEY9e4mbcBpaEJm1Vuv3tcbJdIUUEDwMz7828@WpXOrRe9yktYrSdk7UCg0317gPIN4R9BcC@vMH9U7BuI8WFwOboXs2xOfygr4FxTp5kHoNcerPtvTTqGtV9IL2hwMFtjahgPeZOtYMoIlsyl/RJJflCwenwJdcKnrXrSAoQCmoWXBgjs2XAoBLnIBCLyvmfDX9rnrEm73YULbA7u7OGeAcmURUDLK3bRj6HOsnAkwGKNmKIRMa6DgAGvpuCB/9BodWR9YaeqF2NZOYmjemqeaA67zf@6FD96zOMppRmuzSL/Tc "Charcoal – Try It Online") (Link to verbose version.)
* 27 bytes saves thanks to Neil's master Charcoaling techniques.
[Answer]
# [05AB1E](https://github.com/Adriandmen/05AB1E), 120 bytes
```
AS".exe"«'A17×S9L‚ζJJðK€H©T*т%εD0Q_i'%«ëð3×}}‚ζεðýð«}®'#×T®-úí"leeching  seeding   "Tô®TQè)ζ'|ýε'|.ø}õ.ø'-T∍'+«3×'+ì¶.øý
```
[Try it online!](https://tio.run/##MzBNTDJM/f/fMVhJL7UiVenQanVHQ/PD04MtfR41zDq3zcvr8AbvR01rPA6tDNG62KR6bquLQWB8prrqodWHVx/eYHx4em0tWOG5rYc3HN57eMOh1bWH1qkrH54ecmid7uFdh9cq5aSmJmdk5qUrKBSnpqaAGQpKIYe3HFoXEnh4hea5beo1h/ee26peo3d4R@3hrUBSXTfkUUevuvah1UDz1bUPrzm0DSh6eO///wA "05AB1E – Try It Online")
---
There's way too much golfing to do here, will post explanation when I'm below 90 bytes.
[Answer]
# [Stax](https://github.com/tomtheisen/stax), ~~53~~ ~~68~~ 64 [bytes](https://github.com/tomtheisen/stax/blob/master/docs/packed.md#packed-stax)
```
â"{≤╞c~£ÿτδ¬│∙}Dgoô₧»öÖ#9▌ó♂i◘ÿkùâGCå`è╙/♠Gδb,φW0EqΔ┘δth½àJZ¿l╦#
```
[Run and debug it](https://staxlang.xyz/#p=83227bf3c6637e9c98e7ebaab3f97d44676f939eaf94992339dda20b6908986b9783474386608ad32f0647eb622ced57304571ffd9eb7468ab854a5aa86ccb23&i=)
Unpacked and ungolfed it looks like this.
```
'+'-A*+34:mQ
VaF
  '|p
  ".exe "+
  |;i^hA?X 
  $.0%+
  xA<Y*+G
  '#x*G
  `Qz/"D?d=T"`jy@G
  zP
  Q
}A(p'|p
```
Note that if you use the "Golf" button to remove whitespace and comments from the expanded solution, it incorrectly doubles the `}`. If you remove the extra character, it continues to work correctly.
[Answer]
# [Python 2](https://docs.python.org/2/), ~~172~~ ~~170~~ 162 bytes
-8 bytes thanks to Lynn
```
for i in range(2,28)+[id]:print('+'+'-'*10)*3+'+';a=i/2;b=i%2*(i<20);print('|'+'%-10s|'*3)%('%c.exe '%(95+i)+'%d0%%'%a*b,'#'*(a*b or 10),'sleeeedcihnign g'[b::2])
```
[Try it online!](https://tio.run/##LY7NCoMwEIRfJVCWTWJs40qh1fok4sGfVBdKFPXQgu@eptCZy8A3DLN89mn2FMJzXgUL9mJt/egkGbqppOahKZaV/S4xiU5RZ1bp/JfLtuILlV3FQFryg6wq/9UjYkgzux2ocwUSoT@7txMI8n5NWEU6WACEVncGT6hlDCIeiOMGt5eLGnqePI9ejFh3RUGNCuEL "Python 2 – Try It Online")
[Answer]
# [C (gcc)](https://gcc.gnu.org/), ~~217~~ 211 bytes
-6 bytes thanks to ceilingcat
```
#define B"+----------"
f(p){for(char*a,*l=" bdfhjlnpr",i=97;puts(B B B"+"),i<'{';printf("|%c.exe %.*d%s |%-10.*s|%s  |\n",i++,!!a,p%10,a?"0%":"   ",p=a?a-l:10,"##########",a?"leeching":"seeding "))a=index(l,i);}
```
[Try it online!](https://tio.run/##PU/BCsIwFLv7Fc8nxXbrxjyJziHsO7zU9nWr1Fo2BcH57bO7mFMISUh00Wk9zxtD1gWCFvPiD1xZHsXHPgauezVkSma@Qbga2998iANK1xz2dXw9R95Cu4RRSHfafrZ1HFx4Wo4T0yW9CViZGTbCxIpdVWbjlDhMl5Aq8lyu10pGtqukOmPF8IgAgDI26qwKf0w6bv7AxeSJdO9Cl6wjkUkMUAjVuGDozb10ov7OaQDclQs8XeCL8AM "C (gcc) – Try It Online")
[Answer]
# [///](https://esolangs.org/wiki////), 264 bytes
```
/~/\/\///!/---~@/!!!-~$/@+@+@~</+
|~>/|
+~(/###~*/  ~}/|leeching*~[/.exe ~;/0% |~{/[**|(((#|seeding* ~]/>$</+$<a{]b[1;# ****}]c{]d[2;##****}]e{]f[3;( ***}]g{]h[4;(#***}]i{]j[5;(## **}]k{]l[6;((**}]m{]n[7;#((* }]o{]p[8;##((*}]q{]r[9;((( }]s{]t{]u{]v{]w{]x{]y{]z{>$+
```
[Try it online!](https://tio.run/##JczZTsNADAXQ937FRBOk0UTB7Iumivof5j6UdmgKoSxhKXjiXw@T4vt05Gv33bJvYz@OpHSXQ1RQXde6oKIoai1pUeXonKpZ0obSrFJH1lr1ZIwOlLoYV@12t/HKdBz30WigkyOTVIi9T845m/oY11PFKKgp869yvhTc82mwxucZsBKs@SxY@88oeODz4MxBG0HLF8HZg7aCR77Mmm4HPAk6vgrOTXgW7Pg62Cwz4EXwyjf5aeaAN8E73@aiy6te8CH4FHwJvgV7wY/gV5qyGsc/ "/// – Try It Online")
Works by defining a bunch of replacements and using them to replace more characters than they are.
[Answer]
# Mathematica, 274 bytes
```
a=Alphabet[];n=StringPadRight;o=ToString;Column@Join[Row/@Table[{g="+----------+----------+----------+\n","|"<>o@a[[i]]<>".exe ",If[EvenQ@i&&i<20,s=o[5i]<>"% ";k="|"<>Table["#",i/2];f="leeching";,k="|##########";f="seeding";s="    "];s,n[k,11]<>"|",n[f,10],"|"},{i,26}],{g}]
```
[Answer]
# [Bubblegum](https://esolangs.org/wiki/Bubblegum), 150 bytes
```
00000000: e007 3d00 8c5d 0015 8b71 ec14 6414 8031  ..=..]...q..d..1
00000010: 7fc3 2b24 3568 ca81 7ab5 363e c3b7 f500  ..+$5h..z.6>....
00000020: c926 d3f0 55d9 926f 75a8 f8d0 806f 1f12  .&..U..ou....o..
00000030: d71f b824 7e75 a7f2 544f 0364 ee5e 98be  ...$~u..TO.d.^..
00000040: a327 c36c 2ff1 8e6e df94 858e 82d0 d9da  .'.l/..n........
00000050: 77d6 fac6 5548 64aa 7a29 78fa 6886 3c85  w...UHd.z)x.h.<.
00000060: 0494 905e 74de a209 e927 42c8 418d 8250  ...^t....'B.A..P
00000070: ee39 c16b a4c2 9add 0b17 f8b0 9984 9aa8  .9.k............
00000080: defb 2875 31a9 c136 0ec2 6f28 9f8c 9990  ..(u1..6..o(....
00000090: 10d4 0000 0d0a                           ......
```
[Try it online!](https://tio.run/##ddG7alZBFAXg3qdYRTARYTv32SMqaGWnhSkNzDWBRIPgj5LCV/9dJzmGNO7iwBTnmzVrt0NrN/Py8O14NPu8xjQmww9joD0OGGMjtGWL2W1ACvyo8RYQeSvyVUR@iAwR@@xBsDTy6h6uuQAfk6JXtci1RfjkJ7pvGSvyBhovT@KVyJ2kd5RkNxyNXlzC8MsgxlHA00KOVbF0MJvh0S7raDwXORe5PWzA7aPhaYxsF5oyR545oublEENYMD4FzBknira55ZCTPwS@fOJTLh6NQKN6lxk5dbi1LHSmibEKW4g6oY5hRhmVxqncvBL5LvvsRtz6yCNh1Z74lqAssVb24QqyroqkmuC7RuAX/zv/OOTuxW@5kjf/jETDBN5ZDCPnMCaqMwWzMFtwXRGsDoaJ953Kxc8twOkHeS/yeTfyttvpC7pNDTV0h1IHF9wst6HNoBTlDZUVQ4pcy5PZDd06navBKev0tm6aTzCTWlpOUZZ2QuU@x9nBiiQu5eyJUWhYMwK2A8wwrO6/83D78fgX "Bubblegum – Try It Online")
[Answer]
## Perl6, ~~225~~ 219
```
my&f={say ("+"~"-"x 10)x 3~"+"};my&g={f;my$b=$^c>9??"   "!!$c*10~"%";say "|$^a.exe $b |{'#'x$c}{' 'x(10-$c)}|$^d  |"};my \s="seeding ";for 1..9 {g chr(95+2*$_),10,s;g chr(96+2*$_),$_,"leeching"};g $_,10,s for "s".."z";f
```
[Answer]
# Lua, 380 bytes
```
s=string.gsub
r=string.rep
function l(i)return".exe "..i.."0% |"..r("#",i)..r(" ",10-i).."|leeching  |\n"end
print((s(s("Z|aY|b"..l(1).."Z|cY|d"..l(2).."Z|eY|f"..l(3).."Z|gY|h"..l(4).."Z|iY|j"..l(5).."Z|kY|l"..l(6).."Z|mY|n"..l(7).."Z|oY|p"..l(8).."Z|qY|r"..l(9).."Z|sY|tY|uY|vY|wY|xY|yY|zY","Y",".exe     |##########|seeding   |\nZ"),"Z","+----------+----------+----------+\n")))
```
Uses `gsub` to create the row dividers and the seeding rows. `l` generates the leeching rows. Renaming `gsub` and `rep` saves more bytes.
[Answer]
# [Jstx](https://github.com/Quantum64/Jstx), 126 [bytes](https://quantum64.github.io/Jstx/codepage)
```
►-○EO.♥/(:►+:1►+;+₧D0%4►|22♫♥φézï2♂bdfhjlnpr♀*U!↑)☺:♣<!,♂% |♀:2&₧#=-₧#/')▬►#◙')§► ◙21♫♠~√╫WσΓÇ2◙↓♫♥¿Ç~√₧#/►#:1♫♣~√▐┬╞¿:2◙►|41%
```
[Try it online!](https://quantum64.github.io/Jstx/JstxGWT-1.0.2/JstxGWT.html?code=4pa6LeKXi0VPLuKZpS8oOuKWuis6MeKWuis7K%24KCp0QwJTTilrp8MjLimavimaXPhsOpesOvMuKZgmJkZmhqbG5wcuKZgCpVIeKGkSnimLo64pmjPCEs4pmCJSB84pmAOjIm4oKnIz0t4oKnIy8nKeKWrOKWuiPil5knKcKn4pa6IOKXmTIx4pmr4pmgfuKImuKVq1fPg86Tw4cy4peZ4oaT4pmr4pmlwr_Dh37iiJrigqcjL%24KWuiM6MeKZq%24KZo37iiJrilpDilKzilZ7Cvzoy4peZ4pa6fDQxJQ%3D%3D)
Explanation
```
►-          # Push literal -
○           # Push literal 9
E           # Push the second stack value the absolute value of the first stack value times.
O           # Collapse all stack values into a string, then push that string.
.           # Store the first stack value in the d register.
♥           # Push literal 3
/           # Enter an iteration block over the first stack value.
(           # Push the value contained in the d register.
:           # Push the sum of the second and first stack values.
►+          # Push literal +
:           # Push the sum of the second and first stack values.
1           # End an iteration block.
►+          # Push literal +
;           # Push the difference of the second and first stack values.
+           # Store the first stack value in the a register.
₧D          # Push literal abcdefghijklmnopqrstuvwxyz
0           # Enter an iteration block over the first stack value and push the iteration element register at the beginning of each loop.
%           # Push the value contained in the a register.
4           # Print the first stack value, then a newline.
►|          # Push literal |
2           # Print the first stack value.
2           # Print the first stack value.
♫♥φézï      # Push literal .exe 
2           # Print the first stack value.
♂bdfhjlnpr♀ # Push literal bdfhjlnpr
*           # Push the value contained in the iteration element register.
U           # Push a true if the second stack value contains the first stack value, else false.
!           # Push a copy of the first stack value.
↑           # Enter a conditional block if first stack value exactly equals true.
)           # Push the value contained in the iteration index register.
☺           # Push literal 1
:           # Push the sum of the second and first stack values.
♣           # Push literal 5
<           # Push the product of the second and first stack values.
!           # Push a copy of the first stack value.
,           # Store the first stack value in the b register.
♂% |♀       # Push literal % |
:           # Push the sum of the second and first stack values.
2           # Print the first stack value.
&           # Push the value contained in the b register.
₧#          # Push literal 10
=           # Push the quotient of the second and first stack values.
-           # Store the first stack value in the c register.
₧#          # Push literal 10
/           # Enter an iteration block over the first stack value.
'           # Push the value contained in the c register.
)           # Push the value contained in the iteration index register.
▬           # Enter a conditional block if the second stack value is less than the top stack value.
►#          # Push literal #
◙           # End a conditional block.
'           # Push the value contained in the c register.
)           # Push the value contained in the iteration index register.
§           # Enter a conditional block if the second stack value is greater than or equal to the top stack value.
►           # Push literal  
◙           # End a conditional block.
2           # Print the first stack value.
1           # End an iteration block.
♫♠~√╫WσΓÇ   # Push literal |leeching  
2           # Print the first stack value.
◙           # End a conditional block.
↓           # Enter a conditional block if first stack value exactly equals false.
♫♥¿Ç~√      # Push literal     |
₧#          # Push literal 10
/           # Enter an iteration block over the first stack value.
►#          # Push literal #
:           # Push the sum of the second and first stack values.
1           # End an iteration block.
♫♣~√▐┬╞¿    # Push literal |seeding   
:           # Push the sum of the second and first stack values.
2           # Print the first stack value.
◙           # End a conditional block.
►|          # Push literal |
4           # Print the first stack value, then a newline.
1           # End an iteration block.
%           # Push the value contained in the a register.
            # Implied println upon termination.
```
I'm sure this can get significantly shorter.
[Answer]
# [///](https://esolangs.org/wiki////), 226 bytes
```
/;/ "//:/$$$+//,/0% |//*/###//)/   //(/!
|//'/,*//&/.exe //$/+----------//"/ |leeching  |
:
|//!/&) |***#|seeding)|
:/:
|a(b&1,#)) ;c(d&2,##));e(f&3'))"g(h&4'#) ;i(j&5'##);k(l&6'*)"m(n&7'*# ;o(p&8'*##;q(r&9'**"s(t(u(v(w(x(y(z!
```
[Try it online!](https://tio.run/##PctJVsMwEATQfU7Rlkyr1TEphjBFpwmJiAMmA2IIPN3dNBtqVa/@qzIsS5/LOCKBHLBA27ZToMPFGVVA4b0HIogIEDQTGwM6BRizfMq2tpie/wdwoDrkvOq3uw1RnSz@Lg04UlVVX0vOa6NoArOlPPJl52OktJI1X3XeesryxNchRreRnufBm27lmW@CaXqRgW@DRvcqO74L6int5cD31nw6yhs/BFVX5F0@5FO@5CTf8tOM4y8 "/// – Try It Online")
A bit more sophisticated approach to defining replacements. [Try it interactively here!](http://conorobrien-foxx.github.io/slashes?JTJGJTNCJTJGJTIwJTIyJTJGJTJGJTNBJTJGJTI0JTI0JTI0JTJCJTJGJTJGJTJDJTJGMCUyNSUyMCU3QyUyRiUyRiolMkYlMjMlMjMlMjMlMkYlMkYpJTJGJTIwJTIwJTIwJTJGJTJGKCUyRiElMEElN0MlMkYlMkYnJTJGJTJDKiUyRiUyRiUyNiUyRi5leGUlMjAlMkYlMkYlMjQlMkYlMkItLS0tLS0tLS0tJTJGJTJGJTIyJTJGJTIwJTdDbGVlY2hpbmclMjAlMjAlN0MlMEElM0ElMEElN0MlMkYlMkYhJTJGJTI2KSUyMCU3QyoqKiUyMyU3Q3NlZWRpbmcpJTdDJTBBJTNBJTJGJTNBJTBBJTdDYShiJTI2MSUyQyUyMykpJTIwJTNCYyhkJTI2MiUyQyUyMyUyMykpJTNCZShmJTI2MycpKSUyMmcoaCUyNjQnJTIzKSUyMCUzQmkoaiUyNjUnJTIzJTIzKSUzQmsobCUyNjYnKiklMjJtKG4lMjY3JyolMjMlMjAlM0JvKHAlMjY4JyolMjMlMjMlM0JxKHIlMjY5JyoqJTIycyh0KHUodih3KHgoeSh6IQ==)
[Answer]
# [Pascal (FPC)](https://www.freepascal.org/), ~~294~~ ~~286~~ ~~266~~ 263 bytes
```
const m='----------+';Q=#10'+'+m+m+m+#10;S='.exe     |##########|seeding   |'+Q;var i:word;begin write(Q);for i:=1to 9do write('|',chr(95+i*2),S,'|',chr(96+i*2),'.exe ',i,'0% |',StringOfChar('#',i),'|leeching  |':22-i,Q);for i:=115to 122do write('|',chr(i),S)end.
```
[Try it online!](https://tio.run/##ZY5RCoMwDIavUpARXevQggMtPu0AQzyBq1ELakeVbQ@9u6tzyGB/nvIl4cu9mmTVh81dLovU4zSTIYdwDwVR5F4cAQU6fMo1oszhhC8ka6y3x06ItRrblQItxKMyRGVPbWpxw1aN5GnUjH4RiEavkzyeNUlr/eVggcnO@GlC1ZEHrGQ7OW9kswJTDKKDc7ByNs53bS5dZXzw3MQt2R5Rdp8/LGSch4r9KOPESWPO/7TutAxwrE/L8gY "Pascal (FPC) – Try It Online")
So... I ended up with both leading and trailing newline :D
[Answer]
# [PowerShell](https://github.com/TryItOnline/TioSetup/wiki/Powershell), ~~224~~ ~~210~~ ~~181~~ ~~174~~ ~~169~~ 160 bytes
```
$l=("+"+"-"*10)*3+"+
"
0..25|%{"$l|$([char](97+$_)).exe "+("    |$("#"*10)|seeding ",("$(++$c/2)0% |{0,-10}|leeching"-f("#"*($c/2))))[$_%2-and$_-lt18]+"  |"}
$l
```
[Try it online!](https://tio.run/##HU5dC4JAEHz3VxzbCnueZ6cR1UO/RERENw0OCw0KPH@7Lc68DMwH8359eZoH9n7b0N8JjNBCkjudnERHELksK84hXgB9QCrboZkqul0M1lpn/GMFhkAJxIXDXg0zc/ccewUpAZIx2B4L7WIVFpfa3K3BM7eDJMA@9hLtCUGJdVzYZuywtv6TXysj2wHWCOXhHw "PowerShell – Try It Online")
Now 64 bytes less terrible
Some Neat tricks: Combining a lot of "$(stuff)" to save on parens. We want only odd numbers which makes $\_%2 = 1 so we don't need an -eq for it. Now uses list indexing instead of an if-else to save 5 bytes. Also gets rid of an `n for another byte. I couldn't get "$c`0%" to separate the var and zero so the current route was 1 byte shorter than gluing two strings together. Now with -f formatting.
]