LS0tIG1pc2Mvb3BlbnNzbC0wLjkuOG8vY3J5cHRvL3g1MDl2My92M19wY2kuYwkyMDA3LTAzLTA1IDAxOjA2OjQ3LjAwMDAwMDAwMCArMDEwMAorKysgbWlzYy9idWlsZC9vcGVuc3NsLTAuOS44by9jcnlwdG8veDUwOXYzL3YzX3BjaS5jCTIwMTAtMDMtMjYgMTI6MDQ6MjAuOTYxNTQ3MzAwICswMTAwCkBAIC0yLDcgKzIsNyBAQAogLyogQ29udHJpYnV0ZWQgdG8gdGhlIE9wZW5TU0wgUHJvamVjdCAyMDA0CiAgKiBieSBSaWNoYXJkIExldml0dGUgKHJpY2hhcmRAbGV2aXR0ZS5vcmcpCiAgKi8KLS8qIENvcHlyaWdodCAoYykgMjAwNCBLdW5nbGlnYSBUZWtuaXNrYSBI9mdza29sYW4KKy8qIENvcHlyaWdodCAoYykgMjAwNCBLdW5nbGlnYSBUZWtuaXNrYSBIb2Vnc2tvbGFuCiAgKiAoUm95YWwgSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3ksIFN0b2NraG9sbSwgU3dlZGVuKS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgotLS0gbWlzYy9vcGVuc3NsLTAuOS44by9jcnlwdG8veDUwOXYzL3YzX3BjaWEuYwkyMDA0LTEyLTI4IDAxOjIxOjMzLjAwMDAwMDAwMCArMDEwMAorKysgbWlzYy9idWlsZC9vcGVuc3NsLTAuOS44by9jcnlwdG8veDUwOXYzL3YzX3BjaWEuYwkyMDEwLTAzLTI2IDEyOjA0OjIwLjk2MTU0NzMwMCArMDEwMApAQCAtMiw3ICsyLDcgQEAKIC8qIENvbnRyaWJ1dGVkIHRvIHRoZSBPcGVuU1NMIFByb2plY3QgMjAwNAogICogYnkgUmljaGFyZCBMZXZpdHRlIChyaWNoYXJkQGxldml0dGUub3JnKQogICovCi0vKiBDb3B5cmlnaHQgKGMpIDIwMDQgS3VuZ2xpZ2EgVGVrbmlza2EgSPZnc2tvbGFuCisvKiBDb3B5cmlnaHQgKGMpIDIwMDQgS3VuZ2xpZ2EgVGVrbmlza2EgSG9lZ3Nrb2xhbgogICogKFJveWFsIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5LCBTdG9ja2hvbG0sIFN3ZWRlbikuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKLS0tIG1pc2Mvb3BlbnNzbC0wLjkuOG8vbXMvZG9fbXMuYmF0CTIwMDktMDctMjggMTQ6NTE6MTkuMDAwMDAwMDAwICswMjAwCisrKyBtaXNjL2J1aWxkL29wZW5zc2wtMC45LjhvL21zL2RvX21zLmJhdAkyMDEwLTAzLTI2IDEyOjE5OjE5LjM5OTA0NzMwMCArMDEwMApAQCAtMSwxMSArMSwxMSBAQAogCi1wZXJsIHV0aWxcbWtmaWxlcy5wbCA+TUlORk8KLXBlcmwgdXRpbFxtazFtZi5wbCBuby1hc20gVkMtV0lOMzIgPm1zXG50Lm1hawotcGVybCB1dGlsXG1rMW1mLnBsIGRsbCBuby1hc20gVkMtV0lOMzIgPm1zXG50ZGxsLm1haworJTEgdXRpbFxta2ZpbGVzLnBsID5NSU5GTworJTEgdXRpbFxtazFtZi5wbCBuby1hc20gVkMtV0lOMzIgPm1zXG50Lm1haworJTEgdXRpbFxtazFtZi5wbCBkbGwgbm8tYXNtIFZDLVdJTjMyID5tc1xudGRsbC5tYWsKIGlmIHglT1NWRVJTSU9OJSA9PSB4IGdvdG8gc2tpcGNlCi1wZXJsIHV0aWxcbWsxbWYucGwgbm8tYXNtIFZDLUNFID5tc1xjZS5tYWsKLXBlcmwgdXRpbFxtazFtZi5wbCBkbGwgbm8tYXNtIFZDLUNFID5tc1xjZWRsbC5tYWsKKyUxIHV0aWxcbWsxbWYucGwgbm8tYXNtIFZDLUNFID5tc1xjZS5tYWsKKyUxIHV0aWxcbWsxbWYucGwgZGxsIG5vLWFzbSBWQy1DRSA+bXNcY2VkbGwubWFrCiA6c2tpcGNlCiAKLXBlcmwgdXRpbFxta2RlZi5wbCAzMiBsaWJlYXkgPiBtc1xsaWJlYXkzMi5kZWYKLXBlcmwgdXRpbFxta2RlZi5wbCAzMiBzc2xlYXkgPiBtc1xzc2xlYXkzMi5kZWYKKyUxIHV0aWxcbWtkZWYucGwgMzIgbGliZWF5ID4gbXNcbGliZWF5MzIuZGVmCislMSB1dGlsXG1rZGVmLnBsIDMyIHNzbGVheSA+IG1zXHNzbGVheTMyLmRlZgotLS0gbWlzYy9vcGVuc3NsLTAuOS44by91dGlsL21rMW1mLnBsCTIwMDktMDktMjAgMTQ6NDY6NDIuMDAwMDAwMDAwICswMjAwCisrKyBtaXNjL2J1aWxkL29wZW5zc2wtMC45LjhvL3V0aWwvbWsxbWYucGwJMjAxMC0wMy0yNiAxMjowNDoyMC45NzcxNzIzMDAgKzAxMDAKQEAgLTEyOCw3ICsxMjgsNyBAQAogJGluY19kZWY9Im91dGluYyI7CiAkdG1wX2RlZj0idG1wIjsKIAotJHBlcmw9InBlcmwiIHVubGVzcyBkZWZpbmVkICRwZXJsOworJHBlcmw9IiRFTlZ7UEVSTH0iIHVubGVzcyBkZWZpbmVkICRwZXJsOwogJG1rZGlyPSItbWtkaXIiIHVubGVzcyBkZWZpbmVkICRta2RpcjsKIAogKCRzc2wsJGNyeXB0byk9KCJzc2wiLCJjcnlwdG8iKTsKQEAgLTI5MCw2ICsyOTAsMTEgQEAKIAljaG9wOwogCiAJKCRrZXksJHZhbCk9L14oW149XSspPSguKikvOworCisJIyBPbiBzb21lIFdpbmRvd3MgbWFjaGluZXMsICR2YWwgaGFzIGxpbmVmZWVkcyBhdCB0aGUgZW5kLCB3aGljaCBjb25mdXNlcworCSMgc3Vic2VxdWVudCBjb2RlIGluIHRoaXMgZmlsZS4gU28gd2Ugc3RyaXAgYWxsIHdoaXRlc3BhY2UgYXQgdGhlIGVuZC4KKwkkdmFsID1+IHMvXHMrJC8vOworCiAJaWYgKCRrZXkgZXEgIlJFTEFUSVZFX0RJUkVDVE9SWSIpCiAJCXsKIAkJaWYgKCRsaWIgbmUgIiIpCkBAIC03MzAsNyArNzM1LDcgQEAKIHByaW50ZiBPVVQgPDxFT0Y7CiAjaWZkZWYgJHBsYXRmb3JtX2NwcF9zeW1ib2wKICAgLyogYXV0by1nZW5lcmF0ZWQvdXBkYXRlZCBieSB1dGlsL21rMW1mLnBsIGZvciBjcnlwdG8vY3ZlcnNpb24uYyAqLwotICAjZGVmaW5lIENGTEFHUyAiJGNjICRjZmxhZ3MiCisgICNkZWZpbmUgQ0ZMQUdTICIkY2ZsYWdzIgogICAjZGVmaW5lIFBMQVRGT1JNICIkcGxhdGZvcm0iCiBFT0YKIHByaW50ZiBPVVQgIiAgI2RlZmluZSBEQVRFIFwiJXNcIlxuIiwgc2NhbGFyIGdtdGltZSgpOwotLS0gbWlzYy9vcGVuc3NsLTAuOS44by91dGlsL3BsL1ZDLTMyLnBsCTIwMTAtMDItMDQgMDI6MTA6MjQuMDAwMDAwMDAwICswMTAwCisrKyBtaXNjL2J1aWxkL29wZW5zc2wtMC45LjhvL3V0aWwvcGwvVkMtMzIucGwJMjAxMC0wMy0yNiAxMjowNDoyMC45NzcxNzIzMDAgKzAxMDAKQEAgLTMyLDcgKzMyLDcgQEAKICRsX2ZsYWdzID1+IHMvLUwoXFMrKS9cL2xpYnBhdGg6JDEvZzsKIAogIyBDIGNvbXBpbGVyIHN0dWZmCi0kY2M9J2NsJzsKKyRjYz0kRU5WeydDQyd9OwogaWYgKCRGTEFWT1IgPX4gL1dJTjY0LykKICAgICB7CiAgICAgIyBOb3RlIHRoYXQgd2UgY3VycmVudGx5IGRvbid0IGhhdmUgL1dYIG9uIFdpbjY0ISBUaGVyZSBpcyBhIGxvdCBvZgpAQCAtMTAzLDIxICsxMDMsMjEgQEAKICAgICB9CiAKICAgICAkY2M9JyQoQ0MpJzsKLSAgICAkYmFzZV9jZmxhZ3M9JyAvVzMgL1dYIC9HRiAvR3kgL25vbG9nbyAtRFVOSUNPREUgLURfVU5JQ09ERSAtRE9QRU5TU0xfU1lTTkFNRV9XSU5DRSAtRFdJTjMyX0xFQU5fQU5EX01FQU4gLURMX0VORElBTiAtRERTT19XSU4zMiAtRE5PX0NITU9EIC1JJChXQ0VDT01QQVQpL2luY2x1ZGUgLURPUEVOU1NMX1NNQUxMX0ZPT1RQUklOVCc7CisgICAgJGJhc2VfY2ZsYWdzPScgLVczIC1XWCAtR0YgLUd5IC1ub2xvZ28gLURVTklDT0RFIC1EX1VOSUNPREUgLURPUEVOU1NMX1NZU05BTUVfV0lOQ0UgLURXSU4zMl9MRUFOX0FORF9NRUFOIC1ETF9FTkRJQU4gLUREU09fV0lOMzIgLUROT19DSE1PRCAtSSQoV0NFQ09NUEFUKS9pbmNsdWRlIC1ET1BFTlNTTF9TTUFMTF9GT09UUFJJTlQnOwogICAgICRiYXNlX2NmbGFncy49IiAkd2NlY2RlZnMiOwotICAgICRvcHRfY2ZsYWdzPScgL01DIC9PMWknOwkjIG9wdGltaXplIGZvciBzcGFjZSwgYnV0IHdpdGggaW50cmluc2ljcy4uLgotICAgICRkYmdfY2xmYWdzPScgL01DIC9PZCAtRERFQlVHIC1EX0RFQlVHJzsKKyAgICAkb3B0X2NmbGFncz0nIC1NQyAtTzFpJzsJIyBvcHRpbWl6ZSBmb3Igc3BhY2UsIGJ1dCB3aXRoIGludHJpbnNpY3MuLi4KKyAgICAkZGJnX2NsZmFncz0nIC1NQyAtT2QgLURERUJVRyAtRF9ERUJVRyc7CiAgICAgJGxmbGFncz0iL25vbG9nbyAvb3B0OnJlZiAkd2NlbGZsYWciOwogICAgIH0KIGVsc2UJIyBXaW4zMgogICAgIHsKLSAgICAkYmFzZV9jZmxhZ3M9JyAvVzMgL1dYIC9HczAgL0dGIC9HeSAvbm9sb2dvIC1ET1BFTlNTTF9TWVNOQU1FX1dJTjMyIC1EV0lOMzJfTEVBTl9BTkRfTUVBTiAtRExfRU5ESUFOIC1ERFNPX1dJTjMyJzsKKyAgICAkYmFzZV9jZmxhZ3M9JyAtVzMgLVdYIC1HczAgLUdGIC1HeSAtbm9sb2dvIC1ET1BFTlNTTF9TWVNOQU1FX1dJTjMyIC1EV0lOMzJfTEVBTl9BTkRfTUVBTiAtRExfRU5ESUFOIC1ERFNPX1dJTjMyJzsKICAgICAkYmFzZV9jZmxhZ3MuPScgLURfQ1JUX1NFQ1VSRV9OT19ERVBSRUNBVEUnOwkjIHNodXQgdXAgVkM4CiAgICAgJGJhc2VfY2ZsYWdzLj0nIC1EX0NSVF9OT05TVERDX05PX0RFUFJFQ0FURSc7CSMgc2h1dCB1cCBWQzgKLSAgICBteSAkZiA9ICRzaGxpYiB8fCAkZmlwcyA/JyAvTUQnOicgL01UJzsKLSAgICAkbGliX2NmbGFnPScvWmwnIGlmICghJHNobGliKTsJIyByZW1vdmUgL0RFRkFVTFRMSUJzIGZyb20gc3RhdGljIGxpYgotICAgICRvcHRfY2ZsYWdzPSRmLicgL094IC9PMiAvT2IyJzsKLSAgICAkZGJnX2NmbGFncz0kZi4nZCAvT2QgLURERUJVRyAtRF9ERUJVRyc7CisgICAgbXkgJGYgPSAkc2hsaWIgfHwgJGZpcHMgPycgLU1EJzonIC1NVCc7CisgICAgJGxpYl9jZmxhZz0nLVpsJyBpZiAoISRzaGxpYik7CSMgcmVtb3ZlIC9ERUZBVUxUTElCcyBmcm9tIHN0YXRpYyBsaWIKKyAgICAkb3B0X2NmbGFncz0kZi4nIC1PeCAtTzIgLU9iMic7CisgICAgJGRiZ19jZmxhZ3M9JGYuJ2QgLU9kIC1EREVCVUcgLURfREVCVUcnOwogICAgICRsZmxhZ3M9Ii9ub2xvZ28gL3N1YnN5c3RlbTpjb25zb2xlIC9vcHQ6cmVmIjsKICAgICB9CiAkbWxmbGFncz0nJzsKQEAgLTEzOCw3ICsxMzgsNyBAQAogCX0KIAogJG9iaj0nLm9iaic7Ci0kb2ZpbGU9Ii9GbyI7Ciskb2ZpbGU9Ii1Gby5cXCI7CiAKICMgRVhFIGxpbmtpbmcgc3R1ZmYKICRsaW5rPSJsaW5rIjsKQEAgLTI5OCw3ICsyOTgsNyBAQAogCSR0bXBfZGVmPSd0bXAzMmRsbF8kKFRBUkdFVENQVSknOwogCX0KIAotJGNmbGFncy49IiAvRmQkb3V0X2RlZiI7CiskY2ZsYWdzLj0iIC1GZCRvdXRfZGVmIjsKIAogc3ViIGRvX2xpYl9ydWxlCiAJewo=