fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ck1PVE9ST0xBIE1JQ1JPUFJPQ0VTU09SICYgTUVNT1JZIFRFQ0hOT0xPR1kgR1JPVVAKTTY4MDAwIEhpLVBlcmZvcm1hbmNlIE1pY3JvcHJvY2Vzc29yIERpdmlzaW9uCk02ODA2MCBTb2Z0d2FyZSBQYWNrYWdlClByb2R1Y3Rpb24gUmVsZWFzZSBQMS4wMCAtLSBPY3RvYmVyIDEwLCAxOTk0CgpNNjgwNjAgU29mdHdhcmUgUGFja2FnZSBDb3B5cmlnaHQgqSAxOTkzLCAxOTk0IE1vdG9yb2xhIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCgpUSEUgU09GVFdBUkUgaXMgcHJvdmlkZWQgb24gYW4gIkFTIElTIiBiYXNpcyBhbmQgd2l0aG91dCB3YXJyYW50eS4KVG8gdGhlIG1heGltdW0gZXh0ZW50IHBlcm1pdHRlZCBieSBhcHBsaWNhYmxlIGxhdywKTU9UT1JPTEEgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdIRVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELApJTkNMVURJTkcgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQphbmQgYW55IHdhcnJhbnR5IGFnYWluc3QgaW5mcmluZ2VtZW50IHdpdGggcmVnYXJkIHRvIHRoZSBTT0ZUV0FSRQooSU5DTFVESU5HIEFOWSBNT0RJRklFRCBWRVJTSU9OUyBUSEVSRU9GKSBhbmQgYW55IGFjY29tcGFueWluZyB3cml0dGVuIG1hdGVyaWFscy4KClRvIHRoZSBtYXhpbXVtIGV4dGVudCBwZXJtaXR0ZWQgYnkgYXBwbGljYWJsZSBsYXcsCklOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIEJFIExJQUJMRSBGT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUgooSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiwgREFNQUdFUyBGT1IgTE9TUyBPRiBCVVNJTkVTUyBQUk9GSVRTLApCVVNJTkVTUyBJTlRFUlJVUFRJT04sIExPU1MgT0YgQlVTSU5FU1MgSU5GT1JNQVRJT04sIE9SIE9USEVSIFBFQ1VOSUFSWSBMT1NTKQpBUklTSU5HIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgU09GVFdBUkUuCk1vdG9yb2xhIGFzc3VtZXMgbm8gcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBtYWludGVuYW5jZSBhbmQgc3VwcG9ydCBvZiB0aGUgU09GVFdBUkUuCgpZb3UgYXJlIGhlcmVieSBncmFudGVkIGEgY29weXJpZ2h0IGxpY2Vuc2UgdG8gdXNlLCBtb2RpZnksIGFuZCBkaXN0cmlidXRlIHRoZSBTT0ZUV0FSRQpzbyBsb25nIGFzIHRoaXMgZW50aXJlIG5vdGljZSBpcyByZXRhaW5lZCB3aXRob3V0IGFsdGVyYXRpb24gaW4gYW55IG1vZGlmaWVkIGFuZC9vcgpyZWRpc3RyaWJ1dGVkIHZlcnNpb25zLCBhbmQgdGhhdCBzdWNoIG1vZGlmaWVkIHZlcnNpb25zIGFyZSBjbGVhcmx5IGlkZW50aWZpZWQgYXMgc3VjaC4KTm8gbGljZW5zZXMgYXJlIGdyYW50ZWQgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZSB1bmRlciBhbnkgcGF0ZW50cwpvciB0cmFkZW1hcmtzIG9mIE1vdG9yb2xhLCBJbmMuCn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgo2ODA2MCBJTlRFR0VSIFNPRlRXQVJFIFBBQ0tBR0UgKEtlcm5lbCB2ZXJzaW9uKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBmaWxlIGlzcC5zYSBjb250YWlucyB0aGUgNjgwNjAgSW50ZWdlciBTb2Z0d2FyZSBQYWNrYWdlLgpUaGlzIHBhY2thZ2UgaXMgZXNzZW50aWFsbHkgYW4gZXhjZXB0aW9uIGhhbmRsZXIgdGhhdCBjYW4gYmUKaW50ZWdyYXRlZCBpbnRvIGFuIG9wZXJhdGluZyBzeXN0ZW0gdG8gaGFuZGxlIHRoZSAiVW5pbXBsZW1lbnRlZApJbnRlZ2VyIEluc3RydWN0aW9uIiBleGNlcHRpb24gdmVjdG9yICM2MS4KVGhpcyBleGNlcHRpb24gaXMgdGFrZW4gd2hlbiBhbnkgb2YgdGhlIGludGVnZXIgaW5zdHJ1Y3Rpb25zCm5vdCBoYXJkd2FyZSBpbXBsZW1lbnRlZCBvbiB0aGUgNjgwNjAgYXJlIGVuY291bnRlcmVkLiBUaGUKaXNwLnNhIHByb3ZpZGVzIGZ1bGwgZW11bGF0aW9uIHN1cHBvcnQgZm9yIHRoZXNlIGluc3RydWN0aW9ucy4KClRoZSB1bmltcGxlbWVudGVkIGludGVnZXIgaW5zdHJ1Y3Rpb25zIGFyZToKCTY0LWJpdCBkaXZpZGUKCTY0LWJpdCBtdWx0aXBseQoJbW92ZXAKCWNtcDIKCWNoazIKCWNhcyAody8gYSBtaXNhbGlnbmVkIGVmZmVjdGl2ZSBhZGRyZXNzKQoJY2FzMgoKUmVsZWFzZSBmaWxlIGZvcm1hdDoKLS0tLS0tLS0tLS0tLS0tLS0tLS0KVGhlIGZpbGUgaXNwLnNhIGlzIGVzc2VudGlhbGx5IGEgaGV4YWRlY2ltYWwgaW1hZ2Ugb2YgdGhlCnJlbGVhc2UgcGFja2FnZS4gVGhpcyBpcyB0aGUgT05MWSBmb3JtYXQgd2hpY2ggd2lsbCBiZSBzdXBwb3J0ZWQuClRoZSBoZXggaW1hZ2Ugd2FzIGNyZWF0ZWQgYnkgYXNzZW1ibGluZyB0aGUgc291cmNlIGNvZGUgYW5kCnRoZW4gY29udmVydGluZyB0aGUgcmVzdWx0aW5nIGJpbmFyeSBvdXRwdXQgaW1hZ2UgaW50byBhbgpBU0NJSSB0ZXh0IGZpbGUuIFRoZSBoZXhhZGVjaW1hbCBudW1iZXJzIGFyZSBsaXN0ZWQKdXNpbmcgdGhlIE1vdG9yb2xhIEFzc2VtYmx5IFN5bnRheCBhc3NlbWJsZXIgZGlyZWN0aXZlICJkYy5sIgooZGVmaW5lIGNvbnN0YW50IGxvbmd3b3JkKS4gVGhlIGZpbGUgY2FuIGJlIGNvbnZlcnRlZCB0byBvdGhlcgphc3NlbWJseSBzeW50YXhlcyBieSB1c2luZyBhbnkgd29yZCBwcm9jZXNzb3Igd2l0aCBhIGdsb2JhbApzZWFyY2ggYW5kIHJlcGxhY2UgZnVuY3Rpb24uCgpUbyBhc3Npc3QgaW4gYXNzZW1ibGluZyBhbmQgbGlua2luZyB0aGlzIG1vZHVsZSB3aXRoIG90aGVyIG1vZHVsZXMsCnRoZSBpbnN0YWxsZXIgc2hvdWxkIGFkZCBhIHN5bWJvbGljIGxhYmVsIHRvIHRoZSB0b3Agb2YgdGhlIGZpbGUuClRoaXMgd2lsbCBhbGxvdyBjYWxsaW5nIHJvdXRpbmVzIHRvIGFjY2VzcyB0aGUgZW50cnkgcG9pbnRzCm9mIHRoaXMgcGFja2FnZS4KClRoZSBzb3VyY2UgY29kZSBpc3AucyBoYXMgYWxzbyBiZWVuIGluY2x1ZGVkIGJ1dCBvbmx5IGZvcgpkb2N1bWVudGF0aW9uIHB1cnBvc2VzLgoKUmVsZWFzZSBmaWxlIHN0cnVjdHVyZToKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCih0b3Agb2YgbW9kdWxlKQoJLS0tLS0tLS0tLS0tLS0tLS0KCXwJCXwgLSAxMjggYnl0ZS1zaXplZCBzZWN0aW9uCiAgICgxKSAgfCAgIENhbGwtT3V0ICAgIHwgLSA0IGJ5dGVzIHBlciBlbnRyeSAodXNlciBmaWxscyB0aGVzZSBpbikKCXwJCXwgLSBleGFtcGxlIHJvdXRpbmVzIGluIGlza2VsZXRvbi5zCgktLS0tLS0tLS0tLS0tLS0tLQoJfAkJfCAtIDggYnl0ZXMgcGVyIGVudHJ5CiAgICgyKSAgfCBFbnRyeSBQb2ludCAgIHwgLSB1c2VyIGRvZXMgYSAiYnJhIiBvciAiam1wIiB0byB0aGlzIGFkZHJlc3MKCXwgICAgICAgICAgICAgICB8CgktLS0tLS0tLS0tLS0tLS0tLQoJfAkJfCAtIGNvZGUgc2VjdGlvbgogICAoMykgIH4JCX4KCXwJCXwKCS0tLS0tLS0tLS0tLS0tLS0tCihib3R0b20gb2YgbW9kdWxlKQoKVGhlIGZpcnN0IHNlY3Rpb24gb2YgdGhpcyBtb2R1bGUgaXMgdGhlICJDYWxsLW91dCIgc2VjdGlvbi4gVGhpcyBzZWN0aW9uCmlzIE5PVCBJTkNMVURFRCBpbiBpc3Auc2EgKGFuIGV4YW1wbGUgIkNhbGwtb3V0IiBzZWN0aW9uIGlzIHByb3ZpZGVkIGF0CnRoZSBlbmQgb2YgdGhlIGZpbGUgaXNrZWxldG9uLnMpLiBUaGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gaXMgdG8gYWxsb3cKdGhlIElTUCByb3V0aW5lcyB0byByZWZlcmVuY2UgZXh0ZXJuYWwgZnVuY3Rpb25zIHRoYXQgbXVzdCBiZSBwcm92aWRlZApieSB0aGUgaG9zdCBvcGVyYXRpbmcgc3lzdGVtLiBUaGlzIHNlY3Rpb24gTVVTVCBiZSBleGFjdGx5IDEyOCBieXRlcyBpbgpzaXplLiBUaGVyZSBhcmUgMzIgZmllbGRzLCBlYWNoIDQgYnl0ZXMgaW4gc2l6ZS4gRWFjaCBmaWVsZCBjb3JyZXNwb25kcwp0byBhIGZ1bmN0aW9uIHJlcXVpcmVkIGJ5IHRoZSBJU1AgKHRoZXNlIGZ1bmN0aW9ucyBhbmQgdGhlaXIgbG9jYXRpb24gYXJlCmxpc3RlZCBpbiAiNjgwNjBJU1AgY2FsbC1vdXRzIiBiZWxvdykuIEVhY2ggZmllbGQgZW50cnkgc2hvdWxkIGNvbnRhaW4KdGhlIGFkZHJlc3Mgb2YgdGhlIGNvcnJlc3BvbmRpbmcgZnVuY3Rpb24gUkVMQVRJVkUgdG8gdGhlIHN0YXJ0aW5nIGFkZHJlc3MKb2YgdGhlICJjYWxsLW91dCIgc2VjdGlvbi4gVGhlICJDYWxsLW91dCIgc2VjdGlvbiBtdXN0IHNpdCBhZGphY2VudCB0byB0aGUKaXNwLnNhIGltYWdlIGluIG1lbW9yeS4KClRoZSBzZWNvbmQgc2VjdGlvbiwgdGhlICJFbnRyeS1wb2ludCIgc2VjdGlvbiwgaXMgdXNlZCBieSBleHRlcm5hbCByb3V0aW5lcwp0byBhY2Nlc3MgdGhlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIElTUC4gU2luY2UgdGhlIGlzcC5zYSBoZXggZmlsZSBjb250YWlucwpubyBzeW1ib2wgbmFtZXMsIHRoaXMgc2VjdGlvbiBjb250YWlucyBmdW5jdGlvbiBlbnRyeSBwb2ludHMgdGhhdCBhcmUgZml4ZWQKd2l0aCByZXNwZWN0IHRvIHRoZSB0b3Agb2YgdGhlIHBhY2thZ2UuIFRoZSBjdXJyZW50bHkgZGVmaW5lZCBlbnRyeS1wb2ludHMKYXJlIGxpc3RlZCBpbiBzZWN0aW9uICI2ODA2MCBJU1AgZW50cnkgcG9pbnRzIiBiZWxvdy4gQSBjYWxsaW5nIHJvdXRpbmUKd291bGQgc2ltcGx5IGV4ZWN1dGUgYSAiYnJhIiBvciAiam1wIiB0aGF0IGp1bXBlZCB0byB0aGUgc2VsZWN0ZWQgZnVuY3Rpb24KZW50cnktcG9pbnQuCgpGb3IgZXhhbXBsZSwgaWYgdGhlIDY4MDYwIGhhcmR3YXJlIHRvb2sgYSAiVW5pbXBsZW1lbnRlZCBJbnRlZ2VyIEluc3RydWN0aW9uIgpleGNlcHRpb24gKHZlY3RvciAjNjEpLCB0aGUgb3BlcmF0aW5nIHN5c3RlbSBzaG91bGQgZXhlY3V0ZSBzb21ldGhpbmcKc2ltaWxhciB0bzoKCglicmEJXzA2MElTUF9UT1ArMTI4KzAKCihfMDYwSVNQX1RPUCBpcyB0aGUgc3RhcnRpbmcgYWRkcmVzcyBvZiB0aGUgIkNhbGwtb3V0IiBzZWN0aW9uOyB0aGUgIkNhbGwtb3V0IgpzZWN0aW9uIGlzIDEyOCBieXRlcyBsb25nOyBhbmQgdGhlIFVuaW1wbGVtZW50ZWQgSW50ZWdlciBJU1AgaGFuZGxlciBlbnRyeQpwb2ludCBpcyBsb2NhdGVkIDAgYnl0ZXMgZnJvbSB0aGUgdG9wIG9mIHRoZSAiRW50cnktcG9pbnQiIHNlY3Rpb24uKQoKVGhlIHRoaXJkIHNlY3Rpb24gaXMgdGhlIGNvZGUgc2VjdGlvbi4gQWZ0ZXIgZW50ZXJpbmcgdGhyb3VnaCBhbiAiRW50cnktcG9pbnQiLAp0aGUgZW50cnkgY29kZSBqdW1wcyB0byB0aGUgYXBwcm9wcmlhdGUgZW11bGF0aW9uIGNvZGUgd2l0aGluIHRoZSBjb2RlIHNlY3Rpb24uCgo2ODA2MElTUCBjYWxsLW91dHM6IChkZXRhaWxzIGluIGlza2VsZXRvbi5zKQotLS0tLS0tLS0tLS0tLS0tLS0tLQoweDAwMDoJXzA2MF9yZWFsX2NoawoweDAwNDoJXzA2MF9yZWFsX2RpdmJ5emVybwoweDAwODoJXzA2MF9yZWFsX3RyYWNlCjB4MDBjOglfMDYwX3JlYWxfYWNjZXNzCjB4MDEwOglfMDYwX2lzcF9kb25lCgoweDAxNDoJXzA2MF9yZWFsX2NhcwoweDAxODoJXzA2MF9yZWFsX2NhczIKMHgwMWM6CV8wNjBfcmVhbF9sb2NrX3BhZ2UKMHgwMjA6CV8wNjBfcmVhbF91bmxvY2tfcGFnZQoKMHgwMjQ6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwMjg6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwMmM6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwMzA6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwMzQ6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwMzg6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwM2M6CShNb3Rvcm9sYSByZXNlcnZlZCkKCjB4MDQwOglfMDYwX2ltZW1fcmVhZAoweDA0NDoJXzA2MF9kbWVtX3JlYWQKMHgwNDg6CV8wNjBfZG1lbV93cml0ZQoweDA0YzoJXzA2MF9pbWVtX3JlYWRfd29yZAoweDA1MDoJXzA2MF9pbWVtX3JlYWRfbG9uZwoweDA1NDoJXzA2MF9kbWVtX3JlYWRfYnl0ZQoweDA1ODoJXzA2MF9kbWVtX3JlYWRfd29yZAoweDA1YzoJXzA2MF9kbWVtX3JlYWRfbG9uZwoweDA2MDoJXzA2MF9kbWVtX3dyaXRlX2J5dGUKMHgwNjQ6CV8wNjBfZG1lbV93cml0ZV93b3JkCjB4MDY4OglfMDYwX2RtZW1fd3JpdGVfbG9uZwoKMHgwNmM6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwNzA6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwNzQ6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwNzg6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwN2M6CShNb3Rvcm9sYSByZXNlcnZlZCkKCjY4MDYwSVNQIGVudHJ5IHBvaW50czoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMHgwMDA6CV8wNjBfaXNwX3VuaW1wCgoweDAwODoJXzA2MF9pc3BfY2FzCjB4MDEwOglfMDYwX2lzcF9jYXMyCjB4MDE4OglfMDYwX2lzcF9jYXNfZmluaXNoCjB4MDIwOglfMDYwX2lzcF9jYXMyX2ZpbmlzaAoweDAyODoJXzA2MF9pc3BfY2FzX2lucmFuZ2UKMHgwMzA6CV8wNjBfaXNwX2Nhc190ZXJtaW5hdGUKMHgwMzg6CV8wNjBfaXNwX2Nhc19yZXN0YXJ0CgpJbnRlZ3JhdGluZyBjYXMvY2FzMjoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZSBpbnN0cnVjdGlvbnMgImNhczIiIGFuZCAiY2FzIiAod2hlbiB1c2VkIHdpdGggYSBtaXNhbGlnbmVkIGVmZmVjdGl2ZQphZGRyZXNzKSB0YWtlIHRoZSBVbmltcGxlbWVudGVkIEludGVnZXIgSW5zdHJ1Y3Rpb24gZXhjZXB0aW9uLiBXaGVuIHRoZQowNjBJU1AgaXMgaW5zdGFsbGVkIHByb3Blcmx5LCB0aGVzZSBpbnN0cnVjdGlvbnMgd2lsbCBlbnRlciB0aHJvdWdoIHRoZQpfMDYwX2lzcF91bmltcCgpIGVudHJ5IHBvaW50IG9mIHRoZSBJU1AuCgpBZnRlciB0aGUgMDYwSVNQIGRlY29kZXMgdGhlIGluc3RydWN0aW9uIHR5cGUgYW5kIGZldGNoZXMgdGhlIGFwcHJvcHJpYXRlCmRhdGEgcmVnaXN0ZXJzLCBhbmQgQkVGT1JFIHRoZSBhY3R1YWwgZW11bGF0ZWQgdHJhbnNmZXJzIG9jY3VyLCB0aGUKcGFja2FnZSBjYWxscyBlaXRoZXIgdGhlICJDYWxsLW91dCIgXzA2MF9yZWFsX2NhcygpIG9yIF8wNjBfcmVhbF9jYXMyKCkuCklmIHRoZSBlbXVsYXRpb24gY29kZSBwcm92aWRlZCBieSB0aGUgMDYwSVNQIGlzIHN1ZmZpY2llbnQgZm9yIHRoZQpob3N0IHN5c3RlbSAoc2VlIGlzcC5zIHNvdXJjZSBjb2RlKSwgdGhlbiB0aGVzZSAiQ2FsbC1vdXQicyBzaG91bGQgYmUKbWFkZSwgYnkgdGhlIHN5c3RlbSBpbnRlZ3JhdG9yLCB0byBwb2ludCBkaXJlY3RseSBiYWNrIGludG8gdGhlIHBhY2thZ2UKdGhyb3VnaCB0aGUgIkVudHJ5LXBvaW50InMgXzA2MF9pc3BfY2FzKCkgb3IgXzA2MF9pc3BfY2FzMigpLgoKT25lIG90aGVyIG5lY2Vzc2FyeSBhY3Rpb24gYnkgdGhlIGludGVncmF0b3IgaXMgdG8gc3VwcGx5IHRoZSByb3V0aW5lcwpfMDYwX3JlYWxfbG9ja19wYWdlKCkgYW5kIF8wNjBfcmVhbF91bmxvY2tfcGFnZSgpLiBUaGVzZSBmdW5jdGlvbnMgYXJlCmRlZmluZWQgZnVydGhlciBpbiBpc2tlbGV0b24ucyBhbmQgdGhlIDY4MDYwIFNvZnR3YXJlIFBhY2thZ2UgU3BlY2lmaWNhdGlvbi4KCklmIHRoZSAiY29yZSIgZW11bGF0aW9uIHJvdXRpbmVzIG9mIGVpdGhlciAiY2FzIiBvciAiY2FzMiIgcGVyZm9ybSBzb21lCmFjdGlvbnMgd2hpY2ggYXJlIHRvbyBzeXN0ZW0tc3BlY2lmaWMsIHRoZW4gdGhlIHN5c3RlbSBpbnRlZ3JhdG9yIG11c3QKc3VwcGx5IG5ldyBlbXVsYXRpb24gY29kZS4gVGhpcyBuZXcgZW11bGF0aW9uIGNvZGUgc2hvdWxkIHJlc2lkZSB3aXRoaW4KdGhlIGZ1bmN0aW9ucyBfMDYwX3JlYWxfY2FzKCkgb3IgXzA2MF9yZWFsX2NhczIoKS4gV2hlbiB0aGlzIG5ldyBlbXVsYXRpb24KY29kZSBoYXMgY29tcGxldGVkLCB0aGVuIGl0IHNob3VsZCByZS1lbnRlciB0aGUgMDYwSVNQIHBhY2thZ2UgdGhyb3VnaCB0aGUKIkVudHJ5LXBvaW50IiBfMDYwX2lzcF9jYXNfZmluaXNoKCkgb3IgXzA2MF9pc3BfY2FzMl9maW5pc2goKS4KVG8gc2VlIHdoYXQgdGhlIHJlZ2lzdGVyIHN0YXRlIGlzIHVwb24gZW50ZXJpbmcgXzA2MF9yZWFsX2NhcygpIG9yCl8wNjBfcmVhbF9jYXMyKCkgYW5kIHdoYXQgaXQgc2hvdWxkIGJlIHVwb24gcmV0dXJuIHRvIHRoZSBwYWNrYWdlIHRocm91Z2gKXzA2MF9pc3BfY2FzX2ZpbmlzaCgpIG9yIF8wNjBfaXNwX2NhczJfZmluaXNoKCksIHBsZWFzZSByZWZlciB0byB0aGUKc291cmNlIGNvZGUgaW4gaXNwLnMuCgpNaXNjZWxsYW5lb3VzOgotLS0tLS0tLS0tLS0tLQoKXzA2MF9pc3BfdW5pbXA6Ci0tLS0tLS0tLS0tLS0tLS0KLSBkb2N1bWVudGVkIGluIDIuMiBpbiBzcGVjLgotIEJhc2ljIGZsb3c6CglleGNlcHRpb24gdGFrZW4gLS0tPiBlbnRlciBfMDYwX2lzcF91bmltcCAgIC0tfAoJCQkJCQkgICAgICB8CgkJCQkJCSAgICAgIHwKICAgICAgICAgICAgbWF5IGV4aXQgdGhyb3VnaCBfMDYwX3JlYWxfaXRyYWNlICAgIDwtLS0tfAoJCQkJCQkgIG9yICB8CiAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX2NoayAgICAgICA8LS0tLXwKCQkJCQkJICBvciAgfAogICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9kaXZieXplcm8gPC0tLS18CgkJCQkJCSAgb3IgIHwKICAgICAgICAgICAgbWF5IGV4aXQgdGhyb3VnaCBfMDYwX2lzcF9kb25lICAgICAgIDwtLS0tfAo=