• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 10:23
CET 16:23
KST 00:23
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
SC2 All-Star Invitational: Tournament Preview3RSL Revival - 2025 Season Finals Preview8RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2
Community News
BSL Season 2025 - Full Overview and Conclusion3Weekly Cups (Jan 5-11): Clem wins big offline, Trigger upsets4$21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7)15Weekly Cups (Dec 29-Jan 4): Protoss rolls, 2v2 returns7[BSL21] Non-Korean Championship - Starts Jan 104
StarCraft 2
General
SC2 All-Star Invitational: Tournament Preview Stellar Fest "01" Jersey Charity Auction Weekly Cups (Jan 5-11): Clem wins big offline, Trigger upsets When will we find out if there are more tournament SC2 Spotted on the EWC 2026 list?
Tourneys
SC2 All-Star Invitational: Jan 17-18 OSC Season 13 World Championship SC2 AI Tournament 2026 Sparkling Tuna Cup - Weekly Open Tournament $21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7)
Strategy
Simple Questions Simple Answers
Custom Maps
Map Editor closed ?
External Content
Mutation # 508 Violent Night Mutation # 507 Well Trained Mutation # 506 Warp Zone Mutation # 505 Rise From Ashes
Brood War
General
BW General Discussion BSL Season 2025 - Full Overview and Conclusion [ASL21] Potential Map Candidates BGH Auto Balance -> http://bghmmr.eu/ StarCraft & BroodWar Campaign Speedrun Quest
Tourneys
[BSL21] Non-Korean Championship - Starts Jan 10 Small VOD Thread 2.0 Azhi's Colosseum - Season 2 [Megathread] Daily Proleagues
Strategy
Soma's 9 hatch build from ASL Game 2 Simple Questions, Simple Answers Game Theory for Starcraft Current Meta
Other Games
General Games
Stormgate/Frost Giant Megathread Beyond All Reason Awesome Games Done Quick 2026! Nintendo Switch Thread Mechabellum
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Canadian Politics Mega-thread European Politico-economics QA Mega-thread Things Aren’t Peaceful in Palestine
Fan Clubs
Media & Entertainment
Anime Discussion Thread [Manga] One Piece
Sports
2024 - 2026 Football Thread
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List
Blogs
My 2025 Magic: The Gathering…
DARKING
Physical Exercise (HIIT) Bef…
TrAiDoS
Life Update and thoughts.
FuDDx
How do archons sleep?
8882
James Bond movies ranking - pa…
Topin
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1187 users

SC2 Ladder Analysis: Part 2 - Page 7

Forum Index > SC2 General
Post a Reply
Prev 1 5 6 7 8 9 21 Next All
taffy
Profile Joined June 2010
United States28 Posts
August 12 2010 22:41 GMT
#121
Excellent post.

I'd like to weigh in on a couple of things. (very long winded, sorry -_-)

First, the "favored" notices on the loading screen are almost certainly based on your display rating compared to your opponent's MMR. This is (as previously mentioned) deceptive, because it is not based on the expected probability that you will win or lose. The evidence for this is that these notices give a preview of points at stake during this game. If you see "even match", you can expect there to be ~10-14 points at stake. "slightly favored" will get you something like -6/10 on a loss or +14-18 on a win, likewise vs a "favored" opponent you can expect -2/6 or +18/22 (all ballpark numbers). If everyone watched for this for a few games, we'd have all the evidence we needed.

About the display rating being "meaningless" or "fluff" or "wrong". Think of it this way: MMR is a quick and dirty search, attempting to locate your current skill level as fast as possible. It is likely to be very inaccurate at times, but is very valuable for quickly separating out the people who are several standard deviations outside the pack. If your MMR is extremely stable, your display rating will eventually converge with it. If (and this is more likely) your MMR tends to jump around quite a bit, your display rating acts as a damping mechanism to give you a much more stable indication of your overall performance level.

The problem is that it might take a hundred or a couple hundred games for the (very damped) display rating to reach the appropriate range for your skill level, which leads a lot of people to freak out about it. Once players get to the 1300-1500 range, expect to see more separation between the top players. That being said, I would like to see bonus pool points stop being accumulated after the ~800-1000 rating mark to take away any incentive to abuse them for ladder whores.

About promotions, I'm pretty confident in the "checkpoint" theory at this point, but it's still a pretty big mystery after the first check. I can understand the logic behind this, especially because the MMR sigmas are ridiculously huge for new players (example: guy with 15 games played on the silly and ill-conceived blizzard top 200 list). It seems pretty well established that the first checkpoint is at ~8 losses, but after that it's pretty fuzzy. To offer a data point from myself, I tanked my placements and landed in silver. After a rocky start, I was promoted to gold after my 8th loss (i was 12-8). A series of wins ended in 4 games in a row vs diamond players, ending in 4 losses, and I went to plat at ~20/12. I'm now matching against ~4-500 rated diamond players and reached my 16th loss, but have yet to be promoted at ~38/16 in plat.
Shadowed
Profile Joined August 2010
United States679 Posts
August 12 2010 22:53 GMT
#122
Hrm I wonder, Excalibur_Z would it be any use to you for finding the checkpoints if you had a mass quantity of data? I could hookup something to the workers so whenever it sees a team change leagues it saves their points/wins/losses. The only difficulty is that number isn't going to be 100% accurate since they might get promoted and immediately play games.
Excalibur_Z
Profile Joined October 2002
United States12240 Posts
August 12 2010 23:19 GMT
#123
On August 13 2010 07:53 Shadowed wrote:
Hrm I wonder, Excalibur_Z would it be any use to you for finding the checkpoints if you had a mass quantity of data? I could hookup something to the workers so whenever it sees a team change leagues it saves their points/wins/losses. The only difficulty is that number isn't going to be 100% accurate since they might get promoted and immediately play games.


I think that would give us a rough estimate as to where these checkpoints and/or league thresholds might be. It's certainly better than nothing. I'm not entirely sure how we would graph it out, or track match history (since that's very important), but throwing around some arbitrary estimated MMRs and breakpoints we might be able to come up with something.
Moderator
vanick
Profile Joined August 2010
United States53 Posts
August 14 2010 08:22 GMT
#124
An update, with pictures! Shadowed was kind enough to provide me with a data set of promotions as captured by his data scraper. Thanks to him for making these possible.

Shadowed's scraper runs every so often, and when it detects that a player's league has changed it will record the player's state at that update and the previous update. For example, if the last time the scraper grabbed my stats my W/L record was 10-3, and the current time it grabs it my league has changed and my record is now 17-5, it knows that somewhere in there I had a promotion/demotion. It doesn't know precisely where, just the range of 9 games. I've taken this data and made a set of graphs.

The following graphs are of the combined games played. They include ALL league changes, both promotions and demotions. I will graph them out individually when I'm not half asleep, but I do not think they will vary too much.

The easiest 3 ways to look at this are with the previous games played, the current games played (that is, games played at update time), and the average of the two. Here is a chart combining all 3 across all the data we have currently (there are some hard to see outliers past the 600 games point):
[image loading]

A smaller slice excluding the long tail that decreases past the end of the image:
[image loading]

The total dataset is roughly 23,000 promotions/demotions. Past the 100 game mark less than 1,800 promotions/demotions occured.

What inferences can we draw from this data?
- Obviously there are no data points at <5 games due to placements.
- There appears to be a definite checkpoint where the system reviews a player's rating at around 22-26 games.
- There is a bump in the promotions at around 15 games played. I'd need to examine it more when I'm not all sleepy.
- It appears that there are no static (or clustered, anyways) checkpoints after the 25ish check.
- After about 100 games played the system appears to have about 95% accuracy with regard to league placement.
marcusklaas
Profile Joined August 2010
Netherlands81 Posts
August 14 2010 13:01 GMT
#125
Great write up! It has a good mathematical foundation and solid reasoning. I think you are very close to the truth here on a lot of this. Makes me wonder: why doesn't Blizzard disclose a lot more about its rating system? Is it to protect their intellectual property, or for the players?
Never give up, never surrender!
Alexstrasas
Profile Joined August 2010
302 Posts
August 14 2010 15:32 GMT
#126
HOLY SH1T

never saw that much geekness together
kasik047
Profile Joined May 2010
United States33 Posts
August 14 2010 17:18 GMT
#127
That's ex-wow players for ya, with their neat graphs and indepth maths.
jamesltl
Profile Joined July 2010
Malaysia159 Posts
August 15 2010 02:51 GMT
#128
wow a big hand for good math!
CellaWerra - "Holy Check"
vanick
Profile Joined August 2010
United States53 Posts
August 15 2010 09:20 GMT
#129
Got a new update to the promotions data. This time the dataset is 56.5k league changes, around twice what we had before.

I'm not going to post the full graph unless someone really wants to see it; it looks the same as the first full graph here and all the interesting stuff happens in the 5-60 games slice.

Updated Graph:
[image loading]

The results are pretty similar to last time. The bump at the 12-15 game mark is a little more pronounced. After hearing an interesting argument, it's possible there is no checkpoint at 30 games. It's possible that the majority of players have their MMR/sigma criteria fall within certain levels by that point as the system converges quickly.
johnnyD
Profile Joined August 2007
United States78 Posts
August 15 2010 13:28 GMT
#130
That's cool and all, but I really cant read that. I was just wondering out of curiosity how I still cant get out of 2v2 gold even though me and teammate are 300 points above anyone else in north america.... then again, you did explain it probably, its just your explanation is too technical and confusing. Kind of like the fear of picking up calculus 3.

http://sc2ranks.com/char/us/268968/kingJY
Ketara
Profile Blog Joined August 2010
United States15065 Posts
Last Edited: 2010-08-15 14:48:57
August 15 2010 14:33 GMT
#131
I have a question for these mathers, in regards to bonus pool. It may have been answered already.

If the hypothesis that bonus pool is discounted in the matchmaking calculation is true, then in order to reach #1 in your division, wouldn't the best way to go about it be to not play games for a significant period of time before you start playing games?

The question basically is, does your MMR and sigma remain constant while you are not playing games. If that were the case, then by stocking up bonus pool, you would be gaining more perceived points, without increasing the skill level of the people you play. This would allow you to quickly rise in your division without risking a streak of losses to higher skilled players.

I imagine being top in division doesn't matter much to the really hardcore people, but to more casual players it probably does. To that end, giving more casual players an advantage in bonus pool seems a neat trick.


As an edit: I have a little bit of familiarity with GLICKO since I do a lot of tabletop wargaming and we've had leagues governed by GLICKO before, and I seem to remember the uncertainty factor in GLICKO increases if you go a long period of time without playing games.


And a second question, while I think of it.

Does bonus pool accumulate from launch, or from when somebody registers an account? I bought my copy launch day, but if new accounts gain bonus pool from the time the account was registered, it may be much harder for the system to track and discount it. Just a thought.
http://www.liquidlegends.net/forum/lol-general/502075-patch-61-league-of-legends-general-discussion?page=25#498
Excalibur_Z
Profile Joined October 2002
United States12240 Posts
August 16 2010 16:45 GMT
#132
On August 15 2010 23:33 Ketara wrote:
I have a question for these mathers, in regards to bonus pool. It may have been answered already.

If the hypothesis that bonus pool is discounted in the matchmaking calculation is true, then in order to reach #1 in your division, wouldn't the best way to go about it be to not play games for a significant period of time before you start playing games?


I'm not sure why you think that is. The fewer games you have, the greater your MMR volatility. It's not like you would skate up the rankings with a massive bonus pool because whoever is in that #1 position has likely (a) fought all the top players that you would inevitably fight with a volatile MMR and (b) consumed all of his bonus pool. Remember that Bonus Pool replenishes at a constant rate for everyone regardless of their activity level (yesterday when I was playing I actually saw my bonus pool increase by one point at 9:19pm).

The question basically is, does your MMR and sigma remain constant while you are not playing games. If that were the case, then by stocking up bonus pool, you would be gaining more perceived points, without increasing the skill level of the people you play. This would allow you to quickly rise in your division without risking a streak of losses to higher skilled players.


MMR remains constant over periods of inactivity but sigma does not. The system doesn't know if you'll come back from a break refreshed and improved or out of practice and sloppy, so an increase in sigma reflects this. Again, ignoring bonus pool for a moment, if you're at an average level then you'll inevitably play against people that give you a 50-50 record. If most of the time these turn out to be even matches with even results, your rating would stagnate. The bonus pool just prevents this stagnation for active players.

I imagine being top in division doesn't matter much to the really hardcore people, but to more casual players it probably does. To that end, giving more casual players an advantage in bonus pool seems a neat trick.


It's not really an advantage though, because relatively speaking you're not advancing any faster than other players in your division. Say you go 7-0 in your first 7 games, and you're a Gold-level player. After 7-0 you may be facing low-mid Diamond players, so you lose maybe one or two games until you start playing Gold players again. From that point on you'd go 50-50, meaning you'd have a record of 57-52... 67-62... 107-102. You wouldn't be the only person in your division to achieve this, and you'd no doubt see others in your division with similar records. If you were to go inactive for an extended period of time, only the variance in potential opponents increases, so while you may get a Silver player to fight when you return, it's just as likely you'd face a Platinum player, and you'd gain or lose points accordingly.


As an edit: I have a little bit of familiarity with GLICKO since I do a lot of tabletop wargaming and we've had leagues governed by GLICKO before, and I seem to remember the uncertainty factor in GLICKO increases if you go a long period of time without playing games.

And a second question, while I think of it.

Does bonus pool accumulate from launch, or from when somebody registers an account? I bought my copy launch day, but if new accounts gain bonus pool from the time the account was registered, it may be much harder for the system to track and discount it. Just a thought.


From launch. The current bonus pool for newly-placed teams/players is around 330 I believe.
Moderator
icyswordrain
Profile Joined August 2010
Canada4 Posts
August 20 2010 15:20 GMT
#133
Just some random thoughts:
The clustering effect of 15 or 22~26 may be due to learning curve instead of checkpoints.
icyswordrain
Profile Joined August 2010
Canada4 Posts
August 20 2010 16:12 GMT
#134
Another proposition to explain why people get stucked in a league:

Say B is in Bronze but has high MMR and can get matched with Platinum players. However, because of high sigma, B is often matched against opponents of various skill levels. Furthermore, because of lack of data (the ladder is less than 1 month old), his opponents often have high sigma, too, which lead to sporadic win and losses that never quite reduce his sigma.

Another explanation is B is playing from a different time zone. (Always "Expanding Searches")

If these are true, the matching system will improve over time.
Calidus
Profile Joined April 2010
150 Posts
August 20 2010 17:02 GMT
#135
Vanick
+ Show Spoiler +
On August 15 2010 18:20 vanick wrote:
Got a new update to the promotions data. This time the dataset is 56.5k league changes, around twice what we had before.

I'm not going to post the full graph unless someone really wants to see it; it looks the same as the first full graph here and all the interesting stuff happens in the 5-60 games slice.

Updated Graph:
[image loading]

The results are pretty similar to last time. The bump at the 12-15 game mark is a little more pronounced. After hearing an interesting argument, it's possible there is no checkpoint at 30 games. It's possible that the majority of players have their MMR/sigma criteria fall within certain levels by that point as the system converges quickly.


I don't know what exactly you raw data looks like but I think it would be interesting to see if their are any visible difference in the different leagues when it comes to premotions/demotions. Does the Diamond graph look signicatently different than the Plat or Gold graph?

With your note about only 1800 premotions over 100 games played. I am a High plat player 65-50, but i am Streaky as hell, for example i have gone 19-8 and 3-12. I think it would be interesting to see if i(or someone else in my position) could get Diamond on a second account in under 30 games played or would i(or someone else in my position) place lower because the number of complete clueless poeple has decreased.
Note:1100 Diamond take everything with a grain of salt.
Excalibur_Z
Profile Joined October 2002
United States12240 Posts
August 20 2010 17:31 GMT
#136
On August 21 2010 02:02 Calidus wrote:
Vanick
+ Show Spoiler +
On August 15 2010 18:20 vanick wrote:
Got a new update to the promotions data. This time the dataset is 56.5k league changes, around twice what we had before.

I'm not going to post the full graph unless someone really wants to see it; it looks the same as the first full graph here and all the interesting stuff happens in the 5-60 games slice.

Updated Graph:
[image loading]

The results are pretty similar to last time. The bump at the 12-15 game mark is a little more pronounced. After hearing an interesting argument, it's possible there is no checkpoint at 30 games. It's possible that the majority of players have their MMR/sigma criteria fall within certain levels by that point as the system converges quickly.


I don't know what exactly you raw data looks like but I think it would be interesting to see if their are any visible difference in the different leagues when it comes to premotions/demotions. Does the Diamond graph look signicatently different than the Plat or Gold graph?

With your note about only 1800 premotions over 100 games played. I am a High plat player 65-50, but i am Streaky as hell, for example i have gone 19-8 and 3-12. I think it would be interesting to see if i(or someone else in my position) could get Diamond on a second account in under 30 games played or would i(or someone else in my position) place lower because the number of complete clueless poeple has decreased.


While we don't have that data broken down, I have a feeling it probably wouldn't look too much different. If the matchmaking system is doing its job, then everyone will start finding fair games after about the 10th game. After a few matches against evenly-matched opponents it should be able to gauge whether you deserve to be promoted or demoted.
Moderator
Calidus
Profile Joined April 2010
150 Posts
August 20 2010 19:51 GMT
#137
Do you have the data broken down into demotions and promotions?

I should have left the personal stuff out, considering it more a random interest than about the matchmaking system.

Note:1100 Diamond take everything with a grain of salt.
Ketara
Profile Blog Joined August 2010
United States15065 Posts
August 20 2010 21:08 GMT
#138
How does bonus pool factor in when somebody is promoted/demoted across division?

If a new player has 300 bonus pool, placement takes them to Platinum, plays through their 300 bonus pool there, and is then promoted to diamond, is their 300 used bonus pool taken account of in their new diamond rank?

It seems like it must be, because if it weren't, then a player who placed diamond would automatically be ahead of a player who placed platinum and was then promoted to diamond.

I am really trying hard to wrap my head around bonus pool, but it seems so strange. If they're not counting it for matchmaking, then it seems totally unnecessary.

Since everybody gains bonus pool at the same rate, all it will do is slowly inflate everybodies points and make it so even with perfect 50/50 win/loss ratios, everybodies points will gradually go up.

I also remember reading something on the Blizzard site at one point saying accounts have a cap on how much bonus pool they can have saved up. Why cap it if it's not being counted?
http://www.liquidlegends.net/forum/lol-general/502075-patch-61-league-of-legends-general-discussion?page=25#498
Calidus
Profile Joined April 2010
150 Posts
August 20 2010 21:56 GMT
#139
On August 21 2010 06:08 Ketara wrote:
I am really trying hard to wrap my head around bonus pool, but it seems so strange. If they're not counting it for matchmaking, then it seems totally unnecessary.


The bonus Pool Filters inactive players to bottom of the rankings that are displayed. they don't do much else as far was we know.
Note:1100 Diamond take everything with a grain of salt.
Disastorm
Profile Joined January 2008
United States922 Posts
August 20 2010 23:02 GMT
#140
I'm glad we finally know just how garbage blizzard's ladder system is.
"Don't worry so much man. There won't be any more zergs left to QQ. Lots of QQ about TvT is incoming though I bet." - Vrok 9/21/10
Prev 1 5 6 7 8 9 21 Next All
Please log in or register to reply.
Live Events Refresh
uThermal 2v2 Circuit
12:00
Bonus Cup #1
uThermal620
IndyStarCraft 313
SteadfastSC217
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
uThermal 620
Lowko499
IndyStarCraft 313
SteadfastSC 217
BRAT_OK 119
StarCraft: Brood War
Calm 6098
Sea 5967
Rain 3006
Horang2 1724
BeSt 1118
EffOrt 1076
Zeus 631
Rush 429
ggaemo 326
firebathero 277
[ Show more ]
Mong 170
Hyun 113
Mind 101
Aegong 68
zelot 64
Nal_rA 57
Hm[arnc] 49
Free 42
Shuttle 38
Barracks 35
910 35
JYJ 32
ToSsGirL 27
Sexy 26
Terrorterran 22
Yoon 20
HiyA 17
SilentControl 14
GoRush 14
scan(afreeca) 14
Rock 13
Sacsri 8
Dota 2
Gorgc5155
qojqva2702
syndereN417
XcaliburYe182
Counter-Strike
fl0m1991
Heroes of the Storm
Khaldor219
Other Games
Grubby2204
singsing1971
B2W.Neo1268
crisheroes423
Hui .261
Beastyqt247
KnowMe70
Organizations
Other Games
gamesdonequick2472
StarCraft 2
WardiTV1104
ComeBackTV 940
Other Games
EGCTV513
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 12 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Jankos3409
• TFBlade1171
Upcoming Events
AI Arena Tournament
4h 37m
BSL 21
4h 37m
Mihu vs eOnzErG
Dewalt vs Sziky
Bonyth vs DuGu
XuanXuan vs eOnzErG
Dewalt vs eOnzErG
All-Star Invitational
10h 52m
MMA vs DongRaeGu
herO vs Solar
Clem vs Reynor
Rogue vs Oliveira
Sparkling Tuna Cup
18h 37m
OSC
20h 37m
BSL 21
1d 4h
Bonyth vs Sziky
Mihu vs QiaoGege
Sziky vs XuanXuan
eOnzErG vs QiaoGege
Mihu vs DuGu
Dewalt vs Bonyth
Replay Cast
1d 17h
Wardi Open
1d 20h
Monday Night Weeklies
2 days
The PondCast
3 days
[ Show More ]
Replay Cast
5 days
Big Brain Bouts
6 days
Serral vs TBD
BSL 21
6 days
Liquipedia Results

Completed

Escore Tournament S1: W4
Big Gabe Cup #3
NA Kuram Kup

Ongoing

C-Race Season 1
IPSL Winter 2025-26
BSL 21 Non-Korean Championship
CSL 2025 WINTER (S19)
KCM Race Survival 2026 Season 1
OSC Championship Season 13
SC2 All-Star Inv. 2025
Underdog Cup #3
BLAST Bounty Winter Qual
eXTREMESLAND 2025
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025

Upcoming

Escore Tournament S1: W5
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
Rongyi Cup S3
Nations Cup 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League Season 23
ESL Pro League Season 23
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.