PGh0bWw+CjxoZWFkPgogIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0iIj4KICA8dGl0bGU+R3VpZGVsaW5lczwvdGl0bGU+CiAgPGxpbmsgaHJlZj0iY3NzL2F4aXMtZG9jcy5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJhbGwiPgo8L2hlYWQ+Cgo8Ym9keT4KPGgyPk1haWwgR3VpZGVsaW5lPC9oMj4KCjxwPkV2ZXJ5IHZvbHVudGVlciBwcm9qZWN0IG9idGFpbnMgaXRzIHN0cmVuZ3RoIGZyb20gdGhlIHBlb3BsZSBpbnZvbHZlZCBpbgppdC4gTWFpbGluZyBsaXN0cyBwcm92aWRlIGEgc2ltcGxlIGFuZCBlZmZlY3RpdmUgY29tbXVuaWNhdGlvbiBtZWNoYW5pc20uPC9wPgoKPHA+WW91IGFyZSB3ZWxjb21lIHRvIGpvaW4gYW55IG9mIG91ciBtYWlsaW5nIGxpc3RzIChvciBhbGwgb2YgdGhlbSBpZiB5b3UKd2lzaCkuIFlvdSBjYW4gY2hvb3NlIHRvIGx1cmssIG9yIGFjdGl2ZWx5IHBhcnRpY2lwYXRlLiBJdCdzIHVwIHRvIHlvdS48L3A+Cgo8cD48Yj5CZWZvcmUgeW91IGpvaW4gdGhlc2UgbGlzdHMsIHlvdSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgeW91IHJlYWQgYW5kCmZvbGxvdyB0aGUgaW5mb3JtYXRpb24gYmVsb3cuPC9iPjwvcD4KCjxwPldlIGFzayB0aGF0IHlvdSBkbyB5b3VyIGJlc3QgdG8gcmVzcGVjdCB0aGUgY2hhcnRlciBvZiB0aGUgYXBwcm9wcmlhdGUKbWFpbGluZyBsaXN0LiBUaGVyZSBhcmUgZ2VuZXJhbGx5IHR3byB0eXBlcyBvZiBsaXN0cyB0aGF0IHlvdSBjYW4gam9pbi48L3A+Cjx1bD4KICA8bGk+VGhlICJVc2VyIiBsaXN0IGlzIHdoZXJlIHlvdSBzaG91bGQgc2VuZCBxdWVzdGlvbnMgYW5kIGNvbW1lbnRzIGFib3V0CiAgICBjb25maWd1cmF0aW9uLCBzZXR1cCwgdXNhZ2UgYW5kIG90aGVyICJ1c2VyIiB0eXBlIG9mIHF1ZXN0aW9ucy48L2xpPgogIDxsaT5UaGUgIkRldmVsb3BlciIgbGlzdCBpcyB3aGVyZSB5b3Ugc2hvdWxkIHNlbmQgcXVlc3Rpb25zIGFuZCBjb21tZW50cwogICAgYWJvdXQgdGhlIGFjdHVhbCBzb2Z0d2FyZSBzb3VyY2UgY29kZSBhbmQgZ2VuZXJhbCAiZGV2ZWxvcG1lbnQiIHR5cGUgb2YKICAgIHF1ZXN0aW9ucy48L2xpPgo8L3VsPgoKPHA+PGI+U3VtbWFyeSA6IFByZWZpeCBlYWNoIG1lc3NhZ2Ugc3ViamVjdCB3aXRoICJbQXhpczJdIjwvYj4gPGJyPgpZb3UgbWF5IGFscmVhZHkga25vdyB0aGF0IEF4aXMgMS54IGlzIHN0aWxsIGdvaW5nIHBhcmFsbGVsIHdpdGggQXhpcyAyLjAuIFNvCmZvciBldmVyeW9uZSdzIGNvbnZlbmllbmNlLCBwcmVmaXggdGhlIHN1YmplY3Qgb2YgPGI+ZXZlcnkgbWFpbCA8L2I+YWJvdXQKQXhpcyAyLjAgd2l0aCBbQXhpczJdLjwvcD4KCjxwPjxiPlN1bW1hcnk6IEpvaW4gdGhlIGxpc3RzIHRoYXQgYXJlIGFwcHJvcHJpYXRlIGZvciB5b3VyIGRpc2N1c3Npb24uPC9iPgo8YnI+ClBsZWFzZSBtYWtlIHN1cmUgdGhhdCB5b3UgYXJlIGpvaW5pbmcgdGhlIGxpc3QgdGhhdCBpcyBhcHByb3ByaWF0ZSBmb3IgdGhlCnRvcGljIG9yIHByb2R1Y3QgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBkaXNjdXNzLjwvcD4KCjxwPjxiPlN1bW1hcnk6IERvIG5vdCBhYnVzZSByZXNvdXJjZXMgaW4gb3JkZXIgdG8gZ2V0IGhlbHAuPC9iPiA8YnI+CkFza2luZyB5b3VyIGNvbmZpZ3VyYXRpb24gb3IgdXNlciB0eXBlIG9mIHF1ZXN0aW9uIG9uIHRoZSBkZXZlbG9wZXJzIGxpc3QKYmVjYXVzZSB5b3UgdGhpbmsgdGhhdCB5b3Ugd2lsbCBnZXQgaGVscCBtb3JlIHF1aWNrbHkgYnkgZ29pbmcgZGlyZWN0bHkgdG8KdGhlIGRldmVsb3BlcnMgaW5zdGVhZCBvZiB0byB0aGUgdXNlciBiYXNlIGlzIG5vdCB2ZXJ5IG5pY2UuIENoYW5jZXMgYXJlIHRoYXQKZG9pbmcgdGhpcyB3aWxsIGFjdHVhbGx5IHByZXZlbnQgcGVvcGxlIGZyb20gYW5zd2VyaW5nIHlvdXIgcXVlc3Rpb24gYmVjYXVzZQppdCBpcyBjbGVhciB0aGF0IHlvdSBhcmUgdHJ5aW5nIHRvIGFidXNlIHJlc291cmNlcy48L3A+Cgo8cD48Yj5TdW1tYXJ5OiBEbyB5b3VyIGJlc3QgdG8gZW5zdXJlIHRoYXQgeW91IGFyZSBub3Qgc2VuZGluZyBIVE1MIG9yCiJTdHlsZWxpemVkIiBlbWFpbCB0byB0aGUgbGlzdC48L2I+IDxicj4KSWYgeW91IGFyZSB1c2luZyBPdXRsb29rIG9yIE91dGxvb2sgRXhwcmVzcyBvciBFdWRvcmEsIGNoYW5jZXMgYXJlIHRoYXQgeW91CmFyZSBzZW5kaW5nIEhUTUwgZW1haWwgYnkgZGVmYXVsdC4gVGhlcmUgaXMgdXN1YWxseSBhIHNldHRpbmcgdGhhdCB3aWxsIGFsbG93CnlvdSB0byBzZW5kICJQbGFpbiBUZXh0IiBlbWFpbC4gSWYgeW91IGFyZSB1c2luZyBNaWNyb3NvZnQgcHJvZHVjdHMgdG8gc2VuZAplbWFpbCwgdGhlcmUgYXJlIHNldmVyYWwgYnVncyBpbiB0aGUgc29mdHdhcmUgdGhhdCBwcmV2ZW50IHlvdSBmcm9tIHR1cm5pbmcKb2ZmIHRoZSBzZW5kaW5nIG9mIEhUTUwgZW1haWwuIFBsZWFzZSByZWFkIHRoaXMgcGFnZSBhcyB3ZWxsLjwvcD4KCjxwPjxiPlN1bW1hcnk6IFdhdGNoIHdoZXJlIHlvdSBhcmUgc2VuZGluZyBlbWFpbC48L2I+IDxicj4KVGhlIG1ham9yaXR5IG9mIG91ciBtYWlsaW5nIGxpc3RzIGhhdmUgc2V0IHRoZSBSZXBseS1UbyB0byBnbyBiYWNrIHRvIHRoZQpsaXN0LiBUaGF0IG1lYW5zIHRoYXQgd2hlbiB5b3UgUmVwbHkgdG8gYSBtZXNzYWdlLCBpdCB3aWxsIGdvIHRvIHRoZSBsaXN0IGFuZApub3QgdG8gdGhlIG9yaWdpbmFsIGF1dGhvciBkaXJlY3RseS4gVGhlIHJlYXNvbiBpcyBiZWNhdXNlIGl0IGhlbHBzCmZhY2lsaXRhdGUgZGlzY3Vzc2lvbiBvbiB0aGUgbGlzdCBmb3IgZXZlcnlvbmUgdG8gYmVuZWZpdCBmcm9tLiBCZSBjYXJlZnVsIG9mCnRoaXMgYXMgc29tZXRpbWVzIHlvdSBtYXkgaW50ZW5kIHRvIHJlcGx5IHRvIGEgbWVzc2FnZSBkaXJlY3RseSB0byBzb21lb25lCmluc3RlYWQgb2YgdGhlIGVudGlyZSBsaXN0LjwvcD4KCjxwPjxiPlN1bW1hcnk6IERvIG5vdCBjcm9zc3Bvc3QgbWVzc2FnZXMuPC9iPiA8YnI+CkluIG90aGVyIHdvcmRzLCBwaWNrIGEgbWFpbGluZyBsaXN0IGFuZCBzZW5kIHlvdXIgbWVzc2FnZXMgdG8gdGhhdCBtYWlsaW5nCmxpc3Qgb25seS4gRG8gbm90IHNlbmQgeW91ciBtZXNzYWdlcyB0byBtdWx0aXBsZSBtYWlsaW5nIGxpc3RzLiBUaGUgcmVhc29uIGlzCnRoYXQgcGVvcGxlIG1heSBiZSBzdWJzY3JpYmVkIHRvIG9uZSBsaXN0IGFuZCBub3QgdG8gdGhlIG90aGVyLiBUaGVyZWZvcmUsCnNvbWUgcGVvcGxlIG1heSBvbmx5IHNlZSBoYWxmIG9mIHRoZSBjb252ZXJzYXRpb24uPC9wPgoKPHA+oDwvcD4KPC9ib2R5Pgo8L2h0bWw+Cg==