Q09NTUFORCBOQU1FOiBncGZkaXN0CgpTZXJ2ZXMgZGF0YSBmaWxlcyB0byBvciB3cml0ZXMgZGF0YSBmaWxlcyBvdXQgZnJvbSBIQVdRIHNlZ21lbnRzLgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKU1lOT1BTSVMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgpncGZkaXN0IFstZCA8ZGlyZWN0b3J5Pl0gWy1wIDxodHRwX3BvcnQ+XSBbLWwgPGxvZ19maWxlPl0gWy10IDx0aW1lb3V0Pl0gIFstYyA8Y29uZmlnX2ZpbGU+XQpbLVNdIFstdiB8IC1WXSBbLW0gPG1heGxlbj5dIFstLXNzbCBjZXJ0aWZpY2F0ZV9wYXRoXQoKZ3BmZGlzdCBbLT8gfCAtLWhlbHBdIHwgLS12ZXJzaW9uCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpERVNDUklQVElPTgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKCmdwZmRpc3QgaXMgSEFXUZJzIHBhcmFsbGVsIGZpbGUgZGlzdHJpYnV0aW9uIHByb2dyYW0uIApJdCBpcyB1c2VkIGJ5IHJlYWRhYmxlIGV4dGVybmFsIHRhYmxlcyBhbmQgZ3Bsb2FkIHRvIHNlcnZlIApleHRlcm5hbCB0YWJsZSBmaWxlcyB0byBhbGwgSEFXUSBzZWdtZW50cyBpbiBwYXJhbGxlbC4gCkl0IGlzIHVzZWQgYnkgd3JpdGFibGUgZXh0ZXJuYWwgdGFibGVzIHRvIGFjY2VwdCBvdXRwdXQgCnN0cmVhbXMgZnJvbSBIQVdRIHNlZ21lbnRzIGluIHBhcmFsbGVsIGFuZCB3cml0ZSB0aGVtIG91dCB0byBhIGZpbGUuCgpJbiBvcmRlciBmb3IgZ3BmZGlzdCB0byBiZSB1c2VkIGJ5IGFuIGV4dGVybmFsIHRhYmxlLCB0aGUgCkxPQ0FUSU9OIGNsYXVzZSBvZiB0aGUgZXh0ZXJuYWwgdGFibGUgZGVmaW5pdGlvbiBtdXN0IHNwZWNpZnkgCnRoZSBjb3JyZWN0IGZpbGUgbG9jYXRpb24gdXNpbmcgdGhlIGdwZmRpc3Q6Ly8gcHJvdG9jb2wgCihzZWUgQ1JFQVRFIEVYVEVSTkFMIFRBQkxFKS4gCgpOT1RFOiBJZiB0aGUgLS1zc2wgb3B0aW9uIGlzIHNwZWNpZmllZCB0byBlbmFibGUgU1NMIHNlY3VyaXR5LCAKY3JlYXRlIHRoZSBleHRlcm5hbCB0YWJsZSB3aXRoIHRoZSBncGZkaXN0czovLyBwcm90b2NvbC4KClRoZSBiZW5lZml0IG9mIHVzaW5nIGdwZmRpc3QgaXMgdGhhdCB5b3UgYXJlIGd1YXJhbnRlZWQgbWF4aW11bSAKcGFyYWxsZWxpc20gd2hpbGUgcmVhZGluZyBmcm9tIG9yIHdyaXRpbmcgdG8gZXh0ZXJuYWwgdGFibGVzLCAKdGhlcmVieSBvZmZlcmluZyB0aGUgYmVzdCBwZXJmb3JtYW5jZSBhcyB3ZWxsIGFzIGVhc2llciAKYWRtaW5pc3RyYXRpb24gb2YgZXh0ZXJuYWwgdGFibGVzLgoKRm9yIHJlYWRhYmxlIGV4dGVybmFsIHRhYmxlcywgZ3BmZGlzdCBwYXJzZXMgYW5kIHNlcnZlcyBkYXRhIApmaWxlcyBldmVubHkgdG8gYWxsIHRoZSBzZWdtZW50IGluc3RhbmNlcyBpbiB0aGUgSEFXUQpzeXN0ZW0gd2hlbiB1c2VycyBTRUxFQ1QgZnJvbSB0aGUgZXh0ZXJuYWwgdGFibGUuIEZvciB3cml0YWJsZSAKZXh0ZXJuYWwgdGFibGVzLCBncGZkaXN0IGFjY2VwdHMgcGFyYWxsZWwgb3V0cHV0IHN0cmVhbXMgZnJvbSAKdGhlIHNlZ21lbnRzIHdoZW4gdXNlcnMgSU5TRVJUIGludG8gdGhlIGV4dGVybmFsIHRhYmxlLCBhbmQgCndyaXRlcyB0byBhbiBvdXRwdXQgZmlsZS4KCkZvciByZWFkYWJsZSBleHRlcm5hbCB0YWJsZXMsIGlmIGxvYWQgZmlsZXMgYXJlIGNvbXByZXNzZWQgdXNpbmcgCmd6aXAgb3IgYnppcDIgKGhhdmUgYSAuZ3ogb3IgLmJ6MiBmaWxlIGV4dGVuc2lvbiksIGdwZmRpc3QgCnVuY29tcHJlc3NlcyB0aGUgZmlsZXMgYXV0b21hdGljYWxseSBiZWZvcmUgbG9hZGluZyBwcm92aWRlZCAKdGhhdCBndW56aXAgb3IgYnVuemlwMiBpcyBpbiB5b3VyIHBhdGguIAoKTk9URTogQ3VycmVudGx5LCByZWFkYWJsZSBleHRlcm5hbCB0YWJsZXMgZG8gbm90IHN1cHBvcnQgCmNvbXByZXNzaW9uIG9uIFdpbmRvd3MgcGxhdGZvcm1zLCBhbmQgd3JpdGFibGUgZXh0ZXJuYWwgCnRhYmxlcyBkbyBub3Qgc3VwcG9ydCBjb21wcmVzc2lvbiBvbiBhbnkgcGxhdGZvcm1zLgoKTW9zdCBsaWtlbHksIHlvdSB3aWxsIHdhbnQgdG8gcnVuIGdwZmRpc3Qgb24geW91ciBFVEwgbWFjaGluZXMgCnJhdGhlciB0aGFuIHRoZSBob3N0cyB3aGVyZSBIQVdRIGlzIGluc3RhbGxlZC4gClRvIGluc3RhbGwgZ3BmZGlzdCBvbiBhbm90aGVyIGhvc3QsIHNpbXBseSBjb3B5IHRoZSB1dGlsaXR5IApvdmVyIHRvIHRoYXQgaG9zdCBhbmQgYWRkIGdwZmRpc3QgdG8geW91ciAkUEFUSC4KCk5PVEU6IFdoZW4gdXNpbmcgSVB2NiwgYWx3YXlzIGVuY2xvc2UgdGhlIG51bWVyaWMgSVAgYWRkcmVzcyAKaW4gYnJhY2tldHMuCgpZb3UgY2FuIGFsc28gcnVuIGdwZmRpc3QgYXMgYSBXaW5kb3dzIFNlcnZpY2UuIFNlZSBiZWxvdyBmb3IKZGV0YWlscy4KCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCk9QVElPTlMKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgotZCA8ZGlyZWN0b3J5PgoKVGhlIGRpcmVjdG9yeSBmcm9tIHdoaWNoIGdwZmRpc3Qgd2lsbCBzZXJ2ZSBmaWxlcyBmb3IgCnJlYWRhYmxlIGV4dGVybmFsIHRhYmxlcyBvciBjcmVhdGUgb3V0cHV0IGZpbGVzIGZvciB3cml0YWJsZQpleHRlcm5hbCB0YWJsZXMuIElmIG5vdCBzcGVjaWZpZWQsIGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCgotbCA8bG9nX2ZpbGU+CgpUaGUgZnVsbHkgcXVhbGlmaWVkIHBhdGggYW5kIGxvZyBmaWxlIG5hbWUgd2hlcmUgc3RhbmRhcmQgb3V0cHV0IAptZXNzYWdlcyBhcmUgdG8gYmUgbG9nZ2VkLgoKCi1wIDxodHRwX3BvcnQ+CgpUaGUgSFRUUCBwb3J0IG9uIHdoaWNoIGdwZmRpc3Qgd2lsbCBzZXJ2ZSBmaWxlcy4gRGVmYXVsdHMgdG8gODA4MC4KCgotdCA8dGltZW91dD4KClNldHMgdGhlIHRpbWUgKGluIHNlY29uZHMpIGFsbG93ZWQgZm9yIEhBV1EgdG8gCmVzdGFibGlzaCBhIGNvbm5lY3Rpb24gdG8gYSBncGZkaXN0IHByb2Nlc3MuIERlZmF1bHQgaXMgNSBzZWNvbmRzLgpWYWxpZCB2YWx1ZXMgYXJlIDIgdG8gMzAgc2Vjb25kcy4gIE1heSBuZWVkIHRvIGJlIGluY3JlYXNlZCBvbiAKc3lzdGVtcyB3aXRoIGEgbG90IG9mIG5ldHdvcmsgdHJhZmZpYy4KCi1tIDxtYXhfbGVuZ3RoPgoKU2V0cyB0aGUgbWF4aW11bSBhbGxvd2VkIGRhdGEgcm93IGxlbmd0aCBpbiBieXRlcy4gRGVmYXVsdCBpcyAzMjc2OC4KU2hvdWxkIGJlIHVzZWQgd2hlbiB1c2VyIGRhdGEgaW5jbHVkZXMgdmVyeSB3aWRlIHJvd3MsIGkuZSB3aGVuCiJsaW5lIHRvbyBsb25nIiBlcnJvciBtZXNzYWdlIGlzIHJlY2VpZXZlZC4gU2hvdWxkIG5vdCBiZSB1c2VkIG90aGVyd2lzZQphcyBpdCBpbmNyZWFzZXMgcmVzb3VyY2UgYWxsb2NhdGlvbi4gClZhbGlkIHJhbmdlIGlzIDMySyB0byAyNTZNQi4gKFRoZSB1cHBlciBsaW1pdCBpcyAxTUIgb24gV2luZG93cyBzeXN0ZW1zLikKCgotUyAodXNlIE9fU1lOQykKCk9wZW5zIHRoZSBmaWxlIGZvciBzeW5jaHJvbm91cyBJL08gd2l0aCB0aGUgT19TWU5DIGZsYWcuIEFueSB3cml0ZXMgdG8gCnRoZSByZXN1bHRpbmcgZmlsZSBkZXNjcmlwdG9yIGJsb2NrIGdwZmRpc3QgdW50aWwgdGhlIGRhdGEgaXMgCnBoeXNpY2FsbHkgd3JpdHRlbiB0byB0aGUgdW5kZXJseWluZyBoYXJkd2FyZS4KCi0tc3NsIGNlcnRpZmljYXRlX3BhdGgKCkFkZHMgU1NMIGVuY3J5cHRpb24gdG8gZGF0YSB0cmFuc2ZlcnJlZCB3aXRoIGdwZmRpc3QuIEFmdGVyIGV4ZWN1dGluZyAKZ3BmZGlzdCB3aXRoIHRoZSAtLXNzbCBjZXJ0aWZpY2F0ZV9wYXRoIG9wdGlvbiwgdGhlIG9ubHkgd2F5IAp0byBsb2FkIGRhdGEgZnJvbSB0aGlzIGZpbGUgc2VydmVyIGlzIHdpdGggdGhlIGdwZmRpc3RzIHByb3RvY29sLiAKVGhlIGxvY2F0aW9uIHNwZWNpZmllZCBpbiBjZXJ0aWZpY2F0ZV9wYXRoIG11c3QgCmNvbnRhaW4gdGhlIGZvbGxvd2luZyBmaWxlczoKCi0gVGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSBmaWxlLCBzZXJ2ZXIuY3J0Ci0gVGhlIHNlcnZlciBwcml2YXRlIGtleSBmaWxlLCBzZXJ2ZXIua2V5Ci0gVGhlIHRydXN0ZWQgY2VydGlmaWNhdGUgYXV0aG9yaXRpZXMsIHJvb3QuY3J0CgpUaGUgcm9vdCBkaXJlY3RvcnkgKC8pIGNhbm5vdCBiZSBzcGVjaWZpZWQgYXMgY2VydGlmaWNhdGVfcGF0aC4KCi1jIDxjb25maWdfZmlsZT4KCkNvbmZpZ3VyYXRpb24gZmlsZSBmb3IgdHJhbnNmb3JtYXRpb25zLlRoZSBvcHRpb24gY29uZmlnX2ZpbGUgc3BlY2lmaWVzCnRoZSBsb2NhdGlvbiBvZiB0aGUgdHJhbnNmb3JtYXRpb24gY29uZmlndXJhdGlvbiBmaWxlLCBwYXNzZWQgdG8gZ3Bsb2FkIHZpYSAtYy4KVGhlIGdwZmRpc3QgY29uZmlndXJhdGlvbiBpcyBleHBlY3RlZCB0byBiZSBhIFlBTUwgZmlsZSB3aXRoIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgotLS0gClZFUlNJT046IDEuMC4wLjEgClRSQU5TRk9STUFUSU9OUzogCiAgdHJhbnNmb3JtbmFtZTE6CiAgICAgIFRZUEU6ICAgIGlucHV0IHwgb3V0cHV0CiAgICAgIENPTU1BTkQ6IGNvbW1hbmQxCiAgICAgIENPTlRFTlQ6IGRhdGEgfCBwYXRocwogICAgICBTQUZFOiAgICBwb3NpeC1yZWdleAoKICB0cmFuc2Zvcm1uYW1lMjogCiAgICAgIFRZUEU6ICAgIGlucHV0IHwgb3V0cHV0CiAgICAgIENPTU1BTkQ6IGNvbW1hbmQyCiAgLi4uCgotdiAodmVyYm9zZSkKClZlcmJvc2UgbW9kZSBzaG93cyBwcm9ncmVzcyBhbmQgc3RhdHVzIG1lc3NhZ2VzLgoKCi1WICh2ZXJ5IHZlcmJvc2UpCgpWZXJib3NlIG1vZGUgc2hvd3MgYWxsIG91dHB1dCBtZXNzYWdlcyBnZW5lcmF0ZWQgYnkgdGhpcyB1dGlsaXR5LgoKCi0tdmVyc2lvbiAKClByaW50cyBvdXQgdGhlIHZlcnNpb24gb2YgdGhpcyB1dGlsaXR5LgoKCi0/Ci0taGVscCAKCkRpc3BsYXlzIG9ubGluZSBoZWxwLgoKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKUlVOTklORyBHUEZESVNUIEFTIEEgV0lORE9XUyBTRVJWSUNFCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpIQVdRIExvYWRlcnMgYWxsb3cgZ3BmZGlzdCB0byBydW4gYXMgYSBXaW5kb3dzIFNlcnZpY2UuCgpGb2xsb3cgdGhlIGluc3RydWN0aW9ucyBiZWxvdyB0byBkb3dubG9hZCwgcmVnaXN0ZXIgYW5kCmFjdGl2YXRlIGdwZmRpc3QgYXMgYSBzZXJ2aWNlOiAKCjEuIFVwZGF0ZSB5b3VyIEhBV1EgTG9hZGVyIHBhY2thZ2UgdG8gdGhlIGxhdGVzdCAKICAgdmVyc2lvbi4gVGhpcyBwYWNrYWdlIGlzIGF2YWlsYWJsZSBmcm9tIHRoZSAKICAgRU1DIERvd25sb2FkIENlbnRlciAoaHR0cHM6Ly9lbWMuc3Vic2NyaWJlbmV0LmNvbSkgCgoyLiBSZWdpc3RlciBncGZkaXN0IGFzIGEgV2luZG93cyBzZXJ2aWNlOgogICAqIE9wZW4gYSBXaW5kb3dzIGNvbW1hbmQgd2luZG93CiAgICogUnVuIHRoZSBmb2xsb3dpbmcgY29tbWFuZDoKICAgICAgc2MgY3JlYXRlIGdwZmRpc3QgYmlucGF0aD0gInBhdGhfdG9fZ3BmZGlzdC5leGUgLXAgODA4MQogICAgICAtZCBFeHRlcm5hbFxsb2FkXGZpbGVzXHBhdGggLWwgTG9nXGZpbGVccGF0aCIKICAgICAgCiAgICAgWW91IGNhbiBjcmVhdGUgbXVsdGlwbGUgaW5zdGFuY2VzIG9mIGdwZmRpc3QgYnkgCiAgICAgcnVubmluZyB0aGUgc2FtZSBjb21tYW5kIGFnYWluLCB3aXRoIGEgdW5pcXVlIAogICAgIG5hbWUgYW5kIHBvcnQgbnVtYmVyIGZvciBlYWNoIGluc3RhbmNlLCBmb3IgZXhhbXBsZToKICAgICAgIHNjIGNyZWF0ZSBncGZkaXN0TiBiaW5wYXRoPSAicGF0aF90b19ncGZkaXN0LmV4ZQogICAgICAgLXAgODA4MiAtZCBFeHRlcm5hbFxsb2FkXGZpbGVzXHBhdGggLWwgTG9nXGZpbGVccGF0aCIKCjMuIEFjdGl2YXRlIHRoZSBncGZkaXN0IHNlcnZpY2U6CiAgICogT3BlbiB0aGUgV2luZG93cyBDb250cm9sIFBhbmVsIGFuZCBzZWxlY3QgCiAgICAgQWRtaW5pc3RyYXRpdmUgVG9vbHM+U2VydmljZXMuCiAgICogSGlnaGxpZ2h0IHRoZW4gcmlnaHQtY2xpY2sgb24gdGhlIGdwZmRpc3QgCiAgICAgc2VydmljZSBpbiB0aGUgbGlzdCBvZiBzZXJ2aWNlcy4KICAgKiBTZWxlY3QgUHJvcGVydGllcyBmcm9tIHRoZSByaWdodC1jbGljayBtZW51LCAKICAgICB0aGUgU2VydmljZSBQcm9wZXJ0aWVzIHdpbmRvdyBvcGVucy4KICAgICBOb3RlIHRoYXQgeW91IGNhbiBhbHNvIHN0b3AgdGhpcyBzZXJ2aWNlIAogICAgIGZyb20gdGhlIFNlcnZpY2UgUHJvcGVydGllcyB3aW5kb3cuCiAgICogT3B0aW9uYWw6IENoYW5nZSB0aGUgU3RhcnR1cCBUeXBlIHRvIAogICAgIEF1dG9tYXRpYyAoYWZ0ZXIgYSBzeXN0ZW0gcmVzdGFydCwgdGhpcyAKICAgICBzZXJ2aWNlIHdpbGwgYmUgcnVubmluZyksIHRoZW4gdW5kZXIgU2VydmljZSAKICAgICBzdGF0dXMsIGNsaWNrIFN0YXJ0LgogICAqIENsaWNrIE9LLgpSZXBlYXQgdGhlIGFib3ZlIHN0ZXBzIGZvciBlYWNoIGluc3RhbmNlIG9mIApncGZkaXN0IHRoYXQgeW91IGNyZWF0ZWQuIAoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkVYQU1QTEVTCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgpTZXJ2ZSBmaWxlcyBmcm9tIGEgc3BlY2lmaWVkIGRpcmVjdG9yeSB1c2luZyBwb3J0IDgwODEgCihhbmQgc3RhcnQgZ3BmZGlzdCBpbiB0aGUgYmFja2dyb3VuZCk6CgpncGZkaXN0IC1kIC92YXIvbG9hZF9maWxlcyAtcCA4MDgxICYKCgpTdGFydCBncGZkaXN0IGluIHRoZSBiYWNrZ3JvdW5kIGFuZCByZWRpcmVjdCBvdXRwdXQgYW5kIAplcnJvcnMgdG8gYSBsb2cgZmlsZToKCmdwZmRpc3QgLWQgL3Zhci9sb2FkX2ZpbGVzIC1wIDgwODEgLWwgL2hvbWUvZ3BhZG1pbi9sb2cgJgoKClRvIHN0b3AgZ3BmZGlzdCB3aGVuIGl0IGlzIHJ1bm5pbmcgaW4gdGhlIGJhY2tncm91bmQ6CgotLUZpcnN0IGZpbmQgaXRzIHByb2Nlc3MgaWQ6CgpwcyBheCB8IGdyZXAgZ3BmZGlzdCAKCiAgT1Igb24gU29sYXJpcwoKcHMgLWVmIHwgZ3JlcCBncGZkaXN0CgotLVRoZW4ga2lsbCB0aGUgcHJvY2VzcywgZm9yIGV4YW1wbGU6CgpraWxsIDM0NTYKCgoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpTRUUgQUxTTwoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoKQ1JFQVRFIEVYVEVSTkFMIFRBQkxFCmdwbG9hZAo=