>À?"""""""""""""""""""""""""""""""""""33333333333333333333333333333333333DDDDDDDDDDDDDDDDDTUUUEDDDDDDDDDDD433333333333333332#3""""""""3"""2#"3""""""""2#"""2333333333333333333333333333333333333CDDDDDDDDDDDDDDDTUUUUUUUDDDDDDDDDDD3333333333333333233"3323#"33"3#2#"33"33"23"33#""3#3333333333333333333333333333333333CDDDDDDDDDDDDDDDTUUUUUUUUUDDDDDDDDDDD3333333333333332332"32#22"32#32#"3"#3"#3"#2#"""23333333333333333333333333333333333CDDDDDDDDDDDDDDDTUUUUfVUUUUEDDDDDDDDDD4333333333333332222"32#22"323"2#"3"#3""3"#2#""""333333333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUfffVUUUUEDDDDDDDDDD333333333333332"2"332#2"33"3#"3#33"3""23""3#""3333333333333333333333333333333333DDDDDDDDDDDDDDDDUUUUe¦ywfVUUUUDDDDDDDDDD43333333333333""""""""""""""""""""""""""""""""233333333333333333333333333333333DDDDDDDDDDDDDDDDTUUUUf‡³›gffUUUEDDDDDDDDDD3333333333333""""""""""""""""""""""""""""""""33333333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUef‡¹›wfffUUUEDDDDDDDDD4333333333333""""""""""""""""""""""""""""""""3333333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUefw¸œxwffVUUUDDDDDDDDDD333333333333"""""""""""""""""""""""""""""""2333333333333333333333333333333CDDDDDDDDDDDDDDDDTUUUUUffw¸ñ‰wwwfUUUEDDDDDDDDD433333333333"""""""""""""""""""""""""""""""3333333333333333333333333333333DDDDDDDDDDDDDDDDDUUUUUeffwÈ¥›ˆˆ™gVUUUDDDDDDDDDD33333333333"""""""""""""""""""""""""""""""333333333333333333333333333333DDDDDDDDDDDDDDDDDUUUUUUefvw¨Ü®™™¬gfUUUEDDDDDDDDD43333333333""""""""""""""""""""""""""""""233333333333333333333333333333CDDDDDDDDDDDDDDDDTUUUUUUffv‡˜ÊÅ»!žgfVUUUEDDDDDDDDD3333333333""""""""""""""""""""""""""""""33333333333333333333333333333CDDDDDDDDDDDDDDDDTUUUUUUeffw‡˜º?=‹wfVUUUUDDDDDDDDD4333333333""""""""""""""""""""""""""""""33333333333333333333333333333DDDDDDDDDDDDDDDDDUUUUUUUffvw‡˜º묉wffUUUUEDDDDDDDD4333333333"""""""""""""""""""""""""""""23333333333333333333333333333DDDDDDDDDDDDDDDDDUUUUUUUeffvwˆ™º-Ò«‰wgfUUUUUDDDDDDDDD333333333"""""""""""""""""""""""""""""2333333333333333333333333333CDDDDDDDDDDDDDDDDTUUUUUUUfffw‡˜©ÛÙ«‰xgfVUUUUUDDDDDDDD433333333"""""""""""""""""""""""""""""3333333333333333333333333333DDDDDDDDDDDDDDDDTUUUUUUUfffvwˆ™º¿9ö±™xwffUUUUUEDDDDDDD433333333""""""""""""""""""""""""""""2333333333333333333333333333DDDDDDDDDDDDDDDDTUUUUUUUffffw‡©¿ËAq³š‰wffVUUUUUDDDDDDDD33333333""""""""""""""""""""""""""""233333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUUUefffvw˜ÊÖì€Ï»ËxgffUUUUUEDDDDDDD43333333""""""""""""""""""""""""""""33333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUUUeffffw‡ÎO¦pâíÄxwffVUUUUUDDDDDDD43333333""""""""""""""""""""""""""""33333333333333333333333333DDDDDDDDDDDDDDDDUUUUUUUeffffvw‡¹þW2±‰wfffUUUUUEDDDDDDD3333333"""""""""""""""""""""""""""23333333333333333333333333DDDDDDDDDDDDDDDDUUUUUUUUfffffwwˆ©ë‡"‰wgfffUUUUUDDDDDDD4333333"""""""""""""""""""""""""""2333333333333333333333333CDDDDDDDDDDDDDDDUUUUUUUUfffffwwwˆ©Û½‰xwffffUUUUEDDDDDD4333333"""""""""""""""""""""""""""333333333333333333333333CDDDDDDDDDDDDDDDUUUUUUUUeffffwww‡ˆ©  ­‰xwgffffUUUUDDDDDDD333333"""""""""""""""""""""""""""333333333333333333333333DDDDDDDDDDDDDDDUUUUUUUUefffvwwwwˆ˜©v`·‰ˆwwfffffUUUEDDDDDD333333"""""""""""""""""""""""""""33333333333333333333333DDDDDDDDDDDDDDDUUUUUUUUUfffwwww‡ˆˆ™ªü µ™ˆxwwfffffUUUDDDDDD433333""""""""""""""""""""""""""23333333333333333333333CDDDDDDDDDDDDDTUUUUUUUUUfffww‡ˆˆˆˆ™™ºì ¼š‰ˆxwwwwwfVUUDDDDDD433333""""""""""""""""""""""""""2333333333333333333333CDDDDDDDDDDDDDTUUUUUUUUUeffv‡ˆ˜›‰ˆ™©ªºì2 ¼ª™™ˆxwww˜wfUUEDDDDDD33333""""""""""""""""""""""""""3333333333333333333333DDDDDDDDDDDDDTUUUUUUUUUUfffwº«º£š™©»»Ëía€åÍ»ªÛ‰ˆxwˆÉŠfVUUDDDDDD33333""""""""""""""""""""""""""333333333333333333333DDDDDDDDDDDDDTUUUUUUUUUUfffv‡ÑÇΫªÚgÞ+ÿB `ï×Ìά‰ˆˆˆ¹™gVUUDDDDDD43333"""""""""""""""""""""""""233333333333333333333CDDDDDDDDDDDDTUUUUUUUUUUefffw‡¹ïœÑ¼»l 0€á 0Ðî·™™™™*wfUUEDDDDD43333"""""""""""""""""""""""""23333333333333333333CDDDDDDDDDDDDDUUUUUUUUUUUffffw‡¹ˆåÌ= Pપªª,ŸxfUUEDDDDDD3333"""""""""""""""""""""""""23333333333333333333DDDDDDDDDDDDDUUUUUUUUUUUffffvw‡9;Žï/лÛÓÍ=¾‹fUUUDDDDDD3333"""""""""""""""""""""""""3333333333333333333DDDDDDDDDDDDDUUUUUUUUUUUeffffwwˆ¹ý #°#Îì´q/5gVUUDDDDDD4333"""""""""""""""""""""""""333333333333333333CDDDDDDDDDDDDUUUUUUUUUUUefffffwwˆ©¬ î 6ŠgVUUEDDDDD4333"""""""""""""""""""""""""333333333333333333DDDDDDDDDDDDTUUUUUUUUUUefffffvw‡˜©l@`>ŒgVUUEDDDDD4333""""""""""""""""""""""""233333333333333333CDDDDDDDDDDDTUUUUUUUUUefffffffwwˆ˜©, ¬ygfUUEDDDDDD333""""""""""""""""""""""""23333333333333333CDDDDDDDDDDDDUUUUUUUefffffffffww‡ˆ™ºÜ‘:žxgfUUUDDDDDD333""""""""""""""""""""""""23333333333333333DDDDDDDDDDDDUUUUUefffffffffffwwwˆ˜ºËíbà›xgfUUUDDDDDD333""""""""""""""""""""""""2333333333333333CDDDDDDDDDDDTUUUUefffffffffffwww‡ˆ© ß ÄšxgfUUUDDDDDD433""""""""""""""""""""""""3333333333333333DDDDDDDDDDDTUUUUeffffffffffvwwwwˆ˜ãñ2@õ½šxgfVUUDDDDDD433""""""""""""""""""""""""333333333333333CDDDDDDDDDDDUUUUUfvwwffffvwwwwww‡ˆ©|` ½šˆwfVUUEDDDDD433""""""""""""""""""""""""333333333333333DDDDDDDDDDDTUUUUef§‰wwwwwwwwwwwwˆˆ©, 0›ˆxfVUUEDDDDDD33""""""""""""""""""""""""33333333333333CDDDDDDDDDDDUUUUUff—¬Šwwwwwwwwwwˆˆ˜©Ûb«™‰gVUUEDDDDDD33"""""""""""""""""""""""233333333333333DDDDDDDDDDDUUUUUefv‡›ˆxw‡ˆ‰ˆˆˆˆˆˆ™©Û ¼ª»gfUUEDDDDDD33"""""""""""""""""""""""233333333333333DDDDDDDDDDTUUUUUefv‡j‰ˆˆˆ©®‰ˆˆˆˆ˜™ºo/ÍxfUUEDDDDDD33"""""""""""""""""""""""23333333333333CDDDDDDDDDDUUUUUUffv—+¬™™™™Ê™™ˆˆ˜™©û‰ àõ¹xfUUEDDDDDD43"""""""""""""""""""""""23333333333333DDDDDDDDDDTUUUUUeffw¨>¿ªºš©+Ϫ™™™™™ª‹ ×xfUUUDDDDDD43"""""""""""""""""""""""3333333333333CDDDDDDDDDDUUUUUUeffw˜ÚÑÍ,«º\罪¬š™©ºì‰¤xfUUUDDDDDD43"""""""""""""""""""""""3333333333333CDDDDDDDDDTUUUUUUffvwˆ¹!]‘ÝÌìØ<¸ªªªºüä‹wfUUUDDDDDD43"""""""""""""""""""""""3333333333333DDDDDDDDDTUUUUUUeffvwˆ©Ë€2Þþ£&?Ó»«»Ë­‰gfUUUDDDDDD43"""""""""""""""""""""""3333333333333DDDDDDDDDUUUUUUUfffwwˆ©Ë. oQ3€C`í¼»Ì?¬‰gfUUUDDDDDDD3"""""""""""""""""""""""333333333333CDDDDDDDDTUUUUUUeffvw‡ˆ©Ê~fÐðÀDÍÌÜ/¼ŠgfUUUDDDDDDD3"""""""""""""""""""""""333333333333CDDDDDDDDUUUUUUefffww‡˜©ëV áÝí pÔŠgfUUUDDDDDDD3"""""""""""""""""""""""333333333333DDDDDDDDUUUUUUefffvwwˆ˜ªÛO9îþóPŒgfUUUDDDDDDD3""""""""""""""""""""""2333333333333DDDDDDDTUUUUUeffffwwˆˆ©ËìA ñQŒgfUUUDDDDDDD3""""""""""""""""""""""233333333333CDDDDDDTUUUUUeffffvwˆˆ™¹äO0"0½ygfUUUDDDDDDD3""""""""""""""""""""""233333333333CDDDDDTUUUUUeffffvw‡™™™º-pCœxgfUUUDDDDDDD3""""""""""""""""""""""233333333333CDDDDDUUUUUefffffww˜Âªªºýf•xffUUUDDDDDDD4""""""""""""""""""""""233333333333CDDDDUUUUUefffffww‡˜ü»»ËŽ ”wfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDDTUUUUffffffwwwˆ˜KÍìÝ_ÀÉwfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDDUUUUfffffwwww‡ˆ™ËdñA ÀˆwfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDTUUUffvwwwwwwˆˆ˜©Ëƒj©tPœxgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDTUUffvwˆxw‡ˆˆˆ˜©ºÜq¿@ŠxgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDUUffvw‡¹‰ˆˆ™‰™©¼ËÔ`¢‰wgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDUfvwwˆ˜ë™™»ªªºíÝ_à›‰wgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDU‡˜™©ªº»ÍñÜÌîq3‹€ÎšˆwgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDUw˜˜™™º³»¼îÜÌÝ_",@ΚˆwgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDUfvwwˆ˜êœ™™»ªªºíÝ ›‰wgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDUUffvw‡©‰ˆˆ™ˆ˜©¼Ëýõ@ ‰xgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDTUUfffwˆxwwˆˆˆ˜©ªÜq­šxgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDTUUUfffwwwwww‡ˆ˜©Ër]—dPœxgfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDDUUUUfffffvwww‡ˆ™ËåñAà‰wfVUUUDDDDDDD4""""""""""""""""""""""233333333333DDDDTUUUUffffffwwwˆ˜;ÍìÝŸ°Ä‰wfVUUUDDDDDDD4""""""""""""""""""""""233333333333CDDDDUUUUUefffffww‡˜ü»ºËýô€wfVUUUDDDDDDD4""""""""""""""""""""""233333333333CDDDDDUUUUUefffffww˜²ªªºý f’xffUUUDDDDDDD4""""""""""""""""""""""233333333333CDDDDDTUUUUUeffffvw‡™™™º=P`C œxgfUUUDDDDDDD3""""""""""""""""""""""233333333333CDDDDDDTUUUUUeffffvwˆˆ˜¹å> !0½ygfUUUDDDDDDD3""""""""""""""""""""""2333333333333DDDDDDDTUUUUUUffffwwˆˆ©»ÜA‰ý‚gfUUUDDDDDDD3"""""""""""""""""""""""333333333333DDDDDDDDUUUUUUUfffvwwˆ˜ªÛO8îþã@gfUUUDDDDDDD3"""""""""""""""""""""""333333333333CDDDDDDDDUUUUUUefffww‡˜©ûàïÝíPÒgfUUUDDDDDDD3"""""""""""""""""""""""333333333333CDDDDDDDDTUUUUUUeffvw‡ˆ©ÊN fÀ°DÍÌÜ€¼‰gfUUUDDDDDDD3"""""""""""""""""""""""3333333333333DDDDDDDDDUUUUUUUfffwwˆ©Ë. 12Bݼ»Ì ¬‰gfUUUDDDDDDD3"""""""""""""""""""""""3333333333333DDDDDDDDDDUUUUUUeffvwˆ©Ë¯€2Ýþ£Ò»«ºËþ½‰wfUUUDDDDDD43"""""""""""""""""""""""3333333333333CDDDDDDDDDTUUUUUUffvwˆÉAKݼìØœµªªªºìàœwfUUUDDDDDD43"""""""""""""""""""""""3333333333333CDDDDDDDDDDUUUUUUeffw˜ÚÑÌ쫪œ$¼ª«™™©ºì€ôxfUUUDDDDDD43"""""""""""""""""""""""23333333333333DDDDDDDDDDTUUUUUeffw¨q½ªªš©+Ϫ™™™™™ªki6xfUUUDDDDDD43"""""""""""""""""""""""23333333333333CDDDDDDDDDDUUUUUUffv—J¬™™ˆ™¹Á™‰ˆˆ˜™©Ûw÷¹xfUUEDDDDDD43"""""""""""""""""""""""233333333333333DDDDDDDDDDTUUUUUefv‡*œ‰ˆˆˆ˜ž‰ˆˆˆˆ˜™º->Ì1xfUUEDDDDDD33"""""""""""""""""""""""233333333333333DDDDDDDDDDDUUUUUUfv‡Š›ˆww‡ˆˆˆˆˆˆˆˆ˜©Û@¼ª«gfUUEDDDDDD33""""""""""""""""""""""""33333333333333CDDDDDDDDDDDUUUUUff—¬‰wwwwwwwwwwˆˆ˜©ëc«™ˆgVUUEDDDDDD33""""""""""""""""""""""""333333333333333DDDDDDDDDDDTUUUUef·ˆwwwwwwwwwwwwˆˆ©= šˆxfVUUEDDDDDD33""""""""""""""""""""""""333333333333333CDDDDDDDDDDDUUUUUfvwgfffffwwwwww‡ˆ©l `½šˆwfVUUEDDDDD433""""""""""""""""""""""""3333333333333333DDDDDDDDDDDTUUUUeffffffffffvwwwwˆ˜îR½šxgfVUUDDDDDD433""""""""""""""""""""""""2333333333333333CDDDDDDDDDDDTUUUUefffffffffffwww‡ˆ© ß ÓšxgfUUUDDDDDD433""""""""""""""""""""""""23333333333333333DDDDDDDDDDDDUUUUUUfffffffffffvwwˆ˜ºËìQ à›xgfUUUDDDDDD333""""""""""""""""""""""""23333333333333333CDDDDDDDDDDDDUUUUUUUUfffffffffww‡ˆ™ºì±+xgfUUUDDDDDD333""""""""""""""""""""""""233333333333333333CDDDDDDDDDDDTUUUUUUUUUUfffffffwwˆ˜©, ¬ygfUUEDDDDDD333"""""""""""""""""""""""""333333333333333333DDDDDDDDDDDDTUUUUUUUUUUefffffvw‡˜©ü 0PžgVUUEDDDDD4333"""""""""""""""""""""""""333333333333333333CDDDDDDDDDDDDUUUUUUUUUUUefffffwwˆ©œàùŠgVUUEDDDDD4333"""""""""""""""""""""""""3333333333333333333CDDDDDDDDDDDDUUUUUUUUUUUeffffvwˆÉýð"°ÎÜÓ!/ÃgVUUDDDDDD3333"""""""""""""""""""""""""23333333333333333333DDDDDDDDDDDDDUUUUUUUUUUUffffvw‡‰I€žî/лۢÌ\¾‹fUUUDDDDDD3333"""""""""""""""""""""""""23333333333333333333CDDDDDDDDDDDDDUUUUUUUUUUUffffw‡¹~qãÌM P઩ªª\žxfUUEDDDDDD3333""""""""""""""""""""""""""33333333333333333333CDDDDDDDDDDDDDUUUUUUUUUUefffv‡¹±Ñ¼»<@õ ° p¾è îPµ™™™™œwfUUEDDDDD43333""""""""""""""""""""""""""333333333333333333333DDDDDDDDDDDDDDUUUUUUUUUUeffv‡:Î#É«ªÚTÞÿþB`òÞÄË œ‰ˆˆˆ¹—gVUUDDDDDD43333""""""""""""""""""""""""""3333333333333333333333DDDDDDDDDDDDDDUUUUUUUUUUfffw©›ºS𙩻»ËíqåÍ«ªË‰ˆxw‡ÉyfVUUDDDDDD33333""""""""""""""""""""""""""2333333333333333333333CDDDDDDDDDDDDDDUUUUUUUUUeffv‡ˆ˜šˆˆ™™ªºì3 ¼ª™™ˆwwwwˆgfUUEDDDDDD33333""""""""""""""""""""""""""23333333333333333333333CDDDDDDDDDDDDDDUUUUUUUUUfffww‡ˆˆˆˆ˜™ºì ½š‰ˆxwwwwgfVUUDDDDDD433333"""""""""""""""""""""""""""33333333333333333333333DDDDDDDDDDDDDDDUUUUUUUUUfffwwwwwˆˆ™ªý²™ˆxwwfffffUUUDDDDDD433333"""""""""""""""""""""""""""333333333333333333333333DDDDDDDDDDDDDDDUUUUUUUUefffvwwwwˆ˜©Ž P°‰ˆwwfffffUUUEDDDDDD333333"""""""""""""""""""""""""""333333333333333333333333CDDDDDDDDDDDDDDDUUUUUUUUeffffwww‡ˆ©« ­‰xwgffffUUUUDDDDDDD333333"""""""""""""""""""""""""""2333333333333333333333333CDDDDDDDDDDDDDDDUUUUUUUUfffffwwwˆ©Û0¾‰wwffffUUUUEDDDDDD4333333"""""""""""""""""""""""""""23333333333333333333333333DDDDDDDDDDDDDDDDUUUUUUUUfffffwwˆ©ë€wó‰wgfffUUUUUDDDDDDD4333333""""""""""""""""""""""""""""33333333333333333333333333DDDDDDDDDDDDDDDDUUUUUUUeffffvw‡ÉÿSEo¿‰wfffUUUUUEDDDDDDD3333333""""""""""""""""""""""""""""33333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUUUeffffw‡ém¥páìÂxwffVUUUUUDDDDDDD43333333""""""""""""""""""""""""""""233333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUUUefffvw˜ºÓÜñpÏ«ZxgffUUUUUEDDDDDDD43333333"""""""""""""""""""""""""""""333333333333333333333333333DDDDDDDDDDDDDDDDTUUUUUUUefffw‡¨®ËÁm²š‰wffVUUUUUDDDDDDDD33333333"""""""""""""""""""""""""""""3333333333333333333333333333DDDDDDDDDDDDDDDDTUUUUUUUfffvwˆ™º~eõ¯‰xwffUUUUUEDDDDDDD433333333"""""""""""""""""""""""""""""2333333333333333333333333333CDDDDDDDDDDDDDDDDTUUUUUUUfffw‡˜©ËÑ«‰xgfVUUUUEDDDDDDDD433333333"""""""""""""""""""""""""""""23333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUUUeffvwˆ™ºÒ«‰wgfUUUUUDDDDDDDDD333333333""""""""""""""""""""""""""""""33333333333333333333333333333DDDDDDDDDDDDDDDDDUUUUUUUffvw‡˜º-ö¬‰wffUUUUEDDDDDDDD4333333333""""""""""""""""""""""""""""""333333333333333333333333333333DDDDDDDDDDDDDDDDDUUUUUUeffw‡˜º2‹wfVUUUUDDDDDDDDD3333333333""""""""""""""""""""""""""""""233333333333333333333333333333CDDDDDDDDDDDDDDDDTUUUUUUffv‡˜Êû®gfUUUUEDDDDDDDDD3333333333"""""""""""""""""""""""""""""""333333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUUefvw¸ì®™™¬gfUUUEDDDDDDDDD43333333333"""""""""""""""""""""""""""""""3333333333333333333333333333333DDDDDDDDDDDDDDDDDUUUUUeffw¸7›ˆˆ™gVUUUDDDDDDDDDD33333333333"""""""""""""""""""""""""""""""23333333333333333333333333333333DDDDDDDDDDDDDDDDTUUUUUffwÈï‰wwwfUUUEDDDDDDDDD433333333333""""""""""""""""""""""""""""""""3333333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUefw¸œxwffVUUUDDDDDDDDDD333333333333""""""""""""""""""""""""""""""""33333333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUef‡É‹wffVUUUEDDDDDDDDD4333333333333""""""""""""""""""""""""""""""""233333333333333333333333333333333DDDDDDDDDDDDDDDDTUUUUf‡¦šgfVUUUEDDDDDDDDDD3333333333333"""""""""""""""""""""""""""""""""333333333333333333333333333333333DDDDDDDDDDDDDDDDTUUUe–ywfVUUUUDDDDDDDDDD43333333333333"""""""""""""""""""""""""""""""""2333333333333333333333333333333333DDDDDDDDDDDDDDDDUUUUfffVUUUUEDDDDDDDDDD33333333333333"""""""""""""""""""""""""""""""""2333333333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUfUUUUUEDDDDDDDDDD433333333333333""""""""""""""""""""""""""""""""""3333333333333333333333333333333333CDDDDDDDDDDDDDDDTUUUUUUUUEDDDDDDDDDD4333333333333333""""""""""""""""""""""""""""""""""23333333333333333333333333333333333CDDDDDDDDDDDDDDDDUUUUUUEDDDDDDDDDDD3333333333333333"""""""""""""""""""""""""""""""""""33333333333333333333333333333333333CDDDDDDDDDDDDDDDDTUUUDDDDDDDDDDDD43333333333333333­ -- title: Mandelbrot Set -- author: ArchTauruS -- desc: Mandelbrot Set with TIC-80 -- version: 1.0 -- script: lua -- Constants ScreenOriginX = 120 ScreenOriginY = 68 KEY_X = 24 KEY_Z = 26 function BOOT() Initialization() DrawMandelbrotSet() end function Initialization() ScreenOffsetX = 0 ScreenOffsetY = 0 ViewportScale = 32 MaxIterations = 32 SquaredEscapeRadius = 16 MouseX, MouseY = mouse() end -- Mandelbrot Set complex quadratic polynomial: fc(Z) = Z^2 + C -- This function get the color with coordinate in MandelbrotSet function MandelbrotSetColor(x, y, maxLoops, squaredEscapeRadius) -- map screen coordinate to C in complex plane local cr = (x - ScreenOriginX - ScreenOffsetX) / ViewportScale local ci = (y - ScreenOriginY - ScreenOffsetY) / ViewportScale -- instead of starting with 0 lets start with Z = fc(0) = C local zr = cr local zi = ci local n = 0 -- escape counter while (n < maxLoops and zr * zr + zi * zi < squaredEscapeRadius) do -- max loops and square of escape radius local sr = zr * zr - zi * zi -- real part of Z^2 local si = 2 * zr * zi -- imaginary part of Z^2 zr = sr + cr -- real part of fc(Z) zi = si + ci -- imaginary part of fc(Z) n = n + 1 -- escape counts end local color = n ~= maxLoops and (n % 15 + 1) or 0 -- map escape counts to color return color end function DrawMandelbrotSet() for y = 0, 135 do for x = 0, 239 do local color = MandelbrotSetColor(x, y, MaxIterations, SquaredEscapeRadius) pix(x, y, color) end end end function TIC() local mouseX, mouseY, click, _, reset, _, scroll = mouse() local dragX = click and mouseX - MouseX or false local dragY = click and mouseY - MouseY or false local dragging = dragX or dragY local zoom_in = scroll > 0 or key(KEY_Z) local zoom_out = scroll < 0 or key(KEY_X) local zooming = zoom_in or zoom_out MouseX = mouseX MouseY = mouseY if dragging then ScreenOffsetX = ScreenOffsetX + dragX ScreenOffsetY = ScreenOffsetY + dragY elseif zooming then -- é‡è¦ï¼ä»¥é¼ æ ‡ä¸ºä¸­å¿ƒçš„æ”¾ç¼©ç®—法。 local factor = zoom_in and 1.25 or 0.75 MaxIterations = MaxIterations + (zoom_in and 1 or -1) ViewportScale = ViewportScale * factor ScreenOffsetX = MouseX - ScreenOriginX - (MouseX - ScreenOriginX - ScreenOffsetX) * factor ScreenOffsetY = MouseY - ScreenOriginY - (MouseY - ScreenOriginY - ScreenOffsetY) * factor elseif reset then BOOT() end if dragging or zooming then DrawMandelbrotSet() end end