кккккккккккккккккккккккккккккккк  ╧ №          №          №       ╧            №   ю╧ я▐  ю═  ▐╠  ╧ №          №ю   э■  ▄ю  ╠э    ╧            №    ╧     №П   к  ╧ № Б  ииёпиИ·ПккИккккбКкКк  ╧ №          №    ╧   · № К·  ИИИИЩЩЩЩЩЩЩЩЩЩЩЩкккккккккккккккк  ╧П   Ш  ПЩ╧ ШЩ ПЩй ЯЩкПЩйкШЩкк°   Й   Щ°  ЩЙ №ЪЩ° кЩЙ кЪЩ°ккЩЙ  ▐╠№ ю═  я▐   ю          №     ╠э╧ ▄ю  э■  ю  №    ╧     №     ЩйккЩкккйкккккккккккккккккккккккккЪЩкккЩкккЪкккккккккккккккккккк  ╧                       №     кккккКиИкИЙЙКЩЙиККкШйккШкШйккккккиШИкиШЩиЙЩСЙйкЙЪкЪЙккбЙкбкЙкйЪЪкЩБЪйиибйиИкЙккИккккбКиКк                                    №          №                А      ╧№ DD@№ OD╧╧╠ O╠L  ─╠№  ╠       ╧№ DD@№ OD╧╧╠ O╠╠№ D─№   №      ╧№ DD@№ ╧╠╧╧╠╠O╠L  DЇ           OЇ 330Ї ?3OOD ?D4  CDЇ  D       OЇ 330Ї ?3OOD ?DDЇ 3CЇ   Ї      OЇ 330Ї ODOODD?D4  3є           ў UUPў _Uw _wW  uwў  w       ў UUPў _Uw _wwў Uuў   ў      ў UUPў www_wW  Uї           ┐√ ╠╠└√ ╧╠┐┐╗ ╧╗╦  ╝╗√  ╗       ┐√ ╠╠└√ ╧╠┐┐╗ ╧╗╗√ ╠╝√   √      ┐√ ╠╠└√ ┐╗┐┐╗╗╧╗╦  ╠№     р╬ьр▄▌э╬▌▌эр▐юрюэр╠▌╬▌▌э▐▌▌эрю▐рюьр╠▌э╬▌▌р▌юююю╠эр╠▌╬▌▌рэюР╣╣лРРЩ╣Ы╣лЪРлкЫ╗ккЫкккЫкк║ЪР╣╣ Р Р ╣ЪлЪлк кк ккЪРлкРлкРллРллйлл╣кл╣║к╣║ккк║Ъкк║Ъкк║ЪкклЪкклЪкклЪкклЪкклЩРлЩл╣кР╣кРлкЩлкЩл║й╣кккЪккк ккк кккЪкккЩккЪЪккЪЪлкйЪРР ╣ └U╝Z└л╦╝║ └л╦╝║ м╦└ рw■}р▀я■¤р▀я■¤▐яр╣║к╣║к╣║клккРлккРлккРлккРйккк║кЩк║кЩк╣кЩк╣кЩк╣кЩЪлкЩЪлкЩЪлкЩй╣кйЪлйк╣Ркк╣РккЪРккЪРкккРккклЪкЪкЪкЪкйкЪЪкл Ы║Ъ й║Ъ ╣лй ║кй ╣ л Рл Рл ░к ╣к ╣Ъ лЪЪРЩккРкйкРлккР╗лЪ╣╗╗кйк╗лйкккйккЪЪлкЩ╣ккЩ╣ккЩ╣ккЩЩйкЩкЪйЩккЪЩЩЩЩЩРкккРкккРкккйкккйкк║йкк║йкк║йкЪЩлЪк лЪкЪлЪкЪлЫкЪкЫкЪкЫкЪкЩкЪЩЩЩЩРРРлЪЪРлкЪРллЩ╣клЩ╣║кЩ╣║кЩл║кЩлкЩЩ                  DD  DD╠   ╠            ╧№  ╠╠ DDЇDDD DDD DDЇ                  DD  DD╠   ╠            ╠╠  ╠╠ DDDDDD DDD DDD                  DD  DD╠   ╠            ╠╠  ╠╠ DDDDDD ╠╠╠ ╠╠╠                  UU  UUw   w            ww  ww UUUUUU UUU UUU                  UU  UUw   w            ww  ww UUUUUU UUU UUU                  UU  UUw   w            ww  ww UUUUUU www www ╠ ╠ ╠ ╠ D╠╠ D╠╠  D╠  D╠        ╠╠  ╠╠  ╠D  ╠D  ╠╠╠ ╠╠╠ ╠╠       ╠ ╠ ╠ ╠ D╠╠ D╠╠  DD  DD        ╠╠  ╠╠  ╠╠╠ ╠╠╠ D╠╠ D╠╠   ╠      ╠ ╠ ╠ ╠ D╠╠ D╠╠  DD  DD        ╠╠╠╠╠╠╠╠╠D  ╠D  D   D            w w w w Uww Uww  Uw  Uw        ww  ww  wU  wU  www www ww  ww   w w w w Uww Uww  UU  UU        ww  ww  www www Uww Uww   w   w  w w w w Uww Uww  UU  UU        wwwwwwwwwU  wU  U   U                             33  33D   D            DD  DD 333333 333 333                  33  33D   D            DD  DD 333333 333 333              33  33D   D   D        DD  DD 333333 DDD DDD DDD                  ╠╠  ╠╠╗   ╗            ╗╗  ╗╗ ╠╠╠╠╠╠ ╠╠╠ ╠╠╠                  ╠╠  ╠╠╗   ╗            ╗╗  ╗╗ ╠╠╠╠╠╠ ╠╠╠ ╠╠╠                  ╠╠  ╠╠╗   ╗            ╗╗  ╗╗ ╠╠╠╠╠╠ ╗╗╗ ╗╗╗ D D D D 3DD 3DD  3D  3D        DD  DD  D3  D3  DDD DDD DD  DD   D D D D 3DD 3DD  33  33        DD  DD  DDD DDD 3DD 3DD   D   D  D D D D 3DD 3DD  33  33        DDDDDDDDD3  D3  3   3            ╗ ╗ ╗ ╗ ╠╗╗ ╠╗╗  ╠╗  ╠╗        ╗╗  ╗╗  ╗╠  ╗╠  ╗╗╗ ╗╗╗ ╗╗  ╗╗   ╗ ╗ ╗ ╗ ╠╗╗ ╠╗╗  ╠╠  ╠╠        ╗╗  ╗╗  ╗╗╗ ╗╗╗ ╠╗╗ ╠╗╗   ╗   ╗  ╗ ╗ ╗ ╗ ╠╗╗ ╠╗╗  ╠╠  ╠╠        ╗╗╗╗╗╗╗╗╗╠  ╗╠  ╠   ╠           '&&&&&&&'&&'&''''&&&&&&&&''&&&&'&'&''''''''&'&''''&&'''&'&&'&'&&&&''''&&'&&&'&'&'&''&&'&'&&&'&&&'&'&'&'''&'&'&'&&&'&''''&&&'&&&&&&&'&'&&&&&&&&&&&'&'''&'&'&'&'''&'&&&''&'&''&'&'&&&&''&'&'&'&&&'&'" ! ! !" ! !" ! ! ! M$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$║u╨pЁ  @` °ўЎцхфф╙╥╥╤╤└░ ░ ░аРААА└└└└└└└└└└└└└└└└└└└└└└└└└└└└└└PQ R S TUVXYZ[\]^^_______________! ╛`@` ` ` `бАА А А ААББ 3 ─+└?  ╧       ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧     №       №                                                       №   №       №       №   №   №   №   №       №   №    3 є33 33?є? 33 3є 3є?3є?33?є  ?є 3                                                                                      3 є?є?є ?є??3 <є??є??є??є ?є  3є?3                                    №   №       №       №   №   №   №   №       №   № 33є?є?є3?33 3є?є ?є??є??3є    ?є 3яюю■                                                                                  3 є?є?є??є? ?3?є??є??3є?є ?є  ?є 3яюю■                                                                                  3№є33 33?є??3є 3є№3є?є??33?є №33?3├╠▄э■  №   №   №   №   №   №   №   №   №   №   №   №   №   №   №   №   №   №   №   №                                  яю╬╠▄э■                                                                                  ╧   ╧   ╧   ╧           ╧   ╧ я╬╠▄▌э■           ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧                   ╧   ╧   ╧           ╧                         №   №   я╬╠▄▌э■                                             №           №           №       №    ?3є?3 ?3 33 33є3   3 ?є       я╬▄▌▌▌э■                                                                                  3є 3 є3 є3 є3  3  ?3 3є   №   ь╬▄▌▌▌э■                                                №           №           №       № ?3 3  3 є3 є33     3 ?є        я▐эюю■                                                                                    3є3 є3 є33 3  3   3 ?є        я▐эюю■                                                                                   33 ?3№?3 3 є33є3  ?3є33  №   №  я■               №   №   №   №   №   №   №   №                   №   №   №           №                                  я■                                                                                                           ╧   ╧   ╧                   ╧       ╧   ╧   ╧   ╧   ╧       ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧   ╧ №   №   №   №       №       №                                                                                       №    33?3є3?є33є  3  33є33є33?є  33 ?є                                                                                       ?є№3 33є3 №  3№ 3  3  <є?є№  ?є3є                                                                                     № ?є 3 33є33 юю3  33 33 ?є  юю?3 ?є                                                                                       ?є 3 єєє3  юю3  3  3  ?├?у▐э3  ?є                                                                                       ?є?3єє є33у╠╠33є33є3 №?є?у═▄33є33                №       №   №   №   №   №       №   №   №   №   №   №   №   №   №   №            ю╠╠юю          ▐╠╠э                                                                                            ╧   ╧   ю╠▌▌▌▌ю         ▐╠╠э╧                   ╧   ╧       ╧   ╧       ╧                           ╧                           ю╠▌▌▌▌ю       № ю═▄ю              №                       №   №       №   №   №   №   №       №   №   №                ю╠▌▌▌▌▌ю         я▐э■                                                                                                   ю╠▌▌▌▌▌ю  №       юю  №               №                       №   №       №   №   №   №   №       №   №   №              юю▌ююю                                                                                                                  юю▌ююю            ╧                                                                                             №   №     ю             №   №                   №   №       №   №       №                           №                             ю                                                                                                                 ╧                                   ╧           ╧           ╧       ╧   ╧                       ╧   ╧   ╧   ╧     №   №       №   №   №   №           №       №   №           №                       №       №               №   №                                                                                                                                  №   №       №   №   №   №           №       №   №           №                       №       №               №   №                                                                                                                                                                                                                                                          №                                   №           №           №       №   №                       №   №   №   №                                                                                                                                   ╧           ╧               ╧                               ╧   ╧                      ╧№   ╧       ╧   ╧             №       №   №   №   №   №               №               №               №       №       №DD    №       №      ╠                                                                              fЎ                 DЇ ╧                 O@DЇ         №       №   №   №   №   №               №               №         o o   №       №      ╠№№      №       №  OD  №                                                                          Ўo Ў                 ─╠Ї                  ╧╠╧                                                                           ЎfЎЎ                ╧╠L                   O╠L        №           №               №                               №   №  Ўo Ў                 ╠   №       №   №   ю╠╠ф                                                                           o o                                      ю╬▄ю    ╧               ╧                   ╧   ╧           ╧                   fЎ              ╧           ╧   ╧   ╧  ю╠╠▌▌ю     №       №                   №                   №       №       №       №       №       №   №           №    ю╠╠▌▌ю                                                                                                                 ю╠▌▌▌▌▌ю       №       №                   №                   №       №       №       №       №       №   №           №ю╠▌▌▌▌▌ю                                                                                                                ю▌▌▌▌▌▌ю                                                                                                                ю▌▌▌▌▌▌ю  №               №                   №   №           №                                   №           №   №   №  юююю▌ю                                                                                                                  юююю▌ю                           ╧                   ╧           ╧                                       ╧       ╧          ю      №       №                   №       №       №   №       №               №                   №                   №ю                                                                                                                                 №       №                   №       №       №   №       №               №                   №                   №                                                 я■                                                                                                                      я■                                                                                               №                   №яю╬ью■     №                                       №       №                                                            яю╬ьNDDЇ                                                                           ╧                           ╧       я╬╠▄▌MDDЇ                                   ╧   ╧                             №   №                           №         я╬╠▄▌MDDЇ     №       №   №   №       №               №       №       №  ∙                                             я╬33333303                                                              Щ∙       №   №                           №     я╬33333303       №       №   №   №       №               №       №     Я╗∙             Я                                я33333303        ╧№                                                  Я╗·∙             ЯЩ                             DЇя▐▌эюNDDDD       DD@                                                  ╣к┐∙          №  Я╗∙                      №     DЇ яю■ ODDDD      № OD                        №   №                    ╣лк║∙             Яп╗∙                           DЇ яю■ ODDDD      ╧╧╠                                                 Ялкк┐∙             Я√кЫ         ╧   ╧   ╧П°     ╧  OD ODDDDDDD  ╧   O╠╠№        ╧        Я∙             ╧              Я╗кккл∙№   №       №Ялк║Ы      №   №      ШЙ        OD LDDDDDDD№ Б №  D─№  №   №   №      Я∙       №       №       №    ╣ккккл∙             Я√кк║∙               ПЩЩ°       OD ODDDDDDD ииё     №                 ЯЩЩ∙                          ╣ккккл∙   №   №     Я║ккк╗∙       №   №╧ ШЩЩЙ №     ?3DDDD43  №пиИ·   №       №   №   №   ЯЩЩ∙№       №       №       № ╣║кк·л∙             Я║ккккЫ             ПЩйЪЩ°      ?3DDDD43   ПккИ                       Я╣╗Ы∙                         ╣║кк║к∙             Я║ккккЫ             ЯЩккЩЙ      ?3DDDD43   кк╧                      Я╣╗Ы∙                        Я║║кк║к∙             Я║пкклЫ      №   № ПЩйккЪЩ°  №   №3333є  №ПккбК· №           №        Я∙п║╗Ы∙        №             Ял║кк║к∙             ЯклкклЫ            ШЩккккЩЙ       3333є   ккКкК·                     Я∙п║╗Ы∙                      Яллкк┐к∙  ╧       ╧  Яклкклл∙     ╧   ╧ПЩйккккЪЩ°     ╧3333ГИИИИИИИИИИИИИИИИ°     ╧   ╧    Я╣√пк║Ы∙               ╧   ╧ Яллкк┐Ъ∙№       №    ЯклккЩ║∙   №      ШЩккккккЩЙ      ШЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЙ   №   №   №  Я╣√пк║Ы∙ №       №   №   №   ЯллкклЪ∙             Як√ккЩ║∙         ПЩйккккккЪЩ°    ПЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩ°             Я╣лккк║╗Ы∙                   ЯллкклЪ∙   №       № Яй√ЩЩЩ║∙      №╧ ШЩккккккккЩЙ №╧ ШЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЙ №   №   №   Ь╣лккк║╗Ы∙  №       №   №   №ЯллкЪлЪ∙             Яй║ЩЩЩ║∙        ПЩйккккккккЪЩ°  ПЩйккккккккккккккккккккЪЩ°            Я╣√пкккк║Ы∙                  ┐кккЪлЪ∙             ЯйЩ╗╗Щ║∙        ЯЩккккккккккЩЙ  ЯЩккккккккккккккккккккккЩЙ            Я╣√пкккк║Ы∙                  ╣кккЪлЪ∙  №       №  ЯйЩ╗╗Щ║∙     № ПЩйккккккккккЪЩ°ПЩйккккккккккккккккккккккЪЩ°  №   №    Яй║лккккк║╗Ы∙          №   № ╣ккк╣кЪ∙             Щ╗╗ккЩк√       ШЩккккккккккккЩЙШЩккккккккккккккккккккккккЩЙ           Яй║лккккк║╗Ы∙                ╣ккк╣кЪ∙ИИИИ°        Щ╗╗ккЩкЫ ╧   ╧ПЩйккккккккккккЪЩЩйккккккккккккккккккккккккЪЩИИИИИИИИ°  Яй║лккккккк║Ы∙         ╧   ╧ Щккк╣кЪ∙ЩЩЩЩЙ       Щ╗ккЫ╗ЩкЫ      ШЩккккккккккккккЩЩккккккккккккккккккккккккккЩЩЩЩЩЩЩЩЩЙ  Яй║лккккккк║Ы∙   №   №       Щйкк╣кЪ∙ЩЩЩЩЩ°      Щ╗ккЫ╗ЩкЫ     ПЩйккккккккккккккЪйккккккккккккккккккккккккккЪЩЩЩЩЩЩЩЩЩ° Яй║лккккккк║Ы∙               йЪкЪлкЪ∙ЩЩЩЩЩЙ №  Щ╗╗кккк╗ЩкЩ  №╧ ШЩккккккккккккккккккккккккккккккккккккккккккккЩЩЩЩЩЩЩЩЩЙ Ьй║лккккккк║Ы∙      №   №   №╣ккЪлкЪ∙ккккЪЩ°   Щ╗╗кккк╗ЩЪЩ    ПЩйккккккккккккккккккккккккккккккккккккккккккккккккккккЪЩ°Яй║√пкккк║л║Ы∙               ╣╗кЩлкЪ∙кккккЩЙ  Щ╗ккккк║╗ЩйЪ    ЯЩккккккккккккккккккккккккккккккккккккккккккккккккккккккЩЙЯй║√пкккк║л║Ы∙           ╧  Я╗╗лЪЩкЪ∙кккккЪЩ° Щ╗ккккк║╗ЩкЫ № ПЩйккккккккккккккккккккккккккккккккккккккккккккккккккккккЪЩШйк║лкккк║л║Ы∙         №   №Як║╗ккЩЪ∙ккккккЩЩ╗╗кккккк╗кЩ╗Ы·  ШЩккккккккккккккккккккккккккккккккккккккккккккккккккккккккЩЩйк║лкккк║л║Ы∙              ЪккккккЩ∙ккккккЪЩ╗╗кккккк╗кЩ╗╗ЙИИЩйккккккккккккккккккккккккккккккккккккккккккккккккккккккккЪЩйк║лкккк║л║лЪЙИИИИИИИИИИИИИШкккЩЩЩЩЙккккккЩ╗кккккккк╗кЩлкЩЩЩЩккккккккккккккккккккккккккккккккккккккккккккккккккккккккккЩйк║лкккк║л║лЪЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩккккккЩ╗кккккккк╗кЩккЩЩЩйккккккккккккккккккккккккккккккккккккккккккккккккккккккккккЪйк║лкккк║лк║ЫЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩккккккЩ╗кккккккк╗кЩккЩЩЩкккккккккккккккккккккккккккккккккккккккккккккккккккккккккккЪйк║лкккк║лк║ЫЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩЩккккккЩ╗кккккккк╗кЩккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккЪйк║лккккк║л║ЫйккккккккккккккккккккккккккккЩ╗к╗кккккк╗кЩккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккЪйк║лккккк║л║ЫйккккккккккккккккккккккккккккЩ╗к╗кккккк╗кЩккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккЪЩй║лккккк║л║ЫйккккккккккккккккккккккккккккЩ╗к╗ккккк╗ккЩккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккккЪЩй║лккккк║л║ЫйккккккккккккккккккккккккккккЩ╗к╗ккккк╗ккЩккккккккккккккккккккккккккйЪЪкккккккккккккккккккккккккккккккккккЪЩйк║лкккк║л║ЫйкккккккккккккккккккккккккккЩк╗к╗ккккк╗ккЩккккккккккккккккккккккккккЩБЪкккккккккккккккккккккккккккккккккккЪЩйк║лкккк║л║ЫйкккккккКиИиШИккккккккккккккЩк╗к╗ккккк╗ккЩкккккккккккккккккккккккккйиибкккккккккъююююоккккккккккккккккккккЪЩйк║лкккк║л║ЫйкккккккИЙЙиШЩикккккккккккккЩ╗кк╗ккккк╗ккЩкккккккккккккккккккккккккйиИккккккккккъююююоккккккккккккккккккккЪЩйк║лкккк║л║ЫйккккккКЩЙиЙЩСЙкккккккккккккЩ╗кк╗ккккк╗ккЩкккккккккккккккккккккккккЙккИкккккккккъююююоккккккккккккккккккккЪЩйк║Ыйккк║л║ЫйккккккККкйкЙкккккккккккккЩ╗к╗кккккк╗ккЩккккккккккккккккккккккккккккккккккккъююююоккккккккккккккккккккЪЩйк║Ыйккк║л║ЫйккккккШйккЪкЪЙкккккккккккккЩ╗к╗кккккк╗ккЩкккккккккккккккккккккккккккбКкккккккккъююююоккккккккккккккккккккЪЩйк║Ыйкккккк║лккккккШкккбЙкккккккккккккЩ╗к╗кккккк╗кЩЩкккккккккккккккккккккккккиКккккккккккJDD╠╠мккккккккккккккккккккЪЩйк║Ыйкккккк║лккккккШйкккбкЙкккккккккккккЩ╗к╗кккккк╗кЩЩккккккккккккккйЪЪкккккккккккккккккккккJDD╠╠мккккккккккккккккккккЪЩйк║Ыйкккккк║ЫйккккккккккккккккккккккКиИиЩ╗к╗ккккк╗ккЩЩккКиИиШИккккккЩБЪкккккккккккккккккккккJDD╠╠мккккккккккКиИиШИккккЪЩйк║Ыйкккккк║ЫйккккккккккккккккккккккИЙЙиЩ╗к╗ккккк╗ккЩЩккИЙЙиШЩиккккйиибкккккккккккккккккккккJDD╠╠мккккккккккИЙЙиШЩикккЪЩйкк║Ыйккккк║ЫйкккккккккккккккккккккКЩЙиЙЩ╗к╗ккккк╗ккЩЩкКЩЙиЙЩСЙккккйиИккккккккккккккккккккккJDD╠╠мкккккккккКЩЙиЙЩСЙкккЪЩйкк║Ыйккккк║ЫйкккккккккккккккккккккККкЩ╗к╗ккккк╗ккЩЩкККкйкЙккккЙккИкккккккккккккккккккккJDD╠╠мкккккккккККкйкЙкккЪЩйкк║Ыйккккк║ЫйкккккккккккккккккккккШйккЪЩ╗к╗ккккЩ╗ккЩЩкШйккЪкЪЙкккккккккккккккккккккккккккJDD╠╠мкккккккккШйккЪкЪЙкккЪЩйкк║Ыйккккк║ЫйкккккккккккккккккккккШккЩ╗к╗ккккЩ╗ккЩЩкШкккбЙккккккбКкккккккккккккккккккккJDD╠╠мкккккккккШкккбЙкккъ~wзк║Ыйъ~wзкЪЩй╩\Uекккк╩\Uекккк╩\UекШйккк╗кккккккЩ╗ккЩЩкШйкккбкЙккккиКккккккккккккккккккккккJDD╠╠мкккккккккШйкккбкЙкккъ~wзк║Ыйъ~wзкЪЩй╩\Uекккк╩\Uекккк╩\Uекккккк╗кккккккЩ╗ккЩЩккккккккккккккккккккккккккккккккккккккJDD╠╠мкккккккккккккккккккъ■▀}зк║Ыщ■▀}зЪЩЩ╔╝лZеккк╩╝лZеккк╩╝лZХЪккккЩ╗кккккккЩ╗ккЩЩккккккккккккккккккккккккккккккккккКиИиHDD╠╠мкккккккккккккккккккъ■▀}зк║Ыщ■▀}зЪЩЩ╔╝лZеккк╩╝лZеккк╩╝лZЕЪккккЩ╗кккккккЩ╗ккЩЩккккккккккккккккккккккккккккккккккИЙЙиHDD╠╠мккккккккккккккккккъ■▀¤яоккъ■▀¤яЮйк╩╝л║╦мкк╩╝л║╦мкк╩╝л║╦мбккккЩ╗ккккккЩ╗кккЩЩкккккккккккккккккккккккккккккккккКЩЙиЙIDD╠╠мккккккккккккккккккъ■▀¤яоккъ■▀¤яЮйк╩╝л║╦мкк╩╝л║╦мкк╩╝л║╦МкккккЩ╗ккккккЩ╗кккЩЩкккккккккккккккккккккккккккккккккККкIDD╠╠мкккккккккккккккккъ■▀¤яоккъ■▀¤яокк╩╝л║╦мкк╩╝л║╦мкк╩╝л║╦мкИккккЩ╗ккккккЩ╗кккЩЩкккккккккккккккккккккккккккккккккШйккЪJDD╠╠мкккккккккккккккккъ■▀¤яоккъ■▀¤яокк╩╝л║╦мкк╩╝л║╦мкк╩╝л║╦мкккккЩ╗ккккккЩ╗кккЩЩкккккккккккккккккккккккккккккккккШккJDD╠╠мккккккккккккккккъ■▀¤яЮйкъ■▀¤яок║╦╝л║╦мкк╩╝л║╦мкк╩╝л║╦мкбКккккЩЩккккккЩ╗кккЩЩкккккккккккккккккккккккккккккккккШйкккADD╠╠мккккккккккккккккъ■▀¤яЮйкъ■▀¤яок║╦╝л║╦мкк╩╝л║╦мкк╩╝л║╦мКкккккЩЩккккккЩ╗кккЩЩккккккккккккккккккккккккккккккккккккккJDD╠╠мкккккккккккккккъ■▀¤яЮЩйъ■▀¤яок║╦╝л║╦мкк╩╝л║╦мкк╩╝л║╦мккккккккЩЩЩкккккЩ╗кккЩЩккккккккккккккКиИиШИккккккккккккккккккJDD╠╠мкккккккккккккккъ■▀¤яЮЩйъ■▀¤яок║╦╝л║╦МиШ╚╝л║╦мкк╩╝л║╦мккккккккЩЩЩкккккЩ╗кккЩЩккккккккккккккИЙЙиШЩикккккккккккккккккJDD╠╠мкккккккккккккккъ▐¤яоЪЩйъ▐¤яок║╗╦м║╦ЬЙиШ╔м║╦мккк╩м║╦мкккккккккЩккЩкккЩ╗ккккЩЩкккккккккккккКЩЙиЙЩСЙкккккккккккккккккJDD╠╠мкккккккккккккккъ▐¤яоЪЩйъ▐¤яок║╗╦м║╦ЬйЙЩ┴м║╦мккк╩м║╦мкккккккккЩккЩкккЩ╗ккккЩЩкккккккккккккККкйкЙкккккккккккккккккJDD╠╠мккккккккккккккккъюокЪЩЩйъюоккккк╩╠мЪййк╔╠мккккк╩╠мккккккккккЩ╗кккккЩ╗ккккЩЩкккккккккккккШйккЪкЪЙкккккккккккккккккJDD╠╠мккккккккккккккккъюокЪЩЩйъюоккккк╩╠мЪйЪкЪ╔╠мккккк╩╠мккккккккккЩ╗кккккЩ╗ккккЩЩкккккккккккккШкккбЙкккккккккккккккккJDD╠╠мккккккккккккккккккккЪЩЩЩЩЩЩЩЩйкккккЪккбЙккккккккккккккккккккЩ╗╗╗ккЩЩ╗ккккЩЩкккккккккккккШйкккбкЙкккккккккккккккккJDD╠╠мккккккккккккккккккккЪЩЩЩЩЩЩЩЩйкккккЪйкбкЙккккккккккккккккW2-- title: Avali Hunt -- author: Yamavu -- desc: A simple game about shooting birds. Inspired by Moorhuhn. -- script: lua -- input: mouse -- saveid: TIC_Avali-4 -- based on Vogeljagd by Niklas 'nickifr' Freund -- ============LICENSE============ -- Copyright (C) 2023 Yamavu -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -- ============END OF LICENSE============ -- TODO -- background (star shower or random stars) -- 16x16 birds -- -- Permanent Values versionNr="1.2.1" -- Variables starterStarted = false started = false shakeActive = false shake = -50 score = 0 highscore = 0 ammo = 5 remainingTime = 60 gameOver = false birds = {} clouds = { [0]={x=30, y=20, movement=0.2, sprite=272}, [1]={x=75, y=42, movement=-0.35, sprite=273}, [2]={x=230, y=60, movement=0.15, sprite=274}, [3]={x=29, y=2, movement=0.32, sprite=275} } t=0 tsec= 0 function ResetValues() starterStarted = false started = false shakeActive = false shake = -50 score = 0 highscore = 0 ammo = 5 remainingTime = 60 gameOver = false birds = {} t=0 tsec= 0 init() end function MakeBird() mySprite = 257 if math.random() < 0.5 then mySprite = 257 elseif math.random() < 0.7 then mySprite = 260 elseif math.random() < 0.6 then mySprite = 263 else mySprite = 266 end direction = math.random(1,2) layer = math.random(1,3) state = math.random(-1, 1) x = 0 if direction == 1 then x = -20 else x = 240 end height = 0 if layer == 1 then height = math.random(0, 70) elseif layer == 2 then height = math.random(0, 80) else height = math.random(0, 100) end speed = 0.0 if layer == 1 then speed = math.random(2, 10) / 10.0 elseif layer == 2 then speed = math.random(4, 13) / 10.0 else speed = math.random(7, 18) / 10.0 end return {alive=true, birdSprite=mySprite, direction=direction, layer=layer, state=state, x=x, y=height, speed=speed, deadTime=0} end function init() -- Call math.random a few times to get better random numbers math.randomseed(1000) math.random() math.random() math.random() music() highscore = pmem(0) birds[0] = MakeBird() end init() resX, resY = 240, 168 prt={} function prtdraw() local diam=20 for i,p in pairs(prt) do circ(p.x,p.y,p.rad,p.clr+(2-p.act//(diam//3))) end end local function rnd(x) return math.random()*x end function prtmake(x,y) local targetx,targety = x/2-resX/4,-y/4+1*resY/8 local off=45 local x4, y4, z4 = targetx, -off+targety, 50 local x,y = pointtf(x4,y4,z4) local i = 40 local diam=20 while i>0 do table.insert(prt,{x=x,y=y,dx=rnd(2)-1,dy=rnd(2)-1,rad=rnd(2),act=diam,clr=5}) i=i-1 end end function prtupdate() for k,p in pairs(prt) do p.x=p.x+p.dx*2 p.y=p.y+p.dy*2 p.act=p.act-1 if p.act<0 then prt[k]=nil end end end function pointtf(x1,y1,z1) local centerX, centerY = resX/2, resY/2 local scale = 100 -- Adjust this value for different perspectives local x1_p = centerX + x1 * scale / (z1 + scale) local y1_p = centerY - y1 * scale / (z1 + scale) return x1_p,y1_p end function draw_tri( col, x1, y1, z1, x2, y2, z2, x3, y3, z3 ) local x1_p, y1_p = pointtf(x1,y1,z1) local x2_p, y2_p = pointtf(x2,y2,z2) local x3_p, y3_p = pointtf(x3,y3,z3) -- Draw the 3D triangle tri(x1_p, y1_p, x2_p, y2_p, x3_p, y3_p, col) -- Draw lines connecting the vertices to the vanishing point --line(centerX, centerY, x1_p, y1_p, 14) --line(centerX, centerY, x2_p, y2_p, 14) --line(centerX, centerY, x3_p, y3_p, 14) end function draw_quad(col,x1, y1, z1,x2, y2, z2,x3, y3, z3, x4, y4, z4) draw_tri(col, x1, y1, z1,x2, y2, z2,x3, y3, z3) draw_tri(col, x4, y4, z4,x2, y2, z2,x3, y3, z3) end function draw_gun3d(targetx,targety) local targetx,targety = targetx/2-resX/4,-targety/4+1*resY/8 local w = 5 local depth = 5 local y=45 -- Vertices of the 3D triangle local x1, y1, z1 = -w, -y-w, -45 local x2, y2, z2 = w, -y-w, -45 local x3, y3, z3 = targetx-w, -y+targety+w, 50 local x4, y4, z4 = targetx+w, -y+targety+w, 50 local x5, y5, z5 = targetx-w, -y+targety-w, 50 local x6, y6, z6 = targetx+w, -y+targety-w, 50 local x7, y7, z7 = -w, -y+w, -45 local x8, y8, z8 = w, -y+w, -45 --draw_quad(12,x3, y3, z3, x4, y4, z4,x5, y5, z5, x6, y6, z6) draw_quad(4,x7, y7, z7,x8, y8, z8,x3, y3, z3, x4, y4, z4) if targetx<0 then draw_quad(12,x3, y3, z3,x5, y5, z5, x7, y7, z7,x1, y1, z1) elseif targetx>0 then draw_quad(12,x4, y4, z4,x6, y6, z6, x8, y8, z8,x2, y2, z2) end end function draw_gun2(mx,my,shakeActive) if left_click and not shakeActive then prtmake(mx,my) end if next(prt) then prtupdate() prtdraw() end draw_gun3d(mx,my) end --[[ function draw_gun(mx,shake) --rotate gun if mx <= 86 then sp = 1 elseif mx <= 173 then sp=0 else sp=2 end -- animate gun if shake > 0 then sp=sp+285 elseif shake>-10 then sp=sp+301 else sp=sp+269 end spr(sp, 100, 96, 0, 5, 0, 0, 1, 1) print(shake,10,50,4) end ]] function TIC() if not started then -- =====INPUT===== mx,my,left_click=mouse() -- =====MENU LOGIC===== for cloudNr = 0, #clouds do clouds[cloudNr].x = clouds[cloudNr].x + clouds[cloudNr].movement if clouds[cloudNr].movement > 0 and clouds[cloudNr].x > 240 then clouds[cloudNr].x = -20 elseif clouds[cloudNr].movement < 0 and clouds[cloudNr].x < -20 then clouds[cloudNr].x = 240 end end if left_click then starterStarted = true end -- =====RENDER===== cls(12) map(0, 0, 30, 17, 0, 0, -1, 1) -- Show Clouds for cloudNr = 0, #clouds do spr(clouds[cloudNr].sprite, clouds[cloudNr].x, clouds[cloudNr].y, 0, 2, 0, 0, 1, 1) end -- Show Trees spr(290, 223, 65, 0, 1, 0, 0, 2, 4) spr(292, 27, 68, 0, 1, 1, 0, 2, 4) spr(288, 167, 72, 0, 2, 1, 0, 2, 4) spr(288, 6, 81, 0, 2, 0, 0, 2, 4) -- Show Text print("Avali-Hunt", 66, 32, 5, false, 2) print("HIGHSCORE: " .. highscore, 84, 51, 6, false, 1) print("Press your MouseButton to begin!", 34, 63, 5, false, 1) print("Copyright (C) 2023 Yamavu", 73-8*3, 115, 3, false, 1) print("GNU General Public License Version 3", 19, 129, 3, false, 1) print("V"..versionNr, 2, 2, 3, false, 1) if starterStarted then t = t + 1 end if t > 7 then started = true t = 0 end else if t > 10 then t = 0 end if tsec > 59 and not gameOver then tsec = 0 end -- =======INPUT SECTION======= mx,my,left_click=mouse() -- =======GAME LOGIC SECTION======= if tsec == 59 and not gameOver then --sfx(0, "C-2", 8, 1, 5, 0) remainingTime = remainingTime - 1 if remainingTime % 10 == 0 then sfx(0, "C-3", 8, 2, 14, 0) else sfx(0, "A#2", 8, 2, 10, 0) end end if remainingTime == 0 and not gameOver then gameOver = true shakeActive = false shake = -50 tsec = 0 music(0, -1, -1, false) if highscore < score then pmem(0, score) end end if math.random() > 0.99 then birds[#birds + 1] = MakeBird() end for cloudNr = 0, #clouds do clouds[cloudNr].x = clouds[cloudNr].x + clouds[cloudNr].movement if clouds[cloudNr].movement > 0 and clouds[cloudNr].x > 240 then clouds[cloudNr].x = -20 elseif clouds[cloudNr].movement < 0 and clouds[cloudNr].x < -20 then clouds[cloudNr].x = 240 end end for birdNr = 0, #birds do if birds[birdNr].alive then if birds[birdNr].direction == 1 then birds[birdNr].x = birds[birdNr].x + birds[birdNr].speed else birds[birdNr].x = birds[birdNr].x - birds[birdNr].speed end if t == 10 then birds[birdNr].state = birds[birdNr].state + 1 end if birds[birdNr].state > 1 then birds[birdNr].state = -1 end if birds[birdNr].direction == 1 and birds[birdNr].x > 240 then birds[birdNr].alive = false elseif birds[birdNr].direction == 2 and birds[birdNr].x < (-8)*birds[birdNr].layer then birds[birdNr].alive = false end elseif birds[birdNr].deadTime < 300 then birds[birdNr].y = birds[birdNr].y + birds[birdNr].speed if birds[birdNr].layer == 1 and birds[birdNr].y > 100 then birds[birdNr].deadTime = 300 elseif birds[birdNr].layer == 2 and birds[birdNr].y > 120 then birds[birdNr].deadTime = 300 elseif birds[birdNr].layer == 3 and birds[birdNr].y > 140 then birds[birdNr].deadTime = 300 end birds[birdNr].deadTime = birds[birdNr].deadTime + 0.25 end end if not gameOver then if left_click and not shakeActive then -- Shoot Gun shakeActive = true shake = 10 ammo = ammo - 1 sfx(1, "B-3", 31, 0, 15, 0) prtmake(mx,my) for birdNr = 0, #birds do if birds[birdNr].alive then if mx >= birds[birdNr].x and my >= birds[birdNr].y then xAdd = 8 * birds[birdNr].layer if mx <= birds[birdNr].x+xAdd and my <= birds[birdNr].y+xAdd then birds[birdNr].alive = false sfx(3, "A-4", 8, 1, 10, 0) if birds[birdNr].layer == 1 then score = score + 3 elseif birds[birdNr].layer == 2 then score = score + 2 else score = score + 1 end end end end end end if shakeActive then -- Decrease Shake after Shot shake = shake - 1 -- Reloading-Sound if ammo > 0 then if shake == -20 then sfx(2, "D-3", 8, 1, 10, 0) elseif shake == -40 then sfx(2, "D#3", 8, 1, 10, 0) end else if shake == -30 then sfx(2, "D-3", 8, 1, 10, 0) elseif shake == -80 then sfx(2, "D#3", 8, 1, 10, 0) elseif shake == -110 then sfx(2, "G#3", 8, 1, 10, 0) end end -- Reactivate Gun if ammo > 0 then if shake < -50 then shake = -50 shakeActive = false end else if shake < -120 then ammo = 5 shake = -50 shakeActive = false end end end end -- =======RENDER SECTION======= -- Clear Screen and display background cls(12) map(0, 0, 30, 17, 0, 0, -1, 1) -- Show Clouds for cloudNr = 0, #clouds do spr(clouds[cloudNr].sprite, clouds[cloudNr].x, clouds[cloudNr].y, 0, 2, 0, 0, 1, 1) end -- Show Trees in Background spr(290, 223, 65, 0, 1, 0, 0, 2, 4) spr(292, 27, 68, 0, 1, 1, 0, 2, 4) -- Show Birds for currentLayer = 1, 3 do for birdNr = 0, #birds do if birds[birdNr].layer == currentLayer then if birds[birdNr].alive then faceDirection = birds[birdNr].direction - 1 spr(birds[birdNr].birdSprite+birds[birdNr].state, birds[birdNr].x, birds[birdNr].y, 15, birds[birdNr].layer, faceDirection, 0, 1, 1) elseif birds[birdNr].deadTime < 300 then faceDirection = birds[birdNr].direction - 1 spr(birds[birdNr].birdSprite+birds[birdNr].state, birds[birdNr].x, birds[birdNr].y, 15, birds[birdNr].layer, faceDirection, 1, 1, 1) end end end end -- Show Trees in Foreground spr(288, 167, 72, 0, 2, 1, 0, 2, 4) spr(288, 6, 81, 0, 2, 0, 0, 2, 4) -- Show remaining Ammo for am = 1, ammo do spr(318, 237-(am*16), 118, 0, 2, 0, 0, 1, 1) end if ammo < 5 then for am = ammo+1, 5 do spr(319, 237-(am*16), 118, 0, 2, 0, 0, 1, 1) end end -- Show Targeting Cross circb(mx, my, 3, 6) circ(mx, my, 1, 6) -- Show Score print("HIGHSCORE: " .. highscore, 2, 2, 5) print("SCORE: " .. score, 2, 10, 10) print("TIME LEFT: " .. remainingTime, 2, 18,5) if gameOver then print("GAME OVER!", 68, 58, 11, false, 2) print("SCORE: " .. score, 100, 70, 5, false, 1) end -- Show Particles if any if next(prt) then prtupdate() prtdraw() end -- Show Gun --draw_gun(mx,shake) draw_gun3d(mx,my) -- =======DEBUG SECTION======= --print(mx .. ":" .. my, 84, 64, 9) --if md then print("PRESSED", 84, 70, 9) end --print(birds[0].direction ..":".. birds[0].layer ..":".. birds[0].state ..":".. birds[0].x ..":".. birds[0].y ..":".. birds[0].speed, 10, 80) --print(birds.amount, 90, 90) --print(ammo, 90, 60) t = t + 1 tsec = tsec + 1 -- Reset Game if gameOver and tsec > 359 then ResetValues() end end end function scanline(row) if shake>=0 and shakeActive then poke(0x3FF9,math.random(-shake,shake)) -- Horizontal Shake poke(0x3FFA,math.random(-shake,shake)) -- Vertical Shake else poke(0x3FF9,0) poke(0x3FFA,0) end end