ZGlmZiAtLWdpdCBhL0lDX3NyYy9tdGsvcGFja2FnZXMvYXBwcy9seW5xLWxvZy10cmFuc2Zlci9seW5xX2lubmVyX2xvZ190cmFuc2Zlci5zaCBiL0lDX3NyYy9tdGsvcGFja2FnZXMvYXBwcy9seW5xLWxvZy10cmFuc2Zlci9seW5xX2lubmVyX2xvZ190cmFuc2Zlci5zaAppbmRleCAxYThhNDYyLi4xODlhYjVjIDEwMDc1NQotLS0gYS9JQ19zcmMvbXRrL3BhY2thZ2VzL2FwcHMvbHlucS1sb2ctdHJhbnNmZXIvbHlucV9pbm5lcl9sb2dfdHJhbnNmZXIuc2gKKysrIGIvSUNfc3JjL210ay9wYWNrYWdlcy9hcHBzL2x5bnEtbG9nLXRyYW5zZmVyL2x5bnFfaW5uZXJfbG9nX3RyYW5zZmVyLnNoCkBAIC0xMjksNyArMTI5LDYgQEAKIHFfbWF4X3NpemVfdWNpPSIiCiAKIAotCiBUQVJfQ01EPSJnemlwIgogVEFSX0FSRz0iIC1mIgogVEFSX0VYVD0iZ3oiCkBAIC0xNDYsNiArMTQ1LDc4IEBACiAgICAgbWtkaXIgLXAgJHtDT05UUk9MX0ZJTEVfUEFUSH0KIGZpCiAKKyNncHNsb2cgdHJhbnNmZXIgdG8gc29jIGJlZ2luQGN6LmxpLDIwMjQwMzE0CitHUFNfTE9HX1BBVEg9IiR7VE1QX0xPR19QQVRIfWdwcy8iCitHUFNfQ09GX1BBVEg9Ii9ldGMvZ25zcy9tbmwucHJvcCIKK0VYSVNUX0dQU19OVU09MAorRVhJU1RfR1BTX05VTV9NQVg9MTgwCitHUFNfTE9HX0RFTD0kKCgkRVhJU1RfR1BTX05VTV9NQVgvMikpCisKK2Z1bmN0aW9uIGdldF9ncHNsb2dfZGVsX251bSgpCit7CQorICAgIGlmIFsgJDEgLWx0ICQoKCR7Mn0vMikpIF07IHRoZW4KKyAgICAgICAgR1BTX0xPR19ERUw9JCgoJHsxfSskezJ9LzIpKQorICAgIGVsc2UKKwkgICAgR1BTX0xPR19ERUw9JCgoJHsxfS0kezJ9LzIpKQorICAgIGZpCit9CisKK2Z1bmN0aW9uIGRvX2dwc2xvZ19udW1fcGx1cygpCit7CisgICAgKChFWElTVF9HUFNfTlVNKyspKQorICAgIGlmIFsgJEVYSVNUX0dQU19OVU0gLWd0ICRFWElTVF9HUFNfTlVNX01BWCBdOyB0aGVuCisgICAgICAgIEVYSVNUX0dQU19OVU09MAorICAgIGZpCit9CisKK2Z1bmN0aW9uIGRvX2dwc19sb2dfdHJhbnNmZXIoKQoreworICAgIGNkICR7R1BTX0xPR19QQVRIfQorICAgIGdwc2xvZ19wcmVmaXg9Imdwc2xvZyIKKyAgICBmb3IgZmlsZV9uYW1lIGluICouIiQxIjsgZG8gCisgICAgICAgIGdwc19uZXdfZmlsZV9uYW1lPSR7Z3BzbG9nX3ByZWZpeH1fJHtFWElTVF9HUFNfTlVNfS4kMSAgICAKKyAgICAgICAgaWYgWyAtZSAiJGZpbGVfbmFtZSIgXTsgdGhlbiAgICAgICAgCQkgICAKKyAgICAgICAgICAgIG12ICRmaWxlX25hbWUgJEdQU19MT0dfUEFUSCR7Z3BzX25ld19maWxlX25hbWV9CisgICAgICAgICAgICBnZXRfZ3BzbG9nX2RlbF9udW0gJEVYSVNUX0dQU19OVU0gJEVYSVNUX0dQU19OVU1fTUFYCisgICAgICAgICAgICBmdHBfZGVsZXRlX2ZpbGUgJHtncHNsb2dfcHJlZml4fV8ke0dQU19MT0dfREVMfS4kVEFSX0VYVAorICAgICAgICAgICAgZnRwX3RyYW5zZmVyX2ZpbGVfdGhlbl9kZWxldGUgJHtncHNfbmV3X2ZpbGVfbmFtZX0gICAgMSAKKyAgICAgICAgICAgIGRvX2dwc2xvZ19udW1fcGx1cyAgICAgCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBmaSAgICAKKyAgICBkb25lICAgICAKK30KKworZnVuY3Rpb24gZ3BzX2luaXRfY29uZigpCit7CisgICAgZWNobyAiZGVidWcuZGJnMmZpbGU9MSIgPiAkR1BTX0NPRl9QQVRICisgICAgZWNobyAiZGVidWcuZmlsZW5hbWU9JHtHUFNfTE9HX1BBVEh9Z3BzZGVidWcubG9nIiA+PiAkR1BTX0NPRl9QQVRICisgICAgZWNobyAiREJHTE9HX0ZJTEVfTUFYPTUyNDI4ODAiID4+ICRHUFNfQ09GX1BBVEgKKyAgICBlY2hvICJEQkdMT0dfRk9MREVSX01BWD0xMDQ4NTc2MCIgPj4gJEdQU19DT0ZfUEFUSAorfQorCitmdW5jdGlvbiBpbml0X2dwc2xvZygpCit7CisgICAgdGFyZ2V0PSJEQkdMT0dfRklMRV9NQVg9NTI0Mjg4MCIKKyAgICBzaWduPTAKKyAgICBpZiBbICEgLWUgJHtHUFNfQ09GX1BBVEh9IF07IHRoZW4KKyAgICAgICAgZ3BzX2luaXRfY29uZgorICAgIGVsc2UKKyAgICB3aGlsZSBJRlM9IHJlYWQgLXIgbGluZSB8fCBbIC1uICIkbGluZSIgXTsgZG8KKyAgICAgICAgaWYgW1sgJGxpbmUgPT0gKiIkdGFyZ2V0IiogXV07IHRoZW4KKyAgICAgICAgICAgIHNpZ249MQorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZmkKKyAgICBkb25lIDwgJHtHUFNfQ09GX1BBVEh9CisKKyAgICAgICAgaWYgWyAkc2lnbiAtZXEgMCBdOyB0aGVuCisgICAgICAgICAgICBncHNfaW5pdF9jb25mCisgICAgICAgICAgICBlY2hvX2RlYnVnX2luZm8gImdwcyBsb2cgZmlsZSBzaXplIGlzIGNoYW5nZWQgIHRvIDVNIiAKKyAgICAgICAgZmkKKyAgICBmaQorfQorI2dwc2xvZyB0cmFuc2ZlciB0byBzb2MgZW5kQGN6LmxpLDIwMjQwMzE0CisKIGZ1bmN0aW9uIGNsZWFyX3JlbGF0aXZlX3RhZygpCiB7ICAgICAgCiAgICAgbGVuZ3RoPSR7I3RyYW5zZmVyX2xvZ190YWdbQF19CkBAIC0xNTQsNyArMjI1LDEwIEBACiAgICAgZG8KICAgICAgICAgaWYgWyAke3RyYW5zZmVyX2xvZ190YWdbJGldfSAtZXEgMSBdOyB0aGVuICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmIFsgJGkgLWVxIDAgXTsgdGhlbiAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgcm0gLXJmICRTWVNfTE9HX1BBVEgkbG9nX3ByZWZpeCogICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIHJtIC1yZiAkU1lTX0xPR19QQVRIJGxvZ19wcmVmaXgqIAorICAgICAgICAgICAgICAgICNncHNsb2cgdHJhbnNmZXIgdG8gc29jIGJlZ2luQGN6LmxpLDIwMjQwMzE0CisgICAgICAgICAgICAgICAgcm0gLXJmICR7R1BTX0xPR19QQVRIfSAgICAgCisgICAgICAgICAgICAgICAgI2dwc2xvZyB0cmFuc2ZlciB0byBzb2MgZW5kQGN6LmxpLDIwMjQwMzE0ICAgICAgICAgICAgCiAgICAgICAgICAgICBlbGlmIFsgJGkgLWVxIDEgXTsgdGhlbgogICAgICAgICAgICAgICAgIGVjaG8gNyB8IGVtZGxvZ2dlcl9jdHJsICAgICAgICAKICAgICAgICAgICAgICAgICBybSAtcmYgJE1US19MT0dfUEFUSCoKQEAgLTQ3Nyw3ICs1NTEsMTMgQEAKIHsKICAgICBpZiBbICQxIC1lcSAwIF07IHRoZW4gICAgICAgIAogICAgICAgICBkb19zeXNfbG9nX3RyYW5zZmVyICJzeXNsb2cubG9nIgotICAgICAgICBlY2hvICIiID4gJHtTWVNfTE9HX1BBVEh9L3N5c2xvZy5sb2cgCisgICAgICAgIGVjaG8gIiIgPiAke1NZU19MT0dfUEFUSH0vc3lzbG9nLmxvZworICAgICAgICAjZ3BzbG9nIHRyYW5zZmVyIHRvIHNvYyBiZWdpbkBjei5saSwyMDI0MDMxNAorICAgICAgICBpZiBbIC1kICR7R1BTX0xPR19QQVRIfSBdOyB0aGVuCisgICAgICAgICAgICBkb19ncHNfbG9nX3RyYW5zZmVyICJubWEiIAorICAgICAgICAgICAgZG9fZ3BzX2xvZ190cmFuc2ZlciAiY3VyZiIgCisgICAgICAgIGZpCisgICAgICAgICNncHNsb2cgdHJhbnNmZXIgdG8gc29jIGVuZEBjei5saSwyMDI0MDMxNAogICAgIGVsaWYgWyAkMSAtZXEgMSBdOyAKICAgICB0aGVuCiAgICAgICAgIGRvX210a19sb2dfdHJhbnNmZXIgIm11eHoiCkBAIC00ODksMTIgKzU2OSwxNSBAQAogICAgIGZpICAgIAogfQogCi0KLQogZnVuY3Rpb24gZG9fbG9nX3RyYW5zZmVyKCkKIHsKLSAgICBpZiBbICQxIC1lcSAwIF07IHRoZW4gICAgICAgIAorICAgIGlmIFsgJDEgLWVxIDAgXTsgdGhlbgogICAgICAgICBkb19zeXNfbG9nX3RyYW5zZmVyCisgICAgICAgICNncHNsb2cgdHJhbnNmZXIgdG8gc29jIGJlZ2luQGN6LmxpLDIwMjQwMzE0CisgICAgICAgIGlmIFsgLWQgJHtHUFNfTE9HX1BBVEh9IF07IHRoZW4gCisgICAgICAgICAgICBkb19ncHNfbG9nX3RyYW5zZmVyICJubWEiCisgICAgICAgIGZpCisgICAgICAgICNncHNsb2cgdHJhbnNmZXIgdG8gc29jIGVuZEBjei5saSwyMDI0MDMxNAogICAgIGVsaWYgWyAkMSAtZXEgMSBdOyAKICAgICB0aGVuCiAgICAgICAgIGRvX210a19sb2dfdHJhbnNmZXIgIm11eHoiCkBAIC02MzUsNyArNzE4LDExIEBACiAKIGZ1bmN0aW9uIGxvb3BfcHJlcGFyZSgpCiB7Ci0gICAgaWYgWyAkMSAtZXEgMSBdOyB0aGVuCisgICAgI2dwc2xvZyB0cmFuc2ZlciB0byBzb2MgYmVnaW5AY3oubGksMjAyNDAzMTQKKyAgICBpZiBbICQxIC1lcSAwIF07IHRoZW4KKyAgICAgICAgaW5pdF9ncHNsb2cKKyAgICAjZ3BzbG9nIHRyYW5zZmVyIHRvIHNvYyBlbmRAY3oubGksMjAyNDAzMTQKKyAgICBlbGlmIFsgJDEgLWVxIDEgXTsgdGhlbgogICAgICAgICBlY2hvIDYgfCBlbWRsb2dnZXJfY3RybAogICAgICAgICBpZiBbICQ/IC1uZSAwIF07IHRoZW4gCiAgICAgICAgICAgICBlY2hvX2RlYnVnX2luZm8gInN0YXJ0IG10ayBsb2cgZmFpbCIKQEAgLTY5OCw4ICs3ODUsMTIgQEAKICAgICBpZiBbIC1lICR7V0FJVF9UUkFOU0ZFUl9SRU1BSU5fTE9HWyRpbmRleF19IF07IHRoZW4gICAgICAgICAgICAgICAgCiAgICAgICAgIGV4aXRfcHJvY2VzcyAkKChFUlJPUl9JU19JTl9UUkFOU0ZFUl9MT0crJHtpbmRleH0qNSsyICkpCiAgICAgZmkgICAgICAgICAgCi0gICAgCi0gICAgaWYgWyAkaW5kZXggLWVxIDEgXTsgdGhlbgorICAgICNncHNsb2cgdHJhbnNmZXIgdG8gc29jIGJlZ2luQGN6LmxpLDIwMjQwMzE0CisgICAgaWYgWyAkaW5kZXggLWVxIDAgXTsgdGhlbgorICAgICAgICAjQmVjYXVzZSB0aGUgR1BTIHByb2Nlc3MgY2Fubm90IGR5bmFtaWNhbGx5IHN0b3AgbG9nIG91dHB1dCwke0dQU19MT0dfUEFUSH0gbmVlZHMgdG8gYmUgZGVsZXRlZCBpbiBvcmRlciB0byBleGl0IHRoZSBsb2cKKyAgICAgICAgcm0gLXJmICR7R1BTX0xPR19QQVRIfQorICAgICNncHNsb2cgdHJhbnNmZXIgdG8gc29jIGVuZEBjei5saSwyMDI0MDMxNAorICAgIGVsaWYgWyAkaW5kZXggLWVxIDEgXTsgdGhlbgogICAgICAgICBlY2hvIDcgfCBlbWRsb2dnZXJfY3RybAogICAgIGVsaWYgWyAkaW5kZXggLWVxIDIgXTsgdGhlbgogICAgICAgICBzaG93X3JlbGF0aXZlX3RhZwpAQCAtNzMzLDcgKzgyNCw3IEBACiB7CiAgICAgaW5kZXg9JDIKICAgICBpZiBbICRpbmRleCAtZXEgMSBdOyB0aGVuCi0gICAgICAgICPG9LavZGVidWcKKyAgICAgICAgIyBhY3RpdmF0ZSAgZGVidWcKICAgICAgICAgdHJpZ2dlcl9sb2dfdHJhbnNmZXIgMyAgCiAgICAgICAgIGluaXRfbWRfbG9nCiAgICAgZmkJCg==