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+fgo2ODA2MCBGTE9BVElORy1QT0lOVCBTT0ZUV0FSRSBQQUNLQUdFIChLZXJuZWwgdmVyc2lvbikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIGZpbGUgZnBzcC5zYSBjb250YWlucyB0aGUgNjgwNjAgRmxvYXRpbmctUG9pbnQgU29mdHdhcmUKUGFja2FnZS4gVGhpcyBwYWNrYWdlIGlzIGVzc2VudGlhbGx5IGEgc2V0IG9mIGV4Y2VwdGlvbiBoYW5kbGVycwp0aGF0IGNhbiBiZSBpbnRlZ3JhdGVkIGludG8gYW4gb3BlcmF0aW5nIHN5c3RlbS4KVGhlc2UgZXhjZXB0aW9uIGhhbmRsZXJzIGVtdWxhdGUgVW5pbXBsZW1lbnRlZCBGUCBpbnN0cnVjdGlvbnMsCmluc3RydWN0aW9ucyB1c2luZyB1bmltcGxlbWVudGVkIGRhdGEgdHlwZXMsIGFuZCBpbnN0cnVjdGlvbnMKdXNpbmcgdW5pbXBsZW1lbnRlZCBhZGRyZXNzaW5nIG1vZGVzLiBJbiBhZGRpdGlvbiwgdGhpcyBwYWNrYWdlCmluY2x1ZGVzIGV4Y2VwdGlvbiBoYW5kbGVycyB0byBwcm92aWRlIGZ1bGwgSUVFRS03NTQgY29tcGxpYW50CmV4Y2VwdGlvbiBoYW5kbGluZy4KClJlbGVhc2UgZmlsZSBmb3JtYXQ6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZSBmaWxlIGZwc3Auc2EgaXMgZXNzZW50aWFsbHkgYSBoZXhhZGVjaW1hbCBpbWFnZSBvZiB0aGUKcmVsZWFzZSBwYWNrYWdlLiBUaGlzIGlzIHRoZSBPTkxZIGZvcm1hdCB3aGljaCB3aWxsIGJlIHN1cHBvcnRlZC4KVGhlIGhleCBpbWFnZSB3YXMgY3JlYXRlZCBieSBhc3NlbWJsaW5nIHRoZSBzb3VyY2UgY29kZSBhbmQKdGhlbiBjb252ZXJ0aW5nIHRoZSByZXN1bHRpbmcgYmluYXJ5IG91dHB1dCBpbWFnZSBpbnRvIGFuCkFTQ0lJIHRleHQgZmlsZS4gVGhlIGhleGFkZWNpbWFsIG51bWJlcnMgYXJlIGxpc3RlZAp1c2luZyB0aGUgTW90b3JvbGEgQXNzZW1ibHkgU3ludGF4IGFzc2VtYmxlciBkaXJlY3RpdmUgImRjLmwiCihkZWZpbmUgY29uc3RhbnQgbG9uZ3dvcmQpLiBUaGUgZmlsZSBjYW4gYmUgY29udmVydGVkIHRvIG90aGVyCmFzc2VtYmx5IHN5bnRheGVzIGJ5IHVzaW5nIGFueSB3b3JkIHByb2Nlc3NvciB3aXRoIGEgZ2xvYmFsCnNlYXJjaCBhbmQgcmVwbGFjZSBmdW5jdGlvbi4KClRvIGFzc2lzdCBpbiBhc3NlbWJsaW5nIGFuZCBsaW5raW5nIHRoaXMgbW9kdWxlIHdpdGggb3RoZXIgbW9kdWxlcywKdGhlIGluc3RhbGxlciBzaG91bGQgYWRkIGEgc3ltYm9saWMgbGFiZWwgdG8gdGhlIHRvcCBvZiB0aGUgZmlsZS4KVGhpcyB3aWxsIGFsbG93IGNhbGxpbmcgcm91dGluZXMgdG8gYWNjZXNzIHRoZSBlbnRyeSBwb2ludHMKb2YgdGhpcyBwYWNrYWdlLgoKVGhlIHNvdXJjZSBjb2RlIGZwc3AucyBoYXMgYWxzbyBiZWVuIGluY2x1ZGVkIGJ1dCBvbmx5IGZvcgpkb2N1bWVudGF0aW9uIHB1cnBvc2VzLgoKUmVsZWFzZSBmaWxlIHN0cnVjdHVyZToKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCih0b3Agb2YgbW9kdWxlKQoJLS0tLS0tLS0tLS0tLS0tLS0KCXwJCXwgLSAxMjggYnl0ZS1zaXplZCBzZWN0aW9uCiAgICgxKSAgfCAgIENhbGwtT3V0CXwgLSA0IGJ5dGVzIHBlciBlbnRyeSAodXNlciBmaWxscyB0aGVzZSBpbikKCXwJCXwgLSBleGFtcGxlIHJvdXRpbmVzIGluIGZza2VsZXRvbi5zCgktLS0tLS0tLS0tLS0tLS0tLQoJfAkJfCAtIDggYnl0ZXMgcGVyIGVudHJ5CiAgICgyKSAgfCBFbnRyeSBQb2ludAl8IC0gdXNlciBkb2VzICJicmEiIG9yICJqbXAiIHRvIHRoaXMgYWRkcmVzcwoJfAkJfAoJLS0tLS0tLS0tLS0tLS0tLS0KCXwJCXwgLSBjb2RlIHNlY3Rpb24KICAgKDMpICB+CQl+Cgl8CQl8CgktLS0tLS0tLS0tLS0tLS0tLQooYm90dG9tIG9mIG1vZHVsZSkKClRoZSBmaXJzdCBzZWN0aW9uIG9mIHRoaXMgbW9kdWxlIGlzIHRoZSAiQ2FsbC1vdXQiIHNlY3Rpb24uIFRoaXMgc2VjdGlvbgppcyBOT1QgSU5DTFVERUQgaW4gZnBzcC5zYSAoYW4gZXhhbXBsZSAiQ2FsbC1vdXQiIHNlY3Rpb24gaXMgcHJvdmlkZWQgYXQKdGhlIGVuZCBvZiB0aGUgZmlsZSBmc2tlbGV0b24ucykuIFRoZSBwdXJwb3NlIG9mIHRoaXMgc2VjdGlvbiBpcyB0byBhbGxvdwp0aGUgRlBTUCByb3V0aW5lcyB0byByZWZlcmVuY2UgZXh0ZXJuYWwgZnVuY3Rpb25zIHRoYXQgbXVzdCBiZSBwcm92aWRlZApieSB0aGUgaG9zdCBvcGVyYXRpbmcgc3lzdGVtLiBUaGlzIHNlY3Rpb24gTVVTVCBiZSBleGFjdGx5IDEyOCBieXRlcyBpbgpzaXplLiBUaGVyZSBhcmUgMzIgZmllbGRzLCBlYWNoIDQgYnl0ZXMgaW4gc2l6ZS4gRWFjaCBmaWVsZCBjb3JyZXNwb25kcwp0byBhIGZ1bmN0aW9uIHJlcXVpcmVkIGJ5IHRoZSBGUFNQICh0aGVzZSBmdW5jdGlvbnMgYW5kIHRoZWlyIGxvY2F0aW9uIGFyZQpsaXN0ZWQgaW4gIjY4MDYwRlBTUCBjYWxsLW91dHMiIGJlbG93KS4gRWFjaCBmaWVsZCBlbnRyeSBzaG91bGQgY29udGFpbgp0aGUgYWRkcmVzcyBvZiB0aGUgY29ycmVzcG9uZGluZyBmdW5jdGlvbiBSRUxBVElWRSB0byB0aGUgc3RhcnRpbmcgYWRkcmVzcwpvZiB0aGUgImNhbGwtb3V0IiBzZWN0aW9uLiBUaGUgIkNhbGwtb3V0IiBzZWN0aW9uIG11c3Qgc2l0IGFkamFjZW50IHRvIHRoZQpmcHNwLnNhIGltYWdlIGluIG1lbW9yeS4KClRoZSBzZWNvbmQgc2VjdGlvbiwgdGhlICJFbnRyeS1wb2ludCIgc2VjdGlvbiwgaXMgdXNlZCBieSBleHRlcm5hbCByb3V0aW5lcwp0byBhY2Nlc3MgdGhlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIEZQU1AuIFNpbmNlIHRoZSBmcHNwLnNhIGhleCBmaWxlIGNvbnRhaW5zCm5vIHN5bWJvbCBuYW1lcywgdGhpcyBzZWN0aW9uIGNvbnRhaW5zIGZ1bmN0aW9uIGVudHJ5IHBvaW50cyB0aGF0IGFyZSBmaXhlZAp3aXRoIHJlc3BlY3QgdG8gdGhlIHRvcCBvZiB0aGUgcGFja2FnZS4gVGhlIGN1cnJlbnRseSBkZWZpbmVkIGVudHJ5LXBvaW50cwphcmUgbGlzdGVkIGluIHNlY3Rpb24gIjY4MDYwIEZQU1AgZW50cnkgcG9pbnRzIiBiZWxvdy4gQSBjYWxsaW5nIHJvdXRpbmUKd291bGQgc2ltcGx5IGV4ZWN1dGUgYSAiYnJhIiBvciAiam1wIiB0aGF0IGp1bXBlZCB0byB0aGUgc2VsZWN0ZWQgZnVuY3Rpb24KZW50cnktcG9pbnQuCgpGb3IgZXhhbXBsZSwgaWYgdGhlIDY4MDYwIGhhcmR3YXJlIHRvb2sgYSAiTGluZS1GIEVtdWxhdG9yIiBleGNlcHRpb24KKHZlY3RvciAjMTEpLCB0aGUgb3BlcmF0aW5nIHN5c3RlbSBzaG91bGQgZXhlY3V0ZSBzb21ldGhpbmcgc2ltaWxhciB0bzoKCglicmEJXzA2MEZQU1BfVE9QKzEyOCs0OAoKKF8wNjBGUFNQX1RPUCBpcyB0aGUgc3RhcnRpbmcgYWRkcmVzcyBvZiB0aGUgIkNhbGwtb3V0IiBzZWN0aW9uOyB0aGUgIkNhbGwtb3V0IgpzZWN0aW9uIGlzIDEyOCBieXRlcyBsb25nOyBhbmQgdGhlIEYtTGluZSBGUFNQIGhhbmRsZXIgZW50cnkgcG9pbnQgaXMgbG9jYXRlZAo0OCBieXRlcyBmcm9tIHRoZSB0b3Agb2YgdGhlICJFbnRyeS1wb2ludCIgc2VjdGlvbi4pCgpUaGUgdGhpcmQgc2VjdGlvbiBpcyB0aGUgY29kZSBzZWN0aW9uLiBBZnRlciBlbnRlcmluZyB0aHJvdWdoIGFuICJFbnRyeS1wb2ludCIsCnRoZSBlbnRyeSBjb2RlIGp1bXBzIHRvIHRoZSBhcHByb3ByaWF0ZSBlbXVsYXRpb24gY29kZSB3aXRoaW4gdGhlIGNvZGUgc2VjdGlvbi4KCjY4MDYwRlBTUCBjYWxsLW91dHM6IChkZXRhaWxzIGluIGZza2VsZXRvbi5zKQotLS0tLS0tLS0tLS0tLS0tLS0tLQoweDAwMDoJXzA2MF9yZWFsX2JzdW4KMHgwMDQ6CV8wNjBfcmVhbF9zbmFuCjB4MDA4OglfMDYwX3JlYWxfb3BlcnIKMHgwMGM6CV8wNjBfcmVhbF9vdmZsCjB4MDEwOglfMDYwX3JlYWxfdW5mbAoweDAxNDoJXzA2MF9yZWFsX2R6CjB4MDE4OglfMDYwX3JlYWxfaW5leAoweDAxYzoJXzA2MF9yZWFsX2ZsaW5lCjB4MDIwOglfMDYwX3JlYWxfZnB1X2Rpc2FibGVkCjB4MDI0OglfMDYwX3JlYWxfdHJhcAoweDAyODoJXzA2MF9yZWFsX3RyYWNlCjB4MDJjOglfMDYwX3JlYWxfYWNjZXNzCjB4MDMwOglfMDYwX2Zwc3BfZG9uZQoKMHgwMzQ6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwMzg6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwM2M6CShNb3Rvcm9sYSByZXNlcnZlZCkKCjB4MDQwOglfMDYwX2ltZW1fcmVhZAoweDA0NDoJXzA2MF9kbWVtX3JlYWQKMHgwNDg6CV8wNjBfZG1lbV93cml0ZQoweDA0YzoJXzA2MF9pbWVtX3JlYWRfd29yZAoweDA1MDoJXzA2MF9pbWVtX3JlYWRfbG9uZwoweDA1NDoJXzA2MF9kbWVtX3JlYWRfYnl0ZQoweDA1ODoJXzA2MF9kbWVtX3JlYWRfd29yZAoweDA1YzoJXzA2MF9kbWVtX3JlYWRfbG9uZwoweDA2MDoJXzA2MF9kbWVtX3dyaXRlX2J5dGUKMHgwNjQ6CV8wNjBfZG1lbV93cml0ZV93b3JkCjB4MDY4OglfMDYwX2RtZW1fd3JpdGVfbG9uZwoKMHgwNmM6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwNzA6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwNzQ6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwNzg6CShNb3Rvcm9sYSByZXNlcnZlZCkKMHgwN2M6CShNb3Rvcm9sYSByZXNlcnZlZCkKCjY4MDYwRlBTUCBlbnRyeSBwb2ludHM6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjB4MDAwOglfMDYwX2Zwc3Bfc25hbgoweDAwODoJXzA2MF9mcHNwX29wZXJyCjB4MDEwOglfMDYwX2Zwc3Bfb3ZmbAoweDAxODoJXzA2MF9mcHNwX3VuZmwKMHgwMjA6CV8wNjBfZnBzcF9kegoweDAyODoJXzA2MF9mcHNwX2luZXgKMHgwMzA6CV8wNjBfZnBzcF9mbGluZQoweDAzODoJXzA2MF9mcHNwX3Vuc3VwcAoweDA0MDoJXzA2MF9mcHNwX2VmZmFkZAoKCgpNaXNjZWxsYW5lb3VzOgotLS0tLS0tLS0tLS0tLQoKXzA2MF9mcHNwX3NuYW46Ci0tLS0tLS0tLS0tLS0tLS0KLSBkb2N1bWVudGVkIGluIDMuNSBvZiAwNjBTUCBzcGVjLgotIEJhc2ljIGZsb3c6CglleGNlcHRpb24gdGFrZW4gLS0tPiBlbnRlciBfMDYwX2Zwc3Bfc25hbiAtLXwKCQkJCQkJICAgIHwKICAgICAgICAgICAgYWx3YXlzIGV4aXRzIHRocm91Z2ggXzA2MF9yZWFsX3NuYW4gPC0tLS0KCl8wNjBfZnBzcF9vcGVycjoKLS0tLS0tLS0tLS0tLS0tLQotIGRvY3VtZW50ZWQgaW4gMy41IG9mIDA2MFNQIHNwZWMuCi0gQmFzaWMgZmxvdzoKCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF9vcGVyciAtLXwKCQkJCQkJICAgICB8CiAgICAgICAgICAgYWx3YXlzIGV4aXRzIHRocm91Z2ggXzA2MF9yZWFsX29wZXJyIDwtLS0tLQoKXzA2MF9mcHNwX2R6OgotLS0tLS0tLS0tLS0tLS0tCi0gZG9jdW1lbnRlZCBpbiAzLjcgb2YgMDYwU1Agc3BlYy4KLSBCYXNpYyBmbG93OgoJZXhjZXB0aW9uIHRha2VuIC0tLT4gZW50ZXIgXzA2MF9mcHNwX2R6ICAgLS18CgkJCQkJCSAgICB8CiAgICAgICAgICAgIGFsd2F5cyBleGl0cyB0aHJvdWdoIF8wNjBfcmVhbF9keiAgIDwtLS0tCgpfMDYwX2Zwc3BfaW5leDoKLS0tLS0tLS0tLS0tLS0tLQotIGRvY3VtZW50ZWQgaW4gMy42IG9mIDA2MFNQIHNwZWMuCi0gQmFzaWMgZmxvdzoKCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF9pbmV4IC0tfAoJCQkJCQkgICAgfAogICAgICAgICAgICBhbHdheXMgZXhpdHMgdGhyb3VnaCBfMDYwX3JlYWxfaW5leCA8LS0tLQoKCl8wNjBfZnBzcF9vdmZsOgotLS0tLS0tLS0tLS0tLS0tCi0gZG9jdW1lbnRlZCBpbiAzLjQgb2YgMDYwU1Agc3BlYy4KLSBCYXNpYyBmbG93OgoJZXhjZXB0aW9uIHRha2VuIC0tLT4gZW50ZXIgXzA2MF9mcHNwX292ZmwgLS18CgkJCQkJCSAgICB8CiAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX2luZXggICAgIDwtLS18CgkJCQkJCSBvciB8CiAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX292ZmwgICAgIDwtLS18CgkJCQkJCSBvciB8CiAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9mcHNwX2RvbmUgICAgIDwtLS18CgpfMDYwX2Zwc3BfdW5mbDoKLS0tLS0tLS0tLS0tLS0tLQotIGRvY3VtZW50ZWQgaW4gMy40IG9mIDA2MFNQIHNwZWMuCi0gQmFzaWMgZmxvdzoKCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF91bmZsIC0tfAoJCQkJCQkgICAgfAogICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9pbmV4ICAgICA8LS0tfAoJCQkJCQkgb3IgfAogICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF91bmZsICAgICA8LS0tfAoJCQkJCQkgb3IgfAogICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfZnBzcF9kb25lICAgICA8LS0tfAoKCl8wNjBfZnBzcF9mbGluZToKLS0tLS0tLS0tLS0tLS0tLS0KLSBub3QgZnVsbHkgZG9jdW1lbnRlZCBpbiAwNjBTUCBzcGVjLgotIEJhc2ljIGZsb3c6CglleGNlcHRpb24gdGFrZW4gLS0tPiBlbnRlciBfMDYwX2Zwc3BfZmxpbmUgLS18CgkJCQkJCSAgICAgfAogICAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfAogICAgICAgICAgICB2ICAgICAgICAgICAgICAgdiAgICAgICAgICAgICAgICAgICAgIHYKICAgKHVuaW1wbGVtZW50ZWQgICAoZnB1IGRpc2FibGVkKSAgICAgICAocG9zc2libGUgRi1saW5lIGlsbGVnYWwpCiAgICAgc3RhY2sgZnJhbWUpICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgdgogICAgICAgICAgICB8ICAgICAgICAgICAgICAgdiAgICAgICAgICAgICAgIHNwZWNpYWwgY2FzZSAiZm1vdmVjciI/CiAgICAgICAgICAgIHwgICAgICAgICBleGl0IHRocm91Z2ggICAgICAgICAgICAgICAgICAgIHwKICAgICAgICAgICAgfCAgICAgXzA2MF9yZWFsX2ZwdV9kaXNhYmxlZCAgICAgICAgLS0tLS0tLS0tLS0tLQogICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8CiAgICAgICAgICAgIHwgICAgICAgICAgICAgICBeICAgICAgICAgICAgICAgICAgIHYgICAgICAgICAgIHYKICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICh5ZXMpICAgICAgICAobm8pCiAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHYgICAgICAgICAgIHYKICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgZnB1IGRpc2FibGVkPyAgIGV4aXQgdGhyb3VnaAogICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgXzA2MF9yZWFsX2ZsaW5lCiAgICAgICAgICAgIHYgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIC0tLS0tLS0tLS0tLS0KICAgICAgICAgICAgfCAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgfAogICAgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICB2ICAgICAgICAgICB2CiAgICAgICAgICAgIHwgICAgICAgICAgICAgICB8LS0tLS0tLS0tLS0oeWVzKSAgICAgICAgKG5vKQogICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAgIHwtLS0tPC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwKICAgICAgICAgICAgfAogICAgICAgICAgICB8CiAgICAgICAgICAgIHwtLS0tPiBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF90cmFjZQogICAgICAgICAgICB8CiAgICAgICAgICAgIHwtLS0tPiBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF90cmFwCiAgICAgICAgICAgIHwKICAgICAgICAgICAgfC0tLS0+IG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX2JzdW4KICAgICAgICAgICAgfAogICAgICAgICAgICB8LS0tLT4gbWF5IGV4aXQgdGhyb3VnaCBfMDYwX2Zwc3BfZG9uZQoKCl8wNjBfZnBzcF91bnN1cHA6Ci0tLS0tLS0tLS0tLS0tLS0tLQotIGRvY3VtZW50ZWQgaW4gMy4xIG9mIDA2MFNQIHNwZWMuCi0gQmFzaWMgZmxvdzoKCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF91bnN1cHAgLS18CgkJCQkJCSAgICAgIHwKCQkJCQkJICAgICAgfAogICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9zbmFuICAgICAgPC0tLS18CgkJCQkJCSAgb3IgIHwKICAgICAgICAgICAgbWF5IGV4aXQgdGhyb3VnaCBfMDYwX3JlYWxfb3BlcnIgICAgIDwtLS0tfAoJCQkJCQkgIG9yICB8CiAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX292ZmwgICAgICA8LS0tLXwKCQkJCQkJICBvciAgfAogICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF91bmZsICAgICAgPC0tLS18CgkJCQkJCSAgb3IgIHwKICAgICAgICAgICAgbWF5IGV4aXQgdGhyb3VnaCBfMDYwX3JlYWxfaW5leCAgICAgIDwtLS0tfAoJCQkJCQkgIG9yICB8CiAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9yZWFsX3RyYWNlICAgICA8LS0tLXwKCQkJCQkJICBvciAgfAogICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfZnBzcF9kb25lICAgICAgPC0tLS18CgoKXzA2MF9mcHNwX2VmZmFkZDoKLS0tLS0tLS0tLS0tLS0tLS0tCi0gZG9jdW1lbnRlZCBpbiAzLjMgb2YgMDYwIHNwZWMuCi0gQmFzaWMgZmxvdzoKCWV4Y2VwdGlvbiB0YWtlbiAtLS0+IGVudGVyIF8wNjBfZnBzcF9lZmZhZGQgLS18CgkJCQkJCSAgICAgIHwKCQkJCQkJICAgICAgfAogICAgICAgICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF90cmFjZSAgICAgPC0tLS18CgkJCQkJCSAgb3IgIHwKICAgICBtYXkgZXhpdCB0aHJvdWdoIF8wNjBfcmVhbF9mcHVfZGlzYWJsZWQgICAgIDwtLS0tfAoJCQkJCQkgIG9yICB8CiAgICAgICAgICAgIG1heSBleGl0IHRocm91Z2ggXzA2MF9mcHNwX2RvbmUgICAgICA8LS0tLXwK