Paint Routines ADSR
-
-
@ulrik Amazing ! I just begun fooling around with LaF but admit I was struggling with just one quadratic
-
@ulrik Nice work. Is it OK for you if I add this to the recipes in the docs? It would be a shame if this got lost in all the forum noise.
-
@Christoph-Hart Absolutely,
but take this instead, it contains a fix when 2 parameters
has the same x-valueHiseSnippet 3076.3oc4Zs7aabbFeok1jPF+HAoMnGmRfZrzlRhjRxIMJNl5gUrPsrEDcbrf.a5xcGRNUK2gY2khhMQ.t4RK5kdnmxoFz+JZOUenm5oBz+AxeBAHWKf622L6igKWJSK.GX2RXSw460766w7b2873VTeetmVt7OXTepVtKp2XjaP2M6Zxb01YKsbWQe86rUi8I6ADBn1ZaLpuouO7ib4l6iQgxkedMwmu6VaX5X5ZQSHoo8PNyhdWVOVPB08p+KXNNaaZSe.qmhzqTeGKt6lbG9..PyoWQquo0Qlcn2yDE6B5Z4dsaayB3dMBLCn9Z4leCt8nFc4Cckx+PlOqkCEaTUqAXHI4s4N1HhQpZa1k4XuWji6qokSeujvvbxvvOReWlMKldR33sDLHIZnFOxcgyBdUUgWkYGd4Tf27R3815Mr7X8CR3fX6M02ARQdsMgTfJrjxpcAier9lbPB2fE6YdDcaOnQrFF2nRkxjkqTozZEJ.oA+.xwldDYx+lDQUwhcnA6xsG3XBNoQQAuhf7Ihea2ioN79z8bc.kh5MPsM485ycgFFEUjoXozc0uvskOn4gYq55EKUtPd7CgLEqu9cQYHY+IaUtyysFa8bqQimaM1+4Vi02rXolP1qvRKkWl27cX1TO+72L6OEXtNLWJo8.Wq.F2kvcA81uAlDvtvi6XXEY+xPRxY.sTgunPdGtkoCY8f.OVqAPoNlwpAUOkIqTlrZYxMJSduxj2G.Snn8McoNOD0WHaBCF7q1bOhACnWYMBi7gj2C9y0udoB4gdR5HK5SCh6Mij98PVyxI0MPKLhH5FiRPcY97J86h8G320HSguG2qmoC62PskpcZg7ExqTlhcuzpJ1CETUFqtltcPKrVgSKTP3SGQXtIvSD4NBsUXrcSSGmVvLbFSF1kFAxi6s+zRdJowTPULU897AAPt0HJ2ZzQz+3.sgPnNnKyG8+OkYGzEwrfSWEN2gx5zMHl0wJrBivgb3saCcJvdk0v3FRx2giDFRVhrZnTmTlX2JV.dqecTc.1zElfWTXTDxsPDoXYRw6.yJh+cKpk4H7GMF3G.dF9y8oNTSeZwH8OBhb22CJ0Qa.SikTK1LtK6qLgjkGElgdOyPWu+hVf87B+MzKdA2iNrwfVBI.60E4bBX.zwt1wGVQzwGVsI4iHGe3JMI2BbNfc2qYTcAjdIxGLFkUZVR.j9K94CLs8LCXVOfabxR.Pi0Q92azrToxxnUo0HKsjoHfTHODwjUvGJ30ThnqGCoZMEfGGOiVNV+tPX7Yq8xMuVs0l.dKDysrhiHPWRSQuXiIoxDeYJJU+kHaywhiqjBwp17YYhDnuZyoC7UQfKwq.ldx5lzFuYIUjDkuKjWTuaaFXtHHO0J.KQgeEVzYBs5iCG1fOv012nZz.BSn5BKDMg5jqKGcTlXBYXkF0Ztfrw0pgMWNoorhsyhsncXt20bD0yHvCl2cMjXaXiSq63XDMRznXqNxMLUrjTBwzKHAEYXAzdiKEZGQwc+xB3NK5VKRYHNOTUYX7lLdAyWI8hvg72ucaHNXLbAiHmqTokFFFkFExs6Xb6JLT5UDVUth.zAjt7iodxkF.ABmSRjiDbfQhp9g7O9v.dVOetKNrLe9LEf6411gOj50xQFrCiR21wg02mZbHj3g0LfT50P+pLIrMLtcjrcb5LNSFuVBDXBnm.IdbhNxUkqjJCC83C7oOpr7uGfCgZ2lcRXMPVIDzPpIS0xTowfIkFtvMp.ghv12T19CRZmVk0lvJG.g8UhswAfNUisvASZgCVX4JwS0J7xaJmU+vTInnorQJfL6B0QK5gCfTVZNd57ITN8B7pvVl+gRhkATKCiPGTjXuQQ.3JD54WLL9hUxq6v53Rse.DVMPDWlbX5bRUbqw0p.SlTzg1NnXxv.UkEdz0C6nIrx0qtRlF5Tb+1P8wtatQ9YeI9cQaFu+g303oGCqtIVmmL8E5ImwJ8jouTufkO0EmDrVkJ3zoDHDzQPi0h4vBFARA+i0lHQRXJ4pWk7SksQ4g80QvQuB6Y4v8o9AhpqJUVDKgFiwih1kfjJLlaG6SDMmnn+lDYejI6ChYOJ1XA17wpiCmiWvG++TlDB86gcYVcImHGGSX9w9Q.GLHUlxImfVAcUY+YyZ29QQk7ls7gMS54SgCfY.HQN0RIxBBwi4D5RxMyJirRy7gQcYIACQujWIbJjZMIUYTCHxjV4Tw2hunN.NSrJL3IxrnaBLpgXAFU.mRzmz07Xpv+7wA3B2Ws2iCLidFAlQR4w9MNXDFCfsTsPZ2eToRjOTpxXhK8qopSIoJeQ3AFSEEBCCJgfHAfD9zTspnpuEOnKtvGbbonHwUIvter5x8YtcHEw8bUToSDeK+Z7Zyvorlnt1i1G2Cubb2ooGUY4vrNhZS9xujjwvpIjqz3kgvLriePrnR8zmVAYjOVZ41kNZpmYBEV7ch2cbT2Daj0FKN3OjE.UKFohGJ30B1rFoxGHBkI9keWV6fs3CckoovrTxxG2nY7A1TPYZbAhAyVmD.ezR3DYhsIRVmXMv6XZFFV4TdHOYMDVBkMTpLaPoxYAk.VuIPR0YythQFI18fwrqCvvIC.mxEGuWyz+aAaB7HAAQBqpLgknWsYCs0ldT3NIQgwLaJ3jBH0RCjkmMfr7zAxVYAjkeV.Y4z.YkYCHqL87WCk72X18rQxJoQxpyFRVc5gj8yJjr5zAxoh4zf88nbsS2iGPuuqgXqKENs.IMq1syjW3sk3.mQJK130K6cVJZ3NnWKpm5UagBpka9wuHW8oeQtp2yrk75ETDj6tiKK398otS65c0BuSBMsbudHp.QCDWy6kCul2FhqwSiIti300DfM7ZyIGekkqqMCJNu952cLM0t0O4+72mQM2bbMw65Wal.6cRT7m+8+y49c5Or9ro3Vi6k+gu+OOiJ1XLE+l+BaqmLaJteJe7u9U009jc1BFCf2AeXVBxb8odALrnH2VziYVT4MxmWeKp+QA79BYCuxTsbugrCuTz80iWenn+dG8ncziVFVrGvwIpO3jQpMFhadOlvS9p5cEaYOghW8jyoCTesm9zmVAYnb5cj7ie7iEjy8FJX7hSCiWRW4TGpnak5Jn6ipON5p7aSiNseYc3jJ7gQmWwW7TkbbHIDRgS.9+CTQXSc.DUvZVgsna.AUDz4SF2uCM21H0jiNGR8OIf2jwhoLvaJgfm3jJD73CmHDrS8dbavxult3Yd0yLwV+9+cc+.Z+FvDupCvjmiDl6QGNvpVOlssCcOXCl3LXwxU+OVelhQp93kN64HlhS931ytShCFrXsfxndpOfvCdhpaCeR41eyW+0+MU21dio41Z0dxysaW3rmfKAX0+UmS29c0SVAcOpmEzslcnZQdzb5+ro5Oe6sdt8mKdlS6NE24UrR0KdlqPnTK49+hCGwEyRv02N3b5iuTNZ7hm4JwI35Ie4qXY1IeX8ukd7yLW88H.e4IBYfcj5CrGen7t..FoByWHubAyJbea88vypmMduPF3E1iwKZ7F9pZ.6RocapUPBXmWe6G8h+8xPEJWVBk2TuATDHdUID.4cEsIeJdsYeLEJOvfZ0o8Jz73Quy+ZVeEZ5OyuBM22J.59G3Y552m6OlgaP6wd.TK6qR7S7oa6Q+78wrrJ8M43ErkAqu6VaCNYl5zvLXfmnbY8d7AtAiUdL2LmSx9U4oRVuqLy+R8qxyObSNL2rEMeFusQWQhwWW9JfIfVzuUQztbWd+tbWlkZBdeZfGqSGpmJwLAu7Y9uIdiapjEO3+TT0zjBqd5WIk6h2FRH453Qaw2efHEwycJLm54ICeeBTOoX36Uf5Y.usEeW4xnu.B15yXAwkzkNIQLZ+k6kJtbDVkYjWtA6E0EkEuJDWuhdXA6qDA1KqGNV5UgP6Yt6l49+yc2He+w5rqILKNt436MnWCXSEVT.IttTG7VQycAbiAx1Uv1xcU3ZKZ7T3SHypX6bgLqFw7Gj9nmokG+yrj2.HNm6aHn.9sq3sJNu9tXaR0nq+SWuxhUviAv9LKKLbu.DexVmZmCcV9bnyJmCcV8bnyMNG57dmCcd+yTGbWYqOHf2SNTDHr2sEWCatb210DpjEU8Z+W.Q9wy0B
or this one but it contains a preferences panel, maybe this an overkill :)
HiseSnippet 3633.3oc4a07aabbEeok13PFamjlfflBzhoDsFj1TRj5Cmzn3XpOrhLhksfnriETYRWtbH4VsbWlcWJIFaUnVTTzas.8T.5gbo.EEnnm6MEfdqWJP+GHnnm5gBCzqEv88lY+X1k6RshHI0tkvlRyLuO98dyal4MenMsLUo11lVRYxt8fdToLWPt1.CmNqzQQyP5VqJk4aJuz5qVaKxlPENzljCH8rnsnVTCfSokGzSw1l1TJSlIdWjkLYmTh84w2XYEcEfnfpjjtuolJ81Zc0bBpcypumlt9ZJMoaq0Uf54qdKUSiUL0M6CvaB4xR8TT2SoM8NJHYmSVJyycylZNlV0bTb.rjYxkMaNnVGyCL3zeeMasF5TrPEoZff3UulodSDwXsRqzQSu4ldtAaIoLxaF3Tlf6TdU4MzZp4Wefy4kXMPB3Pzej4biBdUDgW4zCuLBvaRN7dY4ZpVZ8bBZAw1KHeKnCypkBzEHBKNsRm6ydc4ULAJLbltqxdz0rfB9bT3ZkKWhLW4xEWLWNnav1gruhEgGJbcBKFY51TmMLa1WWALxB4YskGnOf7aZrOU2rGcSCcfIOsArshY2dlFPgB4EnIewnp58LZXCbta7rtT9hkxkE+PHIH8ktMRCI9Owyx5mYNV8LyQsyLGacl4XoUxWrNz6kalYxx62r00ZRsryd83+jSyPWyfRZ02P0QyzfXZ.7sUMrS.UgkodAUO4WB5jz6SKl6g4xpappnSVxwwRqQeHTG6wlEhdJQluDYgRjqUh7FkHuI.FWR6oXP0uOxOi1fFzfeqkoEofFTe4EIZj2l7FvOt5UKlKKnItgLsM0wWaEBz6tZ0KED2.kPOBSMEJBwkYyJn2o602tSgXI9NlVcUz09XZSNaGkKatrBgon54RUPdHghzn1QwnMJgEycTtbLaZOhlQ.7Xdt8PY45aWQQWuALCWggc6bg.8iatURcdBciQfJah6sL66.8sE75aKzloebf1Afq1oilMZ+uuVSmNHlYszQnk0oZs6332z9BM45gcawrUKPoPyaFrLwtkqGlPNo15lHgGPlgrfK2GVhzrgOAlM9gdwGXQCXheV.SdnOG7T4KQxuNLaI9yUopJCveoVeaGvhwecKpNUwll2i+8.O5csfg.nLfo2BhQq6qxdBSToZQgYt2Tw0kzaZUPdVt+NnEKm6POnV+FLJ.40Aa4PP.ngck8AqFU7tUpSdGx96NecxM.iCZtyUJTYJr9hj2JTMyWm6b5M8G0Wookhil51lENbF.n97v+40pWrXIt2p3hjYlQg4PxkE7X7H6cYsUminq5CoYqy.ONNGkrO+c.23oy8b0uxrKND7lxu0RBFBCcAEYZoI1IUhXy6hhnu.ZqGxONeDDKJySSDAPeg5IC7EPfywKClV73lnBudQQj30emKKabPSEGkoA5opNXHJ7atAcJPodXz+xl8MZZWnh2.EEH5BCDUf3jqxG0Thn.8vBEls9T7BWYVr3bAE4QrsmtAsslwsUFPsJ3XAyGuHVYKHgpkz0K3MBsP9Fs4IRkuHmB1zNXEBzn4P6JRk3.3JhCfg3XtNXA98JwLELVNe9TH7YGV5yNjzgNoCDkNLX0WA4xByDx8CtSZb2Vs.OYgClpfm6oXwYNv0OOvs0NgZsCSPZsHEDAxbgVxfujSz0iVfudD.BRGy8oVXFHOjkFBPj6rhrnAVqLqIvgv+gML0hVWaSCzlhsYSKiV5lGPsZny6TgObe9M0005YSKrKDhAqZAAOWAs+RD2xvLDC3k8Cb7iY3B5H2kz.unC8PHNCmWkbY9B5beVWy91zGTh+ycvQrsZocnaHWbcunfDicDGUvEFLG3AScsxf+vs704keqfxQYYwgjxNf+edeYrCvSEeIryvRXmolqr+L6Lq757EQ1MRuj2JDXM.Ma.QdSagiWExPve0igXNZdFhvlGD.wEyAnl6FAEjmzb47.vEpnqMO1VLbb9viKPmONvXIcs1FzlaC97Bn4ThrazNrJX56yVFlXKuNskSdgAOhJXgSWALWxUcQ5PZ5pUlOYkcDt4AHJaiUVNa5yWYCTv9IC4mvBceXIYVRKjjyZgLhzVHIm2BqIapANy8rkKiqAP.+PaVcZMzz0bF.TA+CmvfgD2N1KeYx2lWFoGlwffSEvjmptoM01gEiVt7zXfXnFdfWpM7Zggu2p4grhCMz45DtNhs4c7adfuvbZZFZzf6BSr1w+mvbZncePGM0NjC4yFPzr8sCGSPfTd+N4PTJrY8X5qoVqVOvafiRCaHyXKaJraxB.R3yRUjLEib+VbMIdl4bOKWLusmJKxZfO2pf6jQEeJQWuFToFWJGw9l8EUGvYfTggfdhEMSngYQr.Cefs7ZS5nrOkYe13zDLyWT69NlAmhiY.mdTu9NCWe.jG3TQM+AEKRdaNKgHmaWIxSQNKOzc2uQ7BttAAWfGAPGdRrVgE02vzoCtfKr2OOOwkIPJapcLs0LZSxiIJleHkDVlrIZB5Mvu4eEN50cpwgh7sn8vsrvGYdTzwcp5Zp6QaRdziHwLvaH5JFNPElIO79N8FLDcyYXCY8olmE3dItEQjX12AV29dpwWHK54GlYF3K6Czbf3oBQ7GnlYvUEx.kT9s3IV3aU1czZ4rp4AF7tQWOdvhTWqt+tSEvXTTAjASoG39dvL3DcrbeIKQT6asOMFAKrk1r7zHfO989CAkxoCJkGETbz5NDRpjN4xF4DH2cBIWcnA8X.bDSLrVi09a.Imt2h9cXU3cXA7Ma5P6rI6EVOvKDRrQfSDfLaTfLW5.xbICjUiCHycZ.Ytn.Y9zAj4St+qlP+WH4NZjLeTjrP5PxBI6R1JNWxBICjiXyn4kWjPlXm9w5DNmIgS+S3LSEDXxmZ5xPpU0.KcDGnXRGo3Zv9OFC1tMri4wfMDn1iAe38CLFrwhCXGYZhLJ3pwywOr6NgS5MLcgOebgFPtgU8XKHFujhi37mZjTLGpaDHMxi1MNkBKBYdfGWbRwymLhXi+jMiW2nUDCPSKHOkycUEWZWPVEenZ7fKVfczhBH5NlNz6ZTfoUP9jnM0pUrs4JMcpUrMi26k0nXrfQ+tMnVh1LRnTlICeCSxIeCShW.lJO9RfPSiaYn4b2dTijt2II2fRIoLWxEU.oNr6e5Rt2+zx8cbLMjzZxtRpv8zRLnKdWfRIIlZrqofIlIjWJfwu02X6+8Gb+WuZZXbR4ktc.m+x+9jO2+7mRNIkbtRTv93ajNvtd.i+4+we6q8adztUSGiqFvXoG26W+Y4OIkLVKfwK7yV7k+s+g4NIcLtU.ia76+WK86V+3TowbxdKeD0G8RIyuPbwyIiqgbF7ug3EWHY7387LbaOtJlckyiohYqqDCy26VqBIYf2nq6PKX3VOpkiFNRNypz80To762Mq7pT68bL6wn0cBPoLOOWoWz61ewKihoyWQ1aFQ+4rkNTbn2.wBGfmdheEm7Sp1gclIA0XUM3vagZetm7jmTFaP3HcwpO93iYUmI2vXLUyPD.wO8GUU.huZ0vPTZmnPTZ9pvdjAEJn43bB3oThNLQsJIvyERxidQYg0XD8kyKBz2IBPK+iGBnePUHLDV8zcQGnm9EkWRWmDTQDuJ3r+SHiox97NkejQfm6EtWxUbqg0Fbdst09qbmRNpuHgIkSvEbhdDWvw6NjK3VU6Z1jhipXu2itJAx5m+WqZ6P6wldQXnB+rGgk2jIcsk5p0roNcSSaMbQRe5p9KRWLfnMdwQu9QBF4wsRuQhCcU0Z.gQcEebL6bhnYCehX1e5m7I+QQyt4xIY1RydxY1ryM5E+B.V0evXZ1ulbvFp1jZoBpUoMUxyhlP96ln87423LaOWXjKImf47LVn5EFY1CBwRF+u3vQLQm.b848GSa7oxQiWXjYoEfqSdzyt8r4RZg0WSNtcXJFOOXTqvdR6gxVoc5PW3kEsrrdRLoz.0vpdeu8QkYhLmWPvYCaV2VogqYcIwZpj9juZmlLaRvmQgsBp3hRdhNWR986nvteBbG6g5PtTZxv+PwTtBfc06EMgrsGB1uSpgssy.c16NccSKsOFqVOTnpz2oZnAqRwF4lz3wud0lzVJ804mxm3tU7h0OuLwFEln247m19WNTL6TgNzu2WjdlzhH1thR.QG+de0iHu8Zk.j9hM7IsNI1N3R.Qm78+ugShGQl.jHM9BERC+lgeIY+mtq3yYFeC2tMfiiDe2v3aC1.FeMPbb2WJuw4zB2WVdS7NzhGumKF7BaN8Ka759hwgML1pEU0I.rSJu1C9x+4gKBkKwgxKHWCBBXuXaFPdMVYx6iW386RgvCzoVIoWx+wCdk+RZeI+8R8K4+tpNf521RwvtmocHAWi1UaaHb1Vrx6YSWyh9Qag8xh0uhId03wzziuwZfQFKO0Tb5awBWVpqYeCmPgGSj59jyveQAS9T8eQAe0M4vDoCtmxezCuHGimm+2kBCZd+tHh1vzvrWGSCMUwN3snNVZsaSsDqLVvyehwqf2EtX0r2YbjZkj3D6UyGd+WuJulai2SoW03IPiOWY2xD73gYhyaaF3w9597k8nAOPW2mwraUUwip8lplav2Qy33rqLZmsbJCHtnL2HIrQ6OcuTwk7vJuG4oavdAYVXwyB90WT1Mf8YBG6kjcGK8rfqcjY2Lw+elcC+Oik1an.yhimSwc52sFjTgJEPhgAUGuCzLmCSLfWtLVlmUgQSVgm.ebarBVNiaiU7Z7qDczUQ0x7CU4WeDNm6yypAraC1ebiYk2.KSp3cuQxxkmtLdhLZenpJ5tmB7OwyyriAOyMF7L+XvyBiAOWaL34MFCddyQxClU1R8cL6xGJBUr4MY2eWlL2z.O1EVTuz+Avxq+S3
I tried to implement animation as well, but I had no luck :(
-
@ulrik I've updated this.
Since I don't really understand how thegetBounds()
work, and the last version didn't look right when changing the Attack Level I changed it so it's stable.
I also implemented the Decay Curve visually so both the Attack Curve and Decay Curve can be changed using Shift and dragHiseSnippet 3763.3oc4as7aabbFeok2jPZaEGjfj.TTfoDoFj1TRj5gsSTrE0CqXiHYKHZmXAU0jk6NjbqVtKytKkDiiBTK5gdq8VQtk+EBJRAJPQgPaAJJPNTf7OP5sdzWxgbx86al8wrj6Jsh0N0tkvlh6LeO988Xl4a1Y20rsToNNV1RYxd2dcnRYNqbsdltsVrkhtozsVRJyOTd9atTs0IqAM3R0H6R5XSaPsol.mRKzqihiCUSJSlQdGjkLYOsD6yCmaAECEfnvljjdOKcU5J5s0cCacspuqtgwxJZz6p2Vf5oqdKUKyEsLr5BvaD4xRcTT2VoI81JHYmRVJyycCMcWK6ZtJt.Vxb5Erz5Uqk0tlb5eOcG85FT7hJR0.AwadYKCMDwXqRK1R2PaMe2fijTF40BcJivcJuh7p5Z5AsG5bNOqCRHGh9iLm5nfWEQ3UN8vKi.7NMGdujbMUa8Ntg8fX6Lx2BBX1MTfPfHr3zJcJsef7hV.Elti2VYa5x1vEAbT3xkKWhLU4xEmMWNHL33R1QwlvSEtFgkiLdSp6pVZcMT.irPdVe4A5CI+Fl6PMr5PWyz.XxWa.aKZ0tikIbQg7BzjuX+p5cMq6.btY7rNe9hkxkE+PHIH84WAogD+m3Y4lmXNV5DyQsSLGqeh4X9EO4FBvxVP.O2DSjkGpcLz0n1NYuV7exoaZnaRIM5Zp5paYRrLA9VuFF2PUXaYTP0W9kf3pQWZwbOHWVCKUECx7tt1506BiNvf7jPBWIxzkHyThb4RjqThb0Rj2DviG0cTLoFuGJBF4gcnC+pgkMofNzd4YI5j2lbU3OW5REykETF2VF2g5FnvBgpdS8sJElsAWgNElZJTDxlylUPui2oqSqBwR7ssraqXn+wTMNa6mKatrBI2n54RUPdHghzn1RwrIJgYysetbLaZahtYH7XNusQY44dWTwvnNLuXgA87bg.gx0VOo3mPjrOnxltecqttP3sfe3sPSl9wgm6BtZ2V5Nn8+95ZtsPLy5okPO2jp2rkaPW6HzkmG1qGqFM.kBcuV3hKaVdqAIDS2X5qOZubLz5XXghbWxDjY7ZZuRDs595r9OyOOBuzDVVgkXkGxM.OZ9Rj72DlKF+6RTUkd3Op00wE7L3OWmZPUbn484eavyeGaXzBJCXxyvzYjBNMcDlFT0lBqKrlhmqqy3pf7rY+FhYvhF1tPJODEzMahc6fsba5t05VmwDnhViUd7YPF1CjKZsWbGvog3YyJaQtNYmMmdKxbfECc25hEpLF1dQxaEoko2pHCecF+i5pnYq3pqdWqB6MAf+.d3+8xaUrXItKr3rjIlPg4mxkEbj7AFax5aKe+uV84A0v726QtT.BmbKl4hQRTQAhqE3riWXhbO0VWbRnoAs.lFYMCeMFpbTnDM8FMHdgMxJPG7nK7yAL4wBTQIRAs5iARiqfqzmgSzv7gRDGtXSBzdXd5XL2i2Nmg6khEfy..rECPdY..lr4oi8I3VaUTT6h4L4xxFJpo3pLNvCU0Ey9ge44KUf7SngN33pEr5Zp4TnBVMP1liWm1T2bEkdT6Bt1vL5yhM1.phadCiB9CvKjudSd0a4KxofMqE1f.M5tz1hTINlth3XZHOlqCVxemRL7g4x4ymBgO4fRexAjN3n2UT5kBmsIPQ4xp2fTPTNSEYAC9BN8uZzL7UifA1jVV6PswpVd.qzEfHu4DYABVuLvDZO7+3.SXn21wxDgRrcaYa1vvZWpccCdLA9vlyiGVgEqfIGFiOSaXu8B6sRzdmXB1eP1WE7JiaiqMgIvPVztiUfS5Emrnmp5EktdL5ZMHcb+7MLLz63PYIo.o9DE9KHEeRNG66sXJLqnKcOnLBblZxE3USvyUaa00gd+R7+tANvrQC88Xgq3yLPAIl1INXfKLX5ycG6xkgXg20Wie8aEdc+rL6.RYCH1OcfL1.3oRfD1XPIrwXSUNXsBlUdM9xRa1WFh+ZNXKAtcbLpPsIAqGM.y8WgiHr4IfPN4T.p4tQPA4IZKjG.tPCsc3CGDGJLczgT47h0yan2zjpcWvmW.MmRjM6OfUA2twjkgfddCZC27Bi2DUvLGuBXtjK4gzAzzkpLcxJaeb5MHKa0EWHa5qTZUTvAkgETpDcGXQdV4RjjqWhbDELQRthIVWNTSbB6IKWlujjsRSVa500Mzc6ATA+CmrhgDu.6Et.4GwuFoGlshfSCwjmpgkC0wkkiVt73XhXjNtuewR7Vg4Ltk1drKGXny0HbcDa2aDzcu.g4pYEYzf25Qr9w+mv7oncuaKc0VvbbrYCH5NA1gqEHPJOtS1CkBaFWl9vhBtu+.Gk5NPM41NTX2uE.jvmnrHYLF4A83YRdSiw7rbw719prHqC975BtSFU74977ZPi5borO6a1WTC.mgREFB5KVzLgNlDwBL7A1htCokxNTl84fSSvLeQsG3X5cLNldb5Q8F3L77APIji0u42qXQxayYIB4b6JQdJxY4Ad6VuOufmaPvE3S.DvSh0Jrr95VvNAf0pgMd56It.tdhZKKGntYRdrnx7CnjnxjMQSXz.+l+UzrWuoFGHy2lxJSmOxb+9G2oZnqtMUi7IeBIlAdCPWwnIpvL4Q2wq+fg92VH1Q1.p4E.tchaNEIl8cn0siuZBDxr99AVg.N6p6B4SE5yefZlAWUn3SR42hWTSfU4zRug6RV6ZxCidd7vEofss4LHF6GU.YvT5gtu6OANQGuT74Ipcs2gFifE1LcVdYDvmfn+.Pob5fR4iBJt5sG.IURmbYibBk6FQjqAzgQL.tOSLpVi09qC00t8rAArJ7.VHeSlNzNYxdgaF5EhH19fSe.YxSZlyURGPuRx.co3ybtxINyYpzAkoNJnDWlyTIfj37eS0efb5zApoSNsqlPZWD4dzQxo6GIyjNjLSxtm0iKkZljAx9rIh8KmSn.xi+9fEsTOg6XpvslVPfIeyoW.pHrFXoGwMgMoaC6xvtbGB1VA1r5PvFBTmgfO7XXFB1X4ACo0wJblcKpSjYgvDdTKQCUIby3iRWzivPnCjaXgdVM.wKo3HN+wlEFyMQuOHcj2J83TJL6o0t9bwIEuYv8I13uMxwqazJhAnoEjGyM4VEqlQPVEefZ7fKVfs+rBH51Vtz6XVfoUP9j96pQiX6ySZFT6X6FOZR6ihwBlcaWmZKZyHgRYNczCATN4CAT7LJU44WBDZYdKSc26zgZlzQCJ4kTJIk47dnBH0kcDgi5cDgKz000xTRWicpgQizRLnKdbsRIIlZriEhIlQjmOjw+4qk42k42OW0zv3okmekPNO36diu3SIuxgojyEC47u7sE9ieag+0boiykVrey7gykNy7lgLZr7UV4O+29hpoiwkBY7OUZS0e6uYmTxXsPF26qa8ge4Ct5goiw0CY75u1WV5g+8eYpzXNY+Esh3iN7q9pylL+BYTOmLtx0Iv+FgWbB9gi2mmgamgUwrmmfgTwrUyFtLpyHGrjVDA74e1m8cyIcuasDTaDdd+dipgQ5cn1t53jHYVhtitJke5+YkWh5rsqUGFsdy8Jk4E3J9b9Oa.3gNxz6KK6OYbvxER6INpum3E6xvmeCG9Kp1hcGpBawtZ3cYGZ84dzidTYrCg68N17AGb.q4LmYPLlpImBg3m+oUEf3qTMJDk1neHJMc0NJfTbEzbbNA7dBiNLQsJIvyYSxidNYgk2D8kSKBzq2GPK+yG.n+zpPdLrvs25cPj9Ekm2vfD1PedUvY+WQFSk8MPbJOxZ3cB2q0uBa0+nav1fKum2pA86KRX8fDbAGZzmK3fMGvEbqpsszn3vR1SCTakPY8q95pNtzNr4mDFqwuSuvJqxj1NRs00zLnqY4niqOGPW0ec5xADswyczKckfQdPizaj3PWU85PZTawGcpMNTzrgO8Y1vLD+AQyVagjLaoIO7Da14N50cCAV0ObHM6WUNbefqQsUA0pzjJ4aQiH+iSzd9l4drZOKIZORlOSXOm8HqQIgvyyXC8N6QVNUBgr+mY5ErxuPb8McGRa7oxYWN6QV1ZHtN7Sd1MxlKoBEdU431rtX9buiphgCaNP0WMqNDK8aaa+nXJQCZg07N9aIMyHYdAAAmMpYshRcOyZTwVpj9hIallJ0RvmQgcUq3gRdgaiJ+9sTXmtEdyOhDPFMMa4YOwRHCgc060eAl2c.Xe8TCaG2dFrmx5aZYq+wXyFQRUkdipQFrJIj4JKWd7JINV70qpQanz0feiVCa+7UExy6rWD+xyebakaOw5rEBku4iSeRZQDaChIfnCd2u+Qj+1NS.ROdSbRqShsY1DPzg+j+a3j34iI.IR8mTPZzTsw6DFz+3Mc5XGz+5QGz+My8e5f9HKtgC5G7kF37xAO69huOC3KwgWGnlDewAvWN.S.A8D0ySjWxgzB2WRdM7PoiGumJF7JI8DGuduxHmS9FMZPUcCA6okW99O4e+PDgxnbnbF4ZPZH6U1fAjWkcM48wmfj2gBInnSsRRuJOGz6k+Go8U4oSpeUdtipKn96ZqX5zwxIhfqQaqeWX.kiXi2ygtrM8iVGixhsunE9rlDSWObtkAiLVdpo310lktLeaqtltQROFI0wj3ekhJG26ryoep9UJ56uIGFIcdyi4sd5E4X744uXZLn4+aQDspkoUmVVl5phA30ot15MaRsEaLVvyeNwWDeDA7uQ33wLvdU.DaUfXe5vi.g2xJ3In62Ld9F3aTf20UwiPfINuF9P7nA7dT08G8g2zeu2z.ulH3sy+FpVqx2j2S.msbJSHNmr2yROaz9S2KULpOV4QjmtA6YkYoEOK3WeQ4f2shmAbriJ6MV5YAW6QVcyH++Y0M72Hslqp.yhiU2d6tsqAEUnRAjXZRMvSXOyovBC3WWFulWUgoF6hGAe75rBdcFuNq3242K5nshps0GnxOkPbN2Wf0BX2lr2t4rxqhWSp3ezf39.Ji6CP+CTUQ28Xf+IddlbH3YpgfmoGBdlYH34xCAOWYH34pGIOXUYy200pMenHzvZ2fcDsYxbCS7NQwx5k922l9TCB
-