a:3:{s:4:"name";s:9:"gravatars";s:4:"dirs";a:7:{i:0;s:9:"gravatars";i:1;s:14:"gravatars/l10n";i:2;s:17:"gravatars/l10n/fr";i:3;s:22:"gravatars/l10n/fr-utf8";i:4;s:14:"gravatars/help";i:5;s:17:"gravatars/help/fr";i:6;s:22:"gravatars/help/fr-utf8";}s:5:"files";a:12:{s:27:"gravatars/l10n/fr/main.lang";s:3996:"O0dyYXZhdGFycwpHcmF2YXRhcnMKO0Rpc3BsYXkgZ3JhdmF0YXJzIGluIGNvbW1lbnRzLgpBZmZpY2hlciBsZXMgR3JhdmF0YXJzIGRhbnMgbGVzIGNvbW1lbnRhaXJlcy4KO0NvbmZpZyBmaWxlICVzLCBpcyBub3Qgd3JpdGFibGUuCkxlIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiAlcyBuJ2VzdCBwYXMgYWNjZXNzaWJsZSBlbiDpY3JpdHVyZS4KO1lvdSBtdXN0IGdpdmUgYSBncmF2YXRhciBzZXJ2ZXIKVm91cyBkZXZleiBzcOljaWZpZXIgbGEgcGFnZSBzZXJ2YW50IGxlcyBncmF2YXRhcnMuCjtZb3UgbXVzdCBnaXZlIGEgdmFsaWQgc2l6ZSBiZXR3ZWVuIDEgYW5kIDgwcHguCkxhIHRhaWxsZSBkb2l0IOp0cmUgY29tcHJpc2UgZW50cmUgMSBldCA4MCBwaXhlbHMuCjtBbiBlcnJvciBvY2N1cmVkIHdoaWxlIHdyaXRpbmcgdGhlIGZpbGUuClVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIHBlbmRhbnQgbCfpY3JpdHVyZSBkdSBmaWNoaWVyLgo7Q29uZmlndXJhdGlvbgpDb25maWd1cmF0aW9uCjtVc2FnZQpVdGlsaXNhdGlvbgo7RXJyb3IocykKRXJyZXVyKHMpCjtDb25maWd1cmF0aW9uIGZpbGUgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQuCkxlIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBhIOl06SBtb2RpZmnpIGF2ZWMgc3VjY+hzLgo7R3JhdmF0YXJzIG1heSBiZSB1c2VkIGluIHRocmVlIGRpZmZlcmVudCBzaXR1YXRpb25zIDogaW4gdGhlIGNvbW1lbnQgbG9vcCwgaW4gdGhlIHBvc3QgbG9vcCBhbmQgaW4gYW55IG90aGVyIHNpdHVhdGlvbi4KTGVzIEdyYXZhdGFycyBwZXV2ZW50IOp0cmUgdXRpbGlz6XMgZGUgdHJvaXMgbWFuaehyZXMgOiBkYW5zIGxhIGJvdWNsZSBkZSBjb21tZW50YWlyZXMsIGRhbnMgbGEgYm91Y2xlIGRlIGJpbGxldHMsIG91IHBhcnRvdXQgYWlsbGV1cnMgKGRlIG1hbmnocmUgbGlicmUpLgo7R3JhdmF0YXJzIGZvciBjb21tZW50cwpHcmF2YXRhcnMgcG91ciBjb21tZW50YWlyZXMKO0FkZCB0aGUgZm9sbG93aW5nIGNvZGUgaW4gdGhlIGNvbW1lbnQgbG9vcCAoaS5lLiBwb3N0LnBocCkgd2hlcmUgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY29tbWVudCBhdXRob3IgR3JhdmF0YXIKQWpvdXRleiBsZSBjb2RlIHN1aXZhbnQgZGFucyBsYSBib3VjbGUgZGUgY29tbWVudGFpcmVzIChkYW5zIHBvc3QucGhwKSDgIGwnZW5kcm9pdCBv+SB2b3VzIGTpc2lyZXogYWZmaWNoZXIgbGUgR3JhdmF0YXIgZGUgbCdhdXRldXIgZCd1biBjb21tZW50YWlyZQo7R3JhdmF0YXJzIGZvciBwb3N0cwpHcmF2YXRhcnMgcG91ciBiaWxsZXRzCjtBZGQgdGhlIGZvbGxvd2luZyBjb2RlIGluIHRoZSBwb3N0IGxvb3AgKGkuZS4gbGlzdC5waHApIG9yIGluIHRoZSBmaWxlIGRpc3BsYXlpbmcgYSBzaW5nbGUgcG9zdCAoaS5lLiBwb3N0LnBocCkgd2hlcmUgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgcG9zdCBhdXRob3IgR3JhdmF0YXIKQWpvdXRleiBsZSBjb2RlIHN1aXZhbnQgZGFucyBsYSBib3VjbGUgZGUgYmlsbGV0cyAoZGFucyBsaXN0LnBocCkgb3UgZGFucyBsZSBmaWNoaWVyIGFmZmljaGFudCB1biBiaWxsZXQgdW5pcXVlIChwb3N0LnBocCkg4CBsJ2VuZHJvaXQgb/kgdm91cyBk6XNpcmV6IGFmZmljaGVyIGxlIEdyYXZhdGFyIGRlIGwnYXV0ZXVyIGQndW4gYmlsbGV0CjtHcmF2YXRhcnMgZm9yIG90aGVyIHNpdHVhdGlvbnMgLSBEZXZlbG9wcGVycyBvbmx5ICEKQWZmaWNoZXIgZGVzIEdyYXZhdGFycyBsaWJyZXMgLSBE6XZlbG9wcGV1cnMgc2V1bGVtZW50ICEKO0FkZCB0aGUgZm9sbG93aW5nIGNvZGUgd2hlcmUgeW91IHdhbnQgdG8gdXNlIGEgR3JhdmF0YXIgKGUuZy4gaW4gYSBwbHVnLWluIGRpc3BsYXlpbmcgY29tbWVudCBmb3Igd2hpY2ggeW91IHdhbnQgdG8gZGlzcGxheSBhc3NvY2lhdGVkIEdyYXZhdGFycykKQWpvdXRleiBsZSBjb2RlIHN1aXZhbnQg4CBsJ2VuZHJvaXQgb/kgdm91cyBk6XNpcmV6IGFmZmljaGVyIHVuIEdyYXZhdGFyIChwYXIgZXhlbXBsZSBkYW5zIHVuIHBsdWctaW4gZ+lyYW50IGRlcyBjb21tZW50YWlyZXMgcG91ciBsZXNxdWVscyB2b3VzIHZvdWxleiBhZmZpY2hlciBsZXMgR3JhdmF0YXJzIGRlIGxldXJzIGF1dGV1cnMpCjtSZXF1aXJlbWVudHMKQ29uZGl0aW9ucyBkJ3V0aWxpc2F0aW9uCjtVc2VkIHRoaXMgd2F5LCB0aGUgZnVuY3Rpb25zIHJlcXVpcmVzIHR3byBhcmd1bWVudHMKVXRpbGlz6WUgZGUgY2V0dGUgbWFuaehyZSwgbGEgZm9uY3Rpb24gcmVxdWllcnQgZGV1eCBhcmd1bWVudHMKO01hbmRhdG9yeSBhcmd1bWVudCByZXByZXNlbnRpbmcgdGhlIGVtYWlsIGZvciB3aGljaCB0aGUgYXNzb2NpYXRlZCBHcmF2YXRhciBzaG91bGQgYmUgZGlzcGxheWVkCkFyZ3VtZW50IG9ibGlnYXRvaXJlIHJlcHLpc2VudGFudCBsJ2UtbWFpbCBwb3VyIGxlcXVlbCBsZSBHcmF2YXRhciBhc3NvY2npIGRvaXQg6nRyZSBhZmZpY2jpCjtPcHRpb25hbCBhcmd1bWVudCByZXByZXNlbnRpbmcgdGhlIG5hbWUgb2YgdGhlIGVtYWlsIG93bmVyCkFyZ3VtZW50IG9wdGlvbm5lbCByZXBy6XNlbnRhbnQgbGUgbm9tIGRlIGwnaW50ZXJuYXV0ZSBwcm9wcmnpdGFpcmUgZGUgbCdlLW1haWwKO0dyYXZhdGFyIHNlcnZlcgpTZXJ2ZXVyIGRlIGdyYXZhdGFycwo7RGVmYXVsdCBHcmF2YXRhciBmaWxlCkdyYXZhdGFyIHBhciBk6WZhdXQKO0N1cnJlbnQgZGVmYXVsdCBHcmF2YXRhcgpHcmF2YXRhciBwYXIgZOlmYXV0IGFjdHVlbAo7R3JhdmF0YXIgc2l6ZQpUYWlsbGUgZGVzIGdyYXZhdGFycwo7R3JhdmF0YXIgcmF0aW5nCkNsYXNzaWZpY2F0aW9uIGRlcyBncmF2YXRhcnMKO25vbmUKYXVjdW4KO0cKVG91cyBwdWJsaWNzCjtQRwpBY2NvcmQgcGFyZW50YWwgc291aGFpdGFibGUKO1IKSW50ZXJkaXQgYXV4IC0xOGFucwo7WApTZXh1ZWxsZW1lbnQgZXhwbGljaXRlCjtCb3JkZXIgY29sb3IKQ291bGV1ciBkZSBsYSBib3JkdXJlCjtzYXZlCmVucmVnaXN0cmVyCjtOb25lLi4uDQpBdWN1bi4uLg0KO0Zyb20gJXMNCkEgcGFydGlyIGRlICVz";s:32:"gravatars/l10n/fr-utf8/main.lang";s:4040:"O0dyYXZhdGFycwpHcmF2YXRhcnMKO0Rpc3BsYXkgZ3JhdmF0YXJzIGluIGNvbW1lbnRzLgpBZmZpY2hlciBsZXMgR3JhdmF0YXJzIGRhbnMgbGVzIGNvbW1lbnRhaXJlcy4KO0NvbmZpZyBmaWxlICVzLCBpcyBub3Qgd3JpdGFibGUuCkxlIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiAlcyBuJ2VzdCBwYXMgYWNjZXNzaWJsZSBlbiDDqWNyaXR1cmUuCjtZb3UgbXVzdCBnaXZlIGEgZ3JhdmF0YXIgc2VydmVyClZvdXMgZGV2ZXogc3DDqWNpZmllciBsYSBwYWdlIHNlcnZhbnQgbGVzIGdyYXZhdGFycy4KO1lvdSBtdXN0IGdpdmUgYSB2YWxpZCBzaXplIGJldHdlZW4gMSBhbmQgODBweC4KTGEgdGFpbGxlIGRvaXQgw6p0cmUgY29tcHJpc2UgZW50cmUgMSBldCA4MCBwaXhlbHMuCjtBbiBlcnJvciBvY2N1cmVkIHdoaWxlIHdyaXRpbmcgdGhlIGZpbGUuClVuZSBlcnJldXIgZXN0IHN1cnZlbnVlIHBlbmRhbnQgbCfDqWNyaXR1cmUgZHUgZmljaGllci4KO0NvbmZpZ3VyYXRpb24KQ29uZmlndXJhdGlvbgo7VXNhZ2UKVXRpbGlzYXRpb24KO0Vycm9yKHMpCkVycmV1cihzKQo7Q29uZmlndXJhdGlvbiBmaWxlIHN1Y2Nlc3NmdWxseSB1cGRhdGVkLgpMZSBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gYSDDqXTDqSBtb2RpZmnDqSBhdmVjIHN1Y2PDqHMuCjtHcmF2YXRhcnMgbWF5IGJlIHVzZWQgaW4gdGhyZWUgZGlmZmVyZW50IHNpdHVhdGlvbnMgOiBpbiB0aGUgY29tbWVudCBsb29wLCBpbiB0aGUgcG9zdCBsb29wIGFuZCBpbiBhbnkgb3RoZXIgc2l0dWF0aW9uLgpMZXMgR3JhdmF0YXJzIHBldXZlbnQgw6p0cmUgdXRpbGlzw6lzIGRlIHRyb2lzIG1hbmnDqHJlcyA6IGRhbnMgbGEgYm91Y2xlIGRlIGNvbW1lbnRhaXJlcywgZGFucyBsYSBib3VjbGUgZGUgYmlsbGV0cywgb3UgcGFydG91dCBhaWxsZXVycyAoZGUgbWFuacOocmUgbGlicmUpLgo7R3JhdmF0YXJzIGZvciBjb21tZW50cwpHcmF2YXRhcnMgcG91ciBjb21tZW50YWlyZXMKO0FkZCB0aGUgZm9sbG93aW5nIGNvZGUgaW4gdGhlIGNvbW1lbnQgbG9vcCAoaS5lLiBwb3N0LnBocCkgd2hlcmUgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY29tbWVudCBhdXRob3IgR3JhdmF0YXIKQWpvdXRleiBsZSBjb2RlIHN1aXZhbnQgZGFucyBsYSBib3VjbGUgZGUgY29tbWVudGFpcmVzIChkYW5zIHBvc3QucGhwKSDDoCBsJ2VuZHJvaXQgb8O5IHZvdXMgZMOpc2lyZXogYWZmaWNoZXIgbGUgR3JhdmF0YXIgZGUgbCdhdXRldXIgZCd1biBjb21tZW50YWlyZQo7R3JhdmF0YXJzIGZvciBwb3N0cwpHcmF2YXRhcnMgcG91ciBiaWxsZXRzCjtBZGQgdGhlIGZvbGxvd2luZyBjb2RlIGluIHRoZSBwb3N0IGxvb3AgKGkuZS4gbGlzdC5waHApIG9yIGluIHRoZSBmaWxlIGRpc3BsYXlpbmcgYSBzaW5nbGUgcG9zdCAoaS5lLiBwb3N0LnBocCkgd2hlcmUgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgcG9zdCBhdXRob3IgR3JhdmF0YXIKQWpvdXRleiBsZSBjb2RlIHN1aXZhbnQgZGFucyBsYSBib3VjbGUgZGUgYmlsbGV0cyAoZGFucyBsaXN0LnBocCkgb3UgZGFucyBsZSBmaWNoaWVyIGFmZmljaGFudCB1biBiaWxsZXQgdW5pcXVlIChwb3N0LnBocCkgw6AgbCdlbmRyb2l0IG/DuSB2b3VzIGTDqXNpcmV6IGFmZmljaGVyIGxlIEdyYXZhdGFyIGRlIGwnYXV0ZXVyIGQndW4gYmlsbGV0CjtHcmF2YXRhcnMgZm9yIG90aGVyIHNpdHVhdGlvbnMgLSBEZXZlbG9wcGVycyBvbmx5ICEKQWZmaWNoZXIgZGVzIEdyYXZhdGFycyBsaWJyZXMgLSBEw6l2ZWxvcHBldXJzIHNldWxlbWVudCAhCjtBZGQgdGhlIGZvbGxvd2luZyBjb2RlIHdoZXJlIHlvdSB3YW50IHRvIHVzZSBhIEdyYXZhdGFyIChlLmcuIGluIGEgcGx1Zy1pbiBkaXNwbGF5aW5nIGNvbW1lbnQgZm9yIHdoaWNoIHlvdSB3YW50IHRvIGRpc3BsYXkgYXNzb2NpYXRlZCBHcmF2YXRhcnMpCkFqb3V0ZXogbGUgY29kZSBzdWl2YW50IMOgIGwnZW5kcm9pdCBvw7kgdm91cyBkw6lzaXJleiBhZmZpY2hlciB1biBHcmF2YXRhciAocGFyIGV4ZW1wbGUgZGFucyB1biBwbHVnLWluIGfDqXJhbnQgZGVzIGNvbW1lbnRhaXJlcyBwb3VyIGxlc3F1ZWxzIHZvdXMgdm91bGV6IGFmZmljaGVyIGxlcyBHcmF2YXRhcnMgZGUgbGV1cnMgYXV0ZXVycykKO1JlcXVpcmVtZW50cwpDb25kaXRpb25zIGQndXRpbGlzYXRpb24KO1VzZWQgdGhpcyB3YXksIHRoZSBmdW5jdGlvbnMgcmVxdWlyZXMgdHdvIGFyZ3VtZW50cwpVdGlsaXPDqWUgZGUgY2V0dGUgbWFuacOocmUsIGxhIGZvbmN0aW9uIHJlcXVpZXJ0IGRldXggYXJndW1lbnRzCjtNYW5kYXRvcnkgYXJndW1lbnQgcmVwcmVzZW50aW5nIHRoZSBlbWFpbCBmb3Igd2hpY2ggdGhlIGFzc29jaWF0ZWQgR3JhdmF0YXIgc2hvdWxkIGJlIGRpc3BsYXllZApBcmd1bWVudCBvYmxpZ2F0b2lyZSByZXByw6lzZW50YW50IGwnZS1tYWlsIHBvdXIgbGVxdWVsIGxlIEdyYXZhdGFyIGFzc29jacOpIGRvaXQgw6p0cmUgYWZmaWNow6kKO09wdGlvbmFsIGFyZ3VtZW50IHJlcHJlc2VudGluZyB0aGUgbmFtZSBvZiB0aGUgZW1haWwgb3duZXIKQXJndW1lbnQgb3B0aW9ubmVsIHJlcHLDqXNlbnRhbnQgbGUgbm9tIGRlIGwnaW50ZXJuYXV0ZSBwcm9wcmnDqXRhaXJlIGRlIGwnZS1tYWlsCjtHcmF2YXRhciBzZXJ2ZXIKU2VydmV1ciBkZSBncmF2YXRhcnMKO0RlZmF1bHQgR3JhdmF0YXIgZmlsZQpHcmF2YXRhciBwYXIgZMOpZmF1dAo7Q3VycmVudCBkZWZhdWx0IEdyYXZhdGFyCkdyYXZhdGFyIHBhciBkw6lmYXV0IGFjdHVlbAo7R3JhdmF0YXIgc2l6ZQpUYWlsbGUgZGVzIGdyYXZhdGFycwo7R3JhdmF0YXIgcmF0aW5nCkNsYXNzaWZpY2F0aW9uIGRlcyBncmF2YXRhcnMKO25vbmUKYXVjdW4KO0cKVG91cyBwdWJsaWNzCjtQRwpBY2NvcmQgcGFyZW50YWwgc291aGFpdGFibGUKO1IKSW50ZXJkaXQgYXV4IC0xOGFucwo7WApTZXh1ZWxsZW1lbnQgZXhwbGljaXRlCjtCb3JkZXIgY29sb3IKQ291bGV1ciBkZSBsYSBib3JkdXJlCjtzYXZlCmVucmVnaXN0cmVyCjtOb25lLi4uCkF1Y3VuLi4uCjtGcm9tICVzCkEgcGFydGlyIGRlICVzCg==";s:28:"gravatars/help/fr/index.html";s:4976:"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IS0tICoqKioqIEJFR0lOIExJQ0VOU0UgQkxPQ0sgKioqKioKICAgLSBUaGlzIGZpbGUgaXMgcGFydCBvZiBEb3RDbGVhci4KICAgLSBDb3B5cmlnaHQgKGMpIDIwMDQgT2xpdmllciBNZXVuaWVyIGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMKICAgLSByZXNlcnZlZC4KICAgLQogICAtIERvdENsZWFyIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgLSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAtIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAgIC0gKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAgLSAKICAgLSBEb3RDbGVhciBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAtIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIC0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAtIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAgIC0gCiAgIC0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgLSBhbG9uZyB3aXRoIERvdENsZWFyOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAgIC0gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogICAtCiAgIC0gKioqKiogRU5EIExJQ0VOU0UgQkxPQ0sgKioqKiogCiAgIC0KICAgLSBDb250cmlidXRvcnMgOiAKICAgLSAgICBEYXZpZCBUaXNjaG1hY2hlciAoaHR0cDovL3d3dy5hYnlzc2VzLm5ldC8pCiAgIC0gICAgMWxvdXAgKGh0dHA6Ly8xbG91cC5uZXQvKQogICAtLT4KPGh0bWw+CiAgPGhlYWQ+CiAgICA8dGl0bGU+R3JhdmF0YXJzPC90aXRsZT4KICA8L2hlYWQ+CiAgCiAgPGJvZHk+CiAgICA8aDE+R3JhdmF0YXJzPC9oMT4KICAgIAogICAgPGgyPlByJmVhY3V0ZTtzZW50YXRpb248L2gyPgogICAgCiAgICA8cD5VbiBncmF2YXRhciAoR2xvYmFsbHkgUmVjb2duaXplZCBhdmF0YXIpIGVzdCB1bmUgaW1hZ2UgZGUgODDXODAgcGl4ZWxzIHF1aSBhcHBhcmEmaWNpcmM7dCAmYWdyYXZlOyBjJm9jaXJjO3QmZWFjdXRlOyBkZXMgYWRyZXNzZXMgbWFpbCBvdSBkdSBub20gZGVzIHZpc3RldXJzIHF1aSBsYWlzc2VudCB1biBjb21tZW50YWlyZSBzdXIgdm90cmUgYmxvZy4gSWxzIHBlcm1ldHRlbnQgZCdpZGVudGlmaWVyIHBsdXMgcmFwaWRlbWVudCBsZXVyIGF1dGV1ci48L3A+CiAgICAKICAgIDxwPkxlIHBsdWdpbiBkZSBjb25maWd1cmF0aW9uIGRlcyBHcmF2YXRhcnMgcGVybWV0IGQnJmVhY3V0ZTtkaXRlciBsZSBmaWNoaWVyCiAgICBub3JtYWxlbWVudCBzaXR1JmVhY3V0ZTsgZGFucyA8ZW0+dG9vbHMvZ3JhdmF0YXJzL2dyYXZhdGFycy5pbmk8L2VtPiAmYWdyYXZlOyBsJ2FpZGUgZCd1bmUgaW50ZXJmYWNlCiAgICBXZWIuPC9wPgogICAgCiAgICA8cD5Wb3VzIGRpc3Bvc2V6IHBvdXIgY2VsYSBkJ3VuIGZvcm11bGFpcmUgZG9udCBsZXMgaW5mb3JtYXRpb25zIHNlcm9udAogICAgJmVhY3V0ZTtjcml0ZXMgc3VyIGxlIGZpY2hpZXIgbG9ycyBkZSBsJ2VucmVnaXN0cmVtZW50LjwvcD4KICAgIAogICAgPGgyPkNoYW1wczwvaDI+CiAgICAKICAgIDxkbD4KICAgICAgPGR0IGlkPSJzZXJ2ZXIiPlNlcnZldXIgZGUgR3JhdmF0YXJzPC9kdD4KICAgICAgPGRkPklsIHMnYWdpdCBkZSBsJ2FkcmVzc2UgZGUgbGEgcGFnZSBzZXJ2YW50IGxlcyBHcmF2YXRhcnMuIENlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IG9ibGlnYXRvaXJlIGV0IG5lIGRvaXQgJmVjaXJjO3RyZSBtb2RpZmkmZWFjdXRlOyBxdWUgc2kgbGUgc2VydmljZSBjaGFuZ2UgZCdhZHJlc3NlIG91IGRlIGNvbmZpZ3VyYXRpb24uPC9kZD4KICAgICAgCiAgICAgIDxkdCBpZD0iZGVmYXVsdCI+R3JhdmF0YXIgcGFyIGQmZWFjdXRlO2ZhdXQ8L2R0PgogICAgICA8ZGQ+SWwgcydhZ2l0IGR1IG5vbSBkdSBmaWNoaWVyIGltYWdlIGRldmFudCAmZWNpcmM7dHJlIGFmZmljaCZlYWN1dGU7ICZhZ3JhdmU7IGxhIHBsYWNlIGR1IEdyYXZhdGFyIHNpIGxlIHZpc2l0ZXVyIHF1aSBsYWlzc2UgdW4gY29tbWVudGFpcmUgbidhIHBhcyBkZSBHcmF2YXRhciBhc3NvY2kmZWFjdXRlOyAmYWdyYXZlOyBzb24gYWRyZXNzZSBtYWlsLiBDZSBmaWNoaWVyIGltYWdlIGRvaXQgc2UgdHJvdXZlciBkYW5zIGxlIHImZWFjdXRlO3BlcnRvaXJlIHBhciBkJmVhY3V0ZTtmYXV0IGR1IGJsb2cgKElsIHBldXQgJmVhY3V0ZTt2ZW50dWVsbGVtZW50ICZlY2lyYzt0cmUgc2l0dSZlYWN1dGU7IGRhbnMgdW4gc291cy1yJmVhY3V0ZTtwZXJ0b2lyZSBkdSBkb3NzaWVyIGQnaW1hZ2VzIGR1IGJsb2cpLiBDZSBwYXJhbSZlZ3JhdmU7dHJlIGVzdCBvcHRpb25uZWwuPC9kZD4KICAgICAgCiAgICAgIDxkdCBpZD0ic2l6ZSI+VGFpbGxlIGRlcyBHcmF2YXRhcnM8L2R0PgogICAgICA8ZGQ+SWwgcydhZ2l0IGRlIGxhIHRhaWxsZSBlbiBwaXhlbHMgZGVzIEdyYXZhdGFycyAoY2FyciZlYWN1dGU7cykgYWZmaWNoJmVhY3V0ZTtzLiBDZXR0ZSB0YWlsbGUgZG9pdCAmZWNpcmM7dHJlIGNvbXByaXNlIGVudHJlIDEgZXQgODAgcGl4ZWxzLiBDZSBwYXJhbSZlZ3JhdmU7dHJlIGVzdCBvcHRpb25uZWwuPC9kZD4KICAgICAgCiAgICAgIDxkdCBpZD0icmF0aW5nIj5DbGFzc2lmaWNhdGlvbiBkZXMgR3JhdmF0YXJzPC9kdD4KICAgICAgPGRkPkNoYXF1ZSBHcmF2YXRhciBzZSB2b2l0IGFzc29jaSZlYWN1dGU7IHVuIG5pdmVhdSBkZSBjbGFzc2lmaWNhdGlvbiAoVG91cyBwdWJsaWNzIC0gQWNjb3JkIHBhcmVudGFsIHNvdWhhaXRhYmxlIC0gSW50ZXJkaXQgYXV4IG1vbnMgZGUgMTggYW5zIC0gU2V4dWVsbGVtZW50IGV4cGxpY2l0ZSkuIENlIHBhcmFtJmVncmF2ZTt0cmUgaW5kaXF1ZSBxdWVsIGVzdCBsZSBuaXZlYXUgZGUgY2xhc3NpZmljYXRpb24gbWF4aW1hbCBkZXMgR3JhdmF0YXJzIChpbmNsdXMpIGF1dG9yaXMmZWFjdXRlOyBzdXIgbGUgYmxvZy4gQ2UgcGFyYW0mZWdyYXZlO3RyZSBlc3Qgb3B0aW9ubmVsLjwvZGQ+CiAgICAgIAogICAgICA8ZHQgaWQ9ImJvcmRlciI+Qm9yZHVyZSBkdSBHcmF2YXRhcjwvZHQ+CiAgICAgIDxkZD5JbCBzJ2FnaXQgZHUgY29kZSBoJmVhY3V0ZTt4YWQmZWFjdXRlO2NpbWFsICg2IGNhcmFjdCZlZ3JhdmU7cmVzLCBvdSBzYSBmb3JtZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UgZW4gMyBjYXJhY3QmZWdyYXZlO3JlcykgZGUgbGEgY291bGV1ciBkJ3VuZSBib3JkdXJlIGRlIDEgcGl4ZWwgIGQnJmVhY3V0ZTtwYWlzc2V1ciBkZXZhbnQgJmVjaXJjO3RyZSBham91dCZlYWN1dGU7ZSBlbiBzdXJpbXByZXNzaW9uIHN1ciBsZSBHcmF2YXRhci4gQ2UgcGFyYW0mZWdyYXZlO3RyZSBlc3Qgb3B0aW9ubmVsLjwvZGQ+CiAgICAgIAogICAgPC9kbD4KICAgIAogICAgPGgyPlNpdGUgT2ZmaWNpZWw8L2gyPgogICAgPHA+CiAgICAKICA8L2JvZHk+CjwvaHRtbD4K";s:33:"gravatars/help/fr-utf8/index.html";s:4976:"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8IS0tICoqKioqIEJFR0lOIExJQ0VOU0UgQkxPQ0sgKioqKioKICAgLSBUaGlzIGZpbGUgaXMgcGFydCBvZiBEb3RDbGVhci4KICAgLSBDb3B5cmlnaHQgKGMpIDIwMDQgT2xpdmllciBNZXVuaWVyIGFuZCBjb250cmlidXRvcnMuIEFsbCByaWdodHMKICAgLSByZXNlcnZlZC4KICAgLQogICAtIERvdENsZWFyIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgLSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAtIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAgIC0gKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICAgLSAKICAgLSBEb3RDbGVhciBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAtIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgIC0gTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAtIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAgIC0gCiAgIC0gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgLSBhbG9uZyB3aXRoIERvdENsZWFyOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAgIC0gRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogICAtCiAgIC0gKioqKiogRU5EIExJQ0VOU0UgQkxPQ0sgKioqKiogCiAgIC0KICAgLSBDb250cmlidXRvcnMgOiAKICAgLSAgICBEYXZpZCBUaXNjaG1hY2hlciAoaHR0cDovL3d3dy5hYnlzc2VzLm5ldC8pCiAgIC0gICAgMWxvdXAgKGh0dHA6Ly8xbG91cC5uZXQvKQogICAtLT4KPGh0bWw+CiAgPGhlYWQ+CiAgICA8dGl0bGU+R3JhdmF0YXJzPC90aXRsZT4KICA8L2hlYWQ+CiAgCiAgPGJvZHk+CiAgICA8aDE+R3JhdmF0YXJzPC9oMT4KICAgIAogICAgPGgyPlByJmVhY3V0ZTtzZW50YXRpb248L2gyPgogICAgCiAgICA8cD5VbiBncmF2YXRhciAoR2xvYmFsbHkgUmVjb2duaXplZCBhdmF0YXIpIGVzdCB1bmUgaW1hZ2UgZGUgODB4ODAgcGl4ZWxzIHF1aSBhcHBhcmEmaWNpcmM7dCAmYWdyYXZlOyBjJm9jaXJjO3QmZWFjdXRlOyBkZXMgYWRyZXNzZXMgbWFpbCBvdSBkdSBub20gZGVzIHZpc3RldXJzIHF1aSBsYWlzc2VudCB1biBjb21tZW50YWlyZSBzdXIgdm90cmUgYmxvZy4gSWxzIHBlcm1ldHRlbnQgZCdpZGVudGlmaWVyIHBsdXMgcmFwaWRlbWVudCBsZXVyIGF1dGV1ci48L3A+CiAgICAKICAgIDxwPkxlIHBsdWdpbiBkZSBjb25maWd1cmF0aW9uIGRlcyBHcmF2YXRhcnMgcGVybWV0IGQnJmVhY3V0ZTtkaXRlciBsZSBmaWNoaWVyCiAgICBub3JtYWxlbWVudCBzaXR1JmVhY3V0ZTsgZGFucyA8ZW0+dG9vbHMvZ3JhdmF0YXJzL2dyYXZhdGFycy5pbmk8L2VtPiAmYWdyYXZlOyBsJ2FpZGUgZCd1bmUgaW50ZXJmYWNlCiAgICBXZWIuPC9wPgogICAgCiAgICA8cD5Wb3VzIGRpc3Bvc2V6IHBvdXIgY2VsYSBkJ3VuIGZvcm11bGFpcmUgZG9udCBsZXMgaW5mb3JtYXRpb25zIHNlcm9udAogICAgJmVhY3V0ZTtjcml0ZXMgc3VyIGxlIGZpY2hpZXIgbG9ycyBkZSBsJ2VucmVnaXN0cmVtZW50LjwvcD4KICAgIAogICAgPGgyPkNoYW1wczwvaDI+CiAgICAKICAgIDxkbD4KICAgICAgPGR0IGlkPSJzZXJ2ZXIiPlNlcnZldXIgZGUgR3JhdmF0YXJzPC9kdD4KICAgICAgPGRkPklsIHMnYWdpdCBkZSBsJ2FkcmVzc2UgZGUgbGEgcGFnZSBzZXJ2YW50IGxlcyBHcmF2YXRhcnMuIENlIHBhcmFtJmVncmF2ZTt0cmUgZXN0IG9ibGlnYXRvaXJlIGV0IG5lIGRvaXQgJmVjaXJjO3RyZSBtb2RpZmkmZWFjdXRlOyBxdWUgc2kgbGUgc2VydmljZSBjaGFuZ2UgZCdhZHJlc3NlIG91IGRlIGNvbmZpZ3VyYXRpb24uPC9kZD4KICAgICAgCiAgICAgIDxkdCBpZD0iZGVmYXVsdCI+R3JhdmF0YXIgcGFyIGQmZWFjdXRlO2ZhdXQ8L2R0PgogICAgICA8ZGQ+SWwgcydhZ2l0IGR1IG5vbSBkdSBmaWNoaWVyIGltYWdlIGRldmFudCAmZWNpcmM7dHJlIGFmZmljaCZlYWN1dGU7ICZhZ3JhdmU7IGxhIHBsYWNlIGR1IEdyYXZhdGFyIHNpIGxlIHZpc2l0ZXVyIHF1aSBsYWlzc2UgdW4gY29tbWVudGFpcmUgbidhIHBhcyBkZSBHcmF2YXRhciBhc3NvY2kmZWFjdXRlOyAmYWdyYXZlOyBzb24gYWRyZXNzZSBtYWlsLiBDZSBmaWNoaWVyIGltYWdlIGRvaXQgc2UgdHJvdXZlciBkYW5zIGxlIHImZWFjdXRlO3BlcnRvaXJlIHBhciBkJmVhY3V0ZTtmYXV0IGR1IGJsb2cgKElsIHBldXQgJmVhY3V0ZTt2ZW50dWVsbGVtZW50ICZlY2lyYzt0cmUgc2l0dSZlYWN1dGU7IGRhbnMgdW4gc291cy1yJmVhY3V0ZTtwZXJ0b2lyZSBkdSBkb3NzaWVyIGQnaW1hZ2VzIGR1IGJsb2cpLiBDZSBwYXJhbSZlZ3JhdmU7dHJlIGVzdCBvcHRpb25uZWwuPC9kZD4KICAgICAgCiAgICAgIDxkdCBpZD0ic2l6ZSI+VGFpbGxlIGRlcyBHcmF2YXRhcnM8L2R0PgogICAgICA8ZGQ+SWwgcydhZ2l0IGRlIGxhIHRhaWxsZSBlbiBwaXhlbHMgZGVzIEdyYXZhdGFycyAoY2FyciZlYWN1dGU7cykgYWZmaWNoJmVhY3V0ZTtzLiBDZXR0ZSB0YWlsbGUgZG9pdCAmZWNpcmM7dHJlIGNvbXByaXNlIGVudHJlIDEgZXQgODAgcGl4ZWxzLiBDZSBwYXJhbSZlZ3JhdmU7dHJlIGVzdCBvcHRpb25uZWwuPC9kZD4KICAgICAgCiAgICAgIDxkdCBpZD0icmF0aW5nIj5DbGFzc2lmaWNhdGlvbiBkZXMgR3JhdmF0YXJzPC9kdD4KICAgICAgPGRkPkNoYXF1ZSBHcmF2YXRhciBzZSB2b2l0IGFzc29jaSZlYWN1dGU7IHVuIG5pdmVhdSBkZSBjbGFzc2lmaWNhdGlvbiAoVG91cyBwdWJsaWNzIC0gQWNjb3JkIHBhcmVudGFsIHNvdWhhaXRhYmxlIC0gSW50ZXJkaXQgYXV4IG1vbnMgZGUgMTggYW5zIC0gU2V4dWVsbGVtZW50IGV4cGxpY2l0ZSkuIENlIHBhcmFtJmVncmF2ZTt0cmUgaW5kaXF1ZSBxdWVsIGVzdCBsZSBuaXZlYXUgZGUgY2xhc3NpZmljYXRpb24gbWF4aW1hbCBkZXMgR3JhdmF0YXJzIChpbmNsdXMpIGF1dG9yaXMmZWFjdXRlOyBzdXIgbGUgYmxvZy4gQ2UgcGFyYW0mZWdyYXZlO3RyZSBlc3Qgb3B0aW9ubmVsLjwvZGQ+CiAgICAgIAogICAgICA8ZHQgaWQ9ImJvcmRlciI+Qm9yZHVyZSBkdSBHcmF2YXRhcjwvZHQ+CiAgICAgIDxkZD5JbCBzJ2FnaXQgZHUgY29kZSBoJmVhY3V0ZTt4YWQmZWFjdXRlO2NpbWFsICg2IGNhcmFjdCZlZ3JhdmU7cmVzLCBvdSBzYSBmb3JtZSBhYnImZWFjdXRlO2cmZWFjdXRlO2UgZW4gMyBjYXJhY3QmZWdyYXZlO3JlcykgZGUgbGEgY291bGV1ciBkJ3VuZSBib3JkdXJlIGRlIDEgcGl4ZWwgIGQnJmVhY3V0ZTtwYWlzc2V1ciBkZXZhbnQgJmVjaXJjO3RyZSBham91dCZlYWN1dGU7ZSBlbiBzdXJpbXByZXNzaW9uIHN1ciBsZSBHcmF2YXRhci4gQ2UgcGFyYW0mZWdyYXZlO3RyZSBlc3Qgb3B0aW9ubmVsLjwvZGQ+CiAgICAgIAogICAgPC9kbD4KICAgIAogICAgPGgyPlNpdGUgT2ZmaWNpZWw8L2gyPgogICAgPHA+CiAgICAKICA8L2JvZHk+CjwvaHRtbD4K";s:23:"gravatars/gravatars.ini";s:140:"c2VydmVyID0gaHR0cDovL3d3dy5ncmF2YXRhci5jb20vYXZhdGFyLnBocApkZWZhdWx0ID0gZGVmYXVsdF9ncmF2YXRhci5wbmcKc2l6ZSA9IDQwCnJhdGluZyA9IApib3JkZXIgPSAK";s:23:"gravatars/functions.php";s:1424:"PD9waHAKCmNsYXNzIGRjR3JhdmF0YXJzCnsKCglmdW5jdGlvbiBkaXNwbGF5R3JhdmF0YXIoJGVtYWlsKQoJewoJCgkJJGdyYXZfaW5pX2ZpbGUgPSBkaXJuYW1lKF9fRklMRV9fKS4nL2dyYXZhdGFycy5pbmknOwoJCSRncmF2X2luaV9jb250ZW50ID0gcGFyc2VfaW5pX2ZpbGUoJGdyYXZfaW5pX2ZpbGUpOwoJCQoJCXN3aXRjaCAoJGVtYWlsKSB7CgkJCWNhc2UgJ2NvbW1lbnQnIDoKCQkJCSRlbWFpbCA9ICRHTE9CQUxTWydjb21tZW50cyddLT5mKCdjb21tZW50X2VtYWlsJyk7CgkJCQlicmVhazsKCQkJY2FzZSAncG9zdCcgOgoJCQkJJGVtYWlsID0gJEdMT0JBTFNbJ25ld3MnXS0+ZigndXNlcl9lbWFpbCcpOwoJCQkJYnJlYWs7CgkJfQoJCQoJCQoJCSRncmF2YXRhcl9pZCA9IG1kNShzdHJ0b2xvd2VyKCRlbWFpbCkpOwoJCQkJCgkJJGdyYXZfdXJsID0gJGdyYXZfaW5pX2NvbnRlbnRbJ3NlcnZlciddLic/Z3JhdmF0YXJfaWQ9Jy4kZ3JhdmF0YXJfaWQ7CgkJCgkJaWYoJGdyYXZfaW5pX2NvbnRlbnRbJ2RlZmF1bHQnXSAhPSBOVUxMKXsKCQkJJGdyYXZfdXJsIC49ICcmYW1wO2RlZmF1bHQ9Jy51cmxlbmNvZGUoKCdodHRwOi8vJy4kX1NFUlZFUlsnU0VSVkVSX05BTUUnXS5kY19pbWdfdXJsLiRncmF2X2luaV9jb250ZW50WydkZWZhdWx0J10pKTsKCQl9CgkJaWYoJGdyYXZfaW5pX2NvbnRlbnRbJ3NpemUnXSAhPSBOVUxMKXsKCQkJJGdyYXZfdXJsIC49ICcmYW1wO3NpemU9Jy4kZ3Jhdl9pbmlfY29udGVudFsnc2l6ZSddOwoJCX0KCQlpZigkZ3Jhdl9pbmlfY29udGVudFsncmF0aW5nJ10gIT0gTlVMTCl7CgkJCSRncmF2X3VybCAuPSAnJmFtcDtyYXRpbmc9Jy4kZ3Jhdl9pbmlfY29udGVudFsncmF0aW5nJ107IAoJCX0KCQlpZigkZ3Jhdl9pbmlfY29udGVudFsnYm9yZGVyJ10gIT0gTlVMTCl7CgkJCSRncmF2X3VybCAuPSAnJmFtcDtib3JkZXI9Jy4kZ3Jhdl9pbmlfY29udGVudFsnYm9yZGVyJ107CgkJfQoJCQoJCWVjaG8gJzxpbWcgc3JjPSInLiRncmF2X3VybC4nIiBjbGFzcz0iZ3JhdmF0YXJfaW1nIiBhbHQ9IkdyYXZhdGFyIiAvPic7CgkJCgkJCgl9Cn0KPz4K";s:30:"gravatars/default_gravatar.png";s:848:"iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAA0lBMVEUAAAA0NWY8VWNLVHRHWG4DmQMLlwtUXXsSlhIKnQpXYX0QnRA+fFRfYoY7jTscoxxmaotCjEJrbo9tbpE+lEosqSxkhWRFnE9qhGozqzNHoFA5rDt2gnZ7gXuDg4NykYhHtUdLt0tupntYu1hyrnyZmrJrw2uHsJWCtYyjpLqRupuEzoSXwKCMy4+cv6aK0Iqlw7Cc0p6txrie2J61yb/BwdCl26W5y8S9zcjAzcqr3qu24rbW1uDE58TE6MTN683T7tPc8dzk9OTs+Ozz+vP5/fnZR79EAAAAAXRSTlMAQObYZgAAAVZJREFUeNq1lUtLw0AUhb+xqQ/UUjVYRAu+Fi66c+n/X+jKpehCiVpBFKmUSp/xnmmCqQtJhLkzTOZxOWfua+Ic5SQiLazqhfl4Qc9FPyo2bRNr8cUndJkUtZdKMpdXdC71xAdwZCvdOLU2w4jv4S1nd6URI2/HPqfMwTJJhd4WLH2zLYgxke/H4rqEERdz4iuxnsOuqBuYX0NQ19uZ/2qwnJteE/XUX6vJR8XIRB1YzXyXCmXmmyH6wXaeoPUcxI8W9es/NPY0TCoh+qo5g53fZ+9wkx3XKyEO5OhXlLuL8uLh+vK+CxLrcRcOuUUBKLI/0PMG9tioWoVWM7GZQwJbnMAKQ+6EtK5AW2/Bowv3ADRhU+zTbBu2VaYjXceSMAlGrSAqw2PRDMy5fX2cCsZ2kkpvT45o0tDdM2MsD9YUEefdWwnxP9Re7DUYWhB9WicLemV/H99em1t7izouewAAAABJRU5ErkJggg==";s:18:"gravatars/icon.png";s:468:"iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAAGFBMVEX///80NWYKnQpxcXFHtUePj4+lw7Dk9OSbBcSCAAAAAXRSTlMAQObYZgAAAPNJREFUeNplkeGxhCAQg2mBsYNoA7rSAMfZAKMV6NoBtH8B9fTey7/9yAaYGFOEIvPQHwAEVQ03AtaUHgAhV2mHJ0hp9/gx7Om0nICzHhbkLMIVEVV0J2jo6HudMHBeL0eja8ARQcee6aghUF6oVVMIiARfsnJFCOytf+CF0WCyW+Kz8r4v9siwS51TXqyH47WNHJ/JYlGBfEHTccVg407Rxoh2JljsVsFsBwzF4WcriX+xgrLBkGhFkwoNzCykm/vyqhGQWIF/N5x7D4zu6iW82ALEXb34EEJHQzybGWqVo1yzaStoXbzrFRHnnvXH0cXj/APFNmkv9tf6MAAAAABJRU5ErkJggg==";s:19:"gravatars/index.php";s:8988:"PD9waHAKIyAqKioqKiBCRUdJTiBMSUNFTlNFIEJMT0NLICoqKioqCiMgVGhpcyBmaWxlIGlzIHBhcnQgb2YgRG90Q2xlYXIuCiMgQ29weXJpZ2h0IChjKSAyMDA0IE9saXZpZXIgTWV1bmllciBhbmQgY29udHJpYnV0b3JzLiBBbGwgcmlnaHRzCiMgcmVzZXJ2ZWQuCiMKIyBEb3RDbGVhciBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgCiMgRG90Q2xlYXIgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIAojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCBEb3RDbGVhcjsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKI2V6ZQojICoqKioqIEVORCBMSUNFTlNFIEJMT0NLICoqKioqCiMKIyBDb250cmlidXRvcnMgOiAKIyAgIERhdmlkIFRpc2NobWFjaGVyIChodHRwOi8vd3d3LmFieXNzZXMubmV0LykKIyAgIDFsb3VwIChodHRwOi8vMWxvdXAubmV0LykKIwoKIyBSYWpvdXQgcG91ciBhc3N1cmVyIGxhIGNvbXBhdGliaWxpdMOpIGF2ZWMgbGVzIHZlcnNpb25zIGRlIERvdENsZWFyIHByw6ljw6lkYW50IGxhIDEuMi43CmlmICghY2xhc3NfZXhpc3RzKCdkY05vbmNlJykpIAp7CiAgICBjbGFzcyBkY05vbmNlIAogICAgewoJCSAgICBmdW5jdGlvbiBmb3JtKCkgCiAgICAgICAgeyAKICAgICAgICAgICAgcmV0dXJuICcnOyAKICAgICAgICB9CgkgICB9Cn0KIyBGaW4gZHUgcmFqb3V0CgokZ3Jhdl9pbmlfZmlsZSA9IGRpcm5hbWUoX19GSUxFX18pLicvZ3JhdmF0YXJzLmluaSc7CiRncmF2X2luaV9jb250ZW50ID0gcGFyc2VfaW5pX2ZpbGUoJGdyYXZfaW5pX2ZpbGUpOwoKCgoKJGVyciA9ICcnOwokdXJsID0gJ3Rvb2xzLnBocD9wPWdyYXZhdGFycyc7CgokaXNfd3JpdGFibGUgPSBmYWxzZTsKCgppZiAoIWlzX3dyaXRhYmxlKCRncmF2X2luaV9maWxlKSkgewoJJGVyciA9ICc8cD4nLnNwcmludGYoX18oJ0NvbmZpZyBmaWxlICVzLCBpcyBub3Qgd3JpdGFibGUuJyksJzxzdHJvbmc+ZG90Y2xlYXIuaW5pPC9zdHJvbmc+JykuJzwvcD4nOwp9IGVsc2UgewoJJGlzX3dyaXRhYmxlID0gdHJ1ZTsKCQoJCQoJIyBNb2RpZmljYXRpb24gZHUgZmljaGllcgoJaWYgKCFlbXB0eSgkX1BPU1QpKQoJewoJCSRncmF2X3NlcnZlciA9IHRyaW0oJF9QT1NUWydncmF2X3NlcnZlciddKTsKCQkkZ3Jhdl9kZWZhdWx0ID0gdHJpbSgkX1BPU1RbJ2dyYXZfZGVmYXVsdCddKTsKCQkkZ3Jhdl9zaXplID0gdHJpbSgkX1BPU1RbJ2dyYXZfc2l6ZSddKTsKCQkkZ3Jhdl9yYXRpbmcgPSB0cmltKCRfUE9TVFsnZ3Jhdl9yYXRpbmcnXSk7CgkJJGdyYXZfYm9yZGVyID0gdHJpbSgkX1BPU1RbJ2dyYXZfYm9yZGVyJ10pOwoJCQoJCQoJCSRhcnJ5X2VyciA9IGFycmF5KCk7CgkJCgkJaWYgKCRncmF2X3NlcnZlciA9PSAnJykgewoJCQkkYXJyeV9lcnJbXSA9IF9fKCdZb3UgbXVzdCBnaXZlIGEgZ3JhdmF0YXIgc2VydmVyJyk7CgkJfQoJCWlmKCRncmF2X3NpemUgIT0gTlVMTCl7CgkJCWlmICghcHJlZ19tYXRjaCgnL15bMC05XSskLycsJGdyYXZfc2l6ZSkgfHwgJGdyYXZfc2l6ZSA8IDEgfHwgJGdyYXZfc2l6ZSA+IDgwKSB7CgkJCQkkYXJyeV9lcnJbXSA9IF9fKCdZb3UgbXVzdCBnaXZlIGEgdmFsaWQgc2l6ZSBiZXR3ZWVuIDEgYW5kIDgwcHguJyk7CgkJCX0KCQl9CgkJCgkJaWYgKGNvdW50KCRhcnJ5X2VycikgPiAwKQoJCXsKCQkJJGVyciAuPSAnPHVsPic7CgkJCWZvcmVhY2ggKCRhcnJ5X2VyciBhcyAkdikgeyAkZXJyIC49ICc8bGk+Jy4kdi4nPC9saT4nOyB9CgkJCSRlcnIgLj0gJzwvdWw+JzsKCQl9CgkJZWxzZQoJCXsKCQkJCQkKCQkJJG9iakluaSA9IG5ldyBpbmlGaWxlKCRncmF2X2luaV9maWxlKTsKCQkJJG9iakluaS0+ZWRpdFZhcignc2VydmVyJywgJGdyYXZfc2VydmVyKTsKCQkJJG9iakluaS0+ZWRpdFZhcignZGVmYXVsdCcsJGdyYXZfZGVmYXVsdCk7CgkJCSRvYmpJbmktPmVkaXRWYXIoJ3NpemUnLCRncmF2X3NpemUpOwoJCQkkb2JqSW5pLT5lZGl0VmFyKCdyYXRpbmcnLCRncmF2X3JhdGluZyk7CgkJCSRvYmpJbmktPmVkaXRWYXIoJ2JvcmRlcicsJGdyYXZfYm9yZGVyKTsKCQkJCgkJCQkJCQoJCQlpZiAoJG9iakluaS0+c2F2ZUZpbGUoKSAhPT0gZmFsc2UpIHsKCQkJCWhlYWRlcignTG9jYXRpb246ICcuJHVybC4nJmRvbmU9MScpOwoJCQkJZXhpdDsKCQkJfSBlbHNlIHsKCQkJCSRlcnIgPSBfXygnQW4gZXJyb3Igb2NjdXJlZCB3aGlsZSB3cml0aW5nIHRoZSBmaWxlLicpOwoJCQl9CgkJfQoJfQp9CgoKLyogQWZmaWNoYWdlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCgoKJG15U3ViTWVudS0+YWRkSXRlbShfXygnQ29uZmlndXJhdGlvbicpLCAkdXJsLicmY29uZmlnJywgJ2ltYWdlcy9pY29fZWRpdC5wbmcnLCBGQUxTRSk7CiRteVN1Yk1lbnUtPmFkZEl0ZW0oX18oJ1VzYWdlJyksICR1cmwuJyZ1c2FnZScsICdpbWFnZXMvaWNvX2dvdG8ucG5nJywgRkFMU0UpOwoKCmJ1ZmZlcjo6c3RyKCc8aDI+Jy5fXygnR3JhdmF0YXJzJykuJzwvaDI+Jyk7CgppZigkZXJyICE9ICcnKQp7CglidWZmZXI6OnN0cignPGRpdiBjbGFzcz0iZXJyZXVyIj48cD48c3Ryb25nPicuX18oJ0Vycm9yKHMpJykuJyA6PC9zdHJvbmc+PC9wPicuJGVyci4nPC9kaXY+Jyk7Cn0KCmlmICgkaXNfd3JpdGFibGUpCnsKCWlmICghZW1wdHkoJF9HRVRbJ2RvbmUnXSkpIHsKCQlidWZmZXI6OnN0cigKCQknPHAgY2xhc3M9Im1lc3NhZ2UiPicuX18oJ0NvbmZpZ3VyYXRpb24gZmlsZSBzdWNjZXNzZnVsbHkgdXBkYXRlZC4nKS4nPC9wPicKCQkpOwoJfQoJCgkKCWlmIChpc3NldCgkX0dFVFsndXNhZ2UnXSkpewoJCWJ1ZmZlcjo6c3RyKCcKCQkKCQkKCQk8aDM+Jy5fXygnVXNhZ2UnKS4nPC9oMz4nLgoJCSc8cD4nLl9fKCdHcmF2YXRhcnMgbWF5IGJlIHVzZWQgaW4gdGhyZWUgZGlmZmVyZW50IHNpdHVhdGlvbnMgOiBpbiB0aGUgY29tbWVudCBsb29wLCBpbiB0aGUgcG9zdCBsb29wIGFuZCBpbiBhbnkgb3RoZXIgc2l0dWF0aW9uLicpLgoJCSc8aDQ+Jy5fXygnR3JhdmF0YXJzIGZvciBjb21tZW50cycpLic8L2g0PicuCgkJJzxwPicuX18oJ0FkZCB0aGUgZm9sbG93aW5nIGNvZGUgaW4gdGhlIGNvbW1lbnQgbG9vcCAoaS5lLiBwb3N0LnBocCkgd2hlcmUgeW91IHdhbnQgdG8gZGlzcGxheSB0aGUgY29tbWVudCBhdXRob3IgR3JhdmF0YXInKS4nJm5ic3A7OicuJzwvcD48cHJlPiZsdDs/cGhwIGRjR3JhdmF0YXJzOjpkaXNwbGF5R3JhdmF0YXIoXCdjb21tZW50XCcpOyA/Jmd0OzwvcHJlPicuCgkJJzxoND4nLl9fKCdHcmF2YXRhcnMgZm9yIHBvc3RzJykuJzwvaDQ+Jy4KCQknPHA+Jy5fXygnQWRkIHRoZSBmb2xsb3dpbmcgY29kZSBpbiB0aGUgcG9zdCBsb29wIChpLmUuIGxpc3QucGhwKSBvciBpbiB0aGUgZmlsZSBkaXNwbGF5aW5nIGEgc2luZ2xlIHBvc3QgKGkuZS4gcG9zdC5waHApIHdoZXJlIHlvdSB3YW50IHRvIGRpc3BsYXkgdGhlIHBvc3QgYXV0aG9yIEdyYXZhdGFyJykuJyZuYnNwOzonLic8L3A+PHByZT4mbHQ7P3BocCBkY0dyYXZhdGFyczo6ZGlzcGxheUdyYXZhdGFyKFwncG9zdFwnKTsgPyZndDs8L3ByZT4nLgoJCSc8aDQ+Jy5fXygnR3JhdmF0YXJzIGZvciBvdGhlciBzaXR1YXRpb25zIC0gRGV2ZWxvcHBlcnMgb25seSAhJykuJzwvaDQ+Jy4KCQknPHA+Jy5fXygnQWRkIHRoZSBmb2xsb3dpbmcgY29kZSB3aGVyZSB5b3Ugd2FudCB0byB1c2UgYSBHcmF2YXRhciAoZS5nLiBpbiBhIHBsdWctaW4gZGlzcGxheWluZyBjb21tZW50IGZvciB3aGljaCB5b3Ugd2FudCB0byBkaXNwbGF5IGFzc29jaWF0ZWQgR3JhdmF0YXJzKScpLicmbmJzcDs6PC9wPjxwcmU+Jmx0Oz9waHAgZGNHcmF2YXRhcnM6OmRpc3BsYXlHcmF2YXRhcihcJyRlbWFpbFwnKTsgPyZndDs8L3ByZT4nLgoJCSc8cD48c3Ryb25nPicuX18oJ1JlcXVpcmVtZW50cycpLic8L3N0cm9uZz48L3A+Jy4KCQknPHA+Jy5fXygnVXNlZCB0aGlzIHdheSwgdGhlIGZ1bmN0aW9ucyByZXF1aXJlcyB0d28gYXJndW1lbnRzJykuJyZuYnNwOzo8L3A+Jy4KCQknPHVsPjxsaT48cHJlPiRlbWFpbDwvcHJlPicuX18oJ01hbmRhdG9yeSBhcmd1bWVudCByZXByZXNlbnRpbmcgdGhlIGVtYWlsIGZvciB3aGljaCB0aGUgYXNzb2NpYXRlZCBHcmF2YXRhciBzaG91bGQgYmUgZGlzcGxheWVkJykuJzwvbGk+PC91bD4nCgkJCgkJCgkJKTsKCX0KCWVsc2V7CgkJYnVmZmVyOjpzdHIoCgkJCgkJJzxmb3JtIGFjdGlvbj0iJy4kdXJsLiciIG1ldGhvZD0icG9zdCI+Jy5kY05vbmNlOjpmb3JtKCkuCgkJCgkJJzxmaWVsZHNldCBjbGFzcz0iY2xlYXIiPicuCgkJCgkJJzxsZWdlbmQ+Jy5fXygnQ29uZmlndXJhdGlvbicpLic8L2xlZ2VuZD4nLgoJCSc8cCBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9ImdyYXZfc2VydmVyIj48c3Ryb25nPicuX18oJ0dyYXZhdGFyIHNlcnZlcicpLicmbmJzcDs6PC9zdHJvbmc+ICcuCgkJaGVscExpbmsoJ2luZGV4JmFtcDtwbHVnaW49Z3JhdmF0YXJzJywnc2VydmVyJykuJzwvbGFiZWw+Jy4KCQlmb3JtOjpmaWVsZCgnZ3Jhdl9zZXJ2ZXInLDQwLCcnLGh0bWxzcGVjaWFsY2hhcnMoJGdyYXZfaW5pX2NvbnRlbnRbJ3NlcnZlciddKSkuJzwvcD4nLgoJCQoJCSc8cCBjbGFzcz0iZmllbGQiPjxsYWJlbCBmb3I9ImdyYXZfZGVmYXVsdCI+PHN0cm9uZz4nLl9fKCdEZWZhdWx0IEdyYXZhdGFyIGZpbGUnKS4nJm5ic3A7Ojwvc3Ryb25nPiAnLgoJCScoJy5zcHJpbnRmKF9fKCdGcm9tICVzJyksJ2h0dHA6Ly8nLiRfU0VSVkVSWydIVFRQX0hPU1QnXSkuZGNfaW1nX3VybC4nKSAnLgoJCWhlbHBMaW5rKCdpbmRleCZhbXA7cGx1Z2luPWdyYXZhdGFycycsJ2RlZmF1bHQnKS4nPC9sYWJlbD4nLgoJCWZvcm06OmZpZWxkKCdncmF2X2RlZmF1bHQnLDQwLCcnLGh0bWxzcGVjaWFsY2hhcnMoJGdyYXZfaW5pX2NvbnRlbnRbJ2RlZmF1bHQnXSkpLgoJCSc8L3A+PHA+Jy5fXygnQ3VycmVudCBkZWZhdWx0IEdyYXZhdGFyJykuJyZuYnNwOzonCgkJKTsKCQkKCQkKCQlpZigkZ3Jhdl9pbmlfY29udGVudFsnZGVmYXVsdCddIT0iIil7CgkJCWJ1ZmZlcjo6c3RyKCc8YnIgLz48aW1nIHNyYz0iaHR0cDovLycuJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uZGNfaW1nX3VybC4kZ3Jhdl9pbmlfY29udGVudFsnZGVmYXVsdCddLiciLz48L3A+Jyk7CgkJCQoJCQoJCQl9CgkJZWxzZXsKCQkJYnVmZmVyOjpzdHIoJzxiciAvPicuX18oJ05vbmUuLi4nKS4nPC9wPicpOwoJCX0KCQkKCQkKCQkKCQkKCQlidWZmZXI6OnN0cigKCQknPHAgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJncmF2X3NpemUiPjxzdHJvbmc+Jy5fXygnR3JhdmF0YXIgc2l6ZScpLicmbmJzcDs6PC9zdHJvbmc+ICcuCgkJaGVscExpbmsoJ2luZGV4JmFtcDtwbHVnaW49Z3JhdmF0YXJzJywnc2l6ZScpLic8L2xhYmVsPicuCgkJZm9ybTo6ZmllbGQoJ2dyYXZfc2l6ZScsMywnJyxodG1sc3BlY2lhbGNoYXJzKCRncmF2X2luaV9jb250ZW50WydzaXplJ10pKS4nPC9wPicuCgkJCgkJCgkJCgkJJzxwIGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iZ3Jhdl9yYXRpbmciPjxzdHJvbmc+Jy4KCQlfXygnR3JhdmF0YXIgcmF0aW5nJykuJyZuYnNwOzo8L3N0cm9uZz4gJy4KCQloZWxwTGluaygnaW5kZXgmYW1wO3BsdWdpbj1ncmF2YXRhcnMnLCdyYXRpbmcnKS4nPC9sYWJlbD4nLgoJCWZvcm06OmNvbWJvKCdncmF2X3JhdGluZycsYXJyYXkoX18oJ25vbmUnKT0+JycsX18oJ0cnKT0+J0cnLF9fKCdQRycpPT4nUEcnLF9fKCdSJyk9PidSJyxfXygnWCcpPT4nWCcpLCAkZ3Jhdl9pbmlfY29udGVudFsncmF0aW5nJ10pLgoJCSc8L3A+Jy4KCQkKCQknPHAgY2xhc3M9ImZpZWxkIj48bGFiZWwgZm9yPSJncmF2X2JvcmRlciI+PHN0cm9uZz4nLl9fKCdCb3JkZXIgY29sb3InKS4nJm5ic3A7Ojwvc3Ryb25nPiAnLgoJCWhlbHBMaW5rKCdpbmRleCZhbXA7cGx1Z2luPWdyYXZhdGFycycsJ2JvcmRlcicpLic8L2xhYmVsPicuCgkJZm9ybTo6ZmllbGQoJ2dyYXZfYm9yZGVyJyw0MCwnJyxodG1sc3BlY2lhbGNoYXJzKCRncmF2X2luaV9jb250ZW50Wydib3JkZXInXSkpLic8L3A+Jy4KCQkKCQknPC9maWVsZHNldD4nLgoJCQoJCQoJCQoJCSc8cCBjbGFzcz0iZmllbGQiPjxpbnB1dCBjbGFzcz0ic3VibWl0IiB0eXBlPSJzdWJtaXQiIHZhbHVlPSInLl9fKCdzYXZlJykuJyIgLz48L3A+Jy4KCQknPC9mb3JtPicKCQkpOwoJfQoJCn0KCgoKCgo/Pgo=";s:18:"gravatars/desc.xml";s:308:"PD94bWwgdmVyc2lvbj0iMS4yIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pgo8cGx1Z2luIG5hbWU9ImRjR3JhdmF0YXJzIiB2ZXJzaW9uPSIxLjIuMyIgYWN0aXZlPSIxIj4KICA8YXV0aG9yPkRhdmlkIFRpc2NobWFjaGVyIChNQUogMWxvdXApPC9hdXRob3I+CiAgPGxhYmVsPkdyYXZhdGFyczwvbGFiZWw+CiAgPGRlc2M+RGlzcGxheSBncmF2YXRhcnMgaW4gY29tbWVudHMuPC9kZXNjPgo8L3BsdWdpbj4K";s:19:"gravatars/ChangeLog";s:1144:"MjAwNy0wNy0yOQoKICBWZXJzaW9uIDEuMi4zCiAgCiAgQ29tcGF0aWJpbGl0w6kgYXZlYyBEb3RDbGVhciAxLjIuNyA6CiAgCiAgLSBWw6lyaWZpY2F0aW9uIHF1ZSBsZXMgJF9HRVQgbmUgc2VydmVudCBiaWVuIHF1J8OgIGwnYWZmaWNoYWdlIC8gY29uc3VsdGF0aW9uCiAgCiAgLSBSYWpvdXQgZCd1biBkY05vbmNlOjpmb3JtKCkuIGRhbnMgbGUgY29ycHMgZGVzIGZvcm11bGFpcmVzIGF5YW50IHVuIG1ldGhvZD0icG9zdCIKICAKICAtIFJham91dCBkdSBjb2RlIHBlcm1ldHRhbnQgZGUgZ8OpcmVyIGwnYWJzZW5jZSBkdSBkY05vbmNlIHN1ciBsZXMgdmVyc2lvbnMgcHLDqWPDqWRhbnQgbGEgMS4yLjcKICAKICAtIFbDqXJpZmljYXRpb24gZGUgSmF2YXNjcmlwdCAoPT5BYnNlbmNlKQogIAoyMDA2LTEwLTAzCgogIFZlcnNpb24gMS4yLjIKICAKICAtIGNvbnZlcnNpb24gZHUgbWFpbCBlbiBtaW51c2N1bGUgYXZhbnQgY2FsY3VsIGR1IE1ENQogICgkZ3JhdmF0YXJfaWQgPSBtZDUoc3RydG9sb3dlcigkZW1haWwpKTsgYXUgbGlldSBkZSAkZ3JhdmF0YXJfaWQgPSBtZDUoJGVtYWlsKTsgw6AgbGEgbGlnbmUgMjIgZGUgZnVuY3Rpb25zLnBocCkKICAKMjAwNi0wOS0xMwoKCVZlcnNpb24gMS4yLjEKCgktIGNvcnJlY3Rpb24gZCd1biBidWcgbWluZXVyIDoKCWxpZ25lIDYxIGRlIGwnaW5kZXguaHRtbCwgcmVtcGxhY2VtZW50IGRlICJham91dCZlcmFjdXRlO2UiIHBhciAiYWpvdXQmZWFjdXRlO2UiCgkKCS0gZ2VzdGlvbiBkZSBsJ1VURi04LCBwZXJtZXR0YW50IGQnb2J0ZW5pciBsZSBwbHVnaW4gZW4gZnJhbsOnYWlzIGV0IGxlcyBleHBsaWNhdGlvbnMgZGFucyBsJ2FpZGUgZW4gbGlnbmUKCiAgCg==";s:17:"gravatars/COPYING";s:24012:"CQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKCQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKCiBDb3B5cmlnaHQgKEMpIDE5ODksIDE5OTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICAgICAgICAgICAgICAgICAgICAgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQogRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiBvZiB0aGlzIGxpY2Vuc2UgZG9jdW1lbnQsIGJ1dCBjaGFuZ2luZyBpdCBpcyBub3QgYWxsb3dlZC4KCgkJCSAgICBQcmVhbWJsZQoKICBUaGUgbGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYXJlIGRlc2lnbmVkIHRvIHRha2UgYXdheSB5b3VyCmZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBpdC4gIEJ5IGNvbnRyYXN0LCB0aGUgR05VIEdlbmVyYWwgUHVibGljCkxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGZyZWUKc29mdHdhcmUtLXRvIG1ha2Ugc3VyZSB0aGUgc29mdHdhcmUgaXMgZnJlZSBmb3IgYWxsIGl0cyB1c2Vycy4gIFRoaXMKR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcHBsaWVzIHRvIG1vc3Qgb2YgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbidzIHNvZnR3YXJlIGFuZCB0byBhbnkgb3RoZXIgcHJvZ3JhbSB3aG9zZSBhdXRob3JzIGNvbW1pdCB0bwp1c2luZyBpdC4gIChTb21lIG90aGVyIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBzb2Z0d2FyZSBpcyBjb3ZlcmVkIGJ5CnRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoMCgkJICAgIEdOVSBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCiAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBDT1BZSU5HLCBESVNUUklCVVRJT04gQU5EIE1PRElGSUNBVElPTgoKICAwLiBUaGlzIExpY2Vuc2UgYXBwbGllcyB0byBhbnkgcHJvZ3JhbSBvciBvdGhlciB3b3JrIHdoaWNoIGNvbnRhaW5zCmEgbm90aWNlIHBsYWNlZCBieSB0aGUgY29weXJpZ2h0IGhvbGRlciBzYXlpbmcgaXQgbWF5IGJlIGRpc3RyaWJ1dGVkCnVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGUgIlByb2dyYW0iLCBiZWxvdywKcmVmZXJzIHRvIGFueSBzdWNoIHByb2dyYW0gb3Igd29yaywgYW5kIGEgIndvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0iCm1lYW5zIGVpdGhlciB0aGUgUHJvZ3JhbSBvciBhbnkgZGVyaXZhdGl2ZSB3b3JrIHVuZGVyIGNvcHlyaWdodCBsYXc6CnRoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgUHJvZ3JhbSBvciBhIHBvcnRpb24gb2YgaXQsCmVpdGhlciB2ZXJiYXRpbSBvciB3aXRoIG1vZGlmaWNhdGlvbnMgYW5kL29yIHRyYW5zbGF0ZWQgaW50byBhbm90aGVyCmxhbmd1YWdlLiAgKEhlcmVpbmFmdGVyLCB0cmFuc2xhdGlvbiBpcyBpbmNsdWRlZCB3aXRob3V0IGxpbWl0YXRpb24gaW4KdGhlIHRlcm0gIm1vZGlmaWNhdGlvbiIuKSAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlvdSIuCgpBY3Rpdml0aWVzIG90aGVyIHRoYW4gY29weWluZywgZGlzdHJpYnV0aW9uIGFuZCBtb2RpZmljYXRpb24gYXJlIG5vdApjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mCnJ1bm5pbmcgdGhlIFByb2dyYW0gaXMgbm90IHJlc3RyaWN0ZWQsIGFuZCB0aGUgb3V0cHV0IGZyb20gdGhlIFByb2dyYW0KaXMgY292ZXJlZCBvbmx5IGlmIGl0cyBjb250ZW50cyBjb25zdGl0dXRlIGEgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSAoaW5kZXBlbmRlbnQgb2YgaGF2aW5nIGJlZW4gbWFkZSBieSBydW5uaW5nIHRoZSBQcm9ncmFtKS4KV2hldGhlciB0aGF0IGlzIHRydWUgZGVwZW5kcyBvbiB3aGF0IHRoZSBQcm9ncmFtIGRvZXMuCgogIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncwpzb3VyY2UgY29kZSBhcyB5b3UgcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdCB5b3UKY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZQpjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdCBhbGwgdGhlCm5vdGljZXMgdGhhdCByZWZlciB0byB0aGlzIExpY2Vuc2UgYW5kIHRvIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsKYW5kIGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFByb2dyYW0gYSBjb3B5IG9mIHRoaXMgTGljZW5zZQphbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgoKWW91IG1heSBjaGFyZ2UgYSBmZWUgZm9yIHRoZSBwaHlzaWNhbCBhY3Qgb2YgdHJhbnNmZXJyaW5nIGEgY29weSwgYW5kCnlvdSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5nZSBmb3IgYSBmZWUuCgogIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIFByb2dyYW0gb3IgYW55IHBvcnRpb24Kb2YgaXQsIHRodXMgZm9ybWluZyBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0sIGFuZCBjb3B5IGFuZApkaXN0cmlidXRlIHN1Y2ggbW9kaWZpY2F0aW9ucyBvciB3b3JrIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDEKYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKCiAgICBhKSBZb3UgbXVzdCBjYXVzZSB0aGUgbW9kaWZpZWQgZmlsZXMgdG8gY2FycnkgcHJvbWluZW50IG5vdGljZXMKICAgIHN0YXRpbmcgdGhhdCB5b3UgY2hhbmdlZCB0aGUgZmlsZXMgYW5kIHRoZSBkYXRlIG9mIGFueSBjaGFuZ2UuCgogICAgYikgWW91IG11c3QgY2F1c2UgYW55IHdvcmsgdGhhdCB5b3UgZGlzdHJpYnV0ZSBvciBwdWJsaXNoLCB0aGF0IGluCiAgICB3aG9sZSBvciBpbiBwYXJ0IGNvbnRhaW5zIG9yIGlzIGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSBvciBhbnkKICAgIHBhcnQgdGhlcmVvZiwgdG8gYmUgbGljZW5zZWQgYXMgYSB3aG9sZSBhdCBubyBjaGFyZ2UgdG8gYWxsIHRoaXJkCiAgICBwYXJ0aWVzIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuCgogICAgYykgSWYgdGhlIG1vZGlmaWVkIHByb2dyYW0gbm9ybWFsbHkgcmVhZHMgY29tbWFuZHMgaW50ZXJhY3RpdmVseQogICAgd2hlbiBydW4sIHlvdSBtdXN0IGNhdXNlIGl0LCB3aGVuIHN0YXJ0ZWQgcnVubmluZyBmb3Igc3VjaAogICAgaW50ZXJhY3RpdmUgdXNlIGluIHRoZSBtb3N0IG9yZGluYXJ5IHdheSwgdG8gcHJpbnQgb3IgZGlzcGxheSBhbgogICAgYW5ub3VuY2VtZW50IGluY2x1ZGluZyBhbiBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBhCiAgICBub3RpY2UgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSAob3IgZWxzZSwgc2F5aW5nIHRoYXQgeW91IHByb3ZpZGUKICAgIGEgd2FycmFudHkpIGFuZCB0aGF0IHVzZXJzIG1heSByZWRpc3RyaWJ1dGUgdGhlIHByb2dyYW0gdW5kZXIKICAgIHRoZXNlIGNvbmRpdGlvbnMsIGFuZCB0ZWxsaW5nIHRoZSB1c2VyIGhvdyB0byB2aWV3IGEgY29weSBvZiB0aGlzCiAgICBMaWNlbnNlLiAgKEV4Y2VwdGlvbjogaWYgdGhlIFByb2dyYW0gaXRzZWxmIGlzIGludGVyYWN0aXZlIGJ1dAogICAgZG9lcyBub3Qgbm9ybWFsbHkgcHJpbnQgc3VjaCBhbiBhbm5vdW5jZW1lbnQsIHlvdXIgd29yayBiYXNlZCBvbgogICAgdGhlIFByb2dyYW0gaXMgbm90IHJlcXVpcmVkIHRvIHByaW50IGFuIGFubm91bmNlbWVudC4pCgwKVGhlc2UgcmVxdWlyZW1lbnRzIGFwcGx5IHRvIHRoZSBtb2RpZmllZCB3b3JrIGFzIGEgd2hvbGUuICBJZgppZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtLAphbmQgY2FuIGJlIHJlYXNvbmFibHkgY29uc2lkZXJlZCBpbmRlcGVuZGVudCBhbmQgc2VwYXJhdGUgd29ya3MgaW4KdGhlbXNlbHZlcywgdGhlbiB0aGlzIExpY2Vuc2UsIGFuZCBpdHMgdGVybXMsIGRvIG5vdCBhcHBseSB0byB0aG9zZQpzZWN0aW9ucyB3aGVuIHlvdSBkaXN0cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKZGlzdHJpYnV0ZSB0aGUgc2FtZSBzZWN0aW9ucyBhcyBwYXJ0IG9mIGEgd2hvbGUgd2hpY2ggaXMgYSB3b3JrIGJhc2VkCm9uIHRoZSBQcm9ncmFtLCB0aGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3aG9sZSBtdXN0IGJlIG9uIHRoZSB0ZXJtcyBvZgp0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhlciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQplbnRpcmUgd2hvbGUsIGFuZCB0aHVzIHRvIGVhY2ggYW5kIGV2ZXJ5IHBhcnQgcmVnYXJkbGVzcyBvZiB3aG8gd3JvdGUgaXQuCgpUaHVzLCBpdCBpcyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRlc3QKeW91ciByaWdodHMgdG8gd29yayB3cml0dGVuIGVudGlyZWx5IGJ5IHlvdTsgcmF0aGVyLCB0aGUgaW50ZW50IGlzIHRvCmV4ZXJjaXNlIHRoZSByaWdodCB0byBjb250cm9sIHRoZSBkaXN0cmlidXRpb24gb2YgZGVyaXZhdGl2ZSBvcgpjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQcm9ncmFtLgoKSW4gYWRkaXRpb24sIG1lcmUgYWdncmVnYXRpb24gb2YgYW5vdGhlciB3b3JrIG5vdCBiYXNlZCBvbiB0aGUgUHJvZ3JhbQp3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKYSBzdG9yYWdlIG9yIGRpc3RyaWJ1dGlvbiBtZWRpdW0gZG9lcyBub3QgYnJpbmcgdGhlIG90aGVyIHdvcmsgdW5kZXIKdGhlIHNjb3BlIG9mIHRoaXMgTGljZW5zZS4KCiAgMy4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhIHdvcmsgYmFzZWQgb24gaXQsCnVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHVuZGVyIHRoZSB0ZXJtcyBvZgpTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBmb2xsb3dpbmc6CgogICAgYSkgQWNjb21wYW55IGl0IHdpdGggdGhlIGNvbXBsZXRlIGNvcnJlc3BvbmRpbmcgbWFjaGluZS1yZWFkYWJsZQogICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCiAgICAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwKCiAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZQogICAgeWVhcnMsIHRvIGdpdmUgYW55IHRoaXJkIHBhcnR5LCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZSB0aGFuIHlvdXIKICAgIGNvc3Qgb2YgcGh5c2ljYWxseSBwZXJmb3JtaW5nIHNvdXJjZSBkaXN0cmlidXRpb24sIGEgY29tcGxldGUKICAgIG1hY2hpbmUtcmVhZGFibGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIG9uIGEgbWVkaXVtCiAgICBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYykgQWNjb21wYW55IGl0IHdpdGggdGhlIGluZm9ybWF0aW9uIHlvdSByZWNlaXZlZCBhcyB0byB0aGUgb2ZmZXIKICAgIHRvIGRpc3RyaWJ1dGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZS4gIChUaGlzIGFsdGVybmF0aXZlIGlzCiAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1lcmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQogICAgcmVjZWl2ZWQgdGhlIHByb2dyYW0gaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtIHdpdGggc3VjaAogICAgYW4gb2ZmZXIsIGluIGFjY29yZCB3aXRoIFN1YnNlY3Rpb24gYiBhYm92ZS4pCgpUaGUgc291cmNlIGNvZGUgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVkIGZvcm0gb2YgdGhlIHdvcmsgZm9yCm1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgRm9yIGFuIGV4ZWN1dGFibGUgd29yaywgY29tcGxldGUgc291cmNlCmNvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVsZXMgaXQgY29udGFpbnMsIHBsdXMgYW55CmFzc29jaWF0ZWQgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMsIHBsdXMgdGhlIHNjcmlwdHMgdXNlZCB0bwpjb250cm9sIGNvbXBpbGF0aW9uIGFuZCBpbnN0YWxsYXRpb24gb2YgdGhlIGV4ZWN1dGFibGUuICBIb3dldmVyLCBhcyBhCnNwZWNpYWwgZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQphbnl0aGluZyB0aGF0IGlzIG5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeQpmb3JtKSB3aXRoIHRoZSBtYWpvciBjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZQpvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAppdHNlbGYgYWNjb21wYW5pZXMgdGhlIGV4ZWN1dGFibGUuCgpJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCmFjY2VzcyB0byBjb3B5IGZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQKYWNjZXNzIHRvIGNvcHkgdGhlIHNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2UgY291bnRzIGFzCmRpc3RyaWJ1dGlvbiBvZiB0aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdApjb21wZWxsZWQgdG8gY29weSB0aGUgc291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLgoMCiAgNC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCmV4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQKb3RoZXJ3aXNlIHRvIGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGlzCnZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4KSG93ZXZlciwgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIKdGhpcyBMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIgbGljZW5zZXMgdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2gKcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgoKICA1LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlLCBzaW5jZSB5b3UgaGF2ZSBub3QKc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBvciBpdHMgZGVyaXZhdGl2ZSB3b3Jrcy4gIFRoZXNlIGFjdGlvbnMgYXJlCnByb2hpYml0ZWQgYnkgbGF3IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkKbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0pLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzbywgYW5kCmFsbCBpdHMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcKdGhlIFByb2dyYW0gb3Igd29ya3MgYmFzZWQgb24gaXQuCgogIDYuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUKb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSBvciBtb2RpZnkgdGhlIFByb2dyYW0gc3ViamVjdCB0bwp0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlcgpyZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCllvdSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHRvCnRoaXMgTGljZW5zZS4KCiAgNy4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAppbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLApjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QKZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91Cm1heSBub3QgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQKbGljZW5zZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieQphbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bwpyZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtLgoKSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCmFueSBwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8KYXBwbHkgYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIKY2lyY3Vtc3RhbmNlcy4KCkl0IGlzIG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5nZSBhbnkKcGF0ZW50cyBvciBvdGhlciBwcm9wZXJ0eSByaWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2YWxpZGl0eSBvZiBhbnkKc3VjaCBjbGFpbXM7IHRoaXMgc2VjdGlvbiBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5nIHRoZQppbnRlZ3JpdHkgb2YgdGhlIGZyZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSwgd2hpY2ggaXMKaW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2ZSBtYWRlCmdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKdGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZwp0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKaW1wb3NlIHRoYXQgY2hvaWNlLgoKVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCmJlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgoMCiAgOC4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBQcm9ncmFtIGlzIHJlc3RyaWN0ZWQgaW4KY2VydGFpbiBjb3VudHJpZXMgZWl0aGVyIGJ5IHBhdGVudHMgb3IgYnkgY29weXJpZ2h0ZWQgaW50ZXJmYWNlcywgdGhlCm9yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIExpY2Vuc2UKbWF5IGFkZCBhbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nCnRob3NlIGNvdW50cmllcywgc28gdGhhdCBkaXN0cmlidXRpb24gaXMgcGVybWl0dGVkIG9ubHkgaW4gb3IgYW1vbmcKY291bnRyaWVzIG5vdCB0aHVzIGV4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzCnRoZSBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLgoKICA5LiBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucwpvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9tIHRpbWUgdG8gdGltZS4gIFN1Y2ggbmV3IHZlcnNpb25zIHdpbGwKYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvCmFkZHJlc3MgbmV3IHByb2JsZW1zIG9yIGNvbmNlcm5zLgoKRWFjaCB2ZXJzaW9uIGlzIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUgUHJvZ3JhbQpzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJlciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQgImFueQpsYXRlciB2ZXJzaW9uIiwgeW91IGhhdmUgdGhlIG9wdGlvbiBvZiBmb2xsb3dpbmcgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCmVpdGhlciBvZiB0aGF0IHZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24gcHVibGlzaGVkIGJ5IHRoZSBGcmVlClNvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YKdGhpcyBMaWNlbnNlLCB5b3UgbWF5IGNob29zZSBhbnkgdmVyc2lvbiBldmVyIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZQpGb3VuZGF0aW9uLgoKICAxMC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIFByb2dyYW0gaW50byBvdGhlciBmcmVlCnByb2dyYW1zIHdob3NlIGRpc3RyaWJ1dGlvbiBjb25kaXRpb25zIGFyZSBkaWZmZXJlbnQsIHdyaXRlIHRvIHRoZSBhdXRob3IKdG8gYXNrIGZvciBwZXJtaXNzaW9uLiAgRm9yIHNvZnR3YXJlIHdoaWNoIGlzIGNvcHlyaWdodGVkIGJ5IHRoZSBGcmVlClNvZnR3YXJlIEZvdW5kYXRpb24sIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHdlIHNvbWV0aW1lcwptYWtlIGV4Y2VwdGlvbnMgZm9yIHRoaXMuICBPdXIgZGVjaXNpb24gd2lsbCBiZSBndWlkZWQgYnkgdGhlIHR3byBnb2FscwpvZiBwcmVzZXJ2aW5nIHRoZSBmcmVlIHN0YXR1cyBvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5kCm9mIHByb21vdGluZyB0aGUgc2hhcmluZyBhbmQgcmV1c2Ugb2Ygc29mdHdhcmUgZ2VuZXJhbGx5LgoKCQkJICAgIE5PIFdBUlJBTlRZCgogIDExLiBCRUNBVVNFIFRIRSBQUk9HUkFNIElTIExJQ0VOU0VEIEZSRUUgT0YgQ0hBUkdFLCBUSEVSRSBJUyBOTyBXQVJSQU5UWQpGT1IgVEhFIFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4KT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQvT1IgT1RIRVIgUEFSVElFUwpQUk9WSURFIFRIRSBQUk9HUkFNICJBUyBJUyIgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRApPUiBJTVBMSUVELCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgpNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgVEhFIEVOVElSRSBSSVNLIEFTClRPIFRIRSBRVUFMSVRZIEFORCBQRVJGT1JNQU5DRSBPRiBUSEUgUFJPR1JBTSBJUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUKUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlPVSBBU1NVTUUgVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsClJFUEFJUiBPUiBDT1JSRUNUSU9OLgoKICAxMi4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTiBXUklUSU5HCldJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTUFZIE1PRElGWSBBTkQvT1IKUkVESVNUUklCVVRFIFRIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywKSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HCk9VVCBPRiBUSEUgVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQKVE8gTE9TUyBPRiBEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZCllPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBUTyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSClBST0dSQU1TKSwgRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRQpQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCgoJCSAgICAgRU5EIE9GIFRFUk1TIEFORCBDT05ESVRJT05TCgwKCSAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKCiAgSWYgeW91IGRldmVsb3AgYSBuZXcgcHJvZ3JhbSwgYW5kIHlvdSB3YW50IGl0IHRvIGJlIG9mIHRoZSBncmVhdGVzdApwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CmZyZWUgc29mdHdhcmUgd2hpY2ggZXZlcnlvbmUgY2FuIHJlZGlzdHJpYnV0ZSBhbmQgY2hhbmdlIHVuZGVyIHRoZXNlIHRlcm1zLgoKICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAp0byBhdHRhY2ggdGhlbSB0byB0aGUgc3RhcnQgb2YgZWFjaCBzb3VyY2UgZmlsZSB0byBtb3N0IGVmZmVjdGl2ZWx5CmNvbnZleSB0aGUgZXhjbHVzaW9uIG9mIHdhcnJhbnR5OyBhbmQgZWFjaCBmaWxlIHNob3VsZCBoYXZlIGF0IGxlYXN0CnRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwgbm90aWNlIGlzIGZvdW5kLgoKICAgIDxvbmUgbGluZSB0byBnaXZlIHRoZSBwcm9ncmFtJ3MgbmFtZSBhbmQgYSBicmllZiBpZGVhIG9mIHdoYXQgaXQgZG9lcy4+CiAgICBDb3B5cmlnaHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQogICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCgogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCiAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICAgIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbApQdWJsaWMgTGljZW5zZSBpbnN0ZWFkIG9mIHRoaXMgTGljZW5zZS4K";}}