XGJlZ2lue2ZsdXNobGVmdH0KCntcYmZzZXJpZXMgU3BlY2lmaWNhdGlvbjogSlNSLTAwMDMxMSAtIEphdmFcdGV4dHRyYWRlbWFya1wgQVBJIGZvciBSRVNUZnVsIFdlYiBTZXJ2aWNlcyAoXGxxXGxxIFNwZWNpZmljYXRpb25ccnFccnEpXFwKVmVyc2lvbjogMS4wXFwKU3RhdHVzOiBGaW5hbCBSZWxlYXNlXFwKUmVsZWFzZTogXHRvZGF5XFwKQ29weXJpZ2h0IDIwMDcgU3VuIE1pY3Jvc3lzdGVtcywgSW5jLlxcCjQxNTAgTmV0d29yayBDaXJjbGUsIFNhbnRhIENsYXJhLCBDYWxpZm9ybmlhIDk1MDU0LCBVLlMuQVxcCjE4MCwgQXZlbnVlIGRlIEwnRXVyb3BlLCAzODMzMCBNb250Ym9ubm90IFNhaW50IE1hcnRpbiwgRnJhbmNlXFwKQWxsIHJpZ2h0cyByZXNlcnZlZC4KfQoKe1xiZnNlcmllcyBMSU1JVEVEIExJQ0VOU0UgR1JBTlRTfQoKXGJlZ2lue2VudW1lcmF0ZX0KXGl0ZW0gTGljZW5zZSBmb3IgRXZhbHVhdGlvbiBQdXJwb3Nlcy4gU3VuIGhlcmVieSBncmFudHMgeW91IGEgZnVsbHktcGFpZCwgbm9uLWV4Y2x1c2l2ZSwgbm9uLXRyYW5zZmVyYWJsZSwgd29ybGR3aWRlLCBsaW1pdGVkIGxpY2Vuc2UgKHdpdGhvdXQgdGhlIHJpZ2h0IHRvIHN1YmxpY2Vuc2UpLCB1bmRlciBTdW4ncyDKYXBwbGljYWJsZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIHRvIHZpZXcsIGRvd25sb2FkLCB1c2UgYW5kIHJlcHJvZHVjZSB0aGUgU3BlY2lmaWNhdGlvbiBvbmx5IGZvciB0aGUgcHVycG9zZSBvZiBpbnRlcm5hbCBldmFsdWF0aW9uLiDKVGhpcyBpbmNsdWRlcyAoaSkgZGV2ZWxvcGluZyBhcHBsaWNhdGlvbnMgaW50ZW5kZWQgdG8gcnVuIG9uIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTcGVjaWZpY2F0aW9uLCBwcm92aWRlZCB0aGF0IHN1Y2ggYXBwbGljYXRpb25zIGRvIG5vdCB0aGVtc2VsdmVzIGltcGxlbWVudCBhbnkgcG9ydGlvbihzKSBvZiB0aGUgU3BlY2lmaWNhdGlvbiwgYW5kIChpaSkgZGlzY3Vzc2luZyB0aGUgU3BlY2lmaWNhdGlvbiB3aXRoIGFueSB0aGlyZCBwYXJ0eTsgYW5kIChpaWkpIGV4Y2VycHRpbmcgYnJpZWYgcG9ydGlvbnMgb2YgdGhlIFNwZWNpZmljYXRpb24gaW4gb3JhbCBvciB3cml0dGVuIGNvbW11bmljYXRpb25zIHdoaWNoIGRpc2N1c3MgdGhlIFNwZWNpZmljYXRpb24gcHJvdmlkZWQgdGhhdCBzdWNoIGV4Y2VycHRzIGRvIG5vdCBpbiB0aGUgYWdncmVnYXRlIGNvbnN0aXR1dGUgYSBzaWduaWZpY2FudCBwb3J0aW9uIG9mIHRoZSBTcGVjaWZpY2F0aW9uLgoKXGl0ZW0gTGljZW5zZSBmb3IgdGhlIERpc3RyaWJ1dGlvbiBvZiBDb21wbGlhbnQgSW1wbGVtZW50YXRpb25zLiBTdW4gymFsc28gZ3JhbnRzIHlvdSBhIHBlcnBldHVhbCwgbm9uLWV4Y2x1c2l2ZSwgbm9uLXRyYW5zZmVyYWJsZSwgd29ybGR3aWRlLCBmdWxseSBwYWlkLXVwLCByb3lhbHR5IGZyZWUsIGxpbWl0ZWQgbGljZW5zZSAod2l0aG91dCB0aGUgcmlnaHQgdG8gc3VibGljZW5zZSkgdW5kZXIgYW55IGFwcGxpY2FibGUgY29weXJpZ2h0cyBvciwgc3ViamVjdCB0byB0aGUgcHJvdmlzaW9ucyBvZiBzdWJzZWN0aW9uIDQgYmVsb3csIHBhdGVudCByaWdodHMgaXQgbWF5IGhhdmUgY292ZXJpbmcgdGhlIFNwZWNpZmljYXRpb24gdG8gY3JlYXRlIGFuZC9vciBkaXN0cmlidXRlIGFuIEluZGVwZW5kZW50IEltcGxlbWVudGF0aW9uIG9mIHRoZSBTcGVjaWZpY2F0aW9uIHRoYXQ6IChhKSBmdWxseSBpbXBsZW1lbnRzIHRoZSBTcGVjaWZpY2F0aW9uIGluY2x1ZGluZyBhbGwgaXRzIHJlcXVpcmVkIGludGVyZmFjZXMgYW5kIGZ1bmN0aW9uYWxpdHk7IChiKSBkb2VzIG5vdCBtb2RpZnksIHN1YnNldCwgc3VwZXJzZXQgb3Igb3RoZXJ3aXNlIGV4dGVuZCB0aGUgTGljZW5zb3IgTmFtZSBTcGFjZSwgb3IgaW5jbHVkZSBhbnkgcHVibGljIG9yIHByb3RlY3RlZCBwYWNrYWdlcywgY2xhc3NlcywgSmF2YSBpbnRlcmZhY2VzLCBmaWVsZHMgb3IgbWV0aG9kcyB3aXRoaW4gdGhlIExpY2Vuc29yIE5hbWUgU3BhY2Ugb3RoZXIgdGhhbiB0aG9zZSByZXF1aXJlZC9hdXRob3JpemVkIGJ5IHRoZSBTcGVjaWZpY2F0aW9uIG9yIFNwZWNpZmljYXRpb25zIGJlaW5nIGltcGxlbWVudGVkOyBhbmQgKGMpIHBhc3NlcyB0aGUgVGVjaG5vbG9neSBDb21wYXRpYmlsaXR5IEtpdCAoaW5jbHVkaW5nIHNhdGlzZnlpbmcgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGUgYXBwbGljYWJsZSBUQ0sgVXNlcnMgR3VpZGUpIGZvciBzdWNoIFNwZWNpZmljYXRpb24gKFxscVxscSBDb21wbGlhbnQgSW1wbGVtZW50YXRpb25ccnFccnEpLiDKSW4gYWRkaXRpb24sIHRoZSBmb3JlZ29pbmcgbGljZW5zZSBpcyBleHByZXNzbHkgY29uZGl0aW9uZWQgb24geW91ciBub3QgYWN0aW5nIG91dHNpZGUgaXRzIHNjb3BlLiDKTm8gbGljZW5zZSBpcyBncmFudGVkIGhlcmV1bmRlciBmb3IgYW55IG90aGVyIHB1cnBvc2UgKGluY2x1ZGluZywgZm9yIGV4YW1wbGUsIG1vZGlmeWluZyB0aGUgU3BlY2lmaWNhdGlvbiwgb3RoZXIgdGhhbiB0byB0aGUgZXh0ZW50IG9mIHlvdXIgZmFpciB1c2UgcmlnaHRzLCBvciBkaXN0cmlidXRpbmcgdGhlIFNwZWNpZmljYXRpb24gdG8gdGhpcmQgcGFydGllcykuIMpBbHNvLCBubyByaWdodCwgdGl0bGUsIG9yIGludGVyZXN0IGluIG9yIHRvIGFueSB0cmFkZW1hcmtzLCBzZXJ2aWNlIG1hcmtzLCBvciB0cmFkZSBuYW1lcyBvZiBTdW4gb3IgU3VuJ3MgbGljZW5zb3JzIGlzIGdyYW50ZWQgaGVyZXVuZGVyLiDKSmF2YSwgYW5kIEphdmEtcmVsYXRlZCBsb2dvcywgbWFya3MgYW5kIG5hbWVzIGFyZSB0cmFkZW1hcmtzIG9yIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZiBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIGluIHRoZSBVLlMuIGFuZCBvdGhlciBjb3VudHJpZXMuCgpcaXRlbSBQYXNzLXRocm91Z2ggQ29uZGl0aW9ucy4gWW91IG5lZWQgbm90IGluY2x1ZGUgbGltaXRhdGlvbnMgKGEpLShjKSBmcm9tIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGggb3IgYW55IG90aGVyIHBhcnRpY3VsYXIgXGxxXGxxIHBhc3MgdGhyb3VnaFxycVxycVwgcmVxdWlyZW1lbnRzIGluIGFueSBsaWNlbnNlIFlvdSBncmFudCBjb25jZXJuaW5nIHRoZSB1c2Ugb2YgeW91ciBJbmRlcGVuZGVudCBJbXBsZW1lbnRhdGlvbiBvciBwcm9kdWN0cyBkZXJpdmVkIGZyb20gaXQuIMpIb3dldmVyLCBleGNlcHQgd2l0aCByZXNwZWN0IHRvIEluZGVwZW5kZW50IEltcGxlbWVudGF0aW9ucyAoYW5kIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGVtKSB0aGF0IHNhdGlzZnkgbGltaXRhdGlvbnMgKGEpLShjKSBmcm9tIHRoZSBwcmV2aW91cyBwYXJhZ3JhcGgsIFlvdSBtYXkgbmVpdGhlcjogyihhKSBncmFudCBvciBvdGhlcndpc2UgcGFzcyB0aHJvdWdoIHRvIHlvdXIgbGljZW5zZWVzIGFueSBsaWNlbnNlcyB1bmRlciBTdW4ncyDKYXBwbGljYWJsZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzOyBub3IgKGIpIGF1dGhvcml6ZSB5b3VyIGxpY2Vuc2VlcyB0byBtYWtlIGFueSBjbGFpbXMgY29uY2VybmluZyB0aGVpciBpbXBsZW1lbnRhdGlvbidzIGNvbXBsaWFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiBpbiBxdWVzdGlvbi4KClxpdGVtIFJlY2lwcm9jaXR5IENvbmNlcm5pbmcgUGF0ZW50IExpY2Vuc2VzLiDKClxiZWdpbntlbnVtZXJhdGV9ClxpdGVtyldpdGggcmVzcGVjdCB0byBhbnkgcGF0ZW50IGNsYWltcyBjb3ZlcmVkIGJ5IHRoZSBsaWNlbnNlIGdyYW50ZWQgdW5kZXIgc3VicGFyYWdyYXBoIDIgYWJvdmUgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgYWxsIHRlY2huaWNhbGx5IGZlYXNpYmxlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgU3BlY2lmaWNhdGlvbiwgc3VjaCBsaWNlbnNlIGlzIGNvbmRpdGlvbmVkIHVwb24geW91ciBvZmZlcmluZyBvbiBmYWlyLCByZWFzb25hYmxlIGFuZCBub24tZGlzY3JpbWluYXRvcnkgdGVybXMsIHRvIGFueSBwYXJ0eSBzZWVraW5nIGl0IGZyb20gWW91LCBhIHBlcnBldHVhbCwgbm9uLWV4Y2x1c2l2ZSwgbm9uLXRyYW5zZmVyYWJsZSwgd29ybGR3aWRlIGxpY2Vuc2UgdW5kZXIgWW91ciBwYXRlbnQgcmlnaHRzIHdoaWNoIGFyZSBvciB3b3VsZCBiZSBpbmZyaW5nZWQgYnkgYWxsIHRlY2huaWNhbGx5IGZlYXNpYmxlIGltcGxlbWVudGF0aW9ucyBvZiB0aGUgU3BlY2lmaWNhdGlvbiB0byBkZXZlbG9wLCBkaXN0cmlidXRlIGFuZCB1c2UgYSBDb21wbGlhbnQgSW1wbGVtZW50YXRpb24uCgpcaXRlbcpXaXRoIHJlc3BlY3QgdG8gYW55IHBhdGVudCBjbGFpbXMgb3duZWQgYnkgU3VuIGFuZCBjb3ZlcmVkIGJ5IHRoZSBsaWNlbnNlIGdyYW50ZWQgdW5kZXIgc3VicGFyYWdyYXBoIDIsIHdoZXRoZXIgb3Igbm90IHRoZWlyIGluZnJpbmdlbWVudCBjYW4gYmUgYXZvaWRlZCBpbiBhIHRlY2huaWNhbGx5IGZlYXNpYmxlIG1hbm5lciB3aGVuIGltcGxlbWVudGluZyB0aGUgU3BlY2lmaWNhdGlvbiwgc3VjaCBsaWNlbnNlIHNoYWxsIHRlcm1pbmF0ZSB3aXRoIHJlc3BlY3QgdG8gc3VjaCBjbGFpbXMgaWYgWW91IGluaXRpYXRlIGEgY2xhaW0gYWdhaW5zdCBTdW4gdGhhdCBpdCBoYXMsIGluIHRoZSBjb3Vyc2Ugb2YgcGVyZm9ybWluZyBpdHMgcmVzcG9uc2liaWxpdGllcyBhcyB0aGUgU3BlY2lmaWNhdGlvbiBMZWFkLCBpbmR1Y2VkIGFueSBvdGhlciBlbnRpdHkgdG8gaW5mcmluZ2UgWW91ciBwYXRlbnQgcmlnaHRzLgoKXGl0ZW3KQWxzbyB3aXRoIHJlc3BlY3QgdG8gYW55IHBhdGVudCBjbGFpbXMgb3duZWQgYnkgU3VuIGFuZCBjb3ZlcmVkIGJ5IHRoZSBsaWNlbnNlIGdyYW50ZWQgdW5kZXIgc3VicGFyYWdyYXBoIDIgYWJvdmUsIHdoZXJlIHRoZSBpbmZyaW5nZW1lbnQgb2Ygc3VjaCBjbGFpbXMgY2FuIGJlIGF2b2lkZWQgaW4gYSB0ZWNobmljYWxseSBmZWFzaWJsZSBtYW5uZXIgd2hlbiBpbXBsZW1lbnRpbmcgdGhlIFNwZWNpZmljYXRpb24gc3VjaCBsaWNlbnNlLCB3aXRoIHJlc3BlY3QgdG8gc3VjaCBjbGFpbXMsIHNoYWxsIHRlcm1pbmF0ZSBpZiBZb3UgaW5pdGlhdGUgYSBjbGFpbSBhZ2FpbnN0IFN1biDKdGhhdCBpdHMgbWFraW5nLCBoYXZpbmcgbWFkZSwgdXNpbmcsIG9mZmVyaW5nIHRvIHNlbGwsIHNlbGxpbmcgb3IgaW1wb3J0aW5nIGEgQ29tcGxpYW50IEltcGxlbWVudGF0aW9uIGluZnJpbmdlcyBZb3VyIHBhdGVudCByaWdodHMuClxlbmR7ZW51bWVyYXRlfQoKXGl0ZW0gRGVmaW5pdGlvbnMuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBBZ3JlZW1lbnQ6IMpcbHFcbHEgSW5kZXBlbmRlbnQgCkltcGxlbWVudGF0aW9uXHJxXHJxXCBzaGFsbCBtZWFuIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTcGVjaWZpY2F0aW9uIHRoYXQgCm5laXRoZXIgZGVyaXZlcyBmcm9tIGFueSBvZiBTdW4ncyDKc291cmNlIGNvZGUgb3IgYmluYXJ5IGNvZGUgbWF0ZXJpYWxzIG5vciwgCmV4Y2VwdCB3aXRoIGFuIGFwcHJvcHJpYXRlIGFuZCBzZXBhcmF0ZSBsaWNlbnNlIGZyb20gU3VuLCBpbmNsdWRlcyBhbnkgb2YgU3VuJ3MgCnNvdXJjZSBjb2RlIG9yIGJpbmFyeSBjb2RlIG1hdGVyaWFsczsgXGxxXGxxIExpY2Vuc29yIE5hbWUgU3BhY2VccnFccnFcIHNoYWxsIAptZWFuIHRoZSBwdWJsaWMgY2xhc3Mgb3IgaW50ZXJmYWNlIGRlY2xhcmF0aW9ucyB3aG9zZSBuYW1lcyBiZWdpbiB3aXRoIFxscVxscSAKamF2YVxycVxycSwgXGxxXGxxIGphdmF4XHJxXHJxLCBcbHFcbHEgY29tLnN1blxycVxycVwgb3IgdGhlaXIgZXF1aXZhbGVudHMgaW4gCmFueSBzdWJzZXF1ZW50IG5hbWluZyBjb252ZW50aW9uIGFkb3B0ZWQgYnkgU3VuIMp0aHJvdWdoIHRoZSBKYXZhIENvbW11bml0eSAKUHJvY2Vzcywgb3IgYW55IHJlY29nbml6ZWQgc3VjY2Vzc29ycyBvciByZXBsYWNlbWVudHMgdGhlcmVvZjsgYW5kIFxscVxscSAKVGVjaG5vbG9neSBDb21wYXRpYmlsaXR5IEtpdFxycVxycVwgb3IgXGxxXGxxIFRDS1xycVxycVwgc2hhbGwgbWVhbiB0aGUgdGVzdCAKc3VpdGUgYW5kIGFjY29tcGFueWluZyBUQ0sgVXNlcidzIEd1aWRlIHByb3ZpZGVkIGJ5IFN1biDKd2hpY2ggY29ycmVzcG9uZHMgdG8gCnRoZSBTcGVjaWZpY2F0aW9uIGFuZCB0aGF0IHdhcyBhdmFpbGFibGUgZWl0aGVyIChpKSBmcm9tIFN1bidzIDEyMCBkYXlzIGJlZm9yZSAKdGhlIGZpcnN0IHJlbGVhc2Ugb2YgWW91ciBJbmRlcGVuZGVudCBJbXBsZW1lbnRhdGlvbiB0aGF0IGFsbG93cyBpdHMgdXNlIGZvciAKY29tbWVyY2lhbCBwdXJwb3Nlcywgb3IgKGlpKSBtb3JlIHJlY2VudGx5IHRoYW4gMTIwIGRheXMgZnJvbSBzdWNoIHJlbGVhc2UgYnV0IAphZ2FpbnN0IHdoaWNoIFlvdSBlbGVjdCB0byB0ZXN0IFlvdXIgaW1wbGVtZW50YXRpb24gb2YgdGhlIFNwZWNpZmljYXRpb24uClxlbmR7ZW51bWVyYXRlfQoKVGhpcyBBZ3JlZW1lbnQgd2lsbCB0ZXJtaW5hdGUgaW1tZWRpYXRlbHkgd2l0aG91dCBub3RpY2UgZnJvbSBTdW4gaWYgeW91IGJyZWFjaCB0aGUgQWdyZWVtZW50IG9yIGFjdCBvdXRzaWRlIHRoZSBzY29wZSBvZiB0aGUgbGljZW5zZXMgZ3JhbnRlZCBhYm92ZS4KCntcYmZzZXJpZXMgVFJBREVNQVJLU30KCk5vIHJpZ2h0LCB0aXRsZSwgb3IgaW50ZXJlc3QgaW4gb3IgdG8gYW55IHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHRyYWRlIG5hbWVzIG9mIFN1biBvciBTdW4ncyBsaWNlbnNvcnMgaXMgZ3JhbnRlZCBoZXJldW5kZXIuICBTdW4sIFN1biBNaWNyb3N5c3RlbXMsIHRoZSBTdW4gbG9nbywgSmF2YSwgIGFyZSB0cmFkZW1hcmtzIG9yIHJlZ2lzdGVyZWQgdHJhZGVtYXJrcyBvZiBTdW4gTWljcm9zeXN0ZW1zLCBJbmMuIGluIHRoZQpVLlMuIGFuZCBvdGhlciBjb3VudHJpZXMuCgp7XGJmc2VyaWVzIERJU0NMQUlNRVIgT0YgV0FSUkFOVElFU30KClRIRSBTUEVDSUZJQ0FUSU9OIElTIFBST1ZJREVEIFxscVxscSBBUyBJU1xycVxycS4gU1VOIE1BS0VTIE5PIFJFUFJFU0VOVEFUSU9OUyBPUiBXQVJSQU5USUVTLCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPLCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UsIE5PTi1JTkZSSU5HRU1FTlQgKElOQ0xVRElORyBBUyBBIENPTlNFUVVFTkNFIE9GIEFOWSBQUkFDVElDRSBPUiBJTVBMRU1FTlRBVElPTiBPRiBUSEUgU1BFQ0lGSUNBVElPTiksIE9SIFRIQVQgVEhFIENPTlRFTlRTIE9GIFRIRSBTUEVDSUZJQ0FUSU9OIEFSRSBTVUlUQUJMRSBGT1IgQU5ZIFBVUlBPU0UuIMpUaGlzIGRvY3VtZW50IGRvZXMgbm90IHJlcHJlc2VudCBhbnkgY29tbWl0bWVudCB0byByZWxlYXNlIG9yIGltcGxlbWVudCBhbnkgcG9ydGlvbiBvZiB0aGUgU3BlY2lmaWNhdGlvbiBpbiBhbnkgcHJvZHVjdC4gSW4gYWRkaXRpb24sIHRoZSBTcGVjaWZpY2F0aW9uIGNvdWxkIGluY2x1ZGUgdGVjaG5pY2FsIGluYWNjdXJhY2llcyBvciB0eXBvZ3JhcGhpY2FsIGVycm9ycy4KCntcYmZzZXJpZXMgTElNSVRBVElPTiBPRiBMSUFCSUxJVFl9CgpUTyBUSEUgRVhURU5UIE5PVCBQUk9ISUJJVEVEIEJZIExBVywgSU4gTk8gRVZFTlQgV0lMTCBTVU4gT1IgSVRTIExJQ0VOU09SUyBCRSBMSUFCTEUgRk9SIEFOWSBEQU1BR0VTLCBJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OLCBMT1NUIFJFVkVOVUUsIFBST0ZJVFMgT1IgREFUQSwgT1IgRk9SIFNQRUNJQUwsIElORElSRUNULCBDT05TRVFVRU5USUFMLCBJTkNJREVOVEFMIE9SIFBVTklUSVZFIERBTUFHRVMsIEhPV0VWRVIgQ0FVU0VEIEFORCBSRUdBUkRMRVNTIE9GIFRIRSBUSEVPUlkgT0YgTElBQklMSVRZLCBBUklTSU5HIE9VVCBPRiBPUiBSRUxBVEVEIElOIEFOWSBXQVkgVE8gWU9VUiBIQVZJTkcsIElNUEVMRU1FTlRJTkcgT1IgT1RIRVJXSVNFIFVTSU5HIFVTSU5HIMpUSEUgU1BFQ0lGSUNBVElPTiwgRVZFTiBJRiBTVU4gQU5EL09SIElUUyBMSUNFTlNPUlMgSEFWRSBCRUVOIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KCllvdSB3aWxsIGluZGVtbmlmeSwgaG9sZCBoYXJtbGVzcywgYW5kIGRlZmVuZCBTdW4gYW5kIGl0cyBsaWNlbnNvcnMgZnJvbSBhbnkgY2xhaW1zIGFyaXNpbmcgb3IgcmVzdWx0aW5nIGZyb206IChpKSB5b3VyIHVzZSBvZiB0aGUgU3BlY2lmaWNhdGlvbjsgKGlpKSB0aGUgdXNlIG9yIGRpc3RyaWJ1dGlvbiBvZiB5b3VyIEphdmEgYXBwbGljYXRpb24sIGFwcGxldCBhbmQvb3IgaW1wbGVtZW50YXRpb247IGFuZC9vciAoaWlpKSBhbnkgY2xhaW1zIHRoYXQgbGF0ZXIgdmVyc2lvbnMgb3IgcmVsZWFzZXMgb2YgYW55IFNwZWNpZmljYXRpb24gZnVybmlzaGVkIHRvIHlvdSBhcmUgaW5jb21wYXRpYmxlIHdpdGggdGhlIFNwZWNpZmljYXRpb24gcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoaXMgbGljZW5zZS4gCgp7XGJmc2VyaWVzIFJFU1RSSUNURUQgUklHSFRTIExFR0VORH0KClUuUy4gR292ZXJubWVudDogSWYgdGhpcyBTcGVjaWZpY2F0aW9uIGlzIGJlaW5nIGFjcXVpcmVkIGJ5IG9yIG9uIGJlaGFsZiBvZiB0aGUgVS5TLiBHb3Zlcm5tZW50IG9yIGJ5IGEgVS5TLiBHb3Zlcm5tZW50IHByaW1lIGNvbnRyYWN0b3Igb3Igc3ViY29udHJhY3RvciAoYXQgYW55IHRpZXIpLCB0aGVuIHRoZSBHb3Zlcm5tZW50J3MgcmlnaHRzIGluIHRoZSBTb2Z0d2FyZSBhbmQgYWNjb21wYW55aW5nIGRvY3VtZW50YXRpb24gc2hhbGwgYmUgb25seSBhcyBzZXQgZm9ydGggaW4gdGhpcyBsaWNlbnNlOyB0aGlzIGlzIGluIGFjY29yZGFuY2Ugd2l0aCA0OCBDLkYuUi4gMjI3LjcyMDEgdGhyb3VnaCAyMjcuNzIwMi00IChmb3IgRGVwYXJ0bWVudCBvZiBEZWZlbnNlIChEb0QpIGFjcXVpc2l0aW9ucykgYW5kIHdpdGggNDggQy5GLlIuIDIuMTAxIGFuZCAxMi4yMTIgKGZvciBub24tRG9EIGFjcXVpc2l0aW9ucykuCgp7XGJmc2VyaWVzIFJFUE9SVH0KCklmIHlvdSBwcm92aWRlIFN1biB3aXRoIGFueSBjb21tZW50cyBvciBzdWdnZXN0aW9ucyBjb25jZXJuaW5nIHRoZSBTcGVjaWZpY2F0aW9uIChcbHFcbHEgRmVlZGJhY2tccnFccnEpLCB5b3UgaGVyZWJ5OiAoaSkgYWdyZWUgdGhhdCBzdWNoIEZlZWRiYWNrIGlzIHByb3ZpZGVkIG9uIGEgbm9uLXByb3ByaWV0YXJ5IGFuZCBub24tY29uZmlkZW50aWFsIGJhc2lzLCBhbmQgKGlpKSBncmFudCBTdW4gYSBwZXJwZXR1YWwsIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgZnVsbHkgcGFpZC11cCwgaXJyZXZvY2FibGUgbGljZW5zZSwgd2l0aCB0aGUgcmlnaHQgdG8gc3VibGljZW5zZSB0aHJvdWdoIG11bHRpcGxlIGxldmVscyBvZiBzdWJsaWNlbnNlZXMsIHRvIGluY29ycG9yYXRlLCBkaXNjbG9zZSwgYW5kIHVzZSB3aXRob3V0IGxpbWl0YXRpb24gdGhlIEZlZWRiYWNrIGZvciBhbnkgcHVycG9zZS4KCntcYmZzZXJpZXMgR0VORVJBTCBURVJNU30KCkFueSBhY3Rpb24gcmVsYXRlZCB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJlIGdvdmVybmVkIGJ5IENhbGlmb3JuaWEgbGF3IGFuZCBjb250cm9sbGluZyBVLlMuIGZlZGVyYWwgbGF3LiBUaGUgVS5OLiBDb252ZW50aW9uIGZvciB0aGUgSW50ZXJuYXRpb25hbCBTYWxlIG9mIEdvb2RzIGFuZCB0aGUgY2hvaWNlIG9mIGxhdyBydWxlcyBvZiBhbnkganVyaXNkaWN0aW9uIHdpbGwgbm90IGFwcGx5LgoKVGhlIFNwZWNpZmljYXRpb24gaXMgc3ViamVjdCB0byBVLlMuIGV4cG9ydCBjb250cm9sIGxhd3MgYW5kIG1heSBiZSBzdWJqZWN0IHRvIGV4cG9ydCBvciBpbXBvcnQgcmVndWxhdGlvbnMgaW4gb3RoZXIgY291bnRyaWVzLiBMaWNlbnNlZSBhZ3JlZXMgdG8gY29tcGx5IHN0cmljdGx5IHdpdGggYWxsIHN1Y2ggbGF3cyBhbmQgcmVndWxhdGlvbnMgYW5kIGFja25vd2xlZGdlcyB0aGF0IGl0IGhhcyB0aGUgcmVzcG9uc2liaWxpdHkgdG8gb2J0YWluIHN1Y2ggbGljZW5zZXMgdG8gZXhwb3J0LCByZS1leHBvcnQgb3IgaW1wb3J0IGFzIG1heSBiZSByZXF1aXJlZCBhZnRlciBkZWxpdmVyeSB0byBMaWNlbnNlZS4KClRoaXMgQWdyZWVtZW50IGlzIHRoZSBwYXJ0aWVzJyBlbnRpcmUgYWdyZWVtZW50IHJlbGF0aW5nIHRvIGl0cyBzdWJqZWN0IG1hdHRlci4gSXQgc3VwZXJzZWRlcyBhbGwgcHJpb3Igb3IgY29udGVtcG9yYW5lb3VzIG9yYWwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9ucywgcHJvcG9zYWxzLCBjb25kaXRpb25zLCByZXByZXNlbnRhdGlvbnMgYW5kIHdhcnJhbnRpZXMgYW5kIHByZXZhaWxzIG92ZXIgYW55IGNvbmZsaWN0aW5nIG9yIGFkZGl0aW9uYWwgdGVybXMgb2YgYW55IHF1b3RlLCBvcmRlciwgymFja25vd2xlZGdtZW50LCBvciBvdGhlciBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIHBhcnRpZXMgcmVsYXRpbmcgdG8gaXRzIHN1YmplY3QgbWF0dGVyIGR1cmluZyB0aGUgdGVybSBvZiB0aGlzIEFncmVlbWVudC4gTm8gbW9kaWZpY2F0aW9uIHRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYmUgYmluZGluZywgdW5sZXNzIGluIHdyaXRpbmcgYW5kIHNpZ25lZCBieSBhbiBhdXRob3JpemVkIHJlcHJlc2VudGF0aXZlIG9mIGVhY2ggcGFydHkuCgpSZXYuIEFwcmlsLCAyMDA2ClxlbmR7Zmx1c2hsZWZ0fQ==