VGhpcyBwcm9qZWN0IGhhcyBiZWVuIGFsaXZlIGZvciBzZXZlcmFsIHllYXJzLiBDb3VudGxlc3MgcGVvcGxlIGhhdmUgcHJvdmlkZWQKZmVlZGJhY2sgdGhhdCBoYXZlIGltcHJvdmVkIGN1cmwuIEhlcmUgZm9sbG93cyBhIChpbmNvbXBsZXRlKSBsaXN0IG9mIHBlb3BsZQp0aGF0IGhhdmUgY29udHJpYnV0ZWQgd2l0aCBub24tdHJpdmlhbCBwYXJ0czoKCiAtIERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+CiAtIFJhZmFlbCBTYWd1bGEgPHNhZ3VsYUBpbmYudWZyZ3MuYnI+CiAtIFNhbXBvIEtlbGxvbWFraSA8c2FtcG9AaWtpLmZpPgogLSBMaW5hcyBWZXBzdGFzIDxsaW5hc0BsaW5hcy5vcmc+CiAtIEJqb3JuIFJlZXNlIDxicmVlc2VAbWFpbDEuc3RvZmFuZXQuZGs+CiAtIEpvaGFuIEFuZGVyc29uIDxqb2hhbkBob21lbWFpbC5jb20+CiAtIEtqZWxsIEVyaWNzb24gPEtqZWxsLkVyaWNzb25AaGF4eC5zZT4KIC0gVHJveSBFbmdlbCA8dGVuZ2VsQHNvbmljLm5ldD4KIC0gUnlhbiBOZWxzb24gPHJ5YW5AaW5jaC5jb20+CiAtIEJq9nJuIFN0ZW5iZXJnIDxiam9ybkBoYXh4LnNlPgogLSBBbmd1cyBNYWNrYXkgPGFtYWNrYXlAZ3VzLm1sLm9yZz4KIC0gRXJpYyBZb3VuZyA8ZWF5QGNyeXB0c29mdC5jb20+CiAtIFNpbW9uIERpY2sgPHNpbW9uZEB0b3RhbGx5LmlycmVsZXZhbnQub3JnPgogLSBPcmVuIFRpcm9zaCA8b3JlbkBtb250eS5oaXNob21lLm5ldD4KIC0gU3RldmVuIEcuIEpvaG5zb24gPHN0ZXZlbmpAYWx1bS5taXQuZWR1PgogLSBHaWxiZXJ0IFJhbWlyZXogSnIuIDxncmFtQHZlcmRpY3QudXRoc2NzYS5lZHU+CiAtIEFuZHLpcyBHYXJj7WEgPG9ybmFsdXhAcmVkZXN0Yi5lcz4KIC0gRG91Z2xhcyBFLiBXZWdzY2hlaWQgPHdlZ3NjZEB3aGlybHBvb2wuY29tPgogLSBNYXJrIEJ1dGxlciA8YnV0bGVybUB4bWlzc2lvbi5jb20+CiAtIEVyaWMgVGhlbGluIDxlcmljQGdlbmVyYXRpb24taS5jb20+CiAtIE1hcmMgQm91Y2hlciA8bWFyY0BtYnNpLmNhPgogLSBHcmVnIE9udWZlciA8R3JlZy5PbnVmZXJARW5nLlN1bi5DT00+CiAtIERvdWcgS2F1Zm1hbiA8ZGthdWZtYW5AcmFodWwubmV0PgogLSBEYXZpZCBFcmlrc3NvbiA8ZGF2aWRAMmdvb2QuY29tPgogLSBSYWxwaCBCZWNrbWFubiA8cmFiZUB1bmktcGFkZXJib3JuLmRlPgogLSBULiBZYW1hZGEgPHRhaUBpbWFzeS5vci5qcD4KIC0gTGFycyBKLiBBYXMgPGxhcnNhQHNpbS5ubz4KIC0gSvZybiBIYXJ0cm90aCA8Sm9lcm4uSGFydHJvdGhAY29tcHV0ZXIub3JnPgogLSBNYXR0aGV3IENsYXJrZSA8Y2xhbWF0QHZhbi5tYXZlcy5jYT4KIC0gTGludXMgTmllbHNlbiBGZWx0emluZyA8bGludXNAaGF4eC5zZT4KIC0gRmVsaXggdm9uIExlaXRuZXIgPGZlbGl4QGNvbnZlcmdlbmNlLmRlPgogLSBEYW4gWml0dGVyIDxkeml0dGVyQHppdHRlci5uZXQ+CiAtIEpvbmdraSBTdXdhbmRpIDxKb25na2kuU3V3YW5kaUBlbmcuc3VuLmNvbT4KIC0gQ2hyaXMgTWFsdGJ5IDxjaHJpc0BhdXJlbWEuY29tPgogLSBSb24gWmFwcCA8cnphcHBlckB5YWhvby5jb20+CiAtIFBhdWwgTWFycXVpcyA8cG1hcnF1aXNAaW5hbWUuY29tPgogLSBFbGxpcyBQcml0Y2hhcmQgPGVsbGlzQGNpdHJpYS5jb20+CiAtIERhbWllbiBBZGFudCA8ZGFtc0B1c2EubmV0PgogLSBDaHJpcyA8Y2JheWxpc3NAY3NjLmNvbWU+CiAtIE1hcmNvIEcuIFNhbHZhZ25vIDxtZ3NAd2hpei5jamIubmV0PgogLSBQYXVsIE1hcnF1aXMgPHBtYXJxdWlzQGluYW1lLmNvbT4KIC0gRGF2aWQgTGVCbGFuYyA8ZGxlYmxhbmNAcW54LmNvbT4KIC0gUmljaCBHcmF5IGF0IFBsdXMgVGVjaG5vbG9naWVzCiAtIEx1b25nIERpbmggRHVuZyA8dThsdW9uZ0BsaHN5c3RlbXMuaHU+CiAtIFRvcnN0ZW4gRm9lcnRzY2ggPHRvcnN0ZW4uZm9lcnRzY2hAZ214Lm5ldD4KIC0gS3Jpc3RpYW4gS/ZobnRvcHAgPGtyaXNAa29laG50b3BwLmRlPgogLSBGcmVkIE5veiA8Rk5vekBzaWFjLmNvbT4KIC0gQ2FvbGFuIE1jTmFtYXJhIDxjYW9sYW5AY3NuLnVsLmllPgogLSBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+CiAtIFN0ZXBoZW4gS2ljayA8c2tpY2tAZXBpY3JlYWxtLmNvbT4KIC0gTWFydGluIEhlZGVuZmFsayA8bWhlQHN0YWNrZW4ua3RoLnNlPgogLSBSaWNoYXJkIFByZXNjb3R0CiAtIEphc29uIFMuIFByaWViZSA8cHJpZWJlQHdyYWwtdHYuY29tPgogLSBULiBCaGFyYXRoIDxUQmhhcmF0aEByZXNwb25zZW5ldHdvcmtzLmNvbT4KIC0gQWxleGFuZGVyIEtvdXJha29zIDxhd2tAdXNlcnMuc291cmNlZm9yZ2UubmV0PgogLSBKYW1lcyBHcmlmZml0aHMgPGdyaWZmaXRoc19qYW1lc0B5YWhvby5jb20+CiAtIExvaWMgRGFjaGFyeSA8bG9pY0BzZW5nYS5vcmc+CiAtIFJvYmVydCBXZWF2ZXIgPHJvYmVydC53ZWF2ZXJAc2FicmUuY29tPgogLSBJbmdvIFJhbGYgQmx1bSA8aW5nb3JhbGZibHVtQGluZ29yYWxmYmx1bS5jb20+CiAtIEp1bi1pY2hpcm8gaXRvanVuIEhhZ2lubyA8aXRvanVuQGlpamxhYi5uZXQ+CiAtIEZyZWRlcmljIExlcGllZCA8ZmxlcGllZEBtYW5kcmFrZXNvZnQuY29tPgogLSBHZW9yZyBIb3JuIDxob3JuQGtvYmxlbnotbmV0LmRlPgogLSBDcmlzIEJhaWxpZmYgPGMuYmFpbGlmZkBhd2F5d2ViLmNvbT4KIC0gU3RlcmxpbmcgSHVnaGVzIDxzdGVybGluZ0BkZXNpZ25tdWx0aW1lZGlhLmNvbT4KIC0gUy4gTW9vbmVzYW15CiAtIEluZ28gV2lsa2VuIDxpd0BXV1cuRWNjZS1UZXJyYW0uREU+CiAtIFBhd2VsIEEuIEdhamRhIDxtaXNAazIubmV0LnBsPgogLSBQYXRyaWNrIEJpaGFuLUZhb3UKIC0gTmljbyBCYWdndXMgPE5pY28uQmFnZ3VzQG1haWwuaW5nLm5sPgogLSBTZXJnaW8gQmFsbGVzdHJlcm8KIC0gQW5kcmV3IEZyYW5jaXMgPGxvY3VzdEBmYW1pbHloZWFsdGguY29tLmF1PgogLSBUb21hc3ogTGFja2kgPFRvbWFzei5MYWNraUBwcmltYXJrLnBsPgogLSBHZW9yZyBIdWV0dGVuZWdnZXIgPGdlb3JnQGlzdC5vcmc+Cg==