LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpTYW4gQW5nZWxlcyBPYnNlcnZhdGlvbiBPcGVuR0wgRVMgdmVyc2lvbiBleGFtcGxlDQpDb3B5cmlnaHQgMjAwNC0yMDA1IEpldHJvIExhdWhhDQpXZWI6IGh0dHA6Ly9pa2kuZmkvamV0cm8vDQpTZWUgZmlsZSBsaWNlbnNlLnR4dCBmb3IgbGljZW5zaW5nIGluZm9ybWF0aW9uLg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNClRoaXMgaXMgYW4gT3BlbkdMIEVTIHBvcnQgb2YgdGhlIHNtYWxsIHNlbGYtcnVubmluZyBkZW1vbnN0cmF0aW9uDQpjYWxsZWQgIlNhbiBBbmdlbGVzIE9ic2VydmF0aW9uIiwgd2hpY2ggd2FzIGZpcnN0IHByZXNlbnRlZCBpbiB0aGUNCkFzc2VtYmx5JzIwMDQgZXZlbnQuIEl0IHdvbiB0aGUgZmlyc3QgcGxhY2UgaW4gdGhlIDQgS0IgaW50cm8NCmNvbXBldGl0aW9uIGNhdGVnb3J5Lg0KDQpUaGUgZGVtb25zdHJhdGlvbiBmZWF0dXJlcyBhIHNpZ2h0c2VlaW5nIG9mIGEgZnV0dXJpc3RpYyBjaXR5DQpoYXZpbmcgbWFueSBkaWZmZXJlbnQga2luZCBvZiBidWlsZGluZ3MgYW5kIGl0ZW1zLiBFdmVyeXRoaW5nIGlzDQpmbGF0IHNoYWRlZCB3aXRoIHRocmVlIGRpZmZlcmVudCBsaWdodHMuDQoNClRoZSBvcmlnaW5hbCB2ZXJzaW9uIHdhcyBtYWRlIGZvciBkZXNrdG9wIHdpdGggT3BlbkdMLiBJdCB3YXMNCm5hdHVyYWxseSBoZWF2aWx5IHNpemUgb3B0aW1pemVkIGluIG9yZGVyIHRvIGZpdCBpdCBpbiB0aGUgc2l6ZQ0KbGltaXQuIEZvciB0aGlzIE9wZW5HTCBFUyB2ZXJzaW9uIGV4YW1wbGUgbXVjaCBvZiB0aGUgY29kZSBpcw0KY2xlYW5lZCB1cCBhbmQgdGhlIHNvdW5kIGlzIHJlbW92ZWQuIEFsc28gZGV0YWlsIGxldmVsIGlzIGxvd2VyZWQsDQphbHRob3VnaCBpdCBzdGlsbCBjb250YWlucyBvdmVyIDYwMDAwIGZhY2VzLg0KDQpUaGUgV2luMzIgKDIwMDAvWFApIGJpbmFyeSBwYWNrYWdlIG9mIG9yaWdpbmFsIHZlcnNpb24gaXMNCmF2YWlsYWJsZSBmcm9tIHRoaXMgYWRkcmVzczogaHR0cDovL2pldC5yby9maWxlcy9hbmdlbGVzLnppcA0KDQpGaXJzdCB2ZXJzaW9uIG9mIHRoaXMgT3BlbkdMIEVTIHBvcnQgd2FzIHN1Ym1pdHRlZCB0byB0aGUgS2hyb25vcw0KT3BlbkdMIEVTIENvZGluZyBDaGFsbGVuZ2UgaGVsZCBpbiAyMDA0LTIwMDUuDQoNCkFzIGEgY29kZSBleGFtcGxlLCB0aGlzIHNvdXJjZSBzaG93cyB0aGUgZm9sbG93aW5nOg0KICAqIEhvdyB0byBjcmVhdGUgYSBtaW5pbWFsIGFuZCBwb3J0YWJsZSBhZCBob2MgZnJhbWV3b3JrDQogICAgZm9yIHNtYWxsIHRlc3RpbmcvZGVtb25zdHJhdGlvbiBwcm9ncmFtcy4gVGhpcyBmcmFtZXdvcmsNCiAgICBjb21waWxlcyBmb3IgYm90aCBkZXNrdG9wIGFuZCBQb2NrZXRQQyBXaW4zMiBlbnZpcm9ubWVudCwNCiAgICBhbmQgYSBzZXBhcmF0ZSBzb3VyY2UgaXMgaW5jbHVkZWQgZm9yIExpbnV4IHdpdGggWDExLg0KICAqIEhvdyB0byBkeW5hbWljYWxseSBmaW5kIGFuZCB1c2UgdGhlIE9wZW5HTCBFUyBETEwgb3INCiAgICBzaGFyZWQgb2JqZWN0LCBzbyB0aGF0IHRoZSBsaWJyYXJ5IGlzIG5vdCBuZWVkZWQgYXQNCiAgICB0aGUgY29tcGlsZS9saW5rIHN0YWdlLg0KICAqIEhvdyB0byB1c2UgdGhlIGJhc2ljIGZlYXR1cmVzIG9mIE9wZW5HTCBFUyAxLjAvMS4xDQogICAgQ29tbW9uIExpdGUsIHN1Y2ggYXMgdmVydGV4IGFycmF5cywgY29sb3IgYXJyYXlzIGFuZA0KICAgIGxpZ2h0aW5nLg0KICAqIEhvdyB0byBjcmVhdGUgYSBzZWxmIGNvbnRhaW5lZCBzbWFsbCBkZW1vbnN0cmF0aW9uDQogICAgYXBwbGljYXRpb24gd2l0aCBvYmplY3RzIGdlbmVyYXRlZCB1c2luZyBwcm9jZWR1cmFsDQogICAgYWxnb3JpdGhtcy4NCg0KQXMgdGhlIG9yaWdpbmFsIHZlcnNpb24gd2FzIG9wdGltaXplZCBmb3Igc2l6ZSBpbnN0ZWFkIG9mDQpwZXJmb3JtYW5jZSwgdGhhdCBob2xkcyB0cnVlIGZvciB0aGlzIE9wZW5HTCBFUyB2ZXJzaW9uIGFzDQp3ZWxsLiBUaHVzIHRoZSBwZXJmb3JtYW5jZSBjb3VsZCBiZSBzaWduaWZpY2FudGx5IGluY3JlYXNlZCwNCmZvciBleGFtcGxlIGJ5IGNoYW5naW5nIHRoZSBjb2RlIHRvIHVzZSBnbERyYXdFbGVtZW50cw0KaW5zdGVhZCBvZiBnbERyYXdBcnJheXMuIFRoZSBjb2RlIHVzZXMgb25seSBPcGVuR0wgRVMgMS4wDQpDb21tb24gTGl0ZSAtbGV2ZWwgZnVuY3Rpb24gY2FsbHMgd2l0aG91dCBhbnkgZXh0ZW5zaW9ucy4NCg0KVGhlIHJlZmVyZW5jZSBPcGVuR0wgRVMgaW1wbGVtZW50YXRpb25zIHVzZWQgZm9yIHRoaXMgYXBwbGljYXRpb246DQogICogSHlicmlkJ3MgT3BlbkdMIEVTIEFQSSBJbXBsZW1lbnRhdGlvbiAoR2VyYmVyYSkgdmVyc2lvbiAyLjAuNA0KICAgIFByZWJ1aWx0IFdpbjMyIFBDIGV4ZWN1dGFibGU6IFNhbk9HTEVTLUdlcmJlcmEuZXhlDQogICogUG93ZXJWUiBNQlggU0RLLCBPcGVuR0wgRVMgV2luZG93cyBQQyBFbXVsYXRpb24gdmVyc2lvbiAxLjA0LjE0LjAxNzANCiAgICBQcmVidWlsdCBXaW4zMiBQQyBleGVjdXRhYmxlOiBTYW5PR0xFUy1QVlJTREsuZXhlDQoNCk5vdGUgdGhhdCBESVNBQkxFX0lNUE9SVEdMIHByZXByb2Nlc3NvciBtYWNybyBjYW4gYmUgdXNlZA0KdG8gc3BlY2lmeSBub3QgdG8gdXNlIGR5bmFtaWMgcnVudGltZSBiaW5kaW5nIG9mIHRoZSBsaWJyYXJ5Lg0KWW91IGFsc28gbmVlZCB0byBkZWZpbmUgcHJlcHJvY2Vzc29yIG1hY3JvIFBWUlNESyB0byBjb21waWxlDQp0aGUgc291cmNlIHdpdGggUG93ZXJWUiBPcGVuR0wgRVMgU0RLLg0KDQpUaGUgZGVtbyBhcHBsaWNhdGlvbiBpcyBicmllZmx5IHRlc3RlZCB3aXRoIGEgZmV3IG90aGVyIE9wZW5HTCBFUw0KaW1wbGVtZW50YXRpb25zIGFzIHdlbGwgKGUuZy4gVmluY2VudCwgR0xFU29uR0wgb24gTGludXgsIERlbGwNCkF4aW0gWDUwdikuIE1vc3Qgb2YgdGhlc2Ugb3RoZXIgaW1wbGVtZW50YXRpb25zIHJlbmRlcmVkIHRoZSBkZW1vDQplcnJvbmVvdXNseSBpbiBzb21lIGFzcGVjdC4gVGhpcyBtYXkgaW5kaWNhdGUgdGhhdCB0aGUgZGVtbyBzb3VyY2UNCmNvdWxkIHN0aWxsIGhhdmUgc29tZSB3b3JrIHRvIGRvIHdpdGggY29tcGF0aWJpbGl0eSBhbmQgY29ycmVjdA0KQVBJIHVzYWdlLCBhbHRob3VnaCB0aGUgbm9uLWNvbmZvcm1pbmcgaW1wbGVtZW50YXRpb25zIGFyZSBtb3N0DQpwcm9iYWJseSB1bmZpbmlzaGVkIGFzIHdlbGwuDQoNClRoYW5rcyBhbmQgQWNrbm93bGVkZ2VtZW50czoNCg0KKiBUb25pIEz2bm5iZXJnICghQ3ViZSkgY3JlYXRlZCB0aGUgbXVzaWMgZm9yIG9yaWdpbmFsIHZlcnNpb24sIHdoaWNoDQogIGlzIG5vdCBmZWF0dXJlZCBpbiB0aGlzIE9wZW5HTCBFUyBwb3J0Lg0KKiBTYXJhIEthcGxpIChzdCBSYW5hKSBmb3IgYWRkaXRpb25hbCBjYW1lcmEgd29yay4NCiogUGF1bCBCb3Vya2UgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBzdXBlcnNoYXBlcy4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo=