>Œ?DDDDDDDDDDDDDDDôÿ•™™™™™™™™™™™™™™ÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDÿà•™™™™™™™™™™™™™™ÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDÿ•™™™™™™™™™™™™™™ÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDôÿ•™™™™™™™™™™™™™™ÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDôÿ•™™™™™™™™™™™™™™ÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDôÿ•™™™™™™™™™™™™™™ÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDDÿP™™™™™™™™™™™™™ŸˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ DDDDDDDDDDDDDDDDDÿP™™™™™™™™™™™™™ŸˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ DDDDDDDDDDDDDDDDDÿP™™™™™™™™™™™™™ŸˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ DDDDDDDDDDDDDDDDDÿ•™™™™™™™™™™™™̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ DDDDDDDDDDDDDDDDDôÿU™™™™™™™™™™™YÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDDôÿP™™™™™™™™™™™YÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDDôÿ•™™™™™™™™™™̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ DDDDDDDDDDDDDDDDDôÿP™™™™™™™™™Y ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ DDDDDDDDDDDDDDDDDôÿU™™™™™™™YÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌ DDDDDDDDDDDDDDDDDôÿP•™™™™™™UÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌÐàDDDDDDDDDDDDDDDDDôÿPU™™™Y܈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ DDDDDDDDDDDDDDDDDôÿUUUÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌ  DDDDDDDDDDDDDDDDDôÿÀ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈÌDDDDDDDDDDDDDDDDDôÿ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ ÐDDDDDDDDDDDDDDDDDôÿÀŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌDDDDDDDDDDDDDDDDDÿ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈ DDDDDDDDDDDDDDDDDÿÀ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈÌ ªªªªDDDDDDDDDDDDDDDDDÿÌŒˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆˆÌ  ª™™™©ªDDDDDDDDDDDDDDDDDÿÀ̈ˆˆˆˆˆˆˆˆˆˆˆˆˆˆÈÌ š™™™™™™ªDDDDDDDDDDDDDDDDôÿÌ̈ˆˆˆˆˆˆˆˆˆˆˆˆÈÌ  š™™™™™™™™ªDDDDDDDDDDDDDDDDôÿÌ̈ˆˆˆˆˆˆˆˆˆˆÈÌ ª™™™™™™™™™© DDDDDDDDDDDDDDDDôÿÀÌ̈ˆˆˆˆˆˆˆˆÈÌÌ ™™™™™™™™™™™©DDDDDDDDDDDDDDDDÿÌÌ̈ˆˆˆˆÈÌÌ š™™™™™™™™™™™™ DDDDDDDDDDDDDDDDÿÌÌÌÌÌÌÌÌÌ   š™™™™™™™™™™™™ªDDDDDDDDDDDDDDDôÿÌÌÌÌÌ  ™™™™™™™™™™™™™©DDDDDDDDDDDDDDDôÿš™™™™™™™™™™™™™™ DDDDDDDDDDDDDDDÿÿš™™™™™™™™™™™™™™ DDDDDDDDDDDDDDôÿ ™™™™™™™™™™™™™™™©DDDDDDDDDDDDDDôÿ @ ™™™™™™™™™™™™™™™©DDDDDDDDDDDDDDÿÿª™™™™™™™™™™™™™™™© DDDDDDDDDDDDDôÿš™™™™™™™™™™™™™™™™ DDDDDDDDDDDDDÿÿDDDDDDš™™™™™™™™™™™™™™™™ DDDDDDDDDDDDôÿDDDDDDDDDDš™™™™™™™™™™™™™™™™ DDDDDDDDDDDDÿÿ@DDDDDDDDDDDDDš™™™™™™™™™™™™™™™™ DDDDDDDDDDDôÿQUUUUU@DDDD433333DDDDDš™™™™™™™™™™™™™™™™ DDDDDDDDDDDÿÿUUUUUUUU@DDD4333333333DDDDš™™™™™™™™™™™™™™™™ DDDDDDDDDDÿÿQUUUUUUUUUUU@DDD333333333333CDDDš™™™™™™™™™™™™™™™™ DDDDDDDDDôÿÿàîîîQUUUUUUUUUUUUUDD4333333333333333DDª™™™™™™™™™™™™™™™© DDDDDDDDôÿÿînfffîUUUUUUUUUUUUUUDDD3333333333333333CDD ™™™™™™™™™™™™™™™©DDDDDDDôÿÿànfffffîQUUUUUUUUUUUUUUU@DD333333333333333333CDD ™™™™™™™™™™™™™™™©DDDDDDÿÿÿÿnfffffffQUUUUUUUUUUUUUUUUUDD43333333333333333333DD`š™™™™™™™™™™™™™™ DDDDÿÿÿÿÿàfffffffUUUUUUUUUUUUUUUUUU@D4333333333333333333333DDš™™™™™™™™™™™™™™ ÿÿÿÿÿÿÿnfffffffQUUUUUUUUUUUUUUUUUUUDD3333333333333333333333CD ™™™™™™™™™™™™™©ÿÿÿÿÿÿàffffffffUUUUUUUUUUUUUUUUUUUU @D433333333333333333333333DD š™™™™™™™™™™™™ªÿÿÿÿîfffffffUUUUUUUUUUUUUUUUUUUUDD333333333333333333333333CDš™™™™™™™™™™™™ nfffffffQUUUUUUUUUUUUUUUUUUUUU@D43333333333333333333333333DD ™™™™™™™™™™™©nfffffffUUUUUUUUUUUUUUUUUUUUUUDD33333333333333333333333333CDª™™™™™™™™™© àfffffffQUUUUUUUUUUUUUUUUUUUUUUUD4333333333333333333333333333D š™™™™™™™™ªàfffffffQUUUUUUUUUUUUUUUUUUUUUUU@D4333333333333333333333333333DD š™™™™™™ªàfffffffUUUUUUUUUUUUUUUUUUUUUUUUDD3333333333333333333333333333CD ª™™™©ªàfffffffUUUUUUUUUUUUUUUUUUUUUUUUD433333333333333333333333333333D ªªªª€àffffffUUUUUUUUUUUUUUUUUUUUUUUU@D433333333333333333333333333333DDàffffffQUUUUUUUUUUUUUUUUUUUUUUUUU@D333333333333333333333333333333CDwwwwwàffffffQUUUUUUUUUUUUUUUUUUUUUUUUUD43333333333333333333333333333333DpwwwwwwwwwwnfffffQUUUUUUUUUUUUUUUUUUUUUUUUUD43333333333333333333333333333333DpwwwwwwwwwwwwnfffffUUUUUUUUUUUUUUUUUUUUUUUUUU@D43333333333333333333333333333333DDwwwwwÌÌÌÌÌ|wwwwîfffffUUUUUUUUUUUUUUUUUUUUUUUUUU@D33333333333333333333333333333333CDwwwwÌÌÌÌÌÌÌÌÌ|wwwàfffffUUUUUUUUUUUUUUUUUUUUUUUUUU@D33333333333333333333333333333333CDÀwwÇÌÌÌÌÌÌÌÌÌÌÌÌwwwnffffUUUUUUUUUUUUUUUUUUUUUUUUUUDD33333333333333333333333333333333CDwÇÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwwàffffUUUUUUUUUUUUUUUUUUUUUUUUUUD4333333333333333333333333333333333DÇÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwnfffUUUUUUUUUUUUUUUUUUUUUUUUUUD4333333333333333333333333333333333DÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wwànffUUUUUUUUUUUUUUUUUUUUUUUUUUD4333333333333333333333333333333333DÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wînfUUUUUUUUUUUUUUUUUUUUUUUUUU@D4333333333333333333333333333333333DDÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwàîUUUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wUUUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwUUUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wQUUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CD�PUUUUUÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwQUUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CD PUUUUUUUUUÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wQUUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDPUU¥ªªªªªUUUÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDPUUªªªªªªªªZUUÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDPU¥ªªªªªªªªªªªUÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wUUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDU¥ªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwQUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDPUªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwQUUUUUUUUUUUUUUUUUUUUUUU@D3333333333333333333333333333333333CDPU¥ªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wUUUUUUUUUUUUUUUUUUUUUU@D4333333333333333333333333333333333DD U¥ªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wQUUUUUUUUUUUUUUUUUUUUUD4333333333333333333333333333333333DPUªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwUUUUUUUUUUUUUUUUUUUUD4333333333333333333333333333333333DP¥ªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwUUUUUUUUUUUUUUUUUUUUD4333333333333333333333333333333333DUªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwQUUUUUUUUUUUUUUUUUUUDD33333333333333333333333333333333CD0PUªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wUUUUUUUUUUUUUUUUUU@D33333333333333333333333333333333CDU¥ªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wQUUUUUUUUUUUUUUUUU@D33333333333333333333333333333333CDUªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wQUUUUUUUUUUUUUUU@D43333333333333333333333333333333DDP¥ªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wUUUUUUUUUUUUUUD43333333333333333333333333333333DP¥ªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwQUUUUUUUUUUUUUD43333333333333333333333333333333DÀUªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwQUUUUUUUUUUU@D333333333333333333333333333333CDUªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwUUUUUUUU@D433333333333333333333333333333DDPUªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwQUUUUUD433333333333333333333333333333DP¥ªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwDD3333333333333333333333333333CDP¥ªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌw@D4333333333333333333333333333DDP¥ªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwD4333333333333333333333333333D UªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwDD33333333333333333333333333CDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌw@D43333333333333333333333333DDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwDD333333333333333333333333CDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌw@D433333333333333333333333DDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wDD3333333333333333333333CDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|w@D4333333333333333333333DDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wDD43333333333333333333DDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|w@DD333333333333333333CDD�UªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwDDD3333333333333333CDDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwDD4333333333333333DDUªªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌw@DDD333333333333CDDDP¥ªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|w@DDD4333333333DDDDP¥ªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wp@DDDD433333DDDDDP¥ªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌww@DDDDDDDDDDDDDPUªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwDDDDDDDDDDUªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wÝÝÝÝDDDDDDUªªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwÑÝÝÝÝÝÝÝP¥ªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwÝÝÝÝÝÝÝÝÝÝPP¥ªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|w0ÑÝÝÝÝÝÝÝÝÝÝÝUªªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwÑÝÝÝÝÝÝÝÝÝÝÝÝÝU¥ªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wÝÝÝÝÝÝÝÝÝÝÝÝÝÝPUªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝUªªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝP¥ªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ PUªªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wÀàÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝpU¥ªªªªªªªªªªªªªªªÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ|wwÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝPU¥ªªªªªªªªªªªªªªÇÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝPUªªªªªªªªªªªªªªwÇÌÌÌÌÌÌÌÌÌÌÌÌÌÌwwwÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝU¥ªªªªªªªªªªªªªwwÇÌÌÌÌÌÌÌÌÌÌÌÌwwwÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝPU¥ªªªªªªªªªªªUwwwwÌÌÌÌÌÌÌÌÌ|wwwÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝPUUªªªªªªªªZUUwwwwwÌÌÌÌÌ|wwwwÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝPUU¥ªªªªªUUUpwwwwwwwwwwwwÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝPUUUUUUUUUpwwwwwwwwwwÑÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝPUUUUUwwwwwÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝàÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÀÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝ ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝà ÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝÝî-- title: Floating Circles -- author: JoaoPauloVF -- desc: a circles animation generated randomly -- script: lua -- input: keyboard, mouse -- palette: SWEETIE-16 https://github.com/nesbox/TIC-80/wiki/palette#sweetie-16 -- license: MIT -- github: https://github.com/JoaoPauloVF/My-TIC-Cartridges#readme --Constants and Variables : line 20 --Function getSequence() : line 35 --Position Map : line 51 --Circle Floating Class : line 54 --Dot Floating Class : line 107 --Initialization functions: line 122 --Instances Initialization: line 171 --TIC() : line 175 math.randomseed(tstamp()*10000) --CONSTANTS AND VARIABLES SCREEN_W = 240 SCREEN_H = 136 BACKGROUND = 0 --Black SPACE = 48 ENTER = 50 countCircles = 10 countDots = 100 --Dots amount. Dots appear behind the circles. circles = {} dots = {} function getSequence(f, min, max, step) local seq = {} step = step or 1 if not(max) then min, max = max, min min = 1 end for num=min, max, step do table.insert(seq, f(num)) end return seq end POSITIONS = {} --It keeps all positions on the screen, and if they are occupied. See below. --FLOATING CIRCLE CLASS function FloatingCircle(x, y, backgroundColor) local self = {} self.y = y self.x = x self.maxRadius = math.random(20, 30) self.radius = 0 self.yDirs = {1, -1} self.currY = y self.yInterval = math.random(1,6) * self.yDirs[math.random(2)] self.colorFill = math.random(15) while self.colorFill == backgroundColor do self.colorFill = math.random(15) end self.colorBorder = math.random(15) self.borderWeight = self.maxRadius*0.1 self.update = function() local cos = self.yInterval * math.cos(time()/800) self.currY = self.y + cos self.radius = self.radius < self.maxRadius and self.radius + 2 or self.radius local mX, mY, pressed = mouse() local dist = math.sqrt((mX-self.x)^2+(mY-self.y)^2) if dist < self.maxRadius and pressed and self.radius >=0 then self.radius = self.radius - 4 end end self.render = function() circ( self.x, self.currY, self.radius + self.borderWeight, self.colorBorder ) circ( self.x, self.currY, self.radius, self.colorFill ) end return self end --FLOATING DOT CLASS function FloatingDot() local self = {} self.x = math.random(SCREEN_W) self.y = math.random(SCREEN_H) self.color = math.random(15) self.render = function() pix(self.x, self.y, self.color) end return self end --Initialization functions function initializePositionsMap() local xMap = getSequence( function(num)return num end, 0, SCREEN_W, 32 ) local yMap = getSequence( function(num)return num end, 0, SCREEN_H, 32 ) for i=1, #yMap do for j=1, #xMap do table.insert( POSITIONS, {x=xMap[j], y=yMap[i]} ) end end end function initializeCircles(countCircles) local pile = {} for i=1, countCircles do if #POSITIONS == 0 then break end local posIndex = math.random(1, #POSITIONS) local pos = POSITIONS[posIndex] c = FloatingCircle(pos.x, pos.y, BACKGROUND) table.insert(pile, c) table.remove(POSITIONS, posIndex) end return pile end function initializeDots(countDots) local pile = {} for i=1, countDots do dot = FloatingDot() table.insert(pile, dot) end return pile end --instances(from FloatingCircle and FloatingDot) initialization initializePositionsMap() circles = initializeCircles(countCircles) dots = initializeDots(countDots) function TIC() cls(BACKGROUND) if keyp(SPACE, 0, 120) or keyp(ENTER, 0, 120) then initializePositionsMap() circles = initializeCircles(countCircles) dots = initializeDots(countDots) end for index, circle in pairs(circles) do circle.update() end for index, dot in pairs(dots) do dot.render() end for index, circle in pairs(circles) do circle.render() end end