ZGlmZiAtLWdpdCBhL2NvcmUvc3JjL2ZwZGZhcGkvZnBkZl9wYWdlL2ZwZGZfcGFnZV9mdW5jLmNwcCBiL2NvcmUvc3JjL2ZwZGZhcGkvZnBkZl9wYWdlL2ZwZGZfcGFnZV9mdW5jLmNwcAppbmRleCBlNjkxZjNhLi5mMTE1YjY3IDEwMDY0NAotLS0gYS9jb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFnZS9mcGRmX3BhZ2VfZnVuYy5jcHAKKysrIGIvY29yZS9zcmMvZnBkZmFwaS9mcGRmX3BhZ2UvZnBkZl9wYWdlX2Z1bmMuY3BwCkBAIC00NDksOCArNDQ5LDcgQEAKICAgICB2aXJ0dWFsIEZYX0JPT0wJCXZfQ2FsbChGWF9GTE9BVCogaW5wdXRzLCBGWF9GTE9BVCogcmVzdWx0cykgY29uc3Q7CiAgICAgU2FtcGxlRW5jb2RlSW5mbyoJbV9wRW5jb2RlSW5mbzsKICAgICBTYW1wbGVEZWNvZGVJbmZvKgltX3BEZWNvZGVJbmZvOwotICAgIEZYX0RXT1JECW1fbkJpdHNQZXJTYW1wbGU7Ci0gICAgRlhfRFdPUkQJbV9TYW1wbGVNYXg7CisgICAgRlhfRFdPUkQJbV9uQml0c1BlclNhbXBsZSwgbV9TYW1wbGVNYXg7CiAgICAgQ1BERl9TdHJlYW1BY2MqCW1fcFNhbXBsZVN0cmVhbTsKIH07CiBDUERGX1NhbXBsZWRGdW5jOjpDUERGX1NhbXBsZWRGdW5jKCkKQEAgLTQ4MCw5ICs0NzksNiBAQAogICAgIENQREZfQXJyYXkqIHBFbmNvZGUgPSBwRGljdC0+R2V0QXJyYXkoRlhfQlNUUkMoIkVuY29kZSIpKTsKICAgICBDUERGX0FycmF5KiBwRGVjb2RlID0gcERpY3QtPkdldEFycmF5KEZYX0JTVFJDKCJEZWNvZGUiKSk7CiAgICAgbV9uQml0c1BlclNhbXBsZSA9IHBEaWN0LT5HZXRJbnRlZ2VyKEZYX0JTVFJDKCJCaXRzUGVyU2FtcGxlIikpOwotICAgIGlmIChtX25CaXRzUGVyU2FtcGxlID4gMzIpIHsKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgIH0KICAgICBtX1NhbXBsZU1heCA9IDB4ZmZmZmZmZmYgPj4gKDMyIC0gbV9uQml0c1BlclNhbXBsZSk7CiAgICAgbV9wU2FtcGxlU3RyZWFtID0gbmV3IENQREZfU3RyZWFtQWNjOwogICAgIG1fcFNhbXBsZVN0cmVhbS0+TG9hZEFsbERhdGEocFN0cmVhbSwgRkFMU0UpOwpAQCAtNTU3LDIzICs1NTMsMjAgQEAKICAgICAgICAgfQogICAgICAgICBwb3MgKz0gaW5kZXhbaV0gKiBibG9ja3NpemVbaV07CiAgICAgfQotICAgIEZYX1NBRkVfSU5UMzIgYml0c190b19vdXRwdXQgPSBtX25PdXRwdXRzOwotICAgIGJpdHNfdG9fb3V0cHV0ICo9IG1fbkJpdHNQZXJTYW1wbGU7Ci0gICAgaWYgKCFiaXRzX3RvX291dHB1dC5Jc1ZhbGlkKCkpIHsKLSAgICAgICAgcmV0dXJuIEZBTFNFOwotICAgIH0KICAgICBGWF9TQUZFX0lOVDMyIGJpdHBvcyA9IHBvczsKLSAgICBiaXRwb3MgKj0gYml0c190b19vdXRwdXQuVmFsdWVPckRpZSgpOworICAgIGJpdHBvcyAqPSBtX25CaXRzUGVyU2FtcGxlOworICAgIGJpdHBvcyAqPSBtX25PdXRwdXRzOwogICAgIGlmICghYml0cG9zLklzVmFsaWQoKSkgewogICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQotICAgIEZYX1NBRkVfSU5UMzIgcmFuZ2VfY2hlY2sgPSBiaXRwb3M7Ci0gICAgcmFuZ2VfY2hlY2sgKz0gYml0c190b19vdXRwdXQuVmFsdWVPckRpZSgpOwotICAgIGlmICghcmFuZ2VfY2hlY2suSXNWYWxpZCgpKSB7CisgICAgY29uc3QgdWludDhfdCogcFNhbXBsZURhdGEgPSBtX3BTYW1wbGVTdHJlYW0tPkdldERhdGEoKTsKKyAgICBpZiAocFNhbXBsZURhdGEgPT0gTlVMTCkgewogICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQotICAgIGNvbnN0IHVpbnQ4X3QqIHBTYW1wbGVEYXRhID0gbV9wU2FtcGxlU3RyZWFtLT5HZXREYXRhKCk7Ci0gICAgaWYgKCFwU2FtcGxlRGF0YSkgeworICAgIEZYX1NBRkVfSU5UMzIgYml0cG9zMSA9IG1fbk91dHB1dHMgLSAxID4gMCA/IG1fbk91dHB1dHMgLSAxIDogMDsKKyAgICBiaXRwb3MxICo9IG1fbkJpdHNQZXJTYW1wbGU7CisgICAgYml0cG9zMSArPSBiaXRwb3MuVmFsdWVPckRpZSgpOworICAgIGlmICghYml0cG9zMS5Jc1ZhbGlkKCkpIHsKICAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0KICAgICBmb3IgKGludCBqID0gMDsgaiA8IG1fbk91dHB1dHM7IGogKyspIHsKZGlmZiAtLWdpdCBhL2ZwZGZzZGsvc3JjL2ZwZGZ2aWV3X2VtYmVkZGVydGVzdC5jcHAgYi9mcGRmc2RrL3NyYy9mcGRmdmlld19lbWJlZGRlcnRlc3QuY3BwCmluZGV4IDYwYzE0YjMuLmNjMGFhMWYgMTAwNjQ0Ci0tLSBhL2ZwZGZzZGsvc3JjL2ZwZGZ2aWV3X2VtYmVkZGVydGVzdC5jcHAKKysrIGIvZnBkZnNkay9zcmMvZnBkZnZpZXdfZW1iZWRkZXJ0ZXN0LmNwcApAQCAtMTk3LDEzICsxOTcsNiBAQAogICBVbmxvYWRQYWdlKHBhZ2UpOwogfQogCi1URVNUX0YoRlBERlZpZXdFbWJlZGRlcnRlc3QsIENyYXNoZXJfNDU0Njk1KSB7CitURVNUX0YoRlBERlZpZXdFbWJlZGRlcnRlc3QsIENyYXNoZXIzKSB7CiAgIEVYUEVDVF9UUlVFKE9wZW5Eb2N1bWVudCgidGVzdGluZy9yZXNvdXJjZXMvYnVnXzQ1NDY5NS5wZGYiKSk7CiB9Ci0KLVRFU1RfRihGUERGVmlld0VtYmVkZGVydGVzdCwgQ3Jhc2hlcl80NzE5OTApIHsKLSAgRVhQRUNUX1RSVUUoT3BlbkRvY3VtZW50KCJ0ZXN0aW5nL3Jlc291cmNlcy9idWdfNDcxOTkwLnBkZiIpKTsKLSAgRlBERl9QQUdFIHBhZ2UgPSBMb2FkUGFnZSgwKTsKLSAgRVhQRUNUX05FKG51bGxwdHIsIHBhZ2UpOwotICBVbmxvYWRQYWdlKHBhZ2UpOwotfQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzQ3MTk5MC5pbiBiL3Rlc3RpbmcvcmVzb3VyY2VzL2J1Z180NzE5OTAuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc0MjU0MDUuLjAwMDAwMDAKLS0tIGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzQ3MTk5MC5pbgorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLXt7aGVhZGVyfX0KLXt7b2JqZWN0IDEgMH19IDw8Ci0gIC9UeXBlIC9DYXRhbG9nCi0gIC9QYWdlcyAyIDAgUgotPj4KLWVuZG9iagote3tvYmplY3QgMiAwfX0gPDwKLSAgL1R5cGUgL1BhZ2VzCi0gIC9LaWRzIFsxMCAwIFJdCi0gIC9Db3VudCAxCi0+Pgote3tvYmplY3QgMTAgMH19IDw8Ci0gIC9UeXBlIC9QYWdlCi0gIC9QYXJlbnQgMiAwIFIKLSAgL1Jlc291cmNlcyA8PAotICAgIC9Db2xvclNwYWNlIDw8Ci0gICAgICAvY3MxIDIwIDAgUgotICAgID4+Ci0gID4+Ci0gIC9Db250ZW50cyAzMCAwIFIKLSAgL01lZGlhQm94IFswIDAgODQyIDExOTFdCi0gIC9Dcm9wQm94IFsxMjMuMzA3IDE5OC40MjUgNzE4LjY5MyA5OTIuNTc1XQotPj4KLWVuZG9iagote3tvYmplY3QgMjAgMH19IFsKLSAgL1NlcGFyYXRpb24gL0FsbAotICAvRGV2aWNlQ01ZSyAyMSAwIFIKLV0KLWVuZG9iagote3tvYmplY3QgMjEgMH19IDw8Ci0gIC9GdW5jdGlvblR5cGUgMAotICAvQml0c1BlclNhbXBsZSA1MzY4NzA5MTAKLSAgL1JhbmdlIFswIDEgMCAxIDAgMSAwIDFdCi0gIC9EZWNvZGUgWzAgMSAwIDEgMCAxIDAgMV0KLSAgL0xlbmd0aCAxMDczNzQxODIzCi0gIC9FbmNvZGUgWzAgMV0KLSAgL0RvbWFpbiBbMCAxXQotICAvU2l6ZSBbMl0KLT4+Ci1zdHJlYW0KLWVuZHN0cmVhbQotZW5kb2JqCi17e29iamVjdCAzMCAwfX0gPDwKLT4+Ci1zdHJlYW0KLS9jczEgY3MKLTAgc2NuCi1lbmRzdHJlYW0KLWVuZG9iagote3t4cmVmfX0KLXRyYWlsZXIgPDwKLSAgL1Jvb3QgMSAwIFIKLSAgL1NpemUgMzAKLT4+Ci17e3N0YXJ0eHJlZn19Ci0lJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzQ3MTk5MC5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNDcxOTkwLnBkZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ4YTNlMi4uMDAwMDAwMAotLS0gYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNDcxOTkwLnBkZgorKysgL2Rldi9udWxsCkBAIC0xLDkwICswLDAgQEAKLSVQREYtMS43Ci0loPKk9AotMSAwIG9iaiA8PAotICAvVHlwZSAvQ2F0YWxvZwotICAvUGFnZXMgMiAwIFIKLT4+Ci1lbmRvYmoKLTIgMCBvYmogPDwKLSAgL1R5cGUgL1BhZ2VzCi0gIC9LaWRzIFsxMCAwIFJdCi0gIC9Db3VudCAxCi0+PgotMTAgMCBvYmogPDwKLSAgL1R5cGUgL1BhZ2UKLSAgL1BhcmVudCAyIDAgUgotICAvUmVzb3VyY2VzIDw8Ci0gICAgL0NvbG9yU3BhY2UgPDwKLSAgICAgIC9jczEgMjAgMCBSCi0gICAgPj4KLSAgPj4KLSAgL0NvbnRlbnRzIDMwIDAgUgotICAvTWVkaWFCb3ggWzAgMCA4NDIgMTE5MV0KLSAgL0Nyb3BCb3ggWzEyMy4zMDcgMTk4LjQyNSA3MTguNjkzIDk5Mi41NzVdCi0+PgotZW5kb2JqCi0yMCAwIG9iaiBbCi0gIC9TZXBhcmF0aW9uIC9BbGwKLSAgL0RldmljZUNNWUsgMjEgMCBSCi1dCi1lbmRvYmoKLTIxIDAgb2JqIDw8Ci0gIC9GdW5jdGlvblR5cGUgMAotICAvQml0c1BlclNhbXBsZSA1MzY4NzA5MTAKLSAgL1JhbmdlIFswIDEgMCAxIDAgMSAwIDFdCi0gIC9EZWNvZGUgWzAgMSAwIDEgMCAxIDAgMV0KLSAgL0xlbmd0aCAxMDczNzQxODIzCi0gIC9FbmNvZGUgWzAgMV0KLSAgL0RvbWFpbiBbMCAxXQotICAvU2l6ZSBbMl0KLT4+Ci1zdHJlYW0KLWVuZHN0cmVhbQotZW5kb2JqCi0zMCAwIG9iaiA8PAotPj4KLXN0cmVhbQotL2NzMSBjcwotMCBzY24KLWVuZHN0cmVhbQotZW5kb2JqCi14cmVmCi0wIDMxCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDE1IDAwMDAwIG4gCi0wMDAwMDAwMDY4IDAwMDAwIG4gCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMTI1IDAwMDAwIG4gCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMzMzIDAwMDAwIG4gCi0wMDAwMDAwMzkzIDAwMDAwIG4gCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwMDAwIDY1NTM1IGYgCi0wMDAwMDAwNTk3IDAwMDAwIG4gCi10cmFpbGVyIDw8Ci0gIC9Sb290IDEgMCBSCi0gIC9TaXplIDMwCi0+Pgotc3RhcnR4cmVmCi02NTAKLSUlRU9GCg==