PAM Primer |
PHN0eWxlPiAKc3Bhbi5jYXB0aW9uIHsgCiBkaXNwbGF5OmJsb2NrOyAKIHdpZHRoOjU4MHB4OyAKIGNvbG9yOmdyZWVuOyAKIG1hcmdpbjouNWVtOyAKfSAKPC9zdHlsZT4gCjxoMj5BIGJyaWVmIGhpc3Rvcnkgb2YgUEFNIGFuZCBQQU0tcmVsYXRlZCBpc3N1ZXM8L2gyPiAKUi5FLiBTb2prYSBhbmQgPGEgaHJlZj0iL3BhbmRwL3Blb3BsZS9wZW9wbGUuaHRtP3BlcnNvbmlkPTMzMTEiPlIuRC4gTGVudHo8L2E+IAo8aDM+QWJzdHJhY3Q8L2gzPiAKPHA+SXJyaWdhdGVkIGNyb3AgcHJvZHVjdGlvbiBpcyBjcml0aWNhbCB0byBnbG9iYWwgYWdyaWN1bHR1cmFsIG91dHB1dC4gClN1cmZhY2UgaXJyaWdhdGlvbiwgbW9zdGx5IGZ1cnJvdyBpcnJpZ2F0aW9uLCBhY2NvdW50cyBmb3IgJmd0OzYwJSBvZiBFYXJ0aCdzIAo2MDAgbWlsbGlvbiBpcnJpZ2F0ZWQgYWNyZXMgKDI0MCBtaWxsaW9uIGhlY3RhcmVzKS4gRXJvc2lvbiBzZXJpb3VzbHkgdGhyZWF0ZW5zIAppcnJpZ2F0aW9uJ3MgYWJpbGl0eSB0byBzdXN0YWluIGl0cyAyWCB5aWVsZCBhZHZhbnRhZ2UgYW5kIDNYIGVjb25vbWljIAphZHZhbnRhZ2Ugb3ZlciByYWluZmVkIGFncmljdWx0dXJlIGFuZCByaXNrcyBzZXJpb3VzIGVudmlyb25tZW50YWwgYW5kIApmb29kIHNlY3VyaXR5IGNvbnNlcXVlbmNlcyB0byBlYXJ0aCdzIG11c2hyb29taW5nIGh1bWFuIHBvcHVsYXRpb24uIEZ1cnJvdyAKaXJyaWdhdGlvbi1pbmR1Y2VkIGVyb3Npb24gaXMgbmVhcmx5IGVsaW1pbmF0ZWQgYnkgc21hbGwgYWRkaXRpb25zIG9mIHdhdGVyLXNvbHVibGUgCnBvbHlhY3J5bGFtaWRlIChQQU0pIHRvIGlycmlnYXRpb24gd2F0ZXIuIFBBTSBpcyBhbiBlbnZpcm9ubWVudGFsbHkgc2FmZSAKaW5kdXN0cmlhbCBmbG9jY3VsZW50IHdpZGVseSB1c2VkIGluIG11bmljaXBhbCB3YXRlciB0cmVhdG1lbnQsIHBhcGVyIG1hbnVmYWN0dXJpbmcsIApmb29kIHByb2Nlc3NpbmcgYW5kIG90aGVyIHNlbnNpdGl2ZSBhcHBsaWNhdGlvbnMuIE9uIGZyZXNobHkgY3VsdGl2YXRlZCAKZnVycm93cywgMSBsYi9hY3JlICgxIGtnL2hhKSBvZiBQQU0gYXBwbGllZCBpbiB0aGUgaXJyaWdhdGlvbiBpbmZsb3cgYXQgCjEwIHBwbSAoMTAgZy9tPHN1cD4zPC9zdXA+KSBkdXJpbmcgd2F0ZXIgYWR2YW5jZSAob25seSksIHJlZHVjZWQgc2VkaW1lbnQgCmluIHJ1bm9mZiA5NCUgYW5kIGluY3JlYXNlZCBuZXQgaW5maWx0cmF0aW9uIDE1JSBpbiAzIHlycyBvZiBBZ3JpY3VsdHVyYWwgClJlc2VhcmNoIFNlcnZpY2UgdGVzdHMgaW4gSWRhaG8gb24gUG9ydG5ldWYgc2lsdCBsb2FtIHNvaWxzIChjb2Fyc2Utc2lsdHksIAptaXhlZCwgbWVzaWMgRHVyaXhlcm9sbGljIENhbGNpb3J0aGlkcykuIFBBTSBwcm9kdWN0cyBhcmUgbm93IHJlZ2lzdGVyZWQgCnRocm91Z2hvdXQgdGhlIHdlc3Rlcm4gVW5pdGVkIFN0YXRlcy4gVGhlIE5hdHVyYWwgUmVzb3VyY2VzIENvbnNlcnZhdGlvbiAKU2VydmljZSBwdWJsaXNoZWQgYSBQQU0tdXNlIHByYWN0aWNlIHN0YW5kYXJkIGluIEphbnVhcnkgMTk5NS4gSW4gMTk5NSwgCnRoZSBmaXJzdCB5ZWFyIG9mIHByb2R1Y3QgY29tbWVyY2lhbGl6YXRpb24sIDUwLDAwMCBhY3JlcyAoMjAsMDAwIGhhKSBvZiAKZnVycm93IGlycmlnYXRlZCBsYW5kIHVzZWQgUEFNLCBoYWx0aW5nIGFuIGVzdGltYXRlZCAxIG1pbGxpb24gdG9ucyAoMC45IAptaWxsaW9uIG1ldHJpYyB0b25zKSBvZiBlcm9zaW9uLiBXaXRoIFBBTS11c2UsIGlycmlnYXRpb24gcmV0dXJuIGZsb3dzIApoYXZlIGhhZCByZWR1Y2VkIHNlZGltZW50LCBiaW9jaGVtaWNhbCBveHlnZW4gZGVtYW5kIChCT0QpLCB0b3RhbCBwaG9zcGhvcnVzLCAKYW5kIHZhcmlvdXMgcGVzdGljaWRlcy4gTWFueSBpcnJpZ2F0aW9uIGZhcm1lcnMgd2hvIGhhdmUgdmlld2VkIHRyYWRpdGlvbmFsIApjb25zZXJ2YXRpb24gcHJhY3RpY2VzIGFzIGN1bWJlcnNvbWUsIGludHJ1c2l2ZSwgb3IgaW5lZmZlY3R1YWwsIGFkb3B0IApQQU0tdXNlIGFzIGFuIGF0dHJhY3RpdmUgaW5leHBlbnNpdmUgYWx0ZXJuYXRpdmUuIFRoZSB0eXBpY2FsICQxNSB0byAkMzUvYWNyZSAKcGVyIGNyb3AgKCQzNy0kODgvaGEpIGNvc3RzLCBhcmUgcGFydGlhbGx5IG9yIGVudGlyZWx5IHJldHJpZXZlZCBieSBzYXZpbmdzIAppbiBlcm9zaW9uLXJlbGF0ZWQgZmllbGQgb3BlcmF0aW9ucywgaW1wcm92ZWQgaW5maWx0cmF0aW9uLCB3YXRlciBjb25zZXJ2YXRpb24sIApvciBjcm9wIHJlc3BvbnNlcy4gUGFtLXVzZSBpbiBpcnJpZ2F0aW9uIGlzIGV4cGVjdGVkIHRvIGV4cGFuZCByYXBpZGx5IAppbiAxOTk2LiAKPGhyIC8+IAo8aDM+SW50cm9kdWN0aW9uPC9oMz4gCjxwPlBvbHlhY3J5bGFtaWRlIHRyZWF0bWVudCBvZiBpcnJpZ2F0aW9uIHdhdGVyIG1heSBiZSB0aGUgZmFzdGVzdCBncm93aW5nIApjb25zZXJ2YXRpb24gdGVjaG5vbG9neSBpbiBpcnJpZ2F0ZWQgYWdyaWN1bHR1cmUuIFBBTXMgd2VyZSByZWdpc3RlcmVkIAppbiBtb3N0IFdlc3Rlcm4gc3RhdGVzIGJ5IGxhdGUgMTk5NCwgYW5kIHRoZSBOYXR1cmFsIFJlc291cmNlcyBDb25zZXJ2YXRpb24gClNlcnZpY2UgKE5SQ1MpIHB1Ymxpc2hlZCBhbiBpbnRlcmltIGNvbnNlcnZhdGlvbiBwcmFjdGljZSBzdGFuZGFyZCBmb3IgClBBTS11c2UgaW4gSmFudWFyeSAxOTk1IChBbm9ueW1vdXMsIDE5OTUpLiBJbiAxOTk1LCBpdHMgZmlyc3QgeWVhciBvZiBjb21tZXJjaWFsIAp1c2UsIGFib3V0IDIwLDAwMCBoYSB3ZXJlIFBBTS10cmVhdGVkLCBzYXZpbmcgYXMgbXVjaCBhcyBhIG1pbGxpb24gdG9ucyAKKDAuOSBtaWxsaW9uIG1ldHJpYyB0b25zKSBvZiBzb2lsIChTb2prYSBhbmQgTGVudHosIDE5OTYpLiBJcnJpZ2F0b3JzIGhhdmUgCmJlZW4gYXR0cmFjdGVkIHRvIHRoZSBuZXcgUEFNIHRlY2hub2xvZ3kgYmVjYXVzZSB0aGV5IHJlY29nbml6ZSBpcnJpZ2F0ZWQgCmFncmljdWx0dXJlJ3MgdmFsdWUsIHRoZSB0aHJlYXQgb2YgZXJvc2lvbiBvbiBmcmFnaWxlIGFyaWQtem9uZSBzb2lscywgCmFuZCBQQU0ncyBlZmZpY2FjeSBhbmQgZWFzZSBvZiB1c2UuPC9wPiAKPGgzPlNpZ25pZmljYW5jZSBvZiBJcnJpZ2F0ZWQgQWdyaWN1bHR1cmU8L2gzPiAKPHA+QWJvdXQgNjAwIG1pbGxpb24gYWNyZXMgKDI0MCBtaWxsaW9uIGhlY3RhcmVzKSBvciAxNS0xNyUgb2YgRWFydGgncyBjcm9wbGFuZCAKYXJlIGlycmlnYXRlZCwgbW9zdGx5IHN1cmZhY2UgaXJyaWdhdGVkIChIb2ZmbWFuIGV0IGFsLiwgMTk5MDsgR2xlaWNrLCAKMTk5MykuIEluIHRoZSBVbml0ZWQgU3RhdGVzIGFib3V0IDMyIG1pbGxpb24gYWNyZXMgKDEzIG1pbGxpb24gaGEpIG9mIGNyb3AgCmxhbmQgKDUzJSBvZiB0aGUgdG90YWwpIGFyZSBzdXJmYWNlIGlycmlnYXRlZCwgcHJpbWFyaWx5IGJ5IGZ1cnJvdyAoQW5vbnltb3VzLCAKMTk5NikuIFRoZSBwcm9wb3J0aW9uIG9mIHN1cmZhY2UgaXJyaWdhdGlvbiBnbG9iYWxseSBpcyB0aG91Z2h0IHRvIGJlIG11Y2ggCmhpZ2hlciB0aGFuIGluIHRoZSBVUywgc2luY2UgbW9zdCBvZiB0aGUgd29ybGQncyBpcnJpZ2F0ZWQgYWNyZXMgb2NjdXIgCmluIHVuZGVyZGV2ZWxvcGVkIGNvdW50cmllcyB0aGF0IGRvIG5vdCBoYXZlIHRoZSB0ZWNobm9sb2dpYyBiYXNlLCBydXJhbCAKcG93ZXIgb3IgZmluYW5jaWFsIHJlc291cmNlcyB0byBkZXZlbG9wIG1vcmUgYWR2YW5jZWQgbWV0aG9kcyBvZiBpcnJpZ2F0aW9uIApzdWNoIGFzIHNwcmlua2xlcnMgb3IgZHJpcC48L3A+IAo8cD5JcnJpZ2F0aW9uIG9jY3VycyBtb3N0bHkgaW4gYXJpZCBjbGltYXRlcyAoQnVja3MgZXQgYWwuLCAxOTkwKSB3aGVyZSBwaG90b3N5bnRoZXRpYyAKcmF0ZXMgYXJlIGhpZ2ggKGZldyBjbG91ZHMpLCBhbmQgZGlzZWFzZSwgaW5zZWN0LCBhbmQgd2VlZCBwcmVzc3VyZXMgYXJlIApsb3cuIFRoZXNlIGZhY3RvcnMgbWluaW1pemUgZnVuZ2ljaWRlLCBoZXJiaWNpZGUsIGFuZCBwZXN0aWNpZGUgaW5wdXRzLiAKQXJpZCBzb2lscyBzZWxkb20gbmVlZCBwb3Rhc3NpdW0gZmVydGlsaXplciBvciBsaW1lOyBmdXJ0aGVybW9yZSwgdGhlaXIgCm5ldXRyYWwgdG8gYmFzaWMgcEggYW5kIGxvdyBvcmdhbmljIG1hdHRlciBtaW5pbWl6ZSByZXF1aXJlZCByYXRlcyBvZiBzb2lsLWluY29ycG9yYXRlZCAKaGVyYmljaWRlcyAoUm9zcyBhbmQgTGVtYmksIDE5ODUpLjwvcD4gCjxwPkJlY2F1c2Ugd2F0ZXIgYW5kIG51dHJpZW50IGF2YWlsYWJpbGl0eSwgYXMgd2VsbCBhcyBwZXN0IGNvbnRyb2wgYXJlIG1vcmUgCmVhc2lseSBvcHRpbWl6ZWQgdW5kZXIgaXJyaWdhdGlvbiwgaXJyaWdhdGVkIGNvbW1vZGl0aWVzIHVzdWFsbHkgYXR0YWluIApoaWdoZXIgcXVhbGl0eSB0aGFuIHdpdGggcmFpbi1mZWQgcHJvZHVjdGlvbi4gQWRkaXRpb25hbGx5LCBpcnJpZ2F0aW9uIAppbiBhcmlkIGVudmlyb25tZW50cyBhbGxvd3MgY29tbWVyY2lhbCBwcm9kdWN0aW9uIG9mIG1hbnkgaGlnaCB2YWx1ZSBob3J0aWN1bHR1cmFsIAphbmQgb3RoZXIgY2FzaCBjcm9wcyB0aGF0IGNhbm5vdCBiZSBlY29ub21pY2FsbHkgZ3Jvd24gdW5kZXIgcmFpbmZlZCBjb25kaXRpb25zLiAKSXJyaWdhdGVkIHlpZWxkcyBhdmVyYWdlIHR3aWNlIHRoYXQgb2YgcmFpbi1mZWQgYWdyaWN1bHR1cmUsIGFjY291bnRpbmcgCmZvciAxLzMgb2YgYWxsIGNyb3AgeWllbGQsIGFuZCBoYWxmIG9mIGFsbCBjcm9wIHZhbHVlIChSYW5nZWxleSwgMTk4NzsgCkJ1Y2tzIGV0IGFsLiwgMTk5MCkuIEFib3V0IDUwIG1pbGxpb24gaGVjdGFyZXMgb2YgRWFydGgncyBiZXN0IGlycmlnYXRlZCAKbGFuZCBncm93cyAxLzMgb2YgaGVyIGVudGlyZSA8aT48dT5mb29kPC91PiBjcm9wPC9pPiAoVHJpYmUsIDE5OTQpLiA8L3A+IAo8aDM+RXJvc2lvbiBhbmQgSXJyaWdhdGVkIEFncmljdWx0dXJlJ3MgU3VzdGFpbmFiaWxpdHk8L2gzPiAKPHA+SXJyaWdhdGVkIGFncmljdWx0dXJlJ3MgaGlnaCBwcm9kdWN0aXZpdHkgbWFrZXMgcG9zc2libGUgdGhlIGZlZWRpbmcgYW5kIApjbG90aGluZyBvZiBFYXJ0aCdzIGV4cGxvZGluZyBwb3B1bGF0aW9uIG9uIGEgbWluaW11bSBleHRlbnQgb2YgYXJhYmxlIApsYW5kLiBZZXQsIHRoZSBhcmlkIGFuZCBzZW1pLWFyaWQgc29pbHMgc3VwcG9ydGluZyBtb3N0IGlycmlnYXRlZCBhZ3JpY3VsdHVyZSAKdHlwaWNhbGx5IGhhdmUgdGhpbiBlcm9kaWJsZSBzdXJmYWNlIGhvcml6b25zLiBGdXJyb3cgb3V0ZmxvdyBzb2lsIGxvc3NlcyAKb2YgMiB0byAyMiB0b25zL2FjcmUveXIgKDUgdG8gNTAgbWV0cmljIHRvbnMvaGEveXIpIGFyZSBjb21tb24gaW4gdGhlIFUuUy4gClBhY2lmaWMgTm9ydGh3ZXN0LCB3aXRoIDMgdG8gOCB0aW1lcyB0aGUgZmllbGQgYXZlcmFnZSBsb3NzIG9jY3VycmluZyBuZWFyIAppbmZsb3dzIChCZXJnIGFuZCBDYXJ0ZXIsIDE5ODA7IEtlbXBlciBldCBhbCwgMTk4NTsgRm9ybnN0cm9tIGFuZCBCb3JlbGxpLCAKMTk4NDsgVHJvdXQsIDE5OTYpLiBUaHVzLCBpcnJpZ2F0ZWQgYWdyaWN1bHR1cmUncyBwcm9kdWN0aXZpdHkgaXMgc2VyaW91c2x5IAplbmRhbmdlcmVkIGJ5IGFyaWQgc29pbCBlcm9kaWJpbGl0eSwgYW5kIGlycmlnYXRpb24taW5kdWNlZCBlcm9zaW9uIChDYXJ0ZXIsIAoxOTkzKS4gU29tZSAxLjIgYmlsbGlvbiBhY3JlcyAoMC41IHggMTA8c3VwPjk8L3N1cD4gaGEpIG9mIGdyYXNzbGFuZHMsIApyYWluIGZvcmVzdHMsIG9yIHdldGxhbmRzIHdvdWxkIGJlIG5lZWRlZCB0byByZXBsYWNlIGlycmlnYXRlZCBhZ3JpY3VsdHVyZSdzIApvdXRwdXQgaWYgaXJyaWdhdGlvbiB3ZXJlIGVsaW1pbmF0ZWQgKFNvamthLCAxOTk2KS4gPC9wPiAKPHA+TnVtZXJvdXMgY29uc2VydmF0aW9uIHByYWN0aWNlcyBmb3IgZnVycm93IGlycmlnYXRpb24gaGF2ZSBiZWVuIGRldmVsb3BlZCAKc2luY2UgMTk3MCAoU29qa2EsIDE5OTcpLiBTZXZlcmFsIGVsaW1pbmF0ZSAmZ3Q7ODAlIG9mIHJ1bm9mZi1jYXJyaWVkIHNlZGltZW50LiAKWWV0LCBmZXcgb2YgdGhlc2UgcHJhY3RpY2VzIGhhdmUgYmVlbiB3aWRlbHkgYWRvcHRlZCwgZXZlbiBhZnRlciB0d28gZGVjYWRlcyAKb2YgcHJvbW90aW9uIGFuZCBkZW1vbnN0cmF0aW9uLiBUaGlzIGlzIGxhcmdlbHkgYmVjYXVzZSByZXNpZHVlIHBsYWNlbWVudCwgCnJlZHVjZWQgdGlsbGFnZSBldGMuIGFyZSBvZnRlbiByZWdhcmRlZCBhcyBpbmNvbnZlbmllbnQgb3IgaW50cnVzaXZlIGJ5IApmdXJyb3cgaXJyaWdhdG9ycywgd2hvIHByZWZlciBzbW9vdGggY2xlYXIgZnVycm93cyB0byBjb252ZXkgd2F0ZXIuIENvbnNlcnZhdGlvbiAKcHJhY3RpY2VzIHRoYXQgcmVxdWlyZSBhZGRpdGlvbmFsIG9yIHVuZmFtaWxpYXIgZmllbGQgb3BlcmF0aW9ucyB0aGF0IG9jY3VyIApkdXJpbmcgb3RoZXJ3aXNlIGJ1c3kgcGVyaW9kcyBpbiB0aGUgZmFybWluZyBzY2hlZHVsZSBhcmUgYWxzbyBhdm9pZGVkLiAKRnVydGhlcm1vcmUsIHByYWN0aWNlcyB0aGF0IHJlZHVjZSBzZWRpbWVudCBsb3NzIDYwLTcwJSAobGlrZSBzZWRpbWVudCAKcG9uZHMsIHZlZ2V0YXRpdmUgZmlsdGVyIHN0cmlwcyBvciBidXJpZWQtcGlwZSB3YXN0ZSB3YXRlciBzeXN0ZW1zKSBzdGlsbCAKbG9zZSBtb3N0IG9mIHRoZSBjbGF5LXNpemVkIHNvbGlkcyAoQnJvd24gZXQgYWwuLCAxOTgxKSwgdGhlIHNvaWwgY29tcG9uZW50IAptb3N0IGNyaXRpY2FsIHRvIHN1c3RhaW5lZCBzb2lsIGZlcnRpbGl0eS4gVGhlc2Ugc29saWRzIGFsc28gYXJlIG1vc3QgbGlua2VkIAp0byBCT0QsIHBlc3RpY2lkZSwgYW5kIGV1dHJvcGh5aW5nIG51dHJpZW50IHByb2JsZW1zIGluIHJldHVybi1mbG93IHJlY2VpdmluZyAKd2F0ZXJzLiA8L3A+IAo8cD5QQU0tdXNlIGhhcyBwcm92ZW4gaGlnaGx5IGVmZmVjdGl2ZSBmb3IgZXJvc2lvbiBjb250cm9sIGFuZCBpbmZpbHRyYXRpb24gCmVuaGFuY2VtZW50LCBhbmQgaXMgd2VsbCByZWNlaXZlZCBieSBmdXJyb3cgaXJyaWdhdG9ycy4gVGhpcyBwYXBlciBzdW1tYXJpemVzIAp0aGUgYmFja2dyb3VuZCBvZiB0aGlzIG5ldyB0ZWNobm9sb2d5IGFuZCB0aGUgcmVzdWx0cyBhbmQgaW5zaWdodHMgb2J0YWluZWQgCm92ZXIgc2V2ZXJhbCB5ZWFycyBvZiBleHBlcmltZW50YXRpb24gd2l0aCBzbWFsbCBhbW91bnRzIG9mIHBvbHlhY3J5bGFtaWRlIAooUEFNKSBkaXNzb2x2ZWQgaW4gaXJyaWdhdGlvbiB3YXRlci4gV2UgaGF2ZSBhbHNvIGF0dGVtcHRlZCB0byBpdGVtaXplIAppbXBvcnRhbnQgcHJhY3RpY2FsIGNvbnNpZGVyYXRpb25zIGZvciBlZmZlY3RpdmUgYW5kIGVudmlyb25tZW50YWxseSByZXNwb25zaWJsZSAKdXNlIG9mIFBBTSBmb3IgZnVycm93IGVyb3Npb24gY29udHJvbC4gPC9wPiAKPGgzPlBBTSdzIE9yaWdpbnMgYW5kIFByb3BlcnRpZXM8L2gzPiAKPHA+Q2hlbWljYWwgc29pbCBjb25kaXRpb25lcnMgd2VyZSB1c2VkIGFzIGVhcmx5IGFzIFdvcmxkIFdhciBJSSB0byBhbGxvdyAKcmFwaWQgY29uc3RydWN0aW9uIG9mIHJvYWRzIGFuZCBydW53YXlzIHVuZGVyIGFkdmVyc2UgY29uZGl0aW9ucyAoV2lsc29uIAphbmQgQ3Jpc3AsIDE5NzUpLiBUaGUgdGVjaG5vbG9neSBmb3VuZCBpdHMgd2F5IGludG8gdGhlIFVTIGFncmljdWx0dXJhbCAKYXJlbmEgaW4gdGhlIDE5NTBzLCB3aXRoIGEgdmFyaWV0eSBvZiBzeW50aGV0aWMgY29tcG91bmRzLCBpbmNsdWRpbmcgdmFyaW91cyAKdHlwZXMgb2YgUEFNcyB0aGF0IHdlcmUgdXNlZCB0byBlbmhhbmNlIGFnZ3JlZ2F0ZSBzdGFiaWxpdHkgb2Ygc29pbCBpbiAKdGhlIHRpbGxlZCBzdXJmYWNlIGxheWVyIG9mIGFncmljdWx0dXJhbCBmaWVsZHMuIFZhcmlvdXMgdXNlcyBmb3Igc29pbCAKc3RydWN0dXJlIHN0YWJpbGl6YXRpb24gaW4gaG9ydGljdWx0dXJhbCwgYWdyb25vbWljLCBhbmQgY29uc3RydWN0aW9uIGFwcGxpY2F0aW9ucyAKd2VyZSBleHRlbnNpdmVseSByZXNlYXJjaGVkIHRocm91Z2ggdGhlIDE5NzBzIChBenphbSwgMTk4MDsgRGUgQm9vZHQgZXQgCmFsLiwgMTk5MzsgR2FicmllbHMsIDE5OTApLiA8L3A+IAo8cD4mcXVvdDtQb2x5YWNyeWxhbWlkZSZxdW90OyBhbmQgJnF1b3Q7UEFNJnF1b3Q7IGFyZSBnZW5lcmljIHRlcm1zLiBQQU1zIAphcmUgcG9seW1lcnMgbWFkZSB1cCBvZiBtYW55IHJlcGVhdGluZyBzdWJ1bml0cyAobW9ub21lcnMpLiBBcyB3aXRoIGFsbCAKcG9seW1lcnMsIHRoZSBwcm9wZXJ0aWVzIG9mIFBBTXMgYXJlIHZlcnkgZGVwZW5kYW50IG9uIHRoZSBzaXplIG9mIHRoZSAKcG9seW1lci4gQSBmYW1pbGlhciBhbmFsb2d5IGluIG5hdHVyZSBpcyB0aGUgd2F5IHNpbXBsZSBnbHVjb3NlIG1vbm9tZXJzIAphcmUgcHJvZ3Jlc3NpdmVseSBwb2x5bWVyaXplZCBpbnRvIHBvbHlzYWNoYXJpZGVzLCBwZWN0aW5zLCBzdGFyY2hlcywgYW5kIApjZWxsdWxvc2UgKHdvb2QpLiBQQU1zIGFsc28gdmFyeSBpbiBtb2xlY3VsYXIgc2l6ZSwgZGVwZW5kaW5nIG9uIHRoZSBudW1iZXIgCm9mIGFjcnlsYW1pZGUgbW9ub21lcnMgKEFNRCkgdGhhdCBhcmUgY29tYmluZWQgdG8gZm9ybSB0aGUgcG9seWFjcnlsYW1pZGUgCmNoYWluLiBJbiBhZGRpdGlvbiwgUEFNcyBjYW4gYmUgYWx0ZXJlZCB0aHJvdWdoIG1vZGlmaWNhdGlvbiBvZiBzb21lIG9mIAp0aGUgc3VidW5pdHMuPC9wPiAKPHA+VGhlIG1vc3QgY29tbW9uIHJhdyBtYXRlcmlhbCBmb3IgcG9seWFjcnlsYW1pZGUgc3ludGhlc2lzIGlzIG5hdHVyYWwgCmdhcywgYSByZXNvdXJjZSBvZnRlbiBidXJuZWQgb2ZmIGF0IHBldHJvbGV1bSB3ZWxsIGhlYWRzLiBUaGUgUEFNcyB1c2VkIAppbiBpcnJpZ2F0aW9uIHdhdGVyIHRvIGZpZ2h0IGVyb3Npb24gYXJlIGNvcG9seW1lcnMuIFRoZXkgY29uc2lzdCBvZiBoaWdoIAptb2xlY3VsYXIgd2VpZ2h0IHBvbHlhY3J5bGFtaWRlLCB0eXBpY2FsbHkgMTItMTUgTWcvbW9sZSAoJmd0OzE1MCwwMDAgQU1EIAptb25vbWVyIHVuaXRzIHBlciBtb2xlY3VsZSksIHdpdGggc3Vic3RpdHV0aW9uIG9mIGZ1bmN0aW9uYWwgZ3JvdXBzIGluIAphYm91dCBvbmUgaW4gZml2ZSBBTUQgbW9ub21lciB1bml0cyAoRmlnLiAxKS48L3A+IAo8aW1nIHNyYz0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wcmVzZW50YXRpb25zLzE5OTZzbGlkZXMvc2xpZGUxMC5qcGciPiAKPHNwYW4gY2xhc3M9ImNhcHRpb24iPjxzdHJvbmc+RmlndXJlIDE8L3N0cm9uZz4gRGVwaWN0aW9uIG9mIGFuIGluZGl2aWR1YWwgYWNyeWxhbWlkZSBtb25vbWVyIGNvbXBvbmVudCBhcyAKZm91bmQgaW4gYSBwb2x5YWNyeWxhbWlkZSBtb2xlY3VsZS4gU3Vic3RpdHV0aW9uIG9mIHRoZSBzb2RpdW0gZm9ybWF0ZSAKZnVuY3Rpb25hbCBncm91cCBmb3IgdGhlIGFtaWRlIGdyb3VwLCBhcyBvY2N1cnMgaW4gYWJvdXQgb25lIGluIGZpdmUgcG9seW1lciAKdW5pdHMgaXMgc2hvd24uIFRoaXMgaXMgdGhlIHN1YnN0aXR1dGlvbiB0aGF0LCB3aGVuIHNvZGl1bSBkaXNzb2NpYXRlcyAKZnJvbSB0aGUgY29wb2x5bWVyIGNoYWluLCBwcm92aWRlcyBhIG5ldCBuZWdhdGl2ZSBjaGFyZ2Ugb24gdGhlICZxdW90O1BBTSZxdW90OyAKbW9sZWN1bGUuPC9zcGFuPiAKPHA+VGhpcyBpbXBhcnRzIGEgbmV0IG5lZ2F0aXZlIApjaGFyZ2UuIFRoZSBQQU1zIHVzZWQgaW4gdGhlIElkYWhvIHdvcmsgdHlwaWNhbGx5IGhhZCBhIG5lZ2F0aXZlIGNoYXJnZSAKZGVuc2l0eSBvZiBhYm91dCAxOCUgKGllIHN1YnN0aXR1dGlvbnMgaW4gYWJvdXQgMSBvZiBldmVyeSA1IG1vbm9tZXJzKS4gCkluIHRoZXNlIFBBTXMsIG9uZSBpbiBmaXZlIGFtaWRlIGdyb3VwcyBpcyByZXBsYWNlZCB3aXRoIHNvZGl1bSBmb3JtYXRlLiAKVGhlIHNvZGl1bSBjYXRpb24gZGlzc29jaWF0ZXMgaW4gd2F0ZXIsIGxlYXZpbmcgYSBuZWdhdGl2ZSBjaGFyZ2Ugb24gdGhlIApwb2x5bWVyIGZvciBlYWNoIGNhdGlvbiBkaXNzb2NpYXRlZC4gCjwvcD4gCjxwPkluIGl0cyBvcmlnaW5hbCBtb2RlIG9mIHVzZSBmb3J0eSB5ZWFycyBhZ28sIFBBTSBvciBvdGhlciBzb2lsIHN0YWJpbGl6ZXJzIAp3ZXJlIGFwcGxpZWQgYXQgcmF0ZXMgb2YgNTAwIHRvIDEwMDAgbGJzIHBlciBhY3JlICg1NjAtMTEyMCBrZy9oYSkuIFRoZXkgCndlcmUgdXN1YWxseSBzcHJheWVkIG9udG8gc29pbCwgYW5kIHJvdG90aWxsZWQgb3Igb3RoZXJ3aXNlIGluY29ycG9yYXRlZC4gClNvbWV0aW1lcyBtdWx0aXBsZSBhcHBsaWNhdGlvbnMgd2VyZSBuZWNlc3NhcnkgdG8gYWNoaWV2ZSB0aGUgYXBwbGljYXRpb24gCmxldmVsIHJlcXVpcmVkIHRvIHN0YWJpbGl6ZSB0aGUgc29pbCBhZ2dyZWdhdGVzIGNyZWF0ZWQgaW4gdGhlIHRpbGxhZ2UgCnByb2Nlc3MuIFRoZSBjb25jZXB0IHdhcyB0byBpbXByb3ZlIHRoZSB0aWxsYWdlIGxheWVyJ3Mgc29pbCBzdHJ1Y3R1cmUgCmFuZCBzdGFiaWxpdHkuIFRoZSBhcHBsaWNhdGlvbiByYXRlcyBuZWVkZWQgdG8gYWNoaWV2ZSBzdGFiaWxpemF0aW9uIG9mIAp0aGlzIHZvbHVtZSBvZiBzb2lsIHByb3ZlZCB1bmVjb25vbWljYWwgZm9yIGFsbCBidXQgaGlnaCB2YWx1ZSB1c2VzLiAKPC9wPiAKPHA+TnVtZXJvdXMgbGFib3JhdG9yeSBjb2x1bW4gc3R1ZGllcyBhbmQgbHlzaW1ldGVyIHN0dWRpZXMgd2VyZSBjb25kdWN0ZWQgCmluIHRoZSAxOTcwcyBhbmQgMTk4MHMgdG8gc3R1ZHkgUEFNIGVmZmVjdHMgb24gc29pbCBkaXNwZXJzaW9uLCBQQU0gYWRzb3JwdGlvbi1kZXNvcnB0aW9uIApwaGVub21lbmEsIGFuZCBpbmZpbHRyYXRpb24gZWZmZWN0cy4gRHVyaW5nIHRoaXMgcGVyaW9kIHRoZSBjaGVtaXN0cnkgb2YgCnBvbHlhY3J5bGFtaWRlIHN5bnRoZXNpcyBhbmQgY29wb2x5bWVyaXphdGlvbiBjb250aW51ZWQgdG8gaW1wcm92ZSwgYnJvYWRlbmluZyAKdGhlIGNob2ljZXMgb2YgcG9seWFjcnlsYW1pZGUgY29wb2x5bWVycyBhdmFpbGFibGUgZm9yIHVzZS4gU2luY2UgdGhlIGVhcmx5IAoxOTgwcywgc2V2ZXJhbCBwYXBlcnMgaGF2ZSByZXBvcnRlZCBpbmZpbHRyYXRpb24gYW5kIGVyb3Npb24gZWZmZWN0cyBmcm9tIApyYWluLXNpbXVsYXRvciBzdHVkaWVzIHdoZXJlIHNvaWwgd2FzIHByZXRyZWF0ZWQgd2l0aCBQQU0uPC9wPiAKPHA+RWZmZWN0cyBvZiBhIHNvaWwgY29uZGl0aW9uZXIgcGxhY2VkIGluIGZ1cnJvdyBpcnJpZ2F0aW9uIHdhdGVyIHdhcyAKZmlyc3QgcmVwb3J0ZWQgYnkgUGFnYW55YXMgKDE5NzUpLiBUaGUgcmVwb3J0IHJlZmVycmVkIG9ubHkgdmFndWVseSB0byAKdGhlIGNvbmRpdGlvbmVycyBhcyAmcXVvdDtLJnF1b3Q7IGNvbXBvdW5kcywgYWx0aG91Z2ggdGhlaXIgZGVzY3JpcHRpb24gCnN1Z2dlc3RzIHRoZXkgd2VyZSBQQU0tbGlrZSBjaGVtaWNhbHMuIFNtYWxsIGFtb3VudHMgcGxhY2VkIGluIHRoZSBhZHZhbmNpbmcgCmZ1cnJvdyBzdHJlYW0gd2VyZSB1c2VkIHRvIHByZXRyZWF0IHRoZSBmdXJyb3cuIEFmdGVyIHByZXRyZWF0bWVudCB0aGUgCmZ1cnJvd3Mgd2VyZSBpcnJpZ2F0ZWQsIHdpdGggZ3JlYXQgcmVkdWN0aW9ucyBpbiBlcm9zaW9uLiBNaXRjaGVsbCAoMTk4NikgCnJlcG9ydGVkIHVzZSBvZiBhbmlvbmljIFBBTXMgYXBwbGllZCBkdXJpbmcgdGhlIHN0cmVhbSBhZHZhbmNlIHBoYXNlIG9mIApmdXJyb3cgaXJyaWdhdGlvbiBhdCByYXRlcyBvZiAyNSwgNTAsIGFuZCAxNTAgcHBtLiBIaXMgZm9jdXMgd2FzIG9uIGluZmlsdHJhdGlvbiAKZWZmZWN0cywgYnV0IGluIGEgc2lkZSBvYnNlcnZhdGlvbiBoZSBub3RlZCB0aGF0IHNvaWwgZGlzcGVyc2lvbiB3YXMgcmVkdWNlZCAKYW5kIHJ1bm9mZiB3YXMgbmVhcmx5IGNsZWFyIGluIFBBTS10cmVhdGVkIGlycmlnYXRpb24gZnVycm93cy48L3A+IAo8cD5MZW50eiBldCBhbC4gKDE5OTIpIGdhdmUgdGhlIGZpcnN0IGRldGFpbGVkIHJlcG9ydCBvZiBQQU0tdXNlIAppbiBmdXJyb3cgaXJyaWdhdGlvbiBmb3IgZXJvc2lvbiBjb250cm9sIGFuZCBuZXQgaW5maWx0cmF0aW9uIGltcHJvdmVtZW50LiAKVGhlaXIgYXBwcm9hY2gsIGxpa2UgTWl0Y2hlbGwncyBpbiAxOTg2LCBpbnZvbHZlZCBQQU0gdHJlYXRtZW50IG9mIHRoZSAKZnVycm93IGFkdmFuY2Ugc3RyZWFtIChvbmx5KS4gRWZmaWNhY2lvdXMgdHJlYXRtZW50IHdhcyBwb3NzaWJsZSB3aXRoIG5ldCAKUEFNIGFwcGxpY2F0aW9uIHJhdGVzIG9mIG9ubHkgYWJvdXQgMSBsYi9hY3JlICgxIGtnL2hhKSBhcHBsaWVkIGluIHRoZSAKYWR2YW5jZSBzdHJlYW0gKG9ubHkpIGF0IDEwIHBwbS4gTWNDdXRjaGFuIGV0IGFsLiAoMTk5MykgcmVwb3J0ZWQgc2ltaWxhciAKZmluZGluZ3MsIGFsdGhvdWdoIHRoZWlyIGFwcHJvYWNoIGludm9sdmVkIGFwcGxpY2F0aW9uIG9mIFBBTSBhdCAyLjUgcHBtIApjb250aW51b3VzbHkgdGhyb3VnaG91dCB0aGUgaXJyaWdhdGlvbi48L3A+IAo8cD5UaGUgdmVyeSBzbWFsbCB0b3RhbCBhbW91bnRzIG9mIFBBTSBuZWVkZWQgdG8gYWNoaWV2ZSBkZXNpcmVkIHJlc3VsdHMsIAp3aGVuIGFwcGx5aW5nIFBBTSBpbiB0aGUgZXJvZGluZyBpcnJpZ2F0aW9uIHN0cmVhbSBoYXMgcHJvdmVuIHRvIGJlIGEgc2lnbmlmaWNhbnQgCmJyZWFrdGhyb3VnaC4gQXBwbHlpbmcgUEFNIGluIHRoZSBmdXJyb3cgd2F0ZXIgaXMgZWZmZWN0aXZlIGF0IGxvdyByYXRlcyAKYmVjYXVzZSBvbmx5IHRoZSB0aGluIGxheWVyIG9mIHNvaWwgaW1tZWRpYXRlbHkgYWZmZWN0ZWQgYnkgdGhlIGRpc3BlcnNpb24gCmFuZCBzaGVlciBvZiB0aGUgZnVycm93IHN0cmVhbSBpcyB0cmVhdGVkIGJ5IHdhdGVyIGluZmlsdHJhdGluZyBpbnRvIHRoZSAKc29pbCAoRmlnLiAyKS48L3A+IAo8aW1nIHNyYz0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wcmVzZW50YXRpb25zLzE5OTZzbGlkZXMvc2xpZGUxMy5qcGciPiAKPHNwYW4gY2xhc3M9ImNhcHRpb24iPjxzdHJvbmc+RmlndXJlIDI8L3N0cm9uZz4gU2NoZW1hdGljIGRlcGljdGlvbiBvZiBQQU0gZGVwb3NpdGlvbiBmcm9tIHRyZWF0ZWQgd2F0ZXIgb250byAKc29pbCBhZ2dyZWdhdGVzIGluIHRoZSBzdXJmYWNlIGZldyBtaWxsaW1ldGVycyBvZiBzb2lsIGluIGFuIGlycmlnYXRlZCAKZnVycm93Ljwvc3Bhbj4gCjxwPkEgc2ltcGxlIGNhbGN1bGF0aW9uIGRlbW9uc3RyYXRlcyBob3cgc3VjaCBsb3cgcmF0ZXMgY2FuIGJlIGVmZmVjdGl2ZS4gCkJhc2VkIG9uIHRoZSBvbGQgUEFNIGFwcGxpY2F0aW9uIHJhdGVzIG9mIDUwMCBsYnMvYWNyZSBpbmNvcnBvcmF0ZWQgaW4gCnRoZSB0aWxsYWdlIGxheWVyIChzdXJmYWNlIDYgaW5jaGVzLCBvciAxNSBjbSksIHRoZSBmYWN0IHRoYXQgd2F0ZXIgaW4gCmZ1cnJvd3Mgb25seSB3ZXRzIGFib3V0IDI1JSBvZiB0aGUgZmllbGQgc3VyZmFjZSBhcmVhLCBhbmQgdGhhdCBQQU0gb25seSAKcGVuZXRyYXRlcyBhYm91dCAxLzE2JnF1b3Q7ICgxLTIgbW0pIGludG8gdGhlIHNvaWwsIHdlIHNlZSB0aGF0OiA8L3A+IAo8cD4oNTAwIGxicy9hY3JlKSAoMjUlKSAoMSUpID0gMS4yNSBsYnMvYWNyZSA8L3A+IAo8cD5UaGUgcG90ZW50aWFsIG9mIGNyZWF0aW5nIHNpZ25pZmljYW50IGNoYW5nZXMgaW4gc29pbCByZXNwb25zZSB0byBpcnJpZ2F0aW9uIAp3YXRlciBhcHBsaWNhdGlvbiB3aXRoIHN1Y2ggc21hbGwgYW1vdW50cyBvZiBQQU0gaXMgd2hhdCBoYXMgZHJpdmVuIHRoZSAKZGV2ZWxvcG1lbnQgb2YgdGhpcyBuZXcgdGVjaG5vbG9neS4gPC9wPiAKPGgzPkdlbmVyYWwgTWV0aG9kb2xvZ3k8L2gzPiAKPHA+VGhlIGZpbmRpbmdzIGRpc2N1c3NlZCBoZXJlaW4gd2VyZSBvYnRhaW5lZCBsYXJnZWx5IGZyb20gYSBzZXJpZXMgb2Ygc3R1ZGllcyAKY29uZHVjdGVkIGZyb20gMTk5MSB0aHJvdWdoIDE5OTUgYXQgb3IgbmVhciB0aGUgVVNEQSBBZ3JpY3VsdHVyYWwgUmVzZWFyY2ggClNlcnZpY2UncyBOb3J0aHdlc3QgSXJyaWdhdGlvbiBhbmQgU29pbHMgUmVzZWFyY2ggTGFib3JhdG9yeSBpbiBLaW1iZXJseSwgCklkYWhvLiBTb2lscyBpbmNsdWRlZCBYZXJvbGxpYyBIYXBsYXJnaWRzIGFuZCBIYXBsb3hlcm9sbGljIER1cmFyZ2lkcywgCmJ1dCBtb3N0IHN0dWRpZXMgd2VyZSBvbiBQb3J0bmV1ZiBzaWx0IGxvYW0gKGNvYXJzZS1zaWx0eSwgbWl4ZWQsIG1lc2ljIApEdXJpeGVyb2xsaWMgQ2FsY2lvcnRoaWRzKS4gU3VyZmFjZSBob3Jpem9ucyBhbmQgZ2VuZXJhbCBwaHlzaWNhbCBhbmQgY2hlbWljYWwgCmNoYXJhY3RlcmlzdGljcyBvZiBhbGwgc29pbHMgd2VyZSBzaW1pbGFyLiBUZXh0dXJlcyB3ZXJlIHNpbHQgbG9hbXMgKDEwLTIxJSAKY2xheSwgNjAtNzUlIHNpbHQpLiBPcmdhbmljIG1hdHRlciByYW5nZWQgZnJvbSAxMC0xMyBnL2tnLiBTYXR1cmF0ZWQgcGFzdGUgCmV4dHJhY3QgRUMgd2FzIDAuNyB0byAxLjMgZFMvbSwgRVNQIHdhcyAxLjQgdG8gMS43LCBwSCB3YXMgNy42LTguMCB3aXRoIApDYUMwPHN1Yj4zPC9zdWI+IGVxdWl2YWxlbnQgb2YgMi04JS4gU2xvcGVzIHZhcmllZCBmcm9tIDAuNSB0byAzLjUlLCBidXQgCnVubGVzcyBub3RlZCBvdGhlcndpc2UsIGRhdGEgZ2VuZXJhbGx5IHJlZmxlY3Qgc2xvcGVzIG9mIDEgdG8gMS41JS4gPC9wPiAKPC9wPldhdGVyIHdhcyBhcHBsaWVkIGFzIGZ1cnJvdyBpcnJpZ2F0aW9uICh1c3VhbGx5IGVpdGhlciB2aWEgc3BpZ290ZWQgcGxhc3RpYyAKcGlwZSBvciBzaXBob24gdHViZXMpIHRvIGNvbnZlbnRpb25hbGx5IHRpbGxlZCBmaWVsZHMsIHVzdWFsbHkgZGlza2VkIGluIApBdXR1bW4gYW5kIFNwcmluZywgdGhlbiByb2xsZXIgaGFycm93ZWQgZm9sbG93aW5nIGluY29ycG9yYXRpb24gb2YgZmVydGlsaXplciAKYW5kIGhlcmJpY2lkZXMgcHJpb3IgdG8gcGxhbnRpbmcuIEZ1cnJvd3MgcmFuZ2VkIGZyb20gNTcwIHRvIDg2MCBmZWV0ICgxNzUgCnRvIDI2NCBtZXRlcnMpIGluIGxlbmd0aDsgdGhleSB2YXJpZWQgZnJvbSA0IHRvIDggaW5jaGVzICgxMCB0byAyMCBjbSkgCmluIGRlcHRoLCBkZXBlbmRpbmcgb24gY3JvcCBncm93biwgYW5kIHdlcmUgcHJlcGFyZWQgd2l0aCB3ZWlnaHRlZCA3NSBzaGFwaW5nIAp0b29scy4gRnVycm93IHNwYWNpbmcgdmFyaWVkIHdpdGggY3JvcHMsIHdoaWNoIGluY2x1ZGVkIGVkaWJsZSBkcnkgYmVhbnMgCihQaGFzZW9sdXMgdnVsZ2FyaXMpIEAgMjIgaW5jaGVzICg1NiBjbSksIGNvcm4gKFplYSBtYXlzKSBAIDMwIGluY2hlcyAoNzYgCmNtKSBhbmQgcG90YXRvIChTb2xhbnVtIHR1YmVyb3N1bSkgQCAzNiBpbmNoZXMgKDkxLjUgY20pLiBJcnJpZ2F0aW9uIHdhcyAKbm9ybWFsbHkgb24gZXZlcnkgb3RoZXIgZnVycm93IG9ubHksIHVzdWFsbHkgaW4gd2hlZWwtdHJhY2sgZnVycm93cy4gUGVyIApoZWN0YXJlIHNlZGltZW50LWxvc3MgYW5kIGluZmlsdHJhdGlvbiB3ZXJlIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHNwYWNpbmcgCmJldHdlZW4gaXJyaWdhdGVkIGZ1cnJvd3MuIElycmlnYXRpb24gd2F0ZXIgd2FzIHdpdGhkcmF3biBmcm9tIHRoZSBUd2luIApGYWxscyBDYW5hbCBDb21wYW55PHN1cD48YSBocmVmPSIjTl8yXyI+KDIpPC9hPjwvc3VwPiBzeXN0ZW0gYW5kIGhhZCBhbiAKZWxlY3RyaWNhbCBjb25kdWN0aXZpdHkgKEVDKSBvZiAwLjUgZFMvbSBhbmQgYSBzb2RpdW0gYWRzb3JwdGlvbiByYXRpbyAKKFNBUikgb2YgMC40IHRvIDAuNy4gTmV0IGluZmlsdHJhdGlvbiwgcnVub2ZmLCBhbmQgc2VkaW1lbnQtbG9zcyBtZWFzdXJlbWVudHMgCndlcmUgYWNjb21wbGlzaGVkIGJ5IHVzZSBvZiBwZXJpb2RpYyBmbG93IG1vbml0b3JpbmcgYW5kIHNhbXBsaW5nIGFuZCBhdXRvbWF0ZWQgCmRhdGEgYW5hbHlzaXMgc2ltaWxhciB0byBtZXRob2RzIGRlc2NyaWJlZCBpbiBkZXRhaWwgZWxzZXdoZXJlIChTb2prYSBldCAKYWwuIDE5OTIgYW5kIDE5OTQsIExlbnR6IGFuZCBTb2prYSwgMTk5NGEgYW5kIDE5OTUpLjwvcD4gCjxwPlBvbHlhY3J5bGFtaWRlIChQQU0pIGNvcG9seW1lciB1c2VkLCB1bmxlc3Mgbm90ZWQgb3RoZXJ3aXNlLCB3YXMgYSBkcnkgCmdyYW51bGFyIG1hdGVyaWFsIGhhdmluZyBhbiBhcHByb3hpbWF0ZSBtb2xlY3VsYXIgd2VpZ2h0IG9mIDEyLTE1IE1nL21vbGUsIAp3aXRoIGFuIDE4JSBuZWdhdGl2ZSBjaGFyZ2UgZGVuc2l0eSwgbWFudWZhY3R1cmVkIGJ5IENZVEVDIEluZHVzdHJpZXMgb2YgCldheW5lLCBOSi4gSXQgaXMgbWFya2V0ZWQgaW4gdGhlIFVTIGJ5IEFtZXJpY2FuIEN5YW5hbWlkIENvbXBhbnkgdW5kZXIgCnRoZSB0cmFkZSBuYW1lIFN1cGVyZmxvYyA4MzZBLiBOdW1lcm91cyBzaW1pbGFyIG1hdGVyaWFscywgZ3JhbnVsYXIsIGNvbXByZXNzZWQgCmNha2VzLCBoaWdoIGNvbmNlbnRyYXRlIGFxdWVvdXMgc29sdXRpb25zIGFuZCBvaWwtZW11bHNpZmllZCBQQU0gY29uY2VudHJhdGVzIAphcmUgd2lkZWx5IGF2YWlsYWJsZSB3b3JsZCB3aWRlLiBVbmxlc3Mgbm90ZWQgb3RoZXJ3aXNlLCBvdXIgbW9zdCBmcmVxdWVudCAKbWVhbnMgb2YgYXBwbGljYXRpb24gaW52b2x2ZWQgcHJlcGFyYXRpb24gb2YgbGlxdWlkIHN0b2NrIHNvbHV0aW9ucyBvZiAKMTIwMC0yNDAwIHBwbSAoZy9tPHN1cD4zPC9zdXA+KSBjb25jZW50cmF0aW9uIHdoaWNoIHdlcmUgbWV0ZXJlZCBpbnRvIGZ1cnJvdyAKc3RyZWFtIGZsb3dzIHRvIGFjaGlldmUgYSBjb25jZW50cmF0aW9uIG9mIDEwIHBwbSAoZy9tPHN1cD4zPC9zdXA+KSBpbiAKdGhlIGFkdmFuY2luZyB3YXRlciBmbG93IGJlZm9yZSBydW5vZmYgYmVnYW4uIFR5cGljYWwgZmxvdyByYXRlcyByYW5nZWQgCjMuNSB0byAxMCBncG0gKDEzIHRvIDM4IEwvbWluKSBkdXJpbmcgYWR2YW5jZSwgcmVkdWNlZCB0byAzLjUgdG8gNiBncG0gCigxMy0yMyBML21pbikgYXQgaW5pdGlhdGlvbiBvZiBydW5vZmYuIDwvcD4gCjxoMz5Db25zZXJ2YXRpb24gQmVuZWZpdHMsIE1vZGUgb2YgQWN0aW9uIGFuZCBDb3N0IDwvaDM+IAo8cD5Qb2x5YWNyeWxhbWlkZSAoUEFNKSBoYXMgYmVlbiBhbiBlZmZlY3RpdmUsIGVjb25vbWljYWwgZXJvc2lvbiBwcmV2ZW50YXRpdmUgCnVuZGVyIGEgdmFyaWV0eSBvZiBmaWVsZCBjb25kaXRpb25zIChGaWcuIDMpIHdoZW4gZGlzc29sdmVkIGF0IDEwIHBwbSAoZy9tPHN1cD4zPC9zdXA+KSAKaW4gdGhlIGFkdmFuY2UgcGhhc2UgKG9ubHkpIG9mIGZ1cnJvdyBpcnJpZ2F0aW9uIGluZmxvdyBzdHJlYW1zIChMZW50eiAKZXQgYWwuLCAxOTkyOyBMZW50eiBhbmQgU29qa2EsIDE5OTRiOyBMZW50eiwgMTk5NSkuIApQQU0gY29wb2x5bWVycyB3aXRoIG1vbGVjdWxhciB3ZWlnaHRzIG9mIDEyLTE1IE1nL21vbCBhbmQgY2hhcmdlIGRlbnNpdGllcyBvZiA4LTM1JSBhcmUgbW9zdCAKZWZmZWN0aXZlLjwvcD4gIAo8aW1nIHNyYz0iL1NQMlVzZXJGaWxlcy9QbGFjZS81MzY4MDAwMC9wcmVzZW50YXRpb25zLzE5OTZzbGlkZXMvc2xpZGUyMy5qcGciPiAKPHNwYW4gY2xhc3M9ImNhcHRpb24iPjxzdHJvbmc+RmlndXJlIDM8L3N0cm9uZz4gRXN0aW1hdGUgb2Ygc29pbCBzYXZlZCBhcyBhIGZ1bmN0aW9uIG9mIHNsb3BlIGZvciB0d2VsdmUgaG91ciAKaXJyaWdhdGlvbnMgb24gUG9ydG5ldWYgc2lsdCBsb2FtIHVzaW5nIGluZmxvd3Mgb2YgMjMtMzggTC9taW4gZm9yIGFuIGFwcHJveGltYXRlbHkgCjIwMCBtZXRlciBsb25nIGZpZWxkLjwvc3Bhbj4gCjxwPkFkdmFuY2luZyBmdXJyb3cgc3RyZWFtcyBjb250YWluaW5nIDEwIHBwbSAoZy9tPHN1cD4zPC9zdXA+KSBQQU0gcHJvdmlkZWQgCmEgOTQlIHJlZHVjdGlvbiBpbiBydW5vZmYtc2VkaW1lbnQgaW4gdGhyZWUgeWVhcnMgb2YgdGVzdHMgaW4gSWRhaG8gKExlbnR6IApldCBhbC4sIDE5OTI7IFNvamthIGFuZCBMZW50eiwgMTk5MzsgVHJvdXQgYW5kIExlbnR6LCAxOTkzOyBMZW50eiBhbmQgU29qa2EsIAoxOTk0YiwgU29qa2EgYW5kIExlbnR6LCAxOTkzLCAxOTk0YSkuIFdpdGggUEFNLXVzZSwgc2VkaW1lbnRzIHdlcmUgcmV0YWluZWQgCm9uIGZpZWxkcywgZXZlbiB3aXRoIGNvbnZlbnRpb25hbCBjbGVhbi10aWxsYWdlLCB1c2luZyBubyBvdGhlciBjb25zZXJ2YXRpb24gCnByYWN0aWNlcyAoTGVudHogYW5kIFNvamthLCAxOTk0YikuIFBBTSBpcyBhIHBvdGVudCBmbG9jY3VsZW50IHRoYXQgZWZmZWN0aXZlbHkgCnJldGFpbnMgbmVhcmx5IGFsbCBjbGF5LXNpemVkIG1hdGVyaWFsLiA8L3A+IAo8cD5QQU0sIHVzZWQgYWNjb3JkaW5nIHRvIHRoZSBOUkNTIHByYWN0aWNlIHN0YW5kYXJkIChBbm9ueW1vdXMsIDE5OTUpLCBpbmNyZWFzZWQgCmluZmlsdHJhdGlvbiAxNSUgb24gUG9ydG5ldWYgc2lsdCBsb2FtIChMZW50eiBldCBhbCwgMTk5MiwgVHJvdXQgYW5kIExlbnR6LCAKMTk5MzsgTGVudHogYW5kIFNvamthLCAxOTk0YjsgVHJvdXQgZXQgYWwuLCAxOTk1OyBTb2prYSBldCBhbC4sIDE5OTYpIGFuZCAKdXAgdG8gNTAlIG9uIGZpbmVyIHRleHR1cmVkIHNvaWxzIChNY0N1dGNoYW4gZXQgYWwuLCAxOTk0KS4gUEFNIGNhbiBpbmNyZWFzZSAKaW5pdGlhbCBpbmZpbHRyYXRpb24gb24gc3dlbGxpbmcgc29pbHMsIGJ1dCBtYXkgbm90IGFsd2F5cyBhZmZlY3QgbmV0IGluZmlsdHJhdGlvbiAKb2YgcHJvbG9uZ2VkIGlycmlnYXRpb25zIHNpbmNlIHN1YnNvaWwgc3dlbGxpbmcgYmxvY2tzIHdhdGVyIGVudHJ5IGFzIGFuIAppcnJpZ2F0aW9uIHByb2NlZWRzIChNaXRjaGVsbCwgMTk4NikuIEJlY2F1c2UgUEFNLXRyZWF0ZWQgZnVycm93cyBkaWQgbm90IAomcXVvdDtkb3duLWN1dCZxdW90OyAoaWUuIGVyb2RlIGEgZGVlcGVyIGNoYW5uZWwpLCB3YXRlciBpbmZpbHRyYXRlZCBpbiAKSWRhaG8gdGVzdHMgbW92ZWQgMjUlIGZ1cnRoZXIgbGF0ZXJhbGx5IGZyb20gNCBpbmNoICgxMCBjbSkgZGVlcCBmdXJyb3dzIApiZXR3ZWVuIGxldmVsIHNvaWwgYmVkcyAoTGVudHogZXQgYWwuLCAxOTkyKS4gVGh1cyBQQU0tdXNlIGNhbiBzYXZlIHdhdGVyIAppbiBlYXJseSBpcnJpZ2F0aW9ucyB3aGVuIG9ubHkgZW5vdWdoIG5lZWRzIHRvIGJlIGFwcGxpZWQgdG8gcmVhY2ggcGxhbnRlZCAKc2VlZHMgb3IgeW91bmcgc2VlZGxpbmdzLiA8L3A+IAo8cD5UaGUgbW9zdCBlZmZlY3RpdmUgYW5kIGVudmlyb25tZW50YWxseSBzYWZlIFBBTXMgYXJlIGxhcmdlIG5lZ2F0aXZlbHkgY2hhcmdlZCAKbW9sZWN1bGVzIChMZW50eiBldCBhbC4sIDE5OTMsIEJhcnZlbmlrLCAxOTk0KS4gSXQgaGFzIGJlZW4gc3VnZ2VzdGVkIHRoYXQgCmRpdmFsZW50IGNhdGlvbnMgaW4gd2F0ZXIgYnJpZGdlIHRoZSBQQU0gYW5kIHNvaWwsIGluY3JlYXNpbmcgc29pbCBjb2hlc2lvbiAKYW5kIHN0cmVuZ3RoZW5pbmcgYWdncmVnYXRlcyBjb250YWN0ZWQgaW4gdGhlIGZ1cnJvdyAoRGUgQm9vZHQgZXQgYWwuLCAKMTk5MDsgQmFydmVuaWssIDE5OTQsIFNvamthIGFuZCBMZW50eiwgMTk5NGIpLiBTb2lsIHBhcnRpY2xlcyBhdCB0aGUgZnVycm93J3MgCnNvaWwtd2F0ZXIgaW50ZXJmYWNlIGFyZSBib3VuZCB0b2dldGhlciwgcHJldmVudGluZyBkZXRhY2htZW50IGFuZCB0cmFuc3BvcnQgCm9mIHNlZGltZW50cyBpbiBydW5vZmYuIFNvaWwgZXJvZGliaWxpdHkgaXMgcmVkdWNlZCBieSBpbXByb3ZlZCBpbnRlci1hZ2dyZWdhdGUgCmJvbmRpbmcgYW5kIGJ5IHByb3RlY3Rpbmcgc3VyZmFjZSByb3VnaG5lc3MuIFBBTSBvbmx5IHBlbmV0cmF0ZXMgc29pbCAxIAp0byAyIHNpeHRlZW50aHMgb2YgYW4gaW5jaCAoYSBmZXcgbWlsbGltZXRlcnMpIGluIHRoZSBmdXJyb3cgKE1hbGlrIGV0IAphbC4sIDE5OTEpLiBUaGVzZSwgaG93ZXZlciwgYXJlIHRoZSBmZXcgbWlsbGltZXRlcnMgY3JpdGljYWwgdG8gdGhlIGVyb3Npb24gCnByb2Nlc3MuIFNpbmNlIHRoZSB3ZXR0ZWQgcGVyaW1ldGVyIG9ubHkgZXhwb3NlcyBhYm91dCAyNS0zMCUgb2YgdGhlIHNvaWwgCnN1cmZhY2UgdG8gZmxvd2luZyB3YXRlciwgUEFNJ3MgcHJvcGVydGllcyBhcmUgZWZmZWN0aXZlIGF0IHZlcnkgbG93IGFwcGxpY2F0aW9uIApyYXRlcywgdHlwaWNhbGx5IDEgbGIvYWNyZSAoMC45IGtnL2hhLikgPC9wPiAKPHA+UEFNIGlzIGEgc2V0dGxpbmcgYWdlbnQuIEl0IGZsb2NjdWxhdGVzIChjbHVzdGVycyB0b2dldGhlcikgZGlzcGVyc2VkIGNsYXkgCmFuZCBzaWx0IHBhcnRpY2xlcyBjYXJyaWVkIGluIHRoZSB0dXJiaWQgZmxvdywgZW5hYmxpbmcgdGhlbSB0byBzZXR0bGUgCnRvIHRoZSBmdXJyb3cgYm90dG9tIGluIGEgbG9vc2UgcGVydmlvdXMgbGF5ZXIuIEZsb2NjdWxhdGlvbiByZWR1Y2VzIHRoZSAKYW1vdW50IG9mIHN1c3BlbmRlZCBmaW5lcyB0aGF0IGVudGVyIGFuZCBwbHVnIHBvcmVzLCBkZWNyZWFzaW5nIGluZmlsdHJhdGlvbiAKaW4gdW50cmVhdGVkIHNlZGltZW50LWxhZGVuIHdhdGVyLiBQb3JlIGFwZXJ0dXJlIG1haW50ZW5hbmNlIHdhcyBjb25maXJtZWQgCmluIHRyZWF0ZWQgZnVycm93cyBieSBoaWdoZXIgaW5maWx0cmF0aW9uIHJhdGVzIHVuZGVyIHRlbnNpb24gY29tcGFyZWQgCnRvIGNvbnRyb2xzIChSb3NzIGV0IGFsLiwgMTk5NikuIEhpZ2hlciBuZXQgaW5maWx0cmF0aW9uIGRlY3JlYXNlcyBydW5vZmYgCnJhdGUgYW5kIGFtb3VudCwgZnVydGhlciByZWR1Y2luZyBzdHJlYW0gZm9yY2UsIGNhcnJ5aW5nIGNhcGFjaXR5LCBhbmQgCnRyYW5zcG9ydCB2b2x1bWUuIDwvcD4gCjxwPlBBTSdzIGxhcmdlIG1vbGVjdWxhciBzaXplIHNsaWdodGx5IGluY3JlYXNlcyB0aGUgdmlzY29zaXR5IGFuZCBzdXJmYWNlIAp0ZW5zaW9uIG9mIHdhdGVyIChNYWxpayBhbmQgTGV0ZXksIDE5OTIpLiBJdCBtYXkgYWxzbyBpbmR1Y2UgbGFtaW5hciBmbG93IApuZWFyIHRoZSBzb2lsLXdhdGVyIGludGVyZmFjZS4gRnVydGhlciByZXNlYXJjaCBuZWVkcyB0byBkZXRlcm1pbmUgdGhlIApleHRlbnQgdG8gd2hpY2ggdGhlc2UgY2hhbmdlcyBhZmZlY3QgcHJvcGFnYXRpb24gYW5kIHRyYW5zZmVyIG9mIHNoZWFyIApmb3JjZXMgY2F1c2luZyBkZXRhY2htZW50IG9mIHNvaWwgcGFydGljbGVzLiA8L3A+IAo8cD5QQU0gaXMgdXNlZCBtb3N0IG9mdGVuIGFzIGZvbGxvd3MgKEFub255bW91cywgMTk5NSk6IE9uZSBvZiBzZXZlcmFsIHJlZ2lzdGVyZWQgCnBvbHlhY3J5bGFtaWRlIGNvcG9seW1lciBwcm9kdWN0cyBpcyB1c2VkLiBUaGVzZSBQQU0gY29wb2x5bWVycyBhcmUgbGFyZ2UgCm1vbGVjdWxlcywgY29udGFpbmluZyAmZ3Q7MTUwLDAwMCBtb25vbWVyIHVuaXRzIHBlciBtb2xlY3VsZS4gVGhleSB0eXBpY2FsbHkgCmhhdmUgMTglIG5lZ2F0aXZlIGNoYXJnZSBkZW5zaXR5LiBVLlMuIHByb2R1Y3RzIGNvbnRhaW4gJmx0OzAuMDUlIGZyZWUgCih1bnJlYWN0ZWQpIGFjcnlsYW1pZGUgbW9ub21lciBieSB3ZWlnaHQgKCZsdDtPLjAyNSUgaW4gRXVyb3BlKS4gPC9wPiAKPHA+VGhlc2Ugd2F0ZXIgc29sdWJsZSBQQU1zIGFyZSBtZXRlcmVkIGludG8gaXJyaWdhdGlvbiBzdXBwbHkgZGl0Y2hlcywgZWl0aGVyIAphcyBjb25jZW50cmF0ZWQgc3RvY2sgc29sdXRpb25zLCBvciBhcyBkcnkgZ3JhbnVsZXMuIElmIGRyeSBncmFudWxlcyBhcmUgCm1ldGVyZWQgaW50byB0aGUgZmxvdywgb25lIG11c3QgYWxzbyBwcm92aWRlIHR1cmJ1bGVuY2UgaW4gdGhlIGhlYWQgZGl0Y2ggCmp1c3QgYmVsb3cgdGhlIHBvaW50IG9mIFBBTSBhZGRpdGlvbiB0byBwcm9tb3RlIHVuaWZvcm0gUEFNIGRpc3NvbHV0aW9uIAphbmQgZGlzdHJpYnV0aW9uLiBTdXBwbHktZGl0Y2ggUEFNIGNvbmNlbnRyYXRpb24gaXMgYnJvdWdodCB0byAxMCBwcG0gKDEwIApnL208c3VwPjM8L3N1cD4pIChMZW50eiBldCBhbC4sIDE5OTUpLiBUaGUgMTAgcHBtICgxMCBnL208c3VwPjM8L3N1cD4pIAp3YXRlciBpcyBkZWxpdmVyZWQgdG8gZHJ5IGZ1cnJvd3MgYXQgaW5mbG93IHJhdGVzIHRoYXQgcmFwaWRseSBhZHZhbmNlIAp3YXRlciBhY3Jvc3MgdGhlIGZpZWxkLiA8L3A+IAo8cD5JdCBpcyBlc3NlbnRpYWwgdGhhdCBubyB1bnRyZWF0ZWQgd2F0ZXIgd2V0IHRoZSBmdXJyb3cgYWhlYWQgb2YgdGhlIFBBTS10cmVhdGVkIApmbG93LiBVbnRyZWF0ZWQgd2F0ZXIgZGVzdHJveXMgc29pbCBzdHJ1Y3R1cmUgb2YgZXJvZGlibGUgc29pbHMgYmVmb3JlIApQQU0tdHJlYXRtZW50LCBncmVhdGx5IHJlZHVjaW5nIFBBTSdzIGVmZmVjdC4gV2V0IGZ1cnJvd3MgYWxzbyByZWR1Y2UgaW5maWx0cmF0aW9uIApvZiBQQU0tdHJlYXRlZCB3YXRlciB0aHJvdWdoIHRoZSBzb2lsLXdhdGVyIGludGVyZmFjZSwgZGVsaXZlcmluZyBsZXNzIApQQU0gdG8gdGhlIHRoaW4gbGF5ZXIgb2Ygc29pbCBhbG9uZyB0aGUgd2V0dGVkIHBlcmltZXRlci4gVGhpcyByZWR1Y2VkIAphcHBsaWNhdGlvbiBlZmZpY2llbmN5IG1heSBhbHNvIGluY3JlYXNlIFBBTS1sb3NzLCBpbmNyZWFzaW5nIGNvc3QgYW5kIAp0aGUgcmlzayBvZiBkZWxpdmVyaW5nIFBBTSB0byBub24tdGFyZ2V0ZWQgd2F0ZXJzLiA8L3A+IAo8cD5XaGVuIHdhdGVyIHJlYWNoZXMgdGhlIGVuZCBvZiB0aGUgZnVycm93LCBpbnRyb2R1Y3Rpb24gb2YgUEFNIGludG8gdGhlIApoZWFkIGRpdGNoIGlzIHN0b3BwZWQuIFVudHJlYXRlZCB3YXRlciBpcyB1c2VkIGZvciB0aGUgYmFsYW5jZSBvZiB0aGUgaXJyaWdhdGlvbi4gCkluIG1vc3QgcHJvZHVjdGlvbiBmaWVsZHMgdGhlIGFkdmFuY2UgcGVyaW9kIGNvbnNpc3RzIG9mIGFib3V0IHRoZSBmaXJzdCAKcXVhcnRlciBvZiBhIHRvdGFsIGlycmlnYXRpb24gcGVyaW9kLCB3aGljaCB0eXBpY2FsbHkgbGFzdHMgZWl0aGVyIDEyIG9yIAoyNCBob3Vycy4gV2hlbiBydW5vZmYgYmVnaW5zLCBpdCBpcyByZWNvbW1lbmRlZCB0aGF0IGluZmxvd3MgYmUgcmVkdWNlZCAKdG8gdGhlIGxlYXN0IG5lZWRlZCB0byBzdXN0YWluIGEgbWluaW1hbCBydW5vZmYgcmF0ZS4gPC9wPiAKPHA+SW4gZml2ZSB5ZWFycyBvZiB0ZXN0aW5nIGluIElkYWhvLCB0aGlzIGFwcGxpY2F0aW9uIG1ldGhvZCBoYXMgcmVxdWlyZWQgCmFib3V0IDEga2cvaGEgb2YgUEFNIHBlciB0cmVhdG1lbnQgKExlbnR6IGFuZCBTb2prYSwgMTk5NGIsIExlbnR6IGFuZCBTb2prYSwgCjE5OTZhYikuIElmIGZ1cnJvd3MgYXJlIHVuZGlzdHVyYmVkIGJldHdlZW4gaXJyaWdhdGlvbnMsIGVyb3Npb24gcHJvdGVjdGlvbiAKZGVjbGluZXMgYWJvdXQgNTAlIHBlciB1bnRyZWF0ZWQgaXJyaWdhdGlvbiAoTGVudHogZXQgYWwuIDE5OTIpLiBGdXJyb3dzIApkaXN0dXJiZWQgYnkgdHJhZmZpYyBvciBjdWx0aXZhdGlvbiBtdXN0IGJlIHJldHJlYXRlZCBhdCB0aGUgMTAgcHBtICgxMCAKZy9tPHN1cD4zPC9zdXA+KSByYXRlIGR1cmluZyBpbmZsb3cgYWR2YW5jZS4gVW5kaXN0dXJiZWQgZnVycm93cyB0eXBpY2FsbHkgCmVyb2RlIGxlc3MgbGF0ZSBpbiB0aGUgc2Vhc29uIChCcm93biBldCBhbC4sIDE5OTUpLiBWZWdldGF0aW9uIG9mdGVuIGludHJ1ZGVzIAppbnRvIGZ1cnJvdyBib3R0b21zIGxhdGUgaW4gdGhlIHNlYXNvbi4gU2hhZGluZyBvZiBmdXJyb3dzIHNsb3dzIFVWIGRldGVyaW9yYXRpb24gCm9mIFBBTSBhbmQgcGh5c2ljYWwgZGVzdHJ1Y3Rpb24gb2YgcG9seW1lciBib25kcyBjYXVzZWQgYnkgc29pbCBzaHJpbmtpbmcgCmFuZCBzd2VsbGluZy4gPC9wPiAKPHA+IApTZWFzb24tbG9uZyBhcHBsaWNhdGlvbiByZXF1aXJlbWVudCB2YXJpZXMgd2l0aCBjcm9wLCBjdWx0dXJhbCBwcmFjdGljZXMsIAphbmQgZ3Jvd2luZyBzZWFzb24gbGVuZ3RoIChudW1iZXIgb2YgaXJyaWdhdGlvbnMpLiBUeXBpY2FsbHkgMyB0byA3IHRyZWF0ZWQgCihAIDEgbGIvYWNyZSBvciAwLjkga2cvaGEpIGlycmlnYXRpb25zIHdpbGwgcHJvdmlkZSBleGNlbGxlbnQgc2Vhc29uYWwgCmVyb3Npb24gcmVkdWN0aW9uLiBHcmFudWxhciBQQU0gaXMgYXZhaWxhYmxlIHRvIGZhcm1lcnMgZm9yICQ0L2xiIHRvICQ1LjUwL2xiIAooJDkva2cgdG8gJDEyL2tnKS4gUEFNIGhlYWQgZGl0Y2ggYXBwbGljYXRvcnMgY2FuIGJlIHB1cmNoYXNlZCBmb3IgYSBmZXcgCmh1bmRyZWQgZG9sbGFycyBlYWNoLiBTZWFzb25hbCBjb3N0cyBhcmUgbG93IGVub3VnaCB0byBiZSBhdHRyYWN0aXZlIHRvIAptb3N0IGZhcm1lcnMuIEluIGFkZGl0aW9uLCBjb3N0cyBhcmUgb2Zmc2V0IGJ5IGVsaW1pbmF0ZWQgbmVlZCB0byBjb25zdHJ1Y3QgCnNlZGltZW50IHJldGVudGlvbiBiYXNpbnMsIG9yIGF0IGxlYXN0LCByZWR1Y2VkIGJhc2luIG1haW50ZW5hbmNlLCBhbmQgCmVuYWJsaW5nIGFsbCBvciBzb21lIG9mIHRoZSBhcmVhIHVzZWQgZm9yIHNldHRsaW5nIGJhc2lucyB0byBiZSByZXR1cm5lZCAKdG8gcHJvZHVjdGlvbi4gRnVycm93IHJlc2hhcGluZyAoY3VsdGl2YXRpb24pLCBhdCAkMy41MC9hY3JlIHRvICQ3L2FjcmUgCigkOS9oYSB0byAkMTgvaGEpLCBpcyBvZnRlbiBlbGltaW5hdGVkLiA8L3A+IAo8aDM+RW52aXJvbm1lbnRhbCBDb25zaWRlcmF0aW9uczwvaDM+IAo8cD4gCkVudmlyb25tZW50YWwgcmVndWxhdGlvbiwgc2FmZXR5IGFuZCB0b3hpY2l0eSBpc3N1ZXMgd2VyZSByZXZpZXdlZCBieSBTZXlib2xkIAooMTk5NCkgYW5kIEJhcnZlbmlrICgxOTk0KSBhbmQgYXJlIGFkZHJlc3NlZCBpbiB0aGlzIHByb2NlZWRpbmdzIGluIHBhcGVycyAKYnkgRGVza2luICgxOTk2KSBhbmQgQmFydmVuaWsgZXQgYWwuICgxOTk2KS4gSW4gdGhlIFUuUy4sIGFuaW9uaWMgUEFNcyAKYXJlIHVzZWQgZXh0ZW5zaXZlbHkgaW4gcG90YWJsZSB3YXRlciB0cmVhdG1lbnQsIGZvciBkZXdhdGVyaW5nIG9mIHNld2VyYWdlIApzbHVkZ2VzLCB3YXNoaW5nIGFuZCBseWUgcGVhbGluZyBvZiBmcnVpdHMgYW5kIHZlZ2V0YWJsZXMsIGNsYXJpZmljYXRpb24gCm9mIHN1Z2FyIGp1aWNlIGFuZCBsaXF1b3IsIGluIGFkaGVzaXZlcyBhbmQgcGFwZXIgaW4gY29udGFjdCB3aXRoIGZvb2QsIAphcyB0aGlja2VuZXJzIGFuZCBzdXNwZW5kaW5nIGFnZW50cyBpbiBhbmltYWwgZmVlZHMsIGluIGNvc21ldGljcywgZm9yIApwYXBlciBtYW51ZmFjdHVyaW5nLCBmb3IgdmFyaW91cyBtaW5pbmcgYW5kIGRyaWxsaW5nIGFwcGxpY2F0aW9ucyBhbmQgZm9yIAp2YXJpb3VzIG90aGVyIHNlbnNpdGl2ZSBhcHBsaWNhdGlvbnMuIE5vIHNpZ25pZmljYW50IG5lZ2F0aXZlIGltcGFjdHMgaGF2ZSAKYmVlbiBkb2N1bWVudGVkIGZvciBhcXVhdGljLCBlZGFwaGljIG9yIGNyb3Agc3BlY2llcyBmb3IgUEFNIGFwcGxpZWQgYXQgCnJlY29tbWVuZGVkIGNvbmNlbnRyYXRpb25zIGFuZCByYXRlcy4gPC9wPiAKPHA+IApJdCBpcyBpbXBvcnRhbnQgdG8gZW1waGFzaXplIHRoZSBuZWVkIHRvIHVzZSA8c3Ryb25nPmFuaW9uaWM8L3N0cm9uZz4gUEFNcyBpbiB0aGVzZSAKYXBwbGljYXRpb25zLiBOZXV0cmFsIFBBTXMgYW5kIGVzcGVjaWFsbHkgY2F0aW9uaWMgUEFNcyBoYXZlIGJlZW4gc2hvd24gCnRvIGhhdmUgTEM8c3ViPjUwPC9zdWI+cyBsb3cgZW5vdWdoIGZvciBjb25jZXJuIHRvIGNlcnRhaW4gYXF1YXRpYyBvcmdhbmlzbXMsIAp3aGVyZWFzIGFuaW9uaWMgUEFNcyBoYXZlIG5vdC4gQ2F0aW9uaWNzIGFyZSBhdHRyYWN0ZWQgdG8gdGhlIGhlbW9nbG9iaW4gCmluIGZpc2ggZ2lsbHMuIFN1ZmZvY2F0aW9uIG9jY3VycyB3aGVuIGZpc2ggYXJlIHBsYWNlZCBpbiBvdGhlcndpc2UgY2xlYW4gCndhdGVycyB0aGF0IGNvbnRhaW4gbG93IGxldmVscyBvZiBjYXRpb25pYyBQQU0uIEl0IHNob3VsZCBiZSBub3RlZCwgaG93ZXZlciwgCnRoYXQgd2hlbiBQQU1zIGFyZSBpbnRyb2R1Y2VkIGludG8gd2F0ZXJzIGNvbnRhaW5pbmcgc2VkaW1lbnRzLCBodW1pYyBhY2lkcywgCm9yIG90aGVyIGltcHVyaXRpZXMsIHRoZSBlZmZlY3RzIG9mIHRoZSBQQU1zIG9uIGJpb3RhIGFyZSBncmVhdGx5IGJ1ZmZlcmVkIAooQnVjaGhvbHosIDE5OTI7IEdvb2RyaWNoIGV0IGFsLiwgMTk5MSkuIDwvcD4gCjxwPiAKUEFNcyByZXF1aXJlIHJlZ2lzdHJhdGlvbiBhcyBhbiBpcnJpZ2F0aW9uIGFwcGxpZWQgc29pbCBhbWVuZG1lbnQgaW4gbW9zdCAKc3RhdGVzLiBUaGUgUEFNcyByZWdpc3RlcmVkIGZvciB0aGVzZSB1c2VzIGFyZSB1c3VhbGx5IHJlcXVpcmVkIHRvIGNvbnRhaW4gCm5vIG1vcmUgdGhhdCAwLjA1JSBmcmVlIGFjcnlsYW1pZGUgbW9ub21lciBhcyBhIGNvbnRhbWluYW50LiBUaGUgYWNyeWxhbWlkZSAKKEFNRCkgbW9ub21lciBpcyBhIG5ldXJvdG94aW4sIGJ1dCBhdCB0aGVzZSBsZXZlbHMgYW5pb25pYyBQQU1zIGFyZSBhcHByb3ZlZCAKZm9yIGEgdmFyaWV0eSBvZiBzZW5zaXRpdmUgdXNlcyB3aGVyZSB0aGUgaGlnaCBwdXJpdHkgUEFNIGlzIGhlbGQgYmVsb3cgCnZhcmlvdXMgY29uY2VudHJhdGlvbiB0aHJlc2hvbGRzIGluIHRoZSByZWd1bGF0ZWQgcHJvY2Vzc2VzLiA8L3A+IAo8cD4gClNpbmNlIGVhcmx5IGluIHRoZSBQQU0gZXJvc2lvbiBwcm9ncmFtLCBzaWduaWZpY2FudCBlZmZvcnQgaGFzIGJlZW4gZXhlcnRlZCAKdG8gYXNzdXJlIHRoYXQgbG9zcyBvZiBQQU0gZnJvbSB0YXJnZXQgZmllbGRzIGlzIG1pbmltaXplZCwgYW5kIHRvIGRldGVybWluZSAKdGhhdCBhbnkgbG9zcyB0aGF0IGRpZCBvY2N1ciB3b3VsZCBub3QgcmVzdWx0IGluIHVuYWNjZXB0YWJsZSBsZXZlbHMgdG8gCnJlY2VpdmluZyByaXBhcmlhbiB3YXRlcnMuIExlbnR6IGV0IGFsLiAoMTk5NikgZGV2ZWxvcGVkIGEgc2Vuc2l0aXZlIGZsb2NjdWxhdGlvbiAKYXNzYXkgdG8gZGV0ZXJtaW5lIFBBTSBjb25jZW50cmF0aW9ucyBpbiBzdXJmYWNlIHdhdGVycyBhdCBjb25jZW50cmF0aW9uIAphcyBsb3cgYXMgMC4yNSBwcG0uIFN1YnNlcXVlbnRseSB0aGUgYXNzYXkgd2FzIGVtcGxveWVkIHRvIGZvbGxvdyB0aGUgYW1vdW50cyAKb2YgUEFNIGxvc3QgZnJvbSB0cmVhdGVkIGZpZWxkcy4gPC9wPiAKPHA+IApMZW50eiBhbmQgU29qa2EgKDE5OTZiKSBkZXRlcm1pbmVkIHRoYXQgd2hlbiBhcHBsaWVkIGFjY29yZGluZyB0byB0aGUgTlJDUyAKc3RhbmRhcmQsIFBBTSBsb3NzZXMgZGlkIG5vdCBleGNlZWQgNSUgb2YgYXBwbGllZCBhbW91bnRzLiBGdXJ0aGVybW9yZSwgCnRoZSBzbWFsbCBhbW91bnQgbG9zdCBmcm9tIGZpZWxkcyB3YXMgYWRzb3JiZWQgb250byBzdXNwZW5kZWQgc2VkaW1lbnRzIAplbmNvdW50ZXJlZCBpbiByZXR1cm4gZmxvd3MgKGNvbnRpbnVlZCBmbG9jY3VsYXRpb24pIGFuZCBvbnRvIGV4cG9zZWQgc3VyZmFjZXMgCm9mIHJldHVybi1mbG93IGRpdGNoZXMuIFBBTSBjb25jZW50cmF0aW9ucyBmZWxsIGJlbG93IGRldGVjdGFibGUgbGltaXRzIAppbiAzMDAtMTUwMCBmZWV0ICgxMDAgdG8gNTAwIG1ldGVycykgb2YgdHJhdmVsIGluIHRhaWwgd2F0ZXIgZGl0Y2hlcywgZGVwZW5kaW5nIApvbiBzZWFzb25hbCBmYWN0b3JzLiA8L3A+IAo8cD4gCkJhcnZlbmlrICgxOTk0KSBzdGF0ZWQgJnF1b3Q7Li4uZHJ5IGFuaW9uaWMgUEFNcyBvZiB0aGUgdHlwZSB0aGF0IGFyZSBlZmZlY3RpdmUgCmluIHNvaWwgc3lzdGVtcyBzaG93IG5vIHRveGljaXR5IHRvIGZpc2ggKExDPHN1Yj41MDwvc3ViPiA8c3Ryb25nPiZndDs8L3N0cm9uZz4xMDAgCm1nL0wpLiZxdW90OyBJdCBzaG91bGQgYmUgZW1waGFzaXplZCB0aGF0IHRoZSBMQzxzdWI+NTA8L3N1Yj4gZGlkIG5vdCBlcXVhbCAKMTAwIG1nL0wsIGJ1dCByYXRoZXIsIHdhcyB1bmRldGVybWluZWQsIGJlY2F1c2UgZmlmdHkgcGVyY2VudCBsZXRoYWxpdHkgCm5ldmVyIG9jY3VycmVkIGluIHRoYXQgY29uY2VudHJhdGlvbiByYW5nZS4gSGVuY2UsIHRoZSAmcXVvdDtncmVhdGVyIHRoYW4mcXVvdDsgCnN5bWJvbCBpcyB1c2VkIHRvIGluZGljYXRlIHRoYXQgYSByZWxhdGl2ZWx5IGhpZ2ggdGhyZXNob2xkIG9mIHRvbGVyYW5jZSAKZXhpc3RzLCBhbmQgdGhhdCBmdXJ0aGVyIHRlc3RzIGF0IGhpZ2hlciBjb25jZW50cmF0aW9ucyB3ZXJlIG5vdCBjb25kdWN0ZWQgCnRvIGZpbmQgdGhlIGxvd2VyIGxpbWl0LiA8L3A+IAo8cD4gCkluIGFzc2Vzc2luZyB0aGUgcmlzayBvZiBQQU0tbG9zcyB0byByZXR1cm4tZmxvdyByaXBhcmlhbiByZWNlaXZpbmcgd2F0ZXJzLCAKc2V2ZXJhbCBmYWN0cyBhcmUgYXBwYXJlbnQuIFRoZSAxMCBwcG0gUEFNIGNvbmNlbnRyYXRpb24gcmVjb21tZW5kZWQgaW4gCnRoZSBOUkNTIHN0YW5kYXJkIGZvciB0cmVhdG1lbnQgb2YgdGhlIGFkdmFuY2luZyBzdHJlYW0gaXMgaXRzZWxmIG9uZSB0ZW50aCAKdGhlIHJlcG9ydGVkICZndDsxMDAgbWcvTCB2YWx1ZS4gVGhlIDxpPmF2ZXJhZ2U8L2k+IFBBTSBjb25jZW50cmF0aW9uIG9mIAp3YXRlcnMgbGVhdmluZyBhIGZpZWxkIGZyb20gYSAyNCBociBpcnJpZ2F0aW9uIGlzIDEvMTAwMCB0aGUgJmd0OzEwMCBtZy9MIAp2YWx1ZSwgb3IgYWJvdXQgMC4xIHBwbSwgd2hpY2ggaXMgYWN0dWFsbHkgYmVsb3cgdGhlIGN1cnJlbnQgZGV0ZWN0YWJpbGl0eSAKb2YgUEFNIGluIG5hdHVyYWwgd2F0ZXJzLiBUaGVzZSBjYWxjdWxhdGlvbnMgYXNzdW1lIGZvbGxvd2luZyB0aGUgTlJDUyAKUEFNIGFwcGxpY2F0aW9uIHN0YW5kYXJkIG9mIDEgbGIgcGVyIGFjcmUgYXBwbGllZCBpbiB0aGUgc3RyZWFtIGFkdmFuY2UgCm9ubHksIHdpdGggaXJyaWdhdGlvbiB3YXRlciBhcHBsaWVkIGF0IGEgcmF0ZSBvZiAyMDAgZ3BtIG92ZXIgdGhlIGNvdXJzZSAKb2YgdGhlIGlycmlnYXRpb24sIGFuZCBhc3N1bWluZyBhIDUlIGxvc3Mgb2YgYXBwbGllZCBQQU0uIEZ1cnRoZXJtb3JlLCAKaWYgMTAlIG9mIGlycmlnYXRpb24gaW5mbG93cyBpbiBhIHdhdGVyc2hlZCB3ZXJlIFBBTSB0cmVhdGVkIHRoYXQgaW1wbGllcyAKdGhhdCB0aGUgYXZlcmFnZSBjb25jZW50cmF0aW9uIG9mIFBBTSB3b3VsZCBiZSAwLjAxIHBwbSBpbiByZXR1cm4gZmxvd3MgCihvciAxLzEwLDAwMCB0aGUgJmd0OzEwMCBtZy9MIHZhbHVlKS4gPC9wPiAKPHA+IApBcyBzdGF0ZWQgZWFybGllciwgZGF0YSBoYXMgc2hvd24gdGhhdCBQQU0gY29udGludWVzIHRvIGFkc29yYiB0byBzdXJmYWNlcyAKYW5kIHRvIGZsb2NjdWxhdGUgc3VzcGVuZGVkIHBhcnRpY3VsYXRlcyBpbiB0YWlsd2F0ZXIgc3RyZWFtcy4gSW4gcmVhbGl0eSwgCm90aGVyIG5vbi1hZ3JpY3VsdHVyYWwgKGllLiBub24tdHJlYXRlZCkgaW5mbG93cyB3aWxsIGZ1cnRoZXIgZGlsdXRlIHRoZXNlIAp2YWx1ZXMuIDwvcD4gCjxwPiAKUmVnYXJkaW5nIGNvbmNlcm4gZm9yIEFNRCBjb250ZW50LCB0aGUgc2FtZSBzaW1wbGUgZGlsdXRpb24gc2NlbmFyaW8gd291bGQgCmxpbWl0IEFNRCBjb25jZW50cmF0aW9uIHRvIDAuMDAwMDA1IHBwbSBpbiByZXR1cm4gZmxvd3MsIHdoZXJlIDEwJSBvZiBhbGwgCmluZmxvd3Mgd2VyZSBiZWluZyB0cmVhdGVkIG9uIGEgZ2l2ZW4gZGF5LiBJdCBzaG91bGQgYmUgbm90ZWQgdGhhdCBBTUQgCmhhcyBiZWVuIHNob3duIHRvIGRlY29tcG9zZSByYXBpZGx5IGluIGJpb2xvZ2ljYWxseSBhY3RpdmUgc3lzdGVtcy4gTnVtZXJvdXMgCmNpdGF0aW9ucyB0byB0aGlzIGVmZmVjdCB3ZXJlIHJldmlld2VkIGJ5IEJhcnZlbmlrICgxOTk0KS4gVGhpcyBzdWdnZXN0cyAKQU1EIGNvbmNlbnRyYXRpb24gd291bGQgYmUgZnVydGhlciByZWR1Y2VkIGJleW9uZCB0aGUgZWZmZWN0cyBkZXNjcmliZWQgCmFib3ZlLiA8L3A+IAo8cD4gCkRlY29tcG9zaXRpb24gb2YgYm90aCBwb2x5YWNyeWxhbWlkZSBhbmQgYWNyeWxhbWlkZSBtb25vbWVyIGluIHNvaWwgYW5kIAp3YXRlciBzeXN0ZW1zIGhhcyBiZWVuIHByZXZpb3VzbHkgcmVwb3J0ZWQgYW5kIHdlcmUgYWxzbyByZXZpZXdlZCBieSBCYXJ2ZW5payAKKDE5OTQpLiBCb3RoIGNvbXBvdW5kcyBhcmUgc3VzY2VwdGlibGUgdG8gdmFyeWluZyBkZWdyZWVzIG9mIGJpb2xvZ2ljYWwgCmFuZCBwaG90b2NoZW1pY2FsIGRlZ3JhZGF0aW9uLiBJbiBhZGRpdGlvbiB0aGUgbGFyZ2UgcG9seWFjcnlsYW1pZGUgbW9sZWN1bGUgCmlzIHNsb3dseSBkZWdyYWRlZCBieSBwaHlzaWNhbCBicmVha2FnZSBkdWUgdG8gbWVjaGFuaWNhbCBmb3JjZXMgc3VjaCBhcyAKYWJyYXNpb24sIGZyZWV6ZS10aGF3IGFjdGlvbiwgYW5kIHBhcnRpY2xlIHNocmlua2luZyBhbmQgc3dlbGxpbmcuIEFjcnlsYW1pZGUgCm1vbm9tZXIsIHdoaWNoIGlzIHN0cmljdGx5IGxpbWl0ZWQgYnkgVS5TLiByZWd1bGF0aW9uIGluIHRoZXNlIFBBTXMgdG8gCm5vIG1vcmUgdGhhdCAwLjA1JSBieSB3ZWlnaHQsIGRlY29tcG9zZXMgaW4gaG91cnMgaW4gc29pbHMgYW5kIHdhdGVyLiBQb2x5YWNyeWxhbWlkZSAKaW4gYnVsayBzb2lsIHN5c3RlbXMgaGFzIGJlZW4gcmVwb3J0ZWQgdG8gZGVjb21wb3NlIGF0IGEgcmF0ZSBvZiBhYm91dCAKMTAlIHBlciB5ZWFyIChBenphbSBldCBhbC4sIDE5ODMpLiBUaGVzZSBhcmUgcHJvYmFibHkgY29uc2VydmF0aXZlIGVzdGltYXRlcyAKZm9yIFBBTSBhcHBsaWVkIG9ubHkgYXQgdGhlIGZ1cnJvdyBzdXJmYWNlLiA8L3A+IAo8cD4gClNpbmNlIGZ1cnJvdyBpcnJpZ2F0aW9uLWFwcGxpZWQgcG9seWFjcnlsYW1pZGUgcmVtYWlucyB1bmluY29ycG9yYXRlZCBpbnRvIAp0aGUgc29pbCB2b2x1bWUgZm9yIGEgcHJvbG9uZ2VkIHBlcmlvZCBhZnRlciBhcHBsaWNhdGlvbiwgVVYgcmFkaWF0aW9uIAppcyBoaWdoIGFuZCBtZWNoYW5pY2FsIGVmZmVjdHMgYXJlIGludGVuc2lmaWVkLiBUaGVzZSBhcmUgYWN0dWFsbHkgdGhlIApwcmltYXJ5IGRlZ3JhZGluZyBmYWN0b3JzIG9uY2Ugc29pbCBtaWNyby1vcmdhbmlzbXMgaGF2ZSByZW1vdmVkIHRoZSBlYXNpbHkgCm1ldGFib2xpemVkIGFtaWRlIGZ1bmN0aW9uYWwgZ3JvdXBzIGFzIGEgbml0cm9nZW4gc291cmNlLiBGaW5hbGx5LCBiZWNhdXNlIAp0aGUgYW1pZGUgZnVuY3Rpb25hbCBncm91cCBpcyByYXBpZGx5IG1ldGFib2xpemVkIGFzIGEgbml0cm9nZW4gc291cmNlIApieSBzb2lsIG1pY3JvYmlvdGEsIGZ1cnRoZXIgYnJlYWtkb3duIG9mIHRoZSBwb2x5YWNyeWxhbWlkZSBtb2xlY3VsZSBkb2VzIApub3QgcHJvZHVjZSBhIHJlbmV3ZWQgc291cmNlIG9mIGFjcnlsYW1pZGUgbW9ub21lci4gT3RoZXJzIGhhdmUgYWxzbyBzdGF0ZWQgCnRoYXQgYnJlYWtkb3duIG9mIHBvbHlhY3J5bGFtaWRlIHRvIHJlbGVhc2UgYWNyeWxhbWlkZSBpcyB0aGVybW9keW5hbWljYWxseSAKaW1wb3NzaWJsZSAoTWFjV2lsbGlhbXMsIDE5NzgpLiBGaW5hbGx5LCByZWNlbnQgd29yayBoYXMgc2hvd24gdGhhdCBwb2x5YWNyeWxhbWlkZSAKYXBwbGljYXRpb24gZm9sbG93aW5nIHRoZSBOUkNTIHN0YW5kYXJkIGRvZXMgbm90IGFkdmVyc2VseSBhZmZlY3Qgc29pbCAKbWljcm9iaWFsIHByb2Nlc3NlcyBvciBwb3B1bGF0aW9uIGR5bmFtaWNzIChXYXR3b29kIGFuZCBLYXktU2hvZW1ha2UsIDE5OTY7IApLYXktU2hvZW1ha2UgYW5kIFdhdHdvb2QsIDE5OTYpLiBGdXJ0aGVybW9yZSwgYWNyeWxhbWlkZSBtb25vbWVyIGlzIG5vdCAKYWJzb3JiZWQgYXQgZGV0ZWN0YWJsZSBsZXZlbHMgaW50byBoYXJ2ZXN0ZWQgcGxhbnQgdGlzc3VlLCBldmVuIHdoZW4gYXBwbHlpbmcgCnBvbHlhY3J5bGFtaWRlIGF0IHJhdGVzIG9mIDEwMDAgbGIvYWNyZSAoQmFydmVuaWsgZXQgYWwuLCAxOTk2KSA8L3A+IAo8cD4gCkhhbHRpbmcgZXJvc2lvbiBwcmV2ZW50cyBleHBvc3VyZSBpbiBmdXJyb3cgYm90dG9tcyBvZiBzb2lsIG5vdCB0cmVhdGVkIAp3aXRoIGhlcmJpY2lkZXMsIHRodXMgcmVkdWNpbmcgcG90ZW50aWFsIGxhdGUtc2Vhc29uIHdlZWQgcHJvYmxlbXMuIEFwcGxpZWQgCnBlc3RpY2lkZSBhbmQgZmVydGlsaXplciBpbnB1dHMgYXJlIGJldHRlciByZXRhaW5lZCBvbiB0aGUgZmllbGQsIHdpdGggCmxlc3MgbG9zcyBieSBlcm9zaW9uIHRvIHJlY2VpdmluZyB3YXRlcnMgb3IgcmlwYXJpYW4gYXJlYXMgKEFnYXNzaSBldCBhbC4sIAoxOTk1OyBTaW5naCBldCBhbC4sIDE5OTY7IEJhaHIgZXQgYWwuLCAxOTk2OyBCYWhyIGFuZCBTdGVpYmVyLCAxOTk2KS4gQmVjYXVzZSAKdmlydHVhbGx5IG5vIHNvaWwgaXMgc3VzcGVuZGVkIGluIGZsb3dpbmcgd2F0ZXIsIHRoZSBydW5vZmYgY29udGFpbnMgZmFyIApsb3dlciBudXRyaWVudCBhbmQgcGVzdGljaWRlIGxldmVscywgZnVydGhlcm1vcmUgdGhlIHJlZHVjZWQgb3JnYW5pYyBzdWJzdHJhdGUgCmdyZWF0bHkgbG93ZXJzIEJPRCAoTGVudHogYW5kIFNvamthLCAxOTk0YjsgQmFociBldCBhbC4sIDE5OTYpLiA8L3A+IAo8cD4gClBBTSB3YXMgdXNlZCB0byBpbmNyZWFzZSBmdXJyb3cgaW5mbG93cyB3aGlsZSBzdGlsbCBjb250cm9sbGluZyBlcm9zaW9uIAooU29qa2EgZXQgYWwuIDE5OTU7IFNvamthIGFuZCBMZW50eiwgMTk5NikuIFRoaXMgcmVkdWNlZCB3YXRlciBhZHZhbmNlIAp0aW1lLCBhbGxvd2luZyBtb3JlIHVuaWZvcm0gaW5maWx0cmF0aW9uIGZyb20gdXBwZXIgdG8gbG93ZXIgZmllbGQgZW5kcywgCmltcHJvdmluZyBwb3RhdG8geWllbGQgYW5kIGdyYWRlIGFuZCByZWR1Y2luZyB0aGUgcmlzayBvZiBuaXRyYXRlIGxlYWNoaW5nIApmcm9tIG92ZXItaXJyaWdhdGlvbiBvZiB0aGUgdXBwZXIgcmVhY2hlcy4gPC9wPiAKPGgzPkltcG9ydGFudCBVc2VyIENvbnNpZGVyYXRpb25zPC9oMz4gCjxwPiAKRm9yIHRoZSBmYXJtZXItdXNlciwgaXQgaXMgdXNlZnVsIHRvIHN5bnRoZXNpemUgdGhlc2UgbnVtZXJvdXMgb2JzZXJ2YXRpb25zIAppbnRvIGEgY29uY2lzZSBsaXN0IG9mIGNvbnNpZGVyYXRpb25zLiBUaGVzZSBjb25zaWRlcmF0aW9ucyBhcmUgaXRlbWl6ZWQgCmJlbG93LiBGb3IgYmV0dGVyIHVuZGVyc3RhbmRpbmcgb2Ygc29tZSBvZiB0aGUgc3RhdGVtZW50cyBsaXN0ZWQsIGl0IG1heSAKYmUgbmVjZXNzYXJ5IHRvIHJlYWQgYWRkaXRpb25hbCBwYXBlcnMgcHJlc2VudGVkIG9yIGNpdGVkIGluIHRoZXNlIHByb2NlZWRpbmdzLiAKU2V2ZXJhbCB1c2VyLW9yaWVudGVkIHB1YmxpY2F0aW9ucyBhcmUgYXZhaWxhYmxlIHRvIGhlbHAgZmFybWVycyBpbXBsZW1lbnQgClBBTSBhcHBsaWNhdGlvbiAoU29qa2EgYW5kIExlbnR6LCAxOTk0YjsgTGVudHogZXQgYWwuIDE5OTU7IExlbnR6IGFuZCBTb2prYSwgCjE5OTZjZGVmKS4gRmFybWVycyBzaG91bGQgYWxzbyBiZSBmYW1pbGlhciB3aXRoIHRoZSBjdXJyZW50IE5SQ1MgYXBwbGljYXRpb24gCnN0YW5kYXJkIChhbm9ueW1vdXMsIDE5OTUpLiA8L3A+IAo8b2w+IAogIDxsaT5QdXJjaGFzZSBvbmx5IHBvbHlhY3J5bGFtaWRlIChQQU0pIGxhYmVsZWQgZm9yIHRoaXMgdXNlIGJ5IHlvdXIgc3RhdGUgCihpZiByZWdpc3RyYXRpb24gYW5kIGxhYmVsaW5nIGFyZSByZXF1aXJlZCkuIFB1cmNoYXNpbmcgZnJvbSBrbm93biByZXB1dGFibGUgCmFncmljdWx0dXJhbCBjaGVtaWNhbCBzdXBwbGllcnMgbWF5IGF2b2lkIGFjcXVpcmluZyBpbmVmZmVjdGl2ZSBvciBkYW5nZXJvdXMgCmZvcm11bGF0aW9ucyBpbmFwcHJvcHJpYXRlIGZvciB0aGlzIHVzZS4gPC9saT4gCiAgPGxpPkJ5IGxhdywgaXJyaWdhdGlvbiBQQU1zIHNob3VsZCBjb250YWluIG5vIG1vcmUgdGhhbiAwLjA1JSBmcmVlIGFjcnlsYW1pZGUgCm1vbm9tZXIgKEFNRCkgYnkgd2VpZ2h0IChpbiBFdXJvcGUsIG5vIG1vcmUgdGhhbiAwLjAyNSUpLiBUaGUgc3BlY2lmaWMgClBBTSBjb3BvbHltZXIgZm9ybXVsYXRpb24gc2hvdWxkIGJlIGFuaW9uaWMgPHN0cm9uZz4oTk9UIGNhdGlvbmljKTwvc3Ryb25nPi4gVGhlIApjaGFyZ2UgZGVuc2l0eSBtYXkgdmFyeSBmcm9tIDgtMzAgJTsgYSB2YWx1ZSBvZiAxOCUgaXMgdHlwaWNhbC4gTW9sZWN1bGFyIAp3ZWlnaHQgY2FuIHZhcnksIGJ1dCBoaWdoZXIgbW9sZWN1bGFyIHdlaWdodHMgYXJlIHVzdWFsbHkgbW9yZSBlZmZlY3RpdmUgCnRoYW4gbG93ZXIgZm9yIGVxdWFsIGFtb3VudHMgb2YgbWF0ZXJpYWwgYXBwbGllZCBhbmQgcmVzdWx0IGluIGxlc3MgQU1EIAphcHBsaWNhdGlvbiBmb3IgZXF1YWwgZXJvc2lvbiBjb250cm9sLiBSZWNlbnQgbGl0ZXJhdHVyZSBzdWdnZXN0cyB0aGF0IAptb2xlY3VsYXIgd2VpZ2h0cyBvZiAxMi0xNSBNZy9tb2xlIGFyZSBvcHRpbWFsLiA8L2xpPiAKICA8bGk+VGhlIFBBTXMgZGVzaWduYXRlZCBmb3IgdGhpcyB1c2UgYXJlIHJlZ2FyZGVkIGFzICZxdW90O3dhdGVyIHNvbHVibGUmcXVvdDsgCm9yICZxdW90O2xpbmVhciZxdW90OyBvciAmcXVvdDtub24tY3Jvc3NsaW5rZWQmcXVvdDsgUEFNcy4gPHN0cm9uZz5EbyBub3Q8L3N0cm9uZz4gCnB1cmNoYXNlICZxdW90O2Nyb3NzbGlua2VkJnF1b3Q7IG9yICZxdW90O3N1cGVyIHdhdGVyLWFic29yYmVudCZxdW90OyBQQU1zIApmb3IgdXNlIGluIGlycmlnYXRpb24gd2F0ZXIuIFRoZSBsYXR0ZXIgZG8gbm90IGFjdCB0aGUgc2FtZSBhcyBsaW5lYXIgUEFNcyAKaW4gd2F0ZXIgb3IgaW4gdGhlIHNvaWwsIGFuZCB0aGV5IGhhdmUgYSBkaWZmZXJlbnQgZnVuY3Rpb24gYW5kIHB1cnBvc2UuPC9saT4gCiAgPGxpPlRoZSBQQU0geW91IHB1cmNoYXNlIHNob3VsZCBoYXZlIGEgcmVhc29uYWJseSBoaWdoIGFuYWx5c2lzLiBQQU1zIApwdXJjaGFzZWQgYXMgZHJ5ICZxdW90O2dyYW51bGFyLCZxdW90OyAmcXVvdDtiZWFkJnF1b3Q7IG9yICZxdW90O3Bvd2RlciZxdW90OyAKZnJvbSByZXB1dGFibGUgY2hlbWljYWwgY29tcGFuaWVzIHdpbGwgdXN1YWxseSBjb250YWluIDgwJSBvciBoaWdoZXIgYWN0aXZlIAppbmdyZWRpZW50IChhaSkuIFJlbWVtYmVyIHRoYXQgd2hhdCB5b3UgcGF5IGZvciBhcyBQQU0gZGVwZW5kcyBvbiB0aGUgYW1vdW50IApvZiBhY3RpdmUgaW5ncmVkaWVudCBwdXJjaGFzZWQuIFlvdSBtYXkgYmUgcHVyY2hhc2luZyBjb252ZW5pZW5jZSBvZiBhcHBsaWNhdGlvbiAKb3Igc29tZSBvdGhlciBjb25zaWRlcmF0aW9uIGlmIHRoZSBhY3RpdmUgaW5ncmVkaWVudCBjb250ZW50IGlzIGxvd2VyLCAKYnV0IGJlIGF3YXJlIG9mIGhvdyBtdWNoIHlvdSBhcmUgc3BlbmRpbmcgb24gUEFNIHBlciBzZS4gPC9saT4gCiAgPGxpPkFzIG9mIHRoaXMgd3JpdGluZywgUEFNcyBjb21lIGZvcm11bGF0ZWQgZm9yIHVzZSBpbiBmb3VyIG1ham9yIGZvcm1zLCAKZHJ5IGJlYWQgb3IgJnF1b3Q7cG93ZGVyJnF1b3Q7ICgmZ3Q7ODAgJSBhaSksIHByZWRpc3NvbHZlZCBhcXVlb3VzIGNvbmNlbnRyYXRlIAoodXN1YWxseSBhcm91bmQgMyUgYWkpLCBjb21wcmVzc2VkIGJsb2NrcyBvciBjdWJlcyAoJmd0OyA4MCAlIGFpKSBmb3Igc3VzcGVuc2lvbiAKaW4gZmxvd2luZyBkaXRjaGVzIG9yIGZ1cnJvdyBzdHJlYW1zLCBvaWwtZW11bHNpZmllZCBjb25jZW50cmF0ZXMgKHVzdWFsbHkgCjMwJSBhaSkuIEVhY2ggZm9ybSBoYXMgdmFyaW91cyBhZHZhbnRhZ2VzIGFuZCBkcmF3YmFja3MuICAKICA8dWw+IAogICAgPGxpPjxzdHJvbmc+UG93ZGVyczwvc3Ryb25nPiBhcmUgZWFzeSB0byBzdG9yZSwgdHJhbnNwb3J0IGFuZCBtZXRlciBpbnRvIGhlYWQgZGl0Y2hlcywgCmJ1dCByZXF1aXJlIHZpZ29yb3VzIGFnaXRhdGlvbiB0byBtYWtlIHRoZW0gZGlzc29sdmUuIE51bWVyb3VzIGluZXhwZW5zaXZlIAptZXRlcmVkIHBvd2RlciBhcHBsaWNhdG9ycyBhcmUgYXZhaWxhYmxlLiBQb3dkZXIgYXBwbGljYXRvcnMgc2hvdWxkIGJlIApwbGFjZWQgb24gdGhlIGhlYWQgZGl0Y2ggaW1tZWRpYXRlbHkgYWJvdmUgYSBzb3VyY2Ugb2Ygc3Vic3RhbnRpYWwgdHVyYnVsZW5jZS4gCkxvY2F0aW9uIG9mIHRoZSBhcHBsaWNhdG9yIG9uIHRoZSBoZWFkIGRpdGNoIGEgMTAwIHRvIDMwMCBmdCBhYm92ZSB0aGUgCmZpcnN0IGlycmlnYXRlZCBmdXJyb3cgcHJvdmlkZXMgbWl4aW5nIG9wcG9ydHVuaXR5LiBQb3dkZXIgYXBwbGllZCBpbiB0dXJidWxlbnQgCmZvdW50YWlucyB3aXRoIHdlZWQgc2NyZWVucyBtdXN0IGFwcGx5IHRoZSBQQU0gYmVsb3cgdGhlIHNjcmVlbiBvbiB0aGUgCm91dGZsb3cgc2lkZSB0byBhdm9pZCBjbG9nZ2luZyB0aGUgc2NyZWVucy4gUGxhY2VtZW50IG9mIHBvd2RlciBwYXRjaGVzIApkaXJlY3RseSBpbiBmdXJyb3dzIGhhcyBiZWVuIHN1Y2Nlc3NmdWwgZm9yIGVyb3Npb24gY29udHJvbCwgYnV0IGluZmlsdHJhdGlvbiAKZWZmZWN0aXZlbmVzcyBhbmQgb24tZmllbGQgUEFNIHJldGVudGlvbiBhcmUgbm90IHlldCB0aG9yb3VnaGx5IHVuZGVyc3Rvb2QuIApQYXRjaGVzIGNhbiBiZSBidXJpZWQgb3IgYnJva2VuIHVwIGFuZCB3YXNoZWQgZG93bnN0cmVhbSwgb3IgbWlzc2VkIGJ5IAp0aGUgc3RyZWFtIGZsb3cgZGVwZW5kaW5nIG9uIHNpcGhvbiwgc3BpZ290LCBvciBnYXRlIHN0cmVhbSBzaXplLCBwYXR0ZXJuIAphbmQgaW1wYWN0IHBvaW50LjwvbGk+IAogICAgPGxpPjxzdHJvbmc+QXF1ZW91cyBDb25jZW50cmF0ZXM8L3N0cm9uZz4gYXJlIGxpbWl0ZWQgYXMgdG8gdGhlIHN0cmVuZ3RoIG9mIGNvbmNlbnRyYXRlIAp0aGF0IGNhbiBiZSBwcmVwYXJlZCBiZWZvcmUgdmlzY29zaXR5IGltcGFpcnMgcHJhY3RpY2FsIHVzZS4gVGhlIG1haW4gYWR2YW50YWdlIApvZiBBQ3MgaXMgYmV0dGVyIGRpc3NvbHZpbmcgaW4gc3RvY2sgc29sdXRpb25zIG9yIGluIHRoZSBoZWFkIGRpdGNoIHRoYW4gCnBvd2RlcnMuIFRoZSBkaXNhZHZhbnRhZ2UgaXMgdW5rbm93biBzdG9yYWdlIGVmZmVjdHMgYW5kIGxvdyBhaSBmb3Igd2VpZ2h0IAphbmQgdm9sdW1lIG9mIG1hdGVyaWFsIGhhbmRsZWQuIDwvbGk+IAogICAgPGxpPjxzdHJvbmc+QmxvY2tzIGFuZCBDdWJlczwvc3Ryb25nPiBhcmUgZWFzeSB0byBoYW5kbGUgYW5kIHBsYWNlLCBidXQgZG8gbm90IGRpc3NvbHZlIAp1bmlmb3JtbHkuIEN1YmVzIHBsYWNlZCBpbiBmdXJyb3dzIGNhbiB3YXNoIGRvd25zdHJlYW0uIEVyb3Npb24gYW5kIGluZmlsdHJhdGlvbiAKcGVyZm9ybWFuY2UgaGFzIGJlZW4gbW9yZSB2YXJpYWJsZSB0aGFuIHdpdGggb3RoZXIgYXBwbGljYXRpb24gbWV0aG9kcy4gCjwvbGk+IAogICAgPGxpPjxzdHJvbmc+RW11bHNpZmllZCBDb25jZW50cmF0ZXM8L3N0cm9uZz4gcHJvdmlkZSB0aGUgc2FtZSBhZHZhbnRhZ2VzIGFzIEFDcywgYnV0IAphY2hpZXZlIHRlbiB0aW1lcyB0aGUgYWksIGdyZWF0bHkgcmVkdWNpbmcgdm9sdW1lIGFuZCB3ZWlnaHQgdHJhbnNwb3J0IApjb25zaWRlcmF0aW9ucy4gRUNzIGFsc28gaGF2ZSBtdWNoIGxvd2VyIHZpc2Nvc2l0eSB0aGFuIEFDcywgZGVzcGl0ZSB0aGVpciAKaGlnaGVyIGFpLiBFQ3MgbWF5IGJlIHN1aXRhYmxlIGZvciBpbmRpdmlkdWFsIGZ1cnJvdyBhcHBsaWNhdGlvbiB2aWEgYSAKZHJpcCBsaW5lIGF0IHRoZSB1cHBlciBmaWVsZCBlbmQ7IGN1cnJlbnQgdGVzdHMgYXJlIHVuZGVyd2F5IGJ1dCBhcmUgbm90IAp5ZXQgY29uY2x1c2l2ZS4gU2hlbGYgbGlmZSBhbmQgc3RvcmFnZSBjb25kaXRpb25zIG1heSBiZSBmYWN0b3JzIGZvciBhZHZlcnNlIApjbGltYXRlcy4gTWV0ZXJpbmcgaXMgc29tZXdoYXQgc2ltcGxpZmllZCwgYnV0IHRlbXBlcmF0dXJlIHJlbGF0ZWQgdmlzY29zaXR5IApjaGFuZ2VzIG1heSBhZmZlY3QgY2FsaWJyYXRpb24gaW4gc29tZSBhcmVhcyBhbmQgYXQgc29tZSB0aW1lcyBpbiB0aGUgc2Vhc29uLiAKPC9saT4gCiAgPC91bD4gCiAgPC9saT4gCiAgPGxpPkJlIGF3YXJlIHRoYXQsIGFsdGhvdWdoIGFsbCBQQU1zIGFyZSBwb2x5bWVycywgPHN0cm9uZz5OT1QgQUxMIFBPTFlNRVJTIApBUkUgUEFNLjwvc3Ryb25nPiBUaGUgbWVkaWEncyByZWNlbnQgaGlnaCBpbnRlcmVzdCBpbiBQQU0gYW5kIHRoZSBtYW55IHN0b3JpZXMgCnJlcG9ydGluZyB0aGUgZWZmZWN0aXZlbmVzcyBvZiBQQU0gaGF2ZSBvZnRlbiByZWZlcnJlZCB0byB0aGUgUEFNIG9ubHkgCmFzICZxdW90O3BvbHltZXImcXVvdDsgb3IgYXMgJnF1b3Q7dGhlIHBvbHltZXIuJnF1b3Q7IFRoaXMgaGFzIGVuY291cmFnZWQgCnNvbWUgZW50cmVwcmVuZXVyaWFsIGV4cGxvaXRhdGlvbiBvZiB0aGUgd29yZCAmcXVvdDtwb2x5bWVyJnF1b3Q7IGluIHRoZSAKYWdyaWN1bHR1cmFsIGNvbW11bml0eS4gVGhlIHJlc3VsdHMgYWNoaWV2ZWQgd2l0aCB0aGUgc3BlY2lmaWMgY2xhc3Mgb2YgClBBTXMgZGVzY3JpYmVkIGFib3ZlIGFyZSBub3Qga25vd24gdG8gYmUgYWNoaWV2YWJsZSB3aXRoIG90aGVyIGFmZm9yZGFibGUgCmNoZW1pY2FsIHBvbHltZXJzLiA8L2xpPiAKICA8bGk+V2hlbiBhcHBseWluZyBQQU0gdG8gZnVycm93cywgdGhlIGZpcnN0IGRyb3Agb2Ygd2F0ZXIgdG8gcmVhY2ggdGhlIGZ1cnJvdyAKc2hvdWxkIGFscmVhZHkgYmUgYXQgdGhlIHJlY29tbWVuZGVkIDEwIHBwbSBjb25jZW50cmF0aW9uLiBJZiBkcnkgc29pbCAKZmlyc3QgYmVjb21lcyB3ZXQgYnkgY29udGFjdCB3aXRoIHVudHJlYXRlZCB3YXRlciwgdGhlIHNvaWwgc3RydWN0dXJlIGFuZCAKcG9yZSBnZW9tZXRyeSB3aWxsIGJlIHNldmVyZWx5IGRlZ3JhZGVkIGFsbW9zdCBpbW1lZGlhdGVseS4gUEFNIGZsb3dpbmcgCmRvd24gdGhlIGZ1cnJvdyBvbmx5IGEgZmV3IHNlY29uZHMgbGF0ZXIgd2lsbCBoYXZlIGEgZ3JlYXRseSBkaW1pbmlzaGVkIAphYmlsaXR5IHRvIHJlZHVjZSBlcm9zaW9uIG9yIGltcHJvdmUgaW5maWx0cmF0aW9uLiBQQU0gY2FuIHN0YWJpbGl6ZSBleGlzdGluZyAKc3RydWN0dXJlLCBidXQgaXQgY2Fubm90IGNyZWF0ZSBzdHJ1Y3R1cmUuIFNpbWlsYXJseSwgUEFNIGNhbm5vdCByZW1lZGlhdGUgCmV4aXN0aW5nIHNvaWwgc3RydWN0dXJlIGRhbWFnZSBmcm9tIG90aGVyIGVmZmVjdHMgc3VjaCBhcyBjb21wYWN0aW9uIGV0Yy4gCkl0IGhhcyBhbHNvIGJlZW4gb2JzZXJ2ZWQgdGhhdCB3aGVuIHNvaWxzIGFyZSBkYW1wIChlLmcuIGZvbGxvd2luZyBhIHJhaW4gCnNob3dlciksIG9yIGlmIHRoZSBzb2lsIHdhdGVyIGNvbnRlbnQgaXMgaGlnaGVyIHRoYW4gbm9ybWFsIGZvciBhbiBpcnJpZ2F0aW9uLCAKUEFNIGVmZmVjdGl2ZW5lc3MgaXMgcmVkdWNlZC4gVGhpcyBpcyBwcm9iYWJseSBiZWNhdXNlIG9mIHJlZHVjZWQgaW5maWx0cmF0aW9uIApvZiB0aGUgUEFNLXRyZWF0ZWQgd2F0ZXIgdGhhdCBub3JtYWxseSBjYXJyaWVzIFBBTSB0byBzdXJmYWNlIGFnZ3JlZ2F0ZXMuIApJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQgZGFtcCBzb2lsICh3YXRlciBmaWxtcyBvbiBhZ2dyZWdhdGVzKSBwcmV2ZW50cyAKaW50aW1hdGUgYWRzb3JwdGlvbiBvZiBQQU0gdW5kZXIgdGhlc2UgY29uZGl0aW9ucy4gPC9saT4gCiAgPGxpPklmIHdhdGVyIGluIHRoZSBoZWFkIGRpdGNoIGlzIGhpZ2ggaW4gc2VkaW1lbnRzLCBhcHBsaWNhdGlvbiBvZiBQQU0gCnRvIHRoZSBoZWFkIGRpdGNoIG1heSBzZXR0bGUgZW5vdWdoIHNlZGltZW50IGluIHRoZSBkaXRjaCB0byBjYXVzZSBwcm9ibGVtcy4gCkZhcm1lcnMgd2l0aCBjb25zaXN0ZW50bHkgaGlnaCBzZWRpbWVudCBjb25jZW50cmF0aW9ucyBpbiB0aGVpciB3YXRlciBzdXBwbHkgCmhhdmUgaGFkIGdvb2Qgc3VjY2VzcyB3aXRoIGNyZWF0aW9uIG9mIHNtYWxsIHNlZGltZW50YXRpb24gcG9uZHMgYXQgdGhlIAp1cHBlciBlbmQgb2YgdGhlIGZpZWxkIHRvIGNhdGNoIHNlZGltZW50IGltbWVkaWF0ZWx5IGJlbG93IHRoZSBwb2ludCBvZiAKUEFNIGFwcGxpY2F0aW9uIHRvIHRoZSBzdXBwbHkgc3RyZWFtLiBUaGlzIHByZXZlbnRzIG92ZXJmbG93IG9mIGhlYWQgZGl0Y2hlcyAKYW5kIGNsb2dnaW5nIG9mIHNpcGhvbiB0dWJlcy4gSWYgc2VkaW1lbnQgbG9hZCBpcyBwYXJ0aWN1bGFybHkgaGlnaCwgdGhlIApQQU0gYXBwbGljYXRpb24gcmF0ZSBtYXkgbmVlZCB0byBiZSBzbGlnaHRseSBpbmNyZWFzZWQgdG8gY29tcGVuc2F0ZSBmb3IgCmRlYWN0aXZhdGlvbiBvZiBQQU0gYnkgdGhlIGZsb2NjdWxhdGVkIHNlZGltZW50LiBTb21lIGZhcm1lcnMgY2xhaW0gdGhhdCAKY3V0dGluZyB0aGUgUEFNIGNvbmNlbnRyYXRpb24gaW4gdGhlIGhlYWQgZGl0Y2ggdG8gNSBwcG0gaW4gdGhlIHByZXNlbmNlIApvZiBoaWdoIHNlZGltZW50cyBnaXZlcyB0aGUgZGVzaXJlZCBwZXJmb3JtYW5jZSBpbiB0aGUgZnVycm93LCBidXQgcmVkdWNlcyAKc2VkaW1lbnRhdGlvbiBpbiB0aGUgaGVhZCBkaXRjaC4gVGhlIHJhdGlvbmFsZSBpcyB0aGF0IHRoZSBvcHRpbWFsIGNvbmNlbnRyYXRpb24gCmZvciBmbG9jY3VsYXRpb24gaXMgaGlnaGVyIHRoYW4gZm9yIGVyb3Npb24gY29udHJvbC4gTm9uZSBvZiB0aGVzZSBhcHByb2FjaGVzIApoYXMgYmVlbiBzdHVkaWVkIGluIGNvbnRyb2xsZWQgZXhwZXJpbWVudHMuIFRoZSB1c2Ugb2YgaW4tZnVycm93IGFwcGxpY2F0aW9uIAptZXRob2RzIChjdWJlcywgcG93ZGVyLXBhdGNoZXMsIGRyaXAgbGluZXMpIGhlbHAgc3ByZWFkIGluZmxvdyBzZWRpbWVudCAKb24gdGhlIGZpZWxkIHdoZXJlIGl0IGNhdXNlcyBmZXdlciBwcm9ibGVtcy4gPC9saT4gCiAgPGxpPlRvIGRhdGUsIHB1Ymxpc2hlZCBkYXRhIGNvbmZpcm0gdGhhdCB1c2Ugb2YgMTAgcHBtIGluIHRoZSBhZHZhbmNpbmcgCmZ1cnJvdyBzdHJlYW0gKG9ubHkpIHByb3ZpZGVzIHRoZSBncmVhdGVzdCBlcm9zaW9uIGNvbnRyb2wgd2l0aCB0aGUgbGVhc3QgClBBTSB1c2VkIGFuZCB0aGUgbGVhc3QgUEFNIGxvc3QgZnJvbSB0aGUgdHJlYXRlZCBmaWVsZC4gTG93IHJhdGVzIG9mIFBBTSAKY29udGludW91c2x5IGFwcGxpZWQgbWF5IGJlIG1vcmUgY29zdGx5LCBhbmQgbGVhZCB0byBlbnZpcm9ubWVudGFsIHJpc2tzIAppbiBzb21lIHNpdHVhdGlvbnMuIEZhcm1lcnMgc2hvdWxkIGFsc28gbm90ZSB0aGF0IHRvbyBoaWdoIGEgUEFNIGNvbmNlbnRyYXRpb24sIApvciB0b28gbXVjaCBQQU0gYXBwbGllZCBjYW4gZXZlbnR1YWxseSBzZWFsIGZ1cnJvd3MsIGxpbWl0aW5nIGluZmlsdHJhdGlvbi4gCkF0IHZlcnkgaGlnaCBjb25jZW50cmF0aW9ucyBQQU0gY2FuIHN0YWJpbGl6ZSBzdXNwZW5zaW9uIG9mIHBhcnRpY3VsYXRlcywgCnJhdGhlciB0aGFuIGZsb2NjdWxhdGluZyB0aGVtLiBUaGVyZWZvcmUsIGZhcm1lcnMgYXJlIHN0cm9uZ2x5IGVuY291cmFnZWQgCnRvIGFkaGVyZSB0byB0aGUgTlJDUyBzdGFuZGFyZCwgYW5kIHRvIGJlIHZlcnkgY2F1dGlvdXMgaW4gdGhlcmUgYXBwcm9hY2ggCndoZW4gbG9jYWwgY29uZGl0aW9ucyBwcm9tcHQgYXR0ZW1wdHMgdG8gZGV2aWF0ZSBmcm9tIHRoZSBzdGFuZGFyZC4gPC9saT4gCiAgPGxpPkJlY2F1c2UgUEFNIGFsdGVycyBzdXJmYWNlIHNlYWxpbmcsIHJlc3VsdGluZyBpbiBtb3JlIHBlcnZpb3VzIHNlYWxzLCAKdGhlIG5ldCBpbmZpbHRyYXRpb24gcmF0ZSBvZiBQQU0tdHJlYXRlZCBmaWVsZHMgd2lsbCBiZSBoaWdoZXIgdGhhbiBpbiAKdW50cmVhdGVkIGZpZWxkcy4gRmFybWVycyB3aWxsIG5lZWQgdG8gaW5jcmVhc2UgdGhlaXIgaW5mbG93IHJhdGVzIHRvIHByZXZlbnQgCmZ1cnJvdyBzdHJlYW0gYWR2YW5jZSB0aW1lcyBmcm9tIGJlY29taW5nIGV4Y2Vzc2l2ZWx5IGxvbmcuIEZhcm1lcnMgYXJlIApzdHJvbmdseSBlbmNvdXJhZ2VkIHRvIHRha2UgYWR2YW50YWdlIG9mIFBBTSdzIGVyb3Npb24gcHJldmVudGluZyBwcm9wZXJ0aWVzIAp0byBHUkVBVExZIGluY3JlYXNlIGluZmxvdyByYXRlcyAoMiB0byAzIHRpbWVzKS4gRG91Ymxpbmcgb3IgdHJpcGxpbmcgaW5mbG93cyAKd2lsbCBncmVhdGx5IHJlZHVjZSBzdHJlYW0gYWR2YW5jZSB0aW1lcyBhbmQgc2lnbmlmaWNhbnRseSBpbXByb3ZlIGluZmlsdHJhdGlvbiAKdW5pZm9ybWl0eSB3aGlsZSBzdGlsbCBncmVhdGx5IHJlZHVjaW5nIGVyb3Npb24uIE5PVEUgSE9XRVZFUiwgdGhhdCB0byAKdGFrZSBiZXN0IGFkdmFudGFnZSBvZiB0aGlzIG5ldyBtYW5hZ2VtZW50IG9wdGlvbiBwcm92aWRlZCBieSBQQU0sIHRoZSAKZmFybWVyIHNob3VsZCBhbHNvIGN1dCBiYWNrIGluZmxvdyByYXRlcyB0byB0aGUgbWluaW11bSBzdXN0YWluYWJsZSBpbmZsb3dzIApvbmNlIHdhdGVyIGhhcyBhZHZhbmNlZCBhbmQgcnVub2ZmIGJlZ2lucy4gVGhpcyBpcyBhIGhpZ2hlciBvcmRlciBvZiBtYW5hZ2VtZW50LCAKYnV0IGRhdGEgY29uZmlybSB0aGF0IGNyb3BzIHNlbnNpdGl2ZSB0byBpcnJpZ2F0aW9uIHVuaWZvcm1pdHksIHN1Y2ggYXMgClJ1c3NldCBCdXJiYW5rIHBvdGF0b2VzLCBjYW4gc2VlIHNpZ25pZmljYW50bHkgaW5jcmVhc2VkIHlpZWxkIGFuZCBxdWFsaXR5LCAKcHJvdmlkaW5nIGEgc3Vic3RhbnRpYWwgZWNvbm9taWMgaW5jZW50aXZlIGZvciB0aGUgY2hhbmdlIGluIG1hbmFnZW1lbnQuPC9saT4gCjwvb2w+IAo8aDM+Q29uY2x1c2lvbnM8L2gzPiAKPHA+IApQQU0tdXNlIGZvciBlcm9zaW9uIGNvbnRyb2wgY2FuIGJlIGEgZm9ybWlkYWJsZSB0b29sIGZvciBhY2hpZXZpbmcgYWdyaWN1bHR1cmFsIApzdXN0YWluYWJpbGl0eS4gSXQgcHJvdmlkZXMgYSBwb3RlbnQgZW52aXJvbm1lbnRhbCBiZW5lZml0LiBJdCBoYWx0cyBmdXJyb3cgCmlycmlnYXRpb24gZXJvc2lvbiBieSBhYm91dCBhIGhhbGYgdG9uIG9mIHNvaWwgcGVyIG91bmNlICgxNiBrZy9nKSBvZiBQQU0gCnVzZWQuIEl0IHJlbW92ZXMgbW9zdCBzZWRpbWVudCwgcGhvc3Bob3J1cyBhbmQgcGVzdGljaWRlcyBmcm9tIHJldHVybiBmbG93cywgCmFuZCBncmVhdGx5IHJlZHVjZXMgcmV0dXJuIGZsb3cgQk9ELiBJdCBpbmNyZWFzZXMgaW5maWx0cmF0aW9uLCBlbmFibGluZyAKd2F0ZXIgY29uc2VydmF0aW9uLiBSZWR1Y2VkIHNlZGltZW50IGFuZCBudXRyaWVudCBsb2FkaW5nIG9mIHJpcGFyaWFuIGFyZWFzIApjYW4gdWx0aW1hdGVseSBiZSBleHBlY3RlZCB0byByZWR1Y2UgdGhlIGZyZXF1ZW5jeSBhbmQgaW50ZW5zaXR5IG9mIGFsZ2FsIApibG9vbXMsIHJlZHVjZSB0dXJiaWRpdHkgYW5kIHNlZGltZW50YXRpb24gb2Ygc3RyZWFtIGJvdHRvbXMsIGRlY2VsZXJhdGUgCnJlc2Vydm9pciBzZWRpbWVudGF0aW9uIGFuZCB3ZWFyIG9uIGh5ZHJvcG93ZXIgbWFjaGluZXJ5LiA8L3A+IAo8cD4gClBBTS11c2UgYWxsb3dzIGNoYW5nZXMgaW4gZnVycm93IG1hbmFnZW1lbnQgdGhhdCBzaG91bGQgcHJvdmlkZSBtb3JlIHVuaWZvcm0gCndhdGVyIGFwcGxpY2F0aW9uLiBDb3VwbGluZyBQQU0tdXNlIHdpdGggaW1wcm92ZWQgd2F0ZXIgbWFuYWdlbWVudCAoZS5nLiAKYWNjZWxlcmF0ZWQgaW5mbG93IGFkdmFuY2UgdG8gaW1wcm92ZSBmaWVsZCBpbmZpbHRyYXRpb24gdW5pZm9ybWl0eSkgaXMgCmV4cGVjdGVkIHRvIHJlZHVjZSBsZWFjaGluZyBvZiBhcHBsaWVkIG5pdHJhdGVzIGFuZCB0byBpbmNyZWFzZSBjcm9wIHF1YWxpdHkgCmFuZCBuZXQgcmV0dXJucy4gPC9wPiAKPHA+IApEZXRhaWxlZCBjb3N0IGFuYWx5c2VzIG9mIFBBTS11c2UgYXJlIG5vdCB5ZXQgYXZhaWxhYmxlLCBidXQgd2UgZG8ga25vdyAKdGhhdCBleHBlbnNlcyByZWxhdGVkIHRvIGZ1cnJvdyByZXNoYXBpbmcgYW5kIHNlZGltZW50IHBvbmQgb3IgZGl0Y2ggY2xlYW5pbmcgCmFyZSByZWR1Y2VkLiBQQU0tdXNlIGFsc28gY29uc2VydmVzIGZ1ZWwsIGxlc3NlbnMgYWlyIHBvbGx1dGlvbiwgYW5kIHJlZHVjZXMgCmVxdWlwbWVudCB3ZWFyIGFuZCBsYWJvci4gPC9wPiAKPHA+IApQZXJoYXBzIG1vc3QgaW1wb3J0YW50bHksIGZhcm1lcnMgaGF2ZSBiZWVuIGVudGh1c2lhc3RpYyBpbiB0aGVpciBhZG9wdGlvbiAKb2YgdGhpcyBuZXcgcHJhY3RpY2UuIEJlY2F1c2UgdGhlcmUgaXMgZW50aHVzaWFzbSBmb3IgdGhlIHByYWN0aWNlLCBpdHMgCnBvdGVudGlhbCBmb3IgaW1wbGVtZW50YXRpb24gYW5kLCBoZW5jZSwgZXJvc2lvbiBhbmQgcG9sbHV0aW9uIHJlZHVjdGlvbiAKaXMgcGFydGljdWxhcmx5IHByb21pc2luZy4gPC9wPiAKPGg0PkxpdGVyYXR1cmUgY2l0ZWQ8L2g0PiAKPG9sPiAKICA8bGk+QWdhc3NpLCBNLCBKLiBMZXRleSwgVy5KLiBGYXJtZXIsIGFuZCBQLiBDbGFyay4gMTk5NS4gU29pbCBlcm9zaW9uIGNvbnRyaWJ1dGlvbnRvIHBlc3RpY2lkZSB0cmFuc3BvcnQgYnkgZnVycm93IGlycmlnYXRpb24uIEouIEVudmlyb24uIFF1YWwuMjQ6ODkyLTg5NS48L2xpPiAKICA8bGk+QW5vbnltb3VzLiAxOTk1LiBOYXRpb25hbCBSZXNvdXJjZXMgQ29uc2VydmF0aW9uIFNlcnZpY2UgV2VzdCBOYXRpb25hbFRlY2huaWNhbCBDZW50ZXIgSW50ZXJpbSBDb25zZXJ2YXRpb24gUHJhY3RpY2UgU3RhbmRhcmQtLUlycmlnYXRpb24gRXJvc2lvbkNvbnRyb2wgKFBvbHlhY3J5bGFtaWRlKS0tV05UQyAyMDEtMS4gNSBwYWdlcy4gPC9saT4gCiAgPGxpPkFub255bW91cy4gMTk5Ni4gMTk5NSBJcnJpZ2F0aW9uIHN1cnZleSByZWZsZWN0cyBzdGVhZHkgZ3Jvd3RoLiBJcnJpZy5KLiA0NjoyNC0zOS4gPC9saT4gCiAgPGxpPkF6emFtLCBSLkEuSS4gMTk4MC4gQWdyaWN1bHR1cmFsIHBvbHltZXJzLCBwb2x5YWNyeWxhbWlkZSBwcmVwYXJhdGlvbixhcHBsaWNhdGlvbiBhbmQgcHJvc3BlY3RzIGluIHNvaWwgY29uZGl0aW9uaW5nLiBDb21tLiBTb2lsIFNjaS4gUGxhbnQgQW5hbC4xMTo3NjctODM0LiA8L2xpPiAKICA8bGk+QXp6YW0sIFIuLCBPLkEuIEVsLUhhZHksIEEuQS4gTG9mdHksIGFuZCBNLiBIZWdlbGEuIDE5ODMuIFNhbmQtUkFQR2NvbWJpbmF0aW9uIHNpbXVsYXRpbmcgZmVydGlsZSBjbGF5ZXkgc29pbHMsIHBhcnRzIEkgdG8gSVYuIEludC4gQXRvbWljRW5lcmd5IEFnZW5jeS4gU00tMjY3LzE1OjMyMS0zNDkuIDwvbGk+IAogIDxsaT5CYWhyLCBHLiwgVC4gU3RlaWJlciBhbmQgSy4gQ2FtcGJlbGwuIDE5OTYuIFJlZHVjdGlvbiBvZiBudXRyaWVudCBhbmRwZXN0aWNpZGUgbG9zcyB0aHJvdWdoIHRoZSBhcHBsaWNhdGlvbiBvZiBwb2x5YWNyeWxhbWlkZSBpbiBzdXJmYWNlIGlycmlnYXRlZGNyb3BzLiBQcm9jLiA2dGggQW5udWFsIE5vbnBvaW50IFNvdXJjZSBXYXRlciBRdWFsaXR5IE1vbml0b3JpbmcgUmVzdWx0c1dvcmtzaG9wLiBCb2lzZSBTdGF0ZSBVbml2ZXJzaXR5LCBCb2lzZSBJRC4gSmFuLiA5LCAxMCAmIDExLCAxOTk2LjwvbGk+IAogIDxsaT5CYWhyLCBHLiwgYW5kIFQuIFN0ZWliZXIuIDE5OTYuIFJlZHVjdGlvbiBvZiBudXRyaWVudCBhbmQgcGVzdGljaWRlbG9zcyB0aHJvdWdoIHRoZSBhcHBsaWNhdGlvbiBvZiBwb2x5YWNyeWxhbWlkZSBpbiBzdXJmYWNlIGlycmlnYXRlZCBjcm9wcy5Qcm9jLiBNYW5hZ2luZyBJcnJpZ2F0aW9uLUluZHVjZWQgRXJvc2lvbiBhbmQgSW5maWx0cmF0aW9uIHdpdGggUG9seWFjcnlsYW1pZGUuQ29sbGVnZSBvZiBTb3V0aGVybiBJZGFobywgVHdpbiBGYWxscywgSUQuIE1heSA2LCA3ICYgOCwgMTk5Ni4gPC9saT4gCiAgPGxpPkJhcnZlbmlrLCBGLlcuIDE5OTQuIFBvbHlhY3J5bGFtaWRlIENoYXJhY3RlcmlzdGljcyByZWxhdGVkIHRvIHNvaWxhcHBsaWNhdGlvbnMuIFNvaWwgU2NpLiAxNTg6MjM1LTI0My4gPC9saT4gCiAgPGxpPkJhcnZlbmlrLCBGLlcuLCBSLkUuIFNvamthLCBSLkQuIExlbnR6LCBGLkYuIEFuZHJhd2VzLCBhbmQgTC5TLiBNZXNzbmVyLjE5OTYuIEZhdGUgb2YgYWNyeWxhbWlkZSBtb25vbWVyIGZvbGxvd2luZyBhcHBsaWNhdGlvbiBvZiBwb2x5YWNyeWxhbWlkZXRvIGNyb3BsYW5kLiA8aT5JTjwvaT4gKFIuRS4gU29qa2EgYW5kIFIuRC4gTGVudHosIGVkcykgUHJvY2VlZGluZ3M6IE1hbmFnaW5naXJyaWdhdGlvbi1pbmR1Y2VkIGVyb3Npb24gYW5kIGluZmlsdHJhdGlvbiB3aXRoIHBvbHlhY3J5bGFtaWRlLiBDb2xsZWdlb2YgU291dGhlcm4gSWRhaG8sIFR3aW4gRmFsbHMsIElEIDYtOCBNYXksIDE5OTYuIDwvbGk+IAogIDxsaT5CZXJnLCBSLkQuLCBhbmQgRC5MLiBDYXJ0ZXIuIDE5ODAuIEZ1cnJvdyBlcm9zaW9uIGFuZCBzZWRpbWVudCBsb3NzZXNvbiBpcnJpZ2F0ZWQgY3JvcGxhbmQuIEouIFNvaWwgV2F0ZXIgQ29uc2Vydi4gMzU6MzY3LTM3MC4gPC9saT4gCiAgPGxpPkJyb3duLCBNLkouLCBKLkEuIEJvbmR1cmFudCBhbmQgQy5FLiBCcm9ja3dheS4gMTk4MS4gUG9uZGluZyBzdXJmYWNlZHJhaW5hZ2Ugd2F0ZXIgZm9yIHNlZGltZW50IGFuZCBwaG9zcGhvcm91cyByZW1vdmFsLiBUcmFucy4gQVNBRS4gMjQ6MTQ3OC0xNDgxLjwvbGk+IAogIDxsaT5Ccm93biwgTS5KLiwgRC5MLiBDYXJ0ZXIsIEcuQS4gTGVocnNjaCwgYW5kIFIuRS4gU29qa2EsIDE5OTUuIFNlYXNvbmFsdHJlbmRzIGluIGZ1cnJvdyBpcnJpZ2F0aW9uIGVyb3Npb24gaW4gc291dGhlcm4gSWRhaG8uIFNvaWwgVGVjaG5vbG9neS44OjExOS0xMjYuIDwvbGk+IAogIDxsaT5CdWNoaG9seiwgRi5MLiAxOTkyLiBQb2x5YWNyeWxhbWlkZXMgYW5kIHBvbHkgKGFjcnlsaWMgYWNpZHMpLiBpbiBVbGxtYW5uJ3NlbmN5Y2xvcGVkaWEgb2YgaW5kdXN0cmlhbCBjaGVtaXN0cnksIHZvbC4gQTIxLiBCLiBFbHZlcnMsIFMuIEhhd2tpbnMgYW5kRy4gU2NodWx6IChlZHMuKS4gVkNILCBXZWluaGVpbSwgR2VybWFueSAoRmVkZXJhbCBSZXB1YmxpYyksIHBwLiAxNDMtMTU2LjwvbGk+IAogIDxsaT5CdWNrcywgRC5BLiwgVC5XLiBTYW1taXMsIGFuZCBHLkwuIERpY2tleS4gMTk5MC4gSXJyaWdhdGlvbiBmb3IgYXJpZGFyZWFzLiBwYWdlcyA0OTktNTQ4LiA8aT5JbjwvaT4gTWFuYWdlbWVudCBvZiBGYXJtIElycmlnYXRpb24gU3lzdGVtcy5HLkouIEhvZmZtYW4sIFQuQS4gSG93ZWxsLCBhbmQgSy5ILiBTb2xvbW9uIChlZHMuKS4gQW0uIFNvYy4gQWcuIEVuZy4gU3QuSm9zZXBoLCBNSS4gPC9saT4gCiAgPGxpPkNhcnRlciwgRC5MLiAxOTkzLiBGdXJyb3cgZXJvc2lvbiBsb3dlcnMgc29pbCBwcm9kdWN0aXZpdHkuIEouIElycmlnLkRyYWluLiBFbmcuIEFTQ0UuIDExOTo5NjQtOTc0LiA8L2xpPiAKICA8bGk+RGUgQm9vZHQsIE0uRi4sIE0uSC5CLiBIYXRlcywgYW5kIEEuIEhlcmJpbGxvbiAoZWRzLikuIDE5OTAuIFNvaWwgQ29sbG9pZHNhbmQgVGhlaXIgQXNzb2NpYXRpb25zIGluIEFnZ3JlZ2F0ZXMuIE5BVE8gQVNJIFNlcmllcyBCOlBoeXNpY3MgVm9sLiAyMTUuNTk4IHBhZ2VzLiBQbGVudW0gUHJlc3MsIE5ZLiA8L2xpPiAKICA8bGk+RGVza2luLCBSLiAxOTk2LiBQcm9kdWN0IHN0ZXdhcmRzaGlwIGNvbnNpZGVyYXRpb25zIGluIHRoZSB1c2Ugb2YgcG9seWFjcnlsYW1pZGVzaW4gc29pbCBlcm9zaW9uLiA8aT5JTjwvaT4gKFIuRS4gU29qa2EgYW5kIFIuRC4gTGVudHosIGVkcykgUHJvY2VlZGluZ3M6TWFuYWdpbmcgaXJyaWdhdGlvbi1pbmR1Y2VkIGVyb3Npb24gYW5kIGluZmlsdHJhdGlvbiB3aXRoIHBvbHlhY3J5bGFtaWRlLkNvbGxlZ2Ugb2YgU291dGhlcm4gSWRhaG8sIFR3aW4gRmFsbHMsIElEIDYtOCBNYXksIDE5OTYuIDwvbGk+IAogIDxsaT5Gb3Juc3Ryb20sIEsuSi4sIGFuZCBKLiBCb3JlbGxpLiAxOTg0LiBEZXNpZ24gYW5kIG1hbmFnZW1lbnQgcHJvY2VkdXJlc2ZvciBtaW5pbWl6aW5nIGVyb3Npb24gZnJvbSBmdXJyb3cgaXJyaWdhdGVkIGNyb3BsYW5kLiBBU0FFIFBhcGVyIDg0LTI1OTUuQVNBRSwgU3QuIEpvc2VwaCwgTUkuIDwvbGk+IAogIDxsaT5HYWJyaWVscywgRC4gMTk5MC4gQXBwbGljYXRpb24gb2Ygc29pbCBjb25kaXRpb25lcnMgZm9yIGFncmljdWx0dXJlYW5kIGVuZ2luZWVyaW5nLiA8aT5JTjwvaT4gU29pbCBDb2xsb2lkcyBhbmQgdGhlaXIgYXNzb2NpYXRpb25zIGluIGFnZ3JlZ2F0ZXMuTS5GLiBEZSBCb29kdCwgTS5IYXllcywgYW5kIEEuIEhlcmJpbGxvbiAoZWRzLikuIFBsZW51bSBQcmVzcywgTmV3IFlvcmsscHAuIDU1Ny01NjUuIDwvbGk+IAogIDxsaT5HbGVpY2ssIFAuSC4gMTk5My4gQW4gaW50cm9kdWN0aW9uIHRvIGdsb2JhbCBmcmVzaCB3YXRlciBpc3N1ZXMuIDxpPkluPC9pPkdsZWljaywgUC5ILiAoZWQuKSBXYXRlciBpbiBDcmlzaXMuIE94Zm9yZCBVbml2ZXJzaXR5IFByZXNzLiBOZXcgWW9yay40NzMgcGFnZXMuIDwvbGk+IAogIDxsaT5Hb29kcmljaCwgTS5TLiwgTC5ILiBEdWxhaywgTS5BLiBGcmVpZG1hbiwgYW5kIEouSi4gTGVjaC4gMTk5MS4gQWN1dGVhbmQgbG9uZ3Rlcm0gdG94aWNpdHkgb2Ygd2F0ZXItc29sdWJsZSBjYXRpb25pYyBwb2x5bWVycyB0byByYWluYm93IHRyb3V0KE9uY29yaHluY2h1cyBteWt1cykgYW5kIHRoZSBtb2RpZmljYXRpb24gb2YgdG94aWNpdHkgYnkgaHVtaWMgYWNpZC4gRW52aXJvbi5Ub3hpY29sLiBDaGVtLiAxMDo1MDktNTUxLiA8L2xpPiAKICA8bGk+SG9mZm1hbiwgRy5KLiwgVC5BLiBIb3dlbGwgYW5kIEsuSC4gU29sb21vbiAoZWRzLikgMTk5MC4gTWFuYWdlbWVudG9mIEZhcm0gSXJyaWdhdGlvbiBTeXN0ZW1zLiAxMDQwIHBhZ2VzLiBBU0FFLCBTdC4gSm9zZXBoLCBNSS4gPC9saT4gCiAgPGxpPktheS1TaG9lbWFrZSwgSi5MLiwgYW5kIE0uRS4gV2F0d29vZC4gMTk5Ni4gVGhlIHJvbGUgb2YgYW1pZGFzZSBpbm1pY3JvYmlhbCB1dGlsaXphdGlvbiBvZiBQQU0gYXMgYW4gTi1zb3VyY2UuIDxpPklOPC9pPiAoUi5FLiBTb2prYSBhbmRSLkQuIExlbnR6LCBlZHMuKSBQcm9jZWVkaW5nczogTWFuYWdpbmcgaXJyaWdhdGlvbi1pbmR1Y2VkIGVyb3Npb24gYW5kaW5maWx0cmF0aW9uIHdpdGggcG9seWFjcnlsYW1pZGUuIENvbGxlZ2Ugb2YgU291dGhlcm4gSWRhaG8sIFR3aW4gRmFsbHMsSUQgNi04IE1heSwgMTk5Ni4gPC9saT4gCiAgPGxpPktlbXBlciwgVy5ELiwgVC5KLiBUcm91dCwgTS5KLiBCcm93biwgYW5kIFIuQy4gUm9zZW5hdS4gMTk4NS4gRnVycm93ZXJvc2lvbiBhbmQgd2F0ZXIgYW5kIHNvaWwgbWFuYWdlbWVudC4gVHJhbnMuIEFTQUUgMjg6MTU2NC0xNTcyLiA8L2xpPiAKICA8bGk+TGVudHosIFIuRC4sIEkuIFNoYWluYmVyZywgUi5FLiBTb2prYSBhbmQgRC5MLiBDYXJ0ZXIuIDE5OTIuIFByZXZlbnRpbmdpcnJpZ2F0aW9uIGZ1cnJvdyBlcm9zaW9uIHdpdGggc21hbGwgYXBwbGljYXRpb25zIG9mIHBvbHltZXJzLiBTb2lsIFNjaS5Tb2MuIEFtLiBKLiA1NjoxOTI2LTE5MzIuIDwvbGk+IAogIDxsaT5MZW50eiwgUi5ELiwgUi5FLiBTb2prYSwgYW5kIEQuTC4gQ2FydGVyLiAxOTkzLiBJbmZsdWVuY2Ugb2YgcG9seW1lcmNoYXJnZSB0eXBlIGFuZCBkZW5zaXR5IG9uIHBvbHlhY3J5bGFtaWRlIGFtZWxpb3JhdGVkIGlycmlnYXRlZCBmdXJyb3dlcm9zaW9uLiA8aT5JTjwvaT4gUHJvYy4sIDI0dGggQW5udWFsIEludGVybmF0aW9uYWwgRXJvc2lvbiBDb250cm9sIEFzc29jaWF0aW9uQ29uZmVyZW5jZSwgMjMtMjYgRmViLiwgMTk5MywgSW5kaWFuYXBvbGlzLCBJTiwgcGFnZXMgMTU5LTE2OC4gPC9saT4gCiAgPGxpPkxlbnR6LCBSLkQuLCBhbmQgUi5FLiBTb2prYS4gMTk5NGEuIEF1dG9tYXRlZCBJbWhvZmYgY29uZSBjYWxpYnJhdGlvbmFuZCBzb2lsIGxvc3MvaW5maWx0cmF0aW9uIGFuYWx5c2lzIGZvciBmdXJyb3cgaXJyaWdhdGlvbiBzdHVkaWVzLiBwLiA4NTgtODYzLjxpPklOPC9pPiBELkcuIFdhdHNvbiwgRi5TLiBTYXN1ZXRhIGFuZCBULlYuIEhhcnJpc29uIChlZHMuKSBDb21wdXRlcnNpbiBBZ3JpY3VsdHVyZSAxOTk0OiBQcm9jLiA1dGggSW50ZXJudCdsIENvbmYuIG9uIENvbXB1dGVycyBpbiBBZ3JpY3VsdHVyZS5PcmxhbmRvLCBGTCA1LTkgRmViLiwgMTk5NC4gQVNBRSwgU3QuIEpvc2VwaCwgTUkuIDwvbGk+IAogIDxsaT5MZW50eiwgUi5ELiBhbmQgUi5FLiBTb2prYS4gMTk5NGIuIEZpZWxkIHJlc3VsdHMgdXNpbmcgcG9seWFjcnlsYW1pZGV0byBtYW5hZ2UgZnVycm93IGVyb3Npb24gYW5kIGluZmlsdHJhdGlvbi4gU29pbCBTY2llbmNlLiAxNTg6LjI3NC0yODIuPC9saT4gCiAgPGxpPkxlbnR6LCBSLkQuLCBULkQuIFN0ZWliZXIsIGFuZCBSLkUuIFNvamthLiAxOTk1LiBBcHBseWluZyBwb2x5YWNyeWxhbWlkZShQQU0pIHRvIHJlZHVjZSBlcm9zaW9uIGFuZCBpbmNyZWFzZSBpbmZpbHRyYXRpb24gdW5kZXIgZnVycm93IGlycmlnYXRpb24uPGk+SU48L2k+OiBSb2JlcnRzb24sIEwuRC4sIE5vbHRlLCBQLiwgVm9kcmFza2EsIEIuLCBLaW5nLCBCLiwgVGluZGFsbCxULiwgUm9tYW5rbywgUi4gYW5kIEdhbGxpYW4sIEouIChlZHMuKS4gUHJvYy4gV2ludGVyIENvbW1vZGl0eSBTY2hvb2xzLS0xOTk1LnBhZ2VzIDc5LTkyLiBVbml2ZXJzaXR5IG9mIElkYWhvIENvb3BlcmF0aXZlIEV4dGVuc2lvbiwgTW9zY293LCBJRC4gPC9saT4gCiAgPGxpPkxlbnR6LCBSLkQuLCBhbmQgUi5FLiBTb2prYS4gMTk5NS4gTW9uaXRvcmluZyBzb2Z0d2FyZSBmb3IgcG9sbHV0YW50Y29tcG9uZW50cyBpbiBmdXJyb3cgaXJyaWdhdGlvbiBydW5vZmYuIHAuIDEyMy0xMjcuIDxpPklOPC9pPiBMLiBBaHVqYSxKLiBMZXBwZXJ0LCBLLiBSb2phcywgYW5kIEUuIFNlZWx5IChlZHMuKSBQcm9jLiBXb3Jrc2hvcCBvbiBDb21wdXRlciBBcHBsaWNhdGlvbnNpbiBXYXRlciBNYW5hZ2VtZW50LCAyMy0yNSBNYXksIDE5OTUsIENvbG9yYWRvIFN0YXRlIFVuaXZlcnNpdHkgV2F0ZXIgUmVzb3VyY2VzUmVzZWFyY2ggSW5zdGl0dXRlIEluZm8uIHNlcmllcyBOby4gNzkuIDwvbGk+IAogIDxsaT5MZW50eiwgUi5ELiAxOTk1LiBJcnJpZ2F0aW9uOiBVc2Ugb2Ygd2F0ZXIgc29sdWJsZSBwb2x5YWNyeWxhbWlkZSB0b2NvbnRyb2wgZnVycm93IGlycmlnYXRpb24taW5kdWNlZCBlcm9zaW9uLiBwLiAxNjItMTY1LiA8aT5JTjwvaT4gUy5QLiBQYXJrZXIoZWQuKSBZZWFyYm9vayBvZiBTY2llbmNlIGFuZCBUZWNobm9sb2d5IDE5OTYuIE1jR3JhdyBIaWxsLCBJbmMuIE5ZLiA8L2xpPiAKICA8bGk+TGVudHosIFIuRC4sIGFuZCBSLkUuIFNvamthLiAxOTk2YS4gUG9seWFjcnlsYW1pZGUgYXBwbGljYXRpb24gdG8gY29udHJvbGZ1cnJvdyBpcnJpZ2F0aW9uLWluZHVjZWQgZXJvc2lvbi4gUHJvY2VlZGluZ3Mgb2YgdGhlIDI3dGggSW50ZXJuYXRpb25hbEVyb3Npb24gQ29udHJvbCBBc3NvY2lhdGlvbiBtZWV0aW5ncywgcGFnZXMgNDE5LTQzMC4gU2VhdHRsZSBXYXNoaW5ndG9uLDI3IEZlYi4tMSBNYXIuLCAxOTk2LiA8L2xpPiAKICA8bGk+TGVudHosIFIuRC4sIGFuZCBSLkUuIFNvamthLiAxOTk2Yi4gRml2ZXIteWVhciByZXNlYXJjaCBzdW1tYXJ5IHVzaW5nUEFNIGluIGZ1cnJvdyBpcnJpZ2F0aW9uLiA8aT5JTjwvaT4gKFIuRS4gU29qa2EgYW5kIFIuRC4gTGVudHosIGVkcykgUHJvY2VlZGluZ3M6TWFuYWdpbmcgaXJyaWdhdGlvbi1pbmR1Y2VkIGVyb3Npb24gYW5kIGluZmlsdHJhdGlvbiB3aXRoIHBvbHlhY3J5bGFtaWRlLkNvbGxlZ2Ugb2YgU291dGhlcm4gSWRhaG8sIFR3aW4gRmFsbHMsIElEIDYtOCBNYXksIDE5OTYuIDwvbGk+IAogIDxsaT5MZW50eiwgUi5ELiwgYW5kIFIuRS4gU29qa2EuIDE5OTZjLiBEZXRlcm1pbmluZyB0aGUgZHJ5IFBBTSBhcHBsaWNhdGlvbnJhdGUgYXBwbGllZCB0byBoZWFkIGRpdGNoIG9yIHBpcGUgZmxvdy4gVVNEQS1BUlMgTm9ydGh3ZXN0IElycmlnYXRpb24mIFNvaWxzIFJlc2VhcmNoIExhYiBTdGF0aW9uIE5vdGUgIzAxLTk2LiA8L2xpPiAKICA8bGk+TGVudHosIFIuRC4sIGFuZCBSLkUuIFNvamthLiAxOTk2ZC4gRGV0ZXJtaW5pbmcgZHJ5IFBBTSBhbW91bnRzIGFwcGxpZWRkaXJlY3RseSBpbiBpbmRpdmlkdWFsIGZ1cnJvd3MuIFVTREEtQVJTIE5vcnRod2VzdCBJcnJpZ2F0aW9uICYgU29pbHNSZXNlYXJjaCBMYWIgU3RhdGlvbiBOb3RlICMwMi05Ni4gPC9saT4gCiAgPGxpPkxlbnR6LCBSLkQuLCBhbmQgUi5FLiBTb2prYS4gMTk5NmUuIERldGVybWluaW5nIGRyeSBQQU0gYW1vdW50cyBhcHBsaWVkZGlyZWN0bHkgaW4gaW5kaXZpZHVhbCBmdXJyb3dzLiBVU0RBLUFSUyBOb3J0aHdlc3QgSXJyaWdhdGlvbiAmIFNvaWxzUmVzZWFyY2ggTGFiIFN0YXRpb24gTm90ZSAjMDMtOTYuIDwvbGk+IAogIDxsaT5MZW50eiwgUi5ELiwgYW5kIFIuRS4gU29qa2EuIDE5OTZmLiBEZXRlcm1pbmluZyB0aGUgUEFNIGZpZWxkIGFwcGxpY2F0aW9ucmF0ZSBmb3IgdmFyaW91cyBpcnJpZ2F0aW9uIGNvbmRpdGlvbnMsIHdoZW4gdGhlIFBBTS10cmVhdGVkIGZ1cnJvdyBhZHZhbmNlaXMgMC0xMiBob3Vycy4gVVNEQS1BUlMgTm9ydGh3ZXN0IElycmlnYXRpb24gJiBTb2lscyBSZXNlYXJjaCBMYWIgU3RhdGlvbk5vdGUgIzA0LTk2LiA8L2xpPiAKICA8bGk+TGVudHosIFIuRC4sIFIuRS4gU29qa2EgYW5kIEouQS4gRm9lcnN0ZXIuIDE5OTYuIE1lYXN1cmluZyBwb2x5YWNyeWxhbWlkZWluIGlycmlnYXRpb24gd2F0ZXIgd2l0aCBhIGZsb2NjdWxhdGlvbiB0ZXN0LiBKLkVudmlyb24uIFF1YWwuIChJbiBQcmVzcykuPC9saT4gCiAgPGxpPk1hY1dpbGxpYW1zLCBELkMuIDE5NzguIEFjcnlsYW1pZGVzLiA8aT5JTjwvaT4gRW5jeWNsb3BlZGlhIG9mIGNoZW1pY2FsdGVjaG5vbG9neSwgM3JkLiBFZC4sIHZvbCAxLiBJLiBLaXJrIGFuZCBELkYuIE90aG1lciAoZWRzLikuIFdpbGV5LCBOZXdZb3JrLCBwcC4gMjk4LTMxMS4gPC9saT4gCiAgPGxpPk1hbGlrLCBNLCBBLiBOYWRsZXIsIGFuZCBKLiBMZXRleS4gMTk5MS4gTW9iaWxpdHkgb2YgcG9seWFjcnlsYW1pZGVhbmQgcG9seXNhY2NoYXJpZGUgcG9seW1lciB0aHJvdWdoIHNvaWwgbWF0ZXJpYWxzLiBTb2lsIFRlY2hub2wuIDQ6MjU1LTI2My48L2xpPiAKICA8bGk+TWFsaWssIE0sIGFuZCBKLiBMZXRleS4gMTk5Mi4gUG9yZS1zaXplLWRlcGVuZGVudCBhcHBhcmVudCB2aXNjb3NpdHlmb3Igb3JnYW5pYyBzb2x1dGVzIGluIHNhdHVyYXRlZCBwb3JvdXMgbWVkaWEuIFNvaWwgU2NpLiBTb2MuIEFtLiBKLiA1NjoxMDMyLTEwMzUuPC9saT4gCiAgPGxpPk1jQ3V0Y2hhbiwgSC4sIFAuIE9zdGVybGksIGFuZCBKLiBMZXRleS4gMTk5NC4gUG9seW1lcnMgY2hlY2sgZnVycm93ZXJvc2lvbiwgaGVscCByaXZlciBsaWZlLiBDYWxpZi4gQWcuIDQ3OjEwLTExLiA8L2xpPiAKICA8bGk+TWl0Y2hlbGwsIEEuUi4gMTk4Ni4gUG9seWFjcnlsYW1pZGUgYXBwbGljYXRpb24gaW4gaXJyaWdhdGlvbiB3YXRlcnRvIGluY3JlYXNlIGluZmlsdHJhdGlvbi4gU29pbCBTY2kuIDE0MTozNTMtMzU4LiA8L2xpPiAKICA8bGk+UmFuZ2VsZXksIFcuUi4gMTk4Ny4gSXJyaWdhdGlvbiBhbmQgZHJhaW5hZ2UgaW4gdGhlIHdvcmxkLiBwLjI5LTM1LjxpPkluPC9pPiBQcm9jLiBXYXRlciBhbmQgV2F0ZXIgUG9saWN5IGluIFdvcmxkIEZvb2QgU3VwcGxpZXMgQ29uZi4gVy5SLkpvcmRhbiAoZWQuKS4gQ29sbGVnZSBTdGF0aW9uOiBUZXhhcyBBICYgTSBVbml2LiBQcmVzcy4gPC9saT4gCiAgPGxpPlJvc3MsIE0uQS4sIGFuZCBDLkEuIExlbWJpLiAxOTg1LiBBcHBsaWVkIFdlZWQgU2NpZW5jZS4gMzQwIHBhZ2VzLk1jTWlsbGFuIGFuZCBDb21wYW55LiBOZXcgWW9yay4gPC9saT4gCiAgPGxpPlJvc3MsIEMuVy4sIFIuRS4gU29qa2EsIFIuRC4gTGVudHouIDE5OTYuIFBvbHlhY3J5bGFtaWRlIGFzIGEgdG9vbGZvciBjb250cm9sbGluZyBzZWRpbWVudCBydW5vZmYgYW5kIGltcHJvdmluZyBpbmZpbHRyYXRpb24gdW5kZXIgZnVycm93aXJyaWdhdGlvbi4gUHJvY2VlZGluZ3MgQXVzdHJhbGlhICYgTmV3IFplYWxhbmQgTmF0aW9uYWwgU29pbHMgQ29uZmVyZW5jZSxNZWxib3VybmUsIEF1c3RyYWxpYS4gSnVseSwgMTk5Ni4gKEluIFByZXNzKS4gPC9saT4gCiAgPGxpPlBhZ2FueWFzLCBLLlAuIDE5NzUuIFJlc3VsdHMgb2YgdGhlIHVzZSBvZiBzZXJpZXMgJnF1b3Q7SyZxdW90OyBjb21wb3VuZHNmb3IgdGhlIGNvbnRyb2wgb2YgaXJyaWdhdGlvbmFsIHNvaWwgZXJvc2lvbi4gU292LiBTb2lsIFNjaS4gNTo1OTEtNTk4LjwvbGk+IAogIDxsaT5TZXlib2xkLCBDLkEuIDE5OTQuIFBvbHlhY3J5bGFtaWRlIHJldmlldzogU29pbCBjb25kaXRpb25pbmcgYW5kIGVudmlyb25tZW50YWxmYXRlLiBDb21tLiBTb2lsIFNjaS4gUGxhbnQuIEFuYWwuIDI1OjIxNzEtMjE4NS4gPC9saT4gCiAgPGxpPlNpbmdoLCBHLiwgSi4gTGV0ZXksIFAuIEhhbnNvbiwgUC4gT3N0ZXJsaSwgYW5kIFcuRi4gU3BlbmNlci4gMTk5Ni5Tb2lsIGVyb3Npb24gYW5kIHBlc3RpY2lkZSB0cmFuc3BvcnQgZnJvbSBhbiBpcnJpZ2F0ZWQgZmllbGQuIEouIEVudmlyb24uU2NpLiBIZWFsdGggQjMxICgxKSwgMjUtNDEuIDwvbGk+IAogIDxsaT5Tb2prYSwgUi5FLiwgQ2FydGVyLCBELkwuIGFuZCBNLkouIEJyb3duLiAxOTkyLiBJbWhvZmYgY29uZSBkZXRlcm1pbmF0aW9ub2Ygc2VkaW1lbnQgaW4gaXJyaWdhdGlvbiBydW5vZmYuIFNvaWwuIFNjaS4gU29jLiBBbS4gSi4gNTY6ODg0LTg5MC4gPC9saT4gCiAgPGxpPlNvamthLCBSLkUuLCBhbmQgUi5ELiBMZW50ei4gMTk5My4gSW1wcm92aW5nIHdhdGVyIHF1YWxpdHkgb2YgcmV0dXJuZmxvd3MgaW4gZnVycm93LWlycmlnYXRlZCBzeXN0ZW1zIHVzaW5nIHBvbHltZXItYW1lbmRlZCBpbmZsb3dzLiBQcm9jZWVkaW5nc29mIHRoZSBTV0NTIENvbmZlcmVuY2Ugb24gQWdyaWN1bHR1cmFsIFJlc2VhcmNoIHRvIFByb3RlY3QgV2F0ZXIgUXVhbGl0eSwyMS0yNCBGZWIuLCAxOTkzLiBNaW5uZWFwb2xpcywgTWlubiwgcHAuIDM5NS0zOTcuIDwvbGk+IAogIDxsaT5Tb2prYSwgUi5FLiBhbmQgUi5ELiBMZW50ei4gMTk5NGEuIE5ldCBpbmZpbHRyYXRpb24gYW5kIHNvaWwgZXJvc2lvbmVmZmVjdHMgb2YgYSBmZXcgcHBtIHBvbHlhY3J5bGFtaWRlIGluIGZ1cnJvdyBpcnJpZ2F0aW9uIHdhdGVyLiBwLiAzNDktMzU0LjxpPklOPC9pPjogU28sIEguQi4sIFNtaXRoLCBHLkQuLCBSYWluZSwgUy5SLiwgU2NoYWZlciwgQi5NLiwgYW5kIExvY2hSLkouIChlZHMuKSBTZWFsaW5nLCBDcnVzdGluZyBhbmQgSGFyZHNldHRpbmcgU29pbHM6IFByb2MuIDJuZCBJbnRlcm5hdCdsU3ltcG9zaXVtLiA3LTExIEZlYi4sIDE5OTQuIFVuaXZlcnNpdHkgb2YgUXVlZW5zbGFuZCwgQnJpc2JhbmUsIEF1c3RyYWxpYS48L2xpPiAKICA8bGk+U29qa2EsIFIuRS4gYW5kIFIuRC4gTGVudHouIDE5OTRiLiBQb2x5YWNyeWxhbWlkZSAoUEFNKTogQSBuZXcgd2VhcG9uaW4gdGhlIGZpZ2h0IGFnYWluc3QgSXJyaWdhdGlvbi1pbmR1Y2VkIGVyb3Npb24uIFVTREEtQVJTIFNvaWwgYW5kIFdhdGVyTWFuYWdlbWVudCBSZXNlYXJjaCBVbml0LCBTdGF0aW9uIE5vdGUgIzAxLTk0LiA8L2xpPiAKICA8bGk+U29qa2EsIFIuRS4sIFIuRC4gTGVudHogYW5kIEouQS4gRm9lcnN0ZXIuIDE5OTQuIFNvZnR3YXJlIHV0aWxpemluZ0ltaG9mZiBjb25lIHZvbHVtZXMgdG8gZXN0aW1hdGUgZnVycm93LWlycmlnYXRpb24gZXJvc2lvbi4gSi4gU29pbCBhbmRXYXRlciBDb25zLiA0OTo0MDAtNDA2LiA8L2xpPiAKICA8bGk+U29qa2EsIFIuRS4sIFIuRC4gTGVudHosIGFuZCBELlQuIFdlc3Rlcm1hbm4uIDE5OTUuIFdhdGVyIGFuZCBlcm9zaW9ubWFuYWdlbWVudCB3aXRoIFBBTSBpbiBmdXJyb3cgaXJyaWdhdGVkIHBvdGF0b2VzLiBwYWdlIDI4NC4gQWdyb25vbXkgQWJzdHJhY3RzMTk5NS4gPC9saT4gCiAgPGxpPlNvamthLCBSLkUuLCBSLkQuIExlbnR6LCBDLlcuIFJvc3MsIGFuZCBULkouIFRyb3V0LiAxOTk2LiBOZXQgYW5kIHRlbnNpb25pbmZpbHRyYXRpb24gZWZmZWN0cyB3aXRoIFBBTSBpbiBmdXJyb3cgaXJyaWdhdGlvbi4gPGk+SU48L2k+IChSLkUuIFNvamthYW5kIFIuRC4gTGVudHosIGVkcykgUHJvY2VlZGluZ3M6IE1hbmFnaW5nIGlycmlnYXRpb24taW5kdWNlZCBlcm9zaW9uIGFuZGluZmlsdHJhdGlvbiB3aXRoIHBvbHlhY3J5bGFtaWRlLiBDb2xsZWdlIG9mIFNvdXRoZXJuIElkYWhvLCBUd2luIEZhbGxzLElEIDYtOCBNYXksIDE5OTYuIDwvbGk+IAogIDxsaT5Tb2prYSwgUi5FLiwgYW5kIFIuRC4gTGVudHouIDE5OTYuIFBvbHlhY3J5bGFtaWRlIGZvciBmdXJyb3ctaXJyaWdhdGlvbmVyb3Npb24gY29udHJvbC4gSXJyaWcuIEouIDQ2OjgtMTEuIDwvbGk+IAogIDxsaT5Tb2prYSwgUi5FLiAxOTk2LiBJcnJpZ2F0aW9uLiBJbiBTeWJpbCBQYXJrZXIgKGVkKSAxOTk3IFllYXJib29rIG9mU2NpZW5jZSBhbmQgVGVjaG5vbG9neS4gTWNHcmF3IEhpbGwsIE5ldyBZb3JrLiAoSW4gUHJlc3MpLiA8L2xpPiAKICA8bGk+U29qa2EsIFIuRS4gMTk5Ny4gUmVzZWFyY2ggY29udHJpYnV0aW9uIHRvIHRoZSB1bmRlcnN0YW5kaW5nIGFuZCBtYW5hZ2VtZW50b2YgaXJyaWdhdGlvbi1pbmR1Y2VkIGVyb3Npb24uIDUwdGggQW5uaXZlcnNhcnkgU3ltcG9zaXVtIG9uIFNvaWwgQ29uc2VydmF0aW9uUmVzZWFyY2guIEouIFNvaWwgV2F0ZXIgQ29uc2Vydi4gU3BlY2lhbCBQdWIuIEYuSi4gUGllcmNlIChlZCkgKEluIFByZXNzKS48L2xpPiAKICA8bGk+VHJpYmUsIEQuIDE5OTQuIEZlZWRpbmcgYW5kIEdyZWVuaW5nIHRoZSBXb3JsZCwgdGhlIFJvbGUgb2YgQWdyaWN1bHR1cmFsUmVzZWFyY2guIDI3NCBwYWdlcy4gQ0FCIEludGVybmF0aW9uYWwuIFdhbGxpbmdmb3JkLCBPeG9uLCBVSy4gPC9saT4gCiAgPGxpPlRyb3V0LCBULkouLCBSLkUuIFNvamthIGFuZCBSLkQuIExlbnR6LiAxOTk1LiBQb2x5YWNyeWxhbWlkZSBlZmZlY3RvbiBmdXJyb3cgZXJvc2lvbiBhbmQgaW5maWx0cmF0aW9uLiBUcmFucy4gQVNBRS4gMzgoMyk6NzYxLTc2NS4gPC9saT4gCiAgPGxpPlRyb3V0LCBULkouLCBhbmQgUi5ELiBMZW50ei4gMTk5My4gUG9seWFjcnlsYW1pZGUgZGVjcmVhc2VzIGZ1cnJvd2Vyb3Npb24uIDxpPklOPC9pPjogUi5HLiBBbGxlbiBhbmQgQy5NLlUuIE5lYWxlIChlZHMuKSBNYW5hZ2VtZW50IG9mIElycmlnYXRpb25hbmQgRHJhaW5hZ2UgU3lzdGVtczogSW50ZWdyYXRlZCBQZXJzcGVjdGl2ZXMuIFByb2NlZWRpbmdzIG9mIHRoZSAxOTkzTmF0J2wgQ29uZi4gb24gSXJyaWcuIGFuZCBEcmFpbmFnZSBFbmdpbmVlcmluZy4gUGFyayBDaXR5LCBVVCwgMjEtMjMgSnVseS48L2xpPiAKICA8bGk+VHJvdXQsIFQuSi4gMTk5Ni4gRnVycm93IGlycmlnYXRpb24gZXJvc2lvbiBhbmQgc2VkaW1lbnRhdGlvbjogb24tZmllbGRkaXN0cmlidXRpb24uIFRyYW5zLiBBU0FFIChJbiBQcmVzcykgPC9saT4gCiAgPGxpPldhdHdvb2QsIE0uRS4sIGFuZCBKLkwuIEtheS1TaG9lbWFrZS4gMTk5Ni4gTWljcm9iaWFsIGVjb2xvZ3kgb2YgcG9seWFjcnlsYW1pZGVhcHBsaWNhdGlvbiBpbiBhZ3JpY3VsdHVyYWwgc29pbHMuIDxpPklOPC9pPiAoUi5FLiBTb2prYSBhbmQgUi5ELiBMZW50eixlZHMuKSBQcm9jZWVkaW5nczogTWFuYWdpbmcgaXJyaWdhdGlvbi1pbmR1Y2VkIGVyb3Npb24gYW5kIGluZmlsdHJhdGlvbndpdGggcG9seWFjcnlsYW1pZGUuIENvbGxlZ2Ugb2YgU291dGhlcm4gSWRhaG8sIFR3aW4gRmFsbHMsIElEIDYtOCBNYXksMTk5Ni4gPC9saT4gCiAgPGxpPldpbHNvbiwgQS5ELiBhbmQgUy4gQ3Jpc3AuIDE5NzUuIFJpZ2lkIGhpZ2hseSBjYXJib3h5bGF0ZWQgaW9uaWMgcG9seW1lcnMuPGk+SU48L2k+IElvbmljIFBvbHltZXJzLiBMLiBIb2xpZGF5IChlZC4pLiBDaGFwbWFuIGFuZCBIYWxsLCBOZXcgWW9yayxwcCAyMDgtMjU3LiA8L2xpPiAKPC9vbD4gCjxociAvPiAKPHA+PGEgbmFtZT0iTl8xXyI+MS48L2E+IFNvaWwgU2NpZW50aXN0cywgVVNEQS1BZ3JpY3VsdHVyYWwgUmVzZWFyY2ggU2VydmljZSwgCk5vcnRod2VzdCBJcnJpZ2F0aW9uIGFuZCBTb2lscyBSZXNlYXJjaCBMYWJvcmF0b3J5LCAzNzkzIE4uIDM2MDAgRS4gS2ltYmVybHksIApJRCA4MzM0MS48L3A+IAo8cD48YSBuYW1lPSJOXzJfIj48L2E+Mi4gTWVudGlvbiBvZiB0cmFkZW1hcmtzLCBwcm9wcmlldGFyeSBwcm9kdWN0cywgb3IgCnZlbmRvcnMgbmVpdGhlciBjb25zdGl0dXRlcyBhIGd1YXJhbnRlZSBvciB3YXJyYW50eSBvZiB0aGUgcHJvZHVjdCBieSB0aGUgClVTREEtQWdyaWN1bHR1cmFsIFJlc2VhcmNoIFNlcnZpY2Ugbm9yIGltcGxpZXMgaXRzIGFwcHJvdmFsIHRvIHRoZSBleGNsdXNpb24gCm9mIG90aGVyIHN1aXRhYmxlIHByb2R1Y3RzIG9yIHZlbmRvcnMuIDwvcD4gCjxociAvPiAKPHA+IAo8Y2VudGVyPlN1Ym1pdHRlZDogMDMtMTgtMTk5NzwvY2VudGVyPiAKPC9wPg==