From 947a12be21425c4f08e70ca841fc06c44d8e5ef6 Mon Sep 17 00:00:00 2001
From: dg <dg@51575b47-30f0-44d4-a5cc-537603b46e54>
Date: Tue, 1 May 2012 13:35:11 +0000
Subject: [PATCH] ahahahah

git-svn-id: http://svn.net-core.org/repos/t-engine4@5068 51575b47-30f0-44d4-a5cc-537603b46e54
---
 game/modules/tome/class/Game.lua              |   8 ++-
 game/modules/tome/class/Object.lua            |  16 ++---
 .../modules/tome/data/general/npcs/horror.lua |  15 ++--
 .../tome/data/general/objects/egos/charms.lua |   2 +
 .../data/general/objects/egos/torques.lua     |  23 ++++++
 .../tome/data/general/objects/egos/totems.lua |  63 ++++++++++++++++
 .../tome/data/general/objects/egos/wands.lua  |  67 ++++++++++++++++++
 .../tome/data/general/objects/wands.lua       |   1 +
 game/modules/tome/data/talents/misc/npcs.lua  |   7 +-
 ideas/class-uber-points.ods                   | Bin 12537 -> 12612 bytes
 10 files changed, 187 insertions(+), 15 deletions(-)

diff --git a/game/modules/tome/class/Game.lua b/game/modules/tome/class/Game.lua
index 0e762fdb3f..80fb7973af 100644
--- a/game/modules/tome/class/Game.lua
+++ b/game/modules/tome/class/Game.lua
@@ -1115,7 +1115,13 @@ function _M:setupCommands()
 			end end
 		end end,
 		[{"_g","ctrl"}] = function() if config.settings.cheat then
-			self.player:loadBuildOrder("bomber-alchemist.csv")
+			local base = game.zone:makeEntity(game.level, "object", {ingore_material_restriction=true, no_tome_drops=true, ego_filter={keep_egos=true, ego_chance=-1000}, type='charm',subtype='wand'}, nil, true)
+			local a = self.state:generateRandart(false, base, 50, 3)
+			local o = a:clone()
+			o:resolve()
+			o:resolve(nil, true)
+			o:identify(true)
+			game.zone:addEntity(game.level, o, "object", self.player.x, self.player.y)
 		end end,
 		[{"_f","ctrl"}] = function() if config.settings.cheat then
 			self.player.quests["love-melinda"] = nil
diff --git a/game/modules/tome/class/Object.lua b/game/modules/tome/class/Object.lua
index a3f0f7750c..6b1588786b 100644
--- a/game/modules/tome/class/Object.lua
+++ b/game/modules/tome/class/Object.lua
@@ -195,6 +195,14 @@ end
 function _M:getDisplayColor()
 	if not self:isIdentified() then return {180, 180, 180}, "#B4B4B4#" end
 	if self.lore then return {0, 128, 255}, "#0080FF#"
+	elseif self.unique then
+		if self.randart then
+			return {255, 0x77, 0}, "#FF7700#"
+		elseif self.godslayer then
+			return {0xAA, 0xD5, 0x00}, "#AAD500#"
+		else
+			return {255, 215, 0}, "#FFD700#"
+		end
 	elseif self.egoed then
 		if self.greater_ego then
 			if self.greater_ego > 1 then
@@ -205,14 +213,6 @@ function _M:getDisplayColor()
 		else
 			return {0, 255, 128}, "#00FF80#"
 		end
-	elseif self.unique then
-		if self.randart then
-			return {255, 0x77, 0}, "#FF7700#"
-		elseif self.godslayer then
-			return {0xAA, 0xD5, 0x00}, "#AAD500#"
-		else
-			return {255, 215, 0}, "#FFD700#"
-		end
 	else return {255, 255, 255}, "#FFFFFF#"
 	end
 end
diff --git a/game/modules/tome/data/general/npcs/horror.lua b/game/modules/tome/data/general/npcs/horror.lua
index 7e61e1c91a..b5effd866a 100644
--- a/game/modules/tome/data/general/npcs/horror.lua
+++ b/game/modules/tome/data/general/npcs/horror.lua
@@ -62,10 +62,10 @@ Each swing drips pestulant fluid before it, and each droplet writhes and wriggle
 	stun_immune = 1,
 	blind_immune = 1,
 	disease_immune = 1,
-	
+
 	combat_spellspeed = 1.3,
 	combat_spellpower = resolvers.levelup(10, 1, 1),
-	
+
 
 	resists = { [DamageType.PHYSICAL] = 50, [DamageType.ACID] = 100, [DamageType.BLIGHT] = 100, [DamageType.FIRE] = -50},
 	inc_damage = { [DamageType.BLIGHT] = 20, },
@@ -419,7 +419,7 @@ newEntity{ base = "BASE_NPC_HORROR",
 
 	blind_immune = 1,
 	see_invisible = 10,
-		
+
 	resolvers.talents{
 		[Talents.T_CHANT_OF_FORTITUDE]={base=3, every=6, max=8},
 		[Talents.T_SEARING_LIGHT]={base=3, every=6, max=8},
@@ -530,6 +530,7 @@ You can discern a huge round mouth covered in razor-sharp teeth.]],
 	no_breath = 1,
 	size_category = 4,
 	movement_speed = 0.8,
+	is_grgglck = true,
 
 	stun_immune = 1,
 	knockback_immune = 1,
@@ -596,9 +597,13 @@ newEntity{ base="BASE_NPC_HORROR", define_as = "GRGGLCK_TENTACLE",
 	end,
 
 	on_die = function(self, who)
-		if self.summoner and not self.summoner.dead then
+		if self.summoner and not self.summoner.dead and who then
 			game.logSeen(self, "#AQUAMARINE#As %s falls you notice that %s seems to shudder in pain!", self.name, self.summoner.name)
-			self.summoner:takeHit(self.max_life, who)
+			if self.summoner.is_grgglck then
+				self.summoner:takeHit(self.max_life, who)
+			else
+				self.summoner:takeHit(self.max_life * 0.66, who)
+			end
 		end
 	end,
 }
diff --git a/game/modules/tome/data/general/objects/egos/charms.lua b/game/modules/tome/data/general/objects/egos/charms.lua
index b52ed9aedf..6cd82561b8 100644
--- a/game/modules/tome/data/general/objects/egos/charms.lua
+++ b/game/modules/tome/data/general/objects/egos/charms.lua
@@ -19,6 +19,7 @@
 
 newEntity{
 	name = "quick ", prefix=true,
+	keywords = {quick=true},
 	level_range = {1, 50},
 	rarity = 15,
 	cost = 5,
@@ -31,6 +32,7 @@ newEntity{
 
 newEntity{
 	name = "supercharded ", prefix=true,
+	keywords = {['super.c']=true},
 	level_range = {1, 50},
 	rarity = 15,
 	cost = 5,
diff --git a/game/modules/tome/data/general/objects/egos/torques.lua b/game/modules/tome/data/general/objects/egos/torques.lua
index f621d98e73..8619b7b0d4 100644
--- a/game/modules/tome/data/general/objects/egos/torques.lua
+++ b/game/modules/tome/data/general/objects/egos/torques.lua
@@ -17,10 +17,14 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
+local Talents = require "engine.interface.ActorTalents"
+local DamageType = require "engine.DamageType"
+
 load("/data/general/objects/egos/charms.lua")
 
 newEntity{
 	name = "psionic ", prefix=true,
+	keywords = {psi=true},
 	level_range = {10, 50},
 	rarity = 12,
 	cost = 5,
@@ -34,6 +38,7 @@ newEntity{
 
 newEntity{
 	name = "hateful ", prefix=true,
+	keywords = {hate=true},
 	level_range = {10, 50},
 	rarity = 12,
 	cost = 5,
@@ -44,3 +49,21 @@ newEntity{
 		end] = {100, function(self, who) return ("regenerate %d hate"):format(self:getCharmPower(true) / 7) end},
 	}
 }
+
+newEntity{
+	name = "warded ", prefix=true,
+	keywords = {ward=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		wards = {
+			[DamageType.MIND] = resolvers.mbonus_material(4, 1),
+			[DamageType.PHYSICAL] = resolvers.mbonus_material(2, 1),
+			[DamageType.DARKNESS] = resolvers.mbonus_material(4, 1),
+		},
+		learn_talent = {[Talents.T_WARD] = 1},
+	},
+}
diff --git a/game/modules/tome/data/general/objects/egos/totems.lua b/game/modules/tome/data/general/objects/egos/totems.lua
index 0851e1dde2..4df0574754 100644
--- a/game/modules/tome/data/general/objects/egos/totems.lua
+++ b/game/modules/tome/data/general/objects/egos/totems.lua
@@ -17,10 +17,14 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
+local Talents = require "engine.interface.ActorTalents"
+local DamageType = require "engine.DamageType"
+
 load("/data/general/objects/egos/charms.lua")
 
 newEntity{
 	name = "natural ", prefix=true,
+	keywords = {natural=true},
 	level_range = {10, 50},
 	rarity = 12,
 	cost = 5,
@@ -34,6 +38,7 @@ newEntity{
 
 newEntity{
 	name = "forcefull ", prefix=true,
+	keywords = {force=true},
 	level_range = {10, 50},
 	rarity = 12,
 	cost = 5,
@@ -44,3 +49,61 @@ newEntity{
 		end] = {100, function(self, who) return ("regenerate %d stamina"):format(self:getCharmPower(true) / 6) end},
 	}
 }
+
+newEntity{
+	name = "warded ", prefix=true,
+	keywords = {ward=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		wards = {
+			[DamageType.NATURE] = resolvers.mbonus_material(4, 1),
+			[DamageType.ACID] = resolvers.mbonus_material(4, 1),
+			[DamageType.LIGHT] = resolvers.mbonus_material(4, 1),
+		},
+		learn_talent = {[Talents.T_WARD] = 1},
+	},
+}
+
+newEntity{
+	name = "rushing ", prefix=true,
+	keywords = {rushing=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		learn_talent = {[Talents.T_RUSHING_CLAWS] = resolvers.mbonus_material(4, 1)},
+	},
+}
+
+newEntity{
+	name = "webbed ", prefix=true,
+	keywords = {webbed=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		learn_talent = {[Talents.T_LAY_WEB] = resolvers.mbonus_material(4, 1)},
+	},
+}
+
+newEntity{
+	name = "tentacled ", prefix=true,
+	keywords = {tentacled=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		talent_cd_reduction={[Talents.T_INVOKE_TENTACLE]=-5},
+		learn_talent = {[Talents.T_INVOKE_TENTACLE] = 1},
+	},
+}
diff --git a/game/modules/tome/data/general/objects/egos/wands.lua b/game/modules/tome/data/general/objects/egos/wands.lua
index a030168954..be7cbbfef3 100644
--- a/game/modules/tome/data/general/objects/egos/wands.lua
+++ b/game/modules/tome/data/general/objects/egos/wands.lua
@@ -17,10 +17,14 @@
 -- Nicolas Casalini "DarkGod"
 -- darkgod@te4.org
 
+local Talents = require "engine.interface.ActorTalents"
+local DamageType = require "engine.DamageType"
+
 load("/data/general/objects/egos/charms.lua")
 
 newEntity{
 	name = "arcane ", prefix=true,
+	keywords = {arcane=true},
 	level_range = {10, 50},
 	rarity = 12,
 	cost = 5,
@@ -34,6 +38,7 @@ newEntity{
 
 newEntity{
 	name = "defiled ", prefix=true,
+	keywords = {defiled=true},
 	level_range = {10, 50},
 	rarity = 12,
 	cost = 5,
@@ -47,6 +52,7 @@ newEntity{
 
 newEntity{
 	name = "bright ", prefix=true,
+	keywords = {bright=true},
 	level_range = {10, 50},
 	rarity = 12,
 	cost = 5,
@@ -60,6 +66,7 @@ newEntity{
 
 newEntity{
 	name = "shadowy ", prefix=true,
+	keywords = {shadow=true},
 	level_range = {10, 50},
 	rarity = 12,
 	cost = 5,
@@ -70,3 +77,63 @@ newEntity{
 		end] = {100, function(self, who) return ("regenerate %d negative energy"):format(self:getCharmPower(true) / 8) end},
 	}
 }
+
+newEntity{
+	name = "warded ", prefix=true,
+	keywords = {ward=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		wards = {
+			[DamageType.FIRE] = resolvers.mbonus_material(4, 1),
+			[DamageType.COLD] = resolvers.mbonus_material(4, 1),
+			[DamageType.LIGHTNING] = resolvers.mbonus_material(4, 1),
+			[DamageType.TEMPORAL] = resolvers.mbonus_material(4, 1),
+			[DamageType.BLIGHT] = resolvers.mbonus_material(4, 1),
+		},
+		learn_talent = {[Talents.T_WARD] = 1},
+	},
+}
+
+newEntity{
+	name = "void ", prefix=true,
+	keywords = {void=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		talent_cd_reduction={[Talents.T_VOID_BLAST]=-6},
+		learn_talent = {[Talents.T_VOID_BLAST] = resolvers.mbonus_material(4, 1)},
+	},
+}
+
+newEntity{
+	name = "volcanic ", prefix=true,
+	keywords = {volcanic=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		learn_talent = {[Talents.T_VOLCANO] = resolvers.mbonus_material(4, 1)},
+	},
+}
+
+newEntity{
+	name = "striking ", prefix=true,
+	keywords = {striking=true},
+	level_range = {30, 50},
+	rarity = 12,
+	greater_ego = 1,
+	cost = 5,
+
+	wielder = {
+		learn_talent = {[Talents.T_STRIKE] = resolvers.mbonus_material(4, 1)},
+	},
+}
diff --git a/game/modules/tome/data/general/objects/wands.lua b/game/modules/tome/data/general/objects/wands.lua
index ea6c5dba03..2af17ca8cd 100644
--- a/game/modules/tome/data/general/objects/wands.lua
+++ b/game/modules/tome/data/general/objects/wands.lua
@@ -31,6 +31,7 @@ newEntity{
 	egos = "/data/general/objects/egos/wands.lua", egos_chance = { prefix=resolvers.mbonus(20, 5), suffix=resolvers.mbonus(20, 5) },
 	addons = "/data/general/objects/egos/wands-powers.lua",
 	power_source = {arcane=true},
+	randart_able = { misc=10 },
 	talent_cooldown = "T_GLOBAL_CD",
 }
 
diff --git a/game/modules/tome/data/talents/misc/npcs.lua b/game/modules/tome/data/talents/misc/npcs.lua
index a242769c2f..51d78c40b0 100644
--- a/game/modules/tome/data/talents/misc/npcs.lua
+++ b/game/modules/tome/data/talents/misc/npcs.lua
@@ -1185,6 +1185,10 @@ newTalent{
 
 			m.summoner = self
 			m.summon_time = 10
+			if not self.is_grgglck then
+				m.ai_real = m.ai
+				m.ai = "summoned"
+			end
 
 			game.zone:addEntity(game.level, m, "actor", x, y)
 
@@ -1356,7 +1360,8 @@ newTalent{
 		return true
 	end,
 	info = function(self, t)
-		return ([[Summons a small raging volcano for %d turns. Every turns it will fire %d molten boulders toward your foes, dealing %0.2f fire and %0.2f physical damage.]]):
+		return ([[Summons a small raging volcano for %d turns. Every turns it will fire %d molten boulders toward your foes, dealing %0.2f fire and %0.2f physical damage.
+		The damage will scale with Spellpower.]]):
 		format(4 + self:getTalentLevel(t), math.floor(self:getTalentLevel(self.T_VOLCANO)), damDesc(self, DamageType.FIRE, self:combatTalentSpellDamage(self.T_VOLCANO, 15, 80) / 2), damDesc(self, DamageType.PHYSICAL, self:combatTalentSpellDamage(self.T_VOLCANO, 15, 80) / 2))
 	end,
 }
diff --git a/ideas/class-uber-points.ods b/ideas/class-uber-points.ods
index 473ad01cec0e8aefffe4efb8b0ff089b531de5f0..f70d28ad6669725ba7667f2a72c0091530fae160 100644
GIT binary patch
delta 9278
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

delta 9215
zcmZvC1#lh9&gL=1?3fv1cFfF-F>}l@Gc!BK%zTV7Gcz+&%*+fiGvg*Nd*6TmtyR_3
zv@~j|HPa>4r|CX}NBxfq(h!j7000aCu<Pe75c^R9_~#Dz7s3A?8`|198QVC~yIEVE
ze)Du(VMl#`=l>v{?y_utOGG}>@X|D#Ywnqpm$KY`bGBaq5sMu9gNzekrtx^w2+uEi
zWK120F;bISO|Az<>k3pqp$FW(oV)4^+N7vxi((;`&Y2@)a`o)Rx=uX+U!P>J^Dgg4
zI@80aLU^n;;V5A>@=~KhSYOB|xt09u?s8&>%!rD%Es&>TihW(6NK6#hEffj}ldGpu
z^C^W+_k)^NHEVgkH8M@BE>G*f#v<A`*V7y}*%;=1$WBa+7F`=~r8bL#l;Ddf-e=KX
z{lMGOZ1$iz=<njmOV~I7TuY46S>fj6vrb+1(=W^lN5jFUUNEoq+0rYqt}k<u!()~`
zz6!20PRt?0XV%bSRhi)`ABdwO@*Nb@n?EjEE%2+<s$_4mX(u;u@uIfe8AVpho_0PK
z$v;k92~v5MzVV#?4xO;S(Auc1JzRCBE}?~zK<cjj%%pte;7KeB?51XyplsD&ICJti
zz3~k7Xp8frZ8oV9Ju4$~HQPi-#o8jt21}oV3ZrNh8^Qv?{0@q>YQ@}HsBAU=+xz9&
zX~Irzj9lpBYo9D3m27UY5gE1qA&9V^JUnnVP*40elEG|*-tF2Mo0fw>Jr(3J?Ti%%
z&a=jzjFQ|prZo;6(EVz4Y{8q>fT#$jJ?`g~h+em}Q`MR*86__a0V&L)Lc|IP4uQ^}
z|N2bb+v>4KOccQL<J8{7fm6!)mIO!peSV;Yf}TN7ur^j|gj!-1#x9FI68$a}r=g5t
zGR^|$lr8q_jQKMBqLEJ~oD<$dZ9b1hchZ1y2T37|LVY;U52b8$48>V}##k<kenNRf
z6CHHJBej)tDeM4;3zeIM7QmY<GcqDuU2s?p(+34oh-_BE2urqv9-XBNY$%$!JIdCr
z?L6p2b@;GNR4KY!Bf;bfMzb-gUQ`=6Yd&YePAOGuhsM7lF<`g&p)8?<eJ`tB##4h!
zwoY(}Q+5U@pRIb`+EYn-Vo((!&oZd@6+Vv9VwY|ta15JqB5z+NHWnL!JeOmP7$R9X
znA2(9P@I3CzCvOxajiCe@<P|Z6vMXt+vU8a^HbsR<@_3kt;@*Sr^?<`^m&8zJnRWZ
zD01V9X=>UVoO>@uopjX+7!$VMPy@XXRwVOD+QxYxv;OVlyc5%gyFQG~C(u~3M_Gzi
zAc`zF-?c(Mw3N49QYmK^C?d0r;|8Ov*CwbZFavyPwwG;oA~9r9Uq~O;keca%NmrFQ
zBGROrI1he;8(lNkaN68gYb!uB)Tec~H0n_@K{y>xK8(x(#TdNppc4Oj=Cd<e6^a=t
zDhdrS>8EzT^t0SyT}bUf;AL-uWssp^c+F%)FY~bSN102`-d+VroBoFU8sESO@fp?p
zr#gMPsyr_4O|Vw2IUyl~7Il%ak+PlMBKMN)!Lm8Fn?`jZ%OPM&0-w?2`FojWL&bUK
zWg4B1NU8LkYqSSD#@iGGT<1+60GGjnI#vQWdK>xhZJnzxCjyg8s3^ymIuw4OAS16@
zfV9@U@BukC^g5d}Z+b_uAa7ig9{<=@43#(%zLU<u9k&Rl+bH_s)O7>$sZ3qc4BvlH
z_w4ds!jXWn@q#Ky#keNFf+j@?E0QLY$-4e+DqX5%pbLvlyuOkDh$Dl)^<Z7Vq45kj
zbc=p8%vCrFfQ?XF|NN{IglVFQBF4e!nZPdDiiMh{o~fwzYVP_LAot76VWVxPC&Wa^
zJ8Tkvm8v@g8cfv9EKrI(a1W<DdS=*Svem}JvE#<dctD&TP9_)|GDN4mS|mL&q4~`H
za+Yj--U!XCqD_6gY+EQn{u?M{hh7vopU^`AnH6@pzm|jPzL%$YIEgJZYXrwHL^eY1
zsHBpDoZIjuFlye(NFJFmkZ)C|CyJq5r(SF<e+*7oT>uNL(hi!j`ob30HEGnm#gGst
zYM2?gFZI=g_O!QT_wn(k?tXt6Sb~?#7R80Uf|;{{^-pkIcUVTJDM4}}UkG?$dLmI$
zrVhJ_clb-OgGlOe6K_qiPko$ZuVG;0l2|!)eoA6-)ui^tXOz&An9vn&6$~o6Tw2kD
z%KVWU3GxkSqh#g6xKZR7SeDA?U3q_J(z&+nx#ztK^{=1d=bt`62E7`T>n4jZ^J0;~
zH`7~q^N+YH-j0xrhcEB7F%UBWEe!NeX3&!yu@h-Gt?B><AHXrQI;CP#<Yv+zt$YsT
z4Kl@4YU6AbCjzu5zT7hE?6?aH$RGTIeKn@ISzWbe7_&FU5ZRI|z$2^{75JDwJaWy7
zXZGDRrQ2yazr%!-hQ_mmf;<ItFit)<K}uJ{!&S%;^lic+#(Xx$qZtDiXtE<Re^Qxr
zpLCXDnpctn^>wt}?B<++2}$oLdb!<IrPPoBc-FN!M30S8yU2nd3=Cg1oL|kQ%{`HI
zT``OC=}zfWs9-&q@1446`{L!EPkeA)2V5VA8(*nyw{>n?xCr(o<yxBa(WAx)(1UGR
zYQ?=KxNWK}?dBKO!w6>rf_Ok?sA39L30r3=7T5a*Ec2Ct1>N-6(0EfUcU~q}wpNI$
z5oWfYeYoJ>!+8eD@Qd0-U)V-p9aycvg!?W0f|28VbXfb$?51oxo^J2&7Z^4=+}<Z_
z-&Z`A2<pBcy`8rP+TnfhJF-CRdsjAh=Kmtq+NVwsN!gwJGu3|z=!$f+#-r!m850E*
zoOy<s^>$i3DnKD+fH<o0SM>N4zb>Gc-x=?Ok3UH!0OkEjK+$_4VHTqJC*&Xx^o4DY
zbb~>~e9Ss^!&RFsdg#rlcLRsYQSZrS$~3E~MhSB(Pvd$PC%UVH#dyBHMu(V5V^mam
z8#0Tj>T#WC9G1)|P_gCga&<tN*3GD)>_@sP@VhQ`dB$e*Dk*&9GyTLjXj|ec=~hDx
z*#}eCN}hDzN7wan8Wuj}Ytwzj8Yzq!vyM01BVgX|Vui^lUNk@3Ow6j_$H}TFgCbQo
zkuMztre{JX2D5<!w^0}?t@i`1^qS4yT%sKxjC0l)7SVATm^|QLa7?4HGA5_mdd3fS
zQn$eXHp*|V@ueNdC*2B?(eewx6N2c`|3FkcEW#TTCDXDe7r~ML>uz*q=*|u~gjk)A
z9JpgJK!9|p=ozbD)@EDs>_;3*5<oSMB9dnD+b6#`9uBuf$I|1U4Qivx>P+$r8ce6f
z_6?sN!!&4Qfffz%LC|{`S_BF$bM86cmD+hL@<KfYqpFRwf0k30T=_di>O#6jM$x>U
zY>Yl|%-i>O9@cTUe;@8VtS^%TlD-$TE_PNoo^E)-90W*SAtLUuY=`;;iaw(AqTj@0
z#KhVLuU;p=L_I`6EmKw_cN@qXL+~%(;%7ASw&>Hl1IOa`QA{ncnzW56T}`#^kGnK2
z&%1t%8y?5vEd=@<&MznQqB~M~c{V77i@bcmJUUoh9}>RB)cS0>f_d~Ib{3);C0{?t
zM>`aLMwep$;uvR3pEkZ{0WLY_SXD5&Uz~K`OzeWW1@?L>nX3++YA(9E!a#wU^E?x~
z@2RUx73gy})HP+P;Rzd=Y0gL@M{;=v25T-FOG(%bcgdH1Xad<94&i&>4@;Qg3hTuf
zKs~^|QK(CHtzO5@Tyq+wd#R9^b%q8An&alLR^79{gT`g>6O6!+lpi*w;#cuN&NIg~
zPs0_%hn*L3wDVQUt!9T)c-@CV{PEe4mVbn137Agln>szO**d*;=&<5_k|Bziw8aOJ
zADmpxleLL|Ur=7y!sQ*){rD9%h-4Wt$TPf8N%tsPAAGZ;{8oj-h65&xU(Tp05~5Id
z)%~!MwlyuD%O*W7-aF}g>B8}um>fkZg9Ax1i-SCA!e_(|Tb=@B#I+ih9y?2w>zLS3
z2_Ve+&zX+L1ExrxT-peh%)tN&^f$a}`<A&|2%EGLI7C?j>Jz|Ap=b&pZI-K7$~wbP
zF!nP(6rp2R=!jX&vrgc1WVJe=T3tNT<<Q}NbT&Y^rp-vRt2+=)tfjES@vcPgtk*@3
z>-?JjUGey4HX{YOy?t@-Jp`}PKF3RN5*R~_Y`?&^NqXl$EJf{S`&m%??fICcOP$fz
zOn`(xlK5vYtxsCad)|-^o^U0(vnV8t2h}Q_Ht!-SU`)(^j<x%3afV}{&G#D|b||De
z9TKEVxEgM;oJuU6@X+M!qA%DJewG`F)J8@D%zBxddfmymGq=#f;clpSggk@G1JFzN
zf;w~v8do97cB^Fut5H|4BB~7I<CcA?XWJ50Bl&RIn+TzB7@CZ}F9(zko^l^J%|MnG
zQ^7RdUbEvn(sEwDuY$~Bonk{Lhh#d<wd4$*-H3vnHE-5z)NAOr+*XHoF=D4~o>3Uh
z^|BuL1#i)Z2OXrdZsfLGr;~)}N?<G>OVb!QxTv-$(N8n2^e8TzU!gY$>5_$hgB490
z1()fW>$|jk-#Ne^3_10#p3Y1IAQ_WbJGh}a;?{H0G6V8?PRmzMMY611)*aM3mZQaH
zan)|+g*~7zkV9d0e7opKlrOG|RR9%c;7xk;XD3FHt9`qBQ{Xiycwo-Fn84(FXc%()
zAgTvi(C2f{AwFhw5}7TSpU+AS=hUGo5q)%P!~1u+ocnq^)k2=-hW?(r7W3Q_$gsm~
z0o2g7Z2CLRLeGz@n;ijI&K0wa9-e}!mh6P%HAs&J_cX-DsFu}e>E}~SWzFczWri-x
zHJ;B~-KNw*ml&7&9{z>#IzUe<g2FBc%#XoY_IE1%Pc~1|XyJY!Xq^}%V&{f9&ov}U
z7<scr%k;^`+}aH2W}*(MJcAW3;sz{u5}mL{q({{kOBf>8+>5|3EQG%-7OkD1Y1rdw
z)lZ@l%U$rSCHVCcg?%%KwZnNwjn*!Re8?>k!0=(+clV3wD~4mZ1cB!4t(TlNGH6XR
zb@cn4tQ4f$9kj)_7dXMLU5-A@)t0@RXiJ?nmj}`9^HZ6>Zg1=>3m0f3J_yEp<xLx}
zER`*X2V$Hntyq35_-+7y3{723b2ilK-FnRuzM6SR*>%<p$@XpZ#AV^<2|wP}pmo5M
zmcstiLHFWDMdas(%mCnP`5lrIMz?bY;ZHUGs=32-{H3+Q%d6Q5!fI`$Lyq(52#fWd
zZ*BIiqZ0$?m-OpCuQ3db>o-%a@=sIO4;5EZ_ic>chn{cNcR*g?BTzva8s_|<$Q~65
z0BHUW0Q?2qFfcIx0o?z>*#NlTjH43>4jBt>IR2zQa!tK^nFK_GObWD_65n+ll>c-d
z_2t*e3-?4C-IiaC!6_8WhO-1pbu#AR^6SN050CRiukE;c++;|Z0p?dOsyxbFS@8gf
zfk5??;d-r0gZ`>4gRh%uAqf$xWn^N8br!j59#kwj>9TAKn+^433l1gKJuX(4b2kZW
zP1XdCZK)PzRaxdMy!t@p$V#z&^3ia09Ro=ub#2qShdLJyr9_$lm)13_#$=|99KB|3
z5<W}VFPLhoyfa0d!epctOul{^KDbtLWEnr@^;hD<s5?o#YFO2`*DDg!V0^lcOPbR5
zi>zltE3LV?S{e>RMyH^zhwTfx*Az7RW<-op8m%2^IY^&9!`6Xad2heQCZ3zNA7|^)
z8%V$QnR7j|A+}ggVArZ7_)5CSx}H665MQqfpGWn$rb+c^T^xMo?a?s8Fnx?M^MOYu
z;;s2gyph%Hai};Uk3vblGmR=)fW@O=YNPB-dTqt~b<PSx)*T;7*moRUXjypLO-ss!
zGF{U}`<;B62yYrFOuIXYd(II1<65OTz)wN#WS$DlHV?LfY%owkNQKhk6kY|Hr97%o
z-K=l`em0rQ&w~Ob9K;n3!r^VwckCiV_?QIwr7v7EKJ;P~9g629*_8Zo`87is!B1$M
z-6ze2<N30o_{XJ^60#g|P+t_>lu*2ic#N?YLW2~Elh+||VVC2@a_<G)_PotNOa@M9
z8;m;IZn!U8s4j(D?pj<TP9Wgd2TD;o9>H?9TLmaHtNSDS89G)O!?;cAQqPb9M_H-C
zLabPs{(ux}ra`K~y#X37NVFt$TqKqcW*0qD3<bj5!nZ`oI`X+*4B>EF9oZDiusH$c
z%-VSva{3WKbPpnfuf$wcPh0t(W(PucI|jVStSy&|J_5EsQkI=rE|08%V9p4}yB<fV
zm>t={;fuwY>ql$2i$NEoX-l_LYfE^!Gg=#b0IpkQIrwPIxI8_qnRqF%l`JgW3v+K#
zj9-)H>j-oh4-*@YV_H@kQ2k={=5cC95s;AhWA^*N1e}0R$Ubn+@j5K24yp+)OLOb7
z&XwSlPA5DEgZ%fYFJZ=!mEHjIReC-DgY9X=_m@|s<I65dPDXpI?$zp$1>ZC#vq8DI
zzTk;1X^&op$GJnx-C=w4ncR?Ku7(EA(xDy7Xr)I3YY3zyW7X1AXK=L0^MvY?^GQpP
z)!8X<?<~=;Ufx8j^Pb8ZK2(|{%F)iMzuuL%a^zhi#ysryYm`*lRMBN&HwHTW$0U?#
zJ;)I=Uht(U_1m_lI4elS;5r?Z_Y=*JJi;@GH*8ghm*4tRHl))ls#@515K>=5XLX;x
z_|17gpD$rsvf61=!|EGO_n?(+A2rDwIPc&CHMRW`l4C|b3?*&K)IEiF8)B1f@O*1U
z!4_`i_jp+ToSiwR_*xc!roPK-#bPPu?<u)#HHa?B#j+raBn8UpyeR~|C`eGVpl(F(
z)kQ+%RNCE0e%&ImiQ6Ze&TM6A*LC3yprTOR-VmAT?;Llk4#_c{c#@gJ60keCkhe<&
z9%ZIBfNIyENMyazo<9*o-r(O<+jXtG1!Ge(BDS?$v>PeBcn`Ynchp{txwW}m0|wdz
zBdzz}ez|C^*KOS9mXsWIV7jk$w5eE=m5oy`P2I?*K%W7MG7*njKBnyK(L%LGcwSlP
zBFu)Lw04cF_h8RPLPUPmtuC(J$m9b8aRs$12btvcsYyeB9DKaOT_<QaP%5#7@bcsk
z+=;iK*Y%;$HiF`GdCXd;msxCoT&VNpe#MTSyAOXG72u0>_|k|v9$G1YtGK=B6^IzK
zS;vG|6wvWxcxz6awIVCYpyF}<BoLDSUSiPrg&ntC{Z=$8(3$v-po35)BkFb&c&d&4
z*(vC|TLI8mVg5ZFkr;{~BQrBIySLjTj~97M?|hD*y*-EOq1|T0%uo$jxSs!Ap>FJy
z6ye9MrXe3(WNFmF7pkm`s76Uo4IrO~=#snqQo*Ur*Y`Y_HASmm)!m0^ogbJc<UNF)
zRF4o2@wwFrTHKhICq+n&gfcpKje8;&k-(AO#*=I~b#sUWE%HpVeYP6qM6eg3C)BR{
ze+ty+1@{z=oQL<v`!5T6?|e)eVV{h66{!vmswF^tS7LsF|5JuYeiA@9LID7?`2Uol
zfBL?MKYFNZ3o&`Y@tEkCnCO_fRG2upnOV3QIe8h347rW;os9W;K}0y1unNDQNU*WV
zGJyzi7{E9{vN#oB?4TDM3B*5rW2P2u<?P>eEE}YVD*|Q)O2GXLG{*-jh6bo+0^i^0
zwmUjH=r8CQ53c7nx^z^3J(P3;NYACW+jS{xHU!Sh4MCq;`hwNiJr<~KT^!Pf5;LQ%
zpJ0wF_kFhc_n)$XkB<V<*Yu+q9<8?nl>6T@*$0!t%8+y)mS&+Jb_$~{-aIB7J8I`W
znYI$$7LvlOu6Fp@-YKg?&sOkXxY8Oz>9E4BuJm^^g&uVC!dfCv#H}xUSl%Hk&@`?k
zXOVgfH8ZuZdeDwK#z6LXXheei@^3V32e{|p-!?ksGAZ8^a4*vrR!;AZ&cUI#dH|qs
z0s`QR`25DqTM^5Keke_IW6gD>>7!HllZh1Y8fa+&XFj0%_N9SM*+O*!(n3~>39WDx
zY~}lmn`vkHNgDO_`}4~rYsK5<#k61P2P^uf#M}3T;A@$l)b;xP0^zCmA&Mp3G{<d@
zp5U(QgIzyt5_l$2OoJy8SbyN{4402#p9m1v#7u8HoVhLt)#nvb1Xllken=34rPkg@
z@3a2;1>0PYrsaNMSH%wz*lg~mx8k09u)F&%1;0<K2Or4+sktC{gAm$2WQ`Ew8syp#
ztE+qdZ(y9Eo<?JKKAnX;8f5;gJB;_=HD)~bf??w}2`|&Z1u)A`>QKZPPonlLzy@nO
z@!7#S?%~kUmRcAZY+PS)*~*0~Q6oi9UNA3oFk^3b)W!Kp6l_5%C%gRdli#dO`a=NS
z{rmrk26RqL1`It<LbNoENVBQJ#j0B7s~HykG2N7~QVFB9+FqN7xdK-}6NGZp&E|f4
zNnW|wo0DKofWE$ZO1bjTBHp!s#$r`CIGjhX8#qH+wwPKzoIopuRv|I-<2%GjfE@jw
zutbcA2kx*D=$FCTq)ZW4rYjh+=%W-8+x5x|edaKMBCsZh$=gA8uS^AB8botZ_cuw`
zF)L{Bq>4bxe6jA$ol8D#256TGe&)*Fn{nt*cgdHGR-Xx_E|A88%)PzsUNQO!H~7{k
zb<(x9Vf83^?ndI&PJFW=|F|}^z1#;!r!=LU9$lFcUsp4pPa9T)G%vSOh8hU-T{1w)
zH<wX!y;4oDwd0mOelXg?y$TZ=6N@iE{Ip?&SY`C2wg^}#T-z+)<Xa^@PRccB3oHFK
zog9>wXAszbpjLw~YbnnkOMycu{RT@UM2Q88A|M5|5)l9uBtL3BMwV$58Gh%Uuymv3
ztTnDGeO_f?k)+VIqewg1OEukafRKl)F#bgMm{^wH*AHMf9T~!roN6+f9~%n5*CXI=
zCJGu7Mu-he)+-PABHasj3+45jfbDBGGk0~>!%LbI6wrF<WeEftN*YCHBWY6}xi6wW
zMVr^Tih-FW_p_Au&%Z#kzsfqFNQYgM=twyd!eBvat}u1n#_}1<!}#!^scDJpm$_Z5
zd5fxFZS%hnCiFU($ha43{845#(e!W0ePMMMhPwN16ubGL%ImqMxXYa16#Zl0y^akv
z5iPDtE_UB~a&6k03EgI22_b3~1*{@bh7d86;jv{qXU^|+uWOw%t<z&>KmMdgAX5r)
z73l;;5|9B0=9#eDFer+*5>^d7OYqR4&wn5yT{q(HySk_PUq+b7R#fe(zW%gpzj$0y
zJ<WY`1CIMY!qOS12s_%@SF`YF&6vM*i@Mi~$yQ7cDKw%+Xke|L!%{}_X(pOD-j-LF
z`}`QzdP7)~gm#YV)s6l|Dc6zk+h|40S9bZpz!u>61V?1S9R6^kZIIR&`}`xFosofB
zrEunGDbow9xTC(^6;<Rg?}{qTv9ejzjiVLJ8R$gx$Gi)(>3~22{v`LW%N|&kXnxDP
z0PBlQOQw+jZgUfqrAuKv@}ouWM_sk1pscQ`wn8>!g-^OUa`buv;Xi|~b#ws(%%WV{
z>;4p&(CT$HGeMzx-hw)h$edl?H<li02%{8O0ByWYMi=+!GgN|MzfXbUSkJkjP=e3D
zU)wJAYGj~eEnBn9Sed3$(Xq<ymYsEHqg&EI`Klxvy?@&_cDMyo2a$dgtD6Q?{G$%1
z(#tP3%NzqYfL&hy?+|uV=6j7OtI+<tx3IN53~vLeUZFUH=<Ie!?4IA2yB(MxpWwT=
z?|QOYF(W53L!CRK5HHB^m^3=ggcl2<&?9%0z&v3v6`!6I2gEI3V@cWCeCGV}kD#QT
zoRP9Z`w26Sc1hwn312}9q<A2{Pq4t`F^Xw)o0xv$A86)R38%l(1DWwTRoP<;)-?pQ
z1onCnPpDHR41Y|V-H707;uEDxC`;$aJcp4wQ%paYLf=F1WdA!&8mi?j?M_eybysET
ziT$WT*S06nFW+M73H$b1A%RA}z~nqRzmorxrdQ7`bg;tsxJ@sJW^Odt`jHPjVN-LS
zwa8tg>1>&;s{xZ{T1GQ}^GMhpJ+ilSa`?la<j(*8@_2o8zNOK)ayqvG9(9dmLq^J+
zCSk_;2P;a7$%$47>-qg}6bT|ESBCske?iXV?0*N9<jj8uZxlozeg*`DfB)tM{Sop}
zp#P&v1R7_60|6;u{zp(sf%=!}rr`R=5bNIoJ0&4-!!eZ;`TM!<*4El(C94`sHBW=5
z`SeIV&d%=H6GiXxyr>zDWO5Vm6_ybvSWtw~qL9V=3R`l6zI07~BkcMfiQm#%NFvP3
z=vJ;p6}~B)aPK(QxwXlxvvxgtBW=e*>{}I|lgOtg3uy%@`B=L4G-)0JLXGTAc2vpy
zu}~!7v}#2p*o9S!H|L66M7}&B_TD|IWv+^zE4Lzgx~M-I`mvlXC%#MElvPQ%m)OEr
z+5B20S>o;7Y&W4J8H2Ko(+rpCcU8;tT_LlldCqW=yQiJ&cHf&qS&RpJE6wM@YD-e-
z)VfCWoWUXuvEz)2=G-`X92v-%4^XP?MJ~QT!aQw_oiq1eTtlTkmHPRkMDHSe^;CX@
zX&;}?qk=jiTh`HA)_Djz$|E-JBqs}2{h=?e8i=UZ^Nk|M8LCUSnMBoe#$}5G<iITP
zDMin}W(;I;31EqS*(LvyNpH^%C{ZJZFwKtnY@?u*55Kw5W45p|TsZWOL4tHFq??lk
z+=!v+N%K*><?x7!euwHu;rb}7xPb04{!A+@JAaV<4s}6Uk)tIs`75AOx@V>mI^%JL
z(bl-?npuepwNc}3T%oWC{Rt5qD0YK|n?Ds1C3Fr0e_doA>v}xkQ$|d&aGsMn2kFX=
z?TyYlu_7%B6`*BEF8o=X-p$QTJ06h|*rroohdRK(rKDsb@WVsfH-awoGhg2`@I|gV
zSDBWbaZYppO<b_-!_R4Jv1HoeMrxA|zpg&u<C9l~-#bnM)q#iD1FAy=w@45P^cW+3
zw$8iN<asBbrJgRL=w6(}smH-Jmw1vO?^-H0Qyg-r2`<Ee+Ld&XlK}MixGo6@_;ELS
zRXl<-4H7;Lt(d5DN>)V`&Wrq>FO&)1F~*~F<kq#3zI|^iT<jtCLayoNAn|9=O0el>
z|M-GzI{No3!Tj2tGjXEAjm^PgUvB|TULn7d?|U))FdsrW9@t!w&<0qe&1JLsw;aTq
z;73Ix-#+-slaaqr>{h@@3eil90?EHAe+S~Zi3+)QvKLXIZet&+Kw|8Zzr{&#@}w)t
z^^G6B?1nMXK}M+VlEEyVsro$#qCd_>@yvv6F7Q*xSX5h*t!rD7?OK^iXyHwF?Dq%S
zd)HA8OgzckS8DpAjMW2b5mEZ)-o_@8AcvBxac!j$&2O)Gj^WXzkKDUH0d>zG@J=jy
z7Kq)yM>cla0dyQ87$Z)Tvc9Lyx2=!~hlhIcDDrI;R268K20l?eQ{H#9zNt$-IDC7L
z*+1%i!%NLYE7!*P)Gsd^dXYpcD;&tuvl?UWZMOM9snsOiN%Vb-C1@HlwQ&1RII9yN
zP;^g{KPLWb32Q=bsd4l2o$wEwn4y3}eu4l1WC{O)6aRFzYAtC}!2Tu+7&_*Ue=^hm
zw7@_TbTt1tWb$t~@~8LpKa}~qSLW#CZe{HF=fsJEG#EHK;C~LO`~fS#-+upGzt64w
zi=;3C0Bd6>{r}&r|3Z`BuCRaG{}-L(fWYV}{;rpX9v6Io3`9##1+t?@_$%|F#|0w*
zrP9;<WwRJ?!PUq??d13$|M$W`$PBn(ksulds=tcAS@3>x5Df+4|Eu`N#49<djp6@#
z{mp~1fWR0j|4yW3#04||&7y%c8S(yW3#{NjB0@?8>c4*fdENj15D5Q@3jkQB0If0N
V{<ZM@+bAjslj$>5Iqe^%{{!Yzh8_R_

-- 
GitLab