ZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi8uY2xhc3NwYXRoIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlMTVhMWEuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYy1kZWJ1Z2dlciIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSjJTRS0xLjQiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5wZGUuY29yZS5yZXF1aXJlZFBsdWdpbnMiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uLy5wcm9qZWN0IGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODg0ZWVlLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotCTxuYW1lPm9yZy5lY2xpcHNlLndzdC54c2wuc2F4b248L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL01FVEEtSU5GL01BTklGRVNULk1GIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMTJkOWUxLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotTWFuaWZlc3QtVmVyc2lvbjogMS4wCi1CdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lLjAKLUJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLndzdC54c2wuc2F4b247c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMS4wLjAucXVhbGlmaWVyCi1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjQKLUJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgotQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IuMApkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL1NheG9uQXR0cmlidXRlcy5wcm9wZXJ0aWVzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL1NheG9uQXR0cmlidXRlcy5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjRhYjBlLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9TYXhvbkF0dHJpYnV0ZXMucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ29weXJpZ2h0IChjKSAyMDA3IENoYXNlIFRlY2hub2xvZ3kgTHRkIC0gaHR0cDovL3d3dy5jaGFzZXRlY2hub2xvZ3kuY28udWsKLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSMKLSMgQ29udHJpYnV0b3JzOgotIyAgICBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1BTExPV19FWFRFUk5BTF9GVU5DVElPTlM9aHR0cDovL3NheG9uLnNmLm5ldC9mZWF0dXJlL2FsbG93LWV4dGVybmFsLWZ1bmN0aW9ucwotQUxMT1dfRVhURVJOQUxfRlVOQ1RJT05TLlRZUEU9Ym9vbGVhbgotQUxMT1dfRVhURVJOQUxfRlVOQ1RJT05TLkRFU0M9dHJ1ZSBpZiB0aGUgc3R5bGVzaGVldCBhbGxvd3MgZXh0ZXJuYWwgZnVuY3Rpb25zIHRvIGJlIGNhbGxlZC4gRGVmYXVsdCBpcyB0cnVlLiBUaGUgc2V0dGluZyBmYWxzZSBpcyByZWNvbW1lbmRlZCBpbiBhbiBlbnZpcm9ubWVudCB3aGVyZSB1bnRydXN0ZWQgc3R5bGVzaGVldHMgbWF5IGJlIGV4ZWN1dGVkLiBTZXR0aW5nIHRoaXMgdmFsdWUgdG8gZmFsc2UgIGFsc28gZGlzYWJsZXMgdXNlci1kZWZpbmVkIGV4dGVuc2lvbiBlbGVtZW50cywgdG9nZXRoZXIgd2l0aCB0aGUgd3JpdGluZyBvZiBtdWx0aXBsZSBvdXRwdXQgZmlsZXMsIGFsbCBvZiB3aGljaCBjYXJyeSBzaW1pbGFyIHNlY3VyaXR5IHJpc2tzLgotCi1UUkFDRV9FWFRFUk5BTF9GVU5DVElPTlM9aHR0cDovL3NheG9uLnNmLm5ldC9mZWF0dXJlL3RyYWNlLWV4dGVybmFsLWZ1bmN0aW9ucwotVFJBQ0VfRVhURVJOQUxfRlVOQ1RJT05TLlRZUEU9Ym9vbGVhbgotVFJBQ0VfRVhURVJOQUxfRlVOQ1RJT05TLkRFU0M9dHJ1ZSBpZiB0aGUgdHJhY2luZyBvZiBjYWxscyB0byBleHRlcm5hbCBKYXZhIG1ldGhvZHMgaXMgcmVxdWlyZWQuIERlZmF1bHQgaXMgZmFsc2UuIFRoaXMgc3dpdGNoIGlzIHVzZWZ1bCB3aGVuIGFuYWx5emluZyB3aHkgU2F4b24gZmFpbHMgdG8gZmluZCBhIEphdmEgbWV0aG9kIHRvIG1hdGNoIGFuIGV4dGVuc2lvbiBmdW5jdGlvbiBjYWxsIGluIHRoZSBzdHlsZXNoZWV0LCBvciB3aHkgaXQgY2hvb3NlcyBvbmUgbWV0aG9kIG92ZXIgYW5vdGhlciB3aGVuIHNldmVyYWwgYXJlIGF2YWlsYWJsZS4gVGhlIHRyYWNlIG91dHB1dCBpcyBzZW50IHRvIFN5c3RlbS5lcnIuCi0KLVRJTUlORz1odHRwOi8vc2F4b24uc2YubmV0L2ZlYXR1cmUvdGltaW5nCi1USU1JTkcuVFlQRT1ib29sZWFuCi1USU1JTkcuREVTQz10cnVlIGlmIGJhc2ljIHRpbWluZyBpbmZvcm1hdGlvbiBpcyB0byBiZSBvdXRwdXQgdG8gdGhlIHN0YW5kYXJkIGVycm9yIG91dHB1dCBzdHJlYW0uCi0KLVRSRUVfTU9ERUw9aHR0cDovL3NheG9uLnNmLm5ldC9mZWF0dXJlL3RyZWVNb2RlbAotVFJFRV9NT0RFTC5UWVBFPWludAotVFJFRV9NT0RFTC5ERVNDPUJ1aWxkZXIuU1RBTkRBUkRfVFJFRSBvciBCdWlsZGVyLlRJTllfVFJFRS4gU2VsZWN0cyBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgU2F4b24gdHJlZSBtb2RlbC4gVGhlIGRlZmF1bHQgaXMgQnVpbGRlci5USU5ZX1RSRUUuCi0KLVRSQUNFX0xJU1RFTkVSPWh0dHA6Ly9zYXhvbi5zZi5uZXQvZmVhdHVyZS90cmFjZUxpc3RlbmVyCi1UUkFDRV9MSVNURU5FUi5UWVBFPW9iamVjdAotVFJBQ0VfTElTVEVORVIuREVTQz1hbiBpbnN0YW5jZSBvZiB0aGUgY2xhc3MgbmV0LnNmLnNheG9uLnRyYWNlLlRyYWNlTGlzdGVuZXIuIFRoaXMgb2JqZWN0IHdpbGwgYmUgbm90aWZpZWQgb2Ygc2lnbmlmaWNhbnQgZXZlbnRzIG9jY3VycmluZyBkdXJpbmcgdGhlIHRyYW5zZm9ybWF0aW9uLCBmb3IgdHJhY2luZyBvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCi0KLUxJTkVfTlVNQkVSSU5HPWh0dHA6Ly9zYXhvbi5zZi5uZXQvZmVhdHVyZS9saW5lbnVtYmVyaW5nCi1MSU5FX05VTUJFUklORy5UWVBFPWJvb2xlYW4KLUxJTkVfTlVNQkVSSU5HLkRFU0M9aW5kaWNhdGVzIHdoZXRoZXIgbGluZSBudW1iZXJzIGFyZSB0byBiZSBtYWludGFpbmVkIGZvciB0aGUgc291cmNlIGRvY3VtZW50LiBUaGlzIHdpbGwgbm90IGJlIHBvc3NpYmxlIGlmIHRoZSBzb3VyY2UgZG9jdW1lbnQgaXMgc3VwcGxpZWQgYXMgYSBET00uIFRoZSBsaW5lIG51bWJlcnMgYXJlIGFjY2Vzc2libGUgdGhyb3VnaCB0aGUgdHJhY2luZyBpbnRlcmZhY2UsIGFuZCBhbHNvIHZpYSB0aGUgc2F4b246bGluZS1udW1iZXIoKSBleHRlbnNpb24gZnVuY3Rpb24uCi0KLVJFQ09WRVJZX1BPTElDWT1odHRwOi8vc2F4b24uc2YubmV0L2ZlYXR1cmUvcmVjb3ZlcnlQb2xpY3kKLVJFQ09WRVJZX1BPTElDWS5UWVBFPWludAotUkVDT1ZFUllfUE9MSUNZLkRFU0M9QW4gSW50ZWdlci4gSW5kaWNhdGVzIGhvdyBkeW5hbWljIGVycm9ycyBzaG91bGQgYmUgaGFuZGxlZC4gT25lIG9mIHRoZSB2YWx1ZXMgKGRlZmluZWQgYXMgY29uc3RhbnRzIGluIHRoZSBDb250cm9sbGVyIGNsYXNzKSBSRUNPVkVSX1NJTEVOVExZLCBSRUNPVkVSX1dJVEhfV0FSTklOR1MsIG9yIERPX05PVF9SRUNPVkVSKS4KLQotTUVTU0FHRV9FTUlUVEVSX0NMQVNTPWh0dHA6Ly9zYXhvbi5zZi5uZXQvZmVhdHVyZS9tZXNzYWdlRW1pdHRlckNsYXNzCi1NRVNTQUdFX0VNSVRURVJfQ0xBU1MuVFlQRT1jbGFzcwotTUVTU0FHRV9FTUlUVEVSX0NMQVNTLkRFU0M9VGhlIGZ1bGwgbmFtZSBvZiBhIHNheG9uIGVtaXR0ZXIgY2xhc3MuIHRoYXQgaW1wbGVtZW50cyB0aGUgbmV0LnNmLnNheG9uLm91dHB1dC5FbWl0dGVyIGludGVyZmFjZTsgdGhlIGNsYXNzIHdpbGwgYmUgdXNlZCB0byBmb3JtYXQgdGhlIG91dHB1dCBvZiB0aGUgeHNsOm1lc3NhZ2UgaW5zdHJ1Y3Rpb24uCi0KLVNPVVJDRV9QQVJTRVJfQ0xBU1M9aHR0cDovL3NheG9uLnNmLm5ldC9mZWF0dXJlL3NvdXJjZVBhcnNlckNsYXNzCi1TT1VSQ0VfUEFSU0VSX0NMQVNTLlRZUEU9Y2xhc3MKLVNPVVJDRV9QQVJTRVJfQ0xBU1MuREVTQz1UaGUgZnVsbCBuYW1lIG9mIGEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBvcmcueG1sLnNheC5YTUxSZWFkZXIgaW50ZXJmYWNlOyB0aGUgY2xhc3Mgd2lsbCBiZSB1c2VkIHRvIHBhcnNlIHNvdXJjZSBkb2N1bWVudHMgKHRoYXQgaXMsIHRoZSBwcmluY2lwYWwgc291cmNlIGRvY3VtZW50IHBsdXMgYW55IHNlY29uZGFyeSBzb3VyY2UgZG9jdW1lbnRzIHJlYWQgdXNpbmcgdGhlIGRvY3VtZW50KCkgZnVuY3Rpb24pCi0KLVNUWUxFX1BBUlNFUl9DTEFTUz1odHRwOi8vc2F4b24uc2YubmV0L2ZlYXR1cmUvc3R5bGVQYXJzZXJDbGFzcwotU1RZTEVfUEFSU0VSX0NMQVNTLlRZUEU9Y2xhc3MKLVNUWUxFX1BBUlNFUl9DTEFTUy5ERVNDPVRoZSBmdWxsIG5hbWUgb2YgYSBjbGFzcyB0aGF0IGltcGxlbWVudHMgdGhlIG9yZy54bWwuc2F4LlhNTFJlYWRlciBpbnRlcmZhY2U7IHRoZSBjbGFzcyB3aWxsIGJlIHVzZWQgdG8gcGFyc2Ugc3R5bGVzaGVldCBkb2N1bWVudHMgKHRoYXQgaXMsIHRoZSBwcmluY2lwYWwgc3R5bGVzaGVldCBtb2R1bGUgcGx1cyBhbnkgc2Vjb25kYXJ5IHNvdXJjZSBkb2N1bWVudHMgcmVhZCB1c2luZyB4c2w6aW5jbHVkZSBvciB4c2w6aW1wb3J0KQotCi1PVVRQVVRfVVJJX1JFU09MVkVSPWh0dHA6Ly9zYXhvbi5zZi5uZXQvZmVhdHVyZS9vdXRwdXRVUklSZXNvbHZlcgotT1VUUFVUX1VSSV9SRVNPTFZFUi5UWVBFPW9iamVjdAotT1VUUFVUX1VSSV9SRVNPTFZFUi5ERVNDPUFuIGluc3RhbmNlIG9mIHRoZSBjbGFzcyBuZXQuc2Yuc2F4b24uT3V0cHV0VVJJUmVzb2x2ZXI7IHRoaXMgb2JqZWN0IHdpbGwgYmUgdXNlZCB0byByZXNvbHZlIFVSSXMgb2Ygc2Vjb25kYXJ5IHJlc3VsdCBkb2N1bWVudHMgc3BlY2lmaWVkIGluIHRoZSBocmVmIGF0dHJpYnV0ZSBvZiB0aGUgeHNsOnJlc3VsdC1kb2N1bWVudCAgaW5zdHJ1Y3Rpb24KLQotRFREX1ZBTElEQVRJT049aHR0cDovL3NheG9uLnNmLm5ldC9mZWF0dXJlL3ZhbGlkYXRpb24KLURURF9WQUxJREFUSU9OLlRZUEU9Ym9vbGVhbgotRFREX1ZBTElEQVRJT04uREVTQz1JbmRpY2F0ZXMgd2hldGhlciB0aGUgWE1MIHBhcnNlciBzaG91bGQgYmUgYXNrZWQgdG8gdmFsaWRhdGUgc291cmNlIGRvY3VtZW50cyBhZ2FpbnN0IHRoZWlyIERURC4gVGhpcyBhcHBsaWVzIHRvIHRoZSBpbml0aWFsIHNvdXJjZSBkb2N1bWVudCBhbmQgYW55IHNvdXJjZSBkb2N1bWVudHMgcmVhZCB1c2luZyB0aGUgZG9jdW1lbnQoKSBmdW5jdGlvbiwgdW5sZXNzIGhhbmRsZWQgYnkgYSB1c2VyLXdyaXR0ZW4gVVJJUmVzb2x2ZXIuCi0KLVZBTElEQVRJT05fV0FSTklOR1M9aHR0cDovL3NheG9uLnNmLm5ldC9mZWF0dXJlL3ZhbGlkYXRpb24td2FybmluZ3MKLVZBTElEQVRJT05fV0FSTklOR1MuVFlQRT1ib29sZWFuCi1WQUxJREFUSU9OX1dBUk5JTkdTLkRFU0M9VGhpcyBkZXRlcm1pbmVzIHdoZXRoZXIgdmFsaWRhdGlvbiBlcnJvcnMgaW4gcmVzdWx0IGRvY3VtZW50cyBzaG91bGQgYmUgdHJlYXRlZCBhcyBmYXRhbC4gQnkgZGVmYXVsdCB0aGV5IGFyZSBmYXRhbDsgd2l0aCB0aGlzIG9wdGlvbiBzZXQsIHRoZXkgYXJlIHRyZWF0ZWQgYXMgd2FybmluZ3MuCi0KLVNDSEVNQV9WQUxJREFUSU9OPWh0dHA6Ly9zYXhvbi5zZi5uZXQvZmVhdHVyZS9zY2hlbWEtdmFsaWRhdGlvbgotU0NIRU1BX1ZBTElEQVRJT04uVFlQRT1ib29sZWFuCi1TQ0hFTUFfVkFMSURBVElPTi5ERVNDPVRoaXMgZGV0ZXJtaW5lcyB3aGV0aGVyIHNvdXJjZSBkb2N1bWVudHMgc2hvdWxkIGJlIHBhcnNlZCB3aXRoIHNjaGVtYS12YWxpZGF0aW9uIGVuYWJsZWQuCi0KLVZFUlNJT05fV0FSTklORz1odHRwOi8vc2F4b24uc2YubmV0L2ZlYXR1cmUvdmVyc2lvbi13YXJuaW5nCi1WRVJTSU9OX1dBUk5JTkcuVFlQRT1ib29sZWFuCi1WRVJTSU9OX1dBUk5JTkcuREVTQz1UaGlzIGRldGVybWluZXMgd2hldGhlciBhIHdhcm5pbmcgc2hvdWxkIGJlIG91dHB1dCB3aGVuIHJ1bm5pbmcgYW4gWFNMVCAyLjAgcHJvY2Vzc29yIGFnYWluc3QgYW4gWFNMVCAxLjAgc3R5bGVzaGVldC4gVGhlIFhTTFQgc3BlY2lmaWNhdGlvbiByZXF1aXJlcyB0aGlzIHRvIGJlIGRvbmUgYnkgZGVmYXVsdC4KLQotTkFNRV9QT09MPWh0dHA6Ly9zYXhvbi5zZi5uZXQvZmVhdHVyZS9uYW1lUG9vbAotTkFNRV9QT09MLlRZUEU9b2JqZWN0Ci1OQU1FX1BPT0wuREVTQz1BIGluc3RhbmNlIG9mIGNsYXNzIG5ldC5zZi5zYXhvbi5vbS5OYW1lUG9vbC4gSW5kaWNhdGVzIHRoYXQgdGhlIHN1cHBsaWVkIE5hbWVQb29sIHNob3VsZCBiZSB1c2VkIGFzIHRoZSB0YXJnZXQgKHJ1bi10aW1lKSBOYW1lUG9vbCBieSBhbGwgc3R5bGVzaGVldHMgY29tcGlsZWQgKHVzaW5nIG5ld1RlbXBsYXRlcygpKSBhZnRlciB0aGlzIGNhbGwgb24gc2V0QXR0cmlidXRlLiBOb3JtYWxseSBhIHNpbmdsZSBzeXN0ZW0tYWxsb2NhdGVkIE5hbWVQb29sIGlzIHVzZWQgZm9yIGFsbCBzdHlsZXNoZWV0cyBjb21waWxlZCB3aGlsZSB0aGUgSmF2YSBWTSByZW1haW5zIGxvYWRlZDsgdGhpcyBhdHRyaWJ1dGUgYWxsb3dzIHVzZXIgY29udHJvbCBvdmVyIHRoZSBhbGxvY2F0aW9uIG9mIE5hbWVQb29scy4gTm90ZSB0aGF0IHNvdXJjZSB0cmVlcyB1c2VkIGFzIGlucHV0IHRvIGEgdHJhbnNmb3JtYXRpb24gbXVzdCBiZSBidWlsdCB1c2luZyB0aGUgc2FtZSBOYW1lUG9vbCB0aGF0IGlzIHVzZWQgd2hlbiB0aGUgc3R5bGVzaGVldCBpcyBjb21waWxlZDogdGhpcyB3aWxsIGhhcHBlbiBhdXRvbWF0aWNhbGx5IGlmIHRoZSBpbnB1dCB0byBhIHRyYW5zZm9ybWF0aW9uIGlzIHN1cHBsaWVkIGFzIGEgU0FYU291cmNlIG9yIFN0cmVhbVNvdXJjZSBidXQgaXQgaXMgdW5kZXIgdXNlciBjb250cm9sIGlmIHlvdSBidWlsZCB0aGUgc291cmNlIHRyZWUgeW91cnNlbGYuCi0KLVJFQ09HTklaRV9VUklfUVVFUllfUEFSQU1FVEVSUz1odHRwOi8vc2F4b24uc2YubmV0L2ZlYXR1cmUvcmVjb2duaXplLXVyaS1xdWVyeS1wYXJhbWV0ZXJzCi1SRUNPR05JWkVfVVJJX1FVRVJZX1BBUkFNRVRFUlMuVFlQRT1ib29sZWFuCi1SRUNPR05JWkVfVVJJX1FVRVJZX1BBUkFNRVRFUlMuREVTQz1kZXRlcm1pbmVzIHdoZXRoZXIgcXVlcnkgcGFyYW1ldGVycyAodGhpbmdzIGFmdGVyICI/IilcblwKLSBpbiBhIFVSSSBwYXNzZWQgdG8gdGhlIGRvY3VtZW50KCkgb3IgZG9jKCkgZnVuY3Rpb24gYXJlIHNwZWNpYWxseSByZWNvZ25pemVkIGJ5IHRoZSBzeXN0ZW0gZGVmYXVsdCBVUklSZXNvbHZlci5cblwKLSBBbGxvd2VkIHBhcmFtZXRlcnMgaW5jbHVkZSwgZm9yIGV4YW1wbGUgdmFsaWRhdGlvbj1zdHJpY3QgdG8gcGVyZm9ybSBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHN0cmlwLXNwYWNlPXllc1xuXAotIHRvIHBlcmZvcm0gc3RyaXBwaW5nIG9mIGFsbCB3aGl0ZXNwYWNlLW9ubHkgdGV4dCBub2RlcwotCi1DT0xMQVRJT05fVVJJX1JFU09MVkVSPWh0dHA6Ly9zYXhvbi5zZi5uZXQvZmVhdHVyZS9jb2xsYXRpb24tdXJpLXJlc29sdmVyCi1DT0xMQVRJT05fVVJJX1JFU09MVkVSLlRZUEU9b2JqZWN0Ci1DT0xMQVRJT05fVVJJX1JFU09MVkVSLkRFU0M9QSBuZXQuc2Yuc2F4b24uc29ydC5Db2xsYXRpb25VUklSZXNvbHZlciB1c2VkIHRvIHJlc29sdmUgY29sbGF0aW9uIFVSSXMgdXNlZCBpbiBzdHlsZXNoZWV0cyBjb21waWxlZCBvciBleGVjdXRlZCB1bmRlciB0aGVcblwKLSBjb250cm9sIG9mIHRoaXMgVHJhbnNmb3JtZXJGYWN0b3J5Ci0gCi1DT0xMRUNUSU9OX1VSSV9SRVNPTFZFUj1odHRwOi8vc2F4b24uc2YubmV0L2ZlYXR1cmUvY29sbGVjdGlvbi11cmktcmVzb2x2ZXIKLUNPTExFQ1RJT05fVVJJX1JFU09MVkVSLlRZUEU9b2JqZWN0Ci1DT0xMRUNUSU9OX1VSSV9SRVNPTFZFUi5ERVNDPUEgbmV0LnNmLnNheG9uLnNvcnQuQ29sbGVjdGlvblVSSVJlc29sdmVyIHVzZWQgdG8gcmVzb2x2ZSBjb2xsZWN0aW9uIFVSSXMgdXNlZCBpbiBjYWxscyBvZiB0aGUgY29sbGVjdGlvbigpIGZ1bmN0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL1NheG9uT3V0cHV0UHJvcGVydGllcy5wcm9wZXJ0aWVzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL1NheG9uT3V0cHV0UHJvcGVydGllcy5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTc5MDcxLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9TYXhvbk91dHB1dFByb3BlcnRpZXMucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ29weXJpZ2h0IChjKSAyMDA3IENoYXNlIFRlY2hub2xvZ3kgTHRkIC0gaHR0cDovL3d3dy5jaGFzZXRlY2hub2xvZ3kuY28udWsKLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSMKLSMgQ29udHJpYnV0b3JzOgotIyAgICBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1JTkRFTlRfU1BBQ0VTPXtodHRwOi8vc2F4b24uc2YubmV0L31pbmRlbnQtc3BhY2VzCi1JTkRFTlRfU1BBQ0VTLkRFU0M9KGludGVnZXIgdmFsdWUpLkRlZmluZXMgdGhlIG51bWJlciBvZiBzcGFjZXMgdXNlZCBmb3IgaW5kZW50YXRpb24gb2Ygb3V0cHV0Ci0KLVVOREVDTEFSRV9OQU1FU1BBQ0VTPXtodHRwOi8vc2F4b24uc2YubmV0L311bmRlY2xhcmUtbmFtZXNwYWNlcwotVU5ERUNMQVJFX05BTUVTUEFDRVMuREVTQz1pbmNsdWRlLWNvbnRlbnQtdHlwZSA9ICJ5ZXMiIHwgIm5vIi4gVGhpcyBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBpbiBYU0xUIDIuMC4gSW5kaWNhdGVzIFhNTCAxLjEgbmFtZXNwYWNlIGRlY2xhcmF0aW9ucyBhcmUgdG8gYmUgb3V0cHV0LgotCi1DSEFSQUNURVJfUkVQUkVTRU5UQVRJT049e2h0dHA6Ly9zYXhvbi5zZi5uZXQvfWNoYXJhY3Rlci1yZXByZXNlbnRhdGlvbgotQ0hBUkFDVEVSX1JFUFJFU0VOVEFUSU9OLkRFU0M9KHJlcDFbO3JlcDJdKS4gSW5kaWNhdGVzIHRoZSBwcmVmZXJyZWQgd2F5IG9mIHJlcHJlc2VudGluZyBub24tQVNDSUkgY2hhcmFjdGVycyBpbiBIVE1MIGFuZCBYTUwgb3V0cHV0LiByZXAxIGlzIGZvciBjaGFyYWN0ZXJzIGluIHRoZSByYW5nZSAxMjgtMjU2LCByZXAyIGZvciB0aG9zZSBhYm92ZSAyNTYuCi0KLU5FWFRfSU5fQ0hBSU49e2h0dHA6Ly9zYXhvbi5zZi5uZXQvfW5leHQtaW4tY2hhaW4KLU5FWFRfSU5fQ0hBSU4uREVTQz0odXJpKS4gSW5kaWNhdGVzIHRoYXQgdGhlIG91dHB1dCBpcyB0byBiZSBwaXBlZCBpbnRvIGFub3RoZXIgWFNMVCBzdHlsZXNoZWV0IHRvIHBlcmZvcm0gYW5vdGhlciB0cmFuc2Zvcm1hdGlvbi4gVGhlIGF1eGlsaWFyeSBwcm9wZXJ0eSBORVhUX0lOX0NIQUlOX0JBU0VfVVJJIHJlY29yZHMgdGhlIGJhc2UgVVJJIG9mIHRoZSBzdHlsZXNoZWV0IGVsZW1lbnQgd2hlcmUgdGhpcyBhdHRyaWJ1dGUgd2FzIGZvdW5kLgotCi1UWVBFX0lORk9STUFUSU9OPXtodHRwOi8vc2F4b24uc2YubmV0L310eXBlLWluZm9ybWF0aW9uCi1UWVBFX0lORk9STUFUSU9OLkRFU0M9KG5vbmV8cHJlc2VydmV8c3RyaWN0fGxheCkuIEluZGljYXRlcyB0aGUgdmFsdWUgb2YgdGhlIHR5cGUtaW5mb3JtYXRpb24gYXR0cmlidXRlOiAibm9uZSIsICJwcmVzZXJ2ZSIsICJzdHJpY3QiLCAibGF4IgotCi1SRVFVSVJFX1dFTExfRk9STUVEPXtodHRwOi8vc2F4b24uc2YubmV0L31yZXF1aXJlLXdlbGwtZm9ybWVkCi1SRVFVSVJFX1dFTExfRk9STUVELkRFU0M9KHllc3xubykuIEluZGljYXRlcyB3aGV0aGVyIGEgdXNlci1zdXBwbGllZCBDb250ZW50SGFuZGxlciByZXF1aXJlcyB0aGUgc3RyZWFtIG9mIFNBWCBldmVudHMgdG8gYmUgd2VsbC1mb3JtZWQgKHRoYXQgaXMsIHRvIGhhdmUgYSBzaW5nbGUgZWxlbWVudCBub2RlIGFuZCBubyB0ZXh0IG5vZGVzIGFzIGNoaWxkcmVuIG9mIHRoZSByb290KS4gVGhlIGRlZmF1bHQgaXMgIm5vIi4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wuc2F4b24vYWJvdXQuaHRtbCBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTk5ZGYzLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPEhUTUw+Ci0KLTxoZWFkPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTwvaGVhZD4KLQotPEJPRFkgbGFuZz0iRU4tVVMiPgotCi08SDM+QWJvdXQgVGhpcyBDb250ZW50PC9IMz4KLQotPFA+SnVuZSwgMjAwODwvUD4KLQotPEgzPkxpY2Vuc2U8L0gzPgotCi08UD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gCi0oIkNvbnRlbnQiKS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSAKLXVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAKLSgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSBhdAotPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC12MTAucGhwIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHA8L0E+LiAKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvUD4KLQotPFA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgCi1Db250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoIlJlZGlzdHJpYnV0b3IiKSBhbmQgZGlmZmVyZW50IAotdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5IGFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gCi1DaGVjayB0aGUgUmVkaXN0cmlidXRvcpJzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaCAKLWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIAotdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQgCi1hbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQKLTxBIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnLzwvQT4uPC9QPgotCi08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wuc2F4b24vYnVpbGQucHJvcGVydGllcyBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNDRkZGUyLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1zb3VyY2UuLiA9IHNyYy1kZWJ1Z2dlci8KLW91dHB1dC4uID0gYmluLwotYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIC4sXAotICAgICAgICAgICAgICAgU2F4b25BdHRyaWJ1dGVzLnByb3BlcnRpZXMsXAotICAgICAgICAgICAgICAgU2F4b25PdXRwdXRQcm9wZXJ0aWVzLnByb3BlcnRpZXMsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBwbHVnaW4ueG1sLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi5wcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wuc2F4b24vcGx1Z2luLnByb3BlcnRpZXMgYi9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wuc2F4b24vcGx1Z2luLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1Mzg3NTEuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL3BsdWdpbi5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0jUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS53c3QueHNsLnNheG9uCi1CdW5kbGUtTmFtZS4wID0gWFNMIFNheG9uIFN1cHBvcnQgKEluY3ViYXRpbmcpCi1wcm9jZXNzb3JUeXBlLmxhYmVsLjAgPSBTYXhvbiAoWFNMVCAyLjApCi1wcm9jZXNzb3JUeXBlLmxhYmVsLjEgPSBTYXhvbiAoWFNMVCAxLjApCi1CdW5kbGUtVmVuZG9yLjAgPSBFY2xpcHNlLm9yZwotdHJhbnNmb3JtZXJGYWN0b3J5U2F4b242ID0gU2F4b24gNgotdHJhbnNmb3JtZXJTYXhvblhTTFQyID0gU2F4b24gNwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9wbHVnaW4ueG1sIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiZTBhODIuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL3BsdWdpbi54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPD9lY2xpcHNlIHZlcnNpb249IjMuMiI/PgotPHBsdWdpbj4KLSAgIDxleHRlbnNpb24KLSAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS53c3QueHNsLmpheHAubGF1bmNoaW5nLnByb2Nlc3NvclR5cGUiPgotICAgICAgPHByb2Nlc3NvclR5cGUKLSAgICAgICAgICAgIGF0dHJpYnV0ZVByb3BlcnRpZXM9IlNheG9uQXR0cmlidXRlcy5wcm9wZXJ0aWVzIgotICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLndzdC54c2wuc2F4b25fMV8wLnByb2Nlc3NvclR5cGUiCi0gICAgICAgICAgICBsYWJlbD0iJXByb2Nlc3NvclR5cGUubGFiZWwuMSIKLSAgICAgICAgICAgIG91dHB1dFByb3BlcnRpZXM9IlNheG9uT3V0cHV0UHJvcGVydGllcy5wcm9wZXJ0aWVzIj4KLSAgICAgICAgIDx0cmFuc2Zvcm1lckZhY3RvcnkKLSAgICAgICAgICAgICAgIGZhY3RvcnlDbGFzcz0iY29tLmljbC5zYXhvbi5UcmFuc2Zvcm1lckZhY3RvcnlJbXBsIgotICAgICAgICAgICAgICAgbmFtZT0iJXRyYW5zZm9ybWVyRmFjdG9yeVNheG9uNiI+Ci0gICAgICAgICA8L3RyYW5zZm9ybWVyRmFjdG9yeT4KLSAgICAgIDwvcHJvY2Vzc29yVHlwZT4KLSAgICAgIDxwcm9jZXNzb3JUeXBlCi0gICAgICAgICAgICBhdHRyaWJ1dGVQcm9wZXJ0aWVzPSJTYXhvbkF0dHJpYnV0ZXMucHJvcGVydGllcyIKLSAgICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS53c3QueHNsLnNheG9uLnByb2Nlc3NvclR5cGUiCi0gICAgICAgICAgICBsYWJlbD0iJXByb2Nlc3NvclR5cGUubGFiZWwuMCIKLSAgICAgICAgICAgIG91dHB1dFByb3BlcnRpZXM9IlNheG9uT3V0cHV0UHJvcGVydGllcy5wcm9wZXJ0aWVzIj4KLSAgICAgICAgIDx0cmFuc2Zvcm1lckZhY3RvcnkKLSAgICAgICAgICAgICAgIGZhY3RvcnlDbGFzcz0ibmV0LnNmLnNheG9uLlRyYW5zZm9ybWVyRmFjdG9yeUltcGwiCi0gICAgICAgICAgICAgICBuYW1lPSIldHJhbnNmb3JtZXJTYXhvblhTTFQyIj4KLSAgICAgICAgIDwvdHJhbnNmb3JtZXJGYWN0b3J5PgotICAgICAgPC9wcm9jZXNzb3JUeXBlPgotICAgPC9leHRlbnNpb24+Ci0KLTwvcGx1Z2luPgpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL3NyYy1kZWJ1Z2dlci9SRUFETUUudHh0IGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnNheG9uL3NyYy1kZWJ1Z2dlci9SRUFETUUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDYzYTU3Li4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi9zcmMtZGVidWdnZXIvUkVBRE1FLnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLUp1c3QgYSBwbGFjZWhvbGRlciB0byBlbnN1cmUgc3JjIGZvbGRlciBhcHBlYXJzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi8uY2xhc3NwYXRoIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLy5jbGFzc3BhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmZGY4ZTkuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLy5jbGFzc3BhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08Y2xhc3NwYXRoPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSjJTRS0xLjQiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMtZGVidWdnZXIiLz4KLQk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4KLTwvY2xhc3NwYXRoPgpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLy5jdnNpZ25vcmUgYi9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vLmN2c2lnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTBiNzZiYS4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vLmN2c2lnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotamF2YUNvbXBpbGVyLnhhbGFuLWRlYnVnZ2VyLmphci5hcmdzCi1idWlsZC54bWwKLXhhbGFuLWRlYnVnZ2VyLmphcgotdGVtcC5mb2xkZXIKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi8ucHJvamVjdCBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2M1NmJjMi4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YWJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzQnVpbGRlcjwvbmFtZT4KLQkJCTxhcmd1bWVudHM+Ci0JCQk8L2FyZ3VtZW50cz4KLQkJPC9idWlsZENvbW1hbmQ+Ci0JPC9idWlsZFNwZWM+Ci0JPG5hdHVyZXM+Ci0JCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuYXBpLnRvb2xzLmFwaUFuYWx5c2lzTmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGJhMTMwOS4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0jVGh1IEphbiAwMyAyMjoyNDo1MCBFU1QgMjAwOAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLWVuY29kaW5nLzxwcm9qZWN0Pj1JU08tODg1OS0xCmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTBiYzM0Ny4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotI1N1biBEZWMgMTYgMDg6NDg6NTIgR01UIDIwMDcKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLmlubGluZUpzckJ5dGVjb2RlPWRpc2FibGVkCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb2RlZ2VuLnRhcmdldFBsYXRmb3JtPTEuMgotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi51bnVzZWRMb2NhbD1wcmVzZXJ2ZQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29tcGxpYW5jZT0xLjQKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmRlYnVnLmxpbmVOdW1iZXI9Z2VuZXJhdGUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmRlYnVnLmxvY2FsVmFyaWFibGU9Z2VuZXJhdGUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmRlYnVnLnNvdXJjZUZpbGU9Z2VuZXJhdGUKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj13YXJuaW5nCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnNvdXJjZT0xLjMKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLnByZWZzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5wZGUucHJlZnMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxZTY4YjkuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5wZGUucHJlZnMKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi0jV2VkIEp1bCAzMCAyMDo1NzoxNSBCU1QgMjAwOAotY29tcGlsZXJzLmYudW5yZXNvbHZlZC1mZWF0dXJlcz0xCi1jb21waWxlcnMuZi51bnJlc29sdmVkLXBsdWdpbnM9MQotY29tcGlsZXJzLmluY29tcGF0aWJsZS1lbnZpcm9ubWVudD0xCi1jb21waWxlcnMucC5idWlsZD0wCi1jb21waWxlcnMucC5kZXByZWNhdGVkPTEKLWNvbXBpbGVycy5wLmRpc2NvdXJhZ2VkLWNsYXNzPTEKLWNvbXBpbGVycy5wLmludGVybmFsPTEKLWNvbXBpbGVycy5wLm1pc3NpbmctYnVuZGxlLWNsYXNzcGF0aC1lbnRyaWVzPTAKLWNvbXBpbGVycy5wLm1pc3NpbmctcGFja2FnZXM9MgotY29tcGlsZXJzLnAubm8tcmVxdWlyZWQtYXR0PTAKLWNvbXBpbGVycy5wLm5vdC1leHRlcm5hbGl6ZWQtYXR0PTEKLWNvbXBpbGVycy5wLnVua25vd24tYXR0cmlidXRlPTAKLWNvbXBpbGVycy5wLnVua25vd24tY2xhc3M9MQotY29tcGlsZXJzLnAudW5rbm93bi1lbGVtZW50PTAKLWNvbXBpbGVycy5wLnVua25vd24taWRlbnRpZmllcj0xCi1jb21waWxlcnMucC51bmtub3duLXJlc291cmNlPTEKLWNvbXBpbGVycy5wLnVucmVzb2x2ZWQtZXgtcG9pbnRzPTAKLWNvbXBpbGVycy5wLnVucmVzb2x2ZWQtaW1wb3J0PTAKLWNvbXBpbGVycy5zLmNyZWF0ZS1kb2NzPWZhbHNlCi1jb21waWxlcnMucy5kb2MtZm9sZGVyPWRvYwotY29tcGlsZXJzLnMub3Blbi10YWdzPTEKLWNvbXBpbGVycy51c2UtcHJvamVjdD10cnVlCi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL01FVEEtSU5GL01BTklGRVNULk1GIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlN2JmM2VmLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZS4wCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDEuMC4wLnF1YWxpZmllcgotQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS40Ci1CdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KLUJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yLjAKLUV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyOwotICB1c2VzOj0ib3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Z2dlciwKLSAgIG9yZy5hcGFjaGUueHBhdGgsCi0gICBvcmcuYXBhY2hlLnhhbGFuLnRyYWNlLAotICAgamF2YXgueG1sLnRyYW5zZm9ybSwKLSAgIG9yZy5hcGFjaGUueGFsYW4udGVtcGxhdGVzIgotUmVxdWlyZS1CdW5kbGU6IG9yZy5hcGFjaGUueGFsYW47YnVuZGxlLXZlcnNpb249IlsyLjcuMCwyLjguMCkiLAotIG9yZy5hcGFjaGUueG1sLnNlcmlhbGl6ZXI7YnVuZGxlLXZlcnNpb249IlsyLjcuMCwyLjguMCkiLAotIG9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5kZWJ1ZztidW5kbGUtdmVyc2lvbj0iWzEuMC4wLDIuMC4wKSI7cmVzb2x1dGlvbjo9b3B0aW9uYWwKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9YYWxhbkF0dHJpYnV0ZXMucHJvcGVydGllcyBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9YYWxhbkF0dHJpYnV0ZXMucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTUxYjVjNy4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vWGFsYW5BdHRyaWJ1dGVzLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIENvcHlyaWdodCAoYykgMjAwNyBDaGFzZSBUZWNobm9sb2d5IEx0ZCAtIGh0dHA6Ly93d3cuY2hhc2V0ZWNobm9sb2d5LmNvLnVrCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0jIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0jCi0jIENvbnRyaWJ1dG9yczoKLSMgICAgRG91ZyBTYXRjaHdlbGwgKENoYXNlIFRlY2hub2xvZ3kgTHRkKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotT1BUSU1JWkU9aHR0cDovL3htbC5hcGFjaGUub3JnL3hhbGFuL2ZlYXR1cmVzL29wdGltaXplCi1PUFRJTUlaRS5UWVBFPWJvb2xlYW4KLU9QVElNSVpFLkRFU0M9T3B0aW1pemUgc3R5bGVzaGVldCBwcm9jZXNzaW5nLiBCeSBkZWZhdWx0LCB0aGlzIGF0dHJpYnV0ZSBpcyBzZXQgdG8gdHJ1ZS4gWW91IG1heSBuZWVkIHRvIHNldCBpdCB0byBmYWxzZSBmb3IgdG9vbGluZyBhcHBsaWNhdGlvbnMuCi0KLUlOQ1JFTUVOVEFMPWh0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbi9mZWF0dXJlcy9pbmNyZW1lbnRhbAotSU5DUkVNRU5UQUwuVFlQRT1ib29sZWFuCi1JTkNSRU1FTlRBTC5ERVNDPVByb2R1Y2Ugb3V0cHV0IGluY3JlbWVudGFsbHksIHJhdGhlciB0aGFuIHdhaXRpbmcgdG8gZmluaXNoIHBhcnNpbmcgdGhlIGlucHV0IGJlZm9yZSBnZW5lcmF0aW5nIGFueSBvdXRwdXQuIEJ5IGRlZmF1bHQgdGhpcyBhdHRyaWJ1dGUgaXMgc2V0IHRvIGZhbHNlLiBZb3UgY2FuIHR1cm4gdGhpcyBhdHRyaWJ1dGUgb24gdG8gdHJhbnNmb3JtIGxhcmdlIGRvY3VtZW50cyB3aGVyZSB0aGUgc3R5bGVzaGVldCBzdHJ1Y3R1cmUgaXMgb3B0aW1pemVkIHRvIGV4ZWN1dGUgaW5kaXZpZHVhbCB0ZW1wbGF0ZXMgd2l0aG91dCBoYXZpbmcgdG8gcGFyc2UgdGhlIGVudGlyZSBkb2N1bWVudC4KLQotU09VUkNFX0xPQ0FUSU9OPWh0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbi9mZWF0dXJlcy9zb3VyY2VfbG9jYXRpb24KLVNPVVJDRV9MT0NBVElPTi5UWVBFPWJvb2xlYW4KLVNPVVJDRV9MT0NBVElPTi5ERVNDPUJ5IGRlZmF1bHQsIHRoaXMgYXR0cmlidXRlIGlzIHNldCB0byBmYWxzZS4gU2V0dGluZyB0aGlzIGF0dHJpYnV0ZSB0byB0cnVlIGludm9sdmVzIGEgc3Vic3RhbnRpYWwgaW5jcmVhc2UgaW4gc3RvcmFnZSBjb3N0IHBlciBzb3VyY2UgZG9jdW1lbnQgbm9kZS4gSWYgeW91IHdhbnQgdG8gdXNlIHRoZSBOb2RlSW5mbyBleHRlbnNpb24gZnVuY3Rpb25zIChvciBzb21lIG90aGVyIG1lY2hhbmlzbSkgdG8gcHJvdmlkZSB0aGlzIGluZm9ybWF0aW9uIGR1cmluZyBhIHRyYW5zZm9ybSwgeW91IG11c3Qgc2V0IHRoZSBhdHRyaWJ1dGUgdG8gdHJ1ZSBiZWZvcmUgZ2VuZXJhdGluZyB0aGUgVHJhbnNmb3JtZXIgYW5kIHByb2Nlc3NpbmcgdGhlIHN0eWxlc2hlZXQuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL1hhbGFuT3V0cHV0UHJvcGVydGllcy5wcm9wZXJ0aWVzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL1hhbGFuT3V0cHV0UHJvcGVydGllcy5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZWViMDcxLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9YYWxhbk91dHB1dFByb3BlcnRpZXMucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ29weXJpZ2h0IChjKSAyMDA3IENoYXNlIFRlY2hub2xvZ3kgTHRkIC0gaHR0cDovL3d3dy5jaGFzZXRlY2hub2xvZ3kuY28udWsKLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSMKLSMgQ29udHJpYnV0b3JzOgotIyAgICBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi1TX0tFWV9JTkRFTlRfQU1PVU5UPXtodHRwOi8veG1sLmFwYWNoZS5vcmcveGFsYW59aW5kZW50LWFtb3VudAotU19LRVlfSU5ERU5UX0FNT1VOVC5ERVNDPVRoZSBub24tc3RhbmRhcmQgcHJvcGVydHkga2V5IHRvIHVzZSB0byBzZXQgdGhlXG5cCi0JbnVtYmVyIG9mIHdoaXRlcGFjZXMgdG8gaW5kZW50IGJ5LCBwZXIgaW5kZW50YXRpb24gbGV2ZWwsXG5cCi0gICAgaWYgaW5kZW50PSJ5ZXMiCi0KLVNfS0VZX0xJTkVfU0VQQVJBVE9SPXtodHRwOi8veG1sLmFwYWNoZS5vcmcveGFsYW59bGluZS1zZXBhcmF0b3IKLVNfS0VZX0xJTkVfU0VQQVJBVE9SLkRFU0M9VGhlIG5vbi1zdGFuZGFyZCBwcm9wZXJ0eSBrZXkgdG8gdXNlIHRvIHNldCB0aGUgY2hhcmFjdGVycyB0byB3cml0ZSBvdXQgYXMgYXQgdGhlIGVuZCBvZiBhIGxpbmUsXG5cCi0JcmF0aGVyIHRoYW4gdGhlIGRlZmF1bHQgb25lcyBmcm9tIHRoZSBydW50aW1lLgotCi1TX0tFWV9DT05URU5UX0hBTkRMRVI9e2h0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbn1jb250ZW50LWhhbmRsZXIKLVNfS0VZX0NPTlRFTlRfSEFORExFUi5ERVNDPVRoaXMgbm9uLXN0YW5kYXJkIHByb3BlcnR5IGtleSBpcyB1c2VkIHRvIHNldCB0aGUgbmFtZSBvZiB0aGUgZnVsbHkgcXVhbGlmaWVkXG5cCi0gICAgIEphdmEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBDb250ZW50SGFuZGxlciBpbnRlcmZhY2UuXG5cCi0gICAgIEZ1bGx5IHF1YWxpZmllZCBuYW1lIG9mIGNsYXNzIHdpdGggYSBkZWZhdWx0IGNvbnN0cnVjdG9yIHRoYXRcblwKLSAgICAgaW1wbGVtZW50cyB0aGUgQ29udGVudEhhbmRsZXIgaW50ZXJmYWNlLCB3aGVyZSB0aGUgcmVzdWx0IHRyZWUgZXZlbnRzXG5cCi0gICAgIHdpbGwgYmUgc2VudCB0by4KLQotU19LRVlfRU5USVRJRVM9e2h0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbn1lbnRpdGllcwotU19LRVlfRU5USVRJRVMuREVTQz1UaGlzIG5vbi1zdGFuZGFyZCBwcm9wZXJ0eSBrZXkgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSBmaWxlXG5cCi0gICAgIHRoYXQgc3BlY2lmaWVzIGNoYXJhY3RlciB0byBlbnRpdHkgcmVmZXJlbmNlIG1hcHBpbmdzLgotCi1TX1VTRV9VUkxfRVNDQVBJTkc9e2h0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbn11c2UtdXJsLWVzY2FwaW5nCi1TX1VTRV9VUkxfRVNDQVBJTkcuREVTQz1UaGlzIG5vbi1zdGFuZGFyZCBwcm9wZXJ0eSBrZXkgaXMgdXNlZCB0byBzZXQgYSB2YWx1ZSBvZiAieWVzIiBpZiB0aGUgaHJlZiB2YWx1ZXMgZm9yIEhUTUwgc2VyaWFsaXphdGlvbiBzaG91bGRcblwKLSAgICAgdXNlICV4eCBlc2NhcGluZy4KLSAgICAgCi1TX09NSVRfTUVUQV9UQUc9e2h0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbn1vbWl0LW1ldGEtdGFnCi1TX09NSVRfTUVUQV9UQUcuREVTQz1UaGlzIG5vbi1zdGFuZGFyZCBwcm9wZXJ0eSBrZXkgaXMgdXNlZCB0byBzZXQgYSB2YWx1ZSBvZiAieWVzIiBpZiB0aGUgTUVUQSB0YWcgc2hvdWxkIGJlIG9taXR0ZWQgd2hlcmUgaXQgd291bGRcblwKLSAgICAgb3RoZXJ3aXNlIGJlIHN1cHBsaWVkLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9hYm91dC5odG1sIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxOTlkZjMuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wLy9FTiI+Ci08SFRNTD4KLQotPGhlYWQ+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgotPC9oZWFkPgotCi08Qk9EWSBsYW5nPSJFTi1VUyI+Ci0KLTxIMz5BYm91dCBUaGlzIENvbnRlbnQ8L0gzPgotCi08UD5KdW5lLCAyMDA4PC9QPgotCi08SDM+TGljZW5zZTwvSDM+Ci0KLTxQPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAKLSgiQ29udGVudCIpLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IAotdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIAotKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIGF0Ci08QSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLnBocDwvQT4uIAotRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9QPgotCi08UD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSAKLUNvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5ICgiUmVkaXN0cmlidXRvciIpIGFuZCBkaWZmZXJlbnQgCi10ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkgYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiAKLUNoZWNrIHRoZSBSZWRpc3RyaWJ1dG9yknMgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoIAotbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgCi10ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UgY29kZSBpbiB0aGUgQ29udGVudCAKLWFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdAotPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvPC9BPi48L1A+Ci0KLTwvQk9EWT4KLTwvSFRNTD4KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9idWlsZC5wcm9wZXJ0aWVzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiNTZjODIuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi1zb3VyY2UuLiA9IHNyYy1kZWJ1Z2dlci8KLW91dHB1dC4uID0gYmluLwotYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgLixcCi0gICAgICAgICAgICAgICBYYWxhbk91dHB1dFByb3BlcnRpZXMucHJvcGVydGllcyxcCi0gICAgICAgICAgICAgICBYYWxhbkF0dHJpYnV0ZXMucHJvcGVydGllcyxcCi0gICAgICAgICAgICAgICBhYm91dC5odG1sLFwKLSAgICAgICAgICAgICAgIHBsdWdpbi5wcm9wZXJ0aWVzCi0KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9wbHVnaW4ucHJvcGVydGllcyBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9wbHVnaW4ucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI0Y2JlNC4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vcGx1Z2luLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLSNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4KLUJ1bmRsZS1OYW1lLjAgPSBYU0wgWGFsYW4gU3VwcG9ydCAoSW5jdWJhdGluZykKLXByb2Nlc3NvclR5cGUubGFiZWwuMCA9IFhhbGFuCi1wcm9jZXNzb3IubGFiZWwuMCA9IFhhbGFuIDIuNS4xCi1wcm9jZXNzb3IubGFiZWwuMSA9IFhhbGFuIDIuNy4xCi1CdW5kbGUtVmVuZG9yLjAgPSBFY2xpcHNlLm9yZwotdHJhbnNmb3JtZXJGYWN0b3J5TmFtZVhhbGFuID0gSW50ZXJwcmV0aXZlCi10cmFuc2Zvcm1lckZhY3RvcnlOYW1lWGFsYW5YU0xUQyA9IENvbXBpbGluZwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9wbHVnaW4ueG1sIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZhNjAyOTcuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL3BsdWdpbi54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPD9lY2xpcHNlIHZlcnNpb249IjMuMiI/PgotPHBsdWdpbj4KLSAgIDxleHRlbnNpb24KLSAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS53c3QueHNsLmpheHAubGF1bmNoaW5nLnByb2Nlc3NvclR5cGUiPgotICAgICAgPHByb2Nlc3NvclR5cGUKLSAgICAgICAgICAgIGF0dHJpYnV0ZVByb3BlcnRpZXM9IlhhbGFuQXR0cmlidXRlcy5wcm9wZXJ0aWVzIgotICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4ucHJvY2Vzc29yVHlwZSIKLSAgICAgICAgICAgIGxhYmVsPSIlcHJvY2Vzc29yVHlwZS5sYWJlbC4wIgotICAgICAgICAgICAgb3V0cHV0UHJvcGVydGllcz0iWGFsYW5PdXRwdXRQcm9wZXJ0aWVzLnByb3BlcnRpZXMiPgotICAgICAgICAgPHRyYW5zZm9ybWVyRmFjdG9yeQotICAgICAgICAgICAgICAgZmFjdG9yeUNsYXNzPSJvcmcuYXBhY2hlLnhhbGFuLnByb2Nlc3Nvci5UcmFuc2Zvcm1lckZhY3RvcnlJbXBsIgotICAgICAgICAgICAgICAgbmFtZT0iJXRyYW5zZm9ybWVyRmFjdG9yeU5hbWVYYWxhbiI+Ci0gICAgICAgICA8L3RyYW5zZm9ybWVyRmFjdG9yeT4KLSAgICAgICAgIDx0cmFuc2Zvcm1lckZhY3RvcnkKLSAgICAgICAgICAgICAgIGZhY3RvcnlDbGFzcz0ib3JnLmFwYWNoZS54YWxhbi54c2x0Yy50cmF4LlRyYW5zZm9ybWVyRmFjdG9yeUltcGwiCi0gICAgICAgICAgICAgICBuYW1lPSIldHJhbnNmb3JtZXJGYWN0b3J5TmFtZVhhbGFuWFNMVEMiPgotICAgICAgICAgPC90cmFuc2Zvcm1lckZhY3Rvcnk+Ci0gICAgICA8L3Byb2Nlc3NvclR5cGU+Ci0gICA8L2V4dGVuc2lvbj4KLSAgIDxleHRlbnNpb24KLSAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS53c3QueHNsLmpheHAubGF1bmNoaW5nLmRlYnVnZ2VyIj4KLSAgICAgIDxkZWJ1Z2dlcgotICAgICAgICAgICAgY2xhc3NOYW1lPSJvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuRGVidWdnZXIiCi0gICAgICAgICAgICBjbGFzc3BhdGg9IiR7ZWNsaXBzZV9vcmJpdDpvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFufSIKLSAgICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyIgotICAgICAgICAgICAgbmFtZT0iWGFsYW4gMi41LjEgb3IgZ3JlYXRlciIKLSAgICAgICAgICAgIHByb2Nlc3NvclR5cGVJZD0ib3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5wcm9jZXNzb3JUeXBlIgotICAgICAgICAgICAgdHJhbnNmb3JtZXJGYWN0b3J5Q2xhc3M9Im9yZy5hcGFjaGUueGFsYW4ucHJvY2Vzc29yLlRyYW5zZm9ybWVyRmFjdG9yeUltcGwiPgotICAgICAgPC9kZWJ1Z2dlcj4KLSAgIDwvZXh0ZW5zaW9uPgotICAgPGV4dGVuc2lvbgotICAgICAgICAgcG9pbnQ9Im9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5sYXVuY2hpbmcucHJvY2Vzc29yIj4KLSAgICAgIDwhLS0gQW4gYWRvcHRlciBjYW4gc3BlY2lmeSB0aGUgJHtlY2xpcHNlX29yYml0OiB9IHZhcmlhYmxlIHRvIGluZGljYXRlIHdoaWNoIGVjbGlwc2UKLSAgICAgICAgICAgYnVuZGxlIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY2xhc3MgcGF0aC4gLS0+Ci0gICAgICA8cHJvY2Vzc29yCi0gICAgICAgICAgICBjbGFzc3BhdGg9IiR7ZWNsaXBzZV9vcmJpdDpvcmcuYXBhY2hlLnhhbGFufTske2VjbGlwc2Vfb3JiaXQ6b3JnLmFwYWNoZS54bWwuc2VyaWFsaXplcn07JHtlY2xpcHNlX29yYml0Om9yZy5hcGFjaGUuYmNlbH07JHtlY2xpcHNlX29yYml0OmphdmFfY3VwLnJ1bnRpbWV9IgotICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLnhhbGFuLnByb2Nlc3NvciIKLSAgICAgICAgICAgIGxhYmVsPSIlcHJvY2Vzc29yLmxhYmVsLjEiCi0gICAgICAgICAgICBwcm9jZXNzb3JUeXBlSWQ9Im9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4ucHJvY2Vzc29yVHlwZSIKLSAgICAgICAgICAgIGRlYnVnZ2VySWQ9Im9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIiCi0gICAgICAgICAgICBzdXBwb3J0cz0iMS4wIj4KLSAgICAgIDwvcHJvY2Vzc29yPgotICAgPC9leHRlbnNpb24+Ci08L3BsdWdpbj4KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC94YWxhbi9kZWJ1Z2dlci9YYWxhbkRlYnVnZ2VyLmphdmEgYi9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vc3JjLWRlYnVnZ2VyL29yZy9lY2xpcHNlL3dzdC94c2wveGFsYW4vZGVidWdnZXIvWGFsYW5EZWJ1Z2dlci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjJlYWIzLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC94YWxhbi9kZWJ1Z2dlci9YYWxhbkRlYnVnZ2VyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDA3IENoYXNlIFRlY2hub2xvZ3kgTHRkIC0gaHR0cDovL3d3dy5jaGFzZXRlY2hub2xvZ3kuY28udWsKLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0gKgotICogQ29udHJpYnV0b3JzOgotICogICAgIERvdWcgU2F0Y2h3ZWxsIChDaGFzZSBUZWNobm9sb2d5IEx0ZCkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotcGFja2FnZSBvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyOwotCi1pbXBvcnQgamF2YS51dGlsLlRvb01hbnlMaXN0ZW5lcnNFeGNlcHRpb247Ci0KLWltcG9ydCBqYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyOwotaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJGYWN0b3J5OwotCi1pbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nOwotaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZ0ZhY3Rvcnk7Ci1pbXBvcnQgb3JnLmFwYWNoZS54YWxhbi5wcm9jZXNzb3IuVHJhbnNmb3JtZXJGYWN0b3J5SW1wbDsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRyYWNlLlRyYWNlTWFuYWdlcjsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRyYW5zZm9ybWVyLlRyYW5zZm9ybWVySW1wbDsKLWltcG9ydCBvcmcuZWNsaXBzZS53c3QueHNsLmpheHAuZGVidWcuZGVidWdnZXIuQWJzdHJhY3REZWJ1Z2dlcjsKLWltcG9ydCBvcmcuZWNsaXBzZS53c3QueHNsLmpheHAuZGVidWcuZGVidWdnZXIuQnJlYWtQb2ludDsKLWltcG9ydCBvcmcuZWNsaXBzZS53c3QueHNsLmpheHAuZGVidWcuZGVidWdnZXIuVmFyaWFibGU7Ci1pbXBvcnQgb3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uOwotCi1wdWJsaWMgY2xhc3MgWGFsYW5EZWJ1Z2dlciBleHRlbmRzIEFic3RyYWN0RGVidWdnZXIKLXsKLQlwcml2YXRlIHN0YXRpYyBmaW5hbCBMb2cgbG9nID0gTG9nRmFjdG9yeS5nZXRMb2coWGFsYW5EZWJ1Z2dlci5jbGFzcyk7Ci0JcHJpdmF0ZSBYYWxhblRyYWNlTGlzdGVuZXIgY3VycmVudFRyYWNlTGlzdGVuZXI7Ci0JcHJpdmF0ZSBUcmFuc2Zvcm1lckltcGwgbGFzdFRyYW5zZm9ybWVySW5DaGFpbjsKLQkKLQlwdWJsaWMgdm9pZCBzZXRUcmFuc2Zvcm1lckZhY3RvcnkoVHJhbnNmb3JtZXJGYWN0b3J5IGZhY3RvcnkpCi0JewotCQlUcmFuc2Zvcm1lckZhY3RvcnlJbXBsIHRmaSA9IChUcmFuc2Zvcm1lckZhY3RvcnlJbXBsKSBmYWN0b3J5OwotCQl0Zmkuc2V0QXR0cmlidXRlKFRyYW5zZm9ybWVyRmFjdG9yeUltcGwuRkVBVFVSRV9TT1VSQ0VfTE9DQVRJT04sIEJvb2xlYW4uVFJVRSk7Ci0JCXRmaS5zZXRBdHRyaWJ1dGUoVHJhbnNmb3JtZXJGYWN0b3J5SW1wbC5GRUFUVVJFX09QVElNSVpFLCBCb29sZWFuLkZBTFNFKTsKLQl9Ci0JCi0JcHVibGljIHN5bmNocm9uaXplZCB2b2lkIGRlYnVnZ2VyU3VzcGVuZGVkKEJyZWFrUG9pbnQgYnJlYWtwb2ludCkKLQl7Ci0JCS8vIGZsdXNoIHRoZSBzZXJpYWxpemVyICh3aGljaCBpcyBidWZmZXJlZCBieSBYYWxhbiBpdHNlbGYpCi0JCXRyeQotCQl7Ci0JCQlsYXN0VHJhbnNmb3JtZXJJbkNoYWluLmdldFNlcmlhbGl6YXRpb25IYW5kbGVyKCkuZmx1c2hQZW5kaW5nKCk7Ci0JCX0KLQkJY2F0Y2ggKFNBWEV4Y2VwdGlvbiBlKQotCQl7Ci0JCQlsb2cuZXJyb3IoIkVycm9yIGZsdXNoaW5nIHNlcmlhbGl6ZXIiLCBlKTsKLQkJfQotCQlzdXBlci5kZWJ1Z2dlclN1c3BlbmRlZChicmVha3BvaW50KTsKLQl9Ci0KLQlwdWJsaWMgdm9pZCBhZGRUcmFuc2Zvcm1lcihUcmFuc2Zvcm1lciB0cmFuc2Zvcm1lcikKLQl7Ci0JCVRyYW5zZm9ybWVySW1wbCB0cmFuc2Zvcm1lckltcGwgPSAoVHJhbnNmb3JtZXJJbXBsKSB0cmFuc2Zvcm1lcjsKLQkJCi0JCWxhc3RUcmFuc2Zvcm1lckluQ2hhaW4gPSB0cmFuc2Zvcm1lckltcGw7Ci0JCQotCQlUcmFjZU1hbmFnZXIgdHJNZ3IgPSB0cmFuc2Zvcm1lckltcGwuZ2V0VHJhY2VNYW5hZ2VyKCk7Ci0JCXRyeQotCQl7Ci0vLwkJCVhhbGFuUHJpbnRUcmFjZUxpc3RlbmVyIHByaW50ZXIgPSBuZXcgWGFsYW5QcmludFRyYWNlTGlzdGVuZXIobmV3IFByaW50V3JpdGVyKFN5c3RlbS5lcnIpKTsKLS8vCQkJcHJpbnRlci5tX3RyYWNlRWxlbWVudHMgPSB0cnVlOwotLy8JCQlwcmludGVyLm1fdHJhY2VTZWxlY3Rpb24gPSB0cnVlOwotLy8JCQlwcmludGVyLm1fdHJhY2VUZW1wbGF0ZXMgPSB0cnVlOwotLy8JCQl0ck1nci5hZGRUcmFjZUxpc3RlbmVyKHByaW50ZXIpOwotCQkJCi0JCQlYYWxhblRyYWNlTGlzdGVuZXIgdHJhY2VMaXN0ZW5lciA9IG5ldyBYYWxhblRyYWNlTGlzdGVuZXIodGhpcyk7Ci0JCQl0ck1nci5hZGRUcmFjZUxpc3RlbmVyKHRyYWNlTGlzdGVuZXIpOwotCQl9Ci0JCWNhdGNoIChUb29NYW55TGlzdGVuZXJzRXhjZXB0aW9uIGUpCi0JCXsKLQkJCS8vIGlnbm9yZQotCQl9Ci0JfQotCi0JLyoqCi0JICogR2V0cyBhIHZhcmlhYmxlIGJ5IElECi0JICogQHNpbmNlIDEuMAotCSAqLwotCXB1YmxpYyBWYXJpYWJsZSBnZXRWYXJpYWJsZShpbnQgaWQpCi0JewotCQlyZXR1cm4gY3VycmVudFRyYWNlTGlzdGVuZXIuZ2V0VmFyaWFibGUoaWQpOwotCX0KLQotCXZvaWQgc2V0Q3VycmVudFRyYWNlTGlzdGVuZXIoWGFsYW5UcmFjZUxpc3RlbmVyIGN1cnJlbnRUcmFjZUxpc3RlbmVyKQotCXsKLQkJbG9nLmRlYnVnKCJTZXR0aW5nIG5ldyBYYWxhblRyYWNlTGlzdGVuZXIiKTsKLQkJdGhpcy5jdXJyZW50VHJhY2VMaXN0ZW5lciA9IGN1cnJlbnRUcmFjZUxpc3RlbmVyOwotCX0KLX0KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC94YWxhbi9kZWJ1Z2dlci9YYWxhblByaW50VHJhY2VMaXN0ZW5lci5qYXZhIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL3NyYy1kZWJ1Z2dlci9vcmcvZWNsaXBzZS93c3QveHNsL3hhbGFuL2RlYnVnZ2VyL1hhbGFuUHJpbnRUcmFjZUxpc3RlbmVyLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNkNmMwN2QuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL3NyYy1kZWJ1Z2dlci9vcmcvZWNsaXBzZS93c3QveHNsL3hhbGFuL2RlYnVnZ2VyL1hhbGFuUHJpbnRUcmFjZUxpc3RlbmVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAwNyBDaGFzZSBUZWNobm9sb2d5IEx0ZCAtIGh0dHA6Ly93d3cuY2hhc2V0ZWNobm9sb2d5LmNvLnVrCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlcjsKLQotaW1wb3J0IGphdmEuaW8uUHJpbnRXcml0ZXI7Ci0KLWltcG9ydCBqYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyRXhjZXB0aW9uOwotCi1pbXBvcnQgb3JnLmFwYWNoZS54YWxhbi50ZW1wbGF0ZXMuQ29uc3RhbnRzOwotaW1wb3J0IG9yZy5hcGFjaGUueGFsYW4udGVtcGxhdGVzLkVsZW1UZW1wbGF0ZTsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRlbXBsYXRlcy5FbGVtVGV4dExpdGVyYWw7Ci1pbXBvcnQgb3JnLmFwYWNoZS54YWxhbi50cmFjZS5FbmRTZWxlY3Rpb25FdmVudDsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRyYWNlLlByaW50VHJhY2VMaXN0ZW5lcjsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRyYWNlLlNlbGVjdGlvbkV2ZW50OwotaW1wb3J0IG9yZy5hcGFjaGUueGFsYW4udHJhY2UuVHJhY2VyRXZlbnQ7Ci0KLXB1YmxpYyBjbGFzcyBYYWxhblByaW50VHJhY2VMaXN0ZW5lciBleHRlbmRzIFByaW50VHJhY2VMaXN0ZW5lcgotewotCXByaXZhdGUgZmluYWwgUHJpbnRXcml0ZXIgd3JpdGVyOwotCi0JcHVibGljIFhhbGFuUHJpbnRUcmFjZUxpc3RlbmVyKFByaW50V3JpdGVyIHB3KQotCXsKLQkJc3VwZXIocHcpOwotCQl0aGlzLndyaXRlciA9IHB3OwotCX0KLQotCXB1YmxpYyB2b2lkIF90cmFjZShUcmFjZXJFdmVudCBldikKLQl7Ci0JCXN3aXRjaCAoZXYubV9zdHlsZU5vZGUuZ2V0WFNMVG9rZW4oKSkKLQkJewotCQkJY2FzZSBDb25zdGFudHMuRUxFTU5BTUVfVEVYVExJVEVSQUxSRVNVTFQ6Ci0JCQkJaWYgKG1fdHJhY2VFbGVtZW50cykKLQkJCQl7Ci0JCQkJCXdyaXRlci5wcmludChldi5tX3N0eWxlTm9kZS5nZXRTeXN0ZW1JZCgpICsgIiBMaW5lICMiICsgZXYubV9zdHlsZU5vZGUuZ2V0TGluZU51bWJlcigpICsgIiwgIiArICJDb2x1bW4gIyIgKyBldi5tX3N0eWxlTm9kZS5nZXRDb2x1bW5OdW1iZXIoKSArICIgLS0gIiArIGV2Lm1fc3R5bGVOb2RlLmdldE5vZGVOYW1lKCkKLQkJCQkJCQkrICI6ICIpOwotCi0JCQkJCUVsZW1UZXh0TGl0ZXJhbCBldGwgPSAoRWxlbVRleHRMaXRlcmFsKSBldi5tX3N0eWxlTm9kZTsKLQkJCQkJU3RyaW5nIGNoYXJzID0gbmV3IFN0cmluZyhldGwuZ2V0Q2hhcnMoKSwgMCwgZXRsLmdldENoYXJzKCkubGVuZ3RoKTsKLQotCQkJCQl3cml0ZXIucHJpbnRsbigiICAgICIgKyBjaGFycy50cmltKCkpOwotCQkJCX0KLQkJCQlicmVhazsKLQkJCWNhc2UgQ29uc3RhbnRzLkVMRU1OQU1FX1RFTVBMQVRFOgotCQkJCWlmIChtX3RyYWNlVGVtcGxhdGVzIHx8IG1fdHJhY2VFbGVtZW50cykKLQkJCQl7Ci0JCQkJCUVsZW1UZW1wbGF0ZSBldCA9IChFbGVtVGVtcGxhdGUpIGV2Lm1fc3R5bGVOb2RlOwotCi0JCQkJCXdyaXRlci5wcmludChldC5nZXRTeXN0ZW1JZCgpICsgIiBMaW5lICMiICsgZXQuZ2V0TGluZU51bWJlcigpICsgIiwgIiArICJDb2x1bW4gIyIgKyBldC5nZXRDb2x1bW5OdW1iZXIoKSArICI6ICIgKyBldC5nZXROb2RlTmFtZSgpICsgIiAiKTsKLQotCQkJCQlpZiAobnVsbCAhPSBldC5nZXRNYXRjaCgpKQotCQkJCQl7Ci0JCQkJCQl3cml0ZXIucHJpbnQoIm1hdGNoPSciICsgZXQuZ2V0TWF0Y2goKS5nZXRQYXR0ZXJuU3RyaW5nKCkgKyAiJyAiKTsKLQkJCQkJfQotCi0JCQkJCWlmIChudWxsICE9IGV0LmdldE5hbWUoKSkKLQkJCQkJewotCQkJCQkJd3JpdGVyLnByaW50KCJuYW1lPSciICsgZXQuZ2V0TmFtZSgpICsgIicgIik7Ci0JCQkJCX0KLQotCQkJCQl3cml0ZXIucHJpbnRsbigpOwotCQkJCX0KLQkJCQlicmVhazsKLQkJCWRlZmF1bHQ6Ci0JCQkJaWYgKG1fdHJhY2VFbGVtZW50cykKLQkJCQl7Ci0JCQkJCXdyaXRlcgotCQkJCQkJCS5wcmludGxuKGV2Lm1fc3R5bGVOb2RlLmdldFN5c3RlbUlkKCkgKyAiIExpbmUgIyIgKyBldi5tX3N0eWxlTm9kZS5nZXRMaW5lTnVtYmVyKCkgKyAiLCAiICsgIkNvbHVtbiAjIiArIGV2Lm1fc3R5bGVOb2RlLmdldENvbHVtbk51bWJlcigpICsgIjogIgotCQkJCQkJCQkJKyBldi5tX3N0eWxlTm9kZS5nZXROb2RlTmFtZSgpKTsKLQkJCQl9Ci0JCX0KLQl9Ci0KLQlwdWJsaWMgdm9pZCBzZWxlY3RlZChTZWxlY3Rpb25FdmVudCBldikgdGhyb3dzIFRyYW5zZm9ybWVyRXhjZXB0aW9uCi0JewotCQl3cml0ZXIucHJpbnQoInNlbGVjdGVkOiAiKTsKLQkJc3VwZXIuc2VsZWN0ZWQoZXYpOwotCX0KLQkKLQlwdWJsaWMgdm9pZCBzZWxlY3RFbmQoRW5kU2VsZWN0aW9uRXZlbnQgZXYpIHRocm93cyBUcmFuc2Zvcm1lckV4Y2VwdGlvbgotCXsKLQkJd3JpdGVyLnByaW50KCJzZWxlY3RFbmQ6ICIpOwotCQlzdXBlci5zZWxlY3RFbmQoZXYpOwotCX0KLQkKLQlwdWJsaWMgdm9pZCB0cmFjZShUcmFjZXJFdmVudCBldikKLQl7Ci0JCXdyaXRlci5wcmludCgidHJhY2U6ICIpOwotCQlzdXBlci50cmFjZShldik7Ci0JfQotCQotCXB1YmxpYyB2b2lkIHRyYWNlRW5kKFRyYWNlckV2ZW50IGV2KQotCXsKLQkJd3JpdGVyLnByaW50KCJ0cmFjZUVuZDogIik7Ci0JCV90cmFjZShldik7Ci0JfQotfQpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL3NyYy1kZWJ1Z2dlci9vcmcvZWNsaXBzZS93c3QveHNsL3hhbGFuL2RlYnVnZ2VyL1hhbGFuUm9vdFN0eWxlRnJhbWUuamF2YSBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC94YWxhbi9kZWJ1Z2dlci9YYWxhblJvb3RTdHlsZUZyYW1lLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2NWI3MWEuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL3NyYy1kZWJ1Z2dlci9vcmcvZWNsaXBzZS93c3QveHNsL3hhbGFuL2RlYnVnZ2VyL1hhbGFuUm9vdFN0eWxlRnJhbWUuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcgQ2hhc2UgVGVjaG5vbG9neSBMdGQgLSBodHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51awotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgRG91ZyBTYXRjaHdlbGwgKENoYXNlIFRlY2hub2xvZ3kgTHRkKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1wYWNrYWdlIG9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXI7Ci0KLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOwotaW1wb3J0IGphdmEudXRpbC5MaXN0OwotaW1wb3J0IGphdmEudXRpbC5NYXA7Ci1pbXBvcnQgamF2YS51dGlsLlZlY3RvcjsKLQotaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKLWltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OwotaW1wb3J0IG9yZy5hcGFjaGUueGFsYW4udGVtcGxhdGVzLkVsZW1WYXJpYWJsZTsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRlbXBsYXRlcy5TdHlsZXNoZWV0Um9vdDsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRyYWNlLlRyYWNlckV2ZW50OwotaW1wb3J0IG9yZy5hcGFjaGUueHBhdGguVmFyaWFibGVTdGFjazsKLWltcG9ydCBvcmcuZWNsaXBzZS53c3QueHNsLmpheHAuZGVidWcuZGVidWdnZXIuVmFyaWFibGU7Ci0KLXB1YmxpYyBjbGFzcyBYYWxhblJvb3RTdHlsZUZyYW1lIGV4dGVuZHMgWGFsYW5TdHlsZUZyYW1lCi17Ci0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKFhhbGFuUm9vdFN0eWxlRnJhbWUuY2xhc3MpOwotCXByaXZhdGUgTWFwIHZhcmlhYmxlczsKLQlwcml2YXRlIEFycmF5TGlzdCBnbG9iYWxzOwotCi0JcHVibGljIFhhbGFuUm9vdFN0eWxlRnJhbWUoVHJhY2VyRXZlbnQgZXZlbnQpCi0JewotCQlzdXBlcihudWxsLCBldmVudCk7Ci0JCWZpbGxHbG9iYWxzKGV2ZW50KTsKLQl9Ci0KLQlwcm90ZWN0ZWQgTGlzdCBnZXRHbG9iYWxzKCkKLQl7Ci0JCXJldHVybiBnbG9iYWxzOwotCX0KLQkKLQlwcml2YXRlIHZvaWQgZmlsbEdsb2JhbHMoVHJhY2VyRXZlbnQgZXZlbnQpCi0JewotCQlWYXJpYWJsZVN0YWNrIHZzID0gZXZlbnQubV9wcm9jZXNzb3IuZ2V0WFBhdGhDb250ZXh0KCkuZ2V0VmFyU3RhY2soKTsKLQkgICAgU3R5bGVzaGVldFJvb3Qgc3IgPSBldmVudC5tX3N0eWxlTm9kZS5nZXRTdHlsZXNoZWV0Um9vdCgpOwotCSAgICBWZWN0b3IgdmFycyA9IHNyLmdldFZhcmlhYmxlc0FuZFBhcmFtc0NvbXBvc2VkKCk7Ci0JCXZhcmlhYmxlcyA9IG5ldyBIYXNoTWFwKHZhcnMuc2l6ZSgpKTsKLQkJZ2xvYmFscyA9IG5ldyBBcnJheUxpc3QodmFycy5zaXplKCkpOwotCSAgICBpbnQgaSA9IHZhcnMuc2l6ZSgpOwotCSAgICB3aGlsZSAoLS1pID49IDApCi0JCXsKLQkJCUVsZW1WYXJpYWJsZSB2YXJpYWJsZSA9IChFbGVtVmFyaWFibGUpIHZhcnMuZWxlbWVudEF0KGkpOwotCQkJWGFsYW5WYXJpYWJsZSB4dmFyID0gbmV3IFhhbGFuVmFyaWFibGUodGhpcyx2cyxWYXJpYWJsZS5HTE9CQUxfU0NPUEUsaSx2YXJpYWJsZSk7Ci0JCQlhZGRWYXJpYWJsZSh4dmFyKTsKLQkJCWdsb2JhbHMuYWRkKHh2YXIpOwotCQl9Ci0JfQotCi0JLyoqCi0JICogR2V0cyBhIFZhcmlhYmxlIGJ5IElECi0JICogQHNpbmNlIDEuMAotCSAqLwotCXB1YmxpYyBWYXJpYWJsZSBnZXRWYXJpYWJsZShpbnQgaWQpCi0JewotLy8JCWxvZy5kZWJ1ZygiR2V0dGluZyB2YXJpYWJsZSB3aXRoIGlkICIraWQrIiBmcm9tIHZhcmlhYmxlcyAiK3ZhcmlhYmxlcy5zaXplKCkpOwotCQlyZXR1cm4gKFZhcmlhYmxlKXZhcmlhYmxlcy5nZXQobmV3IEludGVnZXIoaWQpKTsKLQl9Ci0KLQlwdWJsaWMgdm9pZCBhZGRWYXJpYWJsZShYYWxhblZhcmlhYmxlIHh2YXIpCi0JewotLy8JCWxvZy5kZWJ1ZygiQWRkaW5nIHZhcmlhYmxlIGluZGV4PSIreHZhci5nZXRTbG90TnVtYmVyKCkrIiB2YWw9Iit4dmFyKTsKLS8vCQl2YXJpYWJsZXMuYWRkKHh2YXIuZ2V0U2xvdE51bWJlcigpLHh2YXIpOwotCQlsb2cuZGVidWcoIkFkZGluZyB2YXJpYWJsZSBpZD0iK3h2YXIuZ2V0SWQoKSk7Ci0JCXZhcmlhYmxlcy5wdXQobmV3IEludGVnZXIoeHZhci5nZXRJZCgpKSx4dmFyKTsKLQl9Ci19CmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vc3JjLWRlYnVnZ2VyL29yZy9lY2xpcHNlL3dzdC94c2wveGFsYW4vZGVidWdnZXIvWGFsYW5TdHlsZUZyYW1lLmphdmEgYi9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vc3JjLWRlYnVnZ2VyL29yZy9lY2xpcHNlL3dzdC94c2wveGFsYW4vZGVidWdnZXIvWGFsYW5TdHlsZUZyYW1lLmphdmEKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3MjVkZTIuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL3NyYy1kZWJ1Z2dlci9vcmcvZWNsaXBzZS93c3QveHNsL3hhbGFuL2RlYnVnZ2VyL1hhbGFuU3R5bGVGcmFtZS5qYXZhCisrKyAvZGV2L251bGwKQEAgLTEsMjAwICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcgQ2hhc2UgVGVjaG5vbG9neSBMdGQgLSBodHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51awotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgRG91ZyBTYXRjaHdlbGwgKENoYXNlIFRlY2hub2xvZ3kgTHRkKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi1wYWNrYWdlIG9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXI7Ci0KLWltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OwotaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uczsKLWltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKLWltcG9ydCBqYXZhLnV0aWwuTGlzdDsKLWltcG9ydCBqYXZhLnV0aWwuTWFwOwotaW1wb3J0IGphdmEudXRpbC5TdGFjazsKLQotaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uU291cmNlTG9jYXRvcjsKLQotaW1wb3J0IG9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nLkxvZzsKLWltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2dGYWN0b3J5OwotaW1wb3J0IG9yZy5hcGFjaGUueGFsYW4udGVtcGxhdGVzLkVsZW1DYWxsVGVtcGxhdGU7Ci1pbXBvcnQgb3JnLmFwYWNoZS54YWxhbi50ZW1wbGF0ZXMuRWxlbVRlbXBsYXRlOwotaW1wb3J0IG9yZy5hcGFjaGUueGFsYW4udGVtcGxhdGVzLkVsZW1UZW1wbGF0ZUVsZW1lbnQ7Ci1pbXBvcnQgb3JnLmFwYWNoZS54YWxhbi50ZW1wbGF0ZXMuRWxlbVZhcmlhYmxlOwotaW1wb3J0IG9yZy5hcGFjaGUueGFsYW4udHJhY2UuVHJhY2VyRXZlbnQ7Ci1pbXBvcnQgb3JnLmFwYWNoZS54bWwuZHRtLnJlZi5EVE1Ob2RlUHJveHk7Ci1pbXBvcnQgb3JnLmFwYWNoZS54bWwudXRpbHMuUU5hbWU7Ci1pbXBvcnQgb3JnLmFwYWNoZS54cGF0aC5WYXJpYWJsZVN0YWNrOwotaW1wb3J0IG9yZy5hcGFjaGUueHBhdGguWFBhdGg7Ci1pbXBvcnQgb3JnLmVjbGlwc2Uud3N0LnhzbC5qYXhwLmRlYnVnLmRlYnVnZ2VyLlN0eWxlRnJhbWU7Ci1pbXBvcnQgb3JnLmVjbGlwc2Uud3N0LnhzbC5qYXhwLmRlYnVnLmRlYnVnZ2VyLlZhcmlhYmxlOwotaW1wb3J0IG9yZy53M2MuZG9tLk5vZGU7Ci0KLXB1YmxpYyBjbGFzcyBYYWxhblN0eWxlRnJhbWUgZXh0ZW5kcyBTdHlsZUZyYW1lCi17Ci0JcHJpdmF0ZSBzdGF0aWMgZmluYWwgTG9nIGxvZyA9IExvZ0ZhY3RvcnkuZ2V0TG9nKFhhbGFuU3R5bGVGcmFtZS5jbGFzcyk7Ci0KLQlwcml2YXRlIGZpbmFsIE1hcCB2YXJOYW1lczsKLQlwcml2YXRlIGZpbmFsIFN0YWNrIGV2ZW50U3RhY2sgPSBuZXcgU3RhY2soKTsKLQlmaW5hbCBUcmFjZXJFdmVudCBldmVudDsKLQlwcml2YXRlIGludCBjdXJyZW50TGluZTsKLQlwcml2YXRlIFhhbGFuUm9vdFN0eWxlRnJhbWUgcm9vdFN0eWxlRnJhbWU7Ci0KLQkvKioKLQkgKiBAc2luY2UgMS4wCi0JICovCi0JcHVibGljIFhhbGFuU3R5bGVGcmFtZShTdHlsZUZyYW1lIHBhcmVudCwgVHJhY2VyRXZlbnQgZXZlbnQpCi0JewotCQlzdXBlcihwYXJlbnQpOwotCQl0aGlzLmV2ZW50ID0gZXZlbnQ7Ci0JCWlmIChwYXJlbnQgIT0gbnVsbCkKLQkJCXRoaXMudmFyTmFtZXMgPSBuZXcgSGFzaE1hcCgoKFhhbGFuU3R5bGVGcmFtZSkgcGFyZW50KS52YXJOYW1lcyk7Ci0JCWVsc2UKLQkJCXRoaXMudmFyTmFtZXMgPSBuZXcgSGFzaE1hcCgpOwotCQlwdXNoRWxlbWVudChldmVudCk7Ci0JCWZpbmRSb290U3R5bGVGcmFtZSgpOwotCX0KLQotCXByaXZhdGUgdm9pZCBmaW5kUm9vdFN0eWxlRnJhbWUoKQotCXsKLQkJWGFsYW5TdHlsZUZyYW1lIGZyYW1lID0gdGhpczsKLQkJZG8KLQkJewotCQkJaWYgKGZyYW1lIGluc3RhbmNlb2YgWGFsYW5Sb290U3R5bGVGcmFtZSkKLQkJCQlyb290U3R5bGVGcmFtZSA9IChYYWxhblJvb3RTdHlsZUZyYW1lKSBmcmFtZTsKLQkJfQotCQl3aGlsZSAoKGZyYW1lID0gKFhhbGFuU3R5bGVGcmFtZSkgZnJhbWUuZ2V0UGFyZW50KCkpICE9IG51bGwpOwotCX0KLQotCXB1YmxpYyBTdHJpbmcgZ2V0RmlsZW5hbWUoKQotCXsKLQkJcmV0dXJuIGV2ZW50Lm1fc3R5bGVOb2RlLmdldFN0eWxlc2hlZXQoKS5nZXRTeXN0ZW1JZCgpOwotCX0KLQotCXB1YmxpYyBTdHJpbmcgZ2V0TmFtZSgpCi0JewotCQlTdHJpbmcgbmFtZSA9IGV2ZW50Lm1fc3R5bGVOb2RlLmdldE5vZGVOYW1lKCk7Ci0JCWlmIChldmVudC5tX3N0eWxlTm9kZSBpbnN0YW5jZW9mIEVsZW1UZW1wbGF0ZSkKLQkJewotCQkJRWxlbVRlbXBsYXRlIGV0ID0gKEVsZW1UZW1wbGF0ZSkgZXZlbnQubV9zdHlsZU5vZGU7Ci0JCQlRTmFtZSBxID0gZXQuZ2V0TmFtZSgpOwotCQkJaWYgKHEgIT0gbnVsbCkKLQkJCXsKLQkJCQluYW1lICs9ICIgbmFtZT1cIiIgKyBxLmdldExvY2FsTmFtZSgpICsgIlwiIjsKLQkJCX0KLQkJCVhQYXRoIHhwID0gZXQuZ2V0TWF0Y2goKTsKLQkJCWlmICh4cCAhPSBudWxsKQotCQkJewotCQkJCW5hbWUgKz0gIiBtYXRjaD1cIiIgKyB4cC5nZXRQYXR0ZXJuU3RyaW5nKCkgKyAiXCIiOwotCQkJfQotCQl9Ci0JCWVsc2UgaWYgKGV2ZW50Lm1fc3R5bGVOb2RlIGluc3RhbmNlb2YgRWxlbUNhbGxUZW1wbGF0ZSkKLQkJewotCQkJRWxlbUNhbGxUZW1wbGF0ZSBldCA9IChFbGVtQ2FsbFRlbXBsYXRlKSBldmVudC5tX3N0eWxlTm9kZTsKLQkJCVFOYW1lIHEgPSBldC5nZXROYW1lKCk7Ci0JCQlpZiAocSAhPSBudWxsKQotCQkJewotCQkJCW5hbWUgKz0gIiBuYW1lPVwiIiArIHEuZ2V0TG9jYWxOYW1lKCkgKyAiXCIiOwotCQkJfQotCQl9Ci0JCXJldHVybiBuYW1lOwotCX0KLQotCXB1YmxpYyBMaXN0IGdldFZhcmlhYmxlU3RhY2soKQotCXsKLQkJTGlzdCB2YXJzID0gbmV3IEFycmF5TGlzdCgpOwotCQl2YXJzLmFkZEFsbChnZXRMb2NhbHMoKSk7Ci0JCXZhcnMuYWRkQWxsKGdldEdsb2JhbHMoKSk7Ci0JCXJldHVybiB2YXJzOwotCX0KLQotCXB1YmxpYyBpbnQgZ2V0Q3VycmVudExpbmUoKQotCXsKLQkJcmV0dXJuIGN1cnJlbnRMaW5lOwotCX0KLQotCXB1YmxpYyB2b2lkIHB1c2hFbGVtZW50KFRyYWNlckV2ZW50IGUpCi0JewotCQljdXJyZW50TGluZSA9IGUubV9zdHlsZU5vZGUuZ2V0TGluZU51bWJlcigpOwotCQlldmVudFN0YWNrLnB1c2goZSk7Ci0JCWlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkKLQkJCWxvZy5kZWJ1ZygiUHVzaGVkIGVsZW1lbnQgIiArIFRyYWNlckV2ZW50LnByaW50Tm9kZShlLm1fc3R5bGVOb2RlKSArICIgYXQgbGluZSAiICsgY3VycmVudExpbmUpOwotCX0KLQotCXB1YmxpYyBUcmFjZXJFdmVudCBwb3BFbGVtZW50KCkKLQl7Ci0JCVRyYWNlckV2ZW50IGUgPSAoVHJhY2VyRXZlbnQpIGV2ZW50U3RhY2sucG9wKCk7Ci0JCWN1cnJlbnRMaW5lID0gZS5tX3N0eWxlTm9kZS5nZXRFbmRMaW5lTnVtYmVyKCk7Ci0JCWlmIChsb2cuaXNEZWJ1Z0VuYWJsZWQoKSkKLQkJCWxvZy5kZWJ1ZygiUG9wcGVkIGVsZW1lbnQgIiArIFRyYWNlckV2ZW50LnByaW50Tm9kZShlLm1fc3R5bGVOb2RlKSArICIgYXQgbGluZSAiICsgY3VycmVudExpbmUpOwotCi0JCUVsZW1UZW1wbGF0ZUVsZW1lbnQgZWxlbWVudCA9IGUubV9zdHlsZU5vZGU7Ci0JCVN0cmluZyBuYW1lID0gZWxlbWVudC5nZXROb2RlTmFtZSgpOwotCQlsb2cuZGVidWcoIiBuYW1lICIgKyBuYW1lKTsKLQkJaWYgKG5hbWUuZXF1YWxzKCJwYXJhbSIpIHx8IG5hbWUuZXF1YWxzKCJ2YXJpYWJsZSIpKQotCQkJYWRkVmFyaWFibGUoKEVsZW1WYXJpYWJsZSkgZS5tX3N0eWxlTm9kZSk7Ci0KLQkJcmV0dXJuIGU7Ci0JfQotCi0JcHVibGljIFRyYWNlckV2ZW50IHBlZWtFbGVtZW50KCkKLQl7Ci0JCWlmIChldmVudFN0YWNrLmlzRW1wdHkoKSkKLQkJCXJldHVybiBudWxsOwotCQlyZXR1cm4gKFRyYWNlckV2ZW50KSBldmVudFN0YWNrLnBlZWsoKTsKLQl9Ci0KLQlwcml2YXRlIHZvaWQgYWRkVmFyaWFibGUoRWxlbVZhcmlhYmxlIHZhcmlhYmxlKQotCXsKLQkJU3RyaW5nIHNjb3BlID0gdmFyaWFibGUuZ2V0SXNUb3BMZXZlbCgpID8gVmFyaWFibGUuR0xPQkFMX1NDT1BFIDogVmFyaWFibGUuTE9DQUxfU0NPUEU7Ci0JCVZhcmlhYmxlU3RhY2sgdnMgPSBldmVudC5tX3Byb2Nlc3Nvci5nZXRYUGF0aENvbnRleHQoKS5nZXRWYXJTdGFjaygpOwotCQlYYWxhblZhcmlhYmxlIHh2YXIgPSBuZXcgWGFsYW5WYXJpYWJsZSh0aGlzLCB2cywgc2NvcGUsIHZhcmlhYmxlLmdldEluZGV4KCksIHZhcmlhYmxlKTsKLQkJcm9vdFN0eWxlRnJhbWUuYWRkVmFyaWFibGUoeHZhcik7Ci0JCXZhck5hbWVzLnB1dCh2YXJpYWJsZS5nZXROYW1lKCksIHh2YXIpOwotCX0KLQotCXByaXZhdGUgTGlzdCBnZXRMb2NhbHMoKQotCXsKLQkJTGlzdCBsb2NhbHMgPSBuZXcgQXJyYXlMaXN0KHZhck5hbWVzLnZhbHVlcygpKTsKLQkJLy8gc29ydCBieSBzbG90TnVtYmVyCi0JCUNvbGxlY3Rpb25zLnNvcnQobG9jYWxzKTsKLQkJcmV0dXJuIG5ldyBBcnJheUxpc3QodmFyTmFtZXMudmFsdWVzKCkpOwotCX0KLQotCXByb3RlY3RlZCBMaXN0IGdldEdsb2JhbHMoKQotCXsKLQkJcmV0dXJuIHJvb3RTdHlsZUZyYW1lLmdldEdsb2JhbHMoKTsKLQl9Ci0KLQlwdWJsaWMgU3RyaW5nIGdldFNvdXJjZUZpbGVuYW1lKCkKLQl7Ci0JCVNvdXJjZUxvY2F0b3IgbG9jYXRvciA9IGdldFNvdXJjZUxvY2F0b3IoKTsKLQkJaWYgKGxvY2F0b3IgIT0gbnVsbCkKLQkJCXJldHVybiBsb2NhdG9yLmdldFN5c3RlbUlkKCk7Ci0JCXJldHVybiAiIjsKLQl9Ci0KLQlwdWJsaWMgaW50IGdldFNvdXJjZUN1cnJlbnRMaW5lKCkKLQl7Ci0JCVNvdXJjZUxvY2F0b3IgbG9jYXRvciA9IGdldFNvdXJjZUxvY2F0b3IoKTsKLQkJaWYgKGxvY2F0b3IgIT0gbnVsbCkKLQkJCXJldHVybiBsb2NhdG9yLmdldExpbmVOdW1iZXIoKTsKLQkJcmV0dXJuIDA7Ci0JfQotCQotCXByaXZhdGUgU291cmNlTG9jYXRvciBnZXRTb3VyY2VMb2NhdG9yKCkKLQl7Ci0JCU5vZGUgc291cmNlTm9kZSA9IGV2ZW50Lm1fc291cmNlTm9kZTsKLSAgICAgICAgU291cmNlTG9jYXRvciBsb2NhdG9yID0gbnVsbDsKLQkJaWYgKHNvdXJjZU5vZGUgaW5zdGFuY2VvZiBEVE1Ob2RlUHJveHkpCi0JCXsKLQkJCWludCBub2RlSGFuZGxlciA9ICgoRFRNTm9kZVByb3h5KSBzb3VyY2VOb2RlKS5nZXREVE1Ob2RlTnVtYmVyKCk7Ci0JCQlyZXR1cm4gKChEVE1Ob2RlUHJveHkpIHNvdXJjZU5vZGUpLmdldERUTSgpLmdldFNvdXJjZUxvY2F0b3JGb3Iobm9kZUhhbmRsZXIpOwotCQl9Ci0JCXJldHVybiBudWxsOwotCX0KLX0KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC94YWxhbi9kZWJ1Z2dlci9YYWxhblRyYWNlTGlzdGVuZXIuamF2YSBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC94YWxhbi9kZWJ1Z2dlci9YYWxhblRyYWNlTGlzdGVuZXIuamF2YQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTg5YjMyMS4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vc3JjLWRlYnVnZ2VyL29yZy9lY2xpcHNlL3dzdC94c2wveGFsYW4vZGVidWdnZXIvWGFsYW5UcmFjZUxpc3RlbmVyLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwxNjcgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAwNyBDaGFzZSBUZWNobm9sb2d5IEx0ZCAtIGh0dHA6Ly93d3cuY2hhc2V0ZWNobm9sb2d5LmNvLnVrCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlcjsKLQotaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJFeGNlcHRpb247Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7Ci1pbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRlbXBsYXRlcy5Db25zdGFudHM7Ci1pbXBvcnQgb3JnLmFwYWNoZS54YWxhbi50cmFjZS5FbmRTZWxlY3Rpb25FdmVudDsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRyYWNlLkV4dGVuc2lvbkV2ZW50OwotaW1wb3J0IG9yZy5hcGFjaGUueGFsYW4udHJhY2UuR2VuZXJhdGVFdmVudDsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRyYWNlLlNlbGVjdGlvbkV2ZW50OwotaW1wb3J0IG9yZy5hcGFjaGUueGFsYW4udHJhY2UuVHJhY2VMaXN0ZW5lckV4MjsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRyYWNlLlRyYWNlckV2ZW50OwotaW1wb3J0IG9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5kZWJ1Zy5kZWJ1Z2dlci5CcmVha1BvaW50OwotaW1wb3J0IG9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5kZWJ1Zy5kZWJ1Z2dlci5WYXJpYWJsZTsKLQotcHVibGljIGNsYXNzIFhhbGFuVHJhY2VMaXN0ZW5lciBpbXBsZW1lbnRzIFRyYWNlTGlzdGVuZXJFeDIgLy8gVHJhY2VMaXN0ZW5lckV4MwotewotCXByaXZhdGUgc3RhdGljIGZpbmFsIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhYYWxhblRyYWNlTGlzdGVuZXIuY2xhc3MpOwotCi0JcHJpdmF0ZSBmaW5hbCBYYWxhbkRlYnVnZ2VyIGRlYnVnZ2VyOwotCXByaXZhdGUgWGFsYW5Sb290U3R5bGVGcmFtZSByb290U3R5bGVGcmFtZTsKLQotCXB1YmxpYyBYYWxhblRyYWNlTGlzdGVuZXIoWGFsYW5EZWJ1Z2dlciBkZWJ1Z2dlcikKLQl7Ci0JCXRoaXMuZGVidWdnZXIgPSBkZWJ1Z2dlcjsKLQl9Ci0KLQlwdWJsaWMgdm9pZCB0cmFjZShUcmFjZXJFdmVudCBldikKLQl7Ci0JCVhhbGFuU3R5bGVGcmFtZSBzdHlsZUZyYW1lID0gbnVsbDsKLQkJaWYgKHJvb3RTdHlsZUZyYW1lID09IG51bGwpCi0JCXsvLyB0aGlzIGlzIHRoZSByb290IG9mIHRoZSBzdGFjawotCQkJZGVidWdnZXIuZGVidWdnZXJUcmFuc2Zvcm1TdGFydGVkKCk7Ci0JCQlkZWJ1Z2dlci5zZXRDdXJyZW50VHJhY2VMaXN0ZW5lcih0aGlzKTsKLQkJCXJvb3RTdHlsZUZyYW1lID0gbmV3IFhhbGFuUm9vdFN0eWxlRnJhbWUoZXYpOwotCQkJc3R5bGVGcmFtZSA9IHJvb3RTdHlsZUZyYW1lOwotCQkJZGVidWdnZXIucHVzaFN0eWxlRnJhbWUoc3R5bGVGcmFtZSk7Ci0JCX0KLQkJZWxzZSBpZiAoZXYubV9zdHlsZU5vZGUuZ2V0T3duZXJYU0xUZW1wbGF0ZSgpID09IGV2Lm1fc3R5bGVOb2RlKQotCQl7Ly8gdGhpcyBpcyBhbiB4c2w6dGVtcGxhdGUsIHNvIGFkZCB0byB0ZW1wbGF0ZSBzdGFjawotCQkJc3R5bGVGcmFtZSA9IG5ldyBYYWxhblN0eWxlRnJhbWUoZGVidWdnZXIucGVla1N0eWxlRnJhbWUoKSwgZXYpOwotCQkJZGVidWdnZXIucHVzaFN0eWxlRnJhbWUoc3R5bGVGcmFtZSk7Ci0JCX0KLQkJZWxzZSBpZiAoZXYubV9zdHlsZU5vZGUuZ2V0WFNMVG9rZW4oKSAhPSBDb25zdGFudHMuRUxFTU5BTUVfVEVYVExJVEVSQUxSRVNVTFQpCi0JCXsvLyBhZGQgdG8gY3VycmVudCB0ZW1wbGF0ZSBlbGVtZW50IHN0YWNrCi0JCQlzdHlsZUZyYW1lID0gKFhhbGFuU3R5bGVGcmFtZSkgZGVidWdnZXIucGVla1N0eWxlRnJhbWUoKTsKLQkJCXN0eWxlRnJhbWUucHVzaEVsZW1lbnQoZXYpOwotCQl9Ci0JCWVsc2UKLQkJewotCQkJbG9nLmRlYnVnKCJTa2lwcGVkIHB1c2ggZm9yIGVsZW1lbnQgIiArIGV2Lm1fc3R5bGVOb2RlLmdldExvY2FsTmFtZSgpKTsKLQkJfQotCQljaGVjayhzdHlsZUZyYW1lKTsKLQl9Ci0KLQlwdWJsaWMgdm9pZCB0cmFjZUVuZChUcmFjZXJFdmVudCBldikKLQl7Ci0JCVhhbGFuU3R5bGVGcmFtZSBzdHlsZUZyYW1lID0gKFhhbGFuU3R5bGVGcmFtZSkgZGVidWdnZXIucGVla1N0eWxlRnJhbWUoKTsKLQkJaWYgKHN0eWxlRnJhbWUgIT0gbnVsbCkKLQkJewotCQkJaWYgKGV2Lm1fc3R5bGVOb2RlLmdldE93bmVyWFNMVGVtcGxhdGUoKSA9PSBldi5tX3N0eWxlTm9kZSkKLQkJCXsvLyByZW1vdmUgZnJvbSBjdXJyZW50IHRlbXBsYXRlIGVsZW1lbnQgc3RhY2sKLQkJCQlzdHlsZUZyYW1lLnBvcEVsZW1lbnQoKTsKLQkJCX0KLQkJCWVsc2UgaWYgKGV2Lm1fc3R5bGVOb2RlLmdldFhTTFRva2VuKCkgIT0gQ29uc3RhbnRzLkVMRU1OQU1FX1RFWFRMSVRFUkFMUkVTVUxUKQotCQkJey8vIHJlbW92ZSBmcm9tIGN1cnJlbnQgdGVtcGxhdGUgZWxlbWVudCBzdGFjawotCQkJCXN0eWxlRnJhbWUucG9wRWxlbWVudCgpOwotCQkJfQotCQkJZWxzZQotCQkJewotCQkJCWxvZy5kZWJ1ZygiU2tpcHBlZCBwb3AgZm9yIGVsZW1lbnQgIiArIGV2Lm1fc3R5bGVOb2RlLmdldExvY2FsTmFtZSgpKTsKLQkJCX0KLQkJCWNoZWNrKHN0eWxlRnJhbWUpOwotCQkJaWYgKGV2Lm1fc3R5bGVOb2RlLmdldE93bmVyWFNMVGVtcGxhdGUoKSA9PSBldi5tX3N0eWxlTm9kZSkKLQkJCXsvLyBlbmQgb2YgdGVtcGxhdGUsIHNvIHJlbW92ZSBmcm9tIHN0YWNrCi0JCQkJZGVidWdnZXIucG9wU3R5bGVGcmFtZSgpOwotCQkJfQotCQkJZWxzZQotCQkJey8vIGJlY2F1c2Ugd2UgZG9uJ3QgZ2V0IHNlbGVjdEVuZCBldmVudHMsIHdlIG5lZWQgdG8gZG8gdGhpcyBjaGVjawotCQkJCVRyYWNlckV2ZW50IHRlbCA9IHN0eWxlRnJhbWUucGVla0VsZW1lbnQoKTsKLQkJCQkvLyBpZiB0aGUgcGFyZW50IGlzIGEgY2hvb3NlLCBtb3ZlIG9uIHRvIGl0Ci0JCQkJc3dpdGNoICh0ZWwubV9zdHlsZU5vZGUuZ2V0WFNMVG9rZW4oKSkKLQkJCQl7Ci0JCQkJCWNhc2UgQ29uc3RhbnRzLkVMRU1OQU1FX0NIT09TRToKLQkJCQkJCXN0eWxlRnJhbWUucG9wRWxlbWVudCgpOwotCQkJCQkJY2hlY2soc3R5bGVGcmFtZSk7Ci0JCQkJfQotCQkJfQotCQl9Ci0JfQotCi0JcHJpdmF0ZSB2b2lkIGNoZWNrKFhhbGFuU3R5bGVGcmFtZSBzdHlsZUZyYW1lKQotCXsKLQkJZGVidWdnZXIuY2hlY2tTdG9wcGVkKCk7Ci0JCWlmIChzdHlsZUZyYW1lICE9IG51bGwpCi0JCXsKLQkJCS8vIGNoZWNrIGJyZWFrcG9pbnQgaW4gc3R5bGVzaGVldAotCQkJQnJlYWtQb2ludCBicmVha3BvaW50ID0gbmV3IEJyZWFrUG9pbnQoc3R5bGVGcmFtZS5nZXRGaWxlbmFtZSgpLCBzdHlsZUZyYW1lLmdldEN1cnJlbnRMaW5lKCkpOwotCQkJZGVidWdnZXIuY2hlY2tTdXNwZW5kZWQoc3R5bGVGcmFtZSwgYnJlYWtwb2ludCk7Ci0JCQkvLyBUT0RPIGNoZWNrIGJyZWFrcG9pbnQgaW4gc291cmNlCi0JCQkvKgotCQkJICogYnJlYWtwb2ludCA9IG5ldyBCcmVha1BvaW50KHN0eWxlRnJhbWUuZ2V0U291cmNlRmlsZW5hbWUoKSwgc3R5bGVGcmFtZS5nZXRTb3VyY2VDdXJyZW50TGluZSgpKTsgU3lzdGVtLm91dC5wcmludGxuKCItLS0tLS0tLS0tLS0tLS0iK2JyZWFrcG9pbnQpOyBpZiAoYnJlYWtwb2ludC5nZXRGaWxlKCkgIT0gbnVsbCkKLQkJCSAqIGRlYnVnZ2VyLmNoZWNrU3VzcGVuZGVkKHN0eWxlRnJhbWUsIGJyZWFrcG9pbnQpOwotCQkJICovfQotCX0KLQotCXB1YmxpYyB2b2lkIHNlbGVjdGVkKFNlbGVjdGlvbkV2ZW50IGV2KSB0aHJvd3MgVHJhbnNmb3JtZXJFeGNlcHRpb24KLQl7Ci0JfQotCi0JcHVibGljIHZvaWQgc2VsZWN0RW5kKEVuZFNlbGVjdGlvbkV2ZW50IGV2KSB0aHJvd3MgVHJhbnNmb3JtZXJFeGNlcHRpb24KLQl7Ci0JfQotCi0JcHVibGljIHZvaWQgZ2VuZXJhdGVkKEdlbmVyYXRlRXZlbnQgZXYpCi0JewotLy8JCVhTTEdlbmVyYXRlRXZlbnQgZXZlbnQgPSBuZXcgWFNMR2VuZXJhdGVFdmVudCgpOwotLy8JCWV2ZW50Lm1fY2hhcmFjdGVycyA9IGV2Lm1fY2hhcmFjdGVyczsKLS8vCQlldmVudC5tX2RhdGEgPSBldi5tX2RhdGE7Ci0vLwkJZXZlbnQubV9ldmVudHR5cGUgPSBldi5tX2V2ZW50dHlwZTsKLS8vCQlldmVudC5tX2xlbmd0aCA9IGV2Lm1fbGVuZ3RoOwotLy8JCWV2ZW50Lm1fbmFtZSA9IGV2Lm1fbmFtZTsKLS8vCQlldmVudC5tX3N0YXJ0ID0gZXYubV9zdGFydDsKLS8vCQkKLS8vCQlpZiAoZXYubV9hdHRzICE9IG51bGwpCi0vLwkJewotLy8JCQlldmVudC5tX2F0dHMgPSBuZXcgQXJyYXlMaXN0KCk7Ci0vLwkJCWZvciAoaW50IGkgPSAwOyBpIDwgZXYubV9hdHRzLmdldExlbmd0aCgpOyBpKyspCi0vLwkJCXsKLS8vCQkJCVN0cmluZyBhdHROYW1lID0gZXYubV9hdHRzLmdldFFOYW1lKGkpOwotLy8JCQkJU3RyaW5nIGF0dFZhbHVlID0gZXYubV9hdHRzLmdldFZhbHVlKGkpOwotLy8JCQkJWFNMRWxlbWVudEF0dHJpYnV0ZSB4YXR0ID0gbmV3IFhTTEVsZW1lbnRBdHRyaWJ1dGUoYXR0TmFtZSxhdHRWYWx1ZSk7Ci0vLwkJCQlldmVudC5tX2F0dHMuYWRkKHhhdHQpOwotLy8JCQl9CQkJCi0vLwkJfQotLy8JCQotLy8JCWRlYnVnZ2VyLmdlbmVyYXRlZChldmVudCk7Ci0JfQotCi0JcHVibGljIHZvaWQgZXh0ZW5zaW9uKEV4dGVuc2lvbkV2ZW50IGVlKQotCXsKLQl9Ci0KLQlwdWJsaWMgdm9pZCBleHRlbnNpb25FbmQoRXh0ZW5zaW9uRXZlbnQgZWUpCi0JewotCX0KLQotCS8qKgotCSAqIEBzaW5jZSAxLjAKLQkgKi8KLQlwdWJsaWMgVmFyaWFibGUgZ2V0VmFyaWFibGUoaW50IGlkKQotCXsKLQkJcmV0dXJuIHJvb3RTdHlsZUZyYW1lLmdldFZhcmlhYmxlKGlkKTsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC94YWxhbi9kZWJ1Z2dlci9YYWxhblZhcmlhYmxlLmphdmEgYi9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vc3JjLWRlYnVnZ2VyL29yZy9lY2xpcHNlL3dzdC94c2wveGFsYW4vZGVidWdnZXIvWGFsYW5WYXJpYWJsZS5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDBhNzRjLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC94YWxhbi9kZWJ1Z2dlci9YYWxhblZhcmlhYmxlLmphdmEKKysrIC9kZXYvbnVsbApAQCAtMSwyMTggKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAwNyBDaGFzZSBUZWNobm9sb2d5IEx0ZCAtIGh0dHA6Ly93d3cuY2hhc2V0ZWNobm9sb2d5LmNvLnVrCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKiAgICAgRGF2aWQgQ2FydmVyIChTVEFSKSAtIGJ1ZyAyMTQyMzUgLSBBbGxvd3Mgbm9kZXMgdG8gYmUgZXhwYW5kZWQuCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLXBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlcjsKLQotaW1wb3J0IGphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJFeGNlcHRpb247Ci0KLWltcG9ydCBvcmcuYXBhY2hlLmNvbW1vbnMubG9nZ2luZy5Mb2c7Ci1pbXBvcnQgb3JnLmFwYWNoZS5jb21tb25zLmxvZ2dpbmcuTG9nRmFjdG9yeTsKLWltcG9ydCBvcmcuYXBhY2hlLnhhbGFuLnRlbXBsYXRlcy5FbGVtVmFyaWFibGU7Ci1pbXBvcnQgb3JnLmFwYWNoZS54cGF0aC5WYXJpYWJsZVN0YWNrOwotaW1wb3J0IG9yZy5hcGFjaGUueHBhdGgub2JqZWN0cy5YTm9kZVNldDsKLWltcG9ydCBvcmcuYXBhY2hlLnhwYXRoLm9iamVjdHMuWE9iamVjdDsKLWltcG9ydCBvcmcuZWNsaXBzZS53c3QueHNsLmpheHAuZGVidWcuZGVidWdnZXIuVmFyaWFibGU7Ci1pbXBvcnQgb3JnLnczYy5kb20uQXR0cjsKLWltcG9ydCBvcmcudzNjLmRvbS5OYW1lZE5vZGVNYXA7Ci1pbXBvcnQgb3JnLnczYy5kb20uTm9kZTsKLWltcG9ydCBvcmcudzNjLmRvbS5Ob2RlTGlzdDsKLWltcG9ydCBvcmcudzNjLmRvbS5Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb247Ci0KLXB1YmxpYyBjbGFzcyBYYWxhblZhcmlhYmxlIGV4dGVuZHMgVmFyaWFibGUgaW1wbGVtZW50cyBDb21wYXJhYmxlIHsKLQlwcml2YXRlIGZpbmFsIExvZyBsb2cgPSBMb2dGYWN0b3J5LmdldExvZyhYYWxhblZhcmlhYmxlLmNsYXNzKTsKLQlwcml2YXRlIGZpbmFsIEVsZW1WYXJpYWJsZSBlbGVtVmFyaWFibGU7Ci0JcHJpdmF0ZSBmaW5hbCBWYXJpYWJsZVN0YWNrIHZhclN0YWNrOwotCXByaXZhdGUgaW50IHN0YWNrRnJhbWU7Ci0JcHJpdmF0ZSBYT2JqZWN0IHhvYmplY3Q7Ci0KLQlwdWJsaWMgWGFsYW5WYXJpYWJsZShYYWxhblN0eWxlRnJhbWUgeGFsYW5TdHlsZUZyYW1lLAotCQkJVmFyaWFibGVTdGFjayB2YXJTdGFjaywgU3RyaW5nIHNjb3BlLCBpbnQgc2xvdE51bWJlciwKLQkJCUVsZW1WYXJpYWJsZSBlbGVtVmFyaWFibGUpIHsKLQkJc3VwZXIoZ2V0TmFtZShlbGVtVmFyaWFibGUsIHNjb3BlLCB4YWxhblN0eWxlRnJhbWUpLCBzY29wZSwgc2xvdE51bWJlcgotCQkJCSsgdmFyU3RhY2suZ2V0U3RhY2tGcmFtZSgpKTsKLQkJdGhpcy5lbGVtVmFyaWFibGUgPSBlbGVtVmFyaWFibGU7Ci0JCXRoaXMudmFyU3RhY2sgPSB2YXJTdGFjazsKLQkJLy8gZ2V0IHRoZSBzdGFjayBmcmFtZSBhdCB0aGlzIGN1cnJlbnQgcG9pbnQgaW4gdGltZQotCQl0aGlzLnN0YWNrRnJhbWUgPSB2YXJTdGFjay5nZXRTdGFja0ZyYW1lKCk7Ci0JCXRyeSB7Ci0JCQl4b2JqZWN0ID0gZ2V0WE9iamVjdCgpOwotCQl9IGNhdGNoIChFeGNlcHRpb24gZXgpIHsKLQkJCWV4LnByaW50U3RhY2tUcmFjZSgpOwotCQl9Ci0JfQotCi0JcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIGdldE5hbWUoRWxlbVZhcmlhYmxlIGVsZW1WYXJpYWJsZSwgU3RyaW5nIHNjb3BlLAotCQkJWGFsYW5TdHlsZUZyYW1lIHhhbGFuU3R5bGVGcmFtZSkgewotCQlTdHJpbmcgbmFtZSA9IGVsZW1WYXJpYWJsZS5nZXROYW1lKCkuZ2V0TG9jYWxOYW1lKCk7Ci0JCVN0cmluZyBzeXN0ZW1JZCA9IGVsZW1WYXJpYWJsZS5nZXRTdHlsZXNoZWV0KCkuZ2V0U3lzdGVtSWQoKTsKLQkJaWYgKEdMT0JBTF9TQ09QRS5lcXVhbHMoc2NvcGUpICYmIHN5c3RlbUlkICE9IG51bGwpIHsKLQkJCWludCBpbmRleDsKLQkJCWlmICgoaW5kZXggPSBzeXN0ZW1JZC5sYXN0SW5kZXhPZignLycpKSA+IDApCi0JCQkJbmFtZSArPSAiICgiICsgc3lzdGVtSWQuc3Vic3RyaW5nKGluZGV4ICsgMSkgKyAiKSI7Ci0JCQllbHNlCi0JCQkJbmFtZSArPSAiICgiICsgc3lzdGVtSWQgKyAiKSI7Ci0JCX0KLQkJLy8gZWxzZSBpZiAoTE9DQUxfU0NPUEUuZXF1YWxzKHNjb3BlKSkKLQkJLy8gewotCQkvLyBuYW1lICs9ICIgKCIgKyB4YWxhblN0eWxlRnJhbWUuZ2V0TmFtZSgpICsgIikiOwotCQkvLyB9Ci0JCXJldHVybiBuYW1lOwotCX0KLQotCXB1YmxpYyBTdHJpbmcgZ2V0VHlwZSgpIHsKLQkJU3RyaW5nIHZhbHVlID0gVU5LTk9XTjsKLQkJLy8gWE9iamVjdCB4b2JqZWN0ID0gZ2V0WE9iamVjdCgpOwotCQlpZiAoeG9iamVjdCAhPSBudWxsKSB7Ci0JCQlpbnQgeGFsYW5UeXBlID0geG9iamVjdC5nZXRUeXBlKCk7Ci0JCQlzd2l0Y2ggKHhhbGFuVHlwZSkgewotCQkJY2FzZSBYT2JqZWN0LkNMQVNTX1VOUkVTT0xWRURWQVJJQUJMRToKLQkJCQl2YWx1ZSA9IFVOUkVTT0xWRUQ7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFhPYmplY3QuQ0xBU1NfTk9ERVNFVDoKLQkJCQl2YWx1ZSA9IE5PREVTRVQ7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFhPYmplY3QuQ0xBU1NfQk9PTEVBTjoKLQkJCQl2YWx1ZSA9IEJPT0xFQU47Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFhPYmplY3QuQ0xBU1NfTlVNQkVSOgotCQkJCXZhbHVlID0gTlVNQkVSOwotCQkJCWJyZWFrOwotCQkJY2FzZSBYT2JqZWN0LkNMQVNTX1VOS05PV046Ci0JCQkJdmFsdWUgPSBVTktOT1dOOwotCQkJCWJyZWFrOwotCQkJY2FzZSBYT2JqZWN0LkNMQVNTX1NUUklORzoKLQkJCWRlZmF1bHQ6Ci0JCQkJdmFsdWUgPSBTVFJJTkc7Ci0JCQkJYnJlYWs7Ci0JCQl9Ci0JCX0KLQkJLy8gY2F0Y2ggKFRyYW5zZm9ybWVyRXhjZXB0aW9uIGUpCi0JCS8vIHsKLQkJLy8gZS5wcmludFN0YWNrVHJhY2UoKTsKLQkJLy8gfQotCQlyZXR1cm4gdmFsdWU7Ci0JfQotCi0JcHVibGljIFN0cmluZyBnZXRWYWx1ZSgpIHsKLQkJU3RyaW5nIHZhbHVlID0gIj8/PyI7Ci0JCXRyeSB7Ci0JCQl4b2JqZWN0ID0gZ2V0WE9iamVjdCgpOwotCQkJaWYgKHhvYmplY3QgIT0gbnVsbCkgewotCQkJCWludCB4YWxhblR5cGUgPSB4b2JqZWN0LmdldFR5cGUoKTsKLQkJCQlzd2l0Y2ggKHhhbGFuVHlwZSkgewotCQkJCWNhc2UgWE9iamVjdC5DTEFTU19VTlJFU09MVkVEVkFSSUFCTEU6Ci0JCQkJCXZhbHVlID0gIiI7Ci0JCQkJCWJyZWFrOwotCQkJCWNhc2UgWE9iamVjdC5DTEFTU19OT0RFU0VUOgotCQkJCQlYTm9kZVNldCB4bnMgPSAoWE5vZGVTZXQpIHhvYmplY3Q7Ci0JCQkJCWlmICh4bnMubm9kZWxpc3QoKS5nZXRMZW5ndGgoKSA+IDApIHsKLQkJCQkJICAgIHZhbHVlID0gY29udmVydE5vZGUoeG5zKTsKLQkJCQkJfQotCQkJCQllbHNlCi0JCQkJCQl2YWx1ZSA9ICI8RU1QVFkgTk9ERVNFVD4iOwotCQkJCQlicmVhazsKLQkJCQljYXNlIFhPYmplY3QuQ0xBU1NfQk9PTEVBTjoKLQkJCQljYXNlIFhPYmplY3QuQ0xBU1NfTlVNQkVSOgotCQkJCWNhc2UgWE9iamVjdC5DTEFTU19TVFJJTkc6Ci0JCQkJY2FzZSBYT2JqZWN0LkNMQVNTX1VOS05PV046Ci0JCQkJZGVmYXVsdDoKLQkJCQkJdmFsdWUgPSB4b2JqZWN0LnRvU3RyaW5nKCk7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQkJfSBjYXRjaCAoVHJhbnNmb3JtZXJFeGNlcHRpb24gZSkgewotCQkJZS5wcmludFN0YWNrVHJhY2UoKTsKLQkJfQotCQkvLyB2YWx1ZSA9IGdldFNjb3BlKCkrIi4iK2dldFNsb3ROdW1iZXIoKSsiKSIrZ2V0TmFtZSgpOwotCQkvLyBsb2cuZGVidWcoZ2V0U2NvcGUoKSsiLiIrZ2V0U2xvdE51bWJlcigpKyIpIitnZXROYW1lKCkgKyAiPSIgKwotCQkvLyB2YWx1ZSk7Ci0JCXJldHVybiB2YWx1ZTsKLQl9Ci0KLQlwcml2YXRlIFN0cmluZyBjb252ZXJ0Tm9kZShYTm9kZVNldCB4bnMpIHRocm93cyBUcmFuc2Zvcm1lckV4Y2VwdGlvbiB7Ci0JCU5vZGVMaXN0IG5vZGVMaXN0ID0geG5zLm5vZGVsaXN0KCk7Ci0JCVN0cmluZyB2YWx1ZSA9IHByb2Nlc3NOb2RlTGlzdChub2RlTGlzdCk7Ci0JCXJldHVybiB2YWx1ZTsKLQl9Ci0KLQlwcml2YXRlIFN0cmluZyBwcm9jZXNzTm9kZUxpc3QoTm9kZUxpc3Qgbm9kZUxpc3QpIHsKLQkJU3RyaW5nIHZhbHVlID0gIiI7Ci0JCWZvciAoaW50IGkgPSAwOyBpIDwgbm9kZUxpc3QuZ2V0TGVuZ3RoKCk7IGkrKykgewotCQkJTm9kZSBub2RlID0gbm9kZUxpc3QuaXRlbShpKTsKLQkJCWludCBub2RlVHlwZSA9IG5vZGUuZ2V0Tm9kZVR5cGUoKTsKLQkJCWlmIChub2RlLmdldE5vZGVUeXBlKCkgPT0gTm9kZS5FTEVNRU5UX05PREUpIHsKLQkJCQl2YWx1ZSA9IGNyZWF0ZUVsZW1lbnQodmFsdWUsIG5vZGUpOwotCQkJfQotCQkJaWYgKG5vZGVUeXBlID09IE5vZGUuQ09NTUVOVF9OT0RFICkgewotCQkJCXZhbHVlID0gdmFsdWUgKyAiPCEtLSAiICsgbm9kZS5nZXROb2RlVmFsdWUoKSArICIgLS0+IjsKLQkJCX0KLQkJCWlmIChub2RlVHlwZSA9PSBOb2RlLlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERSkgewotCQkJCVByb2Nlc3NpbmdJbnN0cnVjdGlvbiBwaSA9IChQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24pIG5vZGU7Ci0JCQkJdmFsdWUgPSB2YWx1ZSArICI8PyIgKyBwaS5nZXREYXRhKCkgKyAiID8+IjsKLQkJCX0KLQkJfQotCQlyZXR1cm4gdmFsdWU7Ci0JfQotCi0JcHJpdmF0ZSBTdHJpbmcgY3JlYXRlRWxlbWVudChTdHJpbmcgdmFsdWUsIE5vZGUgbm9kZSkgewotCQl2YWx1ZSA9IHZhbHVlICsgIjwiOwotLy8JCWlmIChub2RlLmdldFByZWZpeCgpICE9IG51bGwgJiYgbm9kZS5nZXRQcmVmaXgoKS5sZW5ndGgoKSA+IDApIHsKLS8vCQkJdmFsdWUgPSB2YWx1ZSArIG5vZGUuZ2V0UHJlZml4KCkgKyAiOiI7Ci0vLwkJfQotCQlpZiAobm9kZS5nZXROb2RlTmFtZSgpICE9IG51bGwpIHsKLQkJCXZhbHVlID0gdmFsdWUgKyBub2RlLmdldE5vZGVOYW1lKCk7Ci0JCQlpZiAobm9kZS5oYXNBdHRyaWJ1dGVzKCkpIHsKLQkJCQlOYW1lZE5vZGVNYXAgYXR0ciA9IG5vZGUuZ2V0QXR0cmlidXRlcygpOwotCQkJCXZhbHVlID0gdmFsdWUgKyBidWlsZEF0dHJpYnV0ZXMoYXR0cik7Ci0JCQl9Ci0JCQl2YWx1ZSA9IHZhbHVlICsgIj4iOwotCQkJaWYgKG5vZGUuZ2V0Tm9kZVZhbHVlKCkgIT0gbnVsbCkgewotCQkJCXZhbHVlID0gdmFsdWUgKyBub2RlLmdldE5vZGVWYWx1ZSgpOwotCQkJfQotCQl9Ci0JCWlmIChub2RlLmhhc0NoaWxkTm9kZXMoKSkgewotCQkJdmFsdWUgPSB2YWx1ZSArIHByb2Nlc3NOb2RlTGlzdChub2RlLmdldENoaWxkTm9kZXMoKSk7Ci0JCX0KLQkJdmFsdWUgPSB2YWx1ZSArICI8LyIgKyBub2RlLmdldE5vZGVOYW1lKCkgKyAiPiI7Ci0JCXJldHVybiB2YWx1ZTsKLQl9Ci0JCi0JcHJpdmF0ZSBTdHJpbmcgYnVpbGRBdHRyaWJ1dGVzKE5hbWVkTm9kZU1hcCBhdHRyaWJ1dGVzKSB7Ci0JCVN0cmluZyB2YWx1ZSA9ICIgIjsKLQkJZm9yIChpbnQgYSA9IDA7IGEgPCBhdHRyaWJ1dGVzLmdldExlbmd0aCgpOyBhKyspIHsKLQkJCUF0dHIgYXR0cmlidXRlID0gKEF0dHIpYXR0cmlidXRlcy5pdGVtKGEpOwotLy8JCQlpZiAoYXR0cmlidXRlLmdldFByZWZpeCgpICE9IG51bGwpIHsKLS8vCQkJCXZhbHVlID0gdmFsdWUgKyBhdHRyaWJ1dGUuZ2V0UHJlZml4KCkgKyAiOiI7Ci0vLwkJCX0KLQkJCXZhbHVlID0gdmFsdWUgKyBhdHRyaWJ1dGUuZ2V0TmFtZSgpICsgIj1cIiIgKyBhdHRyaWJ1dGUuZ2V0VmFsdWUoKSArICJcIiAiOwotCQl9Ci0JCXZhbHVlID0gdmFsdWUgKyAiICI7Ci0JCXJldHVybiB2YWx1ZTsKLQl9Ci0KLQlwcml2YXRlIFhPYmplY3QgZ2V0WE9iamVjdCgpIHRocm93cyBUcmFuc2Zvcm1lckV4Y2VwdGlvbiB7Ci0JCVhPYmplY3QgeHZhbHVlOwotCQlpZiAoZWxlbVZhcmlhYmxlLmdldElzVG9wTGV2ZWwoKSkKLQkJCXh2YWx1ZSA9IHZhclN0YWNrLmVsZW1lbnRBdChzbG90TnVtYmVyKTsKLQkJZWxzZQotCQkJeHZhbHVlID0gdmFyU3RhY2suZ2V0TG9jYWxWYXJpYWJsZShlbGVtVmFyaWFibGUuZ2V0SW5kZXgoKSwKLQkJCQkJc3RhY2tGcmFtZSk7Ci0JCXJldHVybiB4dmFsdWU7Ci0JfQotCi0JcHVibGljIGludCBjb21wYXJlVG8oT2JqZWN0IGFyZzApIHsKLQkJWGFsYW5WYXJpYWJsZSB4dmFyID0gKFhhbGFuVmFyaWFibGUpIGFyZzA7Ci0JCWludCBjb21wID0geHZhci5zdGFja0ZyYW1lIC0gc3RhY2tGcmFtZTsKLQkJaWYgKGNvbXAgPT0gMCkKLQkJCWNvbXAgPSBzbG90TnVtYmVyIC0geHZhci5zbG90TnVtYmVyOwotCQlyZXR1cm4gY29tcDsKLQl9Ci19CmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvLnByb2plY3QgYi9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyNWEzY2QuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2Uud3N0LnhzbDwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQk8L25hdHVyZXM+Ci08L3Byb2plY3REZXNjcmlwdGlvbj4KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9NRVRBLUlORi9NQU5JRkVTVC5NRgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWFiNGFlNC4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZS4wCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS53c3QueHNsCi1CdW5kbGUtVmVyc2lvbjogMS4wLjAucXVhbGlmaWVyCi1CdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvci4wCi1CdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9hYm91dC5odG1sIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxOTlkZjMuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wLy9FTiI+Ci08SFRNTD4KLQotPGhlYWQ+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgotPC9oZWFkPgotCi08Qk9EWSBsYW5nPSJFTi1VUyI+Ci0KLTxIMz5BYm91dCBUaGlzIENvbnRlbnQ8L0gzPgotCi08UD5KdW5lLCAyMDA4PC9QPgotCi08SDM+TGljZW5zZTwvSDM+Ci0KLTxQPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAKLSgiQ29udGVudCIpLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IAotdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIAotKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIGF0Ci08QSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLnBocDwvQT4uIAotRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9QPgotCi08UD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSAKLUNvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5ICgiUmVkaXN0cmlidXRvciIpIGFuZCBkaWZmZXJlbnQgCi10ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkgYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiAKLUNoZWNrIHRoZSBSZWRpc3RyaWJ1dG9yknMgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoIAotbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgCi10ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UgY29kZSBpbiB0aGUgQ29udGVudCAKLWFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdAotPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvPC9BPi48L1A+Ci0KLTwvQk9EWT4KLTwvSFRNTD4KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9hYm91dC5pbmkgYi9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvYWJvdXQuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGE1YTQwLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9hYm91dC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0jIGFib3V0LmluaQotIyBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIGZlYXR1cmUKLSMgamF2YS5pby5Qcm9wZXJ0aWVzIGZpbGUgKElTTyA4ODU5LTEgd2l0aCAiXCIgZXNjYXBlcykKLSMgIiVrZXkiIGFyZSBleHRlcm5hbGl6ZWQgc3RyaW5ncyBkZWZpbmVkIGluIGFib3V0LnByb3BlcnRpZXMKLSMgVGhpcyBmaWxlIGRvZXMgbm90IG5lZWQgdG8gYmUgdHJhbnNsYXRlZC4KLQotIyBQcm9wZXJ0eSAiYWJvdXRUZXh0IiBjb250YWlucyBibHVyYiBmb3IgIkFib3V0IiBkaWFsb2cgKHRyYW5zbGF0ZWQpCi1hYm91dFRleHQ9JWJsdXJiCi0KLSMgUHJvcGVydHkgIndpbmRvd0ltYWdlIiBjb250YWlucyBwYXRoIHRvIHdpbmRvdyBpY29uICgxNngxNikKLSMgbmVlZGVkIGZvciBwcmltYXJ5IGZlYXR1cmVzIG9ubHkKLQotIyBQcm9wZXJ0eSAiZmVhdHVyZUltYWdlIiBjb250YWlucyBwYXRoIHRvIGZlYXR1cmUgaW1hZ2UgKDMyeDMyKQotZmVhdHVyZUltYWdlPXd0cF9wcm9kMzIucG5nCi0KLSMgUHJvcGVydHkgImFib3V0SW1hZ2UiIGNvbnRhaW5zIHBhdGggdG8gcHJvZHVjdCBpbWFnZSAoNTAweDMzMCBvciAxMTV4MTY0KQotIyBuZWVkZWQgZm9yIHByaW1hcnkgZmVhdHVyZXMgb25seQotCi0jIFByb3BlcnR5ICJhcHBOYW1lIiBjb250YWlucyBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiAobm90IHRyYW5zbGF0ZWQpCi0jIG5lZWRlZCBmb3IgcHJpbWFyeSBmZWF0dXJlcyBvbmx5Ci0KLSMgUHJvcGVydHkgIndlbGNvbWVQYWdlIiBjb250YWlucyBwYXRoIHRvIHdlbGNvbWUgcGFnZSAoc3BlY2lhbCBYTUwtYmFzZWQgZm9ybWF0KQotIyBvcHRpb25hbAotCi0jIFByb3BlcnR5ICJ3ZWxjb21lUGVyc3BlY3RpdmUiIGNvbnRhaW5zIHRoZSBpZCBvZiB0aGUgcGVyc3BlY3RpdmUgaW4gd2hpY2ggdGhlCi0jIHdlbGNvbWUgcGFnZSBpcyB0byBiZSBvcGVuZWQuCi0jIG9wdGlvbmFsCi0KLQotCi0KZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9hYm91dC5tYXBwaW5ncyBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9hYm91dC5tYXBwaW5ncwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTI4MzkwYS4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvYWJvdXQubWFwcGluZ3MKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLSMgYWJvdXQubWFwcGluZ3MKLSMgY29udGFpbnMgZmlsbC1pbnMgZm9yIGFib3V0LnByb3BlcnRpZXMKLSMgamF2YS5pby5Qcm9wZXJ0aWVzIGZpbGUgKElTTyA4ODU5LTEgd2l0aCAiXCIgZXNjYXBlcykKLSMgVGhpcyBmaWxlIGRvZXMgbm90IG5lZWQgdG8gYmUgdHJhbnNsYXRlZC4KLQotMD1AYnVpbGRACmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvYWJvdXQucHJvcGVydGllcyBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9hYm91dC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNDYwZjk0Li4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9hYm91dC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotIyBhYm91dC5wcm9wZXJ0aWVzCi0jIGNvbnRhaW5zIGV4dGVybmFsaXplZCBzdHJpbmdzIGZvciBhYm91dC5pbmkKLSMgamF2YS5pby5Qcm9wZXJ0aWVzIGZpbGUgKElTTyA4ODU5LTEgd2l0aCAiXCIgZXNjYXBlcykKLSMgZmlsbC1pbnMgYXJlIHN1cHBsaWVkIGJ5IGFib3V0Lm1hcHBpbmdzCi0jIFRoaXMgZmlsZSBzaG91bGQgYmUgdHJhbnNsYXRlZC4KLSMKLSMgRG8gbm90IHRyYW5zbGF0ZSBhbnkgdmFsdWVzIHN1cnJvdW5kZWQgYnkge30KLQotYmx1cmI9V1RQIFhTTCBUb29sc1xuXAotXG5cCi1WZXJzaW9uOiB7ZmVhdHVyZVZlcnNpb259XG5cCi1CdWlsZCBpZDogezB9XG5cCi1cblwKLShjKSBDb3B5cmlnaHRcblwKLSAgRG91ZyBTYXRjaHdlbGwgKENoYXNlIFRlY2hub2xvZ3kgTHRkKSxcblwKLSAgRGF2aWQgQ2FydmVyIChTdGFuZGFyZHMgZm9yIFRlY2hub2xvZ3kgaW4gQXV0b21vdGl2ZSBSZXRhaWwpXG5cCi0gIGFuZCBvdGhlcnMgMjAwOC4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cblwKLVxuXAotVmlzaXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy93ZWJ0b29scwotCmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvYnVpbGQucHJvcGVydGllcyBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNGFhZTc5Li4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1iaW4uaW5jbHVkZXMgPSBNRVRBLUlORi8sXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBhYm91dC5pbmksXAotICAgICAgICAgICAgICAgYWJvdXQubWFwcGluZ3MsXAotICAgICAgICAgICAgICAgYWJvdXQucHJvcGVydGllcyxcCi0gICAgICAgICAgICAgICBwbHVnaW4ucHJvcGVydGllcyxcCi0gICAgICAgICAgICAgICB3dHBfcHJvZDMyLmdpZixcCi0gICAgICAgICAgICAgICB3dHBfcHJvZDMyLnBuZwpkaWZmIC0tZ2l0IGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsL3BsdWdpbi5wcm9wZXJ0aWVzIGIvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsL3BsdWdpbi5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZWE0M2JhLi4wMDAwMDAwCi0tLSBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC9wbHVnaW4ucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2Uud3N0LnhzbAotQnVuZGxlLVZlbmRvci4wID0gRWNsaXBzZS5vcmcKLUJ1bmRsZS1OYW1lLjAgPSBXVFAgWFNMIFRvb2xzIChJbmN1YmF0aW5nKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC93dHBfcHJvZDMyLmdpZiBiL2J1bmRsZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC93dHBfcHJvZDMyLmdpZgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWVmYjQ0YS4uMDAwMDAwMAotLS0gYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvd3RwX3Byb2QzMi5naWYKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvd3RwX3Byb2QzMi5wbmcgYi9idW5kbGVzL29yZy5lY2xpcHNlLndzdC54c2wvd3RwX3Byb2QzMi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJmY2VhYjMuLjAwMDAwMDAKLS0tIGEvYnVuZGxlcy9vcmcuZWNsaXBzZS53c3QueHNsL3d0cF9wcm9kMzIucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy8uY3ZzaWdub3JlIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy8uY3ZzaWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZTkzZGZkLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvLmN2c2lnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAoteGluY2x1ZGUKLXRlc3QueG1sCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jLy5wcm9qZWN0IGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy8ucHJvamVjdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjI2NjkxMi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2Uud3N0LnhzbC5kb2M8L25hbWU+Ci0JPGNvbW1lbnQ+PC9jb21tZW50PgotCTxwcm9qZWN0cz4KLQk8L3Byb2plY3RzPgotCTxidWlsZFNwZWM+Ci0JCTxidWlsZENvbW1hbmQ+Ci0JCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuTWFuaWZlc3RCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLndzdC52YWxpZGF0aW9uLnZhbGlkYXRpb25idWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmODQzZjBmLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0jTW9uIE1hciAxMCAxOTo0MTo1MCBHTVQtMDU6MDAgMjAwOAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udGFyZ2V0UGxhdGZvcm09MS4yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuNAotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hc3NlcnRJZGVudGlmaWVyPXdhcm5pbmcKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9d2FybmluZwotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuc291cmNlPTEuMwpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2Uud3N0LnZhbGlkYXRpb24ucHJlZnMgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS53c3QudmFsaWRhdGlvbi5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTlhOWEyOS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS53c3QudmFsaWRhdGlvbi5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLSNTYXQgU2VwIDIwIDE3OjAzOjA5IEdNVCAyMDA4Ci1ERUxFR0FURVNfUFJFRkVSRU5DRT1kZWxlZ2F0ZVZhbGlkYXRvckxpc3QKLVVTRVJfQlVJTERfUFJFRkVSRU5DRT1lbmFibGVkQnVpbGRWYWxpZGF0b3JMaXN0Ci1VU0VSX01BTlVBTF9QUkVGRVJFTkNFPWVuYWJsZWRNYW51YWxWYWxpZGF0b3JMaXN0Ci1VU0VSX1BSRUZFUkVOQ0U9b3ZlcnJpZGVHbG9iYWxQcmVmZXJlbmNlc3RydWVkaXNhYmxlQWxsVmFsaWRhdGlvbmZhbHNldmVyc2lvbjEuMi4wLnYyMDA4MDcyMTE0NTAKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1vdmVycmlkZT10cnVlCi1zdXNwZW5kPWZhbHNlCi12YWxzL29yZy5lY2xpcHNlLmpzdC5qc3AuY29yZS5KU1BCYXRjaFZhbGlkYXRvci9nbG9iYWw9RkYwMQotdmFscy9vcmcuZWNsaXBzZS5qc3QuanNwLmNvcmUuSlNQQ29udGVudFZhbGlkYXRvci9nbG9iYWw9RkYwMQotdmFscy9vcmcuZWNsaXBzZS53c3QuaHRtbC51aS5IVE1MVmFsaWRhdG9yL2dsb2JhbD1GRjAxCi12YWxzL29yZy5lY2xpcHNlLndzdC53c2RsLnZhbGlkYXRpb24ud3NkbC9nbG9iYWw9RkYwMjE1OG9yZy5lY2xpcHNlLndzdC53c2RsLnZhbGlkYXRpb24uaW50ZXJuYWwuZWNsaXBzZS5WYWxpZGF0b3IKLXZhbHMvb3JnLmVjbGlwc2Uud3N0LnhtbC5jb3JlLnhtbC9ncm91cHM9MDEwN2luY2x1ZGUwNzExMWNvbnRlbnRUeXBlMTI4b3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLnhtbFQxMTFjb250ZW50VHlwZTEzNG9yZy5lY2xpcHNlLndzdC54bWwuY29yZS54bWxzb3VyY2VUMTExY29udGVudFR5cGUxMzRvcmcuZWNsaXBzZS53c3QueG1sLmNvcmUueHNsc291cmNlVDExMWNvbnRlbnRUeXBlMTM0b3JnLmVjbGlwc2UuanN0LmpzcC5jb3JlLnRsZHNvdXJjZVQwN2ZpbGVleHQwM3htbEYwN2ZpbGVleHQwM2dwaEYwN2ZpbGVleHQxMTV3ZG8tY29ubmVjdGlvbnNGMDEwN2V4Y2x1ZGUwNjExM3Byb2plY3ROYXR1cmUxMzRvcmcuZWNsaXBzZS5qc3QuajJlZS5lamIuRUpCTmF0dXJlMTEzcHJvamVjdE5hdHVyZTEzMG9yZy5lY2xpcHNlLmpzdC5qMmVlLkVBUk5hdHVyZTA0ZmlsZTA4LnByb2plY3RUMDEwNGZpbGUxMTAuY2xhc3NwYXRoVDAxMDRmaWxlMTEwLnNldHRpbmdzL1QwMjA0ZmlsZTExMmNvbmNlcHRzLnhtbEYwMQotdmFscy9vcmcuZWNsaXBzZS53c3QueHNkLmNvcmUueHNkL2dsb2JhbD1GRjAyMTYyb3JnLmVjbGlwc2Uud3N0LnhzZC5jb3JlLmludGVybmFsLnZhbGlkYXRpb24uZWNsaXBzZS5WYWxpZGF0b3IKLXZmLnZlcnNpb249MwpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2M2NlYTIuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS53c3QueHNsLmRvYztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLVJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aTtidW5kbGUtdmVyc2lvbj0iWzMuNC4wLDQuMC4wKSIsCi0gb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lO2J1bmRsZS12ZXJzaW9uPSJbMy40LjAsNC4wLjApIgotQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS40Ci1CdW5kbGUtVmVuZG9yOiAldmVuZG9yTmFtZQotQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2Fib3V0Lmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxOTlkZjMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPEhUTUw+Ci0KLTxoZWFkPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTwvaGVhZD4KLQotPEJPRFkgbGFuZz0iRU4tVVMiPgotCi08SDM+QWJvdXQgVGhpcyBDb250ZW50PC9IMz4KLQotPFA+SnVuZSwgMjAwODwvUD4KLQotPEgzPkxpY2Vuc2U8L0gzPgotCi08UD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gCi0oIkNvbnRlbnQiKS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSAKLXVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAKLSgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSBhdAotPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC12MTAucGhwIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHA8L0E+LiAKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvUD4KLQotPFA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgCi1Db250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoIlJlZGlzdHJpYnV0b3IiKSBhbmQgZGlmZmVyZW50IAotdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5IGFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gCi1DaGVjayB0aGUgUmVkaXN0cmlidXRvcpJzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaCAKLWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIAotdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQgCi1hbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQKLTxBIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnLzwvQT4uPC9QPgotCi08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2J1aWxkLnByb3BlcnRpZXMgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjZDUwNTMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIC4sXAotICAgICAgICAgICAgICAgaHRtbC8sXAotICAgICAgICAgICAgICAgKi54bWwsXAotICAgICAgICAgICAgICAgYWJvdXQuaHRtbCxcCi0gICAgICAgICAgICAgICBwbHVnaW4ucHJvcGVydGllcwotZ2VuZXJhdGVTb3VyY2VCdW5kbGU9ZmFsc2UKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvYnVpbGQueG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9idWlsZC54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyODJmZGEuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9idWlsZC54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTxwcm9qZWN0IGRlZmF1bHQ9ImNyZWF0ZS1kb2MiIGJhc2VkaXI9Ii4iPgotCi0JPHByb3BlcnR5IG5hbWU9ImN1cnJlbnQtbG9jIiBsb2NhdGlvbj0iLiIgLz4KLQk8cHJvcGVydHkgbmFtZT0id29ya3NwYWNlIiBsb2NhdGlvbj0iLi4iIC8+Ci0JPHByb3BlcnR5IG5hbWU9Imh0bWxkaXIiIHZhbHVlPSIke2N1cnJlbnQtbG9jfS9odG1sIiAvPgotCTxwcm9wZXJ0eSBuYW1lPSJkb2Nib29rZGlyIiB2YWx1ZT0iJHt3b3Jrc3BhY2V9L0NvbW1vblV0aWxpdGllcy9kb2Nib29rLXhzbC9lY2xpcHNlIiAvPgotCTxwcm9wZXJ0eSBuYW1lPSJkb2Nib29rc291cmNlIiB2YWx1ZT0iJHtjdXJyZW50LWxvY30vZG9jYm9vayIvPgotCTxwcm9wZXJ0eSBuYW1lPSJ4YWxhbiIgdmFsdWU9Im9yZy5hcGFjaGUueGFsYW4ucHJvY2Vzc29yLlRyYW5zZm9ybWVyRmFjdG9yeUltcGwiIC8+Ci0KLSAgICAKLQk8IS0tIFhTTFQgQ2h1bmtpbmcgUHJvcGVydGllcyAtLT4KLQk8cHJvcGVydHkgbmFtZT0iYmFzZS5kaXIiIHZhbHVlPSIke2h0bWxkaXJ9Ii8+Ci0JCi0JPHRhcmdldCBuYW1lPSJtZXJnZSI+Ci0JCTx4c2wueGluY2x1ZGUgaW49IiR7ZG9jYm9va3NvdXJjZX0veHNsaGVscC5kYmsiCi0JCSAgICAgICAgICAgICAgb3V0PSIke2RvY2Jvb2tzb3VyY2V9L3hzbGhlbHBjb21iaW5lZC5kYmsiLz4KLQk8L3RhcmdldD4KLQotCTx0YXJnZXQgbmFtZT0iY3JlYXRlLWRvYyIgZGVwZW5kcz0ibWVyZ2UiPgotCi0JCTx4c2x0IGZvcmNlPSJ0cnVlIiBzdHlsZT0iJHtkb2Nib29rZGlyfS9lY2xpcHNlMzMueHNsIiBpbj0iJHtkb2Nib29rc291cmNlfS94c2xoZWxwY29tYmluZWQuZGJrIiBvdXQ9InRlc3QueG1sIj4KLQkJCTxmYWN0b3J5IG5hbWU9IiR7eGFsYW59IiAvPgotCQkJPHBhcmFtIG5hbWU9Im1hbmlmZXN0IiBleHByZXNzaW9uPSIxIi8+Ci0JCQk8cGFyYW0gbmFtZT0iYmFzZS5kaXIiIGV4cHJlc3Npb249IiR7aHRtbGRpcn0vIi8+Ci0JCQk8cGFyYW0gbmFtZT0iY3JlYXRlLnBsdWdpbi54bWwiIGV4cHJlc3Npb249IjAiLz4KLQkJCTxwYXJhbSBuYW1lPSJjaHVua2VyLm91dHB1dC5pbmRlbnQiIGV4cHJlc3Npb249InllcyIvPgotCQkJPHBhcmFtIG5hbWU9Im5hdmlnLnNob3d0aXRsZXMiIGV4cHJlc3Npb249IjAiLz4KLQkJCTxwYXJhbSBuYW1lPSJzdXBwcmVzcy5uYXZpZ2F0aW9uIiBleHByZXNzaW9uPSIxIi8+Ci0gICAgICAgICAgICA8cGFyYW0gbmFtZT0iZ2VuZXJhdGUudG9jIiBleHByZXNzaW9uPSJib29rICAgICAgdG9jLHRpdGxlCi1jaGFwdGVyICAgdG9jLHRpdGxlCi1zZWN0aW9uICAgdGl0bGUiIC8+Ci0JCQk8cGFyYW0gbmFtZT0iY2hhcHRlci5hdXRvbGFiZWwiIGV4cHJlc3Npb249IjAiLz4KLQkJCTxwYXJhbSBuYW1lPSJzZWN0aW9uLmF1dG9sYWJlbCIgZXhwcmVzc2lvbj0iMCIvPgotCQkJPHBhcmFtIG5hbWU9Imh0bWwuc3R5bGVzaGVldCIgZXhwcmVzc2lvbj0iYm9vay5jc3MgLi4vYm9vay5jc3MiLz4KLQkJCTxwYXJhbSBuYW1lPSJjaHVuay5zZWN0aW9uLmRlcHRoIiBleHByZXNzaW9uPSIzIi8+Ci0JCQk8cGFyYW0gbmFtZT0idG9jLnNlY3Rpb24uZGVwdGgiIGV4cHJlc3Npb249IjUiLz4KLQkJCTxwYXJhbSBuYW1lPSJ0b2MubGlzdC50eXBlIiBleHByZXNzaW9uPSJ1bCIvPgotCQk8L3hzbHQ+Ci0JCQotCQk8cmVwbGFjZSBmaWxlPSIke2N1cnJlbnQtbG9jfS90b2MueG1sIiB0b2tlbj0iJHtjdXJyZW50LWxvY30vIiB2YWx1ZT0iIi8+Ci0JPC90YXJnZXQ+Ci0KLTwvcHJvamVjdD4KZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay8uY3ZzaWdub3JlIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rLy5jdnNpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMwOTU4YjMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rLy5jdnNpZ25vcmUKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi14c2xoZWxwY29tYmluZWQuZGJrCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svY29uY2VwdHMvUmVzY3VpbmdYU0xUZnJvbU5pY2hlU3RhdHVzLnhtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9jb25jZXB0cy9SZXNjdWluZ1hTTFRmcm9tTmljaGVTdGF0dXMueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZTE5YTgyLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9jb25jZXB0cy9SZXNjdWluZ1hTTFRmcm9tTmljaGVTdGF0dXMueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTAyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgc2VjdGlvbiBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuNS8vRU4iCi0gICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC41L2RvY2Jvb2t4LmR0ZCI+Ci08c2VjdGlvbiBpZD0iUmVzdWNpbmdYU0xUIj4KLSAgIDx0aXRsZT5SZXNjdWluZyBYU0xUIEZyb20gTmljaGUgU3RhdHVzPC90aXRsZT4KLSAgIDxzdWJ0aXRsZT5BIEdlbnRsZSBJbnRyb2R1Y3Rpb24gdG8gWFNMVCB0aHJvdWdoIEhUTUwgVGVtcGxhdGVzPC9zdWJ0aXRsZT4KLSAgIDxub3RlPgotICAgICAgPHBhcmE+Ci0gICAgICAgICA8ZW1waGFzaXM+Ci0gICAgICAgICAgICBFZGl0b3JzIE5vdGU6IFRoaXMgb3JpZ2luYWxseSBhcHBlYXJlZCBhdAotICAgICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy54ZnJvbnQuY29tL3Jlc2N1aW5nLXhzbHQuaHRtbCI+WEZyb250LmNvbTwvdWxpbms+Ci0gICAgICAgICAgICAsIGFuZCBpcyByZXB1Ymxpc2hlZCBoZXJlIHdpdGggcGVybWlzc2lvbi4gVGhlIGFydGljbGUgaXMgd3JpdHRlbiBieSBEYXZpZCBKYWNvYnMuCi0gICAgICAgICA8L2VtcGhhc2lzPgotICAgICAgPC9wYXJhPgotICAgPC9ub3RlPgotICAgPGFic3RyYWN0PgotICAgICAgPHBhcmE+Ci0gICAgICAgICBYU0xUIGlzIG9uZSBvZiB0aGUgbW9zdCBleGNpdGluZyB0ZWNobm9sb2dpZXMgdG8gY29tZSBvdXQgb2YgdGhlIFhNTCBmYW1pbHkuIFVuZm9ydHVuYXRlbHksIGl0cyBpbmNyZWRpYmxlCi0gICAgICAgICBwb3dlciBhbmQgYXNzb2NpYXRlZCBjb21wbGV4aXR5IGNhbiBiZSBvdmVyd2hlbG1pbmcgdG8gbmV3IHVzZXJzIHByZXZlbnRpbmcgbWFueSBmcm9tIGV4cGVyaW1lbnRpbmcgd2l0aCBpdCBvcgotICAgICAgICAgY2F1c2luZyB0aGVtIHRvIHF1aWNrbHkgZ2l2ZSB1cCBpbiBkaXNndXN0LiBJbiBmYWN0LCB1bmxlc3MgdGhlIG1ldGhvZCBvZiB0ZWFjaGluZyBhbmQgdGhlIGNvbW1vbiBzdHlsZSBvZiB1c2UKLSAgICAgICAgIGZvciBYU0xUIGlzIHJhZGljYWxseSBjaGFuZ2VkIHRvIG1ha2UgaXQgbW9yZSBhY2Nlc3NpYmxlLCBYU0xUIHdpbGwgYmUgcmVsZWdhdGVkIHRvIG5pY2hlIHN0YXR1cyBsaWtlIFNHTUwgYW5kCi0gICAgICAgICBvdGhlciBwb3dlcmZ1bCB0ZWNobm9sb2dpZXMuCi0gICAgICA8L3BhcmE+Ci0gICA8L2Fic3RyYWN0PgotICAgPHNlY3Rpb24+Ci0gICAgICA8dGl0bGU+VGhlIFByb2JsZW08L3RpdGxlPgotICAgICAgPHBhcmE+Ci0gICAgICAgICBUaGUgMTk5MOKAmXMgc2F3IGFuIGluY3JlZGlibGUgcHJvbGlmZXJhdGlvbiBvZiBuZXcgd2ViIHJlbGF0ZWQgbGFuZ3VhZ2VzLiBMb29raW5nIGJhY2sgd2UgY2FuIHNlZSB3aGF0Ci0gICAgICAgICBmZWF0dXJlcyBzZXBhcmF0ZWQgdGhlIHdpbm5lcnMgYW5kIGxvc2Vycy4gVGhlIGJpZ2dlc3Qga2V5IGhhcyBiZWVuIGhhdmluZyBhIHZlcnkgbG93IGJhcnJpZXIgdG8gZW50cnkuIE1hbnkKLSAgICAgICAgIGxhbmd1YWdlcyBhY2NvbXBsaXNoZWQgdGhpcyBieSBmb2xsb3dpbmcgdGhlIGZvbGxvd2luZyBydWxlcy4KLSAgICAgIDwvcGFyYT4KLSAgICAgIDxpdGVtaXplZGxpc3Q+Ci0gICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgIExldmVyYWdlIGFzIG11Y2ggZXhpc3Rpbmcga25vd2xlZGdlIGFzIHBvc3NpYmxlLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgTWFrZSBpdCBlYXN5IHRvIGdldCBzdGFydGVkIHdpdGggImhlbGxvIHdvcmxkIiBzdHlsZSBleGFtcGxlLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgVGhlIG1vc3QgY29tbW9uIGFuZCB1c2VmdWwgbGFuZ3VhZ2UgY29uc3RydWN0cyBzaG91bGQgYmUgZWFzaWx5IGNvbnZleWVkIHdpdGggYSBmZXcgc21hbGwgZXhhbXBsZXMuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICAgICBDb21wbGV4IHByb2dyYW1taW5nIGNvbnN0cnVjdHMgc2hvdWxkIG9ubHkgYmUgcmVxdWlyZWQgd2hlbiB3aGF0IGlzIHRyeWluZyB0byBiZSBhY2NvbXBsaXNoZWQgaXMKLSAgICAgICAgICAgICAgIGNvbXBsZXguICAgICAgICAgICAgCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgPC9pdGVtaXplZGxpc3Q+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgIEZyb20gdGhlc2UgcnVsZXMgd2UgY2FuIHNlZSB3aHkgZW1iZWRkZWQgd2ViIHNjcmlwdGluZyBsYW5ndWFnZXMgbGlrZSBBY3RpdmUgU2VydmVyIFBhZ2VzIChBU1BzKSwgQ29sZAotICAgICAgICAgRnVzaW9uLCBQSFAgYW5kCi0gICAgICAgICBKYXZhIFNlcnZlciBQYWdlcyAoSlNQcykgYXJlIHNvIHBvcHVsYXIuIFRoZXkgYWxsIGxldmVyYWdlIGEgdXNlcuKAmXMga25vd2xlZGdlIG9mIEhUTUwuIFRoZXkgYWxzbwotICAgICAgICAgYWxsb3cgdGhlCi0gICAgICAgICBtaW5pbXVtIGFtb3VudCBvZiBzY3JpcHRpbmcgdG8gYmUgYWRkZWQgdG8gYWNjb21wbGlzaCB0aGUgZHluYW1pYyBmZWF0dXJlIGEgZGV2ZWxvcGVyIGlzIGxvb2tpbmcgZm9yLgotICAgICAgICAgVGhpcyBoYXMKLSAgICAgICAgIGFsbG93ZWQgbnVtZXJvdXMgd2ViIGRldmVsb3BlcnMgdG8gc3RhcnQgb2ZmIHdpdGggdmVyeSBzbWFsbCBwcm9qZWN0cyBhbmQgdGhlbiB0aHJvdWdoIGNvbnRpbnVvcwotICAgICAgICAgZW5oYW5jZW1lbnQKLSAgICAgICAgIGFuZCBsZWFybmluZywgZmluZCB0aGVtc2VsdmVzIHVzaW5nIHRoZSBmdWxsIHBvd2VyIG9mIGEgY29tcGxleCBwcm9ncmFtbWluZyBsYW5ndWFnZS4gRnVydGhlcm1vcmUsCi0gICAgICAgICBiZWNhdXNlIG9mCi0gICAgICAgICB0aGUgdmVyeSBpbmNyZW1lbnRhbCBuYXR1cmUgb2YgdGhhdCBsZWFybmluZyB0aGUgZGV2ZWxvcGVyIHdhcyBuZXZlciBzY2FyZWQgb2ZmLiAgICAgICAgIAotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgICBIVE1MIGhhcyBhbHNvIGZvc3RlcmVkIHRoZSB0ZWNobmlxdWUgb2YgbGVhcm5pbmcgYnkgZXhhbXBsZS4gV2hlbiBhIHdlYiBhdXRob3Igc2VlcyBhbm90aGVyIHNpdGUgd2l0aCBhCi0gICAgICAgICBmZWF0dXJlIHRoZXkKLSAgICAgICAgIGxpa2UsIHRoZXkgaW1tZWRpYXRlbHkgYnJpbmcgdXAgdGhlIHNvdXJjZSB0byBzZWUgaG93IGl0IHdhcyBpbXBsZW1lbnRlZC4gSW4gdGhpcyB3YXkgbWFueSB3ZWIKLSAgICAgICAgIGF1dGhvcnMgd2VyZQotICAgICAgICAgYWJsZSB0byBsZWFybiBjb21wbGV4IEhUTUwgdHJpY2tzIHdpdGggbm8gZm9ybWFsIHRyYWluaW5nLiBXaGlsZSBzZXJ2ZXItc2lkZSBzY3JpcHRzIGFyZSBub3QgYXMKLSAgICAgICAgIGVhc3kgdG8gY29tZQotICAgICAgICAgYnksIHRoZXJlIGFyZSBzdGlsbCBudW1lcm91cyBzaXRlcyB0aGF0IGhvdXNlIHRob3VzYW5kcyBvZiBleGFtcGxlIHNjcmlwdHMgZm9yIGEgYmxvc3NvbWluZwotICAgICAgICAgZGV2ZWxvcGVyIHRvCi0gICAgICAgICBleGFtaW5lLiAgICAgICAgIAotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgICBUcmFkaXRpb25hbGx5IFhTTFQgaGFzIGJlZW4gcHJlc2VudGVkIGFzIGEgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgZm9yIHRyYW5zbGF0aW5nIFhNTCBkb2N1bWVudHMgaW50byBhbm90aGVyCi0gICAgICAgICBmb3JtYXQsIG9mdGVuIGZvciBwcmVzZW50YXRpb24uIFRoaXMgZnJhbWVzIHRoZSBwcm9ibGVtLCBzdWNoIHRoYXQgZm9yIGVhY2ggZWxlbWVudCwgdGhlIHByb2dyYW1tZXIgaGFzIHRoZQotICAgICAgICAgdGFzayBvZiBmaWd1cmluZyBvdXQgaG93IHRoYXQgZWxlbWVudCBuZWVkcyB0byBiZSB0cmFuc2xhdGVkLiBBcyBsb25nIGFzIHRoZXJlIGFyZSBvbmUgdG8gb25lIG1hcHBpbmdzIG9yIG9uZQotICAgICAgICAgdG8gemVybyBtYXBwaW5ncyB0aGlzIGlzIHN0cmFpZ2h0Zm9yd2FyZC4gRm9yIGV4YW1wbGUsIGlmIGV2ZXJ5IG9jY3VycmVuY2Ugb2YgYSA8IVtDREFUQVsKLSAgICAgICAgIDxuYW1lPl1dPgotICAgICAgICAgZWxlbWVudCBpcyBnb2luZyB0bwotICAgICAgICAgYmVjb21lIGFuIEhUTUwgaGVhZGVyLiBJdCBpcyBhIHNpbXBsZSBtYXR0ZXIgdG8gd3JpdGUgYSBtYXRjaGluZyB0ZW1wbGF0ZSB0byBhY2NvbXBsaXNoCi0gICAgICAgICB0aGlzLgotICAgICAgPC9wYXJhPgotICAgICAgPHByb2dyYW1saXN0aW5nIGlkPSJwbF9OYW1lVGVtcGxhdGUiPgotPCFbQ0RBVEFbCi08eHNsOnRlbXBsYXRlIG1hdGNoPSJuYW1lIj4KLSAgPGgxPjx4c2w6YXBwbHktdGVtcGxhdGVzLz48L2gxPgotPC94c2w6dGVtcGxhdGU+Ci1dXT4gICAgICAKLSAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgIEhvd2V2ZXIgd2hlbiBhZGRpbmcgb25lIHRvIG1hbnkgbWFwcGluZ3MgKGkuZS4gd2hlbiBhbiBlbGVtZW504oCZcyBjb250ZW50cyB3aWxsIGFwcGVhciBtdWx0aXBsZSB0aW1lcyBpbiB0aGUKLSAgICAgICAgIHRhcmdldCBkb2N1bWVudCB3aXRoIGRpZmZlcmVudCBmb3JtYXR0aW5nKSwga2VlcGluZyB0cmFjayBvZiBhbGwgdGhlIHJlbGF0aW9uc2hpcHMgcXVpY2tseSBncm93cyBpbiBjb21wbGV4aXR5Ci0gICAgICAgICBhbmQgYmVjb21lcyBjb25mdXNpbmcuIEZvciBleGFtcGxlLCBpZiwgYWZ0ZXIgd3JpdGluZyB0aGUgcHJldmlvdXMgdGVtcGxhdGUsIHRoZSBwcm9ncmFtbWVyIGRpc2NvdmVycyB0aGF0IHRoZQotICAgICAgICAgbmFtZSBhbHNvIG5lZWRzIHRvIGJlIHBsYWNlZCBpbiB0aGUgdGl0bGUgdGhlIHByb2dyYW1tZXIgbWlnaHQgYWRkIHRoZSB0ZW1wbGF0ZQotICAgICAgPC9wYXJhPgotICAgICAgPHByb2dyYW1saXN0aW5nIGlkPSJwbF92YWx1ZU9mIj4KLTwhW0NEQVRBWwotPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+Ci0gIDx0aXRsZT48eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIvPjwvdGl0bGU+Ci08L3hzbDp0ZW1wbGF0ZT4KLV1dPiAgICAgIAotICAgICAgPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIDxwYXJhPgotICAgICAgICAgTm90aWNlIHRoZSB1c2Ugb2YgdGhlIDwhW0NEQVRBWzx4c2w6dmFsdWUtb2Y+XV0+Ci0gICAgICAgICBmdW5jdGlvbiBpbiB0aGlzIHRlbXBsYXRlIGJlY2F1c2UgdXNpbmcgPCFbQ0RBVEFbPGFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Im5hbWUiPl1dPgotICAgICAgICAgd291bGQgaGF2ZSBjYXVzZWQgYSB0cmlnZ2VyaW5nIG9mIHRoZSBwcmV2aW91cyB0ZW1wbGF0ZSBhZGRpbmcgdW5kZXNpcmVkIGhlYWRlciB0YWdzIHRvIG15IGNvbnRlbnQuIFRoaXMgbWVhbnMKLSAgICAgICAgIGJlZm9yZSBhZGRpbmcgYSB0cmFuc2xhdGlvbiB0byBhbiBlbGVtZW50IHRoZSBwcm9ncmFtbWVyIG11c3QgZmlyc3QgYmUgYXdhcmUgb2YgYWxsIHRoZSBleGlzdGluZyB0cmFuc2xhdGlvbnMKLSAgICAgICAgICh1Z2ghKS4gT2YgY291cnNlIGlmIHRoZSBwcm9ncmFtbWVyIGJlY2FtZSBhd2FyZSBvZiB0aGUKLSAgICAgICAgIDwhW0NEQVRBWzx0aXRsZT5dXT4KLSAgICAgICAgIHJlcXVpcmVtZW50IGZpcnN0LCB0aGUgY29udGVudHMgb2YgdGhlc2UgdGVtcGxhdGVzIGNvdWxkIGhhdmUgYmVlbiByZXZlcnNlZC4gT25lIGNhbiBxdWlja2x5IHNlZSBob3cKLSAgICAgICAgIHRoZQotICAgICAgICAgYXJiaXRyYXJ5IGRlY2lzaW9ucyBvZiBkZXZlbG9wbWVudCBhbmQgZGlzY292ZXJ5IG9mIHJlcXVpcmVtZW50cyBjYW4gbGVhZCB0byBhIHNldCBvZiB0ZW1wbGF0ZXMgdGhhdCBhcmUKLSAgICAgICAgIG5vCi0gICAgICAgICBsb25nZXIgaW50dWl0aXZlLgotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgICBBcyBhIHByb2dyYW1tZXIgd2l0aCBtb3JlIHRoYW4gMjAgeWVhcnMgZXhwZXJpZW5jZSB3aXRoIG92ZXIgYSBkb3plbiBsYW5ndWFnZXMsIFhTTFQgdGVtcGxhdGVzIGFuZCBkZWZhdWx0Ci0gICAgICAgICBydWxlcyB3ZXJlCi0gICAgICAgICBub3Qgb2J2aW91cyB0byBtZS4gT3ZlciB0aGUgcGFzdCB5ZWFyIG9yIHR3byBJIGhhZCBsb29rZWQgYXQgbnVtZXJvdXMgZXhhbXBsZXMgdHJ5aW5nIHRvIGRpc2Nlcm4gaG93Ci0gICAgICAgICB0aGV5Ci0gICAgICAgICB3b3JrZWQuIFdoaWxlIEkgY291bGQgdW5kZXJzdGFuZCB0aGUgZ2VuZXJhbCBnaXN0IG9mIHdoYXQgd2FzIG9jY3VycmluZywgdGhlcmUgd2FzIHRvbyBtdWNoIGltcGxpZWQKLSAgICAgICAgIGJlaGF2aW9yCi0gICAgICAgICB0aGF0IEkgZGlkIG5vdCBwaWNrIHVwLiBJdCB3YXMgbm90IHVudGlsIGdvaW5nIHRocm91Z2ggZm9ybWFsIFhTTFQgdHJhaW5pbmcgdGhhdCBJIGZ1bGx5IHVuZGVyc3Rvb2QgaG93Ci0gICAgICAgICBYU0xUCi0gICAgICAgICB3b3JrZWQuIENsZWFybHksIGlmIHRoZSBiYXJyaWVyIHRvIGVudHJ5IGlzIHRoYXQgaGlnaCBmb3IgYW4gZXhwZXJpZW5jZWQgcHJvZ3JhbW1lciwgdGhlIGF2ZXJhZ2Ugd2ViCi0gICAgICAgICBkZXZlbG9wZXIKLSAgICAgICAgIHdhcyBub3QgZ29pbmcgdG8gZmluZCB0aGlzIHRlY2hub2xvZ3kgdmVyeSB1c2VmdWwuICAgICAgICAgIAotICAgICAgPC9wYXJhPgotICAgPC9zZWN0aW9uPgotICAgPHNlY3Rpb24+Ci0gICAgICA8dGl0bGU+VGhlIFNvbHV0aW9uPC90aXRsZT4KLSAgICAgIDxwYXJhPgotICAgICAgICAgU28gaG93IGRvIHdlIHNvbHZlIHRoaXMgcHJvYmxlbSBhbmQgaGVscCBkZWxpdmVyIFhTTFTigJlzIHByb21pc2UgdG8gdGhlIG1hc3Nlcz8gRm9yIFhTTFQgdG8gYmUgc3VjY2Vzc2Z1bCBpdAotICAgICAgICAgbXVzdCBiZQotICAgICAgICAgcHJlc2VudGVkIGFuZCB1c2VkIGluIGEgd2F5IHRoYXQgYWRvcHRzIHRob3NlIGF0dHJpYnV0ZXMgZGlzY3Vzc2VkIGVhcmxpZXIgKHJldXNlIG9mIGtub3dsZWRnZSwgZmFzdAotICAgICAgICAgc3RhcnQsIGFuZAotICAgICAgICAgZ3JhZHVhbGlzbSkuIFRoaXMgdHV0b3JpYWwgd2lsbCBhdHRlbXB0IHRvIGVhc2UgWFNMVOKAmXMgaW50cm9kdWN0aW9uIGJ5IGZvY3VzaW5nIG9uIHRoZXNlIGF0dHJpYnV0ZXMuCi0gICAgICAgICBGaXJzdCwgaXQKLSAgICAgICAgIGlzIG9ubHkgZ29pbmcgdG8gZm9jdXMgb24gdGhlIGdlbmVyYXRpb24gb2YgSFRNTCBkb2N1bWVudHMgYW5kIHVzZXJzIHdobyBhcmUgZmFtaWxpYXIgd2l0aCBIVE1MLiBJZgotICAgICAgICAgeW91ciBnb2FsCi0gICAgICAgICBpcyB0byBpbW1lZGlhdGVseSBzdGFydCB0cmFuc2Zvcm1pbmcgb25lIFhNTCBkb2N1bWVudCBpbnRvIGFub3RoZXIgWE1MIGRvY3VtZW50IHRoaXMgdHV0b3JpYWwgaXMgbm90Ci0gICAgICAgICBmb3IgeW91LgotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgICBUaGUgc2Vjb25kIGlzIHRvIHJlZnJhbWUgdGhlIHByb2JsZW0gc28gdGhlIFhTTFQgc29sdXRpb25zIHByb2dyYW1tZXJzIHdyaXRlIGFyZSBtb3JlIG5hdHVyYWxseSBleHRlbnNpYmxlCi0gICAgICAgICBhbmQKLSAgICAgICAgIGludHVpdGl2ZS4gSW5zdGVhZCBvZiB0cnlpbmcgdG8gdHJhbnNsYXRlIGFuIFhNTCBzb3VyY2UgZG9jdW1lbnQgaW50byBhbiBIVE1MIHByZXNlbnRhdGlvbiBkb2N1bWVudCwgdGhlCi0gICAgICAgICBwcm9ncmFtbWVyIHNob3VsZCBzZWUgdGhlIFhNTCBkb2N1bWVudCBhcyBhIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmUgd2l0aCBYU0xUIHByb3ZpZGluZyBwb3dlcmZ1bCB0b29scyBmb3IKLSAgICAgICAgIGV4dHJhY3RpbmcgdGhhdCBpbmZvcm1hdGlvbiBpbnRvIHRoZWlyIEhUTUwgZG9jdW1lbnRzLiBUaGlzIGFsbG93cyB1cyB0byBsZXZlcmFnZSB0aGUgZXhwZXJpZW5jZSBtb3N0IHBlb3BsZQotICAgICAgICAgaGF2ZSB3aXRoIHVzaW5nIGFuIEhUTUwgdGVtcGxhdGluZyBsYW5ndWFnZSAoZS5nLiBBU1AsIFBIUCwgSlNQLCBDb2xkIEZ1c2lvbiwgV2ViIE1hY3JvLCBldGMpLiBUaGVzZSB0ZW1wbGF0aW5nCi0gICAgICAgICBsYW5ndWFnZXMgYXJlIGFsbCBiYXNlZCBvbiB0aGUgYmFzaWMgcHJlbWlzZSB0aGF0IEhUTUwgY29tZXMgZmlyc3QgYW5kIGFsbCBlbmhhbmNlbWVudHMgYXJlIHRoZW4gZW1iZWRkZWQgaW4KLSAgICAgICAgIHNwZWNpYWwgdGFncy4gICAgICAgICAKLSAgICAgIDwvcGFyYT4KLSAgICAgIDxwYXJhPgotICAgICAgICAgV2l0aCBzb21lIGNhdmVhdHMsIHRoaXMgdHV0b3JpYWwgd2lsbCBzaG93IGhvdyBYU0xUIGNhbiBiZSB1c2VkIGluIHRoaXMgc2FtZSB3YXkuIFRoZSBiZW5lZml0IG9mIHRoaXMKLSAgICAgICAgIGFwcHJvYWNoIGlzIGl0Ci0gICAgICAgICBhbGxvd3MgdGhlIHF1aWNrIHVzZSBvZiBtYW55IG9mIFhTTFTigJlzIHBvd2VyZnVsIGZ1bmN0aW9ucyB3aGlsZSBsZXR0aW5nIHlvdSBsZWFybiBpdHMgbW9yZQotICAgICAgICAgZXNvdGVyaWMKLSAgICAgICAgIGNhcGFiaWxpdGllcyBhcyB0aGUgbmVlZCBhcmlzZXMuIEluIGFkZGl0aW9uIHRoZSByZXN1bHRpbmcgWFNMVCBmaWxlcyBhcmUgbW9yZSBpbnR1aXRpdmUgYW5kCi0gICAgICAgICBtYWludGFpbmFibGUuCi0gICAgICA8L3BhcmE+Ci0gICAgICA8cHJvZ3JhbWxpc3Rpbmc+Ci08ZW1waGFzaXMgcm9sZT0iYm9sZCI+PCFbQ0RBVEFbPHhzbDp2YWx1ZS1vZj4gYW5kIHt9XV0+PC9lbXBoYXNpcz4gICAgICAgICAKLSAgICAgIDwvcHJvZ3JhbWxpc3Rpbmc+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgIE9uIHRvIGFuIGV4YW1wbGUuIEhlcmUgaXMgYSB2ZXJ5IHNpbXBsZSB3ZWxjb21lIHBhZ2UuICAgICAgICAgCi0gICAgICA8L3BhcmE+Ci0gICAgICA8cHJvZ3JhbWxpc3Rpbmc+Ci08IVtDREFUQVsKLTxodG1sPgotICA8aGVhZD4KLSAgICA8dGl0bGU+V2VsY29tZTwvdGl0bGU+Ci0gIDwvaGVhZD4KLSAgPGJvZHk+Ci0gICAgV2VsY29tZSEKLSAgPC9ib2R5PgotPC9odG1sPgotXV0+ICAgICAgICAgCi0gICAgICA8L3Byb2dyYW1saXN0aW5nPgotICAgICAgPHBhcmE+Ci0gICAgICAgICBBbmQgaGVyZSBpcyBhbiBYTUwgZG9jdW1lbnQgd2l0aCBpbmZvcm1hdGlvbiBvbiBtZW1iZXIuICAgICAgCi0gICAgICA8L3BhcmE+Ci0gICAgICA8cHJvZ3JhbWxpc3Rpbmc+Ci08IVtDREFUQVsKLTw/eG1sIHZlcnNpb249IjEuMCI/PgotPHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIgotICAgICAgICAgICAgICAgIHZlcnNpb249IjEuMCI+Ci0gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgotICAgIDxodG1sPgotICAgICAgPGhlYWQ+Ci0gICAgICAgIDx0aXRsZT5XZWxjb21lPC90aXRsZT4KLSAgICAgIDwvaGVhZD4KLSAgICAgIDxib2R5PgotICAgICAgICBXZWxjb21lIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJtZW1iZXIvbmFtZSIvPiEKLSAgICAgIDwvYm9keT4KLSAgICA8L2h0bWw+Ci0gIDwveHNsOnRlbXBsYXRlPgotPC94c2w6c3R5bGVzaGVldD4KLV1dPiAgICAgIAotICAgICAgPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIDxwYXJhPgotICAgICAgICAgVGhlcmUgYXJlIGEgY291cGxlIG9mIHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUgcG9pbnRlZCBvdXQgcmlnaHQgYXdheS4gRmlyc3QgdGhpcyBpcyBhIHdlbGwtZm9ybWVkIFhNTAotICAgICAgICAgZG9jdW1lbnQuIFRoaXMgbWVhbiBhbGwgSFRNTCB1c2VkIG11c3QgY29uZm9ybSB0byB0aGUgWEhUTUwgc3BlY2lmaWNhdGlvbiAoaS5lLiBhbGwgdGFncyBtdXN0IGJlIGNsb3NlZCBhbmQKLSAgICAgICAgIGxvd2VyY2FzZSkuCi0gICAgICA8L3BhcmE+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgIFRoZSBsaW5lcyBiZWZvcmUgdGhlIDwhW0NEQVRBWzxodG1sPl1dPgotICAgICAgICAgdGFnIGFuZCBhZnRlciB0aGUgPCFbQ0RBVEFbPC9odG1sPl1dPgotICAgICAgICAgdGFnIHdpbGwgYmUgc2VlbiBpbiBhbGwgdGhlIGV4YW1wbGVzLiBGb3Igbm93LCBvdGhlciB0aGFuIHJlYWxpemluZyB0aGF0IHRoZXkgYXJlIHJlcXVpcmVkIGluIGFueSBzdHlsZSBzaGVldAotICAgICAgICAgY3JlYXRlZCwganVzdCBnbyBhaGVhZCBhbmQgZm9yZ2V0IHRoZXkgYXJlIHRoZXJlLiBZb3UgZG9u4oCZdCBORUVEIHRvIHVuZGVyc3RhbmQgdGhlbSByaWdodCBub3cgdG8gZ2V0IHVzZWZ1bAotICAgICAgICAgd29yayBvdXQgb2YgWFNMVC4KLSAgICAgIDwvcGFyYT4KLSAgICAgIDxwYXJhPgotICAgICAgICAgTm90aWNlIHRoZSBIVE1MIGlzIGlkZW50aWNhbCB0byB0aGUgb3JpZ2luYWwgZXhjZXB0IGZvciB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbmV3IHRhZwotICAgICAgICAgPCFbQ0RBVEFbPHhzbDp2YWx1ZS1vZj5dXT4uCi0gICAgICAgICBUaGlzIHRhZyBpcyB0aGUga2V5IHRvIGV4dHJhY3RpbmcgYW55IHBpZWNlIG9mIGluZm9ybWF0aW9uIG91dCBhbiBYTUwgZG9jdW1lbnQuIEl0IGhhcyBhICJzZWxlY3QiCi0gICAgICAgICBhdHRyaWJ1dGUgdGhhdAotICAgICAgICAgcHJvdmlkZXMgdGhlIHBhdGggdGhyb3VnaCB0aGUgWE1MIGRvY3VtZW50IHRvIHRoZSBpbmZvcm1hdGlvbiB3ZSBzZWVrLiBJbiB0aGlzIGNhc2UKLSAgICAgICAgICAgIDwhW0NEQVRBWzxtZW1iZXI+XV0+Ci0gICAgICAgICBpcyB0aGUgb3V0ZXIgbW9zdCB0YWcgYW5kCi0gICAgICAgICA8IVtDREFUQVs8bmFtZT5dXT4KLSAgICAgICAgIGlzIHRoZSB0YWcgdW5kZXJuZWF0aCBpdC4gU2xhc2ggY2hhcmFjdGVycyAoIi8iKSBhcmUgdXNlZCB0byBkZXNpZ25hdGUgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMKLSAgICAgICAgIGJldHdlZW4gdGFncy4KLSAgICAgICAgIElmIHlvdSBhcmUgdXNlZCB0byBuYXZpZ2F0aW5nIGFyb3VuZCBhIFVuaXggZmlsZSBzeXN0ZW0gdGhpcyBzaG91bGQgZmVlbCBmYW1pbGlhci4KLSAgICAgIDwvcGFyYT4KLSAgICAgIDxwYXJhPgotICAgICAgICAgTm93IGxldOKAmXMgY29uc2lkZXIgZnVydGhlciBjdXN0b21pemluZyB0aGlzIHBhZ2UgYnkgbWFraW5nIHRoZSB3ZWxjb21lIGluIHRoZSBwZXJzb27igJlzIGZhdm9yaXRlIGNvbG9yIHVzaW5nIHRoZQotICAgICAgICAgPCFbQ0RBVEFbPGZvbnQ+XV0+Ci0gICAgICAgICB0YWcgd2l0aCB0aGUgImJnY29sb3IiIGF0dHJpYnV0ZS4gQmVjYXVzZQotICAgICAgICAgICAgPCFbQ0RBVEFbPHhzbDp2YWx1ZS1vZj5dXT4KLSAgICAgICAgIGlzIGFuIFhNTCB0YWcgaXQgaXMgbm90IHZhbGlkIHRvIGluc2VydCBpdCBpbiBhbiBIVE1MIGF0dHJpYnV0ZSB2YWx1ZS4gU28gYW5vdGhlciBtZWNoYW5pc20KLSAgICAgICAgIGlzIG5lZWRlZCB0byBpbnNlcnQKLSAgICAgICAgIGluZm9ybWF0aW9uIGZyb20gb3VyIFhNTCBmaWxlIHRoZXJlLgotICAgICAgPC9wYXJhPgotICAgICAgPHByb2dyYW1saXN0aW5nPgotPCFbQ0RBVEFbCi08P3htbCB2ZXJzaW9uPSIxLjAiPz4KLTx4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKLSAgICAgICAgICAgICAgICB2ZXJzaW9uPSIxLjAiPgotICA8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4KLSAgICA8aHRtbD4KLSAgICAgIDxoZWFkPgotICAgICAgICA8dGl0bGU+V2VsY29tZTwvdGl0bGU+Ci0gICAgICA8L2hlYWQ+Ci0gICAgICA8Ym9keT4KLSAgICAgICAgPGZvbnQgYmdjb2xvcj0ie21lbWJlci9mYXZvcml0ZUNvbG9yfSI+Ci0gICAgICAgICAgV2VsY29tZSA8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibWVtYmVyL25hbWUiLz4hCi0gICAgICAgIDwvZm9udD4KLSAgICAgIDwvYm9keT4KLSAgICA8L2h0bWw+Ci0gIDwveHNsOnRlbXBsYXRlPgotPC94c2w6c3R5bGVzaGVldD4KLV1dPgotICAgICAgPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgIDxwYXJhPgotICAgICAgICAgTm90aWNlIHRoZSB1c2Ugb2YgdGhlIGN1cmx5IGJyYWNrZXRzICgie30iKS4gV2hlbiB1c2VkIHdpdGhpbiBhbiBhdHRyaWJ1dGUgYXNzaWdubWVudCAie3BhdGh9IiBoYXMgdGhlIGV4YWN0Ci0gICAgICAgICBzYW1lIGVmZmVjdCBhcwotICAgICAgICAgPCFbQ0RBVEFbPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9InBhdGgiIC8+XV0+Ci0gICAgICAgICB1c2VkIG91dHNpZGUgb2YgYXR0cmlidXRlIGFzc2lnbm1lbnRzLgotICAgICAgPC9wYXJhPgotICAgPC9zZWN0aW9uPgotICAgPHNlY3Rpb24+Ci0gICAgICA8dGl0bGU+UXVlcmllczwvdGl0bGU+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgIE5vdCBhbGwgcGF0aHMgbGVhZCB0byBhIHNpbmdsZSBub2RlLiBGb3IgZXhhbXBsZSwgd2hhdCBpZiB3ZSB3YW50ZWQgdG8gcHV0IGEgcGVyc29u4oCZcyBob21lIHBob25lIG51bWJlciBvbiB0aGUKLSAgICAgICAgIHBhZ2U/IE5vdGljZSB0aGF0IHRoZSBYTUwgZG9jdW1lbnQgY29udGFpbnMgdHdvIHBob25lIGVudHJpZXMuIElmIHdlIHNpbXBseSB1c2VkCi0gICAgICAgICA8IVtDREFUQVs8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibWVtYmVyL3Bob25lIiAvPl1dPgotICAgICAgICAgYm90aCBlbnRyaWVzIHdvdWxkIGJlIHJldHVybmVkLiBXZSBvYnZpb3VzbHkgbmVlZCBhIHdheSB0byBiZSBtb3JlIHNwZWNpZmljLiBMdWNraWx5LCBYU0xUIGFsbG93cyB0aGUgZnVsbAotICAgICAgICAgcG93ZXIgb2YgWFBhdGggdG8gZGVzY3JpYmUgdGhlIHZhbHVlKHMpIG9mIGludGVyZXN0LiBYUGF0aCBhbGxvd3MgY29uZGl0aW9ucyBvbiBhbnkgYXR0cmlidXRlIG9yIHRhZyB0byBiZQotICAgICAgICAgcGxhY2VkIGluIHNxdWFyZSBicmFja2V0cyAoIltdIikgd2hpY2ggYXJlIHRoZW4gdXNlZCB0byByZXN0cmljdCB0aGUgdmFsdWVzIHJldHVybmVkLgotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgICBTbyB0byByZXRyaWV2ZSB0aGUgaG9tZSBwaG9uZSBudW1iZXIgd2Ugd291bGQgdXNlIHRoZSBwYXRoICJtZW1iZXIvcGhvbmVbQHR5cGU94oCZaG9tZeKAmV0iLiBOb3RpY2UgdGhlICJAIgotICAgICAgICAgc3ltYm9sIGluIGZyb250Ci0gICAgICAgICBvZiAidHlwZSIuIFRoZSAiQCIgc3ltYm9sIHNpZ25pZmllcyB0aGF0IHdlIGFyZSByZWZlcnJpbmcgdG8gYW4gYXR0cmlidXRlLiBTbyBvdXIgbmV3IEhUTUwKLSAgICAgICAgIHRlbXBsYXRlIGxvb2tzIGxpa2U6Ci0gICAgICA8L3BhcmE+Ci0gICAgICA8cHJvZ3JhbWxpc3Rpbmc+Ci08IVtDREFUQVsgICAgICAKLTw/eG1sIHZlcnNpb249IjEuMCI/PgotPHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIgotICAgICAgICAgICAgICAgIHZlcnNpb249IjEuMCI+Ci0gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgotICAgIDxodG1sPgotICAgICAgPGhlYWQ+Ci0gICAgICAgIDx0aXRsZT5XZWxjb21lPC90aXRsZT4KLSAgICAgIDwvaGVhZD4KLSAgICAgIDxib2R5PgotICAgICAgICA8Zm9udCBiZ2NvbG9yPSJ7bWVtYmVyL2Zhdm9yaXRlQ29sb3J9Ij4KLSAgICAgICAgICBXZWxjb21lIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJtZW1iZXIvbmFtZSIvPiEKLSAgICAgICAgICA8YnIvPgotICAgICAgICAgIFlvdXIgaG9tZSBwaG9uZSBudW1iZXIgaXM6Ci1dXT4gICAgICAgICAgPGVtcGhhc2lzIHJvbGU9ImJvbGQiPjwhW0NEQVRBWzx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJtZW1iZXIvcGhvbmVbQHR5cGU94oCZaG9tZeKAmV0iLz5dXT48L2VtcGhhc2lzPgotPCFbQ0RBVEFbICAgICAgICA8L2ZvbnQ+Ci0gICAgICA8L2JvZHkKLSAgICA8L2h0bWwKLSAgPC94c2w6dGVtcGxhdGU+Ci08L3hzbDpzdHlsZXNoZWV0PgotXV0+Ci0gICAgICA8L3Byb2dyYW1saXN0aW5nPgotICAgICAgPHNlY3Rpb24+Ci0gICAgICAgICA8dGl0bGU+eHNsOmZvci1lYWNoPC90aXRsZT4KLSAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgVGhlIHByZXZpb3VzIGV4YW1wbGUgYnJpbmdzIHVwIGFub3RoZXIgaXNzdWUuIFdoYXQgaWYgdGhpcwotICAgICAgICAgICAgPCFbQ0RBVEFbPG1lbWJlcj5dXT4KLSAgICAgICAgICAgIGVudHJ5IGhhZCBudW1lcm91cyBwaG9uZSBudW1iZXJzIGFuZCB3ZSB3YW50ZWQgdG8gcHJpbnQgdGhlbSBhbGwgb24gdGhlIHdlYiBwYWdlLiBXZSBjb3VsZCBzaW1wbHkgdXNlCi0gICAgICAgICAgICAgICA8IVtDREFUQVs8eHNsOnZhbHVlLW9mIHNlbGVjdD0ibWVtYmVyL3Bob25lIiAvPl1dPgotICAgICAgICAgICAgYnV0IHRoaXMgd291bGQgbm90IGVuYWJsZSB1cyB0byBmb3JtYXQgdGhlIHBob25lIG51bWJlciBpbnRvIGEgbmljZSBsaXN0IHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIGVhY2gKLSAgICAgICAgICAgIG51bWJlci4KLSAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgVG8gYWNjb21wbGlzaCB0aGlzIHJlcXVpcmVzIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlCi0gICAgICAgICAgICA8IVtDREFUQVs8eHNsOmZvci1lYWNoPl1dPgotICAgICAgICAgICAgdGFnIHdoaWNoIGFsbG93cyB1cyB0byBsb29wIHRocm91Z2ggZWFjaCBvZiB0aGUgZWxlbWVudHMgdGhhdCBtYXRjaCBhIGdpdmVuIHBhdGguIFNvIHRvCi0gICAgICAgICAgICBjcmVhdGUgYSB0YWJsZSB0aGF0Ci0gICAgICAgICAgICBjb250YWlucyB0aGUgcGhvbmUgbnVtYmVyIHR5cGUgaW4gdGhlIGZpcnN0IGNvbHVtbiBhbmQgdGhlIHBob25lIG51bWJlciBpbiB0aGUgc2Vjb25kCi0gICAgICAgICAgICBjb2x1bW4sIHRoZSBmb2xsb3dpbmcKLSAgICAgICAgICAgIHN0eWxlc2hlZXQgY291bGQgYmUgdXNlZC4KLSAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KLTwhW0NEQVRBWwotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iCi0gICAgICAgICAgICAgICAgdmVyc2lvbj0iMS4wIj4KLSAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+Ci0gICAgPGh0bWw+Ci0gICAgICA8aGVhZD4KLSAgICAgICAgPHRpdGxlPldlbGNvbWU8L3RpdGxlPgotICAgICAgPC9oZWFkPgotICAgICAgPGJvZHk+Ci0gICAgICAgIDxmb250IGJnY29sb3I9InttZW1iZXIvZmF2b3JpdGVDb2xvcn0iPgotICAgICAgICAgIFdlbGNvbWUgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im1lbWJlci9uYW1lIi8+IQotICAgICAgICA8L2ZvbnQ+Ci0gICAgICAgIDx0YWJsZT4KLSAgICAgICAgICA8dHI+PHRoPlR5cGU8L3RoPjx0aD5OdW1iZXI8L3RoPjwvdHI+Ci0gICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Im1lbWJlci9waG9uZSI+Ci0gICAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHR5cGUiLz48L3RkPgotICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L3RkPgotICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KLSAgICAgICAgPC90YWJsZT4KLSAgICAgIDwvYm9keT4KLSAgICA8L2h0bWw+Ci0gIDwveHNsOnRlbXBsYXRlPgotPC94c2w6c3R5bGVzaGVldD4KLV1dPiAgICAgICAgIAotICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgVGhpcyBleGFtcGxlIGJyaW5ncyB1cCBhIG51bWJlciBvZiBpc3N1ZXMuIEZpcnN0LCB3aGlsZSBpbiB0aGUgbG9vcCwgYWxsCi0gICAgICAgICAgICA8IVtDREFUQVs8eHNsOnZhbHVlLW9mIC8+XV0+Ci0gICAgICAgICAgICBhY2Nlc3NlcyBhcmUgcmVsYXRpdmUgdG8gdGhlIGN1cnJlbnQgZWxlbWVudCBiZWluZyBpdGVyYXRlZCBvdmVyIChpbiB0aGlzIGNhc2UKLSAgICAgICAgICAgIDwhW0NEQVRBWzxwaG9uZT4pXV0+LgotICAgICAgICAgICAgTm90aWNlIHRoZSB1c2Ugb2YgdGhlIHBlcmlvZCAoIi4iKSwgd2hpY2ggbGlrZSBpbiBhIFVuaXggZmlsZSBzeXN0ZW0gbWVhbnMgdGhlIGN1cnJlbnQgZWxlbWVudC4KLSAgICAgICAgICAgIFNvIGluIHRoaXMKLSAgICAgICAgICAgIGNhc2UgdGhlIHBlcmlvZCAoIi4iKSByZWZlcnMgdG8gZWFjaCBwaG9uZSBlbGVtZW50IGFzIHRoZSBsb29wIGl0ZXJhdGVzLiBBbHNvIGxpa2UgaW4gYSBmaWxlCi0gICAgICAgICAgICBzeXN0ZW0geW91IGNhbgotICAgICAgICAgICAgYWRkcmVzcyBhIHBhcmVudCBlbGVtZW50IHVzaW5nIGEgZG91YmxlIHBlcmlvZCAoIi4uIikgYW5kIGNhbiBhY2Nlc3MgYW55IGVsZW1lbnQgaW4gdGhlCi0gICAgICAgICAgICBkb2N1bWVudCBieSBzdGFydGluZwotICAgICAgICAgICAgb3ZlciBhdCB0aGUgcm9vdCBlbGVtZW50IHVzaW5nIGEgc2xhc2ggKCIvIikuCi0gICAgICAgICA8L3BhcmE+Ci0gICAgICA8L3NlY3Rpb24+Ci0gICAgICA8c2VjdGlvbj4KLSAgICAgICAgIDx0aXRsZT54c2w6aWY8L3RpdGxlPgotICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICBBcyBhIGxhc3QgZW5oYW5jZW1lbnQgdG8gb3VyIHBhZ2UgbGV04oCZcyBhZGQgYSBzcGVjaWFsIG9mZmVyIHRvICJwbGF0aW51bSIgbGV2ZWwgbWVtYmVycy4gVG8gZG8gdGhpcyByZXF1aXJlcwotICAgICAgICAgICAgdGhlIHVzZSBvZiBhIG5ldyB0YWcKLSAgICAgICAgICAgIDwhW0NEQVRBWzx4c2w6aWY+XV0+Ci0gICAgICAgICAgICB3aGljaCBhbGxvd3MgdXMgdG8gaW5zZXJ0IGNvbnRlbnQgYmFzZWQgb24gYSBjb25kaXRpb24gb2YgdGhlIGRhdGEgaW4gdGhlIFhNTCBkb2N1bWVudC4KLSAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgIDxwcm9ncmFtbGlzdGluZz4KLTwhW0NEQVRBWwotPD94bWwgdmVyc2lvbj0iMS4wIj8+Ci08eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iCi0gICAgICAgICAgICAgICAgdmVyc2lvbj0iMS4wIj4KLSAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+Ci0gICAgPGh0bWw+Ci0gICAgICA8aGVhZD4KLSAgICAgICAgPHRpdGxlPldlbGNvbWU8L3RpdGxlPgotICAgICAgPC9oZWFkPgotICAgICAgPGJvZHk+Ci0gICAgICAgIDxmb250IGJnY29sb3I9InttZW1iZXIvZmF2b3JpdGVDb2xvcn0iPgotICAgICAgICAgIFdlbGNvbWUgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Im1lbWJlci9uYW1lIi8+IQotICAgICAgICA8L2ZvbnQ+Ci0gICAgICAgIDx4c2w6aWYgdGVzdD0ibWVtYmVyW0BsZXZlbD0ncGxhdGludW0nXSI+Ci0gICAgICAgICAgT3VyIHNwZWNpYWwgb2ZmZXIgdG8gcGxhdGludW0gbWVtYmVycyB0b2RheSBpcyBzb21ldGhpbmcgZ3JlYXQKLSAgICAgICAgPC94c2w6aWY+Ci0gICAgICAgIDx0YWJsZT4KLSAgICAgICAgICA8dHI+PHRoPlR5cGU8L3RoPjx0aD5OdW1iZXI8L3RoPjwvdHI+Ci0gICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Im1lbWJlci9waG9uZSI+Ci0gICAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHR5cGUiLz48L3RkPgotICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L3RkPgotICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KLSAgICAgICAgPC90YWJsZT4KLSAgICAgIDwvYm9keT4KLSAgICA8L2h0bWw+Ci0gIDwveHNsOnRlbXBsYXRlPgotPC94c2w6c3R5bGVzaGVldD4KLV1dPiAgICAgICAgIAotICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgV2l0aGluIHRoZSAidGVzdCIgYXR0cmlidXRlIHRoZSBmdWxsIGFycmF5IG9mIEJvb2xlYW4gYW5kIHJlbGF0aXZlIG9wZXJhdG9ycyBhcmUgYXZhaWxhYmxlLiBUaGUgb25seSBjYXZlYXQKLSAgICAgICAgICAgIGlzIHRoYXQgc2luY2UgdGhpcyBpcyBhbiBYTUwgZG9jdW1lbnQgbGVzcyB0aGFuIGFuZCBncmVhdGVyIHRoYW4gKDwhW0NEQVRBWyI8Il1dPiwKLSAgICAgICAgICAgICI+Iikgc2lnbnMgbXVzdCBiZSBlc2NhcGVkIGFzIDwhW0NEQVRBWyImbHQ7IiBhbmQgIiZndDsiXV0+LgotICAgICAgICAgPC9wYXJhPgotICAgICAgPC9zZWN0aW9uPgotICAgICAgPHNlY3Rpb24+Ci0gICAgICAgICA8dGl0bGU+eHNsOmNob29zZTwvdGl0bGU+Ci0gICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgIE9uZSBudWFuY2Ugb2YgdGhlCi0gICAgICAgICAgICA8IVtDREFUQVs8eHNsOmlmPl1dPgotICAgICAgICAgICAgdGFnIHRoYXQgaXMgbm90IGFsd2F5cyBvYnZpb3VzIGF0IGZpcnN0IGdsYW5jZSBpcyB0aGUgbGFjayBvZiBhbiAiZWxzZSIgc3RhdGVtZW50LiBUaGlzIG1lYW5zIHRvIGhhdmUgYW4KLSAgICAgICAgICAgIGVsc2Ugc3RhdGVtZW50IHJlcXVpcmVzIHR3byBpZnMuIFRoZSBmaXJzdCBvbmUgc2F5aW5nICJpZiBjb25kaXRpb24iIGFuZCB0aGUgc2Vjb25kIG9uZSBzYXlpbmcg4oCcaWYgbm90Ci0gICAgICAgICAgICBjb25kaXRpb27igJ0uIFRoaXMgc2NoZW1lIHF1aWNrbHkgYmVjb21lcyB1bndvcmthYmxlIHdpdGggZW1iZWRkZWQgaWYgdGhlbiBlbHNlIGxvZ2ljLiBMdWNraWx5IFhTTFQKLSAgICAgICAgICAgIHN1cHBvcnRzIGFuCi0gICAgICAgICAgICBhZGRpdGlvbmFsIHRlc3Qgb3BlcmF0b3IgY2FsbGVkCi0gICAgICAgICAgICA8IVtDREFUQVs8eHNsOmNob29zZT5dXT4KLSAgICAgICAgICAgIHdoaWNoIHdvcmtzIGxpa2UgYSBzd2l0Y2gvY2FzZSBzdGF0ZW1lbnQuCi0gICAgICAgICA8L3BhcmE+Ci0gICAgICAgICA8cHJvZ3JhbWxpc3Rpbmc+Ci08IVtDREFUQVsKLTw/eG1sIHZlcnNpb249IjEuMCI/PgotPHhzbDpzdHlsZXNoZWV0IHhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIgotICAgICAgICAgICAgICAgIHZlcnNpb249IjEuMCI+Ci0gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPgotICAgIDxodG1sPgotICAgICAgPGhlYWQ+Ci0gICAgICAgIDx0aXRsZT5XZWxjb21lPC90aXRsZT4KLSAgICAgIDwvaGVhZD4KLSAgICAgIDxib2R5PgotICAgICAgICA8Zm9udCBiZ2NvbG9yPSJ7bWVtYmVyL2Zhdm9yaXRlQ29sb3J9Ij4KLSAgICAgICAgICBXZWxjb21lIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJtZW1iZXIvbmFtZSIvPiEKLSAgICAgICAgPC9mb250PgotICAgICAgICA8eHNsOmNob29zZT4KLSAgICAgICAgICA8eHNsOndoZW4gdGVzdD0ibWVtYmVyW0BsZXZlbD0ncGxhdGludW0nXSI+Ci0gICAgICAgICAgICBPdXIgc3BlY2lhbCBvZmZlciB0byBwbGF0aW51bSBtZW1iZXJzIHRvZGF5IGlzIHNvbWV0aGluZyBncmVhdAotICAgICAgICAgIDwveHNsOndoZW4+Ci0gICAgICAgICAgPHhzbDpvdGhlcndpc2U+Ci0gICAgICAgICAgICBCZWNvbWUgYSBwbGF0aW51bSBtZW1iZXIgdG9kYXkhCi0gICAgICAgICAgPC94c2w6b3RoZXJ3aXNlPgotICAgICAgICA8L3hzbDpjaG9vc2U+Ci0gICAgICAgIDx0YWJsZT4KLSAgICAgICAgICA8dHI+PHRoPlR5cGU8L3RoPjx0aD5OdW1iZXI8L3RoPjwvdHI+Ci0gICAgICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9Im1lbWJlci9waG9uZSI+Ci0gICAgICAgICAgICA8dHI+Ci0gICAgICAgICAgICAgIDx0ZD48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHR5cGUiLz48L3RkPgotICAgICAgICAgICAgICA8dGQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLz48L3RkPgotICAgICAgICAgICAgPC90cj4KLSAgICAgICAgICA8L3hzbDpmb3ItZWFjaD4KLSAgICAgICAgPC90YWJsZT4KLSAgICAgIDwvYm9keT4KLSAgICA8L2h0bWw+Ci0gIDwveHNsOnRlbXBsYXRlPgotPC94c2w6c3R5bGVzaGVldD4KLV1dPiAgICAgICAgIAotICAgICAgICAgPC9wcm9ncmFtbGlzdGluZz4KLSAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgVGhlIOKAnHRlc3TigJ0gYXR0cmlidXRlIGhhcyB0aGUgc2FtZSBjYXBhYmlsaXRpZXMvIGNvbnN0cmFpbnRzIGFzIHRoZSDigJx0ZXN04oCdIGF0dHJpYnV0ZSBpbiB0aGUKLSAgICAgICAgICAgIDwhW0NEQVRBWzx4c2w6aWY+XV0+Ci0gICAgICAgICAgICB0YWcuIE11bHRpcGxlCi0gICAgICAgICAgICA8IVtDREFUQVs8eHNsOndoZW4+XV0+Ci0gICAgICAgICAgICBibG9ja3MgYXJlIGFsbG93ZWQuIEFzIHNvb24gYXMgb25lIOKAnHdoZW4gdGVzdOKAnSBpcyBtYWNoZWQsIGl0IHdpbGwgbm90IGV2YWx1YXRlIGFueSBmdXJ0aGVyIOKAnHhzbDp3aGVuCi0gICAgICAgICAgICB0ZXN0c+KAnQotICAgICAgICAgICAgaW4gdGhlCi0gICAgICAgICAgICA8IVtDREFUQVs8eHNsOmNob29zZT5dXT4KLSAgICAgICAgICAgIGJsb2NrLgotICAgICAgICAgPC9wYXJhPgotICAgICAgPC9zZWN0aW9uPgotICAgPC9zZWN0aW9uPgotICAgPHNlY3Rpb24+Ci0gICAgICA8dGl0bGU+Q29uY2x1c2lvbjwvdGl0bGU+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgIFdpdGgganVzdCB0aGVzZSBmZXcgY29tbWFuZHMgKGFuIGFkbWl0dGVkbHkgc21hbGwgc3Vic2V0IG9mIFhTTFQpIGFuZCBhIHN0cm9uZyBiYWNrZ3JvdW5kIGluIEhUTUwgKERIVE1MIGFuZAotICAgICAgICAgSmF2YVNjcmlwdAotICAgICAgICAgaW5jbHVkZWQpLCBJIGJlbGlldmUgd2ViIGRldmVsb3BlcnMgY291bGQgbWVldCB0aGUgbWFqb3JpdHkgb2YgdGhlaXIgcHJlc2VudGF0aW9uIG5lZWRzLiBPYnZpb3VzbHkKLSAgICAgICAgIHRoZXJlIHdpbGwKLSAgICAgICAgIGJlIGNhc2VzIHdoZXJlIGdyZWF0ZXIgZmxleGliaWxpdHkgaXMgcmVxdWlyZWQsIGJ1dCB0aGUgYWR2YW50YWdlIG9mIHRoaXMgdGVjaG5pcXVlIGlzIHRoYXQgb25seQotICAgICAgICAgdGhlbiwgZG9lcyB0aGUKLSAgICAgICAgIGRldmVsb3BlciBuZWVkIHRvIGxlYXJuIHRob3NlIGNvbnN0cnVjdHMuICAgICAgICAgCi0gICAgICA8L3BhcmE+Ci0gICAgICA8cGFyYT4KLSAgICAgICAgIEFzIGEgZnVydGhlciBiZW5lZml0LCB0aGlzIHRlY2huaXF1ZSBtaW5pbWl6ZWQgdGhlIGludGVyZGVwZW5kZW5jZSBvZiBvbmUgWExTVCBjb25zdHJ1Y3Qgb24gYW5vdGhlci4gTG9jYWwKLSAgICAgICAgIGNoYW5nZXMgc3RheQotICAgICAgICAgbG9jYWwgdGhlcmVieSByZWR1Y2luZyB0aGUgYnJpdHRsZW5lc3Mgb2Ygc29sdXRpb25zLiBUaGUgZGV2ZWxvcGVyIGFsc28gbm8gbG9uZ2VyIGhhcyB0byByZW1lbWJlcgotICAgICAgICAgYW5kIGFjY291bnQKLSAgICAgICAgIGZvciBYU0xU4oCZcyBkZWZhdWx0IGJlaGF2aW9ycy4gICAgICAgICAKLSAgICAgIDwvcGFyYT4KLSAgICAgIDxwYXJhPgotICAgICAgICAgSSBob3BlIGZyb20gdGhlc2UgZmV3IGV4YW1wbGVzLCBJIGhhdmUgb3BlbmVkIGEgZmV3IGV5ZXMgdG8gdGhlIHBvd2VyIG9mIFhTTFQgYW5kIGhvdyBhIHNtYWxsIGNoYW5nZSBpbiBob3cKLSAgICAgICAgIFhTTFQgaXMgZnJhbWVkIGNhbiBtYWtlIGEgaHVnZSBkaWZmZXJlbmNlIGluIGl0cyB1bmRlcnN0YW5kYWJpbGl0eSBhbmQgYWNjZXNzaWJpbGl0eSB0byB3ZWIgZGV2ZWxvcGVycy4gSWYKLSAgICAgICAgIG5vdGhpbmcgZWxzZSwgSSBob3BlIHRvIGVuY291cmFnZSBzb21lIGdvb2QgZGlzY3Vzc2lvbnMuIAotICAgICAgPC9wYXJhPgotICAgPC9zZWN0aW9uPgotPC9zZWN0aW9uPgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2NvbmNlcHRzL2NvbmNlcHRzLnhtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9jb25jZXB0cy9jb25jZXB0cy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwMmE2N2EuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2NvbmNlcHRzL2NvbmNlcHRzLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgY2hhcHRlciBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuNS8vRU4iCi0gICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC41L2RvY2Jvb2t4LmR0ZCI+Ci08Y2hhcHRlcj4KLSAgIDw/ZGJodG1sIGZpbGVuYW1lPSJjb25jZXB0cy9jb25jZXB0cy5odG1sIiA/PgotICAgPHRpdGxlPlhTTFQgQ29uY2VwdHM8L3RpdGxlPgotICAgPHBhcmE+Ci0gICAgICAgICAKLSAgIDwvcGFyYT4KLSAgIDx4aTppbmNsdWRlIHhtbG5zOnhpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIiBocmVmPSJSZXNjdWluZ1hTTFRmcm9tTmljaGVTdGF0dXMueG1sIi8+Ci0gICA8c2VjdGlvbiBpZD0iY29uY2VwdHNfUmVzb3VyY2VzIj4KLSAgICAgIDw/ZGJodG1sIGZpbGVuYW1lPSJjb25jZXB0cy9yZXNvdXJjZXMuaHRtbCIgPz4KLSAgICAgIDx0aXRsZT5SZXNvdXJjZXM8L3RpdGxlPgotICAgICAgPGl0ZW1pemVkbGlzdD4KLSAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy53My5vcmcvVFIveHNsdCI+WFNMVCAxLjAgU3BlY2lmaWNhdGlvbjwvdWxpbms+IC0gVGhlIG9mZmljaWFsIFczQyBYU0xUIDEuMCBTcGVjaWZpY2F0aW9uLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgPHVsaW5rIHVybD0iaHR0cDovL3d3dy5kcGF3c29uLmNvLnVrL3hzbC9pbmRleC5odG1sIj5YU0xUIEZBUTwvdWxpbms+IC0gbWFpbnRhaW5lZCBieSBEYXZlIFBhd3Nvbi4KLSAgICAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICA8cGFyYT48dWxpbmsgdXJsPSJodHRwOi8vd3d3Lnhmcm9udC5jb20vcmVzY3VpbmcteHNsdC5odG1sIj5SZXNjdWluZyBYU0xUIGZyb20gTmljaGUgU3RhdHVzPC91bGluaz4gLSBieSBEYXZpZCBKYWNvYnMuPC9wYXJhPgotICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgIDxwYXJhPjx1bGluayB1cmw9Imh0dHA6Ly93d3cueG1sLmNvbS9wdWIvYS8yMDAzLzExLzI2L2xlYXJuWFNMVC5odG1sIj5GaXZlIFhTTFQgQmFzaWNzPC91bGluaz4gLSBieSBNaWNoYWVsIEZpdHpnZXJhbGQgYXV0aG9yIG9mIExlYXJuaW5nIFhTTFQuPC9wYXJhPgotICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgIDxwYXJhPjx1bGluayB1cmw9Imh0dHA6Ly93d3cueGZyb250LmNvbS9maWxlcy90dXRvcmlhbHMuaHRtbCI+WEZyb250IFR1dG9yaWFsczwvdWxpbms+IC0gcHJvdmlkZXMgc2V2ZXJhbCB0dXRvcmlhbHMgaW5jbHVkZSBYU0xUIDEuMC48L3BhcmE+Ci0gICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgICAgPHBhcmE+PHVsaW5rIHVybD0iaHR0cDovL3d3dy5jYWZlY29ubGVjaGUub3JnL2Jvb2tzL2JpYmxlMi9jaGFwdGVycy9jaDE3Lmh0bWwiPlhTTCBUcmFuc2Zvcm1hdGlvbnM8L3VsaW5rPiAtIENoYXB0ZXIgMTcgb2YgdGhlIFhNTCBCaWJsZSAybmQgRWRpdGlvbi48L3BhcmE+Ci0gICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgPC9pdGVtaXplZGxpc3Q+Ci0gICA8L3NlY3Rpb24+Ci0gICAKLTwvY2hhcHRlcj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svY29uY2VwdHMvZ2V0dGluZ3N0YXJ0ZWQueG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2NvbmNlcHRzL2dldHRpbmdzdGFydGVkLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWEzZjQxZC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svY29uY2VwdHMvZ2V0dGluZ3N0YXJ0ZWQueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBjaGFwdGVyIFBVQkxJQyAiLS8vT0FTSVMvL0RURCBEb2NCb29rIFhNTCBWNC41Ly9FTiIKLSAgICAgICAgICAiaHR0cDovL3d3dy5vYXNpcy1vcGVuLm9yZy9kb2Nib29rL3htbC80LjUvZG9jYm9va3guZHRkIj4KLTxjaGFwdGVyPgotICAgPD9kYmh0bWwgZmlsZW5hbWU9ImludHJvZHVjdGlvbi9nZXR0aW5nc3RhcnRlZC5odG1sIiA/PgotICAgPHRpdGxlPkdldHRpbmcgU3RhcnRlZDwvdGl0bGU+Ci0gICA8cGFyYT4gIAotICAgICAgU3RpbGwgdHJ5aW5nIHRvIHRoaW5rIG9mIG9yaWdpbmFsIGNvbnRlbnQgZm9yIHRoaXMgc2VjdGlvbi4KLSAgIDwvcGFyYT4KLTwvY2hhcHRlcj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svZWRpdG9yL2VkaXRvci54bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svZWRpdG9yL2VkaXRvci54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1MjhhYmQuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2VkaXRvci9lZGl0b3IueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzgyICswLDAgQEAKLTw/eG1sIHZlcnNpb249JzEuMCc/PgotPCFET0NUWVBFIGNoYXB0ZXIgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjUvL0VOIgotICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC41L2RvY2Jvb2t4LmR0ZCI+Ci08Y2hhcHRlcj4KLQk8P2RiaHRtbCBmaWxlbmFtZT0iZWRpdG9yL3hzbGVkaXRvci5odG1sIiA/PgotICAgIDx0aXRsZT5YU0wgRWRpdGluZzwvdGl0bGU+Ci0gICAgPHBhcmE+VGhlIFhTTCBUb29scyBwbHVnaW5zIGV4dGVuZCB0aGUgYWJpbGl0eSBvZiB0aGUgV2ViIFN0YW5kYXJkIFRvb2xzIFhNTAotICAgICAgICBlZGl0b3IuIFRoaXMgZXh0ZW5zaW9uIGFkZHMgc3BlY2lmaWMgc3VwcG9ydCBhbmQgZnVuY3Rpb25hbGl0eSBmb3Igd29ya2luZyB3aXRoCi0gICAgICAgIGFuZCBkZWJ1Z2dpbmcgWFNMIGZpbGVzLjwvcGFyYT4KLSAgICA8c2VjdGlvbiBpZD0iVmFsaWRhdGlvbiI+Ci0gIDw/ZGJodG1sIGZpbGVuYW1lPSJlZGl0b3IveHNsZWRpdG9yX3ZhbGlkYXRpb24uaHRtbCIgPz4KLSAgICAgICAgPHRpdGxlPlZhbGlkYXRpb248L3RpdGxlPgotICAgICAgICA8cGFyYT5UaGUgWFNMIGV4dGVuc2lvbnMgZm9yIHRoZSBlY2xpcHNlIFhNTCBlZGl0b3IgaW5jbHVkZSBhcyB5b3UgdHlwZQotICAgICAgICAgICAgdmFsaWRhdGlvbiBmb3IgWFNMIHNwZWNpZmljIGZlYXR1cmVzLiBUaGlzIGluY2x1ZGVzIG5vdCBvbmx5IHRoZSBhYmlsaXR5IHRvCi0gICAgICAgICAgICBzeW50YXggY2hlY2sgdGhlIGdyYW1tYXIsIGJ1dCB0byBhbHNvIHRvIHZhbGlkYXRlIHNwZWNpZmljIFhTTCBzcGVjaWZpY2F0aW9uCi0gICAgICAgICAgICBydWxlcy4gR3JhbW1hciB2YWxpZGF0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIGJhc2VkIG9uIHRoZSB2ZXJzaW9uIGF0dHJpYnV0ZSBmb3IKLSAgICAgICAgICAgIHRoZSBzdHlsZSBzaGVldCB0aGF0IGlzIGJlaW5nIGVkaXRlZC4gVmFsaWQgdmVyc2lvbiBudW1iZXJzIGFyZSAxLjAsIGFuZCAyLjAuCi0gICAgICAgIDwvcGFyYT4KLSAgICA8L3NlY3Rpb24+Ci0gICAgPHNlY3Rpb24gaWQ9IkNvbnRlbnRBc3Npc3QiPgotPD9kYmh0bWwgZmlsZW5hbWU9ImVkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdC5odG1sIiA/PgotICAgICAgICA8dGl0bGU+Q29udGVudCBBc3Npc3Q8L3RpdGxlPgotICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgIFhTTCBUb29scyBleHRlbmRzIHRoZSBleGlzdGluZyBjb250ZW50IGFzc2lzdGFuY2Ugc3VwcG9ydCBvZiB0aGUgWE1MIEVkaXRvciB0bwotICAgICAgICAgICAgcHJvdmlkZSBjb250ZW50IGFzc2lzdGFuY2UgZm9yIHNldmVyYWwgWFNMIG5hbWVzcGFjZSBhdHRyaWJ1dGVzLiBUaGUgY29udGVudAotICAgICAgICAgICAgYXNzaXN0YW5jZSBwcm92aWRlZCBjb3ZlcnMgdGhlIGF2YWlsYWJsZSBYUGF0aCBzdGF0ZW1lbnRzIGFzIGRlZmluZWQgaW4gdGhlCi0gICAgICAgICAgICA8ZW1waGFzaXM+WFBhdGggVGVtcGxhdGVzPC9lbXBoYXNpcz4KLSAgICAgICAgICAgIHByZWZlcmVuY2UgcGFnZS4KLSAgICAgICAgPC9wYXJhPgotICAgICAgICA8aW1wb3J0YW50PgotICAgICAgICAgICAgPHRpdGxlPlhQYXRoIDIuMCBTdXBwb3J0PC90aXRsZT4KLSAgICAgICAgICAgIDxwYXJhPkN1cnJlbnRseSBYUGF0aCAyLjAgaXMgbm90IHN1cHBvcnRlZCBkaXJlY3RseS4gSG93ZXZlciwgYSB1c2VyCi0gICAgICAgICAgICAgICAgY2FuIGFkZCB0aGlzIHN1cHBvcnQgaWYgdGhleSBuZWVkIGl0IGJ5IGFkZGluZyB0aGUgbWlzc2luZyBYUGF0aCBmdW5jdGlvbnMKLSAgICAgICAgICAgICAgICB0byB0aGUgWFBhdGggVGVtcGxhdGVzLjwvcGFyYT4KLSAgICAgICAgPC9pbXBvcnRhbnQ+Ci0gICAgICAgIDxwYXJhPlRvIGluaXRpYXRlIGNvbnRlbnQgYXNzaXN0YW5jZSBwcmVzcyBDVFJMICsgU1BBQ0Ugb3IgQ01EICsgU1BBQ0UuIFRoaXMKLSAgICAgICAgICAgIHdpbGwgYnJpbmcgdXAgYSBkaWFsb2cgdGhhdCB3aWxsIGNvbnRhaW4gYW55IHByb3Bvc2FscyB0aGF0IGFyZSBhdmFpbGFibGUuIElmCi0gICAgICAgICAgICBubyBwcm9wb3NhbHMgYXJlIGF2YWlsYWJsZSBhbiBtZXNzYWdlIHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBzdGF0dXMgYmFyLgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgIDxzZWN0aW9uIGlkPSJlZF9YU0xQcm9wb3NhbHMiPgotPD9kYmh0bWwgZmlsZW5hbWU9ImVkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF94c2wuaHRtbCIgPz4KLSAgICAgICAgCi0gICAgICAgICAgICA8dGl0bGU+WFNMVCBFbGVtZW50IFByb3Bvc2FsczwvdGl0bGU+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgICBTaW5jZSBYU0xUIGlzIGEgdGVtcGxhdGluZyBsYW5ndWFnZSwgaXQncyBlbGVtZW50cyBtdXN0IGJlIGFibGUgdG8gYmUKLSAgICAgICAgICAgICAgICBhZGRlZCB0byB0aGUgdmFyaW91cyBtYXJrdXAgaXQgaW5jbHVkZXMuIFRoZSBYU0xUIEVkaXRvciB3aWxsIHByb3ZpZGUKLSAgICAgICAgICAgICAgICBjb250ZW50IGFzc2lzdGFuY2UgYW5kIHByb3Bvc2FscyBmb3IgWFNMVCBlbGVtZW50cyB0aGF0IGFyZSBhdmFpbGFibGUgdG8KLSAgICAgICAgICAgICAgICBiZSB1c2VkIHdpdGhpbiBub24tWFNMVCBuYW1lc3BhY2VkIGVsZW1lbnRzLiBUaGlzIGlzIGRlcGljdGVkIGluCi0gICAgICAgICAgICAgICAgPHhyZWYgbGlua2VuZD0iZmlnX1hTTFByb3Bvc2FscyIvPgotICAgICAgICAgICAgICAgIC4KLSAgICAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgICAgIDxmaWd1cmUgaWQ9ImZpZ19YU0xQcm9wb3NhbHMiPgotICAgICAgICAgICAgICAgIDx0aXRsZT5YU0xUIFByb3Bvc2FscyB3aXRoaW4gTm9uLVhTTFQgZWxlbWVudHM8L3RpdGxlPgotICAgICAgICAgICAgICAgIDxtZWRpYW9iamVjdD4KLSAgICAgICAgICAgICAgICAgICAgPGltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgICAgICAgICAgPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIiBmaWxlcmVmPSIuLi9pbWFnZXMvZWRpdG9yL3hzbHByb3Bvc2Fscy5wbmciLz4KLSAgICAgICAgICAgICAgICAgICAgPC9pbWFnZW9iamVjdD4KLSAgICAgICAgICAgICAgICA8L21lZGlhb2JqZWN0PgotICAgICAgICAgICAgPC9maWd1cmU+Ci0gICAgICAgIDwvc2VjdGlvbj4KLSAgICAgICAgPHNlY3Rpb24gaWQ9IlNlbGVjdFRlc3QiPgotPD9kYmh0bWwgZmlsZW5hbWU9ImVkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9zZWxlY3R0ZXN0Lmh0bWwiID8+Ci0gICAgICAgICAgICA8dGl0bGU+U2VsZWN0LCBUZXN0LCBhbmQgTWF0Y2ggQXR0cmlidXRlczwvdGl0bGU+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgICBXaGVyZSBldmVyIGFuIHhzbCBlbGVtZW50IHN1cHBvcnRzIGEKLSAgICAgICAgICAgICAgICA8ZW1waGFzaXM+c2VsZWN0PC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICAsCi0gICAgICAgICAgICAgICAgPGVtcGhhc2lzPnRlc3Q8L2VtcGhhc2lzPgotICAgICAgICAgICAgICAgICwgb3IKLSAgICAgICAgICAgICAgICA8ZW1waGFzaXM+bWF0Y2g8L2VtcGhhc2lzPgotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgY29udGVudCBhc3Npc3RhbmNlIGlzIGF2YWlsYWJsZS4gVGhpcyBpbmNsdWRlcyBzdXBwb3J0IGZvciB0aGUKLSAgICAgICAgICAgICAgICBmb2xsb3dpbmc6Ci0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8aXRlbWl6ZWRsaXN0PgotICAgICAgICAgICAgICAgIDx0aXRsZT5TZWxlY3QsIE1hdGNoIGFuZCBUZXN0IEFzc2lzdGFuY2U8L3RpdGxlPgotICAgICAgICAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8ZW1waGFzaXM+VmFyaWFibGVzPC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICAgICAgICAgIC0gYm90aCBsb2NhbCBhbmQgZ2xvYmFsIHZhcmlhYmxlcyBhcmUgc3VwcG9ydGVkIHdpdGhpbiB0aGUgY3VycmVudAotICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzaGVldC4gQW55IGxvY2FsIG9yIGdsb2JhbCB2YXJpYWJsZSB3aWxsIGJlIGFkZGVkIHRvIHRoZSBsaXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICBhbmQgdGhlIG5hbWUgaXMgcHJlZml4ZWQgd2l0aCBhIGRvbGxhciBzaWduICQgc3ltYm9sLgotICAgICAgICAgICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgICAgICAgICAgPGVtcGhhc2lzPlhQYXRoIDEuMDwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgICAgICAgICAtIFhQYXRoIDEuMCBpcyBzdXBwb3J0ZWQgdGhyb3VnaCB0aGUgdXNlIG9mIHRlbXBsYXRlcy4gQWxsIG9mIHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgWFBhdGggMS4wIGFuZCBYU0xUIHhwYXRoIGV4dGVuc2lvbiBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSwgYXMKLSAgICAgICAgICAgICAgICAgICAgICAgIHdlbGwgYXMKLSAgICAgICAgICAgICAgICAgICAgICAgIDxlbXBoYXNpcz5heGlzPC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMuIEN1cnJlbnRseSBYUGF0aCAyLjAgaXMgbm90IHN1cHBvcnRlZCBkaXJlY3RseSwgYnV0Ci0gICAgICAgICAgICAgICAgICAgICAgICB3aWxsIGJlIGFkZGVkIGluIHRoZSBmdXR1cmUuCi0gICAgICAgICAgICAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICAgICAgPC9pdGVtaXplZGxpc3Q+Ci0gICAgICAgICAgICA8cGFyYT5Db250ZW50IGFzc2lzdGFuY2UgZm9yIHRoZSBzZWxlY3QgYW5kIHRlc3QgYXR0cmlidXRlcyBpcwotICAgICAgICAgICAgICAgIGludGVsbGlnZW50IGVub3VnaCB0byBrbm93IHRoYXQgaXQgaXMgd2l0aGluIGFuIFhQYXRoIGV4cHJlc3Npb24sIGFuZCB3aWxsCi0gICAgICAgICAgICAgICAgdHJ5IHRvIGRldGVybWluZSBhbmQgcHJvdmlkZSBjb250ZW50IGFzc2lzdGFuY2UgYmFzZWQgb24gdGhlIGN1cnJlbnQKLSAgICAgICAgICAgICAgICBjdXJzb3IgcG9zaXRpb24uIElmIGEgd29yZCBoYXMgYmVlbiBwYXJ0aWFsbHkgdHlwZWQgaXQgd2lsbCBmaWx0ZXIgdGhlCi0gICAgICAgICAgICAgICAgYXZhaWxhYmxlIGFzc2lzdGFuY2UuPC9wYXJhPgotICAgICAgICA8L3NlY3Rpb24+Ci0gICAgICAgIDxzZWN0aW9uIGlkPSJFeGNsdWRlUmVzdWx0UHJlZml4ZXNDb250ZW50QXNzaXN0Ij4KLTw/ZGJodG1sIGZpbGVuYW1lPSJlZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sIiA/PgotICAgICAgICAKLSAgICAgICAgICAgIDx0aXRsZT5FeGNsdWRlLVJlc3VsdC1QcmVmaXhlczwvdGl0bGU+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgICBUaGUKLSAgICAgICAgICAgICAgICA8ZW1waGFzaXM+ZXhjbHVkZS1yZXN1bHQtcHJlZml4ZXM8L2VtcGhhc2lzPgotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBpbiBib3RoIFhTTFQgMS4wIGFuZCBYU0xUIDIuMCBhbGxvd3MgZm9yIHRoZSBleGNsdXNpb24gb2YKLSAgICAgICAgICAgICAgICBjZXJ0YWluIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMgaW4gdGhlIG91dHB1dCBkb2N1bWVudC4gVGhlIGNvbnRlbnQKLSAgICAgICAgICAgICAgICBhc3Npc3RhbmNlIHBvcHVsYXRlcyBhIGxpc3Qgb2YgYXZhaWxhYmxlIG5hbWVzcGFjZXMgdGhhdCBoYXZlIGJlZW4gZGVmaW5lZAotICAgICAgICAgICAgICAgIGluIHRoZSBzdHlsc2VoZWV0IGFuZCBwcm92aWRlcyB0aGVtIGFzIHByb3Bvc2FscyBhcyBzaG93biBpbgotICAgICAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImZpZ19FeGNsdWRlUmVzdWx0UHJlZml4ZXNDb250ZW50QXNzaXN0MSIvPgotICAgICAgICAgICAgICAgIC4KLSAgICAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgICAgIDxmaWd1cmUgaWQ9ImZpZ19FeGNsdWRlUmVzdWx0UHJlZml4ZXNDb250ZW50QXNzaXN0MSI+Ci0gICAgICAgICAgICAgICAgPHRpdGxlPkV4Y2x1ZGUtcmVzdWx0LXByZWZpeGVzIENvbnRlbnQgQXNzaXN0YW5jZQotICAgICAgICAgICAgICAgIDwvdGl0bGU+Ci0gICAgICAgICAgICAgICAgPG1lZGlhb2JqZWN0PgotICAgICAgICAgICAgICAgICAgICA8aW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aW1hZ2VkYXRhIGFsaWduPSJjZW50ZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXJlZj0iLi4vaW1hZ2VzL2VkaXRvci9FeGNsdWRlQ29udGVudEFzc2lzdDEucG5nIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwvaW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgPC9tZWRpYW9iamVjdD4KLSAgICAgICAgICAgIDwvZmlndXJlPgotICAgICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICAgICAgSWYgdGhlIGF0dHJpYnV0ZSBoYXMgbm8gdmFsdWVzIGRlZmluZWQsIHRoZW4gdGhlCi0gICAgICAgICAgICAgICAgPGVtcGhhc2lzPiNhbGw8L2VtcGhhc2lzPgotICAgICAgICAgICAgICAgIHZhbHVlIHdpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBsaXN0LiBJZiAjYWxsIGlzIGFscmVhZHkgaW4gdGhlIGF0dHJpYnV0ZXMKLSAgICAgICAgICAgICAgICB2YWx1ZSwgdGhlbiBubyBjb250ZW50IGFzc2lzdGFuY2Ugd2lsbCBiZSBhdmFpbGFibGUuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8ZmlndXJlIGlkPSJmaWdfRXhjbHVkZVJlc3VsdFByZWZpeGVzQ29udGVudEFzc2lzdDIiPgotICAgICAgICAgICAgICAgIDx0aXRsZT5GaWx0ZXJlZCBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcyBwcm9wb3NhbHM8L3RpdGxlPgotICAgICAgICAgICAgICAgIDxtZWRpYW9iamVjdD4KLSAgICAgICAgICAgICAgICAgICAgPGltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgICAgICAgICAgPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVyZWY9Ii4uL2ltYWdlcy9lZGl0b3IvRXhjbHVkZUNvbnRlbnRBc3Npc3QyLnBuZyIvPgotICAgICAgICAgICAgICAgICAgICA8L2ltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgIDwvbWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICA8L2ZpZ3VyZT4KLSAgICAgICAgICAgIDxwYXJhPkNvbnRlbnQgYXNzaXN0YW5jZSBpcyBpbnRlbGxpZ2VudCBlbm91Z2ggdG8ga25vdyB3aGVuIGEgbmFtZXNwYWNlCi0gICAgICAgICAgICAgICAgcHJlZml4IGlzIGFscmVhZHkgaW4gdGhlIGxpc3Qgb2YgZXhjbHVkZWQgbmFtZXNwYWNlcy4gSW4gdGhpcyBjYXNlIGl0IHdpbGwKLSAgICAgICAgICAgICAgICBub3Qgc2hvdyB0aGUgbmFtZXNwYWNlIGluIHRoZSBwcm9wb3NhbCBsaXN0LjwvcGFyYT4KLSAgICAgICAgICAgIDxub3RlPgotICAgICAgICAgICAgICAgIDx0aXRsZT4gV2h5IGlzbid0IHRoZSBYU0wgTmFtZXNwYWNlIHByZWZpeCBpbiB0aGUgcHJvcG9zYWxzPzwvdGl0bGU+Ci0gICAgICAgICAgICAgICAgPHBhcmE+Q3VycmVudGx5IHRoZSB4c2wgcHJlZml4IG9yIGFueSBwcmVmaXggdGhhdCB1c2VzIHRoZSBYU0wKLSAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlIGlzIGV4Y2x1ZGVkIGZyb20gdGhlIGxpc3QuIFRoaXMgbWF5IGJlIGNoYW5nZWQgYXQgYSBmdXR1cmUKLSAgICAgICAgICAgICAgICAgICAgZGF0ZS4gVGhpcyB3aWxsIGRlcGVuZCBvbiB1c2VyIGZlZWRiYWNrLjwvcGFyYT4KLSAgICAgICAgICAgIDwvbm90ZT4KLSAgICAgICAgPC9zZWN0aW9uPgotICAgICAgICA8c2VjdGlvbiBpZD0iZWRfTW9kZUFzc2lzdCI+Ci08P2RiaHRtbCBmaWxlbmFtZT0iZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X21vZGVhc3Npc3QuaHRtbCIgPz4KLSAgICAgICAgCi0gICAgICAgICAgICA8dGl0bGU+TW9kZSBhdHRyaWJ1dGUgYXNzaXN0YW5jZTwvdGl0bGU+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgICBDb250ZW50IGFzc2lzdGFuY2UgaXMgYXZhaWxhYmxlIGZvciB0aG9zZSB4c2wgZWxlbWVudHMgdGhhdCBzdXBwb3J0IHRoZQotICAgICAgICAgICAgICAgIG1vZGUgYXR0cmlidXRlLiBGb3IgWFNMVCAxLjAgdGhlc2UgZWxlbWVudHMgYXJlCi0gICAgICAgICAgICAgICAgPGVtcGhhc2lzPnRlbXBsYXRlPC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICAsCi0gICAgICAgICAgICAgICAgPGVtcGhhc2lzPmFwcGx5LXRlbXBsYXRlczwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgLCBhbmQKLSAgICAgICAgICAgICAgICA8ZW1waGFzaXM+YXBwbHktaW1wb3J0czwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgICAgPGZpZ3VyZSBpZD0iZmlnX01vZGVBc3Npc3RhbmNlIj4KLSAgICAgICAgICAgICAgICA8dGl0bGU+TW9kZSBhdHRyaWJ1dGUgYXNzaXN0YW5jZTwvdGl0bGU+Ci0gICAgICAgICAgICAgICAgPG1lZGlhb2JqZWN0PgotICAgICAgICAgICAgICAgICAgICA8aW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aW1hZ2VkYXRhIGFsaWduPSJjZW50ZXIiIGZpbGVyZWY9Ii4uL2ltYWdlcy9lZGl0b3IvbW9kZUFzc2lzdGFuY2UucG5nIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD0iUE5HIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwvaW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgPC9tZWRpYW9iamVjdD4KLSAgICAgICAgICAgIDwvZmlndXJlPgotICAgICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICAgICAgVGhlIHByb3Bvc2FsIGxpc3QgaXMgcG9wdWxhdGVkIGJ5IHRob3NlIG1vZGVzIGRlZmluZWQgb24gdGVtcGxhdGVzIGluIHRoZQotICAgICAgICAgICAgICAgIGN1cnJlbnQgc3R5bGVzaGVldCwgYW5kIGFueSBvZiB0aGUgdGVtcGxhdGVzIHRoYXQgYXJlCi0gICAgICAgICAgICAgICAgPGVtcGhhc2lzPmluY2x1ZGVkPC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICBvcgotICAgICAgICAgICAgICAgIDxlbXBoYXNpcz5pbXBvcnRlZDwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICA8L3NlY3Rpb24+Ci0gICAgICAgIDxzZWN0aW9uIGlkPSJlZF9OYW1lZFRlbXBsYXRlQXNzaXN0Ij4KLTw/ZGJodG1sIGZpbGVuYW1lPSJlZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfbmFtZWR0ZW1wbGF0ZS5odG1sIiA/PgotICAgICAgICAKLSAgICAgICAgICAgIDx0aXRsZT5OYW1lZCBUZW1wbGF0ZSBBc3Npc3RhbmNlPC90aXRsZT4KLSAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgIENhbGwgTmFtZWQgdGVtcGxhdGVzIGhhdmUgY29udGVudCBhc3Npc3RhbmNlIGF2YWlsYWJsZSBmb3IgdGhlaXIKLSAgICAgICAgICAgICAgICA8ZW1waGFzaXM+bmFtZTwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcy4gVGhpcyB3aWxsIHByb3ZpZGUgYSBsaXN0IG9mIGNhbGxlZC10ZW1wbGF0ZXMgdGhhdCBoYXZlIGJlZW4KLSAgICAgICAgICAgICAgICB1c2VkLCBidXQgaGF2ZSBub3QgeWV0IGJlZW4gZGVmaW5lZCBvciBvdmVycmlkZGVuIHdpdGhpbiB0aGUgY3VycmVudAotICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8ZmlndXJlIGlkPSJmaWdfTmFtZWRUZW1wbGF0ZXMiPgotICAgICAgICAgICAgICAgIDx0aXRsZT5OYW1lZCBUZW1wbGF0ZSBBc3Npc3RhbmNlPC90aXRsZT4KLSAgICAgICAgICAgICAgICA8bWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICAgICAgICAgIDxpbWFnZW9iamVjdD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxpbWFnZWRhdGEgYWxpZ249ImNlbnRlciIgZmlsZXJlZj0iLi4vaW1hZ2VzL2VkaXRvci9uYW1lZFRlbXBsYXRlLnBuZyIvPgotICAgICAgICAgICAgICAgICAgICA8L2ltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgIDwvbWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICA8L2ZpZ3VyZT4KLSAgICAgICAgPC9zZWN0aW9uPgotICAgICAgICA8c2VjdGlvbiBpZD0iZWRfQ2FsbFRlbXBsYXRlQXNzaXN0Ij4KLTw/ZGJodG1sIGZpbGVuYW1lPSJlZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfY2FsbHRlbXBsYXRlLmh0bWwiID8+Ci0gICAgICAgIAotICAgICAgICAgICAgPHRpdGxlPkNhbGwtVGVtcGxhdGUgQXNzaXN0YW5jZTwvdGl0bGU+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgICBBbnkKLSAgICAgICAgICAgICAgICA8ZW1waGFzaXM+Y2FsbC10ZW1wbGF0ZTwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgeHNsdCBlbGVtZW50IGhhcyBjb250ZW50IGFzc2lzdGFuY2UgYXZhaWxhYmxlIGZvciBpdCdzIG5hbWUgYXR0cmlidXRlLgotICAgICAgICAgICAgICAgIFRoaXMgd2lsbCBwcm92aWRlIGEgbGlzdCBvZiBwb3NzaWJsZSBYU0xUIG5hbWVkIHRlbXBsYXRlcyB0aGF0IGNhbiBiZQotICAgICAgICAgICAgICAgIGNhbGxlZCBmcm9tIHRoZSBjdXJyZW50IHN0eWxlc2hlZXQuIFRoaXMgdGFrZXMgaW50byBlZmZlY3QgYWxsIGluY2x1ZGVkCi0gICAgICAgICAgICAgICAgYW5kIGltcG9ydGVkIHN0eWxlc2hlZXRzIGFzIHdlbGwgYXMgdGhvc2UgZGVmaW5lZCBpbiB0aGUgY3VycmVudAotICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8ZmlndXJlIGlkPSJmaWdfQ2FsbFRlbXBsYXRlQXNzaXN0Ij4KLSAgICAgICAgICAgICAgICA8dGl0bGU+Q2FsbC1UZW1wbGF0ZSBBc3Npc3RhbmNlPC90aXRsZT4KLSAgICAgICAgICAgICAgICA8bWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICAgICAgICAgIDxpbWFnZW9iamVjdD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxpbWFnZWRhdGEgYWxpZ249ImNlbnRlciIgZmlsZXJlZj0iLi4vaW1hZ2VzL2VkaXRvci9jYWxsdGVtcGxhdGUucG5nIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwvaW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgPC9tZWRpYW9iamVjdD4KLSAgICAgICAgICAgIDwvZmlndXJlPgotICAgICAgICA8L3NlY3Rpb24+Ci0gICAgICAgIDxzZWN0aW9uIGlkPSJlZF9ocmVmIj4KLTw/ZGJodG1sIGZpbGVuYW1lPSJlZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfaW5jbHVkZS5odG1sIiA/PgotICAgICAgICAKLSAgICAgICAgICAgIDx0aXRsZT4KLSAgICAgICAgICAgICAgICBJbmNsdWRlIGFuZCBJbXBvcnQKLSAgICAgICAgICAgICAgICA8ZW1waGFzaXM+aHJlZjwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgQXNzaXN0YW5jZQotICAgICAgICAgICAgPC90aXRsZT4KLSAgICAgICAgICAgIDxwYXJhPlhTTFQgc3R5bGVzaGVldHMgaGF2ZSB0aGUgYWJpbGl0eSB0byBpbXBvcnQgYW5kIGluY2x1ZGUgb3RoZXIKLSAgICAgICAgICAgICAgICBzdHlsZXNoZWV0cy4gVGhpcyBhbGxvd3MgZm9yIGEgbW9kdWxhciBzdHJ1Y3R1cmUgZm9yIHRoZSB0ZW1wbGF0ZXMgdG8gYmUKLSAgICAgICAgICAgICAgICBjcmVhdGVkLiBJdCBhbHNvIGFsbG93cyBmb3IgZWFzaWVyIG1haW50ZW5hbmNlLiBIb3dldmVyLCBpZiBvbmUgaXMgd29ya2luZwotICAgICAgICAgICAgICAgIHdpdGggYSBsYXJnZSBwcm9qZWN0IGxpa2UgdGhlIERvY0Jvb2sgUHJvamVjdHMgc3R5bGVzaGVldHMgaXQgY2FuIGJlCi0gICAgICAgICAgICAgICAgZGlmZmljdWx0IHRvIHJlbWVtYmVyIHRoZSBuYW1lcyBhbmQgbG9jYXRpb25zIG9mIGFsbCB0aGUgc3R5bGVzaGVldHMuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgICBUbyB0aGlzIGVuZCwgdGhlIFhTTFQgZWRpdG9yIHByb3ZpZGVzIGNvbnRlbnQgYXNzaXN0YW5jZSBmb3IgdGhlCi0gICAgICAgICAgICAgICAgPGVtcGhhc2lzPmhyZWY8L2VtcGhhc2lzPgotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZS4gVGhlIHNjb3BlIG9mIHRoZSBhc3Npc3RhbmNlIGlzIHJlc3RyaWN0ZWQgdG8gdGhlIHByb2plY3QgdGhhdAotICAgICAgICAgICAgICAgIHRoZSBjdXJyZW50IHN0eWxlc2hlZXQgdGhhdCBpcyBiZWluZyBlZGl0dGVkIHJlc2lkZXMuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8ZmlndXJlIGlkPSJmaWdfSFJFRkFzc2lzdGFuY2UiPgotICAgICAgICAgICAgICAgIDx0aXRsZT5JbmNsdWRlL0ltcG9ydCBocmVmIEFzc2lzdGFuY2U8L3RpdGxlPgotICAgICAgICAgICAgICAgIDxtZWRpYW9iamVjdD4KLSAgICAgICAgICAgICAgICAgICAgPGltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgICAgICAgICAgPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIiBmaWxlcmVmPSIuLi9pbWFnZXMvZWRpdG9yL2hyZWZBc3Npc3RhbmNlLnBuZyIvPgotICAgICAgICAgICAgICAgICAgICA8L2ltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgIDwvbWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICA8L2ZpZ3VyZT4KLSAgICAgICAgPC9zZWN0aW9uPgotICAgIDwvc2VjdGlvbj4KLSAgICA8c2VjdGlvbiBpZD0iWFNMRWRpdG9yVGVtcGxhdGVzIj4KLTw/ZGJodG1sIGZpbGVuYW1lPSJlZGl0b3IveHNsZWRpdG9yX3RlbXBsYXRlcy5odG1sIiA/PgotICAgICAgICA8dGl0bGU+VGVtcGxhdGVzPC90aXRsZT4KLSAgICAgICAgPHBhcmE+U3BlY2lmaWMgWFNMIGNvZGUgY29tcGxldGlvbiB0ZW1wbGF0ZXMgY2FuIGJlIGFkZGVkIHRvIHRoZSBYTUwKLSAgICAgICAgICAgIGVkaXRvcidzIFRlbXBsYXRlcy4gVGhpcyBhbGxvd3MgYSB1c2VyIHRvIGRlZmluZSBzcGVjaWZpYyBtYXJrdXAgY29tcGxldGlvbgotICAgICAgICAgICAgdGVtcGxhdGVzIHRoYXQgYXJlIGNvbW1vbmx5IHVzZWQuIEluIGFkZGl0aW9uLCB0aGUgWFBhdGggVGVtcGxhdGVzIHBhZ2UgY2FuIGJlCi0gICAgICAgICAgICBlbmhhbmNlZCB0byBhbGxvdyBjb21tb25seSB1c2VkIFhQYXRoIHRlbXBsYXRlcyB0byBiZSBpbmNsdWRlZCwgaW4gYWRkaXRpb24gdG8KLSAgICAgICAgICAgIHRob3NlIGluc3RhbGxlZCBieSBkZWZhdWx0LiBUaGlzIGFsbG93cyBhIHVzZXIgdGhlIGFiaWxpdHkgdG8gYWRkIGN1c3RvbQotICAgICAgICAgICAgZXh0ZW5zaW9uIGZ1bmN0aW9ucyBmb3IgWFNMVCB0aGF0IG1heSBiZSBwcm9jZXNzb3Igc3BlY2lmaWMuIEFkb3B0ZXJzIG1heSBhbHNvCi0gICAgICAgICAgICB1c2UgdGhlIHN0YW5kYXJkIHRlbXBsYXRlIGV4dGVuc2lvbiBwb2ludCB0byBhZGQgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5LgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgIDxzZWN0aW9uPgotICAgICAgICAgICAgPHRpdGxlPlhQYXRoIFRlbXBsYXRlczwvdGl0bGU+Ci0gICAgICAgICAgICA8cGFyYT5UaGUgWFNMIFhQYXRoIFRlbXBsYXRlcyBwcmVmZXJlbmNlIHBhZ2UgYWxsb3dzIGZvciBhIHVzZXIgb3IgYWRvcHRlcgotICAgICAgICAgICAgICAgIHRvIGFkZCBzcGVjaWZpYyB4cGF0aCBleHRlbnNpb25zIHNvIHRoYXQgdGhleSBzaG93IHVwIGluIHRoZSBjb250ZW50Ci0gICAgICAgICAgICAgICAgYXNzaXN0YW5jZS4gU2VlIHRoZSBYUGF0aCBUZW1wbGF0ZXMgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSAgICAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgPC9zZWN0aW9uPgotICAgIDwvc2VjdGlvbj4KLSAgICA8c2VjdGlvbiBpZD0ieHNsdFN5bnRheENvbG9yaW5nIj4KLTw/ZGJodG1sIGZpbGVuYW1lPSJlZGl0b3IveHNsZWRpdG9yX2NvbG9yaW5nLmh0bWwiID8+Ci0gICAgICAgIDx0aXRsZT5YU0xUIFN5bnRheCBDb2xvcmluZzwvdGl0bGU+Ci0gICAgICAgIDxwYXJhPgotICAgICAgICAgICAgWFNMIFRvb2xzIEVkaXRvciBjYW4gaGF2ZSBzeW50YXggY29sb3JpbmcgdGhhdCBpcyBzcGVjaWZpYyBqdXN0IGZvciB0aGUgdGhlCi0gICAgICAgICAgICBYU0xUIE5hbWVzcGFjZSBhcyBzaG93aW5nIGluCi0gICAgICAgICAgICA8eHJlZiBsaW5rZW5kPSJmaWdfZWRpdG9yU3ludGF4Q29sb3JpbmciLz4KLSAgICAgICAgICAgIC4KLSAgICAgICAgPC9wYXJhPgotICAgICAgICA8ZmlndXJlIGlkPSJmaWdfZWRpdG9yU3ludGF4Q29sb3JpbmciPgotICAgICAgICAgICAgPHRpdGxlPlhTTFQgU3BlY2lmaWMgU3ludGF4IENvbG9yaW5nPC90aXRsZT4KLSAgICAgICAgICAgIDxtZWRpYW9iamVjdD4KLSAgICAgICAgICAgICAgICA8aW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgICAgIDxpbWFnZWRhdGEgYWxpZ249ImNlbnRlciIgZmlsZXJlZj0iLi4vaW1hZ2VzL2VkaXRvci9zeW50YXhDb2xvcmluZy5wbmciCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9IlBORyIvPgotICAgICAgICAgICAgICAgIDwvaW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICA8L21lZGlhb2JqZWN0PgotICAgICAgICA8L2ZpZ3VyZT4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICBUaGUgZGVmYXVsdCBjb2xvcmluZyBzaG93biBpcyB0byBtYWtlIGFsbCBYU0xUIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGJvbGQuCi0gICAgICAgICAgICBUaGUgc2V0dGluZ3MgYXJlIGNvbnRyb2xlZCBpbgotICAgICAgICAgICAgPHhyZWYgbGlua2VuZD0iWFNMUHJlZmVyZW5jZXMiLz4KLSAgICAgICAgICAgIC4KLSAgICAgICAgPC9wYXJhPgotICAgIDwvc2VjdGlvbj4KLSAgICA8c2VjdGlvbiBpZD0ieHNsdE1hcmtlcnMiPgotPD9kYmh0bWwgZmlsZW5hbWU9ImVkaXRvci94c2xlZGl0b3JfbWFya2Vycy5odG1sIiA/PgotICAgICAgICA8dGl0bGU+WFNMVCBNYXJrZXJzIGFuZCBBbm5vdGF0aW9uczwvdGl0bGU+Ci0gICAgICAgIDxwYXJhPlRoZSBYU0wgZWRpdG9yIHN1cHBvcnRzIHRoZSBhYmlsaXR5IHRvIGFubm90YXRlIG9yIHByb3ZpZGUgbWFya2Vycy4gVGhlc2UKLSAgICAgICAgICAgIGFubm90YXRpb25zIHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGVtcGxhdGVzIGFuZCBYU0xUCi0gICAgICAgICAgICBlbGVtZW50cyBpbiB0aGUgc3R5bGVzaGVldC48L3BhcmE+Ci0gICAgICAgIDxzZWN0aW9uIGlkPSJ4c2x0T3ZlclJpZGUiPgotPD9kYmh0bWwgZmlsZW5hbWU9ImVkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF94c2x0T3ZlcnJpZGUuaHRtbCIgPz4KLSAgICAgICAgCi0gICAgICAgICAgICA8dGl0bGU+VGVtcGxhdGUgT3ZlcnJpZGU8L3RpdGxlPgotICAgICAgICAgICAgPHBhcmE+VGhlIFhTTFQgZWRpdG9yIHdpbGwgbWFyayB0ZW1wbGF0ZXMgdGhhdCBoYXZlIG92ZXJyaWRlbiBhbiBpbXBvcnRlZAotICAgICAgICAgICAgICAgIHRlbXBsYXRlIG9mIHRoZSBzYW1lIG5hbWUuPC9wYXJhPgotICAgICAgICAgICAgPGZpZ3VyZSBpZD0iZmlnX092ZXJSaWRlMSI+Ci0gICAgICAgICAgICAgICAgPHRpdGxlPk92ZXJyaWRlbiBUZW1wbGF0ZTwvdGl0bGU+Ci0gICAgICAgICAgICAgICAgPG1lZGlhb2JqZWN0PgotICAgICAgICAgICAgICAgICAgICA8aW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgICAgICAgICA8aW1hZ2VkYXRhIGFsaWduPSJjZW50ZXIiIGZpbGVyZWY9Ii4uL2ltYWdlcy9lZGl0b3Ivb3ZlcnJpZGUxLnBuZyIvPgotICAgICAgICAgICAgICAgICAgICA8L2ltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgIDwvbWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICA8L2ZpZ3VyZT4KLSAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgIEluCi0gICAgICAgICAgICAgICAgPHhyZWYgbGlua2VuZD0iZmlnX092ZXJSaWRlMSIvPgotICAgICAgICAgICAgICAgICwgdGhlIHRlbXBsYXRlCi0gICAgICAgICAgICAgICAgPGVtcGhhc2lzPlRlbXBCPC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICBvdmVycmlkZXMgYW4gaW1wb3J0ZWQgdGVtcGxhdGUuIEJ5IG1vdmluZyB0aGUgbW91c2UgcG9pbnRlciBvdmVyIHRoZQotICAgICAgICAgICAgICAgIHRyaWFuZ2xlIGljb24gaW4gdGhlIHJ1bGUgYmFyLCBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCBmaWxlIHRoZSBvcmlnaW5hbAotICAgICAgICAgICAgICAgIHRlbXBsYXRlIHJlc2lkZXMuCi0gICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8ZmlndXJlIGlkPSJmaWdfT3ZlclJpZGUyIj4KLSAgICAgICAgICAgICAgICA8dGl0bGU+T3ZlcnJpZGVuIFRlbXBsYXRlIEluZm9ybWF0aW9uPC90aXRsZT4KLSAgICAgICAgICAgICAgICA8bWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICAgICAgICAgIDxpbWFnZW9iamVjdD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxpbWFnZWRhdGEgYWxpZ249ImNlbnRlciIgZmlsZXJlZj0iLi4vaW1hZ2VzL2VkaXRvci9vdmVycmlkZTIucG5nIi8+Ci0gICAgICAgICAgICAgICAgICAgIDwvaW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgPC9tZWRpYW9iamVjdD4KLSAgICAgICAgICAgIDwvZmlndXJlPgotICAgICAgICA8L3NlY3Rpb24+Ci0gICAgPC9zZWN0aW9uPgotICAgIDxzZWN0aW9uIGlkPSJYU0xFZGl0b3JEZWJ1Z2dpbmciPgotPD9kYmh0bWwgZmlsZW5hbWU9ImVkaXRvci94c2xlZGl0b3JfZGVidWdnaW5nLmh0bWwiID8+Ci0gICAgICAgIDx0aXRsZT5YU0wgRGVidWdnaW5nPC90aXRsZT4KLSAgICAgICAgPHBhcmE+VGhlIFhTTCBFZGl0b3Igc3VwcG9ydHMgdGhlIGFiaWxpdHkgdG8gc3BlY2lmeSBicmVhayBwb2ludHMgd2l0aGluIGFuIFhTTAotICAgICAgICAgICAgRmlsZS4gSWYgdGhlIGZpbGUgaXMgaW5jbHVkZWQgb3IgaW1wb3J0ZWQgYW5kIHRoZSBicmVhayBwb2ludCBpcyBlbmNvdW50ZXJlZAotICAgICAgICAgICAgZHVyaW5nIGEgdHJhbnNmb3JtYXRpb24gc2NlbmFyaW8gaXQgd2lsbCBiZSByZXNwZWN0ZWQuIEEgYnJlYWsgcG9pbnQgbWF5IGJlCi0gICAgICAgICAgICBzZXQgYXQgYW55IHZhbGlkIFhTTCBlbGVtZW50IG9yIG90aGVyIHhtbCBlbGVtZW50IHdpdGhpbiB0aGUgWFNMVCBzdHlsZXNoZWV0LgotICAgICAgICAgICAgU2VlIHRoZSBMYXVuY2hpbmcgYW5kIERlYnVnZ2luZyBzZWN0aW9uIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGRlYnVnZ2luZyBYU0xUCi0gICAgICAgICAgICBzdHlsZXNoZWV0cy48L3BhcmE+Ci0gICAgPC9zZWN0aW9uPgotICAgIDxzZWN0aW9uPgotPD9kYmh0bWwgZmlsZW5hbWU9ImVkaXRvci94c2xlZGl0b3JfZGVidWdnaW5nLmh0bWwiID8+Ci0gICAgICAgIDx0aXRsZT5OYXZpZ2F0aW9uPC90aXRsZT4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICBNYW55IG9mIHRoZSB2YXJpYWJsZXMsIGltcG9ydHMvaW5jbHVkZXMsIGFuZCB0ZW1wbGF0ZXMgY2FuIGJlIG5hdmlnYXRlZCB0bwotICAgICAgICAgICAgdXNpbmcgdGhlCi0gICAgICAgICAgICA8ZW1waGFzaXM+T3BlbiBEZWNsYXJhdGlvbiAoRjMpPC9lbXBoYXNpcz4KLSAgICAgICAgICAgIHBvcHVwIG1lbnUgb3B0aW9uLiBUaGV5IGNhbiBhbHNvIGJlIG5hdmlnYXRlZCB0byBkaXJlY3RseSBieSBDVFJMLUNsaWNraW5nIG9uCi0gICAgICAgICAgICB0aGUgbmFtZSBvZiB0aGUgdmFyaWFibGUsIGltcG9ydC9pbmNsdWRlLCBvciB0ZW1wbGF0ZS4gSXRlbXMgdGhhdCBjdXJyZW50bHkKLSAgICAgICAgICAgIGhhdmUgaHlwZXJsaW5raW5nIG5hdmlnYXRpb24gYXJlOgotICAgICAgICA8L3BhcmE+Ci0gICAgICAgIDxpdGVtaXplZGxpc3Q+Ci0gICAgICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICAgICAgPHBhcmE+Q2FsbGVkLVRlbXBsYXRlczwvcGFyYT4KLSAgICAgICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgICAgICAgICAgPHBhcmE+aHJlZnMgZm9yIEltcG9ydCBhbmQgSW5jbHVkZXM8L3BhcmE+Ci0gICAgICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgICAgICAgIDxwYXJhPldpdGgtUGFyYW0gdmFyaWFibGVzPC9wYXJhPgotICAgICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgPC9pdGVtaXplZGxpc3Q+Ci0gICAgICAgIDx0aXA+Ci0gICAgICAgICAgICA8dGl0bGU+TmF2aWdhdGlvbiB0byBhIE5hbWVkIFRlbXBsYXRlIGluIGFuIGluY2x1ZGVkL2ltcG9ydGVkCi0gICAgICAgICAgICAgICAgc3R5bHNoZWV0PC90aXRsZT4KLSAgICAgICAgICAgIDxwYXJhPiBUaGUgaHlwZXJsaW5raW5nIGFiaWxpdHkgd2lsbCBuYXZpZ2F0ZSB5b3UgdG8gd2hlcmUgZXZlciB0aGUgZmlyc3QKLSAgICAgICAgICAgICAgICBkZWZpbml0aW9uIG9mIHRoZSB0ZW1wbGF0ZSBpcyBkZWZpbmVkLiBTbyBpZiB0aGUgdGVtcGxhdGUgaXMgZGVmaW5lZAotICAgICAgICAgICAgICAgIHdpdGhpbiB0aGUgY3VycmVudCBzdHlsZXNoZWV0IGl0IHdpbGwgbmF2aWdhdGUgdG8gdGhhdCBkZWZpbml0aW9uLiBIb3dldmVyCi0gICAgICAgICAgICAgICAgaWYgaXQgaXMgZGVmaW5lZCBpbiBhbiBpbXBvcnRlZCBvciBpbmNsdWRlZCBzdHlsZXNoZWV0LCBvciBhbnkgb2YgdGhvc2UKLSAgICAgICAgICAgICAgICBpbXBvcnRlZCBvciBpbmNsdWRlZCBzdHlsZXNoZWV0cyBpdCB3aWxsIHRha2UgeW91IHRvIHRoYXQgZGVmaW5pdGlvbi4gVXNlCi0gICAgICAgICAgICAgICAgdGhlIHN0YW5kYXJkIG5hdmlnYXRpb24gZXJyb3JzIHRvIG1vdmUgYmFjayBhbmQgZm9ydGggZHVyaW5nIHRoaXMKLSAgICAgICAgICAgICAgICBoeXBlcmxpbmtpbmcuPC9wYXJhPgotICAgICAgICA8L3RpcD4KLSAgICA8L3NlY3Rpb24+Ci08L2NoYXB0ZXI+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2dlbmVyYWwvZ2VuZXJhbC54bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svZ2VuZXJhbC9nZW5lcmFsLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjcyYzQ1YS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svZ2VuZXJhbC9nZW5lcmFsLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgY2hhcHRlciBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuNS8vRU4iCi0gICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC41L2RvY2Jvb2t4LmR0ZCI+Ci08Y2hhcHRlcj4KLQk8P2RiaHRtbCBmaWxlbmFtZT0iZ2VuZXJhbC9nZW5lcmFsLmh0bWwiID8+Ci0JPHRpdGxlPkdlbmVyYWw8L3RpdGxlPgotCTxwYXJhPlRoaXMgc2VjdGlvbiBjb3ZlcnMgdG9waWNzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgb3RoZXIgcGFydGljdWxhciBwbGFjZSB0byBnby48L3BhcmE+Ci0JPHNlY3Rpb24gaWQ9IlhJbmNsdWRlIj4KLQkgICAgPD9kYmh0bWwgZmlsZW5hbWU9ImdlbmVyYWwveGluY2x1ZGUuaHRtbCIgPz4KLQkJPHRpdGxlPlhJbmNsdWRlPC90aXRsZT4KLQkJPHBhcmE+Ci0gICAgICAJWEluY2x1ZGUgYWxsb3dzIGEgdXNlciB0byBpbXBvcnQgb3IgaW5jbHVkZSBvdGhlciBYTUwgZmlsZXMgaW50byBvbmUgeG1sIGZpbGUuCi0gICAgICAgIEl0IGlzIHVzZWQgcHJpbWFyaWx5IHdpdGggZG9jdW1lbnRhdGlvbiBmaWxlIGZvcm1hdHMgbGlrZSBEb2Nib29rIGFuZCBESVRBLiAgSXQKLSAgICAgICAgYWxsb3dzIGZvciBzZXBhcmF0aW5nIG91dCBsYXJnZSB4bWwgZG9jdW1lbnRzIGludG8gbW9yZSBtYW5hZ2VhYmxlIGNodW5rcyBvZiBpbmZvcm1hdGlvbi4KLSAgICAgIDwvcGFyYT4KLQkJPHBhcmE+Ci0gICAgICAJVGhlIFhTTCBUb29scyBwcm9qZWN0IGluY2x1ZGVzIGFuIEFOVCB0YXNrIHRoYXQgY2FuIGJlIHJ1biB3aXRoIGluIGVjbGlwc2UsIGVjbGlwc2UKLSAgICAgIAloZWFkbGVzcywgYW5kIHdpdGhvdXQgZWNsaXBzZSBhdCBhbGwuICAgSWYgcnVubmluZyBvdXRzaWRlIG9mIGVjbGlwc2UsIHlvdSB3aWxsIG5lZWQKLSAgICAgIAl0byBtYWtlIHN1cmUgdGhhdCB0aGUgamFyIGZpbGUgeGluY2x1ZGUuamFyIGluIHRoZSBvcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuamFyIGZpbGUKLSAgICAgIAlpcyBtYWRlIGF2YWlhYmxlIG9uIHlvdXIgY2xhc3MgcGF0aC4KLSAgICAgIDwvcGFyYT4KLQkJPG1lZGlhb2JqZWN0PgotCQkJPG9iamVjdGluZm8gaWQ9IlhpbmNsdWRlIj4KLQkJCQk8dGl0bGU+WEluY2x1ZGUgVGFzazwvdGl0bGU+Ci0JCQk8L29iamVjdGluZm8+Ci0JCQk8aW1hZ2VvYmplY3Q+Ci0JCQkJPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIiBmaWxlcmVmPSIuLi9pbWFnZXMvZ2VuZXJhbC94aW5jbHVkZS5wbmciCi0JCQkJCWZvcm1hdD0iUE5HIiAvPgotCQkJPC9pbWFnZW9iamVjdD4KLQkJPC9tZWRpYW9iamVjdD4KLQkJPHBhcmE+Ci0gICAgICAJVGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzIGFyZSBhdmFpbGFibGUgb24gdGhlIHhzbC54aW5jbHVkZSBBTlQgdGFzazoKLSAgICAgIDwvcGFyYT4KLQkJPGl0ZW1pemVkbGlzdD4KLQkJCTxsaXN0aXRlbT4KLQkJCQk8cGFyYT4KLSAgICAgIAkJCTxlbXBoYXNpcyByb2xlPSJib2xkIj4KLQkJCQkJaW4KLQkJCQk8L2VtcGhhc2lzPiAtIFRoZSBmdWxsIHBhdGggdG8gdGhlIGlucHV0IGZpbGUgdGhhdCBjb250YWlucwotICAgICAgCQkJdGhlIGZpbGUgd2l0aCB0aGUgWEluY2x1ZGVzLiAgIElmIHRoZSBmaWxlcyB0aGF0IGl0IGluY2x1ZGVzIGhhdmUgaW5jbHVkZXMsIHRoZW4KLSAgICAgIAkJCXRob3NlIHdpbGwgYmUgYnJvdWdodCBpbiBhbiBleHBhbmRlZCBhcyB3ZWxsLgotICAgICAgCQk8L3BhcmE+Ci0JCQk8L2xpc3RpdGVtPgotCQkJPGxpc3RpdGVtPgotCQkJCTxwYXJhPgotCQkJCQk8ZW1waGFzaXMgcm9sZT0iYm9sZCI+b3V0PC9lbXBoYXNpcz4gLSBUaGUgZnVsbCBwYXRoIHRvIHRoZSBvdXRwdXQgZmlsZSAKLQkJCQkJdG8gYmUgd3JpdHRlbiB3aXRoIGFsbCBpbmNsdWRlcyBleHBhbmRlZC4gIFRoaXMgaXMgdHlwaWNhbGx5IHVzZWQgYXMgdGhlCi0JCQkJCWlucHV0IHRvIGEgc3R5bGVzaGVldCB0cmFuc2Zvcm1hdGlvbiBwcm9jZXNzLgotCQkJCTwvcGFyYT4KLQkJCTwvbGlzdGl0ZW0+Ci0JCTwvaXRlbWl6ZWRsaXN0PgotCSAgICA8ZXhhbXBsZT4KLQkgICAgCTx0aXRsZT5YSW5jbHVkZSBFeGFtcGxlPC90aXRsZT4KLQkgICAgCTxwcm9ncmFtbGlzdGluZyB4bWw6c3BhY2U9InByZXNlcnZlIj4KLSZsdDt0YXJnZXQgbmFtZT0ibWVyZ2UiPgotICAgICZsdDt4c2wueGluY2x1ZGUgaW49IiR7ZG9jYm9va3NvdXJjZX0veHNsaGVscC5kYmsiCi0gICAgICAgICAgICAgICAgICBvdXQ9IiR7ZG9jYm9va3NvdXJjZX0veHNsaGVscGNvbWJpbmVkLmRiayIvPgotJmx0Oy90YXJnZXQ+CSAgICAJCSAgICAJCi0JICAgIAk8L3Byb2dyYW1saXN0aW5nPgotCSAgICA8L2V4YW1wbGU+Ci0JPC9zZWN0aW9uPgotPC9jaGFwdGVyPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL0V4Y2x1ZGVDb250ZW50QXNzaXN0MS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9FeGNsdWRlQ29udGVudEFzc2lzdDEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZjBmMmNiLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL0V4Y2x1ZGVDb250ZW50QXNzaXN0MS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9FeGNsdWRlQ29udGVudEFzc2lzdDIucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3IvRXhjbHVkZUNvbnRlbnRBc3Npc3QyLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmU1MzY3Ny4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9FeGNsdWRlQ29udGVudEFzc2lzdDIucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3IvY2FsbHRlbXBsYXRlLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL2NhbGx0ZW1wbGF0ZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhMTNmMDcuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3IvY2FsbHRlbXBsYXRlLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL2hyZWZBc3Npc3RhbmNlLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL2hyZWZBc3Npc3RhbmNlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY0NDk4Ni4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9ocmVmQXNzaXN0YW5jZS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9tb2RlQXNzaXN0YW5jZS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9tb2RlQXNzaXN0YW5jZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY1YTk4NzUuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3IvbW9kZUFzc2lzdGFuY2UucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3IvbmFtZWRUZW1wbGF0ZS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9uYW1lZFRlbXBsYXRlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjhiZDkyNi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9uYW1lZFRlbXBsYXRlLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL292ZXJyaWRlMS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9vdmVycmlkZTEucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OGI4NzhiLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL292ZXJyaWRlMS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9vdmVycmlkZTIucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3Ivb3ZlcnJpZGUyLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2ZjNDE1Yy4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci9vdmVycmlkZTIucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3Ivc3ludGF4Q29sb3JpbmcucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3Ivc3ludGF4Q29sb3JpbmcucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NWUwZWJkLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL3N5bnRheENvbG9yaW5nLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvZWRpdG9yL3RlbXBsYXRlc1ZpZXcucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3IvdGVtcGxhdGVzVmlldy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGExZTIwZDkuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3IvdGVtcGxhdGVzVmlldy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci94c2xwcm9wb3NhbHMucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9lZGl0b3IveHNscHJvcG9zYWxzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmZjMTI3YS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2VkaXRvci94c2xwcm9wb3NhbHMucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9sYXVuY2hpbmcvbGF1bmNoU2hvcnRjdC5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2xhdW5jaGluZy9sYXVuY2hTaG9ydGN0LnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODgxODEzYS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2xhdW5jaGluZy9sYXVuY2hTaG9ydGN0LnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvbGF1bmNoaW5nL25vZGVzZXRWYXJpYWJsZS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2xhdW5jaGluZy9ub2Rlc2V0VmFyaWFibGUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2NhN2ZmLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvbGF1bmNoaW5nL25vZGVzZXRWYXJpYWJsZS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL2xhdW5jaGluZy9yZXN1bHRWaWV3LnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvbGF1bmNoaW5nL3Jlc3VsdFZpZXcucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNmQxYjkxLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvbGF1bmNoaW5nL3Jlc3VsdFZpZXcucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9wcmVmZXJlbmNlcy9YUGF0aFRlbXBsYXRlcy5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL1hQYXRoVGVtcGxhdGVzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY4OTMwNC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL1hQYXRoVGVtcGxhdGVzLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvcHJlZmVyZW5jZXMvcHJvamVjdExldmVsVmFsaWRhdGlvbi5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL3Byb2plY3RMZXZlbFZhbGlkYXRpb24ucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmZlODYyLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvcHJlZmVyZW5jZXMvcHJvamVjdExldmVsVmFsaWRhdGlvbi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL3htX3RlbXBsYXRlX3hzbG5ld2ZpbGUucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9wcmVmZXJlbmNlcy94bV90ZW1wbGF0ZV94c2xuZXdmaWxlLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzY0NmE2ZC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL3htX3RlbXBsYXRlX3hzbG5ld2ZpbGUucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xTeW50YXhDb2xvcmluZy5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbFN5bnRheENvbG9yaW5nLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjZlYmVmMy4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbFN5bnRheENvbG9yaW5nLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvcHJlZmVyZW5jZXMveHNsX0luc3RhbGxlZFByb2Nlc3NvcnMucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xfSW5zdGFsbGVkUHJvY2Vzc29ycy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyOTUwNzkuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xfSW5zdGFsbGVkUHJvY2Vzc29ycy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbF9vdXRwdXRwcm9wZXJ0aWVzLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvcHJlZmVyZW5jZXMveHNsX291dHB1dHByb3BlcnRpZXMucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZTAwYTQyLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvcHJlZmVyZW5jZXMveHNsX291dHB1dHByb3BlcnRpZXMucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xmZWF0dXJlcy5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbGZlYXR1cmVzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjlkYmVjOC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbGZlYXR1cmVzLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9pbWFnZXMvcHJlZmVyZW5jZXMveHNscHJlZmVyZW5jZXMucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xwcmVmZXJlbmNlcy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRjYjcxODcuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xwcmVmZXJlbmNlcy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svbGF1bmNoaW5nL2xhdW5jaGluZy54bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svbGF1bmNoaW5nL2xhdW5jaGluZy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMxYzdjNTIuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL2xhdW5jaGluZy9sYXVuY2hpbmcueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTY1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgY2hhcHRlciBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuNS8vRU4iCi0gICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC41L2RvY2Jvb2t4LmR0ZCI+Ci08Y2hhcHRlcj4KLQk8P2RiaHRtbCBmaWxlbmFtZT0ibGF1bmNoaW5nL2xhdW5jaGluZy5odG1sIiA/PgotCTx0aXRsZT5YU0wgTGF1bmNoaW5nIGFuZCBEZWJ1Z2dpbmc8L3RpdGxlPgotCTxwYXJhPiBYU0wgVG9vbHMgYWRkcyBzdXBwb3J0IGZvciBYU0wgTGF1bmNoIGFuZCBEZWJ1Z2dpbmcgY29uZmlndXJhdGlvbnMuIFRoZXNlIGFsbG93IHlvdSB0byBzZXR1cCBYU0wgY29uZmlndXJhdGlvbnMKLQkJZm9yIHZhcmlvdXMgam9icywgYW5kIHRvIGFsc28gZGVidWcgeHNsIHN0eWxzaGVldCB0cmFuc2Zvcm1hdGlvbnMuPC9wYXJhPgotCTxzZWN0aW9uIGlkPSJYU0xMYXVuY2giPgotCQk8P2RiaHRtbCBmaWxlbmFtZT0ibGF1bmNoaW5nL2xhdW5jaGluZy5odG1sIiA/PgotCQk8dGl0bGU+WFNMIExhdW5jaGluZzwvdGl0bGU+Ci0JCTxwYXJhPgotCQkJSW4gdGhlIFByb2plY3QgRXhwbG9yZXIsIHNpbXBseSBzZWxlY3QgdGhlIGlucHV0IFhNTCBmaWxlIGFuZCB0aGUgc3R5bGVzaGVldChzKSB0byB0cmFuc2Zvcm0gaXQsIGFuZCB0aGVuIHJpZ2h0LWNsaWNrCi0JCQlhbmQgc2VsZWN0Ci0JCQk8ZW1waGFzaXM+UnVuIEFzID4gWFNMIFRyYW5zZm9ybWF0aW9uPC9lbXBoYXNpcz4KLQkJCS4KLQkJPC9wYXJhPgotCQk8bWVkaWFvYmplY3Q+Ci0JCQk8aW1hZ2VvYmplY3Q+Ci0JCQkJPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIiBmb3JtYXQ9IlBORyIgZmlsZXJlZj0iLi4vaW1hZ2VzL2xhdW5jaGluZy9sYXVuY2hTaG9ydGN0LnBuZyIgLz4KLQkJCTwvaW1hZ2VvYmplY3Q+Ci0JCTwvbWVkaWFvYmplY3Q+Ci0JPC9zZWN0aW9uPgotCTxzZWN0aW9uIGlkPSJYU0xEZWJ1ZyI+Ci0JICAgIDw/ZGJodG1sIGZpbGVuYW1lPSJsYXVuY2hpbmcvZGVidWdnaW5nLmh0bWwiID8+Ci0JCTx0aXRsZT5YU0xUIERlYnVnZ2luZzwvdGl0bGU+Ci0JCTxwYXJhPiBYU0wgVG9vbHMgcHJvdmlkZXMgYSBmcmFtZXdvcmsgZm9yIFhTTFQgcHJvY2Vzc29ycyB0byBwcm92aWRlIGRlYnVnZ2luZyBzdXBwb3J0LiBUaGUgc3VwcG9ydCBwcm92aWRlZCBpcyBoaWdobHkKLQkJCWRlcGVuZGVudCBvbiB0aGUgcHJvY2Vzc29ycy4gWFNMIFRvb2xzIGNvbWVzIHdpdGggYnVpbHQgaW4gc3VwcG9ydCBmb3IgdGhlIFhhbGFuIDIuNy4xIHByb2Nlc3Nvci4gRGVidWdnaW5nIGlzIG9ubHkKLQkJCWF2YWlsYWJsZSBmb3IgdGhvc2UgcHJvY2Vzc29ycyB0aGF0IHN1cHBvcnQgdGhlIGZlYXR1cmUgYW5kIHBsdWcgaW50byB0aGUgZXh0ZW5zaW9uIHBvaW50LiBUaGUgWFNMIFRvb2xzIGRlYnVnZ2VyCi0JCQlsZXZlcmFnZXMgdGhlIGV4aXN0aW5nIGVjbGlwc2UgcGxhdGZvcm0gRGVidWcgVmlldzwvcGFyYT4KLQkJPHBhcmE+Ci0JCQlIb3cgdGhlIGRlYnVnZ2VyIGFjdHMgd2lsbCBkZXBlbmQgb24gdGhlIHByb2Nlc3NvciBiZWluZyB1c2VkLiBOb3QgYWxsIFhTTFQgcHJvY2Vzc29ycyBwYXNzIHRoZSBzYW1lIHR5cGUgb2YKLQkJCWluZm9ybWF0aW9uIHRvIHRoZSBkZWJ1Z2dlci4gVGhlc2UgZGlmZmVyZW5jZXMgd2lsbCBiZSBub3RlZCBpbiB0aGUKLQkJCTx4cmVmIGxpbmtlbmQ9IlhTTERlYnVnUHJvY2Vzc29yU3BlY2lmaWMiIC8+Ci0JCQlzZWN0aW9uLgotCQk8L3BhcmE+Ci0JCTxzZWN0aW9uIGlkPSJEZWJ1Z0dldHRpbmdTdGFydGVkIj4KLQkJCTw/ZGJodG1sIGZpbGVuYW1lPSJsYXVuY2hpbmcvZGVidWdnaW5nX2dldHRpbmdTdGFydGVkLmh0bWwiID8+Ci0JCQk8dGl0bGU+U3RhcnRpbmcgYSBEZWJ1ZyBTZXNzaW9uPC90aXRsZT4KLQkJCTxwYXJhPiBEZWJ1Z2dpbmcgaXMgc3RhcnRlZCB0aGUgc2FtZSB3YXkgYXMgbGF1bmNoaW5nIGFuIFhTTCBUcmFuZm9ybWF0aW9uIGlzIGRvbmUuIEV4Y2VwdCB0aGF0IHRoZSBkZWJ1ZwotCQkJCWNvbmZpZ3VyYXRpb24gaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgbGF1bmNoIGNvbmZpZ3VyYXRpb24uIElmIGEgZGVidWdnaW5nIHNlc3Npb24gaXMgc3RhcnRlZCBvbiBhIHByb2Nlc3NvcgotCQkJCXRoYXQgZG9lcyBub3Qgc3VwcG9ydCBkZWJ1Z2dpbmcsIGEgZGlhbG9nIHdpbGwgYXNrIGlmIHlvdSB3YW50IHRvIHN3aXRjaCB0byBvbmUgb2YgdGhlIHN1cHBvcnRlZCBkZWJ1Z2dlcnMuPC9wYXJhPgotCQkJPG5vdGU+Ci0JCQkJPHRpdGxlPkRlZmF1bHQgSlJFPC90aXRsZT4KLQkJCQk8cGFyYT4gVGhlIGRlZmF1bHQgSlJFIGRvZXMgbm90IGhhdmUgYnVpbHQgaW4gc3VwcG9ydCBmb3IgZGVidWdnaW5nLCBldmVuIHRob3VnaCBpdCBpcyBiYXNlZCBvbiBBcGFjaGUgWGFsYW4uIEl0IGlzCi0JCQkJCXJlY29tbWVuZGVkIHRvIHVzZSBYYWxhbiBvciBhbm90aGVyIHByb2Nlc3NvciBwcm92aWRlZCBieSBhbiBhZG9wdGVyIHRvIGRvIHlvdXIgdHJhbnNmb3JtYXRpb25zLiBUaGUgZGVmYXVsdAotCQkJCQlwcm9jZXNzb3IgaXMga25vd24gdG8gaGF2ZSBzb21lIGlzc3VlcyB0aGF0IFhhbGFuIGFuZCBvdGhlciBwcm9jZXNzb3JzIGRvIG5vdCBoYXZlLjwvcGFyYT4KLQkJCTwvbm90ZT4KLQkJPC9zZWN0aW9uPgotCQk8c2VjdGlvbiBpZD0iWFNMRGVidWdDb21tb24iPgotCQk8P2RiaHRtbCBmaWxlbmFtZT0ibGF1bmNoaW5nL2RlYnVnZ2luZ19jb21tb24uaHRtbCIgPz4KLQkJCTx0aXRsZT5Db21tb24gRGVidWdnaW5nIE9wZXJhdGlvbnM8L3RpdGxlPgotCQkJPHBhcmE+Ci0JCQkJWFNMVCBkZWJ1Z2dpbmcgaXMgaGFuZGxlZCBieSB0aGUgZWNsaXBzZSBwbGF0Zm9ybXMgZGVidWdnaW5nIGZyYW1ld29yayBzdXBwb3J0IGFzIG91dGxpbmVkIGluIHRoZQotCQkJCTx1bGluayB1cmw9Ii9oZWxwL3RvcGljL29yZy5lY2xpcHNlLnBsYXRmb3JtLmRvYy5pc3YvZ3VpZGUvZGVidWdfZGVidWcuaHRtIj4iUHJvZ3JhbSBEZWJ1ZyBhbmQgTGF1bmNoIFN1cHBvcnQiPC91bGluaz4KLQkJCQkuIENvbW1vbiBvcGVyYXRpb25zIGxpa2Ugc3RlcHBpbmcgaW50byAoRjUpLCBzdGVwcGluZyBvdmVyIChGNiksIHBhdXNpbmcsIHJ1bm5pbmcgdG8gYSBicmVha3BvaW50LCBhbmQgcmVsYXVuY2hpbmcKLQkJCQlhcmUgc3VwcG9ydGVkLiBJbiBhZGRpdGlvbiB0byB0aGUgc3RhbmRhcmQgVmFyaWFibGUgYW5kIEJyZWFrcG9pbnQgdmlld3MgcHJvdmlkZWQgYnkgdGhlIHBsYXRmb3JtLCB0aGVyZSBhcmUgc29tZQotCQkJCVhTTFQgc3BlY2lmaWMgdmlld3MgYW5kIGZ1bmN0aW9uYWxpdHkgYXMgd2VsbC4gQWxsIG9mIHRoZXNlIGFyZSBjb21tb24gcmVnYXJkbGVzcyBvZiB0aGUgcGFydGljdWxhciBYU0xUIGRlYnVnZ2VyCi0JCQkJYmVpbmcgdXNlZC4KLQkJCTwvcGFyYT4KLQkJCTx0aXA+Ci0JCQkJPHRpdGxlPkludHJvZHVjdGlvbiB0byBFY2xpcHNlIERlYnVnZ2luZzwvdGl0bGU+Ci0JCQkJPHBhcmE+Ci0JCQkJCTx1bGluayB1cmw9Imh0dHA6Ly93d3cubWNzLnZ1dy5hYy5uei9jb3Vyc2VzL0NPTVAyMDUvMjAwN1QxL3Rvb2xzL2VjbGlwc2UvZGVidWdnaW5nL2Jhc2ljcy5zaHRtbCI+QmFzaWMgRGVidWdnaW5nIGluIEVjbGlwc2U8L3VsaW5rPgotCQkJCQljb250YWlucyBhIGdvb2QgZ2VuZXJhbCBpbnRyb2R1Y3Rpb24gdG8gdGhlIGJhc2ljIGZlYXR1cmVzIHByb3ZpZGVkIGJ5IHRoZSBFY2xpcHNlIERlYnVnIHZpZXcuIFhTTCBUb29scyBsZXZlcmFnZXMKLQkJCQkJbWFueSBvZiB0aGVzZSBmZWF0dXJlcyBhbmQgdGhlIHNhbWUgY29uY2VwdHMgYXBwbHkgdG8gdGhlIFhTTCBUb29scyBkZWJ1Z2dlci4KLQkJCQk8L3BhcmE+Ci0JCQk8L3RpcD4KLQkJCTxwYXJhPiBJbiBhZGRpdGlvbiB0byB0aGUgc3RhbmRhcmQgZmVhdHVyZXMgYW5kIGZ1bmN0aW9uYWxpdHksIHRoZSBYU0wgVG9vbHMgZGVidWdnaW5nIHN1cHBvcnQgYWRkcyB0aGUgZm9sbG93aW5nCi0JCQkJYWRkaXRpb25hbCBpdGVtczo8L3BhcmE+Ci0JCQk8aXRlbWl6ZWRsaXN0PgotCQkJCTxsaXN0aXRlbT4KLQkJCQkJPHBhcmE+IFJlc3VsdCBWaWV3PC9wYXJhPgotCQkJCTwvbGlzdGl0ZW0+Ci0JCQkJPGxpc3RpdGVtPgotCQkJCQk8cGFyYT5YU0xUIHNwZWNpZmljIFZhcmlhYmxlczwvcGFyYT4KLQkJCQk8L2xpc3RpdGVtPgotCQkJCTxsaXN0aXRlbT4KLQkJCQkJPHBhcmE+WFNMVCBQcm9jZXNzb3IgU3BlY2lmaWMgRnVuY3Rpb25hbGl0eTwvcGFyYT4KLQkJCQk8L2xpc3RpdGVtPgotCQkJPC9pdGVtaXplZGxpc3Q+Ci0JCQk8c2VjdGlvbiBpZD0iWFNMRGVidWdSZXN1bHRWaWV3Ij4KLQkJCTw/ZGJodG1sIGZpbGVuYW1lPSJsYXVuY2hpbmcvZGVidWdnaW5nX3Jlc3VsdHZpZXcuaHRtbCIgPz4KLQkJCQk8dGl0bGU+UmVzdWx0IFZpZXc8L3RpdGxlPgotCQkJCTxwYXJhPiBUaGUgWFNMVCBEZWJ1Z2dlciBoYXMgYSByZXN1bHQgdmlldy4gVGhpcyB3aWxsIHNob3cgdGhlIG91dHB1dCB0aGF0IHRoZSBzdHlsZXNoZWV0IGhhcyBnZW5lcmF0ZWQgdG8gdGhlCi0JCQkJCWN1cnJlbnQgYnJlYWsgcG9pbnQgb3Igc2luY2UgdGhlIGxhc3Qgc3RlcCBjb21tYW5kIHdhcyBpc3N1ZWQuPC9wYXJhPgotCQkJCTxtZWRpYW9iamVjdD4KLQkJCQkJPGltYWdlb2JqZWN0PgotCQkJCQkJPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIiBmb3JtYXQ9IlBORyIgZmlsZXJlZj0iLi4vaW1hZ2VzL2xhdW5jaGluZy9yZXN1bHRWaWV3LnBuZyIgLz4KLQkJCQkJPC9pbWFnZW9iamVjdD4KLQkJCQk8L21lZGlhb2JqZWN0PgotCQkJCTxwYXJhPiBUaGUgcmVzdWx0IHZpZXcgaXMgdXBkYXRlZCB0aHJvdWdob3V0IHRoZSBkZWJ1Z2dpbmcgcHJvY2VzcywgYW5kIGlzIHVzZWZ1bCB0byBoZWxwIHNlZSB3aGF0IG91dHB1dCBpcwotCQkJCQlnZW5lcmF0ZWQgYXQgc3BlY2lmaWMgcG9pbnRzIGR1cmluZyBhIHRyYW5zZm9ybWF0aW9uLjwvcGFyYT4KLQkJCTwvc2VjdGlvbj4KLQkJCTxzZWN0aW9uIGlkPSJYU0xEZWJ1Z1ZhcmlhYmxlcyI+Ci0JCQk8P2RiaHRtbCBmaWxlbmFtZT0ibGF1bmNoaW5nL2RlYnVnZ2luZ192YXJpYWJsZXN2aWV3Lmh0bWwiID8+Ci0JCQkJPHRpdGxlPlZhcmlhYmxlcyBWaWV3PC90aXRsZT4KLQkJCQk8cGFyYT4gVGhlIHZhcmlhYmxlcyB2aWV3IHdpbGwgc2hvdyBhbGwgdGhlIGxvY2FsIGFuZCBnbG9iYWwgdmFyaWFibGVzIGFuZCBwYXJhbXMgdGhhdCBhcmUgY3VycmVudGx5IGluIHNjb3BlLiBUaGVyZQotCQkJCQlhcmUgdHdvIHR5cGVzIG9mIHZhcmlhYmxlcyB0aGF0IGNhbiBiZSB2aWV3cy48L3BhcmE+Ci0JCQkJPG1lZGlhb2JqZWN0PgotCQkJCQk8aW1hZ2VvYmplY3Q+Ci0JCQkJCQk8aW1hZ2VkYXRhIGFsaWduPSJjZW50ZXIiIGZvcm1hdD0iUE5HIiBmaWxlcmVmPSIuLi9pbWFnZXMvbGF1bmNoaW5nL25vZGVzZXRWYXJpYWJsZS5wbmciIC8+Ci0JCQkJCTwvaW1hZ2VvYmplY3Q+Ci0JCQkJPC9tZWRpYW9iamVjdD4KLQkJCQk8aXRlbWl6ZWRsaXN0PgotCQkJCQk8dGl0bGU+VmFyaWFibGUgVHlwZXM8L3RpdGxlPgotCQkJCQk8bGlzdGl0ZW0+Ci0JCQkJCQk8cGFyYT4KLQkJCQkJCQk8ZW1waGFzaXM+U3RyaW5nPC9lbXBoYXNpcz4KLQkJCQkJCQktIFRoZXNlIGNvbnRhaW4gdGV4dCB2YWx1ZXMuIFRoaXMgY291bGQgYmUgc3RyaW5ncyBvZiB0ZXh0LCBudW1iZXJzLCBvciBvdGhlciBjaGFyYWN0ZXJzLgotCQkJCQkJPC9wYXJhPgotCQkJCQk8L2xpc3RpdGVtPgotCQkJCQk8bGlzdGl0ZW0+Ci0JCQkJCQk8cGFyYT4KLQkJCQkJCQk8ZW1waGFzaXM+Tm9kZXNldHM8L2VtcGhhc2lzPgotCQkJCQkJCS0gTm9kZXNldHMgYXJlIHJlcHJlc2VudGVkIGluIHRoZSB2YXJpYWJsZXMgdmlldyBhcyBleHBhbmRhYmxlIHZhcmlhYmxlcy4gVGhleSBjb250YWluIHNlcXVlbmNlcyBvZiBub2Rlcy4gVGhlCi0JCQkJCQkJdHlwZSBvZiBub2RlcyBhcmUgcmVwcmVzZW50ZWQgYnkgaWNvbnMgZm9yIGVsZW1lbnRzLCBhdHRyaWJ1dGVzLCB0ZXh0LCBjb21tZW50cyBvciBwcm9jZXNzaW5nIGluc3RydWN0aW9ucy4KLQkJCQkJCTwvcGFyYT4KLQkJCQkJPC9saXN0aXRlbT4KLQkJCQk8L2l0ZW1pemVkbGlzdD4KLQkJCQk8bm90ZT4KLQkJCQkJPHRpdGxlPkNhbiBJIGNoYW5nZSB0aGUgdmFsdWUgb2YgdmFyaWFibGVzPzwvdGl0bGU+Ci0JCQkJCTxwYXJhPiBDdXJyZW50bHkgdGhlIFhTTFQgRGVidWdnZXIgZG9lcyBub3Qgc3VwcG9ydCBjaGFuZ2luZyB0aGUgdmFsdWVzIG9yIGNvbnRlbnRzIG9mIGEgdmFyaWFibGUuIEFsbCBYU0xUCi0JCQkJCQl2YXJpYWJsZXMgYXJlIHJlYWQgb25seS48L3BhcmE+Ci0JCQkJPC9ub3RlPgotCQkJPC9zZWN0aW9uPgotCQk8L3NlY3Rpb24+Ci0JCTxzZWN0aW9uIGlkPSJYU0xEZWJ1Z1Byb2Nlc3NvclNwZWNpZmljIj4KLQkJCTw/ZGJodG1sIGZpbGVuYW1lPSJsYXVuY2hpbmcvZGVidWdnaW5nX3Byb2Nlc3NvcnMuaHRtbCIgPz4KLQkJCTx0aXRsZT5YU0xUIFByb2Nlc3NvciBTcGVjaWZpYyBTdXBwb3J0PC90aXRsZT4KLQkJCTxwYXJhPiBWYXJpb3VzIFhTTFQgcHJvY2Vzc29ycyBwcm92aWRlIHZhcmlvdXMgbGV2ZWxzIG9mIGRlYnVnZ2luZyBzdXBwb3J0LiBNYW55IGRvIG5vdCBwcm92aWRlIHN1cHBvcnQgZm9yIGRlYnVnZ2luZwotCQkJCW9mIHN0eWxlc2hlZXRzLCBhbmQgdGh1cyBjYW4ndCBiZSB1c2VkIGZvciBkZWJ1Z2dpbmcuIFhTTCBUb29scyBwcm92aWRlcyBiYXNpYyBzdXBwb3J0IGZvciBYYWxhbiwgYW5kIGNhbiBiZSB1c2VkIGFzCi0JCQkJYSBndWlkZSBmb3IgYWRvcHRlcnMgb24gaG93IHRvIGltcGxlbWVudCB0aGVpciBvd24gc3BlY2lmaWMgZGVidWdnaW5nIHN1cHBvcnQgZm9yIG90aGVyIHByb2Nlc3NvcnMuPC9wYXJhPgotCQkJPHNlY3Rpb24gaWQ9IlhTTERlYnVnWGFsYW4iPgotCQkJCTx0aXRsZT5YU0wgRGVidWdnaW5nIHdpdGggWGFsYW48L3RpdGxlPgotCQkJCTxwYXJhPiBYYWxhbiBwcm92aWRlcyBnZW5lcmFsIHN0eWxlc2hlZXQgZXhlY3V0aW9uIGFuZCBldmFsYXRpb24gZnVuY3Rpb25hbGl0eS4gSG93ZXZlciB0aGVyZSBhcmUgYSBmZXcgdGhpbmdzIHRoYXQKLQkJCQkJWGFsYW4gZG9lcyBub3Qgc3VwcG9yIHRoYXQgb3RoZXIgcHJvY2Vzc29ycyBkby48L3BhcmE+Ci0JCQkJPG9yZGVyZWRsaXN0PgotCQkJCQk8dGl0bGU+WGFsYW4gRGVidWdnaW5nIElzc3VlczwvdGl0bGU+Ci0JCQkJCTxsaXN0aXRlbT4KLQkJCQkJCTxwYXJhPgotCQkJCQkJCTxlbXBoYXNpcz5CcmVha3BvaW50czwvZW1waGFzaXM+Ci0JCQkJCQkJLSBYYWxhbiBkb2VzIG5vdCBzdXBwb3J0IHN0b3BwaW5nIGF0IEdsb2JhbCBWYXJpYWJsZXMgb3IgUGFyYW1ldGVycyB3aGVuIGEgZGVidWdnaW5nIHNlc3Npb24gaXMgc3RhcnRlZC4gSXQgd2lsbAotCQkJCQkJCWF1dG9tYXRpY2FsbHkgc3RhcnQgYXQgdGhlIGZpcnN0IHRlbXBsYXRlLiBCcmVhayBwb2ludHMgbXVzdCBiZSBwbGFjZWQgaW4gdGVtcGxhdGVzIHRvIGJlIGhvbm9yZWQuIFRoZSByZWFzb24gZm9yCi0JCQkJCQkJdGhpcyBpcyB0aGF0IFhhbGFuIGxhemlseSBpbml0aWFsaXplcyB0aGUgdmFyaWFibGVzIG9ubHkgd2hlbiB0aGV5IGFyZSBmaXJzdCB1c2VkLgotCQkJCQkJPC9wYXJhPgotCQkJCQk8L2xpc3RpdGVtPgotCQkJCQk8bGlzdGl0ZW0+Ci0JCQkJCQk8cGFyYT4KLQkJCQkJCQk8ZW1waGFzaXM+WFNMVCBUZXh0IGVsZW1lbnRzPC9lbXBoYXNpcz4KLQkJCQkJCQktIFhhbGFuIGRvZXMgbm90IHNlbmQgbm90aWZpY2F0aW9ucyBvZiB4c2w6dGV4dCBlbGVtZW50cy4gVGhlc2UgYXJlIHNraXBwZWQgb3ZlciB3aGVuIGRlYnVnZ2luZy4KLQkJCQkJCTwvcGFyYT4KLQkJCQkJPC9saXN0aXRlbT4KLQkJCQkJPGxpc3RpdGVtPgotCQkJCQkJPHBhcmE+Ci0JCQkJCQkJPGVtcGhhc2lzPkJ1aWx0IEluIFRlbXBsYXRlczwvZW1waGFzaXM+Ci0JCQkJCQkJLSBYYWxhbiBkb2VzIHByb3ZpZGUgbm90aWZpY2F0aW9uIHdoZW4gdGhlIGJ1aWx0IGluIHRlbXBsYXRlcyBhcmUgY2FsbGVkLCBidXQgY3VycmVudGx5IHRoZSBkZWJ1Z2dlciBkb2VzIG5vdAotCQkJCQkJCXN1cHBvcnQgb3IgZGlzcGxheSBzdGVwcGluZyBpbnRvIHRoZXNlIHRlbXBsYXRlcy4KLQkJCQkJCTwvcGFyYT4KLQkJCQkJPC9saXN0aXRlbT4KLQkJCQk8L29yZGVyZWRsaXN0PgotCQkJPC9zZWN0aW9uPgotCQk8L3NlY3Rpb24+Ci0JPC9zZWN0aW9uPgotPC9jaGFwdGVyPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9sZWdhbC54bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svbGVnYWwueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZmU4ODQ1Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9sZWdhbC54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIGNoYXB0ZXIgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjUvL0VOIgotICAgICAgICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuNS9kb2Nib29reC5kdGQiPgotPGNoYXB0ZXI+Ci0JPD9kYmh0bWwgZmlsZW5hbWU9ImxlZ2FsLmh0bWwiID8+Ci0JPHRpdGxlPk5vdGljZXM8L3RpdGxlPgotCTxwYXJhPgotICAgICAgVGhlIG1hdGVyaWFsIGluIHRoaXMgZ3VpZGUgaXMgQ29weXJpZ2h0IChjKSBEb3VnIFNhdGNod2VsbCAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy5jaGFzZXRlY2hub2xvZ3kuY28udWsiPkNoYXNlIFRlY2hub2xvZ3kgTHRkPC91bGluaz4pLCAKLSAgICAgIERhdmlkIENhcnZlciAoPHVsaW5rIHVybD0iaHR0cDovL3d3dy5zdGFyc3RhbmRhcmQub3JnIj5TdGFuZGFyZHMgZm9yIFRlY2hub2xvZ3kgaW4gQXV0b21vdGl2ZSBSZXRhaWw8L3VsaW5rPikKLSAgICAgIGFuZCBvdGhlcnMgMjAwOC4KLSAgICA8L3BhcmE+Ci0gICAgPHBhcmE+Ci0JCVRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIAotCQl0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCAKLQkJPHVsaW5rIHVybD0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC91bGluaz4uCi0gICAgPC9wYXJhPgotCTxwYXJhPgotCQk8dWxpbmsgdXJsPSJhYm91dC5odG1sIj5UZXJtcyBhbmQgY29uZGl0aW9ucyByZWdhcmRpbmcgdGhlIHVzZSBvZiB0aGlzIGd1aWRlLjwvdWxpbms+LgotCTwvcGFyYT4KLTwvY2hhcHRlcj4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMueG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL3ByZWZlcmVuY2VzL3ByZWZlcmVuY2VzLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmYwOTQ2Ni4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2svcHJlZmVyZW5jZXMvcHJlZmVyZW5jZXMueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTk3ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08IURPQ1RZUEUgY2hhcHRlciBQVUJMSUMgIi0vL09BU0lTLy9EVEQgRG9jQm9vayBYTUwgVjQuNS8vRU4iCi0gICAgICAgICAgImh0dHA6Ly93d3cub2FzaXMtb3Blbi5vcmcvZG9jYm9vay94bWwvNC41L2RvY2Jvb2t4LmR0ZCI+Ci08Y2hhcHRlciBpZD0iWFNMUHJlZmVyZW5jZXMiPgotCTw/ZGJodG1sIGZpbGVuYW1lPSJwcmVmZXJlbmNlcy94c2xwcmVmZXJlbmNlcy5odG1sIiA/PgotICAgIDx0aXRsZT5YU0wgVG9vbHMgUHJlZmVyZW5jZXM8L3RpdGxlPgotICAgIDxwYXJhPiBUaGUgWFNMIFByZWZlcmVuY2UgcGFnZXMgaGFzIHNldmVyYWwgc3ViIHNlY3Rpb25zLiBFYWNoIG9mIHRoZXNlIGFsbG93IGZvcgotICAgICAgICBjb25maWd1cmF0aW9uIG9mIHZhcmlvdXMgYXNwZWN0cyBvZiB0aGUgcHJlZmVyZW5jZXMuIEZyb20gdGhlIGNvbnRyb2xsaW5nIG9mIHRoZQotICAgICAgICBkZWZhdWx0IFhTTCBwcm9jZXNzb3IgdG8gYmUgdXNlZCBkdXJpbmcgdHJhbnNmb3JtYXRpb25zLiBUbyBleHRlbmRpbmcgdGhlIGNvbnRlbnQKLSAgICAgICAgYXNzaXN0IHN1cHBvcnQgb2YgdGhlIFhQYXRoIGZ1bmN0aW9ucyBhdmFpbGFibGUgaW4gdGhlIFhNTCBlZGl0b3IuPC9wYXJhPgotICAgIDxmaWd1cmUgaWQ9ImZpZ19YU0xQcmVmZXJlbmNlcyI+Ci0gICAgICAgIDx0aXRsZT5YU0wgVG9vbHMgUHJlZmVyZW5jZXM8L3RpdGxlPgotICAgICAgICA8bWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICA8aW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIiBmaWxlcmVmPSIuLi9pbWFnZXMvcHJlZmVyZW5jZXMveHNscHJlZmVyZW5jZXMucG5nIgotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9IlBORyIvPgotICAgICAgICAgICAgPC9pbWFnZW9iamVjdD4KLSAgICAgICAgPC9tZWRpYW9iamVjdD4KLSAgICA8L2ZpZ3VyZT4KLSAgICA8c2VjdGlvbiBpZD0iWFNMRmVhdHVyZXMiPgotCQk8P2RiaHRtbCBmaWxlbmFtZT0icHJlZmVyZW5jZXMveHNsZmVhdHVyZXMuaHRtbCIgPz4KLSAgICAgICAgPHRpdGxlPkZlYXR1cmVzPC90aXRsZT4KLSAgICAgICAgPHBhcmE+IFRoZSBYU0wgRmVhdHVyZXMgcHJlZmVyZW5jZSBwYWdlIGFsbG93cyBmb3IgdGhlIGNvbmZpZ3VyYXRpb24gb2YgZmVhdHVyZXMKLSAgICAgICAgICAgIGZvciBhIHBhcnRpY3VsYXIgcHJvY2Vzc29yLiBYU0wgVG9vbHMgY29tZXMgd2l0aCBYYWxhbiAyLjcuMCBieSBkZWZhdWx0LgotICAgICAgICAgICAgQWRvcHRlcnMgY2FuIGV4dGVuZCBhbmQgaW5jbHVkZSB0aGVpciBvd24gc3BlY2lmaWMgZmVhdHVyZXMgZm9yIHRoZWlyIG93bgotICAgICAgICAgICAgcHJvY2Vzb29ycy4gQW4gYWRvcHRlciBjb3VsZCBleHRlbmQgdGhlIHRvb2xpbmcgdG8gc3VwcG9ydCBYU0xUIDIuMAotICAgICAgICAgICAgdHJhbnNmb3JtYXRpb25zLCBhbmQgZmVhdHVyZXMgcGFydGljdWxhciB0byB0aGF0IHBhcnNlci48L3BhcmE+Ci0gICAgICAgIDxtZWRpYW9iamVjdD4KLSAgICAgICAgICAgIDxpbWFnZW9iamVjdD4KLSAgICAgICAgICAgICAgICA8aW1hZ2VkYXRhIGFsaWduPSJjZW50ZXIiIGZvcm1hdD0iUE5HIgotICAgICAgICAgICAgICAgICAgICBmaWxlcmVmPSIuLi9pbWFnZXMvcHJlZmVyZW5jZXMveHNsZmVhdHVyZXMucG5nIi8+Ci0gICAgICAgICAgICA8L2ltYWdlb2JqZWN0PgotICAgICAgICA8L21lZGlhb2JqZWN0PgotICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgIFRoZQotICAgICAgICAgICAgPGVtcGhhc2lzIHJvbGU9ImJvbGQiPlByb2Nlc3NvciBUeXBlPC9lbXBoYXNpcz4KLSAgICAgICAgICAgIGFsbG93cyB5b3UgdG8gc2V0IGZlYXR1cmVzIGZvciBhIHNwZWNpZmljIHByb2Nlc3Nvci4gSW4gdGhpcyBjYXNlIHRoaXMgaXMgZm9yCi0gICAgICAgICAgICB0aGUgcHJvY2Vzc29yIHRoYXQgaXMgYmVpbmcgaW5zdGFsbGVkLiBYU0wgVG9vbHMgY29tZXMgd2l0aCBYYWxhbiAyLjcuMCwgYW5kCi0gICAgICAgICAgICBpdCBpcyB0aGUgb25seSBhdmFpbGFibGUgcHJvY2Vzc29yIHR5cGUgYnkgZGVmYXVsdC4KLSAgICAgICAgPC9wYXJhPgotICAgICAgICA8cGFyYT4gVGhlIGZlYXR1cmUgdGFibGUgbGlzdHMgdGhlIGZlYXR1cmVzIHRoYXQgYXJlIHNwZWNpZmljIHRvIHRoZSBwcm9jZXNzb3IKLSAgICAgICAgICAgIHRoYXQgd2FzIHNlbGVjdGVkLiBBcyB5b3Ugc2VsZWN0IGVhY2ggb2YgdGhlIGZlYXR1cmVzLCBpbmZvcm1hdGlvbiByZWdhcmRpbmcKLSAgICAgICAgICAgIHRoYXQgZmVhdHVyZSBhbmQgaXQncyBhYmlsaXRpZXMgaXMgZGlzcGxheWVkIGluIHRoZSBkZXNjcmlwdGlvbiBib3guIEJ5Ci0gICAgICAgICAgICBjbGlja2luZyBpbiB0aGUgdmFsdWUgY29sdW1uLCBuZXh0IHRvIHRoZSBmZWF0dXJlIHlvdSB3YW50IHRvIHNldCB0aGUgdmFsdWUKLSAgICAgICAgICAgIGZvciwgdGhlIHVzZXIgY2FuIHNldCB0aGUgZmVhdHVyZS48L3BhcmE+Ci0gICAgPC9zZWN0aW9uPgotICAgIDxzZWN0aW9uIGlkPSJYU0xQcm9jZXNzb3JzIj4KLQkJPD9kYmh0bWwgZmlsZW5hbWU9InByZWZlcmVuY2VzL3hzbHByb2Nlc3NvcnMuaHRtbCIgPz4KLSAgICAgICAgPHRpdGxlPkluc3RhbGxlZCBQcm9jZXNzb3JzPC90aXRsZT4KLSAgICAgICAgPHBhcmE+IFRoZSBpbnN0YWxsZWQgcHJvY2Vzc29ycyBwYWdlIGxldHMgeW91IHBpY2sgd2hpY2ggb2YgdGhlIGluc3RhbGxlZCBYU0xUCi0gICAgICAgICAgICBwcm9jZXNzb3JzIHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LiBUaGUgZGVmYXVsdCBpcyB0aGUgU3lzdGVtIERlZmF1bHQKLSAgICAgICAgICAgIFByb2Nlc29vciwgYnV0IHlvdSBjYW4gc2VsZWN0IGFueSBvZiB0aGUgYXZhaWxhYmxlIHByb2Nlc3NvcnMgdG8gYmUgdXNlZCBhcwotICAgICAgICAgICAgdGhlIGRlZmF1bHQgcHJvY2Vzc29yLjwvcGFyYT4KLSAgICAgICAgPG1lZGlhb2JqZWN0PgotICAgICAgICAgICAgPGltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgIDxpbWFnZWRhdGEgYWxpZ249ImNlbnRlciIKLSAgICAgICAgICAgICAgICAgICAgZmlsZXJlZj0iLi4vaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbF9JbnN0YWxsZWRQcm9jZXNzb3JzLnBuZyIgZm9ybWF0PSJQTkciLz4KLSAgICAgICAgICAgIDwvaW1hZ2VvYmplY3Q+Ci0gICAgICAgIDwvbWVkaWFvYmplY3Q+Ci0gICAgPC9zZWN0aW9uPgotICAgIDxzZWN0aW9uIGlkPSJYU0xPdXRwdXRQcm9wZXJ0aWVzIj4KLQkJPD9kYmh0bWwgZmlsZW5hbWU9InByZWZlcmVuY2VzL3hzbG91dHB1dHByb3BlcnRpZXMuaHRtbCIgPz4KLSAgICAgICAgPHRpdGxlPk91dHB1dCBQcm9wZXJ0aWVzPC90aXRsZT4KLSAgICAgICAgPHBhcmE+IFRoZSB2YXJpb3VzIHhzbCBwcm9jZXNzb3JzIHN1cHBvcnQgYSB3aWRlIHZhcmlldHkgb2YgcHJvY2Vzc29yIHNwZWNpZmljCi0gICAgICAgICAgICB0d2Vha3MuIEhvd2V2ZXIgdGhlcmUgYXJlIHNldmVyYWwgU3RhbmRhcmQgcHJvY2Vzc29yIGZlYXR1cmVzIHRoYXQgYWxsIFhTTFQKLSAgICAgICAgICAgIHByb2Nlc3NvcnMgc3VwcG9ydC4gVGhlc2Ugb3B0aW9ucyBjYW4gYmUgc2V0IGFuZCB3aWxsIGFjdCBhcyB0aGUgZGVmYXVsdHMgZm9yCi0gICAgICAgICAgICBhbGwgdHJhbnNmb3JtYXRpb25zIHVubGVzcyB0aGV5IGFyZSBzcGVjaWZpY2FsbHkgb3ZlcnJpZGVuIGJ5IHRoZSBzdHlsZXNoZWV0Ci0gICAgICAgICAgICBvciB0aGUgbGF1bmNoIGNvbmZpZ3VyYXRpb24uPC9wYXJhPgotICAgICAgICA8bWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICA8aW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIgotICAgICAgICAgICAgICAgICAgICBmaWxlcmVmPSIuLi9pbWFnZXMvcHJlZmVyZW5jZXMveHNsX291dHB1dHByb3BlcnRpZXMucG5nIiBmb3JtYXQ9IlBORyIvPgotICAgICAgICAgICAgPC9pbWFnZW9iamVjdD4KLSAgICAgICAgPC9tZWRpYW9iamVjdD4KLSAgICAgICAgPHBhcmE+IEluIGFkZGl0aW9uIHRvIHRoZSBTdGFuZGFyZCBPdXRwdXQgUHJvcGVydGllcywgZWFjaCBYU0xUIHByb2Nlc3NvciBjYW4gaGF2ZQotICAgICAgICAgICAgcHJvY2Vzc29ycyBzcGVjaWZpYyBmZWF0dXJlcy48L3BhcmE+Ci0gICAgPC9zZWN0aW9uPgotICAgIDxzZWN0aW9uIGlkPSJYUGF0aFRlbXBsYXRlcyI+Ci0JCTw/ZGJodG1sIGZpbGVuYW1lPSJwcmVmZXJlbmNlcy94cGF0aHRlbXBsYXRlcy5odG1sIiA/PgotICAgICAgICA8dGl0bGU+WFBhdGggVGVtcGxhdGVzPC90aXRsZT4KLSAgICAgICAgPHBhcmE+IFhQYXRoIHRlbXBsYXRlIHByb3Bvc2FsIGlzIHN1cHBvcnRlZCBieSB0aGUgWFNMIFRvb2xpbmcgcHJvamVjdCB0aHJvdWdoIHRoZQotICAgICAgICAgICAgYnVpbHQgaW4gdGVtcGxhdGUgZnVuY3Rpb25hbGl0eSBvZiBlY2xpcHNlLiBVc2VycyBhbmQgQWRvcHRlcnMgY2FuIGFkZCB0aGVpcgotICAgICAgICAgICAgb3duIHNwZWNpZmljIHhwYXRoIGV4dGVuc2lvbnMgZm9yIHByb2Nlc3NvciBzcGVjaWZpYyBleHRlbnNpb25zLiBBbiBleGFtcGxlCi0gICAgICAgICAgICB3b3VsZCBiZSB0byBhZGQgdGhlIEVYU0xUIGV4dGVuc2lvbnMgZm9yIHByb3Bvc2FsIHN1cHBvcnQuPC9wYXJhPgotICAgICAgICA8bWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICA8aW1hZ2VvYmplY3Q+Ci0gICAgICAgICAgICAgICAgPG9iamVjdGluZm8+Ci0gICAgICAgICAgICAgICAgICAgIDx0aXRsZT5YUGF0aCBUZW1wbGF0ZXM8L3RpdGxlPgotICAgICAgICAgICAgICAgIDwvb2JqZWN0aW5mbz4KLSAgICAgICAgICAgICAgICA8aW1hZ2VkYXRhIGFsaWduPSJjZW50ZXIiIGZpbGVyZWY9Ii4uL2ltYWdlcy9wcmVmZXJlbmNlcy9YUGF0aFRlbXBsYXRlcy5wbmciCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdD0iUE5HIi8+Ci0gICAgICAgICAgICA8L2ltYWdlb2JqZWN0PgotICAgICAgICA8L21lZGlhb2JqZWN0PgotICAgICAgICA8cGFyYT4gVGhlIGZvbGxvd2luZyBjb250ZW50IHR5cGVzIGFyZSBhdmFpbGFibGU6PC9wYXJhPgotICAgICAgICA8aXRlbWl6ZWRsaXN0PgotICAgICAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgICAgICA8ZW1waGFzaXMgcm9sZT0iYm9sZCI+YXhpczwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgICAgIC0gYW4gWFBhdGggbmF2aWdhdGlvbiBheGlzIHN0YXRlbWVudC4KLSAgICAgICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgICAgICA8ZW1waGFzaXMgcm9sZT0iYm9sZCI+ZXhzbHQ8L2VtcGhhc2lzPgotICAgICAgICAgICAgICAgICAgICAtIEFuIFhQYXRoIHN0YXRlbWVudCB0aGF0IGlzIGRlZmluZWQgYnkgdGhlCi0gICAgICAgICAgICAgICAgICAgIDx1bGluayB1cmw9Imh0dHA6Ly93d3cuZXhzbHQub3JnLyI+RVhTTFQ8L3VsaW5rPgotICAgICAgICAgICAgICAgICAgICBsaWJyYXJ5LiBYYWxhbiBhbmQgbW9zdCBvdGhlciBwcm9jZXNzb3JzIGhhdmUgYnVpbHQgaW4gc3VwcG9ydCBmb3IgdGhlCi0gICAgICAgICAgICAgICAgICAgIEVYU0xUIGxpYnJhcnkuCi0gICAgICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgICAgICAgPGVtcGhhc2lzIHJvbGU9ImJvbGQiPnhwYXRoPC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICAgICAgLSBSZXByZXNlbnRzIGFuIFhQQVRIIDEuMCBmdW5jdGlvbi4gVGhlc2UgYXJlIGZ1bmN0aW9ucyBhcyBkZWZpbmVkIGJ5Ci0gICAgICAgICAgICAgICAgICAgIHRoZSBYUGF0aCAxLjAgc3BlY2lmaWNhdGlvbi4KLSAgICAgICAgICAgICAgICA8L3BhcmE+Ci0gICAgICAgICAgICA8L2xpc3RpdGVtPgotICAgICAgICAgICAgPGxpc3RpdGVtPgotICAgICAgICAgICAgICAgIDxwYXJhPgotICAgICAgICAgICAgICAgICAgICA8ZW1waGFzaXMgcm9sZT0iYm9sZCI+eHBhdGggMi4wPC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICAgICAgLSBSZXByZXNlbnRzIGFuIFhQYXRoIDIuMCBmdW5jdGlvbi4KLSAgICAgICAgICAgICAgICAgICAgPGVtcGhhc2lzPk5vdGU6IFRoYXQgY3VycmVudGx5IFhTTCBUb29scyBvbmx5IHNoaXBzIHdpdGgKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlcyBkZWZpbmVkIGZvciBYUGF0aCAxLjAgLjwvZW1waGFzaXM+Ci0gICAgICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICAgICAgPC9saXN0aXRlbT4KLSAgICAgICAgICAgIDxsaXN0aXRlbT4KLSAgICAgICAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgICAgICAgICAgPGVtcGhhc2lzIHJvbGU9ImJvbGQiPm9wZXJhdG9yPC9lbXBoYXNpcz4KLSAgICAgICAgICAgICAgICAgICAgLSBBbiB4cGF0aCBsb2dpY2FsIG9wZXJhdG9yIGxpa2UgQU5ELCBPUiwgZXRjLgotICAgICAgICAgICAgICAgIDwvcGFyYT4KLSAgICAgICAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgICAgIDwvaXRlbWl6ZWRsaXN0PgotICAgICAgICA8c2VjdGlvbiBpZD0iWFBhdGhUZW1wbGF0ZU5ldyI+Ci0JCSAgIDw/ZGJodG1sIGZpbGVuYW1lPSJwcmVmZXJlbmNlcy94cGF0aHRlbXBsYXRlbmV3Lmh0bWwiID8+Ci0gICAgICAgICAgICA8dGl0bGU+Q3JlYXRpbmcgTmV3IFRlbXBsYXRlczwvdGl0bGU+Ci0gICAgICAgICAgICA8IS0tIFRPRE86IENyZWF0ZSBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9uIGNyZWF0aW5nIG5ldyB0ZW1wbGF0ZXMtLT4KLSAgICAgICAgICAgIDxwYXJhPiBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCBjcmVhdGluZyBuZXcgdGVtcGxhdGVzLjwvcGFyYT4KLSAgICAgICAgPC9zZWN0aW9uPgotICAgICAgICA8c2VjdGlvbiBpZD0iWFBhdGhJbXBvcnQiPgotCQkgICA8P2RiaHRtbCBmaWxlbmFtZT0icHJlZmVyZW5jZXMveHBhdGhpbXBvcnQuaHRtbCIgPz4KLSAgICAgICAgICAgIDx0aXRsZT5JbXBvcnQgWFBhdGggVGVtcGxhdGVzPC90aXRsZT4KLSAgICAgICAgICAgIDxwYXJhPiBBZGQgZG9jdW1lbnRhdGlvbiBhYm91dCBpbXBvcnRpbmcgbmV3IHRlbXBsYXRlcy48L3BhcmE+Ci0gICAgICAgIDwvc2VjdGlvbj4KLSAgICAgICAgPHNlY3Rpb24gaWQ9IlhQYXRoRXhwb3J0Ij4KLQkJICAgPD9kYmh0bWwgZmlsZW5hbWU9InByZWZlcmVuY2VzL3hwYXRoZXhwb3J0Lmh0bWwiID8+Ci0gICAgICAgICAgICA8dGl0bGU+SW1wb3J0IFhQYXRoIFRlbXBsYXRlczwvdGl0bGU+Ci0gICAgICAgICAgICA8cGFyYT4gQWRkIGRvY3VtZW50YXRpb24gYWJvdXQgaW1wb3J0aW5nIG5ldyB0ZW1wbGF0ZXMuPC9wYXJhPgotICAgICAgICA8L3NlY3Rpb24+Ci0gICAgPC9zZWN0aW9uPgotICAgIDxzZWN0aW9uIGlkPSJwcmVmX1Byb2plY3RWYWxpZGF0aW9uUHJlZmVyZW5jZXMiPgotICAgICAgICA8P2RiaHRtbCBmaWxlbmFtZT0icHJlZmVyZW5jZXMvdmFsaWRhdGlvbi5odG1sIiA/PgotICAgICAgICA8dGl0bGU+UHJvamVjdCBWYWxpZGF0aW9uIFByZWZlcmVuY2VzPC90aXRsZT4KLSAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICBYU0wgVG9vbHMgaGFzIHRoZSBhYmlsaXR5IHRvIHNldCBib3RoIHdvcmtzcGFjZSB3aWRlIHByZWZlcmVuY2VzIGZvcgotICAgICAgICAgICAgdmFsaWRhdGlvbiBhcyB3ZWxsIGFzIHByb2plY3QgbGV2ZWwgcHJlZmVyZW5jZXMuIFRoZXNlIHByZWZlcmVuY2VzLCBhcyBzaG93bgotICAgICAgICAgICAgaW4KLSAgICAgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImZpZ19Qcm9qZWN0TGV2ZWxQcmVmZXJlbmNlcyIvPgotICAgICAgICAgICAgYWxsb3cgZm9yIHRoZSBmaW5lIGdyYWluIGNvbnRyb2wgb2Ygd2hhdCB0aGUgdmFsaWRhdG9yIHdpbGwgY29uc2lkZXIgdG8gYmUgYW4KLSAgICAgICAgICAgIHN5bnRheCBlcnJvci4KLSAgICAgICAgPC9wYXJhPgotICAgICAgICA8ZmlndXJlIGlkPSJmaWdfUHJvamVjdExldmVsUHJlZmVyZW5jZXMiPgotICAgICAgICAgICAgPHRpdGxlPlByb2plY3QgTGV2ZWwgVmFsaWRhdGlvbiBQcmVmZXJlbmNlczwvdGl0bGU+Ci0gICAgICAgICAgICA8bWVkaWFvYmplY3Q+Ci0gICAgICAgICAgICAgICAgPGltYWdlb2JqZWN0PgotICAgICAgICAgICAgICAgICAgICA8aW1hZ2VkYXRhIGFsaWduPSJjZW50ZXIiCi0gICAgICAgICAgICAgICAgICAgICAgICBmaWxlcmVmPSIuLi9pbWFnZXMvcHJlZmVyZW5jZXMvcHJvamVjdExldmVsVmFsaWRhdGlvbi5wbmciIGZvcm1hdD0iUE5HIi8+Ci0gICAgICAgICAgICAgICAgPC9pbWFnZW9iamVjdD4KLSAgICAgICAgICAgIDwvbWVkaWFvYmplY3Q+Ci0gICAgICAgIDwvZmlndXJlPgotICAgICAgICA8cGFyYT4gVGhlc2UgcHJlZmVyZW5jZXMgYXJlIGFjY2Vzc2VkIHZpYSB0aGUgUHJvamVjdHMgcHJvcGVydGllcyBkaWFsb2cuPC9wYXJhPgotICAgIDwvc2VjdGlvbj4KLSAgICA8c2VjdGlvbiBpZD0icHJlZl9TeW50YXhDb2xvcmluZyI+Ci0gICAgICAgIDw/ZGJodG1sIGZpbGVuYW1lPSJwcmVmZXJlbmNlcy9zeW50YXhDb2xvcmluZy5odG1sIiA/PgotICAgICAgICA8dGl0bGU+WFNMVCBTeW50YXggQ29sb3Jpbmc8L3RpdGxlPgotICAgICAgICA8cGFyYT4KLSAgICAgICAgICAgIFhTTCBUb29scyBhbHNvIGhhcyB0aGUgYWJpbGl0eSB0byBzeW50YXggY29sb3IgdGhlIFhTTFQgbmFtZXNwYWNlIGl0ZW1zIGEgZGlmZmVyZW50Ci0gICAgICAgICAgICBjb2xvciB0aGFuIHRoZSByZXN0IG9mIHRoZSBYTUwgc3ludGF4IGluY2x1ZGVkLiAgIFRoZSBkZWZhdWx0IGlzIGZvciBhbGwgWFNMIHN5bnRheCB0byBiZQotICAgICAgICAgICAgPGVtcGhhc2lzIHJvbGU9ImJvbGQiPmJvbGQ8L2VtcGhhc2lzPi4KLSAgICAgICAgPC9wYXJhPgotICAgICAgICA8ZmlndXJlIGlkPSJmaWdfWFNMU3ludGF4Q29sb3JpbmdQcmVmZXJlbmNlIj4KLSAgICAgICAgICAgIDx0aXRsZT5YU0wgVG9vbHMgU3ludGF4IENvbG9yaW5nIFByZWZlcmVuY2U8L3RpdGxlPgotICAgICAgICAgICAgPG1lZGlhb2JqZWN0PgotICAgICAgICAgICAgICAgIDxpbWFnZW9iamVjdD4KLSAgICAgICAgICAgICAgICAgICAgPGltYWdlZGF0YSBhbGlnbj0iY2VudGVyIgotICAgICAgICAgICAgICAgICAgICAgICAgZmlsZXJlZj0iLi4vaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbFN5bnRheENvbG9yaW5nLnBuZyIgZm9ybWF0PSJQTkciLz4KLSAgICAgICAgICAgICAgICA8L2ltYWdlb2JqZWN0PgotICAgICAgICAgICAgPC9tZWRpYW9iamVjdD4KLSAgICAgICAgPC9maWd1cmU+Ci0gICAgICAgIDxub3RlPgotICAgICAgICAgICAgPHRpdGxlPlhNTCBDb2xvcnM8L3RpdGxlPgotICAgICAgICAgICAgPHBhcmE+Ci0gICAgICAgICAgICAgICAgVGhlIGNvbG9yIGZvciBzdGFuZGFyZCBYTUwgaXMgc3RpbGwgaGFuZGxlZCBieSB0aGUgWE1MIEZpbGVzIHN5bnRheCBjb2xvcmluZwotICAgICAgICAgICAgICAgIHByZWZlcmVuY2UgcGFnZS4gICBDaGFuZ2VzIG1hZGUgdGhlcmUgYXJlIHJlZmxlY3RlZCBpbiB0aGUgWFNMIGVkaXRvciBhcyB3ZWxsLgotICAgICAgICAgICAgPC9wYXJhPgotICAgICAgICA8L25vdGU+Ci0gICAgPC9zZWN0aW9uPgotPC9jaGFwdGVyPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay9zYW1wbGVzL3NhbXBsZXMueG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL3NhbXBsZXMvc2FtcGxlcy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxMGNmMWMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9kb2Nib29rL3NhbXBsZXMvc2FtcGxlcy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIGNoYXB0ZXIgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjUvL0VOIgotICAgICAgICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuNS9kb2Nib29reC5kdGQiPgotPGNoYXB0ZXI+Ci0JPD9kYmh0bWwgZmlsZW5hbWU9InNhbXBsZXMvc2FtcGxlcy5odG1sIiA/PgotCTx0aXRsZT5YU0wgVG9vbGluZyBTYW1wbGVzPC90aXRsZT4KLQk8cGFyYT5UaGlzIHNlY3Rpb24gY29udGFpbnMgc2V2ZXJhbCBzYW1wbGVzIGFuZCByZWZlcmVuY2VzIHRvIHNhbXBsZSBwcm9qZWN0cy48L3BhcmE+Ci0JPHNlY3Rpb24gaWQ9IkVjbGlwc2VIZWxwIj4KLQkJPD9kYmh0bWwgZmlsZW5hbWU9InNhbXBsZXMvZWNsaXBzZWhlbHAuaHRtbCIgPz4KLQkJPHRpdGxlPkVjbGlwc2UgSGVscDwvdGl0bGU+Ci0JCTxwYXJhPjwvcGFyYT4KLQkJPHNlY3Rpb24gaWQ9IkRvY2Jvb2tFY2xpcHNlSGVscCI+Ci0JCQk8P2RiaHRtbCBmaWxlbmFtZT0ic2FtcGxlcy9kb2Nib29raGVscC5odG1sIiA/PgotCQkJPHRpdGxlPkNyZWF0aW5nIEVjbGlwc2UgSGVscCB3aXRoIERvY2Jvb2sgYW5kIFhTTCBUb29sczwvdGl0bGU+Ci0JCQk8cGFyYT4KLQkJCQlUaGlzIHR1dG9yaWFsIGFzc3VtZXMgdGhhdCB5b3UgaGF2ZSBrbm93bGVkZ2Ugb2YgRG9jYm9vaywgQU5ULCBhbmQgdGhlCi0JCQkJYWJpbGl0eSB0byBzZXR1cCBBTlQgYnVpbGQgc2NyaXB0cy4KLQkJCTwvcGFyYT4KLQkJCTxwYXJhPgotCQkJCVRvIERvIHdyaXRlIHVwIHRoZSByZXN0IG9mIHRoZSB0dXRvcmlhbC4KLQkJCTwvcGFyYT4KLQkJPC9zZWN0aW9uPgotCQk8c2VjdGlvbiBpZD0iRElUQUVjbGlwc2VIZWxwIj4KLQkJCTw/ZGJodG1sIGZpbGVuYW1lPSJzYW1wbGVzL2RpdGFoZWxwLmh0bWwiID8+Ci0JCQk8dGl0bGU+Q3JlYXRpbmcgRWNsaXBzZSBIZWxwIHdpdGggRElUQSBhbmQgWFNMIFRvb2xzPC90aXRsZT4KLQkJCTxwYXJhPgotCQkJCVRoaXMgdHV0b3JpYWwgYXNzdW1lcyB0aGF0IHlvdSBoYXZlIGtub3dsZWRnZSBvZiBESVRBLCBBTlQsIGFuZCB0aGUKLQkJCQlhYmlsaXR5IHRvIHNldHVwIEFOVCBidWlsZCBzY3JpcHRzLgotCQkJPC9wYXJhPgotCQkJPHBhcmE+Ci0JCQkJVG8gRG8gd3JpdGUgdXAgdGhlIHJlc3Qgb2YgdGhlIHR1dG9yaWFsLgotCQkJPC9wYXJhPgotCQk8L3NlY3Rpb24+Ci0JPC9zZWN0aW9uPgotPC9jaGFwdGVyPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay94c2xoZWxwLmRiayBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvZG9jYm9vay94c2xoZWxwLmRiawpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDA2NmNlOS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2RvY2Jvb2sveHNsaGVscC5kYmsKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIGJvb2sgUFVCTElDICItLy9PQVNJUy8vRFREIERvY0Jvb2sgWE1MIFY0LjUvL0VOIgotICAgICAgICAgICJodHRwOi8vd3d3Lm9hc2lzLW9wZW4ub3JnL2RvY2Jvb2sveG1sLzQuNS9kb2Nib29reC5kdGQiPgotPGJvb2sgaWQ9IlhTTFVzZXIiIHhtbG5zOnhpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hJbmNsdWRlIj4KLSAgPGJvb2tpbmZvPgotICAgICAgPHRpdGxlPlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb248L3RpdGxlPgotICAgICAgPGF1dGhvcj4KLSAgICAgICAgIDxmaXJzdG5hbWU+RGF2aWQ8L2ZpcnN0bmFtZT4KLSAgICAgICAgIDxzdXJuYW1lPkNhcnZlcjwvc3VybmFtZT4KLSAgICAgIDwvYXV0aG9yPgotICAgICAgPGNvcHlyaWdodD4KLSAgICAgICAgIDx5ZWFyPjIwMDg8L3llYXI+Ci0gICAgICAgICA8aG9sZGVyPkVjbGlwc2UgRm91bmRhdGlvbiBhbmQgb3RoZXJzPC9ob2xkZXI+Ci0gICAgICA8L2NvcHlyaWdodD4KLSAgIDwvYm9va2luZm8+Ci0gICA8eGk6aW5jbHVkZSBocmVmPSJjb25jZXB0cy9nZXR0aW5nc3RhcnRlZC54bWwiLz4KLSAgIDx4aTppbmNsdWRlIGhyZWY9ImNvbmNlcHRzL2NvbmNlcHRzLnhtbCIvPgotICAgPHhpOmluY2x1ZGUgaHJlZj0iZWRpdG9yL2VkaXRvci54bWwiLz4KLSAgIDx4aTppbmNsdWRlIGhyZWY9ImxhdW5jaGluZy9sYXVuY2hpbmcueG1sIi8+Ci0gICA8eGk6aW5jbHVkZSBocmVmPSJwcmVmZXJlbmNlcy9wcmVmZXJlbmNlcy54bWwiLz4KLSAgIDx4aTppbmNsdWRlIGhyZWY9ImdlbmVyYWwvZ2VuZXJhbC54bWwiLz4KLSAgIDx4aTppbmNsdWRlIGhyZWY9InNhbXBsZXMvc2FtcGxlcy54bWwiLz4KLSAgIDx4aTppbmNsdWRlIGhyZWY9ImxlZ2FsLnhtbCIvPgotPC9ib29rPgotCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvYWJvdXQuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTk5ZGYzLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPEhUTUw+Ci0KLTxoZWFkPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTwvaGVhZD4KLQotPEJPRFkgbGFuZz0iRU4tVVMiPgotCi08SDM+QWJvdXQgVGhpcyBDb250ZW50PC9IMz4KLQotPFA+SnVuZSwgMjAwODwvUD4KLQotPEgzPkxpY2Vuc2U8L0gzPgotCi08UD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gCi0oIkNvbnRlbnQiKS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSAKLXVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAKLSgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSBhdAotPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC12MTAucGhwIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHA8L0E+LiAKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvUD4KLQotPFA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgCi1Db250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoIlJlZGlzdHJpYnV0b3IiKSBhbmQgZGlmZmVyZW50IAotdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5IGFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gCi1DaGVjayB0aGUgUmVkaXN0cmlidXRvcpJzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaCAKLWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIAotdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQgCi1hbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQKLTxBIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnLzwvQT4uPC9QPgotCi08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvYm9vay5jc3MgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvYm9vay5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUzMGY1YWYuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2Jvb2suY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMjE0ICswLDAgQEAKLXAuQ29kZSB7Ci0JZGlzcGxheTogYmxvY2s7Ci0JdGV4dC1hbGlnbjogbGVmdDsKLQl0ZXh0LWluZGVudDogMC4wMHB0OwotCW1hcmdpbi10b3A6IDAuMDAwMDAwcHQ7Ci0JbWFyZ2luLWJvdHRvbTogMC4wMDAwMDBwdDsKLQltYXJnaW4tcmlnaHQ6IDAuMDAwMDAwcHQ7Ci0JbWFyZ2luLWxlZnQ6IDE1cHQ7Ci0JZm9udC13ZWlnaHQ6IG5vcm1hbDsKLQlmb250LXN0eWxlOiBub3JtYWw7Ci0JY29sb3I6ICM0NDQ0Q0M7Ci0JdGV4dC1kZWNvcmF0aW9uOiBub25lOwotCXZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsKLQl0ZXh0LXRyYW5zZm9ybTogbm9uZTsKLQlmb250LWZhbWlseTogIkNvdXJpZXIgTmV3IiwgQ291cmllciwgbW9ub3NwYWNlOwotfQotCi1INi5DYXB0aW9uRmlnQ29sdW1uIHsKLQlkaXNwbGF5OiBibG9jazsKLQl0ZXh0LWFsaWduOiBsZWZ0OwotCXRleHQtaW5kZW50OiAwLjAwMDAwMHB0OwotCW1hcmdpbi10b3A6IDMuMDAwMDAwcHQ7Ci0JbWFyZ2luLWJvdHRvbTogMTEuMDAwMDAwcHQ7Ci0JbWFyZ2luLXJpZ2h0OiAwLjAwMDAwMHB0OwotCW1hcmdpbi1sZWZ0OiAwLjAwMDAwMHB0OwotCWZvbnQtc2l6ZTogNzUlOwotCWZvbnQtd2VpZ2h0OiBib2xkOwotCWZvbnQtc3R5bGU6IEl0YWxpYzsKLQljb2xvcjogIzAwMDAwMDsKLQl0ZXh0LWRlY29yYXRpb246IG5vbmU7Ci0JdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOwotCXRleHQtdHJhbnNmb3JtOiBub25lOwotfQotCi1wLk5vdGUgewotCWRpc3BsYXk6IGJsb2NrOwotCXRleHQtYWxpZ246IGxlZnQ7Ci0JdGV4dC1pbmRlbnQ6IDBwdDsKLQltYXJnaW4tdG9wOiAxOS41MDAwMDBwdDsKLQltYXJnaW4tYm90dG9tOiAxOS41MDAwMDBwdDsKLQltYXJnaW4tcmlnaHQ6IDAuMDAwMDAwcHQ7Ci0JbWFyZ2luLWxlZnQ6IDMwcHQ7Ci0JZm9udC1zaXplOiAxMTAlOwotCWZvbnQtd2VpZ2h0OiBub3JtYWw7Ci0JZm9udC1zdHlsZTogSXRhbGljOwotCWNvbG9yOiAjMDAwMDAwOwotCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKLQl2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7Ci0JdGV4dC10cmFuc2Zvcm06IG5vbmU7Ci19Ci0KLUVNLlVJTGFiZWwgewotCWZvbnQtd2VpZ2h0OiBCb2xkOwotCWZvbnQtc3R5bGU6IG5vcm1hbDsKLQl0ZXh0LWRlY29yYXRpb246IG5vbmU7Ci0JdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOwotCXRleHQtdHJhbnNmb3JtOiBub25lOwotfQotCi1FTS5Db2RlTmFtZSB7Ci0JZm9udC13ZWlnaHQ6IEJvbGQ7Ci0JZm9udC1zdHlsZTogbm9ybWFsOwotCXRleHQtZGVjb3JhdGlvbjogbm9uZTsKLQl2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7Ci0JdGV4dC10cmFuc2Zvcm06IG5vbmU7Ci0JZm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIENvdXJpZXIsIG1vbm9zcGFjZTsKLX0KLQotVUwuTmF2TGlzdCB7Ci0JbWFyZ2luLWxlZnQ6IDEuNWVtOwotCXBhZGRpbmctbGVmdDogMHB4OwotCWxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKLX0KLQotYm9keSxodG1sIHsKLQlib3JkZXI6IDBweAotfQotCi0vKiBmb2xsb3dpbmcgZm9udCBmYWNlIGRlY2xhcmF0aW9ucyBuZWVkIHRvIGJlIHJlbW92ZWQgZm9yIERCQ1MgKi8KLWJvZHksaDEsaDIsaDMsaDQsaDUsaDYscCx0YWJsZSx0ZCxjYXB0aW9uLHRoLHVsLG9sLGRsLGxpLGRkLGR0IHsKLQlmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKLQljb2xvcjogIzAwMDAwMAotfQotCi1wcmUsY29kZSB7Ci0JZm9udC1mYW1pbHk6ICJDb3VyaWVyIE5ldyIsIENvdXJpZXIsIG1vbm9zcGFjZTsKLX0KLQotLyogZW5kIGZvbnQgZmFjZSBkZWNsYXJhdGlvbnMgKi8KLUBtZWRpYSBwcmludCB7Ci0JaHRtbCB7Ci0JCWZvbnQtc2l6ZTogMTJwdAotCX0KLX0KLQotYm9keSB7Ci0JZm9udC1zaXplOiA4MyU7Ci0JYmFja2dyb3VuZDogI0ZGRkZGRjsKLQltYXJnaW4tYm90dG9tOiAxZW0KLX0KLQotaDEgewotCWZvbnQtc2l6ZTogMTgwJTsKLQltYXJnaW4tdG9wOiA1cHg7Ci0JbWFyZ2luLWJvdHRvbTogMXB4Ci19Ci0KLWgyIHsKLQlmb250LXNpemU6IDE0MCU7Ci0JbWFyZ2luLXRvcDogMjVweDsKLQltYXJnaW4tYm90dG9tOiAzcHgKLX0KLQotaDMgewotCWZvbnQtc2l6ZTogMTEwJTsKLQltYXJnaW4tdG9wOiAyMHB4OwotCW1hcmdpbi1ib3R0b206IDNweAotfQotCi1oNCB7Ci0JZm9udC1zaXplOiAxMDAlOwotCW1hcmdpbi10b3A6IDIwcHg7Ci0JbWFyZ2luLWJvdHRvbTogM3B4OwotCWZvbnQtc3R5bGU6IGl0YWxpYwotfQotCi1wIHsKLQltYXJnaW4tdG9wOiAxMHB4OwotCW1hcmdpbi1ib3R0b206IDEwcHgKLX0KLQotcHJlIHsKLQlmb250LXNpemU6IDkzJTsKLQltYXJnaW4tbGVmdDogNjsKLQljb2xvcjogIzQ0NDRDQwotfQotCi1jb2RlIHsKLQlmb250LXNpemU6IDkzJTsKLX0KLQotdGFibGUgewotCWZvbnQtc2l6ZTogMTAwJQotfSAgLyogbmVlZGVkIGZvciBxdWlya3MgbW9kZSAqLwotYTpsaW5rIHsKLQljb2xvcjogIzAwMDBGRgotfQotCi1hOmhvdmVyIHsKLQljb2xvcjogIzAwMDA4MAotfQotCi1hOnZpc2l0ZWQgewotCXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lCi19Ci0KLXVsIHsKLQltYXJnaW4tdG9wOiAxMHB4OwotCW1hcmdpbi1ib3R0b206IDEwcHg7Ci19Ci0KLWxpIHsKLQltYXJnaW4tdG9wOiA1cHg7Ci0JbWFyZ2luLWJvdHRvbTogNXB4OwotfQotCi1saSBwIHsKLQltYXJnaW4tdG9wOiA1cHg7Ci0JbWFyZ2luLWJvdHRvbTogNXB4OwotfQotCi1vbCB7Ci0JbWFyZ2luLXRvcDogMTBweDsKLQltYXJnaW4tYm90dG9tOiAxMHB4OwotfQotCi1kbCB7Ci0JbWFyZ2luLXRvcDogMTBweDsKLQltYXJnaW4tYm90dG9tOiAxMHB4OwotfQotCi1kdCB7Ci0JbWFyZ2luLXRvcDogNXB4OwotCW1hcmdpbi1ib3R0b206IDVweDsKLQlmb250LXdlaWdodDogYm9sZDsKLX0KLQotZGQgewotCW1hcmdpbi10b3A6IDVweDsKLQltYXJnaW4tYm90dG9tOiA1cHg7Ci19Ci0KLXN0cm9uZyB7Ci0JZm9udC13ZWlnaHQ6IGJvbGQKLX0KLQotZW0gewotCWZvbnQtc3R5bGU6IGl0YWxpYwotfQotCi12YXIgewotCWZvbnQtc3R5bGU6IGl0YWxpYwotfQotCi1kaXYucmV2aXNpb24gewotCWJvcmRlci1sZWZ0LXN0eWxlOiBzb2xpZDsKLQlib3JkZXItbGVmdC13aWR0aDogdGhpbjsKLQlib3JkZXItbGVmdC1jb2xvcjogIzdCNjhFRTsKLQlwYWRkaW5nLWxlZnQ6IDUKLX0KLQotdGggewotCWZvbnQtd2VpZ2h0OiBib2xkCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2NvbmNlcHRzL2NvbmNlcHRzLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvY29uY2VwdHMvY29uY2VwdHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzZkMjU5My4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvY29uY2VwdHMvY29uY2VwdHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQxOCArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPlhTTFQgQ29uY2VwdHM8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSIuLi9pbnRyb2R1Y3Rpb24vZ2V0dGluZ3N0YXJ0ZWQuaHRtbCIgdGl0bGU9IkdldHRpbmcgU3RhcnRlZCI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJyZXNvdXJjZXMuaHRtbCIgdGl0bGU9IlJlc291cmNlcyI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJjaGFwdGVyIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iTjEwMDE5Ij48L2E+WFNMVCBDb25jZXB0czwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idG9jIj48cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iY29uY2VwdHMuaHRtbCNSZXN1Y2luZ1hTTFQiPlJlc2N1aW5nIFhTTFQgRnJvbSBOaWNoZSBTdGF0dXM8L2E+PC9zcGFuPjx1bD48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImNvbmNlcHRzLmh0bWwjTjEwMDM0Ij5UaGUgUHJvYmxlbTwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImNvbmNlcHRzLmh0bWwjTjEwMDVBIj5UaGUgU29sdXRpb248L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJjb25jZXB0cy5odG1sI04xMDA4MSI+UXVlcmllczwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iY29uY2VwdHMuaHRtbCNOMTAwOEYiPnhzbDpmb3ItZWFjaDwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImNvbmNlcHRzLmh0bWwjTjEwMDlCIj54c2w6aWY8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJjb25jZXB0cy5odG1sI04xMDBBNSI+eHNsOmNob29zZTwvYT48L3NwYW4+PC9saT48L3VsPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJjb25jZXB0cy5odG1sI04xMDBBRiI+Q29uY2x1c2lvbjwvYT48L3NwYW4+PC9saT48L3VsPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJyZXNvdXJjZXMuaHRtbCI+UmVzb3VyY2VzPC9hPjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PHA+Ci0gICAgICAgICAKLSAgIDwvcD48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJSZXN1Y2luZ1hTTFQiPjwvYT5SZXNjdWluZyBYU0xUIEZyb20gTmljaGUgU3RhdHVzPC9oMj48L2Rpdj48ZGl2PjxoMyBjbGFzcz0ic3VidGl0bGUiPkEgR2VudGxlIEludHJvZHVjdGlvbiB0byBYU0xUIHRocm91Z2ggSFRNTCBUZW1wbGF0ZXM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im5vdGUiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47IG1hcmdpbi1yaWdodDogMC41aW47Ij48aDMgY2xhc3M9InRpdGxlIj5Ob3RlPC9oMz48cD4KLSAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPgotICAgICAgICAgICAgRWRpdG9ycyBOb3RlOiBUaGlzIG9yaWdpbmFsbHkgYXBwZWFyZWQgYXQKLSAgICAgICAgICAgIDxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy54ZnJvbnQuY29tL3Jlc2N1aW5nLXhzbHQuaHRtbCIgdGFyZ2V0PSJfdG9wIj5YRnJvbnQuY29tPC9hPgotICAgICAgICAgICAgLCBhbmQgaXMgcmVwdWJsaXNoZWQgaGVyZSB3aXRoIHBlcm1pc3Npb24uIFRoZSBhcnRpY2xlIGlzIHdyaXR0ZW4gYnkgRGF2aWQgSmFjb2JzLgotICAgICAgICAgPC9lbT48L3NwYW4+Ci0gICAgICA8L3A+PC9kaXY+PGRpdiBjbGFzcz0iYWJzdHJhY3QiPjxwIGNsYXNzPSJ0aXRsZSI+PGI+QWJzdHJhY3Q8L2I+PC9wPjxwPgotICAgICAgICAgWFNMVCBpcyBvbmUgb2YgdGhlIG1vc3QgZXhjaXRpbmcgdGVjaG5vbG9naWVzIHRvIGNvbWUgb3V0IG9mIHRoZSBYTUwgZmFtaWx5LiBVbmZvcnR1bmF0ZWx5LCBpdHMgaW5jcmVkaWJsZQotICAgICAgICAgcG93ZXIgYW5kIGFzc29jaWF0ZWQgY29tcGxleGl0eSBjYW4gYmUgb3ZlcndoZWxtaW5nIHRvIG5ldyB1c2VycyBwcmV2ZW50aW5nIG1hbnkgZnJvbSBleHBlcmltZW50aW5nIHdpdGggaXQgb3IKLSAgICAgICAgIGNhdXNpbmcgdGhlbSB0byBxdWlja2x5IGdpdmUgdXAgaW4gZGlzZ3VzdC4gSW4gZmFjdCwgdW5sZXNzIHRoZSBtZXRob2Qgb2YgdGVhY2hpbmcgYW5kIHRoZSBjb21tb24gc3R5bGUgb2YgdXNlCi0gICAgICAgICBmb3IgWFNMVCBpcyByYWRpY2FsbHkgY2hhbmdlZCB0byBtYWtlIGl0IG1vcmUgYWNjZXNzaWJsZSwgWFNMVCB3aWxsIGJlIHJlbGVnYXRlZCB0byBuaWNoZSBzdGF0dXMgbGlrZSBTR01MIGFuZAotICAgICAgICAgb3RoZXIgcG93ZXJmdWwgdGVjaG5vbG9naWVzLgotICAgICAgPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJOMTAwMzQiPjwvYT5UaGUgUHJvYmxlbTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0gICAgICAgICBUaGUgMTk5MCZyc3F1bztzIHNhdyBhbiBpbmNyZWRpYmxlIHByb2xpZmVyYXRpb24gb2YgbmV3IHdlYiByZWxhdGVkIGxhbmd1YWdlcy4gTG9va2luZyBiYWNrIHdlIGNhbiBzZWUgd2hhdAotICAgICAgICAgZmVhdHVyZXMgc2VwYXJhdGVkIHRoZSB3aW5uZXJzIGFuZCBsb3NlcnMuIFRoZSBiaWdnZXN0IGtleSBoYXMgYmVlbiBoYXZpbmcgYSB2ZXJ5IGxvdyBiYXJyaWVyIHRvIGVudHJ5LiBNYW55Ci0gICAgICAgICBsYW5ndWFnZXMgYWNjb21wbGlzaGVkIHRoaXMgYnkgZm9sbG93aW5nIHRoZSBmb2xsb3dpbmcgcnVsZXMuCi0gICAgICA8L3A+PGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgdHlwZT0iZGlzYyI+PGxpPjxwPgotICAgICAgICAgICAgICAgTGV2ZXJhZ2UgYXMgbXVjaCBleGlzdGluZyBrbm93bGVkZ2UgYXMgcG9zc2libGUuCi0gICAgICAgICAgICA8L3A+PC9saT48bGk+PHA+Ci0gICAgICAgICAgICAgICBNYWtlIGl0IGVhc3kgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCAiaGVsbG8gd29ybGQiIHN0eWxlIGV4YW1wbGUuCi0gICAgICAgICAgICA8L3A+PC9saT48bGk+PHA+Ci0gICAgICAgICAgICAgICBUaGUgbW9zdCBjb21tb24gYW5kIHVzZWZ1bCBsYW5ndWFnZSBjb25zdHJ1Y3RzIHNob3VsZCBiZSBlYXNpbHkgY29udmV5ZWQgd2l0aCBhIGZldyBzbWFsbCBleGFtcGxlcy4KLSAgICAgICAgICAgIDwvcD48L2xpPjxsaT48cD4KLSAgICAgICAgICAgICAgIENvbXBsZXggcHJvZ3JhbW1pbmcgY29uc3RydWN0cyBzaG91bGQgb25seSBiZSByZXF1aXJlZCB3aGVuIHdoYXQgaXMgdHJ5aW5nIHRvIGJlIGFjY29tcGxpc2hlZCBpcwotICAgICAgICAgICAgICAgY29tcGxleC4gICAgICAgICAgICAKLSAgICAgICAgICAgIDwvcD48L2xpPjwvdWw+PC9kaXY+PHA+Ci0gICAgICAgICBGcm9tIHRoZXNlIHJ1bGVzIHdlIGNhbiBzZWUgd2h5IGVtYmVkZGVkIHdlYiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGxpa2UgQWN0aXZlIFNlcnZlciBQYWdlcyAoQVNQcyksIENvbGQKLSAgICAgICAgIEZ1c2lvbiwgUEhQIGFuZAotICAgICAgICAgSmF2YSBTZXJ2ZXIgUGFnZXMgKEpTUHMpIGFyZSBzbyBwb3B1bGFyLiBUaGV5IGFsbCBsZXZlcmFnZSBhIHVzZXImcnNxdW87cyBrbm93bGVkZ2Ugb2YgSFRNTC4gVGhleSBhbHNvCi0gICAgICAgICBhbGxvdyB0aGUKLSAgICAgICAgIG1pbmltdW0gYW1vdW50IG9mIHNjcmlwdGluZyB0byBiZSBhZGRlZCB0byBhY2NvbXBsaXNoIHRoZSBkeW5hbWljIGZlYXR1cmUgYSBkZXZlbG9wZXIgaXMgbG9va2luZyBmb3IuCi0gICAgICAgICBUaGlzIGhhcwotICAgICAgICAgYWxsb3dlZCBudW1lcm91cyB3ZWIgZGV2ZWxvcGVycyB0byBzdGFydCBvZmYgd2l0aCB2ZXJ5IHNtYWxsIHByb2plY3RzIGFuZCB0aGVuIHRocm91Z2ggY29udGludW9zCi0gICAgICAgICBlbmhhbmNlbWVudAotICAgICAgICAgYW5kIGxlYXJuaW5nLCBmaW5kIHRoZW1zZWx2ZXMgdXNpbmcgdGhlIGZ1bGwgcG93ZXIgb2YgYSBjb21wbGV4IHByb2dyYW1taW5nIGxhbmd1YWdlLiBGdXJ0aGVybW9yZSwKLSAgICAgICAgIGJlY2F1c2Ugb2YKLSAgICAgICAgIHRoZSB2ZXJ5IGluY3JlbWVudGFsIG5hdHVyZSBvZiB0aGF0IGxlYXJuaW5nIHRoZSBkZXZlbG9wZXIgd2FzIG5ldmVyIHNjYXJlZCBvZmYuICAgICAgICAgCi0gICAgICA8L3A+PHA+Ci0gICAgICAgICBIVE1MIGhhcyBhbHNvIGZvc3RlcmVkIHRoZSB0ZWNobmlxdWUgb2YgbGVhcm5pbmcgYnkgZXhhbXBsZS4gV2hlbiBhIHdlYiBhdXRob3Igc2VlcyBhbm90aGVyIHNpdGUgd2l0aCBhCi0gICAgICAgICBmZWF0dXJlIHRoZXkKLSAgICAgICAgIGxpa2UsIHRoZXkgaW1tZWRpYXRlbHkgYnJpbmcgdXAgdGhlIHNvdXJjZSB0byBzZWUgaG93IGl0IHdhcyBpbXBsZW1lbnRlZC4gSW4gdGhpcyB3YXkgbWFueSB3ZWIKLSAgICAgICAgIGF1dGhvcnMgd2VyZQotICAgICAgICAgYWJsZSB0byBsZWFybiBjb21wbGV4IEhUTUwgdHJpY2tzIHdpdGggbm8gZm9ybWFsIHRyYWluaW5nLiBXaGlsZSBzZXJ2ZXItc2lkZSBzY3JpcHRzIGFyZSBub3QgYXMKLSAgICAgICAgIGVhc3kgdG8gY29tZQotICAgICAgICAgYnksIHRoZXJlIGFyZSBzdGlsbCBudW1lcm91cyBzaXRlcyB0aGF0IGhvdXNlIHRob3VzYW5kcyBvZiBleGFtcGxlIHNjcmlwdHMgZm9yIGEgYmxvc3NvbWluZwotICAgICAgICAgZGV2ZWxvcGVyIHRvCi0gICAgICAgICBleGFtaW5lLiAgICAgICAgIAotICAgICAgPC9wPjxwPgotICAgICAgICAgVHJhZGl0aW9uYWxseSBYU0xUIGhhcyBiZWVuIHByZXNlbnRlZCBhcyBhIHByb2dyYW1taW5nIGxhbmd1YWdlIGZvciB0cmFuc2xhdGluZyBYTUwgZG9jdW1lbnRzIGludG8gYW5vdGhlcgotICAgICAgICAgZm9ybWF0LCBvZnRlbiBmb3IgcHJlc2VudGF0aW9uLiBUaGlzIGZyYW1lcyB0aGUgcHJvYmxlbSwgc3VjaCB0aGF0IGZvciBlYWNoIGVsZW1lbnQsIHRoZSBwcm9ncmFtbWVyIGhhcyB0aGUKLSAgICAgICAgIHRhc2sgb2YgZmlndXJpbmcgb3V0IGhvdyB0aGF0IGVsZW1lbnQgbmVlZHMgdG8gYmUgdHJhbnNsYXRlZC4gQXMgbG9uZyBhcyB0aGVyZSBhcmUgb25lIHRvIG9uZSBtYXBwaW5ncyBvciBvbmUKLSAgICAgICAgIHRvIHplcm8gbWFwcGluZ3MgdGhpcyBpcyBzdHJhaWdodGZvcndhcmQuIEZvciBleGFtcGxlLCBpZiBldmVyeSBvY2N1cnJlbmNlIG9mIGEgCi0gICAgICAgICAmbHQ7bmFtZSZndDsKLSAgICAgICAgIGVsZW1lbnQgaXMgZ29pbmcgdG8KLSAgICAgICAgIGJlY29tZSBhbiBIVE1MIGhlYWRlci4gSXQgaXMgYSBzaW1wbGUgbWF0dGVyIHRvIHdyaXRlIGEgbWF0Y2hpbmcgdGVtcGxhdGUgdG8gYWNjb21wbGlzaAotICAgICAgICAgdGhpcy4KLSAgICAgIDwvcD48YSBuYW1lPSJwbF9OYW1lVGVtcGxhdGUiPjwvYT48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Ci0KLSZsdDt4c2w6dGVtcGxhdGUgbWF0Y2g9Im5hbWUiJmd0OwotICAmbHQ7aDEmZ3Q7Jmx0O3hzbDphcHBseS10ZW1wbGF0ZXMvJmd0OyZsdDsvaDEmZ3Q7Ci0mbHQ7L3hzbDp0ZW1wbGF0ZSZndDsKLSAgICAgIAotICAgICAgPC9wcmU+PHA+Ci0gICAgICAgICBIb3dldmVyIHdoZW4gYWRkaW5nIG9uZSB0byBtYW55IG1hcHBpbmdzIChpLmUuIHdoZW4gYW4gZWxlbWVudCZyc3F1bztzIGNvbnRlbnRzIHdpbGwgYXBwZWFyIG11bHRpcGxlIHRpbWVzIGluIHRoZQotICAgICAgICAgdGFyZ2V0IGRvY3VtZW50IHdpdGggZGlmZmVyZW50IGZvcm1hdHRpbmcpLCBrZWVwaW5nIHRyYWNrIG9mIGFsbCB0aGUgcmVsYXRpb25zaGlwcyBxdWlja2x5IGdyb3dzIGluIGNvbXBsZXhpdHkKLSAgICAgICAgIGFuZCBiZWNvbWVzIGNvbmZ1c2luZy4gRm9yIGV4YW1wbGUsIGlmLCBhZnRlciB3cml0aW5nIHRoZSBwcmV2aW91cyB0ZW1wbGF0ZSwgdGhlIHByb2dyYW1tZXIgZGlzY292ZXJzIHRoYXQgdGhlCi0gICAgICAgICBuYW1lIGFsc28gbmVlZHMgdG8gYmUgcGxhY2VkIGluIHRoZSB0aXRsZSB0aGUgcHJvZ3JhbW1lciBtaWdodCBhZGQgdGhlIHRlbXBsYXRlCi0gICAgICA8L3A+PGEgbmFtZT0icGxfdmFsdWVPZiI+PC9hPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KLQotJmx0O3hzbDp0ZW1wbGF0ZSBtYXRjaD0iLyImZ3Q7Ci0gICZsdDt0aXRsZSZndDsmbHQ7eHNsOnZhbHVlLW9mIHNlbGVjdD0ibmFtZSIvJmd0OyZsdDsvdGl0bGUmZ3Q7Ci0mbHQ7L3hzbDp0ZW1wbGF0ZSZndDsKLSAgICAgIAotICAgICAgPC9wcmU+PHA+Ci0gICAgICAgICBOb3RpY2UgdGhlIHVzZSBvZiB0aGUgJmx0O3hzbDp2YWx1ZS1vZiZndDsKLSAgICAgICAgIGZ1bmN0aW9uIGluIHRoaXMgdGVtcGxhdGUgYmVjYXVzZSB1c2luZyAmbHQ7YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ibmFtZSImZ3Q7Ci0gICAgICAgICB3b3VsZCBoYXZlIGNhdXNlZCBhIHRyaWdnZXJpbmcgb2YgdGhlIHByZXZpb3VzIHRlbXBsYXRlIGFkZGluZyB1bmRlc2lyZWQgaGVhZGVyIHRhZ3MgdG8gbXkgY29udGVudC4gVGhpcyBtZWFucwotICAgICAgICAgYmVmb3JlIGFkZGluZyBhIHRyYW5zbGF0aW9uIHRvIGFuIGVsZW1lbnQgdGhlIHByb2dyYW1tZXIgbXVzdCBmaXJzdCBiZSBhd2FyZSBvZiBhbGwgdGhlIGV4aXN0aW5nIHRyYW5zbGF0aW9ucwotICAgICAgICAgKHVnaCEpLiBPZiBjb3Vyc2UgaWYgdGhlIHByb2dyYW1tZXIgYmVjYW1lIGF3YXJlIG9mIHRoZQotICAgICAgICAgJmx0O3RpdGxlJmd0OwotICAgICAgICAgcmVxdWlyZW1lbnQgZmlyc3QsIHRoZSBjb250ZW50cyBvZiB0aGVzZSB0ZW1wbGF0ZXMgY291bGQgaGF2ZSBiZWVuIHJldmVyc2VkLiBPbmUgY2FuIHF1aWNrbHkgc2VlIGhvdwotICAgICAgICAgdGhlCi0gICAgICAgICBhcmJpdHJhcnkgZGVjaXNpb25zIG9mIGRldmVsb3BtZW50IGFuZCBkaXNjb3Zlcnkgb2YgcmVxdWlyZW1lbnRzIGNhbiBsZWFkIHRvIGEgc2V0IG9mIHRlbXBsYXRlcyB0aGF0IGFyZQotICAgICAgICAgbm8KLSAgICAgICAgIGxvbmdlciBpbnR1aXRpdmUuCi0gICAgICA8L3A+PHA+Ci0gICAgICAgICBBcyBhIHByb2dyYW1tZXIgd2l0aCBtb3JlIHRoYW4gMjAgeWVhcnMgZXhwZXJpZW5jZSB3aXRoIG92ZXIgYSBkb3plbiBsYW5ndWFnZXMsIFhTTFQgdGVtcGxhdGVzIGFuZCBkZWZhdWx0Ci0gICAgICAgICBydWxlcyB3ZXJlCi0gICAgICAgICBub3Qgb2J2aW91cyB0byBtZS4gT3ZlciB0aGUgcGFzdCB5ZWFyIG9yIHR3byBJIGhhZCBsb29rZWQgYXQgbnVtZXJvdXMgZXhhbXBsZXMgdHJ5aW5nIHRvIGRpc2Nlcm4gaG93Ci0gICAgICAgICB0aGV5Ci0gICAgICAgICB3b3JrZWQuIFdoaWxlIEkgY291bGQgdW5kZXJzdGFuZCB0aGUgZ2VuZXJhbCBnaXN0IG9mIHdoYXQgd2FzIG9jY3VycmluZywgdGhlcmUgd2FzIHRvbyBtdWNoIGltcGxpZWQKLSAgICAgICAgIGJlaGF2aW9yCi0gICAgICAgICB0aGF0IEkgZGlkIG5vdCBwaWNrIHVwLiBJdCB3YXMgbm90IHVudGlsIGdvaW5nIHRocm91Z2ggZm9ybWFsIFhTTFQgdHJhaW5pbmcgdGhhdCBJIGZ1bGx5IHVuZGVyc3Rvb2QgaG93Ci0gICAgICAgICBYU0xUCi0gICAgICAgICB3b3JrZWQuIENsZWFybHksIGlmIHRoZSBiYXJyaWVyIHRvIGVudHJ5IGlzIHRoYXQgaGlnaCBmb3IgYW4gZXhwZXJpZW5jZWQgcHJvZ3JhbW1lciwgdGhlIGF2ZXJhZ2Ugd2ViCi0gICAgICAgICBkZXZlbG9wZXIKLSAgICAgICAgIHdhcyBub3QgZ29pbmcgdG8gZmluZCB0aGlzIHRlY2hub2xvZ3kgdmVyeSB1c2VmdWwuICAgICAgICAgIAotICAgICAgPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJOMTAwNUEiPjwvYT5UaGUgU29sdXRpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwPgotICAgICAgICAgU28gaG93IGRvIHdlIHNvbHZlIHRoaXMgcHJvYmxlbSBhbmQgaGVscCBkZWxpdmVyIFhTTFQmcnNxdW87cyBwcm9taXNlIHRvIHRoZSBtYXNzZXM/IEZvciBYU0xUIHRvIGJlIHN1Y2Nlc3NmdWwgaXQKLSAgICAgICAgIG11c3QgYmUKLSAgICAgICAgIHByZXNlbnRlZCBhbmQgdXNlZCBpbiBhIHdheSB0aGF0IGFkb3B0cyB0aG9zZSBhdHRyaWJ1dGVzIGRpc2N1c3NlZCBlYXJsaWVyIChyZXVzZSBvZiBrbm93bGVkZ2UsIGZhc3QKLSAgICAgICAgIHN0YXJ0LCBhbmQKLSAgICAgICAgIGdyYWR1YWxpc20pLiBUaGlzIHR1dG9yaWFsIHdpbGwgYXR0ZW1wdCB0byBlYXNlIFhTTFQmcnNxdW87cyBpbnRyb2R1Y3Rpb24gYnkgZm9jdXNpbmcgb24gdGhlc2UgYXR0cmlidXRlcy4KLSAgICAgICAgIEZpcnN0LCBpdAotICAgICAgICAgaXMgb25seSBnb2luZyB0byBmb2N1cyBvbiB0aGUgZ2VuZXJhdGlvbiBvZiBIVE1MIGRvY3VtZW50cyBhbmQgdXNlcnMgd2hvIGFyZSBmYW1pbGlhciB3aXRoIEhUTUwuIElmCi0gICAgICAgICB5b3VyIGdvYWwKLSAgICAgICAgIGlzIHRvIGltbWVkaWF0ZWx5IHN0YXJ0IHRyYW5zZm9ybWluZyBvbmUgWE1MIGRvY3VtZW50IGludG8gYW5vdGhlciBYTUwgZG9jdW1lbnQgdGhpcyB0dXRvcmlhbCBpcyBub3QKLSAgICAgICAgIGZvciB5b3UuCi0gICAgICA8L3A+PHA+Ci0gICAgICAgICBUaGUgc2Vjb25kIGlzIHRvIHJlZnJhbWUgdGhlIHByb2JsZW0gc28gdGhlIFhTTFQgc29sdXRpb25zIHByb2dyYW1tZXJzIHdyaXRlIGFyZSBtb3JlIG5hdHVyYWxseSBleHRlbnNpYmxlCi0gICAgICAgICBhbmQKLSAgICAgICAgIGludHVpdGl2ZS4gSW5zdGVhZCBvZiB0cnlpbmcgdG8gdHJhbnNsYXRlIGFuIFhNTCBzb3VyY2UgZG9jdW1lbnQgaW50byBhbiBIVE1MIHByZXNlbnRhdGlvbiBkb2N1bWVudCwgdGhlCi0gICAgICAgICBwcm9ncmFtbWVyIHNob3VsZCBzZWUgdGhlIFhNTCBkb2N1bWVudCBhcyBhIGNvbXBsZXggZGF0YSBzdHJ1Y3R1cmUgd2l0aCBYU0xUIHByb3ZpZGluZyBwb3dlcmZ1bCB0b29scyBmb3IKLSAgICAgICAgIGV4dHJhY3RpbmcgdGhhdCBpbmZvcm1hdGlvbiBpbnRvIHRoZWlyIEhUTUwgZG9jdW1lbnRzLiBUaGlzIGFsbG93cyB1cyB0byBsZXZlcmFnZSB0aGUgZXhwZXJpZW5jZSBtb3N0IHBlb3BsZQotICAgICAgICAgaGF2ZSB3aXRoIHVzaW5nIGFuIEhUTUwgdGVtcGxhdGluZyBsYW5ndWFnZSAoZS5nLiBBU1AsIFBIUCwgSlNQLCBDb2xkIEZ1c2lvbiwgV2ViIE1hY3JvLCBldGMpLiBUaGVzZSB0ZW1wbGF0aW5nCi0gICAgICAgICBsYW5ndWFnZXMgYXJlIGFsbCBiYXNlZCBvbiB0aGUgYmFzaWMgcHJlbWlzZSB0aGF0IEhUTUwgY29tZXMgZmlyc3QgYW5kIGFsbCBlbmhhbmNlbWVudHMgYXJlIHRoZW4gZW1iZWRkZWQgaW4KLSAgICAgICAgIHNwZWNpYWwgdGFncy4gICAgICAgICAKLSAgICAgIDwvcD48cD4KLSAgICAgICAgIFdpdGggc29tZSBjYXZlYXRzLCB0aGlzIHR1dG9yaWFsIHdpbGwgc2hvdyBob3cgWFNMVCBjYW4gYmUgdXNlZCBpbiB0aGlzIHNhbWUgd2F5LiBUaGUgYmVuZWZpdCBvZiB0aGlzCi0gICAgICAgICBhcHByb2FjaCBpcyBpdAotICAgICAgICAgYWxsb3dzIHRoZSBxdWljayB1c2Ugb2YgbWFueSBvZiBYU0xUJnJzcXVvO3MgcG93ZXJmdWwgZnVuY3Rpb25zIHdoaWxlIGxldHRpbmcgeW91IGxlYXJuIGl0cyBtb3JlCi0gICAgICAgICBlc290ZXJpYwotICAgICAgICAgY2FwYWJpbGl0aWVzIGFzIHRoZSBuZWVkIGFyaXNlcy4gSW4gYWRkaXRpb24gdGhlIHJlc3VsdGluZyBYU0xUIGZpbGVzIGFyZSBtb3JlIGludHVpdGl2ZSBhbmQKLSAgICAgICAgIG1haW50YWluYWJsZS4KLSAgICAgIDwvcD48cHJlIGNsYXNzPSJwcm9ncmFtbGlzdGluZyI+Ci08c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz4mbHQ7eHNsOnZhbHVlLW9mJmd0OyBhbmQge308L3N0cm9uZz48L3NwYW4+ICAgICAgICAgCi0gICAgICA8L3ByZT48cD4KLSAgICAgICAgIE9uIHRvIGFuIGV4YW1wbGUuIEhlcmUgaXMgYSB2ZXJ5IHNpbXBsZSB3ZWxjb21lIHBhZ2UuICAgICAgICAgCi0gICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgotCi0mbHQ7aHRtbCZndDsKLSAgJmx0O2hlYWQmZ3Q7Ci0gICAgJmx0O3RpdGxlJmd0O1dlbGNvbWUmbHQ7L3RpdGxlJmd0OwotICAmbHQ7L2hlYWQmZ3Q7Ci0gICZsdDtib2R5Jmd0OwotICAgIFdlbGNvbWUhCi0gICZsdDsvYm9keSZndDsKLSZsdDsvaHRtbCZndDsKLSAgICAgICAgIAotICAgICAgPC9wcmU+PHA+Ci0gICAgICAgICBBbmQgaGVyZSBpcyBhbiBYTUwgZG9jdW1lbnQgd2l0aCBpbmZvcm1hdGlvbiBvbiBtZW1iZXIuICAgICAgCi0gICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgotCi0mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKLSZsdDt4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKLSAgICAgICAgICAgICAgICB2ZXJzaW9uPSIxLjAiJmd0OwotICAmbHQ7eHNsOnRlbXBsYXRlIG1hdGNoPSIvIiZndDsKLSAgICAmbHQ7aHRtbCZndDsKLSAgICAgICZsdDtoZWFkJmd0OwotICAgICAgICAmbHQ7dGl0bGUmZ3Q7V2VsY29tZSZsdDsvdGl0bGUmZ3Q7Ci0gICAgICAmbHQ7L2hlYWQmZ3Q7Ci0gICAgICAmbHQ7Ym9keSZndDsKLSAgICAgICAgV2VsY29tZSAmbHQ7eHNsOnZhbHVlLW9mIHNlbGVjdD0ibWVtYmVyL25hbWUiLyZndDshCi0gICAgICAmbHQ7L2JvZHkmZ3Q7Ci0gICAgJmx0Oy9odG1sJmd0OwotICAmbHQ7L3hzbDp0ZW1wbGF0ZSZndDsKLSZsdDsveHNsOnN0eWxlc2hlZXQmZ3Q7Ci0gICAgICAKLSAgICAgIDwvcHJlPjxwPgotICAgICAgICAgVGhlcmUgYXJlIGEgY291cGxlIG9mIHRoaW5ncyB0aGF0IG5lZWQgdG8gYmUgcG9pbnRlZCBvdXQgcmlnaHQgYXdheS4gRmlyc3QgdGhpcyBpcyBhIHdlbGwtZm9ybWVkIFhNTAotICAgICAgICAgZG9jdW1lbnQuIFRoaXMgbWVhbiBhbGwgSFRNTCB1c2VkIG11c3QgY29uZm9ybSB0byB0aGUgWEhUTUwgc3BlY2lmaWNhdGlvbiAoaS5lLiBhbGwgdGFncyBtdXN0IGJlIGNsb3NlZCBhbmQKLSAgICAgICAgIGxvd2VyY2FzZSkuCi0gICAgICA8L3A+PHA+Ci0gICAgICAgICBUaGUgbGluZXMgYmVmb3JlIHRoZSAmbHQ7aHRtbCZndDsKLSAgICAgICAgIHRhZyBhbmQgYWZ0ZXIgdGhlICZsdDsvaHRtbCZndDsKLSAgICAgICAgIHRhZyB3aWxsIGJlIHNlZW4gaW4gYWxsIHRoZSBleGFtcGxlcy4gRm9yIG5vdywgb3RoZXIgdGhhbiByZWFsaXppbmcgdGhhdCB0aGV5IGFyZSByZXF1aXJlZCBpbiBhbnkgc3R5bGUgc2hlZXQKLSAgICAgICAgIGNyZWF0ZWQsIGp1c3QgZ28gYWhlYWQgYW5kIGZvcmdldCB0aGV5IGFyZSB0aGVyZS4gWW91IGRvbiZyc3F1bzt0IE5FRUQgdG8gdW5kZXJzdGFuZCB0aGVtIHJpZ2h0IG5vdyB0byBnZXQgdXNlZnVsCi0gICAgICAgICB3b3JrIG91dCBvZiBYU0xULgotICAgICAgPC9wPjxwPgotICAgICAgICAgTm90aWNlIHRoZSBIVE1MIGlzIGlkZW50aWNhbCB0byB0aGUgb3JpZ2luYWwgZXhjZXB0IGZvciB0aGUgaW50cm9kdWN0aW9uIG9mIGEgbmV3IHRhZwotICAgICAgICAgJmx0O3hzbDp2YWx1ZS1vZiZndDsuCi0gICAgICAgICBUaGlzIHRhZyBpcyB0aGUga2V5IHRvIGV4dHJhY3RpbmcgYW55IHBpZWNlIG9mIGluZm9ybWF0aW9uIG91dCBhbiBYTUwgZG9jdW1lbnQuIEl0IGhhcyBhICJzZWxlY3QiCi0gICAgICAgICBhdHRyaWJ1dGUgdGhhdAotICAgICAgICAgcHJvdmlkZXMgdGhlIHBhdGggdGhyb3VnaCB0aGUgWE1MIGRvY3VtZW50IHRvIHRoZSBpbmZvcm1hdGlvbiB3ZSBzZWVrLiBJbiB0aGlzIGNhc2UKLSAgICAgICAgICAgICZsdDttZW1iZXImZ3Q7Ci0gICAgICAgICBpcyB0aGUgb3V0ZXIgbW9zdCB0YWcgYW5kCi0gICAgICAgICAmbHQ7bmFtZSZndDsKLSAgICAgICAgIGlzIHRoZSB0YWcgdW5kZXJuZWF0aCBpdC4gU2xhc2ggY2hhcmFjdGVycyAoIi8iKSBhcmUgdXNlZCB0byBkZXNpZ25hdGUgcGFyZW50L2NoaWxkIHJlbGF0aW9uc2hpcHMKLSAgICAgICAgIGJldHdlZW4gdGFncy4KLSAgICAgICAgIElmIHlvdSBhcmUgdXNlZCB0byBuYXZpZ2F0aW5nIGFyb3VuZCBhIFVuaXggZmlsZSBzeXN0ZW0gdGhpcyBzaG91bGQgZmVlbCBmYW1pbGlhci4KLSAgICAgIDwvcD48cD4KLSAgICAgICAgIE5vdyBsZXQmcnNxdW87cyBjb25zaWRlciBmdXJ0aGVyIGN1c3RvbWl6aW5nIHRoaXMgcGFnZSBieSBtYWtpbmcgdGhlIHdlbGNvbWUgaW4gdGhlIHBlcnNvbiZyc3F1bztzIGZhdm9yaXRlIGNvbG9yIHVzaW5nIHRoZQotICAgICAgICAgJmx0O2ZvbnQmZ3Q7Ci0gICAgICAgICB0YWcgd2l0aCB0aGUgImJnY29sb3IiIGF0dHJpYnV0ZS4gQmVjYXVzZQotICAgICAgICAgICAgJmx0O3hzbDp2YWx1ZS1vZiZndDsKLSAgICAgICAgIGlzIGFuIFhNTCB0YWcgaXQgaXMgbm90IHZhbGlkIHRvIGluc2VydCBpdCBpbiBhbiBIVE1MIGF0dHJpYnV0ZSB2YWx1ZS4gU28gYW5vdGhlciBtZWNoYW5pc20KLSAgICAgICAgIGlzIG5lZWRlZCB0byBpbnNlcnQKLSAgICAgICAgIGluZm9ybWF0aW9uIGZyb20gb3VyIFhNTCBmaWxlIHRoZXJlLgotICAgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KLQotJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7Ci0mbHQ7eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iCi0gICAgICAgICAgICAgICAgdmVyc2lvbj0iMS4wIiZndDsKLSAgJmx0O3hzbDp0ZW1wbGF0ZSBtYXRjaD0iLyImZ3Q7Ci0gICAgJmx0O2h0bWwmZ3Q7Ci0gICAgICAmbHQ7aGVhZCZndDsKLSAgICAgICAgJmx0O3RpdGxlJmd0O1dlbGNvbWUmbHQ7L3RpdGxlJmd0OwotICAgICAgJmx0Oy9oZWFkJmd0OwotICAgICAgJmx0O2JvZHkmZ3Q7Ci0gICAgICAgICZsdDtmb250IGJnY29sb3I9InttZW1iZXIvZmF2b3JpdGVDb2xvcn0iJmd0OwotICAgICAgICAgIFdlbGNvbWUgJmx0O3hzbDp2YWx1ZS1vZiBzZWxlY3Q9Im1lbWJlci9uYW1lIi8mZ3Q7IQotICAgICAgICAmbHQ7L2ZvbnQmZ3Q7Ci0gICAgICAmbHQ7L2JvZHkmZ3Q7Ci0gICAgJmx0Oy9odG1sJmd0OwotICAmbHQ7L3hzbDp0ZW1wbGF0ZSZndDsKLSZsdDsveHNsOnN0eWxlc2hlZXQmZ3Q7Ci0KLSAgICAgIDwvcHJlPjxwPgotICAgICAgICAgTm90aWNlIHRoZSB1c2Ugb2YgdGhlIGN1cmx5IGJyYWNrZXRzICgie30iKS4gV2hlbiB1c2VkIHdpdGhpbiBhbiBhdHRyaWJ1dGUgYXNzaWdubWVudCAie3BhdGh9IiBoYXMgdGhlIGV4YWN0Ci0gICAgICAgICBzYW1lIGVmZmVjdCBhcwotICAgICAgICAgJmx0O3hzbDp2YWx1ZS1vZiBzZWxlY3Q9InBhdGgiIC8mZ3Q7Ci0gICAgICAgICB1c2VkIG91dHNpZGUgb2YgYXR0cmlidXRlIGFzc2lnbm1lbnRzLgotICAgICAgPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJOMTAwODEiPjwvYT5RdWVyaWVzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLSAgICAgICAgIE5vdCBhbGwgcGF0aHMgbGVhZCB0byBhIHNpbmdsZSBub2RlLiBGb3IgZXhhbXBsZSwgd2hhdCBpZiB3ZSB3YW50ZWQgdG8gcHV0IGEgcGVyc29uJnJzcXVvO3MgaG9tZSBwaG9uZSBudW1iZXIgb24gdGhlCi0gICAgICAgICBwYWdlPyBOb3RpY2UgdGhhdCB0aGUgWE1MIGRvY3VtZW50IGNvbnRhaW5zIHR3byBwaG9uZSBlbnRyaWVzLiBJZiB3ZSBzaW1wbHkgdXNlZAotICAgICAgICAgJmx0O3hzbDp2YWx1ZS1vZiBzZWxlY3Q9Im1lbWJlci9waG9uZSIgLyZndDsKLSAgICAgICAgIGJvdGggZW50cmllcyB3b3VsZCBiZSByZXR1cm5lZC4gV2Ugb2J2aW91c2x5IG5lZWQgYSB3YXkgdG8gYmUgbW9yZSBzcGVjaWZpYy4gTHVja2lseSwgWFNMVCBhbGxvd3MgdGhlIGZ1bGwKLSAgICAgICAgIHBvd2VyIG9mIFhQYXRoIHRvIGRlc2NyaWJlIHRoZSB2YWx1ZShzKSBvZiBpbnRlcmVzdC4gWFBhdGggYWxsb3dzIGNvbmRpdGlvbnMgb24gYW55IGF0dHJpYnV0ZSBvciB0YWcgdG8gYmUKLSAgICAgICAgIHBsYWNlZCBpbiBzcXVhcmUgYnJhY2tldHMgKCJbXSIpIHdoaWNoIGFyZSB0aGVuIHVzZWQgdG8gcmVzdHJpY3QgdGhlIHZhbHVlcyByZXR1cm5lZC4KLSAgICAgIDwvcD48cD4KLSAgICAgICAgIFNvIHRvIHJldHJpZXZlIHRoZSBob21lIHBob25lIG51bWJlciB3ZSB3b3VsZCB1c2UgdGhlIHBhdGggIm1lbWJlci9waG9uZVtAdHlwZT0mcnNxdW87aG9tZSZyc3F1bztdIi4gTm90aWNlIHRoZSAiQCIKLSAgICAgICAgIHN5bWJvbCBpbiBmcm9udAotICAgICAgICAgb2YgInR5cGUiLiBUaGUgIkAiIHN5bWJvbCBzaWduaWZpZXMgdGhhdCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGFuIGF0dHJpYnV0ZS4gU28gb3VyIG5ldyBIVE1MCi0gICAgICAgICB0ZW1wbGF0ZSBsb29rcyBsaWtlOgotICAgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KLSAgICAgIAotJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7Ci0mbHQ7eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iCi0gICAgICAgICAgICAgICAgdmVyc2lvbj0iMS4wIiZndDsKLSAgJmx0O3hzbDp0ZW1wbGF0ZSBtYXRjaD0iLyImZ3Q7Ci0gICAgJmx0O2h0bWwmZ3Q7Ci0gICAgICAmbHQ7aGVhZCZndDsKLSAgICAgICAgJmx0O3RpdGxlJmd0O1dlbGNvbWUmbHQ7L3RpdGxlJmd0OwotICAgICAgJmx0Oy9oZWFkJmd0OwotICAgICAgJmx0O2JvZHkmZ3Q7Ci0gICAgICAgICZsdDtmb250IGJnY29sb3I9InttZW1iZXIvZmF2b3JpdGVDb2xvcn0iJmd0OwotICAgICAgICAgIFdlbGNvbWUgJmx0O3hzbDp2YWx1ZS1vZiBzZWxlY3Q9Im1lbWJlci9uYW1lIi8mZ3Q7IQotICAgICAgICAgICZsdDtici8mZ3Q7Ci0gICAgICAgICAgWW91ciBob21lIHBob25lIG51bWJlciBpczoKLSAgICAgICAgICA8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz4mbHQ7eHNsOnZhbHVlLW9mIHNlbGVjdD0ibWVtYmVyL3Bob25lW0B0eXBlPSZyc3F1bztob21lJnJzcXVvO10iLyZndDs8L3N0cm9uZz48L3NwYW4+Ci0gICAgICAgICZsdDsvZm9udCZndDsKLSAgICAgICZsdDsvYm9keQotICAgICZsdDsvaHRtbAotICAmbHQ7L3hzbDp0ZW1wbGF0ZSZndDsKLSZsdDsveHNsOnN0eWxlc2hlZXQmZ3Q7Ci0KLSAgICAgIDwvcHJlPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDQgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJOMTAwOEYiPjwvYT54c2w6Zm9yLWVhY2g8L2g0PjwvZGl2PjwvZGl2PjwvZGl2PjxwPgotICAgICAgICAgICAgVGhlIHByZXZpb3VzIGV4YW1wbGUgYnJpbmdzIHVwIGFub3RoZXIgaXNzdWUuIFdoYXQgaWYgdGhpcwotICAgICAgICAgICAgJmx0O21lbWJlciZndDsKLSAgICAgICAgICAgIGVudHJ5IGhhZCBudW1lcm91cyBwaG9uZSBudW1iZXJzIGFuZCB3ZSB3YW50ZWQgdG8gcHJpbnQgdGhlbSBhbGwgb24gdGhlIHdlYiBwYWdlLiBXZSBjb3VsZCBzaW1wbHkgdXNlCi0gICAgICAgICAgICAgICAmbHQ7eHNsOnZhbHVlLW9mIHNlbGVjdD0ibWVtYmVyL3Bob25lIiAvJmd0OwotICAgICAgICAgICAgYnV0IHRoaXMgd291bGQgbm90IGVuYWJsZSB1cyB0byBmb3JtYXQgdGhlIHBob25lIG51bWJlciBpbnRvIGEgbmljZSBsaXN0IHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIGVhY2gKLSAgICAgICAgICAgIG51bWJlci4KLSAgICAgICAgIDwvcD48cD4KLSAgICAgICAgICAgIFRvIGFjY29tcGxpc2ggdGhpcyByZXF1aXJlcyB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZQotICAgICAgICAgICAgJmx0O3hzbDpmb3ItZWFjaCZndDsKLSAgICAgICAgICAgIHRhZyB3aGljaCBhbGxvd3MgdXMgdG8gbG9vcCB0aHJvdWdoIGVhY2ggb2YgdGhlIGVsZW1lbnRzIHRoYXQgbWF0Y2ggYSBnaXZlbiBwYXRoLiBTbyB0bwotICAgICAgICAgICAgY3JlYXRlIGEgdGFibGUgdGhhdAotICAgICAgICAgICAgY29udGFpbnMgdGhlIHBob25lIG51bWJlciB0eXBlIGluIHRoZSBmaXJzdCBjb2x1bW4gYW5kIHRoZSBwaG9uZSBudW1iZXIgaW4gdGhlIHNlY29uZAotICAgICAgICAgICAgY29sdW1uLCB0aGUgZm9sbG93aW5nCi0gICAgICAgICAgICBzdHlsZXNoZWV0IGNvdWxkIGJlIHVzZWQuCi0gICAgICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgotCi0mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKLSZsdDt4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKLSAgICAgICAgICAgICAgICB2ZXJzaW9uPSIxLjAiJmd0OwotICAmbHQ7eHNsOnRlbXBsYXRlIG1hdGNoPSIvIiZndDsKLSAgICAmbHQ7aHRtbCZndDsKLSAgICAgICZsdDtoZWFkJmd0OwotICAgICAgICAmbHQ7dGl0bGUmZ3Q7V2VsY29tZSZsdDsvdGl0bGUmZ3Q7Ci0gICAgICAmbHQ7L2hlYWQmZ3Q7Ci0gICAgICAmbHQ7Ym9keSZndDsKLSAgICAgICAgJmx0O2ZvbnQgYmdjb2xvcj0ie21lbWJlci9mYXZvcml0ZUNvbG9yfSImZ3Q7Ci0gICAgICAgICAgV2VsY29tZSAmbHQ7eHNsOnZhbHVlLW9mIHNlbGVjdD0ibWVtYmVyL25hbWUiLyZndDshCi0gICAgICAgICZsdDsvZm9udCZndDsKLSAgICAgICAgJmx0O3RhYmxlJmd0OwotICAgICAgICAgICZsdDt0ciZndDsmbHQ7dGgmZ3Q7VHlwZSZsdDsvdGgmZ3Q7Jmx0O3RoJmd0O051bWJlciZsdDsvdGgmZ3Q7Jmx0Oy90ciZndDsKLSAgICAgICAgICAmbHQ7eHNsOmZvci1lYWNoIHNlbGVjdD0ibWVtYmVyL3Bob25lIiZndDsKLSAgICAgICAgICAgICZsdDt0ciZndDsKLSAgICAgICAgICAgICAgJmx0O3RkJmd0OyZsdDt4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAdHlwZSIvJmd0OyZsdDsvdGQmZ3Q7Ci0gICAgICAgICAgICAgICZsdDt0ZCZndDsmbHQ7eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIvJmd0OyZsdDsvdGQmZ3Q7Ci0gICAgICAgICAgICAmbHQ7L3RyJmd0OwotICAgICAgICAgICZsdDsveHNsOmZvci1lYWNoJmd0OwotICAgICAgICAmbHQ7L3RhYmxlJmd0OwotICAgICAgJmx0Oy9ib2R5Jmd0OwotICAgICZsdDsvaHRtbCZndDsKLSAgJmx0Oy94c2w6dGVtcGxhdGUmZ3Q7Ci0mbHQ7L3hzbDpzdHlsZXNoZWV0Jmd0OwotICAgICAgICAgCi0gICAgICAgICA8L3ByZT48cD4KLSAgICAgICAgICAgIFRoaXMgZXhhbXBsZSBicmluZ3MgdXAgYSBudW1iZXIgb2YgaXNzdWVzLiBGaXJzdCwgd2hpbGUgaW4gdGhlIGxvb3AsIGFsbAotICAgICAgICAgICAgJmx0O3hzbDp2YWx1ZS1vZiAvJmd0OwotICAgICAgICAgICAgYWNjZXNzZXMgYXJlIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IGVsZW1lbnQgYmVpbmcgaXRlcmF0ZWQgb3ZlciAoaW4gdGhpcyBjYXNlCi0gICAgICAgICAgICAmbHQ7cGhvbmUmZ3Q7KS4KLSAgICAgICAgICAgIE5vdGljZSB0aGUgdXNlIG9mIHRoZSBwZXJpb2QgKCIuIiksIHdoaWNoIGxpa2UgaW4gYSBVbml4IGZpbGUgc3lzdGVtIG1lYW5zIHRoZSBjdXJyZW50IGVsZW1lbnQuCi0gICAgICAgICAgICBTbyBpbiB0aGlzCi0gICAgICAgICAgICBjYXNlIHRoZSBwZXJpb2QgKCIuIikgcmVmZXJzIHRvIGVhY2ggcGhvbmUgZWxlbWVudCBhcyB0aGUgbG9vcCBpdGVyYXRlcy4gQWxzbyBsaWtlIGluIGEgZmlsZQotICAgICAgICAgICAgc3lzdGVtIHlvdSBjYW4KLSAgICAgICAgICAgIGFkZHJlc3MgYSBwYXJlbnQgZWxlbWVudCB1c2luZyBhIGRvdWJsZSBwZXJpb2QgKCIuLiIpIGFuZCBjYW4gYWNjZXNzIGFueSBlbGVtZW50IGluIHRoZQotICAgICAgICAgICAgZG9jdW1lbnQgYnkgc3RhcnRpbmcKLSAgICAgICAgICAgIG92ZXIgYXQgdGhlIHJvb3QgZWxlbWVudCB1c2luZyBhIHNsYXNoICgiLyIpLgotICAgICAgICAgPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDQgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJOMTAwOUIiPjwvYT54c2w6aWY8L2g0PjwvZGl2PjwvZGl2PjwvZGl2PjxwPgotICAgICAgICAgICAgQXMgYSBsYXN0IGVuaGFuY2VtZW50IHRvIG91ciBwYWdlIGxldCZyc3F1bztzIGFkZCBhIHNwZWNpYWwgb2ZmZXIgdG8gInBsYXRpbnVtIiBsZXZlbCBtZW1iZXJzLiBUbyBkbyB0aGlzIHJlcXVpcmVzCi0gICAgICAgICAgICB0aGUgdXNlIG9mIGEgbmV3IHRhZwotICAgICAgICAgICAgJmx0O3hzbDppZiZndDsKLSAgICAgICAgICAgIHdoaWNoIGFsbG93cyB1cyB0byBpbnNlcnQgY29udGVudCBiYXNlZCBvbiBhIGNvbmRpdGlvbiBvZiB0aGUgZGF0YSBpbiB0aGUgWE1MIGRvY3VtZW50LgotICAgICAgICAgPC9wPjxwcmUgY2xhc3M9InByb2dyYW1saXN0aW5nIj4KLQotJmx0Oz94bWwgdmVyc2lvbj0iMS4wIj8mZ3Q7Ci0mbHQ7eHNsOnN0eWxlc2hlZXQgeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iCi0gICAgICAgICAgICAgICAgdmVyc2lvbj0iMS4wIiZndDsKLSAgJmx0O3hzbDp0ZW1wbGF0ZSBtYXRjaD0iLyImZ3Q7Ci0gICAgJmx0O2h0bWwmZ3Q7Ci0gICAgICAmbHQ7aGVhZCZndDsKLSAgICAgICAgJmx0O3RpdGxlJmd0O1dlbGNvbWUmbHQ7L3RpdGxlJmd0OwotICAgICAgJmx0Oy9oZWFkJmd0OwotICAgICAgJmx0O2JvZHkmZ3Q7Ci0gICAgICAgICZsdDtmb250IGJnY29sb3I9InttZW1iZXIvZmF2b3JpdGVDb2xvcn0iJmd0OwotICAgICAgICAgIFdlbGNvbWUgJmx0O3hzbDp2YWx1ZS1vZiBzZWxlY3Q9Im1lbWJlci9uYW1lIi8mZ3Q7IQotICAgICAgICAmbHQ7L2ZvbnQmZ3Q7Ci0gICAgICAgICZsdDt4c2w6aWYgdGVzdD0ibWVtYmVyW0BsZXZlbD0ncGxhdGludW0nXSImZ3Q7Ci0gICAgICAgICAgT3VyIHNwZWNpYWwgb2ZmZXIgdG8gcGxhdGludW0gbWVtYmVycyB0b2RheSBpcyBzb21ldGhpbmcgZ3JlYXQKLSAgICAgICAgJmx0Oy94c2w6aWYmZ3Q7Ci0gICAgICAgICZsdDt0YWJsZSZndDsKLSAgICAgICAgICAmbHQ7dHImZ3Q7Jmx0O3RoJmd0O1R5cGUmbHQ7L3RoJmd0OyZsdDt0aCZndDtOdW1iZXImbHQ7L3RoJmd0OyZsdDsvdHImZ3Q7Ci0gICAgICAgICAgJmx0O3hzbDpmb3ItZWFjaCBzZWxlY3Q9Im1lbWJlci9waG9uZSImZ3Q7Ci0gICAgICAgICAgICAmbHQ7dHImZ3Q7Ci0gICAgICAgICAgICAgICZsdDt0ZCZndDsmbHQ7eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHR5cGUiLyZndDsmbHQ7L3RkJmd0OwotICAgICAgICAgICAgICAmbHQ7dGQmZ3Q7Jmx0O3hzbDp2YWx1ZS1vZiBzZWxlY3Q9Ii4iLyZndDsmbHQ7L3RkJmd0OwotICAgICAgICAgICAgJmx0Oy90ciZndDsKLSAgICAgICAgICAmbHQ7L3hzbDpmb3ItZWFjaCZndDsKLSAgICAgICAgJmx0Oy90YWJsZSZndDsKLSAgICAgICZsdDsvYm9keSZndDsKLSAgICAmbHQ7L2h0bWwmZ3Q7Ci0gICZsdDsveHNsOnRlbXBsYXRlJmd0OwotJmx0Oy94c2w6c3R5bGVzaGVldCZndDsKLSAgICAgICAgIAotICAgICAgICAgPC9wcmU+PHA+Ci0gICAgICAgICAgICBXaXRoaW4gdGhlICJ0ZXN0IiBhdHRyaWJ1dGUgdGhlIGZ1bGwgYXJyYXkgb2YgQm9vbGVhbiBhbmQgcmVsYXRpdmUgb3BlcmF0b3JzIGFyZSBhdmFpbGFibGUuIFRoZSBvbmx5IGNhdmVhdAotICAgICAgICAgICAgaXMgdGhhdCBzaW5jZSB0aGlzIGlzIGFuIFhNTCBkb2N1bWVudCBsZXNzIHRoYW4gYW5kIGdyZWF0ZXIgdGhhbiAoIiZsdDsiLAotICAgICAgICAgICAgIiZndDsiKSBzaWducyBtdXN0IGJlIGVzY2FwZWQgYXMgIiZhbXA7bHQ7IiBhbmQgIiZhbXA7Z3Q7Ii4KLSAgICAgICAgIDwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iTjEwMEE1Ij48L2E+eHNsOmNob29zZTwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0gICAgICAgICAgICBPbmUgbnVhbmNlIG9mIHRoZQotICAgICAgICAgICAgJmx0O3hzbDppZiZndDsKLSAgICAgICAgICAgIHRhZyB0aGF0IGlzIG5vdCBhbHdheXMgb2J2aW91cyBhdCBmaXJzdCBnbGFuY2UgaXMgdGhlIGxhY2sgb2YgYW4gImVsc2UiIHN0YXRlbWVudC4gVGhpcyBtZWFucyB0byBoYXZlIGFuCi0gICAgICAgICAgICBlbHNlIHN0YXRlbWVudCByZXF1aXJlcyB0d28gaWZzLiBUaGUgZmlyc3Qgb25lIHNheWluZyAiaWYgY29uZGl0aW9uIiBhbmQgdGhlIHNlY29uZCBvbmUgc2F5aW5nICZsZHF1bztpZiBub3QKLSAgICAgICAgICAgIGNvbmRpdGlvbiZyZHF1bzsuIFRoaXMgc2NoZW1lIHF1aWNrbHkgYmVjb21lcyB1bndvcmthYmxlIHdpdGggZW1iZWRkZWQgaWYgdGhlbiBlbHNlIGxvZ2ljLiBMdWNraWx5IFhTTFQKLSAgICAgICAgICAgIHN1cHBvcnRzIGFuCi0gICAgICAgICAgICBhZGRpdGlvbmFsIHRlc3Qgb3BlcmF0b3IgY2FsbGVkCi0gICAgICAgICAgICAmbHQ7eHNsOmNob29zZSZndDsKLSAgICAgICAgICAgIHdoaWNoIHdvcmtzIGxpa2UgYSBzd2l0Y2gvY2FzZSBzdGF0ZW1lbnQuCi0gICAgICAgICA8L3A+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgotCi0mbHQ7P3htbCB2ZXJzaW9uPSIxLjAiPyZndDsKLSZsdDt4c2w6c3R5bGVzaGVldCB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKLSAgICAgICAgICAgICAgICB2ZXJzaW9uPSIxLjAiJmd0OwotICAmbHQ7eHNsOnRlbXBsYXRlIG1hdGNoPSIvIiZndDsKLSAgICAmbHQ7aHRtbCZndDsKLSAgICAgICZsdDtoZWFkJmd0OwotICAgICAgICAmbHQ7dGl0bGUmZ3Q7V2VsY29tZSZsdDsvdGl0bGUmZ3Q7Ci0gICAgICAmbHQ7L2hlYWQmZ3Q7Ci0gICAgICAmbHQ7Ym9keSZndDsKLSAgICAgICAgJmx0O2ZvbnQgYmdjb2xvcj0ie21lbWJlci9mYXZvcml0ZUNvbG9yfSImZ3Q7Ci0gICAgICAgICAgV2VsY29tZSAmbHQ7eHNsOnZhbHVlLW9mIHNlbGVjdD0ibWVtYmVyL25hbWUiLyZndDshCi0gICAgICAgICZsdDsvZm9udCZndDsKLSAgICAgICAgJmx0O3hzbDpjaG9vc2UmZ3Q7Ci0gICAgICAgICAgJmx0O3hzbDp3aGVuIHRlc3Q9Im1lbWJlcltAbGV2ZWw9J3BsYXRpbnVtJ10iJmd0OwotICAgICAgICAgICAgT3VyIHNwZWNpYWwgb2ZmZXIgdG8gcGxhdGludW0gbWVtYmVycyB0b2RheSBpcyBzb21ldGhpbmcgZ3JlYXQKLSAgICAgICAgICAmbHQ7L3hzbDp3aGVuJmd0OwotICAgICAgICAgICZsdDt4c2w6b3RoZXJ3aXNlJmd0OwotICAgICAgICAgICAgQmVjb21lIGEgcGxhdGludW0gbWVtYmVyIHRvZGF5IQotICAgICAgICAgICZsdDsveHNsOm90aGVyd2lzZSZndDsKLSAgICAgICAgJmx0Oy94c2w6Y2hvb3NlJmd0OwotICAgICAgICAmbHQ7dGFibGUmZ3Q7Ci0gICAgICAgICAgJmx0O3RyJmd0OyZsdDt0aCZndDtUeXBlJmx0Oy90aCZndDsmbHQ7dGgmZ3Q7TnVtYmVyJmx0Oy90aCZndDsmbHQ7L3RyJmd0OwotICAgICAgICAgICZsdDt4c2w6Zm9yLWVhY2ggc2VsZWN0PSJtZW1iZXIvcGhvbmUiJmd0OwotICAgICAgICAgICAgJmx0O3RyJmd0OwotICAgICAgICAgICAgICAmbHQ7dGQmZ3Q7Jmx0O3hzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB0eXBlIi8mZ3Q7Jmx0Oy90ZCZndDsKLSAgICAgICAgICAgICAgJmx0O3RkJmd0OyZsdDt4c2w6dmFsdWUtb2Ygc2VsZWN0PSIuIi8mZ3Q7Jmx0Oy90ZCZndDsKLSAgICAgICAgICAgICZsdDsvdHImZ3Q7Ci0gICAgICAgICAgJmx0Oy94c2w6Zm9yLWVhY2gmZ3Q7Ci0gICAgICAgICZsdDsvdGFibGUmZ3Q7Ci0gICAgICAmbHQ7L2JvZHkmZ3Q7Ci0gICAgJmx0Oy9odG1sJmd0OwotICAmbHQ7L3hzbDp0ZW1wbGF0ZSZndDsKLSZsdDsveHNsOnN0eWxlc2hlZXQmZ3Q7Ci0gICAgICAgICAKLSAgICAgICAgIDwvcHJlPjxwPgotICAgICAgICAgICAgVGhlICZsZHF1bzt0ZXN0JnJkcXVvOyBhdHRyaWJ1dGUgaGFzIHRoZSBzYW1lIGNhcGFiaWxpdGllcy8gY29uc3RyYWludHMgYXMgdGhlICZsZHF1bzt0ZXN0JnJkcXVvOyBhdHRyaWJ1dGUgaW4gdGhlCi0gICAgICAgICAgICAmbHQ7eHNsOmlmJmd0OwotICAgICAgICAgICAgdGFnLiBNdWx0aXBsZQotICAgICAgICAgICAgJmx0O3hzbDp3aGVuJmd0OwotICAgICAgICAgICAgYmxvY2tzIGFyZSBhbGxvd2VkLiBBcyBzb29uIGFzIG9uZSAmbGRxdW87d2hlbiB0ZXN0JnJkcXVvOyBpcyBtYWNoZWQsIGl0IHdpbGwgbm90IGV2YWx1YXRlIGFueSBmdXJ0aGVyICZsZHF1bzt4c2w6d2hlbgotICAgICAgICAgICAgdGVzdHMmcmRxdW87Ci0gICAgICAgICAgICBpbiB0aGUKLSAgICAgICAgICAgICZsdDt4c2w6Y2hvb3NlJmd0OwotICAgICAgICAgICAgYmxvY2suCi0gICAgICAgICA8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9Ik4xMDBBRiI+PC9hPkNvbmNsdXNpb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwPgotICAgICAgICAgV2l0aCBqdXN0IHRoZXNlIGZldyBjb21tYW5kcyAoYW4gYWRtaXR0ZWRseSBzbWFsbCBzdWJzZXQgb2YgWFNMVCkgYW5kIGEgc3Ryb25nIGJhY2tncm91bmQgaW4gSFRNTCAoREhUTUwgYW5kCi0gICAgICAgICBKYXZhU2NyaXB0Ci0gICAgICAgICBpbmNsdWRlZCksIEkgYmVsaWV2ZSB3ZWIgZGV2ZWxvcGVycyBjb3VsZCBtZWV0IHRoZSBtYWpvcml0eSBvZiB0aGVpciBwcmVzZW50YXRpb24gbmVlZHMuIE9idmlvdXNseQotICAgICAgICAgdGhlcmUgd2lsbAotICAgICAgICAgYmUgY2FzZXMgd2hlcmUgZ3JlYXRlciBmbGV4aWJpbGl0eSBpcyByZXF1aXJlZCwgYnV0IHRoZSBhZHZhbnRhZ2Ugb2YgdGhpcyB0ZWNobmlxdWUgaXMgdGhhdCBvbmx5Ci0gICAgICAgICB0aGVuLCBkb2VzIHRoZQotICAgICAgICAgZGV2ZWxvcGVyIG5lZWQgdG8gbGVhcm4gdGhvc2UgY29uc3RydWN0cy4gICAgICAgICAKLSAgICAgIDwvcD48cD4KLSAgICAgICAgIEFzIGEgZnVydGhlciBiZW5lZml0LCB0aGlzIHRlY2huaXF1ZSBtaW5pbWl6ZWQgdGhlIGludGVyZGVwZW5kZW5jZSBvZiBvbmUgWExTVCBjb25zdHJ1Y3Qgb24gYW5vdGhlci4gTG9jYWwKLSAgICAgICAgIGNoYW5nZXMgc3RheQotICAgICAgICAgbG9jYWwgdGhlcmVieSByZWR1Y2luZyB0aGUgYnJpdHRsZW5lc3Mgb2Ygc29sdXRpb25zLiBUaGUgZGV2ZWxvcGVyIGFsc28gbm8gbG9uZ2VyIGhhcyB0byByZW1lbWJlcgotICAgICAgICAgYW5kIGFjY291bnQKLSAgICAgICAgIGZvciBYU0xUJnJzcXVvO3MgZGVmYXVsdCBiZWhhdmlvcnMuICAgICAgICAgCi0gICAgICA8L3A+PHA+Ci0gICAgICAgICBJIGhvcGUgZnJvbSB0aGVzZSBmZXcgZXhhbXBsZXMsIEkgaGF2ZSBvcGVuZWQgYSBmZXcgZXllcyB0byB0aGUgcG93ZXIgb2YgWFNMVCBhbmQgaG93IGEgc21hbGwgY2hhbmdlIGluIGhvdwotICAgICAgICAgWFNMVCBpcyBmcmFtZWQgY2FuIG1ha2UgYSBodWdlIGRpZmZlcmVuY2UgaW4gaXRzIHVuZGVyc3RhbmRhYmlsaXR5IGFuZCBhY2Nlc3NpYmlsaXR5IHRvIHdlYiBkZXZlbG9wZXJzLiBJZgotICAgICAgICAgbm90aGluZyBlbHNlLCBJIGhvcGUgdG8gZW5jb3VyYWdlIHNvbWUgZ29vZCBkaXNjdXNzaW9ucy4gCi0gICAgICA8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvY29uY2VwdHMvcmVzb3VyY2VzLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvY29uY2VwdHMvcmVzb3VyY2VzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlODNmMDQuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2NvbmNlcHRzL3Jlc291cmNlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPlJlc291cmNlczwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9ImNvbmNlcHRzLmh0bWwiIHRpdGxlPSJYU0xUIENvbmNlcHRzIj48bGluayByZWw9InByZXYiIGhyZWY9ImNvbmNlcHRzLmh0bWwiIHRpdGxlPSJYU0xUIENvbmNlcHRzIj48bGluayByZWw9Im5leHQiIGhyZWY9Ii4uL2VkaXRvci94c2xlZGl0b3IuaHRtbCIgdGl0bGU9IlhTTCBFZGl0aW5nIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9ImNvbmNlcHRzX1Jlc291cmNlcyI+PC9hPlJlc291cmNlczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgdHlwZT0iZGlzYyI+PGxpPjxwPgotICAgICAgICAgICAgICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LnczLm9yZy9UUi94c2x0IiB0YXJnZXQ9Il90b3AiPlhTTFQgMS4wIFNwZWNpZmljYXRpb248L2E+IC0gVGhlIG9mZmljaWFsIFczQyBYU0xUIDEuMCBTcGVjaWZpY2F0aW9uLgotICAgICAgICAgICAgPC9wPjwvbGk+PGxpPjxwPgotICAgICAgICAgICAgICAgPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LmRwYXdzb24uY28udWsveHNsL2luZGV4Lmh0bWwiIHRhcmdldD0iX3RvcCI+WFNMVCBGQVE8L2E+IC0gbWFpbnRhaW5lZCBieSBEYXZlIFBhd3Nvbi4KLSAgICAgICAgICAgIDwvcD48L2xpPjxsaT48cD48YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cueGZyb250LmNvbS9yZXNjdWluZy14c2x0Lmh0bWwiIHRhcmdldD0iX3RvcCI+UmVzY3VpbmcgWFNMVCBmcm9tIE5pY2hlIFN0YXR1czwvYT4gLSBieSBEYXZpZCBKYWNvYnMuPC9wPjwvbGk+PGxpPjxwPjxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy54bWwuY29tL3B1Yi9hLzIwMDMvMTEvMjYvbGVhcm5YU0xULmh0bWwiIHRhcmdldD0iX3RvcCI+Rml2ZSBYU0xUIEJhc2ljczwvYT4gLSBieSBNaWNoYWVsIEZpdHpnZXJhbGQgYXV0aG9yIG9mIExlYXJuaW5nIFhTTFQuPC9wPjwvbGk+PGxpPjxwPjxhIGNsYXNzPSJ1bGluayIgaHJlZj0iaHR0cDovL3d3dy54ZnJvbnQuY29tL2ZpbGVzL3R1dG9yaWFscy5odG1sIiB0YXJnZXQ9Il90b3AiPlhGcm9udCBUdXRvcmlhbHM8L2E+IC0gcHJvdmlkZXMgc2V2ZXJhbCB0dXRvcmlhbHMgaW5jbHVkZSBYU0xUIDEuMC48L3A+PC9saT48bGk+PHA+PGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LmNhZmVjb25sZWNoZS5vcmcvYm9va3MvYmlibGUyL2NoYXB0ZXJzL2NoMTcuaHRtbCIgdGFyZ2V0PSJfdG9wIj5YU0wgVHJhbnNmb3JtYXRpb25zPC9hPiAtIENoYXB0ZXIgMTcgb2YgdGhlIFhNTCBCaWJsZSAybmQgRWRpdGlvbi48L3A+PC9saT48L3VsPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3IuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkMjA0YmUuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+WFNMIEVkaXRpbmc8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSIuLi9jb25jZXB0cy9yZXNvdXJjZXMuaHRtbCIgdGl0bGU9IlJlc291cmNlcyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdC5odG1sIiB0aXRsZT0iQ29udGVudCBBc3Npc3QiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0iY2hhcHRlciIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9Ik4xMDBFNCI+PC9hPlhTTCBFZGl0aW5nPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0b2MiPjxwPjxiPlRhYmxlIG9mIENvbnRlbnRzPC9iPjwvcD48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJ4c2xlZGl0b3IuaHRtbCNWYWxpZGF0aW9uIj5WYWxpZGF0aW9uPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3QuaHRtbCI+Q29udGVudCBBc3Npc3Q8L2E+PC9zcGFuPjx1bD48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0Lmh0bWwjZWRfWFNMUHJvcG9zYWxzIj5YU0xUIEVsZW1lbnQgUHJvcG9zYWxzPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3Rfc2VsZWN0dGVzdC5odG1sIj5TZWxlY3QsIFRlc3QsIGFuZCBNYXRjaCBBdHRyaWJ1dGVzPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sIj5FeGNsdWRlLVJlc3VsdC1QcmVmaXhlczwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0X21vZGVhc3Npc3QuaHRtbCI+TW9kZSBhdHRyaWJ1dGUgYXNzaXN0YW5jZTwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0X25hbWVkdGVtcGxhdGUuaHRtbCI+TmFtZWQgVGVtcGxhdGUgQXNzaXN0YW5jZTwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0X2NhbGx0ZW1wbGF0ZS5odG1sIj5DYWxsLVRlbXBsYXRlIEFzc2lzdGFuY2U8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdF9pbmNsdWRlLmh0bWwiPgotICAgICAgICAgICAgICAgIEluY2x1ZGUgYW5kIEltcG9ydAotICAgICAgICAgICAgICAgIGhyZWYKLSAgICAgICAgICAgICAgICBBc3Npc3RhbmNlCi0gICAgICAgICAgICA8L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHNsZWRpdG9yX3RlbXBsYXRlcy5odG1sIj5UZW1wbGF0ZXM8L2E+PC9zcGFuPjx1bD48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InhzbGVkaXRvcl90ZW1wbGF0ZXMuaHRtbCNOMTAxRDMiPlhQYXRoIFRlbXBsYXRlczwvYT48L3NwYW4+PC9saT48L3VsPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJ4c2xlZGl0b3JfY29sb3JpbmcuaHRtbCI+WFNMVCBTeW50YXggQ29sb3Jpbmc8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJ4c2xlZGl0b3JfbWFya2Vycy5odG1sIj5YU0xUIE1hcmtlcnMgYW5kIEFubm90YXRpb25zPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJ4c2xlZGl0b3JfbWFya2Vycy5odG1sI3hzbHRPdmVyUmlkZSI+VGVtcGxhdGUgT3ZlcnJpZGU8L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHNsZWRpdG9yX2RlYnVnZ2luZy5odG1sIj5YU0wgRGVidWdnaW5nPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHNsZWRpdG9yX2RlYnVnZ2luZy5odG1sIj5OYXZpZ2F0aW9uPC9hPjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PHA+VGhlIFhTTCBUb29scyBwbHVnaW5zIGV4dGVuZCB0aGUgYWJpbGl0eSBvZiB0aGUgV2ViIFN0YW5kYXJkIFRvb2xzIFhNTAotICAgICAgICBlZGl0b3IuIFRoaXMgZXh0ZW5zaW9uIGFkZHMgc3BlY2lmaWMgc3VwcG9ydCBhbmQgZnVuY3Rpb25hbGl0eSBmb3Igd29ya2luZyB3aXRoCi0gICAgICAgIGFuZCBkZWJ1Z2dpbmcgWFNMIGZpbGVzLjwvcD48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJWYWxpZGF0aW9uIj48L2E+VmFsaWRhdGlvbjwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PHA+VGhlIFhTTCBleHRlbnNpb25zIGZvciB0aGUgZWNsaXBzZSBYTUwgZWRpdG9yIGluY2x1ZGUgYXMgeW91IHR5cGUKLSAgICAgICAgICAgIHZhbGlkYXRpb24gZm9yIFhTTCBzcGVjaWZpYyBmZWF0dXJlcy4gVGhpcyBpbmNsdWRlcyBub3Qgb25seSB0aGUgYWJpbGl0eSB0bwotICAgICAgICAgICAgc3ludGF4IGNoZWNrIHRoZSBncmFtbWFyLCBidXQgdG8gYWxzbyB0byB2YWxpZGF0ZSBzcGVjaWZpYyBYU0wgc3BlY2lmaWNhdGlvbgotICAgICAgICAgICAgcnVsZXMuIEdyYW1tYXIgdmFsaWRhdGlvbiB3aWxsIGJlIHRyaWdnZXJlZCBiYXNlZCBvbiB0aGUgdmVyc2lvbiBhdHRyaWJ1dGUgZm9yCi0gICAgICAgICAgICB0aGUgc3R5bGUgc2hlZXQgdGhhdCBpcyBiZWluZyBlZGl0ZWQuIFZhbGlkIHZlcnNpb24gbnVtYmVycyBhcmUgMS4wLCBhbmQgMi4wLgotICAgICAgICA8L3A+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb2xvcmluZy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfY29sb3JpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGVjZjIxNS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb2xvcmluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5YU0xUIFN5bnRheCBDb2xvcmluZzwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbGVkaXRvci5odG1sIiB0aXRsZT0iWFNMIEVkaXRpbmciPjxsaW5rIHJlbD0icHJldiIgaHJlZj0ieHNsZWRpdG9yX3RlbXBsYXRlcy5odG1sIiB0aXRsZT0iVGVtcGxhdGVzIj48bGluayByZWw9Im5leHQiIGhyZWY9InhzbGVkaXRvcl9tYXJrZXJzLmh0bWwiIHRpdGxlPSJYU0xUIE1hcmtlcnMgYW5kIEFubm90YXRpb25zIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9InhzbHRTeW50YXhDb2xvcmluZyI+PC9hPlhTTFQgU3ludGF4IENvbG9yaW5nPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLSAgICAgICAgICAgIFhTTCBUb29scyBFZGl0b3IgY2FuIGhhdmUgc3ludGF4IGNvbG9yaW5nIHRoYXQgaXMgc3BlY2lmaWMganVzdCBmb3IgdGhlIHRoZQotICAgICAgICAgICAgWFNMVCBOYW1lc3BhY2UgYXMgc2hvd2luZyBpbgotICAgICAgICAgICAgPGEgY2xhc3M9InhyZWYiIGhyZWY9InhzbGVkaXRvcl9jb2xvcmluZy5odG1sI2ZpZ19lZGl0b3JTeW50YXhDb2xvcmluZyIgdGl0bGU9IkZpZ3VyZSZuYnNwOzguJm5ic3A7WFNMVCBTcGVjaWZpYyBTeW50YXggQ29sb3JpbmciPkZpZ3VyZSZuYnNwOzgsICZsZHF1bztYU0xUIFNwZWNpZmljIFN5bnRheCBDb2xvcmluZyZyZHF1bzs8L2E+Ci0gICAgICAgICAgICAuCi0gICAgICAgIDwvcD48ZGl2IGNsYXNzPSJmaWd1cmUiPjxhIG5hbWU9ImZpZ19lZGl0b3JTeW50YXhDb2xvcmluZyI+PC9hPjxwIGNsYXNzPSJ0aXRsZSI+PGI+RmlndXJlJm5ic3A7OC4mbmJzcDtYU0xUIFNwZWNpZmljIFN5bnRheCBDb2xvcmluZzwvYj48L3A+PGRpdiBjbGFzcz0iZmlndXJlLWNvbnRlbnRzIj48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9lZGl0b3Ivc3ludGF4Q29sb3JpbmcucG5nIiBhbGlnbj0ibWlkZGxlIiBhbHQ9IlhTTFQgU3BlY2lmaWMgU3ludGF4IENvbG9yaW5nIj48L2Rpdj48L2Rpdj48L2Rpdj48YnIgY2xhc3M9ImZpZ3VyZS1icmVhayI+PHA+Ci0gICAgICAgICAgICBUaGUgZGVmYXVsdCBjb2xvcmluZyBzaG93biBpcyB0byBtYWtlIGFsbCBYU0xUIGVsZW1lbnRzIGFuZCBhdHRyaWJ1dGVzIGJvbGQuCi0gICAgICAgICAgICBUaGUgc2V0dGluZ3MgYXJlIGNvbnRyb2xlZCBpbgotICAgICAgICAgICAgPGEgY2xhc3M9InhyZWYiIGhyZWY9Ii4uL3ByZWZlcmVuY2VzL3hzbHByZWZlcmVuY2VzLmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgUHJlZmVyZW5jZXMiPjxpPlhTTCBUb29scyBQcmVmZXJlbmNlczwvaT48L2E+Ci0gICAgICAgICAgICAuCi0gICAgICAgIDwvcD48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3QuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWI1YzNkYy4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPkNvbnRlbnQgQXNzaXN0PC90aXRsZT48bGluayBocmVmPSJib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PGxpbmsgaHJlZj0iLi4vYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxtZXRhIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiIG5hbWU9ImdlbmVyYXRvciI+PGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0ieHNsZWRpdG9yLmh0bWwiIHRpdGxlPSJYU0wgRWRpdGluZyI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJ4c2xlZGl0b3IuaHRtbCIgdGl0bGU9IlhTTCBFZGl0aW5nIj48bGluayByZWw9Im5leHQiIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0X3NlbGVjdHRlc3QuaHRtbCIgdGl0bGU9IlNlbGVjdCwgVGVzdCwgYW5kIE1hdGNoIEF0dHJpYnV0ZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0iQ29udGVudEFzc2lzdCI+PC9hPkNvbnRlbnQgQXNzaXN0PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLSAgICAgICAgICAgIFhTTCBUb29scyBleHRlbmRzIHRoZSBleGlzdGluZyBjb250ZW50IGFzc2lzdGFuY2Ugc3VwcG9ydCBvZiB0aGUgWE1MIEVkaXRvciB0bwotICAgICAgICAgICAgcHJvdmlkZSBjb250ZW50IGFzc2lzdGFuY2UgZm9yIHNldmVyYWwgWFNMIG5hbWVzcGFjZSBhdHRyaWJ1dGVzLiBUaGUgY29udGVudAotICAgICAgICAgICAgYXNzaXN0YW5jZSBwcm92aWRlZCBjb3ZlcnMgdGhlIGF2YWlsYWJsZSBYUGF0aCBzdGF0ZW1lbnRzIGFzIGRlZmluZWQgaW4gdGhlCi0gICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5YUGF0aCBUZW1wbGF0ZXM8L2VtPjwvc3Bhbj4KLSAgICAgICAgICAgIHByZWZlcmVuY2UgcGFnZS4KLSAgICAgICAgPC9wPjxkaXYgY2xhc3M9ImltcG9ydGFudCIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjxoMyBjbGFzcz0idGl0bGUiPlhQYXRoIDIuMCBTdXBwb3J0PC9oMz48cD5DdXJyZW50bHkgWFBhdGggMi4wIGlzIG5vdCBzdXBwb3J0ZWQgZGlyZWN0bHkuIEhvd2V2ZXIsIGEgdXNlcgotICAgICAgICAgICAgICAgIGNhbiBhZGQgdGhpcyBzdXBwb3J0IGlmIHRoZXkgbmVlZCBpdCBieSBhZGRpbmcgdGhlIG1pc3NpbmcgWFBhdGggZnVuY3Rpb25zCi0gICAgICAgICAgICAgICAgdG8gdGhlIFhQYXRoIFRlbXBsYXRlcy48L3A+PC9kaXY+PHA+VG8gaW5pdGlhdGUgY29udGVudCBhc3Npc3RhbmNlIHByZXNzIENUUkwgKyBTUEFDRSBvciBDTUQgKyBTUEFDRS4gVGhpcwotICAgICAgICAgICAgd2lsbCBicmluZyB1cCBhIGRpYWxvZyB0aGF0IHdpbGwgY29udGFpbiBhbnkgcHJvcG9zYWxzIHRoYXQgYXJlIGF2YWlsYWJsZS4gSWYKLSAgICAgICAgICAgIG5vIHByb3Bvc2FscyBhcmUgYXZhaWxhYmxlIGFuIG1lc3NhZ2Ugd2lsbCBiZSBkaXNwbGF5ZWQgaW4gdGhlIHN0YXR1cyBiYXIuCi0gICAgICAgIDwvcD48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iZWRfWFNMUHJvcG9zYWxzIj48L2E+WFNMVCBFbGVtZW50IFByb3Bvc2FsczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0gICAgICAgICAgICAgICAgU2luY2UgWFNMVCBpcyBhIHRlbXBsYXRpbmcgbGFuZ3VhZ2UsIGl0J3MgZWxlbWVudHMgbXVzdCBiZSBhYmxlIHRvIGJlCi0gICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIHZhcmlvdXMgbWFya3VwIGl0IGluY2x1ZGVzLiBUaGUgWFNMVCBFZGl0b3Igd2lsbCBwcm92aWRlCi0gICAgICAgICAgICAgICAgY29udGVudCBhc3Npc3RhbmNlIGFuZCBwcm9wb3NhbHMgZm9yIFhTTFQgZWxlbWVudHMgdGhhdCBhcmUgYXZhaWxhYmxlIHRvCi0gICAgICAgICAgICAgICAgYmUgdXNlZCB3aXRoaW4gbm9uLVhTTFQgbmFtZXNwYWNlZCBlbGVtZW50cy4gVGhpcyBpcyBkZXBpY3RlZCBpbgotICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdC5odG1sI2ZpZ19YU0xQcm9wb3NhbHMiIHRpdGxlPSJGaWd1cmUmbmJzcDsxLiZuYnNwO1hTTFQgUHJvcG9zYWxzIHdpdGhpbiBOb24tWFNMVCBlbGVtZW50cyI+RmlndXJlJm5ic3A7MSwgJmxkcXVvO1hTTFQgUHJvcG9zYWxzIHdpdGhpbiBOb24tWFNMVCBlbGVtZW50cyZyZHF1bzs8L2E+Ci0gICAgICAgICAgICAgICAgLgotICAgICAgICAgICAgPC9wPjxkaXYgY2xhc3M9ImZpZ3VyZSI+PGEgbmFtZT0iZmlnX1hTTFByb3Bvc2FscyI+PC9hPjxwIGNsYXNzPSJ0aXRsZSI+PGI+RmlndXJlJm5ic3A7MS4mbmJzcDtYU0xUIFByb3Bvc2FscyB3aXRoaW4gTm9uLVhTTFQgZWxlbWVudHM8L2I+PC9wPjxkaXYgY2xhc3M9ImZpZ3VyZS1jb250ZW50cyI+PGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvZWRpdG9yL3hzbHByb3Bvc2Fscy5wbmciIGFsaWduPSJtaWRkbGUiIGFsdD0iWFNMVCBQcm9wb3NhbHMgd2l0aGluIE5vbi1YU0xUIGVsZW1lbnRzIj48L2Rpdj48L2Rpdj48L2Rpdj48YnIgY2xhc3M9ImZpZ3VyZS1icmVhayI+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X2NhbGx0ZW1wbGF0ZS5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9jYWxsdGVtcGxhdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjc0ZmYzMy4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X2NhbGx0ZW1wbGF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPkNhbGwtVGVtcGxhdGUgQXNzaXN0YW5jZTwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0Lmh0bWwiIHRpdGxlPSJDb250ZW50IEFzc2lzdCI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdF9uYW1lZHRlbXBsYXRlLmh0bWwiIHRpdGxlPSJOYW1lZCBUZW1wbGF0ZSBBc3Npc3RhbmNlIj48bGluayByZWw9Im5leHQiIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0X2luY2x1ZGUuaHRtbCIgdGl0bGU9IkluY2x1ZGUgYW5kIEltcG9ydCBocmVmIEFzc2lzdGFuY2UiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImVkX0NhbGxUZW1wbGF0ZUFzc2lzdCI+PC9hPkNhbGwtVGVtcGxhdGUgQXNzaXN0YW5jZTwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0gICAgICAgICAgICAgICAgQW55Ci0gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+Y2FsbC10ZW1wbGF0ZTwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgIHhzbHQgZWxlbWVudCBoYXMgY29udGVudCBhc3Npc3RhbmNlIGF2YWlsYWJsZSBmb3IgaXQncyBuYW1lIGF0dHJpYnV0ZS4KLSAgICAgICAgICAgICAgICBUaGlzIHdpbGwgcHJvdmlkZSBhIGxpc3Qgb2YgcG9zc2libGUgWFNMVCBuYW1lZCB0ZW1wbGF0ZXMgdGhhdCBjYW4gYmUKLSAgICAgICAgICAgICAgICBjYWxsZWQgZnJvbSB0aGUgY3VycmVudCBzdHlsZXNoZWV0LiBUaGlzIHRha2VzIGludG8gZWZmZWN0IGFsbCBpbmNsdWRlZAotICAgICAgICAgICAgICAgIGFuZCBpbXBvcnRlZCBzdHlsZXNoZWV0cyBhcyB3ZWxsIGFzIHRob3NlIGRlZmluZWQgaW4gdGhlIGN1cnJlbnQKLSAgICAgICAgICAgICAgICBzdHlsZXNoZWV0LgotICAgICAgICAgICAgPC9wPjxkaXYgY2xhc3M9ImZpZ3VyZSI+PGEgbmFtZT0iZmlnX0NhbGxUZW1wbGF0ZUFzc2lzdCI+PC9hPjxwIGNsYXNzPSJ0aXRsZSI+PGI+RmlndXJlJm5ic3A7Ni4mbmJzcDtDYWxsLVRlbXBsYXRlIEFzc2lzdGFuY2U8L2I+PC9wPjxkaXYgY2xhc3M9ImZpZ3VyZS1jb250ZW50cyI+PGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvZWRpdG9yL2NhbGx0ZW1wbGF0ZS5wbmciIGFsaWduPSJtaWRkbGUiIGFsdD0iQ2FsbC1UZW1wbGF0ZSBBc3Npc3RhbmNlIj48L2Rpdj48L2Rpdj48L2Rpdj48YnIgY2xhc3M9ImZpZ3VyZS1icmVhayI+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X2V4Y2x1ZGUuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjZjZGFiLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5FeGNsdWRlLVJlc3VsdC1QcmVmaXhlczwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0Lmh0bWwiIHRpdGxlPSJDb250ZW50IEFzc2lzdCI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdF9zZWxlY3R0ZXN0Lmh0bWwiIHRpdGxlPSJTZWxlY3QsIFRlc3QsIGFuZCBNYXRjaCBBdHRyaWJ1dGVzIj48bGluayByZWw9Im5leHQiIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0X21vZGVhc3Npc3QuaHRtbCIgdGl0bGU9Ik1vZGUgYXR0cmlidXRlIGFzc2lzdGFuY2UiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9IkV4Y2x1ZGVSZXN1bHRQcmVmaXhlc0NvbnRlbnRBc3Npc3QiPjwvYT5FeGNsdWRlLVJlc3VsdC1QcmVmaXhlczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0gICAgICAgICAgICAgICAgVGhlCi0gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+ZXhjbHVkZS1yZXN1bHQtcHJlZml4ZXM8L2VtPjwvc3Bhbj4KLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgaW4gYm90aCBYU0xUIDEuMCBhbmQgWFNMVCAyLjAgYWxsb3dzIGZvciB0aGUgZXhjbHVzaW9uIG9mCi0gICAgICAgICAgICAgICAgY2VydGFpbiBuYW1lc3BhY2UgZGVjbGFyYXRpb25zIGluIHRoZSBvdXRwdXQgZG9jdW1lbnQuIFRoZSBjb250ZW50Ci0gICAgICAgICAgICAgICAgYXNzaXN0YW5jZSBwb3B1bGF0ZXMgYSBsaXN0IG9mIGF2YWlsYWJsZSBuYW1lc3BhY2VzIHRoYXQgaGF2ZSBiZWVuIGRlZmluZWQKLSAgICAgICAgICAgICAgICBpbiB0aGUgc3R5bHNlaGVldCBhbmQgcHJvdmlkZXMgdGhlbSBhcyBwcm9wb3NhbHMgYXMgc2hvd24gaW4KLSAgICAgICAgICAgICAgICA8YSBjbGFzcz0ieHJlZiIgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sI2ZpZ19FeGNsdWRlUmVzdWx0UHJlZml4ZXNDb250ZW50QXNzaXN0MSIgdGl0bGU9IkZpZ3VyZSZuYnNwOzIuJm5ic3A7RXhjbHVkZS1yZXN1bHQtcHJlZml4ZXMgQ29udGVudCBBc3Npc3RhbmNlIj5GaWd1cmUmbmJzcDsyLCAmbGRxdW87RXhjbHVkZS1yZXN1bHQtcHJlZml4ZXMgQ29udGVudCBBc3Npc3RhbmNlCi0gICAgICAgICAgICAgICAgJnJkcXVvOzwvYT4KLSAgICAgICAgICAgICAgICAuCi0gICAgICAgICAgICA8L3A+PGRpdiBjbGFzcz0iZmlndXJlIj48YSBuYW1lPSJmaWdfRXhjbHVkZVJlc3VsdFByZWZpeGVzQ29udGVudEFzc2lzdDEiPjwvYT48cCBjbGFzcz0idGl0bGUiPjxiPkZpZ3VyZSZuYnNwOzIuJm5ic3A7RXhjbHVkZS1yZXN1bHQtcHJlZml4ZXMgQ29udGVudCBBc3Npc3RhbmNlCi0gICAgICAgICAgICAgICAgPC9iPjwvcD48ZGl2IGNsYXNzPSJmaWd1cmUtY29udGVudHMiPjxkaXYgY2xhc3M9Im1lZGlhb2JqZWN0IiBhbGlnbj0iY2VudGVyIj48aW1nIHNyYz0iLi4vaW1hZ2VzL2VkaXRvci9FeGNsdWRlQ29udGVudEFzc2lzdDEucG5nIiBhbGlnbj0ibWlkZGxlIiBhbHQ9IkV4Y2x1ZGUtcmVzdWx0LXByZWZpeGVzIENvbnRlbnQgQXNzaXN0YW5jZSI+PC9kaXY+PC9kaXY+PC9kaXY+PGJyIGNsYXNzPSJmaWd1cmUtYnJlYWsiPjxwPgotICAgICAgICAgICAgICAgIElmIHRoZSBhdHRyaWJ1dGUgaGFzIG5vIHZhbHVlcyBkZWZpbmVkLCB0aGVuIHRoZQotICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPiNhbGw8L2VtPjwvc3Bhbj4KLSAgICAgICAgICAgICAgICB2YWx1ZSB3aWxsIGJlIGF2YWlsYWJsZSBpbiB0aGUgbGlzdC4gSWYgI2FsbCBpcyBhbHJlYWR5IGluIHRoZSBhdHRyaWJ1dGVzCi0gICAgICAgICAgICAgICAgdmFsdWUsIHRoZW4gbm8gY29udGVudCBhc3Npc3RhbmNlIHdpbGwgYmUgYXZhaWxhYmxlLgotICAgICAgICAgICAgPC9wPjxkaXYgY2xhc3M9ImZpZ3VyZSI+PGEgbmFtZT0iZmlnX0V4Y2x1ZGVSZXN1bHRQcmVmaXhlc0NvbnRlbnRBc3Npc3QyIj48L2E+PHAgY2xhc3M9InRpdGxlIj48Yj5GaWd1cmUmbmJzcDszLiZuYnNwO0ZpbHRlcmVkIGV4Y2x1ZGUtcmVzdWx0LXByZWZpeGVzIHByb3Bvc2FsczwvYj48L3A+PGRpdiBjbGFzcz0iZmlndXJlLWNvbnRlbnRzIj48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9lZGl0b3IvRXhjbHVkZUNvbnRlbnRBc3Npc3QyLnBuZyIgYWxpZ249Im1pZGRsZSIgYWx0PSJGaWx0ZXJlZCBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcyBwcm9wb3NhbHMiPjwvZGl2PjwvZGl2PjwvZGl2PjxiciBjbGFzcz0iZmlndXJlLWJyZWFrIj48cD5Db250ZW50IGFzc2lzdGFuY2UgaXMgaW50ZWxsaWdlbnQgZW5vdWdoIHRvIGtub3cgd2hlbiBhIG5hbWVzcGFjZQotICAgICAgICAgICAgICAgIHByZWZpeCBpcyBhbHJlYWR5IGluIHRoZSBsaXN0IG9mIGV4Y2x1ZGVkIG5hbWVzcGFjZXMuIEluIHRoaXMgY2FzZSBpdCB3aWxsCi0gICAgICAgICAgICAgICAgbm90IHNob3cgdGhlIG5hbWVzcGFjZSBpbiB0aGUgcHJvcG9zYWwgbGlzdC48L3A+PGRpdiBjbGFzcz0ibm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjxoMyBjbGFzcz0idGl0bGUiPiBXaHkgaXNuJ3QgdGhlIFhTTCBOYW1lc3BhY2UgcHJlZml4IGluIHRoZSBwcm9wb3NhbHM/PC9oMz48cD5DdXJyZW50bHkgdGhlIHhzbCBwcmVmaXggb3IgYW55IHByZWZpeCB0aGF0IHVzZXMgdGhlIFhTTAotICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2UgaXMgZXhjbHVkZWQgZnJvbSB0aGUgbGlzdC4gVGhpcyBtYXkgYmUgY2hhbmdlZCBhdCBhIGZ1dHVyZQotICAgICAgICAgICAgICAgICAgICBkYXRlLiBUaGlzIHdpbGwgZGVwZW5kIG9uIHVzZXIgZmVlZGJhY2suPC9wPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9pbmNsdWRlLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X2luY2x1ZGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUxNWI3Ny4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X2luY2x1ZGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+SW5jbHVkZSBhbmQgSW1wb3J0IGhyZWYgQXNzaXN0YW5jZTwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0Lmh0bWwiIHRpdGxlPSJDb250ZW50IEFzc2lzdCI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdF9jYWxsdGVtcGxhdGUuaHRtbCIgdGl0bGU9IkNhbGwtVGVtcGxhdGUgQXNzaXN0YW5jZSI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJ4c2xlZGl0b3JfdGVtcGxhdGVzLmh0bWwiIHRpdGxlPSJUZW1wbGF0ZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9ImVkX2hyZWYiPjwvYT4KLSAgICAgICAgICAgICAgICBJbmNsdWRlIGFuZCBJbXBvcnQKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5ocmVmPC9lbT48L3NwYW4+Ci0gICAgICAgICAgICAgICAgQXNzaXN0YW5jZQotICAgICAgICAgICAgPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj48cD5YU0xUIHN0eWxlc2hlZXRzIGhhdmUgdGhlIGFiaWxpdHkgdG8gaW1wb3J0IGFuZCBpbmNsdWRlIG90aGVyCi0gICAgICAgICAgICAgICAgc3R5bGVzaGVldHMuIFRoaXMgYWxsb3dzIGZvciBhIG1vZHVsYXIgc3RydWN0dXJlIGZvciB0aGUgdGVtcGxhdGVzIHRvIGJlCi0gICAgICAgICAgICAgICAgY3JlYXRlZC4gSXQgYWxzbyBhbGxvd3MgZm9yIGVhc2llciBtYWludGVuYW5jZS4gSG93ZXZlciwgaWYgb25lIGlzIHdvcmtpbmcKLSAgICAgICAgICAgICAgICB3aXRoIGEgbGFyZ2UgcHJvamVjdCBsaWtlIHRoZSBEb2NCb29rIFByb2plY3RzIHN0eWxlc2hlZXRzIGl0IGNhbiBiZQotICAgICAgICAgICAgICAgIGRpZmZpY3VsdCB0byByZW1lbWJlciB0aGUgbmFtZXMgYW5kIGxvY2F0aW9ucyBvZiBhbGwgdGhlIHN0eWxlc2hlZXRzLgotICAgICAgICAgICAgPC9wPjxwPgotICAgICAgICAgICAgICAgIFRvIHRoaXMgZW5kLCB0aGUgWFNMVCBlZGl0b3IgcHJvdmlkZXMgY29udGVudCBhc3Npc3RhbmNlIGZvciB0aGUKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5ocmVmPC9lbT48L3NwYW4+Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlLiBUaGUgc2NvcGUgb2YgdGhlIGFzc2lzdGFuY2UgaXMgcmVzdHJpY3RlZCB0byB0aGUgcHJvamVjdCB0aGF0Ci0gICAgICAgICAgICAgICAgdGhlIGN1cnJlbnQgc3R5bGVzaGVldCB0aGF0IGlzIGJlaW5nIGVkaXR0ZWQgcmVzaWRlcy4KLSAgICAgICAgICAgIDwvcD48ZGl2IGNsYXNzPSJmaWd1cmUiPjxhIG5hbWU9ImZpZ19IUkVGQXNzaXN0YW5jZSI+PC9hPjxwIGNsYXNzPSJ0aXRsZSI+PGI+RmlndXJlJm5ic3A7Ny4mbmJzcDtJbmNsdWRlL0ltcG9ydCBocmVmIEFzc2lzdGFuY2U8L2I+PC9wPjxkaXYgY2xhc3M9ImZpZ3VyZS1jb250ZW50cyI+PGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvZWRpdG9yL2hyZWZBc3Npc3RhbmNlLnBuZyIgYWxpZ249Im1pZGRsZSIgYWx0PSJJbmNsdWRlL0ltcG9ydCBocmVmIEFzc2lzdGFuY2UiPjwvZGl2PjwvZGl2PjwvZGl2PjxiciBjbGFzcz0iZmlndXJlLWJyZWFrIj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfbW9kZWFzc2lzdC5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9tb2RlYXNzaXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmYzY1YjAuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9tb2RlYXNzaXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPk1vZGUgYXR0cmlidXRlIGFzc2lzdGFuY2U8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdC5odG1sIiB0aXRsZT0iQ29udGVudCBBc3Npc3QiPjxsaW5rIHJlbD0icHJldiIgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sIiB0aXRsZT0iRXhjbHVkZS1SZXN1bHQtUHJlZml4ZXMiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfbmFtZWR0ZW1wbGF0ZS5odG1sIiB0aXRsZT0iTmFtZWQgVGVtcGxhdGUgQXNzaXN0YW5jZSI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iZWRfTW9kZUFzc2lzdCI+PC9hPk1vZGUgYXR0cmlidXRlIGFzc2lzdGFuY2U8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwPgotICAgICAgICAgICAgICAgIENvbnRlbnQgYXNzaXN0YW5jZSBpcyBhdmFpbGFibGUgZm9yIHRob3NlIHhzbCBlbGVtZW50cyB0aGF0IHN1cHBvcnQgdGhlCi0gICAgICAgICAgICAgICAgbW9kZSBhdHRyaWJ1dGUuIEZvciBYU0xUIDEuMCB0aGVzZSBlbGVtZW50cyBhcmUKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT50ZW1wbGF0ZTwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgICwKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5hcHBseS10ZW1wbGF0ZXM8L2VtPjwvc3Bhbj4KLSAgICAgICAgICAgICAgICAsIGFuZAotICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPmFwcGx5LWltcG9ydHM8L2VtPjwvc3Bhbj4KLSAgICAgICAgICAgICAgICAuCi0gICAgICAgICAgICA8L3A+PGRpdiBjbGFzcz0iZmlndXJlIj48YSBuYW1lPSJmaWdfTW9kZUFzc2lzdGFuY2UiPjwvYT48cCBjbGFzcz0idGl0bGUiPjxiPkZpZ3VyZSZuYnNwOzQuJm5ic3A7TW9kZSBhdHRyaWJ1dGUgYXNzaXN0YW5jZTwvYj48L3A+PGRpdiBjbGFzcz0iZmlndXJlLWNvbnRlbnRzIj48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9lZGl0b3IvbW9kZUFzc2lzdGFuY2UucG5nIiBhbGlnbj0ibWlkZGxlIiBhbHQ9Ik1vZGUgYXR0cmlidXRlIGFzc2lzdGFuY2UiPjwvZGl2PjwvZGl2PjwvZGl2PjxiciBjbGFzcz0iZmlndXJlLWJyZWFrIj48cD4KLSAgICAgICAgICAgICAgICBUaGUgcHJvcG9zYWwgbGlzdCBpcyBwb3B1bGF0ZWQgYnkgdGhvc2UgbW9kZXMgZGVmaW5lZCBvbiB0ZW1wbGF0ZXMgaW4gdGhlCi0gICAgICAgICAgICAgICAgY3VycmVudCBzdHlsZXNoZWV0LCBhbmQgYW55IG9mIHRoZSB0ZW1wbGF0ZXMgdGhhdCBhcmUKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5pbmNsdWRlZDwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgIG9yCi0gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+aW1wb3J0ZWQ8L2VtPjwvc3Bhbj4KLSAgICAgICAgICAgICAgICAuCi0gICAgICAgICAgICA8L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X25hbWVkdGVtcGxhdGUuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfbmFtZWR0ZW1wbGF0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2Yjg3NTAxLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfbmFtZWR0ZW1wbGF0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPk5hbWVkIFRlbXBsYXRlIEFzc2lzdGFuY2U8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdC5odG1sIiB0aXRsZT0iQ29udGVudCBBc3Npc3QiPjxsaW5rIHJlbD0icHJldiIgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfbW9kZWFzc2lzdC5odG1sIiB0aXRsZT0iTW9kZSBhdHRyaWJ1dGUgYXNzaXN0YW5jZSI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdF9jYWxsdGVtcGxhdGUuaHRtbCIgdGl0bGU9IkNhbGwtVGVtcGxhdGUgQXNzaXN0YW5jZSI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgzIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iZWRfTmFtZWRUZW1wbGF0ZUFzc2lzdCI+PC9hPk5hbWVkIFRlbXBsYXRlIEFzc2lzdGFuY2U8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwPgotICAgICAgICAgICAgICAgIENhbGwgTmFtZWQgdGVtcGxhdGVzIGhhdmUgY29udGVudCBhc3Npc3RhbmNlIGF2YWlsYWJsZSBmb3IgdGhlaXIKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5uYW1lPC9lbT48L3NwYW4+Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcy4gVGhpcyB3aWxsIHByb3ZpZGUgYSBsaXN0IG9mIGNhbGxlZC10ZW1wbGF0ZXMgdGhhdCBoYXZlIGJlZW4KLSAgICAgICAgICAgICAgICB1c2VkLCBidXQgaGF2ZSBub3QgeWV0IGJlZW4gZGVmaW5lZCBvciBvdmVycmlkZGVuIHdpdGhpbiB0aGUgY3VycmVudAotICAgICAgICAgICAgICAgIHN0eWxlc2hlZXQuCi0gICAgICAgICAgICA8L3A+PGRpdiBjbGFzcz0iZmlndXJlIj48YSBuYW1lPSJmaWdfTmFtZWRUZW1wbGF0ZXMiPjwvYT48cCBjbGFzcz0idGl0bGUiPjxiPkZpZ3VyZSZuYnNwOzUuJm5ic3A7TmFtZWQgVGVtcGxhdGUgQXNzaXN0YW5jZTwvYj48L3A+PGRpdiBjbGFzcz0iZmlndXJlLWNvbnRlbnRzIj48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9lZGl0b3IvbmFtZWRUZW1wbGF0ZS5wbmciIGFsaWduPSJtaWRkbGUiIGFsdD0iTmFtZWQgVGVtcGxhdGUgQXNzaXN0YW5jZSI+PC9kaXY+PC9kaXY+PC9kaXY+PGJyIGNsYXNzPSJmaWd1cmUtYnJlYWsiPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9zZWxlY3R0ZXN0Lmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X3NlbGVjdHRlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTU0MTgwNy4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X3NlbGVjdHRlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+U2VsZWN0LCBUZXN0LCBhbmQgTWF0Y2ggQXR0cmlidXRlczwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbGVkaXRvcl9jb250ZW50YXNzaXN0Lmh0bWwiIHRpdGxlPSJDb250ZW50IEFzc2lzdCI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJ4c2xlZGl0b3JfY29udGVudGFzc2lzdC5odG1sIiB0aXRsZT0iQ29udGVudCBBc3Npc3QiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sIiB0aXRsZT0iRXhjbHVkZS1SZXN1bHQtUHJlZml4ZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9IlNlbGVjdFRlc3QiPjwvYT5TZWxlY3QsIFRlc3QsIGFuZCBNYXRjaCBBdHRyaWJ1dGVzPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLSAgICAgICAgICAgICAgICBXaGVyZSBldmVyIGFuIHhzbCBlbGVtZW50IHN1cHBvcnRzIGEKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5zZWxlY3Q8L2VtPjwvc3Bhbj4KLSAgICAgICAgICAgICAgICAsCi0gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImVtcGhhc2lzIj48ZW0+dGVzdDwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgICwgb3IKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5tYXRjaDwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSwgY29udGVudCBhc3Npc3RhbmNlIGlzIGF2YWlsYWJsZS4gVGhpcyBpbmNsdWRlcyBzdXBwb3J0IGZvciB0aGUKLSAgICAgICAgICAgICAgICBmb2xsb3dpbmc6Ci0gICAgICAgICAgICA8L3A+PGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48cCBjbGFzcz0idGl0bGUiPjxiPlNlbGVjdCwgTWF0Y2ggYW5kIFRlc3QgQXNzaXN0YW5jZTwvYj48L3A+PHVsIHR5cGU9ImRpc2MiPjxsaT48cD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlZhcmlhYmxlczwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAgICAgLSBib3RoIGxvY2FsIGFuZCBnbG9iYWwgdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQgd2l0aGluIHRoZSBjdXJyZW50Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXNoZWV0LiBBbnkgbG9jYWwgb3IgZ2xvYmFsIHZhcmlhYmxlIHdpbGwgYmUgYWRkZWQgdG8gdGhlIGxpc3QKLSAgICAgICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgbmFtZSBpcyBwcmVmaXhlZCB3aXRoIGEgZG9sbGFyIHNpZ24gJCBzeW1ib2wuCi0gICAgICAgICAgICAgICAgICAgIDwvcD48L2xpPjxsaT48cD4KLSAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlhQYXRoIDEuMDwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAgICAgLSBYUGF0aCAxLjAgaXMgc3VwcG9ydGVkIHRocm91Z2ggdGhlIHVzZSBvZiB0ZW1wbGF0ZXMuIEFsbCBvZiB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgIFhQYXRoIDEuMCBhbmQgWFNMVCB4cGF0aCBleHRlbnNpb24gZnVuY3Rpb25zIGFyZSBhdmFpbGFibGUsIGFzCi0gICAgICAgICAgICAgICAgICAgICAgICB3ZWxsIGFzCi0gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5heGlzPC9lbT48L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25zLiBDdXJyZW50bHkgWFBhdGggMi4wIGlzIG5vdCBzdXBwb3J0ZWQgZGlyZWN0bHksIGJ1dAotICAgICAgICAgICAgICAgICAgICAgICAgd2lsbCBiZSBhZGRlZCBpbiB0aGUgZnV0dXJlLgotICAgICAgICAgICAgICAgICAgICA8L3A+PC9saT48L3VsPjwvZGl2PjxwPkNvbnRlbnQgYXNzaXN0YW5jZSBmb3IgdGhlIHNlbGVjdCBhbmQgdGVzdCBhdHRyaWJ1dGVzIGlzCi0gICAgICAgICAgICAgICAgaW50ZWxsaWdlbnQgZW5vdWdoIHRvIGtub3cgdGhhdCBpdCBpcyB3aXRoaW4gYW4gWFBhdGggZXhwcmVzc2lvbiwgYW5kIHdpbGwKLSAgICAgICAgICAgICAgICB0cnkgdG8gZGV0ZXJtaW5lIGFuZCBwcm92aWRlIGNvbnRlbnQgYXNzaXN0YW5jZSBiYXNlZCBvbiB0aGUgY3VycmVudAotICAgICAgICAgICAgICAgIGN1cnNvciBwb3NpdGlvbi4gSWYgYSB3b3JkIGhhcyBiZWVuIHBhcnRpYWxseSB0eXBlZCBpdCB3aWxsIGZpbHRlciB0aGUKLSAgICAgICAgICAgICAgICBhdmFpbGFibGUgYXNzaXN0YW5jZS48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9kZWJ1Z2dpbmcuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2RlYnVnZ2luZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZmUzODRhLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX2RlYnVnZ2luZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5OYXZpZ2F0aW9uPC90aXRsZT48bGluayBocmVmPSJib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PGxpbmsgaHJlZj0iLi4vYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxtZXRhIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiIG5hbWU9ImdlbmVyYXRvciI+PGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0ieHNsZWRpdG9yLmh0bWwiIHRpdGxlPSJYU0wgRWRpdGluZyI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJ4c2xlZGl0b3JfZGVidWdnaW5nLmh0bWwiIHRpdGxlPSJYU0wgRGVidWdnaW5nIj48bGluayByZWw9Im5leHQiIGhyZWY9Ii4uL2xhdW5jaGluZy9sYXVuY2hpbmcuaHRtbCIgdGl0bGU9IlhTTCBMYXVuY2hpbmcgYW5kIERlYnVnZ2luZyI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJOMTAyMjMiPjwvYT5OYXZpZ2F0aW9uPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLSAgICAgICAgICAgIE1hbnkgb2YgdGhlIHZhcmlhYmxlcywgaW1wb3J0cy9pbmNsdWRlcywgYW5kIHRlbXBsYXRlcyBjYW4gYmUgbmF2aWdhdGVkIHRvCi0gICAgICAgICAgICB1c2luZyB0aGUKLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPk9wZW4gRGVjbGFyYXRpb24gKEYzKTwvZW0+PC9zcGFuPgotICAgICAgICAgICAgcG9wdXAgbWVudSBvcHRpb24uIFRoZXkgY2FuIGFsc28gYmUgbmF2aWdhdGVkIHRvIGRpcmVjdGx5IGJ5IENUUkwtQ2xpY2tpbmcgb24KLSAgICAgICAgICAgIHRoZSBuYW1lIG9mIHRoZSB2YXJpYWJsZSwgaW1wb3J0L2luY2x1ZGUsIG9yIHRlbXBsYXRlLiBJdGVtcyB0aGF0IGN1cnJlbnRseQotICAgICAgICAgICAgaGF2ZSBoeXBlcmxpbmtpbmcgbmF2aWdhdGlvbiBhcmU6Ci0gICAgICAgIDwvcD48ZGl2IGNsYXNzPSJpdGVtaXplZGxpc3QiPjx1bCB0eXBlPSJkaXNjIj48bGk+PHA+Q2FsbGVkLVRlbXBsYXRlczwvcD48L2xpPjxsaT48cD5ocmVmcyBmb3IgSW1wb3J0IGFuZCBJbmNsdWRlczwvcD48L2xpPjxsaT48cD5XaXRoLVBhcmFtIHZhcmlhYmxlczwvcD48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0idGlwIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+PGgzIGNsYXNzPSJ0aXRsZSI+TmF2aWdhdGlvbiB0byBhIE5hbWVkIFRlbXBsYXRlIGluIGFuIGluY2x1ZGVkL2ltcG9ydGVkCi0gICAgICAgICAgICAgICAgc3R5bHNoZWV0PC9oMz48cD4gVGhlIGh5cGVybGlua2luZyBhYmlsaXR5IHdpbGwgbmF2aWdhdGUgeW91IHRvIHdoZXJlIGV2ZXIgdGhlIGZpcnN0Ci0gICAgICAgICAgICAgICAgZGVmaW5pdGlvbiBvZiB0aGUgdGVtcGxhdGUgaXMgZGVmaW5lZC4gU28gaWYgdGhlIHRlbXBsYXRlIGlzIGRlZmluZWQKLSAgICAgICAgICAgICAgICB3aXRoaW4gdGhlIGN1cnJlbnQgc3R5bGVzaGVldCBpdCB3aWxsIG5hdmlnYXRlIHRvIHRoYXQgZGVmaW5pdGlvbi4gSG93ZXZlcgotICAgICAgICAgICAgICAgIGlmIGl0IGlzIGRlZmluZWQgaW4gYW4gaW1wb3J0ZWQgb3IgaW5jbHVkZWQgc3R5bGVzaGVldCwgb3IgYW55IG9mIHRob3NlCi0gICAgICAgICAgICAgICAgaW1wb3J0ZWQgb3IgaW5jbHVkZWQgc3R5bGVzaGVldHMgaXQgd2lsbCB0YWtlIHlvdSB0byB0aGF0IGRlZmluaXRpb24uIFVzZQotICAgICAgICAgICAgICAgIHRoZSBzdGFuZGFyZCBuYXZpZ2F0aW9uIGVycm9ycyB0byBtb3ZlIGJhY2sgYW5kIGZvcnRoIGR1cmluZyB0aGlzCi0gICAgICAgICAgICAgICAgaHlwZXJsaW5raW5nLjwvcD48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX21hcmtlcnMuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX21hcmtlcnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkzNzE2MC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl9tYXJrZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPlhTTFQgTWFya2VycyBhbmQgQW5ub3RhdGlvbnM8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJ4c2xlZGl0b3IuaHRtbCIgdGl0bGU9IlhTTCBFZGl0aW5nIj48bGluayByZWw9InByZXYiIGhyZWY9InhzbGVkaXRvcl9jb2xvcmluZy5odG1sIiB0aXRsZT0iWFNMVCBTeW50YXggQ29sb3JpbmciPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ieHNsZWRpdG9yX2RlYnVnZ2luZy5odG1sIiB0aXRsZT0iWFNMIERlYnVnZ2luZyI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJ4c2x0TWFya2VycyI+PC9hPlhTTFQgTWFya2VycyBhbmQgQW5ub3RhdGlvbnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxwPlRoZSBYU0wgZWRpdG9yIHN1cHBvcnRzIHRoZSBhYmlsaXR5IHRvIGFubm90YXRlIG9yIHByb3ZpZGUgbWFya2Vycy4gVGhlc2UKLSAgICAgICAgICAgIGFubm90YXRpb25zIHByb3ZpZGUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdGVtcGxhdGVzIGFuZCBYU0xUCi0gICAgICAgICAgICBlbGVtZW50cyBpbiB0aGUgc3R5bGVzaGVldC48L3A+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9InhzbHRPdmVyUmlkZSI+PC9hPlRlbXBsYXRlIE92ZXJyaWRlPC9oMz48L2Rpdj48L2Rpdj48L2Rpdj48cD5UaGUgWFNMVCBlZGl0b3Igd2lsbCBtYXJrIHRlbXBsYXRlcyB0aGF0IGhhdmUgb3ZlcnJpZGVuIGFuIGltcG9ydGVkCi0gICAgICAgICAgICAgICAgdGVtcGxhdGUgb2YgdGhlIHNhbWUgbmFtZS48L3A+PGRpdiBjbGFzcz0iZmlndXJlIj48YSBuYW1lPSJmaWdfT3ZlclJpZGUxIj48L2E+PHAgY2xhc3M9InRpdGxlIj48Yj5GaWd1cmUmbmJzcDs5LiZuYnNwO092ZXJyaWRlbiBUZW1wbGF0ZTwvYj48L3A+PGRpdiBjbGFzcz0iZmlndXJlLWNvbnRlbnRzIj48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9lZGl0b3Ivb3ZlcnJpZGUxLnBuZyIgYWxpZ249Im1pZGRsZSIgYWx0PSJPdmVycmlkZW4gVGVtcGxhdGUiPjwvZGl2PjwvZGl2PjwvZGl2PjxiciBjbGFzcz0iZmlndXJlLWJyZWFrIj48cD4KLSAgICAgICAgICAgICAgICBJbgotICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJ4cmVmIiBocmVmPSJ4c2xlZGl0b3JfbWFya2Vycy5odG1sI2ZpZ19PdmVyUmlkZTEiIHRpdGxlPSJGaWd1cmUmbmJzcDs5LiZuYnNwO092ZXJyaWRlbiBUZW1wbGF0ZSI+RmlndXJlJm5ic3A7OSwgJmxkcXVvO092ZXJyaWRlbiBUZW1wbGF0ZSZyZHF1bzs8L2E+Ci0gICAgICAgICAgICAgICAgLCB0aGUgdGVtcGxhdGUKLSAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5UZW1wQjwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgIG92ZXJyaWRlcyBhbiBpbXBvcnRlZCB0ZW1wbGF0ZS4gQnkgbW92aW5nIHRoZSBtb3VzZSBwb2ludGVyIG92ZXIgdGhlCi0gICAgICAgICAgICAgICAgdHJpYW5nbGUgaWNvbiBpbiB0aGUgcnVsZSBiYXIsIGluZm9ybWF0aW9uIGFib3V0IHdoaWNoIGZpbGUgdGhlIG9yaWdpbmFsCi0gICAgICAgICAgICAgICAgdGVtcGxhdGUgcmVzaWRlcy4KLSAgICAgICAgICAgIDwvcD48ZGl2IGNsYXNzPSJmaWd1cmUiPjxhIG5hbWU9ImZpZ19PdmVyUmlkZTIiPjwvYT48cCBjbGFzcz0idGl0bGUiPjxiPkZpZ3VyZSZuYnNwOzEwLiZuYnNwO092ZXJyaWRlbiBUZW1wbGF0ZSBJbmZvcm1hdGlvbjwvYj48L3A+PGRpdiBjbGFzcz0iZmlndXJlLWNvbnRlbnRzIj48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9lZGl0b3Ivb3ZlcnJpZGUyLnBuZyIgYWxpZ249Im1pZGRsZSIgYWx0PSJPdmVycmlkZW4gVGVtcGxhdGUgSW5mb3JtYXRpb24iPjwvZGl2PjwvZGl2PjwvZGl2PjxiciBjbGFzcz0iZmlndXJlLWJyZWFrIj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9lZGl0b3IveHNsZWRpdG9yX3RlbXBsYXRlcy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfdGVtcGxhdGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1MDJlZWUuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfdGVtcGxhdGVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPlRlbXBsYXRlczwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbGVkaXRvci5odG1sIiB0aXRsZT0iWFNMIEVkaXRpbmciPjxsaW5rIHJlbD0icHJldiIgaHJlZj0ieHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfaW5jbHVkZS5odG1sIiB0aXRsZT0iSW5jbHVkZSBhbmQgSW1wb3J0IGhyZWYgQXNzaXN0YW5jZSI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJ4c2xlZGl0b3JfY29sb3JpbmcuaHRtbCIgdGl0bGU9IlhTTFQgU3ludGF4IENvbG9yaW5nIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9IlhTTEVkaXRvclRlbXBsYXRlcyI+PC9hPlRlbXBsYXRlczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PHA+U3BlY2lmaWMgWFNMIGNvZGUgY29tcGxldGlvbiB0ZW1wbGF0ZXMgY2FuIGJlIGFkZGVkIHRvIHRoZSBYTUwKLSAgICAgICAgICAgIGVkaXRvcidzIFRlbXBsYXRlcy4gVGhpcyBhbGxvd3MgYSB1c2VyIHRvIGRlZmluZSBzcGVjaWZpYyBtYXJrdXAgY29tcGxldGlvbgotICAgICAgICAgICAgdGVtcGxhdGVzIHRoYXQgYXJlIGNvbW1vbmx5IHVzZWQuIEluIGFkZGl0aW9uLCB0aGUgWFBhdGggVGVtcGxhdGVzIHBhZ2UgY2FuIGJlCi0gICAgICAgICAgICBlbmhhbmNlZCB0byBhbGxvdyBjb21tb25seSB1c2VkIFhQYXRoIHRlbXBsYXRlcyB0byBiZSBpbmNsdWRlZCwgaW4gYWRkaXRpb24gdG8KLSAgICAgICAgICAgIHRob3NlIGluc3RhbGxlZCBieSBkZWZhdWx0LiBUaGlzIGFsbG93cyBhIHVzZXIgdGhlIGFiaWxpdHkgdG8gYWRkIGN1c3RvbQotICAgICAgICAgICAgZXh0ZW5zaW9uIGZ1bmN0aW9ucyBmb3IgWFNMVCB0aGF0IG1heSBiZSBwcm9jZXNzb3Igc3BlY2lmaWMuIEFkb3B0ZXJzIG1heSBhbHNvCi0gICAgICAgICAgICB1c2UgdGhlIHN0YW5kYXJkIHRlbXBsYXRlIGV4dGVuc2lvbiBwb2ludCB0byBhZGQgYWRkaXRpb25hbCBmdW5jdGlvbmFsaXR5LgotICAgICAgICA8L3A+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9Ik4xMDFEMyI+PC9hPlhQYXRoIFRlbXBsYXRlczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+VGhlIFhTTCBYUGF0aCBUZW1wbGF0ZXMgcHJlZmVyZW5jZSBwYWdlIGFsbG93cyBmb3IgYSB1c2VyIG9yIGFkb3B0ZXIKLSAgICAgICAgICAgICAgICB0byBhZGQgc3BlY2lmaWMgeHBhdGggZXh0ZW5zaW9ucyBzbyB0aGF0IHRoZXkgc2hvdyB1cCBpbiB0aGUgY29udGVudAotICAgICAgICAgICAgICAgIGFzc2lzdGFuY2UuIFNlZSB0aGUgWFBhdGggVGVtcGxhdGVzIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRpb24uCi0gICAgICAgICAgICA8L3A+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl92YWxpZGF0aW9uLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZWRpdG9yL3hzbGVkaXRvcl92YWxpZGF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2ZGY4ZTMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2VkaXRvci94c2xlZGl0b3JfdmFsaWRhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5Db250ZW50IEFzc2lzdDwvdGl0bGU+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzMuMiIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9InN0YXJ0IiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xpbmcgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJ4c2xlZGl0b3IuaHRtbCIgdGl0bGU9IkNoYXB0ZXImbmJzcDsyLiZuYnNwO1hTTCBFZGl0aW5nIj48bGluayByZWw9InByZXYiIGhyZWY9InhzbGVkaXRvci5odG1sIiB0aXRsZT0iQ2hhcHRlciZuYnNwOzIuJm5ic3A7WFNMIEVkaXRpbmciPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ieHNsZWRpdG9yX3RlbXBsYXRlcy5odG1sIiB0aXRsZT0iVGVtcGxhdGVzIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9Ik4xMDA1NiI+PC9hPkNvbnRlbnQgQXNzaXN0PC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLQkJICAgIFhTTCBUb29saW5nIGV4dGVuZHMgdGhlIGV4aXN0aW5nIGNvbnRlbnQgYXNzaXN0YW5jZSBzdXBwb3J0IG9mIHRoZSBYTUwKLQkJICAgIEVkaXRvciB0byBwcm92aWRlIGNvbnRlbnQgYXNzaXN0YW5jZSBmb3Igc2V2ZXJhbCBYU0wgbmFtZXNwYWNlIGF0dHJpYnV0ZXMuCi0JCSAgICBUaGUgY29udGVudCBhc3Npc3RhbmNlIHByb3ZpZGVkIGNvdmVycyB0aGUgYXZhaWxhYmxlIFhQYXRoIHN0YXRlbWVudHMgYXMKLQkJICAgIGRlZmluZWQgaW4gdGhlIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlhQYXRoIFRlbXBsYXRlczwvZW0+PC9zcGFuPiBwcmVmZXJlbmNlIHBhZ2UuCi0JCTwvcD48cD4KLQkJCVRoZSBlbGVtZW50cyBhbmQgYXR0cmlidXRlcyB0aGF0IGhhdmUgY29udGVudCBhc3Npc3QgYXZhaWxhYmxlIGFyZSBhcyBmb2xsb3dzOgotCQk8L3A+PGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgdHlwZT0iZGlzYyI+PGxpPjxwPgotCQkJCSAgICA8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz50ZW1wbGF0ZTwvc3Ryb25nPjwvc3Bhbj4gLSBUaGUgdGVtcGxhdGUgZWxlbWVudCBoYXMgc2V2ZXJhbCBjb250ZW50IGFzc2lzdAotCQkJCSAgICBvcHRpb25zIGF2YWlsYWJsZSBmb3IgdGhlIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPm1hdGNoPC9lbT48L3NwYW4+LCA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5uYW1lPC9lbT48L3NwYW4+LCBhbmQgCi0JCQkJICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPm1vZGU8L2VtPjwvc3Bhbj4gYXR0cmlidXRlcy4KLQkJCQk8L3A+PHA+Ci0JCQkJCUFkZCBpbWFnZSBzaG93aW5nIHRlbXBsYXRlIGNvbXBsZXRpb24uCi0JCQkJPC9wPjwvbGk+PGxpPjxwPgotCQkJCQk8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz52YXJpYWJsZTwvc3Ryb25nPjwvc3Bhbj4gYW5kIDxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPnBhcmFtPC9zdHJvbmc+PC9zcGFuPiAtIFRoZSB2YXJpYWJsZSBhbmQgcGFyYW0gZWxlbWVudHMgaGF2ZSBjb250ZW50IGFzc2lzdAotCQkJCQlmb3IgeHBhdGgsIGF4aXMsIHBhcm1hdGVycyBhbmQgdmFyaWFibGVzIHRoYXQgaGF2ZSBhbHJlYWR5IGJlZW4gcHJlZGVmaW5lZCB3aGVuIHVzaW5nIHRoZSBvcHRpb25hbAotCQkJCQk8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5zZWxlY3Q8L2VtPjwvc3Bhbj4gYXR0cmlidXRlLgotCQkJCTwvcD48cD4KLQkJCQkJQWRkIGltYWdlIHNob3dpbmcgdmFyaWFibGUgY29tcGxldGlvbi4KLQkJCQk8L3A+PC9saT48bGk+PHA+Ci0JCQkJCTxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPmlmPC9zdHJvbmc+PC9zcGFuPiBhbmQgPHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+d2hlbjwvc3Ryb25nPjwvc3Bhbj4gLSBUaGUKLQkJCQkJaWYgYW5kIHdoZW4gZWxlbWVudHMgaGF2ZSBjb250ZW50IGFzc2lzdCBmb3IgdGhlIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPnRlc3Q8L2VtPjwvc3Bhbj4gYXR0cmlidXRlLgotCQkJCQlUaGlzIGNvbnRlbnQgYXNzaXN0YW5jZSBpcyBhdmFpbGFibGUgZm9yIGFsbCBwYXJhbWF0ZXJzIGFuZCB2YXJpYWJsZXMgdGhhdCBhcmUgaW4KLQkJCQkJc2NvcGUsIGFzIHdlbGwgYXMgYW55IGF2YWlsYWJsZSB4cGF0aCBvciBheGlzIHN0YXRlbWVudC4KLQkJCQk8L3A+PHA+Ci0JCQkJCUFkZCBpbWFnZSBzaG93aW5nIHRlc3QgY29tcGxldGlvbi4KLQkJCQk8L3A+PC9saT48bGk+PHA+Ci0JCQkgICAgCTxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPmFwcGx5LXRlbXBsYXRlPC9zdHJvbmc+PC9zcGFuPiAtIFRoZSBhcHBseSB0ZW1wbGF0ZSBoYXMgY29udGVudAotCQkJICAgIAlhc3Npc3RhbmNlIGZvciBib3RoIHRoZSA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5tb2RlPC9lbT48L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5zZWxlY3Q8L2VtPjwvc3Bhbj4KLQkJCSAgICAJYXR0cmlidXRlcy4gCi0JCQkgICAgPC9wPjxwPgotCQkJCQlBZGQgaW1hZ2Ugc2hvd2luZyBhcHBseS10ZW1wbGF0ZSBjb21wbGV0aW9uLgotCQkJCTwvcD48L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iaW1wb3J0YW50IiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+PGgzIGNsYXNzPSJ0aXRsZSI+WFBhdGggMi4wIFN1cHBvcnQ8L2gzPjxwPgotCQkJCUN1cnJlbnRseSBYUGF0aCAyLjAgaXMgbm90IHN1cHBvcnRlZCBkaXJlY3RseS4gIEhvd2V2ZXIsIGEgdXNlciBjYW4gYWRkIHRoaXMgc3VwcG9ydCBpZiB0aGV5IG5lZWQgaXQgYnkKLQkJCQlhZGRpbmcgdGhlIG1pc3NpbmcgWFBhdGggZnVuY3Rpb25zIHRvIHRoZSBYUGF0aCBUZW1wbGF0ZXMuCi0JCQk8L3A+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZ2VuZXJhbC9nZW5lcmFsLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvZ2VuZXJhbC9nZW5lcmFsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwMjk3N2EuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2dlbmVyYWwvZ2VuZXJhbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5HZW5lcmFsPC90aXRsZT48bGluayBocmVmPSJib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PGxpbmsgaHJlZj0iLi4vYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxtZXRhIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiIG5hbWU9ImdlbmVyYXRvciI+PGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0icHJldiIgaHJlZj0iLi4vcHJlZmVyZW5jZXMvc3ludGF4Q29sb3JpbmcuaHRtbCIgdGl0bGU9IlhTTFQgU3ludGF4IENvbG9yaW5nIj48bGluayByZWw9Im5leHQiIGhyZWY9Ii4uL3NhbXBsZXMvc2FtcGxlcy5odG1sIiB0aXRsZT0iWFNMIFRvb2xpbmcgU2FtcGxlcyI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJjaGFwdGVyIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iTjEwM0E3Ij48L2E+R2VuZXJhbDwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idG9jIj48cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZ2VuZXJhbC5odG1sI1hJbmNsdWRlIj5YSW5jbHVkZTwvYT48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxwPlRoaXMgc2VjdGlvbiBjb3ZlcnMgdG9waWNzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgb3RoZXIgcGFydGljdWxhciBwbGFjZSB0byBnby48L3A+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0iWEluY2x1ZGUiPjwvYT5YSW5jbHVkZTwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0gICAgICAJWEluY2x1ZGUgYWxsb3dzIGEgdXNlciB0byBpbXBvcnQgb3IgaW5jbHVkZSBvdGhlciBYTUwgZmlsZXMgaW50byBvbmUgeG1sIGZpbGUuCi0gICAgICAgIEl0IGlzIHVzZWQgcHJpbWFyaWx5IHdpdGggZG9jdW1lbnRhdGlvbiBmaWxlIGZvcm1hdHMgbGlrZSBEb2Nib29rIGFuZCBESVRBLiAgSXQKLSAgICAgICAgYWxsb3dzIGZvciBzZXBhcmF0aW5nIG91dCBsYXJnZSB4bWwgZG9jdW1lbnRzIGludG8gbW9yZSBtYW5hZ2VhYmxlIGNodW5rcyBvZiBpbmZvcm1hdGlvbi4KLSAgICAgIDwvcD48cD4KLSAgICAgIAlUaGUgWFNMIFRvb2xzIHByb2plY3QgaW5jbHVkZXMgYW4gQU5UIHRhc2sgdGhhdCBjYW4gYmUgcnVuIHdpdGggaW4gZWNsaXBzZSwgZWNsaXBzZQotICAgICAgCWhlYWRsZXNzLCBhbmQgd2l0aG91dCBlY2xpcHNlIGF0IGFsbC4gICBJZiBydW5uaW5nIG91dHNpZGUgb2YgZWNsaXBzZSwgeW91IHdpbGwgbmVlZAotICAgICAgCXRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBqYXIgZmlsZSB4aW5jbHVkZS5qYXIgaW4gdGhlIG9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5qYXIgZmlsZQotICAgICAgCWlzIG1hZGUgYXZhaWFibGUgb24geW91ciBjbGFzcyBwYXRoLgotICAgICAgPC9wPjxkaXYgY2xhc3M9Im1lZGlhb2JqZWN0IiBhbGlnbj0iY2VudGVyIj48aW1nIHNyYz0iLi4vaW1hZ2VzL2dlbmVyYWwveGluY2x1ZGUucG5nIiBhbGlnbj0ibWlkZGxlIj48L2Rpdj48cD4KLSAgICAgIAlUaGUgZm9sbG93aW5nIHBhcmFtZXRlcnMgYXJlIGF2YWlsYWJsZSBvbiB0aGUgeHNsLnhpbmNsdWRlIEFOVCB0YXNrOgotICAgICAgPC9wPjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHVsIHR5cGU9ImRpc2MiPjxsaT48cD4KLSAgICAgIAkJCTxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPgotCQkJCQlpbgotCQkJCTwvc3Ryb25nPjwvc3Bhbj4gLSBUaGUgZnVsbCBwYXRoIHRvIHRoZSBpbnB1dCBmaWxlIHRoYXQgY29udGFpbnMKLSAgICAgIAkJCXRoZSBmaWxlIHdpdGggdGhlIFhJbmNsdWRlcy4gICBJZiB0aGUgZmlsZXMgdGhhdCBpdCBpbmNsdWRlcyBoYXZlIGluY2x1ZGVzLCB0aGVuCi0gICAgICAJCQl0aG9zZSB3aWxsIGJlIGJyb3VnaHQgaW4gYW4gZXhwYW5kZWQgYXMgd2VsbC4KLSAgICAgIAkJPC9wPjwvbGk+PGxpPjxwPgotCQkJCQk8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz5vdXQ8L3N0cm9uZz48L3NwYW4+IC0gVGhlIGZ1bGwgcGF0aCB0byB0aGUgb3V0cHV0IGZpbGUgCi0JCQkJCXRvIGJlIHdyaXR0ZW4gd2l0aCBhbGwgaW5jbHVkZXMgZXhwYW5kZWQuICBUaGlzIGlzIHR5cGljYWxseSB1c2VkIGFzIHRoZQotCQkJCQlpbnB1dCB0byBhIHN0eWxlc2hlZXQgdHJhbnNmb3JtYXRpb24gcHJvY2Vzcy4KLQkJCQk8L3A+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImV4YW1wbGUiPjxhIG5hbWU9Ik4xMDNEMiI+PC9hPjxwIGNsYXNzPSJ0aXRsZSI+PGI+RXhhbXBsZSZuYnNwOzEuJm5ic3A7WEluY2x1ZGUgRXhhbXBsZTwvYj48L3A+PGRpdiBjbGFzcz0iZXhhbXBsZS1jb250ZW50cyI+PHByZSBjbGFzcz0icHJvZ3JhbWxpc3RpbmciPgotJmx0O3RhcmdldCBuYW1lPSJtZXJnZSImZ3Q7Ci0gICAgJmx0O3hzbC54aW5jbHVkZSBpbj0iJHtkb2Nib29rc291cmNlfS94c2xoZWxwLmRiayIKLSAgICAgICAgICAgICAgICAgIG91dD0iJHtkb2Nib29rc291cmNlfS94c2xoZWxwY29tYmluZWQuZGJrIi8mZ3Q7Ci0mbHQ7L3RhcmdldCZndDsJICAgIAkJICAgIAkKLQkgICAgCTwvcHJlPjwvZGl2PjwvZGl2PjxiciBjbGFzcz0iZXhhbXBsZS1icmVhayI+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci9FeGNsdWRlQ29udGVudEFzc2lzdDEucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IvRXhjbHVkZUNvbnRlbnRBc3Npc3QxLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmYwZjJjYi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci9FeGNsdWRlQ29udGVudEFzc2lzdDEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IvRXhjbHVkZUNvbnRlbnRBc3Npc3QyLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL0V4Y2x1ZGVDb250ZW50QXNzaXN0Mi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlNTM2NzcuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IvRXhjbHVkZUNvbnRlbnRBc3Npc3QyLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL2NhbGx0ZW1wbGF0ZS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci9jYWxsdGVtcGxhdGUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTEzZjA3Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL2NhbGx0ZW1wbGF0ZS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci9ocmVmQXNzaXN0YW5jZS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci9ocmVmQXNzaXN0YW5jZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmNDQ5ODYuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IvaHJlZkFzc2lzdGFuY2UucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IvbW9kZUFzc2lzdGFuY2UucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IvbW9kZUFzc2lzdGFuY2UucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNWE5ODc1Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL21vZGVBc3Npc3RhbmNlLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL25hbWVkVGVtcGxhdGUucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IvbmFtZWRUZW1wbGF0ZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4YmQ5MjYuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IvbmFtZWRUZW1wbGF0ZS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci9vdmVycmlkZTEucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3Ivb3ZlcnJpZGUxLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODhiODc4Yi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci9vdmVycmlkZTEucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3Ivb3ZlcnJpZGUyLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL292ZXJyaWRlMi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmYzQxNWMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3Ivb3ZlcnJpZGUyLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL3N5bnRheENvbG9yaW5nLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL3N5bnRheENvbG9yaW5nLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODVlMGViZC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci9zeW50YXhDb2xvcmluZy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2VkaXRvci90ZW1wbGF0ZXNWaWV3LnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL3RlbXBsYXRlc1ZpZXcucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWUyMGQ5Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL3RlbXBsYXRlc1ZpZXcucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IveHNscHJvcG9zYWxzLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZWRpdG9yL3hzbHByb3Bvc2Fscy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmYzEyN2EuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9lZGl0b3IveHNscHJvcG9zYWxzLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZ2VuZXJhbC94aW5jbHVkZS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2dlbmVyYWwveGluY2x1ZGUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MGI5ZjczLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvZ2VuZXJhbC94aW5jbHVkZS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL2xhdW5jaGluZy9sYXVuY2hTaG9ydGN0LnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvbGF1bmNoaW5nL2xhdW5jaFNob3J0Y3QucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ODE4MTNhLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvbGF1bmNoaW5nL2xhdW5jaFNob3J0Y3QucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9sYXVuY2hpbmcvbm9kZXNldFZhcmlhYmxlLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvbGF1bmNoaW5nL25vZGVzZXRWYXJpYWJsZS5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzY2E3ZmYuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9sYXVuY2hpbmcvbm9kZXNldFZhcmlhYmxlLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvbGF1bmNoaW5nL3Jlc3VsdFZpZXcucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9sYXVuY2hpbmcvcmVzdWx0Vmlldy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2ZDFiOTEuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9sYXVuY2hpbmcvcmVzdWx0Vmlldy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL3ByZWZlcmVuY2VzL1hQYXRoVGVtcGxhdGVzLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMvWFBhdGhUZW1wbGF0ZXMucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZjg5MzA0Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMvWFBhdGhUZW1wbGF0ZXMucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9wcmVmZXJlbmNlcy9wcm9qZWN0TGV2ZWxWYWxpZGF0aW9uLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMvcHJvamVjdExldmVsVmFsaWRhdGlvbi5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNmZmU4NjIuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9wcmVmZXJlbmNlcy9wcm9qZWN0TGV2ZWxWYWxpZGF0aW9uLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMveG1fdGVtcGxhdGVfeHNsbmV3ZmlsZS5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL3ByZWZlcmVuY2VzL3htX3RlbXBsYXRlX3hzbG5ld2ZpbGUucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NjQ2YTZkLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMveG1fdGVtcGxhdGVfeHNsbmV3ZmlsZS5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbFN5bnRheENvbG9yaW5nLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMveHNsU3ludGF4Q29sb3JpbmcucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NmViZWYzLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMveHNsU3ludGF4Q29sb3JpbmcucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xfSW5zdGFsbGVkUHJvY2Vzc29ycy5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbF9JbnN0YWxsZWRQcm9jZXNzb3JzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzI5NTA3OS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbF9JbnN0YWxsZWRQcm9jZXNzb3JzLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMveHNsX291dHB1dHByb3BlcnRpZXMucG5nIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xfb3V0cHV0cHJvcGVydGllcy5wbmcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRlMDBhNDIuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xfb3V0cHV0cHJvcGVydGllcy5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbGZlYXR1cmVzLnBuZyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMveHNsZmVhdHVyZXMucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyOWRiZWM4Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbWFnZXMvcHJlZmVyZW5jZXMveHNsZmVhdHVyZXMucG5nCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xwcmVmZXJlbmNlcy5wbmcgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbHByZWZlcmVuY2VzLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGNiNzE4Ny4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbHByZWZlcmVuY2VzLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9pbmRleC5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2luZGV4Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNlY2VhOTUuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2luZGV4Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+WFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbjwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iaW50cm9kdWN0aW9uL2dldHRpbmdzdGFydGVkLmh0bWwiIHRpdGxlPSJHZXR0aW5nIFN0YXJ0ZWQiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0iYm9vayIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMSBjbGFzcz0idGl0bGUiPjxhIG5hbWU9IlhTTFVzZXIiPjwvYT5YU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uPC9oMT48L2Rpdj48ZGl2PjxkaXYgY2xhc3M9ImF1dGhvciI+PGgzIGNsYXNzPSJhdXRob3IiPjxzcGFuIGNsYXNzPSJmaXJzdG5hbWUiPkRhdmlkPC9zcGFuPiA8c3BhbiBjbGFzcz0ic3VybmFtZSI+Q2FydmVyPC9zcGFuPjwvaDM+PC9kaXY+PC9kaXY+PGRpdj48cCBjbGFzcz0iY29weXJpZ2h0Ij5Db3B5cmlnaHQgJmNvcHk7IDIwMDggRWNsaXBzZSBGb3VuZGF0aW9uIGFuZCBvdGhlcnM8L3A+PC9kaXY+PC9kaXY+PGhyPjwvZGl2PjxkaXYgY2xhc3M9InRvYyI+PHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPjx1bD48bGk+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9ImludHJvZHVjdGlvbi9nZXR0aW5nc3RhcnRlZC5odG1sIj5HZXR0aW5nIFN0YXJ0ZWQ8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJjb25jZXB0cy9jb25jZXB0cy5odG1sIj5YU0xUIENvbmNlcHRzPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJjb25jZXB0cy9jb25jZXB0cy5odG1sI1Jlc3VjaW5nWFNMVCI+UmVzY3VpbmcgWFNMVCBGcm9tIE5pY2hlIFN0YXR1czwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iY29uY2VwdHMvY29uY2VwdHMuaHRtbCNOMTAwMzQiPlRoZSBQcm9ibGVtPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iY29uY2VwdHMvY29uY2VwdHMuaHRtbCNOMTAwNUEiPlRoZSBTb2x1dGlvbjwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImNvbmNlcHRzL2NvbmNlcHRzLmh0bWwjTjEwMDgxIj5RdWVyaWVzPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJjb25jZXB0cy9jb25jZXB0cy5odG1sI04xMDA4RiI+eHNsOmZvci1lYWNoPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iY29uY2VwdHMvY29uY2VwdHMuaHRtbCNOMTAwOUIiPnhzbDppZjwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImNvbmNlcHRzL2NvbmNlcHRzLmh0bWwjTjEwMEE1Ij54c2w6Y2hvb3NlPC9hPjwvc3Bhbj48L2xpPjwvdWw+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImNvbmNlcHRzL2NvbmNlcHRzLmh0bWwjTjEwMEFGIj5Db25jbHVzaW9uPC9hPjwvc3Bhbj48L2xpPjwvdWw+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImNvbmNlcHRzL3Jlc291cmNlcy5odG1sIj5SZXNvdXJjZXM8L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0iZWRpdG9yL3hzbGVkaXRvci5odG1sIj5YU0wgRWRpdGluZzwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZWRpdG9yL3hzbGVkaXRvci5odG1sI1ZhbGlkYXRpb24iPlZhbGlkYXRpb248L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJlZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3QuaHRtbCI+Q29udGVudCBBc3Npc3Q8L2E+PC9zcGFuPjx1bD48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImVkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdC5odG1sI2VkX1hTTFByb3Bvc2FscyI+WFNMVCBFbGVtZW50IFByb3Bvc2FsczwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImVkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9zZWxlY3R0ZXN0Lmh0bWwiPlNlbGVjdCwgVGVzdCwgYW5kIE1hdGNoIEF0dHJpYnV0ZXM8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJlZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sIj5FeGNsdWRlLVJlc3VsdC1QcmVmaXhlczwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImVkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9tb2RlYXNzaXN0Lmh0bWwiPk1vZGUgYXR0cmlidXRlIGFzc2lzdGFuY2U8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJlZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfbmFtZWR0ZW1wbGF0ZS5odG1sIj5OYW1lZCBUZW1wbGF0ZSBBc3Npc3RhbmNlPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X2NhbGx0ZW1wbGF0ZS5odG1sIj5DYWxsLVRlbXBsYXRlIEFzc2lzdGFuY2U8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJlZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfaW5jbHVkZS5odG1sIj4KLSAgICAgICAgICAgICAgICBJbmNsdWRlIGFuZCBJbXBvcnQKLSAgICAgICAgICAgICAgICBocmVmCi0gICAgICAgICAgICAgICAgQXNzaXN0YW5jZQotICAgICAgICAgICAgPC9hPjwvc3Bhbj48L2xpPjwvdWw+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImVkaXRvci94c2xlZGl0b3JfdGVtcGxhdGVzLmh0bWwiPlRlbXBsYXRlczwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZWRpdG9yL3hzbGVkaXRvcl90ZW1wbGF0ZXMuaHRtbCNOMTAxRDMiPlhQYXRoIFRlbXBsYXRlczwvYT48L3NwYW4+PC9saT48L3VsPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJlZGl0b3IveHNsZWRpdG9yX2NvbG9yaW5nLmh0bWwiPlhTTFQgU3ludGF4IENvbG9yaW5nPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZWRpdG9yL3hzbGVkaXRvcl9tYXJrZXJzLmh0bWwiPlhTTFQgTWFya2VycyBhbmQgQW5ub3RhdGlvbnM8L2E+PC9zcGFuPjx1bD48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImVkaXRvci94c2xlZGl0b3JfbWFya2Vycy5odG1sI3hzbHRPdmVyUmlkZSI+VGVtcGxhdGUgT3ZlcnJpZGU8L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZWRpdG9yL3hzbGVkaXRvcl9kZWJ1Z2dpbmcuaHRtbCI+WFNMIERlYnVnZ2luZzwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImVkaXRvci94c2xlZGl0b3JfZGVidWdnaW5nLmh0bWwiPk5hdmlnYXRpb248L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48c3BhbiBjbGFzcz0iY2hhcHRlciI+PGEgaHJlZj0ibGF1bmNoaW5nL2xhdW5jaGluZy5odG1sIj5YU0wgTGF1bmNoaW5nIGFuZCBEZWJ1Z2dpbmc8L2E+PC9zcGFuPjx1bD48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImxhdW5jaGluZy9sYXVuY2hpbmcuaHRtbCNYU0xMYXVuY2giPlhTTCBMYXVuY2hpbmc8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJsYXVuY2hpbmcvZGVidWdnaW5nLmh0bWwiPlhTTFQgRGVidWdnaW5nPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJsYXVuY2hpbmcvZGVidWdnaW5nLmh0bWwjRGVidWdHZXR0aW5nU3RhcnRlZCI+U3RhcnRpbmcgYSBEZWJ1ZyBTZXNzaW9uPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ibGF1bmNoaW5nL2RlYnVnZ2luZ19jb21tb24uaHRtbCI+Q29tbW9uIERlYnVnZ2luZyBPcGVyYXRpb25zPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJsYXVuY2hpbmcvZGVidWdnaW5nX2NvbW1vbi5odG1sI1hTTERlYnVnUmVzdWx0VmlldyI+UmVzdWx0IFZpZXc8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJsYXVuY2hpbmcvZGVidWdnaW5nX3ZhcmlhYmxlc3ZpZXcuaHRtbCI+VmFyaWFibGVzIFZpZXc8L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ibGF1bmNoaW5nL2RlYnVnZ2luZ19wcm9jZXNzb3JzLmh0bWwiPlhTTFQgUHJvY2Vzc29yIFNwZWNpZmljIFN1cHBvcnQ8L2E+PC9zcGFuPjx1bD48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9ImxhdW5jaGluZy9kZWJ1Z2dpbmdfcHJvY2Vzc29ycy5odG1sI1hTTERlYnVnWGFsYW4iPlhTTCBEZWJ1Z2dpbmcgd2l0aCBYYWxhbjwvYT48L3NwYW4+PC9saT48L3VsPjwvbGk+PC91bD48L2xpPjwvdWw+PC9saT48bGk+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9InByZWZlcmVuY2VzL3hzbHByZWZlcmVuY2VzLmh0bWwiPlhTTCBUb29scyBQcmVmZXJlbmNlczwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0icHJlZmVyZW5jZXMveHNscHJlZmVyZW5jZXMuaHRtbCNYU0xGZWF0dXJlcyI+RmVhdHVyZXM8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJwcmVmZXJlbmNlcy94c2xwcm9jZXNzb3JzLmh0bWwiPkluc3RhbGxlZCBQcm9jZXNzb3JzPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0icHJlZmVyZW5jZXMveHNsb3V0cHV0cHJvcGVydGllcy5odG1sIj5PdXRwdXQgUHJvcGVydGllczwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InByZWZlcmVuY2VzL3hwYXRodGVtcGxhdGVzLmh0bWwiPlhQYXRoIFRlbXBsYXRlczwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0icHJlZmVyZW5jZXMveHBhdGh0ZW1wbGF0ZXMuaHRtbCNYUGF0aFRlbXBsYXRlTmV3Ij5DcmVhdGluZyBOZXcgVGVtcGxhdGVzPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0icHJlZmVyZW5jZXMveHBhdGhpbXBvcnQuaHRtbCI+SW1wb3J0IFhQYXRoIFRlbXBsYXRlczwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InByZWZlcmVuY2VzL3hwYXRoZXhwb3J0Lmh0bWwiPkltcG9ydCBYUGF0aCBUZW1wbGF0ZXM8L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0icHJlZmVyZW5jZXMvdmFsaWRhdGlvbi5odG1sIj5Qcm9qZWN0IFZhbGlkYXRpb24gUHJlZmVyZW5jZXM8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJwcmVmZXJlbmNlcy9zeW50YXhDb2xvcmluZy5odG1sIj5YU0xUIFN5bnRheCBDb2xvcmluZzwvYT48L3NwYW4+PC9saT48L3VsPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJnZW5lcmFsL2dlbmVyYWwuaHRtbCI+R2VuZXJhbDwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZ2VuZXJhbC9nZW5lcmFsLmh0bWwjWEluY2x1ZGUiPlhJbmNsdWRlPC9hPjwvc3Bhbj48L2xpPjwvdWw+PC9saT48bGk+PHNwYW4gY2xhc3M9ImNoYXB0ZXIiPjxhIGhyZWY9InNhbXBsZXMvc2FtcGxlcy5odG1sIj5YU0wgVG9vbGluZyBTYW1wbGVzPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJzYW1wbGVzL3NhbXBsZXMuaHRtbCNFY2xpcHNlSGVscCI+RWNsaXBzZSBIZWxwPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJzYW1wbGVzL3NhbXBsZXMuaHRtbCNEb2Nib29rRWNsaXBzZUhlbHAiPkNyZWF0aW5nIEVjbGlwc2UgSGVscCB3aXRoIERvY2Jvb2sgYW5kIFhTTCBUb29sczwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InNhbXBsZXMvc2FtcGxlcy5odG1sI0RJVEFFY2xpcHNlSGVscCI+Q3JlYXRpbmcgRWNsaXBzZSBIZWxwIHdpdGggRElUQSBhbmQgWFNMIFRvb2xzPC9hPjwvc3Bhbj48L2xpPjwvdWw+PC9saT48L3VsPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJjaGFwdGVyIj48YSBocmVmPSJsZWdhbC5odG1sIj5Ob3RpY2VzPC9hPjwvc3Bhbj48L2xpPjwvdWw+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW50cm9kdWN0aW9uL2dldHRpbmdzdGFydGVkLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvaW50cm9kdWN0aW9uL2dldHRpbmdzdGFydGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2ODEwMmYuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2ludHJvZHVjdGlvbi9nZXR0aW5nc3RhcnRlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPkdldHRpbmcgU3RhcnRlZDwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InByZXYiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9Im5leHQiIGhyZWY9Ii4uL2NvbmNlcHRzL2NvbmNlcHRzLmh0bWwiIHRpdGxlPSJYU0xUIENvbmNlcHRzIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9ImNoYXB0ZXIiIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJOMTAwMTIiPjwvYT5HZXR0aW5nIFN0YXJ0ZWQ8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxwPiAgCi0gICAgICBTdGlsbCB0cnlpbmcgdG8gdGhpbmsgb2Ygb3JpZ2luYWwgY29udGVudCBmb3IgdGhpcyBzZWN0aW9uLgotICAgPC9wPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmcuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5NGE1M2YuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+WFNMVCBEZWJ1Z2dpbmc8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJsYXVuY2hpbmcuaHRtbCIgdGl0bGU9IlhTTCBMYXVuY2hpbmcgYW5kIERlYnVnZ2luZyI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJsYXVuY2hpbmcuaHRtbCIgdGl0bGU9IlhTTCBMYXVuY2hpbmcgYW5kIERlYnVnZ2luZyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJkZWJ1Z2dpbmdfY29tbW9uLmh0bWwiIHRpdGxlPSJDb21tb24gRGVidWdnaW5nIE9wZXJhdGlvbnMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0iWFNMRGVidWciPjwvYT5YU0xUIERlYnVnZ2luZzwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PHA+IFhTTCBUb29scyBwcm92aWRlcyBhIGZyYW1ld29yayBmb3IgWFNMVCBwcm9jZXNzb3JzIHRvIHByb3ZpZGUgZGVidWdnaW5nIHN1cHBvcnQuIFRoZSBzdXBwb3J0IHByb3ZpZGVkIGlzIGhpZ2hseQotCQkJZGVwZW5kZW50IG9uIHRoZSBwcm9jZXNzb3JzLiBYU0wgVG9vbHMgY29tZXMgd2l0aCBidWlsdCBpbiBzdXBwb3J0IGZvciB0aGUgWGFsYW4gMi43LjEgcHJvY2Vzc29yLiBEZWJ1Z2dpbmcgaXMgb25seQotCQkJYXZhaWxhYmxlIGZvciB0aG9zZSBwcm9jZXNzb3JzIHRoYXQgc3VwcG9ydCB0aGUgZmVhdHVyZSBhbmQgcGx1ZyBpbnRvIHRoZSBleHRlbnNpb24gcG9pbnQuIFRoZSBYU0wgVG9vbHMgZGVidWdnZXIKLQkJCWxldmVyYWdlcyB0aGUgZXhpc3RpbmcgZWNsaXBzZSBwbGF0Zm9ybSBEZWJ1ZyBWaWV3PC9wPjxwPgotCQkJSG93IHRoZSBkZWJ1Z2dlciBhY3RzIHdpbGwgZGVwZW5kIG9uIHRoZSBwcm9jZXNzb3IgYmVpbmcgdXNlZC4gTm90IGFsbCBYU0xUIHByb2Nlc3NvcnMgcGFzcyB0aGUgc2FtZSB0eXBlIG9mCi0JCQlpbmZvcm1hdGlvbiB0byB0aGUgZGVidWdnZXIuIFRoZXNlIGRpZmZlcmVuY2VzIHdpbGwgYmUgbm90ZWQgaW4gdGhlCi0JCQk8YSBjbGFzcz0ieHJlZiIgaHJlZj0iZGVidWdnaW5nX3Byb2Nlc3NvcnMuaHRtbCIgdGl0bGU9IlhTTFQgUHJvY2Vzc29yIFNwZWNpZmljIFN1cHBvcnQiPnRoZSBzZWN0aW9uIGNhbGxlZCAmbGRxdW87WFNMVCBQcm9jZXNzb3IgU3BlY2lmaWMgU3VwcG9ydCZyZHF1bzs8L2E+Ci0JCQlzZWN0aW9uLgotCQk8L3A+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9IkRlYnVnR2V0dGluZ1N0YXJ0ZWQiPjwvYT5TdGFydGluZyBhIERlYnVnIFNlc3Npb248L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwPiBEZWJ1Z2dpbmcgaXMgc3RhcnRlZCB0aGUgc2FtZSB3YXkgYXMgbGF1bmNoaW5nIGFuIFhTTCBUcmFuZm9ybWF0aW9uIGlzIGRvbmUuIEV4Y2VwdCB0aGF0IHRoZSBkZWJ1ZwotCQkJCWNvbmZpZ3VyYXRpb24gaXMgdXNlZCBpbnN0ZWFkIG9mIHRoZSBub3JtYWwgbGF1bmNoIGNvbmZpZ3VyYXRpb24uIElmIGEgZGVidWdnaW5nIHNlc3Npb24gaXMgc3RhcnRlZCBvbiBhIHByb2Nlc3NvcgotCQkJCXRoYXQgZG9lcyBub3Qgc3VwcG9ydCBkZWJ1Z2dpbmcsIGEgZGlhbG9nIHdpbGwgYXNrIGlmIHlvdSB3YW50IHRvIHN3aXRjaCB0byBvbmUgb2YgdGhlIHN1cHBvcnRlZCBkZWJ1Z2dlcnMuPC9wPjxkaXYgY2xhc3M9Im5vdGUiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47IG1hcmdpbi1yaWdodDogMC41aW47Ij48aDMgY2xhc3M9InRpdGxlIj5EZWZhdWx0IEpSRTwvaDM+PHA+IFRoZSBkZWZhdWx0IEpSRSBkb2VzIG5vdCBoYXZlIGJ1aWx0IGluIHN1cHBvcnQgZm9yIGRlYnVnZ2luZywgZXZlbiB0aG91Z2ggaXQgaXMgYmFzZWQgb24gQXBhY2hlIFhhbGFuLiBJdCBpcwotCQkJCQlyZWNvbW1lbmRlZCB0byB1c2UgWGFsYW4gb3IgYW5vdGhlciBwcm9jZXNzb3IgcHJvdmlkZWQgYnkgYW4gYWRvcHRlciB0byBkbyB5b3VyIHRyYW5zZm9ybWF0aW9ucy4gVGhlIGRlZmF1bHQKLQkJCQkJcHJvY2Vzc29yIGlzIGtub3duIHRvIGhhdmUgc29tZSBpc3N1ZXMgdGhhdCBYYWxhbiBhbmQgb3RoZXIgcHJvY2Vzc29ycyBkbyBub3QgaGF2ZS48L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvbGF1bmNoaW5nL2RlYnVnZ2luZ19jb21tb24uaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nX2NvbW1vbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNzI1NWIyLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nX2NvbW1vbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5Db21tb24gRGVidWdnaW5nIE9wZXJhdGlvbnM8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJkZWJ1Z2dpbmcuaHRtbCIgdGl0bGU9IlhTTFQgRGVidWdnaW5nIj48bGluayByZWw9InByZXYiIGhyZWY9ImRlYnVnZ2luZy5odG1sIiB0aXRsZT0iWFNMVCBEZWJ1Z2dpbmciPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iZGVidWdnaW5nX3ZhcmlhYmxlc3ZpZXcuaHRtbCIgdGl0bGU9IlZhcmlhYmxlcyBWaWV3Ij48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJYU0xEZWJ1Z0NvbW1vbiI+PC9hPkNvbW1vbiBEZWJ1Z2dpbmcgT3BlcmF0aW9uczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0JCQkJWFNMVCBkZWJ1Z2dpbmcgaXMgaGFuZGxlZCBieSB0aGUgZWNsaXBzZSBwbGF0Zm9ybXMgZGVidWdnaW5nIGZyYW1ld29yayBzdXBwb3J0IGFzIG91dGxpbmVkIGluIHRoZQotCQkJCTxhIGNsYXNzPSJ1bGluayIgaHJlZj0iL2hlbHAvdG9waWMvb3JnLmVjbGlwc2UucGxhdGZvcm0uZG9jLmlzdi9ndWlkZS9kZWJ1Z19kZWJ1Zy5odG0iIHRhcmdldD0iX3RvcCI+IlByb2dyYW0gRGVidWcgYW5kIExhdW5jaCBTdXBwb3J0IjwvYT4KLQkJCQkuIENvbW1vbiBvcGVyYXRpb25zIGxpa2Ugc3RlcHBpbmcgaW50byAoRjUpLCBzdGVwcGluZyBvdmVyIChGNiksIHBhdXNpbmcsIHJ1bm5pbmcgdG8gYSBicmVha3BvaW50LCBhbmQgcmVsYXVuY2hpbmcKLQkJCQlhcmUgc3VwcG9ydGVkLiBJbiBhZGRpdGlvbiB0byB0aGUgc3RhbmRhcmQgVmFyaWFibGUgYW5kIEJyZWFrcG9pbnQgdmlld3MgcHJvdmlkZWQgYnkgdGhlIHBsYXRmb3JtLCB0aGVyZSBhcmUgc29tZQotCQkJCVhTTFQgc3BlY2lmaWMgdmlld3MgYW5kIGZ1bmN0aW9uYWxpdHkgYXMgd2VsbC4gQWxsIG9mIHRoZXNlIGFyZSBjb21tb24gcmVnYXJkbGVzcyBvZiB0aGUgcGFydGljdWxhciBYU0xUIGRlYnVnZ2VyCi0JCQkJYmVpbmcgdXNlZC4KLQkJCTwvcD48ZGl2IGNsYXNzPSJ0aXAiIHN0eWxlPSJtYXJnaW4tbGVmdDogMC41aW47IG1hcmdpbi1yaWdodDogMC41aW47Ij48aDMgY2xhc3M9InRpdGxlIj5JbnRyb2R1Y3Rpb24gdG8gRWNsaXBzZSBEZWJ1Z2dpbmc8L2gzPjxwPgotCQkJCQk8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cubWNzLnZ1dy5hYy5uei9jb3Vyc2VzL0NPTVAyMDUvMjAwN1QxL3Rvb2xzL2VjbGlwc2UvZGVidWdnaW5nL2Jhc2ljcy5zaHRtbCIgdGFyZ2V0PSJfdG9wIj5CYXNpYyBEZWJ1Z2dpbmcgaW4gRWNsaXBzZTwvYT4KLQkJCQkJY29udGFpbnMgYSBnb29kIGdlbmVyYWwgaW50cm9kdWN0aW9uIHRvIHRoZSBiYXNpYyBmZWF0dXJlcyBwcm92aWRlZCBieSB0aGUgRWNsaXBzZSBEZWJ1ZyB2aWV3LiBYU0wgVG9vbHMgbGV2ZXJhZ2VzCi0JCQkJCW1hbnkgb2YgdGhlc2UgZmVhdHVyZXMgYW5kIHRoZSBzYW1lIGNvbmNlcHRzIGFwcGx5IHRvIHRoZSBYU0wgVG9vbHMgZGVidWdnZXIuCi0JCQkJPC9wPjwvZGl2PjxwPiBJbiBhZGRpdGlvbiB0byB0aGUgc3RhbmRhcmQgZmVhdHVyZXMgYW5kIGZ1bmN0aW9uYWxpdHksIHRoZSBYU0wgVG9vbHMgZGVidWdnaW5nIHN1cHBvcnQgYWRkcyB0aGUgZm9sbG93aW5nCi0JCQkJYWRkaXRpb25hbCBpdGVtczo8L3A+PGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgdHlwZT0iZGlzYyI+PGxpPjxwPiBSZXN1bHQgVmlldzwvcD48L2xpPjxsaT48cD5YU0xUIHNwZWNpZmljIFZhcmlhYmxlczwvcD48L2xpPjxsaT48cD5YU0xUIFByb2Nlc3NvciBTcGVjaWZpYyBGdW5jdGlvbmFsaXR5PC9wPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iWFNMRGVidWdSZXN1bHRWaWV3Ij48L2E+UmVzdWx0IFZpZXc8L2g0PjwvZGl2PjwvZGl2PjwvZGl2PjxwPiBUaGUgWFNMVCBEZWJ1Z2dlciBoYXMgYSByZXN1bHQgdmlldy4gVGhpcyB3aWxsIHNob3cgdGhlIG91dHB1dCB0aGF0IHRoZSBzdHlsZXNoZWV0IGhhcyBnZW5lcmF0ZWQgdG8gdGhlCi0JCQkJCWN1cnJlbnQgYnJlYWsgcG9pbnQgb3Igc2luY2UgdGhlIGxhc3Qgc3RlcCBjb21tYW5kIHdhcyBpc3N1ZWQuPC9wPjxkaXYgY2xhc3M9Im1lZGlhb2JqZWN0IiBhbGlnbj0iY2VudGVyIj48aW1nIHNyYz0iLi4vaW1hZ2VzL2xhdW5jaGluZy9yZXN1bHRWaWV3LnBuZyIgYWxpZ249Im1pZGRsZSI+PC9kaXY+PHA+IFRoZSByZXN1bHQgdmlldyBpcyB1cGRhdGVkIHRocm91Z2hvdXQgdGhlIGRlYnVnZ2luZyBwcm9jZXNzLCBhbmQgaXMgdXNlZnVsIHRvIGhlbHAgc2VlIHdoYXQgb3V0cHV0IGlzCi0JCQkJCWdlbmVyYXRlZCBhdCBzcGVjaWZpYyBwb2ludHMgZHVyaW5nIGEgdHJhbnNmb3JtYXRpb24uPC9wPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmdfcHJvY2Vzc29ycy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmdfcHJvY2Vzc29ycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OGJmOTk3Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nX3Byb2Nlc3NvcnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+WFNMVCBQcm9jZXNzb3IgU3BlY2lmaWMgU3VwcG9ydDwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9ImRlYnVnZ2luZy5odG1sIiB0aXRsZT0iWFNMVCBEZWJ1Z2dpbmciPjxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGVidWdnaW5nX3ZhcmlhYmxlc3ZpZXcuaHRtbCIgdGl0bGU9IlZhcmlhYmxlcyBWaWV3Ij48bGluayByZWw9Im5leHQiIGhyZWY9Ii4uL3ByZWZlcmVuY2VzL3hzbHByZWZlcmVuY2VzLmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgUHJlZmVyZW5jZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9IlhTTERlYnVnUHJvY2Vzc29yU3BlY2lmaWMiPjwvYT5YU0xUIFByb2Nlc3NvciBTcGVjaWZpYyBTdXBwb3J0PC9oMz48L2Rpdj48L2Rpdj48L2Rpdj48cD4gVmFyaW91cyBYU0xUIHByb2Nlc3NvcnMgcHJvdmlkZSB2YXJpb3VzIGxldmVscyBvZiBkZWJ1Z2dpbmcgc3VwcG9ydC4gTWFueSBkbyBub3QgcHJvdmlkZSBzdXBwb3J0IGZvciBkZWJ1Z2dpbmcKLQkJCQlvZiBzdHlsZXNoZWV0cywgYW5kIHRodXMgY2FuJ3QgYmUgdXNlZCBmb3IgZGVidWdnaW5nLiBYU0wgVG9vbHMgcHJvdmlkZXMgYmFzaWMgc3VwcG9ydCBmb3IgWGFsYW4sIGFuZCBjYW4gYmUgdXNlZCBhcwotCQkJCWEgZ3VpZGUgZm9yIGFkb3B0ZXJzIG9uIGhvdyB0byBpbXBsZW1lbnQgdGhlaXIgb3duIHNwZWNpZmljIGRlYnVnZ2luZyBzdXBwb3J0IGZvciBvdGhlciBwcm9jZXNzb3JzLjwvcD48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGg0IGNsYXNzPSJ0aXRsZSI+PGEgbmFtZT0iWFNMRGVidWdYYWxhbiI+PC9hPlhTTCBEZWJ1Z2dpbmcgd2l0aCBYYWxhbjwvaDQ+PC9kaXY+PC9kaXY+PC9kaXY+PHA+IFhhbGFuIHByb3ZpZGVzIGdlbmVyYWwgc3R5bGVzaGVldCBleGVjdXRpb24gYW5kIGV2YWxhdGlvbiBmdW5jdGlvbmFsaXR5LiBIb3dldmVyIHRoZXJlIGFyZSBhIGZldyB0aGluZ3MgdGhhdAotCQkJCQlYYWxhbiBkb2VzIG5vdCBzdXBwb3IgdGhhdCBvdGhlciBwcm9jZXNzb3JzIGRvLjwvcD48ZGl2IGNsYXNzPSJvcmRlcmVkbGlzdCI+PHAgY2xhc3M9InRpdGxlIj48Yj5YYWxhbiBEZWJ1Z2dpbmcgSXNzdWVzPC9iPjwvcD48b2wgdHlwZT0iMSI+PGxpPjxwPgotCQkJCQkJCTxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPkJyZWFrcG9pbnRzPC9lbT48L3NwYW4+Ci0JCQkJCQkJLSBYYWxhbiBkb2VzIG5vdCBzdXBwb3J0IHN0b3BwaW5nIGF0IEdsb2JhbCBWYXJpYWJsZXMgb3IgUGFyYW1ldGVycyB3aGVuIGEgZGVidWdnaW5nIHNlc3Npb24gaXMgc3RhcnRlZC4gSXQgd2lsbAotCQkJCQkJCWF1dG9tYXRpY2FsbHkgc3RhcnQgYXQgdGhlIGZpcnN0IHRlbXBsYXRlLiBCcmVhayBwb2ludHMgbXVzdCBiZSBwbGFjZWQgaW4gdGVtcGxhdGVzIHRvIGJlIGhvbm9yZWQuIFRoZSByZWFzb24gZm9yCi0JCQkJCQkJdGhpcyBpcyB0aGF0IFhhbGFuIGxhemlseSBpbml0aWFsaXplcyB0aGUgdmFyaWFibGVzIG9ubHkgd2hlbiB0aGV5IGFyZSBmaXJzdCB1c2VkLgotCQkJCQkJPC9wPjwvbGk+PGxpPjxwPgotCQkJCQkJCTxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlhTTFQgVGV4dCBlbGVtZW50czwvZW0+PC9zcGFuPgotCQkJCQkJCS0gWGFsYW4gZG9lcyBub3Qgc2VuZCBub3RpZmljYXRpb25zIG9mIHhzbDp0ZXh0IGVsZW1lbnRzLiBUaGVzZSBhcmUgc2tpcHBlZCBvdmVyIHdoZW4gZGVidWdnaW5nLgotCQkJCQkJPC9wPjwvbGk+PGxpPjxwPgotCQkJCQkJCTxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPkJ1aWx0IEluIFRlbXBsYXRlczwvZW0+PC9zcGFuPgotCQkJCQkJCS0gWGFsYW4gZG9lcyBwcm92aWRlIG5vdGlmaWNhdGlvbiB3aGVuIHRoZSBidWlsdCBpbiB0ZW1wbGF0ZXMgYXJlIGNhbGxlZCwgYnV0IGN1cnJlbnRseSB0aGUgZGVidWdnZXIgZG9lcyBub3QKLQkJCQkJCQlzdXBwb3J0IG9yIGRpc3BsYXkgc3RlcHBpbmcgaW50byB0aGVzZSB0ZW1wbGF0ZXMuCi0JCQkJCQk8L3A+PC9saT48L29sPjwvZGl2PjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmdfdmFyaWFibGVzdmlldy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmdfdmFyaWFibGVzdmlldy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3NWRmNGU4Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nX3ZhcmlhYmxlc3ZpZXcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+VmFyaWFibGVzIFZpZXc8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJkZWJ1Z2dpbmdfY29tbW9uLmh0bWwiIHRpdGxlPSJDb21tb24gRGVidWdnaW5nIE9wZXJhdGlvbnMiPjxsaW5rIHJlbD0icHJldiIgaHJlZj0iZGVidWdnaW5nX2NvbW1vbi5odG1sIiB0aXRsZT0iQ29tbW9uIERlYnVnZ2luZyBPcGVyYXRpb25zIj48bGluayByZWw9Im5leHQiIGhyZWY9ImRlYnVnZ2luZ19wcm9jZXNzb3JzLmh0bWwiIHRpdGxlPSJYU0xUIFByb2Nlc3NvciBTcGVjaWZpYyBTdXBwb3J0Ij48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDQgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJYU0xEZWJ1Z1ZhcmlhYmxlcyI+PC9hPlZhcmlhYmxlcyBWaWV3PC9oND48L2Rpdj48L2Rpdj48L2Rpdj48cD4gVGhlIHZhcmlhYmxlcyB2aWV3IHdpbGwgc2hvdyBhbGwgdGhlIGxvY2FsIGFuZCBnbG9iYWwgdmFyaWFibGVzIGFuZCBwYXJhbXMgdGhhdCBhcmUgY3VycmVudGx5IGluIHNjb3BlLiBUaGVyZQotCQkJCQlhcmUgdHdvIHR5cGVzIG9mIHZhcmlhYmxlcyB0aGF0IGNhbiBiZSB2aWV3cy48L3A+PGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvbGF1bmNoaW5nL25vZGVzZXRWYXJpYWJsZS5wbmciIGFsaWduPSJtaWRkbGUiPjwvZGl2PjxkaXYgY2xhc3M9Iml0ZW1pemVkbGlzdCI+PHAgY2xhc3M9InRpdGxlIj48Yj5WYXJpYWJsZSBUeXBlczwvYj48L3A+PHVsIHR5cGU9ImRpc2MiPjxsaT48cD4KLQkJCQkJCQk8c3BhbiBjbGFzcz0iZW1waGFzaXMiPjxlbT5TdHJpbmc8L2VtPjwvc3Bhbj4KLQkJCQkJCQktIFRoZXNlIGNvbnRhaW4gdGV4dCB2YWx1ZXMuIFRoaXMgY291bGQgYmUgc3RyaW5ncyBvZiB0ZXh0LCBudW1iZXJzLCBvciBvdGhlciBjaGFyYWN0ZXJzLgotCQkJCQkJPC9wPjwvbGk+PGxpPjxwPgotCQkJCQkJCTxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPk5vZGVzZXRzPC9lbT48L3NwYW4+Ci0JCQkJCQkJLSBOb2Rlc2V0cyBhcmUgcmVwcmVzZW50ZWQgaW4gdGhlIHZhcmlhYmxlcyB2aWV3IGFzIGV4cGFuZGFibGUgdmFyaWFibGVzLiBUaGV5IGNvbnRhaW4gc2VxdWVuY2VzIG9mIG5vZGVzLiBUaGUKLQkJCQkJCQl0eXBlIG9mIG5vZGVzIGFyZSByZXByZXNlbnRlZCBieSBpY29ucyBmb3IgZWxlbWVudHMsIGF0dHJpYnV0ZXMsIHRleHQsIGNvbW1lbnRzIG9yIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb25zLgotCQkJCQkJPC9wPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJub3RlIiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDAuNWluOyBtYXJnaW4tcmlnaHQ6IDAuNWluOyI+PGgzIGNsYXNzPSJ0aXRsZSI+Q2FuIEkgY2hhbmdlIHRoZSB2YWx1ZSBvZiB2YXJpYWJsZXM/PC9oMz48cD4gQ3VycmVudGx5IHRoZSBYU0xUIERlYnVnZ2VyIGRvZXMgbm90IHN1cHBvcnQgY2hhbmdpbmcgdGhlIHZhbHVlcyBvciBjb250ZW50cyBvZiBhIHZhcmlhYmxlLiBBbGwgWFNMVAotCQkJCQkJdmFyaWFibGVzIGFyZSByZWFkIG9ubHkuPC9wPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9kZWJ1Z2xhdW5jaGluZy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9kZWJ1Z2xhdW5jaGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTg4ZDk3Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9sYXVuY2hpbmcvZGVidWdsYXVuY2hpbmcuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5MYXVuY2ggRGVidWdnaW5nPC90aXRsZT48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9ImxhdW5jaGluZy5odG1sIiB0aXRsZT0iQ2hhcHRlciZuYnNwOzMuJm5ic3A7WFNMIExhdW5jaGluZyBhbmQgRGVidWdnaW5nIj48bGluayByZWw9InByZXYiIGhyZWY9ImxhdW5jaGluZy5odG1sIiB0aXRsZT0iQ2hhcHRlciZuYnNwOzMuJm5ic3A7WFNMIExhdW5jaGluZyBhbmQgRGVidWdnaW5nIj48bGluayByZWw9Im5leHQiIGhyZWY9Ii4uL3ByZWZlcmVuY2VzL3hzbHByZWZlcmVuY2VzLmh0bWwiIHRpdGxlPSJDaGFwdGVyJm5ic3A7NC4mbmJzcDtYU0wgVG9vbHMgUHJlZmVyZW5jZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0iWFNMRGVidWciPjwvYT5MYXVuY2ggRGVidWdnaW5nPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLQkgICAJCVRoaXMgaXMgYSBwbGFjZSBob2xkZXIgdW50aWwgc29tZSBhY3R1YWwgZG9jdW1lbnRhdGlvbiBjYW4gYmUgd3JpdHRlbi4KLQkgICA8L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvbGF1bmNoaW5nL2xhdW5jaGluZy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xhdW5jaGluZy9sYXVuY2hpbmcuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzllMDIxNy4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvbGF1bmNoaW5nL2xhdW5jaGluZy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPlhTTCBMYXVuY2hpbmcgYW5kIERlYnVnZ2luZzwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InByZXYiIGhyZWY9Ii4uL2VkaXRvci94c2xlZGl0b3JfZGVidWdnaW5nLmh0bWwiIHRpdGxlPSJOYXZpZ2F0aW9uIj48bGluayByZWw9Im5leHQiIGhyZWY9ImRlYnVnZ2luZy5odG1sIiB0aXRsZT0iWFNMVCBEZWJ1Z2dpbmciPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0iY2hhcHRlciIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9Ik4xMDIzQiI+PC9hPlhTTCBMYXVuY2hpbmcgYW5kIERlYnVnZ2luZzwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idG9jIj48cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ibGF1bmNoaW5nLmh0bWwjWFNMTGF1bmNoIj5YU0wgTGF1bmNoaW5nPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZGVidWdnaW5nLmh0bWwiPlhTTFQgRGVidWdnaW5nPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJkZWJ1Z2dpbmcuaHRtbCNEZWJ1Z0dldHRpbmdTdGFydGVkIj5TdGFydGluZyBhIERlYnVnIFNlc3Npb248L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJkZWJ1Z2dpbmdfY29tbW9uLmh0bWwiPkNvbW1vbiBEZWJ1Z2dpbmcgT3BlcmF0aW9uczwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0iZGVidWdnaW5nX2NvbW1vbi5odG1sI1hTTERlYnVnUmVzdWx0VmlldyI+UmVzdWx0IFZpZXc8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJkZWJ1Z2dpbmdfdmFyaWFibGVzdmlldy5odG1sIj5WYXJpYWJsZXMgVmlldzwvYT48L3NwYW4+PC9saT48L3VsPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJkZWJ1Z2dpbmdfcHJvY2Vzc29ycy5odG1sIj5YU0xUIFByb2Nlc3NvciBTcGVjaWZpYyBTdXBwb3J0PC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJkZWJ1Z2dpbmdfcHJvY2Vzc29ycy5odG1sI1hTTERlYnVnWGFsYW4iPlhTTCBEZWJ1Z2dpbmcgd2l0aCBYYWxhbjwvYT48L3NwYW4+PC9saT48L3VsPjwvbGk+PC91bD48L2xpPjwvdWw+PC9kaXY+PHA+IFhTTCBUb29scyBhZGRzIHN1cHBvcnQgZm9yIFhTTCBMYXVuY2ggYW5kIERlYnVnZ2luZyBjb25maWd1cmF0aW9ucy4gVGhlc2UgYWxsb3cgeW91IHRvIHNldHVwIFhTTCBjb25maWd1cmF0aW9ucwotCQlmb3IgdmFyaW91cyBqb2JzLCBhbmQgdG8gYWxzbyBkZWJ1ZyB4c2wgc3R5bHNoZWV0IHRyYW5zZm9ybWF0aW9ucy48L3A+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0iWFNMTGF1bmNoIj48L2E+WFNMIExhdW5jaGluZzwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0JCQlJbiB0aGUgUHJvamVjdCBFeHBsb3Jlciwgc2ltcGx5IHNlbGVjdCB0aGUgaW5wdXQgWE1MIGZpbGUgYW5kIHRoZSBzdHlsZXNoZWV0KHMpIHRvIHRyYW5zZm9ybSBpdCwgYW5kIHRoZW4gcmlnaHQtY2xpY2sKLQkJCWFuZCBzZWxlY3QKLQkJCTxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPlJ1biBBcyAmZ3Q7IFhTTCBUcmFuc2Zvcm1hdGlvbjwvZW0+PC9zcGFuPgotCQkJLgotCQk8L3A+PGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvbGF1bmNoaW5nL2xhdW5jaFNob3J0Y3QucG5nIiBhbGlnbj0ibWlkZGxlIj48L2Rpdj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9sZWdhbC5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xlZ2FsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmYjZlNjQuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL2xlZ2FsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPk5vdGljZXM8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9ImluZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJpbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJzYW1wbGVzL3NhbXBsZXMuaHRtbCIgdGl0bGU9IlhTTCBUb29saW5nIFNhbXBsZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0iY2hhcHRlciIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9Ik4xMDNGOCI+PC9hPk5vdGljZXM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxwPgotICAgICAgVGhlIG1hdGVyaWFsIGluIHRoaXMgZ3VpZGUgaXMgQ29weXJpZ2h0IChjKSBEb3VnIFNhdGNod2VsbCAoPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51ayIgdGFyZ2V0PSJfdG9wIj5DaGFzZSBUZWNobm9sb2d5IEx0ZDwvYT4pLCAKLSAgICAgIERhdmlkIENhcnZlciAoPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LnN0YXJzdGFuZGFyZC5vcmciIHRhcmdldD0iX3RvcCI+U3RhbmRhcmRzIGZvciBUZWNobm9sb2d5IGluIEF1dG9tb3RpdmUgUmV0YWlsPC9hPikKLSAgICAgIGFuZCBvdGhlcnMgMjAwOC4KLSAgICA8L3A+PHA+Ci0JCVRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIAotCQl0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCAKLQkJPGEgY2xhc3M9InVsaW5rIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCIgdGFyZ2V0PSJfdG9wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCi0gICAgPC9wPjxwPgotCQk8YSBjbGFzcz0idWxpbmsiIGhyZWY9ImFib3V0Lmh0bWwiIHRhcmdldD0iX3RvcCI+VGVybXMgYW5kIGNvbmRpdGlvbnMgcmVnYXJkaW5nIHRoZSB1c2Ugb2YgdGhpcyBndWlkZS48L2E+LgotCTwvcD48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy9zeW50YXhDb2xvcmluZy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3N5bnRheENvbG9yaW5nLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxY2YzYzMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3N5bnRheENvbG9yaW5nLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+WFNMVCBTeW50YXggQ29sb3Jpbmc8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJ4c2xwcmVmZXJlbmNlcy5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFByZWZlcmVuY2VzIj48bGluayByZWw9InByZXYiIGhyZWY9InZhbGlkYXRpb24uaHRtbCIgdGl0bGU9IlByb2plY3QgVmFsaWRhdGlvbiBQcmVmZXJlbmNlcyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSIuLi9nZW5lcmFsL2dlbmVyYWwuaHRtbCIgdGl0bGU9IkdlbmVyYWwiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0icHJlZl9TeW50YXhDb2xvcmluZyI+PC9hPlhTTFQgU3ludGF4IENvbG9yaW5nPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLSAgICAgICAgICAgIFhTTCBUb29scyBhbHNvIGhhcyB0aGUgYWJpbGl0eSB0byBzeW50YXggY29sb3IgdGhlIFhTTFQgbmFtZXNwYWNlIGl0ZW1zIGEgZGlmZmVyZW50Ci0gICAgICAgICAgICBjb2xvciB0aGFuIHRoZSByZXN0IG9mIHRoZSBYTUwgc3ludGF4IGluY2x1ZGVkLiAgIFRoZSBkZWZhdWx0IGlzIGZvciBhbGwgWFNMIHN5bnRheCB0byBiZQotICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+Ym9sZDwvc3Ryb25nPjwvc3Bhbj4uCi0gICAgICAgIDwvcD48ZGl2IGNsYXNzPSJmaWd1cmUiPjxhIG5hbWU9ImZpZ19YU0xTeW50YXhDb2xvcmluZ1ByZWZlcmVuY2UiPjwvYT48cCBjbGFzcz0idGl0bGUiPjxiPkZpZ3VyZSZuYnNwOzEzLiZuYnNwO1hTTCBUb29scyBTeW50YXggQ29sb3JpbmcgUHJlZmVyZW5jZTwvYj48L3A+PGRpdiBjbGFzcz0iZmlndXJlLWNvbnRlbnRzIj48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xTeW50YXhDb2xvcmluZy5wbmciIGFsaWduPSJtaWRkbGUiIGFsdD0iWFNMIFRvb2xzIFN5bnRheCBDb2xvcmluZyBQcmVmZXJlbmNlIj48L2Rpdj48L2Rpdj48L2Rpdj48YnIgY2xhc3M9ImZpZ3VyZS1icmVhayI+PGRpdiBjbGFzcz0ibm90ZSIgc3R5bGU9Im1hcmdpbi1sZWZ0OiAwLjVpbjsgbWFyZ2luLXJpZ2h0OiAwLjVpbjsiPjxoMyBjbGFzcz0idGl0bGUiPlhNTCBDb2xvcnM8L2gzPjxwPgotICAgICAgICAgICAgICAgIFRoZSBjb2xvciBmb3Igc3RhbmRhcmQgWE1MIGlzIHN0aWxsIGhhbmRsZWQgYnkgdGhlIFhNTCBGaWxlcyBzeW50YXggY29sb3JpbmcKLSAgICAgICAgICAgICAgICBwcmVmZXJlbmNlIHBhZ2UuICAgQ2hhbmdlcyBtYWRlIHRoZXJlIGFyZSByZWZsZWN0ZWQgaW4gdGhlIFhTTCBlZGl0b3IgYXMgd2VsbC4KLSAgICAgICAgICAgIDwvcD48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy92YWxpZGF0aW9uLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvcHJlZmVyZW5jZXMvdmFsaWRhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOGViOGU5Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy92YWxpZGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+UHJvamVjdCBWYWxpZGF0aW9uIFByZWZlcmVuY2VzPC90aXRsZT48bGluayBocmVmPSJib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PGxpbmsgaHJlZj0iLi4vYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxtZXRhIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiIG5hbWU9ImdlbmVyYXRvciI+PGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0ieHNscHJlZmVyZW5jZXMuaHRtbCIgdGl0bGU9IlhTTCBUb29scyBQcmVmZXJlbmNlcyI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJ4cGF0aGV4cG9ydC5odG1sIiB0aXRsZT0iSW1wb3J0IFhQYXRoIFRlbXBsYXRlcyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJzeW50YXhDb2xvcmluZy5odG1sIiB0aXRsZT0iWFNMVCBTeW50YXggQ29sb3JpbmciPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0icHJlZl9Qcm9qZWN0VmFsaWRhdGlvblByZWZlcmVuY2VzIj48L2E+UHJvamVjdCBWYWxpZGF0aW9uIFByZWZlcmVuY2VzPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48cD4KLSAgICAgICAgICAgIFhTTCBUb29scyBoYXMgdGhlIGFiaWxpdHkgdG8gc2V0IGJvdGggd29ya3NwYWNlIHdpZGUgcHJlZmVyZW5jZXMgZm9yCi0gICAgICAgICAgICB2YWxpZGF0aW9uIGFzIHdlbGwgYXMgcHJvamVjdCBsZXZlbCBwcmVmZXJlbmNlcy4gVGhlc2UgcHJlZmVyZW5jZXMsIGFzIHNob3duCi0gICAgICAgICAgICBpbgotICAgICAgICAgICAgPGEgY2xhc3M9InhyZWYiIGhyZWY9InZhbGlkYXRpb24uaHRtbCNmaWdfUHJvamVjdExldmVsUHJlZmVyZW5jZXMiIHRpdGxlPSJGaWd1cmUmbmJzcDsxMi4mbmJzcDtQcm9qZWN0IExldmVsIFZhbGlkYXRpb24gUHJlZmVyZW5jZXMiPkZpZ3VyZSZuYnNwOzEyLCAmbGRxdW87UHJvamVjdCBMZXZlbCBWYWxpZGF0aW9uIFByZWZlcmVuY2VzJnJkcXVvOzwvYT4KLSAgICAgICAgICAgIGFsbG93IGZvciB0aGUgZmluZSBncmFpbiBjb250cm9sIG9mIHdoYXQgdGhlIHZhbGlkYXRvciB3aWxsIGNvbnNpZGVyIHRvIGJlIGFuCi0gICAgICAgICAgICBzeW50YXggZXJyb3IuCi0gICAgICAgIDwvcD48ZGl2IGNsYXNzPSJmaWd1cmUiPjxhIG5hbWU9ImZpZ19Qcm9qZWN0TGV2ZWxQcmVmZXJlbmNlcyI+PC9hPjxwIGNsYXNzPSJ0aXRsZSI+PGI+RmlndXJlJm5ic3A7MTIuJm5ic3A7UHJvamVjdCBMZXZlbCBWYWxpZGF0aW9uIFByZWZlcmVuY2VzPC9iPjwvcD48ZGl2IGNsYXNzPSJmaWd1cmUtY29udGVudHMiPjxkaXYgY2xhc3M9Im1lZGlhb2JqZWN0IiBhbGlnbj0iY2VudGVyIj48aW1nIHNyYz0iLi4vaW1hZ2VzL3ByZWZlcmVuY2VzL3Byb2plY3RMZXZlbFZhbGlkYXRpb24ucG5nIiBhbGlnbj0ibWlkZGxlIiBhbHQ9IlByb2plY3QgTGV2ZWwgVmFsaWRhdGlvbiBQcmVmZXJlbmNlcyI+PC9kaXY+PC9kaXY+PC9kaXY+PGJyIGNsYXNzPSJmaWd1cmUtYnJlYWsiPjxwPiBUaGVzZSBwcmVmZXJlbmNlcyBhcmUgYWNjZXNzZWQgdmlhIHRoZSBQcm9qZWN0cyBwcm9wZXJ0aWVzIGRpYWxvZy48L3A+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvcHJlZmVyZW5jZXMveHBhdGhleHBvcnQuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy94cGF0aGV4cG9ydC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDI3ZTAwLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy94cGF0aGV4cG9ydC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5JbXBvcnQgWFBhdGggVGVtcGxhdGVzPC90aXRsZT48bGluayBocmVmPSJib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PGxpbmsgaHJlZj0iLi4vYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxtZXRhIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiIG5hbWU9ImdlbmVyYXRvciI+PGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0ieHBhdGh0ZW1wbGF0ZXMuaHRtbCIgdGl0bGU9IlhQYXRoIFRlbXBsYXRlcyI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSJ4cGF0aGltcG9ydC5odG1sIiB0aXRsZT0iSW1wb3J0IFhQYXRoIFRlbXBsYXRlcyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJ2YWxpZGF0aW9uLmh0bWwiIHRpdGxlPSJQcm9qZWN0IFZhbGlkYXRpb24gUHJlZmVyZW5jZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9IlhQYXRoRXhwb3J0Ij48L2E+SW1wb3J0IFhQYXRoIFRlbXBsYXRlczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+IEFkZCBkb2N1bWVudGF0aW9uIGFib3V0IGltcG9ydGluZyBuZXcgdGVtcGxhdGVzLjwvcD48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy94cGF0aGltcG9ydC5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hwYXRoaW1wb3J0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFiZWNiNjYuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hwYXRoaW1wb3J0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPkltcG9ydCBYUGF0aCBUZW1wbGF0ZXM8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSJ4cGF0aHRlbXBsYXRlcy5odG1sIiB0aXRsZT0iWFBhdGggVGVtcGxhdGVzIj48bGluayByZWw9InByZXYiIGhyZWY9InhwYXRodGVtcGxhdGVzLmh0bWwiIHRpdGxlPSJYUGF0aCBUZW1wbGF0ZXMiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ieHBhdGhleHBvcnQuaHRtbCIgdGl0bGU9IkltcG9ydCBYUGF0aCBUZW1wbGF0ZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9IlhQYXRoSW1wb3J0Ij48L2E+SW1wb3J0IFhQYXRoIFRlbXBsYXRlczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+IEFkZCBkb2N1bWVudGF0aW9uIGFib3V0IGltcG9ydGluZyBuZXcgdGVtcGxhdGVzLjwvcD48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy94cGF0aHRlbXBsYXRlcy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hwYXRodGVtcGxhdGVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU1YTJlNjkuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hwYXRodGVtcGxhdGVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPlhQYXRoIFRlbXBsYXRlczwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbHByZWZlcmVuY2VzLmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgUHJlZmVyZW5jZXMiPjxsaW5rIHJlbD0icHJldiIgaHJlZj0ieHNsb3V0cHV0cHJvcGVydGllcy5odG1sIiB0aXRsZT0iT3V0cHV0IFByb3BlcnRpZXMiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ieHBhdGhpbXBvcnQuaHRtbCIgdGl0bGU9IkltcG9ydCBYUGF0aCBUZW1wbGF0ZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiIHN0eWxlPSJjbGVhcjogYm90aCI+PGEgbmFtZT0iWFBhdGhUZW1wbGF0ZXMiPjwvYT5YUGF0aCBUZW1wbGF0ZXM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxwPiBYUGF0aCB0ZW1wbGF0ZSBwcm9wb3NhbCBpcyBzdXBwb3J0ZWQgYnkgdGhlIFhTTCBUb29saW5nIHByb2plY3QgdGhyb3VnaCB0aGUKLSAgICAgICAgICAgIGJ1aWx0IGluIHRlbXBsYXRlIGZ1bmN0aW9uYWxpdHkgb2YgZWNsaXBzZS4gVXNlcnMgYW5kIEFkb3B0ZXJzIGNhbiBhZGQgdGhlaXIKLSAgICAgICAgICAgIG93biBzcGVjaWZpYyB4cGF0aCBleHRlbnNpb25zIGZvciBwcm9jZXNzb3Igc3BlY2lmaWMgZXh0ZW5zaW9ucy4gQW4gZXhhbXBsZQotICAgICAgICAgICAgd291bGQgYmUgdG8gYWRkIHRoZSBFWFNMVCBleHRlbnNpb25zIGZvciBwcm9wb3NhbCBzdXBwb3J0LjwvcD48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9wcmVmZXJlbmNlcy9YUGF0aFRlbXBsYXRlcy5wbmciIGFsaWduPSJtaWRkbGUiPjwvZGl2PjxwPiBUaGUgZm9sbG93aW5nIGNvbnRlbnQgdHlwZXMgYXJlIGF2YWlsYWJsZTo8L3A+PGRpdiBjbGFzcz0iaXRlbWl6ZWRsaXN0Ij48dWwgdHlwZT0iZGlzYyI+PGxpPjxwPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz5heGlzPC9zdHJvbmc+PC9zcGFuPgotICAgICAgICAgICAgICAgICAgICAtIGFuIFhQYXRoIG5hdmlnYXRpb24gYXhpcyBzdGF0ZW1lbnQuCi0gICAgICAgICAgICAgICAgPC9wPjwvbGk+PGxpPjxwPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz5leHNsdDwvc3Ryb25nPjwvc3Bhbj4KLSAgICAgICAgICAgICAgICAgICAgLSBBbiBYUGF0aCBzdGF0ZW1lbnQgdGhhdCBpcyBkZWZpbmVkIGJ5IHRoZQotICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0idWxpbmsiIGhyZWY9Imh0dHA6Ly93d3cuZXhzbHQub3JnLyIgdGFyZ2V0PSJfdG9wIj5FWFNMVDwvYT4KLSAgICAgICAgICAgICAgICAgICAgbGlicmFyeS4gWGFsYW4gYW5kIG1vc3Qgb3RoZXIgcHJvY2Vzc29ycyBoYXZlIGJ1aWx0IGluIHN1cHBvcnQgZm9yIHRoZQotICAgICAgICAgICAgICAgICAgICBFWFNMVCBsaWJyYXJ5LgotICAgICAgICAgICAgICAgIDwvcD48L2xpPjxsaT48cD4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+eHBhdGg8L3N0cm9uZz48L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgIC0gUmVwcmVzZW50cyBhbiBYUEFUSCAxLjAgZnVuY3Rpb24uIFRoZXNlIGFyZSBmdW5jdGlvbnMgYXMgZGVmaW5lZCBieQotICAgICAgICAgICAgICAgICAgICB0aGUgWFBhdGggMS4wIHNwZWNpZmljYXRpb24uCi0gICAgICAgICAgICAgICAgPC9wPjwvbGk+PGxpPjxwPgotICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYm9sZCI+PHN0cm9uZz54cGF0aCAyLjA8L3N0cm9uZz48L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgIC0gUmVwcmVzZW50cyBhbiBYUGF0aCAyLjAgZnVuY3Rpb24uCi0gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJlbXBoYXNpcyI+PGVtPk5vdGU6IFRoYXQgY3VycmVudGx5IFhTTCBUb29scyBvbmx5IHNoaXBzIHdpdGgKLSAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlcyBkZWZpbmVkIGZvciBYUGF0aCAxLjAgLjwvZW0+PC9zcGFuPgotICAgICAgICAgICAgICAgIDwvcD48L2xpPjxsaT48cD4KLSAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImJvbGQiPjxzdHJvbmc+b3BlcmF0b3I8L3N0cm9uZz48L3NwYW4+Ci0gICAgICAgICAgICAgICAgICAgIC0gQW4geHBhdGggbG9naWNhbCBvcGVyYXRvciBsaWtlIEFORCwgT1IsIGV0Yy4KLSAgICAgICAgICAgICAgICA8L3A+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJYUGF0aFRlbXBsYXRlTmV3Ij48L2E+Q3JlYXRpbmcgTmV3IFRlbXBsYXRlczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+IEFkZCBkb2N1bWVudGF0aW9uIGFib3V0IGNyZWF0aW5nIG5ldyB0ZW1wbGF0ZXMuPC9wPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hzbG91dHB1dHByb3BlcnRpZXMuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy94c2xvdXRwdXRwcm9wZXJ0aWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmMWI2NmMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hzbG91dHB1dHByb3BlcnRpZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5PdXRwdXQgUHJvcGVydGllczwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbHByZWZlcmVuY2VzLmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgUHJlZmVyZW5jZXMiPjxsaW5rIHJlbD0icHJldiIgaHJlZj0ieHNscHJvY2Vzc29ycy5odG1sIiB0aXRsZT0iSW5zdGFsbGVkIFByb2Nlc3NvcnMiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0ieHBhdGh0ZW1wbGF0ZXMuaHRtbCIgdGl0bGU9IlhQYXRoIFRlbXBsYXRlcyI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJYU0xPdXRwdXRQcm9wZXJ0aWVzIj48L2E+T3V0cHV0IFByb3BlcnRpZXM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxwPiBUaGUgdmFyaW91cyB4c2wgcHJvY2Vzc29ycyBzdXBwb3J0IGEgd2lkZSB2YXJpZXR5IG9mIHByb2Nlc3NvciBzcGVjaWZpYwotICAgICAgICAgICAgdHdlYWtzLiBIb3dldmVyIHRoZXJlIGFyZSBzZXZlcmFsIFN0YW5kYXJkIHByb2Nlc3NvciBmZWF0dXJlcyB0aGF0IGFsbCBYU0xUCi0gICAgICAgICAgICBwcm9jZXNzb3JzIHN1cHBvcnQuIFRoZXNlIG9wdGlvbnMgY2FuIGJlIHNldCBhbmQgd2lsbCBhY3QgYXMgdGhlIGRlZmF1bHRzIGZvcgotICAgICAgICAgICAgYWxsIHRyYW5zZm9ybWF0aW9ucyB1bmxlc3MgdGhleSBhcmUgc3BlY2lmaWNhbGx5IG92ZXJyaWRlbiBieSB0aGUgc3R5bGVzaGVldAotICAgICAgICAgICAgb3IgdGhlIGxhdW5jaCBjb25maWd1cmF0aW9uLjwvcD48ZGl2IGNsYXNzPSJtZWRpYW9iamVjdCIgYWxpZ249ImNlbnRlciI+PGltZyBzcmM9Ii4uL2ltYWdlcy9wcmVmZXJlbmNlcy94c2xfb3V0cHV0cHJvcGVydGllcy5wbmciIGFsaWduPSJtaWRkbGUiPjwvZGl2PjxwPiBJbiBhZGRpdGlvbiB0byB0aGUgU3RhbmRhcmQgT3V0cHV0IFByb3BlcnRpZXMsIGVhY2ggWFNMVCBwcm9jZXNzb3IgY2FuIGhhdmUKLSAgICAgICAgICAgIHByb2Nlc3NvcnMgc3BlY2lmaWMgZmVhdHVyZXMuPC9wPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hzbHByZWZlcmVuY2VzLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvcHJlZmVyZW5jZXMveHNscHJlZmVyZW5jZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE5MDIzNS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvcHJlZmVyZW5jZXMveHNscHJlZmVyZW5jZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTxodG1sPjxoZWFkPjxNRVRBIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij48dGl0bGU+WFNMIFRvb2xzIFByZWZlcmVuY2VzPC90aXRsZT48bGluayBocmVmPSJib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PGxpbmsgaHJlZj0iLi4vYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxtZXRhIGNvbnRlbnQ9IkRvY0Jvb2sgWFNMIFN0eWxlc2hlZXRzIFYxLjc0LjAiIG5hbWU9ImdlbmVyYXRvciI+PGxpbmsgcmVsPSJob21lIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJ1cCIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0icHJldiIgaHJlZj0iLi4vbGF1bmNoaW5nL2RlYnVnZ2luZ19wcm9jZXNzb3JzLmh0bWwiIHRpdGxlPSJYU0xUIFByb2Nlc3NvciBTcGVjaWZpYyBTdXBwb3J0Ij48bGluayByZWw9Im5leHQiIGhyZWY9InhzbHByb2Nlc3NvcnMuaHRtbCIgdGl0bGU9Ikluc3RhbGxlZCBQcm9jZXNzb3JzIj48L2hlYWQ+PGJvZHkgYmdjb2xvcj0id2hpdGUiIHRleHQ9ImJsYWNrIiBsaW5rPSIjMDAwMEZGIiB2bGluaz0iIzg0MDA4NCIgYWxpbms9IiMwMDAwRkYiPjxkaXYgY2xhc3M9ImNoYXB0ZXIiIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJYU0xQcmVmZXJlbmNlcyI+PC9hPlhTTCBUb29scyBQcmVmZXJlbmNlczwvaDI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idG9jIj48cD48Yj5UYWJsZSBvZiBDb250ZW50czwvYj48L3A+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHNscHJlZmVyZW5jZXMuaHRtbCNYU0xGZWF0dXJlcyI+RmVhdHVyZXM8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJ4c2xwcm9jZXNzb3JzLmh0bWwiPkluc3RhbGxlZCBQcm9jZXNzb3JzPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHNsb3V0cHV0cHJvcGVydGllcy5odG1sIj5PdXRwdXQgUHJvcGVydGllczwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InhwYXRodGVtcGxhdGVzLmh0bWwiPlhQYXRoIFRlbXBsYXRlczwvYT48L3NwYW4+PHVsPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHBhdGh0ZW1wbGF0ZXMuaHRtbCNYUGF0aFRlbXBsYXRlTmV3Ij5DcmVhdGluZyBOZXcgVGVtcGxhdGVzPC9hPjwvc3Bhbj48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0ieHBhdGhpbXBvcnQuaHRtbCI+SW1wb3J0IFhQYXRoIFRlbXBsYXRlczwvYT48L3NwYW4+PC9saT48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InhwYXRoZXhwb3J0Lmh0bWwiPkltcG9ydCBYUGF0aCBUZW1wbGF0ZXM8L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjxsaT48c3BhbiBjbGFzcz0ic2VjdGlvbiI+PGEgaHJlZj0idmFsaWRhdGlvbi5odG1sIj5Qcm9qZWN0IFZhbGlkYXRpb24gUHJlZmVyZW5jZXM8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJzeW50YXhDb2xvcmluZy5odG1sIj5YU0xUIFN5bnRheCBDb2xvcmluZzwvYT48L3NwYW4+PC9saT48L3VsPjwvZGl2PjxwPiBUaGUgWFNMIFByZWZlcmVuY2UgcGFnZXMgaGFzIHNldmVyYWwgc3ViIHNlY3Rpb25zLiBFYWNoIG9mIHRoZXNlIGFsbG93IGZvcgotICAgICAgICBjb25maWd1cmF0aW9uIG9mIHZhcmlvdXMgYXNwZWN0cyBvZiB0aGUgcHJlZmVyZW5jZXMuIEZyb20gdGhlIGNvbnRyb2xsaW5nIG9mIHRoZQotICAgICAgICBkZWZhdWx0IFhTTCBwcm9jZXNzb3IgdG8gYmUgdXNlZCBkdXJpbmcgdHJhbnNmb3JtYXRpb25zLiBUbyBleHRlbmRpbmcgdGhlIGNvbnRlbnQKLSAgICAgICAgYXNzaXN0IHN1cHBvcnQgb2YgdGhlIFhQYXRoIGZ1bmN0aW9ucyBhdmFpbGFibGUgaW4gdGhlIFhNTCBlZGl0b3IuPC9wPjxkaXYgY2xhc3M9ImZpZ3VyZSI+PGEgbmFtZT0iZmlnX1hTTFByZWZlcmVuY2VzIj48L2E+PHAgY2xhc3M9InRpdGxlIj48Yj5GaWd1cmUmbmJzcDsxMS4mbmJzcDtYU0wgVG9vbHMgUHJlZmVyZW5jZXM8L2I+PC9wPjxkaXYgY2xhc3M9ImZpZ3VyZS1jb250ZW50cyI+PGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvcHJlZmVyZW5jZXMveHNscHJlZmVyZW5jZXMucG5nIiBhbGlnbj0ibWlkZGxlIiBhbHQ9IlhTTCBUb29scyBQcmVmZXJlbmNlcyI+PC9kaXY+PC9kaXY+PC9kaXY+PGJyIGNsYXNzPSJmaWd1cmUtYnJlYWsiPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9IlhTTEZlYXR1cmVzIj48L2E+RmVhdHVyZXM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxwPiBUaGUgWFNMIEZlYXR1cmVzIHByZWZlcmVuY2UgcGFnZSBhbGxvd3MgZm9yIHRoZSBjb25maWd1cmF0aW9uIG9mIGZlYXR1cmVzCi0gICAgICAgICAgICBmb3IgYSBwYXJ0aWN1bGFyIHByb2Nlc3Nvci4gWFNMIFRvb2xzIGNvbWVzIHdpdGggWGFsYW4gMi43LjAgYnkgZGVmYXVsdC4KLSAgICAgICAgICAgIEFkb3B0ZXJzIGNhbiBleHRlbmQgYW5kIGluY2x1ZGUgdGhlaXIgb3duIHNwZWNpZmljIGZlYXR1cmVzIGZvciB0aGVpciBvd24KLSAgICAgICAgICAgIHByb2Nlc29vcnMuIEFuIGFkb3B0ZXIgY291bGQgZXh0ZW5kIHRoZSB0b29saW5nIHRvIHN1cHBvcnQgWFNMVCAyLjAKLSAgICAgICAgICAgIHRyYW5zZm9ybWF0aW9ucywgYW5kIGZlYXR1cmVzIHBhcnRpY3VsYXIgdG8gdGhhdCBwYXJzZXIuPC9wPjxkaXYgY2xhc3M9Im1lZGlhb2JqZWN0IiBhbGlnbj0iY2VudGVyIj48aW1nIHNyYz0iLi4vaW1hZ2VzL3ByZWZlcmVuY2VzL3hzbGZlYXR1cmVzLnBuZyIgYWxpZ249Im1pZGRsZSI+PC9kaXY+PHA+Ci0gICAgICAgICAgICBUaGUKLSAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJib2xkIj48c3Ryb25nPlByb2Nlc3NvciBUeXBlPC9zdHJvbmc+PC9zcGFuPgotICAgICAgICAgICAgYWxsb3dzIHlvdSB0byBzZXQgZmVhdHVyZXMgZm9yIGEgc3BlY2lmaWMgcHJvY2Vzc29yLiBJbiB0aGlzIGNhc2UgdGhpcyBpcyBmb3IKLSAgICAgICAgICAgIHRoZSBwcm9jZXNzb3IgdGhhdCBpcyBiZWluZyBpbnN0YWxsZWQuIFhTTCBUb29scyBjb21lcyB3aXRoIFhhbGFuIDIuNy4wLCBhbmQKLSAgICAgICAgICAgIGl0IGlzIHRoZSBvbmx5IGF2YWlsYWJsZSBwcm9jZXNzb3IgdHlwZSBieSBkZWZhdWx0LgotICAgICAgICA8L3A+PHA+IFRoZSBmZWF0dXJlIHRhYmxlIGxpc3RzIHRoZSBmZWF0dXJlcyB0aGF0IGFyZSBzcGVjaWZpYyB0byB0aGUgcHJvY2Vzc29yCi0gICAgICAgICAgICB0aGF0IHdhcyBzZWxlY3RlZC4gQXMgeW91IHNlbGVjdCBlYWNoIG9mIHRoZSBmZWF0dXJlcywgaW5mb3JtYXRpb24gcmVnYXJkaW5nCi0gICAgICAgICAgICB0aGF0IGZlYXR1cmUgYW5kIGl0J3MgYWJpbGl0aWVzIGlzIGRpc3BsYXllZCBpbiB0aGUgZGVzY3JpcHRpb24gYm94LiBCeQotICAgICAgICAgICAgY2xpY2tpbmcgaW4gdGhlIHZhbHVlIGNvbHVtbiwgbmV4dCB0byB0aGUgZmVhdHVyZSB5b3Ugd2FudCB0byBzZXQgdGhlIHZhbHVlCi0gICAgICAgICAgICBmb3IsIHRoZSB1c2VyIGNhbiBzZXQgdGhlIGZlYXR1cmUuPC9wPjwvZGl2PjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hzbHByb2Nlc3NvcnMuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9wcmVmZXJlbmNlcy94c2xwcm9jZXNzb3JzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmNzk5ZmMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3ByZWZlcmVuY2VzL3hzbHByb2Nlc3NvcnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotPGh0bWw+PGhlYWQ+PE1FVEEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPjx0aXRsZT5JbnN0YWxsZWQgUHJvY2Vzc29yczwvdGl0bGU+PGxpbmsgaHJlZj0iYm9vay5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiPjxsaW5rIGhyZWY9Ii4uL2Jvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bWV0YSBjb250ZW50PSJEb2NCb29rIFhTTCBTdHlsZXNoZWV0cyBWMS43NC4wIiBuYW1lPSJnZW5lcmF0b3IiPjxsaW5rIHJlbD0iaG9tZSIgaHJlZj0iLi4vaW5kZXguaHRtbCIgdGl0bGU9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjxsaW5rIHJlbD0idXAiIGhyZWY9InhzbHByZWZlcmVuY2VzLmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgUHJlZmVyZW5jZXMiPjxsaW5rIHJlbD0icHJldiIgaHJlZj0ieHNscHJlZmVyZW5jZXMuaHRtbCIgdGl0bGU9IlhTTCBUb29scyBQcmVmZXJlbmNlcyI+PGxpbmsgcmVsPSJuZXh0IiBocmVmPSJ4c2xvdXRwdXRwcm9wZXJ0aWVzLmh0bWwiIHRpdGxlPSJPdXRwdXQgUHJvcGVydGllcyI+PC9oZWFkPjxib2R5IGJnY29sb3I9IndoaXRlIiB0ZXh0PSJibGFjayIgbGluaz0iIzAwMDBGRiIgdmxpbms9IiM4NDAwODQiIGFsaW5rPSIjMDAwMEZGIj48ZGl2IGNsYXNzPSJzZWN0aW9uIiBsYW5nPSJlbiI+PGRpdiBjbGFzcz0idGl0bGVwYWdlIj48ZGl2PjxkaXY+PGgyIGNsYXNzPSJ0aXRsZSIgc3R5bGU9ImNsZWFyOiBib3RoIj48YSBuYW1lPSJYU0xQcm9jZXNzb3JzIj48L2E+SW5zdGFsbGVkIFByb2Nlc3NvcnM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxwPiBUaGUgaW5zdGFsbGVkIHByb2Nlc3NvcnMgcGFnZSBsZXRzIHlvdSBwaWNrIHdoaWNoIG9mIHRoZSBpbnN0YWxsZWQgWFNMVAotICAgICAgICAgICAgcHJvY2Vzc29ycyB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC4gVGhlIGRlZmF1bHQgaXMgdGhlIFN5c3RlbSBEZWZhdWx0Ci0gICAgICAgICAgICBQcm9jZXNvb3IsIGJ1dCB5b3UgY2FuIHNlbGVjdCBhbnkgb2YgdGhlIGF2YWlsYWJsZSBwcm9jZXNzb3JzIHRvIGJlIHVzZWQgYXMKLSAgICAgICAgICAgIHRoZSBkZWZhdWx0IHByb2Nlc3Nvci48L3A+PGRpdiBjbGFzcz0ibWVkaWFvYmplY3QiIGFsaWduPSJjZW50ZXIiPjxpbWcgc3JjPSIuLi9pbWFnZXMvcHJlZmVyZW5jZXMveHNsX0luc3RhbGxlZFByb2Nlc3NvcnMucG5nIiBhbGlnbj0ibWlkZGxlIj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9yZWZlcmVuY2UvbWFpbnRvcGljLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvcmVmZXJlbmNlL21haW50b3BpYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDc2MDc4Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9yZWZlcmVuY2UvbWFpbnRvcGljLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgotCi08aHRtbD4KLTxoZWFkPgotCTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgotCTx0aXRsZT5NYWluIFRvcGljPC90aXRsZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci08aDE+TWFpbiBUb3BpYzwvaDE+Ci1QbGVhc2UgZW50ZXIgeW91ciB0ZXh0IGhlcmUuCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3JlZmVyZW5jZS9zdWJ0b3BpYy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3JlZmVyZW5jZS9zdWJ0b3BpYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTYxYzUwLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9yZWZlcmVuY2Uvc3VidG9waWMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+Ci0KLTxodG1sPgotPGhlYWQ+Ci0JPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Ci0JPHRpdGxlPlN1YiBUb3BpYzwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5PgotPGgxPlN1YiBUb3BpYzwvaDE+Ci1QbGVhc2UgZW50ZXIgeW91ciB0ZXh0IGhlcmUuCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3JlZmVyZW5jZS9zdWJ0b3BpYzIuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9yZWZlcmVuY2Uvc3VidG9waWMyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg2YmNiZjkuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy9odG1sL3JlZmVyZW5jZS9zdWJ0b3BpYzIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+Ci0KLTxodG1sPgotPGhlYWQ+Ci0JPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Ci0JPHRpdGxlPlN1YiBUb3BpYyAyPC90aXRsZT4KLTwvaGVhZD4KLQotPGJvZHk+Ci08aDE+U3ViIFRvcGljIDI8L2gxPgotUGxlYXNlIGVudGVyIHlvdXIgdGV4dCBoZXJlLgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9zYW1wbGVzL3NhbXBsZXMuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvaHRtbC9zYW1wbGVzL3NhbXBsZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRjNmUzMi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL2h0bWwvc2FtcGxlcy9zYW1wbGVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08aHRtbD48aGVhZD48TUVUQSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+PHRpdGxlPlhTTCBUb29saW5nIFNhbXBsZXM8L3RpdGxlPjxsaW5rIGhyZWY9ImJvb2suY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIj48bGluayBocmVmPSIuLi9ib29rLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyI+PG1ldGEgY29udGVudD0iRG9jQm9vayBYU0wgU3R5bGVzaGVldHMgVjEuNzQuMCIgbmFtZT0iZ2VuZXJhdG9yIj48bGluayByZWw9ImhvbWUiIGhyZWY9Ii4uL2luZGV4Lmh0bWwiIHRpdGxlPSJYU0wgVG9vbHMgVXNlciBEb2N1bWVudGF0aW9uIj48bGluayByZWw9InVwIiBocmVmPSIuLi9pbmRleC5odG1sIiB0aXRsZT0iWFNMIFRvb2xzIFVzZXIgRG9jdW1lbnRhdGlvbiI+PGxpbmsgcmVsPSJwcmV2IiBocmVmPSIuLi9nZW5lcmFsL2dlbmVyYWwuaHRtbCIgdGl0bGU9IkdlbmVyYWwiPjxsaW5rIHJlbD0ibmV4dCIgaHJlZj0iLi4vbGVnYWwuaHRtbCIgdGl0bGU9Ik5vdGljZXMiPjwvaGVhZD48Ym9keSBiZ2NvbG9yPSJ3aGl0ZSIgdGV4dD0iYmxhY2siIGxpbms9IiMwMDAwRkYiIHZsaW5rPSIjODQwMDg0IiBhbGluaz0iIzAwMDBGRiI+PGRpdiBjbGFzcz0iY2hhcHRlciIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMiBjbGFzcz0idGl0bGUiPjxhIG5hbWU9Ik4xMDNEOSI+PC9hPlhTTCBUb29saW5nIFNhbXBsZXM8L2gyPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InRvYyI+PHA+PGI+VGFibGUgb2YgQ29udGVudHM8L2I+PC9wPjx1bD48bGk+PHNwYW4gY2xhc3M9InNlY3Rpb24iPjxhIGhyZWY9InNhbXBsZXMuaHRtbCNFY2xpcHNlSGVscCI+RWNsaXBzZSBIZWxwPC9hPjwvc3Bhbj48dWw+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJzYW1wbGVzLmh0bWwjRG9jYm9va0VjbGlwc2VIZWxwIj5DcmVhdGluZyBFY2xpcHNlIEhlbHAgd2l0aCBEb2Nib29rIGFuZCBYU0wgVG9vbHM8L2E+PC9zcGFuPjwvbGk+PGxpPjxzcGFuIGNsYXNzPSJzZWN0aW9uIj48YSBocmVmPSJzYW1wbGVzLmh0bWwjRElUQUVjbGlwc2VIZWxwIj5DcmVhdGluZyBFY2xpcHNlIEhlbHAgd2l0aCBESVRBIGFuZCBYU0wgVG9vbHM8L2E+PC9zcGFuPjwvbGk+PC91bD48L2xpPjwvdWw+PC9kaXY+PHA+VGhpcyBzZWN0aW9uIGNvbnRhaW5zIHNldmVyYWwgc2FtcGxlcyBhbmQgcmVmZXJlbmNlcyB0byBzYW1wbGUgcHJvamVjdHMuPC9wPjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDIgY2xhc3M9InRpdGxlIiBzdHlsZT0iY2xlYXI6IGJvdGgiPjxhIG5hbWU9IkVjbGlwc2VIZWxwIj48L2E+RWNsaXBzZSBIZWxwPC9oMj48L2Rpdj48L2Rpdj48L2Rpdj48cD48L3A+PGRpdiBjbGFzcz0ic2VjdGlvbiIgbGFuZz0iZW4iPjxkaXYgY2xhc3M9InRpdGxlcGFnZSI+PGRpdj48ZGl2PjxoMyBjbGFzcz0idGl0bGUiPjxhIG5hbWU9IkRvY2Jvb2tFY2xpcHNlSGVscCI+PC9hPkNyZWF0aW5nIEVjbGlwc2UgSGVscCB3aXRoIERvY2Jvb2sgYW5kIFhTTCBUb29sczwvaDM+PC9kaXY+PC9kaXY+PC9kaXY+PHA+Ci0JCQkJVGhpcyB0dXRvcmlhbCBhc3N1bWVzIHRoYXQgeW91IGhhdmUga25vd2xlZGdlIG9mIERvY2Jvb2ssIEFOVCwgYW5kIHRoZQotCQkJCWFiaWxpdHkgdG8gc2V0dXAgQU5UIGJ1aWxkIHNjcmlwdHMuCi0JCQk8L3A+PHA+Ci0JCQkJVG8gRG8gd3JpdGUgdXAgdGhlIHJlc3Qgb2YgdGhlIHR1dG9yaWFsLgotCQkJPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNlY3Rpb24iIGxhbmc9ImVuIj48ZGl2IGNsYXNzPSJ0aXRsZXBhZ2UiPjxkaXY+PGRpdj48aDMgY2xhc3M9InRpdGxlIj48YSBuYW1lPSJESVRBRWNsaXBzZUhlbHAiPjwvYT5DcmVhdGluZyBFY2xpcHNlIEhlbHAgd2l0aCBESVRBIGFuZCBYU0wgVG9vbHM8L2gzPjwvZGl2PjwvZGl2PjwvZGl2PjxwPgotCQkJCVRoaXMgdHV0b3JpYWwgYXNzdW1lcyB0aGF0IHlvdSBoYXZlIGtub3dsZWRnZSBvZiBESVRBLCBBTlQsIGFuZCB0aGUKLQkJCQlhYmlsaXR5IHRvIHNldHVwIEFOVCBidWlsZCBzY3JpcHRzLgotCQkJPC9wPjxwPgotCQkJCVRvIERvIHdyaXRlIHVwIHRoZSByZXN0IG9mIHRoZSB0dXRvcmlhbC4KLQkJCTwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvcGx1Z2luLnByb3BlcnRpZXMgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL3BsdWdpbi5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTE1ZjgyLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvcGx1Z2luLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLSNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLndzdC54c2wuZG9jCi12ZW5kb3JOYW1lID0gRWNsaXBzZS5vcmcKLXBsdWdpbk5hbWUgPSBYU0wgVXNlciBEb2N1bWVudGF0aW9uIChJbmN1YmF0aW5nKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvcGx1Z2luLnhtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvcGx1Z2luLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Y1YTYxZS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuZG9jL3BsdWdpbi54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTxwbHVnaW4+Ci0JPGV4dGVuc2lvbiBwb2ludD0ib3JnLmVjbGlwc2UuaGVscC50b2MiPgotCQk8dG9jIHByaW1hcnk9InRydWUiIGZpbGU9InRvYy54bWwiPjwvdG9jPgotCTwvZXh0ZW5zaW9uPgotPC9wbHVnaW4+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy90b2MueG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLmRvYy90b2MueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MjRiMjMxLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MvdG9jLnhtbAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTx0b2MgdG9waWM9Imh0bWwvaW5kZXguaHRtbCIgbGFiZWw9IlhTTCBUb29scyBVc2VyIERvY3VtZW50YXRpb24iPjx0b3BpYyBocmVmPSJodG1sL2ludHJvZHVjdGlvbi9nZXR0aW5nc3RhcnRlZC5odG1sIiBsYWJlbD0iR2V0dGluZyBTdGFydGVkIj48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL2NvbmNlcHRzL2NvbmNlcHRzLmh0bWwiIGxhYmVsPSJYU0xUIENvbmNlcHRzIj48dG9waWMgaHJlZj0iaHRtbC9jb25jZXB0cy9jb25jZXB0cy5odG1sI1Jlc3VjaW5nWFNMVCIgbGFiZWw9IlJlc2N1aW5nIFhTTFQgRnJvbSBOaWNoZSBTdGF0dXMiPjx0b3BpYyBocmVmPSJodG1sL2NvbmNlcHRzL2NvbmNlcHRzLmh0bWwjTjEwMDM0IiBsYWJlbD0iVGhlIFByb2JsZW0iPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvY29uY2VwdHMvY29uY2VwdHMuaHRtbCNOMTAwNUEiIGxhYmVsPSJUaGUgU29sdXRpb24iPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvY29uY2VwdHMvY29uY2VwdHMuaHRtbCNOMTAwODEiIGxhYmVsPSJRdWVyaWVzIj48dG9waWMgaHJlZj0iaHRtbC9jb25jZXB0cy9jb25jZXB0cy5odG1sI04xMDA4RiIgbGFiZWw9InhzbDpmb3ItZWFjaCI+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9jb25jZXB0cy9jb25jZXB0cy5odG1sI04xMDA5QiIgbGFiZWw9InhzbDppZiI+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9jb25jZXB0cy9jb25jZXB0cy5odG1sI04xMDBBNSIgbGFiZWw9InhzbDpjaG9vc2UiPjwvdG9waWM+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9jb25jZXB0cy9jb25jZXB0cy5odG1sI04xMDBBRiIgbGFiZWw9IkNvbmNsdXNpb24iPjwvdG9waWM+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9jb25jZXB0cy9yZXNvdXJjZXMuaHRtbCIgbGFiZWw9IlJlc291cmNlcyI+PC90b3BpYz48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL2VkaXRvci94c2xlZGl0b3IuaHRtbCIgbGFiZWw9IlhTTCBFZGl0aW5nIj48dG9waWMgaHJlZj0iaHRtbC9lZGl0b3IveHNsZWRpdG9yLmh0bWwjVmFsaWRhdGlvbiIgbGFiZWw9IlZhbGlkYXRpb24iPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0Lmh0bWwiIGxhYmVsPSJDb250ZW50IEFzc2lzdCI+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0Lmh0bWwjZWRfWFNMUHJvcG9zYWxzIiBsYWJlbD0iWFNMVCBFbGVtZW50IFByb3Bvc2FscyI+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3Rfc2VsZWN0dGVzdC5odG1sIiBsYWJlbD0iU2VsZWN0LCBUZXN0LCBhbmQgTWF0Y2ggQXR0cmlidXRlcyI+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbnRlbnRhc3Npc3RfZXhjbHVkZS5odG1sIiBsYWJlbD0iRXhjbHVkZS1SZXN1bHQtUHJlZml4ZXMiPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X21vZGVhc3Npc3QuaHRtbCIgbGFiZWw9Ik1vZGUgYXR0cmlidXRlIGFzc2lzdGFuY2UiPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X25hbWVkdGVtcGxhdGUuaHRtbCIgbGFiZWw9Ik5hbWVkIFRlbXBsYXRlIEFzc2lzdGFuY2UiPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl9jb250ZW50YXNzaXN0X2NhbGx0ZW1wbGF0ZS5odG1sIiBsYWJlbD0iQ2FsbC1UZW1wbGF0ZSBBc3Npc3RhbmNlIj48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL2VkaXRvci94c2xlZGl0b3JfY29udGVudGFzc2lzdF9pbmNsdWRlLmh0bWwiIGxhYmVsPSJJbmNsdWRlIGFuZCBJbXBvcnQgaHJlZiBBc3Npc3RhbmNlIj48L3RvcGljPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl90ZW1wbGF0ZXMuaHRtbCIgbGFiZWw9IlRlbXBsYXRlcyI+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl90ZW1wbGF0ZXMuaHRtbCNOMTAxRDMiIGxhYmVsPSJYUGF0aCBUZW1wbGF0ZXMiPjwvdG9waWM+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9lZGl0b3IveHNsZWRpdG9yX2NvbG9yaW5nLmh0bWwiIGxhYmVsPSJYU0xUIFN5bnRheCBDb2xvcmluZyI+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9lZGl0b3IveHNsZWRpdG9yX21hcmtlcnMuaHRtbCIgbGFiZWw9IlhTTFQgTWFya2VycyBhbmQgQW5ub3RhdGlvbnMiPjx0b3BpYyBocmVmPSJodG1sL2VkaXRvci94c2xlZGl0b3JfbWFya2Vycy5odG1sI3hzbHRPdmVyUmlkZSIgbGFiZWw9IlRlbXBsYXRlIE92ZXJyaWRlIj48L3RvcGljPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl9kZWJ1Z2dpbmcuaHRtbCIgbGFiZWw9IlhTTCBEZWJ1Z2dpbmciPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvZWRpdG9yL3hzbGVkaXRvcl9kZWJ1Z2dpbmcuaHRtbCIgbGFiZWw9Ik5hdmlnYXRpb24iPjwvdG9waWM+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9sYXVuY2hpbmcvbGF1bmNoaW5nLmh0bWwiIGxhYmVsPSJYU0wgTGF1bmNoaW5nIGFuZCBEZWJ1Z2dpbmciPjx0b3BpYyBocmVmPSJodG1sL2xhdW5jaGluZy9sYXVuY2hpbmcuaHRtbCNYU0xMYXVuY2giIGxhYmVsPSJYU0wgTGF1bmNoaW5nIj48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmcuaHRtbCIgbGFiZWw9IlhTTFQgRGVidWdnaW5nIj48dG9waWMgaHJlZj0iaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nLmh0bWwjRGVidWdHZXR0aW5nU3RhcnRlZCIgbGFiZWw9IlN0YXJ0aW5nIGEgRGVidWcgU2Vzc2lvbiI+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nX2NvbW1vbi5odG1sIiBsYWJlbD0iQ29tbW9uIERlYnVnZ2luZyBPcGVyYXRpb25zIj48dG9waWMgaHJlZj0iaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nX2NvbW1vbi5odG1sI1hTTERlYnVnUmVzdWx0VmlldyIgbGFiZWw9IlJlc3VsdCBWaWV3Ij48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmdfdmFyaWFibGVzdmlldy5odG1sIiBsYWJlbD0iVmFyaWFibGVzIFZpZXciPjwvdG9waWM+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9sYXVuY2hpbmcvZGVidWdnaW5nX3Byb2Nlc3NvcnMuaHRtbCIgbGFiZWw9IlhTTFQgUHJvY2Vzc29yIFNwZWNpZmljIFN1cHBvcnQiPjx0b3BpYyBocmVmPSJodG1sL2xhdW5jaGluZy9kZWJ1Z2dpbmdfcHJvY2Vzc29ycy5odG1sI1hTTERlYnVnWGFsYW4iIGxhYmVsPSJYU0wgRGVidWdnaW5nIHdpdGggWGFsYW4iPjwvdG9waWM+PC90b3BpYz48L3RvcGljPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvcHJlZmVyZW5jZXMveHNscHJlZmVyZW5jZXMuaHRtbCIgbGFiZWw9IlhTTCBUb29scyBQcmVmZXJlbmNlcyI+PHRvcGljIGhyZWY9Imh0bWwvcHJlZmVyZW5jZXMveHNscHJlZmVyZW5jZXMuaHRtbCNYU0xGZWF0dXJlcyIgbGFiZWw9IkZlYXR1cmVzIj48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL3ByZWZlcmVuY2VzL3hzbHByb2Nlc3NvcnMuaHRtbCIgbGFiZWw9Ikluc3RhbGxlZCBQcm9jZXNzb3JzIj48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL3ByZWZlcmVuY2VzL3hzbG91dHB1dHByb3BlcnRpZXMuaHRtbCIgbGFiZWw9Ik91dHB1dCBQcm9wZXJ0aWVzIj48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL3ByZWZlcmVuY2VzL3hwYXRodGVtcGxhdGVzLmh0bWwiIGxhYmVsPSJYUGF0aCBUZW1wbGF0ZXMiPjx0b3BpYyBocmVmPSJodG1sL3ByZWZlcmVuY2VzL3hwYXRodGVtcGxhdGVzLmh0bWwjWFBhdGhUZW1wbGF0ZU5ldyIgbGFiZWw9IkNyZWF0aW5nIE5ldyBUZW1wbGF0ZXMiPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvcHJlZmVyZW5jZXMveHBhdGhpbXBvcnQuaHRtbCIgbGFiZWw9IkltcG9ydCBYUGF0aCBUZW1wbGF0ZXMiPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvcHJlZmVyZW5jZXMveHBhdGhleHBvcnQuaHRtbCIgbGFiZWw9IkltcG9ydCBYUGF0aCBUZW1wbGF0ZXMiPjwvdG9waWM+PC90b3BpYz48dG9waWMgaHJlZj0iaHRtbC9wcmVmZXJlbmNlcy92YWxpZGF0aW9uLmh0bWwiIGxhYmVsPSJQcm9qZWN0IFZhbGlkYXRpb24gUHJlZmVyZW5jZXMiPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvcHJlZmVyZW5jZXMvc3ludGF4Q29sb3JpbmcuaHRtbCIgbGFiZWw9IlhTTFQgU3ludGF4IENvbG9yaW5nIj48L3RvcGljPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvZ2VuZXJhbC9nZW5lcmFsLmh0bWwiIGxhYmVsPSJHZW5lcmFsIj48dG9waWMgaHJlZj0iaHRtbC9nZW5lcmFsL2dlbmVyYWwuaHRtbCNYSW5jbHVkZSIgbGFiZWw9IlhJbmNsdWRlIj48L3RvcGljPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvc2FtcGxlcy9zYW1wbGVzLmh0bWwiIGxhYmVsPSJYU0wgVG9vbGluZyBTYW1wbGVzIj48dG9waWMgaHJlZj0iaHRtbC9zYW1wbGVzL3NhbXBsZXMuaHRtbCNFY2xpcHNlSGVscCIgbGFiZWw9IkVjbGlwc2UgSGVscCI+PHRvcGljIGhyZWY9Imh0bWwvc2FtcGxlcy9zYW1wbGVzLmh0bWwjRG9jYm9va0VjbGlwc2VIZWxwIiBsYWJlbD0iQ3JlYXRpbmcgRWNsaXBzZSBIZWxwIHdpdGggRG9jYm9vayBhbmQgWFNMIFRvb2xzIj48L3RvcGljPjx0b3BpYyBocmVmPSJodG1sL3NhbXBsZXMvc2FtcGxlcy5odG1sI0RJVEFFY2xpcHNlSGVscCIgbGFiZWw9IkNyZWF0aW5nIEVjbGlwc2UgSGVscCB3aXRoIERJVEEgYW5kIFhTTCBUb29scyI+PC90b3BpYz48L3RvcGljPjwvdG9waWM+PHRvcGljIGhyZWY9Imh0bWwvbGVnYWwuaHRtbCIgbGFiZWw9Ik5vdGljZXMiPjwvdG9waWM+PC90b2M+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uLy5jbGFzc3BhdGggYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vLmNsYXNzcGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjRjNWUzMS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vLmNsYXNzcGF0aAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxjbGFzc3BhdGg+Ci0JPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KMlNFLTEuNSIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPgotCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJvdXRwdXQiIHBhdGg9ImJpbiIvPgotPC9jbGFzc3BhdGg+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vLnByb2plY3QgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vLnByb2plY3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlmZGYyOWQuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uLy5wcm9qZWN0CisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxwcm9qZWN0RGVzY3JpcHRpb24+Ci0JPG5hbWU+b3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbjwvbmFtZT4KLQk8Y29tbWVudD48L2NvbW1lbnQ+Ci0JPHByb2plY3RzPgotCTwvcHJvamVjdHM+Ci0JPGJ1aWxkU3BlYz4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQkJPGJ1aWxkQ29tbWFuZD4KLQkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLlNjaGVtYUJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2Uud3N0LnZhbGlkYXRpb24udmFsaWRhdGlvbmJ1aWxkZXI8L25hbWU+Ci0JCQk8YXJndW1lbnRzPgotCQkJPC9hcmd1bWVudHM+Ci0JCTwvYnVpbGRDb21tYW5kPgotCTwvYnVpbGRTcGVjPgotCTxuYXR1cmVzPgotCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5QbHVnaW5OYXR1cmU8L25hdHVyZT4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+Ci0JPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjEzNmVkMy4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi0jU2F0IEp1biAyMSAxODoyMjozMCBHTVQtMDU6MDAgMjAwOAotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW9yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLmNvZGVnZW4udGFyZ2V0UGxhdGZvcm09MS41Ci1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuNQotb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIucHJvYmxlbS5hc3NlcnRJZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5wcm9ibGVtLmVudW1JZGVudGlmaWVyPWVycm9yCi1vcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS41CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLndzdC52YWxpZGF0aW9uLnByZWZzIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS53c3QudmFsaWRhdGlvbi5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc5MTUzYi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLndzdC52YWxpZGF0aW9uLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotI1NhdCBBdWcgMDIgMDg6NDU6MzkgR01ULTA1OjAwIDIwMDgKLURFTEVHQVRFU19QUkVGRVJFTkNFPWRlbGVnYXRlVmFsaWRhdG9yTGlzdAotVVNFUl9CVUlMRF9QUkVGRVJFTkNFPWVuYWJsZWRCdWlsZFZhbGlkYXRvckxpc3QKLVVTRVJfTUFOVUFMX1BSRUZFUkVOQ0U9ZW5hYmxlZE1hbnVhbFZhbGlkYXRvckxpc3QKLVVTRVJfUFJFRkVSRU5DRT1vdmVycmlkZUdsb2JhbFByZWZlcmVuY2VzdHJ1ZWRpc2FibGVBbGxWYWxpZGF0aW9uZmFsc2V2ZXJzaW9uMS4yLjAudjIwMDgwNjA1MTQwMgotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLW92ZXJyaWRlPXRydWUKLXN1c3BlbmQ9ZmFsc2UKLXZhbHMvb3JnLmVjbGlwc2UuanN0LmpzcC5jb3JlLkpTUEJhdGNoVmFsaWRhdG9yL2dsb2JhbD1GRjAxCi12YWxzL29yZy5lY2xpcHNlLmpzdC5qc3AuY29yZS5KU1BDb250ZW50VmFsaWRhdG9yL2dsb2JhbD1GRjAxCi12YWxzL29yZy5lY2xpcHNlLndzdC5kdGQuY29yZS5kdGREVERWYWxpZGF0b3IvZ2xvYmFsPUZGMDEKLXZhbHMvb3JnLmVjbGlwc2Uud3N0Lmh0bWwudWkuSFRNTFZhbGlkYXRvci9nbG9iYWw9RkYwMQotdmFscy9vcmcuZWNsaXBzZS53c3Qud3NkbC52YWxpZGF0aW9uLndzZGwvZ2xvYmFsPUZGMDIxNThvcmcuZWNsaXBzZS53c3Qud3NkbC52YWxpZGF0aW9uLmludGVybmFsLmVjbGlwc2UuVmFsaWRhdG9yCi12YWxzL29yZy5lY2xpcHNlLndzdC54bWwuY29yZS54bWwvZ2xvYmFsPVRUMDMKLXZhbHMvb3JnLmVjbGlwc2Uud3N0LnhzZC5jb3JlLnhzZC9nbG9iYWw9RkYwMjE2Mm9yZy5lY2xpcHNlLndzdC54c2QuY29yZS5pbnRlcm5hbC52YWxpZGF0aW9uLmVjbGlwc2UuVmFsaWRhdG9yCi12YWxzL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS54c2wvZ2xvYmFsPVRUMDIKLXZmLnZlcnNpb249MwpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0YzFhMjY4Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLU1hbmlmZXN0LVZlcnNpb246IDEuMAotQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lCi1CdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uOyBzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAxLjAuMC5xdWFsaWZpZXIKLUJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24uQWN0aXZhdG9yCi1SZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAotIG9yZy5lY2xpcHNlLmhlbHAKLUJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5Ci1CdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKLUJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUKLUV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vYWJvdXQuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTk5ZGYzLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPEhUTUw+Ci0KLTxoZWFkPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTwvaGVhZD4KLQotPEJPRFkgbGFuZz0iRU4tVVMiPgotCi08SDM+QWJvdXQgVGhpcyBDb250ZW50PC9IMz4KLQotPFA+SnVuZSwgMjAwODwvUD4KLQotPEgzPkxpY2Vuc2U8L0gzPgotCi08UD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gCi0oIkNvbnRlbnQiKS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSAKLXVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAKLSgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSBhdAotPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC12MTAucGhwIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHA8L0E+LiAKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvUD4KLQotPFA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgCi1Db250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoIlJlZGlzdHJpYnV0b3IiKSBhbmQgZGlmZmVyZW50IAotdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5IGFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gCi1DaGVjayB0aGUgUmVkaXN0cmlidXRvcpJzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaCAKLWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIAotdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQgCi1hbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQKLTxBIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnLzwvQT4uPC9QPgotCi08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vYnVpbGQucHJvcGVydGllcyBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxY2NmYzk2Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotc291cmNlLi4gPSBzcmMvCi1vdXRwdXQuLiA9IGJpbi8KLWJpbi5pbmNsdWRlcyA9IHBsdWdpbi54bWwsXAotICAgICAgICAgICAgICAgTUVUQS1JTkYvLFwKLSAgICAgICAgICAgICAgIC4sXAotICAgICAgICAgICAgICAgYnVpbGQueG1sLFwKLSAgICAgICAgICAgICAgIHRvYy54bWwsXAotICAgICAgICAgICAgICAgZG9jL2h0bWwvLFwKLSAgICAgICAgICAgICAgIGFib3V0Lmh0bWwsXAotICAgICAgICAgICAgICAgYmluLyxcCi0gICAgICAgICAgICAgICBwbHVnaW4ucHJvcGVydGllcyxcCi0gICAgICAgICAgICAgICB0b2NFeHRlbnNpb24ueG1sCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vYnVpbGQueG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2J1aWxkLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM1M2JhYy4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vYnVpbGQueG1sCisrKyAvZGV2L251bGwKQEAgLTEsODAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAKLSAgICAgSnVsIDIxLCAyMDA4IDY6NDY6MDIgUE0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotCi0gICAgIFNESyBEb2N1bWVudGF0aW9uICAgIAotICAgICBCdWlsZHMgU0RLIFRPQyBEb2N1bWVudGF0aW9uIHVzaW5nIEpFTERvY2xldC4KLSAgICAgICAgICAgICAgICAgICAKLSAgICAgZGNhcnZlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAtLT4KLTxwcm9qZWN0IG5hbWU9IlNESyBEb2N1bWVudGF0aW9uIiBkZWZhdWx0PSJkZWZhdWx0Ij4KLSAgICA8ZGVzY3JpcHRpb24+Ci0gICAgICAgICAgICBCdWlsZHMgU0RLIFRPQyBEb2N1bWVudGF0aW9uIHVzaW5nIEpFTERvY2xldC4KLSAgICA8L2Rlc2NyaXB0aW9uPgotCQotCTxwcm9wZXJ0eSBuYW1lPSJ3b3Jrc3BhY2UiIGxvY2F0aW9uPSIuIi8+Ci0JPHByb3BlcnR5IG5hbWU9IndvcmtzcGFjZWxvYyIgbG9jYXRpb249Ii4uIi8+Ci0KLSAgICA8IS0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAKLSAgICAgICAgICB0YXJnZXQ6IGRlZmF1bHQgICAgICAgICAgICAgIAotICAgICAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09IC0tPgotICAgIDx0YXJnZXQgbmFtZT0iZGVmYXVsdCIgZGVzY3JpcHRpb249IkJ1aWxkcyBTREsgVE9DIERvY3VtZW50YXRpb24gdXNpbmcgSkVMRG9jbGV0LiI+Ci0KLSAgCSAgPGphdmFkb2MgZGVzdGRpcj0iZG9jIiBwYWNrYWdlPSJ0cnVlIiBkb2NsZXRwYXRoPSIke3dvcmtzcGFjZX0vbGliL2plbGRvY2xldC5qYXIiPgotICAJICAJIDxmaWxlc2V0IGRpcj0iJHt3b3Jrc3BhY2Vsb2N9Ij4KLQkgIAkgCTxpbmNsdWRlIG5hbWU9Im9yZy5lY2xpcHNlLndzdC54c2wuY29yZS9zcmMvb3JnL2VjbGlwc2Uvd3N0L3hzbC9jb3JlLyouamF2YSIvPgotCSAgCSAJPGluY2x1ZGUgbmFtZT0ib3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlL3NyYy9vcmcvZWNsaXBzZS93c3QveHNsL2NvcmUvcmVzb2x2ZXIvKi5qYXZhIi8+Ci0gIAkgIAkgCTxpbmNsdWRlIG5hbWU9Im9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5kZWJ1Zy9zcmMtZGVidWdnZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC9qYXhwL2RlYnVnL2RlYnVnZ2VyLyouamF2YSIvPgotICAJICAJIAk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS53c3QueHNsLmpheHAuZGVidWcvc3JjLWludm9rZXIvb3JnL2VjbGlwc2Uvd3N0L3hzbC9qYXhwL2RlYnVnL2ludm9rZXIvKi5qYXZhIi8+Ci0gIAkgIAkgCTxpbmNsdWRlIG5hbWU9Im9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4vc3JjLWRlYnVnZ2VyL29yZy9lY2xpcHNlL3dzdC94c2wveGFsYW4vZGVidWdnZXIvKi5qYXZhIi8+Ci0gIAkgIAkgCTxpbmNsdWRlIG5hbWU9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS9zcmMvb3JnL2VjbGlwc2Uvd3N0L3htbC94cGF0aC9jb3JlLyouamF2YSIvPgotICAJICAJIAk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLmNvcmUvc3JjL29yZy9lY2xpcHNlL3dzdC94bWwveHBhdGgvY29yZS91dGlsLyouamF2YSIvPgotICAJICAJIAk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpL3NyYy14cGF0aC9vcmcvZWNsaXBzZS93c3QveG1sL3hwYXRoL3VpLyouamF2YSIvPgotICAJICAJIAk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpL3NyYy14cGF0aC9vcmcvZWNsaXBzZS93c3QveG1sL3hwYXRoL3VpL3ZpZXdzLyouamF2YSIvPgotICAJICAJIDwvZmlsZXNldD4KLSAgCSAgICAgPGRvY2xldCBuYW1lPSJjb20uamVsZG9jbGV0LkpFTERvY2xldCIvPgotICAJICA8L2phdmFkb2M+Ci0gICAgCQotICAgICA8eHNsdCBiYXNlZGlyPSIuIiBzdHlsZT0iZG9jL2plbHRvaHRtbC54c2wiIGluPSJkb2MvamVsLnhtbCIgb3V0PSJkb2MvaHRtbC9kZWxldGVtZS5odG1sIj4KLSAgCQk8ZmFjdG9yeSBuYW1lPSJvcmcuYXBhY2hlLnhhbGFuLnByb2Nlc3Nvci5UcmFuc2Zvcm1lckZhY3RvcnlJbXBsIj4KLSAgCQkJPGF0dHJpYnV0ZSBuYW1lPSJodHRwOi8veG1sLmFwYWNoZS5vcmcveGFsYW4vZmVhdHVyZXMvb3B0aW1pemUiIHZhbHVlPSJ0cnVlIi8+Ci0gIAkJCQotICAJCTwvZmFjdG9yeT4KLSAgICAgPC94c2x0PgotICAgIAkKLSAgICAJCi0gICAgIDx4c2x0IHN0eWxlPSJkb2MvamVsdG90b2MueHNsIiBpbj0iZG9jL2plbC54bWwiIG91dD0idG9jLnhtbCIgZGVzdGRpcj0iLiI+Ci0gIAkJPGZhY3RvcnkgbmFtZT0ib3JnLmFwYWNoZS54YWxhbi5wcm9jZXNzb3IuVHJhbnNmb3JtZXJGYWN0b3J5SW1wbCI+Ci0gIAkJCTxhdHRyaWJ1dGUgbmFtZT0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hhbGFuL2ZlYXR1cmVzL29wdGltaXplIiB2YWx1ZT0idHJ1ZSIvPgotICAJCTwvZmFjdG9yeT4KLSAgICAgCTxwYXJhbSBuYW1lPSJzZGtuYW1lIiBleHByZXNzaW9uPSJYU0wgVG9vbHMgU0RLIERvY3VtZW50YXRpb24iLz4KLSAgICAgPC94c2x0PgotICAgIAkKLSAgICA8L3RhcmdldD4KLQkKLQk8dGFyZ2V0IG5hbWU9IkRvY0NoZWNrIj4KLQkgIAkgIDxqYXZhZG9jIGRlc3RkaXI9ImRvYy9kb2NjaGVjayIgcGFja2FnZT0idHJ1ZSIgZG9jbGV0cGF0aD0iJHt3b3Jrc3BhY2V9L2xpYi9kb2NjaGVjay5qYXIiPgotCSAgCSAgCSA8ZmlsZXNldCBkaXI9IiR7d29ya3NwYWNlbG9jfSI+Ci0JICAJICAJIAk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS53c3QueHNsLmNvcmUvKiovKi5qYXZhIi8+Ci0JICAJICAJIAk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS53c3QueHNsLmRlYnVnLyoqLyouamF2YSIvPgotCSAgCSAgCSAJPGluY2x1ZGUgbmFtZT0ib3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Zy51aS8qKi8qLmphdmEiLz4KLQkgIAkgIAkgCTxpbmNsdWRlIG5hbWU9Im9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLyoqLyouamF2YSIvPgotCSAgCSAgCSAJPGluY2x1ZGUgbmFtZT0ib3JnLmVjbGlwc2Uud3N0LnhzbC5zYXhvbi8qKi8qLmphdmEiLz4KLQkgIAkgIAkgCTxpbmNsdWRlIG5hbWU9Im9yZy5lY2xpcHNlLndzdC54c2wudWkvKiovKi5qYXZhIi8+Ci0JICAJICAJIAk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuL3NyYy1kZWJ1Z2dlci8qKi8qLmphdmEiLz4KLQkgIAkgIAkgCTxpbmNsdWRlIG5hbWU9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS9zcmMvKiovKi5qYXZhIi8+Ci0JICAJICAJIAk8aW5jbHVkZSBuYW1lPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLyoqLyouamF2YSIvPgotCSAgCSAgCSA8L2ZpbGVzZXQ+Ci0JICAJICAgICA8ZG9jbGV0IG5hbWU9ImNvbS5zdW4udG9vbHMuZG9jbGV0cy5kb2NjaGVjay5Eb2NDaGVjayI+Ci0JICAJICAgICAJPHBhcmFtIG5hbWU9Ii1leGVjRGVwdGgiIHZhbHVlPSIyIi8+Ci0JICAJICAJIDwvZG9jbGV0PgotCSAgCSAgPC9qYXZhZG9jPgotCTwvdGFyZ2V0PgotCQotCTx0YXJnZXQgbmFtZT0iRXh0ZW5zaW9uUG9pbnREb2MiPgotCQk8cGRlLmNvbnZlcnRTY2hlbWFUb0hUTUwgbWFuaWZlc3Q9Ii4uL29yZy5lY2xpcHNlLndzdC54c2wuamF4cC5sYXVuY2hpbmcvcGx1Z2luLnhtbCIKLQkJCSAgICAgICAgICAgICAgICAgICAgIGRlc3RpbmF0aW9uPSIke3dvcmtzcGFjZX0vZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50IgotCQkvPgotCTwvdGFyZ2V0PgotCi08L3Byb2plY3Q+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jLy5jdnNpZ25vcmUgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jLy5jdnNpZ25vcmUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2ODcyMmUuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy8uY3ZzaWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEsMjk5ICswLDAgQEAKLWRvY2NoZWNrCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwucGFyc2VyLlhTTFNvdXJjZVBhcnNlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkucHJlZmVyZW5jZXMuT3V0cHV0UHJlZmVyZW5jZVBhZ2UueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkRPTVZpZXdlckZpbHRlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIuYXJndW1lbnRfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5pbnRlcm5hbC5jb250ZW50YXNzaXN0LlhQYXRoVGVtcGxhdGVDb21wbGV0aW9uUHJvY2Vzc29yLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLm1vZGVsaGFuZGxlci5Nb2RlbEhhbmRsZXJGb3JYU0wueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwuWFNMQ29yZVBsdWdpbi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwuWFNMVUlQbHVnaW4ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnByZWZlcmVuY2VzLkluc3RhbGxlZFByb2Nlc3NvcnNCbG9jay54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLlhTTFRTb3VyY2VMb29rdXBQYXJ0aWNpcGFudC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLnJlZ2lzdHJ5LkRlYnVnZ2VyUmVnaXN0cnkueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwubW9kZWwuWFNMQXR0cmlidXRlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLm91dHB1dC5NZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5tYWluLlBhcmFtZXRlclZpZXdlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5wcm9jZXNzb3IuSW5zdGFsbFN0YW5kaW4ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwueHBhdGgucGFyc2VyLnhwYXRoUGFyc2VyLnZhcmlhYmxlX3JlZmVyZW5jZV9yZXR1cm4ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwubW9kZWxoYW5kbGVyLlhTTE1vZGVsTG9hZGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5hY3Rpb25zLk5ld1dpemFyZEFjdGlvbi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkubW9kZWwuWFNMTW9kZWxQcmVzZW50YXRpb24ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUucmVzb2x2ZXIuWFNMVmVyc2lvbkhhbmRsZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5EZWJ1Z2dlckRlc2NyaXB0b3IueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5YU0xUU291cmNlTG9va3VwRGlyZWN0b3IueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwuZW5jb2RpbmcuWFNMRG9jdW1lbnRMb2FkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwudGV4dC5JWFNMUGFydGl0aW9ucy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkuYWN0aW9ucy5BZGRQYXJhbWV0ZXJBY3Rpb24ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLmFjdGlvbnMuUmVtb3ZlQWN0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnV0aWwuU3RydWN0dXJlZERvY3VtZW50VXRpbC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5mb3JtYXR0ZXIuTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMuZm9ybWF0dGVyLkZPRm9ybWF0dGVyVGFiLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5jb250ZW50YXNzaXN0LlhTTENvbnRlbnRBc3Npc3RQcm9jZXNzb3IueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLnVpLmludGVybmFsLndpemFyZHMuTmV3WFNMRmlsZVdpemFyZFBhZ2UueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLnVpLmludGVybmFsLndpemFyZHMuTmV3WFNMRmlsZVRlbXBsYXRlc1dpemFyZFBhZ2UueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwueHBhdGgucGFyc2VyLnhwYXRoUGFyc2VyLnJlbGF0aXZlX2xvY2F0aW9uX3BhdGhfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLmZvcm1hdHRlci5YU0xGT0NvbWJvQmxvY2sueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLnVpLmludGVybmFsLnN0eWxlLkxpbmVTdHlsZVByb3ZpZGVyRm9yWFNMLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcuSVByb2Nlc3NvclR5cGUueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMubWFpbi5YU0xNYWluVGFiLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5FZGl0b3JSZWZlcmVuY2VMYWJlbFByb3ZpZGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnBhcnNlci5yZWdpb25zLlhQYXRoU2VwYXJhdG9yUmVnaW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnZhbGlkYXRpb24uWFNMVmFsaWRhdG9yLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLm1haW4uTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5yZWdpc3RyeS5JbnZva2VyUmVnaXN0cnlSZWFkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludm9rZXIuY29uZmlnLlR5cGVkVmFsdWUueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuWFNMQ29yZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5Sb290U3R5bGVGcmFtZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC52YWxpZGF0aW9uLk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5pbnRlcm5hbC5wcmVmZXJlbmNlcy5YUGF0aFRlbXBsYXRlUHJlZmVyZW5jZVBhZ2UueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLnVpLmludGVybmFsLmVkaXRvci5YU0xIeXBlcmxpbmtEZXRlY3Rvci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLm1vZGVsLk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC51dGlsLlhTTFBsdWdpbkltYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIucGF0aF9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwuYWN0aW9ucy5OZXdYTUxGaWxlV2l6YXJkRGVsZWdhdGUueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlJlZnJlc2hBY3Rpb24ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludm9rZXIuTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5PdXRwdXRQcm9wZXJ0eVByZWZlcmVuY2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5wcmVmZXJlbmNlcy5BYnN0cmFjdFhTTFByZWZlcmVuY2VQYWdlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnZva2VyLmNvbmZpZy5NZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC5yZWdpb25zLlhTTFBhcnNlclJlZ2lvbkZhY3RvcnkueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLmludGVybmFsLnVpLnZpZXdzLkpGYWNlTm9kZUxhYmVsUHJvdmlkZXJYUGF0aC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwucHJlZmVyZW5jZXMuWFNMVGVtcGxhdGVQcmVmZXJlbmNlUGFnZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLm1vZGVsLlhTTERlYnVnRWxlbWVudC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLlhTTFRMYXVuY2hDb25maWd1cmF0aW9uRGVsZWdhdGUueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnByZWZlcmVuY2VzLk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci51bmlvbl9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIuZXhwcl9yZXR1cm4ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLnVpLmludGVybmFsLmFjdGlvbnMuTmV3WFNERmlsZVdpemFyZERlbGVnYXRlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5sYXVuY2hpbmcucmVnaXN0cnkuUHJvY2Vzc29yVHlwZVJlZ2lzdHJ5UmVhZGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5lcXVhbGl0eV9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC5hbnQuWEluY2x1ZGVUYXNrLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5tb2RlbC5YU0xCcmVha3BvaW50QWRhcHRlckZhY3RvcnkueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMucHJvY2Vzc29yLlByb2Nlc3NvckRldGFpbHNEaWFsb2cueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwueHBhdGgucGFyc2VyLnhwYXRoUGFyc2VyLmZpbHRlcl9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwuWFNMVUlDb25zdGFudHMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmRlYnVnLmludGVybmFsLnV0aWwuWFNMRGVidWdQbHVnaW5JbWFnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLmludGVybmFsLmNvbnRlbnRhc3Npc3QuQ3VzdG9tVGVtcGxhdGVQcm9wb3NhbC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLnJlZ2lzdHJ5LlByb2Nlc3NvclJlZ2lzdHJ5UmVhZGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5YU0xUVGFiR3JvdXAueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5yZWdpc3RyeS5Qcm9jZXNzb3JSZWdpc3RyeS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkuYWN0aW9ucy5BZGRXb3Jrc3BhY2VGaWxlQWN0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5wcmVmZXJlbmNlcy5GZWF0dXJlc0Jsb2NrLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLm1vZGVsLlhTTEVsZW1lbnQueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwubW9kZWwuU3R5bGVzaGVldE1vZGVsLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLm1vZGVsLkltcG9ydC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwucHJlZmVyZW5jZXMuTWFpblByZWZlcmVuY2VQYWdlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5zcGVjaWFsX3N0ZXBfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5hYmJyX2F4aXNfc3BlY2lmaWVyX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW52b2tlci5UcmFuc2Zvcm1hdGlvbkV4Y2VwdGlvbi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkuWFNMTGF1bmNoU2hvcnRjdXQueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnByZWZlcmVuY2VzLkFkZFByb2Nlc3NvckRpYWxvZy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIuWFBhdGhQYXJzZXJMZXhlci54bWwKLW9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguaW50ZXJuYWwudWkudmlld3MuWFBhdGhDb21wdXRlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIuZnVuY3Rpb25fY2FsbF9yZXR1cm4ueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLmludGVybmFsLlhQYXRoVUlNZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5QcmludFRyYWNlTGlzdGVuZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5VdGlscy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC5tb2RlbC5JbmNsdWRlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5hYnNvbHV0ZV9sb2NhdGlvbl9wYXRoX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC52YWxpZGF0aW9uLk1heEVycm9yc0V4Y2VlZGVkRXhjZXB0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5pbnRlcm5hbC51aS52aWV3cy5YUGF0aFZpZXcueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLlhQYXRoVUlNZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5vdXRwdXQuT3V0cHV0RmlsZUJsb2NrLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5sYXVuY2hpbmcuUHJvY2Vzc29ySW52b2tlckRlc2NyaXB0b3IueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLmludGVybmFsLnV0aWwuWFBhdGhQbHVnaW5JbWFnZUhlbHBlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLm1vZGVsLlhTTERlYnVnVGFyZ2V0LnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnZva2VyLklQcm9jZXNzb3JJbnZva2VyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLm1vZGVsLlZhcmlhYmxlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5BYnN0cmFjdFRhYmxlQmxvY2sueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwubW9kZWwuU3R5bGVzaGVldC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5wcm9jZXNzb3IuUHJvY2Vzc29yTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludm9rZXIuY29uZmlnLlBpcGVsaW5lRGVmaW5pdGlvbi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5tYWluLklQYXJhbWV0ZXJzQ2hhbmdlZExpc3RlbmVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLm91dHB1dC5PdXRwdXRUYWIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludm9rZXIuY29uZmlnLkNyZWF0aW9uRXhjZXB0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLnByb2Nlc3Nvci5Qcm9jZXNzb3JEZXNjcmlwdG9yLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5hY3Rpb25zLk11bHRpcGxlSW5wdXREaWFsb2cuRmllbGRTdW1tYXJ5LnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5sYXVuY2hpbmcucmVnaXN0cnkuRGVidWdnZXJSZWdpc3RyeVJlYWRlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkucHJlZmVyZW5jZXMuUHJvY2Vzc29yc1ByZWZlcmVuY2VQYWdlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5YU0xEZWJ1Z1VJUGx1Z2luLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5pbnRlcm5hbC51aS52aWV3cy5KRmFjZU5vZGVDb250ZW50UHJvdmlkZXJYUGF0aC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwudmFsaWRhdGlvbi5EZWxlZ2F0aW5nU291cmNlVmFsaWRhdG9yRm9yWFNMLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5hY3Rpb25zLk5ld1dTRExGaWxlV2l6YXJkRGVsZWdhdGUueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLmludGVybmFsLnV0aWwuWFBhdGhQbHVnaW5JbWFnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwueHBhdGgucGFyc2VyLnhwYXRoUGFyc2VyLmxpdGVyYWxfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLlZhbGlkYXRpb25QcmVmZXJlbmNlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5UcmFjZUxpc3RlbmVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5hY3Rpb25zLk5ld1hTTEZpbGVXaXphcmREZWxlZ2F0ZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkuYWN0aW9ucy5BYnN0cmFjdFN0eWxlc2hlZXRBY3Rpb24ueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlhQYXRoQWN0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5hY3Rpb25zLk5ld0RUREZpbGVXaXphcmREZWxlZ2F0ZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwuZG91YmxlY2xpY2suWFNMRG91YmxlQ2xpY2tTdHJhdGVneS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIucmVsYXRpb25hbF9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC52YWxpZGF0aW9uLlhTTFZhbGlkYXRpb25NZXNzYWdlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5pbnRlcm5hbC5wcmVmZXJlbmNlcy5YUGF0aFByZWZlbmNlUGFnZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC52YWxpZGF0aW9uLmVjbGlwc2UuVmFsaWRhdG9yMi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLklQcm9jZXNzb3JJbnN0YWxsLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLm1haW4uTWFpblRhYk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLm1vZGVsLlhTTE5vZGUueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMubWFpbi5TdHlsZXNoZWV0TGFiZWxQcm92aWRlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwuY29udGVudGFzc2lzdC5NZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLmNvbmZpZy5MYXVuY2hQcm9wZXJ0aWVzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnV0aWwuRGVidWcueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkVkaXROYW1lc3BhY2VQcmVmaXhEaWFsb2cueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMucHJvY2Vzc29yLkphckxhYmVsUHJvdmlkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMubWFpbi5QYXJhbWV0ZXJzQ29udGVudFByb3ZpZGVyLnhtbAotamVsLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlLlhQYXRoQ29yZVBsdWdpbi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLlBsdWdpblByb2Nlc3Nvckphci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIucHJpbWFyeV9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLlhTTFByb3BlcnR5VGVzdGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5SZXNvdXJjZVNlbGVjdGlvbkJsb2NrLldpZGdldExpc3RlbmVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblZhcmlhYmxlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5udW1iZXJfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC52YWxpZGF0aW9uLlhTTE1hcmt1cFZhbGlkYXRvci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLmJyZWFrcG9pbnQuTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLnVpLmludGVybmFsLnZhbGlkYXRpb24uRGVsZWdhdGluZ1NvdXJjZVZhbGlkYXRvckZvclhhbGFuWFNMLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLmZvcm1hdHRlci5SZW5kZXJlclRhYk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5YU0xDb25zb2xlTGluZVRyYWNrZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5JUHJvY2Vzc29ySW52b2tlci54bWwKLW9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuU2hvd0luU291cmNlQWN0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5YU0xMYXVuY2hDb25maWd1cmF0aW9uVGFiLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLmZvcm1hdHRlci5SZW5kZXJlckNvbmZpZ3VyYXRpb25CbG9jay54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLnJlZ2lzdHJ5Lk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Z2dlci5TdHlsZUZyYW1lLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5tYWluLklucHV0RmlsZUJsb2NrLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Z2dlci5JWFNMRGVidWdnZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5JRmVhdHVyZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkubW9kZWwuWFNMTGluZUJyZWFrcG9pbnRBZGFwdGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5wcmVmZXJlbmNlcy5NZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLlByb2Nlc3NvclByZWZlcmVuY2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5sYXVuY2hpbmcuUHJlZmVyZW5jZUluaXRpYWxpemVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Z2dlci5EZWJ1Z1J1bm5lci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIuaV9yZWxhdGl2ZV9sb2NhdGlvbl9wYXRoX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLmNvbmZpZy5NZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC51dGlsLkZpbGVVdGlsLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLnByb2Nlc3Nvci5YU0xQcm9jZXNzb3JUYWIueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLmNvcmUuaW50ZXJuYWwucGFyc2VyLlhQYXRoUGFyc2VyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5wcmVmZXJlbmNlcy5Qcm9jZXNzb3JMaWJyYXJ5QmxvY2sueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwubW9kZWwuUGFyYW1ldGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLnJlc29sdmVyLlVSSVJlc29sdmVyQmxvY2syLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnByZWZlcmVuY2VzLlByZWZlcmVuY2VJbml0aWFsaXplci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5TdHlsZUZyYW1lLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcubW9kZWwuWFNMTGluZUJyZWFrcG9pbnQueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLmludGVybmFsLnRlbXBsYXRlcy5UZW1wbGF0ZUNvbnRleHRUeXBlSWRzWFBhdGgueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMucmVzb2x2ZXIuTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5yZWdpc3RyeS5BYnN0cmFjdFJlZ2lzdHJ5UmVhZGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5sYXVuY2hpbmcuTGF1bmNoaW5nUGx1Z2luLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC50ZW1wbGF0ZXMuVmVyc2lvblRlbXBsYXRlVmFyaWFibGVSZXNvbHZlclhTTC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIueHBhdGhfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLnByb2Nlc3Nvci5GZWF0dXJlc0Jsb2NrLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnZva2VyLkNvbmZpZ3VyYXRpb25FeGNlcHRpb24ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLmFjdGlvbnMuUmVtb3ZlUGFyYW1ldGVyQWN0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5hY3Rpb25zLk11bHRpcGxlSW5wdXREaWFsb2cueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5NZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwud2l6YXJkcy5OZXdYU0xGaWxlV2l6YXJkLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcubW9kZWwuSVhTTERlYnVnVGFyZ2V0LnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLm1haW4uVHJhbnNmb3Jtc0Jsb2NrLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnZva2VyLkpBWFBTQVhQcm9jZXNzb3JJbnZva2VyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5sYXVuY2hpbmcuT3V0cHV0UHJvcGVydHkueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwucmVnaW9ucy5YUGF0aFJlZ2lvbkNvbnRleHQueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLmFjdGlvbnMuQ29udHJvbEFjY2Vzc2libGVMaXN0ZW5lci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwudXRpbC5YU0xQbHVnaW5JbWFnZUhlbHBlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLlhTTExhdW5jaENvbmZpZ3VyYXRpb25Db25zdGFudHMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5NZXNzYWdlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkucHJlZmVyZW5jZXMuT3V0cHV0QmxvY2sueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5jb25maWcuTGF1bmNoVHJhbnNmb3JtLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Z2dlci5EZWJ1Z0NvbnN0YW50cy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC52YWxpZGF0aW9uLmVjbGlwc2UuVmFsaWRhdG9yLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5hYmJyX3N0ZXBfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcuY29uZmlnLkxhdW5jaEF0dHJpYnV0ZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIubG9jYXRpb25fcGF0aF9yZXR1cm4ueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlhNTEVkaXRvcnNDb250ZW50UHJvdmlkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMubWFpbi5TdHlsZXNoZWV0Vmlld2VyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Z2dlci5WYXJpYWJsZS54bWwKLW9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS51dGlsLlhTTFRYUGF0aEhlbHBlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5yZXNvbHZlci5Xb3JraW5nRGlyZWN0b3J5QmxvY2sueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwubW9kZWwuQ2FsbFRlbXBsYXRlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLnJlc29sdmVyLlJlc29sdmVyRXh0ZW5zaW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5TdHJ1Y3R1cmVkVGV4dFZpZXdlckNvbmZpZ3VyYXRpb25YU0wueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMubWFpbi5QYXJhbWV0ZXJzQmxvY2sueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLlhQYXRoVmlld1BsdWdpbi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLlByZWZlcmVuY2VVdGlsLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcubW9kZWwuSVhTTENvbnN0YW50cy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLklEZWJ1Z2dlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5tYWluLlBhcmFtZXRlcnNMYWJlbFByb3ZpZGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5tdWx0X2V4cHJfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5sYXVuY2hpbmcuRmVhdHVyZVByZWZlcmVuY2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcuSU91dHB1dFByb3BlcnR5LnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcubW9kZWwuWFNMVGhyZWFkLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhbkRlYnVnZ2VyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnZhbGlkYXRpb24uWFNMVmFsaWRhdGlvblJlcG9ydC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLmNvbmZpZy5MYXVuY2hGZWF0dXJlcy54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkucHJlZmVyZW5jZXMuRmVhdHVyZXNQcmVmZXJlbmNlUGFnZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5tYWluLklTdHlsZXNoZWV0RW50cmllc0NoYW5nZWRMaXN0ZW5lci54bWwKLW9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NTm9kZUxhYmVsUHJvdmlkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5Qcm9jZXNzb3JUeXBlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC52YWxpZGF0aW9uLlhTTEVycm9yTGlzdGVuZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwuYW50Lk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLnJlc29sdmVyLlVSSVJlc29sdmVyQmxvY2sueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLmFjdGlvbnMuQWJzdHJhY3RQYXJhbWV0ZXJBY3Rpb24ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5jb25maWcuTGF1bmNoSGVscGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5lZGl0b3IuU291cmNlRmlsZUh5cGVybGluay54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLm1vZGVsLlhTTFZhcmlhYmxlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcubW9kZWwuWFNMVmFsdWUueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5tb2RlbC5YU0xTdGFja0ZyYW1lLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLm1vZGVsLlRlbXBsYXRlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5wcmVmZXJlbmNlcy5CYXNlUHJlZmVyZW5jZVBhZ2UueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwueHBhdGgucGFyc2VyLnhwYXRoUGFyc2VyLnByZWRpY2F0ZV9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwubGF1bmNoaW5nLnJlZ2lzdHJ5LlByb2Nlc3NvclR5cGVSZWdpc3RyeS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54aW5jbHVkZS5YSW5jbHVkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkRPTVRyZWVDb250ZW50UHJvdmlkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLnRhYnMub3V0cHV0Lk91dHB1dFByb3BlcnRpZXNCbG9jay54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIudW5hcnlfZXhwcl9yZXR1cm4ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5yZWdpc3RyeS5JbnZva2VyUmVnaXN0cnkueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLmFjdGlvbnMuTW92ZVVwQWN0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnZva2VyLmNvbmZpZy5UcmFuc2Zvcm1EZWZpbml0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC50ZW1wbGF0ZXMuVGVtcGxhdGVDb250ZXh0VHlwZVhTTC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkuYWN0aW9ucy5PcGVuRGlhbG9nQWN0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5hZGRpdGl2ZV9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIuc3RlcF9yZXR1cm4ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwueHBhdGgucGFyc2VyLnhwYXRoUGFyc2VyLmFyZ19saXN0X3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuZGVidWcuaW50ZXJuYWwudXRpbC5YU0xQbHVnaW5JbWFnZUhlbHBlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkuTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLnVpLmludGVybmFsLnBlcnNwZWN0aXZlLlhNTFBlcnNwZWN0aXZlRmFjdG9yeS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wudWkuaW50ZXJuYWwuaGFuZGxlcnMuT3BlbkRlY2xhcmF0aW9uSGFuZGxlci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLmNvbmZpZy5MYXVuY2hQaXBlbGluZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkuYWN0aW9ucy5BZGRFeHRlcm5hbEZpbGVBY3Rpb24ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5Qcm9jZXNzb3JKYXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5YU0xUUnVudGltZS54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5tYWluLlN0eWxlc2hlZXRDb250ZW50UHJvdmlkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuaW50ZXJuYWwudGV4dC5ydWxlcy5TdHJ1Y3R1cmVkVGV4dFBhcnRpdGlvbmVyRm9yWFNMLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aExleGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLm1vZGVsLlN0eWxlc2hlZXRCdWlsZGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5SZXNvdXJjZVNlbGVjdGlvbkJsb2NrLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLnByb2Nlc3Nvci5KYXJDb250ZW50UHJvdmlkZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmRlYnVnZ2VyLkFic3RyYWN0RGVidWdnZXIueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLmFjdGlvbnMuQWN0aW9uTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5YU0xUU291cmNlUGF0aENvbXB1dGVyRGVsZWdhdGUueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLmJyZWFrcG9pbnQuWFNMQnJlYWtwb2ludFByb3ZpZGVyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS5hY3Rpb25zLk1vdmVEb3duQWN0aW9uLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnRlcm5hbC5kZWJ1Zy51aS50YWJzLnByb2Nlc3Nvci5Qcm9jZXNzb3JCbG9jay54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkudGFicy5wcm9jZXNzb3IuTWVzc2FnZXMueG1sCi1vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLmludGVybmFsLnVpLnZpZXdzLk1lc3NhZ2VzLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5wcmVkaWNhdGVfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5pbnRlcm5hbC51aS52aWV3cy5YUGF0aFZpZXdBY3Rpb25zLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC51aS5pbnRlcm5hbC5wcmVmZXJlbmNlcy5WYWxpZGF0aW9uUHJlZmVyZW5jZVBhZ2UueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5JUHJvY2Vzc29ySmFyLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLmludGVybmFsLnhwYXRoLnBhcnNlci54cGF0aFBhcnNlci5vcl9leHByX3JldHVybi54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuaW50ZXJuYWwuZGVidWcudWkuYWN0aW9ucy5NdWx0aXBsZUlucHV0RGlhbG9nLlZhbGlkYXRvci54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIuYXhpc19yZXR1cm4ueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmRlYnVnLnVpLlhTTERlYnVnVUlDb25zdGFudHMueG1sCi1vcmcuZWNsaXBzZS53c3QueHNsLmludGVybmFsLmxhdW5jaGluZy5GZWF0dXJlLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Z2dlci5CcmVha1BvaW50LnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcuUHJvY2Vzc29ySW5zdGFsbC54bWwKLW9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5pbnRlcm5hbC54cGF0aC5wYXJzZXIueHBhdGhQYXJzZXIuYW5kX2V4cHJfcmV0dXJuLnhtbAotb3JnLmVjbGlwc2Uud3N0LnhzbC5pbnZva2VyLk1haW4ueG1sCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvLmN2c2lnbm9yZSBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC8uY3ZzaWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNzVhMmE2Li4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC8uY3ZzaWdub3JlCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotZGVsZXRlbWUuaHRtbApkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL2V4dGVuc2lvbl9wb2ludC9vcmdfZWNsaXBzZV93c3RfeHNsX2pheHBfbGF1bmNoaW5nX2RlYnVnZ2VyLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfZGVidWdnZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODg1YzhjMi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfZGVidWdnZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAgVHJhbnNpdGlvbmFsLy9FTiI+Ci08SFRNTD4KLTxIRUFEPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04ODU5LTEiPgotPHRpdGxlPlhTTFQgRGVidWdnZXI8L3RpdGxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj5AaW1wb3J0IHVybCgiLi4vLi4vYm9vay5jc3MiKTs8L3N0eWxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj5AaW1wb3J0IHVybCgiLi4vLi4vc2NoZW1hLmNzcyIpOzwvc3R5bGU+Ci08L0hFQUQ+Ci08Qk9EWT4KLTxIMSBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPlhTTFQgRGVidWdnZXI8L0gxPgotPHA+PC9wPgotPGg2IGNsYXNzPSJDYXB0aW9uRmlnQ29sdW1uIFNjaGVtYUhlYWRlciI+SWRlbnRpZmllcjogPC9oNj5vcmcuZWNsaXBzZS53c3QueHNsLmxhdW5jaGluZy5qYXhwLmRlYnVnZ2VyPHA+PC9wPgotPGg2IGNsYXNzPSJDYXB0aW9uRmlnQ29sdW1uIFNjaGVtYUhlYWRlciI+RGVzY3JpcHRpb246IDwvaDY+Q29udHJpYnV0ZSBhIGRlYnVnZ2VyIGZvciBhIHBhcnRpY3VsYXIgSkFYUCBwcm9jZXNzb3IgdHlwZSAoZS5nLiBTYXhvbikuIFRoZSBleHRlbnNpb24gcG9pbnQgcHJpbWFyaWx5IGRlZmluZXMgdGhlIGNsYXNzcGF0aCBhbmQgdHJhbnNmb3JtZXIgZmFjdG9yeSB0byBiZSB1c2VkIHdoZW4gZGVidWdnaW5nLjxwPjwvcD4KLTxoNiBjbGFzcz0iQ2FwdGlvbkZpZ0NvbHVtbiBTY2hlbWFIZWFkZXIiPkNvbmZpZ3VyYXRpb24gTWFya3VwOjwvaDY+Ci08cD48L3A+Ci08cCBjbGFzcz0iY29kZSBTY2hlbWFEdGQiPiZsdDshRUxFTUVOVCA8YSBuYW1lPSJlLmV4dGVuc2lvbiI+ZXh0ZW5zaW9uPC9hPiAoPGEgaHJlZj0iI2UuZGVidWdnZXIiPmRlYnVnZ2VyPC9hPispJmd0OzwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFBVFRMSVNUIGV4dGVuc2lvbjwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPnBvaW50Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+aWQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDREFUQSAjSU1QTElFRDxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPm5hbWUmbmJzcDsmbmJzcDtDREFUQSAjSU1QTElFRCZndDs8L3A+Ci08cD48L3A+Ci08dWwgY2xhc3M9IkNvbmZpZ01hcmt1cEF0dGxpc3REZXNjIj4KLTwvdWw+Ci08YnI+PHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkIj4mbHQ7IUVMRU1FTlQgPGEgbmFtZT0iZS5kZWJ1Z2dlciI+ZGVidWdnZXI8L2E+IEVNUFRZJmd0OzwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFBVFRMSVNUIGRlYnVnZ2VyPC9wPgotPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+aWQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDREFUQSAjUkVRVUlSRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5uYW1lJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+Y2xhc3NwYXRoJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+cHJvY2Vzc29yVHlwZUlkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+Y2xhc3NOYW1lJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+dHJhbnNmb3JtZXJGYWN0b3J5Q2xhc3MmbmJzcDtDREFUQSAjUkVRVUlSRUQmZ3Q7PC9wPgotPHA+PC9wPgotPHAgY2xhc3M9IkNvbmZpZ01hcmt1cEVsZW1lbnREZXNjIj4KLUEgZGVidWdnZXIgZm9yIGEgcHJvY2Vzc29yIHR5cGU8L3A+Ci08YnI+Ci08dWwgY2xhc3M9IkNvbmZpZ01hcmt1cEF0dGxpc3REZXNjIj4KLTxsaT48Yj5pZDwvYj4gLSBBIHVuaXF1ZSBpZCBmb3IgdGhpcyBkZWJ1Z2dlcjwvbGk+Ci08bGk+PGI+bmFtZTwvYj4gLSBBIG5hbWUgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBVSTwvbGk+Ci08bGk+PGI+Y2xhc3NwYXRoPC9iPiAtIEEgJzsnLXNlcGFyYXRlZCBjbGFzc3BhdGggcmVxdWlyZWQgdG8gcnVuIHRoZSBkZWJ1Z2dlciAoaW4gYWRkaXRpb24gdG8gdGhhdCBhbHJlYWR5IGFkZGVkIGJ5IHRoZSBwcm9jZXNzb3IgaXRzZWxmKS48L2xpPgotPGxpPjxiPnByb2Nlc3NvclR5cGVJZDwvYj4gLSBUaGUgcHJvY2Vzc29yIHR5cGUgdGhhdCB0aGlzIGRlYnVnZ2VyIHdvcmtzIHdpdGg8L2xpPgotPGxpPjxiPmNsYXNzTmFtZTwvYj4gLSBBIGZ1bGx5LXF1YWxpZmllZCBjbGFzcyB0aGF0IGltcGxlbWVudCB0aGUgSVhTTERlYnVnZ2VyIGludGVyZmFjZS4gSXQgaXMgZWFzaWVyIHRvIGV4dGVuZCBBYnN0cmFjdFhTTERlYnVnZ2VyLjwvbGk+Ci08bGk+PGI+dHJhbnNmb3JtZXJGYWN0b3J5Q2xhc3M8L2I+IC0gVGhlIGZ1bGx5LXF1YWxpZmllZCBjbGFzcyBuYW1lIG9mIHRoZSB0cmFuc2Zvcm1lciBmYWN0b3J5IHRvIHVzZSBmb3IgZGVidWdnaW5nLiBUaGlzIG11c3QgYmUgb25lIG9mIHRoZSB0cmFuc2Zvcm1lciBmYWN0b3JpZXMgYmVsb25naW5nIHRvIHRoZSBwcm9jZXNzb3IgdHlwZS48L2xpPgotPC91bD4KLTxicj48aDYgY2xhc3M9IkNhcHRpb25GaWdDb2x1bW4gU2NoZW1hSGVhZGVyIj5FeGFtcGxlczogPC9oNj48cHJlIGNsYXNzPSJFeGFtcGxlIj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPgotICAgJmx0O2V4dGVuc2lvbgotICAgICAgICAgcG9pbnQ9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90O29yZy5lY2xpcHNlLndzdC54c2wuamF4cC5sYXVuY2hpbmcuZGVidWdnZXImcXVvdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hVGFnIj4mZ3Q7Ci0gICAgICAmbHQ7ZGVidWdnZXIKLSAgICAgICAgICAgIGNsYXNzTmFtZT08L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hQ3N0cmluZyI+JnF1b3Q7b3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhbkRlYnVnZ2VyJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYVRhZyI+Ci0gICAgICAgICAgICBjbGFzc3BhdGg9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90OyR7ZWNsaXBzZV9vcmJpdDpvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFufSZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPgotICAgICAgICAgICAgaWQ9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90O29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXImcXVvdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hVGFnIj4KLSAgICAgICAgICAgIG5hbWU9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90O1hhbGFuIDIuNS4xIG9yIGdyZWF0ZXImcXVvdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hVGFnIj4KLSAgICAgICAgICAgIHByb2Nlc3NvclR5cGVJZD08L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hQ3N0cmluZyI+JnF1b3Q7b3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5wcm9jZXNzb3JUeXBlJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYVRhZyI+Ci0gICAgICAgICAgICB0cmFuc2Zvcm1lckZhY3RvcnlDbGFzcz08L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hQ3N0cmluZyI+JnF1b3Q7b3JnLmFwYWNoZS54YWxhbi5wcm9jZXNzb3IuVHJhbnNmb3JtZXJGYWN0b3J5SW1wbCZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPiZndDsKLSAgICAgICZsdDsvZGVidWdnZXImZ3Q7Ci0gICAmbHQ7L2V4dGVuc2lvbiZndDsKLTwvc3Bhbj48L3ByZT4KLTxwPjwvcD4KLQotPGJyPgotPHAgY2xhc3M9Im5vdGUgU2NoZW1hQ29weXJpZ2h0Ij4KLUNvcHlyaWdodCAoYykgMjAwNyBDaGFzZSBUZWNobm9sb2d5IEx0ZCAtIDxhIGhyZWY9Imh0dHA6Ly93d3cuY2hhc2V0ZWNobm9sb2d5LmNvLnVrIj5odHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51azwvYT4uPGJyPgotQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSAKLWF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyAKLXRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0IDxhCi1ocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+Ci0KLTwvcD4KLTwvQk9EWT4KLTwvSFRNTD4KZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9leHRlbnNpb25fcG9pbnQvb3JnX2VjbGlwc2Vfd3N0X3hzbF9qYXhwX2xhdW5jaGluZ19pbnZva2UuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9leHRlbnNpb25fcG9pbnQvb3JnX2VjbGlwc2Vfd3N0X3hzbF9qYXhwX2xhdW5jaGluZ19pbnZva2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmRlYjRkMS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfaW52b2tlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wIFRyYW5zaXRpb25hbC8vRU4iPgotPEhUTUw+Ci08SEVBRD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KLTx0aXRsZT5YU0xUIFByb2Nlc3NvciBJbnZva2VyPC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+QGltcG9ydCB1cmwoIi4uLy4uL2Jvb2suY3NzIik7PC9zdHlsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+QGltcG9ydCB1cmwoIi4uLy4uL3NjaGVtYS5jc3MiKTs8L3N0eWxlPgotPC9IRUFEPgotPEJPRFk+Ci08SDEgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyIj5YU0xUIFByb2Nlc3NvciBJbnZva2VyPC9IMT4KLTxkaXYgc3R5bGU9ImJvcmRlcjogMXB4IHNvbGlkICM5OTAwMDA7IHBhZGRpbmc6IDVweDsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogcmVkOyI+VGhpcyBleHRlbnNpb24gcG9pbnQgaXMgaW50ZXJuYWw8L2Rpdj4KLTxwPjwvcD4KLTxoNiBjbGFzcz0iQ2FwdGlvbkZpZ0NvbHVtbiBTY2hlbWFIZWFkZXIiPklkZW50aWZpZXI6IDwvaDY+b3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcuamF4cC5pbnZva2U8cD48L3A+Ci08aDYgY2xhc3M9IkNhcHRpb25GaWdDb2x1bW4gU2NoZW1hSGVhZGVyIj5EZXNjcmlwdGlvbjogPC9oNj48Yj5UaGlzIGV4dGVuc2lvbiBwb2ludCBpcyBpbnRlcm5hbCBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkIGJ5IGFueSBvdGhlciBwbHVnaW5zLjwvYj48cD48L3A+Ci08aDYgY2xhc3M9IkNhcHRpb25GaWdDb2x1bW4gU2NoZW1hSGVhZGVyIj5Db25maWd1cmF0aW9uIE1hcmt1cDo8L2g2PgotPHA+PC9wPgotPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkIj4mbHQ7IUVMRU1FTlQgPGEgbmFtZT0iZS5leHRlbnNpb24iPmV4dGVuc2lvbjwvYT4gKDxhIGhyZWY9IiNlLmludm9rZXIiPmludm9rZXI8L2E+KSZndDs8L3A+Ci08cCBjbGFzcz0iY29kZSBTY2hlbWFEdGQiPiZsdDshQVRUTElTVCBleHRlbnNpb248L3A+Ci08cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5wb2ludCZuYnNwO0NEQVRBICNSRVFVSVJFRDxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPmlkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI0lNUExJRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5uYW1lJm5ic3A7Jm5ic3A7Q0RBVEEgI0lNUExJRUQmZ3Q7PC9wPgotPHA+PC9wPgotPHVsIGNsYXNzPSJDb25maWdNYXJrdXBBdHRsaXN0RGVzYyI+Ci08L3VsPgotPGJyPjxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFFTEVNRU5UIDxhIG5hbWU9ImUuaW52b2tlciI+aW52b2tlcjwvYT4gRU1QVFkmZ3Q7PC9wPgotPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkIj4mbHQ7IUFUVExJU1QgaW52b2tlcjwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPmlkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+Y2xhc3MmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDREFUQSAjUkVRVUlSRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5jbGFzc3BhdGgmbmJzcDtDREFUQSAjUkVRVUlSRUQmZ3Q7PC9wPgotPHA+PC9wPgotPHVsIGNsYXNzPSJDb25maWdNYXJrdXBBdHRsaXN0RGVzYyI+Ci08bGk+PGI+aWQ8L2I+IC0gVW5pcXVlIGlkIGZvciB0aGlzIGludm9rZXI8L2xpPgotPGxpPjxiPmNsYXNzPC9iPiAtIEEgY2xhc3MgdGhhdCBpbXBsZW1lbnRzIHRoZSBJUHJvY2Vzc29ySW52b2tlciBpbnRlcmZhY2U8L2xpPgotPGxpPjxiPmNsYXNzcGF0aDwvYj4gLSBBIHNlbWktY29sb24gc2VwYXJhdGVkIGxpc3Qgb2YgamFycyByZWxhdGl2ZSB0byB0aGUgcm9vdCBvZiB0aGUgY29udHJpYnV0aW5nIHBsdWdpbi4gT25lIG9mIHRoZSBqYXJzIG11c3QgY29udGFpbiB0aGUgSW52b2tlciBjbGFzcyBuYW1lZCBpbiB0aGUgY2xhc3MgYXR0cmlidXRlLjwvbGk+Ci08L3VsPgotPGJyPjxicj4KLTxwIGNsYXNzPSJub3RlIFNjaGVtYUNvcHlyaWdodCI+Ci1Db3B5cmlnaHQgKGMpIDIwMDcgQ2hhc2UgVGVjaG5vbG9neSBMdGQgLSA8YSBocmVmPSJodHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51ayI+aHR0cDovL3d3dy5jaGFzZXRlY2hub2xvZ3kuY28udWs8L2E+Ljxicj4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgCi1hdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgCi10aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCA8YQotaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPgotCi08L3A+Ci08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfcHJvY2Vzc29yLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfcHJvY2Vzc29yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkZWUxYTQuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL2V4dGVuc2lvbl9wb2ludC9vcmdfZWNsaXBzZV93c3RfeHNsX2pheHBfbGF1bmNoaW5nX3Byb2Nlc3Nvci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KLTxIVE1MPgotPEhFQUQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Ci08dGl0bGU+WFNMVCBQcm9jZXNzb3I8L3RpdGxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj5AaW1wb3J0IHVybCgiLi4vLi4vYm9vay5jc3MiKTs8L3N0eWxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj5AaW1wb3J0IHVybCgiLi4vLi4vc2NoZW1hLmNzcyIpOzwvc3R5bGU+Ci08L0hFQUQ+Ci08Qk9EWT4KLTxIMSBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXIiPlhTTFQgUHJvY2Vzc29yPC9IMT4KLTxwPjwvcD4KLTxoNiBjbGFzcz0iQ2FwdGlvbkZpZ0NvbHVtbiBTY2hlbWFIZWFkZXIiPklkZW50aWZpZXI6IDwvaDY+b3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcuamF4cC5wcm9jZXNzb3I8cD48L3A+Ci08aDYgY2xhc3M9IkNhcHRpb25GaWdDb2x1bW4gU2NoZW1hSGVhZGVyIj5EZXNjcmlwdGlvbjogPC9oNj5Db250cmlidXRlIGEgSmF2YSBYU0xUIHByb2Nlc3NvciBpbnN0YW5jZSAoZS5nLiBYYWxhbiAyLjcuMCkuIFRoZSBleHRlbnNpb24gcG9pbnQgcHJpbWFyaWx5IGRlZmluZXMgdGhlIGNsYXNzcGF0aCB0byBiZSB1c2VkIHdoZW4gbGF1bmNoaW5nIGFuIFhTTFQgdHJhbnNmb3JtYXRpb24uPHA+PC9wPgotPGg2IGNsYXNzPSJDYXB0aW9uRmlnQ29sdW1uIFNjaGVtYUhlYWRlciI+Q29uZmlndXJhdGlvbiBNYXJrdXA6PC9oNj4KLTxwPjwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFFTEVNRU5UIDxhIG5hbWU9ImUuZXh0ZW5zaW9uIj5leHRlbnNpb248L2E+ICg8YSBocmVmPSIjZS5wcm9jZXNzb3IiPnByb2Nlc3NvcjwvYT4rKSZndDs8L3A+Ci08cCBjbGFzcz0iY29kZSBTY2hlbWFEdGQiPiZsdDshQVRUTElTVCBleHRlbnNpb248L3A+Ci08cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5wb2ludCZuYnNwO0NEQVRBICNSRVFVSVJFRDxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPmlkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI0lNUExJRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5uYW1lJm5ic3A7Jm5ic3A7Q0RBVEEgI0lNUExJRUQmZ3Q7PC9wPgotPHA+PC9wPgotPHVsIGNsYXNzPSJDb25maWdNYXJrdXBBdHRsaXN0RGVzYyI+Ci08L3VsPgotPGJyPjxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFFTEVNRU5UIDxhIG5hbWU9ImUucHJvY2Vzc29yIj5wcm9jZXNzb3I8L2E+IEVNUFRZJmd0OzwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFBVFRMSVNUIHByb2Nlc3NvcjwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPmlkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+bGFiZWwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDREFUQSAjUkVRVUlSRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5wcm9jZXNzb3JUeXBlSWQmbmJzcDtDREFUQSAjUkVRVUlSRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5jbGFzc3BhdGgmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDREFUQSAjUkVRVUlSRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5kZWJ1Z2dlcklkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI0lNUExJRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5zdXBwb3J0cyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0NEQVRBICNSRVFVSVJFRCZndDs8L3A+Ci08cD48L3A+Ci08cCBjbGFzcz0iQ29uZmlnTWFya3VwRWxlbWVudERlc2MiPgotQW4gaW5zdGFuY2Ugb2YgYSBKQVhQLWNvbXBsaWFudCBYU0xUIHByb2Nlc3NvcjwvcD4KLTxicj4KLTx1bCBjbGFzcz0iQ29uZmlnTWFya3VwQXR0bGlzdERlc2MiPgotPGxpPjxiPmlkPC9iPiAtIEEgdW5pcXVlIGlkIGZvciB0aGlzIHByb2Nlc3NvciBpbnN0YW5jZTwvbGk+Ci08bGk+PGI+bGFiZWw8L2I+IC0gQSBsYWJlbCBmb3IgdGhpcyBpbnN0YW5jZSB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIFVJPC9saT4KLTxsaT48Yj5wcm9jZXNzb3JUeXBlSWQ8L2I+IC0gVGhlIGlkIGZvciB0aGUgcHJvY2Vzc29yIHR5cGU8L2xpPgotPGxpPjxiPmNsYXNzcGF0aDwvYj4gLSBUaGUgY2xhc3NwYXRoIHRvIHVzZSB3aGVuIHRoaXMgcHJvY2Vzc29yIGlzIGxhdW5jaGVkPC9saT4KLTxsaT48Yj5kZWJ1Z2dlcklkPC9iPiAtIFRoZSBpZCBvZiBhIGRlYnVnZ2VyIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9jZXNzb3I8L2xpPgotPGxpPjxiPnN1cHBvcnRzPC9iPiAtIEEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2Ygc3VwcG9ydGVkIFhTTFQgdmVyc2lvbnMgZS5nLiAxLjAsMi4wPC9saT4KLTwvdWw+Ci08YnI+PGg2IGNsYXNzPSJDYXB0aW9uRmlnQ29sdW1uIFNjaGVtYUhlYWRlciI+RXhhbXBsZXM6IDwvaDY+PHByZSBjbGFzcz0iRXhhbXBsZSI+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hVGFnIj4KLSAgICZsdDtleHRlbnNpb24KLSAgICAgICAgIHBvaW50PTwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFDc3RyaW5nIj4mcXVvdDtvcmcuZWNsaXBzZS53c3QueHNsLmpheHAubGF1bmNoaW5nLnByb2Nlc3NvciZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPiZndDsKLSAgICAgICZsdDshLS0gQW4gYWRvcHRlciBjYW4gc3BlY2lmeSB0aGUgJHtlY2xpcHNlX29yYml0OiB9IHZhcmlhYmxlIHRvIGluZGljYXRlIHdoaWNoIGVjbGlwc2UKLSAgICAgICAgICAgYnVuZGxlIHNob3VsZCBiZSBhZGRlZCB0byB0aGUgY2xhc3MgcGF0aC4gLS0mZ3Q7Ci0gICAgICAmbHQ7cHJvY2Vzc29yCi0gICAgICBjbGFzc3BhdGg9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90OyR7ZWNsaXBzZV9vcmJpdDpvcmcuYXBhY2hlLnhhbGFufTske2VjbGlwc2Vfb3JiaXQ6b3JnLmFwYWNoZS54bWwuc2VyaWFsaXplcn07JHtlY2xpcHNlX29yYml0Om9yZy5hcGFjaGUuYmNlbH07JHtlY2xpcHNlX29yYml0OmphdmFfY3VwLnJ1bnRpbWV9JnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYVRhZyI+Ci0gICAgICAgICAgICBpZD08L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hQ3N0cmluZyI+JnF1b3Q7b3JnLmVjbGlwc2Uud3N0LnhzbC5sYXVuY2hpbmcueGFsYW4ucHJvY2Vzc29yJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYVRhZyI+Ci0gICAgICAgICAgICBsYWJlbD08L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hQ3N0cmluZyI+JnF1b3Q7JXByb2Nlc3Nvci5sYWJlbC4xJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYVRhZyI+Ci0gICAgICAgICAgICBwcm9jZXNzb3JUeXBlSWQ9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90O29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4ucHJvY2Vzc29yVHlwZSZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPgotICAgICAgICAgICAgZGVidWdnZXJJZD08L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hQ3N0cmluZyI+JnF1b3Q7b3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlciZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPgotICAgICAgICAgICAgc3VwcG9ydHM9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90OzEuMCZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPiZndDsKLSAgICAgICZsdDsvcHJvY2Vzc29yJmd0OwotICAgJmx0Oy9leHRlbnNpb24mZ3Q7Ci08L3NwYW4+PC9wcmU+Ci08cD48L3A+Ci0KLTxicj4KLTxwIGNsYXNzPSJub3RlIFNjaGVtYUNvcHlyaWdodCI+Ci1Db3B5cmlnaHQgKGMpIDIwMDcgQ2hhc2UgVGVjaG5vbG9neSBMdGQgLSA8YSBocmVmPSJodHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51ayI+aHR0cDovL3d3dy5jaGFzZXRlY2hub2xvZ3kuY28udWs8L2E+Ljxicj4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgCi1hdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgCi10aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCA8YQotaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPgotCi08L3A+Ci08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfcHJvY2Vzc29yVHlwZS5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL2V4dGVuc2lvbl9wb2ludC9vcmdfZWNsaXBzZV93c3RfeHNsX2pheHBfbGF1bmNoaW5nX3Byb2Nlc3NvclR5cGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI4MTQwZi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfcHJvY2Vzc29yVHlwZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KLTxIVE1MPgotPEhFQUQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9aXNvLTg4NTktMSI+Ci08dGl0bGU+WFNMVCBQcm9jZXNzb3IgVHlwZTwvdGl0bGU+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPkBpbXBvcnQgdXJsKCIuLi8uLi9ib29rLmNzcyIpOzwvc3R5bGU+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPkBpbXBvcnQgdXJsKCIuLi8uLi9zY2hlbWEuY3NzIik7PC9zdHlsZT4KLTwvSEVBRD4KLTxCT0RZPgotPEgxIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlciI+WFNMVCBQcm9jZXNzb3IgVHlwZTwvSDE+Ci08cD48L3A+Ci08aDYgY2xhc3M9IkNhcHRpb25GaWdDb2x1bW4gU2NoZW1hSGVhZGVyIj5JZGVudGlmaWVyOiA8L2g2Pm9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nLmpheHAucHJvY2Vzc29yVHlwZTxwPjwvcD4KLTxoNiBjbGFzcz0iQ2FwdGlvbkZpZ0NvbHVtbiBTY2hlbWFIZWFkZXIiPkRlc2NyaXB0aW9uOiA8L2g2PkNvbnRyaWJ1dGUgYSBKYXZhIFhTTFQgcHJvY2Vzc29yIHR5cGUgKGUuZy4gWGFsYW4sIFNheG9uKS4gVGhlIHByb2Nlc3NvciB0eXBlIGRlZmluZXMgd2hpY2ggSkFYUCBhdHRyaWJ1dGVzIGFuZCBvdXRwdXQgcHJvcGVyaWVzIGFyZSBzdXBwb3J0ZWQsIGFuZCBhbHNvIHRoZSB0cmFuc2Zvcm1lciBmYWN0b3J5IGNsYXNzZXMgaXQgY29udGFpbnMuPHA+PC9wPgotPGg2IGNsYXNzPSJDYXB0aW9uRmlnQ29sdW1uIFNjaGVtYUhlYWRlciI+Q29uZmlndXJhdGlvbiBNYXJrdXA6PC9oNj4KLTxwPjwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFFTEVNRU5UIDxhIG5hbWU9ImUuZXh0ZW5zaW9uIj5leHRlbnNpb248L2E+ICg8YSBocmVmPSIjZS5wcm9jZXNzb3JUeXBlIj5wcm9jZXNzb3JUeXBlPC9hPispJmd0OzwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFBVFRMSVNUIGV4dGVuc2lvbjwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPnBvaW50Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+aWQmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDREFUQSAjSU1QTElFRDxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPm5hbWUmbmJzcDsmbmJzcDtDREFUQSAjSU1QTElFRCZndDs8L3A+Ci08cD48L3A+Ci08dWwgY2xhc3M9IkNvbmZpZ01hcmt1cEF0dGxpc3REZXNjIj4KLTwvdWw+Ci08YnI+PHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkIj4mbHQ7IUVMRU1FTlQgPGEgbmFtZT0iZS5wcm9jZXNzb3JUeXBlIj5wcm9jZXNzb3JUeXBlPC9hPiAoPGEgaHJlZj0iI2UudHJhbnNmb3JtZXJGYWN0b3J5Ij50cmFuc2Zvcm1lckZhY3Rvcnk8L2E+KikmZ3Q7PC9wPgotPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkIj4mbHQ7IUFUVExJU1QgcHJvY2Vzc29yVHlwZTwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPmlkJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI1JFUVVJUkVEPHAgY2xhc3M9ImNvZGUgU2NoZW1hRHRkQXR0bGlzdCI+bGFiZWwmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDREFUQSAjUkVRVUlSRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5vdXRwdXRQcm9wZXJ0aWVzJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Q0RBVEEgI0lNUExJRUQ8cCBjbGFzcz0iY29kZSBTY2hlbWFEdGRBdHRsaXN0Ij5hdHRyaWJ1dGVQcm9wZXJ0aWVzJm5ic3A7Q0RBVEEgI0lNUExJRUQmZ3Q7PC9wPgotPHA+PC9wPgotPHVsIGNsYXNzPSJDb25maWdNYXJrdXBBdHRsaXN0RGVzYyI+Ci08bGk+PGI+aWQ8L2I+IC0gVW5pcXVlIGlkIGZvciB0aGUgcHJvY2Vzc29yIHR5cGU8L2xpPgotPGxpPjxiPmxhYmVsPC9iPiAtIE5hbWUgZm9yIGRpc3BsYXkgaW4gdGhlIFVJPC9saT4KLTxsaT48Yj5vdXRwdXRQcm9wZXJ0aWVzPC9iPiAtIExvY2F0aW9uIG9mIGEgcHJvcGVydGllcyBmaWxlIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgdGhlIHByb2Nlc3NvcnMgb3V0cHV0IHByb3BlcnRpZXMuIE11c3QgYmUgYSBwYXRoIHJlbGF0aXZlIHRvIHRoZSByb290IG9mIHRoZSBidW5kbGUuPC9saT4KLTxsaT48Yj5hdHRyaWJ1dGVQcm9wZXJ0aWVzPC9iPiAtIExvY2F0aW9uIG9mIGEgcHJvcGVydGllcyBmaWxlIGNvbnRhaW5pbmcgdGhlIGxpc3Qgb2YgdGhlIGF0dHJpYnV0ZXMgc3VwcG9ydGVkIGJ5IHRoaXMgcHJvY2Vzc29yLiBNdXN0IGJlIGEgcGF0aCByZWxhdGl2ZSB0byB0aGUgcm9vdCBvZiB0aGUgYnVuZGxlLjwvbGk+Ci08L3VsPgotPGJyPjxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFFTEVNRU5UIDxhIG5hbWU9ImUudHJhbnNmb3JtZXJGYWN0b3J5Ij50cmFuc2Zvcm1lckZhY3Rvcnk8L2E+IEVNUFRZJmd0OzwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZCI+Jmx0OyFBVFRMSVNUIHRyYW5zZm9ybWVyRmFjdG9yeTwvcD4KLTxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPmZhY3RvcnlDbGFzcyZuYnNwO0NEQVRBICNSRVFVSVJFRDxwIGNsYXNzPSJjb2RlIFNjaGVtYUR0ZEF0dGxpc3QiPm5hbWUmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtDREFUQSAjUkVRVUlSRUQmZ3Q7PC9wPgotPHA+PC9wPgotPHAgY2xhc3M9IkNvbmZpZ01hcmt1cEVsZW1lbnREZXNjIj4KLUEgVHJhbnNmb3JtZXJGYWN0b3J5IGZvciB0aGlzIHR5cGU8L3A+Ci08YnI+Ci08dWwgY2xhc3M9IkNvbmZpZ01hcmt1cEF0dGxpc3REZXNjIj4KLTxsaT48Yj5mYWN0b3J5Q2xhc3M8L2I+IC0gVGhlIGZ1bGx5LXF1YWxpZmllZCB0cmFuc2Zvcm1lciBmYWN0b3J5IGNsYXNzPC9saT4KLTxsaT48Yj5uYW1lPC9iPiAtIEEgbmFtZSBmb3IgdGhpcyB0cmFuc2Zvcm1lciBmYWN0b3J5IHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgVUk8L2xpPgotPC91bD4KLTxicj48aDYgY2xhc3M9IkNhcHRpb25GaWdDb2x1bW4gU2NoZW1hSGVhZGVyIj5FeGFtcGxlczogPC9oNj48cHJlIGNsYXNzPSJFeGFtcGxlIj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPgotICAgJmx0O2V4dGVuc2lvbgotICAgICAgICAgcG9pbnQ9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90O29yZy5lY2xpcHNlLndzdC54c2wuamF4cC5sYXVuY2hpbmcucHJvY2Vzc29yVHlwZSZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPiZndDsKLSAgICAgICZsdDtwcm9jZXNzb3JUeXBlCi0gICAgICAgICAgICBhdHRyaWJ1dGVQcm9wZXJ0aWVzPTwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFDc3RyaW5nIj4mcXVvdDtYYWxhbkF0dHJpYnV0ZXMucHJvcGVydGllcyZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPgotICAgICAgICAgICAgaWQ9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90O29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4ucHJvY2Vzc29yVHlwZSZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPgotICAgICAgICAgICAgbGFiZWw9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90OyVwcm9jZXNzb3JUeXBlLmxhYmVsLjAmcXVvdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hVGFnIj4KLSAgICAgICAgICAgIG91dHB1dFByb3BlcnRpZXM9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90O1hhbGFuT3V0cHV0UHJvcGVydGllcy5wcm9wZXJ0aWVzJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYVRhZyI+Jmd0OwotICAgICAgICAgJmx0O3RyYW5zZm9ybWVyRmFjdG9yeQotICAgICAgICAgICAgICAgZmFjdG9yeUNsYXNzPTwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFDc3RyaW5nIj4mcXVvdDtvcmcuYXBhY2hlLnhhbGFuLnByb2Nlc3Nvci5UcmFuc2Zvcm1lckZhY3RvcnlJbXBsJnF1b3Q7PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYVRhZyI+Ci0gICAgICAgICAgICAgICBuYW1lPTwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFDc3RyaW5nIj4mcXVvdDtJbnRlcnByZXRpdmUmcXVvdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hVGFnIj4mZ3Q7Ci0gICAgICAgICAmbHQ7L3RyYW5zZm9ybWVyRmFjdG9yeSZndDsKLSAgICAgICAgICZsdDt0cmFuc2Zvcm1lckZhY3RvcnkKLSAgICAgICAgICAgICAgIGZhY3RvcnlDbGFzcz08L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hQ3N0cmluZyI+JnF1b3Q7b3JnLmFwYWNoZS54YWxhbi54c2x0Yy50cmF4LlRyYW5zZm9ybWVyRmFjdG9yeUltcGwmcXVvdDs8L3NwYW4+PHNwYW4gY2xhc3M9ImNvZGUgU2NoZW1hVGFnIj4KLSAgICAgICAgICAgICAgIG5hbWU9PC9zcGFuPjxzcGFuIGNsYXNzPSJjb2RlIFNjaGVtYUNzdHJpbmciPiZxdW90O0NvbXBpbGluZyZxdW90Ozwvc3Bhbj48c3BhbiBjbGFzcz0iY29kZSBTY2hlbWFUYWciPiZndDsKLSAgICAgICAgICZsdDsvdHJhbnNmb3JtZXJGYWN0b3J5Jmd0OwotICAgICAgJmx0Oy9wcm9jZXNzb3JUeXBlJmd0OwotICAgJmx0Oy9leHRlbnNpb24mZ3Q7Ci08L3NwYW4+PC9wcmU+Ci08cD48L3A+Ci0KLTxicj4KLTxwIGNsYXNzPSJub3RlIFNjaGVtYUNvcHlyaWdodCI+Ci1Db3B5cmlnaHQgKGMpIDIwMDcgQ2hhc2UgVGVjaG5vbG9neSBMdGQgLSA8YSBocmVmPSJodHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51ayI+aHR0cDovL3d3dy5jaGFzZXRlY2hub2xvZ3kuY28udWs8L2E+Ljxicj4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgCi1hdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgCi10aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCA8YQotaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPgotCi08L3A+Ci08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlLlhQYXRoQ29yZVBsdWdpbi5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS5YUGF0aENvcmVQbHVnaW4uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTRiODFlZC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlLlhQYXRoQ29yZVBsdWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPGh0bWw+PGJvZHk+PHA+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+UGFja2FnZSBvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLmNvcmU8L3N0cm9uZz48L2ZvbnQ+PC9wPjxocj48aDI+PGZvbnQgc2l6ZT0iLTEiPjxzdHJvbmc+b3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIFhQYXRoQ29yZVBsdWdpbjwvaDI+PGJyPjxocj48cHJlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlhQYXRoQ29yZVBsdWdpbjwvc3Ryb25nPgotZXh0ZW5kcyBQbHVnaW48L3ByZT5UaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGU8aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5GaWVsZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfUExVR0lOX0lEIj5QTFVHSU5fSUQ8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hQYXRoQ29yZVBsdWdpbiI+WFBhdGhDb3JlUGx1Z2luPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIG9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS5YUGF0aENvcmVQbHVnaW48L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0RGVmYXVsdCI+Z2V0RGVmYXVsdDwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFJldHVybnMgdGhlIHNoYXJlZCBpbnN0YW5jZTwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3N0YXJ0Ij5zdGFydDwvYT4oQnVuZGxlQ29udGV4dCBjb250ZXh0KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3N0b3AiPnN0b3A8L2E+KEJ1bmRsZUNvbnRleHQgY29udGV4dCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBGaWVsZCBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImZpZWxkX1BMVUdJTl9JRCI+UExVR0lOX0lEPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlBMVUdJTl9JRDwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWFBhdGhDb3JlUGx1Z2luIj5YUGF0aENvcmVQbHVnaW48L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgPHN0cm9uZz5YUGF0aENvcmVQbHVnaW48L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+VGhlIGNvbnN0cnVjdG9yPC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0RGVmYXVsdCI+Z2V0RGVmYXVsdDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLmNvcmUuWFBhdGhDb3JlUGx1Z2luIDxzdHJvbmc+Z2V0RGVmYXVsdDwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD5SZXR1cm5zIHRoZSBzaGFyZWQgaW5zdGFuY2U8L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPm9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS5YUGF0aENvcmVQbHVnaW48L2NvZGU+IC0gdGhlIHNoYXJlZCBpbnN0YW5jZTwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9zdGFydCI+c3RhcnQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnN0YXJ0PC9zdHJvbmc+KEJ1bmRsZUNvbnRleHQgY29udGV4dCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+Y29udGV4dDwvY29kZT48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmEubGFuZy5FeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3N0b3AiPnN0b3A8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnN0b3A8L3N0cm9uZz4oQnVuZGxlQ29udGV4dCBjb250ZXh0KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5jb250ZXh0PC9jb2RlPjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+amF2YS5sYW5nLkV4Y2VwdGlvbjwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS51dGlsLlhTTFRYUGF0aEhlbHBlci5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS51dGlsLlhTTFRYUGF0aEhlbHBlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2ZjE0MmUyLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLmNvcmUudXRpbC5YU0xUWFBhdGhIZWxwZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExOSArMCwwIEBACi08aHRtbD48Ym9keT48cD48Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5QYWNrYWdlIG9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS51dGlsPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS51dGlsPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIFhTTFRYUGF0aEhlbHBlcjwvaDI+PGJyPjxocj48cHJlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlhTTFRYUGF0aEhlbHBlcjwvc3Ryb25nPgotZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9wcmU+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hTTFRYUGF0aEhlbHBlciI+WFNMVFhQYXRoSGVscGVyPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfY2FsY3VsYXRlWFBhdGhUb05vZGUiPmNhbGN1bGF0ZVhQYXRoVG9Ob2RlPC9hPihvcmcudzNjLmRvbS5Ob2RlIG5vZGUpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2NvbXBpbGUiPmNvbXBpbGU8L2E+KGphdmEubGFuZy5TdHJpbmcgZXhwcmVzc2lvbik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIFhPYmplY3Q8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZXZhbCI+ZXZhbDwvYT4ob3JnLnczYy5kb20uTm9kZSBjb250ZXh0Tm9kZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzdHIpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgRXZhbHVhdGUgWFBhdGggc3RyaW5nIHRvIGFuIFhPYmplY3QuIFVzaW5nIHRoaXMgbWV0aG9kLCBYUGF0aCBuYW1lc3BhY2UKLSBwcmVmaXhlcyB3aWxsIGJlIHJlc29sdmVkIGZyb20gdGhlIG5hbWVzcGFjZU5vZGUuPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyBYT2JqZWN0PC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2V2YWwiPmV2YWw8L2E+KG9yZy53M2MuZG9tLk5vZGUgY29udGV4dE5vZGUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgc3RyCi0gICAgICAgICAsCi0gICAgICBvcmcudzNjLmRvbS5Ob2RlIG5hbWVzcGFjZU5vZGUpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgRXZhbHVhdGUgWFBhdGggc3RyaW5nIHRvIGFuIFhPYmplY3QuIFhQYXRoIG5hbWVzcGFjZSBwcmVmaXhlcyBhcmUKLSByZXNvbHZlZCBmcm9tIHRoZSBuYW1lc3BhY2VOb2RlLiBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpcyBhIGxpdHRsZQotIHNsb3csIHNpbmNlIGl0IGNyZWF0ZXMgYSBudW1iZXIgb2Ygb2JqZWN0cyBlYWNoIHRpbWUgaXQgaXMgY2FsbGVkLiBUaGlzCi0gY291bGQgYmUgb3B0aW1pemVkIHRvIGtlZXAgdGhlIHNhbWUgb2JqZWN0cyBhcm91bmQsIGJ1dCB0aGVuCi0gdGhyZWFkLXNhZmV0eSBpc3N1ZXMgd291bGQgYXJpc2UuPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyBYT2JqZWN0PC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2V2YWwiPmV2YWw8L2E+KG9yZy53M2MuZG9tLk5vZGUgY29udGV4dE5vZGUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgc3RyCi0gICAgICAgICAsCi0gICAgICBQcmVmaXhSZXNvbHZlciBwcmVmaXhSZXNvbHZlcik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBFdmFsdWF0ZSBYUGF0aCBzdHJpbmcgdG8gYW4gWE9iamVjdC4gWFBhdGggbmFtZXNwYWNlIHByZWZpeGVzIGFyZQotIHJlc29sdmVkIGZyb20gdGhlIG5hbWVzcGFjZU5vZGUuIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGlzIGEgbGl0dGxlCi0gc2xvdywgc2luY2UgaXQgY3JlYXRlcyBhIG51bWJlciBvZiBvYmplY3RzIGVhY2ggdGltZSBpdCBpcyBjYWxsZWQuIFRoaXMKLSBjb3VsZCBiZSBvcHRpbWl6ZWQgdG8ga2VlcCB0aGUgc2FtZSBvYmplY3RzIGFyb3VuZCwgYnV0IHRoZW4KLSB0aHJlYWQtc2FmZXR5IGlzc3VlcyB3b3VsZCBhcmlzZS48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wcm90ZWN0ZWQgc3RhdGljIEZ1bmN0aW9uVGFibGU8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0RnVuY3Rpb25UYWJsZSI+Z2V0RnVuY3Rpb25UYWJsZTwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgb3JnLnczYy5kb20udHJhdmVyc2FsLk5vZGVJdGVyYXRvcjwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zZWxlY3ROb2RlSXRlcmF0b3IiPnNlbGVjdE5vZGVJdGVyYXRvcjwvYT4ob3JnLnczYy5kb20uTm9kZSBjb250ZXh0Tm9kZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzdHIpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVXNlIGFuIFhQYXRoIHN0cmluZyB0byBzZWxlY3QgYSBub2RlbGlzdC4gWFBhdGggbmFtZXNwYWNlIHByZWZpeGVzIGFyZQotIHJlc29sdmVkIGZyb20gdGhlIGNvbnRleHROb2RlLjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgb3JnLnczYy5kb20udHJhdmVyc2FsLk5vZGVJdGVyYXRvcjwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zZWxlY3ROb2RlSXRlcmF0b3IiPnNlbGVjdE5vZGVJdGVyYXRvcjwvYT4ob3JnLnczYy5kb20uTm9kZSBjb250ZXh0Tm9kZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzdHIKLSAgICAgICAgICwKLSAgICAgIG9yZy53M2MuZG9tLk5vZGUgbmFtZXNwYWNlTm9kZSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBVc2UgYW4gWFBhdGggc3RyaW5nIHRvIHNlbGVjdCBhIG5vZGVsaXN0LiBYUGF0aCBuYW1lc3BhY2UgcHJlZml4ZXMgYXJlCi0gcmVzb2x2ZWQgZnJvbSB0aGUgbmFtZXNwYWNlTm9kZS48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIG9yZy53M2MuZG9tLk5vZGVMaXN0PC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3NlbGVjdE5vZGVMaXN0Ij5zZWxlY3ROb2RlTGlzdDwvYT4ob3JnLnczYy5kb20uTm9kZSBjb250ZXh0Tm9kZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzdHIpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVXNlIGFuIFhQYXRoIHN0cmluZyB0byBzZWxlY3QgYSBub2RlbGlzdC4gWFBhdGggbmFtZXNwYWNlIHByZWZpeGVzIGFyZQotIHJlc29sdmVkIGZyb20gdGhlIGNvbnRleHROb2RlLjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgb3JnLnczYy5kb20uTm9kZUxpc3Q8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2Rfc2VsZWN0Tm9kZUxpc3QiPnNlbGVjdE5vZGVMaXN0PC9hPihvcmcudzNjLmRvbS5Ob2RlIGNvbnRleHROb2RlCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHN0cgotICAgICAgICAgLAotICAgICAgb3JnLnczYy5kb20uTm9kZSBuYW1lc3BhY2VOb2RlKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFVzZSBhbiBYUGF0aCBzdHJpbmcgdG8gc2VsZWN0IGEgbm9kZWxpc3QuIFhQYXRoIG5hbWVzcGFjZSBwcmVmaXhlcyBhcmUKLSByZXNvbHZlZCBmcm9tIHRoZSBuYW1lc3BhY2VOb2RlLjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgb3JnLnczYy5kb20uTm9kZTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zZWxlY3RTaW5nbGVOb2RlIj5zZWxlY3RTaW5nbGVOb2RlPC9hPihvcmcudzNjLmRvbS5Ob2RlIGNvbnRleHROb2RlCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHN0cik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBVc2UgYW4gWFBhdGggc3RyaW5nIHRvIHNlbGVjdCBhIHNpbmdsZSBub2RlLiBYUGF0aCBuYW1lc3BhY2UgcHJlZml4ZXMgYXJlCi0gcmVzb2x2ZWQgZnJvbSB0aGUgY29udGV4dCBub2RlLCB3aGljaCBtYXkgbm90IGJlIHdoYXQgeW91IHdhbnQgKHNlZSB0aGUKLSBuZXh0IG1ldGhvZCkuPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyBvcmcudzNjLmRvbS5Ob2RlPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3NlbGVjdFNpbmdsZU5vZGUiPnNlbGVjdFNpbmdsZU5vZGU8L2E+KG9yZy53M2MuZG9tLk5vZGUgY29udGV4dE5vZGUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgc3RyCi0gICAgICAgICAsCi0gICAgICBvcmcudzNjLmRvbS5Ob2RlIG5hbWVzcGFjZU5vZGUpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVXNlIGFuIFhQYXRoIHN0cmluZyB0byBzZWxlY3QgYSBzaW5nbGUgbm9kZS4gWFBhdGggbmFtZXNwYWNlIHByZWZpeGVzIGFyZQotIHJlc29sdmVkIGZyb20gdGhlIG5hbWVzcGFjZU5vZGUuPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWFNMVFhQYXRoSGVscGVyIj5YU0xUWFBhdGhIZWxwZXI8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgPHN0cm9uZz5YU0xUWFBhdGhIZWxwZXI8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfY2FsY3VsYXRlWFBhdGhUb05vZGUiPmNhbGN1bGF0ZVhQYXRoVG9Ob2RlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5jYWxjdWxhdGVYUGF0aFRvTm9kZTwvc3Ryb25nPihvcmcudzNjLmRvbS5Ob2RlIG5vZGUpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPm5vZGU8L2NvZGU+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9jb21waWxlIj5jb21waWxlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5jb21waWxlPC9zdHJvbmc+KGphdmEubGFuZy5TdHJpbmcgZXhwcmVzc2lvbik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZXhwcmVzc2lvbjwvY29kZT48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmF4LnhtbC54cGF0aC5YUGF0aEV4cHJlc3Npb25FeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2V2YWwiPmV2YWw8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgWE9iamVjdCA8c3Ryb25nPmV2YWw8L3N0cm9uZz4ob3JnLnczYy5kb20uTm9kZSBjb250ZXh0Tm9kZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzdHIpPC9jb2RlPjwvcD48cD5FdmFsdWF0ZSBYUGF0aCBzdHJpbmcgdG8gYW4gWE9iamVjdC4gVXNpbmcgdGhpcyBtZXRob2QsIFhQYXRoIG5hbWVzcGFjZQotIHByZWZpeGVzIHdpbGwgYmUgcmVzb2x2ZWQgZnJvbSB0aGUgbmFtZXNwYWNlTm9kZS48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmNvbnRleHROb2RlPC9jb2RlPiAtIFRoZSBub2RlIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLjwvcD48cD48Y29kZT5zdHI8L2NvZGU+IC0gQSB2YWxpZCBYUGF0aCBzdHJpbmcuPC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5YT2JqZWN0PC9jb2RlPiAtIEFuIFhPYmplY3QsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIG9idGFpbiBhIHN0cmluZywgbnVtYmVyLCAgICAgICAgICBub2RlbGlzdCwgZXRjLCBzaG91bGQgbmV2ZXIgYmUgbnVsbC48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJFeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2V2YWwiPmV2YWw8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgWE9iamVjdCA8c3Ryb25nPmV2YWw8L3N0cm9uZz4ob3JnLnczYy5kb20uTm9kZSBjb250ZXh0Tm9kZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzdHIKLSAgICAgICAgICwKLSAgICAgIG9yZy53M2MuZG9tLk5vZGUgbmFtZXNwYWNlTm9kZSk8L2NvZGU+PC9wPjxwPkV2YWx1YXRlIFhQYXRoIHN0cmluZyB0byBhbiBYT2JqZWN0LiBYUGF0aCBuYW1lc3BhY2UgcHJlZml4ZXMgYXJlCi0gcmVzb2x2ZWQgZnJvbSB0aGUgbmFtZXNwYWNlTm9kZS4gVGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgaXMgYSBsaXR0bGUKLSBzbG93LCBzaW5jZSBpdCBjcmVhdGVzIGEgbnVtYmVyIG9mIG9iamVjdHMgZWFjaCB0aW1lIGl0IGlzIGNhbGxlZC4gVGhpcwotIGNvdWxkIGJlIG9wdGltaXplZCB0byBrZWVwIHRoZSBzYW1lIG9iamVjdHMgYXJvdW5kLCBidXQgdGhlbgotIHRocmVhZC1zYWZldHkgaXNzdWVzIHdvdWxkIGFyaXNlLjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+Y29udGV4dE5vZGU8L2NvZGU+IC0gVGhlIG5vZGUgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20uPC9wPjxwPjxjb2RlPnN0cjwvY29kZT4gLSBBIHZhbGlkIFhQYXRoIHN0cmluZy48L3A+PHA+PGNvZGU+bmFtZXNwYWNlTm9kZTwvY29kZT4gLSBUaGUgbm9kZSBmcm9tIHdoaWNoIHByZWZpeGVzIGluIHRoZSBYUGF0aCB3aWxsIGJlIHJlc29sdmVkIHRvICAgICAgICAgICAgIG5hbWVzcGFjZXMuPC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5YT2JqZWN0PC9jb2RlPiAtIEFuIFhPYmplY3QsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIG9idGFpbiBhIHN0cmluZywgbnVtYmVyLCAgICAgICAgICBub2RlbGlzdCwgZXRjLCBzaG91bGQgbmV2ZXIgYmUgbnVsbC48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJFeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2V2YWwiPmV2YWw8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgWE9iamVjdCA8c3Ryb25nPmV2YWw8L3N0cm9uZz4ob3JnLnczYy5kb20uTm9kZSBjb250ZXh0Tm9kZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzdHIKLSAgICAgICAgICwKLSAgICAgIFByZWZpeFJlc29sdmVyIHByZWZpeFJlc29sdmVyKTwvY29kZT48L3A+PHA+RXZhbHVhdGUgWFBhdGggc3RyaW5nIHRvIGFuIFhPYmplY3QuIFhQYXRoIG5hbWVzcGFjZSBwcmVmaXhlcyBhcmUKLSByZXNvbHZlZCBmcm9tIHRoZSBuYW1lc3BhY2VOb2RlLiBUaGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBpcyBhIGxpdHRsZQotIHNsb3csIHNpbmNlIGl0IGNyZWF0ZXMgYSBudW1iZXIgb2Ygb2JqZWN0cyBlYWNoIHRpbWUgaXQgaXMgY2FsbGVkLiBUaGlzCi0gY291bGQgYmUgb3B0aW1pemVkIHRvIGtlZXAgdGhlIHNhbWUgb2JqZWN0cyBhcm91bmQsIGJ1dCB0aGVuCi0gdGhyZWFkLXNhZmV0eSBpc3N1ZXMgd291bGQgYXJpc2UuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5jb250ZXh0Tm9kZTwvY29kZT4gLSBUaGUgbm9kZSB0byBzdGFydCBzZWFyY2hpbmcgZnJvbS48L3A+PHA+PGNvZGU+c3RyPC9jb2RlPiAtIEEgdmFsaWQgWFBhdGggc3RyaW5nLjwvcD48cD48Y29kZT5wcmVmaXhSZXNvbHZlcjwvY29kZT4gLSBXaWxsIGJlIGNhbGxlZCBpZiB0aGUgcGFyc2VyIGVuY291bnRlcnMgbmFtZXNwYWNlIHByZWZpeGVzLCB0byAgICAgICAgICAgICByZXNvbHZlIHRoZSBwcmVmaXhlcyB0byBVUkxzLjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+WE9iamVjdDwvY29kZT4gLSBBbiBYT2JqZWN0LCB3aGljaCBjYW4gYmUgdXNlZCB0byBvYnRhaW4gYSBzdHJpbmcsIG51bWJlciwgICAgICAgICAgbm9kZWxpc3QsIGV0Yywgc2hvdWxkIG5ldmVyIGJlIG51bGwuPC9wPjxoMz5UaHJvd3M6PC9oMz48cD48Y29kZT5qYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyRXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRGdW5jdGlvblRhYmxlIj5nZXRGdW5jdGlvblRhYmxlPC9hPjwvaDI+PHA+PGNvZGU+cHJvdGVjdGVkIEZ1bmN0aW9uVGFibGUgPHN0cm9uZz5nZXRGdW5jdGlvblRhYmxlPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+RnVuY3Rpb25UYWJsZTwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2Rfc2VsZWN0Tm9kZUl0ZXJhdG9yIj5zZWxlY3ROb2RlSXRlcmF0b3I8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgb3JnLnczYy5kb20udHJhdmVyc2FsLk5vZGVJdGVyYXRvciA8c3Ryb25nPnNlbGVjdE5vZGVJdGVyYXRvcjwvc3Ryb25nPihvcmcudzNjLmRvbS5Ob2RlIGNvbnRleHROb2RlCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHN0cik8L2NvZGU+PC9wPjxwPlVzZSBhbiBYUGF0aCBzdHJpbmcgdG8gc2VsZWN0IGEgbm9kZWxpc3QuIFhQYXRoIG5hbWVzcGFjZSBwcmVmaXhlcyBhcmUKLSByZXNvbHZlZCBmcm9tIHRoZSBjb250ZXh0Tm9kZS48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmNvbnRleHROb2RlPC9jb2RlPiAtIFRoZSBub2RlIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLjwvcD48cD48Y29kZT5zdHI8L2NvZGU+IC0gQSB2YWxpZCBYUGF0aCBzdHJpbmcuPC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5vcmcudzNjLmRvbS50cmF2ZXJzYWwuTm9kZUl0ZXJhdG9yPC9jb2RlPiAtIEEgTm9kZUl0ZXJhdG9yLCBzaG91bGQgbmV2ZXIgYmUgbnVsbC48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJFeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3NlbGVjdE5vZGVJdGVyYXRvciI+c2VsZWN0Tm9kZUl0ZXJhdG9yPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIG9yZy53M2MuZG9tLnRyYXZlcnNhbC5Ob2RlSXRlcmF0b3IgPHN0cm9uZz5zZWxlY3ROb2RlSXRlcmF0b3I8L3N0cm9uZz4ob3JnLnczYy5kb20uTm9kZSBjb250ZXh0Tm9kZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzdHIKLSAgICAgICAgICwKLSAgICAgIG9yZy53M2MuZG9tLk5vZGUgbmFtZXNwYWNlTm9kZSk8L2NvZGU+PC9wPjxwPlVzZSBhbiBYUGF0aCBzdHJpbmcgdG8gc2VsZWN0IGEgbm9kZWxpc3QuIFhQYXRoIG5hbWVzcGFjZSBwcmVmaXhlcyBhcmUKLSByZXNvbHZlZCBmcm9tIHRoZSBuYW1lc3BhY2VOb2RlLjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+Y29udGV4dE5vZGU8L2NvZGU+IC0gVGhlIG5vZGUgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20uPC9wPjxwPjxjb2RlPnN0cjwvY29kZT4gLSBBIHZhbGlkIFhQYXRoIHN0cmluZy48L3A+PHA+PGNvZGU+bmFtZXNwYWNlTm9kZTwvY29kZT4gLSBUaGUgbm9kZSBmcm9tIHdoaWNoIHByZWZpeGVzIGluIHRoZSBYUGF0aCB3aWxsIGJlIHJlc29sdmVkIHRvICAgICAgICAgICAgIG5hbWVzcGFjZXMuPC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5vcmcudzNjLmRvbS50cmF2ZXJzYWwuTm9kZUl0ZXJhdG9yPC9jb2RlPiAtIEEgTm9kZUl0ZXJhdG9yLCBzaG91bGQgbmV2ZXIgYmUgbnVsbC48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJFeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3NlbGVjdE5vZGVMaXN0Ij5zZWxlY3ROb2RlTGlzdDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBvcmcudzNjLmRvbS5Ob2RlTGlzdCA8c3Ryb25nPnNlbGVjdE5vZGVMaXN0PC9zdHJvbmc+KG9yZy53M2MuZG9tLk5vZGUgY29udGV4dE5vZGUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgc3RyKTwvY29kZT48L3A+PHA+VXNlIGFuIFhQYXRoIHN0cmluZyB0byBzZWxlY3QgYSBub2RlbGlzdC4gWFBhdGggbmFtZXNwYWNlIHByZWZpeGVzIGFyZQotIHJlc29sdmVkIGZyb20gdGhlIGNvbnRleHROb2RlLjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+Y29udGV4dE5vZGU8L2NvZGU+IC0gVGhlIG5vZGUgdG8gc3RhcnQgc2VhcmNoaW5nIGZyb20uPC9wPjxwPjxjb2RlPnN0cjwvY29kZT4gLSBBIHZhbGlkIFhQYXRoIHN0cmluZy48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPm9yZy53M2MuZG9tLk5vZGVMaXN0PC9jb2RlPiAtIEEgTm9kZUl0ZXJhdG9yLCBzaG91bGQgbmV2ZXIgYmUgbnVsbC48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJFeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3NlbGVjdE5vZGVMaXN0Ij5zZWxlY3ROb2RlTGlzdDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBvcmcudzNjLmRvbS5Ob2RlTGlzdCA8c3Ryb25nPnNlbGVjdE5vZGVMaXN0PC9zdHJvbmc+KG9yZy53M2MuZG9tLk5vZGUgY29udGV4dE5vZGUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgc3RyCi0gICAgICAgICAsCi0gICAgICBvcmcudzNjLmRvbS5Ob2RlIG5hbWVzcGFjZU5vZGUpPC9jb2RlPjwvcD48cD5Vc2UgYW4gWFBhdGggc3RyaW5nIHRvIHNlbGVjdCBhIG5vZGVsaXN0LiBYUGF0aCBuYW1lc3BhY2UgcHJlZml4ZXMgYXJlCi0gcmVzb2x2ZWQgZnJvbSB0aGUgbmFtZXNwYWNlTm9kZS48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmNvbnRleHROb2RlPC9jb2RlPiAtIFRoZSBub2RlIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLjwvcD48cD48Y29kZT5zdHI8L2NvZGU+IC0gQSB2YWxpZCBYUGF0aCBzdHJpbmcuPC9wPjxwPjxjb2RlPm5hbWVzcGFjZU5vZGU8L2NvZGU+IC0gVGhlIG5vZGUgZnJvbSB3aGljaCBwcmVmaXhlcyBpbiB0aGUgWFBhdGggd2lsbCBiZSByZXNvbHZlZCB0byAgICAgICAgICAgICBuYW1lc3BhY2VzLjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+b3JnLnczYy5kb20uTm9kZUxpc3Q8L2NvZGU+IC0gQSBOb2RlSXRlcmF0b3IsIHNob3VsZCBuZXZlciBiZSBudWxsLjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+amF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lckV4Y2VwdGlvbjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2Rfc2VsZWN0U2luZ2xlTm9kZSI+c2VsZWN0U2luZ2xlTm9kZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBvcmcudzNjLmRvbS5Ob2RlIDxzdHJvbmc+c2VsZWN0U2luZ2xlTm9kZTwvc3Ryb25nPihvcmcudzNjLmRvbS5Ob2RlIGNvbnRleHROb2RlCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHN0cik8L2NvZGU+PC9wPjxwPlVzZSBhbiBYUGF0aCBzdHJpbmcgdG8gc2VsZWN0IGEgc2luZ2xlIG5vZGUuIFhQYXRoIG5hbWVzcGFjZSBwcmVmaXhlcyBhcmUKLSByZXNvbHZlZCBmcm9tIHRoZSBjb250ZXh0IG5vZGUsIHdoaWNoIG1heSBub3QgYmUgd2hhdCB5b3Ugd2FudCAoc2VlIHRoZQotIG5leHQgbWV0aG9kKS48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmNvbnRleHROb2RlPC9jb2RlPiAtIFRoZSBub2RlIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLjwvcD48cD48Y29kZT5zdHI8L2NvZGU+IC0gQSB2YWxpZCBYUGF0aCBzdHJpbmcuPC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5vcmcudzNjLmRvbS5Ob2RlPC9jb2RlPiAtIFRoZSBmaXJzdCBub2RlIGZvdW5kIHRoYXQgbWF0Y2hlcyB0aGUgWFBhdGgsIG9yIG51bGwuPC9wPjxoMz5UaHJvd3M6PC9oMz48cD48Y29kZT5qYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyRXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9zZWxlY3RTaW5nbGVOb2RlIj5zZWxlY3RTaW5nbGVOb2RlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIG9yZy53M2MuZG9tLk5vZGUgPHN0cm9uZz5zZWxlY3RTaW5nbGVOb2RlPC9zdHJvbmc+KG9yZy53M2MuZG9tLk5vZGUgY29udGV4dE5vZGUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgc3RyCi0gICAgICAgICAsCi0gICAgICBvcmcudzNjLmRvbS5Ob2RlIG5hbWVzcGFjZU5vZGUpPC9jb2RlPjwvcD48cD5Vc2UgYW4gWFBhdGggc3RyaW5nIHRvIHNlbGVjdCBhIHNpbmdsZSBub2RlLiBYUGF0aCBuYW1lc3BhY2UgcHJlZml4ZXMgYXJlCi0gcmVzb2x2ZWQgZnJvbSB0aGUgbmFtZXNwYWNlTm9kZS48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmNvbnRleHROb2RlPC9jb2RlPiAtIFRoZSBub2RlIHRvIHN0YXJ0IHNlYXJjaGluZyBmcm9tLjwvcD48cD48Y29kZT5zdHI8L2NvZGU+IC0gQSB2YWxpZCBYUGF0aCBzdHJpbmcuPC9wPjxwPjxjb2RlPm5hbWVzcGFjZU5vZGU8L2NvZGU+IC0gVGhlIG5vZGUgZnJvbSB3aGljaCBwcmVmaXhlcyBpbiB0aGUgWFBhdGggd2lsbCBiZSByZXNvbHZlZCB0byAgICAgICAgICAgICBuYW1lc3BhY2VzLjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+b3JnLnczYy5kb20uTm9kZTwvY29kZT4gLSBUaGUgZmlyc3Qgbm9kZSBmb3VuZCB0aGF0IG1hdGNoZXMgdGhlIFhQYXRoLCBvciBudWxsLjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+amF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lckV4Y2VwdGlvbjwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkuWFBhdGhVSU1lc3NhZ2VzLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5YUGF0aFVJTWVzc2FnZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTkyMTIzMS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5YUGF0aFVJTWVzc2FnZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aTwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIFhQYXRoVUlNZXNzYWdlczwvaDI+PGJyPjxocj48cHJlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlhQYXRoVUlNZXNzYWdlczwvc3Ryb25nPgotZXh0ZW5kcyBOTFM8L3ByZT5TdHJpbmdzIHVzZWQgYnkgWFBhdGggVUk8aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5GaWVsZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFBhdGhOYXZpZ2F0b3JfQ29udGV4dCI+WFBhdGhOYXZpZ2F0b3JfQ29udGV4dDwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFBhdGhOYXZpZ2F0b3JfRG9jdW1lbnQiPlhQYXRoTmF2aWdhdG9yX0RvY3VtZW50PC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9ET01fVHJlZSI+WFBhdGhOYXZpZ2F0b3JfRE9NX1RyZWU8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hQYXRoTmF2aWdhdG9yX0V4cHJlc3Npb24iPlhQYXRoTmF2aWdhdG9yX0V4cHJlc3Npb248L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hQYXRoTmF2aWdhdG9yX05hbWVzcGFjZV9QcmVmaXhlcyI+WFBhdGhOYXZpZ2F0b3JfTmFtZXNwYWNlX1ByZWZpeGVzPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9OYW1lc3BhY2VzIj5YUGF0aE5hdmlnYXRvcl9OYW1lc3BhY2VzPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9OYW1lc3BhY2VzX1RpcCI+WFBhdGhOYXZpZ2F0b3JfTmFtZXNwYWNlc19UaXA8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hQYXRoTmF2aWdhdG9yX05vZGVfY291bGRfbm90X2JlX3NlbGVjdGVkIj5YUGF0aE5hdmlnYXRvcl9Ob2RlX2NvdWxkX25vdF9iZV9zZWxlY3RlZDwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFBhdGhOYXZpZ2F0b3JfTm90aGluZ19zZWxlY3RlZCI+WFBhdGhOYXZpZ2F0b3JfTm90aGluZ19zZWxlY3RlZDwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFBhdGhOYXZpZ2F0b3JfUmVmcmVzaF9Tb3VyY2VfRG9jcyI+WFBhdGhOYXZpZ2F0b3JfUmVmcmVzaF9Tb3VyY2VfRG9jczwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFBhdGhOYXZpZ2F0b3JfUmVmcmVzaF9Tb3VyY2VfRG9jc19UaXAiPlhQYXRoTmF2aWdhdG9yX1JlZnJlc2hfU291cmNlX0RvY3NfVGlwPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9SdW5fb25fc2VsZWN0ZWQiPlhQYXRoTmF2aWdhdG9yX1J1bl9vbl9zZWxlY3RlZDwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFBhdGhOYXZpZ2F0b3JfUnVuX1hQYXRoX1F1ZXJ5Ij5YUGF0aE5hdmlnYXRvcl9SdW5fWFBhdGhfUXVlcnk8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hQYXRoTmF2aWdhdG9yX1NlbGVjdF9zb3VyY2VfZmlyc3QiPlhQYXRoTmF2aWdhdG9yX1NlbGVjdF9zb3VyY2VfZmlyc3Q8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hQYXRoTmF2aWdhdG9yX1NlbGVjdGlvbiI+WFBhdGhOYXZpZ2F0b3JfU2VsZWN0aW9uPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9TaG93X0luX1NvdXJjZSI+WFBhdGhOYXZpZ2F0b3JfU2hvd19Jbl9Tb3VyY2U8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hQYXRoTmF2aWdhdG9yX1Nob3dfSW5fU291cmNlX1RpcCI+WFBhdGhOYXZpZ2F0b3JfU2hvd19Jbl9Tb3VyY2VfVGlwPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9UZXh0Ij5YUGF0aE5hdmlnYXRvcl9UZXh0PC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9YTUxfU291cmNlX0RvY3VtZW50Ij5YUGF0aE5hdmlnYXRvcl9YTUxfU291cmNlX0RvY3VtZW50PC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9YUGF0aF9FdmFsX0ZhaWxlZCI+WFBhdGhOYXZpZ2F0b3JfWFBhdGhfRXZhbF9GYWlsZWQ8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hQYXRoTmF2aWdhdG9yX1hQYXRoX05hdmlnYXRvciI+WFBhdGhOYXZpZ2F0b3JfWFBhdGhfTmF2aWdhdG9yPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YUGF0aE5hdmlnYXRvcl9YUGF0aF9TaG93X0luX1NvdXJjZV9GYWlsZWQiPlhQYXRoTmF2aWdhdG9yX1hQYXRoX1Nob3dfSW5fU291cmNlX0ZhaWxlZDwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5NZXRob2QgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyBqYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0UmVzb3VyY2VCdW5kbGUiPmdldFJlc291cmNlQnVuZGxlPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgRmllbGQgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJmaWVsZF9YUGF0aE5hdmlnYXRvcl9Db250ZXh0Ij5YUGF0aE5hdmlnYXRvcl9Db250ZXh0PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX0NvbnRleHQ8L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFBhdGhOYXZpZ2F0b3JfRG9jdW1lbnQiPlhQYXRoTmF2aWdhdG9yX0RvY3VtZW50PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX0RvY3VtZW50PC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hQYXRoTmF2aWdhdG9yX0RPTV9UcmVlIj5YUGF0aE5hdmlnYXRvcl9ET01fVHJlZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YUGF0aE5hdmlnYXRvcl9ET01fVHJlZTwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YUGF0aE5hdmlnYXRvcl9FeHByZXNzaW9uIj5YUGF0aE5hdmlnYXRvcl9FeHByZXNzaW9uPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX0V4cHJlc3Npb248L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFBhdGhOYXZpZ2F0b3JfTmFtZXNwYWNlX1ByZWZpeGVzIj5YUGF0aE5hdmlnYXRvcl9OYW1lc3BhY2VfUHJlZml4ZXM8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3JfTmFtZXNwYWNlX1ByZWZpeGVzPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hQYXRoTmF2aWdhdG9yX05hbWVzcGFjZXMiPlhQYXRoTmF2aWdhdG9yX05hbWVzcGFjZXM8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3JfTmFtZXNwYWNlczwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YUGF0aE5hdmlnYXRvcl9OYW1lc3BhY2VzX1RpcCI+WFBhdGhOYXZpZ2F0b3JfTmFtZXNwYWNlc19UaXA8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3JfTmFtZXNwYWNlc19UaXA8L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFBhdGhOYXZpZ2F0b3JfTm9kZV9jb3VsZF9ub3RfYmVfc2VsZWN0ZWQiPlhQYXRoTmF2aWdhdG9yX05vZGVfY291bGRfbm90X2JlX3NlbGVjdGVkPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX05vZGVfY291bGRfbm90X2JlX3NlbGVjdGVkPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hQYXRoTmF2aWdhdG9yX05vdGhpbmdfc2VsZWN0ZWQiPlhQYXRoTmF2aWdhdG9yX05vdGhpbmdfc2VsZWN0ZWQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3JfTm90aGluZ19zZWxlY3RlZDwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YUGF0aE5hdmlnYXRvcl9SZWZyZXNoX1NvdXJjZV9Eb2NzIj5YUGF0aE5hdmlnYXRvcl9SZWZyZXNoX1NvdXJjZV9Eb2NzPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX1JlZnJlc2hfU291cmNlX0RvY3M8L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFBhdGhOYXZpZ2F0b3JfUmVmcmVzaF9Tb3VyY2VfRG9jc19UaXAiPlhQYXRoTmF2aWdhdG9yX1JlZnJlc2hfU291cmNlX0RvY3NfVGlwPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX1JlZnJlc2hfU291cmNlX0RvY3NfVGlwPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hQYXRoTmF2aWdhdG9yX1J1bl9vbl9zZWxlY3RlZCI+WFBhdGhOYXZpZ2F0b3JfUnVuX29uX3NlbGVjdGVkPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX1J1bl9vbl9zZWxlY3RlZDwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YUGF0aE5hdmlnYXRvcl9SdW5fWFBhdGhfUXVlcnkiPlhQYXRoTmF2aWdhdG9yX1J1bl9YUGF0aF9RdWVyeTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YUGF0aE5hdmlnYXRvcl9SdW5fWFBhdGhfUXVlcnk8L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFBhdGhOYXZpZ2F0b3JfU2VsZWN0X3NvdXJjZV9maXJzdCI+WFBhdGhOYXZpZ2F0b3JfU2VsZWN0X3NvdXJjZV9maXJzdDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YUGF0aE5hdmlnYXRvcl9TZWxlY3Rfc291cmNlX2ZpcnN0PC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hQYXRoTmF2aWdhdG9yX1NlbGVjdGlvbiI+WFBhdGhOYXZpZ2F0b3JfU2VsZWN0aW9uPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX1NlbGVjdGlvbjwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YUGF0aE5hdmlnYXRvcl9TaG93X0luX1NvdXJjZSI+WFBhdGhOYXZpZ2F0b3JfU2hvd19Jbl9Tb3VyY2U8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3JfU2hvd19Jbl9Tb3VyY2U8L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFBhdGhOYXZpZ2F0b3JfU2hvd19Jbl9Tb3VyY2VfVGlwIj5YUGF0aE5hdmlnYXRvcl9TaG93X0luX1NvdXJjZV9UaXA8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3JfU2hvd19Jbl9Tb3VyY2VfVGlwPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hQYXRoTmF2aWdhdG9yX1RleHQiPlhQYXRoTmF2aWdhdG9yX1RleHQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3JfVGV4dDwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YUGF0aE5hdmlnYXRvcl9YTUxfU291cmNlX0RvY3VtZW50Ij5YUGF0aE5hdmlnYXRvcl9YTUxfU291cmNlX0RvY3VtZW50PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX1hNTF9Tb3VyY2VfRG9jdW1lbnQ8L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFBhdGhOYXZpZ2F0b3JfWFBhdGhfRXZhbF9GYWlsZWQiPlhQYXRoTmF2aWdhdG9yX1hQYXRoX0V2YWxfRmFpbGVkPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX1hQYXRoX0V2YWxfRmFpbGVkPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hQYXRoTmF2aWdhdG9yX1hQYXRoX05hdmlnYXRvciI+WFBhdGhOYXZpZ2F0b3JfWFBhdGhfTmF2aWdhdG9yPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yX1hQYXRoX05hdmlnYXRvcjwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YUGF0aE5hdmlnYXRvcl9YUGF0aF9TaG93X0luX1NvdXJjZV9GYWlsZWQiPlhQYXRoTmF2aWdhdG9yX1hQYXRoX1Nob3dfSW5fU291cmNlX0ZhaWxlZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YUGF0aE5hdmlnYXRvcl9YUGF0aF9TaG93X0luX1NvdXJjZV9GYWlsZWQ8L3N0cm9uZz48L2NvZGU+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0UmVzb3VyY2VCdW5kbGUiPmdldFJlc291cmNlQnVuZGxlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZSA8c3Ryb25nPmdldFJlc291cmNlQnVuZGxlPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+amF2YS51dGlsLlJlc291cmNlQnVuZGxlPC9jb2RlPjwvcD48aHI+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5YUGF0aFZpZXdQbHVnaW4uaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLlhQYXRoVmlld1BsdWdpbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzQzNGMyLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLlhQYXRoVmlld1BsdWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPGh0bWw+PGJvZHk+PHA+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+UGFja2FnZSBvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWk8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgWFBhdGhWaWV3UGx1Z2luPC9oMj48YnI+PGhyPjxwcmU+cHVibGljIGNsYXNzIDxzdHJvbmc+WFBhdGhWaWV3UGx1Z2luPC9zdHJvbmc+Ci1leHRlbmRzIEFic3RyYWN0VUlQbHVnaW48L3ByZT48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgd2lkdGg9IjEwMCUiPjxoMj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fWFBhdGhWaWV3UGx1Z2luIj5YUGF0aFZpZXdQbHVnaW48L2E+PC9zdHJvbmc+KCk8L2NvZGU+PC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29scz0iMiIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIj48aDI+TWV0aG9kIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5YUGF0aFZpZXdQbHVnaW48L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0RGVmYXVsdCI+Z2V0RGVmYXVsdDwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFJldHVybnMgdGhlIHNoYXJlZCBpbnN0YW5jZS48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0UGx1Z2luSWQiPmdldFBsdWdpbklkPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGphdmEudXRpbC5SZXNvdXJjZUJ1bmRsZTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRSZXNvdXJjZUJ1bmRsZSI+Z2V0UmVzb3VyY2VCdW5kbGU8L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBSZXR1cm5zIHRoZSBwbHVnaW4ncyByZXNvdXJjZSBidW5kbGU8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0UmVzb3VyY2VTdHJpbmciPmdldFJlc291cmNlU3RyaW5nPC9hPihqYXZhLmxhbmcuU3RyaW5nIGtleSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBSZXR1cm5zIHRoZSBzdHJpbmcgZnJvbSB0aGUgcGx1Z2luJ3MgcmVzb3VyY2UgYnVuZGxlLAotIG9yICdrZXknIGlmIG5vdCBmb3VuZC48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgQ29udGV4dFR5cGVSZWdpc3RyeTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRYUGF0aFRlbXBsYXRlQ29udGV4dFJlZ2lzdHJ5Ij5nZXRYUGF0aFRlbXBsYXRlQ29udGV4dFJlZ2lzdHJ5PC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgUmV0dXJucyB0aGUgdGVtcGxhdGUgY29udGV4dCB0eXBlIHJlZ2lzdHJ5IGZvciB4cGF0aDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBUZW1wbGF0ZVN0b3JlPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldFhQYXRoVGVtcGxhdGVTdG9yZSI+Z2V0WFBhdGhUZW1wbGF0ZVN0b3JlPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgUmV0dXJucyB0aGUgdGVtcGxhdGUgc3RvcmUgZm9yIHRoZSB4cGF0aCB0ZW1wbGF0ZXMuPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfaW5mbyI+aW5mbzwvYT4oamF2YS5sYW5nLlN0cmluZyBtZXNzYWdlKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3RlY3RlZCB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2luaXRpYWxpemVJbWFnZVJlZ2lzdHJ5Ij5pbml0aWFsaXplSW1hZ2VSZWdpc3RyeTwvYT4oSW1hZ2VSZWdpc3RyeSByZWcpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfbG9nIj5sb2c8L2E+KGphdmEubGFuZy5TdHJpbmcgbWVzc2FnZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlRocm93YWJsZSBleCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9sb2ciPmxvZzwvYT4oamF2YS5sYW5nLlRocm93YWJsZSBleCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9wYXJ0QWN0aXZhdGVkIj5wYXJ0QWN0aXZhdGVkPC9hPihJV29ya2JlbmNoUGFydFJlZmVyZW5jZSBwYXJ0UmVmKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3BhcnRCcm91Z2h0VG9Ub3AiPnBhcnRCcm91Z2h0VG9Ub3A8L2E+KElXb3JrYmVuY2hQYXJ0UmVmZXJlbmNlIHBhcnRSZWYpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfcGFydENsb3NlZCI+cGFydENsb3NlZDwvYT4oSVdvcmtiZW5jaFBhcnRSZWZlcmVuY2UgcGFydFJlZik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9wYXJ0RGVhY3RpdmF0ZWQiPnBhcnREZWFjdGl2YXRlZDwvYT4oSVdvcmtiZW5jaFBhcnRSZWZlcmVuY2UgcGFydFJlZik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9wYXJ0SGlkZGVuIj5wYXJ0SGlkZGVuPC9hPihJV29ya2JlbmNoUGFydFJlZmVyZW5jZSBwYXJ0UmVmKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3BhcnRJbnB1dENoYW5nZWQiPnBhcnRJbnB1dENoYW5nZWQ8L2E+KElXb3JrYmVuY2hQYXJ0UmVmZXJlbmNlIHBhcnRSZWYpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfcGFydE9wZW5lZCI+cGFydE9wZW5lZDwvYT4oSVdvcmtiZW5jaFBhcnRSZWZlcmVuY2UgcGFydFJlZik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9wYXJ0VmlzaWJsZSI+cGFydFZpc2libGU8L2E+KElXb3JrYmVuY2hQYXJ0UmVmZXJlbmNlIHBhcnRSZWYpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2Rfc3RhcnQiPnN0YXJ0PC9hPihCdW5kbGVDb250ZXh0IGNvbnRleHQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVGhpcyBtZXRob2QgaXMgY2FsbGVkIHVwb24gcGx1Zy1pbiBhY3RpdmF0aW9uPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2Rfc3RvcCI+c3RvcDwvYT4oQnVuZGxlQ29udGV4dCBjb250ZXh0KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBwbHVnLWluIGlzIHN0b3BwZWQ8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfdGhyb3dDb3JlRXhjZXB0aW9uIj50aHJvd0NvcmVFeGNlcHRpb248L2E+KGphdmEubGFuZy5TdHJpbmcgbWVzc2FnZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlRocm93YWJsZSB0KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3RlY3RlZCB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3VwZGF0ZVhQYXRoTmF2aWdhdG9yVmlldyI+dXBkYXRlWFBhdGhOYXZpZ2F0b3JWaWV3PC9hPihJV29ya2JlbmNoUGFydFJlZmVyZW5jZSBwYXJ0UmVmKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3dhcm4iPndhcm48L2E+KGphdmEubGFuZy5TdHJpbmcgbWVzc2FnZSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBDb25zdHJ1Y3RvciBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImNvbl9YUGF0aFZpZXdQbHVnaW4iPlhQYXRoVmlld1BsdWdpbjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyA8c3Ryb25nPlhQYXRoVmlld1BsdWdpbjwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD5UaGUgY29uc3RydWN0b3IuPC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0RGVmYXVsdCI+Z2V0RGVmYXVsdDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLlhQYXRoVmlld1BsdWdpbiA8c3Ryb25nPmdldERlZmF1bHQ8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+UmV0dXJucyB0aGUgc2hhcmVkIGluc3RhbmNlLjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+b3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5YUGF0aFZpZXdQbHVnaW48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFBsdWdpbklkIj5nZXRQbHVnaW5JZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+Z2V0UGx1Z2luSWQ8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRSZXNvdXJjZUJ1bmRsZSI+Z2V0UmVzb3VyY2VCdW5kbGU8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgamF2YS51dGlsLlJlc291cmNlQnVuZGxlIDxzdHJvbmc+Z2V0UmVzb3VyY2VCdW5kbGU8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+UmV0dXJucyB0aGUgcGx1Z2luJ3MgcmVzb3VyY2UgYnVuZGxlPC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5qYXZhLnV0aWwuUmVzb3VyY2VCdW5kbGU8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFJlc291cmNlU3RyaW5nIj5nZXRSZXNvdXJjZVN0cmluZzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+Z2V0UmVzb3VyY2VTdHJpbmc8L3N0cm9uZz4oamF2YS5sYW5nLlN0cmluZyBrZXkpPC9jb2RlPjwvcD48cD5SZXR1cm5zIHRoZSBzdHJpbmcgZnJvbSB0aGUgcGx1Z2luJ3MgcmVzb3VyY2UgYnVuZGxlLAotIG9yICdrZXknIGlmIG5vdCBmb3VuZC48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmtleTwvY29kZT48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFhQYXRoVGVtcGxhdGVDb250ZXh0UmVnaXN0cnkiPmdldFhQYXRoVGVtcGxhdGVDb250ZXh0UmVnaXN0cnk8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgQ29udGV4dFR5cGVSZWdpc3RyeSA8c3Ryb25nPmdldFhQYXRoVGVtcGxhdGVDb250ZXh0UmVnaXN0cnk8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+UmV0dXJucyB0aGUgdGVtcGxhdGUgY29udGV4dCB0eXBlIHJlZ2lzdHJ5IGZvciB4cGF0aDwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+Q29udGV4dFR5cGVSZWdpc3RyeTwvY29kZT4gLSB0aGUgdGVtcGxhdGUgY29udGV4dCB0eXBlIHJlZ2lzdHJ5IGZvciB4cGF0aDwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRYUGF0aFRlbXBsYXRlU3RvcmUiPmdldFhQYXRoVGVtcGxhdGVTdG9yZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBUZW1wbGF0ZVN0b3JlIDxzdHJvbmc+Z2V0WFBhdGhUZW1wbGF0ZVN0b3JlPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPlJldHVybnMgdGhlIHRlbXBsYXRlIHN0b3JlIGZvciB0aGUgeHBhdGggdGVtcGxhdGVzLjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+VGVtcGxhdGVTdG9yZTwvY29kZT4gLSB0aGUgdGVtcGxhdGUgc3RvcmUgZm9yIHRoZSB4cGF0aCB0ZW1wbGF0ZXM8L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfaW5mbyI+aW5mbzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+aW5mbzwvc3Ryb25nPihqYXZhLmxhbmcuU3RyaW5nIG1lc3NhZ2UpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPm1lc3NhZ2U8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2luaXRpYWxpemVJbWFnZVJlZ2lzdHJ5Ij5pbml0aWFsaXplSW1hZ2VSZWdpc3RyeTwvYT48L2gyPjxwPjxjb2RlPnByb3RlY3RlZCB2b2lkIDxzdHJvbmc+aW5pdGlhbGl6ZUltYWdlUmVnaXN0cnk8L3N0cm9uZz4oSW1hZ2VSZWdpc3RyeSByZWcpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPnJlZzwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfbG9nIj5sb2c8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPmxvZzwvc3Ryb25nPihqYXZhLmxhbmcuU3RyaW5nIG1lc3NhZ2UKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5UaHJvd2FibGUgZXgpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPm1lc3NhZ2U8L2NvZGU+PC9wPjxwPjxjb2RlPmV4PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9sb2ciPmxvZzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+bG9nPC9zdHJvbmc+KGphdmEubGFuZy5UaHJvd2FibGUgZXgpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmV4PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9wYXJ0QWN0aXZhdGVkIj5wYXJ0QWN0aXZhdGVkPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5wYXJ0QWN0aXZhdGVkPC9zdHJvbmc+KElXb3JrYmVuY2hQYXJ0UmVmZXJlbmNlIHBhcnRSZWYpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPnBhcnRSZWY8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3BhcnRCcm91Z2h0VG9Ub3AiPnBhcnRCcm91Z2h0VG9Ub3A8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnBhcnRCcm91Z2h0VG9Ub3A8L3N0cm9uZz4oSVdvcmtiZW5jaFBhcnRSZWZlcmVuY2UgcGFydFJlZik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+cGFydFJlZjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfcGFydENsb3NlZCI+cGFydENsb3NlZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cGFydENsb3NlZDwvc3Ryb25nPihJV29ya2JlbmNoUGFydFJlZmVyZW5jZSBwYXJ0UmVmKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5wYXJ0UmVmPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9wYXJ0RGVhY3RpdmF0ZWQiPnBhcnREZWFjdGl2YXRlZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cGFydERlYWN0aXZhdGVkPC9zdHJvbmc+KElXb3JrYmVuY2hQYXJ0UmVmZXJlbmNlIHBhcnRSZWYpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPnBhcnRSZWY8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3BhcnRIaWRkZW4iPnBhcnRIaWRkZW48L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnBhcnRIaWRkZW48L3N0cm9uZz4oSVdvcmtiZW5jaFBhcnRSZWZlcmVuY2UgcGFydFJlZik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+cGFydFJlZjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfcGFydElucHV0Q2hhbmdlZCI+cGFydElucHV0Q2hhbmdlZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cGFydElucHV0Q2hhbmdlZDwvc3Ryb25nPihJV29ya2JlbmNoUGFydFJlZmVyZW5jZSBwYXJ0UmVmKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5wYXJ0UmVmPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9wYXJ0T3BlbmVkIj5wYXJ0T3BlbmVkPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5wYXJ0T3BlbmVkPC9zdHJvbmc+KElXb3JrYmVuY2hQYXJ0UmVmZXJlbmNlIHBhcnRSZWYpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPnBhcnRSZWY8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3BhcnRWaXNpYmxlIj5wYXJ0VmlzaWJsZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cGFydFZpc2libGU8L3N0cm9uZz4oSVdvcmtiZW5jaFBhcnRSZWZlcmVuY2UgcGFydFJlZik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+cGFydFJlZjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2Rfc3RhcnQiPnN0YXJ0PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5zdGFydDwvc3Ryb25nPihCdW5kbGVDb250ZXh0IGNvbnRleHQpPC9jb2RlPjwvcD48cD5UaGlzIG1ldGhvZCBpcyBjYWxsZWQgdXBvbiBwbHVnLWluIGFjdGl2YXRpb248L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmNvbnRleHQ8L2NvZGU+PC9wPjxoMz5UaHJvd3M6PC9oMz48cD48Y29kZT5qYXZhLmxhbmcuRXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9zdG9wIj5zdG9wPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5zdG9wPC9zdHJvbmc+KEJ1bmRsZUNvbnRleHQgY29udGV4dCk8L2NvZGU+PC9wPjxwPlRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSBwbHVnLWluIGlzIHN0b3BwZWQ8L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmNvbnRleHQ8L2NvZGU+PC9wPjxoMz5UaHJvd3M6PC9oMz48cD48Y29kZT5qYXZhLmxhbmcuRXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF90aHJvd0NvcmVFeGNlcHRpb24iPnRocm93Q29yZUV4Y2VwdGlvbjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+dGhyb3dDb3JlRXhjZXB0aW9uPC9zdHJvbmc+KGphdmEubGFuZy5TdHJpbmcgbWVzc2FnZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlRocm93YWJsZSB0KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5tZXNzYWdlPC9jb2RlPjwvcD48cD48Y29kZT50PC9jb2RlPjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+Q29yZUV4Y2VwdGlvbjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfdXBkYXRlWFBhdGhOYXZpZ2F0b3JWaWV3Ij51cGRhdGVYUGF0aE5hdmlnYXRvclZpZXc8L2E+PC9oMj48cD48Y29kZT5wcm90ZWN0ZWQgdm9pZCA8c3Ryb25nPnVwZGF0ZVhQYXRoTmF2aWdhdG9yVmlldzwvc3Ryb25nPihJV29ya2JlbmNoUGFydFJlZmVyZW5jZSBwYXJ0UmVmKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5wYXJ0UmVmPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF93YXJuIj53YXJuPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz53YXJuPC9zdHJvbmc+KGphdmEubGFuZy5TdHJpbmcgbWVzc2FnZSk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+bWVzc2FnZTwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NTm9kZUxhYmVsUHJvdmlkZXIuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkRPTU5vZGVMYWJlbFByb3ZpZGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0NTk2ZDMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NTm9kZUxhYmVsUHJvdmlkZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3czwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIERPTU5vZGVMYWJlbFByb3ZpZGVyPC9oMj48YnI+PGhyPjxwcmU+cHVibGljIGNsYXNzIDxzdHJvbmc+RE9NTm9kZUxhYmVsUHJvdmlkZXI8L3N0cm9uZz4KLWV4dGVuZHMgTGFiZWxQcm92aWRlcjwvcHJlPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2Nvbl9ET01Ob2RlTGFiZWxQcm92aWRlciI+RE9NTm9kZUxhYmVsUHJvdmlkZXI8L2E+PC9zdHJvbmc+KCk8L2NvZGU+PC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29scz0iMiIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIj48aDI+TWV0aG9kIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBJbWFnZTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRJbWFnZSI+Z2V0SW1hZ2U8L2E+KGphdmEubGFuZy5PYmplY3QgZWxlbWVudCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRUZXh0Ij5nZXRUZXh0PC9hPihqYXZhLmxhbmcuT2JqZWN0IGVsZW1lbnQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fRE9NTm9kZUxhYmVsUHJvdmlkZXIiPkRPTU5vZGVMYWJlbFByb3ZpZGVyPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIDxzdHJvbmc+RE9NTm9kZUxhYmVsUHJvdmlkZXI8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0SW1hZ2UiPmdldEltYWdlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIEltYWdlIDxzdHJvbmc+Z2V0SW1hZ2U8L3N0cm9uZz4oamF2YS5sYW5nLk9iamVjdCBlbGVtZW50KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5lbGVtZW50PC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+SW1hZ2U8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFRleHQiPmdldFRleHQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPmdldFRleHQ8L3N0cm9uZz4oamF2YS5sYW5nLk9iamVjdCBlbGVtZW50KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5lbGVtZW50PC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+amF2YS5sYW5nLlN0cmluZzwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NVHJlZUNvbnRlbnRQcm92aWRlci5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NVHJlZUNvbnRlbnRQcm92aWRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZWE5OWIzLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkRPTVRyZWVDb250ZW50UHJvdmlkZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3czwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIERPTVRyZWVDb250ZW50UHJvdmlkZXI8L2gyPjxicj48aHI+PHByZT5wdWJsaWMgY2xhc3MgPHN0cm9uZz5ET01UcmVlQ29udGVudFByb3ZpZGVyPC9zdHJvbmc+Ci1leHRlbmRzIGphdmEubGFuZy5PYmplY3Q8L3ByZT48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5GaWVsZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wYWNrYWdlLXByaXZhdGUgb3JnLnczYy5kb20uTm9kZTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX25vZGUiPm5vZGU8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cGFja2FnZS1wcml2YXRlIHN0YXRpYyAgamF2YS5sYW5nLk9iamVjdFtdPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfTk9USElORyI+Tk9USElORzwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgd2lkdGg9IjEwMCUiPjxoMj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fRE9NVHJlZUNvbnRlbnRQcm92aWRlciI+RE9NVHJlZUNvbnRlbnRQcm92aWRlcjwvYT48L3N0cm9uZz4oKTwvY29kZT48L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5NZXRob2QgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZGlzcG9zZSI+ZGlzcG9zZTwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0W108L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0Q2hpbGRyZW4iPmdldENoaWxkcmVuPC9hPihqYXZhLmxhbmcuT2JqZWN0IHBhcmVudEVsZW1lbnQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGphdmEubGFuZy5PYmplY3RbXTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRFbGVtZW50cyI+Z2V0RWxlbWVudHM8L2E+KGphdmEubGFuZy5PYmplY3QgaW5wdXRFbGVtZW50KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0PC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldFBhcmVudCI+Z2V0UGFyZW50PC9hPihqYXZhLmxhbmcuT2JqZWN0IGVsZW1lbnQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGJvb2xlYW48L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfaGFzQ2hpbGRyZW4iPmhhc0NoaWxkcmVuPC9hPihqYXZhLmxhbmcuT2JqZWN0IGVsZW1lbnQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfaW5wdXRDaGFuZ2VkIj5pbnB1dENoYW5nZWQ8L2E+KFZpZXdlciB2aWV3ZXIKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5PYmplY3Qgb2xkSW5wdXQKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5PYmplY3QgbmV3SW5wdXQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgRmllbGQgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJmaWVsZF9ub2RlIj5ub2RlPC9hPjwvaDI+PHA+PGNvZGU+cGFja2FnZS1wcml2YXRlIG9yZy53M2MuZG9tLk5vZGUgPHN0cm9uZz5ub2RlPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX05PVEhJTkciPk5PVEhJTkc8L2E+PC9oMj48cD48Y29kZT5wYWNrYWdlLXByaXZhdGUgc3RhdGljICBqYXZhLmxhbmcuT2JqZWN0W10gPHN0cm9uZz5OT1RISU5HPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBDb25zdHJ1Y3RvciBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImNvbl9ET01UcmVlQ29udGVudFByb3ZpZGVyIj5ET01UcmVlQ29udGVudFByb3ZpZGVyPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIDxzdHJvbmc+RE9NVHJlZUNvbnRlbnRQcm92aWRlcjwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgTWV0aG9kcyBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9Im1ldGhvZF9kaXNwb3NlIj5kaXNwb3NlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5kaXNwb3NlPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRDaGlsZHJlbiI+Z2V0Q2hpbGRyZW48L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgamF2YS5sYW5nLk9iamVjdFtdIDxzdHJvbmc+Z2V0Q2hpbGRyZW48L3N0cm9uZz4oamF2YS5sYW5nLk9iamVjdCBwYXJlbnRFbGVtZW50KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5wYXJlbnRFbGVtZW50PC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+amF2YS5sYW5nLk9iamVjdFtdPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRFbGVtZW50cyI+Z2V0RWxlbWVudHM8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgamF2YS5sYW5nLk9iamVjdFtdIDxzdHJvbmc+Z2V0RWxlbWVudHM8L3N0cm9uZz4oamF2YS5sYW5nLk9iamVjdCBpbnB1dEVsZW1lbnQpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmlucHV0RWxlbWVudDwvY29kZT48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmphdmEubGFuZy5PYmplY3RbXTwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0UGFyZW50Ij5nZXRQYXJlbnQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgamF2YS5sYW5nLk9iamVjdCA8c3Ryb25nPmdldFBhcmVudDwvc3Ryb25nPihqYXZhLmxhbmcuT2JqZWN0IGVsZW1lbnQpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmVsZW1lbnQ8L2NvZGU+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5qYXZhLmxhbmcuT2JqZWN0PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9oYXNDaGlsZHJlbiI+aGFzQ2hpbGRyZW48L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgYm9vbGVhbiA8c3Ryb25nPmhhc0NoaWxkcmVuPC9zdHJvbmc+KGphdmEubGFuZy5PYmplY3QgZWxlbWVudCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZWxlbWVudDwvY29kZT48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmJvb2xlYW48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2lucHV0Q2hhbmdlZCI+aW5wdXRDaGFuZ2VkPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5pbnB1dENoYW5nZWQ8L3N0cm9uZz4oVmlld2VyIHZpZXdlcgotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLk9iamVjdCBvbGRJbnB1dAotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLk9iamVjdCBuZXdJbnB1dCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+dmlld2VyPC9jb2RlPjwvcD48cD48Y29kZT5vbGRJbnB1dDwvY29kZT48L3A+PHA+PGNvZGU+bmV3SW5wdXQ8L2NvZGU+PC9wPjxocj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkRPTVZpZXdlckZpbHRlci5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NVmlld2VyRmlsdGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU3MjRhY2YuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NVmlld2VyRmlsdGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08aHRtbD48Ym9keT48cD48Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5QYWNrYWdlIG9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3M8L3N0cm9uZz48L2ZvbnQ+PC9wPjxocj48aDI+PGZvbnQgc2l6ZT0iLTEiPjxzdHJvbmc+b3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3czwvc3Ryb25nPjwvZm9udD48YnI+Ci0gICAgICAgICAgICAgICBDbGFzcyBET01WaWV3ZXJGaWx0ZXI8L2gyPjxicj48aHI+PHByZT5wdWJsaWMgY2xhc3MgPHN0cm9uZz5ET01WaWV3ZXJGaWx0ZXI8L3N0cm9uZz4KLWV4dGVuZHMgVmlld2VyRmlsdGVyPC9wcmU+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX0RPTVZpZXdlckZpbHRlciI+RE9NVmlld2VyRmlsdGVyPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgYm9vbGVhbjwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zZWxlY3QiPnNlbGVjdDwvYT4oVmlld2VyIHZpZXdlcgotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLk9iamVjdCBwYXJlbnRFbGVtZW50Ci0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuT2JqZWN0IGVsZW1lbnQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fRE9NVmlld2VyRmlsdGVyIj5ET01WaWV3ZXJGaWx0ZXI8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgPHN0cm9uZz5ET01WaWV3ZXJGaWx0ZXI8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2Rfc2VsZWN0Ij5zZWxlY3Q8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgYm9vbGVhbiA8c3Ryb25nPnNlbGVjdDwvc3Ryb25nPihWaWV3ZXIgdmlld2VyCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuT2JqZWN0IHBhcmVudEVsZW1lbnQKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5PYmplY3QgZWxlbWVudCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+dmlld2VyPC9jb2RlPjwvcD48cD48Y29kZT5wYXJlbnRFbGVtZW50PC9jb2RlPjwvcD48cD48Y29kZT5lbGVtZW50PC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+Ym9vbGVhbjwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRWRpdE5hbWVzcGFjZVByZWZpeERpYWxvZy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRWRpdE5hbWVzcGFjZVByZWZpeERpYWxvZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNTE5MjliLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkVkaXROYW1lc3BhY2VQcmVmaXhEaWFsb2cuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3czwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIEVkaXROYW1lc3BhY2VQcmVmaXhEaWFsb2c8L2gyPjxicj48aHI+PHByZT5wdWJsaWMgY2xhc3MgPHN0cm9uZz5FZGl0TmFtZXNwYWNlUHJlZml4RGlhbG9nPC9zdHJvbmc+Ci1leHRlbmRzIERpYWxvZzwvcHJlPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPkZpZWxkIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3RlY3RlZCBMYWJlbDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX2Vycm9yTWVzc2FnZUxhYmVsIj5lcnJvck1lc3NhZ2VMYWJlbDwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wcm90ZWN0ZWQgamF2YS51dGlsLkxpc3Q8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9uYW1lc3BhY2VJbmZvTGlzdCI+bmFtZXNwYWNlSW5mb0xpc3Q8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHJvdGVjdGVkIElQYXRoPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfcmVzb3VyY2VMb2NhdGlvbiI+cmVzb3VyY2VMb2NhdGlvbjwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgd2lkdGg9IjEwMCUiPjxoMj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fRWRpdE5hbWVzcGFjZVByZWZpeERpYWxvZyI+RWRpdE5hbWVzcGFjZVByZWZpeERpYWxvZzwvYT48L3N0cm9uZz4oU2hlbGwgcGFyZW50U2hlbGwKLSAgICAgICAgICwKLSAgICAgIElQYXRoIHJlc291cmNlTG9jYXRpb24pPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wcm90ZWN0ZWQgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9jcmVhdGVCdXR0b25zRm9yQnV0dG9uQmFyIj5jcmVhdGVCdXR0b25zRm9yQnV0dG9uQmFyPC9hPihDb21wb3NpdGUgcGFyZW50KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3RlY3RlZCBDb250cm9sPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2NyZWF0ZURpYWxvZ0FyZWEiPmNyZWF0ZURpYWxvZ0FyZWE8L2E+KENvbXBvc2l0ZSBwYXJlbnQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHJvdGVjdGVkIENvbnRyb2w8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0RGlhbG9nQXJlYSI+Z2V0RGlhbG9nQXJlYTwvYT4oQ29tcG9zaXRlIHBhcmVudCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgamF2YS51dGlsLkxpc3Q8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0TmFtZXNwYWNlSW5mb0xpc3QiPmdldE5hbWVzcGFjZUluZm9MaXN0PC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2Rfc2V0TmFtZXNwYWNlSW5mb0xpc3QiPnNldE5hbWVzcGFjZUluZm9MaXN0PC9hPihqYXZhLnV0aWwuTGlzdCBsaXN0KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3VwZGF0ZUVycm9yTWVzc2FnZSI+dXBkYXRlRXJyb3JNZXNzYWdlPC9hPihqYXZhLnV0aWwuTGlzdCBuYW1lc3BhY2VJbmZvTGlzdCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF91cGRhdGVPY2N1cmVkIj51cGRhdGVPY2N1cmVkPC9hPihqYXZhLmxhbmcuT2JqZWN0IG9iamVjdAotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLk9iamVjdCBhcmcpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgRmllbGQgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJmaWVsZF9lcnJvck1lc3NhZ2VMYWJlbCI+ZXJyb3JNZXNzYWdlTGFiZWw8L2E+PC9oMj48cD48Y29kZT5wcm90ZWN0ZWQgTGFiZWwgPHN0cm9uZz5lcnJvck1lc3NhZ2VMYWJlbDwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9uYW1lc3BhY2VJbmZvTGlzdCI+bmFtZXNwYWNlSW5mb0xpc3Q8L2E+PC9oMj48cD48Y29kZT5wcm90ZWN0ZWQgamF2YS51dGlsLkxpc3QgPHN0cm9uZz5uYW1lc3BhY2VJbmZvTGlzdDwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9yZXNvdXJjZUxvY2F0aW9uIj5yZXNvdXJjZUxvY2F0aW9uPC9hPjwvaDI+PHA+PGNvZGU+cHJvdGVjdGVkIElQYXRoIDxzdHJvbmc+cmVzb3VyY2VMb2NhdGlvbjwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fRWRpdE5hbWVzcGFjZVByZWZpeERpYWxvZyI+RWRpdE5hbWVzcGFjZVByZWZpeERpYWxvZzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyA8c3Ryb25nPkVkaXROYW1lc3BhY2VQcmVmaXhEaWFsb2c8L3N0cm9uZz4oU2hlbGwgcGFyZW50U2hlbGwKLSAgICAgICAgICwKLSAgICAgIElQYXRoIHJlc291cmNlTG9jYXRpb24pPC9jb2RlPjwvcD48cD48L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgTWV0aG9kcyBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9Im1ldGhvZF9jcmVhdGVCdXR0b25zRm9yQnV0dG9uQmFyIj5jcmVhdGVCdXR0b25zRm9yQnV0dG9uQmFyPC9hPjwvaDI+PHA+PGNvZGU+cHJvdGVjdGVkIHZvaWQgPHN0cm9uZz5jcmVhdGVCdXR0b25zRm9yQnV0dG9uQmFyPC9zdHJvbmc+KENvbXBvc2l0ZSBwYXJlbnQpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPnBhcmVudDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfY3JlYXRlRGlhbG9nQXJlYSI+Y3JlYXRlRGlhbG9nQXJlYTwvYT48L2gyPjxwPjxjb2RlPnByb3RlY3RlZCBDb250cm9sIDxzdHJvbmc+Y3JlYXRlRGlhbG9nQXJlYTwvc3Ryb25nPihDb21wb3NpdGUgcGFyZW50KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5wYXJlbnQ8L2NvZGU+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5Db250cm9sPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXREaWFsb2dBcmVhIj5nZXREaWFsb2dBcmVhPC9hPjwvaDI+PHA+PGNvZGU+cHJvdGVjdGVkIENvbnRyb2wgPHN0cm9uZz5nZXREaWFsb2dBcmVhPC9zdHJvbmc+KENvbXBvc2l0ZSBwYXJlbnQpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPnBhcmVudDwvY29kZT48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPkNvbnRyb2w8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldE5hbWVzcGFjZUluZm9MaXN0Ij5nZXROYW1lc3BhY2VJbmZvTGlzdDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBqYXZhLnV0aWwuTGlzdCA8c3Ryb25nPmdldE5hbWVzcGFjZUluZm9MaXN0PC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+amF2YS51dGlsLkxpc3Q8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3NldE5hbWVzcGFjZUluZm9MaXN0Ij5zZXROYW1lc3BhY2VJbmZvTGlzdDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+c2V0TmFtZXNwYWNlSW5mb0xpc3Q8L3N0cm9uZz4oamF2YS51dGlsLkxpc3QgbGlzdCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+bGlzdDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfdXBkYXRlRXJyb3JNZXNzYWdlIj51cGRhdGVFcnJvck1lc3NhZ2U8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnVwZGF0ZUVycm9yTWVzc2FnZTwvc3Ryb25nPihqYXZhLnV0aWwuTGlzdCBuYW1lc3BhY2VJbmZvTGlzdCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+bmFtZXNwYWNlSW5mb0xpc3Q8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3VwZGF0ZU9jY3VyZWQiPnVwZGF0ZU9jY3VyZWQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnVwZGF0ZU9jY3VyZWQ8L3N0cm9uZz4oamF2YS5sYW5nLk9iamVjdCBvYmplY3QKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5PYmplY3QgYXJnKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5vYmplY3Q8L2NvZGU+PC9wPjxwPjxjb2RlPmFyZzwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuRWRpdG9yUmVmZXJlbmNlTGFiZWxQcm92aWRlci5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuRWRpdG9yUmVmZXJlbmNlTGFiZWxQcm92aWRlci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YzBmY2MzLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLkVkaXRvclJlZmVyZW5jZUxhYmVsUHJvdmlkZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3czwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIFhQYXRoTmF2aWdhdG9yLkVkaXRvclJlZmVyZW5jZUxhYmVsUHJvdmlkZXI8L2gyPjxicj48aHI+PHByZT5wYWNrYWdlLXByaXZhdGUgY2xhc3MgPHN0cm9uZz5YUGF0aE5hdmlnYXRvci5FZGl0b3JSZWZlcmVuY2VMYWJlbFByb3ZpZGVyPC9zdHJvbmc+Ci1leHRlbmRzIExhYmVsUHJvdmlkZXI8L3ByZT48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5GaWVsZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBjaGFyPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfRElSVFlfSU5ESUNBVE9SIj5ESVJUWV9JTkRJQ0FUT1I8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgQSBzdHJpbmcgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGFuIGVkaXRvciBpcyBkaXJ0eTwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2Nvbl9YUGF0aE5hdmlnYXRvci5FZGl0b3JSZWZlcmVuY2VMYWJlbFByb3ZpZGVyIj5YUGF0aE5hdmlnYXRvci5FZGl0b3JSZWZlcmVuY2VMYWJlbFByb3ZpZGVyPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgSW1hZ2U8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0SW1hZ2UiPmdldEltYWdlPC9hPihqYXZhLmxhbmcuT2JqZWN0IGVsZW1lbnQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0VGV4dCI+Z2V0VGV4dDwvYT4oamF2YS5sYW5nLk9iamVjdCBlbGVtZW50KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48L3RhYmxlPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIEZpZWxkIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj48L3RkPjwvdHI+PC90YWJsZT48aDI+PGEgbmFtZT0iZmllbGRfRElSVFlfSU5ESUNBVE9SIj5ESVJUWV9JTkRJQ0FUT1I8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBjaGFyIDxzdHJvbmc+RElSVFlfSU5ESUNBVE9SPC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5BIHN0cmluZyB1c2VkIHRvIGluZGljYXRlIHRoYXQgYW4gZWRpdG9yIGlzIGRpcnR5PC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWFBhdGhOYXZpZ2F0b3IuRWRpdG9yUmVmZXJlbmNlTGFiZWxQcm92aWRlciI+WFBhdGhOYXZpZ2F0b3IuRWRpdG9yUmVmZXJlbmNlTGFiZWxQcm92aWRlcjwvYT48L2gyPjxwPjxjb2RlPnBhY2thZ2UtcHJpdmF0ZSA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yLkVkaXRvclJlZmVyZW5jZUxhYmVsUHJvdmlkZXI8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0SW1hZ2UiPmdldEltYWdlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIEltYWdlIDxzdHJvbmc+Z2V0SW1hZ2U8L3N0cm9uZz4oamF2YS5sYW5nLk9iamVjdCBlbGVtZW50KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5lbGVtZW50PC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+SW1hZ2U8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFRleHQiPmdldFRleHQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPmdldFRleHQ8L3N0cm9uZz4oamF2YS5sYW5nLk9iamVjdCBlbGVtZW50KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5lbGVtZW50PC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+amF2YS5sYW5nLlN0cmluZzwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuUmVmcmVzaEFjdGlvbi5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuUmVmcmVzaEFjdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZmJlYzNhLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlJlZnJlc2hBY3Rpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPGh0bWw+PGJvZHk+PHA+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+UGFja2FnZSBvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3M8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgWFBhdGhOYXZpZ2F0b3IuUmVmcmVzaEFjdGlvbjwvaDI+PGJyPjxocj48cHJlPnBhY2thZ2UtcHJpdmF0ZSBjbGFzcyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yLlJlZnJlc2hBY3Rpb248L3N0cm9uZz4KLWV4dGVuZHMgQWN0aW9uPC9wcmU+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hQYXRoTmF2aWdhdG9yLlJlZnJlc2hBY3Rpb24iPlhQYXRoTmF2aWdhdG9yLlJlZnJlc2hBY3Rpb248L2E+PC9zdHJvbmc+KCk8L2NvZGU+PC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29scz0iMiIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIj48aDI+TWV0aG9kIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3J1biI+cnVuPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWFBhdGhOYXZpZ2F0b3IuUmVmcmVzaEFjdGlvbiI+WFBhdGhOYXZpZ2F0b3IuUmVmcmVzaEFjdGlvbjwvYT48L2gyPjxwPjxjb2RlPnBhY2thZ2UtcHJpdmF0ZSA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yLlJlZnJlc2hBY3Rpb248L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfcnVuIj5ydW48L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnJ1bjwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuU2hvd0luU291cmNlQWN0aW9uLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5TaG93SW5Tb3VyY2VBY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWVjYjA4ZS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5TaG93SW5Tb3VyY2VBY3Rpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotPGh0bWw+PGJvZHk+PHA+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+UGFja2FnZSBvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3M8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgWFBhdGhOYXZpZ2F0b3IuU2hvd0luU291cmNlQWN0aW9uPC9oMj48YnI+PGhyPjxwcmU+cGFja2FnZS1wcml2YXRlIGNsYXNzIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3IuU2hvd0luU291cmNlQWN0aW9uPC9zdHJvbmc+Ci1leHRlbmRzIEFjdGlvbjwvcHJlPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2Nvbl9YUGF0aE5hdmlnYXRvci5TaG93SW5Tb3VyY2VBY3Rpb24iPlhQYXRoTmF2aWdhdG9yLlNob3dJblNvdXJjZUFjdGlvbjwvYT48L3N0cm9uZz4oKTwvY29kZT48L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5NZXRob2QgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfcnVuIj5ydW48L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBDb25zdHJ1Y3RvciBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImNvbl9YUGF0aE5hdmlnYXRvci5TaG93SW5Tb3VyY2VBY3Rpb24iPlhQYXRoTmF2aWdhdG9yLlNob3dJblNvdXJjZUFjdGlvbjwvYT48L2gyPjxwPjxjb2RlPnBhY2thZ2UtcHJpdmF0ZSA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yLlNob3dJblNvdXJjZUFjdGlvbjwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgTWV0aG9kcyBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9Im1ldGhvZF9ydW4iPnJ1bjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cnVuPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aHI+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5YTUxFZGl0b3JzQ29udGVudFByb3ZpZGVyLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5YTUxFZGl0b3JzQ29udGVudFByb3ZpZGVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQzNTczNTkuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuWE1MRWRpdG9yc0NvbnRlbnRQcm92aWRlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotPGh0bWw+PGJvZHk+PHA+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+UGFja2FnZSBvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3M8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgWFBhdGhOYXZpZ2F0b3IuWE1MRWRpdG9yc0NvbnRlbnRQcm92aWRlcjwvaDI+PGJyPjxocj48cHJlPnBhY2thZ2UtcHJpdmF0ZSBjbGFzcyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yLlhNTEVkaXRvcnNDb250ZW50UHJvdmlkZXI8L3N0cm9uZz4KLWV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvcHJlPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2Nvbl9YUGF0aE5hdmlnYXRvci5YTUxFZGl0b3JzQ29udGVudFByb3ZpZGVyIj5YUGF0aE5hdmlnYXRvci5YTUxFZGl0b3JzQ29udGVudFByb3ZpZGVyPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9kaXNwb3NlIj5kaXNwb3NlPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGphdmEubGFuZy5PYmplY3RbXTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRFbGVtZW50cyI+Z2V0RWxlbWVudHM8L2E+KGphdmEubGFuZy5PYmplY3QgaW5wdXRFbGVtZW50KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2lucHV0Q2hhbmdlZCI+aW5wdXRDaGFuZ2VkPC9hPihWaWV3ZXIgdmlld2VyCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuT2JqZWN0IG9sZElucHV0Ci0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuT2JqZWN0IG5ld0lucHV0KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48L3RhYmxlPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIENvbnN0cnVjdG9yIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj48L3RkPjwvdHI+PC90YWJsZT48aDI+PGEgbmFtZT0iY29uX1hQYXRoTmF2aWdhdG9yLlhNTEVkaXRvcnNDb250ZW50UHJvdmlkZXIiPlhQYXRoTmF2aWdhdG9yLlhNTEVkaXRvcnNDb250ZW50UHJvdmlkZXI8L2E+PC9oMj48cD48Y29kZT5wYWNrYWdlLXByaXZhdGUgPHN0cm9uZz5YUGF0aE5hdmlnYXRvci5YTUxFZGl0b3JzQ29udGVudFByb3ZpZGVyPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBNZXRob2RzIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj48L3RkPjwvdHI+PC90YWJsZT48aDI+PGEgbmFtZT0ibWV0aG9kX2Rpc3Bvc2UiPmRpc3Bvc2U8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPmRpc3Bvc2U8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldEVsZW1lbnRzIj5nZXRFbGVtZW50czwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuT2JqZWN0W10gPHN0cm9uZz5nZXRFbGVtZW50czwvc3Ryb25nPihqYXZhLmxhbmcuT2JqZWN0IGlucHV0RWxlbWVudCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+aW5wdXRFbGVtZW50PC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+amF2YS5sYW5nLk9iamVjdFtdPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9pbnB1dENoYW5nZWQiPmlucHV0Q2hhbmdlZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+aW5wdXRDaGFuZ2VkPC9zdHJvbmc+KFZpZXdlciB2aWV3ZXIKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5PYmplY3Qgb2xkSW5wdXQKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5PYmplY3QgbmV3SW5wdXQpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPnZpZXdlcjwvY29kZT48L3A+PHA+PGNvZGU+b2xkSW5wdXQ8L2NvZGU+PC9wPjxwPjxjb2RlPm5ld0lucHV0PC9jb2RlPjwvcD48aHI+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5YUGF0aEFjdGlvbi5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuWFBhdGhBY3Rpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDhhNGQ4Zi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5YUGF0aEFjdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08aHRtbD48Ym9keT48cD48Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5QYWNrYWdlIG9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3M8L3N0cm9uZz48L2ZvbnQ+PC9wPjxocj48aDI+PGZvbnQgc2l6ZT0iLTEiPjxzdHJvbmc+b3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3czwvc3Ryb25nPjwvZm9udD48YnI+Ci0gICAgICAgICAgICAgICBDbGFzcyBYUGF0aE5hdmlnYXRvci5YUGF0aEFjdGlvbjwvaDI+PGJyPjxocj48cHJlPnBhY2thZ2UtcHJpdmF0ZSBjbGFzcyA8c3Ryb25nPlhQYXRoTmF2aWdhdG9yLlhQYXRoQWN0aW9uPC9zdHJvbmc+Ci1leHRlbmRzIEFjdGlvbjwvcHJlPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2Nvbl9YUGF0aE5hdmlnYXRvci5YUGF0aEFjdGlvbiI+WFBhdGhOYXZpZ2F0b3IuWFBhdGhBY3Rpb248L2E+PC9zdHJvbmc+KCk8L2NvZGU+PC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29scz0iMiIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIj48aDI+TWV0aG9kIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3J1biI+cnVuPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWFBhdGhOYXZpZ2F0b3IuWFBhdGhBY3Rpb24iPlhQYXRoTmF2aWdhdG9yLlhQYXRoQWN0aW9uPC9hPjwvaDI+PHA+PGNvZGU+cGFja2FnZS1wcml2YXRlIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3IuWFBhdGhBY3Rpb248L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfcnVuIj5ydW48L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnJ1bjwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjNTEwMzAuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3czwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIFhQYXRoTmF2aWdhdG9yPC9oMj48YnI+PGhyPjxwcmU+cHVibGljIGNsYXNzIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3I8L3N0cm9uZz4KLWV4dGVuZHMgVmlld1BhcnQ8L3ByZT48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5GaWVsZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wcm90ZWN0ZWQgSU1lbWVudG88L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9tZW1lbnRvIj5tZW1lbnRvPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9NRU1FTlRPX1FVRVJZQ09OVEVYVF9ET0NVTUVOVCI+TUVNRU5UT19RVUVSWUNPTlRFWFRfRE9DVU1FTlQ8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX01FTUVOVE9fUVVFUllDT05URVhUX0tFWSI+TUVNRU5UT19RVUVSWUNPTlRFWFRfS0VZPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9NRU1FTlRPX1FVRVJZQ09OVEVYVF9TRUxFQ1RJT04iPk1FTUVOVE9fUVVFUllDT05URVhUX1NFTEVDVElPTjwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfTUVNRU5UT19YUEFUSE5BVklHQVRPUl9TRUNUSU9OIj5NRU1FTlRPX1hQQVRITkFWSUdBVE9SX1NFQ1RJT048L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX01FTUVOVE9fWFBBVEhRVUVSWV9LRVkiPk1FTUVOVE9fWFBBVEhRVUVSWV9LRVk8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHJvdGVjdGVkIGphdmEudXRpbC5XZWFrSGFzaE1hcDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX25hbWVzcGFjZUluZm8iPm5hbWVzcGFjZUluZm88L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hQYXRoTmF2aWdhdG9yIj5YUGF0aE5hdmlnYXRvcjwvYT48L3N0cm9uZz4oKTwvY29kZT48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fWFBhdGhOYXZpZ2F0b3IuRWRpdG9yUmVmZXJlbmNlTGFiZWxQcm92aWRlciI+WFBhdGhOYXZpZ2F0b3IuRWRpdG9yUmVmZXJlbmNlTGFiZWxQcm92aWRlcjwvYT48L3N0cm9uZz4oKTwvY29kZT48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fWFBhdGhOYXZpZ2F0b3IuUmVmcmVzaEFjdGlvbiI+WFBhdGhOYXZpZ2F0b3IuUmVmcmVzaEFjdGlvbjwvYT48L3N0cm9uZz4oKTwvY29kZT48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fWFBhdGhOYXZpZ2F0b3IuU2hvd0luU291cmNlQWN0aW9uIj5YUGF0aE5hdmlnYXRvci5TaG93SW5Tb3VyY2VBY3Rpb248L2E+PC9zdHJvbmc+KCk8L2NvZGU+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hQYXRoTmF2aWdhdG9yLlhNTEVkaXRvcnNDb250ZW50UHJvdmlkZXIiPlhQYXRoTmF2aWdhdG9yLlhNTEVkaXRvcnNDb250ZW50UHJvdmlkZXI8L2E+PC9zdHJvbmc+KCk8L2NvZGU+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hQYXRoTmF2aWdhdG9yLlhQYXRoQWN0aW9uIj5YUGF0aE5hdmlnYXRvci5YUGF0aEFjdGlvbjwvYT48L3N0cm9uZz4oKTwvY29kZT48L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5NZXRob2QgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfY3JlYXRlUGFydENvbnRyb2wiPmNyZWF0ZVBhcnRDb250cm9sPC9hPihDb21wb3NpdGUgcGFyZW50KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoaXMgaXMgYSBjYWxsYmFjayB0aGF0IHdpbGwgYWxsb3cgdXMgdG8gY3JlYXRlIHRoZSB2aWV3ZXIgYW5kIGluaXRpYWxpemUKLSBpdC48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wcm90ZWN0ZWQgb3JnLnczYy5kb20uRWxlbWVudDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRRdWVyeUNvbnRleHQiPmdldFF1ZXJ5Q29udGV4dDwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3RlY3RlZCBvcmcudzNjLmRvbS5Eb2N1bWVudDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRTZWxlY3RlZERvY3VtZW50Ij5nZXRTZWxlY3RlZERvY3VtZW50PC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfaW5pdCI+aW5pdDwvYT4oSVZpZXdTaXRlIHNpdGUKLSAgICAgICAgICwKLSAgICAgIElNZW1lbnRvIG1lbWVudG8pPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHJvdGVjdGVkIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfcmVzdG9yZVN0YXRlIj5yZXN0b3JlU3RhdGU8L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zYXZlU3RhdGUiPnNhdmVTdGF0ZTwvYT4oSU1lbWVudG8gbWVtZW50byk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zZXRGb2N1cyI+c2V0Rm9jdXM8L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBQYXNzaW5nIHRoZSBmb2N1cyByZXF1ZXN0IHRvIHRoZSB2aWV3ZXIncyBjb250cm9sLjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3VwZGF0ZSI+dXBkYXRlPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgRmllbGQgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJmaWVsZF9tZW1lbnRvIj5tZW1lbnRvPC9hPjwvaDI+PHA+PGNvZGU+cHJvdGVjdGVkIElNZW1lbnRvIDxzdHJvbmc+bWVtZW50bzwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9NRU1FTlRPX1FVRVJZQ09OVEVYVF9ET0NVTUVOVCI+TUVNRU5UT19RVUVSWUNPTlRFWFRfRE9DVU1FTlQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+TUVNRU5UT19RVUVSWUNPTlRFWFRfRE9DVU1FTlQ8L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfTUVNRU5UT19RVUVSWUNPTlRFWFRfS0VZIj5NRU1FTlRPX1FVRVJZQ09OVEVYVF9LRVk8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+TUVNRU5UT19RVUVSWUNPTlRFWFRfS0VZPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX01FTUVOVE9fUVVFUllDT05URVhUX1NFTEVDVElPTiI+TUVNRU5UT19RVUVSWUNPTlRFWFRfU0VMRUNUSU9OPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPk1FTUVOVE9fUVVFUllDT05URVhUX1NFTEVDVElPTjwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9NRU1FTlRPX1hQQVRITkFWSUdBVE9SX1NFQ1RJT04iPk1FTUVOVE9fWFBBVEhOQVZJR0FUT1JfU0VDVElPTjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5NRU1FTlRPX1hQQVRITkFWSUdBVE9SX1NFQ1RJT048L3N0cm9uZz48L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0iZmllbGRfTUVNRU5UT19YUEFUSFFVRVJZX0tFWSI+TUVNRU5UT19YUEFUSFFVRVJZX0tFWTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5NRU1FTlRPX1hQQVRIUVVFUllfS0VZPC9zdHJvbmc+PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX25hbWVzcGFjZUluZm8iPm5hbWVzcGFjZUluZm88L2E+PC9oMj48cD48Y29kZT5wcm90ZWN0ZWQgamF2YS51dGlsLldlYWtIYXNoTWFwIDxzdHJvbmc+bmFtZXNwYWNlSW5mbzwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWFBhdGhOYXZpZ2F0b3IiPlhQYXRoTmF2aWdhdG9yPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIDxzdHJvbmc+WFBhdGhOYXZpZ2F0b3I8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfY3JlYXRlUGFydENvbnRyb2wiPmNyZWF0ZVBhcnRDb250cm9sPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5jcmVhdGVQYXJ0Q29udHJvbDwvc3Ryb25nPihDb21wb3NpdGUgcGFyZW50KTwvY29kZT48L3A+PHA+VGhpcyBpcyBhIGNhbGxiYWNrIHRoYXQgd2lsbCBhbGxvdyB1cyB0byBjcmVhdGUgdGhlIHZpZXdlciBhbmQgaW5pdGlhbGl6ZQotIGl0LjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+cGFyZW50PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRRdWVyeUNvbnRleHQiPmdldFF1ZXJ5Q29udGV4dDwvYT48L2gyPjxwPjxjb2RlPnByb3RlY3RlZCBvcmcudzNjLmRvbS5FbGVtZW50IDxzdHJvbmc+Z2V0UXVlcnlDb250ZXh0PC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+b3JnLnczYy5kb20uRWxlbWVudDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0U2VsZWN0ZWREb2N1bWVudCI+Z2V0U2VsZWN0ZWREb2N1bWVudDwvYT48L2gyPjxwPjxjb2RlPnByb3RlY3RlZCBvcmcudzNjLmRvbS5Eb2N1bWVudCA8c3Ryb25nPmdldFNlbGVjdGVkRG9jdW1lbnQ8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5vcmcudzNjLmRvbS5Eb2N1bWVudDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfaW5pdCI+aW5pdDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+aW5pdDwvc3Ryb25nPihJVmlld1NpdGUgc2l0ZQotICAgICAgICAgLAotICAgICAgSU1lbWVudG8gbWVtZW50byk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+c2l0ZTwvY29kZT48L3A+PHA+PGNvZGU+bWVtZW50bzwvY29kZT48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPlBhcnRJbml0RXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9yZXN0b3JlU3RhdGUiPnJlc3RvcmVTdGF0ZTwvYT48L2gyPjxwPjxjb2RlPnByb3RlY3RlZCB2b2lkIDxzdHJvbmc+cmVzdG9yZVN0YXRlPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9zYXZlU3RhdGUiPnNhdmVTdGF0ZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+c2F2ZVN0YXRlPC9zdHJvbmc+KElNZW1lbnRvIG1lbWVudG8pPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPm1lbWVudG88L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3NldEZvY3VzIj5zZXRGb2N1czwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+c2V0Rm9jdXM8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+UGFzc2luZyB0aGUgZm9jdXMgcmVxdWVzdCB0byB0aGUgdmlld2VyJ3MgY29udHJvbC48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfdXBkYXRlIj51cGRhdGU8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnVwZGF0ZTwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS5NZXNzYWdlcy5odG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS5NZXNzYWdlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmIxMDNlLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuTWVzc2FnZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54c2wuY29yZTwvc3Ryb25nPjwvZm9udD48YnI+Ci0gICAgICAgICAgICAgICBDbGFzcyBNZXNzYWdlczwvaDI+PGJyPjxocj48cHJlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPk1lc3NhZ2VzPC9zdHJvbmc+Ci1leHRlbmRzIE5MUzwvcHJlPjxwPjwvcD48cD48L3A+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29scz0iMiIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIj48aDI+RmllbGQgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hJbmNsdWRlVGFza18wIj5YSW5jbHVkZVRhc2tfMDwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUT0RPOiBBZGQgSmF2YURvYzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YSW5jbHVkZVRhc2tfMSI+WEluY2x1ZGVUYXNrXzE8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWEluY2x1ZGVUYXNrXzIiPlhJbmNsdWRlVGFza18yPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRPRE86IEFkZCBKYXZhRG9jPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hJbmNsdWRlVGFza18zIj5YSW5jbHVkZVRhc2tfMzwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUT0RPOiBBZGQgSmF2YURvYzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YSW5jbHVkZVRhc2tfNCI+WEluY2x1ZGVUYXNrXzQ8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWEluY2x1ZGVUYXNrXzUiPlhJbmNsdWRlVGFza181PC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRPRE86IEFkZCBKYXZhRG9jPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hJbmNsdWRlVGFza182Ij5YSW5jbHVkZVRhc2tfNjwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUT0RPOiBBZGQgSmF2YURvYzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YSW5jbHVkZVRhc2tfNyI+WEluY2x1ZGVUYXNrXzc8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWEluY2x1ZGVUYXNrXzgiPlhJbmNsdWRlVGFza184PC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRPRE86IEFkZCBKYXZhRG9jPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hJbmNsdWRlVGFza185Ij5YSW5jbHVkZVRhc2tfOTwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUT0RPOiBBZGQgSmF2YURvYzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YU0xDb3JlUGx1Z2luX2JhZEluaXRpYWxpemF0aW9uRGF0YSI+WFNMQ29yZVBsdWdpbl9iYWRJbml0aWFsaXphdGlvbkRhdGE8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFNMQ29yZVBsdWdpbl9jb3JlRXJyb3IiPlhTTENvcmVQbHVnaW5fY29yZUVycm9yPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRPRE86IEFkZCBKYXZhRG9jPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTENvcmVQbHVnaW5fcGFyc2VyQ29uZmlndXJhdGlvbiI+WFNMQ29yZVBsdWdpbl9wYXJzZXJDb25maWd1cmF0aW9uPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRPRE86IEFkZCBKYXZhRG9jPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl8xIj5YU0xWYWxpZGF0b3JfMTwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFNMVmFsaWRhdG9yXzEwIj5YU0xWYWxpZGF0b3JfMTA8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgU3R5bGVzaGVldCBpbXBvcnRpbmcgaXRzZWxmPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl8xMSI+WFNMVmFsaWRhdG9yXzExPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRlbXBsYXRlIGNvbmZsaWN0IChpbnRlcm5hbCk8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFNMVmFsaWRhdG9yXzEyIj5YU0xWYWxpZGF0b3JfMTI8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVGVtcGxhdGUgY29uZmxpY3QgKGluY2x1ZGVkKTwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YU0xWYWxpZGF0b3JfMTMiPlhTTFZhbGlkYXRvcl8xMzwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUZW1wbGF0ZSBjb25mbGljdCAoZXh0ZXJuYWwpPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl8xNCI+WFNMVmFsaWRhdG9yXzE0PC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFBhcmFtZXRlciBtaXNzaW5nIG5hbWUgYXR0cmlidXRlPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl8xNSI+WFNMVmFsaWRhdG9yXzE1PC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFBhcmFtZXRlciB3aXRoIGVtcHR5IG5hbWUgYXR0cmlidXRlPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl8xNiI+WFNMVmFsaWRhdG9yXzE2PC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIER1cGxpY2F0ZSBwYXJhbWV0ZXI8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFNMVmFsaWRhdG9yXzE4Ij5YU0xWYWxpZGF0b3JfMTg8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVW5yZXNvbHZlZCBuYW1lZCB0ZW1wbGF0ZTwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YU0xWYWxpZGF0b3JfMiI+WFNMVmFsaWRhdG9yXzI8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgQ2lyY3VsYXIgcmVmZXJlbmNlPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl8yMCI+WFNMVmFsaWRhdG9yXzIwPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFBhcmFtZXRlciB3aXRob3V0IGRlZmF1bHQgdmFsdWU8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFNMVmFsaWRhdG9yXzIyIj5YU0xWYWxpZGF0b3JfMjI8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgUGFyYW1ldGVyIGRvZXMgbm90IGV4aXN0PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl8yMyI+WFNMVmFsaWRhdG9yXzIzPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIGhyZWYgYXR0cmlidXRlIGlzIHJlcXVpcmVkPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl8zIj5YU0xWYWxpZGF0b3JfMzwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBNaXNzaW5nIHBhcmFtZXRlcjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YU0xWYWxpZGF0b3JfNCI+WFNMVmFsaWRhdG9yXzQ8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVW5yZXNvbHZlZCBpbmNsdWRlPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hTTFZhbGlkYXRvcl82Ij5YU0xWYWxpZGF0b3JfNjwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBTdHlsZXNoZWV0IGluY2x1ZGVzIGl0c2VsZjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YU0xWYWxpZGF0b3JfOCI+WFNMVmFsaWRhdG9yXzg8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVW5yZXNvbHZlZCBpbXBvcnQ8L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgd2lkdGg9IjEwMCUiPjxoMj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fTWVzc2FnZXMiPk1lc3NhZ2VzPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfcmVsb2FkTWVzc2FnZXMiPnJlbG9hZE1lc3NhZ2VzPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBGaWVsZCBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza18wIj5YSW5jbHVkZVRhc2tfMDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfMDwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza18xIj5YSW5jbHVkZVRhc2tfMTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfMTwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza18yIj5YSW5jbHVkZVRhc2tfMjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfMjwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza18zIj5YSW5jbHVkZVRhc2tfMzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfMzwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza180Ij5YSW5jbHVkZVRhc2tfNDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfNDwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza181Ij5YSW5jbHVkZVRhc2tfNTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfNTwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza182Ij5YSW5jbHVkZVRhc2tfNjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfNjwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza183Ij5YSW5jbHVkZVRhc2tfNzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfNzwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza184Ij5YSW5jbHVkZVRhc2tfODwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfODwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hJbmNsdWRlVGFza185Ij5YSW5jbHVkZVRhc2tfOTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YSW5jbHVkZVRhc2tfOTwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hTTENvcmVQbHVnaW5fYmFkSW5pdGlhbGl6YXRpb25EYXRhIj5YU0xDb3JlUGx1Z2luX2JhZEluaXRpYWxpemF0aW9uRGF0YTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xDb3JlUGx1Z2luX2JhZEluaXRpYWxpemF0aW9uRGF0YTwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hTTENvcmVQbHVnaW5fY29yZUVycm9yIj5YU0xDb3JlUGx1Z2luX2NvcmVFcnJvcjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xDb3JlUGx1Z2luX2NvcmVFcnJvcjwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hTTENvcmVQbHVnaW5fcGFyc2VyQ29uZmlndXJhdGlvbiI+WFNMQ29yZVBsdWdpbl9wYXJzZXJDb25maWd1cmF0aW9uPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhTTENvcmVQbHVnaW5fcGFyc2VyQ29uZmlndXJhdGlvbjwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VE9ETzogQWRkIEphdmFEb2M8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hTTFZhbGlkYXRvcl8xIj5YU0xWYWxpZGF0b3JfMTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xWYWxpZGF0b3JfMTwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YU0xWYWxpZGF0b3JfMTAiPlhTTFZhbGlkYXRvcl8xMDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xWYWxpZGF0b3JfMTA8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlN0eWxlc2hlZXQgaW1wb3J0aW5nIGl0c2VsZjwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFNMVmFsaWRhdG9yXzExIj5YU0xWYWxpZGF0b3JfMTE8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFNMVmFsaWRhdG9yXzExPC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5UZW1wbGF0ZSBjb25mbGljdCAoaW50ZXJuYWwpPC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YU0xWYWxpZGF0b3JfMTIiPlhTTFZhbGlkYXRvcl8xMjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xWYWxpZGF0b3JfMTI8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlRlbXBsYXRlIGNvbmZsaWN0IChpbmNsdWRlZCk8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hTTFZhbGlkYXRvcl8xMyI+WFNMVmFsaWRhdG9yXzEzPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhTTFZhbGlkYXRvcl8xMzwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VGVtcGxhdGUgY29uZmxpY3QgKGV4dGVybmFsKTwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFNMVmFsaWRhdG9yXzE0Ij5YU0xWYWxpZGF0b3JfMTQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFNMVmFsaWRhdG9yXzE0PC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5QYXJhbWV0ZXIgbWlzc2luZyBuYW1lIGF0dHJpYnV0ZTwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFNMVmFsaWRhdG9yXzE1Ij5YU0xWYWxpZGF0b3JfMTU8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFNMVmFsaWRhdG9yXzE1PC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5QYXJhbWV0ZXIgd2l0aCBlbXB0eSBuYW1lIGF0dHJpYnV0ZTwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFNMVmFsaWRhdG9yXzE2Ij5YU0xWYWxpZGF0b3JfMTY8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFNMVmFsaWRhdG9yXzE2PC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5EdXBsaWNhdGUgcGFyYW1ldGVyPC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YU0xWYWxpZGF0b3JfMTgiPlhTTFZhbGlkYXRvcl8xODwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xWYWxpZGF0b3JfMTg8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlVucmVzb2x2ZWQgbmFtZWQgdGVtcGxhdGU8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hTTFZhbGlkYXRvcl8yIj5YU0xWYWxpZGF0b3JfMjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xWYWxpZGF0b3JfMjwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+Q2lyY3VsYXIgcmVmZXJlbmNlPC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YU0xWYWxpZGF0b3JfMjAiPlhTTFZhbGlkYXRvcl8yMDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xWYWxpZGF0b3JfMjA8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlBhcmFtZXRlciB3aXRob3V0IGRlZmF1bHQgdmFsdWU8L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hTTFZhbGlkYXRvcl8yMiI+WFNMVmFsaWRhdG9yXzIyPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhTTFZhbGlkYXRvcl8yMjwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+UGFyYW1ldGVyIGRvZXMgbm90IGV4aXN0PC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YU0xWYWxpZGF0b3JfMjMiPlhTTFZhbGlkYXRvcl8yMzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xWYWxpZGF0b3JfMjM8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPmhyZWYgYXR0cmlidXRlIGlzIHJlcXVpcmVkPC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YU0xWYWxpZGF0b3JfMyI+WFNMVmFsaWRhdG9yXzM8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFNMVmFsaWRhdG9yXzM8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPk1pc3NpbmcgcGFyYW1ldGVyPC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9YU0xWYWxpZGF0b3JfNCI+WFNMVmFsaWRhdG9yXzQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+WFNMVmFsaWRhdG9yXzQ8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlVucmVzb2x2ZWQgaW5jbHVkZTwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFNMVmFsaWRhdG9yXzYiPlhTTFZhbGlkYXRvcl82PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhTTFZhbGlkYXRvcl82PC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5TdHlsZXNoZWV0IGluY2x1ZGVzIGl0c2VsZjwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFNMVmFsaWRhdG9yXzgiPlhTTFZhbGlkYXRvcl84PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhTTFZhbGlkYXRvcl84PC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5VbnJlc29sdmVkIGltcG9ydDwvdGQ+PC90cj48L3RhYmxlPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIENvbnN0cnVjdG9yIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj48L3RkPjwvdHI+PC90YWJsZT48aDI+PGEgbmFtZT0iY29uX01lc3NhZ2VzIj5NZXNzYWdlczwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyA8c3Ryb25nPk1lc3NhZ2VzPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBNZXRob2RzIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj48L3RkPjwvdHI+PC90YWJsZT48aDI+PGEgbmFtZT0ibWV0aG9kX3JlbG9hZE1lc3NhZ2VzIj5yZWxvYWRNZXNzYWdlczwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cmVsb2FkTWVzc2FnZXM8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+VE9ETzogQWRkIEphdmFEb2M8L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS5WYWxpZGF0aW9uUHJlZmVyZW5jZXMuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuVmFsaWRhdGlvblByZWZlcmVuY2VzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhNmFhODMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS5WYWxpZGF0aW9uUHJlZmVyZW5jZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54c2wuY29yZTwvc3Ryb25nPjwvZm9udD48YnI+Ci0gICAgICAgICAgICAgICBDbGFzcyBWYWxpZGF0aW9uUHJlZmVyZW5jZXM8L2gyPjxicj48aHI+PHByZT5wdWJsaWMgY2xhc3MgPHN0cm9uZz5WYWxpZGF0aW9uUHJlZmVyZW5jZXM8L3N0cm9uZz4KLWV4dGVuZHMgamF2YS5sYW5nLk9iamVjdDwvcHJlPlByZWZlcmVuY2UgY29uc3RhbnRzIHNwZWNpZmljIHRvIHRoZSBYU0wgdmFsaWRhdG9yLjxwPjwvcD48cD48L3A+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29scz0iMiIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIj48aDI+RmllbGQgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX0NBTExfVEVNUExBVEVTIj5DQUxMX1RFTVBMQVRFUzwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUaGUgbGV2ZWwgYXQgd2hpY2ggYW4gdW5yZXNvbHZlZCBjYWxsZWQgdGVtcGxhdGUgaXMgcmVwb3J0ZWQuIAotICZsdDtwJmd0OwotIFZhbHVlIGlzIG9uZSBvZiAmbHQ7Y29kZSZndDtJTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTyZsdDsvY29kZSZndDsKLSAmbHQ7L3AmZ3Q7PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX0NJUkNVTEFSX1JFRiI+Q0lSQ1VMQVJfUkVGPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoZSBsZXZlbCBhdCB3aGljaCBhbiBpbmNsdWRlL2ltcG9ydCBjaXJjdWxhciByZWZlcmVuY2VzIGlzIHJlcG9ydGVkLgotICZsdDtwJmd0OwotIFZhbHVlIGlzIG9uZSBvZiAmbHQ7Y29kZSZndDtJTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTyZsdDsvY29kZSZndDsKLSAmbHQ7L3AmZ3Q7PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX0RVUExJQ0FURV9QQVJBTUVURVIiPkRVUExJQ0FURV9QQVJBTUVURVI8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVGhlIGxldmVsIGF0IHdoaWNoIGEgZHVwbGljYXRlIHBhcmFtZXRlciBpcyByZXBvcnRlZC4KLSAmbHQ7cCZndDsKLSBWYWx1ZSBpcyBvbmUgb2YgJmx0O2NvZGUmZ3Q7SU1hcmtlci5TRVZFUklUWV9FUlJPUiwgSU1hcmtlci5TRVZFUklUWV9XQVJOSU5HLCBJTWFya2VyLlNFVkVSSVRZX0lORk8mbHQ7L2NvZGUmZ3Q7Ci0gJmx0Oy9wJmd0OzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9FTVBUWV9QQVJBTSI+RU1QVFlfUEFSQU08L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVGhlIGxldmVsIGF0IHdoaWNoIGEgcGFyYW1ldGVyIHRoYXQgZG9lcyBub3QgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgYW5kIGRvZXMgbm90IHNwZWNpZnkgYSB2YWx1ZSBpcyByZXBvcnRlZC4KLSAmbHQ7cCZndDsKLSBWYWx1ZSBpcyBvbmUgb2YgJmx0O2NvZGUmZ3Q7SU1hcmtlci5TRVZFUklUWV9FUlJPUiwgSU1hcmtlci5TRVZFUklUWV9XQVJOSU5HLCBJTWFya2VyLlNFVkVSSVRZX0lORk8mbHQ7L2NvZGUmZ3Q7Ci0gJmx0Oy9wJmd0OzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9NQVhfRVJST1JTIj5NQVhfRVJST1JTPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBlcnJvcnMgYWxsb3dlZCBwZXIgWFNMIGZpbGUuCi0gJmx0O3AmZ3Q7Ci0gVmFsdWUgaXMgb2YgdHlwZSAmbHQ7Y29kZSZndDtJbnRlZ2VyJmx0Oy9jb2RlJmd0Oy4KLSAmbHQ7L3AmZ3Q7PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX01JU1NJTkdfSU5DTFVERSI+TUlTU0lOR19JTkNMVURFPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoZSBsZXZlbCBhdCB3aGljaCBhbiB1bnJlc29sdmVkIGltcG9ydCBvciBpbmNsdWRlZCBpcyByZXBvcnRlZC4KLSAmbHQ7cCZndDsKLSBWYWx1ZSBpcyBvbmUgb2YgJmx0O2NvZGUmZ3Q7SU1hcmtlci5TRVZFUklUWV9FUlJPUiwgSU1hcmtlci5TRVZFUklUWV9XQVJOSU5HLCBJTWFya2VyLlNFVkVSSVRZX0lORk8mbHQ7L2NvZGUmZ3Q7Ci0gJmx0Oy9wJmd0OzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9NSVNTSU5HX1BBUkFNIj5NSVNTSU5HX1BBUkFNPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoZSBsZXZlbCBhdCB3aGljaCBhIG1pc3NpbmcgcGFyYW1ldGVyIGlzIHJlcG9ydGVkLgotICZsdDtwJmd0OwotIFZhbHVlIGlzIG9uZSBvZiAmbHQ7Y29kZSZndDtJTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTyZsdDsvY29kZSZndDsKLSAmbHQ7L3AmZ3Q7PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX05BTUVfQVRUUklCVVRFX0VNUFRZIj5OQU1FX0FUVFJJQlVURV9FTVBUWTwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUaGUgbGV2ZWwgYXQgd2hpY2ggYSBwYXJhbWV0ZXIgd2l0aCBhbiBlbXB0eSBuYW1lIGF0dHJpYnV0ZSBpcyByZXBvcnRlZC4KLSAmbHQ7cCZndDsKLSBWYWx1ZSBpcyBvbmUgb2YgJmx0O2NvZGUmZ3Q7SU1hcmtlci5TRVZFUklUWV9FUlJPUiwgSU1hcmtlci5TRVZFUklUWV9XQVJOSU5HLCBJTWFya2VyLlNFVkVSSVRZX0lORk8mbHQ7L2NvZGUmZ3Q7Ci0gJmx0Oy9wJmd0OzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9OQU1FX0FUVFJJQlVURV9NSVNTSU5HIj5OQU1FX0FUVFJJQlVURV9NSVNTSU5HPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoZSBsZXZlbCBhdCB3aGljaCBhIHBhcmFtZXRlciB3aXRob3V0IGEgbmFtZSBhdHRyaWJ1dGUgaXMgcmVwb3J0ZWQuCi0gJmx0O3AmZ3Q7Ci0gVmFsdWUgaXMgb25lIG9mICZsdDtjb2RlJmd0O0lNYXJrZXIuU0VWRVJJVFlfRVJST1IsIElNYXJrZXIuU0VWRVJJVFlfV0FSTklORywgSU1hcmtlci5TRVZFUklUWV9JTkZPJmx0Oy9jb2RlJmd0OwotICZsdDsvcCZndDs8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfVEVNUExBVEVfQ09ORkxJQ1QiPlRFTVBMQVRFX0NPTkZMSUNUPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoZSBsZXZlbCBhdCB3aGljaCBhIHRlbXBsYXRlIGNvbmZsaWN0IGlzIHJlcG9ydGVkLgotICZsdDtwJmd0OwotIFZhbHVlIGlzIG9uZSBvZiAmbHQ7Y29kZSZndDtJTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTyZsdDsvY29kZSZndDsKLSAmbHQ7L3AmZ3Q7PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iODAlIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI2ZpZWxkX1hQQVRIUyI+WFBBVEhTPC9hPjwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFRoZSBsZXZlbCBhdCB3aGljaCBhbiBpbnZhbGlkIFhQYXRoIGlzIHJlcG9ydGVkLgotICZsdDtwJmd0OwotIFZhbHVlIGlzIG9uZSBvZiAmbHQ7Y29kZSZndDtJTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTyZsdDsvY29kZSZndDsKLSAmbHQ7L3AmZ3Q7PC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1ZhbGlkYXRpb25QcmVmZXJlbmNlcyI+VmFsaWRhdGlvblByZWZlcmVuY2VzPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PC90YWJsZT48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBGaWVsZCBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImZpZWxkX0NBTExfVEVNUExBVEVTIj5DQUxMX1RFTVBMQVRFUzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5DQUxMX1RFTVBMQVRFUzwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VGhlIGxldmVsIGF0IHdoaWNoIGFuIHVucmVzb2x2ZWQgY2FsbGVkIHRlbXBsYXRlIGlzIHJlcG9ydGVkLiAKLSA8cD4KLSBWYWx1ZSBpcyBvbmUgb2YgPGNvZGU+SU1hcmtlci5TRVZFUklUWV9FUlJPUiwgSU1hcmtlci5TRVZFUklUWV9XQVJOSU5HLCBJTWFya2VyLlNFVkVSSVRZX0lORk88L2NvZGU+Ci0gPC9wPjwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfQ0lSQ1VMQVJfUkVGIj5DSVJDVUxBUl9SRUY8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+Q0lSQ1VMQVJfUkVGPC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5UaGUgbGV2ZWwgYXQgd2hpY2ggYW4gaW5jbHVkZS9pbXBvcnQgY2lyY3VsYXIgcmVmZXJlbmNlcyBpcyByZXBvcnRlZC4KLSA8cD4KLSBWYWx1ZSBpcyBvbmUgb2YgPGNvZGU+SU1hcmtlci5TRVZFUklUWV9FUlJPUiwgSU1hcmtlci5TRVZFUklUWV9XQVJOSU5HLCBJTWFya2VyLlNFVkVSSVRZX0lORk88L2NvZGU+Ci0gPC9wPjwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfRFVQTElDQVRFX1BBUkFNRVRFUiI+RFVQTElDQVRFX1BBUkFNRVRFUjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5EVVBMSUNBVEVfUEFSQU1FVEVSPC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5UaGUgbGV2ZWwgYXQgd2hpY2ggYSBkdXBsaWNhdGUgcGFyYW1ldGVyIGlzIHJlcG9ydGVkLgotIDxwPgotIFZhbHVlIGlzIG9uZSBvZiA8Y29kZT5JTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTzwvY29kZT4KLSA8L3A+PC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9FTVBUWV9QQVJBTSI+RU1QVFlfUEFSQU08L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+RU1QVFlfUEFSQU08L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlRoZSBsZXZlbCBhdCB3aGljaCBhIHBhcmFtZXRlciB0aGF0IGRvZXMgbm90IGhhdmUgYSBkZWZhdWx0IHZhbHVlIGFuZCBkb2VzIG5vdCBzcGVjaWZ5IGEgdmFsdWUgaXMgcmVwb3J0ZWQuCi0gPHA+Ci0gVmFsdWUgaXMgb25lIG9mIDxjb2RlPklNYXJrZXIuU0VWRVJJVFlfRVJST1IsIElNYXJrZXIuU0VWRVJJVFlfV0FSTklORywgSU1hcmtlci5TRVZFUklUWV9JTkZPPC9jb2RlPgotIDwvcD48L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX01BWF9FUlJPUlMiPk1BWF9FUlJPUlM8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+TUFYX0VSUk9SUzwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VGhlIG1heGltdW0gbnVtYmVyIG9mIGVycm9ycyBhbGxvd2VkIHBlciBYU0wgZmlsZS4KLSA8cD4KLSBWYWx1ZSBpcyBvZiB0eXBlIDxjb2RlPkludGVnZXI8L2NvZGU+LgotIDwvcD48L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX01JU1NJTkdfSU5DTFVERSI+TUlTU0lOR19JTkNMVURFPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPk1JU1NJTkdfSU5DTFVERTwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VGhlIGxldmVsIGF0IHdoaWNoIGFuIHVucmVzb2x2ZWQgaW1wb3J0IG9yIGluY2x1ZGVkIGlzIHJlcG9ydGVkLgotIDxwPgotIFZhbHVlIGlzIG9uZSBvZiA8Y29kZT5JTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTzwvY29kZT4KLSA8L3A+PC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9NSVNTSU5HX1BBUkFNIj5NSVNTSU5HX1BBUkFNPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPk1JU1NJTkdfUEFSQU08L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlRoZSBsZXZlbCBhdCB3aGljaCBhIG1pc3NpbmcgcGFyYW1ldGVyIGlzIHJlcG9ydGVkLgotIDxwPgotIFZhbHVlIGlzIG9uZSBvZiA8Y29kZT5JTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTzwvY29kZT4KLSA8L3A+PC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9OQU1FX0FUVFJJQlVURV9FTVBUWSI+TkFNRV9BVFRSSUJVVEVfRU1QVFk8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+TkFNRV9BVFRSSUJVVEVfRU1QVFk8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlRoZSBsZXZlbCBhdCB3aGljaCBhIHBhcmFtZXRlciB3aXRoIGFuIGVtcHR5IG5hbWUgYXR0cmlidXRlIGlzIHJlcG9ydGVkLgotIDxwPgotIFZhbHVlIGlzIG9uZSBvZiA8Y29kZT5JTWFya2VyLlNFVkVSSVRZX0VSUk9SLCBJTWFya2VyLlNFVkVSSVRZX1dBUk5JTkcsIElNYXJrZXIuU0VWRVJJVFlfSU5GTzwvY29kZT4KLSA8L3A+PC90ZD48L3RyPjwvdGFibGU+PGhyPjxoMj48YSBuYW1lPSJmaWVsZF9OQU1FX0FUVFJJQlVURV9NSVNTSU5HIj5OQU1FX0FUVFJJQlVURV9NSVNTSU5HPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPk5BTUVfQVRUUklCVVRFX01JU1NJTkc8L3N0cm9uZz48L2NvZGU+PC9wPjx0YWJsZT48dHI+PHRkPlRoZSBsZXZlbCBhdCB3aGljaCBhIHBhcmFtZXRlciB3aXRob3V0IGEgbmFtZSBhdHRyaWJ1dGUgaXMgcmVwb3J0ZWQuCi0gPHA+Ci0gVmFsdWUgaXMgb25lIG9mIDxjb2RlPklNYXJrZXIuU0VWRVJJVFlfRVJST1IsIElNYXJrZXIuU0VWRVJJVFlfV0FSTklORywgSU1hcmtlci5TRVZFUklUWV9JTkZPPC9jb2RlPgotIDwvcD48L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1RFTVBMQVRFX0NPTkZMSUNUIj5URU1QTEFURV9DT05GTElDVDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5URU1QTEFURV9DT05GTElDVDwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VGhlIGxldmVsIGF0IHdoaWNoIGEgdGVtcGxhdGUgY29uZmxpY3QgaXMgcmVwb3J0ZWQuCi0gPHA+Ci0gVmFsdWUgaXMgb25lIG9mIDxjb2RlPklNYXJrZXIuU0VWRVJJVFlfRVJST1IsIElNYXJrZXIuU0VWRVJJVFlfV0FSTklORywgSU1hcmtlci5TRVZFUklUWV9JTkZPPC9jb2RlPgotIDwvcD48L3RkPjwvdHI+PC90YWJsZT48aHI+PGgyPjxhIG5hbWU9ImZpZWxkX1hQQVRIUyI+WFBBVEhTPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhQQVRIUzwvc3Ryb25nPjwvY29kZT48L3A+PHRhYmxlPjx0cj48dGQ+VGhlIGxldmVsIGF0IHdoaWNoIGFuIGludmFsaWQgWFBhdGggaXMgcmVwb3J0ZWQuCi0gPHA+Ci0gVmFsdWUgaXMgb25lIG9mIDxjb2RlPklNYXJrZXIuU0VWRVJJVFlfRVJST1IsIElNYXJrZXIuU0VWRVJJVFlfV0FSTklORywgSU1hcmtlci5TRVZFUklUWV9JTkZPPC9jb2RlPgotIDwvcD48L3RkPjwvdHI+PC90YWJsZT48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBDb25zdHJ1Y3RvciBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImNvbl9WYWxpZGF0aW9uUHJlZmVyZW5jZXMiPlZhbGlkYXRpb25QcmVmZXJlbmNlczwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyA8c3Ryb25nPlZhbGlkYXRpb25QcmVmZXJlbmNlczwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS5YU0xDb3JlLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLlhTTENvcmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmIwNmM2YS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLlhTTENvcmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54c2wuY29yZTwvc3Ryb25nPjwvZm9udD48YnI+Ci0gICAgICAgICAgICAgICBDbGFzcyBYU0xDb3JlPC9oMj48YnI+PGhyPjxwcmU+cHVibGljIGNsYXNzIDxzdHJvbmc+WFNMQ29yZTwvc3Ryb25nPgotZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9wcmU+VGhlIGludGVyZmFjZSB0byBhbGwgYXNwZWN0cyBvZiB0aGUgWFNMIGNvcmUgZnVuY3Rpb25hbGl0eS4KLSA8cD4KLSBUaGlzIGlzIHJlc3BvbnNpYmxlIGZvciBidWlsZGluZyBhbmQgbWFpbnRhaW5pbmcgdGhlIGNhY2hlIG9mIGJ1aWx0IFhTTCBtb2RlbHMuCi0gPC9wPjxwPjwvcD48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5GaWVsZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljICBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSI4MCUiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjZmllbGRfWFNMX0NPTlRFTlRfVFlQRSI+WFNMX0NPTlRFTlRfVFlQRTwvYT48L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUaGUgWFNMIGNvbnRlbnQgdHlwZSAoPSBvcmcuZWNsaXBzZS53c3QueG1sLmNvcmUueHNsc291cmNlKTwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9YU0xfTkFNRVNQQUNFX1VSSSI+WFNMX05BTUVTUEFDRV9VUkk8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVGhlIFhTTCBuYW1lc3BhY2UgVVJJICg9IGh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSk8L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5NZXRob2QgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIFN0eWxlc2hlZXRNb2RlbDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9idWlsZFN0eWxlc2hlZXQiPmJ1aWxkU3R5bGVzaGVldDwvYT4oSUZpbGUgZmlsZSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBDb21wbGV0ZWx5IHJlYnVpbGQgdGhlIHNvdXJjZSBmaWxlIGZyb20gaXRzIERPTTwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2NsZWFuIj5jbGVhbjwvYT4oSVByb2plY3QgcHJvamVjdAotICAgICAgICAgLAotICAgICAgSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIENsZWFuIGFsbCBvZiB0aGUgc3R5bGVzaGVldHMgZnJvbSB0aGUgZ2l2ZW4gcHJvamVjdC48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIG9yZy53M2MuZG9tLkF0dHI8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0Q3VycmVudEF0dHJOb2RlIj5nZXRDdXJyZW50QXR0ck5vZGU8L2E+KG9yZy53M2MuZG9tLk5vZGUgbm9kZQotICAgICAgICAgLAotICAgICAgaW50IG9mZnNldCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBSZXR1cm5zIGFuIEF0dHIgbm9kZSBmb3IgdGhlIGN1cnJlbnQgTm9kZSBpZiBvbmUgZXhpdHMgYXQgdGhlIHNwZWNpZmllZCBvZmZzZXQuPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyBvcmcudzNjLmRvbS5Ob2RlPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldEN1cnJlbnROb2RlIj5nZXRDdXJyZW50Tm9kZTwvYT4oSURvY3VtZW50IGRvY3VtZW50Ci0gICAgICAgICAsCi0gICAgICBpbnQgb2Zmc2V0KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIFJldHVybnMgdGhlIGN1cnJlbnQgTm9kZSBhdCB0aGUgc3BlY2lmaWVkIG9mZnNldC48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgc3RhdGljIG9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5YU0xDb3JlPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldEluc3RhbmNlIj5nZXRJbnN0YW5jZTwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIEdldCB0aGUgc2luZ2xldG9uIDxjb2RlPlhTTENvcmU8L2NvZGU+IGluc3RhbmNlLjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBTdHlsZXNoZWV0TW9kZWw8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0U3R5bGVzaGVldCI+Z2V0U3R5bGVzaGVldDwvYT4oSUZpbGUgZmlsZSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBHZXQgdGhlIGNhY2hlZCBzdHlsZXNoZWV0LCBvciBidWlsZCBpdCBpZiBpdCBoYXMgbm90IHlldCBiZWVuIGJ1aWx0LjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgYm9vbGVhbjwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9pc1hNTEZpbGUiPmlzWE1MRmlsZTwvYT4oSUZpbGUgZmlsZSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gZmlsZSBpcyBhbiBYTUwgZmlsZSBieSBpbnNwZWN0aW5nIGl0cyBjb250ZW50IHR5cGVzLjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgYm9vbGVhbjwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9pc1hTTEZpbGUiPmlzWFNMRmlsZTwvYT4oSUZpbGUgZmlsZSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBEZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gZmlsZSBpcyBhbiBYU0wgZmlsZSBieSBpbnNwZWN0aW5nIGl0cyBjb250ZW50IHR5cGVzLjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBzdGF0aWMgYm9vbGVhbjwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9pc1hTTE5hbWVzcGFjZSI+aXNYU0xOYW1lc3BhY2U8L2E+KElET01Ob2RlIG5vZGUpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVGFrZXMgYSBnaXZlbiA8Y29kZT5JRE9NTm9kZTwvY29kZT4gYW5kIHJldHVybnMgd2hldGhlciBpdCAKLSBpcyBwYXJ0IG9mIHRoZSB0aGUgWFNMVCBOYW1lc3BhY2UuPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHN0YXRpYyBJRmlsZTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9yZXNvbHZlRmlsZSI+cmVzb2x2ZUZpbGU8L2E+KElGaWxlIGN1cnJlbnRGaWxlCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHVyaSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBMb2NhdGVzIGEgZmlsZSBmb3IgdGhlIGdpdmVuIGN1cnJlbnQgZmlsZSBhbmQgVVJJLjwvdGQ+PC90cj48L3RhYmxlPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIEZpZWxkIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj48L3RkPjwvdHI+PC90YWJsZT48aDI+PGEgbmFtZT0iZmllbGRfWFNMX0NPTlRFTlRfVFlQRSI+WFNMX0NPTlRFTlRfVFlQRTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBzdGF0aWMgIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5YU0xfQ09OVEVOVF9UWVBFPC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5UaGUgWFNMIGNvbnRlbnQgdHlwZSAoPSBvcmcuZWNsaXBzZS53c3QueG1sLmNvcmUueHNsc291cmNlKTwvdGQ+PC90cj48L3RhYmxlPjxocj48aDI+PGEgbmFtZT0iZmllbGRfWFNMX05BTUVTUEFDRV9VUkkiPlhTTF9OQU1FU1BBQ0VfVVJJPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHN0YXRpYyAgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPlhTTF9OQU1FU1BBQ0VfVVJJPC9zdHJvbmc+PC9jb2RlPjwvcD48dGFibGU+PHRyPjx0ZD5UaGUgWFNMIG5hbWVzcGFjZSBVUkkgKD0gaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtKTwvdGQ+PC90cj48L3RhYmxlPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfYnVpbGRTdHlsZXNoZWV0Ij5idWlsZFN0eWxlc2hlZXQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgU3R5bGVzaGVldE1vZGVsIDxzdHJvbmc+YnVpbGRTdHlsZXNoZWV0PC9zdHJvbmc+KElGaWxlIGZpbGUpPC9jb2RlPjwvcD48cD5Db21wbGV0ZWx5IHJlYnVpbGQgdGhlIHNvdXJjZSBmaWxlIGZyb20gaXRzIERPTTwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZmlsZTwvY29kZT48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPlN0eWxlc2hlZXRNb2RlbDwvY29kZT4gLSB0aGUgc3R5bGVzaGVldCBtb2RlbCwgb3IgbnVsbCBpZiBpdCBjb3VsZCBub3QgYmUgY3JlYXRlZC48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfY2xlYW4iPmNsZWFuPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5jbGVhbjwvc3Ryb25nPihJUHJvamVjdCBwcm9qZWN0Ci0gICAgICAgICAsCi0gICAgICBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpPC9jb2RlPjwvcD48cD5DbGVhbiBhbGwgb2YgdGhlIHN0eWxlc2hlZXRzIGZyb20gdGhlIGdpdmVuIHByb2plY3QuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5wcm9qZWN0PC9jb2RlPiAtIHRoZSBwcm9qZWN0IHRvIGJlIGNsZWFuZWQ8L3A+PHA+PGNvZGU+bW9uaXRvcjwvY29kZT4gLSBhIHByb2dyZXNzIG1vbml0b3IgdG8gdHJhY2sgdGhlIGNsZWFuIHByb2dyZXNzPC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldEN1cnJlbnRBdHRyTm9kZSI+Z2V0Q3VycmVudEF0dHJOb2RlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIG9yZy53M2MuZG9tLkF0dHIgPHN0cm9uZz5nZXRDdXJyZW50QXR0ck5vZGU8L3N0cm9uZz4ob3JnLnczYy5kb20uTm9kZSBub2RlCi0gICAgICAgICAsCi0gICAgICBpbnQgb2Zmc2V0KTwvY29kZT48L3A+PHA+UmV0dXJucyBhbiBBdHRyIG5vZGUgZm9yIHRoZSBjdXJyZW50IE5vZGUgaWYgb25lIGV4aXRzIGF0IHRoZSBzcGVjaWZpZWQgb2Zmc2V0LjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+bm9kZTwvY29kZT48L3A+PHA+PGNvZGU+b2Zmc2V0PC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+b3JnLnczYy5kb20uQXR0cjwvY29kZT4gLSBBIHczYy5kb20uQXR0cjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRDdXJyZW50Tm9kZSI+Z2V0Q3VycmVudE5vZGU8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgb3JnLnczYy5kb20uTm9kZSA8c3Ryb25nPmdldEN1cnJlbnROb2RlPC9zdHJvbmc+KElEb2N1bWVudCBkb2N1bWVudAotICAgICAgICAgLAotICAgICAgaW50IG9mZnNldCk8L2NvZGU+PC9wPjxwPlJldHVybnMgdGhlIGN1cnJlbnQgTm9kZSBhdCB0aGUgc3BlY2lmaWVkIG9mZnNldC48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmRvY3VtZW50PC9jb2RlPjwvcD48cD48Y29kZT5vZmZzZXQ8L2NvZGU+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5vcmcudzNjLmRvbS5Ob2RlPC9jb2RlPiAtIGFuIHczYy5kb20uTm9kZTwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRJbnN0YW5jZSI+Z2V0SW5zdGFuY2U8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLlhTTENvcmUgPHN0cm9uZz5nZXRJbnN0YW5jZTwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD5HZXQgdGhlIHNpbmdsZXRvbiA8Y29kZT5YU0xDb3JlPC9jb2RlPiBpbnN0YW5jZS48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPm9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5YU0xDb3JlPC9jb2RlPiAtIHRoZSA8Y29kZT5YU0xDb3JlPC9jb2RlPiBpbnN0YW5jZTwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRTdHlsZXNoZWV0Ij5nZXRTdHlsZXNoZWV0PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIFN0eWxlc2hlZXRNb2RlbCA8c3Ryb25nPmdldFN0eWxlc2hlZXQ8L3N0cm9uZz4oSUZpbGUgZmlsZSk8L2NvZGU+PC9wPjxwPkdldCB0aGUgY2FjaGVkIHN0eWxlc2hlZXQsIG9yIGJ1aWxkIGl0IGlmIGl0IGhhcyBub3QgeWV0IGJlZW4gYnVpbHQuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5maWxlPC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+U3R5bGVzaGVldE1vZGVsPC9jb2RlPiAtIHNvdXJjZSBmaWxlLCBvciBudWxsIGlmIGNvdWxkIG5vdCBiZSBidWlsdDwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9pc1hNTEZpbGUiPmlzWE1MRmlsZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBib29sZWFuIDxzdHJvbmc+aXNYTUxGaWxlPC9zdHJvbmc+KElGaWxlIGZpbGUpPC9jb2RlPjwvcD48cD5EZXRlcm1pbmUgd2hldGhlciB0aGUgZ2l2ZW4gZmlsZSBpcyBhbiBYTUwgZmlsZSBieSBpbnNwZWN0aW5nIGl0cyBjb250ZW50IHR5cGVzLjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZmlsZTwvY29kZT4gLSB0aGUgZmlsZSB0byBpbnNwZWN0PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5ib29sZWFuPC9jb2RlPiAtIHRydWUgaWYgdGhpcyBmaWxlIGlzIGFuIFhNTCBmaWxlPC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2lzWFNMRmlsZSI+aXNYU0xGaWxlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGJvb2xlYW4gPHN0cm9uZz5pc1hTTEZpbGU8L3N0cm9uZz4oSUZpbGUgZmlsZSk8L2NvZGU+PC9wPjxwPkRldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIGlzIGFuIFhTTCBmaWxlIGJ5IGluc3BlY3RpbmcgaXRzIGNvbnRlbnQgdHlwZXMuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5maWxlPC9jb2RlPiAtIHRoZSBmaWxlIHRvIGluc3BlY3Q8L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmJvb2xlYW48L2NvZGU+IC0gdHJ1ZSBpZiB0aGlzIGZpbGUgaXMgYW4gWFNMIGZpbGU8L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfaXNYU0xOYW1lc3BhY2UiPmlzWFNMTmFtZXNwYWNlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGJvb2xlYW4gPHN0cm9uZz5pc1hTTE5hbWVzcGFjZTwvc3Ryb25nPihJRE9NTm9kZSBub2RlKTwvY29kZT48L3A+PHA+VGFrZXMgYSBnaXZlbiA8Y29kZT5JRE9NTm9kZTwvY29kZT4gYW5kIHJldHVybnMgd2hldGhlciBpdCAKLSBpcyBwYXJ0IG9mIHRoZSB0aGUgWFNMVCBOYW1lc3BhY2UuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5ub2RlPC9jb2RlPiAtIFRoZSBJRE9NTm9kZSB0byBiZSBjaGVja2VkLjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+Ym9vbGVhbjwvY29kZT4gLSBUcnVlIGlmIHBhcnQgb2YgdGhlIFhTTFQgbmFtZXNwYWNlLCBmYWxzZSBvdGhlcndpc2UuPC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3Jlc29sdmVGaWxlIj5yZXNvbHZlRmlsZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBJRmlsZSA8c3Ryb25nPnJlc29sdmVGaWxlPC9zdHJvbmc+KElGaWxlIGN1cnJlbnRGaWxlCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHVyaSk8L2NvZGU+PC9wPjxwPkxvY2F0ZXMgYSBmaWxlIGZvciB0aGUgZ2l2ZW4gY3VycmVudCBmaWxlIGFuZCBVUkkuPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5jdXJyZW50RmlsZTwvY29kZT4gLSB0aGUgZmlsZSB0byByZXNvbHZlIHJlbGF0aXZlIHRvPC9wPjxwPjxjb2RlPnVyaTwvY29kZT4gLSB0aGUgcmVsYXRpdmUgVVJJPC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5JRmlsZTwvY29kZT4gLSB0aGUgZmlsZSBhdCB0aGUgVVJJIHJlbGF0aXZlIHRvIHRoaXMgPGNvZGU+Y3VycmVudEZpbGU8L2NvZGU+PC9wPjxocj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUucmVzb2x2ZXIuUmVzb2x2ZXJFeHRlbnNpb24uaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUucmVzb2x2ZXIuUmVzb2x2ZXJFeHRlbnNpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg2OGM4YS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLnJlc29sdmVyLlJlc29sdmVyRXh0ZW5zaW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi08aHRtbD48Ym9keT48cD48Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5QYWNrYWdlIG9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5yZXNvbHZlcjwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUucmVzb2x2ZXI8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgUmVzb2x2ZXJFeHRlbnNpb248L2gyPjxicj48aHI+PHByZT5wdWJsaWMgY2xhc3MgPHN0cm9uZz5SZXNvbHZlckV4dGVuc2lvbjwvc3Ryb25nPgotZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9wcmU+VE9ETzogSmF2YWRvYzxwPjwvcD48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgd2lkdGg9IjEwMCUiPjxoMj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fUmVzb2x2ZXJFeHRlbnNpb24iPlJlc29sdmVyRXh0ZW5zaW9uPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9yZXNvbHZlIj5yZXNvbHZlPC9hPihJRmlsZSBmaWxlCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIGJhc2VMb2NhdGlvbgotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBwdWJsaWNJZAotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzeXN0ZW1JZCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBDb25zdHJ1Y3RvciBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImNvbl9SZXNvbHZlckV4dGVuc2lvbiI+UmVzb2x2ZXJFeHRlbnNpb248L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgPHN0cm9uZz5SZXNvbHZlckV4dGVuc2lvbjwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgTWV0aG9kcyBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9Im1ldGhvZF9yZXNvbHZlIj5yZXNvbHZlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5yZXNvbHZlPC9zdHJvbmc+KElGaWxlIGZpbGUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgYmFzZUxvY2F0aW9uCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHB1YmxpY0lkCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHN5c3RlbUlkKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5maWxlPC9jb2RlPjwvcD48cD48Y29kZT5iYXNlTG9jYXRpb248L2NvZGU+PC9wPjxwPjxjb2RlPnB1YmxpY0lkPC9jb2RlPjwvcD48cD48Y29kZT5zeXN0ZW1JZDwvY29kZT48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC9wPjxocj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUucmVzb2x2ZXIuWFNMVmVyc2lvbkhhbmRsZXIuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUucmVzb2x2ZXIuWFNMVmVyc2lvbkhhbmRsZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWMwZjMxYS4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLnJlc29sdmVyLlhTTFZlcnNpb25IYW5kbGVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi08aHRtbD48Ym9keT48cD48Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5QYWNrYWdlIG9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5yZXNvbHZlcjwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUucmVzb2x2ZXI8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgWFNMVmVyc2lvbkhhbmRsZXI8L2gyPjxicj48aHI+PHByZT5wdWJsaWMgY2xhc3MgPHN0cm9uZz5YU0xWZXJzaW9uSGFuZGxlcjwvc3Ryb25nPgotZXh0ZW5kcyBvcmcueG1sLnNheC5oZWxwZXJzLkRlZmF1bHRIYW5kbGVyPC9wcmU+QSBzaW1wbGUgWE1MIHBhcnNlciB0byBmaW5kIHRoZSBYU0wgdmVyc2lvbiBvZiBhIGdpdmVuIFhNTCBmaWxlLCBleHBlY3RlZGx5IGEgWFNMVCBzdHlsZXNoZWV0Ljxocj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2Nvbl9YU0xWZXJzaW9uSGFuZGxlciI+WFNMVmVyc2lvbkhhbmRsZXI8L2E+PC9zdHJvbmc+KCk8L2NvZGU+PC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29scz0iMiIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIj48aDI+TWV0aG9kIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2NvbW1lbnQiPmNvbW1lbnQ8L2E+KGNoYXJbXSBjaAotICAgICAgICAgLAotICAgICAgaW50IHN0YXJ0Ci0gICAgICAgICAsCi0gICAgICBpbnQgbGVuZ3RoKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2VuZENEQVRBIj5lbmRDREFUQTwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2VuZERURCI+ZW5kRFREPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZW5kRW50aXR5Ij5lbmRFbnRpdHk8L2E+KGphdmEubGFuZy5TdHJpbmcgbmFtZSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9lcnJvciI+ZXJyb3I8L2E+KG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uIGUpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZmF0YWxFcnJvciI+ZmF0YWxFcnJvcjwvYT4ob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24gZSk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRWZXJzaW9uQXR0cmlidXRlIj5nZXRWZXJzaW9uQXR0cmlidXRlPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgVE9ETzogQWRkIEphdmFkb2M8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgYm9vbGVhbjwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9wYXJzZUNvbnRlbnRzIj5wYXJzZUNvbnRlbnRzPC9hPihvcmcueG1sLnNheC5JbnB1dFNvdXJjZSBjb250ZW50cyk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICBUT0RPOiBBZGQgSmF2YWRvYzwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBvcmcueG1sLnNheC5JbnB1dFNvdXJjZTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9yZXNvbHZlRW50aXR5Ij5yZXNvbHZlRW50aXR5PC9hPihqYXZhLmxhbmcuU3RyaW5nIHB1YmxpY0lkCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHN5c3RlbUlkKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3N0YXJ0Q0RBVEEiPnN0YXJ0Q0RBVEE8L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zdGFydERURCI+c3RhcnREVEQ8L2E+KGphdmEubGFuZy5TdHJpbmcgbmFtZQotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBwdWJsaWNJZAotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzeXN0ZW1JZCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zdGFydEVsZW1lbnQiPnN0YXJ0RWxlbWVudDwvYT4oamF2YS5sYW5nLlN0cmluZyB1cmkKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgZWxlbWVudE5hbWUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgcXVhbGlmaWVkTmFtZQotICAgICAgICAgLAotICAgICAgb3JnLnhtbC5zYXguQXR0cmlidXRlcyBhdHRyaWJ1dGVzKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3N0YXJ0RW50aXR5Ij5zdGFydEVudGl0eTwvYT4oamF2YS5sYW5nLlN0cmluZyBuYW1lKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3dhcm5pbmciPndhcm5pbmc8L2E+KG9yZy54bWwuc2F4LlNBWFBhcnNlRXhjZXB0aW9uIGUpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWFNMVmVyc2lvbkhhbmRsZXIiPlhTTFZlcnNpb25IYW5kbGVyPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIDxzdHJvbmc+WFNMVmVyc2lvbkhhbmRsZXI8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+VE9ETzogQWRkIEphdmFkb2M8L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgTWV0aG9kcyBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9Im1ldGhvZF9jb21tZW50Ij5jb21tZW50PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5jb21tZW50PC9zdHJvbmc+KGNoYXJbXSBjaAotICAgICAgICAgLAotICAgICAgaW50IHN0YXJ0Ci0gICAgICAgICAsCi0gICAgICBpbnQgbGVuZ3RoKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5jaDwvY29kZT48L3A+PHA+PGNvZGU+c3RhcnQ8L2NvZGU+PC9wPjxwPjxjb2RlPmxlbmd0aDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZW5kQ0RBVEEiPmVuZENEQVRBPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5lbmRDREFUQTwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZW5kRFREIj5lbmREVEQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPmVuZERURDwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZW5kRW50aXR5Ij5lbmRFbnRpdHk8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPmVuZEVudGl0eTwvc3Ryb25nPihqYXZhLmxhbmcuU3RyaW5nIG5hbWUpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPm5hbWU8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2Vycm9yIj5lcnJvcjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+ZXJyb3I8L3N0cm9uZz4ob3JnLnhtbC5zYXguU0FYUGFyc2VFeGNlcHRpb24gZSk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZTwvY29kZT48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPm9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZmF0YWxFcnJvciI+ZmF0YWxFcnJvcjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+ZmF0YWxFcnJvcjwvc3Ryb25nPihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbiBlKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5lPC9jb2RlPjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+b3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRWZXJzaW9uQXR0cmlidXRlIj5nZXRWZXJzaW9uQXR0cmlidXRlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5nZXRWZXJzaW9uQXR0cmlidXRlPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPlRPRE86IEFkZCBKYXZhZG9jPC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9wYXJzZUNvbnRlbnRzIj5wYXJzZUNvbnRlbnRzPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGJvb2xlYW4gPHN0cm9uZz5wYXJzZUNvbnRlbnRzPC9zdHJvbmc+KG9yZy54bWwuc2F4LklucHV0U291cmNlIGNvbnRlbnRzKTwvY29kZT48L3A+PHA+VE9ETzogQWRkIEphdmFkb2M8L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmNvbnRlbnRzPC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+Ym9vbGVhbjwvY29kZT48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmEuaW8uSU9FeGNlcHRpb248L2NvZGU+PC9wPjxwPjxjb2RlPmphdmF4LnhtbC5wYXJzZXJzLlBhcnNlckNvbmZpZ3VyYXRpb25FeGNlcHRpb248L2NvZGU+PC9wPjxwPjxjb2RlPm9yZy54bWwuc2F4LlNBWEV4Y2VwdGlvbjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfcmVzb2x2ZUVudGl0eSI+cmVzb2x2ZUVudGl0eTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBvcmcueG1sLnNheC5JbnB1dFNvdXJjZSA8c3Ryb25nPnJlc29sdmVFbnRpdHk8L3N0cm9uZz4oamF2YS5sYW5nLlN0cmluZyBwdWJsaWNJZAotICAgICAgICAgLAotICAgICAgamF2YS5sYW5nLlN0cmluZyBzeXN0ZW1JZCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+cHVibGljSWQ8L2NvZGU+PC9wPjxwPjxjb2RlPnN5c3RlbUlkPC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+b3JnLnhtbC5zYXguSW5wdXRTb3VyY2U8L2NvZGU+PC9wPjxoMz5UaHJvd3M6PC9oMz48cD48Y29kZT5vcmcueG1sLnNheC5TQVhFeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3N0YXJ0Q0RBVEEiPnN0YXJ0Q0RBVEE8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnN0YXJ0Q0RBVEE8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3N0YXJ0RFREIj5zdGFydERURDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+c3RhcnREVEQ8L3N0cm9uZz4oamF2YS5sYW5nLlN0cmluZyBuYW1lCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHB1YmxpY0lkCi0gICAgICAgICAsCi0gICAgICBqYXZhLmxhbmcuU3RyaW5nIHN5c3RlbUlkKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5uYW1lPC9jb2RlPjwvcD48cD48Y29kZT5wdWJsaWNJZDwvY29kZT48L3A+PHA+PGNvZGU+c3lzdGVtSWQ8L2NvZGU+PC9wPjxoMz5UaHJvd3M6PC9oMz48cD48Y29kZT5vcmcueG1sLnNheC5TQVhFeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3N0YXJ0RWxlbWVudCI+c3RhcnRFbGVtZW50PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5zdGFydEVsZW1lbnQ8L3N0cm9uZz4oamF2YS5sYW5nLlN0cmluZyB1cmkKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgZWxlbWVudE5hbWUKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgcXVhbGlmaWVkTmFtZQotICAgICAgICAgLAotICAgICAgb3JnLnhtbC5zYXguQXR0cmlidXRlcyBhdHRyaWJ1dGVzKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT51cmk8L2NvZGU+PC9wPjxwPjxjb2RlPmVsZW1lbnROYW1lPC9jb2RlPjwvcD48cD48Y29kZT5xdWFsaWZpZWROYW1lPC9jb2RlPjwvcD48cD48Y29kZT5hdHRyaWJ1dGVzPC9jb2RlPjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+b3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9zdGFydEVudGl0eSI+c3RhcnRFbnRpdHk8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnN0YXJ0RW50aXR5PC9zdHJvbmc+KGphdmEubGFuZy5TdHJpbmcgbmFtZSk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+bmFtZTwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2Rfd2FybmluZyI+d2FybmluZzwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+d2FybmluZzwvc3Ryb25nPihvcmcueG1sLnNheC5TQVhQYXJzZUV4Y2VwdGlvbiBlKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5lPC9jb2RlPjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+b3JnLnhtbC5zYXguU0FYRXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhbkRlYnVnZ2VyLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhbkRlYnVnZ2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBhYjE1YjYuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5EZWJ1Z2dlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotPGh0bWw+PGJvZHk+PHA+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+UGFja2FnZSBvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXI8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgWGFsYW5EZWJ1Z2dlcjwvaDI+PGJyPjxocj48cHJlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlhhbGFuRGVidWdnZXI8L3N0cm9uZz4KLWV4dGVuZHMgQWJzdHJhY3REZWJ1Z2dlcjwvcHJlPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2Nvbl9YYWxhbkRlYnVnZ2VyIj5YYWxhbkRlYnVnZ2VyPC9hPjwvc3Ryb25nPigpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9hZGRUcmFuc2Zvcm1lciI+YWRkVHJhbnNmb3JtZXI8L2E+KGphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXIgdHJhbnNmb3JtZXIpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZGVidWdnZXJTdXNwZW5kZWQiPmRlYnVnZ2VyU3VzcGVuZGVkPC9hPihCcmVha1BvaW50IGJyZWFrcG9pbnQpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIFZhcmlhYmxlPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldFZhcmlhYmxlIj5nZXRWYXJpYWJsZTwvYT4oaW50IGlkKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIEdldHMgYSB2YXJpYWJsZSBieSBJRDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnBhY2thZ2UtcHJpdmF0ZSB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3NldEN1cnJlbnRUcmFjZUxpc3RlbmVyIj5zZXRDdXJyZW50VHJhY2VMaXN0ZW5lcjwvYT4ob3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblRyYWNlTGlzdGVuZXIgY3VycmVudFRyYWNlTGlzdGVuZXIpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2Rfc2V0VHJhbnNmb3JtZXJGYWN0b3J5Ij5zZXRUcmFuc2Zvcm1lckZhY3Rvcnk8L2E+KGphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJGYWN0b3J5IGZhY3RvcnkpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWGFsYW5EZWJ1Z2dlciI+WGFsYW5EZWJ1Z2dlcjwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyA8c3Ryb25nPlhhbGFuRGVidWdnZXI8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfYWRkVHJhbnNmb3JtZXIiPmFkZFRyYW5zZm9ybWVyPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5hZGRUcmFuc2Zvcm1lcjwvc3Ryb25nPihqYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyIHRyYW5zZm9ybWVyKTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT50cmFuc2Zvcm1lcjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZGVidWdnZXJTdXNwZW5kZWQiPmRlYnVnZ2VyU3VzcGVuZGVkPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5kZWJ1Z2dlclN1c3BlbmRlZDwvc3Ryb25nPihCcmVha1BvaW50IGJyZWFrcG9pbnQpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmJyZWFrcG9pbnQ8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFZhcmlhYmxlIj5nZXRWYXJpYWJsZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBWYXJpYWJsZSA8c3Ryb25nPmdldFZhcmlhYmxlPC9zdHJvbmc+KGludCBpZCk8L2NvZGU+PC9wPjxwPkdldHMgYSB2YXJpYWJsZSBieSBJRDwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+aWQ8L2NvZGU+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5WYXJpYWJsZTwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2Rfc2V0Q3VycmVudFRyYWNlTGlzdGVuZXIiPnNldEN1cnJlbnRUcmFjZUxpc3RlbmVyPC9hPjwvaDI+PHA+PGNvZGU+cGFja2FnZS1wcml2YXRlIHZvaWQgPHN0cm9uZz5zZXRDdXJyZW50VHJhY2VMaXN0ZW5lcjwvc3Ryb25nPihvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuVHJhY2VMaXN0ZW5lciBjdXJyZW50VHJhY2VMaXN0ZW5lcik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+Y3VycmVudFRyYWNlTGlzdGVuZXI8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3NldFRyYW5zZm9ybWVyRmFjdG9yeSI+c2V0VHJhbnNmb3JtZXJGYWN0b3J5PC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5zZXRUcmFuc2Zvcm1lckZhY3Rvcnk8L3N0cm9uZz4oamF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lckZhY3RvcnkgZmFjdG9yeSk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZmFjdG9yeTwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5QcmludFRyYWNlTGlzdGVuZXIuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuUHJpbnRUcmFjZUxpc3RlbmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxNmY0MTEuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5QcmludFRyYWNlTGlzdGVuZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlcjwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIFhhbGFuUHJpbnRUcmFjZUxpc3RlbmVyPC9oMj48YnI+PGhyPjxwcmU+cHVibGljIGNsYXNzIDxzdHJvbmc+WGFsYW5QcmludFRyYWNlTGlzdGVuZXI8L3N0cm9uZz4KLWV4dGVuZHMgUHJpbnRUcmFjZUxpc3RlbmVyPC9wcmU+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hhbGFuUHJpbnRUcmFjZUxpc3RlbmVyIj5YYWxhblByaW50VHJhY2VMaXN0ZW5lcjwvYT48L3N0cm9uZz4oamF2YS5pby5QcmludFdyaXRlciBwdyk8L2NvZGU+PC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29scz0iMiIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIj48aDI+TWV0aG9kIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX190cmFjZSI+X3RyYWNlPC9hPihUcmFjZXJFdmVudCBldik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zZWxlY3RlZCI+c2VsZWN0ZWQ8L2E+KFNlbGVjdGlvbkV2ZW50IGV2KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3NlbGVjdEVuZCI+c2VsZWN0RW5kPC9hPihFbmRTZWxlY3Rpb25FdmVudCBldik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF90cmFjZSI+dHJhY2U8L2E+KFRyYWNlckV2ZW50IGV2KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3RyYWNlRW5kIj50cmFjZUVuZDwvYT4oVHJhY2VyRXZlbnQgZXYpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWGFsYW5QcmludFRyYWNlTGlzdGVuZXIiPlhhbGFuUHJpbnRUcmFjZUxpc3RlbmVyPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIDxzdHJvbmc+WGFsYW5QcmludFRyYWNlTGlzdGVuZXI8L3N0cm9uZz4oamF2YS5pby5QcmludFdyaXRlciBwdyk8L2NvZGU+PC9wPjxwPjwvcD48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBNZXRob2RzIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj48L3RkPjwvdHI+PC90YWJsZT48aDI+PGEgbmFtZT0ibWV0aG9kX190cmFjZSI+X3RyYWNlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5fdHJhY2U8L3N0cm9uZz4oVHJhY2VyRXZlbnQgZXYpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmV2PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9zZWxlY3RlZCI+c2VsZWN0ZWQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnNlbGVjdGVkPC9zdHJvbmc+KFNlbGVjdGlvbkV2ZW50IGV2KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5ldjwvY29kZT48L3A+PGgzPlRocm93czo8L2gzPjxwPjxjb2RlPmphdmF4LnhtbC50cmFuc2Zvcm0uVHJhbnNmb3JtZXJFeGNlcHRpb248L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3NlbGVjdEVuZCI+c2VsZWN0RW5kPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5zZWxlY3RFbmQ8L3N0cm9uZz4oRW5kU2VsZWN0aW9uRXZlbnQgZXYpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmV2PC9jb2RlPjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+amF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lckV4Y2VwdGlvbjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfdHJhY2UiPnRyYWNlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz50cmFjZTwvc3Ryb25nPihUcmFjZXJFdmVudCBldik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZXY8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3RyYWNlRW5kIj50cmFjZUVuZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+dHJhY2VFbmQ8L3N0cm9uZz4oVHJhY2VyRXZlbnQgZXYpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmV2PC9jb2RlPjwvcD48aHI+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblJvb3RTdHlsZUZyYW1lLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblJvb3RTdHlsZUZyYW1lLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1MzgwMGQuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5Sb290U3R5bGVGcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPGh0bWw+PGJvZHk+PHA+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+UGFja2FnZSBvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXI8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgWGFsYW5Sb290U3R5bGVGcmFtZTwvaDI+PGJyPjxocj48cHJlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlhhbGFuUm9vdFN0eWxlRnJhbWU8L3N0cm9uZz4KLWV4dGVuZHMgb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblN0eWxlRnJhbWU8L3ByZT48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgd2lkdGg9IjEwMCUiPjxoMj5Db25zdHJ1Y3RvciBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyPjx0ZD48Y29kZT48c3Ryb25nPjxhIGhyZWY9IiNjb25fWGFsYW5Sb290U3R5bGVGcmFtZSI+WGFsYW5Sb290U3R5bGVGcmFtZTwvYT48L3N0cm9uZz4oVHJhY2VyRXZlbnQgZXZlbnQpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9hZGRWYXJpYWJsZSI+YWRkVmFyaWFibGU8L2E+KG9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5WYXJpYWJsZSB4dmFyKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3RlY3RlZCBqYXZhLnV0aWwuTGlzdDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRHbG9iYWxzIj5nZXRHbG9iYWxzPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIFZhcmlhYmxlPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldFZhcmlhYmxlIj5nZXRWYXJpYWJsZTwvYT4oaW50IGlkKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIEdldHMgYSBWYXJpYWJsZSBieSBJRDwvdGQ+PC90cj48L3RhYmxlPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIENvbnN0cnVjdG9yIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj48L3RkPjwvdHI+PC90YWJsZT48aDI+PGEgbmFtZT0iY29uX1hhbGFuUm9vdFN0eWxlRnJhbWUiPlhhbGFuUm9vdFN0eWxlRnJhbWU8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgPHN0cm9uZz5YYWxhblJvb3RTdHlsZUZyYW1lPC9zdHJvbmc+KFRyYWNlckV2ZW50IGV2ZW50KTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfYWRkVmFyaWFibGUiPmFkZFZhcmlhYmxlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5hZGRWYXJpYWJsZTwvc3Ryb25nPihvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuVmFyaWFibGUgeHZhcik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+eHZhcjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0R2xvYmFscyI+Z2V0R2xvYmFsczwvYT48L2gyPjxwPjxjb2RlPnByb3RlY3RlZCBqYXZhLnV0aWwuTGlzdCA8c3Ryb25nPmdldEdsb2JhbHM8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5qYXZhLnV0aWwuTGlzdDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0VmFyaWFibGUiPmdldFZhcmlhYmxlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIFZhcmlhYmxlIDxzdHJvbmc+Z2V0VmFyaWFibGU8L3N0cm9uZz4oaW50IGlkKTwvY29kZT48L3A+PHA+R2V0cyBhIFZhcmlhYmxlIGJ5IElEPC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5pZDwvY29kZT48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPlZhcmlhYmxlPC9jb2RlPjwvcD48aHI+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblN0eWxlRnJhbWUuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuU3R5bGVGcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNzU2ZDNlLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuU3R5bGVGcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotPGh0bWw+PGJvZHk+PHA+PGZvbnQgc2l6ZT0iKzEiPjxzdHJvbmc+UGFja2FnZSBvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyPC9zdHJvbmc+PC9mb250PjwvcD48aHI+PGgyPjxmb250IHNpemU9Ii0xIj48c3Ryb25nPm9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXI8L3N0cm9uZz48L2ZvbnQ+PGJyPgotICAgICAgICAgICAgICAgQ2xhc3MgWGFsYW5TdHlsZUZyYW1lPC9oMj48YnI+PGhyPjxwcmU+cHVibGljIGNsYXNzIDxzdHJvbmc+WGFsYW5TdHlsZUZyYW1lPC9zdHJvbmc+Ci1leHRlbmRzIFN0eWxlRnJhbWU8L3ByZT48aHI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5GaWVsZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wYWNrYWdlLXByaXZhdGUgVHJhY2VyRXZlbnQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IjgwJSIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNmaWVsZF9ldmVudCI+ZXZlbnQ8L2E+PC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGJyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hhbGFuU3R5bGVGcmFtZSI+WGFsYW5TdHlsZUZyYW1lPC9hPjwvc3Ryb25nPihTdHlsZUZyYW1lIHBhcmVudAotICAgICAgICAgLAotICAgICAgVHJhY2VyRXZlbnQgZXZlbnQpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgaW50PC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldEN1cnJlbnRMaW5lIj5nZXRDdXJyZW50TGluZTwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldEZpbGVuYW1lIj5nZXRGaWxlbmFtZTwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnByb3RlY3RlZCBqYXZhLnV0aWwuTGlzdDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRHbG9iYWxzIj5nZXRHbG9iYWxzPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0TmFtZSI+Z2V0TmFtZTwvYT4oKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBpbnQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0U291cmNlQ3VycmVudExpbmUiPmdldFNvdXJjZUN1cnJlbnRMaW5lPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZ2V0U291cmNlRmlsZW5hbWUiPmdldFNvdXJjZUZpbGVuYW1lPC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGphdmEudXRpbC5MaXN0PC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldFZhcmlhYmxlU3RhY2siPmdldFZhcmlhYmxlU3RhY2s8L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgVHJhY2VyRXZlbnQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfcGVla0VsZW1lbnQiPnBlZWtFbGVtZW50PC9hPigpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIFRyYWNlckV2ZW50PC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3BvcEVsZW1lbnQiPnBvcEVsZW1lbnQ8L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9wdXNoRWxlbWVudCI+cHVzaEVsZW1lbnQ8L2E+KFRyYWNlckV2ZW50IGUpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgRmllbGQgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJmaWVsZF9ldmVudCI+ZXZlbnQ8L2E+PC9oMj48cD48Y29kZT5wYWNrYWdlLXByaXZhdGUgVHJhY2VyRXZlbnQgPHN0cm9uZz5ldmVudDwvc3Ryb25nPjwvY29kZT48L3A+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWGFsYW5TdHlsZUZyYW1lIj5YYWxhblN0eWxlRnJhbWU8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgPHN0cm9uZz5YYWxhblN0eWxlRnJhbWU8L3N0cm9uZz4oU3R5bGVGcmFtZSBwYXJlbnQKLSAgICAgICAgICwKLSAgICAgIFRyYWNlckV2ZW50IGV2ZW50KTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0Q3VycmVudExpbmUiPmdldEN1cnJlbnRMaW5lPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGludCA8c3Ryb25nPmdldEN1cnJlbnRMaW5lPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+aW50PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRGaWxlbmFtZSI+Z2V0RmlsZW5hbWU8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgamF2YS5sYW5nLlN0cmluZyA8c3Ryb25nPmdldEZpbGVuYW1lPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+amF2YS5sYW5nLlN0cmluZzwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0R2xvYmFscyI+Z2V0R2xvYmFsczwvYT48L2gyPjxwPjxjb2RlPnByb3RlY3RlZCBqYXZhLnV0aWwuTGlzdCA8c3Ryb25nPmdldEdsb2JhbHM8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5qYXZhLnV0aWwuTGlzdDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0TmFtZSI+Z2V0TmFtZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+Z2V0TmFtZTwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFNvdXJjZUN1cnJlbnRMaW5lIj5nZXRTb3VyY2VDdXJyZW50TGluZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBpbnQgPHN0cm9uZz5nZXRTb3VyY2VDdXJyZW50TGluZTwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmludDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0U291cmNlRmlsZW5hbWUiPmdldFNvdXJjZUZpbGVuYW1lPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIGphdmEubGFuZy5TdHJpbmcgPHN0cm9uZz5nZXRTb3VyY2VGaWxlbmFtZTwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFZhcmlhYmxlU3RhY2siPmdldFZhcmlhYmxlU3RhY2s8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgamF2YS51dGlsLkxpc3QgPHN0cm9uZz5nZXRWYXJpYWJsZVN0YWNrPC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+amF2YS51dGlsLkxpc3Q8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3BlZWtFbGVtZW50Ij5wZWVrRWxlbWVudDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBUcmFjZXJFdmVudCA8c3Ryb25nPnBlZWtFbGVtZW50PC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+VHJhY2VyRXZlbnQ8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3BvcEVsZW1lbnQiPnBvcEVsZW1lbnQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgVHJhY2VyRXZlbnQgPHN0cm9uZz5wb3BFbGVtZW50PC9zdHJvbmc+KCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+VHJhY2VyRXZlbnQ8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3B1c2hFbGVtZW50Ij5wdXNoRWxlbWVudDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+cHVzaEVsZW1lbnQ8L3N0cm9uZz4oVHJhY2VyRXZlbnQgZSk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZTwvY29kZT48L3A+PGhyPjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5UcmFjZUxpc3RlbmVyLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblRyYWNlTGlzdGVuZXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWU1YmIyNi4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblRyYWNlTGlzdGVuZXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLTxodG1sPjxib2R5PjxwPjxmb250IHNpemU9IisxIj48c3Ryb25nPlBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlcjwvc3Ryb25nPjwvZm9udD48L3A+PGhyPjxoMj48Zm9udCBzaXplPSItMSI+PHN0cm9uZz5vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyPC9zdHJvbmc+PC9mb250Pjxicj4KLSAgICAgICAgICAgICAgIENsYXNzIFhhbGFuVHJhY2VMaXN0ZW5lcjwvaDI+PGJyPjxocj48cHJlPnB1YmxpYyBjbGFzcyA8c3Ryb25nPlhhbGFuVHJhY2VMaXN0ZW5lcjwvc3Ryb25nPgotZXh0ZW5kcyBqYXZhLmxhbmcuT2JqZWN0PC9wcmU+PGhyPjx0YWJsZSB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgYmdjb2xvcj0iI0NDQ0NGRiI+PHRkIHdpZHRoPSIxMDAlIj48aDI+Q29uc3RydWN0b3IgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0cj48dGQ+PGNvZGU+PHN0cm9uZz48YSBocmVmPSIjY29uX1hhbGFuVHJhY2VMaXN0ZW5lciI+WGFsYW5UcmFjZUxpc3RlbmVyPC9hPjwvc3Ryb25nPihvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuRGVidWdnZXIgZGVidWdnZXIpPC9jb2RlPjwvdGQ+PC90cj48L3RhYmxlPjxicj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHM9IjIiIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSI+PGgyPk1ldGhvZCBTdW1tYXJ5PC9oMj48L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9leHRlbnNpb24iPmV4dGVuc2lvbjwvYT4oRXh0ZW5zaW9uRXZlbnQgZWUpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIHZvaWQ8L2NvZGU+PC90ZD48dGQgd2lkdGg9IiIgYWxpZ249ImxlZnQiPjxjb2RlPjxhIGhyZWY9IiNtZXRob2RfZXh0ZW5zaW9uRW5kIj5leHRlbnNpb25FbmQ8L2E+KEV4dGVuc2lvbkV2ZW50IGVlKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dlbmVyYXRlZCI+Z2VuZXJhdGVkPC9hPihHZW5lcmF0ZUV2ZW50IGV2KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBWYXJpYWJsZTwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRWYXJpYWJsZSI+Z2V0VmFyaWFibGU8L2E+KGludCBpZCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9zZWxlY3RlZCI+c2VsZWN0ZWQ8L2E+KFNlbGVjdGlvbkV2ZW50IGV2KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3NlbGVjdEVuZCI+c2VsZWN0RW5kPC9hPihFbmRTZWxlY3Rpb25FdmVudCBldik8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgdm9pZDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF90cmFjZSI+dHJhY2U8L2E+KFRyYWNlckV2ZW50IGV2KTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyB2b2lkPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX3RyYWNlRW5kIj50cmFjZUVuZDwvYT4oVHJhY2VyRXZlbnQgZXYpPC9jb2RlPjxicj4KLSAgICAgICAgICAgICAgICZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOwotICAgICAgICAgICAgICAgPC90ZD48L3RyPjwvdGFibGU+PGhyPjx0YWJsZSBjb2xzPSIyIiB3aWR0aD0iMTAwJSIgYm9yZGVyPSIxIj48dHIgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiIGJnY29sb3I9IiNDQ0NDRkYiIGFsaWduPSJsZWZ0Ij48dGQ+PGgyPgotICAgICAgICAgICAgICAgICAgQ29uc3RydWN0b3IgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJjb25fWGFsYW5UcmFjZUxpc3RlbmVyIj5YYWxhblRyYWNlTGlzdGVuZXI8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgPHN0cm9uZz5YYWxhblRyYWNlTGlzdGVuZXI8L3N0cm9uZz4ob3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhbkRlYnVnZ2VyIGRlYnVnZ2VyKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfZXh0ZW5zaW9uIj5leHRlbnNpb248L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPmV4dGVuc2lvbjwvc3Ryb25nPihFeHRlbnNpb25FdmVudCBlZSk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZWU8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2V4dGVuc2lvbkVuZCI+ZXh0ZW5zaW9uRW5kPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz5leHRlbnNpb25FbmQ8L3N0cm9uZz4oRXh0ZW5zaW9uRXZlbnQgZWUpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmVlPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZW5lcmF0ZWQiPmdlbmVyYXRlZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+Z2VuZXJhdGVkPC9zdHJvbmc+KEdlbmVyYXRlRXZlbnQgZXYpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmV2PC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF9nZXRWYXJpYWJsZSI+Z2V0VmFyaWFibGU8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgVmFyaWFibGUgPHN0cm9uZz5nZXRWYXJpYWJsZTwvc3Ryb25nPihpbnQgaWQpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmlkPC9jb2RlPjwvcD48aDM+UmV0dXJuczwvaDM+PHA+PGNvZGU+VmFyaWFibGU8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX3NlbGVjdGVkIj5zZWxlY3RlZDwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyB2b2lkIDxzdHJvbmc+c2VsZWN0ZWQ8L3N0cm9uZz4oU2VsZWN0aW9uRXZlbnQgZXYpPC9jb2RlPjwvcD48cD48L3A+PGgzPlBhcmFtZXRlcnM8L2gzPjxwPjxjb2RlPmV2PC9jb2RlPjwvcD48aDM+VGhyb3dzOjwvaDM+PHA+PGNvZGU+amF2YXgueG1sLnRyYW5zZm9ybS5UcmFuc2Zvcm1lckV4Y2VwdGlvbjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2Rfc2VsZWN0RW5kIj5zZWxlY3RFbmQ8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnNlbGVjdEVuZDwvc3Ryb25nPihFbmRTZWxlY3Rpb25FdmVudCBldik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZXY8L2NvZGU+PC9wPjxoMz5UaHJvd3M6PC9oMz48cD48Y29kZT5qYXZheC54bWwudHJhbnNmb3JtLlRyYW5zZm9ybWVyRXhjZXB0aW9uPC9jb2RlPjwvcD48aHI+PGgyPjxhIG5hbWU9Im1ldGhvZF90cmFjZSI+dHJhY2U8L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgdm9pZCA8c3Ryb25nPnRyYWNlPC9zdHJvbmc+KFRyYWNlckV2ZW50IGV2KTwvY29kZT48L3A+PHA+PC9wPjxoMz5QYXJhbWV0ZXJzPC9oMz48cD48Y29kZT5ldjwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfdHJhY2VFbmQiPnRyYWNlRW5kPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIHZvaWQgPHN0cm9uZz50cmFjZUVuZDwvc3Ryb25nPihUcmFjZXJFdmVudCBldik8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+ZXY8L2NvZGU+PC9wPjxocj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuVmFyaWFibGUuaHRtbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuVmFyaWFibGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk2YTgxOC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblZhcmlhYmxlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCwwIEBACi08aHRtbD48Ym9keT48cD48Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5QYWNrYWdlIG9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXI8L3N0cm9uZz48L2ZvbnQ+PC9wPjxocj48aDI+PGZvbnQgc2l6ZT0iLTEiPjxzdHJvbmc+b3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlcjwvc3Ryb25nPjwvZm9udD48YnI+Ci0gICAgICAgICAgICAgICBDbGFzcyBYYWxhblZhcmlhYmxlPC9oMj48YnI+PGhyPjxwcmU+cHVibGljIGNsYXNzIDxzdHJvbmc+WGFsYW5WYXJpYWJsZTwvc3Ryb25nPgotZXh0ZW5kcyBWYXJpYWJsZTwvcHJlPjxocj48dGFibGUgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGJnY29sb3I9IiNDQ0NDRkYiPjx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+PC90cj48dHI+PHRkPjxjb2RlPjxzdHJvbmc+PGEgaHJlZj0iI2Nvbl9YYWxhblZhcmlhYmxlIj5YYWxhblZhcmlhYmxlPC9hPjwvc3Ryb25nPihvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuU3R5bGVGcmFtZSB4YWxhblN0eWxlRnJhbWUKLSAgICAgICAgICwKLSAgICAgIFZhcmlhYmxlU3RhY2sgdmFyU3RhY2sKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgc2NvcGUKLSAgICAgICAgICwKLSAgICAgIGludCBzbG90TnVtYmVyCi0gICAgICAgICAsCi0gICAgICBFbGVtVmFyaWFibGUgZWxlbVZhcmlhYmxlKTwvY29kZT48L3RkPjwvdHI+PC90YWJsZT48YnI+PHRhYmxlIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzPSIyIiBiZ2NvbG9yPSIjQ0NDQ0ZGIj48dGQgY29sc3Bhbj0iMiIgd2lkdGg9IjEwMCUiPjxoMj5NZXRob2QgU3VtbWFyeTwvaDI+PC90ZD48L3RyPjx0ciB2YWxpZ249InRvcCI+PHRkIHdpZHRoPSIyMCUiIGFsaWduPSJyaWdodCI+PGNvZGU+cHVibGljIGludDwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9jb21wYXJlVG8iPmNvbXBhcmVUbzwvYT4oamF2YS5sYW5nLk9iamVjdCBhcmcwKTwvY29kZT48YnI+Ci0gICAgICAgICAgICAgICAmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsKLSAgICAgICAgICAgICAgIDwvdGQ+PC90cj48dHIgdmFsaWduPSJ0b3AiPjx0ZCB3aWR0aD0iMjAlIiBhbGlnbj0icmlnaHQiPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvdGQ+PHRkIHdpZHRoPSIiIGFsaWduPSJsZWZ0Ij48Y29kZT48YSBocmVmPSIjbWV0aG9kX2dldFR5cGUiPmdldFR5cGU8L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PHRyIHZhbGlnbj0idG9wIj48dGQgd2lkdGg9IjIwJSIgYWxpZ249InJpZ2h0Ij48Y29kZT5wdWJsaWMgamF2YS5sYW5nLlN0cmluZzwvY29kZT48L3RkPjx0ZCB3aWR0aD0iIiBhbGlnbj0ibGVmdCI+PGNvZGU+PGEgaHJlZj0iI21ldGhvZF9nZXRWYWx1ZSI+Z2V0VmFsdWU8L2E+KCk8L2NvZGU+PGJyPgotICAgICAgICAgICAgICAgJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Ci0gICAgICAgICAgICAgICA8L3RkPjwvdHI+PC90YWJsZT48aHI+PHRhYmxlIGNvbHM9IjIiIHdpZHRoPSIxMDAlIiBib3JkZXI9IjEiPjx0ciBjb2xzcGFuPSIyIiB3aWR0aD0iMTAwJSIgYmdjb2xvcj0iI0NDQ0NGRiIgYWxpZ249ImxlZnQiPjx0ZD48aDI+Ci0gICAgICAgICAgICAgICAgICBDb25zdHJ1Y3RvciBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+PC90ZD48L3RyPjwvdGFibGU+PGgyPjxhIG5hbWU9ImNvbl9YYWxhblZhcmlhYmxlIj5YYWxhblZhcmlhYmxlPC9hPjwvaDI+PHA+PGNvZGU+cHVibGljIDxzdHJvbmc+WGFsYW5WYXJpYWJsZTwvc3Ryb25nPihvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuU3R5bGVGcmFtZSB4YWxhblN0eWxlRnJhbWUKLSAgICAgICAgICwKLSAgICAgIFZhcmlhYmxlU3RhY2sgdmFyU3RhY2sKLSAgICAgICAgICwKLSAgICAgIGphdmEubGFuZy5TdHJpbmcgc2NvcGUKLSAgICAgICAgICwKLSAgICAgIGludCBzbG90TnVtYmVyCi0gICAgICAgICAsCi0gICAgICBFbGVtVmFyaWFibGUgZWxlbVZhcmlhYmxlKTwvY29kZT48L3A+PHA+PC9wPjxocj48dGFibGUgY29scz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0iMSI+PHRyIGNvbHNwYW49IjIiIHdpZHRoPSIxMDAlIiBiZ2NvbG9yPSIjQ0NDQ0ZGIiBhbGlnbj0ibGVmdCI+PHRkPjxoMj4KLSAgICAgICAgICAgICAgICAgIE1ldGhvZHMgRGV0YWlsCi0gICAgICAgICAgICAgICA8L2gyPjwvdGQ+PC90cj48L3RhYmxlPjxoMj48YSBuYW1lPSJtZXRob2RfY29tcGFyZVRvIj5jb21wYXJlVG88L2E+PC9oMj48cD48Y29kZT5wdWJsaWMgaW50IDxzdHJvbmc+Y29tcGFyZVRvPC9zdHJvbmc+KGphdmEubGFuZy5PYmplY3QgYXJnMCk8L2NvZGU+PC9wPjxwPjwvcD48aDM+UGFyYW1ldGVyczwvaDM+PHA+PGNvZGU+YXJnMDwvY29kZT48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmludDwvY29kZT48L3A+PGhyPjxoMj48YSBuYW1lPSJtZXRob2RfZ2V0VHlwZSI+Z2V0VHlwZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+Z2V0VHlwZTwvc3Ryb25nPigpPC9jb2RlPjwvcD48cD48L3A+PGgzPlJldHVybnM8L2gzPjxwPjxjb2RlPmphdmEubGFuZy5TdHJpbmc8L2NvZGU+PC9wPjxocj48aDI+PGEgbmFtZT0ibWV0aG9kX2dldFZhbHVlIj5nZXRWYWx1ZTwvYT48L2gyPjxwPjxjb2RlPnB1YmxpYyBqYXZhLmxhbmcuU3RyaW5nIDxzdHJvbmc+Z2V0VmFsdWU8L3N0cm9uZz4oKTwvY29kZT48L3A+PHA+PC9wPjxoMz5SZXR1cm5zPC9oMz48cD48Y29kZT5qYXZhLmxhbmcuU3RyaW5nPC9jb2RlPjwvcD48aHI+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvdG9jLmh0bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2h0bWwvdG9jLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyNmYwYTkuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9odG1sL3RvYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KLQotPGh0bWw+Ci08aGVhZD4KLQk8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KLQk8dGl0bGU+VGFibGUgb2YgQ29udGVudHM8L3RpdGxlPgotPC9oZWFkPgotCi08Ym9keT4KLTxoMT5UYWJsZSBvZiBDb250ZW50czwvaDE+Ci1QbGVhc2UgZW50ZXIgeW91ciB0ZXh0IGhlcmUuCi08L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9qZWx0b2h0bWwueHNsIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9qZWx0b2h0bWwueHNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNGFmMDBmLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvamVsdG9odG1sLnhzbAorKysgL2Rldi9udWxsCkBAIC0xLDM5MyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCEtLSAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDggU3RhbmRhcmRzIGZvciBUZWNobm9sb2d5IGluIEF1dG9tb3RpdmUgUmV0YWlsIGFuZCBvdGhlcnMuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICoKLSAqIENvbnRyaWJ1dG9yczoKLSAqICAgICBEYXZpZCBDYXJ2ZXIgLSBidWcgMjMxNDcyIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotIC0tPgotPHhzbDpzdHlsZXNoZWV0IHZlcnNpb249IjEuMCIKLSAgICAgICAgICAgICAgICB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKLSAgICAgICAgICAgICAgICB4bWxuczpyZWRpcmVjdD0iaHR0cDovL3htbC5hcGFjaGUub3JnL3hhbGFuL3JlZGlyZWN0IgotICAgICAgICAgICAgICAgIGV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJyZWRpcmVjdCI+Ci0gICAgPHhzbDpvdXRwdXQgZW5jb2Rpbmc9IlVURi04IiBtZXRob2Q9Imh0bWwiIGluZGVudD0ibm8iIG9taXQteG1sLWRlY2xhcmF0aW9uPSJ5ZXMiLz4KLSAgICAKLSAgICA8IS0tIENyZWF0ZSB0aGUgSFRNTCBzdHJ1Y3R1cmUgLS0+Ci0JPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iLyI+Ci0gICAJCTx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iLy9qZWxjbGFzcyIvPgotCTwveHNsOnRlbXBsYXRlPgotICAgCi0gICAgPCEtLSBUaGlzIGlzIHRoZSBtYWluIHdvcmsgaG9yc2UgdGhhdCBkb2VzIHRoZSBnZW5lcmFsIGxheW91dCBmb3IgdGhlIGNsYXNzIHBhZ2UgLS0+Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iamVsY2xhc3MiPgotICAgICAgPHhzbDp2YXJpYWJsZSBuYW1lPSJvdXRwdXRGaWxlIj4KLSAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBmdWxsdHlwZSIvPgotICAgICAgICA8eHNsOnRleHQ+Lmh0bWw8L3hzbDp0ZXh0PgotICAgICAgPC94c2w6dmFyaWFibGU+Ci0gICAgICA8eHNsOm1lc3NhZ2UgdGVybWluYXRlPSJubyI+Ci0gICAgICAgICA8eHNsOnRleHQ+R2VuZXJhdGluZyBKYXZhRG9jIGZvciA8L3hzbDp0ZXh0PgotICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBmdWxsdHlwZSIvPgotICAgICAgICAgPHhzbDp0ZXh0Pi48L3hzbDp0ZXh0PgotICAgICAgPC94c2w6bWVzc2FnZT4KLSAgICAgIDxyZWRpcmVjdDp3cml0ZSBzZWxlY3Q9IiRvdXRwdXRGaWxlIj4KLSAgICAgICA8aHRtbD4KLSAgICAgICAgIDxib2R5PgotICAgICAgICAgICAgPHA+Ci0gICAgICAgICAgICAgICA8Zm9udCBzaXplPSIrMSI+PHN0cm9uZz5QYWNrYWdlIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAcGFja2FnZSIvPjwvc3Ryb25nPjwvZm9udD4KLSAgICAgICAgICAgIDwvcD4KLSAgICAgICAgICAgIDxoci8+Ci0gICAgICAgICAgICA8aDI+Ci0gICAgICAgICAgICAgICA8Zm9udCBzaXplPSItMSI+PHN0cm9uZz48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHBhY2thZ2UiLz48L3N0cm9uZz48L2ZvbnQ+PGJyLz4KLSAgICAgICAgICAgICAgIENsYXNzIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAdHlwZSIvPgotICAgICAgICAgICAgPC9oMj4KLSAgICAgICAgICAgIDxici8+Ci0gICAgICAgICAgICA8aHIvPgotICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImZvcm1hdC1oZWFkZXIiLz4KLSAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iY29tbWVudC9kZXNjcmlwdGlvbiIvPgotICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJjb21tZW50L2F0dHJpYnV0ZSIvPgotICAgICAgICAgICAgPGhyLz4KLSAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iZGVzY2VuZGFudDo6ZmllbGRzIj4KLSAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIj4KLSAgICAgICAgICAgICAgICAgIDx0ciBiZ2NvbG9yPSIjQ0NDQ0ZGIiBjb2xzPSIyIj4KLSAgICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iMTAwJSIgY29sc3Bhbj0iMiI+PGgyPkZpZWxkIFN1bW1hcnk8L2gyPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJmaWVsZHMvZmllbGQiIG1vZGU9InN1bW1hcnkiPgotICAgICAgICAgICAgICAgICAgICAgPHhzbDpzb3J0IHNlbGVjdD0iQG5hbWUiIG9yZGVyPSJhc2NlbmRpbmciLz4KLSAgICAgICAgICAgICAgICAgIDwveHNsOmFwcGx5LXRlbXBsYXRlcz4KLSAgICAgICAgICAgICAgIDwvdGFibGU+Ci0gICAgICAgICAgICAgICA8YnIvPgotICAgICAgICAgICAgPC94c2w6aWY+Ci0gICAgICAgICAgICA8eHNsOmlmIHRlc3Q9ImRlc2NlbmRhbnQ6OmNvbnN0cnVjdG9yIj4KLSAgICAgICAgICAgICAgIDx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAlIj4KLSAgICAgICAgICAgICAgICAgIDx0ciBiZ2NvbG9yPSIjQ0NDQ0ZGIj4KLSAgICAgICAgICAgICAgICAgICAgIDx0ZCB3aWR0aD0iMTAwJSI+PGgyPkNvbnN0cnVjdG9yIFN1bW1hcnk8L2gyPjwvdGQ+Ci0gICAgICAgICAgICAgICAgICA8L3RyPgotICAgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJkZXNjZW5kYW50Ojpjb25zdHJ1Y3RvciIgbW9kZT0ic3VtbWFyeSI+Ci0gICAgICAgICAgICAgICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIgb3JkZXI9ImFzY2VuZGluZyIvPgotICAgICAgICAgICAgICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgotICAgICAgICAgICAgICAgPC90YWJsZT4KLSAgICAgICAgICAgICAgIDxici8+Ci0gICAgICAgICAgICA8L3hzbDppZj4KLSAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iZGVzY2VuZGFudDo6bWV0aG9kcyI+Ci0gICAgICAgICAgICAgICA8dGFibGUgYm9yZGVyPSIxIiB3aWR0aD0iMTAwJSI+Ci0gICAgICAgICAgICAgICAgICA8dHIgYmdjb2xvcj0iI0NDQ0NGRiIgY29scz0iMiI+Ci0gICAgICAgICAgICAgICAgICAgICA8dGQgd2lkdGg9IjEwMCUiIGNvbHNwYW49IjIiPjxoMj5NZXRob2QgU3VtbWFyeTwvaDI+PC90ZD4KLSAgICAgICAgICAgICAgICAgIDwvdHI+Ci0gICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Im1ldGhvZHMvbWV0aG9kIiBtb2RlPSJzdW1tYXJ5Ij4KLSAgICAgICAgICAgICAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIiBvcmRlcj0iYXNjZW5kaW5nIi8+Ci0gICAgICAgICAgICAgICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+Ci0gICAgICAgICAgICAgICA8L3RhYmxlPgotICAgICAgICAgICAgPC94c2w6aWY+Ci0gICAgICAgICAgICA8aHIvPgotICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJmaWVsZHMiPgotICAgICAgICAgICAgICAgPHhzbDpjYWxsLXRlbXBsYXRlIG5hbWU9ImZpZWxkRGV0YWlsIi8+Ci0gICAgICAgICAgICA8L3hzbDppZj4KLSAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0ibWV0aG9kcy9jb25zdHJ1Y3RvciI+Ci0gICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0iY29uc3RydWN0b3JEZXRhaWwiLz4KLSAgICAgICAgICAgIDwveHNsOmlmPgotICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJtZXRob2RzL21ldGhvZCI+Ci0gICAgICAgICAgICAgICA8eHNsOmNhbGwtdGVtcGxhdGUgbmFtZT0ibWV0aG9kc0RldGFpbCIvPgotICAgICAgICAgICAgPC94c2w6aWY+Ci0gICAgICAgICAgIDwvYm9keT4KLSAgICAgICAgIDwvaHRtbD4KLSAgICAgIDwvcmVkaXJlY3Q6d3JpdGU+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0gICAgCi0gICAgPCEtLSBPdXRwdXQgYW55IGRlc2NyaXB0aW9uIHRoYXQgbWF5IGJlIHRoZXJlIGZvciBjb21tZW50cy4gLS0+Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iY29tbWVudC9kZXNjcmlwdGlvbiI+Ci0gICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iLiIgZGlzYWJsZS1vdXRwdXQtZXNjYXBpbmc9InllcyIvPgotICAgIDwveHNsOnRlbXBsYXRlPgotICAgIAotICAgIDwhLS0gT3V0cHV0IHRoZSB2YXJpb3VzIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGNsYXNzIC0tPgotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNvbW1lbnQvYXR0cmlidXRlIj4KLSAgICAgICAgIDxwPgotICAgICAgICAgICAgPHhzbDpjaG9vc2U+Ci0gICAgICAgICAgICAgICA8eHNsOndoZW4gdGVzdD0iQGF1dGhvciI+Ci0gICAgICAgICAgICAgICAgICA8c3Ryb25nPkF1dGhvcjo8L3N0cm9uZz48YnIvPgotICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9ImRlc2NyaXB0aW9uIiBkaXNhYmxlLW91dHB1dC1lc2NhcGluZz0ieWVzIi8+IAotICAgICAgICAgICAgICAgPC94c2w6d2hlbj4KLSAgICAgICAgICAgICAgIDx4c2w6d2hlbiB0ZXN0PSJAc2VlIj4KLSAgICAgICAgICAgICAgICAgIDxzdHJvbmc+U2VlIEFsc286PC9zdHJvbmc+PGJyLz4KLSAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJkZXNjcmlwdGlvbiIgZGlzYWJsZS1vdXRwdXQtZXNjYXBpbmc9InllcyIvPgotICAgICAgICAgICAgICAgPC94c2w6d2hlbj4KLSAgICAgICAgICAgIDwveHNsOmNob29zZT4KLSAgICAgICAgIDwvcD4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLQotCi0gICAgICAgIDwhLS0gQ3JlYXRlIHRoZSBmaWVsZCBzdW1tYXJ5IHJvd3MgLS0+Ci0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZmllbGQiIG1vZGU9InN1bW1hcnkiPgotICAgICAgICAgPHRyIHZhbGlnbj0idG9wIj4KLSAgICAgICAgICAgIDx0ZCBhbGlnbj0icmlnaHQiIHdpZHRoPSIyMCUiPgotICAgICAgICAgICAgICAgPGNvZGU+Ci0gICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHZpc2liaWxpdHkiLz4KLSAgICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0iQHN0YXRpYyA9ICd0cnVlJyI+Ci0gICAgICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+IHN0YXRpYyA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgICAgPC94c2w6aWY+Ci0gICAgICAgICAgICAgICAgICA8eHNsOnRleHQ+IDwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGZ1bGx0eXBlIi8+ICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICA8L2NvZGU+Ci0gICAgICAgICAgICA8L3RkPgotICAgICAgICAgICAgPHRkIGFsaWduPSJsZWZ0IiB3aWR0aD0iODAlIj4KLSAgICAgICAgICAgICAgIDxjb2RlPgotICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2ZpZWxkX3tAbmFtZX0iPgotICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+Ci0gICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICA8L2NvZGU+Ci0gICAgICAgICAgICAgICA8YnIvPgotICAgICAgICAgICAgICAgJiMxNjA7JiMxNjA7JiMxNjA7JiMxNjA7Ci0gICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iY29tbWVudC9kZXNjcmlwdGlvbiIvPgotICAgICAgICAgICAgPC90ZD4KLSAgICAgICAgIDwvdHI+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0gICAgCi0gICAgCi0gICAgPCEtLSBDcmVhdGUgdGhlIGNvbnN0cnVjdG9ycyByb3dzIC0tPgotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImNvbnN0cnVjdG9yIiBtb2RlPSJzdW1tYXJ5Ij4KLSAgICAgICAgIDx0cj4KLSAgICAgICAgICAgIDx0ZD4KLSAgICAgICAgICAgICAgIDxjb2RlPgotICAgICAgICAgICAgICAgICAgPHN0cm9uZz4KLSAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iI2Nvbl97QG5hbWV9Ij4KLSAgICAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgotICAgICAgICAgICAgICAgICAgICA8L2E+Ci0gICAgICAgICAgICAgICAgICA8L3N0cm9uZz4gICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4oPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0icGFyYW1zIj4KLSAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0icGFyYW1zL3BhcmFtIi8+Ci0gICAgICAgICAgICAgICAgICA8L3hzbDppZj4KLSAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4pPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgIDwvY29kZT4KLSAgICAgICAgICAgIDwvdGQ+Ci0gICAgICAgICA8L3RyPgotICAgIDwveHNsOnRlbXBsYXRlPgotICAgIAotICAgIAotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9InBhcmFtIj4KLSAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAZnVsbHR5cGUiLz48eHNsOnRleHQ+IDwveHNsOnRleHQ+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+Ci0gICAgICA8eHNsOmlmIHRlc3Q9InBvc2l0aW9uKCkgIT0gbGFzdCgpIj4KLSAgICAgICAgICwKLSAgICAgIDwveHNsOmlmPgotICAgIDwveHNsOnRlbXBsYXRlPgotICAgIAotICAgIDwhLS0gQ3JlYXRlIHRoZSBtZXRob2Qgc3VtbWFyeSByb3dzIC0tPgotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1ldGhvZCIgbW9kZT0ic3VtbWFyeSI+Ci0gICAgICAgICA8dHIgdmFsaWduPSJ0b3AiPgotICAgICAgICAgICAgPHRkIGFsaWduPSJyaWdodCIgd2lkdGg9IjIwJSI+Ci0gICAgICAgICAgICAgICA8Y29kZT4KLSAgICAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAdmlzaWJpbGl0eSIvPgotICAgICAgICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJAc3RhdGljID0gJ3RydWUnIj4KLSAgICAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4gc3RhdGljPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgIDwveHNsOmlmPgotICAgICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBmdWxsdHlwZSIvPiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgPC9jb2RlPgotICAgICAgICAgICAgPC90ZD4KLSAgICAgICAgICAgIDx0ZCBhbGlnbj0ibGVmdCIgd2lkdGg9IiI+Ci0gICAgICAgICAgICAgICA8Y29kZT4KLSAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiNtZXRob2Rfe0BuYW1lfSI+Ci0gICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KLSAgICAgICAgICAgICAgICAgIDwvYT4KLSAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4oPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0icGFyYW1zIj4KLSAgICAgICAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0icGFyYW1zL3BhcmFtIi8+Ci0gICAgICAgICAgICAgICAgICA8L3hzbDppZj4KLSAgICAgICAgICAgICAgICAgIDx4c2w6dGV4dD4pPC94c2w6dGV4dD4KLSAgICAgICAgICAgICAgIDwvY29kZT4KLSAgICAgICAgICAgICAgIDxici8+Ci0gICAgICAgICAgICAgICAmIzE2MDsmIzE2MDsmIzE2MDsmIzE2MDsKLSAgICAgICAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iY29tbWVudC9kZXNjcmlwdGlvbiIvPgotICAgICAgICAgICAgPC90ZD4KLSAgICAgICAgIDwvdHI+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0gICAgCi0gICAgCi0gICAgPHhzbDp0ZW1wbGF0ZSBuYW1lPSJmb3JtYXQtaGVhZGVyIj4KLSAgICAgICAgIDxwcmU+Ci08eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHZpc2liaWxpdHkiLz4gY2xhc3MgPHN0cm9uZz48eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHR5cGUiLz48L3N0cm9uZz4KLWV4dGVuZHMgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBzdXBlcmNsYXNzZnVsbHR5cGUiLz4KLSAgICAgICAgIDwvcHJlPgotICAgIDwveHNsOnRlbXBsYXRlPgotICAgIAotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0iZmllbGREZXRhaWwiPgotICAgICAgPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNvbHM9IjIiPgotICAgICAgICAgPHRyIGFsaWduPSJsZWZ0IiBiZ2NvbG9yPSIjQ0NDQ0ZGIiB3aWR0aD0iMTAwJSIgY29sc3Bhbj0iMiI+Ci0gICAgICAgICAgICA8dGQ+Ci0gICAgICAgICAgICAgICA8aDI+Ci0gICAgICAgICAgICAgICAgICBGaWVsZCBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+Ci0gICAgICAgICAgICA8L3RkPgotICAgICAgICAgPC90cj4KLSAgICAgIDwvdGFibGU+Ci0gICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImZpZWxkcy9maWVsZCIgbW9kZT0iZGV0YWlsIj4KLSAgICAgICAgIDx4c2w6c29ydCBzZWxlY3Q9IkBuYW1lIiBvcmRlcj0iYXNjZW5kaW5nIi8+Ci0gICAgICA8L3hzbDphcHBseS10ZW1wbGF0ZXM+Ci0gICAgPC94c2w6dGVtcGxhdGU+Ci0gICAgCi0gICAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD0iZmllbGRzL2ZpZWxkIiBtb2RlPSJkZXRhaWwiPgotICAgICAgPGgyPgotICAgICAgICAgPGEgbmFtZT0iZmllbGRfe0BuYW1lfSI+Ci0gICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KLSAgICAgICAgIDwvYT4KLSAgICAgIDwvaDI+Ci0gICAgICA8cD4KLSAgICAgICAgIDxjb2RlPgotICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkB2aXNpYmlsaXR5Ii8+Ci0gICAgICAgICAgICA8eHNsOmlmIHRlc3Q9IkBzdGF0aWMgPSAndHJ1ZSciPgotICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiBzdGF0aWMgPC94c2w6dGV4dD4KLSAgICAgICAgICAgIDwveHNsOmlmPgotICAgICAgICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBmdWxsdHlwZSIvPgotICAgICAgICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgPHN0cm9uZz4KLSAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgotICAgICAgICAgICAgPC9zdHJvbmc+ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgPC9jb2RlPgotICAgICAgPC9wPgotICAgICAgPHhzbDppZiB0ZXN0PSJjb21tZW50Ij4KLSAgICAgICAgIDx0YWJsZT4KLSAgICAgICAgICAgIDx0cj4KLSAgICAgICAgICAgICAgPHRkPgotICAgICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJjb21tZW50L2Rlc2NyaXB0aW9uIi8+Ci0gICAgICAgICAgICAgIDwvdGQ+Ci0gICAgICAgICAgICA8L3RyPgotICAgICAgICAgPC90YWJsZT4KLSAgICAgIDwveHNsOmlmPgotICAgICAgPGhyLz4KLSAgICAgIAotICAgIDwveHNsOnRlbXBsYXRlPgotICAgIAotICAgIDx4c2w6dGVtcGxhdGUgbmFtZT0iY29uc3RydWN0b3JEZXRhaWwiPgotICAgICAgPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNvbHM9IjIiPgotICAgICAgICAgPHRyIGFsaWduPSJsZWZ0IiBiZ2NvbG9yPSIjQ0NDQ0ZGIiB3aWR0aD0iMTAwJSIgY29sc3Bhbj0iMiI+Ci0gICAgICAgICAgICA8dGQ+Ci0gICAgICAgICAgICAgICA8aDI+Ci0gICAgICAgICAgICAgICAgICBDb25zdHJ1Y3RvciBEZXRhaWwKLSAgICAgICAgICAgICAgIDwvaDI+Ci0gICAgICAgICAgICA8L3RkPgotICAgICAgICAgPC90cj4KLSAgICAgIDwvdGFibGU+Ci0gICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Im1ldGhvZHMvY29uc3RydWN0b3IiIG1vZGU9ImRldGFpbCI+Ci0gICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIgb3JkZXI9ImFzY2VuZGluZyIvPgotICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgotICAgIDwveHNsOnRlbXBsYXRlPgotICAgIAotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1ldGhvZHMvY29uc3RydWN0b3IiIG1vZGU9ImRldGFpbCI+Ci0gICAgICA8aDI+Ci0gICAgICAgICA8YSBuYW1lPSJjb25fe0BuYW1lfSI+PHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+PC9hPgotICAgICAgPC9oMj4KLSAgICAgIDxwPgotICAgICAgICAgPGNvZGU+Ci0gICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHZpc2liaWxpdHkiLz4KLSAgICAgICAgICAgIDx4c2w6dGV4dD4gPC94c2w6dGV4dD4KLSAgICAgICAgICAgIDxzdHJvbmc+Ci0gICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KLSAgICAgICAgICAgIDwvc3Ryb25nPgotICAgICAgICAgICAgPHhzbDp0ZXh0Pig8L3hzbDp0ZXh0PgotICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJwYXJhbXMiPgotICAgICAgICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJwYXJhbXMvcGFyYW0iLz4KLSAgICAgICAgICAgIDwveHNsOmlmPgotICAgICAgICAgICAgPHhzbDp0ZXh0Pik8L3hzbDp0ZXh0PgotICAgICAgICAgPC9jb2RlPgotICAgICAgPC9wPgotICAgICAgPHA+Ci0gICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImNvbW1lbnQvZGVzY3JpcHRpb24iLz4KLSAgICAgIDwvcD4KLSAgICAgIDxoci8+Ci0gICAgICAKLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLSAgICAKLSAgICA8eHNsOnRlbXBsYXRlIG5hbWU9Im1ldGhvZHNEZXRhaWwiPgotICAgICAgPHRhYmxlIGJvcmRlcj0iMSIgd2lkdGg9IjEwMCUiIGNvbHM9IjIiPgotICAgICAgICAgPHRyIGFsaWduPSJsZWZ0IiBiZ2NvbG9yPSIjQ0NDQ0ZGIiB3aWR0aD0iMTAwJSIgY29sc3Bhbj0iMiI+Ci0gICAgICAgICAgICA8dGQ+Ci0gICAgICAgICAgICAgICA8aDI+Ci0gICAgICAgICAgICAgICAgICBNZXRob2RzIERldGFpbAotICAgICAgICAgICAgICAgPC9oMj4KLSAgICAgICAgICAgIDwvdGQ+Ci0gICAgICAgICA8L3RyPgotICAgICAgPC90YWJsZT4KLSAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0ibWV0aG9kcy9tZXRob2QiIG1vZGU9ImRldGFpbCI+Ci0gICAgICAgICA8eHNsOnNvcnQgc2VsZWN0PSJAbmFtZSIgb3JkZXI9ImFzY2VuZGluZyIvPgotICAgICAgPC94c2w6YXBwbHktdGVtcGxhdGVzPgotICAgIDwveHNsOnRlbXBsYXRlPgotICAgIAotICAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Im1ldGhvZHMvbWV0aG9kIiBtb2RlPSJkZXRhaWwiPgotICAgICAgPGgyPgotICAgICAgICAgPGEgbmFtZT0ibWV0aG9kX3tAbmFtZX0iPgotICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBuYW1lIi8+Ci0gICAgICAgICA8L2E+Ci0gICAgICA8L2gyPgotICAgICAgPHA+Ci0gICAgICAgICA8Y29kZT4KLSAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAdmlzaWJpbGl0eSIvPgotICAgICAgICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBmdWxsdHlwZSIvPgotICAgICAgICAgICAgPHhzbDp0ZXh0PiA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgPHN0cm9uZz4KLSAgICAgICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PSJAbmFtZSIvPgotICAgICAgICAgICAgPC9zdHJvbmc+Ci0gICAgICAgICAgICA8eHNsOnRleHQ+KDwveHNsOnRleHQ+Ci0gICAgICAgICAgICA8eHNsOmlmIHRlc3Q9InBhcmFtcyI+Ci0gICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9InBhcmFtcy9wYXJhbSIvPgotICAgICAgICAgICAgPC94c2w6aWY+Ci0gICAgICAgICAgICA8eHNsOnRleHQ+KTwveHNsOnRleHQ+Ci0gICAgICAgICA8L2NvZGU+Ci0gICAgICA8L3A+Ci0gICAgICA8cD4KLSAgICAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD0iY29tbWVudC9kZXNjcmlwdGlvbiIvPgotICAgICAgPC9wPgotICAgICAgPHhzbDppZiB0ZXN0PSJwYXJhbXMiPgotICAgICAgICAgPGgzPlBhcmFtZXRlcnM8L2gzPgotICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJwYXJhbXMvcGFyYW0iIG1vZGU9ImRldGFpbCIvPgotICAgICAgPC94c2w6aWY+Ci0gICAgICA8eHNsOmlmIHRlc3Q9IkB0eXBlICE9ICd2b2lkJyI+Ci0gICAgICAgICA8aDM+UmV0dXJuczwvaDM+Ci0gICAgICAgICAgICA8cD4KLSAgICAgICAgICAgICAgIDxjb2RlPgotICAgICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBmdWxsdHlwZSIvPgotICAgICAgICAgICAgICAgPC9jb2RlPgotICAgICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJzdHJpbmctbGVuZ3RoKEByZXR1cm5jb21tZW50KSA+IDAiPgotICAgICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiAtIDwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQHJldHVybmNvbW1lbnQiIGRpc2FibGUtb3V0cHV0LWVzY2FwaW5nPSJ5ZXMiLz4KLSAgICAgICAgICAgICAgIDwveHNsOmlmPgotICAgICAgICAgICAgPC9wPgotICAgICAgPC94c2w6aWY+Ci0gICAgICA8eHNsOmlmIHRlc3Q9ImV4Y2VwdGlvbnMiPgotICAgICAgICAgPGgzPlRocm93czo8L2gzPgotICAgICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSJleGNlcHRpb25zL2V4Y2VwdGlvbiIgbW9kZT0iZGV0YWlsIi8+Ci0gICAgICA8L3hzbDppZj4KLSAgICAgIDxoci8+Ci0gICAgICAKLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLSAgICAKLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJwYXJhbSIgbW9kZT0iZGV0YWlsIj4KLSAgICAgICAgIDxwPgotICAgICAgICAgICAgPGNvZGU+Ci0gICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQG5hbWUiLz4KLSAgICAgICAgICAgIDwvY29kZT4KLSAgICAgICAgICAgIDx4c2w6aWYgdGVzdD0ic3RyaW5nLWxlbmd0aChAY29tbWVudCkgPiAwIj4KLSAgICAgICAgICAgICAgIDx4c2w6dGV4dD4gLSA8L3hzbDp0ZXh0PgotICAgICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBjb21tZW50IiBkaXNhYmxlLW91dHB1dC1lc2NhcGluZz0ieWVzIi8+Ci0gICAgICAgICAgICA8L3hzbDppZj4KLSAgICAgICAgIDwvcD4KLSAgICA8L3hzbDp0ZW1wbGF0ZT4KLSAgICAKLSAgICA8eHNsOnRlbXBsYXRlIG1hdGNoPSJleGNlcHRpb24iIG1vZGU9ImRldGFpbCI+Ci0gICAgICA8cD4KLSAgICAgICAgIDxjb2RlPgotICAgICAgICAgICAgPHhzbDp2YWx1ZS1vZiBzZWxlY3Q9IkBmdWxsdHlwZSIvPgotICAgICAgICAgICAgPHhzbDppZiB0ZXN0PSJzdHJpbmctbGVuZ3RoKEBjb21tZW50KSA+IDAiPgotICAgICAgICAgICAgICAgPHhzbDp0ZXh0PiAtIDwveHNsOnRleHQ+Ci0gICAgICAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD0iQGNvbW1lbnQiIGRpc2FibGUtb3V0cHV0LWVzY2FwaW5nPSJ5ZXMiLz4KLSAgICAgICAgICAgIDwveHNsOmlmPgotICAgICAgICAgPC9jb2RlPgotICAgICAgPC9wPgotICAgIDwveHNsOnRlbXBsYXRlPgotICAgICAgIAotPC94c2w6c3R5bGVzaGVldD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL2plbHRvdG9jLnhzbCBiL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvamVsdG90b2MueHNsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOGY1MDgyLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9kb2MvamVsdG90b2MueHNsCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTwhLS0gCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotICogQ29weXJpZ2h0IChjKSAyMDA4IFN0YW5kYXJkcyBmb3IgVGVjaG5vbG9neSBpbiBBdXRvbW90aXZlIFJldGFpbCBhbmQgb3RoZXJzLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAqCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgRGF2aWQgQ2FydmVyIC0gYnVnIDIzMTQ3MiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0gLS0+Ci08eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIiB4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIKLSAgIHhtbG5zOnNldD0iaHR0cDovL2V4c2x0Lm9yZy9zZXRzIgotICAgeG1sbnM6eGFsYW49Imh0dHA6Ly94bWwuYXBhY2hlLm9yZy94YWxhbiIKLSAgICBleGNsdWRlLXJlc3VsdC1wcmVmaXhlcz0ic2V0IHhhbGFuIgotPgotICAgPHhzbDpwYXJhbSBuYW1lPSJzZGtuYW1lIj5Tb21lIE5hbWU8L3hzbDpwYXJhbT4KLSAgIDx4c2w6cGFyYW0gbmFtZT0iZGlyIj5kb2MvaHRtbDwveHNsOnBhcmFtPiAgIAotICAgPHhzbDpvdXRwdXQgaW5kZW50PSJ5ZXMiIGVuY29kaW5nPSJVVEYtOCIgeGFsYW46aW5kZW50LWFtb3VudD0iMyIvPgotICAgPHhzbDprZXkgbmFtZT0iYWxsUGFja2FnZXMiIG1hdGNoPSJqZWxjbGFzcyIgdXNlPSJAcGFja2FnZSIvPgotICAgICAKLSAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii9qZWwiPgotICAgICAgPHRvYyBsYWJlbD0ieyRzZGtuYW1lfSI+Ci0gICAgICAgICA8dG9waWMgbGFiZWw9IlJlZmVyZW5jZSI+Ci0gICAgICAgICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD0ic2V0OmRpc3RpbmN0KGplbGNsYXNzL0BwYWNrYWdlKSI+Ci0gICAgICAgICAgICAgICA8dG9waWMgbGFiZWw9InsufSI+Ci0gICAgICAgICAgICAgICAgICA8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9ImtleSgnYWxsUGFja2FnZXMnLCAuKSIvPgotICAgICAgICAgICAgICAgPC90b3BpYz4KLSAgICAgICAgICAgIDwveHNsOmZvci1lYWNoPgotICAgICAgICAgPC90b3BpYz4KLSAgICAgIDwvdG9jPgotICAgPC94c2w6dGVtcGxhdGU+Ci0gICAKLSAgIDx4c2w6dGVtcGxhdGUgbWF0Y2g9ImplbGNsYXNzIj4KLSAgICAgIDx0b3BpYyBsYWJlbD0ie0BmdWxsdHlwZX0iIGhyZWY9InskZGlyfS97QGZ1bGx0eXBlfS5odG1sIi8+Ci0gICA8L3hzbDp0ZW1wbGF0ZT4KLSAgIAotPC94c2w6c3R5bGVzaGVldD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL3NjaGVtYS5jc3MgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vZG9jL3NjaGVtYS5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiMjAyOGQuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2RvYy9zY2hlbWEuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSAqIENvcHlyaWdodCAoYykgMjAwMyBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICogCi0gKiBDb250cmlidXRvcnM6Ci0gKiAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotSDYuU2NoZW1hSGVhZGVyIHsKLQlmb250LXNpemU6MTZweDsgCi0JZGlzcGxheTppbmxpbmUKLX0KLQotUC5TY2hlbWFDb3B5cmlnaHQgewotCWZvbnQtc2l6ZTogc21hbGxlcjsgCi0JZm9udC1zdHlsZTogbm9ybWFsOwotCWNvbG9yOiAjMzM2Njk5OyAKLQlkaXNwbGF5OmlubGluZTsKLQltYXJnaW4tdG9wOiAzLjAwMDAwMHB0OwotCW1hcmdpbi1ib3R0b206IDExLjAwMDAwMHB0OwotCW1hcmdpbi1yaWdodDogMC4wMDAwMDBwdDsKLQltYXJnaW4tbGVmdDogMC4wMDAwMDBwdDsKLX0KLQotUC5TY2hlbWFEdGQgewotCWNvbG9yOiAjODAwMDAwOyAKLQltYXJnaW4tdG9wOiAwLjAwMDAwMHB0OwotCW1hcmdpbi1ib3R0b206IDAuMDAwMDAwcHQ7Ci0JbWFyZ2luLXJpZ2h0OiAwLjAwMDAwMHB0OwotCW1hcmdpbi1sZWZ0OiAxMC4wMDAwMDBwdDsKLX0KLQotUC5TY2hlbWFEdGRBdHRsaXN0IHsKLQljb2xvcjogIzgwMDAwMDsgCi0JbWFyZ2luLXRvcDogMC4wMDAwMDBwdDsKLQltYXJnaW4tYm90dG9tOiAwLjAwMDAwMHB0OwotCW1hcmdpbi1yaWdodDogMC4wMDAwMDBwdDsKLQltYXJnaW4tbGVmdDogMjAuMDAwMDAwcHQ7Ci19Ci0KLXNwYW4uU2NoZW1hVGFnIHsKLQljb2xvcjogIzAwMDA4MDsKLX0KLQotc3Bhbi5TY2hlbWFDc3RyaW5nIHsKLQljb2xvcjogIzAwODAwMDsKLX0KLQotcHJlLkV4YW1wbGUgewotCW1hcmdpbi10b3A6IDAuMDAwMDAwcHQ7Ci19Ci0KLS5Db25maWdNYXJrdXBFbGVtZW50RGVzYyB7Ci0JY29sb3I6IGJsYWNrOwotCW1hcmdpbi10b3A6IDAuMDAwMDAwcHQ7Ci0JbWFyZ2luLWJvdHRvbTogMC4wMDAwMDBwdDsKLQltYXJnaW4tcmlnaHQ6IDAuMDAwMDAwcHQ7Ci0JbWFyZ2luLWxlZnQ6IDEwLjAwMDAwMHB0OwotfQotCi0uQ29uZmlnTWFya3VwQXR0bGlzdERlc2MgewotCWNvbG9yOiBibGFjazsKLQltYXJnaW4tdG9wOiAwLjAwMDAwMHB0OwotCW1hcmdpbi1ib3R0b206IDAuMDAwMDAwcHQ7Ci0JbWFyZ2luLXJpZ2h0OiAwLjAwMDAwMHB0OwotCW1hcmdpbi1sZWZ0OiAzMi4wMDAwMDBwdDsKLX0KLQpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2xpYi8uY3ZzaWdub3JlIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL2xpYi8uY3ZzaWdub3JlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMzhmNWRhLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9saWIvLmN2c2lnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotamVsZG9jbGV0LmphcgotZG9jY2hlY2suamFyCmRpZmYgLS1naXQgYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vcGx1Z2luLnByb3BlcnRpZXMgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vcGx1Z2luLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc4YTZhNDcuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL3BsdWdpbi5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBDb3B5cmlnaHQgKGMpIDIwMDUtMjAwNyBTdGFuZGFyZHMgZm9yIFRlY2hub2xvZ3kgaW4gQXV0b21vdGl2ZSBSZXRhaWwgYW5kIG90aGVycwotIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotIwotIyBDb250cmlidXRvcnM6Ci0jICAgICBEYXZpZCBDYXJ2ZXIgLSBTVEFSIC0gYnVnIDIxNTEyNiwgMjEzODUzCi0jICAgICAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotcHJvdmlkZXJOYW1lPUVjbGlwc2Uub3JnCi1wbHVnaW5OYW1lPVhTTCBTREsgRG9jdW1lbnRhdGlvbiAoSW5jdWJhdGluZykKZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9wbHVnaW4ueG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL3BsdWdpbi54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE0Mjc5MTIuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL3BsdWdpbi54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPD9lY2xpcHNlIHZlcnNpb249IjMuMiI/PgotPHBsdWdpbj4KLQotICAgPGV4dGVuc2lvbgotICAgICAgICAgcG9pbnQ9Im9yZy5lY2xpcHNlLmhlbHAudG9jIj4KLSAgICAgIDx0b2MKLSAgICAgICAgICAgIGZpbGU9InRvYy54bWwiCi0gICAgICAgICAgICBwcmltYXJ5PSJ0cnVlIj4KLSAgICAgIDwvdG9jPgotICAgPC9leHRlbnNpb24+Ci0KLTwvcGx1Z2luPgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL3NyYy9vcmcvZWNsaXBzZS93c3QveHNsL3Nkay9kb2N1bWVudGF0aW9uL0FjdGl2YXRvci5qYXZhIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL3NyYy9vcmcvZWNsaXBzZS93c3QveHNsL3Nkay9kb2N1bWVudGF0aW9uL0FjdGl2YXRvci5qYXZhCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5ODRlNDExLi4wMDAwMDAwCi0tLSBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi9zcmMvb3JnL2VjbGlwc2Uvd3N0L3hzbC9zZGsvZG9jdW1lbnRhdGlvbi9BY3RpdmF0b3IuamF2YQorKysgL2Rldi9udWxsCkBAIC0xLDUwICswLDAgQEAKLXBhY2thZ2Ugb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbjsKLQotaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5QbHVnaW47Ci1pbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQ7Ci0KLS8qKgotICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlCi0gKi8KLXB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBQbHVnaW4gewotCi0JLy8gVGhlIHBsdWctaW4gSUQKLQlwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBQTFVHSU5fSUQgPSAib3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbiI7Ci0KLQkvLyBUaGUgc2hhcmVkIGluc3RhbmNlCi0JcHJpdmF0ZSBzdGF0aWMgQWN0aXZhdG9yIHBsdWdpbjsKLQkKLQkvKioKLQkgKiBUaGUgY29uc3RydWN0b3IKLQkgKi8KLQlwdWJsaWMgQWN0aXZhdG9yKCkgewotCX0KLQotCS8qCi0JICogKG5vbi1KYXZhZG9jKQotCSAqIEBzZWUgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLlBsdWdpbnMjc3RhcnQob3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQpCi0JICovCi0JcHVibGljIHZvaWQgc3RhcnQoQnVuZGxlQ29udGV4dCBjb250ZXh0KSB0aHJvd3MgRXhjZXB0aW9uIHsKLQkJc3VwZXIuc3RhcnQoY29udGV4dCk7Ci0JCXBsdWdpbiA9IHRoaXM7Ci0JfQotCi0JLyoKLQkgKiAobm9uLUphdmFkb2MpCi0JICogQHNlZSBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuUGx1Z2luI3N0b3Aob3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQpCi0JICovCi0JcHVibGljIHZvaWQgc3RvcChCdW5kbGVDb250ZXh0IGNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gewotCQlwbHVnaW4gPSBudWxsOwotCQlzdXBlci5zdG9wKGNvbnRleHQpOwotCX0KLQotCS8qKgotCSAqIFJldHVybnMgdGhlIHNoYXJlZCBpbnN0YW5jZQotCSAqCi0JICogQHJldHVybiB0aGUgc2hhcmVkIGluc3RhbmNlCi0JICovCi0JcHVibGljIHN0YXRpYyBBY3RpdmF0b3IgZ2V0RGVmYXVsdCgpIHsKLQkJcmV0dXJuIHBsdWdpbjsKLQl9Ci0KLX0KZGlmZiAtLWdpdCBhL2RvY3Mvb3JnLmVjbGlwc2Uud3N0LnhzbC5zZGsuZG9jdW1lbnRhdGlvbi90b2MueG1sIGIvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL3RvYy54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIyZTg5ZDMuLjAwMDAwMDAKLS0tIGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL3RvYy54bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MSArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pjx0b2MgbGFiZWw9IlhTTCBUb29scyBTREsgRG9jdW1lbnRhdGlvbiI+Ci0gICA8dG9waWMgbGFiZWw9IlJlZmVyZW5jZSI+Ci0gICAgICA8dG9waWMgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZSI+Ci0gICAgICAgICA8dG9waWMgaHJlZj0iZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlLlhQYXRoQ29yZVBsdWdpbi5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlLlhQYXRoQ29yZVBsdWdpbiIvPgotICAgICAgPC90b3BpYz4KLSAgICAgIDx0b3BpYyBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlLnV0aWwiPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGguY29yZS51dGlsLlhTTFRYUGF0aEhlbHBlci5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlLnV0aWwuWFNMVFhQYXRoSGVscGVyIi8+Ci0gICAgICA8L3RvcGljPgotICAgICAgPHRvcGljIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpIj4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLlhQYXRoVUlNZXNzYWdlcy5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS5YUGF0aFVJTWVzc2FnZXMiLz4KLSAgICAgIDwvdG9waWM+Ci0gICAgICA8dG9waWMgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MiPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NTm9kZUxhYmVsUHJvdmlkZXIuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NTm9kZUxhYmVsUHJvdmlkZXIiLz4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkRPTVRyZWVDb250ZW50UHJvdmlkZXIuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NVHJlZUNvbnRlbnRQcm92aWRlciIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRE9NVmlld2VyRmlsdGVyLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLkRPTVZpZXdlckZpbHRlciIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuRWRpdE5hbWVzcGFjZVByZWZpeERpYWxvZy5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5FZGl0TmFtZXNwYWNlUHJlZml4RGlhbG9nIi8+Ci0gICAgICAgICA8dG9waWMgaHJlZj0iZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvciIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuWFBhdGhBY3Rpb24uaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuWFBhdGhBY3Rpb24iLz4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlJlZnJlc2hBY3Rpb24uaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuUmVmcmVzaEFjdGlvbiIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuU2hvd0luU291cmNlQWN0aW9uLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlNob3dJblNvdXJjZUFjdGlvbiIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuWE1MRWRpdG9yc0NvbnRlbnRQcm92aWRlci5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5YTUxFZGl0b3JzQ29udGVudFByb3ZpZGVyIi8+Ci0gICAgICAgICA8dG9waWMgaHJlZj0iZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5FZGl0b3JSZWZlcmVuY2VMYWJlbFByb3ZpZGVyLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLkVkaXRvclJlZmVyZW5jZUxhYmVsUHJvdmlkZXIiLz4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlhQYXRoQWN0aW9uLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlhQYXRoQWN0aW9uIi8+Ci0gICAgICAgICA8dG9waWMgaHJlZj0iZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5SZWZyZXNoQWN0aW9uLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlJlZnJlc2hBY3Rpb24iLz4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlNob3dJblNvdXJjZUFjdGlvbi5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5TaG93SW5Tb3VyY2VBY3Rpb24iLz4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpLnZpZXdzLlhQYXRoTmF2aWdhdG9yLlhNTEVkaXRvcnNDb250ZW50UHJvdmlkZXIuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuWE1MRWRpdG9yc0NvbnRlbnRQcm92aWRlciIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54bWwueHBhdGgudWkudmlld3MuWFBhdGhOYXZpZ2F0b3IuRWRpdG9yUmVmZXJlbmNlTGFiZWxQcm92aWRlci5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC51aS52aWV3cy5YUGF0aE5hdmlnYXRvci5FZGl0b3JSZWZlcmVuY2VMYWJlbFByb3ZpZGVyIi8+Ci0gICAgICA8L3RvcGljPgotICAgICAgPHRvcGljIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLmNvcmUiPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS5NZXNzYWdlcy5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLk1lc3NhZ2VzIi8+Ci0gICAgICAgICA8dG9waWMgaHJlZj0iZG9jL2h0bWwvb3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLlZhbGlkYXRpb25QcmVmZXJlbmNlcy5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLlZhbGlkYXRpb25QcmVmZXJlbmNlcyIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS5YU0xDb3JlLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLmNvcmUuWFNMQ29yZSIvPgotICAgICAgPC90b3BpYz4KLSAgICAgIDx0b3BpYyBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLnJlc29sdmVyIj4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLmNvcmUucmVzb2x2ZXIuUmVzb2x2ZXJFeHRlbnNpb24uaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54c2wuY29yZS5yZXNvbHZlci5SZXNvbHZlckV4dGVuc2lvbiIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wuY29yZS5yZXNvbHZlci5YU0xWZXJzaW9uSGFuZGxlci5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlLnJlc29sdmVyLlhTTFZlcnNpb25IYW5kbGVyIi8+Ci0gICAgICA8L3RvcGljPgotICAgICAgPHRvcGljIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyIj4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuRGVidWdnZXIuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5EZWJ1Z2dlciIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5QcmludFRyYWNlTGlzdGVuZXIuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5QcmludFRyYWNlTGlzdGVuZXIiLz4KLSAgICAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9vcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuUm9vdFN0eWxlRnJhbWUuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5Sb290U3R5bGVGcmFtZSIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5TdHlsZUZyYW1lLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuU3R5bGVGcmFtZSIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5UcmFjZUxpc3RlbmVyLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLnhhbGFuLmRlYnVnZ2VyLlhhbGFuVHJhY2VMaXN0ZW5lciIvPgotICAgICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL29yZy5lY2xpcHNlLndzdC54c2wueGFsYW4uZGVidWdnZXIuWGFsYW5WYXJpYWJsZS5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbi5kZWJ1Z2dlci5YYWxhblZhcmlhYmxlIi8+Ci0gICAgICA8L3RvcGljPgotICAgPC90b3BpYz4KLSAgIDx0b3BpYyBsYWJlbD0iRXh0ZW5zaW9uIFBvaW50cyI+Ci0gICAgIDx0b3BpYyBsYWJlbD0iSkFYUCBEZWJ1Z2dlciI+Ci0gICAgICA8dG9waWMgaHJlZj0iZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfZGVidWdnZXIuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5sYXVuY2hpbmcuZGVidWdnZXIiPgotICAgICAgPC90b3BpYz4KLSAgIDwvdG9waWM+Ci0gICA8dG9waWMgbGFiZWw9IkpBWFAgTGF1bmNoaW5nIj4KLSAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9leHRlbnNpb25fcG9pbnQvb3JnX2VjbGlwc2Vfd3N0X3hzbF9qYXhwX2xhdW5jaGluZ19pbnZva2UuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5sYXVuY2hpbmcuaW52b2tlIj4KLSAgICAgIDwvdG9waWM+Ci0gICAgICA8dG9waWMgaHJlZj0iZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfcHJvY2Vzc29yLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLmpheHAubGF1bmNoaW5nLnByb2Nlc3NvciI+Ci0gICAgICA8L3RvcGljPgotICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL2V4dGVuc2lvbl9wb2ludC9vcmdfZWNsaXBzZV93c3RfeHNsX2pheHBfbGF1bmNoaW5nX3Byb2Nlc3NvclR5cGUuaHRtbCIgbGFiZWw9Im9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5wcm9jZXNzb3JUeXBlIj4KLSAgICAgIDwvdG9waWM+Ci0gICA8L3RvcGljPiAgICAgIAotICAgPC90b3BpYz4KLTwvdG9jPgpkaWZmIC0tZ2l0IGEvZG9jcy9vcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uL3RvY0V4dGVuc2lvbi54bWwgYi9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vdG9jRXh0ZW5zaW9uLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTM4MDlmOC4uMDAwMDAwMAotLS0gYS9kb2NzL29yZy5lY2xpcHNlLndzdC54c2wuc2RrLmRvY3VtZW50YXRpb24vdG9jRXh0ZW5zaW9uLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08dG9jIGxhYmVsPSJFeHRlbnNpb24gUG9pbnRzLiI+Ci0gICA8dG9waWMgbGFiZWw9IkpBWFAgRGVidWdnZXIiPgotICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL2V4dGVuc2lvbl9wb2ludC9vcmdfZWNsaXBzZV93c3RfeHNsX2pheHBfbGF1bmNoaW5nX2RlYnVnZ2VyLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLmpheHAubGF1bmNoaW5nLmRlYnVnZ2VyIj4KLSAgICAgIDwvdG9waWM+Ci0gICA8L3RvcGljPgotICAgPHRvcGljIGxhYmVsPSJKQVhQIExhdW5jaGluZyI+Ci0gICAgICA8dG9waWMgaHJlZj0iZG9jL2h0bWwvZXh0ZW5zaW9uX3BvaW50L29yZ19lY2xpcHNlX3dzdF94c2xfamF4cF9sYXVuY2hpbmdfaW52b2tlLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLmpheHAubGF1bmNoaW5nLmludm9rZSI+Ci0gICAgICA8L3RvcGljPgotICAgICAgPHRvcGljIGhyZWY9ImRvYy9odG1sL2V4dGVuc2lvbl9wb2ludC9vcmdfZWNsaXBzZV93c3RfeHNsX2pheHBfbGF1bmNoaW5nX3Byb2Nlc3Nvci5odG1sIiBsYWJlbD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5qYXhwLmxhdW5jaGluZy5wcm9jZXNzb3IiPgotICAgICAgPC90b3BpYz4KLSAgICAgIDx0b3BpYyBocmVmPSJkb2MvaHRtbC9leHRlbnNpb25fcG9pbnQvb3JnX2VjbGlwc2Vfd3N0X3hzbF9qYXhwX2xhdW5jaGluZ19wcm9jZXNzb3JUeXBlLmh0bWwiIGxhYmVsPSJvcmcuZWNsaXBzZS53c3QueHNsLmpheHAucHJvY2Vzc29yVHlwZSI+Ci0gICAgICA8L3RvcGljPgotICAgPC90b3BpYz4KLTwvdG9jPgpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlLy5jdnNpZ25vcmUgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvLmN2c2lnbm9yZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzE0NDg3Yy4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvLmN2c2lnbm9yZQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWJ1aWxkLnhtbApkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlLy5wcm9qZWN0IGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YWVlNjFkLi4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS8ucHJvamVjdAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Ci08cHJvamVjdERlc2NyaXB0aW9uPgotICAgIDxuYW1lPm9yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZTwvbmFtZT4KLSAgICA8Y29tbWVudD48L2NvbW1lbnQ+Ci0gICAgPHByb2plY3RzPjwvcHJvamVjdHM+Ci0gICAgPGJ1aWxkU3BlYz4KLSAgICAgICAgPGJ1aWxkQ29tbWFuZD4KLSAgICAgICAgICAgIDxuYW1lPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlQnVpbGRlcjwvbmFtZT4KLSAgICAgICAgICAgIDxhcmd1bWVudHM+PC9hcmd1bWVudHM+Ci0gICAgICAgIDwvYnVpbGRDb21tYW5kPgotICAgIDwvYnVpbGRTcGVjPgotICAgIDxuYXR1cmVzPgotICAgICAgICA8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlTmF0dXJlPC9uYXR1cmU+Ci0gICAgPC9uYXR1cmVzPgotPC9wcm9qZWN0RGVzY3JpcHRpb24+CmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzc1MGRmMS4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0jU3VuIERlYyAxNiAxNjo1Nzo1NyBFU1QgMjAwNwotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKLWVuY29kaW5nLzxwcm9qZWN0Pj1JU08tODg1OS0xCmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5wcmVmcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGQ4NTY4Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLnByZWZzCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotI0ZyaSBKYW4gMDQgMDk6MDQ6NDMgRVNUIDIwMDgKLWNvbXBpbGVycy5pbmNvbXBhdGlibGUtZW52aXJvbm1lbnQ9MQotY29tcGlsZXJzLnAuYnVpbGQ9MAotY29tcGlsZXJzLnAuZGVwcmVjYXRlZD0xCi1jb21waWxlcnMucC5taXNzaW5nLWJ1bmRsZS1jbGFzc3BhdGgtZW50cmllcz0wCi1jb21waWxlcnMucC5taXNzaW5nLXBhY2thZ2VzPTIKLWNvbXBpbGVycy5wLm5vLXJlcXVpcmVkLWF0dD0wCi1jb21waWxlcnMucC5ub3QtZXh0ZXJuYWxpemVkLWF0dD0wCi1jb21waWxlcnMucC51bmtub3duLWF0dHJpYnV0ZT0wCi1jb21waWxlcnMucC51bmtub3duLWNsYXNzPTEKLWNvbXBpbGVycy5wLnVua25vd24tZWxlbWVudD0wCi1jb21waWxlcnMucC51bmtub3duLXJlc291cmNlPTEKLWNvbXBpbGVycy5wLnVucmVzb2x2ZWQtZXgtcG9pbnRzPTAKLWNvbXBpbGVycy5wLnVucmVzb2x2ZWQtaW1wb3J0PTAKLWNvbXBpbGVycy51c2UtcHJvamVjdD10cnVlCi1lY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDFiMDIxMy4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotYmluLmluY2x1ZGVzID0gZmVhdHVyZS54bWwsXAotICAgICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzLFwKLSAgICAgICAgICAgICAgIGVwbC12MTAuaHRtbCxcCi0gICAgICAgICAgICAgICBlY2xpcHNlX3VwZGF0ZV8xMjAuanBnLFwKLSAgICAgICAgICAgICAgIGxpY2Vuc2UuaHRtbApkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL2VjbGlwc2VfdXBkYXRlXzEyMC5qcGcgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvZWNsaXBzZV91cGRhdGVfMTIwLmpwZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmZkZjcwOC4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvZWNsaXBzZV91cGRhdGVfMTIwLmpwZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9lcGwtdjEwLmh0bWwgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvZXBsLXYxMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZDRiMTk2Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMjggKzAsMCBAQAotPGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIgoteG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIKLXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KLQotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KLTxtZXRhIG5hbWU9UHJvZ0lkIGNvbnRlbnQ9V29yZC5Eb2N1bWVudD4KLTxtZXRhIG5hbWU9R2VuZXJhdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDkiPgotPG1ldGEgbmFtZT1PcmlnaW5hdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDkiPgotPGxpbmsgcmVsPUZpbGUtTGlzdAotaHJlZj0iLi9FY2xpcHNlJTIwRVBMJTIwMjAwM18xMV8xMCUyMEZpbmFsX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+Ci08dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMS4wPC90aXRsZT4KLTwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgotIDxvOkRvY3VtZW50UHJvcGVydGllcz4KLSAgPG86UmV2aXNpb24+MjwvbzpSZXZpc2lvbj4KLSAgPG86VG90YWxUaW1lPjM8L286VG90YWxUaW1lPgotICA8bzpDcmVhdGVkPjIwMDQtMDMtMDVUMjM6MDM6MDBaPC9vOkNyZWF0ZWQ+Ci0gIDxvOkxhc3RTYXZlZD4yMDA0LTAzLTA1VDIzOjAzOjAwWjwvbzpMYXN0U2F2ZWQ+Ci0gIDxvOlBhZ2VzPjQ8L286UGFnZXM+Ci0gIDxvOldvcmRzPjE2MjY8L286V29yZHM+Ci0gIDxvOkNoYXJhY3RlcnM+OTI3MDwvbzpDaGFyYWN0ZXJzPgotICAgPG86TGluZXM+Nzc8L286TGluZXM+Ci0gIDxvOlBhcmFncmFwaHM+MTg8L286UGFyYWdyYXBocz4KLSAgPG86Q2hhcmFjdGVyc1dpdGhTcGFjZXM+MTEzODQ8L286Q2hhcmFjdGVyc1dpdGhTcGFjZXM+Ci0gIDxvOlZlcnNpb24+OS40NDAyPC9vOlZlcnNpb24+Ci0gPC9vOkRvY3VtZW50UHJvcGVydGllcz4KLTwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgotIDx3OldvcmREb2N1bWVudD4KLSAgPHc6VHJhY2tSZXZpc2lvbnMvPgotIDwvdzpXb3JkRG9jdW1lbnQ+Ci08L3htbD48IVtlbmRpZl0tLT4KLTxzdHlsZT4KLTwhLS0KLSAvKiBGb250IERlZmluaXRpb25zICovCi1AZm9udC1mYWNlCi0Je2ZvbnQtZmFtaWx5OlRhaG9tYTsKLQlwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsKLQltc28tZm9udC1jaGFyc2V0OjA7Ci0JbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7Ci0JbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7Ci0JbXNvLWZvbnQtc2lnbmF0dXJlOjU1MzY3OTQ5NSAtMjE0NzQ4MzY0OCA4IDAgNjYwNDcgMDt9Ci0gLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KLXAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKLQl7bXNvLXN0eWxlLXBhcmVudDoiIjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQlmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjsKLQltc28tZmFyZWFzdC1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9Ci1wCi0Je21hcmdpbi1yaWdodDowaW47Ci0JbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87Ci0JbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87Ci0JbWFyZ2luLWxlZnQ6MGluOwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOwotCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30KLXAuQmFsbG9vblRleHQsIGxpLkJhbGxvb25UZXh0LCBkaXYuQmFsbG9vblRleHQKLQl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZTo4LjBwdDsKLQlmb250LWZhbWlseTpUYWhvbWE7Ci0JbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQotQHBhZ2UgU2VjdGlvbjEKLQl7c2l6ZTo4LjVpbiAxMS4waW47Ci0JbWFyZ2luOjEuMGluIDEuMjVpbiAxLjBpbiAxLjI1aW47Ci0JbXNvLWhlYWRlci1tYXJnaW46LjVpbjsKLQltc28tZm9vdGVyLW1hcmdpbjouNWluOwotCW1zby1wYXBlci1zb3VyY2U6MDt9Ci1kaXYuU2VjdGlvbjEKLQl7cGFnZTpTZWN0aW9uMTt9Ci0tLT4KLTwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGxhbmc9RU4tVVMgc3R5bGU9J3RhYi1pbnRlcnZhbDouNWluJz4KLQotPGRpdiBjbGFzcz1TZWN0aW9uMT4KLQotPHAgYWxpZ249Y2VudGVyIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+PGI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9iPgotPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSCi1USEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFIFBVQkxJQyBMSUNFTlNFICgmcXVvdDtBR1JFRU1FTlQmcXVvdDspLiBBTlkgVVNFLAotUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFCi1PRiBUSElTIEFHUkVFTUVOVC48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjEuIERFRklOSVRJT05TPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7Q29udHJpYnV0aW9uJnF1b3Q7IG1lYW5zOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvZGUgYW5kIGRvY3VtZW50YXRpb24KLWRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQ8YnIgY2xlYXI9bGVmdD4KLWIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1hZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+d2hlcmUKLXN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQKLWJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvcgotaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24KLXN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZQotUHJvZ3JhbSB3aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uCi13aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlCi13b3JrcyBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dG9yJnF1b3Q7IG1lYW5zIGFueSBwZXJzb24gb3IKLWVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7TGljZW5zZWQgUGF0ZW50cyAmcXVvdDsgbWVhbiBwYXRlbnQKLWNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2ggYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlCi1vciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UHJvZ3JhbSZxdW90OyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucwotZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgQWdyZWVtZW50Ljwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UmVjaXBpZW50JnF1b3Q7IG1lYW5zIGFueW9uZSB3aG8KLXJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjIuIEdSQU5UIE9GIFJJR0hUUzwvc3Bhbj48L2I+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLVN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50Ci1hIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodCBsaWNlbnNlIHRvPHNwYW4KLXN0eWxlPSdjb2xvcjpyZWQnPiA8L3NwYW4+cmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5Ci1kaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlCi1mb3JtLjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzCi1SZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz4gPC9zcGFuPnJveWFsdHktZnJlZQotcGF0ZW50IGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydAotYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlCi1jb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbgotb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQKLWJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uCi10byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvCi1hbnkgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmMpCi1SZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUgbGljZW5zZXMgdG8gaXRzCi1Db250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvcgotdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eQotcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50Ci1mb3IgY2xhaW1zIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi1wcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kCi1saWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eQotdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IgZXhhbXBsZSwKLWlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50IHRvIGRpc3RyaWJ1dGUKLXRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUKLWRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5kKQotRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudCBjb3B5cmlnaHQKLXJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQgbGljZW5zZSBzZXQgZm9ydGggaW4KLXRoaXMgQWdyZWVtZW50LiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+My4gUkVRVUlSRU1FTlRTPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlCi1Qcm9ncmFtIGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDo8L3NwYW4+Ci08L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikKLWl0cyBsaWNlbnNlIGFncmVlbWVudDo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzIGFuZAotY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiB0aXRsZQotYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkKLWFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1lZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLAotaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaAotYXMgbG9zdCBwcm9maXRzOyA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paWkpCi1zdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0Ci1Db250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aXYpCi1zdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlIGZyb20gc3VjaCBDb250cmlidXRvciwgYW5kCi1pbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhCi1tZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2UuPHNwYW4gc3R5bGU9J2NvbG9yOmJsdWUnPiA8L3NwYW4+PC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlCi1jb2RlIGZvcm06PC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikgYQotY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueQotY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlCi1vcmlnaW5hdG9yIG9mIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cwotc3Vic2VxdWVudCBSZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heQotYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycwotYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2UKLW9mIHRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbAotbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZxdW90O0NvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yJnF1b3Q7KSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyCi1Db250cmlidXRvciAoJnF1b3Q7SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcXVvdDspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQKLWNvc3RzIChjb2xsZWN0aXZlbHkgJnF1b3Q7TG9zc2VzJnF1b3Q7KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIKLWxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvCi10aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluCi1jb25uZWN0aW9uIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdAotb2ZmZXJpbmcuIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzCi1yZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIKLXRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IKLXRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UgYW5kCi1hbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZQotaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi1jbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi13YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4gVW5kZXIgdGhpcwotc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlCi1vdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhCi1jb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjUuIE5PIFdBUlJBTlRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmcXVvdDtBUyBJUyZxdW90OyBCQVNJUywgV0lUSE9VVAotV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLVdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLU1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5Ci1yZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZQotUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcwotQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLAotY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IKLWVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTCi1BR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRgotVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRgotVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjcuIEdFTkVSQUw8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQKLW9yIHVuZW5mb3JjZWFibGUgdW5kZXIgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yCi1lbmZvcmNlYWJpbGl0eSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQKLWZ1cnRoZXIgYWN0aW9uIGJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlCi1taW5pbXVtIGV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbgotYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KQotYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aAotb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlCi1zdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci1zaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvcgotY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlCi1wZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncwotcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZQotY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQKLVN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZgotdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMKLXRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwKLUFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZgotdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCi0oaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkCi1pbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlcgotZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdAotZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlCi1TdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBsYXdzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mCi1BbWVyaWNhLiBObyBwYXJ0eSB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJyaW5nIGEgbGVnYWwgYWN0aW9uIHVuZGVyIHRoaXMKLUFncmVlbWVudCBtb3JlIHRoYW4gb25lIHllYXIgYWZ0ZXIgdGhlIGNhdXNlIG9mIGFjdGlvbiBhcm9zZS4gRWFjaCBwYXJ0eSB3YWl2ZXMKLWl0cyByaWdodHMgdG8gYSBqdXJ5IHRyaWFsIGluIGFueSByZXN1bHRpbmcgbGl0aWdhdGlvbi48L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsPjwhW2lmICFzdXBwb3J0RW1wdHlQYXJhc10+Jm5ic3A7PCFbZW5kaWZdPjxvOnA+PC9vOnA+PC9wPgotCi08L2Rpdj4KLQotPC9ib2R5PgotCi08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwNjYyNzcuLjAwMDAwMDAKLS0tIGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0jIGZlYXR1cmUucHJvcGVydGllcwotIyBjb250YWlucyBleHRlcm5hbGl6ZWQgc3RyaW5ncyBmb3IgZmVhdHVyZS54bWwKLSMgIiVmb28iIGluIGZlYXR1cmUueG1sIGNvcnJlc3BvbmRzIHRvIHRoZSBrZXkgImZvbyIgaW4gdGhpcyBmaWxlCi0jIGphdmEuaW8uUHJvcGVydGllcyBmaWxlIChJU08gODg1OS0xIHdpdGggIlwiIGVzY2FwZXMpCi0jIFRoaXMgZmlsZSBzaG91bGQgYmUgdHJhbnNsYXRlZC4KLQotIyAiZmVhdHVyZU5hbWUiIHByb3BlcnR5IC0gbmFtZSBvZiB0aGUgZmVhdHVyZQotZmVhdHVyZU5hbWU9WFNMIFRvb2xzIChJbmN1YmF0aW5nKQotCi0jICJwcm92aWRlck5hbWUiIHByb3BlcnR5IC0gbmFtZSBvZiB0aGUgY29tcGFueSB0aGF0IHByb3ZpZGVzIHRoZSBmZWF0dXJlCi1wcm92aWRlck5hbWU9RWNsaXBzZS5vcmcKLQotIyAidXBkYXRlU2l0ZU5hbWUiIHByb3BlcnR5IC0gbGFiZWwgZm9yIHRoZSB1cGRhdGUgc2l0ZQotdXBkYXRlU2l0ZU5hbWU9VGhlIEVjbGlwc2UgV2ViIFRvb2xzIFBsYXRmb3JtIChXVFApIFByb2plY3QgdXBkYXRlIHNpdGUKLQotIyAiZGVzY3JpcHRpb24iIHByb3BlcnR5IC0gZGVzY3JpcHRpb24gb2YgdGhlIGZlYXR1cmUKLWRlc2NyaXB0aW9uPVhTTFQgRWRpdG9yLCB2YWxpZGF0b3IsIGxhdW5jaGluZyBhbmQgZGVidWdnaW5nIHN1cHBvcnQKLQotIyAiY29weXJpZ2h0IiBwcm9wZXJ0eSAtIHRleHQgb2YgdGhlICJGZWF0dXJlIFVwZGF0ZSBDb3B5cmlnaHQiCi1jb3B5cmlnaHQ9XAotQ29weXJpZ2h0IChjKSAyMDA4IERvdWcgU2F0Y2h3ZWxsIChDaGFzZSBUZWNobm9sb2d5IEx0ZCksXG5cCi1EYXZpZCBDYXJ2ZXIgKFN0YW5kYXJkcyBmb3IgVGVjaG5vbG9neSBpbiBBdXRvbW90aXZlIFJldGFpbCkgYW5kIG90aGVycyAyMDA4LlxuXAotQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xuXAotYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXG5cCi13aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxuXAotaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcblwKLVxuXAotQ29udHJpYnV0b3JzOlxuXAotICAgIERvdWcgU2F0Y2h3ZWxsIChDaGFzZSBUZWNobm9sb2d5IEx0ZCAtIGh0dHA6Ly93d3cuY2hhc2V0ZWNobm9sb2d5LmNvLnVrKVxuXAotICAgIERhdmlkIENhcnZlciAoU3RhbmRhcmRzIGZvciBUZWNobm9sb2d5IGluIEF1dG9tb3RpdmUgUmV0YWlsIC0gaHR0cDovL3d3dy5zdGFyc3RhbmRhcmQub3JnKVxuXAotICAgIEplc3BlciBNb2xsZXIgKE5pbmVDb25zdWx0IC0gaHR0cDovL3d3dy5uaW5lY29uc3VsdC5kaylcbgotIyMjIyMjIyMjIyMjIyMjIyBlbmQgb2YgY29weXJpZ2h0IHByb3BlcnR5ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0jICJsaWNlbnNlVVJMIiBwcm9wZXJ0eSAtIFVSTCBvZiB0aGUgIkZlYXR1cmUgTGljZW5zZSIKLSMgZG8gbm90IHRyYW5zbGF0ZSB2YWx1ZSAtIGp1c3QgY2hhbmdlIHRvIHBvaW50IHRvIGEgbG9jYWxlLXNwZWNpZmljIEhUTUwgcGFnZQotbGljZW5zZVVSTD1saWNlbnNlLmh0bWwKLQotIyAibGljZW5zZSIgcHJvcGVydHkgLSB0ZXh0IG9mIHRoZSAiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIKLSMgc2hvdWxkIGJlIHBsYWluIHRleHQgdmVyc2lvbiBvZiBsaWNlbnNlIGFncmVlbWVudCBwb2ludGVkIHRvIGJlICJsaWNlbnNlVVJMIgotbGljZW5zZT1cCi1FQ0xJUFNFIEZPVU5EQVRJT04gU09GVFdBUkUgVVNFUiBBR1JFRU1FTlRcblwKLUp1bmUgMDYsIDIwMDdcblwKLVxuXAotVXNhZ2UgT2YgQ29udGVudFxuXAotXG5cCi1USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT04gQU5EL09SXG5cCi1PVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS5cblwKLVVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJU1xuXAotQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SXG5cCi1OT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VXG5cCi1BR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UXG5cCi1BTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UU1xuXAotT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEVcblwKLVRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlNcblwKLU9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEXG5cCi1CRUxPVywgVEhFTiBZT1UgTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuXG5cCi1cblwKLUFwcGxpY2FibGUgTGljZW5zZXNcblwKLVxuXAotVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb25cblwKLWlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljXG5cCi1MaWNlbnNlIFZlcnNpb24gMS4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpc1xuXAotQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwuXG5cCi1Gb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC5cblwKLVxuXAotQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsXG5cCi1kb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlLm9yZyBDVlNcblwKLXJlcG9zaXRvcnkgKCJSZXBvc2l0b3J5IikgaW4gQ1ZTIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlXG5cCi1hcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKLVxuXAotICAgLSBDb250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLFxuXAotICAgICBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksXG5cCi0gICAgIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCi0gICAtIEVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IG9yIEpBUiAoSmF2YT8gQVJjaGl2ZSlcblwKLSAgICAgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAotICAgLSBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC5cblwKLSAgICAgRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi5cblwKLSAgICAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uXG5cCi0gICAgIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKLSAgIC0gRmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzXG5cCi0gICAgIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAotXG5cCi1GZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gRmlsZXMgbmFtZWRcblwKLSJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mXG5cCi1JbmNsdWRlZCBGZWF0dXJlcy5cblwKLVxuXAotVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZVxuXAotY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kXG5cCi1jb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQgSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZFxuXAotaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIgKCJGZWF0dXJlIExpY2Vuc2VzIikuIEFib3V0cyBhbmQgRmVhdHVyZVxuXAotTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZVxuXAotaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6XG5cCi1cblwKLSAgIC0gVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCi0gICAtIFBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzXG5cCi0gICAtIEluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnNcblwKLSAgIC0gU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAotICAgLSBGZWF0dXJlIGRpcmVjdG9yaWVzXG5cCi1cblwKLU5vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZyB0aGVcblwKLUVjbGlwc2UgVXBkYXRlIE1hbmFnZXIsIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoIkZlYXR1cmUgVXBkYXRlXG5cCi1MaWNlbnNlIikgZHVyaW5nIHRoZSBpbnN0YWxsYXRpb24gcHJvY2Vzcy4gSWYgdGhlIEZlYXR1cmUgY29udGFpbnNcblwKLUluY2x1ZGVkIEZlYXR1cmVzLCB0aGUgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBzaG91bGQgZWl0aGVyIHByb3ZpZGUgeW91XG5cCi13aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgdGhlIEluY2x1ZGVkIEZlYXR1cmVzIG9yIGluZm9ybVxuXAoteW91IHdoZXJlIHlvdSBjYW4gbG9jYXRlIHRoZW0uIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIG1heSBiZSBmb3VuZCBpblxuXAotdGhlICJsaWNlbnNlIiBwcm9wZXJ0eSBvZiBmaWxlcyBuYW1lZCAiZmVhdHVyZS5wcm9wZXJ0aWVzIi4gU3VjaCBBYm91dHMsXG5cCi1GZWF0dXJlIExpY2Vuc2VzIGFuZCBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBjb250YWluIHRoZSB0ZXJtcyBhbmRcblwKLWNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4geW91clxuXAotdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4gdGhhdCBkaXJlY3RvcnkuXG5cCi1cblwKLVRIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUlxuXAotVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuXG5cCi1TT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6XG5cCi1cblwKLSAgICAtIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sKVxuXAotICAgIC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpXG5cCi0gICAgLSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApXG5cCi0gICAgLSBJQk0gUHVibGljIExpY2Vuc2UgMS4wIChhdmFpbGFibGUgYXQgaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2RldmVsb3BlcndvcmtzL29wZW5zb3VyY2UvbGljZW5zZTEwLmh0bWwpXG5cCi0gICAgLSBNZXRybyBMaW5rIFB1YmxpYyBMaWNlbnNlIDEuMDAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb3Blbm1vdGlmL3N1cHBvcnRlcnMvbWV0cm9saW5rL2xpY2Vuc2UuaHRtbClcblwKLSAgICAtIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCi0gICAgLSBDb21tb24gRGV2ZWxvcG1lbnQgYW5kIERpc3RyaWJ1dGlvbiBMaWNlbnNlIChDRERMKSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3VuLmNvbS9jZGRsL2NkZGwuaHRtbClcblwKLVxuXAotSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUlxuXAotVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlIG9yIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VcblwKLWlzIHByb3ZpZGVkLCBwbGVhc2UgY29udGFjdCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHRvIGRldGVybWluZSB3aGF0IHRlcm1zIGFuZCBjb25kaXRpb25zXG5cCi1nb3Zlcm4gdGhhdCBwYXJ0aWN1bGFyIENvbnRlbnQuXG5cCi1cblwKLUNyeXB0b2dyYXBoeVxuXAotXG5cCi1Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmVcblwKLWN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSxcblwKLWFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkVcblwKLXVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLFxuXAotcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgb3IgdXNlLFxuXAotYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuXG5cCi1cblwKLUphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBpbiB0aGUgVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLlxuCi0jIyMjIyMjIyMjIyBlbmQgb2YgbGljZW5zZSBwcm9wZXJ0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9mZWF0dXJlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWY3NDE5ZC4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxNjYgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxmZWF0dXJlCi0gICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlIgotICAgICAgbGFiZWw9IiVmZWF0dXJlTmFtZSIKLSAgICAgIHZlcnNpb249IjEuMC4wLnF1YWxpZmllciIKLSAgICAgIHByb3ZpZGVyLW5hbWU9IiVwcm92aWRlck5hbWUiCi0gICAgICBwbHVnaW49Im9yZy5lY2xpcHNlLndzdC54c2wiPgotCi0gICA8ZGVzY3JpcHRpb24+Ci0gICAgICAlZGVzY3JpcHRpb24KLSAgIDwvZGVzY3JpcHRpb24+Ci0KLSAgIDxjb3B5cmlnaHQ+Ci0gICAgICAlY29weXJpZ2h0Ci0gICA8L2NvcHlyaWdodD4KLQotICAgPGxpY2Vuc2UgdXJsPSIlbGljZW5zZVVSTCI+Ci0gICAgICAlbGljZW5zZQotICAgPC9saWNlbnNlPgotCi0gICA8dXJsPgotICAgICAgPHVwZGF0ZSBsYWJlbD0iJXVwZGF0ZVNpdGVOYW1lIiB1cmw9Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy93ZWJ0b29scy91cGRhdGVzLyIvPgotICAgICAgPGRpc2NvdmVyeSBsYWJlbD0iV2ViIFRvb2xzIFBsYXRmb3JtIChXVFApIFVwZGF0ZXMiIHVybD0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3dlYnRvb2xzL3VwZGF0ZXMiLz4KLSAgIDwvdXJsPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5jb3JlIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5kZWJ1Zy51aSIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLndzdC54c2wubGF1bmNoaW5nIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbC54YWxhbiIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLndzdC54c2wudWkiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS53c3QueG1sLnhwYXRoLnVpIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmFwYWNoZS54YWxhbiIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5hcGFjaGUuY29tbW9ucy5sb2dnaW5nIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5kb2MiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuYXBhY2hlLmNvbW1vbnMuanhwYXRoIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhtbC54cGF0aC5jb3JlIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmFwYWNoZS54bWwuc2VyaWFsaXplciIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5hcGFjaGUuYmNlbCIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9ImphdmFfY3VwLnJ1bnRpbWUiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS53c3QueHNsLnNheG9uIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi0gICA8cGx1Z2luCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbCIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5kZWJ1ZyIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5kZWJ1Zy51aSIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLndzdC54c2wuamF4cC5sYXVuY2hpbmciCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuYXBhY2hlLmxvZzRqIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi08L2ZlYXR1cmU+CmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvbGljZW5zZS5odG1sIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL2xpY2Vuc2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAzZTY2NS4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvbGljZW5zZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzNjLm9yZy9UUi8xOTk5L1JFQy1odG1sNDAxLTE5OTkxMjI0L2xvb3NlLmR0ZCI+Ci08IS0tIHNhdmVkIGZyb20gdXJsPSgwMDQ0KWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsL25vdGljZS5odG1sIC0tPgotPEhUTUw+PEhFQUQ+PFRJVExFPkVjbGlwc2Uub3JnIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC9USVRMRT4KLTxNRVRBIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KLTxNRVRBIGNvbnRlbnQ9Ik1TSFRNTCA2LjAwLjI4MDAuMTQ3OSIgbmFtZT1HRU5FUkFUT1I+PC9IRUFEPgotPEJPRFkgbGFuZz1FTi1VUyB2TGluaz1wdXJwbGUgbGluaz1ibHVlPgotPEgyPkVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvSDI+Ci08UD5KdW5lIDA2LCAyMDA3PC9QPgotPEgzPlVzYWdlIE9mIENvbnRlbnQ8L0gzPgotPFA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIAotQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMgKENPTExFQ1RJVkVMWSAiQ09OVEVOVCIpLiBVU0UgT0YgCi1USEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSAKLVRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIAotQkVMT1cuIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1UgQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCAKLUJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSAKLUFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgCi1URVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSAKLUFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIAotTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuPC9QPgotPEgzPkFwcGxpY2FibGUgTGljZW5zZXM8L0gzPgotPFA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIAotRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIAotUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIAotQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPEEgCi1ocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L0E+LiAKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvUD4KLTxQPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCAKLWRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2Uub3JnIENWUyByZXBvc2l0b3J5IAotKCJSZXBvc2l0b3J5IikgaW4gQ1ZTIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzIGRvd25sb2FkYWJsZSAKLWFyY2hpdmVzICgiRG93bmxvYWRzIikuPC9QPgotPFA+Q29udGVudCBtYXkgYmUgYXBwb3J0aW9uZWQgaW50byBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzIAotKCJGcmFnbWVudHMiKSwgYW5kIGZlYXR1cmVzICgiRmVhdHVyZXMiKS4gQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIAotUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgCi1jb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyAKLWFzc29jaWF0ZWQgd2l0aCBhIEZlYXR1cmUuIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgYXJlIGxvY2F0ZWQgaW4gZGlyZWN0b3JpZXMgCi1uYW1lZCAicGx1Z2lucyIgYW5kIEZlYXR1cmVzIGFyZSBsb2NhdGVkIGluIGRpcmVjdG9yaWVzIG5hbWVkICJmZWF0dXJlcyIuPC9QPgotPFA+RmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIEZpbGVzIG5hbWVkIAotImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgCi1GZWF0dXJlcy48L1A+Ci08UD5UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlIGNvbnRhaW5lZCAKLWluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIAotRmVhdHVyZXMgYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIgCi0oIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSAKLWRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZSBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIAotbG9jYXRpb25zOjwvUD4KLTxVTD4KLSAgPExJPlRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeSAKLSAgPExJPlBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzIAotICA8TEk+U3ViZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zIAotICA8TEk+RmVhdHVyZSBkaXJlY3RvcmllcyA8L0xJPjwvVUw+Ci08UD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgCi11c2luZyB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlciwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgiRmVhdHVyZSBVcGRhdGUgCi1MaWNlbnNlIikgZHVyaW5nIHRoZSBpbnN0YWxsYXRpb24gcHJvY2Vzcy4gSWYgdGhlIEZlYXR1cmUgY29udGFpbnMgSW5jbHVkZWQgCi1GZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdSB3aXRoIHRoZSB0ZXJtcyAKLWFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdSB3aGVyZSB5b3UgY2FuIAotbG9jYXRlIHRoZW0uIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIG1heSBiZSBmb3VuZCBpbiB0aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIAotZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIuIFN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzIGFuZCBGZWF0dXJlIAotVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgCi1hbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IAotZGlyZWN0b3J5LjwvUD4KLTxQPlRIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUiBUTyBUSEUgRVBMIAotT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFIAotT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTo8L1A+Ci08VUw+Ci0gIDxMST5Db21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8QSAKLSAgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9BPikKLQotICA8TEk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgPEEgCi0gIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvQT4pCi0KLSAgPExJPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0IDxBIAotICBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMDwvQT4pCi0KLSAgPExJPklCTSBQdWJsaWMgTGljZW5zZSAxLjAgKGF2YWlsYWJsZSBhdCA8QSAKLSAgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2RldmVsb3BlcndvcmtzL29wZW5zb3VyY2UvbGljZW5zZTEwLmh0bWwiPmh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9kZXZlbG9wZXJ3b3Jrcy9vcGVuc291cmNlL2xpY2Vuc2UxMC5odG1sPC9BPikKLSAgPExJPk1ldHJvIExpbmsgUHVibGljIExpY2Vuc2UgMS4wMCAoYXZhaWxhYmxlIGF0IDxBIAotICBocmVmPSJodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb3Blbm1vdGlmL3N1cHBvcnRlcnMvbWV0cm9saW5rL2xpY2Vuc2UuaHRtbCI+aHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29wZW5tb3RpZi9zdXBwb3J0ZXJzL21ldHJvbGluay9saWNlbnNlLmh0bWw8L0E+KSAKLSAgCi0gIDxMST5Nb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgPEEgCi0gIGhyZWY9Imh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbCI+aHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sPC9BPikgPC9MST4KLSAgCi0gIDxsaT5Db21tb24gRGV2ZWxvcG1lbnQgYW5kIERpc3RyaWJ1dGlvbiBMaWNlbnNlIChDRERMKSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxBIAotICBocmVmPSJodHRwOi8vd3d3LnN1bi5jb20vY2RkbC9jZGRsLmh0bWwiPmh0dHA6Ly93d3cuc3VuLmNvbS9jZGRsL2NkZGwuaHRtbCk8L0E+Ci0gIDwvTEk+Ci08L1VMPgotPFA+SVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiAKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIAotcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIAotY29uZGl0aW9ucyBnb3Zlcm4gdGhhdCBwYXJ0aWN1bGFyIENvbnRlbnQuPC9QPgotPEgzPkNyeXB0b2dyYXBoeTwvSDM+Ci08UD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgCi1jdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsIGFuZC9vciAKLXJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgCi1lbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLCByZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgCi1jb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSwgYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCAKLXRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC48L1A+PC9CT0RZPjwvSFRNTD4KZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9hYm91dC5odG1sIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlQnVuZGxlL2Fib3V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxOTlkZjMuLjAwMDAwMDAKLS0tIGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlQnVuZGxlL2Fib3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wLy9FTiI+Ci08SFRNTD4KLQotPGhlYWQ+Ci08dGl0bGU+QWJvdXQ8L3RpdGxlPgotPG1ldGEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgotPC9oZWFkPgotCi08Qk9EWSBsYW5nPSJFTi1VUyI+Ci0KLTxIMz5BYm91dCBUaGlzIENvbnRlbnQ8L0gzPgotCi08UD5KdW5lLCAyMDA4PC9QPgotCi08SDM+TGljZW5zZTwvSDM+Ci0KLTxQPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAKLSgiQ29udGVudCIpLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IAotdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIAotKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIGF0Ci08QSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtdjEwLnBocDwvQT4uIAotRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9QPgotCi08UD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSAKLUNvbnRlbnQgaXMgYmVpbmcgcmVkaXN0cmlidXRlZCBieSBhbm90aGVyIHBhcnR5ICgiUmVkaXN0cmlidXRvciIpIGFuZCBkaWZmZXJlbnQgCi10ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkgYXBwbHkgdG8geW91ciB1c2Ugb2YgYW55IG9iamVjdCBjb2RlIGluIHRoZSBDb250ZW50LiAKLUNoZWNrIHRoZSBSZWRpc3RyaWJ1dG9yknMgbGljZW5zZSB0aGF0IHdhcyBwcm92aWRlZCB3aXRoIHRoZSBDb250ZW50LiBJZiBubyBzdWNoIAotbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkIGJlbG93LCB0aGUgCi10ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRVBMIHN0aWxsIGFwcGx5IHRvIGFueSBzb3VyY2UgY29kZSBpbiB0aGUgQ29udGVudCAKLWFuZCBzdWNoIHNvdXJjZSBjb2RlIG1heSBiZSBvYnRhaW5lZCBhdAotPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvPC9BPi48L1A+Ci0KLTwvQk9EWT4KLTwvSFRNTD4KZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9hYm91dC5pbmkgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVCdW5kbGUvYWJvdXQuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGE1YTQwLi4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9hYm91dC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0jIGFib3V0LmluaQotIyBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCBhIGZlYXR1cmUKLSMgamF2YS5pby5Qcm9wZXJ0aWVzIGZpbGUgKElTTyA4ODU5LTEgd2l0aCAiXCIgZXNjYXBlcykKLSMgIiVrZXkiIGFyZSBleHRlcm5hbGl6ZWQgc3RyaW5ncyBkZWZpbmVkIGluIGFib3V0LnByb3BlcnRpZXMKLSMgVGhpcyBmaWxlIGRvZXMgbm90IG5lZWQgdG8gYmUgdHJhbnNsYXRlZC4KLQotIyBQcm9wZXJ0eSAiYWJvdXRUZXh0IiBjb250YWlucyBibHVyYiBmb3IgIkFib3V0IiBkaWFsb2cgKHRyYW5zbGF0ZWQpCi1hYm91dFRleHQ9JWJsdXJiCi0KLSMgUHJvcGVydHkgIndpbmRvd0ltYWdlIiBjb250YWlucyBwYXRoIHRvIHdpbmRvdyBpY29uICgxNngxNikKLSMgbmVlZGVkIGZvciBwcmltYXJ5IGZlYXR1cmVzIG9ubHkKLQotIyBQcm9wZXJ0eSAiZmVhdHVyZUltYWdlIiBjb250YWlucyBwYXRoIHRvIGZlYXR1cmUgaW1hZ2UgKDMyeDMyKQotZmVhdHVyZUltYWdlPXd0cF9wcm9kMzIucG5nCi0KLSMgUHJvcGVydHkgImFib3V0SW1hZ2UiIGNvbnRhaW5zIHBhdGggdG8gcHJvZHVjdCBpbWFnZSAoNTAweDMzMCBvciAxMTV4MTY0KQotIyBuZWVkZWQgZm9yIHByaW1hcnkgZmVhdHVyZXMgb25seQotCi0jIFByb3BlcnR5ICJhcHBOYW1lIiBjb250YWlucyBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiAobm90IHRyYW5zbGF0ZWQpCi0jIG5lZWRlZCBmb3IgcHJpbWFyeSBmZWF0dXJlcyBvbmx5Ci0KLSMgUHJvcGVydHkgIndlbGNvbWVQYWdlIiBjb250YWlucyBwYXRoIHRvIHdlbGNvbWUgcGFnZSAoc3BlY2lhbCBYTUwtYmFzZWQgZm9ybWF0KQotIyBvcHRpb25hbAotCi0jIFByb3BlcnR5ICJ3ZWxjb21lUGVyc3BlY3RpdmUiIGNvbnRhaW5zIHRoZSBpZCBvZiB0aGUgcGVyc3BlY3RpdmUgaW4gd2hpY2ggdGhlCi0jIHdlbGNvbWUgcGFnZSBpcyB0byBiZSBvcGVuZWQuCi0jIG9wdGlvbmFsCi0KLQotCi0KZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9hYm91dC5tYXBwaW5ncyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9hYm91dC5tYXBwaW5ncwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTI4MzkwYS4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVCdW5kbGUvYWJvdXQubWFwcGluZ3MKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLSMgYWJvdXQubWFwcGluZ3MKLSMgY29udGFpbnMgZmlsbC1pbnMgZm9yIGFib3V0LnByb3BlcnRpZXMKLSMgamF2YS5pby5Qcm9wZXJ0aWVzIGZpbGUgKElTTyA4ODU5LTEgd2l0aCAiXCIgZXNjYXBlcykKLSMgVGhpcyBmaWxlIGRvZXMgbm90IG5lZWQgdG8gYmUgdHJhbnNsYXRlZC4KLQotMD1AYnVpbGRACmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVCdW5kbGUvYWJvdXQucHJvcGVydGllcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9hYm91dC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYmYxYmE3Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9hYm91dC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotIyBhYm91dC5wcm9wZXJ0aWVzCi0jIGNvbnRhaW5zIGV4dGVybmFsaXplZCBzdHJpbmdzIGZvciBhYm91dC5pbmkKLSMgamF2YS5pby5Qcm9wZXJ0aWVzIGZpbGUgKElTTyA4ODU5LTEgd2l0aCAiXCIgZXNjYXBlcykKLSMgZmlsbC1pbnMgYXJlIHN1cHBsaWVkIGJ5IGFib3V0Lm1hcHBpbmdzCi0jIFRoaXMgZmlsZSBzaG91bGQgYmUgdHJhbnNsYXRlZC4KLSMKLSMgRG8gbm90IHRyYW5zbGF0ZSBhbnkgdmFsdWVzIHN1cnJvdW5kZWQgYnkge30KLQotYmx1cmI9V1RQIFhTTCBTb3VyY2VcblwKLVxuXAotVmVyc2lvbjoge2ZlYXR1cmVWZXJzaW9ufVxuXAotQnVpbGQgaWQ6IHswfVxuXAotXG5cCi0oYykgQ29weXJpZ2h0IERvdWcgU2F0Y2h3ZWxsIChDaGFzZSBUZWNobm9sb2d5IEx0ZCksIERhdmlkIENhcnZlciAoU3RhbmRhcmRzIGZvciBUZWNobm9sb2d5IGluIEF1dG9tb3RpdmUgUmV0YWlsKVxuXAotYW5kIG90aGVycyAyMDA4LiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuXAotVmlzaXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy93ZWJ0b29scwotCmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVCdW5kbGUvYnVpbGQucHJvcGVydGllcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9idWlsZC5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMGE1NzVjLi4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLWJpbi5pbmNsdWRlcyA9IGFib3V0Lmh0bWwsIGFib3V0LmluaSwgYWJvdXQubWFwcGluZ3MsIGFib3V0LnByb3BlcnRpZXMsIHd0cF9wcm9kMzIucG5nLCBwbHVnaW4ucHJvcGVydGllcywgcGx1Z2luLnhtbCwgc3JjLyoqLCBNRVRBLUlORi8KLXNvdXJjZVBsdWdpbiA9IHRydWUKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9wbHVnaW4ucHJvcGVydGllcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS9wbHVnaW4ucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzIzNDFjYS4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVCdW5kbGUvcGx1Z2luLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyICswLDAgQEAKLXBsdWdpbk5hbWU9V1RQIFhTTCBTb3VyY2UKLXByb3ZpZGVyTmFtZT1FY2xpcHNlLm9yZwpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlQnVuZGxlL3d0cF9wcm9kMzIuZ2lmIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlQnVuZGxlL3d0cF9wcm9kMzIuZ2lmCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZWZiNDRhLi4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS93dHBfcHJvZDMyLmdpZgorKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS93dHBfcHJvZDMyLnBuZyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUJ1bmRsZS93dHBfcHJvZDMyLnBuZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmZjZWFiMy4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVCdW5kbGUvd3RwX3Byb2QzMi5wbmcKKysrIC9kZXYvbnVsbApCaW5hcnkgZmlsZXMgZGlmZmVyCmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVGZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVGZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyNDllOWYuLjAwMDAwMDAKLS0tIGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlRmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDUgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0jIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0jIAotIyBDb250cmlidXRvcnM6Ci0jICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLWJpbi5pbmNsdWRlcyA9XAotZXBsLXYxMC5odG1sLFwKLWVjbGlwc2VfdXBkYXRlXzEyMC5qcGcsXAotZmVhdHVyZS54bWwsXAotZmVhdHVyZS5wcm9wZXJ0aWVzLFwKLWxpY2Vuc2UuaHRtbApkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlRmVhdHVyZS9lY2xpcHNlX3VwZGF0ZV8xMjAuanBnIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlRmVhdHVyZS9lY2xpcHNlX3VwZGF0ZV8xMjAuanBnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZmRmNzA4Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUZlYXR1cmUvZWNsaXBzZV91cGRhdGVfMTIwLmpwZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUZlYXR1cmUvZXBsLXYxMC5odG1sIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlRmVhdHVyZS9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAyMmFkMjkuLjAwMDAwMDAKLS0tIGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlRmVhdHVyZS9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMjggKzAsMCBAQAotPGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIgoteG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIKLXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KLQotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KLTxtZXRhIG5hbWU9UHJvZ0lkIGNvbnRlbnQ9V29yZC5Eb2N1bWVudD4KLTxtZXRhIG5hbWU9R2VuZXJhdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDkiPgotPG1ldGEgbmFtZT1PcmlnaW5hdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDkiPgotPGxpbmsgcmVsPUZpbGUtTGlzdAotaHJlZj0iLi9FY2xpcHNlJTIwRVBMJTIwMjAwM18xMV8xMCUyMEZpbmFsX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+Ci08dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMS4wPC90aXRsZT4KLTwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgotIDxvOkRvY3VtZW50UHJvcGVydGllcz4KLSAgPG86UmV2aXNpb24+MjwvbzpSZXZpc2lvbj4KLSAgPG86VG90YWxUaW1lPjM8L286VG90YWxUaW1lPgotICA8bzpDcmVhdGVkPjIwMDQtMDMtMDVUMjM6MDM6MDBaPC9vOkNyZWF0ZWQ+Ci0gIDxvOkxhc3RTYXZlZD4yMDA0LTAzLTA1VDIzOjAzOjAwWjwvbzpMYXN0U2F2ZWQ+Ci0gIDxvOlBhZ2VzPjQ8L286UGFnZXM+Ci0gIDxvOldvcmRzPjE2MjY8L286V29yZHM+Ci0gIDxvOkNoYXJhY3RlcnM+OTI3MDwvbzpDaGFyYWN0ZXJzPgotICAgPG86TGluZXM+Nzc8L286TGluZXM+Ci0gIDxvOlBhcmFncmFwaHM+MTg8L286UGFyYWdyYXBocz4KLSAgPG86Q2hhcmFjdGVyc1dpdGhTcGFjZXM+MTEzODQ8L286Q2hhcmFjdGVyc1dpdGhTcGFjZXM+Ci0gIDxvOlZlcnNpb24+OS40NDAyPC9vOlZlcnNpb24+Ci0gPC9vOkRvY3VtZW50UHJvcGVydGllcz4KLTwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgotIDx3OldvcmREb2N1bWVudD4KLSAgPHc6VHJhY2tSZXZpc2lvbnMvPgotIDwvdzpXb3JkRG9jdW1lbnQ+Ci08L3htbD48IVtlbmRpZl0tLT4KLTxzdHlsZT4KLTwhLS0KLSAvKiBGb250IERlZmluaXRpb25zICovCi1AZm9udC1mYWNlCi0Je2ZvbnQtZmFtaWx5OlRhaG9tYTsKLQlwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsKLQltc28tZm9udC1jaGFyc2V0OjA7Ci0JbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7Ci0JbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7Ci0JbXNvLWZvbnQtc2lnbmF0dXJlOjU1MzY3OTQ5NSAtMjE0NzQ4MzY0OCA4IDAgNjYwNDcgMDt9Ci0gLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KLXAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKLQl7bXNvLXN0eWxlLXBhcmVudDoiIjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQlmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjsKLQltc28tZmFyZWFzdC1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9Ci1wCi0Je21hcmdpbi1yaWdodDowaW47Ci0JbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87Ci0JbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87Ci0JbWFyZ2luLWxlZnQ6MGluOwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOwotCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30KLXAuQmFsbG9vblRleHQsIGxpLkJhbGxvb25UZXh0LCBkaXYuQmFsbG9vblRleHQKLQl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZTo4LjBwdDsKLQlmb250LWZhbWlseTpUYWhvbWE7Ci0JbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQotQHBhZ2UgU2VjdGlvbjEKLQl7c2l6ZTo4LjVpbiAxMS4waW47Ci0JbWFyZ2luOjEuMGluIDEuMjVpbiAxLjBpbiAxLjI1aW47Ci0JbXNvLWhlYWRlci1tYXJnaW46LjVpbjsKLQltc28tZm9vdGVyLW1hcmdpbjouNWluOwotCW1zby1wYXBlci1zb3VyY2U6MDt9Ci1kaXYuU2VjdGlvbjEKLQl7cGFnZTpTZWN0aW9uMTt9Ci0tLT4KLTwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGxhbmc9RU4tVVMgc3R5bGU9J3RhYi1pbnRlcnZhbDouNWluJz4KLQotPGRpdiBjbGFzcz1TZWN0aW9uMT4KLQotPHAgYWxpZ249Y2VudGVyIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+PGI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9iPgotPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSCi1USEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFIFBVQkxJQyBMSUNFTlNFICgmcXVvdDtBR1JFRU1FTlQmcXVvdDspLiBBTlkgVVNFLAotUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFCi1PRiBUSElTIEFHUkVFTUVOVC48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjEuIERFRklOSVRJT05TPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7Q29udHJpYnV0aW9uJnF1b3Q7IG1lYW5zOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvZGUgYW5kIGRvY3VtZW50YXRpb24KLWRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQ8YnIgY2xlYXI9bGVmdD4KLWIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1hZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+d2hlcmUKLXN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQKLWJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvcgotaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24KLXN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZQotUHJvZ3JhbSB3aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uCi13aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlCi13b3JrcyBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dG9yJnF1b3Q7IG1lYW5zIGFueSBwZXJzb24gb3IKLWVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7TGljZW5zZWQgUGF0ZW50cyAmcXVvdDsgbWVhbiBwYXRlbnQKLWNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2ggYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlCi1vciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UHJvZ3JhbSZxdW90OyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucwotZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgQWdyZWVtZW50Ljwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UmVjaXBpZW50JnF1b3Q7IG1lYW5zIGFueW9uZSB3aG8KLXJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjIuIEdSQU5UIE9GIFJJR0hUUzwvc3Bhbj48L2I+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLVN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50Ci1hIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodCBsaWNlbnNlIHRvPHNwYW4KLXN0eWxlPSdjb2xvcjpyZWQnPiA8L3NwYW4+cmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5Ci1kaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlCi1mb3JtLjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzCi1SZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz4gPC9zcGFuPnJveWFsdHktZnJlZQotcGF0ZW50IGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydAotYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlCi1jb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbgotb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQKLWJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uCi10byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvCi1hbnkgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmMpCi1SZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUgbGljZW5zZXMgdG8gaXRzCi1Db250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvcgotdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eQotcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50Ci1mb3IgY2xhaW1zIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi1wcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kCi1saWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eQotdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IgZXhhbXBsZSwKLWlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50IHRvIGRpc3RyaWJ1dGUKLXRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUKLWRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5kKQotRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudCBjb3B5cmlnaHQKLXJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQgbGljZW5zZSBzZXQgZm9ydGggaW4KLXRoaXMgQWdyZWVtZW50LiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+My4gUkVRVUlSRU1FTlRTPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlCi1Qcm9ncmFtIGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDo8L3NwYW4+Ci08L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikKLWl0cyBsaWNlbnNlIGFncmVlbWVudDo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzIGFuZAotY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiB0aXRsZQotYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkKLWFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1lZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLAotaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaAotYXMgbG9zdCBwcm9maXRzOyA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paWkpCi1zdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0Ci1Db250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aXYpCi1zdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlIGZyb20gc3VjaCBDb250cmlidXRvciwgYW5kCi1pbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhCi1tZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2UuPHNwYW4gc3R5bGU9J2NvbG9yOmJsdWUnPiA8L3NwYW4+PC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlCi1jb2RlIGZvcm06PC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikgYQotY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueQotY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlCi1vcmlnaW5hdG9yIG9mIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cwotc3Vic2VxdWVudCBSZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heQotYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycwotYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2UKLW9mIHRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbAotbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZxdW90O0NvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yJnF1b3Q7KSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyCi1Db250cmlidXRvciAoJnF1b3Q7SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcXVvdDspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQKLWNvc3RzIChjb2xsZWN0aXZlbHkgJnF1b3Q7TG9zc2VzJnF1b3Q7KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIKLWxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvCi10aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluCi1jb25uZWN0aW9uIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdAotb2ZmZXJpbmcuIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzCi1yZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIKLXRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IKLXRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UgYW5kCi1hbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZQotaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi1jbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi13YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4gVW5kZXIgdGhpcwotc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlCi1vdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhCi1jb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjUuIE5PIFdBUlJBTlRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmcXVvdDtBUyBJUyZxdW90OyBCQVNJUywgV0lUSE9VVAotV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLVdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLU1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5Ci1yZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZQotUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcwotQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLAotY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IKLWVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTCi1BR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRgotVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRgotVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjcuIEdFTkVSQUw8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQKLW9yIHVuZW5mb3JjZWFibGUgdW5kZXIgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yCi1lbmZvcmNlYWJpbGl0eSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQKLWZ1cnRoZXIgYWN0aW9uIGJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlCi1taW5pbXVtIGV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbgotYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KQotYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aAotb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlCi1zdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci1zaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvcgotY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlCi1wZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncwotcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZQotY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQKLVN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZgotdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMKLXRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwKLUFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZgotdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCi0oaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkCi1pbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlcgotZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdAotZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlCi1TdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBsYXdzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mCi1BbWVyaWNhLiBObyBwYXJ0eSB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJyaW5nIGEgbGVnYWwgYWN0aW9uIHVuZGVyIHRoaXMKLUFncmVlbWVudCBtb3JlIHRoYW4gb25lIHllYXIgYWZ0ZXIgdGhlIGNhdXNlIG9mIGFjdGlvbiBhcm9zZS4gRWFjaCBwYXJ0eSB3YWl2ZXMKLWl0cyByaWdodHMgdG8gYSBqdXJ5IHRyaWFsIGluIGFueSByZXN1bHRpbmcgbGl0aWdhdGlvbi48L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsPjwhW2lmICFzdXBwb3J0RW1wdHlQYXJhc10+Jm5ic3A7PCFbZW5kaWZdPjxvOnA+PC9vOnA+PC9wPgotCi08L2Rpdj4KLQotPC9ib2R5PgotCi08L2h0bWw+CmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVGZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYWQ5NWZmLi4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCisrKyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLSMgZmVhdHVyZS5wcm9wZXJ0aWVzCi0jIGNvbnRhaW5zIGV4dGVybmFsaXplZCBzdHJpbmdzIGZvciBmZWF0dXJlLnhtbAotIyAiJWZvbyIgaW4gZmVhdHVyZS54bWwgY29ycmVzcG9uZHMgdG8gdGhlIGtleSAiZm9vIiBpbiB0aGlzIGZpbGUKLSMgamF2YS5pby5Qcm9wZXJ0aWVzIGZpbGUgKElTTyA4ODU5LTEgd2l0aCAiXCIgZXNjYXBlcykKLSMgVGhpcyBmaWxlIHNob3VsZCBiZSB0cmFuc2xhdGVkLgotCi0jICJmZWF0dXJlTmFtZSIgcHJvcGVydHkgLSBuYW1lIG9mIHRoZSBmZWF0dXJlCi1mZWF0dXJlTmFtZT1YU0wgVG9vbHMgRGV2ZWxvcGVyIFJlc291cmNlcwotCi0jICJwcm92aWRlck5hbWUiIHByb3BlcnR5IC0gbmFtZSBvZiB0aGUgY29tcGFueSB0aGF0IHByb3ZpZGVzIHRoZSBmZWF0dXJlCi1wcm92aWRlck5hbWU9RWNsaXBzZS5vcmcKLQotIyAidXBkYXRlU2l0ZU5hbWUiIHByb3BlcnR5IC0gbGFiZWwgZm9yIHRoZSB1cGRhdGUgc2l0ZQotdXBkYXRlU2l0ZU5hbWU9VGhlIEVjbGlwc2UgV2ViIFRvb2xzIFBsYXRmb3JtIChXVFApIFByb2plY3QgdXBkYXRlIHNpdGUKLQotIyAiZGVzY3JpcHRpb24iIHByb3BlcnR5IC0gZGVzY3JpcHRpb24gb2YgdGhlIGZlYXR1cmUKLWRlc2NyaXB0aW9uPVNvdXJjZSBjb2RlIFdUUCBYU0wuCi0KLSMgImNvcHlyaWdodCIgcHJvcGVydHkgLSB0ZXh0IG9mIHRoZSAiRmVhdHVyZSBVcGRhdGUgQ29weXJpZ2h0IgotY29weXJpZ2h0PVwKLUNvcHlyaWdodCAoYykgMjAwOCBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQpLFxuXAotRGF2aWQgQ2FydmVyIChTdGFuZGFyZHMgZm9yIFRlY2hub2xvZ3kgaW4gQXV0b21vdGl2ZSBSZXRhaWwpIGFuZCBvdGhlcnMgMjAwOC5cblwKLUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcblwKLWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxuXAotd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcblwKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXG5cCi1cblwKLUNvbnRyaWJ1dG9yczpcblwKLSAgICBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQgLSBodHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51aylcblwKLSAgICBEYXZpZCBDYXJ2ZXIgKFN0YW5kYXJkcyBmb3IgVGVjaG5vbG9neSBpbiBBdXRvbW90aXZlIFJldGFpbCAtIGh0dHA6Ly93d3cuc3RhcnN0YW5kYXJkLm9yZylcblwKLSAgICBKZXNwZXIgTW9sbGVyIChOaW5lQ29uc3VsdCAtIGh0dHA6Ly93d3cubmluZWNvbnN1bHQuZGspXG4KLSMjIyMjIyMjIyMjIyMjIyMgZW5kIG9mIGNvcHlyaWdodCBwcm9wZXJ0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyAibGljZW5zZVVSTCIgcHJvcGVydHkgLSBVUkwgb2YgdGhlICJGZWF0dXJlIExpY2Vuc2UiCi0jIGRvIG5vdCB0cmFuc2xhdGUgdmFsdWUgLSBqdXN0IGNoYW5nZSB0byBwb2ludCB0byBhIGxvY2FsZS1zcGVjaWZpYyBIVE1MIHBhZ2UKLWxpY2Vuc2VVUkw9bGljZW5zZS5odG1sCi0KLSMgImxpY2Vuc2UiIHByb3BlcnR5IC0gdGV4dCBvZiB0aGUgIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiCi0jIHNob3VsZCBiZSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgbGljZW5zZSBhZ3JlZW1lbnQgcG9pbnRlZCB0byBiZSAibGljZW5zZVVSTCIKLWxpY2Vuc2U9XAotRUNMSVBTRSBGT1VOREFUSU9OIFNPRlRXQVJFIFVTRVIgQUdSRUVNRU5UXG5cCi1KdW5lLCAyMDA4XG5cCi1cblwKLVVzYWdlIE9mIENvbnRlbnRcblwKLVxuXAotVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUlxuXAotT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuXG5cCi1VU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVNcblwKLUFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUlxuXAotTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVVxuXAotQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVFxuXAotQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFNcblwKLU9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFXG5cCi1URVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TXG5cCi1PRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRFxuXAotQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULlxuXAotXG5cCi1BcHBsaWNhYmxlIExpY2Vuc2VzXG5cCi1cblwKLVVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uXG5cCi1pcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpY1xuXAotTGljZW5zZSBWZXJzaW9uIDEuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXNcblwKLUNvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sLlxuXAotRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCi1cblwKLUNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLFxuXAotZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZS5vcmcgQ1ZTXG5cCi1yZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIENWUyBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZVxuXAotYXMgZG93bmxvYWRhYmxlIGFyY2hpdmVzICgiRG93bmxvYWRzIikuXG5cCi1cblwKLSAgIC0gQ29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGUgZGVsaXZlcmluZyxcblwKLSAgICAgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLFxuXAotICAgICBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmQgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLlxuXAotICAgLSBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVIgKEphdmE/IEFSY2hpdmUpXG5cCi0gICAgIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi5cblwKLSAgIC0gQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuXG5cCi0gICAgIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGEgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuXG5cCi0gICAgIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvblxuXAotICAgICBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuXG5cCi0gICAtIEZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlc1xuXAotICAgICBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKLVxuXAotRmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIEZpbGVzIG5hbWVkXG5cCi0iZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZlxuXAotSW5jbHVkZWQgRmVhdHVyZXMuXG5cCi1cblwKLVRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmVcblwKLWNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZFxuXAotY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWRcblwKLWluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmVcblwKLUxpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGVcblwKLWluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOlxuXAotXG5cCi0gICAtIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAotICAgLSBQbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3Rvcmllc1xuXAotICAgLSBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCi0gICAtIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKLSAgIC0gRmVhdHVyZSBkaXJlY3Rvcmllc1xuXAotXG5cCi1Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlXG5cCi1FY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFVwZGF0ZVxuXAotTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zXG5cCi1JbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAotd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm1cblwKLXlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW5cblwKLXRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIuIFN1Y2ggQWJvdXRzLFxuXAotRmVhdHVyZSBMaWNlbnNlcyBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kXG5cCi1jb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXJcblwKLXVzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAotXG5cCi1USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVJcblwKLVRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLlxuXAotU09NRSBPRiBUSEVTRSBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOlxuXAotXG5cCi0gICAgLSBDb21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKLSAgICAtIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFKVxuXAotICAgIC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAotICAgIC0gSUJNIFB1YmxpYyBMaWNlbnNlIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9kZXZlbG9wZXJ3b3Jrcy9vcGVuc291cmNlL2xpY2Vuc2UxMC5odG1sKVxuXAotICAgIC0gTWV0cm8gTGluayBQdWJsaWMgTGljZW5zZSAxLjAwIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29wZW5tb3RpZi9zdXBwb3J0ZXJzL21ldHJvbGluay9saWNlbnNlLmh0bWwpXG5cCi0gICAgLSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sKVxuXAotICAgIC0gQ29tbW9uIERldmVsb3BtZW50IGFuZCBEaXN0cmlidXRpb24gTGljZW5zZSAoQ0RETCkgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LnN1bi5jb20vY2RkbC9jZGRsLmh0bWwpXG5cCi1cblwKLUlUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1JcblwKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlXG5cCi1pcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9uc1xuXAotZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAotXG5cCi1DcnlwdG9ncmFwaHlcblwKLVxuXAotQ29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlXG5cCi1jdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsXG5cCi1hbmQvb3IgcmUtZXhwb3J0IHRvIGFub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4gQkVGT1JFXG5cCi11c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cyxcblwKLXJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSxcblwKLWFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLlxuXAotXG5cCi1KYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mIFN1biBNaWNyb3N5c3RlbXMsIEluYy4gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC5cbgotIyMjIyMjIyMjIyMgZW5kIG9mIGxpY2Vuc2UgcHJvcGVydHkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVGZWF0dXJlL2xpY2Vuc2UuaHRtbCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUZlYXR1cmUvbGljZW5zZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWM0YTQ4Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZUZlYXR1cmUvbGljZW5zZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KLTx0aXRsZT5FY2xpcHNlLm9yZyBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvdGl0bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGxhbmc9IkVOLVVTIiBsaW5rPWJsdWUgdmxpbms9cHVycGxlPgotPGgyPkVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvaDI+Ci08cD5KdW5lIDA2LCAyMDA3PC9wPgotCi08aDM+VXNhZ2UgT2YgQ29udGVudDwvaDM+Ci0KLTxwPlRIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLCBJTkZPUk1BVElPTiBBTkQvT1IgT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUwotICAgKENPTExFQ1RJVkVMWSAmcXVvdDtDT05URU5UJnF1b3Q7KS4gIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQKLSAgIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UKLSAgIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SCi0gICBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQKLSAgIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULjwvcD4KLSAgIAotPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPiAgIAotICAgCi08cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wCi0gICAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgotICAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KLQotPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2Uub3JnIENWUyByZXBvc2l0b3J5ICgmcXVvdDtSZXBvc2l0b3J5JnF1b3Q7KSBpbiBDVlMKLSAgIG1vZHVsZXMgKCZxdW90O01vZHVsZXMmcXVvdDspIGFuZCBtYWRlIGF2YWlsYWJsZSBhcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCZxdW90O0Rvd25sb2FkcyZxdW90OykuPC9wPgotICAgCi08dWw+Ci0JPGxpPkNvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoJnF1b3Q7UGx1Zy1pbnMmcXVvdDspLCBwbHVnLWluIGZyYWdtZW50cyAoJnF1b3Q7RnJhZ21lbnRzJnF1b3Q7KSwgYW5kIGZlYXR1cmVzICgmcXVvdDtGZWF0dXJlcyZxdW90OykuPC9saT4KLQk8bGk+RWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhJnRyYWRlOyBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAmcXVvdDtwbHVnaW5zJnF1b3Q7LjwvbGk+Ci0JPGxpPkEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLiAgRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgJnF1b3Q7ZmVhdHVyZXMmcXVvdDsuICBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAmcXVvdDtmZWF0dXJlLnhtbCZxdW90OyBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zCi0gICAgICBhbmQvb3IgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuPC9saT4KLQk8bGk+RmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoJnF1b3Q7SW5jbHVkZWQgRmVhdHVyZXMmcXVvdDspLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAmcXVvdDtmZWF0dXJlLnhtbCZxdW90OyBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuPC9saT4KLTwvdWw+ICAgCi0gCi08cD5UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAmcXVvdDthYm91dC5odG1sJnF1b3Q7ICgmcXVvdDtBYm91dHMmcXVvdDspLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZAotSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAmcXVvdDtsaWNlbnNlLmh0bWwmcXVvdDsgKCZxdW90O0ZlYXR1cmUgTGljZW5zZXMmcXVvdDspLiAgQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUKLWluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvcD4KLQotPHVsPgotCTxsaT5UaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3Rvcnk8L2xpPgotCTxsaT5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvbGk+Ci0JPGxpPkluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnM8L2xpPgotCTxsaT5TdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAmcXVvdDtzcmMmcXVvdDsgb2YgY2VydGFpbiBQbHVnLWluczwvbGk+Ci0JPGxpPkZlYXR1cmUgZGlyZWN0b3JpZXM8L2xpPgotPC91bD4KLQkJCi08cD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlIEVjbGlwc2UgVXBkYXRlIE1hbmFnZXIsIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoJnF1b3Q7RmVhdHVyZSBVcGRhdGUgTGljZW5zZSZxdW90OykgZHVyaW5nIHRoZQotaW5zdGFsbGF0aW9uIHByb2Nlc3MuICBJZiB0aGUgRmVhdHVyZSBjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdSB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgdGhlIEluY2x1ZGVkIEZlYXR1cmVzIG9yCi1pbmZvcm0geW91IHdoZXJlIHlvdSBjYW4gbG9jYXRlIHRoZW0uICBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlICZxdW90O2xpY2Vuc2UmcXVvdDsgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgJnF1b3Q7ZmVhdHVyZS5wcm9wZXJ0aWVzJnF1b3Q7IGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4KLXRoYXQgZGlyZWN0b3J5LjwvcD4KLQotPHA+VEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUiBUTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gIFNPTUUgT0YgVEhFU0UKLU9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6PC9wPgotCi08dWw+Ci0JPGxpPkNvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbDwvYT4pPC9saT4KLQk8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFPC9hPik8L2xpPgotCTxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMDwvYT4pPC9saT4KLQk8bGk+SUJNIFB1YmxpYyBMaWNlbnNlIDEuMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9kZXZlbG9wZXJ3b3Jrcy9vcGVuc291cmNlL2xpY2Vuc2UxMC5odG1sIj5odHRwOi8vb3NzLnNvZnR3YXJlLmlibS5jb20vZGV2ZWxvcGVyd29ya3Mvb3BlbnNvdXJjZS9saWNlbnNlMTAuaHRtbDwvYT4pPC9saT4JCi0JPGxpPk1ldHJvIExpbmsgUHVibGljIExpY2Vuc2UgMS4wMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vcGVubW90aWYvc3VwcG9ydGVycy9tZXRyb2xpbmsvbGljZW5zZS5odG1sIj5odHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb3Blbm1vdGlmL3N1cHBvcnRlcnMvbWV0cm9saW5rL2xpY2Vuc2UuaHRtbDwvYT4pPC9saT4KLQk8bGk+TW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbCI+aHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sPC9hPik8L2xpPgotICA8TEk+Q29tbW9uIERldmVsb3BtZW50IGFuZCBEaXN0cmlidXRpb24gTGljZW5zZSAoQ0RETCkgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8QSAKLSAgaHJlZj0iaHR0cDovL3d3dy5zdW4uY29tL2NkZGwvY2RkbC5odG1sIj5odHRwOi8vd3d3LnN1bi5jb20vY2RkbC9jZGRsLmh0bWwpPC9BPgotICA8L0xJPgotPC9VTD4KLQotPHA+SVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiBUTyBVU0UgT0YgVEhFIENPTlRFTlQuICBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIHByb3ZpZGVkLCBwbGVhc2UKLWNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm4gdGhhdCBwYXJ0aWN1bGFyIENvbnRlbnQuPC9wPgotCi08aDM+Q3J5cHRvZ3JhcGh5PC9oMz4KLQotPHA+Q29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlIGN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0bwotICAgYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsCi0gICBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLjwvcD4KLSAgIAotPHNtYWxsPkphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLiBpbiB0aGUgVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLjwvc21hbGw+ICAgCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYWJvdXQuaHRtbCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9hYm91dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTk5ZGYzLi4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9hYm91dC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPEhUTUw+Ci0KLTxoZWFkPgotPHRpdGxlPkFib3V0PC90aXRsZT4KLTxtZXRhIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTwvaGVhZD4KLQotPEJPRFkgbGFuZz0iRU4tVVMiPgotCi08SDM+QWJvdXQgVGhpcyBDb250ZW50PC9IMz4KLQotPFA+SnVuZSwgMjAwODwvUD4KLQotPEgzPkxpY2Vuc2U8L0gzPgotCi08UD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gCi0oIkNvbnRlbnQiKS4gVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSAKLXVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAKLSgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSBhdAotPEEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC12MTAucGhwIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLXYxMC5waHA8L0E+LiAKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvUD4KLQotPFA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgCi1Db250ZW50IGlzIGJlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoIlJlZGlzdHJpYnV0b3IiKSBhbmQgZGlmZmVyZW50IAotdGVybXMgYW5kIGNvbmRpdGlvbnMgbWF5IGFwcGx5IHRvIHlvdXIgdXNlIG9mIGFueSBvYmplY3QgY29kZSBpbiB0aGUgQ29udGVudC4gCi1DaGVjayB0aGUgUmVkaXN0cmlidXRvcpJzIGxpY2Vuc2UgdGhhdCB3YXMgcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gSWYgbm8gc3VjaCAKLWxpY2Vuc2UgZXhpc3RzLCBjb250YWN0IHRoZSBSZWRpc3RyaWJ1dG9yLiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCBiZWxvdywgdGhlIAotdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQgCi1hbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQKLTxBIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnLzwvQT4uPC9QPgotCi08L0JPRFk+Ci08L0hUTUw+CmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYWJvdXQuaW5pIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2Fib3V0LmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmRhNWE0MC4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYWJvdXQuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBAQAotIyBhYm91dC5pbmkKLSMgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgYSBmZWF0dXJlCi0jIGphdmEuaW8uUHJvcGVydGllcyBmaWxlIChJU08gODg1OS0xIHdpdGggIlwiIGVzY2FwZXMpCi0jICIla2V5IiBhcmUgZXh0ZXJuYWxpemVkIHN0cmluZ3MgZGVmaW5lZCBpbiBhYm91dC5wcm9wZXJ0aWVzCi0jIFRoaXMgZmlsZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQuCi0KLSMgUHJvcGVydHkgImFib3V0VGV4dCIgY29udGFpbnMgYmx1cmIgZm9yICJBYm91dCIgZGlhbG9nICh0cmFuc2xhdGVkKQotYWJvdXRUZXh0PSVibHVyYgotCi0jIFByb3BlcnR5ICJ3aW5kb3dJbWFnZSIgY29udGFpbnMgcGF0aCB0byB3aW5kb3cgaWNvbiAoMTZ4MTYpCi0jIG5lZWRlZCBmb3IgcHJpbWFyeSBmZWF0dXJlcyBvbmx5Ci0KLSMgUHJvcGVydHkgImZlYXR1cmVJbWFnZSIgY29udGFpbnMgcGF0aCB0byBmZWF0dXJlIGltYWdlICgzMngzMikKLWZlYXR1cmVJbWFnZT13dHBfcHJvZDMyLnBuZwotCi0jIFByb3BlcnR5ICJhYm91dEltYWdlIiBjb250YWlucyBwYXRoIHRvIHByb2R1Y3QgaW1hZ2UgKDUwMHgzMzAgb3IgMTE1eDE2NCkKLSMgbmVlZGVkIGZvciBwcmltYXJ5IGZlYXR1cmVzIG9ubHkKLQotIyBQcm9wZXJ0eSAiYXBwTmFtZSIgY29udGFpbnMgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gKG5vdCB0cmFuc2xhdGVkKQotIyBuZWVkZWQgZm9yIHByaW1hcnkgZmVhdHVyZXMgb25seQotCi0jIFByb3BlcnR5ICJ3ZWxjb21lUGFnZSIgY29udGFpbnMgcGF0aCB0byB3ZWxjb21lIHBhZ2UgKHNwZWNpYWwgWE1MLWJhc2VkIGZvcm1hdCkKLSMgb3B0aW9uYWwKLQotIyBQcm9wZXJ0eSAid2VsY29tZVBlcnNwZWN0aXZlIiBjb250YWlucyB0aGUgaWQgb2YgdGhlIHBlcnNwZWN0aXZlIGluIHdoaWNoIHRoZQotIyB3ZWxjb21lIHBhZ2UgaXMgdG8gYmUgb3BlbmVkLgotIyBvcHRpb25hbAotCi0KLQotCmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYWJvdXQubWFwcGluZ3MgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYWJvdXQubWFwcGluZ3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyODM5MGEuLjAwMDAwMDAKLS0tIGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2Fib3V0Lm1hcHBpbmdzCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi0jIGFib3V0Lm1hcHBpbmdzCi0jIGNvbnRhaW5zIGZpbGwtaW5zIGZvciBhYm91dC5wcm9wZXJ0aWVzCi0jIGphdmEuaW8uUHJvcGVydGllcyBmaWxlIChJU08gODg1OS0xIHdpdGggIlwiIGVzY2FwZXMpCi0jIFRoaXMgZmlsZSBkb2VzIG5vdCBuZWVkIHRvIGJlIHRyYW5zbGF0ZWQuCi0KLTA9QGJ1aWxkQApkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2Fib3V0LnByb3BlcnRpZXMgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYWJvdXQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdjOThiMS4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vYWJvdXQucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMgQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAotIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotIyAKLSMgQ29udHJpYnV0b3JzOgotIyAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCi0jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0jIGFib3V0LnByb3BlcnRpZXMKLSMgY29udGFpbnMgZXh0ZXJuYWxpemVkIHN0cmluZ3MgZm9yIGFib3V0LmluaQotIyBqYXZhLmlvLlByb3BlcnRpZXMgZmlsZSAoSVNPIDg4NTktMSB3aXRoICJcIiBlc2NhcGVzKQotIyBmaWxsLWlucyBhcmUgc3VwcGxpZWQgYnkgYWJvdXQubWFwcGluZ3MKLSMgVGhpcyBmaWxlIHNob3VsZCBiZSB0cmFuc2xhdGVkLgotIwotIyBEbyBub3QgdHJhbnNsYXRlIGFueSB2YWx1ZXMgc3Vycm91bmRlZCBieSB7fQotCi1ibHVyYj1XVFAgWFNMIFNvdXJjZVxuXAotXG5cCi1WZXJzaW9uOiB7ZmVhdHVyZVZlcnNpb259XG5cCi1CdWlsZCBpZDogezB9XG5cCi1cblwKLShjKSBDb3B5cmlnaHQgRG91ZyBTYXRjaHdlbGwgKENoYXNlIFRlY2hub2xvZ3kgTHRkKSwgRGF2aWQgQ2FydmVyIChTdGFuZGFyZHMgZm9yIFRlY2hub2xvZ3kgaW4gQXV0b21vdGl2ZSBSZXRhaWwpXG5cCi1hbmQgb3RoZXJzIDIwMDguIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cCi1WaXNpdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL3dlYnRvb2xzCi0KZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9idWlsZC5wcm9wZXJ0aWVzIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMwYTU3NWMuLjAwMDAwMDAKLS0tIGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotYmluLmluY2x1ZGVzID0gYWJvdXQuaHRtbCwgYWJvdXQuaW5pLCBhYm91dC5tYXBwaW5ncywgYWJvdXQucHJvcGVydGllcywgd3RwX3Byb2QzMi5wbmcsIHBsdWdpbi5wcm9wZXJ0aWVzLCBwbHVnaW4ueG1sLCBzcmMvKiosIE1FVEEtSU5GLwotc291cmNlUGx1Z2luID0gdHJ1ZQpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3BsdWdpbi5wcm9wZXJ0aWVzIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3BsdWdpbi5wcm9wZXJ0aWVzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMjM0MWNhLi4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi9wbHVnaW4ucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotcGx1Z2luTmFtZT1XVFAgWFNMIFNvdXJjZQotcHJvdmlkZXJOYW1lPUVjbGlwc2Uub3JnCmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vd3RwX3Byb2QzMi5naWYgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUvc291cmNlVGVtcGxhdGVQbHVnaW4vd3RwX3Byb2QzMi5naWYKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVlZmI0NGEuLjAwMDAwMDAKLS0tIGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3d0cF9wcm9kMzIuZ2lmCisrKyAvZGV2L251bGwKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3d0cF9wcm9kMzIucG5nIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlL3NvdXJjZVRlbXBsYXRlUGx1Z2luL3d0cF9wcm9kMzIucG5nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZmNlYWIzLi4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZS9zb3VyY2VUZW1wbGF0ZVBsdWdpbi93dHBfcHJvZDMyLnBuZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvLnByb2plY3QgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlLy5wcm9qZWN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYTU1NGU0Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvLnByb2plY3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPHByb2plY3REZXNjcmlwdGlvbj4KLQk8bmFtZT5vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlPC9uYW1lPgotCTxjb21tZW50PjwvY29tbWVudD4KLQk8cHJvamVjdHM+Ci0JPC9wcm9qZWN0cz4KLQk8YnVpbGRTcGVjPgotCQk8YnVpbGRDb21tYW5kPgotCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLkZlYXR1cmVCdWlsZGVyPC9uYW1lPgotCQkJPGFyZ3VtZW50cz4KLQkJCTwvYXJndW1lbnRzPgotCQk8L2J1aWxkQ29tbWFuZD4KLQk8L2J1aWxkU3BlYz4KLQk8bmF0dXJlcz4KLQkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZU5hdHVyZTwvbmF0dXJlPgotCTwvbmF0dXJlcz4KLTwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzc1MGRmMS4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotI1N1biBEZWMgMTYgMTY6NTc6NTcgRVNUIDIwMDcKLWVjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xCi1lbmNvZGluZy88cHJvamVjdD49SVNPLTg4NTktMQpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLnByZWZzIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UucGRlLnByZWZzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZGQ4NTY4Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLnBkZS5wcmVmcworKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSNGcmkgSmFuIDA0IDA5OjA0OjQzIEVTVCAyMDA4Ci1jb21waWxlcnMuaW5jb21wYXRpYmxlLWVudmlyb25tZW50PTEKLWNvbXBpbGVycy5wLmJ1aWxkPTAKLWNvbXBpbGVycy5wLmRlcHJlY2F0ZWQ9MQotY29tcGlsZXJzLnAubWlzc2luZy1idW5kbGUtY2xhc3NwYXRoLWVudHJpZXM9MAotY29tcGlsZXJzLnAubWlzc2luZy1wYWNrYWdlcz0yCi1jb21waWxlcnMucC5uby1yZXF1aXJlZC1hdHQ9MAotY29tcGlsZXJzLnAubm90LWV4dGVybmFsaXplZC1hdHQ9MAotY29tcGlsZXJzLnAudW5rbm93bi1hdHRyaWJ1dGU9MAotY29tcGlsZXJzLnAudW5rbm93bi1jbGFzcz0xCi1jb21waWxlcnMucC51bmtub3duLWVsZW1lbnQ9MAotY29tcGlsZXJzLnAudW5rbm93bi1yZXNvdXJjZT0xCi1jb21waWxlcnMucC51bnJlc29sdmVkLWV4LXBvaW50cz0wCi1jb21waWxlcnMucC51bnJlc29sdmVkLWltcG9ydD0wCi1jb21waWxlcnMudXNlLXByb2plY3Q9dHJ1ZQotZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTEKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTAzY2I3Ni4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLWJpbi5pbmNsdWRlcyA9IGZlYXR1cmUueG1sLFwKLSAgICAgICAgICAgICAgIGxpY2Vuc2UuaHRtbCxcCi0gICAgICAgICAgICAgICBlcGwtdjEwLmh0bWwsXAotICAgICAgICAgICAgICAgZWNsaXBzZV91cGRhdGVfMTIwLmpwZyxcCi0gICAgICAgICAgICAgICBmZWF0dXJlLnByb3BlcnRpZXMKLQotZ2VuZXJhdGUuZmVhdHVyZUBvcmcuZWNsaXBzZS53c3QueHNsLmZlYXR1cmUuc291cmNlPW9yZy5lY2xpcHNlLndzdC54c2wuZmVhdHVyZQpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS9lY2xpcHNlX3VwZGF0ZV8xMjAuanBnIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS9lY2xpcHNlX3VwZGF0ZV8xMjAuanBnCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZmRmNzA4Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvZWNsaXBzZV91cGRhdGVfMTIwLmpwZworKysgL2Rldi9udWxsCkJpbmFyeSBmaWxlcyBkaWZmZXIKZGlmZiAtLWdpdCBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvZXBsLXYxMC5odG1sIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkNGIxOTYuLjAwMDAwMDAKLS0tIGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMjggKzAsMCBAQAotPGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIgoteG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIKLXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KLQotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9d2luZG93cy0xMjUyIj4KLTxtZXRhIG5hbWU9UHJvZ0lkIGNvbnRlbnQ9V29yZC5Eb2N1bWVudD4KLTxtZXRhIG5hbWU9R2VuZXJhdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDkiPgotPG1ldGEgbmFtZT1PcmlnaW5hdG9yIGNvbnRlbnQ9Ik1pY3Jvc29mdCBXb3JkIDkiPgotPGxpbmsgcmVsPUZpbGUtTGlzdAotaHJlZj0iLi9FY2xpcHNlJTIwRVBMJTIwMjAwM18xMV8xMCUyMEZpbmFsX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+Ci08dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMS4wPC90aXRsZT4KLTwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgotIDxvOkRvY3VtZW50UHJvcGVydGllcz4KLSAgPG86UmV2aXNpb24+MjwvbzpSZXZpc2lvbj4KLSAgPG86VG90YWxUaW1lPjM8L286VG90YWxUaW1lPgotICA8bzpDcmVhdGVkPjIwMDQtMDMtMDVUMjM6MDM6MDBaPC9vOkNyZWF0ZWQ+Ci0gIDxvOkxhc3RTYXZlZD4yMDA0LTAzLTA1VDIzOjAzOjAwWjwvbzpMYXN0U2F2ZWQ+Ci0gIDxvOlBhZ2VzPjQ8L286UGFnZXM+Ci0gIDxvOldvcmRzPjE2MjY8L286V29yZHM+Ci0gIDxvOkNoYXJhY3RlcnM+OTI3MDwvbzpDaGFyYWN0ZXJzPgotICAgPG86TGluZXM+Nzc8L286TGluZXM+Ci0gIDxvOlBhcmFncmFwaHM+MTg8L286UGFyYWdyYXBocz4KLSAgPG86Q2hhcmFjdGVyc1dpdGhTcGFjZXM+MTEzODQ8L286Q2hhcmFjdGVyc1dpdGhTcGFjZXM+Ci0gIDxvOlZlcnNpb24+OS40NDAyPC9vOlZlcnNpb24+Ci0gPC9vOkRvY3VtZW50UHJvcGVydGllcz4KLTwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5XT48eG1sPgotIDx3OldvcmREb2N1bWVudD4KLSAgPHc6VHJhY2tSZXZpc2lvbnMvPgotIDwvdzpXb3JkRG9jdW1lbnQ+Ci08L3htbD48IVtlbmRpZl0tLT4KLTxzdHlsZT4KLTwhLS0KLSAvKiBGb250IERlZmluaXRpb25zICovCi1AZm9udC1mYWNlCi0Je2ZvbnQtZmFtaWx5OlRhaG9tYTsKLQlwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsKLQltc28tZm9udC1jaGFyc2V0OjA7Ci0JbXNvLWdlbmVyaWMtZm9udC1mYW1pbHk6c3dpc3M7Ci0JbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7Ci0JbXNvLWZvbnQtc2lnbmF0dXJlOjU1MzY3OTQ5NSAtMjE0NzQ4MzY0OCA4IDAgNjYwNDcgMDt9Ci0gLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KLXAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKLQl7bXNvLXN0eWxlLXBhcmVudDoiIjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQlmb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjsKLQltc28tZmFyZWFzdC1mb250LWZhbWlseToiVGltZXMgTmV3IFJvbWFuIjt9Ci1wCi0Je21hcmdpbi1yaWdodDowaW47Ci0JbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87Ci0JbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87Ci0JbWFyZ2luLWxlZnQ6MGluOwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iOwotCW1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiJUaW1lcyBOZXcgUm9tYW4iO30KLXAuQmFsbG9vblRleHQsIGxpLkJhbGxvb25UZXh0LCBkaXYuQmFsbG9vblRleHQKLQl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZTo4LjBwdDsKLQlmb250LWZhbWlseTpUYWhvbWE7Ci0JbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6IlRpbWVzIE5ldyBSb21hbiI7fQotQHBhZ2UgU2VjdGlvbjEKLQl7c2l6ZTo4LjVpbiAxMS4waW47Ci0JbWFyZ2luOjEuMGluIDEuMjVpbiAxLjBpbiAxLjI1aW47Ci0JbXNvLWhlYWRlci1tYXJnaW46LjVpbjsKLQltc28tZm9vdGVyLW1hcmdpbjouNWluOwotCW1zby1wYXBlci1zb3VyY2U6MDt9Ci1kaXYuU2VjdGlvbjEKLQl7cGFnZTpTZWN0aW9uMTt9Ci0tLT4KLTwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGxhbmc9RU4tVVMgc3R5bGU9J3RhYi1pbnRlcnZhbDouNWluJz4KLQotPGRpdiBjbGFzcz1TZWN0aW9uMT4KLQotPHAgYWxpZ249Y2VudGVyIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+PGI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9iPgotPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSCi1USEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFIFBVQkxJQyBMSUNFTlNFICgmcXVvdDtBR1JFRU1FTlQmcXVvdDspLiBBTlkgVVNFLAotUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFCi1PRiBUSElTIEFHUkVFTUVOVC48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjEuIERFRklOSVRJT05TPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7Q29udHJpYnV0aW9uJnF1b3Q7IG1lYW5zOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvZGUgYW5kIGRvY3VtZW50YXRpb24KLWRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQ8YnIgY2xlYXI9bGVmdD4KLWIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1hZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+d2hlcmUKLXN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQKLWJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvcgotaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24KLXN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZQotUHJvZ3JhbSB3aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uCi13aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlCi13b3JrcyBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dG9yJnF1b3Q7IG1lYW5zIGFueSBwZXJzb24gb3IKLWVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7TGljZW5zZWQgUGF0ZW50cyAmcXVvdDsgbWVhbiBwYXRlbnQKLWNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2ggYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlCi1vciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UHJvZ3JhbSZxdW90OyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucwotZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgQWdyZWVtZW50Ljwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UmVjaXBpZW50JnF1b3Q7IG1lYW5zIGFueW9uZSB3aG8KLXJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjIuIEdSQU5UIE9GIFJJR0hUUzwvc3Bhbj48L2I+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLVN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50Ci1hIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodCBsaWNlbnNlIHRvPHNwYW4KLXN0eWxlPSdjb2xvcjpyZWQnPiA8L3NwYW4+cmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5Ci1kaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlCi1mb3JtLjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzCi1SZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz4gPC9zcGFuPnJveWFsdHktZnJlZQotcGF0ZW50IGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydAotYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlCi1jb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbgotb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQKLWJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uCi10byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvCi1hbnkgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmMpCi1SZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUgbGljZW5zZXMgdG8gaXRzCi1Db250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvcgotdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eQotcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50Ci1mb3IgY2xhaW1zIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi1wcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kCi1saWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eQotdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IgZXhhbXBsZSwKLWlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50IHRvIGRpc3RyaWJ1dGUKLXRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUKLWRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5kKQotRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudCBjb3B5cmlnaHQKLXJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQgbGljZW5zZSBzZXQgZm9ydGggaW4KLXRoaXMgQWdyZWVtZW50LiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+My4gUkVRVUlSRU1FTlRTPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlCi1Qcm9ncmFtIGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDo8L3NwYW4+Ci08L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikKLWl0cyBsaWNlbnNlIGFncmVlbWVudDo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzIGFuZAotY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiB0aXRsZQotYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkKLWFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1lZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLAotaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaAotYXMgbG9zdCBwcm9maXRzOyA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paWkpCi1zdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0Ci1Db250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aXYpCi1zdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlIGZyb20gc3VjaCBDb250cmlidXRvciwgYW5kCi1pbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhCi1tZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2UuPHNwYW4gc3R5bGU9J2NvbG9yOmJsdWUnPiA8L3NwYW4+PC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlCi1jb2RlIGZvcm06PC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikgYQotY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueQotY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlCi1vcmlnaW5hdG9yIG9mIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cwotc3Vic2VxdWVudCBSZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heQotYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycwotYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2UKLW9mIHRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbAotbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZxdW90O0NvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yJnF1b3Q7KSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyCi1Db250cmlidXRvciAoJnF1b3Q7SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcXVvdDspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQKLWNvc3RzIChjb2xsZWN0aXZlbHkgJnF1b3Q7TG9zc2VzJnF1b3Q7KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIKLWxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvCi10aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluCi1jb25uZWN0aW9uIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdAotb2ZmZXJpbmcuIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzCi1yZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIKLXRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IKLXRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UgYW5kCi1hbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZQotaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi1jbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi13YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4gVW5kZXIgdGhpcwotc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlCi1vdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhCi1jb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjUuIE5PIFdBUlJBTlRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmcXVvdDtBUyBJUyZxdW90OyBCQVNJUywgV0lUSE9VVAotV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLVdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLU1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5Ci1yZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZQotUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcwotQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLAotY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IKLWVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTCi1BR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRgotVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRgotVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjcuIEdFTkVSQUw8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQKLW9yIHVuZW5mb3JjZWFibGUgdW5kZXIgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yCi1lbmZvcmNlYWJpbGl0eSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQKLWZ1cnRoZXIgYWN0aW9uIGJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlCi1taW5pbXVtIGV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbgotYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KQotYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aAotb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlCi1zdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci1zaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvcgotY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlCi1wZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncwotcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZQotY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQKLVN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZgotdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMKLXRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwKLUFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZgotdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCi0oaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkCi1pbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlcgotZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdAotZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlCi1TdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBsYXdzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mCi1BbWVyaWNhLiBObyBwYXJ0eSB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJyaW5nIGEgbGVnYWwgYWN0aW9uIHVuZGVyIHRoaXMKLUFncmVlbWVudCBtb3JlIHRoYW4gb25lIHllYXIgYWZ0ZXIgdGhlIGNhdXNlIG9mIGFjdGlvbiBhcm9zZS4gRWFjaCBwYXJ0eSB3YWl2ZXMKLWl0cyByaWdodHMgdG8gYSBqdXJ5IHRyaWFsIGluIGFueSByZXN1bHRpbmcgbGl0aWdhdGlvbi48L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsPjwhW2lmICFzdXBwb3J0RW1wdHlQYXJhc10+Jm5ic3A7PCFbZW5kaWZdPjxvOnA+PC9vOnA+PC9wPgotCi08L2Rpdj4KLQotPC9ib2R5PgotCi08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMgYi9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2MwNjkxOC4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcworKysgL2Rldi9udWxsCkBAIC0xLDEzOCArMCwwIEBACi0jIGZlYXR1cmUucHJvcGVydGllcwotIyBjb250YWlucyBleHRlcm5hbGl6ZWQgc3RyaW5ncyBmb3IgZmVhdHVyZS54bWwKLSMgIiVmb28iIGluIGZlYXR1cmUueG1sIGNvcnJlc3BvbmRzIHRvIHRoZSBrZXkgImZvbyIgaW4gdGhpcyBmaWxlCi0jIGphdmEuaW8uUHJvcGVydGllcyBmaWxlIChJU08gODg1OS0xIHdpdGggIlwiIGVzY2FwZXMpCi0jIFRoaXMgZmlsZSBzaG91bGQgYmUgdHJhbnNsYXRlZC4KLQotIyAiZmVhdHVyZU5hbWUiIHByb3BlcnR5IC0gbmFtZSBvZiB0aGUgZmVhdHVyZQotZmVhdHVyZU5hbWU9WFNMIFRvb2xzIFNESyAoSW5jdWJhdGluZykKLQotIyAicHJvdmlkZXJOYW1lIiBwcm9wZXJ0eSAtIG5hbWUgb2YgdGhlIGNvbXBhbnkgdGhhdCBwcm92aWRlcyB0aGUgZmVhdHVyZQotcHJvdmlkZXJOYW1lPUVjbGlwc2Uub3JnCi0KLSMgInVwZGF0ZVNpdGVOYW1lIiBwcm9wZXJ0eSAtIGxhYmVsIGZvciB0aGUgdXBkYXRlIHNpdGUKLXVwZGF0ZVNpdGVOYW1lPVRoZSBFY2xpcHNlIFdlYiBUb29scyBQbGF0Zm9ybSAoV1RQKSBQcm9qZWN0IHVwZGF0ZSBzaXRlCi0KLSMgImRlc2NyaXB0aW9uIiBwcm9wZXJ0eSAtIGRlc2NyaXB0aW9uIG9mIHRoZSBmZWF0dXJlCi1kZXNjcmlwdGlvbj1YU0xUIEVkaXRvciwgdmFsaWRhdG9yLCBsYXVuY2hpbmcgYW5kIGRlYnVnZ2luZyBzdXBwb3J0Ci0KLSMgImNvcHlyaWdodCIgcHJvcGVydHkgLSB0ZXh0IG9mIHRoZSAiRmVhdHVyZSBVcGRhdGUgQ29weXJpZ2h0IgotY29weXJpZ2h0PVwKLUNvcHlyaWdodCAoYykgMjAwOCBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQpLFxuXAotRGF2aWQgQ2FydmVyIChTdGFuZGFyZHMgZm9yIFRlY2hub2xvZ3kgaW4gQXV0b21vdGl2ZSBSZXRhaWwpIGFuZCBvdGhlcnMgMjAwOC5cblwKLUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcblwKLWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxuXAotd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcblwKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXG5cCi1cblwKLUNvbnRyaWJ1dG9yczpcblwKLSAgICBEb3VnIFNhdGNod2VsbCAoQ2hhc2UgVGVjaG5vbG9neSBMdGQgLSBodHRwOi8vd3d3LmNoYXNldGVjaG5vbG9neS5jby51aylcblwKLSAgICBEYXZpZCBDYXJ2ZXIgKFN0YW5kYXJkcyBmb3IgVGVjaG5vbG9neSBpbiBBdXRvbW90aXZlIFJldGFpbCAtIGh0dHA6Ly93d3cuc3RhcnN0YW5kYXJkLm9yZylcblwKLSAgICBKZXNwZXIgTW9sbGVyIChOaW5lQ29uc3VsdCAtIGh0dHA6Ly93d3cubmluZWNvbnN1bHQuZGspXG4KLSMjIyMjIyMjIyMjIyMjIyMgZW5kIG9mIGNvcHlyaWdodCBwcm9wZXJ0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotIyAibGljZW5zZVVSTCIgcHJvcGVydHkgLSBVUkwgb2YgdGhlICJGZWF0dXJlIExpY2Vuc2UiCi0jIGRvIG5vdCB0cmFuc2xhdGUgdmFsdWUgLSBqdXN0IGNoYW5nZSB0byBwb2ludCB0byBhIGxvY2FsZS1zcGVjaWZpYyBIVE1MIHBhZ2UKLWxpY2Vuc2VVUkw9bGljZW5zZS5odG1sCi0KLSMgImxpY2Vuc2UiIHByb3BlcnR5IC0gdGV4dCBvZiB0aGUgIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiCi0jIHNob3VsZCBiZSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgbGljZW5zZSBhZ3JlZW1lbnQgcG9pbnRlZCB0byBiZSAibGljZW5zZVVSTCIKLWxpY2Vuc2U9XAotRUNMSVBTRSBGT1VOREFUSU9OIFNPRlRXQVJFIFVTRVIgQUdSRUVNRU5UXG5cCi1KdW5lIDA2LCAyMDA3XG5cCi1cblwKLVVzYWdlIE9mIENvbnRlbnRcblwKLVxuXAotVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUlxuXAotT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuXG5cCi1VU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVNcblwKLUFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUlxuXAotTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVVxuXAotQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVFxuXAotQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFNcblwKLU9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFXG5cCi1URVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TXG5cCi1PRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRFxuXAotQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULlxuXAotXG5cCi1BcHBsaWNhYmxlIExpY2Vuc2VzXG5cCi1cblwKLVVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uXG5cCi1pcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpY1xuXAotTGljZW5zZSBWZXJzaW9uIDEuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXNcblwKLUNvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sLlxuXAotRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCi1cblwKLUNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLFxuXAotZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZS5vcmcgQ1ZTXG5cCi1yZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIENWUyBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZVxuXAotYXMgZG93bmxvYWRhYmxlIGFyY2hpdmVzICgiRG93bmxvYWRzIikuXG5cCi1cblwKLSAgIC0gQ29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGUgZGVsaXZlcmluZyxcblwKLSAgICAgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLFxuXAotICAgICBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmQgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLlxuXAotICAgLSBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVIgKEphdmE/IEFSY2hpdmUpXG5cCi0gICAgIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi5cblwKLSAgIC0gQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuXG5cCi0gICAgIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGEgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuXG5cCi0gICAgIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvblxuXAotICAgICBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuXG5cCi0gICAtIEZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlc1xuXAotICAgICBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKLVxuXAotRmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIEZpbGVzIG5hbWVkXG5cCi0iZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZlxuXAotSW5jbHVkZWQgRmVhdHVyZXMuXG5cCi1cblwKLVRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmVcblwKLWNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZFxuXAotY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWRcblwKLWluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmVcblwKLUxpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGVcblwKLWluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOlxuXAotXG5cCi0gICAtIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAotICAgLSBQbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3Rvcmllc1xuXAotICAgLSBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCi0gICAtIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKLSAgIC0gRmVhdHVyZSBkaXJlY3Rvcmllc1xuXAotXG5cCi1Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlXG5cCi1FY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFVwZGF0ZVxuXAotTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zXG5cCi1JbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAotd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm1cblwKLXlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW5cblwKLXRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIuIFN1Y2ggQWJvdXRzLFxuXAotRmVhdHVyZSBMaWNlbnNlcyBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kXG5cCi1jb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXJcblwKLXVzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAotXG5cCi1USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVJcblwKLVRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLlxuXAotU09NRSBPRiBUSEVTRSBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOlxuXAotXG5cCi0gICAgLSBDb21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKLSAgICAtIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFKVxuXAotICAgIC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAotICAgIC0gSUJNIFB1YmxpYyBMaWNlbnNlIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9kZXZlbG9wZXJ3b3Jrcy9vcGVuc291cmNlL2xpY2Vuc2UxMC5odG1sKVxuXAotICAgIC0gTWV0cm8gTGluayBQdWJsaWMgTGljZW5zZSAxLjAwIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29wZW5tb3RpZi9zdXBwb3J0ZXJzL21ldHJvbGluay9saWNlbnNlLmh0bWwpXG5cCi0gICAgLSBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sKVxuXAotICAgIC0gQ29tbW9uIERldmVsb3BtZW50IGFuZCBEaXN0cmlidXRpb24gTGljZW5zZSAoQ0RETCkgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LnN1bi5jb20vY2RkbC9jZGRsLmh0bWwpXG5cCi1cblwKLUlUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1JcblwKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlXG5cCi1pcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9uc1xuXAotZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAotXG5cCi1DcnlwdG9ncmFwaHlcblwKLVxuXAotQ29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlXG5cCi1jdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsXG5cCi1hbmQvb3IgcmUtZXhwb3J0IHRvIGFub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4gQkVGT1JFXG5cCi11c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cyxcblwKLXJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSxcblwKLWFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLlxuXAotXG5cCi1KYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mIFN1biBNaWNyb3N5c3RlbXMsIEluYy4gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC5cbgotIyMjIyMjIyMjIyMgZW5kIG9mIGxpY2Vuc2UgcHJvcGVydHkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvZmVhdHVyZXMvb3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZS9mZWF0dXJlLnhtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYThkZTc4MC4uMDAwMDAwMAotLS0gYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDAgKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KLTxmZWF0dXJlCi0gICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbF9zZGsuZmVhdHVyZSIKLSAgICAgIGxhYmVsPSIlZmVhdHVyZU5hbWUiCi0gICAgICB2ZXJzaW9uPSIxLjAuMC5xdWFsaWZpZXIiCi0gICAgICBwcm92aWRlci1uYW1lPSIlcHJvdmlkZXJOYW1lIj4KLQotICAgPGRlc2NyaXB0aW9uPgotICAgICAgJWRlc2NyaXB0aW9uCi0gICA8L2Rlc2NyaXB0aW9uPgotCi0gICA8Y29weXJpZ2h0PgotICAgICAgJWNvcHlyaWdodAotICAgPC9jb3B5cmlnaHQ+Ci0KLSAgIDxsaWNlbnNlIHVybD0iJWxpY2Vuc2VVUkwiPgotICAgICAgJWxpY2Vuc2UKLSAgIDwvbGljZW5zZT4KLQotICAgPHVybD4KLSAgICAgIDx1cGRhdGUgbGFiZWw9IiV1cGRhdGVTaXRlTmFtZSIgdXJsPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvd2VidG9vbHMvdXBkYXRlcy8iLz4KLSAgICAgIDxkaXNjb3ZlcnkgbGFiZWw9IldlYiBUb29scyBQbGF0Zm9ybSAoV1RQKSBVcGRhdGVzIiB1cmw9Imh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy93ZWJ0b29scy91cGRhdGVzIi8+Ci0gICA8L3VybD4KLQotICAgPGluY2x1ZGVzCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiLz4KLQotICAgPGluY2x1ZGVzCi0gICAgICAgICBpZD0ib3JnLmVjbGlwc2Uud3N0LnhzbC5mZWF0dXJlLnNvdXJjZSIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIi8+Ci0KLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS53c3QueHNsLnNkay5kb2N1bWVudGF0aW9uIgotICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKLSAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCIKLSAgICAgICAgIHZlcnNpb249IjAuMC4wIgotICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPgotCi08L2ZlYXR1cmU+CmRpZmYgLS1naXQgYS9mZWF0dXJlcy9vcmcuZWNsaXBzZS53c3QueHNsX3Nkay5mZWF0dXJlL2xpY2Vuc2UuaHRtbCBiL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvbGljZW5zZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMDNlNjY1Li4wMDAwMDAwCi0tLSBhL2ZlYXR1cmVzL29yZy5lY2xpcHNlLndzdC54c2xfc2RrLmZlYXR1cmUvbGljZW5zZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTYgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzNjLm9yZy9UUi8xOTk5L1JFQy1odG1sNDAxLTE5OTkxMjI0L2xvb3NlLmR0ZCI+Ci08IS0tIHNhdmVkIGZyb20gdXJsPSgwMDQ0KWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsL25vdGljZS5odG1sIC0tPgotPEhUTUw+PEhFQUQ+PFRJVExFPkVjbGlwc2Uub3JnIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC9USVRMRT4KLTxNRVRBIGh0dHAtZXF1aXY9Q29udGVudC1UeXBlIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KLTxNRVRBIGNvbnRlbnQ9Ik1TSFRNTCA2LjAwLjI4MDAuMTQ3OSIgbmFtZT1HRU5FUkFUT1I+PC9IRUFEPgotPEJPRFkgbGFuZz1FTi1VUyB2TGluaz1wdXJwbGUgbGluaz1ibHVlPgotPEgyPkVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvSDI+Ci08UD5KdW5lIDA2LCAyMDA3PC9QPgotPEgzPlVzYWdlIE9mIENvbnRlbnQ8L0gzPgotPFA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIAotQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMgKENPTExFQ1RJVkVMWSAiQ09OVEVOVCIpLiBVU0UgT0YgCi1USEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSAKLVRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIAotQkVMT1cuIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1UgQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCAKLUJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSAKLUFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgCi1URVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSAKLUFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIAotTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuPC9QPgotPEgzPkFwcGxpY2FibGUgTGljZW5zZXM8L0gzPgotPFA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIAotRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIAotUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIAotQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPEEgCi1ocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L0E+LiAKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvUD4KLTxQPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCAKLWRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2Uub3JnIENWUyByZXBvc2l0b3J5IAotKCJSZXBvc2l0b3J5IikgaW4gQ1ZTIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzIGRvd25sb2FkYWJsZSAKLWFyY2hpdmVzICgiRG93bmxvYWRzIikuPC9QPgotPFA+Q29udGVudCBtYXkgYmUgYXBwb3J0aW9uZWQgaW50byBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzIAotKCJGcmFnbWVudHMiKSwgYW5kIGZlYXR1cmVzICgiRmVhdHVyZXMiKS4gQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIAotUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgCi1jb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyAKLWFzc29jaWF0ZWQgd2l0aCBhIEZlYXR1cmUuIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgYXJlIGxvY2F0ZWQgaW4gZGlyZWN0b3JpZXMgCi1uYW1lZCAicGx1Z2lucyIgYW5kIEZlYXR1cmVzIGFyZSBsb2NhdGVkIGluIGRpcmVjdG9yaWVzIG5hbWVkICJmZWF0dXJlcyIuPC9QPgotPFA+RmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIEZpbGVzIG5hbWVkIAotImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgCi1GZWF0dXJlcy48L1A+Ci08UD5UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlIGNvbnRhaW5lZCAKLWluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIAotRmVhdHVyZXMgYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIgCi0oIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSAKLWRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZSBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIAotbG9jYXRpb25zOjwvUD4KLTxVTD4KLSAgPExJPlRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeSAKLSAgPExJPlBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzIAotICA8TEk+U3ViZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zIAotICA8TEk+RmVhdHVyZSBkaXJlY3RvcmllcyA8L0xJPjwvVUw+Ci08UD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgCi11c2luZyB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlciwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgiRmVhdHVyZSBVcGRhdGUgCi1MaWNlbnNlIikgZHVyaW5nIHRoZSBpbnN0YWxsYXRpb24gcHJvY2Vzcy4gSWYgdGhlIEZlYXR1cmUgY29udGFpbnMgSW5jbHVkZWQgCi1GZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdSB3aXRoIHRoZSB0ZXJtcyAKLWFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdSB3aGVyZSB5b3UgY2FuIAotbG9jYXRlIHRoZW0uIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIG1heSBiZSBmb3VuZCBpbiB0aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIAotZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIuIFN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzIGFuZCBGZWF0dXJlIAotVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgCi1hbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IAotZGlyZWN0b3J5LjwvUD4KLTxQPlRIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUiBUTyBUSEUgRVBMIAotT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFIAotT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTo8L1A+Ci08VUw+Ci0gIDxMST5Db21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8QSAKLSAgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9BPikKLQotICA8TEk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgPEEgCi0gIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvQT4pCi0KLSAgPExJPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0IDxBIAotICBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMDwvQT4pCi0KLSAgPExJPklCTSBQdWJsaWMgTGljZW5zZSAxLjAgKGF2YWlsYWJsZSBhdCA8QSAKLSAgaHJlZj0iaHR0cDovL29zcy5zb2Z0d2FyZS5pYm0uY29tL2RldmVsb3BlcndvcmtzL29wZW5zb3VyY2UvbGljZW5zZTEwLmh0bWwiPmh0dHA6Ly9vc3Muc29mdHdhcmUuaWJtLmNvbS9kZXZlbG9wZXJ3b3Jrcy9vcGVuc291cmNlL2xpY2Vuc2UxMC5odG1sPC9BPikKLSAgPExJPk1ldHJvIExpbmsgUHVibGljIExpY2Vuc2UgMS4wMCAoYXZhaWxhYmxlIGF0IDxBIAotICBocmVmPSJodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb3Blbm1vdGlmL3N1cHBvcnRlcnMvbWV0cm9saW5rL2xpY2Vuc2UuaHRtbCI+aHR0cDovL3d3dy5vcGVuZ3JvdXAub3JnL29wZW5tb3RpZi9zdXBwb3J0ZXJzL21ldHJvbGluay9saWNlbnNlLmh0bWw8L0E+KSAKLSAgCi0gIDxMST5Nb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgPEEgCi0gIGhyZWY9Imh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbCI+aHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sPC9BPikgPC9MST4KLSAgCi0gIDxsaT5Db21tb24gRGV2ZWxvcG1lbnQgYW5kIERpc3RyaWJ1dGlvbiBMaWNlbnNlIChDRERMKSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxBIAotICBocmVmPSJodHRwOi8vd3d3LnN1bi5jb20vY2RkbC9jZGRsLmh0bWwiPmh0dHA6Ly93d3cuc3VuLmNvbS9jZGRsL2NkZGwuaHRtbCk8L0E+Ci0gIDwvTEk+Ci08L1VMPgotPFA+SVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiAKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIAotcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIAotY29uZGl0aW9ucyBnb3Zlcm4gdGhhdCBwYXJ0aWN1bGFyIENvbnRlbnQuPC9QPgotPEgzPkNyeXB0b2dyYXBoeTwvSDM+Ci08UD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgCi1jdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsIGFuZC9vciAKLXJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgCi1lbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLCByZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgCi1jb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSwgYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCAKLXRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC48L1A+PC9CT0RZPjwvSFRNTD4K