From 4ceecffc8b60cd190179e461f360fc4078fa5c54 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 5 Nov 2022 00:54:09 +0100 Subject: [PATCH 1/5] Add ocean temple --- .../mcl_structures_ocean_temple.mts | Bin 0 -> 1257 bytes mods/MAPGEN/mcl_structures/shipwrecks.lua | 110 ++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts new file mode 100644 index 0000000000000000000000000000000000000000..0260dfca226d7f7f07d33fc741dfe6965e1145b2 GIT binary patch literal 1257 zcmeYb3HD`RVGv>vVGydv0vI?Mm=iOL7^HHObK>)pQxo&73W_p|a}$d)^HSrJiZYY4 z85BWs#U(&x#a3V{9z%&dvXY#{BxDsSiAC8ABG}AlP)F7VvH)2h*z)-N(vs9722q6e z;?%_WoWwk!XdZ(YNH{qowYa3%3QWZVU7nKz5ibX_ijjR|P%-CiOmEd{1s>LtSowtA zwK4I3!;%$R|?^BB37d-0jBXOcg- z)nLQ>x{0S=DSCa;ne|`fLX6D@|ML!CrB)xBGS6FK)_<0a-?ppEW3IXXo}T#g+C2U5 zf$hI%9Mv~(?J^DxnX&50{nkkzLxqZU=i42#K7Y1mZ+Jsl;OALAY+dWs_dkA>IWJnX zr~BFQH-ayJygKNvety-HDRDavE@7cF;8{QFTy?=Ghlfux=d^LB9wyc$T z*}S#+b@Bf958uCFE!!T_6(+xdt!&qq*TTu)OHbdp!Eu{2@RjjrdzG(=Ikp|4i4whO z)yIyx>B=WpE1%_at z(thFlPBqi!HL|bKTX1Q|?P}S7e|cA$FS+OOQ{vFO-LHE?mR>BcoA%mKHuCX~TVE9( z%;}o;yR>M(UQa_^|C5zmVM?EDjyld;{^h@o>UWW)-~aGTcz&0u>&D$(#&>p3{yvc< z^+n`SzEAsBD74{h^+UG zBHh#SGu?}3tMnPodwisrTb|v}+ta#Q$MsBl<73$%wzfF+{0mPQ+ZELAq<>1QW;^|6 zsnqicTMU|#Bv<#T7JbQmw%jZ#Z1s~3@|gy6`brcXLmPun2Q90NXL}PY zcxbbi@LJ0-Khf<&HDz84tb|dtY(vz5=C`6m{# z|9zcr&z4rjbLMs9|Mo+Vw%)6Fa4P>?wzS!T#@THvZa?fWVEZ4&vwwwnZ)CBvHBX#C z;S|>uhbQna`uEmG+~nev^x}pvz3JvXmQB}!GDP22_WjFlIH%n5A>w?w+~zKqj4I94 sOV>5oH$}bn+AJM*StG%8PnPw;%2NKst*k9qnG;UbRE&u=k literal 0 HcmV?d00001 diff --git a/mods/MAPGEN/mcl_structures/shipwrecks.lua b/mods/MAPGEN/mcl_structures/shipwrecks.lua index a6dbb4981..e8b43634b 100644 --- a/mods/MAPGEN/mcl_structures/shipwrecks.lua +++ b/mods/MAPGEN/mcl_structures/shipwrecks.lua @@ -172,3 +172,113 @@ mcl_structures.register_structure("shipwreck",{ } } }) + +local spawnon = { "mcl_stairs:slab_prismarine_dark"} + +mcl_structures.register_structure("ocean_temple",{ + place_on = {"group:sand","mcl_core:gravel"}, + spawn_by = {"group:water"}, + num_spawn_by = 4, + noise_params = { + offset = 0, + scale = 0.00022, + spread = {x = 250, y = 250, z = 250}, + seed = 32345, + octaves = 3, + persist = 0.001, + flags = "absvalue", + }, + sidelen = 32, + flags = "force_placement", + biomes = ocean_biomes, + y_max = water_level-4, + y_min = mcl_vars.mg_overworld_min, + filenames = { + modpath .. "/schematics/mcl_structures_ocean_temple.mts", + }, + y_offset = function(pr) return pr:next(-2,0) end, + after_place = function(p,def,pr) + local p1 = vector.offset(p,-9,0,-9) + local p2 = vector.offset(p,9,32,9) + mcl_structures.spawn_mobs("mobs_mc:guardian",spawnon,p1,p2,pr,5,true) + mcl_structures.spawn_mobs("mobs_mc:guardian_elder",spawnon,p1,p2,pr,1,true) + mcl_structures.construct_nodes(p1,p2,{"group:wall"}) + end, + loot = { + ["mcl_chests:chest_small"] = { + stacks_min = 3, + stacks_max = 10, + items = { + { itemstring = "mcl_sus_stew:stew", weight = 10, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_core:paper", weight = 8, amount_min = 1, amount_max = 12 }, + { itemstring = "mcl_farming:wheat_item", weight = 7, amount_min = 8, amount_max = 21 }, + { itemstring = "mcl_farming:carrot_item", weight = 7, amount_min = 4, amount_max = 8 }, + { itemstring = "mcl_farming:potato_item_poison", weight = 7, amount_min = 2, amount_max = 6 }, + { itemstring = "mcl_farming:potato_item", weight = 7, amount_min = 2, amount_max = 6 }, + --{ itemstring = "TODO:moss_block", weight = 7, amount_min = 1, amount_max = 4 }, + { itemstring = "mcl_core:coal_lump", weight = 6, amount_min = 2, amount_max = 8 }, + { itemstring = "mcl_mobitems:rotten_flesh", weight = 5, amount_min = 5, amount_max = 24 }, + { itemstring = "mcl_farming:potato_item", weight = 3, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_armor:helmet_leather_enchanted", weight = 3, func = function(stack, pr) + mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, + { itemstring = "mcl_armor:chestplate_leather_enchanted", weight = 3, func = function(stack, pr) + mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, + { itemstring = "mcl_armor:leggings_leather_enchanted", weight = 3, func = function(stack, pr) + mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, + { itemstring = "mcl_armor:boots_leather_enchanted", weight = 3, func = function(stack, pr) + mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, + --{ itemstring = "TODO:bamboo", weight = 2, amount_min = 1, amount_max = 3 }, + { itemstring = "mcl_farming:pumpkin", weight = 2, amount_min = 1, amount_max = 3 }, + { itemstring = "mcl_tnt:tnt", weight = 1, amount_min = 1, amount_max = 2 }, + + }, + { + stacks_min = 2, + stacks_max = 6, + items = { + { itemstring = "mcl_core:iron_ingot", weight = 90, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_core:iron_nugget", weight = 50, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_core:emerald", weight = 40, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_dye:blue", weight = 20, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_core:gold_ingot", weight = 10, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_core:gold_nugget", weight = 10, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_experience:bottle", weight = 5, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_core:diamond", weight = 5, amount_min = 1, amount_max = 1 }, + } + },{ + stacks_min = 3, + stacks_max = 3, + items = { + --{ itemstring = "FIXME TREASURE MAP", weight = 8, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_core:paper", weight = 20, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_mobitems:feather", weight = 10, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_books:book", weight = 5, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_clock:clock", weight = 1, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_compass:compass", weight = 1, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_maps:empty_map", weight = 1, amount_min = 1, amount_max = 1 }, + + } + }, + } + } +}) + +mcl_structures.register_structure_spawn({ + name = "mobs_mc:guardian", + y_min = mcl_vars.mg_overworld_min, + y_max = mcl_vars.mg_overworld_max, + chance = 10, + interval = 60, + limit = 9, + spawnon = spawnon, +}) + +mcl_structures.register_structure_spawn({ + name = "mobs_mc:guardian_elder", + y_min = mcl_vars.mg_overworld_min, + y_max = mcl_vars.mg_overworld_max, + chance = 100, + interval = 60, + limit = 4, + spawnon = spawnon, +}) From 04cb919f2bf9b0cc676689fdf0070360b6a97bfe Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 5 Nov 2022 00:55:17 +0100 Subject: [PATCH 2/5] structure-spawning: make water spawns possible --- mods/MAPGEN/mcl_structures/api.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mods/MAPGEN/mcl_structures/api.lua b/mods/MAPGEN/mcl_structures/api.lua index b33f171d7..cf47b4e30 100644 --- a/mods/MAPGEN/mcl_structures/api.lua +++ b/mods/MAPGEN/mcl_structures/api.lua @@ -227,9 +227,19 @@ local function process_queue() minetest.after(0.5,process_queue) end -function mcl_structures.spawn_mobs(mob,spawnon,p1,p2,pr,n) +function mcl_structures.spawn_mobs(mob,spawnon,p1,p2,pr,n,water) n = n or 1 - local sp = minetest.find_nodes_in_area_under_air(p1,p2,spawnon) + local sp = {} + if water then + local nn = minetest.find_nodes_in_area(p1,p2,spawnon) + for k,v in pairs(nn) do + if minetest.get_item_group(minetest.get_node(vector.offset(v,0,1,0)).name,"water") > 0 then + table.insert(sp,v) + end + end + else + sp = minetest.find_nodes_in_area_under_air(p1,p2,spawnon) + end table.shuffle(sp) for i,node in pairs(sp) do if not peaceful and i <= n then From 61b5783e73ba3b8eab1b9fb5e9e44061e0429af7 Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 5 Nov 2022 00:59:43 +0100 Subject: [PATCH 3/5] Make temple rarer --- mods/MAPGEN/mcl_structures/shipwrecks.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/MAPGEN/mcl_structures/shipwrecks.lua b/mods/MAPGEN/mcl_structures/shipwrecks.lua index e8b43634b..3bd0a24c2 100644 --- a/mods/MAPGEN/mcl_structures/shipwrecks.lua +++ b/mods/MAPGEN/mcl_structures/shipwrecks.lua @@ -181,7 +181,7 @@ mcl_structures.register_structure("ocean_temple",{ num_spawn_by = 4, noise_params = { offset = 0, - scale = 0.00022, + scale = 0.0000122, spread = {x = 250, y = 250, z = 250}, seed = 32345, octaves = 3, From 54d4a97a27ea01e192a10f32acfd54dd6bcfd703 Mon Sep 17 00:00:00 2001 From: PrairieWind Date: Thu, 10 Nov 2022 12:59:33 -0700 Subject: [PATCH 4/5] Add Ocean Temple Loot --- mods/MAPGEN/mcl_structures/shipwrecks.lua | 42 ++++++----------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/mods/MAPGEN/mcl_structures/shipwrecks.lua b/mods/MAPGEN/mcl_structures/shipwrecks.lua index 3bd0a24c2..49cc2a33f 100644 --- a/mods/MAPGEN/mcl_structures/shipwrecks.lua +++ b/mods/MAPGEN/mcl_structures/shipwrecks.lua @@ -211,52 +211,30 @@ mcl_structures.register_structure("ocean_temple",{ items = { { itemstring = "mcl_sus_stew:stew", weight = 10, amount_min = 1, amount_max = 1 }, { itemstring = "mcl_core:paper", weight = 8, amount_min = 1, amount_max = 12 }, - { itemstring = "mcl_farming:wheat_item", weight = 7, amount_min = 8, amount_max = 21 }, - { itemstring = "mcl_farming:carrot_item", weight = 7, amount_min = 4, amount_max = 8 }, - { itemstring = "mcl_farming:potato_item_poison", weight = 7, amount_min = 2, amount_max = 6 }, - { itemstring = "mcl_farming:potato_item", weight = 7, amount_min = 2, amount_max = 6 }, - --{ itemstring = "TODO:moss_block", weight = 7, amount_min = 1, amount_max = 4 }, - { itemstring = "mcl_core:coal_lump", weight = 6, amount_min = 2, amount_max = 8 }, - { itemstring = "mcl_mobitems:rotten_flesh", weight = 5, amount_min = 5, amount_max = 24 }, - { itemstring = "mcl_farming:potato_item", weight = 3, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_armor:helmet_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:chestplate_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:leggings_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - { itemstring = "mcl_armor:boots_leather_enchanted", weight = 3, func = function(stack, pr) - mcl_enchanting.enchant_uniform_randomly(stack, {"soul_speed"}) end }, - --{ itemstring = "TODO:bamboo", weight = 2, amount_min = 1, amount_max = 3 }, - { itemstring = "mcl_farming:pumpkin", weight = 2, amount_min = 1, amount_max = 3 }, + { itemstring = "mcl_fishing:fish_raw", weight = 5, amount_min = 8, amount_max = 21 }, + { itemstring = "mcl_fishing:salmon_raw", weight = 7, amount_min = 4, amount_max = 8 }, { itemstring = "mcl_tnt:tnt", weight = 1, amount_min = 1, amount_max = 2 }, - }, { stacks_min = 2, stacks_max = 6, items = { - { itemstring = "mcl_core:iron_ingot", weight = 90, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:iron_nugget", weight = 50, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_core:emerald", weight = 40, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_dye:blue", weight = 20, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_core:gold_ingot", weight = 10, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:gold_nugget", weight = 10, amount_min = 1, amount_max = 10 }, + { itemstring = "mcl_core:iron_ingot", weight = 10, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_core:goldblock", weight = 1, amount_min = 1, amount_max = 2 }, { itemstring = "mcl_experience:bottle", weight = 5, amount_min = 1, amount_max = 1 }, { itemstring = "mcl_core:diamond", weight = 5, amount_min = 1, amount_max = 1 }, + { itemstring = "mcl_fishing:fishing_rod", weight = 1, amount_min = 1, amount_max = 1 }, } - },{ - stacks_min = 3, - stacks_max = 3, + }, + { + stacks_min = 4, + stacks_max = 4, items = { --{ itemstring = "FIXME TREASURE MAP", weight = 8, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_core:paper", weight = 20, amount_min = 1, amount_max = 10 }, - { itemstring = "mcl_mobitems:feather", weight = 10, amount_min = 1, amount_max = 5 }, - { itemstring = "mcl_books:book", weight = 5, amount_min = 1, amount_max = 5 }, + { itemstring = "mcl_books:book", weight = 1, amount_min = 1, amount_max = 5 }, { itemstring = "mcl_clock:clock", weight = 1, amount_min = 1, amount_max = 1 }, { itemstring = "mcl_compass:compass", weight = 1, amount_min = 1, amount_max = 1 }, { itemstring = "mcl_maps:empty_map", weight = 1, amount_min = 1, amount_max = 1 }, - } }, } From 63225c20e53aaed0f49c92a241c3e4b2afa89d59 Mon Sep 17 00:00:00 2001 From: cora Date: Mon, 14 Nov 2022 03:46:19 +0100 Subject: [PATCH 5/5] change schematics for gold and sponges instead of chests --- .../mcl_structures_ocean_temple.mts | Bin 1257 -> 1359 bytes .../mcl_structures_ocean_temple_2.mts | Bin 0 -> 1406 bytes mods/MAPGEN/mcl_structures/shipwrecks.lua | 1 + 3 files changed, 1 insertion(+) create mode 100644 mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple_2.mts diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple.mts index 0260dfca226d7f7f07d33fc741dfe6965e1145b2..0a16fa9b245ab3c4f4a5942cb7ed5256f98031d0 100644 GIT binary patch delta 1160 zcmV;31b6%C3C{|UAps1LB4!sBZDVX-b8v5NXJvCbb8v5NXJub^Wpt5;SAP<1V{Bhz zZ*pZiXK!p|Vr*|?YXBB)V{Bh{VQg%3I&gAnb8TUAX>Mg-FaQ>9V{Bh{VQg%3I&gAn zb8TUAX>Mg-GXNHCV{Bh{VQg%3I&gAnb8TUAX>Mg-GCEomo$cfD z>QljR2^Sef#ge1-lBO6BhkuC5SH>3b#L`7;J|eLs5HN=2(=xQeT_uN_XMqo)FAQki zE;t(lOB^M7Ce6PK+*~}MPs;%H3Zuf5o=ZTQe+O{0p4B_4?a6#Is5SR|u@5`lM<~DC z6e>hpRNsVG@ti@c=r0} zDd+R4)}I-lDYA8xPd&|V2b8O0_)-e~VzZK`Ma?|$vCGMnaOV@yNayxl>L~9FZ(X9;o0WQ6wku=yC5GQ3B}_lbS*ux3x9PCAU&t|{Nu#;0Pm$| z%>(oTk5$-+<_^>~Exc8rSFNF_WL|{ow3F_k(ft zc0Z`muA+0G=XLbFE{wokPtIEv=!ww#6bpKv(*FCD+*_2^^RouM?@O-GdHzG;{2fYX;yVxH$Nn3oI1 z@)$j9uJZ+V!2H4lv~Fo=vF&}UC4f2RI)$}(E~&w7mMx(;nyw4YuFEmQq+2%>R2@rL zaxKd*nFn$YNgQQ7$BD-l+zw)vl5)0KikQy=+Ph8}5P$lR2L2UuRy{)UtQcla_gDOfiKs=EoRnwIoXfzY5zu1c!pq2(x}kikkVKvZ}^-$Nn^L3Wq4?xuwJi&tTNHDVAgn!oyB^VxL3cY!&3)s-IVLkZ7t~Hr`;Ju$sXEr|M-A-`F8S zHjc9p2)D+6H51MUF@F_^`5g#`TU;^5>7SZ=L_1@&4a7T+uHpK;?lFMx4&dMZ{&PU4 z=YYJP@IMp=`)cC}8{avvb(nw#Y#O3&rz66c{$X1&Sh-$q%p4nz!{7xGM_GhC4EZGL zyXRS)a1Pz&4I$2;wG^C1YaXNhK0xCU>hMs_Hy$&KL?~JrY@NPOIg!;`cbd(xnnnSu a;a%Ge&Z~J4t4DxXJpsa*`^FFSX$T#uvrh*A delta 1049 zcmV+!1m^qC3h4=uAqWWo17T@$02+~@6p=kkk)T!=7Hwl}Ut?%xb98e$V`yb_bYF9A zVQg%ZApsYEFnFBpT#b6GAPfa`T_0e(eOzDtR%0N9ADIP}wH2!>3YK2ZL zDSGoUiKRfmF|41S0Sc!|4mGa=AHlUSuS>-^DU6He$Lta5`0Bw&C(oL;15@7T_MEnSw%gGQhws%qSMGT# zjxs%)#RvK;mbtMl)O@-(wAFmx2jh9w2d13QjBl08nqy?Gl}|m*?+3OEG29mg-_@+- zaaFT_4t(5lw5=TJgSCU}bHDH5@8|_~w^WK&AFu{?y7cQ4WA}B-*w_f$2~p}Z^FJi@ zVQf8!Rbd#7W_!lQMlBy>dn3&bMh#x++ycL;x!=+)@SNOtUIyS8_iJp<(d>1zKDP|d zE@!5AHr6NiYgwn37_C-QUOKboA1A(rxMj9~{?ZPu)zS==acB}(K|a0`isyIe&T+?1 z^!)8@rH>QeLVT8EJe&`f#V&2QU-=zCvVW?0f!(a+-LG;dj`wwr5fjuv@n8V z8LN&Za`bKHr#4zvtK_gBX)v6Qb>Z*G6t$ftg1y4AQ_E7Od0z(XQxU?m8xwGf6D}oh zlvwuU4VpA+r;fOKx3v+oaD|`icThDYx{T-8S!`#CbJcY?-tDDI#k|4cf-VVvt4fzw z>#vvN@h?$o>sh%j$h%cPukJ9hsczeRMO}o|3>uuOmq~o%1rf5*&LR+;8vmAAa6E+h zcR`qc0m17Q?|8@QXPK{ve%{fxFrWB#jfV3&Ox&Nyp$GlzZ$AcRdJN3#f&YiX;q@g5R?{e8HN0v&!FhEL TVYLN>)dOJ2d~N&()e-;VIVKNg diff --git a/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple_2.mts b/mods/MAPGEN/mcl_structures/schematics/mcl_structures_ocean_temple_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..8a5a6a3137f3119e3c89cb7a2484e0ff01037d84 GIT binary patch literal 1406 zcmeYb3HD`RVGv>vVGydv0vLE1m=iOL7^HHObK>)pQxo&73W_p|a}$d)^HSrJiZYY4 z85BWs#U(&x#a3V{9z%&dvXY#{BxDsSiAC8AVqgUY`FZK7KtsTEe0gdKg9tWz8Pt)D z16ho09@tUw`K2YPMGT?{?Zv5y@i~ckK+!w~A&_u#eo?AbdVWqyQcgb57ho5ZC+6f7 zBm2+*BA%R)T3k|W1*YPGzR$_Qq23sWxJkvFw=u70Emq)RU30mty#8H|{PghqT1<*8 zDI&VMmRsYDG}{gs`hts>J; zI4yQLzvibu&+33n`@NFZJ-zH!e|)Fp`|VtdV^>#lRxuyBKKXv($B^@jMUF*&PX5-j zp?>QF<;h#yp3d;U_x#tNH9yx(S5D`PUtPK8&UeYeDK8_>+AZ6=;!N)8O|$&Bx0TE~ z|NBP8w_h{-&pm(kEl8qs@8X(QnRV7VJJs5LuX(V0#uOX9tZ5VbG z&FuEv{C|0Sd+x4pZCK2|IsHw6Y@h#>-)rN8YnAoX-BzAI@_)jW_M*oJGi#L>Pkb>w zFQ}?z365c28T!`20!Pr%$Z8wmI_OuRrBJc=1VTsoiy+^LFXW zD#FgGmv3ETJWXP5Sa6(CvB7`@pK9A9UMnv0NPA($pO$q? z)yp>a=|-G?x%h+4mx->iw(;Vj&n-;4?A*?`v0LvlQ10DbeNE8rzD50>kH1%5?EcYQ zQ?X}b>Yl>aX?rG0W$v-Fk2m^x^FF_yo$Y=8dq3&~7RI_hKXCr_kIGmX#yfov)^^Eu ze)uiIUpN2Kzu!~tL{GW)c{Ahw_h}9R{;zLU7l|vIo;G32-kQHI8>c>2wY$3)E_fC3Xi|1$-HAP_-zOXiJZ9`` zv+Y5hL!{TKn@O5UcHFn``<~jc@cn7&s*}gUeEML~a@)_hW@@x@3m%im-m2p5vcK!MpRV`JXU>uf-rF6Con5)@;I1Ws ziF+1q-CS^w!;;-IdHcN5npYDx#I0{$WOOmaAloK*Ys7h>_onNL|K3$=oLk8pq4Z;c z_n}pno?N|^U2gMG*DKeS`#wwM_E%rC_@ruIP3tXpQD2i*;1JsEBP3<*a^_f}7~A8u zAM@iRo;S~|7oG7_wqsfJo}|9Z_bXotzCClXEMUIHZns%gdylj1D{uJ2*Dud(WXtyC z>xTdBhZ5tnZQh(KKbI}5w}5dr+oiW90zEV9wbRTma39mz_|SsKQNU!Gy_QVk70pzc zPo7um1!tG?){20O&tMSjc!`i q&M#70z4e{R>_pRErm)Amx0$a9|C|uk&#<|QNhIRevHEl0ISK%mQk{