HISE Logo Forum
    • Categories
    • Register
    • Login

    Free LED - Activity Indicator

    Scheduled Pinned Locked Moved Presets / Scripts / Ideas
    panelledanimation
    12 Posts 6 Posters 450 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • HISEnbergH
      HISEnberg
      last edited by HISEnberg

      Just wanted to share an LED Indicator I put together today. It comes curtesy of a script that I believe @clevername27 has posted before on a VU Meter (can't find the link) as well as @d-healey 's video on LED styled buttons

      For this one I just mapped it to a gain node but it could easily be routed to something else.

      Led2.PNG Led1.PNG

      Enjoy and let me know if you have feedback.

      HiseSnippet 2181.3oc2Y01TajbDdEv5Xzcj5tTWpKebJW4CqHJXsB33HTjCYIAnJ.RkjNewkKJpgcGIMm22pcmErxU9eZ9P9Ij+AN8Ly9xrn0XLmOebYKaX2d5tmddlt6o6gAg9VjnH+PsJUGOOfnU4y0GM2iMq8LL0SqWGsJ55NDasmMO.GEAuToxxGwGpxpqnId9ue2yvNXOKRNIMsm6SsHmPcorbpCN3ePcbNDaSFScU3dqC5Y46012wOFLik0anEfsdEdJ4LLmskz0NFGMSqx556t81lX6I6LwbSycuzdhEYycZ7MasSS71e6jI6zvbqMs2YxVfQ9nt1Tle3HFlQhzprxy7smOZl+0dxI34zH5kND9GlZifYVR9PeGa9RjSUq8Lpi8fT7IRCPhA4n0xRz5qzOkZSynmiZegX.TtDp.XkkJZdKWv7LUMuFJlWIlTEESZEoI8k5irBoAr7Q31ymo2yiQBmfg8IUSQxq1R6uldaefCO1Ft3WQNLD9HSBCyFMpifeTaupUe5SQ6m8fNoaGTqy5cZqw85elx.b1FOiFgf+4hCBH1HlOhMifNEGApEwchPt91wNj5nKiYHJCY4G6Xi9w3HFBGgH3HpybthtjfBIAwgA9QR8.ZDg8li7AEFhlD6Ywn9dHCg9v72qiNsWmdHxUvJpNhvr1n1Zbam65EVE72f43JbHhg1G00aJ0irgUHA1NDLz+xejXwLfk6ZJ7NvyokG0UnePrT7ZJg012Mv2C9v3IpL8jZ6oJOeImr52GIhx3x1cxD9b8D4HbdDhkJXmtsa8hKF1ZbWPnFar6dH.P5PrvyQCAyMksQm1u+3i6c1QWbXq1i6ODX1D8WAA1YagDGReM.cQt9.jQ8lB1iSblvG+hQi6Nr6nditX7wvuOt+IcDyVCEYmMmaejHXCUHb5DOnaWNylaCbyMaPf1wgg.XfdNmun0pFRlhrhCOA1MbNIQwEoNr.UoYRrKQfBCkKkXZOAPPzQeeOo8Egl3GpX0qUkuG3.7bTLUXY4Z9libCE2gLAbPPrq8AWTGHxSnZJO7HvW5ukBkN9Wyyjw2gU8D3azFOgxHtx7bJdFynSmcWDoYhaA0ygaLYN84lAQnFCvDpKzZcDD7BoYpg9o0phfGGeKrSBQX1NECdfgXuoDCIs57EMDnuQC9TwkHjvhC8PRKHZCW5qKQ8.uuIam+RpUQjIyRWzzs3b2SkYiHFNjGv5Y+wy5E5D8WPFfVgXBwm0PqiRjCdK6EiMAFZlQol5Za.1i3fxy.Xz0wgFDQPWSYyP1y8vtvZW3fTDAfLOE1XiHrAPXNaneLCvCiT7vXZ1Zk6PhgEIDrFwcDNgu1elermcjQ1xiyjmenK1g9uH1hDpEfkhwJKBOb4sjgpoNfk4LIdodteZ8aLoR2RtB4wfPx.YFs+FpeLOU2zPrMkmMHZF11+ZQnCmqofpQDAqRomxAliR39PnTAiWl52wQ3VNAyvFYTlAQF7kz10pivur44nmhZxeaS4aRUVxy6VkW5.kcvUYSgJabN3xHz75.sM2YaNQSIwMUHxBiImmBoS2XBX3INFFu7lZoQIJQRKggcqmOvtmW.Y644QxQtO.HScKVt+WDwLO+CAsJpsFar0B3+cELLaVBZjPLgEInuY5GEAj1DtypvuzA9+OKuns9YgIKnNyaCTrCwW+wDTpiZJioeC+GUYb.PTESariykfOcdBFH+RVjOOz8DxDdAP4ElHJlQtCKxZXXVaODpfLC4X8sKjnNwTYBH3WkcPd5jppzLFFlvfXFRz.cBxPQC+875HRWK7G0hKx4dOw3uAQbfjzkw756qTdUB2het3TOTYpGV1TOTcpG9dl5gkO0od1sBBblKOc7FmklU.mf0EpSprCTKvS87Ue8EpYr1dKp0g2AsNLWqCKUqB0V3HPnbd9IfPE1HtaqnqhQDlnAAlnDcvMleNsvQ1PTjYs8xJbv26LeFoO3PW8mptZUXS6lCMYRoiwqYOz2wAzYYCKmsaQPCuX2KIPhOQIlYLBMeUriN82cGcpMbZIagPgQeuddTV+.h26pMTsj9Nf299dcvLLuMvDZ.eAjPFkaBU5PtBZBW1T3p5cHQuh4GH3MoYEsJ+NlXz0RaYjWgiFEZL72qqtco8Z0d6mq9wLBOXMmxKNPohUf7id6+V6s7AxIyo1XcIUsE6eE5bV1EWw1oEoaxZuqPOrbWSuHJat5kR7QqG66pI9k5CnLqYkaiKUhMB6a+RXiI2LwZ5xxvxMvUzO7e9I3ZHdb18HQcCbHGkN8etddGt2x0Ioo0g3fK.S+.0lMS0EqjKbpm2Ufi+.H+T3MA4kuyqRyaeUtxc1SPTK9CZu0+ft.lenajhs9G1F4WnCoM+UxDkcPNE54KjB4n0OK1cDjg0h.lGztfC+jnJKwOyP9cC92biXDzJr3i2BOICZx+tRxfloCpBCesDF9L8e.eEQbAVBD3OJ9F5qyEcDAZRgiOleLtw3f67MF22hAlvXnu2H9kDZpp4QDW5X3.unBTugDMKUhlEyKwh8JpZIoBbwghCAnPguGePJwlpDA2lBJC9tflNkpbr6+4655gAmhQDXka2OxB.FNNqhpChgpMEQLlpBlStoJ4iwg1vdn0skqbk6Vtx2y8l+nGb2a9uAJ6nvYpqlZixyT6BG14.U5kkIeBN1gkRsXn2o9d9Ay78nE1nGRfLFSmRJ3+T5BpEiAsPlS4qNXHwgfiTBG+yGbB0ifCAbhbOwByO3+LGkte8mzklKhmu.8a2xEW9+qKW7tG8Ao.eXuK905Pp3lHwVI5Wm8xOE0.7oXNbwVg9WXI6ylGz+XAEXc6I96.uJz+.7MxTSz6sJX5BGYbgkUQUsffMuuBt48UvstuBt88Uvu49J3N2WA+12uf7SzaEy7StLAnxlAcEWbQkJxhZDgIZ+OvkIPQf
      
      // ========== LED ANIMATION ==========
      // This is mapped to the Master Gain module, but it could just as easily
      // be repurposed to map any other function (modulation, MIDI event, etc.)
      
      //Timer
      const var t = Engine.createTimerObject();
      
      const var PnlAnimation = Content.getComponent("PnlAnimation");
      const var GainMaster = Synth.getEffect("MasterGain");
      
      const DECAY_RATE = 0.9; // Decay Rate
      const SMOOTHING_FACTOR = 1 - 0.75; // Fixed smoothing value
      const HYSTERESIS_THRESHOLD = 0.0; // Fixed hysteresis value
      const SPEED = 15.0;
      
      // Current Values
      reg curLevelL = 0.0;
      reg curLevelR = 0.0;
      reg smoothedLevelL = 0.0;
      reg smoothedLevelR = 0.0;
      
      // Last GUI values for hysteresis
      var lastGuiValueL = 0.0;
      var lastGuiValueR = 0.0;
      
      // Define two colors for interpolation
      const lowColor = PnlAnimation.get("itemColour");
      const highColor = PnlAnimation.get("itemColour2");
      
      inline function interpolateColor(low, high, factor) {
          local factor = Math.range(factor, 0.0, 1.0);
          return Colours.mix(low, high, factor);
      }
      
      // Cubic interpolation function
      inline function cubicInterpolation(start, end, factor) {
          local factor = Math.range(factor, 0.0, 1.0);
          return start + (end - start) * (factor * factor * (3 - 2 * factor));
      }
      
      // Panel Animation (Ellipse with dynamic color interpolation)
      PnlAnimation.setPaintRoutine(function(g) {
          var a = this.getLocalBounds(0);
          var normalizedGain = Math.range(smoothedLevelR, 0.0, 1.0);
          var currentColor = interpolateColor(lowColor, highColor, normalizedGain);
      
          // LED Effect: Outer gradient shadow for LED glow effect
          g.setGradientFill([Colours.withAlpha(Colours.white, 0.5), a[2] / 2, a[3] / 2,
                             Colours.withAlpha(Colours.black, 0.2), a[0] + a[2] * 0.375, a[1] + a[3] * 0.375, true]);
          g.fillEllipse([a[0] + a[2] * 0.05, a[1] + a[3] * 0.05, a[2] * 0.9, a[3] * 0.9]);
      
          // Inner LED glow
          g.setGradientFill([Colours.withAlpha(currentColor, 1.0), a[2] / 2, a[1],
                             Colours.withAlpha(currentColor, 0.4), a[2] / 2, a[3]]);
          g.fillEllipse([a[0] + a[2] * 0.125, a[1] + a[3] * 0.125, a[2] * 0.75, a[3] * 0.75]);
      
          // Center highlight
          g.setGradientFill([Colours.withAlpha(Colours.white, 0.4), a[2] / 2, a[1],
                             Colours.withAlpha(Colours.white, 0.1), a[2] / 2, a[3]]);
          g.drawEllipse([a[0] + a[2] * 0.125, a[1] + a[3] * 0.125, a[2] * 0.75, a[3] * 0.75], 2.0);
      });
      
      t.setTimerCallback(function() {
          var GainLeft = GainMaster.getCurrentLevel(1);  
          var GainRight = GainMaster.getCurrentLevel(0);
      
          var peakLevelL = GainLeft;  
          var peakLevelR = GainRight;
      
          if (peakLevelL > curLevelL) {
              curLevelL = peakLevelL;
          } else {
              curLevelL *= DECAY_RATE;
          }
          
          if (peakLevelR > curLevelR) {
              curLevelR = peakLevelR;
          } else {
              curLevelR *= DECAY_RATE;
          }
      
          // Apply cubic interpolation smoothing
          smoothedLevelL = cubicInterpolation(smoothedLevelL, curLevelL, SMOOTHING_FACTOR);
          smoothedLevelR = cubicInterpolation(smoothedLevelR, curLevelR, SMOOTHING_FACTOR);
      
          PnlAnimation.repaint(); 
      });
      
      // Set the timer
      t.startTimer(SPEED);
      
      U clevername27C ShelestS LindonL 5 Replies Last reply Reply Quote 5
      • U
        udalilprofile @HISEnberg
        last edited by

        @HISEnberg thank you 🙏😍

        1 Reply Last reply Reply Quote 0
        • clevername27C
          clevername27 @HISEnberg
          last edited by

          @HISEnberg Excellent!!!!

          1 Reply Last reply Reply Quote 0
          • ShelestS
            Shelest @HISEnberg
            last edited by

            @HISEnberg Thank you very much. Very realistic!

            1 Reply Last reply Reply Quote 0
            • LindonL
              Lindon @HISEnberg
              last edited by

              @HISEnberg it displays a bit better if you add a velocity modulator to your demo source:

              HiseSnippet 2223.3ocyYztaaibjx1LMV24hbGtCs+bQPK.cNcNRx1WZpg6YGIYagZaIHojqAAFFqIWIsITjDjKsi5g7l1ezGg9FjNyt7ikVJNN9b7EhDZtyNyryW6ryrpanuMKJxOznzxClFvLJ80l8m5IF2XLk6YztoQISSWliwylFPihfOJUZw8woJs7RFxm+2O+LpK0ylkCxv3E9ba1g7IbQNzt67O4tt6QcXC3SzvdicZa660v20OFDiEMqZDPseCcD6XJh1BlFktWKGtvOrufJXQFkV5Y9NS6O1+BOE9ufGwOykgCpYzGXjB7d9tNnDiPMZLl65zMUciL.EqatxunR4+Nyi3N7L34FgGHmfjSgt8nzBEEuEKHd0zEupZh2bDoRZhzRJQ5aL6aGxCD4yfxyWY11SvBGRAyttnnv0XgsWwrgOfgmXsIz2v1KDFjQgUspUqPfWqtU4xO9wjsydHG1pIY2iaeztCZ24XsIPzFLlGQf+MgFDvbHBehXLibDMBXKAiIHS7chcYUHmEKHbAw1O10g753HAgFQXzHt6TjQmwHgrf3v.+HEe.NRndSI9.CCICi8rEbeOhkjeT76JjiZ2rMgcNnQUHLg8ZqtBJ6XjTXYH7AViyogDAYaRKuQbO1Z1gLvcHQnyYulYKr.0cEMb654tqGehj+.Yo1qQLQC+IA9dv.qGpizCWcKc5QUNQ62lH2zfz1Z3PbsdnZFDGIYoD1rUice4o81cPKfnpq8zsHfAoIylNkzCD2Tz5eTmNCNn8w6e5d61XPmd.x0H+HPvS1TRwd72BltnI9fIi6MBjG23LhO3k8GzpWq9s6e5fCf+dPmCaJWspZzNdJJerHvgJINcg61pEhbsMArQwFHnQbXHXLHu.wKZkxgrQD63vCAug6gILtHzdEfpDSlybHnvT4TIW1CAKHY+m2VIeQjg9gZR8JkQefKfy9wbojky4KOykXbS1PH.gHtvGBQcgcdRVywsGA9p3sTSoq+EXhIzCqGIfNZqGxErIpzVZQFi4iFecHodRXA2yEElrf9bwfIYiEHBUjbsBA17BoYVk7qqTl.Ot91T2DfvpcDEh.CodiXVJXUPkF1nuVUboPJBYh3POhRBhVaB+syg8.tuKyyeF2tnkISRmUzsQraqirUjfFhaX8bt8jdIOI+.wB3JrmPNbUxiHIzAek8g05.B0yfrptt0k5wbI4Y.rZ45xChXjK3hwDmodzIftKCPJZAfLOEbrQLQWXatnmer.rGVo1CqQY5JFPRAkD1rFgABGh59y7i8bhrxTODIO+vITW9+l4HSnVvrTbuxrlGjda0V0z.v4ELI+nRdbZkKsnpvRjg3dPHYfJi1emzIFS0MJj5vwrAQioN9WH25fXMBXMgIQUQ8HzvreB16Am7a8pz3NzBuqavXpUFjwvNCTk1b0JD5qpeB4wj53Wqq9Rwx477gY4YtPUDHKqKYY0SfPFImeD.a8mrIBrlB35Z.EgwrSRMoiVaHH3IAFVu5xbo5bXhBVBBOsR9DO8jBV11ddrbK2mfIS2Eq7+EsX0N4SwZUjaUWaiYr+WWiQs5ywZj.LAEkQe8zAEMHMXXvpLtzE9+uonnM9MYSlgc0tJihSH8haSiRERc0d52guJKPCfrJlFTW2yfX57DLP9krc93V2CYCwBfxKLQVLixCKyZXUa0sHjBzzCs0WMQx5DSoIfQeS1A4oKpNSyPnWBBxUHgC7gDKMN7OxqiHUWvG8hKxwdK47uivbgjzyC4GssV4UIXKeO6R2Sao6Muktm9R26irz8l+RmFYuaPf6T0oiW5rzrB3jnNScRy6.0B3TIW6qLSMiqt0rbs20fq8x4Zu4xUIaKbDHTNOdBHTgMACakcUzmIjMHHjknCgw34zx.YKYQlqtUVgC9dG6KXcf.5x+Z4kKCNsKO0vgycNrl8PeWWfmyaZ0pcEDZ4EO4LFj3SVhYFhPyWE6ny7C2QmdCm1pVHzPz2qsGWzIf48gZC0HouC3qm2tIUPw1.SfA3EvBEbTDJ0jcNzSspovkMaxhdivOPhaRyJFk9CB4rqj1xHVgiAGZL7OZp6tLdqdq5S0GLlgaVyg7xczpXE.eu2+eLdONQNXDZ0GofZLa+qPmypt3J1NsLcSV6cE5gECM8h3ho52wvsVO1WWQ7aL6xE1imuLtvbjQvu84PFStYhULUkgkKfKYt2+5N3ZHte10BwmD3x1Oc4+Zy7NbuhaGxvnIykVvL8KbGwX8Pr4b+Qs8NGB76B4mBurQdwqsVV6p0xkt1QBxZw+hNZ8aMkl4uzERoq+Kag7AlPZyemDQUGjifd9B4PNZyiimzGxvZy.wCZWvEOIpzB3YFpwUwwnPzGZEVN38vSxj0vwkRlrV5j5lguWYF9JyegdNSdAVRKv2KGC80MgrOCZRAsO0tMt.3fq8E.2wV.hv.nu2H7RBqoy4KMW8h4ZDwdEQWAp.Vn5sGndZ3c+cRAVWGHDJTfYv3Bb5Ht1Qo+2etkGEbz8Yf13zIxFTVz1oao5FCUPJ2ETSmvbv00Ae.MzA7K1WU9uktd4+9H2E989bcW3Kc81Lb0h2cWYEexVy4dxxBcm4mU4AIme1BNXyEppKKq8PZrqHEZwsYG464GL12iWH.nGCxNLZDqPb0bUtcEBncwbHe2N8XtLZj1Vu+xNGx8XzPvlwtg4zp8I+SZLWe2e1TItDL2.4yjO7lExkTBTYyW.NIab0UoISGRxTmZebo84QrATo3n68vpcPhzyaYyOi4Vzw.4USVSIOjsKT5uZVei0J9bdG30ve.+7oMd8f0G2w3VyidqT.8hWqBnu08j27houiyiAGr7k0dfqRb+Slvgc0IR2M42e+8cQUT2EqwDpcn+o1pap.SkdeIDPu8j+v3KCcfAiI0Lj2dgtgcBb.8o11EY0LDV+lR352TB23lR3l2TB+oaJgO4lR3e6iSHV+ztwB+jqiApiraKUt7RpRHkaYL9+PAXm0I
              

              HISE Development for hire.
              www.channelrobot.com

              HISEnbergH 1 Reply Last reply Reply Quote 0
              • clevername27C
                clevername27 @HISEnberg
                last edited by clevername27

                @HISEnberg said in Free LED - Activity Indicator:

                The snippet works for me, but when I incorporate this into my project, and assign the reference to my own simple gain processor, the LED doesn't illuminate. I'm already using one timer, but as far as I know, you can have multiple, and can confirm your timer is running? I'm using a sampler as my source, but am guessing that isn't the culprit.

                Any idea what I might be doing wrong?

                Thank you.

                HISEnbergH 2 Replies Last reply Reply Quote 0
                • HISEnbergH
                  HISEnberg @clevername27
                  last edited by

                  @clevername27 Interesting, the timers aren't named the same are they? Can you post a snippet?

                  Possibly too, there is a certain weighing factor that needs to be incorporated. If the max dB you get in your gain is less then -6dB, it won't illuminate very much (or at all).

                  1 Reply Last reply Reply Quote 0
                  • HISEnbergH
                    HISEnberg @clevername27
                    last edited by

                    This post is deleted!
                    1 Reply Last reply Reply Quote 0
                    • HISEnbergH
                      HISEnberg @Lindon
                      last edited by

                      @Lindon Thanks this is a great suggestion! I agree it is much nicer display

                      @clevername27 You can also play around with the variables. Decreasing the smoothing will cause it to react faster, as will decreasing the speed. I recommend trying Lindon's version here.

                      1 Reply Last reply Reply Quote 0
                      • d.healeyD
                        d.healey
                        last edited by d.healey

                        Hey I just got around to looking at this snippet. I have a suggestion/optimisation.

                        Instead of using a timer and all that fun, use the peak meter floating tile.

                        Libre Wave - Freedom respecting instruments and effects
                        My Patreon - HISE tutorials
                        YouTube Channel - Public HISE tutorials

                        HISEnbergH 1 Reply Last reply Reply Quote 0
                        • HISEnbergH
                          HISEnberg @d.healey
                          last edited by HISEnberg

                          @d-healey Ah it took me a minute to follow what you meant here, but yes it would be better in this scenario to do the LAF on the peak meter floating tile. I designed this with the idea of having any input (modulator, midi event, etc.) triggering the LED so I think the timer offers more flexibility.

                          @clevername27 Here is another version where it's mapped to an LFO. I included a few knobs to control the parameters (Speed, Hysteresis, Decay, Smooth) so it should be a bit more user friendly. You should be able to combine this with the first version in order to continue controlling the gain.

                          HiseSnippet 3114.3oc6arsaabbcok1Fa5bwIMAon.EXfQefxgklWjrrpganL0ESDIKUREmj5ZDLb2gja7xc1tWrLSQ.xeP+EJPeueC8CHOj25qs+A8k9b64LydYFwkTzJNNNEkvll6LmyYN2lykYVeb.2hEFxCLJU9jo9LiRutY+odQi6Ll53YzcGiR+DyCX1MMt2TeZXHy1nToU1GmqzUV0P74e8g2i5R8rX4CYX7PtiE6.mINQ4idb6Oxw0cOpM6DmIJPud6tVbuNbWdLvGqXV2vmZ8D5H1CnHXWxz39zvwFktg4VarQCp8vMG1nUisFXOzh0Zy52Z8MaR231CGtY8Fq2xdygqCL4OYWamHdP+HZDKznzp2iaOs+X9odxE3gNgNCbY3CML5Cqrb383t1nHhiZzYriq8woJnPCfnGmqtVQptdWyCcrcxFOWscMwDjbLTUfktjN6shF60Pk8pqvdEvRkTXoUkrzaa12JvwOJeFjetpYWuHVvPJXmTYEIrFW5adGyNb.BunZSnOgsW.7PFFUZUudUB70Z2ob4adSxcy9PNX2cHa+ftGt8IcO5AJSffcxXmPB7mITeelMIhShFyHGRCAxRPmHxDtcrKqJYPbDwIhXwicsIeQbXDgFRXzPG2oHgFvHAL+3.ednjN.EITuoDNPv.xvXOqHGtGohfdT72UIG1cmtD1SAIpJgEYUaMAqitdAkA+MXMdJMfDQtKYWuQNdrZVALvbH.3nAeAyJphTb+HO9fPETN1ycaOmIhkAvNUsMhE0gOwm6AOT45p.ccfN4n+DuA2eJpBXgftYd3qA0LDn+DNH5KBYIDyhnOCzfKBODfYPaGlEc5hPS.v0k5qCEFUzLMj65xOUgTnQOw9eWhHPCRpcGND01WWNCBiNCbvdGcnzvxCZnhX1nUtN.CIGnDNgzINH.XQxCotwrvxArQDq3fC.uB2C.BUuV86nMXO0ACEpPl8rfqMSFN3BtCaH3JQhNkCNytvdTPGDPbvMR9bomI.1mwiIVTOh0Xp2HlXWgkH7GrcwS7ne.2mEDMkvDAJRTFfxDCShJOU+KTUT45NQrIxfn4ZuwNiFuLXzLUg8PZfCEB8DBLjWT.X+.2kASIgtN1rfvxn4vFs08fsJ.QafBNNnTk33MZOpUjX8pWq4Fx4Fm4HexX3eFCQYS0YBTS7IaknC6HWYRGpq6.HSfPEpsenrimKply13y8zlOgBUrR8QqB9QfGvZk+ikIvmhYHAH2o7WUt7RskrVHNqXgR4zJEyGqsX4RtUsXYRN24IOyp7A6B4WQpHfhbCTW2XsEKZoALlqXowJmmHglz4HQ3Tmq.k3RbHE1nGvi8rkhBrr3zQ0BinAQhP0UDvt1cH.67w91naItAJBmKgNNSl.aifYfrIKTEHi8MeMfBqeNJ.Q7vhU.hoNOEvY1i8bZKShFOWAQkEPA4r7Yd7JlH5QEHvSUQvjpjgBWr0HR9zkaQcSFKydgA0pHGqJxtUQQHwzEvhhC7HxvNg0l37rBHtP5NKSYEOvwpqZjzJBu.H6tm8KJ9RPQxGPp.zDT5hGWCT5InA+J6GUZA.zLaj0jbM3SbL0i4RxKQnrVjWvlbLjgKpGONBjuJoxWkQo7NFSjBLMriNDssGfxx8vMAgUDUfg.Aqy9rHgqtGOXB004KAOcoOxv.9DwLXRwIoIEyns6PNPcsjp3xrcTTfCTHFqRpNIAXQxyhvHI6pHKXEEFKo5jTNPvTIJYkbm6cTJgKxxdFnplwHUOazNkE9PnrPbUSwNe4SK9TjTNS3rjBPZFxhb6E+nZdhzpyH.JqOVLrrXleM4nXrJmQATaGrBjvwTa9ohvCHTi.RSXBPEHOB8K1OA38f1jp7nzsHm5DMdaW+wzJYiLFxbidvarVUB8QMeL4ljl3uZI+kfhE7Y9TbfKDa.oXSAEq+XXKffvX3lVatANXC4fsTFLJHl83DmkQ0FBr8tttN9grJO5rDodAzPNVB.aUMehsdrhRsqmGSQoMfh8.v8Jv8ZoThp1bY..ccXiG+bn+zIV8ZqOiAYIUOMZVf9IYvDPjVgVoOnph5vPOWgSpK72uKtTq+cQcLC0Zr.8gc.8zWj5ipjlhn4eURpYLX.50.67wVJJeyaTNBUIhpFxxGlE9UM5KB+ArgXug4crLSDOHKLgngSOT4uXjxBfi33ynOIq6hzEUknY.zKA.wJjPAmgjJJT32nzZyGTTItoRH9QsKnbZHMMeEg4FxJD3ab27JSR.V78r7SOE9o2xyO8T4mdmC+zqP9QohXkd2VTNFALUyEyhRwLCQ6sDDsWNQ6M27VZUGDv7whCfroDgi7MtY1gVfNxISKaQTTlQV3v7PgKiW9BWTbI6KJDJqR5xEUxsRcsOfGwNBHOT95UfxfHmcpgCKbtNoMYFT3zxUaAHVwKdx.VfRwyB.MJsp9ArYN+CXS87+rjETq.H2qqmSzQ9Lu4cpfFIUgimOXBWAfFINJt2L4n35K5d1vw1nzaYp0gngfwSOKz+9e4a+PikfHW0LqeLMB7292U9lkh.kMSamQC+u9tkq0dowWzEgF9j+59+Sk0eUI9uQB9mfGrf.8KaJ9cCcoG+.8uQMJsgYqaUS+ySO5fG9r3sZswuczlcDOCeM7Cvo1pyWbRqwGYrLL9qiL9AC46Ev9C5q9Z+92pswG2cGjALJUJwpdr7bXbPmnR6vdpiESdJqWwbGV3Sh39FkdsrlufeqKxhVADK7aZptky3YpB8T0GFyvP74i7YsUNlFT.Vu4VquU8FasQKi7YjSb6FsZsws23VnpHikLWZewbl5qYs0XpH1yhvkPA3kaIT8TmG42usj7W1LAPURekkwGddT9SaOQ8lJp0dBUQw6.yZa6xNlG5HLJYyzMgidMSI8sYCowtQOT2aUrUYIzAJaVlCi1dP1BJgyX9tTErKZdNSNsO0wFzmkLK8mU7rLK86fm7Sig0EH06Y9PFzxrSzTkCQUiKt5xskJmUZqYIbRDv2xDySgfFy7rlZnYe9Genl8Ym4Ze9ksCiGNzAf0zjb+uTWVtlo9YAa3SCnSXfeaWgCY9haL6kmbMyLDUuKGQAcY2sf1Enfo+8.Fbp5Mh8B6BdVVV7sMO1IxZbw73kJfGgXbeeviIWK1aXJaCNmAW0buO8kvcfc4rawzYhuKa+zk+0MyubgEbWlfSGykpol9D4Vn7vwEbamc8dJjj3XnFvfypjWYokxFKVJWco8DD2r1qzdquioPM+pNSJL8uZyjWyDJw3GHVTdBliNjFEHBE+f3I8gRQrX.64A08f0cW5RXExxmqiOiLQelms3g+C7IYxF3ykRlrQ5jFyt09matuKe.0MWY.UpApCl7dt+EISmm.fjAPiEry+aW12hA+k9sX36m89uZ7hGrr9m+zYLGguDcQ0RM71R1zDKOHQSclBENWF6dNXe9A374UQnz+.5UzM2op8ep8mPeJaHOXRRSCYT5.1HXMUG4DFTqU+odVpNf8SOx.ces2s8Abt+tdX4e1pD43wzPrY6PVjFY.xdBWlArCTm2SzRdMxiGvjMvqNdm3vH9jTAP7d3zOh4KZPpziLu050T5.C9p0QuXd94ovjyYeykVZuTzSHyji9DO+doqtbdoK9cLx34hiybB+Q.GuvJTW4+oqP8kclx2WJhW0D27JdYYDB36YltYlrOCRGNaPuK3K12xmR7HqHfENIf5EhuKWMzBRwl3bBzsYn1nmAilEhQS8J3ih8zIsbHMnPUwdfpPAtK2NcvlpCBEXoQL3YMJcnyyTagUFUtOCjb6iBs.ECpm0BRG6FxD0V1PEw7gapN78oA1mMsvYqrX0kKB4O5d8F+QPC5Z4XtRJOJ69bWnsPWNLRZOOhSQJcT8sdGx839i4dNZF5dLHhwnQLM+mBEnsihnp40e218XtLnZ.0SM4.nJXZ.nmXWPcQim62F0BsW+LSI6JtXie3avJoyhxYGBVR3xhNSrykC+3Pl7H5zrX34CnVpFFSxxY.yU2X.wWSVSAM146vog+Byp9+Sv+BLNEjr3U6CT38MgjVMIBSI4GFa4KipkdYrFSnVA7OO48nECOdYwHfb6I9O1vULODelTv0fMARt94VV5jZFDadQQr0EEw0unHtwEEwacQQbyKJh297QDq8Y6Xn6X4dCnFvi2UFqtTVS4kVw3+hOyOXl
                          
                          clevername27C 1 Reply Last reply Reply Quote 2
                          • clevername27C
                            clevername27 @HISEnberg
                            last edited by

                            @HISEnberg Bruv…thank you.

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post

                            50

                            Online

                            1.7k

                            Users

                            11.7k

                            Topics

                            102.1k

                            Posts