VGhlIHByaW1hcnkgYXV0aG9ycyBvZiBzdHJhY2UgYXJlOgoKCVBhdWwgS3JhbmVuYnVyZyA8cGtAY3MuZmV3LmV1ci5ubD4KCUJyYW5rbyBMYW5rZXN0ZXIgPGJyYW5rb0BoYWNrdGljLm5sPgoJUmljayBTbGFka2V5IDxqcnNAd29ybGQuc3RkLmNvbT4KClRoYW5rcyB0byB0aGUgZm9sbG93IHBlb3BsZSBmb3IgY29udHJpYnV0aW5nIHRvIHN0cmFjZSBieSByZXBvcnRpbmcKYnVncywgcHJvdmlkaW5nIGZpeGVzLCBwcm92aWRpbmcgaW5mb3JtYXRpb24sIHByb3ZpZGluZyByZXNvdXJjZXMgb3IKcG9ydGluZyB0byBuZXcgc3lzdGVtczoKCglBbmRyZWFzIFNjaHdhYiA8c2Nod2FiQGlzc2FuLmluZm9ybWF0aWsudW5pLWRvcnRtdW5kLmRlPgoJQXJrYWRpdXN6IE1pc2tpZXdpY3ogPG1pc2lla0BwbGQub3JnLnBsPgoJTWFydHkgTGVpc25lciA8bGVpc25lckBzZHNwLm1jLnhlcm94LmNvbT4KCUx1cGUgQ2hyaXN0b3BoIDxsdXBlQGFsYW55YS5pc2FyLm11Yy5kZT4KCVRoYW5oIE1hIDx0bWFAZW5jb3JlLmNvbT4KCUtlaXRoIFRob21wc29uIDxrc3RAYWxzeXMuY29tPgoJUm9sYW5kIEJvcmRlIDxib0B1ZWJlbWMuc2llbWVucy5kZT4KCU1hdHQgRGF5IDxtZGF5QGFydGlzb2Z0LmNvbT4KCUpvZSBJbGFjcXVhIDxzcGlrZUB3b3JsZC5zdGQuY29tPgoJSnUicmdlbiBGbHVrIDxsb3Vpc0BtYXJjby5kZT4KCUJvIEt1bGxtYXIgPGJrQGt1bGxtYXIuc2U+CglMZW9uYXJkIE4uIFp1YmtvZmYgPGxuekBkYW5kZWxpb24uY29tPgoJUmV1YmVuIFN1bW5lciA8cmFzdW1uZXJAdW5kZXJncmFkLm1hdGgudXdhdGVybG9vLmNhPgoJSnVlcmdlbiBXZWlnZXJ0IDxqbndlaWdlckBpbW1kNC5pbmZvcm1hdGlrLnVuaS1lcmxhbmdlbi5kZT4KCUxpbnVzIFRvcnZhbGRzIDxMaW51cy5Ub3J2YWxkc0Bjcy5IZWxzaW5raS5GST4KCU1pY2hhZWwgRSBDaGFzdGFpbiA8bWVjQGR1cmFjZWYuc2hvdXQubmV0PgoJQWFyb24gVWNrbyA8VUNLT0BWQVgxLlJPQ0tIVVJTVC5FRFU+CglEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGNhaXAucnV0Z2Vycy5lZHU+CglNYXR0aGlhcyBQZmFsbGVyIDxsZW9AZGFjaGF1Lm1hcmNvLmRlPgoJVGhvbWFzIEJvZ2VuZG9lcmZlciA8dHNib2dlbmRAYmlnYnVnLmZyYW5rZW4uZGU+CglSaWNoYXJkIEhlbmRlcnNvbiA8cmljaGFyZEB0d2lkZGxlLnRhbXUuZWR1PgoJVG9tIER5YXMgPHRkeWFzQGVkZW4ucnV0Z2Vycy5lZHU+CglIZW5yaWsgU3Rvcm5lciA8c3Rvcm5lckBvc2lyaXMucGluZy5kaz4KCURhdmlkIE1vc2Jlcmdlci1UYW5nIDxkYXZpZG1AaHBsLmhwLmNvbT4KCVVscmljaCBEcmVwcGVyIDxkcmVwcGVyQGN5Z251cy5jb20+CglOYXRlIEVsZHJlZGdlIDxuYXRlQGNhcnRzeXMuY29tPgoJSmFrdWIgSmVsaW5layA8ampAdWx0cmEubGludXguY3o+CglKb2huIEh1Z2hlcyA8am9obkBDYWx2YS5DT00+CglSaWNoYXJkIEJyYWFrbWFuIDxkYXJrQHhzNGFsbC5ubD4KCUZsb3JpYW4gTG9ob2ZmIDxmbG9AcmZjODIyLm9yZz4KCUQuSi4gQmFycm93IDxkamJhcnJvd0BkZS5pYm0uY29tPgoJVG9waSBNaWV0dGluZW4gPFRvcGkuTWlldHRpbmVuQG5pYy5maT4KCUdh62wgUm91YWxsYW5kIDxnYWVsLnJvdWFsbGFuZEBpbmFtZS5jb20+Cg==