• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 11:06
CET 16:06
KST 00:06
  • 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
ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book19Clem wins HomeStory Cup 289HomeStory Cup 28 - Info & Preview13Rongyi Cup S3 - Preview & Info8
Community News
BGE Stara Zagora 2026 cancelled3Blizzard Classic Cup - Tastosis announced as captains12Weekly Cups (March 2-8): ByuN overcomes PvT block4GSL CK - New online series18BSL Season 224
StarCraft 2
General
BGE Stara Zagora 2026 announced ByuL: The Forgotten Master of ZvT Terran AddOns placement BGE Stara Zagora 2026 cancelled Blizzard Classic Cup - Tastosis announced as captains
Tourneys
[GSL CK] Team Maru vs. Team herO WardiTV Team League Season 10 Master Swan Open (Global Bronze-Master 2) RSL Season 4 announced for March-April Sparkling Tuna Cup - Weekly Open Tournament
Strategy
Custom Maps
Publishing has been re-enabled! [Feb 24th 2026] Map Editor closed ?
External Content
The PondCast: SC2 News & Results Mutation # 516 Specter of Death Mutation # 515 Together Forever Mutation # 514 Ulnar New Year
Brood War
General
ASL21 General Discussion BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion Gypsy to Korea Are you ready for ASL 21? Hype VIDEO
Tourneys
[Megathread] Daily Proleagues [BSL22] Open Qualifiers & Ladder Tours IPSL Spring 2026 is here! ASL Season 21 Qualifiers March 7-8
Strategy
Simple Questions, Simple Answers Soma's 9 hatch build from ASL Game 2 Fighting Spirit mining rates Zealot bombing is no longer popular?
Other Games
General Games
Nintendo Switch Thread PC Games Sales Thread Path of Exile No Man's Sky (PS4 and PC) Stormgate/Frost Giant Megathread
Dota 2
Official 'what is Dota anymore' discussion The Story of Wings Gaming
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
Five o'clock TL Mafia Mafia Game Mode Feedback/Ideas Vanilla Mini Mafia TL Mafia Community Thread
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Mexico's Drug War NASA and the Private Sector Things Aren’t Peaceful in Palestine
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Movie Discussion! [Req][Books] Good Fantasy/SciFi books [Manga] One Piece
Sports
Formula 1 Discussion 2024 - 2026 Football Thread General nutrition recommendations Cricket [SPORT] TL MMA Pick'em Pool 2013
World Cup 2022
Tech Support
Laptop capable of using Photoshop Lightroom?
TL Community
The Automated Ban List
Blogs
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
Shocked by a laser…
Spydermine0240
Gaming-Related Deaths
TrAiDoS
Unintentional protectionism…
Uldridge
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 2308 users

[G] Critical Upgrade Analysis - Page 2

Forum Index > StarCraft 2 Strategy
Post a Reply
Prev 1 2 3 4 5 6 7 8 Next All
Champ24
Profile Joined August 2010
177 Posts
January 25 2011 19:18 GMT
#21
Wow, I didn't know +1 armor pvt made that big of a difference.

Thanks for doing this.
kazansky
Profile Blog Joined February 2010
Germany931 Posts
January 25 2011 19:19 GMT
#22
On January 26 2011 03:44 Sv1 wrote:
Two things: I see that you mentioned shield/stimmed marines vs non stimmed/shielded marines, but I'm not finding any comparison of the two, you could almost assume that those numbers might be able to be a thread of their own.

Not to turn this into a debate about sentries but I think garudian shield needs a deeper look, I know you mention it but are you accounting for it at all or counting it as a factor in only certain matchups?


Feel free to open one on various marine battles :-)
I tried to boil it down to rather realistic scenarios, but if I would cover every possible engagement, I can start writing a book rather than an essay.

Same goes for sentries, I didnt count them at all, as critical upgrades mechanic mostly applies on very strict compositions and very early game stages. If you can provide me with additional information, I will certainly add it.
"Mathematicians don't understand mathematics, they get used to it." - Prof. Kredler || "That was more one-sided that a mobius strip." - Tasteless
kazansky
Profile Blog Joined February 2010
Germany931 Posts
Last Edited: 2011-01-25 19:37:01
January 25 2011 19:28 GMT
#23
On January 26 2011 03:53 statikg wrote:
I feel like for a post on critical upgrades, you have missed alot of key facts differentiating what makes upgrades so critical. That said, I appreciate that you have done a ton of excellent work but I think there is still plenty to add. For example you don't really differentiate between +1atk and def in TvZ but +1atk is much more important then +1def. As well in TvT you didn't mention that +1 air weapons makes 1 less hit for vikings to kill vikings which is hugeee. Also for tanks vs zerg, you HAVE to get +1 atk because otherwise once lings get +1armor (which I imagine most zergs get quickly) then tanks stop 1shotting them.


It's your decision whether you value attack or defense more, for most people it might be attack, but I don't want to coach people what they should research but provide information on what upgrades do.

As I wrote in TvT analysis, Viking hits dont change on upgrades. Unless I did some math wrong there, i'll review into that.
Update: Nope, double checked, +2 would change though. I will look up Unit Data again, maybe a typo.


In TvZ I've added +1 attack, but for a different reason. If you recall definition of critical upgrade correctly, it doesnt change amount of hits. That getting +1 attack leads to a correlated Nash equilibria in this case is something completely different.
"Mathematicians don't understand mathematics, they get used to it." - Prof. Kredler || "That was more one-sided that a mobius strip." - Tasteless
kazansky
Profile Blog Joined February 2010
Germany931 Posts
Last Edited: 2011-01-25 19:55:39
January 25 2011 19:32 GMT
#24
On January 26 2011 04:03 Jermstuddog wrote:
+2 weapons makes colossi 1-shot lings until they have +3 carapace.

+1 melee is always critical for ling use as surface area is limited. +x melee upgrades can never be made up with more lings, unlike ranged attack ups being replaced with just more of said ranged unit.

for ZvZ, lings need 7 less hits, not 8. The roach will instantly regen 1 HP after the first hit, this affects the +1 lings, but not the 0 lings and guarantees it will be in that 7 hit threshold.

+2 and +3 ranged are also highly useful in ZvZ, every upgrade always reduces hits by 1. I believe +2 carapace doesn't do anything for the most part though, so the best bang for your buck is something like +3/+1 when talking roach vs roach.



a) is already mentioned

b) does overextend the purpose of the thread

c) I must admit, I need to investigate that
Investigated: the regeneration on Zerglings comes very late, seems like a locked 2 second duration.
Try it out on 1 Zergling vs 1 Zerglings, the Zerglings regenerates once he is on 5 HP.
Roaches due to their massive Hitpoints and Armor do very well benefit from the later regeneration, I will recompute that matchup and update it regarding Roaches. Thanks for the hint.

d) I intentionally let down higher upgrades unless they have huge impact, it aswell overextend the intention, upgrades are never bad obviously
"Mathematicians don't understand mathematics, they get used to it." - Prof. Kredler || "That was more one-sided that a mobius strip." - Tasteless
lurked
Profile Blog Joined March 2010
Canada918 Posts
January 25 2011 19:43 GMT
#25
Really interesting post!

I was looking for an up-to-date thread about that, just last week. It should be really useful for me at least.

Thanks a lot for your work in this one!
Magic is "just" magic until I get my hands on the source code.
Chaosvuistje
Profile Joined April 2010
Netherlands2581 Posts
January 25 2011 19:48 GMT
#26
Might want to add that +2 melee makes banelings onehit probes regardless of armour upgrades. They also 1 hit drones. Very handy for mineral line bombs :D .
SpaceYeti
Profile Joined June 2010
United States723 Posts
January 25 2011 20:04 GMT
#27
This is one of the most valuable posts I have seen on these forums. Great work!
Behavior is a function of its consequences.
philippo
Profile Joined March 2010
Sweden97 Posts
January 25 2011 20:24 GMT
#28
Really nice post kaz! Very useful, thanks a bunch!
http://sv.justin.tv/sc2philippo
CooDu
Profile Blog Joined September 2010
Australia899 Posts
January 25 2011 20:53 GMT
#29
Looks really good, thanks for this. I guess most of it goes without saying and experience, but good resource for newer players nonetheless.
Just a simple guy, going wherever this journey takes me.
Retgery
Profile Joined August 2010
Canada1229 Posts
January 25 2011 21:03 GMT
#30
Why don't Stalkers bonus damage, get a benefit from upgrades?

Nice job, I learned a few things today
Fall down 7 times, stand up 8.
kazansky
Profile Blog Joined February 2010
Germany931 Posts
January 25 2011 21:05 GMT
#31
On January 26 2011 05:53 CooDu wrote:
Looks really good, thanks for this. I guess most of it goes without saying and experience, but good resource for newer players nonetheless.


Well, some are quite subtle or contradictory to what it might feel, and without lack of ressource its hard to keep all up in mind.
"Mathematicians don't understand mathematics, they get used to it." - Prof. Kredler || "That was more one-sided that a mobius strip." - Tasteless
TheHumanSensation
Profile Joined September 2010
Canada1210 Posts
January 25 2011 21:14 GMT
#32
On January 26 2011 04:16 kazansky wrote:
Show nested quote +
On January 26 2011 03:44 Shikyo wrote:
Even though you explain it, you still should take into account the fact that Zerg units heal 1 hp immediately after taking damage, without delay, and that regen will always make a difference in all cases except a group of marines(or something else without a projectile) firing simultaneously.

That being said, I'm pretty sure I've seen a chart or something similiar a while ago, but I'm sure this is useful for the people who haven't.


I was torn long about it but decided not to. Zerg units dont heal instantly, for example, banelings oneshot zerglings with damage 35 to 35 sharp. And i did some testing with hitting zerglings with zerglings, it takes a delay of a few seconds (unless i was drunk that day).

Additionally, I used the search function repeatidly to look out for such information and couldnt find it, so I might have missed it.


Zerg regen is 1hp/3seconds, but the first HP is frontloaded. As long as the unit is at full HP and isn't getting one-shotted, it will recover one HP instantly.

This becomes important for these calculations based on a golden rule of upgrades I use. All units have a total HP value that is divisible by 5, and most have an HP value that is divisible by 10. Following this, any upgrades that either increase your damage to a factor of 5 or 10, or increase it to above a factor of 5 or 10, will reduce the number of hits it takes to kill something.

Example, going from 8 to 9 attack will rarely be useful (unless it's say, lings vs thors). Going from 9 to 10 will be extremely useful, as will be going from 10 to 11.

Armour doesn't really throw this off, because it's easy enough to keep track of your relative attack. Protoss having unequal armour/shield can make this hard, but zerg regen (despite being very important) is pretty easy to keep track of.

Much in the same way that going from 10 to 11 attack is a big deal, going from 80hp to 81hp is also a big deal (hydras, for example) and will result in surviving one additional hit. For this reason, I think you should treat all zerg units as having 1 more hp than they actually have, as long as they aren't getting one-shotted.
Jayrod
Profile Joined August 2010
1820 Posts
January 25 2011 21:27 GMT
#33
On January 26 2011 04:10 kazansky wrote:
Show nested quote +
On January 26 2011 03:34 Synystyr wrote:
This is amazing. Thank you for putting all this time into such a great data table! Very, very useful information here. It'll definitely help strengthen builds based around fast upgrades and upgraded timing pushes. Awesome!

On a personal note, an analysis I would love to see is the Banshee vs Stalker matchup and what critcal upgrade points are important there. Thanks!



Banshee versus Stalker analysis

for Terran: +1 on Banshee makes Stalker killed in 7 instead of 8 shots, Armor on banshee lets it take 2 more shots
for Protoss: on +1 Damage Stalker lets the stalker kill the Banshee in 13 instead of 14 shots, Armor on Stalker doesnt change the amount of hits though.


Well since banshees shoot 2 shots per volley they wouldnt kill stalkers any faster with 7 attacks than they would with 8, so its wise to get +1 armor first if you are using a banshee-based army against a protoss trying to defend with stalkers.
Jermstuddog
Profile Blog Joined June 2010
United States2231 Posts
Last Edited: 2011-01-25 21:30:01
January 25 2011 21:29 GMT
#34
On January 26 2011 04:32 kazansky wrote:
d) I intentionally let down higher upgrades unless they have huge impact, it aswell overextend the intention, upgrades are never bad obviously


+2 armor is actually a big waste of money in ZvZ though, that's what I was pointing out.

3/1 Roaches will be 1 hit up on 2/2 roaches and will have actually spent 25/25 less on those upgrades!

But this is splitting hairs and getting into a MU specific situation. I would say it's something more for people to look into themselves later on when they're at the point in their game where things like this matter.

Your post is concise and well written, I wouldn't want to muck it up with details.
As it turns out, marines don't actually cost any money -Jinro
FunkyLich
Profile Blog Joined August 2010
United States107 Posts
January 25 2011 21:30 GMT
#35
On January 26 2011 03:44 Shikyo wrote:
Even though you explain it, you still should take into account the fact that Zerg units heal 1 hp immediately after taking damage, without delay, and that regen will always make a difference in all cases except a group of marines(or something else without a projectile) firing simultaneously.

That being said, I'm pretty sure I've seen a chart or something similiar a while ago, but I'm sure this is useful for the people who haven't.


Please add in that +1 attack for P makes Immortals always 3-shot Roaches

Show nested quote +
On January 26 2011 03:43 debasers wrote:
How come you mark +1 armor in PvT as blue?

Ever tried to kill Zealot/Sentry type of composition with 0-0 marines and marauders when they have +1 armor?


I can confirm this is correct. It's an important mechanic in the muta v thor upgrade war. When thors are at +2 attack, and mutas are at +1 armor, the mutalisk reduces 1 damage for each missile. There are 4 missiles, so a total of 4 is subtracted from each volley. At +2 attack thors do 16 damage per missile, making 64 damage per volley. With -4 on each volley, one does 60 damage and two volleys do exactly 120 damage. On paper that should be enough to kill it (mutas have 120 hp). But in reality, the muta always survives with 1 hp due to instant regen.

Try it. +1 armor muta vs +2 attack thor. You can even have the thors attack at the same time, the hit point appears after the first missile hits.
sleepingdog
Profile Joined August 2008
Austria6145 Posts
January 25 2011 21:34 GMT
#36
On January 26 2011 04:18 Champ24 wrote:
Wow, I didn't know +1 armor pvt made that big of a difference.

Thanks for doing this.


I figured this out after watching a game from hongun where he went for double forge fast upgrade style...it's insane how great armor-upgrades vs marines are. Now add guardian shield and marines literally do next to no damage.
"You see....YOU SEE..." © 2010 Sen
kazansky
Profile Blog Joined February 2010
Germany931 Posts
Last Edited: 2011-01-25 21:57:45
January 25 2011 21:46 GMT
#37
On January 26 2011 06:14 TheHumanSensation wrote:
Show nested quote +
On January 26 2011 04:16 kazansky wrote:
On January 26 2011 03:44 Shikyo wrote:
Even though you explain it, you still should take into account the fact that Zerg units heal 1 hp immediately after taking damage, without delay, and that regen will always make a difference in all cases except a group of marines(or something else without a projectile) firing simultaneously.

That being said, I'm pretty sure I've seen a chart or something similiar a while ago, but I'm sure this is useful for the people who haven't.


I was torn long about it but decided not to. Zerg units dont heal instantly, for example, banelings oneshot zerglings with damage 35 to 35 sharp. And i did some testing with hitting zerglings with zerglings, it takes a delay of a few seconds (unless i was drunk that day).

Additionally, I used the search function repeatidly to look out for such information and couldnt find it, so I might have missed it.


Zerg regen is 1hp/3seconds, but the first HP is frontloaded. As long as the unit is at full HP and isn't getting one-shotted, it will recover one HP instantly.

This becomes important for these calculations based on a golden rule of upgrades I use. All units have a total HP value that is divisible by 5, and most have an HP value that is divisible by 10. Following this, any upgrades that either increase your damage to a factor of 5 or 10, or increase it to above a factor of 5 or 10, will reduce the number of hits it takes to kill something.

Example, going from 8 to 9 attack will rarely be useful (unless it's say, lings vs thors). Going from 9 to 10 will be extremely useful, as will be going from 10 to 11.

Armour doesn't really throw this off, because it's easy enough to keep track of your relative attack. Protoss having unequal armour/shield can make this hard, but zerg regen (despite being very important) is pretty easy to keep track of.

Much in the same way that going from 10 to 11 attack is a big deal, going from 80hp to 81hp is also a big deal (hydras, for example) and will result in surviving one additional hit. For this reason, I think you should treat all zerg units as having 1 more hp than they actually have, as long as they aren't getting one-shotted.


The instant regeneration is simply not true as far as my tests went, I double checked it and still are not convinced of this, but i will look into further. As far as i figured, their is no frontload regeneration. The Hitpoint regenerates exactly after the mentioned 3 seconds delay.
If one uses additional Hitpoint on Units or not, depends on the unit hitting and the amount of hits. I may review some of those statements though. I guess i will apply the additional Hitpoint on all units but Zerglings and Banelings as they endure those 3 seconds to gain the hitpoint.

But your "relative attack math" may be a nice rule of thumb but thats it, because of wide range of armor distribution. Aswell as 2xX attacks suffer more from armor and you cannot count them individually, plus, once Protoss is involved, the whole math gets screwed because of different Armor on Shields and Hitpoints. You dont get certain and reliable data by it.
Feel free to rewrite the whole chapter and post it in here, i will check and update it if given.
But let me say you, it isn't that easy as you put it.
"Mathematicians don't understand mathematics, they get used to it." - Prof. Kredler || "That was more one-sided that a mobius strip." - Tasteless
kazansky
Profile Blog Joined February 2010
Germany931 Posts
January 25 2011 21:47 GMT
#38
On January 26 2011 06:27 Jayrod wrote:
Show nested quote +
On January 26 2011 04:10 kazansky wrote:
On January 26 2011 03:34 Synystyr wrote:
This is amazing. Thank you for putting all this time into such a great data table! Very, very useful information here. It'll definitely help strengthen builds based around fast upgrades and upgraded timing pushes. Awesome!

On a personal note, an analysis I would love to see is the Banshee vs Stalker matchup and what critcal upgrade points are important there. Thanks!



Banshee versus Stalker analysis

for Terran: +1 on Banshee makes Stalker killed in 7 instead of 8 shots, Armor on banshee lets it take 2 more shots
for Protoss: on +1 Damage Stalker lets the stalker kill the Banshee in 13 instead of 14 shots, Armor on Stalker doesnt change the amount of hits though.


Well since banshees shoot 2 shots per volley they wouldnt kill stalkers any faster with 7 attacks than they would with 8, so its wise to get +1 armor first if you are using a banshee-based army against a protoss trying to defend with stalkers.


I am aware of that, I counted double shots as one shot. It actually applies this way.
"Mathematicians don't understand mathematics, they get used to it." - Prof. Kredler || "That was more one-sided that a mobius strip." - Tasteless
kazansky
Profile Blog Joined February 2010
Germany931 Posts
Last Edited: 2011-01-25 23:43:20
January 25 2011 23:40 GMT
#39
Due to public request, I reviewed the Zerg Math with 1 additional hitpoint regenerated for units other than Zerglings and Banelings.
Made Protoss Damage Upgrade even more viable in PvZ, but apart from some hit numbers changed, no big effects as the differences remained. (thankfully, that would made hell of a work worthless )
Unless I missed something.
Thanks for pointing it out.
"Mathematicians don't understand mathematics, they get used to it." - Prof. Kredler || "That was more one-sided that a mobius strip." - Tasteless
eth3n
Profile Joined August 2010
718 Posts
January 26 2011 02:48 GMT
#40
After that post last night someone should definitely add ZvP regarding zerg air armor versus P air
Idra Potter: I don't use avada kedavra because i have self-respect.
Prev 1 2 3 4 5 6 7 8 Next All
Please log in or register to reply.
Live Events Refresh
Next event in 8h 54m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 709
Harstem 127
trigger 48
RushiSC 26
LamboSC2 16
StarCraft: Brood War
Britney 32668
EffOrt 2002
Soma 1021
Mini 710
BeSt 643
Light 552
actioN 531
ZerO 448
Rush 447
Sea.KH 77
[ Show more ]
Nal_rA 53
[sc1f]eonzerg 50
IntoTheRainbow 38
sorry 35
Mind 33
Backho 31
Rock 23
GoRush 17
Bale 11
zelot 9
JulyZerg 8
Terrorterran 6
NotJumperer 4
Dota 2
Gorgc4042
qojqva1564
Counter-Strike
fl0m3312
markeloff108
Heroes of the Storm
Khaldor152
Other Games
singsing2351
B2W.Neo636
Lowko413
crisheroes349
Hui .171
Pyrionflax169
Beastyqt162
KnowMe122
Fuzer 100
ZerO(Twitch)18
Organizations
Dota 2
PGL Dota 2 - Main Stream14445
Other Games
gamesdonequick855
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 16 non-featured ]
StarCraft 2
• poizon28 56
• StrangeGG 28
• iHatsuTV 14
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Nemesis4051
• Jankos2091
• TFBlade959
Upcoming Events
Replay Cast
8h 54m
CranKy Ducklings
18h 54m
RSL Revival
18h 54m
MaxPax vs Rogue
Clem vs Bunny
WardiTV Team League
20h 54m
uThermal 2v2 Circuit
1d 1h
Patches Events
1d 1h
BSL
1d 4h
Sparkling Tuna Cup
1d 18h
RSL Revival
1d 18h
ByuN vs SHIN
Maru vs Krystianer
WardiTV Team League
1d 20h
[ Show More ]
BSL
2 days
Replay Cast
2 days
Replay Cast
2 days
Wardi Open
2 days
Monday Night Weeklies
3 days
WardiTV Team League
3 days
GSL
4 days
The PondCast
5 days
WardiTV Team League
5 days
Replay Cast
6 days
WardiTV Team League
6 days
Liquipedia Results

Completed

Proleague 2026-03-12
WardiTV Winter 2026
Underdog Cup #3

Ongoing

KCM Race Survival 2026 Season 1
Jeongseon Sooper Cup
BSL Season 22
RSL Revival: Season 4
Nations Cup 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual

Upcoming

CSL Elite League 2026
ASL Season 21
Acropolis #4 - TS6
2026 Changsha Offline CUP
Acropolis #4
IPSL Spring 2026
CSLAN 4
HSC XXIX
uThermal 2v2 2026 Main Event
NationLESS Cup
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 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.