ZGlmZiAtLWdpdCBhL0JVSUxELmduIGIvQlVJTEQuZ24KaW5kZXggYTlkNThhMS4uNWI1YTFiMSAxMDA2NDQKLS0tIGEvQlVJTEQuZ24KKysrIGIvQlVJTEQuZ24KQEAgLTc0OCw2ICs3NDgsNyBAQAogICAgICJjb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFnZS9mcGRmX3BhZ2VfZnVuY19lbWJlZGRlcnRlc3QuY3BwIiwKICAgICAiY29yZS9zcmMvZnBkZmFwaS9mcGRmX3BhcnNlci9mcGRmX3BhcnNlcl9kZWNvZGVfZW1iZWRkZXJ0ZXN0LmNwcCIsCiAgICAgImNvcmUvc3JjL2ZwZGZhcGkvZnBkZl9wYXJzZXIvZnBkZl9wYXJzZXJfcGFyc2VyX2VtYmVkZGVydGVzdC5jcHAiLAorICAgICJjb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcmVuZGVyL2ZwZGZfcmVuZGVyX2xvYWRfaW1hZ2VfZW1iZWRkZXJ0ZXN0LmNwcCIsCiAgICAgImNvcmUvc3JjL2ZwZGZhcGkvZnBkZl9yZW5kZXIvZnBkZl9yZW5kZXJfcGF0dGVybl9lbWJlZGRlcnRlc3QuY3BwIiwKICAgICAiZnBkZnNkay9zcmMvZnBkZl9kYXRhYXZhaWxfZW1iZWRkZXJ0ZXN0LmNwcCIsCiAgICAgImZwZGZzZGsvc3JjL2ZwZGZkb2NfZW1iZWRkZXJ0ZXN0LmNwcCIsCmRpZmYgLS1naXQgYS9jb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcmVuZGVyL2ZwZGZfcmVuZGVyX2xvYWRpbWFnZS5jcHAgYi9jb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcmVuZGVyL2ZwZGZfcmVuZGVyX2xvYWRpbWFnZS5jcHAKaW5kZXggZjZmNDFkOS4uNGZjNmQ3NiAxMDA2NDQKLS0tIGEvY29yZS9zcmMvZnBkZmFwaS9mcGRmX3JlbmRlci9mcGRmX3JlbmRlcl9sb2FkaW1hZ2UuY3BwCisrKyBiL2NvcmUvc3JjL2ZwZGZhcGkvZnBkZl9yZW5kZXIvZnBkZl9yZW5kZXJfbG9hZGltYWdlLmNwcApAQCAtMTksNyArMTksOSBAQAogCiBuYW1lc3BhY2UgewogCi11bnNpZ25lZCBpbnQgX0dldEJpdHM4KGNvbnN0IHVpbnQ4X3QqIHBEYXRhLCBpbnQgYml0cG9zLCBpbnQgbmJpdHMpIHsKK3Vuc2lnbmVkIGludCBHZXRCaXRzOChjb25zdCB1aW50OF90KiBwRGF0YSwgdWludDY0X3QgYml0cG9zLCBzaXplX3QgbmJpdHMpIHsKKyAgQVNTRVJUKG5iaXRzID09IDEgfHwgbmJpdHMgPT0gMiB8fCBuYml0cyA9PSA0IHx8IG5iaXRzID09IDggfHwgbmJpdHMgPT0gMTYpOworICBBU1NFUlQoKGJpdHBvcyAmIChuYml0cyAtIDEpKSA9PSAwKTsKICAgdW5zaWduZWQgaW50IGJ5dGUgPSBwRGF0YVtiaXRwb3MgLyA4XTsKICAgaWYgKG5iaXRzID09IDgpIHsKICAgICByZXR1cm4gYnl0ZTsKQEAgLTk5MywxMSArOTk1LDExIEBACiAgICAgICAgICAgaW50IHNyY19iaXRfcG9zID0gMDsKICAgICAgICAgICBpbnQgZGVzdF9ieXRlX3BvcyA9IDA7CiAgICAgICAgICAgZm9yIChpbnQgY29sdW1uID0gMDsgY29sdW1uIDwgbV9XaWR0aDsgY29sdW1uKyspIHsKLSAgICAgICAgICAgIGludCBSID0gX0dldEJpdHM4KHNyY19zY2FuLCBzcmNfYml0X3BvcywgbV9icGMpOworICAgICAgICAgICAgaW50IFIgPSBHZXRCaXRzOChzcmNfc2Nhbiwgc3JjX2JpdF9wb3MsIG1fYnBjKTsKICAgICAgICAgICAgIHNyY19iaXRfcG9zICs9IG1fYnBjOwotICAgICAgICAgICAgaW50IEcgPSBfR2V0Qml0czgoc3JjX3NjYW4sIHNyY19iaXRfcG9zLCBtX2JwYyk7CisgICAgICAgICAgICBpbnQgRyA9IEdldEJpdHM4KHNyY19zY2FuLCBzcmNfYml0X3BvcywgbV9icGMpOwogICAgICAgICAgICAgc3JjX2JpdF9wb3MgKz0gbV9icGM7Ci0gICAgICAgICAgICBpbnQgQiA9IF9HZXRCaXRzOChzcmNfc2Nhbiwgc3JjX2JpdF9wb3MsIG1fYnBjKTsKKyAgICAgICAgICAgIGludCBCID0gR2V0Qml0czgoc3JjX3NjYW4sIHNyY19iaXRfcG9zLCBtX2JwYyk7CiAgICAgICAgICAgICBzcmNfYml0X3BvcyArPSBtX2JwYzsKICAgICAgICAgICAgIFIgPSBOT1JNQUxDT0xPUl9NQVgoUiwgbWF4X2RhdGEpOwogICAgICAgICAgICAgRyA9IE5PUk1BTENPTE9SX01BWChHLCBtYXhfZGF0YSk7CkBAIC0xMDUxLDcgKzEwNTMsNyBAQAogICAgIGludCBkZXN0X2J5dGVfcG9zID0gMDsKICAgICBmb3IgKGludCBjb2x1bW4gPSAwOyBjb2x1bW4gPCBtX1dpZHRoOyBjb2x1bW4rKykgewogICAgICAgZm9yIChGWF9EV09SRCBjb2xvciA9IDA7IGNvbG9yIDwgbV9uQ29tcG9uZW50czsgY29sb3IrKykgewotICAgICAgICBpbnQgZGF0YSA9IF9HZXRCaXRzOChzcmNfc2Nhbiwgc3JjX2JpdF9wb3MsIG1fYnBjKTsKKyAgICAgICAgaW50IGRhdGEgPSBHZXRCaXRzOChzcmNfc2Nhbiwgc3JjX2JpdF9wb3MsIG1fYnBjKTsKICAgICAgICAgY29sb3JfdmFsdWVzW2NvbG9yXSA9IG1fcENvbXBEYXRhW2NvbG9yXS5tX0RlY29kZU1pbiArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3BDb21wRGF0YVtjb2xvcl0ubV9EZWNvZGVTdGVwICogZGF0YTsKICAgICAgICAgc3JjX2JpdF9wb3MgKz0gbV9icGM7CkBAIC0xMTQ2LDcgKzExNDgsNyBAQAogICAgICAgZm9yIChpbnQgY29sID0gMDsgY29sIDwgbV9XaWR0aDsgY29sKyspIHsKICAgICAgICAgaW50IGNvbG9yX2luZGV4ID0gMDsKICAgICAgICAgZm9yIChGWF9EV09SRCBjb2xvciA9IDA7IGNvbG9yIDwgbV9uQ29tcG9uZW50czsgY29sb3IrKykgewotICAgICAgICAgIGludCBkYXRhID0gX0dldEJpdHM4KHBTcmNMaW5lLCBzcmNfYml0X3BvcywgbV9icGMpOworICAgICAgICAgIGludCBkYXRhID0gR2V0Qml0czgocFNyY0xpbmUsIHNyY19iaXRfcG9zLCBtX2JwYyk7CiAgICAgICAgICAgY29sb3JfaW5kZXggfD0gZGF0YSA8PCAoY29sb3IgKiBtX2JwYyk7CiAgICAgICAgICAgc3JjX2JpdF9wb3MgKz0gbV9icGM7CiAgICAgICAgIH0KQEAgLTEzNjgsNyArMTM3MCw3IEBACiAgICAgZm9yIChGWF9EV09SRCBjb2wgPSAwOyBjb2wgPCBzcmNfd2lkdGg7IGNvbCsrKSB7CiAgICAgICBpbnQgY29sb3JfaW5kZXggPSAwOwogICAgICAgZm9yIChGWF9EV09SRCBjb2xvciA9IDA7IGNvbG9yIDwgbV9uQ29tcG9uZW50czsgY29sb3IrKykgewotICAgICAgICBpbnQgZGF0YSA9IF9HZXRCaXRzOChwU3JjTGluZSwgc3JjX2JpdF9wb3MsIG1fYnBjKTsKKyAgICAgICAgaW50IGRhdGEgPSBHZXRCaXRzOChwU3JjTGluZSwgc3JjX2JpdF9wb3MsIG1fYnBjKTsKICAgICAgICAgY29sb3JfaW5kZXggfD0gZGF0YSA8PCAoY29sb3IgKiBtX2JwYyk7CiAgICAgICAgIHNyY19iaXRfcG9zICs9IG1fYnBjOwogICAgICAgfQpAQCAtMTQzMSw1OSArMTQzMyw2NiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGNsaXBfd2lkdGgpIGNvbnN0IHsKICAgaW50IGxhc3Rfc3JjX3ggPSAtMTsKICAgRlhfQVJHQiBsYXN0X2FyZ2IgPSBGWEFSR0JfTUFLRSgweEZGLCAweEZGLCAweEZGLCAweEZGKTsKLSAgRlhfRkxPQVQgb3JpZ19Ob3Q4QnBwID0gKEZYX0ZMT0FUKW1fYnBjICogKEZYX0ZMT0FUKW1fbkNvbXBvbmVudHMgLyA4LjBmOwogICBGWF9GTE9BVCB1bml0X1RvOEJwYyA9IDI1NS4wZiAvICgoMSA8PCBtX2JwYykgLSAxKTsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjbGlwX3dpZHRoOyBpKyspIHsKICAgICBpbnQgZGVzdF94ID0gY2xpcF9sZWZ0ICsgaTsKICAgICBGWF9EV09SRCBzcmNfeCA9IChiRmxpcFggPyAoZGVzdF93aWR0aCAtIGRlc3RfeCAtIDEpIDogZGVzdF94KSAqCiAgICAgICAgICAgICAgICAgICAgICAoaW50NjRfdClzcmNfd2lkdGggLyBkZXN0X3dpZHRoOwogICAgIHNyY194ICU9IHNyY193aWR0aDsKKworICAgIC8vIE5vIG5lZWQgdG8gY2hlY2sgZm9yIDMyLWJpdCBvdmVyZmxvdywgYXMgfHNyY194fCBpcyBib3VuZGVkIGJ5CisgICAgLy8gfHNyY193aWR0aHwgYW5kIERvd25TYW1wbGVTY2FubGluZSBhbHJlYWR5IGNoZWNrZWQgZm9yIG92ZXJmbG93IHdpdGggdGhlCisgICAgLy8gcGl0Y2ggY2FsY3VsYXRpb24uCiAgICAgY29uc3QgdWludDhfdCogcFNyY1BpeGVsID0gbnVsbHB0cjsKKyAgICBzaXplX3QgYml0X29mZnNldCA9IDA7CiAgICAgaWYgKG1fYnBjICUgOCA9PSAwKSB7CiAgICAgICBwU3JjUGl4ZWwgPSBwU3JjTGluZSArIHNyY194ICogb3JpZ19CcHA7CiAgICAgfSBlbHNlIHsKLSAgICAgIHBTcmNQaXhlbCA9IHBTcmNMaW5lICsgKGludCkoc3JjX3ggKiBvcmlnX05vdDhCcHApOworICAgICAgc2l6ZV90IG51bV9iaXRzID0gc3JjX3ggKiBtX2JwYyAqIG1fbkNvbXBvbmVudHM7CisgICAgICBwU3JjUGl4ZWwgPSBwU3JjTGluZSArIG51bV9iaXRzIC8gODsKKyAgICAgIGJpdF9vZmZzZXQgPSBudW1fYml0cyAlIDg7CiAgICAgfQorCiAgICAgdWludDhfdCogcERlc3RQaXhlbCA9IGRlc3Rfc2NhbiArIGkgKiBkZXN0X0JwcDsKICAgICBGWF9BUkdCIGFyZ2I7CiAgICAgaWYgKHNyY194ID09IGxhc3Rfc3JjX3gpIHsKICAgICAgIGFyZ2IgPSBsYXN0X2FyZ2I7CiAgICAgfSBlbHNlIHsKKyAgICAgIENGWF9GaXhlZEJ1Zkdyb3c8dWludDhfdCwgMTI4PiBleHRyYWN0ZWRfY29tcG9uZW50cyhtX25Db21wb25lbnRzKTsKKyAgICAgIGlmIChtX2JwYyAlIDggIT0gMCkgeworICAgICAgICB1aW50NjRfdCBzcmNfYml0X3BvcyA9IGJpdF9vZmZzZXQ7CisgICAgICAgIGZvciAoRlhfRFdPUkQgaiA9IDA7IGogPCBtX25Db21wb25lbnRzOyArK2opIHsKKyAgICAgICAgICBleHRyYWN0ZWRfY29tcG9uZW50c1tqXSA9CisgICAgICAgICAgICAgIEdldEJpdHM4KHBTcmNQaXhlbCwgc3JjX2JpdF9wb3MsIG1fYnBjKSAqIHVuaXRfVG84QnBjOworICAgICAgICAgIHNyY19iaXRfcG9zICs9IG1fYnBjOworICAgICAgICB9CisgICAgICAgIHBTcmNQaXhlbCA9IGV4dHJhY3RlZF9jb21wb25lbnRzOworICAgICAgfQorCiAgICAgICBpZiAobV9wQ29sb3JTcGFjZSkgewotICAgICAgICBDRlhfRml4ZWRCdWZHcm93PHVpbnQ4X3QsIDEyOD4gdGVtcChvcmlnX0JwcCk7CiAgICAgICAgIHVpbnQ4X3QgY29sb3JbNF07CiAgICAgICAgIGNvbnN0IEZYX0JPT0wgYlRyYW5zTWFzayA9IFRyYW5zTWFzaygpOwogICAgICAgICBpZiAobV9iRGVmYXVsdERlY29kZSkgewotICAgICAgICAgIGlmIChtX2JwYyA8IDgpIHsKLSAgICAgICAgICAgIGludCBzcmNfYml0X3BvcyA9IDA7Ci0gICAgICAgICAgICBpZiAoc3JjX3ggJSAyKSB7Ci0gICAgICAgICAgICAgIHNyY19iaXRfcG9zID0gNDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAoRlhfRFdPUkQgaiA9IDA7IGogPCBtX25Db21wb25lbnRzOyArK2opIHsKLSAgICAgICAgICAgICAgdGVtcFtqXSA9ICh1aW50OF90KShfR2V0Qml0czgocFNyY1BpeGVsLCBzcmNfYml0X3BvcywgbV9icGMpICoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bml0X1RvOEJwYyk7Ci0gICAgICAgICAgICAgIHNyY19iaXRfcG9zICs9IG1fYnBjOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgbV9wQ29sb3JTcGFjZS0+VHJhbnNsYXRlSW1hZ2VMaW5lKGNvbG9yLCB0ZW1wLCAxLCAwLCAwLCBiVHJhbnNNYXNrKTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9wQ29sb3JTcGFjZS0+VHJhbnNsYXRlSW1hZ2VMaW5lKGNvbG9yLCBwU3JjUGl4ZWwsIDEsIDAsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYlRyYW5zTWFzayk7Ci0gICAgICAgICAgfQorICAgICAgICAgIG1fcENvbG9yU3BhY2UtPlRyYW5zbGF0ZUltYWdlTGluZShjb2xvciwgcFNyY1BpeGVsLCAxLCAwLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiVHJhbnNNYXNrKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICBmb3IgKEZYX0RXT1JEIGogPSAwOyBqIDwgbV9uQ29tcG9uZW50czsgKytqKSB7CisgICAgICAgICAgICBGWF9GTE9BVCBjb21wb25lbnRfdmFsdWUgPQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEZYX0ZMT0FUPihleHRyYWN0ZWRfY29tcG9uZW50c1tqXSk7CiAgICAgICAgICAgICBpbnQgY29sb3JfdmFsdWUgPQogICAgICAgICAgICAgICAgIChpbnQpKChtX3BDb21wRGF0YVtqXS5tX0RlY29kZU1pbiArCi0gICAgICAgICAgICAgICAgICAgICAgIG1fcENvbXBEYXRhW2pdLm1fRGVjb2RlU3RlcCAqIChGWF9GTE9BVClwU3JjUGl4ZWxbal0pICoKKyAgICAgICAgICAgICAgICAgICAgICAgbV9wQ29tcERhdGFbal0ubV9EZWNvZGVTdGVwICogY29tcG9uZW50X3ZhbHVlKSAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDI1NS4wZiArCiAgICAgICAgICAgICAgICAgICAgICAgMC41Zik7Ci0gICAgICAgICAgICB0ZW1wW2pdID0KKyAgICAgICAgICAgIGV4dHJhY3RlZF9jb21wb25lbnRzW2pdID0KICAgICAgICAgICAgICAgICBjb2xvcl92YWx1ZSA+IDI1NSA/IDI1NSA6IChjb2xvcl92YWx1ZSA8IDAgPyAwIDogY29sb3JfdmFsdWUpOwogICAgICAgICAgIH0KLSAgICAgICAgICBtX3BDb2xvclNwYWNlLT5UcmFuc2xhdGVJbWFnZUxpbmUoY29sb3IsIHRlbXAsIDEsIDAsIDAsIGJUcmFuc01hc2spOworICAgICAgICAgIG1fcENvbG9yU3BhY2UtPlRyYW5zbGF0ZUltYWdlTGluZShjb2xvciwgZXh0cmFjdGVkX2NvbXBvbmVudHMsIDEsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIGJUcmFuc01hc2spOwogICAgICAgICB9CiAgICAgICAgIGFyZ2IgPSBGWEFSR0JfTUFLRSgweEZGLCBjb2xvclsyXSwgY29sb3JbMV0sIGNvbG9yWzBdKTsKICAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGFyZ2IgPSBGWEFSR0JfTUFLRSgweEZmLCBwU3JjUGl4ZWxbMl0sIHBTcmNQaXhlbFsxXSwgcFNyY1BpeGVsWzBdKTsKKyAgICAgICAgYXJnYiA9IEZYQVJHQl9NQUtFKDB4RkYsIHBTcmNQaXhlbFsyXSwgcFNyY1BpeGVsWzFdLCBwU3JjUGl4ZWxbMF0pOwogICAgICAgfQogICAgICAgaWYgKG1fYkNvbG9yS2V5KSB7CiAgICAgICAgIGludCBhbHBoYSA9IDB4RkY7CmRpZmYgLS1naXQgYS9jb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcmVuZGVyL2ZwZGZfcmVuZGVyX2xvYWRpbWFnZV9lbWJlZGRlcnRlc3QuY3BwIGIvY29yZS9zcmMvZnBkZmFwaS9mcGRmX3JlbmRlci9mcGRmX3JlbmRlcl9sb2FkaW1hZ2VfZW1iZWRkZXJ0ZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNjMzMjQ5Ci0tLSAvZGV2L251bGwKKysrIGIvY29yZS9zcmMvZnBkZmFwaS9mcGRmX3JlbmRlci9mcGRmX3JlbmRlcl9sb2FkaW1hZ2VfZW1iZWRkZXJ0ZXN0LmNwcApAQCAtMCwwICsxLDE5IEBACisvLyBDb3B5cmlnaHQgMjAxNSBQREZpdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisKKyNpbmNsdWRlICJ0ZXN0aW5nL2VtYmVkZGVyX3Rlc3QuaCIKKyNpbmNsdWRlICJ0ZXN0aW5nL2d0ZXN0L2luY2x1ZGUvZ3Rlc3QvZ3Rlc3QuaCIKKworY2xhc3MgRlBERlJlbmRlckxvYWRJbWFnZUVtYmVkZGVydGVzdCA6IHB1YmxpYyBFbWJlZGRlclRlc3Qge307CisKK1RFU1RfRihGUERGUmVuZGVyTG9hZEltYWdlRW1iZWRkZXJ0ZXN0LCBCdWdfNTU0MTUxKSB7CisgIC8vIFRlc3Qgc2NhbmxpbmUgZG93bnNhbXBsaW5nIHdpdGggYSBCaXRzUGVyQ29tcG9uZW50IG9mIDQuCisgIC8vIFNob3VsZCBub3QgY3Jhc2guCisgIEVYUEVDVF9UUlVFKE9wZW5Eb2N1bWVudCgiYnVnXzU1NDE1MS5wZGYiKSk7CisgIEZQREZfUEFHRSBwYWdlID0gTG9hZFBhZ2UoMCk7CisgIEVYUEVDVF9ORShudWxscHRyLCBwYWdlKTsKKyAgRlBERl9CSVRNQVAgYml0bWFwID0gUmVuZGVyUGFnZShwYWdlKTsKKyAgRlBERkJpdG1hcF9EZXN0cm95KGJpdG1hcCk7CisgIFVubG9hZFBhZ2UocGFnZSk7Cit9CmRpZmYgLS1naXQgYS9wZGZpdW0uZ3lwIGIvcGRmaXVtLmd5cAppbmRleCAzM2M0ZTE5Li4wYmYwNzQyIDEwMDY0NAotLS0gYS9wZGZpdW0uZ3lwCisrKyBiL3BkZml1bS5neXAKQEAgLTc0Niw2ICs3NDYsNyBAQAogICAgICAgICAnY29yZS9zcmMvZnBkZmFwaS9mcGRmX3BhZ2UvZnBkZl9wYWdlX2Z1bmNfZW1iZWRkZXJ0ZXN0LmNwcCcsCiAgICAgICAgICdjb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcGFyc2VyL2ZwZGZfcGFyc2VyX2RlY29kZV9lbWJlZGRlcnRlc3QuY3BwJywKICAgICAgICAgJ2NvcmUvc3JjL2ZwZGZhcGkvZnBkZl9wYXJzZXIvZnBkZl9wYXJzZXJfcGFyc2VyX2VtYmVkZGVydGVzdC5jcHAnLAorICAgICAgICAnY29yZS9zcmMvZnBkZmFwaS9mcGRmX3JlbmRlci9mcGRmX3JlbmRlcl9sb2FkaW1hZ2VfZW1iZWRkZXJ0ZXN0LmNwcCcsCiAgICAgICAgICdjb3JlL3NyYy9mcGRmYXBpL2ZwZGZfcmVuZGVyL2ZwZGZfcmVuZGVyX3BhdHRlcm5fZW1iZWRkZXJ0ZXN0LmNwcCcsCiAgICAgICAgICdmcGRmc2RrL3NyYy9mcGRmX2RhdGFhdmFpbF9lbWJlZGRlcnRlc3QuY3BwJywKICAgICAgICAgJ2ZwZGZzZGsvc3JjL2ZwZGZkb2NfZW1iZWRkZXJ0ZXN0LmNwcCcsCmRpZmYgLS1naXQgYS90ZXN0aW5nL3Jlc291cmNlcy9idWdfNTU0MTUxLmluIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzU1NDE1MS5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMDg3MTU5Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzU1NDE1MS5pbgpAQCAtMCwwICsxLDU5IEBACit7e2hlYWRlcn19CisKK3t7b2JqZWN0IDEgMH19Cis8PAorICAvUGFnZXMgMiAwIFIKKz4+CitlbmRvYmoKKwore3tvYmplY3QgMiAwfX0KKzw8CisgIC9LaWRzIFsgMyAwIFIgXQorPj4KK2VuZG9iagorCit7e29iamVjdCAzIDB9fQorPDwKKyAgL0NvbnRlbnRzIDYgMCBSCisgIC9SZXNvdXJjZXMgNSAwIFIKKz4+CitlbmRvYmoKKwore3tvYmplY3QgNiAwfX0KKzw8Pj4KK3N0cmVhbQorNjEyIDAuMCAwLjAgMTA0MDAwIDAgMCBjbQorL1hCYWQgRG8KK2VuZHN0cmVhbQorZW5kb2JqCisKK3t7b2JqZWN0IDUgMH19Cis8PAorICAvWE9iamVjdCA8PAorICAgIC9YQmFkIDcgMCBSCisgID4+Cis+PgorZW5kb2JqCisKK3t7b2JqZWN0IDcgMH19Cis8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDYxMgorICAvSGVpZ2h0IDEwNDAwMAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9CaXRzUGVyQ29tcG9uZW50IDQKKyAgL0xlbmd0aCAwCisgIC9EZWNvZGUgWzEuMF0KKz4+CitzdHJlYW0KK0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgorZW5kb2JqCisKK3t7eHJlZn19Cit0cmFpbGVyIDw8CisgIC9Sb290IDEgMCBSCisgIC9TaXplIDgKKz4+Cit7e3N0YXJ0eHJlZn19CislJUVPRgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzU1NDE1MS5wZGYgYi90ZXN0aW5nL3Jlc291cmNlcy9idWdfNTU0MTUxLnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mYTc3MGE3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9yZXNvdXJjZXMvYnVnXzU1NDE1MS5wZGYKQEAgLTAsMCArMSw3MCBAQAorJVBERi0xLjcKKyWg8qT0CisKKzEgMCBvYmoKKzw8CisgIC9QYWdlcyAyIDAgUgorPj4KK2VuZG9iagorCisyIDAgb2JqCis8PAorICAvS2lkcyBbIDMgMCBSIF0KKz4+CitlbmRvYmoKKworMyAwIG9iagorPDwKKyAgL0NvbnRlbnRzIDYgMCBSCisgIC9SZXNvdXJjZXMgNSAwIFIKKz4+CitlbmRvYmoKKworNiAwIG9iagorPDw+Pgorc3RyZWFtCis2MTIgMC4wIDAuMCAxMDQwMDAgMCAwIGNtCisvWEJhZCBEbworZW5kc3RyZWFtCitlbmRvYmoKKworNSAwIG9iagorPDwKKyAgL1hPYmplY3QgPDwKKyAgICAvWEJhZCA3IDAgUgorICA+PgorPj4KK2VuZG9iagorCis3IDAgb2JqCis8PAorICAvVHlwZSAvWE9iamVjdAorICAvU3VidHlwZSAvSW1hZ2UKKyAgL1dpZHRoIDYxMgorICAvSGVpZ2h0IDEwNDAwMAorICAvQ29sb3JTcGFjZSAvRGV2aWNlUkdCCisgIC9CaXRzUGVyQ29tcG9uZW50IDQKKyAgL0xlbmd0aCAwCisgIC9EZWNvZGUgWzEuMF0KKz4+CitzdHJlYW0KK0ZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRgorZW5kb2JqCisKK3hyZWYKKzAgOAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDAxNiAwMDAwMCBuIAorMDAwMDAwMDA1MyAwMDAwMCBuIAorMDAwMDAwMDA5MyAwMDAwMCBuIAorMDAwMDAwMDAwMCA2NTUzNSBmIAorMDAwMDAwMDIyNSAwMDAwMCBuIAorMDAwMDAwMDE1MiAwMDAwMCBuIAorMDAwMDAwMDI4MiAwMDAwMCBuIAordHJhaWxlciA8PAorICAvUm9vdCAxIDAgUgorICAvU2l6ZSA4Cis+Pgorc3RhcnR4cmVmCisxMzcwCislJUVPRgo=