ZGlmZiAtLWdpdCBhL2FwL2FwcC9pbmNsdWRlL2ZsYWdzX2FwaS5oIGIvYXAvYXBwL2luY2x1ZGUvZmxhZ3NfYXBpLmgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjhjY2RhZAotLS0gL2Rldi9udWxsCisrKyBiL2FwL2FwcC9pbmNsdWRlL2ZsYWdzX2FwaS5oCkBAIC0wLDAgKzEsOTggQEAKKy8qKgorICogQGZpbGUgZmxhZ3NfYXBpLmgKKyAqIEBicmllZiBmbGFnc7fWx/i907/aCisgKgorICogQ29weXJpZ2h0IChDKSAyMDIzIFNhbmVjaGlwcyBUZWNobm9sb2d5IENvLiwgTHRkLgorICogQGF1dGhvciAKKyAqIEBpbmdyb3VwIAorICogCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiCjqLHY0aGjukdQTHYyIExpY2VuY2WjqQorICoKKyAqLworCisKKyNpZm5kZWYgRkxBR1NfQVBJX0gKKyNkZWZpbmUgRkxBR1NfQVBJX0gKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgICAgICBJbmNsdWRlIGhlYWRlciBmaWxlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisjaW5jbHVkZSAicHViX2ZsYWdzLmgiCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYWNybyBkZWZpbml0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSBkZWZpbml0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICogICAgICAgICAgICAgICAgICAgICAgIEdsb2JhbCB2YXJpYWJsZSBkZWNsYXJhdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqICAgICAgICAgICAgICAgICAgICAgICBHbG9iYWwgZnVuY3Rpb24gZGVjbGFyYXRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyoqCisgKiBAYnJpZWYgILP1yry7r2ZsYWdzt9bH+AorICogQHBhcmFtW291dF0gIHBfZmxhZ3NfaW5mbyAgZmxhZ3Oz9cq8u6/K/b7dCisgKiBAcmV0dXJuICAwILP1yry7r7PJuaYsIC0xILP1yry7r8qnsNwKKyAqIEBub3RlCisgKi8KK2ludCBmbGFnc19pbml0KCk7CisKKworLyoqCisgKiBAYnJpZWYgILvxyKFmbGFnc7fWx/jE2sjdCisgKiBAcGFyYW1bb3V0XSAgcF9mbGFnc19pbmZvICBmbGFnc7fWx/jE2sjdCisgKiBAcmV0dXJuICAwILvxyKGzybmmLCAtMSC78cihyqew3AorICogQG5vdGUKKyAqLworaW50IGZsYWdzX2dldChUX0ZMQUdTX0lORk8gKnBfZmxhZ3NfaW5mbyk7CisKKworLyoqCisgKiBAYnJpZWYgIMno1sNmbGFnc7fWx/jE2sjdCisgKiBAcGFyYW1bb3V0XSAgcF9mbGFnc19pbmZvICBmbGFnc7fWx/jE2sjdCisgKiBAcmV0dXJuICAwIMno1sOzybmmLCAtMSDJ6NbDyqew3AorICogQG5vdGUKKyAqLworaW50IGZsYWdzX3NldChUX0ZMQUdTX0lORk8gKnBfZmxhZ3NfaW5mbyk7CisKKworLyoqCisgKiBAYnJpZWYgILvxyKFmbGFnc7fWx/jW0HViaWZz17TMrAorICogQHBhcmFtW291dF0gIHN0YXR1cyAgdWJpZnPXtMysCisgKiBAcmV0dXJuICAwILvxyKGzybmmLCAtMSC78cihyqew3AorICogQG5vdGUKKyAqLworaW50IGZsYWdzX2dldF91Ymlmc19zdGF0dXMoVF9VQklGU19TVEFUVVMgKnBfdWJpZnNfc3RhdHVzKTsKKworCisvKioKKyAqIEBicmllZiAgyejWw2ZsYWdzt9bH+NbQdWJpZnPXtMysCisgKiBAcGFyYW1baW5dICBzdGF0dXMgIHViaWZz17TMrAorICogQHJldHVybiAgMCDJ6NbDs8m5piwgLTEgyejWw8qnsNwKKyAqIEBub3RlCisgKi8KK2ludCBmbGFnc19zZXRfdWJpZnNfc3RhdHVzKFRfVUJJRlNfU1RBVFVTICpwX3ViaWZzX3N0YXR1cyk7CisKKworLyoqCisgKiBAYnJpZWYgILvxyKG1scewz7XNsworICogQHJldHVybiAgtbHHsNTL0NDPtc2zCisgKiBAbm90ZQorICovCitpbnQgZmxhZ3NfZ2V0X2N1cnJlbnRfc3lzdGVtKCk7CisKKworI2VuZGlmIC8vIEZMQUdTX0FQSV9ICisK