LlwiIFRoaXMgaXMgYW4gLSotIG5yb2ZmIC0qLSBzb3VyY2UgZmlsZS4KLlwiIGRwa2ctbmFtZSBhbmQgdGhpcyBtYW5wYWdlIGFyZSBDb3B5cmlnaHQgwqkgMTk5NSwxOTk2IGJ5IEVyaWNrIEJyYW5kZXJob3JzdC4KLlwiCi5cIiBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2VuY2UgdmVyc2lvbiAyCi5cIiBvciBsYXRlciBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8gd2FycmFudHkuCi5cIioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLlwiCi5cIiBUaGlzIGZpbGUgd2FzIGdlbmVyYXRlZCB3aXRoIHBvNGEuIFRyYW5zbGF0ZSB0aGUgc291cmNlIGZpbGUuCi5cIgouXCIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi5USCBkcGtnXC1uYW1lIDEgMjAxMVwtMDhcLTE0ICJQcm9qZXQgRGViaWFuIiAiVXRpbGl0YWlyZXMgZGUgZHBrZyIKLlNIIE5PTQpkcGtnXC1uYW1lIFwtIHJlZG9ubmUgYXV4IHBhcXVldHMgRGViaWFuIGxldXIgbm9tIGNvbXBsZXQKLgouU0ggU1lOT1BTSVMKXGZCZHBrZ1wtbmFtZVxmUCBbXGZJb3B0aW9uXGZQLi4uXSBbXGZCXC1cLVxmUF0gXGZJZmlsZVxmUC4uLgouCi5TSCBERVNDUklQVElPTgouUFAKVGhpcyBtYW51YWwgcGFnZSBkb2N1bWVudHMgdGhlIFxmQmRwa2dcLW5hbWVcZlAgcHJvZ3JhbSB3aGljaCBwcm92aWRlcyBhbiBlYXN5CndheSB0byByZW5hbWUgXGZCRGViaWFuXGZQIHBhY2thZ2VzIGludG8gdGhlaXIgZnVsbCBwYWNrYWdlIG5hbWVzLiBBIGZ1bGwKcGFja2FnZSBuYW1lIGNvbnNpc3RzIG9mClxmSXBhY2thZ2VcZlBcZkJfXGZQXGZJdmVyc2lvblxmUFxmQl9cZlBcZklhcmNoaXRlY3R1cmVcZlBcZkIuXGZQXGZJcGFja2FnZVwtdHlwZVxmUCBhcyBzcGVjaWZpZWQKaW4gdGhlIGNvbnRyb2wgZmlsZSBvZiB0aGUgcGFja2FnZS4gVGhlIFxmSXZlcnNpb25cZlAgcGFydCBvZiB0aGUgZmlsZW5hbWUKY29uc2lzdHMgb2YgdGhlIHVwc3RyZWFtIHZlcnNpb24gaW5mb3JtYXRpb24gb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhIGh5cGhlbgphbmQgdGhlIHJldmlzaW9uIGluZm9ybWF0aW9uLiBUaGUgXGZJcGFja2FnZVwtdHlwZVxmUCBwYXJ0IGNvbWVzIGZyb20gdGhhdCBmaWVsZAppZiBwcmVzZW50IG9yIGZhbGxiYWNrcyB0byBcZkJkZWJcZlAuCi4KLlNIIE9QVElPTlMKLlRQIApcZkJcLWFcZlAsIFxmQlwtXC1ub1wtYXJjaGl0ZWN0dXJlXGZQCkxlIG5vbSBkdSBmaWNoaWVyIG4nYXVyYSBwYXMgbCdpbmZvcm1hdGlvbiBzdXIgbCdhcmNoaXRlY3R1cmUuCi5UUCAKXGZCXC1rXGZQLCBcZkJcLVwtc3ltbGlua1xmUApGYWlyZSB1biBsaWVuIHN5bWJvbGlxdWUgcGx1dPR0IHF1J3VuZSBjculhdGlvbiBkZSBmaWNoaWVyLgouVFAgClxmQlwtb1xmUCwgXGZCXC1cLW92ZXJ3cml0ZVxmUApSZW1wbGFjZSBkZXMgZmljaGllcnMgZXhpc3RhbnRzIHMnaWxzIG9udCBsZSBt6m1lIG5vbSBxdWUgbGUgZmljaGllciBkZQpkZXN0aW5hdGlvbi4KLlRQIApcZkJcLXNcZlAsIFxmQlwtXC1zdWJkaXJcZlAgW1xmSXJlcFxmUF0KRmlsZXMgd2lsbCBiZSBtb3ZlZCBpbnRvIGEgc3ViZGlyZWN0b3J5LiBJZiB0aGUgZGlyZWN0b3J5IGdpdmVuIGFzIGFyZ3VtZW50CmV4aXN0cyB0aGUgZmlsZXMgd2lsbCBiZSBtb3ZlZCBpbnRvIHRoYXQgZGlyZWN0b3J5IG90aGVyd2lzZSB0aGUgbmFtZSBvZiB0aGUKdGFyZ2V0IGRpcmVjdG9yeSBpcyBleHRyYWN0ZWQgZnJvbSB0aGUgc2VjdGlvbiBmaWVsZCBpbiB0aGUgY29udHJvbCBwYXJ0IG9mCnRoZSBwYWNrYWdlLiBUaGUgdGFyZ2V0IGRpcmVjdG9yeSB3aWxsIGJlCmB1bnN0YWJsZS9iaW5hcnlcLVxmSWFyY2hpdGVjdHVyZVxmUC9cZklzZWN0aW9uXGZQJy4gSWYgdGhlIHNlY3Rpb24gaXMgbm90IGZvdW5kIGluCnRoZSBjb250cm9sLCB0aGVuIGBub1wtc2VjdGlvbicgaXMgYXNzdW1lZCwgYW5kIGluIHRoaXMgY2FzZSwgYXMgd2VsbCBhcyBmb3IKc2VjdGlvbnMgYG5vblwtZnJlZScgYW5kIGBjb250cmliJyB0aGUgdGFyZ2V0IGRpcmVjdG9yeSBpcwpgXGZJc2VjdGlvblxmUC9iaW5hcnlcLVxmSWFyY2hpdGVjdHVyZVxmUCcuIFRoZSBzZWN0aW9uIGZpZWxkIGlzbid0IHJlcXVpcmVkIHNvIGEKbG90IG9mIHBhY2thZ2VzIHdpbGwgZmluZCB0aGVpciB3YXkgdG8gdGhlIGBub1wtc2VjdGlvbicgYXJlYS4gVXNlIHRoaXMKb3B0aW9uIHdpdGggY2FyZSwgaXQncyBtZXNzeS4KLlRQIApcZkJcLWNcZlAsIFxmQlwtXC1jcmVhdGVcLWRpclxmUApPbiBwZXV0IHV0aWxpc2VyIGNldHRlIG9wdGlvbiBhdmVjIGwnb3B0aW9uIFwtcy4gUXVhbmQgdW4gculwZXJ0b2lyZSBjaWJsZQpuJ2VzdCBwYXMgdHJvdXbpLCBpbCBlc3QgY3Lp6SBhdXRvbWF0aXF1ZW1lbnQuICBcZkJVdGlsaXNleiBjZXR0ZSBvcHRpb24gYXZlYwpzb2luLlxmUAouVFAgClxmQlwtaFxmUCwgXGZCXC1cLWhlbHBcZlAKQWZmaWNoZSB1biBtZXNzYWdlIGQnYWlkZSBwdWlzIHF1aXR0ZS4KLlRQIApcZkJcLXZcZlAsIFxmQlwtXC12ZXJzaW9uXGZQCkFmZmljaGUgbGUgbnVt6XJvIGRlIHZlcnNpb24gcHVpcyBxdWl0dGUuCi4KLlNIIEVYRU1QTEVTCi5UUCAKXGZCZHBrZ1wtbmFtZSBiYXJcLWZvby5kZWJcZlAKTGUgbm9tIGR1IGZpY2hpZXIgq1wgYmFyXC1mb28uZGViXCC7IGRldmllbnQgq1wgYmFyXC1mb29fMS4wXC0yX2kzODYuZGViXCC7IG91CnF1ZWxxdWUgY2hvc2UgZGUgc2ltaWxhaXJlIHN1aXZhbnQgbGVzIHJlbnNlaWduZW1lbnRzIHF1ZSBjb250aWVudCBsYSBwYXJ0aWUKZGUgY29udHL0bGUgZGUgq1wgYmFyXC1mb28uZGViXCC7LgouVFAgClxmQmZpbmQgL3Jvb3QvZGViaWFuLyBcLW5hbWUgXChhcSouZGViXChhcSB8IHhhcmdzIFwtbiAxIGRwa2dcLW5hbWUgXC1hXGZQCkNldHRlIGNvbW1hbmRlIHJlZG9ubmUgbGV1ciBub20gY29tcGxldCDgIHRvdXMgbGVzIGZpY2hpZXJzIHF1aSBzZSB0cm91dmVudApkYW5zIGxlIHLpcGVydG9pcmUgL3Jvb3QvZGViaWFuIGV0IHNlcyBzb3VzXC1y6XBlcnRvaXJlcyBldCBxdWkgcG9zc+hkZW50IHVuZQpleHRlbnNpb24gq1wgZGViXCC7LCBtYWlzIHN1cHByaW1lIGwnaW5mb3JtYXRpb24gc3VyIGwnYXJjaGl0ZWN0dXJlLgouVFAgClxmQmZpbmQgXC1uYW1lIFwoYXEqLmRlYlwoYXEgfCB4YXJncyBcLW4gMSBkcGtnXC1uYW1lIFwtYSBcLW8gXC1zIFwtY1xmUApcZkJOZSBmYWl0ZXMgcGFzIOdhXCAhXGZQIEwnYXJjaGl2ZSBzZXJhIGNvbXBs6HRlbWVudCBn4mNo6WUgcGFyIGRlcyBwYXF1ZXRzIHF1aQpuZSBwb3Nz6GRlbnQgcGFzIGQnaW5mb3JtYXRpb25zIHN1ciBsYSBzZWN0aW9uLiBcZkJOZSBmYWl0ZXMgcGFzIOdhXCAhXGZQCi5UUCAKXGZCZHBrZyBcLVwtYnVpbGQgZGViaWFuXC10bXAgJiYgZHBrZ1wtbmFtZSBcLW8gXC1zIC4uIGRlYmlhblwtdG1wLmRlYlxmUApPbiBwZXV0IHNlIHNlcnZpciBkZSBjZXR0ZSBjb21tYW5kZSBsb3JzIGRlIGxhIGNvbnN0cnVjdGlvbiBkJ3VuIG5vdXZlYXUKcGFxdWV0LgouCi5TSCBCT0dVRVMKU29tZSBwYWNrYWdlcyBkb24ndCBmb2xsb3cgdGhlIG5hbWUgc3RydWN0dXJlClxmSXBhY2thZ2VcZlBcZkJfXGZQXGZJdmVyc2lvblxmUFxmQl9cZlBcZklhcmNoaXRlY3R1cmVcZlBcZkIuZGViXGZQLiAgUGFja2FnZXMgcmVuYW1lZCBieQpkcGtnXC1uYW1lIHdpbGwgZm9sbG93IHRoaXMgc3RydWN0dXJlLiBHZW5lcmFsbHkgdGhpcyB3aWxsIGhhdmUgbm8gaW1wYWN0IG9uCmhvdyBwYWNrYWdlcyBhcmUgaW5zdGFsbGVkIGJ5IFxmQmRzZWxlY3RcZlAoMSkvXGZCZHBrZ1xmUCgxKSwgYnV0IG90aGVyCmluc3RhbGxhdGlvbiB0b29scyBtaWdodCBkZXBlbmQgb24gdGhpcyBuYW1pbmcgc3RydWN0dXJlLgouCi5TSCAiVk9JUiBBVVNTSSIKXGZCZGViXGZQKDUpLCBcZkJkZWJcLWNvbnRyb2xcZlAoNSksIFxmQmRwa2dcZlAoMSksIFxmQmRwa2dcLWRlYlxmUCgxKSwgXGZCZmluZFxmUCgxKSwKXGZCeGFyZ3NcZlAoMSkuCi4KLlNIIEFVVEVVUgpDb3B5cmlnaHQgXChjbyAxOTk1LDE5OTYgRXJpY2sgQnJhbmRlcmhvcnN0Ci5zcApDZSBwcm9ncmFtbWUgZXN0IHVuIGxvZ2ljaWVsIGxpYnJlXCA7IHZveWV6IGxhIKtcIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbmNlXCC7CnZlcnNpb24gMiBvdSBzdXDpcmlldXJlIHBvdXIgbGUgY29weXJpZ2h0LiBJbCBuJ3kgYSBQQVMgZGUgZ2FyYW50aWUuCi5TSCBUUkFEVUNUSU9OCkFyaWVsIFZBUkRJIDxhcmllbC52YXJkaUBmcmVlc2JlZS5mcj4sIDIwMDIuClBoaWxpcHBlIEJhdGFpbGxlciwgMjAwNi4KTmljb2xhcyBGcmFu529pcywgMjAwNi4KVmV1aWxsZXogc2lnbmFsZXIgdG91dGUgZXJyZXVyIOAgPGRlYmlhblwtbDEwblwtZnJlbmNoQGxpc3RzLmRlYmlhbi5vcmc+Lgo=