Re: Postgres enum problem
Stian Sletner <[email protected]> Fri, 19 Aug 2016 09:46:36 +0200
| Newsgroups | gmane.lisp.clsql.general |
|---|---|
| Message-ID | <[email protected]> |
UnVzcywKClRoYW5rcyBmb3IgYWxsIHlvdXIgZWZmb3J0IGluIGhlbHBpbmcgbWUgd2l0aCB0aGlz IGlzc3VlLiAgSSd2ZQppbXBsZW1lbnRlZCB0aGUgc29sdXRpb24gd2UgYXJyaXZlZCBhdCBhbmQg aXQgc2VlbXMgdG8gd29yayBwZXJmZWN0bHkKZm9yIG1lLCBpbiB0aGF0IGl0J3MgYSByZWxhdGl2 ZWx5IHNtYWxsIGFuZCBjb25jZW50cmF0ZWQgY2hhbmdlIHRvIGEKbGVnYWN5IHN5c3RlbSB3aGlj aCBpcyBhbHdheXMgcHJlZmVycmFibGUuIDopCgpBcyBmb3IgdGhlIHByb3Bvc2VkIHN5bnRheCBj aGFuZ2UsIEkgZG9uJ3QgZmVlbCBxdWFsaWZpZWQgdG8gc2F5IHdoZXRoZXIKaXQncyB0aGUgcmln aHQgd2F5IG9yIG5vdCwgbXkgZXhwZXJpZW5jZSB3aXRoIENMU1FMIHN5bnRheCBpcyB0b28gc2Nh bnQuCiBCdXQgdGhlcmUgZGVmaW5pdGVseSBzaG91bGQgYmUgYSB3YXkgZm9yIHBlb3BsZSB0byBy ZWFkL3NlbGVjdCBrZXl3b3JkcwpiYWNrLCBub3cgdGhhdCB0aGV5J3JlIHN0b3JlZCB3aXRoIHBh Y2thZ2UgcXVhbGlmaWVyLCBzbyB0aGUgY29uY2VwdApzZWVtcyBzb3VuZC4KClRoYW5rcyBhZ2Fp bi4KCgpPbiAyMDE2LTA4LTE4IDIxOjMyLCBSdXNzIFR5bmRhbGwgd3JvdGU6Cj4gTXkgaW5pdGlh bCByZXBseSBnb3QgbG9zdCB3aGVuIG15IGNvbXB1dGVyIGZyb3plIGR1cmluZyB1cGdyYWRlLiBT b3JyeSAKPiBmb3IgdGhlIGRlbGF5Lgo+IAo+IFlvdXIgc29sdXRpb24gbG9va3MgbGlrZSB3aGF0 IEkgaGFkIGluIG1pbmQuICBZb3UgbWlnaHQgYWxzbyBjb25zaWRlciAKPiBqdXN0IHNldHRpbmcg dGhlIHR5cGUgdG8gJ3N0cmluZyAodGhpcyB3aWxsIGNvbnZlcnQgeW91ciBzeW1ib2xzIHRvIAo+ IHN0cmluZyB2YWx1ZXMgaW4gdGhlIGRhdGFiYXNlLCBidXQgbm90IGJhY2sgdG8ga2V5d29yZHMg d2hlbiB5b3UgCj4gcmV0cmlldmUgdGhlbSAtIG5vdCBzdXJlIGlmIHRoaXMgaXMgcmVsZXZhbnQg b3Igbm90KS4KPiAKPiBUaGFuayBmb3IgcG9pbnRpbmcgb3V0IHRoZSBvZGQgY2FzZSBzdGF0ZW1l bnRzLgo+IAo+IFlvdSBhbHNvIG5vdGljZWQgdGhhdCBGRE1MIGRvZXNuJ3QgY29ycmVjdGx5IGNv bnZlcnQgc3ltYm9scyBpbnRvIHRoZWlyIAo+IHJlYWRhYmxlIHZhbHVlcy4gIFRoaXMgaXMgZm9y IGhpc3RvcmljYWwgcmVhc29ucyBhbmQgYmVjYXVzZSBGRE1MIGlzIAo+IHdyaXR0ZW4gdG8gbWF0 Y2ggc3FsIHNlbWFudGljcyByYXRoZXIgdGhhbiBtYXBwaW5nIGxpc3Agc2VtYW50aWNzIAo+ICht b3N0bHkpLiAgSSB0aGluayB0aGUgYmVzdCB3YXkgdG8gZ28gYWJvdXQgZ2V0dGluZyB0aGUgRkRN TCBsYXllciB0byAKPiBwcmludCBzeW1ib2xzIHJlYWRhYmx5IChzdWNoIHRoYXQgd2hlcmUgY2xh dXNlcyBvbiAnc3ltYm9sIHR5cGVkIGNvbHVtbnMgCj4gYXJlIHVzYWJsZSksIHdvdWxkIGJlIHRv IGFkZCBzeW50YXggc29tZSBzeW50YXg6IFtzeW1ib2wgOmZvb10gdGhhdCBzYXlzIAo+IHRvIHBy aW50IHRoZSBzeW1ib2wgcmVhZGFibHkgcmF0aGVyIHRoYW4gZG93bmNhc3RpbmcgdG8gYSBzdHJp bmcuICBJIAo+IHRoaW5rIGRvd25jYXN0aW5nIHRvIHN0cmluZyBpcyBhIGdvb2QgZGVmYXVsdCBi ZWhhdmlvciBiZWNhdXNlIGl0IAo+IHByZXNlcnZlcyBtdWNoIHdvcmtpbmcgY29kZSAtIEkgdGhp bmsgc3ltYm9sIGNvbHVtbnMgYXJlIG5vdCB0aGF0IGNvbW1vbiAKPiBiZWNhdXNlIHRoZXkgYXJl IG5vdCBhIHNxbCB0eXBlLgo+IAo+IFdpdGggdGhpcyBwcm9wb3NlZCBsb2dpYzoKPiAKPiAgIFs9 IFtrd10gOmhlaV0gPSA+IGt3ID0gJ0hFSScKPiBhbmQKPiAgIFs9IFtrd10gW3N5bWJvbCA6aGVp XV0gPSA+IGt3ID0gJzpIRUknCj4gCj4gSWYgdGhpcyBzZWVtcyByZWFzb25hYmxlLCBJIHdpbGwg Z28gYWhlYWQgYW5kIGNvbW1pdCB0aGlzIHN5bnRheAo+IAo+IENoZWVycyBhbmQgdGhhbmtzIGZv ciB0aGUgZm9sbG93dXBzIGFuZCBjbGFyaWZpY2F0aW9ucywKPiAKPiBSdXNzIFR5bmRhbGwsCj4g QWNjZWxlcmF0aW9uLm5ldAo+IAo+IAo+IE9uIDA4LzE2LzIwMTYgMDk6MDYgQU0sIFN0aWFuIFNs ZXRuZXIgd3JvdGU6Cj4+IEZvbGxvd2luZyB1cCBvbiB0aGlzLgo+Pgo+PiBTbyBiYXNlZCBvbiB5 b3VyIGhpbnRzIEkgdGhpbmsgSSBtYXkgaGF2ZSBhIHNvbHV0aW9uIHN1Y2ggdGhhdDoKPj4KPj4g KGRlZnR5cGUgbXkta2V5d29yZCAoKSAna2V5d29yZCkKPj4gKGRlZm1ldGhvZCBjbHNxbC1zeXM6 ZGF0YWJhc2Utb3V0cHV0LXNxbC1hcy10eXBlCj4+ICAgICAgICgodHlwZSAoZXFsICdteS1rZXl3 b3JkKSkgKHZhbCBzeW1ib2wpIGRhdGFiYXNlIGRiLXR5cGUpCj4+ICAgIChzdHJpbmcgdmFsKSkK Pj4gKGRlZm1ldGhvZCBjbHNxbC1zeXM6cmVhZC1zcWwtdmFsdWUKPj4gICAgICAgKCh2YWwgc3Ry aW5nKSAodHlwZSAoZXFsICdteS1rZXl3b3JkKSkgZGF0YWJhc2UgZGItdHlwZSkKPj4gICAgKGlu dGVybiB2YWwgOmtleXdvcmQpKQo+Pgo+PiAoZGVmLXZpZXctY2xhc3MgdGVzdGt3MiAoKQo+PiAg ICAoKGt3IDphY2Nlc3NvciB0ZXN0a3cyLWt3IDppbml0YXJnIDprdyA6dHlwZSBteS1rZXl3b3Jk KSkpCj4+IChjcmVhdGUtdmlldy1mcm9tLWNsYXNzICd0ZXN0a3cyKQo+PiAoZGVmcGFyYW1ldGVy ICppKiAobWFrZS1pbnN0YW5jZSAndGVzdGt3MiA6a3cgOmhlaSkpCj4+ICh1cGRhdGUtcmVjb3Jk cy1mcm9tLWluc3RhbmNlICppKikKPj4KPj4gQXQgdGhpcyBwb2ludCBJIGNhbiBmaW5kIHRoZSBv YmplY3Q6Cj4+Cj4+IChzZWxlY3QgJ3Rlc3RrdzIgOndoZXJlIFs9IFtrd10gOmhlaV0pCj4+Cj4+ IEFuZCB0aGUgc3RvcmFnZSBsb29rcyBsaWtlIEkgd2FudDoKPj4KPj4gZmphcz0jIHNlbGVjdCAq IGZyb20gdGVzdGt3MjsKPj4gKy0tLS0tKwo+PiB8IGt3ICB8Cj4+ICstLS0tLSsKPj4gfCBIRUkg fAo+PiArLS0tLS0rCj4+ICgxIHJvdykKPj4KPj4gRG9lcyB0aGF0IHNlZW0gbGlrZSBhIHJlYXNv bmFibGUgc29sdXRpb24/Cj4+Cj4+Cj4+IE9uIDIwMTYtMDgtMTYgMTM6MzAsIFN0aWFuIFNsZXRu ZXIgd3JvdGU6Cj4+PiBIaSBSdXNzLgo+Pj4KPj4+IFRoYW5rcyBmb3IgYSB2ZXJ5IHRob3JvdWdo IGFuZCBpbmZvcm1hdGl2ZSByZXBseS4gIEknbSBhIGxpdHRsZSBjb25mdXNlZAo+Pj4gaGVyZSwg c28gYmVhciB3aXRoIG1lIC0tIGxlYXZpbmcgdGhlIGVudW0gaXNzdWUgYXNpZGUgZm9yIGEgbWlu dXRlLCBhcwo+Pj4gaXQgc2hvdWxkbid0IGJlIGEgaHVnZSBwcm9ibGVtIHRvIGNoYW5nZSB0byBh IHRleHQgZmllbGQgLS0gaG93IGFyZQo+Pj4ga2V5d29yZCB0eXBlIGZpZWxkcyBzdXBwb3NlZCB0 byBiZSB1c2VkIGF0IGFsbD8gIEl0IGRvZXNuJ3Qgc2VlbQo+Pj4gcG9zc2libGUgdG8gU0VMRUNU IG9uIHRoZW0uCj4+Pgo+Pj4gSWYgSSBsZWF2ZSBpdCBhbGwgdXAgdG8gQ0xTUUw6Cj4+Pgo+Pj4g KGRlZi12aWV3LWNsYXNzIHRlc3RrdyAoKQo+Pj4gICAgKChrdyA6YWNjZXNzb3IgdGVzdGt3LWt3 IDppbml0YXJnIDprdyA6dHlwZSBrZXl3b3JkKSkpCj4+PiAoY3JlYXRlLXZpZXctZnJvbS1jbGFz cyAndGVzdGt3KQo+Pj4gKGRlZnBhcmFtZXRlciAqaSogKG1ha2UtaW5zdGFuY2UgJ3Rlc3RrdyA6 a3cgOmhlaSkpCj4+PiAodXBkYXRlLXJlY29yZHMtZnJvbS1pbnN0YW5jZSAqaSopCj4+Pgo+Pj4g VGhlbiBJIGdldCBhIHRhYmxlIGxpa2UgdGhpczoKPj4+Cj4+PiBmamFzPSMgXGQgdGVzdGt3Cj4+ PiAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVzdGt3Igo+Pj4gKy0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSsKPj4+IHwgQ29sdW1uIHwgICAgICAgICAg VHlwZSAgICAgICAgICB8IE1vZGlmaWVycyB8Cj4+PiArLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKwo+Pj4gfCBrdyAgICAgfCBjaGFyYWN0ZXIgdmFyeWluZygy NTUpIHwgICAgICAgICAgIHwKPj4+ICstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rCj4+Pgo+Pj4gZmphcz0jIHNlbGVjdCAqIGZyb20gdGVzdGt3Owo+Pj4gKy0t LS0tLSsKPj4+IHwgIGt3ICB8Cj4+PiArLS0tLS0tKwo+Pj4gfCA6SEVJIHwKPj4+ICstLS0tLS0r Cj4+PiAoMSByb3cpCj4+Pgo+Pj4gV2hpY2ggaXMgZmluZSwgYnV0IEkgc3RpbGwgY2FuJ3Qgc2Vs ZWN0IG9uIHRoZSBrZXl3b3JkOgo+Pj4KPj4+ICogKHNlbGVjdCBba3ddIDpmcm9tIFt0ZXN0a3dd KQo+Pj4gOzsgMjAxNi0wOC0xNlQxMjo0MzoyNSAvZmphcy9zdGlhbiA9PiBTRUxFQ1QgS1cgRlJP TSBURVNUS1cKPj4+ICgoIjpIRUkiKSkKPj4+ICgia3ciKQo+Pj4KPj4+ICogKHNlbGVjdCBba3dd IDpmcm9tIFt0ZXN0a3ddIDp3aGVyZSBbPSBba3ddIDpoZWldKQo+Pj4gOzsgMjAxNi0wOC0xNlQx Mjo0MzozNSAvZmphcy9zdGlhbiA9PiBTRUxFQ1QgS1cgRlJPTSBURVNUS1cgV0hFUkUgKEtXID0K Pj4+ICdIRUknKQo+Pj4gTklMCj4+PiAoImt3IikKPj4+Cj4+PiBUaGlzIHdvcmtzLCBidXQgd291 bGQgYmUgdmVyeSBjdW1iZXJzb21lIHRvIGFkYXB0IHRvOgo+Pj4KPj4+IChzZWxlY3QgW2t3XSA6 ZnJvbSBbdGVzdGt3XSA6d2hlcmUgWz0gW2t3XSAiOkhFSSJdKQo+Pj4gOzsgMjAxNi0wOC0xNlQx Mjo0NTo0OSAvZmphcy9zdGlhbiA9PiBTRUxFQ1QgS1cgRlJPTSBURVNUS1cgV0hFUkUgKEtXID0K Pj4+ICc6SEVJJykKPj4+ICgoIjpIRUkiKSkKPj4+ICgia3ciKQo+Pj4KPj4+IEJUVyBJIGFncmVl IHRoYXQgZW51bSB0eXBlcyBhcmUgcHJvYmFibHkgbm90IHVzZWQgdW5pZm9ybWx5IGFjcm9zcwo+ Pj4gZGlmZmVyZW50IGRhdGFiYXNlcywgYW5kIGlzIHByb2JhYmx5IGJldHRlciBsZWZ0IG91dC4g IEl0IHNlZW1zIHRvIG1lCj4+PiBub3cgdGhhdCBpdCB3YXMgbm90IHRoZSBjZW50cmFsIHBhcnQg b2YgbXkgcHJvYmxlbSBhbnl3YXkuICBBZ2FpbiwgSSdtCj4+PiBqdXN0IGNvbmZ1c2VkLgo+Pj4K Pj4+IFBTOiBJbiBteSBjb2RlIHdhbmRlcmluZ3MgSSBjYW1lIGFjcm9zcyB0aGVzZSBjYXNlcyBp biBvb2RtbC5saXNwOgo+Pj4KPj4+IChkZWZtZXRob2QgZGF0YWJhc2Utb3V0cHV0LXNxbC1hcy10 eXBlCj4+PiAuLi4KPj4+ICAgICAgIChjYXNlIHR5cGUKPj4+ICAgICAgICAgKChvciBzeW1ib2wg a2V5d29yZCkKPj4+ICAgICAgICAgIChwcmludC1yZWFkYWJsZS1zeW1ib2wgdmFsKSkKPj4+ICAg ICAgICAgKHN0cmluZyB2YWwpCj4+PiAuLi4KPj4+Cj4+PiAoZGVmbWV0aG9kIHJlYWQtc3FsLXZh bHVlICh2YWwgdHlwZSBkYXRhYmFzZSBkYi10eXBlKQo+Pj4gLi4uCj4+PiAgICAgICAgIChjaGFy IChzdHJpbmcgKHNjaGFyIHZhbCAwKSkpCj4+PiAgICAgICAgICgob3Iga2V5d29yZCBzeW1ib2wp Cj4+PiAgICAgICAgICAocmVhZC1mcm9tLXN0cmluZyB2YWwpKQo+Pj4gICAgICAgICAoKHNtYWxs aW50IG1lZGl1bWludCBiaWdpbnQgaW50ZWdlciB1bml2ZXJzYWwtdGltZSkKPj4+IC4uLgo+Pj4K Pj4+IEkgY291bGQgYmUgd3JvbmcsIGJ1dCBpbiBib3RoIG9mIHRoZXNlIHRoZSAib3IiIGxvb2tz IGxpa2UgaXQgY291bGQgYmUgYQo+Pj4gbWlzdGFrZS4KPj4+Cj4+Pgo+Pj4gT24gMjAxNi0wOC0x NSAxODo0NywgUnVzcyBUeW5kYWxsIHdyb3RlOgo+Pj4+IEhvd2R5IFN0aWFuLAo+Pj4+Cj4+Pj4g SGVyZSBhcmUgdGhlIHJlbGV2YW50IGRpc2N1c3Npb25zIGFyb3VuZCB0aGlzIGZyb20gMjAxNC0w NCB0aGlzOgo+Pj4+IGh0dHA6Ly9saXN0cy5rcGUuaW8vcGlwZXJtYWlsL2Nsc3FsLzIwMTQtQXBy aWwvdGhyZWFkLmh0bWwKPj4+PiBodHRwczovL2dpdGh1Yi5jb20vVW53YXNoZWRNZW1lL2Nsc3Fs L2NvbW1pdC8zMWFlODJmMWUwYWVmY2RkMTFhMjUyMzliNmZiMjFjMTNkMzhkOWYyCj4+Pj4KPj4+ PiBUaGUgZWFzaWVzdCB3YXkgdG8gYnlwYXNzIHRoaXMgd291bGQgYmUgdG8gY2hhbmdlIHRoZSBr ZXl3b3JkcyB0bwo+Pj4+IHN5bWJvbHMgb3Igc3RyaW5ncy4gIFlvdSBjYW4gZG8gdGhpcyBkaXJl Y3RseSB1c2luZyB0aGUgOmRiLXR5cGUKPj4+PiBhcmd1bWVudCBhbmQgc3BlY2lhbGl6aW5nIHRo ZSBmb2xsb3dpbmcgZnVuY3Rpb25zLgo+Pj4+Cj4+Pj4gYAo+Pj4+IChkZWZtZXRob2QgZGF0YWJh c2Utb3V0cHV0LXNxbC1hcy10eXBlICh0eXBlIHZhbCBkYXRhYmFzZSBkYi10eXBlKS4uLikKPj4+ PiAoZGVmbWV0aG9kIHJlYWQtc3FsLXZhbHVlICh2YWwgdHlwZSBkYXRhYmFzZSBkYi10eXBlKSAu Li4pCj4+Pj4gYAo+Pj4+Cj4+Pj4gSWYgeW91IHVzZSBhIGA6ZGItdHlwZSAgJ2VudW1gIHdlIGNv dWxkIHVzZSB0aGF0IHRvIGRpcmVjdCBjbHNxbCB0bwo+Pj4+IHdyaXRlICB0aGUgc2xvdCBjb250 ZW50cyBhcyBhIHN0cmluZyB2YWx1ZSBpbiB5b3VyIGFwcGxpY2F0aW9uLCAob3Igd2UKPj4+PiBj b3VsZCBhZGQgaXQgdG8gY2xzcWwgZGlyZWN0bHkgYXMgdGhhdCBzZWVtcyBmYWlybHkgaW50dWl0 aXZlIC0gYWx0aG91Z2gKPj4+PiBlbnVtcyBjb3VsZCBhbHNvIGJlIGludGVnZXIgdmFsdWVkIC0g ZWc6IHR5cGVzIHRhYmxlcykuCj4+Pj4KPj4+PiBFeGFtcGxlOgo+Pj4+IGAKPj4+PiAoZGVmbWV0 aG9kIGRhdGFiYXNlLW91dHB1dC1zcWwtYXMtdHlwZQo+Pj4+ICAgICAgICgodHlwZSAnZW51bSkg KHZhbCBzeW1ib2wpIGRhdGFiYXNlIGRiLXR5cGUpCj4+Pj4gICAgICAocHJpbmMtdG8tc3RyaW5n IHZhbCkpCj4+Pj4gKGRlZm1ldGhvZCByZWFkLXNxbC12YWx1ZQo+Pj4+ICAgICAgICgodHlwZSAn ZW51bSkgKHZhbCBzdHJpbmcpIGRhdGFiYXNlIGRiLXR5cGUpCj4+Pj4gICAgICAobGV0ICgoKnBh Y2thZ2UqIDprZXl3b3JkKSkgKHJlYWQtZnJvbS1zdHJpbmcgdmFsKSkKPj4+PiBgCj4+Pj4KPj4+ Pgo+Pj4+IFRoZSBwcm9ibGVtIHdhcyB0aGF0IHRoYXQgYWxsIHN5bWJvbHMgd2VyZSBiZWluZyB3 cml0dGVuIHRoZSBzYW1lCj4+Pj4gcmVnYXJkbGVzcyBvZiBwYWNrYWdlIChtYWtpbmcgdGhlbSBu b3QgcmV2ZXJzaWJsZSBpbiB0aGUgZmFjZSBvZgo+Pj4+IG11bHRpcGxlIHBhY2thZ2VzKSwgSUU6 IHRoZXkgd2VyZSBub3Qgcm91bmQgdHJpcCBzYWZlLiAgVGhlIHNvbHV0aW9uCj4+Pj4gd2UvSSBj YW1lIHVwIHdpdGggd2FzIHRvIHdyaXRlIHN5bWJvbHMgd2l0aCB0aGUgcGFja2FnZSBuYW1lIGlu Y2x1ZGVkLAo+Pj4+IHN1Y2ggdGhhdCB3ZSBjb3VsZCBsb29rIHVwIHRoZSBjb3JyZWN0IHN5bWJv bCB3aGVuIHJlYWRpbmcgZnJvbSB0aGUKPj4+PiBkYXRhYmFzZS4gIFRoaXMgc3lzdGVtIGlzIGZh aXJseSBjb21wbGV4IGFuZCBJIGFtIG5vdCBzdXJlIHRoYXQgYQo+Pj4+IHNvbHV0aW9uIGV4aXN0 cyB0aGF0IHNvbHZlcyB0aGUgY2FzZSBmb3IgYWxsIHVzZXJzLiAgSSB0aGluawo+Pj4+IGZ1bmRh bWVudGFsbHkgcmVhZGluZyBhbmQgd3JpdGluZyB0byB0aGUgZGF0YWJhc2Ugc2hvdWxkIGJlIHJl dmVyc2libGUsCj4+Pj4gd2hpY2ggcmVxdWlyZXMgcHJpbnRpbmcgdGhlIHBhY2thZ2UgbmFtZSBv ZiBhIHN5bWJvbCBmb3IgYGRiLXR5cGUgJ3N5bWJvbGAuCj4+Pj4KPj4+PiBJIGhhdmUgbmV2ZXIg dXNlZCBQb3N0Z3Jlc3FsIGVudW1zLCBhbmQgdGhlcmUgYXJlIG5vdCBpbiB0aGUgdGVzdHMsIHNv Cj4+Pj4gaXRzIGRlZmluaXRlbHkgc29tZXRoaW5nIHRoYXQgY291bGQgaGF2ZSBicm9rZW4gdW5u b3RpY2VkLiAgVGhlcmUgd2FzCj4+Pj4gc29tZSB3b3JrIHF1aXRlIGEgZmV3IHZlcnNpb25zIGFn byB0byBub3JtYWxpemUgaGFuZGxpbmcgb2Ygc3ltYm9scywgc28KPj4+PiBpdHMgcG9zc2libGUg c29tZXRoaW5nIGlzIHN0aWxsIG5vdCBxdWl0ZSByaWdodCwgYnV0IGl0IGhhcyBhIG11Y2ggbW9y ZQo+Pj4+IG5vcm1hbGl6ZWQgaGFuZGxpbmcuCj4+Pj4KPj4+PiBJZiB5b3UgdGhpbmsgdGhpcyBz aG91bGQgYmUgcmVhc29uYWJsZSBzdGFuZGFyZCBiZWhhdmlvciAoSSBhbSBub3QKPj4+PiBjb252 aW5jZWQgb2YgdGhpcykgYW5kIGNhbiBjb252aW5jZSBtZSBvZiB0aGlzLCBJIHdvdWxkIGJlIHdp bGxpbmcgdG8KPj4+PiBhZGQgaXQgYXMgc3RhbmRhcmQuICBNeSBjb25jZXJuIGlzIHRoYXQgc29t ZSBmb2xrcyB3aWxsIGludGVycHJldCAiZW51bSIKPj4+PiBhcyBzeW1ib2w9PmlkIG1hcCAoYSBk YXRhYmFzZSB0eXBlcyB0YWJsZSkgaW5zdGVhZCBvZiBhIGtleXdvcmQgPT4KPj4+PiBzdHJpbmcg bWFwLiAgQXMgYm90aCBvZiB0aGVzZSBzZWVtIHJlYXNvbmFibGUgaW50ZXJwcmV0YXRpb25zIG9m IHRoZQo+Pj4+IHdvcmQsIGl0IG1pZ2h0IGJlIGJldHRlciB0byBsZWF2ZSB0aGlzIGFzIGFwcGxp Y2F0aW9uIHNwZWNpZmljIGJlaGF2aW9yLgo+Pj4+Cj4+Pj4gQ2hlZXJzIGFuZCB0aGFua3MgZm9y IHVzaW5nIENMU1FMLAo+Pj4+IFJ1c3MgVHluZGFsbAo+Pj4+IEFjY2VsZXJhdGlvbi5uZXQKPj4+ Pgo+Pj4+IE9uIDA4LzEyLzIwMTYgMDY6MTIgQU0sIFN0aWFuIFNsZXRuZXIgd3JvdGU6Cj4+Pj4+ IFtUcnlpbmcgYWdhaW4sIHdhcyBzdWJzY3JpYmVkIHdpdGggdGhlIHdyb25nIGFkZHJlc3MuXQo+ Pj4+Pgo+Pj4+PiBIZWxsby4KPj4+Pj4KPj4+Pj4gSSBuZWVkIHNvbWUgaGVscCB3aXRoIGEgQ0xT UUwgYmVoYXZpb3VyIGNoYW5nZS4gIFRoZSBpc3N1ZSBpcyB0aGF0IEkKPj4+Pj4gaGF2ZSBhIFBv c3RncmVzIGVudW0gdHlwZSBsaWtlIHNvOgo+Pj4+Pgo+Pj4+PiBDUkVBVEUgVFlQRSBqb2Jfc3Rh dHVzIEFTIEVOVU0gKAo+Pj4+PiAgICAgICAnTkVXJywKPj4+Pj4gICAgICAgJ1JVTk5JTkcnLAo+ Pj4+PiAgICAgICAnRE9ORScsCj4+Pj4+ICAgICAgICdGQUlMRUQnLAo+Pj4+PiAgICAgICAnQUJP UlRFRCcKPj4+Pj4gKTsKPj4+Pj4KPj4+Pj4gVGhpcyBpcyB1c2VkIGluIGEgY29sdW1uIHdpdGgg YSBzbG90IGRlZmluaXRpb24gbGlrZSBzbzoKPj4+Pj4KPj4+Pj4gICAgICAoam9iLXN0YXR1cyA6 aW5pdGFyZyA6am9iLXN0YXR1cyA6YWNjZXNzb3Igam9iLXN0YXR1cyA6aW5pdGZvcm0gOm5ldwo+ Pj4+PiAgICAgICAgICAgICAgICAgIDp0eXBlIGtleXdvcmQpCj4+Pj4+Cj4+Pj4+IFRoaXMgdXNl ZCB0byBtYXAgYmFjayBhbmQgZm9ydGggZnJvbSBrZXl3b3JkcyBmaW5lIGZvciBtYW55IHllYXJz LCBidXQKPj4+Pj4gaW4gdGhlIGxhdGVzdCBDTFNRTCB2ZXJzaW9ucyBpdCB0cmllcyB0byBzdG9y ZSB0aGUga2V5d29yZHMgd2l0aCBjb2xvbi4KPj4+Pj4gICAgU29tZSB0aGluZ3Mgd29yayBhcyBl eHBlY3RlZDoKPj4+Pj4KPj4+Pj4gKiAoc2VsZWN0IC4uLiA6d2hlcmUgWz0gW2pvYi1zdGF0dXNd IDpuZXddKQo+Pj4+Pgo+Pj4+PiA7OyAyMDE2LTA4LTExVDEzOjI0OjM1IC4uLiA9PiBTRUxFQ1Qg Li4uIEZST00gLi4uIFdIRVJFIChKT0JfU1RBVFVTID0gJ05FVycpCj4+Pj4+Cj4+Pj4+IEJ1dCBm b3IgZXhhbXBsZSBVUERBVEUtUkVDT1JEUy1GUk9NLUlOU1RBTkNFIHRyaWVzIHRvIHN0b3JlIHdp dGggY29sb246Cj4+Pj4+Cj4+Pj4+ICAgICBFcnJvciAyMlAwMiAvIGludmFsaWQgaW5wdXQgdmFs dWUgZm9yIGVudW0gam9iX3N0YXR1czogIjpGQUlMRUQiCj4+Pj4+Cj4+Pj4+IEkgZG9uJ3Qga25v dyBpZiB0aGlzIGlzIGEgYnVnIG9yIHdoZXRoZXIgaXQgd2FzIG5ldmVyIHN1cHBvc2VkIHRvIHdv cmsKPj4+Pj4gbGlrZSB0aGlzLCBpZiBzbyBJJ2QgYXBwcmVjaWF0ZSBhbnkgdGlwcyBvbiBob3cg aXQgc2hvdWxkIGJlIGRvbmUuCj4+Pj4+Cj4+Pj4KPj4+Cj4+Cj4gCj4gCgoKLS0gClN0aWFuIFNs ZXRuZXIKVC4gKzQ3IDIxIDUzIDY5IDQwCkNvcHlsZWZ0IFNvbHV0aW9ucwp3d3cuY29weWxlZnRz b2x1dGlvbnMuY29tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkNMU1FMIG1haWxpbmcgbGlzdApDTFNRTEBsaXN0cy5rcGUuaW8KaHR0cDovL2xpc3RzLmtw ZS5pby9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vY2xzcWwK