let COLOR_CODE='#A3852E'; let API_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRlVGltZSI6MTczODcyODMwMzkxOCwidXNlcklkIjoiVGFqIFNreSBWaWV3IFJlc2lkZW5jZXMtMTczODcyODMwMzkxOCIsInByb2plY3RJZCI6NCwidHlwZSI6IndlYlVzZXIiLCJhcHBDb2RlIjo5LCJpYXQiOjE3Mzg3MjgzMDN9.uMUFlWtBiBCZab4aJAmh1h6fT9VY3AjkjXTfgVDcNmw'; let host = 'https://chat.pura-ai.com'; let chatbotName='Taj Sky View Residences'; let welcomeMessage='Welcome to Taj Sky View Residences! '; let botLogo='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABGdBTUEAALGPC/xhBQAACklpQ0NQc1JHQiBJRUM2MTk2Ni0yLjEAAEiJnVN3WJP3Fj7f92UPVkLY8LGXbIEAIiOsCMgQWaIQkgBhhBASQMWFiApWFBURnEhVxILVCkidiOKgKLhnQYqIWotVXDjuH9yntX167+3t+9f7vOec5/zOec8PgBESJpHmomoAOVKFPDrYH49PSMTJvYACFUjgBCAQ5svCZwXFAADwA3l4fnSwP/wBr28AAgBw1S4kEsfh/4O6UCZXACCRAOAiEucLAZBSAMguVMgUAMgYALBTs2QKAJQAAGx5fEIiAKoNAOz0ST4FANipk9wXANiiHKkIAI0BAJkoRyQCQLsAYFWBUiwCwMIAoKxAIi4EwK4BgFm2MkcCgL0FAHaOWJAPQGAAgJlCLMwAIDgCAEMeE80DIEwDoDDSv+CpX3CFuEgBAMDLlc2XS9IzFLiV0Bp38vDg4iHiwmyxQmEXKRBmCeQinJebIxNI5wNMzgwAABr50cH+OD+Q5+bk4eZm52zv9MWi/mvwbyI+IfHf/ryMAgQAEE7P79pf5eXWA3DHAbB1v2upWwDaVgBo3/ldM9sJoFoK0Hr5i3k4/EAenqFQyDwdHAoLC+0lYqG9MOOLPv8z4W/gi372/EAe/tt68ABxmkCZrcCjg/1xYW52rlKO58sEQjFu9+cj/seFf/2OKdHiNLFcLBWK8ViJuFAiTcd5uVKRRCHJleIS6X8y8R+W/QmTdw0ArIZPwE62B7XLbMB+7gECiw5Y0nYAQH7zLYwaC5EAEGc0Mnn3AACTv/mPQCsBAM2XpOMAALzoGFyolBdMxggAAESggSqwQQcMwRSswA6cwR28wBcCYQZEQAwkwDwQQgbkgBwKoRiWQRlUwDrYBLWwAxqgEZrhELTBMTgN5+ASXIHrcBcGYBiewhi8hgkEQcgIE2EhOogRYo7YIs4IF5mOBCJhSDSSgKQg6YgUUSLFyHKkAqlCapFdSCPyLXIUOY1cQPqQ28ggMor8irxHMZSBslED1AJ1QLmoHxqKxqBz0XQ0D12AlqJr0Rq0Hj2AtqKn0UvodXQAfYqOY4DRMQ5mjNlhXIyHRWCJWBomxxZj5Vg1Vo81Yx1YN3YVG8CeYe8IJAKLgBPsCF6EEMJsgpCQR1hMWEOoJewjtBK6CFcJg4Qxwicik6hPtCV6EvnEeGI6sZBYRqwm7iEeIZ4lXicOE1+TSCQOyZLkTgohJZAySQtJa0jbSC2kU6Q+0hBpnEwm65Btyd7kCLKArCCXkbeQD5BPkvvJw+S3FDrFiOJMCaIkUqSUEko1ZT/lBKWfMkKZoKpRzame1AiqiDqfWkltoHZQL1OHqRM0dZolzZsWQ8ukLaPV0JppZ2n3aC/pdLoJ3YMeRZfQl9Jr6Afp5+mD9HcMDYYNg8dIYigZaxl7GacYtxkvmUymBdOXmchUMNcyG5lnmA+Yb1VYKvYqfBWRyhKVOpVWlX6V56pUVXNVP9V5qgtUq1UPq15WfaZGVbNQ46kJ1Bar1akdVbupNq7OUndSj1DPUV+jvl/9gvpjDbKGhUaghkijVGO3xhmNIRbGMmXxWELWclYD6yxrmE1iW7L57Ex2Bfsbdi97TFNDc6pmrGaRZp3mcc0BDsax4PA52ZxKziHODc57LQMtPy2x1mqtZq1+rTfaetq+2mLtcu0W7eva73VwnUCdLJ31Om0693UJuja6UbqFutt1z+o+02PreekJ9cr1Dund0Uf1bfSj9Rfq79bv0R83MDQINpAZbDE4Y/DMkGPoa5hpuNHwhOGoEctoupHEaKPRSaMnuCbuh2fjNXgXPmasbxxirDTeZdxrPGFiaTLbpMSkxeS+Kc2Ua5pmutG003TMzMgs3KzYrMnsjjnVnGueYb7ZvNv8jYWlRZzFSos2i8eW2pZ8ywWWTZb3rJhWPlZ5VvVW16xJ1lzrLOtt1ldsUBtXmwybOpvLtqitm63Edptt3xTiFI8p0in1U27aMez87ArsmuwG7Tn2YfYl9m32zx3MHBId1jt0O3xydHXMdmxwvOuk4TTDqcSpw+lXZxtnoXOd8zUXpkuQyxKXdpcXU22niqdun3rLleUa7rrStdP1o5u7m9yt2W3U3cw9xX2r+00umxvJXcM970H08PdY4nHM452nm6fC85DnL152Xlle+70eT7OcJp7WMG3I28Rb4L3Le2A6Pj1l+s7pAz7GPgKfep+Hvqa+It89viN+1n6Zfgf8nvs7+sv9j/i/4XnyFvFOBWABwQHlAb2BGoGzA2sDHwSZBKUHNQWNBbsGLww+FUIMCQ1ZH3KTb8AX8hv5YzPcZyya0RXKCJ0VWhv6MMwmTB7WEY6GzwjfEH5vpvlM6cy2CIjgR2yIuB9pGZkX+X0UKSoyqi7qUbRTdHF09yzWrORZ+2e9jvGPqYy5O9tqtnJ2Z6xqbFJsY+ybuIC4qriBeIf4RfGXEnQTJAntieTE2MQ9ieNzAudsmjOc5JpUlnRjruXcorkX5unOy553PFk1WZB8OIWYEpeyP+WDIEJQLxhP5aduTR0T8oSbhU9FvqKNolGxt7hKPJLmnVaV9jjdO31D+miGT0Z1xjMJT1IreZEZkrkj801WRNberM/ZcdktOZSclJyjUg1plrQr1zC3KLdPZisrkw3keeZtyhuTh8r35CP5c/PbFWyFTNGjtFKuUA4WTC+oK3hbGFt4uEi9SFrUM99m/ur5IwuCFny9kLBQuLCz2Lh4WfHgIr9FuxYji1MXdy4xXVK6ZHhp8NJ9y2jLspb9UOJYUlXyannc8o5Sg9KlpUMrglc0lamUycturvRauWMVYZVkVe9ql9VbVn8qF5VfrHCsqK74sEa45uJXTl/VfPV5bdra3kq3yu3rSOuk626s91m/r0q9akHV0IbwDa0b8Y3lG19tSt50oXpq9Y7NtM3KzQM1YTXtW8y2rNvyoTaj9nqdf13LVv2tq7e+2Sba1r/dd3vzDoMdFTve75TsvLUreFdrvUV99W7S7oLdjxpiG7q/5n7duEd3T8Wej3ulewf2Re/ranRvbNyvv7+yCW1SNo0eSDpw5ZuAb9qb7Zp3tXBaKg7CQeXBJ9+mfHvjUOihzsPcw83fmX+39QjrSHkr0jq/dawto22gPaG97+iMo50dXh1Hvrf/fu8x42N1xzWPV56gnSg98fnkgpPjp2Snnp1OPz3Umdx590z8mWtdUV29Z0PPnj8XdO5Mt1/3yfPe549d8Lxw9CL3Ytslt0utPa49R35w/eFIr1tv62X3y+1XPK509E3rO9Hv03/6asDVc9f41y5dn3m978bsG7duJt0cuCW69fh29u0XdwruTNxdeo94r/y+2v3qB/oP6n+0/rFlwG3g+GDAYM/DWQ/vDgmHnv6U/9OH4dJHzEfVI0YjjY+dHx8bDRq98mTOk+GnsqcTz8p+Vv9563Or59/94vtLz1j82PAL+YvPv655qfNy76uprzrHI8cfvM55PfGm/K3O233vuO+638e9H5ko/ED+UPPR+mPHp9BP9z7nfP78L/eE8/stRzjPAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAJcEhZcwAAFxIAABcSAWef0lIAAFgGSURBVHic7Z13nF1lnf8/3+eU28v03jOTZDLpFUISehcFUQRZFUQXy1pWXVfxt+qqq7uuay/YEBULiCIl9BZaei/Te+9zeznn+f7+uDcYQjIlzGQmyX2/XvMH4Z5znlM+T/s2YmakSJHixIjZbkCKFHOZlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBiHlEBSpBgHdSZPTkQzefozjgWZmfTlTZsEKvoL4AlngmjJLx9qffXZ7QP14x23qjqt/F/fW3m1KeN70/OCvZe9r75J15HK13QcM5HCakYFkuIfnLc4zTU/1+VR84JVsPNiqCIDIEMQHZjoWCI4VJUqFVYLZMw63LY/b/sXP8otr201R57fPeA/He0/V0kJ5DRx1flZ3soiZwVpozeAcDEg0sB4BoB7Eoe7iWgxkbIgErCH9z1fmr+8UG4uuChS+/zugQCQGk1mipRAZpDvfn6Zy+PQKuJReaHbrrxdVUURCZELwAJwcKpTAiKyESgLwB1Q6G2ZGdben31x+f3hYflqaMw8dNcfD4Zn5EbOYVICmWZW1Dg1TShuTagZWV59qcOqlplWXg2gAkA6AEfil0RT7fgJREi8MyeISFHInuGxrI8K6YjaZOkFyzL2mKY5Jg05tu2ILz69d3ZukhLINHPr9Tk2t26b59bsq0mIj5lxziGitOm+DhE5QHAQ6N1WN11qcYnRT7yn4r+i4eiRaChy4GBL0AhGzNTU6y2SEsg08D+XQaPs3HKRlV2ca9dvEyQKhBBlIMoikDbT1yciDxE5mOk/rDZrh65bWr/6zwvvkyMjbejpavjOqzD6gql1yqmQEshboDDbZi/I0KylxVQpMl3zKcNRwcAKAGkAspJTotOBAkAhomISioMEZxTn2VvhiOdB8zgX9aHFNhAPtfaEgqepPWcNKYG8Ba7bmJt/4YrMEijKlxhUwoxCIWZ+xBgXQgaBMojEZ+FJ64Unvf7D5eaP9taN1X/rt3W1s9q2M5CUQKYG3Xx5QV5FoSMPpFxdnGtbQopSTETzALJhDj1PItIAygHgVBTxH5Ulzs4vfXDhVob5vNMb6VxxeXv3FVekpl0TMWde6FwmL9OmaZqwENi7qMK9YH6JsxykbCSihQDyiGjOuewk22QFYIWgNI9TL1xapWuA4Xel6561y+x85wfZ//AjMtLdH03teJ2ElEAmwSduWZBTmmefp5JxAxFdCqIiInLOdrsmCxEJEHIIuJpZ3RQYcfU9fc+Sv60vjzw5/7bwoU//d133bLdxrpISyEn44NW5FrtNL4CiL85J0y5WBBcTiYUE5ILIMtvtO1WIyMLM2UR0la7o89Idoutfbpr3hBk16mXMbP3Z5o7obLdxLpESyDF4HQqBSCUi7fwab5bLZa2EajtfCFwB4hwi8s52G6cBlYicDF6oQMl3WJThDcszx4xQnMywEf3zS739zDCYOT4WNM75NUpKIMfww9vLXIrTulD12JcRiU8RUTYRpc92u2YCIiIQvAC8CugLwqkPw6GP/fxLy78eDUfrI8HIvs/8pClwrovknBfI+5ZCgSctFy53huZ1Xil0tVQIUQlQNgD7bLfvdEEgOwgKQO9WNa3d6hAN77qs6NlQwOyPB2XPA691mrPdxtngnBZIhp3o2vnQuMCdy9m5FaoibgSQS0RFs9220w4ld7yYLlM1tU9Rtc5L1+Z0xwNSCQ2YA9sbh7ltICRnu5mnm3NVIOLjN82rOH9pRikEfV4QlROhgIj0mbgYMzPNUPSYlIlzT9fZiYQAkEeEPCLco3qUHptHHPrWZ2t+ml0yVn/xTXX1ROeO/eScEsjN12WkhXy6l0CLi3NtixVBJURUQgQPEu4a04UJsMmMpuR/2wEk3dynlTiABoDBDAIwD4Agoum6FwHADVC5IHpn2Gdtrd2Wv/Nz/8y1O3cbQ8/vGBjFWR6Lcs4IhBn0/B+y0gfa3fOEoJuIaB2AYiKagWfAJjNHmbEfAIGQRaA0TL9AYkS8j5kYgAC4OGFBnx6xJ4XmBeAVLCrDo7beAy8Wla4o4wezHaEjz+8YGEv+9KwVyVkvkP/88MKckgJrxcM/Uq41osplikIFRCIdgIZpTFrBzJLBEpK3SPBOCfmccrhgNzlii6h0+HYQLwamfZZlSnAb0j1Pw+nYLVs7fi9IrCVB6wl0AQBtuiZfgkgAlAvCe0jKy4qyHH2//o+Vm2OR+HM+f/zQv/30SN90XGeucVYKZMPydE1VRBpA+Tnp1uU2XS+LhWkVgQqR8LSdrp6ckZjfjADcCUZPKDTwbM8QN7X0cRN1yrGcPCW8uFTM1OKWAciGxuFI59iQXw4MNeSl68jPtPi8HltUEOUCKAGRG4lR5a2KRQCwEFGaqpDqcmirDV0omqaUX7w6e5uMxQc4bg69ePjsCdY6KwXywbcX2+xWbR5YXCyEuAWJ+b93uhfKyZBZA8ztzPwUgBdHR1qe336Ajb9ugQG04vwlGbx43bzpvOybePnldn78lT4TQP2GxZ7mi1d4n3U5tFpSldWAuA5AFQDbdN0+EdmS57tc02m1W1eHPnpj+c/jY6Hthj+0JyWQOcjXbi9z6FZ9nma1VNkslg8QUZ4QohD/WIBPy9fBzMyMGBE6WfLLknDI7zIeeuaZPt9LLw8GjThHQ7PorLGr3m8eaQ+Zut73wpJK+46r17v/mOnJuFJTtWomvpKIspAYBableRCRmwAHiD6rum39isM68N1/XfJDmEYrjGjd137bFh72n7nGxjNaICtX5hFicZcqTUdxnqNG1fUqzarPJ6CGiDxJcUwXkpnjzOgFeNA05b62nvC2QV+sIegwW+pbA7KrPzzrdoJQVHIoKgHEA04bh/bVi5E0l7Ir3W0dqyx0WlhgAQnKAlCAxPt/q+swJfmXTYpiJ8HZBdn2jTCNQphqxrL53trWnrC/uSvowxm4mD+jBfL5z18gMDBShjF/hVDo3wDkg6hgJtzPmdlg5jEAT0op90YjkQcf2dLpe2nvSGS6rzVd1LdHZX17NAYMvrR8nmf7F95b9ThZ6BoGLYUQtyQ9kqdtZ40SySScJPAJCK0Pqtp6543lP9p6YLju/+5r3IOUQGaeFwFx+PLCgrEqbz719N+EuFFFiigiQWUAdMxAOlVm9rPkw2zKH//uiY79jZ2BfinlSO9Q9Ixxv2joCsa//JvaYRAey8u0br3z+rKdpIjbSdBaIrJO57USO17IAJGDGV+oqfB2ffXO6n0w+VGEtXZ0pnf88eBBrh0cnPOCOWMEUpBjta7RFUsNKAulrurBIke5jETXE1ERCJlIbNvOFAwgAqDT7gl1HHnJPzyD15oRAmFDHmnzxwD0hqNmEEAuwKEZ2Ho+ip74owVup5ZV7XA7YcoBhPRMVj16lc85KLVgqL4nPKfd688EgRAAuuOGkoKqEte8Z0m5mYg2EahYnKZIPiJyk0Ahk9jw/R9Qx5e+iZHFi8+86cLrELlIVS5PehFM6+jx5kuRCiCHiHIkaA1cZj8t7H/25qqsB+1DzkPXfedg85QThJ1G5rRAbruu1OVxaYWKoHVF2c71KilFgsR8EDJPY8aQBIndn7cdejVvV9egawzoGDit158mbrgwP3dhmWsBiC8HIW8GR5A3kbTMpwPYpCiiwPRYO1+7teq5Hxux/bWxeMsP/9o1NtE5TjdzTiCZXl0QkU4Ey8qFacWZXst8RaULwLiQgOxpDnVlAAYS6xbC+OsXO4D5gx2ussFBreNMFEi6R6Ul89x580td5QAqMfECnQFIACYSU9i3pCYiCAA2ACUCIkNaqKpzcXosKx5lTyRKf35hsIkZMWaODY7GZn1HEJiDAvnGx+a7HDa9Rte19QK4DaBsAqVPd0fHzBLgOEDNAHsBuIjEeOJTicilCOW9RQWe+fff/65P/eQnO+QLL7TO2enBsSwotSofuj5Tz063vUfV1AsEkWOiY5hlCECAGQMElIHINl07hETkBJFTAT7EuvUmq2Yd+9G/Lf+/uGHsi8Xjez76rYNj4ejsZ4acEwK5Y2OeBXY1DzYl12G1XKsqSpEgqgSQQ9MYtJQwfHMMwCAzHwAZbcjofAnB9NUUdi9i8MWTMKCVwDQjNDS8ApFoC4DB6WrfTKKpqjvN5a3RVHURCKWTOYYZr8XisfpAOLTV43CtUxWllIFVydDjaQsNIJAVBCEIN6qqsloQWt9/TfFjRsjoQ8jofGDHQGwsPDvGxlkViKaScFpVcfnidBe8ejE8+kJicSMlkp9lTvPlmJnjAEIAd8ficruk+D7ovY+oYUtIg5sBXMTMGFckhGySMso+/0KNzRGLJoaicTnrPd146Jogm0VzOe2OaiIqBThngtkSI/G8DkRi8W3DY/6HdcU6ZtFpiaaJQvzDCVLFdCxiKLHjRaD1qiIWsKDhS1ZndyIYb+CR6NgzR0Z8obg04oY87dOu2RSI+ODbS5dcvCa7UoA+DaAQjHwS0xbL8A8YUU44FD4gJe81IsbDP3qwxf/aweEoALz3KvOZK9fHt1k17QYiciHh4n1CiEgBUR4Y//bBa0u+9c6NecN3fnvfnN72/fpHK9KLcuwriOgLRJQziXiRMWYeDEUGfrL9oK/77r8OhoGuhxeVOJ6465ayX6gO6xVCVZYyifcRkXN6d8Iog4gyoMgfwq33wqU3/c/nlt296/BI3X//pm4PEmui08asCMTtUC1XXZBXWV7ovIhAy5Mhri5Mr5HPTI4YtczcYZhy90t7Bnf2D0e7pCFDnf1h4+gP9zf6ouGoxHsuL3oewCIAKyaYaikAZZFCNS6PGPrKV/DEV74yN7cqvwJQrtBWC6GtICLvRPEvzGwCaGHmrU+8OuZr6Ai/7njYPxY3H3ypP/BPt6n7igv1gcYdOQFSaDELKgVhEQEKpilYi4gEM9xEKAFwTX6mrfhdlxQGX9g10D4wGg1NxzUmw6xkBHQ5NP2mywsXlhc6LgLwNhAVgsgznUUNmWEyI8KS90rJTxvSvPv5nQNP/eXZrj1/fbEn1NEfft0KfqDBF/3b891+MJ4HoxET78urALKEIha73GL1l788Xa2efr4MIEdoqxShLSciDybuFCWYW8H8zJOv+Xy7joReF8jAaMx88OX+oJbbvb9ied8ziMufsuQnwNgD5hgSu13TBBERuYioBMDV+VnWS991SUFVVprFNn3XmJhZGUG6B8KBm7+w7a+3va1o18YVGQWaavk4AfMBVJGgU38AjDgzx8D8lMlypyHNzXf96EhTz1AkDIY53lqBGYy9O+7nnLw4CooyiGgjxlmIJkeYi6MRbcmD31n1t+sv7uz923O9c2rr96LlGTkPvqN0HizaewCUT+YYZn6sK9D7eOtY+xMxKU9o5b7mGjAQjlu0XX0/Be55j035/UOfr7lbUdQNQijnEXAVQPpbidZkyREkRrK9LOWv9tSOtv3fHxtb4gaf/VMsZnA0Js0Djb5hk9nctDHvSSWOZsWgBkFYC8A1xSRtzMwDzNzKzC2jHQPP9wVkc9OI7Bnxx8PRmDQmPgXwZIOMlQnZUZXHW5l4FUCCaJxnRNCIyWkaygXz0rK2X1HhGHqyqWlO7N9vqklXF5a6cqVFOU8QeSZRp8RgZhOSX+vvl81762QsOEFNkWhc8u1A3A+Ye7cNdlVVZe6aV+EZlT6/JHARkZiHRKjxpKZdnAg+8wPwSZbb3H3h1uxm/4H7mFv394aGo3F52n3fZnUX65V9I6Ov7BsZXXVF1u+sLEosMSqCEF4iKqFxFsongJm5jZmflSyf6K1t276jw4w9Uj+1Bd2vdsN4mwON8xZxjATeR8QW4OS9IIEUEBxE4obV+QW+1cJ14MmmpthUrjlTvGdTnu7xWsoEiWtIUBomeNcJV36OsuRHO9ox9MILmFSnAgCfjEuJhzu63vMeT0/FmrSX5NhYiwBtYOa30z+iGSeEmRngATC3SJZ3Z7T62pb/vbVxxWlemB/LnLCDfPGLBwxiaiNG5/euxO1qZkaJmVdQoyjK+wEU0MQu7ESgEiIsIlJGs1ZX17u1YT/qu6ZcMKZieX//tR8fHn72t4v/GAurKwFcMsGCXSXidZw71oUMf1x5kP5iytM7DTgBZPHq16kO9UIGraVJuLQz8zZm3vHx/93XEIqYp9R+c2jYGq1vtltU9TwQLWWghCYSppQmiHoBDJgm/yhmlU1Rq2z86lcPDUlf3OieRXEAc0QgQ0MxRiKFTXxbM3qUoYDBg8PxRRX2AptVK7Fo+iIARQRygnCiNQqBYAeomICIzWHtLsxzda9bktkaNaM9Y/54rLk9Mqnh+Xs/MI3zLzBNIxzfKyS5VEVdi0ThzZMJlAhkg8qlLIxVaxalbe4ejETbekKzEnZakG3VinJsuqYrK0mIyuQW7HgCZzD7pGk2GYa5q39kaqUQSvPtSpZXV1VFKSrMshUI5nwiWg5QCSXcSk527TAzhxhoMSOyIR7jjl3NI3vjOvfFddnT2RueE6EEc0Igx/KDbTAAXw/g67nr9tx9BdnOskxv+iUE8W4Gyoio8ETHJX20lgFY5tTVtasWpu9ZuSjz8YHg4OZ9tWPDP2/vmfTW4LvfDf7OZ8NPZHqgKIp6GQHFGKcXTtoVFkOg6BPvLv/JE6/1jd7bExqd2p1PD2sWeW03X1HgJVKvT+YWnmhn0GTmtlgktj0ajmye6vUuXpVh2bgiw+m0Wq8E0QUgrE3uPI1viWQeZuZOZtwT8clt/mGj/nt/aDht27eTZUYFUpEGuqgMouCSNdQ1YvAvf7l7Sr3CPY8MxXR1tFVVex644x2lO4vz7EUaK5eAsCHhqn1ifyISlAvmjSTNxWkW1xVrquz1ZR9Lf2r5Q617+7qCo++fhHv193/f7l+9KG3vTZcV/4SF+CyA/PE+NiJyE5FDaOLW99witn30y3hm7drZsI2I5SDl8qQ4xnXTSdo8xkxp/uyZXUM7tuwenNQHWlEBUZRrcV6+bN6qrHTLJptVq4aglQDcyY7qhM+JmYNg9DL4KTNuvjQ4Em353v3NzTLOAdPkKUdmXrXerVXm6yLUNGhs7YTEDLjNz6hAXA5VVBbbLPlFjnKHy6Tqcle/GcNYNCpjrQPBCeeW3QNxCcTDAMJHWv2RQNgYVIWwFeVYNZdDHVSENg8EFxJD+bH3YiGCzsxeXaiK5lDTPDYtWFHmEk6L0lMN7jYFQnEp483NwRM+1PbeiFmaFRqC37ePna4eUhQHxt84UJFwaFzhceiDZbmu7QX5Qf/kn9Zbp7rMnZ6dbilDwvhqxcSL4zGWsic47Nvf1x/qb+k5+TQ0zwmyWVXV6rY7ykuRV5BjyZ5X5FhPJNaAaD6AkmQHcrw4TAARgEek5JZQxGhr6wm9asbl7qGxaHdjR2BKz6g01yrsVkUDKWnzS9zZFbmqHoyFDx4ZjRnA5DcWJsuMCsSe7rYUryzPEOHQ50utsH7lnxc+HOiRr3Z0h7u+fP+hKfUY9z7SPgZgDEDTp28u2rx2kTePVOVOIloNwvzkbskxvJ6xtpTAJSxo4763le0H+MhXYPw8aOf6/lB84POf33/yh+ob60f92DCql74Mhz0KYP1E7RQkru2szYi0H0rbGwnu3Y3p9ig7CapC4isfql4DwgUEXIzJRVgeMuPmnrbtddt8veMvhq+bD1FR4vCUra1eCuBWAEuIeGli8+TkIytLDgPczODn4qb5+6Yuf+vXflE3jFPs7T9wZa6lusyVBYv9EiK6ipnTIi73e5293QGcaQIhAoTKREAmMZWDqMKWTpcU220t//6Bys1RC7cHpBz8xS+apzL14r+/OOh7cfdolEj96aVrs59aviCtUFFwC4B8Sux6HfdxECViEaiCgSyCUmiN8r4cUNO//1PlI2XLBofyKkd81133xpd2sB/8rZdh3FZkPpZjNYeFotQkp3Un3/olUoXAYiL64AcuLG11e9QZr3p75Zo8y9rKTDcpuJVA1aAJxWEysz9u8ou+sHz2jwdhDpx4v48Wlrtc127MzSn10CVOuzaPwOeBqAggd/KZvkkczBwF0AOgxTD50bo2f9vDW7qOSMldgbAZxhTF8eGVUNMzHF7kFcwrKXJcQrpaAaLlADxIdJozxowv0okAShSTzCTQPM1KbtVCxSs93r6wla0+07QWZNn6fMG44Q8Zk+oBmrvDMQAxAAeL8+z9WemWzIoC23wpMSolGaRQHhI96DGWcCIQ3ARyMVO2KsmlgPJXLPC2LlgeaS+uifQUZMrBQNiUY0FDAsBwGDwcBn+wL1JvU5W0SIatF0DhBBZiIkIOQCsXlbqzFX3maxkW59icZdmO7BiZSwFkTSJmI85A99BYtKFnIFJXP/TGD9ZpU4TboSokRMa8Imf2ioVp8xTQegJVAVhJgACBTrDUiCXOzZ1mzGg2o/EDfQF+sbEz0LPryOiU6yA6rIrqdena0lJkZ+U486jIu4KE2ACiCmZUJGLqMaMx7adtF4uIjlZerSCicmast0Vw0MZq47c/WfPtB57p6vrbC909Uz3v357v6v/b8139O+9e+ZnhEBUNh0QJCF9MLuIrT9QUQUIHsByEpVKlS2q3F+yq3V5w5Lsf833j4VeHgr9/uu8N8+L19zV25FZ6tC0fXPhHALcyuEKMvzuUCSDdnadcixn2d2MGxUkuN0guAYtFk/JmYx4iKX91/5MdO7bsGXzTM9+wLM1xy+V5HovV/mkStIiI1iUX3+OuaZi5A+BWlvGvj3b1d/Yc7mj96ounPO2hdYszMj709tIyRVU+DsJ8gBeTEBoAQZSI70lmt5wxZmubl5K9cAkIaaoqvrhucXpdbpa10TSMx3NK/YGyxSP+22+f/FD8n/e2mlGTBqIGhauq8N3CTHfJwsKsGiK6EEAWgMwT7EIREdmJUA0gn3WbfVl1Zr3L4zxoxGNbGzqCoRd2D4eXAfw5KQdXx8JPQresAikuADnj3B0IEBK4FIlsKKCZybqiEFE2AdkEpL3uITYOzOiJxc26/n7fc6FwrPfov5+3yG1dNs9pId12SWG2pVy3WKqFEKtASE+mGn2T0BOWbwwBGDalfNzfN9wYGBhtfqRO1ob9kVBodMpGPlpZ7XGuqvY4BalX5WfayoUiakigBoAn6dVwWnMRzKIdhAQRMgBkCEEF5YXOsrJCR60Rix0qX4aB5Zf4zf/7NiJNzSwnE3r58KtDEoAfgD+soj9uyOKCNE+X06blCUExEFkBthJIwT9eNlGiaE4egDxWtfySfG13cZ7LGY1G2i26GNpV62MJjj2rcnCBP3LA7tFaVV0pxngCAZI5JbgGgA+MAWAG4lwAQaBMAioAFE5i9GAw98VjZktXX/CIlGy47KoAoFeXONIuWp7mJptrPYAaIqxJbnycaAQ8GqceYZbdzNwxFohvHurzNQ+3DrQ+u2Nqo4ZFF6SpQhBgryp2Zl24KjNbIe1SAlUCtDTZmZ7eJB1J5oShkEjoRAkjH1msl3ccKTjYcbjglf+4lX+37dBw33f+UD+lgKRt22Bu2zbUcg+GWr77mUXPF2TZigDlQjC9m8HzhBAFJzpOCOEBcBGAi6w22y2bVln3b1qZu3kgOvrkwUb/4Ae/XRe86/YFv11W5TnEQnw/+eJOOoUSJLIAZDK4bLzfvQXsAF8DIkGYYN3BbDJzBCbf2z8UfeXbf+qI/stNZfZ/vz3dDWg3EmETgNVCiJLxT8PMjB4wOpnkb6OxsZfH/MG6j//PqZePfvcVRd6L12SlOTX1o0hMfVck38WsiOJY5oRAjoWIbGAuA0GDIFtxrr3lvVcW74z65JGB0aj/xcMDU+qdHt3SF3U61H5AvHbx6sxoTrq1BKDziLAAiSwpJ3Rpp0R122oAFodqy6/IUVrfe6WyIw8+H/rD9cjNOwCgFKCMiW/phO9ZcsJzdRKuHWSAyM/MxvHnooQ4JvyQGPAx45DLKhtLs9XhW68qWlxe4FxKpJQBdAEIxYlp2kmOZ46CMczM+2MxY/eoP9b21I7B7aYZ7YnGYlNeZ6xY5Nbysqw2j82ybGGpa5GuKqUkaAMSI/N4LiqnlbknEMAGoiJmLiSBsvxs25G3Z+Wzv9vormv3h6cqkGd3DMaQSKwwuKjC2Z7h1fMFCROABwQv4SQCAbwgeBiosKvWouJMy+HiTc5RbqzbwYPxFsrNrU26ck8kkOTp3gQDCGBSAoGR/K15fL3DCUeOfxAAcNhh4Va3VR27flPeciZxFUDLOWFHohNtS73eWOYYGANgbInH408NjYZb/v5C99Akr/0maipd6tIFbleh17WGSFxEREuJ6IQj+2wy5wRyFCIiEHIJyAHoQneR9tnVhWkNf1679p5Av7mtpzfS9aU/HQxP5Zz/9av6IQBDRDj4oRtKf7RucXq2y65/mhI+XFVE4rhs8EREpBChhoFFzPxOml99EMzNLM2HmZAOkFsIMaE5ULKUAIIENAL8F2daZPflH9z31NPNYGwb/9h8u3X3O0sK3/98Z+/Fg9HoUiHEB5Ifk2sSW7qQUg6DuYUlv9LjV/4fiCpJ0NKjojiZKpjlGIAmMF4JG9F7DzX5Or59T9OA5FMz8n3t9lJbVbEzG7p9o1DEe4ho8TG+dXNixDieOSuQYyAg4esEoERRcLXVIXLTs/W2azfk7obNOiRVzbd5c8OkXxozeH+DL2QiPvSJj6tPD7S72kZ77aWA2AAgDYnNgzcsqukfieWyQSQYdAkSC+OJnmGcgTAYh6SUnUYstmtPQ2CXLxbqOOQD//znE39sf9/Rzd99tF42jPpbVSuMdUu9Vk2oNYpQChi8OOlWMl70o2AgmwQuA1EVEjtfJxkx2ABjFMCQlHi1qz/curd+dH/MNHp7hyLBqYrjkrIysjvhgDeUk5FuXyI0rRiC1hBRefKdzklhHOVMEAiAo1Me8oJonsVNS7NcStP78ovDyEw/HLPaA5s3N0zJEXLr/uHw1v0I//Iv+Mu+Z4sKRrqt2RDsRiLjoDfZM7/h5SWnNnkAcgFRiUnEYDMQS3quPiMNc184EH7qma294b2NAQP3T769n/ntPgmgvrzA1rx0oXWv0GwXCogaCBQCSD/ZWiqJQom4//KJNhaY2QDQC8ZB0+RfNnYGOu99tK198i19IzcsXCiyC+Ch8v5qFuJmgOYTUU1iJ3xuiwMAaCYNLRcsy7B/8uayTCL1XiKxJLnwnQ4MMAyGHGUSRySoZWh47DuPvzIw8MiWvinHhWemK4oZF+Lut8ErM3OKOaegQlPpowCKGFQmxAlnIcc+uDf8/2T6zCgx32cyH4xL88Vv39vQ1dYdCjNzdCz41pKgeZyqIJCe5tEsX/lIVbGuqOtVoSwB6P1EpL3Z1ebkbf1Hm7mNgW6W8ltRi+yO2GTrf/7nEd/QcNQMRcwpx2ZcuCoz492XF+Sl2+wfURSqJIWXEsGFRNumpWNm5qCUsiMSDm+674nuwBNbB6bdXX6ujiAxZo4AFAagg9h73E6NCoICpgxiLhdgV7rL+rb5Ja72sRVmKzMfcaZFo48/F5jUGmVw2DQB09zSiBHuDxD3DEbXF9Pjut1SAqermhlVAFwgOI5px4m8ViUzt5qSe01Ttu0+MvpSJGa2GdLs7BmM+EcD8WkJAhoLGBJAxJAce2XvcKcqlH2qEGMXLPV6QUo+hFJIQCESo8WJy88lrHwBAEEGatNyAg3uzHDbb3/LtXGVR2O6HOnoDk2pvddeZrOM9lt1oSiLF5W7C9PdeqVCvIwIeQDSkymBjutM2ATgByiSDO46+jcnmJMCYeYQM/cz0A0gjcAuevPDpWRPWUJACRR18dqazANrazL2Gab8fvnSgYHNzwYiRJOfM/9oOwxgtB8Y7V9+HY5o+ZnFcDhWAuJOJLKC2BOLkRM66MUBRKWUz8cNc2skbj7564db+4Z9sRmLjAuEDPnzv7SPAHhNVWjreYuqXxaKvlGQuBTAdQAcdOI8VZwoW41+AO2GlN8vWDBwaMGa3qY115zaApwZtO95r+vQyzlputX6IQALwVglhBjPQMqJKR11AdwLIBuJrfc5I5A5OcVi5i4wN8iG2rtgtWlUWLKaFLoGQAlLlL7uyH7cYUjEHYRNk5t1m1Fnd8a2HtxrbN5b5x/87VMdvqm2vzhD1aHptn+9tbwoP9NWBCgbiHBZ0s8rK5kAOwrGFlPyTil5/xd/fGirIWWAGf6ewYhhmjPsLHRse3Os2h0fIucnPkHO5+5buM6IqdUCYiMTryKQk4hEsuPpgpQP+3yhnUMjkdYf/a2r3eaMResajSkb+959Sa77vMUe96Il+g2RgLY0GtIWkSIqCWTFSewZSReVNjB3mpAP+AKBI5FopD8vI+d/QSgnosmmKDo3p1gESAZiRzrC7TFhxhEa5dJ8m8dhU7o1VQsBnAu8qb4eAbABZBMCWjyiWcciKuVmmL55xdy5tMrTFJbxgVDEjHR2RiflI9Q+ZMQAI3aw0RcbGI6NAUIrz7fZ3A61G4q6gBlBgAKGar7U0xs50N8fqW3rDXVKyYn66aeZ9r5I/D++jpE1F2B0b93YPqduDeZnWEi3qAyBNGI4DNOsC0XMtqaO4LZAIFw7Ohbpbe8NTWm7vDBHE067ols0S05lsbO0INuRPzagn0eJvGbzCMfH5iRIusGHmLmTDXkwGjVbD3cFdqalKe1Ol/2o0XROxKIfZU4K5Cg/3gGjf9jfB9T2ferGwl3zS1w5GVmeywB6F5hrSNAJ/aGIyAVCDTMWaTblwoWV7vq75rn+3hodebixK9D585/3TCk1zy8fag8D6ADQcdetxS8trXTnsMV5HbPSJgm9Pmfs1acO9JtPPNE729lMAABXXgkGGuvXVrubbrkk+9msHO8qTVVyGFwaDkWfbe0Kdn7j142nbOS7Yr1DXzzPmZGXXvB2IrqKQEuJkDueq2TCRYVHADSw5F/HA/FX+/rDHd/8VV34jjtWiMtXl9vQ2nWqTZox5rRAjuWvWwYidutIj6arj75jredAVZE935qW9jYANSCUiuOmb0eNJyDKAPNSIuTn6e5N7jxHy5c+6NkctXHtaDQ+8ItfNE9pWnHfM/2Bh18djkEofwYQYVDMUE1jYGDuldqrbQvJHz/UHdf1/oNE1ABgp2maw+GoOeXGvndDsZ6XaU2zpovFBTn6pS67UqkIUZN0tXEmt23fBDOPMrgdjG3hQOjZjr5w55+e62+WhhyLxabejtPNGSOQ9v6oCUTDALqq88SwSrLFGtLS0z1a1O1QAySU6qSbyuuu2ck3ZgGRBUCaTehuq40L0+dZhsJ2qQ5H4u2l+c4OUkUUioi3tIxOOC1q7Y3EkZgKTDnn1ulmLGhwckv5lKLuios9pBCrMExbdak7ryDHlm/LFGsFiQuIUEFEuSc5NBmHjqBk2RgMGw39w7FXwoHgq63doYEDjWNztnT28ZwxAjmWP780EsZLI2Gg8+fvu7bgwUvXZqRbNdu/ErCYiJaSEA6cYHFIgnIJlMNSLrdHlFoblOZv/cuyH1CGuxEee8dNN/1lTs1/Z5u77too0nSZjYGhxYLxAQDzmbCECDSeg6RMOGEeAWObKaP37GsY7fnefa1zKm/xZDkjBXIsL+0ZDjR3h2Of+Ph5v+FgqEgGQyWC+R0E5AMoPYGvEiX/rZAALwnzcwgG6hCLtH38XeV/Lqgc85fUDPluuWVuljM4DdDy+W7X+mXpXmfQdx2FUQbGEhBVEuDGScSRtMB3Aeg14/E/72/0dW7ZM9ws2WwfGotNaRNgLnHGC6SlKxxt6QpHb43RTg6aLTwazRRClFh1EXDaVAfwButt4sUmVpMeAG5AZiIeK0Qs1rF+ScbueSvN/kUX+LuryhEY7ZGyP2ycE6OK3aoIq64IIrjnFTlz1i9JL1Bj0YuR2HJdmLQ5Ha+Mo0VQDQDDasRsVKNmY3s0+nhju3/45b2Dg5jl1KFvlTNeIEe5885HTSQMX/0APnnxqqy8D19fNl9RxEdAXAnQIiJSj1tMEpGwAKgGoVqz0EVtB/MOtB7I3fnVO+TPSvcM9a17oLmX5nAd7+ni7ZvyMq5en5tu05XPAqgG0UoSQsfrfppvglmyweAjAJpNlv+98PnOjurnu7vPpud11gjkOLi+IzB272NtDRuXeH+X7rWUpHnsK0jwKoByQJR9ooOISGFGERHpQkCMFjlb915Xuu9f4+bO/QORsWd2Dpwxi8vJsHFZmrW8wG6Hoq6bX+xcqKmiHEKso0SMywnDXJNGvkEAg5L5lXA4ejAUirU9/Opga2ZbIPC7s0gcwNkrEHT2hYOdfeFgSabST5B5Loe1T1XJIwRE0qJ/1Fv32I9AoYR4sgVRXiDHXt+YY3etihitlsax6NkmkKWVbsuGZekeqNp6Aq0FaAkRZZ3k58wMZoYJ8ACDm2MGbw4Go/uHR8Idj7/SNyfKPkw3Z61AjvKzh7tjANoAtH3x/QWPVZe7sjWr90oiegcBSwgnNnAJITIZyGTm8xSLQoqubAXw0Olu/0xCQl1Hir4aEF84ifvO0dQ6DKAP4Hpm+duQL/hSe2+o6z9+3TLnt7rfKme9QI7llf3+eENnbExRg7uXL3CbBdmW3RbNsgHMBQTKBuENybBfd9slCNDs1HOcSZhAIJzYmR8AGAEwDwHcCsht/cPR1pf2Du2NR2PDY/74rJR3ON2cUwJ5cY8vDmAEwHaXs+BwZpo3XVd1CdA6gO10gmzxRETEb0gVdDYhGBAnS4LHzAGAW8D8HEP+sW843POnJzvP+lHjWOaqQCwgpP3Pp2rWSsaM1CDXNSJFEEHKLSCqZSCdWXyMgLRx5uHnBMwYYuY+ZvlrBvqYuA8QBfPLPfm//urKaV+EW3SVqL3HAiAdOGGBpFljTgqEEw8py25RL8cMu3Qku04nErU0jvcQPkdhHYmEEMsB+CgRWAUhCJp1JgZSIkipIhEPcsKaL7PFnBQIQC5mOAXRhzDT24bHTC4YLDD5NDpnLwQHwDYCvStpWZ3RyzEfNeCeJPpxFpmTAknkoiHCaW5f0oY4p17QbEAgkXz+M5Eu9c3X+8cTn3PPfk4K5Bjm3AM7h0g9e5ydOzMpUkwbKYGkSDEOKYGkSDEOKYGkSDEOKYGkSDEOc3UXywRgIJEFY0YDbpheLyEgkKiDruA0bW/OYUwAcSRCZ00Q5Ixao143tlA6Es9+znyXc6YhbyCR7LmdTfltJHynZgxTMAkIF4GcJOhfkagSe7JkBOcGzP3M3C5NeQ8Iw6RgDCZmzGTLggkCumDl/4Eofy7VCZmbAklmDfnj0531/qAxI8H+65dnWssK7XabItYQUE2giuSLmTNpL2cNIg8BZSToagZamLEnakQPdA9EfM9sHZ72mJj1G4pE9cJMC4Z8ASRKSc8Z5qpATACRl/cN9fQPR3sn/PUUsOqCSJBWUer0FubbNQdRIZhqACxBwlkuBWAHkR1EqwhwMLjHkOaeIV/E9/L+oRE2pRmJ87RNfUuWFIpql8uGIV8EOOWy0TPCXBXIjPDx6wu06jJXZma292oiugaEGiKqTNmMT4wQIh9AHjNf5LQ6P7hqoaPuN1/N/kP7jvqXW9pGu3+yY26lCZ0JznqBbFrqVTwuzWG1WfNKi1yrHU69hAhrQagkOnkBzkT5BQyCudVgudNkbjyNzT4tGHHZFouamtUqXgFQCCDnBJnVj4YaZhBQxaAb0woyy+F0tb0rjV8zNB6MSNP/+ONzI+3qdHPWC2T9YrdSnOd0e9PdVYJwAxGqE+I4WQmyBAyOgNENya8azHtNxtxLHPsWMeKyPRY1g1aL+hqI1iKxi3eiNRgRIR1AGpgqvPmZCz35aChYwH0Ru4yPmfFQSiBnEL0AjazIytn99rJK1UK3CaL5BKwgIg0nKK12FCk5BHAdwPsY5s9e3jPc89O/tHYDMOOGPKuydQDALx5u8/9mc3sAoC+857LC3KvOy8lSLcpnAVQSaJEQdFz5gkRRUxAWEFClM1+hRWi3k0XdfV9f/uP7n+7p/vuLvb04w3NhHctZJZDyQruloshh7SdlZajYVaLpokYIWgQgF4COxFzhjRWOAE7aW3wMfqWlK9hc1+qrZXBXU2fQFzfknFo0Tjdxgxlg40irf0wQzHUl4imb217vSHc2MitrAPISvanU9VFXeEGgAiJSdU27YWGZuzlmoE3Gje3tfZHokbbAGZ8F5qwSyOJKt+Odl+Wl1yrWmwhYSMDK5Jx6vKKVDOZeMFok5I/2N4z23Pd4RwfOol5wMuw8MuLfeWTEX7oJ92WU5eTZ02wlgLASYV4yg/ubSC5OigEUAUrVyoXph1YuTK8zQuGWJ7cPDqcEMvvQDZtyXRcsTnfZXdY7bFZlsU0RS4WgXAAaEqWRj59OsWRpgqmDgU6Y8mdI9zSwy9H+sY89NhKOmBLnmDiO5asvwkjbOditaCP9X7x+4UczMrQCe4ZYQkLcAkIZXs93/IZED0RELiJaCWCpareed/F5+UfWLM3ZHjeN+/fWjQ7d83D7KWWYn23OSIHMK3ZqaW5d1xUqripxlWZn2PKtDn0NgFIkdmNOaOxj5iCAADO3xOKxw+GI0XqoIXQA7kgv261DQ6Oxc1YYxzISTBQ13dUwMuDuUw2Lm3hxoT3H4dDKFKe+DEARgd0MchyjEoFEPL+FSBTZrAI2iyripjJWXuDsWL80o04y9fqCRvhQ0+gZM209IwVy6boc28rqtAyvTbmOQJsAWkpE+eMdk6xw1A+gmSX/wR/0v9ozGGj93p97zvhpwExx38vtJpJpRr/ytryD5cXOfKsr/XIwrgdjPgOlr28CHwMROQhYAMICDeraBaWewwtL3H+Ls/LkkVZ/76GmUf8s3M4pccYI5COroZbk2tNQVrY6K816ucOiLADEIhBclMhIckKY2QdGu2R+NhyPPN/ZH2r/1V+7OgzTCMQNOWW3hlsuzbFWFtq9NpfjEgBdwbA5+LVfHjn4lm5uhvnkzVWLc9It6SQ4LxoMv9bVH+r7xaNT6xh+vmUwruvD3cLS/ddbr8zfMb/Yma/plstBvB6EKiLhOtFxQlAGM68CUYXK8prKQlvTf39iySNLLmzdFxW+vne8Y27n8p3TAinLtYo0p2rRNMVZWYLiwhxbPgqcFxBoNRGVAch9c0Z+gMEGgCAYY6Yh6/1Bo6m9L/xaxIjs6x4IDzR3BaeUSmhekUOx6sICkLeq2FlSXuDItznt6xncE4qYgzUVHgA8wsDY4WZfkHl2X3pNTTZRNOoAs4sZmfOKnOdnpelZQiAnElTIblU6aiqCzYjLMSMuI7U9E9dD7x6LM4AYEB2sbfFH4nE5oOkWV16mlbwubVhTeSEITgKcAB37XWlEpDKziwiazSLSywscIyU5bj0q0LGoAu0u3YxEx3w0pxJiJZmTZaDB3MHMR/p6Rz6kagqnpTuXCBIfArCQQZUnyyN7FMlyFMARML8U8Md+vbdurPf7DzSf8iLx25+sdpbk2fNB6kYiupUS9TKyObEFFiGmRyTL5yXza++9a8dBU7LELGU5v/76hXTzzTVC6+xczKZcKSW9jQmbALgIJJh5AEAbs7wbQ5GtowOR1g//pv6Uc4+975oSzwXLMtO9bu1TRFiWqPIl0sY7Jlk+u4GBJlOaPxj1jTWEIuHh4pzCP4Awj4gqJ3Ptc7YMNAAbGNker+MTQggXkVgOouJk73SSJMscAdAOoI1NfnBf/Wjn5lf7Gg1DdvqCU6///clPQnUIdxZG8ypyMuxXE6llAC0ioICInMDrLbEQaCNBVAnwDZ+/bf7DpmnWm9LYf/eDHQP+4OkpwKMIos++rzI/L8c2n3oGakwDVwMimwgFIDiSMS9ERF5mtgDiE3BbL3dZtbYv3lb1EAYHOjA60vNfL03NWfDZ7f3B3bWjMVWln21cllGybnFaoa6rNwNUAKDsaOGdY49JPDcqBHOaQsqXXQ7XEbvV3g1wOjC3BpK5KhAdBK/Fqq8D4CWihUdLqZ1AG1EAMUi0GbF4XTwWOzLg5y0N7YHBPXWjU3aVr3SoWsSlaUsXUp5TOIsx7F1GQmwAUARG8fFTOgIJEHIJSAcotrzKO2xI02OacbM0b6h2NBAPSEh/V+/karNPlYIMqyIUcqiqsC+f711MwBKEI6uY6Dwi2ECkHffMdCLSAdTAong1XSlZVuXthDfixFDUUlzP3b6QER+dZHLqroGw0TUQNgAcyUnT+/OzLE0Faeo8VVOHVV1nKMgjkAVv3FkkAI7k2jFN13QvVO5DourXnAo3mJtTrCnAzLVgbmaT/3Ogqaunr7Gz+6svnprLNANUtymnYP9VhaVCaJ8DUAbQ/BP1ghO0KZjYHODfxRHfHaLg5m/8qC3U0hGZ1tEkw6WL/719odvi0S7VHMpqgD5ARPajI9xkkZLjBDQAaGMz9tVHXu7r+e3mzvZTbdddG6Bmlebk5iwoKVNV8WkiqiSimlM938k4l6dYJ+WYWhX9LPnpkt2DR9KafG13MDdF/KFwxDc1F+x7AWpbkuHpmed27tCUd/hyrGVEygKAFhO9vuB8k7GRmV+PsUsK6HUoUXbaC6KrVagrbHBsfPflxc/6/bE2MxY+/MTW0Vhbb/SUxJKdpovrNuVaNUWpsluUImuafrWii3IikQ/ATURveqfJAptH2/am9J7Jf8snwMOK8qVlC9JaXE5LnTTkExmFwZHKlf0j73//5NdUj9TDtHSNDdsONsf/77v0QyXuKG7ck7uMQBsA5OEfNVnmfKDBmSQQM/kXNk3ZbkjZHArGNxc1jdXruwa7X5yi9dtmUUSxSuImIvuBUldu4/LMrDaLehkBFcS8IPnRnAgDYCNhdEwUByWCdtxv1OSHWiOgzNNZ1KxckBZiabjiYf/godbIyKjfjIwFjUlvM7vsChGRlptptVywLD3ToqmLVCGqoYjrichFGHerOxFjnqhd7qB/FDUFkKx/kvDk9QIipyjX0VKYYy8xY7KxcIHSufrqkfjPf8qRvXvZDCY8DcZlfx8YiISASAhO9CMazxn1p/c6rGqaqlBMENkZsCWf0ZyO/z8jplhJI187gCaW+GNH18iWtp5A2w8e7Jry4vsoH3tXaeb5S9NzLJr+YRCtBlBNRJ6JmgHwIQBtUsoniehagJYJIXImup6UzAACxFxHivLXWDiyt/bZXU8/Wg+5q2d8cS8ud4g7rsnT0rM8F+i6tkQIug2MIgAecfLyN/9ouOQhBo4w8++J6DIAFQCWTrQbyMw+Zm5k5hfjRvwPB5t8Hd+8p7FvouudjC++t9heWeLKcXhclxDR9QCqBVHpqZ7vnJ9iMRBO1qk4GDV4+8BItO35bf17/YHogC8Ym/I647K1WXpuhsXNUJaUF7qWKYpSSkTrAeTizYFC/2gH82gykcEuEO8G4CdBxQRKByY33098imwhokKAr1BUZX7u/GLF1j98AD2BtvGO1TQlz+2xb1BV5RIilBFRHhIlIiY3RSHYwfCCKJ+N2DNgfhGqfj4BSzixK3fCjiHp6FkAYIOqqPaCbEfrrdcUbwsb0SMj/ujwc6+OTsnQ+uye0fjuxtCwZhnefv6StHBhtq3EatE2Jrd1808QrDXrzG2BMEeYuZuZX4wa5ube4UjXIy/1nLI94/ylafqicncas7qOCFcQYcHJKt4e1w4/M7dC8uMguRUEIYT6GQJ5gDdXpToRiZ6adAC5zJwpVGVhZllen21vZAAYXyCKqmQ7XbZLQXQVgBwClCnO3q0guMDIghn/G5gHWdV9zOwgwI2Tj5w6EeUAyFaEUpqTbmt520Yrj0R9g229wcBUBbLtsC8OYAzA/qIsrT3bo2RZNFVAwJqM7kwJZCIk8zCAIwBv5VDgF9sOj/Z95/7O0VM93xc/VuwsznEWpFvcG4jo/QCqlEmIQkrZDeAAM57oHer7y6Fm/8DdDw5Gv3DbouXLqrwrWZq3gaBMPMFJTM2OblMDQHLubYWgfBBOunY4BjuIygUJB46bs0uWBhEJGqeuCRERmAsBfr/UXY0tXaFX/v2HW++98+riP61flOa2ZlneD9AGgFYIEoUnPJ6QSaBMAazOtHo/nVHiaX/gW3m/CAdC20fGwk2f/GFjYBL38To/ebB9FMAogK+//5qC71+yKsNts9vvArCICIuJhBdzYBE/RwTCBhiDAIYh+YWW7mDr/qaxI4jFhtv7w1NeZxQUQGR77O6SLG9Ojtu5yqboxQQsJ6AA4/ttRQD0E6HbRPyVzr5I694j/r3+UMAfMwx54WqHluEVS4l4FRGdrLTfsecLAYgyEKRE9SR9qvcyAXEATWBkMOAhOvn5k6sNjZiXuBwUvmiVa1fPaFg+tj0eUp3qjupSl7+80FFLCl0EIJNAeSBYcOKP1J7MHXaFpmt5Thdar9uY+5oRwbAR5ZGn9vVNacPkUFMgJlkGPvc57enBTmfzUKfrMBS+AIksMzk0ThToTDMnBMLMBhIx30fYlHfXtfj6f/9Y+ymn+ykthVha5sy8dEnJEpP5n5Cw6M6baGuRmcMAmgB+zeD4bxo7fUO/f7xjGAAqS3TlwzemWXO8Yp0guZFITJi2NVEEEz4G+pnISzMhEMYhBhYk1zfjnV8QkSDBazxOUq/d4PnNfY8Px3bXhoIAXrzlyoL9xbkWtyIUFcAiAJ7k+d70vIjIBcAFoiLNalnmsejtt15l9YdHuDYyyr6pCmRn7Vh0Z+1Y9LeP4aHDL+XnDLY5ciHIDqAKQMYE9zWjzJpAEv44aGBGG+LG9wdaejuG2vs6v7uV/aHo1HMu9feDarfn5B5+LTfPblE/rSlKmWQsEEI4kbjPE33QLKWMAXQQQGMsFv2/qlUDg4s39vVXL+JwT498vR1WzZpfmFH8DkUo6xlUOV53xkf33ZjvRSK7aQGY52OKBrxJYADcBEZjsnTc5yZxTKWuaZbCrLx/slvDzwGhRgB48Lme0Udf6vMB9JUr1mZl3nRJXo7UtI8DqCLQsuS08ERiKQVRkSBabE/jNpsHHfd+de3XSmr6+qo3tHZnZ0/efkIETvf29hvx/sFvfGPxp9xCybOFMY+l+iGAypmwQNDpLZF32gTCiUJ0zIAPgJ9Z1ma0BQ5ZBiKtfzBlva8/MOIbiPuG/VMy9NG8QoetJN9qDfWJxUrMVep16uWqoiwCKAuJvf3jh2dOinMUwBhLubepK1Tb2R9pMeKxtkZfIHSwNx5sbv3Hi125wOtaUOrOV4SymojSiSbcuw8DCMSCfEAocGhWyqWZcV5kACaDOhg0IpiHQGQDTr6uISKVAA8LsXZhmafekNS7df9gIBqTHI1JE0CgoSPAL+weirCiPJeTbm1ZWObuAXghgDSA0ilRq+7oMz2ay9hLCpkkYHfq4jrFcHSEerMa33kZ14bjseDmF3yTWqMMj0oJSPna9iGfXQjSY2S+E+JJ1WMp65/n7mGgEoAXBNdMmiiOcjpHEGZmyaBegJtNaf60ZEff/vQdg+0/PvWPhy5YlpF26Zqs7B2btTsBLFQFaojEuB8wMxtEaAFzgzTN/315z0DnY6/09Z/s9++6uCC7JN+xgIiuIiJ38gM5eaMSnUBreEi+pFpRpNuUdTM1g2YCm0z1ksUBhY1WJKzUJxcIACbyMNHbL16bt2vZwsyWrfsHj/14eW+DL7C3wRcAcM8FyzIzFpS6ysF8J0DVIHgAUo9ffiVHmBwQciTLu3pbXY19La4979oof1a0YLj9sed9QaLJv+c//KHdBDAMYPiTQINroTenv9y5hoW4DcBCJCoSzzinSSDcDSDI4K3hQGRr72C44wd/7ey2+WKRhlMQx/uuLEhfUuHKUnTLO7wubYVFVyuFEOVIhHy+aQhmft1FpQngFkD+LWiV+4fD8c7v/KC+bzQQP6FNZeMSD338+gIFVsdNJJQ1QlDaic5/LIl4d+xg5nu/+1j9QFmBPee2t5dM9RanxN9f6Ai/tm945H8/teTHxLiKId9BJI637r8OAYoQwkssr0p3i8wvf7n6v55+uk+++urQ8VNb3l07MvKv39134J8/XP6Voixbrj0o1kKIK5lpHiVc09+0rhMkFBDKwMhTdNQMdKW1PH3P0ld++O/xJw43Brt/+pe2wanc33xAVjX7B8LfO/Dch9+Rc6S8wJGnWlwXE2MteGbLds+sQFRFwm6PIBTZ6w/G9IbO0I5oKHpkYCQy1NkXnlJEW1mhVXHYVKuuqLnzipyVRbmOIkXX1wGYD0IRTtCjMANECAPsB3N3XOW9oajR3NTo3xWxcstoJD7c2R8+6ZTOalVtOVl273BYLDQZ5ZicW0Rn/0i0pbMvVNs5GIp5PdqMzwPG/DHu7gsZubUjh4MZ1vmBbGsPErH5JxMzUeJeSlQF4ZIsW5bbpvpwgpr0oYhphiLh8KEGX9fQYMxvC5Nammd3uh1ar6arYWbOJZCHAetx1WotIFgIVG7EVLtvUDWz3PFgeQG1LZ/vPYKY2R+NmaHDXRMHawFAfdQ00Bf2H2zyx3xBY0zRTEdJrs3IsAhHQYM/5hiNzUhYwcwKxGqLIjd3iJubf9zWPsLfvLctfKqnevvlmdb5Jc6CTKvnehC9Lellm3my3x8zavQz82GW8o9hq9zSPBzq++Y99ZMSZzhOGd1+sUIVOI8SGT0mhEDP7jw8svWeh1uP4DRmR4lL5gvuqd1Re1FB3sEri4uIcCMm3jVbQIwsV4CW6XGqBdBysh/+6U8dJhKlKF795DsL9yytdKeraZ4rCHg7g1cykH+iWB0icgCoYOZyVVUvKCtwtX/htgUPYiD0WF9vqPFf7mucknvIn58ZigLoA7D5IzeWvHhRkUO5+A8tgYdnKEBtRgXyyivtPDoalghHosFQfMo38Il3FljT3JZsaPrionzb1XaLWkYk5oMog8ZZiDLzIAPNDN4Z8oeebOwI9vx1y0C7qfBYOGZOyvr70bcVOYsLHEsUQXcSUdb4XksAM/wAB8OB6L3xqNGJWYgovAjg5dLcs9qIjematjHh+zbOeoRIZYaHSblz07q0++Yv0Pq+/fOOCT/YB7cMRJ/cMTKoaMrj15yftm9ZpSNH1d03AjwfiYjPTJw4SMoLsFUI3MFp1gvTHVr7Vz604K9jkVjDWDjW9eu/dE6pA/37i32RLRaFfgLwCwB/byoHT5IZX4McOjTAwOR3pvKcIM2i6ZpNty0qcxWnea3FpOnrQOJ8AhWOM2qYDA6BEWTw4bFAvLZ/JPZKxBfYVt8eHD3U7JuSwXFRhTPf7bKWE1F10kdo/J1d8Agzups6Aw2Do1E/ZkEgLwAs/fGhtI5AbH6Jp01RBI+3YEfiu9WJqSYnw1qenkH5ACZM0t05EJVANAqgp7JAHXZauVm1iLwMj+5Pc2shAVGTvO7xln8NII0ILuiKR9dF0aJyT89oJOIYDcXcFQWOZikQkYKjbW2hCZ9f90DE7J7oR2+ROWEoPJbbl0PJLk0vzK8uqSEh/hlE5UQ0f4LDWLL0gbGHmXcBxi92Hhoc+tmDbcOn0gZm0CM/ctwYDWnrABRhAisuSymZeRcDT3/tNw19yZj0WWHL7qHAlt1DwV//x4rfO+3aRiJ+zwQev4oQotzKlk1W6AqAb0zleg9tGY4+tGU4CuBX77o0z/v2Tbkei6Z/iokWEdHaZPDWm9ZCRJRBoAwp+EtpNltrms3W9a2PVf932MZNYTs3/vM/75pURONMMycE8ul16wS8wTR4gmklucq7rA5rCQmxAERVk46OY+pllrXMcuuav7QOtPaFT2m98083pHl3PJqRbsSUiwgox0T+JIDJRLXh0OCOcHjk+cTqZ9ZhIx582TRtVlW1rgSoFBOuR2ghMzz/cmP5b/bUj/lf3j/km+pFSw+Mhi7ojRg7bqp6jVUQCS5PuvaM7ydGyCbACVI+YzG4RQ1y86dvrXxQjlqGxaBz4Ltbt85ahzOrAnHaVSXNYVHOq8j3Imu0EFmWAqjqpQmXcJSdzHp7AhjJ2HRmjqV1hawZEVNmenVp88WNDjm5j9bjUCkesHs66zLKpCkqQcia4OLMgMHMDb5AqHFwaKjZnNlyl5NmYCTUAoimNK+1Ccx5mDhsOBsg93k16UWhiNFzqGXMP+I3JnUvRKAMj65lRk1rVmfIwowYEqXU4phgqpn0cnYgMR1brzCVKHGuWFOdXkcjjg7R7eUnO9J8Q1G/0TdonPaMjLMqkFuvKsi9eHVmnoLuTzBhMUitJhKn4ncjhKBlgKgRgu586tNL/uoyeedPDLn5yh8cbN0yGIldO4k1waduLLBkZjjPN0z6gCIoDxP0usxssORRI2b851PbZffDL82d+np3/awjeNHKzB0fucHhY1UtQ6LDOanNgIhsRLBpVvXzFyxLe3RJmf77//frlpgvaE703MhuVdQffG7RAiHUDY8JZR0R3USJqMopmUeTkY5lICrTwOchM9yEzNDOLy+a94u8eSNtG97V2D4VY+N0MCsC8Tg1yzsvKaiqKnFdSqQsBdEaAjIwsQvHBJAggiZAq1hwHlTMP3JJwUuxcLztAxzf98SrQ6HeoZPvl+fmuJfZbNpiAi3A5Gwe9ZG4rP/dY+1dDR2BKbl7nw7S8wO+5Ze3N9ZuL9wTDeoGMHHiBCJapFu0VqfXXkNE+5EYBd6Ex6kqb9+Q7VJUdZGuKyWKol1MRCWCqAgnD1eeNImQZ84BaDUJQb4h56FdT5U8smJxX8vuA5FTzuM1VWZFIE67ol25PqsELM4HaBMSwTLTEcQvAAIRqiBQzCSWtC/P1JjNvZfLSPvu2oA57DOiYMjYcQVxLJoQ6Wn2hURUgUkszAEwGO3xuNz/1Lb+QcxSorjxePCRSOh3f46EG/fl1kaCuocSXrrj3xehRNXVcpsmqnRNOQwYbxCIrgkCINJcmn7ZmowMTdeXKqq6AiSuJyIbJSId3zoEkdgWhoeESA+NWTIadmTuC/uHu4GzXCDQIkGU7niKB8t6pD/rQZL4NxByAWRP5Ec1WYjImtyevZ0hohqrX/jSHdV/lHG5JzwQe/RnT7SFttUlIuJuvSTXdfWaTKci6Csgck9iahCTzG0cCz/A4fBjmMPlEux28P98NP6z4tz4YbLoS4koMxnncUKISFeINgmmmm/ftnDHa4eHu+9+oj0EAEsrvOo37qhxxWBeY4KXkYKbicg7nq3lVJEsJYBBMNqY8H34RuuUhrr9FDzxiDZTzIpAurrAf/kLTIRGe1QzHrtklfsei26psOiWMoDPo0QE3aRCWScDgRQATiJaBwUFukvNPn9ZxoGiQnuXYUSaKkudVcKqz0vWBx/ft4chGewD8OLOOn9rfcvYaevNTpVndg4G55e4OjeuzHkR4IsoEYM/XidgISBNc6hriwvttW87P+OAZrGU52Xa8g3iVUxYTqAiAK5kZpdpIbmVEgIhxMC2QCzYOhweObz/AA5GRiMDGII5/WkZxmfWFun33w8TGOm2WcZ6Vi5Ao8fhXqqrlhoSPI+JMimxqzFdqMkgn/MVVYmQm5auX5H5ELO5OxIe7VR1x3xF1TdMkNUEAMBgCYYfwHPbj/haX9g1OOcF8tT2geDAWLxrw4rs5wEsRSJK76QCIcAKIqvmUM8rLbJTTlpmvd3jWqio6vI4yX8iohyiaZpKHUPSNSgIYJCZHvXHgofbfJ3bHt6C2Ojo7ExhZ90OEo5K/sx3O8NWXewgol0/+mz10zarVq3q2vkEei8RZSY/7unCKkhUMfhTBIrYbBm1ycQN4yZcPoZ9hiJ3+5zGQzF96uUTZgszZvZEhsIPWDyWJUIXEQJWTnQMEW7Vrfq1ukX7CEjMB8EhEtF90xq0lByR/Ux8t4zLfWbc3Pvx7+zvDUVNMxqb3Vrssy6Qo0QSwTrmC7uHhpctU5ouXKNSy8F0mxlXi1UhFgEoTBqdpqPNggALE6kgKkJitJqoR2Qwm1LKg/5gfPeLewZjvX2RObv2OJ4hX1w+t3cwsmZF5v7MdKudgaVJj96TjySUrHKb2JVyTcKWMmmS2R4jRNTMpmw0DNnx3O7BbdLkDjbkcCBsxudCZeE5I5Cj/O7xbv/vHoef/wsN7Q2OnbEI1SjAuyDE5WDOoROk1jwlEnMMFYm8TxPDLJk5Kg1+aXgw9uJ997XPas82VbqGIvI3z3RFC0scL2Wk6UFmcTOIdBrnG0jGgusA3DPQpCgnqgs/axrmM5FQfM8v/trSMwPXeUvMOYEchQicm1k/dJmk134KHHj1vZV/GClwzFMEXQ+mxDxanNzwNZ0k58adkvG3tde1bC/zj7Xhx6fjytPPj+9vaS4vdBhfuG3+HwliE0DzTte1mTnKjGEwb5MsHxsYiR752q/qasEcZsmnnCVzJpmzAgGA3sGY+Tsg/A4gsr9+tBFxDtbUZHsRiflgmsUEzGcmFwDb1Gy2UybOzKNMfGjXvthIx+DUszrOFUb88fjQWMxnmnxACF4sCOZ0GPbGg4EImEdZchOE6ITd+lp93eDelnZfe99QZGgmr/1WmdMCOco7AcaTnT1VVeHer19cvY97+2sQjFUSKXcyowpA4VTdGqYEcwjEvUzm1q99nUf31c09o+BUYEYgHjef01RsJOV11/QZuhYzAyPMvJek/C107QjnZB585Hf1cvv2rjn/HM8IgRylvn6I77rrOYl4vCHLpXR++yMVdaMRUR2MUxlLcQcIXoDTJpOzaipwwqN4uWDle7ddW/pY8OLY4Vgs8PLftwxH9zaEzojRpKrQpr7/ilw7NOs6i1VboOvqDUKI+TORD5elPJo1pp8l3x8Y9jX21XfsfqQOfQNhCrGuy4aGoTkvDuAMEwgAJB9sqAEIHWnxj41FRThkUG9lhXsRSeQrjEIGCpJJ2qbFiEWAwiAvAUsLs22DLHVPLEah+aXxnkhcGZUyNjw4avCwb0LHvtOK26FQTpouFEX1VhXZvJXFzmLSbeeRUOaDeCkl0p5OZ2cSB2AA6DBNs9swjZa2nthrY/3+tv62QH19O+RA6Mwafc84gRzLHd+uM5CIgGu8++6VO6wRscQWFstJ8EcBZCUTL79lklUCdIAyQbiJhBLRhfrOd17qeeyGS+SuULjvkb88O2o89vLYnBpNFpc71duuzLW6vO6NQlGWgfBuIipOTKmmf0bKzGMAD0mW/xeMhI6M+Md2fvv3PZGROdZxTIUzWiDH8pOfNEWFiTpFUu/Hb5rXbdOVSiF4FYE2geBJ7ulPFzoRlRDz9Uy00WpNX3nJKtfemtK8I+f9oe7Ao5L5l7PnvEgA8In3VCzNz7RW2d3WNUIRq4mQDaLC8VzeTw0OMyMI8GaOmYcRM+u/89eWPdG44Y8bRuxMFgdwFglk377Ro1k3Rjr7wr48q9KbT4iF0q3ZrIq8pDOkA4l7fstew0TkYsBBjBJVsapFuVZbUTYsF2VZRzolB/OZA9C0WFrazGf0d3usyM93EWJxSzJbvGPFAu9yh02tAcSFBF6AhPPmdE2nJBJ5BoKSuQ9SDrgGoy8PRI1DQzFZu+3gyCmFOs9FzhqBHMuXfnJwGMA2BrZv/kTNA/4c23xVVW4EcAWAfBJiWnZtiEiAyELAaha8AgLmU59Z+mSONF/9vmls5rLSeorGBPqnlCdtyrzzhoXine93KrKpdTERbRRCXEpEmwCyJEQxvdOpZJLvIWY8HJbxh0UwtufG/z0wNEPpVWeVs1IgRyGAr3i2ayxuU+tI0B+u3ZBTm59lK1WYNgAoA5A2XZb5Y1L0LwUp2SxoKQ2PPQfTzEgs8KfJA+CNCGJKRzC0EbHYQiGUK4goP7HOgH40oHU6SLqG+MBokCxfs/piLTXPdO38Fcu2V+Jm4NazUBzAWS4QAHjy0EgIQAhAz/IF7l6PSyt32oUXDAsBChG5kdjJeavTD0IiPLuYifIhaAkCIQYgkhWcZsIYpxCQjmjUi2iUiMS1oNcLiE4XEoBkZj9AfURiXzgcewrD4Trv9v6Wb5ylwjjKWS+QY/nf3zY2l5TYW774xYUv2gJKlR6jCiL5WWYqA1AwmYKYk4Fe/0jp5mMyPM6EIdPOhBuJBBEmSqk9dRLJxtHH4MPE/EtYLbUyP/vA9775styzp+esFsZRzimBAEBbW4gfeqjLVGPU7xQUu2Eh/QoeTxUczhJm5VIkMjY6pmtBm8zaMWNW/sQW9LROpSQSMRl+ZmyBRWuDw3bg8ccb94/44kNw9Z0z4gDOQYEAwOOP90oAA+k2DF7vRRspohoOewWzWAogI2FAm75veib9xKZTHAAShVyAIBP1AngYmlYHj3vf83uGZEvL6DkjjKOckwI5ynAY/O4HEFNE5z6izn3/9a9Vz3lslpp0u20VSN4OomyaRMHPswFmHmDwCEv+ni/sOzIaHNnz9Z8PBPwhKU1zTiTDmxXOaYEcxUwmlntp10jIpqoddl2jy1aleXRdLYaqVQNYkHTom7b467kAM8eRSLh30GBZb7LZ9tQrA3sj8UhfOBoKR6LntjiAlEDewCPP9UcBtAJoXb/AUqu5bQtYKJcIITKZOS+Z2OxsIs7MY8x4Ii7NV2Ns7L330baB2W7UXCIlkJPwuZ81DwqirSDa8/l/Kru/KMdeqeqW6wXRegB5JGbORXwmYeYwMwaJ5dPxSPjJkbHI4S/9qrWNwTE+SZK4c5mUQE7CaMCQSOSXje2qHets64sYqqqlLapwh9PceolgLCJQGgB7IsnZ3CW5MxUGMCBNbgiE45376se2GLHo4UAw1jHsi/lnu41zlZRAJsH9z/aOARgDUPfvH6x6xe32VhCLDwJYBqBoNut4T4akFXwQzK+YpnygdyBc9/0/NdbhLDfyTQcpgUyRex5qayvN6Oz7zHnUKHMLFrDHW6ZCuYOIckHImu32HUVKZhCGALRJln80FG4MO/jg73/XNlTX4I8gJY5JkRLIFOkbikZlBLH9LQhy0BdX0pTBxYtzK2EYZWTKImZZBpAOwDLDcfJvghO5CeNgRBlogVA6yaLV1tf2bw/G450RO3c0dQbNnsFIShyTJCWQU2AgCP76FhhAbyvQ23r//TXbacS/iMYC8yXzFwDOBih/RuPkT0DSpWUYjF4p8U1yWBqQnb7///3L82dUiqK5REog08DXv75FkmG2kGH0feaWvCFNs8xTNetSZlwFIH0yKU3fCsw8xmA/M/8NplEPI37ou3/uOBKWFISmnTHJ7eYiKYFMA/v39zEAPwB/a7croGnxAU2X/vwsW76qUAFAxUTwImFonNagJWYMseQuk2VfR1/4ZRjxRhix2gONY+FQdPYzE57ppAQyzfy/n3cEARwAcPB7n1v8bJbXWqUpdJkQfAuAAiIxLaG/CXsGDzHj1/F47OVoNL7/c987kDLyTTMpgcwc/PvHOnwWXakXRL6bLstvysmwljHTRQRUgqbutsLMEQARgPcb8fi2sUCs6fdP9OyWUvZLU6ZsGTNASiAzyM7Do8kPGv0XLPP2OBxUnpGheIyIppsmeSjhBzWZNYIEEGHmQdPkkC8Y3x6PRZ8aHI3WvbRnsH9Gb+IcJyWQ08Q372kcADDAjO1bHqis6K73ZmuKqAJj4oTNjH6WeEqaxr7G9kD3l+6urZv5FqcAUgI57RCB333NwGBg1B8ShLH69sCE64b2vvDgvY+2bQHLgRF/fM4VCz2bIZ5Bb+bTbAZIcY4zE9/ynHayS5FitkkJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcUgJJEWKcTjn3N3T7ESqRRNJP+OpuBszM4GRzHR9XJiTYJNJSvQH53a+KadNIU0liONcrUkkSvDQ5J8JM8D+oMGR2Nkb+35OCeT9S6FUFdvU3HVVbiuzqk1hBJUmcTyqsF8NRuLSMDH2xv/v8g8ZzuCI8e4HEJvudk8nN2zI1OYV2hSPQ31DyK/FZVE1h6a4mCeVJVIyZNhA+NcPd4Re2jM8p+/5rfD/AW4RI9fKV3pCAAAAAElFTkSuQmCC';window.onload = function () { renderChatBot() localStorage.removeItem('chatbot-tok') // if (localStorage.getItem('chatbot-tok')) { // API_KEY = localStorage.getItem('chatbot-tok') // } else { // localStorage.setItem('chatbot-tok', API_KEY) // } // console.log(localStorage.getItem('chatbot-tok')) } var socket; let chatType = 'agent' let createChatLi, chatbotToggler, closeBtn, refreshBtn, chatbox, chatInput, sendChatBtn, isEmoticons = false, branchListData = [], formVariableList, projectListData = [], productListData = [], utm_params; let userMessage = null; let puraBotSlideIndex = 1; let carosalImageList = [] async function renderChatBot() { let newDiv = document.createElement('div'); newDiv.id = 'webChatBot' document.body.appendChild(newDiv); var script = document.createElement('script'); script.src = `${host}/socket.io/socket.io.js`; document.head.appendChild(script); setTimeout(() => { createChatBot(); loadEmoticons(); }, 1000) setTimeout(() => { loadTriggerKey() }, 2000) let url = new URL(window.location.href); console.log() utm_params = url.searchParams.toString() } let aiCount = 0 function createChatBot() { let htmlData = `
mode_comment close
Chat with
${chatbotName}
refresh close
` let dat = document.getElementById('webChatBot') dat.innerHTML = htmlData chatbotToggler = document.querySelector(".chatbot-toggler"); closeBtn = document.querySelector(".close-btn"); refreshBtn = document.querySelector(".refresh-btn") chatbox = document.querySelector(".chatbox"); chatInput = document.querySelector(".chat-input textarea"); sendChatBtn = document.querySelector(".chat-input .sent-btn"); // Variable to store user's message // const API_KEY = "PASTE-YOUR-API-KEY"; // Paste your API key here const inputInitHeight = chatInput.scrollHeight; createChatLi = (message, className) => { // Create a chat
  • element with passed message and className const chatLi = document.createElement("li"); chatLi.classList.add("chat", `${className}`); let chatContent = className === "outgoing" ? `

    ` : `

    `; chatLi.innerHTML = chatContent; chatLi.querySelector("p").innerHTML = message; return chatLi; // return chat
  • element } const generateResponse = (chatElement) => { const API_URL = `${host}/aiChat`; const messageElement = chatElement.querySelector("p"); // Define the properties and message for the API request const requestOptions = { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}` }, body: JSON.stringify({ message: userMessage, }) } // Send POST request to API, get response and set the reponse as paragraph text fetch(API_URL, requestOptions).then(res => res.json()).then(data => { messageElement.textContent = data.message; }).catch(() => { messageElement.classList.add("error"); messageElement.textContent = "Oops! Something went wrong. Please try again."; }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); } const handleChat = () => { userMessage = chatInput.value.trim(); // Get user entered message and remove extra whitespace if (!userMessage) return; // Clear the input textarea and set its height to default chatInput.value = ""; // chatInput.style.height = `${inputInitHeight}px`; if (chatType === 'agent') { chatbox.appendChild(createChatLi(userMessage, "outgoing")); chatbox.scrollTo(0, chatbox.scrollHeight); socket.emit('sendMessage', userMessage) } else if (chatType === 'userInput') { sendButtonMessage(userMessage) } else if (chatType === 'conversationalAI') { conversationalBot(userMessage) } else { chatbox.appendChild(createChatLi(userMessage, "outgoing")); chatbox.scrollTo(0, chatbox.scrollHeight); setTimeout(() => { // Display "Thinking..." message while waiting for the response const incomingChatLi = createChatLi("Thinking...", "incoming"); chatbox.appendChild(incomingChatLi); chatbox.scrollTo(0, chatbox.scrollHeight); generateResponse(incomingChatLi); }, 600); } } chatInput.addEventListener("input", () => { // Adjust the height of the input textarea based on its content chatInput.style.height = `${inputInitHeight}px`; chatInput.style.height = `${chatInput.scrollHeight}px`; }); chatInput.addEventListener("keydown", (e) => { // If Enter key is pressed without Shift key and the window // width is greater than 800px, handle the chat if (e.key === "Enter" && !e.shiftKey && window.innerWidth > 800) { e.preventDefault(); handleChat(); } }); sendChatBtn.addEventListener("click", handleChat); closeBtn.addEventListener("click", () => document.body.classList.remove("show-chatbot")); refreshBtn.addEventListener("click", () => { reloadChat() }) chatbotToggler.addEventListener("click", () => document.body.classList.toggle("show-chatbot")); } function plusSlides(n) { puraBotShowSlides(puraBotSlideIndex += n); } function currentSlide(n) { puraBotShowSlides(puraBotSlideIndex = n); } function puraBotShowSlides(n) { let i; let slides = document.getElementsByClassName("puraBotMySlides"); if (n > slides.length) { puraBotSlideIndex = 1 } if (n < 1) { puraBotSlideIndex = slides.length } for (i = 0; i < slides.length; i++) { slides[i].style.display = "none"; } slides[puraBotSlideIndex - 1].style.display = "block"; } function showHideEmoticon() { if (isEmoticons) { document.getElementById('emoticonsContainer').style.display = 'none'; isEmoticons = false } else { document.getElementById('emoticonsContainer').style.display = 'flex'; isEmoticons = true } } function appendMessage(emoticon) { let val = chatInput.value.trim() chatInput.value = val + ' ' + emoticon } function reloadChat() { let htmlData = `
  • ${welcomeMessage}

  • ` document.querySelector('.chatbox').innerHTML = htmlData fetch(host + '/refreshChat', { method: 'GET', headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}` } }).then(res => res.json()).then(data => { API_KEY = data.token }) loadTriggerKey() } function loadTriggerKey() { // document.getElementById('textBoxData').style.display = "flex"; document.getElementById('textBoxData').style.display = "none"; fetch(host + '/getTriggerKey', { method: "GET", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}` } }).then(res => res.json()).then(data => { let buttonList = `

    ` for (let i = 0; i < data.triggerKey.length; i++) { buttonList += `` } buttonList += '

    ' const chatLi = document.createElement("li"); chatLi.classList.add("chat", `incomingBtn`); chatLi.innerHTML = buttonList; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); }).catch(() => { console.log(err) }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); } function processMessage(data) { let messageList = data.messageList for (let i = 0; i < messageList.length; i++) { if (messageList[i].type === 'message') { chatbox.appendChild(createChatLi(messageList[i].message, "incoming")); chatbox.scrollTo(0, chatbox.scrollHeight); chatType = 'agent' } else if (messageList[i].type === 'agent') { document.getElementById('textBoxData').style.display = "flex"; createSocket() } else if (messageList[i].type === 'btnMsg') { chatbox.appendChild(createChatLi(messageList[i].message, "incoming")); chatbox.scrollTo(0, chatbox.scrollHeight); let buttonList = `

    ` for (let j = 0; j < messageList[i].buttonList.length; j++) { buttonList += `` } buttonList += '

    ' const chatLi = document.createElement("li"); chatLi.classList.add("chat", `incomingBtn`); chatLi.innerHTML = buttonList; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); document.getElementById('textBoxData').style.display = "none"; } else if (messageList[i].type === 'End') { chatbox.appendChild(createChatLi(messageList[i].message, "incoming")); document.getElementById('textBoxData').style.display = "none"; } else if (messageList[i].type === 'AI') { chatType = 'ai'; document.getElementById('textBoxData').style.display = "flex"; } else if (messageList[i].type === 'userInput') { chatType = 'userInput'; chatbox.appendChild(createChatLi(messageList[i].message, "incoming")); chatbox.scrollTo(0, chatbox.scrollHeight); document.getElementById('textBoxData').style.display = "flex"; } else if (messageList[i].type === 'documentButton') { const chatLi = document.createElement("li"); chatLi.classList.add("chat", `incoming`); let chatContent = '' if (messageList[i].fileType.split('/')[0] === 'image') { chatContent = `

    `; } else { chatContent = `

    ${messageList[i].fileName}

    `; } chatLi.innerHTML = chatContent; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); let buttonList = `

    ` for (let j = 0; j < messageList[i].buttonList.length; j++) { buttonList += `` } buttonList += '

    ' const chatLi1 = document.createElement("li"); chatLi1.classList.add("chat", `incomingBtn`); chatLi1.innerHTML = buttonList; chatbox.appendChild(chatLi1); chatbox.scrollTo(0, chatbox.scrollHeight); document.getElementById('textBoxData').style.display = "none"; } else if (messageList[i].type === 'document') { const chatLi = document.createElement("li"); chatLi.classList.add("chat", `incoming`); let chatContent = '' if (messageList[i].fileType.split('/')[0] === 'image') { chatContent = `

    `; } else { chatContent = `

    ${messageList[i].fileName}

    `; } chatLi.innerHTML = chatContent; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); } else if (messageList[i].type === 'userForm') { document.getElementById('textBoxData').style.display = "none"; let chatContent = `

    ${messageList[i].title}
    ` formVariableList = messageList[i].formList for (let j = 0; j < formVariableList.length; j++) { chatContent += `
    ` if (formVariableList[j].type === 'Text') { chatContent += `
    ` } if (formVariableList[j].type === 'Number') { chatContent += `
    ` } if (formVariableList[j].type === 'Email') { chatContent += `
    ` } if (formVariableList[j].type === 'Date') { chatContent += `
    ` } if (formVariableList[j].type === 'Time') { chatContent += `
    ` } if (formVariableList[j].type === 'Date Range') { chatContent += ` ` } if (formVariableList[j].type === 'Time Range') { chatContent += ` ` } } chatContent += `

    ` const chatLi = document.createElement("li"); chatLi.classList.add("chat", `incomingForm`); chatLi.innerHTML = chatContent; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); } else if (messageList[i].type === 'verityOtp') { chatType = 'userInput'; chatbox.appendChild(createChatLi(messageList[i].message, "incoming")); chatbox.scrollTo(0, chatbox.scrollHeight); document.getElementById('textBoxData').style.display = "flex"; } else if (messageList[i].type === 'sendCarousel') { document.getElementById('textBoxData').style.display = "none"; let carosalContent = `
    ` carosalImageList = messageList[i].urlList for (let slide = 0; slide < carosalImageList.length; slide++) { carosalContent += `
    ` } carosalContent += `
    ` const chatLi = document.createElement("li"); chatLi.classList.add("chat", `incomingCarousel`); chatLi.innerHTML = carosalContent; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); puraBotShowSlides(puraBotSlideIndex); } else if (messageList[i].type === 'lmsAppointmentBooking') { document.getElementById('textBoxData').style.display = "none"; let branchListOptions = messageList[i].branchList.map(val => { return `` }) branchListData = messageList[i].branchList let productListOptions = messageList[i].productList.map(val => { return `` }) productListData = messageList[i].productList let htmlData = `
    Appointment Booking





    ` const chatLi = document.createElement("li"); chatLi.classList.add("chat", `lmsAppointmentBooking`); chatLi.innerHTML = htmlData; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); } else if (messageList[i].type === 'realEstateSiteVisit') { document.getElementById('textBoxData').style.display = "none"; let projectList = messageList[i].projectList.map(val => { return `` }); projectListData = messageList[i].projectList let htmlData = `
    Site Visit Booking






    ` const chatLi = document.createElement("li"); chatLi.classList.add("chat", `realEstateSiteVisit`); chatLi.innerHTML = htmlData; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); } else if (messageList[i].type === 'dynamicButton') { let buttonList = `

    ` for (let j = 0; j < messageList[i].buttonList.length; j++) { buttonList += `` } buttonList += '

    ' const chatLi1 = document.createElement("li"); chatLi1.classList.add("chat", `incomingBtn`); chatLi1.innerHTML = buttonList; chatbox.appendChild(chatLi1); chatbox.scrollTo(0, chatbox.scrollHeight); } else if (messageList[i].type === 'Location') { console.log('Location') const chatLi = document.createElement("li"); chatLi.classList.add("chat", `incoming`); let chatContent = `

    `; chatLi.innerHTML = chatContent; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); } else if (messageList[i].type === 'callToAction') { chatbox.appendChild(createChatLi(messageList[i].message, "incoming")); chatbox.scrollTo(0, chatbox.scrollHeight); const chatLi1 = document.createElement("li"); chatLi1.classList.add("chat", `incomingBtn`); chatLi1.innerHTML = ``; chatbox.appendChild(chatLi1); chatbox.scrollTo(0, chatbox.scrollHeight); } else if (messageList[i].type === 'clickToCall') { const chatLi1 = document.createElement("li"); chatLi1.classList.add("chat", `incomingBtn`); chatLi1.innerHTML = ``; chatbox.appendChild(chatLi1); chatbox.scrollTo(0, chatbox.scrollHeight); } else if (messageList[i].type === 'conversationAi') { chatType = 'conversationalAI'; document.getElementById('textBoxData').style.display = "flex"; } } } async function getAppointmentDate(selectedDate) { try { console.log(selectedDate.value) document.getElementById('puraBotBookingSlotDiv').innerHTML = "Checking Available Slot"; fetch(host + '/getAppointmentAvailabiltySlot', { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}` }, body: JSON.stringify({ branchId: (document.getElementById('selectedBranch').value), appointmentDate: selectedDate.value }) }).then(res => res.json()).then(data => { console.log(data) if (data.status === 'failed') { document.getElementById('puraBotBookingSlotDiv').innerHTML = "Slot Not available Kindly choose another date"; } else { let optionList = data.timeList.map(val => { return `` }) let htmlData = `

    ` document.getElementById('puraBotBookingSlotDiv').innerHTML = htmlData } }).catch(() => { }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); } catch (err) { console.log(err) } } async function puraBotBookAppointment() { try { let payload = { productId: (document.getElementById('selectedProduct').value), BranchId: (document.getElementById('selectedBranch').value), AppointmentDate: (document.getElementById('purabotappointmentdate').value), AppointmentTime: (document.getElementById('purabotappointmenttime').value) } let selectedOptionIndex = branchListData.findIndex(val => { return val.BranchId == document.getElementById('selectedBranch').value }) let selectedProductIndex = productListData.findIndex(val => { return val.ProductId == document.getElementById('selectedProduct').value }) console.log(selectedOptionIndex) const chatLi = document.createElement("li"); chatLi.classList.add("chat", `lmsAppointmentBookingSubmit`); let chatContent = `
    Appointment Booking
    Branch: ${branchListData[selectedOptionIndex].Area}
    Product: ${productListData[selectedProductIndex].ProductName}
    AppointmentDate: ${document.getElementById('purabotappointmentdate').value}
    AppointmentTime: ${document.getElementById('purabotappointmenttime').value}
    `; chatLi.innerHTML = chatContent; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); removeElementsByClass('lmsAppointmentBooking') fetch(host + '/botMessage', { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}` }, body: JSON.stringify({ message: JSON.stringify(payload), }) }).then(res => res.json()).then(data => { processMessage(data) }).catch(() => { }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); } catch (err) { console.log(err) } } async function puraBotSiteVisitBooking() { try { let payload = { productId: (document.getElementById('selectedProject').value), AppointmentDate: (document.getElementById('siteVisitDate').value + ' ' + document.getElementById('siteVisitTime').value) } let selectedOptionIndex = projectListData.findIndex(val => { return val.ProjectCode == document.getElementById('selectedProject').value }) const chatLi = document.createElement("li"); chatLi.classList.add("chat", `realEstateSiteVisitSubmit`); let chatContent = `
    Site Visit Booking
    Product: ${projectListData[selectedOptionIndex].ProjectName}
    AppointmentDate: ${(document.getElementById('siteVisitDate').value + ' ' + document.getElementById('siteVisitTime').value)}
    `; chatLi.innerHTML = chatContent; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); removeElementsByClass('realEstateSiteVisit') fetch(host + '/botMessage', { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}` }, body: JSON.stringify({ message: JSON.stringify(payload), }) }).then(res => res.json()).then(data => { processMessage(data) }).catch(() => { }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); } catch (err) { console.log(err) } } async function sendButtonMessage(buttonMessageData) { try { chatbox.appendChild(createChatLi(buttonMessageData, "outgoing")); chatbox.scrollTo(0, chatbox.scrollHeight); removeElementsByClass('incomingBtn') fetch(host + '/botMessage', { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}`, utm_params }, body: JSON.stringify({ message: buttonMessageData, }) }).then(res => res.json()).then(data => { processMessage(data) }).catch(() => { }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); } catch (err) { console.log(err) } } async function conversationalBot(message) { try { chatbox.appendChild(createChatLi(message, "outgoing")); chatbox.scrollTo(0, chatbox.scrollHeight); fetch(host + '/conversationalBot', { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}`, utm_params }, body: JSON.stringify({ message: message, }) }).then(res => res.json()).then(data => { chatbox.appendChild(createChatLi(data.message, "incoming")); chatbox.scrollTo(0, chatbox.scrollHeight); }).catch(() => { }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); } catch (err) { console.log(err) } } function removeElementsByClass(className) { const elements = document.getElementsByClassName(className); while (elements.length > 0) { elements[0].parentNode.removeChild(elements[0]); } } async function chooseImage() { try { // alert('slideIndex' + puraBotSlideIndex) removeElementsByClass('incomingCarousel') let imageUrl = carosalImageList[puraBotSlideIndex - 1].url const chatLi = document.createElement("li"); chatLi.classList.add("chat", `incoming`); let chatContent = `

    `; chatLi.innerHTML = chatContent; chatbox.appendChild(chatLi); chatbox.scrollTo(0, chatbox.scrollHeight); let messageData = carosalImageList[puraBotSlideIndex - 1].id fetch(host + '/botMessage', { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}` }, body: JSON.stringify({ message: messageData, }) }).then(res => res.json()).then(data => { processMessage(data) }).catch(() => { }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); puraBotSlideIndex = 1; } catch (err) { console.log(err) } } async function submitForm() { try { let payload = {} let messageData = '' for (let i = 0; i < formVariableList.length; i++) { if (formVariableList[i].type === 'Date Range' || formVariableList[i].type === 'Time Range') { payload[formVariableList[i].variable] = document.getElementById(`${'chatbot-' + formVariableList[i].variable + '-1'}`).value + ' to ' + document.getElementById(`${'chatbot-' + formVariableList[i].variable + '-2'}`).value messageData += `${formVariableList[i].label} : ` + document.getElementById(`${'chatbot-' + formVariableList[i].variable + '-1'}`).value + ' to ' + document.getElementById(`${'chatbot-' + formVariableList[i].variable + '-2'}`).value + '\n' } else { payload[formVariableList[i].variable] = document.getElementById(`${'chatbot-' + formVariableList[i].variable}`).value messageData += `${formVariableList[i].label} : ` + document.getElementById(`${'chatbot-' + formVariableList[i].variable}`).value + '\n' console.log(document.getElementById(`${'chatbot-' + formVariableList[i].variable}`).value) } } removeElementsByClass('incomingForm') chatbox.appendChild(createChatLi('Form Request', "incoming")); chatbox.appendChild(createChatLi(messageData, "outgoing")); chatbox.scrollTo(0, chatbox.scrollHeight); fetch(host + '/botMessage', { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `${API_KEY}` }, body: JSON.stringify({ message: JSON.stringify(payload), }) }).then(res => res.json()).then(data => { processMessage(data) }).catch(() => { }).finally(() => chatbox.scrollTo(0, chatbox.scrollHeight)); } catch (err) { alert('Error While Submitting form') } } function connectAgent() { aiCount = 0 chatType = 'agent' createSocket() } function createSocket() { socket = io(`${host}/webuser`, { auth: { token: API_KEY, }, }); aiCount = 0; chatType = 'agent'; socket.on('messageFromAgent', (message) => { let messageData = JSON.parse(message) chatbox.appendChild(createChatLi(messageData.message, "incoming")); chatbox.scrollTo(0, chatbox.scrollHeight); }) } function loadEmoticons() { let codeList = [128512, 128513, 128514, 128515, 128516, 128517, 128518, 128519, 128520, 128521, 128522, 128523, 128524, 128525, 128526, 128527, 128528, 128529, 128530, 128531, 128532, 128533, 128534, 128535, 128536, 128537, 128538, 128539, 128540, 128541, 128542, 128543, 128544, 128545, 128546, 128547, 128548, 128549, 128550, 128551, 128552, 128553, 128554, 128555, 128556, 128557, 128558, 128559, 128560, 128561, 128562, 128563, 128564, 128565, 128566, 128567, 128577, 128578, 128579, 128580, 129296, 129297, 129298, 129299, 129300, 129301, 129303, 129312, 129314, 129315, 129316, 129317, 129319, 129320, 129321, 129322, 129323, 129325, 129326, 129327, 129392, 129393, 129395, 129396, 129397, 129398, 129402, 129488, 128568, 128569, 128570, 128571, 128572, 128573, 128574, 128575, 128576, 128584, 128585, 128586, 128127, 128128, 129324, 9995, 128075, 128400, 128406, 129306, 9757, 128070, 128071, 128072, 128073, 128405, 9994, 128074, 128077, 128078, 129307, 129308, 9996, 128076, 129295, 129304, 129305, 129310, 129311, 9997, 128079, 128080, 128133, 129309, 129309, 129330, 129331, 128110, 128111, 128112, 128114, 128115, 128119, 128120, 128372, 128373, 128129, 128130, 128131, 129332, 129333, 128106, 128107, 128108, 128109, 128143, 128145, 129328, 129329, 128100, 128101, 128102, 128103, 128104, 128105, 128113, 128116, 128117, 128118, 128378, 129485, 129486, 129489, 129490, 129491, 129492, 129493, 129494, 129495, 129496, 129456, 129457, 129458, 129459, 128134, 128135, 128581, 128582, 128583, 128587, 128588, 128589, 128590, 128591, 129318, 129329, 129335, 129487, 128584, 128585, 128586, 128172, 128173, 128488, 128489, 128490, 128491, 128492, 128493, 128494, 128495, 128496, 128497, 128498, 127877, 128121, 128122, 128123, 128124, 128125, 128126, 128127, 128128, 129302, 129313, 129334, 129464, 129465, 129497, 129498, 129499, 129500, 129501, 129502, 129503, 128064, 128065, 128066, 128067, 128068, 128069, 128099, 128170, 129460, 129461, 129462, 129463, 129467, 129468, 129469, 129470, 129471, 129504, 129505, 128140, 128146, 128147, 128148, 128149, 128150, 128151, 128152, 128153, 128154, 128155, 128156, 128157, 128158, 128159, 128420, 129293, 129294, 128132, 128133, 128136, 128137, 128138, 128139, 128141, 128142, 128164, 128169, 128171, 128186, 128187, 128188, 128189, 128190, 128191, 128192, 128193, 128194, 128195, 128196, 128197, 128198, 128199, 128200, 128201, 128202, 128203, 128204, 128205, 128206, 128207, 128208, 128209, 128210, 128211, 128212, 128213, 128214, 128215, 128216, 128217, 128218, 128219, 128220, 128221, 128222, 128223, 128224, 128225, 128226, 128227, 128228, 128229, 128240, 128267, 128268, 128391, 128392, 128393, 128394, 128395, 128396, 128397, 128241, 128242, 128243, 128244, 128245, 128246, 128379, 128380, 128381, 128382, 128383, 128384, 128385, 128228, 128229, 128230, 128231, 128232, 128233, 128234, 128235, 128236, 128237, 128238, 128239, 128240, 128386, 128387, 128388, 128389, 128390, 128336, 128337, 128338, 128339, 128340, 128341, 128342, 128343, 128344, 128345, 128346, 128347, 128348, 128349, 128350, 128351, 128352, 128353, 128354, 128355, 128356, 128357, 128358, 128359, 128421, 128424, 128433, 128434, 128444, 128450, 128451, 128452, 128465, 128466, 128467, 128476, 128477, 128478, 128481, 128483, 128499, 9970, 9971, 9978, 9981, 127755, 128506, 128507, 128508, 128509, 128510, 128511, 9962, 127968, 127969, 127970, 127971, 127972, 127973, 127974, 127975, 127976, 127977, 127978, 127979, 127980, 127981, 127982, 127983, 127984, 128331, 128332, 128333, 128725, 127956, 127957, 127958, 127959, 127960, 127961, 127962, 127963, 127964, 127965, 127966, 127967, 128506, 128640, 128641, 128642, 128643, 128644, 128645, 128646, 128647, 128648, 128649, 128650, 128651, 128652, 128653, 128654, 128655, 128656, 128657, 128658, 128659, 128660, 128661, 128662, 128663, 128664, 128665, 128666, 128667, 128668, 128669, 128670, 128671, 128672, 128673, 128674, 128675, 128676, 9940, 128677, 128678, 128679, 128680, 128681, 128682, 128683, 128684, 128685, 128686, 128687, 128688, 128689, 128690, 128691, 128692, 128693, 128694, 128695, 128696, 128697, 128698, 128699, 128700, 128701, 128702, 128703, 128704, 128705, 128706, 128707, 128708, 128709, 128710, 128711, 128712, 128713, 128714, 128715, 128716, 128717, 128718, 128719, 128720, 128721, 128722, 128723, 128724, 128726, 128727, 128728, 128729, 128730, 128731, 128732, 128733, 128734, 128735, 128736, 128737, 128738, 128739, 128740, 128741, 128742, 128743, 128744, 128745, 128746, 128747, 128748, 128749, 128750, 128751, 128752, 128753, 128754, 128755, 128756, 128757, 128758, 128759, 128760, 128761, 128762, 128763, 128764, 128765, 128766, 128767, 128000, 128001, 128002, 128003, 128004, 128005, 128006, 128007, 128008, 128009, 128010, 128011, 128012, 128013, 128014, 128015, 128016, 128017, 128018, 128019, 128020, 128021, 128022, 128023, 128024, 128025, 128026, 128027, 128028, 128029, 128030, 128031, 128032, 128033, 128034, 128035, 128036, 128037, 128038, 128039, 128040, 128041, 128042, 128043, 128044, 128045, 128046, 128047, 128048, 128049, 128050, 128051, 128052, 128053, 128054, 128055, 128056, 128057, 128058, 128059, 128060, 128061, 128062, 128063, 128375, 128376, 129408, 129409, 129410, 129411, 129412, 129413, 129414, 129415, 129416, 129417, 129418, 129419, 129420, 129421, 129422, 129423, 129424, 129425, 129426, 129427, 129428, 129429, 129430, 129431, 129432, 129433, 129434, 129435, 129436, 129437, 129438, 129439, 129440, 129441, 129442, 129443, 129444, 129445, 129446, 129447, 129448, 129449, 129450, 129451, 129452, 129453, 129454, 129455, 9749, 127861, 127862, 127863, 127864, 127865, 127866, 127867, 127868, 127870, 127994, 129346, 129347, 129371, 129380, 129475, 129481, 129482, 127789, 127790, 127791, 127828, 127829, 127830, 127831, 127832, 127833, 127834, 127835, 127836, 127837, 127838, 127839, 127840, 127841, 127842, 127843, 127844, 127845, 127846, 127847, 127848, 127849, 127850, 127851, 127852, 127853, 127854, 127855, 127856, 127857, 127858, 127859, 127871, 129360, 129363, 129366, 129367, 129368, 129369, 129370, 129372, 129374, 129375, 129376, 129377, 129379, 129381, 129383, 129384, 129385, 129386, 129387, 129390, 129391, 129472, 129473, 129478, 129479, 129480, 127798, 127805, 127806, 127813, 127814, 129361, 129362, 129364, 129365, 129382, 129388, 129476, 129477, 127860, 127869, 128298, 129348, 129378, 129474] let htmlData = '' for (let i = 0; i < codeList.length; i++) { htmlData += `

    &#${codeList[i]};

    ` } document.getElementById('emoticonsContainer').innerHTML = htmlData }