Take control of your UI elements
Tags: dml, javascript
Published: 2021-08-17 14:23:39

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zy18spkvt3et050mlv5d.png)

Look carefully at the following code :

```js
import {make, selectBase, h1, unselectBase, div} from './dml.js'

const cssRow = `
  display:flex;
  align-items:center;
  margin:0;
`

const cssCol1 = `
  background:lightgrey;
  color:black;
  padding:2px;
  margin-bottom: 0px;
  margin-top:1px;
`

const cssInp = `
  line-height:1.5rem;
  text-align:center;
  border:none;
  border-bottom:1px solid black;
  margin:0;
  border-right: 1px solid black;
`

const input = (props) => { 
  let inp = make("input", props);
  inp.style = cssInp;
  return inp;
}

let row = (n) =>  { 
  let r = selectBase(div('', cssRow))
    div("" + n, "line-height:1.5rem;padding-right:8px")
    let inparray = Array.from([...Array(4)]).map((elt, i) =>  { 
      let inp = input({value : i + 4 * n});
      inp.onclick = () => updateMsg(inp.value);
      inp.style.cursor = "pointer";
      return inp;
    })
  unselectBase();
  return inparray;
}

selectBase(div("","width:590px;margin: 0 auto;"))
   let r0 = row(0)
   let r1 = row(1)
   let r2 = row(2)
   let r3 = row(3)
unselectBase()

let msg = h1("")
function updateMsg (value) {
  msg.innerHTML = `Info : the content of the selected cell is ${value}`
}

r0.map(i => i.style.background = 'red');
r1.map(i => i.style.background = 'orange');
r2.map(i => i.style.background = 'yellow');
r3.map(i => i.style.background = 'green');



```
See how you can control every element composing this table.

For example, try to see 
  - what rows (r0...r3) refer to.

[DML](https://efpage.de/DML/DML_homepage/page.html?idx=4) is really the new JQuery in Town :-)

You can test it here [ColoredTable](https://flems.io/#0=N4IgtglgJlA2CmIBcAWAnAOgKwA4A0IAzgMYBOA9rLMgNoAMedAugQGYQKG2gB2AhmERIQGABYAXMNQLFyPcfHnIQAHigQAbgAJoAXgA6RCAsMA+FQHp1G0-p5rNOqAZB8ADm7OXrt+9acuYHwQPITG8F5Wmr4gBITwCMTiEHJcwgBMSACMAMwgAL54vAJCIOLkUOTubhgAVlwycgpKwhBgbuSk4lrAWkEA1vB4WvGJ4gBCfPHDAK6hCfBJk-Fa+VqsFGBahhhWUoYA3HZ2sqHdACoV5ACCHlq663NJKTxaABTifKQA5vDiAJQ9Y6vLSnQjdABGsBm8ChfGI-Xu2xAPwhbxQDC0KHSwywKH+hmBWh0rHeAEJPj8-oDgHZicTKb9ug9KsQZoJ5BgIRUAJ5HEH5OnbEFg7rEc48tzwJGsJ7JOTvcSSoagpqKcTDPjicSkCAQwg0oXE0h-GakV5vU7NDVaLU6vUG+6mPp8QYfZWa7W6-XDK3q-784n5flC0VafwPcXKt6GayGAOh1LdURZJFRqUxkAp+OB1VnHQ8NwzZmgiUZwwhIviHOJ-MQ4vlV6RsvwTP17VyGsgoUIbom1iwCDgy6VQhIngzKi53tacqjpE0JghkVJ0GEQgjm53B4AAyNWgA7tBxKIkAB2LAAUlzxKCAA8ALRHqAn1A4OhuO83vohJ-H085AAbB+X77m4fAwCE3zZCB37gZBPDfA+3IdmASBYJ+35BD8IRIHQtrFuQ34QvC-TfBQcxQEgxIHqI4S5juy7EmGxDrpuSJvICujOnuILEvB6iIehmH7uohBuLAfA8kgA7wKBfFaLUMzghArA8g+fryEg4nwvAD5fOQlFYV83y-ih5RoRhd6MUSebgmuhAAKLyKQPLsbu+7YaZPDIeQqHUVksH7s+r5oDg15gRBgnQVZxGdFA8CkAFn4jJQ0BaAAJMAUIwnCCLBkKvHErW9msYQADKnziMpSJFfSXm-uUbgwSJCkNT55nkGhWiBa19KqrAnTUVlOWwpJ+VxaQCVJT1KWEGlUCZdl0JjaRBUKQJUHCfJ-UKHe4j6YO3w8EgxDqolDFMXZYrruM4hNlodU2d2IKyjwzwKmQ8BavAzk6m5VzvIaCmjIsExTK21iZoYwzAOCPIIKd65-a5m75P8CYKcSM7qq5SKVsW0OxD0wr9f18OI8iIWnmgaDXlo3JTYlSA8HIETE-u-USbpoiUNN1EVoWxZaDw8AHrOgN8Dwi1uCa65aH9iWGKTZPo9+xK4zyGByIMkpy2ODxvR9FrwMDZP0qp7zwBgtEQMQoj3LoDy5Gb5v0lFm5vJrGAaHwK0BirbtaN7vsrUihIgOr9KCljqz7nMoNLBDnFCjHxWvXKLygiaP2bgAkgoYAfFcruJ+D8RvP2g7DlcBr7jO1hzuQSJl8skOaETsMU-ASMblcnHowSsczvbiz9E3+NC+Inck0qUoCyAo8Ityd7K2rnNaDOlYTw8BPTxHsMjEqlOGLJd54RgtMw1oocwtRE-r8PfzhgkO8FlWM+9HPPfIkv-Qr9fbuC8NBDj1BwYw0k6IwEUGvTG5tG5XAwFALUENxAYFkO0Xs8BFoPFPn7eIhJY5-ybtrd6ogpa-A4lxZ0f9PbAAQZUX0ogx5N2GNvK4j94Gv0QXIe2FDpQPE4k6F+WDPYMPIEPeBmgSFyDAIZeI5ANCJSocIt4CVYAkO7j7UBEJwFKnDiAEBYQoTszgWTcRpC5HKXgIZEsQjuLvHUZo4+1sjFgMHPo3BWZoAJR4F2fqCcFhJwrmYrQgSxht04jeE01VzThmkVcVOtkjbyleF9H6AAZIc4hNyEGLvOB4i5XbGngAObJuSW5BPLu3DQn8gGGE2kJKyhhB77iboQDAQQ3BvA9iXb84SwaRMkXHPxGd3qpJEX8eA7F8kSKBApdpSJ2kYHYBoxKHxhHdDJA8JuoSJaVAwCaORSiolJNGcSFJWdemVFmcUrQFgLCgj9oORC2dvoKHzoXMJbhkEKFnMwm+EAxZtNrguDA4L2m+hzh8q4Bd4BF12UuM56cLmZ0+swhEMz6EJMYaCDF48rhsMLE3dG8z+oj3xdgtM+KSF-2wfuS2lpKVQDucSdhBytGyEGqQJEAByE0UBeUb3ZeQDAWi9riAACKLE6FqLODxeUvL0ieCi3xRC8qjhY35qD0FdQklMnBWheU6hhBq-cad6QJBWLSWOIqxUuN1dypEo08r9Cjna8VckpUytIHKhUCrWaizNbHLVKD4hoIwfqhQhreWsHwfAYN-ULUWqFJcz60L4CVS1DVIRNryZVMiVDA+PQgFlSzdVQgg91YbzDM851DY5CZmedfOGLjqJlTujwThZNa3PCUfWjsPAm19tbHXYmraEY-w7fdbt-UWJ6qwYa9sjZMyRsXS2oBDlO2zpRWTNNrwxLcx5NcKguaN4Mlriszojl4SiFmZsxBWjD2SR5AYs+-jVYbw3vu+J4kX0AGEF0GveEOQDmCDWsvpMs1g17b33ocSQ7V4bdXgejY7HQhAwNRqpee+kAB+fZoqn1DiPW+hAq8QC4eJPfR9Drn1SQMYG0xUcLX9W-Wi14hBeYHiw4uoGZK3YxLNAekjAGgPRszCa5jG9WP0nY+MrOUD4C8eA2e2O9IhNxPozyFTEm8GwAISAPZQZz0b2eaQ4gg4ERIm0ye2AUc10Gos1ZxEDwuPkB4+J7BUd4TJCUc5u2rmtBKd095o0RoBnBNbAHOTAohSpo4wWYwtxuntLuYyP49rJ1pjYlcFL34ZzVEqRE5OGWAQHEDvSdJCgUYAxucZt5mTym11mQaBzGby3KRTgpSL1Tuv9U068aoZyhSDYE2yngxhqIhGSx4PA+5rnkGoot+bAp+TrTsHJDoXQX5xsnBcPLHgDixCIFUl4aQQBZHQEgdIBQiggH4IIZQUApB1AaIvNULRDFfC0AAfRItMf7EMs0Il0IuPA-3Bqg7JFkCHcg5YQAAF6-QQBycQhAwdLjDIQDQ5FSkuAkOIZqDyDyk5tjkbWPwLDpDoLTiwOPvgwwAAp53SLodIAAqAAslqUQGAWcQ+7i4buMN-t8xcDB+QT54AQDVeIai3JYBQCOLEX7xg-Z2wl00B8m71dWZVxD1gGPT7a7CMjheEPdHfAlVrqXZuf65DoBFVXEJvguBIgicihlpYaUoENZElu8fOEMB7siFEfdcv9wKg3-2g9s5D6RL3lFffcuogAYlYFgOgMfXc8nd4n8PUAU-+4z6wYgOfvh48UPnz3hfi8zTT4BNAWAK+jRr2H73RfI8zVGhX2ViF4Dt6TxHv3Dey-Z9F67sIsAlGkCH3X7v1Fp+z4rzyBIg0Dzz87-X9PrA9+sHgPACvtsFBb+T4vw8dEFCt-Gv0M-I-U8M1vxXnUUtjcgFD8Prvo-qKoj4G8BgQAxgDAOgLABMF3b4A8V-UIe-b-R-P-N4dILALAPAJAlAtA4AsAmPAVFwC-aPSfFaXAn-J-GEGPfgDQPPQwC-cgvkUXE-QfKg4g+gmPNfKgDzIgx-VgjfGPM6eQRKFwCVQ6WXE6UEc6UgbA2XCQAQr1IQ46X-SQ8QGPJqFwWfZIYgP2WQkQpqHPPyCyFQxKNQjQjXOQhmXQrqGPSAGABAfQroO2Iwo6EQywuAI-UXM+Jw6w2MUTKSaiM+CrYwnycIMAQgdtMQnPaEOfU+DgBQHvcIxAz8cAwXchSoTfEPcgR8LjCCDzaiHIFKHIu8LEFKciKSHPWXDI5I93NInXJIrIrQQCFKOo-InAQo31Wg1XQgIIKgcqaolIj-Sosomo9IFKQY-IvIrQIo1oiHcQfaLozInowQ-og8aiKyWolKFAFKLQBAoAwAjAFAfEEo74c4aY7o6Q-aKo2Y6iJo-I3IFKZYjY74EiAAxgJ4ugHYvYyfeKfg1IpmGaE8EIVKQcRaZfC6UXVmRmaaCo746iIKVXX1dQZSCE6aB8WEiAZSC4kSVXSASbAAJQghRPfzBMSiRNxNRK0FilF0aTdwaSii2i0GGKUIpJcApOSnyOWKyBuPRMt1lyZ2pMQkZJ5Ogh6mhMFw6NgB5xwh4ECBMlwlpI5N+3aklPFKWNlPagyVKXEAVO8gfAQFYHl1JOVKlJ4CxIUI1N-F1DlyVNAhd1lzFO8lVJ1JNJ8m1N1N6ktM5O+BtJCCNLlwdKRIUICiFLVx4BmPKMMGlwhH6GMF8nSO6Om3mG6GWOWNGIfGGLuIeK2OAMAj2IfDkURyjLOOSNjPDT1JZNyJSmTJSk2OeIzL2JXnzJqJCCLITNLPyPLPyMrK2IwEzISLFzvF0Fj3oIAGoxdvihyFiIceQV4+yCTSBRzuihzXcBzDBS9y93ioAeQAAxcjFwbTHw8jCrM+B8AcGoigcWVmA8X1NwCrJSFSNSX3PgrSEYcCM6ZCP4A8Q-HgGPMIBKTcuSCXcjKo3UHgfoKE7AHgygdkHgH83s0+f8r3RYrQbPX9I9XcuSCrdYf8o8+Ck8kWDzC8mPM+bcrw6SdC1C1w8jcqJ8+Aa4QvQiv9bwkir8RSZSZIW8zSXUnSZ8gyIyMiuSCi3ScYV8982i5Chiq85i1SdSNipfSi-SQvT8tQ-oSgkADoMIVJaiMMiMg6FSBEPkLQFS4wF4JfBS3SpqKE2UiEe6IXQwamf02CYLGXc02ktYxipCl9WMpVQ8vc20Bwh8QI4I0Qvg8Qpim8ySz7XU3g6IirdqNE1037AcCctIxk8gVSwy9YCAO8bzJklYr8WshYi04s7KkYDgFfacokuE-yy4g4T-BfYg0vffVgKqj4n4uiTjBaMYlog4J0pYp3A4Uy0knq6AwgGDUgbqQaySBQN4B8LPS8YYKap3cAzq5+X7SSRCGYPgX4XQbPMMBKTavAavWHDYdnRa7oFa74Na34DHGgWMdmebEAGBWIU+UgQwJcH9JkDJChc61sAEYANBcoDJDzRKf9Urf4MVGYfUHUN4WHdIAMYat4HGAsTeD69a+AA0VSD4DAP6gG0gIGiuAEJ2U6z6wgGgeAJgf4MbZapGja+AfIH9DJD4PavAHgf4YAMbailojAIcNmqSD4f4PDcQGgCm1a5GpgbIJ2QWs65GgAMklvgDwx7jZz7IJqlslp4DwxOnEBpsSz4EIl0Wlh5uABxl0AAHkIRagwYMAmQmcKByhv4jbWAebGbjbTbzamQjaDweArbyApQugeQAA5EoPJU2A4WGreLQcgUkJm2kEAfdQwJ2b+cO4OGgCAJgaWxgs4UgGYJIToQwbZXQCAaWj4JOpgXQeAIurkEIKAHm-4fITWhTT6Z5em8FDAU2YANG7oBsz4d6GxUkdcjjMm00OJaeJu02Wu42P7NobbaeDUFuwwcEQCxnEAOO5UBO8QAu9UmgcQUm46kWXQNBBARCE8YOzoN4CABG76mcOfL1X1JIdcjgRQEoQu5OkGk0bmM6TMDAGGQwX7HMNGjQcgdKOgJ2XQI8aWDzGgUgUm4AEB5I8B4u8QmccgXQVkdkdUdBDNRyVHdUTMEgXUNwasIzA4IjUgYgXeouvAUVOQQaCCXQN4TibiYAQB3QB8B8HgaW+ANhgef4PAZBtHMQb6KADAaoRQKAf9OiJXN4CRfIK1aUNG02MbP+9KaLGuuwH9KhkR8qcqemoYSOwwaxI+XUJIQ4X2HlCAYBiujzJBcgNkXh6rFHeFLBwwF5foeMPAS+gAHzcegYsZ4dQaZAwfsfkEIHGDcnWv9sEGwbIAgDwfjHoCXAgEOQSGFxcS40P3wbwHidEH7F3vSc6WwQgD4BcEodfQo1cYwHAhNHkF9oqGtgbIMIEuGtbAgFca4fDXODaBsUJn3U4lbtyfUAKZ4A8cMGbQKGrp-W7i0eZpnAlOAGDDG1lszHIGdsMcXt3uXtJHEDwzeAlIBCy2sJ7gWaWfwaXqlATvYclq2ZLq4Z4F2cHwBEZv+CQC2ZueyaZtHomSvt8y0fueAB-QgH1rGw1ovvIcxzwAxxhwODRtYfOYxy5q1k5tIBaK2YxlusWbNuWeOe7uDmZrRpNrRbQV1kDpBv3ut1EFMDoEmeflgCdrxYwAJa9i4YKdxfNtvhRvpbwBIbJGzwBavVIBvXtjeC6e+o5ezxDufkH2z3gBUFgAwGJcPvgAHIHP+H5tgGJqYCYG2T4FVYLo5ayADDRuIH+EhYpe6EHxmYhftoNFFe6Gbj+MjpnAxx4BoHICXDn35sIBYFLvdbzsrmrukeDm9ddZoB4C3tFSLC43pakYM2lFDeUjvQBHRnIfyG5eGr5bvUFexftrtbFd0DNbRstePoQYRqze6AdadZddIfdb2poC9b+dIF9ajf9drdIeDYDBjfDZHr9bbbjerq4fIBpoLefleD+IBECObZYC7ZPsLlVYDDGz7Z-XYHEHKiqWPunoza2cnCpd3v7tiQ-MhY3adjkYHo-KmZzcKFMaZaSFpfgB5DyTubnwvfxevcJaPtIDhrFYRogGNbDrztVYOFIA5vemhASjyQkQLsdeddIederrGy7R-Q+ZvuMC+cjrmf2mvqnrwAXaXbGGPqGH5uYCudGcS1qH-p4CNtnwmdbvtrJEPZ3dnHNbeApG3eE2DgODDAlIfavZvfpZfbffbqLa-bn0deTt6tgZLtgaTaPdnDeazllj+CVH1sNoAClyojbfb7V56JL6aJwqA8B8RHaD5THlYYY58RWB3uh27XgW6EGxPN6VcrqVnyAC659dXbqmAZmdgQhLMZhgOJH-gnPNquGsgnZSBNnCRjgQBtlHPJawunqIvdAoujO4uoutmBz4uuHTGJEWZUu+2YPpOFQooravrmbBtDAVBZPbAQABzZPtQeQebFzVALByuWkf1C8tGAuWbJOwBdAecTwymPNIaGBTY8Aeu+dWvxAOcwB-gLAwA8vXgTV3p-nJORuMaM6Fv4353BoV3iulvecVlNvX31utb9RFvaPlu+BjvDu67LO7w3BAoTvmPluOgDwBu8BLux7Bpvg7vvqxtluPuvvCOruCwcSB8kPtud2yQPgVBTZpaIfxBTBXmf1RRfUQhQeOvaPxAoe5akA4fVb1bZufwh1V20eHvdvMSJn8f7wKOfvSe+A7xyfXq-gucUeie5ndBfb2QIR1khuNnluyfV2kBqaGfxAec6eWfJPB92ewBOfX3ue8NefaeJmBf8eOgQh0OW7BtgBz4NRpJqblfRewfhNZ77REJY7VmTn1m+akBluxv-h6vPxmvEsmRPx7vzQjf57Tf46LePhd6EnX7WwGkSmI4Qb7Qi4uHJfpeq7sf8evgWiWXUf5H-7FpGHSGSa1bsfVX8f2jyA-Ju3ifB6VA6A8M6BsfTAsg8MshseOdxu3gcgHwDo3uJks+c-0gXe5uC+i+S+y+K+MfsA8NOdxv5cshkyOdveh+AQq-8f4PxBb796H7vvJO0FPOgPWWwv9A1+jM+bQbwb570bJJwQ85pY5I7boY1-1-bfdXset+56oJd+phxAD+Eo7xj-DALB4wBzdX8eEpuQngvqGbI7jGdAf7STl02ZoADXWdEQgMCxMgoNAmoLXQFCzJAQBWOCAL4G00EC2IT66XXQK03aYYCQBrdeARu0ZoeM0E1QWALV1IDkNq6e1FptLVIEeByBlcKgTXV+Z9xM6ogaVCAjfoG9XeIAJoIZHtjggvg+DP4l4wPAeNyCsuLUJ0E6S09Lg7ApnCR3RxksJBfAEBN8GkH-sgiIveQfbEUGq9CAZLfHkOC5yLM76nAu2NFjz6vBJBGg8oP+2sSkBrgvwTkBXSP721DApg3RAgHjBGCf0gZRDmL1o4KMk+QDDZj3A1pjM-gRtPBudlR5bxqW5tOlkzR44X0P2X7RBhAFgYHAQhCFXOqXWdZ80y2YnZ1unwg7gcmALAxLFAF9TfB-GaONrpyy-Y8B0mrjchnAO06wA8AVLGHHgAKYMASG2eNGtRyY6D0EmxyX6EonkBZJwQigdZIYHKDsChBXQGGDMC4a5C0ERyRRJMPVAzDmg8w8APImwQeY-EsQNYcHUSwzB6WwAQfPAA8ZiDm6UwjUOqRLoY0TIfwAutbHDpG4-gAATVMBIEPGkmAQaIGWFHMD2GNZUJs0voY0QRKNWJugkHDqgAAGvpGBbWxFho8ImswERFAp5AvwjSA80rivDLMeI8QKiL4DojcR6oAkQa26G6BOW3DKxjANIEwBHITwvYXMNfYLC4R0sGGKIDwAw4uGPjTkFFHZG7DskXI4EewImEwxWAgolziKNZFQBxR0wyUaLG5GHDrEMwTwLEAFFCimR1jVBmKI5HqiDhVieILKNiDyiDRSorkLyBuboIzQ80CIocKUTxgAeY9XPoJ2BZNMehsOO0VsKUSqjxAnIjUdKNHh8i9RCo4UcyN4ZBidhao2YeGJ5EyjthcomMYaJZHjDthIYsMeaKOE6j+RmYwMfClzGmjkxBY6xFaIw4li4xqDbkGuUdFshSALo7cqUm1oaIHegPe2lZ0+FlMTQTw6VHtg0ScRbqmI0QFaKAYYioRFzDEXCOxFMBqR8gVEZQNMbzj2B8InEaSJpEPhMuc45ceSKRLpMSRSI-EXuIZbwD2WedDDhxlR7XNxUvqUIMNS64LCnxhAcavAByCV1DAA5cQHbzvDDBfx8rAPsMHJYtItmrQu5oQGlrqFT0BoaDgv0EZsiKx+wzUROLBGrDMxyovMWaM1EWjjh7tLCQaN+KVoohJWXGjwNeBA54gIOfoGU1jZvAaJQ3ZiXRJlaKASWpfWnAXT9gGFMwkqLnBkmDgIt-crEz4AiDI6JRMKCNesFxiGQuMxJpETHFw2YlJN3eKzT3rODwx2i-GmDeQMEzziV0AQUfMZmiG+qtxga+PJkEMmsF-YAcgvRLAJIyRMhyoTObpuTXslsTZWogfHk5PDSuS2uhgPyX8FcnxhKOHwUwIpIRDsSD6ogf4LxK6CZhHIIkkxq8GAn1dhgdEvSkoOUSc8N8L8MIAKi0ChSCGfrWGgcCin0TvJpgRQv8FUmVS+u3SGdpJwaneTfJgk+2P0ACnqlBuLgJnuuCghhJ5gFE6LGFLGxOSXJbk-4NslXqS0Ep+8EAE5OEkUAZolUoqsjh-DtEtQ9sLQA+GRADkQJxMTng0wXh-iMptoHUszH2kTSQpU0lSZ5PElVSOJJ4fHn-G6k0CDag7XQDdMXZTSTx08ZqbRycmdSApLQobhAHx69ZIk6pWHIPgfCw4JSujYaYMghhhSrWOgTahCxUCKEIACrNdq1OemiAVA7XeafxMEnLTRJD00iMHHaD6I-iHQNwPJIIYQgc4-QfIPVKpnRSGZY4+AKYE2rS0fpAU6aSXWlqkygp5MxKCtOohrT7cm0oIOIB2l7TfxPAc6cdM6A-x0p18PgJdJmi-jBZd0iTrRwJmxTXpogfoL9lZgJR9aaNN3lBA95rNZwX7QfLY2wbgRThgM5jjUx4AaiAAEucEEnZNqaALfHhKiqZWz5+tHO0bY3OBeow5RXTPn8GuBeg9QxYVlkEMN5EBjeC9DFqc0+E5sgE1NLhoYFRZgx7Z5vYONLQ450tTYPLVNgKzvHFsMZpdYNvRyN6Toc68ApVmKkTnJz2wrYFoZ+wODSMemf6RDocHjC1y4MXTFurI2aGvDR5C0pAD-XtoK1rm3kp2fAIREh8xxpjR1lkCXHbyAwaCLROGk9re15OQwT9jXXRg10uGkQxLLYyTnxDn4pjKOegz0nTwg6Y2cNEnPtB9y8kTTJmq90EYeBhGojDgJXU-bpNXpGaZ+e3SQb1jOQtjeoVg3KwwcC6tsk3hpIdmq14mIQX2f7IyTwCkA8TIRtLHAXiMmaXDM5j-N7mpyAFNA6BT+jIVQBoZG8zqRbOqY816OzEuqfZJAVShyFYjSukHWHnDC7RjYnkKMNeC5CwQlAa2B90zCdCtA4wXkOsE7ynTfqXqQDPeXKwSKHRLCihSIsQm0cHJgPX7CwrYW2TmJeGZiQIrAXCKeaSAfRU2JYUO175gPAYL-20ZUTbQoC6WJEhdnT17mnoiZAVwoBuBb2f-ZmtcxTZTyG5a7TBdnLN6Ysmayoy0LAqGAzMQlQ8htjbL4GHMy5qSr9qYxdnaM8AHHFlnkiZqxMj5yEyBfWxWDpKylRQQoMp1U7qcoImnKhT22V7Fgz5USnxT9QA4EKA5B8cJV7UGX3No+-ikRsIqmU6MCleLDuZpNmliyQAyUlaQjUMXzLqIt9Vsd0G5K+pBA0REYLzEnCLROeYdQpQQ3Rmn1bWAnTecJ3oGCK5lECjJe8lbBZLCgdbaupPw-kGSjJvinSX8BQX6SeQhknmvjxZkKcxWjtcQB4yyCpDn4PU3qioA-L-jFWg+LxW2Fi4ey4kZisejwH1CpZdAurT6SaxcCHB0ZEpbPPYEUIqysVqXRLgcFliq8I2P6FMFT066uh-eWYLIDDFw6hLFMLfdOXEhxWGBRA6QQVa92FUKhRAOQblbRwlVZgcgMqhvophQBKrmOKq0QCgHVVyrXgogLANqvFW8rMwxqg1fj1ECARTVrwXVYBCtWcqDuvi3VbF1lXK87VLoN0A0idWJY2gyNCjiexVVtAF6NAoAbRwfHEMXmgjDRC80z5uyvVKqnSKcIZoaqFQTjOBRjJVV8AYYLQtBZJwyZZNL5yvE0EmvNUNITQ6q2OVwoBCGr4ktSMVfaorUgA4wsQIVcYKhhE9g1LattWmvxU2DHR2mFwCEA8pQgrGzjWIF2jDCjqQg8ASVJoDzrWB0mPAJVNYCXWaALhgPQgF2o+nfyC0ycXdabHrVfkO4TakYAeorjQAz1NA+tdsNIAvovVFkiuEWkowPVlKyVAynIF-wJA5USiCrDZQQqYR7KfpIDZaWRbPrGmR6jGNCobSE891PKn1R-jg1+rAepAZdI2mCUDzmmFK79hhvg11s4BRGFxBGuY6hsvg6oMFcfIdT6VUkLgE0ONU0A3UOktGl4C4HO7zRoQJgWIB0idK6BneQ3DpMoWd5AKOkzCY0sRsnQ2x-wedACTDA6TTkcS5VXeqt2IAn1qctvAPvJpW5v4XxAhd8Z+MmrTVZq01AkLEDnaJYJUFG--FhpKW6AVVVmnOIKoHUiwC68TP3rzCVz8EgFs0k+j7D9gwgt2TCxLFtiljIITEMc-aNZqzWmNHN30UHqRriS0K-59Ck+kUBPLBFDAAqnjW2mVi5UkcNJUqivAqz3rMK1EKBL4iiq-hxNjlHIM0hGagse5KWhQAwvBkWZyEA+POqQl1g6iutlQLEijSRyD5SFhEe3Dk21rlB7cO80teyunpkrmaNKzGfYCPyMr4psyyJEkqKUr1LejDVWvLgjSDRRYcchjuS3rVsr5AsAeDYPnJWLa6VUPA4KtvO1T0uGMK+tZJDykxb7NLa97QkBlUpCSumc9STnIt6kLZlRij4DWvDkYwSF9ioRe8rubxMtE7UL0lIUMD1acmSOg0naXVJo77esQCGT+nHUIgJUn2lNdwrGyzrRYC62pIApBpaJqY-GunuDOMFTwsOYMT7cmqqTObEtnGJrd6FS1NM2tUUGIaklvZXM3N3csYNggf6-kgFBOh+fihXgxb6Os0iODNOZon1dALswwHnF9pM4AAqucGc3B9lQuBRXWkUOA-bYAXzK+dI010qrddBuo3e2oxiQipQZuseAAkjgU7HRyO40rjpKaI6HUKpNUi4HR1Qs-NdKZwHLpZ1VhItavU9r4tFjixAycer1OTz9mCT491Fb6FRoHF+Q-IyoQRqNqG26B8BM4dUqRIOA4D0BnTO8czWo1SaatqOkAOkGGIwxG9CAPhsaWPlkBKAsAH2Q5QkBya7sH-PAJnoyRs6kgee2WAXu-j1KRd52MvXeO+oTLIlHwCASi1iGdhYg8bcfYQqn3iAZ91tQvVKEl1gxF9cgYJgADUAtg+dNrhqPy3aHt2MiAdrG32hAYpJLB7XjLRpexd6b+r2qLqDYHztFYVEGkv285pyMYCfaABvqHDv7Rd5+pINLsP69lXmyAqYGOFT3Fh49wAJHpnXsFtcZmzNQfMRxCCSTX22UCGL-O9BIBslVu2g3qHoNnsp4TBiECwYw5AolcAAdX-BIBwclQcYKzKQCctCg3PN-VbsIE6dSJXICGNgOvW1ID41seyewaLlvqZpa9SQ+d0SaKGtGMrHQ7ADUN7UVk3BqAHwZfCiBYmWhhA1bsdEM6BNphhIOYf-C1LkWshveFrtgWCwqwgqgDlWGMPWx2AzhiwyeBoD7ybDHSPePYZk2OHgjvB1w-vPcNv7+FOy+HW-r3hcMoZycahZY2EPfR+g0tV7a9wyNTwSjthww+UYU0Qx8gTIG+HfvckL9SjVYfzStHyBFk4+31Dw1PFaOBaNase4sOH3WS2bcNTTOfJTvnUdw9WHgjQ1u1w0SkJj1OiZn+1h1vLKFJi4TPbpbV7w81ru7+C4AnBS8lYsQf9mkfEZQL5dniwgN8FUWi9olox76YJMmlji58p6pQ2+vHEyF-CIRQKqys-VqU0qGVZXFlQaKNVoy5xAqssQaJFUZ8F0UqsiRJKVVqq2+C-HVX3yNVIS-yP4pxvSjjFFqOpbqteD6rTVeq74l8ffAM0-QjNTuEzfNQOCAakCIEHMMlv50tamBQdazjurPUubINPrPAPhoWaTrLcllFxCDV4QuYaGdDUwCzRzEnJxdKtThngGyMVwcgwo2oVRr5PAyzZAUppoYCCI3GLdRmRNswsID9BbjSHdJo8v1ljjEGbxzuAsK+MOEfjkVX8XFXIErx6uDJrPHjoDAsmU5bJ8gOGvtbYCu1PJy9a2AkT8m4NmYX4SjUnwinJ0YpwDoFklP-B6GoqBMWOKHZnApYZ0BOr3Su7S0h0PbKM4OkzBVN4zZwRMwFlBy0M0z0pjM2WLlPpMCwQgruvmY4zS0-mJZ5U62FVPcN1TH83zngC1NdS3JlAvU9cduMuMyJD8qWL7EIDpBJUrfEWGLD+zqEeAC5pc1CssxYH1z85qYEufwNJgM6WdF1T9U37kJCAbtD2hEoMK1dDAbiExPGCBFoInz1hJodjxzbvme4Yh4BT+b5pv6NzC5r7UhuAtTAO9DzWQ+BYxza7F4B5wgJBaqPoIpiABhAzBYtp-AdFJOwwOkCgAuNZDKvQJiC1kMLFNqtR5+NTEaPo8gLCF6TZYfaOUX-w+taC3RYZ0a06jzegGbZNYubmpg3euXIxeTBD7ntP1Wi3xbE0iXd6+QTnt5G5Inhum0FqYlyHgByXecA8OeuQDdAN6gLylzS9pfyCWZvor7HS+heUtGWvgA2pII8QYCyHqYyFri9XXDRZJRYLYUfntXdy3481ykqOocel5baI6YHMHC22QtJA7wMrOdaEdEDZMlL4V-S5mhcQl1Qrelv4C5fnVTA70rzcNDP1gCVRJ03vaylflMRiWzL4V1ZLlcSsa0iyCxb3uSxKsdJfsZF54Zs1itipui4wcImSowA5Aq+yVuK90UAzcp6N9xf-OmReJgEO9ul-q7MTto-DyRMVqa21Zmt75w0vwrdtj0WsLFBrnQfTW-nKbqgWkdRmq74tkONXui+QJVBac-b1WUL4V2SyEHkt3o75i1iYZcAmZ9WIrrl8gJBKgWtX4rA8ZanOquumWOkYVzpNsLeursPrSqN6wPMQnWWsNrQufCQbhjRCP9t7TfZQJ+YcBYAoh2HBFWZi9CKEiMOgAm1av3WPa6lrhnQBmlv7ib8zP62oOiwfWxqVJqG61etps26biEBANzl24s4LAWQd8M9fQtiFALpVhJtZZYbU48AvlGW3DY2sS2TQ1loAnDY+tyx7B0WKC0BbFsc32dB0HgDLb0gQB5blpxW6DeUvK21ejNS08hfKt0DFr5VscX9Z1BaWlGv2K21ddcaJ7Ub4gS-aEHgOQCsb5VvG+yzEKh36beEBNjTbQsdJ6bLVza0zeduLXWbE1dm4tc5tp3ub3wXm8twFtC3yWoV3WxnfZ3S2cQctnEArb1sq2niatvW+CHVmcRtbotwKuLYtvhXPbBto2xXZtuftzbt1yW9bbrtv77bktVq07errEAIAxDBAFdZ9vhp-bGNocK0OxtUA8bZNxaxTcevJ2JbXwNTVhplsMAWc0NO2zjYdsS2J7H1-69XV+xT2Z73i3uz7dkPlWut5Vjxr0NauvXvr6d3e8QyQ6H28Ax9kWx0lHvj2cbA8SzKQH0GBNFLb+oi+jkxz5ACuSgijoRaUEsbGJmvbHngB143yOg5Ay63NpRvP2cbrwt+24w-ub3VLD1qm8hd+z4OEYQNu5iQ6oDn327ph09MA4HvX32ZDDwh07Po7-6EVbjNBwYKJaEyyWINge1-a9gIjAJpdHEVIuRXmcyVaKhRYTN6p4zWrMN766XU3oYB5HG9JcVIprrzQdShDjyyjama9UR7pDoIzjffsIzd6JAuB+g4+tb3aHp1sx+IEus+bbHrDse47fAdcOwbPDxq+HR8dMOpHYNmR3hyXGAS4nGAJR7DQAHXah52Mr-SeGTJDy8ZwAAARKULok0DHf44mu-3idTccQpjQp8Y5Kfyt95STipzY4lsABHNajULlTEB-0ZoJRJDdVYGPXufTnkL3erqtXWnEEX1GoS6ekAen39vpwk8GcDO6n8TxZ2U4af5ASdiN0xijYXvo3A7K9yOwwF5hJQqCYhGGKoSXngAfEPghrYzebOtWJUJ6YQrHbECdAWbXqNuEqmeeqEWblJiaj4vVt+QubCB+m3zd6753hbH18q-HvpqAEQnltlGprYHiS4E9B8RGR-i8v46XA1FfJrADClgPOiiV-NY7aaAl16u+0-8QH32kQzsIgwA7n-xPEMBkb6MOGEeAVl3prr6hFYMX2gvT2jLFputlVVZmscIYPUJAKQBoAE2IGDI2y2-s7v0uWhArlmQUeFcrBMg4ryV8XUZHiv6bxdFACgVkNyvylCrv5XKS+C0u57jL+e6y-5YcuRX3Lt-bfd5ez3EbiroV5y+lAV91XYhTVzK4QMe39b8r5poK+VfuvaSYriV96+leuMaAOr3QHq7oeGubbxr6+WM1xywrKVb8z5VRt9qaMGc-YW6gzhzBjYq5T7HmpPP5YSlpT1sP033JzfrsdO+akAyWcsXJwhuhKxvrjkBuix03-rTNz9GzeaNJV2oYnBYFJwHhyclOb4NTlpx0B6cuOT+iACVRFvJOJbrjjsziUVv6G1bvnf6fgB1vOhNt-mi2wTYtuK4bbyGdbu7VfSVVk4bnTBw5qFwMcGoWDolkoBBrr3LaygHe8k7XM-K8a+dmYfDTEHmXOz0XXs6yUIAXBUAdgxc7lGAed3HBiOGrB7VIb4jUAcNHB+cM1uXN1zB5w4RcBOkO9PvF+uNFbCPILA3wW6siCuarHwdcFyD8IxhgMfpY7B2VVc3x7Ilv79LsYxkNBb0jFwPHRBtnnIAZPvJhDXJ7Be8MgAdjsQH6sqAueceWkXDaVmGzvQGgq2hQjpCyxKEi0tPd+yDuOyAakAC6oN5lNK-lNvAOkj2QfHLpM-tb+EedAMIVl0BW7LPXDEhq5-5pQcDgfAWj44rpGvbDZzHWAPjyU0pBb9K0Ht4PhBVH6P5QTP2nP2mP0t0ZFnLFvMZs5xNM26CZlNIpFi9Hde5EsGNgjC-kA4UCKDeTF6o3xewmRXejqbBS8I0rOX0vR5l6eZR7cvXaBOeIBK8ReYQ777oBKUq9xfgmNX7hUawa8PKHjjrWzmjXibaeD2uX+JlHqjcQyuvJXmXXcaa8DeEFRozkLpICbo4RviXh7WBz6fLemhSDwgDyHeiPBAeL2WAHFT+D8tNnjyvgAeGCDdAD8bL+msABOW8wqIhgAAOKORndeAZhBBESjBEo62F9UHX2VCGALnZAuwqkgsD1A5ArHchK2L+C6BDd65B8DgBaRqw0a-7LS1RI66EB9sSAN7x942JvZG0XDcphXyGDlNMgLQ8pjkBIU10VUHmVc+LE2XH0dwfs84EzgpmkAyQR8bNP5Syj-shBFafIDuHrVyRFgFiq72tw+lwTrdUwa72pvrPABYWHNQgLCx5qvmwcm9AMGx10DU-jAWgT2pAHiCxrL3SXoLvAMydxTcN6pR1swCHno05Y+2YBYz-99fAcQaCdn40pkb219f8LRFseom82C7N03pcI0wSYU+NEOTAP+5qD9p+vgqpyNisH7m9LOVw7wH38GBu4bkbksoaPgJ+Uo0Og8wGSPXpmazNgBT3uNkUD+8VALnwP0H+D+mhQ-DAMPqXN-AR9DMGByPl4Kj-mgfk+EWP9Urj-x+E-g+zCQnvQ2GFoJSf3P8WHIq72KLDAnWfyr+Oo2S-zpB-+1JL-j3qGY62C8uf+wr-GfJaN-lKZmBn7ShWYn3zvEheT0KxH-h-itOf552zg6fYs3RgMaJf295pTU+A4wArWnzlha-eIGlp-2GANSAH7OGwTZSAa1SL8-gUVW49HlG4RSl6-K7m6Zq-cSCQD8A42EIDCgRBk-9kRQSR9lh3AbVacEXf-woYeAHODXJZfRYA60NqfATRoUAOOlld+GHkHLQzmGnEYZSLKqGUhElaOkgCr-TFgQCa-JAKVZXId310B2lNTnKYK4Rs2ID5gP-zkCtA3GmwDDLbaW9Fk-WAIjMTApAPj0DA3P2lAH-FaUzABtCCEECqoARC8Q-xfgMcChA6gQoZBFTMC78O9QUULsiMP4HoCYQcEEH0IfTUWuBiAM6GiZ31JH3UIUfNH3dlyGbuT1ouGNALGZmnDxHgBi-HJHO4EAGrwWVLTMvxzZEAuvyr8m-WjkJw3AXII+AByXlDwxmnXQHKhHIDJEch-0c4BFgSgLQHXIsSI2i5wRgLIPCBTXWYR5QeDH2UcgsSRyFnBlQAxE+BnzEAF5Rn6eQPmBl9AgPPpn4RBin4fvQoEMBrPGsCkCruKAN0DTA+APMD5gCRgMDXGTPiGCFAXIIABpUt02ccNaznJ9TA0gNSRyA--2qDagilxABGg7ASqQtADnHWBNgfaUOktADJDzgucPOE6DstZYL0D79FfQ3lV3W9lqUVcS-2B0w6c4LgDJaTQNMCvYXu2aYKAm4OyDcg84HyDkApGyoFcNd-CY9SglYPiAPgl4C+DIWSuUOZOOapXEdYpSR2UDUQpFmr0XAS-EShpQalTM5-WCVlE8NHeVixUyWEz2ZUQAW0GlhqPUFlS5+aEmnqCXAXlAHJpvVViYB6gwwF5QgvOJB+CS-P4IBCy4YENBCuocEIHIDQHEKRD1g5mggCjgmQITppWMoNxCPQxkIfsxjZgW6FM+AEmGMfbQ2l5M9DA+DQR7JO0G9BkWCUid4mdR0UcsTxeMK9gYjSw3SCkGDuAPhrKfgzA0KsLizMpwNYFhDUp4DvTFQgwiZz-lW2N3QYIUQfhBhhJNLvVY05AejV-U-MG6lFR7JJK1A84hQMw1A8nAwjsJcbXoXcwDwYHl+BQ7J8V+Bow5gwPhMSPCDwB7wGCAYAN8JAFFRMSMH0kI1w2QUAkWWdCFJte2bWD3xeyBgAoY98PPFPCfYQcLglNmM8LUhdAQCEa1xAdg1S1AzYAE6AyRC51UIhw+TVy0QADSkjIhGL4FzMf4D8WgBCSb8Lgl8TXUjso+qaEmjttkfOkloY7AZjcZNdHIEG40wk8EZ1MBR2iyAs8Ewy0QuLHCJ6VHmO8N7JHwtXXnkHUamFTpZjatwdQuLIEVMZ8IzCPp1YjOnigUJSDCMIjGIqSxE1kWRsPnE3AFwHhkfTFIPYjLDFwECgncBsMTCpLLLVpxLwS3WfgMcUVGslO8KCH-Qzxbr3Z0XNDM34QGdDpGphh+ciJSCpw+AGIjJLBQlMijwtSHMiHPOCz7UGkf41SoGNP9RcJKuWPCrxRNBD1fDDkfhAciB8GcIhAsjZGSiwbTbuW68HPQVg+lRUDfGyZRUOiDVQkrUVB1FfkeAHHClGFIPSifoLKLWCyAtdnij2CJHmCAh0IY1fZiog8DD4OedZHXCQgGqKONKoncMEixASQi10TzMqLeAKoiRjai1URqIj56ooBR6j1w2nlajIIv2C-Z1SAyIHwuLCwF6j7wPcU6QGowhgCiB8eSONJneaviSjJCJaI3xWoiyMdFhNUXhH5Rox8B2j+ogcjvCpFIKN+BHRPjWd5yIw8MOjJI7CMei1o34Gpgw-ZQJmjPo-8HmizopaMxJqwl6JoiOIj4FOi+o0QD2iPMA6P4R7o0PS2iOcKqKui7Iu8Gej4Y8VC9ocI66Ixj1ooiP4i6eX6MsiRLP5RyifkPKP4RIo0cKyizgs40rpiY3tg49qHUYKNoWAwbWRx9aX7HhwOYuxjRwMHcNnjYJ9fXT2Fj9OfSL0ooAqM+CujUWTB15lPZ0cYIASC0KBhY0WI-l89G2iL0qwKWJZCujICxQETLV7lljXlIxSXtIBRWOVj99QSRFjskMWM1iz9Cyznx8Bbo1GUiFJDwqUOQhKHYBRYM+XvM3gVWNtj1Y2fXtihgCsEfcYYYACZBmQ+n3d8PLATxpUz6IC2EU45A0B+pnne2AgUU4kAxGVEoCfRMNVPKFTmZCgcNGjjCeaJwNid7OOxgAoVBNgn0jaNWIO8NY0-WthJYh-TWU5YiBTNjbqQcEti64huN4Zg45uIYl1SNuP1jjLZ22NiHFTuIVjF3JWN31qBPuMDjG4wePn1HYnWJjiXY3OMIUqVO7A44vYudV9ifaf2MIV64peIHiT9b+Fuo-KCOKjjy9FFTjiXqcUOzMsTUz0zjqmVOMr0k4t+OA5s4-BS3jBJfOMYl42IuKfDS4lizHivgSuPqUa4pzyWo+YNmIG17cMxlAZx3HmPtx6TcxlQT2YpBLrN6GWPz+w0EobSq8N5bmOwSiEuLyMch5UhARxkcNhmoTeYiNm5ilcBBN5jpaJhKgAWEqbR7ZlwLbE6BugPNAZg4NYYFC1pYSkPj1rNYYEyZhgLxVmAuhP+BXhVsNlCCBfgYYFjwBUYYHfhcDL1GGA3APACe03SbkgQhKPIUDOtZifk0oEnATQFUTpyVRIRNIBPShNBFEx8ilgNEyDWGBl1IaTcS-sJqFsTsEDRJTB8gE7DLhzsZQEAhUAW7EKBigJ7GEA3sE7DYplACej4SegGRIvURpSRNhxPE8M3cTNANYA2AbQ3lF2B7vN7CFRRkFiHXAsSHnw8gQQHcl8IhQfwl8pH3U6FCIhQaKgnweAXiBOBVwMqEGtUwKpOJBkTSiCQAjoCQDxxaCFcFTxXUXMCZI6SFpINJfIfyDzDZk8Ujr4vabIFagOk96C6T1wA-jcBaoHsDnUHwAsKyBsAI5FzBBCb40ldcwachZg2YK5Kap5kiyDWT8iHE0uVn8JZO8g8IO5O+JfSRyjZJnktqkmS7ADZJnUp4DiFn1IlahBJgewF+ULAkQEsN8NiYcFLawhQSsBuYcsQgB2TcwCnULB1sYEAvpKk94CZphEKFJBA0hNzHDM1EDuF5ReUX0HKTYY4ZFfVlYAchFggJWeNFhDkkS2yATk+FFZV+SH5IkAkAS4njBoUiznKYWiJEH188kouBoAm6I33xBSaWQW6QvYVPx0BIUklPJQYU3ZN3gp4N4Dyc79LQGmwtAZlJQArQrtD2RUU8U0CwVEBxFyiFALnGuMT6QsHy9zUp1M5RnRToAMR4HY42-BsUy8lThhkXs1OQQQX1Jj5iiOwBjg7AXk0ZT31GyiwA0AWCGioEKAiHKAVcDGCNAL6fCAeATyAAmGRN4Z+FIBekjYn65dWdNPzT0gJEGzToaUtL7AcgCtP65VTOwEDSh4OwBnB9TJEC5Ug+FRkuEKYu1OuN3gFlldh9THONIAJ9WqAP4YMA1P+RpQNijDp1mAFDLgqUM6CoAMMJaBZZ5fcNOBBSAF4i6QT6YRCD0pNAZOVCFUAVCWD+QAtMVTd0hxH3Su9Q9JjR+8X4FPS7AUgHSAL00+ivTHRW9L5QuCDzEfSWAinB3S3050GvSVDAvE7w+UHyN-S4kvVDvpSAZQBIg8pIJLOxUgZQGL46AB8GAg8IO7CiTSgdBHXAoM3RTgy1FARNvTf8e4nRBMQbEFxA3icZP9xmCcNMQyxgEJOEAK+K7HhkbsNAAKAWAB7BKBlATcCOVxACwB4ACgIAA)