Mister_Stefan

Flappy Birs V5(Aimware)

Oct 15th, 2020 (edited)
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 68.46 KB | None | 0 0
  1. --Encoded textures
  2. local b64_background = [["iVBORw0KGgoAAAANSUhEUgAAAwAAAAOACAIAAAACU4MBAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eH
  3. BhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgM
  4. jAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6
  5. eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXN
  6. vdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFQzY4N0U2OTg5MTAxMUUzQkM4MUMwODVFQjk3NkM0MyIgeG1wTU06RG9jdW
  7. 1lbnRJRD0ieG1wLmRpZDpFQzY4N0U2QTg5MTAxMUUzQkM4MUMwODVFQjk3NkM0MyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkVDNjg3RTY3ODkxMDExRTNCQzgxQzA4NUVCOTc2QzQzIiBzd
  8. FJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkVDNjg3RTY4ODkxMDExRTNCQzgxQzA4NUVCOTc2QzQzIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pI+BBgAAOThJ
  9. REFUeNrs3etv5Gp+J3Y+JOsiqS+nT/e5zYxnPAuPL+uxY88ixi4COMnCAXYR/wGL/BV5kb9g3wXIH+L3cQK/CBZxEiObrL1rjD2e8dw843Pv0zdJLaluJJdSdatYJRVLpaqSqlSfDxozRxKrRD58+NO3yIcPw//4F/8xAgDYGq+ffhl
  10. rBQBg2whAAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQACAAAQAIAABAAhAAA
  11. ACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAg
  12. AAEACAAAQAIQAAAAhAAgAAEACAAAQAIQACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAg
  13. AAEACEAAAAIQACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEAAgAAEACEAAAAI
  14. QAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAIABpAgBAAAIAEIAAAAQgAAABCABAAAIAEIAAAA
  15. QgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAA
  16. QgAQAACABCAAAAEIABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAQAACABCA
  17. AAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCAAQgAAABCAAAAEIAEAAAgAQgAAABCA
  18. AAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCA
  19. BAAAIAEIAAAAQgAAABCAAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACA
  20. AQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAEIAAAAQgAQAACABCAAAAEIAAA
  21. AQgAQAACABCAAAAEIAAAAQgAQAACABCAAAAEIAAAAQgAQAACAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIAEIAAAAQgAAABCABAAAIABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEA
  22. AAgAQgAAABCAAAAEIAEAAAgAEIE0AAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAI
  23. AABAAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQACEAAAAIQAIAABAAgAAEAC
  24. EAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAAC
  25. EACAAAQAIAABAAhAAAACEACAAAQAIAABAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAA
  26. EACAAAQACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEAAhAAgAAEACAAAQAIQA
  27. AAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQACAAAQAIAABAAhAAAACEACAAAQAIAABsJmCJkAAAmDrAlA4/Qd3T6oJAJgmL7QBd5MzQACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAI
  28. AABAAhAAAACEACAAAQAIAABAAhAAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAAAIQAIAABAAgAAEACEAAgAAEALAdUk0AsKV/AOLoV+6nzeEH4bD89x/k0ceHWT8rCm2NAATAmthJwx99q/WoFZfhJ6wg
  29. AB32ij/50fHL/DT/CEGsG5fAAICt4wwQwPYanvtZ0Rmg0/cM2hgBCIA1DEBv/63izUEAAuCmNZOQTI8h7TSEVYaUcPYrdtJQTBkDlBVRLzM4CAEIgKX6gw+bv/7otM5fGnTKbPSwGccry0C7jfDH324PE86lMefnrwZ//kk3OotHchA
  30. CEADLca8Rnuyc3uwyLeXEqzwDVL75o3bdrTZfHbtKhgAEwAqEyv/e1m8HAQiAG8wf4c3FrxBubQWu/VNYKfMAAQBbZ7VngHbS8M8+aOykq4pZ3az4yy97x32D52ArtJPwvQ8bu+mqBq6UJeWvypIy2JiZiz/cS777pBFNv9L0jfvJOp
  31. 9lKdf/j77VPv2vKYOgf/ii/+nrLDKRNBsXgJpJ+O3HjfpBcIs47BV/86wvAMGWaCTRaUlZ5aMbfvCsfzLYmL+277bj771/FoDC5Rlo2vfXZ/3LvVmzwFcn2WfDAKT3s2wugQEAW2flg6DLT2qru80yNoAOtu9DW7yyRzfEm/bohvC2D
  32. K75mZ6a9Z8xSlqPZ5XFBABguyx6BuijveRBa2pG303jZrLCBJ/G0T95mL7ezactcNAtPj/K7GbYFB/uJQ+bYdpn/500NFc5qLcsKd9+mL6/kxdXG3QyyKOPD7N+dnNjhiba52t7Sbjr/aFzNiZ9WOUP35Z0Q4K4/QD0vQ8av3N2D8I0
  33. K71KVVbD/+5brZoFfvC8/7/+TACCjfF77zV+971GdEszF5cl5Y++2br68oe94k9+dPwyv7m7xibaJ9z1qXTK7f0v3hv9ifm75/0//flZSffoDBbmEhgAsHUWPQN0658/DKCDu2TNZy6+ZOFwm+0TtqA/XHvvwGoD0K0fgQ4HuGt/827
  34. 10A4rW/hutI8iz7YEoDSOGrWX3NP1voaWxKcX9WsW6OfFINcNNkYzCSsd86k/rPyQDFH9jRHpRl2WL7eknYayyBRTxgBlRdTLikXev5WOnfVIDVvYnJKinmx2APr2w/QPv1E3JPBBc63Tebn+/8NvJTUL/MWn3R+/HJT/kRtQtwn+4M
  35. Pmrz867bQrOhOuP6zarz5M/+uzkjJtD5YlZYPm99pthD/+dnuYcC7tMj9/NfjzT7rRWTwqrvX+//rb7QfNsyYJm9c+W15S1JPNDkDtJLy3U/eJY82vyLZO179uFdupWrJJ7jXCk7MOuaK/AfrDDRySwz1Y8+iGDVL2w/pH/Xx1HBZ//
  36. +qjPwyC2aCSop5sdgCKNv/6qw54xwS79a7swXCHNmel7x/uUHMpKWxMADq/42CDe7bbxO5SqVrxLUL6ww0ckmGTH91waZ+89k+v3mLBuZ8NLCn22JozoA4A2DqTZ4B++0nja3ujUcNPdu54Qvqnjxvv7Z5u7/AOji+Osr993j/9L9OM
  37. 3oYP95Lvnk0sPu2T0zfuJyv9HDzRHyZ0s+KvvuwdD25u2t8baNIFzTxkyib92r3kfAUet+MtmcDmvP3/6Fvtmvb54Yv+p6+z8x41sb+aSbTXCHfmbNnS23PmIXm7JeWO1ZNbLybLXf/nzdZkAPrVB0n10RZ3/qj75v3kV+6PAt/fPT9
  38. 9ekbkQTO35N12/L33zzro9BGy4Qb7w4TDXvGDZ/2TQVHcoSZd0MxDpmzSyUc3bFmXftSqHSV9kn32evRwq4v7yz1fNe0585C83ZJyx+rJrReT5a7/54OGS2AAwNaZPAMUtuwDx0SSNczwlnfH+XmCWzrnX/974w08fbHqJp15yJQLDF
  39. dgO89khDkf13Prh8BmtefMQ/J22/OO1ZNbLybLXf9gEDQAsIXS33h37CTQw9ZWR6IHzfg3zmYFLc7+DfLo48OsnxWGBC2nt8XRr9xPm/Fln3zPfG0vCeu9/t9+mL6/kxdTrlIfdovPj0bjObahSScOmYveaRnEUufDvaRzNgw234RDY
  40. OMOyXVuz3WrJ+tfTL48yve7+dUbpDy4HjZH91xcXP/wRf8nY19v93nXiQf6HPaKP/nR8ctuXmzOXT/r7H4z/Jvf3K1Oazth/Sc7qZ/S/u+e9//0553ous892MQmnXlouJQzowHHu4r5fpZ7SK55e65VPVn/YvJnv+h8/6t+dOVHi/yr
  41. X21P3oFRWf/PPvnCJTAAYOukE4Fuyz97TMwcHcw/v4IWrpnWdv0be9XT/m5ck5psfbk9SnMt+ZBUT7a4mExM8x0uCUAOoOlNrHFWcoBt8mQwQZOKOBpQ693Rlb97xaT+QW+p46e+7ZpJaCXhbKrO0+/08yIzGOjKkhClb4fAhrMngd/
  42. t8Q3l9rbOhtkNr2SX/9PLiwVHjzXiEE+fOvnONylsc/1cbj3Z9GJSrn+1Qa7SgDP+xD8d/EQ/myYvouedPMtH3/mLz7o/eTmIrjwIa8v9k4fpH36jFb09rVoee++24/TuDjw7GRT73VHPOOoXf/aLzmFvoUH0/9XXWt85uzPi0pup7n
  43. yTwtZaej3Z9GJy0C2GTw65ogetsDv9Ktdnn3zhDFCdskM8bo91hx3XDOfRTsP7u3G0NfP6l9vbqnzoOOwVi/eX+803bTit6dxlDurJNhSTcv3vNedYxZkntASgWS2oCZbRgNszmnwVY8iCrghb/wcoLO8Nw51okMUJQPNFSH+E5u2sY
  44. Zvm9V/FXYQTNzIAW5R+llpPNr2YLH21jR0AALaOM0As02+92/joXnyerB/vJGH6TQd3XisJ/+KjZid7ewtHFP3wxeCz4dz2xeXLf++Dxs7bybmG//v1e4lzP8Ai9UQxEYBYuW89SCanHt/i1mgm0XefNKrfedbJax7uM1z+0duHZwVP
  45. BQeWUU8Uk0u5BAYAbB1ngFim8hPG8PSFe7PffMKYcxB9fPaS6hkggAXriWIyrX0AALaLM0Dz+WA3+c6jswdjnF10PegVX06/BHu993/QmvlIuOv78jg/6ObLWuE0jr5xL2kkoxV+2HLqZ47+M6GdhqZBioB6ciM8CmM+ZT+r9rS/e97
  46. /0593Ln7/2v7Vr7arg4iX7s9+0fn+V/1oSY/yuN8M/+Y3dw2yu3b/uUh+BNSTG/DZJ1+4BAYAbB2XwOYzOTF0WP77r3SmzrCCNwyVQXY+b8zVfwDUEwFoc/rcjbx/2JzWCFs/389a9R9APUEAWjtJiNK3V2XDlAVWqhG/ebzwpYPmyu
  47. /18qIo7CgABCCW51sP0j/8RiuaPlj4QSusdNjaH3zYnJhLtOqoX/zZLzqHvdMR0mIQAAIQy9FOw/u7cU0AWvU13fvNcK859Xcc9orUGVUABCCW7nyIT7jVFZj3RwAgAHH98HG78+XUn2EKBjMDsB3MAwQAbB1ngBby4V7yL795Oqj5i
  48. vNAP95J1nm+nFYS/sVHzU5WXHGLGknYawSzPwOwcTwKYyHz3i21/k/lnfcRGaZaB2DjeBQGALCNXAJbSLhzk5E7owPANnAGCAAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIAEAAAgAQgAAABCAAAAEIABCA
  49. AAC2QKoJNkhRFEf9QV4UV10+inpZI4/CslagnUQPW/bD+uoMBr0sv/ry/TwdFEv7FJSE6J1WlPpUpZ6oJ+rJJtQTAWiTDIrik8PDXpYNi9FMWRE/PX5nkCfLWoGv34t+7/3T/wjB3lhHz05OXpx0rtg9Si8694/67aX9PUujf/5RtNf
  50. QQ9QT9UQ92YB64sMaALB1nAHaPEXlf2csWbz5t9xfzTr3jWKePbXk7qF/qCfqiXqyOfXEGSAAYOs4A7TZQu3F0Yuj1+JQvmSOXJ0Xwae0u9o9hgtMfBnPs8OLsx6indUT9UT32MR6IgBttofNeDeZ2mO6Wfy8E4aj+Ifd8Ot7ncft3s
  51. WeOs0/vm6/6DQjJ6s3004S3mnWneU97oWj/qh7PGr1v3n/5Ord40W38Y+HO7qHeqKeqCebWE8EoM2WhqgZT+1dRTGZ19tJfq+RXb1HNmKVaoPFtd0jOrvRdKw7xcVc3eN4kGhk9UQ9UU82tJ4YAwQAbF/i1wR3Q5jyzTBlybDA23I3u
  52. keke6CesMX1xBkgAGDrbNcZoKIoskEW5Uu7Dh2SOElXeNlyvxt99vpszc++zIvwqrOb5fn5d3qD0Di7Ln9pdh4UoZ/XjcLv5cXRYPTz8p3upyGe/oZ3Xtk9inmmfp/VP0LSSMLKprkd5NEvD6JeNuohh91W5+w6+vDL4zgcduv25kE/
  53. reke5YFyOMirh8tuGoaDAHyUV0/UE/Vk0+vJ1l0Cy/qDYnkFKymSlRas1/3o5/vDUvvmCCiKsYnGX/dm1ejan/bzssuOyl8Sor0kibf4j1ue5WUPWV69CqfdY2XtWRasjw+jN7ddFMP/bUZRc2wdFuge5U9fD4rB2fEyXDKN42Ys/Kg
  54. n6ol6chfqiUtgAMDWMQh6vRXnSfw6iftqv2E578PtdBA9BPUE9eRanAECALbOXTsDVORFked12XOTP5vEobjfyJIFZpNvJWONk4RoOPFr8eb9o3CnL9gXp8NW8/oFNnoD99JsYhfPZThr2blwOtNdaITRJ7Y0bNeADvVEPVFP7nA9uW
  55. sBaNAfLHHQ2bppxMV3Hh610zy67rD5CxO5hnaSVMv43f77lmd5v9O7wxv4tb3uB7vdRfZjGPsDGT1+O/N9sQXdQz1RT9STraonLoEBAFvHIOjNM9fcmtf7JIfuoYfoMHoLd7ueOAMEAGyddDDPCKcQJh/3uhZWOc4smzW1U8iX+euSO
  56. YcNTg7DDJPJun6BmS+f/HVFNOwwV1zJOES3Pw3aKrtHXtS9fTibW2yJDTBvey7YPa7RQ7J5ekg425ygnqgn6ol6chv1JP1/P5tj6XYS/e77USuJ1kRRFP1uvzoV/XJH3ffy8KP9RjcPU7t9CGGpJ9G+8yj6YHeOinDQy48rNbWdhHfO
  57. RpmFt4fTs16eVdrnYTPsJKMFOlnxqpdXj4fHzTiZPjf5VyfRv/98js15fzf69UdzbM7SDXqDfJBVDr8lV69fHqXPuklNVQxL/cQwb3vO3L8L9p/J4yWL/vrpHCW1rCTffRLtpLfZQ9QT9UQ92dp6ku5352ivfrrE594sqWblebGydSq
  58. r3+tBfJKFuty/1EOxl815QBanz9+JRjOLT8btfj429XhWhIkPHNWXlwfXjKnus2h/nk+o9xq3/yctz/PVvX8nCwf9uK57LPUWonnbc+b+XbD/XPx1h/PcE9NWT9QT9UQ9ub16YgwQALB10rlO8RZbOcf5jKm7l9oi1zjjPnNm8foF5p
  59. 2YfN4Oo3ss/XfdZPeYt4fM1z228okJ6ol6op6sST1xBggA2DrpO+2j6td7SWhWhlm97idfnTTXZ3XzUr86Bu2m5xp/0u7fb17/MmwvK44qY8TyIrzutfNiY2JoIxnsNbrV+Hy/EeLKeLNnJ43X/fS2PqudTkw/yKrXgfMsv8kVuNfI3
  60. tvpLbD+0eEgr94odNxv9bKNmawrDsW95klcebTCbhJa4/Xk2Vk9KdQT9UQ9UU9uu56k95vHYwdkK7mXjn7BlyfNtQpARV4MbnVm+ket/iJTgx8Nimfd7HyHZXlc9sh8c07sNuJBtcOUXfHDdpJW7gI4GcTDgnVbsv6guL0G3U2zr+91
  61. rt09ylL1RSerDhLsZ8kGFawQir1GJ41HkeJxK76Xju7yeHrSfKaeqCfqiXqyHvXEJTAAYOtMhsEwHjbNaH5JLF2gZcKda4ow3iA6zILd4072EN1DPVFP1JM1rCfOAAEAWyc9GYxdQtsPcS8b5aqj/tisz1kRPTtZaCboB803EzXeDdn
  62. beZ/OteNwk7OUNuOwm4zmVWuOz5oZzubibJx9783MVOMrV760+vJ41sT5WRFXO0z50pfdsZlAu9lYpO4MoqfH18/q5fu/05qcTWuDFKcNMjaqthFP7oKVmrl/F+w/k9tbhO6g0Y9HBeLgbT0Zvuz1eD0pD53nJ2WRuX4PUU/UE/VEPb
  63. lePSnDTPrs+GH1W89rX9AdRN9/ulAL/u570Tcf3J2C1cnGBiG+GcQXQnRT5x7vN8L9xtjU6dXfO5yq/PzgubhWZXdsJ1NfflkHaHbHE/PTC4foWHc6iV50rr917TT65x9Fe2fTlYYNPJl7ekD28uogxLNBfDfXPWbu3wX7z4XtDS869
  64. +vrSbWH9LLob54tWk9+5f6mdg/1RD1RT26xnrx86hIYALB90qg2cV+0nZO31jXI1dpt1cJiC4TFNn9FHeZudLZ16CFh9QvcfPe4k+VIPVFP1JOb6R7lws4AAQBbJw2hmMhlS7yaWJxdxps7xS3lo8QUWTHfwhOL58WbB9iGt18WxWjM
  65. V372eNtQTL0oO7F8UYTFW3hsFcPk761fYObLL9khlQ6z9Nss5+4wy+4eeTFf9ywufFntHmX/KTdn+KHkTQ8pQja9e1xcvrjV7nGNHrLSehJd+vho9UQ9UU/Uk/kloUjf392vfuthI95Nl/Yruln4+cFudST/oD/odbI5AlojjdNkWev
  66. Tz8OPDhqd7KobWBagTj62Bz47alenxs5P33O0T8v3fXFSN7puYvnyFVm+0Em4g35+Mhi94U4ayj1YrafPe3lW+Y0Pm2EnGS3QyYr9Xh5VRvU/bo7dhTGhnfYetkYzt85cfl4vuunHhzuVgl70u/3e2QZe2qzl706bjSUWrH88Sp91k6
  67. tXiuNsrHu86jb+9vm96gK94s3TFYaLveqE+v09sfwgX6jzz9y/C/afyd0R5++2XidxXqknYSeNl9U9eln42cFu76yeFOP15IpjWldRT7pZuGKHUU/UE/VkferJl92jtJn0q9/aa4w9CmNBjTgevw/udO75uR6nUqTLvNZZtvxhPz7O5
  68. tjAYrIHxJ3xOzOLyRo93xsuaJBH3Up/SvPJ39XLi+pdAxMfoMufVF+ehBmrF4e82mHK5e81xqauX9DJYPJwPn1a01lNCJd/PljyR7aTLOz346vvpuLCX8RBntYtcLPdY+b+XbD/XPz83EgG1anrdxtjU9cv+oHqYj0pirKDXP39V1FP
  69. Tq4cgNQT9UQ9WZ96ctTIjAECALbOjEdhLGjdploo3v5b5B1uMnFffZWK6y6wyLXhi1PX34EOs+DF8uJudY+l9JAldo81nL1lkfZRT9QT9eQW64kzQADA1km3fPuftPv3GoPVvf9xVvSyYlrgLYrwut/OCzF0Td1rZE/avdW9fz8vjgZ
  70. Fzeehk0Grl6V2hHqinqgn6okAtGSPWv0PdrvRyk6WPu/mrwf5tB6Z5fHxoJWbW3Jd7abZN+51Vtc9ympVffTBRYM8UbDUE/VEPVFPVsFnBQBg6wiDyxxUNe3N0T10Dx1Gh0H3WCvOAAEAW2fGGaCsOJ25qBowW8nYXFHlT6uTwSchas
  71. abFEP7eXGSjebFmlj/4nQy67HHqzXi06eH1LVPvNBkWucTRQ7fpMhn3KnXiMNOMpqHbaLxyy/aSRhObPlmZqrxlStfWn15+Z8LzgRWtudgen+Y2Z7rplzZave4uH9veHtP5/2rdI88C1HtiNeZ+3fB/jN/e844XurbUz1RT9QT9WSJ9
  72. WRGACr31nBQVfR2dT/cSaozRR/0i+GgvKF7afyktUkF62CQ55VHc+yl4Ukrican7q7OXPm4FQ9nyj6f+r066Kxs3w/byXCnXq8VBoNBrzM4f/mgl0RFs2b5B43woDE21Xr19w6nKj8/eC6uVdkd28nUl1+nPd/2h+Ja7bluyv37tNI9
  73. Lu7fG97eslr1Or3zl/ezUOStaPpsqjP374L95xrtWX+81LeneqKeqCfqyRLriUtgAMDWmT0Iupjy3+ffqV9g/V1xMtZVzHy6RGGxBcKy23NFM4HefN8o7sT2htUvsIXdQz1RT9STja4nzgABAFvHbfBr/RHBlGZc+oFG90A9QT0RgO6
  74. Ul/1eHkYzyR70W0XU1CwMHWeDjzsn591jkId+0SiiRMugnqCeCECbrV/knXx0m0CvyLUJ57KiqHaPLI/1D9QT1JPrMQYIANg6zgCtHdfpqekbhnSgnqCeLIUzQADA1plxBqgZh0fNuBKXwsTE9HtpaMRxdfnN2v7dJK5uYLn+EzNXPm
  75. jEeTGaebM1vsB5+7yZbKAInx/v5JWZNI8HRa+YGqzLJfPxqceP+61BPhqD1s9m7KDT969MDFquy256+obnM4e+HuTDucKHC+ymYbiPhguUrz0ejF5e/uReGuIFZp4t3z+N48r6zNee6+ZC/4+S8ScTzLu9h73m85PG+QK9PDrO6i679
  76. 8Y7QNkf9rt7Nf1n8uWz9u+C/efa7Vlcqz3VE/VEPVFPllhPZgagqJpvLq7oTvLm2R8bqlz5h42pu7zcsPunE42PHm4ysanlSx9W2reXxT87aXUGlRI25/p0Bs3y39WXP8kmp/rerezS8puHg6I6dXrZG6ohtZ9H+/3Ry8s9uZski4TY
  77. 8/5QXKs917BgTXSPsNj2fnXc/PK4VV1+rh7Sz9N+N51n+Rn7d8H+M6+J42Xe9lRP1BP1RD1ZYj1xCQwA2Dqz09+NTXl+u5Y49fsNT1W+4FzgK1rbG5sKfSO6R3WBzeoeK1rhO9Y91BP1RD3ZxHriDBAAsHVmnAHKimg4puk8RrWSsWF
  78. E5U+zSpZLwoaNg+7nxcnZBoTL1r/8QTcbG3PYiKO00gAT7dPLinw82e6mWSvJ51mfaFD5hVkRzxy3uG7tOZjeH2a257opV7baPcJwlGW4/vYOxrtHM8n30mye9Rnrb0URenlaFBtzxF1ST+ZpT/VEPVFP1JMl1pMZB0O5t551Rw1a9q
  79. 0Pd5K08g4H/TeDnobupfGT1iYVrINBnndGG7iXhietJKqMWn/ey6uDth634nvpaNR65237DH+anTb3WAf9+l73g93RVPQzPe/m1UFkx/3285P7m9Se/clBcHO157op9+/TSvcoj58P20laueth3u09GYx1j3eag19/5+jqm380mOhv8
  80. dPjdwbFxkxdP3G8zNue6ol6op6oJ0usJy6BAQBbZ/bp0PqZIu/AVJLF1Ra4yqC/afcuXj2S34FB5bcyCG5121IsdXsL3eMOdQ/1RIdRTza6ezgDBABsHc8Cu+UPiAtm8DD+DmHWAvUfAoLdc7e6RzRn97hG/0E9UU/Ukw2tJ+segAb9
  81. QTYYjRoris1+XttJVuz3RmOy4hA9bsbJAnOBP2jEe43RTJfJ+PuUb/ykFVfPATbGZwrfSU5HtUeVeVTTjXr4QJ7lvZNu9XCfvG1mowwHOWaVQY4Pm2Enia/dPWbu3wX7z8ZRT9QT9UQ92ZgAVJw++OTuPKS27IrdSndMwqLblsblLqy
  82. bOv38rr9Lp4ovf9gKYy/frD9v5R+wsWkYNv/jWi8fmyo+W+yW1Jn7d8H+s3ktrJ6oJ+qJenK+RREAwJYxBugWUnm0flPFu1p/t3tIWP0CqCd6i3qyWfXEGSAAYOvMOAPUjMOjZlyJS2FiYvq9NDTiuLr8Zm3/bhJXN7A5PqSr3JoHjT
  83. gvRtdQW+MLnLfP8Kf9LH4eQraaz2SXOh4Uvcol3nJddtPRGLfyJ68H+XAY33CB3TQ0K2Mky9ceD0YvL39yLw1xuP4gyvL90ziurM987bluLvT/KBkftTfv9h71wnH/5rrHzP27YP+5dnsW12pP9UQ9UU/UkyXWk5kBKKrmm4srupOE8
  84. t/mBsBy5R82pp4GKzfsfvrmxr1LB22VL31Yad9uHN9wAjzJJqf63q3s0vKbh4OxQXBlb6iG1H4e7fdHLy/35G6SLLIJ5/2huFZ7rmHBmugeYbHtfXqzp1xn7t8F+8+8Jo6XedtTPVFP1BP1ZIn1xCUwAGDrzB4EvSWD3ZYy6O9WZnla
  85. cC7w9RxEece6RzTnFPXr0z2idR1EqZ6oJ+qJerJgezoDBABsnbQzaFa/zppjz2vrZfHRIBnFpVDcb2Tl/55/p/xpucz5l80k30uza69NVuRfnrzqF9d/h8et+/fS9tWXPx4kL7uN84Q4sf55EQ77SV6ZPGo3zVpJPq19+nmon2kqCdH
  86. 4Jclye/eLaPSGB738pHKJtDtovh4cj35dXnx2fNxKRu3fze71i9H2tsLY7iuK0M0avWyUuLPG2AJZEXcGo5k9G3ExMTduNzs4OrumO1zFQdErwsloc8p3yOKai/y7afPd1r3z5i1O33DsFzTiKF2nYYtn29s/3960O/jkqHP1l8/c3k
  87. HtB5+8yF9297tZVoyGwb6ZuXWokxXVa/B5XvbPXrkTR++fp+v8qabcsF5lat0wHLVa2f/9vKg2UXmsLDJE4LSedPYHeXbWYsX16sneWT254kqU639yNpNeuGz9Z/b/ifYpd239RMRLryd5tFNEjRUfX+rJNevJxb9H3Sze5npy8Xj/6
  88. uRwUGRXPMP01fGr9Kvjh9Vvvds8etjonX/5spf++NXe+ZftJP+dx4ftygHz6ev2lyejCPXBTu/X3zm69gacZL3/44u/2e8fX/sd/uWH3/3th79y9eU/O2qV/86/fP/t+oe3geYn+3udwWiY1XceHn+w2z1f4NXb9ikqNa5GOwntZBQ4
  89. jgaD//2zvz/onxRvZ+WfOTX/zw/Hvvxw5/cfNt8/W5+zsfQ7vY92jyodIrw4uX9SWf93GscPm6O53juDxlfHo/Uvs93Xdg4blQL6ovezj48+PzuWLl+z+mrzaw8++G8++q3hcuHt1OzVQXCPW/G99Pp3ASzd2fZ+cr69H0fR376c4+U
  90. zt/dkULeHe3n/By9+ctAb9YeLzVvfQ7597zeK4qO3v3/tlAX3WXdUnsq/3R+2k7RyF8lBf3IQ5ZNWcu3uUdaTf3dWT4rrPvXiv/3gu//04Teu3p4HgzzvjD5BTaz/zP4/0T7ZaRysW++l15Pfevc7X9/74LyerOb4Uk+uWU8u/j2q37
  91. 13vp5cKC/9/+uLH1X7f73Dp/sugQEAW2f2IOhiyn+ff6d+gXkVUbHQEwqLhRYvpi9TTG+Ba2z4+RC24faOPrHNucarv1v4zbOTpl5BKOpfXERLarEbM7m9xVyNVczbfy7p/2efyt6sQDFfB1//u8dveIxkUYwdX9frDMutQFcfRFzce
  92. D2JVv50WPVkmfUk2vp6cml+uOLxXi6TruU2bJGi8m8TG6fYgh2kebfn+FJP1BP1ZEv6f3HzzwIrhs9jXt7nrbnePy+i29recOWAf71PVJf+uvL9Z95J+/YDyig+16zwNZy/2/CafTH6CHhLh0dtmxcr3t5i1v5abv8/+zBU1H9q3Ogb
  93. jGccX+rJNT5Aj91FEY33z9m9YqK/5cWbcdzqyeLbOzyca7b3zteTpff/mw5A//HFP/x/2WdTd3ac5/f7e3Fy7ff//vEv/v5g6vuH0NpLfz8OOze2vd9/8XHvzfYWl21vkd/r747PZTmX/eOf7r/++LxDfH5c/GR/NAazlTR/993fbCe
  94. t8HYU206aV7vO0eDpPx59fN51yh99cTx2l1+n1dl9cv3V+2qw/799/NdR5a6NXj52cv6/fPKtvfuPo5saZPfJ0bP/8OJnNYfKcetkpds7yJO8cpPFxP5avD/88PiTnx58eb4CWXF6X9L5u+0mzUcffWev0TobJnr6Pw8bbwaNns9tPz
  95. H1/nutuKicO2+s2aMG/tOLf/j/s8+nH195dn+h9vzb41/++ODzaQV3WE9CGN4mFu5APfm089nnX351/mUSQuXJDVE7af6z937t3WbzfHsn+sPzzsu//OoXb/9Snt3ll4wtoJ4ssr15FI5O7wKbuvydryfff/7xi87LZfX/fJDcdADa7
  96. x296k0dBx+SaHcvSdPr992D4+P+ydTb0NJ455t7WfMGS/hB72S/tz/tw+hwe5MFtvfk+Kg/eD32G/uj/95LW+2096CRnAegid+UFd2TwfPzgnV6xI5PQdBuxY0F2quX9Q9OuhMnrKq6We8mu99J1vv85GV1eyesensv6SH9ZfaHw+OT
  97. /snxtBXop62syMePiPIzUN3U++d3ca/nowb2e8f7Z/VkRcfXVepJ407Vk06/ezIe8sbqSRLy1vDhTZfVk17ef9U9qB5fE3/f1BP1ZJF6Uvb/L0+W1v+TZrj5S2B10Sws6VeslUXOFi64+cUatN7a7o5ile9/veXvZP/f9OOrWLOmVk/
  98. Uk62tJ8Wy+/+NB6Ci7iavt+cyw0INVPf+xW1t76WJdfHtveSdi7HfHoo314/D1P70ZvWKy/r72zPZC6zciq+RX697TOuFq97e+iZYef+f3t4bOhJo1cfXzHpS3GwXvvV6Er0d0KOeqCc3X08qtzcup/+bBwgA2DozzgDda2Tfuj+6JJ
  99. yGIo3HkteTdq9deXZEJ9v/D199ev5lVoQvT1qDyrjbrLHfbk9NXSFEIV7o40ujHeJk+vsX2cv+T+OiOW2BdrJTFA+HqxJOr2gWX9vrDNd/uNnPu198evzqbbQ/fZLGs06zZn1OspfVrJo0QmMn3Nj2xlH+g/1PGmHqRdH9/Lh1P67J8
  100. sliA6bK7W0/qAvZn3SfvX7WOf9AMNGejTj9h9ffaCfDZ5WcLvJeK7vfyM+Xf9Y9/NnhF9GV7/d51n1dHTIZ4qi5G4f45ra33ymy3go/pi7YHx6373373nvn/b/s+RPH72H/8042GnNzYX/F7+68k5x9rLp0UHAzDo+aoyGK4WyYbXW5
  101. 3TSklTGMh72jvzp8dv5RuqwnT09a/cr6DBr7rTf1pLiVevKq/9NQjAYFvx50G8moHn64c+/x2UTtw/Ys1+VBI84rPfDz4+cHvdfn9aSfR0dZ5cEURTjut6qj5tUT9WRz60lelAdIXh3E/fTkbf+/rJ6EULwedKo35Rz0Dpfb/2cEoL0
  102. 0272X1Zy5erfdfzcaDbv68f7L//T8lxfOSo3svBO39lZ42ilth/LftJ/mWf7q2c/zwdSXv9P8IIpGzwZJQvHR7tgYtP/ni6d/vz82lXv9GcqJAyluRMMCcTPbW2TFD59/WrO9Ze9pP4ov27HLcbq9jbrt/fTVi18cP5/WYdJ4Zzf9Wj
  103. NOzwtWOymGBWvoRffwL9/ehXHFiR+K8T+Qzb0Qp+HGtrfsgSstWAv2h1978MGvnhWstzd9hM+PW9Wp9784efWq98tqx662eztpZcXvlP8/tb/F0cPxezQm1nUnCdWHW311cvzXZ/XkfP9eVk9W+GDsK9STf6hpz7j44Lffeb9aPO+nb
  104. y4fDbfjb56/UE/Uky2pJ+WKHg6K6qNLfnrw7NOjL6fVk7MKsNr+7xIYALB1Zg+CDvP9tG7esLcJ7jbHUxYzTm8W9Rt4PhFTXmzA3TZnE5HVrWq+FmtYN8iuGP9IUEx5eVEUJk1evD/MnHo/fztP5uWDEK98N8zVx0jW79+NqycTG6ie
  105. qCdbXU/OG/yW7jZzBggA2Drp0eBp9euvOp3B9Gt6SRy/176fVEZ5veweHQ9Gc0/tD47TVt0HsjhZ54n1o3JbPj1+efb57PIZKjtR72xe5Si+VmANcRh0614Zp8tsonIbkmaomVh7Yn3K5ePGHHOons6U31/os1L5u2o6TByKTvainx9
  106. Hb6/ZP+1keZGdf4B+OXg93B3X+wRRduSsX+RZ3QLJUue5i9NQs70X12fB/lA2VTaozGSfzxhiMtH/+3k46Hd62WjMSp50hut/+TwccbHfO+gMuufnOAZZ2EniaMpZmrKSPGnfSypb+Kp3fDR8+dkveNU/qt+/t1tPZh5f3dBXT9QT9W
  107. TY//MoetHLq2OA+qFXU09uoP+H/+nf/88THajG/Ub7j7/5++X/nn/n//z8hz/e/+L8y8ZuaL+zvmeVyq5w9CzLB3XnpeuP13Lrym289gr0j4vjl1nNAjvvxM29m2vAifUpS9vek+Tqg/hmtudM9dtbvv/x6ftP7Z+VQZcr6Q/lvt59l
  108. Nxi/1ywP8zsbzP7/8VBx429cO39NWEvbf333/y9B2c3cgx/7//9xd9XBwUvuH9vXf+k6LzM1RP1RD25Rj1Zdf8/+HzfJTAAYOukNfN+XnTx7GQxPlXl2dPHN1gRzbgPddGZPZl/j4x10Tl6K0vo/xdGic7o//X765KjaXKHFudT696F
  109. /Ttz5mL1RD1RT24xAF2yxvXbc7VvbvY+Y0P2jp215v3/2vWkuCv7VxdVT7Tw2krn356xG931GGCB+nhaT0JlqjSAGwpAe+/NMyaryP7dFz+I89HIoVe94zvVHO1QP7NkstgtFeX71zf44KQ4+mrqqK6QRO2H8U3e+dJ9nZerNHV94tP
  110. 1CQsMJJuxvbPeP15sDFv58t1345prFHkvqlm9UvN+aLRvbSBdnkedV3mRTd2AuBnNd4DPUt//Z7bn5PJ5/udPfxjy0fT1+73jfHNmYFm8/dUT9WRz60mRRZ39PJ++/Jr/PT16kaXpPA8rKTf1WeewelvdHZsvqjw20ma4xffvHxeD6V
  111. Obn96AerPtnQ+i+vVpp9EiU7/P3N4F33/W/phxV2p/ULd6pUZ2qwM4irPbXGvuOknDSvvzvO154fNU8ezgsHpXzobVk9tuf/VEPbnF/nyaBMIG/z3NesU1LoE5TQ0sq+SqJ8DtmD8AFZFZwoHlpB/1BLgl5gECALbOfGeAQhy17sW1n
  112. 9hC56Bu5tNGOyTTL9oVeXQ6CHKBR+pNvH/WL/rjY+6au6HmumXcuOU5Ocr1j5O6VNo7HrtoUN+eF/U7RVa5Jpr3i4n2777OQ1xpwPELqEkjnE3b+3Znh6i68OxP/Bf27+lV+QdTt3fe91+6cntrVi86uwpe7fBJI2rsLPNDRbm/8mzq
  113. 8VCc3UNV0/9vvT9fqZ7kdWeA1BP1RD1Zk3py8Xjc6P7fO47nDEAhat6r2+DycKqf+r1cm7qCVUS9o2KRqdAn3j/vR93DvHp4zDU1+y0E0nYo/9UcHhNTm9e350WDTtE7yuvbv2ZURtyI6kf1zyhYF/bvDU/VP3d3Kre3Ubd6J6/yans
  114. 2dsuCvswVKPdX+W+u/rPO7XlJPdmrqyczp7pXT9QT9eTG6smCjzpZt/7feh27BAYAbB0BCAAQgAAA7rp0uW8XJ1Haqn1WYhENulOvQRb56TCxeIGpayfeP+tv1x22RRZltSMeQpixg+qFONTsvtMOkEY3ObHsxskHRT59TMvS+//FvR
  115. 83Qtic/RPUE/VEPVmbenL3+v+SA1B5MKStuvY+eZV39rOa/HQ2qOr656Xq3//OKztr/aDRnXfi9sPrHxD94+Lo2Yz3PxvWyuW6r+sGja66/w/fP6Qbs4PUE/VEPVnbenIHuAQGAGwdAQgAEIAAAAQgAIA7Jvzbj/+XJb5dv1P0Dutmg
  116. k536qZaD2eThUcLDHrLB1Ge190V0j+qmxo/aYf2/fUNhZfM3JpGcWVy97g5Y+r0JAlhkZsC8hl3hQxOionZ7sf2bxw19uIQL219bn+PjPe3vBf1T/T/pRl0iq56op6oJ/r/Chx8vr/ku8DKthj06jp0YzekzRWO6j89gKO6qd87g6hm
  117. avyQbuABU32UT7ra5i1rTf3794+Lmg5w+qSecgeld+e2jon+1h8U+r96op6oJ+rJRvR/l8AAgK0jAAEAAhAAwF236DW6/kkxMT12+0HtoLnmbV6vDXHUuhcXed1V1c5BXl2+uRtCfGvrXLZt2cLV75TrE02/KBs3bvlyeKMd4iSurP+
  118. MQXx321n/GR+kqf/X15PO5KBX9UQ9UU/Uk1X0/+7rfNEANOgUveO8cjjF7Ufre1YphOhsYvWpO6B/PDb1e5yUR2ASbm+D8n5UvQvm7dTm6zvoL22H8l+1Pfsn2/vxYtjf1md/rX//P60nlan9G7th91Ginqgn6ol6svT+XwYgl8AAgK
  119. 0jAAEAAhAAwF236BigOA1pK1S/3OjmCElU3ZwQn17mtD5bu/721w2v/0Q9SdQT/VM9sb9Wsz5pMyz5URgAAGvu4PN9l8AAgK0jAAEAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAAQAIQAAAAhAAgAAEACAAA
  120. QACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAhAAAACEACAAAQAIAABAAIQAIAABAAgAAEACEAAABvoPwswAMH/hoGcYu5QAAAAAElFTkSuQmCC"]]
  121. local b64_bird1 = [["iVBORw0KGgoAAAANSUhEUgAAAFoAAABACAYAAACa5WD/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGzmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGl
  122. kPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyIC
  123. AgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZ
  124. S5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RF
  125. dnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5
  126. jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDktMjFUMTY6MDU6MDUrMDI6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMD
  127. E5LTA5LTIxVDE2OjIwOjEwKzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA5LTIxVDE2OjIwOjEwKzAyOjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjgzYmUwYzU4LWZjMmEtNmE0Mi1hM2JlLWVlZDVlNmI5NjVmY
  128. yIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjI3NDIyNDY1LWNiYjEtNWM0MC1iNmRiLTM5YjlkMjU1OWUyOSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkQ1RTc4NEY5ODkxNzExRTNC
  129. QzgxQzA4NUVCOTc2QzQzIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOml
  130. uc3RhbmNlSUQ9InhtcC5paWQ6RDVFNzg0RjY4OTE3MTFFM0JDODFDMDg1RUI5NzZDNDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDVFNzg0Rjc4OTE3MTFFM0JDODFDMDg1RUI5NzZDNDMiLz4gPHhtcE1NOkhpc3Rvcnk+ID
  131. xyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ZDBjOWE3NWUtNmQ1Mi1lNjQ1LTlkNjgtZmFhNjU0MTJkM2Q2IiBzdEV2dDp3aGVuPSIyMDE5LTA5LTIxVDE2OjIwO
  132. jEwKzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlE
  133. PSJ4bXAuaWlkOjgzYmUwYzU4LWZjMmEtNmE0Mi1hM2JlLWVlZDVlNmI5NjVmYyIgc3RFdnQ6d2hlbj0iMjAxOS0wOS0yMVQxNjoyMDoxMCswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTk
  134. gKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pns4xHIAAAH7SU
  135. RBVHic7ZoxSgNBFIazIgFvYCMW6awsDaQ2pDZ4hiwWVga1CTYq6VJIPINY2YitBCzNBSJIGm8gpIkHmPdghtl8i/B/5Utmd/Mx8L83m2K9XjfqpN/u1vkAhVV8/nir/EZblV9RmEg0hERDSDREsYkwTAm48dNZ1r2Gpw9B7XE2jVo76
  136. JTeR0FI5gakdjSERENINIREQ0g0RHbXYXUYKZ3E72IY9b3R1b5Zj+0wUnC6kaxORDsaQqIhJBpCoiG2Y7/ojdVW8MUGXBUsZsug1ursRa31RnArYAedMvj9/XY3+jxbOxpCoiEkGkKiIcwwtILv5u7bvAAZfP8Z7WgIiYaQaAiJhpBo
  137. iOgRvG68rmd0eRvULu6vg5o1lm/iLNtDOxpCoiEkGkKiIcyXs+R/lr2Qy8F7kQsSnFNrR0NINIREQ0g0RHFydBx19rzTGmfdyDu3toIrJSCt9dPdVfyDbYDypxnUtKMhJBpCoiEkGkKiIczz6NwOw8Ibiye9eVh8D0vnr4fmeqvDsFK
  138. fZLq70gheFxINIdEQEg2R/XLWGq2t4DNDLwFvfWmEJDWCp4SudjSERENINIREQ2AvZ3PDMAVviqwaawJsNHQeXSsSDSHREBINIdEQZtfxtXzJuqgzlmN/M5v05kE30Pw8oG6vrqNOJBpCoiEkGuIPZW6FF2MT/AwAAAAASUVORK5CYI
  139. I="]]
  140. local b64_bird2 = [["iVBORw0KGgoAAAANSUhEUgAAAFoAAABACAYAAACa5WD/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGzmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGl
  141. kPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyIC
  142. AgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZ
  143. S5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RF
  144. dnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5
  145. jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDktMjFUMTY6MDU6MDUrMDI6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMD
  146. E5LTA5LTIxVDE2OjIxOjQzKzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA5LTIxVDE2OjIxOjQzKzAyOjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjBiOWE3MjgzLWRlNmYtZWY0YS1iZjRjLWQ1N2E2MWM5ZGNiY
  147. yIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjY2NGVhNDViLWI1YmEtYWQ0MC04NGQ3LWZkYjM0OGRkMDc1NSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkQ1RTc4NEY5ODkxNzExRTNC
  148. QzgxQzA4NUVCOTc2QzQzIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOml
  149. uc3RhbmNlSUQ9InhtcC5paWQ6RDVFNzg0RjY4OTE3MTFFM0JDODFDMDg1RUI5NzZDNDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDVFNzg0Rjc4OTE3MTFFM0JDODFDMDg1RUI5NzZDNDMiLz4gPHhtcE1NOkhpc3Rvcnk+ID
  150. xyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OWFjNmExMmQtOWRkMC1kYzRhLTg1MGEtODEyNDQ4Y2M3MmFiIiBzdEV2dDp3aGVuPSIyMDE5LTA5LTIxVDE2OjIxO
  151. jQzKzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlE
  152. PSJ4bXAuaWlkOjBiOWE3MjgzLWRlNmYtZWY0YS1iZjRjLWQ1N2E2MWM5ZGNiYyIgc3RFdnQ6d2hlbj0iMjAxOS0wOS0yMVQxNjoyMTo0MyswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTk
  153. gKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp/HYgsAAAIGSU
  154. RBVHic7ZwxSgNBFIZnRQLeII2kSGdlmUDqBOsEz5DFwspAbEKqSDoLWc8g9mIfsNQLpAg2uYGQJh5g3sAMs36L8H/luNlJPgb/916WFMfj0TXJpD9q8g0U1uLrx3vtG53UfkdhItEQEg0h0RDFX4RhSsCtX26y9ppdP3lrz5sq6rXTQ
  155. Rn6kxeSuQGpEw0h0RASDSHREBINkV11WBVGSiXxs51FXbeYd8z12AojhUA1klWJ6ERDSDSERENINMRp7IWhttoKvtiAq4Pt5ttb6w7Oo14basGtgJ0OSu/zT/qj6Hm2TjSERENINIREQ5hhaAXfcrUzb0AG339GJxpCoiEkGkKiISQa
  156. wpxHN/yYVrDCsbDm1HcP995abFseInZG7Zxa8EaRaAiJhpBoiGLcG2Z9uZqL9UhXShhahL7IBfFCUicaQqIhJBpCoiHMebQ1Yz7rrrM2Cs+t84LLCr6qfci6Zy7lvuUVGDrREBINIdEQEg0h0RDFuDe01rF59OPVV9R1t2+X5rpVYZT
  157. 7VsY7yqdqH9SCN4VEQ0g0hERDmC34crXz/pkv5h0zIGPDLJfQPqURklQLnhK6OtEQEg0h0RASDRF6UinlHlFdJBWazoW7yLqxOkDn7JDUiYaQaAiJhpBoCImGiP69jlAlkjBPJmfcXjXQ+rygtlfV0SQSDSHREBIN8QufpoVUBslzbQ
  158. AAAABJRU5ErkJggg=="]]
  159. local b64_bird3 = [["iVBORw0KGgoAAAANSUhEUgAAAFoAAABACAYAAACa5WD/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGzmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGl
  160. kPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyIC
  161. AgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZ
  162. S5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RF
  163. dnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5
  164. jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDktMjFUMTY6MDU6MDUrMDI6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMD
  165. E5LTA5LTIxVDE2OjIxOjA3KzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA5LTIxVDE2OjIxOjA3KzAyOjAwIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjUyOTc1OWNkLTM4YmUtMjY0OC1hODc0LTBkMjZmYzA5ZTUyM
  166. iIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjA3YTFkZjNlLTRiYWMtOGY0OS05OTAyLTE3ZjZiOTZiNzQzZSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkQ1RTc4NEY5ODkxNzExRTNC
  167. QzgxQzA4NUVCOTc2QzQzIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOml
  168. uc3RhbmNlSUQ9InhtcC5paWQ6RDVFNzg0RjY4OTE3MTFFM0JDODFDMDg1RUI5NzZDNDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RDVFNzg0Rjc4OTE3MTFFM0JDODFDMDg1RUI5NzZDNDMiLz4gPHhtcE1NOkhpc3Rvcnk+ID
  169. xyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6OWIyMDNlNDMtY2JjNy03MzQ2LTgyZTAtNDhhNjM1NjI3NWY3IiBzdEV2dDp3aGVuPSIyMDE5LTA5LTIxVDE2OjIxO
  170. jA3KzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlE
  171. PSJ4bXAuaWlkOjUyOTc1OWNkLTM4YmUtMjY0OC1hODc0LTBkMjZmYzA5ZTUyMiIgc3RFdnQ6d2hlbj0iMjAxOS0wOS0yMVQxNjoyMTowNyswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTk
  172. gKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pl0KsJwAAAIISU
  173. RBVHic7ZyxagJBFEXHIEL+IE2wsEtlGcE6Yh3JN0RSWEViGrGJwc4imG8I6SVtCKSMP5DCLn8QsDG98x6MjHuWwD3luLuzHB7eN7Orle12G8qk1+qUeQMVa/D18+3gEx0d/IrCRKIhJBpCoiEqRYThPgE3e7nJmmt49RSNPX8sks69b
  174. ve9j6KQzA1IVTSERENINIREQ0g0RHbXYXUY+3QSv9/DpOPGo7o5ntph7IPTjWR1IqpoCImGkGgIiYYww7CIPeLJdJ11vheGt4/30VijfZp0TW8JbgVsakCGYIekKhpCoiEkGkKiIaq5K7tUrH3jEPJD8r+gioaQaAiJhpBoCImGqFIT
  175. eZ2M1Y1YnYjXnYzvHqKx1GV5EXvZHqpoCImGkGgIiYYww9B6YHrcmGVN5D+EtfeZU7FC0grIgjD37XutTrRPrYqGkGgIiYaQaIjK5fmFNR59yRf1cLWI6y5ONlnXzKX/U4vGVNEQEg0h0RASDSHREOYSfDJdR0vI8aie9ZrYvLuyP3h
  176. PO3+wbJrjVodhpT7J4mSjJXhZSDSERENINIT3frR1rBmGbshBWCFJLcG90FUYlohEQ0g0hERDJP9y1gnIEJyQ3IUMTW8VeWis0AtB+9GlItEQEg0h0RASDZH9fvS8uzKTd5fBson9NaZ1T7WvM2p6E1U0hERDSDSEREP8AXwJhj3TQT
  177. MFAAAAAElFTkSuQmCC"]]
  178. local b64_scoreboard = [["iVBORw0KGgoAAAANSUhEUgAAAKwAAADkCAYAAAAFOs/ZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eH
  179. BhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgM
  180. jAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6
  181. eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXN
  182. vdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDozREU4MjY1RThDNEIxMUUzOEVFQUEwMjc3MzYxQjhGNSIgeG1wTU06RG9jdW
  183. 1lbnRJRD0ieG1wLmRpZDozREU4MjY1RjhDNEIxMUUzOEVFQUEwMjc3MzYxQjhGNSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjNERTgyNjVDOEM0QjExRTM4RUVBQTAyNzczNjFCOEY1IiBzd
  184. FJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjNERTgyNjVEOEM0QjExRTM4RUVBQTAyNzczNjFCOEY1Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+tJ0MTQAABBtJ
  185. REFUeNrs3b9qU2EYwOGTmqpIQOmgkwFXryBLcQxdMmVy6uAVVOhFFOwVOGRy6tSldJQuvQJXoZsOASGIFqq2dEnehPPlM6f51+cBh5PkHOLhx8fL56mtFUVRK0aljjeGD7qt9mUBUzo6P30YXvoTjv+WHW+4hawSwSJYuCv1CTPqg5w
  186. Z9ePxW3eR6XWKy8wZ98oKi5EABAvBzfy6WTazpmbUfn/gLjK1ra1G6fvvOp9KZ1orLEYCECwUt/uwm2ZU5uU/etq0wmIkAMFCUOu22iPPG8Z9VzMs8xT3aeO+rBUWIwEIForbfVgzK0sj1Z8VFiMBCBYEi2BBsCBYBAuCBcEiWBAsCB
  187. bBgmAhqK/aF272zrI+f7G7PdP1Fn3+oq9nhQXBIlgww84+sw72dvIuEH5GKPt6M57fPDzJmhnnfb1ixX6GzwqLYEGwsAozbJzBGmGGi3L3FWf9fxhS5zcWfL3U/erbhwXBgmAxw1ZubKareJ9y2aSeBRjbV03MvPZhQbAgWMywyzfT5
  188. c548f1m5r5u7vlVz5xxXzW1j2ofFgQLgmUNjf2eroNeZ6m+YPy9TSm5zwakrp+6XtXnz/r5u75f87a/e2yFxUgAgoVo9Z4lWLLrz/v81OfX/fesWWERLAgWBItgQbAgWAQLggXBIlgQLAgWwYJgQbAIFgQLgkWwIFgQLIIFwYJgESwI
  189. FgSLYEGwIFgEC4IFwSJYECwIFsGCYEGwCBYEC4JFsCBYECyCBcGCYBEsCBYEi2BBsCBYBAuCBcEiWFg69fv2F272zrI+f7G7vVLXq/r7WGFBsAgWzLDLZ7C3Uz5THp5kzXyp6xX9QenMmTw/cb14fiN8/7Hrh/OtsCBYBAtm2OUXZ7z
  190. kTJqY+VLX64cZODVzRqkZuh++XyPxvhUWBAuCxQy7elL7nnGm7Fe8Dzs2U1a8L2yFBcGCYDHDrp9F78PmPr+66s8CWGERLAgWzLD5cp83Tf3be9XPr876fdZ95rXCIlgQLNzHGbbq50Fnvd5dP5/aX7N9WissggXBgmARLAgWBItgQb
  191. AgWAQLggXBIlgQLAgWwYJgQbAIFgQLgkWwIFgQLIIFwYJgESwIFgSLYEGwIFgEC4IFwSJYECwIFsGCYEGwCBYEC4JFsCBYECyCBcGCYBEsCBYEi2BBsCBYBAuCBcEiWBAszKgeX/j2/cfI8YvnT90l5ib2Z4XFSACChQlq139eDr/Qb
  192. bUvho8Peh13ibnZ3z0eOT46P21aYTESgGAhuNmHvSr7QGpfzD4tOVI9TXBlhcVIAIKF4GYf9nl47cnwQbfV/lp2gfcHb9xFpvZh/3Pp+0fnp6/CSz+tsBgJQLAwYYZ9VjbDXnscjh+FGfeL28i0rmfU1+Gl3+H4lxkWIwEIFhL+CTAA
  193. KkE/3rhUwTsAAAAASUVORK5CYII="]]
  194. local b64_ground = [["iVBORw0KGgoAAAANSUhEUgAAAfQAAAAwCAMAAADQBniuAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAEjUExURd7YlXO/LlKEIU94HsWgQt/cnN3SjE07RlY1RuOtUdfnhu3/jn/FN3K9LlJ6I
  195. ZbkVXXDL1J7IaPoXu7/j+//kO//j9rpiJ3nWnTAL2q6JtrpidvqiXK/LXC9K9/cm5zmWaDpXVaJJprjV5XiUZbgVN3XlN3XldzWk2a2InvCM2/ALXXBMITKPafsYtrqie7/jpnnWKXqYNnpiJroWX3IOOb3jKDlWtjnhlY2Rn7FN6br
  196. YWy8KZLgUXPCMKDqXpvlWJnjVpfhVGy4Jmy7KGq6J3TCLuv8jZrkV57oW3bEMHK8LWu2Jn3LON7WklGEIVF6IJ7qWqPvX1KFIpfgVZ3mWlKBJFaIJaDsXJ7pW3PBLd7VkHTDLnK/LnC7K3K9LVWIJVKCJK1/U88AAAECSURBVHja7dx
  197. VVsNgFADhG4K0tCFJ3R13d4q7t1Ac9r8Kfnjg5LADuPO9zSZG+qCOrISCKA0lqdRy/5e5qVwun6c0lCxG4olkMhGfjhiHlIaS1ejSWiw2OTsxGjUoDSWb6xvzrjvjjo1ks/t7lIaS7Z1meiu9MJ4pWFaxSGkoqVTK5eOjzK5lvBQoDS
  198. UPnZvr8xPvwPMen+t1SkNJrdZuOWenjuO8vjUalIaSu2r1/vay69v7B6WhxDau/AHD922b0lDSDXUkDHVELnp/PFEqSnoCSiVKQwkAAAD+gyFKSQEAAAD4g4YpJRUwSCkpAAAAAAAAAAAAAADwWwjqCCNsfT4B4gpeiH8hxtQAAAAAS
  199. UVORK5CYII="]]
  200. local b64_pipe = [["iVBORw0KGgoAAAANSUhEUgAAAIAAAAEgCAYAAAB8VXuRAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7GlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlk
  201. PSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICA
  202. gICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2
  203. JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb
  204. 3VyY2VFdmVudCMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5j
  205. b20vcGhvdG9zaG9wLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExODE0NUY0MkQ5OEE1OTg3NiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo3Mzg1MThFNjg5NDgxMUUzOTk
  206. zRkJDMEM4MDJDNEY2OCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0ZjM0NjNhYy04ZmIwLWU5NGUtYjgyMy02YjdjMTYxOTU0MWMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG
  207. 1wOkNyZWF0ZURhdGU9IjIwMTktMDktMjFUMTY6MDY6MDMrMDI6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA5LTIxVDE2OjE5OjA5KzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA5LTIxVDE2OjE5OjA5KzAyOjAwIiBkY
  208. zpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6
  209. MDQ4MDExNzQwNzIwNjgxMTgxNDVGNDJEOThBNTk4NzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTgxNDVGNDJEOThBNTk4NzYiLz4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN
  210. 0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NGYzNDYzYWMtOGZiMC1lOTRlLWI4MjMtNmI3YzE2MTk1NDFjIiBzdEV2dDp3aGVuPSIyMDE5LTA5LTIxVDE2OjE5OjA5KzAyOjAwIiBzdEV2dDpzb2
  211. Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhpc3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4b
  212. XBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+etF3rQAABB9JREFUeJzt3L9rE2Ecx/HPk8vg4CLi7CgUN0fBWcHZ/9PBvaN/QEGwLkJnfyBqEnL3dbg2TZumNCKt5P1+wS3hucvlyfseQi6kvXn+8kuqPUgqw1DpZ5VXbx+mu9eSSlqX
  213. 9DXk9aNnmabLui6THH47yvfl7yRJpbKLybTl0/HHzBfzcf+qVFUODp4mQ0uStNbSWsuH46NUX6tx+6qG5PPhj7TJxcdb1/L4xf3UkGScmix/DTl5/3Nj7JWWk9S7J8l0OD9ma1+nqbPDnetnpxO8CqAy7/v0l0Z2rbKcVfrl6RuzYwA
  214. 1TYZFSy3GA1eNWz+rZDg7yXGrRUv1WY3bVzUk6SfZnMpxntYDqEXbMvYK/WYlVXWjdrTHDADOAOAMAM4A4AwAzgDgDADOAOAMAM4A4AwAzgDgDADOAOAMAG6SjD+4EJMrAJwBwBkAnAHAGQCcAcAZAJwBwBkAnAHAGQCcAcAZAJwBwB
  215. kAnAHAGQCcAcBN7/oE0pLNfym6Zuy+u+41tlycr38wH64AcNtXgJtWtssVvIv15ydc+XfEFQDOAOAMAM4A4AwAzgDgDADOAOD8IgjOFQDOAOC8G/i/8W6gbtPWFeAmn8Hq0ti/sW1fPwPeDlcAOAOA83sAOFcAOAOAMwA4A4AzADgDg
  216. DMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4Az
  217. ADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA
  218. 4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOA
  219. OAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDg
  220. DMAOAOAMwA4A4AzADgDgDMAOAOAMwA4A4AzADgDgDMAOAOAMwC4PznyeNSc74iDAAAAAElFTkSuQmCC"]]
  221. local b64_pipetop = [["iVBORw0KGgoAAAANSUhEUgAAAIoAAABACAYAAADF9O+2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAGzmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iI
  222. GlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIy
  223. ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmF
  224. kb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUm
  225. Vzb3VyY2VFdmVudCMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZ
  226. S5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowMTgwMTE3NDA3MjA2ODExODE0NUY0MkQ5OEE1OTg3NiIgeG1wTU06RG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOmRh
  227. YmQwZTg1LWRjNzEtZDY0YS1iZjA1LTczY2M3ZjMzMjkxYyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxYzA1ZTIyOC04NmUyLTM3NGItOTI0NS0zZDRjNzgyNzEzMjMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9
  228. wIENTNiAoTWFjaW50b3NoKSIgeG1wOkNyZWF0ZURhdGU9IjIwMTktMDktMjFUMTY6MDY6MDMrMDI6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTA5LTIxVDE2OjE2OjQ5KzAyOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDE5LTA5LT
  229. IxVDE2OjE2OjQ5KzAyOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmO
  230. mluc3RhbmNlSUQ9InhtcC5paWQ6MDQ4MDExNzQwNzIwNjgxMTgxNDVGNDJEOThBNTk4NzYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTgxNDVGNDJEOThBNTk4NzYiLz4gPHhtcE1NOkhpc3Rvcnk+
  231. IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6MjA5MjZkNDItYWMzOS1jODQ5LWI5MjgtZjdhOTFjYjAwMmY5IiBzdEV2dDp3aGVuPSIyMDE5LTA5LTIxVDE2OjE
  232. 2OjQ5KzAyOjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZU
  233. lEPSJ4bXAuaWlkOjFjMDVlMjI4LTg2ZTItMzc0Yi05MjQ1LTNkNGM3ODI3MTMyMyIgc3RFdnQ6d2hlbj0iMjAxOS0wOS0yMVQxNjoxNjo0OSswMjowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwM
  234. TkgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqU/ApgAAARn
  235. SURBVHic7Z1LbxxFFIXPre7x5IEUFpFAAjaRggUsIjYoEgt2IPZI/Br+F7BgQbZIJIsgJVnx2FhiAZIje8x0HRZd3dPVXe1cY8eMPeeT7H7d7q6+debWnZqZKvvq4ReEEK8g/N8FEFcDCUW4kFCEi7q413wnO82uLaXkbs4nW5kInqF
  236. QtYU2qJAESMCI9745QFimqxgQY8T+/Q8Rkq2ZoWHE5289QG1VMtst2RDEdwdP+qdm8vrNag+f3f2o3zYYCOLbg58RUgDnJcsmxohnL37p648kYkP8/uNLpOrbsA7gD/eAmNdnHlEIWCcQ5vv7v8E+cktfKZcA+3/TA2O/zNpeFuP669
  237. cttwGAowWw1wBHdXZYOYpwMc1RbLA0ZKqyJCszwJICQ7BkvmtNT/vfQv7cnY+GfuHo2GXTl7C7PwHEtDKuNiuHvnIyOzh787gGs7Rl1re9nLnwhCuf+eUwxW/acLtdkpyxZWZ7zgLMYjZq+owzTY+fqVAI3L+3j/p2EkVAm7i+/QC1t
  238. eYGQ2UB3x88wZpNOi2eUvAKz188RYytDdk6c//9D2C2SZDbZcCz5097Z4+dvk2Y2cTfBPCYj0vGF3pvNsSvjw43USoVpL4V8O4nt8GuOgyIDfHbo0NYZZmt1XALZiKUqhqnwZtrD18JBEct07wjDCkKjZyV4lS/PrS9qsyV/3XIvfXp
  239. dF/ZGOfqz1AyK1wUc5Thq99s9xLVneEMYU4RRbiQUIQLCUW4kFCECwlFuJBQhAsJRbio+468Hf7KgHg14Zw9u2JHUNMjXEgowoWEIlxIKMKFhCJcSCjChYQiXEgowoWEIlxIKMKFhCLKGLMfg0kowoWEIlxIKMKFhCJcSCjChYQiXEg
  240. owoWEIlxIKMLFzIhLZSwffwlAPtLQPJsBdLplvz46r7/uFRhIB/D/cuGin6JzS+8f5geGfpvanP1+iijChYQiXEgowoWEIlxIKMKFhCJcSCjChYQiXEgowsWkZ3Z90mB90gCLfIjz49UJGmt7WLshztcnzWCI8/nuPjNDXLdzxACpZx
  241. Zs7zMYXx8AgrG1jVe3Z7Y0jMiF98zOjShPZP4DkK3/V+zrT79kdzGSwCKCH/8B3Fkli/YmkaOR9glUFvpJA06FAGzsQENknA7JTQKmIZA9WGVFBXIiDPPP7HG4B/70DnBctRWWKrj4WU+1CEDdzbnCZFiuOu9MEaXIUCGUx43f8iiy7
  242. fSTIww5p0uLQmEk0KnyIqcOKd1Lorh4XoNLy58eE/C1KeLaMSOy4nw9+PMm8HKv3fZO3CSuB8d1O/HkKE5MhbIO4Iu7l1QqsZUUGpNy0xMURXaaQtoxk6MoPxE59XACpw69E9ltSl0W9Y03bvwFbDrcSGJ1tLrDZhBWCCzfDLBlfvLS
  243. alSjnhwCWMU1uu/Jzk9JOVNIAv80683b85SGV4tF9gAGoGkaxCZmdteV5mTwhF3PRQCqxdR2vcImzzj1q8wGrPI5JC0Yl7eWf4/F8i9JPpgeVr2TrQAAAABJRU5ErkJggg=="]]
  244. local b64_pipebot = [[iVBORw0KGgoAAAANSUhEUgAAAIoAAABACAIAAABKlnjhAAAEH0lEQVR4nO2czWsTQRTA35udJEZBWmkFb4IgBasevHgR1IP+AXr06sH/UE8eBPGkF8GP0iJKEYu0CFbbJDNPdmaymZ1NNo1tk5f2/Wibp
  245. t3d+fjt290ZMg+fPXoCAGTJATs/t8kQeAhaCwpbUNBCnaEq3hLAvu0BWPDf40CCrumBpf7ekDUaiOh3QwBjjDW2+C9/TKdfUfeCCrJGqdK9fdewUQ2yCPtZ8Q4VLi5f6PdHjt75sZ1v5vTkB6HoMAj7v0rdvgedQ/eYit/08lrHFUeA
  246. rLrPvEB5i/4fsrSztR3vrgsrJTHCjEgs6LQWKJJmCmFcekWPRRa1PLWUu7+sR1u8vA1tAxJGM2FP05dF6Lrbswujsh4EWPoL5939X/RMn98N+LqQP2D0Y6h67+mLET3Tp3JjSfWgQlBuq/Aj3YNqRyTVxz9ErN/gpJG0L+m/CVuf6jF
  247. dCz031nHRYykalxBkqKjm0YESn2jJlvQQpbpOFphVzmZTGtWhmqy9kR4n4u7TVX0O/QDYkL13cbWB2odRhurl1vsu9UbFECKub3w2xoSBFNDVKyvgdHgpCtXa+kdr7QzD6EhP7vK+Fjbf/AFFxYEabXXp1lkbZknysf/m6130F6eDlV
  248. SKHt3M3FfQg4RnWs1Yj25mYRg7Qo/SSM5ELofyAyZ6lEb/7D6ri9wx6jGVPyHk7TX9kqobjGPCYBOmi+hhjehhjehhjehhjehhjehhjehhjehhTWXGugINPuxAQydJC9DJTibV/PbxXqxm3Y6yKm6WstS6aMYk7wKsFDlulkKihzWih
  249. zWihzWihzWihzWihzWihzWihzWihzXjZw2EaRN9GEqihzWihzWihzWihzWihzWihzWihzWihzWihzWihzValihyRtNgtZDADrm4sUb0sEb0sEb0sEb0sEb0sEb0sCb9rMEg7R6dggQrMwfHDDklelhTih6fbyUGowU66BawFKE1tFVF
  250. 0ksKv6WpQuMNpt8vaf6lanaSw609Ci3uT8MMaWPUg3CA5UVpPre1jU+qRd6GsRZ7mDXCoipD9v7S9abWNYuwHizfSA5Y2eDmuDYeFwT04vs7n5XI92JbNe8sXsPM1xQJ6Pn3typTYxNvDYdgZSX9B+LgQHkyIftBaeXN2R59e7WL3sC
  251. I0qqfcwt+g34YpIAlotwapavd6mvMjFD/0Hf5WVesWQuvWJdza3Jo0FP5kTE6ZQ9QTllPEXc+IZ9LHEY2HMtr8vmV5jHplwsI9M0JDXXNKFrkIybe4Igr4HuyyNPti42vdZUzQx4NWBNFDwJ1BnkQQxhi9NZdSTHaZP5I6o2DRwEsvR
  252. wPcX+GIqlUfLsLnayUsPDx7YdJjWuY90SG9cncZnCvHFde5dGgdocTNkzl3xy597BG9LBG9PAFAP4B/yl7rE8EjuEAAAAASUVORK5CYII=]]
  253. local b64_restart = [["iVBORw0KGgoAAAANSUhEUgAAANYAAABLCAIAAACDee7kAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY
  254. 2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAx
  255. Mi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1
  256. wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdX
  257. JjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyNTc1RDdFODg5Q0IxMUUzOTkzRkJDMEM4MDJDNEY2OCIgeG1wTU06RG9jdW1lb
  258. nRJRD0ieG1wLmRpZDoyNTc1RDdFOTg5Q0IxMUUzOTkzRkJDMEM4MDJDNEY2OCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI1NzVEN0U2ODlDQjExRTM5OTNGQkMwQzgwMkM0RjY4IiBzdFJl
  259. Zjpkb2N1bWVudElEPSJ4bXAuZGlkOjI1NzVEN0U3ODlDQjExRTM5OTNGQkMwQzgwMkM0RjY4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+jkUoGQAACkVJREF
  260. UeNrsXWtsHFcVnjuzM97d2t6sndSOndIoLeBIwA+CUJGAUlGgDxR+ILVqKhURKvgRKK+//dG4P4qEaoESCcQjAqGolRBCNGkSJAqoRfTlJMV2okRK48jONnYefqxd21nP3MvcO/uYuTNz74x3vLbX59PKsnfOnDn3u+eee8+9Z9fo8T
  261. 2aAgCsHVSgAAAuCAAXBADABQGbFinu76PvLAEpgFXFk59NQxQEwEQMAIALAsAFAQBwQcA6zIj9mPvtU3iqQH8jFvAFiAXUtq39wJ/rdUFzfMi6flkhBFwQEHuSzfcmEAWZ81VeAEAsRPCZKC6IafyDKAhYiQvKfQbSEQBkxABwQQAAX
  262. BAALggAgAsCNidSCepCelrfuUcxsgqif8lvWL69fGWQlBYUunkUsIGk5randnyCqUZRDMAzE2ZhmO0FBG9H1RRG04lnrpmFEaVsHbEbmNq5B9kNjHY7WV4yr5yO1MAQhWbhPJ4phLWo8faI+Vl7F1RbO9u/9Wvtznuo9Uj+wTxrujD9
  263. 4kPW9fep9UEbSEbf/bnvHGF0qPQlw9LbL8/+fj9jxAwUsBW27f9dLIVzR5522LadALV2tj31K+3OXREbiKcLMwMP07Ol8AaK7Zn704Gl//yRtcjy93Hj7RHzAxMxYNNPxLXRQwelGklYIlDRE21QyueO2ArVuhuI6rJH3qLG2hO3Bze
  264. 8CyoxGYmyAK1TodO0xBootSfaoGqcPfEJb7QLcutfjOkRc+hVS1E1RU2xA2jkvCWQL98SvuagVwOHhKvDiGVGp9iv0H6HaqBdTpgarx5C3Lew30l99iDKT7mzCX1haxUJt+1324MQbaDLzzj9BFvr3QWvvjIwdfpk2XTfajqVbd+596
  265. DR3kG7gs04H54auD18gq1uA+SXZ29cOvLT0lSBMhVEdGbxeo6RUuUs+9UfGZ96mC16KZWzo0Oj/Y86VEfJ4DKLN7aUFRLHgIu/3G+l0vYbTg/e9Y2f5Pc8UvZFBU0P/XP8Ly+w9tryWLNKnVPjmsukuPb03Lc39+PjTL+tAJXOv7bw6
  266. s/KCXIQA4VXfjF15kQY4Xqm/e69z+ltHRWDlYVTA6Xhk1XCbftHn3uIJbf2GFOM9m27vv2i0dlDO4jJc/o5ftajCy5OvD974b8snwtI6Fo6etXtu/XuXWy00YROffOoILZjszR/+Yytkws2tUFpkFzW8xQ7Pdfv/Rzrcls/whPjxYtv
  267. SaOFK0UkW1wKCTXg7DJWqjsQpfufdEfl5eKN4oU3q/pTqpJvtTR15fZ0feEJ/Z77aB9rVN66NVbhh4QRXjYgmPAetbvPQ3jOQ7g9xorXblW1t3T24tIibSAK0e/lZz26YK3KMHCU07ah2ivK2kJcvBjwZkUz/cleVXuibCKQIJvd75G
  268. QW8pGKgnYw8nLLK6XcLcZASZ59SdRQrrqLuiEq4BVEb1osQWHVtvWkiWAdCnGloPBUZD4OK1p1pwurNgTKQoGKCQWcUVBwvVBrb3YmYwJqcseNiG65KXrV/uhIsIxERNO7ce11tlsc0q8+gP4gX1BwKbfF/Si1UBbM2yU4ICxomdQSq
  269. 3MMFFszbb3fv0Zc37KGdB+Ae3aMBr+aznRY7j1zjGzMF6byBD6yGPPCh5Reu+4OXa2qsHQPKbZKUE+jSxXXEinPHGkRVPK7bWDH6EpBG1g+OM4eb8Ap79OwlMywltSytYsEshz+jl+1qML3qErasZJJQKuamlFi9MCLdPW87XvCTLZp
  270. bdfLo78ze2CU2dOzb719+rMsu3zj3/swG8CNlMqmFu8unTzf8zggLWU7VJb0ryLcC7VmamsEYl8beuX97tgvDGv2yyFEq7KCLftMTIiebF+mIgBMBEHpH+iMLCCGO7sTsW4irE7e7Cjo7MZERYF7feRrEXiJqD4FCnJUlSfNiSTRxvL
  271. BVfBqeMy4NsZqe5xIKQAmj4Kprb3GbsfcKJRwGIn3TY3OqRMjtFzKja6THbyEaYNL9+ev3wWs3K3wD03PHaOu91eL2d1l/vNTc4M/4t5YMgGh9Gm931JYZsl9k+rOGl9cL4SRZP/GLWa6yrzQ4KLndQtPbGGiiYknNiEX7EJH2dk0+Z
  272. bQsKbwQWzX3km++D3w67enioMHXxkceJydTutO4tzRuhe03Lx5sXDTwtOR9oNsj2L3bfnMyjvWl8XL/373POvC7zpo9891PXNfqVyGpFIPZwARt8Dxse/KF55xKpGyT74A+XLB8IJ/2C4/9GlyIQ3BpCOAJp6ImaTiCoY4oSmC7i2KS
  273. +LNJw8f9V3O589eHf/g1aOrvIwBSVSD7dyflaw9pURrsQkfOO7oCJe9avlio9a3Yf0jBh75XkPiqRBlnXXXLABE1TCXi4mHMUmfKO7oLR8Daka0lLl43MWpsSbnry8L6ryt3vXUvR0VBOO+2rBHHVnlEg9nORxwkeEbR41jPAN74Lie
  274. kEt075zXz8rXyuPXfMfA9ZIaL2gntvW98M/WKVFp/P8j7MuvGaeeoHdXu5Xrj6vDSudpsjgW+8eG3m+VsCXSD2cAFx9oV+Aq0eUKhTXC9qE373vYKqV1Qsyz7YJx+dOhm5ZNIELSusFszt2Z1zla3ODRxfDiVZTRuuuT4sO6IrjRe/t
  275. XH2ebj9UyPP1N14qF/AlVw8nAFdf6Bfg6hGjEC6oFzQ6erI7+tJdNcLnB48urfVcvNHqBRGKeZWrz4tms5JkPVzUxwVXQMZWF49w1OxrQWm9ID0QU7XqoJQyIjmgQ4GfNnLX58krEhOvh4vGT0i9YNwxIKwXpI9A8QhvAGBfENBEUdB
  276. cKF49fohk8tXzHzI2uDWNw7ZLEJmbePWQeke+ujehXxrUCK4u/z+8MjT90sHo06g2MawTz+kIXy8oDSJjp90GS+vhOP3axIjhGBASvTh5szBSeRwJNG/h7LGxm0xeDdBvLRQLxw+TbI1Azn4/4ZMnDqtZ1kFM3vASzqd3Pv1i+RVuI3
  277. H/Etv/P+imn/0k/c6NCF/0a2JlbF5zf7qnS3j+Y8uPe+W586JiCV1bUKOviPwHdBML6mwJRdfgN1jsgpx+vwFS+W6h/KRQf+KESzs07oGemu/t+Pko9yb8DzpA807Ezoactz5PESS6yCfPT1/V1XrUtbjfHm+9YISEMlpmHqxf/okon
  278. 7zkcVL9yRIu69DV2CFIPCPmqqhQvfKxG42E+uPeHre9Ug2JyydNeL3ya+qC9go7k6If2KlCV+uSty+5q/2kaPF9vxlXLyiFHnNhwulv0RoqnzjhdcqvvQtqSOluRdGHjFTeZv8uHdUTxLh6wcRjoF8/aqB84oTXKb8yQDoCaK50BCUt
  279. jxprz5q3d7X5QeuMQIiCgA0RBblvpAMAYoQ4LQEXzPe/B0wCYCIGgAsCAOCCAHBBAABcENB04DPifZ8x1AiJNACwMmCMkffbyyAKAtZZFGTf9GABL4BVAnH+pYnABZX18T0jAEhHAIA1mogxUAJobNiDKAiAiRgALggAgAsCNi/+L8A
  280. AvUzdK5D3AAMAAAAASUVORK5CYII="]]
  281. local b64_logo = [[iVBORw0KGgoAAAANSUhEUgAAAGQAAAAbCAYAAACKlipAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i
  282. 77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo
  283. 1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbn
  284. MuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtc
  285. DpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1NzU4N0YwNjk3N0IxMUUzOTQ2MUFEMjgxODNENDFCNiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRp
  286. ZDo1NzU4N0YwNzk3N0IxMUUzOTQ2MUFEMjgxODNENDFCNiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjVBMDUwRUY1OTc0NzExRTM5NDYxQUQyODE4M0Q0MUI2IiBzdFJlZjpkb2N1bWVudEl
  287. EPSJ4bXAuZGlkOjVBMDUwRUY2OTc0NzExRTM5NDYxQUQyODE4M0Q0MUI2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZXtWvQAADZVJREFUeNrkWgd0FOUWvj
  288. M7u9lNNptNQiCEjmBABAmIYgghNCUcFRsPn8fyYuEhgiI8RBEUj4QqUh8q8EARGyA8qgSkmQRCTWihJaSQACmkbM32d+8ks8zuzpIFy4Hz/nP2zO7MnTv/Lf93v//OMiAaWmXo4Ph2XXda7TbxaXC5ANQaNTidLjAZjMAw9ecYlgFtR
  289. Dik5WR00tcZz8NdMILkiqZD4/oVGXV6pcPu4G0RDwZYMNvrrmQUnGjxZ80htkW7id1adJxTVVXtfj75UxMeBpwgpAQuYUjSoPEpr78KVpvVQ4FMJoNfN+2A4JBgiB+UCA4HGsKyYK2zwM+rfsBAOeFuGS60nMVEem3CW6AOCwUn2uJh
  290. K8dBTVWVtvKjTxadKyt8+8+YA/mtQ5dO0Dd5AO9LGiz6eMPXP9YHRMXIE58Z8sS08e9P7N8jsbekkjPZpyEyKhKShw9znyNlW77/mTfybhoMpuWQ4U+CJkwjed3pdAQzDtfY1BkzDadLLqbiKeMf+Xyb1QYxbVp5+JLGro3bgWumjhi
  291. e1CdxzITJkxLjEh4Cm83mo0Aul4PDbgd7wzWSoYgSfN1twXA4HbxzzUYThGJA7BL2sjIWnn8zBTPZ9sHCLxYbTublfml3Oav+yIQgfwq+pMHJOR5puB4tY9eOHD0KxMGgGziO85wkQtSdOuQyLkyjUne2eUMt2kAJI4YluUweTtVPKg
  292. gsnrajo5wOJ/95+d2RUHghL7WyrBxqLIY9NxzKkry12qjLJhS8Ddi0+7vG2Rx2MJlMHtGjSZWVXr0hhIbRaghvEt6YYyI4Vhbqb9VQUOmav+t1dmuxYKCCk2tRV5hUfaI5Wuy2MqfLWUe/I9Rh8ck9+21Xh2vc7iGZGiyatLpDQtX1z
  293. 8QCSoW86nqVhx9J1qAzgNVigfDICI/56Qx6SHqwT2pYuJY/X5/dDigpKanZenxvU6fLZcO5NpcxrMLbLpJF4uMyWy2leM2hkHFRMlYWjHZF+au7nM8JdH7F1TJ4P2WsewJkSQ0a0aHzK36DzjJMUK97uy3sGNP2BQqyJHZarDzUyTiZ
  294. 5PVtR/Z2M5hNBThZS8foNuPj7rnvQyfjK4cOgH2nDr1yueLKBso2q8Vqj4qJhlmrFyME2d0wO23MJIjF4vl3hB9a/WRbZXkFTHjhn/wKENu8a+M2yD5wBFKXz/eAbYK2lH+Nhn5DBvLnSW9+7gUYPSKFz2IZy6oGxfX5JTI0vCvCoc9
  295. czSZz3fbs/W1tdrs+oUuvNa2img/S6XQMI2MDCwg9NKJpE1jw04r6JEKHyHHCiz6Zi8pN0qzBbqu+N7L1qskfTXmmX/JA1uqnDk0dNQGSkgfDwGFDPIxmGrif/MVR6RWlVx1ZBaef0en1uviBieyLb7/hU9cUqOvzj2ctzdyxZ36Rrn
  296. wJBmYTvwIJShqgVdBJbJC+03nhI1nIMUBS9VNY2YIO4UjliNTHt3/g0Mwl8+5rF9uBFd/P4Rwrr5XDpJQxLCKO8YHmHbZMmz29X9wjD7IWqxXkCoXk8zjJCWAWhzeJvPEbJ6EICvKBGlcDjewe3SH94wWzWg96YkiQQhUEwRKIRDqIP
  297. quQOlMxdYp0CYsg9Yt5PCYu+HTOd/u27lQwuJK8ZeudDfDm+++EvvbOqNC0Lb+MW/Lp3JfsmJ0u8IVD4bcAlVJwSRA96Klk6PNoEv9diiqLjwiVIGe56MTYXjnzVy3t3KVnN95nYtVkr9VSRwEM6tXqvmOzly3o0Lt/AscpEEJd9TrE
  298. q/SmASHNDtHEWIy2JO6TgYiFny6aG9v/8UcxaAo3ZPgEpEGHgJ0OCcNbtG3FH9+d+l6rsBA1GPQGv7JNoptiIBl47qUR2iCO02bu2v+79ia0wY3AJPTOWrqmDFa5Vzl/RDu1EVp56sypnbs+FMenprfdDMrarXa6h5mzbGGnRwYkAsu
  299. xfv1z84DcojEPPNwTgpRBbmOEifuDAG84oJVDmSnIx2BgWrZvA9dKr0lCHwVVMEyDxbZzXDfY/8vu30eHkYk5HL41gIKxbsUayEzbyz+X5ltdWQXBajV0f6QX0WiPTBds5/d3iAbE3rrH9+JpbSD+kQwItUQ4GedT7P2yI7PZw8EXc8
  300. 9D4cV8GPD4YzfdxZNsbXUNZKCxg58eyuOq8AzaPDGivgZ9p2tbf9wAPRN6Q9Pmzdy6LXV1HrJ/8NYelCoVqDWh7oBYcKdNyEB2EwSJg1FwIQ+y9maCCgOpq6lFORdYzHWgxgAKNp86mgNVldchYXCSj384KSdR8c45eFSo6Tyfv3q5F
  301. OtK10bnT9l+Fnf129dthMHDht40ICRL2fbNwq+g39BBoFAqwSWRpeLx7eIV/C63ecuYRls2yL4ahQhxwlFQvbO2Dp05YtQ/4OHEePe5wouXYNpb7/n4reB8Hqz9zxpIW78FQkJCeP+FRWh9bD6WkQW5J87wzK3RgNANtderYcb4qTxG
  302. 12eei59oD1x6AW3UMGuCcUKBDDKE9gmBZjjJ0hwDgdJ2sfdAsxbRjXYT6NkV18rAqDdCK4RKsTxdqzOZ3RBDq8BkNEkm17a1G+HXjdtBGxWhrzXpz6DbFGEAcSLeUs8SkSCpGupSgJDFO8llsphLiBCQPpedIdqlDrSu3ErD8ZZl/Ti
  303. YEdlNNWnkxLE882q0kOLq2L0lDY7uPwjzvvsyoNonNZRKFciVCl1hxZU12QW5b8lZWcSzCcllOC/O2z+uQDeG7l6L02HcdfJAD7vDzvdwYqParMC6khLo8leqlAH3dZR+skXSaMRzVmKF8FiNNJNlZR57qlvRq/bTbAx0UN29eLVoZd
  304. 71kvH1m0ZZsCSC4CpTIAm6HZblrF8h9d8D6mSiExIeS4KHkuIbdQhdb96qBcz9ZikfFOdN6ocAIzNXLuSXu1i3AslASeFleO+VMTD763+jwdwtrTrS9SiSigFI3W93dYh9drP+Fukf+vzT8BjaKvWsxjqGjJ/vHoPonQdGYnHWaMMCm
  305. j21UcIitT41RMy4xIOKJCeilvzzg4N5H5QVX4EPXn2bJyWUhcIn0BUSKrFCWNktN1UZKf+I7aOECkXWJllTf2cfma83sydOg2slV9zGEz46GmFL4synZp14OdM7lrSft/AvxHz2CygrBIpkTx8/ActnLcKNJ1eZfu7Ys8XIgOZM/ASm
  306. j5sMk18fBxk79/l0rv3Vphsvi1he96Jpc+DypSKepNyWe5CxsC6Gm/HuFKTANW7/OG/iH5aME/BMuCFYHSLpOMpaQU7WwI6IJV04mQtLp8/jObg4M72zlGdHXllP94vlKBib16zn+0BSTUix7LHMw/DtguWQk51TnFN87o0r1eUbsov
  307. OvnY4M6tq37ZfIW3DVijOL5BkcGQj46VP+FA9+mrWQjiAwTQbzW5/CHbQiuRrH64qqhvuHbzCs6Nhs9uuH7qQMzon6ygsmTYXyq5c9esfIiTkC46w+3jGITDpDe6Nj75W52NAEFK13OMngZExvBzD92qs/KfUULlEv3PPcI1W26xDl1
  308. hJ/Ca95VfLPDZSdE5XWwt7NqXVN+0wM3f8tAmOns7ZgAwlHIPe33tjuGP9ZtDr9LwRNO+DmQcuXDaUp5ZWlf2X5AoqSld2jG479amX/hZBjrz/we4e8xH0bFqzjodV77nSHIy1BtixbjNcqixZFK2JfC5jx96YwvP5bv+QHdSqX7/q+
  309. 3pIczVsiE+f49tHbqaHxCi/7PIXCk4RYdm+60NNeLiqZfvWfv1DG0lOowmDw/sy+dYA1G85+MyUBwWFMKLUUqmCg04dPo670HS3HF0O0aghtyRvSvvoVkW7t6VNSN++O9opVf9RnrrAnILz3PNU1cCy2Yv4Di69+DE4zL/lVRRP1MhD
  310. nkSW0t9bzQ/LVsO1ohKkmEowO63nMBizCstLV4uoL+uw2dhhLw7n9xRitkXzDaLNJ66AtaiHp8mMbwmggFVadGtPFl94p1m3+L77N++MqUMGJ/YPJfI387+6Ub/xEBoaCiqlSuGt8WxpfirXRqbZtn7TSAUj0/rzDyUQV1ZTkeXRvuW
  311. BGmmvzmjGiblpgM6sP1ttVmfZwX5DDo9GnRUUMrn2fGnBZ/hb1qZJzFN2p58GI7i6oBNCJTaGdp3ZkI2U1XE4/1SK0WK+FKXSRknpoBaETeY6wzAOfe6VS5/jylgnVdvMDZs3IRhCv+xszmner2awZ6MBFm8+RElRZ6+rPHTxxAj6XW
  312. PUn4JgsDio2y7Ionl6ndm3M2CqBb3ZcFFq3qeKLkyC1sA010b19ecfk8H6175q7dmy0570tL0uGugc/lhSWOx6vEfSdW+C0S48ZjoWa7csFkH+OPbZFFeIXNndP8Vh2IGdHy5C+PC412q1ug7/luka2iXBldy9b75cxmngDhzcX/kwZ
  313. B0yG2IvNeeENgT1iugSx8pCEHP13u8pBFkB++mDUNboTpIajjeew0H2wSMwY9wUZDBs8c4TGfc7nE7z/31AqOG2evFyWLN0pfv1sFAovf+xRpQ3a086HMnI8mAuFpO5noZa/D+HekWfTZ7ufofP63Y48RZH3r5Th3vfqcH461cIOob+
  314. LGET9Zao1e9PlhhcnU7vxfYUAT3HgEzR0fCegsP6UVZ7Pf1YwZmXrXZbFdzB438CDAAUPr3fhJVeHQAAAABJRU5ErkJggg==]]
  315.  
  316. --Decode base64 textures
  317. local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
  318. local function dec(data)
  319.     data = string.gsub(data, '[^'..b..'=]', '')
  320.     return (data:gsub('.', function(x)
  321.         if (x == '=') then return '' end
  322.         local r,f='',(b:find(x)-1)
  323.         for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 and '1' or '0') end
  324.         return r;
  325.     end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
  326.         if (#x ~= 8) then return '' end
  327.         local c=0
  328.         for i=1,8 do c=c+(x:sub(i,i)=='1' and 2^(8-i) or 0) end
  329.         return string.char(c)
  330.     end))
  331. end
  332.  
  333. local defaulttexture = nil
  334.  
  335. local backgrounddat = dec(b64_background)
  336. local backgroundrgba, backgroundw, backgroundh = common.DecodePNG(backgrounddat)
  337. local backgroundtexture = draw.CreateTexture(backgroundrgba, backgroundw, backgroundh)
  338.  
  339. local bird1dat = dec(b64_bird1)
  340. local bird1rgba, bird1w, bird1h = common.DecodePNG(bird1dat)
  341. local bird1texture = draw.CreateTexture(bird1rgba, bird1w, bird1h)
  342.  
  343. local bird2dat = dec(b64_bird2)
  344. local bird2rgba, bird2w, bird2h = common.DecodePNG(bird2dat)
  345. local bird2texture = draw.CreateTexture(bird2rgba, bird2w, bird2h)
  346.  
  347. local bird3dat = dec(b64_bird3)
  348. local bird3rgba, bird3w, bird3h = common.DecodePNG(bird3dat)
  349. local bird3texture = draw.CreateTexture(bird3rgba, bird3w, bird3h)
  350.  
  351. local pipedat = dec(b64_pipe)
  352. local pipergba, pipew, pipeh = common.DecodePNG(pipedat)
  353. local pipetexture = draw.CreateTexture(pipergba, pipew, pipeh)
  354.  
  355. local pipetopdat = dec(b64_pipetop)
  356. local pipetoprgba, pipetopw, pipetoph = common.DecodePNG(pipetopdat)
  357. local pipetoptexture = draw.CreateTexture(pipetoprgba, pipetopw, pipetoph)
  358.  
  359. local restartdat = dec(b64_restart)
  360. local restartrgba, restartw, restarth = common.DecodePNG(restartdat)
  361. local restarttexture = draw.CreateTexture(restartrgba, restartw, restarth)
  362.  
  363. local grounddat = dec(b64_ground)
  364. local groundrgba, groundw, groundh = common.DecodePNG(grounddat)
  365. local groundtexture = draw.CreateTexture(groundrgba, groundw, groundh)
  366.  
  367. local scoreboarddat = dec(b64_scoreboard)
  368. local scoreboardrgba, scoreboardw, scoreboardh = common.DecodePNG(scoreboarddat)
  369. local scoreboardtexture = draw.CreateTexture(scoreboardrgba, scoreboardw, scoreboardh)
  370.  
  371. local pipebotdat = dec(b64_pipebot)
  372. local pipebotrgba, pipebotw, pipeboth = common.DecodePNG(pipebotdat)
  373. local pipebottexture = draw.CreateTexture(pipebotrgba, pipebotw, pipeboth)
  374.  
  375. local logodat = dec(b64_logo)
  376. local logorgba, logow, logoh = common.DecodePNG(logodat)
  377. local logotexture = draw.CreateTexture(logorgba, logow, logoh)
  378.  
  379. local windowx, windowy, windowsizex, windowsizey = 200,200,384,448
  380. local bird = {}
  381. local pipes = {}
  382. local basevel = -750
  383. local jumpcheck, lost, started, is_dragging = false, false, false, false
  384. local starttextpos = 300
  385. local birdstep, groundanim, score, newscore, starttime, highscore = 0, 0, 0, 0, 0, 0
  386. local dragging_offset_x, dragging_offset_x, prevmousex, prevmousey, mx, my = 0, 0, 0, 0, 0, 0
  387.  
  388. local active = gui.Checkbox(gui.Reference("MISC", "General", "Extra"), "active", "FlappyBird", 1)
  389. local font1 = draw.CreateFont("Bahnschrift Bold", 35)
  390. local font2 = draw.CreateFont("Bahnschrift Bold", 25)
  391. local font3 = draw.CreateFont("Bahnschrift Bold", 45)
  392. local font4 = draw.CreateFont("Arial", 15)
  393. local icons = draw.CreateFont("Webdings", 30)
  394.  
  395. local function inRect(x,y,x1,y1,x2,y2)
  396.  
  397.     if x >= x1 and x <= x2 then
  398.         if y >= y1 and y <= y2 then
  399.             return true    
  400.         else
  401.             return false       
  402.         end    
  403.     else
  404.         return false   
  405.     end
  406. end
  407.  
  408. function dragHandler()
  409.     local mouse_x, mouse_y = input.GetMousePos();
  410.  
  411.     if (is_dragging == true) then
  412.         windowx = mouse_x - dragging_offset_x;
  413.         windowy = mouse_y - dragging_offset_y;
  414.             if prevmousex ~= mouse_x then
  415.                 bird.posx = bird.posx + (mouse_x - prevmousex)
  416.                 for i, v in ipairs(pipes) do
  417.                     v.x = v.x + (mouse_x - prevmousex)
  418.                 end
  419.                 prevmousex = mouse_x
  420.             end
  421.             if prevmousey ~= mouse_y then
  422.                 bird.posy = bird.posy + (mouse_y - prevmousey)
  423.                 for i, v in ipairs(pipes) do
  424.                     v.y = v.y + (mouse_y - prevmousey)
  425.                 end
  426.                 prevmousey = mouse_y
  427.             end
  428.         return;
  429.     end
  430.  
  431.     if inRect(mouse_x, mouse_y, windowx - 100, windowy - 48, windowx + windowsizex + 100, windowy) and not inRect(mx, my, windowx + windowsizex + 41, windowy - 35, windowx + windowsizex + 41 + 20, windowy - 35 + 20) then
  432.         is_dragging = true;
  433.         dragging_offset_x = mouse_x - windowx;
  434.         dragging_offset_y = mouse_y - windowy;
  435.         prevmousex = mouse_x
  436.         prevmousey = mouse_y
  437.         return;
  438.     end
  439. end
  440.  
  441. local function setupbird()
  442.     bird.posx = windowx + (windowsizex/6)
  443.     bird.posy = windowy + (windowsizey/2)
  444.     bird.vel = 0
  445. end
  446.  
  447. setupbird()
  448.  
  449. local function reset()
  450. bird = {}
  451. pipes = {}
  452. jumpcheck, lost, started = false, false, false
  453. starttextpos = 300
  454. score, newscore = 0, 0
  455. setupbird()
  456. end
  457.  
  458. local function readscore()
  459.  
  460.     local f = file.Open("LUA_FlappyBird_HighScore.dat", "r")
  461.    
  462.     if f ~= nil then   
  463.         local savedscore = f:Read()
  464.         f:Close()
  465.         if tonumber(savedscore) ~= nil then
  466.             highscore = tonumber(savedscore)
  467.         end
  468.     elseif f == nil then
  469.         local newfile = file.Open("LUA_FlappyBird_HighScore.dat", "w")
  470.         newfile:Close()
  471.     end
  472. end
  473.  
  474. readscore()
  475.  
  476. local function writescore()
  477.     local f = file.Open("LUA_FlappyBird_HighScore.dat", "w")
  478.     local tempscore = ""
  479.     tempscore = tempscore .. highscore
  480.     f:Write(tempscore)
  481.     f:Close()
  482. end
  483.  
  484. local function collision(cx, cy, cr, px, py)
  485.     if pipes[1] == nil or bird.posx == nil or bird.posy == nil then
  486.         return false
  487.     else
  488.         local rxt, ryt, rxb, ryb = px - 35 , py - 48, px - 35, py + 48
  489.         local rwt, rht, rwb, rhb = 70, py - 48 - windowy, 70, windowy + windowsizey - py - 48
  490.         if ryt - cy > cy - ryb then
  491.             local testx, testy = rxt, ryt
  492.             local distancefront = math.sqrt((cx - rxt)^2 + (cy - ryt)^2)
  493.             local distanceback = math.sqrt((cx - (rxt + rwt))^2 + (cy - ryt)^2)
  494.                 if distancefront <= cr then
  495.                     return true
  496.                 elseif cy < ryt and cx + cr >= rxt and cx - cr < rxt + rwt then
  497.                     return true
  498.                 elseif cx > rxt and cy - cr <= ryt  and cx < rxt + rwt then
  499.                     return true
  500.                 elseif distanceback <= cr then
  501.                     return true
  502.                 end
  503.         elseif ryt - cy < cy - ryb then
  504.             local testx, testy = rxb, ryb
  505.             local distancefront = math.sqrt((cx - rxb)^2 + (cy - ryb)^2)
  506.             local distanceback = math.sqrt((cx - (rxb + rwb))^2 + (cy - ryb)^2)
  507.                 if distancefront <= cr then
  508.                     return true
  509.                 elseif cy > ryb and cx + cr >= rxb and cx - cr < rxb + rwb then
  510.                     return true
  511.                 elseif cx > rxb and cy + cr >= ryb  and cx < rxb + rwb then
  512.                     return true
  513.                 elseif distanceback <= cr then
  514.                     return true
  515.                 end
  516.         else
  517.             return false
  518.         end
  519.     end
  520. end
  521.  
  522. local function frame()
  523.     if active:GetValue() then
  524.         mx, my = input.GetMousePos()
  525.         local dt = globals.AbsoluteFrameTime()
  526.        
  527.         if not lost then
  528.             if birdstep >= 4 then
  529.                 birdstep = 0
  530.             end
  531.                
  532.             birdstep = birdstep + (dt*7)
  533.         end
  534.  
  535.         if started and not lost then
  536.  
  537.             if input.IsButtonPressed(32) and not jumpcheck then
  538.                 bird.vel = 440
  539.                 jumpcheck = true
  540.             end
  541.            
  542.             if input.IsButtonReleased(32) and jumpcheck then
  543.                 jumpcheck = false
  544.             end
  545.            
  546.             if bird.vel <= basevel then
  547.                 bird.vel = basevel
  548.             else
  549.                 bird.vel = bird.vel - (1750 * dt)
  550.             end
  551.            
  552.             bird.posy = bird.posy - (bird.vel * dt)
  553.            
  554.             if bird.posy > windowy + windowsizey - 16 then
  555.                 if pipes[1] == nil then
  556.                     local pos = {}
  557.                     pos.x = windowx + windowsizex + 35
  558.                     pos.y = math.random(windowy + 100, windowy + windowsizey - 100)
  559.                     table.insert(pipes, pos)
  560.             end
  561.                 lost = true
  562.                 bird.posy = windowy + windowsizey - 16
  563.             end
  564.            
  565.             if bird.posy < windowy + 16 then
  566.                 bird.posy = windowy + 16
  567.             end
  568.            
  569.             if groundanim >= 70 then
  570.                 groundanim = 0
  571.             end
  572.            
  573.             if #pipes == 0 and globals.CurTime() >= starttime + 1 then
  574.                 local pos = {}
  575.                 pos.x = windowx + windowsizex + 35
  576.                 pos.y = math.random(windowy + 100, windowy + windowsizey - 100)
  577.                 table.insert(pipes, pos)
  578.             end
  579.            
  580.             for i, v in ipairs(pipes) do
  581.                 v.x = v.x - (dt*175)
  582.                 if i == #pipes and v.x <= windowx + windowsizex + 35 - 275 then
  583.                     local pos = {}
  584.                     pos.x = windowx + windowsizex + 35
  585.                     ::retry::
  586.                     pos.y = math.random(windowy + 100, windowy + windowsizey - 100)
  587.                     if math.abs(pos.y - v.y) >= 175 then
  588.                         goto retry
  589.                     elseif math.abs(pos.y - v.y) <= 75 then
  590.                         goto retry
  591.                     end
  592.                     table.insert(pipes, pos)
  593.                 end
  594.                 if v.x <= bird.posx - 35 and newscore == 0 then
  595.                     score = score + 1
  596.                     newscore = 1
  597.                 end
  598.                 if v.x <= windowx - 34 then
  599.                     table.remove(pipes, i)
  600.                     newscore = 0
  601.                 end
  602.             end
  603.            
  604.             groundanim = groundanim + (dt*175)
  605.            
  606.             if pipes[1] ~= nil then
  607.                 if collision(bird.posx, bird.posy, 16, pipes[1].x, pipes[1].y) then
  608.                     lost = true
  609.                 end
  610.             end
  611.            
  612.             if starttextpos > 0 then
  613.                 starttextpos = starttextpos - (dt*175)
  614.             end
  615.            
  616.         elseif not started and not lost then
  617.        
  618.             if bird.posy >= windowy + (windowsizey / 2) - 7 then
  619.                 bird.vel = bird.vel + (100 * dt)
  620.             elseif bird.posy <= windowy + (windowsizey / 2) + 7 then
  621.                 bird.vel = bird.vel - (100 * dt)
  622.             end
  623.            
  624.             bird.posy = bird.posy - (bird.vel * dt)
  625.            
  626.             if input.IsButtonPressed(32) then
  627.                 started = true
  628.                 starttime = globals.CurTime()
  629.                 bird.vel = 440
  630.                 jumpcheck = true
  631.             end
  632.         end
  633.        
  634.         if lost then
  635.            
  636.             if score > highscore then
  637.                 highscore = score
  638.                 writescore()
  639.             end
  640.        
  641.             if bird.vel <= basevel then
  642.                 bird.vel = basevel
  643.             else
  644.                 bird.vel = bird.vel - (1750 * dt)
  645.             end
  646.            
  647.             bird.posy = bird.posy - (bird.vel * dt)
  648.            
  649.             if bird.posx + 12 > pipes[1].x - 35 and bird.posx - 12 < pipes[1].x + 35 then
  650.                 if bird.posy + 16 > pipes[1].y + 48 then
  651.                     bird.posy = pipes[1].y + 48 - 16
  652.                 end
  653.                
  654.                 if bird.posy - 16 < pipes[1].y - 48 then
  655.                     bird.posy = pipes[1].y - 48 + 16
  656.                 end
  657.             else
  658.                 if bird.posy > windowy + windowsizey - 16 then
  659.                     bird.posy = windowy + windowsizey - 16
  660.                 end
  661.                
  662.                 if bird.posy < windowy + 16 then
  663.                     bird.posy = windowy + 16
  664.                 end
  665.             end
  666.            
  667.             if inRect(mx, my, windowx + windowsizex / 2 - 71, windowy + windowsizey / 2 + 114, windowx + windowsizex / 2 + 71, windowy + windowsizey / 2 + 114 + 50) then
  668.                 if input.IsButtonReleased(1) then
  669.                     reset()
  670.                 end
  671.             end
  672.            
  673.             if input.IsButtonPressed(8) then
  674.                 reset()
  675.             end
  676.         end
  677.     end
  678. end
  679.  
  680. callbacks.Register("Draw", frame)
  681.  
  682. local function drawing()
  683.     if active:GetValue() then
  684.         local mousedown = input.IsButtonDown(1);
  685.  
  686.             if (is_dragging == true and mousedown == false) then
  687.                 is_dragging = false;
  688.                 dragging_offset_x = 0;
  689.                 dragging_offset_y = 0;
  690.             end
  691.  
  692.             if (mousedown) then
  693.                 dragHandler();
  694.             end
  695.  
  696.         draw.Color(255,255,255,255)
  697.  
  698.         draw.SetTexture(backgroundtexture)
  699.         draw.FilledRect(windowx, windowy, windowx + windowsizex, windowy + windowsizey)
  700.  
  701.             for i,v in ipairs(pipes) do
  702.                 draw.SetTexture(pipetoptexture)
  703.                 draw.FilledRect(v.x - 35, v.y + 48, v.x + 35, v.y + 80)
  704.                 draw.SetTexture(pipebottexture)
  705.                 draw.FilledRect(v.x - 35, v.y - 80, v.x + 35, v.y - 48)
  706.                 draw.SetTexture(pipetexture)
  707.                 draw.FilledRect(v.x - 32, v.y + 80, v.x + 32, windowy + windowsizey)
  708.                 draw.FilledRect(v.x - 32, windowy, v.x + 32, v.y - 80)
  709.             end
  710.  
  711.             if birdstep < 1 then
  712.                 draw.SetTexture(bird1texture)
  713.             elseif birdstep >= 1 and birdstep < 2 then
  714.                 draw.SetTexture(bird2texture)
  715.             elseif birdstep >= 2 and birdstep < 3 then
  716.                 draw.SetTexture(bird3texture)
  717.             elseif birdstep >= 3 then
  718.                 draw.SetTexture(bird2texture)
  719.             end
  720.            
  721.         draw.FilledRect(bird.posx - 23, bird.posy - 16, bird.posx + 22, bird.posy + 16)
  722.  
  723.         draw.Color(255,255,255,255)
  724.         draw.SetTexture(pipetexture)
  725.         draw.FilledRect(windowx - 96, windowy, windowx, windowy + windowsizey)
  726.         draw.FilledRect(windowx + windowsizex, windowy, windowx + windowsizex + 96, windowy + windowsizey)
  727.         draw.SetTexture(pipetoptexture)
  728.         draw.FilledRect(windowx - 100, windowy - 48, windowx + 4, windowy )
  729.         draw.FilledRect(windowx + windowsizex - 4, windowy - 48, windowx + windowsizex + 100, windowy)
  730.         if inRect(mx, my, windowx + windowsizex + 41, windowy - 35, windowx + windowsizex + 41 + 20, windowy - 35 + 20) then
  731.             if input.IsButtonDown(1) then
  732.                 draw.Color(0,0,0,150)
  733.             else
  734.                 draw.Color(0,0,0,75)
  735.             end
  736.             if input.IsButtonReleased(1) then
  737.                 active:SetValue(false)
  738.             end
  739.         else
  740.             draw.Color(0,0,0,25)
  741.         end
  742.         draw.SetFont(icons)
  743.         draw.TextShadow(windowx + windowsizex + 38, windowy - 37 , "r")
  744.         draw.Color(255,255,255,255)
  745.         draw.SetTexture(groundtexture)
  746.         draw.FilledRect(windowx - 20 - groundanim ,windowy + windowsizey, windowx + 480 - groundanim ,windowy + windowsizey + 48)
  747.         draw.SetTexture()
  748.  
  749.             if lost then
  750.                 draw.Color(0,0,0,100)
  751.                 draw.FilledRect(windowx, windowy, windowx + windowsizex, windowy + windowsizey + 48)
  752.             end
  753.            
  754.         draw.Color(85,58,73,255)
  755.         draw.FilledRect(windowx - 50 ,windowy + windowsizey + 44, windowx + 450 ,windowy + windowsizey + 48)
  756.  
  757.             if starttextpos > 0 then
  758.                 if starttextpos > 250 then
  759.                     draw.Color(0,0,0,75)
  760.                     draw.SetFont(font4)
  761.                     draw.Text(windowx + 9 + starttextpos - 300, windowy + windowsizey + 15, "Made by")
  762.                     draw.Text(windowx + 5 + starttextpos - 300, windowy + windowsizey + 27, "Cheeseot")
  763.                 end
  764.                 draw.Color(255,255,255,255)
  765.                 draw.SetFont(font2)
  766.                 if starttextpos > 150 then
  767.                     draw.TextShadow(windowx + (windowsizex / 2) - draw.GetTextSize("Press SPACE to start") / 2 - 300 + starttextpos, windowy + windowsizey + 15, "Press " )
  768.                 end
  769.                 if starttextpos > 75 then
  770.                     draw.TextShadow(windowx + (windowsizex / 2) - draw.GetTextSize("SPACE to start") / 2 + draw.GetTextSize("Press ") / 2 - 300 + starttextpos, windowy + windowsizey + 15, "SPACE " )
  771.                 end
  772.                 draw.TextShadow(windowx + (windowsizex / 2) - draw.GetTextSize("to start") / 2 + draw.GetTextSize("Press SPACE ") / 2 - 300 + starttextpos, windowy + windowsizey + 15, "to " )
  773.                 draw.TextShadow(windowx + (windowsizex / 2) - draw.GetTextSize("start") / 2 + draw.GetTextSize("Press SPACE to ") / 2 - 300 + starttextpos, windowy + windowsizey + 15, "start" )
  774.             end
  775.         draw.Color(255,255,255,255)
  776.         draw.SetTexture(pipebottexture)
  777.         draw.FilledRect(windowx - 100, windowy + windowsizey, windowx + 4, windowy + windowsizey + 48)
  778.         draw.FilledRect(windowx + windowsizex - 4, windowy + windowsizey, windowx + windowsizex + 100, windowy + windowsizey + 48)
  779.  
  780.             if not lost then
  781.                 draw.SetFont(font1)
  782.                 draw.TextShadow(windowx + (windowsizex / 2) - draw.GetTextSize(score), windowy + 5, score)
  783.             else
  784.                 draw.SetTexture(scoreboardtexture)
  785.                 draw.FilledRect(windowx + windowsizex / 2 - 86, windowy + windowsizey / 2 - 114 - 50, windowx + windowsizex / 2 + 86, windowy + windowsizey / 2 + 114 - 50 )
  786.                 draw.SetTexture(restarttexture)
  787.                 draw.FilledRect(windowx + windowsizex / 2 - 71, windowy + windowsizey / 2 + 114, windowx + windowsizex / 2 + 71, windowy + windowsizey / 2 + 114 + 50)
  788.                 draw.SetFont(font3)
  789.                 draw.TextShadow(windowx + windowsizex / 2 - draw.GetTextSize(score) / 2, windowy + 125, score)
  790.                 draw.TextShadow(windowx + windowsizex / 2 - draw.GetTextSize(highscore) / 2, windowy + 210, highscore)
  791.             end
  792.  
  793.         draw.SetTexture(defaulttexture)
  794.         draw.Color(0,0,0,75)
  795.         draw.FilledRect(windowx + 4, windowy - 48, windowx + windowsizex - 4, windowy)
  796.         draw.Color(85,58,73,255)
  797.         draw.FilledRect(windowx - 50 ,windowy - 48, windowx + 450 ,windowy - 44)
  798.         draw.FilledRect(windowx - 50 ,windowy - 2, windowx + 450 ,windowy)
  799.         draw.SetTexture(logotexture)
  800.         draw.Color(255,255,255,255)
  801.         draw.FilledRect(windowx + windowsizex / 2 - 50, windowy - 34, windowx + windowsizex / 2 + 50, windowy - 10)
Add Comment
Please, Sign In to add comment