How to make Mid-Side processing?
-
@Win-Conway said in How to make Mid-Side processing?:
Take your stereo path, pan both left and right channels to centre so that it becomes mono, this is your mid path, take the mid path and invert its polarity (Phase, been a while since i did any code at all, think it is signal * -1) and sum it with the original left and right channels and this will cancel out the mids and leave only the side path ;)
Now you have a mid path and a side path.This way won't work because when you make a mono sum (that contains both right and left signals) and after inverting >> feeding to stereo; it makes phase cancellation and makes a BIG MONO! :) track. mid-Side processing is different from this method.
-
It depends on what you have first
Do you have an M/S recording you want to treat (FX...) an then decode to ST?
or do you want to create M/S from ST so you can apply FX on the M/S, and then decode to ST again?ST to M/S:
from sound on sound https://www.soundonsound.com/sound-advice/q-how-does-mid-sides-recording-actually-work -
L-(-R) = L+R => MID
L-R => SIDE
Mid is often misunderstood, it is not only the middle of the field but the sum of everything
This is because many people tend to use a cardioid mic for the centre, but it is more common to have an omni... (that been said, there is no better way than the one you like)
While SIDE is just the L minus R
You might already know this, but in case anyone needs to know... -
@ustk said in How to make Mid-Side processing?:
L-(-R) = L+R => MID
L-R => SIDE
Mid is often misunderstood, it is not only the middle of the field but the sum of everything
This is because many people tend to use a cardioid mic for the centre, but it is more common to have an omni... (that been said, there is no better way than the one you like)
While SIDE is just the L minus R
You might already know this, but in case anyone needs to know...Yeah, but I'm a little bit confused. can you share a snippet about that if it is possible?
-
I am trying to work out a solution in HISE but I always lose a signal somewhere in the routing matrix, and/or I can't do what I want with the scriptFX...
What I want to do is clear in my mind, but in HISE I am lost...@Christoph-Hart or anyone else on that?
Also, in a routing matrix, can we only have 2 direct connections + 2 sends? I can't connect 4 or 6 sends...
or to sends from 1 input?
Can we stack up several routing matrices? it doesn't seem to work here... -
@orange then you are doing it wrong or HISE is doing it wrong, that is exactly how you create M/S signal from stereo.
Mono is mid, it has no side, mid phase cancelled from the full signal leaves only sides. -
Just double checked this in Reaper and it created Mid Side perfectly, so must be some issue with the way HISE is summing them or something ?
-
@Win-Conway Can you try that method in Hise?
-
@orange not right now, im away from home mobile, after the weekend i can try, but i dont know HISE that well right now, but i will give it the good old try ;)
-
@Win-Conway I can help about Hise, no problem. But the main problem is in the operation :) I think with a collabration, it can be done ;)
-
Ok I think I've finally found something
Tested and compared in Pro Tools with an M/S plugin, I have exactly the same result
Still needs to decode back to Stereo now...
Also, it is easier to test it with a real song in the sampler rather than a wave generatorHiseSnippet 1699.3oc6YstaaaCEVJNpK1qYnqnCX+X+PqXqHoWhujK1AEs0wwIoFMtwyNMn.CAArxzNDQVTPhJoYEEau.68X+bOB6QpuAaGRQaQ4n5ZsktVzM8i.etQd34P9wygokG0B66S8zzyt+4tXM8qZz4bG1wadLh3n0ntl90MZ1n9QcZTeKyyndmPb5qU6bWjuOtqltdlc35omcVMw2adTMjMxwBGwRS6.JwBuKY.gEwsU0mPrs2F0EuOYfh1qTsgE0YSpMM.7oLFEzbQVmf5ieJhq1LFZ5WYqtDF0qCCwv9Z5yVi187NGSOyIT+CH9jWXi4DE05.CTH6so1c4dL+2ZadLwtaqgqceMMciVQQhLgQhaXzjzkLheTD4ZBAlQVnFOzmYRtWQU2qPhtWwDbOMEua1PuCbBZ2.aDKtmwSGRADpSLOqgCC63SXmqlt9f5teoQKBy53j82YRvegD06a+Ul7m2Xqd8vVrHmcVise9e2LcJ1Hl4h9RVi1z.FFl9vfFmBNFZ1Dw7HurXbmJSbmJyz4TIDSjyR3jno+UOMXPG3PoEFBINNXaXvMzyowMUPWfSySQcvNcEDyDIrHmVWJTPjIRXIN8eBebgiHjBWVU3xiIbEUgqLlvUUEt5XBWSU3ZiIrrpvxiIrhpvJiIbcUgiHzRaNszGs4zYmTN03+n4TIFWNiNVdDWlLodUIo41OO9YzP1Zy7qYLf657Ylmh7L8YXOLsFyw7AlaR4Perk5iYaRG3Rc.hEt4HMt4h2e9bQVBWFMIyBEOlMcHcwSxHobgUymqWfiEGd1z0C6h7v6SaYiNeAez.WabaXS4cMegM05jNjeBuXtWkKatWqZiHNUiqvBVx8YfV4u874LgORuEBcQtKb.xN.uvhK9JgH92PK9wBGZdayh2e9KJonpjWe67g+XRi97ukguvac3UkbQUJcn4chnV9PyG9vHx0N79ft4yat6cZCA7llDGyxILOqIlmkJWnbLyKKLO9GLXgCiIxoqYE4Je9bYGsnkIvKwUcB5rJWm6kXNYkXQjUiGQpLJhbOdDoCeoTIgAoRxQj0SNhHFl0EQjhEjgD0Mh7xJcXdT6EbBF7Br2cgSBPjY3FV3fcbX14lNXVpSCGBaOWrr9yXmQTYGcLXH2hZi7oHEsBOPpLwuW.xU.3tHPthvRCuI+sBjmQJLQf7YkBSDH2PJLQf7qHElHP9mIElHP9bRgIBjmUJLBHWh.xq8RlLfewDH5egDBuV.iAUmR.36O2XDNrlX+iZ0zZSw.LmQHfz3VySVuaqyZHOYmf4OqQcDCAqCc4RB1x3h8XD9tY853Sg1vFV8Qcr+ILpqXMKQ8g.xTspe4nI8WpVUo37aU0C0kP2wiF3Nbi6zL1iBHQCrYuKiANJVEMxWi8NFYkq0+lvf00M5v7vnAv4sNha77DWuC21GRU7xneX2ote3VdXaJpK+t1H09ip0Bf9U7hy82qJlpMFPCbhMWROuM1EiXP6WJ1LW01sEwiws5MORzr19dP+37GAPYAsmCFfqho6ldTe+dvxQLV9pZ2JvqOOVEwoM9Trmebd.hlJVFGd5Y9XN1LwZHrWj1hYov9HA972aTZkkh+c5dve5cG9OWeSAcnIESuIkRuIKmdSVI8lrZ5MYszaR4TYx32olc5tSsIxsEBR8JZViHO8AxB4D+oNTTczdOgqp7zPcvL9sl9J5N4GFP+J++yB8tZ4rvDa4TWu0EdhwqA3x7L4VNmBPY.mvmYrNtGJvlMjabX0lTGp6wTGhUbfC.Hneermpum3BZCFCvsh3bipsw1XjuBx22UcWhCF4EGOLUwhhSerXR4qu1HzcM42EX9owy4k4Snmy6xOz8ExhILgY2i8Qdd9pFhaBL4Uq7gxUGqAHiDa.Zl+QM.oMrgS9IW4uEEXqmA6vuYQ7J01PsK1pao8gBw3tzLP2MguPx.3FKP0PBnvw1TdsRF52BzdW5SvmOj3wDIQEgjC3CbnW+Xhj3m4q81xBVCc5sI1x+6H+fQdnFIO+788v8yWmZEL.JQ1O+QsZu2Ns2nYyFOcm7PHDQdLwGWJ+FAPwuby8y2Iv9DzQ7dDrOpIhWr+RmgNUqdfqMwBRbh2sRr.B2gBy8Ye6MzBYskSWNiA+1C9WuyzODOwn1j5LUeRclpMoNS0uPmoCPVdzirB6JjuMbNAGXCniHem0nIm1r3vlA4GbF.EgbjkEGg6dvQmjsnTpsX4TawJo1hUSsEqkZKJmZKpLAK3U7sQ.iNH79NfQqsBwHz2ZDFQFs+B5n7EwB
-
@ustk Sounds great! thank you for sharing.
Why did you multiply the signal with 0.707?
Will you make stereo decoder too? -
a 0.707 factor is equal to -3db, which is necessary to compensate here since the signal is doubled on two output (+3dB).
Just made the decoder
HiseSnippet 1734.3oc6ZEsaaaCEUJNpM1sYXqn.aCXOnMrMzszTa4jXmfh15jX2TiF23Yk1MfgfLVY5DhHSJHQkrrgg8Irei8zv9DJ1Ow9B1S6k87dYijRxhRQMyJoooqM5g.euGdIuh7du7Ppz0kXA87HtJpE27PGnh5U0LODS2c0cAHrR6lJpWSqS6laa1tYK8CHt6gv6nrxgN.OOXeEU0BqwamZwIUDO+08VAXCvVvXUJJOgfrfqiFhnwZ613gHa66C5C2DMTp0y2nsEAuJwl3y7oBZUTb.V6A1A9H.uYSnondoV8QThqIEPgdJpStBo+gl6RN.Gz9mf7PO0FxELTLYcTf56Sr6y8X9uUVcWjc+tQu6dJJpZcimIJDLSbcsNn9nQ5imQdaAfdrExyGpSbbtmgr6UIS2yHC2SQx6lLv6XNAouuMflzy3KGg.HBNgm0FSgXOD8P4kqyU28cz5hnV6ls+NQF9Kag5r1eCW7mVq0fAPKZryNo18+pS5JcNBDuzQ8khZ8H9THa3Clz3RrzP8N.pK5aMR5TENkNUlyOgiXv.pn99OxenIKA0BxldvXnMafzTupB2TgbEtLe4xDh6KDlHFzfKqFBJDJDCVkK+OrGN3HgPv4jAmKE37xfymBbAYvERAVSFrVJv5xf0SAtnL3ho.WRFboTfFUjQikhfMR.ORRIuQGU+eQzwjGWzg1EQGmfniv5tkzLsbQNzvviqn0wTuE1hzGlHvHnQJS72pZC7wV7Zw5NtPGfKbSRWavg2vCLzwF1iE2bS8mZSr1yD8cvOqz2WpXoenjjMBGXEdCtgU3xOqUSWRm8Do3qqrk9mqW41ozZHqk+jDt5V5yDKM2V528twh0151r1Vtr95yzS+N5czQX85o5+Zh9+V0qTOgo0ElF7v5.go0zA39QcPptYAd2LqQrQG8g0My1KkYymv8WHo6u3H2eVt6ax8gES0AKls6uTR2OvTg6uzzkjWa3zpvTWh8Mv9CeJz8l56Cr8GsFxBhRVbXpwq3.A2Fina3.C4ekHrQVcbjQjVCkQ9TbCYz+X66SkXzclTxQNc5Hkbj.qFs60ysjSgPvLK4LYHXlkbzBAyrjykBAyrjykCAyrjyTgfYVxoXH3KpRNqFrbw50G2tIfBXTXTC0wVwbftTDOXRsIbe1o.h1xpIzaOJwIAyqKG.dEMS.02kyTTTxZJsN5MQdzDbCCaBmxX.4vu4m9s+3deIjt7PhOlJyvsqKL4YTXCJwiJq6WV6id1odqwLYyoNlLgeWs32H8ye96mnzqnfiLSuFE4jU504wN5m7zqyqczet4GliQ9QiR+9edRyOZL2bybQ9waX4GmbFuuT29Y7X71D9bY7V6Lhwaohx7NmIAMNY5aFU37237Nmwjw7acN8MCioKUbZodXowixoorM0SLpKkZTMhF0Y4iZOwnV8zvV7xmOrEufa3KMtgkhlExN47JQvmEbC+f.vqoYRcgfgrkWSQ1YvVfrT9.IiWDWMsyXe0zrsNsIf975BwM6YMVwev.naRs+ZCwPkd6WmFgddOnCDP6vqRMBbpF85slKw2IiMs42a5lt.Kw8wK8BsAFxRBSz1UcIddCXuNh9xKwF89t6vmqh0zCtOz0KoNVBjbpCOa3wdPdhOxJJKKt0hQoxl.Qx+mnUc9ak7Y+MX+YvL7etzpB4.SLxuIUyuIykeSlO+lrP9MoV9ModtLIcA6hiWA6N.mt.1RuTKWAEl8wvBzj7qNH0zQwdBWU5L8lPJuHsmTaOdNWYcw3uQ9EZJLdt6+AY6hQ9nIhuR1BuOqTFSSvW7qIb.v2lFoMYY0NDLwYWBFYkrvAqPvN6.ck88LegVlRY0sh0b8F8f1PfmTkuOtw5HLD3lrdXtlKLF+4hia858zBbWc9dA5ud7k0J7ZzWV6E+T2aERlPmM5tzWwWmuplXm.cNakWQNLrVl7sm3Tw2VI5fK7L2veKHTpV.h46rHtzCaF2Ea4PZOFQLtKMAiLcvo4Fx1wh0z.AFwwdDNWIM0Ok050IODdXjvCPgBKJPdBuiC75GfBE9Q96d.AsHm99H6v+QE9BsxLNRtdk2wEtS4lDK+gLVudk2tauMVq2xc5z9QqUlMEBPO.4AqVdY+9HB2buxl916A1lyI1d6N.OJz8VG.1WoouiMxhsvIN8p3EHHBkM1G7gWWIPUKbethg+7ct3VJNq9tbJG+AgTO5AgFBrbIaaEb3UdP7TBMrvWrHZonVGtrtgh3P1AocCYTX11xhWebVVhW1VTM2VLWtsX9bawB41hZ41h541hEOFK37EW1mRFFraISQ2VAUXTaMpBSAk+UOvjtV
-
Now I am reading the code, it seems to be easy... But I worked two days on that
-
@ustk Sounds very good on laptop, I will check it on the studio. You did it! Congrats man ;)
-
@orange ok, now how are we supposed to use this? Well no use it, but implement it, how to add the buttons for selection
-
@Jay You can use it bypassing/enabling script fx and simple gain units to send or stop feeding signals. M/S processing has been widely used in most of the recent fx plugins. For users, workflow is the key ;)
-
@ustk said in How to make Mid-Side processing?:
Now I am reading the code, it seems to be easy... But I worked two days on that
I am trying it, sides are working well while we process sides differently.
But when mids are processed, sides are affected same too. (I use parametric eq) I think they could be processed differently, does it make sense?
-
@orange They're working separately here... When adding a level control on each, I can control Mid without touching the Sides, and vice versa...
Or I don't understand what you mean? Is the routing of your EQs modified in consequence?HiseSnippet 1855.3oc6Z80TaaDDWBaEvNgNoYXl1NSePcl9mjR.aY.aXxjDCXCgI3fiEIocZYnWjOC2frNMRmfR6zo8iSerO1Gymh125zOB8aP6cmjrNITbsgPHjX8.i2cu8t8ta289sGWSGrAz0E6HIma6isgRxWSQ+XKx9qtO.YIsQMI4anzXiZ6puQs5pGgcN.YsmzJGaCbcgskjkyrNqcx4xJw+9m6uBvDXY.iXII8TLx.tIpKhDwsY0GhLMWCzFtMpqPqmu5FFXqUwlXOpMkQonjMv3.vdvGAXMaLEI4qTuMhfczI.BzURN6J31GquO9HK+1+TjK54lPFgljNsi7YuF1rMyhY+VZ08QlsaFN2ckjjUZFsRjwekXJkFn1nd7iVQtNWfZjFhqGxi0OySSz7Jlp4okh4IIXcY8sNpQfa6YBHwsL11Qf.D1JlksgEAZ4hHGKtccgZtuuRSDwX+zs2wRwdoaTm21avl+jJ06zAZPhL1rJq8Um1c5gvQbhSZK4TZg8HP5v6unwnnggpM.DGz2qE2nxbFMpTWeBFQ+ATR9idjWWcZ.pAjt7XYAMoCjh70jXpxoKxnYaW5Pq1bhwhDpwnkCDxIxDIrDi9eoeLg8HBDNmnv4RHbdQgymP3BhBWHgvxhBKmPXEQgURHbQQgKlP3RhBWJgPshhRinBEqESbOJog06nzkBuir8y6PYj2wov6HHuadEcCGjMIv83pJMzUqaYfaCi4X32HowxNlRGOKCVtXUaGnMvAtMtoI33a5B5ZaBaQ8ats5yMwFGni9A3sx+i4yk+mxKnC2.Vg0faZDr8Sa0j4UoegL9lh6n9kpEuSBtZhbYewEWZG0oinlaG06cuHxx6bGZaKTPcyoaodW0FpHK0JI5+x79e1JEqDS0JbU8+nc.W0xp.q1pUTmYt1q32KI5qEX80LZQZdxOZeMSqDpMer4vBwmCK1aNLCaNnyLjESzAKl9bXo3yAeU4ygkBlCh6RL.VVDGr4Ms759bnysUODX50a2j5NEOMwDCVZBr0FVHxV1v.jXwbfDYG4iDxUSpmME0PJPPJB.h.1tykjOhAVmH4ifvRgmi8RS9jIPXpIexFHL0jOJABSM4yUBDlZxmwCDlZxmIBDlZxmbABeUk7YU+sKZu9jMpAH.JXF4.dzcLanCAwbljqAOjVOP3gW0ftGPv1wvfMtuvqpnCHdNLLi7jWSnzPsFxkDCkXPSXfG8gI92O92+q6+LHY4tXOKhHV2lNPgpUTu029EUahcIB7pl+Om4Em4CISEWm7.hI9CThlQpW7H4OUgWgNGoFd0yyIsvqKhy1O8gWWTmsOduR0QrCkWOz2IGM.YS3gPy9VgdMHMcrXMUOC0lreDiutZJ0vmLnHyfETjRfP1At3PlgqdooX1anvWXuLYv7M9KOF70UZBFkSbTNw9kS7jXFzG.LCeWmN+wffY3WlZ1alDyvKVGb6QXFdGK93zee.uVgjOPXFzGgYXDlgQXFFkS7ctbh84NRqAeo2QZY4ym6HMeNwapb5X24m3c8oUjcYerapbZc06ptI6t9zzlLetIE5gkFr6mTWTmJwF0kRLpZgi5LrQsEeTKcVtUwwuXtUwQ2g3qs6PLe3pP5AmWMT74wcH9w9BughNwAB5R2d04Qm9kEPC48ozdU7XFrG3Gy.sbBSLnMKuPTydQ0U75zA5Dm6uUkOTIKIwtZfk2BZCAjFrrT8DNQ0VsV2A6YmRgLr+S6a6.L3ufCgIzVVPZPXr1tpC10sCc5v6KWwV2zyYO1ZUDmVTviNtw4QCfDCcXQCOwExB7QFgQYQslOJE2FvC9+LkRyOa7uC2h9mNSy94Rqxo8UQa3UozvqxbCuJyO7prvvqR4gWkJCkJISXmavRX2.XSwbAMEZ4JnfnOpLeNwemJBMsmuG2TE9e+nCIrjztBss+Xtjuxn2zy+WcWE6ecWhW.QtPazu.x5VzZFoYj6UGSGfmIIja7zpMvVX68wVHi3INnIB1aOninsm5DZYBgl2JhyTUaAMg.WgLeeZ0MQVPfS77gC0Zg1fuVzu8qOTw2bUYmEn91wawJyaQuEqW8KcuW.XBU5n6PdCee9ZJ7SBTYnUdCoXXkTwaO1YBusTXgKrH2feyATJmAZwNYgeQvl7K9Rvk1kBDiYRiQAS6WMWW5IVzl5SPAN1ByvJoH+4zVuI9gviCId.JfXQtjmx5Xeq9An.helM28AnEZzqgLCdZqOVo.Eijiag8bf6UnF1vqKE0qagca1Zq0asbiFa7n0KPWBAnGfbgkJrrWaDlotaAcOyC.6xvDataCfKA5L6QfCkp4YahLnab7pW4S.eOT5XezmLkjOq5VsYL59q2czsTbd8Rtj5egPxmrPnt.CG7tF9EuxeWnbNT2WKt2RNkFLZUMIdQ19gccoPX10vfkebFZfW5ZTZn0XtgVi4GZMVXn0n7PqQkgViE6iFL7hK6Qvc8OsjxnYc+LLx06kgIiz+AaLHA.C
@Jay orange gave a solution two days ago in previous thread
-
@ustk
I added a saw synth with stereo delay fx. So, delayed sound is side, saw sound is mid. If you look at the MID EQ unit, when you tweak eq, mids and sides are changing both. (actually only mids should be affected)
If you send this eq to sides, only stereo delayed sounds are affected, that we want that. But it is not working for mids. Am I doing wrong?HiseSnippet 2068.3oc6ZEzaaajElzxrNRIonsvK1cA5AVfscSpiiDkrsrQQqkskriPshUDcSJv1.2IjirGXJNLjCsWuEK1db+Ezy8XOzC8XOleBEn.s2VzeB6+fsyLjTbFZFWIG65zthGDz79l2LuYl26MeCG10GaACBv9JpE28DOnh5MzLOwkbvFG.PtJsapn9FZcZ2bOy1MaoeL1+Pj69JqehGHH.ZqnpVXKV8TKNsB+4+t55.GfqELUjhxCwHK31nAHRpztM9Pjiyl.a3tnAB0dgFssvtafcvgTapfVEEOf0gf8g2Gvp1TZJpuRKaDA6aR.DXfh5zqisOw7.7wtQ0+gn.zSbfrBFJlzFJR7lXGalEy9uxFGfbr6lL1CTnMZ2zYhBQyDyp0AYiFJOcF403.5oZHNenN0YYdFhlWkbMOibLOEAqa5HqiZDX6PG.Q1xXKGw.Hrqjk01k.cCPjSDWttRM2WWqKhXcP916T4XuzEpKa6Mdw+lZs52GZQRM1o017iOuqzigi3Lm1VJp0CGRfztOZRiUhFFp2AP7Q+cCYipvKnQk67SbOF0gJp+46GNvjFfZAoSOttPGZGoodCElp7xUXkYKWlPWadgoRAMXkUiA4EJjBVkU9+QeXfCKDCVSDrVFvEDAWHC3hhfKlAbIQvkx.VWDrdFvkEAWNC3JhfqjAznhHZZoDXCI3gkTFWuip+lv6X5yx6Pah2w4v6HNuaIMSKejGI1835ZcL0a4ZgsgRNFQURYpomRqenqEKWrtmOzC3C2E20AbxsB.C7bf8n9M2Q+INXqCMQ+C3sK8YkJV5eVRPGtArNqB2xJd4mVqaVRm9jH3uU4w5uqdk2KiTCQorGY3pOVetzR0dr9G7AoEW5wuGstkKqu8b8zee8N5HW85YZ+k3s+cqWotjp04pF8Pa.tpKoCbs0qqOeM60iZkLs0hr1ZdiTMO8CssluWF0VPZLrn7XX4gig4YiASlgrblFX47GCqHOFhTkOFVIdLHtJwHX4R7wN2xMbvSf92Q+HfS3vUSp6jbZhBiVZhKkTCht8mJ0f.X0jcYdtoFJDClapgoiAyM0fVLXtoFdkXvbSMLSLXtoFtVLXtoFJFCdQkZfshCcIzV8iZ2DP.TpFpwxnqXdPeBhsTq1DdDksdxVKMgAGRvdRLjlIB75Zl.RnOiQGO0x0z5n2DEPj3vEWEF0tHRb+zC91+ypOBRVa.NzkHxDsqOT3rD529S9qM5hCHBxZT5Gm+YY2B6b6appNhrT+iZoiB8qdt0mqPpDGhbCoF5sjWH0Uwtsm+PpqpcaKlDvrQn+QvVOMIhncS8VOPxSgtbsIxg.8CRxlsNfutv8a9xu3KdmFLAFwB97u9oOiKnZpm02sJSPM4ScymmSD7ZMtvBSl3u8xn+1yMGr4HjC9S62+GFkbve9r28VYyA+rs.2YRN3+OHl37ehmeUo0LZm3oI74dhmkTubNwSohhm6XNIF7hL2MpvntyN2wblTR+ayXtaXbyREuoPKrxncZCSQcpK0qqjoWMR504Y8ZOduV8E4LByLZ4.vtscQjc7fwusVoobQwoypIRMTFZSoUbxYN9U6LGkRlExO375IvWFm43Mi.eCMShODLft7ZxiNi11iFxGUx3h3pI7F4qlftcoCFXyxKjVMJcsv98g9xR+lF7tJ6VtdMhs7dPOHfzgkkZH30Zzq2V93Pub1nl8dy20GXwuOFgAzNtPZPnTc2vGGDzmNb3sUfXs6F5uOatJURO3QTpoxxnAPhgNrngOJ.xB7QVIQYo0l2KU1EvC9easpKbW4mi1g9S+4X+ckM3kiTwX7Uo53qRswWkEFeUVb7UYowWk5ikJmyD1c.dcAzkdgZtNJN5ihEIQjtzP2Mt0IbwbSt0smKqzBil49KPftXhMZhXqNsbOhldhJI5VbaB6CBcHIRkSU1A6h8N.6hrjSFPCt2eenunsm6.ZMBglKJUxrM5Acff.grY+kFaibg.e4bbi0bwEzgI9SZQlqNK+t9uOtszB+N51Ru3m5d0XBB5zd2m7R957Mz3Y20YLPdI4.tZ4xgdpWHNzJIGFgE4F+eNIQ0BPW1VG7WdgCkOhinKc.kbEyjlhRPN5DZCn6BQqZTAJYvdXF+GM02gV6sweH7jjB2CEWXYNxCYMbjUeOTbg+EarGQ5Jwn2D4D+wm7.sxTdO9Ak22Gte4lXqvATlrAk2qauc1p2Zc5z99aUlNEBP2CE.qVdsPaDlodPYyPmCA6w345rWGP.A5e2iAGozLzyAYQW33mHkO.h7Po88wu0rJQhZ4ZyDL3qdeIenYSdGPOBbDj+Q6vce9C7x8w9Cz2B5B4ubnyhW72cwyKdGKB0DnzScC7vAPCIBpxXUEwZBIgtxUORjTsXCuMoCOCQlxIBqJJjRbQpwnkkZoNhLW+oUawc6LgzQi8NAVzAK+EqIR6NzI.9HjM4.CQESEWUT74711kISHT+b1xSaBApqJBTUmPfZBApey+4lItje8HaYFpmtC3j3KTf+e48O3hXK8aC6SDcYGBzCs+ABHuYiMgP6mP8XDznQsZe+pIxEUfCrM93tzNbSe3SG1N+6uuw8PmRpRyFYxiuKbfGltgnkjm2k0EhcovMZjSbRG5u7ceHWJSIStykKmuxLky905pd5Wq6.fkOdOqnWEOKIx03RndGtbdxE05vJqanvuxfHOnATtG6YYwRrMO0GJeMpN1ZTar0XgwViEGaMVZr0n9XqwxmgFLhdqERvChxJPEzsUzYqTaM7rUET9Y.c7v2sA