RGV2ZWxvcGVyIExvZwo9PT09PT09PT09PT09CgpUaGlzIGZpbGUgaXMgYSBydW5uaW5nIGxvZyBvZiBkZXZlbG9wZXJzIGdpdmVuIHBlcm1pc3Npb25zIG9uIFNvdXJjZUZvcmdlLgoKVGhlIHB1cnBvc2UgaXMgdG8gcHJvdmlkZSBzb21lIGluc3RpdHV0aW9uYWwgbWVtb3J5IG9mIHdobyB3YXMgZ2l2ZW4gYWNjZXNzCmFuZCB3aHkuCgpUaGUgZmlyc3QgZW50cnkgc3RhcnRzIGluIEFwcmlsIDIwMDUuICBJbiBrZWVwaW5nIHdpdGggdGhlIHN0eWxlIG9mCk1pc2MvTkVXUywgbmV3ZXIgZW50cmllcyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHRvcC4gIEFueSBtYXJrdXAgc2hvdWxkCmJlIGluIHRoZSBmb3JtIG9mIFJlU1QuICBFbnRyaWVzIHNob3VsZCBpbmNsdWRlIHRoZSBpbml0aWFscyBvZiB0aGUKcHJvamVjdCBhZG1pbiB3aG8gbWFkZSB0aGUgY2hhbmdlIG9yIGdyYW50ZWQgYWNjZXNzLiAgRmVlbCBmcmVlIHRvIHJldmlzZQp0aGUgZm9ybWF0IHRvIGFjY29tbW9kYXRlIGRvY3VtZW50YXRpb24gbmVlZHMgYXMgdGhleSBhcmlzZS4KCk5vdGUsIHdoZW4gZ2l2aW5nIG5ldyBjb21taXQgcGVybWlzc2lvbnMsIGJlIHN1cmUgdG8gZ2V0IGEgY29udHJpYnV0b3IKYWdyZWVtZW50IGZyb20gdGhlIGNvbW1pdHRlci4gIFNlZSBodHRwOi8vd3d3LnB5dGhvbi5vcmcvcHNmL2NvbnRyaWIvCmZvciBkZXRhaWxzLiAgV2hlbiB0aGUgYWdyZWVtZW50IGlzIHNpZ25lZCwgcGxlYXNlIG5vdGUgaXQgaW4gdGhpcyBsb2cuCgoKUGVybWlzc2lvbnMgSGlzdG9yeQotLS0tLS0tLS0tLS0tLS0tLS0tCgotIEJyaWFuIFF1aW5sYW4gd2FzIGdpdmVuIGNvbW1pdCBhY2Nlc3Mgb24gSnVsIDI2IDIwMTAgYnkgR0ZCLAogIGZvciB3b3JrIHJlbGF0ZWQgdG8gUEVQIDMxNDguCgotIFJlaWQgS2xlY2tuZXIgd2FzIGdpdmVuIGNvbW1pdCBhY2Nlc3Mgb24gSnVsIDExIDIwMTAgYnkgR0ZCLAogIGZvciB3b3JrIG9uIHRoZSBweTNrLWppdCBicmFuY2gsIGF0IHN1Z2dlc3Rpb24gb2YgdGhlIFVubGFkZW4KICBTd2FsbG93IHRlYW0uCgotIEFsZXhhbmRlciBCZWxvcG9sc2t5IHdhcyBnaXZlbiBjb21taXQgYWNjZXNzIG9uIE1heSAyNSAyMDEwCiAgYnkgTXZMIGF0IHN1Z2dlc3Rpb24gb2YgTWFyayBEaWNraW5zb24uCgotIFRpbSBHb2xkZW4gd2FzIGdpdmVuIGNvbW1pdCBhY2Nlc3Mgb24gQXByaWwgMjEgMjAxMCBieSBNdkwsCiAgYXQgc3VnZ2VzdGlvbiBvZiBNaWNoYWVsIEZvb3JkLgoKLSBHaWFtcGFvbG8gUm9kb2zgIHdhcyBnaXZlbiBjb21taXQgYWNjZXNzIG9uIEFwcmlsIDE3IDIwMTAgYnkKICBNdkwsIGF0IHN1Z2dlc3Rpb24gb2YgUi4gRGF2aWQgTXVycmF5LgoKLSBKZWFuLVBhdWwgQ2FsZGVyb25lIHdhcyBnaXZlbiBjb21taXQgYWNjZXNzIG9uIEFwcmlsIDYgMjAxMCBieQogIEdGQiwgYXQgc3VnZ2VzdGlvbiBvZiBNaWNoYWVsIEZvb3JkIGFuZCBvdGhlcnMuCgotIEJyaWFuIEN1cnRpbiB3YXMgZ2l2ZW4gY29tbWl0IGFjY2VzcyBvbiBNYXJjaCAyNCAyMDEwIGJ5IE12TC4KCi0gRmxvcmVudCBYaWNsdW5hIHdhcyBnaXZlbiBjb21taXQgYWNjZXNzIG9uIEZlYnJ1YXJ5IDI1IDIwMTAgYnkKICBNdkwsIGJhc2VkIG9uIEFudG9pbmUgUGl0cm91J3MgcmVjb21tZW5kYXRpb24uCgotIERpbm8gVmllaGxhbmQgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gRmVicnVhcnkgMjMgMjAxMCBieSBCcmV0dAogIENhbm5vbiwgZm9yIGJhY2twb3J0aW5nIHRlc3RzIGZyb20gSXJvblB5dGhvbi4KCi0gTGFycnkgSGFzdGluZ3Mgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gRmVicnVhcnkgMjIgMjAxMCBieQogIEFuZHJldyBLdWNobGluZywgYmFzZWQgb24gQnJldHQgQ2Fubm9uJ3MgcmVjb21tZW5kYXRpb24uCgotIFZpY3RvciBTdGlubmVyIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIEphbnVhcnkgMzAgMjAxMCBieSBNdkwsCiAgYXQgcmVjb21tZW5kYXRpb24gYnkgTWFyayBEaWNraW5zb24gYW5kIEFtYXVyeSBGb3JnZW90IGQnQXJjLgoKLSBTdGVmYW4gS3JhaCB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiBKYW51YXJ5IDUgMjAxMCBieSBHRkIsIGF0CiAgc3VnZ2VzdGlvbiBvZiBNYXJrIERpY2tpbnNvbiwgZm9yIHdvcmsgb24gdGhlIGRlY2ltYWwgbW9kdWxlLgoKLSBEb3VnIEhlbGxtYW5uIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIFNlcHRlbWJlciAxOSAyMDA5IGJ5IEdGQiwgYXQKICBzdWdnZXN0aW9uIG9mIEplc3NlIE5vbGxlciwgZm9yIGRvY3VtZW50YXRpb24gd29yay4KCi0gRXppbyBNZWxvdHRpIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIEp1bmUgNyAyMDA5IGJ5IEdGQiwgZm9yIHdvcmsgb24gYW5kCiAgZml4ZXMgdG8gdGhlIGRvY3VtZW50YXRpb24uCgotIFBhdWwgS2lwcGVzIHdhcyBnaXZlbiBjb21taXQgcHJpdmlsZWdlcyBhdCBQeUNvbiAyMDA5IGJ5IEJBQyB0byB3b3JrIG9uIDN0bzIuCgotIFJvbiBEdVBsYWluIHdhcyBnaXZlbiBjb21taXQgcHJpdmlsZWdlcyBhdCBQeUNvbiAyMDA5IGJ5IEJBQyB0byB3b3JrIG9uIDN0bzIuCgotIFNldmVyYWwgZGV2ZWxvcGVycyBvZiBhbHRlcm5hdGl2ZSBQeXRob24gaW1wbGVtZW50YXRpb25zIHdoZXJlCiAgZ2l2ZW4gYWNjZXNzIGZvciB0ZXN0IHN1aXRlIGFuZCBsaWJyYXJ5IGFkYXB0aW9ucyBieSBNdkw6CiAgQWxsaXNvbiBSYW5kYWwgKFBhcnJvdCksIE1pY2hhZWwgRm9vcmQgKElyb25QeXRob24pLAogIEppbSBCYWtlciwgUGhpbGlwIEplbnZleSwgYW5kIEZyYW5rIFdpZXJ6Ymlja2kgKGFsbCBKeXRob24pLgoKLSBSLiBEYXZpZCBNdXJyYXkgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gTWFyY2ggMzAgMjAwOSBieSBNdkwsIGFmdGVyCiAgcmVjb21tZW5kYXRpb24gYnkgQkFDLgoKLSBDaHJpcyBXaXRoZXJzIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIE1hcmNoIDggMjAwOSBieSBNdkwsCiAgYWZ0ZXIgcmVjb21tZW5kYXRpb24gYnkgR3ZSLgoKLSBUYXJlayBaaWFk6SB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiBEZWNlbWJlciAyMSAyMDA4IGJ5IE5DTiwKICBmb3IgbWFpbnRlbmFuY2Ugb2YgZGlzdHV0aWxzLgoKLSBIaXJva2F6dSBZYW1hbW90byB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiBBdWd1c3QgMTIgMjAwOCBieSBNdkwsCiAgZm9yIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIFdpbmRvd3MgYnVpbGQuCgotIEFudG9pbmUgUGl0cm91IHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIEp1bHkgMTYgMjAwOCwgYnkgcmVjb21tZW5kYXRpb24KICBmcm9tIEd2UiwgZm9yIGdlbmVyYWwgY29udHJpYnV0aW9ucyB0byBQeXRob24uCgotIEplc3NlIE5vbGxlciB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAxNiBKdW5lIDIwMDggYnkgR0ZCLAogIGZvciB3b3JrIG9uIHRoZSBtdWx0aXByb2Nlc3NpbmcgbW9kdWxlLgoKLSBHcmVnb3IgTGluZ2wgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMTAgSnVuZSAyMDA4IGJ5IE12TCwKICBmb3Igd29yayBvbiB0aGUgdHVydGxlIG1vZHVsZS4KCi0gUm9iZXJ0IFNjaHVwcGVuaWVzIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDIxIE1heSAyMDA4IGJ5IE12TCwKICBmb3IgR1NvQyBjb250cmlidXRpb25zLgoKLSBSb2RyaWdvIEJlcm5hcmRvIFBpbWVudGVsIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDI5IEFwcmlsIDIwMDggYnkgTXZMLAogIGZvciBHU29DIGNvbnRyaWJ1dGlvbnMuCgotIEhlaWtvIFdlaW5lbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyOSBBcHJpbCAyMDA4IGJ5IE12TCwKICBmb3IgR1NvQyBjb250cmlidXRpb25zLgoKLSBKZXN1cyBDZWEgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjQgQXByaWwgMjAwOCBieSBNdkwsCiAgZm9yIG1haW50ZW5hbmNlIG9mIGJzZGRiLgoKLSBHdWlsaGVybWUgUG9sbyB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyNCBBcHJpbCAyMDA4IGJ5IE12TCwKICBmb3IgR1NvQyBjb250cmlidXRpb25zLgoKLSBUaG9tYXMgTGVlIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDIxIEFwcmlsIDIwMDggYnkgTkNOLAogIGZvciB3b3JrIG9uIGJyYW5jaGVzIChhc3Qvb3B0aW1pemVyIHJlbGF0ZWQpLgoKLSBKZXJvZW4gUnVpZ3JvayB2YW4gZGVyIFdlcnZlbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAxMiBBcHJpbCAyMDA4CiAgYnkgR0ZCLCBmb3IgZG9jdW1lbnRhdGlvbiB3b3JrLgoKLSBKb3NpYWggQ2FybHNvbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyNiBNYXJjaCAyMDA4IGJ5IEdGQiwKICBmb3Igd29yayBvbiBhc3luY29yZS9hc3luY2hhdC4KCi0gQmVuamFtaW4gUGV0ZXJzb24gd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjUgTWFyY2ggMjAwOCBieSBHRkIsCiAgZm9yIGJ1ZyB0cmlhZ2Ugd29yay4KCi0gSmVycnkgU2V1dHRlciB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyMCBNYXJjaCAyMDA4IGJ5IEJBQywgZm9yCiAgZ2VuZXJhbCBjb250cmlidXRpb25zIHRvIFB5dGhvbi4KCi0gSmVmZiBSdXNoIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDE4IE1hcmNoIDIwMDggYnkgQU1LLCBmb3IgRGlzdHV0aWxzIHdvcmsuCgotIERhdmlkIFdvbGV2ZXIgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMTcgTWFyY2ggMjAwOCBieSBNdkwsCiAgZm9yIDJ0bzMgd29yay4KCi0gVHJlbnQgTmVsc29uIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDE3IE1hcmNoIDIwMDggYnkgTXZMLAogIGZvciBnZW5lcmFsIGNvbnRyaWJ1dGlvbnMgdG8gUHl0aG9uLgoKLSBNYXJrIERpY2tpbnNvbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiA2IEphbnVhcnkgMjAwOCBieSBGYWN1bmRvCiAgQmF0aXN0YSBmb3IgaGlzIHdvcmsgb24gbWF0aGVtYXRoaWNzIGFuZCBudW1iZXIgcmVsYXRlZCBpc3N1ZXMuCgotIEFtYXVyeSBGb3JnZW90IGQnQXJjIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDkgTm92ZW1iZXIgMjAwNyBieSBNdkwsCiAgZm9yIGdlbmVyYWwgY29udHJpYnV0aW9ucyB0byBQeXRob24uCgotIENocmlzdGlhbiBIZWltZXMgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMzEgT2N0b2JlciAyMDA3IGJ5IE12TCwKICBmb3IgZ2VuZXJhbCBjb250cmlidXRpb25zIHRvIFB5dGhvbi4KCi0gQ2hyaXMgTW9uc29uIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDIwIE9jdG9iZXIgMjAwNyBieSBOQ04sCiAgZm9yIGhpcyB3b3JrIG9uIGVkaXRpbmcgUEVQcy4KCi0gQmlsbCBKYW5zc2VuIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDI4IEF1Z3VzdCAyMDA3IGJ5IE5DTiwKICBmb3IgaGlzIHdvcmsgb24gdGhlIFNTTCBtb2R1bGUgYW5kIG90aGVyIHRoaW5ncyByZWxhdGVkIHRvIChTU0wpIHNvY2tldHMuCgotIEplZmZyZXkgWWFzc2tpbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiA5IEF1Z3VzdCAyMDA3IGJ5IE5DTiwKICBmb3IgaGlzIHdvcmsgb24gUEVQcyBhbmQgb3RoZXIgZ2VuZXJhbCBwYXRjaGVzLiAKCi0gTWFyayBTdW1tZXJmaWVsZCB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAxIEF1Z3VzdCAyMDA3IGJ5IEdGQiwKICBmb3Igd29yayBvbiBkb2N1bWVudGF0aW9uLgoKLSBBcm1pbiBSb25hY2hlciB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyMyBKdWx5IDIwMDcgYnkgR0ZCLAogIGZvciB3b3JrIG9uIHRoZSBkb2N1bWVudGF0aW9uIHRvb2xzZXQuICBIZSBub3cgbWFpbnRhaW5zIHRoZQogIGFzdCBtb2R1bGUuCgotIFNlbnRoaWwgS3VtYXJhbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAxNiBKdW5lIDIwMDcgYnkgTXZMLAogIGZvciBoaXMgU3VtbWVyLW9mLUNvZGUgcHJvamVjdCwgbWVudG9yZWQgYnkgU2tpcCBNb250YW5hcm8uCgotIEFsZXhhbmRyZSBWYXNzYWxvdHRpIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDIxIE1heSAyMDA3IGJ5IE12TCwKICBmb3IgaGlzIFN1bW1lci1vZi1Db2RlIHByb2plY3QsIG1lbnRvcmVkIGJ5IEJyZXR0IENhbm5vbi4KCi0gVHJhdmlzIE9saXBoYW50IHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDE3IEFwciAyMDA3IGJ5IE12TCwKICBmb3IgaW1wbGVtZW50aW5nIHRoZSBleHRlbmRlZCBidWZmZXIgcHJvdG9jb2wuCgotIFppZ2EgU2VpbG5hY2h0IHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDA5IE1hciAyMDA3IGJ5IE12TCwKICBmb3IgZ2VuZXJhbCBtYWludGVuYW5jZS4KCi0gUGV0ZSBTaGlubmVycyB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAwNCBNYXIgMjAwNyBieSBOQ04sCiAgZm9yIFBFUCAzMTAxIHdvcmsgaW4gdGhlIHNhbmRib3guCgotIFBhdCBNYXVwaW4gYW5kIEVyaWMgVi4gU21pdGggd2VyZSBnaXZlbiBTVk4gYWNjZXNzIG9uIDI4IEZlYiAyMDA3IGJ5IE5DTiwKICBmb3IgUEVQIDMxMDEgd29yayBpbiB0aGUgc2FuZGJveC4KCi0gU3RldmVuIEJldGhhcmQgKFNGIG5hbWUgImJlZGl2aWVyZSIpIGFkZGVkIHRvIHRoZSBTb3VyY2VGb3JnZSBQeXRob24KICBwcm9qZWN0IDI2IEZlYiAyMDA3LCBieSBOQ04sIGFzIGEgdHJhY2tlciB0ZWNoLgoKLSBKb3NpYWggQ2FybHNvbiAoU0YgbmFtZSAiam9zaWFoY2FybHNvbiIpIGFkZGVkIHRvIHRoZSBTb3VyY2VGb3JnZSBQeXRob24KICBwcm9qZWN0IDA2IEphbiAyMDA3LCBieSBOQ04sIGFzIGEgdHJhY2tlciB0ZWNoLiAgSGUgd2lsbCBtYWludGFpbiBhc3luY29yZS4KCi0gQ29sbGluIFdpbnRlciB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAwNSBKYW4gMjAwNyBieSBOQ04sIGZvciBQRVAKICB1cGRhdGUgYWNjZXNzLgoKLSBMYXJzIEd1c3RhZWJlbCB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyMCBEZWMgMjAwNiBieSBOQ04sIGZvciB0YXJmaWxlLnB5CiAgcmVsYXRlZCB3b3JrLgoKLSAyMDA2IFN1bW1lciBvZiBDb2RlIGVudHJpZXM6IFNvQyBkZXZlbG9wZXJzIGFyZSBleHBlY3RlZCB0byB3b3JrCiAgcHJpbWFyaWx5IGluIG5vbmRpc3Qvc2FuZGJveCBvciBvbiBhIGJyYW5jaCBvZiB0aGVpciBvd24sIGFuZCB3aWxsCiAgaGF2ZSB0aGVpciB3b3JrIHJldmlld2VkIGJlZm9yZSBjaGFuZ2VzIGFyZSBhY2NlcHRlZCBpbnRvIHRoZSB0cnVuay4KCiAgLSBNYXR0IEZsZW1pbmcgd2FzIGFkZGVkIG9uIDI1IE1heSAyMDA2IGJ5IEFNSzsgaGUnbGwgYmUgd29ya2luZyBvbgogICAgZW5oYW5jaW5nIHRoZSBQeXRob24gZGVidWdnZXIuICAgCgogIC0gSmFja2lseW4gSG94d29ydGggd2FzIGFkZGVkIG9uIDI1IE1heSAyMDA2IGJ5IEFNSzsgc2hlJ2xsIGJlIGFkZGluZyBsb2dnaW5nCiAgICB0byB0aGUgc3RhbmRhcmQgbGlicmFyeS4gIAoKICAtIE1hdGV1c3ogUnVrb3dpY3ogd2FzIGFkZGVkIG9uIDMwIE1heSAyMDA2IGJ5IEFNSzsgaGUnbGwgYmUgCiAgICB0cmFuc2xhdGluZyB0aGUgZGVjaW1hbCBtb2R1bGUgaW50byBDLgoKLSBTVk4gYWNjZXNzIGdyYW50ZWQgdG8gdGhlICJOZWVkIGZvciBTcGVlZCIgSWNlbGFuZCBzcHJpbnQgYXR0ZW5kZWVzLAogIGJldHdlZW4gTWF5IDE3IGFuZCAyMSwgMjAwNiwgYnkgVGltIFBldGVycy4gIEFsbCB3b3JrIGlzIHRvIGJlIGRvbmUKICBpbiBuZXcgc2FuZGJveCBwcm9qZWN0cyBvciBvbiBuZXcgYnJhbmNoZXMsIHdpdGggbWVyZ2luZyB0byB0aGUKICB0cnVuayBhcyBhcHByb3ZlZDoKCiAgQW5kcmV3IERhbGtlCiAgQ2hyaXN0aWFuIFRpc21lcgogIEphY2sgRGllZGVyaWNoCiAgSm9obiBCZW5lZGlrdHNzb24KICBLcmlzdGrhbiBWLiBK825zc29uCiAgTWFydGluIEJsYWlzCiAgUmljaGFyZCBFbXNsaWUKICBSaWNoYXJkIEpvbmVzCiAgUnVuYXIgUGV0dXJzc29uCiAgU3RldmUgSG9sZGVuCiAgUmljaGFyZCBNLiBUZXcKCi0gU3RldmVuIEJldGhhcmQgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjcgQXByIDIwMDYgYnkgREpHLCBmb3IgUEVQCiAgdXBkYXRlIGFjY2Vzcy4KCi0gVGFsaW4gd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjcgQXByIDIwMDYgYnkgREpHLCBmb3IgUEVQIHVwZGF0ZQogIGFjY2Vzcy4KCi0gR2VvcmdlIFlvc2hpZGEgKFNGIG5hbWUgInF1aXZlciIpIGFkZGVkIHRvIHRoZSBTb3VyY2VGb3JnZSBQeXRob24KICBwcm9qZWN0IDE0IEFwciAyMDA2LCBieSBUaW0gUGV0ZXJzLCBhcyBhIHRyYWNrZXIgYWRtaW4uICBTZWUKICBjb250ZW1wb3JhbmVvdXMgcHl0aG9uLWNoZWNraW5zIHRocmVhZCB3aXRoIHRoZSB1bmxpa2VseSBTdWJqZWN0OgoKICAgICAgcjQ1MzI5IC0gcHl0aG9uL3RydW5rL0RvYy93aGF0c25ldy93aGF0c25ldzI1LnRleAoKLSBSb25hbGQgT3Vzc29yZW4gd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMyBNYXIgMjAwNiBieSBOQ04sIGZvciBNYWMKICByZWxhdGVkIHdvcmsuCgotIEJvYiBJcHBvbGl0byB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyIE1hciAyMDA2IGJ5IE5DTiwgZm9yIE1hYwogIHJlbGF0ZWQgd29yay4KCi0gTmljayBDb2dobGFuIHJlcXVlc3RlZCBDVlMgYWNjZXNzIHNvIGhlIGNvdWxkIHVwZGF0ZSBoaXMgUEVQIGRpcmVjdGx5LgogIEdyYW50ZWQgYnkgR3ZSIG9uIDE2IE9jdCAyMDA1LgoKLSBBZGRlZCB0d28gbmV3IGRldmVsb3BlcnMgZm9yIHRoZSBTdW1tZXIgb2YgQ29kZSBwcm9qZWN0LiA4IEp1bHkgMjAwNQogIGJ5IFJESC4gIEFuZHJldyBLdWNobGluZyB3aWxsIGJlIG1lbnRvcmluZyBHcmVnb3J5IEsgSm9obnNvbiBmb3IgYQogIHByb2plY3QgdG8gZW5oYW5jZSBtYWlsYm94LiAgQnJldHQgQ2Fubm9uIHJlcXVlc3RlZCBhY2Nlc3MgZm9yIEZsb3ZpcwogIEJydXlub29naGUgKHNpcm9sZikgdG8gd29yayBvbiBwc3RhdHMsIHByb2ZpbGUsIGFuZCBob3RzaG90LiAgQm90aCB1c2VycwogIGFyZSBleHBlY3RlZCB0byB3b3JrIHByaW1hcmlseSBpbiBub25kaXN0L3NhbmRib3ggYW5kIGhhdmUgdGhlaXIgd29yawogIHJldmlld2VkIGJlZm9yZSBtYWtpbmcgdXBkYXRlcyB0byBhY3RpdmUgY29kZS4KCi0gR2VvcmcgQnJhbmRsIHdhcyBnaXZlbiBTRiB0cmFja2VyIHBlcm1pc3Npb25zIG9uIDI4IE1heSAyMDA1CiAgYnkgUkRILiAgU2luY2UgdGhlIGJlZ2lubmluZyBvZiAyMDA1LCBoZSBoYXMgYmVlbiBhY3RpdmUgaW4gZGlzY3Vzc2lvbnMKICBvbiBweXRob24tZGV2IGFuZCBoYXMgc3VibWl0dGVkIGEgZG96ZW4gcGF0Y2ggcmV2aWV3cy4gIFRoZSBwZXJtaXNzaW9ucwogIGFkZCB0aGUgYWJpbGl0eSB0byBjaGFuZ2UgdHJhY2tlciBzdGF0dXMgYW5kIHRvIGF0dGFjaCBwYXRjaGVzLiAgT24KICAzIEp1bmUgMjAwNSwgdGhpcyB3YXMgZXhwYW5kZWQgYnkgUkRIIHRvIGluY2x1ZGUgY2hlY2tpbiBwZXJtaXNzaW9ucy4KCi0gVGVycnkgUmVlZHkgd2FzIGdpdmVuIFNGIHRyYWNrZXIgcGVybWlzc2lvbnMgb24gNyBBcHIgMjAwNSBieSBSREguCgotIE5pY2sgQ29naGxhbiB3YXMgZ2l2ZW4gU0YgdHJhY2tlciBwZXJtaXNzaW9ucyBvbiA1IEFwciAyMDA1IGJ5IFJESC4KICBGb3Igc2V2ZXJhbCBtb250aHMsIGhlIGhhcyBiZWVuIGFjdGl2ZSBpbiByZXZpZXdpbmcgYW5kIGNvbnRyaWJ1dGluZwogIHBhdGNoZXMuICBUaGUgYWRkZWQgcGVybWlzc2lvbnMgZ2l2ZSBoaW0gZ3JlYXRlciBmbGV4aWJpbGl0eSBpbgogIHdvcmtpbmcgd2l0aCB0aGUgdHJhY2tlci4KCi0gRXJpYyBQcmljZSB3YXMgbWFkZSBhIGRldmVsb3BlciBvbiAyIE1heSAyMDAzIGJ5IFRHUC4gIFRoaXMgd2FzCiAgc3BlY2lmaWNhbGx5IHRvIHdvcmsgb24gdGhlIG5ldyBgYGRlY2ltYWxgYCBwYWNrYWdlLCB3aGljaCBsaXZlZCBpbgogIGBgbm9uZGlzdC9zYW5kYm94L2RlY2ltYWwvYGAgYXQgdGhlIHRpbWUuCgotIEVyaWMgUy4gUmF5bW9uZCB3YXMgbWFkZSBhIGRldmVsb3BlciBvbiAyIEp1bCAyMDAwIGJ5IFRHUCwgZm9yIGdlbmVyYWwKICBsaWJyYXJ5IHdvcmsuICBIaXMgcmVxdWVzdCBpcyBhcmNoaXZlZCBoZXJlOgoKICAgICAgaHR0cDovL21haWwucHl0aG9uLm9yZy9waXBlcm1haWwvcHl0aG9uLWRldi8yMDAwLUp1bHkvMDA1MzE0Lmh0bWwKCgpQZXJtaXNzaW9ucyBEcm9wcGVkIG9uIFJlcXVlc3QKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotIFJveSBTbWl0aCwgTWF0dCBGbGVtaW5nIGFuZCBSaWNoYXJkIEVtc2xpZSBzZW50IGRyb3AgcmVxdWVzdHMuCiAgNCBBdWcgMjAwOCBHRkIKCi0gUGVyIG5vdGUgZnJvbSBBbmRyZXcgS3VjaGxpbmcsIHRoZSBwZXJtaXNzaW9ucyBmb3IgR3JlZ29yeSBLIEpvaG5zb24KICBhbmQgdGhlIFN1bW1lciBPZiBDb2RlIHByb2plY3QgYXJlIG5vIGxvbmdlciBuZWVkZWQuICA0IEF1ZyAyMDA4IEdGQgoKLSBQZXIgbm90ZSBmcm9tIEFuZHJldyBLdWNobGluZywgdGhlIHBlcm1pc3Npb25zIGZvciBHcmVnb3J5IEsgSm9obnNvbgogIGFuZCB0aGUgU3VtbWVyIE9mIENvZGUgcHJvamVjdCBhcmUgbm8gbG9uZ2VyIG5lZWRlZC4gIEFNSyB3aWxsIG1ha2UKICBhbnkgZnV0dXJlIGNoZWNraW5zIGRpcmVjdGx5LiAgMTYgT2N0IDIwMDUgUkRICgotIEpvaGFubmVzIEdpanNiZXJzIHNlbnQgYSBkcm9wIHJlcXVlc3QuICAyNyBKdWx5IDIwMDUgUkRICgotIEZsb3ZpcyBCcnV5bm9vZ2hlIHNlbnQgYSBkcm9wIHJlcXVlc3QuICAxNCBKdWx5IDIwMDUgUkRICgotIFBhdWwgUHJlc2NvZCBzZW50IGEgZHJvcCByZXF1ZXN0LiAgMzAgQXByIDIwMDUgUkRICgotIEZpbm4gQm9jayBzZW50IGEgZHJvcCByZXF1ZXN0LiAgMTMgQXByIDIwMDUgUkRICgotIEVyaWMgUHJpY2Ugc2VudCBhIGRyb3AgcmVxdWVzdC4gIDEwIEFwciAyMDA1IFJESAoKLSBJcm1lbiBkZSBKb25nIHJlcXVlc3RlZCBkcm9wcGluZyBDVlMgYWNjZXNzIHdoaWxlIGtlZXBpbmcgdHJhY2tlcgogIGFjY2Vzcy4gIDEwIEFwciAyMDA1IFJESAoKLSBNb3NoZSBaYWRrYSBhbmQgS2VuIE1hbmhlaW1lciBzZW50IGRyb3AgcmVxdWVzdHMuICA4IEFwciAyMDA1IGJ5IFJESAoKLSBTdGV2ZSBIb2xkZW4sIEdlcmhhcmQgSGFyaW5nLCBhbmQgRGF2aWQgQ29sZSBzZW50IGVtYWlsIHN0YXRpbmcgdGhhdAogIHRoZXkgbm8gbG9uZ2VyIHVzZSB0aGVpciBhY2Nlc3MuICAgNyBBcHIgMjAwNSBSREgKCgpQZXJtaXNzaW9ucyBEcm9wcGVkIGFmdGVyIExvc3Mgb2YgQ29udGFjdAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLSBTZXZlcmFsIHVuc3VjY2Vzc2Z1bCBlZmZvcnRzIHdlcmUgbWFkZSB0byBjb250YWN0IENoYXJsZXMgRyBXYWxkbWFuLgogIFJlbW92ZWQgb24gOCBBcHIgMjAwNSBieSBSREguCgoKSW5pdGlhbHMgb2YgUHJvamVjdCBBZG1pbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRHUDogIFRpbSBQZXRlcnMKR0ZCOiAgR2VvcmcgQnJhbmRsCkJBQzogIEJyZXR0IENhbm5vbgpOQ046ICBOZWFsIE5vcndpdHoKREpHOiAgRGF2aWQgR29vZGdlcgpNdkw6ICBNYXJ0aW4gdi4gTG9ld2lzCkd2UjogIEd1aWRvIHZhbiBSb3NzdW0KUkRIOiAgUmF5bW9uZCBIZXR0aW5nZXIK