#!/bin/bash
# IPDR Logs Installation Script
# Copyright (c) 2026 Aanirids Technologies Pvt Ltd
# All rights reserved - Distribution or modification prohibited

_ipdr_payload="IyEvYmluL2Jhc2gKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgSVBEUiBMb2dzIC0gSW5zdGFsbGF0aW9uIFNjcmlwdAojIFN0YWNrIDogY29tcGlsZWQgRmFzdEFQSSBiYWNrZW5kICsgUmVhY3QgVUkgKyBDbGlja0hvdXNlCiMgICAgICAgICArIE15U1FMIGNsaWVudCAoUkFESVVTIHN5bmMpICsgTmdpbnggKyBzeXN0ZW1kCiMgT1MgICAgOiBVYnVudHUgMjIuMDQgTFRTIG9yIG5ld2VyICh4ODZfNjQpCiMgQXV0aG9yOiBBYW5pcmlkcyBUZWNobm9sb2dpZXMgcHZ0IEx0ZC4KIwojIFVzYWdlIDogc3VkbyBiYXNoIC1jICIkKHdnZXQgLXFPLSBodHRwczovL2lwZHJzZXR1cC5hYW5pcmlkcy5jb20vaXBkci9pbnN0YWxsLnNoKSIKIyBSZS1ydW5uaW5nIHVwZ3JhZGVzIGFuIGV4aXN0aW5nIGluc3RhbGwgKHNlY3JldHMvY29uZmlnIGFyZSBrZXB0KS4KIwojIE5vbi1pbnRlcmFjdGl2ZTogcHJlLXNldCBhbnkgb2YgdGhlIHZhcmlhYmxlcyBsaXN0ZWQgdW5kZXIKIyAiSU5QVVRTIiBiZWxvdyAoZS5nLiBJUERSX0xJQ0VOU0VfVVNFUiwgTVlTUUxfSE9TVCwgLi4uKSBhbmQKIyBJUERSX05PTklOVEVSQUNUSVZFPTEuCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKc2V0IC1lRSAtbyBwaXBlZmFpbAp0cmFwICdlY2hvICJFUlJPUjogaW5zdGFsbGF0aW9uIGZhaWxlZCBuZWFyIGxpbmUgJHtMSU5FTk99OiAke0JBU0hfQ09NTUFORH0iID4mMicgRVJSCgpTRVRVUF9CQVNFPSIke0lQRFJfU0VUVVBfQkFTRTotaHR0cHM6Ly9pcGRyc2V0dXAuYWFuaXJpZHMuY29tfSIKU0VUVVBfQkFTRT0iJHtTRVRVUF9CQVNFJS99IgpTRVRVUF9QQVRIPSIke1NFVFVQX0JBU0V9L2lwZHIvc2V0dXAiCgpBUFBfVVNFUj0iaXBkciIKQVBQX0hPTUU9Ii9vcHQvaXBkciIKQ09ORl9ESVI9Ii9ldGMvaXBkciIKRU5WX0ZJTEU9IiR7Q09ORl9ESVJ9Ly5lbnYiCkNIX0NMSUVOVF9DRkc9IiR7Q09ORl9ESVJ9L2NsaWNraG91c2UtY2xpZW50LnhtbCIKQVBJX0hPU1Q9IjEyNy4wLjAuMSIKQVBJX1BPUlQ9IjgwMDAiCk5FVEZMT1dfUE9SVD0iOTk5NSIKU0VSVklDRT0iaXBkciIKCmV4cG9ydCBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUKZXhwb3J0IE5FRURSRVNUQVJUX01PREU9YQoKZGllKCkgeyBlY2hvICJFUlJPUjogJCoiID4mMjsgZXhpdCAxOyB9CnNheSgpIHsgZWNobyAiJCoiOyB9CmhyKCkgIHsgZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiOyB9CgppbnRlcmFjdGl2ZSgpIHsgWyAiJHtJUERSX05PTklOVEVSQUNUSVZFOi0wfSIgIT0gIjEiIF0gJiYgWyAtdCAwIF07IH0KCiMgYXNrIFZBUiAiUHJvbXB0IiBbZGVmYXVsdF0gICAgKHZhbHVlIHRha2VuIGZyb20gdGhlIGVudmlyb25tZW50IGlmIGFscmVhZHkgc2V0KQphc2soKSB7CiAgbG9jYWwgdmFyPSIkMSIgcHJvbXB0PSIkMiIgZGVmYXVsdD0iJHszOi19IiB2YWx1ZQogIGlmIFsgLW4gIiR7IXZhcjotfSIgXTsgdGhlbiByZXR1cm4gMDsgZmkKICBpZiBpbnRlcmFjdGl2ZTsgdGhlbgogICAgaWYgWyAtbiAiJGRlZmF1bHQiIF07IHRoZW4gcmVhZCAtciAtcCAiJHtwcm9tcHR9IFtkZWZhdWx0OiAke2RlZmF1bHR9XTogIiB2YWx1ZQogICAgZWxzZSByZWFkIC1yIC1wICIke3Byb21wdH06ICIgdmFsdWU7IGZpCiAgZmkKICB2YWx1ZT0iJHt2YWx1ZTotJGRlZmF1bHR9IgogIHByaW50ZiAtdiAiJHZhciIgJyVzJyAiJHZhbHVlIgp9CgojIGFza19zZWNyZXQgVkFSICJQcm9tcHQiCmFza19zZWNyZXQoKSB7CiAgbG9jYWwgdmFyPSIkMSIgcHJvbXB0PSIkMiIgdmFsdWU9IiIKICBpZiBbIC1uICIkeyF2YXI6LX0iIF07IHRoZW4gcmV0dXJuIDA7IGZpCiAgaWYgaW50ZXJhY3RpdmU7IHRoZW4gcmVhZCAtciAtcyAtcCAiJHtwcm9tcHR9OiAiIHZhbHVlOyBlY2hvOyBmaQogIHByaW50ZiAtdiAiJHZhciIgJyVzJyAiJHZhbHVlIgp9CgpyYW5kX2FsbnVtKCkgeyAjIHJhbmRfYWxudW0gTEVOCiAgbG9jYWwgb3V0PSIiCiAgd2hpbGUgWyAiJHsjb3V0fSIgLWx0ICIkMSIgXTsgZG8KICAgIG91dD0iJHtvdXR9JChvcGVuc3NsIHJhbmQgLWJhc2U2NCA0OCB8IHRyIC1kYyAnQS1aYS16MC05JykiCiAgZG9uZQogIHByaW50ZiAnJXMnICIke291dDowOiQxfSIKfQoKZW52X2dldCgpIHsgIyBlbnZfZ2V0IEtFWSAgLT4gdmFsdWUgZnJvbSB0aGUgZXhpc3RpbmcgLmVudiAoZW1wdHkgaWYgbm9uZSkKICBbIC1mICIkRU5WX0ZJTEUiIF0gfHwgcmV0dXJuIDAKICBncmVwIC1FICJeJDE9IiAiJEVOVl9GSUxFIiAyPi9kZXYvbnVsbCB8IGhlYWQgLW4xIHwgY3V0IC1kPSAtZjItIHx8IHRydWUKfQoKbm9fbmV3bGluZSgpIHsgY2FzZSAiJDIiIGluICokJ1xuJyp8KiQnXHInKikgZGllICIkMSBtdXN0IG5vdCBjb250YWluIGxpbmUgYnJlYWtzIjs7IGVzYWM7IH0KCmFwdF9pbnN0YWxsKCkgewogIGFwdC1nZXQgLW8gRFBrZzo6TG9jazo6VGltZW91dD0zMDAgaW5zdGFsbCAteSAtLW5vLWluc3RhbGwtcmVjb21tZW5kcyAiJEAiCn0KCndhaXRfZm9yX2FwdCgpIHsKICAjIHN0b3AgdGhlIGJhY2tncm91bmQgdXBkYXRlcnMgc28gdGhleSBkbyBub3QgaG9sZCB0aGUgZHBrZyBsb2NrCiAgc3lzdGVtY3RsIHN0b3AgdW5hdHRlbmRlZC11cGdyYWRlcyBhcHQtZGFpbHkuc2VydmljZSBhcHQtZGFpbHktdXBncmFkZS5zZXJ2aWNlIDI+L2Rldi9udWxsIHx8IHRydWUKICBsb2NhbCBuPTAKICB3aGlsZSBmdXNlciAvdmFyL2xpYi9kcGtnL2xvY2stZnJvbnRlbmQgL3Zhci9saWIvYXB0L2xpc3RzL2xvY2sgL3Zhci9saWIvZHBrZy9sb2NrID4vZGV2L251bGwgMj4mMTsgZG8KICAgIFsgIiRuIiAtZXEgMCBdICYmIHNheSAiV2FpdGluZyBmb3IgYW5vdGhlciBwYWNrYWdlIG1hbmFnZXIgdG8gZmluaXNoLi4uIgogICAgbj0kKChuICsgMikpOyBbICIkbiIgLWdlIDEyMCBdICYmIGJyZWFrOyBzbGVlcCAyCiAgZG9uZQogIGRwa2cgLS1jb25maWd1cmUgLWEgMj4vZGV2L251bGwgfHwgdHJ1ZQp9CgpoYXZlX3N5c3RlbWQoKSB7IFsgLWQgL3J1bi9zeXN0ZW1kL3N5c3RlbSBdOyB9CgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBCYW5uZXIgJiBwcmVmbGlnaHQKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmNsZWFyIDI+L2Rldi9udWxsIHx8IHRydWUKaHIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyBJbnN0YWxsYXRpb24gU2NyaXB0ICMjIyMjIyMjIyMjIyMjIyMjIyMiCmVjaG8gIiMgICAgICAgICAgICAgICAgICAgICAgSVBEUiBMb2dzICAgICAgICAgICAgICAgICAgICAgICAgICAjIgplY2hvICIjICAgICAgICAgSW5zdGFsbGF0aW9uIHwgQnkgQWFuaXJpZHMgVGVjaCBQdnQgTHRkICAgICAgICAgIyIKZWNobyAiIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMiCmVjaG8gIiMgICAgICAgICAgIHd3dy5hYW5pcmlkcy5jb20gfCBzdXBwb3J0QGFhbmlyaWRzLmNvbSAgICAgICAjIgpocgoKWyAiJChpZCAtdSkiIC1lcSAwIF0gfHwgZGllICJSdW4gYXMgcm9vdDogIHN1ZG8gYmFzaCAtYyBcIlwkKHdnZXQgLXFPLSAke1NFVFVQX0JBU0V9L2lwZHIvaW5zdGFsbC5zaClcIiIKClsgIiQodW5hbWUgLW0pIiA9ICJ4ODZfNjQiIF0gfHwgZGllICJPbmx5IHg4Nl82NCBpcyBzdXBwb3J0ZWQgKGZvdW5kICQodW5hbWUgLW0pKS4iCgppZiBbIC1yIC9ldGMvb3MtcmVsZWFzZSBdOyB0aGVuIC4gL2V0Yy9vcy1yZWxlYXNlOyBlbHNlIGRpZSAiQ2Fubm90IGRldGVjdCB0aGUgT1MuIjsgZmkKWyAiJHtJRDotfSIgPSAidWJ1bnR1IiBdIHx8IGRpZSAiVWJ1bnR1IGlzIHJlcXVpcmVkIChmb3VuZCAke1BSRVRUWV9OQU1FOi11bmtub3dufSkuIgpjYXNlICIke1ZFUlNJT05fSUQlJS4qfSIgaW4KICAnJ3wqWyEwLTldKikgZGllICJDYW5ub3QgcGFyc2UgVWJ1bnR1IHZlcnNpb24gJyR7VkVSU0lPTl9JRH0nLiI7OwogICopIFsgIiR7VkVSU0lPTl9JRCUlLip9IiAtZ2UgMjIgXSB8fCBkaWUgIlVidW50dSAyMi4wNCBvciBuZXdlciBpcyByZXF1aXJlZCAoZm91bmQgJHtWRVJTSU9OX0lEfSkuIjs7CmVzYWMKc2F5ICJPUzogJHtQUkVUVFlfTkFNRX0iCgp3YWl0X2Zvcl9hcHQKYXB0LWdldCAtbyBEUGtnOjpMb2NrOjpUaW1lb3V0PTMwMCB1cGRhdGUKYXB0X2luc3RhbGwgY2EtY2VydGlmaWNhdGVzIGN1cmwgd2dldCBnbnVwZyB1bnppcCBvcGVuc3NsIGlwcm91dGUyIHBzbWlzYyBwcm9jcHMgdHpkYXRhCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTVEVQIDEgLSBMaWNlbnNlIGNyZWRlbnRpYWxzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpocjsgc2F5ICJMaWNlbnNlIHZlcmlmaWNhdGlvbiI7IGhyCgpDVVJMX0NGRz0iJChta3RlbXApIjsgY2htb2QgNjAwICIkQ1VSTF9DRkciCldPUktfRElSPSIkKG1rdGVtcCAtZCkiCnRyYXAgJ3JtIC1yZiAiJENVUkxfQ0ZHIiAiJFdPUktfRElSIicgRVhJVAoKZmV0Y2goKSB7IGN1cmwgLWZzU0wgLS1yZXRyeSAzIC0tcmV0cnktZGVsYXkgMiAtSyAiJENVUkxfQ0ZHIiAiJEAiOyB9CgpsaWNlbnNlX29rPTAKZm9yIGF0dGVtcHQgaW4gMSAyIDM7IGRvCiAgYXNrIElQRFJfTElDRU5TRV9VU0VSICJFbnRlciBMaWNlbnNlIFVzZXJuYW1lIgogIGFza19zZWNyZXQgSVBEUl9MSUNFTlNFX1BBU1MgIkVudGVyIExpY2Vuc2UgUGFzc3dvcmQiCiAgWyAtbiAiJHtJUERSX0xJQ0VOU0VfVVNFUjotfSIgXSAmJiBbIC1uICIke0lQRFJfTElDRU5TRV9QQVNTOi19IiBdIHx8IGRpZSAiTGljZW5zZSB1c2VybmFtZSBhbmQgcGFzc3dvcmQgYXJlIHJlcXVpcmVkLiIKCiAgZXNjX3U9IiR7SVBEUl9MSUNFTlNFX1VTRVIvL1xcL1xcXFx9IjsgZXNjX3U9IiR7ZXNjX3UvL1wiL1xcXCJ9IgogIGVzY19wPSIke0lQRFJfTElDRU5TRV9QQVNTLy9cXC9cXFxcfSI7IGVzY19wPSIke2VzY19wLy9cIi9cXFwifSIKICBwcmludGYgJ3VzZXIgPSAiJXM6JXMiXG4nICIkZXNjX3UiICIkZXNjX3AiID4gIiRDVVJMX0NGRyIKCiAgY29kZT0iJChjdXJsIC1zIC1vIC9kZXYvbnVsbCAtdyAnJXtodHRwX2NvZGV9JyAtSyAiJENVUkxfQ0ZHIiAiJHtTRVRVUF9QQVRIfS9zYW1wbGUudHh0IiB8fCB0cnVlKSIKICBpZiBbICIkY29kZSIgPSAiMjAwIiBdOyB0aGVuIGxpY2Vuc2Vfb2s9MTsgYnJlYWs7IGZpCiAgY2FzZSAiJGNvZGUiIGluCiAgICA0MDEpIHNheSAiTGljZW5zZSByZWplY3RlZCAoaW52YWxpZCBjcmVkZW50aWFscyBvciBleHBpcmVkKS4iOzsKICAgIDAwMCkgZGllICJDYW5ub3QgcmVhY2ggJHtTRVRVUF9CQVNFfSAtIGNoZWNrIHRoaXMgc2VydmVyJ3MgaW50ZXJuZXQgYWNjZXNzLiI7OwogICAgKikgICBzYXkgIlNldHVwIHNlcnZlciByZXR1cm5lZCBIVFRQICR7Y29kZX0uIjs7CiAgZXNhYwogIGludGVyYWN0aXZlIHx8IGJyZWFrCiAgdW5zZXQgSVBEUl9MSUNFTlNFX1VTRVIgSVBEUl9MSUNFTlNFX1BBU1MKZG9uZQpbICIkbGljZW5zZV9vayIgPSAiMSIgXSB8fCBkaWUgIkxpY2Vuc2UgdmVyaWZpY2F0aW9uIGZhaWxlZC4iCnNheSAiTGljZW5zZSB2ZXJpZmllZC4iCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTVEVQIDIgLSBDb25maWd1cmF0aW9uIChJTlBVVFMpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpocjsgc2F5ICJDb25maWd1cmF0aW9uIjsgaHIKCkNVUlJFTlRfVFo9IiQodGltZWRhdGVjdGwgc2hvdyAtLXByb3BlcnR5PVRpbWV6b25lIC0tdmFsdWUgMj4vZGV2L251bGwgfHwgdHJ1ZSkiClsgLW4gIiRDVVJSRU5UX1RaIiBdIHx8IENVUlJFTlRfVFo9IlVUQyIKc2F5ICJTZXJ2ZXIgdGltZXpvbmUgZXhhbXBsZXM6IEFzaWEvS29sa2F0YSwgQXNpYS9EaGFrYSwgQXNpYS9EdWJhaSwgRXVyb3BlL0xvbmRvbiwgVVRDIgphc2sgSVBEUl9USU1FWk9ORSAiRW50ZXIgVGltZSBab25lIiAiJENVUlJFTlRfVFoiCklQRFJfVElNRVpPTkU9IiR7SVBEUl9USU1FWk9ORS8vW1s6c3BhY2U6XV0vfSIKWyAtZSAiL3Vzci9zaGFyZS96b25laW5mby8ke0lQRFJfVElNRVpPTkV9IiBdIHx8IGRpZSAiVW5rbm93biB0aW1lem9uZSAnJHtJUERSX1RJTUVaT05FfScuIgoKYXNrIElQRFJfRE9NQUlOICJFbnRlciBkb21haW4gbmFtZSAoZS5nLiBpcGRyLnlvdXJkb21haW4uY29tLCBibGFuayA9IHNlcnZlciBJUCkiCklQRFJfRE9NQUlOPSIke0lQRFJfRE9NQUlOLy9bWzpzcGFjZTpdXS99IgpTRVJWRVJfSVA9IiQoaG9zdG5hbWUgLUkgMj4vZGV2L251bGwgfCBjdXQgLWQnICcgLWYxIHx8IHRydWUpIjsgWyAtbiAiJFNFUlZFUl9JUCIgXSB8fCBTRVJWRVJfSVA9ImxvY2FsaG9zdCIKCnNheSAiIgpzYXkgIlJBRElVUyBkYXRhYmFzZSAodGhlIE15U1FMIHNlcnZlciBob2xkaW5nIHJhZGFjY3QgLyBzdWJzY3JpYmVycykiCmFzayBNWVNRTF9IT1NUICIgIE15U1FMIGhvc3QiICIkKGVudl9nZXQgTVlTUUxfSE9TVCkiCmFzayBNWVNRTF9QT1JUICIgIE15U1FMIHBvcnQiICIkKGVudl9nZXQgTVlTUUxfUE9SVCkiOyBNWVNRTF9QT1JUPSIke01ZU1FMX1BPUlQ6LTMzMDZ9Igphc2sgTVlTUUxfREFUQUJBU0UgIiAgTXlTUUwgZGF0YWJhc2UiICIkKGVudl9nZXQgTVlTUUxfREFUQUJBU0UpIjsgTVlTUUxfREFUQUJBU0U9IiR7TVlTUUxfREFUQUJBU0U6LXphbHVsdHJhfSIKYXNrIE1ZU1FMX1VTRVIgIiAgTXlTUUwgdXNlciIgIiQoZW52X2dldCBNWVNRTF9VU0VSKSIKaWYgWyAteiAiJHtNWVNRTF9QQVNTV09SRDotfSIgXSAmJiBbIC1uICIkKGVudl9nZXQgTVlTUUxfUEFTU1dPUkQpIiBdICYmIGludGVyYWN0aXZlOyB0aGVuCiAgc2F5ICIgIChwcmVzcyBFbnRlciB0byBrZWVwIHRoZSBleGlzdGluZyBNeVNRTCBwYXNzd29yZCkiCmZpCmFza19zZWNyZXQgTVlTUUxfUEFTU1dPUkQgIiAgTXlTUUwgcGFzc3dvcmQiClsgLW4gIiR7TVlTUUxfUEFTU1dPUkQ6LX0iIF0gfHwgTVlTUUxfUEFTU1dPUkQ9IiQoZW52X2dldCBNWVNRTF9QQVNTV09SRCkiClsgLW4gIiRNWVNRTF9IT1NUIiBdICYmIFsgLW4gIiRNWVNRTF9VU0VSIiBdICYmIFsgLW4gIiRNWVNRTF9QQVNTV09SRCIgXSBcCiAgfHwgZGllICJNeVNRTCBob3N0LCB1c2VyIGFuZCBwYXNzd29yZCBhcmUgcmVxdWlyZWQuIgpub19uZXdsaW5lIE1ZU1FMX1BBU1NXT1JEICIkTVlTUUxfUEFTU1dPUkQiCltbICIkTVlTUUxfUE9SVCIgPX4gXlswLTldKyQgXV0gfHwgZGllICJNeVNRTCBwb3J0IG11c3QgYmUgYSBudW1iZXIuIgoKc2F5ICIiCmFzayBOQVRfUk9VVEVSX0lQICJDR05BVCByb3V0ZXIgSVAgdGhhdCBleHBvcnRzIE5ldEZsb3cgdG8gdGhpcyBzZXJ2ZXIiICIkKGVudl9nZXQgTkFUX1JPVVRFUl9JUCkiCltbICIke05BVF9ST1VURVJfSVA6LX0iID1+IF4oWzAtOV17MSwzfVwuKXszfVswLTldezEsM30kIF1dIHx8IGRpZSAiQSB2YWxpZCBJUHY0IHJvdXRlciBhZGRyZXNzIGlzIHJlcXVpcmVkLiIKCnNheSAiIgphc2sgSVBEUl9BRE1JTl9VU0VSICJJbml0aWFsIGFkbWluIHVzZXJuYW1lIiAiYWRtaW4iClsgLW4gIiRJUERSX0FETUlOX1VTRVIiIF0gfHwgZGllICJBZG1pbiB1c2VybmFtZSBjYW5ub3QgYmUgZW1wdHkuIgpub19uZXdsaW5lIElQRFJfQURNSU5fVVNFUiAiJElQRFJfQURNSU5fVVNFUiIKQURNSU5fUEFTU19HRU5FUkFURUQ9MAppZiBbIC16ICIke0lQRFJfQURNSU5fUEFTUzotfSIgXTsgdGhlbgogIGFza19zZWNyZXQgSVBEUl9BRE1JTl9QQVNTICJJbml0aWFsIGFkbWluIHBhc3N3b3JkIChibGFuayA9IGdlbmVyYXRlKSIKICBpZiBbIC16ICIke0lQRFJfQURNSU5fUEFTUzotfSIgXTsgdGhlbiBJUERSX0FETUlOX1BBU1M9IiQocmFuZF9hbG51bSAxNikiOyBBRE1JTl9QQVNTX0dFTkVSQVRFRD0xOyBmaQpmaQpub19uZXdsaW5lIElQRFJfQURNSU5fUEFTUyAiJElQRFJfQURNSU5fUEFTUyIKCkVOQUJMRV9TU0w9Im4iCmlmIFsgLW4gIiRJUERSX0RPTUFJTiIgXTsgdGhlbgogIGFzayBJUERSX0VOQUJMRV9TU0wgIkVuYWJsZSBIVFRQUyB3aXRoIExldCdzIEVuY3J5cHQ/ICh5L24pIiAieSIKICBFTkFCTEVfU1NMPSIkKGVjaG8gIiRJUERSX0VOQUJMRV9TU0wiIHwgdHIgJ1s6dXBwZXI6XScgJ1s6bG93ZXI6XScgfCBjdXQgLWMxKSIKICBbICIkRU5BQkxFX1NTTCIgPSAieSIgXSAmJiBhc2sgSVBEUl9TU0xfRU1BSUwgIiAgTGV0J3MgRW5jcnlwdCBjb250YWN0IGVtYWlsIiAic3VwcG9ydEBhYW5pcmlkcy5jb20iCmZpCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTVEVQIDMgLSBUaW1lem9uZSwgYmFzZSBwYWNrYWdlcywgTXlTUUwgY2xpZW50CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpocjsgc2F5ICJBcHBseWluZyB0aW1lem9uZSAke0lQRFJfVElNRVpPTkV9IjsgaHIKdGltZWRhdGVjdGwgc2V0LXRpbWV6b25lICIkSVBEUl9USU1FWk9ORSIgMj4vZGV2L251bGwgXAogIHx8IGxuIC1zZiAiL3Vzci9zaGFyZS96b25laW5mby8ke0lQRFJfVElNRVpPTkV9IiAvZXRjL2xvY2FsdGltZQpzYXkgIlNlcnZlciB0aW1lOiAkKGRhdGUpIgoKaHI7IHNheSAiSW5zdGFsbGluZyBzeXN0ZW0gcGFja2FnZXMgKGluY2wuIE15U1FMIGNsaWVudCBmb3IgUkFESVVTIHN5bmMpIjsgaHIKYXB0X2luc3RhbGwgbmFubyB2aW0gbmV0LXRvb2xzIHVmdyBjcm9uIG5naW54IHR6ZGF0YQojIGBteXNxbGAgQ0xJIGlzIHdoYXQgcmFkaXVzX3N5bmMgdXNlcyB0byByZWFkIHRoZSBSQURJVVMgZGF0YWJhc2UuCmFwdF9pbnN0YWxsIG15c3FsLWNsaWVudCB8fCBhcHRfaW5zdGFsbCBkZWZhdWx0LW15c3FsLWNsaWVudApjb21tYW5kIC12IG15c3FsID4vZGV2L251bGwgfHwgZGllICJteXNxbCBjbGllbnQgd2FzIG5vdCBpbnN0YWxsZWQuIgoKIyBGYWlsIGVhcmx5IGlmIHRoZSBSQURJVVMgZGF0YWJhc2UgaXMgbm90IHJlYWNoYWJsZSBmcm9tIHRoaXMgc2VydmVyLgpzYXkgIkNoZWNraW5nIFJBRElVUyBNeVNRTCBjb25uZWN0aW9uICR7TVlTUUxfVVNFUn1AJHtNWVNRTF9IT1NUfToke01ZU1FMX1BPUlR9LyR7TVlTUUxfREFUQUJBU0V9IC4uLiIKaWYgTVlTUUxfUFdEPSIkTVlTUUxfUEFTU1dPUkQiIG15c3FsIC0tY29ubmVjdC10aW1lb3V0PTEwIC1oICIkTVlTUUxfSE9TVCIgLVAgIiRNWVNRTF9QT1JUIiAtdSAiJE1ZU1FMX1VTRVIiIFwKICAgICAtRCAiJE1ZU1FMX0RBVEFCQVNFIiAtZSAiU0VMRUNUIDEiID4vZGV2L251bGwgMj4mMTsgdGhlbgogIHNheSAiUkFESVVTIE15U1FMIGNvbm5lY3Rpb24gT0suIgogIGlmICEgTVlTUUxfUFdEPSIkTVlTUUxfUEFTU1dPUkQiIG15c3FsIC0tY29ubmVjdC10aW1lb3V0PTEwIC1oICIkTVlTUUxfSE9TVCIgLVAgIiRNWVNRTF9QT1JUIiAtdSAiJE1ZU1FMX1VTRVIiIFwKICAgICAgIC1EICIkTVlTUUxfREFUQUJBU0UiIC1lICJTRUxFQ1QgMSBGUk9NIHJhZGFjY3QgTElNSVQgMSIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgICBzYXkgIldBUk5JTkc6IHRhYmxlICdyYWRhY2N0JyBpcyBub3QgcmVhZGFibGUgaW4gJHtNWVNRTF9EQVRBQkFTRX07IFJBRElVUyBzeW5jIHdpbGwga2VlcCByZXRyeWluZy4iCiAgZmkKZWxpZiBbICIke0lQRFJfU0tJUF9NWVNRTF9DSEVDSzotMH0iID0gIjEiIF07IHRoZW4KICBzYXkgIldBUk5JTkc6IGNhbm5vdCBjb25uZWN0IHRvIFJBRElVUyBNeVNRTCAoY29udGludWluZywgSVBEUl9TS0lQX01ZU1FMX0NIRUNLPTEpLiIKZWxzZQogIGRpZSAiQ2Fubm90IGNvbm5lY3QgdG8gTXlTUUwgYXQgJHtNWVNRTF9IT1NUfToke01ZU1FMX1BPUlR9IGFzICR7TVlTUUxfVVNFUn0uIEFsbG93IHRoaXMgc2VydmVyJ3MgSVAgaW4gTXlTUUwvZmlyZXdhbGwsIG9yIHNldCBJUERSX1NLSVBfTVlTUUxfQ0hFQ0s9MSB0byBjb250aW51ZSBhbnl3YXkuIgpmaQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCA0IC0gU2VjcmV0cwojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaHI7IHNheSAiUHJlcGFyaW5nIHNlY3JldHMiOyBocgpta2RpciAtcCAiJENPTkZfRElSIgpDSF9QQVNTPSIkKGVudl9nZXQgQ0xJQ0tIT1VTRV9QQVNTV09SRCkiOyBbIC1uICIkQ0hfUEFTUyIgXSB8fCBDSF9QQVNTPSIkKHJhbmRfYWxudW0gMjQpIgpBVVRIX1NFQ1JFVD0iJChlbnZfZ2V0IElQRFJfQVVUSF9TRUNSRVQpIjsgWyAiJHsjQVVUSF9TRUNSRVR9IiAtZ2UgMzIgXSB8fCBBVVRIX1NFQ1JFVD0iJChvcGVuc3NsIHJhbmQgLWhleCA0OCkiCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTVEVQIDUgLSBDbGlja0hvdXNlCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpocjsgc2F5ICJJbnN0YWxsaW5nIENsaWNrSG91c2UiOyBocgppZiAhIGNvbW1hbmQgLXYgY2xpY2tob3VzZS1jbGllbnQgPi9kZXYvbnVsbCB8fCAhIGRwa2cgLXMgY2xpY2tob3VzZS1zZXJ2ZXIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCiAgY3VybCAtZnNTTCAnaHR0cHM6Ly9wYWNrYWdlcy5jbGlja2hvdXNlLmNvbS9ycG0vbHRzL3JlcG9kYXRhL3JlcG9tZC54bWwua2V5JyBcCiAgICB8IGdwZyAtLWRlYXJtb3IgLS15ZXMgLW8gL3Vzci9zaGFyZS9rZXlyaW5ncy9jbGlja2hvdXNlLWtleXJpbmcuZ3BnCiAgZWNobyAiZGViIFtzaWduZWQtYnk9L3Vzci9zaGFyZS9rZXlyaW5ncy9jbGlja2hvdXNlLWtleXJpbmcuZ3BnXSBodHRwczovL3BhY2thZ2VzLmNsaWNraG91c2UuY29tL2RlYiBzdGFibGUgbWFpbiIgXAogICAgPiAvZXRjL2FwdC9zb3VyY2VzLmxpc3QuZC9jbGlja2hvdXNlLmxpc3QKICB3YWl0X2Zvcl9hcHQKICBhcHQtZ2V0IC1vIERQa2c6OkxvY2s6OlRpbWVvdXQ9MzAwIHVwZGF0ZQogIGFwdF9pbnN0YWxsIGNsaWNraG91c2Utc2VydmVyIGNsaWNraG91c2UtY2xpZW50CmZpCgpDSF9IQVNIPSIkKHByaW50ZiAnJXMnICIkQ0hfUEFTUyIgfCBzaGEyNTZzdW0gfCBjdXQgLWQnICcgLWYxKSIKbWtkaXIgLXAgL2V0Yy9jbGlja2hvdXNlLXNlcnZlci91c2Vycy5kIC9ldGMvY2xpY2tob3VzZS1zZXJ2ZXIvY29uZmlnLmQKY2F0ID4gL2V0Yy9jbGlja2hvdXNlLXNlcnZlci91c2Vycy5kL2lwZHItcGFzc3dvcmQueG1sIDw8RU9GCjxjbGlja2hvdXNlPgogIDx1c2Vycz4KICAgIDxkZWZhdWx0PgogICAgICA8cGFzc3dvcmQgcmVtb3ZlPSIxIi8+CiAgICAgIDxwYXNzd29yZF9zaGEyNTZfaGV4PiR7Q0hfSEFTSH08L3Bhc3N3b3JkX3NoYTI1Nl9oZXg+CiAgICA8L2RlZmF1bHQ+CiAgPC91c2Vycz4KPC9jbGlja2hvdXNlPgpFT0YKY2F0ID4gL2V0Yy9jbGlja2hvdXNlLXNlcnZlci9jb25maWcuZC9pcGRyLWxpc3Rlbi54bWwgPDxFT0YKPGNsaWNraG91c2U+CiAgPCEtLSBJUERSIHJ1bnMgb24gdGhpcyBob3N0IG9ubHk7IG5ldmVyIGV4cG9zZSBDbGlja0hvdXNlIHRvIHRoZSBuZXR3b3JrIC0tPgogIDxsaXN0ZW5faG9zdD4xMjcuMC4wLjE8L2xpc3Rlbl9ob3N0Pgo8L2NsaWNraG91c2U+CkVPRgpjaG93biBjbGlja2hvdXNlOmNsaWNraG91c2UgL2V0Yy9jbGlja2hvdXNlLXNlcnZlci91c2Vycy5kL2lwZHItcGFzc3dvcmQueG1sIC9ldGMvY2xpY2tob3VzZS1zZXJ2ZXIvY29uZmlnLmQvaXBkci1saXN0ZW4ueG1sCmNobW9kIDY0MCAvZXRjL2NsaWNraG91c2Utc2VydmVyL3VzZXJzLmQvaXBkci1wYXNzd29yZC54bWwKCiMgY2xpZW50IGNvbmZpZyAocm9vdCBvbmx5KSBzbyBwYXNzd29yZHMgbmV2ZXIgYXBwZWFyIG9uIGNvbW1hbmQgbGluZXMKY2F0ID4gIiRDSF9DTElFTlRfQ0ZHIiA8PEVPRgo8Y29uZmlnPgogIDxob3N0PjEyNy4wLjAuMTwvaG9zdD4KICA8cG9ydD45MDAwPC9wb3J0PgogIDx1c2VyPmRlZmF1bHQ8L3VzZXI+CiAgPHBhc3N3b3JkPiR7Q0hfUEFTU308L3Bhc3N3b3JkPgo8L2NvbmZpZz4KRU9GCmNobW9kIDYwMCAiJENIX0NMSUVOVF9DRkciCmNoKCkgeyBjbGlja2hvdXNlLWNsaWVudCAtLWNvbmZpZy1maWxlICIkQ0hfQ0xJRU5UX0NGRyIgIiRAIjsgfQoKaWYgaGF2ZV9zeXN0ZW1kOyB0aGVuCiAgc3lzdGVtY3RsIGVuYWJsZSBjbGlja2hvdXNlLXNlcnZlciA+L2Rldi9udWxsIDI+JjEgfHwgdHJ1ZQogIHN5c3RlbWN0bCByZXN0YXJ0IGNsaWNraG91c2Utc2VydmVyCmVsc2UKICBkaWUgInN5c3RlbWQgaXMgcmVxdWlyZWQuIgpmaQoKc2F5ICJXYWl0aW5nIGZvciBDbGlja0hvdXNlLi4uIgpjaF9yZWFkeT0wCmZvciBfIGluICQoc2VxIDEgNjApOyBkbwogIGlmIGNoIC0tcXVlcnkgIlNFTEVDVCAxIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4gY2hfcmVhZHk9MTsgYnJlYWs7IGZpCiAgc2xlZXAgMgpkb25lClsgIiRjaF9yZWFkeSIgPSAiMSIgXSB8fCB7IGpvdXJuYWxjdGwgLXUgY2xpY2tob3VzZS1zZXJ2ZXIgLS1uby1wYWdlciAtbiAzMCB8fCB0cnVlOyBkaWUgIkNsaWNrSG91c2UgZGlkIG5vdCBiZWNvbWUgcmVhZHkuIjsgfQpzYXkgIkNsaWNrSG91c2UgJChjaCAtLXF1ZXJ5ICdTRUxFQ1QgdmVyc2lvbigpJykgaXMgdXAuIgoKaHI7IHNheSAiQ3JlYXRpbmcgSVBEUiBkYXRhYmFzZSBzY2hlbWEiOyBocgpmZXRjaCAiJHtTRVRVUF9QQVRIfS9jb21tb24vc3FsL2lwZHItc2NoZW1hLnNxbCIgLW8gIiR7V09SS19ESVJ9L2lwZHItc2NoZW1hLnNxbCIKY2ggLS1tdWx0aXF1ZXJ5IDwgIiR7V09SS19ESVJ9L2lwZHItc2NoZW1hLnNxbCIKc2F5ICJUYWJsZXM6ICQoY2ggLS1xdWVyeSAiU0VMRUNUIGNvdW50KCkgRlJPTSBzeXN0ZW0udGFibGVzIFdIRVJFIGRhdGFiYXNlPSdpcGRyJyIpIgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCA2IC0gQXBwbGljYXRpb24gcmVsZWFzZQojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaHI7IHNheSAiRG93bmxvYWRpbmcgSVBEUiByZWxlYXNlIjsgaHIKZmV0Y2ggIiR7U0VUVVBfUEFUSH0vcmVsZWFzZS5qc29uIiAtbyAiJHtXT1JLX0RJUn0vcmVsZWFzZS5qc29uIgpWRVJTSU9OPSIkKHNlZCAtbiAncy8uKiJ2ZXJzaW9uIiAqOiAqIlwoW14iXSpcKSIuKi9cMS9wJyAiJHtXT1JLX0RJUn0vcmVsZWFzZS5qc29uIikiClNIQTI1Nj0iJChzZWQgLW4gJ3MvLioic2hhMjU2IiAqOiAqIlwoWzAtOWEtZl1cezY0XH1cKSIuKi9cMS9wJyAiJHtXT1JLX0RJUn0vcmVsZWFzZS5qc29uIikiClsgLW4gIiRWRVJTSU9OIiBdICYmIFsgLW4gIiRTSEEyNTYiIF0gfHwgZGllICJJbnZhbGlkIHJlbGVhc2UgbWV0YWRhdGEgZnJvbSB0aGUgc2V0dXAgc2VydmVyLiIKY2FzZSAiJFZFUlNJT04iIGluICpbIUEtWmEtejAtOS5fLV0qKSBkaWUgIlVuc2FmZSByZWxlYXNlIHZlcnNpb24gJyR7VkVSU0lPTn0nLiI7OyBlc2FjCnNheSAiUmVsZWFzZSAke1ZFUlNJT059IgoKZmV0Y2ggIiR7U0VUVVBfUEFUSH0vaW5zdGFsbC96aXAvaXBkci56aXAiIC1vICIke1dPUktfRElSfS9pcGRyLnppcCIKZWNobyAiJHtTSEEyNTZ9ICAke1dPUktfRElSfS9pcGRyLnppcCIgfCBzaGEyNTZzdW0gLWMgLS1zdGF0dXMgfHwgZGllICJSZWxlYXNlIGFyY2hpdmUgY2hlY2tzdW0gbWlzbWF0Y2guIgpzYXkgIkFyY2hpdmUgY2hlY2tzdW0gdmVyaWZpZWQuIgoKaWQgLXUgIiRBUFBfVVNFUiIgPi9kZXYvbnVsbCAyPiYxIFwKICB8fCB1c2VyYWRkIC0tc3lzdGVtIC0taG9tZS1kaXIgIiRBUFBfSE9NRSIgLS1zaGVsbCAvdXNyL3NiaW4vbm9sb2dpbiAiJEFQUF9VU0VSIgpta2RpciAtcCAiJEFQUF9IT01FL3JlbGVhc2VzIgpjaG93biAiJEFQUF9VU0VSOiRBUFBfVVNFUiIgIiRBUFBfSE9NRSIKClJFTF9ESVI9IiR7QVBQX0hPTUV9L3JlbGVhc2VzLyR7VkVSU0lPTn0iCnJtIC1yZiAiJFJFTF9ESVIiOyBta2RpciAtcCAiJFJFTF9ESVIiCnVuemlwIC1xICIke1dPUktfRElSfS9pcGRyLnppcCIgLWQgIiRSRUxfRElSIgpbIC14ICIke1JFTF9ESVJ9L2lwZHItc2VydmVyL2lwZHItc2VydmVyIiBdIHx8IGRpZSAiUmVsZWFzZSBhcmNoaXZlIGRvZXMgbm90IGNvbnRhaW4gaXBkci1zZXJ2ZXIvaXBkci1zZXJ2ZXIuIgpjaG93biAtUiByb290OnJvb3QgIiRSRUxfRElSIjsgY2htb2QgLVIgYStyWCAiJFJFTF9ESVIiCgppZiBsZGQgIiR7UkVMX0RJUn0vaXBkci1zZXJ2ZXIvaXBkci1zZXJ2ZXIiIDI+JjEgfCBncmVwIC1xICJub3QgZm91bmQiOyB0aGVuCiAgbGRkICIke1JFTF9ESVJ9L2lwZHItc2VydmVyL2lwZHItc2VydmVyIiB8IGdyZXAgIm5vdCBmb3VuZCIgPiYyCiAgZGllICJUaGUgcmVsZWFzZSBiaW5hcnkgbmVlZHMgc2hhcmVkIGxpYnJhcmllcyBtaXNzaW5nIG9uIHRoaXMgT1MuIgpmaQoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCA3IC0gQ29uZmlndXJhdGlvbiBmaWxlCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpjYXQgPiAiJEVOVl9GSUxFIiA8PEVPRgojIElQRFIgTG9ncyBjb25maWd1cmF0aW9uICh3cml0dGVuIGJ5IHRoZSBpbnN0YWxsZXI7IHJlLXJ1biBpdCB0byBjaGFuZ2UpLgojIFJlYWQgYnkgdGhlIEFQSSBhbmQgdGhlIHdvcmtlciBwcm9jZXNzZXMgdmlhIElQRFJfRU5WX0ZJTEUuCgojIFJBRElVUyBNeVNRTApNWVNRTF9IT1NUPSR7TVlTUUxfSE9TVH0KTVlTUUxfUE9SVD0ke01ZU1FMX1BPUlR9Ck1ZU1FMX0RBVEFCQVNFPSR7TVlTUUxfREFUQUJBU0V9Ck1ZU1FMX1VTRVI9JHtNWVNRTF9VU0VSfQpNWVNRTF9QQVNTV09SRD0ke01ZU1FMX1BBU1NXT1JEfQoKIyBDbGlja0hvdXNlIChsb2NhbCkKQ0xJQ0tIT1VTRV9IT1NUPTEyNy4wLjAuMQpDTElDS0hPVVNFX1BPUlQ9OTAwMApDTElDS0hPVVNFX0RBVEFCQVNFPWlwZHIKQ0xJQ0tIT1VTRV9VU0VSPWRlZmF1bHQKQ0xJQ0tIT1VTRV9QQVNTV09SRD0ke0NIX1BBU1N9CgojIE5ldEZsb3cgY29sbGVjdG9yCk5BVF9ST1VURVJfSVA9JHtOQVRfUk9VVEVSX0lQfQoKIyBTZXNzaW9uIHNpZ25pbmcga2V5CklQRFJfQVVUSF9TRUNSRVQ9JHtBVVRIX1NFQ1JFVH0KRU9GCmNob3duICJyb290OiR7QVBQX1VTRVJ9IiAiJEVOVl9GSUxFIjsgY2htb2QgNjQwICIkRU5WX0ZJTEUiCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTVEVQIDggLSBzeXN0ZW1kIHNlcnZpY2UKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmhyOyBzYXkgIkluc3RhbGxpbmcgc2VydmljZSI7IGhyCmNhdCA+ICIvZXRjL3N5c3RlbWQvc3lzdGVtLyR7U0VSVklDRX0uc2VydmljZSIgPDxFT0YKW1VuaXRdCkRlc2NyaXB0aW9uPUlQRFIgTG9ncyAoQVBJLCBOZXRGbG93IGNvbGxlY3RvciwgUkFESVVTIHN5bmMpCkFmdGVyPW5ldHdvcmstb25saW5lLnRhcmdldCBjbGlja2hvdXNlLXNlcnZlci5zZXJ2aWNlCldhbnRzPW5ldHdvcmstb25saW5lLnRhcmdldCBjbGlja2hvdXNlLXNlcnZlci5zZXJ2aWNlCgpbU2VydmljZV0KVHlwZT1zaW1wbGUKVXNlcj0ke0FQUF9VU0VSfQpHcm91cD0ke0FQUF9VU0VSfQpXb3JraW5nRGlyZWN0b3J5PSR7QVBQX0hPTUV9L2N1cnJlbnQvaXBkci1zZXJ2ZXIKRW52aXJvbm1lbnQ9SVBEUl9FTlZfRklMRT0ke0VOVl9GSUxFfQpFbnZpcm9ubWVudD1JUERSX0hPTUU9JHtBUFBfSE9NRX0KRW52aXJvbm1lbnQ9SVBEUl9IT1NUPSR7QVBJX0hPU1R9CkVudmlyb25tZW50PUlQRFJfUE9SVD0ke0FQSV9QT1JUfQpFbnZpcm9ubWVudD1OQVRfUE9SVD0ke05FVEZMT1dfUE9SVH0KRW52aXJvbm1lbnQ9UFlUSE9OVU5CVUZGRVJFRD0xCkV4ZWNTdGFydD0ke0FQUF9IT01FfS9jdXJyZW50L2lwZHItc2VydmVyL2lwZHItc2VydmVyIGFwaQpSZXN0YXJ0PWFsd2F5cwpSZXN0YXJ0U2VjPTUKVGltZW91dFN0b3BTZWM9MjAKTGltaXROT0ZJTEU9NjU1MzYKTm9OZXdQcml2aWxlZ2VzPXRydWUKUHJpdmF0ZVRtcD10cnVlClByb3RlY3RTeXN0ZW09ZnVsbAoKW0luc3RhbGxdCldhbnRlZEJ5PW11bHRpLXVzZXIudGFyZ2V0CkVPRgoKc3lzdGVtY3RsIGRhZW1vbi1yZWxvYWQKc3lzdGVtY3RsIHN0b3AgIiRTRVJWSUNFIiAyPi9kZXYvbnVsbCB8fCB0cnVlCmxuIC1zZm4gIiRSRUxfRElSIiAiJHtBUFBfSE9NRX0vY3VycmVudCIKIyBrZWVwIHRoZSBjdXJyZW50IGFuZCB0aGUgdHdvIHByZXZpb3VzIHJlbGVhc2VzIGZvciByb2xsYmFjawpvbGRfcmVsZWFzZXM9KCkKd2hpbGUgSUZTPSByZWFkIC1yIGQ7IGRvIG9sZF9yZWxlYXNlcys9KCIkZCIpOyBkb25lIDwgPChmaW5kICIke0FQUF9IT01FfS9yZWxlYXNlcyIgLW1pbmRlcHRoIDEgLW1heGRlcHRoIDEgLXR5cGUgZCAtcHJpbnRmICclVEAgJXAKJyB8IHNvcnQgLXJuIHwgY3V0IC1kJyAnIC1mMi0gfCB0YWlsIC1uICs0KQpmb3IgZCBpbiAiJHtvbGRfcmVsZWFzZXNbQF19IjsgZG8gcm0gLXJmICIkZCI7IGRvbmUKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNURVAgOSAtIEZpcnN0IGFkbWluaXN0cmF0b3IKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkFETUlOX0NSRUFURUQ9MApFWElTVElOR19BRE1JTlM9IiQoY2ggLS1xdWVyeSAiU0VMRUNUIGNvdW50KCkgRlJPTSBpcGRyLmFkbWluX3VzZXJzIFdIRVJFIHJvbGU9J2FkbWluJyBBTkQgZW5hYmxlZD0xIikiCmlmIFsgIiRFWElTVElOR19BRE1JTlMiID0gIjAiIF07IHRoZW4KICBjaCAtLXBhcmFtX3U9IiRJUERSX0FETUlOX1VTRVIiIC0tcGFyYW1fcD0iJElQRFJfQURNSU5fUEFTUyIgLS1xdWVyeSBcCiAgICAiSU5TRVJUIElOVE8gaXBkci5hZG1pbl91c2VycyAodXNlcm5hbWUsIHBhc3N3b3JkLCBmdWxsX25hbWUsIHJvbGUsIGVuYWJsZWQpCiAgICAgU0VMRUNUIHt1OlN0cmluZ30sIHtwOlN0cmluZ30sICdBZG1pbmlzdHJhdG9yJywgJ2FkbWluJywgMSIKICBBRE1JTl9DUkVBVEVEPTEKICBzYXkgIkFkbWluaXN0cmF0b3IgJyR7SVBEUl9BRE1JTl9VU0VSfScgY3JlYXRlZC4iCmVsc2UKICBzYXkgIkFuIGFkbWluaXN0cmF0b3IgYWxyZWFkeSBleGlzdHM7IG5vdCBjcmVhdGluZyBhbm90aGVyLiIKZmkKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNURVAgMTAgLSBOZ2lueAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaHI7IHNheSAiQ29uZmlndXJpbmcgTmdpbngiOyBocgppZiBbIC1uICIkSVBEUl9ET01BSU4iIF07IHRoZW4KICBOR0lOWF9OQU1FPSIkSVBEUl9ET01BSU4iOyBBQ0NFU1NfVVJMPSJodHRwczovLyR7SVBEUl9ET01BSU59IjsgWyAiJEVOQUJMRV9TU0wiID0gInkiIF0gfHwgQUNDRVNTX1VSTD0iaHR0cDovLyR7SVBEUl9ET01BSU59IgplbHNlCiAgTkdJTlhfTkFNRT0iXyI7IEFDQ0VTU19VUkw9Imh0dHA6Ly8ke1NFUlZFUl9JUH0iCmZpCmNhdCA+IC9ldGMvbmdpbngvc2l0ZXMtYXZhaWxhYmxlL2lwZHIgPDxFT0YKc2VydmVyIHsKICAgIGxpc3RlbiA4MCBkZWZhdWx0X3NlcnZlcjsKICAgIGxpc3RlbiBbOjpdOjgwIGRlZmF1bHRfc2VydmVyOwogICAgc2VydmVyX25hbWUgJHtOR0lOWF9OQU1FfTsKCiAgICBjbGllbnRfbWF4X2JvZHlfc2l6ZSA1MG07CgogICAgbG9jYXRpb24gLyB7CiAgICAgICAgcHJveHlfcGFzcyBodHRwOi8vJHtBUElfSE9TVH06JHtBUElfUE9SVH07CiAgICAgICAgcHJveHlfaHR0cF92ZXJzaW9uIDEuMTsKICAgICAgICBwcm94eV9zZXRfaGVhZGVyIEhvc3QgXCRob3N0OwogICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1SZWFsLUlQIFwkcmVtb3RlX2FkZHI7CiAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1Gb3IgXCRwcm94eV9hZGRfeF9mb3J3YXJkZWRfZm9yOwogICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtUHJvdG8gXCRzY2hlbWU7CiAgICAgICAgIyBsYXJnZSBzZWFyY2hlcyBhbmQgQ1NWIGV4cG9ydHMgY2FuIHRha2UgYSB3aGlsZQogICAgICAgIHByb3h5X2Nvbm5lY3RfdGltZW91dCAxMHM7CiAgICAgICAgcHJveHlfc2VuZF90aW1lb3V0IDkwMHM7CiAgICAgICAgcHJveHlfcmVhZF90aW1lb3V0IDkwMHM7CiAgICB9Cn0KRU9GCnJtIC1mIC9ldGMvbmdpbngvc2l0ZXMtZW5hYmxlZC9kZWZhdWx0CmxuIC1zZiAvZXRjL25naW54L3NpdGVzLWF2YWlsYWJsZS9pcGRyIC9ldGMvbmdpbngvc2l0ZXMtZW5hYmxlZC9pcGRyCm5naW54IC10CnN5c3RlbWN0bCBlbmFibGUgbmdpbnggPi9kZXYvbnVsbCAyPiYxIHx8IHRydWUKc3lzdGVtY3RsIHJlc3RhcnQgbmdpbngKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNURVAgMTEgLSBTdGFydCBJUERSCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpocjsgc2F5ICJTdGFydGluZyBJUERSIjsgaHIKc3lzdGVtY3RsIGVuYWJsZSAiJFNFUlZJQ0UiID4vZGV2L251bGwgMj4mMQpzeXN0ZW1jdGwgcmVzdGFydCAiJFNFUlZJQ0UiCgphcGlfb2s9MApmb3IgXyBpbiAkKHNlcSAxIDYwKTsgZG8KICBpZiBjdXJsIC1mc1MgImh0dHA6Ly8ke0FQSV9IT1NUfToke0FQSV9QT1JUfS9oZWFsdGgiIDI+L2Rldi9udWxsIHwgZ3JlcCAtcSAnInN0YXR1cyI6Im9rIic7IHRoZW4gYXBpX29rPTE7IGJyZWFrOyBmaQogIHNsZWVwIDIKZG9uZQppZiBbICIkYXBpX29rIiAhPSAiMSIgXTsgdGhlbgogIGpvdXJuYWxjdGwgLXUgIiRTRVJWSUNFIiAtLW5vLXBhZ2VyIC1uIDQwIHx8IHRydWUKICBkaWUgIklQRFIgQVBJIGRpZCBub3QgYmVjb21lIGhlYWx0aHkuIgpmaQpzYXkgIklQRFIgQVBJIGlzIGhlYWx0aHkuIgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCAxMiAtIEZpcmV3YWxsICYgSFRUUFMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmhyOyBzYXkgIkZpcmV3YWxsIjsgaHIKaWYgWyAiJHtJUERSX1NLSVBfRklSRVdBTEw6LTB9IiA9ICIxIiBdOyB0aGVuCiAgc2F5ICJTa2lwcGVkIChJUERSX1NLSVBfRklSRVdBTEw9MSkuIgplbHNlCiAgKAogICAgc2V0ICtlCiAgICBTU0hfUE9SVFM9IiQoc3MgLXRsbnBIIDI+L2Rldi9udWxsIHwgZ3JlcCAtdyBzc2hkIHwgYXdrICd7bj1zcGxpdCgkNCxhLCI6Iik7IHByaW50IGFbbl19JyB8IHNvcnQgLXUpIgogICAgWyAtbiAiJFNTSF9QT1JUUyIgXSB8fCBTU0hfUE9SVFM9IjIyIgogICAgZm9yIHAgaW4gJFNTSF9QT1JUUzsgZG8gdWZ3IGFsbG93ICIke3B9L3RjcCI7IGRvbmUKICAgIHVmdyBhbGxvdyA4MC90Y3AKICAgIHVmdyBhbGxvdyA0NDMvdGNwCiAgICB1ZncgYWxsb3cgZnJvbSAiJE5BVF9ST1VURVJfSVAiIHRvIGFueSBwb3J0ICIkTkVURkxPV19QT1JUIiBwcm90byB1ZHAKICAgIHVmdyAtLWZvcmNlIGVuYWJsZQogICkgfHwgc2F5ICJXQVJOSU5HOiBmaXJld2FsbCBjb25maWd1cmF0aW9uIGZhaWxlZDsgY29uZmlndXJlIHVmdyBtYW51YWxseSAoODAvNDQzIHRjcCwgJHtORVRGTE9XX1BPUlR9L3VkcCBmcm9tICR7TkFUX1JPVVRFUl9JUH0pLiIKZmkKCmlmIFsgIiRFTkFCTEVfU1NMIiA9ICJ5IiBdOyB0aGVuCiAgaHI7IHNheSAiSFRUUFMgKExldCdzIEVuY3J5cHQpIjsgaHIKICBpZiBhcHRfaW5zdGFsbCBjZXJ0Ym90IHB5dGhvbjMtY2VydGJvdC1uZ2lueCBcCiAgICAgJiYgY2VydGJvdCAtLW5naW54IC1kICIkSVBEUl9ET01BSU4iIC0tbm9uLWludGVyYWN0aXZlIC0tYWdyZWUtdG9zIC1tICIke0lQRFJfU1NMX0VNQUlMOi1zdXBwb3J0QGFhbmlyaWRzLmNvbX0iIC0tcmVkaXJlY3Q7IHRoZW4KICAgIHNheSAiSFRUUFMgZW5hYmxlZCBmb3IgJHtJUERSX0RPTUFJTn0uIgogIGVsc2UKICAgIEFDQ0VTU19VUkw9Imh0dHA6Ly8ke0lQRFJfRE9NQUlOfSIKICAgIHNheSAiV0FSTklORzogSFRUUFMgc2V0dXAgZmFpbGVkIChpcyB0aGUgRE5TIHJlY29yZCBwb2ludGluZyB0byB0aGlzIHNlcnZlcj8pLiBSZXRyeSBsYXRlcjoiCiAgICBzYXkgIiAgY2VydGJvdCAtLW5naW54IC1kICR7SVBEUl9ET01BSU59IgogIGZpCmZpCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBEb25lCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpocgplY2hvICIgIElQRFIgTG9ncyAke1ZFUlNJT059IGluc3RhbGxlZCIKaHIKZWNobyAiICBVUkwgICAgICAgICAgICA6ICR7QUNDRVNTX1VSTH0iCmlmIFsgIiRBRE1JTl9DUkVBVEVEIiA9ICIxIiBdOyB0aGVuCiAgZWNobyAiICBBZG1pbiB1c2VybmFtZSA6ICR7SVBEUl9BRE1JTl9VU0VSfSIKICBpZiBbICIkQURNSU5fUEFTU19HRU5FUkFURUQiID0gIjEiIF07IHRoZW4KICAgIGVjaG8gIiAgQWRtaW4gcGFzc3dvcmQgOiAke0lQRFJfQURNSU5fUEFTU30gICAoc2hvd24gb25jZSAtIGNoYW5nZSBpdCBhZnRlciBsb2dpbikiCiAgZWxzZQogICAgZWNobyAiICBBZG1pbiBwYXNzd29yZCA6IChhcyBlbnRlcmVkKSIKICBmaQpmaQplY2hvCmVjaG8gIiAgTmV0RmxvdyB2OSBleHBvcnQgOiBwb2ludCB0aGUgcm91dGVyICgke05BVF9ST1VURVJfSVB9KSBhdCAke1NFUlZFUl9JUH06JHtORVRGTE9XX1BPUlR9L3VkcCIKZWNobyAiICBDb25maWd1cmF0aW9uICAgICA6ICR7RU5WX0ZJTEV9IgplY2hvICIgIFNlcnZpY2UgICAgICAgICAgIDogc3lzdGVtY3RsIHN0YXR1cyAke1NFUlZJQ0V9ICAgfCAgIGpvdXJuYWxjdGwgLXUgJHtTRVJWSUNFfSAtZiIKZWNobyAiICBWZXJpZnkgaW5zdGFsbCAgICA6IHN1ZG8gYmFzaCAtYyBcIlwkKHdnZXQgLXFPLSAke1NFVFVQX0JBU0V9L2lwZHIvdmVyaWZ5LnNoKVwiIgpocgo="
eval "$(echo "$_ipdr_payload" | base64 -d)"
