PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPg0KPCEtLU5ld1BhZ2UtLT4NCjxIVE1MPg0KPEhFQUQ+DQo8IS0tIEdlbmVyYXRlZCBieSBqYXZhZG9jIG9uIFRodSBOb3YgMjIgMTc6MTM6MDAgRVNUIDIwMDcgLS0+DQo8VElUTEU+DQpYYWxhbi1KYXZhIDIuNy4xOiBJbnRlcmZhY2UgIExTUGFyc2VyDQo8L1RJVExFPg0KPExJTksgUkVMID0ic3R5bGVzaGVldCIgVFlQRT0idGV4dC9jc3MiIEhSRUY9Ii4uLy4uLy4uLy4uL3N0eWxlc2hlZXQuY3NzIiBUSVRMRT0iU3R5bGUiPg0KPC9IRUFEPg0KPEJPRFkgQkdDT0xPUj0id2hpdGUiPg0KDQo8IS0tID09PT09PT09PT0gU1RBUlQgT0YgTkFWQkFSID09PT09PT09PT0gLS0+DQo8QSBOQU1FPSJuYXZiYXJfdG9wIj48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgV0lEVEg9IjEwMCUiIENFTExQQURESU5HPSIxIiBDRUxMU1BBQ0lORz0iMCI+DQo8VFI+DQo8VEQgQ09MU1BBTj0yIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+DQo8QSBOQU1FPSJuYXZiYXJfdG9wX2ZpcnN0cm93Ij48IS0tIC0tPjwvQT4KPFRBQkxFIEJPUkRFUj0iMCIgQ0VMTFBBRERJTkc9IjAiIENFTExTUEFDSU5HPSIzIj4NCiAgPFRSIEFMSUdOPSJjZW50ZXIiIFZBTElHTj0idG9wIj4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL292ZXJ2aWV3LXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5PdmVydmlldzwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXN1bW1hcnkuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5QYWNrYWdlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNGRkZGRkYiIENMQVNTPSJOYXZCYXJDZWxsMVJldiI+ICZuYnNwOzxGT05UIENMQVNTPSJOYXZCYXJGb250MVJldiI+PEI+Q2xhc3M8L0I+PC9GT05UPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJjbGFzcy11c2UvTFNQYXJzZXIuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5Vc2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0icGFja2FnZS10cmVlLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+VHJlZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9kZXByZWNhdGVkLWxpc3QuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5EZXByZWNhdGVkPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4LWFsbC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkluZGV4PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2hlbHAtZG9jLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SGVscDwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDwvVFI+DQo8L1RBQkxFPg0KPC9URD4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBST1dTUEFOPTM+PEVNPg0KPC9FTT4NCjwvVEQ+DQo8L1RSPg0KDQo8VFI+DQo8VEQgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJOYXZCYXJDZWxsMiI+PEZPTlQgU0laRT0iLTIiPg0KJm5ic3A7PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vbHMvTFNPdXRwdXQuaHRtbCI+PEI+UFJFViBDTEFTUzwvQj48L0E+Jm5ic3A7DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU1BhcnNlckZpbHRlci5odG1sIj48Qj5ORVhUIENMQVNTPC9CPjwvQT48L0ZPTlQ+PC9URD4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQogIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2luZGV4Lmh0bWwiIFRBUkdFVD0iX3RvcCI+PEI+RlJBTUVTPC9CPjwvQT4gICZuYnNwOw0KJm5ic3A7PEEgSFJFRj0iTFNQYXJzZXIuaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5OTyBGUkFNRVM8L0I+PC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjxUUj4NCjxURCBWQUxJR049InRvcCIgQ0xBU1M9Ik5hdkJhckNlbGwzIj48Rk9OVCBTSVpFPSItMiI+DQogIFNVTU1BUlk6ICZuYnNwO0lOTkVSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNmaWVsZF9zdW1tYXJ5Ij5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2Rfc3VtbWFyeSI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCkRFVEFJTDogJm5ic3A7PEEgSFJFRj0iI2ZpZWxkX2RldGFpbCI+RklFTEQ8L0E+Jm5ic3A7fCZuYnNwO0NPTlNUUiZuYnNwO3wmbmJzcDs8QSBIUkVGPSIjbWV0aG9kX2RldGFpbCI+TUVUSE9EPC9BPjwvRk9OVD48L1REPg0KPC9UUj4NCjwvVEFCTEU+DQo8IS0tID09PT09PT09PT09IEVORCBPRiBOQVZCQVIgPT09PT09PT09PT0gLS0+DQoNCjxIUj4NCjwhLS0gPT09PT09PT0gU1RBUlQgT0YgQ0xBU1MgREFUQSA9PT09PT09PSAtLT4NCjxIMj4NCjxGT05UIFNJWkU9Ii0xIj4NCm9yZy53M2MuZG9tLmxzPC9GT05UPg0KPEJSPg0KSW50ZXJmYWNlICBMU1BhcnNlcjwvSDI+DQo8SFI+DQo8REw+DQo8RFQ+cHVibGljIGludGVyZmFjZSA8Qj5MU1BhcnNlcjwvQj48L0RMPg0KDQo8UD4NCkFuIGludGVyZmFjZSB0byBhbiBvYmplY3QgdGhhdCBpcyBhYmxlIHRvIGJ1aWxkLCBvciBhdWdtZW50LCBhIERPTSB0cmVlIAogZnJvbSB2YXJpb3VzIGlucHV0IHNvdXJjZXMuIAogPHA+IDxjb2RlPkxTUGFyc2VyPC9jb2RlPiBwcm92aWRlcyBhbiBBUEkgZm9yIHBhcnNpbmcgWE1MIGFuZCBidWlsZGluZyB0aGUgCiBjb3JyZXNwb25kaW5nIERPTSBkb2N1bWVudCBzdHJ1Y3R1cmUuIEEgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IGluc3RhbmNlIAogY2FuIGJlIG9idGFpbmVkIGJ5IGludm9raW5nIHRoZSAKIDxjb2RlPkRPTUltcGxlbWVudGF0aW9uTFMuY3JlYXRlTFNQYXJzZXIoKTwvY29kZT4gbWV0aG9kLiAKIDxwPiBBcyBzcGVjaWZpZWQgaW4gWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcnPkRPTSBMZXZlbCAzIENvcmU8L2E+XQogLCB3aGVuIGEgZG9jdW1lbnQgaXMgZmlyc3QgbWFkZSBhdmFpbGFibGUgdmlhIHRoZSBMU1BhcnNlcjogCiA8dWw+CiA8bGk+IHRoZXJlIHdpbGwgCiBuZXZlciBiZSB0d28gYWRqYWNlbnQgbm9kZXMgb2YgdHlwZSBOT0RFX1RFWFQsIGFuZCB0aGVyZSB3aWxsIG5ldmVyIGJlIAogZW1wdHkgdGV4dCBub2Rlcy4gCiA8L2xpPgogPGxpPiBpdCBpcyBleHBlY3RlZCB0aGF0IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gYW5kIAogPGNvZGU+bm9kZVZhbHVlPC9jb2RlPiBhdHRyaWJ1dGVzIG9mIGFuIDxjb2RlPkF0dHI8L2NvZGU+IG5vZGUgaW5pdGlhbGx5IAogcmV0dXJuIHRoZSA8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy14bWwtMjAwNDAyMDQjQVZOb3JtYWxpemUnPlhNTCAxLjAgCiBub3JtYWxpemVkIHZhbHVlPC9hPi4gSG93ZXZlciwgaWYgdGhlIHBhcmFtZXRlcnMgIjxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUNvcmUvY29yZS5odG1sI3BhcmFtZXRlci12YWxpZGF0ZS1pZi1zY2hlbWEnPgogdmFsaWRhdGUtaWYtc2NoZW1hPC9hPiIgYW5kICI8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1Db3JlL2NvcmUuaHRtbCNwYXJhbWV0ZXItZGF0YXR5cGUtbm9ybWFsaXphdGlvbic+CiBkYXRhdHlwZS1ub3JtYWxpemF0aW9uPC9hPiIgYXJlIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiwgZGVwZW5kaW5nIG9uIHRoZSBhdHRyaWJ1dGUgbm9ybWFsaXphdGlvbiAKIHVzZWQsIHRoZSBhdHRyaWJ1dGUgdmFsdWVzIG1heSBkaWZmZXIgZnJvbSB0aGUgb25lcyBvYnRhaW5lZCBieSB0aGUgWE1MIAogMS4wIGF0dHJpYnV0ZSBub3JtYWxpemF0aW9uLiBJZiB0aGUgcGFyYW1ldGVycyAiPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtQ29yZS9jb3JlLmh0bWwjcGFyYW1ldGVyLWRhdGF0eXBlLW5vcm1hbGl6YXRpb24nPgogZGF0YXR5cGUtbm9ybWFsaXphdGlvbjwvYT4iIGlzIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4sIHRoZSBYTUwgMS4wIGF0dHJpYnV0ZSBub3JtYWxpemF0aW9uIGlzIAogZ3VhcmFudGVlZCB0byBvY2N1ciwgYW5kIGlmIHRoZSBhdHRyaWJ1dGVzIGxpc3QgZG9lcyBub3QgY29udGFpbiAKIG5hbWVzcGFjZSBkZWNsYXJhdGlvbnMsIHRoZSA8Y29kZT5hdHRyaWJ1dGVzPC9jb2RlPiBhdHRyaWJ1dGUgb24gCiA8Y29kZT5FbGVtZW50PC9jb2RlPiBub2RlIHJlcHJlc2VudHMgdGhlIHByb3BlcnR5IDxiPlthdHRyaWJ1dGVzXTwvYj4gZGVmaW5lZCBpbiBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMteG1sLWluZm9zZXQtMjAwNDAyMDQvJz5YTUwgSW5mb3JtYXRpb24gU2V0PC9hPl0KIC4gCiA8L2xpPgogPC91bD4KIDxwPiBBc3luY2hyb25vdXMgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IG9iamVjdHMgYXJlIGV4cGVjdGVkIHRvIGFsc28gCiBpbXBsZW1lbnQgdGhlIDxjb2RlPmV2ZW50czo6RXZlbnRUYXJnZXQ8L2NvZGU+IGludGVyZmFjZSBzbyB0aGF0IGV2ZW50IAogbGlzdGVuZXJzIGNhbiBiZSByZWdpc3RlcmVkIG9uIGFzeW5jaHJvbm91cyA8Y29kZT5MU1BhcnNlcjwvY29kZT4gCiBvYmplY3RzLiAKIDxwPiBFdmVudHMgc3VwcG9ydGVkIGJ5IGFzeW5jaHJvbm91cyA8Y29kZT5MU1BhcnNlcjwvY29kZT4gb2JqZWN0cyBhcmU6IAogPGRsPgogPGR0PmxvYWQ8L2R0PgogPGRkPgogIFRoZSA8Y29kZT5MU1BhcnNlcjwvY29kZT4gZmluaXNoZXMgdG8gbG9hZCB0aGUgZG9jdW1lbnQuIFNlZSBhbHNvIHRoZSAKIGRlZmluaXRpb24gb2YgdGhlIDxjb2RlPkxTTG9hZEV2ZW50PC9jb2RlPiBpbnRlcmZhY2UuIDwvZGQ+CiA8ZHQ+cHJvZ3Jlc3M8L2R0PgogPGRkPiBUaGUgCiA8Y29kZT5MU1BhcnNlcjwvY29kZT4gc2lnbmFscyBwcm9ncmVzcyBhcyBkYXRhIGlzIHBhcnNlZC4gIFRoaXMgCiBzcGVjaWZpY2F0aW9uIGRvZXMgbm90IGF0dGVtcHQgdG8gZGVmaW5lIGV4YWN0bHkgd2hlbiBwcm9ncmVzcyBldmVudHMgCiBzaG91bGQgYmUgZGlzcGF0Y2hlZC4gVGhhdCBpcyBpbnRlbnRpb25hbGx5IGxlZnQgYXMgCiBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQuIEhlcmUgaXMgb25lIGV4YW1wbGUgb2YgaG93IGFuIGFwcGxpY2F0aW9uIG1pZ2h0IAogZGlzcGF0Y2ggcHJvZ3Jlc3MgZXZlbnRzOiBPbmNlIHRoZSBwYXJzZXIgc3RhcnRzIHJlY2VpdmluZyBkYXRhLCBhIAogcHJvZ3Jlc3MgZXZlbnQgaXMgZGlzcGF0Y2hlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBwYXJzaW5nIHN0YXJ0cy4gRnJvbSAKIHRoZXJlIG9uLCBhIHByb2dyZXNzIGV2ZW50IGlzIGRpc3BhdGNoZWQgZm9yIGV2ZXJ5IDQwOTYgYnl0ZXMgb2YgZGF0YSAKIHRoYXQgaXMgcmVjZWl2ZWQgYW5kIHByb2Nlc3NlZC4gVGhpcyBpcyBvbmx5IG9uZSBleGFtcGxlLCB0aG91Z2gsIGFuZCAKIGltcGxlbWVudGF0aW9ucyBjYW4gY2hvb3NlIHRvIGRpc3BhdGNoIHByb2dyZXNzIGV2ZW50cyBhdCBhbnkgdGltZSB3aGlsZSAKIHBhcnNpbmcsIG9yIG5vdCBkaXNwYXRjaCB0aGVtIGF0IGFsbC4gIFNlZSBhbHNvIHRoZSBkZWZpbml0aW9uIG9mIHRoZSAKIDxjb2RlPkxTUHJvZ3Jlc3NFdmVudDwvY29kZT4gaW50ZXJmYWNlLiA8L2RkPgogPC9kbD4KIDxwID48Yj5Ob3RlOjwvYj4gIEFsbCBldmVudHMgZGVmaW5lZCBpbiB0aGlzIHNwZWNpZmljYXRpb24gdXNlIHRoZSAKIG5hbWVzcGFjZSBVUkkgPGNvZGU+Imh0dHA6Ly93d3cudzMub3JnLzIwMDIvRE9NTFMiPC9jb2RlPi4gCiA8cD4gV2hpbGUgcGFyc2luZyBhbiBpbnB1dCBzb3VyY2UsIGVycm9ycyBhcmUgcmVwb3J0ZWQgdG8gdGhlIGFwcGxpY2F0aW9uIAogdGhyb3VnaCB0aGUgZXJyb3IgaGFuZGxlciAoPGNvZGU+TFNQYXJzZXIuZG9tQ29uZmlnPC9jb2RlPidzICI8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1Db3JlL2NvcmUuaHRtbCNwYXJhbWV0ZXItZXJyb3ItaGFuZGxlcic+CiBlcnJvci1oYW5kbGVyPC9hPiIgcGFyYW1ldGVyKS4gVGhpcyBzcGVjaWZpY2F0aW9uIGRvZXMgaW4gbm8gd2F5IHRyeSB0byBkZWZpbmUgYWxsIHBvc3NpYmxlIAogZXJyb3JzIHRoYXQgY2FuIG9jY3VyIHdoaWxlIHBhcnNpbmcgWE1MLCBvciBhbnkgb3RoZXIgbWFya3VwLCBidXQgc29tZSAKIGNvbW1vbiBlcnJvciBjYXNlcyBhcmUgZGVmaW5lZC4gVGhlIHR5cGVzICg8Y29kZT5ET01FcnJvci50eXBlPC9jb2RlPikgb2YgCiBlcnJvcnMgYW5kIHdhcm5pbmdzIGRlZmluZWQgYnkgdGhpcyBzcGVjaWZpY2F0aW9uIGFyZTogCiA8ZGw+CiA8ZHQ+IAogPGNvZGU+ImNoZWNrLWNoYXJhY3Rlci1ub3JtYWxpemF0aW9uLWZhaWx1cmUiIFtlcnJvcl08L2NvZGU+IDwvZHQ+CiA8ZGQ+IFJhaXNlZCBpZiAKIHRoZSBwYXJhbWV0ZXIgIjxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUNvcmUvY29yZS5odG1sI3BhcmFtZXRlci1jaGVjay1jaGFyYWN0ZXItbm9ybWFsaXphdGlvbic+CiBjaGVjay1jaGFyYWN0ZXItbm9ybWFsaXphdGlvbjwvYT4iIGlzIHNldCB0byB0cnVlIGFuZCBhIHN0cmluZyBpcyBlbmNvdW50ZXJlZCB0aGF0IGZhaWxzIG5vcm1hbGl6YXRpb24gCiBjaGVja2luZy4gPC9kZD4KIDxkdD48Y29kZT4iZG9jdHlwZS1ub3QtYWxsb3dlZCIgW2ZhdGFsXTwvY29kZT48L2R0PgogPGRkPiBSYWlzZWQgaWYgdGhlIAogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgImRpc2FsbG93LWRvY3R5cGUiIGlzIHNldCB0byA8Y29kZT50cnVlPC9jb2RlPiAKIGFuZCBhIGRvY3R5cGUgaXMgZW5jb3VudGVyZWQuIDwvZGQ+CiA8ZHQ+PGNvZGU+Im5vLWlucHV0LXNwZWNpZmllZCIgW2ZhdGFsXTwvY29kZT48L2R0PgogPGRkPiAKIFJhaXNlZCB3aGVuIGxvYWRpbmcgYSBkb2N1bWVudCBhbmQgbm8gaW5wdXQgaXMgc3BlY2lmaWVkIGluIHRoZSAKIDxjb2RlPkxTSW5wdXQ8L2NvZGU+IG9iamVjdC4gPC9kZD4KIDxkdD4KIDxjb2RlPiJwaS1iYXNlLXVyaS1ub3QtcHJlc2VydmVkIiBbd2FybmluZ108L2NvZGU+PC9kdD4KIDxkZD4gUmFpc2VkIGlmIGEgcHJvY2Vzc2luZyAKIGluc3RydWN0aW9uIGlzIGVuY291bnRlcmVkIGluIGEgbG9jYXRpb24gd2hlcmUgdGhlIGJhc2UgVVJJIG9mIHRoZSAKIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gY2FuIG5vdCBiZSBwcmVzZXJ2ZWQuICBPbmUgZXhhbXBsZSBvZiBhIGNhc2Ugd2hlcmUgCiB0aGlzIHdhcm5pbmcgd2lsbCBiZSByYWlzZWQgaXMgaWYgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyICI8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1Db3JlL2NvcmUuaHRtbCNwYXJhbWV0ZXItZW50aXRpZXMnPgogZW50aXRpZXM8L2E+IiBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+IGFuZCB0aGUgZm9sbG93aW5nIFhNTCBmaWxlIGlzIHBhcnNlZDogCiA8cHJlPgogJmx0OyFET0NUWVBFIHJvb3QgWyAmbHQ7IUVOVElUWSBlIFNZU1RFTSAnc3ViZGlyL215ZW50aXR5LmVudCcgXSZndDsgCiAmbHQ7cm9vdCZndDsgJmFtcDtlOyAmbHQ7L3Jvb3QmZ3Q7PC9wcmU+CiAgQW5kIDxjb2RlPnN1YmRpci9teWVudGl0eS5lbnQ8L2NvZGU+IAogY29udGFpbnM6IAogPHByZT4mbHQ7b25lJmd0OyAmbHQ7dHdvLyZndDsgJmx0Oy9vbmUmZ3Q7ICZsdDs/cGkgMy4xNDE1OT8mZ3Q7IAogJmx0O21vcmUvJmd0OzwvcHJlPgogPC9kZD4KIDxkdD48Y29kZT4idW5ib3VuZC1wcmVmaXgtaW4tZW50aXR5IiBbd2FybmluZ108L2NvZGU+PC9kdD4KIDxkZD4gQW4gCiBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQgd2FybmluZyB0aGF0IG1heSBiZSByYWlzZWQgaWYgdGhlIGNvbmZpZ3VyYXRpb24gCiBwYXJhbWV0ZXIgIjxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUNvcmUvY29yZS5odG1sI3BhcmFtZXRlci1uYW1lc3BhY2VzJz4KIG5hbWVzcGFjZXM8L2E+IiBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4gYW5kIGFuIHVuYm91bmQgbmFtZXNwYWNlIHByZWZpeCBpcyAKIGVuY291bnRlcmVkIGluIGFuIGVudGl0eSdzIHJlcGxhY2VtZW50IHRleHQuIFJhaXNpbmcgdGhpcyB3YXJuaW5nIGlzIG5vdCAKIGVuZm9yY2VkIHNpbmNlIHNvbWUgZXhpc3RpbmcgcGFyc2VycyBtYXkgbm90IHJlY29nbml6ZSB1bmJvdW5kIG5hbWVzcGFjZSAKIHByZWZpeGVzIGluIHRoZSByZXBsYWNlbWVudCB0ZXh0IG9mIGVudGl0aWVzLiA8L2RkPgogPGR0PgogPGNvZGU+InVua25vd24tY2hhcmFjdGVyLWRlbm9ybWFsaXphdGlvbiIgW2ZhdGFsXTwvY29kZT48L2R0PgogPGRkPiBSYWlzZWQgaWYgdGhlIAogY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgImlnbm9yZS11bmtub3duLWNoYXJhY3Rlci1kZW5vcm1hbGl6YXRpb25zIiBpcyAKIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4gYW5kIGEgY2hhcmFjdGVyIGlzIGVuY291bnRlcmVkIGZvciB3aGljaCB0aGUgCiBwcm9jZXNzb3IgY2Fubm90IGRldGVybWluZSB0aGUgbm9ybWFsaXphdGlvbiBwcm9wZXJ0aWVzLiA8L2RkPgogPGR0PgogPGNvZGU+InVuc3VwcG9ydGVkLWVuY29kaW5nIiBbZmF0YWxdPC9jb2RlPjwvZHQ+CiA8ZGQ+IFJhaXNlZCBpZiBhbiB1bnN1cHBvcnRlZCAKIGVuY29kaW5nIGlzIGVuY291bnRlcmVkLiA8L2RkPgogPGR0Pjxjb2RlPiJ1bnN1cHBvcnRlZC1tZWRpYS10eXBlIiBbZmF0YWxdPC9jb2RlPjwvZHQ+CiA8ZGQ+IAogUmFpc2VkIGlmIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlciAic3VwcG9ydGVkLW1lZGlhLXR5cGVzLW9ubHkiIGlzIHNldCAKIHRvIDxjb2RlPnRydWU8L2NvZGU+IGFuZCBhbiB1bnN1cHBvcnRlZCBtZWRpYSB0eXBlIGlzIGVuY291bnRlcmVkLiA8L2RkPgogPC9kbD4gCiA8cD4gSW4gYWRkaXRpb24gdG8gcmFpc2luZyB0aGUgZGVmaW5lZCBlcnJvcnMgYW5kIHdhcm5pbmdzLCBpbXBsZW1lbnRhdGlvbnMgCiBhcmUgZXhwZWN0ZWQgdG8gcmFpc2UgaW1wbGVtZW50YXRpb24gc3BlY2lmaWMgZXJyb3JzIGFuZCB3YXJuaW5ncyBmb3IgYW55IAogb3RoZXIgZXJyb3IgYW5kIHdhcm5pbmcgY2FzZXMgc3VjaCBhcyBJTyBlcnJvcnMgKGZpbGUgbm90IGZvdW5kLCAKIHBlcm1pc3Npb24gZGVuaWVkLC4uLiksIFhNTCB3ZWxsLWZvcm1lZG5lc3MgZXJyb3JzLCBhbmQgc28gb24uIAogPHA+U2VlIGFsc28gdGhlIDxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUxTLTIwMDQwNDA3Jz5Eb2N1bWVudCBPYmplY3QgTW9kZWwgKERPTSkgTGV2ZWwgMyBMb2FkCmFuZCBTYXZlIFNwZWNpZmljYXRpb248L2E+Lg0KPFA+DQo8SFI+DQoNCjxQPg0KPCEtLSA9PT09PT09PSBJTk5FUiBDTEFTUyBTVU1NQVJZID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PT0gRklFTEQgU1VNTUFSWSA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0iZmllbGRfc3VtbWFyeSI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0yPjxGT05UIFNJWkU9IisyIj4NCjxCPkZpZWxkIFN1bW1hcnk8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDtzaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU1BhcnNlci5odG1sI0FDVElPTl9BUFBFTkRfQVNfQ0hJTERSRU4iPkFDVElPTl9BUFBFTkRfQVNfQ0hJTERSRU48L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7QXBwZW5kIHRoZSByZXN1bHQgb2YgdGhlIHBhcnNlIG9wZXJhdGlvbiBhcyBjaGlsZHJlbiBvZiB0aGUgY29udGV4dCAKIG5vZGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPnN0YXRpYyZuYnNwO3Nob3J0PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTUGFyc2VyLmh0bWwjQUNUSU9OX0lOU0VSVF9BRlRFUiI+QUNUSU9OX0lOU0VSVF9BRlRFUjwvQT48L0I+PC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtJbnNlcnQgdGhlIHJlc3VsdCBvZiB0aGUgcGFyc2Ugb3BlcmF0aW9uIGFzIHRoZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgCiBzaWJsaW5nIG9mIHRoZSBjb250ZXh0IG5vZGUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPnN0YXRpYyZuYnNwO3Nob3J0PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTUGFyc2VyLmh0bWwjQUNUSU9OX0lOU0VSVF9CRUZPUkUiPkFDVElPTl9JTlNFUlRfQkVGT1JFPC9BPjwvQj48L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0luc2VydCB0aGUgcmVzdWx0IG9mIHRoZSBwYXJzZSBvcGVyYXRpb24gYXMgdGhlIGltbWVkaWF0ZWx5IHByZWNlZGluZyAKIHNpYmxpbmcgb2YgdGhlIGNvbnRleHQgbm9kZS48L1REPg0KPC9UUj4NCjxUUiBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9IlRhYmxlUm93Q29sb3IiPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFdJRFRIPSIxJSI+PEZPTlQgU0laRT0iLTEiPg0KPENPREU+c3RhdGljJm5ic3A7c2hvcnQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vbHMvTFNQYXJzZXIuaHRtbCNBQ1RJT05fUkVQTEFDRSI+QUNUSU9OX1JFUExBQ0U8L0E+PC9CPjwvQ09ERT4NCg0KPEJSPg0KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UmVwbGFjZSB0aGUgY29udGV4dCBub2RlIHdpdGggdGhlIHJlc3VsdCBvZiB0aGUgcGFyc2Ugb3BlcmF0aW9uLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT5zdGF0aWMmbmJzcDtzaG9ydDwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU1BhcnNlci5odG1sI0FDVElPTl9SRVBMQUNFX0NISUxEUkVOIj5BQ1RJT05fUkVQTEFDRV9DSElMRFJFTjwvQT48L0I+PC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtSZXBsYWNlIGFsbCB0aGUgY2hpbGRyZW4gb2YgdGhlIGNvbnRleHQgbm9kZSB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIAogcGFyc2Ugb3BlcmF0aW9uLjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCiZuYnNwOw0KPCEtLSA9PT09PT09PSBDT05TVFJVQ1RPUiBTVU1NQVJZID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PSBNRVRIT0QgU1VNTUFSWSA9PT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX3N1bW1hcnkiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49Mj48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5NZXRob2QgU3VtbWFyeTwvQj48L0ZPTlQ+PC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vbHMvTFNQYXJzZXIuaHRtbCNhYm9ydCgpIj5hYm9ydDwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0Fib3J0IHRoZSBsb2FkaW5nIG9mIHRoZSBkb2N1bWVudCB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBsb2FkZWQgYnkgCiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDtib29sZWFuPC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTUGFyc2VyLmh0bWwjZ2V0QXN5bmMoKSI+Z2V0QXN5bmM8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IGlzIGFzeW5jaHJvbm91cywgCiA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgaXMgc3luY2hyb25vdXMuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO2Jvb2xlYW48L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vbHMvTFNQYXJzZXIuaHRtbCNnZXRCdXN5KCkiPmdldEJ1c3k8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IGlzIGN1cnJlbnRseSBidXN5IAogbG9hZGluZyBhIGRvY3VtZW50LCBvdGhlcndpc2UgPGNvZGU+ZmFsc2U8L2NvZGU+LjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9ET01Db25maWd1cmF0aW9uLmh0bWwiPkRPTUNvbmZpZ3VyYXRpb248L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTUGFyc2VyLmh0bWwjZ2V0RG9tQ29uZmlnKCkiPmdldERvbUNvbmZpZzwvQT48L0I+KCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1RoZSA8Y29kZT5ET01Db25maWd1cmF0aW9uPC9jb2RlPiBvYmplY3QgdXNlZCB3aGVuIHBhcnNpbmcgYW4gaW5wdXQgCiBzb3VyY2UuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTUGFyc2VyRmlsdGVyLmh0bWwiPkxTUGFyc2VyRmlsdGVyPC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU1BhcnNlci5odG1sI2dldEZpbHRlcigpIj5nZXRGaWx0ZXI8L0E+PC9CPigpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGVuIGEgZmlsdGVyIGlzIHByb3ZpZGVkLCB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCBjYWxsIG91dCB0byB0aGUgCiBmaWx0ZXIgYXMgaXQgaXMgY29uc3RydWN0aW5nIHRoZSBET00gdHJlZSBzdHJ1Y3R1cmUuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL0RvY3VtZW50Lmh0bWwiPkRvY3VtZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU1BhcnNlci5odG1sI3BhcnNlKG9yZy53M2MuZG9tLmxzLkxTSW5wdXQpIj5wYXJzZTwvQT48L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTSW5wdXQuaHRtbCI+TFNJbnB1dDwvQT4mbmJzcDtpbnB1dCk8L0NPREU+DQoNCjxCUj4NCiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BhcnNlIGFuIFhNTCBkb2N1bWVudCBmcm9tIGEgcmVzb3VyY2UgaWRlbnRpZmllZCBieSBhIAogPGNvZGU+TFNJbnB1dDwvY29kZT4uPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL0RvY3VtZW50Lmh0bWwiPkRvY3VtZW50PC9BPjwvQ09ERT48L0ZPTlQ+PC9URD4NCjxURD48Q09ERT48Qj48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU1BhcnNlci5odG1sI3BhcnNlVVJJKGphdmEubGFuZy5TdHJpbmcpIj5wYXJzZVVSSTwvQT48L0I+KGphdmEubGFuZy5TdHJpbmcmbmJzcDt1cmkpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZSBhbiBYTUwgZG9jdW1lbnQgZnJvbSBhIGxvY2F0aW9uIGlkZW50aWZpZWQgYnkgYSBVUkkgcmVmZXJlbmNlIFs8YSBocmVmPSdodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCc+SUVURiBSRkMgMjM5NjwvYT5dLjwvVEQ+DQo8L1RSPg0KPFRSIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iVGFibGVSb3dDb2xvciI+DQo8VEQgQUxJR049InJpZ2h0IiBWQUxJR049InRvcCIgV0lEVEg9IjElIj48Rk9OVCBTSVpFPSItMSI+DQo8Q09ERT4mbmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9Ob2RlLmh0bWwiPk5vZGU8L0E+PC9DT0RFPjwvRk9OVD48L1REPg0KPFREPjxDT0RFPjxCPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTUGFyc2VyLmh0bWwjcGFyc2VXaXRoQ29udGV4dChvcmcudzNjLmRvbS5scy5MU0lucHV0LCBvcmcudzNjLmRvbS5Ob2RlLCBzaG9ydCkiPnBhcnNlV2l0aENvbnRleHQ8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU0lucHV0Lmh0bWwiPkxTSW5wdXQ8L0E+Jm5ic3A7aW5wdXQsCiAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sIj5Ob2RlPC9BPiZuYnNwO2NvbnRleHRBcmcsCiAgICAgICAgICAgICAgICAgc2hvcnQmbmJzcDthY3Rpb24pPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtQYXJzZSBhbiBYTUwgZnJhZ21lbnQgZnJvbSBhIHJlc291cmNlIGlkZW50aWZpZWQgYnkgYSAKIDxjb2RlPkxTSW5wdXQ8L2NvZGU+IGFuZCBpbnNlcnQgdGhlIGNvbnRlbnQgaW50byBhbiBleGlzdGluZyBkb2N1bWVudCAKIGF0IHRoZSBwb3NpdGlvbiBzcGVjaWZpZWQgd2l0aCB0aGUgPGNvZGU+Y29udGV4dDwvY29kZT4gYW5kIAogPGNvZGU+YWN0aW9uPC9jb2RlPiBhcmd1bWVudHMuPC9URD4NCjwvVFI+DQo8VFIgQkdDT0xPUj0id2hpdGUiIENMQVNTPSJUYWJsZVJvd0NvbG9yIj4NCjxURCBBTElHTj0icmlnaHQiIFZBTElHTj0idG9wIiBXSURUSD0iMSUiPjxGT05UIFNJWkU9Ii0xIj4NCjxDT0RFPiZuYnNwO3ZvaWQ8L0NPREU+PC9GT05UPjwvVEQ+DQo8VEQ+PENPREU+PEI+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vbHMvTFNQYXJzZXIuaHRtbCNzZXRGaWx0ZXIob3JnLnczYy5kb20ubHMuTFNQYXJzZXJGaWx0ZXIpIj5zZXRGaWx0ZXI8L0E+PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU1BhcnNlckZpbHRlci5odG1sIj5MU1BhcnNlckZpbHRlcjwvQT4mbmJzcDtmaWx0ZXIpPC9DT0RFPg0KDQo8QlI+DQombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtXaGVuIGEgZmlsdGVyIGlzIHByb3ZpZGVkLCB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCBjYWxsIG91dCB0byB0aGUgCiBmaWx0ZXIgYXMgaXQgaXMgY29uc3RydWN0aW5nIHRoZSBET00gdHJlZSBzdHJ1Y3R1cmUuPC9URD4NCjwvVFI+DQo8L1RBQkxFPg0KJm5ic3A7DQo8UD4NCg0KPCEtLSA9PT09PT09PT09PT0gRklFTEQgREVUQUlMID09PT09PT09PT09IC0tPg0KDQo8QSBOQU1FPSJmaWVsZF9kZXRhaWwiPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIxIiBDRUxMUEFERElORz0iMyIgQ0VMTFNQQUNJTkc9IjAiIFdJRFRIPSIxMDAlIj4NCjxUUiBCR0NPTE9SPSIjQ0NDQ0ZGIiBDTEFTUz0iVGFibGVIZWFkaW5nQ29sb3IiPg0KPFREIENPTFNQQU49MT48Rk9OVCBTSVpFPSIrMiI+DQo8Qj5GaWVsZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCg0KPEEgTkFNRT0iQUNUSU9OX0FQUEVORF9BU19DSElMRFJFTiI+PCEtLSAtLT48L0E+PEgzPg0KQUNUSU9OX0FQUEVORF9BU19DSElMRFJFTjwvSDM+DQo8UFJFPg0KcHVibGljIHN0YXRpYyBmaW5hbCBzaG9ydCA8Qj5BQ1RJT05fQVBQRU5EX0FTX0NISUxEUkVOPC9CPjwvUFJFPg0KPERMPg0KPEREPkFwcGVuZCB0aGUgcmVzdWx0IG9mIHRoZSBwYXJzZSBvcGVyYXRpb24gYXMgY2hpbGRyZW4gb2YgdGhlIGNvbnRleHQgCiBub2RlLiBGb3IgdGhpcyBhY3Rpb24gdG8gd29yaywgdGhlIGNvbnRleHQgbm9kZSBtdXN0IGJlIGFuIAogPGNvZGU+RWxlbWVudDwvY29kZT4gb3IgYSA8Y29kZT5Eb2N1bWVudEZyYWdtZW50PC9jb2RlPi48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJBQ1RJT05fUkVQTEFDRV9DSElMRFJFTiI+PCEtLSAtLT48L0E+PEgzPg0KQUNUSU9OX1JFUExBQ0VfQ0hJTERSRU48L0gzPg0KPFBSRT4NCnB1YmxpYyBzdGF0aWMgZmluYWwgc2hvcnQgPEI+QUNUSU9OX1JFUExBQ0VfQ0hJTERSRU48L0I+PC9QUkU+DQo8REw+DQo8REQ+UmVwbGFjZSBhbGwgdGhlIGNoaWxkcmVuIG9mIHRoZSBjb250ZXh0IG5vZGUgd2l0aCB0aGUgcmVzdWx0IG9mIHRoZSAKIHBhcnNlIG9wZXJhdGlvbi4gRm9yIHRoaXMgYWN0aW9uIHRvIHdvcmssIHRoZSBjb250ZXh0IG5vZGUgbXVzdCBiZSBhbiAKIDxjb2RlPkVsZW1lbnQ8L2NvZGU+LCBhIDxjb2RlPkRvY3VtZW50PC9jb2RlPiwgb3IgYSAKIDxjb2RlPkRvY3VtZW50RnJhZ21lbnQ8L2NvZGU+LjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9IkFDVElPTl9JTlNFUlRfQkVGT1JFIj48IS0tIC0tPjwvQT48SDM+DQpBQ1RJT05fSU5TRVJUX0JFRk9SRTwvSDM+DQo8UFJFPg0KcHVibGljIHN0YXRpYyBmaW5hbCBzaG9ydCA8Qj5BQ1RJT05fSU5TRVJUX0JFRk9SRTwvQj48L1BSRT4NCjxETD4NCjxERD5JbnNlcnQgdGhlIHJlc3VsdCBvZiB0aGUgcGFyc2Ugb3BlcmF0aW9uIGFzIHRoZSBpbW1lZGlhdGVseSBwcmVjZWRpbmcgCiBzaWJsaW5nIG9mIHRoZSBjb250ZXh0IG5vZGUuIEZvciB0aGlzIGFjdGlvbiB0byB3b3JrIHRoZSBjb250ZXh0IAogbm9kZSdzIHBhcmVudCBtdXN0IGJlIGFuIDxjb2RlPkVsZW1lbnQ8L2NvZGU+IG9yIGEgCiA8Y29kZT5Eb2N1bWVudEZyYWdtZW50PC9jb2RlPi48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJBQ1RJT05fSU5TRVJUX0FGVEVSIj48IS0tIC0tPjwvQT48SDM+DQpBQ1RJT05fSU5TRVJUX0FGVEVSPC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGZpbmFsIHNob3J0IDxCPkFDVElPTl9JTlNFUlRfQUZURVI8L0I+PC9QUkU+DQo8REw+DQo8REQ+SW5zZXJ0IHRoZSByZXN1bHQgb2YgdGhlIHBhcnNlIG9wZXJhdGlvbiBhcyB0aGUgaW1tZWRpYXRlbHkgZm9sbG93aW5nIAogc2libGluZyBvZiB0aGUgY29udGV4dCBub2RlLiBGb3IgdGhpcyBhY3Rpb24gdG8gd29yayB0aGUgY29udGV4dCAKIG5vZGUncyBwYXJlbnQgbXVzdCBiZSBhbiA8Y29kZT5FbGVtZW50PC9jb2RlPiBvciBhIAogPGNvZGU+RG9jdW1lbnRGcmFnbWVudDwvY29kZT4uPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iQUNUSU9OX1JFUExBQ0UiPjwhLS0gLS0+PC9BPjxIMz4NCkFDVElPTl9SRVBMQUNFPC9IMz4NCjxQUkU+DQpwdWJsaWMgc3RhdGljIGZpbmFsIHNob3J0IDxCPkFDVElPTl9SRVBMQUNFPC9CPjwvUFJFPg0KPERMPg0KPEREPlJlcGxhY2UgdGhlIGNvbnRleHQgbm9kZSB3aXRoIHRoZSByZXN1bHQgb2YgdGhlIHBhcnNlIG9wZXJhdGlvbi4gRm9yIAogdGhpcyBhY3Rpb24gdG8gd29yaywgdGhlIGNvbnRleHQgbm9kZSBtdXN0IGhhdmUgYSBwYXJlbnQsIGFuZCB0aGUgCiBwYXJlbnQgbXVzdCBiZSBhbiA8Y29kZT5FbGVtZW50PC9jb2RlPiBvciBhIAogPGNvZGU+RG9jdW1lbnRGcmFnbWVudDwvY29kZT4uPC9ETD4NCg0KPCEtLSA9PT09PT09PT0gQ09OU1RSVUNUT1IgREVUQUlMID09PT09PT09IC0tPg0KDQoNCjwhLS0gPT09PT09PT09PT09IE1FVEhPRCBERVRBSUwgPT09PT09PT09PSAtLT4NCg0KPEEgTkFNRT0ibWV0aG9kX2RldGFpbCI+PCEtLSAtLT48L0E+CjxUQUJMRSBCT1JERVI9IjEiIENFTExQQURESU5HPSIzIiBDRUxMU1BBQ0lORz0iMCIgV0lEVEg9IjEwMCUiPg0KPFRSIEJHQ09MT1I9IiNDQ0NDRkYiIENMQVNTPSJUYWJsZUhlYWRpbmdDb2xvciI+DQo8VEQgQ09MU1BBTj0xPjxGT05UIFNJWkU9IisyIj4NCjxCPk1ldGhvZCBEZXRhaWw8L0I+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCg0KPEEgTkFNRT0iZ2V0RG9tQ29uZmlnKCkiPjwhLS0gLS0+PC9BPjxIMz4NCmdldERvbUNvbmZpZzwvSDM+DQo8UFJFPg0KcHVibGljIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL0RPTUNvbmZpZ3VyYXRpb24uaHRtbCI+RE9NQ29uZmlndXJhdGlvbjwvQT4gPEI+Z2V0RG9tQ29uZmlnPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+VGhlIDxjb2RlPkRPTUNvbmZpZ3VyYXRpb248L2NvZGU+IG9iamVjdCB1c2VkIHdoZW4gcGFyc2luZyBhbiBpbnB1dCAKIHNvdXJjZS4gVGhpcyA8Y29kZT5ET01Db25maWd1cmF0aW9uPC9jb2RlPiBpcyBzcGVjaWZpYyB0byB0aGUgcGFyc2UgCiBvcGVyYXRpb24uIE5vIHBhcmFtZXRlciB2YWx1ZXMgZnJvbSB0aGlzIDxjb2RlPkRPTUNvbmZpZ3VyYXRpb248L2NvZGU+CiAgb2JqZWN0IGFyZSBwYXNzZWQgYXV0b21hdGljYWxseSB0byB0aGUgPGNvZGU+RE9NQ29uZmlndXJhdGlvbjwvY29kZT4gCiBvYmplY3Qgb24gdGhlIDxjb2RlPkRvY3VtZW50PC9jb2RlPiB0aGF0IGlzIGNyZWF0ZWQsIG9yIHVzZWQsIGJ5IHRoZSAKIHBhcnNlIG9wZXJhdGlvbi4gVGhlIERPTSBhcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgcGFzc2luZyBhbnkgCiBuZWVkZWQgcGFyYW1ldGVyIHZhbHVlcyBmcm9tIHRoaXMgPGNvZGU+RE9NQ29uZmlndXJhdGlvbjwvY29kZT4gCiBvYmplY3QgdG8gdGhlIDxjb2RlPkRPTUNvbmZpZ3VyYXRpb248L2NvZGU+IG9iamVjdCByZWZlcmVuY2VkIGJ5IHRoZSAKIDxjb2RlPkRvY3VtZW50PC9jb2RlPiBvYmplY3QuIAogPGJyPiBJbiBhZGRpdGlvbiB0byB0aGUgcGFyYW1ldGVycyByZWNvZ25pemVkIGluIG9uIHRoZSA8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1Db3JlL2NvcmUuaHRtbCNET01Db25maWd1cmF0aW9uJz4KIERPTUNvbmZpZ3VyYXRpb248L2E+IGludGVyZmFjZSBkZWZpbmVkIGluIFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3Jz5ET00gTGV2ZWwgMyBDb3JlPC9hPl0KICwgdGhlIDxjb2RlPkRPTUNvbmZpZ3VyYXRpb248L2NvZGU+IG9iamVjdHMgZm9yIDxjb2RlPkxTUGFyc2VyPC9jb2RlPiAKIGFkZCBvciBtb2RpZnkgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOiAKIDxkbD4KIDxkdD4KIDxjb2RlPiJjaGFyc2V0LW92ZXJyaWRlcy14bWwtZW5jb2RpbmciPC9jb2RlPjwvZHQ+CiA8ZGQ+CiA8ZGw+CiA8ZHQ+PGNvZGU+dHJ1ZTwvY29kZT48L2R0PgogPGRkPls8ZW0+b3B0aW9uYWw8L2VtPl0gKDxlbT5kZWZhdWx0PC9lbT4pIElmIGEgaGlnaGVyIGxldmVsIHByb3RvY29sIHN1Y2ggYXMgSFRUUCBbPGEgaHJlZj0naHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjYxNi50eHQnPklFVEYgUkZDIDI2MTY8L2E+XSBwcm92aWRlcyBhbiAKIGluZGljYXRpb24gb2YgdGhlIGNoYXJhY3RlciBlbmNvZGluZyBvZiB0aGUgaW5wdXQgc3RyZWFtIGJlaW5nIAogcHJvY2Vzc2VkLCB0aGF0IHdpbGwgb3ZlcnJpZGUgYW55IGVuY29kaW5nIHNwZWNpZmllZCBpbiB0aGUgWE1MIAogZGVjbGFyYXRpb24gb3IgdGhlIFRleHQgZGVjbGFyYXRpb24gKHNlZSBhbHNvIHNlY3Rpb24gNC4zLjMsIAogIkNoYXJhY3RlciBFbmNvZGluZyBpbiBFbnRpdGllcyIsIGluIFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy14bWwtMjAwNDAyMDQnPlhNTCAxLjA8L2E+XSkuIAogRXhwbGljaXRseSBzZXR0aW5nIGFuIGVuY29kaW5nIGluIHRoZSA8Y29kZT5MU0lucHV0PC9jb2RlPiBvdmVycmlkZXMgCiBhbnkgZW5jb2RpbmcgZnJvbSB0aGUgcHJvdG9jb2wuIDwvZGQ+CiA8ZHQ+PGNvZGU+ZmFsc2U8L2NvZGU+PC9kdD4KIDxkZD5bPGVtPnJlcXVpcmVkPC9lbT5dIFRoZSBwYXJzZXIgaWdub3JlcyBhbnkgY2hhcmFjdGVyIHNldCBlbmNvZGluZyBpbmZvcm1hdGlvbiBmcm9tIAogaGlnaGVyLWxldmVsIHByb3RvY29scy4gPC9kZD4KIDwvZGw+PC9kZD4KIDxkdD48Y29kZT4iZGlzYWxsb3ctZG9jdHlwZSI8L2NvZGU+PC9kdD4KIDxkZD4KIDxkbD4KIDxkdD4KIDxjb2RlPnRydWU8L2NvZGU+PC9kdD4KIDxkZD5bPGVtPm9wdGlvbmFsPC9lbT5dIFRocm93IGEgZmF0YWwgPGI+ImRvY3R5cGUtbm90LWFsbG93ZWQiPC9iPiBlcnJvciBpZiBhIGRvY3R5cGUgbm9kZSBpcyBmb3VuZCB3aGlsZSBwYXJzaW5nIHRoZSBkb2N1bWVudC4gVGhpcyBpcyAKIHVzZWZ1bCB3aGVuIGRlYWxpbmcgd2l0aCB0aGluZ3MgbGlrZSBTT0FQIGVudmVsb3BlcyB3aGVyZSBkb2N0eXBlIAogbm9kZXMgYXJlIG5vdCBhbGxvd2VkLiA8L2RkPgogPGR0Pjxjb2RlPmZhbHNlPC9jb2RlPjwvZHQ+CiA8ZGQ+WzxlbT5yZXF1aXJlZDwvZW0+XSAoPGVtPmRlZmF1bHQ8L2VtPikgQWxsb3cgZG9jdHlwZSBub2RlcyBpbiB0aGUgZG9jdW1lbnQuIDwvZGQ+CiA8L2RsPjwvZGQ+CiA8ZHQ+CiA8Y29kZT4iaWdub3JlLXVua25vd24tY2hhcmFjdGVyLWRlbm9ybWFsaXphdGlvbnMiPC9jb2RlPjwvZHQ+CiA8ZGQ+CiA8ZGw+CiA8ZHQ+CiA8Y29kZT50cnVlPC9jb2RlPjwvZHQ+CiA8ZGQ+WzxlbT5yZXF1aXJlZDwvZW0+XSAoPGVtPmRlZmF1bHQ8L2VtPikgSWYsIHdoaWxlIHZlcmlmeWluZyBmdWxsIG5vcm1hbGl6YXRpb24gd2hlbiBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMteG1sMTEtMjAwNDAyMDQvJz5YTUwgMS4xPC9hPl0gaXMgCiBzdXBwb3J0ZWQsIGEgcHJvY2Vzc29yIGVuY291bnRlcnMgY2hhcmFjdGVycyBmb3Igd2hpY2ggaXQgY2Fubm90IAogZGV0ZXJtaW5lIHRoZSBub3JtYWxpemF0aW9uIHByb3BlcnRpZXMsIHRoZW4gdGhlIHByb2Nlc3NvciB3aWxsIAogaWdub3JlIGFueSBwb3NzaWJsZSBkZW5vcm1hbGl6YXRpb25zIGNhdXNlZCBieSB0aGVzZSBjaGFyYWN0ZXJzLiAgCiBUaGlzIHBhcmFtZXRlciBpcyBpZ25vcmVkIGZvciBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMteG1sLTIwMDQwMjA0Jz5YTUwgMS4wPC9hPl0uIDwvZGQ+CiA8ZHQ+CiA8Y29kZT5mYWxzZTwvY29kZT48L2R0PgogPGRkPls8ZW0+b3B0aW9uYWw8L2VtPl0gUmVwb3J0IGFuIGZhdGFsIDxiPiJ1bmtub3duLWNoYXJhY3Rlci1kZW5vcm1hbGl6YXRpb24iPC9iPiBlcnJvciBpZiBhIGNoYXJhY3RlciBpcyBlbmNvdW50ZXJlZCBmb3Igd2hpY2ggdGhlIHByb2Nlc3NvciBjYW5ub3QgCiBkZXRlcm1pbmUgdGhlIG5vcm1hbGl6YXRpb24gcHJvcGVydGllcy4gPC9kZD4KIDwvZGw+PC9kZD4KIDxkdD48Y29kZT4iaW5mb3NldCI8L2NvZGU+PC9kdD4KIDxkZD4gU2VlIAogdGhlIGRlZmluaXRpb24gb2YgPGNvZGU+RE9NQ29uZmlndXJhdGlvbjwvY29kZT4gZm9yIGEgZGVzY3JpcHRpb24gb2YgCiB0aGlzIHBhcmFtZXRlci4gVW5saWtlIGluIFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3Jz5ET00gTGV2ZWwgMyBDb3JlPC9hPl0KICwgdGhpcyBwYXJhbWV0ZXIgd2lsbCBkZWZhdWx0IHRvIDxjb2RlPnRydWU8L2NvZGU+IGZvciAKIDxjb2RlPkxTUGFyc2VyPC9jb2RlPi4gPC9kZD4KIDxkdD48Y29kZT4ibmFtZXNwYWNlcyI8L2NvZGU+PC9kdD4KIDxkZD4KIDxkbD4KIDxkdD48Y29kZT50cnVlPC9jb2RlPjwvZHQ+CiA8ZGQ+WzxlbT5yZXF1aXJlZDwvZW0+XSAoPGVtPmRlZmF1bHQ8L2VtPikgUGVyZm9ybSB0aGUgbmFtZXNwYWNlIHByb2Nlc3NpbmcgYXMgZGVmaW5lZCBpbiBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMTk5OS9SRUMteG1sLW5hbWVzLTE5OTkwMTE0Lyc+WE1MIE5hbWVzcGFjZXM8L2E+XQogIGFuZCBbPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvMjAwNC9SRUMteG1sLW5hbWVzMTEtMjAwNDAyMDQvJz5YTUwgTmFtZXNwYWNlcyAxLjE8L2E+XQogLiA8L2RkPgogPGR0Pjxjb2RlPmZhbHNlPC9jb2RlPjwvZHQ+CiA8ZGQ+WzxlbT5vcHRpb25hbDwvZW0+XSBEbyBub3QgcGVyZm9ybSB0aGUgbmFtZXNwYWNlIHByb2Nlc3NpbmcuIDwvZGQ+CiA8L2RsPjwvZGQ+CiA8ZHQ+CiA8Y29kZT4icmVzb3VyY2UtcmVzb2x2ZXIiPC9jb2RlPjwvZHQ+CiA8ZGQ+WzxlbT5yZXF1aXJlZDwvZW0+XSBBIHJlZmVyZW5jZSB0byBhIDxjb2RlPkxTUmVzb3VyY2VSZXNvbHZlcjwvY29kZT4gb2JqZWN0LCBvciBudWxsLiBJZiAKIHRoZSB2YWx1ZSBvZiB0aGlzIHBhcmFtZXRlciBpcyBub3QgbnVsbCB3aGVuIGFuIGV4dGVybmFsIHJlc291cmNlIAogKHN1Y2ggYXMgYW4gZXh0ZXJuYWwgWE1MIGVudGl0eSBvciBhbiBYTUwgc2NoZW1hIGxvY2F0aW9uKSBpcyAKIGVuY291bnRlcmVkLCB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCByZXF1ZXN0IHRoYXQgdGhlIAogPGNvZGU+TFNSZXNvdXJjZVJlc29sdmVyPC9jb2RlPiByZWZlcmVuY2VkIGluIHRoaXMgcGFyYW1ldGVyIHJlc29sdmVzIAogdGhlIHJlc291cmNlLiA8L2RkPgogPGR0Pjxjb2RlPiJzdXBwb3J0ZWQtbWVkaWEtdHlwZXMtb25seSI8L2NvZGU+PC9kdD4KIDxkZD4KIDxkbD4KIDxkdD4KIDxjb2RlPnRydWU8L2NvZGU+PC9kdD4KIDxkZD5bPGVtPm9wdGlvbmFsPC9lbT5dIENoZWNrIHRoYXQgdGhlIG1lZGlhIHR5cGUgb2YgdGhlIHBhcnNlZCByZXNvdXJjZSBpcyBhIHN1cHBvcnRlZCBtZWRpYSAKIHR5cGUuIElmIGFuIHVuc3VwcG9ydGVkIG1lZGlhIHR5cGUgaXMgZW5jb3VudGVyZWQsIGEgZmF0YWwgZXJyb3Igb2YgCiB0eXBlIDxiPiJ1bnN1cHBvcnRlZC1tZWRpYS10eXBlIjwvYj4gd2lsbCBiZSByYWlzZWQuIFRoZSBtZWRpYSB0eXBlcyBkZWZpbmVkIGluIFs8YSBocmVmPSdodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMDIzLnR4dCc+SUVURiBSRkMgMzAyMzwvYT5dIG11c3QgYWx3YXlzIAogYmUgYWNjZXB0ZWQuIDwvZGQ+CiA8ZHQ+PGNvZGU+ZmFsc2U8L2NvZGU+PC9kdD4KIDxkZD5bPGVtPnJlcXVpcmVkPC9lbT5dICg8ZW0+ZGVmYXVsdDwvZW0+KSBBY2NlcHQgYW55IG1lZGlhIHR5cGUuIDwvZGQ+CiA8L2RsPjwvZGQ+CiA8ZHQ+PGNvZGU+InZhbGlkYXRlIjwvY29kZT48L2R0PgogPGRkPiBTZWUgdGhlIGRlZmluaXRpb24gb2YgCiA8Y29kZT5ET01Db25maWd1cmF0aW9uPC9jb2RlPiBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGlzIHBhcmFtZXRlci4gCiBVbmxpa2UgaW4gWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcnPkRPTSBMZXZlbCAzIENvcmU8L2E+XQogLCB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgaW50ZXJuYWwgc3Vic2V0IGlzIGFsd2F5cyBhY2NvbXBsaXNoZWQsIGV2ZW4gCiBpZiB0aGlzIHBhcmFtZXRlciBpcyBzZXQgdG8gPGNvZGU+ZmFsc2U8L2NvZGU+LiA8L2RkPgogPGR0PgogPGNvZGU+InZhbGlkYXRlLWlmLXNjaGVtYSI8L2NvZGU+PC9kdD4KIDxkZD4gU2VlIHRoZSBkZWZpbml0aW9uIG9mIAogPGNvZGU+RE9NQ29uZmlndXJhdGlvbjwvY29kZT4gZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhpcyBwYXJhbWV0ZXIuIAogVW5saWtlIGluIFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3Jz5ET00gTGV2ZWwgMyBDb3JlPC9hPl0KICwgdGhlIHByb2Nlc3Npbmcgb2YgdGhlIGludGVybmFsIHN1YnNldCBpcyBhbHdheXMgYWNjb21wbGlzaGVkLCBldmVuIAogaWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIDxjb2RlPmZhbHNlPC9jb2RlPi4gPC9kZD4KIDxkdD4KIDxjb2RlPiJ3ZWxsLWZvcm1lZCI8L2NvZGU+PC9kdD4KIDxkZD4gU2VlIHRoZSBkZWZpbml0aW9uIG9mIAogPGNvZGU+RE9NQ29uZmlndXJhdGlvbjwvY29kZT4gZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhpcyBwYXJhbWV0ZXIuIAogVW5saWtlIGluIFs8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA0L1JFQy1ET00tTGV2ZWwtMy1Db3JlLTIwMDQwNDA3Jz5ET00gTGV2ZWwgMyBDb3JlPC9hPl0KICwgdGhpcyBwYXJhbWV0ZXIgY2Fubm90IGJlIHNldCB0byA8Y29kZT5mYWxzZTwvY29kZT4uIDwvZGQ+CiA8L2RsPjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImdldEZpbHRlcigpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRGaWx0ZXI8L0gzPg0KPFBSRT4NCnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU1BhcnNlckZpbHRlci5odG1sIj5MU1BhcnNlckZpbHRlcjwvQT4gPEI+Z2V0RmlsdGVyPC9CPigpPC9QUkU+DQo8REw+DQo8REQ+V2hlbiBhIGZpbHRlciBpcyBwcm92aWRlZCwgdGhlIGltcGxlbWVudGF0aW9uIHdpbGwgY2FsbCBvdXQgdG8gdGhlIAogZmlsdGVyIGFzIGl0IGlzIGNvbnN0cnVjdGluZyB0aGUgRE9NIHRyZWUgc3RydWN0dXJlLiBUaGUgZmlsdGVyIGNhbiAKIGNob29zZSB0byByZW1vdmUgZWxlbWVudHMgZnJvbSB0aGUgZG9jdW1lbnQgYmVpbmcgY29uc3RydWN0ZWQsIG9yIHRvIAogdGVybWluYXRlIHRoZSBwYXJzaW5nIGVhcmx5LiAKIDxicj4gVGhlIGZpbHRlciBpcyBpbnZva2VkIGFmdGVyIHRoZSBvcGVyYXRpb25zIHJlcXVlc3RlZCBieSB0aGUgCiA8Y29kZT5ET01Db25maWd1cmF0aW9uPC9jb2RlPiBwYXJhbWV0ZXJzIGhhdmUgYmVlbiBhcHBsaWVkLiBGb3IgCiBleGFtcGxlLCBpZiAiPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtQ29yZS9jb3JlLmh0bWwjcGFyYW1ldGVyLXZhbGlkYXRlJz4KIHZhbGlkYXRlPC9hPiIgaXMgc2V0IHRvIDxjb2RlPnRydWU8L2NvZGU+LCB0aGUgdmFsaWRhdGlvbiBpcyBkb25lIGJlZm9yZSBpbnZva2luZyB0aGUgCiBmaWx0ZXIuPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0ic2V0RmlsdGVyKG9yZy53M2MuZG9tLmxzLkxTUGFyc2VyRmlsdGVyKSI+PCEtLSAtLT48L0E+PEgzPg0Kc2V0RmlsdGVyPC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5zZXRGaWx0ZXI8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTUGFyc2VyRmlsdGVyLmh0bWwiPkxTUGFyc2VyRmlsdGVyPC9BPiZuYnNwO2ZpbHRlcik8L1BSRT4NCjxETD4NCjxERD5XaGVuIGEgZmlsdGVyIGlzIHByb3ZpZGVkLCB0aGUgaW1wbGVtZW50YXRpb24gd2lsbCBjYWxsIG91dCB0byB0aGUgCiBmaWx0ZXIgYXMgaXQgaXMgY29uc3RydWN0aW5nIHRoZSBET00gdHJlZSBzdHJ1Y3R1cmUuIFRoZSBmaWx0ZXIgY2FuIAogY2hvb3NlIHRvIHJlbW92ZSBlbGVtZW50cyBmcm9tIHRoZSBkb2N1bWVudCBiZWluZyBjb25zdHJ1Y3RlZCwgb3IgdG8gCiB0ZXJtaW5hdGUgdGhlIHBhcnNpbmcgZWFybHkuIAogPGJyPiBUaGUgZmlsdGVyIGlzIGludm9rZWQgYWZ0ZXIgdGhlIG9wZXJhdGlvbnMgcmVxdWVzdGVkIGJ5IHRoZSAKIDxjb2RlPkRPTUNvbmZpZ3VyYXRpb248L2NvZGU+IHBhcmFtZXRlcnMgaGF2ZSBiZWVuIGFwcGxpZWQuIEZvciAKIGV4YW1wbGUsIGlmICI8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1Db3JlL2NvcmUuaHRtbCNwYXJhbWV0ZXItdmFsaWRhdGUnPgogdmFsaWRhdGU8L2E+IiBpcyBzZXQgdG8gPGNvZGU+dHJ1ZTwvY29kZT4sIHRoZSB2YWxpZGF0aW9uIGlzIGRvbmUgYmVmb3JlIGludm9raW5nIHRoZSAKIGZpbHRlci48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJnZXRBc3luYygpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRBc3luYzwvSDM+DQo8UFJFPg0KcHVibGljIGJvb2xlYW4gPEI+Z2V0QXN5bmM8L0I+KCk8L1BSRT4NCjxETD4NCjxERD48Y29kZT50cnVlPC9jb2RlPiBpZiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IGlzIGFzeW5jaHJvbm91cywgCiA8Y29kZT5mYWxzZTwvY29kZT4gaWYgaXQgaXMgc3luY2hyb25vdXMuPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0iZ2V0QnVzeSgpIj48IS0tIC0tPjwvQT48SDM+DQpnZXRCdXN5PC9IMz4NCjxQUkU+DQpwdWJsaWMgYm9vbGVhbiA8Qj5nZXRCdXN5PC9CPigpPC9QUkU+DQo8REw+DQo8REQ+PGNvZGU+dHJ1ZTwvY29kZT4gaWYgdGhlIDxjb2RlPkxTUGFyc2VyPC9jb2RlPiBpcyBjdXJyZW50bHkgYnVzeSAKIGxvYWRpbmcgYSBkb2N1bWVudCwgb3RoZXJ3aXNlIDxjb2RlPmZhbHNlPC9jb2RlPi48L0RMPg0KPEhSPg0KDQo8QSBOQU1FPSJwYXJzZShvcmcudzNjLmRvbS5scy5MU0lucHV0KSI+PCEtLSAtLT48L0E+PEgzPg0KcGFyc2U8L0gzPg0KPFBSRT4NCnB1YmxpYyA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9Eb2N1bWVudC5odG1sIj5Eb2N1bWVudDwvQT4gPEI+cGFyc2U8L0I+KDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTSW5wdXQuaHRtbCI+TFNJbnB1dDwvQT4mbmJzcDtpbnB1dCkKICAgICAgICAgICAgICAgdGhyb3dzIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL0RPTUV4Y2VwdGlvbi5odG1sIj5ET01FeGNlcHRpb248L0E+LAogICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vbHMvTFNFeGNlcHRpb24uaHRtbCI+TFNFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+UGFyc2UgYW4gWE1MIGRvY3VtZW50IGZyb20gYSByZXNvdXJjZSBpZGVudGlmaWVkIGJ5IGEgCiA8Y29kZT5MU0lucHV0PC9jb2RlPi48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT5pbnB1dDwvQ09ERT4gLSBUaGUgPGNvZGU+TFNJbnB1dDwvY29kZT4gZnJvbSB3aGljaCB0aGUgc291cmNlIG9mIHRoZSAKICAgZG9jdW1lbnQgaXMgdG8gYmUgcmVhZC48RFQ+PEI+UmV0dXJuczo8L0I+PEREPklmIHRoZSA8Y29kZT5MU1BhcnNlcjwvY29kZT4gaXMgYSBzeW5jaHJvbm91cyAKICAgPGNvZGU+TFNQYXJzZXI8L2NvZGU+LCB0aGUgbmV3bHkgY3JlYXRlZCBhbmQgcG9wdWxhdGVkIAogICA8Y29kZT5Eb2N1bWVudDwvY29kZT4gaXMgcmV0dXJuZWQuIElmIHRoZSA8Y29kZT5MU1BhcnNlcjwvY29kZT4gaXMgCiAgIGFzeW5jaHJvbm91cywgPGNvZGU+bnVsbDwvY29kZT4gaXMgcmV0dXJuZWQgc2luY2UgdGhlIGRvY3VtZW50IAogICBvYmplY3QgbWF5IG5vdCB5ZXQgYmUgY29uc3RydWN0ZWQgd2hlbiB0aGlzIG1ldGhvZCByZXR1cm5zLjxEVD48Qj5UaHJvd3M6PC9CPjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9ET01FeGNlcHRpb24uaHRtbCI+RE9NRXhjZXB0aW9uPC9BPiAtIElOVkFMSURfU1RBVEVfRVJSOiBSYWlzZWQgaWYgdGhlIDxjb2RlPkxTUGFyc2VyPC9jb2RlPidzIAogICA8Y29kZT5MU1BhcnNlci5idXN5PC9jb2RlPiBhdHRyaWJ1dGUgaXMgPGNvZGU+dHJ1ZTwvY29kZT4uPEREPjxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTRXhjZXB0aW9uLmh0bWwiPkxTRXhjZXB0aW9uPC9BPiAtIFBBUlNFX0VSUjogUmFpc2VkIGlmIHRoZSA8Y29kZT5MU1BhcnNlcjwvY29kZT4gd2FzIHVuYWJsZSB0byBsb2FkIAogICB0aGUgWE1MIGRvY3VtZW50LiBET00gYXBwbGljYXRpb25zIHNob3VsZCBhdHRhY2ggYSAKICAgPGNvZGU+RE9NRXJyb3JIYW5kbGVyPC9jb2RlPiB1c2luZyB0aGUgcGFyYW1ldGVyICI8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1Db3JlL2NvcmUuaHRtbCNwYXJhbWV0ZXItZXJyb3ItaGFuZGxlcic+CiAgIGVycm9yLWhhbmRsZXI8L2E+IiBpZiB0aGV5IHdpc2ggdG8gZ2V0IGRldGFpbHMgb24gdGhlIGVycm9yLjwvREw+DQo8L0REPg0KPC9ETD4NCjxIUj4NCg0KPEEgTkFNRT0icGFyc2VVUkkoamF2YS5sYW5nLlN0cmluZykiPjwhLS0gLS0+PC9BPjxIMz4NCnBhcnNlVVJJPC9IMz4NCjxQUkU+DQpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vRG9jdW1lbnQuaHRtbCI+RG9jdW1lbnQ8L0E+IDxCPnBhcnNlVVJJPC9CPihqYXZhLmxhbmcuU3RyaW5nJm5ic3A7dXJpKQogICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vRE9NRXhjZXB0aW9uLmh0bWwiPkRPTUV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgICA8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU0V4Y2VwdGlvbi5odG1sIj5MU0V4Y2VwdGlvbjwvQT48L1BSRT4NCjxETD4NCjxERD5QYXJzZSBhbiBYTUwgZG9jdW1lbnQgZnJvbSBhIGxvY2F0aW9uIGlkZW50aWZpZWQgYnkgYSBVUkkgcmVmZXJlbmNlIFs8YSBocmVmPSdodHRwOi8vd3d3LmlldGYub3JnL3JmYy9yZmMyMzk2LnR4dCc+SUVURiBSRkMgMjM5NjwvYT5dLiBJZiB0aGUgVVJJIAogY29udGFpbnMgYSBmcmFnbWVudCBpZGVudGlmaWVyIChzZWUgc2VjdGlvbiA0LjEgaW4gWzxhIGhyZWY9J2h0dHA6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzIzOTYudHh0Jz5JRVRGIFJGQyAyMzk2PC9hPl0pLCB0aGUgCiBiZWhhdmlvciBpcyBub3QgZGVmaW5lZCBieSB0aGlzIHNwZWNpZmljYXRpb24sIGZ1dHVyZSB2ZXJzaW9ucyBvZiAKIHRoaXMgc3BlY2lmaWNhdGlvbiBtYXkgZGVmaW5lIHRoZSBiZWhhdmlvci48REQ+PERMPg0KPERUPjxCPlBhcmFtZXRlcnM6PC9CPjxERD48Q09ERT51cmk8L0NPREU+IC0gVGhlIGxvY2F0aW9uIG9mIHRoZSBYTUwgZG9jdW1lbnQgdG8gYmUgcmVhZC48RFQ+PEI+UmV0dXJuczo8L0I+PEREPklmIHRoZSA8Y29kZT5MU1BhcnNlcjwvY29kZT4gaXMgYSBzeW5jaHJvbm91cyAKICAgPGNvZGU+TFNQYXJzZXI8L2NvZGU+LCB0aGUgbmV3bHkgY3JlYXRlZCBhbmQgcG9wdWxhdGVkIAogICA8Y29kZT5Eb2N1bWVudDwvY29kZT4gaXMgcmV0dXJuZWQsIG9yIDxjb2RlPm51bGw8L2NvZGU+IGlmIGFuIGVycm9yIAogICBvY2N1cmVkLiBJZiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IGlzIGFzeW5jaHJvbm91cywgCiAgIDxjb2RlPm51bGw8L2NvZGU+IGlzIHJldHVybmVkIHNpbmNlIHRoZSBkb2N1bWVudCBvYmplY3QgbWF5IG5vdCB5ZXQgCiAgIGJlIGNvbnN0cnVjdGVkIHdoZW4gdGhpcyBtZXRob2QgcmV0dXJucy48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vRE9NRXhjZXB0aW9uLmh0bWwiPkRPTUV4Y2VwdGlvbjwvQT4gLSBJTlZBTElEX1NUQVRFX0VSUjogUmFpc2VkIGlmIHRoZSA8Y29kZT5MU1BhcnNlci5idXN5PC9jb2RlPiAKICAgYXR0cmlidXRlIGlzIDxjb2RlPnRydWU8L2NvZGU+LjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU0V4Y2VwdGlvbi5odG1sIj5MU0V4Y2VwdGlvbjwvQT4gLSBQQVJTRV9FUlI6IFJhaXNlZCBpZiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IHdhcyB1bmFibGUgdG8gbG9hZCAKICAgdGhlIFhNTCBkb2N1bWVudC4gRE9NIGFwcGxpY2F0aW9ucyBzaG91bGQgYXR0YWNoIGEgCiAgIDxjb2RlPkRPTUVycm9ySGFuZGxlcjwvY29kZT4gdXNpbmcgdGhlIHBhcmFtZXRlciAiPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtQ29yZS9jb3JlLmh0bWwjcGFyYW1ldGVyLWVycm9yLWhhbmRsZXInPgogICBlcnJvci1oYW5kbGVyPC9hPiIgaWYgdGhleSB3aXNoIHRvIGdldCBkZXRhaWxzIG9uIHRoZSBlcnJvci48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9InBhcnNlV2l0aENvbnRleHQob3JnLnczYy5kb20ubHMuTFNJbnB1dCwgb3JnLnczYy5kb20uTm9kZSwgc2hvcnQpIj48IS0tIC0tPjwvQT48SDM+DQpwYXJzZVdpdGhDb250ZXh0PC9IMz4NCjxQUkU+DQpwdWJsaWMgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sIj5Ob2RlPC9BPiA8Qj5wYXJzZVdpdGhDb250ZXh0PC9CPig8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU0lucHV0Lmh0bWwiPkxTSW5wdXQ8L0E+Jm5ic3A7aW5wdXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vTm9kZS5odG1sIj5Ob2RlPC9BPiZuYnNwO2NvbnRleHRBcmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnQmbmJzcDthY3Rpb24pCiAgICAgICAgICAgICAgICAgICAgICB0aHJvd3MgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vRE9NRXhjZXB0aW9uLmh0bWwiPkRPTUV4Y2VwdGlvbjwvQT4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vbHMvTFNFeGNlcHRpb24uaHRtbCI+TFNFeGNlcHRpb248L0E+PC9QUkU+DQo8REw+DQo8REQ+UGFyc2UgYW4gWE1MIGZyYWdtZW50IGZyb20gYSByZXNvdXJjZSBpZGVudGlmaWVkIGJ5IGEgCiA8Y29kZT5MU0lucHV0PC9jb2RlPiBhbmQgaW5zZXJ0IHRoZSBjb250ZW50IGludG8gYW4gZXhpc3RpbmcgZG9jdW1lbnQgCiBhdCB0aGUgcG9zaXRpb24gc3BlY2lmaWVkIHdpdGggdGhlIDxjb2RlPmNvbnRleHQ8L2NvZGU+IGFuZCAKIDxjb2RlPmFjdGlvbjwvY29kZT4gYXJndW1lbnRzLiBXaGVuIHBhcnNpbmcgdGhlIGlucHV0IHN0cmVhbSwgdGhlIAogY29udGV4dCBub2RlIChvciBpdHMgcGFyZW50LCBkZXBlbmRpbmcgb24gd2hlcmUgdGhlIHJlc3VsdCB3aWxsIGJlIAogaW5zZXJ0ZWQpIGlzIHVzZWQgZm9yIHJlc29sdmluZyB1bmJvdW5kIG5hbWVzcGFjZSBwcmVmaXhlcy4gVGhlIAogY29udGV4dCBub2RlJ3MgPGNvZGU+b3duZXJEb2N1bWVudDwvY29kZT4gbm9kZSAob3IgdGhlIG5vZGUgaXRzZWxmIGlmIAogdGhlIG5vZGUgb2YgdHlwZSA8Y29kZT5ET0NVTUVOVF9OT0RFPC9jb2RlPikgaXMgdXNlZCB0byByZXNvbHZlIAogZGVmYXVsdCBhdHRyaWJ1dGVzIGFuZCBlbnRpdHkgcmVmZXJlbmNlcy4gCiA8YnI+IEFzIHRoZSBuZXcgZGF0YSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBkb2N1bWVudCwgYXQgbGVhc3Qgb25lIAogbXV0YXRpb24gZXZlbnQgaXMgZmlyZWQgcGVyIG5ldyBpbW1lZGlhdGUgY2hpbGQgb3Igc2libGluZyBvZiB0aGUgCiBjb250ZXh0IG5vZGUuIAogPGJyPiBJZiB0aGUgY29udGV4dCBub2RlIGlzIGEgPGNvZGU+RG9jdW1lbnQ8L2NvZGU+IG5vZGUgYW5kIHRoZSBhY3Rpb24gCiBpcyA8Y29kZT5BQ1RJT05fUkVQTEFDRV9DSElMRFJFTjwvY29kZT4sIHRoZW4gdGhlIGRvY3VtZW50IHRoYXQgaXMgCiBwYXNzZWQgYXMgdGhlIGNvbnRleHQgbm9kZSB3aWxsIGJlIGNoYW5nZWQgc3VjaCB0aGF0IGl0cyAKIDxjb2RlPnhtbEVuY29kaW5nPC9jb2RlPiwgPGNvZGU+ZG9jdW1lbnRVUkk8L2NvZGU+LCAKIDxjb2RlPnhtbFZlcnNpb248L2NvZGU+LCA8Y29kZT5pbnB1dEVuY29kaW5nPC9jb2RlPiwgCiA8Y29kZT54bWxTdGFuZGFsb25lPC9jb2RlPiwgYW5kIGFsbCBvdGhlciBzdWNoIGF0dHJpYnV0ZXMgYXJlIHNldCB0byAKIHdoYXQgdGhleSB3b3VsZCBiZSBzZXQgdG8gaWYgdGhlIGlucHV0IHNvdXJjZSB3YXMgcGFyc2VkIHVzaW5nIAogPGNvZGU+TFNQYXJzZXIucGFyc2UoKTwvY29kZT4uIAogPGJyPiBUaGlzIG1ldGhvZCBpcyBhbHdheXMgc3luY2hyb25vdXMsIGV2ZW4gaWYgdGhlIAogPGNvZGU+TFNQYXJzZXI8L2NvZGU+IGlzIGFzeW5jaHJvbm91cyAoPGNvZGU+TFNQYXJzZXIuYXN5bmM8L2NvZGU+IGlzIAogPGNvZGU+dHJ1ZTwvY29kZT4pLiAKIDxicj4gSWYgYW4gZXJyb3Igb2NjdXJzIHdoaWxlIHBhcnNpbmcsIHRoZSBjYWxsZXIgaXMgbm90aWZpZWQgdGhyb3VnaCAKIHRoZSA8Y29kZT5FcnJvckhhbmRsZXI8L2NvZGU+IGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgIjxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUNvcmUvY29yZS5odG1sI3BhcmFtZXRlci1lcnJvci1oYW5kbGVyJz4KIGVycm9yLWhhbmRsZXI8L2E+IiBwYXJhbWV0ZXIgb2YgdGhlIDxjb2RlPkRPTUNvbmZpZ3VyYXRpb248L2NvZGU+LiAKIDxicj4gV2hlbiBjYWxsaW5nIDxjb2RlPnBhcnNlV2l0aENvbnRleHQ8L2NvZGU+LCB0aGUgdmFsdWVzIG9mIHRoZSAKIGZvbGxvd2luZyBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgd2lsbCBiZSBpZ25vcmVkIGFuZCB0aGVpciBkZWZhdWx0IAogdmFsdWVzIHdpbGwgYWx3YXlzIGJlIHVzZWQgaW5zdGVhZDogIjxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL0RPTS1MZXZlbC0zLUNvcmUvY29yZS5odG1sI3BhcmFtZXRlci12YWxpZGF0ZSc+CiB2YWxpZGF0ZTwvYT4iLCAiPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtQ29yZS9jb3JlLmh0bWwjcGFyYW1ldGVyLXZhbGlkYXRlLWlmLXNjaGVtYSc+CiB2YWxpZGF0ZS1pZi1zY2hlbWE8L2E+IiwgYW5kICI8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1Db3JlL2NvcmUuaHRtbCNwYXJhbWV0ZXItZWxlbWVudC1jb250ZW50LXdoaXRlc3BhY2UnPgogZWxlbWVudC1jb250ZW50LXdoaXRlc3BhY2U8L2E+Ii4gT3RoZXIgcGFyYW1ldGVycyB3aWxsIGJlIHRyZWF0ZWQgbm9ybWFsbHksIGFuZCB0aGUgcGFyc2VyIGlzIGV4cGVjdGVkIAogdG8gY2FsbCB0aGUgPGNvZGU+TFNQYXJzZXJGaWx0ZXI8L2NvZGU+IGp1c3QgYXMgaWYgYSB3aG9sZSBkb2N1bWVudCAKIHdhcyBwYXJzZWQuPEREPjxETD4NCjxEVD48Qj5QYXJhbWV0ZXJzOjwvQj48REQ+PENPREU+aW5wdXQ8L0NPREU+IC0gVGhlIDxjb2RlPkxTSW5wdXQ8L2NvZGU+IGZyb20gd2hpY2ggdGhlIHNvdXJjZSBkb2N1bWVudCAKICAgaXMgdG8gYmUgcmVhZC4gVGhlIHNvdXJjZSBkb2N1bWVudCBtdXN0IGJlIGFuIFhNTCBmcmFnbWVudCwgaS5lLiAKICAgYW55dGhpbmcgZXhjZXB0IGEgY29tcGxldGUgWE1MIGRvY3VtZW50IChleGNlcHQgaW4gdGhlIGNhc2Ugd2hlcmUgCiAgIHRoZSBjb250ZXh0IG5vZGUgb2YgdHlwZSA8Y29kZT5ET0NVTUVOVF9OT0RFPC9jb2RlPiwgYW5kIHRoZSBhY3Rpb24gCiAgIGlzIDxjb2RlPkFDVElPTl9SRVBMQUNFX0NISUxEUkVOPC9jb2RlPiksIGEgRE9DVFlQRSAoaW50ZXJuYWwgCiAgIHN1YnNldCksIGVudGl0eSBkZWNsYXJhdGlvbihzKSwgbm90YXRpb24gZGVjbGFyYXRpb24ocyksIG9yIFhNTCBvciAKICAgdGV4dCBkZWNsYXJhdGlvbihzKS48REQ+PENPREU+Y29udGV4dEFyZzwvQ09ERT4gLSBUaGUgbm9kZSB0aGF0IGlzIHVzZWQgYXMgdGhlIGNvbnRleHQgZm9yIHRoZSBkYXRhIAogICB0aGF0IGlzIGJlaW5nIHBhcnNlZC4gVGhpcyBub2RlIG11c3QgYmUgYSA8Y29kZT5Eb2N1bWVudDwvY29kZT4gCiAgIG5vZGUsIGEgPGNvZGU+RG9jdW1lbnRGcmFnbWVudDwvY29kZT4gbm9kZSwgb3IgYSBub2RlIG9mIGEgdHlwZSAKICAgdGhhdCBpcyBhbGxvd2VkIGFzIGEgY2hpbGQgb2YgYW4gPGNvZGU+RWxlbWVudDwvY29kZT4gbm9kZSwgZS5nLiBpdCAKICAgY2Fubm90IGJlIGFuIDxjb2RlPkF0dHJpYnV0ZTwvY29kZT4gbm9kZS48REQ+PENPREU+YWN0aW9uPC9DT0RFPiAtIFRoaXMgcGFyYW1ldGVyIGRlc2NyaWJlcyB3aGljaCBhY3Rpb24gc2hvdWxkIGJlIHRha2VuIAogICBiZXR3ZWVuIHRoZSBuZXcgc2V0IG9mIG5vZGVzIGJlaW5nIGluc2VydGVkIGFuZCB0aGUgZXhpc3RpbmcgCiAgIGNoaWxkcmVuIG9mIHRoZSBjb250ZXh0IG5vZGUuIFRoZSBzZXQgb2YgcG9zc2libGUgYWN0aW9ucyBpcyAKICAgZGVmaW5lZCBpbiA8Y29kZT5BQ1RJT05fVFlQRVM8L2NvZGU+IGFib3ZlLjxEVD48Qj5SZXR1cm5zOjwvQj48REQ+UmV0dXJuIHRoZSBub2RlIHRoYXQgaXMgdGhlIHJlc3VsdCBvZiB0aGUgcGFyc2Ugb3BlcmF0aW9uLiBJZiAKICAgdGhlIHJlc3VsdCBpcyBtb3JlIHRoYW4gb25lIHRvcC1sZXZlbCBub2RlLCB0aGUgZmlyc3Qgb25lIGlzIAogICByZXR1cm5lZC48RFQ+PEI+VGhyb3dzOjwvQj48REQ+PEEgSFJFRj0iLi4vLi4vLi4vLi4vb3JnL3czYy9kb20vRE9NRXhjZXB0aW9uLmh0bWwiPkRPTUV4Y2VwdGlvbjwvQT4gLSBISUVSQVJDSFlfUkVRVUVTVF9FUlI6IFJhaXNlZCBpZiB0aGUgY29udGVudCBjYW5ub3QgcmVwbGFjZSwgYmUgCiAgIGluc2VydGVkIGJlZm9yZSwgYWZ0ZXIsIG9yIGFzIGEgY2hpbGQgb2YgdGhlIGNvbnRleHQgbm9kZSAoc2VlIGFsc28gCiAgIDxjb2RlPk5vZGUuaW5zZXJ0QmVmb3JlPC9jb2RlPiBvciA8Y29kZT5Ob2RlLnJlcGxhY2VDaGlsZDwvY29kZT4gaW4gWzxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSLzIwMDQvUkVDLURPTS1MZXZlbC0zLUNvcmUtMjAwNDA0MDcnPkRPTSBMZXZlbCAzIENvcmU8L2E+XQogICApLgogICA8YnI+IE5PVF9TVVBQT1JURURfRVJSOiBSYWlzZWQgaWYgdGhlIDxjb2RlPkxTUGFyc2VyPC9jb2RlPiBkb2Vzbid0IAogICBzdXBwb3J0IHRoaXMgbWV0aG9kLCBvciBpZiB0aGUgY29udGV4dCBub2RlIGlzIG9mIHR5cGUgCiAgIDxjb2RlPkRvY3VtZW50PC9jb2RlPiBhbmQgdGhlIERPTSBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQgCiAgIHRoZSByZXBsYWNlbWVudCBvZiB0aGUgPGNvZGU+RG9jdW1lbnRUeXBlPC9jb2RlPiBjaGlsZCBvciAKICAgPGNvZGU+RWxlbWVudDwvY29kZT4gY2hpbGQuIAogICA8YnI+IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUjogUmFpc2VkIGlmIHRoZSBjb250ZXh0IG5vZGUgaXMgYSAKICAgcmVhZCBvbmx5IG5vZGUgYW5kIHRoZSBjb250ZW50IGlzIGJlaW5nIGFwcGVuZGVkIHRvIGl0cyBjaGlsZCBsaXN0LCAKICAgb3IgaWYgdGhlIHBhcmVudCBub2RlIG9mIHRoZSBjb250ZXh0IG5vZGUgaXMgcmVhZCBvbmx5IG5vZGUgYW5kIHRoZSAKICAgY29udGVudCBpcyBiZWluZyBpbnNlcnRlZCBpbiBpdHMgY2hpbGQgbGlzdC4KICAgPGJyPiBJTlZBTElEX1NUQVRFX0VSUjogUmFpc2VkIGlmIHRoZSA8Y29kZT5MU1BhcnNlci5idXN5PC9jb2RlPiAKICAgYXR0cmlidXRlIGlzIDxjb2RlPnRydWU8L2NvZGU+LjxERD48QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU0V4Y2VwdGlvbi5odG1sIj5MU0V4Y2VwdGlvbjwvQT4gLSBQQVJTRV9FUlI6IFJhaXNlZCBpZiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IHdhcyB1bmFibGUgdG8gbG9hZCAKICAgdGhlIFhNTCBmcmFnbWVudC4gRE9NIGFwcGxpY2F0aW9ucyBzaG91bGQgYXR0YWNoIGEgCiAgIDxjb2RlPkRPTUVycm9ySGFuZGxlcjwvY29kZT4gdXNpbmcgdGhlIHBhcmFtZXRlciAiPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvRE9NLUxldmVsLTMtQ29yZS9jb3JlLmh0bWwjcGFyYW1ldGVyLWVycm9yLWhhbmRsZXInPgogICBlcnJvci1oYW5kbGVyPC9hPiIgaWYgdGhleSB3aXNoIHRvIGdldCBkZXRhaWxzIG9uIHRoZSBlcnJvci48L0RMPg0KPC9ERD4NCjwvREw+DQo8SFI+DQoNCjxBIE5BTUU9ImFib3J0KCkiPjwhLS0gLS0+PC9BPjxIMz4NCmFib3J0PC9IMz4NCjxQUkU+DQpwdWJsaWMgdm9pZCA8Qj5hYm9ydDwvQj4oKTwvUFJFPg0KPERMPg0KPEREPkFib3J0IHRoZSBsb2FkaW5nIG9mIHRoZSBkb2N1bWVudCB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBsb2FkZWQgYnkgCiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+LiBJZiB0aGUgPGNvZGU+TFNQYXJzZXI8L2NvZGU+IGlzIGN1cnJlbnRseSAKIG5vdCBidXN5LCBhIGNhbGwgdG8gdGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLjwvREw+DQo8IS0tID09PT09PT09PSBFTkQgT0YgQ0xBU1MgREFUQSA9PT09PT09PT0gLS0+DQo8SFI+DQoNCjwhLS0gPT09PT09PT09PSBTVEFSVCBPRiBOQVZCQVIgPT09PT09PT09PSAtLT4NCjxBIE5BTUU9Im5hdmJhcl9ib3R0b20iPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBXSURUSD0iMTAwJSIgQ0VMTFBBRERJTkc9IjEiIENFTExTUEFDSU5HPSIwIj4NCjxUUj4NCjxURCBDT0xTUEFOPTIgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4NCjxBIE5BTUU9Im5hdmJhcl9ib3R0b21fZmlyc3Ryb3ciPjwhLS0gLS0+PC9BPgo8VEFCTEUgQk9SREVSPSIwIiBDRUxMUEFERElORz0iMCIgQ0VMTFNQQUNJTkc9IjMiPg0KICA8VFIgQUxJR049ImNlbnRlciIgVkFMSUdOPSJ0b3AiPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vb3ZlcnZpZXctc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPk92ZXJ2aWV3PC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9InBhY2thZ2Utc3VtbWFyeS5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlBhY2thZ2U8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0ZGRkZGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxUmV2Ij4gJm5ic3A7PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxUmV2Ij48Qj5DbGFzczwvQj48L0ZPTlQ+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9ImNsYXNzLXVzZS9MU1BhcnNlci5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPlVzZTwvQj48L0ZPTlQ+PC9BPiZuYnNwOzwvVEQ+DQogIDxURCBCR0NPTE9SPSIjRUVFRUZGIiBDTEFTUz0iTmF2QmFyQ2VsbDEiPiAgICA8QSBIUkVGPSJwYWNrYWdlLXRyZWUuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5UcmVlPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPFREIEJHQ09MT1I9IiNFRUVFRkYiIENMQVNTPSJOYXZCYXJDZWxsMSI+ICAgIDxBIEhSRUY9Ii4uLy4uLy4uLy4uL2RlcHJlY2F0ZWQtbGlzdC5odG1sIj48Rk9OVCBDTEFTUz0iTmF2QmFyRm9udDEiPjxCPkRlcHJlY2F0ZWQ8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXgtYWxsLmh0bWwiPjxGT05UIENMQVNTPSJOYXZCYXJGb250MSI+PEI+SW5kZXg8L0I+PC9GT05UPjwvQT4mbmJzcDs8L1REPg0KICA8VEQgQkdDT0xPUj0iI0VFRUVGRiIgQ0xBU1M9Ik5hdkJhckNlbGwxIj4gICAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaGVscC1kb2MuaHRtbCI+PEZPTlQgQ0xBU1M9Ik5hdkJhckZvbnQxIj48Qj5IZWxwPC9CPjwvRk9OVD48L0E+Jm5ic3A7PC9URD4NCiAgPC9UUj4NCjwvVEFCTEU+DQo8L1REPg0KPFREIEFMSUdOPSJyaWdodCIgVkFMSUdOPSJ0b3AiIFJPV1NQQU49Mz48RU0+DQo8L0VNPg0KPC9URD4NCjwvVFI+DQoNCjxUUj4NCjxURCBCR0NPTE9SPSJ3aGl0ZSIgQ0xBU1M9Ik5hdkJhckNlbGwyIj48Rk9OVCBTSVpFPSItMiI+DQombmJzcDs8QSBIUkVGPSIuLi8uLi8uLi8uLi9vcmcvdzNjL2RvbS9scy9MU091dHB1dC5odG1sIj48Qj5QUkVWIENMQVNTPC9CPjwvQT4mbmJzcDsNCiZuYnNwOzxBIEhSRUY9Ii4uLy4uLy4uLy4uL29yZy93M2MvZG9tL2xzL0xTUGFyc2VyRmlsdGVyLmh0bWwiPjxCPk5FWFQgQ0xBU1M8L0I+PC9BPjwvRk9OVD48L1REPg0KPFREIEJHQ09MT1I9IndoaXRlIiBDTEFTUz0iTmF2QmFyQ2VsbDIiPjxGT05UIFNJWkU9Ii0yIj4NCiAgPEEgSFJFRj0iLi4vLi4vLi4vLi4vaW5kZXguaHRtbCIgVEFSR0VUPSJfdG9wIj48Qj5GUkFNRVM8L0I+PC9BPiAgJm5ic3A7DQombmJzcDs8QSBIUkVGPSJMU1BhcnNlci5odG1sIiBUQVJHRVQ9Il90b3AiPjxCPk5PIEZSQU1FUzwvQj48L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPFRSPg0KPFREIFZBTElHTj0idG9wIiBDTEFTUz0iTmF2QmFyQ2VsbDMiPjxGT05UIFNJWkU9Ii0yIj4NCiAgU1VNTUFSWTogJm5ic3A7SU5ORVImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI2ZpZWxkX3N1bW1hcnkiPkZJRUxEPC9BPiZuYnNwO3wmbmJzcDtDT05TVFImbmJzcDt8Jm5ic3A7PEEgSFJFRj0iI21ldGhvZF9zdW1tYXJ5Ij5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8VEQgVkFMSUdOPSJ0b3AiIENMQVNTPSJOYXZCYXJDZWxsMyI+PEZPTlQgU0laRT0iLTIiPg0KREVUQUlMOiAmbmJzcDs8QSBIUkVGPSIjZmllbGRfZGV0YWlsIj5GSUVMRDwvQT4mbmJzcDt8Jm5ic3A7Q09OU1RSJm5ic3A7fCZuYnNwOzxBIEhSRUY9IiNtZXRob2RfZGV0YWlsIj5NRVRIT0Q8L0E+PC9GT05UPjwvVEQ+DQo8L1RSPg0KPC9UQUJMRT4NCjwhLS0gPT09PT09PT09PT0gRU5EIE9GIE5BVkJBUiA9PT09PT09PT09PSAtLT4NCg0KPEhSPg0KQ29weXJpZ2h0IKkgMjAwNiBBcGFjaGUgWE1MIFByb2plY3QuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQo8L0JPRFk+DQo8L0hUTUw+DQo=