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

_0x1a2b3c=$(echo "IyEvYmluL2Jhc2gKIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgU0tSYWRpdXMgLSBJU1AgQ1JNIEluc3RhbGxhdGlvbiBTY3JpcHQKIyBTdGFjayA6IE5vZGUuanMgKEV4cHJlc3MpICsgTXlTUUwgKyBGcmVlUkFESVVTICsgUE0yCiMgT1MgICAgOiBVYnVudHUgMjYuMDQgTFRTCiMgQXV0aG9yOiBBYW5pcmlkcyBUZWNobm9sb2dpZXMgcHZ0IEx0ZC4KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpldmFsICdyZWFkIC1wICJFbnRlciBVc2VybmFtZToiIHVzZXJuYW1lOwpyZWFkIC1wICJFbnRlciBQYXNzd29yZDoiIHNlY3VyaXR5OwphdXRoUmVzcG9uc2U9JCh3Z2V0IC0tc2VydmVyLXJlc3BvbnNlIC0tc3BpZGVyIC0tYXV0aC1uby1jaGFsbGVuZ2UgXAogIC0taHR0cC11c2VyPSR7dXNlcm5hbWV9IC0taHR0cC1wYXNzd29yZD0ke3NlY3VyaXR5fSBcCiAgaHR0cDovL3NldHVwLmFhbmlyaWRzLmNvbS9za3JhZGl1cy9zZXR1cC9zYW1wbGUudHh0IDI+JjEgfCBncmVwIC1jICdcJydIVFRQLzEuMSAyMDAgT0snXCcnKTsKCmlmIFsgIiRhdXRoUmVzcG9uc2UiID0gIjEiIF07IHRoZW4KCmNoZWNrX3N0YXR1cygpIHsKICBsb2NhbCBleGl0X2NvZGU9JD8KICBsb2NhbCBzdGVwX21lc3NhZ2U9IiQxIgogIGlmIFsgJGV4aXRfY29kZSAtbmUgMCBdOyB0aGVuCiAgICBlY2hvICJFUlJPUjogJHtzdGVwX21lc3NhZ2V9IGZhaWxlZCAoRXhpdCBDb2RlOiAkZXhpdF9jb2RlKS4iCiAgICBleGl0IDEKICBmaQp9CgpydW5fbXlzcWwoKSB7CiAgbG9jYWwgb3V0cHV0CiAgb3V0cHV0PSQoc3VkbyBteXNxbCAiJEAiIDI+JjEpCiAgbG9jYWwgc3RhdHVzPSQ/CiAgZWNobyAiJG91dHB1dCIgfCBncmVwIC12ICJVc2luZyBhIHBhc3N3b3JkIgogIHJldHVybiAkc3RhdHVzCn0KCmNsZWFyOwplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyBJbnN0YWxsYXRpb24gU2NyaXB0ICMjIyMjIyMjIyMjIyMjIyMjIyMiCmVjaG8gIiMgICAgICAgICAgICAgICAgICAgIFNLUmFkaXVzIElTUCBDUk0gICAgICAgICAgICAgICAgICAgICMiCmVjaG8gIiMgICAgICAgICAgICAgIEluc3RhbGxhdGlvbiB8IEJ5IFlvdXIgQ29tcGFueSAgICAgICAgICAgICMiCmVjaG8gIiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSMiCmVjaG8gIiMgICAgICAgICAgICAgICAgICB3d3cuYWFuaXJpZHMuY29tICAgICAgICAgICAgICAgICAgICAgICMiCmVjaG8gIiMgICAgICAgICAgICAgICAgICBzdXBwb3J0QGFhbmlyaWRzLmNvbSAgICAgICAgICAgICAgICAgICMiCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNURVAgMSDigJQgU3lzdGVtIHVwZGF0ZSAmIHRpbWV6b25lCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWRvIGFwdC1nZXQgdXBkYXRlOyBjaGVja19zdGF0dXMgIlN5c3RlbSBwYWNrYWdlIGxpc3QgdXBkYXRlIChhcHQtZ2V0IHVwZGF0ZSkiCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgpyZWFkIC1wICJFbnRlciBUaW1lIFpvbmUgRXg6IEFzaWEvRGhha2EgOiAiIHN5c3RlbVRpbWV6b25lOwplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKc3VkbyB0aW1lZGF0ZWN0bCBzZXQtdGltZXpvbmUgJHtzeXN0ZW1UaW1lem9uZX07IGNoZWNrX3N0YXR1cyAiU2V0dGluZyBzeXN0ZW0gdGltZXpvbmUgdG8gJHtzeXN0ZW1UaW1lem9uZX0iCgpyZWFkIC1wICJFbnRlciBkb21haW4gbmFtZSAoZS5nLiBhZG1pbi55b3VyZG9tYWluLmNvbSk6ICIgc2tyYWRpdXNEb21haW47CgojIFRhcmdldCBpbnN0YWxsYXRpb24gZGlyZWN0b3J5IGZvciB0aGUgd2ViIGFwcCAoZnJvbnRlbmQgYW5kIGJhY2tlbmQpCkFQUF9ESVI9Ii92YXIvd3d3L3NrcmFkaXVzL3NldHVwLXNrcmFkaXVzL2RlcGxveS1hYW5pcmlkcyIKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNURVAgMiDigJQgR2VuZXJhdGUgcmFuZG9tIHNlY3JldHMgJiBzdG9yZSBpbiAuZW52IGZpbGUKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN1ZG8gbWtkaXIgLXAgL2V0Yy9za3JhZGl1czsgY2hlY2tfc3RhdHVzICJDcmVhdGluZyBjb25maWd1cmF0aW9uIGRpcmVjdG9yeSAvZXRjL3NrcmFkaXVzIgpzdWRvIHRvdWNoIC9ldGMvc2tyYWRpdXMvLmVudjsgY2hlY2tfc3RhdHVzICJDcmVhdGluZyAvZXRjL3NrcmFkaXVzLy5lbnYgZmlsZSIKc3VkbyBjaG1vZCA2MDAgL2V0Yy9za3JhZGl1cy8uZW52OyBjaGVja19zdGF0dXMgIlNldHRpbmcgcGVybWlzc2lvbnMgb24gL2V0Yy9za3JhZGl1cy8uZW52IGZpbGUiCkVOVl9GSUxFPSIvZXRjL3NrcmFkaXVzLy5lbnYiCgpTS1JBRElVU19NWVNRTF9QQVNTPSQob3BlbnNzbCByYW5kIC1iYXNlNjQgMjQgfCB0ciAtZGMgJ0EtWmEtejAtOScgfCBoZWFkIC1jIDIwKQppZiBbIC16ICIkU0tSQURJVVNfTVlTUUxfUEFTUyIgXSB8fCBbICR7I1NLUkFESVVTX01ZU1FMX1BBU1N9IC1sdCAxNiBdOyB0aGVuCiAgIyBGYWxsYmFjazogdXNlIC9kZXYvdXJhbmRvbSBpZiBvcGVuc3NsIGZhaWxzCiAgU0tSQURJVVNfTVlTUUxfUEFTUz0kKGNhdCAvZGV2L3VyYW5kb20gfCB0ciAtZGMgJ0EtWmEtejAtOScgfCBoZWFkIC1jIDIwKQpmaQpjaGVja19zdGF0dXMgIkdlbmVyYXRpbmcgTXlTUUwgcm9vdCBwYXNzd29yZCIKClNLUkFESVVTX0RCX1BBU1M9JChvcGVuc3NsIHJhbmQgLWJhc2U2NCAyNCB8IHRyIC1kYyAnQS1aYS16MC05JyB8IGhlYWQgLWMgMjApCmlmIFsgLXogIiRTS1JBRElVU19EQl9QQVNTIiBdIHx8IFsgJHsjU0tSQURJVVNfREJfUEFTU30gLWx0IDE2IF07IHRoZW4KICBTS1JBRElVU19EQl9QQVNTPSQoY2F0IC9kZXYvdXJhbmRvbSB8IHRyIC1kYyAnQS1aYS16MC05JyB8IGhlYWQgLWMgMjApCmZpCmNoZWNrX3N0YXR1cyAiR2VuZXJhdGluZyBTS1JhZGl1cyBEQiBwYXNzd29yZCIKClNLUkFESVVTX0pXVF9TRUNSRVQ9JChvcGVuc3NsIHJhbmQgLWhleCA2NCk7IGNoZWNrX3N0YXR1cyAiR2VuZXJhdGluZyBKV1Qgc2VjcmV0IGtleSIKClNLUkFESVVTX1JBRElVU19TRUNSRVQ9JChvcGVuc3NsIHJhbmQgLWJhc2U2NCAyNCB8IHRyIC1kYyAnQS1aYS16MC05JyB8IGhlYWQgLWMgMjApCmlmIFsgLXogIiRTS1JBRElVU19SQURJVVNfU0VDUkVUIiBdIHx8IFsgJHsjU0tSQURJVVNfUkFESVVTX1NFQ1JFVH0gLWx0IDE2IF07IHRoZW4KICBTS1JBRElVU19SQURJVVNfU0VDUkVUPSQoY2F0IC9kZXYvdXJhbmRvbSB8IHRyIC1kYyAnQS1aYS16MC05JyB8IGhlYWQgLWMgMjApCmZpCmNoZWNrX3N0YXR1cyAiR2VuZXJhdGluZyBGcmVlUkFESVVTIHNoYXJlZCBzZWNyZXQiCgojIFZlcmlmeSBwYXNzd29yZHMgYXJlIGdlbmVyYXRlZAppZiBbIC16ICIkU0tSQURJVVNfTVlTUUxfUEFTUyIgXTsgdGhlbgogIGVjaG8gIkVSUk9SOiBGYWlsZWQgdG8gZ2VuZXJhdGUgTXlTUUwgcGFzc3dvcmQiCiAgZXhpdCAxCmZpCgplY2hvICJza3JhZGl1c19teXNxbF9wYXNzPSR7U0tSQURJVVNfTVlTUUxfUEFTU30iIHwgc3VkbyB0ZWUgLWEgJEVOVl9GSUxFID4gL2Rldi9udWxsOyBjaGVja19zdGF0dXMgIldyaXRpbmcgbXlzcWxfcGFzcyB0byAuZW52IGZpbGUiCmVjaG8gInNrcmFkaXVzX2RiX3Bhc3M9JHtTS1JBRElVU19EQl9QQVNTfSIgfCBzdWRvIHRlZSAtYSAkRU5WX0ZJTEUgPiAvZGV2L251bGw7IGNoZWNrX3N0YXR1cyAiV3JpdGluZyBkYl9wYXNzIHRvIC5lbnYgZmlsZSIKZWNobyAic2tyYWRpdXNfand0X3NlY3JldD0ke1NLUkFESVVTX0pXVF9TRUNSRVR9IiB8IHN1ZG8gdGVlIC1hICRFTlZfRklMRSA+IC9kZXYvbnVsbDsgY2hlY2tfc3RhdHVzICJXcml0aW5nIGp3dF9zZWNyZXQgdG8gLmVudiBmaWxlIgplY2hvICJza3JhZGl1c19yYWRpdXNfc2VjcmV0PSR7U0tSQURJVVNfUkFESVVTX1NFQ1JFVH0iIHwgc3VkbyB0ZWUgLWEgJEVOVl9GSUxFID4gL2Rldi9udWxsOyBjaGVja19zdGF0dXMgIldyaXRpbmcgcmFkaXVzX3NlY3JldCB0byAuZW52IGZpbGUiCgojIEV4cG9ydCB2YXJpYWJsZXMgZm9yIGN1cnJlbnQgc2hlbGwgc2Vzc2lvbgpleHBvcnQgU0tSQURJVVNfTVlTUUxfUEFTUwpleHBvcnQgU0tSQURJVVNfREJfUEFTUwpleHBvcnQgU0tSQURJVVNfSldUX1NFQ1JFVApleHBvcnQgU0tSQURJVVNfUkFESVVTX1NFQ1JFVAoKZWNobyAiUGFzc3dvcmRzIGdlbmVyYXRlZCBzdWNjZXNzZnVsbHkgKGxlbmd0aCBjaGVjazogJHsjU0tSQURJVVNfTVlTUUxfUEFTU30gY2hhcnMpIgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCAzIOKAlCBJbnN0YWxsIGNvcmUgc3lzdGVtIHBhY2thZ2VzCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKc3VkbyBhcHQtZ2V0IGluc3RhbGwgLXkgXAogIG5ldC10b29scyBuYW5vIHVuemlwIHZpbSBjdXJsIHVmdyBjcm9uIFwKICBidWlsZC1lc3NlbnRpYWwgZ2NjIG1ha2UgYXV0b2NvbmYgbGliYy1kZXYgcGtnLWNvbmZpZzsgY2hlY2tfc3RhdHVzICJJbnN0YWxsaW5nIGNvcmUgc3lzdGVtIHBhY2thZ2VzIgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCA0IOKAlCBJbnN0YWxsIE5vZGUuanMgdjI0LjE1LjAgKExUUykgdmlhIE5vZGVTb3VyY2UKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgplY2hvICJJbnN0YWxsaW5nIE5vZGUuanMgMjQuMTUuMCBMVFMuLi4iCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgpjdXJsIC1mc1NMIGh0dHBzOi8vZGViLm5vZGVzb3VyY2UuY29tL3NldHVwXzI0LnggfCBzdWRvIC1FIGJhc2ggLTsgY2hlY2tfc3RhdHVzICJDb25maWd1cmluZyBOb2RlU291cmNlIE5vZGUuanMgMjQueCByZXBvc2l0b3J5IgogCiMgUGluIHRoZSBleGFjdCAyNC4xNS4wIHBhY2thZ2UgYnVpbGQgYXZhaWxhYmxlIGluIHRoZSBOb2RlU291cmNlIHJlcG8uCiMgKFBsYWluICJhcHQtZ2V0IGluc3RhbGwgbm9kZWpzIiB3b3VsZCBncmFiIHRoZSBsYXRlc3QgMjQueCwgd2hpY2ggY2FuCiMgZHJpZnQgcGFzdCAyNC4xNS4wIGFzIE5vZGVTb3VyY2Ugc2hpcHMgbmV3ZXIgcGF0Y2ggcmVsZWFzZXMuKQpOT0RFX1BLRz0kKGFwdC1jYWNoZSBtYWRpc29uIG5vZGVqcyB8IGF3ayAnXCcne3ByaW50ICQzfSdcJycgfCBncmVwICJeMjQuMTUuMCIgfCBoZWFkIC1uMSkKaWYgWyAtbiAiJE5PREVfUEtHIiBdOyB0aGVuCiAgc3VkbyBhcHQtZ2V0IGluc3RhbGwgLXkgbm9kZWpzPSR7Tk9ERV9QS0d9OyBjaGVja19zdGF0dXMgIkluc3RhbGxpbmcgTm9kZS5qcyAke05PREVfUEtHfSIKZWxzZQogIGVjaG8gIldBUk5JTkc6IG5vZGVqcyAyNC4xNS4wIG5vdCBmb3VuZCBpbiBhcHQgcmVwbywgaW5zdGFsbGluZyBsYXRlc3QgMjQueCBpbnN0ZWFkIjsKICBzdWRvIGFwdC1nZXQgaW5zdGFsbCAteSBub2RlanM7IGNoZWNrX3N0YXR1cyAiSW5zdGFsbGluZyBsYXRlc3QgMjQueCBOb2RlLmpzIgpmaQpoYXNoIC1yIDI+L2Rldi9udWxsCm5vZGUgLXYKCmlmICEgY29tbWFuZCAtdiBucG0gPi9kZXYvbnVsbDsgdGhlbgogICAgZWNobyAiV0FSTklORzogbnBtIG5vdCBmb3VuZCwgYXR0ZW1wdGluZyB0byBpbnN0YWxsIG5wbS4uLiIKICAgIHN1ZG8gYXB0LWdldCBpbnN0YWxsIC15IG5wbQogICAgaGFzaCAtciAyPi9kZXYvbnVsbApmaQoKaWYgISBjb21tYW5kIC12IG5wbSA+L2Rldi9udWxsOyB0aGVuCiAgICBlY2hvICJucG0gaW5zdGFsbGF0aW9uIGZhaWxlZCIKICAgIGV4aXQgMQpmaQoKbnBtIC12CgojIEluc3RhbGwgUE0yIGdsb2JhbGx5CnN1ZG8gbnBtIGluc3RhbGwgLWcgcG0yOyBjaGVja19zdGF0dXMgIkluc3RhbGxpbmcgUE0yIGdsb2JhbGx5IgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCA0LjUg4oCUIEluc3RhbGwgJiBjb25maWd1cmUgUmVkaXMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgplY2hvICJJbnN0YWxsaW5nIFJlZGlzIFNlcnZlciIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCnN1ZG8gYXB0LWdldCBpbnN0YWxsIC15IHJlZGlzLXNlcnZlcjsgY2hlY2tfc3RhdHVzICJJbnN0YWxsaW5nIFJlZGlzIFNlcnZlciIKc3VkbyBzeXN0ZW1jdGwgc3RhcnQgcmVkaXMtc2VydmVyOyBjaGVja19zdGF0dXMgIlN0YXJ0aW5nIFJlZGlzIHNlcnZpY2UiCnN1ZG8gc3lzdGVtY3RsIGVuYWJsZSByZWRpcy1zZXJ2ZXI7IGNoZWNrX3N0YXR1cyAiRW5hYmxpbmcgUmVkaXMgb24gYm9vdCIKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNURVAgNSDigJQgSW5zdGFsbCAmIGNvbmZpZ3VyZSBNeVNRTAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCmVjaG8gIkluc3RhbGxpbmcgTXlTcWwgRGF0YWJhc2UgU2VydmVyIgplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKc3VkbyBhcHQtZ2V0IGluc3RhbGwgLXkgbXlzcWwtc2VydmVyOyBjaGVja19zdGF0dXMgIkluc3RhbGxpbmcgTXlTUUwgU2VydmVyIgoKTVlTUUxfQ09ORj0iL2V0Yy9teXNxbC9teXNxbC5jb25mLmQvbXlzcWxkLmNuZiIKCmlmICEgc3VkbyBncmVwIC1xICJec2tpcC1sb2ctYmluIiAkTVlTUUxfQ09ORjsgdGhlbgogIGVjaG8gLWUgIlxuIyMgYWRkZWQgYnkgc2tyYWRpdXMgaW5zdGFsbGVyXG4jIyBUbyBza2lwIGJpbiBsb2cgb3IgcmVwbGljYXRpb25cbnNraXAtbG9nLWJpbiIgfCBzdWRvIHRlZSAtYSAkTVlTUUxfQ09ORgpmaQoKUkFNX0dCPSQoYXdrICdcJycvTWVtVG90YWwvIHsgcHJpbnRmICIlLjBmIFxuIiwgJDIvMTAyNC8xMDI0IH0nXCcnIC9wcm9jL21lbWluZm8pCmlmICgoIFJBTV9HQiA8PSAyICkpOyB0aGVuCiAgQlVGRkVSX1BPT0xfU0laRT0iNTEyTSIKICBCVUZGRVJfUE9PTF9JTlNUQU5DRVM9MQplbGlmICgoIFJBTV9HQiA+PSA0ICYmIFJBTV9HQiA8IDEwICkpOyB0aGVuCiAgQlVGRkVSX1BPT0xfU0laRT0iMUciCiAgQlVGRkVSX1BPT0xfSU5TVEFOQ0VTPTIKZWxzZQogIEJVRkZFUl9QT09MX1NJWkU9IjJHIgogIEJVRkZFUl9QT09MX0lOU1RBTkNFUz00CmZpCgpzdWRvIHNlZCAtaSAicy9ebWF4X2Nvbm5lY3Rpb25zXHMqPS4qL21heF9jb25uZWN0aW9ucyA9IDEwMDAwLyIgJE1ZU1FMX0NPTkYKc3VkbyBzZWQgLWkgInMvXmlubm9kYl9idWZmZXJfcG9vbF9zaXplXHMqPS4qL2lubm9kYl9idWZmZXJfcG9vbF9zaXplID0gJEJVRkZFUl9QT09MX1NJWkUvIiAkTVlTUUxfQ09ORgpzdWRvIHNlZCAtaSAicy9eaW5ub2RiX2J1ZmZlcl9wb29sX2luc3RhbmNlc1xzKj0uKi9pbm5vZGJfYnVmZmVyX3Bvb2xfaW5zdGFuY2VzID0gJEJVRkZFUl9QT09MX0lOU1RBTkNFUy8iICRNWVNRTF9DT05GCnN1ZG8gc2VkIC1pICJzL15pbm5vZGJfZmlsZV9wZXJfdGFibGVccyo9LiovaW5ub2RiX2ZpbGVfcGVyX3RhYmxlID0gMS8iICRNWVNRTF9DT05GCnN1ZG8gc2VkIC1pICJzL15pbm5vZGJfbG9nX2ZpbGVfc2l6ZVxzKj0uKi9pbm5vZGJfbG9nX2ZpbGVfc2l6ZSA9IDEyOE0vIiAkTVlTUUxfQ09ORjsgY2hlY2tfc3RhdHVzICJDb25maWd1cmluZyBNeVNRTCBwZXJmb3JtYW5jZSBzZXR0aW5ncyBpbiAkTVlTUUxfQ09ORiIKCnN1ZG8gZ3JlcCAtcSAiXm1heF9jb25uZWN0aW9ucyIgJE1ZU1FMX0NPTkYgfHwgZWNobyAibWF4X2Nvbm5lY3Rpb25zID0gMTAwMDAiIHwgc3VkbyB0ZWUgLWEgJE1ZU1FMX0NPTkYKc3VkbyBncmVwIC1xICJeaW5ub2RiX2J1ZmZlcl9wb29sX3NpemUiICRNWVNRTF9DT05GIHx8IGVjaG8gImlubm9kYl9idWZmZXJfcG9vbF9zaXplID0gJEJVRkZFUl9QT09MX1NJWkUiIHwgc3VkbyB0ZWUgLWEgJE1ZU1FMX0NPTkYKc3VkbyBncmVwIC1xICJeaW5ub2RiX2J1ZmZlcl9wb29sX2luc3RhbmNlcyIgJE1ZU1FMX0NPTkYgfHwgZWNobyAiaW5ub2RiX2J1ZmZlcl9wb29sX2luc3RhbmNlcyA9ICRCVUZGRVJfUE9PTF9JTlNUQU5DRVMiIHwgc3VkbyB0ZWUgLWEgJE1ZU1FMX0NPTkYKc3VkbyBncmVwIC1xICJeaW5ub2RiX2ZpbGVfcGVyX3RhYmxlIiAkTVlTUUxfQ09ORiB8fCBlY2hvICJpbm5vZGJfZmlsZV9wZXJfdGFibGUgPSAxIiB8IHN1ZG8gdGVlIC1hICRNWVNRTF9DT05GCnN1ZG8gZ3JlcCAtcSAiXmlubm9kYl9sb2dfZmlsZV9zaXplIiAkTVlTUUxfQ09ORiB8fCBlY2hvICJpbm5vZGJfbG9nX2ZpbGVfc2l6ZSA9IDEyOE0iIHwgc3VkbyB0ZWUgLWEgJE1ZU1FMX0NPTkYKCmVjaG8gIkNvbmZpZ3VyaW5nIE15U1FMIHJvb3QgcGFzc3dvcmQuLi4iCmVjaG8gIkRFQlVHOiBQYXNzd29yZCBsZW5ndGg6ICR7I1NLUkFESVVTX01ZU1FMX1BBU1N9IGNoYXJzIgoKIyBWZXJpZnkgcGFzc3dvcmQgaXMgbm90IGVtcHR5CmlmIFsgLXogIiRTS1JBRElVU19NWVNRTF9QQVNTIiBdOyB0aGVuCiAgZWNobyAiRVJST1I6IFNLUkFESVVTX01ZU1FMX1BBU1MgaXMgZW1wdHkhIgogIGV4aXQgMQpmaQoKIyBTZXQgTXlTUUwgcm9vdCBwYXNzd29yZApzdWRvIG15c3FsIDw8TVlTUUxfUk9PVF9TQ1JJUFQKQUxURVIgVVNFUiAnXCcncm9vdCdcJydAJ1wnJ2xvY2FsaG9zdCdcJycgSURFTlRJRklFRCBXSVRIIGNhY2hpbmdfc2hhMl9wYXNzd29yZCBCWSAiJHtTS1JBRElVU19NWVNRTF9QQVNTfSI7CkZMVVNIIFBSSVZJTEVHRVM7Ck1ZU1FMX1JPT1RfU0NSSVBUCmNoZWNrX3N0YXR1cyAiQ29uZmlndXJpbmcgTXlTUUwgcm9vdCB1c2VyIHBhc3N3b3JkIgoKc3VkbyBzeXN0ZW1jdGwgcmVzdGFydCBteXNxbDsgY2hlY2tfc3RhdHVzICJSZXN0YXJ0aW5nIE15U1FMIHNlcnZpY2UiCgojIFZlcmlmeSB0aGUgbmV3IHJvb3QgcGFzc3dvcmQgYWN0dWFsbHkgd29ya3MgYmVmb3JlIHByb2NlZWRpbmcKbXlzcWwgLXVyb290IC1wIiR7U0tSQURJVVNfTVlTUUxfUEFTU30iIC1lICJTRUxFQ1QgMTsiID4gL2Rldi9udWxsIDI+JjEKY2hlY2tfc3RhdHVzICJWZXJpZnlpbmcgTXlTUUwgcm9vdCBwYXNzd29yZCB3YXMgc2V0IGNvcnJlY3RseSIKCiMgQ3JlYXRlIGRhdGFiYXNlIGFuZCB1c2VyCnN1ZG8gbXlzcWwgLXVyb290IC1wIiR7U0tSQURJVVNfTVlTUUxfUEFTU30iIDw8TVlTUUxfREJfU0NSSVBUCkNSRUFURSBEQVRBQkFTRSBJRiBOT1QgRVhJU1RTIHNrcmFkaXVzIENIQVJBQ1RFUiBTRVQgdXRmOG1iNCBDT0xMQVRFIHV0ZjhtYjRfdW5pY29kZV9jaTsKQ1JFQVRFIFVTRVIgSUYgTk9UIEVYSVNUUyAnXCcnc2tyYWRpdXMnXCcnQCdcJydsb2NhbGhvc3QnXCcnIElERU5USUZJRUQgQlkgIiR7U0tSQURJVVNfREJfUEFTU30iOwpHUkFOVCBBTEwgUFJJVklMRUdFUyBPTiBza3JhZGl1cy4qIFRPICdcJydza3JhZGl1cydcJydAJ1wnJ2xvY2FsaG9zdCdcJyc7CkZMVVNIIFBSSVZJTEVHRVM7ClNFVCBHTE9CQUwgbG9nX2Jpbl90cnVzdF9mdW5jdGlvbl9jcmVhdG9ycz0xOwpNWVNRTF9EQl9TQ1JJUFQKY2hlY2tfc3RhdHVzICJDcmVhdGluZyBkYXRhYmFzZSBhbmQgdXNlciAnc2tyYWRpdXMnIGluIE15U1FMIgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCA2IOKAlCBJbXBvcnQgZGF0YWJhc2Ugc2NoZW1hCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKZWNobyAiSW1wb3J0aW5nIERhdGFiYXNlIEludG8gTXlTcWwiCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgpjZCAvOwpzdWRvIG1rZGlyIHNrcmFkaXVzX2RhdGFiYXNlOyBjaGVja19zdGF0dXMgIkNyZWF0aW5nIHRlbXBvcmFyeSBkYXRhYmFzZSBkaXJlY3RvcnkiCmNkIHNrcmFkaXVzX2RhdGFiYXNlOyBjaGVja19zdGF0dXMgIkVudGVyaW5nIHRlbXBvcmFyeSBkYXRhYmFzZSBkaXJlY3RvcnkiCnN1ZG8gd2dldCAtLWh0dHAtdXNlcj0ke3VzZXJuYW1lfSAtLWh0dHAtcGFzc3dvcmQ9JHtzZWN1cml0eX0gXAogIGh0dHA6Ly9zZXR1cC5hYW5pcmlkcy5jb20vc2tyYWRpdXMvc2V0dXAvY29tbW9uL3NxbC9za3JhZGl1cy5zcWwgXAogIC1xIC1PIHNrcmFkaXVzLnNxbDsgY2hlY2tfc3RhdHVzICJEb3dubG9hZGluZyBNeVNRTCBzY2hlbWEgKHNrcmFkaXVzLnNxbCkiCnN1ZG8gbXlzcWwgLXVza3JhZGl1cyAtRCBza3JhZGl1cyAtcCR7U0tSQURJVVNfREJfUEFTU30gPCBza3JhZGl1cy5zcWw7IGNoZWNrX3N0YXR1cyAiSW1wb3J0aW5nIFNLUmFkaXVzIGRhdGFiYXNlIHNjaGVtYSIKc3VkbyBybSBza3JhZGl1cy5zcWw7CmNkIC4uLzsKc3VkbyBybSAtciBza3JhZGl1c19kYXRhYmFzZTsKY2QgLzsKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNURVAgNyDigJQgSW5zdGFsbCAmIGNvbmZpZ3VyZSBGcmVlUkFESVVTCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKZWNobyAiSW5zdGFsbGluZyBGcmVlcmFkaXVzIFNlcnZlciIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCnN1ZG8gYXB0LWdldCBpbnN0YWxsIGZyZWVyYWRpdXMgZnJlZXJhZGl1cy1teXNxbCBmcmVlcmFkaXVzLXV0aWxzIC15OyBjaGVja19zdGF0dXMgIkluc3RhbGxpbmcgRnJlZVJBRElVUyBwYWNrYWdlcyIKc3VkbyBjaG1vZCAtUiA3NzcgL2V0Yy9mcmVlcmFkaXVzLzsgY2hlY2tfc3RhdHVzICJNb2RpZnlpbmcgcGVybWlzc2lvbnMgZm9yIC9ldGMvZnJlZXJhZGl1cy8iCgpjZCAvZXRjL2ZyZWVyYWRpdXMvMy4wLzsgY2hlY2tfc3RhdHVzICJFbnRlcmluZyAvZXRjL2ZyZWVyYWRpdXMvMy4wLyBkaXJlY3RvcnkiCnN1ZG8gd2dldCAtLWh0dHAtdXNlcj0ke3VzZXJuYW1lfSAtLWh0dHAtcGFzc3dvcmQ9JHtzZWN1cml0eX0gaHR0cDovL3NldHVwLmFhbmlyaWRzLmNvbS9za3JhZGl1cy9zZXR1cC9jb21tb24vZnJlZXJhZGl1cy9jbGllbnRzLmNvbmYgLXEgLU8gY2xpZW50cy5jb25mOyBjaGVja19zdGF0dXMgIkRvd25sb2FkaW5nIGNsaWVudHMuY29uZiIKc3VkbyB3Z2V0IC0taHR0cC11c2VyPSR7dXNlcm5hbWV9IC0taHR0cC1wYXNzd29yZD0ke3NlY3VyaXR5fSBodHRwOi8vc2V0dXAuYWFuaXJpZHMuY29tL3NrcmFkaXVzL3NldHVwL2NvbW1vbi9mcmVlcmFkaXVzL3JhZGl1c2QuY29uZiAtcSAtTyByYWRpdXNkLmNvbmY7IGNoZWNrX3N0YXR1cyAiRG93bmxvYWRpbmcgcmFkaXVzZC5jb25mIgpzdWRvIHdnZXQgLS1odHRwLXVzZXI9JHt1c2VybmFtZX0gLS1odHRwLXBhc3N3b3JkPSR7c2VjdXJpdHl9IGh0dHA6Ly9zZXR1cC5hYW5pcmlkcy5jb20vc2tyYWRpdXMvc2V0dXAvY29tbW9uL2ZyZWVyYWRpdXMvZGljdGlvbmFyeSAtcSAtTyBkaWN0aW9uYXJ5OyBjaGVja19zdGF0dXMgIkRvd25sb2FkaW5nIGRpY3Rpb25hcnkiCgpjZCAvZXRjL2ZyZWVyYWRpdXMvMy4wL3NpdGVzLWF2YWlsYWJsZS87IGNoZWNrX3N0YXR1cyAiRW50ZXJpbmcgc2l0ZXMtYXZhaWxhYmxlIGRpcmVjdG9yeSIKc3VkbyB3Z2V0IC0taHR0cC11c2VyPSR7dXNlcm5hbWV9IC0taHR0cC1wYXNzd29yZD0ke3NlY3VyaXR5fSBodHRwOi8vc2V0dXAuYWFuaXJpZHMuY29tL3NrcmFkaXVzL3NldHVwL2NvbW1vbi9mcmVlcmFkaXVzL2RlZmF1bHQgLXEgLU8gZGVmYXVsdDsgY2hlY2tfc3RhdHVzICJEb3dubG9hZGluZyBkZWZhdWx0IHNpdGUgY29uZmlnIgpzdWRvIHdnZXQgLS1odHRwLXVzZXI9JHt1c2VybmFtZX0gLS1odHRwLXBhc3N3b3JkPSR7c2VjdXJpdHl9IGh0dHA6Ly9zZXR1cC5hYW5pcmlkcy5jb20vc2tyYWRpdXMvc2V0dXAvY29tbW9uL2ZyZWVyYWRpdXMvaW5uZXItdHVubmVsIC1xIC1PIGlubmVyLXR1bm5lbDsgY2hlY2tfc3RhdHVzICJEb3dubG9hZGluZyBpbm5lci10dW5uZWwgc2l0ZSBjb25maWciCgojIERvd25sb2FkIENPQSBjb25maWcgKG9wdGlvbmFsIC0gbWF5IG5vdCBleGlzdCB5ZXQpCmVjaG8gIkF0dGVtcHRpbmcgdG8gZG93bmxvYWQgQ09BIHNpdGUgY29uZmlnIChvcHRpb25hbCkuLi4iCnN1ZG8gd2dldCAtLWh0dHAtdXNlcj0ke3VzZXJuYW1lfSAtLWh0dHAtcGFzc3dvcmQ9JHtzZWN1cml0eX0gaHR0cDovL3NldHVwLmFhbmlyaWRzLmNvbS9za3JhZGl1cy9zZXR1cC9jb21tb24vZnJlZXJhZGl1cy9jb2EgLXEgLU8gY29hIDI+L2Rldi9udWxsCmlmIFsgJD8gLWVxIDAgXTsgdGhlbgogIGVjaG8gIkNPQSBjb25maWcgZG93bmxvYWRlZCBzdWNjZXNzZnVsbHkiCmVsc2UKICBlY2hvICJDT0EgY29uZmlnIG5vdCBhdmFpbGFibGUgKHRoaXMgaXMgT0sgLSB3aWxsIGJlIGFkZGVkIGluIGZ1dHVyZSkiCmZpCgpjZCAvZXRjL2ZyZWVyYWRpdXMvMy4wL21vZHMtYXZhaWxhYmxlLzsgY2hlY2tfc3RhdHVzICJFbnRlcmluZyBtb2RzLWF2YWlsYWJsZSBkaXJlY3RvcnkiCnN1ZG8gd2dldCAtLWh0dHAtdXNlcj0ke3VzZXJuYW1lfSAtLWh0dHAtcGFzc3dvcmQ9JHtzZWN1cml0eX0gaHR0cDovL3NldHVwLmFhbmlyaWRzLmNvbS9za3JhZGl1cy9zZXR1cC9jb21tb24vZnJlZXJhZGl1cy9zcWwgLXEgLU8gc3FsOyBjaGVja19zdGF0dXMgIkRvd25sb2FkaW5nIHNxbCBtb2QgY29uZmlnIgoKY2QgL2V0Yy9mcmVlcmFkaXVzLzMuMC9tb2RzLWNvbmZpZy9zcWwvbWFpbi9teXNxbC87IGNoZWNrX3N0YXR1cyAiRW50ZXJpbmcgbXlzcWwgbW9kLWNvbmZpZyBkaXJlY3RvcnkiCnN1ZG8gd2dldCAtLWh0dHAtdXNlcj0ke3VzZXJuYW1lfSAtLWh0dHAtcGFzc3dvcmQ9JHtzZWN1cml0eX0gaHR0cDovL3NldHVwLmFhbmlyaWRzLmNvbS9za3JhZGl1cy9zZXR1cC9jb21tb24vZnJlZXJhZGl1cy9xdWVyaWVzLmNvbmYgLXEgLU8gcXVlcmllcy5jb25mOyBjaGVja19zdGF0dXMgIkRvd25sb2FkaW5nIHF1ZXJpZXMuY29uZiIKCmNkIC87CgojIEVuYWJsZSBTUUwgbW9kdWxlICYgc2V0IHBlcm1pc3Npb25zCnN1ZG8gbG4gLXNmIC9ldGMvZnJlZXJhZGl1cy8zLjAvbW9kcy1hdmFpbGFibGUvc3FsIC9ldGMvZnJlZXJhZGl1cy8zLjAvbW9kcy1lbmFibGVkL3NxbDsgY2hlY2tfc3RhdHVzICJFbmFibGluZyBTUUwgbW9kdWxlIHN5bWxpbmsiCnN1ZG8gY2hncnAgLWggZnJlZXJhZCAvZXRjL2ZyZWVyYWRpdXMvMy4wL21vZHMtYXZhaWxhYmxlL3NxbDsgY2hlY2tfc3RhdHVzICJTZXR0aW5nIGdyb3VwIGZvciBzcWwgbW9kLWF2YWlsYWJsZSIKc3VkbyBjaG93biBmcmVlcmFkOmZyZWVyYWQgL2V0Yy9mcmVlcmFkaXVzLzMuMC9tb2RzLWVuYWJsZWQvc3FsOyBjaGVja19zdGF0dXMgIlNldHRpbmcgb3duZXIgZm9yIHNxbCBtb2QtZW5hYmxlZCIKc3VkbyBjaG1vZCAtUiA3NTEgL2V0Yy9mcmVlcmFkaXVzLzsgY2hlY2tfc3RhdHVzICJBcHBseWluZyBmaW5hbCBwZXJtaXNzaW9ucyB0byAvZXRjL2ZyZWVyYWRpdXMvIgoKIyBJbmplY3QgREIgcGFzc3dvcmQgaW50byBGcmVlUkFESVVTIFNRTCBtb2R1bGUKRlJFRVJBRElVU19TUUxfQ09ORj0iL2V0Yy9mcmVlcmFkaXVzLzMuMC9tb2RzLWVuYWJsZWQvc3FsIgojIFJlcGxhY2UgYm90aCBvbGQgaGFyZGNvZGVkIHBhc3N3b3JkcyBhbmQgZW1wdHkgcGFzc3dvcmRzCnN1ZG8gc2VkIC1pICJzfHBhc3N3b3JkID0gXCIvOHI5aUo4R091VDlMVENhXCJ8cGFzc3dvcmQgPSBcIiR7U0tSQURJVVNfREJfUEFTU31cInxnIiAiJEZSRUVSQURJVVNfU1FMX0NPTkYiCnN1ZG8gc2VkIC1pICJzfHBhc3N3b3JkID0gXCJcInxwYXNzd29yZCA9IFwiJHtTS1JBRElVU19EQl9QQVNTfVwifGciICIkRlJFRVJBRElVU19TUUxfQ09ORiIKY2hlY2tfc3RhdHVzICJJbmplY3RpbmcgREIgcGFzc3dvcmQgaW50byBGcmVlUkFESVVTIFNRTCBjb25maWciCgojIEluamVjdCBSQURJVVMgc2hhcmVkIHNlY3JldCBpbnRvIGNsaWVudHMuY29uZgpzdWRvIHNlZCAtaSAic3xzZWNyZXQgPSAuKnxzZWNyZXQgPSAke1NLUkFESVVTX1JBRElVU19TRUNSRVR9fCIgL2V0Yy9mcmVlcmFkaXVzLzMuMC9jbGllbnRzLmNvbmY7IGNoZWNrX3N0YXR1cyAiSW5qZWN0aW5nIEZyZWVSQURJVVMgc2hhcmVkIHNlY3JldCIKCnN1ZG8gc2VydmljZSBmcmVlcmFkaXVzIHJlc3RhcnQ7IGNoZWNrX3N0YXR1cyAiUmVzdGFydGluZyBGcmVlUkFESVVTIHNlcnZpY2UiCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTVEVQIDgg4oCUIERlcGxveSBTS1JhZGl1cyBhcHAgKGJhY2tlbmQgKyBmcm9udGVuZCkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgplY2hvICJJbnN0YWxsaW5nIFNLUmFkaXVzIFdlYiBBcHAiCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgpzdWRvIG1rZGlyIC1wIC92YXIvd3d3L3NrcmFkaXVzOyBjaGVja19zdGF0dXMgIkNyZWF0aW5nIC92YXIvd3d3L3NrcmFkaXVzIGRpcmVjdG9yeSIKY2QgL3Zhci93d3cvc2tyYWRpdXM7IGNoZWNrX3N0YXR1cyAiRW50ZXJpbmcgL3Zhci93d3cvc2tyYWRpdXMgZGlyZWN0b3J5IgoKc3VkbyB3Z2V0IC0taHR0cC11c2VyPSR7dXNlcm5hbWV9IC0taHR0cC1wYXNzd29yZD0ke3NlY3VyaXR5fSBcCiAgaHR0cDovL3NldHVwLmFhbmlyaWRzLmNvbS9za3JhZGl1cy9zZXR1cC9pbnN0YWxsL3ppcC9za3JhZGl1cy56aXAgXAogIC1PIHNrcmFkaXVzLnppcDsgY2hlY2tfc3RhdHVzICJEb3dubG9hZGluZyBTS1JhZGl1cyBhcHAgYXJjaGl2ZSAoc2tyYWRpdXMuemlwKSIKc3VkbyB1bnppcCAtcSAtbyBza3JhZGl1cy56aXA7IGNoZWNrX3N0YXR1cyAiRXh0cmFjdGluZyBTS1JhZGl1cyB6aXAgYXJjaGl2ZSIKc3VkbyBybSBza3JhZGl1cy56aXA7CgojIFppcCBleHRyYWN0cyB0bzoKIyAgICRBUFBfRElSL2JhY2tlbmQgICAoTm9kZS5qcyBBUEkg4oCUIGJhY2tlbmQvZGlzdC9zdGFydC5qcykKIyAgICRBUFBfRElSL2Zyb250ZW5kL2Rpc3QgIChwcmUtYnVpbHQgc3RhdGljIGZpbGVzLCBzZXJ2ZWQgYnkgTmdpbngpCgojIENyZWF0ZSB1cGxvYWQgZGlyZWN0b3JpZXMgaW5zaWRlIGJhY2tlbmQKc3VkbyBta2RpciAtcCAiJEFQUF9ESVIvdXBsb2Fkcy9kb2NzIjsgY2hlY2tfc3RhdHVzICJDcmVhdGluZyB1cGxvYWRzL2RvY3MgZGlyZWN0b3J5IgoKIyBJbnN0YWxsIE5vZGUgZGVwZW5kZW5jaWVzIOKAlCBiYWNrZW5kIG9ubHksIGZyb250ZW5kL2Rpc3QgaXMgcHJlLWJ1aWx0CmNkICIkQVBQX0RJUi9iYWNrZW5kIjsgY2hlY2tfc3RhdHVzICJFbnRlcmluZyBiYWNrZW5kIGRpcmVjdG9yeSIKc3VkbyBucG0gaW5zdGFsbCAtLW9taXQ9ZGV2OyBjaGVja19zdGF0dXMgIkluc3RhbGxpbmcgYmFja2VuZCBucG0gcGFja2FnZXMiCgojIFdyaXRlIGFwcCAuZW52IGludG8gYmFja2VuZC8g4oCUIGFsbCBrZXlzIG1hdGNoIHlvdXIgcmVhbCAuZW52IGV4YWN0bHkKQVBQX0VOVl9GSUxFPSIkQVBQX0RJUi9iYWNrZW5kLy5lbnYiCnN1ZG8gdGVlICIkQVBQX0VOVl9GSUxFIiA+IC9kZXYvbnVsbCA8PEVPRgojIERhdGFiYXNlIENvbmZpZ3VyYXRpb24KREJfVVNFUj1za3JhZGl1cwpEQl9QQVNTV09SRD0ke1NLUkFESVVTX0RCX1BBU1N9CkRCX05BTUU9c2tyYWRpdXMKREJfSE9TVD1sb2NhbGhvc3QKREJfUE9SVD0zMzA2ClNFUVVFTElaRV9BTFRFUj1mYWxzZQoKIyDilIDilIAgUkFESVVTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApSQURJVVNfU0VDUkVUPSR7U0tSQURJVVNfUkFESVVTX1NFQ1JFVH0KCiMg4pSA4pSAIEZyb250ZW5kIG9yaWdpbiAoQ09SUykg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSACkZST05URU5EX1VSTD1odHRwczovLyR7c2tyYWRpdXNEb21haW59CgojIOKUgOKUgCBUUi0wNjkgQUNTIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgApUUjA2OV9CQVNFX1VSTD1odHRwOi8vQ0hBTkdFX01FOjc1NTcKCiMgSldUIENvbmZpZ3VyYXRpb24KSldUX1NFQ1JFVD0ke1NLUkFESVVTX0pXVF9TRUNSRVR9CkpXVF9FWFBJUkVTX0lOPTI0aAoKIyBMaWNlbnNlIENvbmZpZ3VyYXRpb24KI0xJQ0VOU0VfS0VZPQpMSUNFTlNFX1NFUlZFUl9VUkw9aHR0cDovLzEwLjEwLjEuMTAzOjUwMTAKTElDRU5TRV9WQUxJREFUSU9OX1RJTUVPVVRfTVM9MTAwMDAKTElDRU5TRV9WQUxJREFUSU9OX0NST049MCAqLzYgKiAqICoKCiMgVXBsb2FkIENvbmZpZ3VyYXRpb24KVVBMT0FEX0JBU0VfUEFUSD0kQVBQX0RJUi91cGxvYWRzCkRPQ1VNRU5UU19VUExPQURfUEFUSD0kQVBQX0RJUi91cGxvYWRzL2RvY3MKCiMgbm9kZSBlbnYuLiBmb3IgcHJvZHVjdGlvbiAgTk9ERV9FTlY9cHJvZHVjdGlvbgpOT0RFX0VOVj1wcm9kdWN0aW9uCgojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBSYXRlIExpbWl0aW5nIENvbmZpZ3VyYXRpb24KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiMgQ29udHJvbCByYXRlIGxpbWl0aW5nIGJlaGF2aW9yIHdpdGhvdXQgY29kZSBjaGFuZ2VzCiMgU2V0IHRvICdmYWxzZScgdG8gZGlzYWJsZSwgJ3RydWUnIHRvIGVuYWJsZQoKIyBHZW5lcmFsIEFQSSByYXRlIGxpbWl0aW5nIChhbGwgL2FwaS8qIHJvdXRlcykKIyBEZWZhdWx0OiB0cnVlIChhbHdheXMgcmVjb21tZW5kZWQpCkVOQUJMRV9SQVRFX0xJTUlUSU5HPXRydWUKCiMgQXV0aGVudGljYXRpb24gcmF0ZSBsaW1pdGluZyAobG9naW4sIHJlZ2lzdGVyIGVuZHBvaW50cykKIyBEZWZhdWx0OiBmYWxzZSBpbiBkZXZlbG9wbWVudCwgdHJ1ZSBpbiBwcm9kdWN0aW9uCiMgU2V0IHRvICd0cnVlJyB0byBlbmFibGUgaW4gZGV2ZWxvcG1lbnQsICdmYWxzZScgdG8gZGlzYWJsZSBpbiBwcm9kdWN0aW9uCkVOQUJMRV9BVVRIX1JBVEVfTElNSVQ9dHJ1ZQoKIyBPVFAvU01TIHJhdGUgbGltaXRpbmcgKHByZXZlbnRzIFNNUyBzcGFtKQojIERlZmF1bHQ6IGZhbHNlIGluIGRldmVsb3BtZW50LCB0cnVlIGluIHByb2R1Y3Rpb24KRU5BQkxFX09UUF9SQVRFX0xJTUlUPXRydWUKCiMgUGF5bWVudCB0cmFuc2FjdGlvbiByYXRlIGxpbWl0aW5nIChzZWN1cml0eSBjcml0aWNhbCkKIyBEZWZhdWx0OiBmYWxzZSBpbiBkZXZlbG9wbWVudCwgdHJ1ZSBpbiBwcm9kdWN0aW9uCkVOQUJMRV9QQVlNRU5UX1JBVEVfTElNSVQ9dHJ1ZQoKIyBGaWxlIHVwbG9hZCByYXRlIGxpbWl0aW5nIChjb250cm9scyBzZXJ2ZXIgbG9hZCkKIyBEZWZhdWx0OiBmYWxzZSBpbiBkZXZlbG9wbWVudCwgdHJ1ZSBpbiBwcm9kdWN0aW9uCkVOQUJMRV9VUExPQURfUkFURV9MSU1JVD10cnVlCgojIFNlYXJjaC9RdWVyeSByYXRlIGxpbWl0aW5nIChkYXRhYmFzZSBwcm90ZWN0aW9uKQojIERlZmF1bHQ6IGZhbHNlIGluIGRldmVsb3BtZW50LCB0cnVlIGluIHByb2R1Y3Rpb24KRU5BQkxFX1NFQVJDSF9SQVRFX0xJTUlUPXRydWUKCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIFN0YWZmL0ludGVybmFsIElQIEFsbG93bGlzdAojID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBDSURSIHJhbmdlcyBvciBleGFjdCBJUHMgdGhhdCBieXBhc3MgQUxMIHJhdGUgbGltaXRzCiMgVXNlZCBmb3IgTk9DL3N1cHBvcnQgc3RhZmYsIGludGVybmFsIG1vbml0b3JpbmcsIGFuZCBoZWFsdGggY2hlY2tzCiMgRXhhbXBsZXM6CiMgICAtIFNpbmdsZSBJUDogMTkyLjE2OC4xLjEwMAojICAgLSBDSURSIHJhbmdlOiAxOTIuMTY4LjEuMC8yNAojICAgLSBNdWx0aXBsZTogMTkyLjE2OC4xLjAvMjQsMTAuMC4wLjUsMTcyLjE2LjAuMC8xNgojIExlYXZlIGVtcHR5IHRvIGRpc2FibGUgc3RhZmYgYnlwYXNzClNUQUZGX0lQX0FMTE9XTElTVD0KCiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQojIFJlZGlzIENvbmZpZ3VyYXRpb24KIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJFRElTX0VOQUJMRUQ9dHJ1ZQpSRURJU19IT1NUPWxvY2FsaG9zdApSRURJU19QT1JUPTYzNzkKUkVESVNfREI9MAojIFJFRElTX1BBU1NXT1JEPXlvdXJfcGFzc3dvcmRfaWZfbmVlZGVkCkVPRgoKc3VkbyBjaG1vZCA2MDAgIiRBUFBfRU5WX0ZJTEUiOyBjaGVja19zdGF0dXMgIlNldHRpbmcgcGVybWlzc2lvbnMgb24gYmFja2VuZCAuZW52IgpzdWRvIGNob3duIC1SIHd3dy1kYXRhOnd3dy1kYXRhICIkQVBQX0RJUiI7IGNoZWNrX3N0YXR1cyAiU2V0dGluZyBvd25lciB0byB3d3ctZGF0YSBmb3IgYXBwIGZpbGVzIgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCA5IOKAlCBDb25maWd1cmUgUE0yCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKZWNobyAiQ29uZmlndXJpbmcgUE0yIHByb2Nlc3MgbWFuYWdlci4uLiIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCiMgZWNvc3lzdGVtLmNvbmZpZy5qcywgY3Jvbi5qcywgYW5kIHBhY2thZ2UuanNvbiBhcmUgYWxyZWFkeSBpbmNsdWRlZCBpbiB0aGUgemlwClBNMl9DT05GPSIkQVBQX0RJUi9iYWNrZW5kL2Vjb3N5c3RlbS5jb25maWcuanMiCgojIFZlcmlmeSBlY29zeXN0ZW0uY29uZmlnLmpzIGV4aXN0cyBpbiB0aGUgZXh0cmFjdGVkIGZpbGVzCmlmIFsgISAtZiAiJFBNMl9DT05GIiBdOyB0aGVuCiAgZWNobyAiRVJST1I6IGVjb3N5c3RlbS5jb25maWcuanMgbm90IGZvdW5kIGluIGV4dHJhY3RlZCB6aXAgYXQgJFBNMl9DT05GIgogIGV4aXQgMQpmaQoKc3VkbyBta2RpciAtcCAvdmFyL2xvZy9za3JhZGl1czsgY2hlY2tfc3RhdHVzICJDcmVhdGluZyBQTTIgbG9nIGRpcmVjdG9yeSIKc3VkbyBjaG93biAtUiB3d3ctZGF0YTp3d3ctZGF0YSAvdmFyL2xvZy9za3JhZGl1czsgY2hlY2tfc3RhdHVzICJTZXR0aW5nIG93bmVyIGZvciBQTTIgbG9nIGRpcmVjdG9yeSIKCiMgQ3JlYXRlIFBNMiBob21lIGRpcmVjdG9yeSBmb3Igd3d3LWRhdGEgdXNlcgojIHd3dy1kYXRhIGhvbWUgaXMgL3Zhci93d3csIHNvIFBNMiB1c2VzIC92YXIvd3d3Ly5wbTIgZm9yIHJ1bnRpbWUgZGF0YQpQTTJfSE9NRV9ESVI9Ii92YXIvd3d3Ly5wbTIiCnN1ZG8gbWtkaXIgLXAgIiRQTTJfSE9NRV9ESVIiOyBjaGVja19zdGF0dXMgIkNyZWF0aW5nIFBNMiBob21lIGRpcmVjdG9yeSAoJFBNMl9IT01FX0RJUikiCnN1ZG8gY2hvd24gLVIgd3d3LWRhdGE6d3d3LWRhdGEgIiRQTTJfSE9NRV9ESVIiOyBjaGVja19zdGF0dXMgIlNldHRpbmcgb3duZXIgZm9yIFBNMiBob21lIGRpcmVjdG9yeSIKCiMgbnBtIChpbnZva2VkIGludGVybmFsbHkgYnkgInBtMiBpbnN0YWxsIikgYWxzbyByZXNvbHZlcyBpdHMgY2FjaGUgZGlyIHZpYQojICRIT01FIC0+IC92YXIvd3d3Ly5ucG0uIEVuc3VyZSBpdCBleGlzdHMgYW5kIGlzIG93bmVkIGJ5IHd3dy1kYXRhLCBzYW1lCiMgcmVhc29uaW5nIGFzIFBNMl9IT01FX0RJUiBhYm92ZSDigJQgb3RoZXJ3aXNlICJwbTIgaW5zdGFsbCBwbTItbG9ncm90YXRlIgojIGZhaWxzIHdpdGggRUFDQ0VTIHRyeWluZyB0byBjcmVhdGUgL3Zhci93d3cvLm5wbS4Kc3VkbyBta2RpciAtcCAvdmFyL3d3dy8ubnBtOyBjaGVja19zdGF0dXMgIkNyZWF0aW5nIG5wbSBjYWNoZSBkaXJlY3RvcnkgKC92YXIvd3d3Ly5ucG0pIgpzdWRvIGNob3duIC1SIHd3dy1kYXRhOnd3dy1kYXRhIC92YXIvd3d3Ly5ucG07IGNoZWNrX3N0YXR1cyAiU2V0dGluZyBvd25lciBmb3IgbnBtIGNhY2hlIGRpcmVjdG9yeSIKCiMgRmFpbHNhZmU6IGlmIGFueXRoaW5nIHVuZGVyIC92YXIvd3d3IHdhcyBldmVyIHRvdWNoZWQgYXMgcm9vdCAoZS5nLiBkdXJpbmcKIyBhIHByZXZpb3VzIGZhaWxlZCBydW4pLCByZWNsYWltIG93bmVyc2hpcCBmb3Igd3d3LWRhdGEgYmVmb3JlIHByb2NlZWRpbmcuCnN1ZG8gY2hvd24gLVIgd3d3LWRhdGE6d3d3LWRhdGEgL3Zhci93d3c7IGNoZWNrX3N0YXR1cyAiRW5zdXJpbmcgL3Zhci93d3cgaXMgZnVsbHkgb3duZWQgYnkgd3d3LWRhdGEiCgojIENsZWFuIHVwIGFueSBsZWZ0b3ZlciBzdGF0ZSBmcm9tIGEgcHJldmlvdXMvcGFydGlhbCBpbnN0YWxsIHJ1bjoKIyAgLSBhIHN0cmF5IHVuc3VwZXJ2aXNlZCBub2RlIHByb2Nlc3MgKGJ5cGFzc2luZyBQTTIgZW50aXJlbHkpCiMgIC0gYSBzdGFsZSBQTTIgZW50cnkgZm9yICJza3JhZGl1cy1hcGkiIGZyb20gYW4gZWFybGllciBhdHRlbXB0CiMgQm90aCBhcmUgc2FmZSBuby1vcHMgb24gYSBmcmVzaCBpbnN0YWxsLgplY2hvICJDbGVhbmluZyB1cCBhbnkgcHJldmlvdXMgU0tSYWRpdXMgcHJvY2VzcyBzdGF0ZS4uLiIKc3VkbyBwa2lsbCAtZiAiZGlzdC9zdGFydC5qcyIgMj4vZGV2L251bGwgfHwgdHJ1ZQpzdWRvIC11IHd3dy1kYXRhIFBNMl9IT01FPSIkUE0yX0hPTUVfRElSIiBwbTIgZGVsZXRlIHNrcmFkaXVzLWFwaSAyPi9kZXYvbnVsbCB8fCB0cnVlCnN1ZG8gLXUgd3d3LWRhdGEgUE0yX0hPTUU9IiRQTTJfSE9NRV9ESVIiIHBtMiBkZWxldGUgc2tyYWRpdXMtY3JvbiAyPi9kZXYvbnVsbCB8fCB0cnVlCnN1ZG8gLXUgd3d3LWRhdGEgUE0yX0hPTUU9IiRQTTJfSE9NRV9ESVIiIHBtMiBraWxsIDI+L2Rldi9udWxsIHx8IHRydWUKCiMgQ29uZmlndXJlIFBNMiBzdGFydHVwIHNlcnZpY2UgQkVGT1JFIHN0YXJ0aW5nIGFwcHMKIyAoLS1ocCBtdXN0IG1hdGNoIHd3dy1kYXRhIGhvbWU6IC92YXIvd3d3KQplY2hvICJDb25maWd1cmluZyBQTTIgc3RhcnR1cCBzeXN0ZW0gc2VydmljZS4uLiIKc3VkbyBlbnYgUEFUSD0iJFBBVEg6L3Vzci9iaW4iIFBNMl9IT01FPSIkUE0yX0hPTUVfRElSIiBwbTIgc3RhcnR1cCBzeXN0ZW1kIC11IHd3dy1kYXRhIC0taHAgL3Zhci93d3c7IGNoZWNrX3N0YXR1cyAiQ29uZmlndXJpbmcgUE0yIHN0YXJ0dXAgc3lzdGVtIHNlcnZpY2UiCgojIFN0YXJ0IGFwcCB2aWEgUE0yCnN1ZG8gLXUgd3d3LWRhdGEgUE0yX0hPTUU9IiRQTTJfSE9NRV9ESVIiIHBtMiBzdGFydCAiJEFQUF9ESVIvYmFja2VuZC9lY29zeXN0ZW0uY29uZmlnLmpzIjsgY2hlY2tfc3RhdHVzICJTdGFydGluZyBTS1JhZGl1cyBhcHAgdmlhIFBNMiIKCiMgVmVyaWZ5IHRoZSBhcHAgYWN0dWFsbHkgY2FtZSBvbmxpbmUg4oCUICJwbTIgc3RhcnQiIGV4aXRzIDAgZXZlbiBpZiB0aGUgYXBwCiMgaW1tZWRpYXRlbHkgY3Jhc2gtbG9vcHMgKGJhZCAuZW52LCBEQiBjb25uZWN0aW9uIGZhaWx1cmUsIHN5bnRheCBlcnJvciwgZXRjLiksCiMgc28gYSBjbGVhbiBleGl0IGNvZGUgYWxvbmUgZG9lcyBOT1QgbWVhbiB0aGUgYXBwIGlzIHJ1bm5pbmcuCnNsZWVwIDMKCkNIRUNLX1NDUklQVD0iL3RtcC9wbTJfY2hlY2tfc3RhdHVzLmpzIgpzdWRvIHRlZSAiJENIRUNLX1NDUklQVCIgPiAvZGV2L251bGwgPDxFT0YKbGV0IGQgPSAiIjsKcHJvY2Vzcy5zdGRpbi5vbigiZGF0YSIsIGZ1bmN0aW9uKGMpIHsgZCArPSBjOyB9KTsKcHJvY2Vzcy5zdGRpbi5vbigiZW5kIiwgZnVuY3Rpb24oKSB7CiAgdHJ5IHsKICAgIHZhciBqID0gSlNPTi5wYXJzZShkKTsKICAgIHZhciBhcHAgPSBudWxsOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBqLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChqW2ldLm5hbWUgPT09ICJza3JhZGl1cy1hcGkiKSB7IGFwcCA9IGpbaV07IGJyZWFrOyB9CiAgICB9CiAgICBjb25zb2xlLmxvZyhhcHAgPyBhcHAucG0yX2Vudi5zdGF0dXMgOiAibm90X2ZvdW5kIik7CiAgfSBjYXRjaCAoZSkgewogICAgY29uc29sZS5sb2coInBhcnNlX2Vycm9yIik7CiAgfQp9KTsKRU9GCgpBUFBfUE0yX1NUQVRVUz0kKHN1ZG8gLXUgd3d3LWRhdGEgUE0yX0hPTUU9IiRQTTJfSE9NRV9ESVIiIHBtMiBqbGlzdCB8IG5vZGUgIiRDSEVDS19TQ1JJUFQiKQpzdWRvIHJtIC1mICIkQ0hFQ0tfU0NSSVBUIgoKaWYgWyAiJEFQUF9QTTJfU1RBVFVTIiAhPSAib25saW5lIiBdOyB0aGVuCiAgZWNobyAiRVJST1I6IFNLUmFkaXVzIGFwcCBpcyBub3Qgb25saW5lIChzdGF0dXM6ICR7QVBQX1BNMl9TVEFUVVN9KS4iCiAgZWNobyAiUmVjZW50IGxvZ3M6IgogIHN1ZG8gLXUgd3d3LWRhdGEgUE0yX0hPTUU9IiRQTTJfSE9NRV9ESVIiIHBtMiBsb2dzIHNrcmFkaXVzLWFwaSAtLWxpbmVzIDMwIC0tbm9zdHJlYW0KICBleGl0IDEKZmkKZWNobyAiU0tSYWRpdXMgYXBwIGNvbmZpcm1lZCBvbmxpbmUgdmlhIFBNMi4iCgojIEluc3RhbGwgUE0yIGxvZyByb3RhdGlvbiBtb2R1bGUgdG8gcHJldmVudCB1bmJvdW5kZWQgbG9nIGdyb3d0aApzdWRvIC11IHd3dy1kYXRhIFBNMl9IT01FPSIkUE0yX0hPTUVfRElSIiBwbTIgaW5zdGFsbCBwbTItbG9ncm90YXRlOyBjaGVja19zdGF0dXMgIkluc3RhbGxpbmcgcG0yLWxvZ3JvdGF0ZSBtb2R1bGUiCnN1ZG8gLXUgd3d3LWRhdGEgUE0yX0hPTUU9IiRQTTJfSE9NRV9ESVIiIHBtMiBzZXQgcG0yLWxvZ3JvdGF0ZTptYXhfc2l6ZSAxME07IGNoZWNrX3N0YXR1cyAiQ29uZmlndXJpbmcgcG0yLWxvZ3JvdGF0ZSBtYXhfc2l6ZSIKc3VkbyAtdSB3d3ctZGF0YSBQTTJfSE9NRT0iJFBNMl9IT01FX0RJUiIgcG0yIHNldCBwbTItbG9ncm90YXRlOnJldGFpbiA3OyBjaGVja19zdGF0dXMgIkNvbmZpZ3VyaW5nIHBtMi1sb2dyb3RhdGUgcmV0YWluIgpzdWRvIC11IHd3dy1kYXRhIFBNMl9IT01FPSIkUE0yX0hPTUVfRElSIiBwbTIgc2V0IHBtMi1sb2dyb3RhdGU6Y29tcHJlc3MgdHJ1ZTsgY2hlY2tfc3RhdHVzICJDb25maWd1cmluZyBwbTItbG9ncm90YXRlIGNvbXByZXNzIgpzdWRvIC11IHd3dy1kYXRhIFBNMl9IT01FPSIkUE0yX0hPTUVfRElSIiBwbTIgc2V0IHBtMi1sb2dyb3RhdGU6ZGF0ZUZvcm1hdCAiWVlZWS1NTS1ERF9ISC1tbS1zcyI7IGNoZWNrX3N0YXR1cyAiQ29uZmlndXJpbmcgcG0yLWxvZ3JvdGF0ZSBkYXRlRm9ybWF0IgpzdWRvIC11IHd3dy1kYXRhIFBNMl9IT01FPSIkUE0yX0hPTUVfRElSIiBwbTIgc2V0IHBtMi1sb2dyb3RhdGU6cm90YXRlSW50ZXJ2YWwgIjAgMCAqICogKiI7IGNoZWNrX3N0YXR1cyAiQ29uZmlndXJpbmcgcG0yLWxvZ3JvdGF0ZSByb3RhdGVJbnRlcnZhbCIKCnN1ZG8gLXUgd3d3LWRhdGEgUE0yX0hPTUU9IiRQTTJfSE9NRV9ESVIiIHBtMiBzYXZlOyBjaGVja19zdGF0dXMgIlNhdmluZyBQTTIgcHJvY2VzcyBsaXN0IgoKIyBTdG9wIFBNMiBkYWVtb24gZ3JhY2VmdWxseSBiZWZvcmUgbGV0dGluZyBzeXN0ZW1kIHRha2Ugb3ZlcgplY2hvICJTdG9wcGluZyBQTTIgZGFlbW9uIHRvIHRyYW5zZmVyIGNvbnRyb2wgdG8gc3lzdGVtZC4uLiIKc3VkbyAtdSB3d3ctZGF0YSBQTTJfSE9NRT0iJFBNMl9IT01FX0RJUiIgcG0yIGtpbGwKCiMgRW5hYmxlIGFuZCBzdGFydCBQTTIgc3lzdGVtZCBzZXJ2aWNlCnN1ZG8gc3lzdGVtY3RsIGRhZW1vbi1yZWxvYWQ7IGNoZWNrX3N0YXR1cyAiUmVsb2FkaW5nIHN5c3RlbWQgZGFlbW9uIgpzdWRvIHN5c3RlbWN0bCBlbmFibGUgcG0yLXd3dy1kYXRhOyBjaGVja19zdGF0dXMgIkVuYWJsaW5nIFBNMiBzZXJ2aWNlIG9uIGJvb3QiCnN1ZG8gc3lzdGVtY3RsIHN0YXJ0IHBtMi13d3ctZGF0YTsgY2hlY2tfc3RhdHVzICJTdGFydGluZyBQTTIgc3lzdGVtZCBzZXJ2aWNlIgoKIyBXYWl0IGZvciBzZXJ2aWNlIHRvIHN0YXJ0CnNsZWVwIDMKCiMgVmVyaWZ5IGFwcHMgY2FtZSBiYWNrIG9ubGluZSB2aWEgc3lzdGVtZApDSEVDS19TQ1JJUFRfMj0iL3RtcC9wbTJfY2hlY2tfc3lzdGVtZC5qcyIKc3VkbyB0ZWUgIiRDSEVDS19TQ1JJUFRfMiIgPiAvZGV2L251bGwgPDwnTk9ERVNDUklQVCcKbGV0IGQgPSAiIjsKcHJvY2Vzcy5zdGRpbi5vbigiZGF0YSIsIGZ1bmN0aW9uKGMpIHsgZCArPSBjOyB9KTsKcHJvY2Vzcy5zdGRpbi5vbigiZW5kIiwgZnVuY3Rpb24oKSB7CiAgdHJ5IHsKICAgIHZhciBqID0gSlNPTi5wYXJzZShkKTsKICAgIHZhciBhcHAgPSBudWxsOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBqLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChqW2ldLm5hbWUgPT09ICJza3JhZGl1cy1hcGkiKSB7IGFwcCA9IGpbaV07IGJyZWFrOyB9CiAgICB9CiAgICBjb25zb2xlLmxvZyhhcHAgPyBhcHAucG0yX2Vudi5zdGF0dXMgOiAibm90X2ZvdW5kIik7CiAgfSBjYXRjaCAoZSkgewogICAgY29uc29sZS5sb2coInBhcnNlX2Vycm9yIik7CiAgfQp9KTsKTk9ERVNDUklQVAoKQVBQX1BNMl9TVEFUVVM9JChzdWRvIC11IHd3dy1kYXRhIFBNMl9IT01FPSIkUE0yX0hPTUVfRElSIiBwbTIgamxpc3QgfCBub2RlICIkQ0hFQ0tfU0NSSVBUXzIiKQpzdWRvIHJtIC1mICIkQ0hFQ0tfU0NSSVBUXzIiCgppZiBbICIkQVBQX1BNMl9TVEFUVVMiICE9ICJvbmxpbmUiIF07IHRoZW4KICBlY2hvICJXQVJOSU5HOiBBcHBzIG1heSBub3QgaGF2ZSBzdGFydGVkIHZpYSBzeXN0ZW1kLiBTdGF0dXM6ICR7QVBQX1BNMl9TVEFUVVN9IgogIGVjaG8gIlJlY2VudCBsb2dzOiIKICBzdWRvIC11IHd3dy1kYXRhIFBNMl9IT01FPSIkUE0yX0hPTUVfRElSIiBwbTIgbG9ncyBza3JhZGl1cy1hcGkgLS1saW5lcyAxMCAtLW5vc3RyZWFtIHx8IHRydWUKZWxzZQogIGVjaG8gIlNLUmFkaXVzIGFwcHMgc3VjY2Vzc2Z1bGx5IG1hbmFnZWQgYnkgc3lzdGVtZCBzZXJ2aWNlLiIKZmkKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCA5LjUg4oCUIEluc3RhbGwgTmdpbnggKHNlcnZlcyBmcm9udGVuZCwgcHJveGllcyBBUEkpCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKZWNobyAiSW5zdGFsbGluZyAmIGNvbmZpZ3VyaW5nIE5naW54Li4uIgplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKc3VkbyBhcHQtZ2V0IGluc3RhbGwgLXkgbmdpbng7IGNoZWNrX3N0YXR1cyAiSW5zdGFsbGluZyBOZ2lueCIKCk5HSU5YX0NPTkZfRklMRT0iL2V0Yy9uZ2lueC9zaXRlcy1hdmFpbGFibGUvZGVmYXVsdCIKTkdJTlhfU0VSVkVSX0NPTkZJRz0kKGNhdCA8PEVPRgpzZXJ2ZXIgewogICAgbGlzdGVuIDgwOwogICAgc2VydmVyX25hbWUgJHtza3JhZGl1c0RvbWFpbn07CgogICAgIyBTZXJ2ZSB0aGUgZnJvbnRlbmQgYnVpbGQKICAgIHJvb3QgJEFQUF9ESVIvZnJvbnRlbmQvZGlzdDsKICAgIGluZGV4IGluZGV4Lmh0bWw7CgogICAgIyBIYW5kbGUgZnJvbnRlbmQgcm91dGVzIChSZWFjdCwgVnVlLCBldGMuKQogICAgbG9jYXRpb24gLyB7CiAgICAgICAgdHJ5X2ZpbGVzIFwkdXJpIFwkdXJpLyAvaW5kZXguaHRtbDsKICAgIH0KCiAgICAjIFByb3h5IEFQSSByZXF1ZXN0cyB0byBiYWNrZW5kCiAgICBsb2NhdGlvbiAvYXBpLyB7CiAgICAgICAgcHJveHlfcGFzcyBodHRwOi8vMTI3LjAuMC4xOjUwMDM7CiAgICAgICAgcHJveHlfaHR0cF92ZXJzaW9uIDEuMTsKICAgICAgICBwcm94eV9zZXRfaGVhZGVyIEhvc3QgXCRob3N0OwogICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1SZWFsLUlQIFwkcmVtb3RlX2FkZHI7CiAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1Gb3IgXCRwcm94eV9hZGRfeF9mb3J3YXJkZWRfZm9yOwogICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1Gb3J3YXJkZWQtUHJvdG8gXCRzY2hlbWU7CiAgICAgICAgcHJveHlfc2V0X2hlYWRlciBVcGdyYWRlIFwkaHR0cF91cGdyYWRlOwogICAgICAgIHByb3h5X3NldF9oZWFkZXIgQ29ubmVjdGlvbiAidXBncmFkZSI7CiAgICB9CgogICAgbG9jYXRpb24gL3VwbG9hZHMvIHsKICAgICAgICBwcm94eV9wYXNzIGh0dHA6Ly8xMjcuMC4wLjE6NTAwMy91cGxvYWRzLzsKICAgICAgICBwcm94eV9zZXRfaGVhZGVyIEhvc3QgXCRob3N0OwogICAgICAgIHByb3h5X3NldF9oZWFkZXIgWC1SZWFsLUlQIFwkcmVtb3RlX2FkZHI7CiAgICAgICAgcHJveHlfc2V0X2hlYWRlciBYLUZvcndhcmRlZC1Gb3IgXCRwcm94eV9hZGRfeF9mb3J3YXJkZWRfZm9yOwogICAgfQoKICAgICMgT3B0aW9uYWw6IGhhbmRsZSBzdGF0aWMgZmlsZXMgY2FjaGluZwogICAgbG9jYXRpb24gfiogXC4oanN8Y3NzfHBuZ3xqcGd8anBlZ3xnaWZ8aWNvfHN2Z3x3ZWJwKVwkIHsKICAgICAgICBleHBpcmVzIDMwZDsKICAgICAgICBhY2Nlc3NfbG9nIG9mZjsKICAgICAgICBhZGRfaGVhZGVyIENhY2hlLUNvbnRyb2wgInB1YmxpYywgbm8tdHJhbnNmb3JtIjsKICAgIH0KCiAgICBlcnJvcl9wYWdlIDQwNCAvaW5kZXguaHRtbDsKfQpFT0YKKQpzdWRvIHRydW5jYXRlIC1zIDAgIiROR0lOWF9DT05GX0ZJTEUiOyBjaGVja19zdGF0dXMgIlRydW5jYXRpbmcgTmdpbnggY29uZmlnIGZpbGUiCmVjaG8gIiROR0lOWF9TRVJWRVJfQ09ORklHIiB8IHN1ZG8gdGVlIC1hICIkTkdJTlhfQ09ORl9GSUxFIiA+IC9kZXYvbnVsbDsgY2hlY2tfc3RhdHVzICJXcml0aW5nIE5naW54IGNvbmZpZ3VyYXRpb24iCnN1ZG8gbmdpbnggLXQgJiYgc3VkbyBzeXN0ZW1jdGwgcmVzdGFydCBuZ2lueDsgY2hlY2tfc3RhdHVzICJUZXN0aW5nIGFuZCByZXN0YXJ0aW5nIE5naW54IgpzdWRvIHN5c3RlbWN0bCBlbmFibGUgbmdpbng7IGNoZWNrX3N0YXR1cyAiRW5hYmxpbmcgTmdpbnggc2VydmljZSBvbiBib290IgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCAxMCDigJQgRmlyZXdhbGwgcnVsZXMKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmVjaG8gIiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIgplY2hvICJDb25maWd1cmluZyBmaXJld2FsbC4uLiIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCnN1ZG8gdWZ3IGFsbG93IE9wZW5TU0g7IGNoZWNrX3N0YXR1cyAiQ29uZmlndXJpbmcgVUZXIHRvIGFsbG93IE9wZW5TU0giCnN1ZG8gdWZ3IGFsbG93IDgwL3RjcDsgY2hlY2tfc3RhdHVzICJDb25maWd1cmluZyBVRlcgdG8gYWxsb3cgcG9ydCA4MCAoSFRUUCkiCnN1ZG8gdWZ3IGFsbG93IDQ0My90Y3A7IGNoZWNrX3N0YXR1cyAiQ29uZmlndXJpbmcgVUZXIHRvIGFsbG93IHBvcnQgNDQzIChIVFRQUykiCnN1ZG8gdWZ3IGFsbG93IDE4MTIvdWRwOyBjaGVja19zdGF0dXMgIkNvbmZpZ3VyaW5nIFVGVyB0byBhbGxvdyBwb3J0IDE4MTIgKFJBRElVUykiCnN1ZG8gdWZ3IGFsbG93IDE4MTMvdWRwOyBjaGVja19zdGF0dXMgIkNvbmZpZ3VyaW5nIFVGVyB0byBhbGxvdyBwb3J0IDE4MTMgKFJBRElVUyBhY2NvdW50aW5nKSIKc3VkbyB1ZncgLS1mb3JjZSBlbmFibGU7IGNoZWNrX3N0YXR1cyAiRW5hYmxpbmcgVUZXIGZpcmV3YWxsIgoKIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgU1RFUCAxMSDigJQgRW5hYmxlIGFsbCBzZXJ2aWNlcyBvbiBib290CiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzdWRvIHN5c3RlbWN0bCBlbmFibGUgbXlzcWwgMj4gL2Rldi9udWxsOyBjaGVja19zdGF0dXMgIkVuYWJsaW5nIE15U1FMIHNlcnZpY2Ugb24gYm9vdCIKc3VkbyBzeXN0ZW1jdGwgZW5hYmxlIHJlZGlzLXNlcnZlciAyPiAvZGV2L251bGw7IGNoZWNrX3N0YXR1cyAiRW5hYmxpbmcgUmVkaXMgc2VydmljZSBvbiBib290IgpzdWRvIHN5c3RlbWN0bCBlbmFibGUgZnJlZXJhZGl1cyAyPiAvZGV2L251bGw7IGNoZWNrX3N0YXR1cyAiRW5hYmxpbmcgRnJlZVJBRElVUyBzZXJ2aWNlIG9uIGJvb3QiCnN1ZG8gc3lzdGVtY3RsIGVuYWJsZSBjcm9uIDI+IC9kZXYvbnVsbDsgY2hlY2tfc3RhdHVzICJFbmFibGluZyBDcm9uIHNlcnZpY2Ugb24gYm9vdCIKc3VkbyBzeXN0ZW1jdGwgZW5hYmxlIHBtMi13d3ctZGF0YSAyPiAvZGV2L251bGw7IGNoZWNrX3N0YXR1cyAiRW5hYmxpbmcgUE0yIHNlcnZpY2Ugb24gYm9vdCIKCgojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBTVEVQIDEyIOKAlCBJbnN0YWxsIFNTTCBjZXJ0aWZpY2F0ZSB2aWEgQ2VydGJvdAojIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCmVjaG8gIkluc3RhbGxpbmcgU1NMIGNlcnRpZmljYXRlIGZvciAke3NrcmFkaXVzRG9tYWlufS4uLiIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCnN1ZG8gYXB0LWdldCBpbnN0YWxsIC15IGNlcnRib3QgcHl0aG9uMy1jZXJ0Ym90LW5naW54OyBjaGVja19zdGF0dXMgIkluc3RhbGxpbmcgQ2VydGJvdCBhbmQgTmdpbnggcGx1Z2luIgpzdWRvIGNlcnRib3QgLS1uZ2lueCAtZCAke3NrcmFkaXVzRG9tYWlufSAtLW5vbi1pbnRlcmFjdGl2ZSAtLWFncmVlLXRvcyAtbSBzdXBwb3J0QGFhbmlyaWRzLmNvbSAtLXJlZGlyZWN0OwppZiBbICQ/IC1uZSAwIF07IHRoZW4KICBlY2hvICJXQVJOSU5HOiBDZXJ0Ym90IGZhaWxlZC4gVGhpcyB1c3VhbGx5IG1lYW5zIHRoZSBkb21haW4gJHtza3JhZGl1c0RvbWFpbn0iOwogIGVjaG8gImlzIG5vdCB5ZXQgcG9pbnRlZCBhdCB0aGlzIHNlcnZlcidcJydzIElQLiBZb3UgY2FuIHJldHJ5IG1hbnVhbGx5IGxhdGVyIHdpdGg6IjsKICBlY2hvICIgIHN1ZG8gY2VydGJvdCAtLW5naW54IC1kICR7c2tyYWRpdXNEb21haW59IjsKZmkKCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFNURVAgMTMg4oCUIENsZWFuIHVwICYgZmluaXNoCiMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpoaXN0b3J5IC1jICYmIGhpc3RvcnkgLXc7CgplY2hvICIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyIKZWNobyAiIyMjIyMjIyMgIFNLUmFkaXVzIEluc3RhbGxhdGlvbiBDb21wbGV0ZSEgKDEwMCUpICAjIyMjIyMjIyIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCmVjaG8gIiIKZWNobyAiICBBcHAgVVJMICAgICAgICAgICAgOiBodHRwOi8vJHtza3JhZGl1c0RvbWFpbn0iCmVjaG8gIiAgUE0yIHN0YXR1cyAgICAgICAgIDogc3VkbyAtdSB3d3ctZGF0YSBQTTJfSE9NRT0vdmFyL3d3dy8ucG0yIHBtMiBzdGF0dXMiCmVjaG8gIiAgQXBpIGxvZ3MgICAgICAgICAgIDogc3VkbyAtdSB3d3ctZGF0YSBQTTJfSE9NRT0vdmFyL3d3dy8ucG0yIHBtMiBsb2dzIHNrcmFkaXVzLWFwaSIKZWNobyAiICBjcm9uIGxvZ3MgICAgICAgICAgIDogc3VkbyAtdSB3d3ctZGF0YSBQTTJfSE9NRT0vdmFyL3d3dy8ucG0yIHBtMiBsb2dzIHNrcmFkaXVzLWNyb24iCmVjaG8gIiAgSW5zdGFsbGVyIHNlY3JldHMgIDogL2V0Yy9za3JhZGl1cy8uZW52ICAoY2htb2QgNjAwKSIKZWNobyAiICBCYWNrZW5kIC5lbnYgICAgICAgOiAke0FQUF9ESVJ9L2JhY2tlbmQvLmVudiAgKGNobW9kIDYwMCkiCmVjaG8gIiAgRnJvbnRlbmQgKHN0YXRpYykgIDogJHtBUFBfRElSfS9mcm9udGVuZC9kaXN0ICAoc2VydmVkIGJ5IE5naW54KSIKZWNobyAiICBVcGxvYWRzIGRpciAgICAgICAgOiAke0FQUF9ESVJ9L3VwbG9hZHMvIgplY2hvICIiCmVjaG8gIiAgSXRlbXMgdG8gY29tcGxldGUgYWZ0ZXIgaW5zdGFsbDoiCmVjaG8gIiAgICAxLiBTZXQgVFIwNjlfQkFTRV9VUkwgaW4gJHtBUFBfRElSfS9iYWNrZW5kLy5lbnYiCmVjaG8gIiAgICAyLiBTZXQgTElDRU5TRV9TRVJWRVJfVVJMIGluICR7QVBQX0RJUn0vYmFja2VuZC8uZW52IgplY2hvICIgICAgMy4gU2V0IExJQ0VOU0VfS0VZIGlmIHJlcXVpcmVkIgplY2hvICIgICAgNC4xLiBSZXN0YXJ0LWFwaTogc3VkbyAtdSB3d3ctZGF0YSBQTTJfSE9NRT0vdmFyL3d3dy8ucG0yIHBtMiByZXN0YXJ0IHNrcmFkaXVzLWFwaSIKZWNobyAiICAgIDQuMi4gUmVzdGFydC1jcm9uOiBzdWRvIC11IHd3dy1kYXRhIFBNMl9IT01FPS92YXIvd3d3Ly5wbTIgcG0yIHJlc3RhcnQgc2tyYWRpdXMtY3JvbiIKZWNobyAiIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiCgplbHNlCiAgZWNobyAiV3JvbmcgVXNlcm5hbWUgb3IgUGFzc3dvcmQuIENvbnRhY3Qgd3d3LnNrcmFkaXVzLmFhbmlyaWRzLmNvbSI7CiAgZXhpdCAxOwpmaSc=" | base64 -d)
eval "$_0x1a2b3c"
