From d817442f0291a6afafff7407fda5208f98fe445a Mon Sep 17 00:00:00 2001 From: KathrinBailey Date: Sun, 1 Mar 2020 13:42:14 +0000 Subject: [PATCH] It works! Everything works now. --- .../items/stacks/sheets/sheet_types.dm | 23 ++++++ code/game/objects/structures/chess.dm | 76 ++++++++++++++++++ code/game/objects/structures/watercloset.dm | 5 +- icons/obj/chess.dmi | Bin 0 -> 14696 bytes tgstation.dme | 1 + 5 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 code/game/objects/structures/chess.dm create mode 100644 icons/obj/chess.dmi diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 6a73abd733..0ea3bdffe4 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -33,6 +33,12 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, one_per_turf = TRUE, on_floor = TRUE), \ )), \ //END OF CIT CHANGES + new/datum/stack_recipe_list("fancy sofas", list( \ + new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/corp_sofa, one_per_turf = TRUE, on_floor = TRUE), \ + new /datum/stack_recipe("sofa (left)", /obj/structure/chair/corp_sofa/left, one_per_turf = TRUE, on_floor = TRUE), \ + new /datum/stack_recipe("sofa (right)", /obj/structure/chair/corp_sofa/right, one_per_turf = TRUE, on_floor = TRUE), \ + new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/corp_sofa/corner, one_per_turf = TRUE, on_floor = TRUE), \ + )), \ null, \ new/datum/stack_recipe_list("office chairs", list( \ new/datum/stack_recipe("dark office chair", /obj/structure/chair/office/dark, 5, one_per_turf = TRUE, on_floor = TRUE), \ @@ -98,6 +104,21 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ new/datum/stack_recipe("extinguisher cabinet frame", /obj/item/wallframe/extinguisher_cabinet, 2), \ new/datum/stack_recipe("button frame", /obj/item/wallframe/button, 1), \ null, \ + new /datum/stack_recipe_list("chess pieces", list( \ + new /datum/stack_recipe("White Pawn", /obj/structure/chess/WhitePawn, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("White Rook", /obj/structure/chess/WhiteRook, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("White Knight", /obj/structure/chess/WhiteKnight, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("White Bishop", /obj/structure/chess/WhiteBishop, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("White Queen", /obj/structure/chess/WhiteQueen, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("White King", /obj/structure/chess/WhiteKing, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("Black Pawn", /obj/structure/chess/BlackPawn, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("Black Rook", /obj/structure/chess/BlackRook, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("Black Knight", /obj/structure/chess/BlackKnight, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("Black Bishop", /obj/structure/chess/BlackBishop, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("Black Queen", /obj/structure/chess/BlackQueen, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + new /datum/stack_recipe("Black King", /obj/structure/chess/BlackKing, 2, time = 10, one_per_turf = 1, on_floor = 1), \ + )), \ + null, \ new/datum/stack_recipe("iron door", /obj/structure/mineral_door/iron, 20, one_per_turf = TRUE, on_floor = TRUE), \ new/datum/stack_recipe("floodlight frame", /obj/structure/floodlight_frame, 5, one_per_turf = TRUE, on_floor = TRUE), \ )) @@ -349,6 +370,8 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \ new/datum/stack_recipe("black gloves", /obj/item/clothing/gloves/color/black, 3), \ null, \ new/datum/stack_recipe("blindfold", /obj/item/clothing/glasses/sunglasses/blindfold, 2), \ + null, \ + new /datum/stack_recipe("shower curtain", /obj/structure/curtain, 10, time = 10, one_per_turf = 1, on_floor = 1), \ )) /obj/item/stack/sheet/cloth diff --git a/code/game/objects/structures/chess.dm b/code/game/objects/structures/chess.dm new file mode 100644 index 0000000000..7bebe6b55c --- /dev/null +++ b/code/game/objects/structures/chess.dm @@ -0,0 +1,76 @@ +/obj/structure/chess + anchored = FALSE + density = FALSE + icon = 'icons/obj/chess.dmi' + icon_state = "singularity_s1" + name = "Singularity" + desc = "You've just been pranked by the Syndicate Chess Grandmaster! Report this to CentCom." + max_integrity = 100 + +/obj/structure/chess/wrench_act(mob/user, obj/item/tool) + to_chat(user, "You take apart the chess piece.") + var/obj/item/stack/sheet/metal/M = new (drop_location(), 2) + M.add_fingerprint(user) + tool.play_tool_sound(src) + qdel(src) + return TRUE + +/obj/structure/chess/WhitePawn + name = "\improper White Pawn" + desc = "A white pawn chess piece. Get accused of cheating when executing a sick En Passant." + icon_state = "white_pawn" + +/obj/structure/chess/WhiteRook + name = "\improper White Rook" + desc = "A white rook chess piece. Also known as a castle. Can move any number of tiles in a straight line. It has a special move called castling." + icon_state = "white_rook" + +/obj/structure/chess/WhiteKnight + name = "\improper White Knight" + desc = "A white knight chess piece. Hah. It can hop over other pieces, moving in L shapes." + icon_state = "white_knight" + +/obj/structure/chess/WhiteBishop + name = "\improper White Bishop" + desc = "A white bishop chess piece. It can move any number of tiles in a diagonal line." + icon_state = "white_bishop" + +/obj/structure/chess/WhiteQueen + name = "\improper White Queen" + desc = "A white queen chess piece. It can move any number of tiles in diagonal and straight lines." + icon_state = "white_queen" + +/obj/structure/chess/WhiteKing + name = "\improper White King" + desc = "A white king chess piece. It can move any tile in one direction." + icon_state = "white_king" + +/obj/structure/chess/BlackPawn + name = "\improper Black Pawn" + desc = "A black pawn chess piece. Get accused of cheating when executing a sick En Passant." + icon_state = "black_pawn" + +/obj/structure/chess/BlackRook + name = "\improper Black Rook" + desc = "A black rook chess piece. Also known as a castle. Can move any number of tiles in a straight line. It has a special move called castling." + icon_state = "black_rook" + +/obj/structure/chess/BlackKnight + name = "\improper Black Knight" + desc = "A black knight chess piece. It can hop over other pieces, moving in L shapes." + icon_state = "black_knight" + +/obj/structure/chess/BlackBishop + name = "\improper Black Bishop" + desc = "A black bishop chess piece. It can move any number of tiles in a diagonal line." + icon_state = "black_bishop" + +/obj/structure/chess/BlackQueen + name = "\improper Black Queen" + desc = "A black queen chess piece. It can move any number of tiles in diagonal and straight lines." + icon_state = "black_queen" + +/obj/structure/chess/BlackKing + name = "\improper Black King" + desc = "A black king chess piece. It can move one tile in any direction." + icon_state = "black_king" \ No newline at end of file diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index 359436dc2e..ab2e7c17be 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -616,9 +616,10 @@ icon = 'icons/obj/watercloset.dmi' icon_state = "open" color = "#ACD1E9" //Default color, didn't bother hardcoding other colors, mappers can and should easily change it. - alpha = 200 //Mappers can also just set this to 255 if they want curtains that can't be seen through + alpha = 200 //Mappers can also just set this to 255 if they want curtains that can't be seen through <- No longer necessary unless you don't want to see through it no matter what. layer = SIGN_LAYER anchored = TRUE + max_integrity = 25 //This makes cloth shower curtains as durable as a directional glass window. 300 integrity buildable shower curtains as a cover mechanic is a meta I don't want to see. opacity = 0 density = FALSE var/open = TRUE @@ -633,12 +634,14 @@ layer = WALL_OBJ_LAYER density = TRUE open = FALSE + opacity = 1 else icon_state = "open" layer = SIGN_LAYER density = FALSE open = TRUE + opacity = 0 /obj/structure/curtain/attackby(obj/item/W, mob/user) if (istype(W, /obj/item/toy/crayon)) diff --git a/icons/obj/chess.dmi b/icons/obj/chess.dmi new file mode 100644 index 0000000000000000000000000000000000000000..191eed8843e85000359c67ca6c911e19de5a8c56 GIT binary patch literal 14696 zcmV-uIhV$XP)004jp1^@s6jALRO0002VdQ@0+L}hbh za%pgMX>V=-0C=2@(6J7JFc5&@xqXTYtj35sxO6cP!vL>9id1?j7Ho@zw|A(E#>C4l zcgZ(g{uIu|rK};ZO8!*N<7h#^al7Me!7gYJaM*LE74|yB!v`4@2uK!{R*g#a2$Z`Dh6?e)Iz zz4PJTxBBfuH_%H}L!j{R)ahn-qyF!`_kW+~x%WQzU*gD-Biy#zcC*a7*$;5rezxs4 z0dL!ytzMc`wk)ajyvJ<<-on-n0<6a>l?s(gWnJ&#wCP!H+Xh>`G}$DcElVn}GGe2! zyAo0XbPWyB(~|>GsZ@&7=P$4N8E$*PThOB93oRr?r!B;B-4w2yYI?y+rNSM%wy*jb zZWFK#HamGi-Fx7U4Ix03e5q8b`L$THHpBz2H{`b3nhBWgN~mmCLfx@zyIKqLS8KK` zsn%H@K11|pckJ4}VPt>>LcI9mbIeX&*f89s$hUnk+j0ER+j-ss5yNL$i>--((Zn~O z&jYN<{jSEsnb*ue5>kbo5Rx$4l~CZbcI5GL)so%JTtJ!)2-F}!5TyG*x2Zz*_O}en?&rSg`GPz zG_<0hwcA3^R;g4tcI=0M?)+RX*Cb#nmFk!mj1GM3L=69bBe!GPVXGqGQXLRl=mFO{ z6INr<&ToB|PKBYagj7RALyIO_*yh&02t#ovtaS{c*c(N@=tLYF8|B=&Q)|vWSM34A z4yaVL>jym$V`HNmM!smLM?FCJ^YyICma?#OM@L5&CEZb+R$_KC6h{{Vl}d$tKEI*l zi}peE>sm;-rjw9(W$82(e&c{MQ=& z*5m=BjgJ0oBWx-1wf=0Tc)9JkeFMXySc7l zSTzB|*`JRjqS2pkgk6t(8$pOx^0j)uR4TzY(?)?*}>`>-2LhMf6IgvSB0) zSK`rjuk{FaO#}>QU^EZgh?1;Z#X3cVr3z7_wh<&;>KQ@@v=;0&Rl~sIW2o=}KCC1R zt8Z@P{b1olq}@aaJ#ecnbu77&6QK1}YPHyFs)ku=4{$xRU^Un`vQ7=ajqHf! zZI)|)_;>ASf3)~F`rc9ex1>rxibZhMS4KTKp9eFg$>6Eq4mT zaBC@4DwS$mQ9>*BO7O$4?RbV8;fITmn}r|Rt%|>@5ZqdT84ba$A)=ijIEuXz{P1hL zLeOpe&f%{r1h2%scIq@>rLO%p{;h>CRwK{WIvc{X;P7Yd4!_sKUJgI}zTMAo8^1I7 zt0G{lg-0^C+C`Y#_S0i)UIj-hb8n_X(`~!8?Ut*CxosaVTQdOzDz9F^U`dvm}t?>=TCh6(avkbESKv=YvMNQ zLeA^QdrpHZ_Vsb))^R|kFh=yBCL%fn}g{%p1+H;fFhK!~q>?Q4AFnddiLpD;?k zGZ$7?G8eT~d%)#Lm`bHKjC|3Y(P@A3viuN~r1O zqsP_DM~^S6l=<|hKiyFhwobrGrNYR_2%yPVC=^y5if_4XnD0J+bkUuNhaY~pc@Lx0 zBn)xC@yzqhX9&r*k=`dd0YkM0&|a|9By6=pq0l7XS|;AA2^iLgEhQ4vDwo@CYn@#^ zJw2Q{bqZj^Nf`A!VaMn5dDc1*E47e(Pe1+iH5DqUREn>C?Q0#wZnacO>qDM9caD5M zzot6KRS|HuMGXOTr+eN)Vdh5Y6t{-CQ>RWfiP%Y7N_}f7MTSD5&=LI5vsEe;zVn^$ zG;v$?2|MKlqYI7J^1HD8Pd<8RRcY9oLvYjshJ*;WV>)Hg4rrZep$F{CbY3BiLyRUxaVr>Cu$Vd~L(Gp{ugh1Tg%{E3f0dW}Be zTF3{t;35PT&%$%(&T;J6u{G~Qt<<6&-s*8$JyAF@+KnB(^#0_dheSxirLK(r_kaE4 z9qW&mj~-XKTy9b5|EbxC?zDyHk72_{Mn-t};fJvk*^chNMF%uG*wI%wDD9pMA$Cac zXcTDmzO6)Ux3wO-MbnS9knooLthm-Yvak?>`ZArJQ%hY=4?}Jz2fo##efRmJH$|T? z47K6jXV~_=!)uf0yX6QN&i?3%@Z7m`9S^}#yB_&+xg0^Qvs!(v65ev#Ft9KKqaCpkC0VzMb!t26M%yfFA>pdUiJ~*GRU0qd6^G7w z!B+A`5C1=`B>cuR&#%b)0nIbfrj6K-TFUdmViMl0 z*&o_kL(z@wM*SPj|Jq%cvDBX9Qe<2U32#Wiwdmt@!V8A`eoIxKL~%PsfaQuTT0KC! zZLL);>sc6F&z9=<^;G|?dLufV3Hs~ea{Nwt!RR0?bq?FQ`pf6@kR$Ny=?51(N* zc0&R#rw!P;2x%=)g!X-KVe4UhYZxvR3e7MO76i1*^R!~G1V8-Rj%TA!$9jZw1(hzl5i>PmEeb8*ZT|~cKj8G;G3;ax6)_m)Un)3 z+kYE>b@(fmXKVF@xm@m=1xP2tZ`4|6W3;h7Jw0s?zt_WF4nO>PyPx61ioY&>z?*Gh zapYRd!PjGdbol>BOi<~rF=J)f=IvwK{I4AO74J6w>g<*!U~6UWMv(Bg5C8TZ1?C@{ zv!?HFSoK{sRqc^T%Mw;2CX*8hnLO7^-|L&%^6F=g{MOam_&2t75imTMz8M~9BMJC> zhd=+ZlbrZl^VZxUCnnuw%n?F}c%Y+me67pva23=^ z5-vr)(Ar7De{uLJ!~*xl_23Vw9=0l*ERrp_Y{H=%3mYFFpBd)4fX^vl9LS(ZkmIsd#_jS(9qBy3 z9R8{a7%DRTv=R{3cPHZC9R4>CJnKC3&)tL?Dpvg62?;xZJ-`r}glRMZ9rQqZz#N)@ zqrfX@Qi3KyJSL_y@z|eN3U<%E-1i%QaOC%=Z-}3iJBpQHgg|?n0|*WQcLH08(`C@B zG?)WsfEtQ2@HX%cifKUD5Q{UFapPZG6@Eeuc@=B-<8lw%fgK1o;}d5V#S99GgCK=N zh8`fnRpvQLfwuq~u-L?VRslce&7|V)e_jfIO&%~jh;F@yun}Q+xey#a$9l;3(&3k~ ze`NjsR}$UoKylvRvt0^Cu-JxA4%lK|X%=?yC7OgKpbX@Ji@^7RaHdZ1lg#rQzB+;HRO`LgZi~$uC zZve+ojG;-GPKzscE%xJ;;>-E?-d~jWvIC!9rl@nC0#HU!0RjX8dUB+I9VqU>A;TtK zO+sK7c>vPyeBt zlzYkrYtP+k6NAjtMUBnC!$3C)^3-@A?QuMG=Wj)O$3FCcB+bwN3or#J38k{yvUQW# zGCnaoFu~YUz>CY_&lQ5bD7XjsBwaj47ReY#nB^jZ5&{o_LJwdZ*hZau5RBk3j>n_u zMZph%e4r?m)V8gg#O9UYR|@vtUr|re&kQwQ<2@7-fd|wPR1h?vi5~;<2+k02h;bfe zfHaf*2t@*q%L-=7a`U#FwRLQAG5)&5i8lIDbky37{l|yDxc90%`nUXs*gLFxNsz~* z#y;RvbmIfxqQ<`mz70GFya43S7nC7iKaY@QluP_M0dF9_MO;T*+5I+KRuXi|L^k4F7+lydNwUhm2aGP~i3B1@*w8y=!`oS9$fnb7S;3s>CFd z6oJQqPm<#Vd7ectFs6Yz(1Y&027+l+GY9-R^Y46M7w`ny3jrX&vl<8LLeA#Z^aIgf zh4|&FAKR_qLHhUzy`1JeuNaRrfxtpA1Z+kS18N8+P+S2T<_!e_dl7gj4gymMPMDDB zS&h5vLe4CQpQv`lld8xGj^iNMj9}UjKa1cHf-OK70t+3AODH}7K0v1@ZvkD*at}!g zRPj)p0cHVTcz4%D(8Rx`E+s|P5TX{XgIkME@fQw%Av0-T{dv)F2bJ=e0rmoajT|44 z=NUBlE}$17e*?iI*bLy1#bOW(8^JvAEN}uCM2E)vA~-65e4&03h{Kz>yg`ft4gnTrbZGX_TO~R4DmpYN5y@_$ip<~pg~MOy zZN=ZCdfCq=EXH{k@JxsuLU0&C7Z%^d;jgfG7n^r+_yG>@;&2ysGhDudXs*_GpgpEA z_^Gt*EQ6mZt1z;G4%`tdVs4uLDN@Wi8aB|b7TvaSk{qC0cYu}Cz`w(_08 z9Sra$R~ZM!(BbrH1YgDC1cJQ??m;1dX#}HmagibeC@!NokIn;K^R>Am7EtrOO_HEI z$J{nxF2whQ&o+A5PKI+_q<~&kyTAiL2Em_Tqp;Y4#jsh3j02-MoCdZcxoq|VYX}^| ziJ(`+3aHf>miSj%@f(59G@3LS({9Uny-h#~ix;toVKIcmRvDP2!KwF}JO);zYNaEJSG2&eVQeSdPReh7P|jKJTJ8nj65Q zz!fasG35JIwsHqs2=IA>_sHQfh0SFGhEZHL@8bYn5iF&^lR>|2+2wILJ_MW$@%u=z zgDf5sOaMNDxh4SwC$I^CUD!OuK6>auAsOc!ab`G;O&W=Xq6Cysxad@%3qlV_E%5qn z%f8ZzFO^RXO%xwJv9E#uskmwLB&;*R;CIYDYe%vAE%`%sZ;%`ztWJoZ@ zRkPip|9%VF3myk7Ebe9tJ@is#3o-f`L@>!QX0VtsUN79AOrSS~?Z`7U0zc;9UV|Tw zU;^zu8^8cMm#hHe2-4ULaVG&qJVvnSA&nr%D3|e>HiQF3fIx)AGm92b)THNx`0HAP zd|1SR3_%3wJ-h@7=Bd#@d%z5kLNEs?6j^%l@hPKd;8MpYO`JF}!naDZK!R#3mJ()& z7URc>W8*Mo{%swdHzm;nSVT{NBwbXQMUlX!7mo%OkRV3Y{B5{D7#8RiTN=C+e)wyN z4wV8;Mi))U@DFS(e9AcV<2G$MHP^w}Yv%Pq1V3gw-ctBV zX^MI1V?D`2fq{iWq6mHMIZp-*GkhtEU!Y7GNfFF3m%>L;F@t}%`Tv)hV2S{rBn65z z$TC4UQ`AV9!Qab5vBWe`!Bol!NILHPQuvn8?XRFoBT;6eDbgsmnw;(@oWi4zA_XRS zk7)`NNT853ka$2G#V&(iMlomFAOys1w-DmrQVOZdNpnE+A~bd)yXp(+v3lmXjL~p} zO%=%ulHGKZW}Y7OD)R#HFp^)z;wuFFF=Kp*39<sslSffDtKgkT@<53OKjb9a$stHHLxCbC()bhz z5Gd|IpHWYt$eT8V&yb4QS3~>{g+AbVRq00V#0*CrwQ0jKnas=!|@o^Ll7WOaSAQDQ2pj-BzTbml7ZR6%3LfVe=PZ-tso~(!Fv-d;6!)T-MNtGU1Me?`za|2P z#Q+;Ak9H%ClkS2Rwo%;e$xNh~&4B z{5pz%jN&&?d>YmCn8(no*0BhVuppa`Un(lmp&NfO2VD4s%5Ls3L=6~ze?ei4vOB`!ztR~>?v5-40x z`1@(GeeD1C5qbIVy29By1>z#Gg8>AS450JCSJAoAL+C}uUX-bO(?2hw&x7AY*W|U{ z%25i^Zv13XHD)q&y|xs-z~3?nRs%)Kocs2ncn_VEK8W5ZJ_zhLp3WvLkX2NGc@*bS zJdY0lfeFD%K{^(@E`AJWOAXJe01nC=#p%iP5rcgnid_iuK$QRibep`l3&p$%|I;X5 zL!SeO3z~E+b|Q+us(QfI94z|DKpS-@^?KTP;YN6<61v*w_y>po!9SfzUj3iTb${ol z_&@Ex>{xUb}8Q<`HyZtdBxjFwmVmJ6G_>qxdWKfUD8RYnL)r)K;U9 zw^sWUpZe058ee>}D-qB9q&C(+APggmh*tE1YD~Z{GG$U^T;di5C63zto@t)!R}AULsU7<3C`l9 z2i_*kkMvecxM3ZzaCFx&?_1>lSO2P(9;BU?(SBt;D>IL0Mu+7GD__fbGPair0*yyd6 zaWLU_!SgBsmL-BMU5T$Rg?~c=u0)&$7Kh=`Iwg*?+{Y8NP5@Xv0RevX@UMRSO6>gS zQ+8rsy55`pxI9FG)4aW3ff23dU6AB@GdU4ROb=_QaCkTN{32-(0<#4e@ProF-#^)xNSu$`F4)@B6-|!iFYyY@ zOIaW+!KQTPY(m6dUpu~cB8u;!nym zRq`(e8TfZ!I`ZXJUks1pr|fuNwc&58D~~`)h}=;Y3oc3HClcd`cH_tTs*PYgxhnBWmhAuc?~nZH+a1AIB2y0nS0Rbnj^|ibNeETk zIDFD|6hppF8|Hcbb_4bIg6T zOzB`?d0Tz_UZDeC!;pz5Ji@>s&_kC5}5PT;d7l>34;3_4AWDs{ z-w;C;-|GwULzzHfE$m9f9lO+Y(S##N7-rB6IYUAY-oQ1xSiim|%{}%yFJPGi}z#t5wyZ zy7cvh3%RiW7Tt%l2=AZ{P_-Q&Wb^UoU*D%>V!xPDw;TR9Uw^UPInp^Mj=0 zf+e6)ja;CJK7*}KAEe>uV7v7B>hkVd5F~9Iq`yG?R#SlGH2bEF`08NI_Y<%@c4$KA z3AxhoUy^{W`fv$gQ0j|0DfIo+4EkU`3*^X>VUSrQCmH7qv%Ck$_3G1Q+@YEI#+}CD zmvbyK(-&jG`ttD?L;fCf7OKD3B}qy140T|}9E9J)PO{v?cdg@$#xBif;_jcV zR-dm_4Mvm%(VPIHIT2zkTy+%CoD>0iGEABCSjz?1WisQ&|Ldyt0m}xT#pLTnuoHdm zT4mwhN7c|TdM<3)5Q~ZFOl)oXgv#juZe>9uv5$qxA3nn|e%1Q&zesd3QY`y>v^b(*CxX3LY(tPl;9*flP{%Umh)_j~^jOSrAAMv= zBPnq~L7+%muH5P>>*`EU+p_$^69!XforNjY%?4lS_Wbk zt=QCM>f{815_1e9*sgXm6Zpx3JGa9{Tv;i8vFh)!1Q2NA*$8@oO$c_QWh&wb66R}w zpkXdGh2lN4nEVvdmJ_V1{qtpiPn3LV;Fl0Qg5YuB0J<#d4nvA8+EI9jMIK2hkcyP$ z$n7rHirYV5_V=hjPqO=f$AJ5RVf01yKJ=ZB3_1dA1MWpTg|kGid`ggd{I@OD{zdhG zt@?B>S_NRp48Ud6$qrhX$w5#?S3e|yEQ-@8s$As}265O#i78%Rr9NGVA0=N8&}Sw? z!VGc}U7D0faSk|#E|=PkqJ&_E_t`;;gDS__^62K(;0p_6uuuWAA3?9_=)DMY4RN6g zCO{X0UP9mB-HgIT@IDIPgHph%+8>@Z3*b`-4zeK28#4nJR^!xwyU+y@M}do`fVEkn z5;XM*SB2k&u7Z9HtuK=>qzgT9VDMw;^0R5Qg2W(N8!=Srkv^14YU@(?O%M3ThrhV@ zHTTE=Oa@}VuL8$Wf?a5Nt}22F1PLs5VQ~i*yAkZfVmrEGw~m(aveDu=4N4p$i$jgm z1XL6htNzZdy_r`hYK22*zk2rBr#|ykQ{%gd?~A)U8Q6A&d|QAa1dk&)h_1}tibWQ! zytEa;Hb5e{jLr#j=$rkUDB{pVpj=K@XKsuiuulr+MYLALV_qdbQ$Q1ox0 zPgkz`u`u7V%^=>5;9fHsY%`$Bgc=J$AByehaL|puzmP{UfS^d3ohV&SDsHTgSFQyK z6@+=GmdCxzOn@}H9&a2tiCz$85x6L_W{_+YNd)hq=s~a*#T;6z&lRy7x4-7c!}_~l zMtin2+5?pkykG`=0$rSHA?Qb6gM1L!g&>BaN?0W=u+eu%gaFT~AE*m;U425OU_aXP zZ8EPS@O5;QDH?)1rjIV7E5x4wK4#wU9`wbkrkhoIQPSG~4lLG(L-;1&(P1V)=YRJi z=r?KjG&bW1=CMq*t|s7K0xUy53(0W=zeJV$(e-n4MxQPl&pbC?8~?em1ETl}-xNRU zS-%UxgJ^Lc8^OB>-o;`Xtx+t@Yhgn>ihezgD)(< znfL8L=QUdpWYIc#uLGB`c#m*3EKo=uMDQ{6#hiyw6cAiRaRAtkzM!-@=;mUfvcEU( zE{Sh@@d2&EtS>&@fuIZRS$qWFM&Hh>81H8p4|f{HMWBG>Df7G!nDYDv3zw#30Qo}W zu4UWba0eAWThV!6AG+*+8u+iK4MiYpyzrb!Hwx%W>o1tA0G~9Z9YI$}hkGv?e{ug? zuvj0CK)cWYozQMVaJTV%62WO4PGeKUCWS)+n*ug(VN=FoCl)!hNMRAdBs1)$i*4wY zv@7G+)5pso_263whJpKxm+=t1jNm6&Ok?BXkS0bFmjH+FWAP?7T_!}kgj&V|#TeU( z(Zvn*`7+X55Ec4s=9#+z5WEE(!{U7`;y5IUk-#O6%Ny7{V-{swjn}l$UP~wIf~{mo z$;`6&m7tN4fu2xzptS{aXiEM^<7sL}moJV>KQVfV5yNEyi@(C+hv?jRCxQ`leik>+ zAa30Lw37P5)i!i4CxGvuJ#G;=ghhbOSzI7S9|>$+u3|HV#gEV{;vV#>d6>l})na@H zLVY}u_5vS)PP{AVJZHp^P$0O7%`{q?e}G=n45Fx0;u6yYybs)i%~llenZX}JaexGy zC{jZp$@dNSWIBijb1#2lCiewkQ9(q7QQbx*_O>X<3kbr zxD?6|Koe%OAx(f_487&zV)F>QiE|a38RAqJVTg~=g^R^;^eVXz(flX@X^0p{C*yTL z7`O)CvK-xhjlYKlZJ1F6C($9u#o~Y9LAK#zF^d;Dm~=+pSTwrn@b2r4Q8Kd zbBqOzLZ!e9(eQH%oXBynODNhzM>&gFE%ksB#D#a32Yuk0GmvP zI)*?Re9O>T-))tI8wmBlk6nW=7wa4LM~IV0ugC?03^s6;BsLj7ip?Vke74bNGGfb2 zl!em*LAZd4p_EUx;U}+czX&A?>1APaJq&#TkU)?@5HQOKL+s+08RqYjAxVm=c>+D@ zb$PsK%6o()5CZDHcTM{(=~w_c9DH=>pGR+{6w!N*qoxlI0*`Qjex6`Ef0H{ICQHCQ zWDqRuhq@tVlz-X*G{@fxNz(FnSmvQ^^ZQ!!*8*vlCptyVqHs{u4e=JdjxZe=phHWX z7}JzMizF>YRM(_ z`9!n*85Z{0z@iFfFH-LS%rZuT6dAUeOe}+E-d&h~7v2yHane8+8LHHfOSC_VAF2#G z=*ibWZ!#xMUubWbMUWyOPMkCr3peHB=5H$KeY)_}V!@WyC)7GPF={{xhZ3PmmR@+& z(R+(2ED|Irqo^QISoG3`Z!V*z%rk`7Rj=9cR-)N{3qpN3sX}?O@NTKTlB^6wcdgcRWkZ%AT&)TBQd zGC6#870+Ufh@=W8SnTW?Qob*0=ez$J&P66@12U2&hu#Eo@*O!6_sGk`W{ym<7mo6azqtEFW-DpHm90&sUV*BK*9V z^aWa&$74a!Q|qqi^W`oSn+SLx2biVI+ayR)z~j42<0JW`d5%%^DM@&dJ%__IB`%6F zl8!SwFRLx>&wBzvfNE|e2k6{2iS~p!v{=zeAk76H!Xr(RNvixAR|p7r3jMKJSAdIX zjpz(IhYu}bJ9EXB{?Cg^&k=FThIVD6cp5YRejNC?8J$;<^zk~sz+J>~nMCq`^CkfS z+tJEc4fOTZF&3hiGW{R7?U|D4e+RTaTo6-L8ynBeqVNMqDk%EQ>>Ec?2lC{p;*uhb zq(T*t_~ejWK~h7JKrv#-TR@pbjNaalyY{$)vq&E=h^eZrv_73O58pt0k$!Yeas^2W z!89|>;}A0gRWp)dA4M{ccxO^Xd5-~tnsiQZ_=YY6lPqy~I zjM4B2n597(7^lHLEYe8g=ntQ{56Nc{{63PuMDZ*q2%SbiKnlg*GniB8z26yhE*usu z03;n}GVFf~uGNPNH9fSjpqAR|L9q>qjn)I6qfVY#iZrljki_FEJ_Y0bwxi7FmTAfU z4@_vjo<3eoXnbifCsCBqm!0oL>*Lu3B=JeoAi%@LV;G-D2)IJP%SgIVbfb6x#SZ#7 z#yA(vY`z}8Yw#6%#alAZyc_L>T@>e$e2jnx@DT(w2pAyX?-TIzNb*RIo5|CKJ|n-2 zt>jUhX9i0MDrNj@@$F{&C(z+*3fN4Httk4;fKK7_n@Ao<;v0>^B$EFT#XmBAe-1c; zA_feDkyg{<>z1&VZNC(LqaY;H=z@Z7HZy`=h}F zD%=G;#vrGd;fH9cF~_#9tIsDQ_#dFXu+E_rkD^0y8O2co;skt}fL|lv7YRrc@EVe5 zji($o9&k5`IntaU&lyo6n@U`{Ui&Rer!1Gz5hK9oK{Ek*faifr1U!zM-zfQpa zi{uMPzJlU2NCu7fe;IfQ?a2Cx6cAgGO)c*KrZmSs_J6w}<#Y^3N})ZVhZYw+hooW# z{s59gXen5WP?}bfLb3(PgGlZL<_RbvIfK@SE1*ycQnAC-jw(MkUalsS6R z^>ufm#Sgcj#Sk$QW6q=veI^7x4LnMcvyAhS$w#`#QIi&FH-7SZ_%4pp1k}0KgvlrG z!sP&A9ttm`_%BHQGm^hV@&fQ4TB1VdiaKZNVlzMDDksb;IUS3=b3ObFDOE+ExlRJd zk?fx#okmJVd{s{Pnc|OU)hIS~HqV)+E_kXh*=84ZdKK1=C zzmRPtihI34^-5FlAD}})KROqY=xvQ5U<+EgeaH;_2zu37L{dQVuIZffXuXony@}IP zvkh;6fq(g>BVRfl?SLr0FIBHH8S6##rxfX0H@&;R4}Cb_W1edlFpOdtco>^O61+p1 zS5QW+s-F+6Iz2tk*~z(D;|BP9Li_^y7^@$hPd@HJkzx-o zFvgFlGA&?pCNnx!s8z3rUro&I@uli5Dd@wZfFebmM;O4P-2CLEGBAn$IIQ!)B&vBW zVJG2ATCtfFJ2=eSR-XBuiF5h6`ik0LS9Y2z3=qP>qU{5XO3n8yuQ zwwUp0pwF%w=)%~6p2X>V%lI!6C;Akh`ckc-PIV<>c^sM|GynO?m_V+TAFq@ioXebj4hPt<(r)0ztLbqKs;vEJfD**YJWUFQx^K@QGWoU z;x#6Dk{rK;uF<;_ts6LOaEH+zXV?ttRul)=M;G^VmJ07UCu)A(I=xbS%ZB%W?=Zug zz{BLY552%RfIh2Eu<(iTuEBo55O5l;ZCEwrThK>bjK8QN`tHx%T|WCKXU|^X!oxA! z%J@PhOhqpNa0acwnLuxg)X}Ttk_l5&hH!70ftxbqvjqM?I`J1XC9k}V?VtO%NB-@S zH|Q7e&p#A*tS(=vgi<;o|A2*kF(2)TYbFE~2$)5yyN{zQL(ZYqIo}sP4LevB{&~(n z6tk`F02MDPJ*x%!h;J5&Bw!mc?jX(q;vArt?Zn9;$dlw1X80x*eryKEwnZ?QPJC;{ z?HA`CN?1ErsvlA%lgSK_Bx8QxvI5UjmfSFM(iFSL#foF2~n{ zpNY9c#hO3tDG#M+UIz#_m>Yy2Po;CC@KTOIFqrAOSogir_2758v0<-n4S`2R)(K0P zcc2Rdv`VT)#q9r;ahR}t8cHyb?jEiCjf?ATf2rmVd%|N=0DH)>lPrUD=x9HPlD-C~Z!|2lq6}b={VWTTnrw?~MTZC`L zvsKUES`W9%qxVx)^DZiJV)Vr01uhtjrxGuYTe&jlSZE}G;_qD%*}9DIAoI@=zlZ*b?MPdf^90tpvsXTffRy@ z@VUYilVXZQf))4w4W&7j)`zp>N|CMyzN1jYY}$aulOJ1Yi`Tn=#N|I?v=_;g3*sf;@QO1(*1w(=Idj(hs;VEfd q{aI@NhU)`H?Zc!`cN_oa;{X2$TlMC@(?tvb0000